All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: Some_val
    functionSourceFile: /src/xen/tools/ocaml/libs/xen-caml-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Some_val(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xen-caml-compat.h:13,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xen-caml-compat.h:15,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xen-caml-compat.h:16,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xen-caml-compat.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: caml_alloc_some
    functionSourceFile: /src/xen/tools/ocaml/libs/xen-caml-compat.h
    functionUses: 0
    functionsReached:
    - caml_alloc_small
    - Field
    - CAMLreturn
    - CAMLparam1
    linkageType: ''
    returnType: value
    signature: value caml_alloc_some(value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: stub_header_size
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c
    functionUses: 0
    functionsReached:
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_header_size(value unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:40,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:41,1
    - Dst: caml_string_length
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:44,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:45,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:46,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:47,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:48,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:48,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:49,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:49,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:50,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:50,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:51,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:51,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: stub_header_of_string
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c
    functionUses: 0
    functionsReached:
    - caml_string_length
    - caml_failwith
    - CAMLparam1
    - CAMLlocal1
    - caml_alloc_tuple
    - Store_field
    - CAMLreturn
    - String_val
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_header_of_string(value s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam4
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:57,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:58,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:60,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:61,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:62,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:63,1
    - Dst: caml_alloc_string
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:66,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:67,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:67,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tid
    - rid
    - ty
    - len
    argTypes:
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: stub_string_of_header
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam4
    - CAMLlocal1
    - Int_val
    - caml_alloc_string
    - CAMLreturn
    - String_val
    - memcpy
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_string_of_header(value tid, value rid, value ty, value
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: GET_C_STRUCT
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_C_STRUCT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: Bytes_val
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bytes_val(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:52,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:53,1
    - Dst: GET_C_STRUCT
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:55,1
    - Dst: Bytes_val
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:56,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:57,1
    - Dst: caml_raise_constant
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:70,1
    - Dst: caml_named_value
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:70,1
    - Dst: xen_mb
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:72,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:75,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:89,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:92,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:92,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:95,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:95,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:96,1
    - Dst: xen_mb
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:99,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:103,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - ml_interface
    - ml_buffer
    - ml_len
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 105
    functionName: ml_interface_read
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached:
    - GET_C_STRUCT
    - caml_failwith
    - CAMLlocal1
    - Int_val
    - MASK_XENSTORE_IDX
    - CAMLreturn
    - caml_raise_constant
    - caml_named_value
    - Bytes_val
    - xen_mb
    - CAMLparam3
    - memcpy
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim ml_interface_read(value ml_interface,\n                                 value
      ml_buffer,\n                                 value ml_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:111,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:112,1
    - Dst: GET_C_STRUCT
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:114,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:115,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:116,1
    - Dst: caml_raise_constant
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:129,1
    - Dst: caml_named_value
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:129,1
    - Dst: xen_mb
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:131,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:134,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:148,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:151,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:151,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:154,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:154,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:155,1
    - Dst: xen_mb
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:158,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:162,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - ml_interface
    - ml_buffer
    - ml_len
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 164
    functionName: ml_interface_write
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached:
    - GET_C_STRUCT
    - caml_failwith
    - CAMLlocal1
    - Int_val
    - CAMLreturn
    - caml_raise_constant
    - caml_named_value
    - xen_mb
    - MASK_XENSTORE_IDX
    - String_val
    - CAMLparam3
    - memcpy
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim ml_interface_write(value ml_interface,\n                                  value
      ml_buffer,\n                                  value ml_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:168,1
    - Dst: GET_C_STRUCT
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:169,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:171,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:173,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - interface
    - v
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: ml_interface_set_server_features
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached:
    - GET_C_STRUCT
    - caml_failwith
    - CAMLparam2
    - Int_val
    - CAMLreturn
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim ml_interface_set_server_features(value interface, value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:180,1
    - Dst: GET_C_STRUCT
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:181,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:183,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interface
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: ml_interface_get_server_features
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - GET_C_STRUCT
    - Val_int
    - CAMLparam1
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim ml_interface_get_server_features(value interface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:188,1
    - Dst: GET_C_STRUCT
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:189,1
    - Dst: xen_mb
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:198,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - interface
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: ml_interface_close
    functionSourceFile: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - GET_C_STRUCT
    - CAMLparam1
    - xen_mb
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim ml_interface_close(value interface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: xsd_glue_xch_of_val
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - Data_custom_val
    linkageType: ''
    returnType: xc_interface
    signature: xc_interface *xsd_glue_xch_of_val(value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsd_glue_xch_of_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:30,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: xsd_glue_xenctrl_finalize
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - xsd_glue_xch_of_val
    linkageType: ''
    returnType: void
    signature: void xsd_glue_xenctrl_finalize(value v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam0
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:48,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:49,1
    - Dst: xc_get_last_error
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:50,1
    - Dst: asprintf
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:55,1
    - Dst: xc_error_code_to_desc
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:58,1
    - Dst: strerror
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:58,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:66,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:68,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:69,1
    - Dst: caml_raise_with_arg
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:71,1
    - Dst: caml_named_value
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - func
    - line
    argTypes:
    - xc_interface*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: xsd_glue_failwith
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - caml_raise_with_arg
    - asprintf
    - free
    - xc_get_last_error
    - CAMLlocal1
    - xc_error_code_to_desc
    - CAMLparam0
    - strerror
    - caml_named_value
    - caml_raise_out_of_memory
    - caml_copy_string
    linkageType: ''
    returnType: void
    signature: "void xsd_glue_failwith(\n\txc_interface *xch, const char *func, unsigned
      int line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: xsd_glue_failwith
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xsd_glue_failwith(xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:78,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:79,1
    - Dst: caml_alloc_custom
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:82,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:84,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:85,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:86,1
    - Dst: xsd_glue_failwith
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:89,1
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:91,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - unit
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 94
    functionName: stub_xsd_glue_xc_interface_open
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - caml_alloc_custom
    - CAMLparam1
    - caml_leave_blocking_section
    - Data_custom_val
    - xsd_glue_failwith
    - CAMLlocal1
    - xc_interface_open
    - CAMLreturn
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xsd_glue_xc_interface_open(value unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam0
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:98,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:99,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:101,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:103,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:103,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:104,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:104,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:105,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:105,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:106,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:106,1
    - Dst: MASK_EXTR
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:106,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: xsd_glue_alloc_domaininfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - Val_bool
    - CAMLlocal1
    - Store_field
    - caml_alloc_tuple
    - CAMLparam0
    - CAMLreturn
    - Val_int
    - MASK_EXTR
    linkageType: ''
    returnType: value
    signature: value xsd_glue_alloc_domaininfo(const xc_domaininfo_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:113,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:114,1
    - Dst: xsd_glue_xch_of_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:115,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:118,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:120,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:121,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:122,1
    - Dst: xsd_glue_failwith
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:125,1
    - Dst: xsd_glue_alloc_domaininfo
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:127,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: stub_xsd_glue_xc_domain_getinfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - xsd_glue_xch_of_val
    - CAMLparam2
    - CAMLlocal1
    - xsd_glue_failwith
    - Int_val
    - xsd_glue_alloc_domaininfo
    - CAMLreturn
    - caml_enter_blocking_section
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xsd_glue_xc_domain_getinfo(value xch_val, value domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:134,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:135,1
    - Dst: xsd_glue_xch_of_val
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:136,1
    - Dst: malloc
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:141,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:143,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:145,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:146,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:147,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:150,1
    - Dst: xsd_glue_failwith
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:151,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:154,1
    - Dst: caml_modify
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:156,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:156,1
    - Dst: xsd_glue_alloc_domaininfo
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:156,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:159,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 161
    functionName: stub_xsd_glue_xc_domain_getinfolist
    functionSourceFile: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
    functionUses: 0
    functionsReached:
    - Field
    - CAMLparam1
    - caml_leave_blocking_section
    - free
    - xsd_glue_xch_of_val
    - CAMLlocal1
    - xsd_glue_failwith
    - malloc
    - caml_alloc
    - xsd_glue_alloc_domaininfo
    - CAMLreturn
    - caml_modify
    - caml_raise_out_of_memory
    - caml_enter_blocking_section
    - xc_domain_getinfolist
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xsd_glue_xc_domain_getinfolist(value xch_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: xch_of_val
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 3
    functionsReached:
    - Data_custom_val
    linkageType: ''
    returnType: xc_interface
    signature: xc_interface *xch_of_val(value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:51,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: stub_xenctrl_finalize
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xch_of_val
    - xc_interface_close
    linkageType: ''
    returnType: void
    signature: void stub_xenctrl_finalize(value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: string_of_option_array
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: string_of_option_array(array, index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_last_error
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:73,1
    - Dst: snprintf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:75,1
    - Dst: strerror
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:76,1
    - Dst: snprintf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:78,1
    - Dst: xc_error_code_to_desc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:80,1
    - Dst: snprintf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:83,1
    - Dst: caml_raise_with_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:86,1
    - Dst: caml_named_value
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: failwith_xc
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - caml_raise_with_string
    - xc_get_last_error
    - xc_error_code_to_desc
    - strerror
    - caml_named_value
    linkageType: ''
    returnType: void
    signature: void failwith_xc(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:91,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:92,1
    - Dst: caml_alloc_custom
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:95,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:97,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:98,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:99,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:102,1
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:104,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - unit
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: stub_xc_interface_open
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_alloc_custom
    - CAMLparam1
    - caml_leave_blocking_section
    - Data_custom_val
    - CAMLlocal1
    - failwith_xc
    - xc_interface_open
    - CAMLreturn
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_interface_open(value unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:115,1
    - Dst: snprintf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:121,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - uuid
    argTypes:
    - xen_domain_handle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: domain_handle_of_uuid_string
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - caml_invalid_argument
    - sscanf
    linkageType: ''
    returnType: void
    signature: "void domain_handle_of_uuid_string(xen_domain_handle_t h,\n\t\t\t\t\t
      const char *uuid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam0
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:142,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:143,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:167,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:168,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:168,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:169,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 174
    functionName: c_bitmap_to_ocaml_list
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - caml_alloc_small
    - CAMLlocal2
    - CAMLparam0
    - CAMLreturn
    - Val_int
    linkageType: ''
    returnType: value
    signature: "value c_bitmap_to_ocaml_list\n\t     /* ! */\n\t     /*\n\t      *
      All calls to this function must be in a form suitable\n\t      * for xenctrl_abi_check.
      \ The parsing there is ad-hoc.\n\t      */\n\t         (unsigned int bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:185,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:186,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: ocaml_list_to_c_bitmap
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - Int_val
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ocaml_list_to_c_bitmap(value l)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:193,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:194,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:195,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:213,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:214,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:215,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:216,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:219,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:222,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:224,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:226,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:230,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:231,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:232,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:233,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:234,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:236,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:236,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:242,1
    - Dst: domain_handle_of_uuid_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:245,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:245,1
    - Dst: ocaml_list_to_c_bitmap
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:247,1
    - Dst: ocaml_list_to_c_bitmap
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:252,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:257,1
    - Dst: Tag_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:258,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:261,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:268,1
    - Dst: ocaml_list_to_c_bitmap
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:274,1
    - Dst: ocaml_list_to_c_bitmap
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:279,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:288,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:293,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:311,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:312,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:313,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:316,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:318,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:318,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - xch_val
    - wanted_domid
    - config
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 319
    functionName: stub_xc_domain_create
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLlocal2
    - BUILD_BUG_ON
    - xch_of_val
    - xc_domain_create
    - caml_invalid_argument
    - XEN_DOMCTL_GRANT_version
    - ocaml_list_to_c_bitmap
    - String_val
    - Val_int
    - Field
    - Tag_val
    - CAMLreturn
    - domain_handle_of_uuid_string
    - CAMLparam3
    - Int32_val
    - caml_failwith
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_create(value xch_val, value wanted_domid, value
      config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:324,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:325,1
    - Dst: xc_domain_max_vcpus
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:328,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:328,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:328,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:330,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch_val
    - domid
    - max_vcpus
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 333
    functionName: stub_xc_domain_max_vcpus
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - failwith_xc
    - Int_val
    - xc_domain_max_vcpus
    - CAMLreturn
    - xch_of_val
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_max_vcpus(value xch_val, value domid,\n                                        value
      max_vcpus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:338,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:339,1
    - Dst: domain_handle_of_uuid_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:343,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:343,1
    - Dst: xc_domain_sethandle
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:345,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:345,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:347,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xch_val
    - domid
    - handle
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 350
    functionName: stub_xc_domain_sethandle
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - failwith_xc
    - Int_val
    - CAMLreturn
    - domain_handle_of_uuid_string
    - xc_domain_sethandle
    - xch_of_val
    - String_val
    - CAMLparam3
    linkageType: ''
    returnType: value
    signature: value stub_xc_domain_sethandle(value xch_val, value domid, value handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:355,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:356,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:359,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:361,1
    - Dst: fn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:362,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:363,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:365,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: dom_op
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - CAMLparam2
    - failwith_xc
    - Int_val
    - CAMLreturn
    - fn
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: value
    signature: "value dom_op(value xch_val, value domid,\n\t\t    int (*fn)(xc_interface
      *, uint32_t))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: stub_xc_domain_pause
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_pause(value xch_val, value domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: stub_xc_domain_unpause
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_unpause(value xch_val, value domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: stub_xc_domain_destroy
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_destroy(value xch_val, value domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:387,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:388,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:391,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:393,1
    - Dst: xc_domain_resume
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:394,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:395,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:397,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 399
    functionName: stub_xc_domain_resume_fast
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - CAMLparam2
    - failwith_xc
    - Int_val
    - xc_domain_resume
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_resume_fast(value xch_val, value domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:403,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:404,1
    - Dst: xc_domain_shutdown
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:407,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:407,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:407,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:409,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch_val
    - domid
    - reason
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 412
    functionName: stub_xc_domain_shutdown
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - failwith_xc
    - xc_domain_shutdown
    - Int_val
    - CAMLreturn
    - xch_of_val
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_shutdown(value xch_val, value domid, value
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam0
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:416,1
    - Dst: CAMLlocal5
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:417,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:420,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:422,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:422,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:423,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:423,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:424,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:424,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:425,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:425,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:426,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:426,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:427,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:427,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:428,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:428,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:429,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:429,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:431,1
    - Dst: caml_copy_nativeint
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:431,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:432,1
    - Dst: caml_copy_nativeint
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:432,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:433,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:433,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:434,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:434,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:435,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:435,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:436,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:436,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:437,1
    - Dst: caml_copy_int32
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:437,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:439,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:441,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:441,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:444,1
    - Dst: c_bitmap_to_ocaml_list
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:450,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:455,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:456,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:459,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:461,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:463,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 467
    functionName: alloc_domaininfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 2
    functionsReached:
    - Val_bool
    - Field
    - caml_copy_nativeint
    - caml_copy_int32
    - caml_alloc_small
    - c_bitmap_to_ocaml_list
    - caml_alloc_tuple
    - Store_field
    - CAMLparam0
    - CAMLreturn
    - caml_copy_int64
    - CAMLlocal5
    - Val_int
    linkageType: ''
    returnType: value
    signature: value alloc_domaininfo(xc_domaininfo_t * info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:471,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:472,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:473,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:480,1
    - Dst: posix_memalign
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:481,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:483,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:487,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:488,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:489,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:490,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:492,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:495,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:496,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:499,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:500,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:500,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:501,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:504,1
    - Dst: alloc_domaininfo
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:504,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:507,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - xch_val
    - first_domain
    - nb
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 509
    functionName: stub_xc_domain_getinfolist
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - caml_leave_blocking_section
    - free
    - caml_alloc_small
    - failwith_xc
    - Store_field
    - Int_val
    - CAMLlocal2
    - CAMLreturn
    - caml_raise_out_of_memory
    - alloc_domaininfo
    - xch_of_val
    - posix_memalign
    - caml_enter_blocking_section
    - CAMLparam3
    - xc_domain_getinfolist
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_getinfolist(value xch_val, value first_domain,
      value nb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:513,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:514,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:515,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:519,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:519,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:521,1
    - Dst: alloc_domaininfo
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:523,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 525
    functionName: stub_xc_domain_getinfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam2
    - CAMLlocal1
    - failwith_xc
    - Int_val
    - CAMLreturn
    - alloc_domaininfo
    - xch_of_val
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_getinfo(value xch_val, value domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:529,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:530,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:531,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:535,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:536,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:537,1
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:538,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:539,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:541,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:543,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:544,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:544,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:545,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:545,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:546,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:546,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:547,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:547,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:548,1
    - Dst: caml_copy_int32
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:548,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - xch_val
    - domid
    - vcpu
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 551
    functionName: stub_xc_vcpu_getinfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Val_bool
    - caml_leave_blocking_section
    - xc_vcpu_getinfo
    - caml_copy_int32
    - CAMLlocal1
    - failwith_xc
    - caml_alloc_tuple
    - Int_val
    - Store_field
    - CAMLreturn
    - caml_copy_int64
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_vcpu_getinfo(value xch_val, value domid, value vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:556,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:557,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:558,1
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:562,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:562,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:562,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:564,1
    - Dst: caml_alloc_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:566,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:567,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:567,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch_val
    - domid
    - cpu
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 570
    functionName: stub_xc_vcpu_context_get
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLlocal1
    - xc_vcpu_getcontext
    - failwith_xc
    - Int_val
    - caml_alloc_string
    - CAMLreturn
    - xch_of_val
    - String_val
    - CAMLparam3
    - memcpy
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_vcpu_context_get(value xch_val, value domid,\n                                        value
      cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Wosize_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:574,1
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - cpumap
    argTypes:
    - xc_interface*
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 581
    functionName: get_cpumap_len
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_get_max_cpus
    - Wosize_val
    linkageType: ''
    returnType: int
    signature: int get_cpumap_len(xc_interface *xch, value cpumap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam4
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:586,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:587,1
    - Dst: get_cpumap_len
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:588,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:592,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:594,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:597,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:597,1
    - Dst: xc_vcpu_setaffinity
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:600,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:600,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:601,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:604,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:607,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - xch_val
    - domid
    - vcpu
    - cpumap
    argTypes:
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 609
    functionName: stub_xc_vcpu_setaffinity
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - get_cpumap_len
    - CAMLparam4
    - free
    - failwith_xc
    - Int_val
    - CAMLreturn
    - Bool_val
    - xc_vcpu_setaffinity
    - xch_of_val
    - xc_cpumap_alloc
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_vcpu_setaffinity(value xch_val, value domid,\n                                        value
      vcpu, value cpumap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:614,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:615,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:616,1
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:618,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:622,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:624,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:626,1
    - Dst: xc_vcpu_getaffinity
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:628,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:628,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:629,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:633,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:634,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:637,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:641,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:643,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:646,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - xch_val
    - domid
    - vcpu
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 649
    functionName: stub_xc_vcpu_getaffinity
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_cpumap_alloc
    - xc_vcpu_getaffinity
    - free
    - CAMLlocal1
    - failwith_xc
    - Store_field
    - Int_val
    - caml_alloc
    - CAMLreturn
    - xch_of_val
    - CAMLparam3
    - xc_get_max_cpus
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_vcpu_getaffinity(value xch_val, value domid,\n                                        value
      vcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:653,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:654,1
    - Dst: xc_sched_id
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:657,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:658,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:660,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 661
    functionName: stub_xc_sched_id
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_sched_id
    - CAMLparam1
    - failwith_xc
    - CAMLreturn
    - xch_of_val
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_sched_id(value xch_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:667,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:668,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:671,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:672,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:674,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:675,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:677,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:680,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:681,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch_val
    - local_domid
    - remote_domid
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 682
    functionName: stub_xc_evtchn_alloc_unbound
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xc_evtchn_alloc_unbound
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_evtchn_alloc_unbound(value xch_val,\n                                            value
      local_domid,\n                                            value remote_domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:686,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:687,1
    - Dst: xc_evtchn_reset
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:690,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:690,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:692,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 694
    functionName: stub_xc_evtchn_reset
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam2
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xc_evtchn_reset
    - xch_of_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_evtchn_reset(value xch_val, value domid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:698,1
    - Dst: CAMLlocal4
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:699,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:700,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:702,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:703,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:707,1
    - Dst: xc_evtchn_status
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:708,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:709,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:712,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:717,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:720,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:721,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:721,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:725,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:726,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:726,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:727,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:727,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:728,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:729,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:733,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:734,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:734,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:738,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:739,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:739,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:743,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:747,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:750,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:751,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:751,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:752,1
    - Dst: caml_alloc_some
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:754,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:756,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - xch_val
    - domid
    - port
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 757
    functionName: stub_xc_evtchn_status
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_failwith
    - caml_leave_blocking_section
    - caml_alloc_tuple
    - failwith_xc
    - Store_field
    - Int_val
    - caml_alloc
    - caml_alloc_some
    - CAMLreturn
    - xc_evtchn_status
    - CAMLlocal4
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_evtchn_status(value xch_val, value domid, value port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:768,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:769,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:770,1
    - Dst: malloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:772,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:774,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:777,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:778,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:779,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:782,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:783,1
    - Dst: realloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:791,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:798,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:799,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:800,1
    - Dst: caml_alloc_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:814,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:815,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:815,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:816,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:818,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 819
    functionName: stub_xc_readconsolering
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - caml_leave_blocking_section
    - free
    - CAMLlocal1
    - failwith_xc
    - malloc
    - xc_readconsolering
    - caml_alloc_string
    - CAMLreturn
    - caml_raise_out_of_memory
    - xch_of_val
    - String_val
    - caml_enter_blocking_section
    - memcpy
    - realloc
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_readconsolering(value xch_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:823,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:824,1
    - Dst: xc_send_debug_keys
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:827,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:827,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:829,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch_val
    - keys
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 831
    functionName: stub_xc_send_debug_keys
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam2
    - failwith_xc
    - CAMLreturn
    - xc_send_debug_keys
    - xch_of_val
    - String_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_send_debug_keys(value xch_val, value keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam0
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:835,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:836,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:843,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:845,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:846,1
    - Dst: MASK_EXTR
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:846,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:858,1
    - Dst: caml_alloc_small
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:860,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:861,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_physinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 864
    functionName: physinfo_arch_caps
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_failwith
    - caml_alloc_small
    - caml_alloc_tuple
    - Store_field
    - CAMLlocal2
    - CAMLparam0
    - CAMLreturn
    - Val_int
    - MASK_EXTR
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim physinfo_arch_caps(const xc_physinfo_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:868,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:869,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:870,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:874,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:875,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:876,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:879,1
    - Dst: c_bitmap_to_ocaml_list
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:884,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:889,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:890,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:890,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:891,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:891,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:892,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:892,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:893,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:893,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:894,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:894,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:895,1
    - Dst: caml_copy_nativeint
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:895,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:896,1
    - Dst: caml_copy_nativeint
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:896,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:897,1
    - Dst: caml_copy_nativeint
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:897,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:898,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:899,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:899,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:900,1
    - Dst: physinfo_arch_caps
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:900,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 903
    functionName: stub_xc_physinfo
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - physinfo_arch_caps
    - caml_copy_nativeint
    - CAMLparam1
    - caml_leave_blocking_section
    - c_bitmap_to_ocaml_list
    - caml_alloc_tuple
    - xc_physinfo
    - failwith_xc
    - Store_field
    - CAMLlocal2
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_physinfo(value xch_val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:907,1
    - Dst: CAMLlocal2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:908,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:909,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:913,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:914,1
    - Dst: calloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:916,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:916,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:918,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:920,1
    - Dst: xc_getcpuinfo
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:921,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:921,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:922,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:925,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:926,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:931,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:933,1
    - Dst: caml_modify
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:934,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:934,1
    - Dst: Atom
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:937,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:938,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - xch_val
    - nr_cpus
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 940
    functionName: stub_xc_pcpu_info
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - xc_getcpuinfo
    - calloc
    - caml_leave_blocking_section
    - free
    - CAMLparam2
    - caml_invalid_argument
    - failwith_xc
    - Int_val
    - caml_alloc
    - CAMLlocal2
    - Atom
    - CAMLreturn
    - caml_copy_int64
    - caml_modify
    - caml_raise_out_of_memory
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_pcpu_info(value xch_val, value nr_cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:945,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:946,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:949,1
    - Dst: Int64_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:950,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:951,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:952,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:953,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:955,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch_val
    - domid
    - max_memkb
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 957
    functionName: stub_xc_domain_setmaxmem
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_domain_setmaxmem
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    - Int64_val
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_setmaxmem(value xch_val, value domid,\n                                        value
      max_memkb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:962,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:963,1
    - Dst: Int64_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:967,1
    - Dst: xc_domain_set_memmap_limit
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:968,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:968,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:970,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xch_val
    - domid
    - map_limitkb
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 973
    functionName: stub_xc_domain_set_memmap_limit
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - CAMLparam3
    - Int64_val
    - xc_domain_set_memmap_limit
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_set_memmap_limit(value xch_val, value domid,\n
      \                                              value map_limitkb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:979,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:980,1
    - Dst: Int64_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:983,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:985,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:986,1
    - Dst: xc_domain_increase_reservation_exact
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:987,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:989,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:992,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch_val
    - domid
    - mem_kb
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 994
    functionName: stub_xc_domain_memory_increase_reservation
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_domain_increase_reservation_exact
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    - Int64_val
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_memory_increase_reservation(value xch_val,\n
      \                                                         value domid,\n                                                          value
      mem_kb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:998,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:999,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1000,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1004,1
    - Dst: xc_version
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1005,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1006,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1009,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1011,1
    - Dst: xc_xenver_extraversion
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1012,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1013,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1016,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1018,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1020,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1020,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1021,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1021,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1022,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1022,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1024,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1027
    functionName: stub_xc_version_version
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - caml_leave_blocking_section
    - free
    - CAMLlocal1
    - failwith_xc
    - caml_alloc_tuple
    - Store_field
    - caml_copy_string
    - xc_version
    - CAMLreturn
    - xc_xenver_extraversion
    - xch_of_val
    - caml_enter_blocking_section
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_version_version(value xch_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1032,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1033,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1034,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1038,1
    - Dst: xc_version
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1039,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1040,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1043,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1045,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1047,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1047,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1048,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1048,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1049,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1049,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1050,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1050,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1053
    functionName: stub_xc_version_compile_info
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - caml_leave_blocking_section
    - CAMLlocal1
    - failwith_xc
    - caml_alloc_tuple
    - Store_field
    - caml_copy_string
    - xc_version
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_version_compile_info(value xch_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1058,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1059,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1060,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1063,1
    - Dst: xc_xenver_changeset
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1064,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1065,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1068,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1070,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1072,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1075
    functionName: stub_xc_version_changeset
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - caml_leave_blocking_section
    - free
    - CAMLlocal1
    - failwith_xc
    - caml_copy_string
    - CAMLreturn
    - xc_xenver_changeset
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_version_changeset(value xch_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1080,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1081,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1082,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1085,1
    - Dst: xc_xenver_capabilities
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1086,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1087,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1090,1
    - Dst: caml_copy_string
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1092,1
    - Dst: free
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1094,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - xch_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1097
    functionName: stub_xc_version_capabilities
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - caml_leave_blocking_section
    - free
    - CAMLlocal1
    - failwith_xc
    - caml_copy_string
    - xc_xenver_capabilities
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_version_capabilities(value xch_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1102,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1104,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1104,1
    - Dst: Int64_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pages
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1105
    functionName: stub_pages_to_kib
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - caml_copy_int64
    - Int64_val
    - CAMLparam1
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_pages_to_kib(value pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam4
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1111,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1112,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1113,1
    - Dst: Nativeint_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1115,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1116,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1119,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1120,1
    - Dst: Wsize_bsize
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1120,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1123,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1124,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1124,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1126,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1129,1
    - Dst: Data_abstract_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1131,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - xch_val
    - dom
    - size
    - mfn
    argTypes:
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1135
    functionName: stub_map_foreign_range
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_failwith
    - CAMLparam4
    - caml_leave_blocking_section
    - CAMLlocal1
    - Wsize_bsize
    - Int_val
    - caml_alloc
    - BUILD_BUG_ON
    - CAMLreturn
    - Data_abstract_val
    - Nativeint_val
    - xc_map_foreign_range
    - xch_of_val
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_map_foreign_range(value xch_val, value dom,\n                                      value
      size, value mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1139,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1140,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1141,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1145,1
    - Dst: xc_sched_credit_domain_get
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1146,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1146,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1147,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1149,1
    - Dst: caml_alloc_tuple
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1151,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1152,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1152,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1153,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1153,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1156
    functionName: stub_sched_credit_domain_get
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_sched_credit_domain_get
    - caml_leave_blocking_section
    - CAMLparam2
    - CAMLlocal1
    - failwith_xc
    - Int_val
    - caml_alloc_tuple
    - Store_field
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_sched_credit_domain_get(value xch_val, value domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1161,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1162,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1166,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1166,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1167,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1167,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1168,1
    - Dst: xc_sched_credit_domain_set
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1169,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1169,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1170,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1172,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - xch_val
    - domid
    - sdom
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1175
    functionName: stub_sched_credit_domain_set
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xc_sched_credit_domain_set
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_sched_credit_domain_set(value xch_val, value domid,\n
      \                                           value sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1179,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1180,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1181,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1185,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1186,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1186,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1189,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1191,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1193,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xch_val
    - domid
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1195
    functionName: stub_shadow_allocation_get
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - CAMLparam2
    - CAMLlocal1
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - xc_shadow_control
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_shadow_allocation_get(value xch_val, value domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1200,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1201,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1205,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1206,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1207,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1207,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1210,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1212,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch_val
    - domid
    - mb
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1215
    functionName: stub_shadow_allocation_set
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xc_shadow_control
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_shadow_allocation_set(value xch_val, value domid,\n\t\t\t\t\t
      \ value mb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam5
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1221,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1222,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1227,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1228,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1229,1
    - Dst: xc_domain_ioport_permission
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1231,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1231,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1234,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - xch_val
    - domid
    - start_port
    - nr_ports
    - allow
    argTypes:
    - value
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1237
    functionName: stub_xc_domain_ioport_permission
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam5
    - failwith_xc
    - Int_val
    - CAMLreturn
    - Bool_val
    - xch_of_val
    - xc_domain_ioport_permission
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_ioport_permission(value xch_val, value domid,\n\t\t\t\t\t
      \      value start_port, value nr_ports,\n\t\t\t\t\t       value allow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam5
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1243,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1244,1
    - Dst: Nativeint_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1249,1
    - Dst: Nativeint_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1250,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1251,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1253,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1253,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1256,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - xch_val
    - domid
    - start_pfn
    - nr_pfns
    - allow
    argTypes:
    - value
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1259
    functionName: stub_xc_domain_iomem_permission
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam5
    - xc_domain_iomem_permission
    - failwith_xc
    - Int_val
    - CAMLreturn
    - Nativeint_val
    - Bool_val
    - xch_of_val
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_iomem_permission(value xch_val, value domid,\n\t\t\t\t\t
      \      value start_pfn, value nr_pfns,\n\t\t\t\t\t       value allow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam4
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1264,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1265,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1270,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1271,1
    - Dst: xc_domain_irq_permission
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1273,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1273,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1276,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - xch_val
    - domid
    - pirq
    - allow
    argTypes:
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1279
    functionName: stub_xc_domain_irq_permission
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam4
    - failwith_xc
    - xc_domain_irq_permission
    - Int_val
    - CAMLreturn
    - Bool_val
    - xch_of_val
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_xc_domain_irq_permission(value xch_val, value domid,\n\t\t\t\t\t
      \    value pirq, value allow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1283,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1284,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1288,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1289,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1289,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1289,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1290,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1293,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1295,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch_val
    - domid
    - param
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1296
    functionName: stub_xc_hvm_param_get
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - caml_copy_int64
    - xch_of_val
    - caml_enter_blocking_section
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_hvm_param_get(value xch_val, value domid, value param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam4
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1300,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1301,1
    - Dst: Int64_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1302,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1305,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1306,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1306,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1306,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1307,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1310,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - xch_val
    - domid
    - param
    - val
    argTypes:
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1313
    functionName: stub_xc_hvm_param_set
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - CAMLparam4
    - caml_leave_blocking_section
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - caml_enter_blocking_section
    - Int64_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_hvm_param_set(value xch_val, value domid, value param,
      value val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - domain
    - bus
    - dev
    - func
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1321
    functionName: encode_sbdf
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t encode_sbdf(int domain, int bus, int dev, int func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1325,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1326,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1331,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1331,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1332,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1332,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1333,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1333,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1334,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1334,1
    - Dst: encode_sbdf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1335,1
    - Dst: xc_test_assign_device
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1337,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1337,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1339,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - xch_val
    - domid
    - desc
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1340
    functionName: stub_xc_domain_test_assign_device
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - Val_bool
    - xc_test_assign_device
    - Int_val
    - CAMLreturn
    - encode_sbdf
    - xch_of_val
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_test_assign_device(value xch_val, value domid,
      value desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1344,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1345,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1350,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1350,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1351,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1351,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1352,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1352,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1353,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1353,1
    - Dst: encode_sbdf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1354,1
    - Dst: xc_assign_device
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1356,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1356,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1360,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - xch_val
    - domid
    - desc
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1362
    functionName: stub_xc_domain_assign_device
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - xc_assign_device
    - failwith_xc
    - Int_val
    - CAMLreturn
    - encode_sbdf
    - xch_of_val
    - CAMLparam3
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_assign_device(value xch_val, value domid, value
      desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1366,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1367,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1372,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1372,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1373,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1373,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1374,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1374,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1375,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1375,1
    - Dst: encode_sbdf
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1376,1
    - Dst: xc_deassign_device
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1378,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1378,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1381,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - xch_val
    - domid
    - desc
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1383
    functionName: stub_xc_domain_deassign_device
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - failwith_xc
    - Int_val
    - CAMLreturn
    - encode_sbdf
    - xch_of_val
    - CAMLparam3
    - xc_deassign_device
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_domain_deassign_device(value xch_val, value domid,
      value desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1387,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1388,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1390,1
    - Dst: xc_get_cpu_featureset
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1397,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1400,1
    - Dst: xc_get_cpu_featureset
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1408,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1408,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1411,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1413,1
    - Dst: Store_field
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1416,1
    - Dst: caml_copy_int64
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1416,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1419,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - xch_val
    - idx
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1385
    functionDepth: 2
    functionLinenumber: 1385
    functionLinenumberEnd: 1422
    functionName: stub_xc_get_cpu_featureset
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - caml_failwith
    - CAMLparam2
    - failwith_xc
    - CAMLlocal1
    - xc_get_cpu_featureset
    - Int_val
    - caml_alloc
    - Store_field
    - CAMLreturn
    - caml_copy_int64
    - xch_of_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_get_cpu_featureset(value xch_val, value idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1426,1
    - Dst: xch_of_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1427,1
    - Dst: Int32_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1429,1
    - Dst: xc_watchdog
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1431,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1431,1
    - Dst: failwith_xc
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1433,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1435,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch_val
    - domid
    - timeout
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1424
    functionDepth: 2
    functionLinenumber: 1424
    functionLinenumberEnd: 1436
    functionName: stub_xc_watchdog
    functionSourceFile: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
    functionUses: 0
    functionsReached:
    - xc_watchdog
    - Int32_val
    - failwith_xc
    - Int_val
    - CAMLreturn
    - xch_of_val
    - CAMLparam3
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_xc_watchdog(value xch_val, value domid, value timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: xce_of_val
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - Data_custom_val
    linkageType: ''
    returnType: xenevtchn_handle
    signature: xenevtchn_handle *xce_of_val(value v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_close
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:43,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: stub_evtchn_finalize
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void stub_evtchn_finalize(value v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:58,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:59,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:63,1
    - Dst: caml_alloc_custom
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:66,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:68,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:69,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:70,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:73,1
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:75,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - cloexec
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: stub_eventchn_init
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - caml_alloc_custom
    - caml_failwith
    - CAMLparam1
    - caml_leave_blocking_section
    - Data_custom_val
    - CAMLlocal1
    - CAMLreturn
    - Bool_val
    - caml_enter_blocking_section
    - xenevtchn_open
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_init(value cloexec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:82,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:83,1
    - Dst: caml_alloc_custom
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:86,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:88,1
    - Dst: xenevtchn_fdopen
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:89,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:89,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:90,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:93,1
    - Dst: Data_custom_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:95,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fdval
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: stub_eventchn_fdopen
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - caml_alloc_custom
    - caml_failwith
    - CAMLparam1
    - caml_leave_blocking_section
    - Data_custom_val
    - CAMLlocal1
    - Int_val
    - CAMLreturn
    - xenevtchn_fdopen
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_fdopen(value fdval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:102,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:103,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:107,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:109,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:111,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - xce_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: stub_eventchn_fd
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - CAMLparam1
    - xenevtchn_fd
    - CAMLreturn
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_fd(value xce_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:116,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:117,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:120,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:121,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:121,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:122,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:125,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xce_val
    - port
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: stub_eventchn_notify
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - caml_leave_blocking_section
    - CAMLparam2
    - Int_val
    - CAMLreturn
    - xenevtchn_notify
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_notify(value xce_val, value port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:133,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:134,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:137,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:138,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:138,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:139,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:140,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:143,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:145,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xce_val
    - domid
    - remote_port
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: stub_eventchn_bind_interdomain
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - caml_leave_blocking_section
    - Int_val
    - CAMLreturn
    - xenevtchn_bind_interdomain
    - caml_enter_blocking_section
    - CAMLparam3
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_eventchn_bind_interdomain(value xce_val, value domid,\n
      \                                             value remote_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:150,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:151,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:154,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:155,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:155,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:156,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:159,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:161,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xce_val
    - virq
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: stub_eventchn_bind_virq
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - caml_leave_blocking_section
    - CAMLparam2
    - Int_val
    - xenevtchn_bind_virq
    - CAMLreturn
    - caml_enter_blocking_section
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_bind_virq(value xce_val, value virq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:166,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:167,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:170,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:171,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:171,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:172,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:175,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xce_val
    - port
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: stub_eventchn_unbind
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unbind
    - xce_of_val
    - caml_failwith
    - caml_leave_blocking_section
    - CAMLparam2
    - Int_val
    - CAMLreturn
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_unbind(value xce_val, value port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:182,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:183,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:186,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:187,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:188,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:191,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:193,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xce_val
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 194
    functionName: stub_eventchn_pending
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - CAMLparam1
    - caml_leave_blocking_section
    - CAMLreturn
    - xenevtchn_pending
    - caml_enter_blocking_section
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_pending(value xce_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:198,1
    - Dst: xce_of_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:199,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:202,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:203,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:203,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:204,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:207,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xce_val
    - port
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: stub_eventchn_unmask
    functionSourceFile: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
    functionUses: 0
    functionsReached:
    - xce_of_val
    - caml_failwith
    - caml_leave_blocking_section
    - xenevtchn_unmask
    - CAMLparam2
    - Int_val
    - CAMLreturn
    - caml_enter_blocking_section
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_eventchn_unmask(value xce_val, value port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: Data_abstract_val
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/mmap_stubs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Data_abstract_val(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Intf_val
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Intf_val(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - intf
    - fd
    - pflag
    - mflag
    - len
    - offset
    argTypes:
    - struct mmap_interface*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: mmap_interface_init
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - mmap
    linkageType: ''
    returnType: int
    signature: "int mmap_interface_init(struct mmap_interface *intf,\n                               int
      fd, int pflag, int mflag,\n                               int len, int offset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam5
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:47,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:48,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:51,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:55,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:58,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:61,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:64,1
    - Dst: caml_alloc
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:65,1
    - Dst: Wsize_bsize
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:65,1
    - Dst: mmap_interface_init
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:68,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:68,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:68,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:70,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:70,1
    - Dst: caml_failwith
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:71,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - fd
    - pflag
    - mflag
    - len
    - offset
    argTypes:
    - value
    - value
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: stub_mmap_init
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam5
    - caml_failwith
    - CAMLlocal1
    - caml_invalid_argument
    - Wsize_bsize
    - Int_val
    - caml_alloc
    - BUILD_BUG_ON
    - CAMLreturn
    - mmap_interface_init
    - Intf_val
    linkageType: ''
    returnType: CAMLprim
    signature: "CAMLprim stub_mmap_init(value fd, value pflag, value mflag,\n                              value
      len, value offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:77,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:79,1
    - Dst: munmap
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:80,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:80,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:80,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:81,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - intf
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: stub_mmap_final
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - Intf_val
    - CAMLparam1
    - munmap
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_mmap_final(value intf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:88,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:89,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:93,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:94,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:96,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:97,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:98,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:99,1
    - Dst: caml_alloc_string
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:101,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:102,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:102,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:102,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - intf
    - start
    - len
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: stub_mmap_read
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLlocal1
    - caml_invalid_argument
    - Int_val
    - caml_alloc_string
    - CAMLreturn
    - String_val
    - CAMLparam3
    - memcpy
    - Intf_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_mmap_read(value intf, value start, value len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:109,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:113,1
    - Dst: caml_string_length
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:114,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:116,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:117,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:118,1
    - Dst: caml_invalid_argument
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:119,1
    - Dst: memcpy
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:121,1
    - Dst: Intf_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:121,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:121,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - intf
    - data
    - start
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: stub_mmap_write
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - caml_string_length
    - caml_invalid_argument
    - Int_val
    - CAMLreturn
    - String_val
    - CAMLparam3
    - memcpy
    - Intf_val
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_mmap_write(value intf, value data, value start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:128,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:129,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:131,1
    - Dst: getpagesize
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:131,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: stub_mmap_getpagesize
    functionSourceFile: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - CAMLlocal1
    - CAMLreturn
    - getpagesize
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_mmap_getpagesize(value unit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam2
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:28,1
    - Dst: CAMLlocal1
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:29,1
    - Dst: Wosize_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:30,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:30,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:36,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:36,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:38,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:38,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:38,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:40,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:40,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:41,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:41,1
    - Dst: Bool_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:42,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:42,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:46,1
    - Dst: poll
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:47,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:48,1
    - Dst: uerror
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:50,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:56,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:56,1
    - Dst: unix_error
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:58,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:59,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:59,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:60,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:60,1
    - Dst: Field
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:61,1
    - Dst: Val_bool
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:61,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:67,1
    - Dst: Val_int
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - fd_events
    - timeo
    argTypes:
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 68
    functionName: stub_select_on_poll
    functionSourceFile: /src/xen/tools/ocaml/xenstored/select_stubs.c
    functionUses: 0
    functionsReached:
    - Field
    - Val_bool
    - caml_leave_blocking_section
    - uerror
    - CAMLparam2
    - CAMLlocal1
    - Int_val
    - CAMLreturn
    - Bool_val
    - Wosize_val
    - unix_error
    - caml_enter_blocking_section
    - poll
    - Val_int
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_select_on_poll(value fd_events, value timeo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:73,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:76,1
    - Dst: setrlimit
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:77,1
    - Dst: uerror
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:77,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/xenstored/select_stubs.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - limit
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: stub_set_fd_limit
    functionSourceFile: /src/xen/tools/ocaml/xenstored/select_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLparam1
    - uerror
    - Int_val
    - setrlimit
    - CAMLreturn
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim stub_set_fd_limit(value limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/xenstored/systemd_stubs.c:32,1
    - Dst: sd_notify
      Src: /src/xen/tools/ocaml/xenstored/systemd_stubs.c:34,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/xenstored/systemd_stubs.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: ocaml_sd_notify_ready
    functionSourceFile: /src/xen/tools/ocaml/xenstored/systemd_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - sd_notify
    - CAMLparam1
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim ocaml_sd_notify_ready(value ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam1
      Src: /src/xen/tools/ocaml/xenstored/systemd_stubs.c:43,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/xenstored/systemd_stubs.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: ocaml_sd_notify_ready
    functionSourceFile: /src/xen/tools/ocaml/xenstored/systemd_stubs.c
    functionUses: 0
    functionsReached:
    - CAMLreturn
    - CAMLparam1
    linkageType: ''
    returnType: CAMLprim
    signature: CAMLprim ocaml_sd_notify_ready(value ignore)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAMLparam3
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:38,1
    - Dst: strdup
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:39,1
    - Dst: String_val
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:39,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:41,1
    - Dst: Int_val
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:42,1
    - Dst: caml_raise_out_of_memory
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:45,1
    - Dst: strchr
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:56,1
    - Dst: caml_enter_blocking_section
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:62,1
    - Dst: syslog
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:63,1
    - Dst: caml_leave_blocking_section
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:64,1
    - Dst: free
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:69,1
    - Dst: CAMLreturn
      Src: /src/xen/tools/ocaml/xenstored/syslog_stubs.c:70,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - facility
    - level
    - msg
    argTypes:
    - value
    - value
    - value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: stub_syslog
    functionSourceFile: /src/xen/tools/ocaml/xenstored/syslog_stubs.c
    functionUses: 0
    functionsReached:
    - caml_leave_blocking_section
    - free
    - syslog
    - Int_val
    - strchr
    - CAMLreturn
    - caml_raise_out_of_memory
    - strdup
    - String_val
    - caml_enter_blocking_section
    - CAMLparam3
    linkageType: ''
    returnType: value
    signature: value stub_syslog(value facility, value level, value msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/setenforce.c:22,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/setenforce.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/setenforce.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage (int argCnt, const char *args[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/setenforce.c:34,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/setenforce.c:36,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/setenforce.c:39,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/setenforce.c:40,1
    - Dst: strlen
      Src: /src/xen/tools/flask/utils/setenforce.c:45,1
    - Dst: strtol
      Src: /src/xen/tools/flask/utils/setenforce.c:46,1
    - Dst: xc_flask_setenforce
      Src: /src/xen/tools/flask/utils/setenforce.c:47,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/setenforce.c:49,1
    - Dst: xc_flask_setenforce
      Src: /src/xen/tools/flask/utils/setenforce.c:50,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/setenforce.c:51,1
    - Dst: xc_flask_setenforce
      Src: /src/xen/tools/flask/utils/setenforce.c:52,1
    - Dst: usage
      Src: /src/xen/tools/flask/utils/setenforce.c:54,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/setenforce.c:61,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/setenforce.c:62,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/flask/utils/setenforce.c:69,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/setenforce.c
    functionUses: 1
    functionsReached:
    - xc_flask_setenforce
    - xc_interface_open
    - strerror
    - fprintf
    - strlen
    - strtol
    - strcasecmp
    - xc_interface_close
    - usage
    linkageType: ''
    returnType: int
    signature: int main (int argCnt, const char *args[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/getenforce.c:22,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/getenforce.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/getenforce.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage (int argCnt, const char *args[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/getenforce.c:32,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/getenforce.c:34,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/getenforce.c:37,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/getenforce.c:38,1
    - Dst: xc_flask_getenforce
      Src: /src/xen/tools/flask/utils/getenforce.c:43,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/getenforce.c:47,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/getenforce.c:48,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/getenforce.c:55,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/getenforce.c:57,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/flask/utils/getenforce.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/getenforce.c
    functionUses: 1
    functionsReached:
    - xc_interface_open
    - xc_flask_getenforce
    - strerror
    - fprintf
    - printf
    - xc_interface_close
    - usage
    linkageType: ''
    returnType: int
    signature: int main (int argCnt, const char *args[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/get-bool.c:22,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/get-bool.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/get-bool.c
    functionUses: 2
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_getbool_byid
      Src: /src/xen/tools/flask/utils/get-bool.c:31,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/get-bool.c:35,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/get-bool.c:36,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/get-bool.c:40,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/get-bool.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: all_bools
    functionSourceFile: /src/xen/tools/flask/utils/get-bool.c
    functionUses: 0
    functionsReached:
    - xc_flask_getbool_byid
    - strerror
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: int all_bools(xc_interface *xch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/get-bool.c:54,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/get-bool.c:56,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/get-bool.c:59,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/get-bool.c:60,1
    - Dst: strcmp
      Src: /src/xen/tools/flask/utils/get-bool.c:65,1
    - Dst: all_bools
      Src: /src/xen/tools/flask/utils/get-bool.c:67,1
    - Dst: xc_flask_getbool_byname
      Src: /src/xen/tools/flask/utils/get-bool.c:71,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/get-bool.c:73,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/get-bool.c:74,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/get-bool.c:80,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/get-bool.c:82,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/flask/utils/get-bool.c:86,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 89
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/get-bool.c
    functionUses: 1
    functionsReached:
    - xc_flask_getbool_byname
    - xc_interface_open
    - strerror
    - fprintf
    - all_bools
    - printf
    - xc_interface_close
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/set-bool.c:22,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/set-bool.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/set-bool.c
    functionUses: 3
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:30,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:30,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:30,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:32,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:32,1
    - Dst: strcasecmp
      Src: /src/xen/tools/flask/utils/set-bool.c:32,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/set-bool.c:34,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/set-bool.c:35,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: str2bool
    functionSourceFile: /src/xen/tools/flask/utils/set-bool.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int str2bool(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/set-bool.c:45,1
    - Dst: str2bool
      Src: /src/xen/tools/flask/utils/set-bool.c:47,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/set-bool.c:49,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/set-bool.c:52,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/set-bool.c:53,1
    - Dst: xc_flask_setbool
      Src: /src/xen/tools/flask/utils/set-bool.c:58,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/set-bool.c:60,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/set-bool.c:61,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/flask/utils/set-bool.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/set-bool.c
    functionUses: 1
    functionsReached:
    - xc_flask_setbool
    - str2bool
    - xc_interface_open
    - strerror
    - fprintf
    - xc_interface_close
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:25,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/loadpolicy.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/loadpolicy.c
    functionUses: 4
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage (int argCnt, const char *args[])
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/loadpolicy.c:40,1
    - Dst: open
      Src: /src/xen/tools/flask/utils/loadpolicy.c:43,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:46,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:47,1
    - Dst: stat
      Src: /src/xen/tools/flask/utils/loadpolicy.c:52,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:55,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:56,1
    - Dst: malloc
      Src: /src/xen/tools/flask/utils/loadpolicy.c:60,1
    - Dst: mmap
      Src: /src/xen/tools/flask/utils/loadpolicy.c:63,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:66,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:67,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/loadpolicy.c:72,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:75,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:76,1
    - Dst: memcpy
      Src: /src/xen/tools/flask/utils/loadpolicy.c:81,1
    - Dst: read
      Src: /src/xen/tools/flask/utils/loadpolicy.c:83,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:86,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:87,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:92,1
    - Dst: xc_flask_load
      Src: /src/xen/tools/flask/utils/loadpolicy.c:96,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:100,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:101,1
    - Dst: printf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:107,1
    - Dst: free
      Src: /src/xen/tools/flask/utils/loadpolicy.c:111,1
    - Dst: munmap
      Src: /src/xen/tools/flask/utils/loadpolicy.c:114,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/loadpolicy.c:116,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/loadpolicy.c:116,1
    - Dst: close
      Src: /src/xen/tools/flask/utils/loadpolicy.c:119,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/flask/utils/loadpolicy.c:121,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 2
    argNames:
    - argCnt
    - args
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/loadpolicy.c
    functionUses: 1
    functionsReached:
    - open
    - read
    - free
    - munmap
    - stat
    - malloc
    - xc_interface_open
    - close
    - mmap
    - strerror
    - fprintf
    - printf
    - xc_interface_close
    - usage
    - memcpy
    - xc_flask_load
    linkageType: ''
    returnType: int
    signature: int main (int argCnt, const char *args[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:31,1
    - Dst: exit
      Src: /src/xen/tools/flask/utils/label-pci.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argCnt
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: usage
    functionSourceFile: /src/xen/tools/flask/utils/label-pci.c
    functionUses: 5
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage (int argCnt, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/flask/utils/label-pci.c:47,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/flask/utils/label-pci.c:55,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:58,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/label-pci.c:59,1
    - Dst: sscanf
      Src: /src/xen/tools/flask/utils/label-pci.c:64,1
    - Dst: snprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:67,1
    - Dst: fopen
      Src: /src/xen/tools/flask/utils/label-pci.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:72,1
    - Dst: strerror
      Src: /src/xen/tools/flask/utils/label-pci.c:73,1
    - Dst: xc_flask_add_device
      Src: /src/xen/tools/flask/utils/label-pci.c:78,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:80,1
    - Dst: fscanf
      Src: /src/xen/tools/flask/utils/label-pci.c:86,1
    - Dst: xc_flask_add_ioport
      Src: /src/xen/tools/flask/utils/label-pci.c:89,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:91,1
    - Dst: xc_flask_add_iomem
      Src: /src/xen/tools/flask/utils/label-pci.c:99,1
    - Dst: fprintf
      Src: /src/xen/tools/flask/utils/label-pci.c:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - argCnt
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 106
    functionName: main
    functionSourceFile: /src/xen/tools/flask/utils/label-pci.c
    functionUses: 1
    functionsReached:
    - snprintf
    - fopen
    - xc_interface_open
    - xc_flask_add_ioport
    - strerror
    - fprintf
    - xc_flask_add_device
    - sscanf
    - xc_flask_add_iomem
    - fscanf
    - usage
    linkageType: ''
    returnType: int
    signature: int main (int argCnt, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: bitmaskof
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitmaskof(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: fail
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(fmt, ...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_resource_op
      Src: /src/xen/tools/tests/tsx/test-tsx.c:102,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:108,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:109,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:117,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:122,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:129,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:131,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:138,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - msr
    - accessible
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 144
    functionName: test_tsx_msr_consistency
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - printf
    - fail
    - strerror
    - xc_resource_op
    linkageType: ''
    returnType: void
    signature: void test_tsx_msr_consistency(unsigned int msr, bool accessible)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:152,1
    - Dst: test_tsx_msr_consistency
      Src: /src/xen/tools/tests/tsx/test-tsx.c:153,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:156,1
    - Dst: test_tsx_msr_consistency
      Src: /src/xen/tools/tests/tsx/test-tsx.c:157,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:160,1
    - Dst: test_tsx_msr_consistency
      Src: /src/xen/tools/tests/tsx/test-tsx.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: test_tsx_msrs
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - printf
    - test_tsx_msr_consistency
    linkageType: ''
    returnType: void
    signature: void test_tsx_msrs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: probe_rtm_behaviour
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum rtm_behaviour
    signature: enum rtm_behaviour probe_rtm_behaviour(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/tools/tests/tsx/test-tsx.c:204,1
    - Dst: sigaction
      Src: /src/xen/tools/tests/tsx/test-tsx.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - signo
    - info
    - extra
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 251
    functionName: sigill_handler
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - sigaction
    - memcmp
    linkageType: ''
    returnType: void
    signature: void sigill_handler(int signo, siginfo_t *info, void *extra)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:261,1
    - Dst: sigaction
      Src: /src/xen/tools/tests/tsx/test-tsx.c:267,1
    - Dst: probe_rtm_behaviour
      Src: /src/xen/tools/tests/tsx/test-tsx.c:268,1
    - Dst: sigaction
      Src: /src/xen/tools/tests/tsx/test-tsx.c:269,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:280,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:282,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:287,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 294
    functionName: test_rtm_behaviour
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - probe_rtm_behaviour
    - fail
    - sigaction
    - printf
    linkageType: ''
    returnType: void
    signature: void test_rtm_behaviour(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pref
    argTypes:
    - struct cpu_policy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: dump_tsx_details
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_tsx_details(const struct cpu_policy *p, const char *pref)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dump_tsx_details
      Src: /src/xen/tools/tests/tsx/test-tsx.c:311,1
    - Dst: dump_tsx_details
      Src: /src/xen/tools/tests/tsx/test-tsx.c:312,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:317,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:325,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:330,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:332,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:337,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:342,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:345,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 25
    argCount: 2
    argNames:
    - max
    - def
    argTypes:
    - struct cpu_policy*
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 346
    functionName: test_guest_policies
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - dump_tsx_details
    - fail
    linkageType: ''
    returnType: void
    signature: "void test_guest_policies(const struct cpu_policy *max,\n                                const
      struct cpu_policy *def)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:352,1
    - Dst: test_guest_policies
      Src: /src/xen/tools/tests/tsx/test-tsx.c:353,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:358,1
    - Dst: test_guest_policies
      Src: /src/xen/tools/tests/tsx/test-tsx.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 361
    functionName: test_def_max_policies
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - test_guest_policies
    - printf
    linkageType: ''
    returnType: void
    signature: void test_def_max_policies(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_create
      Src: /src/xen/tools/tests/tsx/test-tsx.c:368,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:370,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:371,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:373,1
    - Dst: xc_cpu_policy_get_domain
      Src: /src/xen/tools/tests/tsx/test-tsx.c:375,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:378,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:379,1
    - Dst: dump_tsx_details
      Src: /src/xen/tools/tests/tsx/test-tsx.c:383,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:389,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:396,1
    - Dst: bitmaskof
      Src: /src/xen/tools/tests/tsx/test-tsx.c:407,1
    - Dst: bitmaskof
      Src: /src/xen/tools/tests/tsx/test-tsx.c:407,1
    - Dst: bitmaskof
      Src: /src/xen/tools/tests/tsx/test-tsx.c:409,1
    - Dst: xc_cpu_policy_set_domain
      Src: /src/xen/tools/tests/tsx/test-tsx.c:412,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:415,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:416,1
    - Dst: xc_cpu_policy_get_domain
      Src: /src/xen/tools/tests/tsx/test-tsx.c:421,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:424,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:425,1
    - Dst: dump_tsx_details
      Src: /src/xen/tools/tests/tsx/test-tsx.c:429,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:433,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:440,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/tests/tsx/test-tsx.c:447,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:449,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:450,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 451
    functionName: test_guest
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - xc_cpu_policy_get_domain
    - fail
    - xc_cpu_policy_set_domain
    - strerror
    - printf
    - dump_tsx_details
    - bitmaskof
    - xc_domain_destroy
    - xc_domain_create
    linkageType: ''
    returnType: void
    signature: void test_guest(struct xen_domctl_createdomain *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/tests/tsx/test-tsx.c:460,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:463,1
    - Dst: test_guest
      Src: /src/xen/tools/tests/tsx/test-tsx.c:464,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/tests/tsx/test-tsx.c:473,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:482,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:484,1
    - Dst: test_guest
      Src: /src/xen/tools/tests/tsx/test-tsx.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 487
    functionName: test_guests
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - printf
    - fail
    - test_guest
    - XEN_DOMCTL_GRANT_version
    linkageType: ''
    returnType: void
    signature: void test_guests(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpu_policy_get_system
      Src: /src/xen/tools/tests/tsx/test-tsx.c:498,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:511,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:518,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:524,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:525,1
    - Dst: dump_tsx_details
      Src: /src/xen/tools/tests/tsx/test-tsx.c:528,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/tsx/test-tsx.c:530,1
    - Dst: fail
      Src: /src/xen/tools/tests/tsx/test-tsx.c:532,1
    - Dst: strerror
      Src: /src/xen/tools/tests/tsx/test-tsx.c:533,1
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:535,1
    - Dst: test_tsx_msrs
      Src: /src/xen/tools/tests/tsx/test-tsx.c:537,1
    - Dst: test_rtm_behaviour
      Src: /src/xen/tools/tests/tsx/test-tsx.c:538,1
    - Dst: test_def_max_policies
      Src: /src/xen/tools/tests/tsx/test-tsx.c:539,1
    - Dst: test_guests
      Src: /src/xen/tools/tests/tsx/test-tsx.c:540,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 541
    functionName: test_tsx
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 0
    functionsReached:
    - fail
    - test_rtm_behaviour
    - xc_cpu_policy_get_system
    - test_tsx_msrs
    - xc_physinfo
    - test_guests
    - strerror
    - printf
    - dump_tsx_details
    - test_def_max_policies
    linkageType: ''
    returnType: void
    signature: void test_tsx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/tsx/test-tsx.c:545,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/tests/tsx/test-tsx.c:547,1
    - Dst: err
      Src: /src/xen/tools/tests/tsx/test-tsx.c:550,1
    - Dst: test_tsx
      Src: /src/xen/tools/tests/tsx/test-tsx.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: main
    functionSourceFile: /src/xen/tools/tests/tsx/test-tsx.c
    functionUses: 2
    functionsReached:
    - err
    - xc_interface_open
    - printf
    - test_tsx
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: BUG_ON
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: spin_lock_init
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: spin_lock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: spin_unlock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: rwlock_init
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rwlock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: read_lock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: read_unlock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: write_lock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: write_unlock
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: xmalloc
    functionSourceFile: /src/xen/tools/tests/rangeset/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: DECLARE_ACTIONS
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ACTIONS(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: DECLARE_RESULTS
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_RESULTS(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: print_range
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int print_range(unsigned long s, unsigned long e, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: count_ranges
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count_ranges(unsigned long s, unsigned long e, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: check_ranges
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_ranges(unsigned long s, unsigned long e, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:136,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:137,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:138,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - r
    - expected
    - nr_expected
    argTypes:
    - struct rangeset*
    - struct range*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: print_both
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 0
    functionsReached:
    - rangeset_report_ranges
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_both(struct rangeset *r, const struct range *expected,\n
      \                      unsigned int nr_expected)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_new
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:145,1
    - Dst: ASSERT
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:149,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:151,1
    - Dst: rangeset_purge
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:156,1
    - Dst: rangeset_add_range
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:164,1
    - Dst: rangeset_remove_range
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:168,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:174,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:177,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:189,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:192,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:193,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:199,1
    - Dst: print_both
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:201,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:208,1
    - Dst: printf
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:211,1
    - Dst: print_both
      Src: /src/xen/tools/tests/rangeset/test-rangeset.c:212,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 219
    functionName: main
    functionSourceFile: /src/xen/tools/tests/rangeset/test-rangeset.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - rangeset_new
    - rangeset_remove_range
    - rangeset_add_range
    - ASSERT
    - rangeset_purge
    - printf
    - rangeset_report_ranges
    - print_both
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: prefetch
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prefetch(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: spin_lock_init
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: spin_lock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: spin_unlock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: read_lock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: read_unlock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: write_lock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: write_unlock
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: is_hardware_domain
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_hardware_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: has_vpci
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpci(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: xzalloc
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xzalloc(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: xmalloc
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: xfree
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xfree(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: pci_get_pdev
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_get_pdev(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: pci_get_ro_map
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_get_ro_map(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: test_bit
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_bit(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: pci_conf_read8
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_conf_read8(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: pci_conf_read16
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_conf_read16(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: pci_conf_read32
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_conf_read32(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: BUG
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: ASSERT_UNREACHABLE
    functionSourceFile: /src/xen/tools/tests/vpci/emul.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: vpci_read8
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read8(const struct pci_dev *pdev, unsigned int reg,\n
      \                          void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: vpci_write8
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vpci_write8(const struct pci_dev *pdev, unsigned int reg,\n                        uint32_t
      val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: vpci_read16
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read16(const struct pci_dev *pdev, unsigned int reg,\n
      \                           void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: vpci_write16
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vpci_write16(const struct pci_dev *pdev, unsigned int reg,\n
      \                        uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: vpci_read32
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read32(const struct pci_dev *pdev, unsigned int reg,\n
      \                           void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: vpci_write32
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vpci_write32(const struct pci_dev *pdev, unsigned int reg,\n
      \                        uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: vpci_read32_mask
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read32_mask(const struct pci_dev *pdev, unsigned int
      reg,\n                                 void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: vpci_write32_mask
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vpci_write32_mask(const struct pci_dev *pdev, unsigned int reg,\n
      \                             uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - size
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: VPCI_READ
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_READ(reg, size, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - size
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: VPCI_READ_CHECK
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_READ_CHECK(reg, size, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - size
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: VPCI_WRITE
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_WRITE(reg, size, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - size
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: VPCI_WRITE_CHECK
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_WRITE_CHECK(reg, size, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fread
    - ','
    - fwrite
    - ','
    - 'off'
    - ','
    - size
    - ','
    - store
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: VPCI_ADD_REG
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_ADD_REG(fread, fwrite, off, size, store)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - fread
    - ','
    - fwrite
    - ','
    - 'off'
    - ','
    - size
    - ','
    - store
    - ','
    - ro_mask
    - ','
    - rw1c_mask
    - ','
    - rsvdp_mask
    - ','
    - rsvdz_mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: VPCI_ADD_REG_MASK
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "VPCI_ADD_REG_MASK(fread, fwrite, off, size, store,                     \\\n
      \                         ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fread
    - ','
    - fwrite
    - ','
    - 'off'
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: VPCI_ADD_INVALID_REG
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_ADD_INVALID_REG(fread, fwrite, off, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - fread
    - ','
    - fwrite
    - ','
    - 'off'
    - ','
    - size
    - ','
    - ro_mask
    - ','
    - rw1c_mask
    - ','
    - rsvdp_mask
    - ','
    - rsvdz_mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: VPCI_ADD_INVALID_REG_MASK
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "VPCI_ADD_INVALID_REG_MASK(fread, fwrite, off, size,                   \\\n
      \                                 ro_mask, rw1c_mask, rsvdp_mask, rsvdz_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'off'
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: VPCI_REMOVE_REG
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_REMOVE_REG(off, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'off'
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: VPCI_REMOVE_INVALID_REG
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_REMOVE_INVALID_REG(off, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:147,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:151,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - reg
    - val
    argTypes:
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: multiread4_check
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached:
    - VPCI_READ_CHECK
    linkageType: ''
    returnType: void
    signature: void multiread4_check(unsigned int reg, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:163,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:164,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:170,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:171,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:174,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - reg
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: multiwrite4_check
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 0
    functionsReached:
    - VPCI_WRITE_CHECK
    - multiread4_check
    linkageType: ''
    returnType: void
    signature: void multiwrite4_check(unsigned int reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/tests/vpci/main.c:193,1
    - Dst: spin_lock_init
      Src: /src/xen/tools/tests/vpci/main.c:194,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:196,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:197,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:198,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:200,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:201,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:202,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:204,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:205,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:206,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:208,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:209,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:210,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:212,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:213,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:214,1
    - Dst: VPCI_ADD_INVALID_REG
      Src: /src/xen/tools/tests/vpci/main.c:238,1
    - Dst: VPCI_ADD_INVALID_REG
      Src: /src/xen/tools/tests/vpci/main.c:241,1
    - Dst: VPCI_ADD_INVALID_REG
      Src: /src/xen/tools/tests/vpci/main.c:244,1
    - Dst: VPCI_ADD_INVALID_REG
      Src: /src/xen/tools/tests/vpci/main.c:247,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:250,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:251,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:252,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:253,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:254,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:255,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:258,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:259,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:260,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:261,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:262,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:263,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:264,1
    - Dst: VPCI_ADD_INVALID_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:265,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:268,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:269,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:270,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:271,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:272,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:275,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:276,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:279,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:280,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:281,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:284,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:287,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:288,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:309,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:310,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:311,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:312,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:314,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:315,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:317,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:320,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:321,1
    - Dst: multiread4_check
      Src: /src/xen/tools/tests/vpci/main.c:322,1
    - Dst: multiwrite4_check
      Src: /src/xen/tools/tests/vpci/main.c:324,1
    - Dst: multiwrite4_check
      Src: /src/xen/tools/tests/vpci/main.c:325,1
    - Dst: multiwrite4_check
      Src: /src/xen/tools/tests/vpci/main.c:326,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:337,1
    - Dst: VPCI_ADD_REG
      Src: /src/xen/tools/tests/vpci/main.c:338,1
    - Dst: VPCI_WRITE_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:339,1
    - Dst: VPCI_ADD_REG_MASK
      Src: /src/xen/tools/tests/vpci/main.c:351,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:359,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:360,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:361,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:362,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:366,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:367,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:368,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:369,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:373,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:374,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:375,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:376,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:380,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:381,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:382,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:383,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:387,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:388,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:389,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:390,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:394,1
    - Dst: VPCI_WRITE
      Src: /src/xen/tools/tests/vpci/main.c:395,1
    - Dst: VPCI_READ_CHECK
      Src: /src/xen/tools/tests/vpci/main.c:396,1
    - Dst: assert
      Src: /src/xen/tools/tests/vpci/main.c:397,1
    - Dst: VPCI_REMOVE_REG
      Src: /src/xen/tools/tests/vpci/main.c:400,1
    - Dst: VPCI_REMOVE_REG
      Src: /src/xen/tools/tests/vpci/main.c:401,1
    - Dst: VPCI_REMOVE_REG
      Src: /src/xen/tools/tests/vpci/main.c:402,1
    - Dst: VPCI_REMOVE_REG
      Src: /src/xen/tools/tests/vpci/main.c:403,1
    - Dst: VPCI_REMOVE_REG
      Src: /src/xen/tools/tests/vpci/main.c:404,1
    - Dst: VPCI_REMOVE_INVALID_REG
      Src: /src/xen/tools/tests/vpci/main.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (r32.val == 0x000f0f0fU)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/xen/tools/tests/vpci/main.c
    - condition: (r32.val == 0x000f0f0fU)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/xen/tools/tests/vpci/main.c
    - condition: (r32.val == 0x000f000fU)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/xen/tools/tests/vpci/main.c
    - condition: (r32.val == 0x000f0f0fU)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/xen/tools/tests/vpci/main.c
    - condition: (r32.val == 0x000f0f0fU)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/xen/tools/tests/vpci/main.c
    - condition: (r32.val == 0x000f050fU)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/xen/tools/tests/vpci/main.c
    constantsTouched: []
    func_position:
      end: 409
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 409
    functionName: main
    functionSourceFile: /src/xen/tools/tests/vpci/main.c
    functionUses: 2
    functionsReached:
    - VPCI_WRITE_CHECK
    - multiwrite4_check
    - VPCI_READ_CHECK
    - VPCI_ADD_INVALID_REG
    - spin_lock_init
    - VPCI_REMOVE_REG
    - multiread4_check
    - VPCI_ADD_INVALID_REG_MASK
    - VPCI_ADD_REG
    - VPCI_WRITE
    - VPCI_ADD_REG_MASK
    - INIT_LIST_HEAD
    - assert
    - VPCI_REMOVE_INVALID_REG
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: PFN_DOWN
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_DOWN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PFN_UP
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_UP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: paddr_to_pfn
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ASSERT_UNREACHABLE
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_UNREACHABLE()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/tests/pdx/harness.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - addr
    - size
    - 'off'
    - value
    argTypes:
    - unsigned long*
    - unsigned int
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: find_next
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int find_next(\n    const unsigned long *addr, unsigned int
      size, unsigned int off, bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - s
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: find_next_zero_bit
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_zero_bit(a, s, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - s
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: find_next_bit
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_bit(a, s, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: flsl
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ffsl
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ffsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: SWAP
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - elem
    - ','
    - nr
    - ','
    - size
    - ','
    - cmp
    - ','
    - swp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: sort
    functionSourceFile: /src/xen/tools/tests/pdx/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sort(elem, nr, size, cmp, swp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:21,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: print_ranges
    functionSourceFile: /src/xen/tools/tests/pdx/test-pdx.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ranges(const struct range *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/pdx/test-pdx.c:197,1
    - Dst: pfn_pdx_compression_reset
      Src: /src/xen/tools/tests/pdx/test-pdx.c:201,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/pdx/test-pdx.c:203,1
    - Dst: pfn_pdx_add_region
      Src: /src/xen/tools/tests/pdx/test-pdx.c:211,1
    - Dst: pfn_pdx_compression_setup
      Src: /src/xen/tools/tests/pdx/test-pdx.c:215,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:217,1
    - Dst: print_ranges
      Src: /src/xen/tools/tests/pdx/test-pdx.c:219,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/pdx/test-pdx.c:228,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/tools/tests/pdx/test-pdx.c:236,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/tools/tests/pdx/test-pdx.c:237,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:239,1
    - Dst: print_ranges
      Src: /src/xen/tools/tests/pdx/test-pdx.c:242,1
    - Dst: pdx_to_pfn
      Src: /src/xen/tools/tests/pdx/test-pdx.c:246,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:246,1
    - Dst: pdx_to_pfn
      Src: /src/xen/tools/tests/pdx/test-pdx.c:247,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:247,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:249,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:250,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:251,1
    - Dst: pdx_to_pfn
      Src: /src/xen/tools/tests/pdx/test-pdx.c:251,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:251,1
    - Dst: printf
      Src: /src/xen/tools/tests/pdx/test-pdx.c:252,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:253,1
    - Dst: pdx_to_pfn
      Src: /src/xen/tools/tests/pdx/test-pdx.c:254,1
    - Dst: pfn_to_pdx
      Src: /src/xen/tools/tests/pdx/test-pdx.c:254,1
    - Dst: print_ranges
      Src: /src/xen/tools/tests/pdx/test-pdx.c:255,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 262
    functionName: main
    functionSourceFile: /src/xen/tools/tests/pdx/test-pdx.c
    functionUses: 2
    functionsReached:
    - pdx_to_pfn
    - pfn_pdx_compression_setup
    - ARRAY_SIZE
    - pfn_pdx_compression_reset
    - pfn_to_pdx
    - pfn_pdx_add_region
    - pdx_is_region_compressible
    - print_ranges
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:79,1
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:80,1
    - Dst: struct test*::func_init
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:86,1
    - Dst: clock_gettime
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:89,1
    - Dst: struct test*::func
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:92,1
    - Dst: clock_gettime
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:95,1
    - Dst: struct test*::func_deinit
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:108,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:114,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:117,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:119,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:122,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:123,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - tst
    - iters
    - no_clock
    argTypes:
    - struct test*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 127
    functionName: call_test
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    - xs_rm
    - struct test*::func_init
    - struct test*::func_deinit
    - struct test*::func
    - printf
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: int call_test(struct test *tst, int iters, bool no_clock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:135,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:137,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:138,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:139,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:140,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:141,1
    - Dst: exit
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: usage
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 6
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: ret0
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ret0(uintptr_t par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:156,1
    - Dst: memcmp
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:160,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - node
    - data
    - size
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: verify_node
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - free
    - xs_read
    - memcmp
    linkageType: ''
    returnType: int
    signature: int verify_node(char *node, char *data, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: test_read_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_read_init(uintptr_t par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:178,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: test_read
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - free
    - xs_read
    linkageType: ''
    returnType: int
    signature: int test_read(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: test_write_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_write_init(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: test_write
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_write(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: test_write_deinit
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - verify_node
    linkageType: ''
    returnType: int
    signature: int test_write_deinit(uintptr_t par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: test_dir_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_dir_init(uintptr_t par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_directory
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:218,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: test_dir
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - free
    - xs_directory
    linkageType: ''
    returnType: int
    signature: int test_dir(uintptr_t par)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_directory
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:232,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: test_dir_deinit
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - free
    - xs_directory
    linkageType: ''
    returnType: int
    signature: int test_dir_deinit(uintptr_t par)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: test_rm_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_rm_init(uintptr_t par)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 270
    functionName: test_rm
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_rm
    linkageType: ''
    returnType: int
    signature: int test_rm(uintptr_t par)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xs_transaction_start
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:283,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: test_ta1
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_transaction_end
    - xs_transaction_start
    linkageType: ''
    returnType: int
    signature: int test_ta1(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: test_ta2_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_ta2_init(uintptr_t par)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xs_transaction_start
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:313,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:316,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:319,1
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:320,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:322,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:326,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:329,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:333,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:336,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 349
    functionName: test_ta2
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    - free
    - xs_transaction_start
    - xs_read
    - xs_transaction_end
    linkageType: ''
    returnType: int
    signature: int test_ta2(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: test_ta2_deinit
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - verify_node
    linkageType: ''
    returnType: int
    signature: int test_ta2_deinit(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: test_ta3_init
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    linkageType: ''
    returnType: int
    signature: int test_ta3_init(uintptr_t par)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xs_transaction_start
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:368,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:371,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:374,1
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:375,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:377,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:381,1
    - Dst: xs_write
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:384,1
    - Dst: xs_read
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:386,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:390,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:393,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:399,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 401
    functionName: test_ta3
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_write
    - free
    - xs_transaction_start
    - xs_read
    - xs_transaction_end
    linkageType: ''
    returnType: int
    signature: int test_ta3(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_node
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: test_ta3_deinit
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - verify_node
    linkageType: ''
    returnType: int
    signature: int test_ta3_deinit(uintptr_t par)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - f
    - ','
    - p
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: TEST
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST(s, f, p, l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:430,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:434,1
    - Dst: xs_directory
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:438,1
    - Dst: xs_rm
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:440,1
    - Dst: free
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:441,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 446
    functionName: cleanup
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - xs_directory
    - free
    - xs_transaction_start
    - xs_transaction_end
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:455,1
    - Dst: atoi
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:461,1
    - Dst: atoi
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:467,1
    - Dst: usage
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:473,1
    - Dst: usage
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:478,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:482,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:483,1
    - Dst: asprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:487,1
    - Dst: getpid
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:487,1
    - Dst: err
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:488,1
    - Dst: memset
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:492,1
    - Dst: asprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:493,1
    - Dst: err
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:494,1
    - Dst: xs_open
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:497,1
    - Dst: fprintf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:500,1
    - Dst: exit
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:501,1
    - Dst: time
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:506,1
    - Dst: srandom
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:507,1
    - Dst: time
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:509,1
    - Dst: random
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:511,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:511,1
    - Dst: call_test
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:512,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:516,1
    - Dst: strcmp
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:518,1
    - Dst: call_test
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:519,1
    - Dst: cleanup
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:523,1
    - Dst: xs_close
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:525,1
    - Dst: printf
      Src: /src/xen/tools/tests/xenstore/test-xenstore.c:528,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 532
    functionName: main
    functionSourceFile: /src/xen/tools/tests/xenstore/test-xenstore.c
    functionUses: 2
    functionsReached:
    - err
    - getpid
    - strcmp
    - xs_open
    - ARRAY_SIZE
    - cleanup
    - call_test
    - time
    - getopt_long
    - srandom
    - fprintf
    - printf
    - memset
    - exit
    - xs_close
    - asprintf
    - random
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 12
    functionName: gcc11_wrap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gcc11_wrap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: cpu_has_amd_erratum
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_has_amd_erratum(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: read_bndcfgu
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_bndcfgu()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: get_fpu_save_area
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct x86_fxsr
    signature: struct x86_fxsr *get_fpu_save_area(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: emul_save_fpu_state
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void emul_save_fpu_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: emul_restore_fpu_state
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void emul_restore_fpu_state(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpu_policy_fill_native
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:78,1
    - Dst: assert
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:104,1
    - Dst: assert
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:111,1
    - Dst: mprotect
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ebx < sizeof(fpu_save_area))
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    - condition: (cpu_has_fxsr)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    constantsTouched: []
    func_position:
      end: 130
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 130
    functionName: emul_test_init
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached:
    - mprotect
    - x86_cpu_policy_fill_native
    - assert
    linkageType: ''
    returnType: bool
    signature: bool emul_test_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - leaf
    - subleaf
    - res
    - ctxt
    argTypes:
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: emul_test_cpuid
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int emul_test_cpuid(\n    uint32_t leaf,\n    uint32_t subleaf,\n
      \   struct cpuid_leaf *res,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 190
    functionName: emul_test_read_cr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int emul_test_read_cr(\n    unsigned int reg,\n    unsigned long *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:199,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 219
    functionName: emul_test_read_xcr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - x86_emul_hw_exception
    linkageType: ''
    returnType: int
    signature: "int emul_test_read_xcr(\n    unsigned int reg,\n    uint64_t *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - type
    - ctxt
    argTypes:
    - enum x86_emulate_fpu_type
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 246
    functionName: emul_test_get_fpu
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int emul_test_get_fpu(\n    enum x86_emulate_fpu_type type,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctxt
    - backout
    - aux
    argTypes:
    - struct x86_emulate_ctxt*
    - enum x86_emulate_fpu_type
    - struct x86_emul_fpu_aux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: emul_test_put_fpu
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void emul_test_put_fpu(\n    struct x86_emulate_ctxt *ctxt,\n    enum
      x86_emulate_fpu_type backout,\n    const struct x86_emul_fpu_aux *aux)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: rdpkru
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rdpkru(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: wrpkru
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrpkru(unsigned int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - m
    - ','
    - p
    - ','
    - sp
    - ','
    - o
    - ','
    - e
    - ','
    - vs
    - ','
    - es
    - ','
    - sc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: INSNX
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSNX(m, p, sp, o, e, vs, es, sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - m
    - ','
    - p
    - ','
    - sp
    - ','
    - o
    - ','
    - vs
    - ','
    - es
    - ','
    - sc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: INSN
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN(m, p, sp, o, vs, es, sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - sp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: INSN_PFP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_PFP(m, sp, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - sp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: INSN_PFP_NB
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_PFP_NB(m, sp, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - sp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: INSN_SFP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_SFP(m, sp, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - sp
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: INSN_FP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_FP(m, sp, o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - seg
    - offset
    - bytes
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 758
    functionName: record_access
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool record_access(enum x86_segment seg, unsigned long offset,\n                          unsigned
      int bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_access
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:763,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 767
    functionName: read
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 5
    functionsReached:
    - memset
    - record_access
    linkageType: ''
    returnType: int
    signature: "int read(enum x86_segment seg, unsigned long offset, void *p_data,\n
      \               unsigned int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_access
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 775
    functionName: write
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 9
    functionsReached:
    - record_access
    linkageType: ''
    returnType: int
    signature: "int write(enum x86_segment seg, unsigned long offset, void *p_data,\n
      \                unsigned int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:782,1
    - Dst: strstr
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:783,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:840,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:878,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:900,1
    - Dst: x86_emulate
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:902,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:922,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:940,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:947,1
    - Dst: x86_emulate
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:949,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:960,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:967,1
    - Dst: exit
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:969,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 127
    argCount: 4
    argNames:
    - test
    - vl
    - instr
    - ctxt
    argTypes:
    - struct test*
    - enum vl
    - unsigned char*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 970
    functionName: test_one
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - x86_emulate
    - printf
    - memset
    - strstr
    - ASSERT_UNREACHABLE
    - exit
    linkageType: ''
    returnType: void
    signature: "void test_one(const struct test *test, enum vl vl,\n                     unsigned
      char *instr, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:981,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:981,1
    - Dst: test_one
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:983,1
    - Dst: snprintf
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:986,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:986,1
    - Dst: test_one
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 8
    argNames:
    - tmpl
    - vl
    - esz1
    - suffix1
    - esz2
    - suffix2
    - instr
    - ctxt
    argTypes:
    - struct test*
    - enum vl
    - enum esz
    - char*
    - enum esz
    - char*
    - unsigned char*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 989
    functionName: test_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached:
    - snprintf
    - test_one
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void test_pair(const struct test *tmpl, enum vl vl,\n                      enum
      esz esz1, const char *suffix1,\n                      enum esz esz2, const char
      *suffix2,\n                      unsigned char *instr, struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: test_one
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1015,1
    - Dst: test_one
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1020,1
    - Dst: test_pair
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1024,1
    - Dst: test_pair
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1029,1
    - Dst: strncmp
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1030,1
    - Dst: test_pair
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1036,1
    - Dst: test_pair
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1042,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 6
    argNames:
    - tests
    - nr_test
    - vl
    - nr_vl
    - instr
    - ctxt
    argTypes:
    - struct test[]
    - unsigned int
    - unsigned char[]
    - unsigned int
    - void*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 1050
    functionName: test_group
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached:
    - strncmp
    - test_pair
    - test_one
    linkageType: ''
    returnType: void
    signature: "void test_group(const struct test tests[], unsigned int nr_test,\n
      \                      const unsigned char vl[], unsigned int nr_vl,\n                       void
      *instr, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1069,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1070,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1071,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1072,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1073,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1074,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1075,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1076,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1077,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1078,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1079,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1080,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1081,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1082,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1083,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1084,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1085,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1086,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1087,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1088,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1089,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1093,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1094,1
    - Dst: RUN
      Src: /src/xen/tools/tests/x86_emulator/evex-disp8.c:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 3
    argNames:
    - instr
    - ctxt
    - ops
    argTypes:
    - void*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1097
    functionName: evex_disp8_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 0
    functionsReached:
    - RUN
    linkageType: ''
    returnType: void
    signature: "void evex_disp8_test(void *instr, struct x86_emulate_ctxt *ctxt,\n
      \                    const struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - feat
    - ','
    - vl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1068
    functionName: RUN
    functionSourceFile: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUN(feat, vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 14
    functionName: ENTRY
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: ENTRY
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: DECL_PAIR
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_PAIR(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: DECL_QUARTET
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_QUARTET(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: DECL_OCTET
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_OCTET(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: B
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: B_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B_(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: B
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: B
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: BR
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: BR2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BR2(n, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - insn
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: REN
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REN(insn, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: OVR
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: OVR_SFP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_SFP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: OVR_BW
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_BW(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: OVR_DQ
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_DQ(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: OVR_VFP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_VFP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: OVR_FMA
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_FMA(n, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: OVR_FP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_FP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: OVR_INT
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OVR_INT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: touch
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: touch(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: undef
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: vec_t
    signature: vec_t undef(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: to_mask
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_mask(msk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: widen
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: to_mask
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_mask(msk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: BG_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BG_(dt, it, reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: BS_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BS_(dt, it, mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: BG_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BG_(dt, it, reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: BS_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BS_(dt, it, mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: BG
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BG(dt, it, reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - dt
    - ','
    - it
    - ','
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: BS
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BS(dt, it, mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mem
    - ','
    - idx
    - ','
    - reg
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: scatter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scatter(mem, idx, reg, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - reg
    - ','
    - mem
    - ','
    - idx
    - ','
    - msk
    - ','
    - scl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: gather
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gather(reg, mem, idx, msk, scl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: GLUE_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLUE_(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: GLUE
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLUE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: PUT2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT2(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: PUT4
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT4(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: PUT8
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT8(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: PUT16
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT16(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: PUT32
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT32(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: PUT64
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT64(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: ((vec_t)
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: typeof
    signature: typeof ((vec_t)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:225,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:226,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:228,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:236,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:244,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:252,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:260,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:262,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:274,1
    - Dst: gather
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:283,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:301,1
    - Dst: scatter
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:303,1
    - Dst: scatter
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:310,1
    - Dst: scatter
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:317,1
    - Dst: scatter
      Src: /src/xen/tools/tests/x86_emulator/simd-sg.c:322,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 330
    functionName: sg_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sg.c
    functionUses: 0
    functionsReached:
    - scatter
    - touch
    - eq
    - gather
    linkageType: ''
    returnType: int
    signature: int sg_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ASSERT_UNREACHABLE
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: DEFINE_PER_CPU
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU(type, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: this_cpu
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: this_cpu(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: likely
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: unlikely
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'yes'
    - ','
    - 'no'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ASM_FLAG_OUT
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_FLAG_OUT(yes, no)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'yes'
    - ','
    - 'no'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ASM_FLAG_OUT
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_FLAG_OUT(yes, no)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: is_canonical_address
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_canonical_address(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: place_ret
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *place_ret(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: WRAP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xcr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: xgetbv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xgetbv(uint32_t xcr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xgetbv
      Src: /src/xen/tools/tests/x86_emulator/x86-emulate.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: xcr0_mask
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached:
    - xgetbv
    linkageType: ''
    returnType: bool
    signature: bool xcr0_mask(uint64_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: cache_line_size
    functionSourceFile: /src/xen/tools/tests/x86_emulator/x86-emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cache_line_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: lane_shr_unit
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lane_shr_unit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: lane_shr_unit
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lane_shr_unit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: CLMUL
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLMUL(op, x, y, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: clmul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul(x, y, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: clmul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul(x, y, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: clmul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul(x, y, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: clmul_ll
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul_ll(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: clmul_hl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul_hl(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: clmul_lh
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul_lh(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: clmul_hh
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clmul_hh(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: lane_shr_i
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lane_shr_i(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: lane_shr_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lane_shr_v(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: lane_shr_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lane_shr_v(x, n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:82,1
    - Dst: clmul_ll
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:83,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:84,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:86,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:91,1
    - Dst: clmul_ll
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:92,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:93,1
    - Dst: clmul_lh
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:94,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:95,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:100,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:110,1
    - Dst: clmul_lh
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:111,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:112,1
    - Dst: clmul_hl
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:113,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:115,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:117,1
    - Dst: clmul_ll
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:118,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:119,1
    - Dst: clmul_hh
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:120,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:121,1
    - Dst: lane_shr_v
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:125,1
    - Dst: lane_shr_v
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:126,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:129,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:130,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:140,1
    - Dst: lane_shr_i
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:141,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:142,1
    - Dst: lane_shr_i
      Src: /src/xen/tools/tests/x86_emulator/simd-clmul.c:143,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 150
    functionName: clmul_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-clmul.c
    functionUses: 0
    functionsReached:
    - eq
    - clmul_hh
    - clmul_lh
    - clmul_ll
    - lane_shr_i
    - touch
    - lane_shr_v
    - clmul_hl
    linkageType: ''
    returnType: int
    signature: int clmul_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - op
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: AES
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES(op, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: imc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - op
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: AES
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES(op, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: imc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - op
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: AES
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AES(op, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: imc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: aes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes(op, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: aes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes(op, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: aes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes(op, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:65,1
    - Dst: imc
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:66,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:67,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:69,1
    - Dst: aes
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:70,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:71,1
    - Dst: aes
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:72,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:74,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:76,1
    - Dst: aes
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:77,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:78,1
    - Dst: aes
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:79,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:80,1
    - Dst: imc
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:81,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:83,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:86,1
    - Dst: __builtin_ia32_aeskeygenassist128
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:87,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:88,1
    - Dst: __builtin_ia32_pshufb128
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:89,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-aes.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: aes_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-aes.c
    functionUses: 0
    functionsReached:
    - eq
    - imc
    - __builtin_ia32_pshufb128
    - aes
    - touch
    - __builtin_ia32_aeskeygenassist128
    linkageType: ''
    returnType: int
    signature: int aes_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bv
    argTypes:
    - byte_vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: _to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _to_bool(byte_vec_t bv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: to_wint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_wint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: to_u_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_u_int(type, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: to_u_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_u_int(type, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: to_u_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_u_int(type, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: to_uint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: to_uwint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uwint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: to_uint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: to_w_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_w_int(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: to_wint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_wint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: to_uwint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uwint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: to_uint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: to_wint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_wint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: to_uwint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uwint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: to_uint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: high_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: insert_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_half(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - lh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: _half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _half(x, lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: high_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: insert_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_half(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - lh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: _half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _half(x, lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: high_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: insert_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_half(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: to_w_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_w_int(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: to_wint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_wint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: to_uwint
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_uwint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: to_int
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_int(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: scalar_1op
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scalar_1op(x, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: scalar_2op
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scalar_2op(x, y, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: high_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_ia32_movlhps
      Src: /src/xen/tools/tests/x86_emulator/simd.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - vec_t
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: movlhps
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 1
    functionsReached:
    - __builtin_ia32_movlhps
    linkageType: ''
    returnType: vec_t
    signature: vec_t movlhps(vec_t x, vec_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: insert_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_pair(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - lh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: _half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _half(x, lh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: high_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: low_quarter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_quarter(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: broadcast_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_pair(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: broadcast_octet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_octet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: insert_octet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_octet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: shrink1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 380
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: broadcast_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_quartet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: insert_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_pair(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: insert_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_quartet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 390
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: broadcast_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_pair(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 419
    functionName: insert_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_pair(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: broadcast_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_quartet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: insert_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_quartet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 459
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: getexp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getexp(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: getmant
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getmant(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 470
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: scale
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scale(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    functionName: shrink1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    functionName: shrink2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 479
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 544
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 558
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 562
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 568
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 574
    functionName: recip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: recip(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 575
    functionName: rsqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rsqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 576
    functionName: sqrt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqrt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 590
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_half(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 600
    functionName: low_quarter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low_quarter(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: broadcast2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: broadcast_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_pair(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: broadcast_octet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_octet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    functionName: insert_octet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_octet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 630
    functionName: broadcast_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_quartet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: insert_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_pair(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 637
    functionName: insert_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_quartet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 639
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 643
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 647
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 648
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 649
    functionName: shrink1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 656
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: broadcast2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 665
    functionName: broadcast_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_pair(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: insert_pair
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_pair(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: broadcast_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast_quartet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 670
    functionName: insert_quartet
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insert_quartet(x, y, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 673
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 674
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 675
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 677
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 685
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 686
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 688
    functionName: swap3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: swap3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 697
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 699
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 700
    functionName: mul_full
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_full(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 703
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 704
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: mul_full
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_full(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 708
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 709
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 710
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 712
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 713
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 723
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 728
    functionName: broadcast2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 730
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 733
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 735
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 736
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 739
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 740
    functionName: shrink1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: shrink2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: shrink3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 744
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    functionName: broadcast2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 759
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 768
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 773
    functionName: shrink1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 774
    functionName: shrink2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shrink2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 775
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 778
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 779
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 780
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 785
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 789
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 791
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 792
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 793
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 795
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 796
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 799
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 801
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 802
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 806
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 807
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 810
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 815
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 816
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 817
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 819
    functionName: interleave_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 820
    functionName: interleave_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: interleave_lo(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 821
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 824
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 825
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 828
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 829
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 831
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 833
    functionName: mul_full
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_full(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 840
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - func
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 848
    functionName: swap_lanes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap_lanes(x, y, func, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 850
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 851
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 853
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 855
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 856
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 857
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 858
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 859
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 861
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 863
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 864
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 865
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 866
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 867
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 875
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 877
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 879
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 884
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 885
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 892
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 893
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 894
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 895
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 896
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 897
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 899
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 900
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 901
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 902
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 903
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 905
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 906
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 907
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 908
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 909
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 910
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 912
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 913
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 914
    functionName: mul_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_hi(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 915
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 916
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 918
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 920
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 924
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 925
    functionName: mul_full
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_full(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 926
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 935
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 937
    functionName: broadcast
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: broadcast(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 942
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 943
    functionName: dup_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 944
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 945
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 946
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 948
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 953
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 954
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 955
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 959
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 960
    functionName: dup_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 961
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 978
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 979
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 981
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 982
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 987
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 991
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 996
    functionName: dup_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 997
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 999
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 0
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: dup_hi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1010
    functionName: dup_lo
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup_lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1014
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1016
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: abs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1022
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1026
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1028
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1030
    functionName: copysignz
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copysignz(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1033
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1040
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1041
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1042
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1043
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1044
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1046
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1047
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1049
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1050
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1051
    functionName: mul_full
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul_full(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1054
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1056
    functionName: widen3
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1058
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1059
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1060
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1061
    functionName: widen2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1062
    functionDepth: 0
    functionLinenumber: 1062
    functionLinenumberEnd: 1063
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1064
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1065
    functionName: widen1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: widen1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1070
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1072
    functionName: dot_product
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dot_product(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1073
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1074
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1076
    functionName: dot_product
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dot_product(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1077
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1078
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1081
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1083
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1085
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1087
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1089
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1097
    functionName: dot_product
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dot_product(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1098
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1099
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1104
    functionName: select2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select2(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1105
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1107
    functionName: mix
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1108
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    functionName: select2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select2(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1114
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1118
    functionName: max
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1119
    functionName: min
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1122
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1124
    functionName: trunc
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trunc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1135
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1137
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1142
    functionName: swap2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1144
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1156
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1173
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1178
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1182
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1185
    functionName: hsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1189
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - y
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1194
    functionName: select
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: select(d, x, y, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1196
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1198
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1202
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1204
    functionName: frac
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: frac(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1224
    functionName: low_half
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: half_t
    signature: half_t low_half(vec_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1241
    functionName: low_quarter
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: quarter_t
    signature: quarter_t low_quarter(vec_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1258
    functionName: low_eighth
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: eighth_t
    signature: eighth_t low_eighth(vec_t x)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1334,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1336,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1337,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1339,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1341,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1342,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1343,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1345,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1347,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1348,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1352,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1354,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1356,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1358,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1359,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1360,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1364,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1367,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1369,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1371,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1378,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1380,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1381,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1382,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1383,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1387,1
    - Dst: to_int
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1388,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1389,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1390,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1393,1
    - Dst: recip
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1394,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1395,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1396,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1397,1
    - Dst: to_int
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1397,1
    - Dst: recip
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1397,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1401,1
    - Dst: rsqrt
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1402,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1403,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1404,1
    - Dst: to_int
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1404,1
    - Dst: recip
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1404,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1405,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1406,1
    - Dst: to_int
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1406,1
    - Dst: to_int
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1406,1
    - Dst: recip
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1406,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1413,1
    - Dst: to_wint
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1414,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1415,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1416,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1420,1
    - Dst: to_uint
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1421,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1422,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1423,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1427,1
    - Dst: to_uwint
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1428,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1429,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1430,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1435,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1436,1
    - Dst: sqrt
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1436,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1442,1
    - Dst: trunc
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1443,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1444,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1448,1
    - Dst: frac
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1449,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1450,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1451,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1454,1
    - Dst: frac
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1455,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1456,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1457,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1462,1
    - Dst: trunc
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1463,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1464,1
    - Dst: frac
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1465,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1466,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1467,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1474,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1476,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1480,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1483,1
    - Dst: mul_hi
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1484,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1485,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1487,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1489,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1495,1
    - Dst: mul_full
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1496,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1497,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1505,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1512,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1514,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1516,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1517,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1519,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1521,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1522,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1534,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1536,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1538,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1540,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1541,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1544,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1545,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1563,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1565,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1567,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1569,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1572,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1574,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1583,1
    - Dst: min
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1584,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1585,1
    - Dst: max
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1586,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1587,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1588,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1592,1
    - Dst: max
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1593,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1594,1
    - Dst: min
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1595,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1596,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1597,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1603,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1604,1
    - Dst: abs
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1604,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1608,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1609,1
    - Dst: copysignz
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1609,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1613,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1614,1
    - Dst: swap
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1614,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1618,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1619,1
    - Dst: swap2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1619,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1623,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1624,1
    - Dst: swap3
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1624,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1625,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1629,1
    - Dst: broadcast
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1629,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1633,1
    - Dst: broadcast2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1633,1
    - Dst: low_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1638,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1640,1
    - Dst: broadcast_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1641,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1642,1
    - Dst: insert_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1643,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1644,1
    - Dst: low_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1650,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1652,1
    - Dst: broadcast_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1653,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1654,1
    - Dst: insert_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1655,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1656,1
    - Dst: insert_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1657,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1658,1
    - Dst: insert_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1659,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1660,1
    - Dst: low_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1668,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1670,1
    - Dst: broadcast_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1671,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1672,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1673,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1674,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1675,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1676,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1677,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1678,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1679,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1680,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1681,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1682,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1683,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1684,1
    - Dst: insert_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1685,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1686,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1691,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1692,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1693,1
    - Dst: interleave_hi
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1694,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1695,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1702,1
    - Dst: broadcast
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1702,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1704,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1711,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1712,1
    - Dst: widen1
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1713,1
    - Dst: low_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1713,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1714,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1715,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1718,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1719,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1720,1
    - Dst: widen2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1721,1
    - Dst: low_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1721,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1722,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1723,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1726,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1727,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1728,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1729,1
    - Dst: widen3
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1730,1
    - Dst: low_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1730,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1731,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1732,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1740,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1741,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1744,1
    - Dst: widen1
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1745,1
    - Dst: low_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1745,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1746,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1747,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1751,1
    - Dst: widen2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1752,1
    - Dst: low_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1752,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1753,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1754,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1758,1
    - Dst: widen3
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1759,1
    - Dst: low_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1759,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1760,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1761,1
    - Dst: interleave_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1761,1
    - Dst: low_half
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1768,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1770,1
    - Dst: widen1
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1771,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1772,1
    - Dst: shrink1
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1773,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1774,1
    - Dst: low_quarter
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1783,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1785,1
    - Dst: widen2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1786,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1787,1
    - Dst: shrink2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1788,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1789,1
    - Dst: low_eighth
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1798,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1800,1
    - Dst: widen3
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1801,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1802,1
    - Dst: shrink3
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1803,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1804,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1812,1
    - Dst: dup_lo
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1813,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1814,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1815,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1819,1
    - Dst: dup_hi
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1820,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1821,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1822,1
    - Dst: select
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1830,1
    - Dst: select
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1832,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1834,1
    - Dst: select2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1839,1
    - Dst: select2
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1841,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1843,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1847,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1848,1
    - Dst: mix
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1849,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1850,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1853,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1854,1
    - Dst: addsub
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1855,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1856,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1857,1
    - Dst: mix
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1858,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1859,1
    - Dst: rotr
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1864,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1866,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1870,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1871,1
    - Dst: dot_product
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1872,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1873,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1883,1
    - Dst: hadd
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1884,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1890,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1891,1
    - Dst: hsub
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1892,1
    - Dst: hadd
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1894,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1895,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1900,1
    - Dst: getmant
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1901,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1902,1
    - Dst: getexp
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1903,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1904,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1915,1
    - Dst: scale
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1916,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1917,1
    - Dst: fma_test
      Src: /src/xen/tools/tests/x86_emulator/simd.c:1923,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 416
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1927
    functionName: simd_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd.c
    functionUses: 0
    functionsReached:
    - max
    - insert_eighth
    - broadcast_quarter
    - insert_quarter
    - interleave_lo
    - to_uwint
    - widen1
    - shrink3
    - mix
    - addsub
    - broadcast_half
    - rotr
    - to_wint
    - eq
    - hadd
    - dup_lo
    - getmant
    - hsub
    - swap2
    - widen3
    - copysignz
    - select
    - interleave_hi
    - swap
    - mul_hi
    - shrink2
    - trunc
    - to_uint
    - insert_half
    - dup_hi
    - rsqrt
    - sqrt
    - low_quarter
    - low_eighth
    - getexp
    - min
    - broadcast
    - scale
    - touch
    - frac
    - fma_test
    - broadcast2
    - mul_full
    - abs
    - swap3
    - widen2
    - select2
    - shrink1
    - dot_product
    - recip
    - broadcast_eighth
    - to_int
    - low_half
    linkageType: ''
    returnType: int
    signature: int simd_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - x
    argTypes:
    - BLOWFISH_CTX*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 329
    functionName: F
    functionSourceFile: /src/xen/tools/tests/x86_emulator/blowfish.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t F(BLOWFISH_CTX *ctx, uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - xl
    - xr
    argTypes:
    - BLOWFISH_CTX*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 359
    functionName: Blowfish_Encrypt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/blowfish.c
    functionUses: 0
    functionsReached:
    - F
    linkageType: ''
    returnType: void
    signature: void Blowfish_Encrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: F
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - xl
    - xr
    argTypes:
    - BLOWFISH_CTX*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 391
    functionName: Blowfish_Decrypt
    functionSourceFile: /src/xen/tools/tests/x86_emulator/blowfish.c
    functionUses: 0
    functionsReached:
    - F
    linkageType: ''
    returnType: void
    signature: void Blowfish_Decrypt(BLOWFISH_CTX *ctx, uint32_t *xl, uint32_t *xr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Blowfish_Encrypt
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:418,1
    - Dst: Blowfish_Encrypt
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - key
    - keyLen
    argTypes:
    - BLOWFISH_CTX*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 430
    functionName: Blowfish_Init
    functionSourceFile: /src/xen/tools/tests/x86_emulator/blowfish.c
    functionUses: 0
    functionsReached:
    - Blowfish_Encrypt
    linkageType: ''
    returnType: void
    signature: void Blowfish_Init(BLOWFISH_CTX *ctx, unsigned char *key, int keyLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Blowfish_Init
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:436,1
    - Dst: Blowfish_Encrypt
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:437,1
    - Dst: Blowfish_Decrypt
      Src: /src/xen/tools/tests/x86_emulator/blowfish.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 440
    functionName: blowfish_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/blowfish.c
    functionUses: 0
    functionsReached:
    - Blowfish_Decrypt
    - Blowfish_Init
    - Blowfish_Encrypt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t blowfish_test(uint64_t input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - op
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: GF
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GF(op, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - op
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: GF
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GF(op, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - op
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: GF
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GF(op, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: mul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m
    - ','
    - dir
    - ','
    - x
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: transform
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: transform(m, dir, x, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: bcstq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bcstq(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: bcstq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bcstq(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: mul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mul(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m
    - ','
    - dir
    - ','
    - x
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: transform
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: transform(m, dir, x, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: transform
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:63,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:65,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:66,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:67,1
    - Dst: mul
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:67,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:69,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:70,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:71,1
    - Dst: mul
      Src: /src/xen/tools/tests/x86_emulator/simd-gf.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: gf_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-gf.c
    functionUses: 0
    functionsReached:
    - transform
    - touch
    - eq
    - mul
    linkageType: ''
    returnType: int
    signature: int gf_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1040
    functionName: VSIB
    functionSourceFile: /src/xen/tools/tests/x86_emulator/predicates.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSIB(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2204,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - instr
    - len
    argTypes:
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2207
    functionName: print_insn
    functionSourceFile: /src/xen/tools/tests/x86_emulator/predicates.c
    functionUses: 0
    functionsReached:
    - printf
    - puts
    linkageType: ''
    returnType: void
    signature: void print_insn(const uint8_t *instr, unsigned int len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: x86_decode_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2216,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2220,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2221,1
    - Dst: x86_insn_length
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2225,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2227,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2228,1
    - Dst: x86_insn_length
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2228,1
    - Dst: x86_insn_is_mem_access
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2231,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2233,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2234,1
    - Dst: x86_insn_is_mem_access
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2235,1
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2238,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2240,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2241,1
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2242,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2245,1
    - Dst: x86_decode_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2251,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2255,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2256,1
    - Dst: x86_insn_length
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2260,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2262,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2263,1
    - Dst: x86_insn_length
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2263,1
    - Dst: x86_insn_is_mem_access
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2266,1
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2267,1
    - Dst: print_insn
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2269,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2270,1
    - Dst: x86_insn_is_mem_access
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2271,1
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2272,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - instr
    - len
    - modrm
    - mem
    - ctxt
    argTypes:
    - uint8_t*
    - unsigned int
    - unsigned int
    - enum mem_access
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2277
    functionName: do_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/predicates.c
    functionUses: 0
    functionsReached:
    - x86_decode_insn
    - x86_insn_is_mem_access
    - x86_emulate_free_state
    - x86_insn_is_mem_write
    - printf
    - print_insn
    - x86_insn_length
    linkageType: ''
    returnType: void
    signature: "void do_test(uint8_t *instr, unsigned int len, unsigned int modrm,\n
      \            enum mem_access mem, struct x86_emulate_ctxt *ctxt,\n             int
      (*fetch)(unsigned long offset,\n                          void *p_data,\n                          unsigned
      int bytes,\n                          struct x86_emulate_ctxt *ctxt))"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2297,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2299,1
    - Dst: assert
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2304,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2306,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2307,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2309,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2313,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2320,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2324,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2326,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2331,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2338,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2343,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2345,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2350,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2354,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2363,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2367,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2367,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2369,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2371,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2371,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2373,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2373,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2377,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2383,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2387,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2390,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2397,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2399,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2406,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2412,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2420,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2423,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2430,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2432,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2441,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2444,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2451,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2453,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2461,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2469,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2474,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2475,1
    - Dst: assert
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2480,1
    - Dst: assert
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2481,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2486,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2493,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2504,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2512,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2518,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2525,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2539,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2544,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2552,1
    - Dst: do_test
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2554,1
    - Dst: exit
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2563,1
    - Dst: puts
      Src: /src/xen/tools/tests/x86_emulator/predicates.c:2565,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 160
    argCount: 2
    argNames:
    - instr
    - ctxt
    argTypes:
    - void*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (xop[x].tbl[t].w != WIG)
      pos:
        line_end: 2479
        line_start: 2479
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - condition: (xop[x].tbl[t].l != LIG)
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - condition: (!legacy[t].pfx)
      pos:
        line_end: 2303
        line_start: 2303
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    constantsTouched: []
    func_position:
      end: 2567
      start: 2279
    functionDepth: 2
    functionLinenumber: 2279
    functionLinenumberEnd: 2567
    functionName: predicates_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/predicates.c
    functionUses: 0
    functionsReached:
    - do_test
    - ARRAY_SIZE
    - printf
    - puts
    - memset
    - assert
    - memcpy
    - exit
    linkageType: ''
    returnType: void
    signature: "void predicates_test(void *instr, struct x86_emulate_ctxt *ctxt,\n
      \                    int (*fetch)(unsigned long offset,\n                                  void
      *p_data,\n                                  unsigned int bytes,\n                                  struct
      x86_emulate_ctxt *ctxt))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - op
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: SHA
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA(op, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - sel
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: blend
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blend(x, y, sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - r
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: rot_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot_c(f, r, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: rot_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot_v(d, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: shift_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shift_s(d, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - sel
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: blend
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blend(x, y, sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - f
    - ','
    - r
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rot_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot_c(f, r, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: rotl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rotl(unsigned int x, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: rotr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rotr(unsigned int x, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: rot_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rot_v(d, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: shift_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shift_s(d, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: vshift
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vshift(d, x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: alignr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alignr(x, y, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: hadd
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hadd(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: rol_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol_c(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: rol_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol_s(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - n
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: rol_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol_v(x, n...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ror_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ror_c(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ror_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ror_s(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - n
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: ror_v
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ror_v(x, n...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: shl_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shl_c(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: shl_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shl_s(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: shr_c
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shr_c(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: shr_s
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shr_s(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: shuf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shuf(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: swap
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: vshl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vshl(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: vshr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vshr(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:96,1
    - Dst: ror_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:97,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:98,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:99,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:100,1
    - Dst: shr_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:101,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - w
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: sha256_sigma0
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached:
    - touch
    - shr_c
    - ror_c
    - rol_c
    linkageType: ''
    returnType: vec_t
    signature: vec_t sha256_sigma0(vec_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror_s
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:111,1
    - Dst: ror_s
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:111,1
    - Dst: shr_s
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: sha256_sigma1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached:
    - ror_s
    - shr_s
    linkageType: ''
    returnType: vec_t
    signature: vec_t sha256_sigma1(vec_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:118,1
    - Dst: ror_v
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:119,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:120,1
    - Dst: ror_v
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:121,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:122,1
    - Dst: rol_v
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - w
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: sha256_Sigma0
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached:
    - touch
    - rol_v
    - ror_v
    linkageType: ''
    returnType: vec_t
    signature: vec_t sha256_Sigma0(vec_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:129,1
    - Dst: ror_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:129,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - vec_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sha256_Sigma1
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached:
    - ror_c
    - rol_c
    linkageType: ''
    returnType: vec_t
    signature: vec_t sha256_Sigma1(vec_t w)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:148,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:149,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:150,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:151,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:152,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:154,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:156,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:157,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:158,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:159,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:160,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:161,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:162,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:163,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:164,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:166,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:168,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:169,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:170,1
    - Dst: rol_s
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:171,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:171,1
    - Dst: rol_s
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:172,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:172,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:174,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:176,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:177,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:178,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:179,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:180,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:183,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:229,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:230,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:231,1
    - Dst: vshr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:233,1
    - Dst: vshr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:234,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:235,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:236,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:237,1
    - Dst: blend
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:238,1
    - Dst: vshr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:239,1
    - Dst: vshl
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:240,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:242,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:242,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:246,1
    - Dst: swap
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:246,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:251,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:273,1
    - Dst: blend
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:278,1
    - Dst: rol_c
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:278,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:280,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:282,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:283,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:284,1
    - Dst: sha256_sigma0
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:285,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:285,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:287,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:289,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:290,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:291,1
    - Dst: sha256_sigma1
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:292,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:292,1
    - Dst: sha256_sigma1
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:293,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:293,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:295,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:359,1
    - Dst: SHA
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:360,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:361,1
    - Dst: alignr
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:364,1
    - Dst: shuf
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:366,1
    - Dst: sha256_Sigma1
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:370,1
    - Dst: shuf
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:370,1
    - Dst: sha256_Sigma0
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:371,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-sha.c:386,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 123
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 392
    functionName: sha_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-sha.c
    functionUses: 0
    functionsReached:
    - eq
    - shuf
    - swap
    - sha256_Sigma0
    - vshl
    - sha256_sigma1
    - vshr
    - alignr
    - SHA
    - sha256_sigma0
    - rol_c
    - sha256_Sigma1
    - touch
    - blend
    - rol_s
    linkageType: ''
    returnType: int
    signature: int sha_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: blowfish_set_regs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blowfish_set_regs(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: blowfish_check_regs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool blowfish_check_regs(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: simd_check__3dnow
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check__3dnow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: simd_check_sse
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_sse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: simd_check_sse2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_sse2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: simd_check_sse4
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_sse4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: simd_check_avx
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: simd_check_fma4
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_fma4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: simd_check_fma
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_fma(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: simd_check_avx2
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: simd_check_xop
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_xop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: simd_check_ssse3_aes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_ssse3_aes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: simd_check_avx_aes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx_aes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: simd_check_ssse3_pclmul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_ssse3_pclmul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: simd_check_avx_pclmul
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx_pclmul(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: simd_check_avx512f
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512f(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: simd_check_avx512f_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512f_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: simd_check_avx512dq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512dq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: simd_check_avx512dq_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512dq_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: simd_check_avx512bw
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: simd_check_avx512bw_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: simd_check_avx512vbmi
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512vbmi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: simd_check_avx512vbmi_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512vbmi_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: simd_check_sse4_sha
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_sse4_sha(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: simd_check_avx_sha
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx_sha(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: simd_check_avx512f_sha_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512f_sha_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: simd_check_avx2_vaes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx2_vaes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: simd_check_avx512bw_vaes
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_vaes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: simd_check_avx512bw_vaes_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_vaes_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: simd_check_avx2_vpclmulqdq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx2_vpclmulqdq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: simd_check_avx512bw_vpclmulqdq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_vpclmulqdq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: simd_check_avx512bw_vpclmulqdq_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_vpclmulqdq_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simd_check_avx512bw_vpclmulqdq
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: simd_check_avx512vbmi2_vpclmulqdq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - simd_check_avx512bw_vpclmulqdq
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512vbmi2_vpclmulqdq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simd_check_avx512bw_vpclmulqdq_vl
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: simd_check_avx512vbmi2_vpclmulqdq_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - simd_check_avx512bw_vpclmulqdq_vl
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512vbmi2_vpclmulqdq_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: simd_check_sse2_gf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_sse2_gf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: simd_check_avx2_gf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx2_gf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: simd_check_avx512bw_gf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_gf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: simd_check_avx512bw_gf_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512bw_gf_vl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: simd_check_avx512fp16
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512fp16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: simd_check_avx512fp16_vl
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool simd_check_avx512fp16_vl(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: simd_set_regs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void simd_set_regs(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:267,1
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: simd_check_regs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: bool
    signature: bool simd_check_regs(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - bits
    - ','
    - desc
    - ','
    - feat
    - ','
    - form
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: AVX512VL_
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVX512VL_(bits, desc, feat, form)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - desc
    - ','
    - feat
    - ','
    - form
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: SIMD
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMD(desc, feat, form)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - desc
    - ','
    - feat
    - ','
    - form
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: AVX512VL
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVX512VL(desc, feat, form)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - desc
    - ','
    - feat
    - ','
    - form
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: SIMD
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMD(desc, feat, form)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - desc
    - ','
    - feat
    - ','
    - form
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: AVX512VL
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVX512VL(desc, feat, form)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:556,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:569,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:579,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:590,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:594,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 603
    functionName: read
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 5
    functionsReached:
    - memset
    - is_x86_user_segment
    - memcpy
    - printf
    linkageType: ''
    returnType: int
    signature: "int read(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:612,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 617
    functionName: fetch
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printf
    linkageType: ''
    returnType: int
    signature: "int fetch(\n    unsigned long offset,\n    void *p_data,\n    unsigned
      int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:627,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:629,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 633
    functionName: write
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 10
    functionsReached:
    - is_x86_user_segment
    - memcpy
    - printf
    linkageType: ''
    returnType: int
    signature: "int write(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_rmw
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - seg
    - offset
    - bytes
    - eflags
    - state
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    - uint32_t*
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 644
    functionName: rmw
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 1
    functionsReached:
    - x86_emul_rmw
    linkageType: ''
    returnType: int
    signature: "int rmw(\n    enum x86_segment seg,\n    unsigned long offset,\n    unsigned
      int bytes,\n    uint32_t *eflags,\n    struct x86_emulate_state *state,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:656,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:658,1
    - Dst: memcpy
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:660,1
    - Dst: bytes::bytes
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - seg
    - offset
    - old
    - new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 662
    functionName: cmpxchg
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - memcpy
    - printf
    - bytes::bytes
    linkageType: ''
    returnType: int
    signature: "int cmpxchg(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *old,\n    void *new,\n    unsigned int bytes,\n    bool lock,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_blk
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - eflags
    - state
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - uint32_t*
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 674
    functionName: blk
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 1
    functionsReached:
    - x86_emul_blk
    linkageType: ''
    returnType: int
    signature: "int blk(\n    enum x86_segment seg,\n    unsigned long offset,\n    void
      *p_data,\n    unsigned int bytes,\n    uint32_t *eflags,\n    struct x86_emulate_state
      *state,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:681,1
    - Dst: memset
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: read_segment
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - memset
    - is_x86_user_segment
    linkageType: ''
    returnType: int
    signature: "int read_segment(\n    enum x86_segment seg,\n    struct segment_register
      *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 706
    functionName: read_msr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int read_msr(\n    unsigned int reg,\n    uint64_t *val,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emul_test_read_cr
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 722
    functionName: read_cr_invpcid
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - emul_test_read_cr
    linkageType: ''
    returnType: int
    signature: "int read_cr_invpcid(\n    unsigned int reg,\n    unsigned long *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_invpcid_pcid
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:733,1
    - Dst: x86emul_invpcid_type
      Src: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c:734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - op
    - addr
    - aux
    - ctxt
    argTypes:
    - enum x86emul_tlb_op
    - unsigned long
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 738
    functionName: tlb_op_invpcid
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached:
    - x86emul_invpcid_type
    - x86emul_invpcid_pcid
    linkageType: ''
    returnType: int
    signature: "int tlb_op_invpcid(\n    enum x86emul_tlb_op op,\n    unsigned long
      addr,\n    unsigned long aux,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - env
    - is_32bit
    argTypes:
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 800
    functionName: zap_fpsel
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zap_fpsel(unsigned int *env, bool is_32bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - env
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 806
    functionName: zap_xfpsel
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zap_xfpsel(unsigned int *env)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1885
    functionName: decl_insn
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_insn(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - which
    - ','
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1889
    functionName: put_insn
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_insn(which, insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1889
    functionDepth: 0
    functionLinenumber: 1889
    functionLinenumberEnd: 1890
    functionName: set_insn
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_insn(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1892
    functionName: valid_eip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: valid_eip(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1892
    functionDepth: 0
    functionLinenumber: 1892
    functionLinenumberEnd: 1893
    functionName: check_eip
    functionSourceFile: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_eip(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: to_bool
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_bool(cmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: eq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: fmaddsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fmaddsub(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: addsub
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addsub(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: conj
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conj(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _cmul_vv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _cmul_vv(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: _cmul_vs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _cmul_vs(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: cmadd_vv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmadd_vv(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: cmadd_vs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmadd_vs(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: conj
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: conj(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: cmadd_vv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmadd_vv(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: cmadd_vs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmadd_vs(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: cmul_vv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmul_vv(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: cmulc_vv
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmulc_vv(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: cmul_vs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmul_vs(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: cmulc_vs
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmulc_vs(a, b)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:149,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:165,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:167,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:169,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:171,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:173,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:175,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:177,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:179,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:180,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:184,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:185,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:187,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:189,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:190,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:192,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:194,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:195,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:197,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:199,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:200,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:202,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:203,1
    - Dst: addsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:208,1
    - Dst: addsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:209,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:210,1
    - Dst: fmaddsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:211,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:212,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:214,1
    - Dst: fmaddsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:215,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:216,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:217,1
    - Dst: addsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:219,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:220,1
    - Dst: fmaddsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:221,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:222,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:224,1
    - Dst: fmaddsub
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:225,1
    - Dst: eq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:226,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:227,1
    - Dst: cmul_vs
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:247,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:248,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:250,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:251,1
    - Dst: ceq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:252,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:255,1
    - Dst: conj
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:256,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:257,1
    - Dst: cmulc_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:258,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:259,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:260,1
    - Dst: conj
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:261,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:261,1
    - Dst: ceq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:262,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:265,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:267,1
    - Dst: cmulc_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:268,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:277,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:278,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:279,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:280,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:281,1
    - Dst: cmadd_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:282,1
    - Dst: ceq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:283,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:286,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:287,1
    - Dst: cmadd_vs
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:288,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:294,1
    - Dst: cmadd_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:295,1
    - Dst: ceq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:296,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:299,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:300,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:301,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:302,1
    - Dst: cmul_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:303,1
    - Dst: touch
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:304,1
    - Dst: cmadd_vv
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:305,1
    - Dst: ceq
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:306,1
    - Dst: cmadd_vs
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:309,1
    - Dst: conj
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:309,1
    - Dst: typeof
      Src: /src/xen/tools/tests/x86_emulator/simd-fma.c:312,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 135
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 325
    functionName: fma_test
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached:
    - cmul_vs
    - eq
    - cmadd_vv
    - fmaddsub
    - conj
    - cmulc_vv
    - typeof
    - ceq
    - addsub
    - cmul_vv
    - touch
    - cmadd_vs
    linkageType: ''
    returnType: int
    signature: int fma_test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: ceq
    functionSourceFile: /src/xen/tools/tests/x86_emulator/simd-fma.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ceq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 4
    functionName: WRAP
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:8,1
    - Dst: __real_fwrite
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:9,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - src
    - sz
    - n
    - f
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 13
    functionName: __wrap_fwrite
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - emul_restore_fpu_state
    - __real_fwrite
    - emul_save_fpu_state
    linkageType: ''
    returnType: size_t
    signature: size_t __wrap_fwrite(const void *src, size_t sz, size_t n, FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:19,1
    - Dst: __real_memcmp
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:20,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p1
    - p2
    - sz
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: __wrap_memcmp
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - __real_memcmp
    - emul_restore_fpu_state
    - emul_save_fpu_state
    linkageType: ''
    returnType: int
    signature: int __wrap_memcmp(const void *p1, const void *p2, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:28,1
    - Dst: __real_memcpy
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:29,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - sz
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: __wrap_memcpy
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - emul_restore_fpu_state
    - __real_memcpy
    - emul_save_fpu_state
    linkageType: ''
    returnType: void
    signature: void *__wrap_memcpy(void *dst, const void *src, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:37,1
    - Dst: __real_memset
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:38,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - c
    - sz
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: __wrap_memset
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - __real_memset
    - emul_restore_fpu_state
    - emul_save_fpu_state
    linkageType: ''
    returnType: void
    signature: void *__wrap_memset(void *dst, int c, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:49,1
    - Dst: va_start
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:50,1
    - Dst: __real_vprintf
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:51,1
    - Dst: va_end
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:52,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: __wrap_printf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - va_start
    - emul_restore_fpu_state
    - __real_vprintf
    - emul_save_fpu_state
    - va_end
    linkageType: ''
    returnType: int
    signature: int __wrap_printf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:62,1
    - Dst: __real_putchar
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:63,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: __wrap_putchar
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - emul_restore_fpu_state
    - emul_save_fpu_state
    - __real_putchar
    linkageType: ''
    returnType: int
    signature: int __wrap_putchar(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:73,1
    - Dst: __real_puts
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:74,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: __wrap_puts
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - emul_restore_fpu_state
    - __real_puts
    - emul_save_fpu_state
    linkageType: ''
    returnType: int
    signature: int __wrap_puts(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:85,1
    - Dst: va_start
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:86,1
    - Dst: __real_vsnprintf
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:87,1
    - Dst: va_end
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:88,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - n
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: __wrap_snprintf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - va_start
    - emul_restore_fpu_state
    - __real_vsnprintf
    - emul_save_fpu_state
    - va_end
    linkageType: ''
    returnType: int
    signature: int __wrap_snprintf(char *buf, size_t n, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:98,1
    - Dst: __real_vsnprintf
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:99,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - n
    - fmt
    - varg
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: __wrap_vsnprintf
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - __real_vsnprintf
    - emul_save_fpu_state
    - emul_restore_fpu_state
    linkageType: ''
    returnType: int
    signature: int __wrap_vsnprintf(char *buf, size_t n, const char *fmt, va_list
      varg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emul_save_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:109,1
    - Dst: __real_strstr
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:110,1
    - Dst: emul_restore_fpu_state
      Src: /src/xen/tools/tests/x86_emulator/wrappers.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: __wrap_strstr
    functionSourceFile: /src/xen/tools/tests/x86_emulator/wrappers.c
    functionUses: 0
    functionsReached:
    - emul_restore_fpu_state
    - emul_save_fpu_state
    - __real_strstr
    linkageType: ''
    returnType: char
    signature: char *__wrap_strstr(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: fail
    functionSourceFile: /src/xen/tools/tests/mem-claim/test-mem-claim.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: MB_PAGES
    functionSourceFile: /src/xen/tools/tests/mem-claim/test-mem-claim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MB_PAGES(x)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:49,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:51,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:52,1
    - Dst: printf
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:54,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:58,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:77,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:79,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:80,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:82,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:84,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:85,1
    - Dst: printf
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:87,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:92,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:94,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:95,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:98,1
    - Dst: xc_domain_claim_pages
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:105,1
    - Dst: MB_PAGES
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:105,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:107,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:108,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:110,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:112,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:113,1
    - Dst: MB_PAGES
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:115,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:116,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:124,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:125,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:127,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:128,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:130,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:132,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:133,1
    - Dst: MB_PAGES
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:135,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:136,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:142,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:148,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:149,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:151,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:153,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:154,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:157,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 159
    functionName: run_tests
    functionSourceFile: /src/xen/tools/tests/mem-claim/test-mem-claim.c
    functionUses: 0
    functionsReached:
    - fail
    - xc_domain_setmaxmem
    - xc_domain_claim_pages
    - ARRAY_SIZE
    - MB_PAGES
    - xc_physinfo
    - strerror
    - printf
    - xc_domain_populate_physmap_exact
    - xc_domain_destroy
    - xc_domain_create
    linkageType: ''
    returnType: void
    signature: void run_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:165,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:167,1
    - Dst: err
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:170,1
    - Dst: run_tests
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:172,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:176,1
    - Dst: fail
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:178,1
    - Dst: strerror
      Src: /src/xen/tools/tests/mem-claim/test-mem-claim.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 183
    functionName: main
    functionSourceFile: /src/xen/tools/tests/mem-claim/test-mem-claim.c
    functionUses: 2
    functionsReached:
    - err
    - fail
    - xc_interface_open
    - strerror
    - printf
    - run_tests
    - xc_domain_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: fail
    functionSourceFile: /src/xen/tools/tests/resource/test-resource.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(fmt, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:35,1
    - Dst: xenforeignmemory_resource_size
      Src: /src/xen/tools/tests/resource/test-resource.c:38,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:47,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:47,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:54,1
    - Dst: xenforeignmemory_map_resource
      Src: /src/xen/tools/tests/resource/test-resource.c:58,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:68,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:69,1
    - Dst: xengnttab_map_grant_refs
      Src: /src/xen/tools/tests/resource/test-resource.c:85,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:95,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:95,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/tests/resource/test-resource.c:100,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:103,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:103,1
    - Dst: xenforeignmemory_unmap_resource
      Src: /src/xen/tools/tests/resource/test-resource.c:107,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:109,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:110,1
    - Dst: xenforeignmemory_map_resource
      Src: /src/xen/tools/tests/resource/test-resource.c:116,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:123,1
    - Dst: xenforeignmemory_unmap_resource
      Src: /src/xen/tools/tests/resource/test-resource.c:124,1
    - Dst: xenforeignmemory_resource_size
      Src: /src/xen/tools/tests/resource/test-resource.c:131,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:135,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - domid
    - nr_frames
    - gfn
    argTypes:
    - uint32_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 136
    functionName: test_gnttab
    functionSourceFile: /src/xen/tools/tests/resource/test-resource.c
    functionUses: 0
    functionsReached:
    - xenforeignmemory_resource_size
    - fail
    - xengnttab_unmap
    - xenforeignmemory_map_resource
    - strerror
    - xenforeignmemory_unmap_resource
    - printf
    - xengnttab_map_grant_refs
    linkageType: ''
    returnType: void
    signature: "void test_gnttab(uint32_t domid, unsigned int nr_frames,\n                        unsigned
      long gfn)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/xen/tools/tests/resource/test-resource.c:144,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/tests/resource/test-resource.c:150,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/tests/resource/test-resource.c:159,1
    - Dst: defined
      Src: /src/xen/tools/tests/resource/test-resource.c:165,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/tests/resource/test-resource.c:172,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/resource/test-resource.c:178,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:185,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:192,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:204,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:212,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/tests/resource/test-resource.c:218,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:222,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:222,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:224,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:225,1
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:229,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/tests/resource/test-resource.c:231,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:234,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:235,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/tests/resource/test-resource.c:239,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/resource/test-resource.c:240,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:243,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:244,1
    - Dst: test_gnttab
      Src: /src/xen/tools/tests/resource/test-resource.c:248,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/tests/resource/test-resource.c:251,1
    - Dst: fail
      Src: /src/xen/tools/tests/resource/test-resource.c:253,1
    - Dst: strerror
      Src: /src/xen/tools/tests/resource/test-resource.c:254,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 256
    functionName: test_domain_configurations
    functionSourceFile: /src/xen/tools/tests/resource/test-resource.c
    functionUses: 0
    functionsReached:
    - defined
    - fail
    - xc_domain_setmaxmem
    - ARRAY_SIZE
    - test_gnttab
    - XEN_DOMCTL_GRANT_version
    - strerror
    - printf
    - xc_domain_populate_physmap_exact
    - xc_domain_destroy
    - xc_domain_create
    linkageType: ''
    returnType: void
    signature: void test_domain_configurations(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/resource/test-resource.c:262,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/tests/resource/test-resource.c:264,1
    - Dst: xenforeignmemory_open
      Src: /src/xen/tools/tests/resource/test-resource.c:265,1
    - Dst: xengnttab_open
      Src: /src/xen/tools/tests/resource/test-resource.c:266,1
    - Dst: err
      Src: /src/xen/tools/tests/resource/test-resource.c:269,1
    - Dst: err
      Src: /src/xen/tools/tests/resource/test-resource.c:271,1
    - Dst: err
      Src: /src/xen/tools/tests/resource/test-resource.c:273,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/tests/resource/test-resource.c:275,1
    - Dst: err
      Src: /src/xen/tools/tests/resource/test-resource.c:277,1
    - Dst: test_domain_configurations
      Src: /src/xen/tools/tests/resource/test-resource.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 282
    functionName: main
    functionSourceFile: /src/xen/tools/tests/resource/test-resource.c
    functionUses: 2
    functionsReached:
    - err
    - xc_physinfo
    - xenforeignmemory_open
    - xc_interface_open
    - xengnttab_open
    - printf
    - test_domain_configurations
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: __test_and_set_bit
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __test_and_set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: __test_and_clear_bit
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __test_and_clear_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: __set_bit
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: BUG_ON
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: DEFINE_SPINLOCK
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPINLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: spin_lock
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: spin_unlock
    functionSourceFile: /src/xen/tools/tests/domid/harness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - exp
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: verify
    functionSourceFile: /src/xen/tools/tests/domid/test-domid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: verify(exp, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:28,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:29,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:34,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:35,1
    - Dst: domid_free
      Src: /src/xen/tools/tests/domid/test-domid.c:41,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:51,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:52,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:57,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:58,1
    - Dst: domid_free
      Src: /src/xen/tools/tests/domid/test-domid.c:64,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:67,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:68,1
    - Dst: domid_free
      Src: /src/xen/tools/tests/domid/test-domid.c:74,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:75,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:76,1
    - Dst: domid_alloc
      Src: /src/xen/tools/tests/domid/test-domid.c:81,1
    - Dst: verify
      Src: /src/xen/tools/tests/domid/test-domid.c:82,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/xen/tools/tests/domid/test-domid.c
    functionUses: 2
    functionsReached:
    - domid_alloc
    - verify
    - domid_free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: fail
    functionSourceFile: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(fmt, ...)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:49,1
    - Dst: xc_get_paging_mempool_size
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:51,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:53,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:54,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:56,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:66,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:70,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:78,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:80,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:81,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:83,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:85,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:86,1
    - Dst: xc_get_paging_mempool_size
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:92,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:94,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:95,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:98,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:103,1
    - Dst: xc_set_paging_mempool_size
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:108,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:110,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:111,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:114,1
    - Dst: xc_set_paging_mempool_size
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:120,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:122,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:123,1
    - Dst: xc_get_paging_mempool_size
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:129,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:131,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:132,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 137
    functionName: run_tests
    functionSourceFile: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c
    functionUses: 1
    functionsReached:
    - xc_domain_setmaxmem
    - fail
    - xc_get_paging_mempool_size
    - strerror
    - xc_set_paging_mempool_size
    - printf
    - xc_domain_populate_physmap_exact
    linkageType: ''
    returnType: void
    signature: void run_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:143,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:145,1
    - Dst: err
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:148,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:150,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:154,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:154,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:156,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:157,1
    - Dst: printf
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:161,1
    - Dst: run_tests
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:163,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:165,1
    - Dst: fail
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:167,1
    - Dst: strerror
      Src: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c
    functionUses: 2
    functionsReached:
    - err
    - fail
    - xc_interface_open
    - strerror
    - printf
    - run_tests
    - xc_domain_destroy
    - xc_domain_create
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: fail
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: memdup
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memdup(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:56,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:58,1
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:61,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 67
    functionName: test_vendor_identification
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - x86_cpuid_lookup_vendor
    - ARRAY_SIZE
    - printf
    linkageType: ''
    returnType: void
    signature: void test_vendor_identification(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - leaves
    - nr
    argTypes:
    - xen_cpuid_leaf_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 87
    functionName: leaves_are_sorted
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool leaves_are_sorted(const xen_cpuid_leaf_t *leaves, unsigned int
      nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - entries
    - nr
    argTypes:
    - xen_msr_entry_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: msrs_are_sorted
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool msrs_are_sorted(const xen_msr_entry_t *entries, unsigned int nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:103,1
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:106,1
    - Dst: x86_cpu_policy_fill_native
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:108,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:110,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:112,1
    - Dst: leaves_are_sorted
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:114,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: test_cpuid_current
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - leaves_are_sorted
    - ARRAY_SIZE
    - x86_cpuid_copy_to_buffer
    - x86_cpu_policy_fill_native
    - printf
    linkageType: ''
    returnType: void
    signature: void test_cpuid_current(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:202,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:204,1
    - Dst: malloc
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:208,1
    - Dst: err
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:212,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:214,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:218,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:225,1
    - Dst: leaves_are_sorted
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:230,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:232,1
    - Dst: free
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 240
    functionName: test_cpuid_serialise_success
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - err
    - fail
    - leaves_are_sorted
    - ARRAY_SIZE
    - free
    - malloc
    - x86_cpuid_copy_to_buffer
    - printf
    linkageType: ''
    returnType: void
    signature: void test_cpuid_serialise_success(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:255,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:257,1
    - Dst: malloc
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:261,1
    - Dst: err
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:265,1
    - Dst: x86_msr_copy_to_buffer
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:267,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:271,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:278,1
    - Dst: msrs_are_sorted
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:283,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:285,1
    - Dst: free
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:291,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 293
    functionName: test_msr_serialise_success
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - err
    - fail
    - ARRAY_SIZE
    - free
    - malloc
    - x86_msr_copy_to_buffer
    - msrs_are_sorted
    - printf
    linkageType: ''
    returnType: void
    signature: void test_msr_serialise_success(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:343,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:345,1
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:352,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:357,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 370
    functionName: test_cpuid_deserialise_failure
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - x86_cpuid_copy_from_buffer
    - ARRAY_SIZE
    - printf
    linkageType: ''
    returnType: void
    signature: void test_cpuid_deserialise_failure(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:396,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:398,1
    - Dst: x86_msr_copy_from_buffer
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:405,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:409,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 421
    functionName: test_msr_deserialise_failure
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - ARRAY_SIZE
    - printf
    - x86_msr_copy_from_buffer
    linkageType: ''
    returnType: void
    signature: void test_msr_deserialise_failure(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:543,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:545,1
    - Dst: memdup
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:548,1
    - Dst: x86_cpu_policy_clear_out_of_range_leaves
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:552,1
    - Dst: memchr
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:556,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:561,1
    - Dst: free
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 566
    functionName: test_cpuid_out_of_range_clearing
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - x86_cpu_policy_clear_out_of_range_leaves
    - fail
    - ARRAY_SIZE
    - free
    - memchr
    - printf
    - memdup
    linkageType: ''
    returnType: void
    signature: void test_cpuid_out_of_range_clearing(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:592,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:594,1
    - Dst: x86_cpu_policies_are_compatible
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:598,1
    - Dst: memcmp
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:601,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 606
    functionName: test_is_compatible_success
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - memcmp
    - ARRAY_SIZE
    - x86_cpu_policies_are_compatible
    - printf
    linkageType: ''
    returnType: void
    signature: void test_is_compatible_success(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:634,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:636,1
    - Dst: x86_cpu_policies_are_compatible
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:640,1
    - Dst: memcmp
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:643,1
    - Dst: fail
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 651
    functionName: test_is_compatible_failure
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 0
    functionsReached:
    - fail
    - memcmp
    - ARRAY_SIZE
    - x86_cpu_policies_are_compatible
    - printf
    linkageType: ''
    returnType: void
    signature: void test_is_compatible_failure(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:655,1
    - Dst: test_vendor_identification
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:657,1
    - Dst: test_cpuid_current
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:659,1
    - Dst: test_cpuid_serialise_success
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:660,1
    - Dst: test_cpuid_deserialise_failure
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:661,1
    - Dst: test_cpuid_out_of_range_clearing
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:662,1
    - Dst: test_msr_serialise_success
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:664,1
    - Dst: test_msr_deserialise_failure
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:665,1
    - Dst: test_is_compatible_success
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:667,1
    - Dst: test_is_compatible_failure
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:668,1
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:671,1
    - Dst: printf
      Src: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 676
    functionName: main
    functionSourceFile: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    functionUses: 2
    functionsReached:
    - test_vendor_identification
    - test_is_compatible_failure
    - test_cpuid_serialise_success
    - test_cpuid_deserialise_failure
    - test_cpuid_current
    - test_cpuid_out_of_range_clearing
    - printf
    - test_msr_serialise_success
    - test_msr_deserialise_failure
    - test_is_compatible_success
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: INOPB
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INOPB(fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: itoo
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itoo(fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: itog
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itog(fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: itod
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: itod(fs, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: UFS_NINDIR
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UFS_NINDIR(fs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: blkoff
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blkoff(fs, loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: lblkno
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lblkno(fs, loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: fsbtodb
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fsbtodb(fs, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: blkstofrags
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blkstofrags(fs, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: cgbase
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgbase(fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: cgimin
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgimin(fs, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fs
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: cgstart
    functionSourceFile: /src/xen/tools/libfsimage/ufs/ufs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cgstart(fs, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: ufs_mount
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 0
    functionsReached:
    - devread
    linkageType: ''
    returnType: int
    signature: int ufs_mount(fsi_file_t *ffi, const char *options)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:76,1
    - Dst: openi
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:77,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:82,1
    - Dst: dlook
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:87,1
    - Dst: openi
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 99
    functionName: ufs_dir
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 0
    functionsReached:
    - dlook
    - isspace
    - openi
    linkageType: ''
    returnType: int
    signature: int ufs_dir(fsi_file_t *ffi, char *dirname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blkoff
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:111,1
    - Dst: lblkno
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:112,1
    - Dst: sbmap
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:118,1
    - Dst: grub_memset
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:120,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:123,1
    - Dst: fsbtodb
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 136
    functionName: ufs_read
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 0
    functionsReached:
    - lblkno
    - fsbtodb
    - grub_memset
    - blkoff
    - devread
    - sbmap
    linkageType: ''
    returnType: int
    signature: int ufs_read(fsi_file_t *ffi, char *buf, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - start_sector
    - needed_sectors
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: ufs_embed
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ufs_embed (int *start_sector, int needed_sectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsbtodb
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:156,1
    - Dst: itod
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:156,1
    - Dst: itoo
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:157,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ffi
    - inode
    argTypes:
    - fsi_file_t*
    - grub_ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: openi
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 1
    functionsReached:
    - fsbtodb
    - itoo
    - itod
    - devread
    linkageType: ''
    returnType: int
    signature: int openi(fsi_file_t *ffi, grub_ino_t inode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:182,1
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:186,1
    - Dst: fsbtodb
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:198,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:199,1
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:204,1
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:205,1
    - Dst: fsbtodb
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:211,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:212,1
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:217,1
    - Dst: UFS_NINDIR
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - ffi
    - bn
    argTypes:
    - fsi_file_t*
    - grub_daddr32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 225
    functionName: sbmap
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 1
    functionsReached:
    - fsbtodb
    - devread
    - UFS_NINDIR
    linkageType: ''
    returnType: grub_daddr32_t
    signature: grub_daddr32_t sbmap(fsi_file_t *ffi, grub_daddr32_t bn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: blkoff
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:241,1
    - Dst: lblkno
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:244,1
    - Dst: sbmap
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:246,1
    - Dst: fsbtodb
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:250,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:251,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ffi
    - dir_ino
    - name
    argTypes:
    - fsi_file_t*
    - grub_ino_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 263
    functionName: dlook
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 1
    functionsReached:
    - lblkno
    - fsbtodb
    - substring
    - blkoff
    - devread
    - sbmap
    linkageType: ''
    returnType: grub_ino_t
    signature: grub_ino_t dlook(fsi_file_t *ffi, grub_ino_t dir_ino, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/ufs/fsys_ufs.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - s_start
    - d_start
    - s_len
    - d_len
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: lzjb_decompress
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_lzjb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lzjb_decompress(void *s_start, void *d_start, size_t s_len, size_t
      d_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: fletcher_2_native
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c
    functionUses: 0
    functionsReached:
    - ZIO_SET_CHECKSUM
    linkageType: ''
    returnType: void
    signature: void fletcher_2_native(const void *buf, uint64_t size, zio_cksum_t
      *zcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP_64
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:53,1
    - Dst: BSWAP_64
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:54,1
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: fletcher_2_byteswap
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c
    functionUses: 0
    functionsReached:
    - ZIO_SET_CHECKSUM
    - BSWAP_64
    linkageType: ''
    returnType: void
    signature: void fletcher_2_byteswap(const void *buf, uint64_t size, zio_cksum_t
      *zcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: fletcher_4_native
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c
    functionUses: 0
    functionsReached:
    - ZIO_SET_CHECKSUM
    linkageType: ''
    returnType: void
    signature: void fletcher_4_native(const void *buf, uint64_t size, zio_cksum_t
      *zcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:87,1
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: fletcher_4_byteswap
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c
    functionUses: 0
    functionsReached:
    - BSWAP_32
    - ZIO_SET_CHECKSUM
    linkageType: ''
    returnType: void
    signature: void fletcher_4_byteswap(const void *buf, uint64_t size, zio_cksum_t
      *zcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: FSI_MOS_ALIGN
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSI_MOS_ALIGN(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: FSI_MOS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSI_MOS(buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FSI_MOS
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:79,1
    - Dst: strlen
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:83,1
    - Dst: strcpy
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:84,1
    - Dst: zfs_mount
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: fsi_zfs_mount
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached:
    - FSI_MOS
    - zfs_mount
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int fsi_zfs_mount(fsi_file_t *ffi, const char *options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsig_filemax
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:100,1
    - Dst: fsig_filepos
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:101,1
    - Dst: zfs_open
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:103,1
    - Dst: asprintf
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:112,1
    - Dst: fsi_bootstring_alloc
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:119,1
    - Dst: strlen
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:120,1
    - Dst: strcpy
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ffi
    - filename
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 125
    functionName: fsi_zfs_open
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached:
    - zfs_open
    - asprintf
    - fsi_bootstring_alloc
    - fsig_filemax
    - strcpy
    - strlen
    - fsig_filepos
    linkageType: ''
    returnType: int
    signature: int fsi_zfs_open(fsi_file_t *ffi, char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_filepos
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:134,1
    - Dst: zfs_read
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: fsi_zfs_read
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached:
    - zfs_read
    - fsig_filepos
    linkageType: ''
    returnType: int
    signature: int fsi_zfs_read(fsi_file_t *ffi, char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/zfs/fsi_zfs.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: zfs_bcmp
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zfs_bcmp(const void *s1, const void *s2, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: zfs_log2
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zfs_log2(uint64_t num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: zio_checksum_off
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - ZIO_SET_CHECKSUM
    linkageType: ''
    returnType: void
    signature: void zio_checksum_off(const void *buf, uint64_t size, zio_cksum_t *zcp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BP_GET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:145,1
    - Dst: BP_SHOULD_BYTESWAP
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - bp
    - data
    - size
    argTypes:
    - blkptr_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 176
    functionName: zio_checksum_verify
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BP_GET_CHECKSUM
    - BP_SHOULD_BYTESWAP
    linkageType: ''
    returnType: int
    signature: int zio_checksum_verify(blkptr_t *bp, char *data, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - psize
    - l
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: vdev_label_start
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vdev_label_start(uint64_t psize, int l)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ub1
    - ub2
    argTypes:
    - uberblock_t*
    - uberblock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 213
    functionName: vdev_uberblock_compare
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vdev_uberblock_compare(uberblock_t *ub1, uberblock_t *ub2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BP_ZERO
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:233,1
    - Dst: BP_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:234,1
    - Dst: BP_SET_BYTEORDER
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:235,1
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:236,1
    - Dst: zio_checksum_verify
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ub
    - offset
    argTypes:
    - uberblock_phys_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: uberblock_verify
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BP_SET_CHECKSUM
    - BP_SET_BYTEORDER
    - ZIO_SET_CHECKSUM
    - BP_ZERO
    - zio_checksum_verify
    linkageType: ''
    returnType: int
    signature: int uberblock_verify(uberblock_phys_t *ub, uint64_t offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VDEV_UBERBLOCK_OFFSET
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:263,1
    - Dst: uberblock_verify
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:264,1
    - Dst: vdev_uberblock_compare
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ub_array
    - sector
    argTypes:
    - uberblock_phys_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 276
    functionName: find_bestub
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - uberblock_verify
    - vdev_uberblock_compare
    - VDEV_UBERBLOCK_OFFSET
    linkageType: ''
    returnType: uberblock_phys_t
    signature: 'uberblock_phys_t *

      find_bestub(uberblock_phys_t *ub_array, uint64_t sector)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DVA_GET_OFFSET
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:296,1
    - Dst: DVA_OFFSET_TO_PHYS_SECTOR
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:297,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:300,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:301,1
    - Dst: BP_ZERO
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:306,1
    - Dst: BP_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:307,1
    - Dst: BP_SET_BYTEORDER
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:308,1
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:309,1
    - Dst: DVA_GET_VDEV
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:309,1
    - Dst: DVA_GET_OFFSET
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:310,1
    - Dst: zio_checksum_verify
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:311,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:312,1
    - Dst: zio_read_data
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:320,1
    - Dst: BP_GET_PSIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - bp
    - dva
    - buf
    - stack
    argTypes:
    - blkptr_t*
    - dva_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 326
    functionName: zio_read_gang
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BP_SET_CHECKSUM
    - DVA_GET_VDEV
    - BP_SET_BYTEORDER
    - ZIO_SET_CHECKSUM
    - BP_ZERO
    - zio_read_data
    - DVA_OFFSET_TO_PHYS_SECTOR
    - grub_printf
    - zio_checksum_verify
    - DVA_GET_OFFSET
    - devread
    - BP_GET_PSIZE
    linkageType: ''
    returnType: int
    signature: int zio_read_gang(blkptr_t *bp, dva_t *dva, void *buf, char *stack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BP_GET_PSIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:340,1
    - Dst: DVA_GET_GANG
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:350,1
    - Dst: zio_read_gang
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:351,1
    - Dst: DVA_GET_OFFSET
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:355,1
    - Dst: DVA_OFFSET_TO_PHYS_SECTOR
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:356,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - bp
    - buf
    - stack
    argTypes:
    - blkptr_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 363
    functionName: zio_read_data
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - DVA_GET_GANG
    - DVA_OFFSET_TO_PHYS_SECTOR
    - zio_read_gang
    - DVA_GET_OFFSET
    - devread
    - BP_GET_PSIZE
    linkageType: ''
    returnType: int
    signature: int zio_read_data(blkptr_t *bp, void *buf, char *stack)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BP_GET_COMPRESS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:379,1
    - Dst: BP_GET_LSIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:380,1
    - Dst: BP_GET_PSIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:381,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:386,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:391,1
    - Dst: zio_read_data
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:401,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:402,1
    - Dst: zio_checksum_verify
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:406,1
    - Dst: grub_printf
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:407,1
    - Dst: decomp_func
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - bp
    - buf
    - stack
    argTypes:
    - blkptr_t*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 415
    functionName: zio_read
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BP_GET_LSIZE
    - BP_GET_COMPRESS
    - zio_read_data
    - decomp_func
    - grub_printf
    - zio_checksum_verify
    - BP_GET_PSIZE
    linkageType: ''
    returnType: int
    signature: int zio_read(blkptr_t *bp, void *buf, char *stack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BP_IS_HOLE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:444,1
    - Dst: grub_memset
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:445,1
    - Dst: zio_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - dn
    - blkid
    - buf
    - stack
    argTypes:
    - dnode_phys_t*
    - uint64_t
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 456
    functionName: dmu_read
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - zio_read
    - BP_IS_HOLE
    - grub_memset
    linkageType: ''
    returnType: int
    signature: int dmu_read(dnode_phys_t *dn, uint64_t blkid, void *buf, char *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grub_strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - zapobj
    - objsize
    - name
    - value
    argTypes:
    - mzap_phys_t*
    - int
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 482
    functionName: mzap_lookup
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - grub_strcmp
    linkageType: ''
    returnType: int
    signature: "int mzap_lookup(mzap_phys_t *zapobj, int objsize, char *name,\n\tuint64_t
      *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - salt
    - name
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 519
    functionName: zap_hash
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t zap_hash(uint64_t salt, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZAP_LEAF_CHUNK
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:534,1
    - Dst: MIN
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:535,1
    - Dst: ZAP_LEAF_NUMCHUNKS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:537,1
    - Dst: zfs_bcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - l
    - blksft
    - chunk
    - array_len
    - buf
    argTypes:
    - zap_leaf_phys_t*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: zap_leaf_array_equal
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - zfs_bcmp
    - MIN
    - ZAP_LEAF_NUMCHUNKS
    - ZAP_LEAF_CHUNK
    linkageType: ''
    returnType: int
    signature: "int zap_leaf_array_equal(zap_leaf_phys_t *l, int blksft, int chunk,\n
      \   int array_len, const char *buf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LEAF_HASH
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:569,1
    - Dst: ZAP_LEAF_NUMCHUNKS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:572,1
    - Dst: ZAP_LEAF_ENTRY
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:575,1
    - Dst: zap_leaf_array_equal
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:584,1
    - Dst: ZAP_LEAF_CHUNK
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:594,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - l
    - blksft
    - h
    - name
    - value
    argTypes:
    - zap_leaf_phys_t*
    - int
    - uint64_t
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 608
    functionName: zap_leaf_lookup
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - ZAP_LEAF_NUMCHUNKS
    - zap_leaf_array_equal
    - LEAF_HASH
    - ZAP_LEAF_ENTRY
    - ZAP_LEAF_CHUNK
    linkageType: ''
    returnType: int
    signature: "int zap_leaf_lookup(zap_leaf_phys_t *l, int blksft, uint64_t h,\n
      \   const char *name, uint64_t *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: zfs_log2
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:623,1
    - Dst: zap_hash
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:630,1
    - Dst: ZAP_HASH_IDX
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:639,1
    - Dst: dmu_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:647,1
    - Dst: zap_leaf_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - zap_dnode
    - zap
    - name
    - value
    - stack
    argTypes:
    - dnode_phys_t*
    - zap_phys_t*
    - char*
    - uint64_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 617
    functionDepth: 6
    functionLinenumber: 617
    functionLinenumberEnd: 651
    functionName: fzap_lookup
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - dmu_read
    - zap_leaf_lookup
    - zfs_log2
    - ZAP_HASH_IDX
    - zap_hash
    linkageType: ''
    returnType: int
    signature: "int fzap_lookup(dnode_phys_t *zap_dnode, zap_phys_t *zap,\n    char
      *name, uint64_t *value, char *stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dmu_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:673,1
    - Dst: mzap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:679,1
    - Dst: fzap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - zap_dnode
    - name
    - val
    - stack
    argTypes:
    - dnode_phys_t*
    - char*
    - uint64_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 661
    functionDepth: 7
    functionLinenumber: 661
    functionLinenumberEnd: 687
    functionName: zap_lookup
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - mzap_lookup
    - dmu_read
    - fzap_lookup
    linkageType: ''
    returnType: int
    signature: int zap_lookup(dnode_phys_t *zap_dnode, char *name, uint64_t *val,
      char *stack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zfs_log2
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:712,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:718,1
    - Dst: VERIFY_DN_TYPE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:719,1
    - Dst: dmu_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:733,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:736,1
    - Dst: VERIFY_DN_TYPE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - mdn
    - objnum
    - type
    - buf
    - stack
    argTypes:
    - dnode_phys_t*
    - uint64_t
    - uint8_t
    - dnode_phys_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 740
    functionName: dnode_get
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - grub_memmove
    - zfs_log2
    - dmu_read
    - VERIFY_DN_TYPE
    linkageType: ''
    returnType: int
    signature: "int dnode_get(dnode_phys_t *mdn, uint64_t objnum, uint8_t type, dnode_phys_t
      *buf,\n\tchar *stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grub_strstr
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:753,1
    - Dst: grub_strncmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:758,1
    - Dst: grub_strlen
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:759,1
    - Dst: grub_strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 766
    functionName: is_top_dataset_file
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - grub_strstr
    - grub_strncmp
    - grub_strcmp
    - grub_strlen
    linkageType: ''
    returnType: int
    signature: int is_top_dataset_file(char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:784,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:788,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:793,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:796,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:804,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:808,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:813,1
    - Dst: ZFS_DIRENT_OBJ
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:816,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:817,1
    - Dst: VERIFY_DN_TYPE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:826,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - mdn
    - path
    - dn
    - stack
    argTypes:
    - dnode_phys_t*
    - char*
    - dnode_phys_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 777
    functionDepth: 8
    functionLinenumber: 777
    functionLinenumberEnd: 829
    functionName: dnode_get_path
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - isspace
    - ZFS_DIRENT_OBJ
    - VERIFY_DN_TYPE
    - zap_lookup
    - dnode_get
    linkageType: ''
    returnType: int
    signature: "int dnode_get_path(dnode_phys_t *mdn, char *path, dnode_phys_t *dn,\n
      \   char *stack)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:845,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:853,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:856,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - mosmdn
    - obj
    - stack
    argTypes:
    - dnode_phys_t*
    - uint64_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 838
    functionDepth: 8
    functionLinenumber: 838
    functionLinenumberEnd: 867
    functionName: get_default_bootfsobj
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - dnode_get
    - zap_lookup
    linkageType: ''
    returnType: int
    signature: int get_default_bootfsobj(dnode_phys_t *mosmdn, uint64_t *obj, char
      *stack)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:898,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:902,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:906,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:911,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:916,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:919,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:926,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:932,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:939,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:940,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:944,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:947,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:955,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:960,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:965,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:968,1
    - Dst: zap_lookup
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:971,1
    - Dst: dnode_get
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:973,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:980,1
    - Dst: zio_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:983,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:986,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 5
    argNames:
    - mosmdn
    - fsname
    - obj
    - mdn
    - stack
    argTypes:
    - dnode_phys_t*
    - char*
    - uint64_t*
    - dnode_phys_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 882
    functionDepth: 8
    functionLinenumber: 882
    functionLinenumberEnd: 989
    functionName: get_objset_mdn
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - isspace
    - zio_read
    - grub_memmove
    - zap_lookup
    - dnode_get
    - DN_BONUS
    linkageType: ''
    returnType: int
    signature: "int get_objset_mdn(dnode_phys_t *mosmdn, char *fsname, uint64_t *obj,\n
      \   dnode_phys_t *mdn, char *stack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - nvlist
    - out
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1024
    functionName: nvlist_unpack
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nvlist_unpack(char *nvlist, char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nvlist
    - index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1042
    functionName: nvlist_array
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BSWAP_32
    linkageType: ''
    returnType: char
    signature: 'char *

      nvlist_array(char *nvlist, int index)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1059,1
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1063,1
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1069,1
    - Dst: grub_strncmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1072,1
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1076,1
    - Dst: BSWAP_32
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1082,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1084,1
    - Dst: BSWAP_64
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1089,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - nvlist
    - name
    - val
    - valtype
    - nelmp
    argTypes:
    - char*
    - char*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1108
    functionName: nvlist_lookup_value
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - BSWAP_32
    - grub_memmove
    - BSWAP_64
    - grub_strncmp
    linkageType: ''
    returnType: int
    signature: "int nvlist_lookup_value(char *nvlist, char *name, void *val, int valtype,\n
      \   int *nelmp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1118,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1120,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - nv
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1127
    functionName: vdev_validate
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - nvlist_lookup_value
    linkageType: ''
    returnType: int
    signature: int vdev_validate(char *nv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1139,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1143,1
    - Dst: vdev_validate
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1146,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1149,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1159,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1165,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1169,1
    - Dst: strlen
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1173,1
    - Dst: strlen
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1174,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1179,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1180,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1181,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1185,1
    - Dst: nvlist_array
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1192,1
    - Dst: vdev_get_bootpath
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1193,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 5
    argNames:
    - nv
    - inguid
    - devid
    - bootpath
    - is_spare
    argTypes:
    - char*
    - uint64_t
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1133
    functionDepth: 3
    functionLinenumber: 1133
    functionLinenumberEnd: 1200
    functionName: vdev_get_bootpath
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - nvlist_lookup_value
    - vdev_get_bootpath
    - strlen
    - nvlist_array
    - strcmp
    - vdev_validate
    linkageType: ''
    returnType: int
    signature: "int vdev_get_bootpath(char *nv, uint64_t inguid, char *devid, char
      *bootpath,\n    int is_spare)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1222,1
    - Dst: nvlist_unpack
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1228,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1231,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1238,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1242,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1250,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1255,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1258,1
    - Dst: vdev_get_bootpath
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1261,1
    - Dst: nvlist_lookup_value
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - sector
    - stack
    - outdevid
    - outpath
    - outguid
    argTypes:
    - uint64_t
    - char*
    - char*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1267
    functionName: check_pool_label
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached:
    - nvlist_lookup_value
    - devread
    - vdev_get_bootpath
    - nvlist_unpack
    linkageType: ''
    returnType: int
    signature: "int check_pool_label(uint64_t sector, char *stack, char *outdevid,\n
      \   char *outpath, uint64_t *outguid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: grub_memset
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1292,1
    - Dst: P2ALIGN
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1303,1
    - Dst: vdev_label_start
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1321,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1325,1
    - Dst: find_bestub
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1331,1
    - Dst: zio_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1332,1
    - Dst: VERIFY_OS_TYPE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1335,1
    - Dst: check_pool_label
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1337,1
    - Dst: vdev_uberblock_compare
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1344,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1349,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1350,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1352,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1354,1
    - Dst: grub_strlen
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1355,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1277
    functionDepth: 5
    functionLinenumber: 1277
    functionLinenumberEnd: 1369
    functionName: zfs_mount
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - P2ALIGN
    - zio_read
    - grub_memmove
    - grub_memset
    - check_pool_label
    - vdev_uberblock_compare
    - grub_strlen
    - VERIFY_OS_TYPE
    - find_bestub
    - vdev_label_start
    - devread
    linkageType: ''
    returnType: int
    signature: int zfs_mount(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_top_dataset_file
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1400,1
    - Dst: get_objset_mdn
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1401,1
    - Dst: get_default_bootfsobj
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1408,1
    - Dst: get_objset_mdn
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1412,1
    - Dst: get_objset_mdn
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1416,1
    - Dst: grub_memset
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1418,1
    - Dst: dnode_get_path
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1424,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1441,1
    - Dst: BP_GET_LSIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1448,1
    - Dst: zio_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1452,1
    - Dst: SA_HDR_SIZE
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1461,1
    - Dst: DN_BONUS
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1465,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1379
    functionDepth: 9
    functionLinenumber: 1379
    functionLinenumberEnd: 1471
    functionName: zfs_open
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - BP_GET_LSIZE
    - zio_read
    - is_top_dataset_file
    - dnode_get_path
    - grub_memset
    - SA_HDR_SIZE
    - get_default_bootfsobj
    - get_objset_mdn
    - DN_BONUS
    linkageType: ''
    returnType: int
    signature: int zfs_open(char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1497,1
    - Dst: dmu_read
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1517,1
    - Dst: MIN
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1523,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/zfs/fsys_zfs.c:1525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1480
    functionDepth: 6
    functionLinenumber: 1480
    functionLinenumberEnd: 1533
    functionName: zfs_read
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 1
    functionsReached:
    - grub_memmove
    - MIN
    - dmu_read
    linkageType: ''
    returnType: int
    signature: int zfs_read(char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start_sector
    - needed_sectors
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1542
    functionName: zfs_embed
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zfs_embed(int *start_sector, int needed_sectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: RAW_ADDR
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAW_ADDR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: RAW_SEG
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAW_SEG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: MIN
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: devread
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: devread(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Ch
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: Maj
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: Rot32
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Rot32(x, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: SIGMA0
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGMA0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SIGMA1
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGMA1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: sigma0
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: sigma1
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigma1
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:79,1
    - Dst: sigma0
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:80,1
    - Dst: SIGMA1
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:86,1
    - Dst: Ch
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:86,1
    - Dst: SIGMA0
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:87,1
    - Dst: Maj
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - H
    - cp
    argTypes:
    - uint32_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 94
    functionName: SHA256Transform
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached:
    - sigma0
    - SIGMA1
    - SIGMA0
    - sigma1
    - Maj
    - Ch
    linkageType: ''
    returnType: void
    signature: void SHA256Transform(uint32_t *H, const uint8_t *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Transform
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:106,1
    - Dst: SHA256Transform
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:118,1
    - Dst: ZIO_SET_CHECKSUM
      Src: /src/xen/tools/libfsimage/zfs/zfs_sha256.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - buf
    - size
    - zcp
    argTypes:
    - void*
    - uint64_t
    - zio_cksum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 125
    functionName: zio_checksum_SHA256
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
    functionUses: 0
    functionsReached:
    - ZIO_SET_CHECKSUM
    - SHA256Transform
    linkageType: ''
    returnType: void
    signature: void zio_checksum_SHA256(const void *buf, uint64_t size, zio_cksum_t
      *zcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dnp
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: VERIFY_DN_TYPE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_DN_TYPE(dnp, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - osp
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: VERIFY_OS_TYPE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_OS_TYPE(osp, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: BSWAP_8
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP_8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: BSWAP_16
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: BSWAP_32
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: BSWAP_64
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: P2ROUNDUP
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2ROUNDUP(x, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: VDEV_UBERBLOCK_OFFSET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDEV_UBERBLOCK_OFFSET(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: P2PHASE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2PHASE(x, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: DVA_OFFSET_TO_PHYS_SECTOR
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_OFFSET_TO_PHYS_SECTOR(offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: P2ALIGN
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2ALIGN(x, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hash
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: ZAP_HASH_IDX
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_HASH_IDX(hash, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: ZAP_LEAF_HASH_SHIFT
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_LEAF_HASH_SHIFT(bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: ZAP_LEAF_HASH_NUMENTRIES
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_LEAF_HASH_NUMENTRIES(bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bs
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: LEAF_HASH
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAF_HASH(bs, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: ZAP_LEAF_NUMCHUNKS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_LEAF_NUMCHUNKS(bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - bs
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: ZAP_LEAF_CHUNK
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_LEAF_CHUNK(l, bs, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - bs
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: ZAP_LEAF_ENTRY
    functionSourceFile: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_LEAF_ENTRY(l, bs, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - zio
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: ZIO_GET_IOSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZIO_GET_IOSIZE(zio)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: SA_HDR_SIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/sa_impl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SA_HDR_SIZE(hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - zap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ZAP_EMBEDDED_PTRTBL_SHIFT
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_EMBEDDED_PTRTBL_SHIFT(zap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zap
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: ZAP_EMBEDDED_PTRTBL_ENT
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZAP_EMBEDDED_PTRTBL_ENT(zap, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - de
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ZFS_DIRENT_OBJ
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZFS_DIRENT_OBJ(de)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: BF32_DECODE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_DECODE(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: BF64_DECODE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_DECODE(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: BF32_ENCODE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_ENCODE(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: BF64_ENCODE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_ENCODE(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: BF32_GET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_GET(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: BF64_GET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_GET(x, low, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: BF32_SET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_SET(x, low, len, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: BF64_SET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_SET(x, low, len, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - shift
    - ','
    - bias
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: BF32_GET_SB
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_GET_SB(x, low, len, shift, bias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - shift
    - ','
    - bias
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: BF64_GET_SB
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_GET_SB(x, low, len, shift, bias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - shift
    - ','
    - bias
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: BF32_SET_SB
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF32_SET_SB(x, low, len, shift, bias, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - low
    - ','
    - len
    - ','
    - shift
    - ','
    - bias
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: BF64_SET_SB
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BF64_SET_SB(x, low, len, shift, bias, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: DVA_GET_ASIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_GET_ASIZE(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: DVA_SET_ASIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_SET_ASIZE(dva, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: DVA_GET_GRID
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_GET_GRID(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: DVA_SET_GRID
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_SET_GRID(dva, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: DVA_GET_VDEV
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_GET_VDEV(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: DVA_SET_VDEV
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_SET_VDEV(dva, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: DVA_GET_OFFSET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_GET_OFFSET(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: DVA_SET_OFFSET
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_SET_OFFSET(dva, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: DVA_GET_GANG
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_GET_GANG(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: DVA_SET_GANG
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_SET_GANG(dva, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: BP_GET_LSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_LSIZE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: BP_SET_LSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_LSIZE(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: BP_GET_PSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_PSIZE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: BP_SET_PSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_PSIZE(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: BP_GET_COMPRESS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_COMPRESS(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: BP_SET_COMPRESS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_COMPRESS(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: BP_GET_CHECKSUM
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_CHECKSUM(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: BP_SET_CHECKSUM
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_CHECKSUM(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: BP_GET_TYPE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_TYPE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: BP_SET_TYPE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_TYPE(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: BP_GET_LEVEL
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_LEVEL(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: BP_SET_LEVEL
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_LEVEL(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: BP_GET_PROP_BIT_61
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_PROP_BIT_61(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: BP_SET_PROP_BIT_61
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_PROP_BIT_61(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: BP_GET_DEDUP
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_DEDUP(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: BP_SET_DEDUP
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_DEDUP(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: BP_GET_BYTEORDER
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_BYTEORDER(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: BP_SET_BYTEORDER
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_BYTEORDER(bp, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: BP_PHYSICAL_BIRTH
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_PHYSICAL_BIRTH(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bp
    - ','
    - logical
    - ','
    - physical
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: BP_SET_BIRTH
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SET_BIRTH(bp, logical, physical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: BP_GET_ASIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_ASIZE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: BP_GET_UCSIZE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_UCSIZE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: BP_GET_NDVAS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_GET_NDVAS(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: BP_COUNT_GANG
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_COUNT_GANG(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dva1
    - ','
    - dva2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: DVA_EQUAL
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_EQUAL(dva1, dva2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bp1
    - ','
    - bp2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: BP_EQUAL
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_EQUAL(bp1, bp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zc1
    - ','
    - zc2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: ZIO_CHECKSUM_EQUAL
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZIO_CHECKSUM_EQUAL(zc1, zc2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dva
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: DVA_IS_VALID
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DVA_IS_VALID(dva)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zcp
    - ','
    - w0
    - ','
    - w1
    - ','
    - w2
    - ','
    - w3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: ZIO_SET_CHECKSUM
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZIO_SET_CHECKSUM(zcp, w0, w1, w2, w3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: BP_IDENTITY
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_IDENTITY(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: BP_IS_GANG
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_IS_GANG(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: BP_IS_HOLE
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_IS_HOLE(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: BP_IS_RAIDZ
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_IS_RAIDZ(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 298
    functionName: BP_ZERO
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_ZERO(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: BP_SHOULD_BYTESWAP
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BP_SHOULD_BYTESWAP(bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dnp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: DN_BONUS
    functionSourceFile: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DN_BONUS(dnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fsi
    - data
    argTypes:
    - fsi_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: fsip_fs_set_data
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsip_fs_set_data(fsi_t *fsi, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:46,1
    - Dst: bzero
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fsi
    - data
    argTypes:
    - fsi_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: fsip_file_alloc
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached:
    - malloc
    - bzero
    linkageType: ''
    returnType: fsi_file_t
    signature: 'fsi_file_t *

      fsip_file_alloc(fsi_t *fsi, void *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: fsip_file_free
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fsip_file_free(fsi_file_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: fsip_fs
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fsi_t
    signature: 'fsi_t *

      fsip_fs(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: fsip_fs_offset
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fsip_fs_offset(fsi_t *fsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: fsip_fs_data
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      fsip_fs_data(fsi_t *fsi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: fsip_file_data
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      fsip_file_data(fsi_file_t *ffi)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:90,1
    - Dst: bzero
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:95,1
    - Dst: dlopen
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:97,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:98,1
    - Dst: dlsym
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:102,1
    - Dst: init
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:107,1
    - Dst: dlclose
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:117,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - lib
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 120
    functionName: init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached:
    - dlclose
    - free
    - malloc
    - dlopen
    - dlsym
    - init
    - bzero
    linkageType: ''
    returnType: int
    signature: int init_plugin(const char *lib)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:124,1
    - Dst: pathconf
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:135,1
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:138,1
    - Dst: opendir
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:141,1
    - Dst: readdir
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:146,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:154,1
    - Dst: strcmp
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:156,1
    - Dst: snprintf
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:159,1
    - Dst: init_plugin
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:162,1
    - Dst: closedir
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:171,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:172,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:173,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 176
    functionName: fsi_init
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached:
    - snprintf
    - init_plugin
    - pathconf
    - free
    - malloc
    - strcmp
    - opendir
    - readdir
    - getenv
    - closedir
    linkageType: ''
    returnType: int
    signature: int fsi_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsi_init
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:183,1
    - Dst: fsi_plugin_t*::fp_ops::fpo_mount
      Src: /src/xen/tools/libfsimage/common/fsimage_plugin.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - fsi
    - path
    - options
    argTypes:
    - fsi_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: find_plugin
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_plugin.c
    functionUses: 0
    functionsReached:
    - fsi_init
    - fsi_plugin_t*::fp_ops::fpo_mount
    linkageType: ''
    returnType: int
    signature: int find_plugin(fsi_t *fsi, const char *path, const char *options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libfsimage/common/fsimage.c:45,1
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage.c:48,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:56,1
    - Dst: find_plugin
      Src: /src/xen/tools/libfsimage/common/fsimage.c:57,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:58,1
    - Dst: close
      Src: /src/xen/tools/libfsimage/common/fsimage.c:67,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - path
    - 'off'
    - options
    argTypes:
    - char*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: fsi_open_fsimage
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - find_plugin
    - open
    - free
    - malloc
    - close
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: fsi_t
    signature: fsi_t *fsi_open_fsimage(const char *path, uint64_t off, const char
      *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:75,1
    - Dst: fsi_t*::f_plugin::fp_ops::fpo_umount
      Src: /src/xen/tools/libfsimage/common/fsimage.c:76,1
    - Dst: close
      Src: /src/xen/tools/libfsimage/common/fsimage.c:77,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage.c:78,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fsi_close_fsimage
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - free
    - close
    - fsi_t*::f_plugin::fp_ops::fpo_umount
    - pthread_mutex_lock
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void fsi_close_fsimage(fsi_t *fsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsi_open_file
      Src: /src/xen/tools/libfsimage/common/fsimage.c:86,1
    - Dst: fsi_close_file
      Src: /src/xen/tools/libfsimage/common/fsimage.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fsi
    - path
    argTypes:
    - fsi_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: fsi_file_exists
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - fsi_close_file
    - fsi_open_file
    linkageType: ''
    returnType: int
    signature: int fsi_file_exists(fsi_t *fsi, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:98,1
    - Dst: fsi_plugin_ops_t*::fpo_open
      Src: /src/xen/tools/libfsimage/common/fsimage.c:100,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fsi
    - path
    argTypes:
    - fsi_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: fsi_open_file
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fsi_plugin_ops_t*::fpo_open
    linkageType: ''
    returnType: fsi_file_t
    signature: fsi_file_t *fsi_open_file(fsi_t *fsi, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:111,1
    - Dst: fsi_plugin_ops_t*::fpo_close
      Src: /src/xen/tools/libfsimage/common/fsimage.c:113,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: fsi_close_file
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fsi_plugin_ops_t*::fpo_close
    linkageType: ''
    returnType: int
    signature: int fsi_close_file(fsi_file_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:124,1
    - Dst: fsi_plugin_ops_t*::fpo_read
      Src: /src/xen/tools/libfsimage/common/fsimage.c:126,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ffi
    - buf
    - nbytes
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 130
    functionName: fsi_read_file
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - fsi_plugin_ops_t*::fpo_read
    - pthread_mutex_unlock
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fsi_read_file(fsi_file_t *ffi, void *buf, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:137,1
    - Dst: fsi_plugin_ops_t*::fpo_pread
      Src: /src/xen/tools/libfsimage/common/fsimage.c:139,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libfsimage/common/fsimage.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ffi
    - buf
    - nbytes
    - 'off'
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: fsi_pread_file
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - fsi_plugin_ops_t*::fpo_pread
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fsi_pread_file(fsi_file_t *ffi, void *buf, size_t nbytes, uint64_t
      off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage.c:148,1
    - Dst: bzero
      Src: /src/xen/tools/libfsimage/common/fsimage.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fsi
    - len
    argTypes:
    - fsi_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: fsi_bootstring_alloc
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 1
    functionsReached:
    - malloc
    - bzero
    linkageType: ''
    returnType: char
    signature: 'char *

      fsi_bootstring_alloc(fsi_t *fsi, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: fsi_bootstring_free
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fsi_bootstring_free(fsi_t *fsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: fsi_fs_bootstring
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      fsi_fs_bootstring(fsi_t *fsi)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:54,1
    - Dst: bzero
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:59,1
    - Dst: bcopy
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:60,1
    - Dst: fsig_fs_buf
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:60,1
    - Dst: fsip_file_alloc
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:62,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: fsig_file_alloc
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - fsig_fs_buf
    - fsip_file_alloc
    - bcopy
    - bzero
    linkageType: ''
    returnType: fsi_file_t
    signature: 'fsi_file_t *

      fsig_file_alloc(fsi_t *fsi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_fs_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: fsig_fs_buf
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 1
    functionsReached:
    - fsip_fs_data
    linkageType: ''
    returnType: void
    signature: 'void *

      fsig_fs_buf(fsi_t *fsi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: fsig_file_buf
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: void
    signature: 'void *

      fsig_file_buf(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: fsig_filepos
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 2
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t *

      fsig_filepos(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: fsig_filemax
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 1
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: uint64_t
    signature: 'uint64_t *

      fsig_filemax(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: fsig_int1
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: int
    signature: 'int *

      fsig_int1(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: fsig_int2
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: int
    signature: 'int *

      fsig_int2(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: fsig_errnum
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    linkageType: ''
    returnType: int
    signature: 'int *

      fsig_errnum(fsi_file_t *ffi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: fsig_disk_read_junk
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      fsig_disk_read_junk(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - word
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: fsig_log2
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long fsig_log2 (unsigned long word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: fsig_log2
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long fsig_log2 (unsigned long word)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pread
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:179,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:182,1
    - Dst: pread
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:190,1
    - Dst: pread
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:198,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - ffi
    - sector
    - offset
    - bufsize
    - buf
    argTypes:
    - fsi_file_t*
    - unsigned int
    - unsigned int
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 205
    functionName: fsig_devread
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - memcpy
    - pread
    linkageType: ''
    returnType: int
    signature: "int fsig_devread(fsi_file_t *ffi, unsigned int sector, unsigned int
      offset,\n    unsigned int bufsize, char *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: fsig_substring
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fsig_substring(const char *s1, const char *s2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:228,1
    - Dst: fsig_file_alloc
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:233,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:234,1
    - Dst: bzero
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:239,1
    - Dst: fsig_plugin_ops_t*::fpo_mount
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:241,1
    - Dst: fsip_file_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:242,1
    - Dst: fsi_bootstring_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:243,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:244,1
    - Dst: bcopy
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:249,1
    - Dst: fsig_file_buf
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:249,1
    - Dst: fsig_fs_buf
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:249,1
    - Dst: fsip_file_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - fsi
    - path
    - options
    argTypes:
    - fsi_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 252
    functionName: fsig_mount
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_free
    - free
    - malloc
    - fsig_fs_buf
    - fsig_plugin_ops_t*::fpo_mount
    - fsig_file_buf
    - fsig_file_alloc
    - bcopy
    - fsi_bootstring_free
    - bzero
    linkageType: ''
    returnType: int
    signature: int fsig_mount(fsi_t *fsi, const char *path, const char *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsi_bootstring_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:257,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: fsig_umount
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - free
    - fsi_bootstring_free
    linkageType: ''
    returnType: int
    signature: int fsig_umount(fsi_t *fsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:266,1
    - Dst: fsig_file_alloc
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:269,1
    - Dst: fsig_plugin_ops_t*::fpo_dir
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:272,1
    - Dst: fsip_file_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:273,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - fsi
    - name
    argTypes:
    - fsi_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: fsig_open
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_free
    - free
    - strdup
    - fsig_file_alloc
    - fsig_plugin_ops_t*::fpo_dir
    linkageType: ''
    returnType: fsi_file_t
    signature: 'fsi_file_t *

      fsig_open(fsi_t *fsi, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:287,1
    - Dst: fsig_plugin_ops_t*::fpo_read
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ffi
    - buf
    - nbytes
    - 'off'
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: fsig_pread
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    - fsig_plugin_ops_t*::fpo_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fsig_pread(fsi_file_t *ffi, void *buf, size_t nbytes, uint64_t
      off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:305,1
    - Dst: fsig_pread
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ffi
    - buf
    - nbytes
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: fsig_read
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    - fsig_pread
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t fsig_read(fsi_file_t *ffi, void *buf, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:316,1
    - Dst: fsip_file_free
      Src: /src/xen/tools/libfsimage/common/fsimage_grub.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: fsig_close
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 0
    functionsReached:
    - free
    - fsip_file_free
    linkageType: ''
    returnType: int
    signature: int fsig_close(fsi_file_t *ffi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - plugin
    - ops
    argTypes:
    - fsi_plugin_t*
    - fsig_plugin_ops_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 340
    functionName: fsig_init
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_grub.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsig_init(fsi_plugin_t *plugin, fsig_plugin_ops_t *ops)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: ''
    functionSourceFile: /src/xen/tools/libfsimage/common/fsimage_priv.h
    functionUses: 290
    functionsReached: []
    linkageType: ''
    returnType: C
    signature: 'C '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: ''
    functionSourceFile: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
    functionUses: 290
    functionsReached: []
    linkageType: ''
    returnType: C
    signature: 'C '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: ''
    functionSourceFile: /src/xen/tools/libfsimage/common/xenfsimage.h
    functionUses: 290
    functionsReached: []
    linkageType: ''
    returnType: C
    signature: 'C '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 99
    functionName: ''
    functionSourceFile: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
    functionUses: 290
    functionsReached: []
    linkageType: ''
    returnType: C
    signature: 'C '
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: RRMAGIC
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/iso9660.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RRMAGIC(c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: CHECK2
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/iso9660.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK2(ptr, c1, c2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log2
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:65,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:92,1
    - Dst: noisy_printf
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:97,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ffi
    - sector
    - byte_offset
    - byte_len
    - buf
    argTypes:
    - fsi_file_t*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 101
    functionName: iso9660_devread
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    functionUses: 0
    functionsReached:
    - devread
    - log2
    - noisy_printf
    - printf
    linkageType: ''
    returnType: int
    signature: int iso9660_devread (fsi_file_t *ffi, int sector, int byte_offset,
      int byte_len, char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_PC_SLICE_TYPE_BSD_WITH_FS
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:116,1
    - Dst: iso9660_devread
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:125,1
    - Dst: memcmp
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:129,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: iso9660_mount
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_devread
    - IS_PC_SLICE_TYPE_BSD_WITH_FS
    - memcmp
    linkageType: ''
    returnType: int
    signature: int iso9660_mount (fsi_file_t *ffi, const char *options)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:166,1
    - Dst: iso9660_devread
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:175,1
    - Dst: CHECK2
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:196,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:223,1
    - Dst: RRMAGIC
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:234,1
    - Dst: RRMAGIC
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:238,1
    - Dst: RRMAGIC
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:243,1
    - Dst: RRMAGIC
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:255,1
    - Dst: RRMAGIC
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:260,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:275,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:289,1
    - Dst: grub_putstr
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:316,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:339,1
    - Dst: iso9660_devread
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:344,1
    - Dst: memcmp
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:355,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:390,1
    - Dst: print_a_completion
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:392,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 162
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 413
    functionName: iso9660_dir
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    functionUses: 0
    functionsReached:
    - RRMAGIC
    - isspace
    - memcmp
    - print_a_completion
    - printf
    - memcpy
    - grub_putstr
    - iso9660_devread
    - CHECK2
    linkageType: ''
    returnType: int
    signature: int iso9660_dir (fsi_file_t *ffi, char *dirname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iso9660_devread
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 448
    functionName: iso9660_read
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    functionUses: 0
    functionsReached:
    - iso9660_devread
    linkageType: ''
    returnType: int
    signature: int iso9660_read (fsi_file_t *ffi, char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 462
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: mask32lo
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mask32lo(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: XFS_INO_MASK
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XFS_INO_MASK(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - agino
    argTypes:
    - xfs_agino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: agino2agbno
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xfs_agblock_t
    signature: xfs_agblock_t agino2agbno (xfs_agino_t agino)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ino
    argTypes:
    - xfs_ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: ino2agno
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xfs_agnumber_t
    signature: xfs_agnumber_t ino2agno (xfs_ino_t ino)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFS_INO_MASK
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ino
    argTypes:
    - xfs_ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: ino2agino
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - XFS_INO_MASK
    linkageType: ''
    returnType: xfs_agino_t
    signature: xfs_agino_t ino2agino (xfs_ino_t ino)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFS_INO_MASK
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ino
    argTypes:
    - xfs_ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: ino2offset
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - XFS_INO_MASK
    linkageType: ''
    returnType: int
    signature: int ino2offset (xfs_ino_t ino)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - xfs_uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: le16
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xfs_uint16_t
    signature: xfs_uint16_t le16 (xfs_uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - xfs_uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 119
    functionName: le32
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xfs_uint32_t
    signature: xfs_uint32_t le32 (xfs_uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:126,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xfs_uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: le64
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le32
    linkageType: ''
    returnType: xfs_uint64_t
    signature: xfs_uint64_t le64 (xfs_uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:133,1
    - Dst: mask32lo
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:133,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:134,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - xfs_bmbt_rec_32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: xt_start
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le32
    - mask32lo
    linkageType: ''
    returnType: xfs_fsblock_t
    signature: xfs_fsblock_t xt_start (xfs_bmbt_rec_32_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:141,1
    - Dst: mask32lo
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:142,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - xfs_bmbt_rec_32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: xt_offset
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le32
    - mask32lo
    linkageType: ''
    returnType: xfs_fileoff_t
    signature: xfs_fileoff_t xt_offset (xfs_bmbt_rec_32_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:149,1
    - Dst: mask32lo
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - xfs_bmbt_rec_32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: xt_len
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le32
    - mask32lo
    linkageType: ''
    returnType: xfs_filblks_t
    signature: xfs_filblks_t xt_len (xfs_bmbt_rec_32_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - offset
    - len
    argTypes:
    - xfs_fileoff_t
    - xfs_fileoff_t
    - xfs_filblks_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: isinxt
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isinxt (xfs_fileoff_t key, xfs_fileoff_t offset, xfs_filblks_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - agno
    - agbno
    argTypes:
    - xfs_agnumber_t
    - xfs_agblock_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: agb2daddr
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xfs_daddr_t
    signature: xfs_daddr_t agb2daddr (xfs_agnumber_t agno, xfs_agblock_t agbno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: agb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:167,1
    - Dst: mask32lo
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fsbno
    argTypes:
    - xfs_fsblock_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: fsb2daddr
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - agb2daddr
    - mask32lo
    linkageType: ''
    returnType: xfs_daddr_t
    signature: xfs_daddr_t fsb2daddr (xfs_fsblock_t fsbno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: btroot_maxrecs
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int btroot_maxrecs (fsi_file_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ino2agno
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:189,1
    - Dst: ino2agino
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:190,1
    - Dst: agino2agbno
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:191,1
    - Dst: ino2offset
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:192,1
    - Dst: agb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:193,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:195,1
    - Dst: btroot_maxrecs
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ffi
    - ino
    argTypes:
    - fsi_file_t*
    - xfs_ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: di_read
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - ino2agino
    - ino2offset
    - agb2daddr
    - ino2agno
    - agino2agbno
    - devread
    - btroot_maxrecs
    linkageType: ''
    returnType: int
    signature: int di_read (fsi_file_t *ffi, xfs_ino_t ino)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:213,1
    - Dst: fsb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:218,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:218,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:219,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:222,1
    - Dst: fsb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:223,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:223,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 231
    functionName: init_extents
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le64
    - le16
    - fsb2daddr
    - le32
    - devread
    linkageType: ''
    returnType: void
    signature: void init_extents (fsi_file_t *ffi)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:249,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:250,1
    - Dst: fsb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:251,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:251,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:255,1
    - Dst: xt_offset
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:259,1
    - Dst: xt_start
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:260,1
    - Dst: xt_len
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 266
    functionName: next_extent
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le64
    - xt_start
    - xt_len
    - le16
    - fsb2daddr
    - devread
    - xt_offset
    linkageType: ''
    returnType: xad_t
    signature: 'xad_t *

      next_extent (fsi_file_t *ffi)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_extents
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:277,1
    - Dst: next_extent
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:278,1
    - Dst: isinxt
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:280,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:281,1
    - Dst: fsb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 286
    functionName: xfs_dabread
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - isinxt
    - init_extents
    - fsb2daddr
    - devread
    - next_extent
    linkageType: ''
    returnType: void
    signature: void xfs_dabread (fsi_file_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:294,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sfe
    - namelen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: sf_ino
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le64
    - le32
    linkageType: ''
    returnType: xfs_ino_t
    signature: xfs_ino_t sf_ino (char *sfe, int namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:301,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: sf_parent_ino
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le64
    - le32
    linkageType: ''
    returnType: xfs_ino_t
    signature: xfs_ino_t sf_parent_ino (fsi_file_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: roundup8
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int roundup8 (int n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xfs_dabread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:327,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:329,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:329,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:330,1
    - Dst: sf_parent_ino
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:342,1
    - Dst: sf_ino
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:352,1
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:367,1
    - Dst: roundup8
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:370,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:370,1
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:377,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:378,1
    - Dst: roundup8
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:381,1
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - ffi
    - ino
    argTypes:
    - fsi_file_t*
    - xfs_ino_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 390
    functionName: next_dentry
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - roundup8
    - sf_ino
    - le64
    - xfs_dabread
    - le16
    - le32
    - sf_parent_ino
    - xfs_read
    linkageType: ''
    returnType: char
    signature: 'char *

      next_dentry (fsi_file_t *ffi, xfs_ino_t *ino)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:405,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:406,1
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:409,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:410,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:410,1
    - Dst: xfs_dabread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:417,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:418,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:419,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:420,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:420,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:421,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:424,1
    - Dst: next_dentry
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:433,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - ffi
    - ino
    argTypes:
    - fsi_file_t*
    - xfs_ino_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 434
    functionName: first_dentry
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - next_dentry
    - xfs_dabread
    - le16
    - le32
    - xfs_read
    linkageType: ''
    returnType: char
    signature: 'char *

      first_dentry (fsi_file_t *ffi, xfs_ino_t *ino)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:439,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:440,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:448,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:450,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 2
    argCount: 1
    argNames:
    - super
    argTypes:
    - xfs_sb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 453
    functionName: xfs_sb_is_invalid
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le16
    - le32
    linkageType: ''
    returnType: bool
    signature: bool xfs_sb_is_invalid (const xfs_sb_t *super)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:460,1
    - Dst: xfs_sb_is_invalid
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:461,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:469,1
    - Dst: le32
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:475,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 493
    functionName: xfs_mount
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - le64
    - BUILD_BUG_ON
    - le32
    - devread
    - xfs_sb_is_invalid
    linkageType: ''
    returnType: int
    signature: int xfs_mount (fsi_file_t *ffi, const char *options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:504,1
    - Dst: init_extents
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:512,1
    - Dst: next_extent
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:513,1
    - Dst: isinxt
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:516,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:522,1
    - Dst: fsb2daddr
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 495
    functionDepth: 3
    functionLinenumber: 495
    functionLinenumberEnd: 543
    functionName: xfs_read
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 2
    functionsReached:
    - isinxt
    - init_extents
    - grub_memmove
    - fsb2daddr
    - devread
    - next_extent
    linkageType: ''
    returnType: int
    signature: int xfs_read (fsi_file_t *ffi, char *buf, int len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: di_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:558,1
    - Dst: le64
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:559,1
    - Dst: le16
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:560,1
    - Dst: xfs_read
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:570,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:583,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:601,1
    - Dst: first_dentry
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:604,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:606,1
    - Dst: print_a_completion
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:611,1
    - Dst: next_dentry
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:621,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 545
    functionDepth: 6
    functionLinenumber: 545
    functionLinenumberEnd: 632
    functionName: xfs_dir
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - next_dentry
    - isspace
    - le64
    - substring
    - di_read
    - le16
    - print_a_completion
    - xfs_read
    - first_dentry
    linkageType: ''
    returnType: int
    signature: int xfs_dir (fsi_file_t *ffi, char *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/xfs/fsys_xfs.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:63,1
    - Dst: log2
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:71,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:71,1
    - Dst: log2
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:73,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:76,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:77,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:80,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:87,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:101,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:139,1
    - Dst: FAT_CVT_U16
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:140,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:150,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 179
    functionName: fat_mount
    functionSourceFile: /src/xen/tools/libfsimage/fat/fsys_fat.c
    functionUses: 0
    functionsReached:
    - devread
    - log2
    - FAT_CVT_U16
    linkageType: ''
    returnType: int
    signature: int fat_mount (fsi_file_t *ffi, const char *options)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:195,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:227,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:261,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 273
    functionName: fat_read
    functionSourceFile: /src/xen/tools/libfsimage/fat/fsys_fat.c
    functionUses: 0
    functionsReached:
    - devread
    linkageType: ''
    returnType: int
    signature: int fat_read (fsi_file_t *ffi, char *buf, int len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:303,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:327,1
    - Dst: fat_read
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:338,1
    - Dst: putchar
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:347,1
    - Dst: FAT_DIRENTRY_ATTRIB
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:360,1
    - Dst: FAT_LONGDIR_ID
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:375,1
    - Dst: FAT_LONGDIR_ALIASCHECKSUM
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:382,1
    - Dst: FAT_LONGDIR_ALIASCHECKSUM
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:386,1
    - Dst: FAT_DIRENTRY_VALID
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:400,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:419,1
    - Dst: tolower
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:428,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:429,1
    - Dst: tolower
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:433,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:434,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:446,1
    - Dst: print_a_completion
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:450,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:456,1
    - Dst: FAT_DIRENTRY_ATTRIB
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:462,1
    - Dst: FAT_DIRENTRY_FILELENGTH
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:463,1
    - Dst: FAT_DIRENTRY_FIRST_CLUSTER
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:465,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 98
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 470
    functionName: fat_dir
    functionSourceFile: /src/xen/tools/libfsimage/fat/fsys_fat.c
    functionUses: 0
    functionsReached:
    - FAT_DIRENTRY_FIRST_CLUSTER
    - FAT_LONGDIR_ALIASCHECKSUM
    - isspace
    - FAT_DIRENTRY_ATTRIB
    - substring
    - tolower
    - FAT_DIRENTRY_VALID
    - print_a_completion
    - fat_read
    - FAT_LONGDIR_ID
    - FAT_DIRENTRY_FILELENGTH
    - putchar
    linkageType: ''
    returnType: int
    signature: int fat_dir (fsi_file_t *ffi, char *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/fat/fsys_fat.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/fat/fsys_fat.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytarr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: FAT_CVT_U16
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_CVT_U16(bytarr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: FAT_DIRENTRY_ATTRIB
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_DIRENTRY_ATTRIB(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: FAT_DIRENTRY_VALID
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_DIRENTRY_VALID(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: FAT_DIRENTRY_FIRST_CLUSTER
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_DIRENTRY_FIRST_CLUSTER(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: FAT_DIRENTRY_FILELENGTH
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_DIRENTRY_FILELENGTH(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: FAT_LONGDIR_ID
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_LONGDIR_ID(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: FAT_LONGDIR_ALIASCHECKSUM
    functionSourceFile: /src/xen/tools/libfsimage/fat/fat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAT_LONGDIR_ALIASCHECKSUM(entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsip_fs_offset
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:35,1
    - Dst: snprintf
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:38,1
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:40,1
    - Dst: ext2fs_open2
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:44,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:47,1
    - Dst: fsip_fs_set_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fsi
    - name
    - options
    argTypes:
    - fsi_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: ext2lib_mount
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - snprintf
    - free
    - fsip_fs_offset
    - ext2fs_open2
    - malloc
    - fsip_fs_set_data
    linkageType: ''
    returnType: int
    signature: int ext2lib_mount(fsi_t *fsi, const char *name, const char *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsip_fs_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:59,1
    - Dst: ext2fs_close
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:60,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:61,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fsi
    argTypes:
    - fsi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: ext2lib_umount
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - free
    - fsip_fs_data
    - ext2fs_close
    linkageType: ''
    returnType: int
    signature: int ext2lib_umount(fsi_t *fsi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsip_fs_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:73,1
    - Dst: ext2fs_namei_follow
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:78,1
    - Dst: malloc
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:86,1
    - Dst: ext2fs_file_open
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:90,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:93,1
    - Dst: fsip_file_alloc
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:98,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - fsi
    - path
    argTypes:
    - fsi_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: ext2lib_open
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - ext2fs_file_open
    - ext2fs_namei_follow
    - free
    - malloc
    - fsip_fs_data
    - fsip_file_alloc
    linkageType: ''
    returnType: fsi_file_t
    signature: 'fsi_file_t *

      ext2lib_open(fsi_t *fsi, const char *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:107,1
    - Dst: ext2fs_file_read
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - file
    - buf
    - nbytes
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: ext2lib_read
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - fsip_file_data
    - ext2fs_file_read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ext2lib_read(fsi_file_t *file, void *buf, size_t nbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:123,1
    - Dst: ext2fs_file_llseek
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:128,1
    - Dst: ext2fs_file_llseek
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:133,1
    - Dst: ext2fs_file_read
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:138,1
    - Dst: ext2fs_file_llseek
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - file
    - buf
    - nbytes
    - 'off'
    argTypes:
    - fsi_file_t*
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 148
    functionName: ext2lib_pread
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - ext2fs_file_read
    - fsip_file_data
    - ext2fs_file_llseek
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t ext2lib_pread(fsi_file_t *file, void *buf, size_t nbytes, uint64_t
      off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsip_file_data
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:153,1
    - Dst: ext2fs_file_close
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:154,1
    - Dst: free
      Src: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: ext2lib_close
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached:
    - ext2fs_file_close
    - free
    - fsip_file_data
    linkageType: ''
    returnType: int
    signature: int ext2lib_close(fsi_file_t *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 174
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: EXT2_DIR_REC_LEN
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_DIR_REC_LEN(name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: log2
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log2(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: EXT2_ADDR_PER_BLOCK
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_ADDR_PER_BLOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: EXT2_ADDR_PER_BLOCK_BITS
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_ADDR_PER_BLOCK_BITS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: EXT2_INODE_SIZE
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_INODE_SIZE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: EXT2_INODES_PER_BLOCK
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_INODES_PER_BLOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: EXT2_BLOCK_SIZE_BITS
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_BLOCK_SIZE_BITS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: EXT2_BLOCK_SIZE
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_BLOCK_SIZE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: EXT2_DESC_PER_BLOCK
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT2_DESC_PER_BLOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: S_ISLNK
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: S_ISREG
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: S_ISDIR
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: ext2fs_mount
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - devread
    linkageType: ''
    returnType: int
    signature: int ext2fs_mount (fsi_file_t *ffi, const char *options)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:348,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:350,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:350,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ffi
    - fsblock
    - buffer
    argTypes:
    - fsi_file_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: ext2_rdfsb
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - EXT2_BLOCK_SIZE
    - devread
    - printf
    linkageType: ''
    returnType: int
    signature: int ext2_rdfsb (fsi_file_t *ffi, int fsblock, char *buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:369,1
    - Dst: ext4_recurse_extent_index
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:371,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ffi
    - extent_block
    - logical_block
    argTypes:
    - fsi_file_t*
    - struct ext4_extent_header*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 372
    functionName: ext4_recurse_extent_index
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 1
    functionsReached:
    - ext4_recurse_extent_index
    - ext2_rdfsb
    linkageType: ''
    returnType: struct ext4_extent_header
    signature: 'struct ext4_extent_header *

      ext4_recurse_extent_index(fsi_file_t *ffi, struct ext4_extent_header *extent_block,
      int logical_block)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:389,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:390,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:393,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:397,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:400,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:409,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:410,1
    - Dst: EXT2_ADDR_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:417,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:419,1
    - Dst: EXT2_ADDR_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:428,1
    - Dst: EXT2_ADDR_PER_BLOCK_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:430,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:433,1
    - Dst: EXT2_ADDR_PER_BLOCK_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:440,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:442,1
    - Dst: EXT2_ADDR_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:449,1
    - Dst: EXT2_ADDR_PER_BLOCK_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:453,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:455,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:461,1
    - Dst: EXT2_ADDR_PER_BLOCK_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:462,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:469,1
    - Dst: EXT2_ADDR_PER_BLOCK_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:470,1
    - Dst: EXT2_ADDR_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:471,1
    - Dst: EXT2_ADDR_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:479,1
    - Dst: ext4_recurse_extent_index
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:486,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 2
    argNames:
    - ffi
    - logical_block
    argTypes:
    - fsi_file_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 503
    functionName: ext2fs_block_map
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - ext2_rdfsb
    - ext4_recurse_extent_index
    - EXT2_ADDR_PER_BLOCK_BITS
    - printf
    - EXT2_ADDR_PER_BLOCK
    linkageType: ''
    returnType: int
    signature: int ext2fs_block_map (fsi_file_t *ffi, int logical_block)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:522,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:523,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:526,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:530,1
    - Dst: EXT2_BLOCK_SIZE_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:537,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:538,1
    - Dst: ext2fs_block_map
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:539,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:541,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:546,1
    - Dst: memset
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:552,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:556,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:556,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 506
    functionDepth: 4
    functionLinenumber: 506
    functionLinenumberEnd: 572
    functionName: ext2fs_read
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - EXT2_BLOCK_SIZE_BITS
    - memset
    - printf
    - ext2fs_block_map
    - devread
    - EXT2_BLOCK_SIZE
    linkageType: ''
    returnType: int
    signature: int ext2fs_read (fsi_file_t *ffi, char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: ext2_is_fast_symlink
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - EXT2_BLOCK_SIZE
    linkageType: ''
    returnType: int
    signature: int ext2_is_fast_symlink (fsi_file_t *ffi)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:652,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:653,1
    - Dst: log2
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:658,1
    - Dst: EXT2_DESC_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:658,1
    - Dst: EXT2_DESC_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:659,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:661,1
    - Dst: EXT2_DESC_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:662,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:663,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:665,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:672,1
    - Dst: EXT2_INODE_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:672,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:676,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:678,1
    - Dst: EXT2_INODES_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:687,1
    - Dst: EXT2_INODE_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:688,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:690,1
    - Dst: EXT2_INODES_PER_BLOCK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:691,1
    - Dst: EXT2_INODE_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:691,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:692,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:693,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:697,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:698,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:701,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:705,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:708,1
    - Dst: memmove
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:712,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:715,1
    - Dst: S_ISLNK
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:719,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:730,1
    - Dst: memmove
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:745,1
    - Dst: ext2_is_fast_symlink
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:750,1
    - Dst: ext2fs_read
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:753,1
    - Dst: memmove
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:762,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:766,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:787,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:789,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:807,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:814,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:826,1
    - Dst: putchar
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:836,1
    - Dst: EXT2_BLOCK_SIZE_BITS
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:848,1
    - Dst: ext2fs_block_map
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:853,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:855,1
    - Dst: ext2_rdfsb
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:858,1
    - Dst: EXT2_BLOCK_SIZE
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:864,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:872,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:874,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:882,1
    - Dst: print_a_completion
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:890,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 132
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 613
    functionDepth: 5
    functionLinenumber: 613
    functionLinenumberEnd: 904
    functionName: ext2fs_dir
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - EXT2_INODES_PER_BLOCK
    - isspace
    - EXT2_BLOCK_SIZE_BITS
    - S_ISLNK
    - ext2_is_fast_symlink
    - EXT2_INODE_SIZE
    - log2
    - S_ISREG
    - EXT2_DESC_PER_BLOCK
    - ext2_rdfsb
    - print_a_completion
    - ext2fs_read
    - S_ISDIR
    - substring
    - memmove
    - printf
    - ext2fs_block_map
    - putchar
    - EXT2_BLOCK_SIZE
    linkageType: ''
    returnType: int
    signature: int ext2fs_dir (fsi_file_t *ffi, char *dirname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 918
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __cpu_to_le64
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: __le64_to_cpu
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __cpu_to_le32
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __le32_to_cpu
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: __cpu_to_le16
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: __le16_to_cpu
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ih
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: IH_KEY_OFFSET
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IH_KEY_OFFSET(ih)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ih
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: IH_KEY_ISTYPE
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IH_KEY_ISTYPE(ih, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: S_ISREG
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: S_ISDIR
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: S_ISLNK
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: CACHE
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: BLOCKHEAD
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCKHEAD(cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: KEY
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY(cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cache
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: DC
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DC(cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: is_power_of_two
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_power_of_two (unsigned long word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ffi
    - block
    - len
    - buffer
    argTypes:
    - fsi_file_t*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: journal_read
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - devread
    linkageType: ''
    returnType: int
    signature: int journal_read (fsi_file_t *ffi, int block, int len, char *buffer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: journal_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:419,1
    - Dst: journal_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:430,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:443,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:452,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 5
    argNames:
    - ffi
    - blockNr
    - start
    - len
    - buffer
    argTypes:
    - fsi_file_t*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 453
    functionName: block_read
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - journal_read
    - devread
    - printf
    linkageType: ''
    returnType: int
    signature: int block_read (fsi_file_t *ffi, int blockNr, int start, int len, char
      *buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: journal_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:475,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:484,1
    - Dst: journal_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:490,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:491,1
    - Dst: journal_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:498,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:505,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:531,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:539,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:549,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 556
    functionName: journal_init
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - substring
    - journal_read
    - printf
    linkageType: ''
    returnType: int
    signature: int journal_init (fsi_file_t *ffi)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:566,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:568,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:569,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:570,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:578,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:582,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:583,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:584,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:587,1
    - Dst: log2
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:603,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:609,1
    - Dst: memset
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:614,1
    - Dst: is_power_of_two
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:629,1
    - Dst: journal_init
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:630,1
    - Dst: block_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:633,1
    - Dst: block_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:637,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:640,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:643,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:653,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 42
    argCount: 2
    argNames:
    - ffi
    - options
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 656
    functionName: reiserfs_mount
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - is_power_of_two
    - substring
    - block_read
    - BLOCKHEAD
    - printf
    - memset
    - devread
    - log2
    - memcpy
    - journal_init
    linkageType: ''
    returnType: int
    signature: int reiserfs_mount (fsi_file_t *ffi, const char *options)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CACHE
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:685,1
    - Dst: CACHE
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:696,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:699,1
    - Dst: block_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:702,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ffi
    - blockNr
    - depth
    argTypes:
    - fsi_file_t*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 713
    functionName: read_tree_node
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - block_read
    - printf
    - BLOCKHEAD
    - CACHE
    linkageType: ''
    returnType: char
    signature: 'char *

      read_tree_node (fsi_file_t *ffi, unsigned int blockNr, int depth)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:726,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:734,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:746,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:751,1
    - Dst: CACHE
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:759,1
    - Dst: read_tree_node
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:762,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:769,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:772,1
    - Dst: read_tree_node
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:778,1
    - Dst: DC
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:778,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:790,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - fsi_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 718
    functionDepth: 4
    functionLinenumber: 718
    functionLinenumberEnd: 798
    functionName: next_key
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - read_tree_node
    - DC
    - BLOCKHEAD
    - CACHE
    - printf
    linkageType: ''
    returnType: int
    signature: int next_key (fsi_file_t *ffi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:819,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:828,1
    - Dst: KEY
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:830,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:845,1
    - Dst: read_tree_node
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:848,1
    - Dst: DC
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:848,1
    - Dst: BLOCKHEAD
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:854,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:864,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - ffi
    - dir_id
    - objectid
    argTypes:
    - fsi_file_t*
    - __u32
    - __u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 874
    functionName: search_stat
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - read_tree_node
    - DC
    - BLOCKHEAD
    - printf
    - KEY
    linkageType: ''
    returnType: int
    signature: int search_stat (fsi_file_t *ffi, __u32 dir_id, __u32 objectid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:885,1
    - Dst: IH_KEY_OFFSET
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:886,1
    - Dst: IH_KEY_OFFSET
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:890,1
    - Dst: search_stat
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:892,1
    - Dst: IH_KEY_OFFSET
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:901,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:905,1
    - Dst: IH_KEY_ISTYPE
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:909,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:913,1
    - Dst: block_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:924,1
    - Dst: memcpy
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:930,1
    - Dst: IH_KEY_ISTYPE
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:933,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:937,1
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:956,1
    - Dst: next_key
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:970,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - ffi
    - buf
    - len
    argTypes:
    - fsi_file_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 876
    functionDepth: 5
    functionLinenumber: 876
    functionLinenumberEnd: 974
    functionName: reiserfs_read
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - next_key
    - block_read
    - printf
    - IH_KEY_ISTYPE
    - search_stat
    - IH_KEY_OFFSET
    - devread
    - memcpy
    linkageType: ''
    returnType: int
    signature: int reiserfs_read (fsi_file_t *ffi, char *buf, int len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1003,1
    - Dst: search_stat
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1007,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1011,1
    - Dst: S_ISLNK
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1019,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1033,1
    - Dst: grub_memmove
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1044,1
    - Dst: next_key
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1049,1
    - Dst: reiserfs_read
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1050,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1058,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1082,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1084,1
    - Dst: next_key
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1102,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1108,1
    - Dst: isspace
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1113,1
    - Dst: next_key
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1126,1
    - Dst: printf
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1129,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1157,1
    - Dst: print_a_completion
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1167,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 112
    argCount: 2
    argNames:
    - ffi
    - dirname
    argTypes:
    - fsi_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 984
    functionDepth: 6
    functionLinenumber: 984
    functionLinenumberEnd: 1203
    functionName: reiserfs_dir
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - next_key
    - isspace
    - substring
    - grub_memmove
    - reiserfs_read
    - S_ISLNK
    - print_a_completion
    - printf
    - search_stat
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int reiserfs_dir (fsi_file_t *ffi, char *dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: devread
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1211,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1216,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1217,1
    - Dst: substring
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - ffi
    - start_sector
    - needed_sectors
    argTypes:
    - fsi_file_t*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1228
    functionName: reiserfs_embed
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - substring
    - devread
    linkageType: ''
    returnType: int
    signature: int reiserfs_embed (fsi_file_t *ffi, int *start_sector, int needed_sectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsig_init
      Src: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - version
    - fp
    - name
    argTypes:
    - int
    - fsi_plugin_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1242
    functionName: fsi_init_plugin
    functionSourceFile: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    functionUses: 0
    functionsReached:
    - fsig_init
    linkageType: ''
    returnType: fsi_plugin_ops_t
    signature: 'fsi_plugin_ops_t *

      fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/call/core.c:21,1
    - Dst: xentoolcore__restrict_by_dup2_null
      Src: /src/xen/tools/libs/call/core.c:24,1
    - Dst: xentoolcore__restrict_by_dup2_null
      Src: /src/xen/tools/libs/call/core.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 32
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - xentoolcore__restrict_by_dup2_null
    - CONTAINER_OF
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/call/core.c:36,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/call/core.c:44,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/call/core.c:62,1
    - Dst: osdep_xencall_open
      Src: /src/xen/tools/libs/call/core.c:66,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/call/core.c:72,1
    - Dst: osdep_xencall_close
      Src: /src/xen/tools/libs/call/core.c:73,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/call/core.c:74,1
    - Dst: free
      Src: /src/xen/tools/libs/call/core.c:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 77
    functionName: xencall_open
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 1
    functionsReached:
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - xentoolcore__deregister_active_handle
    - free
    - malloc
    - osdep_xencall_close
    - osdep_xencall_open
    - xentoolcore__register_active_handle
    linkageType: ''
    returnType: xencall_handle
    signature: xencall_handle *xencall_open(xentoollog_logger *logger, unsigned open_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/call/core.c:86,1
    - Dst: osdep_xencall_close
      Src: /src/xen/tools/libs/call/core.c:87,1
    - Dst: buffer_release_cache
      Src: /src/xen/tools/libs/call/core.c:88,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/call/core.c:89,1
    - Dst: free
      Src: /src/xen/tools/libs/call/core.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: xencall_close
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 2
    functionsReached:
    - xtl_logger_destroy
    - xentoolcore__deregister_active_handle
    - free
    - osdep_xencall_close
    - buffer_release_cache
    linkageType: ''
    returnType: int
    signature: int xencall_close(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: xencall_fd
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_fd(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcall
    - op
    argTypes:
    - xencall_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: xencall0
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: int xencall0(xencall_handle *xcall, unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xcall
    - op
    - arg1
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: xencall1
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: "int xencall1(xencall_handle *xcall, unsigned int op,\n             uint64_t
      arg1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xcall
    - op
    - arg1
    - arg2
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: xencall2
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: "int xencall2(xencall_handle *xcall, unsigned int op,\n             uint64_t
      arg1, uint64_t arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xcall
    - op
    - arg1
    - arg2
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: xencall2L
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: long
    signature: "long xencall2L(xencall_handle *xcall, unsigned int op,\n               uint64_t
      arg1, uint64_t arg2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcall
    - op
    - arg1
    - arg2
    - arg3
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: xencall3
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: "int xencall3(xencall_handle *xcall, unsigned int op,\n             uint64_t
      arg1, uint64_t arg2, uint64_t arg3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xcall
    - op
    - arg1
    - arg2
    - arg3
    - arg4
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: xencall4
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: "int xencall4(xencall_handle *xcall, unsigned int op,\n             uint64_t
      arg1, uint64_t arg2, uint64_t arg3,\n             uint64_t arg4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_hypercall
      Src: /src/xen/tools/libs/call/core.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - xcall
    - op
    - arg1
    - arg2
    - arg3
    - arg4
    - arg5
    argTypes:
    - xencall_handle*
    - unsigned int
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: xencall5
    functionSourceFile: /src/xen/tools/libs/call/core.c
    functionUses: 0
    functionsReached:
    - osdep_hypercall
    linkageType: ''
    returnType: int
    signature: "int xencall5(xencall_handle *xcall, unsigned int op,\n             uint64_t
      arg1, uint64_t arg2, uint64_t arg3,\n             uint64_t arg4, uint64_t arg5)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PERROR
    functionSourceFile: /src/xen/tools/libs/call/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _m
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: DBGPRINTF
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGPRINTF(_m...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/call/buffer.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: cache_lock
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cache_lock(xencall_handle *xcall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/call/buffer.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: cache_unlock
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cache_unlock(xencall_handle *xcall)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cache_lock
      Src: /src/xen/tools/libs/call/buffer.c:52,1
    - Dst: cache_unlock
      Src: /src/xen/tools/libs/call/buffer.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - xcall
    - nr_pages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: cache_alloc
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - cache_lock
    - cache_unlock
    linkageType: ''
    returnType: void
    signature: void *cache_alloc(xencall_handle *xcall, size_t nr_pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_lock
      Src: /src/xen/tools/libs/call/buffer.c:82,1
    - Dst: cache_unlock
      Src: /src/xen/tools/libs/call/buffer.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - xcall
    - p
    - nr_pages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: cache_free
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - cache_lock
    - cache_unlock
    linkageType: ''
    returnType: int
    signature: int cache_free(xencall_handle *xcall, void *p, size_t nr_pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cache_lock
      Src: /src/xen/tools/libs/call/buffer.c:103,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/call/buffer.c:105,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/call/buffer.c:108,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/call/buffer.c:111,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/call/buffer.c:113,1
    - Dst: osdep_free_pages
      Src: /src/xen/tools/libs/call/buffer.c:121,1
    - Dst: cache_unlock
      Src: /src/xen/tools/libs/call/buffer.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: buffer_release_cache
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 1
    functionsReached:
    - cache_unlock
    - osdep_free_pages
    - cache_lock
    - DBGPRINTF
    linkageType: ''
    returnType: void
    signature: void buffer_release_cache(xencall_handle *xcall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_alloc
      Src: /src/xen/tools/libs/call/buffer.c:129,1
    - Dst: osdep_alloc_pages
      Src: /src/xen/tools/libs/call/buffer.c:132,1
    - Dst: memset
      Src: /src/xen/tools/libs/call/buffer.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - xcall
    - nr_pages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: xencall_alloc_buffer_pages
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - memset
    - cache_alloc
    - osdep_alloc_pages
    linkageType: ''
    returnType: void
    signature: void *xencall_alloc_buffer_pages(xencall_handle *xcall, size_t nr_pages)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_free
      Src: /src/xen/tools/libs/call/buffer.c:147,1
    - Dst: osdep_free_pages
      Src: /src/xen/tools/libs/call/buffer.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - xcall
    - p
    - nr_pages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: xencall_free_buffer_pages
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - cache_free
    - osdep_free_pages
    linkageType: ''
    returnType: void
    signature: void xencall_free_buffer_pages(xencall_handle *xcall, void *p, size_t
      nr_pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/call/buffer.c:158,1
    - Dst: xencall_alloc_buffer_pages
      Src: /src/xen/tools/libs/call/buffer.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xcall
    - size
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: xencall_alloc_buffer
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - xencall_alloc_buffer_pages
    - ROUNDUP
    linkageType: ''
    returnType: void
    signature: void *xencall_alloc_buffer(xencall_handle *xcall, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xencall_free_buffer_pages
      Src: /src/xen/tools/libs/call/buffer.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xcall
    - p
    argTypes:
    - xencall_handle*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: xencall_free_buffer
    functionSourceFile: /src/xen/tools/libs/call/buffer.c
    functionUses: 0
    functionsReached:
    - xencall_free_buffer_pages
    linkageType: ''
    returnType: void
    signature: void xencall_free_buffer(xencall_handle *xcall, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/call/netbsd.c:35,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/netbsd.c:39,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/call/netbsd.c:47,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/netbsd.c:49,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/call/netbsd.c:53,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/netbsd.c:55,1
    - Dst: close
      Src: /src/xen/tools/libs/call/netbsd.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 67
    functionName: osdep_xencall_open
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_open(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/call/netbsd.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: osdep_xencall_close
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_close(xencall_handle *xcall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: posix_memalign
      Src: /src/xen/tools/libs/call/netbsd.c:81,1
    - Dst: mlock
      Src: /src/xen/tools/libs/call/netbsd.c:85,1
    - Dst: free
      Src: /src/xen/tools/libs/call/netbsd.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: osdep_alloc_pages
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 1
    functionsReached:
    - free
    - posix_memalign
    - mlock
    linkageType: ''
    returnType: void
    signature: void *osdep_alloc_pages(xencall_handle *xcall, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munlock
      Src: /src/xen/tools/libs/call/netbsd.c:95,1
    - Dst: free
      Src: /src/xen/tools/libs/call/netbsd.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xcall
    - ptr
    - npages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: osdep_free_pages
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 2
    functionsReached:
    - free
    - munlock
    linkageType: ''
    returnType: void
    signature: void osdep_free_pages(xencall_handle *xcall, void *ptr, size_t npages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/call/netbsd.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xcall
    - hypercall
    argTypes:
    - xencall_handle*
    - privcmd_hypercall_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: osdep_hypercall
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 7
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: long
    signature: long osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: xencall_buffers_never_fault
    functionSourceFile: /src/xen/tools/libs/call/netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_buffers_never_fault(xencall_handle *xcall)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/call/linux.c:44,1
    - Dst: open
      Src: /src/xen/tools/libs/call/linux.c:49,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/linux.c:54,1
    - Dst: open
      Src: /src/xen/tools/libs/call/linux.c:63,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/linux.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 72
    functionName: osdep_xencall_open
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_open(xencall_handle *xcall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/call/linux.c:77,1
    - Dst: close
      Src: /src/xen/tools/libs/call/linux.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: osdep_xencall_close
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_close(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/call/linux.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcall
    - hypercall
    argTypes:
    - xencall_handle*
    - privcmd_hypercall_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: osdep_hypercall
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 7
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: long
    signature: long osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/call/linux.c:92,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/linux.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: alloc_pages_bufdev
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 0
    functionsReached:
    - PERROR
    - mmap
    linkageType: ''
    returnType: void
    signature: void *alloc_pages_bufdev(xencall_handle *xcall, size_t npages)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/call/linux.c:111,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/linux.c:114,1
    - Dst: madvise
      Src: /src/xen/tools/libs/call/linux.c:120,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/linux.c:123,1
    - Dst: munmap
      Src: /src/xen/tools/libs/call/linux.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 147
    functionName: alloc_pages_nobufdev
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 0
    functionsReached:
    - madvise
    - munmap
    - PERROR
    - mmap
    linkageType: ''
    returnType: void
    signature: void *alloc_pages_nobufdev(xencall_handle *xcall, size_t npages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pages_bufdev
      Src: /src/xen/tools/libs/call/linux.c:154,1
    - Dst: alloc_pages_nobufdev
      Src: /src/xen/tools/libs/call/linux.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: osdep_alloc_pages
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 1
    functionsReached:
    - alloc_pages_nobufdev
    - alloc_pages_bufdev
    linkageType: ''
    returnType: void
    signature: void *osdep_alloc_pages(xencall_handle *xcall, size_t npages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: madvise
      Src: /src/xen/tools/libs/call/linux.c:168,1
    - Dst: munmap
      Src: /src/xen/tools/libs/call/linux.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xcall
    - ptr
    - npages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: osdep_free_pages
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 2
    functionsReached:
    - munmap
    - madvise
    linkageType: ''
    returnType: void
    signature: void osdep_free_pages(xencall_handle *xcall, void *ptr, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: xencall_buffers_never_fault
    functionSourceFile: /src/xen/tools/libs/call/linux.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_buffers_never_fault(xencall_handle *xcall)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/call/solaris.c:32,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/solaris.c:36,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/call/solaris.c:44,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/solaris.c:46,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/call/solaris.c:50,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/solaris.c:52,1
    - Dst: close
      Src: /src/xen/tools/libs/call/solaris.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 64
    functionName: osdep_xencall_open
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_open(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/call/solaris.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: osdep_xencall_close
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_close(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memalign
      Src: /src/xen/tools/libs/call/solaris.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: osdep_alloc_hypercall_buffer
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 0
    functionsReached:
    - memalign
    linkageType: ''
    returnType: void
    signature: void *osdep_alloc_hypercall_buffer(xencall_handle *xcall, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/call/solaris.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xcall
    - ptr
    - npages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: osdep_free_hypercall_buffer
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void osdep_free_hypercall_buffer(xencall_handle *xcall, void *ptr,\n
      \                                size_t npages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/call/solaris.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcall
    - hypercall
    argTypes:
    - xencall_handle*
    - privcmd_hypercall_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: osdep_hypercall
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 7
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: long
    signature: long osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: xencall_buffers_never_fault
    functionSourceFile: /src/xen/tools/libs/call/solaris.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_buffers_never_fault(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: osdep_xencall_open
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_open(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: osdep_xencall_close
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_close(xencall_handle *xcall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HYPERVISOR_multicall
      Src: /src/xen/tools/libs/call/minios.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - xcall
    - hypercall
    argTypes:
    - xencall_handle*
    - privcmd_hypercall_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: osdep_hypercall
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 7
    functionsReached:
    - HYPERVISOR_multicall
    linkageType: ''
    returnType: long
    signature: long osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memalign
      Src: /src/xen/tools/libs/call/minios.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: osdep_alloc_pages
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 1
    functionsReached:
    - memalign
    linkageType: ''
    returnType: void
    signature: void *osdep_alloc_pages(xencall_handle *xcall, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/call/minios.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xcall
    - ptr
    - npages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: osdep_free_pages
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void osdep_free_pages(xencall_handle *xcall, void *ptr, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: xencall_buffers_never_fault
    functionSourceFile: /src/xen/tools/libs/call/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_buffers_never_fault(xencall_handle *xcall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/call/freebsd.c:38,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/call/freebsd.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: osdep_xencall_open
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_open(xencall_handle *xcall)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/call/freebsd.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: osdep_xencall_close
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xencall_close(xencall_handle *xcall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/call/freebsd.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xcall
    - hypercall
    argTypes:
    - xencall_handle*
    - privcmd_hypercall_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: osdep_hypercall
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 7
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: long
    signature: long osdep_hypercall(xencall_handle *xcall, privcmd_hypercall_t *hypercall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/call/freebsd.c:81,1
    - Dst: mlock
      Src: /src/xen/tools/libs/call/freebsd.c:90,1
    - Dst: munmap
      Src: /src/xen/tools/libs/call/freebsd.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - xcall
    - npages
    argTypes:
    - xencall_handle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: osdep_alloc_pages
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 1
    functionsReached:
    - munmap
    - mlock
    - mmap
    linkageType: ''
    returnType: void
    signature: void *osdep_alloc_pages(xencall_handle *xcall, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munlock
      Src: /src/xen/tools/libs/call/freebsd.c:103,1
    - Dst: munmap
      Src: /src/xen/tools/libs/call/freebsd.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xcall
    - ptr
    - npages
    argTypes:
    - xencall_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: osdep_free_pages
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 2
    functionsReached:
    - munmap
    - munlock
    linkageType: ''
    returnType: void
    signature: void osdep_free_pages(xencall_handle *xcall, void *ptr, size_t npages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcall
    argTypes:
    - xencall_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: xencall_buffers_never_fault
    functionSourceFile: /src/xen/tools/libs/call/freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xencall_buffers_never_fault(xencall_handle *xcall)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_netbsd.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: get_priv_data
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_netbsd.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct priv_data
    signature: 'struct priv_data *

      get_priv_data(xenstat_handle *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: xenstat_collect_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_networks(xenstat_node * node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_netbsd.c:69,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_netbsd.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: xenstat_uninit_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_netbsd.c
    functionUses: 0
    functionsReached:
    - get_priv_data
    - fclose
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_networks(xenstat_handle * handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: xenstat_collect_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_vbds(xenstat_node * node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_netbsd.c:83,1
    - Dst: closedir
      Src: /src/xen/tools/libs/stat/xenstat_netbsd.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: xenstat_uninit_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_netbsd.c
    functionUses: 0
    functionsReached:
    - get_priv_data
    - closedir
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_vbds(xenstat_handle * handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:51,1
    - Dst: kstat_open
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:59,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: get_priv_data
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 2
    functionsReached:
    - free
    - malloc
    - kstat_open
    linkageType: ''
    returnType: priv_data_t
    signature: priv_data_t *get_priv_data(xenstat_handle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kstat_data_lookup
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ksp
    - name
    - val
    argTypes:
    - kstat_t*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: kstat_get
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - kstat_data_lookup
    linkageType: ''
    returnType: int
    signature: int kstat_get(kstat_t *ksp, const char *name, uint64_t *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - priv
    - type
    argTypes:
    - priv_data_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: gc_devs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void gc_devs(priv_data_t *priv, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:100,1
    - Dst: gc_devs
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:109,1
    - Dst: kstat_close
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - type
    argTypes:
    - xenstat_handle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: xenstat_uninit_devs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - kstat_close
    - gc_devs
    - get_priv_data
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_devs(xenstat_handle *handle, int type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kstat_chain_update
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:120,1
    - Dst: kstat_lookup
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:124,1
    - Dst: kstat_lookup
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:126,1
    - Dst: kstat_read
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:133,1
    - Dst: bcopy
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:138,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:141,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:142,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:143,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:144,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:145,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:146,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:152,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:153,1
    - Dst: kstat_get
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:154,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 2
    argNames:
    - priv
    - dev
    argTypes:
    - priv_data_t*
    - stdevice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 159
    functionName: update_dev_stats
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - kstat_read
    - kstat_get
    - kstat_chain_update
    - bcopy
    - kstat_lookup
    linkageType: ''
    returnType: int
    signature: int update_dev_stats(priv_data_t *priv, stdevice_t *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:166,1
    - Dst: bzero
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:169,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:172,1
    - Dst: update_dev_stats
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:181,1
    - Dst: update_dev_stats
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - priv
    - type
    - name
    - instance
    - domid
    argTypes:
    - priv_data_t*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 184
    functionName: init_dev
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - update_dev_stats
    - malloc
    - bzero
    - strcpy
    linkageType: ''
    returnType: int
    signature: "int init_dev(priv_data_t *priv, int type, const char *name,\n    int
      instance, int domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:193,1
    - Dst: update_dev_stats
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:194,1
    - Dst: init_dev
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - priv
    - dom
    - net
    - name
    argTypes:
    - priv_data_t*
    - xenstat_domain*
    - xenstat_network*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 209
    functionName: update_nic
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - update_dev_stats
    - strcmp
    - init_dev
    linkageType: ''
    returnType: int
    signature: "int update_nic(priv_data_t *priv, xenstat_domain *dom,\n    xenstat_network
      *net, const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:220,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:223,1
    - Dst: xs_directory
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:226,1
    - Dst: calloc
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:231,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:236,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:239,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:244,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:245,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:247,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:250,1
    - Dst: update_nic
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:254,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:255,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:259,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - node
    - priv
    - dom
    argTypes:
    - xenstat_node*
    - priv_data_t*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 266
    functionName: collect_dom_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_directory
    - calloc
    - free
    - xs_read
    - update_nic
    linkageType: ''
    returnType: int
    signature: int collect_dom_networks(xenstat_node *node, priv_data_t *priv, xenstat_domain
      *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:271,1
    - Dst: collect_dom_networks
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:283,1
    - Dst: gc_devs
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 268
    functionDepth: 5
    functionLinenumber: 268
    functionLinenumberEnd: 290
    functionName: xenstat_collect_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - gc_devs
    - get_priv_data
    - collect_dom_networks
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_networks(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_uninit_devs
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: xenstat_uninit_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - xenstat_uninit_devs
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_networks(xenstat_handle *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_dev_stats
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:305,1
    - Dst: init_dev
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - priv
    - dom
    - vbd
    - instance
    argTypes:
    - priv_data_t*
    - xenstat_domain*
    - xenstat_vbd*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: update_xdb
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - update_dev_stats
    - init_dev
    linkageType: ''
    returnType: int
    signature: "int update_xdb(priv_data_t *priv, xenstat_domain *dom,\n    xenstat_vbd
      *vbd, int instance)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:327,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:330,1
    - Dst: xs_directory
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:333,1
    - Dst: calloc
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:338,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:344,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:347,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:352,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:353,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:355,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:361,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:363,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:367,1
    - Dst: update_xdb
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:369,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:374,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - node
    - priv
    - dom
    argTypes:
    - xenstat_node*
    - priv_data_t*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 376
    functionName: collect_dom_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - snprintf
    - update_xdb
    - xs_directory
    - calloc
    - free
    - xs_read
    - sscanf
    linkageType: ''
    returnType: int
    signature: int collect_dom_vbds(xenstat_node *node, priv_data_t *priv, xenstat_domain
      *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:381,1
    - Dst: collect_dom_vbds
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:393,1
    - Dst: gc_devs
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 400
    functionName: xenstat_collect_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - gc_devs
    - collect_dom_vbds
    - get_priv_data
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_vbds(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_uninit_devs
      Src: /src/xen/tools/libs/stat/xenstat_solaris.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: xenstat_uninit_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_solaris.c
    functionUses: 0
    functionsReached:
    - xenstat_uninit_devs
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_vbds(xenstat_handle * handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: xenstat_collect_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_networks(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: xenstat_uninit_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_networks(xenstat_handle * handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: xenstat_collect_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_vbds(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: xenstat_uninit_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_vbds(xenstat_handle * handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/stat/xenstat.c:86,1
    - Dst: sysconf
      Src: /src/xen/tools/libs/stat/xenstat.c:95,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat.c:97,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:98,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/libs/stat/xenstat.c:103,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat.c:105,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:106,1
    - Dst: xs_open
      Src: /src/xen/tools/libs/stat/xenstat.c:110,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat.c:112,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/libs/stat/xenstat.c:113,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: xenstat_init
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - sysconf
    - xs_open
    - calloc
    - free
    - xc_interface_open
    - xc_interface_close
    - perror
    linkageType: ''
    returnType: xenstat_handle
    signature: xenstat_handle *xenstat_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uninit
      Src: /src/xen/tools/libs/stat/xenstat.c:126,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/libs/stat/xenstat.c:127,1
    - Dst: xs_close
      Src: /src/xen/tools/libs/stat/xenstat.c:128,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:129,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: xenstat_uninit
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - free
    - xs_close
    - uninit
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit(xenstat_handle * handle)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/stat/xenstat.c:144,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/libs/stat/xenstat.c:152,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:153,1
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat.c:168,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:170,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/libs/stat/xenstat.c:178,1
    - Dst: realloc
      Src: /src/xen/tools/libs/stat/xenstat.c:185,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat.c:196,1
    - Dst: xenstat_get_domain_name
      Src: /src/xen/tools/libs/stat/xenstat.c:201,1
    - Dst: xenstat_free_node
      Src: /src/xen/tools/libs/stat/xenstat.c:206,1
    - Dst: collect
      Src: /src/xen/tools/libs/stat/xenstat.c:245,1
    - Dst: xenstat_free_node
      Src: /src/xen/tools/libs/stat/xenstat.c:246,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:254,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:255,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - xenstat_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 257
    functionName: xenstat_get_node
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - xc_physinfo
    - malloc
    - xenstat_get_domain_name
    - collect
    - memset
    - realloc
    - xc_domain_getinfolist
    - xenstat_free_node
    linkageType: ''
    returnType: xenstat_node
    signature: xenstat_node *xenstat_get_node(xenstat_handle * handle, unsigned int
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:266,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:271,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:272,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 276
    functionName: xenstat_free_node
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xenstat_free_node(xenstat_node * node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - node
    - domid
    argTypes:
    - xenstat_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: xenstat_node_domain
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xenstat_domain
    signature: xenstat_domain *xenstat_node_domain(xenstat_node * node, unsigned int
      domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - node
    - index
    argTypes:
    - xenstat_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: xenstat_node_domain_by_index
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xenstat_domain
    signature: "xenstat_domain *xenstat_node_domain_by_index(xenstat_node * node,\n\t\t\t\t\t
      \    unsigned int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: xenstat_node_xen_version
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xenstat_node_xen_version(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: xenstat_node_tot_mem
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_node_tot_mem(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: xenstat_node_free_mem
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_node_free_mem(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: xenstat_node_freeable_mb
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long xenstat_node_freeable_mb(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: xenstat_node_num_domains
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_node_num_domains(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: xenstat_node_num_cpus
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_node_num_cpus(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: xenstat_node_cpu_hz
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_node_cpu_hz(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: xenstat_domain_id
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned xenstat_domain_id(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: xenstat_domain_name
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xenstat_domain_name(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: xenstat_domain_cpu_ns
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_domain_cpu_ns(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: xenstat_domain_num_vcpus
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_num_vcpus(xenstat_domain * domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - vcpu
    argTypes:
    - xenstat_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: xenstat_domain_vcpu
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xenstat_vcpu
    signature: xenstat_vcpu *xenstat_domain_vcpu(xenstat_domain * domain, unsigned
      int vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: xenstat_domain_cur_mem
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_domain_cur_mem(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: xenstat_domain_max_mem
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_domain_max_mem(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: xenstat_domain_ssid
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_ssid(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: xenstat_domain_dying
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_dying(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: xenstat_domain_crashed
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_crashed(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: xenstat_domain_shutdown
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_shutdown(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: xenstat_domain_paused
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_paused(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: xenstat_domain_blocked
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_blocked(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: xenstat_domain_running
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_running(xenstat_domain * domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: xenstat_domain_num_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_num_networks(xenstat_domain * domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - network
    argTypes:
    - xenstat_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: xenstat_domain_network
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xenstat_network
    signature: "xenstat_network *xenstat_domain_network(xenstat_domain * domain,\n\t\t\t\t\tunsigned
      int network)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: xenstat_domain_num_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_domain_num_vbds(xenstat_domain * domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - vbd
    argTypes:
    - xenstat_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 447
    functionName: xenstat_domain_vbd
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xenstat_vbd
    signature: "xenstat_vbd *xenstat_domain_vbd(xenstat_domain * domain,\n\t\t\t\tunsigned
      int vbd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat.c:461,1
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/libs/stat/xenstat.c:470,1
    - Dst: xenstat_prune_domain
      Src: /src/xen/tools/libs/stat/xenstat.c:479,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 493
    functionName: xenstat_collect_vcpus
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - xc_vcpu_getinfo
    - xenstat_prune_domain
    - malloc
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_vcpus(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: xenstat_free_vcpus
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xenstat_free_vcpus(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    functionName: xenstat_uninit_vcpus
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_vcpus(xenstat_handle * handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - xenstat_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: xenstat_vcpu_online
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_vcpu_online(xenstat_vcpu * vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - xenstat_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: xenstat_vcpu_ns
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vcpu_ns(xenstat_vcpu * vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: xenstat_free_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xenstat_free_networks(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: xenstat_network_id
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_network_id(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: xenstat_network_rbytes
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_rbytes(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 548
    functionName: xenstat_network_rpackets
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_rpackets(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: xenstat_network_rerrs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_rerrs(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 560
    functionName: xenstat_network_rdrop
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_rdrop(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: xenstat_network_tbytes
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_tbytes(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 572
    functionName: xenstat_network_tpackets
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_tpackets(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: xenstat_network_terrs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_terrs(xenstat_network * network)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - network
    argTypes:
    - xenstat_network*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    functionName: xenstat_network_tdrop
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_network_tdrop(xenstat_network * network)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_version
      Src: /src/xen/tools/libs/stat/xenstat.c:599,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/stat/xenstat.c:605,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 614
    functionName: xenstat_collect_xen_version
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - xc_version
    - snprintf
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_xen_version(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: xenstat_free_xen_version
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenstat_free_xen_version(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 624
    functionName: xenstat_uninit_xen_version
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_xen_version(xenstat_handle * handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/stat/xenstat.c:636,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - domain
    - vbd
    argTypes:
    - xenstat_domain*
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 649
    functionName: xenstat_save_vbd
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - free
    - realloc
    linkageType: ''
    returnType: xenstat_vbd
    signature: xenstat_vbd *xenstat_save_vbd(xenstat_domain *domain, xenstat_vbd *vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: xenstat_free_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xenstat_free_vbds(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: xenstat_vbd_type
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_vbd_type(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: xenstat_vbd_dev
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xenstat_vbd_dev(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 675
    functionName: xenstat_vbd_oo_reqs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vbd_oo_reqs(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: xenstat_vbd_rd_reqs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vbd_rd_reqs(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 687
    functionName: xenstat_vbd_wr_reqs
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vbd_wr_reqs(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: xenstat_vbd_rd_sects
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vbd_rd_sects(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 699
    functionName: xenstat_vbd_wr_sects
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long xenstat_vbd_wr_sects(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vbd
    argTypes:
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: xenstat_vbd_error
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xenstat_vbd_error(xenstat_vbd * vbd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat.c:711,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handle
    - domain_id
    argTypes:
    - xenstat_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: xenstat_get_domain_name
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 1
    functionsReached:
    - snprintf
    - xs_read
    linkageType: ''
    returnType: char
    signature: char *xenstat_get_domain_name(xenstat_handle *handle, unsigned int
      domain_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/tools/libs/stat/xenstat.c:729,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat.c:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - node
    - entry
    argTypes:
    - xenstat_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 735
    functionName: xenstat_prune_domain
    functionSourceFile: /src/xen/tools/libs/stat/xenstat.c
    functionUses: 1
    functionsReached:
    - memset
    - memmove
    linkageType: ''
    returnType: void
    signature: void xenstat_prune_domain(xenstat_node *node, unsigned int entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: get_priv_data
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 5
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct priv_data
    signature: 'struct priv_data *

      get_priv_data(xenstat_handle *handle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:77,1
    - Dst: readdir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:78,1
    - Dst: strlen
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:79,1
    - Dst: strstr
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:80,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:81,1
    - Dst: access
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:83,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:89,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:90,1
    - Dst: MIN
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:90,1
    - Dst: strnlen
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:90,1
    - Dst: closedir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - excludeName
    - result
    - resultLen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: getBridge
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - MIN
    - sprintf
    - opendir
    - strnlen
    - strlen
    - strstr
    - memset
    - readdir
    - access
    - memcpy
    - closedir
    linkageType: ''
    returnType: void
    signature: void getBridge(const char *excludeName, char *result, size_t resultLen)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:123,1
    - Dst: regcomp
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:157,1
    - Dst: regfree
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:158,1
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:162,1
    - Dst: regexec
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:163,1
    - Dst: realloc
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:169,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:177,1
    - Dst: strpbrk
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:231,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:233,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:239,1
    - Dst: regfree
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:240,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 126
    argCount: 18
    argNames:
    - line
    - iface
    - rxBytes
    - rxPackets
    - rxErrs
    - rxDrops
    - rxFifo
    - rxFrames
    - rxComp
    - rxMcast
    - txBytes
    - txPackets
    - txErrs
    - txDrops
    - txFifo
    - txColls
    - txCarrier
    - txComp
    argTypes:
    - char*
    - char*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 243
    functionName: parseNetDevLine
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - regcomp
    - free
    - strpbrk
    - malloc
    - strtoull
    - regexec
    - strcpy
    - memset
    - realloc
    - regfree
    linkageType: ''
    returnType: int
    signature: "int parseNetDevLine(char *line, char *iface, unsigned long long *rxBytes,
      unsigned long long *rxPackets,\n\t\tunsigned long long *rxErrs, unsigned long
      long *rxDrops, unsigned long long *rxFifo,\n\t\tunsigned long long *rxFrames,
      unsigned long long *rxComp, unsigned long long *rxMcast,\n\t\tunsigned long
      long *txBytes, unsigned long long *txPackets, unsigned long long *txErrs,\n\t\tunsigned
      long long *txDrops, unsigned long long *txFifo, unsigned long long *txColls,\n\t\tunsigned
      long long *txCarrier, unsigned long long *txComp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:253,1
    - Dst: fopen
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:254,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:256,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:257,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - iface
    - domid_p
    - netid_p
    argTypes:
    - char*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: get_iface_domid_network
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - snprintf
    - fopen
    - fclose
    - sscanf
    - fscanf
    linkageType: ''
    returnType: int
    signature: int get_iface_domid_network(const char *iface, unsigned int *domid_p,
      unsigned int *netid_p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:276,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:279,1
    - Dst: fopen
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:286,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:288,1
    - Dst: fread
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:293,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:295,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:299,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:300,1
    - Dst: fseek
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:308,1
    - Dst: getBridge
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:312,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:313,1
    - Dst: fgets
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:315,1
    - Dst: parseNetDevLine
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:320,1
    - Dst: strstr
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:325,1
    - Dst: strstr
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:326,1
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:327,1
    - Dst: get_iface_domid_network
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:344,1
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:356,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:358,1
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:366,1
    - Dst: realloc
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:370,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:374,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 384
    functionName: xenstat_collect_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - snprintf
    - fopen
    - fgets
    - free
    - fread
    - malloc
    - get_iface_domid_network
    - fprintf
    - fseek
    - parseNetDevLine
    - xenstat_node_domain
    - strstr
    - getBridge
    - strcmp
    - get_priv_data
    - realloc
    - perror
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_networks(xenstat_node * node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:389,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: xenstat_uninit_networks
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - get_priv_data
    - fclose
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_networks(xenstat_handle * handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:399,1
    - Dst: fread
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:405,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:406,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:411,1
    - Dst: fclose
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - vbd3_path
    - vbd
    argTypes:
    - char*
    - xenstat_vbd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 424
    functionName: read_attributes_vbd3
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - fopen
    - fread
    - fclose
    linkageType: ''
    returnType: int
    signature: int read_attributes_vbd3(const char *vbd3_path, xenstat_vbd *vbd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:431,1
    - Dst: open
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:433,1
    - Dst: read
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:435,1
    - Dst: close
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - vbd_directory
    - what
    - ret
    - cap
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 440
    functionName: read_attributes_vbd
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - snprintf
    - open
    - close
    - read
    linkageType: ''
    returnType: int
    signature: int read_attributes_vbd(const char *vbd_directory, const char *what,
      char *ret, int cap)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:446,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:449,1
    - Dst: opendir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:454,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:456,1
    - Dst: read_attributes_qdisk
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:462,1
    - Dst: rewinddir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:464,1
    - Dst: readdir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:466,1
    - Dst: readdir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:467,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:474,1
    - Dst: strstr
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:477,1
    - Dst: strstr
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:477,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:480,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:482,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:484,1
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:489,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:491,1
    - Dst: read_attributes_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:503,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:504,1
    - Dst: read_attributes_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:505,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:506,1
    - Dst: read_attributes_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:507,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:508,1
    - Dst: read_attributes_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:509,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:510,1
    - Dst: read_attributes_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:511,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:512,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:524,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:527,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:529,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:534,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:535,1
    - Dst: read_attributes_vbd3
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:539,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:542,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:543,1
    - Dst: xenstat_save_vbd
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:549,1
    - Dst: perror
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:550,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 63
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 556
    functionName: xenstat_collect_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - asprintf
    - read_attributes_qdisk
    - free
    - xenstat_save_vbd
    - read_attributes_vbd3
    - xs_read
    - opendir
    - rewinddir
    - fprintf
    - strstr
    - sscanf
    - xenstat_node_domain
    - readdir
    - strcmp
    - get_priv_data
    - read_attributes_vbd
    - perror
    linkageType: ''
    returnType: int
    signature: int xenstat_collect_vbds(xenstat_node * node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_priv_data
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:561,1
    - Dst: closedir
      Src: /src/xen/tools/libs/stat/xenstat_linux.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - xenstat_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 564
    functionName: xenstat_uninit_vbds
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_linux.c
    functionUses: 0
    functionsReached:
    - get_priv_data
    - closedir
    linkageType: ''
    returnType: void
    signature: void xenstat_uninit_vbds(xenstat_handle * handle)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: qmp_query
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:100,1
    - Dst: json_tokener_parse_verbose
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:106,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:107,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:112,1
    - Dst: json_object_array_length
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:116,1
    - Dst: json_object_array_get_idx
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:117,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:120,1
    - Dst: json_object_get_string
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:122,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:123,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:130,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:133,1
    - Dst: json_object_is_type
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:134,1
    - Dst: json_object_get_string
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:135,1
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:136,1
    - Dst: strlen
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:136,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:138,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:144,1
    - Dst: yajl_tree_parse
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:148,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:149,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:154,1
    - Dst: YAJL_GET_ARRAY
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:157,1
    - Dst: YAJL_GET_ARRAY
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:158,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:161,1
    - Dst: YAJL_GET_STRING
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:162,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:163,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:170,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:173,1
    - Dst: YAJL_IS_STRING
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:174,1
    - Dst: YAJL_GET_STRING
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:175,1
    - Dst: malloc
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:176,1
    - Dst: strlen
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:176,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:178,1
    - Dst: yajl_tree_free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:184,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 3
    argNames:
    - node
    - qmp_devname
    - qfd
    argTypes:
    - xenstat_node*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 187
    functionName: qmp_get_block_image
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - yajl_tree_free
    - strlen
    - json_tokener_parse_verbose
    - strcmp
    - YAJL_GET_ARRAY
    - json_object_get_string
    - free
    - qmp_query
    - json_object_is_type
    - yajl_tree_parse
    - malloc
    - strcpy
    - json_object_object_get
    - YAJL_IS_STRING
    - json_object_array_get_idx
    - json_object_put
    - json_object_array_length
    - YAJL_GET_STRING
    - yajl_tree_get
    linkageType: ''
    returnType: char
    signature: char *qmp_get_block_image(xenstat_node *node, const char *qmp_devname,
      int qfd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:199,1
    - Dst: xs_directory
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:200,1
    - Dst: qmp_get_block_image
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:206,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:208,1
    - Dst: atoi
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:214,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:216,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:217,1
    - Dst: strchr
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:221,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:223,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:225,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:228,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:229,1
    - Dst: atoi
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:230,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:231,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:235,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:238,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:239,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - node
    - domid
    - qmp_devname
    - qfd
    - dev
    - sector_size
    argTypes:
    - xenstat_node*
    - unsigned int
    - char*
    - int
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 240
    functionName: lookup_xenstore_devid
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_directory
    - free
    - xs_read
    - strcmp
    - strchr
    - qmp_get_block_image
    - atoi
    linkageType: ''
    returnType: void
    signature: "void lookup_xenstore_devid(xenstat_node * node, unsigned int domid,
      const char *qmp_devname,\n\tint qfd, unsigned int *dev, unsigned int *sector_size)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_parse_verbose
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:265,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:270,1
    - Dst: json_object_array_length
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:275,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:276,1
    - Dst: json_object_array_get_idx
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:278,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:281,1
    - Dst: json_object_get_string
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:283,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:286,1
    - Dst: json_object_is_type
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:287,1
    - Dst: json_object_object_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:290,1
    - Dst: json_object_is_type
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:291,1
    - Dst: json_object_get_int64
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:294,1
    - Dst: json_object_get_int64
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:297,1
    - Dst: json_object_get_int64
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:300,1
    - Dst: json_object_get_int64
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:303,1
    - Dst: lookup_xenstore_devid
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:310,1
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:311,1
    - Dst: xenstat_save_vbd
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:313,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:318,1
    - Dst: yajl_tree_parse
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:323,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:327,1
    - Dst: YAJL_GET_ARRAY
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:331,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:332,1
    - Dst: YAJL_GET_ARRAY
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:334,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:337,1
    - Dst: YAJL_GET_STRING
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:338,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:341,1
    - Dst: YAJL_IS_OBJECT
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:342,1
    - Dst: yajl_tree_get
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:345,1
    - Dst: YAJL_IS_NUMBER
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:346,1
    - Dst: YAJL_GET_INTEGER
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:349,1
    - Dst: YAJL_GET_INTEGER
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:352,1
    - Dst: YAJL_GET_INTEGER
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:355,1
    - Dst: YAJL_GET_INTEGER
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:358,1
    - Dst: lookup_xenstore_devid
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:365,1
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:366,1
    - Dst: xenstat_save_vbd
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:368,1
    - Dst: yajl_tree_free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:373,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 4
    argNames:
    - node
    - domid
    - stats_buf
    - qfd
    argTypes:
    - xenstat_node*
    - unsigned int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 375
    functionName: qmp_parse_stats
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - lookup_xenstore_devid
    - yajl_tree_free
    - json_tokener_parse_verbose
    - YAJL_GET_ARRAY
    - json_object_get_string
    - yajl_tree_parse
    - json_object_is_type
    - json_object_object_get
    - json_object_array_get_idx
    - YAJL_IS_OBJECT
    - json_object_put
    - xenstat_node_domain
    - memset
    - YAJL_GET_INTEGER
    - json_object_array_length
    - YAJL_IS_NUMBER
    - xenstat_save_vbd
    - YAJL_GET_STRING
    - yajl_tree_get
    - json_object_get_int64
    linkageType: ''
    returnType: void
    signature: void qmp_parse_stats(xenstat_node *node, unsigned int domid, unsigned
      char *stats_buf, int qfd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - qfd
    - cmd
    - cmd_len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 398
    functionName: qmp_write
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: size_t
    signature: size_t qmp_write(int qfd, const char *cmd, size_t cmd_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:410,1
    - Dst: read
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:412,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:413,1
    - Dst: realloc
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:416,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:418,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - qfd
    - qstats
    argTypes:
    - int
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 428
    functionName: qmp_read
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - read
    - free
    - poll
    - memcpy
    - realloc
    linkageType: ''
    returnType: int
    signature: int qmp_read(int qfd, unsigned char **qstats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:436,1
    - Dst: qmp_write
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:437,1
    - Dst: qmp_read
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - qfd
    - cmd
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: qmp_query
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_write
    - qmp_read
    - strlen
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *qmp_query(int qfd, const char *cmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:450,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:452,1
    - Dst: memset
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:454,1
    - Dst: strlen
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:457,1
    - Dst: close
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:458,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:462,1
    - Dst: connect
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:463,1
    - Dst: SUN_LEN
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:463,1
    - Dst: close
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 469
    functionName: qmp_connect
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - socket
    - connect
    - close
    - SUN_LEN
    - strcpy
    - strlen
    - fcntl
    - memset
    linkageType: ''
    returnType: int
    signature: int qmp_connect(char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:506,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:507,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:510,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:513,1
    - Dst: qmp_connect
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:514,1
    - Dst: qmp_query
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:518,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:519,1
    - Dst: qmp_query
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:521,1
    - Dst: qmp_parse_stats
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:523,1
    - Dst: free
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:524,1
    - Dst: close
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - node
    - domain
    argTypes:
    - xenstat_node*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 528
    functionName: read_attributes_qdisk_dom
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 0
    functionsReached:
    - snprintf
    - free
    - qmp_query
    - xs_read
    - close
    - qmp_connect
    - qmp_parse_stats
    linkageType: ''
    returnType: void
    signature: void read_attributes_qdisk_dom(xenstat_node *node, domid_t domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:537,1
    - Dst: read_attributes_qdisk_dom
      Src: /src/xen/tools/libs/stat/xenstat_qmp.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 548
    functionName: read_attributes_qdisk
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 1
    functionsReached:
    - read_attributes_qdisk_dom
    - xc_domain_getinfolist
    linkageType: ''
    returnType: void
    signature: void read_attributes_qdisk(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - node
    argTypes:
    - xenstat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 555
    functionName: read_attributes_qdisk
    functionSourceFile: /src/xen/tools/libs/stat/xenstat_qmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void read_attributes_qdisk(xenstat_node * node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: xengnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: xengnttab_handle
    signature: xengnttab_handle *xengnttab_open(xentoollog_logger *logger, unsigned
      open_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: xengnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xengnttab_close(xengnttab_handle *xgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: xengnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int xengnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xgt
    - domid
    - ref
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: xengnttab_map_grant_ref
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_ref(xengnttab_handle *xgt,\n                              uint32_t
      domid,\n                              uint32_t ref,\n                              int
      prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - count
    - domids
    - refs
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: xengnttab_map_grant_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_refs(xengnttab_handle *xgt,\n                               uint32_t
      count,\n                               uint32_t *domids,\n                               uint32_t
      *refs,\n                               int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - count
    - domid
    - refs
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: xengnttab_map_domain_grant_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_domain_grant_refs(xengnttab_handle *xgt,\n                                      uint32_t
      count,\n                                      uint32_t domid,\n                                      uint32_t
      *refs,\n                                      int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - ref
    - prot
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: xengnttab_map_grant_ref_notify
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_ref_notify(xengnttab_handle *xgt,\n                                     uint32_t
      domid,\n                                     uint32_t ref,\n                                     int
      prot,\n                                     uint32_t notify_offset,\n                                     evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: xengnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int xengnttab_unmap(xengnttab_handle *xgt, void *start_address, uint32_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: xengnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int xengnttab_grant_copy(xengnttab_handle *xgt,\n                         uint32_t
      count,\n                         xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: xengnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                   uint32_t flags, uint32_t count,\n
      \                                  const uint32_t *refs, uint32_t *fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: xengnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt, uint32_t
      fd,\n                                       uint32_t wait_to_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: xengnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t domid,\n
      \                                uint32_t fd, uint32_t count, uint32_t *refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gnttab_unimp.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: xengnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int xengnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _l
    - ','
    - _f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: GTERROR
    functionSourceFile: /src/xen/tools/libs/gnttab/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GTERROR(_l, _f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _l
    - ','
    - _f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: GSERROR
    functionSourceFile: /src/xen/tools/libs/gnttab/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GSERROR(_l, _f...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/netbsd.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: osdep_gnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_open(xengnttab_handle *xgt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/netbsd.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: osdep_gnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_close(xengnttab_handle *xgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: osdep_gnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/netbsd.c:78,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:87,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/netbsd.c:91,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:92,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/netbsd.c:110,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/netbsd.c:113,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:115,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/netbsd.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 8
    argNames:
    - xgt
    - count
    - flags
    - prot
    - domids
    - refs
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: osdep_gnttab_grant_map
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    - malloc
    - mmap
    - GTERROR
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gnttab_grant_map(xengnttab_handle *xgt,\n                             uint32_t
      count, int flags, int prot,\n                             uint32_t *domids,
      uint32_t *refs,\n                             uint32_t notify_offset,\n                             evtchn_port_t
      notify_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 139
    functionName: osdep_gnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_unmap(xengnttab_handle *xgt,\n                       void
      *start_address,\n                       uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: osdep_gnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_grant_copy(xengnttab_handle *xgt,\n                            uint32_t
      count,\n                            xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/netbsd.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: osdep_gntshr_open
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_open(xengntshr_handle *xgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/netbsd.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: osdep_gntshr_close
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_close(xengntshr_handle *xgs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/netbsd.c:180,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:187,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/netbsd.c:192,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/netbsd.c:211,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/netbsd.c:214,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:215,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/gnttab/netbsd.c:220,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/netbsd.c:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 7
    argNames:
    - xgs
    - domid
    - count
    - refs
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - int
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 225
    functionName: osdep_gntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    - malloc
    - mmap
    - GSERROR
    - GTERROR
    - memcpy
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gntshr_share_pages(xengntshr_handle *xgs,\n                               uint32_t
      domid, int count,\n                               uint32_t *refs, int writable,\n
      \                              uint32_t notify_offset,\n                               evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/netbsd.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgs
    - start_address
    - count
    argTypes:
    - xengntshr_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: osdep_gntshr_unshare
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_gntshr_unshare(xengntshr_handle *xgs,\n                         void
      *start_address, uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/netbsd.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - dmabuf_fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: osdep_gnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                      uint32_t flags, uint32_t count,\n
      \                                     const uint32_t *refs,\n                                      uint32_t
      *dmabuf_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/netbsd.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: osdep_gnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt,\n
      \                                         uint32_t fd, uint32_t wait_to_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/netbsd.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: osdep_gnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                    uint32_t fd, uint32_t count, uint32_t
      *refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/netbsd.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: osdep_gnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/netbsd.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t
      fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: xengntshr_open
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_unimp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xengntshr_handle
    signature: xengntshr_handle *xengntshr_open(xentoollog_logger *logger, unsigned
      open_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: xengntshr_close
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_unimp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xengntshr_close(xengntshr_handle *xgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gntshr_unimp.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcg
    - domid
    - count
    - refs
    - writable
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: xengntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengntshr_share_pages(xengntshr_handle *xcg, uint32_t domid,\n
      \                           int count, uint32_t *refs, int writable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gntshr_unimp.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xcg
    - domid
    - ref
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: xengntshr_share_page_notify
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xengntshr_share_page_notify(xengntshr_handle *xcg, uint32_t
      domid,\n                                  uint32_t *ref, int writable,\n                                  uint32_t
      notify_offset,\n                                  evtchn_port_t notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/gntshr_unimp.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgs
    - start_address
    - count
    argTypes:
    - xengntshr_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: xengntshr_unshare
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_unimp.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int xengntshr_unshare(xengntshr_handle *xgs, void *start_address, uint32_t
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/linux.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: osdep_gnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_open(xengnttab_handle *xgt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/linux.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: osdep_gnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_close(xengnttab_handle *xgt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:68,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: osdep_gnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    - GTERROR
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/xen/tools/libs/gnttab/linux.c:92,1
    - Dst: alloca
      Src: /src/xen/tools/libs/gnttab/linux.c:101,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/gnttab/linux.c:104,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/linux.c:105,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:109,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:122,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:123,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/linux.c:128,1
    - Dst: usleep
      Src: /src/xen/tools/libs/gnttab/linux.c:143,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:162,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:164,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/linux.c:165,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:176,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:179,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/linux.c:186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 8
    argNames:
    - xgt
    - count
    - flags
    - prot
    - domids
    - refs
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 189
    functionName: osdep_gnttab_grant_map
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - sysconf
    - ROUNDUP
    - usleep
    - munmap
    - mmap
    - GTERROR
    - alloca
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gnttab_grant_map(xengnttab_handle *xgt,\n                             uint32_t
      count, int flags, int prot,\n                             uint32_t *domids,
      uint32_t *refs,\n                             uint32_t notify_offset,\n                             evtchn_port_t
      notify_port)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:210,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/linux.c:221,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 231
    functionName: osdep_gnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - munmap
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_unmap(xengnttab_handle *xgt,\n                       void
      *start_address,\n                       uint32_t count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:241,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:244,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:247,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:251,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:255,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:259,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:263,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:268,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:272,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:276,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:280,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:284,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:289,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:292,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/gnttab/linux.c:295,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:302,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 307
    functionName: osdep_gnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - GTERROR
    - ioctl
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_grant_copy(xengnttab_handle *xgt,\n                            uint32_t
      count,\n                            xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/linux.c:323,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/gnttab/linux.c:335,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:337,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:339,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/linux.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - dmabuf_fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 349
    functionName: osdep_gnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - GTERROR
    - memcpy
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                      uint32_t flags, uint32_t count,\n
      \                                     const uint32_t *refs,\n                                      uint32_t
      *dmabuf_fd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:360,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 372
    functionName: osdep_gnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    - GTERROR
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt,\n
      \                                         uint32_t fd, uint32_t wait_to_ms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/linux.c:386,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:398,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:400,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/gnttab/linux.c:404,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/linux.c:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 410
    functionName: osdep_gnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - GTERROR
    - ioctl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                    uint32_t fd, uint32_t count, uint32_t
      *refs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:419,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 423
    functionName: osdep_gnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    - GTERROR
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t
      fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/linux.c:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: osdep_gntshr_open
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_open(xengntshr_handle *xgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/linux.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: osdep_gntshr_close
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_close(xengntshr_handle *xgs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/linux.c:454,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:461,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:463,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/linux.c:467,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:472,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:487,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/linux.c:489,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/linux.c:490,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/gnttab/linux.c:494,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/linux.c:502,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/linux.c:504,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 7
    argNames:
    - xgs
    - domid
    - count
    - refs
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - int
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 506
    functionName: osdep_gntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    - malloc
    - mmap
    - GSERROR
    - memcpy
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gntshr_share_pages(xengntshr_handle *xgs,\n                               uint32_t
      domid, int count,\n                               uint32_t *refs, int writable,\n
      \                              uint32_t notify_offset,\n                               evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/linux.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgs
    - start_address
    - count
    argTypes:
    - xengntshr_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: osdep_gntshr_unshare
    functionSourceFile: /src/xen/tools/libs/gnttab/linux.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_gntshr_unshare(xengntshr_handle *xgs,\n                         void
      *start_address, uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gntmap_fini
      Src: /src/xen/tools/libs/gnttab/minios.c:38,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/minios.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: gnttab_close_fd
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - free
    - gntmap_fini
    linkageType: ''
    returnType: int
    signature: int gnttab_close_fd(struct file *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_file_type
      Src: /src/xen/tools/libs/gnttab/minios.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: gnttab_initialize
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - alloc_file_type
    linkageType: ''
    returnType: void
    signature: void gnttab_initialize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/minios.c:63,1
    - Dst: alloc_fd
      Src: /src/xen/tools/libs/gnttab/minios.c:67,1
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/gnttab/minios.c:68,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/minios.c:72,1
    - Dst: gntmap_init
      Src: /src/xen/tools/libs/gnttab/minios.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: osdep_gnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - get_file_from_fd
    - free
    - malloc
    - alloc_fd
    - gntmap_init
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_open(xengnttab_handle *xgt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/minios.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: osdep_gnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_close(xengnttab_handle *xgt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/gnttab/minios.c:97,1
    - Dst: gntmap_map_grant_refs
      Src: /src/xen/tools/libs/gnttab/minios.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - xgt
    - count
    - flags
    - prot
    - domids
    - refs
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: osdep_gnttab_grant_map
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - get_file_from_fd
    - gntmap_map_grant_refs
    linkageType: ''
    returnType: void
    signature: "void *osdep_gnttab_grant_map(xengnttab_handle *xgt,\n                             uint32_t
      count, int flags, int prot,\n                             uint32_t *domids,
      uint32_t *refs,\n                             uint32_t notify_offset,\n                             evtchn_port_t
      notify_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/gnttab/minios.c:114,1
    - Dst: gntmap_munmap
      Src: /src/xen/tools/libs/gnttab/minios.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: osdep_gnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - gntmap_munmap
    - get_file_from_fd
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_unmap(xengnttab_handle *xgt,\n                       void
      *start_address,\n                       uint32_t count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/gnttab/minios.c:127,1
    - Dst: gntmap_set_max_grants
      Src: /src/xen/tools/libs/gnttab/minios.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: osdep_gnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached:
    - get_file_from_fd
    - gntmap_set_max_grants
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: osdep_gnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_grant_copy(xengnttab_handle *xgt,\n                            uint32_t
      count,\n                            xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: osdep_gnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                      uint32_t flags, uint32_t count,\n
      \                                     const uint32_t *refs, uint32_t *fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: osdep_gnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt,\n
      \                                         uint32_t fd, uint32_t wait_to_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: osdep_gnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                    uint32_t fd, uint32_t count,\n                                    uint32_t
      *refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: osdep_gnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/minios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t
      fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:27,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:39,1
    - Dst: osdep_gntshr_open
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:43,1
    - Dst: osdep_gntshr_close
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:49,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:50,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: xengntshr_open
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached:
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - free
    - malloc
    - osdep_gntshr_open
    - osdep_gntshr_close
    linkageType: ''
    returnType: xengntshr_handle
    signature: xengntshr_handle *xengntshr_open(xentoollog_logger *logger, unsigned
      open_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gntshr_close
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:62,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:63,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: xengntshr_close
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached:
    - free
    - xtl_logger_destroy
    - osdep_gntshr_close
    linkageType: ''
    returnType: int
    signature: int xengntshr_close(xengntshr_handle *xgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: xengntshr_fd
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xengntshr_fd(xengntshr_handle *xgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gntshr_share_pages
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcg
    - domid
    - count
    - refs
    - writable
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: xengntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached:
    - osdep_gntshr_share_pages
    linkageType: ''
    returnType: void
    signature: "void *xengntshr_share_pages(xengntshr_handle *xcg, uint32_t domid,\n
      \                           int count, uint32_t *refs, int writable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gntshr_share_pages
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xcg
    - domid
    - ref
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: xengntshr_share_page_notify
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached:
    - osdep_gntshr_share_pages
    linkageType: ''
    returnType: void
    signature: "void *xengntshr_share_page_notify(xengntshr_handle *xcg, uint32_t
      domid,\n                                  uint32_t *ref, int writable,\n                                  uint32_t
      notify_offset,\n                                  evtchn_port_t notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gntshr_unshare
      Src: /src/xen/tools/libs/gnttab/gntshr_core.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgs
    - start_address
    - count
    argTypes:
    - xengntshr_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: xengntshr_unshare
    functionSourceFile: /src/xen/tools/libs/gnttab/gntshr_core.c
    functionUses: 0
    functionsReached:
    - osdep_gntshr_unshare
    linkageType: ''
    returnType: int
    signature: int xengntshr_unshare(xengntshr_handle *xgs, void *start_address, uint32_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:27,1
    - Dst: xentoolcore__restrict_by_dup2_null
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - xentoolcore__restrict_by_dup2_null
    - CONTAINER_OF
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:33,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:43,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:48,1
    - Dst: osdep_gnttab_open
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:52,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:58,1
    - Dst: osdep_gnttab_close
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:59,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:60,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:61,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 63
    functionName: xengnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 1
    functionsReached:
    - osdep_gnttab_close
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - xentoolcore__deregister_active_handle
    - free
    - osdep_gnttab_open
    - malloc
    - xentoolcore__register_active_handle
    linkageType: ''
    returnType: xengnttab_handle
    signature: xengnttab_handle *xengnttab_open(xentoollog_logger *logger, unsigned
      open_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:72,1
    - Dst: osdep_gnttab_close
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:73,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:74,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: xengnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - free
    - osdep_gnttab_close
    - xtl_logger_destroy
    - xentoolcore__deregister_active_handle
    linkageType: ''
    returnType: int
    signature: int xengnttab_close(xengnttab_handle *xgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: xengnttab_fd
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xengnttab_fd(xengnttab_handle *xgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_set_max_grants
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: xengnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_set_max_grants
    linkageType: ''
    returnType: int
    signature: int xengnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_grant_map
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xgt
    - domid
    - ref
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: xengnttab_map_grant_ref
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_grant_map
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_ref(xengnttab_handle *xgt,\n                              uint32_t
      domid,\n                              uint32_t ref,\n                              int
      prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_grant_map
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - count
    - domids
    - refs
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: xengnttab_map_grant_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 1
    functionsReached:
    - osdep_gnttab_grant_map
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_refs(xengnttab_handle *xgt,\n                               uint32_t
      count,\n                               uint32_t *domids,\n                               uint32_t
      *refs,\n                               int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_grant_map
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - count
    - domid
    - refs
    - prot
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: xengnttab_map_domain_grant_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_grant_map
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_domain_grant_refs(xengnttab_handle *xgt,\n                                      uint32_t
      count,\n                                      uint32_t domid,\n                                      uint32_t
      *refs,\n                                      int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_grant_map
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - ref
    - prot
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 125
    functionName: xengnttab_map_grant_ref_notify
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_grant_map
    linkageType: ''
    returnType: void
    signature: "void *xengnttab_map_grant_ref_notify(xengnttab_handle *xgt,\n                                     uint32_t
      domid,\n                                     uint32_t ref,\n                                     int
      prot,\n                                     uint32_t notify_offset,\n                                     evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_unmap
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: xengnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 1
    functionsReached:
    - osdep_gnttab_unmap
    linkageType: ''
    returnType: int
    signature: int xengnttab_unmap(xengnttab_handle *xgt, void *start_address, uint32_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_grant_copy
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: xengnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_grant_copy
    linkageType: ''
    returnType: int
    signature: "int xengnttab_grant_copy(xengnttab_handle *xgt,\n                         uint32_t
      count,\n                         xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_dmabuf_exp_from_refs
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: xengnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_dmabuf_exp_from_refs
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                   uint32_t flags, uint32_t count,\n
      \                                  const uint32_t *refs, uint32_t *fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_dmabuf_exp_wait_released
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: xengnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_dmabuf_exp_wait_released
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt, uint32_t
      fd,\n                                       uint32_t wait_to_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_dmabuf_imp_to_refs
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: xengnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_dmabuf_imp_to_refs
    linkageType: ''
    returnType: int
    signature: "int xengnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t domid,\n
      \                                uint32_t fd, uint32_t count, uint32_t *refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_gnttab_dmabuf_imp_release
      Src: /src/xen/tools/libs/gnttab/gnttab_core.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: xengnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/gnttab_core.c
    functionUses: 0
    functionsReached:
    - osdep_gnttab_dmabuf_imp_release
    linkageType: ''
    returnType: int
    signature: int xengnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/freebsd.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: osdep_gnttab_open
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_open(xengnttab_handle *xgt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/freebsd.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgt
    argTypes:
    - xengnttab_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: osdep_gnttab_close
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_close(xengnttab_handle *xgt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - count
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: osdep_gnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_set_max_grants(xengnttab_handle *xgt, uint32_t count)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/gnttab/freebsd.c:75,1
    - Dst: getpagesize
      Src: /src/xen/tools/libs/gnttab/freebsd.c:78,1
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/freebsd.c:82,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:85,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:89,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:102,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:104,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:108,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:128,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:131,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:132,1
    - Dst: GTERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:142,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:145,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:152,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/freebsd.c:154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 8
    argNames:
    - xgt
    - count
    - flags
    - prot
    - domids
    - refs
    - notify_offset
    - notify_port
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - int
    - int
    - uint32_t*
    - uint32_t*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 157
    functionName: osdep_gnttab_grant_map
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 4
    functionsReached:
    - ROUNDUP
    - free
    - munmap
    - malloc
    - mmap
    - getpagesize
    - GTERROR
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gnttab_grant_map(xengnttab_handle *xgt,\n                             uint32_t
      count, int flags, int prot,\n                             uint32_t *domids,
      uint32_t *refs,\n                             uint32_t notify_offset,\n                             evtchn_port_t
      notify_port)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:179,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:190,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - xgt
    - start_address
    - count
    argTypes:
    - xengnttab_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 200
    functionName: osdep_gnttab_unmap
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - munmap
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_unmap(xengnttab_handle *xgt,\n                       void
      *start_address,\n                       uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xgt
    - count
    - segs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - xengnttab_grant_copy_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: osdep_gnttab_grant_copy
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_grant_copy(xengnttab_handle *xgt,\n                            uint32_t
      count,\n                            xengnttab_grant_copy_segment_t *segs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/gnttab/freebsd.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: osdep_gntshr_open
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_open(xengntshr_handle *xgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/gnttab/freebsd.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xgs
    argTypes:
    - xengntshr_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: osdep_gntshr_close
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_gntshr_close(xengntshr_handle *xgs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/gnttab/freebsd.c:243,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:250,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:253,1
    - Dst: mmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:257,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:263,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:280,1
    - Dst: GSERROR
      Src: /src/xen/tools/libs/gnttab/freebsd.c:283,1
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:284,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/gnttab/freebsd.c:288,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/gnttab/freebsd.c:297,1
    - Dst: free
      Src: /src/xen/tools/libs/gnttab/freebsd.c:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 7
    argNames:
    - xgs
    - domid
    - count
    - refs
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xengntshr_handle*
    - uint32_t
    - int
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 302
    functionName: osdep_gntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 2
    functionsReached:
    - free
    - munmap
    - malloc
    - mmap
    - GSERROR
    - memcpy
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_gntshr_share_pages(xengntshr_handle *xgs,\n                               uint32_t
      domid, int count,\n                               uint32_t *refs, int writable,\n
      \                              uint32_t notify_offset,\n                               evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/gnttab/freebsd.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgs
    - start_address
    - count
    argTypes:
    - xengntshr_handle*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: osdep_gntshr_unshare
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_gntshr_unshare(xengntshr_handle *xgs,\n                         void
      *start_address, uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/freebsd.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xgt
    - domid
    - flags
    - count
    - refs
    - dmabuf_fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: osdep_gnttab_dmabuf_exp_from_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_from_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                      uint32_t flags, uint32_t count,\n
      \                                     const uint32_t *refs,\n                                      uint32_t
      *dmabuf_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/freebsd.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xgt
    - fd
    - wait_to_ms
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: osdep_gnttab_dmabuf_exp_wait_released
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_exp_wait_released(xengnttab_handle *xgt,\n
      \                                         uint32_t fd, uint32_t wait_to_ms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/freebsd.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xgt
    - domid
    - fd
    - count
    - refs
    argTypes:
    - xengnttab_handle*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: osdep_gnttab_dmabuf_imp_to_refs
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int osdep_gnttab_dmabuf_imp_to_refs(xengnttab_handle *xgt, uint32_t
      domid,\n                                    uint32_t fd, uint32_t count, uint32_t
      *refs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/gnttab/freebsd.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xgt
    - fd
    argTypes:
    - xengnttab_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: osdep_gnttab_dmabuf_imp_release
    functionSourceFile: /src/xen/tools/libs/gnttab/freebsd.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: int osdep_gnttab_dmabuf_imp_release(xengnttab_handle *xgt, uint32_t
      fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/manage/core.c:41,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/manage/core.c:61,1
    - Dst: xencall_open
      Src: /src/xen/tools/libs/manage/core.c:66,1
    - Dst: xenmanage_close
      Src: /src/xen/tools/libs/manage/core.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 78
    functionName: xenmanage_open
    functionSourceFile: /src/xen/tools/libs/manage/core.c
    functionUses: 0
    functionsReached:
    - xencall_open
    - xtl_createlogger_stdiostream
    - calloc
    - xenmanage_close
    linkageType: ''
    returnType: xenmanage_handle
    signature: "xenmanage_handle *xenmanage_open(xentoollog_logger *logger,\n                                 unsigned
      int open_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xencall_close
      Src: /src/xen/tools/libs/manage/core.c:85,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/manage/core.c:86,1
    - Dst: free
      Src: /src/xen/tools/libs/manage/core.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hdl
    argTypes:
    - xenmanage_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: xenmanage_close
    functionSourceFile: /src/xen/tools/libs/manage/core.c
    functionUses: 1
    functionsReached:
    - free
    - xencall_close
    - xtl_logger_destroy
    linkageType: ''
    returnType: int
    signature: int xenmanage_close(xenmanage_handle *hdl)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/manage/core.c:102,1
    - Dst: memset
      Src: /src/xen/tools/libs/manage/core.c:109,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/manage/core.c:114,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/manage/core.c:148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - hdl
    - domid_in
    - domid_out
    - state
    - caps
    - unique_id
    argTypes:
    - xenmanage_handle*
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 91
    functionDepth: 4
    functionLinenumber: 91
    functionLinenumberEnd: 153
    functionName: xenmanage_do_domctl_get_domain_state
    functionSourceFile: /src/xen/tools/libs/manage/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xencall_alloc_buffer
    - xencall_free_buffer
    - xencall1
    linkageType: ''
    returnType: int
    signature: "int xenmanage_do_domctl_get_domain_state(xenmanage_handle *hdl,\n
      \                                               unsigned int domid_in,\n                                                unsigned
      int *domid_out,\n                                                unsigned int
      *state,\n                                                unsigned int *caps,\n
      \                                               uint64_t *unique_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenmanage_do_domctl_get_domain_state
      Src: /src/xen/tools/libs/manage/core.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - hdl
    - domid
    - state
    - caps
    - unique_id
    argTypes:
    - xenmanage_handle*
    - unsigned int
    - unsigned int*
    - unsigned int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 5
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: xenmanage_get_domain_info
    functionSourceFile: /src/xen/tools/libs/manage/core.c
    functionUses: 0
    functionsReached:
    - xenmanage_do_domctl_get_domain_state
    linkageType: ''
    returnType: int
    signature: "int xenmanage_get_domain_info(xenmanage_handle *hdl, unsigned int
      domid,\n                              unsigned int *state, unsigned int *caps,\n
      \                             uint64_t *unique_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenmanage_do_domctl_get_domain_state
      Src: /src/xen/tools/libs/manage/core.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - hdl
    - domid
    - state
    - caps
    - unique_id
    argTypes:
    - xenmanage_handle*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 5
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: xenmanage_poll_changed_domain
    functionSourceFile: /src/xen/tools/libs/manage/core.c
    functionUses: 0
    functionsReached:
    - xenmanage_do_domctl_get_domain_state
    linkageType: ''
    returnType: int
    signature: "int xenmanage_poll_changed_domain(xenmanage_handle *hdl, unsigned
      int *domid,\n                                  unsigned int *state, unsigned
      int *caps,\n                                  uint64_t *unique_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/devicemodel/common.c:40,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/devicemodel/common.c:53,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/devicemodel/common.c:65,1
    - Dst: close
      Src: /src/xen/tools/libs/devicemodel/common.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - dmod
    argTypes:
    - xendevicemodel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 74
    functionName: osdep_xendevicemodel_open
    functionSourceFile: /src/xen/tools/libs/devicemodel/common.c
    functionUses: 0
    functionsReached:
    - ioctl
    - open
    - PERROR
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xendevicemodel_open(xendevicemodel_handle *dmod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/devicemodel/common.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dmod
    argTypes:
    - xendevicemodel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: osdep_xendevicemodel_close
    functionSourceFile: /src/xen/tools/libs/devicemodel/common.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xendevicemodel_close(xendevicemodel_handle *dmod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_xcall
      Src: /src/xen/tools/libs/devicemodel/common.c:94,1
    - Dst: calloc
      Src: /src/xen/tools/libs/devicemodel/common.c:96,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/devicemodel/common.c:109,1
    - Dst: free
      Src: /src/xen/tools/libs/devicemodel/common.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - dmod
    - domid
    - nr_bufs
    - bufs
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int
    - struct xendevicemodel_buf[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 117
    functionName: osdep_xendevicemodel_op
    functionSourceFile: /src/xen/tools/libs/devicemodel/common.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - ioctl
    - xendevicemodel_xcall
    linkageType: ''
    returnType: int
    signature: "int osdep_xendevicemodel_op(xendevicemodel_handle *dmod,\n                            domid_t
      domid, unsigned int nr_bufs,\n                            struct xendevicemodel_buf
      bufs[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/devicemodel/common.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dmod
    - domid
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: osdep_xendevicemodel_restrict
    functionSourceFile: /src/xen/tools/libs/devicemodel/common.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_xendevicemodel_restrict(xendevicemodel_handle *dmod,\n                                  domid_t
      domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/devicemodel/core.c:25,1
    - Dst: xendevicemodel_restrict
      Src: /src/xen/tools/libs/devicemodel/core.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_restrict
    - CONTAINER_OF
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/devicemodel/core.c:37,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/devicemodel/core.c:45,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/devicemodel/core.c:54,1
    - Dst: xencall_open
      Src: /src/xen/tools/libs/devicemodel/core.c:59,1
    - Dst: osdep_xendevicemodel_open
      Src: /src/xen/tools/libs/devicemodel/core.c:63,1
    - Dst: osdep_xendevicemodel_close
      Src: /src/xen/tools/libs/devicemodel/core.c:70,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/devicemodel/core.c:71,1
    - Dst: xencall_close
      Src: /src/xen/tools/libs/devicemodel/core.c:72,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/devicemodel/core.c:73,1
    - Dst: free
      Src: /src/xen/tools/libs/devicemodel/core.c:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: xendevicemodel_open
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 1
    functionsReached:
    - xencall_close
    - xencall_open
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - calloc
    - xentoolcore__deregister_active_handle
    - free
    - osdep_xendevicemodel_open
    - osdep_xendevicemodel_close
    - xentoolcore__register_active_handle
    linkageType: ''
    returnType: xendevicemodel_handle
    signature: "xendevicemodel_handle *xendevicemodel_open(xentoollog_logger *logger,\n
      \                                          unsigned open_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xendevicemodel_close
      Src: /src/xen/tools/libs/devicemodel/core.c:85,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/devicemodel/core.c:87,1
    - Dst: xencall_close
      Src: /src/xen/tools/libs/devicemodel/core.c:88,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/devicemodel/core.c:89,1
    - Dst: free
      Src: /src/xen/tools/libs/devicemodel/core.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - dmod
    argTypes:
    - xendevicemodel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: xendevicemodel_close
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 2
    functionsReached:
    - xencall_close
    - xtl_logger_destroy
    - xentoolcore__deregister_active_handle
    - free
    - osdep_xendevicemodel_close
    linkageType: ''
    returnType: int
    signature: int xendevicemodel_close(xendevicemodel_handle *dmod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/devicemodel/core.c:103,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/devicemodel/core.c:107,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/devicemodel/core.c:113,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/devicemodel/core.c:117,1
    - Dst: set_xen_guest_handle_raw
      Src: /src/xen/tools/libs/devicemodel/core.c:118,1
    - Dst: xencall3
      Src: /src/xen/tools/libs/devicemodel/core.c:123,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/devicemodel/core.c:129,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/devicemodel/core.c:134,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/devicemodel/core.c:136,1
    - Dst: free
      Src: /src/xen/tools/libs/devicemodel/core.c:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - dmod
    - domid
    - nr_bufs
    - bufs
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int
    - struct xendevicemodel_buf[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 140
    functionName: xendevicemodel_xcall
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 1
    functionsReached:
    - set_xen_guest_handle_raw
    - calloc
    - free
    - xencall_free_buffer
    - xencall3
    - xencall_alloc_buffer
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_xcall(xendevicemodel_handle *dmod,\n                         domid_t
      domid, unsigned int nr_bufs,\n                         struct xendevicemodel_buf
      bufs[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/devicemodel/core.c:150,1
    - Dst: va_start
      Src: /src/xen/tools/libs/devicemodel/core.c:154,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/devicemodel/core.c:156,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/devicemodel/core.c:157,1
    - Dst: va_end
      Src: /src/xen/tools/libs/devicemodel/core.c:159,1
    - Dst: osdep_xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:161,1
    - Dst: free
      Src: /src/xen/tools/libs/devicemodel/core.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - dmod
    - domid
    - nr_bufs
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: xendevicemodel_op
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 1
    functionsReached:
    - va_start
    - calloc
    - free
    - va_arg
    - va_end
    - osdep_xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_op(\n    xendevicemodel_handle *dmod, domid_t domid,
      \ unsigned int nr_bufs, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:176,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - dmod
    - domid
    - handle_bufioreq
    - id
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - int
    - ioservid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: xendevicemodel_create_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_create_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, int handle_bufioreq,\n    ioservid_t *id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:201,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - dmod
    - domid
    - id
    - ioreq_gfn
    - bufioreq_gfn
    - bufioreq_port
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - xen_pfn_t*
    - xen_pfn_t*
    - evtchn_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 230
    functionName: xendevicemodel_get_ioreq_server_info
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_get_ioreq_server_info(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id,\n    xen_pfn_t *ioreq_gfn, xen_pfn_t *bufioreq_gfn,\n
      \   evtchn_port_t *bufioreq_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:239,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - dmod
    - domid
    - id
    - is_mmio
    - start
    - end
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 250
    functionName: xendevicemodel_map_io_range_to_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_map_io_range_to_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id, int is_mmio,\n    uint64_t start, uint64_t
      end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:259,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - dmod
    - domid
    - id
    - is_mmio
    - start
    - end
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: xendevicemodel_unmap_io_range_from_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_unmap_io_range_from_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id, int is_mmio,\n    uint64_t start, uint64_t
      end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:285,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - dmod
    - domid
    - id
    - type
    - flags
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: xendevicemodel_map_mem_type_to_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_map_mem_type_to_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id, uint16_t type,\n    uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:309,1
    - Dst: XEN_DMOP_PCI_SBDF
      Src: /src/xen/tools/libs/devicemodel/core.c:321,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - dmod
    - domid
    - id
    - segment
    - bus
    - device
    - function
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 327
    functionName: xendevicemodel_map_pcidev_to_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - XEN_DMOP_PCI_SBDF
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_map_pcidev_to_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id,\n    uint16_t segment, uint8_t bus, uint8_t
      device, uint8_t function)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:341,1
    - Dst: XEN_DMOP_PCI_SBDF
      Src: /src/xen/tools/libs/devicemodel/core.c:353,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - dmod
    - domid
    - id
    - segment
    - bus
    - device
    - function
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 359
    functionName: xendevicemodel_unmap_pcidev_from_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - XEN_DMOP_PCI_SBDF
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_unmap_pcidev_from_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id,\n    uint16_t segment, uint8_t bus, uint8_t
      device, uint8_t function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:367,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dmod
    - domid
    - id
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 375
    functionName: xendevicemodel_destroy_ioreq_server
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_destroy_ioreq_server(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:383,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - id
    - enabled
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - ioservid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: xendevicemodel_set_ioreq_server_state
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_ioreq_server_state(\n    xendevicemodel_handle
      *dmod, domid_t domid, ioservid_t id, int enabled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:401,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - dmod
    - domid
    - segment
    - bus
    - device
    - intx
    - level
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 413
    functionName: xendevicemodel_set_pci_intx_level
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_pci_intx_level(\n    xendevicemodel_handle
      *dmod, domid_t domid, uint16_t segment,\n    uint8_t bus, uint8_t device, uint8_t
      intx, unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:422,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - irq
    - level
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 431
    functionName: xendevicemodel_set_isa_irq_level
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_isa_irq_level(\n    xendevicemodel_handle *dmod,
      domid_t domid, uint8_t irq,\n    unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:440,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - irq
    - level
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: xendevicemodel_set_irq_level
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_irq_level(\n    xendevicemodel_handle *dmod,
      domid_t domid, uint32_t irq,\n    unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:457,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - link
    - irq
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 466
    functionName: xendevicemodel_set_pci_link_route
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_pci_link_route(\n    xendevicemodel_handle
      *dmod, domid_t domid, uint8_t link, uint8_t irq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:475,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - msi_addr
    - msi_data
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 484
    functionName: xendevicemodel_inject_msi
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_inject_msi(\n    xendevicemodel_handle *dmod, domid_t
      domid, uint64_t msi_addr,\n    uint32_t msi_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:493,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - dmod
    - domid
    - first_pfn
    - nr
    - dirty_bitmap
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint64_t
    - uint32_t
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 503
    functionName: xendevicemodel_track_dirty_vram
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_track_dirty_vram(\n    xendevicemodel_handle *dmod,
      domid_t domid, uint64_t first_pfn,\n    uint32_t nr, unsigned long *dirty_bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:513,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dmod
    - domid
    - extents
    - nr
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - struct xen_dm_op_modified_memory_extent*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 523
    functionName: xendevicemodel_modified_memory_bulk
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_modified_memory_bulk(\n    xendevicemodel_handle
      *dmod, domid_t domid,\n    struct xen_dm_op_modified_memory_extent *extents,
      uint32_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_modified_memory_bulk
      Src: /src/xen/tools/libs/devicemodel/core.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dmod
    - domid
    - first_pfn
    - nr
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 535
    functionName: xendevicemodel_modified_memory
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_modified_memory_bulk
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_modified_memory(\n    xendevicemodel_handle *dmod,
      domid_t domid, uint64_t first_pfn,\n    uint32_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:544,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - dmod
    - domid
    - mem_type
    - first_pfn
    - nr
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - hvmmem_type_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 554
    functionName: xendevicemodel_set_mem_type
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_set_mem_type(\n    xendevicemodel_handle *dmod,
      domid_t domid, hvmmem_type_t mem_type,\n    uint64_t first_pfn, uint32_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:563,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - dmod
    - domid
    - vcpu
    - vector
    - type
    - error_code
    - insn_len
    - extra
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - int
    - uint8_t
    - uint8_t
    - uint32_t
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 576
    functionName: xendevicemodel_inject_event
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_inject_event(\n    xendevicemodel_handle *dmod,
      domid_t domid, int vcpu, uint8_t vector,\n    uint8_t type, uint32_t error_code,
      uint8_t insn_len, uint64_t extra)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:584,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dmod
    - domid
    - reason
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 592
    functionName: xendevicemodel_shutdown
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_shutdown(\n    xendevicemodel_handle *dmod, domid_t
      domid, unsigned int reason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:601,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - dmod
    - domid
    - size
    - src_gfn
    - dst_gfn
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 612
    functionName: xendevicemodel_relocate_memory
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_relocate_memory(\n    xendevicemodel_handle *dmod,
      domid_t domid, uint32_t size, uint64_t src_gfn,\n    uint64_t dst_gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/devicemodel/core.c:621,1
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - dmod
    - domid
    - start
    - end
    - type
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 631
    functionName: xendevicemodel_pin_memory_cacheattr
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - memset
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_pin_memory_cacheattr(\n    xendevicemodel_handle
      *dmod, domid_t domid, uint64_t start, uint64_t end,\n    uint32_t type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_op
      Src: /src/xen/tools/libs/devicemodel/core.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dmod
    - domid
    - vcpus
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 646
    functionName: xendevicemodel_nr_vcpus
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_op
    linkageType: ''
    returnType: int
    signature: "int xendevicemodel_nr_vcpus(\n    xendevicemodel_handle *dmod, domid_t
      domid, unsigned int *vcpus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xendevicemodel_restrict
      Src: /src/xen/tools/libs/devicemodel/core.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dmod
    - domid
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 651
    functionName: xendevicemodel_restrict
    functionSourceFile: /src/xen/tools/libs/devicemodel/core.c
    functionUses: 2
    functionsReached:
    - osdep_xendevicemodel_restrict
    linkageType: ''
    returnType: int
    signature: int xendevicemodel_restrict(xendevicemodel_handle *dmod, domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: PERROR
    functionSourceFile: /src/xen/tools/libs/devicemodel/private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dmod
    argTypes:
    - xendevicemodel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: osdep_xendevicemodel_open
    functionSourceFile: /src/xen/tools/libs/devicemodel/compat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xendevicemodel_open(xendevicemodel_handle *dmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dmod
    argTypes:
    - xendevicemodel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: osdep_xendevicemodel_close
    functionSourceFile: /src/xen/tools/libs/devicemodel/compat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xendevicemodel_close(xendevicemodel_handle *dmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_xcall
      Src: /src/xen/tools/libs/devicemodel/compat.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dmod
    - domid
    - nr_bufs
    - bufs
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    - unsigned int
    - struct xendevicemodel_buf[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 5
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: osdep_xendevicemodel_op
    functionSourceFile: /src/xen/tools/libs/devicemodel/compat.c
    functionUses: 1
    functionsReached:
    - xendevicemodel_xcall
    linkageType: ''
    returnType: int
    signature: "int osdep_xendevicemodel_op(xendevicemodel_handle *dmod,\n                            domid_t
      domid, unsigned int nr_bufs,\n                            struct xendevicemodel_buf
      bufs[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dmod
    - domid
    argTypes:
    - xendevicemodel_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: osdep_xendevicemodel_restrict
    functionSourceFile: /src/xen/tools/libs/devicemodel/compat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_xendevicemodel_restrict(xendevicemodel_handle *dmod,\n                                  domid_t
      domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/evtchn/core.c:24,1
    - Dst: xenevtchn_restrict
      Src: /src/xen/tools/libs/evtchn/core.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - xenevtchn_restrict
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/evtchn/core.c:35,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/evtchn/core.c:45,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/evtchn/core.c:50,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/evtchn/core.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - logger
    argTypes:
    - xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: xenevtchn_alloc_handle
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 0
    functionsReached:
    - malloc
    - xtl_createlogger_stdiostream
    - xentoolcore__register_active_handle
    - xenevtchn_close
    linkageType: ''
    returnType: xenevtchn_handle
    signature: xenevtchn_handle *xenevtchn_alloc_handle(xentoollog_logger *logger)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_alloc_handle
      Src: /src/xen/tools/libs/evtchn/core.c:73,1
    - Dst: osdep_evtchn_open
      Src: /src/xen/tools/libs/evtchn/core.c:77,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/evtchn/core.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - logger
    - flags
    argTypes:
    - xentoollog_logger*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: xenevtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 1
    functionsReached:
    - osdep_evtchn_open
    - xenevtchn_close
    - xenevtchn_alloc_handle
    linkageType: ''
    returnType: xenevtchn_handle
    signature: xenevtchn_handle *xenevtchn_open(xentoollog_logger *logger, unsigned
      int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_alloc_handle
      Src: /src/xen/tools/libs/evtchn/core.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - logger
    - fd
    - flags
    argTypes:
    - struct xentoollog_logger*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: xenevtchn_fdopen
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 1
    functionsReached:
    - xenevtchn_alloc_handle
    linkageType: ''
    returnType: xenevtchn_handle
    signature: "xenevtchn_handle *xenevtchn_fdopen(struct xentoollog_logger *logger,\n
      \                                  int fd, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/evtchn/core.c:115,1
    - Dst: osdep_evtchn_close
      Src: /src/xen/tools/libs/evtchn/core.c:116,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/evtchn/core.c:117,1
    - Dst: free
      Src: /src/xen/tools/libs/evtchn/core.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: xenevtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 3
    functionsReached:
    - osdep_evtchn_close
    - xtl_logger_destroy
    - xentoolcore__deregister_active_handle
    - free
    linkageType: ''
    returnType: int
    signature: int xenevtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: xenevtchn_fd
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xenevtchn_fd(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_evtchn_restrict
      Src: /src/xen/tools/libs/evtchn/core.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: xenevtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/core.c
    functionUses: 1
    functionsReached:
    - osdep_evtchn_restrict
    linkageType: ''
    returnType: int
    signature: int xenevtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/evtchn/netbsd.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xce
    - flags
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: osdep_evtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/evtchn/netbsd.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: osdep_evtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: osdep_evtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/netbsd.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: xenevtchn_notify
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_notify(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/netbsd.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: xenevtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle
      *xce,\n                                                      uint32_t domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/netbsd.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: xenevtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle
      *xce,\n                                                     uint32_t domid,\n
      \                                                    evtchn_port_t remote_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/netbsd.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: xenevtchn_unbind
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/netbsd.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: xenevtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,\n
      \                                             unsigned int virq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/evtchn/netbsd.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: xenevtchn_pending
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - read
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/evtchn/netbsd.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: xenevtchn_unmask
    functionSourceFile: /src/xen/tools/libs/evtchn/netbsd.c
    functionUses: 1
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unmask(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/evtchn/linux.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xce
    - flags
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: osdep_evtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/evtchn/linux.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: osdep_evtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: osdep_evtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: xenevtchn_notify
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_notify(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: xenevtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle
      *xce,\n                                                      uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: xenevtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle
      *xce,\n                                                     uint32_t domid,\n
      \                                                    evtchn_port_t remote_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: xenevtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,\n
      \                                             unsigned int virq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/linux.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: xenevtchn_unbind
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/evtchn/linux.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: xenevtchn_pending
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - read
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/evtchn/linux.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: xenevtchn_unmask
    functionSourceFile: /src/xen/tools/libs/evtchn/linux.c
    functionUses: 1
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unmask(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/evtchn/solaris.c:36,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/evtchn/solaris.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xce
    - flags
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: osdep_evtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/evtchn/solaris.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: osdep_evtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: osdep_evtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/solaris.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: xenevtchn_notify
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_notify(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/solaris.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: xenevtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle
      *xce,\n                                                      uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/solaris.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: xenevtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle
      *xce,\n                                                     uint32_t domid,\n
      \                                                    evtchn_port_t remote_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/solaris.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: xenevtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,\n
      \                                             unsigned int virq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/solaris.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: xenevtchn_unbind
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/xen/tools/libs/evtchn/solaris.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: xenevtchn_pending
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - read_exact
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_exact
      Src: /src/xen/tools/libs/evtchn/solaris.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: xenevtchn_unmask
    functionSourceFile: /src/xen/tools/libs/evtchn/solaris.c
    functionUses: 1
    functionsReached:
    - write_exact
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unmask(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:57,1
    - Dst: malloc
      Src: /src/xen/tools/libs/evtchn/minios.c:61,1
    - Dst: local_irq_save
      Src: /src/xen/tools/libs/evtchn/minios.c:69,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/evtchn/minios.c:70,1
    - Dst: local_irq_restore
      Src: /src/xen/tools/libs/evtchn/minios.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: port_alloc
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - get_file_from_fd
    - malloc
    - XEN_LIST_INSERT_HEAD
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: struct port_info
    signature: struct port_info *port_alloc(xenevtchn_handle *xce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unbind_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:81,1
    - Dst: local_irq_save
      Src: /src/xen/tools/libs/evtchn/minios.c:83,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/evtchn/minios.c:84,1
    - Dst: local_irq_restore
      Src: /src/xen/tools/libs/evtchn/minios.c:85,1
    - Dst: free
      Src: /src/xen/tools/libs/evtchn/minios.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - port_info
    argTypes:
    - struct port_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: port_dealloc
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - unbind_evtchn
    - free
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void port_dealloc(struct port_info *port_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FOREACH_SAFE
      Src: /src/xen/tools/libs/evtchn/minios.c:95,1
    - Dst: port_dealloc
      Src: /src/xen/tools/libs/evtchn/minios.c:96,1
    - Dst: free
      Src: /src/xen/tools/libs/evtchn/minios.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: evtchn_close_fd
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - free
    - port_dealloc
    - XEN_LIST_FOREACH_SAFE
    linkageType: ''
    returnType: int
    signature: int evtchn_close_fd(struct file *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_file_type
      Src: /src/xen/tools/libs/evtchn/minios.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: evtchn_initialize
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - alloc_file_type
    linkageType: ''
    returnType: void
    signature: void evtchn_initialize(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/evtchn/minios.c:123,1
    - Dst: alloc_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:127,1
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:128,1
    - Dst: free
      Src: /src/xen/tools/libs/evtchn/minios.c:132,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/evtchn/minios.c:139,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - xce
    - flags
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: osdep_evtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - get_file_from_fd
    - free
    - malloc
    - alloc_fd
    - XEN_LIST_INIT
    - printf
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/evtchn/minios.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: osdep_evtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: osdep_evtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: notify_remote_via_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: xenevtchn_notify
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - notify_remote_via_evtchn
    linkageType: ''
    returnType: int
    signature: int xenevtchn_notify(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:179,1
    - Dst: assert
      Src: /src/xen/tools/libs/evtchn/minios.c:183,1
    - Dst: mask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:185,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/evtchn/minios.c:187,1
    - Dst: printk
      Src: /src/xen/tools/libs/evtchn/minios.c:193,1
    - Dst: wake_up
      Src: /src/xen/tools/libs/evtchn/minios.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - port
    - regs
    - data
    argTypes:
    - evtchn_port_t
    - struct pt_regs*
    - void*
    assertStmts:
    - condition: (file)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/xen/tools/libs/evtchn/minios.c
    constantsTouched: []
    func_position:
      end: 200
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 200
    functionName: evtchn_handler
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - mask_evtchn
    - get_file_from_fd
    - wake_up
    - printk
    - assert
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void evtchn_handler(evtchn_port_t port, struct pt_regs *regs, void
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_alloc
      Src: /src/xen/tools/libs/evtchn/minios.c:209,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:213,1
    - Dst: evtchn_alloc_unbound
      Src: /src/xen/tools/libs/evtchn/minios.c:214,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:215,1
    - Dst: port_dealloc
      Src: /src/xen/tools/libs/evtchn/minios.c:219,1
    - Dst: unmask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: xenevtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - port_alloc
    - unmask_evtchn
    - evtchn_alloc_unbound
    - printf
    - port_dealloc
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle
      *xce,\n                                                      uint32_t domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_alloc
      Src: /src/xen/tools/libs/evtchn/minios.c:239,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:243,1
    - Dst: evtchn_bind_interdomain
      Src: /src/xen/tools/libs/evtchn/minios.c:244,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:246,1
    - Dst: port_dealloc
      Src: /src/xen/tools/libs/evtchn/minios.c:250,1
    - Dst: unmask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 260
    functionName: xenevtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - port_alloc
    - evtchn_bind_interdomain
    - unmask_evtchn
    - printf
    - port_dealloc
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle
      *xce,\n                                                     uint32_t domid,\n
      \                                                    evtchn_port_t remote_port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_alloc
      Src: /src/xen/tools/libs/evtchn/minios.c:265,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:269,1
    - Dst: bind_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:270,1
    - Dst: unmask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: xenevtchn_bind
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 0
    functionsReached:
    - port_alloc
    - unmask_evtchn
    - bind_evtchn
    - printf
    linkageType: ''
    returnType: int
    signature: int xenevtchn_bind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:282,1
    - Dst: local_irq_save
      Src: /src/xen/tools/libs/evtchn/minios.c:287,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/evtchn/minios.c:288,1
    - Dst: port_dealloc
      Src: /src/xen/tools/libs/evtchn/minios.c:292,1
    - Dst: local_irq_restore
      Src: /src/xen/tools/libs/evtchn/minios.c:293,1
    - Dst: local_irq_restore
      Src: /src/xen/tools/libs/evtchn/minios.c:297,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 304
    functionName: xenevtchn_unbind
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - get_file_from_fd
    - printf
    - local_irq_restore
    - local_irq_save
    - port_dealloc
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_alloc
      Src: /src/xen/tools/libs/evtchn/minios.c:312,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:316,1
    - Dst: bind_virq
      Src: /src/xen/tools/libs/evtchn/minios.c:317,1
    - Dst: printf
      Src: /src/xen/tools/libs/evtchn/minios.c:318,1
    - Dst: port_dealloc
      Src: /src/xen/tools/libs/evtchn/minios.c:322,1
    - Dst: unmask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: xenevtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - port_alloc
    - unmask_evtchn
    - bind_virq
    - printf
    - port_dealloc
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,\n
      \                                             unsigned int virq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_file_from_fd
      Src: /src/xen/tools/libs/evtchn/minios.c:336,1
    - Dst: local_irq_save
      Src: /src/xen/tools/libs/evtchn/minios.c:342,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/evtchn/minios.c:346,1
    - Dst: local_irq_restore
      Src: /src/xen/tools/libs/evtchn/minios.c:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 366
    functionName: xenevtchn_pending
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - local_irq_restore
    - local_irq_save
    - get_file_from_fd
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmask_evtchn
      Src: /src/xen/tools/libs/evtchn/minios.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: xenevtchn_unmask
    functionSourceFile: /src/xen/tools/libs/evtchn/minios.c
    functionUses: 1
    functionsReached:
    - unmask_evtchn
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unmask(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/evtchn/freebsd.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xce
    - flags
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: osdep_evtchn_open
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_open(xenevtchn_handle *xce, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/evtchn/freebsd.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: osdep_evtchn_close
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_close(xenevtchn_handle *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: osdep_evtchn_restrict
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_evtchn_restrict(xenevtchn_handle *xce, domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/freebsd.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: xenevtchn_notify
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_notify(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/freebsd.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: xenevtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_unbound_port(xenevtchn_handle
      *xce,\n                                                      uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/freebsd.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xenevtchn_handle*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 102
    functionName: xenevtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_interdomain(xenevtchn_handle
      *xce,\n                                                     uint32_t domid,\n
      \                                                    evtchn_port_t remote_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/freebsd.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xenevtchn_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: xenevtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: "xenevtchn_port_or_error_t xenevtchn_bind_virq(xenevtchn_handle *xce,\n
      \                                             unsigned int virq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/evtchn/freebsd.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: xenevtchn_unbind
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unbind(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/evtchn/freebsd.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xenevtchn_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: xenevtchn_pending
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - read
    linkageType: ''
    returnType: xenevtchn_port_or_error_t
    signature: xenevtchn_port_or_error_t xenevtchn_pending(xenevtchn_handle *xce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/evtchn/freebsd.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xenevtchn_handle*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: xenevtchn_unmask
    functionSourceFile: /src/xen/tools/libs/evtchn/freebsd.c
    functionUses: 1
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int xenevtchn_unmask(xenevtchn_handle *xce, evtchn_port_t port)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:27,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_mem.c:30,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:35,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_mem.c:39,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:45,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:45,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:47,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:51,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:53,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:59,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_mem.c:64,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_mem.c:66,1
    - Dst: libxl__arch_extra_memory
      Src: /src/xen/tools/libs/light/libxl_mem.c:70,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_mem.c:72,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/libs/light/libxl_mem.c:76,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:78,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_mem.c:84,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:85,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:88,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:95,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_mem.c:96,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - domid
    - max_memkb
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 100
    functionName: libxl_domain_setmaxmem
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_domain_setmaxmem
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl_domain_config_init
    - libxl__xs_read
    - libxl_domain_config_dispose
    - LOGED
    - libxl__xs_printf
    - libxl__unlock_file
    - libxl__get_domain_configuration
    - LOGE
    - libxl__arch_extra_memory
    - libxl__lock_domain_userdata
    - strtoull
    linkageType: ''
    returnType: int
    signature: int libxl_domain_setmaxmem(libxl_ctx *ctx, uint32_t domid, uint64_t
      max_memkb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_mem.c:112,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:114,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_mem.c:117,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:119,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:120,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:127,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:129,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:137,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:139,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:147,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:148,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_mem.c:149,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_mem.c:153,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_mem.c:158,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_mem.c:162,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_mem.c:169,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - gc
    - target_memkb
    - max_memkb
    argTypes:
    - libxl__gc*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 178
    functionName: libxl__fill_dom0_memory_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - libxl__xs_read
    - xs_transaction_start
    - LOGED
    - libxl__xs_printf
    - xs_transaction_end
    - libxl_get_physinfo
    - libxl__gc_owner
    - strtoull
    linkageType: ''
    returnType: int
    signature: "int libxl__fill_dom0_memory_info(libxl__gc *gc, uint64_t *target_memkb,\n
      \                                       uint64_t *max_memkb)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:183,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_mem.c:190,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:198,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_mem.c:202,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_mem.c:208,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_mem.c:210,1
    - Dst: libxl__arch_extra_memory
      Src: /src/xen/tools/libs/light/libxl_mem.c:214,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_mem.c:216,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_mem.c:221,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:223,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:223,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_mem.c:225,1
    - Dst: libxl__fill_dom0_memory_info
      Src: /src/xen/tools/libs/light/libxl_mem.c:229,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:234,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:240,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:242,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:249,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:249,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:251,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:257,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:259,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:266,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:266,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_mem.c:268,1
    - Dst: llabs
      Src: /src/xen/tools/libs/light/libxl_mem.c:271,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_mem.c:278,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_mem.c:287,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/libs/light/libxl_mem.c:297,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:299,1
    - Dst: xc_domain_set_pod_target
      Src: /src/xen/tools/libs/light/libxl_mem.c:310,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:313,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_mem.c:323,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:323,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_mem.c:326,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:333,1
    - Dst: libxl__xcinfo2xlinfo
      Src: /src/xen/tools/libs/light/libxl_mem.c:334,1
    - Dst: libxl__uuid2string
      Src: /src/xen/tools/libs/light/libxl_mem.c:335,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_mem.c:336,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:336,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:338,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_mem.c:342,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:348,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_mem.c:349,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 144
    argCount: 5
    argNames:
    - ctx
    - domid
    - target_memkb
    - relative
    - enforce
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 353
    functionName: libxl_set_memory_target
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_init
    - xs_transaction_start
    - LOGED
    - xc_domain_set_pod_target
    - xc_domain_setmaxmem
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - llabs
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - LOGE
    - xs_transaction_end
    - libxl__arch_extra_memory
    - libxl__uuid2string
    - libxl__lock_domain_userdata
    - GC_INIT
    - GCSPRINTF
    - libxl__get_domain_configuration
    - xc_domain_getinfo_single
    - strtoull
    - libxl__xs_get_dompath
    - LOGD
    - libxl__xcinfo2xlinfo
    - libxl__xs_read
    - libxl__xs_printf
    - libxl__fill_dom0_memory_info
    - atoi
    linkageType: ''
    returnType: int
    signature: "int libxl_set_memory_target(libxl_ctx *ctx, uint32_t domid,\n        int64_t
      target_memkb, int relative, int enforce)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_mem.c:362,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:365,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:365,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_mem.c:367,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_mem.c:368,1
    - Dst: libxl__fill_dom0_memory_info
      Src: /src/xen/tools/libs/light/libxl_mem.c:372,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:377,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:381,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:386,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:388,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_mem.c:392,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_mem.c:394,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - gc
    - domid
    - out_target_memkb
    - out_max_memkb
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 413
    functionName: libxl__get_memory_target
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_read
    - LOGED
    - libxl__fill_dom0_memory_info
    - strtoull
    linkageType: ''
    returnType: int
    signature: "int libxl__get_memory_target(libxl__gc *gc, uint32_t domid,\n                             uint64_t
      *out_target_memkb,\n                             uint64_t *out_max_memkb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:418,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_mem.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - rc
    - val64
    - ptr32
    argTypes:
    - libxl_ctx*
    - int
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 433
    functionName: libxl__memkb_64to32
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__memkb_64to32(libxl_ctx *ctx, int rc,\n                               uint64_t
      val64, uint32_t *ptr32)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:438,1
    - Dst: libxl__get_memory_target
      Src: /src/xen/tools/libs/light/libxl_mem.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - domid
    - out_target
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 445
    functionName: libxl_get_memory_target
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl__get_memory_target
    - GC_INIT
    linkageType: ''
    returnType: int
    signature: "int libxl_get_memory_target(libxl_ctx *ctx, uint32_t domid,\n                            uint64_t
      *out_target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_memory_target
      Src: /src/xen/tools/libs/light/libxl_mem.c:453,1
    - Dst: libxl__memkb_64to32
      Src: /src/xen/tools/libs/light/libxl_mem.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - domid
    - out_target
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 4
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: libxl_get_memory_target_0x040700
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl__memkb_64to32
    - libxl_get_memory_target
    linkageType: ''
    returnType: int
    signature: "int libxl_get_memory_target_0x040700(\n    libxl_ctx *ctx, uint32_t
      domid, uint32_t *out_target)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_mem.c:470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - b_info
    - need_memkb
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 487
    functionName: libxl__domain_need_memory_calculate
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_need_memory_calculate(libxl__gc *gc,\n                              libxl_domain_build_info
      *b_info,\n                              uint64_t *need_memkb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:494,1
    - Dst: libxl__domain_config_setdefault
      Src: /src/xen/tools/libs/light/libxl_mem.c:499,1
    - Dst: libxl__domain_need_memory_calculate
      Src: /src/xen/tools/libs/light/libxl_mem.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - d_config
    - domid_for_logging
    - need_memkb
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 513
    functionName: libxl_domain_need_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_config_setdefault
    - libxl__domain_need_memory_calculate
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_need_memory(libxl_ctx *ctx,\n                             libxl_domain_config
      *d_config,\n                             uint32_t domid_for_logging,\n                             uint64_t
      *need_memkb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:519,1
    - Dst: libxl_domain_build_info_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:525,1
    - Dst: libxl_domain_build_info_copy
      Src: /src/xen/tools/libs/light/libxl_mem.c:526,1
    - Dst: libxl__domain_build_info_setdefault
      Src: /src/xen/tools/libs/light/libxl_mem.c:528,1
    - Dst: libxl__domain_need_memory_calculate
      Src: /src/xen/tools/libs/light/libxl_mem.c:531,1
    - Dst: libxl_domain_build_info_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - b_info_in
    - need_memkb
    argTypes:
    - libxl_ctx*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 541
    functionName: libxl_domain_need_memory_0x041200
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_domain_build_info_copy
    - libxl_domain_build_info_dispose
    - libxl__domain_need_memory_calculate
    - libxl_domain_build_info_init
    - libxl__domain_build_info_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_need_memory_0x041200(libxl_ctx *ctx,\n                                      const
      libxl_domain_build_info *b_info_in,\n                                      uint64_t
      *need_memkb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_need_memory_0x041200
      Src: /src/xen/tools/libs/light/libxl_mem.c:550,1
    - Dst: libxl__memkb_64to32
      Src: /src/xen/tools/libs/light/libxl_mem.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - b_info_in
    - need_memkb
    argTypes:
    - libxl_ctx*
    - libxl_domain_build_info*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: libxl_domain_need_memory_0x040700
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl__memkb_64to32
    - libxl_domain_need_memory_0x041200
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_need_memory_0x040700(libxl_ctx *ctx,\n                                      const
      libxl_domain_build_info *b_info_in,\n                                      uint32_t
      *need_memkb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:558,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_mem.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - memkb
    argTypes:
    - libxl_ctx*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 569
    functionName: libxl_get_free_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_get_physinfo
    linkageType: ''
    returnType: int
    signature: int libxl_get_free_memory(libxl_ctx *ctx, uint64_t *memkb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_free_memory
      Src: /src/xen/tools/libs/light/libxl_mem.c:576,1
    - Dst: libxl__memkb_64to32
      Src: /src/xen/tools/libs/light/libxl_mem.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - memkb
    argTypes:
    - libxl_ctx*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 578
    functionName: libxl_get_free_memory_0x040700
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - libxl_get_free_memory
    - libxl__memkb_64to32
    linkageType: ''
    returnType: int
    signature: int libxl_get_free_memory_0x040700(libxl_ctx *ctx, uint32_t *memkb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_mem.c:585,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_mem.c:588,1
    - Dst: sleep
      Src: /src/xen/tools/libs/light/libxl_mem.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - domid
    - memory_kb
    - wait_secs
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 603
    functionName: libxl_wait_for_free_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_get_physinfo
    - sleep
    linkageType: ''
    returnType: int
    signature: "int libxl_wait_for_free_memory(libxl_ctx *ctx, uint32_t domid,\n                               uint64_t
      memory_kb, int wait_secs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_memory_target
      Src: /src/xen/tools/libs/light/libxl_mem.c:612,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:616,1
    - Dst: sleep
      Src: /src/xen/tools/libs/light/libxl_mem.c:620,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:622,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_mem.c:623,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_mem.c:624,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_mem.c:649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - domid
    - wait_secs
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 651
    functionName: libxl_wait_for_memory_target
    functionSourceFile: /src/xen/tools/libs/light/libxl_mem.c
    functionUses: 0
    functionsReached:
    - sleep
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - libxl_get_memory_target
    linkageType: ''
    returnType: int
    signature: int libxl_wait_for_memory_target(libxl_ctx *ctx, uint32_t domid, int
      wait_secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b_info
    argTypes:
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: libxl__vnuma_configured
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__vnuma_configured(const libxl_domain_build_info *b_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: compare_vmemrange
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_vmemrange(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:50,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:52,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:54,1
    - Dst: libxl_cpumap_to_nodemap
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:58,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:60,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:64,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:65,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:66,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 6
    argNames:
    - gc
    - vcpu
    - pnode
    - num_affinity
    - affinity
    - kind
    argTypes:
    - libxl__gc*
    - unsigned int
    - unsigned int
    - unsigned int
    - libxl_bitmap*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: check_vnuma_affinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl_bitmap_count_set
    - libxl_bitmap_dispose
    - libxl_cpumap_to_nodemap
    - libxl_bitmap_init
    - libxl_node_bitmap_alloc
    - LOG
    linkageType: ''
    returnType: int
    signature: "int check_vnuma_affinity(libxl__gc *gc,\n                                 unsigned
      int vcpu,\n                                 unsigned int pnode,\n                                 unsigned
      int num_affinity,\n                                 const libxl_bitmap *affinity,\n
      \                                const char *kind)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:96,1
    - Dst: libxl_get_numainfo
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:99,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:101,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:113,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:121,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:127,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:130,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:131,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:132,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:134,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:141,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:142,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:150,1
    - Dst: check_vnuma_affinity
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:152,1
    - Dst: check_vnuma_affinity
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:157,1
    - Dst: qsort
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:165,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:170,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:177,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:196,1
    - Dst: libxl_numainfo_list_free
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:206,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:207,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 3
    argNames:
    - gc
    - b_info
    - state
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 209
    functionName: libxl__vnuma_config_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached:
    - libxl_get_numainfo
    - libxl_bitmap_test
    - libxl_bitmap_set
    - libxl_bitmap_dispose
    - check_vnuma_affinity
    - qsort
    - libxl_for_each_set_bit
    - libxl_bitmap_init
    - libxl_numainfo_list_free
    - libxl_cpu_bitmap_alloc
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__vnuma_config_check(libxl__gc *gc,\n                              const
      libxl_domain_build_info *b_info,\n                              const libxl__domain_build_state
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - gc
    - domid
    - b_info
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 238
    functionName: libxl__vnuma_build_vmemrange_pv_generic
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached:
    - GCREALLOC_ARRAY
    linkageType: ''
    returnType: int
    signature: "int libxl__vnuma_build_vmemrange_pv_generic(libxl__gc *gc,\n                                            uint32_t
      domid,\n                                            libxl_domain_build_info
      *b_info,\n                                            libxl__domain_build_state
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:246,1
    - Dst: libxl__arch_vnuma_build_vmemrange
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gc
    - domid
    - b_info
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts:
    - condition: (state->vmemranges == NULL)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/xen/tools/libs/light/libxl_vnuma.c
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: libxl__vnuma_build_vmemrange_pv
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached:
    - libxl__arch_vnuma_build_vmemrange
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__vnuma_build_vmemrange_pv(libxl__gc *gc,\n                                    uint32_t
      domid,\n                                    libxl_domain_build_info *b_info,\n
      \                                   libxl__domain_build_state *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:272,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:284,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_vnuma.c:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - gc
    - domid
    - b_info
    - state
    - dom
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts:
    - condition: (state->vmemranges == NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/xen/tools/libs/light/libxl_vnuma.c
    constantsTouched: []
    func_position:
      end: 317
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 317
    functionName: libxl__vnuma_build_vmemrange_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_vnuma.c
    functionUses: 0
    functionsReached:
    - GCREALLOC_ARRAY
    - assert
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl__vnuma_build_vmemrange_hvm(libxl__gc *gc,\n                                     uint32_t
      domid,\n                                     libxl_domain_build_info *b_info,\n
      \                                    libxl__domain_build_state *state,\n                                     struct
      xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pl
    argTypes:
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: libxl__cpuid_policy_is_empty
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__cpuid_policy_is_empty(libxl_cpuid_policy_list *pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p_cpuid_list
    argTypes:
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: libxl_cpuid_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_cpuid_dispose(libxl_cpuid_policy_list *p_cpuid_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpuid
    - str
    argTypes:
    - libxl_cpuid_policy_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: libxl_cpuid_parse_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_cpuid_parse_config(libxl_cpuid_policy_list *cpuid, const
      char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpuid
    - str
    argTypes:
    - libxl_cpuid_policy_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: libxl_cpuid_parse_config_xend
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *cpuid,\n
      \                                 const char* str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - domid
    - restore
    - info
    argTypes:
    - libxl_ctx*
    - uint32_t
    - bool
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: libxl__cpuid_legacy
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,\n
      \                       libxl_domain_build_info *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hand
    - pcpuid
    argTypes:
    - yajl_gen
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: libxl_cpuid_policy_list_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,\n
      \                               libxl_cpuid_policy_list *pcpuid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: libxl__cpuid_policy_list_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,\n                                        const
      libxl__json_object *o,\n                                        libxl_cpuid_policy_list
      *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_cpuid_policy_list*
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: libxl_cpuid_policy_list_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_nocpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl_cpuid_policy_list_copy(libxl_ctx *ctx,\n                                  libxl_cpuid_policy_list
      *dst,\n                                  const libxl_cpuid_policy_list *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:21,1
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tfe
    - ao
    argTypes:
    - libxl__test_fdevent*
    - libxl__ao*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: tfe_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 0
    functionsReached:
    - libxl__ev_fd_init
    - libxl__ao_abortable_init
    linkageType: ''
    returnType: void
    signature: void tfe_init(libxl__test_fdevent *tfe, libxl__ao *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:27,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - tfe
    argTypes:
    - libxl__gc*
    - libxl__test_fdevent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: tfe_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 0
    functionsReached:
    - libxl__ev_fd_deregister
    - libxl__ao_abortable_deregister
    linkageType: ''
    returnType: void
    signature: void tfe_cleanup(libxl__gc *gc, libxl__test_fdevent *tfe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:34,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:35,1
    - Dst: fdevent_complete
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: tfe_fd_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - fdevent_complete
    linkageType: ''
    returnType: void
    signature: "void tfe_fd_cb(libxl__egc *egc, libxl__ev_fd *ev,\n                      int
      fd, short events, short revents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:42,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:43,1
    - Dst: fdevent_complete
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: tfe_abrt_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - fdevent_complete
    linkageType: ''
    returnType: void
    signature: "void tfe_abrt_cb(libxl__egc *egc, libxl__ao_abortable *abrt,\n                        int
      rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:50,1
    - Dst: tfe_cleanup
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:51,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - tfe
    - rc
    argTypes:
    - libxl__egc*
    - libxl__test_fdevent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: fdevent_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - tfe_cleanup
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void fdevent_complete(libxl__egc *egc, libxl__test_fdevent *tfe,\n
      \                            int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:61,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:62,1
    - Dst: tfe_init
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:64,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:66,1
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:71,1
    - Dst: tfe_cleanup
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:77,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_test_fdevent.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - fd
    - events
    - ao_how
    argTypes:
    - libxl_ctx*
    - int
    - short
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 79
    functionName: libxl_test_fdevent
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_fdevent.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - GCNEW
    - tfe_cleanup
    - libxl__ao_abortable_register
    - tfe_init
    - AO_CREATE_FAIL
    - libxl__ev_fd_register
    linkageType: ''
    returnType: int
    signature: "int libxl_test_fdevent(libxl_ctx *ctx, int fd, short events,\n                       libxl_asyncop_how
      *ao_how)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_console.c:25,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:33,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:38,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:40,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_console.c:41,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - gc
    - domid
    - cons_num
    - type
    - tty_path
    argTypes:
    - libxl__gc*
    - uint32_t
    - int
    - libxl_console_type
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: libxl__console_tty_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl__xs_get_dompath
    - libxl__domain_device_frontend_path
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__console_tty_path(libxl__gc *gc, uint32_t domid, int cons_num,\n
      \                           libxl_console_type type, char **tty_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:58,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:59,1
    - Dst: libxl__private_bindir_path
      Src: /src/xen/tools/libs/light/libxl_console.c:59,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:60,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:61,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:87,1
    - Dst: execv
      Src: /src/xen/tools/libs/light/libxl_console.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - ctx
    - domid
    - cons_num
    - type
    - notify_fd
    - escape_character
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_console_type
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: libxl_console_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - execv
    - GC_INIT
    - GCSPRINTF
    - libxl__private_bindir_path
    linkageType: ''
    returnType: int
    signature: "int libxl_console_exec(libxl_ctx *ctx, uint32_t domid, int cons_num,\n
      \                      libxl_console_type type, int notify_fd,\n                       char*
      escape_character)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:107,1
    - Dst: libxl__console_tty_path
      Src: /src/xen/tools/libs/light/libxl_console.c:112,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_console.c:114,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:118,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_console.c:120,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - domid
    - cons_num
    - type
    - path
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_console_type
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: libxl_console_get_tty
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGD
    - libxl__console_tty_path
    - libxl__xs_read
    - LOGED
    - libxl__strdup
    linkageType: ''
    returnType: int
    signature: "int libxl_console_get_tty(libxl_ctx *ctx, uint32_t domid, int cons_num,\n
      \                         libxl_console_type type, char **path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:137,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_console.c:138,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_console.c:146,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_console.c:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - ctx
    - domid_vm
    - domid
    - cons_num
    - type
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t*
    - int*
    - libxl_console_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 169
    functionName: libxl__primary_console_find
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - abort
    - libxl__domain_type
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: int
    signature: "int libxl__primary_console_find(libxl_ctx *ctx, uint32_t domid_vm,\n
      \                                      uint32_t *domid, int *cons_num,\n                                       libxl_console_type
      *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__primary_console_find
      Src: /src/xen/tools/libs/light/libxl_console.c:179,1
    - Dst: libxl_console_exec
      Src: /src/xen/tools/libs/light/libxl_console.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - domid_vm
    - notify_fd
    - escape_character
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: libxl_primary_console_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl_console_exec
    - libxl__primary_console_find
    linkageType: ''
    returnType: int
    signature: "int libxl_primary_console_exec(libxl_ctx *ctx, uint32_t domid_vm,
      int notify_fd,\n                               char* escape_character)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__primary_console_find
      Src: /src/xen/tools/libs/light/libxl_console.c:193,1
    - Dst: libxl_console_get_tty
      Src: /src/xen/tools/libs/light/libxl_console.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - domid_vm
    - path
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: libxl_primary_console_get_tty
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl__primary_console_find
    - libxl_console_get_tty
    linkageType: ''
    returnType: int
    signature: "int libxl_primary_console_get_tty(libxl_ctx *ctx, uint32_t domid_vm,\n
      \                                 char **path)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:200,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:211,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:212,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_console.c:215,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_console.c:219,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:221,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:222,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:226,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:227,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_console.c:233,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:236,1
    - Dst: mkstemp
      Src: /src/xen/tools/libs/light/libxl_console.c:240,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_console.c:242,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_console.c:246,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_console.c:248,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_console.c:252,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_console.c:252,1
    - Dst: lseek
      Src: /src/xen/tools/libs/light/libxl_console.c:256,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_console.c:257,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_console.c:264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - ctx
    - domid
    - autopass
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 269
    functionName: libxl_vncviewer_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - LOGD
    - getenv
    - mkstemp
    - unlink
    - libxl__xs_read
    - lseek
    - LOGED
    - libxl__exec
    - strlen
    - atoi
    - libxl_write_exactly
    linkageType: ''
    returnType: int
    signature: int libxl_vncviewer_exec(libxl_ctx *ctx, uint32_t domid, int autopass)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_console.c:285,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_console.c:290,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_console.c:291,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_console.c:292,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:301,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:302,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:302,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:303,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:304,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:305,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:306,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:306,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:307,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:308,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:311,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:312,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:313,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:314,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:317,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:318,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:321,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:322,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:325,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:326,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:326,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:328,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:329,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:329,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:330,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:332,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:334,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:335,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:336,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:337,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:339,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:341,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:344,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:345,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:345,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:346,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:347,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:347,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:349,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:350,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:350,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:351,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:352,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_console.c:354,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_console.c:355,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_console.c:356,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_console.c:357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 5
    argNames:
    - gc
    - domid
    - console
    - state
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl__device_console*
    - libxl__domain_build_state*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 360
    functionName: libxl__device_console_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__xs_kvs_of_flexarray
    - flexarray_make
    - libxl__device_generic_add
    - flexarray_append
    linkageType: ''
    returnType: int
    signature: "int libxl__device_console_add(libxl__gc *gc, uint32_t domid,\n                              libxl__device_console
      *console,\n                              libxl__domain_build_state *state,\n
      \                             libxl__device *device)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_console.c:366,1
    - Dst: libxl__device_console_add
      Src: /src/xen/tools/libs/light/libxl_console.c:377,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_console.c:379,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_console.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - domid
    - backend
    - evtch
    - gfn
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    - unsigned int
    - unsigned long
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 383
    functionName: libxl_console_add_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__ao_complete
    - libxl__device_console_add
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl_console_add_xenstore(libxl_ctx *ctx, uint32_t domid, uint32_t
      backend,\n                               unsigned int evtch, unsigned long gfn,\n
      \                              const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_console.c:394,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_console.c:395,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:404,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:405,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:405,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:406,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:407,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:408,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:409,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:409,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:410,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:411,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:413,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:414,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:414,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:415,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:416,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:416,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:417,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:418,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:418,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:419,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_console.c:420,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_console.c:422,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_console.c:423,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_console.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - gc
    - domid
    - console
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl__device_console*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 427
    functionName: libxl__device_vuart_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_kvs_of_flexarray
    - flexarray_make
    - libxl__device_generic_add
    - flexarray_append
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vuart_add(libxl__gc *gc, uint32_t domid,\n                            libxl__device_console
      *console,\n                            libxl__domain_build_state *state)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_console_init
      Src: /src/xen/tools/libs/light/libxl_console.c:436,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_console.c:444,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/libs/light/libxl_console.c:449,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_console.c:464,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:468,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_console.c:469,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_console.c:473,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:476,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:477,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_console.c:478,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_console.c:483,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_console.c:485,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - gc
    - console
    - dev_num
    - channel
    argTypes:
    - libxl__gc*
    - libxl__device_console*
    - int
    - libxl_device_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 494
    functionName: libxl__init_console_from_channel
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - abort
    - libxl_domain_qualifier_to_domid
    - libxl__sprintf
    - libxl__strdup
    - libxl__device_console_init
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__init_console_from_channel(libxl__gc *gc,\n                                     libxl__device_console
      *console,\n                                     int dev_num,\n                                     libxl_device_channel
      *channel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_channel_init
      Src: /src/xen/tools/libs/light/libxl_console.c:503,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_console.c:505,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:506,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_console.c:509,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:510,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_console.c:512,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_console.c:514,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_console.c:516,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:517,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - gc
    - libxl_path
    - channel
    argTypes:
    - libxl__gc*
    - char*
    - libxl_device_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 528
    functionName: libxl__device_channel_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl_device_channel_init
    - strcmp
    - libxl__xs_read_checked
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__device_channel_from_xenstore(libxl__gc *gc,\n                                            const
      char *libxl_path,\n                                            libxl_device_channel
      *channel)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:541,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_console.c:542,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_console.c:543,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_console.c:545,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:553,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:554,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:554,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/libxl_console.c:558,1
    - Dst: libxl__device_channel_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_console.c:566,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - gc
    - domid
    - channels
    - nchannels
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_channel**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 576
    functionName: libxl__append_channel_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_read
    - libxl__xs_libxl_path
    - libxl__device_kind_to_string
    - libxl__xs_directory
    - libxl__device_channel_from_xenstore
    - realloc
    linkageType: ''
    returnType: int
    signature: "int libxl__append_channel_list(libxl__gc *gc,\n                                              uint32_t
      domid,\n                                              libxl_device_channel **channels,\n
      \                                             int *nchannels)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:582,1
    - Dst: libxl__append_channel_list
      Src: /src/xen/tools/libs/light/libxl_console.c:588,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_console.c:595,1
    - Dst: libxl_device_channel_dispose
      Src: /src/xen/tools/libs/light/libxl_console.c:598,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_console.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - domid
    - num
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 602
    functionName: libxl_device_channel_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGD
    - free
    - libxl_device_channel_dispose
    - libxl__append_channel_list
    linkageType: ''
    returnType: libxl_device_channel
    signature: "libxl_device_channel *libxl_device_channel_list(libxl_ctx *ctx,\n
      \                                               uint32_t domid,\n                                                int
      *num)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:608,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_console.c:615,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_console.c:618,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:622,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:623,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_console.c:628,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:632,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:632,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_console.c:633,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:634,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:636,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:636,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_console.c:637,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:638,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:638,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_console.c:639,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_console.c:644,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:644,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:666,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_console.c:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - domid
    - channel
    - channelinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_channel*
    - libxl_channelinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 677
    functionName: libxl_device_channel_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - abort
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl__strdup
    - libxl__domain_device_libxl_path
    - strdup
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_channel_getinfo(libxl_ctx *ctx, uint32_t domid,\n
      \                                const libxl_device_channel *channel,\n                                 libxl_channelinfo
      *channelinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_console.c:684,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_console.c:685,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_console.c:687,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_console.c:691,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_console.c:693,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_console.c:696,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_console.c:697,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_console.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - gc
    - domid
    - vfb
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vfb*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 701
    functionName: libxl__device_vfb_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl__resolve_domid
    - libxl_defbool_setdefault
    - strdup
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vfb_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                       libxl_device_vfb *vfb, bool hotplug)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_console.c:706,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_console.c:709,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_console.c:711,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_console.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - domid
    - vfb
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vfb*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 718
    functionName: libxl_device_vfb_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__ao_complete
    - libxl__device_add
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb
      *vfb,\n                         const libxl_asyncop_how *ao_how)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:725,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_console.c:726,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:727,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:728,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:729,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_console.c:730,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:731,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_console.c:732,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:733,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_console.c:734,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:735,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_console.c:736,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:738,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_console.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - gc
    - domid
    - vfb
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vfb*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 745
    functionName: libxl__set_xenstore_vfb
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_vfb(libxl__gc *gc, uint32_t domid,\n                                   libxl_device_vfb
      *vfb,\n                                  flexarray_t *back, flexarray_t *front,\n
      \                                 flexarray_t *ro_front)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:775,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_console.c:785,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_console.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - clear
    argTypes:
    - libxl_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 793
    functionName: libxl_xen_console_read_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__zalloc
    - libxl__malloc
    linkageType: ''
    returnType: libxl_xen_console_reader
    signature: "libxl_xen_console_reader *\n    libxl_xen_console_read_start(libxl_ctx
      *ctx, int clear)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_console.c:821,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/libs/light/libxl_console.c:823,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_console.c:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - cr
    - buff
    argTypes:
    - libxl_ctx*
    - libxl_xen_console_reader*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 843
    functionName: libxl_xen_console_read_line
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGE
    - xc_readconsolering
    linkageType: ''
    returnType: int
    signature: "int libxl_xen_console_read_line(libxl_ctx *ctx,\n                                libxl_xen_console_reader
      *cr,\n                                char **buff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_console.c:848,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_console.c:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - cr
    argTypes:
    - libxl_ctx*
    - libxl_xen_console_reader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: libxl_xen_console_read_finish
    functionSourceFile: /src/xen/tools/libs/light/libxl_console.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void libxl_xen_console_read_finish(libxl_ctx *ctx,\n                                   libxl_xen_console_reader
      *cr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:53,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:63,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:66,1
    - Dst: libxl__logdirty_switch*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:67,1
    - Dst: libxl__domain_common_switch_qemu_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:72,1
    - Dst: libxl__logdirty_switch*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - crs
    - egc
    argTypes:
    - libxl__colo_restore_state*
    - libxl__egc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: colo_enable_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__logdirty_switch*::callback
    - libxl__domain_common_switch_qemu_logdirty
    - xc_shadow_control
    linkageType: ''
    returnType: void
    signature: void colo_enable_logdirty(libxl__colo_restore_state *crs, libxl__egc
      *egc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:82,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:92,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:94,1
    - Dst: libxl__domain_common_switch_qemu_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:97,1
    - Dst: libxl__logdirty_switch*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - crs
    - egc
    argTypes:
    - libxl__colo_restore_state*
    - libxl__egc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: colo_disable_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__logdirty_switch*::callback
    - libxl__domain_common_switch_qemu_logdirty
    - xc_shadow_control
    linkageType: ''
    returnType: void
    signature: "void colo_disable_logdirty(libxl__colo_restore_state *crs,\n                                  libxl__egc
      *egc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:108,1
    - Dst: libxl__qmp_restore
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:119,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:121,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:123,1
    - Dst: libxl__domain_resume_deprecated
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:127,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:129,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:131,1
    - Dst: libxl__xc_domain_restore_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - crcs
    - restore_device_model
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 138
    functionName: colo_resume_vm
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__xc_domain_restore_done
    - libxl__qmp_restore
    - libxl__colo_restore_checkpoint_state*::callback
    - libxl__domain_resume_deprecated
    linkageType: ''
    returnType: void
    signature: "void colo_resume_vm(libxl__egc *egc,\n                           libxl__colo_restore_checkpoint_state
      *crcs,\n                           int restore_device_model)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:144,1
    - Dst: init_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:146,1
    - Dst: init_subkind_qdisk
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:149,1
    - Dst: cleanup_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: init_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - init_subkind_qdisk
    - init_subkind_colo_nic
    - cleanup_subkind_colo_nic
    linkageType: ''
    returnType: int
    signature: int init_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:163,1
    - Dst: cleanup_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:165,1
    - Dst: cleanup_subkind_qdisk
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: cleanup_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - cleanup_subkind_colo_nic
    - cleanup_subkind_qdisk
    linkageType: ''
    returnType: void
    signature: void cleanup_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:180,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:182,1
    - Dst: libxl__ev_evtchn_init
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:183,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:184,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:185,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:187,1
    - Dst: libxl__device_model_savefile
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - dsps
    argTypes:
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 204
    functionName: init_dsps
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__xswait_init
    - libxl__device_model_savefile
    - libxl__ev_evtchn_init
    - libxl__ev_xswatch_init
    - libxl__ev_time_init
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: int init_dsps(libxl__domain_suspend_state *dsps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:221,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:230,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:232,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:238,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:240,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:241,1
    - Dst: init_dsps
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:246,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:262,1
    - Dst: libxl__logdirty_init
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:265,1
    - Dst: libxl__stream_write_start
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:274,1
    - Dst: libxl__colo_restore_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 2
    argNames:
    - egc
    - crs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 281
    functionName: libxl__colo_restore_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__xen_script_dir_path
    - GCNEW
    - init_dsps
    - libxl__colo_restore_state*::callback
    - libxl__logdirty_init
    - libxl__strdup
    - libxl__stream_write_start
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_setup(libxl__egc *egc,\n                               libxl__colo_restore_state
      *crs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - dcs
    - rc
    - domid
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 290
    functionName: libxl__colo_domain_create_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__colo_restore_checkpoint_state*::callback
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_domain_create_cb(libxl__egc *egc,\n                                         libxl__domain_create_state
      *dcs,\n                                         int rc, uint32_t domid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:321,1
    - Dst: libxl__stream_write_abort
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:323,1
    - Dst: libxl__xc_domain_restore_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:328,1
    - Dst: libxl__qmp_stop_replication
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:331,1
    - Dst: colo_restore_teardown_devices_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:337,1
    - Dst: libxl__checkpoint_devices_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - egc
    - dcs_void
    - ret
    - retval
    - errnoval
    argTypes:
    - libxl__egc*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 343
    functionName: libxl__colo_restore_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_devices_teardown
    - LOGD
    - libxl__xc_domain_restore_done
    - libxl__stream_write_abort
    - colo_restore_teardown_devices_done
    - libxl__qmp_stop_replication
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_teardown(libxl__egc *egc, void *dcs_void,\n
      \                                 int ret, int retval, int errnoval)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:350,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:355,1
    - Dst: cleanup_device_subkind
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:359,1
    - Dst: colo_proxy_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:361,1
    - Dst: do_failover
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:366,1
    - Dst: libxl__colo_restore_teardown_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 371
    functionName: colo_restore_teardown_devices_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__colo_restore_teardown_done
    - LOGD
    - do_failover
    - cleanup_device_subkind
    - colo_proxy_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_restore_teardown_devices_done(libxl__egc *egc,\n    libxl__checkpoint_devices_state
      *cds, int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:391,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:392,1
    - Dst: colo_disable_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:398,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:401,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - egc
    - crs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 404
    functionName: do_failover
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 1
    functionsReached:
    - libxl__colo_restore_checkpoint_state*::callback
    - LOGD
    - colo_disable_logdirty
    linkageType: ''
    returnType: void
    signature: void do_failover(libxl__egc *egc, libxl__colo_restore_state *crs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:410,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:418,1
    - Dst: libxl__colo_restore_teardown_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - crcs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 421
    functionName: do_failover_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__colo_restore_teardown_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void do_failover_done(libxl__egc *egc,\n                             libxl__colo_restore_checkpoint_state*
      crcs,\n                             int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:427,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:432,1
    - Dst: colo_resume_vm
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:439,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 445
    functionName: colo_disable_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__colo_restore_checkpoint_state*::callback
    - CONTAINER_OF
    - LOGD
    - colo_resume_vm
    linkageType: ''
    returnType: void
    signature: "void colo_disable_logdirty_done(libxl__egc *egc,\n                                       libxl__logdirty_switch
      *lds,\n                                       int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:451,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:456,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:463,1
    - Dst: libxl__domain_create_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - crs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 472
    functionName: libxl__colo_restore_teardown_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 2
    functionsReached:
    - CONTAINER_OF
    - libxl__domain_create_state*::callback
    - libxl__gc_owner
    - xc_domain_destroy
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_teardown_done(libxl__egc *egc,\n                                              libxl__colo_restore_state
      *crs,\n                                              int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:492,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:493,1
    - Dst: libxl__stream_read_start_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 499
    functionName: libxl__colo_restore_domain_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__stream_read_start_checkpoint
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: void libxl__colo_restore_domain_checkpoint_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:552,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:553,1
    - Dst: colo_send_svm_ready
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:557,1
    - Dst: colo_restore_resume_vm
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 560
    functionName: libxl__colo_restore_domain_resume_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - colo_send_svm_ready
    - CONTAINER_OF
    - colo_restore_resume_vm
    linkageType: ''
    returnType: void
    signature: void libxl__colo_restore_domain_resume_callback(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__stream_write_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - crcs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: colo_send_svm_ready
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 1
    functionsReached:
    - libxl__stream_write_checkpoint_state
    linkageType: ''
    returnType: void
    signature: "void colo_send_svm_ready(libxl__egc *egc,\n                               libxl__colo_restore_checkpoint_state
      *crcs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:576,1
    - Dst: colo_unpause_svm
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:583,1
    - Dst: libxl__checkpoint_devices_preresume
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - crcs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 589
    functionName: colo_send_svm_ready_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_preresume
    - colo_unpause_svm
    linkageType: ''
    returnType: void
    signature: "void colo_send_svm_ready_done(libxl__egc *egc,\n                                     libxl__colo_restore_checkpoint_state
      *crcs,\n                                     int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:596,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:605,1
    - Dst: libxl__qmp_colo_do_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:610,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:611,1
    - Dst: colo_proxy_preresume
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:617,1
    - Dst: colo_restore_resume_vm
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:619,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 625
    functionName: colo_restore_preresume_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - colo_proxy_preresume
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__qmp_colo_do_checkpoint
    - colo_restore_resume_vm
    linkageType: ''
    returnType: void
    signature: "void colo_restore_preresume_cb(libxl__egc *egc,\n                                      libxl__checkpoint_devices_state
      *cds,\n                                      int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_resume_vm
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - egc
    - crcs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: colo_restore_resume_vm
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 2
    functionsReached:
    - colo_resume_vm
    linkageType: ''
    returnType: void
    signature: "void colo_restore_resume_vm(libxl__egc *egc,\n                                   libxl__colo_restore_checkpoint_state
      *crcs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:639,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:649,1
    - Dst: colo_proxy_postresume
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:655,1
    - Dst: colo_enable_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:665,1
    - Dst: colo_write_svm_resumed
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:669,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - egc
    - crcs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 674
    functionName: colo_resume_vm_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - colo_enable_logdirty
    - libxl__xc_domain_saverestore_async_callback_done
    - colo_proxy_postresume
    - colo_write_svm_resumed
    linkageType: ''
    returnType: void
    signature: "void colo_resume_vm_done(libxl__egc *egc,\n                                libxl__colo_restore_checkpoint_state
      *crcs,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__stream_write_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - crcs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 684
    functionName: colo_write_svm_resumed
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 1
    functionsReached:
    - libxl__stream_write_checkpoint_state
    linkageType: ''
    returnType: void
    signature: "void colo_write_svm_resumed(libxl__egc *egc,\n                                   libxl__colo_restore_checkpoint_state
      *crcs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:690,1
    - Dst: colo_disable_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:703,1
    - Dst: colo_setup_checkpoint_devices
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 708
    functionName: colo_enable_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - colo_setup_checkpoint_devices
    - colo_disable_logdirty
    linkageType: ''
    returnType: void
    signature: "void colo_enable_logdirty_done(libxl__egc *egc,\n                                      libxl__logdirty_switch
      *lds,\n                                      int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:714,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:715,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:724,1
    - Dst: colo_enable_logdirty
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:729,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 735
    functionName: colo_reenable_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - colo_enable_logdirty
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_reenable_logdirty(libxl__egc *egc,\n                                   libxl__logdirty_switch
      *lds,\n                                   int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:741,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:742,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:750,1
    - Dst: colo_setup_checkpoint_devices
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:754,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 760
    functionName: colo_reenable_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - colo_setup_checkpoint_devices
    linkageType: ''
    returnType: void
    signature: "void colo_reenable_logdirty_done(libxl__egc *egc,\n                                        libxl__logdirty_switch
      *lds,\n                                        int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:769,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:776,1
    - Dst: colo_proxy_setup
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:791,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:792,1
    - Dst: init_device_subkind
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:797,1
    - Dst: libxl__checkpoint_devices_setup
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:802,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - egc
    - crs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 807
    functionName: colo_setup_checkpoint_devices
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - init_device_subkind
    - libxl__checkpoint_devices_setup
    - libxl__xc_domain_saverestore_async_callback_done
    - colo_proxy_setup
    linkageType: ''
    returnType: void
    signature: "void colo_setup_checkpoint_devices(libxl__egc *egc,\n                                          libxl__colo_restore_state
      *crs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:814,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:823,1
    - Dst: libxl__qmp_start_replication
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:828,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:829,1
    - Dst: colo_send_svm_ready
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:835,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:840,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 841
    functionName: colo_restore_setup_cds_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__qmp_start_replication
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - colo_send_svm_ready
    linkageType: ''
    returnType: void
    signature: "void colo_restore_setup_cds_done(libxl__egc *egc,\n                                        libxl__checkpoint_devices_state
      *cds,\n                                        int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:846,1
    - Dst: libxl__domain_unpause_deprecated
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:856,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:858,1
    - Dst: colo_write_svm_resumed
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:862,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - egc
    - crcs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 868
    functionName: colo_unpause_svm
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__domain_unpause_deprecated
    - colo_write_svm_resumed
    linkageType: ''
    returnType: void
    signature: "void colo_unpause_svm(libxl__egc *egc,\n                             libxl__colo_restore_checkpoint_state
      *crcs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:882,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:883,1
    - Dst: libxl__checkpoint_devices_commit
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 890
    functionName: libxl__colo_restore_domain_wait_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_commit
    linkageType: ''
    returnType: void
    signature: void libxl__colo_restore_domain_wait_checkpoint_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:897,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:903,1
    - Dst: libxl__stream_read_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:909,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:914,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 915
    functionName: colo_restore_commit_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__stream_read_checkpoint_state
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void colo_restore_commit_cb(libxl__egc *egc,\n                                   libxl__checkpoint_devices_state
      *cds,\n                                   int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:921,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:927,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - egc
    - crcs
    - id
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_checkpoint_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 935
    functionName: colo_stream_read_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_stream_read_done(libxl__egc *egc,\n                                  libxl__colo_restore_checkpoint_state
      *crcs,\n                                  int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:954,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:955,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:958,1
    - Dst: libxl__domain_suspend
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 967
    functionName: libxl__colo_restore_domain_suspend_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__domain_suspend
    linkageType: ''
    returnType: void
    signature: void libxl__colo_restore_domain_suspend_callback(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:973,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:975,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:983,1
    - Dst: libxl__qmp_query_xen_replication_status
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:989,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:990,1
    - Dst: libxl__checkpoint_devices_postsuspend
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:995,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 1001
    functionName: colo_suspend_vm_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__qmp_query_xen_replication_status
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__checkpoint_devices_postsuspend
    linkageType: ''
    returnType: void
    signature: "void colo_suspend_vm_done(libxl__egc *egc,\n                                 libxl__domain_suspend_state
      *dsps,\n                                 int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1008,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1015,1
    - Dst: libxl__stream_write_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1021,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1027
    functionName: colo_restore_postsuspend_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - libxl__stream_write_checkpoint_state
    linkageType: ''
    returnType: void
    signature: "void colo_restore_postsuspend_cb(libxl__egc *egc,\n                                        libxl__checkpoint_devices_state
      *cds,\n                                        int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1036,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1037,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1044,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1055,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1061
    functionName: colo_common_write_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__colo_restore_checkpoint_state*::callback
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_common_write_stream_done(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream,\n                                          int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1067,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1075,1
    - Dst: libxl__colo_restore_checkpoint_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1087,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_restore.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1093
    functionName: colo_common_read_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_restore.c
    functionUses: 0
    functionsReached:
    - libxl__colo_restore_checkpoint_state*::callback
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_common_read_stream_done(libxl__egc *egc,\n                                         libxl__stream_read_state
      *stream,\n                                         int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/light/osdeps.c:33,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/osdeps.c:40,1
    - Dst: free
      Src: /src/xen/tools/libs/light/osdeps.c:44,1
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/light/osdeps.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - buffer
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: vasprintf
    functionSourceFile: /src/xen/tools/libs/light/osdeps.c
    functionUses: 0
    functionsReached:
    - free
    - realloc
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int vasprintf(char **buffer, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/osdeps.c:62,1
    - Dst: vasprintf
      Src: /src/xen/tools/libs/light/osdeps.c:63,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/osdeps.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: asprintf
    functionSourceFile: /src/xen/tools/libs/light/osdeps.c
    functionUses: 5
    functionsReached:
    - va_start
    - va_end
    - vasprintf
    linkageType: ''
    returnType: int
    signature: int asprintf(char **buffer, char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/flexarray.c:31,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/flexarray.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - size
    - autogrow
    argTypes:
    - libxl__gc*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: flexarray_make
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 2
    functionsReached:
    - GCNEW_ARRAY
    - GCNEW
    linkageType: ''
    returnType: flexarray_t
    signature: flexarray_t *flexarray_make(libxl__gc *gc, int size, int autogrow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/flexarray.c:43,1
    - Dst: libxl__gc_is_real
      Src: /src/xen/tools/libs/light/flexarray.c:43,1
    - Dst: free
      Src: /src/xen/tools/libs/light/flexarray.c:44,1
    - Dst: free
      Src: /src/xen/tools/libs/light/flexarray.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - array
    argTypes:
    - flexarray_t*
    assertStmts:
    - condition: (!libxl__gc_is_real(array->gc))
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/xen/tools/libs/light/flexarray.c
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: flexarray_free
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached:
    - free
    - assert
    - libxl__gc_is_real
    linkageType: ''
    returnType: void
    signature: void flexarray_free(flexarray_t *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/flexarray.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - array
    - extents
    argTypes:
    - flexarray_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: flexarray_grow
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached:
    - GCREALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: void flexarray_grow(flexarray_t *array, int extents)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_grow
      Src: /src/xen/tools/libs/light/flexarray.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - array
    - idx
    - ptr
    argTypes:
    - flexarray_t*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: flexarray_set
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached:
    - flexarray_grow
    linkageType: ''
    returnType: int
    signature: int flexarray_set(flexarray_t *array, unsigned int idx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_set
      Src: /src/xen/tools/libs/light/flexarray.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - ptr
    argTypes:
    - flexarray_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: flexarray_append
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 2
    functionsReached:
    - flexarray_set
    linkageType: ''
    returnType: int
    signature: int flexarray_append(flexarray_t *array, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/flexarray.c:80,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/flexarray.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - array
    - ptr1
    - ptr2
    argTypes:
    - flexarray_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: flexarray_append_pair
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 1
    functionsReached:
    - flexarray_append
    linkageType: ''
    returnType: int
    signature: int flexarray_append_pair(flexarray_t *array, void *ptr1, void *ptr2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/flexarray.c:92,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/flexarray.c:93,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/flexarray.c:94,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/flexarray.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - array
    argTypes:
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: flexarray_vappend
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached:
    - flexarray_append
    - va_start
    - va_end
    - va_arg
    linkageType: ''
    returnType: int
    signature: int flexarray_vappend(flexarray_t *array, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - array
    - idx
    - ptr
    argTypes:
    - flexarray_t*
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: flexarray_get
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int flexarray_get(flexarray_t *array, int idx, void **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_is_real
      Src: /src/xen/tools/libs/light/flexarray.c:113,1
    - Dst: free
      Src: /src/xen/tools/libs/light/flexarray.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: flexarray_contents
    functionSourceFile: /src/xen/tools/libs/light/flexarray.c
    functionUses: 0
    functionsReached:
    - free
    - libxl__gc_is_real
    linkageType: ''
    returnType: void
    signature: void **flexarray_contents(flexarray_t *array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_virtio.c:28,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_virtio.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - gc
    - domid
    - virtio
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_virtio*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: libxl__device_virtio_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_virtio.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    - libxl_defbool_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl__device_virtio_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                          libxl_device_virtio *virtio,\n                                           bool
      hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - domid
    - virtio
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_virtio*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: libxl__device_from_virtio
    functionSourceFile: /src/xen/tools/libs/light/libxl_virtio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_virtio(libxl__gc *gc, uint32_t domid,\n                                     libxl_device_virtio
      *virtio,\n                                     libxl__device *device)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_virtio_transport_to_string
      Src: /src/xen/tools/libs/light/libxl_virtio.c:58,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_virtio.c:60,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:60,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_virtio.c:61,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:61,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_virtio.c:62,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:62,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_virtio.c:63,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:63,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_virtio.c:64,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_virtio.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - gc
    - domid
    - virtio
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_virtio*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: libxl__set_xenstore_virtio
    functionSourceFile: /src/xen/tools/libs/light/libxl_virtio.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl_virtio_transport_to_string
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_virtio(libxl__gc *gc, uint32_t domid,\n                                      libxl_device_virtio
      *virtio,\n                                      flexarray_t *back, flexarray_t
      *front,\n                                      flexarray_t *ro_front)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_virtio.c:79,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:80,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_virtio.c:84,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_virtio.c:87,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:88,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_virtio.c:92,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_virtio.c:96,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:97,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_virtio.c:101,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_virtio.c:105,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:106,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_virtio.c:110,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_virtio.c:118,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:119,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_virtio.c:123,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_virtio.c:123,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_virtio.c:127,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_virtio.c:128,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_virtio.c:134,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_virtio.c:135,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - virtio
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_virtio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 143
    functionName: libxl__virtio_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_virtio.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__backendpath_parse_domid
    - strncmp
    - libxl__strdup
    - libxl_defbool_set
    - strcmp
    - libxl__xs_read_mandatory
    - libxl__xs_read_checked
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__virtio_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                      libxl_devid devid,\n                                       libxl_device_virtio
      *virtio)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:22,1
    - Dst: S_ISBLK
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:22,1
    - Dst: S_ISCHR
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - st_mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: libxl__try_phy_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - S_ISCHR
    - S_ISBLK
    linkageType: ''
    returnType: int
    signature: int libxl__try_phy_backend(mode_t st_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:74,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:78,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - devid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: libxl__devid_to_localdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:92,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:100,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:102,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - gc
    - dev
    - env
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - int
    assertStmts:
    - condition: (dev->backend_kind == LIBXL__DEVICE_KIND_VIF)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/xen/tools/libs/light/libxl_freebsd.c
    - condition: (nr == arraysize)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/xen/tools/libs/light/libxl_freebsd.c
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: libxl__hotplug_env_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - libxl__device_nic_devname
    - GCNEW_ARRAY
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug_env_nic(libxl__gc *gc, libxl__device *dev, char
      ***env,\n                                  int num_exec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:118,1
    - Dst: libxl__nic_type
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:122,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:124,1
    - Dst: libxl__hotplug_env_nic
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:139,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:143,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:144,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:146,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:153,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:156,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    - int
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/xen/tools/libs/light/libxl_freebsd.c
    constantsTouched: []
    func_position:
      end: 163
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 163
    functionName: libxl__hotplug_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__device_backend_path
    - libxl__hotplug_env_nic
    - GCNEW_ARRAY
    - libxl__xs_read
    - libxl__nic_type
    - assert
    - libxl__device_action_to_string
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug_nic(libxl__gc *gc, libxl__device *dev,\n                              char
      ***args, char ***env,\n                              libxl__device_action action,\n
      \                             int num_exec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:169,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:173,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:174,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:176,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:183,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:186,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/xen/tools/libs/light/libxl_freebsd.c
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: libxl__hotplug_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__device_backend_path
    - GCNEW_ARRAY
    - libxl__xs_read
    - assert
    - libxl__device_action_to_string
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug_disk(libxl__gc *gc, libxl__device *dev,\n                               char
      ***args, char ***env,\n                               libxl__device_action action)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:209,1
    - Dst: libxl__hotplug_nic
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:213,1
    - Dst: libxl__hotplug_disk
      Src: /src/xen/tools/libs/light/libxl_freebsd.c:220,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 230
    functionName: libxl__get_hotplug_script_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached:
    - libxl__hotplug_nic
    - libxl__hotplug_disk
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: int
    signature: "int libxl__get_hotplug_script_info(libxl__gc *gc, libxl__device *dev,\n
      \                                  char ***args, char ***env,\n                                   libxl__device_action
      action,\n                                   int num_exec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: libxl__pci_numdevs
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__pci_numdevs(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - devs
    - num_devs
    argTypes:
    - libxl__gc*
    - physdev_pci_device_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: libxl__pci_topology_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__pci_topology_init(libxl__gc *gc,\n                             physdev_pci_device_t
      *devs,\n                             int num_devs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: libxl__local_dm_preexec_restrict
    functionSourceFile: /src/xen/tools/libs/light/libxl_freebsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__local_dm_preexec_restrict(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_common_setup
      Src: /src/xen/tools/libs/light/test_timedereg.c:7,1
    - Dst: libxl_test_timedereg
      Src: /src/xen/tools/libs/light/test_timedereg.c:9,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_timedereg.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (!rc)
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/xen/tools/libs/light/test_timedereg.c
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: main
    functionSourceFile: /src/xen/tools/libs/light/test_timedereg.c
    functionUses: 7
    functionsReached:
    - test_common_setup
    - libxl_test_timedereg
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: ALIGN
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(p, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - v
    argTypes:
    - struct acpi_ctxt*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: virt_to_phys
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long virt_to_phys(struct acpi_ctxt *ctxt, void *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:56,1
    - Dst: ALIGN
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ctxt
    - size
    - align
    argTypes:
    - struct acpi_ctxt*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 73
    functionName: mem_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - ALIGN
    linkageType: ''
    returnType: void
    signature: "void *mem_alloc(struct acpi_ctxt *ctxt,\n                       uint32_t
      size, uint32_t align)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctxt
    - v
    - size
    argTypes:
    - struct acpi_ctxt*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: acpi_mem_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void acpi_mem_free(struct acpi_ctxt *ctxt,\n                          void
      *v, uint32_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: acpi_lapic_id
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t acpi_lapic_id(unsigned cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:99,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:101,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:106,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:108,1
    - Dst: xc_domain_getvnuma
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:115,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:119,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:124,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:125,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:126,1
    - Dst: xc_domain_getvnuma
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:128,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:132,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 4
    argNames:
    - gc
    - dom
    - b_info
    - config
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - libxl_domain_build_info*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 155
    functionName: init_acpi_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl__zalloc
    - xc_domain_getvnuma
    - LOGED
    - LOG
    - xc_domain_getinfo_single
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int init_acpi_config(libxl__gc *gc, \n                            struct
      xc_dom_image *dom,\n                            const libxl_domain_build_info
      *b_info,\n                            struct acpi_config *config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:168,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:169,1
    - Dst: init_acpi_config
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:175,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:177,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:182,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:183,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:185,1
    - Dst: acpi_build_tables
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:198,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:200,1
    - Dst: ALIGN
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:205,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:215,1
    - Dst: xc_dom_guest_os
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:215,1
    - Dst: xc_dom_feature_get
      Src: /src/xen/tools/libs/light/libxl_x86_acpi.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - gc
    - b_info
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 233
    functionName: libxl__dom_load_acpi
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.c
    functionUses: 0
    functionsReached:
    - acpi_build_tables
    - XC_DOM_PAGE_SIZE
    - xc_dom_guest_os
    - XC_DOM_PAGE_SHIFT
    - libxl__zalloc
    - init_acpi_config
    - strcmp
    - xc_dom_feature_get
    - LOG
    - ALIGN
    linkageType: ''
    returnType: int
    signature: "int libxl__dom_load_acpi(libxl__gc *gc,\n                         const
      libxl_domain_build_info *b_info,\n                         struct xc_dom_image
      *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_pvcalls.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - pvcallsif
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_pvcallsif*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: libxl__device_pvcallsif_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_pvcalls.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pvcallsif_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                             libxl_device_pvcallsif *pvcallsif,\n
      \                                             bool hotplug)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_vkb.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - gc
    - domid
    - vkb
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vkb*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: libxl__device_vkb_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vkb_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                       libxl_device_vkb *vkb, bool hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - domid
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: libxl__device_vkb_dm_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__device_vkb_dm_needed(void *e, uint32_t domid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:42,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:46,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:47,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:51,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:52,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:56,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:57,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:61,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:62,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:66,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:67,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:68,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:69,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:70,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:71,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:72,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:73,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:77,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:78,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vkb.c:82,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:83,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 6
    argNames:
    - gc
    - domid
    - vkb
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vkb*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 87
    functionName: libxl__set_xenstore_vkb
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_vkb(libxl__gc *gc, uint32_t domid,\n                                   libxl_device_vkb
      *vkb,\n                                   flexarray_t *back, flexarray_t *front,\n
      \                                  flexarray_t *ro_front)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vkb.c:99,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:100,1
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vkb.c:104,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:105,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vkb.c:109,1
    - Dst: libxl__parse_backend_path
      Src: /src/xen/tools/libs/light/libxl_vkb.c:112,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:118,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:118,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:120,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:121,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:126,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:129,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:130,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:135,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:138,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:139,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:144,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:147,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:148,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:153,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:156,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:157,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:162,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:165,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:166,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:171,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:174,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:175,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:180,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:183,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:184,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:189,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:192,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:193,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:198,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vkb.c:201,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:202,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:207,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - vkb
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_vkb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 215
    functionName: libxl__vkb_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__parse_backend_path
    - libxl__xs_read_mandatory
    - libxl__xs_read_checked
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__vkb_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                   libxl_devid devid,\n                                    libxl_device_vkb
      *vkb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - domid
    - type
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vkb*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: libxl__device_from_vkb
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_vkb(libxl__gc *gc, uint32_t domid,\n                                  libxl_device_vkb
      *type, libxl__device *device)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_vkb.c:234,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_vkb.c:237,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_vkb.c:239,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_vkb.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ctx
    - domid
    - vkb
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vkb*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: libxl_device_vkb_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__ao_complete
    - libxl__device_add
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vkb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vkb
      *vkb,\n                         const libxl_asyncop_how *ao_how)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vkb.c:251,1
    - Dst: libxl_device_vkb_init
      Src: /src/xen/tools/libs/light/libxl_vkb.c:257,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_vkb.c:259,1
    - Dst: libxl_device_vkb_copy
      Src: /src/xen/tools/libs/light/libxl_vkb.c:265,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_vkb.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - domid
    - devid
    - vkb
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_device_vkb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 280
    functionName: libxl_devid_to_device_vkb
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_device_vkb_copy
    - libxl__device_list_free
    - libxl_device_vkb_init
    - libxl__device_list
    linkageType: ''
    returnType: int
    signature: "int libxl_devid_to_device_vkb(libxl_ctx *ctx, uint32_t domid,\n                              int
      devid, libxl_device_vkb *vkb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vkb.c:286,1
    - Dst: libxl_vkbinfo_init
      Src: /src/xen/tools/libs/light/libxl_vkb.c:291,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_vkb.c:292,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_vkb.c:295,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_vkb.c:297,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:300,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:301,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vkb.c:305,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:308,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:308,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:309,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:311,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:312,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:316,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:317,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:318,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vkb.c:320,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vkb.c:321,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vkb.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - domid
    - vkb
    - info
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vkb*
    - libxl_vkbinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 329
    functionName: libxl_device_vkb_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vkb.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl_vkbinfo_init
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vkb_getinfo(libxl_ctx *ctx, uint32_t domid,\n                             const
      libxl_device_vkb *vkb,\n                             libxl_vkbinfo *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_magic
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:25,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:26,1
    - Dst: fdt_check_header
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:30,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:32,1
    - Dst: fdt_totalsize
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:36,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - gc
    - fdt
    - size
    argTypes:
    - libxl__gc*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: check_overlay_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_dt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_check_header
    - LOG
    - fdt_magic
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int check_overlay_fdt(libxl__gc *gc, void *fdt, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:49,1
    - Dst: check_overlay_fdt
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:51,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:52,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:56,1
    - Dst: xc_dt_overlay
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:60,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - overlay_dt
    - overlay_dt_size
    - overlay_op
    argTypes:
    - libxl_ctx*
    - void*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 70
    functionName: libxl_dt_overlay
    functionSourceFile: /src/xen/tools/libs/light/libxl_dt_overlay.c
    functionUses: 0
    functionsReached:
    - check_overlay_fdt
    - GC_INIT
    - LOG
    - xc_dt_overlay
    linkageType: ''
    returnType: int
    signature: "int libxl_dt_overlay(libxl_ctx *ctx, void *overlay_dt, uint32_t overlay_dt_size,\n
      \                    uint8_t overlay_op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:78,1
    - Dst: check_overlay_fdt
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:80,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:81,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:85,1
    - Dst: xc_dt_overlay_domain
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:89,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dt_overlay.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - domain_id
    - overlay_dt
    - overlay_dt_size
    - overlay_op
    argTypes:
    - libxl_ctx*
    - uint32_t
    - void*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 99
    functionName: libxl_dt_overlay_domain
    functionSourceFile: /src/xen/tools/libs/light/libxl_dt_overlay.c
    functionUses: 0
    functionsReached:
    - check_overlay_fdt
    - GC_INIT
    - LOG
    - xc_dt_overlay_domain
    linkageType: ''
    returnType: int
    signature: "int libxl_dt_overlay_domain(libxl_ctx *ctx, uint32_t domain_id,\n
      \                           void *overlay_dt, uint32_t overlay_dt_size,\n                            uint8_t
      overlay_op)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:32,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:37,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: libxl__xs_kvs_of_flexarray
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 2
    functionsReached:
    - flexarray_get
    - libxl__calloc
    linkageType: ''
    returnType: char
    signature: char **libxl__xs_kvs_of_flexarray(libxl__gc *gc, flexarray_t *array)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:53,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:61,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:63,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:66,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - gc
    - t
    - dir
    - kvs
    - perms
    - num_perms
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char*[]
    - struct xs_permissions*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 75
    functionName: libxl__xs_writev_perms
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_write
    - GCSPRINTF
    - xs_set_permissions
    - strlen
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_writev_perms(libxl__gc *gc, xs_transaction_t t,\n                           const
      char *dir, char *kvs[],\n                           struct xs_permissions *perms,\n
      \                          unsigned int num_perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_writev_perms
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - t
    - dir
    - kvs
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: libxl__xs_writev
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - libxl__xs_writev_perms
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_writev(libxl__gc *gc, xs_transaction_t t,\n                     const
      char *dir, char *kvs[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:90,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:93,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:96,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:102,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - gc
    - dir
    - kvs
    argTypes:
    - libxl__gc*
    - char*
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 106
    functionName: libxl__xs_writev_atonce
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - libxl__xs_writev
    - libxl__xs_transaction_abort
    - libxl__xs_transaction_commit
    - libxl__xs_transaction_start
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_writev_atonce(libxl__gc *gc,\n                            const
      char *dir, char *kvs[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:111,1
    - Dst: libxl__vsprintf
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:115,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:117,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:117,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - gc
    - t
    - path
    - fmt
    - ap
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: libxl__xs_vprintf
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_write
    - libxl__vsprintf
    - strlen
    - LOGE
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_vprintf(libxl__gc *gc, xs_transaction_t t,\n                      const
      char *path, const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:132,1
    - Dst: libxl__xs_vprintf
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:133,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - gc
    - t
    - path
    - fmt
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: libxl__xs_printf
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 3
    functionsReached:
    - va_start
    - libxl__xs_vprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_printf(libxl__gc *gc, xs_transaction_t t,\n                     const
      char *path, const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:141,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:144,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - t
    - path
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: libxl__xs_read
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 11
    functionsReached:
    - libxl__ptr_add
    - xs_read
    - libxl__gc_owner
    linkageType: ''
    returnType: char
    signature: char * libxl__xs_read(libxl__gc *gc, xs_transaction_t t, const char
      *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:151,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:152,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:154,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: libxl__xs_get_dompath
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 5
    functionsReached:
    - libxl__ptr_add
    - xs_get_domain_path
    - libxl__gc_owner
    - LOGED
    linkageType: ''
    returnType: char
    signature: char *libxl__xs_get_dompath(libxl__gc *gc, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:164,1
    - Dst: xs_directory
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:166,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: libxl__xs_directory
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 1
    functionsReached:
    - libxl__ptr_add
    - xs_directory
    - libxl__gc_owner
    linkageType: ''
    returnType: char
    signature: "char **libxl__xs_directory(libxl__gc *gc, xs_transaction_t t,\n                           const
      char *path, unsigned int *nb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:175,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:178,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:180,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:184,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - gc
    - t
    - path
    - perms
    - num_perms
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - struct xs_permissions*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 191
    functionName: libxl__xs_mknod
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_write
    - xs_set_permissions
    - libxl__gc_owner
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_mknod(libxl__gc *gc, xs_transaction_t t,\n                    const
      char *path, struct xs_permissions *perms,\n                    unsigned int
      num_perms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:195,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: libxl__xs_libxl_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - LOGD
    linkageType: ''
    returnType: char
    signature: char *libxl__xs_libxl_path(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:204,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - gc
    - t
    - path
    - result_out
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: libxl__xs_read_mandatory
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 2
    functionsReached:
    - libxl__xs_read
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_read_mandatory(libxl__gc *gc, xs_transaction_t t,\n
      \                            const char *path, const char **result_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:216,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - gc
    - t
    - path
    - result_out
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: libxl__xs_read_checked
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 3
    functionsReached:
    - libxl__xs_read
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_read_checked(libxl__gc *gc, xs_transaction_t t,\n                           const
      char *path, const char **result_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:228,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:229,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - gc
    - t
    - path
    - string
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: libxl__xs_write_checked
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_write
    - strlen
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_write_checked(libxl__gc *gc, xs_transaction_t t,\n                            const
      char *path, const char *string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:238,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - t
    - path
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: libxl__xs_rm_checked
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__xs_rm_checked(libxl__gc *gc, xs_transaction_t t, const char
      *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:250,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:251,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - t
    argTypes:
    - libxl__gc*
    - xs_transaction_t*
    assertStmts:
    - condition: (!*t)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/xen/tools/libs/light/libxl_xshelp.c
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: libxl__xs_transaction_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 1
    functionsReached:
    - assert
    - xs_transaction_start
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__xs_transaction_start(libxl__gc *gc, xs_transaction_t *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:261,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:263,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - gc
    - t
    argTypes:
    - libxl__gc*
    - xs_transaction_t*
    assertStmts:
    - condition: (*t)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/xen/tools/libs/light/libxl_xshelp.c
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: libxl__xs_transaction_commit
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 1
    functionsReached:
    - xs_transaction_end
    - assert
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__xs_transaction_commit(libxl__gc *gc, xs_transaction_t *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:281,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - t
    argTypes:
    - libxl__gc*
    - xs_transaction_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: libxl__xs_transaction_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 1
    functionsReached:
    - xs_transaction_end
    - LOGE
    linkageType: ''
    returnType: void
    signature: void libxl__xs_transaction_abort(libxl__gc *gc, xs_transaction_t *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:295,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:297,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:298,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:300,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:305,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:305,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:308,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:310,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:311,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:313,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:315,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_xshelp.c:317,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 3
    argNames:
    - gc
    - t
    - user_path
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - char*
    assertStmts:
    - condition: (user_path && t)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/xen/tools/libs/light/libxl_xshelp.c
    constantsTouched: []
    func_position:
      end: 326
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 326
    functionName: libxl__xs_path_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_xshelp.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - libxl__xs_read
    - libxl__strdup
    - libxl__xs_directory
    - strlen
    - LOGE
    - strrchr
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__xs_path_cleanup(libxl__gc *gc, xs_transaction_t t,\n                           const
      char *user_path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_nic.c:23,1
    - Dst: libxl__parse_mac
      Src: /src/xen/tools/libs/light/libxl_nic.c:28,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_nic.c:32,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_nic.c:36,1
    - Dst: libxl__compare_macs
      Src: /src/xen/tools/libs/light/libxl_nic.c:40,1
    - Dst: libxl_device_nic_dispose
      Src: /src/xen/tools/libs/light/libxl_nic.c:46,1
    - Dst: libxl_device_nic_dispose
      Src: /src/xen/tools/libs/light/libxl_nic.c:50,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_nic.c:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - domid
    - mac
    - nic
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 54
    functionName: libxl_mac_to_device_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - free
    - libxl_device_nic_dispose
    - libxl__parse_mac
    - libxl__device_list
    - memset
    - libxl__compare_macs
    linkageType: ''
    returnType: int
    signature: "int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid,\n                            const
      char *mac, libxl_device_nic *nic)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:66,1
    - Dst: libxl__mac_is_default
      Src: /src/xen/tools/libs/light/libxl_nic.c:69,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/libs/light/libxl_nic.c:73,1
    - Dst: libxl_uuid_bytearray
      Src: /src/xen/tools/libs/light/libxl_nic.c:74,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:85,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/light/libxl_nic.c:88,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_nic.c:89,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_nic.c:92,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_nic.c:95,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_nic.c:107,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_nic.c:116,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_nic.c:119,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - gc
    - domid
    - nic
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_nic*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 122
    functionName: libxl__device_nic_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    - asprintf
    - libxl__xen_script_dir_path
    - LOGD
    - abort
    - libxl_uuid_generate
    - libxl_defbool_setdefault
    - libxl_uuid_bytearray
    - strdup
    - libxl__domain_type
    - libxl__mac_is_default
    linkageType: ''
    returnType: int
    signature: "int libxl__device_nic_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                       libxl_device_nic *nic, bool hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_mac_copy
      Src: /src/xen/tools/libs/light/libxl_nic.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_device_nic*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: libxl__update_config_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl_mac_copy
    linkageType: ''
    returnType: void
    signature: "void libxl__update_config_nic(libxl__gc *gc, libxl_device_nic *dst,\n
      \                                    const libxl_device_nic *src)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_grow
      Src: /src/xen/tools/libs/light/libxl_nic.c:137,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_nic.c:140,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_nic.c:141,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_nic.c:142,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:145,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:146,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:150,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:151,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:161,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:162,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:163,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:164,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:165,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:166,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:167,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:168,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:169,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:170,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:171,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:172,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:173,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:174,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:175,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:176,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:177,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:178,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:179,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:180,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:181,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:182,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:183,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:184,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:185,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:186,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:187,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:188,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:189,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:190,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:191,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:192,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:193,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:195,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:196,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:197,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:198,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:199,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:200,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:201,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:202,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:203,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:204,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:205,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:206,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:207,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:208,1
    - Dst: MAYBE_ADD_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:209,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:213,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:214,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:214,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/libs/light/libxl_nic.c:214,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:216,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:217,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:217,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:220,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:221,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:221,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:225,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:226,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:226,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:232,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:233,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:233,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:237,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:238,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:238,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:241,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:242,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:242,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:243,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:244,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:244,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:245,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:246,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:246,1
    - Dst: libxl_nic_type_to_string
      Src: /src/xen/tools/libs/light/libxl_nic.c:247,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:249,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:250,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:250,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:251,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:252,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:252,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/libs/light/libxl_nic.c:253,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:255,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:256,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:256,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:262,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:263,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:265,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_nic.c:266,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_nic.c:266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 99
    argCount: 6
    argNames:
    - gc
    - domid
    - nic
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_nic*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 132
    functionDepth: 5
    functionLinenumber: 132
    functionLinenumberEnd: 269
    functionName: libxl__set_xenstore_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - libxl__xen_script_dir_path
    - libxl_nic_type_to_string
    - flexarray_append_pair
    - MAYBE_ADD_COLO_ARGS
    - flexarray_grow
    - libxl__strdup
    - LIBXL_MAC_BYTES
    - libxl__abs_path
    - flexarray_append
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_nic(libxl__gc *gc, uint32_t domid,\n                                   libxl_device_nic
      *nic,\n                                   flexarray_t *back, flexarray_t *front,\n
      \                                  flexarray_t *ro_front)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: MAYBE_ADD_COLO_ARGS
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAYBE_ADD_COLO_ARGS(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_nic.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - domid
    - nic
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_nic*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: libxl__device_nic_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl__device_add_async
    linkageType: ''
    returnType: void
    signature: "void libxl__device_nic_add(libxl__egc *egc, uint32_t domid,\n                                  libxl_device_nic
      *nic,\n                                  libxl__ao_device *aodev)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_nic_init
      Src: /src/xen/tools/libs/light/libxl_nic.c:284,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:286,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:287,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_nic.c:290,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:294,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:295,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_nic.c:299,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_nic.c:303,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:306,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:307,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_nic.c:312,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:321,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:322,1
    - Dst: libxl__parse_mac
      Src: /src/xen/tools/libs/light/libxl_nic.c:325,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_nic.c:328,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:331,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:332,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:335,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:336,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:339,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:340,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:343,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:344,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:347,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:348,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:359,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:360,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:361,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:362,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:363,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:364,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:365,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:366,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:367,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:368,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:369,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:370,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:371,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:372,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:373,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:374,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:375,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:376,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:377,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:378,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:379,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:380,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:381,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:382,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:383,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:384,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:385,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:386,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:387,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:388,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:389,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:390,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:391,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:392,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:393,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:394,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:395,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:396,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:397,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:398,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:399,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:400,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:401,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:402,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:403,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:404,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:405,1
    - Dst: CHECK_COLO_ARGS
      Src: /src/xen/tools/libs/light/libxl_nic.c:406,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_nic.c:411,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:412,1
    - Dst: libxl_nic_type_from_string
      Src: /src/xen/tools/libs/light/libxl_nic.c:415,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 135
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - nic
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 426
    functionName: libxl__nic_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__backendpath_parse_domid
    - LOG
    - libxl_nic_type_from_string
    - libxl__parse_mac
    - strtol
    - libxl_device_nic_init
    - memset
    - CHECK_COLO_ARGS
    - atoi
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__nic_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                   libxl_devid devid, libxl_device_nic *nic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: CHECK_COLO_ARGS
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_COLO_ARGS(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_nic.c:432,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_nic.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - domid
    - num
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 439
    functionName: libxl_device_nic_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_list
    linkageType: ''
    returnType: libxl_device_nic
    signature: libxl_device_nic *libxl_device_nic_list(libxl_ctx *ctx, uint32_t domid,
      int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_nic.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - num
    argTypes:
    - libxl_device_nic*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: libxl_device_nic_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl__device_list_free
    linkageType: ''
    returnType: void
    signature: void libxl_device_nic_list_free(libxl_device_nic* list, int num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_nic.c:450,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_nic.c:457,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_nic.c:459,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_nic.c:461,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:462,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_nic.c:467,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_nic.c:471,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:471,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_nic.c:472,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_nic.c:473,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:473,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_nic.c:474,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_nic.c:475,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:475,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_nic.c:476,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_nic.c:477,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:477,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_nic.c:478,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_nic.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - domid
    - nic
    - nicinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_nic*
    - libxl_nicinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 486
    functionName: libxl_device_nic_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl__strdup
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_nic_getinfo(libxl_ctx *ctx, uint32_t domid,\n                              const
      libxl_device_nic *nic,\n                              libxl_nicinfo *nicinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:495,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_nic.c:497,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_nic.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - gc
    - domid
    - devid
    - type
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    - libxl_nic_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 501
    functionName: libxl__device_nic_devname
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - abort
    linkageType: ''
    returnType: char
    signature: "char *libxl__device_nic_devname(libxl__gc *gc,\n                                      uint32_t
      domid,\n                                      uint32_t devid,\n                                      libxl_nic_type
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_DEVID
      Src: /src/xen/tools/libs/light/libxl_nic.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_nic*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: libxl_device_nic_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - COMPARE_DEVID
    linkageType: ''
    returnType: int
    signature: "int libxl_device_nic_compare(const libxl_device_nic *d1,\n                                    const
      libxl_device_nic *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__update_config_nic
      Src: /src/xen/tools/libs/light/libxl_nic.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - d
    - s
    argTypes:
    - libxl__gc*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: libxl_device_nic_update_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - libxl__update_config_nic
    linkageType: ''
    returnType: void
    signature: void libxl_device_nic_update_config(libxl__gc *gc, void *d, void *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_nic_setdefault
      Src: /src/xen/tools/libs/light/libxl_nic.c:526,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_nic.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - d_config
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 514
    functionDepth: 4
    functionLinenumber: 514
    functionLinenumberEnd: 543
    functionName: libxl__device_nic_set_devids
    functionSourceFile: /src/xen/tools/libs/light/libxl_nic.c
    functionUses: 0
    functionsReached:
    - LOGD
    - libxl__device_nic_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl__device_nic_set_devids(libxl__gc *gc, libxl_domain_config
      *d_config,\n                                 uint32_t domid)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_psr.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - err
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 47
    functionName: libxl__psr_log_err_msg
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - LOGE
    linkageType: ''
    returnType: void
    signature: void libxl__psr_log_err_msg(libxl__gc *gc, int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__psr_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:67,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_psr.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - gc
    - err
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 72
    functionName: libxl__psr_cmt_log_err_msg
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl__psr_log_err_msg
    - LOGE
    linkageType: ''
    returnType: void
    signature: void libxl__psr_cmt_log_err_msg(libxl__gc *gc, int err)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__psr_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:119,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_psr.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - gc
    - err
    - type
    argTypes:
    - libxl__gc*
    - int
    - libxl_psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 124
    functionName: libxl__psr_alloc_log_err_msg
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl__psr_log_err_msg
    - LOG
    linkageType: ''
    returnType: void
    signature: "void libxl__psr_alloc_log_err_msg(libxl__gc *gc,\n                                         int
      err,\n                                         libxl_psr_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_psr.c:132,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_psr.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - gc
    - socketid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: libxl__pick_socket_cpu
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_cputopology_list_free
    - libxl_get_cpu_topology
    linkageType: ''
    returnType: int
    signature: int libxl__pick_socket_cpu(libxl__gc *gc, uint32_t socketid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:148,1
    - Dst: xc_psr_cmt_attach
      Src: /src/xen/tools/libs/light/libxl_psr.c:151,1
    - Dst: libxl__psr_cmt_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: libxl_psr_cmt_attach
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl__psr_cmt_log_err_msg
    - GC_INIT
    - xc_psr_cmt_attach
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_attach(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:163,1
    - Dst: xc_psr_cmt_detach
      Src: /src/xen/tools/libs/light/libxl_psr.c:166,1
    - Dst: libxl__psr_cmt_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: libxl_psr_cmt_detach
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl__psr_cmt_log_err_msg
    - GC_INIT
    - xc_psr_cmt_detach
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_detach(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_psr_cmt_get_domain_rmid
      Src: /src/xen/tools/libs/light/libxl_psr.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: libxl_psr_cmt_domain_attached
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - xc_psr_cmt_get_domain_rmid
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_domain_attached(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_psr_cmt_enabled
      Src: /src/xen/tools/libs/light/libxl_psr.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: libxl_psr_cmt_enabled
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - xc_psr_cmt_enabled
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_enabled(libxl_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:195,1
    - Dst: xc_psr_cmt_get_total_rmid
      Src: /src/xen/tools/libs/light/libxl_psr.c:198,1
    - Dst: libxl__psr_cmt_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - total_rmid
    argTypes:
    - libxl_ctx*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: libxl_psr_cmt_get_total_rmid
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - xc_psr_cmt_get_total_rmid
    - GC_INIT
    - libxl__psr_cmt_log_err_msg
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_get_total_rmid(libxl_ctx *ctx, uint32_t *total_rmid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:212,1
    - Dst: libxl__pick_socket_cpu
      Src: /src/xen/tools/libs/light/libxl_psr.c:215,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_psr.c:218,1
    - Dst: xc_psr_cmt_get_l3_cache_size
      Src: /src/xen/tools/libs/light/libxl_psr.c:223,1
    - Dst: libxl__psr_cmt_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - socketid
    - l3_cache_size
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 232
    functionName: libxl_psr_cmt_get_l3_cache_size
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_psr_cmt_get_l3_cache_size
    - libxl__pick_socket_cpu
    - libxl__psr_cmt_log_err_msg
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cmt_get_l3_cache_size(libxl_ctx *ctx,\n                                    uint32_t
      socketid,\n                                    uint32_t *l3_cache_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:236,1
    - Dst: xc_psr_cmt_get_l3_event_mask
      Src: /src/xen/tools/libs/light/libxl_psr.c:240,1
    - Dst: libxl__psr_cmt_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - type
    argTypes:
    - libxl_ctx*
    - libxl_psr_cmt_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 250
    functionName: libxl_psr_cmt_type_supported
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl__psr_cmt_log_err_msg
    - GC_INIT
    - xc_psr_cmt_get_l3_event_mask
    linkageType: ''
    returnType: int
    signature: int libxl_psr_cmt_type_supported(libxl_ctx *ctx, libxl_psr_cmt_type
      type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:259,1
    - Dst: xc_psr_cmt_get_domain_rmid
      Src: /src/xen/tools/libs/light/libxl_psr.c:265,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_psr.c:267,1
    - Dst: libxl__pick_socket_cpu
      Src: /src/xen/tools/libs/light/libxl_psr.c:273,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_psr.c:275,1
    - Dst: xc_psr_cmt_get_data
      Src: /src/xen/tools/libs/light/libxl_psr.c:280,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_psr.c:283,1
    - Dst: xc_psr_cmt_get_l3_upscaling_factor
      Src: /src/xen/tools/libs/light/libxl_psr.c:288,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_psr.c:290,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - ctx
    - domid
    - type
    - scope
    - sample_r
    - tsc_r
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_psr_cmt_type
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 299
    functionName: libxl_psr_cmt_get_sample
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__pick_socket_cpu
    - LOGED
    - xc_psr_cmt_get_data
    - xc_psr_cmt_get_domain_rmid
    - xc_psr_cmt_get_l3_upscaling_factor
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cmt_get_sample(libxl_ctx *ctx,\n                             uint32_t
      domid,\n                             libxl_psr_cmt_type type,\n                             uint64_t
      scope,\n                             uint64_t *sample_r,\n                             uint64_t
      *tsc_r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cmt_get_sample
      Src: /src/xen/tools/libs/light/libxl_psr.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - domid
    - socketid
    - l3_cache_occupancy
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 318
    functionName: libxl_psr_cmt_get_cache_occupancy
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cmt_get_sample
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cmt_get_cache_occupancy(libxl_ctx *ctx,\n                                      uint32_t
      domid,\n                                      uint32_t socketid,\n                                      uint32_t
      *l3_cache_occupancy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_psr.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - libxl_psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: libxl__psr_type_to_libxc_psr_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: xc_psr_type
    signature: "xc_psr_type libxl__psr_type_to_libxc_psr_type(\n    libxl_psr_type
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_set_val
      Src: /src/xen/tools/libs/light/libxl_psr.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - domid
    - type
    - target_map
    - cbm
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_psr_cbm_type
    - libxl_bitmap*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: libxl_psr_cat_set_cbm
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_set_val
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid,\n                          libxl_psr_cbm_type
      type, libxl_bitmap *target_map,\n                          uint64_t cbm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_get_val
      Src: /src/xen/tools/libs/light/libxl_psr.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - domid
    - type
    - target
    - cbm_r
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_psr_cbm_type
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: libxl_psr_cat_get_cbm
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_get_val
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid,\n                          libxl_psr_cbm_type
      type, uint32_t target,\n                          uint64_t *cbm_r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_psr.c:348,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_psr.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - type
    - lvl
    argTypes:
    - libxl_psr_feat_type
    - unsigned int
    assertStmts:
    - condition: (lvl == 3 || lvl == 2)
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/xen/tools/libs/light/libxl_psr.c
    - condition: (0)
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/xen/tools/libs/light/libxl_psr.c
    constantsTouched: []
    func_position:
      end: 364
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 364
    functionName: libxl__feat_type_to_libxc_feat_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: xc_psr_feat_type
    signature: "xc_psr_feat_type libxl__feat_type_to_libxc_feat_type(\n                            libxl_psr_feat_type
      type, unsigned int lvl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_psr.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - type
    - hw_info
    - cat_info
    argTypes:
    - libxl_psr_feat_type
    - libxl_psr_hw_info*
    - libxl_psr_cat_info*
    assertStmts:
    - condition: (type == LIBXL_PSR_FEAT_TYPE_CAT)
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/xen/tools/libs/light/libxl_psr.c
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: libxl__hw_info_to_libxl_cat_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__hw_info_to_libxl_cat_info(\n                libxl_psr_feat_type
      type, libxl_psr_hw_info *hw_info,\n                libxl_psr_cat_info *cat_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:381,1
    - Dst: libxl_psr_get_hw_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:387,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_psr.c:391,1
    - Dst: libxl__hw_info_to_libxl_cat_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:394,1
    - Dst: libxl_psr_hw_info_list_free
      Src: /src/xen/tools/libs/light/libxl_psr.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - info
    - nr
    - lvl
    argTypes:
    - libxl_ctx*
    - libxl_psr_cat_info**
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 403
    functionName: libxl_psr_cat_get_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_psr_get_hw_info
    - libxl__hw_info_to_libxl_cat_info
    - libxl_psr_hw_info_list_free
    - libxl__malloc
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cat_get_info(libxl_ctx *ctx, libxl_psr_cat_info **info,\n
      \                          unsigned int *nr, unsigned int lvl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cat_get_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - info
    - nr
    argTypes:
    - libxl_ctx*
    - libxl_psr_cat_info**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: libxl_psr_cat_get_l3_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cat_get_info
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_cat_get_l3_info(libxl_ctx *ctx, libxl_psr_cat_info **info,\n
      \                             int *nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cat_info_dispose
      Src: /src/xen/tools/libs/light/libxl_psr.c:423,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_psr.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_psr_cat_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: libxl_psr_cat_info_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_psr_cat_info_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_psr_cat_info_list_free(libxl_psr_cat_info *list, int nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:431,1
    - Dst: libxl__psr_type_to_libxc_psr_type
      Src: /src/xen/tools/libs/light/libxl_psr.c:433,1
    - Dst: libxl__count_physical_sockets
      Src: /src/xen/tools/libs/light/libxl_psr.c:435,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_psr.c:437,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_psr.c:441,1
    - Dst: xc_psr_set_domain_data
      Src: /src/xen/tools/libs/light/libxl_psr.c:445,1
    - Dst: libxl__psr_alloc_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ctx
    - domid
    - type
    - target_map
    - val
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_psr_type
    - libxl_bitmap*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 455
    functionName: libxl_psr_set_val
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - libxl__count_physical_sockets
    - libxl__psr_alloc_log_err_msg
    - xc_psr_set_domain_data
    - libxl_for_each_set_bit
    - libxl__psr_type_to_libxc_psr_type
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_set_val(libxl_ctx *ctx, uint32_t domid,\n                      libxl_psr_type
      type, libxl_bitmap *target_map,\n                      uint64_t val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:461,1
    - Dst: libxl__psr_type_to_libxc_psr_type
      Src: /src/xen/tools/libs/light/libxl_psr.c:463,1
    - Dst: xc_psr_get_domain_data
      Src: /src/xen/tools/libs/light/libxl_psr.c:465,1
    - Dst: libxl__psr_alloc_log_err_msg
      Src: /src/xen/tools/libs/light/libxl_psr.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - domid
    - type
    - target
    - val
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_psr_type
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 473
    functionName: libxl_psr_get_val
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 1
    functionsReached:
    - libxl__psr_type_to_libxc_psr_type
    - GC_INIT
    - xc_psr_get_domain_data
    - libxl__psr_alloc_log_err_msg
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_get_val(libxl_ctx *ctx, uint32_t domid,\n                      libxl_psr_type
      type, unsigned int target,\n                      uint64_t *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_psr.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - xc_info
    - xl_info
    argTypes:
    - libxl_psr_feat_type
    - xc_psr_hw_info*
    - libxl_psr_hw_info*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/xen/tools/libs/light/libxl_psr.c
    constantsTouched: []
    func_position:
      end: 493
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 493
    functionName: libxl__xc_hw_info_to_libxl_hw_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_hw_info_to_libxl_hw_info(\n                libxl_psr_feat_type
      type, xc_psr_hw_info *xc_info,\n                libxl_psr_hw_info *xl_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_psr.c:499,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_psr.c:507,1
    - Dst: libxl__feat_type_to_libxc_feat_type
      Src: /src/xen/tools/libs/light/libxl_psr.c:509,1
    - Dst: libxl__count_physical_sockets
      Src: /src/xen/tools/libs/light/libxl_psr.c:511,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_psr.c:513,1
    - Dst: libxl_socket_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_psr.c:517,1
    - Dst: libxl_get_online_socketmap
      Src: /src/xen/tools/libs/light/libxl_psr.c:518,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_psr.c:520,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_psr.c:524,1
    - Dst: xc_psr_get_hw_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:528,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_psr.c:530,1
    - Dst: libxl__xc_hw_info_to_libxl_hw_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:534,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_psr.c:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - ctx
    - type
    - lvl
    - nr
    - info
    argTypes:
    - libxl_ctx*
    - libxl_psr_feat_type
    - unsigned int
    - unsigned int*
    - libxl_psr_hw_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 545
    functionName: libxl_psr_get_hw_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - libxl__count_physical_sockets
    - libxl__xc_hw_info_to_libxl_hw_info
    - libxl_bitmap_dispose
    - libxl_socket_bitmap_alloc
    - free
    - libxl_bitmap_init
    - xc_psr_get_hw_info
    - libxl__malloc
    - libxl__feat_type_to_libxc_feat_type
    - LOGE
    - libxl_get_online_socketmap
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl_psr_get_hw_info(libxl_ctx *ctx, libxl_psr_feat_type type,\n
      \                         unsigned int lvl, unsigned int *nr,\n                          libxl_psr_hw_info
      **info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_psr_get_hw_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:528,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_psr.c:530,1
    - Dst: libxl__xc_hw_info_to_libxl_hw_info
      Src: /src/xen/tools/libs/light/libxl_psr.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 2
    functionsReached:
    - xc_psr_get_hw_info
    - free
    - libxl__xc_hw_info_to_libxl_hw_info
    linkageType: ''
    returnType: void
    signature: void libxl_for_each_set_bit(socketid, socketmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_hw_info_dispose
      Src: /src/xen/tools/libs/light/libxl_psr.c:552,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_psr.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_psr_hw_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 554
    functionName: libxl_psr_hw_info_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_psr.c
    functionUses: 1
    functionsReached:
    - free
    - libxl_psr_hw_info_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_psr_hw_info_list_free(libxl_psr_hw_info *list, unsigned
      int nr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:30,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:32,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_disk.c:35,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_disk.c:36,1
    - Dst: NEW_EVENT
      Src: /src/xen/tools/libs/light/libxl_disk.c:41,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_disk.c:44,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_disk.c:46,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_disk.c:55,1
    - Dst: STR
      Src: /src/xen/tools/libs/light/libxl_disk.c:56,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:59,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:60,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:61,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:63,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:69,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:72,1
    - Dst: libxl__event_occurred
      Src: /src/xen/tools/libs/light/libxl_disk.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - egc
    - w
    - wpath
    - epath
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 78
    functionName: disk_eject_xswatch_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - LIBXL__EVENT_DISASTER
    - libxl__event_occurred
    - libxl__xs_read
    - libxl__xs_printf
    - libxl__strdup
    - STR
    - sscanf
    - strdup
    - strcmp
    - libxl__xs_read_checked
    - NEW_EVENT
    linkageType: ''
    returnType: void
    signature: "void disk_eject_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch
      *w,\n                                        const char *wpath, const char *epath)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_disk.c:83,1
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_disk.c:89,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_disk.c:90,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_disk.c:93,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:95,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:100,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:102,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:103,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:107,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:109,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_disk.c:112,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:113,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:116,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_disk.c:118,1
    - Dst: libxl__evdisable_disk_eject
      Src: /src/xen/tools/libs/light/libxl_disk.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - ctx
    - guest_domid
    - vdev
    - user
    - evgen_out
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - libxl_ev_user
    - libxl_evgen_disk_eject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 133
    functionName: libxl_evenable_disk_eject
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - libxl__device_disk_dev_number
    - libxl__evdisable_disk_eject
    - malloc
    - libxl__xs_read_checked
    - libxl__sprintf
    - libxl__ev_xswatch_register
    - libxl__strdup
    - XEN_LIST_INSERT_HEAD
    - libxl_get_stubdom_id
    - memset
    - libxl__domain_device_frontend_path
    linkageType: ''
    returnType: int
    signature: "int libxl_evenable_disk_eject(libxl_ctx *ctx, uint32_t guest_domid,\n
      \                             const char *vdev, libxl_ev_user user,\n                              libxl_evgen_disk_eject
      **evgen_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_disk.c:138,1
    - Dst: libxl__ev_xswatch_isregistered
      Src: /src/xen/tools/libs/light/libxl_disk.c:140,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_disk.c:141,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:143,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:144,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - evg
    argTypes:
    - libxl__gc*
    - libxl_evgen_disk_eject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: libxl__evdisable_disk_eject
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - free
    - XEN_LIST_REMOVE
    - libxl__ev_xswatch_isregistered
    - libxl__ev_xswatch_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__evdisable_disk_eject(libxl__gc *gc, libxl_evgen_disk_eject
      *evg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_disk.c:151,1
    - Dst: libxl__evdisable_disk_eject
      Src: /src/xen/tools/libs/light/libxl_disk.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - evg
    argTypes:
    - libxl_ctx*
    - libxl_evgen_disk_eject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: libxl_evdisable_disk_eject
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__evdisable_disk_eject
    linkageType: ''
    returnType: void
    signature: void libxl_evdisable_disk_eject(libxl_ctx *ctx, libxl_evgen_disk_eject
      *evg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:161,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:162,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:163,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:164,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_disk.c:166,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:174,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:182,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:187,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:192,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_disk.c:198,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:204,1
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_disk.c:217,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_disk.c:218,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:222,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:224,1
    - Dst: creat
      Src: /src/xen/tools/libs/light/libxl_disk.c:226,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_disk.c:228,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_disk.c:233,1
    - Dst: libxl__device_disk_set_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:236,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 4
    argNames:
    - gc
    - domid
    - disk
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_disk*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 238
    functionName: libxl__device_disk_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - creat
    - libxl__resolve_domid
    - LOGD
    - free
    - libxl_defbool_setdefault
    - close
    - LOGED
    - libxl__sprintf
    - libxl_is_stubdom
    - libxl__domain_type
    - libxl__device_disk_set_backend
    linkageType: ''
    returnType: int
    signature: "int libxl__device_disk_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                        libxl_device_disk *disk, bool hotplug)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:246,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:248,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - gc
    - domid
    - disk
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_disk*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 281
    functionName: libxl__device_from_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - LOGD
    - libxl__device_disk_dev_number
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,\n                                   const
      libxl_device_disk *disk,\n                                   libxl__device *device)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:301,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:313,1
    - Dst: libxl_device_disk_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:314,1
    - Dst: libxl_device_disk_copy
      Src: /src/xen/tools/libs/light/libxl_disk.c:315,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_disk.c:317,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_disk.c:331,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_disk.c:337,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_disk.c:340,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_disk.c:343,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_disk.c:348,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:352,1
    - Dst: get_vdev
      Src: /src/xen/tools/libs/light/libxl_disk.c:353,1
    - Dst: libxl__device_disk_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:360,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_disk.c:363,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_disk.c:364,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_disk.c:366,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:367,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:369,1
    - Dst: libxl__device_exists
      Src: /src/xen/tools/libs/light/libxl_disk.c:374,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:377,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:387,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:388,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:390,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:391,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:392,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:394,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:399,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:400,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:402,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:405,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:406,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:406,1
    - Dst: libxl__device_disk_string_of_format
      Src: /src/xen/tools/libs/light/libxl_disk.c:407,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:410,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:411,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:412,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:414,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:417,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:418,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:418,1
    - Dst: libxl__device_disk_string_of_format
      Src: /src/xen/tools/libs/light/libxl_disk.c:419,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_disk.c:421,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:422,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:423,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:423,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:424,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:425,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:425,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:426,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:427,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:427,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:428,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:429,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:429,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:430,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:431,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:431,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:433,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:436,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:442,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:443,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:443,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:444,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:445,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:446,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:447,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:447,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:448,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:449,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:449,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:450,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:451,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:451,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:452,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:453,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:454,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:455,1
    - Dst: libxl__device_disk_string_of_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:455,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:456,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:457,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:458,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:459,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:461,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:462,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:464,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_disk.c:465,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:467,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:468,1
    - Dst: libxl__device_disk_string_of_specification
      Src: /src/xen/tools/libs/light/libxl_disk.c:468,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:470,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:471,1
    - Dst: libxl__device_disk_string_of_transport
      Src: /src/xen/tools/libs/light/libxl_disk.c:471,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:472,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:472,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:473,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:473,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:474,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_disk.c:475,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:478,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:479,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:479,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:480,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:481,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:481,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:482,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:483,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:483,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:484,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:485,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:486,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:487,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_disk.c:487,1
    - Dst: xc_domain_get_native_protocol
      Src: /src/xen/tools/libs/light/libxl_disk.c:499,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:501,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_disk.c:502,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:502,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_disk.c:507,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_disk.c:511,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_disk.c:512,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_disk.c:513,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_disk.c:516,1
    - Dst: libxl__wait_device_connection
      Src: /src/xen/tools/libs/light/libxl_disk.c:523,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_disk.c:528,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_disk.c:529,1
    - Dst: libxl_device_disk_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:530,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:531,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_disk.c:533,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 187
    argCount: 6
    argNames:
    - egc
    - domid
    - disk
    - aodev
    - "get_vdev(libxl__gc *, void *,\n                                          xs_transaction_t)"
    - get_vdev_user
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_disk*
    - libxl__ao_device*
    - char*
    - void*
    assertStmts:
    - condition: (device->backend_kind == LIBXL__DEVICE_KIND_VIRTIO_DISK)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    - condition: (get_vdev_user)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    - condition: (device->backend_kind == LIBXL__DEVICE_KIND_QDISK)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    - condition: (device->backend_kind == LIBXL__DEVICE_KIND_VBD)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    - condition: (device->backend_kind == LIBXL__DEVICE_KIND_VBD3)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 535
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 535
    functionName: device_disk_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - libxl__wait_device_connection
    - libxl__device_exists
    - libxl_domain_config_init
    - flexarray_append_pair
    - libxl__device_disk_string_of_backend
    - libxl__xs_transaction_start
    - libxl__ao_device*::callback
    - flexarray_make
    - libxl__dm_check_start
    - xc_domain_get_native_protocol
    - libxl_defbool_val
    - libxl__device_disk_string_of_transport
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__device_disk_string_of_specification
    - libxl__lock_domain_userdata
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW
    - libxl__sprintf
    - libxl__xs_transaction_abort
    - libxl__strdup
    - libxl__set_domain_configuration
    - libxl__get_domain_configuration
    - get_vdev
    - libxl_device_disk_init
    - flexarray_append
    - libxl__device_disk_string_of_format
    - libxl_device_disk_copy
    - libxl__xs_transaction_commit
    - LOGD
    - libxl__xen_script_dir_path
    - libxl__device_generic_add
    - libxl__device_disk_setdefault
    - libxl__abs_path
    - libxl__device_from_disk
    - libxl_device_disk_dispose
    - assert
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: "void device_disk_add(libxl__egc *egc, uint32_t domid,\n                           libxl_device_disk
      *disk,\n                           libxl__ao_device *aodev,\n                           char
      *get_vdev(libxl__gc *, void *,\n                                          xs_transaction_t),\n
      \                          void *get_vdev_user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: device_disk_add
      Src: /src/xen/tools/libs/light/libxl_disk.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - domid
    - disk
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_disk*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: libxl__device_disk_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - device_disk_add
    linkageType: ''
    returnType: void
    signature: "void libxl__device_disk_add(libxl__egc *egc, uint32_t domid,\n                                   libxl_device_disk
      *disk,\n                                   libxl__ao_device *aodev)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_disk.c:548,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_disk.c:554,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:555,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:560,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_disk.c:565,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:567,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:577,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:578,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_disk.c:579,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:580,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_disk.c:580,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:581,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:586,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:587,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_disk.c:589,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:592,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:593,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:595,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_disk.c:598,1
    - Dst: XS_READ_COLO
      Src: /src/xen/tools/libs/light/libxl_disk.c:609,1
    - Dst: XS_READ_COLO
      Src: /src/xen/tools/libs/light/libxl_disk.c:610,1
    - Dst: XS_READ_COLO
      Src: /src/xen/tools/libs/light/libxl_disk.c:611,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_disk.c:614,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:617,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:618,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:620,1
    - Dst: libxl_string_to_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:623,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:625,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:626,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:628,1
    - Dst: libxl_disk_specification_from_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:631,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:633,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:639,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:640,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:642,1
    - Dst: libxl_disk_transport_from_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:645,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:647,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:651,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:655,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:656,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:658,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:661,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:663,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:664,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:666,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:669,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:671,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:672,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_disk.c:674,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_disk.c:677,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:677,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:680,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:681,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:683,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:687,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:687,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:690,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_disk.c:693,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:695,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:695,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:697,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:700,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:705,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:706,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:708,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:711,1
    - Dst: libxl_device_disk_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:719,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 135
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - disk
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 721
    functionName: libxl__disk_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - xs_read
    - strchr
    - strcmp
    - free
    - libxl__backendpath_parse_domid
    - libxl__xs_read_checked
    - GCSPRINTF
    - libxl_disk_specification_from_string
    - XS_READ_COLO
    - libxl_disk_transport_from_string
    - libxl__sprintf
    - strdup
    - LOG
    - libxl__gc_owner
    - libxl__xs_read
    - libxl_string_to_backend
    - libxl_defbool_set
    - libxl_device_disk_dispose
    - atoi
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__disk_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                    libxl_devid devid,\n                                     libxl_device_disk
      *disk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - param
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: XS_READ_COLO
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XS_READ_COLO(param, item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:731,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:732,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:733,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_disk.c:735,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:739,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:740,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:741,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_disk.c:743,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - gc
    - domid
    - path
    argTypes:
    - libxl__gc*
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 757
    functionName: libxl__device_disk_get_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__xs_libxl_path
    - libxl__device_kind_to_string
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__device_disk_get_path(libxl__gc *gc, uint32_t domid,\n                                       char
      **path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_disk.c:762,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:764,1
    - Dst: libxl_device_disk_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:770,1
    - Dst: libxl__device_disk_get_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:772,1
    - Dst: libxl__disk_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_disk.c:776,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - domid
    - vdev
    - disk
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 759
    functionDepth: 4
    functionLinenumber: 759
    functionLinenumberEnd: 781
    functionName: libxl_vdev_to_device_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__disk_from_xenstore
    - GCSPRINTF
    - libxl__device_disk_dev_number
    - libxl__device_disk_get_path
    - libxl_device_disk_init
    linkageType: ''
    returnType: int
    signature: "int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid,\n                              const
      char *vdev, libxl_device_disk *disk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_disk.c:787,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:795,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:800,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:802,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:804,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:805,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_disk.c:810,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:814,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:814,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:815,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:816,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:816,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:817,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:818,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:818,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_disk.c:819,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:820,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:821,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - ctx
    - domid
    - disk
    - diskinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_disk*
    - libxl_diskinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 830
    functionName: libxl_device_disk_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - libxl__device_disk_dev_number
    - free
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,\n                              const
      libxl_device_disk *disk,\n                              libxl_diskinfo *diskinfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:846,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:860,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:865,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:871,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:876,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:881,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:886,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:891,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:892,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_disk.c:893,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - gc
    - response
    - devid
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 901
    functionName: query_fdsets_find_fdset
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_string
    - GCSPRINTF
    - libxl__json_array_get
    - libxl__json_map_get
    - strcmp
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int query_fdsets_find_fdset(libxl__gc *gc,\n                                   const
      libxl__json_object *response,\n                                   int devid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_disk.c:960,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_disk.c:967,1
    - Dst: libxl_device_disk_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:971,1
    - Dst: libxl_device_disk_copy
      Src: /src/xen/tools/libs/light/libxl_disk.c:972,1
    - Dst: libxl__ev_devlock_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:973,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:976,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:977,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:979,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_disk.c:984,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:990,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_disk.c:995,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:997,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:1002,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_disk.c:1010,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_disk.c:1012,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1020,1
    - Dst: libxl__device_disk_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:1025,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1029,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_disk.c:1034,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1036,1
    - Dst: libxl__ev_slowlock_lock
      Src: /src/xen/tools/libs/light/libxl_disk.c:1039,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 4
    argNames:
    - ctx
    - domid
    - disk
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_disk*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 1042
    functionName: libxl_cdrom_insert
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__device_list_free
    - LOGD
    - GCNEW
    - libxl__domain_type
    - libxl__device_model_version_running
    - libxl__ev_devlock_init
    - libxl__ev_qmp_init
    - libxl__strdup
    - cdrom_insert_done
    - libxl__ev_time_init
    - libxl__device_list
    - libxl_get_stubdom_id
    - libxl_device_disk_init
    - libxl__device_disk_setdefault
    - strcmp
    - libxl__ev_slowlock_lock
    - libxl_device_disk_copy
    linkageType: ''
    returnType: int
    signature: "int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk
      *disk,\n                       const libxl_asyncop_how *ao_how)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1048,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1049,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_disk.c:1053,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1068,1
    - Dst: cdrom_insert_ejected
      Src: /src/xen/tools/libs/light/libxl_disk.c:1071,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - egc
    - lock
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_slowlock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1077
    functionName: cdrom_insert_lock_acquired
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__ev_qmp_send
    - cdrom_insert_done
    - cdrom_insert_ejected
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_lock_acquired(libxl__egc *egc,\n                                       libxl__ev_slowlock
      *lock,\n                                       int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1083,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1084,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1086,1
    - Dst: libxl__qmp_ev_qemu_compare_version
      Src: /src/xen/tools/libs/light/libxl_disk.c:1095,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1096,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1098,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:1100,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1105,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1110
    functionName: cdrom_insert_qmp_connected
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__device_disk_dev_number
    - libxl__qmp_ev_qemu_compare_version
    - QMP_PARAMETERS_SPRINTF
    - libxl__ev_qmp_send
    - cdrom_insert_done
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_qmp_connected(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                      const libxl__json_object *response,\n
      \                                      int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1117,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1122,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1126,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - egc
    - qmp
    - resp
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts:
    - condition: (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1133
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1133
    functionName: cdrom_insert_stubdom_query_fdset_rm
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - assert
    - cdrom_insert_done
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_query_fdset_rm(libxl__egc *egc,\n                                                libxl__ev_qmp
      *qmp,\n                                                const libxl__json_object
      *resp,\n                                                int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1141,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1148,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1150,1
    - Dst: query_fdsets_find_fdset
      Src: /src/xen/tools/libs/light/libxl_disk.c:1151,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1157,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_disk.c:1161,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1165,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1172,1
    - Dst: cdrom_insert_stubdom_ejected
      Src: /src/xen/tools/libs/light/libxl_disk.c:1173,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - egc
    - qmp
    - resp
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts:
    - condition: (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1177
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1177
    functionName: cdrom_insert_stubdom_parse_fdset_rm
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - cdrom_insert_stubdom_ejected
    - CONTAINER_OF
    - query_fdsets_find_fdset
    - LOGD
    - libxl__device_disk_dev_number
    - libxl__ev_qmp_send
    - cdrom_insert_done
    - libxl__qmp_param_add_integer
    - assert
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_parse_fdset_rm(libxl__egc *egc,\n                                                libxl__ev_qmp
      *qmp,\n                                                const libxl__json_object
      *resp,\n                                                int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1184,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1186,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_disk.c:1191,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1192,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_disk.c:1196,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_disk.c:1201,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1206
    functionName: cdrom_insert_stubdom_ejected
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCNEW
    - libxl__initiate_device_generic_remove
    - libxl__prepare_ao_device
    - cdrom_insert_done
    - libxl__device_from_disk
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_ejected(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                        const libxl__json_object *response,\n
      \                                        int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1211,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1212,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1216,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_disk.c:1222,1
    - Dst: libxl__device_disk_add
      Src: /src/xen/tools/libs/light/libxl_disk.c:1225,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1208
    functionDepth: 7
    functionLinenumber: 1208
    functionLinenumberEnd: 1231
    functionName: cdrom_insert_stubdom_disk_remove_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__prepare_ao_device
    - cdrom_insert_done
    - libxl__device_disk_add
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_disk_remove_cb(libxl__egc *egc,\n                                                 libxl__ao_device
      *aodev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1237,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1240,1
    - Dst: cdrom_insert_stubdom_query_fdset
      Src: /src/xen/tools/libs/light/libxl_disk.c:1245,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1251
    functionName: cdrom_insert_stubdom_disk_add_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - cdrom_insert_done
    - cdrom_insert_stubdom_query_fdset
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_disk_add_cb(libxl__egc *egc,\n                                             libxl__ao_device
      *aodev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1259,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1264,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1268,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts:
    - condition: (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
      pos:
        line_end: 1263
        line_start: 1263
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1275
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1275
    functionName: cdrom_insert_stubdom_query_fdset
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - assert
    - cdrom_insert_done
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_query_fdset(libxl__egc *egc,\n                                             libxl__ev_time
      *ev,\n                                             const struct timeval *requested_abs,\n
      \                                            int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1283,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1290,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1292,1
    - Dst: query_fdsets_find_fdset
      Src: /src/xen/tools/libs/light/libxl_disk.c:1293,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_disk.c:1296,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1308,1
    - Dst: cdrom_insert_ejected
      Src: /src/xen/tools/libs/light/libxl_disk.c:1309,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts:
    - condition: (cis->dm_ver == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN)
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1314
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1314
    functionName: cdrom_insert_stubdom_parse_fdset
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - query_fdsets_find_fdset
    - libxl__device_disk_dev_number
    - LOGD
    - cdrom_insert_done
    - cdrom_insert_ejected
    - assert
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_stubdom_parse_fdset(libxl__egc *egc,\n                                             libxl__ev_qmp
      *qmp,\n                                             const libxl__json_object
      *response,\n                                             int rc)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1322,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:1336,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1340,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1342,1
    - Dst: libxl__device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1343,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_disk.c:1345,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_disk.c:1351,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:1352,1
    - Dst: libxl__device_disk_string_of_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:1353,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:1354,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_disk.c:1357,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:1360,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1360,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1363,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1364,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_disk.c:1369,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1371,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1374,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_disk.c:1377,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_disk.c:1386,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_disk.c:1389,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_disk.c:1392,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:1396,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1400,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_disk.c:1401,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_disk.c:1403,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1410,1
    - Dst: libxl_disk_format_to_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1411,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1414,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_disk.c:1424,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:1425,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_disk.c:1426,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1428,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:1431,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1433,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_disk.c:1435,1
    - Dst: cdrom_insert_addfd_cb
      Src: /src/xen/tools/libs/light/libxl_disk.c:1436,1
    - Dst: cdrom_insert_inserted
      Src: /src/xen/tools/libs/light/libxl_disk.c:1438,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts:
    - condition: (qmp->payload_fd == -1)
      pos:
        line_end: 1399
        line_start: 1399
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1441
      start: 1316
    functionDepth: 5
    functionLinenumber: 1316
    functionLinenumberEnd: 1441
    functionName: cdrom_insert_ejected
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 2
    functionsReached:
    - cdrom_insert_addfd_cb
    - libxl_domain_config_init
    - libxl_disk_format_to_string
    - flexarray_append_pair
    - libxl__device_disk_string_of_backend
    - libxl__ev_qmp_send
    - libxl__xs_transaction_start
    - LOGED
    - flexarray_make
    - libxl__device_libxl_path
    - libxl__dm_check_start
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl_get_stubdom_id
    - libxl__lock_domain_userdata
    - CONTAINER_OF
    - GCSPRINTF
    - open
    - libxl__xs_transaction_abort
    - libxl__get_domain_configuration
    - cdrom_insert_inserted
    - libxl__xs_transaction_commit
    - LOGD
    - libxl__xs_writev
    - libxl__device_backend_path
    - libxl__xs_read
    - QMP_PARAMETERS_SPRINTF
    - cdrom_insert_done
    - libxl__device_from_disk
    - assert
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_ejected(libxl__egc *egc,\n                                 libxl__ev_qmp
      *qmp,\n                                 const libxl__json_object *response,\n
      \                                int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1449,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_disk.c:1460,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_disk.c:1468,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_disk.c:1473,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1478,1
    - Dst: libxl__qmp_ev_qemu_compare_version
      Src: /src/xen/tools/libs/light/libxl_disk.c:1486,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1487,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1488,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1490,1
    - Dst: libxl__qemu_disk_format_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1491,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1494,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1496,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1498,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1499,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1500,1
    - Dst: libxl__qemu_disk_format_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1501,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_disk.c:1502,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1506,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1507
    functionName: cdrom_insert_addfd_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__device_disk_dev_number
    - libxl__qmp_ev_qemu_compare_version
    - close
    - QMP_PARAMETERS_SPRINTF
    - libxl__ev_qmp_send
    - libxl__qemu_disk_format_string
    - cdrom_insert_done
    - libxl__json_map_get
    - libxl__qmp_param_add_string
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_addfd_cb(libxl__egc *egc,\n                                  libxl__ev_qmp
      *qmp,\n                                  const libxl__json_object *response,\n
      \                                 int rc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1515,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_disk.c:1528,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1532,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1534,1
    - Dst: libxl__device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1535,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_disk.c:1537,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_disk.c:1543,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_disk.c:1546,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_disk.c:1549,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:1550,1
    - Dst: libxl__device_disk_string_of_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:1551,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:1554,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1555,1
    - Dst: libxl__device_disk_string_of_format
      Src: /src/xen/tools/libs/light/libxl_disk.c:1556,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_disk.c:1559,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_disk.c:1563,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:1566,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1566,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1569,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1570,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_disk.c:1575,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_disk.c:1578,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1580,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1583,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_disk.c:1586,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_disk.c:1594,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:1595,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_disk.c:1596,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1597,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1509
    functionDepth: 5
    functionLinenumber: 1509
    functionLinenumberEnd: 1598
    functionName: cdrom_insert_inserted
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - libxl_domain_config_init
    - flexarray_append_pair
    - libxl__device_disk_string_of_backend
    - libxl__xs_transaction_start
    - flexarray_make
    - libxl__device_libxl_path
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__lock_domain_userdata
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__xs_transaction_abort
    - libxl__set_domain_configuration
    - libxl__get_domain_configuration
    - libxl__device_disk_string_of_format
    - libxl__xs_transaction_commit
    - LOGD
    - libxl__xs_writev
    - libxl__device_backend_path
    - libxl__xs_read
    - cdrom_insert_done
    - libxl__device_from_disk
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_inserted(libxl__egc *egc,\n                                  libxl__ev_qmp
      *qmp,\n                                  const libxl__json_object *response,\n
      \                                 int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1605,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1606,1
    - Dst: cdrom_insert_done
      Src: /src/xen/tools/libs/light/libxl_disk.c:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1608
    functionName: cdrom_insert_timout
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - cdrom_insert_done
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_timout(libxl__egc *egc, libxl__ev_time *ev,\n                                const
      struct timeval *requested_abs,\n                                int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_disk.c:1616,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_disk.c:1617,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:1618,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_disk.c:1619,1
    - Dst: libxl__ev_slowlock_unlock
      Src: /src/xen/tools/libs/light/libxl_disk.c:1620,1
    - Dst: libxl_device_disk_dispose
      Src: /src/xen/tools/libs/light/libxl_disk.c:1621,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_disk.c:1622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - cis
    - rc
    argTypes:
    - libxl__egc*
    - libxl__cdrom_insert_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1623
    functionName: cdrom_insert_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 14
    functionsReached:
    - libxl__ev_slowlock_unlock
    - close
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - libxl__ao_complete
    - libxl_device_disk_dispose
    linkageType: ''
    returnType: void
    signature: "void cdrom_insert_done(libxl__egc *egc,\n                              libxl__cdrom_insert_state
      *cis,\n                              int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1633,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1635,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_disk.c:1640,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1640,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:1644,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1644,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1645,1
    - Dst: libxl__devid_to_vdev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - get_vdev_user
    - t
    argTypes:
    - libxl__gc*
    - void*
    - xs_transaction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1656
    functionName: libxl__alloc_vdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__device_disk_dev_number
    - libxl__devid_to_vdev
    - libxl__xs_read
    - libxl__domain_device_libxl_path
    - LOG
    linkageType: ''
    returnType: char
    signature: "char * libxl__alloc_vdev(libxl__gc *gc, void *get_vdev_user,\n        xs_transaction_t
      t)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1669,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1679,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1680,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1689,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1690,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1704,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1708,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1712,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:1714,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1716,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_disk.c:1717,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1720,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_disk.c:1724,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1725,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_disk.c:1729,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - gc
    - guest_domid
    - disk
    - qdisk_direct
    argTypes:
    - libxl__gc*
    - libxl_domid
    - libxl_device_disk*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1738
    functionName: libxl__device_disk_find_local_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - LOGD
    - libxl__device_backend_path
    - libxl__xs_read
    - libxl__sprintf
    - libxl__strdup
    - libxl__device_from_disk
    - LOG
    linkageType: ''
    returnType: char
    signature: "char *libxl__device_disk_find_local_path(libxl__gc *gc,\n                                          libxl_domid
      guest_domid,\n                                          const libxl_device_disk
      *disk,\n                                          bool qdisk_direct)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1745,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1751,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1756,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1758,1
    - Dst: libxl__device_disk_find_local_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1760,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1763,1
    - Dst: libxl__disk_local_state*::callback
      Src: /src/xen/tools/libs/light/libxl_disk.c:1764,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1766,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_disk.c:1768,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1769,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1771,1
    - Dst: libxl__device_disk_setdefault
      Src: /src/xen/tools/libs/light/libxl_disk.c:1774,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_disk.c:1778,1
    - Dst: device_disk_add
      Src: /src/xen/tools/libs/light/libxl_disk.c:1780,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1787,1
    - Dst: libxl__device_disk_local_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_disk.c:1789,1
    - Dst: libxl__disk_local_state*::callback
      Src: /src/xen/tools/libs/light/libxl_disk.c:1790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - egc
    - dls
    argTypes:
    - libxl__egc*
    - libxl__disk_local_state*
    assertStmts:
    - condition: (in_disk->pdev_path)
      pos:
        line_end: 1750
        line_start: 1750
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    - condition: (rc)
      pos:
        line_end: 1786
        line_start: 1786
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1791
      start: 1742
    functionDepth: 6
    functionLinenumber: 1742
    functionLinenumberEnd: 1791
    functionName: libxl__device_disk_local_initiate_attach
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__device_disk_find_local_path
    - libxl__disk_local_state*::callback
    - libxl__prepare_ao_device
    - libxl__device_disk_local_initiate_detach
    - device_disk_add
    - libxl__strdup
    - libxl__device_disk_setdefault
    - LOG
    - memcpy
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__device_disk_local_initiate_attach(libxl__egc *egc,\n                                     libxl__disk_local_state
      *dls)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1795,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1796,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_disk.c:1804,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1808,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_disk.c:1811,1
    - Dst: libxl__wait_for_backend
      Src: /src/xen/tools/libs/light/libxl_disk.c:1812,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1812,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1816,1
    - Dst: libxl__devid_to_localdev
      Src: /src/xen/tools/libs/light/libxl_disk.c:1817,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_disk.c:1818,1
    - Dst: libxl__disk_local_state*::callback
      Src: /src/xen/tools/libs/light/libxl_disk.c:1820,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_disk.c:1824,1
    - Dst: libxl__device_disk_local_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_disk.c:1826,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1823
        line_start: 1823
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    constantsTouched: []
    func_position:
      end: 1828
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1828
    functionName: local_device_attach_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__device_backend_path
    - libxl__disk_local_state*::callback
    - libxl__device_disk_local_initiate_detach
    - libxl__devid_to_localdev
    - libxl__wait_for_backend
    - LOGE
    - libxl__device_from_disk
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: void local_device_attach_cb(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1837,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_disk.c:1842,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_disk.c:1847,1
    - Dst: libxl__device_from_disk
      Src: /src/xen/tools/libs/light/libxl_disk.c:1848,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_disk.c:1856,1
    - Dst: local_device_detach_cb
      Src: /src/xen/tools/libs/light/libxl_disk.c:1862,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - egc
    - dls
    argTypes:
    - libxl__egc*
    - libxl__disk_local_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1834
    functionDepth: 2
    functionLinenumber: 1834
    functionLinenumberEnd: 1864
    functionName: libxl__device_disk_local_initiate_detach
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCNEW
    - libxl__initiate_device_generic_remove
    - libxl__prepare_ao_device
    - local_device_detach_cb
    - libxl__device_from_disk
    linkageType: ''
    returnType: void
    signature: "void libxl__device_disk_local_initiate_detach(libxl__egc *egc,\n                                     libxl__disk_local_state
      *dls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_disk.c:1868,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_disk.c:1869,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_disk.c:1873,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1874,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_disk.c:1875,1
    - Dst: libxl__disk_local_state*::callback
      Src: /src/xen/tools/libs/light/libxl_disk.c:1887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1889
    functionName: local_device_detach_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__disk_local_state*::callback
    - LOGED
    - libxl__device_kind_to_string
    - libxl__device_action_to_string
    linkageType: ''
    returnType: void
    signature: void local_device_detach_cb(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_DISK
      Src: /src/xen/tools/libs/light/libxl_disk.c:1906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_disk*
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: libxl_device_disk_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - COMPARE_DISK
    linkageType: ''
    returnType: int
    signature: "int libxl_device_disk_compare(const libxl_device_disk *d1,\n                                     const
      libxl_device_disk *d2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_disk.c:1923,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_disk.c:1930,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_disk.c:1931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - d1
    - d2
    argTypes:
    - libxl_ctx*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1938
    functionName: libxl_device_disk_merge
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached:
    - free
    - GC_INIT
    - libxl__strdup
    linkageType: ''
    returnType: void
    signature: void libxl_device_disk_merge(libxl_ctx *ctx, void *d1, void *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - e
    - domid
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1946
    functionName: libxl_device_disk_dm_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_disk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_device_disk_dm_needed(void *e, unsigned domid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpupool_getinfo
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:32,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:36,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:42,1
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:48,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:55,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:59,1
    - Dst: xc_cpupool_infofree
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:63,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - gc
    - info
    - poolid
    - exact
    argTypes:
    - libxl__gc*
    - libxl_cpupoolinfo*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 65
    functionName: cpupool_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - xc_cpupool_getinfo
    - libxl_cpu_bitmap_alloc
    - LOGE
    - LOG
    - libxl_cpupoolid_to_name
    - memcpy
    - xc_cpupool_infofree
    linkageType: ''
    returnType: int
    signature: "int cpupool_info(libxl__gc *gc,\n                        libxl_cpupoolinfo
      *info,\n                        uint32_t poolid,\n                        bool
      exact /* exactly poolid or >= poolid */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:70,1
    - Dst: cpupool_info
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - info
    - poolid
    argTypes:
    - libxl_ctx*
    - libxl_cpupoolinfo*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: libxl_cpupool_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - cpupool_info
    linkageType: ''
    returnType: int
    signature: "int libxl_cpupool_info(libxl_ctx *ctx,\n                       libxl_cpupoolinfo
      *info, uint32_t poolid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:78,1
    - Dst: libxl_cpupoolinfo_init
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:88,1
    - Dst: cpupool_info
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:89,1
    - Dst: libxl_cpupoolinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:90,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:95,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - nb_pool_out
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 111
    functionName: libxl_list_cpupool
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__realloc
    - cpupool_info
    - libxl_cpupoolinfo_init
    - libxl_cpupoolinfo_dispose
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: libxl_cpupoolinfo
    signature: libxl_cpupoolinfo * libxl_list_cpupool(libxl_ctx *ctx, int *nb_pool_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_max_cpus
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:117,1
    - Dst: xc_cpupool_freeinfo
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - cpumap
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: libxl_get_freecpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - xc_cpupool_freeinfo
    - libxl_get_max_cpus
    linkageType: ''
    returnType: int
    signature: int libxl_get_freecpus(libxl_ctx *ctx, libxl_bitmap *cpumap)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:135,1
    - Dst: libxl__uuid2string
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:149,1
    - Dst: xc_cpupool_create
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:155,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:157,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:163,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:164,1
    - Dst: xc_cpupool_addcpu
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:165,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:167,1
    - Dst: libxl_cpupool_destroy
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:168,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:175,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:177,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:177,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:178,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:179,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:181,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:182,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 6
    argNames:
    - ctx
    - name
    - sched
    - cpumap
    - uuid
    - poolid
    argTypes:
    - libxl_ctx*
    - char*
    - libxl_scheduler
    - libxl_bitmap
    - libxl_uuid*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 190
    functionName: libxl_cpupool_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - GC_INIT
    - xs_mkdir
    - GCSPRINTF
    - xs_transaction_end
    - xc_cpupool_create
    - xs_transaction_start
    - libxl__xs_printf
    - LOGEV
    - libxl_for_each_bit
    - libxl__uuid2string
    - libxl_cpupool_destroy
    - xc_cpupool_addcpu
    linkageType: ''
    returnType: int
    signature: "int libxl_cpupool_create(libxl_ctx *ctx, const char *name,\n                         libxl_scheduler
      sched,\n                         libxl_bitmap cpumap, libxl_uuid *uuid,\n                         uint32_t
      *poolid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:194,1
    - Dst: xc_cpupool_getinfo
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:200,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:210,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:214,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:215,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:216,1
    - Dst: xc_cpupool_removecpu
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:217,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:219,1
    - Dst: xc_cpupool_destroy
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:225,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:227,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:233,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:235,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:235,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:237,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:244,1
    - Dst: xc_cpupool_infofree
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:246,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - ctx
    - poolid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 250
    functionName: libxl_cpupool_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_test
    - GC_INIT
    - xs_rm
    - xc_cpupool_getinfo
    - GCSPRINTF
    - libxl_bitmap_dispose
    - xc_cpupool_removecpu
    - xs_transaction_start
    - xc_cpupool_destroy
    - libxl_cpu_bitmap_alloc
    - LOGEV
    - libxl_for_each_bit
    - xs_transaction_end
    - memcpy
    - xc_cpupool_infofree
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_destroy(libxl_ctx *ctx, uint32_t poolid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:254,1
    - Dst: xc_cpupool_getinfo
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:259,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:272,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:274,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:275,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:278,1
    - Dst: xc_cpupool_infofree
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - name
    - poolid
    argTypes:
    - libxl_ctx*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 293
    functionName: libxl_cpupool_rename
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_cpupool_getinfo
    - GCSPRINTF
    - xs_transaction_start
    - libxl__xs_printf
    - xs_transaction_end
    - xc_cpupool_infofree
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_rename(libxl_ctx *ctx, const char *name, uint32_t
      poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:297,1
    - Dst: xc_cpupool_addcpu
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:300,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - poolid
    - cpu
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: libxl_cpupool_cpuadd
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGE
    - xc_cpupool_addcpu
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_cpuadd(libxl_ctx *ctx, uint32_t poolid, int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:315,1
    - Dst: libxl_cpupool_cpuadd
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:316,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - poolid
    - cpumap
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 324
    functionName: libxl_cpupool_cpuadd_cpumap
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_count_set
    - libxl_cpupool_cpuadd
    - libxl_for_each_set_bit
    linkageType: ''
    returnType: int
    signature: "int libxl_cpupool_cpuadd_cpumap(libxl_ctx *ctx, uint32_t poolid,\n
      \                               const libxl_bitmap *cpumap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_freecpus
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:333,1
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:337,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:345,1
    - Dst: libxl_cpupool_cpuadd
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:346,1
    - Dst: libxl_cputopology_dispose
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:349,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:352,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - poolid
    - node
    - cpus
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 356
    functionName: libxl_cpupool_cpuadd_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_get_freecpus
    - libxl_bitmap_test
    - libxl_bitmap_dispose
    - free
    - libxl_cputopology_dispose
    - libxl_cpupool_cpuadd
    - libxl_get_cpu_topology
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_cpuadd_node(libxl_ctx *ctx, uint32_t poolid, int
      node, int *cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:360,1
    - Dst: xc_cpupool_removecpu
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:363,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - poolid
    - cpu
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 371
    functionName: libxl_cpupool_cpuremove
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_cpupool_removecpu
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_cpuremove(libxl_ctx *ctx, uint32_t poolid, int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:378,1
    - Dst: libxl_cpupool_cpuremove
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:379,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - poolid
    - cpumap
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 387
    functionName: libxl_cpupool_cpuremove_cpumap
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_cpuremove
    - libxl_bitmap_count_set
    - libxl_for_each_set_bit
    linkageType: ''
    returnType: int
    signature: "int libxl_cpupool_cpuremove_cpumap(libxl_ctx *ctx, uint32_t poolid,\n
      \                                  const libxl_bitmap *cpumap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:398,1
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:403,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:414,1
    - Dst: libxl_cpupool_cpuremove
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:415,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:422,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:425,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ctx
    - poolid
    - node
    - cpus
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: libxl_cpupool_cpuremove_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl_get_cpu_topology
    - libxl_list_cpupool
    - libxl_cpupool_cpuremove
    - libxl_cputopology_list_free
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_cpuremove_node(libxl_ctx *ctx, uint32_t poolid, int
      node, int *cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:432,1
    - Dst: xc_cpupool_movedomain
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:435,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_cpupool.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - poolid
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: libxl_cpupool_movedomain
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpupool.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_cpupool_movedomain
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: int libxl_cpupool_movedomain(libxl_ctx *ctx, uint32_t poolid, uint32_t
      domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: libxl__private_bindir_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__private_bindir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: libxl__xenfirmwaredir_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__xenfirmwaredir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: libxl__xen_script_dir_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__xen_script_dir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: libxl__run_dir_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__run_dir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: libxl__seabios_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__seabios_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: libxl__ovmf_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__ovmf_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: libxl__ipxe_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_paths.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__ipxe_path(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_usb.c:31,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: usbback_is_loaded
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - lstat
    - LOGE
    linkageType: ''
    returnType: int
    signature: int usbback_is_loaded(libxl__gc *gc)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_usb.c:46,1
    - Dst: usbback_is_loaded
      Src: /src/xen/tools/libs/light/libxl_usb.c:50,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:67,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:75,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:88,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:98,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:110,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:117,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_usb.c:126,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 4
    argNames:
    - gc
    - domid
    - usbctrl
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbctrl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 131
    functionName: libxl__device_usbctrl_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - usbback_is_loaded
    - libxl__resolve_domid
    - LOG
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbctrl_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                           libxl_device_usbctrl *usbctrl,\n
      \                                           bool hotplug)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_usb.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - gc
    - domid
    - usbctrl
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbctrl*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 157
    functionName: libxl__device_from_usbctrl
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_usbctrl(libxl__gc *gc, uint32_t domid,\n                                      libxl_device_usbctrl
      *usbctrl,\n                                      libxl__device *device)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:167,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:168,1
    - Dst: libxl_usbctrl_type_from_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:169,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:178,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - libxl_path
    - type
    argTypes:
    - libxl__gc*
    - char*
    - libxl_usbctrl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: vusb_be_from_xs_libxl_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl_usbctrl_type_from_string
    - GCSPRINTF
    - libxl__xs_read_checked
    linkageType: ''
    returnType: char
    signature: "char *vusb_be_from_xs_libxl_type(libxl__gc *gc,\n                                              const
      char *libxl_path,\n                                              libxl_usbctrl_type
      type)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:207,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:208,1
    - Dst: libxl_device_usbctrl_copy
      Src: /src/xen/tools/libs/light/libxl_usb.c:209,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:211,1
    - Dst: libxl__device_from_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:212,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_usb.c:215,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_usb.c:218,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:220,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:220,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:221,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:222,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:223,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:224,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:225,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:226,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:227,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:230,1
    - Dst: libxl_usbctrl_type_to_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:231,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:232,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:232,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:233,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:233,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:234,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_usb.c:236,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:236,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_usb.c:239,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_usb.c:245,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_usb.c:248,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_usb.c:251,1
    - Dst: libxl__query_qemu_backend
      Src: /src/xen/tools/libs/light/libxl_usb.c:255,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:257,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_usb.c:265,1
    - Dst: libxl__device_exists
      Src: /src/xen/tools/libs/light/libxl_usb.c:268,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:272,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_usb.c:278,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_usb.c:282,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_usb.c:283,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_usb.c:284,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_usb.c:287,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_usb.c:293,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_usb.c:294,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:295,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:296,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 4
    argNames:
    - gc
    - domid
    - usbctrl
    - update_json
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbctrl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 298
    functionName: libxl__device_usbctrl_add_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__device_exists
    - libxl_domain_config_init
    - flexarray_append_pair
    - libxl__xs_transaction_start
    - libxl_device_usbctrl_copy
    - flexarray_make
    - libxl__dm_check_start
    - libxl_device_usbctrl_init
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__lock_domain_userdata
    - GCSPRINTF
    - libxl__query_qemu_backend
    - GCNEW
    - libxl__xs_transaction_abort
    - libxl__set_domain_configuration
    - libxl__get_domain_configuration
    - libxl_usbctrl_type_to_string
    - libxl__xs_transaction_commit
    - LOGD
    - libxl_device_usbctrl_dispose
    - libxl__device_generic_add
    - libxl__device_from_usbctrl
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbctrl_add_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                             libxl_device_usbctrl *usbctrl,\n
      \                                             bool update_json)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vusb_be_from_xs_libxl_type
      Src: /src/xen/tools/libs/light/libxl_usb.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - libxl_path
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 4
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: vusb_be_from_xs_libxl
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - vusb_be_from_xs_libxl_type
    linkageType: ''
    returnType: char
    signature: char *vusb_be_from_xs_libxl(libxl__gc *gc, const char *libxl_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:312,1
    - Dst: vusb_be_from_xs_libxl_type
      Src: /src/xen/tools/libs/light/libxl_usb.c:314,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_usb.c:317,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_usb.c:320,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_usb.c:322,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_usb.c:330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - gc
    - domid
    - usbctrl
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbctrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 331
    functionName: libxl__device_usbctrl_del_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__xs_transaction_commit
    - vusb_be_from_xs_libxl_type
    - libxl__xs_path_cleanup
    - libxl__xs_transaction_start
    - libxl__xs_transaction_abort
    - libxl__domain_device_libxl_path
    linkageType: ''
    returnType: void
    signature: "void libxl__device_usbctrl_del_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                              libxl_device_usbctrl *usbctrl)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - libxl_usbctrl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: pvusb_get_device_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *pvusb_get_device_type(libxl_usbctrl_type type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:360,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:364,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:368,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_usb.c:370,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_usb.c:372,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_usb.c:376,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:379,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:380,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_usb.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - qmp
    - usbctrl
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl_device_usbctrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 383
    functionName: libxl__device_usbctrl_add_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - abort
    - libxl__ev_qmp_send
    - libxl__qmp_param_add_string
    - libxl__qmp_param_add_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbctrl_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                        libxl_device_usbctrl *usbctrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:393,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:394,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_usb.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - qmp
    - devid
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: libxl__device_usbctrl_del_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__qmp_param_add_string
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbctrl_del_hvm(libxl__egc *egc,\n                                         libxl__ev_qmp
      *qmp,\n                                         int devid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:406,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:407,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:409,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:410,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:411,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:412,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:413,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_usb.c:414,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_usb.c:416,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_usb.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - qmp
    - usbdev
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 420
    functionName: libxl__device_usbdev_add_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__qmp_param_add_string
    - libxl__qmp_param_add_integer
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_add_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                       libxl_device_usbdev *usbdev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:429,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:430,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_usb.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - qmp
    - usbdev
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: libxl__device_usbdev_del_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__qmp_param_add_string
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_del_hvm(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                       libxl_device_usbdev *usbdev)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_usb.c:461,1
    - Dst: libxl__device_usbctrl_setdefault
      Src: /src/xen/tools/libs/light/libxl_usb.c:469,1
    - Dst: libxl__device_usbctrl_update_devid
      Src: /src/xen/tools/libs/light/libxl_usb.c:473,1
    - Dst: libxl__device_usbctrl_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:476,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:480,1
    - Dst: libxl__device_from_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:481,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_usb.c:488,1
    - Dst: libxl__device_usbctrl_add_hvm
      Src: /src/xen/tools/libs/light/libxl_usb.c:497,1
    - Dst: libxl__wait_device_connection
      Src: /src/xen/tools/libs/light/libxl_usb.c:503,1
    - Dst: libxl__device_usbctrl_del_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:507,1
    - Dst: device_usbctrl_add_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - egc
    - domid
    - usbctrl
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_usbctrl*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 510
    functionName: libxl__device_usbctrl_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__wait_device_connection
    - GCNEW
    - libxl__device_usbctrl_add_hvm
    - libxl__device_usbctrl_del_xenstore
    - libxl__device_usbctrl_add_xenstore
    - libxl__device_from_usbctrl
    - device_usbctrl_add_done
    - libxl__device_usbctrl_update_devid
    - libxl__device_usbctrl_setdefault
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void libxl__device_usbctrl_add(libxl__egc *egc, uint32_t domid,\n
      \                                     libxl_device_usbctrl *usbctrl,\n                                      libxl__ao_device
      *aodev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:517,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:520,1
    - Dst: device_usbctrl_add_qmp_cb
      Src: /src/xen/tools/libs/light/libxl_usb.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: device_usbctrl_add_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - device_usbctrl_add_qmp_cb
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_add_timeout(libxl__egc *egc, libxl__ev_time *ev,\n
      \                                      const struct timeval *requested_abs,\n
      \                                      int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:530,1
    - Dst: libxl__device_usbctrl_del_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:534,1
    - Dst: device_usbctrl_add_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - qmp
    - r
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: device_usbctrl_add_qmp_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__device_usbctrl_del_xenstore
    - device_usbctrl_add_done
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_add_qmp_cb(libxl__egc *egc,\n                                      libxl__ev_qmp
      *qmp,\n                                      const libxl__json_object *r,\n
      \                                     int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:544,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_usb.c:545,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_usb.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - aodev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: device_usbctrl_add_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached:
    - libxl__ao_device*::callback
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_add_done(libxl__egc *egc,\n                                    libxl__ao_device
      *aodev,\n                                    int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_usb.c:589,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:598,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_usb.c:601,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:603,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:604,1
    - Dst: libxl_devid_to_device_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:605,1
    - Dst: libxl__device_usbdev_list_for_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:614,1
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_usb.c:620,1
    - Dst: libxl__device_usbdev_remove
      Src: /src/xen/tools/libs/light/libxl_usb.c:622,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_usb.c:626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 627
    functionName: libxl__initiate_device_usbctrl_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__device_usbdev_list_for_usbctrl
    - libxl_devid_to_device_usbctrl
    - libxl__multidev_begin
    - GCNEW
    - libxl__multidev_prepare
    - libxl__device_usbdev_remove
    - libxl__multidev_prepared
    - libxl_device_usbctrl_init
    linkageType: ''
    returnType: void
    signature: "void libxl__initiate_device_usbctrl_remove(libxl__egc *egc,\n                                           libxl__ao_device
      *aodev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:634,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_usb.c:636,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_usb.c:645,1
    - Dst: libxl__device_usbctrl_del_hvm
      Src: /src/xen/tools/libs/light/libxl_usb.c:654,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:659,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_usb.c:662,1
    - Dst: device_usbctrl_remove_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:665,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 666
    functionName: device_usbctrl_usbdevs_removed
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__device_usbctrl_del_hvm
    - libxl_device_usbctrl_dispose
    - libxl__initiate_device_generic_remove
    - device_usbctrl_remove_done
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_usbdevs_removed(libxl__egc *egc,\n                                           libxl__multidev
      *multidev,\n                                           int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:672,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:675,1
    - Dst: device_usbctrl_remove_qmp_cb
      Src: /src/xen/tools/libs/light/libxl_usb.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: device_usbctrl_remove_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - device_usbctrl_remove_qmp_cb
    - CONTAINER_OF
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_remove_timeout(libxl__egc *egc,\n    libxl__ev_time
      *ev, const struct timeval *requested_abs, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:686,1
    - Dst: libxl__device_usbctrl_del_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:690,1
    - Dst: device_usbctrl_remove_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - qmp
    - resp
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 680
    functionDepth: 5
    functionLinenumber: 680
    functionLinenumberEnd: 693
    functionName: device_usbctrl_remove_qmp_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__device_usbctrl_del_xenstore
    - device_usbctrl_remove_done
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_remove_qmp_cb(libxl__egc *egc,\n                                         libxl__ev_qmp
      *qmp,\n                                         const libxl__json_object *resp,\n
      \                                        int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:702,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:703,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_usb.c:704,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_usb.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - egc
    - aodev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 708
    functionName: device_usbctrl_remove_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached:
    - libxl_device_usbctrl_dispose
    - libxl__ao_device*::callback
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_usbctrl_remove_done(libxl__egc *egc,\n                                       libxl__ao_device
      *aodev,\n                                       int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_usbctrl_type_from_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:736,1
    - Dst: READ_SUBPATH
      Src: /src/xen/tools/libs/light/libxl_usb.c:736,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_usb.c:740,1
    - Dst: READ_SUBPATH
      Src: /src/xen/tools/libs/light/libxl_usb.c:742,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_usb.c:744,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:748,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:749,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:755,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - usbctrl_r
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_usbctrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 757
    functionName: libxl__usbctrl_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - READ_SUBPATH_INT
    - libxl_device_usbctrl_dispose
    - libxl__backendpath_parse_domid
    - libxl_usbctrl_type_from_string
    - libxl__get_domid
    - READ_SUBPATH
    linkageType: ''
    returnType: int
    signature: "int libxl__usbctrl_from_xenstore(libxl__gc *gc,\n                                        const
      char *libxl_path,\n                                        libxl_devid devid,\n
      \                                       libxl_device_usbctrl *usbctrl_r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - subpath
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: READ_SUBPATH
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SUBPATH(path, subpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - subpath
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: READ_SUBPATH_INT
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SUBPATH_INT(path, subpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_usb.c:763,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:786,1
    - Dst: libxl_usbctrl_type_from_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:788,1
    - Dst: READ_SUBPATH
      Src: /src/xen/tools/libs/light/libxl_usb.c:788,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:792,1
    - Dst: READ_SUBPATH
      Src: /src/xen/tools/libs/light/libxl_usb.c:794,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_usb.c:795,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_usb.c:796,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:799,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:800,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:801,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:802,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_usb.c:803,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:805,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:806,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:808,1
    - Dst: READ_SUBPATH_INT
      Src: /src/xen/tools/libs/light/libxl_usb.c:809,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_usb.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - ctx
    - domid
    - usbctrl
    - usbctrlinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_usbctrl*
    - libxl_usbctrlinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 822
    functionName: libxl_device_usbctrl_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - READ_SUBPATH_INT
    - libxl__backendpath_parse_domid
    - libxl_usbctrl_type_from_string
    - libxl__strdup
    - libxl__get_domid
    - libxl__domain_device_libxl_path
    - READ_SUBPATH
    - libxl__domain_device_frontend_path
    linkageType: ''
    returnType: int
    signature: "int libxl_device_usbctrl_getinfo(libxl_ctx *ctx, uint32_t domid,\n
      \                                const libxl_device_usbctrl *usbctrl,\n                                 libxl_usbctrlinfo
      *usbctrlinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - subpath
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 777
    functionName: READ_SUBPATH
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SUBPATH(path, subpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - subpath
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: READ_SUBPATH_INT
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SUBPATH_INT(path, subpath)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_usb.c:835,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:837,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_usb.c:848,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:850,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:856,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:857,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:860,1
    - Dst: libxl__read_sysfs_file_contents
      Src: /src/xen/tools/libs/light/libxl_usb.c:861,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:862,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:864,1
    - Dst: libxl__read_sysfs_file_contents
      Src: /src/xen/tools/libs/light/libxl_usb.c:865,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:866,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_usb.c:869,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_usb.c:874,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - gc
    - bus
    - addr
    argTypes:
    - libxl__gc*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 876
    functionName: usbdev_busaddr_to_busid
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - atoi
    - libxl__read_sysfs_file_contents
    - opendir
    - libxl__strdup
    - LOGE
    - readdir
    - strcmp
    - closedir
    linkageType: ''
    returnType: char
    signature: char *usbdev_busaddr_to_busid(libxl__gc *gc, int bus, int addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:884,1
    - Dst: libxl__read_sysfs_file_contents
      Src: /src/xen/tools/libs/light/libxl_usb.c:885,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:886,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:890,1
    - Dst: libxl__read_sysfs_file_contents
      Src: /src/xen/tools/libs/light/libxl_usb.c:891,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - gc
    - busid
    - bus
    - addr
    argTypes:
    - libxl__gc*
    - char*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 897
    functionName: usbdev_busaddr_from_busid
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - atoi
    - GCSPRINTF
    - libxl__read_sysfs_file_contents
    linkageType: ''
    returnType: int
    signature: "int usbdev_busaddr_from_busid(libxl__gc *gc, const char *busid,\n
      \                                    uint8_t *bus, uint8_t *addr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_usb.c:910,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:915,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:917,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:918,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:919,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_usb.c:920,1
    - Dst: libxl__device_usbdev_list_for_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:927,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:928,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_usb.c:934,1
    - Dst: libxl_device_usbdev_copy
      Src: /src/xen/tools/libs/light/libxl_usb.c:936,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:945,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - list
    - num
    argTypes:
    - libxl__gc*
    - libxl_device_usbdev**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 947
    functionName: get_assigned_devices
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__device_usbdev_list_for_usbctrl
    - GCSPRINTF
    - LOG
    - libxl__xs_libxl_path
    - libxl_device_usbdev_copy
    - libxl__device_kind_to_string
    - libxl__xs_directory
    - GCREALLOC_ARRAY
    - atoi
    linkageType: ''
    returnType: int
    signature: "int get_assigned_devices(libxl__gc *gc,\n                                libxl_device_usbdev
      **list, int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - usbdevs
    - num
    - usbdev
    argTypes:
    - libxl_device_usbdev*
    - int
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 961
    functionName: is_usbdev_in_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool is_usbdev_in_array(libxl_device_usbdev *usbdevs, int num,\n                               libxl_device_usbdev
      *usbdev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: usbdev_busaddr_to_busid
      Src: /src/xen/tools/libs/light/libxl_usb.c:971,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:975,1
    - Dst: libxl__read_sysfs_file_contents
      Src: /src/xen/tools/libs/light/libxl_usb.c:976,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - usbdev
    argTypes:
    - libxl__gc*
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 981
    functionName: is_usbdev_assignable
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - atoi
    - usbdev_busaddr_to_busid
    - GCSPRINTF
    - libxl__read_sysfs_file_contents
    linkageType: ''
    returnType: bool
    signature: bool is_usbdev_assignable(libxl__gc *gc, libxl_device_usbdev *usbdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:997,1
    - Dst: vusb_be_from_xs_libxl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1000,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1006,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1007,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:1011,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1017,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1018,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1022,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_usb.c:1023,1
    - Dst: libxl_device_usbdev_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1026,1
    - Dst: usbdev_busaddr_from_busid
      Src: /src/xen/tools/libs/light/libxl_usb.c:1030,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 5
    argNames:
    - gc
    - domid
    - usbctrl
    - usbdevs
    - num
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_devid
    - libxl_device_usbdev**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 984
    functionDepth: 5
    functionLinenumber: 984
    functionLinenumberEnd: 1041
    functionName: libxl__device_usbdev_list_for_usbctrl
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached:
    - usbdev_busaddr_from_busid
    - GCSPRINTF
    - vusb_be_from_xs_libxl
    - strcmp
    - libxl_device_usbdev_init
    - GCREALLOC_ARRAY
    - libxl__domain_device_libxl_path
    - atoi
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_list_for_usbctrl(libxl__gc *gc,\n                                      uint32_t
      domid,\n                                      libxl_devid usbctrl,\n                                      libxl_device_usbdev
      **usbdevs,\n                                      int *num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_usb.c:1047,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1056,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1057,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:1058,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_usb.c:1060,1
    - Dst: libxl__device_usbdev_list_for_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1066,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:1067,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_usb.c:1071,1
    - Dst: libxl_device_usbdev_copy
      Src: /src/xen/tools/libs/light/libxl_usb.c:1074,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - domid
    - num
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1044
    functionDepth: 6
    functionLinenumber: 1044
    functionLinenumberEnd: 1081
    functionName: libxl_device_usbdev_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_usbdev_list_for_usbctrl
    - GCSPRINTF
    - libxl__realloc
    - libxl__xs_libxl_path
    - libxl_device_usbdev_copy
    - libxl__device_kind_to_string
    - libxl__xs_directory
    - atoi
    linkageType: ''
    returnType: libxl_device_usbdev
    signature: 'libxl_device_usbdev *

      libxl_device_usbdev_list(libxl_ctx *ctx, uint32_t domid, int *num)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1089,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1089,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_usb.c:1090,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1092,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_usb.c:1093,1
    - Dst: pvusb_get_device_type
      Src: /src/xen/tools/libs/light/libxl_usb.c:1094,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - gc
    - domid
    - type
    - ctrl
    - port
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_usbctrl_type
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1097
    functionName: vusb_get_port_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_get_dompath
    - libxl__xs_libxl_path
    - pvusb_get_device_type
    - libxl__device_kind_to_string
    linkageType: ''
    returnType: char
    signature: "char *vusb_get_port_path(libxl__gc *gc, uint32_t domid,\n                                libxl_usbctrl_type
      type, int ctrl, int port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_usbctrl_list
      Src: /src/xen/tools/libs/light/libxl_usb.c:1108,1
    - Dst: vusb_get_port_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1118,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1120,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1123,1
    - Dst: libxl_device_usbctrl_list_free
      Src: /src/xen/tools/libs/light/libxl_usb.c:1136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - gc
    - domid
    - usbdev
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1100
    functionDepth: 3
    functionLinenumber: 1100
    functionLinenumberEnd: 1138
    functionName: libxl__device_usbdev_set_default_usbctrl
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl_device_usbctrl_list_free
    - libxl_device_usbctrl_list
    - vusb_get_port_path
    - strcmp
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_set_default_usbctrl(libxl__gc *gc, uint32_t
      domid,\n                                         libxl_device_usbdev *usbdev)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1166,1
    - Dst: libxl__device_usbdev_set_default_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1171,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:1176,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1177,1
    - Dst: libxl__device_usbctrl_setdefault
      Src: /src/xen/tools/libs/light/libxl_usb.c:1178,1
    - Dst: libxl__device_usbctrl_update_devid
      Src: /src/xen/tools/libs/light/libxl_usb.c:1182,1
    - Dst: libxl__device_usbctrl_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1185,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1196,1
    - Dst: vusb_be_from_xs_libxl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1199,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1207,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1208,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1213,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1214,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1222,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1223,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_usb.c:1226,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1229,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1230,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1234,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1241,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 4
    argNames:
    - gc
    - domid
    - usbdev
    - update_json
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbdev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1154
    functionDepth: 6
    functionLinenumber: 1154
    functionLinenumberEnd: 1252
    functionName: libxl__device_usbdev_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - GCNEW
    - atoi
    - libxl__device_usbdev_set_default_usbctrl
    - vusb_be_from_xs_libxl
    - strcmp
    - libxl__xs_read_checked
    - libxl__device_usbctrl_add_xenstore
    - libxl__domain_device_libxl_path
    - libxl_device_usbctrl_init
    - libxl__device_usbctrl_update_devid
    - libxl__device_usbctrl_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_setdefault(libxl__gc *gc,\n                                           uint32_t
      domid,\n                                           libxl_device_usbdev *usbdev,\n
      \                                          bool update_json)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1271,1
    - Dst: libxl_device_usbdev_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1272,1
    - Dst: libxl_device_usbdev_copy
      Src: /src/xen/tools/libs/light/libxl_usb.c:1273,1
    - Dst: usbdev_busaddr_to_busid
      Src: /src/xen/tools/libs/light/libxl_usb.c:1275,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1278,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_usb.c:1284,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_usb.c:1290,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_usb.c:1293,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_usb.c:1296,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_usb.c:1301,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_usb.c:1305,1
    - Dst: vusb_get_port_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1309,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1312,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1315,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_usb.c:1318,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_usb.c:1326,1
    - Dst: libxl_device_usbdev_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:1327,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:1328,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 5
    argNames:
    - gc
    - domid
    - usbdev
    - type
    - update_json
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbdev*
    - libxl_usbctrl_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1330
    functionName: libxl__device_usbdev_add_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__xs_transaction_commit
    - LOGD
    - device_add_domain_config
    - libxl_domain_config_init
    - libxl__dm_check_start
    - vusb_get_port_path
    - libxl_domain_config_dispose
    - libxl_device_usbdev_copy
    - libxl__xs_transaction_start
    - libxl_device_usbdev_dispose
    - libxl_device_usbdev_init
    - libxl__set_domain_configuration
    - libxl__unlock_file
    - libxl__get_domain_configuration
    - usbdev_busaddr_to_busid
    - libxl__xs_write_checked
    - libxl__lock_domain_userdata
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_add_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                            libxl_device_usbdev *usbdev,\n
      \                                            libxl_usbctrl_type type,\n                                             bool
      update_json)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vusb_get_port_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1338,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1340,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - domid
    - usbdev
    - type
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbdev*
    - libxl_usbctrl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1344
    functionName: libxl__device_usbdev_remove_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - vusb_get_port_path
    - libxl__xs_write_checked
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl__device_usbdev_remove_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                               libxl_device_usbdev *usbdev,\n
      \                                               libxl_usbctrl_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_usb.c:1350,1
    - Dst: vusb_get_port_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:1351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - usbdev
    - type
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_usbdev*
    - libxl_usbctrl_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1353
    functionName: usbdev_busid_from_ctrlport
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - vusb_get_port_path
    - libxl__xs_read
    linkageType: ''
    returnType: char
    signature: "char *usbdev_busid_from_ctrlport(libxl__gc *gc, uint32_t domid,\n
      \                                       libxl_device_usbdev *usbdev,\n                                        libxl_usbctrl_type
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1360,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_usb.c:1363,1
    - Dst: realpath
      Src: /src/xen/tools/libs/light/libxl_usb.c:1364,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - intf
    - drvpath
    argTypes:
    - libxl__gc*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1373
    functionName: usbintf_get_drvpath
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__zalloc
    - GCSPRINTF
    - realpath
    - LOGE
    linkageType: ''
    returnType: int
    signature: int usbintf_get_drvpath(libxl__gc *gc, const char *intf, char **drvpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1381,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_usb.c:1383,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1385,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_usb.c:1390,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_usb.c:1390,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_usb.c:1398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - intf
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1400
    functionName: unbind_usbintf
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - open
    - GCSPRINTF
    - close
    - strlen
    - LOGE
    - libxl_write_exactly
    linkageType: ''
    returnType: int
    signature: int unbind_usbintf(libxl__gc *gc, const char *intf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1409,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_usb.c:1415,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1421,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_usb.c:1423,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1425,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_usb.c:1430,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_usb.c:1430,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_usb.c:1438,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - intf
    - drvpath
    argTypes:
    - libxl__gc*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1440
    functionName: bind_usbintf
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - open
    - GCSPRINTF
    - lstat
    - close
    - strlen
    - LOGE
    - libxl_write_exactly
    linkageType: ''
    returnType: int
    signature: int bind_usbintf(libxl__gc *gc, const char *intf, const char *drvpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1449,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_usb.c:1450,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - intf
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1458
    functionName: usbintf_is_assigned
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - lstat
    - LOGE
    linkageType: ''
    returnType: int
    signature: int usbintf_is_assigned(libxl__gc *gc, char *intf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1471,1
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_usb.c:1473,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1475,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_usb.c:1481,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1484,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1491,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1492,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:1495,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_usb.c:1495,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_usb.c:1496,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_usb.c:1497,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_usb.c:1505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - gc
    - busid
    - intfs
    - num
    argTypes:
    - libxl__gc*
    - char*
    - char***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1507
    functionName: usbdev_get_all_interfaces
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - opendir
    - strncmp
    - libxl__strdup
    - GCREALLOC_ARRAY
    - strlen
    - LOGE
    - readdir
    - strcmp
    - closedir
    linkageType: ''
    returnType: int
    signature: "int usbdev_get_all_interfaces(libxl__gc *gc, const char *busid,\n
      \                                    char ***intfs, int *num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_usb.c:1517,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_usb.c:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - busid
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1525
    functionName: usb_interface_xenstore_encode
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - strlen
    linkageType: ''
    returnType: char
    signature: char *usb_interface_xenstore_encode(libxl__gc *gc, const char *busid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usbdev_get_all_interfaces
      Src: /src/xen/tools/libs/light/libxl_usb.c:1538,1
    - Dst: usbintf_is_assigned
      Src: /src/xen/tools/libs/light/libxl_usb.c:1545,1
    - Dst: unbind_usbintf
      Src: /src/xen/tools/libs/light/libxl_usb.c:1547,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - gc
    - busid
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1559
    functionName: usbback_dev_unassign
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - usbdev_get_all_interfaces
    - usbintf_is_assigned
    - unbind_usbintf
    - LOGE
    linkageType: ''
    returnType: int
    signature: int usbback_dev_unassign(libxl__gc *gc, const char *busid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usbdev_get_all_interfaces
      Src: /src/xen/tools/libs/light/libxl_usb.c:1575,1
    - Dst: usb_interface_xenstore_encode
      Src: /src/xen/tools/libs/light/libxl_usb.c:1578,1
    - Dst: usb_interface_xenstore_encode
      Src: /src/xen/tools/libs/light/libxl_usb.c:1586,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1587,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1589,1
    - Dst: bind_usbintf
      Src: /src/xen/tools/libs/light/libxl_usb.c:1593,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_usb.c:1595,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1602,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - gc
    - busid
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1567
    functionDepth: 3
    functionLinenumber: 1567
    functionLinenumberEnd: 1605
    functionName: usbdev_rebind
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - bind_usbintf
    - usbdev_get_all_interfaces
    - usb_interface_xenstore_encode
    - libxl__xs_rm_checked
    - LOGE
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: int usbdev_rebind(libxl__gc *gc, const char *busid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usbdev_get_all_interfaces
      Src: /src/xen/tools/libs/light/libxl_usb.c:1620,1
    - Dst: usb_interface_xenstore_encode
      Src: /src/xen/tools/libs/light/libxl_usb.c:1623,1
    - Dst: usbintf_is_assigned
      Src: /src/xen/tools/libs/light/libxl_usb.c:1630,1
    - Dst: usbintf_get_drvpath
      Src: /src/xen/tools/libs/light/libxl_usb.c:1633,1
    - Dst: usb_interface_xenstore_encode
      Src: /src/xen/tools/libs/light/libxl_usb.c:1641,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1642,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:1644,1
    - Dst: unbind_usbintf
      Src: /src/xen/tools/libs/light/libxl_usb.c:1648,1
    - Dst: bind_usbintf
      Src: /src/xen/tools/libs/light/libxl_usb.c:1653,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_usb.c:1655,1
    - Dst: usbback_dev_unassign
      Src: /src/xen/tools/libs/light/libxl_usb.c:1666,1
    - Dst: usbdev_rebind
      Src: /src/xen/tools/libs/light/libxl_usb.c:1667,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - gc
    - busid
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1613
    functionDepth: 4
    functionLinenumber: 1613
    functionLinenumberEnd: 1669
    functionName: usbback_dev_assign
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - usbintf_get_drvpath
    - usbdev_rebind
    - GCSPRINTF
    - bind_usbintf
    - usbback_dev_unassign
    - usbdev_get_all_interfaces
    - usb_interface_xenstore_encode
    - unbind_usbintf
    - usbintf_is_assigned
    - LOG
    - libxl__xs_write_checked
    linkageType: ''
    returnType: int
    signature: int usbback_dev_assign(libxl__gc *gc, const char *busid)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_usb.c:1698,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1706,1
    - Dst: libxl_devid_to_device_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1717,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1722,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:1727,1
    - Dst: is_usbdev_assignable
      Src: /src/xen/tools/libs/light/libxl_usb.c:1731,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1732,1
    - Dst: get_assigned_devices
      Src: /src/xen/tools/libs/light/libxl_usb.c:1738,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1740,1
    - Dst: is_usbdev_in_array
      Src: /src/xen/tools/libs/light/libxl_usb.c:1745,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1746,1
    - Dst: libxl__device_usbdev_setdefault
      Src: /src/xen/tools/libs/light/libxl_usb.c:1753,1
    - Dst: libxl_devid_to_device_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1757,1
    - Dst: usbdev_busaddr_to_busid
      Src: /src/xen/tools/libs/light/libxl_usb.c:1763,1
    - Dst: libxl__device_usbdev_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1770,1
    - Dst: usbback_dev_assign
      Src: /src/xen/tools/libs/light/libxl_usb.c:1775,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1777,1
    - Dst: libxl__device_usbdev_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1783,1
    - Dst: libxl__device_usbdev_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1790,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_usb.c:1795,1
    - Dst: libxl__device_usbdev_add_hvm
      Src: /src/xen/tools/libs/light/libxl_usb.c:1804,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1806,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1813,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:1821,1
    - Dst: device_usbdev_add_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:1824,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 102
    argCount: 4
    argNames:
    - egc
    - domid
    - usbdev
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_usbdev*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1694
    functionDepth: 7
    functionLinenumber: 1694
    functionLinenumberEnd: 1825
    functionName: libxl__device_usbdev_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - is_usbdev_in_array
    - STATE_AO_GC
    - libxl__device_usbdev_add_xenstore
    - LOGD
    - libxl_devid_to_device_usbctrl
    - is_usbdev_assignable
    - libxl_device_usbctrl_dispose
    - libxl__device_usbdev_remove_xenstore
    - device_usbdev_add_done
    - libxl__device_usbdev_add_hvm
    - libxl__device_usbdev_setdefault
    - usbdev_busaddr_to_busid
    - libxl_device_usbctrl_init
    - usbback_dev_assign
    - libxl__ev_time_register_rel
    - get_assigned_devices
    linkageType: ''
    returnType: void
    signature: "void libxl__device_usbdev_add(libxl__egc *egc, uint32_t domid,\n                                     libxl_device_usbdev
      *usbdev,\n                                     libxl__ao_device *aodev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1833,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1836,1
    - Dst: device_usbdev_add_qmp_cb
      Src: /src/xen/tools/libs/light/libxl_usb.c:1838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1839
    functionName: device_usbdev_add_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - device_usbdev_add_qmp_cb
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_add_timeout(libxl__egc *egc,\n                                      libxl__ev_time
      *ev,\n                                      const struct timeval *requested_abs,\n
      \                                     int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:1847,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1851,1
    - Dst: device_usbdev_add_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:1853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - qmp
    - r
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1841
    functionDepth: 4
    functionLinenumber: 1841
    functionLinenumberEnd: 1854
    functionName: device_usbdev_add_qmp_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached:
    - device_usbdev_add_done
    - CONTAINER_OF
    - libxl__device_usbdev_remove_xenstore
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_add_qmp_cb(libxl__egc *egc,\n                                     libxl__ev_qmp
      *qmp,\n                                     const libxl__json_object *r,\n                                     int
      rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_usb.c:1862,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:1863,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_usb.c:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - aodev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1866
    functionName: device_usbdev_add_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached:
    - libxl__ao_device*::callback
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_add_done(libxl__egc *egc,\n                                   libxl__ao_device
      *aodev,\n                                   int rc)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_usb.c:1893,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/libs/light/libxl_usb.c:1903,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1906,1
    - Dst: libxl_devid_to_device_usbctrl
      Src: /src/xen/tools/libs/light/libxl_usb.c:1911,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1915,1
    - Dst: usbdev_busid_from_ctrlport
      Src: /src/xen/tools/libs/light/libxl_usb.c:1924,1
    - Dst: usbback_dev_unassign
      Src: /src/xen/tools/libs/light/libxl_usb.c:1942,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1944,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1949,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1952,1
    - Dst: usbdev_rebind
      Src: /src/xen/tools/libs/light/libxl_usb.c:1957,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1959,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1967,1
    - Dst: libxl__device_usbdev_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1973,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_usb.c:1977,1
    - Dst: libxl__device_usbdev_del_hvm
      Src: /src/xen/tools/libs/light/libxl_usb.c:1986,1
    - Dst: libxl__device_usbdev_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:1988,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:1996,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:2004,1
    - Dst: device_usbdev_remove_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:2007,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 87
    argCount: 4
    argNames:
    - egc
    - domid
    - usbdev
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_usbdev*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1889
    functionDepth: 4
    functionLinenumber: 1889
    functionLinenumberEnd: 2008
    functionName: libxl__device_usbdev_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached:
    - usbdev_rebind
    - STATE_AO_GC
    - libxl__device_usbdev_add_xenstore
    - libxl_devid_to_device_usbctrl
    - LOGD
    - usbback_dev_unassign
    - libxl_device_usbctrl_dispose
    - usbdev_busid_from_ctrlport
    - device_usbdev_remove_done
    - libxl__device_usbdev_remove_xenstore
    - libxl_device_usbctrl_init
    - libxl__ev_time_register_rel
    - libxl__device_usbdev_del_hvm
    linkageType: ''
    returnType: void
    signature: "void libxl__device_usbdev_remove(libxl__egc *egc, uint32_t domid,\n
      \                                       libxl_device_usbdev *usbdev,\n                                        libxl__ao_device
      *aodev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:2014,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_usb.c:2017,1
    - Dst: device_usbdev_remove_qmp_cb
      Src: /src/xen/tools/libs/light/libxl_usb.c:2019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2010
    functionDepth: 1
    functionLinenumber: 2010
    functionLinenumberEnd: 2020
    functionName: device_usbdev_remove_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - device_usbdev_remove_qmp_cb
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_remove_timeout(libxl__egc *egc,\n    libxl__ev_time
      *ev, const struct timeval *requested_abs, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_usb.c:2028,1
    - Dst: libxl__device_usbdev_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_usb.c:2032,1
    - Dst: device_usbdev_remove_done
      Src: /src/xen/tools/libs/light/libxl_usb.c:2037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - egc
    - qmp
    - r
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2022
    functionDepth: 4
    functionLinenumber: 2022
    functionLinenumberEnd: 2038
    functionName: device_usbdev_remove_qmp_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - device_usbdev_remove_done
    - libxl__device_usbdev_add_xenstore
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_remove_qmp_cb(libxl__egc *egc,\n                                        libxl__ev_qmp
      *qmp,\n                                        const libxl__json_object *r,\n
      \                                       int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_usb.c:2046,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:2047,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_usb.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - aodev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2050
    functionName: device_usbdev_remove_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 2
    functionsReached:
    - libxl__ao_device*::callback
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_usbdev_remove_done(libxl__egc *egc,\n                                      libxl__ao_device
      *aodev,\n                                      int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_usb.c:2057,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_usb.c:2060,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_usb.c:2061,1
    - Dst: libxl__device_usbdev_remove
      Src: /src/xen/tools/libs/light/libxl_usb.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - domid
    - usbdev
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_usbdev*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2052
    functionDepth: 5
    functionLinenumber: 2052
    functionLinenumberEnd: 2067
    functionName: libxl_device_usbdev_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - libxl__device_usbdev_remove
    - AO_CREATE
    - libxl__prepare_ao_device
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_device_usbdev_remove(libxl_ctx *ctx, uint32_t domid,\n                               libxl_device_usbdev
      *usbdev,\n                               const libxl_asyncop_how *ao_how)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_usb.c:2075,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_usb.c:2079,1
    - Dst: vusb_be_from_xs_libxl
      Src: /src/xen/tools/libs/light/libxl_usb.c:2081,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_usb.c:2087,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_usb.c:2088,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_usb.c:2092,1
    - Dst: usbdev_busaddr_from_busid
      Src: /src/xen/tools/libs/light/libxl_usb.c:2100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - ctx
    - domid
    - ctrl
    - port
    - usbdev
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - int
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2069
    functionDepth: 5
    functionLinenumber: 2069
    functionLinenumberEnd: 2107
    functionName: libxl_ctrlport_to_device_usbdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - usbdev_busaddr_from_busid
    - GC_INIT
    - GCSPRINTF
    - vusb_be_from_xs_libxl
    - libxl__domain_device_libxl_path
    - strcmp
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl_ctrlport_to_device_usbdev(libxl_ctx *ctx,\n                                    uint32_t
      domid,\n                                    int ctrl,\n                                    int
      port,\n                                    libxl_device_usbdev *usbdev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_USBCTRL
      Src: /src/xen/tools/libs/light/libxl_usb.c:2112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_usbctrl*
    - libxl_device_usbctrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2113
    functionName: libxl_device_usbctrl_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - COMPARE_USBCTRL
    linkageType: ''
    returnType: int
    signature: "int libxl_device_usbctrl_compare(const libxl_device_usbctrl *d1,\n
      \                                       const libxl_device_usbctrl *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - e
    - domid
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2121
    functionName: libxl_device_usbctrl_dm_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_device_usbctrl_dm_needed(void *e, unsigned domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_USB
      Src: /src/xen/tools/libs/light/libxl_usb.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_usbdev*
    - libxl_device_usbdev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2127
    functionName: libxl_device_usbdev_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - COMPARE_USB
    linkageType: ''
    returnType: int
    signature: "int libxl_device_usbdev_compare(const libxl_device_usbdev *d1,\n                                       const
      libxl_device_usbdev *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_usbdev_dispose
      Src: /src/xen/tools/libs/light/libxl_usb.c:2134,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_usb.c:2135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_device_usbdev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2136
    functionName: libxl_device_usbdev_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_usb.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_device_usbdev_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_device_usbdev_list_free(libxl_device_usbdev *list, int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:22,1
    - Dst: S_ISBLK
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - st_mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: libxl__try_phy_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - S_ISBLK
    linkageType: ''
    returnType: int
    signature: int libxl__try_phy_backend(mode_t st_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - devid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: libxl__devid_to_localdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:38,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:42,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:43,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:45,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:51,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:54,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - gc
    - dev
    - args
    - action
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - libxl__device_action
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/tools/libs/light/libxl_netbsd.c
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: libxl__hotplug
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__device_backend_path
    - GCNEW_ARRAY
    - libxl__xs_read
    - assert
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug(libxl__gc *gc, libxl__device *dev, char ***args,\n
      \                         libxl__device_action action)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:73,1
    - Dst: libxl__hotplug
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:78,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:90,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:91,1
    - Dst: libxl__hotplug
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:96,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 6
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: libxl__get_hotplug_script_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached:
    - libxl__hotplug
    - LOGD
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: int
    signature: "int libxl__get_hotplug_script_info(libxl__gc *gc, libxl__device *dev,\n
      \                                  char ***args, char ***env,\n                                   libxl__device_action
      action,\n                                   int num_exec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: libxl__pci_numdevs
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__pci_numdevs(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - devs
    - num_devs
    argTypes:
    - libxl__gc*
    - physdev_pci_device_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: libxl__pci_topology_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__pci_topology_init(libxl__gc *gc,\n                             physdev_pci_device_t
      *devs,\n                             int num_devs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libxl__local_dm_preexec_restrict
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__local_dm_preexec_restrict(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_netbsd.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ruid
    - euid
    - suid
    argTypes:
    - uid_t
    - uid_t
    - uid_t
    assertStmts:
    - condition: (!"setresuid is not available on NetBSD, and dm restrction is not
        supported, so this code path should not have been reached")
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/xen/tools/libs/light/libxl_netbsd.c
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: libxl__setresuid
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbsd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl__setresuid(uid_t ruid, uid_t euid, uid_t suid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/tools/libs/light/libxl_libfdt_compat.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: fdt_first_subnode
    functionSourceFile: /src/xen/tools/libs/light/libxl_libfdt_compat.c
    functionUses: 0
    functionsReached:
    - fdt_next_node
    linkageType: ''
    returnType: _hidden
    signature: _hidden fdt_first_subnode(const void *fdt, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/tools/libs/light/libxl_libfdt_compat.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: fdt_next_subnode
    functionSourceFile: /src/xen/tools/libs/light/libxl_libfdt_compat.c
    functionUses: 0
    functionsReached:
    - fdt_next_node
    linkageType: ''
    returnType: _hidden
    signature: _hidden fdt_next_subnode(const void *fdt, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - stream
    - what
    - ptr
    - nr_bytes
    - cb
    argTypes:
    - libxl__stream_read_state*
    - char*
    - void*
    - size_t
    - libxl__datacopier_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 189
    functionName: setup_read
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - libxl__datacopier_start
    linkageType: ''
    returnType: int
    signature: "int setup_read(libxl__stream_read_state *stream,\n                      const
      char *what, void *ptr, size_t nr_bytes,\n                      libxl__datacopier_callback
      cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:194,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rec
    argTypes:
    - libxl__sr_record_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: free_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_record(libxl__sr_record_buf *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:203,1
    - Dst: libxl__save_helper_init
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:206,1
    - Dst: libxl__conversion_helper_init
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:209,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:215,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:216,1
    - Dst: XEN_STAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:217,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - stream
    argTypes:
    - libxl__stream_read_state*
    assertStmts:
    - condition: (stream->ao)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: libxl__stream_read_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - XEN_STAILQ_INIT
    - libxl__save_helper_init
    - FILLZERO
    - libxl__conversion_helper_init
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__stream_read_init(libxl__stream_read_state *stream)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:229,1
    - Dst: libxl__stream_read_init
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:232,1
    - Dst: libxl__convert_legacy_stream
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:254,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:257,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:263,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:266,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:267,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:268,1
    - Dst: setup_read
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:282,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:288,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:292,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (!stream->back_channel)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (dc->ao == NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (stream->chs.v2_carefd)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!rc)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (rc)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 294
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 294
    functionName: libxl__stream_read_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__carefd_fd
    - setup_read
    - stream_complete
    - LOG
    - libxl__stream_read_init
    - libxl__convert_legacy_stream
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_read_start(libxl__egc *egc,\n                              libxl__stream_read_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:299,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:300,1
    - Dst: stream_continue
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!stream->in_checkpoint)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 310
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 310
    functionName: libxl__stream_read_start_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - stream_continue
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_read_start_checkpoint(libxl__egc *egc,\n                                         libxl__stream_read_state
      *stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:315,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: libxl__stream_read_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - stream_complete
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_read_abort(libxl__egc *egc,\n                              libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:327,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:329,1
    - Dst: be64toh
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:334,1
    - Dst: be32toh
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:335,1
    - Dst: be32toh
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:336,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:340,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:347,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:353,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:357,1
    - Dst: stream_continue
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:360,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:364,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 366
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 366
    functionName: stream_header_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - stream_continue
    - stream_complete
    - be32toh
    - be64toh
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void stream_header_done(libxl__egc *egc,\n                               libxl__datacopier_state
      *dc,\n                               int rc, int onwrite, int errnoval)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:371,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:390,1
    - Dst: XEN_STAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:405,1
    - Dst: setup_read_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:406,1
    - Dst: process_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:408,1
    - Dst: setup_read_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:409,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:415,1
    - Dst: XEN_STAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:415,1
    - Dst: XEN_STAILQ_LAST
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:431,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:434,1
    - Dst: setup_read_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:437,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:457,1
    - Dst: process_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:459,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:468,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (stream->recursion_guard == false)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (XEN_STAILQ_EMPTY(&stream->record_queue))
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (stream->in_checkpoint)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (stream->recursion_guard == true)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (stream->in_checkpoint)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 473
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 473
    functionName: stream_continue
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - XEN_STAILQ_EMPTY
    - abort
    - XEN_STAILQ_LAST
    - setup_read_record
    - assert
    - process_record
    linkageType: ''
    returnType: void
    signature: "void stream_continue(libxl__egc *egc,\n                            libxl__stream_read_state
      *stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:479,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:482,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:483,1
    - Dst: setup_read
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:485,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:493,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (stream->incoming_record == NULL)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (rc)
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: setup_read_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__zalloc
    - setup_read
    - stream_complete
    - assert
    linkageType: ''
    returnType: void
    signature: "void setup_read_record(libxl__egc *egc,\n                              libxl__stream_read_state
      *stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:501,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:503,1
    - Dst: record_body_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:510,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:514,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:515,1
    - Dst: setup_read
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:517,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:525,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 527
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 527
    functionName: record_header_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - record_body_done
    - ROUNDUP
    - setup_read
    - stream_complete
    - libxl__malloc
    - assert
    linkageType: ''
    returnType: void
    signature: "void record_header_done(libxl__egc *egc,\n                               libxl__datacopier_state
      *dc,\n                               int rc, int onwrite, int errnoval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:533,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:535,1
    - Dst: XEN_STAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:540,1
    - Dst: stream_continue
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:543,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:547,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 546
        line_start: 546
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 549
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 549
    functionName: record_body_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - XEN_STAILQ_INSERT_TAIL
    - stream_complete
    - stream_continue
    - assert
    linkageType: ''
    returnType: void
    signature: "void record_body_done(libxl__egc *egc,\n                             libxl__datacopier_state
      *dc,\n                             int rc, int onwrite, int errnoval)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:562,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:570,1
    - Dst: XEN_STAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:570,1
    - Dst: XEN_STAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:571,1
    - Dst: XEN_STAILQ_REMOVE_HEAD
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:572,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:574,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:579,1
    - Dst: libxl__xc_domain_restore
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:583,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:589,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:596,1
    - Dst: libxl__restore_emulator_xenstore_data
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:601,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:617,1
    - Dst: write_emulator_blob
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:622,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:627,1
    - Dst: checkpoint_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:631,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:636,1
    - Dst: checkpoint_state_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:642,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:646,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:651,1
    - Dst: free_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:652,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:656,1
    - Dst: free_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:657,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:658,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 75
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!XEN_STAILQ_EMPTY(&stream->record_queue))
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!rc)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 660
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 660
    functionName: process_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - XEN_STAILQ_EMPTY
    - checkpoint_state_done
    - checkpoint_done
    - LOG
    - XEN_STAILQ_FIRST
    - XEN_STAILQ_REMOVE_HEAD
    - stream_complete
    - write_emulator_blob
    - libxl__xc_domain_restore
    - libxl__restore_emulator_xenstore_data
    - assert
    - free_record
    linkageType: ''
    returnType: bool
    signature: "bool process_record(libxl__egc *egc,\n                           libxl__stream_read_state
      *stream)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:669,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:675,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:680,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:682,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:683,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:684,1
    - Dst: libxl__carefd_opened
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:685,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:689,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:693,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:702,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:706,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:712,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - egc
    - stream
    - rec
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - libxl__sr_record_buf*
    assertStmts:
    - condition: (stream->emu_carefd == NULL)
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (rc)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 714
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 714
    functionName: write_emulator_blob
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - open
    - libxl__datacopier_start
    - sprintf
    - libxl__carefd_opened
    - libxl__datacopier_prefixdata
    - FILLZERO
    - stream_complete
    - LOGE
    - libxl__carefd_begin
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void write_emulator_blob(libxl__egc *egc,\n                                libxl__stream_read_state
      *stream,\n                                libxl__sr_record_buf *rec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:720,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:721,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:723,1
    - Dst: stream_continue
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:729,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:733,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 735
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 735
    functionName: write_emulator_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - stream_complete
    - libxl__carefd_close
    - stream_continue
    - assert
    linkageType: ''
    returnType: void
    signature: "void write_emulator_done(libxl__egc *egc,\n                                libxl__datacopier_state
      *dc,\n                                int rc, int onwrite, int errnoval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:742,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:745,1
    - Dst: checkpoint_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:752,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:757,1
    - Dst: checkpoint_state_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:767,1
    - Dst: stream_done
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (rc)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (rc)
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 772
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 772
    functionName: stream_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 9
    functionsReached:
    - checkpoint_state_done
    - assert
    - checkpoint_done
    - stream_done
    linkageType: ''
    returnType: void
    signature: "void stream_complete(libxl__egc *egc,\n                            libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:779,1
    - Dst: libxl__stream_read_state*::checkpoint_callback
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts:
    - condition: (stream->in_checkpoint)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 792
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 792
    functionName: checkpoint_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 2
    functionsReached:
    - assert
    - libxl__stream_read_state*::checkpoint_callback
    linkageType: ''
    returnType: void
    signature: "void checkpoint_done(libxl__egc *egc,\n                            libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:799,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:800,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:801,1
    - Dst: free_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:805,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:808,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:812,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:816,1
    - Dst: XEN_STAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:816,1
    - Dst: XEN_STAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:818,1
    - Dst: free_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:819,1
    - Dst: check_all_finished
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:832,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 798
        line_start: 798
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!stream->in_checkpoint_state)
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!stream->in_checkpoint)
      pos:
        line_end: 799
        line_start: 799
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (XEN_STAILQ_EMPTY(&stream->record_queue) || stream->rc)
      pos:
        line_end: 815
        line_start: 815
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 834
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 834
    functionName: stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - XEN_STAILQ_EMPTY
    - check_all_finished
    - libxl__carefd_close
    - XEN_STAILQ_FOREACH_SAFE
    - assert
    - free_record
    linkageType: ''
    returnType: void
    signature: "void stream_done(libxl__egc *egc,\n                        libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:841,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:850,1
    - Dst: check_all_finished
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:856,1
    - Dst: libxl__stream_read_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:864,1
    - Dst: libxl__stream_read_state*::completion_callback
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:872,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:875,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:884,1
    - Dst: stream_continue
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:891,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - egc
    - dcs_void
    - rc
    - retval
    - errnoval
    argTypes:
    - libxl__egc*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 895
    functionName: libxl__xc_domain_restore_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - libxl__stream_read_inuse
    - check_all_finished
    - LOGEV
    - stream_continue
    - stream_complete
    - libxl__stream_read_state*::completion_callback
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,\n
      \                                  int rc, int retval, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:900,1
    - Dst: check_all_finished
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - chs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 903
    functionName: conversion_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 0
    functionsReached:
    - check_all_finished
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void conversion_done(libxl__egc *egc,\n                            libxl__conversion_helper_state
      *chs, int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:908,1
    - Dst: libxl__stream_read_abort
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:932,1
    - Dst: libxl__save_helper_abort
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:933,1
    - Dst: libxl__conversion_helper_abort
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:934,1
    - Dst: libxl__stream_read_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:940,1
    - Dst: libxl__save_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:941,1
    - Dst: libxl__conversion_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:942,1
    - Dst: libxl__stream_read_state*::completion_callback
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:947,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 948
    functionName: check_all_finished
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - libxl__conversion_helper_inuse
    - libxl__stream_read_inuse
    - libxl__save_helper_abort
    - libxl__stream_read_state*::completion_callback
    - libxl__save_helper_inuse
    - libxl__stream_read_abort
    - libxl__conversion_helper_abort
    linkageType: ''
    returnType: void
    signature: "void check_all_finished(libxl__egc *egc,\n                               libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:955,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:956,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:957,1
    - Dst: setup_read_record
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 954
        line_start: 954
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!stream->in_checkpoint_state)
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    - condition: (!stream->in_checkpoint)
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 961
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 961
    functionName: libxl__stream_read_checkpoint_state
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 1
    functionsReached:
    - assert
    - setup_read_record
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_read_checkpoint_state(libxl__egc *egc,\n                                         libxl__stream_read_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:966,1
    - Dst: libxl__stream_read_state*::checkpoint_callback
      Src: /src/xen/tools/libs/light/libxl_stream_read.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts:
    - condition: (stream->in_checkpoint_state)
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/xen/tools/libs/light/libxl_stream_read.c
    constantsTouched: []
    func_position:
      end: 969
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 969
    functionName: checkpoint_state_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_read.c
    functionUses: 2
    functionsReached:
    - assert
    - libxl__stream_read_state*::checkpoint_callback
    linkageType: ''
    returnType: void
    signature: "void checkpoint_state_done(libxl__egc *egc,\n                                  libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpuid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: libxl__compute_mpdir
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t libxl__compute_mpdir(unsigned int cpuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: htobe16
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: htole16
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: be16toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: le16toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: htobe32
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: htole32
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: be32toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: le32toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: htobe64
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: htole64
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: be64toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: le64toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: htobe16
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: htole16
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: be16toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: le16toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: htobe32
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: htole32
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: be32toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: le32toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: htobe64
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: htole64
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: be64toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: le64toh
    functionSourceFile: /src/xen/tools/libs/light/libxl_osdeps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:36,1
    - Dst: init_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:38,1
    - Dst: init_subkind_qdisk
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:41,1
    - Dst: cleanup_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: init_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - init_subkind_qdisk
    - init_subkind_colo_nic
    - cleanup_subkind_colo_nic
    linkageType: ''
    returnType: int
    signature: int init_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:55,1
    - Dst: cleanup_subkind_colo_nic
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:57,1
    - Dst: cleanup_subkind_qdisk
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: cleanup_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - cleanup_subkind_colo_nic
    - cleanup_subkind_qdisk
    linkageType: ''
    returnType: void
    signature: void cleanup_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:83,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:90,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:93,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:103,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:105,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:108,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:110,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:111,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:124,1
    - Dst: libxl__stream_read_start
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:138,1
    - Dst: colo_proxy_setup
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:140,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:141,1
    - Dst: init_device_subkind
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:145,1
    - Dst: libxl__checkpoint_devices_setup
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:153,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 2
    argNames:
    - egc
    - css
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 159
    functionName: libxl__colo_save_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__ev_child_init
    - LOGD
    - libxl__xen_script_dir_path
    - init_device_subkind
    - libxl__checkpoint_devices_setup
    - libxl__stream_read_start
    - colo_proxy_setup
    - libxl__strdup
    - libxl__device_list
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_setup(libxl__egc *egc, libxl__colo_save_state
      *css)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:166,1
    - Dst: libxl__domain_save
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:170,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:174,1
    - Dst: libxl__checkpoint_devices_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: colo_save_setup_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_teardown
    - LOGD
    - libxl__domain_save
    linkageType: ''
    returnType: void
    signature: "void colo_save_setup_done(libxl__egc *egc,\n                                 libxl__checkpoint_devices_state
      *cds,\n                                 int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:184,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:185,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:188,1
    - Dst: cleanup_device_subkind
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:192,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 194
    functionName: colo_save_setup_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - cleanup_device_subkind
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void colo_save_setup_failed(libxl__egc *egc,\n                                   libxl__checkpoint_devices_state
      *cds,\n                                   int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:206,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:210,1
    - Dst: libxl__stream_read_abort
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:214,1
    - Dst: libxl__qmp_stop_replication
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:217,1
    - Dst: libxl__checkpoint_devices_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - egc
    - css
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: libxl__colo_save_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_teardown
    - LOGD
    - libxl__qmp_stop_replication
    - libxl__stream_read_abort
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_save_teardown(libxl__egc *egc,\n                               libxl__colo_save_state
      *css,\n                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:231,1
    - Dst: cleanup_device_subkind
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:233,1
    - Dst: colo_proxy_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:234,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: colo_teardown_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - cleanup_device_subkind
    - CONTAINER_OF
    - libxl__domain_save_state*::callback
    - colo_proxy_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_teardown_done(libxl__egc *egc,\n                               libxl__checkpoint_devices_state
      *cds,\n                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:268,1
    - Dst: libxl__domain_suspend
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: libxl__colo_save_domain_suspend_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - libxl__domain_suspend
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_domain_suspend_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:282,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:287,1
    - Dst: libxl__checkpoint_devices_postsuspend
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:295,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 301
    functionName: colo_suspend_primary_vm_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_devices_postsuspend
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_suspend_primary_vm_done(libxl__egc *egc,\n                                         libxl__domain_suspend_state
      *dsps,\n                                         int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:308,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:313,1
    - Dst: libxl__stream_read_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:327,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 333
    functionName: colo_postsuspend_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__stream_read_checkpoint_state
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void colo_postsuspend_cb(libxl__egc *egc,\n                                libxl__checkpoint_devices_state
      *cds,\n                                int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:340,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:345,1
    - Dst: libxl__qmp_query_xen_replication_status
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:351,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:352,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - egc
    - css
    - id
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 361
    functionName: colo_read_svm_suspended_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - libxl__qmp_query_xen_replication_status
    linkageType: ''
    returnType: void
    signature: "void colo_read_svm_suspended_done(libxl__egc *egc,\n                                         libxl__colo_save_state
      *css,\n                                         int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:368,1
    - Dst: libxl__stream_write_start_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 378
    functionName: libxl__colo_save_domain_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__stream_write_start_checkpoint
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_domain_checkpoint_callback(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:403,1
    - Dst: libxl__stream_read_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 415
    functionName: libxl__colo_save_domain_resume_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__stream_read_checkpoint_state
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_domain_resume_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:421,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:426,1
    - Dst: colo_proxy_preresume
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:431,1
    - Dst: libxl__checkpoint_devices_preresume
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:435,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - css
    - id
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 441
    functionName: colo_read_svm_ready_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - colo_proxy_preresume
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__checkpoint_devices_preresume
    linkageType: ''
    returnType: void
    signature: "void colo_read_svm_ready_done(libxl__egc *egc,\n                                     libxl__colo_save_state
      *css,\n                                     int id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:448,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:453,1
    - Dst: libxl__qmp_start_replication
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:458,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:459,1
    - Dst: libxl__qmp_colo_do_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:466,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:467,1
    - Dst: libxl__domain_resume_deprecated
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:473,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:474,1
    - Dst: libxl__domain_unpause_deprecated
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:483,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:485,1
    - Dst: libxl__stream_read_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:494,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:499,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 500
    functionName: colo_preresume_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__qmp_start_replication
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__stream_read_checkpoint_state
    - libxl__domain_unpause_deprecated
    - libxl__domain_resume_deprecated
    - libxl__qmp_colo_do_checkpoint
    linkageType: ''
    returnType: void
    signature: "void colo_preresume_cb(libxl__egc *egc,\n                              libxl__checkpoint_devices_state
      *cds,\n                              int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:507,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:512,1
    - Dst: colo_proxy_postresume
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:517,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - css
    - id
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 523
    functionName: colo_read_svm_resumed_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - colo_proxy_postresume
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void colo_read_svm_resumed_done(libxl__egc *egc,\n                                       libxl__colo_save_state
      *css,\n                                       int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:539,1
    - Dst: ASYNC_CALL
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - css
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: colo_proxy_wait_for_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - ASYNC_CALL
    linkageType: ''
    returnType: void
    signature: "void colo_proxy_wait_for_checkpoint(libxl__egc *egc,\n                                           libxl__colo_save_state
      *css)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: colo_proxy_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:550,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:553,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - css
    argTypes:
    - libxl__colo_save_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: colo_proxy_async_wait_for_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - _exit
    - colo_proxy_checkpoint
    linkageType: ''
    returnType: void
    signature: void colo_proxy_async_wait_for_checkpoint(libxl__colo_save_state *css)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:568,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:569,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:574,1
    - Dst: colo_start_new_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:575,1
    - Dst: colo_start_new_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 580
    functionName: colo_proxy_async_call_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - colo_start_new_checkpoint
    linkageType: ''
    returnType: void
    signature: "void colo_proxy_async_call_done(libxl__egc *egc,\n                                       libxl__ev_child
      *child,\n                                       int pid,\n                                       int
      status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:595,1
    - Dst: libxl__checkpoint_devices_commit
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: libxl__colo_save_domain_wait_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_commit
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_domain_wait_checkpoint_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:611,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:616,1
    - Dst: colo_proxy_wait_for_checkpoint
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:620,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 625
    functionName: colo_device_commit_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - colo_proxy_wait_for_checkpoint
    linkageType: ''
    returnType: void
    signature: "void colo_device_commit_cb(libxl__egc *egc,\n                                  libxl__checkpoint_devices_state
      *cds,\n                                  int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:632,1
    - Dst: libxl__stream_write_checkpoint_state
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:641,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 647
    functionName: colo_start_new_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__stream_write_checkpoint_state
    linkageType: ''
    returnType: void
    signature: "void colo_start_new_checkpoint(libxl__egc *egc,\n                                      libxl__checkpoint_devices_state
      *cds,\n                                      int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:655,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:665,1
    - Dst: libxl__colo_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:676,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 682
    functionName: colo_common_write_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - libxl__colo_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void colo_common_write_stream_done(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream,\n                                          int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:688,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:689,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:696,1
    - Dst: libxl__colo_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:708,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_colo_save.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 714
    functionName: colo_common_read_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_save.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - LOGD
    - libxl__colo_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void colo_common_read_stream_done(libxl__egc *egc,\n                                         libxl__stream_read_state
      *stream,\n                                         int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_device.c:23,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:27,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:28,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:31,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:32,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:35,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - device
    argTypes:
    - libxl__gc*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: libxl__device_frontend_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl__device_kind_to_string
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__device_frontend_path(libxl__gc *gc, libxl__device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_device.c:43,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:45,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - devid
    - device_kind
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    - libxl__device_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: libxl__domain_device_frontend_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 7
    functionsReached:
    - libxl__device_kind_to_string
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: "char *libxl__domain_device_frontend_path(libxl__gc *gc, uint32_t domid,
      uint32_t devid,\n                                         libxl__device_kind
      device_kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_device.c:51,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:53,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - device
    argTypes:
    - libxl__gc*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: libxl__device_backend_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 7
    functionsReached:
    - libxl__device_kind_to_string
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__device_backend_path(libxl__gc *gc, libxl__device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_device.c:62,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:64,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - gc
    - backend_domid
    - domid
    - devid
    - backend_kind
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    - uint32_t
    - libxl__device_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: libxl__domain_device_backend_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl__device_kind_to_string
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: "char *libxl__domain_device_backend_path(libxl__gc *gc, uint32_t backend_domid,\n
      \                                       uint32_t domid, uint32_t devid,\n                                        libxl__device_kind
      backend_kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:71,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:73,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - device
    argTypes:
    - libxl__gc*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: libxl__device_libxl_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - libxl__device_kind_to_string
    - GCSPRINTF
    - libxl__xs_libxl_path
    linkageType: ''
    returnType: char
    signature: char *libxl__device_libxl_path(libxl__gc *gc, libxl__device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:81,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:83,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - devid
    - device_kind
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    - libxl__device_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: libxl__domain_device_libxl_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 10
    functionsReached:
    - libxl__device_kind_to_string
    - GCSPRINTF
    - libxl__xs_libxl_path
    linkageType: ''
    returnType: char
    signature: "char *libxl__domain_device_libxl_path(libxl__gc *gc,  uint32_t domid,
      uint32_t devid,\n                                      libxl__device_kind device_kind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:92,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - gc
    - t
    - device
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: libxl__device_exists
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - libxl__xs_read_checked
    - libxl__device_libxl_path
    linkageType: ''
    returnType: int
    signature: "int libxl__device_exists(libxl__gc *gc, xs_transaction_t t,\n                         libxl__device
      *device)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_device.c:111,1
    - Dst: libxl__device_kind_from_string
      Src: /src/xen/tools/libs/light/libxl_device.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - path
    - dev
    argTypes:
    - libxl__gc*
    - char*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: libxl__parse_backend_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - sscanf
    - libxl__device_kind_from_string
    linkageType: ''
    returnType: int
    signature: "int libxl__parse_backend_path(libxl__gc *gc,\n                              const
      char *path,\n                              libxl__device *dev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:128,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_device.c:129,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:130,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_device.c:132,1
    - Dst: libxl_nic_type_from_string
      Src: /src/xen/tools/libs/light/libxl_device.c:136,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_device.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - gc
    - dev
    - nictype
    argTypes:
    - libxl__gc*
    - libxl__device*
    - libxl_nic_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 146
    functionName: libxl__nic_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - libxl__device_backend_path
    - libxl__xs_read
    - libxl_nic_type_from_string
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl__nic_type(libxl__gc *gc, libxl__device *dev, libxl_nic_type
      *nictype)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_device.c:151,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:162,1
    - Dst: libxl__device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:164,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:165,1
    - Dst: libxl__device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:167,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_device.c:181,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_device.c:183,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:190,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:194,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:194,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:198,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:198,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_device.c:204,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_device.c:206,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_device.c:215,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_device.c:216,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_device.c:219,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_device.c:220,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_device.c:223,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:223,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_device.c:224,1
    - Dst: libxl__xs_writev_perms
      Src: /src/xen/tools/libs/light/libxl_device.c:227,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_device.c:228,1
    - Dst: libxl__xs_writev_perms
      Src: /src/xen/tools/libs/light/libxl_device.c:232,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_device.c:233,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_device.c:240,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_device.c:242,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_device.c:244,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_device.c:245,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_device.c:247,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:247,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_device.c:248,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_device.c:250,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_device.c:277,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_device.c:284,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_device.c:288,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_device.c:296,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 111
    argCount: 6
    argNames:
    - gc
    - t
    - device
    - bents
    - fents
    - ro_fents
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - libxl__device*
    - char**
    - char**
    - char**
    assertStmts:
    - condition: (!fents && !ro_fents)
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/xen/tools/libs/light/libxl_device.c
    constantsTouched: []
    func_position:
      end: 298
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 298
    functionName: libxl__device_generic_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 4
    functionsReached:
    - xs_mkdir
    - libxl__device_frontend_path
    - xs_transaction_start
    - LOGED
    - strlen
    - libxl__device_libxl_path
    - ARRAY_SIZE
    - libxl__xs_rm_checked
    - xs_transaction_end
    - libxl__xs_write_checked
    - xs_write
    - xs_rm
    - GCSPRINTF
    - libxl__xs_transaction_abort
    - libxl__gc_owner
    - libxl__xs_writev_perms
    - libxl__xs_writev
    - libxl__device_backend_path
    - xs_set_permissions
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__device_generic_add(libxl__gc *gc, xs_transaction_t t,\n
      \       libxl__device *device, char **bents, char **fents, char **ro_fents)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_device.c:322,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:326,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:334,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:340,1
    - Dst: libxl__try_phy_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:345,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:348,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_device.c:357,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:360,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_device.c:374,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:378,1
    - Dst: libxl__try_phy_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:383,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:386,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:391,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_device.c:395,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:398,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:400,1
    - Dst: libxl_disk_format_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:401,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:405,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:406,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:410,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:411,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:415,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:416,1
    - Dst: libxl_disk_specification_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:417,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 2
    argNames:
    - a
    - backend
    argTypes:
    - disk_try_backend_args*
    - libxl_disk_backend
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 419
    functionName: disk_try_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl_disk_specification_to_string
    - abort
    - libxl_disk_format_to_string
    - libxl_disk_backend_to_string
    - LOG
    - libxl__try_phy_backend
    linkageType: ''
    returnType: int
    signature: "int disk_try_backend(disk_try_backend_args *a,\n                            libxl_disk_backend
      backend)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_device.c:427,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - be_path
    - domid_out
    argTypes:
    - libxl__gc*
    - char*
    - libxl_domid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 434
    functionName: libxl__backendpath_parse_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 10
    functionsReached:
    - LOG
    - sscanf
    linkageType: ''
    returnType: int
    signature: "int libxl__backendpath_parse_domid(libxl__gc *gc, const char *be_path,\n
      \                                  libxl_domid *domid_out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:443,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:444,1
    - Dst: libxl_disk_specification_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:445,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:449,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_device.c:453,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_device.c:454,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_device.c:455,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:456,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_device.c:461,1
    - Dst: stat
      Src: /src/xen/tools/libs/light/libxl_device.c:467,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_device.c:468,1
    - Dst: disk_try_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:475,1
    - Dst: disk_try_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:478,1
    - Dst: disk_try_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:479,1
    - Dst: disk_try_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:480,1
    - Dst: disk_try_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:481,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:483,1
    - Dst: libxl_disk_backend_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:485,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:488,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - gc
    - disk
    argTypes:
    - libxl__gc*
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 493
    functionName: libxl__device_disk_set_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl_disk_specification_to_string
    - libxl_disk_backend_to_string
    - strcmp
    - stat
    - strncmp
    - strlen
    - disk_try_backend
    - LOGE
    - memset
    - LOG
    linkageType: ''
    returnType: int
    signature: int libxl__device_disk_set_backend(libxl__gc *gc, libxl_device_disk
      *disk)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - format
    argTypes:
    - libxl_disk_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 506
    functionName: libxl__device_disk_string_of_format
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__device_disk_string_of_format(libxl_disk_format format)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - backend
    argTypes:
    - libxl_disk_backend
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 517
    functionName: libxl__device_disk_string_of_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__device_disk_string_of_backend(libxl_disk_backend backend)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - specification
    argTypes:
    - libxl_disk_specification
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: libxl__device_disk_string_of_specification
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__device_disk_string_of_specification(libxl_disk_specification
      specification)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - transport
    argTypes:
    - libxl_disk_transport
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: libxl__device_disk_string_of_transport
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__device_disk_string_of_transport(libxl_disk_transport transport)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - format
    argTypes:
    - libxl_disk_format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: libxl__qemu_disk_format_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl__qemu_disk_format_string(libxl_disk_format format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/xen/tools/libs/light/libxl_device.c:549,1
    - Dst: S_ISBLK
      Src: /src/xen/tools/libs/light/libxl_device.c:551,1
    - Dst: major
      Src: /src/xen/tools/libs/light/libxl_device.c:553,1
    - Dst: minor
      Src: /src/xen/tools/libs/light/libxl_device.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - physpath
    - major
    - minor
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: libxl__device_physdisk_major_minor
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - S_ISBLK
    - major
    - stat
    - minor
    linkageType: ''
    returnType: int
    signature: int libxl__device_physdisk_major_minor(const char *physpath, int *major,
      int *minor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_device.c:566,1
    - Dst: memcmp
      Src: /src/xen/tools/libs/light/libxl_device.c:567,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_device.c:598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - virtpath
    - devtype
    - index_r
    - max_index
    - partition_r
    - max_partition
    argTypes:
    - char*
    - char*
    - int*
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 604
    functionName: device_virtdisk_matches
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - strtoul
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int device_virtdisk_matches(const char *virtpath, const char *devtype,\n
      \                                  int *index_r, int max_index,\n                                   int
      *partition_r, int max_partition)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_device.c:615,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_device.c:616,1
    - Dst: device_virtdisk_matches
      Src: /src/xen/tools/libs/light/libxl_device.c:618,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_device.c:630,1
    - Dst: device_virtdisk_matches
      Src: /src/xen/tools/libs/light/libxl_device.c:638,1
    - Dst: device_virtdisk_matches
      Src: /src/xen/tools/libs/light/libxl_device.c:645,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 3
    argNames:
    - virtpath
    - pdisk
    - ppartition
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 653
    functionName: libxl__device_disk_dev_number
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 9
    functionsReached:
    - strtoul
    - device_virtdisk_matches
    - strlen
    - sscanf
    linkageType: ''
    returnType: int
    signature: "int libxl__device_disk_dev_number(const char *virtpath, int *pdisk,\n
      \                                 int *ppartition)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode_disk_name
      Src: /src/xen/tools/libs/light/libxl_device.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - n
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: encode_disk_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - encode_disk_name
    linkageType: ''
    returnType: char
    signature: char *encode_disk_name(char *ptr, unsigned int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_device.c:678,1
    - Dst: VDEV_IS_EXTENDED
      Src: /src/xen/tools/libs/light/libxl_device.c:687,1
    - Dst: BLKIF_MINOR_EXT
      Src: /src/xen/tools/libs/light/libxl_device.c:691,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/light/libxl_device.c:696,1
    - Dst: encode_disk_name
      Src: /src/xen/tools/libs/light/libxl_device.c:697,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_device.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - gc
    - devid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 710
    functionName: libxl__devid_to_vdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - snprintf
    - BLKIF_MINOR_EXT
    - VDEV_IS_EXTENDED
    - libxl__zalloc
    - encode_disk_name
    - strcpy
    linkageType: ''
    returnType: char
    signature: char *libxl__devid_to_vdev(libxl__gc *gc, int devid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 683
    functionName: VDEV_IS_EXTENDED
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDEV_IS_EXTENDED(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 684
    functionName: BLKIF_MINOR_EXT
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLKIF_MINOR_EXT(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_device.c:721,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_device.c:726,1
    - Dst: libxl__async_exec_init
      Src: /src/xen/tools/libs/light/libxl_device.c:730,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_device.c:731,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_device.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ao
    - aodev
    argTypes:
    - libxl__ao*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 734
    functionName: libxl__prepare_ao_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 5
    functionsReached:
    - libxl__ev_child_init
    - libxl__xswait_init
    - libxl__ev_qmp_init
    - libxl__async_exec_init
    - libxl__ev_time_init
    linkageType: ''
    returnType: void
    signature: void libxl__prepare_ao_device(libxl__ao *ao, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_device.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ao
    - multidev
    argTypes:
    - libxl__ao*
    - libxl__multidev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 758
    functionName: libxl__multidev_begin
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl__multidev_prepare
    linkageType: ''
    returnType: void
    signature: void libxl__multidev_begin(libxl__ao *ao, libxl__multidev *multidev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:762,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_device.c:766,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_device.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - multidev
    - aodev
    argTypes:
    - libxl__multidev*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 773
    functionName: libxl__multidev_prepare_with_aodev
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__prepare_ao_device
    - GCREALLOC_ARRAY
    linkageType: ''
    returnType: void
    signature: "void libxl__multidev_prepare_with_aodev(libxl__multidev *multidev,\n
      \                                       libxl__ao_device *aodev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:776,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:779,1
    - Dst: libxl__multidev_prepare_with_aodev
      Src: /src/xen/tools/libs/light/libxl_device.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - multidev
    argTypes:
    - libxl__multidev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 783
    functionName: libxl__multidev_prepare
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - libxl__multidev_prepare_with_aodev
    - STATE_AO_GC
    - GCNEW
    linkageType: ''
    returnType: libxl__ao_device
    signature: libxl__ao_device *libxl__multidev_prepare(libxl__multidev *multidev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:787,1
    - Dst: libxl__multidev*::callback
      Src: /src/xen/tools/libs/light/libxl_device.c:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 803
    functionName: libxl__multidev_one_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__multidev*::callback
    linkageType: ''
    returnType: void
    signature: void libxl__multidev_one_callback(libxl__egc *egc, libxl__ao_device
      *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__multidev_one_callback
      Src: /src/xen/tools/libs/light/libxl_device.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 810
    functionName: libxl__multidev_prepared
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl__multidev_one_callback
    linkageType: ''
    returnType: void
    signature: "void libxl__multidev_prepared(libxl__egc *egc,\n                              libxl__multidev
      *multidev, int rc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:818,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:825,1
    - Dst: libxl__device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:826,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_device.c:829,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_device.c:833,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:842,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:843,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:850,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:856,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_device.c:859,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_device.c:865,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - gc
    - dev
    argTypes:
    - libxl__gc*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 867
    functionName: libxl__device_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl__xs_transaction_commit
    - libxl__device_frontend_path
    - libxl__xs_path_cleanup
    - libxl__device_backend_path
    - libxl__xs_transaction_start
    - libxl__xs_transaction_abort
    - libxl__get_domid
    - libxl__device_libxl_path
    linkageType: ''
    returnType: int
    signature: int libxl__device_destroy(libxl__gc *gc, libxl__device *dev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:876,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_device.c:887,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:890,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:891,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_device.c:894,1
    - Dst: libxl__device_kind_from_string
      Src: /src/xen/tools/libs/light/libxl_device.c:900,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:903,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:904,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:908,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_device.c:910,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:911,1
    - Dst: libxl__parse_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:912,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:915,1
    - Dst: libxl__device_destroy
      Src: /src/xen/tools/libs/light/libxl_device.c:922,1
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_device.c:925,1
    - Dst: libxl__initiate_device_usbctrl_remove
      Src: /src/xen/tools/libs/light/libxl_device.c:930,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_device.c:932,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_device.c:938,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - egc
    - drs
    argTypes:
    - libxl__egc*
    - libxl__devices_remove_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 939
    functionName: libxl__devices_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__multidev_begin
    - GCNEW
    - libxl__multidev_prepare
    - libxl__initiate_device_usbctrl_remove
    - libxl__initiate_device_generic_remove
    - libxl__xs_read
    - libxl__parse_backend_path
    - libxl__xs_directory
    - libxl__device_kind_from_string
    - libxl__multidev_prepared
    - LOGE
    - libxl__device_destroy
    - atoi
    linkageType: ''
    returnType: void
    signature: void libxl__devices_destroy(libxl__egc *egc, libxl__devices_remove_state
      *drs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:981,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:982,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:983,1
    - Dst: QEMU_BACKEND
      Src: /src/xen/tools/libs/light/libxl_device.c:986,1
    - Dst: device_hotplug
      Src: /src/xen/tools/libs/light/libxl_device.c:994,1
    - Dst: libxl__ev_devstate_wait
      Src: /src/xen/tools/libs/light/libxl_device.c:998,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1003,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1011,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 979
    functionDepth: 3
    functionLinenumber: 979
    functionLinenumberEnd: 1013
    functionName: libxl__wait_device_connection
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - LOGD
    - libxl__device_backend_path
    - libxl__ev_devstate_wait
    - device_hotplug_done
    - QEMU_BACKEND
    - device_hotplug
    linkageType: ''
    returnType: void
    signature: void libxl__wait_device_connection(libxl__egc *egc, libxl__ao_device
      *aodev)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1018,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1020,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1021,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1022,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_device.c:1028,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_device.c:1030,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1032,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_device.c:1037,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1039,1
    - Dst: QEMU_BACKEND
      Src: /src/xen/tools/libs/light/libxl_device.c:1042,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_device.c:1048,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1052,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1061,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1063,1
    - Dst: libxl__xs_path_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:1068,1
    - Dst: libxl__device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1069,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1071,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1073,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1080,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1084,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:1092,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1093,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1093,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1095,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_device.c:1100,1
    - Dst: libxl__ev_devstate_wait
      Src: /src/xen/tools/libs/light/libxl_device.c:1105,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1110,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:1115,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:1120,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_device.c:1121,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1122,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 83
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1124
    functionName: libxl__initiate_device_generic_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 4
    functionsReached:
    - libxl__device_frontend_path
    - libxl__ev_devstate_wait
    - device_hotplug_done
    - libxl__xs_transaction_start
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl__xs_path_cleanup
    - libxl__xs_write_checked
    - libxl__xs_read_checked
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__xs_transaction_abort
    - QEMU_BACKEND
    - LOG
    - libxl__xs_transaction_commit
    - LOGD
    - libxl_domain_info
    - libxl__device_backend_path
    - libxl__get_domid
    - atoi
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void libxl__initiate_device_generic_remove(libxl__egc *egc,\n                                           libxl__ao_device
      *aodev)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1129,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1130,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1131,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1132,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_device.c:1139,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1142,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1144,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1154,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:1157,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1158,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1158,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_device.c:1162,1
    - Dst: device_hotplug
      Src: /src/xen/tools/libs/light/libxl_device.c:1167,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_device.c:1171,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1173,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1174
    functionName: device_qemu_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - libxl__xs_transaction_commit
    - libxl__device_backend_path
    - device_hotplug_done
    - libxl__xs_transaction_start
    - libxl__xs_transaction_abort
    - libxl__ev_time_deregister
    - device_hotplug
    - atoi
    - libxl__xs_write_checked
    - libxl__xs_read_checked
    linkageType: ''
    returnType: void
    signature: "void device_qemu_timeout(libxl__egc *egc, libxl__ev_time *ev,\n                                const
      struct timeval *requested_abs, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1178,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1179,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1181,1
    - Dst: device_backend_cleanup
      Src: /src/xen/tools/libs/light/libxl_device.c:1182,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1187,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_device.c:1189,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1194,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1196,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1197,1
    - Dst: device_hotplug
      Src: /src/xen/tools/libs/light/libxl_device.c:1201,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - egc
    - ds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_devstate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1176
    functionDepth: 4
    functionLinenumber: 1176
    functionLinenumberEnd: 1208
    functionName: device_backend_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__device_backend_path
    - libxl__initiate_device_generic_remove
    - device_hotplug_done
    - device_backend_cleanup
    - device_hotplug
    - libxl__device_action_to_string
    linkageType: ''
    returnType: void
    signature: "void device_backend_callback(libxl__egc *egc, libxl__ev_devstate *ds,\n
      \                                  int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_devstate_cancel
      Src: /src/xen/tools/libs/light/libxl_device.c:1213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - aodev
    argTypes:
    - libxl__gc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1214
    functionName: device_backend_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl__ev_devstate_cancel
    linkageType: ''
    returnType: void
    signature: void device_backend_cleanup(libxl__gc *gc, libxl__ao_device *aodev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1218,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1220,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_device.c:1230,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1232,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1236,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1241,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1250,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1252,1
    - Dst: libxl__get_hotplug_script_info
      Src: /src/xen/tools/libs/light/libxl_device.c:1262,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1268,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1275,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1277,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:1282,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1283,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1284,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1290,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1292,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1299,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_device.c:1303,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1305,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1311,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1320,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_device.c:1324,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:1325,1
    - Dst: libxl__async_exec_inuse
      Src: /src/xen/tools/libs/light/libxl_device.c:1325,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_device.c:1330,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1332,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts:
    - condition: (libxl__async_exec_inuse(&aodev->aes))
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/xen/tools/libs/light/libxl_device.c
    - condition: (args != NULL)
      pos:
        line_end: 1281
        line_start: 1281
        source_file: /src/xen/tools/libs/light/libxl_device.c
    constantsTouched: []
    func_position:
      end: 1334
      start: 1216
    functionDepth: 3
    functionLinenumber: 1216
    functionLinenumberEnd: 1334
    functionName: device_hotplug
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - open
    - LOGD
    - GCSPRINTF
    - libxl__async_exec_inuse
    - libxl__xswait_start
    - libxl__device_backend_path
    - device_hotplug_done
    - close
    - libxl__get_hotplug_script_info
    - libxl__get_domid
    - libxl__async_exec_start
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: void device_hotplug(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1340,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1341,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1342,1
    - Dst: device_hotplug_clean
      Src: /src/xen/tools/libs/light/libxl_device.c:1345,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_device.c:1348,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1349,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1351,1
    - Dst: device_hotplug
      Src: /src/xen/tools/libs/light/libxl_device.c:1371,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:1376,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts:
    - condition: (aodev->rc)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/xen/tools/libs/light/libxl_device.c
    constantsTouched: []
    func_position:
      end: 1378
      start: 1336
    functionDepth: 4
    functionLinenumber: 1336
    functionLinenumberEnd: 1378
    functionName: device_hotplug_child_death_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - device_hotplug_clean
    - GCSPRINTF
    - libxl__device_backend_path
    - libxl__xs_read
    - device_hotplug_done
    - device_hotplug
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void device_hotplug_child_death_cb(libxl__egc *egc,\n                                          libxl__async_exec_state
      *aes,\n                                          int rc, int status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1384,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1385,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1389,1
    - Dst: device_hotplug_done
      Src: /src/xen/tools/libs/light/libxl_device.c:1403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - egc
    - xswait
    - rc
    - dir
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1380
    functionDepth: 1
    functionLinenumber: 1380
    functionLinenumberEnd: 1404
    functionName: device_destroy_be_watch_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - device_hotplug_done
    linkageType: ''
    returnType: void
    signature: "void device_destroy_be_watch_cb(libxl__egc *egc,\n                                       libxl__xswait_state
      *xswait,\n                                       int rc, const char *dir)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1408,1
    - Dst: device_hotplug_clean
      Src: /src/xen/tools/libs/light/libxl_device.c:1411,1
    - Dst: libxl__device_destroy
      Src: /src/xen/tools/libs/light/libxl_device.c:1416,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_device.c:1421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1406
    functionDepth: 4
    functionLinenumber: 1406
    functionLinenumberEnd: 1423
    functionName: device_hotplug_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 7
    functionsReached:
    - libxl__device_destroy
    - STATE_AO_GC
    - libxl__ao_device*::callback
    - device_hotplug_clean
    linkageType: ''
    returnType: void
    signature: void device_hotplug_done(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_device.c:1428,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_device.c:1429,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:1430,1
    - Dst: libxl__async_exec_inuse
      Src: /src/xen/tools/libs/light/libxl_device.c:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - aodev
    argTypes:
    - libxl__gc*
    - libxl__ao_device*
    assertStmts:
    - condition: (!libxl__async_exec_inuse(&aodev->aes))
      pos:
        line_end: 1429
        line_start: 1429
        source_file: /src/xen/tools/libs/light/libxl_device.c
    constantsTouched: []
    func_position:
      end: 1431
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1431
    functionName: device_hotplug_clean
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - libxl__xswait_stop
    - libxl__ev_time_deregister
    - libxl__async_exec_inuse
    - assert
    linkageType: ''
    returnType: void
    signature: void device_hotplug_clean(libxl__gc *gc, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1436,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1437,1
    - Dst: libxl__devices_remove_state*::callback
      Src: /src/xen/tools/libs/light/libxl_device.c:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1441
    functionName: devices_remove_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl__devices_remove_state*::callback
    - STATE_AO_GC
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void devices_remove_callback(libxl__egc *egc,\n                                    libxl__multidev
      *multidev, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1447,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1451,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1455,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_device.c:1459,1
    - Dst: usleep
      Src: /src/xen/tools/libs/light/libxl_device.c:1462,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - gc
    - be_path
    - state
    argTypes:
    - libxl__gc*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1467
    functionName: libxl__wait_for_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - usleep
    - strcmp
    - LOG
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__wait_for_backend(libxl__gc *gc, const char *be_path,\n
      \                           const char *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1472,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1476,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1477,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1478,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1481,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1482,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_device.c:1488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1490
    functionName: device_addrm_aocomplete
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__device_kind_to_string
    - libxl__ao_complete
    - LOG
    - libxl__device_action_to_string
    linkageType: ''
    returnType: void
    signature: void device_addrm_aocomplete(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1500,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:1503,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1504,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1505,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_device.c:1509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - domid
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl__device_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1512
    functionName: libxl__device_nextid
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_libxl_path
    - libxl__device_kind_to_string
    - libxl__xs_directory
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__device_nextid(libxl__gc *gc, uint32_t domid,\n                         libxl__device_kind
      device)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1516,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1518,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1519,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:1520,1
    - Dst: libxl__nested_ao_free
      Src: /src/xen/tools/libs/light/libxl_device.c:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1514
    functionDepth: 3
    functionLinenumber: 1514
    functionLinenumberEnd: 1524
    functionName: device_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__nested_ao_free
    - libxl__device_backend_path
    - LOG
    - libxl__device_action_to_string
    linkageType: ''
    returnType: void
    signature: void device_complete(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1529,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1531,1
    - Dst: libxl__nested_ao_free
      Src: /src/xen/tools/libs/light/libxl_device.c:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1535
    functionName: qemu_xenpv_spawn_outcome
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - libxl__nested_ao_free
    - STATE_AO_GC
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void qemu_xenpv_spawn_outcome(libxl__egc *egc,\n                                     libxl__dm_spawn_state
      *dmss, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_SLIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_device.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ddomain
    - domid
    argTypes:
    - libxl__ddomain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1579
    functionName: search_for_guest
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_FOREACH
    linkageType: ''
    returnType: libxl__ddomain_guest
    signature: "libxl__ddomain_guest *search_for_guest(libxl__ddomain *ddomain,\n
      \                                              uint32_t domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_SLIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_device.c:1586,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1588,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1589,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1590,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1591,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1592,1
    - Dst: LIBXL_DEVICE_CMP
      Src: /src/xen/tools/libs/light/libxl_device.c:1593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - dguest
    - dev
    argTypes:
    - libxl__ddomain_guest*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1599
    functionName: search_for_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_FOREACH
    - LIBXL_DEVICE_CMP
    linkageType: ''
    returnType: libxl__ddomain_device
    signature: "libxl__ddomain_device *search_for_device(libxl__ddomain_guest *dguest,\n
      \                                               libxl__device *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev1
    - ','
    - dev2
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1588
    functionName: LIBXL_DEVICE_CMP
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEVICE_CMP(dev1, dev2, entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_device.c:1605,1
    - Dst: XEN_SLIST_FIRST
      Src: /src/xen/tools/libs/light/libxl_device.c:1607,1
    - Dst: XEN_SLIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_device.c:1608,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1610,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1612,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1613,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_device.c:1614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - ddomain
    - dguest
    argTypes:
    - libxl__gc*
    - libxl__ddomain*
    - libxl__ddomain_guest*
    assertStmts:
    - condition: (ddomain)
      pos:
        line_end: 1604
        line_start: 1604
        source_file: /src/xen/tools/libs/light/libxl_device.c
    constantsTouched: []
    func_position:
      end: 1616
      start: 1601
    functionDepth: 2
    functionLinenumber: 1601
    functionLinenumberEnd: 1616
    functionName: check_and_maybe_remove_guest
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - free
    - XEN_SLIST_REMOVE
    - libxl__xs_rm_checked
    - XEN_SLIST_FIRST
    - assert
    linkageType: ''
    returnType: void
    signature: "void check_and_maybe_remove_guest(libxl__gc *gc,\n                                         libxl__ddomain
      *ddomain,\n                                         libxl__ddomain_guest *dguest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_device.c:1639,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_device.c:1640,1
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_device.c:1642,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1643,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1644,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1650,1
    - Dst: libxl__spawn_qemu_xenpv_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:1655,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1660,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1661,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1666,1
    - Dst: libxl__wait_device_connection
      Src: /src/xen/tools/libs/light/libxl_device.c:1670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - egc
    - ao
    - dguest
    - dev
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - libxl__ddomain_guest*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1625
    functionDepth: 4
    functionLinenumber: 1625
    functionLinenumberEnd: 1675
    functionName: add_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl__wait_device_connection
    - LOGD
    - GCNEW
    - libxl__device_backend_path
    - libxl__zalloc
    - libxl__prepare_ao_device
    - XEN_SLIST_INSERT_HEAD
    - libxl__spawn_qemu_xenpv_backend
    linkageType: ''
    returnType: int
    signature: "int add_device(libxl__egc *egc, libxl__ao *ao,\n                      libxl__ddomain_guest
      *dguest,\n                      libxl__device *dev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__destroy_qemu_xenpv_backend
      Src: /src/xen/tools/libs/light/libxl_device.c:1690,1
    - Dst: libxl__device_destroy
      Src: /src/xen/tools/libs/light/libxl_device.c:1694,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1699,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1700,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1705,1
    - Dst: libxl__initiate_device_generic_remove
      Src: /src/xen/tools/libs/light/libxl_device.c:1709,1
    - Dst: XEN_SLIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_device.c:1721,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1722,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1723,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_device.c:1725,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_device.c:1726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - egc
    - ao
    - dguest
    - ddev
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - libxl__ddomain_guest*
    - libxl__ddomain_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1677
    functionDepth: 4
    functionLinenumber: 1677
    functionLinenumberEnd: 1730
    functionName: remove_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - LOGD
    - GCNEW
    - free
    - libxl__device_backend_path
    - libxl__initiate_device_generic_remove
    - libxl__prepare_ao_device
    - XEN_SLIST_REMOVE
    - libxl__destroy_qemu_xenpv_backend
    - libxl__device_destroy
    linkageType: ''
    returnType: int
    signature: "int remove_device(libxl__egc *egc, libxl__ao *ao,\n                         libxl__ddomain_guest
      *dguest,\n                         libxl__ddomain_device *ddev)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_device.c:1736,1
    - Dst: libxl__nested_ao_create
      Src: /src/xen/tools/libs/light/libxl_device.c:1737,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1738,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_device.c:1748,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_device.c:1749,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_device.c:1752,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_device.c:1752,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1758,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1758,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:1762,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1764,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1764,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:1768,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1770,1
    - Dst: libxl__parse_backend_path
      Src: /src/xen/tools/libs/light/libxl_device.c:1771,1
    - Dst: search_for_guest
      Src: /src/xen/tools/libs/light/libxl_device.c:1775,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_device.c:1785,1
    - Dst: XEN_SLIST_INIT
      Src: /src/xen/tools/libs/light/libxl_device.c:1787,1
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_device.c:1788,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1789,1
    - Dst: search_for_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1791,1
    - Dst: add_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1799,1
    - Dst: remove_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1803,1
    - Dst: check_and_maybe_remove_guest
      Src: /src/xen/tools/libs/light/libxl_device.c:1806,1
    - Dst: libxl__nested_ao_free
      Src: /src/xen/tools/libs/light/libxl_device.c:1810,1
    - Dst: libxl__nested_ao_free
      Src: /src/xen/tools/libs/light/libxl_device.c:1815,1
    - Dst: check_and_maybe_remove_guest
      Src: /src/xen/tools/libs/light/libxl_device.c:1816,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - egc
    - watch
    - watch_path
    - event_path
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1732
    functionDepth: 5
    functionLinenumber: 1732
    functionLinenumberEnd: 1818
    functionName: backend_watch_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - search_for_device
    - libxl__parse_backend_path
    - strcmp
    - libxl__nested_ao_create
    - check_and_maybe_remove_guest
    - XEN_SLIST_INSERT_HEAD
    - add_device
    - libxl__xs_read_checked
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - XEN_SLIST_INIT
    - GCNEW
    - libxl__strdup
    - remove_device
    - strrchr
    - search_for_guest
    - LOGD
    - libxl__nested_ao_free
    - libxl__zalloc
    - atoi
    linkageType: ''
    returnType: void
    signature: "void backend_watch_callback(libxl__egc *egc, libxl__ev_xswatch *watch,\n
      \                                  const char *watch_path,\n                                   const
      char *event_path)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_device.c:1824,1
    - Dst: XEN_SLIST_INIT
      Src: /src/xen/tools/libs/light/libxl_device.c:1837,1
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_device.c:1839,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_device.c:1841,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1849,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_device.c:1850,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:1854,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:1857,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1858,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:1862,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1863,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1867,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_device.c:1869,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:1872,1
    - Dst: backend_watch_callback
      Src: /src/xen/tools/libs/light/libxl_device.c:1874,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_device.c:1884,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - ctx
    - ao_how
    argTypes:
    - libxl_ctx*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1821
    functionDepth: 6
    functionLinenumber: 1821
    functionLinenumberEnd: 1885
    functionName: libxl_device_events_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_INIT
    - AO_CREATE
    - GCSPRINTF
    - atoi
    - backend_watch_callback
    - AO_CREATE_FAIL
    - libxl__get_domid
    - libxl__xs_directory
    - libxl__ev_xswatch_register
    - LOG
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl_device_events_handler(libxl_ctx *ctx,\n                                const
      libxl_asyncop_how *ao_how)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type_get_num
      Src: /src/xen/tools/libs/light/libxl_device.c:1894,1
    - Dst: libxl__device_type*::compare
      Src: /src/xen/tools/libs/light/libxl_device.c:1898,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_device.c:1898,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_device.c:1899,1
    - Dst: libxl__device_type_get_ptr
      Src: /src/xen/tools/libs/light/libxl_device.c:1904,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_device.c:1905,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_device.c:1907,1
    - Dst: libxl__device_type*::dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:1910,1
    - Dst: libxl__device_type*::init
      Src: /src/xen/tools/libs/light/libxl_device.c:1913,1
    - Dst: libxl__device_type*::copy
      Src: /src/xen/tools/libs/light/libxl_device.c:1914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - gc
    - d_config
    - dt
    - dev
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__device_type*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1887
    functionDepth: 1
    functionLinenumber: 1887
    functionLinenumberEnd: 1915
    functionName: device_add_domain_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 5
    functionsReached:
    - libxl__device_type_get_ptr
    - libxl__device_type_get_elem
    - libxl__realloc
    - libxl__device_type*::compare
    - libxl__device_type*::init
    - libxl__device_type_get_num
    - libxl__device_type*::dispose
    - libxl__device_type*::copy
    linkageType: ''
    returnType: void
    signature: "void device_add_domain_config(libxl__gc *gc, libxl_domain_config *d_config,\n
      \                             const libxl__device_type *dt, const void *dev)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_device.c:1921,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_device.c:1931,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_device.c:1933,1
    - Dst: libxl__device_type*::init
      Src: /src/xen/tools/libs/light/libxl_device.c:1935,1
    - Dst: libxl__device_type*::copy
      Src: /src/xen/tools/libs/light/libxl_device.c:1936,1
    - Dst: libxl__device_type*::set_default
      Src: /src/xen/tools/libs/light/libxl_device.c:1939,1
    - Dst: libxl__device_type*::update_devid
      Src: /src/xen/tools/libs/light/libxl_device.c:1944,1
    - Dst: libxl__device_type*::update_config
      Src: /src/xen/tools/libs/light/libxl_device.c:1949,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:1951,1
    - Dst: libxl__device_type*::to_device
      Src: /src/xen/tools/libs/light/libxl_device.c:1952,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_device.c:1956,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_device.c:1962,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_device.c:1965,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1967,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:1971,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:1972,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:1973,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:1975,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1975,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:1976,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:1977,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1978,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:1980,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1981,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:1982,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:1983,1
    - Dst: libxl__device_type*::set_xenstore_config
      Src: /src/xen/tools/libs/light/libxl_device.c:1986,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_device.c:1989,1
    - Dst: libxl__device_exists
      Src: /src/xen/tools/libs/light/libxl_device.c:1992,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_device.c:1995,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_device.c:2002,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_device.c:2006,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2007,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2008,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2009,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_device.c:2011,1
    - Dst: libxl__wait_device_connection
      Src: /src/xen/tools/libs/light/libxl_device.c:2018,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_device.c:2023,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_device.c:2024,1
    - Dst: libxl__device_type*::dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:2025,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:2026,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_device.c:2028,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 97
    argCount: 5
    argNames:
    - egc
    - domid
    - dt
    - type
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl__device_type*
    - void*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1917
    functionDepth: 5
    functionLinenumber: 1917
    functionLinenumberEnd: 2030
    functionName: libxl__device_add_async
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 1
    functionsReached:
    - libxl__device_type*::update_config
    - libxl__wait_device_connection
    - libxl__device_type*::set_xenstore_config
    - libxl__device_exists
    - libxl_domain_config_init
    - flexarray_append_pair
    - libxl__xs_transaction_start
    - libxl__ao_device*::callback
    - flexarray_make
    - libxl__device_type*::update_devid
    - libxl__dm_check_start
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__malloc
    - libxl__lock_domain_userdata
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW
    - libxl__device_type*::set_default
    - libxl__xs_transaction_abort
    - libxl__device_type*::to_device
    - libxl__set_domain_configuration
    - libxl__get_domain_configuration
    - libxl__device_type*::dispose
    - libxl__device_type*::copy
    - libxl__xs_transaction_commit
    - LOGD
    - libxl__device_type*::init
    - libxl__device_generic_add
    linkageType: ''
    returnType: void
    signature: "void libxl__device_add_async(libxl__egc *egc, uint32_t domid,\n                             const
      libxl__device_type *dt, void *type,\n                             libxl__ao_device
      *aodev)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type*::set_default
      Src: /src/xen/tools/libs/light/libxl_device.c:2041,1
    - Dst: libxl__device_type*::update_devid
      Src: /src/xen/tools/libs/light/libxl_device.c:2046,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_device.c:2050,1
    - Dst: libxl__device_type*::to_device
      Src: /src/xen/tools/libs/light/libxl_device.c:2051,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:2054,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:2055,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_device.c:2056,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:2058,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:2058,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:2059,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:2060,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:2061,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:2062,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_device.c:2063,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_device.c:2064,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:2065,1
    - Dst: libxl__device_type*::set_xenstore_config
      Src: /src/xen/tools/libs/light/libxl_device.c:2068,1
    - Dst: libxl__device_generic_add
      Src: /src/xen/tools/libs/light/libxl_device.c:2070,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2071,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2072,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_device.c:2073,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - gc
    - domid
    - dt
    - type
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl__device_type*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2032
    functionDepth: 5
    functionLinenumber: 2032
    functionLinenumberEnd: 2080
    functionName: libxl__device_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 2
    functionsReached:
    - GCSPRINTF
    - libxl__device_type*::set_xenstore_config
    - GCNEW
    - libxl__xs_kvs_of_flexarray
    - flexarray_append_pair
    - libxl__device_type*::set_default
    - libxl__sprintf
    - flexarray_make
    - libxl__device_type*::to_device
    - libxl__device_generic_add
    - libxl__device_type*::update_devid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_add(libxl__gc *gc, uint32_t domid,\n                      const
      libxl__device_type *dt, void *type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type*::get_path
      Src: /src/xen/tools/libs/light/libxl_device.c:2097,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:2100,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_device.c:2101,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_device.c:2102,1
    - Dst: libxl__device_type*::get_num
      Src: /src/xen/tools/libs/light/libxl_device.c:2106,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_device.c:2109,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_device.c:2117,1
    - Dst: libxl__device_type*::init
      Src: /src/xen/tools/libs/light/libxl_device.c:2121,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_device.c:2124,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_device.c:2126,1
    - Dst: libxl__device_type*::from_xenstore
      Src: /src/xen/tools/libs/light/libxl_device.c:2128,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_device.c:2144,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - gc
    - dt
    - domid
    - num
    argTypes:
    - libxl__gc*
    - libxl__device_type*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2082
    functionDepth: 2
    functionLinenumber: 2082
    functionLinenumberEnd: 2149
    functionName: libxl__device_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 5
    functionsReached:
    - libxl__device_list_free
    - GCSPRINTF
    - libxl__device_type*::get_path
    - libxl__device_type*::get_num
    - libxl__xs_libxl_path
    - libxl__device_type*::init
    - libxl__device_kind_to_string
    - libxl__xs_directory
    - libxl__device_type*::from_xenstore
    - libxl__malloc
    - atoi
    linkageType: ''
    returnType: void
    signature: "void *libxl__device_list(libxl__gc *gc, const libxl__device_type *dt,\n
      \                        uint32_t domid, int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type*::dispose
      Src: /src/xen/tools/libs/light/libxl_device.c:2157,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_device.c:2159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dt
    - list
    - num
    argTypes:
    - libxl__device_type*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2151
    functionDepth: 1
    functionLinenumber: 2151
    functionLinenumberEnd: 2160
    functionName: libxl__device_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_device.c
    functionUses: 4
    functionsReached:
    - free
    - libxl__device_type*::dispose
    linkageType: ''
    returnType: void
    signature: "void libxl__device_list_free(const libxl__device_type *dt,\n                             void
      *list, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - p
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: test_bit
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86_acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_bit(unsigned int b, const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_uuid_is_nil
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:24,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:25,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - gc
    - domid
    - vtpm
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vtpm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: libxl__device_vtpm_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - libxl_uuid_is_nil
    - libxl__resolve_domid
    - libxl_uuid_generate
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vtpm_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                        libxl_device_vtpm *vtpm, bool hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_device_vtpm*
    - libxl_device_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: libxl__update_config_vtpm
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - libxl_uuid_copy
    linkageType: ''
    returnType: void
    signature: "void libxl__update_config_vtpm(libxl__gc *gc, libxl_device_vtpm *dst,\n
      \                                     libxl_device_vtpm *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:43,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:43,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:44,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:45,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:46,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:47,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:49,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - gc
    - domid
    - vtpm
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vtpm*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: libxl__set_xenstore_vtpm
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - LIBXL_UUID_BYTES
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_vtpm(libxl__gc *gc, uint32_t domid,\n                                    libxl_device_vtpm
      *vtpm,\n                                    flexarray_t *back, flexarray_t *front,\n
      \                                   flexarray_t *ro_front)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - domid
    - vtpm
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_vtpm*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 6
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: libxl__device_vtpm_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - libxl__device_add_async
    linkageType: ''
    returnType: void
    signature: "void libxl__device_vtpm_add(libxl__egc *egc, uint32_t domid,\n                                   libxl_device_vtpm
      *vtpm,\n                                   libxl__ao_device *aodev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:71,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:72,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:76,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:79,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:79,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:81,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - vtpm
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 89
    functionName: libxl__vtpm_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl_uuid_from_string
    - libxl__backendpath_parse_domid
    - libxl__xs_read
    - libxl__xs_read_mandatory
    linkageType: ''
    returnType: int
    signature: "int libxl__vtpm_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                    libxl_devid devid,\n                                     libxl_device_vtpm
      *vtpm)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:96,1
    - Dst: libxl_vtpminfo_init
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:101,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:104,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:106,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:108,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:109,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:114,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:118,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:119,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:120,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:122,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:123,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:124,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:126,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:127,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:128,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:130,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:131,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:134,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:135,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:137,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:140,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - ctx
    - domid
    - vtpm
    - vtpminfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vtpm*
    - libxl_vtpminfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 153
    functionName: libxl_device_vtpm_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - LOGD
    - libxl_vtpminfo_init
    - libxl_uuid_from_string
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vtpm_getinfo(libxl_ctx *ctx,\n                              uint32_t
      domid,\n                              const libxl_device_vtpm *vtpm,\n                              libxl_vtpminfo
      *vtpminfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:160,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:165,1
    - Dst: libxl_device_vtpm_init
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:169,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:175,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - domid
    - devid
    - vtpm
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_device_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 184
    functionName: libxl_devid_to_device_vtpm
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_list_free
    - libxl__device_list
    - libxl_uuid_copy
    - libxl_device_vtpm_init
    linkageType: ''
    returnType: int
    signature: "int libxl_devid_to_device_vtpm(libxl_ctx *ctx,\n                               uint32_t
      domid,\n                               int devid,\n                               libxl_device_vtpm
      *vtpm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_DEVID
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_vtpm*
    - libxl_device_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: libxl_device_vtpm_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - COMPARE_DEVID
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vtpm_compare(const libxl_device_vtpm *d1,\n                                     const
      libxl_device_vtpm *d2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:195,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:200,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:204,1
    - Dst: libxl_uuid_compare
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:207,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:210,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - domid
    - uuid
    - vtpm
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_uuid*
    - libxl_device_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 219
    functionName: libxl_uuid_to_device_vtpm
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_list_free
    - libxl_uuid_compare
    - libxl__device_list
    - memset
    - libxl_uuid_copy
    linkageType: ''
    returnType: int
    signature: "int libxl_uuid_to_device_vtpm(libxl_ctx *ctx, uint32_t domid,\n                            libxl_uuid*
      uuid, libxl_device_vtpm *vtpm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__update_config_vtpm
      Src: /src/xen/tools/libs/light/libxl_vtpm.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - d
    - s
    argTypes:
    - libxl__gc*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: libxl_device_vtpm_update_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_vtpm.c
    functionUses: 0
    functionsReached:
    - libxl__update_config_vtpm
    linkageType: ''
    returnType: void
    signature: void libxl_device_vtpm_update_config(libxl__gc *gc, void *d, void *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - args
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: LIBXL__DBG_LOG
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__DBG_LOG(ctx, args, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - args
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: LIBXL__DBG_LOG
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__DBG_LOG(ctx, args, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - args
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: DBG
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBG(args, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: pollers_note_osevent_added
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void pollers_note_osevent_added(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__poller_wakeup
      Src: /src/xen/tools/libs/light/libxl_event.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - wake
    argTypes:
    - libxl__gc*
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: baton_wake
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__poller_wakeup
    linkageType: ''
    returnType: void
    signature: void baton_wake(libxl__gc *gc, libxl__poller *wake)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: baton_wake
      Src: /src/xen/tools/libs/light/libxl_event.c:190,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:192,1
    - Dst: baton_wake
      Src: /src/xen/tools/libs/light/libxl_event.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 208
    functionName: libxl__egc_ao_cleanup_1_baton
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - baton_wake
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void libxl__egc_ao_cleanup_1_baton(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - retval
    - ','
    - failedp
    - ','
    - evkind
    - ','
    - hookop
    - ','
    - nexusop
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: OSEVENT_HOOK_INTERN
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSEVENT_HOOK_INTERN(retval, failedp, evkind, hookop, nexusop, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - evkind
    - ','
    - hookop
    - ','
    - nexusop
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: OSEVENT_HOOK
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSEVENT_HOOK(evkind, hookop, nexusop, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nexus
    argTypes:
    - libxl_ctx*
    - libxl__osevent_hook_nexus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: osevent_ev_from_hook_nexus
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *osevent_ev_from_hook_nexus(libxl_ctx *ctx,\n           libxl__osevent_hook_nexus
      *nexus /* pass  void *for_libxl */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: osevent_release_nexus
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_INSERT_HEAD
    linkageType: ''
    returnType: void
    signature: "void osevent_release_nexus(libxl__gc *gc,\n                                  libxl__osevent_hook_nexi
      *nexi_idle,\n                                  libxl__osevent_hook_nexus *nexus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_SLIST_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:304,1
    - Dst: XEN_SLIST_REMOVE_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:306,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_event.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus_r
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: osevent_hook_pre_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_FIRST
    - libxl__zalloc
    - XEN_SLIST_REMOVE_HEAD
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_pre_alloc(libxl__gc *gc, void *ev,\n                                   libxl__osevent_hook_nexi
      *nexi_idle,\n                                   libxl__osevent_hook_nexus **nexus_r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osevent_release_nexus
      Src: /src/xen/tools/libs/light/libxl_event.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: osevent_hook_failed_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - osevent_release_nexus
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_failed_alloc(libxl__gc *gc, void *ev,\n                                      libxl__osevent_hook_nexi
      *nexi_idle,\n                                      libxl__osevent_hook_nexus
      **nexus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osevent_release_nexus
      Src: /src/xen/tools/libs/light/libxl_event.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: osevent_hook_pre_release
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - osevent_release_nexus
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_pre_release(libxl__gc *gc, void *ev,\n                                     libxl__osevent_hook_nexi
      *nexi_idle,\n                                     libxl__osevent_hook_nexus
      **nexus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_event.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: osevent_hook_failed_release
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_failed_release(libxl__gc *gc, void *ev,\n                                        libxl__osevent_hook_nexi
      *nexi_idle,\n                                        libxl__osevent_hook_nexus
      **nexus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: osevent_hook_pre_noop
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_pre_noop(libxl__gc *gc, void *ev,\n                                  libxl__osevent_hook_nexi
      *nexi_idle,\n                                  libxl__osevent_hook_nexus **nexus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - gc
    - ev
    - nexi_idle
    - nexus
    argTypes:
    - libxl__gc*
    - void*
    - libxl__osevent_hook_nexi*
    - libxl__osevent_hook_nexus**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: osevent_hook_failed_noop
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void osevent_hook_failed_noop(libxl__gc *gc, void *ev,\n                                     libxl__osevent_hook_nexi
      *nexi_idle,\n                                     libxl__osevent_hook_nexus
      **nexus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:353,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:357,1
    - Dst: OSEVENT_HOOK
      Src: /src/xen/tools/libs/light/libxl_event.c:359,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:367,1
    - Dst: pollers_note_osevent_added
      Src: /src/xen/tools/libs/light/libxl_event.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - gc
    - ev
    - func
    - fd
    - events
    argTypes:
    - libxl__gc*
    - libxl__ev_fd*
    - libxl__ev_fd_callback*
    - int
    - short
    assertStmts:
    - condition: (fd >= 0)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 375
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 375
    functionName: libxl__ev_fd_register
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - OSEVENT_HOOK
    - pollers_note_osevent_added
    - XEN_LIST_INSERT_HEAD
    - DBG
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_fd_register(libxl__gc *gc, libxl__ev_fd *ev,\n                          libxl__ev_fd_callback
      *func,\n                          int fd, short events)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:382,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:382,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:384,1
    - Dst: OSEVENT_HOOK
      Src: /src/xen/tools/libs/light/libxl_event.c:386,1
    - Dst: pollers_note_osevent_added
      Src: /src/xen/tools/libs/light/libxl_event.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - ev
    - events
    argTypes:
    - libxl__gc*
    - libxl__ev_fd*
    - short
    assertStmts:
    - condition: (libxl__ev_fd_isregistered(ev))
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 397
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 397
    functionName: libxl__ev_fd_modify
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - OSEVENT_HOOK
    - pollers_note_osevent_added
    - libxl__ev_fd_isregistered
    - DBG
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl__ev_fd_modify(libxl__gc *gc, libxl__ev_fd *ev, short events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:404,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:405,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:409,1
    - Dst: OSEVENT_HOOK_VOID
      Src: /src/xen/tools/libs/light/libxl_event.c:411,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:412,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - gc
    - ev
    argTypes:
    - libxl__gc*
    - libxl__ev_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 420
    functionName: libxl__ev_fd_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - XEN_LIST_REMOVE
    - libxl__ev_fd_isregistered
    - DBG
    - OSEVENT_HOOK_VOID
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void libxl__ev_fd_deregister(libxl__gc *gc, libxl__ev_fd *ev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/xen/tools/libs/light/libxl_event.c:430,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:431,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:436,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:438,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - fd
    - events
    argTypes:
    - libxl__egc*
    - int
    - short
    assertStmts:
    - condition: (r<0)
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!!r == !!check.revents)
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 444
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 444
    functionName: libxl__fd_poll_recheck
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - poll
    - assert
    - LIBXL__EVENT_DISASTER
    - DBG
    linkageType: ''
    returnType: short
    signature: short libxl__fd_poll_recheck(libxl__egc *egc, int fd, short events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/tools/libs/light/libxl_event.c:453,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_event.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - now_r
    argTypes:
    - libxl__gc*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: libxl__gettimeofday
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__gettimeofday(libxl__gc *gc, struct timeval *now_r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gettimeofday
      Src: /src/xen/tools/libs/light/libxl_event.c:470,1
    - Dst: timeradd
      Src: /src/xen/tools/libs/light/libxl_event.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gc
    - ms
    - abs_out
    argTypes:
    - libxl__gc*
    - int
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 475
    functionName: time_rel_to_abs
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - timeradd
    - libxl__gettimeofday
    linkageType: ''
    returnType: int
    signature: int time_rel_to_abs(libxl__gc *gc, int ms, struct timeval *abs_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSEVENT_HOOK
      Src: /src/xen/tools/libs/light/libxl_event.c:483,1
    - Dst: LIBXL_TAILQ_INSERT_SORTED
      Src: /src/xen/tools/libs/light/libxl_event.c:489,1
    - Dst: timercmp
      Src: /src/xen/tools/libs/light/libxl_event.c:490,1
    - Dst: pollers_note_osevent_added
      Src: /src/xen/tools/libs/light/libxl_event.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - ev
    - absolute
    argTypes:
    - libxl__gc*
    - libxl__ev_time*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 494
    functionName: time_register_finite
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - pollers_note_osevent_added
    - OSEVENT_HOOK
    - timercmp
    - LIBXL_TAILQ_INSERT_SORTED
    linkageType: ''
    returnType: int
    signature: "int time_register_finite(libxl__gc *gc, libxl__ev_time *ev,\n                                struct
      timeval absolute)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:498,1
    - Dst: OSEVENT_HOOK_VOID
      Src: /src/xen/tools/libs/light/libxl_event.c:504,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - ev
    argTypes:
    - libxl__gc*
    - libxl__ev_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 509
    functionName: time_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 7
    functionsReached:
    - OSEVENT_HOOK_VOID
    - libxl__ao_abortable_deregister
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void time_deregister(libxl__gc *gc, libxl__ev_time *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_event.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - func
    - ev
    - rc
    argTypes:
    - libxl__gc*
    - char*
    - libxl__ev_time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 520
    functionName: time_done_debug
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__log
    linkageType: ''
    returnType: void
    signature: "void time_done_debug(libxl__gc *gc, const char *func,\n                            libxl__ev_time
      *ev, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_event.c:524,1
    - Dst: time_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:527,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:528,1
    - Dst: libxl__ev_time*::func
      Src: /src/xen/tools/libs/light/libxl_event.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: time_aborted
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__ev_time*::func
    - time_deregister
    - DBG
    linkageType: ''
    returnType: void
    signature: void time_aborted(libxl__egc *egc, libxl__ao_abortable *abrt, int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_event.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ao
    - ev
    argTypes:
    - libxl__ao*
    - libxl__ev_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: time_register_abortable
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ao_abortable_register
    linkageType: ''
    returnType: int
    signature: int time_register_abortable(libxl__ao *ao, libxl__ev_time *ev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:548,1
    - Dst: time_register_abortable
      Src: /src/xen/tools/libs/light/libxl_event.c:551,1
    - Dst: time_register_finite
      Src: /src/xen/tools/libs/light/libxl_event.c:554,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:561,1
    - Dst: time_done_debug
      Src: /src/xen/tools/libs/light/libxl_event.c:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ao
    - ev
    - func
    - absolute
    argTypes:
    - libxl__ao*
    - libxl__ev_time*
    - libxl__ev_time_callback*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 565
    functionName: libxl__ev_time_register_abs
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - time_register_abortable
    - time_register_finite
    - time_done_debug
    - libxl__ao_abortable_deregister
    - DBG
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_time_register_abs(libxl__ao *ao, libxl__ev_time *ev,\n
      \                               libxl__ev_time_callback *func,\n                                struct
      timeval absolute)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:578,1
    - Dst: time_register_abortable
      Src: /src/xen/tools/libs/light/libxl_event.c:580,1
    - Dst: time_rel_to_abs
      Src: /src/xen/tools/libs/light/libxl_event.c:586,1
    - Dst: time_register_finite
      Src: /src/xen/tools/libs/light/libxl_event.c:589,1
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:597,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:598,1
    - Dst: time_done_debug
      Src: /src/xen/tools/libs/light/libxl_event.c:599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - ao
    - ev
    - func
    - milliseconds
    argTypes:
    - libxl__ao*
    - libxl__ev_time*
    - libxl__ev_time_callback*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 602
    functionName: libxl__ev_time_register_rel
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 7
    functionsReached:
    - libxl__ev_time_isregistered
    - time_register_abortable
    - time_register_finite
    - libxl__ao_abortable_deregister
    - time_done_debug
    - time_rel_to_abs
    - DBG
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_time_register_rel(libxl__ao *ao, libxl__ev_time *ev,\n
      \                               libxl__ev_time_callback *func,\n                                int
      milliseconds /* as for poll(2) */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:608,1
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:610,1
    - Dst: time_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:613,1
    - Dst: time_done_debug
      Src: /src/xen/tools/libs/light/libxl_event.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - gc
    - ev
    argTypes:
    - libxl__gc*
    - libxl__ev_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 620
    functionName: libxl__ev_time_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 7
    functionsReached:
    - libxl__ev_time_isregistered
    - time_done_debug
    - time_deregister
    - DBG
    linkageType: ''
    returnType: void
    signature: void libxl__ev_time_deregister(libxl__gc *gc, libxl__ev_time *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:626,1
    - Dst: func
      Src: /src/xen/tools/libs/light/libxl_event.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - etime
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 633
    functionName: time_occurs
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - func
    - DBG
    linkageType: ''
    returnType: void
    signature: void time_occurs(libxl__egc *egc, libxl__ev_time *etime, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_SLIST_NEXT
      Src: /src/xen/tools/libs/light/libxl_event.c:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - slotnum
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 670
    functionName: libxl__watch_slot_contents
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_SLIST_NEXT
    linkageType: ''
    returnType: libxl__ev_xswatch
    signature: libxl__ev_xswatch *libxl__watch_slot_contents(libxl__gc *gc, int slotnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - w
    argTypes:
    - libxl__ev_watch_slot*
    - libxl__ev_xswatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: libxl__set_watch_slot_contents
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__set_watch_slot_contents(libxl__ev_watch_slot *slot,\n
      \                                          libxl__ev_xswatch *w)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:687,1
    - Dst: xs_check_watch
      Src: /src/xen/tools/libs/light/libxl_event.c:690,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:694,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_event.c:702,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:704,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:711,1
    - Dst: libxl__watch_slot_contents
      Src: /src/xen/tools/libs/light/libxl_event.c:717,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:720,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:725,1
    - Dst: xs_path_is_subpath
      Src: /src/xen/tools/libs/light/libxl_event.c:743,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:744,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:750,1
    - Dst: libxl__ev_xswatch*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:752,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:755,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 757
    functionName: watchfd_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - free
    - LIBXL__EVENT_DISASTER
    - LIBXL__LOG
    - xs_check_watch
    - libxl__ev_xswatch*::callback
    - sscanf
    - xs_path_is_subpath
    - LOG
    - libxl__watch_slot_contents
    linkageType: ''
    returnType: void
    signature: "void watchfd_callback(libxl__egc *egc, libxl__ev_fd *ev,\n                             int
      fd, short events, short revents)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_event.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - slotnum
    - counterval
    argTypes:
    - libxl__gc*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 762
    functionName: watch_token
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *watch_token(libxl__gc *gc, int slotnum, uint32_t counterval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:766,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts:
    - condition: (CTX->nwatches>=0)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 769
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 769
    functionName: watches_check_fd_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    - libxl__ev_fd_deregister
    linkageType: ''
    returnType: void
    signature: void watches_check_fd_deregister(libxl__gc *gc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:781,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_event.c:782,1
    - Dst: xs_fileno
      Src: /src/xen/tools/libs/light/libxl_event.c:783,1
    - Dst: XEN_SLIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:787,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_event.c:793,1
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:797,1
    - Dst: XEN_SLIST_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:801,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:802,1
    - Dst: XEN_SLIST_REMOVE_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:803,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_event.c:805,1
    - Dst: watch_token
      Src: /src/xen/tools/libs/light/libxl_event.c:811,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:812,1
    - Dst: xs_watch
      Src: /src/xen/tools/libs/light/libxl_event.c:815,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_event.c:816,1
    - Dst: libxl__set_watch_slot_contents
      Src: /src/xen/tools/libs/light/libxl_event.c:825,1
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:834,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:835,1
    - Dst: watches_check_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:836,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - gc
    - w
    - func
    - path
    argTypes:
    - libxl__gc*
    - libxl__ev_xswatch*
    - libxl__ev_xswatch_callback*
    - char*
    assertStmts:
    - condition: (use)
      pos:
        line_end: 801
        line_start: 801
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 839
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 839
    functionName: libxl__ev_xswatch_register
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 2
    functionsReached:
    - XEN_SLIST_EMPTY
    - libxl__realloc
    - libxl__set_watch_slot_contents
    - XEN_SLIST_REMOVE_HEAD
    - free
    - watch_token
    - LOG
    - XEN_SLIST_INSERT_HEAD
    - xs_fileno
    - xs_watch
    - libxl__ev_fd_isregistered
    - strdup
    - XEN_SLIST_FIRST
    - LOGEV
    - watches_check_fd_deregister
    - assert
    - libxl__ev_fd_register
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_xswatch_register(libxl__gc *gc, libxl__ev_xswatch *w,\n
      \                              libxl__ev_xswatch_callback *func,\n                               const
      char *path /* copied */)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watch_token
      Src: /src/xen/tools/libs/light/libxl_event.c:847,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:849,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/libs/light/libxl_event.c:852,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_event.c:855,1
    - Dst: XEN_SLIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:858,1
    - Dst: watches_check_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:861,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:863,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - gc
    - w
    argTypes:
    - libxl__gc*
    - libxl__ev_xswatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 870
    functionName: libxl__ev_xswatch_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - free
    - XEN_SLIST_INSERT_HEAD
    - xs_unwatch
    - LOGEV
    - watch_token
    - watches_check_fd_deregister
    - LOG
    linkageType: ''
    returnType: void
    signature: void libxl__ev_xswatch_deregister(libxl__gc *gc, libxl__ev_xswatch
      *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:881,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:882,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:884,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - egc
    - revents
    argTypes:
    - libxl__egc*
    - int
    assertStmts:
    - condition: (revents & POLLIN)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 891
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 891
    functionName: evtchn_revents_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    - LIBXL__EVENT_DISASTER
    - LOG
    - libxl__ev_fd_deregister
    linkageType: ''
    returnType: int
    signature: int evtchn_revents_check(libxl__egc *egc, int revents)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_revents_check
      Src: /src/xen/tools/libs/light/libxl_event.c:901,1
    - Dst: libxl__fd_poll_recheck
      Src: /src/xen/tools/libs/light/libxl_event.c:910,1
    - Dst: evtchn_revents_check
      Src: /src/xen/tools/libs/light/libxl_event.c:913,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/libs/light/libxl_event.c:919,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:923,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:929,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:933,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:937,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:939,1
    - Dst: libxl__ev_evtchn*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:940,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 893
    functionDepth: 3
    functionLinenumber: 893
    functionLinenumberEnd: 942
    functionName: evtchn_fd_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - evtchn_revents_check
    - XEN_LIST_REMOVE
    - libxl__fd_poll_recheck
    - libxl__ev_evtchn*::callback
    - LIBXL__EVENT_DISASTER
    - xenevtchn_pending
    - DBG
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: "void evtchn_fd_callback(libxl__egc *egc, libxl__ev_fd *ev,\n                               int
      fd, short events, short revents)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/libs/light/libxl_event.c:951,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_event.c:953,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/libs/light/libxl_event.c:958,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:959,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_event.c:961,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/light/libxl_event.c:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts:
    - condition: (fd >= 0)
      pos:
        line_end: 958
        line_start: 958
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 970
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 970
    functionName: libxl__ctx_evtchn_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - xenevtchn_close
    - xenevtchn_fd
    - libxl_fd_set_nonblock
    - LOGE
    - assert
    - xenevtchn_open
    linkageType: ''
    returnType: int
    signature: int libxl__ctx_evtchn_init(libxl__gc *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:974,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: evtchn_check_fd_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ev_fd_deregister
    - XEN_LIST_EMPTY
    linkageType: ''
    returnType: void
    signature: void evtchn_check_fd_deregister(libxl__gc *gc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:982,1
    - Dst: libxl__ctx_evtchn_init
      Src: /src/xen/tools/libs/light/libxl_event.c:985,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_event.c:988,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_event.c:989,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/libs/light/libxl_event.c:990,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/light/libxl_event.c:997,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_event.c:999,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:1005,1
    - Dst: evtchn_check_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:1009,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - gc
    - evev
    argTypes:
    - libxl__gc*
    - libxl__ev_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 1011
    functionName: libxl__ev_evtchn_wait
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - xenevtchn_fd
    - LOGE
    - XEN_LIST_INSERT_HEAD
    - libxl__ev_fd_isregistered
    - DBG
    - evtchn_check_fd_deregister
    - libxl__ctx_evtchn_init
    - libxl__ev_fd_register
    linkageType: ''
    returnType: int
    signature: int libxl__ev_evtchn_wait(libxl__gc *gc, libxl__ev_evtchn *evev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:1015,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1022,1
    - Dst: evtchn_check_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - evev
    argTypes:
    - libxl__gc*
    - libxl__ev_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1013
    functionDepth: 3
    functionLinenumber: 1013
    functionLinenumberEnd: 1024
    functionName: libxl__ev_evtchn_cancel
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - evtchn_check_fd_deregister
    - DBG
    linkageType: ''
    returnType: void
    signature: void libxl__ev_evtchn_cancel(libxl__gc *gc, libxl__ev_evtchn *evev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_event.c:1034,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1038,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1043,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_event.c:1049,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1051,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1054,1
    - Dst: libxl__ev_devstate_cancel
      Src: /src/xen/tools/libs/light/libxl_event.c:1060,1
    - Dst: libxl__ev_devstate*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1061,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - egc
    - xsw
    - rc
    - sstate
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1062
    functionName: devstate_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOG
    - libxl__ev_devstate_cancel
    - libxl__ev_devstate*::callback
    - atoi
    linkageType: ''
    returnType: void
    signature: "void devstate_callback(libxl__egc *egc, libxl__xswait_state *xsw,\n
      \                             int rc, const char *sstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1071,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_event.c:1076,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_event.c:1081,1
    - Dst: libxl__ev_devstate_cancel
      Src: /src/xen/tools/libs/light/libxl_event.c:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - ao
    - ds
    - cb
    - state_path
    - state
    - milliseconds
    argTypes:
    - libxl__ao*
    - libxl__ev_devstate*
    - libxl__ev_devstate_callback
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1089
    functionName: libxl__ev_devstate_wait
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 2
    functionsReached:
    - libxl__xswait_start
    - GCSPRINTF
    - libxl__xswait_init
    - libxl__ev_devstate_cancel
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_devstate_wait(libxl__ao *ao, libxl__ev_devstate *ds,\n
      \                           libxl__ev_devstate_callback cb,\n                            const
      char *state_path, int state, int milliseconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_STAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_event.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - ei
    argTypes:
    - libxl__egc*
    - libxl__ev_immediate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1098
    functionName: libxl__ev_immediate_register
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_STAILQ_INSERT_TAIL
    linkageType: ''
    returnType: void
    signature: void libxl__ev_immediate_register(libxl__egc *egc, libxl__ev_immediate
      *ei)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1122,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dc
    argTypes:
    - libxl__domaindeathcheck*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: libxl__domaindeathcheck_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ao_abortable_init
    - libxl__ev_xswatch_init
    linkageType: ''
    returnType: void
    signature: void libxl__domaindeathcheck_init(libxl__domaindeathcheck *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:1128,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - dc
    argTypes:
    - libxl__gc*
    - libxl__domaindeathcheck*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1126
    functionDepth: 4
    functionLinenumber: 1126
    functionLinenumberEnd: 1130
    functionName: libxl__domaindeathcheck_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ev_xswatch_deregister
    - libxl__ao_abortable_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__domaindeathcheck_stop(libxl__gc *gc, libxl__domaindeathcheck
      *dc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_event.c:1135,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_event.c:1137,1
    - Dst: libxl__domaindeathcheck_stop
      Src: /src/xen/tools/libs/light/libxl_event.c:1140,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:1143,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1148,1
    - Dst: libxl__domaindeathcheck*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - egc
    - w
    - watch_path
    - event_path
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1132
    functionDepth: 5
    functionLinenumber: 1132
    functionLinenumberEnd: 1151
    functionName: domaindeathcheck_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LIBXL__EVENT_DISASTER
    - libxl__xs_read
    - libxl__domaindeathcheck*::callback
    - libxl__domaindeathcheck_stop
    - LOG
    linkageType: ''
    returnType: void
    signature: "void domaindeathcheck_callback(libxl__egc *egc, libxl__ev_xswatch
      *w,\n                            const char *watch_path, const char *event_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_event.c:1157,1
    - Dst: libxl__domaindeathcheck_stop
      Src: /src/xen/tools/libs/light/libxl_event.c:1160,1
    - Dst: libxl__domaindeathcheck*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1153
    functionDepth: 5
    functionLinenumber: 1153
    functionLinenumberEnd: 1162
    functionName: domaindeathcheck_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__domaindeathcheck*::callback
    - libxl__domaindeathcheck_stop
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void domaindeathcheck_abort(libxl__egc *egc,\n                                   libxl__ao_abortable
      *abrt,\n                                   int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_event.c:1169,1
    - Dst: libxl__domaindeathcheck_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1171,1
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_event.c:1175,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_event.c:1178,1
    - Dst: libxl__domaindeathcheck_stop
      Src: /src/xen/tools/libs/light/libxl_event.c:1185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ao
    - dc
    argTypes:
    - libxl__ao*
    - libxl__domaindeathcheck*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1164
    functionDepth: 5
    functionLinenumber: 1164
    functionLinenumberEnd: 1187
    functionName: libxl__domaindeathcheck_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__ao_abortable_register
    - libxl__domaindeathcheck_init
    - libxl__ev_xswatch_register
    - libxl__domaindeathcheck_stop
    linkageType: ''
    returnType: int
    signature: "int libxl__domaindeathcheck_start(libxl__ao *ao,\n                                  libxl__domaindeathcheck
      *dc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_FDS
      Src: /src/xen/tools/libs/light/libxl_event.c:1259,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1266,1
    - Dst: ARRAY_SIZE_OK
      Src: /src/xen/tools/libs/light/libxl_event.c:1266,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_event.c:1268,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_event.c:1270,1
    - Dst: REQUIRE_FDS
      Src: /src/xen/tools/libs/light/libxl_event.c:1280,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1285,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:1300,1
    - Dst: timersub
      Src: /src/xen/tools/libs/light/libxl_event.c:1306,1
    - Dst: timercmp
      Src: /src/xen/tools/libs/light/libxl_event.c:1308,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 6
    argNames:
    - gc
    - poller
    - nfds_io
    - fds
    - timeout_upd
    - now
    argTypes:
    - libxl__gc*
    - libxl__poller*
    - int*
    - struct pollfd*
    - int*
    - struct timeval
    assertStmts:
    - condition: (ARRAY_SIZE_OK(poller->fd_rindices, maxfd))
      pos:
        line_end: 1265
        line_start: 1265
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (req_fd < poller->fd_rindices_allocd)
      pos:
        line_end: 1284
        line_start: 1284
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1320
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1320
    functionName: beforepoll_internal
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - timercmp
    - memset
    - timersub
    - ARRAY_SIZE_OK
    - XEN_TAILQ_FIRST
    - REQUIRE_FDS
    - assert
    linkageType: ''
    returnType: int
    signature: "int beforepoll_internal(libxl__gc *gc, libxl__poller *poller,\n                               int
      *nfds_io, struct pollfd *fds,\n                               int *timeout_upd,
      struct timeval now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - BODY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1229
    functionName: REQUIRE_FDS
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FDS(BODY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - req_fd_
    - ','
    - req_events_
    - ','
    - BODY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1237
    functionName: REQUIRE_FD
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_FD(req_fd_, req_events_, BODY)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1326,1
    - Dst: beforepoll_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - nfds_io
    - fds
    - timeout_upd
    - now
    argTypes:
    - libxl_ctx*
    - int*
    - struct pollfd*
    - int*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1332
    functionName: libxl_osevent_beforepoll
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - beforepoll_internal
    linkageType: ''
    returnType: int
    signature: "int libxl_osevent_beforepoll(libxl_ctx *ctx, int *nfds_io,\n                             struct
      pollfd *fds, int *timeout_upd,\n                             struct timeval
      now)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - poller
    - fds
    - nfds
    - fd
    - events
    argTypes:
    - libxl__poller*
    - struct pollfd*
    - int
    - int
    - int
    assertStmts:
    - condition: (poller->fds_deregistered || !(fds[slot].revents & POLLNVAL))
      pos:
        line_end: 1362
        line_start: 1362
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1376
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1376
    functionName: afterpoll_check_fd
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int afterpoll_check_fd(libxl__poller *poller,\n                              const
      struct pollfd *fds, int nfds,\n                              int fd, int events)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__fd_poll_recheck
      Src: /src/xen/tools/libs/light/libxl_event.c:1380,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:1383,1
    - Dst: libxl__ev_fd*::func
      Src: /src/xen/tools/libs/light/libxl_event.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - efd
    - revents_ign
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1388
    functionName: fd_occurs
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ev_fd*::func
    - libxl__fd_poll_recheck
    - DBG
    linkageType: ''
    returnType: void
    signature: void fd_occurs(libxl__egc *egc, libxl__ev_fd *efd, short revents_ign)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:1438,1
    - Dst: afterpoll_check_fd
      Src: /src/xen/tools/libs/light/libxl_event.c:1443,1
    - Dst: fd_occurs
      Src: /src/xen/tools/libs/light/libxl_event.c:1452,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:1456,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1460,1
    - Dst: timercmp
      Src: /src/xen/tools/libs/light/libxl_event.c:1462,1
    - Dst: time_deregister
      Src: /src/xen/tools/libs/light/libxl_event.c:1465,1
    - Dst: time_occurs
      Src: /src/xen/tools/libs/light/libxl_event.c:1467,1
    - Dst: afterpoll_check_fd
      Src: /src/xen/tools/libs/light/libxl_event.c:1470,1
    - Dst: libxl__self_pipe_eatall
      Src: /src/xen/tools/libs/light/libxl_event.c:1472,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:1473,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - egc
    - poller
    - nfds
    - fds
    - now
    argTypes:
    - libxl__egc*
    - libxl__poller*
    - int
    - struct pollfd*
    - struct timeval
    assertStmts:
    - condition: (!etime->infinite)
      pos:
        line_end: 1459
        line_start: 1459
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1475
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1475
    functionName: afterpoll_internal
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - time_occurs
    - afterpoll_check_fd
    - timercmp
    - time_deregister
    - LIBXL__EVENT_DISASTER
    - fd_occurs
    - libxl__self_pipe_eatall
    - assert
    - XEN_TAILQ_FIRST
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: "void afterpoll_internal(libxl__egc *egc, libxl__poller *poller,\n
      \                              int nfds, const struct pollfd *fds,\n                               struct
      timeval now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1480,1
    - Dst: afterpoll_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - nfds
    - fds
    - now
    argTypes:
    - libxl_ctx*
    - int
    - struct pollfd*
    - struct timeval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1477
    functionDepth: 4
    functionLinenumber: 1477
    functionLinenumberEnd: 1484
    functionName: libxl_osevent_afterpoll
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - afterpoll_internal
    linkageType: ''
    returnType: void
    signature: "void libxl_osevent_afterpoll(libxl_ctx *ctx, int nfds, const struct
      pollfd *fds,\n                             struct timeval now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1494,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1496,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:1496,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1497,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - hooks
    - user
    argTypes:
    - libxl_ctx*
    - libxl_osevent_hooks*
    - void*
    assertStmts:
    - condition: (XEN_TAILQ_EMPTY(&ctx->etimes))
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (XEN_LIST_EMPTY(&ctx->efds))
      pos:
        line_end: 1495
        line_start: 1495
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1502
      start: 1490
    functionDepth: 1
    functionLinenumber: 1490
    functionLinenumberEnd: 1502
    functionName: libxl_osevent_register_hooks
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - assert
    - XEN_LIST_EMPTY
    - XEN_TAILQ_EMPTY
    linkageType: ''
    returnType: void
    signature: "void libxl_osevent_register_hooks(libxl_ctx *ctx,\n                                  const
      libxl_osevent_hooks *hooks,\n                                  void *user)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1508,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1510,1
    - Dst: osevent_ev_from_hook_nexus
      Src: /src/xen/tools/libs/light/libxl_event.c:1512,1
    - Dst: fd_occurs
      Src: /src/xen/tools/libs/light/libxl_event.c:1516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - for_libxl
    - fd
    - events_ign
    - revents_ign
    argTypes:
    - libxl_ctx*
    - void*
    - int
    - short
    - short
    assertStmts:
    - condition: (!CTX->osevent_in_hook)
      pos:
        line_end: 1509
        line_start: 1509
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1520
      start: 1505
    functionDepth: 3
    functionLinenumber: 1505
    functionLinenumberEnd: 1520
    functionName: libxl_osevent_occurred_fd
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - fd_occurs
    - assert
    - osevent_ev_from_hook_nexus
    linkageType: ''
    returnType: void
    signature: "void libxl_osevent_occurred_fd(libxl_ctx *ctx, void *for_libxl,\n
      \                              int fd, short events_ign, short revents_ign)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1524,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1526,1
    - Dst: osevent_ev_from_hook_nexus
      Src: /src/xen/tools/libs/light/libxl_event.c:1529,1
    - Dst: osevent_release_nexus
      Src: /src/xen/tools/libs/light/libxl_event.c:1531,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1534,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1536,1
    - Dst: time_occurs
      Src: /src/xen/tools/libs/light/libxl_event.c:1538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - for_libxl
    argTypes:
    - libxl_ctx*
    - void*
    assertStmts:
    - condition: (!CTX->osevent_in_hook)
      pos:
        line_end: 1525
        line_start: 1525
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ev->infinite)
      pos:
        line_end: 1533
        line_start: 1533
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1542
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1542
    functionName: libxl_osevent_occurred_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - time_occurs
    - EGC_INIT
    - osevent_ev_from_hook_nexus
    - osevent_release_nexus
    - assert
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void libxl_osevent_occurred_timeout(libxl_ctx *ctx, void *for_libxl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_event.c:1548,1
    - Dst: libxl_event_type_to_string
      Src: /src/xen/tools/libs/light/libxl_event.c:1552,1
    - Dst: event_hooks::disaster
      Src: /src/xen/tools/libs/light/libxl_event.c:1556,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1562,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_event.c:1563,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_event.c:1564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - gc
    - msg
    - errnoval
    - type
    - file
    - line
    - func
    argTypes:
    - libxl__gc*
    - char*
    - int
    - libxl_event_type
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1565
    functionName: libxl__event_disaster
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - event_hooks::disaster
    - LIBXL__LOG
    - fprintf
    - libxl__log
    - libxl_event_type_to_string
    - exit
    linkageType: ''
    returnType: void
    signature: "void libxl__event_disaster(libxl__gc *gc, const char *msg, int errnoval,\n
      \                          libxl_event_type type /* may be 0 */,\n                           const
      char *file, int line, const char *func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_STAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:1579,1
    - Dst: XEN_STAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:1580,1
    - Dst: XEN_STAILQ_REMOVE_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:1581,1
    - Dst: libxl__ev_immediate*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1585,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_event.c:1589,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1590,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1591,1
    - Dst: libxl_event_type_to_string
      Src: /src/xen/tools/libs/light/libxl_event.c:1592,1
    - Dst: event_hooks::event_occurs
      Src: /src/xen/tools/libs/light/libxl_event.c:1593,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_event.c:1596,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1597,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1598,1
    - Dst: libxl__aop_occurred*::how::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1599,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1602,1
    - Dst: libxl__ao_complete_check_progress_reports
      Src: /src/xen/tools/libs/light/libxl_event.c:1604,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_event.c:1609,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1611,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:1612,1
    - Dst: libxl__ao*::how::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:1613,1
    - Dst: ao__check_destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - egc
    argTypes:
    - libxl__egc*
    assertStmts:
    - condition: (aop->ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1619
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1619
    functionName: egc_run_callbacks
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    - ao__check_destroy
    - XEN_STAILQ_EMPTY
    - event_hooks::event_occurs
    - libxl__aop_occurred*::how::callback
    - libxl__ao_complete_check_progress_reports
    - XEN_STAILQ_FIRST
    - XEN_TAILQ_FOREACH_SAFE
    - XEN_STAILQ_REMOVE_HEAD
    - libxl__ao*::how::callback
    - libxl_event_type_to_string
    - LOG
    - libxl__ev_immediate*::callback
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void egc_run_callbacks(libxl__egc *egc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: egc_run_callbacks
      Src: /src/xen/tools/libs/light/libxl_event.c:1624,1
    - Dst: libxl__free_all
      Src: /src/xen/tools/libs/light/libxl_event.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - egc
    argTypes:
    - libxl__egc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1621
    functionDepth: 2
    functionLinenumber: 1621
    functionLinenumberEnd: 1627
    functionName: libxl__egc_cleanup_2_ul_cb_gc
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - egc_run_callbacks
    - libxl__free_all
    linkageType: ''
    returnType: void
    signature: void libxl__egc_cleanup_2_ul_cb_gc(libxl__egc *egc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - hooks
    - user
    argTypes:
    - libxl_ctx*
    - libxl_event_hooks*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1638
    functionName: libxl_event_register_callbacks
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl_event_register_callbacks(libxl_ctx *ctx,\n                  const
      libxl_event_hooks *hooks, void *user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_event.c:1650,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_event.c:1654,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:1655,1
    - Dst: libxl__poller_wakeup
      Src: /src/xen/tools/libs/light/libxl_event.c:1656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - egc
    - event
    argTypes:
    - libxl__egc*
    - libxl_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1658
    functionName: libxl__event_occurred
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - XEN_TAILQ_INSERT_TAIL
    - libxl__poller_wakeup
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void libxl__event_occurred(libxl__egc *egc, libxl_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_event_dispose
      Src: /src/xen/tools/libs/light/libxl_event.c:1663,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - event
    argTypes:
    - libxl_ctx*
    - libxl_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1665
    functionName: libxl_event_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_event_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_event_free(libxl_ctx *ctx, libxl_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_event.c:1674,1
    - Dst: libxl_event_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1676,1
    - Dst: libxl_event_init_type
      Src: /src/xen/tools/libs/light/libxl_event.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - type
    - domid
    - for_user
    argTypes:
    - libxl__egc*
    - libxl_event_type
    - uint32_t
    - libxl_ev_user
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1683
    functionName: libxl__event_new
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__zalloc
    - libxl_event_init
    - libxl_event_init_type
    linkageType: ''
    returnType: libxl_event
    signature: "libxl_event *libxl__event_new(libxl__egc *egc,\n                              libxl_event_type
      type, uint32_t domid,\n                              libxl_ev_user for_user)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:1693,1
    - Dst: pred
      Src: /src/xen/tools/libs/light/libxl_event.c:1697,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - egc
    - event_r
    - typemask
    - pred
    - pred_user
    argTypes:
    - libxl__egc*
    - libxl_event**
    - unsigned long
    - libxl_event_predicate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1685
    functionDepth: 1
    functionLinenumber: 1685
    functionLinenumberEnd: 1710
    functionName: event_check_internal
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_FOREACH
    - pred
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: int
    signature: "int event_check_internal(libxl__egc *egc, libxl_event **event_r,\n
      \                               unsigned long typemask,\n                                libxl_event_predicate
      *pred, void *pred_user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1716,1
    - Dst: event_check_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - event_r
    - typemask
    - pred
    - pred_user
    argTypes:
    - libxl_ctx*
    - libxl_event**
    - uint64_t
    - libxl_event_predicate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1721
    functionName: libxl_event_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - event_check_internal
    linkageType: ''
    returnType: int
    signature: "int libxl_event_check(libxl_ctx *ctx, libxl_event **event_r,\n                      uint64_t
      typemask,\n                      libxl_event_predicate *pred, void *pred_user)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_event.c:1729,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_event.c:1730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fds
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1732
    functionName: libxl__pipe_close
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void libxl__pipe_close(int fds[2])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_pipe
      Src: /src/xen/tools/libs/light/libxl_event.c:1738,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_event.c:1745,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_event.c:1748,1
    - Dst: libxl__pipe_close
      Src: /src/xen/tools/libs/light/libxl_event.c:1754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - fds
    argTypes:
    - libxl_ctx*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1756
    functionName: libxl__pipe_nonblock
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl_pipe
    - libxl_fd_set_nonblock
    - libxl__pipe_close
    linkageType: ''
    returnType: int
    signature: int libxl__pipe_nonblock(libxl_ctx *ctx, int fds[2])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_event.c:1764,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1766,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_event.c:1769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts:
    - condition: (r==-1)
      pos:
        line_end: 1765
        line_start: 1765
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1772
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1772
    functionName: libxl__self_pipe_wakeup
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    - write
    - abort
    linkageType: ''
    returnType: int
    signature: int libxl__self_pipe_wakeup(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_event.c:1778,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1781,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:1784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts:
    - condition: (errno)
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (r == -1)
      pos:
        line_end: 1780
        line_start: 1780
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 1787
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1787
    functionName: libxl__self_pipe_eatall
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - read
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl__self_pipe_eatall(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__pipe_nonblock
      Src: /src/xen/tools/libs/light/libxl_event.c:1800,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_event.c:1803,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_event.c:1804,1
    - Dst: libxl__poller_dispose
      Src: /src/xen/tools/libs/light/libxl_event.c:1809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - gc
    - p
    argTypes:
    - libxl__gc*
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1811
    functionName: libxl__poller_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl_fd_set_cloexec
    - libxl__poller_dispose
    - libxl__pipe_nonblock
    linkageType: ''
    returnType: int
    signature: int libxl__poller_init(libxl__gc *gc, libxl__poller *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__pipe_close
      Src: /src/xen/tools/libs/light/libxl_event.c:1815,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:1816,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1818
    functionName: libxl__poller_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - free
    - libxl__pipe_close
    linkageType: ''
    returnType: void
    signature: void libxl__poller_dispose(libxl__poller *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:1825,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1827,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_event.c:1829,1
    - Dst: libxl__poller_init
      Src: /src/xen/tools/libs/light/libxl_event.c:1831,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:1833,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:1838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1820
    functionDepth: 3
    functionLinenumber: 1820
    functionLinenumberEnd: 1840
    functionName: libxl__poller_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - XEN_LIST_FIRST
    - free
    - libxl__zalloc
    - libxl__poller_init
    - XEN_LIST_INSERT_HEAD
    linkageType: ''
    returnType: libxl__poller
    signature: libxl__poller *libxl__poller_get(libxl__gc *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:1845,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:1846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - libxl_ctx*
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1847
    functionName: libxl__poller_put
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - XEN_LIST_INSERT_HEAD
    linkageType: ''
    returnType: void
    signature: void libxl__poller_put(libxl_ctx *ctx, libxl__poller *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__self_pipe_wakeup
      Src: /src/xen/tools/libs/light/libxl_event.c:1853,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_event.c:1854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - p
    argTypes:
    - libxl__gc*
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1855
    functionName: libxl__poller_wakeup
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 2
    functionsReached:
    - libxl__self_pipe_wakeup
    - LIBXL__EVENT_DISASTER
    linkageType: ''
    returnType: void
    signature: void libxl__poller_wakeup(libxl__gc *gc, libxl__poller *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gettimeofday
      Src: /src/xen/tools/libs/light/libxl_event.c:1869,1
    - Dst: beforepoll_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1877,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_event.c:1884,1
    - Dst: poll
      Src: /src/xen/tools/libs/light/libxl_event.c:1893,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_event.c:1900,1
    - Dst: libxl__gettimeofday
      Src: /src/xen/tools/libs/light/libxl_event.c:1905,1
    - Dst: afterpoll_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1908,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - egc
    - poller
    argTypes:
    - libxl__egc*
    - libxl__poller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1861
    functionDepth: 4
    functionLinenumber: 1861
    functionLinenumberEnd: 1913
    functionName: eventloop_iteration
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - afterpoll_internal
    - beforepoll_internal
    - libxl__gettimeofday
    - LOGEV
    - poll
    linkageType: ''
    returnType: int
    signature: int eventloop_iteration(libxl__egc *egc, libxl__poller *poller)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_event.c:1922,1
    - Dst: libxl__poller_get
      Src: /src/xen/tools/libs/light/libxl_event.c:1925,1
    - Dst: event_check_internal
      Src: /src/xen/tools/libs/light/libxl_event.c:1929,1
    - Dst: eventloop_iteration
      Src: /src/xen/tools/libs/light/libxl_event.c:1932,1
    - Dst: libxl__egc_cleanup_2_ul_cb_gc
      Src: /src/xen/tools/libs/light/libxl_event.c:1943,1
    - Dst: libxl__poller_put
      Src: /src/xen/tools/libs/light/libxl_event.c:1948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - ctx
    - event_r
    - typemask
    - pred
    - pred_user
    argTypes:
    - libxl_ctx*
    - libxl_event**
    - uint64_t
    - libxl_event_predicate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1915
    functionDepth: 5
    functionLinenumber: 1915
    functionLinenumberEnd: 1952
    functionName: libxl_event_wait
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - event_check_internal
    - libxl__poller_get
    - EGC_INIT
    - libxl__poller_put
    - eventloop_iteration
    - libxl__egc_cleanup_2_ul_cb_gc
    linkageType: ''
    returnType: int
    signature: "int libxl_event_wait(libxl_ctx *ctx, libxl_event **event_r,\n                     uint64_t
      typemask,\n                     libxl_event_predicate *pred, void *pred_user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (ao->manip_refcnt < INT_MAX)
      pos:
        line_end: 2012
        line_start: 2012
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2015
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2015
    functionName: ao__manip_enter
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ao__manip_enter(libxl__ao *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2019,1
    - Dst: ao__check_destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ao
    argTypes:
    - libxl_ctx*
    - libxl__ao*
    assertStmts:
    - condition: (ao->manip_refcnt > 0)
      pos:
        line_end: 2018
        line_start: 2018
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2022
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2022
    functionName: ao__manip_leave
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - ao__check_destroy
    - assert
    linkageType: ''
    returnType: void
    signature: void ao__manip_leave(libxl_ctx *ctx, libxl__ao *ao)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2027,1
    - Dst: libxl__ao__destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - ao
    argTypes:
    - libxl_ctx*
    - libxl__ao*
    assertStmts:
    - condition: (ao->complete)
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2030
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2030
    functionName: ao__check_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 2
    functionsReached:
    - assert
    - libxl__ao__destroy
    linkageType: ''
    returnType: void
    signature: void ao__check_destroy(libxl_ctx *ctx, libxl__ao *ao)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2036,1
    - Dst: libxl__poller_put
      Src: /src/xen/tools/libs/light/libxl_event.c:2037,1
    - Dst: libxl__free_all
      Src: /src/xen/tools/libs/light/libxl_event.c:2039,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_event.c:2040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - ao
    argTypes:
    - libxl_ctx*
    - libxl__ao*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2032
    functionDepth: 2
    functionLinenumber: 2032
    functionLinenumberEnd: 2041
    functionName: libxl__ao__destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - free
    - libxl__poller_put
    - LOG
    - libxl__free_all
    linkageType: ''
    returnType: void
    signature: void libxl__ao__destroy(libxl_ctx *ctx, libxl__ao *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2046,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2047,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2048,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2049,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2050,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2051,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:2052,1
    - Dst: libxl__ao__destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2046
        line_start: 2046
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->complete)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->in_initiator)
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->progress_reports_outstanding)
      pos:
        line_end: 2049
        line_start: 2049
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->aborting)
      pos:
        line_end: 2050
        line_start: 2050
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2054
      start: 2043
    functionDepth: 3
    functionLinenumber: 2043
    functionLinenumberEnd: 2054
    functionName: libxl__ao_create_fail
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - LOG
    - libxl__ao__destroy
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__ao_create_fail(libxl__ao *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2058,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2059,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (ao)
      pos:
        line_end: 2057
        line_start: 2057
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2058
        line_start: 2058
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->complete)
      pos:
        line_end: 2059
        line_start: 2059
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2062
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2062
    functionName: libxl__ao_inprogress_gc
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: libxl__gc
    signature: libxl__gc *libxl__ao_inprogress_gc(libxl__ao *ao)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2067,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2068,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2069,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2070,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2071,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:2074,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2076,1
    - Dst: libxl__ao_complete_check_progress_reports
      Src: /src/xen/tools/libs/light/libxl_event.c:2078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - ao
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - int
    assertStmts:
    - condition: (!ao->nested_root)
      pos:
        line_end: 2069
        line_start: 2069
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2067
        line_start: 2067
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->complete)
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (!ao->nested_progeny)
      pos:
        line_end: 2070
        line_start: 2070
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2079
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2079
    functionName: libxl__ao_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 6
    functionsReached:
    - XEN_LIST_REMOVE
    - LOG
    - libxl__ao_complete_check_progress_reports
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__ao_complete(libxl__egc *egc, libxl__ao *ao, int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2093
    functionName: ao_work_outstanding
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ao_work_outstanding(libxl__ao *ao)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_event.c:2098,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2099,1
    - Dst: ao_work_outstanding
      Src: /src/xen/tools/libs/light/libxl_event.c:2101,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2105,1
    - Dst: libxl__poller_wakeup
      Src: /src/xen/tools/libs/light/libxl_event.c:2108,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2110,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_event.c:2111,1
    - Dst: NEW_EVENT
      Src: /src/xen/tools/libs/light/libxl_event.c:2114,1
    - Dst: libxl__event_occurred
      Src: /src/xen/tools/libs/light/libxl_event.c:2117,1
    - Dst: ao__check_destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - egc
    - ao
    argTypes:
    - libxl__egc*
    - libxl__ao*
    assertStmts:
    - condition: (ao->progress_reports_outstanding >= 0)
      pos:
        line_end: 2098
        line_start: 2098
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->in_initiator)
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2123
      start: 2095
    functionDepth: 2
    functionLinenumber: 2095
    functionLinenumberEnd: 2123
    functionName: libxl__ao_complete_check_progress_reports
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 2
    functionsReached:
    - XEN_TAILQ_INSERT_TAIL
    - ao__check_destroy
    - ao_work_outstanding
    - LOG
    - libxl__event_occurred
    - libxl__poller_wakeup
    - assert
    - libxl__gc_owner
    - NEW_EVENT
    linkageType: ''
    returnType: void
    signature: void libxl__ao_complete_check_progress_reports(libxl__egc *egc, libxl__ao
      *ao)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_event.c:2131,1
    - Dst: ao__manip_enter
      Src: /src/xen/tools/libs/light/libxl_event.c:2137,1
    - Dst: LIBXL_INIT_GC
      Src: /src/xen/tools/libs/light/libxl_event.c:2140,1
    - Dst: libxl__poller_get
      Src: /src/xen/tools/libs/light/libxl_event.c:2145,1
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_event.c:2148,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:2152,1
    - Dst: libxl__ao__destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 6
    argNames:
    - ctx
    - domid
    - how
    - file
    - line
    - func
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2125
    functionDepth: 4
    functionLinenumber: 2125
    functionLinenumberEnd: 2159
    functionName: libxl__ao_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - LIBXL_INIT_GC
    - libxl__poller_get
    - calloc
    - ao__manip_enter
    - libxl__ao__destroy
    - XEN_LIST_INSERT_HEAD
    - libxl__log
    linkageType: ''
    returnType: libxl__ao
    signature: "libxl__ao *libxl__ao_create(libxl_ctx *ctx, uint32_t domid,\n                            const
      libxl_asyncop_how *how,\n                            const char *file, int line,
      const char *func)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2169,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2170,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2171,1
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_event.c:2177,1
    - Dst: LIBXL_INIT_EGC
      Src: /src/xen/tools/libs/light/libxl_event.c:2190,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2193,1
    - Dst: ao_work_outstanding
      Src: /src/xen/tools/libs/light/libxl_event.c:2195,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:2201,1
    - Dst: eventloop_iteration
      Src: /src/xen/tools/libs/light/libxl_event.c:2203,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2206,1
    - Dst: sleep
      Src: /src/xen/tools/libs/light/libxl_event.c:2209,1
    - Dst: libxl__egc_cleanup_2_ul_cb_gc
      Src: /src/xen/tools/libs/light/libxl_event.c:2218,1
    - Dst: libxl__poller_put
      Src: /src/xen/tools/libs/light/libxl_event.c:2227,1
    - Dst: libxl__egc_ao_cleanup_1_baton
      Src: /src/xen/tools/libs/light/libxl_event.c:2233,1
    - Dst: ao__manip_leave
      Src: /src/xen/tools/libs/light/libxl_event.c:2235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - ao
    - file
    - line
    - func
    argTypes:
    - libxl__ao*
    - char*
    - int
    - char*
    assertStmts:
    - condition: (ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->in_initiator)
      pos:
        line_end: 2170
        line_start: 2170
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->constructing)
      pos:
        line_end: 2169
        line_start: 2169
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (ao->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2192
        line_start: 2192
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2238
      start: 2162
    functionDepth: 5
    functionLinenumber: 2162
    functionLinenumberEnd: 2238
    functionName: libxl__ao_inprogress
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - sleep
    - ao__manip_leave
    - libxl__poller_put
    - ao_work_outstanding
    - eventloop_iteration
    - LOG
    - LIBXL_INIT_EGC
    - libxl__egc_ao_cleanup_1_baton
    - DBG
    - libxl__egc_cleanup_2_ul_cb_gc
    - libxl__log
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__ao_inprogress(libxl__ao *ao,\n                         const
      char *file, int line, const char *func)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIBXL_INIT_EGC
      Src: /src/xen/tools/libs/light/libxl_event.c:2247,1
    - Dst: ao__manip_enter
      Src: /src/xen/tools/libs/light/libxl_event.c:2250,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:2259,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2260,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_event.c:2268,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2269,1
    - Dst: XEN_LIST_FIRST
      Src: /src/xen/tools/libs/light/libxl_event.c:2271,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2272,1
    - Dst: ao_nested_root
      Src: /src/xen/tools/libs/light/libxl_event.c:2272,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:2274,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2277,1
    - Dst: libxl__ao_abortable*::callback
      Src: /src/xen/tools/libs/light/libxl_event.c:2279,1
    - Dst: libxl__ctx_unlock
      Src: /src/xen/tools/libs/light/libxl_event.c:2282,1
    - Dst: libxl__egc_cleanup_2_ul_cb_gc
      Src: /src/xen/tools/libs/light/libxl_event.c:2283,1
    - Dst: libxl__ctx_lock
      Src: /src/xen/tools/libs/light/libxl_event.c:2284,1
    - Dst: libxl__egc_ao_cleanup_1_baton
      Src: /src/xen/tools/libs/light/libxl_event.c:2290,1
    - Dst: ao__manip_leave
      Src: /src/xen/tools/libs/light/libxl_event.c:2291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - parent
    argTypes:
    - libxl_ctx*
    - libxl__ao*
    assertStmts:
    - condition: (!parent->complete)
      pos:
        line_end: 2268
        line_start: 2268
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (parent == ao_nested_root(abrt->ao))
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2296
      start: 2243
    functionDepth: 3
    functionLinenumber: 2243
    functionLinenumberEnd: 2296
    functionName: ao__abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - ao_nested_root
    - XEN_LIST_REMOVE
    - libxl__ctx_unlock
    - ao__manip_leave
    - XEN_LIST_FIRST
    - libxl__ao_abortable*::callback
    - XEN_LIST_EMPTY
    - ao__manip_enter
    - LIBXL__LOG
    - LIBXL_INIT_EGC
    - libxl__egc_ao_cleanup_1_baton
    - libxl__egc_cleanup_2_ul_cb_gc
    - assert
    - libxl__ctx_lock
    linkageType: ''
    returnType: int
    signature: int ao__abort(libxl_ctx *ctx, libxl__ao *parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ctx_lock
      Src: /src/xen/tools/libs/light/libxl_event.c:2301,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_event.c:2304,1
    - Dst: ao__abort
      Src: /src/xen/tools/libs/light/libxl_event.c:2328,1
    - Dst: libxl__ctx_unlock
      Src: /src/xen/tools/libs/light/libxl_event.c:2330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - ctx
    - how
    argTypes:
    - libxl_ctx*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2298
    functionDepth: 4
    functionLinenumber: 2298
    functionLinenumberEnd: 2332
    functionName: libxl_ao_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - libxl__ctx_unlock
    - libxl__ctx_lock
    - ao__abort
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: int libxl_ao_abort(libxl_ctx *ctx, const libxl_asyncop_how *how)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ao_nested_root
      Src: /src/xen/tools/libs/light/libxl_event.c:2336,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:2340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2345
    functionName: libxl__ao_aborting
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - ao_nested_root
    - DBG
    linkageType: ''
    returnType: int
    signature: int libxl__ao_aborting(libxl__ao *ao)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ao_nested_root
      Src: /src/xen/tools/libs/light/libxl_event.c:2350,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:2354,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:2359,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_event.c:2360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - abrt
    argTypes:
    - libxl__ao_abortable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2347
    functionDepth: 1
    functionLinenumber: 2347
    functionLinenumberEnd: 2364
    functionName: libxl__ao_abortable_register
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 3
    functionsReached:
    - ao_nested_root
    - XEN_LIST_INSERT_HEAD
    - DBG
    linkageType: ''
    returnType: int
    signature: int libxl__ao_abortable_register(libxl__ao_abortable *abrt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __attribute__
      Src: /src/xen/tools/libs/light/libxl_event.c:2372,1
    - Dst: ao_nested_root
      Src: /src/xen/tools/libs/light/libxl_event.c:2372,1
    - Dst: DBG
      Src: /src/xen/tools/libs/light/libxl_event.c:2375,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_event.c:2376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - abrt
    argTypes:
    - libxl__ao_abortable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2378
    functionName: libxl__ao_abortable_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 5
    functionsReached:
    - ao_nested_root
    - XEN_LIST_REMOVE
    - __attribute__
    - DBG
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__ao_abortable_deregister(libxl__ao_abortable *abrt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctx
    - ev
    - for_callback
    argTypes:
    - libxl_ctx*
    - libxl_event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2386
    functionDepth: 0
    functionLinenumber: 2386
    functionLinenumberEnd: 2387
    functionName: dummy_asyncprogress_callback_ignore
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dummy_asyncprogress_callback_ignore\n  (libxl_ctx *ctx, libxl_event
      *ev, void *for_callback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in_state
    - from_app
    argTypes:
    - libxl_asyncprogress_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2389
    functionDepth: 0
    functionLinenumber: 2389
    functionLinenumberEnd: 2395
    functionName: libxl__ao_progress_gethow
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__ao_progress_gethow(libxl_asyncprogress_how *in_state,\n
      \                              const libxl_asyncprogress_how *from_app)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2401,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2403,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/libs/light/libxl_event.c:2404,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_event.c:2407,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_event.c:2412,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2413,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2415,1
    - Dst: libxl_event_type_to_string
      Src: /src/xen/tools/libs/light/libxl_event.c:2416,1
    - Dst: libxl__event_occurred
      Src: /src/xen/tools/libs/light/libxl_event.c:2417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - egc
    - ao
    - how
    - ev
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - libxl_asyncprogress_how*
    - libxl_event*
    assertStmts:
    - condition: (!ao->nested_root)
      pos:
        line_end: 2400
        line_start: 2400
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2419
      start: 2397
    functionDepth: 2
    functionLinenumber: 2397
    functionLinenumberEnd: 2419
    functionName: libxl__ao_progress_report
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_INSERT_TAIL
    - libxl__zalloc
    - libxl__event_occurred
    - libxl_event_free
    - libxl_event_type_to_string
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__ao_progress_report(libxl__egc *egc, libxl__ao *ao,\n        const
      libxl_asyncprogress_how *how, libxl_event *ev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ao
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (!root->nested_root)
      pos:
        line_end: 2425
        line_start: 2425
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2428
      start: 2424
    functionDepth: 0
    functionLinenumber: 2424
    functionLinenumberEnd: 2428
    functionName: ao_nested_root
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: libxl__ao
    signature: libxl__ao *ao_nested_root(libxl__ao *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_event.c:2433,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2435,1
    - Dst: ao_nested_root
      Src: /src/xen/tools/libs/light/libxl_event.c:2436,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_event.c:2438,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2441,1
    - Dst: LIBXL_INIT_GC
      Src: /src/xen/tools/libs/light/libxl_event.c:2443,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_event.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - parent
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (root->nested_progeny < INT_MAX)
      pos:
        line_end: 2440
        line_start: 2440
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (parent->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2434
        line_start: 2434
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2448
      start: 2430
    functionDepth: 1
    functionLinenumber: 2430
    functionLinenumberEnd: 2448
    functionName: libxl__nested_ao_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 1
    functionsReached:
    - ao_nested_root
    - LIBXL_INIT_GC
    - libxl__zalloc
    - LOG
    - assert
    - libxl__gc_owner
    linkageType: ''
    returnType: _hidden
    signature: _hidden *libxl__nested_ao_create(libxl__ao *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2452,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2454,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_event.c:2455,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_event.c:2457,1
    - Dst: libxl__ao__destroy
      Src: /src/xen/tools/libs/light/libxl_event.c:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - child
    argTypes:
    - libxl__ao*
    assertStmts:
    - condition: (child->magic == LIBXL__AO_MAGIC)
      pos:
        line_end: 2451
        line_start: 2451
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (root)
      pos:
        line_end: 2453
        line_start: 2453
        source_file: /src/xen/tools/libs/light/libxl_event.c
    - condition: (root->nested_progeny > 0)
      pos:
        line_end: 2454
        line_start: 2454
        source_file: /src/xen/tools/libs/light/libxl_event.c
    constantsTouched: []
    func_position:
      end: 2459
      start: 2450
    functionDepth: 3
    functionLinenumber: 2450
    functionLinenumberEnd: 2459
    functionName: libxl__nested_ao_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_event.c
    functionUses: 3
    functionsReached:
    - assert
    - libxl__gc_owner
    - libxl__ao__destroy
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__nested_ao_free(libxl__ao *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:42,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - egc
    - cds
    - kind
    - libxl_dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - libxl__device_kind
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: checkpoint_device_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCNEW
    linkageType: ''
    returnType: libxl__checkpoint_device
    signature: "libxl__checkpoint_device * checkpoint_device_init(libxl__egc *egc,\n
      \                                       libxl__checkpoint_devices_state *cds,\n
      \                                       libxl__device_kind kind,\n                                        void
      *libxl_dev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:59,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:66,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:70,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:76,1
    - Dst: checkpoint_device_init
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:79,1
    - Dst: checkpoint_device_init
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:85,1
    - Dst: checkpoint_devices_setup
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:90,1
    - Dst: libxl__checkpoint_devices_state*::callback
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - egc
    - cds
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 96
    functionName: libxl__checkpoint_devices_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCNEW_ARRAY
    - checkpoint_device_init
    - libxl__checkpoint_devices_state*::callback
    - checkpoint_devices_setup
    - libxl__device_list
    linkageType: ''
    returnType: void
    signature: "void libxl__checkpoint_devices_setup(libxl__egc *egc,\n                                     libxl__checkpoint_devices_state
      *cds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:103,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:105,1
    - Dst: libxl__multidev_prepare_with_aodev
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:110,1
    - Dst: device_setup_iterate
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:114,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - egc
    - cds
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: checkpoint_devices_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - libxl__multidev_begin
    - device_setup_iterate
    - libxl__multidev_prepared
    - libxl__multidev_prepare_with_aodev
    linkageType: ''
    returnType: void
    signature: "void checkpoint_devices_setup(libxl__egc *egc,\n                                     libxl__checkpoint_devices_state
      *cds)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:124,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:146,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:148,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:149,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:153,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:155,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:163,1
    - Dst: libxl__checkpoint_device*::ops::setup
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:164,1
    - Dst: libxl__multidev_one_callback
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts:
    - condition: (dev->aodev.callback == device_setup_iterate)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    constantsTouched: []
    func_position:
      end: 169
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 169
    functionName: device_setup_iterate
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__device_disk_dev_number
    - libxl__multidev_one_callback
    - libxl__checkpoint_device*::ops::setup
    - libxl__device_kind_to_string
    - assert
    linkageType: ''
    returnType: void
    signature: void device_setup_iterate(libxl__egc *egc, libxl__ao_device *aodev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:175,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:179,1
    - Dst: libxl__checkpoint_devices_state*::callback
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: all_devices_setup_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__checkpoint_devices_state*::callback
    linkageType: ''
    returnType: void
    signature: "void all_devices_setup_cb(libxl__egc *egc,\n                                 libxl__multidev
      *multidev,\n                                 int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:190,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:192,1
    - Dst: libxl__multidev_prepare_with_aodev
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:199,1
    - Dst: libxl__checkpoint_device*::ops::teardown
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:200,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - cds
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: libxl__checkpoint_devices_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - libxl__multidev_begin
    - libxl__checkpoint_device*::ops::teardown
    - libxl__multidev_prepared
    - libxl__multidev_prepare_with_aodev
    linkageType: ''
    returnType: void
    signature: "void libxl__checkpoint_devices_teardown(libxl__egc *egc,\n                                   libxl__checkpoint_devices_state
      *cds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:210,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:214,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:217,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:222,1
    - Dst: libxl__checkpoint_devices_state*::callback
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: devices_teardown_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__checkpoint_devices_state*::callback
    - libxl__device_list_free
    linkageType: ''
    returnType: void
    signature: "void devices_teardown_cb(libxl__egc *egc,\n                                libxl__multidev
      *multidev,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - api
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: define_checkpoint_api
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_checkpoint_api(api)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:271,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:275,1
    - Dst: libxl__checkpoint_devices_state*::callback
      Src: /src/xen/tools/libs/light/libxl_checkpoint_device.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: devices_checkpoint_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_checkpoint_device.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__checkpoint_devices_state*::callback
    linkageType: ''
    returnType: void
    signature: "void devices_checkpoint_cb(libxl__egc *egc,\n                                  libxl__multidev
      *multidev,\n                                  int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pci
    argTypes:
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: pci_encode_bdf
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pci_encode_bdf(libxl_device_pci *pci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - pci
    - domain
    - bus
    - dev
    - func
    argTypes:
    - libxl_device_pci*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: pci_struct_fill
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pci_struct_fill(libxl_device_pci *pci, unsigned int domain,\n
      \                           unsigned int bus, unsigned int dev,\n                            unsigned
      int func)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:59,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:59,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:60,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:60,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:61,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:61,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:62,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:62,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:64,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:64,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:64,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:66,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:66,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:66,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:67,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:67,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_pci.c:68,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:69,1
    - Dst: libxl_rdm_reserve_policy_to_string
      Src: /src/xen/tools/libs/light/libxl_pci.c:71,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:72,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:72,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - gc
    - back
    - num
    - pci
    argTypes:
    - libxl__gc*
    - flexarray_t*
    - int
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: libxl_create_pci_backend_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_rdm_reserve_policy_to_string
    - flexarray_append
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: void
    signature: "void libxl_create_pci_backend_device(libxl__gc *gc,\n                                            flexarray_t
      *back,\n                                            int num,\n                                            const
      libxl_device_pci *pci)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - gc
    - domid
    - pci
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_pci*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: libxl__device_from_pci
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__device_from_pci(libxl__gc *gc, uint32_t domid,\n                                   const
      libxl_device_pci *pci,\n                                   libxl__device *device)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:90,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:95,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_pci.c:97,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_pci.c:98,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:100,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:102,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:105,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:106,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:106,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:107,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:107,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:108,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:108,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:109,1
    - Dst: libxl__domid_to_name
      Src: /src/xen/tools/libs/light/libxl_pci.c:109,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:116,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_pci.c:117,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_pci.c:118,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_pci.c:119,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_pci.c:120,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_pci.c:120,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:122,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:123,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:123,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:124,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:124,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:131,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_pci.c:132,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_pci.c:133,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_pci.c:134,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_pci.c:135,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_pci.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 4
    argNames:
    - gc
    - t
    - domid
    - pci
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - uint32_t
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 136
    functionName: libxl__create_pci_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - xs_mkdir
    - xs_rm
    - GCSPRINTF
    - LOGD
    - libxl__domid_to_name
    - ARRAY_SIZE
    - libxl__domain_device_frontend_path
    - libxl__domain_device_backend_path
    - libxl__xs_writev
    - flexarray_append_pair
    - xs_set_permissions
    - libxl__xs_kvs_of_flexarray
    - flexarray_make
    - libxl__gc_owner
    linkageType: ''
    returnType: void
    signature: "void libxl__create_pci_backend(libxl__gc *gc, xs_transaction_t t,\n
      \                                     uint32_t domid, const libxl_device_pci
      *pci)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_pci.c:150,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:154,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:156,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:158,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:158,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:160,1
    - Dst: libxl__wait_for_backend
      Src: /src/xen/tools/libs/light/libxl_pci.c:166,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:167,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_pci.c:171,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:173,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:174,1
    - Dst: libxl_create_pci_backend_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:175,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:176,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:176,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_pci.c:178,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:178,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_pci.c:185,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_pci.c:191,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:194,1
    - Dst: device_add_domain_config
      Src: /src/xen/tools/libs/light/libxl_pci.c:195,1
    - Dst: libxl__dm_check_start
      Src: /src/xen/tools/libs/light/libxl_pci.c:198,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_pci.c:203,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_pci.c:207,1
    - Dst: libxl__create_pci_backend
      Src: /src/xen/tools/libs/light/libxl_pci.c:213,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_pci.c:215,1
    - Dst: libxl__xs_kvs_of_flexarray
      Src: /src/xen/tools/libs/light/libxl_pci.c:215,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_pci.c:217,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_pci.c:223,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_pci.c:224,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:226,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 4
    argNames:
    - gc
    - domid
    - pci
    - starting
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_pci*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 228
    functionName: libxl__device_pci_add_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_init
    - flexarray_append_pair
    - libxl__xs_transaction_start
    - flexarray_make
    - libxl__dm_check_start
    - libxl__xs_kvs_of_flexarray
    - device_add_domain_config
    - libxl__domain_device_backend_path
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__wait_for_backend
    - libxl__lock_domain_userdata
    - GCSPRINTF
    - libxl__create_pci_backend
    - libxl__xs_transaction_abort
    - libxl__set_domain_configuration
    - libxl__get_domain_configuration
    - libxl__xs_transaction_commit
    - LOGD
    - libxl__xs_writev
    - libxl__xs_read
    - libxl_create_pci_backend_device
    - atoi
    - libxl_is_stubdom
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_add_xenstore(libxl__gc *gc,\n                                          uint32_t
      domid,\n                                          const libxl_device_pci *pci,\n
      \                                         bool starting)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:232,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:237,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:239,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:240,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:243,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:245,1
    - Dst: libxl__wait_for_backend
      Src: /src/xen/tools/libs/light/libxl_pci.c:250,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:250,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:251,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:258,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:258,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:259,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:266,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_pci.c:271,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:272,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:272,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:272,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:273,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:273,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:273,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_pci.c:274,1
    - Dst: libxl__wait_for_backend
      Src: /src/xen/tools/libs/light/libxl_pci.c:279,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:279,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:280,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_pci.c:286,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:287,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:287,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:288,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:288,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:289,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:289,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:290,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:290,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:291,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:291,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:292,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:292,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:293,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:293,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_pci.c:294,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:296,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:297,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:298,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:298,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:298,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:299,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:300,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:301,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:302,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:302,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:302,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:303,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:304,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:305,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:306,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:306,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:306,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:307,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:308,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:309,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:311,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:311,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:311,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:312,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:314,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:315,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:317,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:317,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:317,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:318,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:320,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:321,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:323,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:323,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:323,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:324,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:326,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:327,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:329,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:329,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:329,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:330,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_pci.c:333,1
    - Dst: libxl__parse_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:339,1
    - Dst: libxl__device_destroy
      Src: /src/xen/tools/libs/light/libxl_pci.c:346,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 104
    argCount: 3
    argNames:
    - gc
    - domid
    - pci
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 351
    functionName: libxl__device_pci_remove_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - xs_write
    - xs_rm
    - GCSPRINTF
    - LOGD
    - libxl__domain_device_backend_path
    - libxl__xs_read
    - xs_transaction_start
    - libxl__xs_printf
    - libxl__parse_backend_path
    - strlen
    - libxl__wait_for_backend
    - sscanf
    - libxl__device_destroy
    - xs_transaction_end
    - atoi
    - libxl__gc_owner
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: int libxl__device_pci_remove_xenstore(libxl__gc *gc, uint32_t domid,
      libxl_device_pci *pci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_PCI
      Src: /src/xen/tools/libs/light/libxl_pci.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pcis
    - num
    - pci
    argTypes:
    - libxl_device_pci*
    - int
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: is_pci_in_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - COMPARE_PCI
    linkageType: ''
    returnType: bool
    signature: "bool is_pci_in_array(libxl_device_pci *pcis, int num,\n                            libxl_device_pci
      *pci)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_pci.c:373,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:375,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:379,1
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_pci.c:381,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:381,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:384,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_pci.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - sysfs_path
    - pci
    argTypes:
    - libxl__gc*
    - char*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: sysfs_write_bdf
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - open
    - GCSPRINTF
    - close
    - strlen
    - LOGE
    - write
    linkageType: ''
    returnType: int
    signature: "int sysfs_write_bdf(libxl__gc *gc, const char * sysfs_path,\n                           libxl_device_pci
      *pci)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:399,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - pci
    - node
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: pci_info_xs_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: "char *pci_info_xs_path(libxl__gc *gc, libxl_device_pci *pci,\n                              const
      char *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_info_xs_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:410,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_pci.c:411,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - pci
    - node
    - val
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: pci_info_xs_write
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl__xs_printf
    - pci_info_xs_path
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int pci_info_xs_write(libxl__gc *gc, libxl_device_pci *pci,\n                              const
      char *node, const char *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_info_xs_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:421,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - pci
    - node
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 424
    functionName: pci_info_xs_read
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_info_xs_path
    - libxl__xs_read
    linkageType: ''
    returnType: char
    signature: "char *pci_info_xs_read(libxl__gc *gc, libxl_device_pci *pci,\n                              const
      char *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_info_xs_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:429,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:430,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_pci.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - pci
    - node
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: pci_info_xs_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - pci_info_xs_path
    - libxl__gc_owner
    linkageType: ''
    returnType: void
    signature: "void pci_info_xs_remove(libxl__gc *gc, libxl_device_pci *pci,\n                               const
      char *node)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_pci.c:438,1
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_pci.c:445,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:448,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:450,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_pci.c:455,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:459,1
    - Dst: realloc::realloc
      Src: /src/xen/tools/libs/light/libxl_pci.c:462,1
    - Dst: pcis::pcis
      Src: /src/xen/tools/libs/light/libxl_pci.c:467,1
    - Dst: pci_info_xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:472,1
    - Dst: pci_info_xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:475,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_pci.c:476,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_pci.c:481,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - ctx
    - num
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 485
    functionName: libxl_device_pci_assignable_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - pci_info_xs_read
    - realloc::realloc
    - opendir
    - sscanf
    - LOGE
    - strdup
    - readdir
    - LOG
    - pcis::pcis
    - closedir
    linkageType: ''
    returnType: libxl_device_pci
    signature: libxl_device_pci *libxl_device_pci_assignable_list(libxl_ctx *ctx,
      int *num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:492,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_pci.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - num
    argTypes:
    - libxl_device_pci*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: libxl_device_pci_assignable_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_device_pci_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_device_pci_assignable_list_free(libxl_device_pci *list,
      int num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:505,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_pci.c:510,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_pci.c:512,1
    - Dst: realpath
      Src: /src/xen/tools/libs/light/libxl_pci.c:513,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:515,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:519,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:522,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:523,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - gc
    - pci
    - driver_path
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 533
    functionName: sysfs_dev_unbind
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - sysfs_write_bdf
    - libxl__zalloc
    - lstat
    - realpath
    - LOGE
    - LOG
    linkageType: ''
    returnType: int
    signature: "int sysfs_dev_unbind(libxl__gc *gc, libxl_device_pci *pci,\n                            char
      **driver_path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:538,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:543,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:545,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:550,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:551,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 560
    functionName: sysfs_dev_get_vendor
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - fopen
    - GCSPRINTF
    - fclose
    - LOGE
    - fscanf
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t sysfs_dev_get_vendor(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:565,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:570,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:572,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:577,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:578,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 587
    functionName: sysfs_dev_get_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - fopen
    - GCSPRINTF
    - fclose
    - LOGE
    - fscanf
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t sysfs_dev_get_device(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:592,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:596,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:598,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:604,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:605,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - pci
    - class
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 615
    functionName: sysfs_dev_get_class
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - fopen
    - GCSPRINTF
    - fclose
    - LOGE
    - fscanf
    linkageType: ''
    returnType: int
    signature: "int sysfs_dev_get_class(libxl__gc *gc, libxl_device_pci *pci,\n                               unsigned
      long *class)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysfs_dev_get_vendor
      Src: /src/xen/tools/libs/light/libxl_pci.c:630,1
    - Dst: sysfs_dev_get_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:631,1
    - Dst: sysfs_dev_get_class
      Src: /src/xen/tools/libs/light/libxl_pci.c:637,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - d_config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 644
    functionName: libxl__is_igd_vga_passthru
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - sysfs_dev_get_vendor
    - sysfs_dev_get_device
    - sysfs_dev_get_class
    linkageType: ''
    returnType: bool
    signature: "bool libxl__is_igd_vga_passthru(libxl__gc *gc,\n                                const
      libxl_domain_config *d_config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:668,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:671,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:675,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 687
    functionName: pciback_dev_has_slot
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - fscanf
    - fopen
    - fclose
    - LOGE
    linkageType: ''
    returnType: int
    signature: int pciback_dev_has_slot(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_pci.c:695,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:697,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:699,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:704,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_pci.c:707,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 715
    functionName: pciback_dev_is_assigned
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - access
    - lstat
    - LOGE
    - LOG
    linkageType: ''
    returnType: int
    signature: int pciback_dev_is_assigned(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pciback_dev_has_slot
      Src: /src/xen/tools/libs/light/libxl_pci.c:721,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:722,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:725,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:727,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:732,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 737
    functionName: pciback_dev_assign
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pciback_dev_has_slot
    - sysfs_write_bdf
    - LOGE
    linkageType: ''
    returnType: int
    signature: int pciback_dev_assign(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysfs_dev_unbind
      Src: /src/xen/tools/libs/light/libxl_pci.c:742,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:743,1
    - Dst: pciback_dev_has_slot
      Src: /src/xen/tools/libs/light/libxl_pci.c:748,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:749,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 756
    functionName: pciback_dev_unassign
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - sysfs_write_bdf
    - pciback_dev_has_slot
    - LOGE
    - LOG
    - sysfs_dev_unbind
    linkageType: ''
    returnType: int
    signature: int pciback_dev_unassign(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:762,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:778,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:781,1
    - Dst: isgraph
      Src: /src/xen/tools/libs/light/libxl_pci.c:786,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:787,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:794,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_pci.c:795,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:796,1
    - Dst: pciback_dev_is_assigned
      Src: /src/xen/tools/libs/light/libxl_pci.c:801,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:806,1
    - Dst: sysfs_dev_unbind
      Src: /src/xen/tools/libs/light/libxl_pci.c:811,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:812,1
    - Dst: pci_info_xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:820,1
    - Dst: pci_info_xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:822,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:823,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:826,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:830,1
    - Dst: pciback_dev_assign
      Src: /src/xen/tools/libs/light/libxl_pci.c:833,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:834,1
    - Dst: pci_info_xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:840,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:842,1
    - Dst: xc_assign_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:849,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:849,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:852,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - gc
    - pci
    - rebind
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 857
    functionName: libxl__device_pci_assignable_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pciback_dev_assign
    - GCSPRINTF
    - pci_info_xs_read
    - pci_info_xs_remove
    - isgraph
    - xc_assign_device
    - pci_encode_bdf
    - lstat
    - pciback_dev_is_assigned
    - pci_info_xs_write
    - strlen
    - LOGE
    - LOG
    - libxl__gc_owner
    - sysfs_dev_unbind
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_assignable_add(libxl__gc *gc,\n                                            libxl_device_pci
      *pci,\n                                            int rebind)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_pci.c:865,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:873,1
    - Dst: pci_struct_fill
      Src: /src/xen/tools/libs/light/libxl_pci.c:876,1
    - Dst: pci_info_xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:878,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:879,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:887,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - pci
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 891
    functionName: name2bdf
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_struct_fill
    - pci_info_xs_read
    - LOG
    - libxl__xs_directory
    - sscanf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int name2bdf(libxl__gc *gc, libxl_device_pci *pci)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:897,1
    - Dst: name2bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:903,1
    - Dst: xc_deassign_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:908,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:908,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:910,1
    - Dst: pciback_dev_is_assigned
      Src: /src/xen/tools/libs/light/libxl_pci.c:916,1
    - Dst: pciback_dev_unassign
      Src: /src/xen/tools/libs/light/libxl_pci.c:919,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:921,1
    - Dst: pci_info_xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:925,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:929,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:931,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:932,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:934,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:938,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:942,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - gc
    - pci
    - rebind
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 950
    functionName: libxl__device_pci_assignable_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_info_xs_read
    - name2bdf
    - sysfs_write_bdf
    - GCSPRINTF
    - pci_info_xs_remove
    - pci_encode_bdf
    - pciback_dev_unassign
    - libxl__gc_owner
    - pciback_dev_is_assigned
    - LOGE
    - LOG
    - xc_deassign_device
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_assignable_remove(libxl__gc *gc,\n                                               libxl_device_pci
      *pci,\n                                               int rebind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_pci.c:955,1
    - Dst: libxl__device_pci_assignable_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - pci
    - rebind
    argTypes:
    - libxl_ctx*
    - libxl_device_pci*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 952
    functionDepth: 5
    functionLinenumber: 952
    functionLinenumberEnd: 962
    functionName: libxl_device_pci_assignable_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_pci_assignable_add
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_assignable_add(libxl_ctx *ctx, libxl_device_pci
      *pci,\n                                    int rebind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_pci.c:968,1
    - Dst: libxl__device_pci_assignable_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - pci
    - rebind
    argTypes:
    - libxl_ctx*
    - libxl_device_pci*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 965
    functionDepth: 5
    functionLinenumber: 965
    functionLinenumberEnd: 975
    functionName: libxl_device_pci_assignable_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_pci_assignable_remove
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_assignable_remove(libxl_ctx *ctx, libxl_device_pci
      *pci,\n                                       int rebind)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_pci.c:989,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:991,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_pci.c:995,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1000,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1009,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_pci.c:1010,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:1012,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1015,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_pci.c:1016,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_pci.c:1022,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - gc
    - pci
    - func_mask
    argTypes:
    - libxl__gc*
    - libxl_device_pci*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1024
    functionName: pci_multifunction_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - lstat
    - opendir
    - sscanf
    - LOGE
    - readdir
    - LOG
    - closedir
    linkageType: ''
    returnType: int
    signature: int pci_multifunction_check(libxl__gc *gc, libxl_device_pci *pci, unsigned
      int *func_mask)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1062,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:1063,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:1067,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:1068,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:1071,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:1072,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_pci.c:1080,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_pci.c:1082,1
    - Dst: pci_add_qmp_device_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1087,1
    - Dst: pci_add_dm_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1098,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - egc
    - domid
    - pas
    argTypes:
    - libxl__egc*
    - libxl_domid
    - pci_add_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1099
    functionName: do_pci_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ev_time_register_rel
    - libxl__xswait_init
    - libxl__device_model_version_running
    - libxl__ev_qmp_init
    - pci_add_qmp_device_add
    - libxl__ev_time_init
    - pci_add_dm_done
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: "void do_pci_add(libxl__egc *egc,\n                       libxl_domid
      domid,\n                       pci_add_state *pas)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1103,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_pci.c:1112,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1114,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1116,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1120,1
    - Dst: PCI_SLOT
      Src: /src/xen/tools/libs/light/libxl_pci.c:1121,1
    - Dst: PCI_FUNC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1122,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_pci.c:1135,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_pci.c:1141,1
    - Dst: pci_add_dm_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - egc
    - pas
    argTypes:
    - libxl__egc*
    - pci_add_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1147
    functionName: pci_add_qmp_device_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - PCI_FUNC
    - PCI_SLOT
    - QMP_PARAMETERS_SPRINTF
    - libxl__ev_qmp_send
    - libxl__qmp_param_add_string
    - pci_add_dm_done
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: void
    signature: void pci_add_qmp_device_add(libxl__egc *egc, pci_add_state *pas)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1155,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:1159,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1163,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_pci.c:1164,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_pci.c:1176,1
    - Dst: pci_add_dm_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1149
    functionDepth: 4
    functionLinenumber: 1149
    functionLinenumberEnd: 1182
    functionName: pci_add_qmp_device_add_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__ev_qmp_send
    - pci_add_dm_done
    - libxl_get_stubdom_id
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void pci_add_qmp_device_add_cb(libxl__egc *egc,\n                                      libxl__ev_qmp
      *qmp,\n                                      const libxl__json_object *response,\n
      \                                     int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1188,1
    - Dst: pci_add_qmp_device_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1191
    functionName: pci_add_qmp_device_add_retry
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - pci_add_qmp_device_add
    linkageType: ''
    returnType: void
    signature: "void pci_add_qmp_device_add_retry(libxl__egc *egc, libxl__ev_time
      *ev,\n                                         const struct timeval *requested_abs,\n
      \                                        int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1199,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1230,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1233,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1234,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1240,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1241,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_pci.c:1246,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:1247,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1250,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_pci.c:1255,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1256,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_pci.c:1261,1
    - Dst: PCI_DEVFN
      Src: /src/xen/tools/libs/light/libxl_pci.c:1263,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1271,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1277,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_pci.c:1279,1
    - Dst: pci_add_dm_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1281,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1282
    functionName: pci_add_qmp_query_pci_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - GCSPRINTF
    - LOGD
    - PCI_DEVFN
    - libxl__json_array_get
    - libxl__json_map_get
    - pci_add_dm_done
    - strcmp
    - JSON
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: void
    signature: "void pci_add_qmp_query_pci_cb(libxl__egc *egc,\n                                     libxl__ev_qmp
      *qmp,\n                                     const libxl__json_object *response,\n
      \                                    int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1288,1
    - Dst: pci_add_dm_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1291
    functionName: pci_add_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - pci_add_dm_done
    linkageType: ''
    returnType: void
    signature: "void pci_add_timeout(libxl__egc *egc, libxl__ev_time *ev,\n                            const
      struct timeval *requested_abs,\n                            int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1300
    functionName: pci_supp_legacy_irq
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pci_supp_legacy_irq(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1306,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:1307,1
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_pci.c:1316,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:1321,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1323,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1331,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:1333,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1338,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1343,1
    - Dst: xc_domain_ioport_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:1348,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1350,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1353,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:1358,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1361,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1364,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1371,1
    - Dst: pci_supp_legacy_irq
      Src: /src/xen/tools/libs/light/libxl_pci.c:1372,1
    - Dst: libxl__arch_local_domain_has_pirq_notion
      Src: /src/xen/tools/libs/light/libxl_pci.c:1376,1
    - Dst: libxl__arch_hvm_map_gsi
      Src: /src/xen/tools/libs/light/libxl_pci.c:1377,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1377,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1379,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1383,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:1385,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1387,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1390,1
    - Dst: xc_physdev_map_pirq
      Src: /src/xen/tools/libs/light/libxl_pci.c:1393,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1395,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1397,1
    - Dst: xc_domain_irq_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:1401,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1403,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1405,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1410,1
    - Dst: sysfs_write_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1415,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1417,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1428,1
    - Dst: xc_assign_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:1432,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1432,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:1434,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:1440,1
    - Dst: libxl__device_pci_add_xenstore
      Src: /src/xen/tools/libs/light/libxl_pci.c:1441,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:1445,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:1446,1
    - Dst: pci_add_state*::callback
      Src: /src/xen/tools/libs/light/libxl_pci.c:1447,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 119
    argCount: 3
    argNames:
    - egc
    - pas
    - rc
    argTypes:
    - libxl__egc*
    - pci_add_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1302
    functionDepth: 7
    functionLinenumber: 1302
    functionLinenumberEnd: 1448
    functionName: pci_add_dm_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 5
    functionsReached:
    - LOGED
    - pci_supp_legacy_irq
    - xc_physdev_map_pirq
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - libxl_get_stubdom_id
    - pci_add_state*::callback
    - xc_domain_ioport_permission
    - STATE_AO_GC
    - fopen
    - GCSPRINTF
    - pci_encode_bdf
    - libxl__arch_local_domain_has_pirq_notion
    - libxl__arch_hvm_map_gsi
    - libxl__gc_owner
    - libxl__device_pci_add_xenstore
    - LOGD
    - sysfs_write_bdf
    - xc_domain_iomem_permission
    - xc_domain_irq_permission
    - fclose
    - fscanf
    - xc_assign_device
    - libxl_is_stubdom
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: "void pci_add_dm_done(libxl__egc *egc,\n                            pci_add_state
      *pas,\n                            int rc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1456,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_pci.c:1457,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1459,1
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_pci.c:1460,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_pci.c:1460,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1462,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_pci.c:1463,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1467,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1468,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_pci.c:1469,1
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_pci.c:1471,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1473,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_pci.c:1474,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_pci.c:1478,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - gc
    - domain
    - bus
    - dev
    - func
    argTypes:
    - libxl__gc*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1485
    functionName: libxl__device_pci_reset
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - open
    - GCSPRINTF
    - close
    - strlen
    - LOGE
    - LOG
    - write
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_reset(libxl__gc *gc, unsigned int domain, unsigned
      int bus,\n                                   unsigned int dev, unsigned int
      func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - domid
    - pci
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_pci*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1494
    functionName: libxl__device_pci_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                libxl_device_pci *pci, bool hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_pci.c:1500,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:1503,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:1504,1
    - Dst: libxl__device_pci_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - domid
    - pci
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_pci*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1496
    functionDepth: 2
    functionLinenumber: 1496
    functionLinenumberEnd: 1510
    functionName: libxl_device_pci_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__prepare_ao_device
    - GCNEW
    - libxl__device_pci_add
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_add(libxl_ctx *ctx, uint32_t domid,\n                         libxl_device_pci
      *pci,\n                         const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_assignable_list
      Src: /src/xen/tools/libs/light/libxl_pci.c:1518,1
    - Dst: is_pci_in_array
      Src: /src/xen/tools/libs/light/libxl_pci.c:1519,1
    - Dst: libxl_device_pci_assignable_list_free
      Src: /src/xen/tools/libs/light/libxl_pci.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - pci
    argTypes:
    - libxl_ctx*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1512
    functionDepth: 4
    functionLinenumber: 1512
    functionLinenumberEnd: 1523
    functionName: libxl_pci_assignable
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - is_pci_in_array
    - libxl_device_pci_assignable_list_free
    - libxl_device_pci_assignable_list
    linkageType: ''
    returnType: bool
    signature: bool libxl_pci_assignable(libxl_ctx *ctx, libxl_device_pci *pci)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1538,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:1539,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:1544,1
    - Dst: libxl_device_pci_copy
      Src: /src/xen/tools/libs/light/libxl_pci.c:1548,1
    - Dst: name2bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1553,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:1560,1
    - Dst: xc_test_assign_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:1561,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:1561,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1563,1
    - Dst: libxl__device_pci_setdefault
      Src: /src/xen/tools/libs/light/libxl_pci.c:1572,1
    - Dst: pciback_dev_is_assigned
      Src: /src/xen/tools/libs/light/libxl_pci.c:1575,1
    - Dst: libxl__device_pci_assignable_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1576,1
    - Dst: libxl_pci_assignable
      Src: /src/xen/tools/libs/light/libxl_pci.c:1581,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1582,1
    - Dst: pci_info_xs_write
      Src: /src/xen/tools/libs/light/libxl_pci.c:1588,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1588,1
    - Dst: libxl__device_pci_reset
      Src: /src/xen/tools/libs/light/libxl_pci.c:1591,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:1593,1
    - Dst: do_pci_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1597,1
    - Dst: device_pci_add_stubdom_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1601,1
    - Dst: device_pci_add_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1605,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 5
    argNames:
    - egc
    - domid
    - pci
    - starting
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_pci*
    - bool
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1534
    functionDepth: 5
    functionLinenumber: 1534
    functionLinenumberEnd: 1606
    functionName: libxl__device_pci_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 1
    functionsReached:
    - xc_test_assign_device
    - device_pci_add_done
    - pci_info_xs_write
    - libxl__device_pci_reset
    - name2bdf
    - libxl__device_pci_setdefault
    - libxl_get_stubdom_id
    - libxl__domain_type
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW
    - pci_encode_bdf
    - libxl__gc_owner
    - LOGD
    - libxl__device_pci_assignable_add
    - pciback_dev_is_assigned
    - device_pci_add_stubdom_done
    - libxl_device_pci_copy
    - do_pci_add
    - libxl_pci_assignable
    linkageType: ''
    returnType: void
    signature: "void libxl__device_pci_add(libxl__egc *egc, uint32_t domid,\n                           libxl_device_pci
      *pci, bool starting,\n                           libxl__ao_device *aodev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1613,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:1614,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1621,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:1622,1
    - Dst: libxl__ev_devstate_wait
      Src: /src/xen/tools/libs/light/libxl_pci.c:1624,1
    - Dst: device_pci_add_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - pas
    - rc
    argTypes:
    - libxl__egc*
    - pci_add_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1632
    functionName: device_pci_add_stubdom_wait
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__domain_device_backend_path
    - libxl__ev_devstate_wait
    - device_pci_add_done
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: void
    signature: "void device_pci_add_stubdom_wait(libxl__egc *egc,\n                                        pci_add_state
      *pas,\n                                        int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1638,1
    - Dst: device_pci_add_stubdom_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - ds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_devstate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1641
    functionName: device_pci_add_stubdom_ready
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_pci_add_stubdom_done
    linkageType: ''
    returnType: void
    signature: "void device_pci_add_stubdom_ready(libxl__egc *egc,\n                                         libxl__ev_devstate
      *ds,\n                                         int rc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1647,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1661,1
    - Dst: pci_multifunction_check
      Src: /src/xen/tools/libs/light/libxl_pci.c:1665,1
    - Dst: do_pci_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1688,1
    - Dst: device_pci_add_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:1694,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - egc
    - pas
    - rc
    argTypes:
    - libxl__egc*
    - pci_add_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1643
    functionDepth: 5
    functionLinenumber: 1643
    functionLinenumberEnd: 1695
    functionName: device_pci_add_stubdom_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - pci_multifunction_check
    - device_pci_add_done
    - do_pci_add
    linkageType: ''
    returnType: void
    signature: "void device_pci_add_stubdom_done(libxl__egc *egc,\n                                        pci_add_state
      *pas,\n                                        int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1708,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1714,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:1720,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1722,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_pci.c:1724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - pas
    - rc
    argTypes:
    - libxl__egc*
    - pci_add_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1725
    functionName: device_pci_add_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 3
    functionsReached:
    - pci_info_xs_remove
    - libxl_device_pci_dispose
    - LOGD
    - libxl__ao_device*::callback
    linkageType: ''
    returnType: void
    signature: "void device_pci_add_done(libxl__egc *egc,\n                                pci_add_state
      *pas,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:1747,1
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_pci.c:1748,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_pci.c:1752,1
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_pci.c:1755,1
    - Dst: libxl__device_pci_add
      Src: /src/xen/tools/libs/light/libxl_pci.c:1756,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_pci.c:1760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - egc
    - ao
    - domid
    - d_config
    - multidev
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - uint32_t
    - libxl_domain_config*
    - libxl__multidev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1736
    functionDepth: 6
    functionLinenumber: 1736
    functionLinenumberEnd: 1761
    functionName: libxl__add_pcis
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl__multidev_begin
    - GCNEW
    - libxl__multidev_prepare
    - libxl__multidev_prepared
    - libxl__device_pci_add
    linkageType: ''
    returnType: void
    signature: "void libxl__add_pcis(libxl__egc *egc, libxl__ao *ao, uint32_t domid,\n
      \                           libxl_domain_config *d_config,\n                            libxl__multidev
      *multidev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1767,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_pci.c:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1763
    functionDepth: 1
    functionLinenumber: 1763
    functionLinenumberEnd: 1772
    functionName: add_pcis_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl__ao_device*::callback
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void add_pcis_done(libxl__egc *egc, libxl__multidev *multidev,\n                          int
      rc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1815,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:1816,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_pci.c:1820,1
    - Dst: libxl_device_pci_list
      Src: /src/xen/tools/libs/light/libxl_pci.c:1823,1
    - Dst: is_pci_in_array
      Src: /src/xen/tools/libs/light/libxl_pci.c:1829,1
    - Dst: libxl_device_pci_list_free
      Src: /src/xen/tools/libs/light/libxl_pci.c:1830,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1834,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_pci.c:1840,1
    - Dst: pci_remove_qmp_device_del
      Src: /src/xen/tools/libs/light/libxl_pci.c:1842,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1851,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - egc
    - prs
    argTypes:
    - libxl__egc*
    - pci_remove_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 1852
    functionName: do_pci_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_remove_detached
    - STATE_AO_GC
    - LOGD
    - libxl__device_model_version_running
    - libxl__gc_owner
    - pci_remove_qmp_device_del
    - is_pci_in_array
    - libxl_device_pci_list_free
    - libxl_device_pci_list
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: void do_pci_remove(libxl__egc *egc, pci_remove_state *prs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:1857,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_pci.c:1864,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1869,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_pci.c:1872,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - egc
    - prs
    argTypes:
    - libxl__egc*
    - pci_remove_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1854
    functionDepth: 4
    functionLinenumber: 1854
    functionLinenumberEnd: 1878
    functionName: pci_remove_qmp_device_del
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 1
    functionsReached:
    - pci_remove_detached
    - STATE_AO_GC
    - QMP_PARAMETERS_SPRINTF
    - libxl__ev_qmp_send
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void pci_remove_qmp_device_del(libxl__egc *egc,\n                                      pci_remove_state
      *prs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1886,1
    - Dst: pci_remove_qmp_retry_timer_cb
      Src: /src/xen/tools/libs/light/libxl_pci.c:1895,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1901
    functionName: pci_remove_qmp_device_del_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_remove_detached
    - CONTAINER_OF
    - pci_remove_qmp_retry_timer_cb
    linkageType: ''
    returnType: void
    signature: "void pci_remove_qmp_device_del_cb(libxl__egc *egc,\n                                         libxl__ev_qmp
      *qmp,\n                                         const libxl__json_object *response,\n
      \                                        int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1908,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_pci.c:1911,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1917
    functionName: pci_remove_qmp_retry_timer_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 1
    functionsReached:
    - pci_remove_detached
    - CONTAINER_OF
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: void
    signature: "void pci_remove_qmp_retry_timer_cb(libxl__egc *egc, libxl__ev_time
      *ev,\n                                          const struct timeval *requested_abs,\n
      \                                         int rc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1925,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:1936,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1938,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1945,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1951,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1957,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_pci.c:1958,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_pci.c:1963,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:1965,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_pci.c:1967,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1976,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1919
    functionDepth: 4
    functionLinenumber: 1919
    functionLinenumberEnd: 1977
    functionName: pci_remove_qmp_query_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_remove_detached
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__json_object_get_string
    - libxl__json_array_get
    - libxl__json_map_get
    - libxl__ev_qmp_dispose
    - strcmp
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void pci_remove_qmp_query_cb(libxl__egc *egc,\n                                    libxl__ev_qmp
      *qmp,\n                                    const libxl__json_object *response,\n
      \                                   int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:1984,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:1989,1
    - Dst: pci_remove_detached
      Src: /src/xen/tools/libs/light/libxl_pci.c:1995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 1996
    functionName: pci_remove_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - pci_remove_detached
    - CONTAINER_OF
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void pci_remove_timeout(libxl__egc *egc, libxl__ev_time *ev,\n                               const
      struct timeval *requested_abs,\n                               int rc)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:2002,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_pci.c:2003,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:2017,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:2018,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:2019,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2025,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:2028,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2030,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2035,1
    - Dst: xc_domain_ioport_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:2041,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2044,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:2049,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2054,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:2061,1
    - Dst: pci_supp_legacy_irq
      Src: /src/xen/tools/libs/light/libxl_pci.c:2064,1
    - Dst: libxl__arch_local_domain_has_pirq_notion
      Src: /src/xen/tools/libs/light/libxl_pci.c:2068,1
    - Dst: libxl__arch_hvm_unmap_gsi
      Src: /src/xen/tools/libs/light/libxl_pci.c:2069,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2069,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_pci.c:2071,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2075,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_pci.c:2078,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2080,1
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2084,1
    - Dst: xc_physdev_unmap_pirq
      Src: /src/xen/tools/libs/light/libxl_pci.c:2085,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2093,1
    - Dst: xc_domain_irq_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:2095,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2097,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_pci.c:2101,1
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_pci.c:2106,1
    - Dst: libxl__device_pci_reset
      Src: /src/xen/tools/libs/light/libxl_pci.c:2110,1
    - Dst: xc_deassign_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:2114,1
    - Dst: pci_encode_bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2114,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2116,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:2119,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:2124,1
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2125,1
    - Dst: libxl_device_pci_copy
      Src: /src/xen/tools/libs/light/libxl_pci.c:2126,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:2128,1
    - Dst: libxl__device_pci_remove_common
      Src: /src/xen/tools/libs/light/libxl_pci.c:2132,1
    - Dst: pci_remove_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:2139,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 3
    argNames:
    - egc
    - prs
    - rc
    argTypes:
    - libxl__egc*
    - pci_remove_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 1998
    functionDepth: 3
    functionLinenumber: 1998
    functionLinenumberEnd: 2140
    functionName: pci_remove_detached
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 6
    functionsReached:
    - libxl__device_pci_remove_common
    - LOGED
    - pci_supp_legacy_irq
    - xc_deassign_device
    - pci_remove_done
    - libxl__device_pci_reset
    - libxl__prepare_ao_device
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - libxl_get_stubdom_id
    - xc_domain_ioport_permission
    - STATE_AO_GC
    - fopen
    - GCSPRINTF
    - GCNEW
    - pci_encode_bdf
    - libxl__arch_hvm_unmap_gsi
    - libxl__arch_local_domain_has_pirq_notion
    - libxl__gc_owner
    - xc_physdev_unmap_pirq
    - libxl_device_pci_init
    - LOGD
    - xc_domain_iomem_permission
    - xc_domain_irq_permission
    - fclose
    - libxl_device_pci_copy
    - fscanf
    - libxl_is_stubdom
    linkageType: ''
    returnType: void
    signature: "void pci_remove_detached(libxl__egc *egc,\n                                pci_remove_state
      *prs,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2145,1
    - Dst: pci_remove_done
      Src: /src/xen/tools/libs/light/libxl_pci.c:2147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - aodev
    argTypes:
    - libxl__egc*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2142
    functionDepth: 1
    functionLinenumber: 2142
    functionLinenumberEnd: 2148
    functionName: pci_remove_stubdom_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - pci_remove_done
    linkageType: ''
    returnType: void
    signature: "void pci_remove_stubdom_done(libxl__egc *egc,\n                                    libxl__ao_device
      *aodev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_pci_remove_xenstore
      Src: /src/xen/tools/libs/light/libxl_pci.c:2158,1
    - Dst: device_pci_remove_common_next
      Src: /src/xen/tools/libs/light/libxl_pci.c:2160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - prs
    - rc
    argTypes:
    - libxl__egc*
    - pci_remove_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2150
    functionDepth: 5
    functionLinenumber: 2150
    functionLinenumberEnd: 2161
    functionName: pci_remove_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 2
    functionsReached:
    - device_pci_remove_common_next
    - libxl__device_pci_remove_xenstore
    linkageType: ''
    returnType: void
    signature: "void pci_remove_done(libxl__egc *egc,\n                            pci_remove_state
      *prs,\n                            int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:2169,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:2173,1
    - Dst: libxl_device_pci_copy
      Src: /src/xen/tools/libs/light/libxl_pci.c:2177,1
    - Dst: name2bdf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2182,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2187,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2188,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2192,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2193,1
    - Dst: pci_multifunction_check
      Src: /src/xen/tools/libs/light/libxl_pci.c:2198,1
    - Dst: device_pci_remove_common_next
      Src: /src/xen/tools/libs/light/libxl_pci.c:2210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - egc
    - domid
    - pci
    - force
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_pci*
    - bool
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2163
    functionDepth: 4
    functionLinenumber: 2163
    functionLinenumberEnd: 2211
    functionName: libxl__device_pci_remove_common
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 1
    functionsReached:
    - device_pci_remove_common_next
    - STATE_AO_GC
    - name2bdf
    - GCNEW
    - libxl__xswait_init
    - pci_multifunction_check
    - libxl__ev_qmp_init
    - libxl_device_pci_copy
    - libxl__ev_time_init
    linkageType: ''
    returnType: void
    signature: "void libxl__device_pci_remove_common(libxl__egc *egc,\n                                            uint32_t
      domid,\n                                            libxl_device_pci *pci,\n
      \                                           bool force,\n                                            libxl__ao_device
      *aodev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_pci_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:2237,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:2244,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_pci.c:2245,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:2246,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_pci.c:2247,1
    - Dst: pci_info_xs_remove
      Src: /src/xen/tools/libs/light/libxl_pci.c:2249,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/libs/light/libxl_pci.c:2251,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_pci.c:2253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - egc
    - prs
    - rc
    argTypes:
    - libxl__egc*
    - pci_remove_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2213
    functionDepth: 3
    functionLinenumber: 2213
    functionLinenumberEnd: 2254
    functionName: device_pci_remove_common_next
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 2
    functionsReached:
    - pci_info_xs_remove
    - libxl__ao_device*::callback
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - do_pci_remove
    - libxl_device_pci_dispose
    - libxl__xswait_stop
    linkageType: ''
    returnType: void
    signature: "void device_pci_remove_common_next(libxl__egc *egc,\n                                          pci_remove_state
      *prs,\n                                          int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_pci.c:2261,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:2264,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:2265,1
    - Dst: libxl__device_pci_remove_common
      Src: /src/xen/tools/libs/light/libxl_pci.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - domid
    - pci
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_pci*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2256
    functionDepth: 5
    functionLinenumber: 2256
    functionLinenumberEnd: 2271
    functionName: libxl_device_pci_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__prepare_ao_device
    - libxl__device_pci_remove_common
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_remove(libxl_ctx *ctx, uint32_t domid,\n                            libxl_device_pci
      *pci,\n                            const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_pci.c:2277,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_pci.c:2280,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_pci.c:2281,1
    - Dst: libxl__device_pci_remove_common
      Src: /src/xen/tools/libs/light/libxl_pci.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - domid
    - pci
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_pci*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2273
    functionDepth: 5
    functionLinenumber: 2273
    functionLinenumberEnd: 2287
    functionName: libxl_device_pci_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__prepare_ao_device
    - libxl__device_pci_remove_common
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_destroy(libxl_ctx *ctx, uint32_t domid,\n                             libxl_device_pci
      *pci,\n                             const libxl_asyncop_how *ao_how)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/libs/light/libxl_pci.c:2297,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:2299,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2299,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_pci.c:2300,1
    - Dst: pci_struct_fill
      Src: /src/xen/tools/libs/light/libxl_pci.c:2302,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:2304,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2304,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_pci.c:2306,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:2308,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2308,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_pci.c:2310,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:2312,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2312,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2315,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:2319,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2320,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:2321,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:2322,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2323,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:2324,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:2325,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2326,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:2327,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_pci.c:2328,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2329,1
    - Dst: libxl_rdm_reserve_policy_from_string
      Src: /src/xen/tools/libs/light/libxl_pci.c:2330,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_pci.c:2332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - gc
    - be_path
    - nr
    - data
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2336
    functionName: libxl__device_pci_from_xs_be
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_init
    - pci_struct_fill
    - GCSPRINTF
    - strtok_r
    - atoi
    - libxl_rdm_reserve_policy_from_string
    - libxl__xs_read
    - sscanf
    - strtol
    - strdup
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_from_xs_be(libxl__gc *gc,\n                                        const
      char *be_path,\n                                        libxl_devid nr, void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_pci.c:2344,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_pci.c:2344,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_pci.c:2348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gc
    - be_path
    - num
    argTypes:
    - libxl__gc*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2338
    functionDepth: 2
    functionLinenumber: 2338
    functionLinenumberEnd: 2351
    functionName: libxl__device_pci_get_num
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - atoi
    - GCSPRINTF
    - libxl__xs_read
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_get_num(libxl__gc *gc, const char *be_path,\n
      \                                    unsigned int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_pci.c:2356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - domid
    - path
    argTypes:
    - libxl__gc*
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2353
    functionDepth: 3
    functionLinenumber: 2353
    functionLinenumberEnd: 2360
    functionName: libxl__device_pci_get_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl__domain_device_backend_path
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pci_get_path(libxl__gc *gc, uint32_t domid,\n                                      char
      **path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_pci.c:2365,1
    - Dst: libxl_device_pci_list
      Src: /src/xen/tools/libs/light/libxl_pci.c:2369,1
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_pci.c:2378,1
    - Dst: libxl__device_pci_remove_common
      Src: /src/xen/tools/libs/light/libxl_pci.c:2379,1
    - Dst: libxl_device_pci_list_free
      Src: /src/xen/tools/libs/light/libxl_pci.c:2383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - domid
    - multidev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl__multidev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2362
    functionDepth: 5
    functionLinenumber: 2362
    functionLinenumberEnd: 2384
    functionName: libxl__device_pci_destroy_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__multidev_prepare
    - libxl__device_pci_remove_common
    - libxl_device_pci_list_free
    - libxl_device_pci_list
    linkageType: ''
    returnType: void
    signature: "void libxl__device_pci_destroy_all(libxl__egc *egc, uint32_t domid,\n
      \                                  libxl__multidev *multidev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_pci.c:2391,1
    - Dst: sysfs_dev_get_class
      Src: /src/xen/tools/libs/light/libxl_pci.c:2400,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_pci.c:2405,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:2406,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2409,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_pci.c:2416,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_pci.c:2419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - gc
    - domid
    - d_config
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2429
      start: 2386
    functionDepth: 2
    functionLinenumber: 2386
    functionLinenumberEnd: 2429
    functionName: libxl__grant_vga_iomem_permission
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - xc_domain_iomem_permission
    - LOGED
    - sysfs_dev_get_class
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: int
    signature: "int libxl__grant_vga_iomem_permission(libxl__gc *gc, const uint32_t
      domid,\n                                      libxl_domain_config *const d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_PCI
      Src: /src/xen/tools/libs/light/libxl_pci.c:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_pci*
    - libxl_device_pci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2431
    functionDepth: 1
    functionLinenumber: 2431
    functionLinenumberEnd: 2435
    functionName: libxl_device_pci_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_pci.c
    functionUses: 0
    functionsReached:
    - COMPARE_PCI
    linkageType: ''
    returnType: int
    signature: "int libxl_device_pci_compare(const libxl_device_pci *d1,\n                                    const
      libxl_device_pci *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - egc
    - ','
    - ao
    - ','
    - child
    - ','
    - param
    - ','
    - func
    - ','
    - callback
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: ASYNC_CALL
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASYNC_CALL(egc, ao, child, param, func, callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: S_ISBLK
      Src: /src/xen/tools/libs/light/libxl_linux.c:31,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_linux.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - st_mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: libxl__try_phy_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 1
    functionsReached:
    - S_ISBLK
    - S_ISREG
    linkageType: ''
    returnType: int
    signature: int libxl__try_phy_backend(mode_t st_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__devid_to_vdev
      Src: /src/xen/tools/libs/light/libxl_linux.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - devid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: libxl__devid_to_localdev
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 1
    functionsReached:
    - libxl__devid_to_vdev
    linkageType: ''
    returnType: char
    signature: char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_linux.c:48,1
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_linux.c:49,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_linux.c:54,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_linux.c:60,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_linux.c:67,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_linux.c:68,1
    - Dst: libxl__nic_type
      Src: /src/xen/tools/libs/light/libxl_linux.c:72,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:73,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_linux.c:79,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_linux.c:90,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_linux.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nr <= arraysize)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/xen/tools/libs/light/libxl_linux.c
    constantsTouched: []
    func_position:
      end: 103
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 103
    functionName: get_hotplug_env
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__device_nic_devname
    - libxl__device_backend_path
    - GCNEW_ARRAY
    - libxl__xs_read
    - libxl__device_kind_to_string
    - libxl__nic_type
    - assert
    linkageType: ''
    returnType: char
    signature: "char **get_hotplug_env(libxl__gc *gc,\n                              char
      *script, libxl__device *dev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_linux.c:111,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_linux.c:116,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_linux.c:116,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_linux.c:119,1
    - Dst: libxl__nic_type
      Src: /src/xen/tools/libs/light/libxl_linux.c:125,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:127,1
    - Dst: get_hotplug_env
      Src: /src/xen/tools/libs/light/libxl_linux.c:136,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_linux.c:143,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_linux.c:147,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_linux.c:156,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 6
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    - int
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/xen/tools/libs/light/libxl_linux.c
    constantsTouched: []
    func_position:
      end: 161
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 161
    functionName: libxl__hotplug_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__device_backend_path
    - GCNEW_ARRAY
    - libxl__xs_read
    - LOGED
    - libxl__nic_type
    - assert
    - libxl__device_action_to_string
    - get_hotplug_env
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug_nic(libxl__gc *gc, libxl__device *dev,\n                               char
      ***args, char ***env,\n                               libxl__device_action action,
      int num_exec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_backend_path
      Src: /src/xen/tools/libs/light/libxl_linux.c:167,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_linux.c:171,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_linux.c:172,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_linux.c:174,1
    - Dst: get_hotplug_env
      Src: /src/xen/tools/libs/light/libxl_linux.c:180,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:182,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_linux.c:188,1
    - Dst: libxl__device_action_to_string
      Src: /src/xen/tools/libs/light/libxl_linux.c:190,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_linux.c:192,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/xen/tools/libs/light/libxl_linux.c
    constantsTouched: []
    func_position:
      end: 199
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 199
    functionName: libxl__hotplug_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 1
    functionsReached:
    - GCSPRINTF
    - LOGD
    - libxl__device_backend_path
    - GCNEW_ARRAY
    - libxl__xs_read
    - assert
    - libxl__device_action_to_string
    - get_hotplug_env
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__hotplug_disk(libxl__gc *gc, libxl__device *dev,\n                               char
      ***args, char ***env,\n                               libxl__device_action action)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:212,1
    - Dst: libxl__hotplug_disk
      Src: /src/xen/tools/libs/light/libxl_linux.c:217,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_linux.c:225,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:226,1
    - Dst: libxl__hotplug_nic
      Src: /src/xen/tools/libs/light/libxl_linux.c:231,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_linux.c:235,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_linux.c:236,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - gc
    - dev
    - args
    - env
    - action
    - num_exec
    argTypes:
    - libxl__gc*
    - libxl__device*
    - char***
    - char***
    - libxl__device_action
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 243
    functionName: libxl__get_hotplug_script_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 1
    functionsReached:
    - LOGD
    - libxl__device_kind_to_string
    - libxl__hotplug_nic
    - libxl__hotplug_disk
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: int
    signature: "int libxl__get_hotplug_script_info(libxl__gc *gc, libxl__device *dev,\n
      \                                  char ***args, char ***env,\n                                   libxl__device_action
      action,\n                                   int num_exec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_linux.c:251,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_linux.c:253,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_linux.c:257,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_linux.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: libxl__pci_numdevs
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - closedir
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__pci_numdevs(libxl__gc *gc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_linux.c:276,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_linux.c:278,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_linux.c:283,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_linux.c:290,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_linux.c:296,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_linux.c:297,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_linux.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - gc
    - devs
    - num_devs
    argTypes:
    - libxl__gc*
    - physdev_pci_device_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 313
    functionName: libxl__pci_topology_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 0
    functionsReached:
    - opendir
    - sscanf
    - LOGE
    - readdir
    - LOG
    - closedir
    linkageType: ''
    returnType: int
    signature: "int libxl__pci_topology_init(libxl__gc *gc,\n                             physdev_pci_device_t
      *devs,\n                             int num_devs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unshare
      Src: /src/xen/tools/libs/light/libxl_linux.c:341,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_linux.c:343,1
    - Dst: setrlimit
      Src: /src/xen/tools/libs/light/libxl_linux.c:353,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_linux.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 363
    functionName: libxl__local_dm_preexec_restrict
    functionSourceFile: /src/xen/tools/libs/light/libxl_linux.c
    functionUses: 0
    functionsReached:
    - LOGE
    - setrlimit
    - unshare
    linkageType: ''
    returnType: int
    signature: int libxl__local_dm_preexec_restrict(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpuid_policy_list_length
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pl
    argTypes:
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: libxl__cpuid_policy_is_empty
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - libxl_cpuid_policy_list_length
    linkageType: ''
    returnType: int
    signature: int libxl__cpuid_policy_is_empty(libxl_cpuid_policy_list *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:38,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:42,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:45,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pl
    argTypes:
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: libxl_cpuid_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void libxl_cpuid_dispose(libxl_cpuid_policy_list *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:84,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:93,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pl
    - leaf
    - subleaf
    argTypes:
    - libxl_cpuid_policy_list*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: cpuid_find_match
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - memset
    - realloc
    - calloc
    linkageType: ''
    returnType: struct xc_xend_cpuid
    signature: "struct xc_xend_cpuid *cpuid_find_match(libxl_cpuid_policy_list *pl,\n
      \                                             uint32_t leaf, uint32_t subleaf)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_find_match
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:104,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:111,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:121,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:129,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:135,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:137,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:138,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:141,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:146,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:148,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:149,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:150,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:152,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - policy
    - flag
    - val
    argTypes:
    - libxl_cpuid_policy_list*
    - struct cpuid_flags*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 158
    functionName: cpuid_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - cpuid_find_match
    - strdup
    - memset
    - strcmp
    - memcpy
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int cpuid_add(libxl_cpuid_policy_list *policy,\n                     const
      struct cpuid_flags *flag, const char *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:166,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:176,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:178,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:178,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pl
    - idx
    argTypes:
    - libxl_cpuid_policy_list*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: msr_find_match
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - memset
    - realloc
    - ARRAY_SIZE
    - calloc
    linkageType: ''
    returnType: struct xc_msr
    signature: struct xc_msr *msr_find_match(libxl_cpuid_policy_list *pl, uint32_t
      idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: msr_find_match
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:188,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - policy
    - idx
    - bit
    - val
    argTypes:
    - libxl_cpuid_policy_list*
    - uint32_t
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 212
    functionName: msr_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - strlen
    - msr_find_match
    linkageType: ''
    returnType: int
    signature: "int msr_add(libxl_cpuid_policy_list *policy, uint32_t idx,\n                   unsigned
      int bit, const char *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: search_feature
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int search_feature(const void *a, const void *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:319,1
    - Dst: MSR_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:323,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:327,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:328,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:329,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:330,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:331,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:332,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:333,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:334,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:335,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:336,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:337,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:338,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:339,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:340,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:341,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:342,1
    - Dst: MSR_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:343,1
    - Dst: MSR_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:344,1
    - Dst: CPUID_ENTRY
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:345,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:355,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:355,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:357,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:364,1
    - Dst: cpuid_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:365,1
    - Dst: strndup
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:369,1
    - Dst: bsearch
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:373,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:373,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:375,1
    - Dst: cpuid_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:392,1
    - Dst: msr_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - policy
    - str
    argTypes:
    - libxl_cpuid_policy_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 408
    functionName: libxl_cpuid_parse_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - msr_add
    - free
    - bsearch
    - BUILD_BUG_ON
    - strchr
    - MSR_ENTRY
    - CPUID_ENTRY
    - strncmp
    - cpuid_add
    - strndup
    linkageType: ''
    returnType: int
    signature: int libxl_cpuid_parse_config(libxl_cpuid_policy_list *policy, const
      char* str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:423,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:431,1
    - Dst: cpuid_find_match
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:441,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:449,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:454,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:456,1
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:461,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:462,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - policy
    - str
    argTypes:
    - libxl_cpuid_policy_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 471
    functionName: libxl_cpuid_parse_config_xend
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - calloc
    - cpuid_find_match
    - strchr
    - strncpy
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_cpuid_parse_config_xend(libxl_cpuid_policy_list *policy,\n
      \                                 const char* str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:476,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:501,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:515,1
    - Dst: xc_cpuid_apply_policy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:518,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - domid
    - restore
    - info
    argTypes:
    - libxl_ctx*
    - uint32_t
    - bool
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 527
    functionName: libxl__cpuid_legacy
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GC_INIT
    - xc_cpuid_apply_policy
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__cpuid_legacy(libxl_ctx *ctx, uint32_t domid, bool restore,\n
      \                       libxl_domain_build_info *info)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:563,1
    - Dst: json_object_new_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:566,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:569,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:571,1
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:580,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:583,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:585,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:591,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:593,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:595,1
    - Dst: json_object_new_string_len
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:603,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:605,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:607,1
    - Dst: json_object_new_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:616,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:619,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:621,1
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:632,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:635,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:637,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:641,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:643,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:645,1
    - Dst: json_object_new_string_len
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:649,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:651,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:653,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:663,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 114
    argCount: 2
    argNames:
    - jso_r
    - pl
    argTypes:
    - json_object**
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 665
    functionName: libxl_cpuid_policy_list_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - json_object_new_object
    - json_object_new_int
    - json_object_put
    - json_object_new_string_len
    - json_object_array_add
    - json_object_new_array
    - json_object_object_add
    linkageType: ''
    returnType: int
    signature: int libxl_cpuid_policy_list_gen_jso(json_object **jso_r, libxl_cpuid_policy_list
      *pl)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:678,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:681,1
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:684,1
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:691,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:696,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:698,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:705,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:707,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:712,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:717,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:720,1
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:723,1
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:730,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:733,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:735,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:737,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:739,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:743,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:748,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:750,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 105
    argCount: 2
    argNames:
    - hand
    - pl
    argTypes:
    - yajl_gen
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 753
    functionName: libxl_cpuid_policy_list_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - yajl_gen_string
    - libxl__yajl_gen_asciiz
    - yajl_gen_map_close
    - yajl_gen_map_open
    - yajl_gen_integer
    - yajl_gen_array_open
    - yajl_gen_array_close
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_cpuid_policy_list_gen_json(yajl_gen hand,\n
      \                               libxl_cpuid_policy_list *pl)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:775,1
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:781,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:784,1
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:785,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:789,1
    - Dst: libxl__json_object_get_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:791,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:797,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:807,1
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:810,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:813,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:816,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:820,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:823,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:826,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:831,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:831,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:839,1
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:840,1
    - Dst: libxl__json_object_get_array
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:843,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:848,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:855,1
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:858,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:861,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:863,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:864,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:866,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:866,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:867,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:869,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:869,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 873
    functionName: libxl__cpuid_policy_list_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_string
    - ARRAY_SIZE
    - flexarray_get
    - libxl__calloc
    - libxl__json_object_is_map
    - libxl__json_object_get_array
    - libxl__json_object_is_array
    - libxl__strdup
    - strcpy
    - libxl__json_map_get
    - strlen
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__cpuid_policy_list_parse_json(libxl__gc *gc,\n                                        const
      libxl__json_object *o,\n                                        libxl_cpuid_policy_list
      *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pl
    argTypes:
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 890
    functionName: libxl_cpuid_policy_list_length
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_cpuid_policy_list_length(const libxl_cpuid_policy_list *pl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:898,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:906,1
    - Dst: libxl_cpuid_policy_list_length
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:913,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:915,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:925,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:937,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/light/libxl_cpuid.c:942,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - ctx
    - pdst
    - psrc
    argTypes:
    - libxl_ctx*
    - libxl_cpuid_policy_list*
    - libxl_cpuid_policy_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 948
    functionName: libxl_cpuid_policy_list_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_cpuid.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_cpuid_policy_list_length
    - libxl__calloc
    - libxl__strdup
    - strcpy
    linkageType: ''
    returnType: void
    signature: "void libxl_cpuid_policy_list_copy(libxl_ctx *ctx,\n                                  libxl_cpuid_policy_list
      *pdst,\n                                  const libxl_cpuid_policy_list *psrc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: init_subkind_qdisk
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_subkind_qdisk(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: cleanup_subkind_qdisk
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_subkind_qdisk(libxl__checkpoint_devices_state *cds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:51,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:54,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:63,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:74,1
    - Dst: libxl__qmp_nbd_server_start
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:78,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:86,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:86,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:87,1
    - Dst: libxl__qmp_nbd_server_add
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:95,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:104,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 3
    argNames:
    - egc
    - dev
    - primary
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 105
    functionName: colo_qdisk_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - STATE_AO_GC
    - LOGD
    - GCNEW
    - libxl__checkpoint_device*::aodev::callback
    - sprintf
    - libxl__qmp_nbd_server_start
    - libxl__qmp_nbd_server_add
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_setup(libxl__egc *egc, libxl__checkpoint_device *dev,\n
      \                            bool primary)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_x_blockdev_change
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:128,1
    - Dst: libxl__qmp_nbd_server_stop
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:136,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - egc
    - dev
    - primary
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 145
    functionName: colo_qdisk_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - libxl__qmp_nbd_server_stop
    - libxl__qmp_x_blockdev_change
    - libxl__checkpoint_device*::aodev::callback
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_teardown(libxl__egc *egc, libxl__checkpoint_device
      *dev,\n                                bool primary)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:170,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:171,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:172,1
    - Dst: libxl__qmp_hmp
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:176,1
    - Dst: libxl__qmp_x_blockdev_change
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:180,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 189
    functionName: colo_qdisk_save_preresume
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__device_disk_dev_number
    - libxl__checkpoint_device*::aodev::callback
    - libxl__qmp_x_blockdev_change
    - libxl__qmp_hmp
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_save_preresume(libxl__egc *egc,\n                                      libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_qdisk_setup
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: colo_qdisk_save_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - colo_qdisk_setup
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_save_setup(libxl__egc *egc,\n                                  libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_qdisk_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: colo_qdisk_save_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - colo_qdisk_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_save_teardown(libxl__egc *egc,\n                                   libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_qdisk_setup
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: colo_qdisk_restore_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - colo_qdisk_setup
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_restore_setup(libxl__egc *egc,\n                                     libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_qdisk_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_qdisk.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: colo_qdisk_restore_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_qdisk.c
    functionUses: 0
    functionsReached:
    - colo_qdisk_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_qdisk_restore_teardown(libxl__egc *egc,\n                                      libxl__checkpoint_device
      *dev)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_exec.c:28,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_exec.c:31,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl_exec.c:40,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_exec.c:43,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_exec.c:44,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_exec.c:54,1
    - Dst: getpid
      Src: /src/xen/tools/libs/light/libxl_exec.c:54,1
    - Dst: readlink
      Src: /src/xen/tools/libs/light/libxl_exec.c:55,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_exec.c:58,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_exec.c:62,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_exec.c:66,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - what
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 67
    functionName: check_open_fds
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - snprintf
    - getpid
    - readlink
    - abort
    - strerror
    - fprintf
    - strtol
    - fcntl
    - getenv
    linkageType: ''
    returnType: void
    signature: void check_open_fds(const char *what)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/xen/tools/libs/light/libxl_exec.c:74,1
    - Dst: dup2
      Src: /src/xen/tools/libs/light/libxl_exec.c:76,1
    - Dst: dup2
      Src: /src/xen/tools/libs/light/libxl_exec.c:78,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_exec.c:81,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_exec.c:83,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_exec.c:85,1
    - Dst: check_open_fds
      Src: /src/xen/tools/libs/light/libxl_exec.c:87,1
    - Dst: signal
      Src: /src/xen/tools/libs/light/libxl_exec.c:89,1
    - Dst: setenv
      Src: /src/xen/tools/libs/light/libxl_exec.c:95,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_exec.c:96,1
    - Dst: execvp
      Src: /src/xen/tools/libs/light/libxl_exec.c:102,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_exec.c:105,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_exec.c:105,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_exec.c:106,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 7
    argNames:
    - gc
    - stdinfd
    - stdoutfd
    - stderrfd
    - arg0
    - args
    - env
    argTypes:
    - libxl__gc*
    - int
    - int
    - int
    - char*
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 107
    functionName: libxl__exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 1
    functionsReached:
    - check_open_fds
    - setenv
    - signal
    - dup2
    - close
    - strerror
    - fprintf
    - LOGEV
    - _exit
    - execvp
    linkageType: ''
    returnType: void
    signature: "void libxl__exec(libxl__gc *gc, int stdinfd, int stdoutfd, int stderrfd,\n
      \                const char *arg0, char *const args[], char *const env[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_exec.c:114,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_exec.c:115,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:117,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:120,1
    - Dst: WIFSIGNALED
      Src: /src/xen/tools/libs/light/libxl_exec.c:122,1
    - Dst: WTERMSIG
      Src: /src/xen/tools/libs/light/libxl_exec.c:123,1
    - Dst: strsignal
      Src: /src/xen/tools/libs/light/libxl_exec.c:124,1
    - Dst: WCOREDUMP
      Src: /src/xen/tools/libs/light/libxl_exec.c:125,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:127,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:131,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - ctx
    - level
    - what
    - pid
    - status
    argTypes:
    - libxl_ctx*
    - xentoollog_level
    - char*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: libxl_report_child_exitstatus
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - WTERMSIG
    - LIBXL__LOG
    - WCOREDUMP
    - WIFSIGNALED
    - WIFEXITED
    - strsignal
    linkageType: ''
    returnType: void
    signature: "void libxl_report_child_exitstatus(libxl_ctx *ctx,\n                                   xentoollog_level
      level,\n                                   const char *what, pid_t pid, int
      status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_xenstore_reopen
      Src: /src/xen/tools/libs/light/libxl_exec.c:144,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_exec.c:147,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_exec.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - spawn
    - pid
    argTypes:
    - libxl__gc*
    - libxl__spawn_state*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: libxl__spawn_record_pid
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - libxl__xs_printf
    - libxl__ev_child_xenstore_reopen
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__spawn_record_pid(libxl__gc *gc, libxl__spawn_state *spawn,
      pid_t pid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_exec.c:198,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_exec.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: libxl__spawn_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - libxl__xswait_init
    - libxl__ev_child_init
    linkageType: ''
    returnType: void
    signature: void libxl__spawn_init(libxl__spawn_state *ss)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_exec.c:204,1
    - Dst: libxl__spawn_init
      Src: /src/xen/tools/libs/light/libxl_exec.c:209,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_exec.c:213,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_exec.c:217,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_exec.c:220,1
    - Dst: fork_replacement
      Src: /src/xen/tools/libs/light/libxl_exec.c:236,1
    - Dst: fork
      Src: /src/xen/tools/libs/light/libxl_exec.c:237,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_exec.c:240,1
    - Dst: libxl__spawn_state*::midproc_cb
      Src: /src/xen/tools/libs/light/libxl_exec.c:245,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_exec.c:247,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_exec.c:248,1
    - Dst: waitpid
      Src: /src/xen/tools/libs/light/libxl_exec.c:252,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:254,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:257,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_exec.c:261,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_exec.c:261,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_exec.c:261,1
    - Dst: WIFSIGNALED
      Src: /src/xen/tools/libs/light/libxl_exec.c:262,1
    - Dst: WTERMSIG
      Src: /src/xen/tools/libs/light/libxl_exec.c:262,1
    - Dst: WTERMSIG
      Src: /src/xen/tools/libs/light/libxl_exec.c:262,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_exec.c:264,1
    - Dst: spawn_cleanup
      Src: /src/xen/tools/libs/light/libxl_exec.c:267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - egc
    - ss
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    assertStmts:
    - condition: (errno == EINTR)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    - condition: (got == child)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    constantsTouched: []
    func_position:
      end: 269
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 269
    functionName: libxl__spawn_spawn
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - _exit
    - GCSPRINTF
    - kill
    - waitpid
    - WEXITSTATUS
    - WTERMSIG
    - libxl__xswait_start
    - WIFSIGNALED
    - libxl__spawn_state*::midproc_cb
    - libxl__spawn_init
    - fork
    - exit
    - WIFEXITED
    - fork_replacement
    - spawn_cleanup
    - libxl__ev_child_fork
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl__spawn_spawn(libxl__egc *egc, libxl__spawn_state *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:273,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_exec.c:273,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_exec.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - ss
    argTypes:
    - libxl__gc*
    - libxl__spawn_state*
    assertStmts:
    - condition: (!libxl__ev_child_inuse(&ss->mid))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: spawn_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 1
    functionsReached:
    - libxl__xswait_stop
    - libxl__ev_child_inuse
    - assert
    linkageType: ''
    returnType: void
    signature: void spawn_cleanup(libxl__gc *gc, libxl__spawn_state *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:284,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_exec.c:284,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:285,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_exec.c:286,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_exec.c:289,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_exec.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - ss
    argTypes:
    - libxl__gc*
    - libxl__spawn_state*
    assertStmts:
    - condition: (libxl__ev_child_inuse(&ss->mid))
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    - condition: (ss->detaching || ss->rc)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    constantsTouched: []
    func_position:
      end: 293
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 293
    functionName: spawn_detach
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - kill
    - LOGE
    - libxl__ev_child_inuse
    - libxl__xswait_stop
    - assert
    linkageType: ''
    returnType: void
    signature: void spawn_detach(libxl__gc *gc, libxl__spawn_state *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spawn_detach
      Src: /src/xen/tools/libs/light/libxl_exec.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - ss
    argTypes:
    - libxl__gc*
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: libxl__spawn_initiate_detach
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - spawn_detach
    linkageType: ''
    returnType: void
    signature: void libxl__spawn_initiate_detach(libxl__gc *gc, libxl__spawn_state
      *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spawn_fail
      Src: /src/xen/tools/libs/light/libxl_exec.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - ss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: libxl__spawn_initiate_failure
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - spawn_fail
    linkageType: ''
    returnType: void
    signature: "void libxl__spawn_initiate_failure(libxl__egc *egc, libxl__spawn_state
      *ss,\n                                   int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:314,1
    - Dst: spawn_detach
      Src: /src/xen/tools/libs/light/libxl_exec.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - ss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: spawn_fail
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 1
    functionsReached:
    - assert
    - spawn_detach
    linkageType: ''
    returnType: void
    signature: void spawn_fail(libxl__egc *egc, libxl__spawn_state *ss, int rc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_exec.c:325,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:328,1
    - Dst: spawn_fail
      Src: /src/xen/tools/libs/light/libxl_exec.c:329,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:332,1
    - Dst: libxl__spawn_state*::confirm_cb
      Src: /src/xen/tools/libs/light/libxl_exec.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - egc
    - xswa
    - rc
    - p
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: spawn_watch_event
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOG
    - spawn_fail
    - libxl__spawn_state*::confirm_cb
    linkageType: ''
    returnType: void
    signature: "void spawn_watch_event(libxl__egc *egc, libxl__xswait_state *xswa,\n
      \                             int rc, const char *p)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_exec.c:341,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_exec.c:344,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_exec.c:344,1
    - Dst: WIFSIGNALED
      Src: /src/xen/tools/libs/light/libxl_exec.c:345,1
    - Dst: WTERMSIG
      Src: /src/xen/tools/libs/light/libxl_exec.c:345,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_exec.c:347,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_exec.c:348,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_exec.c:349,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_exec.c:352,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_exec.c:353,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:357,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:361,1
    - Dst: strsignal
      Src: /src/xen/tools/libs/light/libxl_exec.c:365,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:367,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:370,1
    - Dst: spawn_cleanup
      Src: /src/xen/tools/libs/light/libxl_exec.c:376,1
    - Dst: libxl__spawn_state*::failure_cb
      Src: /src/xen/tools/libs/light/libxl_exec.c:379,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_exec.c:384,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_exec.c:388,1
    - Dst: libxl__spawn_state*::detached_cb
      Src: /src/xen/tools/libs/light/libxl_exec.c:389,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 4
    argNames:
    - egc
    - childw
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts:
    - condition: (ss->detaching)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/xen/tools/libs/light/libxl_exec.c
    constantsTouched: []
    func_position:
      end: 390
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 390
    functionName: spawn_middle_death
    functionSourceFile: /src/xen/tools/libs/light/libxl_exec.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - libxl__spawn_state*::detached_cb
    - CONTAINER_OF
    - GCSPRINTF
    - WTERMSIG
    - WIFEXITED
    - libxl__spawn_state*::failure_cb
    - WIFSIGNALED
    - WEXITSTATUS
    - strsignal
    - LOG
    - spawn_cleanup
    - assert
    linkageType: ''
    returnType: void
    signature: "void spawn_middle_death(libxl__egc *egc, libxl__ev_child *childw,\n
      \                              pid_t pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: libxl__netbuffer_enabled
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__netbuffer_enabled(libxl__gc *gc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:44,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:47,1
    - Dst: nl_socket_alloc
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:49,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:51,1
    - Dst: nl_connect
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:56,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:58,1
    - Dst: nl_geterror
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:59,1
    - Dst: rtnl_qdisc_alloc_cache
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:65,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:67,1
    - Dst: nl_geterror
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:68,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:74,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:76,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:77,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 84
    functionName: init_subkind_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - nl_connect
    - nl_geterror
    - libxl__xen_script_dir_path
    - libxl__strdup
    - nl_socket_alloc
    - rtnl_qdisc_alloc_cache
    linkageType: ''
    returnType: int
    signature: int init_subkind_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:90,1
    - Dst: nl_cache_clear
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:94,1
    - Dst: nl_cache_free
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:95,1
    - Dst: nl_close
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:101,1
    - Dst: nl_socket_free
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: cleanup_subkind_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - nl_close
    - nl_socket_free
    - nl_cache_clear
    - nl_cache_free
    linkageType: ''
    returnType: void
    signature: void cleanup_subkind_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:124,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:129,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:130,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:133,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dev
    - nic
    argTypes:
    - libxl__checkpoint_device*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: get_vifname
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__domain_device_backend_path
    - libxl__device_nic_devname
    - libxl__xs_read_checked
    linkageType: ''
    returnType: char
    signature: "char *get_vifname(libxl__checkpoint_device *dev,\n                               const
      libxl_device_nic *nic)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nl_object_put
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - remus_nic
    argTypes:
    - libxl__remus_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: free_qdisc
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - nl_object_put
    linkageType: ''
    returnType: void
    signature: void free_qdisc(libxl__remus_device_nic *remus_nic)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:160,1
    - Dst: nl_cache_refill
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:165,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:167,1
    - Dst: nl_geterror
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:168,1
    - Dst: rtnl_link_get_kernel
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:174,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:176,1
    - Dst: nl_geterror
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:178,1
    - Dst: rtnl_link_get_ifindex
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:183,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:185,1
    - Dst: rtnl_qdisc_get_by_parent
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:199,1
    - Dst: rtnl_tc_get_kind
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:201,1
    - Dst: TC_CAST
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:201,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:203,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:204,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:211,1
    - Dst: rtnl_link_put
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:221,1
    - Dst: nl_object_put
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - cds
    - remus_nic
    argTypes:
    - libxl__checkpoint_devices_state*
    - libxl__remus_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 227
    functionName: init_qdisc
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - nl_object_put
    - LOGD
    - rtnl_link_get_kernel
    - nl_geterror
    - rtnl_qdisc_get_by_parent
    - rtnl_tc_get_kind
    - nl_cache_refill
    - rtnl_link_get_ifindex
    - TC_CAST
    - rtnl_link_put
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int init_qdisc(libxl__checkpoint_devices_state *cds,\n                      libxl__remus_device_nic
      *remus_nic)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:254,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:257,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:264,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:266,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:268,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:269,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:270,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:272,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:275,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:278,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:282,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:285,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - dev
    - op
    argTypes:
    - libxl__checkpoint_device*
    - char*
    assertStmts:
    - condition: (nr <= arraysize)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/xen/tools/libs/light/libxl_netbuffer.c
    - condition: (nr == arraysize)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/xen/tools/libs/light/libxl_netbuffer.c
    constantsTouched: []
    func_position:
      end: 297
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 297
    functionName: setup_async_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW_ARRAY
    - libxl__xs_libxl_path
    - libxl__strdup
    - strcmp
    - assert
    linkageType: ''
    returnType: void
    signature: void setup_async_exec(libxl__checkpoint_device *dev, char *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:307,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:315,1
    - Dst: get_vifname
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:318,1
    - Dst: setup_async_exec
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:324,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:325,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 334
    functionName: nic_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCNEW
    - libxl__checkpoint_device*::aodev::callback
    - setup_async_exec
    - get_vifname
    - libxl__async_exec_start
    linkageType: ''
    returnType: void
    signature: void nic_setup(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:344,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:345,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:351,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:367,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:368,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:369,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:376,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:382,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:383,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:385,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:386,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:392,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:403,1
    - Dst: init_qdisc
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:404,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:408,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 409
    functionName: netbuf_setup_script_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - init_qdisc
    - libxl__xs_libxl_path
    - libxl__ao_device*::callback
    - libxl__xs_read_checked
    linkageType: ''
    returnType: void
    signature: "void netbuf_setup_script_cb(libxl__egc *egc,\n                                   libxl__async_exec_state
      *aes,\n                                   int rc, int status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:414,1
    - Dst: setup_async_exec
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:416,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:418,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 427
    functionName: nic_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_device*::aodev::callback
    - STATE_AO_GC
    - setup_async_exec
    - libxl__async_exec_start
    linkageType: ''
    returnType: void
    signature: void nic_teardown(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:433,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:434,1
    - Dst: free_qdisc
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:440,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: netbuf_teardown_script_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - free_qdisc
    - libxl__ao_device*::callback
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void netbuf_teardown_script_cb(libxl__egc *egc,\n                                      libxl__async_exec_state
      *aes,\n                                      int rc, int status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:463,1
    - Dst: rtnl_qdisc_plug_buffer
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:466,1
    - Dst: rtnl_qdisc_plug_release_one
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:468,1
    - Dst: rtnl_qdisc_add
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:475,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:485,1
    - Dst: nl_geterror
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - remus_nic
    - cds
    - buffer_op
    argTypes:
    - libxl__remus_device_nic*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 490
    functionName: remus_netbuf_op
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - nl_geterror
    - rtnl_qdisc_plug_buffer
    - rtnl_qdisc_add
    - rtnl_qdisc_plug_release_one
    linkageType: ''
    returnType: int
    signature: "int remus_netbuf_op(libxl__remus_device_nic *remus_nic,\n                           libxl__checkpoint_devices_state
      *cds,\n                           int buffer_op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:497,1
    - Dst: remus_netbuf_op
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:499,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 503
    functionName: nic_postsuspend
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - remus_netbuf_op
    - STATE_AO_GC
    - libxl__checkpoint_device*::aodev::callback
    linkageType: ''
    returnType: void
    signature: void nic_postsuspend(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:510,1
    - Dst: remus_netbuf_op
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:512,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_netbuffer.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 516
    functionName: nic_commit
    functionSourceFile: /src/xen/tools/libs/light/libxl_netbuffer.c
    functionUses: 0
    functionsReached:
    - remus_netbuf_op
    - STATE_AO_GC
    - libxl__checkpoint_device*::aodev::callback
    linkageType: ''
    returnType: void
    signature: void nic_commit(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_common_setup
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:9,1
    - Dst: open
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:14,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:15,1
    - Dst: libxl_test_fdevent
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:17,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:18,1
    - Dst: test_common_beforepoll
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:20,1
    - Dst: libxl_ao_abort
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:22,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:23,1
    - Dst: libxl_event_check
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:25,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:26,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:27,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:28,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:29,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:30,1
    - Dst: close
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:32,1
    - Dst: test_common_dopoll
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:34,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:38,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:43,1
    - Dst: open
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:46,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:47,1
    - Dst: libxl_test_fdevent
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:50,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:51,1
    - Dst: test_common_afterpoll
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:53,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/test_fdderegrace.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (!rc)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (!rc)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (!rc)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (event->for_user == how.u.for_event)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (!rc)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (event)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (fd > 0)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (event->type == LIBXL_EVENT_TYPE_OPERATION_COMPLETE)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (event->u.operation_complete.rc == ERROR_ABORTED)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    - condition: (fd2 == fd)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/tools/libs/light/test_fdderegrace.c
    constantsTouched: []
    func_position:
      end: 56
      start: 4
    functionDepth: 5
    functionLinenumber: 4
    functionLinenumberEnd: 56
    functionName: main
    functionSourceFile: /src/xen/tools/libs/light/test_fdderegrace.c
    functionUses: 9
    functionsReached:
    - libxl_test_fdevent
    - open
    - abort
    - test_common_afterpoll
    - libxl_event_check
    - test_common_beforepoll
    - close
    - fprintf
    - libxl_ao_abort
    - test_common_setup
    - assert
    - test_common_dopoll
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:29,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:31,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_utils.c:33,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:35,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: libxl_basename
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - strrchr
    - strdup
    linkageType: ''
    returnType: char
    signature: char *libxl_basename(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__get_required_paging_memory
      Src: /src/xen/tools/libs/light/libxl_utils.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - maxmem_kb
    - smp_cpus
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: libxl_get_required_shadow_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl__get_required_paging_memory
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long libxl_get_required_shadow_memory(unsigned long maxmem_kb,
      unsigned int smp_cpus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_utils.c:51,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_utils.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: libxl_domid_to_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_read
    linkageType: ''
    returnType: char
    signature: char *libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/libs/light/libxl_utils.c:58,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_utils.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: libxl__domid_to_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - libxl__ptr_add
    - libxl_domid_to_name
    linkageType: ''
    returnType: char
    signature: char *libxl__domid_to_name(libxl__gc *gc, uint32_t domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_domain
      Src: /src/xen/tools/libs/light/libxl_utils.c:71,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/libs/light/libxl_utils.c:76,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:79,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:82,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:85,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/libs/light/libxl_utils.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - name
    - domid
    argTypes:
    - libxl_ctx*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 89
    functionName: libxl_name_to_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - free
    - libxl_domid_to_name
    - strcmp
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: "int libxl_name_to_domid(libxl_ctx *ctx, const char *name,\n                        uint32_t
      *domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CTYPE
      Src: /src/xen/tools/libs/light/libxl_utils.c:96,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_utils.c:100,1
    - Dst: libxl_name_to_domid
      Src: /src/xen/tools/libs/light/libxl_utils.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - name
    - domid
    argTypes:
    - libxl_ctx*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: libxl_domain_qualifier_to_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - CTYPE
    - libxl_name_to_domid
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_qualifier_to_domid(libxl_ctx *ctx, const char *name,\n
      \                                   uint32_t *domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/tools/libs/light/libxl_utils.c:115,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_utils.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - p
    - id_r
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: qualifier_to_id
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - isdigit
    - strtoul
    linkageType: ''
    returnType: int
    signature: int qualifier_to_id(const char *p, uint32_t *id_r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qualifier_to_id
      Src: /src/xen/tools/libs/light/libxl_utils.c:136,1
    - Dst: libxl_name_to_cpupoolid
      Src: /src/xen/tools/libs/light/libxl_utils.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - p
    - poolid_r
    - was_name_r
    argTypes:
    - libxl_ctx*
    - char*
    - uint32_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: libxl_cpupool_qualifier_to_cpupoolid
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl_name_to_cpupoolid
    - qualifier_to_id
    linkageType: ''
    returnType: int
    signature: "int libxl_cpupool_qualifier_to_cpupoolid(libxl_ctx *ctx, const char
      *p,\n                                         uint32_t *poolid_r,\n                                         int
      *was_name_r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_utils.c:147,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_utils.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - poolid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: libxl_cpupoolid_to_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - snprintf
    - xs_read
    linkageType: ''
    returnType: char
    signature: char *libxl_cpupoolid_to_name(libxl_ctx *ctx, uint32_t poolid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/libs/light/libxl_utils.c:157,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - poolid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: libxl_cpupoolid_is_valid
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_cpupoolid_to_name
    linkageType: ''
    returnType: int
    signature: int libxl_cpupoolid_is_valid(libxl_ctx *ctx, uint32_t poolid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/libs/light/libxl_utils.c:166,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_utils.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - poolid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: libxl__cpupoolid_to_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl__ptr_add
    - libxl_cpupoolid_to_name
    linkageType: ''
    returnType: char
    signature: char *libxl__cpupoolid_to_name(libxl__gc *gc, uint32_t poolid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/libs/light/libxl_utils.c:179,1
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/libs/light/libxl_utils.c:184,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:186,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:190,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/libs/light/libxl_utils.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - name
    - poolid
    argTypes:
    - libxl_ctx*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 195
    functionName: libxl_name_to_cpupoolid
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - free
    - strcmp
    - libxl_list_cpupool
    - libxl_cpupoolid_to_name
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: int
    signature: "int libxl_name_to_cpupoolid(libxl_ctx *ctx, const char *name,\n                        uint32_t
      *poolid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:199,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_utils.c:203,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:204,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_utils.c:205,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_utils.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - guest_domid
    argTypes:
    - libxl_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 212
    functionName: libxl_get_stubdom_id
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 14
    functionsReached:
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_read
    - atoi
    linkageType: ''
    returnType: int
    signature: int libxl_get_stubdom_id(libxl_ctx *ctx, int guest_domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:216,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_utils.c:221,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:221,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_utils.c:222,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_utils.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - domid
    - target_domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: libxl_is_stubdom
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 4
    functionsReached:
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_read
    - strtol
    linkageType: ''
    returnType: int
    signature: int libxl_is_stubdom(libxl_ctx *ctx, uint32_t domid, uint32_t *target_domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rename
      Src: /src/xen/tools/libs/light/libxl_utils.c:240,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - old
    - new
    argTypes:
    - libxl__gc*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: logrename
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - rename
    - LOGE
    linkageType: ''
    returnType: int
    signature: int logrename(libxl__gc *gc, const char *old, const char *new)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:253,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:258,1
    - Dst: stat
      Src: /src/xen/tools/libs/light/libxl_utils.c:259,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:261,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_utils.c:262,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:264,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:265,1
    - Dst: logrename
      Src: /src/xen/tools/libs/light/libxl_utils.c:266,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:270,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:271,1
    - Dst: logrename
      Src: /src/xen/tools/libs/light/libxl_utils.c:273,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:278,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - name
    - full_name
    argTypes:
    - libxl_ctx*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 287
    functionName: libxl_create_logfile
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - unlink
    - stat
    - logrename
    - strdup
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl_create_logfile(libxl_ctx *ctx, const char *name, char **full_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:294,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:296,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:298,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:300,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:302,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:304,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_utils.c:305,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:311,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:313,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:315,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - ctx
    - s
    - backend
    argTypes:
    - libxl_ctx*
    - char*
    - libxl_disk_backend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 323
    functionName: libxl_string_to_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - strchr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int libxl_string_to_backend(libxl_ctx *ctx, char *s, libxl_disk_backend
      *backend)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:327,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_utils.c:335,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:338,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_utils.c:342,1
    - Dst: fileno
      Src: /src/xen/tools/libs/light/libxl_utils.c:342,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:343,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_utils.c:347,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:348,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:354,1
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:362,1
    - Dst: fread
      Src: /src/xen/tools/libs/light/libxl_utils.c:365,1
    - Dst: ferror
      Src: /src/xen/tools/libs/light/libxl_utils.c:367,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:368,1
    - Dst: feof
      Src: /src/xen/tools/libs/light/libxl_utils.c:369,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:370,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_utils.c:373,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_utils.c:378,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:380,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_utils.c:393,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_utils.c:394,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:395,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 4
    argNames:
    - ctx
    - filename
    - data_r
    - datalen_r
    argTypes:
    - libxl_ctx*
    - char*
    - void**
    - int*
    assertStmts:
    - condition: (e != ENOENT)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/xen/tools/libs/light/libxl_utils.c
    constantsTouched: []
    func_position:
      end: 397
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 397
    functionName: libxl_read_file_contents
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - GC_INIT
    - fopen
    - fileno
    - ferror
    - abort
    - free
    - LOG
    - fread
    - malloc
    - feof
    - fclose
    - LOGE
    - fstat
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl_read_file_contents(libxl_ctx *ctx, const char *filename,\n
      \                            void **data_r, int *datalen_r)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_utils.c:409,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:412,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_utils.c:416,1
    - Dst: fileno
      Src: /src/xen/tools/libs/light/libxl_utils.c:416,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:417,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_utils.c:421,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:422,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:428,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:436,1
    - Dst: fread
      Src: /src/xen/tools/libs/light/libxl_utils.c:442,1
    - Dst: ferror
      Src: /src/xen/tools/libs/light/libxl_utils.c:444,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:445,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:450,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_utils.c:454,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:456,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_utils.c:467,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_utils.c:468,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 4
    argNames:
    - gc
    - filename
    - data_r
    - datalen_r
    argTypes:
    - libxl__gc*
    - char*
    - void**
    - int*
    assertStmts:
    - condition: (e != ENOENT)
      pos:
        line_end: 466
        line_start: 466
        source_file: /src/xen/tools/libs/light/libxl_utils.c
    constantsTouched: []
    func_position:
      end: 470
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 470
    functionName: libxl__read_sysfs_file_contents
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 3
    functionsReached:
    - S_ISREG
    - fopen
    - libxl__realloc
    - fileno
    - ferror
    - LOG
    - fread
    - fclose
    - LOGE
    - libxl__malloc
    - fstat
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__read_sysfs_file_contents(libxl__gc *gc, const char *filename,\n
      \                                   void **data_r, int *datalen_r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rw
    - ','
    - zero_is_eof
    - ','
    - constdata
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 506
    functionName: READ_WRITE_EXACTLY
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_WRITE_EXACTLY(rw, zero_is_eof, constdata)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/libs/light/libxl_utils.c:541,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:546,1
    - Dst: readdir
      Src: /src/xen/tools/libs/light/libxl_utils.c:555,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:557,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:564,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:565,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_utils.c:568,1
    - Dst: libxl__remove_file_or_directory
      Src: /src/xen/tools/libs/light/libxl_utils.c:569,1
    - Dst: rmdir
      Src: /src/xen/tools/libs/light/libxl_utils.c:574,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:578,1
    - Dst: closedir
      Src: /src/xen/tools/libs/light/libxl_utils.c:584,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 2
    argNames:
    - gc
    - dirpath
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 587
    functionName: libxl__remove_directory
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - closedir
    - libxl__remove_file_or_directory
    - opendir
    - LOGE
    - readdir
    - strcmp
    - rmdir
    linkageType: ''
    returnType: int
    signature: int libxl__remove_directory(libxl__gc *gc, const char *dirpath)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:591,1
    - Dst: pipe
      Src: /src/xen/tools/libs/light/libxl_utils.c:593,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - pipes
    argTypes:
    - libxl_ctx*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 599
    functionName: libxl_pipe
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - LOG
    - pipe
    linkageType: ''
    returnType: int
    signature: int libxl_pipe(libxl_ctx *ctx, int pipes[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:603,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - bitmap
    - n_bits
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 612
    functionName: libxl_bitmap_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__calloc
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *bitmap, int n_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_utils.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: libxl_bitmap_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_init(libxl_bitmap *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 627
    functionName: libxl_bitmap_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_dispose(libxl_bitmap *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_utils.c:634,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - dptr
    - sptr
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts:
    - condition: (dptr->size == sptr->size)
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/xen/tools/libs/light/libxl_utils.c
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 637
    functionName: libxl_bitmap_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libxl_bitmap_copy(libxl_ctx *ctx, libxl_bitmap *dptr,\n                       const
      libxl_bitmap *sptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - dptr
    - sptr
    argTypes:
    - libxl__gc*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 652
    functionName: libxl__bitmap_copy_best_effort
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libxl__bitmap_copy_best_effort(libxl__gc *gc, libxl_bitmap *dptr,\n
      \                                   const libxl_bitmap *sptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:658,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:660,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - dptr
    - sptr
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 665
    functionName: libxl_bitmap_copy_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - memcpy
    - libxl__calloc
    linkageType: ''
    returnType: void
    signature: "void libxl_bitmap_copy_alloc(libxl_ctx *ctx,\n                             libxl_bitmap
      *dptr,\n                             const libxl_bitmap *sptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 675
    functionName: libxl_bitmap_is_full
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_is_full(const libxl_bitmap *bitmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: libxl_bitmap_is_empty
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_is_empty(const libxl_bitmap *bitmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: libxl_bitmap_test
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_test(const libxl_bitmap *bitmap, int bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: libxl_bitmap_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_set(libxl_bitmap *bitmap, int bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 706
    functionName: libxl_bitmap_reset
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_reset(libxl_bitmap *bitmap, int bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:711,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:725,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - or_map
    - map1
    - map2
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 743
    functionName: libxl_bitmap_or
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl_bitmap_or(libxl_ctx *ctx, libxl_bitmap *or_map,\n                    const
      libxl_bitmap *map1, const libxl_bitmap *map2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:748,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - and_map
    - map1
    - map2
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 776
    functionName: libxl_bitmap_and
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl_bitmap_and(libxl_ctx *ctx, libxl_bitmap *and_map,\n                     const
      libxl_bitmap *map1, const libxl_bitmap *map2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_utils.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: libxl_bitmap_count_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 3
    functionsReached:
    - libxl_for_each_set_bit
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_count_set(const libxl_bitmap *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:790,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:792,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:794,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_utils.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - bitmap
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 803
    functionName: libxl_bitmap_to_hex_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - strncpy
    - GC_INIT
    - libxl__zalloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *libxl_bitmap_to_hex_string(libxl_ctx *ctx, const libxl_bitmap
      *bitmap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:807,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:812,1
    - Dst: libxl_get_max_cpus
      Src: /src/xen/tools/libs/light/libxl_utils.c:816,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:818,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - cpumap
    - max_cpus
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 828
    functionName: libxl_cpu_bitmap_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 3
    functionsReached:
    - GC_INIT
    - libxl_bitmap_alloc
    - LOG
    - libxl_get_max_cpus
    linkageType: ''
    returnType: int
    signature: int libxl_cpu_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *cpumap, int
      max_cpus)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:833,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:838,1
    - Dst: libxl_get_max_nodes
      Src: /src/xen/tools/libs/light/libxl_utils.c:843,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:845,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:850,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - nodemap
    - max_nodes
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 855
    functionName: libxl_node_bitmap_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - libxl_get_max_nodes
    - LOG
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl_node_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *nodemap,\n
      \                           int max_nodes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_physinfo_init
      Src: /src/xen/tools/libs/light/libxl_utils.c:862,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_utils.c:864,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - sockets
    argTypes:
    - libxl__gc*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 873
    functionName: libxl__count_physical_sockets
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 2
    functionsReached:
    - libxl_physinfo_dispose
    - libxl_get_physinfo
    - libxl_physinfo_init
    linkageType: ''
    returnType: int
    signature: int libxl__count_physical_sockets(libxl__gc *gc, int *sockets)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:878,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:883,1
    - Dst: libxl__count_physical_sockets
      Src: /src/xen/tools/libs/light/libxl_utils.c:888,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:890,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - socketmap
    - max_sockets
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 901
    functionName: libxl_socket_bitmap_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - libxl__count_physical_sockets
    - LOGE
    - LOG
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl_socket_bitmap_alloc(libxl_ctx *ctx, libxl_bitmap *socketmap,\n
      \                             int max_sockets)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_utils.c:908,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_utils.c:914,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_utils.c:917,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_utils.c:918,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_utils.c:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - socketmap
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 923
    functionName: libxl_get_online_socketmap
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_test
    - libxl_bitmap_set
    - libxl_get_cpu_topology
    - libxl_cputopology_list_free
    - libxl_bitmap_set_none
    linkageType: ''
    returnType: int
    signature: int libxl_get_online_socketmap(libxl_ctx *ctx, libxl_bitmap *socketmap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_utils.c:932,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_utils.c:938,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_utils.c:940,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_utils.c:941,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_utils.c:944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - nodemap
    - cpumap
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 946
    functionName: libxl_nodemap_to_cpumap
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl_bitmap_set
    - libxl_get_cpu_topology
    - libxl_cputopology_list_free
    - libxl_bitmap_set_none
    linkageType: ''
    returnType: int
    signature: "int libxl_nodemap_to_cpumap(libxl_ctx *ctx,\n                            const
      libxl_bitmap *nodemap,\n                            libxl_bitmap *cpumap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_utils.c:954,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_utils.c:956,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_utils.c:960,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_utils.c:961,1
    - Dst: libxl_nodemap_to_cpumap
      Src: /src/xen/tools/libs/light/libxl_utils.c:963,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - node
    - cpumap
    argTypes:
    - libxl_ctx*
    - int
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 948
    functionDepth: 3
    functionLinenumber: 948
    functionLinenumberEnd: 968
    functionName: libxl_node_to_cpumap
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_bitmap_dispose
    - libxl_bitmap_init
    - libxl_nodemap_to_cpumap
    - libxl_bitmap_set_none
    - libxl_node_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl_node_to_cpumap(libxl_ctx *ctx, int node,\n                         libxl_bitmap
      *cpumap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_utils.c:977,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_utils.c:983,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_utils.c:984,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_utils.c:987,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_utils.c:990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - cpumap
    - nodemap
    argTypes:
    - libxl_ctx*
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 992
    functionName: libxl_cpumap_to_nodemap
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_set
    - libxl_for_each_set_bit
    - libxl_get_cpu_topology
    - libxl_cputopology_list_free
    - libxl_bitmap_set_none
    linkageType: ''
    returnType: int
    signature: "int libxl_cpumap_to_nodemap(libxl_ctx *ctx,\n                            const
      libxl_bitmap *cpumap,\n                            libxl_bitmap *nodemap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/libs/light/libxl_utils.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 999
    functionName: libxl_get_max_cpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 2
    functionsReached:
    - xc_get_max_cpus
    linkageType: ''
    returnType: int
    signature: int libxl_get_max_cpus(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_online_cpus
      Src: /src/xen/tools/libs/light/libxl_utils.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: libxl_get_online_cpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - xc_get_online_cpus
    linkageType: ''
    returnType: int
    signature: int libxl_get_online_cpus(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_nodes
      Src: /src/xen/tools/libs/light/libxl_utils.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    functionName: libxl_get_max_nodes
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - xc_get_max_nodes
    linkageType: ''
    returnType: int
    signature: int libxl_get_max_nodes(libxl_ctx *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/xen/tools/libs/light/libxl_utils.c:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - t
    - s
    - e
    argTypes:
    - libxl_enum_string_table*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1027
    functionName: libxl__enum_from_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int libxl__enum_from_string(const libxl_enum_string_table *t,\n                            const
      char *s, int *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cputopology_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1033,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_cputopology*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1035
    functionName: libxl_cputopology_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 5
    functionsReached:
    - free
    - libxl_cputopology_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_cputopology_list_free(libxl_cputopology *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_pcitopology_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1041,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_pcitopology*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1043
    functionName: libxl_pcitopology_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_pcitopology_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_pcitopology_list_free(libxl_pcitopology *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_numainfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1049,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_numainfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1051
    functionName: libxl_numainfo_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - free
    - libxl_numainfo_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_numainfo_list_free(libxl_numainfo *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vcpuinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1057,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_vcpuinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1059
    functionName: libxl_vcpuinfo_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_vcpuinfo_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_vcpuinfo_list_free(libxl_vcpuinfo *list, int nr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1067,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/xen/tools/libs/light/libxl_utils.c:1082,1
    - Dst: CMSG_LEN
      Src: /src/xen/tools/libs/light/libxl_utils.c:1085,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:1086,1
    - Dst: CMSG_DATA
      Src: /src/xen/tools/libs/light/libxl_utils.c:1086,1
    - Dst: sendmsg
      Src: /src/xen/tools/libs/light/libxl_utils.c:1091,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1098,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 6
    argNames:
    - gc
    - carrier
    - data
    - nfds
    - fds
    - what
    argTypes:
    - libxl__gc*
    - int
    - char
    - int
    - int[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1110
    functionName: libxl__sendmsg_fds
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - CMSG_SPACE
    - CMSG_DATA
    - CMSG_FIRSTHDR
    - LOGE
    - CMSG_LEN
    - LOG
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int libxl__sendmsg_fds(libxl__gc *gc, int carrier,\n                       const
      char data,\n                       int nfds, const int fds[], const char *what)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1119,1
    - Dst: recvmsg
      Src: /src/xen/tools/libs/light/libxl_utils.c:1132,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1136,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1140,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/xen/tools/libs/light/libxl_utils.c:1143,1
    - Dst: CMSG_LEN
      Src: /src/xen/tools/libs/light/libxl_utils.c:1144,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1145,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1150,1
    - Dst: CMSG_LEN
      Src: /src/xen/tools/libs/light/libxl_utils.c:1157,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1159,1
    - Dst: CMSG_LEN
      Src: /src/xen/tools/libs/light/libxl_utils.c:1162,1
    - Dst: CMSG_DATA
      Src: /src/xen/tools/libs/light/libxl_utils.c:1166,1
    - Dst: CMSG_SPACE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1167,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:1169,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_utils.c:1170,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:1174,1
    - Dst: CMSG_DATA
      Src: /src/xen/tools/libs/light/libxl_utils.c:1174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 7
    argNames:
    - gc
    - carrier
    - databuf
    - datalen
    - nfds
    - fds
    - what
    argTypes:
    - libxl__gc*
    - int
    - void*
    - size_t
    - int
    - int[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1177
    functionName: libxl__recvmsg_fds
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    - CMSG_SPACE
    - CMSG_DATA
    - close
    - CMSG_FIRSTHDR
    - LOGE
    - recvmsg
    - LOG
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int libxl__recvmsg_fds(libxl__gc *gc, int carrier,\n                       void
      *databuf, size_t datalen,\n                       int nfds, int fds[], const
      char *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1183,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_dominfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1185
    functionName: libxl_dominfo_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 1
    functionsReached:
    - free
    - libxl_dominfo_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_dominfo_list_free(libxl_dominfo *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vminfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1191,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_vminfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1193
    functionName: libxl_vminfo_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_vminfo_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_vminfo_list_free(libxl_vminfo *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_utils.c:1199,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_utils.c:1200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - list
    - nr
    argTypes:
    - libxl_cpupoolinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1201
    functionName: libxl_cpupoolinfo_list_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 3
    functionsReached:
    - free
    - libxl_cpupoolinfo_dispose
    linkageType: ''
    returnType: void
    signature: void libxl_cpupoolinfo_list_free(libxl_cpupoolinfo *list, int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    functionName: libxl_domid_valid_guest
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_domid_valid_guest(uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_utils.c:1212,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_utils.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1220
    functionName: libxl_string_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__strdup
    linkageType: ''
    returnType: void
    signature: void libxl_string_copy(libxl_ctx *ctx, char **dst, char * const*src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_utils.c:1231,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_utils.c:1233,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_utils.c:1236,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_utils.c:1238,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/libs/light/libxl_utils.c:1242,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_utils.c:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - buf
    - len
    argTypes:
    - libxl__gc*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1247
    functionName: libxl__random_bytes
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - libxl_read_exactly
    - open
    - close
    - LOGE
    - libxl_fd_set_cloexec
    linkageType: ''
    returnType: int
    signature: int libxl__random_bytes(libxl__gc *gc, uint8_t *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_utils.c:1253,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1254,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_utils.c:1255,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_utils.c:1258,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/light/libxl_utils.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - gc
    - un
    - path
    - what
    argTypes:
    - libxl__gc*
    - struct sockaddr_un*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1262
    functionName: libxl__prepare_sockaddr_un
    functionSourceFile: /src/xen/tools/libs/light/libxl_utils.c
    functionUses: 0
    functionsReached:
    - memset
    - LOG
    - strlen
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int libxl__prepare_sockaddr_un(libxl__gc *gc,\n                               struct
      sockaddr_un *un, const char *path,\n                               const char
      *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: DEBUG_GEN_ALLOC
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_ALLOC(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: DEBUG_GEN_ALLOC
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_ALLOC(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: DEBUG_GEN_FREE
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_FREE(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: DEBUG_GEN
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - type
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: DEBUG_GEN_VALUE
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_VALUE(ctx, type, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - str
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: DEBUG_GEN_STRING
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_STRING(ctx, str, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - str
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: DEBUG_GEN_NUMBER
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_NUMBER(ctx, str, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - yajl_ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: DEBUG_GEN_REPORT
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_REPORT(yajl_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: DEBUG_GEN_ALLOC
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_ALLOC(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: DEBUG_GEN_FREE
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_FREE(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: DEBUG_GEN
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - type
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: DEBUG_GEN_VALUE
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_VALUE(ctx, type, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - value
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: DEBUG_GEN_STRING
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_STRING(ctx, value, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - value
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: DEBUG_GEN_NUMBER
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_NUMBER(ctx, value, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: DEBUG_GEN_REPORT
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_GEN_REPORT(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_string
      Src: /src/xen/tools/libs/light/libxl_json.c:110,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hand
    - str
    argTypes:
    - yajl_gen
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: libxl__yajl_gen_asciiz
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 1
    functionsReached:
    - yajl_gen_string
    - strlen
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl__yajl_gen_asciiz(yajl_gen hand, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:118,1
    - Dst: json_object_new_null
      Src: /src/xen/tools/libs/light/libxl_json.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - jso_r
    - str
    argTypes:
    - json_object**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: libxl__enum_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_null
    - json_object_new_string
    linkageType: ''
    returnType: int
    signature: int libxl__enum_gen_jso(json_object **jso_r, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:132,1
    - Dst: yajl_gen_null
      Src: /src/xen/tools/libs/light/libxl_json.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hand
    - str
    argTypes:
    - yajl_gen
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: libxl__yajl_gen_enum
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_null
    - libxl__yajl_gen_asciiz
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl__yajl_gen_enum(yajl_gen hand, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:144,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/libs/light/libxl_json.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - jso_r
    - db
    argTypes:
    - json_object**
    - libxl_defbool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: libxl_defbool_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_to_string
    - json_object_new_string
    linkageType: ''
    returnType: int
    signature: int libxl_defbool_gen_jso(json_object **jso_r, libxl_defbool *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:155,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/libs/light/libxl_json.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hand
    - db
    argTypes:
    - yajl_gen
    - libxl_defbool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: libxl_defbool_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_to_string
    - libxl__yajl_gen_asciiz
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_defbool_gen_json(yajl_gen hand,\n                                       libxl_defbool
      *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:164,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:167,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_json.c:169,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:170,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_json.c:172,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:173,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_json.c:175,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_defbool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: libxl__defbool_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - strncmp
    - libxl__json_object_get_string
    - libxl__json_object_is_string
    - strlen
    linkageType: ''
    returnType: int
    signature: "int libxl__defbool_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                              libxl_defbool *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_boolean
      Src: /src/xen/tools/libs/light/libxl_json.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - jso_r
    - b
    argTypes:
    - json_object**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: libxl__boolean_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_boolean
    linkageType: ''
    returnType: int
    signature: int libxl__boolean_gen_jso(json_object **jso_r, bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_bool
      Src: /src/xen/tools/libs/light/libxl_json.c:197,1
    - Dst: libxl__json_object_get_bool
      Src: /src/xen/tools/libs/light/libxl_json.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: libxl__bool_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_bool
    - libxl__json_object_is_bool
    linkageType: ''
    returnType: int
    signature: "int libxl__bool_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                           bool *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_json.c:209,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_json.c:209,1
    - Dst: json_object_new_string_len
      Src: /src/xen/tools/libs/light/libxl_json.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jso_r
    - uuid
    argTypes:
    - json_object**
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: libxl_uuid_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - snprintf
    - LIBXL_UUID_BYTES
    - json_object_new_string_len
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_gen_jso(json_object **jso_r, libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_json.c:222,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_json.c:222,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/libs/light/libxl_json.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hand
    - uuid
    argTypes:
    - yajl_gen
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: libxl_uuid_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - snprintf
    - LIBXL_UUID_BYTES
    - yajl_gen_string
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_uuid_gen_json(yajl_gen hand,\n                                    libxl_uuid
      *uuid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:230,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/libs/light/libxl_json.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: libxl__uuid_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_string
    - libxl_uuid_from_string
    linkageType: ''
    returnType: int
    signature: "int libxl__uuid_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                           libxl_uuid *p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/xen/tools/libs/light/libxl_json.c:244,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/libs/light/libxl_json.c:247,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_json.c:248,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_json.c:249,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_json.c:251,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:253,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - jso_r
    - bitmap
    argTypes:
    - json_object**
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: libxl_bitmap_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - json_object_new_int
    - json_object_put
    - json_object_array_add
    - json_object_new_array
    - libxl_for_each_bit
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_gen_jso(json_object **jso_r, libxl_bitmap *bitmap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_json.c:275,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/libs/light/libxl_json.c:278,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_json.c:279,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:280,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_json.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - hand
    - bitmap
    argTypes:
    - yajl_gen
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 287
    functionName: libxl_bitmap_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl_for_each_bit
    - yajl_gen_integer
    - yajl_gen_array_open
    - yajl_gen_array_close
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_bitmap_gen_json(yajl_gen hand,\n                                      libxl_bitmap
      *bitmap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_json.c:298,1
    - Dst: libxl__json_object_get_array
      Src: /src/xen/tools/libs/light/libxl_json.c:301,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_json.c:303,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_json.c:307,1
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:308,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:310,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:312,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_json.c:314,1
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:315,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_json.c:318,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 322
    functionName: libxl__bitmap_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_bitmap_init
    - libxl__json_object_get_array
    - libxl__json_object_is_array
    - libxl__json_array_get
    - libxl__json_object_is_integer
    - libxl_bitmap_alloc
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__bitmap_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                            libxl_bitmap *p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_json.c:331,1
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:339,1
    - Dst: json_object_new_null
      Src: /src/xen/tools/libs/light/libxl_json.c:342,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_json.c:344,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:346,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:354,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - jso_r
    - pkvl
    argTypes:
    - json_object**
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 356
    functionName: libxl_key_value_list_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_string
    - json_object_new_object
    - json_object_put
    - json_object_new_null
    - json_object_object_add
    linkageType: ''
    returnType: int
    signature: int libxl_key_value_list_gen_jso(json_object **jso_r, libxl_key_value_list
      *pkvl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_json.c:367,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:373,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:376,1
    - Dst: yajl_gen_null
      Src: /src/xen/tools/libs/light/libxl_json.c:378,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_json.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - hand
    - pkvl
    argTypes:
    - yajl_gen
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 385
    functionName: libxl_key_value_list_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_map_close
    - yajl_gen_null
    - yajl_gen_map_open
    - libxl__yajl_gen_asciiz
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_key_value_list_gen_json(yajl_gen hand,\n                                              libxl_key_value_list
      *pkvl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_json.c:396,1
    - Dst: libxl__json_object_get_map
      Src: /src/xen/tools/libs/light/libxl_json.c:399,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_json.c:401,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:405,1
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:408,1
    - Dst: libxl__json_object_is_null
      Src: /src/xen/tools/libs/light/libxl_json.c:409,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:412,1
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:413,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:415,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:415,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 421
    functionName: libxl__key_value_list_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_null
    - libxl__json_object_get_string
    - flexarray_get
    - libxl__calloc
    - libxl__json_object_is_map
    - libxl__json_object_get_map
    - libxl__strdup
    - libxl__json_object_is_string
    linkageType: ''
    returnType: int
    signature: "int libxl__key_value_list_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                                     libxl_key_value_list *p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/xen/tools/libs/light/libxl_json.c:431,1
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:437,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_json.c:439,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:441,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - jso_r
    - pl
    argTypes:
    - json_object**
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 452
    functionName: libxl_string_list_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_put
    - json_object_array_add
    - json_object_new_array
    - json_object_new_string
    linkageType: ''
    returnType: int
    signature: int libxl_string_list_gen_jso(json_object **jso_r, libxl_string_list
      *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_json.c:462,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:468,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_json.c:472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - hand
    - pl
    argTypes:
    - yajl_gen
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 475
    functionName: libxl_string_list_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_array_open
    - yajl_gen_array_close
    - libxl__yajl_gen_asciiz
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl_string_list_gen_json(yajl_gen hand, libxl_string_list
      *pl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_json.c:486,1
    - Dst: libxl__json_object_get_array
      Src: /src/xen/tools/libs/light/libxl_json.c:489,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_json.c:498,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_json.c:500,1
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:501,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:504,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 508
    functionName: libxl__string_list_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_string
    - libxl__calloc
    - libxl__json_object_get_array
    - libxl__json_object_is_array
    - libxl__strdup
    - libxl__json_array_get
    - libxl__json_object_is_string
    linkageType: ''
    returnType: int
    signature: "int libxl__string_list_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                                  libxl_string_list *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_json.c:514,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/libs/light/libxl_json.c:514,1
    - Dst: json_object_new_string_len
      Src: /src/xen/tools/libs/light/libxl_json.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - jso_r
    - mac
    argTypes:
    - json_object**
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: libxl_mac_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - snprintf
    - json_object_new_string_len
    - LIBXL_MAC_BYTES
    linkageType: ''
    returnType: int
    signature: int libxl_mac_gen_jso(json_object **jso_r, libxl_mac *mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_json.c:526,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/libs/light/libxl_json.c:526,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/libs/light/libxl_json.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hand
    - mac
    argTypes:
    - yajl_gen
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: libxl_mac_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - snprintf
    - yajl_gen_string
    - LIBXL_MAC_BYTES
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl_mac_gen_json(yajl_gen hand, libxl_mac *mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:534,1
    - Dst: libxl__parse_mac
      Src: /src/xen/tools/libs/light/libxl_json.c:537,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 538
    functionName: libxl__mac_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_string
    - libxl__json_object_is_string
    - libxl__parse_mac
    linkageType: ''
    returnType: int
    signature: "int libxl__mac_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                          libxl_mac *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/xen/tools/libs/light/libxl_json.c:547,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_json.c:551,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_json.c:554,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:556,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - jso_r
    - p
    argTypes:
    - json_object**
    - libxl_hwcap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 566
    functionName: libxl_hwcap_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_int
    - json_object_put
    - json_object_array_add
    - json_object_new_array
    linkageType: ''
    returnType: int
    signature: int libxl_hwcap_gen_jso(json_object **jso_r, libxl_hwcap *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_json.c:576,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:580,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_json.c:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - hand
    - p
    argTypes:
    - yajl_gen
    - libxl_hwcap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: libxl_hwcap_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_array_open
    - yajl_gen_array_close
    - yajl_gen_integer
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl_hwcap_gen_json(yajl_gen hand,\n                                     libxl_hwcap
      *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_json.c:594,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_json.c:600,1
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:601,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_hwcap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 608
    functionName: libxl__hwcap_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_array
    - libxl__json_array_get
    - libxl__json_object_get_integer
    - libxl__json_object_is_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__hwcap_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                            libxl_hwcap *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array_ext
      Src: /src/xen/tools/libs/light/libxl_json.c:617,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_json.c:621,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_json.c:624,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:626,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - jso_r
    - p
    argTypes:
    - json_object**
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 637
    functionName: libxl_ms_vm_genid_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_int
    - json_object_put
    - json_object_array_add
    - json_object_new_array_ext
    linkageType: ''
    returnType: int
    signature: int libxl_ms_vm_genid_gen_jso(json_object **jso_r, libxl_ms_vm_genid
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_json.c:646,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:651,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_json.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - hand
    - p
    argTypes:
    - yajl_gen
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: libxl_ms_vm_genid_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_array_open
    - yajl_gen_array_close
    - yajl_gen_integer
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl_ms_vm_genid_gen_json(yajl_gen hand, libxl_ms_vm_genid
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_json.c:665,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_json.c:671,1
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:672,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 679
    functionName: libxl__ms_vm_genid_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_array
    - libxl__json_array_get
    - libxl__json_object_get_integer
    - libxl__json_object_is_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__ms_vm_genid_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                                  libxl_ms_vm_genid *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:685,1
    - Dst: json_object_new_null
      Src: /src/xen/tools/libs/light/libxl_json.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - jso_r
    - p
    argTypes:
    - json_object**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 692
    functionName: libxl__string_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_null
    - json_object_new_string
    linkageType: ''
    returnType: int
    signature: int libxl__string_gen_jso(json_object **jso_r, const char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:700,1
    - Dst: yajl_gen_null
      Src: /src/xen/tools/libs/light/libxl_json.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hand
    - p
    argTypes:
    - yajl_gen
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 703
    functionName: libxl__string_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_null
    - libxl__yajl_gen_asciiz
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status libxl__string_gen_json(yajl_gen hand,\n                                       const
      char *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_json.c:709,1
    - Dst: libxl__json_object_is_null
      Src: /src/xen/tools/libs/light/libxl_json.c:709,1
    - Dst: libxl__json_object_is_null
      Src: /src/xen/tools/libs/light/libxl_json.c:712,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:715,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 718
    functionName: libxl__string_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_null
    - libxl__strdup
    - libxl__json_object_get_string
    - libxl__json_object_is_string
    linkageType: ''
    returnType: int
    signature: "int libxl__string_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                             char **p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_json.c:729,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_json.c:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - type
    argTypes:
    - libxl__gc*
    - libxl__json_node_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 742
    functionName: libxl__json_object_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__zalloc
    - flexarray_make
    linkageType: ''
    returnType: libxl__json_object
    signature: "libxl__json_object *libxl__json_object_alloc(libxl__gc *gc,\n                                             libxl__json_node_type
      type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:756,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:756,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:760,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_json.c:765,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:768,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:768,1
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_json.c:777,1
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_json.c:777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - obj
    - ctx
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - libxl__yajl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 783
    functionName: libxl__json_object_append_to
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - flexarray_get
    - LIBXL__LOG
    - libxl__json_object_is_map
    - libxl__json_object_is_array
    - flexarray_append
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int libxl__json_object_append_to(libxl__gc *gc,\n                                        libxl__json_object
      *obj,\n                                        libxl__yajl_ctx *ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_json.c:794,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:800,1
    - Dst: libxl__json_object_free
      Src: /src/xen/tools/libs/light/libxl_json.c:802,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_json.c:803,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_json.c:804,1
    - Dst: flexarray_free
      Src: /src/xen/tools/libs/light/libxl_json.c:807,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:814,1
    - Dst: libxl__json_object_free
      Src: /src/xen/tools/libs/light/libxl_json.c:816,1
    - Dst: flexarray_free
      Src: /src/xen/tools/libs/light/libxl_json.c:819,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_json.c:825,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - gc
    - obj
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 826
    functionName: libxl__json_object_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 1
    functionsReached:
    - free
    - flexarray_free
    - flexarray_get
    - libxl__json_object_free
    linkageType: ''
    returnType: void
    signature: void libxl__json_object_free(libxl__gc *gc, libxl__json_object *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_get_array
      Src: /src/xen/tools/libs/light/libxl_json.c:833,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 844
    functionName: libxl__json_array_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 7
    functionsReached:
    - libxl__json_object_get_array
    - flexarray_get
    linkageType: ''
    returnType: libxl__json_object
    signature: libxl__json_object *libxl__json_array_get(const libxl__json_object
      *o, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_get_map
      Src: /src/xen/tools/libs/light/libxl_json.c:852,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 863
    functionName: libxl__json_map_node_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - flexarray_get
    - libxl__json_object_get_map
    linkageType: ''
    returnType: libxl__json_map_node
    signature: "libxl__json_map_node *libxl__json_map_node_get(const libxl__json_object
      *o,\n                                               int i)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_json.c:872,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:877,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_json.c:879,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - key
    - o
    - expected_type
    argTypes:
    - char*
    - libxl__json_object*
    - libxl__json_node_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 890
    functionName: libxl__json_map_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 5
    functionsReached:
    - flexarray_get
    - strcmp
    - libxl__json_object_is_map
    linkageType: ''
    returnType: libxl__json_object
    signature: "libxl__json_object *libxl__json_map_get(const char *key,\n                                          const
      libxl__json_object *o,\n                                          libxl__json_node_type
      expected_type)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_null
      Src: /src/xen/tools/libs/light/libxl_json.c:902,1
    - Dst: json_object_new_boolean
      Src: /src/xen/tools/libs/light/libxl_json.c:905,1
    - Dst: json_object_new_int64
      Src: /src/xen/tools/libs/light/libxl_json.c:910,1
    - Dst: json_object_new_double
      Src: /src/xen/tools/libs/light/libxl_json.c:915,1
    - Dst: json_object_new_double_s
      Src: /src/xen/tools/libs/light/libxl_json.c:925,1
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_json.c:930,1
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_json.c:936,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:940,1
    - Dst: libxl__json_object_to_json_object
      Src: /src/xen/tools/libs/light/libxl_json.c:943,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:945,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_json.c:949,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:951,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:952,1
    - Dst: json_object_new_array_ext
      Src: /src/xen/tools/libs/light/libxl_json.c:961,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:965,1
    - Dst: libxl__json_object_to_json_object
      Src: /src/xen/tools/libs/light/libxl_json.c:968,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:970,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/libs/light/libxl_json.c:973,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:975,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:976,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 3
    argNames:
    - gc
    - jso_out
    - obj
    argTypes:
    - libxl__gc*
    - json_object**
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 988
    functionName: libxl__json_object_to_json_object
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 1
    functionsReached:
    - json_object_new_string
    - flexarray_get
    - json_object_new_object
    - json_object_new_boolean
    - libxl__json_object_to_json_object
    - json_object_put
    - json_object_array_add
    - json_object_new_null
    - json_object_new_int64
    - json_object_new_double
    - json_object_new_double_s
    - json_object_new_array_ext
    - json_object_object_add
    linkageType: ''
    returnType: int
    signature: "int libxl__json_object_to_json_object(libxl__gc *gc,\n                                      json_object
      **jso_out,\n                                      const libxl__json_object *obj)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1003,1
    - Dst: yajl_gen_null
      Src: /src/xen/tools/libs/light/libxl_json.c:1003,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1005,1
    - Dst: yajl_gen_bool
      Src: /src/xen/tools/libs/light/libxl_json.c:1005,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1007,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1007,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1009,1
    - Dst: yajl_gen_double
      Src: /src/xen/tools/libs/light/libxl_json.c:1009,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1011,1
    - Dst: yajl_gen_number
      Src: /src/xen/tools/libs/light/libxl_json.c:1012,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:1012,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1014,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:1015,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1019,1
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_json.c:1019,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:1023,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1026,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_json.c:1027,1
    - Dst: libxl__json_object_to_yajl_gen
      Src: /src/xen/tools/libs/light/libxl_json.c:1030,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1034,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_json.c:1034,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1039,1
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/libs/light/libxl_json.c:1039,1
    - Dst: flexarray_get
      Src: /src/xen/tools/libs/light/libxl_json.c:1043,1
    - Dst: libxl__json_object_to_yajl_gen
      Src: /src/xen/tools/libs/light/libxl_json.c:1045,1
    - Dst: CONVERT_YAJL_GEN_TO_STATUS
      Src: /src/xen/tools/libs/light/libxl_json.c:1049,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/libs/light/libxl_json.c:1049,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_json.c:1055,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 3
    argNames:
    - gc
    - hand
    - obj
    argTypes:
    - libxl__gc*
    - yajl_gen
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1057
    functionName: libxl__json_object_to_yajl_gen
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 1
    functionsReached:
    - libxl__json_object_to_yajl_gen
    - yajl_gen_null
    - libxl__yajl_gen_asciiz
    - abort
    - CONVERT_YAJL_GEN_TO_STATUS
    - flexarray_get
    - yajl_gen_map_close
    - yajl_gen_double
    - yajl_gen_bool
    - yajl_gen_map_open
    - strlen
    - yajl_gen_integer
    - yajl_gen_number
    - yajl_gen_array_open
    - yajl_gen_array_close
    linkageType: ''
    returnType: yajl_status
    signature: "yajl_status libxl__json_object_to_yajl_gen(libxl__gc *gc,\n                                           yajl_gen
      hand,\n                                           const libxl__json_object *obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gen
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: CONVERT_YAJL_GEN_TO_STATUS
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_YAJL_GEN_TO_STATUS(gen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN
      Src: /src/xen/tools/libs/light/libxl_json.c:1070,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1072,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1065
    functionDepth: 5
    functionLinenumber: 1065
    functionLinenumberEnd: 1078
    functionName: json_callback_null
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_alloc
    - DEBUG_GEN
    - libxl__json_object_append_to
    linkageType: ''
    returnType: int
    signature: int json_callback_null(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1087,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - opaque
    - boolean
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1080
    functionDepth: 5
    functionLinenumber: 1080
    functionLinenumberEnd: 1094
    functionName: json_callback_boolean
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_alloc
    - libxl__json_object_append_to
    linkageType: ''
    returnType: int
    signature: int json_callback_boolean(void *opaque, int boolean)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1104
    functionName: is_decimal
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_decimal(const char *s, unsigned len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN_NUMBER
      Src: /src/xen/tools/libs/light/libxl_json.c:1112,1
    - Dst: is_decimal
      Src: /src/xen/tools/libs/light/libxl_json.c:1114,1
    - Dst: strtod
      Src: /src/xen/tools/libs/light/libxl_json.c:1115,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1121,1
    - Dst: strtoll
      Src: /src/xen/tools/libs/light/libxl_json.c:1124,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1130,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1137,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1139,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_json.c:1140,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - opaque
    - s
    - len
    argTypes:
    - void*
    - char*
    - libxl_yajl_length
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1106
    functionDepth: 5
    functionLinenumber: 1106
    functionLinenumberEnd: 1150
    functionName: json_callback_number
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - strtod
    - libxl__json_object_alloc
    - libxl__zalloc
    - DEBUG_GEN_NUMBER
    - libxl__json_object_append_to
    - is_decimal
    - memcpy
    - strtoll
    linkageType: ''
    returnType: int
    signature: int json_callback_number(void *opaque, const char *s, libxl_yajl_length
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1159,1
    - Dst: DEBUG_GEN_STRING
      Src: /src/xen/tools/libs/light/libxl_json.c:1161,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/light/libxl_json.c:1163,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1166,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - opaque
    - str
    - len
    argTypes:
    - void*
    - unsigned char*
    - libxl_yajl_length
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1152
    functionDepth: 5
    functionLinenumber: 1152
    functionLinenumberEnd: 1173
    functionName: json_callback_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_alloc
    - libxl__zalloc
    - DEBUG_GEN_STRING
    - strncpy
    - libxl__json_object_append_to
    linkageType: ''
    returnType: int
    signature: "int json_callback_string(void *opaque, const unsigned char *str,\n
      \                               libxl_yajl_length len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1183,1
    - Dst: DEBUG_GEN_STRING
      Src: /src/xen/tools/libs/light/libxl_json.c:1185,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_json.c:1187,1
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_json.c:1190,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_json.c:1193,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_json.c:1197,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1199,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - opaque
    - str
    - len
    argTypes:
    - void*
    - unsigned char*
    - libxl_yajl_length
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1205
    functionName: json_callback_map_key
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - GCNEW
    - libxl__zalloc
    - DEBUG_GEN_STRING
    - LIBXL__LOG
    - libxl__json_object_is_map
    - libxl__gc_owner
    - flexarray_append
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int json_callback_map_key(void *opaque, const unsigned char *str,\n
      \                                libxl_yajl_length len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN
      Src: /src/xen/tools/libs/light/libxl_json.c:1212,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1214,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1207
    functionDepth: 5
    functionLinenumber: 1207
    functionLinenumberEnd: 1220
    functionName: json_callback_start_map
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_alloc
    - DEBUG_GEN
    - libxl__json_object_append_to
    linkageType: ''
    returnType: int
    signature: int json_callback_start_map(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN
      Src: /src/xen/tools/libs/light/libxl_json.c:1226,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1231,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:1231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1237
    functionName: json_callback_end_map
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__gc_owner
    - LIBXL__LOG
    - DEBUG_GEN
    linkageType: ''
    returnType: int
    signature: int json_callback_end_map(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN
      Src: /src/xen/tools/libs/light/libxl_json.c:1244,1
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1246,1
    - Dst: libxl__json_object_append_to
      Src: /src/xen/tools/libs/light/libxl_json.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1239
    functionDepth: 5
    functionLinenumber: 1239
    functionLinenumberEnd: 1252
    functionName: json_callback_start_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_alloc
    - DEBUG_GEN
    - libxl__json_object_append_to
    linkageType: ''
    returnType: int
    signature: int json_callback_start_array(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_GEN
      Src: /src/xen/tools/libs/light/libxl_json.c:1258,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1263,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1269
    functionName: json_callback_end_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__gc_owner
    - LIBXL__LOG
    - DEBUG_GEN
    linkageType: ''
    returnType: int
    signature: int json_callback_end_array(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yajl_free
      Src: /src/xen/tools/libs/light/libxl_json.c:1291,1
    - Dst: DEBUG_GEN_FREE
      Src: /src/xen/tools/libs/light/libxl_json.c:1295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - yajl_ctx
    argTypes:
    - libxl__yajl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1296
    functionName: yajl_ctx_free
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_free
    - DEBUG_GEN_FREE
    linkageType: ''
    returnType: void
    signature: void yajl_ctx_free(libxl__yajl_ctx *yajl_ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: json_callback_map_key
      Src: /src/xen/tools/libs/light/libxl_json.c:1310,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:1310,1
    - Dst: json_object_get_type
      Src: /src/xen/tools/libs/light/libxl_json.c:1312,1
    - Dst: json_callback_null
      Src: /src/xen/tools/libs/light/libxl_json.c:1315,1
    - Dst: json_callback_boolean
      Src: /src/xen/tools/libs/light/libxl_json.c:1318,1
    - Dst: json_object_get_boolean
      Src: /src/xen/tools/libs/light/libxl_json.c:1318,1
    - Dst: json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:1325,1
    - Dst: json_callback_number
      Src: /src/xen/tools/libs/light/libxl_json.c:1326,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:1326,1
    - Dst: json_callback_start_map
      Src: /src/xen/tools/libs/light/libxl_json.c:1331,1
    - Dst: json_callback_end_map
      Src: /src/xen/tools/libs/light/libxl_json.c:1333,1
    - Dst: json_callback_start_array
      Src: /src/xen/tools/libs/light/libxl_json.c:1338,1
    - Dst: json_callback_end_array
      Src: /src/xen/tools/libs/light/libxl_json.c:1340,1
    - Dst: json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_json.c:1344,1
    - Dst: json_object_get_string_len
      Src: /src/xen/tools/libs/light/libxl_json.c:1345,1
    - Dst: json_callback_string
      Src: /src/xen/tools/libs/light/libxl_json.c:1346,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 6
    argNames:
    - jso
    - flags
    - parent_jso
    - jso_key
    - jso_index
    - userarg
    argTypes:
    - json_object*
    - int
    - json_object*
    - char*
    - size_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1299
    functionDepth: 6
    functionLinenumber: 1299
    functionLinenumberEnd: 1356
    functionName: jso_visiter
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_callback_number
    - json_object_get_string
    - json_callback_end_array
    - json_callback_end_map
    - json_object_get_type
    - json_object_get_boolean
    - json_callback_boolean
    - json_callback_null
    - strlen
    - json_callback_map_key
    - json_callback_start_array
    - json_callback_start_map
    - json_object_get_string_len
    - json_callback_string
    linkageType: ''
    returnType: int
    signature: "int jso_visiter(json_object *jso,\n                       int flags,\n
      \                      json_object *parent_jso,\n                       const
      char *jso_key,\n                       size_t *jso_index,\n                       void
      *userarg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: json_tokener_parse_verbose
      Src: /src/xen/tools/libs/light/libxl_json.c:1371,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1373,1
    - Dst: json_tokener_error_desc
      Src: /src/xen/tools/libs/light/libxl_json.c:1373,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_json.c:1378,1
    - Dst: DEBUG_GEN_ALLOC
      Src: /src/xen/tools/libs/light/libxl_json.c:1381,1
    - Dst: json_c_visit
      Src: /src/xen/tools/libs/light/libxl_json.c:1384,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1386,1
    - Dst: libxl__yajl_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1391,1
    - Dst: yajl_parse
      Src: /src/xen/tools/libs/light/libxl_json.c:1393,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:1393,1
    - Dst: yajl_complete_parse
      Src: /src/xen/tools/libs/light/libxl_json.c:1397,1
    - Dst: DEBUG_GEN_REPORT
      Src: /src/xen/tools/libs/light/libxl_json.c:1404,1
    - Dst: yajl_ctx_free
      Src: /src/xen/tools/libs/light/libxl_json.c:1408,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:1410,1
    - Dst: yajl_get_error
      Src: /src/xen/tools/libs/light/libxl_json.c:1418,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_json.c:1418,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1420,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_json.c:1420,1
    - Dst: yajl_free_error
      Src: /src/xen/tools/libs/light/libxl_json.c:1421,1
    - Dst: yajl_ctx_free
      Src: /src/xen/tools/libs/light/libxl_json.c:1423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - gc
    - s
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1425
    functionName: libxl__json_parse
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_complete_parse
    - DEBUG_GEN_REPORT
    - libxl__yajl_alloc
    - LIBXL__LOG
    - yajl_get_error
    - libxl__gc_owner
    - memset
    - yajl_ctx_free
    - json_tokener_error_desc
    - yajl_parse
    - strlen
    - json_tokener_parse_verbose
    - json_object_put
    - json_c_visit
    - LOG
    - yajl_free_error
    - DEBUG_GEN_ALLOC
    linkageType: ''
    returnType: libxl__json_object
    signature: libxl__json_object *libxl__json_parse(libxl__gc *gc, const char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_json.c:1431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - yajl_gen_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1451
    functionName: yajl_gen_status_to_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: char
    signature: char *yajl_gen_status_to_string(yajl_gen_status s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gen
      Src: /src/xen/tools/libs/light/libxl_json.c:1463,1
    - Dst: json_object_to_json_string_ext
      Src: /src/xen/tools/libs/light/libxl_json.c:1467,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:1470,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:1473,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1476,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - type
    - gen
    - p
    argTypes:
    - libxl_ctx*
    - char*
    - libxl__gen_json_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1486
    functionName: libxl__object_to_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - gen
    - LIBXL__LOG
    - json_object_put
    - strdup
    - json_object_to_json_string_ext
    linkageType: ''
    returnType: char
    signature: "char *libxl__object_to_json(libxl_ctx *ctx, const char *type,\n                            libxl__gen_json_callback
      gen, void *p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_yajl_gen_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1498,1
    - Dst: gen
      Src: /src/xen/tools/libs/light/libxl_json.c:1502,1
    - Dst: yajl_gen_get_buf
      Src: /src/xen/tools/libs/light/libxl_json.c:1506,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:1509,1
    - Dst: yajl_gen_free
      Src: /src/xen/tools/libs/light/libxl_json.c:1512,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1515,1
    - Dst: yajl_gen_status_to_string
      Src: /src/xen/tools/libs/light/libxl_json.c:1518,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ctx
    - type
    - gen
    - p
    argTypes:
    - libxl_ctx*
    - char*
    - libxl__gen_json_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1489
    functionDepth: 1
    functionLinenumber: 1489
    functionLinenumberEnd: 1526
    functionName: libxl__object_to_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_status_to_string
    - gen
    - LIBXL__LOG
    - libxl_yajl_gen_alloc
    - yajl_gen_free
    - strdup
    - yajl_gen_get_buf
    linkageType: ''
    returnType: char
    signature: "char *libxl__object_to_json(libxl_ctx *ctx, const char *type,\n                            libxl__gen_json_callback
      gen, void *p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_to_json_object
      Src: /src/xen/tools/libs/light/libxl_json.c:1541,1
    - Dst: json_object_to_json_string_ext
      Src: /src/xen/tools/libs/light/libxl_json.c:1545,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_json.c:1549,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_json.c:1552,1
    - Dst: libxl_yajl_gen_alloc
      Src: /src/xen/tools/libs/light/libxl_json.c:1565,1
    - Dst: libxl__json_object_to_yajl_gen
      Src: /src/xen/tools/libs/light/libxl_json.c:1569,1
    - Dst: yajl_gen_get_buf
      Src: /src/xen/tools/libs/light/libxl_json.c:1573,1
    - Dst: libxl__strndup
      Src: /src/xen/tools/libs/light/libxl_json.c:1577,1
    - Dst: yajl_gen_free
      Src: /src/xen/tools/libs/light/libxl_json.c:1580,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - gc
    - args
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1583
    functionName: libxl__json_object_to_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_to_yajl_gen
    - libxl__json_object_to_json_object
    - libxl_yajl_gen_alloc
    - libxl__strdup
    - json_object_put
    - yajl_gen_free
    - yajl_gen_get_buf
    - json_object_to_json_string_ext
    - libxl__strndup
    linkageType: ''
    returnType: char
    signature: "char *libxl__json_object_to_json(libxl__gc *gc,\n                                 const
      libxl__json_object *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_uint64
      Src: /src/xen/tools/libs/light/libxl_json.c:1588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - jso_r
    - val
    argTypes:
    - json_object**
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1592
    functionName: libxl__uint64_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_uint64
    linkageType: ''
    returnType: int
    signature: int libxl__uint64_gen_jso(json_object **jso_r, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/xen/tools/libs/light/libxl_json.c:1603,1
    - Dst: yajl_gen_number
      Src: /src/xen/tools/libs/light/libxl_json.c:1609,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_json.c:1611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - hand
    - val
    argTypes:
    - yajl_gen
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1596
    functionDepth: 3
    functionLinenumber: 1596
    functionLinenumberEnd: 1615
    functionName: libxl__uint64_gen_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - yajl_gen_number
    - free
    - asprintf
    linkageType: ''
    returnType: yajl_gen_status
    signature: yajl_gen_status libxl__uint64_gen_json(yajl_gen hand, uint64_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_json.c:1622,1
    - Dst: libxl__json_parse
      Src: /src/xen/tools/libs/light/libxl_json.c:1626,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1628,1
    - Dst: parse
      Src: /src/xen/tools/libs/light/libxl_json.c:1635,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_json.c:1637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - type
    - parse
    - p
    - s
    argTypes:
    - libxl_ctx*
    - char*
    - libxl__json_parse_callback
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1618
    functionDepth: 3
    functionLinenumber: 1618
    functionLinenumberEnd: 1646
    functionName: libxl__object_from_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOG
    - libxl__json_parse
    - parse
    linkageType: ''
    returnType: int
    signature: "int libxl__object_from_json(libxl_ctx *ctx, const char *type,\n                            libxl__json_parse_callback
      parse,\n                            void *p, const char *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_json.c:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - jso_r
    - i
    argTypes:
    - json_object**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1655
    functionName: libxl__int_gen_jso
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - json_object_new_int
    linkageType: ''
    returnType: int
    signature: int libxl__int_gen_jso(json_object **jso_r, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1663,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1674
    functionName: libxl__int_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_integer
    - libxl__json_object_is_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__int_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                          void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - width
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1681
    functionDepth: 0
    functionLinenumber: 1681
    functionLinenumberEnd: 1700
    functionName: PARSE_UINT
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_UINT(width)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1708,1
    - Dst: libxl__json_object_is_number
      Src: /src/xen/tools/libs/light/libxl_json.c:1709,1
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1712,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_json.c:1713,1
    - Dst: libxl__json_object_get_number
      Src: /src/xen/tools/libs/light/libxl_json.c:1724,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/light/libxl_json.c:1727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - gc
    - o
    - p
    argTypes:
    - libxl__gc*
    - libxl__json_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1705
    functionDepth: 1
    functionLinenumber: 1705
    functionLinenumberEnd: 1737
    functionName: libxl__uint64_parse_json
    functionSourceFile: /src/xen/tools/libs/light/libxl_json.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_is_number
    - libxl__json_object_get_number
    - libxl__json_object_is_integer
    - strtoull
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int libxl__uint64_parse_json(libxl__gc *gc, const libxl__json_object
      *o,\n                             void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: init_subkind_colo_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_subkind_colo_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: cleanup_subkind_colo_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_subkind_colo_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:58,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:63,1
    - Dst: libxl__domain_device_backend_path
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:64,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:66,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dev
    - nic
    argTypes:
    - libxl__checkpoint_device*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: get_vifname
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__domain_device_backend_path
    - libxl__device_nic_devname
    - libxl__xs_read_checked
    linkageType: ''
    returnType: char
    signature: "char *get_vifname(libxl__checkpoint_device *dev,\n                               const
      libxl_device_nic *nic)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:96,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:102,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:104,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:106,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:113,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:115,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:117,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:120,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:124,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:127,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 5
    argNames:
    - dev
    - op
    - cps
    - side
    - colo_proxy_script
    argTypes:
    - libxl__checkpoint_device*
    - char*
    - libxl__colo_proxy_state*
    - int
    - char*
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/xen/tools/libs/light/libxl_colo_nic.c
    - condition: (nr == arraysize)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/xen/tools/libs/light/libxl_colo_nic.c
    constantsTouched: []
    func_position:
      end: 139
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 139
    functionName: setup_async_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW_ARRAY
    - strcmp
    - libxl__strdup
    - assert
    linkageType: ''
    returnType: void
    signature: "void setup_async_exec(libxl__checkpoint_device *dev, char *op,\n                             libxl__colo_proxy_state
      *cps, int side,\n                             char *colo_proxy_script)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:151,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:164,1
    - Dst: get_vifname
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:167,1
    - Dst: setup_async_exec
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:173,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:174,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - egc
    - dev
    - cps
    - side
    - colo_proxy_script
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    - libxl__colo_proxy_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: colo_nic_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCNEW
    - libxl__checkpoint_device*::aodev::callback
    - setup_async_exec
    - get_vifname
    - libxl__async_exec_start
    linkageType: ''
    returnType: void
    signature: "void colo_nic_setup(libxl__egc *egc, libxl__checkpoint_device *dev,\n
      \                          libxl__colo_proxy_state *cps, int side,\n                           char
      *colo_proxy_script)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:189,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:190,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:207,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:208,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:210,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:211,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:217,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 228
    functionName: colo_save_setup_script_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - libxl__xs_libxl_path
    - libxl__ao_device*::callback
    - libxl__xs_read_checked
    linkageType: ''
    returnType: void
    signature: "void colo_save_setup_script_cb(libxl__egc *egc,\n                                      libxl__async_exec_state
      *aes,\n                                      int rc, int status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_async_exec
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:243,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:245,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - egc
    - dev
    - cps
    - side
    - colo_proxy_script
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    - libxl__colo_proxy_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 254
    functionName: colo_nic_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_device*::aodev::callback
    - setup_async_exec
    - libxl__async_exec_start
    linkageType: ''
    returnType: void
    signature: "void colo_nic_teardown(libxl__egc *egc, libxl__checkpoint_device *dev,\n
      \                             libxl__colo_proxy_state *cps, int side,\n                              char
      *colo_proxy_script)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:260,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: colo_save_teardown_script_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - libxl__ao_device*::callback
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void colo_save_teardown_script_cb(libxl__egc *egc,\n                                         libxl__async_exec_state
      *aes,\n                                         int rc, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_nic_setup
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: colo_nic_save_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - colo_nic_setup
    linkageType: ''
    returnType: void
    signature: void colo_nic_save_setup(libxl__egc *egc, libxl__checkpoint_device
      *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_nic_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: colo_nic_save_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - colo_nic_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_nic_save_teardown(libxl__egc *egc,\n                                   libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_nic_setup
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: colo_nic_restore_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - colo_nic_setup
    linkageType: ''
    returnType: void
    signature: "void colo_nic_restore_setup(libxl__egc *egc,\n                                   libxl__checkpoint_device
      *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: colo_nic_teardown
      Src: /src/xen/tools/libs/light/libxl_colo_nic.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 310
    functionName: colo_nic_restore_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_nic.c
    functionUses: 0
    functionsReached:
    - colo_nic_teardown
    linkageType: ''
    returnType: void
    signature: "void colo_nic_restore_teardown(libxl__egc *egc,\n                                      libxl__checkpoint_device
      *dev)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:12,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_x86.c:22,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:26,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:29,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:30,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - gc
    - d_config
    - config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 35
    functionName: libxl__arch_domain_prepare_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - LOG
    - abort
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_prepare_config(libxl__gc *gc,\n                                      libxl_domain_config
      *d_config,\n                                      struct xen_domctl_createdomain
      *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: libxl__arch_domain_save_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_save_config(libxl__gc *gc,\n                                   libxl_domain_config
      *d_config,\n                                   libxl__domain_build_state *state,\n
      \                                  const struct xen_domctl_createdomain *config)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: e820_names
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *e820_names(int type)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:119,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:178,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:240,1
    - Dst: e820_names
      Src: /src/xen/tools/libs/light/libxl_x86.c:241,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_x86.c:246,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 100
    argCount: 5
    argNames:
    - gc
    - src
    - nr_entries
    - map_limitkb
    - balloon_kb
    argTypes:
    - libxl__gc*
    - struct e820entry[]
    - uint32_t*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 248
    functionName: e820_sanitize
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - e820_names
    - LOG
    - memcpy
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int e820_sanitize(libxl__gc *gc, struct e820entry src[],\n                         uint32_t
      *nr_entries,\n                         unsigned long map_limitkb,\n                         unsigned
      long balloon_kb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_machine_memory_map
      Src: /src/xen/tools/libs/light/libxl_x86.c:257,1
    - Dst: e820_sanitize
      Src: /src/xen/tools/libs/light/libxl_x86.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - gc
    - b_info
    - map
    - nr
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct e820entry[]
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: e820_host_sanitize
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - e820_sanitize
    - xc_get_machine_memory_map
    linkageType: ''
    returnType: int
    signature: "int e820_host_sanitize(libxl__gc *gc,\n                              libxl_domain_build_info
      *b_info,\n                              struct e820entry map[],\n                              uint32_t
      *nr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_x86.c:272,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:282,1
    - Dst: e820_host_sanitize
      Src: /src/xen/tools/libs/light/libxl_x86.c:286,1
    - Dst: xc_domain_set_memory_map
      Src: /src/xen/tools/libs/light/libxl_x86.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - domid
    - d_config
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 296
    functionName: libxl__e820_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - e820_host_sanitize
    - xc_domain_set_memory_map
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int libxl__e820_alloc(libxl__gc *gc, uint32_t domid,\n        libxl_domain_config
      *d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_x86.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - libxl_domain_build_info*
    assertStmts:
    - condition: "(mode >= LIBXL_TIMER_MODE_DELAY_FOR_MISSED_TICKS &&\n           mode
        <= LIBXL_TIMER_MODE_ONE_MISSED_TICK_PENDING)"
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/tools/libs/light/libxl_x86.c
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: timer_mode
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long timer_mode(const libxl_domain_build_info *info)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_x86.c:313,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_x86.c:314,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:317,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:319,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:320,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:321,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:322,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:323,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:324,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:325,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_x86.c:328,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:329,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:330,1
    - Dst: libxl_viridian_enlightenment_to_string
      Src: /src/xen/tools/libs/light/libxl_x86.c:331,1
    - Dst: libxl_viridian_enlightenment_to_string
      Src: /src/xen/tools/libs/light/libxl_x86.c:334,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:335,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_x86.c:338,1
    - Dst: libxl_viridian_enlightenment_to_string
      Src: /src/xen/tools/libs/light/libxl_x86.c:339,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/libs/light/libxl_x86.c:340,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/libs/light/libxl_x86.c:343,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:344,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:345,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_x86.c:349,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:350,1
    - Dst: libxl_viridian_enlightenment_to_string
      Src: /src/xen/tools/libs/light/libxl_x86.c:350,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:352,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:355,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:359,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:362,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:365,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:368,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:371,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:374,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:377,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:380,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:383,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:386,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_x86.c:389,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:393,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:397,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_x86.c:401,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_x86.c:405,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 3
    argNames:
    - gc
    - domid
    - info
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 407
    functionName: hvm_set_viridian_features
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl_bitmap_set
    - libxl_bitmap_test
    - xc_hvm_param_set
    - libxl_bitmap_dispose
    - libxl_bitmap_reset
    - libxl_bitmap_is_empty
    - libxl_bitmap_init
    - libxl_for_each_set_bit
    - LOGE
    - LOG
    - libxl_viridian_enlightenment_to_string
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int hvm_set_viridian_features(libxl__gc *gc, uint32_t domid,\n                                     const
      libxl_domain_build_info *info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_x86.c:412,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:418,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:419,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:420,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:423,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:424,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:425,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:429,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:431,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_x86.c:437,1
    - Dst: timer_mode
      Src: /src/xen/tools/libs/light/libxl_x86.c:438,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_x86.c:439,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_x86.c:445,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - gc
    - domid
    - info
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 452
    functionName: hvm_set_conf_params
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - libxl_defbool_val
    - timer_mode
    - abort
    - LOG
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int hvm_set_conf_params(libxl__gc *gc, uint32_t domid,\n                               const
      libxl_domain_build_info *info)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_x86.c:463,1
    - Dst: hvm_set_conf_params
      Src: /src/xen/tools/libs/light/libxl_x86.c:466,1
    - Dst: hvm_set_viridian_features
      Src: /src/xen/tools/libs/light/libxl_x86.c:473,1
    - Dst: xc_domain_set_memmap_limit
      Src: /src/xen/tools/libs/light/libxl_x86.c:477,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:492,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_x86.c:496,1
    - Dst: xc_domain_set_tsc_info
      Src: /src/xen/tools/libs/light/libxl_x86.c:499,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:500,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:506,1
    - Dst: time
      Src: /src/xen/tools/libs/light/libxl_x86.c:510,1
    - Dst: localtime_r
      Src: /src/xen/tools/libs/light/libxl_x86.c:511,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:514,1
    - Dst: xc_domain_set_time_offset
      Src: /src/xen/tools/libs/light/libxl_x86.c:523,1
    - Dst: libxl__domain_set_paging_mempool_size
      Src: /src/xen/tools/libs/light/libxl_x86.c:526,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:532,1
    - Dst: libxl__e820_alloc
      Src: /src/xen/tools/libs/light/libxl_x86.c:533,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:535,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 542
    functionName: libxl__arch_domain_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - LOGD
    - abort
    - time
    - LOGED
    - libxl__domain_set_paging_mempool_size
    - hvm_set_viridian_features
    - hvm_set_conf_params
    - xc_domain_set_tsc_info
    - localtime_r
    - libxl__e820_alloc
    - LOGE
    - xc_domain_set_time_offset
    - libxl__gc_owner
    - xc_domain_set_memmap_limit
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_create(libxl__gc *gc,\n                              libxl_domain_config
      *d_config,\n                              libxl__domain_build_state *state,\n
      \                             uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - info
    - out
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 551
    functionName: libxl__arch_extra_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_extra_memory(libxl__gc *gc,\n                             const
      libxl_domain_build_info *info,\n                             uint64_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: libxl__arch_domain_init_hw_description
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_init_hw_description(libxl__gc *gc,\n                                           libxl_domain_config
      *d_config,\n                                           libxl__domain_build_state
      *state,\n                                           struct xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - info
    - dom
    - state
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 567
    functionName: libxl__arch_build_dom_finish
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_build_dom_finish(libxl__gc *gc,\n                                 libxl_domain_build_info
      *info,\n                                 struct xc_dom_image *dom,\n                                 libxl__domain_build_state
      *state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:583,1
    - Dst: libxl__vnuma_build_vmemrange_pv_generic
      Src: /src/xen/tools/libs/light/libxl_x86.c:584,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_x86.c:587,1
    - Dst: e820_host_sanitize
      Src: /src/xen/tools/libs/light/libxl_x86.c:590,1
    - Dst: GCREALLOC_ARRAY
      Src: /src/xen/tools/libs/light/libxl_x86.c:615,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 4
    argNames:
    - gc
    - domid
    - b_info
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts:
    - condition: (state->vmemranges == NULL)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/xen/tools/libs/light/libxl_x86.c
    constantsTouched: []
    func_position:
      end: 645
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 645
    functionName: libxl__arch_vnuma_build_vmemrange
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 1
    functionsReached:
    - libxl_defbool_val
    - e820_host_sanitize
    - libxl__vnuma_build_vmemrange_pv_generic
    - GCREALLOC_ARRAY
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_vnuma_build_vmemrange(libxl__gc *gc,\n                                      uint32_t
      domid,\n                                      libxl_domain_build_info *b_info,\n
      \                                     libxl__domain_build_state *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_physdev_map_pirq
      Src: /src/xen/tools/libs/light/libxl_x86.c:651,1
    - Dst: xc_domain_irq_permission
      Src: /src/xen/tools/libs/light/libxl_x86.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - gc
    - domid
    - irq
    argTypes:
    - libxl__gc*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 658
    functionName: libxl__arch_domain_map_irq
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - xc_physdev_map_pirq
    - xc_domain_irq_permission
    linkageType: ''
    returnType: int
    signature: int libxl__arch_domain_map_irq(libxl__gc *gc, uint32_t domid, int irq)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/light/libxl_x86.c:692,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:712,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_x86.c:717,1
    - Dst: xc_domain_set_memory_map
      Src: /src/xen/tools/libs/light/libxl_x86.c:772,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 4
    argNames:
    - gc
    - d_config
    - domid
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 782
    functionName: domain_construct_memmap
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - LOGD
    - libxl__malloc
    - xc_domain_set_memory_map
    - XC_DOM_PAGE_SIZE
    linkageType: ''
    returnType: int
    signature: "int domain_construct_memmap(libxl__gc *gc,\n                                   libxl_domain_config
      *d_config,\n                                   uint32_t domid,\n                                   struct
      xc_dom_image *dom)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__dom_load_acpi
      Src: /src/xen/tools/libs/light/libxl_x86.c:796,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:798,1
    - Dst: domain_construct_memmap
      Src: /src/xen/tools/libs/light/libxl_x86.c:803,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - dom
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 784
    functionDepth: 3
    functionLinenumber: 784
    functionLinenumberEnd: 808
    functionName: libxl__arch_domain_finalise_hw_description
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl__dom_load_acpi
    - domain_construct_memmap
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_finalise_hw_description(libxl__gc *gc,\n                                               uint32_t
      domid,\n                                               libxl_domain_config *d_config,\n
      \                                              struct xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - gc
    - c_info
    argTypes:
    - libxl__gc*
    - libxl_domain_create_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: libxl__arch_domain_create_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__arch_domain_create_info_setdefault(libxl__gc *gc,\n                                               libxl_domain_create_info
      *c_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:819,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:820,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:821,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:831,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:833,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - b_info
    - physinfo
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 838
    functionName: libxl__arch_domain_build_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl_defbool_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_build_info_setdefault(libxl__gc *gc,\n                                             libxl_domain_build_info
      *b_info,\n                                             const libxl_physinfo
      *physinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:850,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:859,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - physinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 878
    functionName: libxl__arch_passthrough_mode_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_passthrough_mode_setdefault(libxl__gc *gc,\n                                            uint32_t
      domid,\n                                            libxl_domain_config *d_config,\n
      \                                           const libxl_physinfo *physinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:893,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:894,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_x86.c:896,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_x86.c:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 898
    functionName: libxl__arch_update_domain_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - libxl_defbool_setdefault
    linkageType: ''
    returnType: void
    signature: "void libxl__arch_update_domain_config(libxl__gc *gc,\n                                      libxl_domain_config
      *dst,\n                                      const libxl_domain_config *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_x86.c:905,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_x86.c:911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 915
    functionName: libxl__arch_local_domain_has_pirq_notion
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 2
    functionsReached:
    - xc_domain_getinfo_single
    - LOGE
    linkageType: ''
    returnType: bool
    signature: bool libxl__arch_local_domain_has_pirq_notion(libxl__gc *gc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_pcidev_get_gsi
      Src: /src/xen/tools/libs/light/libxl_x86.c:921,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:923,1
    - Dst: xc_physdev_map_pirq_gsi
      Src: /src/xen/tools/libs/light/libxl_x86.c:929,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:931,1
    - Dst: xc_domain_gsi_permission
      Src: /src/xen/tools/libs/light/libxl_x86.c:935,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - gc
    - sbdf
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 942
    functionName: libxl__arch_hvm_map_gsi
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 1
    functionsReached:
    - xc_pcidev_get_gsi
    - xc_physdev_map_pirq_gsi
    - LOGD
    - xc_domain_gsi_permission
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t
      domid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_pcidev_get_gsi
      Src: /src/xen/tools/libs/light/libxl_x86.c:948,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_x86.c:950,1
    - Dst: xc_physdev_map_pirq_gsi
      Src: /src/xen/tools/libs/light/libxl_x86.c:957,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:959,1
    - Dst: xc_physdev_unmap_pirq
      Src: /src/xen/tools/libs/light/libxl_x86.c:963,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:965,1
    - Dst: xc_domain_gsi_permission
      Src: /src/xen/tools/libs/light/libxl_x86.c:969,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_x86.c:971,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - gc
    - sbdf
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 976
    functionName: libxl__arch_hvm_unmap_gsi
    functionSourceFile: /src/xen/tools/libs/light/libxl_x86.c
    functionUses: 1
    functionsReached:
    - xc_pcidev_get_gsi
    - xc_physdev_map_pirq_gsi
    - LOGD
    - xc_domain_gsi_permission
    - LOGED
    - xc_physdev_unmap_pirq
    linkageType: ''
    returnType: int
    signature: int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t
      domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:127,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:132,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:135,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:139,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:143,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:147,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:148,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:154,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 7
    argNames:
    - egc
    - stream
    - what
    - hdr
    - emu_hdr
    - body
    - cb
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - char*
    - libxl__sr_rec_hdr*
    - libxl__sr_emulator_hdr*
    - void*
    - sws_record_done_cb
    assertStmts:
    - condition: (stream->record_done_callback == NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (length >= sizeof(*emu_hdr))
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 161
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 161
    functionName: setup_generic_write
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - libxl__datacopier_start
    - libxl__datacopier_prefixdata
    - stream_complete
    - assert
    linkageType: ''
    returnType: void
    signature: "void setup_generic_write(libxl__egc *egc,\n                                libxl__stream_write_state
      *stream,\n                                const char *what,\n                                libxl__sr_rec_hdr
      *hdr,\n                                libxl__sr_emulator_hdr *emu_hdr,\n                                void
      *body,\n                                sws_record_done_cb cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_generic_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - egc
    - stream
    - what
    - hdr
    - body
    - cb
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - char*
    - libxl__sr_rec_hdr*
    - void*
    - sws_record_done_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: setup_write
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - setup_generic_write
    linkageType: ''
    returnType: void
    signature: "void setup_write(libxl__egc *egc,\n                        libxl__stream_write_state
      *stream,\n                        const char *what,\n                        libxl__sr_rec_hdr
      *hdr,\n                        void *body,\n                        sws_record_done_cb
      cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:183,1
    - Dst: setup_generic_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - egc
    - stream
    - what
    - hdr
    - emu_hdr
    - body
    - cb
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - char*
    - libxl__sr_rec_hdr*
    - libxl__sr_emulator_hdr*
    - void*
    - sws_record_done_cb
    assertStmts:
    - condition: (stream->emu_sub_hdr.id != EMULATOR_UNKNOWN)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 185
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 185
    functionName: setup_emulator_write
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - setup_generic_write
    - assert
    linkageType: ''
    returnType: void
    signature: "void setup_emulator_write(libxl__egc *egc,\n                                 libxl__stream_write_state
      *stream,\n                                 const char *what,\n                                 libxl__sr_rec_hdr
      *hdr,\n                                 libxl__sr_emulator_hdr *emu_hdr,\n                                 void
      *body,\n                                 sws_record_done_cb cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:192,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:193,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:199,1
    - Dst: cb
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: write_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - stream_complete
    - cb
    linkageType: ''
    returnType: void
    signature: "void write_done(libxl__egc *egc,\n                       libxl__datacopier_state
      *dc,\n                       int rc, int onwrite, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:208,1
    - Dst: libxl__save_helper_init
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:211,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:217,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:219,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:221,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - stream
    argTypes:
    - libxl__stream_write_state*
    assertStmts:
    - condition: (stream->ao)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: libxl__stream_write_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - assert
    - libxl__save_helper_init
    - FILLZERO
    linkageType: ''
    returnType: void
    signature: void libxl__stream_write_init(libxl__stream_write_state *stream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:232,1
    - Dst: libxl__stream_write_init
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:236,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:253,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:261,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:267,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:271,1
    - Dst: htobe64
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:272,1
    - Dst: htobe32
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:273,1
    - Dst: htobe32
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:274,1
    - Dst: libxl__datacopier_prefixdata
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:276,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:280,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:281,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 282
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 282
    functionName: libxl__stream_write_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__datacopier_start
    - libxl__device_model_version_running
    - libxl__datacopier_prefixdata
    - FILLZERO
    - stream_complete
    - htobe64
    - assert
    - htobe32
    - libxl__stream_write_init
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_write_start(libxl__egc *egc,\n                               libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:287,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:288,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:289,1
    - Dst: write_emulator_xenstore_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (!stream->back_channel)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (!stream->in_checkpoint)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: libxl__stream_write_start_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - write_emulator_xenstore_record
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_write_start_checkpoint(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:298,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 302
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 302
    functionName: libxl__stream_write_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - stream_complete
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_write_abort(libxl__egc *egc,\n                               libxl__stream_write_state
      *stream, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:310,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:311,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:315,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:319,1
    - Dst: setup_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 324
    functionName: stream_header_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - setup_write
    - FILLZERO
    - stream_complete
    linkageType: ''
    returnType: void
    signature: "void stream_header_done(libxl__egc *egc,\n                               libxl__datacopier_state
      *dc,\n                               int rc, int onwrite, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xc_domain_save
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: libxc_header_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - libxl__xc_domain_save
    linkageType: ''
    returnType: void
    signature: "void libxc_header_done(libxl__egc *egc,\n                              libxl__stream_write_state
      *stream)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:337,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:343,1
    - Dst: check_all_finished
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:357,1
    - Dst: libxl__stream_write_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:365,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:373,1
    - Dst: write_emulator_xenstore_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - egc
    - dss_void
    - rc
    - retval
    - errnoval
    argTypes:
    - libxl__egc*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 377
    functionName: libxl__xc_domain_save_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__stream_write_inuse
    - check_all_finished
    - write_emulator_xenstore_record
    - stream_complete
    - LOGEVD
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_domain_save_done(libxl__egc *egc, void *dss_void,\n
      \                               int rc, int retval, int errnoval)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:383,1
    - Dst: emulator_xenstore_record_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:390,1
    - Dst: libxl__save_emulator_xenstore_data
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:394,1
    - Dst: emulator_xenstore_record_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:400,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:404,1
    - Dst: setup_emulator_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:408,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:414,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 416
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 416
    functionName: write_emulator_xenstore_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - libxl__save_emulator_xenstore_data
    - FILLZERO
    - stream_complete
    - setup_emulator_write
    - assert
    - emulator_xenstore_record_done
    linkageType: ''
    returnType: void
    signature: "void write_emulator_xenstore_record(libxl__egc *egc,\n                                           libxl__stream_write_state
      *stream)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_emulator_context_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:424,1
    - Dst: write_checkpoint_end_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:427,1
    - Dst: write_end_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: emulator_xenstore_record_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - write_end_record
    - write_checkpoint_end_record
    - write_emulator_context_record
    linkageType: ''
    returnType: void
    signature: "void emulator_xenstore_record_done(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:438,1
    - Dst: emulator_context_record_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:444,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:451,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:452,1
    - Dst: libxl__carefd_opened
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:453,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:456,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:460,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:462,1
    - Dst: S_ISREG
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:466,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:468,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:474,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:476,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:487,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:494,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:495,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 493
        line_start: 493
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 496
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 496
    functionName: write_emulator_context_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - S_ISREG
    - emulator_context_record_done
    - STATE_AO_GC
    - open
    - LOGD
    - libxl__datacopier_start
    - LOGED
    - FILLZERO
    - stream_complete
    - libxl__carefd_begin
    - libxl__malloc
    - libxl__carefd_opened
    - fstat
    - assert
    linkageType: ''
    returnType: void
    signature: "void write_emulator_context_record(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:502,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:503,1
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:506,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:510,1
    - Dst: setup_emulator_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 518
    functionName: emulator_context_read_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - setup_emulator_write
    - libxl__carefd_close
    - stream_complete
    linkageType: ''
    returnType: void
    signature: "void emulator_context_read_done(libxl__egc *egc,\n                                       libxl__datacopier_state
      *dc,\n                                       int rc, int onwrite, int errnoval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:523,1
    - Dst: write_checkpoint_end_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:527,1
    - Dst: write_end_record
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: emulator_context_record_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 1
    functionsReached:
    - free
    - write_end_record
    - write_checkpoint_end_record
    linkageType: ''
    returnType: void
    signature: "void emulator_context_record_done(libxl__egc *egc,\n                                         libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:537,1
    - Dst: setup_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 542
    functionName: write_end_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 2
    functionsReached:
    - setup_write
    - FILLZERO
    linkageType: ''
    returnType: void
    signature: "void write_end_record(libxl__egc *egc,\n                             libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:549,1
    - Dst: setup_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 554
    functionName: write_checkpoint_end_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 2
    functionsReached:
    - setup_write
    - FILLZERO
    linkageType: ''
    returnType: void
    signature: "void write_checkpoint_end_record(libxl__egc *egc,\n                                        libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkpoint_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: checkpoint_end_record_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - checkpoint_done
    linkageType: ''
    returnType: void
    signature: "void checkpoint_end_record_done(libxl__egc *egc,\n                                       libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_complete
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: stream_success
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - stream_complete
    linkageType: ''
    returnType: void
    signature: void stream_success(libxl__egc *egc, libxl__stream_write_state *stream)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:572,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:575,1
    - Dst: checkpoint_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:582,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:587,1
    - Dst: checkpoint_state_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:597,1
    - Dst: stream_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (rc)
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (rc)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 602
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 602
    functionName: stream_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 20
    functionsReached:
    - checkpoint_state_done
    - assert
    - checkpoint_done
    - stream_done
    linkageType: ''
    returnType: void
    signature: "void stream_complete(libxl__egc *egc,\n                            libxl__stream_write_state
      *stream, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:607,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:608,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:612,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:613,1
    - Dst: check_all_finished
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (!stream->in_checkpoint_state)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 2
    functionsReached:
    - libxl__carefd_close
    - free
    - assert
    - check_all_finished
    linkageType: ''
    returnType: void
    signature: "void stream_done(libxl__egc *egc,\n                        libxl__stream_write_state
      *stream, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:632,1
    - Dst: libxl__stream_write_state*::checkpoint_callback
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts:
    - condition: (stream->in_checkpoint)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 636
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 636
    functionName: checkpoint_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 4
    functionsReached:
    - assert
    - libxl__stream_write_state*::checkpoint_callback
    linkageType: ''
    returnType: void
    signature: "void checkpoint_done(libxl__egc *egc,\n                            libxl__stream_write_state
      *stream,\n                            int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:642,1
    - Dst: libxl__stream_write_abort
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:666,1
    - Dst: libxl__save_helper_abort
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:667,1
    - Dst: libxl__stream_write_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:673,1
    - Dst: libxl__save_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:674,1
    - Dst: libxl__stream_write_state*::completion_callback
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 680
    functionName: check_all_finished
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 5
    functionsReached:
    - STATE_AO_GC
    - libxl__stream_write_inuse
    - libxl__stream_write_abort
    - libxl__save_helper_abort
    - libxl__save_helper_inuse
    - libxl__stream_write_state*::completion_callback
    linkageType: ''
    returnType: void
    signature: "void check_all_finished(libxl__egc *egc,\n                               libxl__stream_write_state
      *stream,\n                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:690,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:691,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:692,1
    - Dst: FILLZERO
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:695,1
    - Dst: setup_write
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - stream
    - srcs
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - libxl_sr_checkpoint_state*
    assertStmts:
    - condition: (stream->running)
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (!stream->in_checkpoint)
      pos:
        line_end: 690
        line_start: 690
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    - condition: (!stream->in_checkpoint_state)
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 701
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 701
    functionName: libxl__stream_write_checkpoint_state
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 4
    functionsReached:
    - setup_write
    - assert
    - FILLZERO
    linkageType: ''
    returnType: void
    signature: "void libxl__stream_write_checkpoint_state(libxl__egc *egc,\n                                          libxl__stream_write_state
      *stream,\n                                          libxl_sr_checkpoint_state
      *srcs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: checkpoint_state_done
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - stream
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: write_checkpoint_state_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 0
    functionsReached:
    - checkpoint_state_done
    linkageType: ''
    returnType: void
    signature: "void write_checkpoint_state_done(libxl__egc *egc,\n                                        libxl__stream_write_state
      *stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:712,1
    - Dst: libxl__stream_write_state*::checkpoint_callback
      Src: /src/xen/tools/libs/light/libxl_stream_write.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts:
    - condition: (stream->in_checkpoint_state)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/xen/tools/libs/light/libxl_stream_write.c
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: checkpoint_state_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_stream_write.c
    functionUses: 4
    functionsReached:
    - assert
    - libxl__stream_write_state*::checkpoint_callback
    linkageType: ''
    returnType: void
    signature: "void checkpoint_state_done(libxl__egc *egc,\n                                  libxl__stream_write_state
      *stream, int rc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:34,1
    - Dst: libxl__arch_domain_create_info_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:38,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:42,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:44,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:46,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:50,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:53,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:54,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - gc
    - c_info
    - info
    argTypes:
    - libxl__gc*
    - libxl_domain_create_info*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: libxl__domain_create_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__arch_domain_create_info_setdefault
    - LOG
    - libxl_defbool_setdefault
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_create_info_setdefault(libxl__gc *gc,\n                                         libxl_domain_create_info
      *c_info,\n                                         const libxl_physinfo *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - b_info
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: libxl__rdm_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__rdm_setdefault(libxl__gc *gc, libxl_domain_build_info *b_info)
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:83,1
    - Dst: libxl__domain_build_info_copy_deprecated
      Src: /src/xen/tools/libs/light/libxl_create.c:88,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:90,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:94,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:95,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:97,1
    - Dst: libxl__domain_device_model
      Src: /src/xen/tools/libs/light/libxl_create.c:105,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_create.c:106,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_create.c:108,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:114,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:122,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:130,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_create.c:134,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:141,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:147,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_create.c:152,1
    - Dst: libxl__xenfirmwaredir_path
      Src: /src/xen/tools/libs/light/libxl_create.c:154,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_create.c:157,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_create.c:164,1
    - Dst: libxl__xenfirmwaredir_path
      Src: /src/xen/tools/libs/light/libxl_create.c:166,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_create.c:169,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_create.c:177,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:178,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_create.c:181,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:183,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:189,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_create.c:192,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:193,1
    - Dst: libxl_bitmap_copy
      Src: /src/xen/tools/libs/light/libxl_create.c:196,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:202,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:210,1
    - Dst: libxl__stubdomain_is_linux
      Src: /src/xen/tools/libs/light/libxl_create.c:211,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:220,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:222,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:224,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_create.c:233,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:235,1
    - Dst: libxl__arch_domain_build_info_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:239,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:241,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:245,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:278,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:287,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:296,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:304,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:305,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:306,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:307,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:308,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:309,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:310,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:311,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:312,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:313,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:314,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:315,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:316,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:317,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:319,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:320,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:323,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:331,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:334,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:340,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:342,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:343,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:344,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:346,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:349,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:350,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:351,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:354,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:355,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:357,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:358,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:359,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:363,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:365,1
    - Dst: libxl__rdm_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:367,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:370,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:380,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:383,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_create.c:386,1
    - Dst: libxl__xenfirmwaredir_path
      Src: /src/xen/tools/libs/light/libxl_create.c:387,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:391,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:396,1
    - Dst: libxl_domain_type_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:397,1
    - Dst: libxl__timer_mode_is_default
      Src: /src/xen/tools/libs/light/libxl_create.c:403,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:406,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:407,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:419,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:426,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:435,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_create.c:438,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_create.c:439,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_create.c:440,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_create.c:441,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:443,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_create.c:443,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 276
    argCount: 2
    argNames:
    - gc
    - b_info
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 446
    functionName: libxl__domain_build_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_set
    - libxl__domain_device_model
    - getenv
    - libxl_defbool_val
    - abort
    - libxl_bitmap_copy
    - libxl__calloc
    - LOGE
    - libxl__xenfirmwaredir_path
    - libxl_defbool_setdefault
    - libxl__domain_build_info_copy_deprecated
    - libxl__timer_mode_is_default
    - libxl__sprintf
    - libxl__strdup
    - access
    - LOG
    - libxl__arch_domain_build_info_setdefault
    - libxl__rdm_setdefault
    - libxl_cpu_bitmap_alloc
    - libxl_domain_type_to_string
    - libxl__abs_path
    - libxl__stubdomain_is_linux
    - libxl_defbool_set
    - libxl_get_physinfo
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_build_info_setdefault(libxl__gc *gc,\n                                        libxl_domain_build_info
      *b_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_console_init
      Src: /src/xen/tools/libs/light/libxl_create.c:452,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - gc
    - console
    - dev_num
    argTypes:
    - libxl__gc*
    - libxl__device_console*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: init_console_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - libxl__device_console_init
    linkageType: ''
    returnType: void
    signature: "void init_console_info(libxl__gc *gc,\n                             libxl__device_console
      *console,\n                             int dev_num)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl__build_pre
      Src: /src/xen/tools/libs/light/libxl_create.c:470,1
    - Dst: gettimeofday
      Src: /src/xen/tools/libs/light/libxl_create.c:474,1
    - Dst: libxl__build_hvm
      Src: /src/xen/tools/libs/light/libxl_create.c:478,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:482,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:488,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:490,1
    - Dst: libxl__acpi_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:493,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:495,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:497,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:499,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:507,1
    - Dst: libxl_device_model_version_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:512,1
    - Dst: libxl__build_pv
      Src: /src/xen/tools/libs/light/libxl_create.c:516,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:520,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:527,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:540,1
    - Dst: libxl__build_hvm
      Src: /src/xen/tools/libs/light/libxl_create.c:545,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:549,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:551,1
    - Dst: libxl__build_post
      Src: /src/xen/tools/libs/light/libxl_create.c:560,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 80
    argCount: 4
    argNames:
    - gc
    - d_config
    - domid
    - state
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 563
    functionName: libxl__domain_build
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - libxl__acpi_defbool_val
    - libxl__calloc
    - libxl__build_hvm
    - libxl__build_post
    - libxl__build_pre
    - libxl__build_pv
    - gettimeofday
    - libxl_device_model_version_to_string
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_build(libxl__gc *gc,\n                        libxl_domain_config
      *d_config,\n                        uint32_t domid,\n                        libxl__domain_build_state
      *state)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_create.c:569,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:583,1
    - Dst: libxl__uuid2string
      Src: /src/xen/tools/libs/light/libxl_create.c:585,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/libs/light/libxl_create.c:598,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_create.c:603,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:610,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:613,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:616,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:620,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:623,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:626,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:627,1
    - Dst: libxl_passthrough_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:628,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:636,1
    - Dst: libxl_altp2m_mode_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:636,1
    - Dst: XEN_DOMCTL_ALTP2M_mode
      Src: /src/xen/tools/libs/light/libxl_create.c:640,1
    - Dst: XEN_DOMCTL_ALTP2M_mode
      Src: /src/xen/tools/libs/light/libxl_create.c:645,1
    - Dst: XEN_DOMCTL_ALTP2M_mode
      Src: /src/xen/tools/libs/light/libxl_create.c:650,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_create.c:659,1
    - Dst: libxl__arch_domain_prepare_config
      Src: /src/xen/tools/libs/light/libxl_create.c:661,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:663,1
    - Dst: libxl__random_bytes
      Src: /src/xen/tools/libs/light/libxl_create.c:675,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/libs/light/libxl_create.c:680,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/libs/light/libxl_create.c:688,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:698,1
    - Dst: xc_domain_set_llc_colors
      Src: /src/xen/tools/libs/light/libxl_create.c:711,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:716,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:719,1
    - Dst: libxl__is_domid_recent
      Src: /src/xen/tools/libs/light/libxl_create.c:726,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/libs/light/libxl_create.c:738,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:739,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/libs/light/libxl_create.c:751,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:753,1
    - Dst: libxl__arch_domain_save_config
      Src: /src/xen/tools/libs/light/libxl_create.c:761,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:772,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/libs/light/libxl_create.c:772,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_create.c:774,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:780,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:782,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_create.c:787,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_create.c:805,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_create.c:807,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:808,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:808,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_create.c:810,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:811,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:811,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_create.c:813,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:814,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:814,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:815,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:815,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:816,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:818,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:818,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:818,1
    - Dst: libxl__domain_rename
      Src: /src/xen/tools/libs/light/libxl_create.c:819,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:823,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:824,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:825,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:826,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:827,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:828,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:830,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:831,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:832,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:833,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:834,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:835,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:837,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:839,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:840,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:841,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:844,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:845,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:846,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:848,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:849,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:850,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:852,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:853,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:854,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:855,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:856,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:857,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:858,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:859,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:860,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:861,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:862,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:863,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:865,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:866,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:867,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:868,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:869,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:870,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:872,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:873,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:874,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:876,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:877,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:878,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:879,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:880,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:881,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:882,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:883,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:884,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:885,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:886,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:887,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:888,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:889,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:890,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:892,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:897,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:897,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:898,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_create.c:903,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:903,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_create.c:904,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:907,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:907,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:907,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:908,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:908,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:908,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_create.c:910,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_create.c:911,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:911,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:913,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:913,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:914,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:914,1
    - Dst: libxl_domain_type_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:916,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_create.c:917,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:917,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:918,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_create.c:920,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:923,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_create.c:931,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 207
    argCount: 5
    argNames:
    - gc
    - d_config
    - state
    - domid
    - soft_reset
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - uint32_t*
    - bool
    assertStmts:
    - condition: (soft_reset || *domid == INVALID_DOMID)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/xen/tools/libs/light/libxl_create.c
    - condition: (info->passthrough != LIBXL_PASSTHROUGH_DEFAULT)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/xen/tools/libs/light/libxl_create.c
    - condition: (libxl_domid_valid_guest(*domid))
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 933
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 933
    functionName: libxl__domain_make
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - xs_transaction_start
    - libxl_passthrough_to_string
    - libxl__xs_libxl_path
    - LOGED
    - strlen
    - libxl_uuid_copy
    - libxl__domain_rename
    - xc_domain_create
    - libxl_defbool_val
    - ARRAY_SIZE
    - libxl__xs_mknod
    - XEN_DOMCTL_GRANT_version
    - libxl__uuid2string
    - xs_transaction_end
    - xs_write
    - xs_rm
    - GCSPRINTF
    - libxl__arch_domain_save_config
    - LOG
    - xc_domain_set_llc_colors
    - libxl__gc_owner
    - libxl__random_bytes
    - xc_domain_destroy
    - XEN_DOMCTL_ALTP2M_mode
    - libxl__xs_get_dompath
    - LOGD
    - libxl__xs_writev
    - libxl__is_domid_recent
    - libxl_domid_valid_guest
    - libxl_domain_type_to_string
    - libxl_altp2m_mode_to_string
    - libxl__arch_domain_prepare_config
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_make(libxl__gc *gc, libxl_domain_config *d_config,\n
      \                      libxl__domain_build_state *state,\n                       uint32_t
      *domid, bool soft_reset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_create.c:940,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:941,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_create.c:942,1
    - Dst: libxl_device_model_version_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - domid
    - b_info
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 935
    functionDepth: 3
    functionLinenumber: 935
    functionLinenumberEnd: 944
    functionName: store_libxl_entry
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__xs_printf
    - GCSPRINTF
    - libxl__xs_libxl_path
    - libxl_device_model_version_to_string
    linkageType: ''
    returnType: int
    signature: "int store_libxl_entry(libxl__gc *gc, uint32_t domid,\n                             libxl_domain_build_info
      *b_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 949
    functionName: libxl__domain_build_state_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__domain_build_state_init(libxl__domain_build_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__file_reference_unmap
      Src: /src/xen/tools/libs/light/libxl_create.c:953,1
    - Dst: libxl__file_reference_unmap
      Src: /src/xen/tools/libs/light/libxl_create.c:954,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_create.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 959
    functionName: libxl__domain_build_state_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__file_reference_unmap
    - close
    linkageType: ''
    returnType: void
    signature: void libxl__domain_build_state_dispose(libxl__domain_build_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1033
    functionName: ok_to_default_memkb_in_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ok_to_default_memkb_in_create(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - maxmem_kb
    - smp_cpus
    - type
    - hap
    argTypes:
    - unsigned long
    - unsigned int
    - libxl_domain_type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1056
    functionName: libxl__get_required_paging_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long libxl__get_required_paging_memory(unsigned long maxmem_kb,\n
      \                                               unsigned int smp_cpus,\n                                                libxl_domain_type
      type,\n                                                bool hap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_create.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - maxmem_kb
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1071
    functionName: libxl__get_required_iommu_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - DIV_ROUNDUP
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long libxl__get_required_iommu_memory(unsigned long maxmem_kb)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_create.c:1077,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/libs/light/libxl_create.c:1083,1
    - Dst: libxl_flask_context_to_sid
      Src: /src/xen/tools/libs/light/libxl_create.c:1088,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:1088,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1092,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1096,1
    - Dst: libxl_flask_context_to_sid
      Src: /src/xen/tools/libs/light/libxl_create.c:1102,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:1102,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1106,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1110,1
    - Dst: libxl_flask_context_to_sid
      Src: /src/xen/tools/libs/light/libxl_create.c:1116,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_create.c:1116,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1120,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1124,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/libs/light/libxl_create.c:1131,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/libs/light/libxl_create.c:1135,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1136,1
    - Dst: libxl__domain_create_info_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:1142,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1145,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1162,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1169,1
    - Dst: libxl__arch_passthrough_mode_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:1175,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1179,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1180,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1197,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1207,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1217,1
    - Dst: ok_to_default_memkb_in_create
      Src: /src/xen/tools/libs/light/libxl_create.c:1222,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1224,1
    - Dst: libxl__get_required_paging_memory
      Src: /src/xen/tools/libs/light/libxl_create.c:1227,1
    - Dst: ok_to_default_memkb_in_create
      Src: /src/xen/tools/libs/light/libxl_create.c:1235,1
    - Dst: libxl__get_required_iommu_memory
      Src: /src/xen/tools/libs/light/libxl_create.c:1238,1
    - Dst: libxl__domain_build_info_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:1241,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1243,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1248,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1250,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1253,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1258,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1263,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1267,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1269,1
    - Dst: set_default
      Src: /src/xen/tools/libs/light/libxl_create.c:1274,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1277,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 135
    argCount: 3
    argNames:
    - gc
    - d_config
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    assertStmts:
    - condition: (c_info->passthrough != LIBXL_PASSTHROUGH_ENABLED)
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/xen/tools/libs/light/libxl_create.c
    - condition: (c_info->passthrough != LIBXL_PASSTHROUGH_DEFAULT)
      pos:
        line_end: 1178
        line_start: 1178
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1285
      start: 1073
    functionDepth: 4
    functionLinenumber: 1073
    functionLinenumberEnd: 1285
    functionName: libxl__domain_config_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached:
    - ok_to_default_memkb_in_create
    - libxl_defbool_val
    - LOGD
    - libxl_cpupool_qualifier_to_cpupoolid
    - set_default
    - libxl_flask_context_to_sid
    - libxl_cpupoolid_is_valid
    - strlen
    - libxl__get_required_paging_memory
    - libxl__domain_create_info_setdefault
    - libxl__get_required_iommu_memory
    - libxl__domain_build_info_setdefault
    - libxl_get_physinfo
    - libxl__arch_passthrough_mode_setdefault
    - libxl__gc_owner
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_config_setdefault(libxl__gc *gc,\n                                    libxl_domain_config
      *d_config,\n                                    uint32_t domid /* for logging,
      only */)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1290,1
    - Dst: libxl__domain_build_state_init
      Src: /src/xen/tools/libs/light/libxl_create.c:1299,1
    - Dst: libxl__domain_config_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:1302,1
    - Dst: libxl__domain_make
      Src: /src/xen/tools/libs/light/libxl_create.c:1305,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1307,1
    - Dst: store_libxl_entry
      Src: /src/xen/tools/libs/light/libxl_create.c:1323,1
    - Dst: set_default
      Src: /src/xen/tools/libs/light/libxl_create.c:1326,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1329,1
    - Dst: libxl__device_nic_set_devids
      Src: /src/xen/tools/libs/light/libxl_create.c:1345,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1350,1
    - Dst: domcreate_bootloader_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1351,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1353,1
    - Dst: libxl__bootloader_run
      Src: /src/xen/tools/libs/light/libxl_create.c:1363,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1368,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:1369,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 2
    argNames:
    - egc
    - dcs
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1367
        line_start: 1367
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1370
      start: 1287
    functionDepth: 5
    functionLinenumber: 1287
    functionLinenumberEnd: 1370
    functionName: initiate_domain_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__bootloader_run
    - STATE_AO_GC
    - LOGD
    - libxl__domain_config_setdefault
    - libxl__domain_build_state_init
    - domcreate_complete
    - set_default
    - libxl__domain_make
    - domcreate_bootloader_done
    - assert
    - store_libxl_entry
    - libxl__device_nic_set_devids
    linkageType: ''
    returnType: void
    signature: "void initiate_domain_create(libxl__egc *egc,\n                                   libxl__domain_create_state
      *dcs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1375,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1376,1
    - Dst: domcreate_console_available
      Src: /src/xen/tools/libs/light/libxl_create.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - egc
    - bl
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1372
    functionDepth: 1
    functionLinenumber: 1372
    functionLinenumberEnd: 1378
    functionName: domcreate_bootloader_console_available
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - domcreate_console_available
    linkageType: ''
    returnType: void
    signature: "void domcreate_bootloader_console_available(libxl__egc *egc,\n                                                   libxl__bootloader_state
      *bl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_progress_report
      Src: /src/xen/tools/libs/light/libxl_create.c:1382,1
    - Dst: NEW_EVENT
      Src: /src/xen/tools/libs/light/libxl_create.c:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dcs
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1380
    functionDepth: 3
    functionLinenumber: 1380
    functionLinenumberEnd: 1386
    functionName: domcreate_console_available
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached:
    - libxl__ao_progress_report
    - NEW_EVENT
    linkageType: ''
    returnType: void
    signature: "void domcreate_console_available(libxl__egc *egc,\n                                        libxl__domain_create_state
      *dcs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1392,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1393,1
    - Dst: domcreate_rebuild_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1407,1
    - Dst: libxl__domain_build
      Src: /src/xen/tools/libs/light/libxl_create.c:1426,1
    - Dst: domcreate_rebuild_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1427,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1448,1
    - Dst: libxl__build_pre
      Src: /src/xen/tools/libs/light/libxl_create.c:1453,1
    - Dst: libxl__colo_restore_setup
      Src: /src/xen/tools/libs/light/libxl_create.c:1473,1
    - Dst: libxl__remus_restore_setup
      Src: /src/xen/tools/libs/light/libxl_create.c:1476,1
    - Dst: libxl__stream_read_start
      Src: /src/xen/tools/libs/light/libxl_create.c:1479,1
    - Dst: domcreate_stream_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1485,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 3
    argNames:
    - egc
    - bl
    - rc
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1388
    functionDepth: 3
    functionLinenumber: 1388
    functionLinenumberEnd: 1486
    functionName: domcreate_bootloader_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__stream_read_start
    - libxl__domain_build
    - libxl__remus_restore_setup
    - domcreate_rebuild_done
    - libxl__build_pre
    - domcreate_stream_done
    - libxl__colo_restore_setup
    linkageType: ''
    returnType: void
    signature: "void domcreate_bootloader_done(libxl__egc *egc,\n                                      libxl__bootloader_state
      *bl,\n                                      int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1492,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1497,1
    - Dst: domcreate_stream_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1498,1
    - Dst: libxl__stream_read_start
      Src: /src/xen/tools/libs/light/libxl_create.c:1502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - crs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1503
    functionName: libxl__colo_restore_setup_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__stream_read_start
    - CONTAINER_OF
    - LOGD
    - domcreate_stream_done
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_setup_done(libxl__egc *egc,\n                                           libxl__colo_restore_state
      *crs,\n                                           int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1510,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_create.c:1511,1
    - Dst: libxl__cpuid_legacy
      Src: /src/xen/tools/libs/light/libxl_create.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - missing
    - user
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1528
    functionName: libxl__srm_callout_callback_static_data_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__cpuid_legacy
    - libxl__gc_owner
    linkageType: ''
    returnType: int
    signature: "int libxl__srm_callout_callback_static_data_done(unsigned int missing,\n
      \                                                void *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store_mfn
    - console_mfn
    - user
    argTypes:
    - xen_pfn_t
    - xen_pfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1530
    functionDepth: 1
    functionLinenumber: 1530
    functionLinenumberEnd: 1541
    functionName: libxl__srm_callout_callback_restore_results
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    linkageType: ''
    returnType: void
    signature: "void libxl__srm_callout_callback_restore_results(xen_pfn_t store_mfn,\n
      \         xen_pfn_t console_mfn, void *user)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1550,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_create.c:1551,1
    - Dst: gettimeofday
      Src: /src/xen/tools/libs/light/libxl_create.c:1566,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:1570,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:1576,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:1579,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:1586,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_create.c:1597,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:1599,1
    - Dst: libxl__build_post
      Src: /src/xen/tools/libs/light/libxl_create.c:1616,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:1621,1
    - Dst: libxl__file_reference_unmap
      Src: /src/xen/tools/libs/light/libxl_create.c:1627,1
    - Dst: libxl__file_reference_unmap
      Src: /src/xen/tools/libs/light/libxl_create.c:1628,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_create.c:1634,1
    - Dst: domcreate_rebuild_done
      Src: /src/xen/tools/libs/light/libxl_create.c:1637,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 3
    argNames:
    - egc
    - srs
    - ret
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1543
    functionDepth: 1
    functionLinenumber: 1543
    functionLinenumberEnd: 1638
    functionName: domcreate_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__calloc
    - libxl_fd_set_nonblock
    - libxl__build_post
    - domcreate_rebuild_done
    - libxl__file_reference_unmap
    - gettimeofday
    - libxl__gc_owner
    linkageType: ''
    returnType: void
    signature: "void domcreate_stream_done(libxl__egc *egc,\n                                  libxl__stream_read_state
      *srs,\n                                  int ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1644,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1651,1
    - Dst: store_libxl_entry
      Src: /src/xen/tools/libs/light/libxl_create.c:1656,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_create.c:1658,1
    - Dst: libxl__add_disks
      Src: /src/xen/tools/libs/light/libxl_create.c:1660,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_create.c:1661,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1666,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:1667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - dcs
    - ret
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1665
        line_start: 1665
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1668
      start: 1640
    functionDepth: 4
    functionLinenumber: 1640
    functionLinenumberEnd: 1668
    functionName: domcreate_rebuild_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 2
    functionsReached:
    - libxl__add_disks
    - STATE_AO_GC
    - LOGD
    - libxl__multidev_begin
    - domcreate_complete
    - libxl__multidev_prepared
    - assert
    - store_libxl_entry
    linkageType: ''
    returnType: void
    signature: "void domcreate_rebuild_done(libxl__egc *egc,\n                                   libxl__domain_create_state
      *dcs,\n                                   int ret)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1673,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1674,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1683,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1690,1
    - Dst: xc_domain_ioport_permission
      Src: /src/xen/tools/libs/light/libxl_create.c:1693,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:1696,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1707,1
    - Dst: libxl__arch_domain_map_irq
      Src: /src/xen/tools/libs/light/libxl_create.c:1709,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:1712,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1721,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_create.c:1724,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:1727,1
    - Dst: xc_domain_memory_mapping
      Src: /src/xen/tools/libs/light/libxl_create.c:1733,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_create.c:1737,1
    - Dst: libxl__init_console_from_channel
      Src: /src/xen/tools/libs/light/libxl_create.c:1751,1
    - Dst: libxl__device_console_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1754,1
    - Dst: libxl__device_console_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1757,1
    - Dst: libxl__device_console_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1758,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1762,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1766,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1771,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1776,1
    - Dst: libxl_device_vkb_init
      Src: /src/xen/tools/libs/light/libxl_create.c:1779,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1780,1
    - Dst: libxl_device_vkb_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1781,1
    - Dst: init_console_info
      Src: /src/xen/tools/libs/light/libxl_create.c:1790,1
    - Dst: libxl__device_console_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1792,1
    - Dst: libxl__device_console_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1793,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:1796,1
    - Dst: libxl__spawn_stub_dm
      Src: /src/xen/tools/libs/light/libxl_create.c:1797,1
    - Dst: libxl__spawn_local_dm
      Src: /src/xen/tools/libs/light/libxl_create.c:1799,1
    - Dst: libxl__grant_vga_iomem_permission
      Src: /src/xen/tools/libs/light/libxl_create.c:1805,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1818,1
    - Dst: init_console_info
      Src: /src/xen/tools/libs/light/libxl_create.c:1823,1
    - Dst: libxl__device_vuart_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1825,1
    - Dst: libxl__device_console_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1826,1
    - Dst: init_console_info
      Src: /src/xen/tools/libs/light/libxl_create.c:1829,1
    - Dst: libxl__device_console_add
      Src: /src/xen/tools/libs/light/libxl_create.c:1831,1
    - Dst: libxl__device_console_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:1832,1
    - Dst: libxl__need_xenpv_qemu
      Src: /src/xen/tools/libs/light/libxl_create.c:1834,1
    - Dst: libxl__spawn_local_dm
      Src: /src/xen/tools/libs/light/libxl_create.c:1839,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1842,1
    - Dst: domcreate_devmodel_started
      Src: /src/xen/tools/libs/light/libxl_create.c:1843,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_create.c:1851,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1854,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:1855,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 126
    argCount: 3
    argNames:
    - egc
    - multidev
    - ret
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/xen/tools/libs/light/libxl_create.c
    - condition: (!dcs->sdss.dm.guest_domid)
      pos:
        line_end: 1841
        line_start: 1841
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1856
      start: 1670
    functionDepth: 6
    functionLinenumber: 1670
    functionLinenumberEnd: 1856
    functionName: domcreate_launch_dm
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - LOGED
    - libxl_defbool_val
    - libxl__grant_vga_iomem_permission
    - domcreate_devmodel_started
    - libxl__spawn_local_dm
    - abort
    - libxl__arch_domain_map_irq
    - libxl__device_vuart_add
    - xc_domain_memory_mapping
    - xc_domain_ioport_permission
    - STATE_AO_GC
    - CONTAINER_OF
    - domcreate_complete
    - libxl__need_xenpv_qemu
    - LOGD
    - xc_domain_iomem_permission
    - libxl_device_vkb_init
    - libxl__device_add
    - libxl__device_console_dispose
    - libxl_device_vkb_dispose
    - init_console_info
    - libxl__device_console_add
    - libxl__spawn_stub_dm
    - assert
    - libxl__init_console_from_channel
    linkageType: ''
    returnType: void
    signature: "void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,\n
      \                               int ret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__multidev_prepare
      Src: /src/xen/tools/libs/light/libxl_create.c:1863,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1869,1
    - Dst: xc_assign_dt_device
      Src: /src/xen/tools/libs/light/libxl_create.c:1870,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1872,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_create.c:1879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - egc
    - ao
    - domid
    - d_config
    - multidev
    argTypes:
    - libxl__egc*
    - libxl__ao*
    - uint32_t
    - libxl_domain_config*
    - libxl__multidev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1858
    functionDepth: 4
    functionLinenumber: 1858
    functionLinenumberEnd: 1880
    functionName: libxl__add_dtdevs
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl__multidev_prepare
    - libxl__ao_device*::callback
    - xc_assign_dt_device
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void libxl__add_dtdevs(libxl__egc *egc, libxl__ao *ao, uint32_t domid,\n
      \                             libxl_domain_config *d_config,\n                              libxl__multidev
      *multidev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1908,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1909,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1913,1
    - Dst: domcreate_attach_devices
      Src: /src/xen/tools/libs/light/libxl_create.c:1918,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1922,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:1923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - egc
    - dmss
    - ret
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1921
        line_start: 1921
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1924
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 1924
    functionName: domcreate_devmodel_started
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - domcreate_attach_devices
    - LOGD
    - domcreate_complete
    - assert
    linkageType: ''
    returnType: void
    signature: "void domcreate_devmodel_started(libxl__egc *egc,\n                                       libxl__dm_spawn_state
      *dmss,\n                                       int ret)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1930,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:1931,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:1938,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_create.c:1939,1
    - Dst: libxl__device_type_get_num
      Src: /src/xen/tools/libs/light/libxl_create.c:1946,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_create.c:1948,1
    - Dst: libxl__device_type*::add
      Src: /src/xen/tools/libs/light/libxl_create.c:1950,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_create.c:1951,1
    - Dst: domcreate_attach_devices
      Src: /src/xen/tools/libs/light/libxl_create.c:1955,1
    - Dst: libxl__console_tty_path
      Src: /src/xen/tools/libs/light/libxl_create.c:1959,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:1961,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:1967,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_create.c:1971,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:1973,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_create.c:1981,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:1982,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - egc
    - multidev
    - ret
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 1980
        line_start: 1980
        source_file: /src/xen/tools/libs/light/libxl_create.c
    constantsTouched: []
    func_position:
      end: 1983
      start: 1926
    functionDepth: 3
    functionLinenumber: 1926
    functionLinenumberEnd: 1983
    functionName: domcreate_attach_devices
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - domcreate_attach_devices
    - LOGD
    - libxl__multidev_begin
    - libxl__console_tty_path
    - GCSPRINTF
    - libxl__xswait_start
    - domcreate_complete
    - libxl__device_type*::add
    - libxl__device_kind_to_string
    - libxl__multidev_prepared
    - libxl__device_type_get_num
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void domcreate_attach_devices(libxl__egc *egc,\n                                     libxl__multidev
      *multidev,\n                                     int ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:1989,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_create.c:1993,1
    - Dst: domcreate_console_available
      Src: /src/xen/tools/libs/light/libxl_create.c:1998,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_create.c:2005,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:2006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - egc
    - xswa
    - rc
    - p
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1985
    functionDepth: 4
    functionLinenumber: 1985
    functionLinenumberEnd: 2007
    functionName: console_xswait_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - domcreate_complete
    - LOG
    - domcreate_console_available
    - libxl__xswait_stop
    linkageType: ''
    returnType: void
    signature: "void console_xswait_callback(libxl__egc *egc, libxl__xswait_state
      *xswa,\n                                    int rc, const char *p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:2013,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_create.c:2017,1
    - Dst: libxl__domain_build_state_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:2019,1
    - Dst: xc_flask_relabel_domain
      Src: /src/xen/tools/libs/light/libxl_create.c:2022,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_create.c:2032,1
    - Dst: libxl__update_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_create.c:2036,1
    - Dst: libxl__set_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_create.c:2037,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_create.c:2041,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:2045,1
    - Dst: libxl__domain_destroy
      Src: /src/xen/tools/libs/light/libxl_create.c:2052,1
    - Dst: libxl__domain_create_state*::callback
      Src: /src/xen/tools/libs/light/libxl_create.c:2057,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - egc
    - dcs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2009
    functionDepth: 2
    functionLinenumber: 2009
    functionLinenumberEnd: 2058
    functionName: domcreate_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 6
    functionsReached:
    - STATE_AO_GC
    - xc_flask_relabel_domain
    - libxl__domain_create_state*::callback
    - libxl__update_domain_configuration
    - libxl_domain_config_dispose
    - libxl__unlock_file
    - libxl__set_domain_configuration
    - libxl__domain_build_state_dispose
    - libxl__domain_destroy
    - libxl__xswait_stop
    - libxl__lock_domain_userdata
    linkageType: ''
    returnType: void
    signature: "void domcreate_complete(libxl__egc *egc,\n                               libxl__domain_create_state
      *dcs,\n                               int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:2064,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:2065,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2068,1
    - Dst: libxl__domain_create_state*::callback
      Src: /src/xen/tools/libs/light/libxl_create.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - dds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_destroy_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2071
    functionName: domcreate_destruction_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__domain_create_state*::callback
    linkageType: ''
    returnType: void
    signature: "void domcreate_destruction_cb(libxl__egc *egc,\n                                     libxl__domain_destroy_state
      *dds,\n                                     int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_create.c:2098,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_create.c:2102,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_create.c:2105,1
    - Dst: libxl_domain_config_copy
      Src: /src/xen/tools/libs/light/libxl_create.c:2106,1
    - Dst: libxl__fd_flags_modify_save
      Src: /src/xen/tools/libs/light/libxl_create.c:2111,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_create.c:2119,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_create.c:2126,1
    - Dst: libxl__ao_progress_gethow
      Src: /src/xen/tools/libs/light/libxl_create.c:2132,1
    - Dst: initiate_domain_create
      Src: /src/xen/tools/libs/light/libxl_create.c:2135,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_create.c:2140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 8
    argNames:
    - ctx
    - d_config
    - domid
    - restore_fd
    - send_back_fd
    - params
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t*
    - int
    - int
    - libxl_domain_restore_params*
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2092
    functionDepth: 6
    functionLinenumber: 2092
    functionLinenumberEnd: 2142
    functionName: do_domain_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - AO_CREATE
    - libxl_domain_config_copy
    - libxl__xswait_init
    - GCNEW
    - libxl_domain_config_init
    - libxl__fd_flags_modify_save
    - initiate_domain_create
    - libxl__ao_progress_gethow
    - AO_CREATE_FAIL
    linkageType: ''
    returnType: int
    signature: "int do_domain_create(libxl_ctx *ctx, libxl_domain_config *d_config,\n
      \                           uint32_t *domid, int restore_fd, int send_back_fd,\n
      \                           const libxl_domain_restore_params *params,\n                            const
      libxl_asyncop_how *ao_how,\n                            const libxl_asyncprogress_how
      *aop_console_how)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:2148,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:2149,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2154,1
    - Dst: libxl__restore_emulator_xenstore_data
      Src: /src/xen/tools/libs/light/libxl_create.c:2159,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2162,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:2167,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:2168,1
    - Dst: rename
      Src: /src/xen/tools/libs/light/libxl_create.c:2170,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2172,1
    - Dst: initiate_domain_create
      Src: /src/xen/tools/libs/light/libxl_create.c:2177,1
    - Dst: domcreate_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:2181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - egc
    - dds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_destroy_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2144
    functionDepth: 6
    functionLinenumber: 2144
    functionLinenumberEnd: 2182
    functionName: domain_soft_reset_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - rename
    - domcreate_complete
    - initiate_domain_create
    - libxl__restore_emulator_xenstore_data
    linkageType: ''
    returnType: void
    signature: "void domain_soft_reset_cb(libxl__egc *egc,\n                                 libxl__domain_destroy_state
      *dds,\n                                 int rc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_create.c:2194,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_create.c:2205,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/libs/light/libxl_create.c:2213,1
    - Dst: libxl_domain_config_copy
      Src: /src/xen/tools/libs/light/libxl_create.c:2214,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_create.c:2220,1
    - Dst: libxl__ao_progress_gethow
      Src: /src/xen/tools/libs/light/libxl_create.c:2221,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_create.c:2227,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2229,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_create.c:2234,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:2235,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2238,1
    - Dst: atol
      Src: /src/xen/tools/libs/light/libxl_create.c:2241,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_create.c:2243,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:2244,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2247,1
    - Dst: atol
      Src: /src/xen/tools/libs/light/libxl_create.c:2250,1
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_create.c:2252,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_create.c:2253,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2256,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_create.c:2259,1
    - Dst: libxl__save_emulator_xenstore_data
      Src: /src/xen/tools/libs/light/libxl_create.c:2264,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_create.c:2267,1
    - Dst: libxl__domain_suspend_init
      Src: /src/xen/tools/libs/light/libxl_create.c:2274,1
    - Dst: libxl__domain_suspend_device_model
      Src: /src/xen/tools/libs/light/libxl_create.c:2278,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_create.c:2283,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 5
    argNames:
    - ctx
    - d_config
    - domid
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2187
    functionDepth: 3
    functionLinenumber: 2187
    functionLinenumberEnd: 2284
    functionName: do_domain_soft_reset
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl_domain_config_copy
    - libxl__xs_get_dompath
    - libxl__xswait_init
    - GCNEW
    - LOGD
    - libxl_domain_config_init
    - GCSPRINTF
    - atol
    - libxl__save_emulator_xenstore_data
    - libxl__domain_suspend_init
    - AO_CREATE_FAIL
    - libxl__strdup
    - libxl__ao_progress_gethow
    - libxl__domain_suspend_device_model
    - libxl__xs_read_mandatory
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int do_domain_soft_reset(libxl_ctx *ctx,\n                                libxl_domain_config
      *d_config,\n                                uint32_t domid,\n                                const
      libxl_asyncop_how *ao_how,\n                                const libxl_asyncprogress_how\n
      \                               *aop_console_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:2290,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:2292,1
    - Dst: libxl__domain_suspend_dispose
      Src: /src/xen/tools/libs/light/libxl_create.c:2295,1
    - Dst: xs_release_domain
      Src: /src/xen/tools/libs/light/libxl_create.c:2303,1
    - Dst: libxl__domain_destroy
      Src: /src/xen/tools/libs/light/libxl_create.c:2309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2310
    functionName: soft_reset_dm_suspended
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - xs_release_domain
    - libxl__domain_suspend_dispose
    - libxl__domain_destroy
    linkageType: ''
    returnType: void
    signature: "void soft_reset_dm_suspended(libxl__egc *egc,\n                                    libxl__domain_suspend_state
      *dsps,\n                                    int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_create.c:2316,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_create.c:2318,1
    - Dst: libxl__fd_flags_restore
      Src: /src/xen/tools/libs/light/libxl_create.c:2323,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_create.c:2332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - egc
    - dcs
    - rc
    - domid
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2312
    functionDepth: 2
    functionLinenumber: 2312
    functionLinenumberEnd: 2333
    functionName: domain_create_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__fd_flags_restore
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void domain_create_cb(libxl__egc *egc,\n                             libxl__domain_create_state
      *dcs,\n                             int rc, uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_create.c:2341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d_config
    argTypes:
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2342
    functionName: set_disk_colo_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_set
    linkageType: ''
    returnType: void
    signature: void set_disk_colo_restore(libxl_domain_config *d_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_create.c:2349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d_config
    argTypes:
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2350
    functionName: unset_disk_colo_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_set
    linkageType: ''
    returnType: void
    signature: void unset_disk_colo_restore(libxl_domain_config *d_config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unset_disk_colo_restore
      Src: /src/xen/tools/libs/light/libxl_create.c:2357,1
    - Dst: do_domain_create
      Src: /src/xen/tools/libs/light/libxl_create.c:2358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - d_config
    - domid
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t*
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2352
    functionDepth: 7
    functionLinenumber: 2352
    functionLinenumberEnd: 2360
    functionName: libxl_domain_create_new
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - unset_disk_colo_restore
    - do_domain_create
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_create_new(libxl_ctx *ctx, libxl_domain_config *d_config,\n
      \                           uint32_t *domid,\n                            const
      libxl_asyncop_how *ao_how,\n                            const libxl_asyncprogress_how
      *aop_console_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_disk_colo_restore
      Src: /src/xen/tools/libs/light/libxl_create.c:2370,1
    - Dst: unset_disk_colo_restore
      Src: /src/xen/tools/libs/light/libxl_create.c:2372,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:2381,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_create.c:2382,1
    - Dst: do_domain_create
      Src: /src/xen/tools/libs/light/libxl_create.c:2384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - ctx
    - d_config
    - domid
    - restore_fd
    - send_back_fd
    - params
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t*
    - int
    - int
    - libxl_domain_restore_params*
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2362
    functionDepth: 7
    functionLinenumber: 2362
    functionLinenumberEnd: 2386
    functionName: libxl_domain_create_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_setdefault
    - unset_disk_colo_restore
    - do_domain_create
    - set_disk_colo_restore
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config
      *d_config,\n                                uint32_t *domid, int restore_fd,\n
      \                               int send_back_fd,\n                                const
      libxl_domain_restore_params *params,\n                                const
      libxl_asyncop_how *ao_how,\n                                const libxl_asyncprogress_how
      *aop_console_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domain_soft_reset
      Src: /src/xen/tools/libs/light/libxl_create.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - d_config
    - domid
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2388
    functionDepth: 4
    functionLinenumber: 2388
    functionLinenumberEnd: 2401
    functionName: libxl_domain_soft_reset
    functionSourceFile: /src/xen/tools/libs/light/libxl_create.c
    functionUses: 0
    functionsReached:
    - do_domain_soft_reset
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_soft_reset(libxl_ctx *ctx,\n                            libxl_domain_config
      *d_config,\n                            uint32_t domid,\n                            const
      libxl_asyncop_how *ao_how,\n                            const libxl_asyncprogress_how\n
      \                           *aop_console_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:68,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: atfork_lock
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void atfork_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:74,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: atfork_unlock
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void atfork_unlock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:82,1
    - Dst: pthread_atfork
      Src: /src/xen/tools/libs/light/libxl_fork.c:85,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:87,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_fork.c:88,1
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts:
    - condition: (r == ENOMEM)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: libxl__atfork_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - atfork_lock
    - pthread_atfork
    - atfork_unlock
    - assert
    - libxl__alloc_failed
    linkageType: ''
    returnType: int
    signature: int libxl__atfork_init(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: libxl__carefd_begin
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 2
    functionsReached:
    - atfork_lock
    linkageType: ''
    returnType: void
    signature: void libxl__carefd_begin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: libxl__carefd_unlock
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - atfork_unlock
    linkageType: ''
    returnType: void
    signature: void libxl__carefd_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_fork.c:105,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_fork.c:106,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_fork.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - fd
    argTypes:
    - libxl_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: libxl__carefd_record
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - libxl_fd_set_cloexec
    - libxl__zalloc
    - XEN_LIST_INSERT_HEAD
    linkageType: ''
    returnType: libxl__carefd
    signature: libxl__carefd *libxl__carefd_record(libxl_ctx *ctx, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_fork.c:118,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - fd
    argTypes:
    - libxl_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: libxl__carefd_opened
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 2
    functionsReached:
    - libxl__carefd_record
    - libxl__carefd_unlock
    linkageType: ''
    returnType: libxl__carefd
    signature: libxl__carefd *libxl__carefd_opened(libxl_ctx *ctx, int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:142,1
    - Dst: XEN_LIST_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_fork.c:144,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_fork.c:146,1
    - Dst: LIBXL__LOG_ERRNO
      Src: /src/xen/tools/libs/light/libxl_fork.c:148,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_fork.c:152,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl_fork.c:154,1
    - Dst: defer_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:173,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl_fork.c:175,1
    - Dst: release_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:180,1
    - Dst: sigchld_removehandler_core
      Src: /src/xen/tools/libs/light/libxl_fork.c:181,1
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 185
    functionName: libxl_postfork_child_noexec
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - LIBXL__LOG_ERRNO
    - release_sigchld
    - sigchld_removehandler_core
    - atfork_lock
    - free
    - close
    - defer_sigchld
    - XEN_LIST_INIT
    - atfork_unlock
    - XEN_LIST_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void libxl_postfork_child_noexec(libxl_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:190,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_fork.c:191,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_fork.c:193,1
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:194,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_fork.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cf
    argTypes:
    - libxl__carefd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: libxl__carefd_close
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 4
    functionsReached:
    - XEN_LIST_REMOVE
    - atfork_lock
    - free
    - close
    - atfork_unlock
    linkageType: ''
    returnType: int
    signature: int libxl__carefd_close(libxl__carefd *cf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cf
    argTypes:
    - libxl__carefd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: libxl__carefd_fd
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__carefd_fd(const libxl__carefd *cf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/xen/tools/libs/light/libxl_fork.c:216,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_fork.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - want
    - status
    argTypes:
    - libxl__egc*
    - pid_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: checked_waitpid
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - LIBXL__EVENT_DISASTER
    - waitpid
    linkageType: ''
    returnType: pid_t
    signature: pid_t checked_waitpid(libxl__egc *egc, pid_t want, int *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:238,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:239,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_fork.c:241,1
    - Dst: libxl__self_pipe_wakeup
      Src: /src/xen/tools/libs/light/libxl_fork.c:242,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_fork.c:243,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:246,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!r)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 250
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 250
    functionName: sigchld_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - abort
    - libxl__self_pipe_wakeup
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - assert
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void sigchld_handler(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_fork.c:257,1
    - Dst: sigemptyset
      Src: /src/xen/tools/libs/light/libxl_fork.c:259,1
    - Dst: sigaction
      Src: /src/xen/tools/libs/light/libxl_fork.c:261,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - old
    argTypes:
    - struct sigaction*
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 263
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 263
    functionName: sigchld_sethandler_raw
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - memset
    - sigemptyset
    - assert
    - sigaction
    linkageType: ''
    returnType: void
    signature: void sigchld_sethandler_raw(void (*handler)(int), struct sigaction
      *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: sigchld_handler_when_deferred
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sigchld_handler_when_deferred(int signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:292,1
    - Dst: sigchld_sethandler_raw
      Src: /src/xen/tools/libs/light/libxl_fork.c:294,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:301,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sigchld_installed)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!r)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 303
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 303
    functionName: defer_sigchld
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - sigchld_sethandler_raw
    - assert
    linkageType: ''
    returnType: void
    signature: void defer_sigchld(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:307,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:309,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:310,1
    - Dst: sigchld_sethandler_raw
      Src: /src/xen/tools/libs/light/libxl_fork.c:312,1
    - Dst: sigchld_handler
      Src: /src/xen/tools/libs/light/libxl_fork.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sigchld_installed)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!r)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: release_sigchld
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached:
    - sigchld_handler
    - sigchld_sethandler_raw
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void release_sigchld(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/xen/tools/libs/light/libxl_fork.c:334,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:335,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:336,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!(was.sa_flags & SA_SIGINFO))
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!r)
      pos:
        line_end: 334
        line_start: 334
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (was.sa_handler == sigchld_handler)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: sigchld_removehandler_core
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached:
    - assert
    - sigaction
    linkageType: ''
    returnType: void
    signature: void sigchld_removehandler_core(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigchld_sethandler_raw
      Src: /src/xen/tools/libs/light/libxl_fork.c:349,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "(((void)\"application must negotiate with libxl about SIGCHLD\",\n
        \           !(sigchld_saved_action.sa_flags & SA_SIGINFO) &&\n            (sigchld_saved_action.sa_handler
        == SIG_DFL ||\n             sigchld_saved_action.sa_handler == SIG_IGN)))"
      pos:
        line_end: 353
        line_start: 350
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 355
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 355
    functionName: sigchld_installhandler_core
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - sigchld_sethandler_raw
    - assert
    linkageType: ''
    returnType: void
    signature: void sigchld_installhandler_core(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:362,1
    - Dst: defer_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:363,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_fork.c:365,1
    - Dst: release_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:367,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_fork.c:369,1
    - Dst: sigchld_removehandler_core
      Src: /src/xen/tools/libs/light/libxl_fork.c:370,1
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: sigchld_user_remove
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - release_sigchld
    - sigchld_removehandler_core
    - atfork_lock
    - XEN_LIST_EMPTY
    - defer_sigchld
    - atfork_unlock
    linkageType: ''
    returnType: void
    signature: void sigchld_user_remove(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigchld_user_remove
      Src: /src/xen/tools/libs/light/libxl_fork.c:379,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_fork.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: libxl__sigchld_notneeded
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - sigchld_user_remove
    - libxl__ev_fd_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__sigchld_notneeded(libxl__gc *gc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__pipe_nonblock
      Src: /src/xen/tools/libs/light/libxl_fork.c:388,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_fork.c:390,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_fork.c:391,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_fork.c:393,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_fork.c:394,1
    - Dst: libxl__ev_fd_modify
      Src: /src/xen/tools/libs/light/libxl_fork.c:399,1
    - Dst: atfork_lock
      Src: /src/xen/tools/libs/light/libxl_fork.c:403,1
    - Dst: sigchld_installhandler_core
      Src: /src/xen/tools/libs/light/libxl_fork.c:405,1
    - Dst: defer_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:407,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_fork.c:409,1
    - Dst: release_sigchld
      Src: /src/xen/tools/libs/light/libxl_fork.c:411,1
    - Dst: atfork_unlock
      Src: /src/xen/tools/libs/light/libxl_fork.c:412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 420
    functionName: libxl__sigchld_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - release_sigchld
    - atfork_lock
    - defer_sigchld
    - libxl__pipe_nonblock
    - sigchld_installhandler_core
    - XEN_LIST_INSERT_HEAD
    - libxl__ev_fd_modify
    - libxl__ev_fd_isregistered
    - atfork_unlock
    - libxl_fd_set_cloexec
    - libxl__ev_fd_register
    linkageType: ''
    returnType: int
    signature: int libxl__sigchld_needed(libxl__gc *gc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_fork.c:426,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_fork.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - creating
    argTypes:
    - libxl_ctx*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: chldmode_ours
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_EMPTY
    - abort
    linkageType: ''
    returnType: bool
    signature: bool chldmode_ours(libxl_ctx *ctx, bool creating)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chldmode_ours
      Src: /src/xen/tools/libs/light/libxl_fork.c:438,1
    - Dst: libxl__sigchld_notneeded
      Src: /src/xen/tools/libs/light/libxl_fork.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: perhaps_sigchld_notneeded
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - chldmode_ours
    - libxl__sigchld_notneeded
    linkageType: ''
    returnType: void
    signature: void perhaps_sigchld_notneeded(libxl__gc *gc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chldmode_ours
      Src: /src/xen/tools/libs/light/libxl_fork.c:446,1
    - Dst: libxl__sigchld_needed
      Src: /src/xen/tools/libs/light/libxl_fork.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - creating
    argTypes:
    - libxl__gc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: perhaps_sigchld_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - chldmode_ours
    - libxl__sigchld_needed
    linkageType: ''
    returnType: int
    signature: int perhaps_sigchld_needed(libxl__gc *gc, bool creating)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_fork.c:457,1
    - Dst: libxl__ev_child*::callback
      Src: /src/xen/tools/libs/light/libxl_fork.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - ch
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: childproc_reaped_ours
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - libxl__ev_child*::callback
    linkageType: ''
    returnType: void
    signature: "void childproc_reaped_ours(libxl__egc *egc, libxl__ev_child *ch,\n
      \                                int status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_fork.c:467,1
    - Dst: childproc_reaped_ours
      Src: /src/xen/tools/libs/light/libxl_fork.c:475,1
    - Dst: perhaps_sigchld_notneeded
      Src: /src/xen/tools/libs/light/libxl_fork.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - pid
    - status
    argTypes:
    - libxl__egc*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 480
    functionName: childproc_reaped
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - perhaps_sigchld_notneeded
    - childproc_reaped_ours
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: int childproc_reaped(libxl__egc *egc, pid_t pid, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_fork.c:484,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:486,1
    - Dst: childproc_reaped
      Src: /src/xen/tools/libs/light/libxl_fork.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - pid
    - status
    argTypes:
    - libxl_ctx*
    - pid_t
    - int
    assertStmts:
    - condition: "(CTX->childproc_hooks->chldowner\n           == libxl_sigchld_owner_mainloop)"
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 7
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: libxl_childproc_reaped
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - childproc_reaped
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl_childproc_reaped(libxl_ctx *ctx, pid_t pid, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/light/libxl_fork.c:502,1
    - Dst: checked_waitpid
      Src: /src/xen/tools/libs/light/libxl_fork.c:503,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_fork.c:512,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:517,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_fork.c:517,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:518,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_fork.c:518,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:519,1
    - Dst: WIFSIGNALED
      Src: /src/xen/tools/libs/light/libxl_fork.c:519,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:520,1
    - Dst: WIFSTOPPED
      Src: /src/xen/tools/libs/light/libxl_fork.c:520,1
    - Dst: childproc_reaped_ours
      Src: /src/xen/tools/libs/light/libxl_fork.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - egc
    argTypes:
    - libxl__egc*
    assertStmts:
    - condition: (WIFEXITED(status))
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (WEXITSTATUS(status)==255)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!WIFSIGNALED(status))
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - condition: (!WIFSTOPPED(status))
      pos:
        line_end: 519
        line_start: 519
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 525
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 525
    functionName: childproc_checkall
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - WIFSTOPPED
    - LIBXL__EVENT_DISASTER
    - WIFSIGNALED
    - checked_waitpid
    - WIFEXITED
    - assert
    - childproc_reaped_ours
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: void
    signature: void childproc_checkall(libxl__egc *egc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EGC_INIT
      Src: /src/xen/tools/libs/light/libxl_fork.c:529,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:531,1
    - Dst: childproc_checkall
      Src: /src/xen/tools/libs/light/libxl_fork.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts:
    - condition: "(CTX->childproc_hooks->chldowner\n           == libxl_sigchld_owner_mainloop)"
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 535
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 535
    functionName: libxl_childproc_sigchld_occurred
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - EGC_INIT
    - assert
    - childproc_checkall
    linkageType: ''
    returnType: void
    signature: void libxl_childproc_sigchld_occurred(libxl_ctx *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_fork.c:550,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_fork.c:551,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:555,1
    - Dst: libxl__self_pipe_eatall
      Src: /src/xen/tools/libs/light/libxl_fork.c:557,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_fork.c:558,1
    - Dst: childproc_checkall
      Src: /src/xen/tools/libs/light/libxl_fork.c:562,1
    - Dst: chldmode_ours
      Src: /src/xen/tools/libs/light/libxl_fork.c:566,1
    - Dst: checked_waitpid
      Src: /src/xen/tools/libs/light/libxl_fork.c:568,1
    - Dst: childproc_reaped
      Src: /src/xen/tools/libs/light/libxl_fork.c:573,1
    - Dst: childproc_hooks::reaped_callback
      Src: /src/xen/tools/libs/light/libxl_fork.c:578,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_fork.c:583,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_fork.c:587,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_fork.c:594,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts:
    - condition: (revents & POLLIN)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 598
      start: 537
    functionDepth: 7
    functionLinenumber: 537
    functionLinenumberEnd: 598
    functionName: sigchld_selfpipe_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - snprintf
    - libxl_report_child_exitstatus
    - childproc_checkall
    - chldmode_ours
    - childproc_hooks::reaped_callback
    - LIBXL__EVENT_DISASTER
    - childproc_reaped
    - checked_waitpid
    - libxl__self_pipe_eatall
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void sigchld_selfpipe_handler(libxl__egc *egc, libxl__ev_fd *ev,\n
      \                                    int fd, short events, short revents)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: perhaps_sigchld_needed
      Src: /src/xen/tools/libs/light/libxl_fork.c:606,1
    - Dst: childproc_hooks::fork_replacement
      Src: /src/xen/tools/libs/light/libxl_fork.c:610,1
    - Dst: fork
      Src: /src/xen/tools/libs/light/libxl_fork.c:611,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_fork.c:613,1
    - Dst: xs_daemon_destroy_postfork
      Src: /src/xen/tools/libs/light/libxl_fork.c:621,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_fork.c:630,1
    - Dst: perhaps_sigchld_notneeded
      Src: /src/xen/tools/libs/light/libxl_fork.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - gc
    - ch
    - death
    argTypes:
    - libxl__gc*
    - libxl__ev_child*
    - libxl__ev_child_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 600
    functionDepth: 6
    functionLinenumber: 600
    functionLinenumberEnd: 637
    functionName: libxl__ev_child_fork
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached:
    - childproc_hooks::fork_replacement
    - perhaps_sigchld_notneeded
    - perhaps_sigchld_needed
    - xs_daemon_destroy_postfork
    - XEN_LIST_INSERT_HEAD
    - LOGE
    - fork
    linkageType: ''
    returnType: pid_t
    signature: "pid_t libxl__ev_child_fork(libxl__gc *gc, libxl__ev_child *ch,\n                           libxl__ev_child_callback
      *death)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_fork.c:642,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:645,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl_fork.c:645,1
    - Dst: perhaps_sigchld_notneeded
      Src: /src/xen/tools/libs/light/libxl_fork.c:653,1
    - Dst: perhaps_sigchld_needed
      Src: /src/xen/tools/libs/light/libxl_fork.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - hooks
    - user
    argTypes:
    - libxl_ctx*
    - libxl_childproc_hooks*
    - void*
    assertStmts:
    - condition: (XEN_LIST_EMPTY(&CTX->children))
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 658
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 658
    functionName: libxl_childproc_setmode
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - perhaps_sigchld_notneeded
    - GC_INIT
    - perhaps_sigchld_needed
    - XEN_LIST_EMPTY
    - assert
    linkageType: ''
    returnType: void
    signature: "void libxl_childproc_setmode(libxl_ctx *ctx, const libxl_childproc_hooks
      *hooks,\n                             void *user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_fork.c:667,1
    - Dst: xs_open
      Src: /src/xen/tools/libs/light/libxl_fork.c:668,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_fork.c:670,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_fork.c:674,1
    - Dst: xs_fileno
      Src: /src/xen/tools/libs/light/libxl_fork.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - gc
    - what
    argTypes:
    - libxl__gc*
    - char*
    assertStmts:
    - condition: (!CTX->xsh)
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    constantsTouched: []
    func_position:
      end: 680
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 680
    functionName: libxl__ev_child_xenstore_reopen
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 1
    functionsReached:
    - xs_open
    - xs_fileno
    - LOGE
    - libxl_fd_set_cloexec
    - assert
    linkageType: ''
    returnType: int
    signature: int libxl__ev_child_xenstore_reopen(libxl__gc *gc, const char *what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_fork.c:694,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_fork.c:699,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_fork.c:703,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/light/libxl_fork.c:706,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_fork.c:708,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_fork.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ao
    - ch
    - sig
    argTypes:
    - libxl__ao*
    - libxl__ev_child*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 713
    functionName: libxl__ev_child_kill_deregister
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - XEN_LIST_REMOVE
    - kill
    - GCNEW
    - LOGED
    - XEN_LIST_INSERT_HEAD
    - libxl__ev_child_inuse
    linkageType: ''
    returnType: void
    signature: "void libxl__ev_child_kill_deregister(libxl__ao *ao, libxl__ev_child
      *ch,\n                                     int sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_fork.c:720,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_fork.c:723,1
    - Dst: libxl__ao_complete_check_progress_reports
      Src: /src/xen/tools/libs/light/libxl_fork.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ch
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 728
    functionName: deregistered_child_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_fork.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - CONTAINER_OF
    - libxl__ao_complete_check_progress_reports
    linkageType: ''
    returnType: void
    signature: "void deregistered_child_callback(libxl__egc *egc,\n                                        libxl__ev_child
      *ch,\n                                        pid_t pid,\n                                        int
      status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_no_convert_callout.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chs
    argTypes:
    - libxl__conversion_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: libxl__conversion_helper_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_convert_callout.c
    functionUses: 1
    functionsReached:
    - libxl__ev_child_init
    linkageType: ''
    returnType: void
    signature: void libxl__conversion_helper_init(libxl__conversion_helper_state *chs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - chs
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: libxl__convert_legacy_stream
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_convert_callout.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__convert_legacy_stream(libxl__egc *egc,\n                                 libxl__conversion_helper_state
      *chs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - egc
    - chs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: libxl__conversion_helper_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_convert_callout.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__conversion_helper_abort(libxl__egc *egc,\n                                    libxl__conversion_helper_state
      *chs,\n                                    int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_is_null
      Src: /src/xen/tools/libs/light/libxl_uuid.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: libxl_uuid_is_nil
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached:
    - uuid_is_null
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_is_nil(const libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_generate
      Src: /src/xen/tools/libs/light/libxl_uuid.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: libxl_uuid_generate
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 2
    functionsReached:
    - uuid_generate
    linkageType: ''
    returnType: void
    signature: void libxl_uuid_generate(libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_parse
      Src: /src/xen/tools/libs/light/libxl_uuid.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uuid
    - in
    argTypes:
    - libxl_uuid*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: libxl_uuid_from_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 3
    functionsReached:
    - uuid_parse
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_from_string(libxl_uuid *uuid, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_copy
      Src: /src/xen/tools/libs/light/libxl_uuid.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx_opt
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_uuid*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: libxl_uuid_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 4
    functionsReached:
    - uuid_copy
    linkageType: ''
    returnType: void
    signature: "void libxl_uuid_copy(libxl_ctx *ctx_opt, libxl_uuid *dst,\n                     const
      libxl_uuid *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_clear
      Src: /src/xen/tools/libs/light/libxl_uuid.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: libxl_uuid_clear
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 0
    functionsReached:
    - uuid_clear
    linkageType: ''
    returnType: void
    signature: void libxl_uuid_clear(libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_compare
      Src: /src/xen/tools/libs/light/libxl_uuid.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uuid1
    - uuid2
    argTypes:
    - libxl_uuid*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: libxl_uuid_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached:
    - uuid_compare
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_compare(const libxl_uuid *uuid1, const libxl_uuid *uuid2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: libxl_uuid_bytearray_const
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *libxl_uuid_bytearray_const(const libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: libxl_uuid_bytearray
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *libxl_uuid_bytearray(libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_dec_be
      Src: /src/xen/tools/libs/light/libxl_uuid.c:69,1
    - Dst: uuid_is_nil
      Src: /src/xen/tools/libs/light/libxl_uuid.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: libxl_uuid_is_nil
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached:
    - uuid_is_nil
    - uuid_dec_be
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_is_nil(const libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_create
      Src: /src/xen/tools/libs/light/libxl_uuid.c:79,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_uuid.c:80,1
    - Dst: uuid_enc_be
      Src: /src/xen/tools/libs/light/libxl_uuid.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts:
    - condition: (status == uuid_s_ok)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/xen/tools/libs/light/libxl_uuid.c
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: libxl_uuid_generate
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 2
    functionsReached:
    - uuid_enc_be
    - assert
    - uuid_create
    linkageType: ''
    returnType: void
    signature: void libxl_uuid_generate(libxl_uuid *uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uuid_from_string
      Src: /src/xen/tools/libs/light/libxl_uuid.c:90,1
    - Dst: uuid_enc_be
      Src: /src/xen/tools/libs/light/libxl_uuid.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - uuid
    - in
    argTypes:
    - libxl_uuid*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: libxl_uuid_from_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 3
    functionsReached:
    - uuid_enc_be
    - uuid_from_string
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_from_string(libxl_uuid *uuid, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_uuid.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx_opt
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_uuid*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: libxl_uuid_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libxl_uuid_copy(libxl_ctx *ctx_opt, libxl_uuid *dst,\n                     const
      libxl_uuid *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_uuid.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: libxl_uuid_clear
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libxl_uuid_clear(libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_dec_be
      Src: /src/xen/tools/libs/light/libxl_uuid.c:113,1
    - Dst: uuid_dec_be
      Src: /src/xen/tools/libs/light/libxl_uuid.c:114,1
    - Dst: uuid_compare
      Src: /src/xen/tools/libs/light/libxl_uuid.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - uuid1
    - uuid2
    argTypes:
    - libxl_uuid*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: libxl_uuid_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached:
    - uuid_compare
    - uuid_dec_be
    linkageType: ''
    returnType: int
    signature: int libxl_uuid_compare(const libxl_uuid *uuid1, const libxl_uuid *uuid2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: libxl_uuid_bytearray_const
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *libxl_uuid_bytearray_const(const libxl_uuid *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: libxl_uuid_bytearray
    functionSourceFile: /src/xen/tools/libs/light/libxl_uuid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *libxl_uuid_bytearray(libxl_uuid *uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:55,1
    - Dst: vasprintf
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:64,1
    - Dst: perror
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:65,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:65,1
    - Dst: helper_stub_log
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:66,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - logger_in
    - level
    - errnoval
    - context
    - format
    - al
    argTypes:
    - xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: tellparent_vmessage
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - helper_stub_log
    - vasprintf
    - free
    - exit
    - format
    - perror
    linkageType: ''
    returnType: void
    signature: "void tellparent_vmessage(xentoollog_logger *logger_in,\n                                xentoollog_level
      level,\n                                int errnoval,\n                                const
      char *context,\n                                const char *format,\n                                va_list
      al)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_stub_progress
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - logger_in
    - context
    - doing_what
    - percent
    - done
    - total
    argTypes:
    - struct xentoollog_logger*
    - char*
    - char*
    - int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: tellparent_progress
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - helper_stub_progress
    linkageType: ''
    returnType: void
    signature: "void tellparent_progress(struct xentoollog_logger *logger_in,\n                                const
      char *context,\n                                const char *doing_what, int
      percent,\n                                unsigned long done, unsigned long
      total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - logger_in
    argTypes:
    - struct xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: tellparent_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void tellparent_destroy(struct xentoollog_logger *logger_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:101,1
    - Dst: xtl_logv
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:102,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - errnoval
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: fail
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 23
    functionsReached:
    - exit
    - va_start
    - xtl_logv
    linkageType: ''
    returnType: void
    signature: void fail(int errnoval, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:110,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (r <= len)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: read_exactly
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 1
    functionsReached:
    - read
    - assert
    linkageType: ''
    returnType: int
    signature: int read_exactly(int fd, void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:122,1
    - Dst: perror
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:123,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: xmalloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - exit
    - malloc
    - perror
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dup2
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:151,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: save_signal_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - dup2
    - abort
    linkageType: ''
    returnType: void
    signature: void save_signal_handler(int num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:167,1
    - Dst: fail
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:168,1
    - Dst: LIBXL_FILLZERO
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:170,1
    - Dst: sigemptyset
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:172,1
    - Dst: sigaction
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:173,1
    - Dst: fail
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:174,1
    - Dst: sigemptyset
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:176,1
    - Dst: sigaddset
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:177,1
    - Dst: sigprocmask
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:178,1
    - Dst: fail
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 180
    functionName: setup_signals
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - LIBXL_FILLZERO
    - fail
    - open
    - sigaction
    - sigprocmask
    - sigemptyset
    - sigaddset
    linkageType: ''
    returnType: void
    signature: void setup_signals(void (*handler)(int))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - len
    - user
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: helper_allocbuf
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * helper_allocbuf(int len, void *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:192,1
    - Dst: perror
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:193,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:193,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:194,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - msg
    - len
    - user
    argTypes:
    - unsigned char*
    - int
    - void*
    assertStmts:
    - condition: (r <= len)
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    - condition: (r >= 0)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: transmit
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - exit
    - assert
    - write
    - perror
    linkageType: ''
    returnType: void
    signature: void transmit(const unsigned char *msg, int len, void *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:203,1
    - Dst: transmit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:205,1
    - Dst: transmit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:206,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - msg_freed
    - len_in
    - user
    argTypes:
    - unsigned char*
    - int
    - void*
    assertStmts:
    - condition: (len_in < 64*1024)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: helper_transmitmsg
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - free
    - assert
    - transmit
    linkageType: ''
    returnType: void
    signature: void helper_transmitmsg(unsigned char *msg_freed, int len_in, void
      *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_exactly
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:213,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - user
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: helper_getreply
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - exit
    - read_exactly
    linkageType: ''
    returnType: int
    signature: int helper_getreply(void *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xtl_log
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:221,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:223,1
    - Dst: fail
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: startup
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 0
    functionsReached:
    - xtl_log
    - xc_interface_open
    - fail
    linkageType: ''
    returnType: void
    signature: void startup(const char *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xtl_log
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:229,1
    - Dst: helper_stub_complete
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:230,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:231,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - retval
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 37
    functionsReached:
    - xc_interface_close
    - xtl_log
    - helper_stub_complete
    - exit
    linkageType: ''
    returnType: void
    signature: void complete(int retval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:243,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:245,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:248,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:249,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:250,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:251,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:252,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:253,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:254,1
    - Dst: helper_setcallbacks_save
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:256,1
    - Dst: startup
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:258,1
    - Dst: setup_signals
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:259,1
    - Dst: xc_domain_save
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:261,1
    - Dst: complete
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:262,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:264,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:267,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:268,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:269,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:270,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:271,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:272,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:273,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:274,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:275,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:276,1
    - Dst: helper_setcallbacks_restore
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:278,1
    - Dst: startup
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:283,1
    - Dst: setup_signals
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:284,1
    - Dst: xc_domain_restore
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:286,1
    - Dst: helper_stub_restore_results
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:289,1
    - Dst: complete
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:290,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_helper.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (!*++argv)
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    - condition: (!*++argv)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    - condition: (mode)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    - condition: (!"unexpected mode argument")
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
    constantsTouched: []
    func_position:
      end: 295
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 295
    functionName: main
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_helper.c
    functionUses: 12
    functionsReached:
    - setup_signals
    - helper_setcallbacks_restore
    - strcmp
    - complete
    - xc_domain_restore
    - xc_domain_save
    - helper_setcallbacks_save
    - atoi
    - helper_stub_restore_results
    - startup
    - strtoul
    - assert
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:48,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:50,1
    - Dst: NLMSG_SPACE
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:55,1
    - Dst: sendmsg
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:74,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:76,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - cps
    - buff
    - size
    - type
    argTypes:
    - libxl__colo_proxy_state*
    - uint8_t*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 81
    functionName: colo_proxy_send
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - sendmsg
    - NLMSG_SPACE
    - strerror
    - memset
    linkageType: ''
    returnType: int
    signature: "int colo_proxy_send(libxl__colo_proxy_state *cps, uint8_t *buff,\n
      \                          uint64_t size, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:90,1
    - Dst: send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:91,1
    - Dst: send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cps
    - buff
    - size
    argTypes:
    - libxl__colo_proxy_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 103
    functionName: colo_userspace_proxy_send
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 0
    functionsReached:
    - send
    - htonl
    linkageType: ''
    returnType: int
    signature: "int colo_userspace_proxy_send(libxl__colo_proxy_state *cps,\n                                     uint8_t
      *buff,\n                                     uint32_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:114,1
    - Dst: setsockopt
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:119,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:122,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:124,1
    - Dst: recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:128,1
    - Dst: ntohl
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:133,1
    - Dst: recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - cps
    - buff
    - timeout_us
    argTypes:
    - libxl__colo_proxy_state*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: colo_userspace_proxy_recv
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - recv
    - setsockopt
    - ntohl
    - strerror
    linkageType: ''
    returnType: int
    signature: "int colo_userspace_proxy_recv(libxl__colo_proxy_state *cps,\n                                     char
      *buff,\n                                     unsigned int timeout_us)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:157,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:158,1
    - Dst: setsockopt
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:163,1
    - Dst: recvmsg
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:169,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:172,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:179,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:190,1
    - Dst: setsockopt
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - cps
    - buff
    - timeout_us
    argTypes:
    - libxl__colo_proxy_state*
    - uint8_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 200
    functionName: colo_proxy_recv
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__realloc
    - free
    - setsockopt
    - LOGED
    - libxl__malloc
    - recvmsg
    linkageType: ''
    returnType: int64_t
    signature: "int64_t colo_proxy_recv(libxl__colo_proxy_state *cps, uint8_t **buff,\n
      \                              unsigned int timeout_us)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:214,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:223,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:224,1
    - Dst: htons
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:226,1
    - Dst: inet_addr
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:227,1
    - Dst: socket
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:229,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:231,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:232,1
    - Dst: connect
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:238,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:239,1
    - Dst: colo_userspace_proxy_send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:243,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:243,1
    - Dst: colo_userspace_proxy_recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:247,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:249,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:250,1
    - Dst: socket
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:257,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:259,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:259,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:263,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:270,1
    - Dst: bind
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:274,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:276,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:279,1
    - Dst: colo_proxy_send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:284,1
    - Dst: colo_proxy_recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:289,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:291,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:292,1
    - Dst: NLMSG_DATA
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:300,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:303,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:308,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:317,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:319,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 1
    argNames:
    - cps
    argTypes:
    - libxl__colo_proxy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 323
    functionName: colo_proxy_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 2
    functionsReached:
    - bind
    - STATE_AO_GC
    - inet_addr
    - LOGD
    - colo_userspace_proxy_send
    - colo_userspace_proxy_recv
    - free
    - socket
    - connect
    - colo_proxy_recv
    - close
    - strerror
    - colo_proxy_send
    - strlen
    - htons
    - memset
    - atoi
    - NLMSG_DATA
    linkageType: ''
    returnType: int
    signature: int colo_proxy_setup(libxl__colo_proxy_state *cps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cps
    argTypes:
    - libxl__colo_proxy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: colo_proxy_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void colo_proxy_teardown(libxl__colo_proxy_state *cps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: colo_userspace_proxy_send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:350,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:352,1
    - Dst: colo_proxy_send
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cps
    argTypes:
    - libxl__colo_proxy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: colo_proxy_preresume
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 2
    functionsReached:
    - colo_proxy_send
    - colo_userspace_proxy_send
    - strlen
    linkageType: ''
    returnType: void
    signature: void colo_proxy_preresume(libxl__colo_proxy_state *cps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cps
    argTypes:
    - libxl__colo_proxy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: colo_proxy_postresume
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void colo_proxy_postresume(libxl__colo_proxy_state *cps)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:385,1
    - Dst: colo_userspace_proxy_recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:396,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:402,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:405,1
    - Dst: colo_proxy_recv
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:411,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:422,1
    - Dst: NLMSG_LENGTH
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:426,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:427,1
    - Dst: NLMSG_DATA
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:431,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_colo_proxy.c:436,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - cps
    - timeout_us
    argTypes:
    - libxl__colo_proxy_state*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 438
    functionName: colo_proxy_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_colo_proxy.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - NLMSG_LENGTH
    - free
    - strcmp
    - colo_proxy_recv
    - colo_userspace_proxy_recv
    - NLMSG_DATA
    linkageType: ''
    returnType: int
    signature: "int colo_proxy_checkpoint(libxl__colo_proxy_state *cps,\n                          unsigned
      int timeout_us)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:31,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_dom.c:35,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom.c:37,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:41,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:42,1
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_dom.c:47,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:49,1
    - Dst: libxl_domain_type_from_string
      Src: /src/xen/tools/libs/light/libxl_dom.c:55,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: libxl__domain_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 13
    functionsReached:
    - GCSPRINTF
    - libxl_domain_type_from_string
    - libxl__xs_libxl_path
    - LOGED
    - libxl__xs_read_mandatory
    - LOG
    - xc_domain_getinfo_single
    - libxl__gc_owner
    linkageType: ''
    returnType: libxl_domain_type
    signature: libxl_domain_type libxl__domain_type(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_dom.c:73,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: libxl__domain_cpupool
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - xc_domain_getinfo_single
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl__domain_cpupool(libxl__gc *gc, uint32_t domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_cpupool
      Src: /src/xen/tools/libs/light/libxl_dom.c:84,1
    - Dst: libxl_cpupoolinfo_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:92,1
    - Dst: libxl_cpupool_info
      Src: /src/xen/tools/libs/light/libxl_dom.c:93,1
    - Dst: libxl_cpupoolinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: libxl__domain_scheduler
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl_cpupoolinfo_dispose
    - libxl__domain_cpupool
    - libxl_cpupoolinfo_init
    - libxl_cpupool_info
    linkageType: ''
    returnType: libxl_scheduler
    signature: libxl_scheduler libxl__domain_scheduler(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - libxl__numa_candidate*
    - libxl__numa_candidate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: numa_cmpf
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int numa_cmpf(const libxl__numa_candidate *c1,\n                     const
      libxl__numa_candidate *c2)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libxl__numa_candidate_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:145,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:146,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:147,1
    - Dst: libxl_cpupoolinfo_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:148,1
    - Dst: libxl__domain_cpupool
      Src: /src/xen/tools/libs/light/libxl_dom.c:155,1
    - Dst: libxl_cpupool_info
      Src: /src/xen/tools/libs/light/libxl_dom.c:158,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:174,1
    - Dst: libxl_bitmap_equal
      Src: /src/xen/tools/libs/light/libxl_dom.c:174,1
    - Dst: libxl_bitmap_and
      Src: /src/xen/tools/libs/light/libxl_dom.c:178,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/libs/light/libxl_dom.c:184,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:185,1
    - Dst: libxl__domain_need_memory_calculate
      Src: /src/xen/tools/libs/light/libxl_dom.c:191,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:194,1
    - Dst: libxl__get_numa_candidate
      Src: /src/xen/tools/libs/light/libxl_dom.c:201,1
    - Dst: libxl__numa_candidate_get_nodemap
      Src: /src/xen/tools/libs/light/libxl_dom.c:212,1
    - Dst: libxl_cpumap_to_nodemap
      Src: /src/xen/tools/libs/light/libxl_dom.c:216,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_dom.c:221,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_dom.c:222,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/libs/light/libxl_dom.c:223,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:226,1
    - Dst: libxl__numa_candidate_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:231,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:232,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:233,1
    - Dst: libxl_cpupoolinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:234,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - gc
    - domid
    - d_config
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    assertStmts:
    - condition: "(libxl_bitmap_equal(&info->vcpu_hard_affinity[0],\n                                      &info->vcpu_hard_affinity[j],
        0))"
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    constantsTouched: []
    func_position:
      end: 236
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 236
    functionName: numa_place_domain
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl__numa_candidate_get_nodemap
    - libxl_bitmap_and
    - libxl_bitmap_test
    - libxl_bitmap_dispose
    - libxl__numa_candidate_init
    - libxl_cpupool_info
    - libxl_bitmap_reset
    - libxl_bitmap_init
    - libxl_for_each_set_bit
    - libxl_cpupoolinfo_dispose
    - LOG
    - libxl__get_numa_candidate
    - libxl_bitmap_equal
    - libxl__domain_cpupool
    - libxl__domain_need_memory_calculate
    - libxl_cpumap_to_nodemap
    - libxl_bitmap_is_empty
    - libxl_cpupoolinfo_init
    - libxl__numa_candidate_dispose
    - libxl_node_bitmap_alloc
    - assert
    linkageType: ''
    returnType: int
    signature: "int numa_place_domain(libxl__gc *gc, uint32_t domid,\n                             libxl_domain_config
      *d_config)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:242,1
    - Dst: xc_domain_max_vcpus
      Src: /src/xen/tools/libs/light/libxl_dom.c:247,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:248,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom.c:266,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:268,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:271,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:276,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/libs/light/libxl_dom.c:279,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:281,1
    - Dst: numa_place_domain
      Src: /src/xen/tools/libs/light/libxl_dom.c:285,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:287,1
    - Dst: libxl_nodemap_to_cpumap
      Src: /src/xen/tools/libs/light/libxl_dom.c:300,1
    - Dst: libxl_set_vcpuaffinity_all
      Src: /src/xen/tools/libs/light/libxl_dom.c:301,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:304,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl_dom.c:313,1
    - Dst: libxl_domain_set_nodeaffinity
      Src: /src/xen/tools/libs/light/libxl_dom.c:318,1
    - Dst: libxl_set_vcpuaffinity
      Src: /src/xen/tools/libs/light/libxl_dom.c:343,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:345,1
    - Dst: libxl__arch_extra_memory
      Src: /src/xen/tools/libs/light/libxl_dom.c:352,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:354,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/libs/light/libxl_dom.c:358,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:359,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_dom.c:363,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_dom.c:364,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dom.c:365,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_dom.c:367,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_dom.c:368,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dom.c:369,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/libs/light/libxl_dom.c:371,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/libs/light/libxl_dom.c:372,1
    - Dst: libxl__arch_domain_create
      Src: /src/xen/tools/libs/light/libxl_dom.c:374,1
    - Dst: libxl__cpuid_legacy
      Src: /src/xen/tools/libs/light/libxl_dom.c:381,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 385
    functionName: libxl__build_pre
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 2
    functionsReached:
    - xs_read
    - xc_domain_max_vcpus
    - xc_evtchn_alloc_unbound
    - numa_place_domain
    - libxl_defbool_val
    - xc_domain_setmaxmem
    - libxl_bitmap_dispose
    - libxl_set_vcpuaffinity_all
    - free
    - libxl__arch_domain_create
    - libxl_domain_set_nodeaffinity
    - libxl_nodemap_to_cpumap
    - LOGE
    - libxl__arch_extra_memory
    - libxl_set_vcpuaffinity
    - LOG
    - libxl__gc_owner
    - libxl_bitmap_set_any
    - libxl_cpu_bitmap_alloc
    - libxl__cpuid_legacy
    - libxl_defbool_set
    - libxl_node_bitmap_alloc
    - atoi
    linkageType: ''
    returnType: int
    signature: "int libxl__build_pre(libxl__gc *gc, uint32_t domid,\n              libxl_domain_config
      *d_config, libxl__domain_build_state *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:395,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:397,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:399,1
    - Dst: libxl_node_to_cpumap
      Src: /src/xen/tools/libs/light/libxl_dom.c:410,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:412,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_dom.c:416,1
    - Dst: libxl_set_vcpuaffinity
      Src: /src/xen/tools/libs/light/libxl_dom.c:417,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:419,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - gc
    - domid
    - info
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 387
    functionDepth: 4
    functionLinenumber: 387
    functionLinenumberEnd: 428
    functionName: set_vnuma_affinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_dispose
    - libxl_for_each_set_bit
    - libxl_bitmap_init
    - libxl_cpu_bitmap_alloc
    - libxl_set_vcpuaffinity
    - LOG
    - libxl_node_to_cpumap
    linkageType: ''
    returnType: int
    signature: "int set_vnuma_affinity(libxl__gc *gc, uint32_t domid,\n                              libxl_domain_build_info
      *info)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:435,1
    - Dst: set_vnuma_affinity
      Src: /src/xen/tools/libs/light/libxl_dom.c:442,1
    - Dst: libxl_domain_sched_params_set
      Src: /src/xen/tools/libs/light/libxl_dom.c:447,1
    - Dst: libxl_ms_vm_genid_is_zero
      Src: /src/xen/tools/libs/light/libxl_dom.c:452,1
    - Dst: libxl__ms_vm_genid_set
      Src: /src/xen/tools/libs/light/libxl_dom.c:453,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:456,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:461,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:463,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:465,1
    - Dst: libxl__get_targetmem_fudge
      Src: /src/xen/tools/libs/light/libxl_dom.c:466,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:468,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:470,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:472,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:474,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:476,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_dom.c:477,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dom.c:481,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_dom.c:486,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:486,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_dom.c:488,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_dom.c:490,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_dom.c:491,1
    - Dst: libxl__xs_writev
      Src: /src/xen/tools/libs/light/libxl_dom.c:492,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_dom.c:494,1
    - Dst: xs_get_features_supported
      Src: /src/xen/tools/libs/light/libxl_dom.c:501,1
    - Dst: xs_set_features_domain
      Src: /src/xen/tools/libs/light/libxl_dom.c:502,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom.c:504,1
    - Dst: xs_introduce_domain
      Src: /src/xen/tools/libs/light/libxl_dom.c:510,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dom.c:513,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 6
    argNames:
    - gc
    - domid
    - info
    - state
    - vms_ents
    - local_ents
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 515
    functionName: libxl__build_post
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 2
    functionsReached:
    - xs_read
    - xs_transaction_start
    - LOGED
    - libxl_bitmap_test
    - xs_get_features_supported
    - free
    - libxl__calloc
    - xs_transaction_end
    - libxl__get_targetmem_fudge
    - set_vnuma_affinity
    - GCSPRINTF
    - libxl_domain_sched_params_set
    - libxl__ms_vm_genid_set
    - LOG
    - libxl__gc_owner
    - xs_introduce_domain
    - libxl__xs_get_dompath
    - libxl__xs_writev
    - xs_set_features_domain
    - libxl_ms_vm_genid_is_zero
    linkageType: ''
    returnType: int
    signature: "int libxl__build_post(libxl__gc *gc, uint32_t domid,\n                      libxl_domain_build_info
      *info,\n                      libxl__domain_build_state *state,\n                      char
      **vms_ents, char **local_ents)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:525,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:527,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:531,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_dom.c:541,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:545,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_dom.c:546,1
    - Dst: xc_domain_setvnuma
      Src: /src/xen/tools/libs/light/libxl_dom.c:551,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - gc
    - domid
    - info
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts:
    - condition: (info->num_vnuma_nodes == v->num_distances)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    constantsTouched: []
    func_position:
      end: 560
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 560
    functionName: set_vnuma_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl__calloc
    - libxl_for_each_set_bit
    - LOGE
    - xc_domain_setvnuma
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int set_vnuma_info(libxl__gc *gc, uint32_t domid,\n                          const
      libxl_domain_build_info *info,\n                          const libxl__domain_build_state
      *state)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_boot_xen_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:570,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:571,1
    - Dst: xc_dom_rambase_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:575,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:576,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/tools/libs/light/libxl_dom.c:580,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:581,1
    - Dst: libxl__arch_domain_init_hw_description
      Src: /src/xen/tools/libs/light/libxl_dom.c:584,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:585,1
    - Dst: xc_dom_mem_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:591,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:592,1
    - Dst: xc_dom_boot_mem_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:595,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:596,1
    - Dst: libxl__arch_domain_finalise_hw_description
      Src: /src/xen/tools/libs/light/libxl_dom.c:599,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:600,1
    - Dst: xc_dom_build_image
      Src: /src/xen/tools/libs/light/libxl_dom.c:603,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:604,1
    - Dst: xc_dom_boot_image
      Src: /src/xen/tools/libs/light/libxl_dom.c:607,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:608,1
    - Dst: xc_dom_gnttab_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:611,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:612,1
    - Dst: libxl__arch_build_dom_finish
      Src: /src/xen/tools/libs/light/libxl_dom.c:615,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:616,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 5
    argNames:
    - gc
    - domid
    - d_config
    - state
    - dom
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 622
    functionName: libxl__build_dom
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl__arch_build_dom_finish
    - xc_dom_boot_xen_init
    - xc_dom_build_image
    - libxl__arch_domain_init_hw_description
    - xc_dom_boot_image
    - xc_dom_rambase_init
    - xc_dom_mem_init
    - xc_dom_boot_mem_init
    - LOGE
    - xc_dom_gnttab_init
    - LOG
    - xc_dom_parse_image
    - libxl__arch_domain_finalise_hw_description
    linkageType: ''
    returnType: int
    signature: "int libxl__build_dom(libxl__gc *gc, uint32_t domid,\n             libxl_domain_config
      *d_config, libxl__domain_build_state *state,\n             struct xc_dom_image
      *dom)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:627,1
    - Dst: xc_dom_loginit
      Src: /src/xen/tools/libs/light/libxl_dom.c:633,1
    - Dst: xc_dom_allocate
      Src: /src/xen/tools/libs/light/libxl_dom.c:635,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:637,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:643,1
    - Dst: xc_dom_kernel_mem
      Src: /src/xen/tools/libs/light/libxl_dom.c:646,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:650,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:654,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:656,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_dom.c:661,1
    - Dst: xc_dom_module_mem
      Src: /src/xen/tools/libs/light/libxl_dom.c:663,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:664,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:668,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:669,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom.c:680,1
    - Dst: libxl__vnuma_build_vmemrange_pv
      Src: /src/xen/tools/libs/light/libxl_dom.c:686,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:688,1
    - Dst: libxl__vnuma_config_check
      Src: /src/xen/tools/libs/light/libxl_dom.c:691,1
    - Dst: set_vnuma_info
      Src: /src/xen/tools/libs/light/libxl_dom.c:694,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:698,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:709,1
    - Dst: libxl__build_dom
      Src: /src/xen/tools/libs/light/libxl_dom.c:715,1
    - Dst: xc_dom_translated
      Src: /src/xen/tools/libs/light/libxl_dom.c:719,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/light/libxl_dom.c:724,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/light/libxl_dom.c:725,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/libs/light/libxl_dom.c:730,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 732
    functionName: libxl__build_pv
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 1
    functionsReached:
    - xc_dom_module_mem
    - xc_dom_loginit
    - xc_dom_translated
    - strlen
    - set_vnuma_info
    - xc_dom_kernel_mem
    - libxl_defbool_val
    - xc_dom_kernel_file
    - xc_dom_release
    - xc_dom_p2m
    - LOGE
    - xc_dom_module_file
    - LOG
    - libxl__gc_owner
    - xc_dom_allocate
    - libxl__vnuma_build_vmemrange_pv
    - libxl__build_dom
    - libxl__vnuma_config_check
    - xc_dom_malloc
    linkageType: ''
    returnType: int
    signature: "int libxl__build_pv(libxl__gc *gc, uint32_t domid,\n             libxl_domain_config
      *d_config, libxl__domain_build_state *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/light/libxl_dom.c:742,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom.c:749,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_dom.c:751,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_dom.c:752,1
    - Dst: munmap
      Src: /src/xen/tools/libs/light/libxl_dom.c:756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - handle
    - domid
    - info
    argTypes:
    - xc_interface*
    - uint32_t
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 760
    functionName: hvm_build_set_params
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - munmap
    - xc_map_foreign_range
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvm_build_set_params(xc_interface *handle, uint32_t domid,\n                                libxl_domain_build_info
      *info)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:772,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:774,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:779,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:781,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom.c:791,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:795,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:799,1
    - Dst: libxl_smbios_type_to_string
      Src: /src/xen/tools/libs/light/libxl_dom.c:800,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_dom.c:805,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom.c:811,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:813,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:822,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:824,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:829,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:831,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:838,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom.c:840,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom.c:841,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:849,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 4
    argNames:
    - gc
    - domid
    - dom
    - info
    argTypes:
    - libxl__gc*
    - uint32_t
    - struct xc_dom_image*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 851
    functionName: hvm_build_set_xs_values
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - LOGD
    - libxl_smbios_type_to_string
    - libxl__xs_printf
    - strrchr
    - LOG
    linkageType: ''
    returnType: int
    signature: "int hvm_build_set_xs_values(libxl__gc *gc,\n                                   uint32_t
      domid,\n                                   struct xc_dom_image *dom,\n                                   const
      libxl_domain_build_info *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:862,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/libs/light/libxl_dom.c:863,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_dom.c:870,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_dom.c:874,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - gc
    - filename
    - what
    - m
    argTypes:
    - libxl__gc*
    - char*
    - char*
    - struct xc_hvm_firmware_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 887
    functionName: libxl__load_hvm_firmware_module
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl__ptr_add
    - libxl_read_file_contents
    - LOG
    - LOGEV
    linkageType: ''
    returnType: int
    signature: "int libxl__load_hvm_firmware_module(libxl__gc *gc,\n                                           const
      char *filename,\n                                           const char *what,\n
      \                                          struct xc_hvm_firmware_module *m)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:894,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:911,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:923,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:925,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:931,1
    - Dst: xc_dom_module_mem
      Src: /src/xen/tools/libs/light/libxl_dom.c:933,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:936,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:940,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:942,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:944,1
    - Dst: xc_dom_kernel_mem
      Src: /src/xen/tools/libs/light/libxl_dom.c:951,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:954,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:958,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:960,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_dom.c:966,1
    - Dst: xc_dom_module_mem
      Src: /src/xen/tools/libs/light/libxl_dom.c:968,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:971,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:975,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:977,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:987,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:988,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:988,1
    - Dst: libxl__xenfirmwaredir_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:989,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:993,1
    - Dst: libxl__seabios_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1004,1
    - Dst: libxl__ovmf_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1007,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_dom.c:1011,1
    - Dst: libxl__load_hvm_firmware_module
      Src: /src/xen/tools/libs/light/libxl_dom.c:1017,1
    - Dst: libxl__ipxe_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1024,1
    - Dst: libxl__ipxe_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1025,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:1026,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1029,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/libs/light/libxl_dom.c:1038,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_dom.c:1041,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_dom.c:1046,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/libs/light/libxl_dom.c:1057,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_dom.c:1060,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_dom.c:1065,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:1075,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 152
    argCount: 4
    argNames:
    - gc
    - info
    - state
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts:
    - condition: (rc != 0)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    - condition: (info->type == LIBXL_DOMAIN_TYPE_HVM)
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    constantsTouched: []
    func_position:
      end: 1077
      start: 889
    functionDepth: 3
    functionLinenumber: 889
    functionLinenumberEnd: 1077
    functionName: libxl__domain_firmware
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - xc_dom_module_mem
    - strlen
    - libxl__ovmf_path
    - xc_dom_kernel_mem
    - abort
    - libxl__load_hvm_firmware_module
    - xc_dom_kernel_file
    - LOGEV
    - LOGE
    - libxl__ptr_add
    - xc_dom_module_file
    - libxl__ipxe_path
    - libxl__xenfirmwaredir_path
    - libxl_read_file_contents
    - LOG
    - libxl__gc_owner
    - libxl__abs_path
    - assert
    - libxl__seabios_path
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_firmware(libxl__gc *gc,\n                                  libxl_domain_build_info
      *info,\n                                  libxl__domain_build_state *state,\n
      \                                 struct xc_dom_image *dom)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:1083,1
    - Dst: xc_dom_loginit
      Src: /src/xen/tools/libs/light/libxl_dom.c:1090,1
    - Dst: xc_dom_allocate
      Src: /src/xen/tools/libs/light/libxl_dom.c:1097,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1101,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom.c:1115,1
    - Dst: libxl__domain_firmware
      Src: /src/xen/tools/libs/light/libxl_dom.c:1124,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1126,1
    - Dst: min_t
      Src: /src/xen/tools/libs/light/libxl_dom.c:1144,1
    - Dst: min_t
      Src: /src/xen/tools/libs/light/libxl_dom.c:1145,1
    - Dst: GB
      Src: /src/xen/tools/libs/light/libxl_dom.c:1146,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:1148,1
    - Dst: libxl__domain_device_construct_rdm
      Src: /src/xen/tools/libs/light/libxl_dom.c:1170,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1174,1
    - Dst: libxl__vnuma_build_vmemrange_hvm
      Src: /src/xen/tools/libs/light/libxl_dom.c:1181,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1183,1
    - Dst: libxl__vnuma_config_check
      Src: /src/xen/tools/libs/light/libxl_dom.c:1186,1
    - Dst: set_vnuma_info
      Src: /src/xen/tools/libs/light/libxl_dom.c:1188,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:1192,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_dom.c:1203,1
    - Dst: libxl__build_dom
      Src: /src/xen/tools/libs/light/libxl_dom.c:1209,1
    - Dst: hvm_build_set_params
      Src: /src/xen/tools/libs/light/libxl_dom.c:1213,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1215,1
    - Dst: hvm_build_set_xs_values
      Src: /src/xen/tools/libs/light/libxl_dom.c:1223,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1225,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/libs/light/libxl_dom.c:1229,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:1233,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/libs/light/libxl_dom.c:1234,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 111
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl__domain_build_state*
    assertStmts:
    - condition: (rc != 0)
      pos:
        line_end: 1232
        line_start: 1232
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    - condition: (1)
      pos:
        line_end: 1147
        line_start: 1147
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    constantsTouched: []
    func_position:
      end: 1236
      start: 1079
    functionDepth: 4
    functionLinenumber: 1079
    functionLinenumberEnd: 1236
    functionName: libxl__build_hvm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 1
    functionsReached:
    - xc_dom_loginit
    - set_vnuma_info
    - libxl_defbool_val
    - libxl__domain_device_construct_rdm
    - xc_dom_release
    - GB
    - libxl__vnuma_build_vmemrange_hvm
    - LOGE
    - libxl__malloc
    - libxl__domain_firmware
    - hvm_build_set_params
    - min_t
    - LOG
    - libxl__gc_owner
    - hvm_build_set_xs_values
    - xc_dom_allocate
    - libxl__build_dom
    - libxl__vnuma_config_check
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__build_hvm(libxl__gc *gc, uint32_t domid,\n              libxl_domain_config
      *d_config,\n              libxl__domain_build_state *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:1242,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_dom.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - uuid
    argTypes:
    - libxl__gc*
    - libxl_uuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1243
    functionName: libxl__uuid2string
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 3
    functionsReached:
    - LIBXL_UUID_BYTES
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dom.c:1249,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_dom.c:1254,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_dom.c:1256,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1258,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:1262,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_dom.c:1262,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom.c:1263,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_dom.c:1267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - gc
    - domid
    - userdata_userid
    - wh
    argTypes:
    - libxl__gc*
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1269
    functionName: libxl__userdata_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - LOGE
    - LIBXL_UUID_BYTES
    - libxl__gc_owner
    linkageType: ''
    returnType: char
    signature: "char *libxl__userdata_path(libxl__gc *gc, uint32_t domid,\n                                 const
      char *userdata_userid,\n                                 const char *wh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_dom.c:1274,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - path
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1280
    functionName: userdata_delete
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - LOGE
    - unlink
    linkageType: ''
    returnType: int
    signature: int userdata_delete(libxl__gc *gc, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1288,1
    - Dst: glob
      Src: /src/xen/tools/libs/light/libxl_dom.c:1295,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1299,1
    - Dst: strstr
      Src: /src/xen/tools/libs/light/libxl_dom.c:1305,1
    - Dst: userdata_delete
      Src: /src/xen/tools/libs/light/libxl_dom.c:1306,1
    - Dst: globfree
      Src: /src/xen/tools/libs/light/libxl_dom.c:1308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1311
    functionName: libxl__userdata_destroyall
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl__userdata_path
    - glob
    - LOGE
    - strstr
    - globfree
    - userdata_delete
    linkageType: ''
    returnType: void
    signature: void libxl__userdata_destroyall(libxl__gc *gc, uint32_t domid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1322,1
    - Dst: userdata_delete
      Src: /src/xen/tools/libs/light/libxl_dom.c:1329,1
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1333,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dom.c:1341,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_dom.c:1345,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dom.c:1348,1
    - Dst: rename
      Src: /src/xen/tools/libs/light/libxl_dom.c:1354,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dom.c:1362,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1367,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - gc
    - domid
    - userdata_userid
    - data
    - datalen
    argTypes:
    - libxl__gc*
    - uint32_t
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1370
    functionName: libxl__userdata_store
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - rename
    - open
    - libxl__userdata_path
    - close
    - LOGE
    - userdata_delete
    - libxl_write_exactly
    linkageType: ''
    returnType: int
    signature: "int libxl__userdata_store(libxl__gc *gc, uint32_t domid,\n                          const
      char *userdata_userid,\n                          const uint8_t *data, int datalen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_dom.c:1376,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_dom.c:1381,1
    - Dst: libxl__userdata_store
      Src: /src/xen/tools/libs/light/libxl_dom.c:1387,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:1390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - domid
    - userdata_userid
    - data
    - datalen
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1396
    functionName: libxl_userdata_store
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__unlock_file
    - libxl__lock_domain_userdata
    - libxl__userdata_store
    linkageType: ''
    returnType: int
    signature: "int libxl_userdata_store(libxl_ctx *ctx, uint32_t domid,\n                              const
      char *userdata_userid,\n                              const uint8_t *data, int
      datalen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1407,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/libs/light/libxl_dom.c:1413,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom.c:1419,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom.c:1420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - gc
    - domid
    - userdata_userid
    - data_r
    - datalen_r
    argTypes:
    - libxl__gc*
    - uint32_t
    - char*
    - uint8_t**
    - int*
    assertStmts:
    - condition: (!*data_r)
      pos:
        line_end: 1419
        line_start: 1419
        source_file: /src/xen/tools/libs/light/libxl_dom.c
    constantsTouched: []
    func_position:
      end: 1431
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1431
    functionName: libxl__userdata_retrieve
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - libxl_read_file_contents
    - LOG
    - libxl__userdata_path
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__userdata_retrieve(libxl__gc *gc, uint32_t domid,\n                             const
      char *userdata_userid,\n                             uint8_t **data_r, int *datalen_r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_dom.c:1437,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_dom.c:1442,1
    - Dst: libxl__userdata_retrieve
      Src: /src/xen/tools/libs/light/libxl_dom.c:1448,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - domid
    - userdata_userid
    - data_r
    - datalen_r
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - uint8_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1457
    functionName: libxl_userdata_retrieve
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__unlock_file
    - libxl__lock_domain_userdata
    - libxl__userdata_retrieve
    linkageType: ''
    returnType: int
    signature: "int libxl_userdata_retrieve(libxl_ctx *ctx, uint32_t domid,\n                                 const
      char *userdata_userid,\n                                 uint8_t **data_r, int
      *datalen_r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_dom.c:1462,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_dom.c:1469,1
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_dom.c:1475,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_dom.c:1480,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dom.c:1481,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_dom.c:1489,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - domid
    - userdata_userid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1493
    functionName: libxl_userdata_unlink
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - unlink
    - libxl__userdata_path
    - libxl__unlock_file
    - LOGE
    - libxl__lock_domain_userdata
    linkageType: ''
    returnType: int
    signature: "int libxl_userdata_unlink(libxl_ctx *ctx, uint32_t domid,\n                          const
      char *userdata_userid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom.c:1504,1
    - Dst: xc_set_paging_mempool_size
      Src: /src/xen/tools/libs/light/libxl_dom.c:1510,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom.c:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - gc
    - d_config
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1519
    functionName: libxl__domain_set_paging_mempool_size
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom.c
    functionUses: 1
    functionsReached:
    - xc_set_paging_mempool_size
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_set_paging_mempool_size(\n    libxl__gc *gc, libxl_domain_config
      *d_config, uint32_t domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_internal.c:27,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:29,1
    - Dst: libxl__log
      Src: /src/xen/tools/libs/light/libxl_internal.c:32,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:34,1
    - Dst: fflush
      Src: /src/xen/tools/libs/light/libxl_internal.c:38,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_internal.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ctx
    - func
    - nmemb
    - size
    argTypes:
    - libxl_ctx*
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: libxl__alloc_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - libxl__log
    - fflush
    - fprintf
    - abort
    linkageType: ''
    returnType: void
    signature: "void libxl__alloc_failed(libxl_ctx *ctx, const char *func,\n                         size_t
      nmemb, size_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_is_real
      Src: /src/xen/tools/libs/light/libxl_internal.c:49,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.c:63,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:64,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - gc
    - ptr
    argTypes:
    - libxl__gc*
    - void*
    assertStmts:
    - condition: (new_maxsize < INT_MAX / sizeof(void*) / 2)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/xen/tools/libs/light/libxl_internal.c
    constantsTouched: []
    func_position:
      end: 74
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 74
    functionName: libxl__ptr_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 7
    functionsReached:
    - realloc
    - assert
    - libxl__gc_is_real
    - libxl__alloc_failed
    linkageType: ''
    returnType: void
    signature: void libxl__ptr_add(libxl__gc *gc, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.c:81,1
    - Dst: libxl__gc_is_real
      Src: /src/xen/tools/libs/light/libxl_internal.c:81,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:86,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts:
    - condition: (libxl__gc_is_real(gc))
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/xen/tools/libs/light/libxl_internal.c
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: libxl__free_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 2
    functionsReached:
    - free
    - assert
    - libxl__gc_is_real
    linkageType: ''
    returnType: void
    signature: void libxl__free_all(libxl__gc *gc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:95,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:96,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - size
    argTypes:
    - libxl__gc*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: libxl__malloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 11
    functionsReached:
    - libxl__ptr_add
    - malloc
    - libxl__alloc_failed
    linkageType: ''
    returnType: void
    signature: void *libxl__malloc(libxl__gc *gc, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:104,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:105,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - size
    argTypes:
    - libxl__gc*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: libxl__zalloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 20
    functionsReached:
    - libxl__ptr_add
    - calloc
    - libxl__alloc_failed
    linkageType: ''
    returnType: void
    signature: void *libxl__zalloc(libxl__gc *gc, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:113,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:114,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - gc
    - nmemb
    - size
    argTypes:
    - libxl__gc*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: libxl__calloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 12
    functionsReached:
    - libxl__ptr_add
    - calloc
    - libxl__alloc_failed
    linkageType: ''
    returnType: void
    signature: void *libxl__calloc(libxl__gc *gc, size_t nmemb, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:122,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:126,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:129,1
    - Dst: libxl__gc_is_real
      Src: /src/xen/tools/libs/light/libxl_internal.c:130,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.c:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - ptr
    - new_size
    argTypes:
    - libxl__gc*
    - void*
    - size_t
    assertStmts:
    - condition: (i < gc->alloc_maxsize)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/xen/tools/libs/light/libxl_internal.c
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: libxl__realloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 8
    functionsReached:
    - libxl__gc_is_real
    - libxl__ptr_add
    - realloc
    - assert
    - libxl__alloc_failed
    linkageType: ''
    returnType: void
    signature: void *libxl__realloc(libxl__gc *gc, void *ptr, size_t new_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/xen/tools/libs/light/libxl_internal.c:149,1
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:150,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_internal.c:151,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.c:153,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:155,1
    - Dst: va_copy
      Src: /src/xen/tools/libs/light/libxl_internal.c:156,1
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:157,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_internal.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - fmt
    - ap
    argTypes:
    - libxl__gc*
    - char*
    - va_list
    assertStmts:
    - condition: (ret >= 0)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/xen/tools/libs/light/libxl_internal.c
    constantsTouched: []
    func_position:
      end: 161
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 161
    functionName: libxl__vsprintf
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - libxl__zalloc
    - vsnprintf
    - va_copy
    - assert
    - va_end
    linkageType: ''
    returnType: char
    signature: char *libxl__vsprintf(libxl__gc *gc, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_internal.c:168,1
    - Dst: libxl__vsprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:169,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_internal.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - fmt
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: libxl__sprintf
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 8
    functionsReached:
    - libxl__vsprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: char
    signature: char *libxl__sprintf(libxl__gc *gc, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_internal.c:181,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:183,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_internal.c:183,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - c
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: libxl__strdup
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 34
    functionsReached:
    - libxl__ptr_add
    - strlen
    - strdup
    - libxl__alloc_failed
    linkageType: ''
    returnType: char
    signature: char *libxl__strdup(libxl__gc *gc, const char *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/xen/tools/libs/light/libxl_internal.c:196,1
    - Dst: libxl__alloc_failed
      Src: /src/xen/tools/libs/light/libxl_internal.c:198,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_internal.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - c
    - n
    argTypes:
    - libxl__gc*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: libxl__strndup
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - libxl__ptr_add
    - strndup
    - libxl__alloc_failed
    linkageType: ''
    returnType: char
    signature: char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_internal.c:207,1
    - Dst: libxl__strndup
      Src: /src/xen/tools/libs/light/libxl_internal.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - s
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: libxl__dirname
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - strrchr
    - libxl__strndup
    linkageType: ''
    returnType: char
    signature: char *libxl__dirname(libxl__gc *gc, const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vasprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:230,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:234,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/libs/light/libxl_internal.c:238,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_internal.c:239,1
    - Dst: xtl_log
      Src: /src/xen/tools/libs/light/libxl_internal.c:241,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 9
    argNames:
    - ctx
    - msglevel
    - errnoval
    - file
    - line
    - func
    - domid
    - fmt
    - ap
    argTypes:
    - libxl_ctx*
    - xentoollog_level
    - int
    - char*
    - int
    - char*
    - uint32_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 247
    functionName: libxl__logv
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - snprintf
    - vasprintf
    - free
    - xtl_log
    - libxl_domid_valid_guest
    linkageType: ''
    returnType: void
    signature: "void libxl__logv(libxl_ctx *ctx, xentoollog_level msglevel, int errnoval,\n
      \            const char *file, int line, const char *func,\n             uint32_t
      domid, const char *fmt, va_list ap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_internal.c:254,1
    - Dst: libxl__logv
      Src: /src/xen/tools/libs/light/libxl_internal.c:255,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_internal.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - ctx
    - msglevel
    - errnoval
    - file
    - line
    - func
    - domid
    - fmt
    argTypes:
    - libxl_ctx*
    - xentoollog_level
    - int
    - char*
    - int
    - char*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: libxl__log
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 5
    functionsReached:
    - libxl__logv
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: "void libxl__log(libxl_ctx *ctx, xentoollog_level msglevel, int errnoval,\n
      \           const char *file, int line, const char *func,\n            uint32_t
      domid, const char *fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_internal.c:261,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_internal.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - s
    - path
    argTypes:
    - libxl__gc*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: libxl__abs_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 4
    functionsReached:
    - libxl__strdup
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__abs_path(libxl__gc *gc, const char *s, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_internal.c:275,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_internal.c:279,1
    - Dst: mmap
      Src: /src/xen/tools/libs/light/libxl_internal.c:284,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_internal.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - f
    argTypes:
    - libxl__file_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 297
    functionName: libxl__file_reference_map
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - fstat
    - open
    - close
    - mmap
    linkageType: ''
    returnType: int
    signature: int libxl__file_reference_map(libxl__file_reference *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/light/libxl_internal.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - libxl__file_reference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: libxl__file_reference_unmap
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: int libxl__file_reference_unmap(libxl__file_reference *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_internal.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - s
    - mac
    argTypes:
    - char*
    - libxl_mac
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: libxl__parse_mac
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 3
    functionsReached:
    - strtol
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__parse_mac(const char *s, libxl_mac mac)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - libxl_mac*
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: libxl__compare_macs
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__compare_macs(libxl_mac *a, libxl_mac *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - mac
    argTypes:
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: libxl__mac_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__mac_is_default(libxl_mac *mac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_internal.c:356,1
    - Dst: pthread_mutexattr_init
      Src: /src/xen/tools/libs/light/libxl_internal.c:360,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:361,1
    - Dst: pthread_mutexattr_settype
      Src: /src/xen/tools/libs/light/libxl_internal.c:365,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:366,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/libs/light/libxl_internal.c:370,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:371,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/xen/tools/libs/light/libxl_internal.c:376,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - lock
    argTypes:
    - libxl_ctx*
    - pthread_mutex_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 379
    functionName: libxl__init_recursive_mutex
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - pthread_mutexattr_init
    - pthread_mutex_init
    - LOGE
    - pthread_mutexattr_destroy
    - pthread_mutexattr_settype
    linkageType: ''
    returnType: _hidden
    signature: _hidden libxl__init_recursive_mutex(libxl_ctx *ctx, pthread_mutex_t
      *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_internal.c:387,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_internal.c:388,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_internal.c:389,1
    - Dst: libxl_device_model_version_from_string
      Src: /src/xen/tools/libs/light/libxl_internal.c:392,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_internal.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: libxl__device_model_version_running
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 4
    functionsReached:
    - libxl_device_model_version_from_string
    - GCSPRINTF
    - LOGD
    - libxl__xs_read
    - libxl__xs_libxl_path
    linkageType: ''
    returnType: int
    signature: int libxl__device_model_version_running(libxl__gc *gc, uint32_t domid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_internal.c:408,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_internal.c:409,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_internal.c:412,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_internal.c:413,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:415,1
    - Dst: libxl__carefd_opened
      Src: /src/xen/tools/libs/light/libxl_internal.c:418,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_internal.c:424,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:431,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_internal.c:438,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:439,1
    - Dst: stat
      Src: /src/xen/tools/libs/light/libxl_internal.c:443,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_internal.c:445,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_internal.c:453,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_internal.c:459,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - gc
    - lockfile
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 461
    functionName: libxl__lock_file
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - open
    - libxl__zalloc
    - stat
    - libxl__carefd_opened
    - flock
    - libxl__strdup
    - libxl__unlock_file
    - LOGE
    - libxl__carefd_close
    - libxl__carefd_begin
    - fstat
    linkageType: ''
    returnType: libxl__flock
    signature: libxl__flock *libxl__lock_file(libxl__gc *gc, const char *lockfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_internal.c:479,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_internal.c:480,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:481,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - libxl__flock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 483
    functionName: libxl__unlock_file
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 14
    functionsReached:
    - libxl__carefd_close
    - free
    - unlink
    linkageType: ''
    returnType: void
    signature: void libxl__unlock_file(libxl__flock *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_internal.c:490,1
    - Dst: libxl__lock_file
      Src: /src/xen/tools/libs/light/libxl_internal.c:493,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_internal.c:498,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_internal.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 504
    functionName: libxl__lock_domain_userdata
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 13
    functionsReached:
    - libxl_domain_info
    - libxl__lock_file
    - libxl__unlock_file
    - libxl__userdata_path
    linkageType: ''
    returnType: libxl__flock
    signature: libxl__flock *libxl__lock_domain_userdata(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domid_history_path
      Src: /src/xen/tools/libs/light/libxl_internal.c:510,1
    - Dst: libxl__lock_file
      Src: /src/xen/tools/libs/light/libxl_internal.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 5
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: libxl__lock_domid_history
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - libxl__lock_file
    - libxl__domid_history_path
    linkageType: ''
    returnType: libxl__flock
    signature: libxl__flock *libxl__lock_domid_history(libxl__gc *gc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__userdata_retrieve
      Src: /src/xen/tools/libs/light/libxl_internal.c:522,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_internal.c:524,1
    - Dst: libxl_domain_config_from_json
      Src: /src/xen/tools/libs/light/libxl_internal.c:535,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - domid
    - d_config
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 540
    functionName: libxl__get_domain_configuration
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 9
    functionsReached:
    - free
    - LOGEVD
    - libxl_domain_config_from_json
    - libxl__userdata_retrieve
    linkageType: ''
    returnType: int
    signature: "int libxl__get_domain_configuration(libxl__gc *gc, uint32_t domid,\n
      \                                   libxl_domain_config *d_config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_to_json
      Src: /src/xen/tools/libs/light/libxl_internal.c:548,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:550,1
    - Dst: libxl__userdata_store
      Src: /src/xen/tools/libs/light/libxl_internal.c:556,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_internal.c:558,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_internal.c:560,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - gc
    - domid
    - d_config
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 568
    functionName: libxl__set_domain_configuration
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 7
    functionsReached:
    - libxl_domain_config_to_json
    - free
    - LOGED
    - libxl__userdata_store
    - strlen
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__set_domain_configuration(libxl__gc *gc, uint32_t domid,\n
      \                                   libxl_domain_config *d_config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type_get_num
      Src: /src/xen/tools/libs/light/libxl_internal.c:582,1
    - Dst: libxl__device_type*::update_config
      Src: /src/xen/tools/libs/light/libxl_internal.c:587,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_internal.c:587,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_internal.c:588,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_internal.c:592,1
    - Dst: libxl__arch_update_domain_config
      Src: /src/xen/tools/libs/light/libxl_internal.c:597,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 598
    functionName: libxl__update_domain_configuration
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - libxl__device_type*::update_config
    - libxl__device_type_get_elem
    - libxl__arch_update_domain_config
    - libxl__device_type_get_num
    - libxl_uuid_copy
    linkageType: ''
    returnType: void
    signature: "void libxl__update_domain_configuration(libxl__gc *gc,\n                                        libxl_domain_config
      *dst,\n                                        const libxl_domain_config *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_internal.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - lock
    - userdata_userid
    argTypes:
    - libxl__ev_slowlock*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: ev_slowlock_init_internal
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - libxl__ev_child_init
    linkageType: ''
    returnType: void
    signature: "void ev_slowlock_init_internal(libxl__ev_slowlock *lock,\n                                      const
      char *userdata_userid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_slowlock_init_internal
      Src: /src/xen/tools/libs/light/libxl_internal.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - libxl__ev_slowlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: libxl__ev_devlock_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - ev_slowlock_init_internal
    linkageType: ''
    returnType: void
    signature: void libxl__ev_devlock_init(libxl__ev_slowlock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ev_slowlock_init_internal
      Src: /src/xen/tools/libs/light/libxl_internal.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - libxl__ev_slowlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 618
    functionName: libxl__ev_qmplock_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - ev_slowlock_init_internal
    linkageType: ''
    returnType: void
    signature: void libxl__ev_qmplock_init(libxl__ev_slowlock *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_internal.c:626,1
    - Dst: libxl__userdata_path
      Src: /src/xen/tools/libs/light/libxl_internal.c:629,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_internal.c:632,1
    - Dst: ev_lock_prepare_fork
      Src: /src/xen/tools/libs/light/libxl_internal.c:634,1
    - Dst: libxl__ev_slowlock*::callback
      Src: /src/xen/tools/libs/light/libxl_internal.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - lock
    argTypes:
    - libxl__egc*
    - libxl__ev_slowlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: libxl__ev_slowlock_lock
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__ev_slowlock*::callback
    - ev_lock_prepare_fork
    - libxl__userdata_path
    - libxl__strdup
    linkageType: ''
    returnType: void
    signature: void libxl__ev_slowlock_lock(libxl__egc *egc, libxl__ev_slowlock *lock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_internal.c:642,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_internal.c:650,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:652,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_internal.c:667,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_internal.c:669,1
    - Dst: ev_lock_child_callback
      Src: /src/xen/tools/libs/light/libxl_internal.c:671,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_internal.c:676,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_internal.c:685,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:692,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_internal.c:699,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_internal.c:704,1
    - Dst: libxl__ev_slowlock_unlock
      Src: /src/xen/tools/libs/light/libxl_internal.c:707,1
    - Dst: libxl__ev_slowlock*::callback
      Src: /src/xen/tools/libs/light/libxl_internal.c:708,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - egc
    - lock
    argTypes:
    - libxl__egc*
    - libxl__ev_slowlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 640
    functionDepth: 7
    functionLinenumber: 640
    functionLinenumberEnd: 709
    functionName: ev_lock_prepare_fork
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - ev_lock_child_callback
    - open
    - libxl__ev_slowlock_unlock
    - libxl__ev_slowlock*::callback
    - flock
    - LOGED
    - libxl_fd_set_cloexec
    - _exit
    - libxl__ev_child_fork
    linkageType: ''
    returnType: void
    signature: void ev_lock_prepare_fork(libxl__egc *egc, libxl__ev_slowlock *lock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_internal.c:715,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_internal.c:725,1
    - Dst: fstat
      Src: /src/xen/tools/libs/light/libxl_internal.c:730,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:731,1
    - Dst: stat
      Src: /src/xen/tools/libs/light/libxl_internal.c:734,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:736,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_internal.c:749,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_internal.c:750,1
    - Dst: ev_lock_prepare_fork
      Src: /src/xen/tools/libs/light/libxl_internal.c:752,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_internal.c:759,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_internal.c:763,1
    - Dst: libxl__ev_slowlock_unlock
      Src: /src/xen/tools/libs/light/libxl_internal.c:765,1
    - Dst: libxl__ev_slowlock*::callback
      Src: /src/xen/tools/libs/light/libxl_internal.c:767,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 711
    functionDepth: 8
    functionLinenumber: 711
    functionLinenumberEnd: 768
    functionName: ev_lock_child_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 1
    functionsReached:
    - libxl_report_child_exitstatus
    - CONTAINER_OF
    - LOGD
    - libxl_domain_info
    - libxl__ev_slowlock_unlock
    - libxl__ev_slowlock*::callback
    - stat
    - ev_lock_prepare_fork
    - flock
    - close
    - LOGED
    - fstat
    linkageType: ''
    returnType: void
    signature: "void ev_lock_child_callback(libxl__egc *egc, libxl__ev_child *child,\n
      \                                  pid_t pid, int status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.c:774,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_internal.c:774,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_internal.c:780,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_internal.c:785,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_internal.c:787,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_internal.c:789,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_internal.c:791,1
    - Dst: ev_slowlock_init_internal
      Src: /src/xen/tools/libs/light/libxl_internal.c:792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - lock
    argTypes:
    - libxl__gc*
    - libxl__ev_slowlock*
    assertStmts:
    - condition: (!libxl__ev_child_inuse(&lock->child))
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/xen/tools/libs/light/libxl_internal.c
    constantsTouched: []
    func_position:
      end: 793
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 793
    functionName: libxl__ev_slowlock_unlock
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 3
    functionsReached:
    - unlink
    - free
    - flock
    - close
    - LOGED
    - ev_slowlock_init_internal
    - libxl__ev_child_inuse
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__ev_slowlock_unlock(libxl__gc *gc, libxl__ev_slowlock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_kill_deregister
      Src: /src/xen/tools/libs/light/libxl_internal.c:797,1
    - Dst: libxl__ev_slowlock_unlock
      Src: /src/xen/tools/libs/light/libxl_internal.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - lock
    argTypes:
    - libxl__gc*
    - libxl__ev_slowlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: libxl__ev_slowlock_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.c
    functionUses: 0
    functionsReached:
    - libxl__ev_slowlock_unlock
    - libxl__ev_child_kill_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__ev_slowlock_dispose(libxl__gc *gc, libxl__ev_slowlock *lock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl.c:28,1
    - Dst: xtl_log
      Src: /src/xen/tools/libs/light/libxl.c:30,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl.c:36,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl.c:44,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:49,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:50,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:51,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:53,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl.c:54,1
    - Dst: XEN_SLIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:57,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl.c:58,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:61,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl.c:62,1
    - Dst: XEN_LIST_INIT
      Src: /src/xen/tools/libs/light/libxl.c:64,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl.c:66,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl.c:67,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl.c:74,1
    - Dst: libxl__init_recursive_mutex
      Src: /src/xen/tools/libs/light/libxl.c:78,1
    - Dst: LIBXL__LOG
      Src: /src/xen/tools/libs/light/libxl.c:79,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:80,1
    - Dst: LIBXL_INIT_GC
      Src: /src/xen/tools/libs/light/libxl.c:87,1
    - Dst: libxl__atfork_init
      Src: /src/xen/tools/libs/light/libxl.c:91,1
    - Dst: libxl__poller_get
      Src: /src/xen/tools/libs/light/libxl.c:94,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/libs/light/libxl.c:100,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl.c:102,1
    - Dst: xs_open
      Src: /src/xen/tools/libs/light/libxl.c:106,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl.c:108,1
    - Dst: libxl__free_all
      Src: /src/xen/tools/libs/light/libxl.c:116,1
    - Dst: libxl_ctx_free
      Src: /src/xen/tools/libs/light/libxl.c:117,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 82
    argCount: 4
    argNames:
    - pctx
    - version
    - flags
    - lg
    argTypes:
    - libxl_ctx**
    - int
    - unsigned
    - xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 120
    functionName: libxl_ctx_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - libxl_ctx_free
    - libxl__ev_xswatch_init
    - xc_interface_open
    - libxl__init_recursive_mutex
    - xtl_log
    - libxl__atfork_init
    - xs_open
    - LIBXL_INIT_GC
    - free
    - malloc
    - LIBXL__LOG
    - libxl__ev_fd_init
    - LOGEV
    - XEN_SLIST_INIT
    - libxl__poller_get
    - libxl__free_all
    - XEN_LIST_INIT
    - memset
    - XEN_TAILQ_INIT
    linkageType: ''
    returnType: int
    signature: "int libxl_ctx_alloc(libxl_ctx **pctx, int version,\n                    unsigned
      flags, xentoollog_logger * lg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl.c:125,1
    - Dst: libxl__evdisable_domain_death
      Src: /src/xen/tools/libs/light/libxl.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - l
    argTypes:
    - libxl__gc*
    - struct libxl__evgen_domain_death_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: free_disable_deaths
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_FIRST
    - libxl__evdisable_domain_death
    linkageType: ''
    returnType: void
    signature: "void free_disable_deaths(libxl__gc *gc,\n                                struct
      libxl__evgen_domain_death_list *l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl.c:132,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/libs/light/libxl.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct libxl__event_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: discard_events
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - libxl_event_free
    - XEN_TAILQ_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void discard_events(struct libxl__event_list *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:141,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:144,1
    - Dst: free_disable_deaths
      Src: /src/xen/tools/libs/light/libxl.c:149,1
    - Dst: free_disable_deaths
      Src: /src/xen/tools/libs/light/libxl.c:150,1
    - Dst: XEN_LIST_FIRST
      Src: /src/xen/tools/libs/light/libxl.c:153,1
    - Dst: libxl__evdisable_disk_eject
      Src: /src/xen/tools/libs/light/libxl.c:154,1
    - Dst: libxl_childproc_setmode
      Src: /src/xen/tools/libs/light/libxl.c:156,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:158,1
    - Dst: libxl__watch_slot_contents
      Src: /src/xen/tools/libs/light/libxl.c:158,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:159,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl.c:159,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:160,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl.c:160,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:161,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl.c:161,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:165,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:165,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:166,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:166,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:167,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:167,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:168,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:168,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/libs/light/libxl.c:170,1
    - Dst: libxl_version_info_dispose
      Src: /src/xen/tools/libs/light/libxl.c:171,1
    - Dst: xs_close
      Src: /src/xen/tools/libs/light/libxl.c:172,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/light/libxl.c:173,1
    - Dst: libxl__poller_put
      Src: /src/xen/tools/libs/light/libxl.c:175,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:177,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:177,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:178,1
    - Dst: XEN_LIST_EMPTY
      Src: /src/xen/tools/libs/light/libxl.c:178,1
    - Dst: XEN_LIST_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl.c:180,1
    - Dst: libxl__poller_dispose
      Src: /src/xen/tools/libs/light/libxl.c:181,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:182,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:185,1
    - Dst: discard_events
      Src: /src/xen/tools/libs/light/libxl.c:187,1
    - Dst: libxl__sigchld_notneeded
      Src: /src/xen/tools/libs/light/libxl.c:192,1
    - Dst: libxl__pipe_close
      Src: /src/xen/tools/libs/light/libxl.c:193,1
    - Dst: pthread_mutex_destroy
      Src: /src/xen/tools/libs/light/libxl.c:196,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts:
    - condition: (!ctx->osevent_in_hook)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_LIST_EMPTY(&ctx->aos_inprogress))
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_LIST_EMPTY(&ctx->pollers_active))
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (!libxl__ev_fd_isregistered(&ctx->sigchld_selfpipe_efd))
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_LIST_EMPTY(&ctx->efds))
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (!libxl__ev_fd_isregistered(&ctx->evtchn_efd))
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_TAILQ_EMPTY(&ctx->etimes))
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (!libxl__watch_slot_contents(gc, i))
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (!libxl__ev_fd_isregistered(&ctx->watch_efd))
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_LIST_EMPTY(&ctx->evtchns_waiting))
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/xen/tools/libs/light/libxl.c
    - condition: (XEN_LIST_EMPTY(&ctx->pollers_event))
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/xen/tools/libs/light/libxl.c
    constantsTouched: []
    func_position:
      end: 201
      start: 136
    functionDepth: 7
    functionLinenumber: 136
    functionLinenumberEnd: 201
    functionName: libxl_ctx_free
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached:
    - XEN_TAILQ_EMPTY
    - free
    - XEN_LIST_EMPTY
    - pthread_mutex_destroy
    - XEN_LIST_FOREACH_SAFE
    - libxl_childproc_setmode
    - libxl_version_info_dispose
    - GC_INIT
    - libxl__poller_dispose
    - libxl__evdisable_disk_eject
    - free_disable_deaths
    - libxl__sigchld_notneeded
    - libxl__ev_fd_isregistered
    - libxl__pipe_close
    - xs_close
    - libxl__watch_slot_contents
    - XEN_LIST_FIRST
    - libxl__poller_put
    - discard_events
    - xc_interface_close
    - assert
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: int libxl_ctx_free(libxl_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:212,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - psl
    argTypes:
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: libxl_string_list_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void libxl_string_list_dispose(libxl_string_list *psl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:223,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/libs/light/libxl.c:231,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl.c:233,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_string_list*
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 240
    functionName: libxl_string_list_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - libxl_string_list_length
    - GC_INIT
    - libxl__strdup
    - libxl__calloc
    linkageType: ''
    returnType: void
    signature: "void libxl_string_list_copy(libxl_ctx *ctx,\n                            libxl_string_list
      *dst,\n                            const libxl_string_list *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - psl
    argTypes:
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: libxl_string_list_length
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_string_list_length(const libxl_string_list *psl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkvl
    argTypes:
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: libxl_key_value_list_length
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_key_value_list_length(const libxl_key_value_list *pkvl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:275,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:278,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pkvl
    argTypes:
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 284
    functionName: libxl_key_value_list_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void libxl_key_value_list_dispose(libxl_key_value_list *pkvl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:290,1
    - Dst: libxl_key_value_list_length
      Src: /src/xen/tools/libs/light/libxl.c:298,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl.c:300,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:303,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_key_value_list*
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 286
    functionDepth: 4
    functionLinenumber: 286
    functionLinenumberEnd: 312
    functionName: libxl_key_value_list_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__strdup
    - libxl__calloc
    - libxl_key_value_list_length
    linkageType: ''
    returnType: void
    signature: "void libxl_key_value_list_copy(libxl_ctx *ctx,\n                               libxl_key_value_list
      *dst,\n                               const libxl_key_value_list *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - b
    argTypes:
    - libxl_defbool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: libxl_defbool_set
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_defbool_set(libxl_defbool *db, bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - libxl_defbool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: libxl_defbool_unset
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_defbool_unset(libxl_defbool *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - libxl_defbool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: libxl_defbool_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl_defbool_is_default(libxl_defbool db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/libs/light/libxl.c:331,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/light/libxl.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - db
    - b
    argTypes:
    - libxl_defbool*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: libxl_defbool_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 9
    functionsReached:
    - libxl_defbool_set
    - libxl_defbool_is_default
    linkageType: ''
    returnType: void
    signature: void libxl_defbool_setdefault(libxl_defbool *db, bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl.c:337,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/libs/light/libxl.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - libxl_defbool
    assertStmts:
    - condition: (!libxl_defbool_is_default(db))
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/xen/tools/libs/light/libxl.c
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: libxl_defbool_val
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 32
    functionsReached:
    - assert
    - libxl_defbool_is_default
    linkageType: ''
    returnType: bool
    signature: bool libxl_defbool_val(libxl_defbool db)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - libxl_defbool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 349
    functionName: libxl_defbool_to_string
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *libxl_defbool_to_string(libxl_defbool b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:357,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/libs/light/libxl.c:359,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:361,1
    - Dst: xc_sharing_freed_pages
      Src: /src/xen/tools/libs/light/libxl.c:375,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl.c:379,1
    - Dst: xc_sharing_used_frames
      Src: /src/xen/tools/libs/light/libxl.c:384,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl.c:388,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl.c:394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 53
    argCount: 2
    argNames:
    - ctx
    - physinfo
    argTypes:
    - libxl_ctx*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 416
    functionName: libxl_get_physinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 6
    functionsReached:
    - GC_INIT
    - xc_physinfo
    - LOGEV
    - LOGE
    - xc_sharing_freed_pages
    - xc_sharing_used_frames
    - memcpy
    linkageType: ''
    returnType: int
    signature: int libxl_get_physinfo(libxl_ctx *ctx, libxl_physinfo *physinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:420,1
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/libs/light/libxl.c:427,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:429,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:433,1
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/libs/light/libxl.c:435,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:436,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:440,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:445,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:446,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - nb_cpu_out
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 456
    functionName: libxl_get_cpu_topology
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 6
    functionsReached:
    - xc_cputopoinfo
    - GC_INIT
    - libxl__zalloc
    - V
    - LOGE
    linkageType: ''
    returnType: libxl_cputopology
    signature: libxl_cputopology *libxl_get_cpu_topology(libxl_ctx *ctx, int *nb_cpu_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - map
    - ','
    - i
    - ','
    - invalid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: V
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V(map, i, invalid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:460,1
    - Dst: libxl__pci_numdevs
      Src: /src/xen/tools/libs/light/libxl.c:466,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:468,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:473,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:474,1
    - Dst: libxl__pci_topology_init
      Src: /src/xen/tools/libs/light/libxl.c:476,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:478,1
    - Dst: xc_pcitopoinfo
      Src: /src/xen/tools/libs/light/libxl.c:482,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:483,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - num_devs
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 458
    functionDepth: 4
    functionLinenumber: 458
    functionLinenumberEnd: 501
    functionName: libxl_get_pci_topology
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - libxl__pci_numdevs
    - GC_INIT
    - libxl__pci_topology_init
    - libxl__zalloc
    - xc_pcitopoinfo
    - LOGE
    - LOG
    linkageType: ''
    returnType: libxl_pcitopology
    signature: libxl_pcitopology *libxl_get_pci_topology(libxl_ctx *ctx, int *num_devs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:505,1
    - Dst: xc_numainfo
      Src: /src/xen/tools/libs/light/libxl.c:512,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:513,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:517,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:518,1
    - Dst: xc_numainfo
      Src: /src/xen/tools/libs/light/libxl.c:520,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:521,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl.c:527,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl.c:529,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:534,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:535,1
    - Dst: V
      Src: /src/xen/tools/libs/light/libxl.c:539,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - nr
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 547
    functionName: libxl_get_numainfo
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached:
    - xc_numainfo
    - GC_INIT
    - libxl__zalloc
    - libxl__calloc
    - V
    - LOGE
    linkageType: ''
    returnType: libxl_numainfo
    signature: libxl_numainfo *libxl_get_numainfo(libxl_ctx *ctx, int *nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - invalid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: V
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V(val, invalid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:551,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/light/libxl.c:563,1
    - Dst: xc_xenver_extraversion
      Src: /src/xen/tools/libs/light/libxl.c:567,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/light/libxl.c:569,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:570,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:571,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:572,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl.c:573,1
    - Dst: xc_xenver_capabilities
      Src: /src/xen/tools/libs/light/libxl.c:575,1
    - Dst: xc_xenver_changeset
      Src: /src/xen/tools/libs/light/libxl.c:576,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/light/libxl.c:578,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/light/libxl.c:581,1
    - Dst: xc_xenver_commandline
      Src: /src/xen/tools/libs/light/libxl.c:583,1
    - Dst: xc_xenver_buildid
      Src: /src/xen/tools/libs/light/libxl.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 589
    functionName: libxl_get_version_info
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_xenver_capabilities
    - xc_version
    - libxl__strdup
    - xc_xenver_extraversion
    - xc_xenver_commandline
    - xc_xenver_buildid
    - xc_xenver_changeset
    linkageType: ''
    returnType: libxl_version_info
    signature: libxl_version_info * libxl_get_version_info(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:593,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl.c:594,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl.c:596,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - domid
    - sysrq
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 601
    functionName: libxl_send_sysrq
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - libxl__xs_printf
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: int libxl_send_sysrq(libxl_ctx *ctx, uint32_t domid, char sysrq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:606,1
    - Dst: xc_send_debug_keys
      Src: /src/xen/tools/libs/light/libxl.c:607,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - keys
    argTypes:
    - libxl_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 615
    functionName: libxl_send_debug_keys
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_send_debug_keys
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl_send_debug_keys(libxl_ctx *ctx, char *keys)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:620,1
    - Dst: xenhypfs_open
      Src: /src/xen/tools/libs/light/libxl.c:624,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:626,1
    - Dst: isblank
      Src: /src/xen/tools/libs/light/libxl.c:631,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl.c:635,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl.c:637,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl.c:639,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl.c:642,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl.c:643,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl.c:648,1
    - Dst: libxl__strndup
      Src: /src/xen/tools/libs/light/libxl.c:650,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:653,1
    - Dst: xenhypfs_write
      Src: /src/xen/tools/libs/light/libxl.c:654,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:656,1
    - Dst: isblank
      Src: /src/xen/tools/libs/light/libxl.c:661,1
    - Dst: xenhypfs_close
      Src: /src/xen/tools/libs/light/libxl.c:668,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - libxl_ctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 617
    functionDepth: 6
    functionLinenumber: 617
    functionLinenumberEnd: 671
    functionName: libxl_set_parameters
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xenhypfs_open
    - xenhypfs_close
    - xenhypfs_write
    - isblank
    - strchr
    - libxl__sprintf
    - strncmp
    - strlen
    - LOGE
    - LOG
    - libxl__strndup
    linkageType: ''
    returnType: int
    signature: int libxl_set_parameters(libxl_ctx *ctx, char *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl.c:678,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl.c:680,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:682,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl.c:692,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - ctx
    - fd
    - fcntlgetop
    - fcntlsetop
    - fl
    - flagmask
    - set_p
    argTypes:
    - libxl_ctx*
    - int
    - int
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 701
    functionName: fd_set_flags
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGE
    - fcntl
    linkageType: ''
    returnType: int
    signature: "int fd_set_flags(libxl_ctx *ctx, int fd,\n                        int
      fcntlgetop, int fcntlsetop, const char *fl,\n                        int flagmask,
      int set_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_set_flags
      Src: /src/xen/tools/libs/light/libxl.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - fd
    - cloexec
    argTypes:
    - libxl_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 704
    functionName: libxl_fd_set_cloexec
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 6
    functionsReached:
    - fd_set_flags
    linkageType: ''
    returnType: int
    signature: int libxl_fd_set_cloexec(libxl_ctx *ctx, int fd, int cloexec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fd_set_flags
      Src: /src/xen/tools/libs/light/libxl.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - fd
    - nonblock
    argTypes:
    - libxl_ctx*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: libxl_fd_set_nonblock
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 3
    functionsReached:
    - fd_set_flags
    linkageType: ''
    returnType: int
    signature: int libxl_fd_set_nonblock(libxl_ctx *ctx, int fd, int nonblock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl.c:714,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:716,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:721,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:729,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl.c:731,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - gc
    - fd
    - mask
    - val
    - r_oldflags
    argTypes:
    - libxl__gc*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 742
    functionName: libxl__fd_flags_modify_save
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached:
    - LOGE
    - LOG
    - fcntl
    linkageType: ''
    returnType: int
    signature: "int libxl__fd_flags_modify_save(libxl__gc *gc, int fd,\n                                int
      mask, int val, int *r_oldflags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl.c:748,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/light/libxl.c:750,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - gc
    - fd
    - fdfl
    argTypes:
    - libxl__gc*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 762
    functionName: libxl__fd_flags_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached:
    - LOGE
    - LOG
    - fcntl
    linkageType: ''
    returnType: int
    signature: int libxl__fd_flags_restore(libxl__gc *gc, int fd, int fdfl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_hwcap*
    - libxl_hwcap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 770
    functionName: libxl_hwcap_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_hwcap_copy(libxl_ctx *ctx,libxl_hwcap *dst, const libxl_hwcap
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_mac*
    - libxl_mac*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 778
    functionName: libxl_mac_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl_mac_copy(libxl_ctx *ctx, libxl_mac *dst, const libxl_mac
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:23,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_tmem.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - domid
    - use_long
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: libxl_tmem_list
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: char
    signature: char *libxl_tmem_list(libxl_ctx *ctx, uint32_t domid, int use_long)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:31,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_tmem.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: libxl_tmem_freeze
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl_tmem_freeze(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:39,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_tmem.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: libxl_tmem_thaw
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl_tmem_thaw(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:47,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_tmem.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - domid
    - name
    - set
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: libxl_tmem_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t
      set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:56,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_tmem.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - domid
    - uuid
    - auth
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: libxl_tmem_shared_auth
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl_tmem_shared_auth(libxl_ctx *ctx, uint32_t domid,\n                           char*
      uuid, int auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_tmem.c:64,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_tmem.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: libxl_tmem_freeable
    functionSourceFile: /src/xen/tools/libs/light/libxl_tmem.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl_tmem_freeable(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/tools/libs/light/libxl_libfdt_compat.h:77,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_libfdt_compat.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - name
    - val
    argTypes:
    - void*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: fdt_property_u32
    functionSourceFile: /src/xen/tools/libs/light/libxl_libfdt_compat.h
    functionUses: 0
    functionsReached:
    - cpu_to_fdt32
    - fdt_property
    linkageType: ''
    returnType: int
    signature: int fdt_property_u32(void *fdt, const char *name, uint32_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_numa.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - it
    - n
    - k
    argTypes:
    - libxl__gc*
    - comb_iter_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 72
    functionName: comb_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - GCNEW_ARRAY
    linkageType: ''
    returnType: int
    signature: int comb_init(libxl__gc *gc, comb_iter_t *it, int n, int k)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - it
    - n
    - k
    argTypes:
    - comb_iter_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: comb_next
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int comb_next(comb_iter_t it, int n, int k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_numa.c:126,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_numa.c:127,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_numa.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - it
    - suitable_nodemap
    - nodemap
    - k
    argTypes:
    - comb_iter_t
    - libxl_bitmap*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: comb_get_nodemap
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_for_each_set_bit
    - libxl_bitmap_set_none
    linkageType: ''
    returnType: void
    signature: "void comb_get_nodemap(comb_iter_t it, libxl_bitmap *suitable_nodemap,\n
      \                            libxl_bitmap *nodemap, int k)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:148,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 4
    argNames:
    - tinfo
    - nr_cpus
    - suitable_cpumap
    - nodemap
    argTypes:
    - libxl_cputopology*
    - int
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: nodemap_to_nr_cpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    linkageType: ''
    returnType: int
    signature: "int nodemap_to_nr_cpus(libxl_cputopology *tinfo, int nr_cpus,\n                              const
      libxl_bitmap *suitable_cpumap,\n                              const libxl_bitmap
      *nodemap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_numa.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ninfo
    - nodemap
    argTypes:
    - libxl_numainfo*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: nodemap_to_free_memkb
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - libxl_for_each_set_bit
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t nodemap_to_free_memkb(libxl_numainfo *ninfo,\n                                      libxl_bitmap
      *nodemap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_numa.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - vcpus_on_node
    - nodemap
    argTypes:
    - libxl__gc*
    - int[]
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: nodemap_to_nr_vcpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - libxl_for_each_set_bit
    linkageType: ''
    returnType: int
    signature: "int nodemap_to_nr_vcpus(libxl__gc *gc, int vcpus_on_node[],\n                               const
      libxl_bitmap *nodemap)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_domain
      Src: /src/xen/tools/libs/light/libxl_numa.c:192,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:196,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:197,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:201,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:202,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:203,1
    - Dst: libxl_cpupoolinfo_init
      Src: /src/xen/tools/libs/light/libxl_numa.c:213,1
    - Dst: libxl__domain_cpupool
      Src: /src/xen/tools/libs/light/libxl_numa.c:215,1
    - Dst: libxl_cpupool_info
      Src: /src/xen/tools/libs/light/libxl_numa.c:218,1
    - Dst: libxl_list_vcpu
      Src: /src/xen/tools/libs/light/libxl_numa.c:221,1
    - Dst: libxl_domain_get_nodeaffinity
      Src: /src/xen/tools/libs/light/libxl_numa.c:226,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_numa.c:240,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/libs/light/libxl_numa.c:241,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:246,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:247,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:248,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_numa.c:249,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_numa.c:250,1
    - Dst: libxl_cpupoolinfo_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:257,1
    - Dst: libxl_vcpuinfo_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:258,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:261,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:262,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:263,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 5
    argNames:
    - gc
    - tinfo
    - tinfo_elements
    - suitable_cpumap
    - vcpus_on_node
    argTypes:
    - libxl__gc*
    - libxl_cputopology*
    - size_t
    - libxl_bitmap*
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 265
    functionName: nr_vcpus_on_nodes
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - libxl__domain_cpupool
    - libxl_bitmap_test
    - libxl_bitmap_set
    - libxl_bitmap_dispose
    - libxl_domain_get_nodeaffinity
    - libxl_cpupool_info
    - libxl_vcpuinfo_list_free
    - libxl_for_each_set_bit
    - libxl_cpupoolinfo_dispose
    - libxl_cpupoolinfo_init
    - libxl_list_vcpu
    - libxl_bitmap_set_none
    - libxl_node_bitmap_alloc
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: "int nr_vcpus_on_nodes(libxl__gc *gc, libxl_cputopology *tinfo,\n                             size_t
      tinfo_elements,\n                             const libxl_bitmap *suitable_cpumap,\n
      \                            int vcpus_on_node[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - tinfo
    - nr_cpus
    - nr_nodes
    argTypes:
    - libxl_cputopology*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: count_cpus_per_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int count_cpus_per_node(libxl_cputopology *tinfo, int nr_cpus,\n                               int
      nr_nodes)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_numa.c:321,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_numa.c:322,1
    - Dst: libxl__numa_candidate_init
      Src: /src/xen/tools/libs/light/libxl_numa.c:323,1
    - Dst: libxl_get_numainfo
      Src: /src/xen/tools/libs/light/libxl_numa.c:326,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_numa.c:335,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_numa.c:354,1
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/libs/light/libxl_numa.c:363,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:369,1
    - Dst: libxl__numa_candidate_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:372,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:378,1
    - Dst: libxl_cpumap_to_nodemap
      Src: /src/xen/tools/libs/light/libxl_numa.c:381,1
    - Dst: nr_vcpus_on_nodes
      Src: /src/xen/tools/libs/light/libxl_numa.c:394,1
    - Dst: count_cpus_per_node
      Src: /src/xen/tools/libs/light/libxl_numa.c:409,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_numa.c:417,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_numa.c:424,1
    - Dst: libxl__numa_candidate_alloc
      Src: /src/xen/tools/libs/light/libxl_numa.c:430,1
    - Dst: comb_init
      Src: /src/xen/tools/libs/light/libxl_numa.c:455,1
    - Dst: comb_next
      Src: /src/xen/tools/libs/light/libxl_numa.c:457,1
    - Dst: comb_get_nodemap
      Src: /src/xen/tools/libs/light/libxl_numa.c:463,1
    - Dst: nodemap_to_free_memkb
      Src: /src/xen/tools/libs/light/libxl_numa.c:468,1
    - Dst: nodemap_to_nr_cpus
      Src: /src/xen/tools/libs/light/libxl_numa.c:473,1
    - Dst: libxl__numa_candidate_put_nodemap
      Src: /src/xen/tools/libs/light/libxl_numa.c:482,1
    - Dst: nodemap_to_nr_vcpus
      Src: /src/xen/tools/libs/light/libxl_numa.c:483,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_numa.c:486,1
    - Dst: numa_cmpf
      Src: /src/xen/tools/libs/light/libxl_numa.c:495,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_numa.c:498,1
    - Dst: libxl__numa_candidate_put_nodemap
      Src: /src/xen/tools/libs/light/libxl_numa.c:504,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_numa.c:518,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:521,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:522,1
    - Dst: libxl__numa_candidate_dispose
      Src: /src/xen/tools/libs/light/libxl_numa.c:523,1
    - Dst: libxl_numainfo_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:524,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/libs/light/libxl_numa.c:525,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 9
    argNames:
    - gc
    - min_free_memkb
    - min_cpus
    - min_nodes
    - max_nodes
    - suitable_cpumap
    - numa_cmpf
    - cndt_out
    - cndt_found
    argTypes:
    - libxl__gc*
    - uint64_t
    - int
    - int
    - int
    - libxl_bitmap*
    - libxl__numa_candidate_cmpf
    - libxl__numa_candidate*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 527
    functionName: libxl__get_numa_candidate
    functionSourceFile: /src/xen/tools/libs/light/libxl_numa.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_count_set
    - comb_next
    - comb_init
    - libxl_bitmap_dispose
    - count_cpus_per_node
    - libxl__numa_candidate_put_nodemap
    - nodemap_to_nr_cpus
    - libxl__numa_candidate_init
    - numa_cmpf
    - libxl_cputopology_list_free
    - nodemap_to_nr_vcpus
    - nodemap_to_free_memkb
    - libxl_bitmap_init
    - LOG
    - libxl__numa_candidate_alloc
    - libxl_get_numainfo
    - libxl_cpumap_to_nodemap
    - GCNEW_ARRAY
    - libxl_get_cpu_topology
    - libxl_numainfo_list_free
    - comb_get_nodemap
    - nr_vcpus_on_nodes
    - libxl__numa_candidate_dispose
    - libxl_node_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl__get_numa_candidate(libxl__gc *gc,\n                              uint64_t
      min_free_memkb, int min_cpus,\n                              int min_nodes,
      int max_nodes,\n                              const libxl_bitmap *suitable_cpumap,\n
      \                             libxl__numa_candidate_cmpf numa_cmpf,\n                              libxl__numa_candidate
      *cndt_out,\n                              int *cndt_found)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:47,1
    - Dst: libxl__srm_callout_enumcallbacks_restore
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:56,1
    - Dst: run_helper
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:77,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - egc
    - dcs
    - shs
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    - libxl__save_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: libxl__xc_domain_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - ARRAY_SIZE
    - run_helper
    - libxl__srm_callout_enumcallbacks_restore
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_domain_restore(libxl__egc *egc, libxl__domain_create_state
      *dcs,\n                              libxl__save_helper_state *shs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:84,1
    - Dst: libxl__srm_callout_enumcallbacks_save
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:87,1
    - Dst: run_helper
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:101,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - dss
    - shs
    argTypes:
    - libxl__egc*
    - libxl__domain_save_state*
    - libxl__save_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: libxl__xc_domain_save
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__srm_callout_enumcallbacks_save
    - ARRAY_SIZE
    - run_helper
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_domain_save(libxl__egc *egc, libxl__domain_save_state
      *dss,\n                           libxl__save_helper_state *shs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__srm_callout_sendreply
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - shs
    - return_value
    argTypes:
    - libxl__egc*
    - libxl__save_helper_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: libxl__xc_domain_saverestore_async_callback_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 23
    functionsReached:
    - libxl__srm_callout_sendreply
    linkageType: ''
    returnType: void
    signature: "void libxl__xc_domain_saverestore_async_callback_done(libxl__egc *egc,\n
      \                          libxl__save_helper_state *shs, int return_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:118,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:119,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - shs
    argTypes:
    - libxl__save_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: libxl__save_helper_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 2
    functionsReached:
    - libxl__ao_abortable_init
    - libxl__ev_child_init
    - libxl__ev_fd_init
    linkageType: ''
    returnType: void
    signature: void libxl__save_helper_init(libxl__save_helper_state *shs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:131,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:133,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:134,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - gc
    - fd
    - what
    argTypes:
    - libxl__gc*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: dup_cloexec
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - exit
    - dup
    - libxl_fd_set_cloexec
    - LOGE
    linkageType: ''
    returnType: int
    signature: int dup_cloexec(libxl__gc *gc, int fd, const char *what)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:158,1
    - Dst: libxl__save_helper_init
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:172,1
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:176,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:179,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:181,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:184,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:189,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:191,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:191,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:193,1
    - Dst: libxl_pipe
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:198,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:200,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:205,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:206,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:208,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:210,1
    - Dst: dup_cloexec
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:212,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:213,1
    - Dst: dup_cloexec
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:216,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:218,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:222,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:223,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:226,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:227,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:228,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:233,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:234,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:236,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:237,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:242,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:243,1
    - Dst: helper_failed
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:244,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 9
    argNames:
    - egc
    - shs
    - mode_arg
    - stream_fd
    - back_channel_fd
    - preserve_fds
    - num_preserve_fds
    - argnums
    - num_argnums
    argTypes:
    - libxl__egc*
    - libxl__save_helper_state*
    - char*
    - int
    - int
    - int*
    - int
    - unsigned long*
    - int
    assertStmts:
    - condition: (arg == args + ARRAY_SIZE(args))
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/xen/tools/libs/light/libxl_save_callout.c
    - condition: (preserve_fds[i] > 2)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/xen/tools/libs/light/libxl_save_callout.c
    constantsTouched: []
    func_position:
      end: 245
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 245
    functionName: run_helper
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 2
    functionsReached:
    - libxl__carefd_unlock
    - libxl__ao_abortable_register
    - libxl__save_helper_init
    - libxl__exec
    - helper_failed
    - libxl__carefd_close
    - libxl_fd_set_cloexec
    - getenv
    - ARRAY_SIZE
    - libxl__carefd_fd
    - libxl__ev_fd_register
    - STATE_AO_GC
    - libxl_pipe
    - GCSPRINTF
    - libxl__carefd_record
    - dup_cloexec
    - libxl__carefd_begin
    - assert
    - libxl__ev_child_fork
    linkageType: ''
    returnType: void
    signature: "void run_helper(libxl__egc *egc, libxl__save_helper_state *shs,\n
      \                      const char *mode_arg,\n                       int stream_fd,
      int back_channel_fd,\n                       const int *preserve_fds, int num_preserve_fds,\n
      \                      const unsigned long *argnums, int num_argnums)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:250,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:255,1
    - Dst: libxl__save_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:257,1
    - Dst: helper_done
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:258,1
    - Dst: libxl__kill
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - shs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__save_helper_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: helper_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - helper_done
    - libxl__kill
    - libxl__ev_fd_deregister
    - libxl__save_helper_inuse
    linkageType: ''
    returnType: void
    signature: "void helper_failed(libxl__egc *egc, libxl__save_helper_state *shs,\n
      \                         int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:267,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:268,1
    - Dst: libxl__save_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:270,1
    - Dst: helper_failed
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:271,1
    - Dst: libxl__kill
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: helper_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - helper_failed
    - libxl__kill
    - libxl__save_helper_inuse
    linkageType: ''
    returnType: void
    signature: void helper_stop(libxl__egc *egc, libxl__ao_abortable *abrt, int rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_stop
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - shs
    argTypes:
    - libxl__egc*
    - libxl__save_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: libxl__save_helper_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 2
    functionsReached:
    - helper_stop
    linkageType: ''
    returnType: void
    signature: "void libxl__save_helper_abort(libxl__egc *egc,\n                              libxl__save_helper_state
      *shs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:290,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:291,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:295,1
    - Dst: helper_failed
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:300,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:305,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:310,1
    - Dst: libxl__save_helper_state*::recv_callback
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 318
    functionName: helper_stdout_readable
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - libxl_read_exactly
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - helper_failed
    - libxl__save_helper_state*::recv_callback
    linkageType: ''
    returnType: void
    signature: "void helper_stdout_readable(libxl__egc *egc, libxl__ev_fd *ev,\n                                   int
      fd, short events, short revents)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:323,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:324,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:330,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:333,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:340,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:347,1
    - Dst: helper_done
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - egc
    - ch
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 354
    functionName: helper_exited
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - helper_done
    linkageType: ''
    returnType: void
    signature: "void helper_exited(libxl__egc *egc, libxl__ev_child *ch,\n                          pid_t
      pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:358,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:360,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:361,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:362,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:363,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:364,1
    - Dst: libxl__save_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:364,1
    - Dst: libxl__save_helper_state*::completion_callback
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - egc
    - shs
    argTypes:
    - libxl__egc*
    - libxl__save_helper_state*
    assertStmts:
    - condition: (!libxl__save_helper_inuse(shs))
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/xen/tools/libs/light/libxl_save_callout.c
    constantsTouched: []
    func_position:
      end: 370
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 370
    functionName: helper_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_abortable_deregister
    - libxl__save_helper_state*::completion_callback
    - libxl__carefd_close
    - libxl__ev_fd_deregister
    - libxl__save_helper_inuse
    - assert
    linkageType: ''
    returnType: void
    signature: void helper_done(libxl__egc *egc, libxl__save_helper_state *shs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: libxl__srm_callout_get_callbacks_save
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: libxl__srm_save_autogen_callbacks
    signature: 'libxl__srm_save_autogen_callbacks *

      libxl__srm_callout_get_callbacks_save(void *user)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: libxl__srm_callout_get_callbacks_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: libxl__srm_restore_autogen_callbacks
    signature: 'libxl__srm_restore_autogen_callbacks *

      libxl__srm_callout_get_callbacks_restore(void *user)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:392,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:395,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:395,1
    - Dst: helper_failed
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - user
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: libxl__srm_callout_sendreply
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__carefd_fd
    - libxl_write_exactly
    - helper_failed
    linkageType: ''
    returnType: void
    signature: void libxl__srm_callout_sendreply(int r, void *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:406,1
    - Dst: xtl_log
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - level
    - errnoval
    - context
    - formatted
    - user
    argTypes:
    - uint32_t
    - uint32_t
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: libxl__srm_callout_callback_log
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - xtl_log
    linkageType: ''
    returnType: void
    signature: "void libxl__srm_callout_callback_log(uint32_t level, uint32_t errnoval,\n
      \                 const char *context, const char *formatted, void *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:415,1
    - Dst: xtl_progress
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - context
    - doing_what
    - done
    - total
    - user
    argTypes:
    - char*
    - char*
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: libxl__srm_callout_callback_progress
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - xtl_progress
    linkageType: ''
    returnType: void
    signature: "void libxl__srm_callout_callback_progress(const char *context,\n                   const
      char *doing_what, unsigned long done,\n                   unsigned long total,
      void *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:423,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_save_callout.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - retval
    - errnoval
    - user
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 430
    functionName: libxl__srm_callout_callback_complete
    functionSourceFile: /src/xen/tools/libs/light/libxl_save_callout.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ev_fd_deregister
    linkageType: ''
    returnType: int
    signature: "int libxl__srm_callout_callback_complete(int retval, int errnoval,\n
      \                                        void *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setresuid
      Src: /src/xen/tools/libs/light/libxl_setresuid.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ruid
    - euid
    - suid
    argTypes:
    - uid_t
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: libxl__setresuid
    functionSourceFile: /src/xen/tools/libs/light/libxl_setresuid.c
    functionUses: 0
    functionsReached:
    - setresuid
    linkageType: ''
    returnType: int
    signature: int libxl__setresuid(uid_t ruid, uid_t euid, uid_t suid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:27,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xswa
    argTypes:
    - libxl__xswait_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: libxl__xswait_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 8
    functionsReached:
    - libxl__ev_time_init
    - libxl__ev_xswatch_init
    linkageType: ''
    returnType: void
    signature: void libxl__xswait_init(libxl__xswait_state *xswa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:33,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - xswa
    argTypes:
    - libxl__gc*
    - libxl__xswait_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: libxl__xswait_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 6
    functionsReached:
    - libxl__ev_xswatch_deregister
    - libxl__ev_time_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__xswait_stop(libxl__gc *gc, libxl__xswait_state *xswa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:39,1
    - Dst: libxl__ev_xswatch_isregistered
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:40,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xswa
    argTypes:
    - libxl__xswait_state*
    assertStmts:
    - condition: (time_inuse == watch_inuse)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: libxl__xswait_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl__ev_time_isregistered
    - libxl__ev_xswatch_isregistered
    - assert
    linkageType: ''
    returnType: bool
    signature: bool libxl__xswait_inuse(const libxl__xswait_state *xswa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:49,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:53,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - gc
    - xswa
    argTypes:
    - libxl__gc*
    - libxl__xswait_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 62
    functionName: libxl__xswait_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 4
    functionsReached:
    - libxl__ev_xswatch_register
    - libxl__xswait_stop
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: int
    signature: int libxl__xswait_start(libxl__gc *gc, libxl__xswait_state *xswa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:68,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:75,1
    - Dst: xswait_report_error
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:76,1
    - Dst: libxl__xswait_state*::callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - egc
    - xsw
    - watch_path
    - event_path
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: xswait_xswatch_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xs_read_checked
    - xswait_report_error
    - libxl__xswait_state*::callback
    linkageType: ''
    returnType: void
    signature: "void xswait_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch *xsw,\n
      \                            const char *watch_path, const char *event_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:87,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:88,1
    - Dst: xswait_report_error
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: xswait_timeout_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOG
    - xswait_report_error
    linkageType: ''
    returnType: void
    signature: "void xswait_timeout_callback(libxl__egc *egc, libxl__ev_time *ev,\n
      \                            const struct timeval *requested_abs,\n                             int
      rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:96,1
    - Dst: libxl__xswait_state*::callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - egc
    - xswa
    - rc
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: xswait_report_error
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 2
    functionsReached:
    - libxl__xswait_stop
    - libxl__xswait_state*::callback
    linkageType: ''
    returnType: void
    signature: "void xswait_report_error(libxl__egc *egc, libxl__xswait_state *xswa,\n
      \                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:105,1
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:106,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:107,1
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:108,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dc
    argTypes:
    - libxl__datacopier_state*
    assertStmts:
    - condition: (dc->ao)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: libxl__datacopier_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_INIT
    - libxl__ao_abortable_init
    - assert
    - libxl__ev_fd_init
    linkageType: ''
    returnType: void
    signature: void libxl__datacopier_init(libxl__datacopier_state *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:114,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:117,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:118,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:119,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:120,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:121,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dc
    argTypes:
    - libxl__datacopier_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: libxl__datacopier_kill
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_INIT
    - STATE_AO_GC
    - libxl__ao_abortable_deregister
    - free
    - XEN_TAILQ_FOREACH_SAFE
    - libxl__ev_fd_deregister
    linkageType: ''
    returnType: void
    signature: void libxl__datacopier_kill(libxl__datacopier_state *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:128,1
    - Dst: libxl__datacopier_state*::callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: datacopier_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl__datacopier_kill
    - libxl__datacopier_state*::callback
    linkageType: ''
    returnType: void
    signature: "void datacopier_callback(libxl__egc *egc, libxl__datacopier_state
      *dc,\n                                int rc, int onwrite, int errnoval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:137,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:141,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:142,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:145,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:147,1
    - Dst: libxl__ev_fd_isregistered
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:151,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:154,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:158,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - egc
    - dc
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 160
    functionName: datacopier_check_state
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - datacopier_callback
    - libxl__ev_fd_deregister
    - libxl__ev_fd_isregistered
    - LOG
    - libxl__ev_fd_register
    linkageType: ''
    returnType: void
    signature: void datacopier_check_state(libxl__egc *egc, libxl__datacopier_state
      *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:177,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:180,1
    - Dst: min
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:181,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:182,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - egc
    - dc
    - data
    - len
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - void*
    - size_t
    assertStmts:
    - condition: (len < dc->maxsz - dc->used)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 187
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 187
    functionName: libxl__datacopier_prefixdata
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 3
    functionsReached:
    - XEN_TAILQ_INSERT_TAIL
    - min
    - libxl__malloc
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libxl__datacopier_prefixdata(libxl__egc *egc, libxl__datacopier_state
      *dc,\n                                  const void *data, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:193,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:196,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:198,1
    - Dst: libxl__datacopier_state*::callback_pollhup
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - egc
    - dc
    - fd
    - revents
    - onwrite
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: datacopier_pollhup_handled
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl__datacopier_kill
    - STATE_AO_GC
    - LOG
    - libxl__datacopier_state*::callback_pollhup
    linkageType: ''
    returnType: int
    signature: "int datacopier_pollhup_handled(libxl__egc *egc,\n                                      libxl__datacopier_state
      *dc,\n                                      int fd, short revents, int onwrite)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:208,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:209,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: datacopier_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - datacopier_callback
    linkageType: ''
    returnType: void
    signature: "void datacopier_abort(libxl__egc *egc, libxl__ao_abortable *abrt,\n
      \                            int rc)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:216,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:217,1
    - Dst: datacopier_pollhup_handled
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:219,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:223,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:226,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:229,1
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:235,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:238,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:240,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:241,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:242,1
    - Dst: XEN_TAILQ_LAST
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:245,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:247,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:249,1
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:251,1
    - Dst: min_t
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:252,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:257,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:260,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:264,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:269,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:271,1
    - Dst: poll
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:283,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:285,1
    - Dst: datacopier_pollhup_handled
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:288,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:291,1
    - Dst: fwrite
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:295,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:297,1
    - Dst: ferror
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:297,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:298,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:299,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:300,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:306,1
    - Dst: datacopier_check_state
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:314,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts:
    - condition: (revents & (POLLIN|POLLHUP))
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (dc->used >= 0)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (ferror(dc->log))
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (errno)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (errno)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (buf->used <= sizeof(buf->buf))
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 315
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 315
    functionName: datacopier_readable
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - datacopier_callback
    - datacopier_pollhup_handled
    - LIBXL__EVENT_DISASTER
    - datacopier_check_state
    - ferror
    - free
    - LOGE
    - fwrite
    - libxl__malloc
    - STATE_AO_GC
    - CONTAINER_OF
    - XEN_TAILQ_LAST
    - min_t
    - poll
    - LOG
    - XEN_TAILQ_REMOVE
    - XEN_TAILQ_INSERT_TAIL
    - read
    - libxl__ev_fd_deregister
    - XEN_TAILQ_FIRST
    - assert
    linkageType: ''
    returnType: void
    signature: "void datacopier_readable(libxl__egc *egc, libxl__ev_fd *ev,\n                                int
      fd, short events, short revents)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:319,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:320,1
    - Dst: datacopier_pollhup_handled
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:322,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:326,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:329,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:332,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:334,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:338,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:339,1
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:342,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:346,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:347,1
    - Dst: datacopier_callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:349,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:352,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:353,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:356,1
    - Dst: memmove
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:357,1
    - Dst: datacopier_check_state
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:359,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - egc
    - ev
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts:
    - condition: (revents & POLLOUT)
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (r > 0)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (dc->used >= 0)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (r <= buf->used)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (errno)
      pos:
        line_end: 345
        line_start: 345
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 360
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 360
    functionName: datacopier_writable
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - datacopier_callback
    - datacopier_pollhup_handled
    - free
    - memmove
    - XEN_TAILQ_REMOVE
    - LOGE
    - LOG
    - XEN_TAILQ_FIRST
    - write
    - datacopier_check_state
    - assert
    linkageType: ''
    returnType: void
    signature: "void datacopier_writable(libxl__egc *egc, libxl__ev_fd *ev,\n                                int
      fd, short events, short revents)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:365,1
    - Dst: libxl__datacopier_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:367,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:369,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:370,1
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:374,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:378,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:384,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:392,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - dc
    argTypes:
    - libxl__datacopier_state*
    assertStmts:
    - condition: (dc->readfd >= 0 || dc->writefd >= 0)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (!(dc->readbuf && dc->bytes_to_read == -1))
      pos:
        line_end: 369
        line_start: 369
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 394
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 394
    functionName: libxl__datacopier_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 5
    functionsReached:
    - STATE_AO_GC
    - libxl__datacopier_kill
    - libxl__ao_abortable_register
    - libxl__datacopier_init
    - assert
    - libxl__ev_fd_register
    linkageType: ''
    returnType: int
    signature: int libxl__datacopier_start(libxl__datacopier_state *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:406,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - libxl__openpty_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 409
    functionName: openpty_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl__carefd_close
    linkageType: ''
    returnType: void
    signature: void openpty_cleanup(libxl__openpty_state *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:413,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:414,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:419,1
    - Dst: openpty_cleanup
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:424,1
    - Dst: libxl__openpty_state*::callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: openpty_exited
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - openpty_cleanup
    - libxl__openpty_state*::callback
    linkageType: ''
    returnType: void
    signature: "void openpty_exited(libxl__egc *egc, libxl__ev_child *child,\n                           pid_t
      pid, int status)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:445,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:454,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:455,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:459,1
    - Dst: socketpair
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:460,1
    - Dst: libxl__carefd_opened
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:462,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:463,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:465,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:473,1
    - Dst: signal
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:474,1
    - Dst: openpty
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:477,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:478,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:478,1
    - Dst: libxl__sendmsg_fds
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:480,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:482,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:482,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:483,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:486,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:491,1
    - Dst: libxl__recvmsg_fds
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:493,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:498,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:499,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:503,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:510,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:511,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:512,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:518,1
    - Dst: openpty_cleanup
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:519,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 3
    argNames:
    - op
    - termp
    - winp
    argTypes:
    - libxl__openpty_state*
    - struct termios*
    - struct winsize*
    assertStmts:
    - condition: (!res->master)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (rc)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    - condition: (!res->slave)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 521
      start: 428
    functionDepth: 7
    functionLinenumber: 428
    functionLinenumberEnd: 521
    functionName: libxl__openptys
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - _exit
    - libxl__carefd_record
    - libxl__carefd_unlock
    - openpty
    - signal
    - libxl__recvmsg_fds
    - socketpair
    - close
    - libxl__sendmsg_fds
    - libxl__carefd_begin
    - openpty_cleanup
    - LOGE
    - libxl__carefd_close
    - libxl__carefd_opened
    - libxl__ev_child_inuse
    - assert
    - libxl__ev_child_fork
    linkageType: ''
    returnType: int
    signature: "int libxl__openptys(libxl__openpty_state *op,\n                    struct
      termios *termp,\n                    struct winsize *winp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:530,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:531,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:536,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:538,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:538,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:539,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:541,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts:
    - condition: (libxl__ev_child_inuse(&aes->child))
      pos:
        line_end: 537
        line_start: 537
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 547
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 547
    functionName: async_exec_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - kill
    - LOG
    - libxl__ev_time_deregister
    - LOGEV
    - libxl__ev_child_inuse
    - assert
    linkageType: ''
    returnType: void
    signature: "void async_exec_timeout(libxl__egc *egc,\n                               libxl__ev_time
      *ev,\n                               const struct timeval *requested_abs,\n
      \                              int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:553,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:554,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:556,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:560,1
    - Dst: libxl__async_exec_state*::callback
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 565
    functionName: async_exec_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__async_exec_state*::callback
    - libxl__ev_time_deregister
    linkageType: ''
    returnType: void
    signature: "void async_exec_done(libxl__egc *egc,\n                            libxl__ev_child
      *child,\n                            pid_t pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:569,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aes
    argTypes:
    - libxl__async_exec_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: libxl__async_exec_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 1
    functionsReached:
    - libxl__ev_child_init
    - libxl__ev_time_init
    linkageType: ''
    returnType: void
    signature: void libxl__async_exec_init(libxl__async_exec_state *aes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:586,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:589,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:593,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:596,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:598,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - aes
    argTypes:
    - libxl__async_exec_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 573
    functionDepth: 7
    functionLinenumber: 573
    functionLinenumberEnd: 612
    functionName: libxl__async_exec_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 5
    functionsReached:
    - LOG
    - libxl__exec
    - libxl__ev_child_fork
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: int
    signature: int libxl__async_exec_start(libxl__async_exec_state *aes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:616,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:617,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aes
    argTypes:
    - libxl__async_exec_state*
    assertStmts:
    - condition: (time_inuse == child_inuse)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/xen/tools/libs/light/libxl_aoutils.c
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: libxl__async_exec_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 2
    functionsReached:
    - libxl__ev_time_isregistered
    - libxl__ev_child_inuse
    - assert
    linkageType: ''
    returnType: bool
    signature: bool libxl__async_exec_inuse(const libxl__async_exec_state *aes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:624,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - gc
    - pid
    - sig
    - what
    argTypes:
    - libxl__gc*
    - pid_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: libxl__kill
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 2
    functionsReached:
    - kill
    - LOGE
    linkageType: ''
    returnType: void
    signature: void libxl__kill(libxl__gc *gc, pid_t pid, int sig, const char *what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:636,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:638,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:642,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:644,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:646,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:649,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_aoutils.c:652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - xs_path_pid
    - what
    argTypes:
    - libxl__gc*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 659
    functionName: libxl__kill_xs_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_aoutils.c
    functionUses: 0
    functionsReached:
    - kill
    - LOG
    - LOGE
    - atoi
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__kill_xs_path(libxl__gc *gc, const char *xs_path_pid,\n
      \                       const char *what)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bl
    - arg
    argTypes:
    - libxl__bootloader_state*
    - char*
    assertStmts:
    - condition: (bl->nargs < bl->argsspace)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: bootloader_arg
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void bootloader_arg(libxl__bootloader_state *bl, const char *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:55,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:59,1
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:68,1
    - Dst: userlookup_helper_getpwuid
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:76,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:81,1
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:92,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:97,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - gc
    - guest_domid
    - user
    - intended_uid
    argTypes:
    - libxl__gc*
    - domid_t
    - char*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 109
    functionName: bootloader_uid
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - LOGD
    - userlookup_helper_getpwnam
    - userlookup_helper_getpwuid
    linkageType: ''
    returnType: int
    signature: "int bootloader_uid(libxl__gc *gc, domid_t guest_domid,\n                          const
      char *user, uid_t *intended_uid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:116,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:118,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:122,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:125,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:125,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:127,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:127,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:129,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:129,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:130,1
    - Dst: bootloader_uid
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:132,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:137,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:139,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:142,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:143,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:143,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:144,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:147,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:147,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:148,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:149,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:149,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:154,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:159,1
    - Dst: ARG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - gc
    - bl
    - bootloader_path
    argTypes:
    - libxl__gc*
    - libxl__bootloader_state*
    - char*
    assertStmts:
    - condition: (uid != -1)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 166
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 166
    functionName: make_bootloader_args
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - LOGD
    - bootloader_uid
    - GCNEW_ARRAY
    - libxl_string_list_length
    - ARG
    - assert
    linkageType: ''
    returnType: int
    signature: "int make_bootloader_args(libxl__gc *gc, libxl__bootloader_state *bl,\n
      \                               const char *bootloader_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: ARG
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG(arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:173,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:176,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:177,1
    - Dst: ttyname_r
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:179,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:181,1
    - Dst: tcgetattr
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:196,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:197,1
    - Dst: tcsetattr
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - egc
    - bl
    - slave_path
    - slave_path_len
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 204
    functionName: setup_xenconsoled_pty
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - ttyname_r
    - tcsetattr
    - libxl__carefd_fd
    - LOGED
    - tcgetattr
    - cfmakeraw
    linkageType: ''
    returnType: int
    signature: "int setup_xenconsoled_pty(libxl__egc *egc, libxl__bootloader_state
      *bl,\n                                 char *slave_path, size_t slave_path_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:208,1
    - Dst: CTYPE
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:212,1
    - Dst: CTYPE
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:215,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - gc
    - buf
    - prefix
    - prefixlen
    - domid
    argTypes:
    - libxl__gc*
    - char*
    - char*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 221
    functionName: bootloader_result_command
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - strncmp
    - CTYPE
    - LOGD
    linkageType: ''
    returnType: char
    signature: "char *bootloader_result_command(libxl__gc *gc, const char *buf,\n
      \                        const char *prefix, size_t prefixlen, uint32_t domid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:226,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:231,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:233,1
    - Dst: getc
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:242,1
    - Dst: ferror
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:248,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:249,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:257,1
    - Dst: COMMAND
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:266,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:267,1
    - Dst: libxl__file_reference_map
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:268,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:269,1
    - Dst: COMMAND
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:270,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:271,1
    - Dst: libxl__file_reference_map
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:272,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:273,1
    - Dst: COMMAND
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:274,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:275,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:277,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:284,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - egc
    - bl
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 286
    functionName: parse_bootloader_result
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - fopen
    - LOGD
    - ferror
    - libxl__file_reference_map
    - unlink
    - LOGED
    - COMMAND
    - fclose
    - libxl__strdup
    - getc
    linkageType: ''
    returnType: int
    signature: "int parse_bootloader_result(libxl__egc *egc,\n                                   libxl__bootloader_state
      *bl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: COMMAND
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMMAND(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:293,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:300,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:301,1
    - Dst: libxl__domaindeathcheck_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:302,1
    - Dst: libxl__datacopier_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:303,1
    - Dst: libxl__datacopier_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - bl
    argTypes:
    - libxl__bootloader_state*
    assertStmts:
    - condition: (bl->ao)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: libxl__bootloader_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - libxl__ev_child_init
    - libxl__domaindeathcheck_init
    - libxl__datacopier_init
    - libxl__ev_time_init
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__bootloader_init(libxl__bootloader_state *bl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:310,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:313,1
    - Dst: libxl__remove_directory
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:314,1
    - Dst: libxl__domaindeathcheck_stop
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:316,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:317,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:318,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:319,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:321,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:322,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - egc
    - bl
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 328
    functionName: bootloader_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__remove_directory
    - libxl__remove_file
    - libxl__datacopier_kill
    - fclose
    - libxl__ev_time_deregister
    - libxl__carefd_close
    - libxl__domaindeathcheck_stop
    linkageType: ''
    returnType: void
    signature: void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:333,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - bl
    argTypes:
    - libxl__gc*
    - libxl__bootloader_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: bootloader_setpaths
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: void
    signature: void bootloader_setpaths(libxl__gc *gc, libxl__bootloader_state *bl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootloader_cleanup
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:349,1
    - Dst: libxl__device_disk_local_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - bl
    - rc
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 6
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: bootloader_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - bootloader_cleanup
    - libxl__device_disk_local_initiate_detach
    linkageType: ''
    returnType: void
    signature: "void bootloader_callback(libxl__egc *egc, libxl__bootloader_state
      *bl,\n                                int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:359,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:360,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:363,1
    - Dst: libxl__bootloader_state*::callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - dls
    - rc
    argTypes:
    - libxl__egc*
    - libxl__disk_local_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 370
    functionName: bootloader_local_detached_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__bootloader_state*::callback
    linkageType: ''
    returnType: void
    signature: "void bootloader_local_detached_cb(libxl__egc *egc,\n                                         libxl__disk_local_state
      *dls,\n                                         int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:376,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:379,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:380,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:381,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:382,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:383,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - bl
    - rc
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: bootloader_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - kill
    - libxl__datacopier_kill
    - LOGED
    - libxl__ev_time_deregister
    - libxl__ev_child_inuse
    linkageType: ''
    returnType: void
    signature: "void bootloader_stop(libxl__egc *egc,\n                             libxl__bootloader_state
      *bl, int rc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:401,1
    - Dst: libxl__bootloader_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:407,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:410,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:416,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:426,1
    - Dst: bootloader_setpaths
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:431,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:433,1
    - Dst: libxl_create_logfile
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:434,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:439,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:442,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:444,1
    - Dst: mkdir
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:451,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:455,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:462,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:463,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:465,1
    - Dst: libxl__device_disk_local_init
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:473,1
    - Dst: libxl__device_disk_local_initiate_attach
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:478,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:482,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:484,1
    - Dst: bootloader_callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:485,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 2
    argNames:
    - egc
    - bl
    argTypes:
    - libxl__egc*
    - libxl__bootloader_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 486
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 486
    functionName: libxl__bootloader_run
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - fopen
    - GCSPRINTF
    - LOGD
    - libxl__bootloader_init
    - libxl_create_logfile
    - open
    - bootloader_setpaths
    - mkdir
    - libxl__device_disk_local_initiate_attach
    - free
    - close
    - LOGED
    - libxl__device_disk_local_init
    - libxl__ptr_add
    - assert
    - bootloader_callback
    linkageType: ''
    returnType: void
    signature: void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state
      *bl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:492,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:493,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:498,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:503,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:506,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:507,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:518,1
    - Dst: libxl__private_bindir_path
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:518,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:521,1
    - Dst: lstat
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:524,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:525,1
    - Dst: make_bootloader_args
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:532,1
    - Dst: libxl__openptys
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:539,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:545,1
    - Dst: bootloader_callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - egc
    - dls
    - rc
    argTypes:
    - libxl__egc*
    - libxl__disk_local_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 547
      start: 488
    functionDepth: 8
    functionLinenumber: 488
    functionLinenumberEnd: 547
    functionName: bootloader_disk_attached_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - assert
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - make_bootloader_args
    - lstat
    - libxl__openptys
    - libxl__abs_path
    - strcmp
    - bootloader_callback
    - libxl__private_bindir_path
    linkageType: ''
    returnType: void
    signature: "void bootloader_disk_attached_cb(libxl__egc *egc,\n                                        libxl__disk_local_state
      *dls,\n                                        int rc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:551,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:552,1
    - Dst: setup_xenconsoled_pty
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:574,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:579,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:582,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:584,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:587,1
    - Dst: libxl__domaindeathcheck_start
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:596,1
    - Dst: libxl__bootloader_state*::console_available
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:600,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:602,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:603,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:605,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:606,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:618,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:623,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:630,1
    - Dst: libxl__datacopier_start
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:633,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:636,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:640,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:645,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:646,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:647,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:652,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:656,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:663,1
    - Dst: login_tty
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:671,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:671,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:672,1
    - Dst: exit
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:672,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:673,1
    - Dst: tcgetattr
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:683,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:684,1
    - Dst: tcsetattr
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:685,1
    - Dst: bootloader_callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:691,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 92
    argCount: 2
    argNames:
    - egc
    - op
    argTypes:
    - libxl__egc*
    - libxl__openpty_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 549
    functionDepth: 7
    functionLinenumber: 549
    functionLinenumberEnd: 692
    functionName: bootloader_gotptys
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - LOGED
    - libxl__exec
    - getenv
    - libxl_defbool_val
    - libxl__carefd_fd
    - setup_xenconsoled_pty
    - bootloader_callback
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - libxl__datacopier_start
    - tcsetattr
    - libxl_fd_set_nonblock
    - libxl__bootloader_state*::console_available
    - exit
    - login_tty
    - cfmakeraw
    - libxl__xs_get_dompath
    - LOGD
    - libxl__domaindeathcheck_start
    - libxl__xs_printf
    - tcgetattr
    - atoi
    - libxl__ev_child_fork
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: void bootloader_gotptys(libxl__egc *egc, libxl__openpty_state *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:699,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:707,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:710,1
    - Dst: bootloader_stop
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - egc
    - which
    - bl
    - ondisplay
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - char*
    - libxl__bootloader_state*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 695
    functionDepth: 4
    functionLinenumber: 695
    functionLinenumberEnd: 715
    functionName: bootloader_copyfail
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - bootloader_stop
    - STATE_AO_GC
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void bootloader_copyfail(libxl__egc *egc, const char *which,\n        libxl__bootloader_state
      *bl, int ondisplay,\n        int rc, int onwrite, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:719,1
    - Dst: bootloader_copyfail
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: bootloader_keystrokes_copyfail
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - bootloader_copyfail
    linkageType: ''
    returnType: void
    signature: "void bootloader_keystrokes_copyfail(libxl__egc *egc,\n       libxl__datacopier_state
      *dc, int rc, int onwrite, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:725,1
    - Dst: bootloader_copyfail
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - egc
    - dc
    - rc
    - onwrite
    - errnoval
    argTypes:
    - libxl__egc*
    - libxl__datacopier_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 722
    functionDepth: 5
    functionLinenumber: 722
    functionLinenumberEnd: 727
    functionName: bootloader_display_copyfail
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - bootloader_copyfail
    linkageType: ''
    returnType: void
    signature: "void bootloader_display_copyfail(libxl__egc *egc,\n       libxl__datacopier_state
      *dc, int rc, int onwrite, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:731,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:732,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:734,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:736,1
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:736,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:737,1
    - Dst: libxl__ev_child_kill_deregister
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:739,1
    - Dst: bootloader_callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts:
    - condition: (libxl__ev_child_inuse(&bl->child))
      pos:
        line_end: 735
        line_start: 735
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
    constantsTouched: []
    func_position:
      end: 742
      start: 728
    functionDepth: 7
    functionLinenumber: 728
    functionLinenumberEnd: 742
    functionName: bootloader_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__ev_child_kill_deregister
    - libxl__ev_time_deregister
    - libxl__ev_child_inuse
    - assert
    - bootloader_callback
    linkageType: ''
    returnType: void
    signature: "void bootloader_timeout(libxl__egc *egc, libxl__ev_time *ev,\n                               const
      struct timeval *requested_abs, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:748,1
    - Dst: bootloader_stop
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - dc
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domaindeathcheck*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 750
    functionName: bootloader_domaindeath
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - bootloader_stop
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: "void bootloader_domaindeath(libxl__egc *egc,\n                                   libxl__domaindeathcheck
      *dc,\n                                   int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:755,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:756,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:759,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:760,1
    - Dst: libxl__datacopier_kill
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:761,1
    - Dst: WIFSIGNALED
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:764,1
    - Dst: WTERMSIG
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:764,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:765,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:766,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:768,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:773,1
    - Dst: parse_bootloader_result
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:782,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:786,1
    - Dst: bootloader_callback
      Src: /src/xen/tools/libs/light/libxl_bootloader.c:789,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 752
    functionDepth: 7
    functionLinenumber: 752
    functionLinenumberEnd: 790
    functionName: bootloader_finished
    functionSourceFile: /src/xen/tools/libs/light/libxl_bootloader.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - WTERMSIG
    - libxl__datacopier_kill
    - WIFSIGNALED
    - libxl__ev_time_deregister
    - parse_bootloader_result
    - bootloader_callback
    linkageType: ''
    returnType: void
    signature: "void bootloader_finished(libxl__egc *egc, libxl__ev_child *child,\n
      \                               pid_t pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - vdispl
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vdispl*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: libxl__device_vdispl_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vdispl_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                          libxl_device_vdispl *vdispl,\n                                           bool
      hotplug)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:35,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:36,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - vdispl
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_vdispl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: libxl__vdispl_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - libxl__backendpath_parse_domid
    - GCSPRINTF
    - libxl__xs_read_mandatory
    linkageType: ''
    returnType: int
    signature: "int libxl__vdispl_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                      libxl_devid devid,\n                                       libxl_device_vdispl
      *vdispl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_device_vdispl*
    - libxl_device_vdispl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: libxl__update_config_vdispl
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__update_config_vdispl(libxl__gc *gc,\n                                        libxl_device_vdispl
      *dst,\n                                        libxl_device_vdispl *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_DEVID
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_vdispl*
    - libxl_device_vdispl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: libxl_device_vdispl_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - COMPARE_DEVID
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vdispl_compare(const libxl_device_vdispl *d1,\n                                       const
      libxl_device_vdispl *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - domid
    - vdispl
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_vdispl*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: libxl__device_vdispl_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - libxl__device_add_async
    linkageType: ''
    returnType: void
    signature: "void libxl__device_vdispl_add(libxl__egc *egc, uint32_t domid,\n                                     libxl_device_vdispl
      *vdispl,\n                                     libxl__ao_device *aodev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:71,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:72,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:75,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:75,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:76,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:78,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - gc
    - domid
    - vdispl
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vdispl*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 83
    functionName: libxl__set_xenstore_vdispl
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_vdispl(libxl__gc *gc, uint32_t domid,\n                                      libxl_device_vdispl
      *vdispl,\n                                      flexarray_t *back, flexarray_t
      *front,\n                                      flexarray_t *ro_front)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:89,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:96,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:98,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:100,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:101,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:104,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:111,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:112,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:115,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:116,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:119,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:121,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:127,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:128,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:129,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:130,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:132,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:133,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:134,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:135,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:137,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:138,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:139,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:140,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:142,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:143,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:144,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - path
    - info
    argTypes:
    - libxl_ctx*
    - char*
    - libxl_vdisplinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 152
    functionName: libxl__device_vdispl_getconnectors
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - free
    - xs_read
    - libxl__calloc
    - sscanf
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vdispl_getconnectors(libxl_ctx *ctx,\n                                              const
      char *path,\n                                              libxl_vdisplinfo
      *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:158,1
    - Dst: libxl_vdisplinfo_init
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:163,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:166,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:168,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:171,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:172,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:176,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:179,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:179,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:180,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:182,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:183,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:187,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:187,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:188,1
    - Dst: libxl__device_vdispl_getconnectors
      Src: /src/xen/tools/libs/light/libxl_vdispl.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - domid
    - vdispl
    - info
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vdispl*
    - libxl_vdisplinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 154
    functionDepth: 5
    functionLinenumber: 154
    functionLinenumberEnd: 198
    functionName: libxl_device_vdispl_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vdispl.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - GCSPRINTF
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__xs_read
    - libxl_vdisplinfo_init
    - libxl__device_vdispl_getconnectors
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vdispl_getinfo(libxl_ctx *ctx, uint32_t domid,\n
      \                               const libxl_device_vdispl *vdispl,\n                                libxl_vdisplinfo
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:37,1
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:41,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chs
    argTypes:
    - libxl__conversion_helper_state*
    assertStmts:
    - condition: (chs->ao)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: libxl__conversion_helper_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 1
    functionsReached:
    - libxl__ao_abortable_init
    - assert
    - libxl__ev_child_init
    linkageType: ''
    returnType: void
    signature: void libxl__conversion_helper_init(libxl__conversion_helper_state *chs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:48,1
    - Dst: libxl__ao_abortable_register
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:54,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:57,1
    - Dst: libxl_pipe
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:59,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:61,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:64,1
    - Dst: libxl__carefd_record
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:65,1
    - Dst: libxl__carefd_unlock
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:66,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:68,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:72,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:74,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:75,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:99,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:100,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:100,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:102,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:107,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:110,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:114,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - egc
    - chs
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    assertStmts:
    - condition: (!rc)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
    - condition: (rc)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
    constantsTouched: []
    func_position:
      end: 117
      start: 45
    functionDepth: 7
    functionLinenumber: 45
    functionLinenumberEnd: 117
    functionName: libxl__convert_legacy_stream
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl_pipe
    - GCSPRINTF
    - libxl__ao_abortable_deregister
    - libxl__carefd_record
    - libxl__carefd_unlock
    - libxl__carefd_fd
    - libxl__carefd_close
    - libxl__ao_abortable_register
    - libxl__exec
    - libxl_fd_set_cloexec
    - libxl__carefd_begin
    - getenv
    - libxl__ev_child_fork
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__convert_legacy_stream(libxl__egc *egc,\n                                 libxl__conversion_helper_state
      *chs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:123,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:124,1
    - Dst: libxl__conversion_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:126,1
    - Dst: libxl__kill
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - chs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
    constantsTouched: []
    func_position:
      end: 133
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 133
    functionName: libxl__conversion_helper_abort
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__conversion_helper_inuse
    - assert
    - libxl__kill
    linkageType: ''
    returnType: void
    signature: "void libxl__conversion_helper_abort(libxl__egc *egc,\n                                    libxl__conversion_helper_state
      *chs,\n                                    int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:139,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:140,1
    - Dst: libxl__conversion_helper_abort
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - abrt
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ao_abortable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: helper_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__conversion_helper_abort
    linkageType: ''
    returnType: void
    signature: void helper_stop(libxl__egc *egc, libxl__ao_abortable *abrt, int rc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:148,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:149,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:152,1
    - Dst: helper_done
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - ch
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 161
    functionName: helper_exited
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - helper_done
    linkageType: ''
    returnType: void
    signature: "void helper_exited(libxl__egc *egc, libxl__ev_child *ch,\n                          pid_t
      pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:166,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:168,1
    - Dst: libxl__conversion_helper_inuse
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:168,1
    - Dst: libxl__ao_abortable_deregister
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:170,1
    - Dst: libxl__conversion_helper_state*::completion_callback
      Src: /src/xen/tools/libs/light/libxl_convert_callout.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - egc
    - chs
    argTypes:
    - libxl__egc*
    - libxl__conversion_helper_state*
    assertStmts:
    - condition: (!libxl__conversion_helper_inuse(chs))
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: helper_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_convert_callout.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - libxl__conversion_helper_inuse
    - libxl__ao_abortable_deregister
    - libxl__conversion_helper_state*::completion_callback
    - assert
    linkageType: ''
    returnType: void
    signature: "void helper_done(libxl__egc *egc,\n                        libxl__conversion_helper_state
      *chs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:29,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:33,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:37,1
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:41,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - gc
    - domid
    - p9
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_p9*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: libxl__device_p9_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - LOGD
    - libxl__resolve_domid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_p9_setdefault(libxl__gc *gc, uint32_t domid,\n                                       libxl_device_p9
      *p9, bool hotplug)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:49,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:50,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:52,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:55,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:56,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:57,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:58,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:59,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:60,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - gc
    - domid
    - p9
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_p9*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 66
    functionName: libxl__set_xenstore_p9
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - flexarray_append_pair
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_p9(libxl__gc *gc, uint32_t domid,\n                                  libxl_device_p9
      *p9,\n                                  flexarray_t *back, flexarray_t *front,\n
      \                                 flexarray_t *ro_front)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - domid
    - type
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_p9*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: libxl__device_from_p9
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_p9(libxl__gc *gc, uint32_t domid,\n                                 libxl_device_p9
      *type, libxl__device *device)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - e
    - domid
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: libxl__device_p9_dm_needed
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__device_p9_dm_needed(void *e, unsigned domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:116,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:120,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:124,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:124,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:127,1
    - Dst: libxl_device_p9_copy
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:129,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:134,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:136,1
    - Dst: libxl__spawn_spawn
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:141,1
    - Dst: setsid
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:145,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - egc
    - domid
    - p9
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_p9*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: xen9pfsd_spawn
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - GCNEW
    - libxl__spawn_spawn
    - libxl__xs_read
    - setsid
    - libxl_device_p9_copy
    - libxl__exec
    linkageType: ''
    returnType: int
    signature: "int xen9pfsd_spawn(libxl__egc *egc, uint32_t domid, libxl_device_p9
      *p9,\n                         libxl__ao_device *aodev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:155,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:160,1
    - Dst: libxl__spawn_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - egc
    - spawn
    - xsdata
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: xen9pfsd_confirm
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - strcmp
    - libxl__spawn_initiate_detach
    linkageType: ''
    returnType: void
    signature: "void xen9pfsd_confirm(libxl__egc *egc, libxl__spawn_state *spawn,\n
      \                            const char *xsdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:168,1
    - Dst: xen9pfsd_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - spawn
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: xen9pfsd_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - xen9pfsd_spawn_outcome
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: void xen9pfsd_failed(libxl__egc *egc, libxl__spawn_state *spawn, int
      rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:175,1
    - Dst: xen9pfsd_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - spawn
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: xen9pfsd_detached
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - xen9pfsd_spawn_outcome
    - CONTAINER_OF
    linkageType: ''
    returnType: void
    signature: void xen9pfsd_detached(libxl__egc *egc, libxl__spawn_state *spawn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__aop9_state*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:185,1
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - aop9
    - rc
    argTypes:
    - libxl__egc*
    - libxl__aop9_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 6
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: xen9pfsd_spawn_outcome
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 2
    functionsReached:
    - libxl__device_add_async
    - libxl__aop9_state*::aodev::callback
    linkageType: ''
    returnType: void
    signature: "void xen9pfsd_spawn_outcome(libxl__egc *egc, libxl__aop9_state *aop9,\n
      \                                  int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xen9pfsd_spawn
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:197,1
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:202,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - egc
    - domid
    - p9
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_p9*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: libxl__device_p9_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - libxl__ao_device*::callback
    - libxl__device_add_async
    - xen9pfsd_spawn
    linkageType: ''
    returnType: void
    signature: "void libxl__device_p9_add(libxl__egc *egc, uint32_t domid,\n                                 libxl_device_p9
      *p9,\n                                 libxl__ao_device *aodev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:212,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:215,1
    - Dst: libxl__prepare_ao_device
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:216,1
    - Dst: libxl__device_p9_add
      Src: /src/xen/tools/libs/light/libxl_9pfs.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - domid
    - p9
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_p9*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 7
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: libxl_device_9pfs_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_9pfs.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__prepare_ao_device
    - libxl__device_p9_add
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_device_9pfs_add(libxl_ctx *ctx, uint32_t domid, libxl_device_p9
      *p9,\n                          const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: libxl__netbuffer_enabled
    functionSourceFile: /src/xen/tools/libs/light/libxl_nonetbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__netbuffer_enabled(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: init_subkind_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_nonetbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_subkind_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: cleanup_subkind_nic
    functionSourceFile: /src/xen/tools/libs/light/libxl_nonetbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_subkind_nic(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_nonetbuffer.c:37,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_nonetbuffer.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: nic_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_nonetbuffer.c
    functionUses: 2
    functionsReached:
    - libxl__checkpoint_device*::aodev::callback
    - STATE_AO_GC
    linkageType: ''
    returnType: void
    signature: void nic_setup(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dom
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: DEBUG_REPORT_RECEIVED
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_REPORT_RECEIVED(dom, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dom
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: DEBUG_REPORT_RECEIVED
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_REPORT_RECEIVED(dom, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: LOG_QMP
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_QMP(f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - qmp
    - o
    - unused
    argTypes:
    - libxl__qmp_handler*
    - libxl__json_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: qmp_capabilities_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int qmp_capabilities_callback(libxl__qmp_handler *qmp,\n                                     const
      libxl__json_object *o, void *unused)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qmp
    argTypes:
    - libxl__qmp_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: enable_qmp_capabilities
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - qmp_send
    linkageType: ''
    returnType: int
    signature: int enable_qmp_capabilities(libxl__qmp_handler *qmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_map_node_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:177,1
    - Dst: libxl__qmp_message_type_from_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: qmp_response_type
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__qmp_message_type_from_string
    - libxl__json_map_node_get
    linkageType: ''
    returnType: libxl__qmp_message_type
    signature: libxl__qmp_message_type qmp_response_type(const libxl__json_object
      *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:188,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:194,1
    - Dst: XEN_STAILQ_FOREACH
      Src: /src/xen/tools/libs/light/libxl_qmp.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - qmp
    - o
    argTypes:
    - libxl__qmp_handler*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 203
    functionName: qmp_get_callback_from_id
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__json_map_get
    - XEN_STAILQ_FOREACH
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: callback_id_pair
    signature: "callback_id_pair *qmp_get_callback_from_id(libxl__qmp_handler *qmp,\n
      \                                                 const libxl__json_object *o)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qmp_get_callback_from_id
      Src: /src/xen/tools/libs/light/libxl_qmp.c:208,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:210,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:211,1
    - Dst: callback_id_pair*::callback
      Src: /src/xen/tools/libs/light/libxl_qmp.c:215,1
    - Dst: XEN_STAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_qmp.c:224,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:225,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:228,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - qmp
    - resp
    argTypes:
    - libxl__gc*
    - libxl__qmp_handler*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 230
    functionName: qmp_handle_error_response
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_get_string
    - LOGD
    - free
    - libxl__json_map_get
    - callback_id_pair*::callback
    - XEN_STAILQ_REMOVE
    - qmp_get_callback_from_id
    linkageType: ''
    returnType: void
    signature: "void qmp_handle_error_response(libxl__gc *gc, libxl__qmp_handler *qmp,\n
      \                                     const libxl__json_object *resp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: qmp_response_type
      Src: /src/xen/tools/libs/light/libxl_qmp.c:237,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:238,1
    - Dst: libxl__qmp_message_type_to_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:238,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:243,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:244,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:245,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:246,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:247,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:248,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:249,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:250,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:251,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:252,1
    - Dst: enable_qmp_capabilities
      Src: /src/xen/tools/libs/light/libxl_qmp.c:255,1
    - Dst: qmp_get_callback_from_id
      Src: /src/xen/tools/libs/light/libxl_qmp.c:258,1
    - Dst: callback_id_pair*::callback
      Src: /src/xen/tools/libs/light/libxl_qmp.c:262,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:263,1
    - Dst: XEN_STAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_qmp.c:273,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:274,1
    - Dst: qmp_handle_error_response
      Src: /src/xen/tools/libs/light/libxl_qmp.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 3
    argNames:
    - gc
    - qmp
    - resp
    argTypes:
    - libxl__gc*
    - libxl__qmp_handler*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 287
    functionName: qmp_handle_response
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - enable_qmp_capabilities
    - LOGD
    - qmp_handle_error_response
    - qmp_response_type
    - free
    - qmp_get_callback_from_id
    - libxl__json_map_get
    - libxl__qmp_message_type_to_string
    - callback_id_pair*::callback
    - XEN_STAILQ_REMOVE
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int qmp_handle_response(libxl__gc *gc, libxl__qmp_handler *qmp,\n
      \                              const libxl__json_object *resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:298,1
    - Dst: CHECK_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:305,1
    - Dst: CHECK_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:306,1
    - Dst: CHECK_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ev
    - major
    - minor
    - micro
    argTypes:
    - libxl__ev_qmp*
    - int
    - int
    - int
    assertStmts:
    - condition: (ev->state == qmp_state_connected)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: libxl__qmp_ev_qemu_compare_version
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - assert
    - CHECK_VERSION
    linkageType: ''
    returnType: int
    signature: "int libxl__qmp_ev_qemu_compare_version(libxl__ev_qmp *ev, int major,\n
      \                                      int minor, int micro)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: CHECK_VERSION
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VERSION(level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:322,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:324,1
    - Dst: XEN_STAILQ_INIT
      Src: /src/xen/tools/libs/light/libxl_qmp.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 334
    functionName: qmp_init_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - XEN_STAILQ_INIT
    - calloc
    - LOGED
    linkageType: ''
    returnType: libxl__qmp_handler
    signature: libxl__qmp_handler *qmp_init_handler(libxl__gc *gc, uint32_t domid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_qmp.c:339,1
    - Dst: socket
      Src: /src/xen/tools/libs/light/libxl_qmp.c:344,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_qmp.c:348,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/libs/light/libxl_qmp.c:353,1
    - Dst: libxl__prepare_sockaddr_un
      Src: /src/xen/tools/libs/light/libxl_qmp.c:359,1
    - Dst: connect
      Src: /src/xen/tools/libs/light/libxl_qmp.c:364,1
    - Dst: usleep
      Src: /src/xen/tools/libs/light/libxl_qmp.c:374,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:377,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - qmp
    - qmp_socket_path
    - timeout
    argTypes:
    - libxl__qmp_handler*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 381
    functionName: qmp_open
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__prepare_sockaddr_un
    - usleep
    - socket
    - connect
    - libxl_fd_set_nonblock
    - close
    - libxl_fd_set_cloexec
    linkageType: ''
    returnType: int
    signature: "int qmp_open(libxl__qmp_handler *qmp, const char *qmp_socket_path,\n
      \                   int timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:388,1
    - Dst: XEN_STAILQ_FOREACH
      Src: /src/xen/tools/libs/light/libxl_qmp.c:389,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:390,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - qmp
    argTypes:
    - libxl__qmp_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: qmp_close
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - free
    - XEN_STAILQ_FOREACH
    - close
    linkageType: ''
    returnType: void
    signature: void qmp_close(libxl__qmp_handler *qmp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/xen/tools/libs/light/libxl_qmp.c:414,1
    - Dst: FD_SET
      Src: /src/xen/tools/libs/light/libxl_qmp.c:415,1
    - Dst: select
      Src: /src/xen/tools/libs/light/libxl_qmp.c:417,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:419,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:424,1
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_qmp.c:428,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:430,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:433,1
    - Dst: DEBUG_REPORT_RECEIVED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:438,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:442,1
    - Dst: strncat
      Src: /src/xen/tools/libs/light/libxl_qmp.c:444,1
    - Dst: libxl__strndup
      Src: /src/xen/tools/libs/light/libxl_qmp.c:449,1
    - Dst: strstr
      Src: /src/xen/tools/libs/light/libxl_qmp.c:459,1
    - Dst: libxl__json_parse
      Src: /src/xen/tools/libs/light/libxl_qmp.c:465,1
    - Dst: qmp_handle_response
      Src: /src/xen/tools/libs/light/libxl_qmp.c:468,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 2
    argNames:
    - gc
    - qmp
    argTypes:
    - libxl__gc*
    - libxl__qmp_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 482
    functionName: qmp_next
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - read
    - LOGD
    - qmp_handle_response
    - FD_SET
    - FD_ZERO
    - strncat
    - LOGED
    - libxl__json_parse
    - select
    - strstr
    - DEBUG_REPORT_RECEIVED
    - libxl__strndup
    linkageType: ''
    returnType: int
    signature: int qmp_next(libxl__gc *gc, libxl__qmp_handler *qmp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_object
      Src: /src/xen/tools/libs/light/libxl_qmp.c:506,1
    - Dst: json_object_new_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:510,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:513,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/libs/light/libxl_qmp.c:516,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:519,1
    - Dst: libxl__json_object_to_json_object
      Src: /src/xen/tools/libs/light/libxl_qmp.c:525,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:528,1
    - Dst: json_object_to_json_string_ext
      Src: /src/xen/tools/libs/light/libxl_qmp.c:534,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_qmp.c:535,1
    - Dst: libxl_yajl_gen_alloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:538,1
    - Dst: yajl_gen_config
      Src: /src/xen/tools/libs/light/libxl_qmp.c:546,1
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/libs/light/libxl_qmp.c:549,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_qmp.c:550,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_qmp.c:551,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_qmp.c:552,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:553,1
    - Dst: libxl__yajl_gen_asciiz
      Src: /src/xen/tools/libs/light/libxl_qmp.c:555,1
    - Dst: libxl__json_object_to_yajl_gen
      Src: /src/xen/tools/libs/light/libxl_qmp.c:556,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:558,1
    - Dst: yajl_gen_get_buf
      Src: /src/xen/tools/libs/light/libxl_qmp.c:560,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_qmp.c:565,1
    - Dst: json_object_put
      Src: /src/xen/tools/libs/light/libxl_qmp.c:571,1
    - Dst: yajl_gen_free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:573,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - gc
    - cmd
    - args
    - id
    argTypes:
    - libxl__gc*
    - char*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 484
    functionDepth: 6
    functionLinenumber: 484
    functionLinenumberEnd: 576
    functionName: qmp_prepare_cmd
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__json_object_to_yajl_gen
    - libxl__yajl_gen_asciiz
    - json_object_new_string
    - yajl_gen_map_close
    - json_object_new_object
    - yajl_gen_map_open
    - libxl__json_object_to_json_object
    - libxl__sprintf
    - json_object_new_int
    - libxl_yajl_gen_alloc
    - yajl_gen_get_buf
    - json_object_put
    - yajl_gen_free
    - yajl_gen_config
    - json_object_to_json_string_ext
    - yajl_gen_integer
    - json_object_object_add
    linkageType: ''
    returnType: char
    signature: "char *qmp_prepare_cmd(libxl__gc *gc, const char *cmd,\n                             const
      libxl__json_object *args,\n                             int id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qmp_prepare_cmd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:586,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:589,1
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:593,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:595,1
    - Dst: XEN_STAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/light/libxl_qmp.c:602,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 7
    argNames:
    - gc
    - qmp
    - cmd
    - args
    - callback
    - opaque
    - context
    argTypes:
    - libxl__gc*
    - libxl__qmp_handler*
    - char*
    - libxl__json_object*
    - qmp_callback_t
    - void*
    - qmp_request_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 578
    functionDepth: 7
    functionLinenumber: 578
    functionLinenumberEnd: 608
    functionName: qmp_send_prepare
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - qmp_prepare_cmd
    - LOGD
    - XEN_STAILQ_INSERT_TAIL
    - malloc
    - LOGED
    linkageType: ''
    returnType: char
    signature: "char *qmp_send_prepare(libxl__gc *gc, libxl__qmp_handler *qmp,\n                              const
      char *cmd, libxl__json_object *args,\n                              qmp_callback_t
      callback, void *opaque,\n                              qmp_request_context *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_qmp.c:617,1
    - Dst: qmp_send_prepare
      Src: /src/xen/tools/libs/light/libxl_qmp.c:619,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_qmp.c:625,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_qmp.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - qmp
    - cmd
    - args
    - callback
    - opaque
    - context
    argTypes:
    - libxl__qmp_handler*
    - char*
    - libxl__json_object*
    - qmp_callback_t
    - void*
    - qmp_request_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: qmp_send
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 16
    functionsReached:
    - GC_INIT
    - qmp_send_prepare
    - strlen
    - libxl_write_exactly
    linkageType: ''
    returnType: int
    signature: "int qmp_send(libxl__qmp_handler *qmp,\n                    const char
      *cmd, libxl__json_object *args,\n                    qmp_callback_t callback,
      void *opaque,\n                    qmp_request_context *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_qmp.c:642,1
    - Dst: qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:645,1
    - Dst: qmp_next
      Src: /src/xen/tools/libs/light/libxl_qmp.c:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - qmp
    - cmd
    - args
    - callback
    - opaque
    - ask_timeout
    argTypes:
    - libxl__qmp_handler*
    - char*
    - libxl__json_object*
    - qmp_callback_t
    - void*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 635
    functionDepth: 9
    functionLinenumber: 635
    functionLinenumberEnd: 664
    functionName: qmp_synchronous_send
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - qmp_send
    - qmp_next
    linkageType: ''
    returnType: int
    signature: "int qmp_synchronous_send(libxl__qmp_handler *qmp, const char *cmd,\n
      \                               libxl__json_object *args,\n                                qmp_callback_t
      callback, void *opaque,\n                                time_t ask_timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_qmp.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qmp
    argTypes:
    - libxl__qmp_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: qmp_free_handler
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void qmp_free_handler(libxl__qmp_handler *qmp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:682,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_qmp.c:685,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_qmp.c:687,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_qmp.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - param
    - name
    - obj
    argTypes:
    - libxl__gc*
    - libxl__json_object**
    - char*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 691
    functionName: qmp_parameters_common_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - flexarray_append
    - libxl__strdup
    - libxl__json_object_alloc
    - GCNEW
    linkageType: ''
    returnType: void
    signature: "void qmp_parameters_common_add(libxl__gc *gc,\n                                      libxl__json_object
      **param,\n                                      const char *name,\n                                      libxl__json_object
      *obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:699,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_qmp.c:700,1
    - Dst: qmp_parameters_common_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - param
    - name
    - argument
    argTypes:
    - libxl__gc*
    - libxl__json_object**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 693
    functionDepth: 5
    functionLinenumber: 693
    functionLinenumberEnd: 703
    functionName: libxl__qmp_param_add_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 6
    functionsReached:
    - qmp_parameters_common_add
    - libxl__strdup
    - libxl__json_object_alloc
    linkageType: ''
    returnType: void
    signature: "void libxl__qmp_param_add_string(libxl__gc *gc,\n                                 libxl__json_object
      **param,\n                                 const char *name, const char *argument)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:711,1
    - Dst: qmp_parameters_common_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - param
    - name
    - b
    argTypes:
    - libxl__gc*
    - libxl__json_object**
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 705
    functionDepth: 5
    functionLinenumber: 705
    functionLinenumberEnd: 714
    functionName: libxl__qmp_param_add_bool
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_parameters_common_add
    - libxl__json_object_alloc
    linkageType: ''
    returnType: void
    signature: "void libxl__qmp_param_add_bool(libxl__gc *gc,\n                               libxl__json_object
      **param,\n                               const char *name, bool b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_alloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:722,1
    - Dst: qmp_parameters_common_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - param
    - name
    - i
    argTypes:
    - libxl__gc*
    - libxl__json_object**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 716
    functionDepth: 5
    functionLinenumber: 716
    functionLinenumberEnd: 726
    functionName: libxl__qmp_param_add_integer
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 3
    functionsReached:
    - qmp_parameters_common_add
    - libxl__json_object_alloc
    linkageType: ''
    returnType: void
    signature: "void libxl__qmp_param_add_integer(libxl__gc *gc,\n                                  libxl__json_object
      **param,\n                                  const char *name, const int i)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qmp_init_handler
      Src: /src/xen/tools/libs/light/libxl_qmp.c:738,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:741,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_qmp.c:741,1
    - Dst: qmp_open
      Src: /src/xen/tools/libs/light/libxl_qmp.c:742,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:743,1
    - Dst: qmp_free_handler
      Src: /src/xen/tools/libs/light/libxl_qmp.c:744,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:748,1
    - Dst: qmp_next
      Src: /src/xen/tools/libs/light/libxl_qmp.c:752,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:758,1
    - Dst: libxl__qmp_close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 732
    functionDepth: 6
    functionLinenumber: 732
    functionLinenumberEnd: 763
    functionName: libxl__qmp_initialize
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - qmp_next
    - libxl__run_dir_path
    - GCSPRINTF
    - LOGD
    - qmp_open
    - LOGED
    - libxl__qmp_close
    - qmp_init_handler
    - qmp_free_handler
    linkageType: ''
    returnType: libxl__qmp_handler
    signature: libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qmp_close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:769,1
    - Dst: qmp_free_handler
      Src: /src/xen/tools/libs/light/libxl_qmp.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qmp
    argTypes:
    - libxl__qmp_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: libxl__qmp_close
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_free_handler
    - qmp_close
    linkageType: ''
    returnType: void
    signature: void libxl__qmp_close(libxl__qmp_handler *qmp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:777,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_qmp.c:777,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_qmp.c:778,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:780,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:784,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_qmp.c:784,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_qmp.c:785,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 790
    functionName: libxl__qmp_cleanup
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - LOGED
    - libxl__run_dir_path
    - GCSPRINTF
    - unlink
    linkageType: ''
    returnType: void
    signature: void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_initialize
      Src: /src/xen/tools/libs/light/libxl_qmp.c:799,1
    - Dst: qmp_synchronous_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:803,1
    - Dst: libxl__qmp_close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - gc
    - domid
    - cmd
    - args
    - callback
    - opaque
    argTypes:
    - libxl__gc*
    - int
    - char*
    - libxl__json_object*
    - qmp_callback_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 792
    functionDepth: 10
    functionLinenumber: 792
    functionLinenumberEnd: 807
    functionName: qmp_run_command
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - qmp_synchronous_send
    - libxl__qmp_close
    - libxl__qmp_initialize
    linkageType: ''
    returnType: int
    signature: "int qmp_run_command(libxl__gc *gc, int domid,\n                           const
      char *cmd, libxl__json_object *args,\n                           qmp_callback_t
      callback, void *opaque)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:813,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - domid
    - state_file
    argTypes:
    - libxl__gc*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 11
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: libxl__qmp_restore
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_string
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_restore(libxl__gc *gc, int domid, const char *state_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 11
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: libxl__qmp_resume
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - qmp_run_command
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_resume(libxl__gc *gc, int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:839,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:840,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:842,1
    - Dst: qmp_parameters_common_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:843,1
    - Dst: qmp_parameters_common_add
      Src: /src/xen/tools/libs/light/libxl_qmp.c:845,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - gc
    - domid
    - host
    - port
    argTypes:
    - libxl__gc*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 824
    functionDepth: 11
    functionLinenumber: 824
    functionLinenumberEnd: 848
    functionName: libxl__qmp_nbd_server_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_parameters_common_add
    - qmp_run_command
    - libxl__qmp_param_add_string
    linkageType: ''
    returnType: int
    signature: "int libxl__qmp_nbd_server_start(libxl__gc *gc, int domid,\n                                const
      char *host, const char *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:854,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:855,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - domid
    - disk
    argTypes:
    - libxl__gc*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 850
    functionDepth: 11
    functionLinenumber: 850
    functionLinenumberEnd: 858
    functionName: libxl__qmp_nbd_server_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_string
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_nbd_server_add(libxl__gc *gc, int domid, const char
      *disk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:864,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:865,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - domid
    - primary
    argTypes:
    - libxl__gc*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 11
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: libxl__qmp_start_replication
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_start_replication(libxl__gc *gc, int domid, bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 11
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: libxl__qmp_query_xen_replication_status
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - qmp_run_command
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_query_xen_replication_status(libxl__gc *gc, int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 876
    functionDepth: 11
    functionLinenumber: 876
    functionLinenumberEnd: 880
    functionName: libxl__qmp_colo_do_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - qmp_run_command
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_colo_do_checkpoint(libxl__gc *gc, int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:886,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:887,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - domid
    - primary
    argTypes:
    - libxl__gc*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 11
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: libxl__qmp_stop_replication
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_stop_replication(libxl__gc *gc, int domid, bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 892
    functionDepth: 11
    functionLinenumber: 892
    functionLinenumberEnd: 895
    functionName: libxl__qmp_nbd_server_stop
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_run_command
    linkageType: ''
    returnType: int
    signature: int libxl__qmp_nbd_server_stop(libxl__gc *gc, int domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:902,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:904,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:906,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - gc
    - domid
    - parent
    - child
    - node
    argTypes:
    - libxl__gc*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 897
    functionDepth: 11
    functionLinenumber: 897
    functionLinenumberEnd: 909
    functionName: libxl__qmp_x_blockdev_change
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_string
    linkageType: ''
    returnType: int
    signature: "int libxl__qmp_x_blockdev_change(libxl__gc *gc, int domid, const char
      *parent,\n                                 const char *child, const char *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_qmp.c:916,1
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:925,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_qmp.c:926,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:926,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_qmp.c:930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - qmp
    - response
    - opaque
    argTypes:
    - libxl__qmp_handler*
    - libxl__json_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 936
    functionName: hmp_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__json_object_get_string
    - libxl__strdup
    - LOG
    - libxl__json_object_is_string
    linkageType: ''
    returnType: int
    signature: "int hmp_callback(libxl__qmp_handler *qmp,\n                        const
      libxl__json_object *response,\n                        void *opaque)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:943,1
    - Dst: qmp_run_command
      Src: /src/xen/tools/libs/light/libxl_qmp.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gc
    - domid
    - command_line
    - output
    argTypes:
    - libxl__gc*
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 938
    functionDepth: 11
    functionLinenumber: 938
    functionLinenumberEnd: 947
    functionName: libxl__qmp_hmp
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_run_command
    - libxl__qmp_param_add_string
    linkageType: ''
    returnType: int
    signature: "int libxl__qmp_hmp(libxl__gc *gc, int domid, const char *command_line,\n
      \                  char **output)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_qmp.c:963,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_qmp.c:973,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_qmp.c:974,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:980,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:981,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_qmp.c:983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - ctx
    - domid
    - command_line
    - output
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - char**
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 985
    functionName: libxl_qemu_monitor_command
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - GCNEW
    - libxl__ev_qmp_init
    - libxl__ev_qmp_send
    - libxl__qmp_param_add_string
    - AO_CREATE_FAIL
    linkageType: ''
    returnType: int
    signature: "int libxl_qemu_monitor_command(libxl_ctx *ctx, uint32_t domid,\n                               const
      char *command_line, char **output,\n                               const libxl_asyncop_how
      *ao_how)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:991,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:992,1
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:996,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:998,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1003,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1003,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1007,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 987
    functionDepth: 4
    functionLinenumber: 987
    functionLinenumberEnd: 1009
    functionName: qemu_monitor_command_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__json_object_get_string
    - LOGD
    - libxl__strdup
    - libxl__ev_qmp_dispose
    - libxl__ao_complete
    - libxl__json_object_is_string
    linkageType: ''
    returnType: void
    signature: "void qemu_monitor_command_done(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                     const libxl__json_object *response,\n
      \                                     int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1036,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1044
    functionName: libxl__qmp_suspend_save
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__domain_suspend_state*::callback_device_model_done
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: void
    signature: "void libxl__qmp_suspend_save(libxl__egc *egc,\n                             libxl__domain_suspend_state
      *dsps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1050,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1052,1
    - Dst: dm_state_save_to_fdset
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1059,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1063,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1065,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1072,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1080,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1081,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1084,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - egc
    - ev
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1085
    functionName: dm_stopped
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - open
    - libxl__remove_file
    - libxl__ev_qmp_send
    - LOGED
    - close
    - dm_state_save_to_fdset
    - libxl_get_stubdom_id
    - libxl__domain_suspend_state*::callback_device_model_done
    linkageType: ''
    returnType: void
    signature: "void dm_stopped(libxl__egc *egc, libxl__ev_qmp *ev,\n                       const
      libxl__json_object *response, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1093,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1095,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1101,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1106,1
    - Dst: dm_state_save_to_fdset
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1107,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1111,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1112,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - egc
    - ev
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1110
        line_start: 1110
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1114
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1114
    functionName: dm_state_fd_ready
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__remove_file
    - close
    - dm_state_save_to_fdset
    - libxl__json_map_get
    - libxl__domain_suspend_state*::callback_device_model_done
    - assert
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: void
    signature: "void dm_state_fd_ready(libxl__egc *egc, libxl__ev_qmp *ev,\n                              const
      libxl__json_object *response, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1121,1
    - Dst: libxl__qmp_ev_qemu_compare_version
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1128,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1129,1
    - Dst: QMP_PARAMETERS_SPRINTF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1130,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1131,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1138,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1139,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1140,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - egc
    - ev
    - fdset
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1137
        line_start: 1137
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1142
      start: 1116
    functionDepth: 6
    functionLinenumber: 1116
    functionLinenumberEnd: 1142
    functionName: dm_state_save_to_fdset
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 2
    functionsReached:
    - CONTAINER_OF
    - libxl__remove_file
    - libxl__qmp_ev_qemu_compare_version
    - libxl__ev_qmp_send
    - QMP_PARAMETERS_SPRINTF
    - libxl_get_stubdom_id
    - libxl__domain_suspend_state*::callback_device_model_done
    - assert
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: void
    signature: void dm_state_save_to_fdset(libxl__egc *egc, libxl__ev_qmp *ev, int
      fdset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1148,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1151,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1154
    functionName: dm_state_saved
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__remove_file
    - CONTAINER_OF
    - libxl__domain_suspend_state*::callback_device_model_done
    linkageType: ''
    returnType: void
    signature: "void dm_state_saved(libxl__egc *egc, libxl__ev_qmp *ev,\n                           const
      libxl__json_object *response, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_modify
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - ev
    argTypes:
    - libxl__gc*
    - libxl__ev_qmp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1245
    functionName: qmp_ev_ensure_reading_writing
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - libxl__ev_fd_modify
    linkageType: ''
    returnType: void
    signature: void qmp_ev_ensure_reading_writing(libxl__gc *gc, libxl__ev_qmp *ev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1255,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1258,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1261,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1264,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1268,1
    - Dst: qmp_ev_ensure_reading_writing
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - gc
    - ev
    - new_state
    argTypes:
    - libxl__gc*
    - libxl__ev_qmp*
    - libxl__qmp_state
    assertStmts:
    - condition: (ev->state == qmp_state_disconnected)
      pos:
        line_end: 1254
        line_start: 1254
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (ev->state == qmp_state_waiting_lock)
      pos:
        line_end: 1257
        line_start: 1257
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (ev->state == qmp_state_connecting)
      pos:
        line_end: 1260
        line_start: 1260
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: "(ev->state == qmp_state_capability_negotiation ||\n               ev->state
        == qmp_state_connected)"
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (ev->state == qmp_state_waiting_reply)
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1275
      start: 1247
    functionDepth: 4
    functionLinenumber: 1247
    functionLinenumberEnd: 1275
    functionName: qmp_ev_set_state
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - assert
    - qmp_ev_ensure_reading_writing
    linkageType: ''
    returnType: void
    signature: "void qmp_ev_set_state(libxl__gc *gc, libxl__ev_qmp *ev,\n                             libxl__qmp_state
      new_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ev
    argTypes:
    - libxl__ev_qmp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1282
    functionName: qmp_ev_tx_buf_clear
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void qmp_ev_tx_buf_clear(libxl__ev_qmp *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1297,1
    - Dst: tolower
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1306,1
    - Dst: tolower
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1306,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - gc
    - eclass
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1316
    functionName: qmp_error_class_to_libxl_error_code
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - LOG
    - tolower
    linkageType: ''
    returnType: int
    signature: "int qmp_error_class_to_libxl_error_code(libxl__gc *gc,\n                                               const
      char *eclass)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1335,1
    - Dst: libxl__carefd_begin
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1337,1
    - Dst: socket
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1338,1
    - Dst: libxl__carefd_opened
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1339,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1341,1
    - Dst: libxl_fd_set_nonblock
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1345,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1345,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1349,1
    - Dst: libxl__ev_slowlock_lock
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - egc
    - ev
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    assertStmts:
    - condition: (ev->state == qmp_state_disconnected)
      pos:
        line_end: 1334
        line_start: 1334
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1360
      start: 1324
    functionDepth: 5
    functionLinenumber: 1324
    functionLinenumberEnd: 1360
    functionName: qmp_ev_connect
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - socket
    - libxl__carefd_fd
    - libxl__carefd_opened
    - libxl_fd_set_nonblock
    - LOGED
    - qmp_ev_set_state
    - libxl__ev_slowlock_lock
    - libxl__carefd_begin
    - assert
    linkageType: ''
    returnType: int
    signature: int qmp_ev_connect(libxl__egc *egc, libxl__ev_qmp *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1367,1
    - Dst: libxl__qemu_qmp_path
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1375,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1377,1
    - Dst: libxl__prepare_sockaddr_un
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1379,1
    - Dst: connect
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1384,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1384,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1387,1
    - Dst: libxl__ev_fd_register
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1393,1
    - Dst: libxl__carefd_fd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1394,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1398,1
    - Dst: libxl__ev_immediate_register
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1411,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - egc
    - lock
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_slowlock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1362
    functionDepth: 5
    functionLinenumber: 1362
    functionLinenumberEnd: 1412
    functionName: qmp_ev_lock_aquired
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - libxl__prepare_sockaddr_un
    - connect
    - libxl__carefd_fd
    - LOGED
    - qmp_ev_set_state
    - libxl__qemu_qmp_path
    - libxl__ev_immediate_register
    - libxl__ev_fd_register
    linkageType: ''
    returnType: void
    signature: "void qmp_ev_lock_aquired(libxl__egc *egc, libxl__ev_slowlock *lock,\n
      \                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1418,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1423,1
    - Dst: libxl__ev_qmp*::callback
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - ei
    argTypes:
    - libxl__egc*
    - libxl__ev_immediate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1427
    functionName: lock_error_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__ev_qmp*::callback
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: void lock_error_callback(libxl__egc *egc, libxl__ev_immediate *ei)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1438,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1439,1
    - Dst: getsockopt
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1447,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1449,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1452,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1454,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1462,1
    - Dst: qmp_ev_callback_writable
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1471,1
    - Dst: qmp_ev_callback_readable
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1477,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1489,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1491,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1495,1
    - Dst: libxl__ev_qmp*::callback
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1498,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - egc
    - ev_fd
    - fd
    - events
    - revents
    argTypes:
    - libxl__egc*
    - libxl__ev_fd*
    - int
    - short
    - short
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1488
        line_start: 1488
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1499
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1499
    functionName: qmp_ev_fd_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - qmp_ev_callback_writable
    - qmp_ev_callback_readable
    - LOGED
    - getsockopt
    - libxl__ev_qmp*::callback
    - libxl__ev_qmp_dispose
    - assert
    linkageType: ''
    returnType: void
    signature: "void qmp_ev_fd_callback(libxl__egc *egc, libxl__ev_fd *ev_fd,\n                               int
      fd, short events, short revents)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1514,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1516,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1524,1
    - Dst: LOG_QMP
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1526,1
    - Dst: libxl__sendmsg_fds
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1536,1
    - Dst: write
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1548,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1554,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1557,1
    - Dst: qmp_ev_tx_buf_clear
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1562,1
    - Dst: qmp_ev_ensure_reading_writing
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1564,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - gc
    - ev
    - fd
    argTypes:
    - libxl__gc*
    - libxl__ev_qmp*
    - int
    assertStmts:
    - condition: (!ev->tx_buf)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (ev->tx_buf)
      pos:
        line_end: 1523
        line_start: 1523
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (r > 0 && r <= max_write)
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1567
      start: 1501
    functionDepth: 4
    functionLinenumber: 1501
    functionLinenumberEnd: 1567
    functionName: qmp_ev_callback_writable
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - LOGED
    - libxl__sendmsg_fds
    - strlen
    - qmp_ev_ensure_reading_writing
    - qmp_ev_tx_buf_clear
    - LOG_QMP
    - assert
    - write
    linkageType: ''
    returnType: int
    signature: "int qmp_ev_callback_writable(libxl__gc *gc,\n                                    libxl__ev_qmp
      *ev, int fd)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1586,1
    - Dst: qmp_ev_get_next_msg
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1595,1
    - Dst: qmp_ev_handle_message
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1602,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1613,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1619,1
    - Dst: read
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1622,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1629,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1634,1
    - Dst: LOG_QMP
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1638,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1642,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - egc
    - ev
    - fd
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - int
    assertStmts:
    - condition: (ev->rx_buf_used <= ev->rx_buf_size)
      pos:
        line_end: 1641
        line_start: 1641
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1646
      start: 1569
    functionDepth: 4
    functionLinenumber: 1569
    functionLinenumberEnd: 1646
    functionName: qmp_ev_callback_readable
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - qmp_ev_handle_message
    - STATE_AO_GC
    - libxl__realloc
    - LOGD
    - read
    - LOGED
    - LOG_QMP
    - assert
    - qmp_ev_get_next_msg
    linkageType: ''
    returnType: int
    signature: "int qmp_ev_callback_readable(libxl__egc *egc,\n                                    libxl__ev_qmp
      *ev, int fd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1658,1
    - Dst: memmem
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1669,1
    - Dst: LOG_QMP
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1674,1
    - Dst: libxl__json_parse
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1678,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1681,1
    - Dst: memmove
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1686,1
    - Dst: LOG_QMP
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1688,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - egc
    - ev
    - o_r
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 1693
    functionName: qmp_ev_get_next_msg
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - memmem
    - STATE_AO_GC
    - LOGD
    - memmove
    - libxl__json_parse
    - LOG_QMP
    - JSON
    linkageType: ''
    returnType: int
    signature: "int qmp_ev_get_next_msg(libxl__egc *egc, libxl__ev_qmp *ev,\n                               libxl__json_object
      **o_r)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1718,1
    - Dst: qmp_response_type
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1724,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1731,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1741,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1742,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1743,1
    - Dst: GRAB_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1748,1
    - Dst: GRAB_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1749,1
    - Dst: GRAB_VERSION
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1750,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1752,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1758,1
    - Dst: qmp_prepare_cmd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1760,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1762,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1767,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1769,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1785,1
    - Dst: qmp_ev_parse_error_messages
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1796,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1800,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1803,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1805,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1812,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1814,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1817,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1821,1
    - Dst: qmp_ev_parse_error_messages
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1826,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1828,1
    - Dst: libxl__ev_qmp*::callback
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1829,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1832,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1832,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1842,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1843,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - egc
    - ev
    - resp
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    assertStmts:
    - condition: (!ev->tx_buf)
      pos:
        line_end: 1757
        line_start: 1757
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1851
      start: 1699
    functionDepth: 7
    functionLinenumber: 1699
    functionLinenumberEnd: 1851
    functionName: qmp_ev_handle_message
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - qmp_prepare_cmd
    - LOGD
    - qmp_response_type
    - abort
    - GRAB_VERSION
    - qmp_ev_set_state
    - qmp_ev_parse_error_messages
    - libxl__json_map_get
    - strlen
    - libxl__ev_qmp*::callback
    - assert
    - JSON
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int qmp_ev_handle_message(libxl__egc *egc,\n                                 libxl__ev_qmp
      *ev,\n                                 const libxl__json_object *resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: GRAB_VERSION
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GRAB_VERSION(level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1858,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1868,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1870,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1872,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1876,1
    - Dst: qmp_error_class_to_libxl_error_code
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1878,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1882,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1884,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1888,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1890,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1892,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - egc
    - ev
    - resp
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1853
    functionDepth: 2
    functionLinenumber: 1853
    functionLinenumberEnd: 1895
    functionName: qmp_ev_parse_error_messages
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__json_object_get_string
    - LOGD
    - qmp_error_class_to_libxl_error_code
    - libxl__json_map_get
    - JSON
    linkageType: ''
    returnType: int
    signature: "int qmp_ev_parse_error_messages(libxl__egc *egc,\n                                       libxl__ev_qmp
      *ev,\n                                       const libxl__json_object *resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_fd_init
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1909,1
    - Dst: qmp_ev_tx_buf_clear
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1915,1
    - Dst: libxl__ev_qmplock_init
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - ev
    argTypes:
    - libxl__ev_qmp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1901
    functionDepth: 3
    functionLinenumber: 1901
    functionLinenumberEnd: 1926
    functionName: libxl__ev_qmp_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 5
    functionsReached:
    - libxl__ev_fd_init
    - libxl__ev_qmplock_init
    - qmp_ev_tx_buf_clear
    linkageType: ''
    returnType: void
    signature: void libxl__ev_qmp_init(libxl__ev_qmp *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1934,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1937,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1939,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1941,1
    - Dst: qmp_ev_connect
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1945,1
    - Dst: qmp_prepare_cmd
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1952,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1954,1
    - Dst: qmp_ev_set_state
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1960,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - egc
    - ev
    - cmd
    - args
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - char*
    - libxl__json_object*
    assertStmts:
    - condition: "(ev->state == qmp_state_disconnected ||\n           ev->state ==
        qmp_state_connected)"
      pos:
        line_end: 1939
        line_start: 1938
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - condition: (cmd)
      pos:
        line_end: 1940
        line_start: 1940
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    constantsTouched: []
    func_position:
      end: 1968
      start: 1928
    functionDepth: 7
    functionLinenumber: 1928
    functionLinenumberEnd: 1968
    functionName: libxl__ev_qmp_send
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 19
    functionsReached:
    - STATE_AO_GC
    - qmp_prepare_cmd
    - LOGD
    - qmp_ev_set_state
    - libxl__ev_qmp_dispose
    - assert
    - qmp_ev_connect
    linkageType: ''
    returnType: int
    signature: "int libxl__ev_qmp_send(libxl__egc *egc, libxl__ev_qmp *ev,\n                       const
      char *cmd, libxl__json_object *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1973,1
    - Dst: libxl__ev_fd_deregister
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1975,1
    - Dst: libxl__carefd_close
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1976,1
    - Dst: libxl__ev_slowlock_dispose
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1977,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_qmp.c:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - ev
    argTypes:
    - libxl__gc*
    - libxl__ev_qmp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1970
    functionDepth: 4
    functionLinenumber: 1970
    functionLinenumberEnd: 1980
    functionName: libxl__ev_qmp_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_qmp.c
    functionUses: 13
    functionsReached:
    - LOGD
    - libxl__ev_qmp_init
    - libxl__carefd_close
    - libxl__ev_fd_deregister
    - libxl__ev_slowlock_dispose
    linkageType: ''
    returnType: void
    signature: void libxl__ev_qmp_dispose(libxl__gc *gc, libxl__ev_qmp *ev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:26,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:33,1
    - Dst: libxl__ev_evtchn_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:34,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:35,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:36,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:37,1
    - Dst: libxl__device_model_savefile
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:45,1
    - Dst: xs_suspend_evtchn_port
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:47,1
    - Dst: libxl__ctx_evtchn_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:50,1
    - Dst: xc_suspend_evtchn_init_exclusive
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:54,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - egc
    - dsps
    - type
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - libxl_domain_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: libxl__domain_suspend_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__xswait_init
    - LOGD
    - libxl__device_model_savefile
    - libxl__ev_qmp_init
    - libxl__ev_evtchn_init
    - libxl__ev_xswatch_init
    - xs_suspend_evtchn_port
    - xc_suspend_evtchn_init_exclusive
    - libxl__ev_time_init
    - libxl__ctx_evtchn_init
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_suspend_init(libxl__egc *egc,\n                               libxl__domain_suspend_state
      *dsps,\n                               libxl_domain_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:73,1
    - Dst: libxl__ev_evtchn_cancel
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:74,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:75,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:76,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - dsps
    argTypes:
    - libxl__gc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: libxl__domain_suspend_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - libxl__ev_xswatch_deregister
    - libxl__ev_evtchn_cancel
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - libxl__xswait_stop
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_suspend_dispose(libxl__gc *gc,\n                                   libxl__domain_suspend_state
      \ *dsps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:85,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:89,1
    - Dst: libxl__qmp_suspend_save
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:92,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:101,1
    - Dst: libxl__domain_suspend_state*::callback_device_model_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: libxl__domain_suspend_device_model
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__device_model_version_running
    - libxl__qmp_suspend_save
    - libxl__domain_suspend_state*::callback_device_model_done
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_suspend_device_model(libxl__egc *egc,\n                                       libxl__domain_suspend_state
      *dsps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_suspend_callback_common
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: libxl__domain_suspend
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 2
    functionsReached:
    - domain_suspend_callback_common
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_suspend(libxl__egc *egc,\n                           libxl__domain_suspend_state
      *dsps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: domain_suspend_pvcontrol_acked
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool domain_suspend_pvcontrol_acked(const char *state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:148,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:156,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:157,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:161,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:163,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:165,1
    - Dst: libxl__ev_evtchn_wait
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:171,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:174,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:183,1
    - Dst: xc_domain_shutdown
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:184,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:186,1
    - Dst: domain_suspend_common_wait_guest
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:192,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:196,1
    - Dst: libxl__domain_pvcontrol
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:201,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:207,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 208
    functionName: domain_suspend_callback_common
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - domain_suspend_common_done
    - xc_hvm_param_get
    - LOGD
    - libxl__domain_pvcontrol
    - xc_domain_shutdown
    - domain_suspend_common_wait_guest
    - LOGED
    - libxl__ev_evtchn_wait
    - xenevtchn_notify
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_callback_common(libxl__egc *egc,\n                                           libxl__domain_suspend_state
      *dsps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:213,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:214,1
    - Dst: libxl__ev_evtchn_wait
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:219,1
    - Dst: suspend_common_wait_guest_check
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - evev
    argTypes:
    - libxl__egc*
    - libxl__ev_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: domain_suspend_common_wait_guest_evtchn
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - libxl__ev_evtchn_wait
    - STATE_AO_GC
    - CONTAINER_OF
    - suspend_common_wait_guest_check
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_common_wait_guest_evtchn(libxl__egc *egc,\n        libxl__ev_evtchn
      *evev)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:226,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:227,1
    - Dst: domain_suspend_pvcontrol_acked
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:230,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:234,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:247,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:250,1
    - Dst: domain_suspend_pvcontrol_acked
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:253,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:257,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:260,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:262,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:273,1
    - Dst: domain_suspend_pvcontrol_acked
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:273,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:274,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:276,1
    - Dst: domain_suspend_common_wait_guest
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:278,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:282,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:283,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 4
    argNames:
    - egc
    - xswa
    - rc
    - state
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts:
    - condition: (domain_suspend_pvcontrol_acked(state))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/xen/tools/libs/light/libxl_dom_suspend.c
    constantsTouched: []
    func_position:
      end: 285
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 285
    functionName: domain_suspend_common_pvcontrol_suspending
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__xs_transaction_commit
    - LOGD
    - domain_suspend_common_done
    - domain_suspend_common_wait_guest
    - libxl__xs_transaction_start
    - libxl__xs_transaction_abort
    - domain_suspend_pvcontrol_acked
    - libxl__xswait_stop
    - libxl__xs_write_checked
    - libxl__xs_read_checked
    - assert
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_common_pvcontrol_suspending(libxl__egc *egc,\n
      \     libxl__xswait_state *xswa, int rc, const char *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:290,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:293,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:295,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:300,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: domain_suspend_common_wait_guest
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - domain_suspend_common_done
    - LOGD
    - libxl__ev_xswatch_register
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_common_wait_guest(libxl__egc *egc,\n                                             libxl__domain_suspend_state
      *dsps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:313,1
    - Dst: suspend_common_wait_guest_check
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - xsw
    - watch_path
    - event_path
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: suspend_common_wait_guest_watch
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - suspend_common_wait_guest_check
    linkageType: ''
    returnType: void
    signature: "void suspend_common_wait_guest_watch(libxl__egc *egc,\n      libxl__ev_xswatch
      *xsw, const char *watch_path, const char *event_path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:320,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:328,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:330,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:341,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:346,1
    - Dst: domain_suspend_common_guest_suspended
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:347,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 352
    functionName: suspend_common_wait_guest_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - domain_suspend_common_done
    - domain_suspend_common_guest_suspended
    - LOGD
    - LOGED
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: void
    signature: "void suspend_common_wait_guest_check(libxl__egc *egc,\n        libxl__domain_suspend_state
      *dsps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:357,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:358,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:360,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 364
    functionName: suspend_common_wait_guest_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - domain_suspend_common_done
    linkageType: ''
    returnType: void
    signature: "void suspend_common_wait_guest_timeout(libxl__egc *egc,\n      libxl__ev_time
      *ev, const struct timeval *requested_abs, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:369,1
    - Dst: libxl__ev_evtchn_cancel
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:371,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:372,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:373,1
    - Dst: libxl__domain_suspend_device_model
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:377,1
    - Dst: domain_suspend_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - egc
    - dsps
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: domain_suspend_common_guest_suspended
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - domain_suspend_common_done
    - libxl__ev_xswatch_deregister
    - libxl__ev_evtchn_cancel
    - libxl__ev_time_deregister
    - libxl__domain_suspend_device_model
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_common_guest_suspended(libxl__egc *egc,\n                                         libxl__domain_suspend_state
      *dsps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:388,1
    - Dst: libxl__xswait_inuse
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:388,1
    - Dst: libxl__domain_suspend_dispose
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:389,1
    - Dst: libxl__domain_suspend_state*::callback_common_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts:
    - condition: (!libxl__xswait_inuse(&dsps->pvcontrol))
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/xen/tools/libs/light/libxl_dom_suspend.c
    constantsTouched: []
    func_position:
      end: 391
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 391
    functionName: domain_suspend_common_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 6
    functionsReached:
    - libxl__xswait_inuse
    - assert
    - libxl__domain_suspend_dispose
    - libxl__domain_suspend_state*::callback_common_done
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_common_done(libxl__egc *egc,\n                                       libxl__domain_suspend_state
      *dsps,\n                                       int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_suspend_callback_common
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 6
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: libxl__domain_suspend_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - domain_suspend_callback_common
    linkageType: ''
    returnType: void
    signature: void libxl__domain_suspend_callback(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:407,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: domain_suspend_callback_common_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_callback_common_done(libxl__egc *egc,\n                                libxl__domain_suspend_state
      *dsps, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:416,1
    - Dst: libxl__qmp_resume
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 12
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: libxl__domain_resume_device_model_deprecated
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - libxl__device_model_version_running
    - libxl__qmp_resume
    linkageType: ''
    returnType: int
    signature: int libxl__domain_resume_device_model_deprecated(libxl__gc *gc, uint32_t
      domid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:432,1
    - Dst: libxl__domain_resume_device_model_deprecated
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:439,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:441,1
    - Dst: xc_domain_resume
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:446,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:447,1
    - Dst: xs_resume_domain
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:452,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - gc
    - domid
    - suspend_cancel
    argTypes:
    - libxl__gc*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 428
    functionDepth: 13
    functionLinenumber: 428
    functionLinenumberEnd: 458
    functionName: libxl__domain_resume_deprecated
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 2
    functionsReached:
    - LOGD
    - xs_resume_domain
    - xc_domain_resume
    - LOGED
    - libxl__domain_type
    - libxl__domain_resume_device_model_deprecated
    linkageType: ''
    returnType: int
    signature: int libxl__domain_resume_deprecated(libxl__gc *gc, uint32_t domid,
      int suspend_cancel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:462,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:463,1
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dmrs
    argTypes:
    - libxl__dm_resume_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: dm_resume_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - libxl__ev_qmp_init
    - libxl__ev_time_init
    - libxl__ev_xswatch_init
    linkageType: ''
    returnType: void
    signature: void dm_resume_init(libxl__dm_resume_state *dmrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:470,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:471,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - dmrs
    argTypes:
    - libxl__gc*
    - libxl__dm_resume_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: dm_resume_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - libxl__ev_xswatch_deregister
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void dm_resume_dispose(libxl__gc *gc,\n                              libxl__dm_resume_state
      *dmrs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:485,1
    - Dst: dm_resume_init
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:492,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:494,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:500,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:506,1
    - Dst: dm_resume_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - egc
    - dmrs
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 482
    functionDepth: 8
    functionLinenumber: 482
    functionLinenumberEnd: 518
    functionName: libxl__dm_resume
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__device_model_version_running
    - dm_resume_done
    - libxl__ev_qmp_send
    - dm_resume_init
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void libxl__dm_resume(libxl__egc *egc,\n                      libxl__dm_resume_state
      *dmrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:525,1
    - Dst: dm_resume_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: dm_resume_qmp_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - dm_resume_done
    linkageType: ''
    returnType: void
    signature: "void dm_resume_qmp_done(libxl__egc *egc,\n                               libxl__ev_qmp
      *qmp,\n                               const libxl__json_object *response,\n
      \                              int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:534,1
    - Dst: dm_resume_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: dm_resume_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - dm_resume_done
    linkageType: ''
    returnType: void
    signature: "void dm_resume_timeout(libxl__egc *egc,\n                              libxl__ev_time
      *ev,\n                              const struct timeval *requested_abs,\n                              int
      rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:545,1
    - Dst: dm_resume_dispose
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:549,1
    - Dst: libxl__dm_resume_state*::dm_resumed_callback
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 538
    functionDepth: 6
    functionLinenumber: 538
    functionLinenumberEnd: 551
    functionName: dm_resume_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 3
    functionsReached:
    - dm_resume_dispose
    - LOGD
    - libxl__dm_resume_state*::dm_resumed_callback
    linkageType: ''
    returnType: void
    signature: "void dm_resume_done(libxl__egc *egc,\n                           libxl__dm_resume_state
      *dmrs,\n                           int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:561,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:563,1
    - Dst: libxl__dm_resume
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:578,1
    - Dst: domain_resume_done
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - egc
    - dmrs
    - suspend_cancel
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 557
    functionDepth: 9
    functionLinenumber: 557
    functionLinenumberEnd: 583
    functionName: libxl__domain_resume
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - domain_resume_done
    - libxl__dm_resume
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_resume(libxl__egc *egc,\n                          libxl__dm_resume_state
      *dmrs,\n                          bool suspend_cancel)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_resume
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:595,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:596,1
    - Dst: xs_resume_domain
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:601,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:602,1
    - Dst: libxl__dm_resume_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dom_suspend.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 607
    functionName: domain_resume_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_suspend.c
    functionUses: 1
    functionsReached:
    - libxl__dm_resume_state*::callback
    - xs_resume_domain
    - xc_domain_resume
    - LOGED
    linkageType: ''
    returnType: void
    signature: "void domain_resume_done(libxl__egc *egc,\n                               libxl__dm_resume_state
      *dmrs, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:32,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:34,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: init_subkind_drbd_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__xen_script_dir_path
    linkageType: ''
    returnType: int
    signature: int init_subkind_drbd_disk(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: cleanup_subkind_drbd_disk
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_subkind_drbd_disk(libxl__checkpoint_devices_state *cds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:58,1
    - Dst: match_async_exec
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: drbd_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - match_async_exec
    linkageType: ''
    returnType: void
    signature: void drbd_setup(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:69,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:73,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:75,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:79,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:83,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:86,1
    - Dst: libxl__async_exec_start
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:93,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts:
    - condition: (nr <= arraysize)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    - condition: (nr <= arraysize)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    constantsTouched: []
    func_position:
      end: 102
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 102
    functionName: match_async_exec
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__checkpoint_device*::aodev::callback
    - GCNEW_ARRAY
    - libxl__async_exec_start
    - assert
    linkageType: ''
    returnType: void
    signature: void match_async_exec(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:108,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:109,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:113,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:128,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:131,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - egc
    - aes
    - rc
    - status
    argTypes:
    - libxl__egc*
    - libxl__async_exec_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: match_async_exec_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - open
    - GCNEW
    - libxl__ao_device*::callback
    linkageType: ''
    returnType: void
    signature: "void match_async_exec_cb(libxl__egc *egc,\n                                libxl__async_exec_state
      *aes,\n                                int rc, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:147,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:149,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: drbd_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_device*::aodev::callback
    - STATE_AO_GC
    - close
    linkageType: ''
    returnType: void
    signature: void drbd_teardown(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:166,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:171,1
    - Dst: libxl__checkpoint_device*::aodev::callback
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: drbd_postsuspend
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - libxl__checkpoint_device*::aodev::callback
    - STATE_AO_GC
    - ioctl
    linkageType: ''
    returnType: void
    signature: void drbd_postsuspend(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASYNC_CALL
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - dev
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 187
    functionName: drbd_preresume
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - ASYNC_CALL
    linkageType: ''
    returnType: void
    signature: void drbd_preresume(libxl__egc *egc, libxl__checkpoint_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:195,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - libxl__checkpoint_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: drbd_preresume_async
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - _exit
    - ioctl
    linkageType: ''
    returnType: void
    signature: void drbd_preresume_async(libxl__checkpoint_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:207,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:208,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:211,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:213,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:218,1
    - Dst: libxl__ao_device*::callback
      Src: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - egc
    - child
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: checkpoint_async_call_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - WEXITSTATUS
    - libxl__ao_device*::callback
    - WIFEXITED
    linkageType: ''
    returnType: void
    signature: "void checkpoint_async_call_done(libxl__egc *egc,\n                                       libxl__ev_child
      *child,\n                                       pid_t pid, int status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/light/test_common.c:8,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:9,1
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/libs/light/test_common.c:13,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts:
    - condition: (!rc)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/tools/libs/light/test_common.c
    - condition: (logger_s)
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/xen/tools/libs/light/test_common.c
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 5
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: test_common_setup
    functionSourceFile: /src/xen/tools/libs/light/test_common.c
    functionUses: 2
    functionsReached:
    - libxl_ctx_alloc
    - assert
    - xtl_createlogger_stdiostream
    linkageType: ''
    returnType: void
    signature: void test_common_setup(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/tools/libs/light/test_common.c:21,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/xen/tools/libs/light/test_common.c
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: test_common_get_now
    functionSourceFile: /src/xen/tools/libs/light/test_common.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    - assert
    linkageType: ''
    returnType: void
    signature: void test_common_get_now(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_common_get_now
      Src: /src/xen/tools/libs/light/test_common.c:31,1
    - Dst: libxl_osevent_beforepoll
      Src: /src/xen/tools/libs/light/test_common.c:35,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:38,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:40,1
    - Dst: realloc
      Src: /src/xen/tools/libs/light/test_common.c:41,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/test_common.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (poll_nfds > poll_nfds_allocd)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/libs/light/test_common.c
    - condition: (rc == ERROR_BUFFERFULL)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libs/light/test_common.c
    - condition: (poll_fds)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/xen/tools/libs/light/test_common.c
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: test_common_beforepoll
    functionSourceFile: /src/xen/tools/libs/light/test_common.c
    functionUses: 1
    functionsReached:
    - realloc
    - libxl_osevent_beforepoll
    - assert
    - test_common_get_now
    linkageType: ''
    returnType: void
    signature: void test_common_beforepoll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/xen/tools/libs/light/test_common.c:49,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/test_common.c:50,1
    - Dst: strerror
      Src: /src/xen/tools/libs/light/test_common.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: test_common_dopoll
    functionSourceFile: /src/xen/tools/libs/light/test_common.c
    functionUses: 1
    functionsReached:
    - poll
    - strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void test_common_dopoll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_common_get_now
      Src: /src/xen/tools/libs/light/test_common.c:55,1
    - Dst: libxl_osevent_afterpoll
      Src: /src/xen/tools/libs/light/test_common.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: test_common_afterpoll
    functionSourceFile: /src/xen/tools/libs/light/test_common.c
    functionUses: 1
    functionsReached:
    - libxl_osevent_afterpoll
    - test_common_get_now
    linkageType: ''
    returnType: void
    signature: void test_common_afterpoll(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - gc
    - info
    - size
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 96
    functionName: libxl__estimate_madt_size
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__estimate_madt_size(libxl__gc *gc,\n                                     const
      libxl_domain_build_info *info,\n                                     size_t
      *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__estimate_madt_size
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:106,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:110,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:111,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:112,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:113,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:114,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - info
    - out
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: libxl__get_acpi_size
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - libxl__estimate_madt_size
    - ROUNDUP
    linkageType: ''
    returnType: int
    signature: "int libxl__get_acpi_size(libxl__gc *gc,\n                         const
      libxl_domain_build_info *info,\n                         uint64_t *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:131,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:140,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:144,1
    - Dst: libxl__estimate_madt_size
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:148,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:153,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:157,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:161,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:163,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 4
    argNames:
    - gc
    - info
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts:
    - condition: (dom->acpi_modules[0].length <= GUEST_ACPI_SIZE)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
    constantsTouched: []
    func_position:
      end: 169
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 169
    functionName: libxl__allocate_acpi_tables
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - libxl__estimate_madt_size
    - ROUNDUP
    - assert
    - libxl__zalloc
    linkageType: ''
    returnType: int
    signature: "int libxl__allocate_acpi_tables(libxl__gc *gc,\n                                       libxl_domain_build_info
      *info,\n                                       struct xc_dom_image *dom,\n                                       struct
      acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - table
    - checksum_offset
    - length
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: calculate_checksum
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void calculate_checksum(void *table, uint32_t checksum_offset,\n                               uint32_t
      length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:192,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:193,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:194,1
    - Dst: calculate_checksum
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - gc
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 201
    functionName: make_acpi_rsdp
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - calculate_checksum
    - memcpy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void make_acpi_rsdp(libxl__gc *gc, struct xc_dom_image *dom,\n                           struct
      acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:206,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:209,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:210,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:211,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:212,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:214,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - h
    - sig
    - len
    - rev
    argTypes:
    - struct acpi_table_header*
    - char*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: make_acpi_header
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void make_acpi_header(struct acpi_table_header *h, const char *sig,\n
      \                            size_t len, uint8_t rev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_acpi_header
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:230,1
    - Dst: calculate_checksum
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - gc
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: make_acpi_xsdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - make_acpi_header
    - calculate_checksum
    linkageType: ''
    returnType: void
    signature: "void make_acpi_xsdt(libxl__gc *gc, struct xc_dom_image *dom,\n                           struct
      acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_acpi_header
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:253,1
    - Dst: calculate_checksum
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 256
    functionName: make_acpi_gtdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - make_acpi_header
    - calculate_checksum
    linkageType: ''
    returnType: void
    signature: "void make_acpi_gtdt(libxl__gc *gc, struct xc_dom_image *dom,\n                           struct
      acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__compute_mpdir
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - table
    - nr_cpus
    - gicc_base
    argTypes:
    - void*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 273
    functionName: make_acpi_madt_gicc
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - libxl__compute_mpdir
    linkageType: ''
    returnType: void
    signature: void make_acpi_madt_gicc(void *table, int nr_cpus, uint64_t gicc_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - table
    - gicd_base
    - gic_version
    argTypes:
    - void*
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: make_acpi_madt_gicd
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void make_acpi_madt_gicd(void *table, uint64_t gicd_base,\n                                uint8_t
      gic_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - table
    - gicr_base
    - gicr_size
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: make_acpi_madt_gicr
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void make_acpi_madt_gicr(void *table, uint64_t gicr_base,\n                                uint64_t
      gicr_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_acpi_madt_gicc
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:310,1
    - Dst: make_acpi_madt_gicd
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:313,1
    - Dst: make_acpi_madt_gicc
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:317,1
    - Dst: make_acpi_madt_gicd
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:320,1
    - Dst: make_acpi_madt_gicr
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:324,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:328,1
    - Dst: make_acpi_header
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:333,1
    - Dst: calculate_checksum
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - gc
    - dom
    - info
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - libxl_domain_build_info*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 339
    functionName: make_acpi_madt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - make_acpi_madt_gicc
    - make_acpi_madt_gicr
    - make_acpi_madt_gicd
    - make_acpi_header
    - calculate_checksum
    - LOG
    linkageType: ''
    returnType: int
    signature: "int make_acpi_madt(libxl__gc *gc, struct xc_dom_image *dom,\n                          libxl_domain_build_info
      *info,\n                          struct acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_acpi_header
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:355,1
    - Dst: calculate_checksum
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - gc
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 358
    functionName: make_acpi_fadt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - make_acpi_header
    - calculate_checksum
    linkageType: ''
    returnType: void
    signature: "void make_acpi_fadt(libxl__gc *gc, struct xc_dom_image *dom,\n                           struct
      acpitable acpitables[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - dom
    - acpitables
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    - struct acpitable[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: make_acpi_dsdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void make_acpi_dsdt(libxl__gc *gc, struct xc_dom_image *dom,\n                           struct
      acpitable acpitables[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_version_info
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:376,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:382,1
    - Dst: libxl__allocate_acpi_tables
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:389,1
    - Dst: make_acpi_rsdp
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:393,1
    - Dst: make_acpi_xsdt
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:394,1
    - Dst: make_acpi_gtdt
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:395,1
    - Dst: make_acpi_madt
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:396,1
    - Dst: make_acpi_fadt
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:400,1
    - Dst: make_acpi_dsdt
      Src: /src/xen/tools/libs/light/libxl_arm_acpi.c:401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - gc
    - info
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 405
    functionName: libxl__prepare_acpi
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_acpi.c
    functionUses: 0
    functionsReached:
    - libxl_get_version_info
    - make_acpi_rsdp
    - make_acpi_madt
    - make_acpi_fadt
    - make_acpi_gtdt
    - make_acpi_dsdt
    - make_acpi_xsdt
    - libxl__allocate_acpi_tables
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,\n
      \                       struct xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_xswatch_init
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:47,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:48,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lds
    argTypes:
    - libxl__logdirty_switch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: libxl__logdirty_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 1
    functionsReached:
    - libxl__ev_time_init
    - libxl__ev_qmp_init
    - libxl__ev_xswatch_init
    linkageType: ''
    returnType: void
    signature: void libxl__logdirty_init(libxl__logdirty_switch *lds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:56,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:58,1
    - Dst: domain_suspend_switch_qemu_xen_logdirty
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:60,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:63,1
    - Dst: libxl__logdirty_switch*::callback
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - egc
    - domid
    - enable
    - lds
    argTypes:
    - libxl__egc*
    - int
    - unsigned
    - libxl__logdirty_switch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: libxl__domain_common_switch_qemu_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__device_model_version_running
    - libxl__logdirty_switch*::callback
    - domain_suspend_switch_qemu_xen_logdirty
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_common_switch_qemu_logdirty(libxl__egc *egc,\n
      \                                              int domid, unsigned enable,\n
      \                                              libxl__logdirty_switch *lds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:73,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:80,1
    - Dst: libxl__qmp_param_add_bool
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:88,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:89,1
    - Dst: switch_qemu_xen_logdirty_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - egc
    - domid
    - enable
    - lds
    argTypes:
    - libxl__egc*
    - int
    - unsigned
    - libxl__logdirty_switch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 69
    functionDepth: 8
    functionLinenumber: 69
    functionLinenumberEnd: 95
    functionName: domain_suspend_switch_qemu_xen_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__ev_qmp_send
    - switch_qemu_xen_logdirty_done
    - libxl__ev_time_register_rel
    - libxl__qmp_param_add_bool
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_switch_qemu_xen_logdirty\n                               (libxl__egc
      *egc, int domid, unsigned enable,\n                                libxl__logdirty_switch
      *lds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:103,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:106,1
    - Dst: switch_logdirty_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - qmp
    - r
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: switch_qemu_xen_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 1
    functionsReached:
    - switch_logdirty_done
    - CONTAINER_OF
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void switch_qemu_xen_logdirty_done(libxl__egc *egc,\n                                          libxl__ev_qmp
      *qmp,\n                                          const libxl__json_object *r,\n
      \                                         int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:115,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:116,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:117,1
    - Dst: switch_logdirty_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: switch_logdirty_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 0
    functionsReached:
    - switch_logdirty_done
    - STATE_AO_GC
    - CONTAINER_OF
    - LOG
    linkageType: ''
    returnType: void
    signature: "void switch_logdirty_timeout(libxl__egc *egc, libxl__ev_time *ev,\n
      \                                   const struct timeval *requested_abs,\n                                    int
      rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:125,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:127,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:128,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:129,1
    - Dst: libxl__logdirty_switch*::callback
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: switch_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - libxl__logdirty_switch*::callback
    - libxl__ev_xswatch_deregister
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void switch_logdirty_done(libxl__egc *egc,\n                                 libxl__logdirty_switch
      *lds,\n                                 int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_suspend_switch_qemu_logdirty_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:148,1
    - Dst: libxl__domain_common_switch_qemu_logdirty
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - domid
    - enable
    - user
    argTypes:
    - uint32_t
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: libxl__domain_suspend_common_switch_qemu_logdirty
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 0
    functionsReached:
    - libxl__domain_common_switch_qemu_logdirty
    - domain_suspend_switch_qemu_logdirty_done
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_suspend_common_switch_qemu_logdirty\n                               (uint32_t
      domid, unsigned enable, void *user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:159,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:163,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - lds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__logdirty_switch*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: domain_suspend_switch_qemu_logdirty_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_switch_qemu_logdirty_done\n                        (libxl__egc
      *egc, libxl__logdirty_switch *lds, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:178,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:179,1
    - Dst: memcpy::memcpy
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gc
    - buf
    - len
    - str
    argTypes:
    - libxl__gc*
    - char**
    - uint32_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: append_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - memcpy::memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: "void append_string(libxl__gc *gc, char **buf, uint32_t *len,\n                          const
      char *str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:190,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:197,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:199,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:201,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:201,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:210,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:211,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:215,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:216,1
    - Dst: append_string
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:220,1
    - Dst: append_string
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - dss
    - callee_buf
    - callee_len
    argTypes:
    - libxl__domain_save_state*
    - char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 234
    functionName: libxl__save_emulator_xenstore_data
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - ARRAY_SIZE
    - libxl__xs_read
    - append_string
    - libxl__xs_directory
    - libxl_get_stubdom_id
    - DEVICE_MODEL_XS_PATH
    linkageType: ''
    returnType: int
    signature: "int libxl__save_emulator_xenstore_data(libxl__domain_save_state *dss,\n
      \                                      char **callee_buf,\n                                       uint32_t
      *callee_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:240,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:255,1
    - Dst: libxl__logdirty_init
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:262,1
    - Dst: libxl__domain_suspend_init
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:268,1
    - Dst: xc_domain_getvnuma
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:281,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:284,1
    - Dst: libxl__stream_write_start
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:300,1
    - Dst: domain_save_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:304,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - egc
    - dss
    argTypes:
    - libxl__egc*
    - libxl__domain_save_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 305
    functionName: libxl__domain_save
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__logdirty_init
    - libxl__domain_suspend_init
    - xc_domain_getvnuma
    - libxl__stream_write_start
    - domain_save_done
    linkageType: ''
    returnType: void
    signature: void libxl__domain_save(libxl__egc *egc, libxl__domain_save_state *dss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_save_done
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - sws
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 4
    functionsReached:
    - domain_save_done
    linkageType: ''
    returnType: void
    signature: "void stream_done(libxl__egc *egc,\n                        libxl__stream_write_state
      *sws, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:316,1
    - Dst: libxl__ev_evtchn_cancel
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:322,1
    - Dst: xc_suspend_evtchn_release
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:325,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:335,1
    - Dst: libxl__colo_save_teardown
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:336,1
    - Dst: libxl__remus_teardown
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:338,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - egc
    - dss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 313
    functionDepth: 4
    functionLinenumber: 313
    functionLinenumberEnd: 343
    functionName: domain_save_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 2
    functionsReached:
    - libxl_defbool_val
    - STATE_AO_GC
    - libxl__ev_evtchn_cancel
    - libxl__remus_teardown
    - libxl__colo_save_teardown
    - xc_suspend_evtchn_release
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void domain_save_done(libxl__egc *egc,\n                             libxl__domain_save_state
      *dss, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strnlen
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: next_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 0
    functionsReached:
    - strnlen
    linkageType: ''
    returnType: char
    signature: char *next_string(const char *start, const char *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:368,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:373,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:374,1
    - Dst: next_string
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:378,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:383,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:388,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:393,1
    - Dst: next_string
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:398,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:403,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:407,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dom_save.c:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - dcs
    - ptr
    - size
    argTypes:
    - libxl__domain_create_state*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 416
    functionName: libxl__restore_emulator_xenstore_data
    functionSourceFile: /src/xen/tools/libs/light/libxl_dom_save.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - LOGD
    - next_string
    - libxl__xs_printf
    - libxl_get_stubdom_id
    - DEVICE_MODEL_XS_PATH
    linkageType: ''
    returnType: int
    signature: "int libxl__restore_emulator_xenstore_data(libxl__domain_create_state
      *dcs,\n                                          const char *ptr, uint32_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_dm.c:30,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:32,1
    - Dst: libxl__xen_script_dir_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 4
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: libxl_tapif_script
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - GCSPRINTF
    - libxl__xen_script_dir_path
    linkageType: ''
    returnType: char
    signature: char *libxl_tapif_script(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: libxl__device_model_savefile
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 2
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: qemu_xen_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qemu_xen_path(libxl__gc *gc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_create_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:51,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:54,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_dm.c:57,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dm.c:58,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dm.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - gc
    - name
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: libxl__create_qemu_logfile
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - free
    - open
    - libxl_create_logfile
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__create_qemu_logfile(libxl__gc *gc, char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - SPEC_TYPE
    - ','
    - STRUCTNAME
    - ','
    - SYSCONF
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 116
    functionName: DEFINE_USERLOOKUP_HELPER
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_USERLOOKUP_HELPER(NAME,SPEC_TYPE,STRUCTNAME,SYSCONF)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_dm.c:154,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:161,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:178,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:179,1
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_dm.c:191,1
    - Dst: userlookup_helper_getpwuid
      Src: /src/xen/tools/libs/light/libxl_dm.c:202,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:210,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:219,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:220,1
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_dm.c:233,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:240,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:252,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:262,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:271,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 92
    argCount: 2
    argNames:
    - gc
    - dmss
    argTypes:
    - libxl__gc*
    - libxl__dm_spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 275
    functionName: libxl__domain_get_device_model_uid
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - LOGD
    - userlookup_helper_getpwuid
    - userlookup_helper_getpwnam
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_get_device_model_uid(libxl__gc *gc,\n                                              libxl__dm_spawn_state
      *dmss)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_dm.c:286,1
    - Dst: userlookup_helper_getpwnam
      Src: /src/xen/tools/libs/light/libxl_dm.c:295,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:300,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - gc
    - reaper_uid
    argTypes:
    - libxl__gc*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 317
    functionName: libxl__get_reaper_uid
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - LOG
    - userlookup_helper_getpwnam
    linkageType: ''
    returnType: int
    signature: int libxl__get_reaper_uid(libxl__gc *gc, uid_t *reaper_uid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:324,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_dm.c:328,1
    - Dst: qemu_xen_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:332,1
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_dm.c:339,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_dm.c:346,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_dm.c:349,1
    - Dst: libxl__abs_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:353,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_dm.c:354,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/light/libxl_dm.c:359,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:369,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - gc
    - info
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 376
    functionName: libxl__domain_device_model
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - libxl_defbool_val
    - strtok_r
    - access
    - LOG
    - qemu_xen_path
    - libxl__strdup
    - libxl__abs_path
    - getenv
    linkageType: ''
    returnType: char
    signature: "char *libxl__domain_device_model(libxl__gc *gc,\n                                       const
      libxl_domain_build_info *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_reserved_device_memory_map
      Src: /src/xen/tools/libs/light/libxl_dm.c:393,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:395,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_dm.c:404,1
    - Dst: xc_reserved_device_memory_map
      Src: /src/xen/tools/libs/light/libxl_dm.c:405,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 7
    argNames:
    - gc
    - flags
    - seg
    - bus
    - devfn
    - nr_entries
    - xrdm
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint16_t
    - uint8_t
    - uint8_t
    - unsigned int*
    - struct xen_reserved_device_memory**
    assertStmts:
    - condition: (r <= 0)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 417
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 417
    functionName: libxl__xc_device_get_rdm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCNEW_ARRAY
    - assert
    - xc_reserved_device_memory_map
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__xc_device_get_rdm(libxl__gc *gc,\n                         uint32_t
      flags,\n                         uint16_t seg,\n                         uint8_t
      bus,\n                         uint8_t devfn,\n                         unsigned
      int *nr_entries,\n                         struct xen_reserved_device_memory
      **xrdm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - start
    - memsize
    - rdm_start
    - rdm_size
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: overlaps_rdm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool overlaps_rdm(uint64_t start, uint64_t memsize,\n                         uint64_t
      rdm_start, uint64_t rdm_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_dm.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - gc
    - d_config
    - rdm_start
    - rdm_size
    - rdm_policy
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: add_rdm_entry
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    linkageType: ''
    returnType: void
    signature: "void add_rdm_entry(libxl__gc *gc, libxl_domain_config *d_config,\n
      \             uint64_t rdm_start, uint64_t rdm_size, int rdm_policy)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xc_device_get_rdm
      Src: /src/xen/tools/libs/light/libxl_dm.c:498,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:505,1
    - Dst: add_rdm_entry
      Src: /src/xen/tools/libs/light/libxl_dm.c:509,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/light/libxl_dm.c:510,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/light/libxl_dm.c:511,1
    - Dst: PCI_DEVFN
      Src: /src/xen/tools/libs/light/libxl_dm.c:522,1
    - Dst: libxl__xc_device_get_rdm
      Src: /src/xen/tools/libs/light/libxl_dm.c:525,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:533,1
    - Dst: libxl__device_pci_setdefault
      Src: /src/xen/tools/libs/light/libxl_dm.c:535,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/light/libxl_dm.c:557,1
    - Dst: add_rdm_entry
      Src: /src/xen/tools/libs/light/libxl_dm.c:571,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/light/libxl_dm.c:572,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/light/libxl_dm.c:573,1
    - Dst: overlaps_rdm
      Src: /src/xen/tools/libs/light/libxl_dm.c:602,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:613,1
    - Dst: MB
      Src: /src/xen/tools/libs/light/libxl_dm.c:614,1
    - Dst: MB
      Src: /src/xen/tools/libs/light/libxl_dm.c:615,1
    - Dst: overlaps_rdm
      Src: /src/xen/tools/libs/light/libxl_dm.c:639,1
    - Dst: overlaps_rdm
      Src: /src/xen/tools/libs/light/libxl_dm.c:643,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:651,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:655,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 4
    argNames:
    - gc
    - d_config
    - rdm_mem_boundary
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint64_t
    - struct xc_dom_image*
    assertStmts:
    - condition: (xrdm)
      pos:
        line_end: 504
        line_start: 504
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    - condition: (xrdm)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 670
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 670
    functionName: libxl__domain_device_construct_rdm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - libxl_defbool_val
    - MB
    - libxl__device_pci_setdefault
    - libxl__xc_device_get_rdm
    - LOG
    - PCI_DEVFN
    - overlaps_rdm
    - pfn_to_paddr
    - add_rdm_entry
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_device_construct_rdm(libxl__gc *gc,\n                                       libxl_domain_config
      *d_config,\n                                       uint64_t rdm_mem_boundary,\n
      \                                      struct xc_dom_image *dom)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - guest_config
    argTypes:
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: libxl__dm_vnc
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    linkageType: ''
    returnType: libxl_vnc_info
    signature: libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - guest_config
    argTypes:
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 692
    functionName: dm_sdl
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    linkageType: ''
    returnType: libxl_sdl_info
    signature: libxl_sdl_info *dm_sdl(const libxl_domain_config *guest_config)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - guest_config
    argTypes:
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: dm_keymap
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *dm_keymap(const libxl_domain_config *guest_config)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:710,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:715,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:717,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:721,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:725,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:727,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:728,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:729,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:731,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:732,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:733,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:735,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:736,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:739,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:743,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - gc
    - spice
    argTypes:
    - libxl__gc*
    - libxl_spice_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 746
    functionName: dm_spice_options
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - LOG
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: "char *dm_spice_options(libxl__gc *gc,\n                                    const
      libxl_spice_info *spice)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__is_igd_vga_passthru
      Src: /src/xen/tools/libs/light/libxl_dm.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - guest_config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 762
    functionName: libxl__detect_gfx_passthru_kind
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__is_igd_vga_passthru
    linkageType: ''
    returnType: enum libxl_gfx_passthru_kind
    signature: "enum libxl_gfx_passthru_kind libxl__detect_gfx_passthru_kind(libxl__gc
      *gc,\n                                const libxl_domain_config *guest_config)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:777,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:786,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:787,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:792,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:802,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_dm.c:814,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 7
    argNames:
    - gc
    - target_path
    - unit
    - format
    - disk
    - colo_mode
    - id_ptr
    argTypes:
    - libxl__gc*
    - char*
    - int
    - char*
    - libxl_device_disk*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 820
    functionName: qemu_disk_scsi_drive_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - abort
    linkageType: ''
    returnType: char
    signature: "char *qemu_disk_scsi_drive_string(libxl__gc *gc, const char *target_path,\n
      \                                        int unit, const char *format,\n                                         const
      libxl_device_disk *disk,\n                                         int colo_mode,
      const char **id_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:832,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:836,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:850,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:870,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_dm.c:883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - gc
    - target_path
    - unit
    - format
    - disk
    - colo_mode
    argTypes:
    - libxl__gc*
    - char*
    - int
    - char*
    - libxl_device_disk*
    - int
    assertStmts:
    - condition: (disk->readwrite)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 887
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 887
    functionName: qemu_disk_ide_drive_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - assert
    - GCSPRINTF
    - abort
    linkageType: ''
    returnType: char
    signature: "char *qemu_disk_ide_drive_string(libxl__gc *gc, const char *target_path,\n
      \                                       int unit, const char *format,\n                                        const
      libxl_device_disk *disk,\n                                        int colo_mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__qemu_qmp_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:895,1
    - Dst: socket
      Src: /src/xen/tools/libs/light/libxl_dm.c:897,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:899,1
    - Dst: libxl__prepare_sockaddr_un
      Src: /src/xen/tools/libs/light/libxl_dm.c:903,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_dm.c:907,1
    - Dst: bind
      Src: /src/xen/tools/libs/light/libxl_dm.c:911,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:913,1
    - Dst: listen
      Src: /src/xen/tools/libs/light/libxl_dm.c:918,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:920,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:930,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - gc
    - domid
    - fd_r
    argTypes:
    - libxl__gc*
    - libxl_domid
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 889
    functionDepth: 1
    functionLinenumber: 889
    functionLinenumberEnd: 932
    functionName: libxl__pre_open_qmp_socket
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - bind
    - libxl__prepare_sockaddr_un
    - libxl__remove_file
    - socket
    - close
    - LOGED
    - libxl__qemu_qmp_path
    - listen
    linkageType: ''
    returnType: int
    signature: "int libxl__pre_open_qmp_socket(libxl__gc *gc, libxl_domid domid,\n
      \                                     int *fd_r)"
  - BBCount: 116
    BranchProfiles: []
    Callsites:
    - Dst: libxl__dm_vnc
      Src: /src/xen/tools/libs/light/libxl_dm.c:948,1
    - Dst: dm_sdl
      Src: /src/xen/tools/libs/light/libxl_dm.c:949,1
    - Dst: dm_keymap
      Src: /src/xen/tools/libs/light/libxl_dm.c:950,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:956,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:959,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:960,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:962,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:964,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:965,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:973,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:975,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:976,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:985,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:987,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:988,1
    - Dst: libxl__qemu_qmp_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:990,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:993,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:994,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:996,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:997,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:998,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:1000,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1002,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1003,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1011,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1015,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1020,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1024,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1025,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1032,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1038,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1041,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1045,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1051,1
    - Dst: strchr
      Src: /src/xen/tools/libs/light/libxl_dm.c:1062,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1064,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1070,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1073,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1076,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1079,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1083,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1086,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1091,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1098,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1101,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1103,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1105,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1109,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1116,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1119,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1122,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:1131,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1132,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1140,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1146,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1148,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1151,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1161,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1163,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1166,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1174,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1175,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1178,1
    - Dst: dm_spice_options
      Src: /src/xen/tools/libs/light/libxl_dm.c:1180,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1184,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1185,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1186,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1187,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1196,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1197,1
    - Dst: libxl__sizekb_to_mb
      Src: /src/xen/tools/libs/light/libxl_dm.c:1198,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1201,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1202,1
    - Dst: libxl__sizekb_to_mb
      Src: /src/xen/tools/libs/light/libxl_dm.c:1203,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1209,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1210,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1214,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1219,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1220,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1222,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/libs/light/libxl_dm.c:1224,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/libs/light/libxl_dm.c:1226,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1227,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1230,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1232,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1239,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1247,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1251,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1254,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1255,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1260,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1264,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1271,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1272,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1274,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1277,1
    - Dst: libxl__qemu_soundhw_from_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1285,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1287,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1293,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1297,1
    - Dst: libxl__qemu_soundhw_to_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1298,1
    - Dst: libxl__acpi_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1301,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1302,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1305,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_dm.c:1308,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1310,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1310,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1314,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1314,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1318,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/libs/light/libxl_dm.c:1319,1
    - Dst: libxl__device_nic_devname
      Src: /src/xen/tools/libs/light/libxl_dm.c:1320,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1323,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1324,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1325,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1328,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1329,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1330,1
    - Dst: libxl_tapif_script
      Src: /src/xen/tools/libs/light/libxl_dm.c:1335,1
    - Dst: libxl_tapif_script
      Src: /src/xen/tools/libs/light/libxl_dm.c:1336,1
    - Dst: APPEND_COLO_SOCK_CLIENT
      Src: /src/xen/tools/libs/light/libxl_dm.c:1368,1
    - Dst: APPEND_COLO_SOCK_CLIENT
      Src: /src/xen/tools/libs/light/libxl_dm.c:1372,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1378,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1379,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1380,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1387,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1388,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1389,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1395,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1396,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1397,1
    - Dst: APPEND_COLO_SOCK_SERVER
      Src: /src/xen/tools/libs/light/libxl_dm.c:1404,1
    - Dst: APPEND_COLO_SOCK_SERVER
      Src: /src/xen/tools/libs/light/libxl_dm.c:1408,1
    - Dst: APPEND_COLO_SOCK_SERVER
      Src: /src/xen/tools/libs/light/libxl_dm.c:1412,1
    - Dst: APPEND_COLO_SOCK_SERVER
      Src: /src/xen/tools/libs/light/libxl_dm.c:1416,1
    - Dst: APPEND_COLO_SOCK_SERVER
      Src: /src/xen/tools/libs/light/libxl_dm.c:1420,1
    - Dst: APPEND_COLO_SOCK_CLIENT
      Src: /src/xen/tools/libs/light/libxl_dm.c:1424,1
    - Dst: APPEND_COLO_SOCK_CLIENT
      Src: /src/xen/tools/libs/light/libxl_dm.c:1428,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1434,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1435,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1436,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1443,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1444,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1445,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1452,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1453,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1454,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1463,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1464,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1465,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1466,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1467,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1482,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1483,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1487,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1491,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1492,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:1493,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1496,1
    - Dst: rmdir
      Src: /src/xen/tools/libs/light/libxl_dm.c:1511,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:1513,1
    - Dst: mkdir
      Src: /src/xen/tools/libs/light/libxl_dm.c:1519,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:1523,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1530,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1531,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1533,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1534,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1544,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1545,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:1548,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1549,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1550,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1550,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1554,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1556,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1560,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1562,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1565,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_dm.c:1569,1
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_dm.c:1571,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1578,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1582,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1587,1
    - Dst: libxl__detect_gfx_passthru_kind
      Src: /src/xen/tools/libs/light/libxl_dm.c:1589,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1592,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1595,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1598,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1603,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1605,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_dm.c:1608,1
    - Dst: libxl__sizekb_to_mb
      Src: /src/xen/tools/libs/light/libxl_dm.c:1611,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1612,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1613,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1613,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1616,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1616,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1619,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/tools/libs/light/libxl_dm.c:1623,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1630,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1639,1
    - Dst: libxl__qemu_disk_format_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1642,1
    - Dst: libxl__qemu_disk_format_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1644,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1648,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1652,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1654,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1661,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1664,1
    - Dst: libxl__device_disk_find_local_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:1671,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1675,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1685,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1692,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1693,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:1696,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1699,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1702,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1715,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1716,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:1724,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:1727,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1732,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1733,1
    - Dst: qemu_disk_scsi_drive_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1735,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1740,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1742,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1748,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:1752,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1753,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1755,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1760,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:1765,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1769,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1770,1
    - Dst: qemu_disk_ide_drive_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:1772,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:1777,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1788,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1789,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1794,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1795,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_dm.c:1803,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1804,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1806,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1807,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1811,1
    - Dst: flexarray_contents
      Src: /src/xen/tools/libs/light/libxl_dm.c:1812,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:1813,1
    - Dst: flexarray_contents
      Src: /src/xen/tools/libs/light/libxl_dm.c:1815,1
    CyclomaticComplexity: 167
    EdgeCount: 167
    ICount: 471
    argCount: 9
    argNames:
    - gc
    - dm
    - guest_domid
    - guest_config
    - args
    - envs
    - state
    - qemu_opts
    - dm_state_fd
    argTypes:
    - libxl__gc*
    - char*
    - int
    - libxl_domain_config*
    - char***
    - char***
    - libxl__domain_build_state*
    - libxl__qemu_available_opts*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 934
    functionDepth: 6
    functionLinenumber: 934
    functionLinenumberEnd: 1817
    functionName: libxl__build_device_model_args_new
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_count_set
    - flexarray_vappend
    - libxl__device_disk_find_local_path
    - qemu_disk_scsi_drive_string
    - flexarray_append_pair
    - dm_keymap
    - LOGED
    - strchr
    - flexarray_make
    - libxl__qemu_disk_format_string
    - libxl_tapif_script
    - LIBXL_MAC_BYTES
    - libxl__sizekb_to_mb
    - libxl__dm_vnc
    - libxl__qemu_soundhw_from_string
    - libxl_defbool_val
    - libxl__run_dir_path
    - libxl__device_disk_dev_number
    - qemu_disk_ide_drive_string
    - abort
    - libxl__device_nic_devname
    - dm_sdl
    - libxl__qemu_qmp_path
    - dm_spice_options
    - libxl__detect_gfx_passthru_kind
    - GCSPRINTF
    - open
    - libxl__acpi_defbool_val
    - libxl__sprintf
    - libxl_string_list_length
    - libxl__strdup
    - APPEND_COLO_SOCK_SERVER
    - libxl__qemu_soundhw_to_string
    - flexarray_contents
    - flexarray_append
    - APPEND_COLO_SOCK_CLIENT
    - LOGD
    - mkdir
    - strncmp
    - rmdir
    linkageType: ''
    returnType: int
    signature: "int libxl__build_device_model_args_new(libxl__gc *gc,\n    const char
      *dm, int guest_domid,\n    const libxl_domain_config *guest_config,\n    char
      ***args, char ***envs,\n    const libxl__domain_build_state *state,\n    const
      libxl__qemu_available_opts *qemu_opts,\n    int *dm_state_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sock_id
    - ','
    - sock_ip
    - ','
    - sock_port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1351
    functionName: APPEND_COLO_SOCK_SERVER
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_COLO_SOCK_SERVER(sock_id, sock_ip, sock_port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sock_id
    - ','
    - sock_ip
    - ','
    - sock_port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1364
    functionName: APPEND_COLO_SOCK_CLIENT
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_COLO_SOCK_CLIENT(sock_id, sock_ip, sock_port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:1831,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:1832,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:1833,1
    - Dst: libxl__build_device_model_args_new
      Src: /src/xen/tools/libs/light/libxl_dm.c:1835,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:1842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 9
    argNames:
    - gc
    - dm
    - guest_domid
    - guest_config
    - args
    - envs
    - state
    - qemu_opts
    - dm_state_fd
    argTypes:
    - libxl__gc*
    - char*
    - int
    - libxl_domain_config*
    - char***
    - char***
    - libxl__domain_build_state*
    - libxl__qemu_available_opts*
    - int*
    assertStmts:
    - condition: (dm_state_fd != NULL)
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    - condition: (*dm_state_fd < 0)
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 1846
      start: 1819
    functionDepth: 7
    functionLinenumber: 1819
    functionLinenumberEnd: 1846
    functionName: libxl__build_device_model_args
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - assert
    - libxl__build_device_model_args_new
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl__build_device_model_args(libxl__gc *gc,\n    const char
      *dm, int guest_domid,\n    const libxl_domain_config *guest_config,\n    char
      ***args, char ***envs,\n    const libxl__domain_build_state *state,\n    const
      libxl__qemu_available_opts *qemu_opts,\n    int *dm_state_fd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_dm.c:1854,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - guest_config
    - dm_config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1865
    functionName: libxl__dm_vifs_from_hvm_guest_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCNEW_ARRAY
    - GCSPRINTF
    linkageType: ''
    returnType: void
    signature: "void libxl__dm_vifs_from_hvm_guest_config(libxl__gc *gc,\n                                    libxl_domain_config
      * const guest_config,\n                                    libxl_domain_config
      *dm_config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_vfb_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:1877,1
    - Dst: libxl_device_vkb_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:1878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - gc
    - guest_config
    - vfb
    - vkb
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl_device_vfb*
    - libxl_device_vkb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1867
    functionDepth: 0
    functionLinenumber: 1867
    functionLinenumberEnd: 1890
    functionName: libxl__vfb_and_vkb_from_hvm_guest_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl_device_vkb_init
    - libxl_device_vfb_init
    linkageType: ''
    returnType: int
    signature: "int libxl__vfb_and_vkb_from_hvm_guest_config(libxl__gc *gc,\n                                        const
      libxl_domain_config *guest_config,\n                                        libxl_device_vfb
      *vfb,\n                                        libxl_device_vkb *vkb)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_dm.c:1911,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_dm.c:1916,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:1921,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:1921,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:1921,1
    - Dst: strcat
      Src: /src/xen/tools/libs/light/libxl_dm.c:1922,1
    - Dst: strcat
      Src: /src/xen/tools/libs/light/libxl_dm.c:1923,1
    - Dst: libxl__xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_dm.c:1933,1
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_dm.c:1936,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1937,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1945,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_dm.c:1947,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_dm.c:1947,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:1951,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1952,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1957,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_dm.c:1959,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_dm.c:1959,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:1962,1
    - Dst: libxl__xs_mknod
      Src: /src/xen/tools/libs/light/libxl_dm.c:1965,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:1965,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_dm.c:1966,1
    - Dst: libxl__xs_transaction_commit
      Src: /src/xen/tools/libs/light/libxl_dm.c:1970,1
    - Dst: libxl__xs_transaction_abort
      Src: /src/xen/tools/libs/light/libxl_dm.c:1978,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 70
    argCount: 5
    argNames:
    - gc
    - dm_domid
    - guest_domid
    - args
    - is_linux_stubdom
    argTypes:
    - libxl__gc*
    - int
    - int
    - char**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1892
    functionDepth: 4
    functionLinenumber: 1892
    functionLinenumberEnd: 1981
    functionName: libxl__write_stub_dmargs
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_transaction_commit
    - ARRAY_SIZE
    - libxl__xs_mknod
    - libxl__xs_transaction_start
    - libxl__xs_transaction_abort
    - strlen
    - libxl__xs_read_mandatory
    - libxl__malloc
    - libxl__xs_write_checked
    - strcmp
    - strcat
    linkageType: ''
    returnType: int
    signature: "int libxl__write_stub_dmargs(libxl__gc *gc,\n                                    int
      dm_domid, int guest_domid,\n                                    char **args,
      bool is_linux_stubdom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:1988,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:1989,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gc
    - domid
    - name
    - value
    argTypes:
    - libxl__gc*
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1983
    functionDepth: 6
    functionLinenumber: 1983
    functionLinenumberEnd: 1991
    functionName: libxl__store_libxl_entry
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__sprintf
    - libxl__xs_printf
    - libxl__xs_libxl_path
    linkageType: ''
    returnType: int
    signature: "int libxl__store_libxl_entry(libxl__gc *gc, uint32_t domid,\n                                    const
      char *name, const char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:1995,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dmss
    argTypes:
    - libxl__dm_spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1993
    functionDepth: 4
    functionLinenumber: 1993
    functionLinenumberEnd: 1997
    functionName: dmss_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__ev_qmp_init
    - libxl__ev_time_init
    linkageType: ''
    returnType: void
    signature: void dmss_init(libxl__dm_spawn_state *dmss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2001,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_dm.c:2002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gc
    - dmss
    argTypes:
    - libxl__gc*
    - libxl__dm_spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1999
    functionDepth: 5
    functionLinenumber: 1999
    functionLinenumberEnd: 2003
    functionName: dmss_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: void dmss_dispose(libxl__gc *gc, libxl__dm_spawn_state *dmss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - guest_name
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2042
    functionName: libxl__stub_dm_name
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__stub_dm_name(libxl__gc *gc, const char *guest_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2046,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dm.c:2047,1
    - Dst: libxl__domain_build_state_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2063,1
    - Dst: dmss_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2064,1
    - Dst: dmss_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2065,1
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2066,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2068,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2068,1
    - Dst: libxl_domain_create_info_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2072,1
    - Dst: libxl__stub_dm_name
      Src: /src/xen/tools/libs/light/libxl_dm.c:2074,1
    - Dst: libxl__domid_to_name
      Src: /src/xen/tools/libs/light/libxl_dm.c:2075,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/libs/light/libxl_dm.c:2082,1
    - Dst: libxl_domain_build_info_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2084,1
    - Dst: libxl_domain_build_info_init_type
      Src: /src/xen/tools/libs/light/libxl_dm.c:2085,1
    - Dst: libxl__dm_vifs_from_hvm_guest_config
      Src: /src/xen/tools/libs/light/libxl_dm.c:2110,1
    - Dst: libxl__domain_config_setdefault
      Src: /src/xen/tools/libs/light/libxl_dm.c:2115,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2118,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2119,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2120,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_dm.c:2121,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_dm.c:2122,1
    - Dst: libxl__vfb_and_vkb_from_hvm_guest_config
      Src: /src/xen/tools/libs/light/libxl_dm.c:2123,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_dm.c:2131,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2132,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_dm.c:2139,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2140,1
    - Dst: libxl__domain_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:2151,1
    - Dst: libxl__domain_build
      Src: /src/xen/tools/libs/light/libxl_dm.c:2156,1
    - Dst: libxl__build_device_model_args
      Src: /src/xen/tools/libs/light/libxl_dm.c:2160,1
    - Dst: libxl__store_libxl_entry
      Src: /src/xen/tools/libs/light/libxl_dm.c:2170,1
    - Dst: libxl_device_model_version_to_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2171,1
    - Dst: libxl__write_stub_dmargs
      Src: /src/xen/tools/libs/light/libxl_dm.c:2173,1
    - Dst: libxl__stubdomain_is_linux
      Src: /src/xen/tools/libs/light/libxl_dm.c:2174,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2175,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2176,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2177,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2179,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2180,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2181,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2186,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2187,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2188,1
    - Dst: libxl_bios_type_to_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2190,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2197,1
    - Dst: libxl__sprintf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2198,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2199,1
    - Dst: xc_domain_set_target
      Src: /src/xen/tools/libs/light/libxl_dm.c:2201,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2203,1
    - Dst: xs_set_target
      Src: /src/xen/tools/libs/light/libxl_dm.c:2208,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_dm.c:2215,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_dm.c:2216,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2216,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_dm.c:2217,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2218,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_dm.c:2219,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_dm.c:2220,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_dm.c:2224,1
    - Dst: libxl__add_disks
      Src: /src/xen/tools/libs/light/libxl_dm.c:2226,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_dm.c:2227,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2232,1
    - Dst: spawn_stubdom_pvqemu_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:2233,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 114
    argCount: 2
    argNames:
    - egc
    - sdss
    argTypes:
    - libxl__egc*
    - libxl__stub_dm_spawn_state*
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 2231
        line_start: 2231
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    - condition: (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
      pos:
        line_end: 2067
        line_start: 2067
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 2234
      start: 2044
    functionDepth: 8
    functionLinenumber: 2044
    functionLinenumberEnd: 2234
    functionName: libxl__spawn_stub_dm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - xs_mkdir
    - libxl__domid_to_name
    - libxl__vfb_and_vkb_from_hvm_guest_config
    - xs_transaction_start
    - libxl__build_device_model_args
    - LOGED
    - libxl__multidev_prepared
    - libxl_domain_build_info_init_type
    - DEVICE_MODEL_XS_PATH
    - libxl__store_libxl_entry
    - libxl_device_model_version_to_string
    - libxl_defbool_val
    - libxl_bios_type_to_string
    - libxl__xswait_init
    - libxl__domain_build_state_init
    - ARRAY_SIZE
    - libxl_uuid_generate
    - dmss_init
    - xs_set_target
    - xs_transaction_end
    - libxl__add_disks
    - STATE_AO_GC
    - libxl__stub_dm_name
    - GCSPRINTF
    - libxl__domain_config_setdefault
    - GCNEW
    - libxl__multidev_begin
    - libxl__sprintf
    - access
    - libxl_domain_create_info_init
    - libxl__gc_owner
    - spawn_stubdom_pvqemu_cb
    - libxl__xs_get_dompath
    - xc_domain_set_target
    - libxl__dm_vifs_from_hvm_guest_config
    - xs_set_permissions
    - libxl_domain_build_info_init
    - libxl__domain_build
    - libxl__xs_printf
    - libxl__domain_make
    - libxl__write_stub_dmargs
    - libxl__stubdomain_is_linux
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state
      *sdss)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2239,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2240,1
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_dm.c:2241,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2255,1
    - Dst: set_default
      Src: /src/xen/tools/libs/light/libxl_dm.c:2264,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_dm.c:2270,1
    - Dst: libxl__device_add
      Src: /src/xen/tools/libs/light/libxl_dm.c:2275,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_dm.c:2288,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2301,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/libs/light/libxl_dm.c:2302,1
    - Dst: libxl_create_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:2303,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2305,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dm.c:2306,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2312,1
    - Dst: libxl__device_model_savefile
      Src: /src/xen/tools/libs/light/libxl_dm.c:2313,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2318,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2329,1
    - Dst: libxl__need_xenpv_qemu
      Src: /src/xen/tools/libs/light/libxl_dm.c:2340,1
    - Dst: libxl__device_console_add
      Src: /src/xen/tools/libs/light/libxl_dm.c:2346,1
    - Dst: libxl__stubdomain_is_linux
      Src: /src/xen/tools/libs/light/libxl_dm.c:2353,1
    - Dst: spawn_qmp_proxy
      Src: /src/xen/tools/libs/light/libxl_dm.c:2354,1
    - Dst: qmp_proxy_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2356,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2362,1
    - Dst: qmp_proxy_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2363,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 3
    argNames:
    - egc
    - multidev
    - ret
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 2361
        line_start: 2361
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    - condition: (guest_config->b_info.u.hvm.serial_list)
      pos:
        line_end: 2328
        line_start: 2328
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 2364
      start: 2236
    functionDepth: 6
    functionLinenumber: 2236
    functionLinenumberEnd: 2364
    functionName: spawn_stub_launch_dm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - libxl_create_logfile
    - libxl__device_model_savefile
    - free
    - libxl_domid_to_name
    - libxl__calloc
    - set_default
    - libxl__device_add
    - qmp_proxy_spawn_outcome
    - libxl__stubdomain_is_linux
    - libxl__device_console_add
    - spawn_qmp_proxy
    - assert
    - libxl__gc_owner
    - libxl__need_xenpv_qemu
    linkageType: ''
    returnType: void
    signature: "void spawn_stub_launch_dm(libxl__egc *egc,\n                                 libxl__multidev
      *multidev, int ret)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2369,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2372,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_dm.c:2377,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2378,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2384,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2385,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2386,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_dm.c:2395,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2397,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2398,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2399,1
    - Dst: libxl__qemu_qmp_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:2400,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2402,1
    - Dst: libxl__create_qemu_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:2404,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2404,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:2410,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2412,1
    - Dst: libxl__spawn_spawn
      Src: /src/xen/tools/libs/light/libxl_dm.c:2417,1
    - Dst: setsid
      Src: /src/xen/tools/libs/light/libxl_dm.c:2421,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_dm.c:2422,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:2430,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:2432,1
    - Dst: qmp_proxy_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 2
    argNames:
    - egc
    - sdss
    argTypes:
    - libxl__egc*
    - libxl__stub_dm_spawn_state*
    assertStmts:
    - condition: (nr == arraysize)
      pos:
        line_end: 2401
        line_start: 2401
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 2436
      start: 2366
    functionDepth: 4
    functionLinenumber: 2366
    functionLinenumberEnd: 2436
    functionName: spawn_qmp_proxy
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__xs_get_dompath
    - GCSPRINTF
    - open
    - libxl__spawn_spawn
    - libxl__create_qemu_logfile
    - GCNEW_ARRAY
    - close
    - LOGED
    - setsid
    - libxl__exec
    - libxl__qemu_qmp_path
    - qmp_proxy_spawn_outcome
    - DEVICE_MODEL_XS_PATH
    - access
    - assert
    linkageType: ''
    returnType: void
    signature: "void spawn_qmp_proxy(libxl__egc *egc,\n                            libxl__stub_dm_spawn_state
      *sdss)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2441,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:2446,1
    - Dst: libxl__spawn_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_dm.c:2449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - egc
    - spawn
    - xsdata
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2438
    functionDepth: 3
    functionLinenumber: 2438
    functionLinenumberEnd: 2450
    functionName: qmp_proxy_confirm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - strcmp
    - libxl__spawn_initiate_detach
    linkageType: ''
    returnType: void
    signature: "void qmp_proxy_confirm(libxl__egc *egc, libxl__spawn_state *spawn,\n
      \                             const char *xsdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2456,1
    - Dst: qmp_proxy_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - spawn
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2458
    functionName: qmp_proxy_startup_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - qmp_proxy_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void qmp_proxy_startup_failed(libxl__egc *egc,\n                                     libxl__spawn_state
      *spawn,\n                                     int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2463,1
    - Dst: qmp_proxy_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - spawn
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2465
    functionName: qmp_proxy_detached
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - qmp_proxy_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void qmp_proxy_detached(libxl__egc *egc,\n                               libxl__spawn_state
      *spawn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2471,1
    - Dst: libxl__need_xenpv_qemu
      Src: /src/xen/tools/libs/light/libxl_dm.c:2476,1
    - Dst: libxl__spawn_local_dm
      Src: /src/xen/tools/libs/light/libxl_dm.c:2490,1
    - Dst: spawn_stubdom_pvqemu_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:2493,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:2499,1
    - Dst: spawn_stubdom_pvqemu_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:2500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - egc
    - sdss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stub_dm_spawn_state*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 2498
        line_start: 2498
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 2501
      start: 2467
    functionDepth: 1
    functionLinenumber: 2467
    functionLinenumberEnd: 2501
    functionName: qmp_proxy_spawn_outcome
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 4
    functionsReached:
    - spawn_stubdom_pvqemu_cb
    - STATE_AO_GC
    - libxl__spawn_local_dm
    - assert
    - libxl__need_xenpv_qemu
    linkageType: ''
    returnType: void
    signature: "void qmp_proxy_spawn_outcome(libxl__egc *egc,\n                                    libxl__stub_dm_spawn_state
      *sdss,\n                                    int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2508,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2509,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_dm.c:2516,1
    - Dst: libxl__add_nics
      Src: /src/xen/tools/libs/light/libxl_dm.c:2518,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_dm.c:2519,1
    - Dst: stubdom_pvqemu_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:2524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - stubdom_dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2503
    functionDepth: 3
    functionLinenumber: 2503
    functionLinenumberEnd: 2525
    functionName: spawn_stubdom_pvqemu_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 2
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__multidev_begin
    - stubdom_pvqemu_cb
    - libxl__multidev_prepared
    - libxl__add_nics
    linkageType: ''
    returnType: void
    signature: "void spawn_stubdom_pvqemu_cb(libxl__egc *egc,\n                                libxl__dm_spawn_state
      *stubdom_dmss,\n                                int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2531,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2532,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2536,1
    - Dst: libxl__domain_unpause
      Src: /src/xen/tools/libs/light/libxl_dm.c:2544,1
    - Dst: stubdom_pvqemu_unpaused
      Src: /src/xen/tools/libs/light/libxl_dm.c:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2548
    functionName: stubdom_pvqemu_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__domain_unpause
    - LOGED
    - stubdom_pvqemu_unpaused
    linkageType: ''
    returnType: void
    signature: "void stubdom_pvqemu_cb(libxl__egc *egc,\n                              libxl__multidev
      *multidev,\n                              int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2555,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2556,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2562,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2564,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_dm.c:2568,1
    - Dst: stubdom_xswait_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:2574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2550
    functionDepth: 6
    functionLinenumber: 2550
    functionLinenumberEnd: 2575
    functionName: stubdom_pvqemu_unpaused
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - stubdom_xswait_cb
    - libxl__xswait_start
    - DEVICE_MODEL_XS_PATH
    linkageType: ''
    returnType: void
    signature: "void stubdom_pvqemu_unpaused(libxl__egc *egc,\n                                    libxl__dm_resume_state
      *dmrs,\n                                    int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2581,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2585,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:2592,1
    - Dst: libxl__domain_build_state_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2595,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_dm.c:2596,1
    - Dst: dmss_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2597,1
    - Dst: dmss_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2598,1
    - Dst: libxl__stub_dm_spawn_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dm.c:2599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - egc
    - xswait
    - rc
    - p
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2577
    functionDepth: 6
    functionLinenumber: 2577
    functionLinenumberEnd: 2600
    functionName: stubdom_xswait_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - strcmp
    - dmss_dispose
    - libxl__domain_build_state_dispose
    - libxl__xswait_stop
    - libxl__stub_dm_spawn_state*::callback
    linkageType: ''
    returnType: void
    signature: "void stubdom_xswait_cb(libxl__egc *egc, libxl__xswait_state *xswait,\n
      \                             int rc, const char *p)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2649,1
    - Dst: dmss_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:2660,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2662,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_dm.c:2663,1
    - Dst: libxl__domain_device_model
      Src: /src/xen/tools/libs/light/libxl_dm.c:2666,1
    - Dst: access
      Src: /src/xen/tools/libs/light/libxl_dm.c:2672,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2673,1
    - Dst: libxl__domain_get_device_model_uid
      Src: /src/xen/tools/libs/light/libxl_dm.c:2678,1
    - Dst: libxl__create_qemu_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:2686,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2687,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:2692,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2694,1
    - Dst: libxl__pre_open_qmp_socket
      Src: /src/xen/tools/libs/light/libxl_dm.c:2699,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:2702,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:2703,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:2710,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2712,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:2716,1
    - Dst: flexarray_contents
      Src: /src/xen/tools/libs/light/libxl_dm.c:2717,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2719,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2721,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2724,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:2734,1
    - Dst: libxl__spawn_spawn
      Src: /src/xen/tools/libs/light/libxl_dm.c:2737,1
    - Dst: setsid
      Src: /src/xen/tools/libs/light/libxl_dm.c:2741,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_dm.c:2742,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:2752,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:2754,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:2756,1
    - Dst: device_model_launch
      Src: /src/xen/tools/libs/light/libxl_dm.c:2758,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 2
    argNames:
    - egc
    - dmss
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2643
    functionDepth: 8
    functionLinenumber: 2643
    functionLinenumberEnd: 2759
    functionName: libxl__spawn_local_dm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 2
    functionsReached:
    - flexarray_vappend
    - libxl__ev_qmp_send
    - LOGED
    - setsid
    - flexarray_make
    - libxl__domain_device_model
    - libxl__exec
    - libxl_defbool_val
    - libxl__spawn_spawn
    - abort
    - close
    - dmss_init
    - STATE_AO_GC
    - GCSPRINTF
    - open
    - flexarray_contents
    - flexarray_append
    - access
    - device_model_launch
    - libxl__xs_get_dompath
    - libxl__domain_get_device_model_uid
    - libxl__pre_open_qmp_socket
    - libxl__create_qemu_logfile
    linkageType: ''
    returnType: void
    signature: void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2764,1
    - Dst: device_model_probe_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - spawn
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2761
    functionDepth: 1
    functionLinenumber: 2761
    functionLinenumberEnd: 2766
    functionName: device_model_probe_startup_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_model_probe_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_startup_failed(libxl__egc *egc,\n    libxl__spawn_state
      *spawn, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - egc
    - spawn
    - xsdata
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2768
    functionDepth: 0
    functionLinenumber: 2768
    functionLinenumberEnd: 2772
    functionName: device_model_probe_confirm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_confirm(libxl__egc *egc,\n    libxl__spawn_state
      *spawn, const char *xsdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2777,1
    - Dst: device_model_probe_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - spawn
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2779
    functionName: device_model_probe_detached
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_model_probe_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_detached(libxl__egc *egc,\n    libxl__spawn_state
      *spawn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2785,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:2796,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:2801,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2806,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:2808,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:2812,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:2813,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:2814,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:2819,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2819,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:2822,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2822,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:2836,1
    - Dst: libxl__spawn_initiate_failure
      Src: /src/xen/tools/libs/light/libxl_dm.c:2841,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2781
    functionDepth: 8
    functionLinenumber: 2781
    functionLinenumberEnd: 2842
    functionName: device_model_probe_cmdline
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - libxl__ev_qmp_send
    - libxl__json_array_get
    - libxl__json_map_get
    - libxl__spawn_initiate_failure
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_cmdline(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2848,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2850,1
    - Dst: libxl__spawn_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_dm.c:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2844
    functionDepth: 5
    functionLinenumber: 2844
    functionLinenumberEnd: 2852
    functionName: device_model_probe_quit
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__spawn_initiate_detach
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_quit(libxl__egc *egc,\n    libxl__ev_qmp *qmp,
      const libxl__json_object *response, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:2858,1
    - Dst: libxl__kill_xs_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:2861,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2864,1
    - Dst: device_model_launch
      Src: /src/xen/tools/libs/light/libxl_dm.c:2873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2854
    functionDepth: 5
    functionLinenumber: 2854
    functionLinenumberEnd: 2874
    functionName: device_model_probe_spawn_outcome
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 2
    functionsReached:
    - libxl__kill_xs_path
    - LOGD
    - device_model_launch
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void device_model_probe_spawn_outcome(libxl__egc *egc,\n    libxl__dm_spawn_state
      *dmss, int rc)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:2879,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2900,1
    - Dst: libxl__pre_open_qmp_socket
      Src: /src/xen/tools/libs/light/libxl_dm.c:2904,1
    - Dst: libxl__build_device_model_args
      Src: /src/xen/tools/libs/light/libxl_dm.c:2908,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:2916,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2917,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2918,1
    - Dst: libxl_bios_type_to_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:2919,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2924,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2925,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_dm.c:2927,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2930,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_dm.c:2931,1
    - Dst: libxl__create_qemu_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:2933,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2933,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:2939,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:2941,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:2946,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:2953,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2954,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2957,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2959,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2961,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:2963,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2966,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:2967,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:2970,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:2983,1
    - Dst: libxl__spawn_spawn
      Src: /src/xen/tools/libs/light/libxl_dm.c:2987,1
    - Dst: setsid
      Src: /src/xen/tools/libs/light/libxl_dm.c:2991,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_dm.c:2992,1
    - Dst: libxl__local_dm_preexec_restrict
      Src: /src/xen/tools/libs/light/libxl_dm.c:2993,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_dm.c:2995,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_dm.c:2997,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:3003,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:3004,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:3006,1
    - Dst: device_model_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:3008,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 3
    argNames:
    - egc
    - dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 2876
    functionDepth: 8
    functionLinenumber: 2876
    functionLinenumberEnd: 3009
    functionName: device_model_launch
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 2
    functionsReached:
    - xs_mkdir
    - xs_get_domain_path
    - libxl__build_device_model_args
    - LOGED
    - libxl__ev_qmp_send
    - setsid
    - libxl__exec
    - DEVICE_MODEL_XS_PATH
    - libxl_defbool_val
    - libxl_bios_type_to_string
    - libxl__spawn_spawn
    - device_model_spawn_outcome
    - free
    - close
    - _exit
    - STATE_AO_GC
    - GCSPRINTF
    - open
    - libxl__local_dm_preexec_restrict
    - libxl__xs_get_dompath
    - LOGD
    - libxl__xs_printf
    - libxl__pre_open_qmp_socket
    - libxl__create_qemu_logfile
    linkageType: ''
    returnType: void
    signature: "void device_model_launch(libxl__egc *egc,\n    libxl__dm_spawn_state
      *dmss, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3018,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:3019,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_dm.c:3020,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3024,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:3025,1
    - Dst: libxl__xs_directory
      Src: /src/xen/tools/libs/light/libxl_dm.c:3026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - gc
    - domid
    - backend_id
    - type
    - def
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3011
    functionDepth: 2
    functionLinenumber: 3011
    functionLinenumberEnd: 3029
    functionName: libxl__query_qemu_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_directory
    linkageType: ''
    returnType: bool
    signature: "bool libxl__query_qemu_backend(libxl__gc *gc, uint32_t domid,\n                               uint32_t
      backend_id, const char *type, bool def)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3034,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:3039,1
    - Dst: libxl__spawn_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_dm.c:3042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - egc
    - spawn
    - xsdata
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3031
    functionDepth: 3
    functionLinenumber: 3031
    functionLinenumberEnd: 3043
    functionName: device_model_confirm
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - strcmp
    - libxl__spawn_initiate_detach
    linkageType: ''
    returnType: void
    signature: "void device_model_confirm(libxl__egc *egc, libxl__spawn_state *spawn,\n
      \                                const char *xsdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3049,1
    - Dst: device_model_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - spawn
    - rc
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3045
    functionDepth: 1
    functionLinenumber: 3045
    functionLinenumberEnd: 3051
    functionName: device_model_startup_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_model_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void device_model_startup_failed(libxl__egc *egc,\n                                        libxl__spawn_state
      *spawn,\n                                        int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3056,1
    - Dst: device_model_spawn_outcome
      Src: /src/xen/tools/libs/light/libxl_dm.c:3057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - egc
    - spawn
    argTypes:
    - libxl__egc*
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3053
    functionDepth: 1
    functionLinenumber: 3053
    functionLinenumberEnd: 3058
    functionName: device_model_detached
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_model_spawn_outcome
    linkageType: ''
    returnType: void
    signature: "void device_model_detached(libxl__egc *egc,\n                                  libxl__spawn_state
      *spawn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3065,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:3070,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3075,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3077,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3079,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_dm.c:3079,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3083,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:3088,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3089,1
    - Dst: libxl__spawn_initiate_detach
      Src: /src/xen/tools/libs/light/libxl_dm.c:3094,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3098,1
    - Dst: libxl__spawn_initiate_failure
      Src: /src/xen/tools/libs/light/libxl_dm.c:3099,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - egc
    - ev
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3060
    functionDepth: 5
    functionLinenumber: 3060
    functionLinenumberEnd: 3100
    functionName: device_model_qmp_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - LOGD
    - libxl__spawn_initiate_detach
    - libxl__json_map_get
    - libxl__spawn_initiate_failure
    - libxl__ev_qmp_dispose
    - strcmp
    - JSON
    linkageType: ''
    returnType: void
    signature: "void device_model_qmp_cb(libxl__egc *egc, libxl__ev_qmp *ev,\n                                const
      libxl__json_object *response,\n                                int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3106,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3113,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_dm.c:3119,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3121,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_dm.c:3133,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:3141,1
    - Dst: device_model_postconfig_done
      Src: /src/xen/tools/libs/light/libxl_dm.c:3147,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - egc
    - dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3102
    functionDepth: 8
    functionLinenumber: 3102
    functionLinenumberEnd: 3148
    functionName: device_model_spawn_outcome
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - unlink
    - libxl__ev_qmp_send
    - LOGED
    - device_model_postconfig_done
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void device_model_spawn_outcome(libxl__egc *egc,\n                                       libxl__dm_spawn_state
      *dmss,\n                                       int rc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3154,1
    - Dst: libxl__dm_vnc
      Src: /src/xen/tools/libs/light/libxl_dm.c:3155,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3178,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3179,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3181,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:3184,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_dm.c:3186,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3188,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3194,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3196,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_dm.c:3199,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:3202,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:3207,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3208,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:3217,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3223,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_dm.c:3225,1
    - Dst: device_model_postconfig_done
      Src: /src/xen/tools/libs/light/libxl_dm.c:3227,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3228
      start: 3150
    functionDepth: 8
    functionLinenumber: 3150
    functionLinenumberEnd: 3228
    functionName: device_model_postconfig_chardev
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - LOGD
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__ev_qmp_send
    - libxl__xs_printf
    - strncmp
    - libxl__json_array_get
    - device_model_postconfig_done
    - libxl__json_map_get
    - strtol
    - libxl__dm_vnc
    - JSON
    linkageType: ''
    returnType: void
    signature: "void device_model_postconfig_chardev(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3234,1
    - Dst: libxl__dm_vnc
      Src: /src/xen/tools/libs/light/libxl_dm.c:3235,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3246,1
    - Dst: libxl__json_object_get_bool
      Src: /src/xen/tools/libs/light/libxl_dm.c:3248,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3252,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3254,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_dm.c:3255,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3257,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:3259,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:3264,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3265,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:3268,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3269,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_dm.c:3276,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_dm.c:3277,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3287,1
    - Dst: JSON
      Src: /src/xen/tools/libs/light/libxl_dm.c:3289,1
    - Dst: device_model_postconfig_done
      Src: /src/xen/tools/libs/light/libxl_dm.c:3291,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3230
    functionDepth: 8
    functionLinenumber: 3230
    functionLinenumberEnd: 3292
    functionName: device_model_postconfig_vnc
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - libxl__xs_get_dompath
    - GCSPRINTF
    - LOGD
    - libxl__ev_qmp_send
    - libxl__xs_printf
    - device_model_postconfig_done
    - libxl__json_map_get
    - libxl__qmp_param_add_string
    - libxl__dm_vnc
    - libxl__json_object_get_bool
    - JSON
    linkageType: ''
    returnType: void
    signature: "void device_model_postconfig_vnc(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3298,1
    - Dst: libxl__dm_vnc
      Src: /src/xen/tools/libs/light/libxl_dm.c:3299,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_dm.c:3304,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_dm.c:3309,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3310,1
    - Dst: device_model_postconfig_done
      Src: /src/xen/tools/libs/light/libxl_dm.c:3314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3294
    functionDepth: 3
    functionLinenumber: 3294
    functionLinenumberEnd: 3315
    functionName: device_model_postconfig_vnc_passwd
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_printf
    - device_model_postconfig_done
    - libxl__dm_vnc
    linkageType: ''
    returnType: void
    signature: "void device_model_postconfig_vnc_passwd(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3321,1
    - Dst: device_model_postconfig_done
      Src: /src/xen/tools/libs/light/libxl_dm.c:3322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3317
    functionDepth: 1
    functionLinenumber: 3317
    functionLinenumberEnd: 3323
    functionName: devise_model_postconfig_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - device_model_postconfig_done
    linkageType: ''
    returnType: void
    signature: "void devise_model_postconfig_timeout(libxl__egc *egc, libxl__ev_time
      *ev,\n                                     const struct timeval *requested_abs,\n
      \                                    int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3333,1
    - Dst: dmss_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:3335,1
    - Dst: libxl__dm_spawn_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dm.c:3336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - dmss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3326
    functionDepth: 6
    functionLinenumber: 3326
    functionLinenumberEnd: 3337
    functionName: device_model_postconfig_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 5
    functionsReached:
    - dmss_dispose
    - LOGD
    - libxl__dm_spawn_state*::callback
    linkageType: ''
    returnType: void
    signature: "void device_model_postconfig_done(libxl__egc *egc,\n                                         libxl__dm_spawn_state
      *dmss,\n                                         int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3342,1
    - Dst: dmss_init
      Src: /src/xen/tools/libs/light/libxl_dm.c:3349,1
    - Dst: qemu_xen_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:3352,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:3354,1
    - Dst: flexarray_make
      Src: /src/xen/tools/libs/light/libxl_dm.c:3355,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3357,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3358,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:3359,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3360,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3361,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:3362,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3363,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3364,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3365,1
    - Dst: flexarray_vappend
      Src: /src/xen/tools/libs/light/libxl_dm.c:3366,1
    - Dst: flexarray_append
      Src: /src/xen/tools/libs/light/libxl_dm.c:3367,1
    - Dst: flexarray_contents
      Src: /src/xen/tools/libs/light/libxl_dm.c:3368,1
    - Dst: flexarray_contents
      Src: /src/xen/tools/libs/light/libxl_dm.c:3370,1
    - Dst: libxl__create_qemu_logfile
      Src: /src/xen/tools/libs/light/libxl_dm.c:3372,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3372,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:3377,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_dm.c:3388,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3391,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3392,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3399,1
    - Dst: libxl__spawn_spawn
      Src: /src/xen/tools/libs/light/libxl_dm.c:3404,1
    - Dst: setsid
      Src: /src/xen/tools/libs/light/libxl_dm.c:3408,1
    - Dst: libxl__exec
      Src: /src/xen/tools/libs/light/libxl_dm.c:3409,1
    - Dst: dmss_dispose
      Src: /src/xen/tools/libs/light/libxl_dm.c:3414,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:3415,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_dm.c:3416,1
    - Dst: libxl__dm_spawn_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dm.c:3418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 2
    argNames:
    - egc
    - dmss
    argTypes:
    - libxl__egc*
    - libxl__dm_spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3339
    functionDepth: 6
    functionLinenumber: 3339
    functionLinenumberEnd: 3420
    functionName: libxl__spawn_qemu_xenpv_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - open
    - flexarray_vappend
    - libxl__spawn_spawn
    - libxl__dm_spawn_state*::callback
    - libxl__zalloc
    - qemu_xen_path
    - close
    - dmss_init
    - setsid
    - flexarray_make
    - libxl__exec
    - flexarray_contents
    - dmss_dispose
    - flexarray_append
    - libxl__create_qemu_logfile
    linkageType: ''
    returnType: void
    signature: "void libxl__spawn_qemu_xenpv_backend(libxl__egc *egc,\n                                     libxl__dm_spawn_state
      *dmss)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__kill_xs_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - xs_path_pid
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3423
    functionDepth: 4
    functionLinenumber: 3423
    functionLinenumberEnd: 3426
    functionName: kill_device_model
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - libxl__kill_xs_path
    linkageType: ''
    returnType: int
    signature: int kill_device_model(libxl__gc *gc, const char *xs_path_pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3434,1
    - Dst: kill_device_model
      Src: /src/xen/tools/libs/light/libxl_dm.c:3436,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:3440,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:3441,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3429
    functionDepth: 5
    functionLinenumber: 3429
    functionLinenumberEnd: 3446
    functionName: libxl__destroy_qemu_xenpv_backend
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - libxl__xs_rm_checked
    - GCSPRINTF
    - kill_device_model
    linkageType: ''
    returnType: int
    signature: int libxl__destroy_qemu_xenpv_backend(libxl__gc *gc, uint32_t domid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3475,1
    - Dst: DEVICE_MODEL_XS_PATH
      Src: /src/xen/tools/libs/light/libxl_dm.c:3484,1
    - Dst: libxl__xs_rm_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:3485,1
    - Dst: ACCUMULATE_RC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3487,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3488,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3494,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_dm.c:3495,1
    - Dst: ACCUMULATE_RC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3508,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3509,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3514,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_dm.c:3517,1
    - Dst: ACCUMULATE_RC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3521,1
    - Dst: kill_device_model_uid_child
      Src: /src/xen/tools/libs/light/libxl_dm.c:3532,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:3533,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_dm.c:3534,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3547,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3549,1
    - Dst: kill_device_model
      Src: /src/xen/tools/libs/light/libxl_dm.c:3550,1
    - Dst: ACCUMULATE_RC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3553,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3554,1
    - Dst: kill_device_model_uid_cb
      Src: /src/xen/tools/libs/light/libxl_dm.c:3564,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - egc
    - ddms
    argTypes:
    - libxl__egc*
    - libxl__destroy_devicemodel_state*
    assertStmts:
    - condition: (rc <= 0 && rc >= -125)
      pos:
        line_end: 3532
        line_start: 3532
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 3566
      start: 3472
    functionDepth: 7
    functionLinenumber: 3472
    functionLinenumberEnd: 3566
    functionName: libxl__destroy_device_model
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - _exit
    - ACCUMULATE_RC
    - LOGD
    - GCSPRINTF
    - libxl__ev_child_fork
    - libxl__xs_rm_checked
    - kill_device_model_uid_child
    - kill_device_model_uid_cb
    - kill_device_model
    - DEVICE_MODEL_XS_PATH
    - assert
    - libxl__xs_read_checked
    linkageType: ''
    returnType: void
    signature: "void libxl__destroy_device_model(libxl__egc *egc,\n                                 libxl__destroy_devicemodel_state
      *ddms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3575,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3582,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_dm.c:3582,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_dm.c:3589,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3591,1
    - Dst: flock
      Src: /src/xen/tools/libs/light/libxl_dm.c:3599,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3604,1
    - Dst: libxl__get_reaper_uid
      Src: /src/xen/tools/libs/light/libxl_dm.c:3614,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ddms
    - reaper_uid
    argTypes:
    - libxl__destroy_devicemodel_state*
    - uid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3572
    functionDepth: 1
    functionLinenumber: 3572
    functionLinenumberEnd: 3615
    functionName: get_reaper_lock_and_uid
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__run_dir_path
    - GCSPRINTF
    - open
    - flock
    - LOGED
    - libxl__get_reaper_uid
    linkageType: ''
    returnType: int
    signature: "int get_reaper_lock_and_uid(libxl__destroy_devicemodel_state *ddms,\n
      \                                  uid_t *reaper_uid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3627,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_dm.c:3630,1
    - Dst: get_reaper_lock_and_uid
      Src: /src/xen/tools/libs/light/libxl_dm.c:3648,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3651,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:3659,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_dm.c:3660,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3662,1
    - Dst: libxl__setresuid
      Src: /src/xen/tools/libs/light/libxl_dm.c:3664,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3666,1
    - Dst: kill
      Src: /src/xen/tools/libs/light/libxl_dm.c:3679,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ddms
    - dm_kill_uid_str
    argTypes:
    - libxl__destroy_devicemodel_state*
    - char*
    assertStmts:
    - condition: (reaper_uid)
      pos:
        line_end: 3658
        line_start: 3658
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    - condition: (dm_kill_uid)
      pos:
        line_end: 3659
        line_start: 3659
        source_file: /src/xen/tools/libs/light/libxl_dm.c
    constantsTouched: []
    func_position:
      end: 3690
      start: 3625
    functionDepth: 2
    functionLinenumber: 3625
    functionLinenumberEnd: 3690
    functionName: kill_device_model_uid_child
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - kill
    - LOGD
    - libxl__setresuid
    - LOGED
    - get_reaper_lock_and_uid
    - atoi
    - assert
    linkageType: ''
    returnType: int
    signature: "int kill_device_model_uid_child(libxl__destroy_devicemodel_state *ddms,\n
      \                                      const char *dm_kill_uid_str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3696,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3697,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_dm.c:3702,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_dm.c:3702,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_dm.c:3703,1
    - Dst: ACCUMULATE_RC
      Src: /src/xen/tools/libs/light/libxl_dm.c:3705,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_dm.c:3706,1
    - Dst: libxl__qmp_cleanup
      Src: /src/xen/tools/libs/light/libxl_dm.c:3711,1
    - Dst: libxl__destroy_devicemodel_state*::callback
      Src: /src/xen/tools/libs/light/libxl_dm.c:3713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - egc
    - destroyer
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3692
    functionDepth: 2
    functionLinenumber: 3692
    functionLinenumberEnd: 3714
    functionName: kill_device_model_uid_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 1
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - ACCUMULATE_RC
    - WEXITSTATUS
    - libxl__destroy_devicemodel_state*::callback
    - libxl__qmp_cleanup
    - WIFEXITED
    linkageType: ''
    returnType: void
    signature: "void kill_device_model_uid_cb(libxl__egc *egc,\n                                    libxl__ev_child
      *destroyer,\n                                    pid_t pid, int status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl__get_domid
      Src: /src/xen/tools/libs/light/libxl_dm.c:3723,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_dm.c:3725,1
    - Dst: libxl__device_type_get_num
      Src: /src/xen/tools/libs/light/libxl_dm.c:3739,1
    - Dst: libxl__device_type*::dm_needed
      Src: /src/xen/tools/libs/light/libxl_dm.c:3744,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_dm.c:3744,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - gc
    - d_config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3764
      start: 3717
    functionDepth: 1
    functionLinenumber: 3717
    functionLinenumberEnd: 3764
    functionName: libxl__need_xenpv_qemu
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 3
    functionsReached:
    - libxl__device_type_get_elem
    - libxl__get_domid
    - libxl__device_type_get_num
    - LOG
    - libxl__device_type*::dm_needed
    linkageType: ''
    returnType: int
    signature: int libxl__need_xenpv_qemu(libxl__gc *gc, libxl_domain_config *d_config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3770,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_dm.c:3771,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_dm.c:3776,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_dm.c:3777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3780
      start: 3766
    functionDepth: 2
    functionLinenumber: 3766
    functionLinenumberEnd: 3780
    functionName: libxl__dm_active
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_read
    linkageType: ''
    returnType: int
    signature: int libxl__dm_active(libxl__gc *gc, uint32_t domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__dm_active
      Src: /src/xen/tools/libs/light/libxl_dm.c:3787,1
    - Dst: libxl__need_xenpv_qemu
      Src: /src/xen/tools/libs/light/libxl_dm.c:3790,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_dm.c:3797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - d_config
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3782
    functionDepth: 3
    functionLinenumber: 3782
    functionLinenumberEnd: 3802
    functionName: libxl__dm_check_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_dm.c
    functionUses: 6
    functionsReached:
    - LOGD
    - libxl__dm_active
    - libxl__need_xenpv_qemu
    linkageType: ''
    returnType: int
    signature: "int libxl__dm_check_start(libxl__gc *gc, libxl_domain_config *d_config,\n
      \                         uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__resolve_domid
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - vsnd
    - hotplug
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vsnd*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: libxl__device_vsnd_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__resolve_domid
    linkageType: ''
    returnType: int
    signature: "int libxl__device_vsnd_setdefault(libxl__gc *gc, uint32_t domid,\n
      \                                        libxl_device_vsnd *vsnd,\n                                         bool
      hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - domid
    - vsnd
    - device
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vsnd*
    - libxl__device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: libxl__device_from_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__device_from_vsnd(libxl__gc *gc, uint32_t domid,\n                                   libxl_device_vsnd
      *vsnd,\n                                   libxl__device *device)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:44,1
    - Dst: strtok
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:49,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:52,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:55,1
    - Dst: strtok
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - gc
    - str
    - params
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: libxl__sample_rates_from_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - libxl__realloc
    - strtoul
    - strtok
    linkageType: ''
    returnType: int
    signature: "int libxl__sample_rates_from_string(libxl__gc *gc, const char *str,\n
      \                                          libxl_vsnd_params *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__strdup
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:66,1
    - Dst: strtok
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:71,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:74,1
    - Dst: libxl_vsnd_pcm_format_from_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:80,1
    - Dst: strtok
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - gc
    - str
    - params
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: libxl__sample_formats_from_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__strdup
    - libxl_vsnd_pcm_format_from_string
    - libxl__realloc
    - strtok
    linkageType: ''
    returnType: int
    signature: "int libxl__sample_formats_from_string(libxl__gc *gc, const char *str,\n
      \                                            libxl_vsnd_params *params)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:99,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:100,1
    - Dst: libxl__sample_rates_from_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:105,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:109,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:110,1
    - Dst: libxl__sample_formats_from_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:115,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:119,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:120,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:125,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:128,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:129,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:134,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:137,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:138,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:143,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - gc
    - path
    - params
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 150
    functionName: libxl__params_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__sample_formats_from_string
    - libxl__sample_rates_from_string
    - libxl__xs_read_checked
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__params_from_xenstore(libxl__gc *gc, const char *path,\n
      \                                      libxl_vsnd_params *params)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:158,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:159,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:162,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:163,1
    - Dst: libxl_vsnd_stream_type_from_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:170,1
    - Dst: libxl__params_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - gc
    - path
    - stream
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 183
    functionName: libxl__stream_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__params_from_xenstore
    - libxl_vsnd_stream_type_from_string
    - xs_read
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__stream_from_xenstore(libxl__gc *gc, const char *path,\n
      \                                      libxl_vsnd_stream *stream)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:191,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:192,1
    - Dst: libxl__params_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:194,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:201,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:203,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:207,1
    - Dst: libxl_vsnd_stream_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:211,1
    - Dst: libxl__stream_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:213,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - gc
    - path
    - pcm
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_pcm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 185
    functionDepth: 7
    functionLinenumber: 185
    functionLinenumberEnd: 224
    functionName: libxl__pcm_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - GCSPRINTF
    - libxl__params_from_xenstore
    - libxl__stream_from_xenstore
    - xs_read
    - libxl_vsnd_stream_init
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__pcm_from_xenstore(libxl__gc *gc, const char *path,\n                                    libxl_vsnd_pcm
      *pcm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:235,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:236,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:240,1
    - Dst: libxl__xs_read_mandatory
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:243,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:244,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:248,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:249,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:252,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:253,1
    - Dst: libxl__params_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:256,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:263,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:265,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:269,1
    - Dst: libxl_vsnd_pcm_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:272,1
    - Dst: libxl__pcm_from_xenstore
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:274,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - gc
    - libxl_path
    - devid
    - vsnd
    argTypes:
    - libxl__gc*
    - char*
    - libxl_devid
    - libxl_device_vsnd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 226
    functionDepth: 8
    functionLinenumber: 226
    functionLinenumberEnd: 284
    functionName: libxl__vsnd_from_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__realloc
    - GCSPRINTF
    - libxl__params_from_xenstore
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl_vsnd_pcm_init
    - libxl__xs_read_mandatory
    - libxl__xs_read_checked
    - libxl__pcm_from_xenstore
    linkageType: ''
    returnType: int
    signature: "int libxl__vsnd_from_xenstore(libxl__gc *gc, const char *libxl_path,\n
      \                                    libxl_devid devid,\n                                     libxl_device_vsnd
      *vsnd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_device_vsnd*
    - libxl_device_vsnd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: libxl__update_config_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__update_config_vsnd(libxl__gc *gc,\n                                      libxl_device_vsnd
      *dst,\n                                      libxl_device_vsnd *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COMPARE_DEVID
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - libxl_device_vsnd*
    - libxl_device_vsnd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: libxl_device_vsnd_compare
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - COMPARE_DEVID
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vsnd_compare(const libxl_device_vsnd *d1,\n                                     const
      libxl_device_vsnd *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_add_async
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - domid
    - vsnd
    - aodev
    argTypes:
    - libxl__egc*
    - uint32_t
    - libxl_device_vsnd*
    - libxl__ao_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 6
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: libxl__device_vsnd_add
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__device_add_async
    linkageType: ''
    returnType: void
    signature: "void libxl__device_vsnd_add(libxl__egc *egc, uint32_t domid,\n                                   libxl_device_vsnd
      *vsnd,\n                                   libxl__ao_device *aodev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:318,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:320,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:325,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - str
    - sample_rates
    - num_sample_rates
    argTypes:
    - char*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: libxl__rates_to_str_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - sprintf
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int libxl__rates_to_str_vsnd(char *str, uint32_t *sample_rates,\n
      \                                            int num_sample_rates)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:347,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:348,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:350,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:351,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:356,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:357,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:359,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - str
    - sample_formats
    - num_sample_formats
    argTypes:
    - char*
    - libxl_vsnd_pcm_format*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 365
    functionName: libxl__formats_to_str_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl_vsnd_pcm_format_to_string
    - snprintf
    - sprintf
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int libxl__formats_to_str_vsnd(char *str,\n                                               libxl_vsnd_pcm_format
      *sample_formats,\n                                               int num_sample_formats)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl__rates_to_str_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:376,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:380,1
    - Dst: libxl__rates_to_str_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:382,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:384,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:385,1
    - Dst: libxl__formats_to_str_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:393,1
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:397,1
    - Dst: libxl__formats_to_str_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:399,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:401,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:402,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:409,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:410,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:411,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:416,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:417,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:418,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:423,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:424,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:425,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - gc
    - path
    - params
    - front
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_params*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 433
    functionName: libxl__set_params_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__formats_to_str_vsnd
    - GCSPRINTF
    - libxl__rates_to_str_vsnd
    - flexarray_append_pair
    - libxl__malloc
    linkageType: ''
    returnType: int
    signature: "int libxl__set_params_vsnd(libxl__gc *gc, char *path,\n                                  libxl_vsnd_params
      *params, flexarray_t *front)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:443,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:444,1
    - Dst: libxl_vsnd_stream_type_to_string
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:448,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:451,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:452,1
    - Dst: libxl__set_params_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:457,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - gc
    - path
    - streams
    - num_streams
    - front
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_stream*
    - int
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 466
    functionName: libxl__set_streams_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl_vsnd_stream_type_to_string
    - flexarray_append_pair
    - GCSPRINTF
    - libxl__set_params_vsnd
    linkageType: ''
    returnType: int
    signature: "int libxl__set_streams_vsnd(libxl__gc *gc, char *path,\n                                   libxl_vsnd_stream
      *streams,\n                                   int num_streams, flexarray_t *front)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:476,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:477,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:482,1
    - Dst: libxl__set_params_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:484,1
    - Dst: libxl__set_streams_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - gc
    - pcms
    - num_pcms
    - front
    argTypes:
    - libxl__gc*
    - libxl_vsnd_pcm*
    - int
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 496
    functionName: libxl__set_pcms_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__set_streams_vsnd
    - flexarray_append_pair
    - GCSPRINTF
    - libxl__set_params_vsnd
    linkageType: ''
    returnType: int
    signature: "int libxl__set_pcms_vsnd(libxl__gc *gc, libxl_vsnd_pcm *pcms,\n                                int
      num_pcms, flexarray_t *front)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:506,1
    - Dst: flexarray_append_pair
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:512,1
    - Dst: libxl__set_params_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:517,1
    - Dst: libxl__set_pcms_vsnd
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:520,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - gc
    - domid
    - vsnd
    - back
    - front
    - ro_front
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_device_vsnd*
    - flexarray_t*
    - flexarray_t*
    - flexarray_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 498
    functionDepth: 8
    functionLinenumber: 498
    functionLinenumberEnd: 527
    functionName: libxl__set_xenstore_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - flexarray_append_pair
    - libxl__set_pcms_vsnd
    - libxl__set_params_vsnd
    linkageType: ''
    returnType: int
    signature: "int libxl__set_xenstore_vsnd(libxl__gc *gc, uint32_t domid,\n                                    libxl_device_vsnd
      *vsnd,\n                                    flexarray_t *back, flexarray_t *front,\n
      \                                   flexarray_t *ro_front)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:538,1
    - Dst: libxl_streaminfo_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:542,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:544,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:545,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:549,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:551,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:552,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - gc
    - path
    - pcm
    - info
    argTypes:
    - libxl__gc*
    - char*
    - libxl_vsnd_pcm*
    - libxl_pcminfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 563
    functionName: libxl__device_stream_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - libxl__xs_read_checked
    - libxl__malloc
    - libxl_streaminfo_init
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl__device_stream_getinfo(libxl__gc *gc, const char *path,\n
      \                                       libxl_vsnd_pcm* pcm,\n                                        libxl_pcminfo
      *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__malloc
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:573,1
    - Dst: libxl_pcminfo_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:577,1
    - Dst: libxl__device_stream_getinfo
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:579,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:579,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - gc
    - path
    - vsnd
    - info
    argTypes:
    - libxl__gc*
    - char*
    - libxl_device_vsnd*
    - libxl_vsndinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 588
    functionName: libxl__device_pcm_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl__malloc
    - libxl__device_stream_getinfo
    - GCSPRINTF
    - libxl_pcminfo_init
    linkageType: ''
    returnType: int
    signature: "int libxl__device_pcm_getinfo(libxl__gc *gc, const char *path,\n                                     const
      libxl_device_vsnd *vsnd,\n                                     libxl_vsndinfo
      *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:594,1
    - Dst: libxl_vsndinfo_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:599,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:600,1
    - Dst: libxl__domain_device_frontend_path
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:603,1
    - Dst: libxl__domain_device_libxl_path
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:605,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:608,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:609,1
    - Dst: libxl__backendpath_parse_domid
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:611,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:614,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:614,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:616,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:618,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:619,1
    - Dst: libxl__device_pcm_getinfo
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - domid
    - vsnd
    - info
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_device_vsnd*
    - libxl_vsndinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 590
    functionDepth: 6
    functionLinenumber: 590
    functionLinenumberEnd: 631
    functionName: libxl_device_vsnd_getinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl_vsndinfo_init
    - libxl__backendpath_parse_domid
    - xs_read
    - libxl__device_pcm_getinfo
    - libxl__domain_device_libxl_path
    - libxl__domain_device_frontend_path
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int libxl_device_vsnd_getinfo(libxl_ctx *ctx, uint32_t domid,\n                              const
      libxl_device_vsnd *vsnd,\n                              libxl_vsndinfo *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:636,1
    - Dst: libxl_device_vsnd_init
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:642,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:644,1
    - Dst: libxl_device_vsnd_copy
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:650,1
    - Dst: libxl__device_list_free
      Src: /src/xen/tools/libs/light/libxl_vsnd.c:660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - domid
    - devid
    - vsnd
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_device_vsnd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 664
    functionName: libxl_devid_to_device_vsnd
    functionSourceFile: /src/xen/tools/libs/light/libxl_vsnd.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__device_list_free
    - libxl_device_vsnd_copy
    - libxl_device_vsnd_init
    - libxl__device_list
    linkageType: ''
    returnType: int
    signature: "int libxl_devid_to_device_vsnd(libxl_ctx *ctx, uint32_t domid,\n                               int
      devid, libxl_device_vsnd *vsnd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pages
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PAGE_TO_MEMKB
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_TO_MEMKB(pages)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_domain.c:25,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:38,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:40,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:43,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_domain.c:46,1
    - Dst: libxl__stub_dm_name
      Src: /src/xen/tools/libs/light/libxl_domain.c:48,1
    - Dst: libxl__stub_dm_name
      Src: /src/xen/tools/libs/light/libxl_domain.c:49,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_domain.c:54,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_domain.c:56,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:62,1
    - Dst: libxl_name_to_domid
      Src: /src/xen/tools/libs/light/libxl_domain.c:70,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:74,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:81,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/light/libxl_domain.c:88,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_domain.c:90,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_domain.c:95,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:96,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:100,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:103,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_domain.c:105,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_domain.c:106,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:107,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_domain.c:116,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:120,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/libs/light/libxl_domain.c:120,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:121,1
    - Dst: libxl__xs_write_checked
      Src: /src/xen/tools/libs/light/libxl_domain.c:122,1
    - Dst: libxl__domain_rename
      Src: /src/xen/tools/libs/light/libxl_domain.c:126,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:131,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:137,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:140,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:147,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:159,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:160,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 116
    argCount: 5
    argNames:
    - gc
    - domid
    - old_name
    - new_name
    - trans
    argTypes:
    - libxl__gc*
    - uint32_t
    - char*
    - char*
    - xs_transaction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 165
    functionName: libxl__domain_rename
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - xs_transaction_start
    - xs_read
    - LOGED
    - strlen
    - strcmp
    - libxl__domain_rename
    - libxl_name_to_domid
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - free
    - libxl_get_stubdom_id
    - xs_transaction_end
    - libxl__xs_write_checked
    - xs_write
    - libxl__stub_dm_name
    - GCSPRINTF
    - libxl__gc_owner
    - libxl__xs_get_dompath
    - LOGD
    - libxl_domain_info
    - LIBXL_UUID_BYTES
    - LOGEVD
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_rename(libxl__gc *gc, uint32_t domid,\n                         const
      char *old_name, const char *new_name,\n                         xs_transaction_t
      trans)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:170,1
    - Dst: libxl__domain_rename
      Src: /src/xen/tools/libs/light/libxl_domain.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - domid
    - old_name
    - new_name
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: libxl_domain_rename
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_rename
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_rename(libxl_ctx *ctx, uint32_t domid,\n                        const
      char *old_name, const char *new_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:184,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:187,1
    - Dst: libxl__domain_resume
      Src: /src/xen/tools/libs/light/libxl_domain.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - domid
    - suspend_cancel
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 10
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: libxl_domain_resume
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__domain_resume
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_resume(libxl_ctx *ctx, uint32_t domid, int suspend_cancel,\n
      \                       const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:199,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: domain_resume_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void domain_resume_done(libxl__egc *egc,\n                               libxl__dm_resume_state
      *dmrs,\n                               int rc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:212,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:222,1
    - Dst: libxl__uuid2string
      Src: /src/xen/tools/libs/light/libxl_domain.c:228,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:234,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:240,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_domain.c:252,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_domain.c:254,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/libs/light/libxl_domain.c:255,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/light/libxl_domain.c:256,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_domain.c:256,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_domain.c:258,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:258,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_domain.c:258,1
    - Dst: libxl__domain_rename
      Src: /src/xen/tools/libs/light/libxl_domain.c:259,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/light/libxl_domain.c:265,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:265,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_domain.c:265,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - ctx
    - domid
    - info
    - name_suffix
    - new_uuid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_domain_create_info*
    - char*
    - libxl_uuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 273
    functionName: libxl_domain_preserve
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - xs_mkdir
    - GC_INIT
    - xs_rm
    - libxl__xs_get_dompath
    - GCSPRINTF
    - xs_write
    - ARRAY_SIZE
    - xs_set_permissions
    - xs_transaction_start
    - strlen
    - xs_transaction_end
    - libxl__uuid2string
    - libxl__domain_rename
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_preserve(libxl_ctx *ctx, uint32_t domid,\n                          libxl_domain_create_info
      *info, const char *name_suffix, libxl_uuid new_uuid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_domain.c:282,1
    - Dst: libxl_flask_sid_to_context
      Src: /src/xen/tools/libs/light/libxl_domain.c:285,1
    - Dst: PAGE_TO_MEMKB
      Src: /src/xen/tools/libs/light/libxl_domain.c:302,1
    - Dst: PAGE_TO_MEMKB
      Src: /src/xen/tools/libs/light/libxl_domain.c:303,1
    - Dst: PAGE_TO_MEMKB
      Src: /src/xen/tools/libs/light/libxl_domain.c:304,1
    - Dst: PAGE_TO_MEMKB
      Src: /src/xen/tools/libs/light/libxl_domain.c:305,1
    - Dst: PAGE_TO_MEMKB
      Src: /src/xen/tools/libs/light/libxl_domain.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - xcinfo
    - xlinfo
    argTypes:
    - libxl_ctx*
    - xc_domaininfo_t*
    - libxl_dominfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 314
    functionName: libxl__xcinfo2xlinfo
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl_flask_sid_to_context
    - memcpy
    - PAGE_TO_MEMKB
    linkageType: ''
    returnType: void
    signature: "void libxl__xcinfo2xlinfo(libxl_ctx *ctx,\n                          const
      xc_domaininfo_t *xcinfo,\n                          libxl_dominfo *xlinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:323,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_domain.c:325,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/libs/light/libxl_domain.c:327,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:328,1
    - Dst: libxl__xcinfo2xlinfo
      Src: /src/xen/tools/libs/light/libxl_domain.c:330,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:337,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - nb_domain_out
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 346
    functionName: libxl_list_domain
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - GC_INIT
    - libxl__realloc
    - free
    - GCNEW_ARRAY
    - LOGE
    - libxl__xcinfo2xlinfo
    - xc_domain_getinfolist
    linkageType: ''
    returnType: libxl_dominfo
    signature: libxl_dominfo * libxl_list_domain(libxl_ctx *ctx, int *nb_domain_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:352,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_domain.c:354,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:356,1
    - Dst: libxl__xcinfo2xlinfo
      Src: /src/xen/tools/libs/light/libxl_domain.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - info_r
    - domid
    argTypes:
    - libxl_ctx*
    - libxl_dominfo*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 365
    functionName: libxl_domain_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 7
    functionsReached:
    - GC_INIT
    - libxl__xcinfo2xlinfo
    - xc_domain_getinfo_single
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_info(libxl_ctx *ctx, libxl_dominfo *info_r,\n                      uint32_t
      domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:371,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/libs/light/libxl_domain.c:376,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:385,1
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_domain.c:388,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/libs/light/libxl_domain.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - nb_vm_out
    argTypes:
    - libxl_ctx*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 369
    functionDepth: 5
    functionLinenumber: 369
    functionLinenumberEnd: 401
    functionName: libxl_list_vm
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - GC_INIT
    - libxl__calloc
    - libxl_is_stubdom
    - libxl_list_domain
    linkageType: ''
    returnType: libxl_vminfo
    signature: libxl_vminfo * libxl_list_vm(libxl_ctx *ctx, int *nb_vm_out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:410,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:414,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/libs/light/libxl_domain.c:421,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:422,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_domain.c:427,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_domain.c:428,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_domain.c:429,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:430,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_domain.c:431,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_domain.c:432,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:434,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:435,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:436,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:442,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:443,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:444,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:445,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:446,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:453,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:463,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:468,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_domain.c:471,1
    - Dst: libxl__colo_save_setup
      Src: /src/xen/tools/libs/light/libxl_domain.c:472,1
    - Dst: libxl__remus_setup
      Src: /src/xen/tools/libs/light/libxl_domain.c:474,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:478,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 6
    argNames:
    - ctx
    - info
    - domid
    - send_fd
    - recv_fd
    - ao_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_remus_info*
    - uint32_t
    - int
    - int
    - libxl_asyncop_how*
    assertStmts:
    - condition: (info)
      pos:
        line_end: 467
        line_start: 467
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    constantsTouched: []
    func_position:
      end: 479
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 479
    functionName: libxl_domain_remus_start
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - AO_CREATE
    - libxl__remus_setup
    - LOGD
    - GCNEW
    - libxl__colo_save_setup
    - libxl_defbool_setdefault
    - libxl_defbool_is_default
    - assert
    - AO_CREATE_FAIL
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_remus_start(libxl_ctx *ctx, libxl_domain_remus_info
      *info,\n                             uint32_t domid, int send_fd, int recv_fd,\n
      \                            const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:484,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - dss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 491
    functionName: remus_failover_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void remus_failover_cb(libxl__egc *egc,\n                              libxl__domain_save_state
      *dss, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:496,1
    - Dst: libxl__fd_flags_restore
      Src: /src/xen/tools/libs/light/libxl_domain.c:499,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - dss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 505
    functionName: domain_suspend_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    - libxl__fd_flags_restore
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_cb(libxl__egc *egc,\n                              libxl__domain_save_state
      *dss, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:510,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:513,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:520,1
    - Dst: libxl__fd_flags_modify_save
      Src: /src/xen/tools/libs/light/libxl_domain.c:532,1
    - Dst: libxl__domain_save
      Src: /src/xen/tools/libs/light/libxl_domain.c:537,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - ctx
    - domid
    - fd
    - flags
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - int
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 507
    functionDepth: 6
    functionLinenumber: 507
    functionLinenumberEnd: 542
    functionName: libxl_domain_suspend
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - GCNEW
    - libxl__domain_save
    - libxl__fd_flags_modify_save
    - AO_CREATE_FAIL
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int
      flags,\n                         const libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:547,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - dss
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: domain_suspend_empty_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void domain_suspend_empty_cb(libxl__egc *egc,\n                              libxl__domain_suspend_state
      *dss, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:554,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:558,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:564,1
    - Dst: libxl__domain_suspend_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:568,1
    - Dst: libxl__domain_suspend
      Src: /src/xen/tools/libs/light/libxl_domain.c:571,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: libxl_domain_suspend_only
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - GCNEW
    - libxl__domain_suspend_init
    - libxl__domain_suspend
    - AO_CREATE_FAIL
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_suspend_only(libxl_ctx *ctx, uint32_t domid,\n                              const
      libxl_asyncop_how *ao_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:581,1
    - Dst: xc_domain_pause
      Src: /src/xen/tools/libs/light/libxl_domain.c:583,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:585,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:586,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 590
    functionName: libxl_domain_pause
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - LOGED
    - libxl__ao_complete
    - xc_domain_pause
    - AO_CREATE_FAIL
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_pause(libxl_ctx *ctx, uint32_t domid,\n                       const
      libxl_asyncop_how *ao_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:596,1
    - Dst: xc_domain_dumpcore
      Src: /src/xen/tools/libs/light/libxl_domain.c:599,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:601,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - domid
    - filename
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 612
    functionName: libxl_domain_core_dump
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__ao_complete
    - xc_domain_dumpcore
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_core_dump(libxl_ctx *ctx, uint32_t domid,\n                           const
      char *filename,\n                           const libxl_asyncop_how *ao_how)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:618,1
    - Dst: libxl__domain_resume_device_model_deprecated
      Src: /src/xen/tools/libs/light/libxl_domain.c:625,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:627,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/libs/light/libxl_domain.c:632,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:634,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 614
    functionDepth: 13
    functionLinenumber: 614
    functionLinenumberEnd: 641
    functionName: libxl__domain_unpause_deprecated
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - LOGD
    - LOGED
    - xc_domain_unpause
    - libxl__domain_type
    - libxl__domain_resume_device_model_deprecated
    linkageType: ''
    returnType: int
    signature: int libxl__domain_unpause_deprecated(libxl__gc *gc, libxl_domid domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:650,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:656,1
    - Dst: libxl__dm_resume
      Src: /src/xen/tools/libs/light/libxl_domain.c:664,1
    - Dst: domain_unpause_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - egc
    - dmrs
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 647
    functionDepth: 9
    functionLinenumber: 647
    functionLinenumberEnd: 670
    functionName: libxl__domain_unpause
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - libxl__dm_resume
    - domain_unpause_done
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: "void libxl__domain_unpause(libxl__egc *egc,\n                           libxl__dm_resume_state
      *dmrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/libs/light/libxl_domain.c:684,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:686,1
    - Dst: libxl__dm_resume_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 693
    functionName: domain_unpause_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl__dm_resume_state*::callback
    - xc_domain_unpause
    - LOGED
    linkageType: ''
    returnType: void
    signature: "void domain_unpause_done(libxl__egc *egc,\n                                libxl__dm_resume_state
      *dmrs,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:702,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:705,1
    - Dst: libxl__domain_unpause
      Src: /src/xen/tools/libs/light/libxl_domain.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 699
    functionDepth: 10
    functionLinenumber: 699
    functionLinenumberEnd: 711
    functionName: libxl_domain_unpause
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__domain_unpause
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid,\n                         const
      libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:717,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - egc
    - dmrs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__dm_resume_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 720
    functionName: domain_unpause_ao_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void domain_unpause_ao_done(libxl__egc *egc,\n                                   libxl__dm_resume_state
      *dmrs,\n                                   int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_domain.c:724,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:729,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:736,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 722
    functionDepth: 4
    functionLinenumber: 722
    functionLinenumberEnd: 742
    functionName: libxl__domain_pvcontrol_available
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - libxl__gc_owner
    - libxl__domain_type
    - LOGED
    linkageType: ''
    returnType: int
    signature: int libxl__domain_pvcontrol_available(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:748,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 753
    functionName: libxl__domain_pvcontrol_xspath
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl__xs_get_dompath
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__domain_pvcontrol_xspath(libxl__gc *gc, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_pvcontrol_xspath
      Src: /src/xen/tools/libs/light/libxl_domain.c:760,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_domain.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - gc
    - t
    - domid
    argTypes:
    - libxl__gc*
    - xs_transaction_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 765
    functionName: libxl__domain_pvcontrol_read
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl__xs_read
    - libxl__domain_pvcontrol_xspath
    linkageType: ''
    returnType: char
    signature: "char * libxl__domain_pvcontrol_read(libxl__gc *gc, xs_transaction_t
      t,\n                                    uint32_t domid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:770,1
    - Dst: libxl__domain_pvcontrol_available
      Src: /src/xen/tools/libs/light/libxl_domain.c:774,1
    - Dst: libxl__domain_pvcontrol_xspath
      Src: /src/xen/tools/libs/light/libxl_domain.c:781,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_domain.c:785,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:790,1
    - Dst: libxl__xswait_start
      Src: /src/xen/tools/libs/light/libxl_domain.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - egc
    - pvcontrol
    - domid
    - cmd
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - domid_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 767
    functionDepth: 6
    functionLinenumber: 767
    functionLinenumberEnd: 797
    functionName: libxl__domain_pvcontrol
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - GCSPRINTF
    - libxl__xswait_start
    - libxl__xs_printf
    - libxl__domain_pvcontrol_available
    - libxl__domain_pvcontrol_xspath
    linkageType: ''
    returnType: int
    signature: "int libxl__domain_pvcontrol(libxl__egc *egc, libxl__xswait_state *pvcontrol,\n
      \                           domid_t domid, const char *cmd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_domain.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: pvcontrol_acked
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool pvcontrol_acked(const char *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:814,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:818,1
    - Dst: libxl__domain_pvcontrol
      Src: /src/xen/tools/libs/light/libxl_domain.c:821,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 811
    functionDepth: 7
    functionLinenumber: 811
    functionLinenumberEnd: 824
    functionName: libxl_domain_shutdown
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__domain_pvcontrol
    - GCNEW
    - AO_CREATE_FAIL
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_shutdown(libxl_ctx *ctx, uint32_t domid,\n                          const
      libxl_asyncop_how *ao_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:829,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:833,1
    - Dst: libxl__domain_pvcontrol
      Src: /src/xen/tools/libs/light/libxl_domain.c:836,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 826
    functionDepth: 7
    functionLinenumber: 826
    functionLinenumberEnd: 839
    functionName: libxl_domain_reboot
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__domain_pvcontrol
    - GCNEW
    - AO_CREATE_FAIL
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_reboot(libxl_ctx *ctx, uint32_t domid,\n                        const
      libxl_asyncop_how *ao_how)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:844,1
    - Dst: pvcontrol_acked
      Src: /src/xen/tools/libs/light/libxl_domain.c:846,1
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_domain.c:849,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:852,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - egc
    - xswa
    - rc
    - state
    argTypes:
    - libxl__egc*
    - libxl__xswait_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 855
    functionName: pvcontrol_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - LOG
    - pvcontrol_acked
    - libxl__ao_complete
    - libxl__xswait_stop
    linkageType: ''
    returnType: void
    signature: "void pvcontrol_cb(libxl__egc *egc, libxl__xswait_state *xswa, int
      rc,\n                         const char *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:866,1
    - Dst: XEN_TAILQ_NEXT
      Src: /src/xen/tools/libs/light/libxl_domain.c:868,1
    - Dst: NEW_EVENT
      Src: /src/xen/tools/libs/light/libxl_domain.c:871,1
    - Dst: libxl__event_occurred
      Src: /src/xen/tools/libs/light/libxl_domain.c:873,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_domain.c:876,1
    - Dst: XEN_TAILQ_INSERT_HEAD
      Src: /src/xen/tools/libs/light/libxl_domain.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - evg_upd
    - why
    argTypes:
    - libxl__egc*
    - libxl_evgen_domain_death**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 878
    functionName: domain_death_occurred
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - LOGD
    - XEN_TAILQ_INSERT_HEAD
    - libxl__event_occurred
    - XEN_TAILQ_NEXT
    - NEW_EVENT
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void domain_death_occurred(libxl__egc *egc,\n                                  libxl_evgen_domain_death
      **evg_upd,\n                                  const char *why)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_domain.c:888,1
    - Dst: XEN_TAILQ_NEXT
      Src: /src/xen/tools/libs/light/libxl_domain.c:893,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/libs/light/libxl_domain.c:897,1
    - Dst: LIBXL__EVENT_DISASTER
      Src: /src/xen/tools/libs/light/libxl_domain.c:899,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:906,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:913,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:917,1
    - Dst: domain_death_occurred
      Src: /src/xen/tools/libs/light/libxl_domain.c:923,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:928,1
    - Dst: domain_death_occurred
      Src: /src/xen/tools/libs/light/libxl_domain.c:935,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:944,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:945,1
    - Dst: domain_death_occurred
      Src: /src/xen/tools/libs/light/libxl_domain.c:949,1
    - Dst: NEW_EVENT
      Src: /src/xen/tools/libs/light/libxl_domain.c:955,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:958,1
    - Dst: libxl__event_occurred
      Src: /src/xen/tools/libs/light/libxl_domain.c:963,1
    - Dst: XEN_TAILQ_NEXT
      Src: /src/xen/tools/libs/light/libxl_domain.c:967,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:970,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:975,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 4
    argNames:
    - egc
    - w
    - wpath
    - epath
    argTypes:
    - libxl__egc*
    - libxl__ev_xswatch*
    - char*
    - char*
    assertStmts:
    - condition: (evg->domid == got->domain)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    - condition: (rc)
      pos:
        line_end: 969
        line_start: 969
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    constantsTouched: []
    func_position:
      end: 978
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 978
    functionName: domain_death_xswatch_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - domain_death_occurred
    - LOGD
    - LIBXL__EVENT_DISASTER
    - libxl__event_occurred
    - XEN_TAILQ_NEXT
    - XEN_TAILQ_FIRST
    - LOG
    - xc_domain_getinfolist
    - NEW_EVENT
    - assert
    linkageType: ''
    returnType: void
    signature: "void domain_death_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch
      *w,\n                                        const char *wpath, const char *epath)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:982,1
    - Dst: malloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:988,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_domain.c:989,1
    - Dst: LIBXL_TAILQ_INSERT_SORTED
      Src: /src/xen/tools/libs/light/libxl_domain.c:993,1
    - Dst: libxl__ev_xswatch_isregistered
      Src: /src/xen/tools/libs/light/libxl_domain.c:996,1
    - Dst: libxl__ev_xswatch_register
      Src: /src/xen/tools/libs/light/libxl_domain.c:997,1
    - Dst: libxl__evdisable_domain_death
      Src: /src/xen/tools/libs/light/libxl_domain.c:999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - domid
    - user
    - evgen_out
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_ev_user
    - libxl_evgen_domain_death**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 980
    functionDepth: 4
    functionLinenumber: 980
    functionLinenumberEnd: 1009
    functionName: libxl_evenable_domain_death
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__ev_xswatch_isregistered
    - malloc
    - libxl__evdisable_domain_death
    - libxl__ev_xswatch_register
    - memset
    - LIBXL_TAILQ_INSERT_SORTED
    linkageType: ''
    returnType: int
    signature: "int libxl_evenable_domain_death(libxl_ctx *ctx, uint32_t domid,\n
      \               libxl_ev_user user, libxl_evgen_domain_death **evgen_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1016,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1018,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:1020,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/light/libxl_domain.c:1022,1
    - Dst: libxl__ev_xswatch_isregistered
      Src: /src/xen/tools/libs/light/libxl_domain.c:1023,1
    - Dst: libxl__ev_xswatch_deregister
      Src: /src/xen/tools/libs/light/libxl_domain.c:1024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - gc
    - evg
    argTypes:
    - libxl__gc*
    - libxl_evgen_domain_death*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1011
    functionDepth: 4
    functionLinenumber: 1011
    functionLinenumberEnd: 1027
    functionName: libxl__evdisable_domain_death
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - free
    - libxl__ev_xswatch_isregistered
    - libxl__ev_xswatch_deregister
    - XEN_TAILQ_FIRST
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: "void libxl__evdisable_domain_death(libxl__gc *gc,\n                                   libxl_evgen_domain_death
      *evg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:1031,1
    - Dst: libxl__evdisable_domain_death
      Src: /src/xen/tools/libs/light/libxl_domain.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - evg
    argTypes:
    - libxl_ctx*
    - libxl_evgen_domain_death*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1029
    functionDepth: 5
    functionLinenumber: 1029
    functionLinenumberEnd: 1034
    functionName: libxl_evdisable_domain_death
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__evdisable_domain_death
    linkageType: ''
    returnType: void
    signature: "void libxl_evdisable_domain_death(libxl_ctx *ctx,\n                                  libxl_evgen_domain_death
      *evg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1044,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:1047,1
    - Dst: libxl__domain_destroy
      Src: /src/xen/tools/libs/light/libxl_domain.c:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - domid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1054
    functionName: libxl_domain_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl__domain_destroy
    - GCNEW
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_destroy(libxl_ctx *ctx, uint32_t domid,\n                         const
      libxl_asyncop_how *ao_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1059,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1062,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - dds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_destroy_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1065
    functionName: domain_destroy_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__ao_complete
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void domain_destroy_cb(libxl__egc *egc, libxl__domain_destroy_state
      *dds,\n                              int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1082,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_domain.c:1083,1
    - Dst: libxl__destroy_domid
      Src: /src/xen/tools/libs/light/libxl_domain.c:1090,1
    - Dst: libxl__destroy_domid
      Src: /src/xen/tools/libs/light/libxl_domain.c:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - egc
    - dds
    argTypes:
    - libxl__egc*
    - libxl__domain_destroy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1080
    functionDepth: 3
    functionLinenumber: 1080
    functionLinenumberEnd: 1100
    functionName: libxl__domain_destroy
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 3
    functionsReached:
    - STATE_AO_GC
    - libxl__destroy_domid
    - libxl_get_stubdom_id
    linkageType: ''
    returnType: void
    signature: void libxl__domain_destroy(libxl__egc *egc, libxl__domain_destroy_state
      *dds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1106,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1107,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1111,1
    - Dst: libxl__device_model_savefile
      Src: /src/xen/tools/libs/light/libxl_domain.c:1117,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1118,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1120,1
    - Dst: destroy_finish_check
      Src: /src/xen/tools/libs/light/libxl_domain.c:1124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - dis
    - rc
    argTypes:
    - libxl__egc*
    - libxl__destroy_domid_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1125
    functionName: stubdom_destroy_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__device_model_savefile
    - libxl__remove_file
    - destroy_finish_check
    linkageType: ''
    returnType: void
    signature: "void stubdom_destroy_callback(libxl__egc *egc,\n                                     libxl__destroy_domid_state
      *dis,\n                                     int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1131,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1132,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1135,1
    - Dst: destroy_finish_check
      Src: /src/xen/tools/libs/light/libxl_domain.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - egc
    - dis
    - rc
    argTypes:
    - libxl__egc*
    - libxl__destroy_domid_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1141
    functionName: domain_destroy_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - destroy_finish_check
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void domain_destroy_callback(libxl__egc *egc,\n                                    libxl__destroy_domid_state
      *dis,\n                                    int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_destroy_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - dds
    argTypes:
    - libxl__egc*
    - libxl__domain_destroy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1150
    functionName: destroy_finish_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - libxl__domain_destroy_state*::callback
    linkageType: ''
    returnType: void
    signature: "void destroy_finish_check(libxl__egc *egc,\n                                 libxl__domain_destroy_state
      *dds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1170,1
    - Dst: libxl__ev_child_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1174,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_domain.c:1176,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1181,1
    - Dst: libxl__multidev_begin
      Src: /src/xen/tools/libs/light/libxl_domain.c:1186,1
    - Dst: libxl__device_pci_destroy_all
      Src: /src/xen/tools/libs/light/libxl_domain.c:1188,1
    - Dst: libxl__multidev_prepared
      Src: /src/xen/tools/libs/light/libxl_domain.c:1189,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:1193,1
    - Dst: libxl__destroy_domid_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:1194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - egc
    - dis
    argTypes:
    - libxl__egc*
    - libxl__destroy_domid_state*
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1192
        line_start: 1192
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    constantsTouched: []
    func_position:
      end: 1195
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1195
    functionName: libxl__destroy_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__ev_child_init
    - libxl__multidev_begin
    - libxl__device_pci_destroy_all
    - libxl_domain_info
    - libxl__destroy_domid_state*::callback
    - libxl__multidev_prepared
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state
      *dis)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1201,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1203,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1211,1
    - Dst: xc_domain_pause
      Src: /src/xen/tools/libs/light/libxl_domain.c:1215,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1217,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:1221,1
    - Dst: libxl_get_stubdom_id
      Src: /src/xen/tools/libs/light/libxl_domain.c:1223,1
    - Dst: libxl__dm_active
      Src: /src/xen/tools/libs/light/libxl_domain.c:1230,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_domain.c:1236,1
    - Dst: libxl__destroy_device_model
      Src: /src/xen/tools/libs/light/libxl_domain.c:1244,1
    - Dst: dm_destroy_cb
      Src: /src/xen/tools/libs/light/libxl_domain.c:1247,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:1252,1
    - Dst: libxl__destroy_domid_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:1253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - egc
    - multidev
    - rc
    argTypes:
    - libxl__egc*
    - libxl__multidev*
    - int
    assertStmts:
    - condition: (rc)
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    constantsTouched: []
    func_position:
      end: 1255
      start: 1197
    functionDepth: 8
    functionLinenumber: 1197
    functionLinenumberEnd: 1255
    functionName: destroy_domid_pci_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__domain_type
    - abort
    - dm_destroy_cb
    - libxl__dm_active
    - libxl__destroy_device_model
    - libxl__destroy_domid_state*::callback
    - libxl_get_stubdom_id
    - assert
    - xc_domain_pause
    - LOGEVD
    linkageType: ''
    returnType: void
    signature: "void destroy_domid_pci_done(libxl__egc *egc,\n                                   libxl__multidev
      *multidev,\n                                   int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1261,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1262,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1267,1
    - Dst: libxl_is_stubdom
      Src: /src/xen/tools/libs/light/libxl_domain.c:1269,1
    - Dst: libxl__stubdomain_is_linux_running
      Src: /src/xen/tools/libs/light/libxl_domain.c:1270,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1271,1
    - Dst: libxl__kill_xs_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1273,1
    - Dst: libxl__qmp_cleanup
      Src: /src/xen/tools/libs/light/libxl_domain.c:1275,1
    - Dst: libxl__devices_destroy
      Src: /src/xen/tools/libs/light/libxl_domain.c:1282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - ddms
    - rc
    argTypes:
    - libxl__egc*
    - libxl__destroy_devicemodel_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1257
    functionDepth: 5
    functionLinenumber: 1257
    functionLinenumberEnd: 1283
    functionName: dm_destroy_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - LOGD
    - libxl__devices_destroy
    - libxl__stubdomain_is_linux_running
    - libxl__qmp_cleanup
    - libxl_is_stubdom
    - libxl__kill_xs_path
    linkageType: ''
    returnType: void
    signature: "void dm_destroy_cb(libxl__egc *egc,\n                          libxl__destroy_devicemodel_state
      *ddms,\n                          int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_domain.c:1287,1
    - Dst: strtol
      Src: /src/xen/tools/libs/light/libxl_domain.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1291
    functionName: libxl__get_domid_reuse_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - getenv
    - strtol
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int libxl__get_domid_reuse_timeout(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1295,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - suffix
    argTypes:
    - libxl__gc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: libxl__domid_history_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl__run_dir_path
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__domid_history_path(libxl__gc *gc, const char *suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:1301,1
    - Dst: libxl__domid_history_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1305,1
    - Dst: unlink
      Src: /src/xen/tools/libs/light/libxl_domain.c:1309,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1319
    functionName: libxl_clear_domid_history
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - LOGE
    - GC_INIT
    - libxl__domid_history_path
    - unlink
    linkageType: ''
    returnType: int
    signature: int libxl_clear_domid_history(libxl_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct libxl__domid_history*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1335
    functionName: libxl__domid_history_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: "void libxl__domid_history_dispose(\n    struct libxl__domid_history
      *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__get_domid_reuse_timeout
      Src: /src/xen/tools/libs/light/libxl_domain.c:1340,1
    - Dst: libxl__domid_history_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1341,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_domain.c:1343,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1345,1
    - Dst: clock_gettime
      Src: /src/xen/tools/libs/light/libxl_domain.c:1349,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1350,1
    - Dst: libxl__domid_history_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - gc
    - ctxt
    argTypes:
    - libxl__gc*
    - struct libxl__domid_history*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1356
    functionName: libxl__open_domid_history
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - fopen
    - libxl__domid_history_path
    - libxl__domid_history_dispose
    - libxl__get_domid_reuse_timeout
    - LOGE
    - clock_gettime
    linkageType: ''
    returnType: int
    signature: "int libxl__open_domid_history(libxl__gc *gc,\n                                     struct
      libxl__domid_history *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1365,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - gc
    - ctxt
    argTypes:
    - libxl__gc*
    - struct libxl__domid_history*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1373
    functionName: libxl__close_domid_history
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - LOGE
    - fclose
    linkageType: ''
    returnType: int
    signature: "int libxl__close_domid_history(libxl__gc *gc,\n                                      struct
      libxl__domid_history *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/xen/tools/libs/light/libxl_domain.c:1385,1
    - Dst: ferror
      Src: /src/xen/tools/libs/light/libxl_domain.c:1388,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1389,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/libs/light/libxl_domain.c:1395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - gc
    - ctxt
    - sec
    - domid
    argTypes:
    - libxl__gc*
    - struct libxl__domid_history*
    - unsigned long*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1402
    functionName: libxl__read_recent
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - fscanf
    - libxl_domid_valid_guest
    - ferror
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl__read_recent(libxl__gc *gc,\n                              struct
      libxl__domid_history *ctxt,\n                              unsigned long *sec,
      unsigned int *domid)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: libxl__lock_domid_history
      Src: /src/xen/tools/libs/light/libxl_domain.c:1412,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1414,1
    - Dst: libxl__open_domid_history
      Src: /src/xen/tools/libs/light/libxl_domain.c:1419,1
    - Dst: libxl__domid_history_path::libxl__domid_history_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1422,1
    - Dst: fopen
      Src: /src/xen/tools/libs/light/libxl_domain.c:1423,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1425,1
    - Dst: libxl__read_recent
      Src: /src/xen/tools/libs/light/libxl_domain.c:1433,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_domain.c:1439,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1441,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/light/libxl_domain.c:1446,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1448,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1452,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1455,1
    - Dst: libxl__close_domid_history
      Src: /src/xen/tools/libs/light/libxl_domain.c:1459,1
    - Dst: rename
      Src: /src/xen/tools/libs/light/libxl_domain.c:1462,1
    - Dst: ctxt::ctxt
      Src: /src/xen/tools/libs/light/libxl_domain.c:1462,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1464,1
    - Dst: ctxt::ctxt
      Src: /src/xen/tools/libs/light/libxl_domain.c:1464,1
    - Dst: fclose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1469,1
    - Dst: libxl__domid_history_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1470,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1471,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1404
    functionDepth: 6
    functionLinenumber: 1404
    functionLinenumberEnd: 1474
    functionName: libxl__mark_domid_recent
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - ctxt::ctxt
    - fopen
    - libxl__open_domid_history
    - libxl__domid_history_path::libxl__domid_history_path
    - rename
    - libxl__close_domid_history
    - libxl__read_recent
    - libxl__lock_domid_history
    - libxl__domid_history_dispose
    - LOGED
    - fclose
    - libxl__unlock_file
    - fprintf
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl__mark_domid_recent(libxl__gc *gc, uint32_t domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__open_domid_history
      Src: /src/xen/tools/libs/light/libxl_domain.c:1481,1
    - Dst: libxl__read_recent
      Src: /src/xen/tools/libs/light/libxl_domain.c:1489,1
    - Dst: libxl__close_domid_history
      Src: /src/xen/tools/libs/light/libxl_domain.c:1501,1
    - Dst: libxl__domid_history_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - gc
    - domid
    - recent
    argTypes:
    - libxl__gc*
    - uint32_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1476
    functionDepth: 3
    functionLinenumber: 1476
    functionLinenumberEnd: 1507
    functionName: libxl__is_domid_recent
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl__read_recent
    - libxl__open_domid_history
    - libxl__domid_history_dispose
    - libxl__close_domid_history
    linkageType: ''
    returnType: int
    signature: int libxl__is_domid_recent(libxl__gc *gc, uint32_t domid, bool *recent)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1513,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1514,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:1521,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1528,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1532,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1532,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_domain.c:1534,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1534,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_domain.c:1536,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1537,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_domain.c:1539,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1540,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_domain.c:1542,1
    - Dst: libxl__xs_libxl_path
      Src: /src/xen/tools/libs/light/libxl_domain.c:1542,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/light/libxl_domain.c:1543,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1543,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_domain.c:1546,1
    - Dst: libxl__userdata_destroyall
      Src: /src/xen/tools/libs/light/libxl_domain.c:1551,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1553,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1561,1
    - Dst: libxl__device_model_savefile
      Src: /src/xen/tools/libs/light/libxl_domain.c:1562,1
    - Dst: libxl__remove_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:1565,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1566,1
    - Dst: libxl__ev_child_fork
      Src: /src/xen/tools/libs/light/libxl_domain.c:1569,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/libs/light/libxl_domain.c:1572,1
    - Dst: libxl__mark_domid_recent
      Src: /src/xen/tools/libs/light/libxl_domain.c:1576,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/libs/light/libxl_domain.c:1578,1
    - Dst: xc_domain_pause
      Src: /src/xen/tools/libs/light/libxl_domain.c:1580,1
    - Dst: xc_domain_soft_reset
      Src: /src/xen/tools/libs/light/libxl_domain.c:1582,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/libs/light/libxl_domain.c:1584,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_domain.c:1587,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_domain.c:1591,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1593,1
    - Dst: _exit
      Src: /src/xen/tools/libs/light/libxl_domain.c:1596,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1599,1
    - Dst: libxl__destroy_domid_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:1604,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 3
    argNames:
    - egc
    - drs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__devices_remove_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1509
    functionDepth: 7
    functionLinenumber: 1509
    functionLinenumberEnd: 1606
    functionName: devices_destroy_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl__remove_file
    - libxl__userdata_destroyall
    - libxl__xs_libxl_path
    - xc_interface_open
    - LOGED
    - xc_domain_pause
    - libxl__mark_domid_recent
    - libxl__destroy_domid_state*::callback
    - libxl__unlock_file
    - _exit
    - libxl__lock_domain_userdata
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - xs_rm
    - libxl__device_model_savefile
    - xc_domain_destroy
    - libxl__xs_get_dompath
    - LOGD
    - xc_domain_soft_reset
    - libxl__xs_read
    - xc_domain_unpause
    - libxl__ev_child_fork
    linkageType: ''
    returnType: void
    signature: "void devices_destroy_cb(libxl__egc *egc,\n                               libxl__devices_remove_state
      *drs,\n                               int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1612,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:1613,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1617,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_domain.c:1617,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1618,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/libs/light/libxl_domain.c:1618,1
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/libs/light/libxl_domain.c:1621,1
    - Dst: libxl__destroy_domid_state*::callback
      Src: /src/xen/tools/libs/light/libxl_domain.c:1630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - egc
    - destroyer
    - pid
    - status
    argTypes:
    - libxl__egc*
    - libxl__ev_child*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1608
    functionDepth: 2
    functionLinenumber: 1608
    functionLinenumberEnd: 1631
    functionName: domain_destroy_domid_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_report_child_exitstatus
    - STATE_AO_GC
    - CONTAINER_OF
    - WEXITSTATUS
    - libxl__destroy_domid_state*::callback
    - WIFEXITED
    - LOGEVD
    linkageType: ''
    returnType: void
    signature: "void domain_destroy_domid_cb(libxl__egc *egc,\n                                    libxl__ev_child
      *destroyer,\n                                    pid_t pid, int status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_domain.c:1638,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_domain.c:1641,1
    - Dst: atoi
      Src: /src/xen/tools/libs/light/libxl_domain.c:1646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1633
    functionDepth: 3
    functionLinenumber: 1633
    functionLinenumberEnd: 1650
    functionName: libxl__get_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 7
    functionsReached:
    - atoi
    - LOG
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: int libxl__get_domid(libxl__gc *gc, uint32_t *domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/libs/light/libxl_domain.c:1656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - gc
    - name
    - domid
    argTypes:
    - libxl__gc*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1652
    functionDepth: 4
    functionLinenumber: 1652
    functionLinenumberEnd: 1657
    functionName: libxl__resolve_domid
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 11
    functionsReached:
    - libxl_domain_qualifier_to_domid
    linkageType: ''
    returnType: int
    signature: int libxl__resolve_domid(libxl__gc *gc, const char *name, uint32_t
      *domid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:1663,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_domain.c:1669,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1671,1
    - Dst: libxl_get_max_cpus
      Src: /src/xen/tools/libs/light/libxl_domain.c:1681,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:1682,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1688,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:1689,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1691,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:1692,1
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/libs/light/libxl_domain.c:1694,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1695,1
    - Dst: xc_vcpu_getaffinity
      Src: /src/xen/tools/libs/light/libxl_domain.c:1699,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1702,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1717,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1718,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:1719,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 4
    argNames:
    - ctx
    - domid
    - nr_vcpus_out
    - nr_cpus_out
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1659
    functionDepth: 4
    functionLinenumber: 1659
    functionLinenumberEnd: 1722
    functionName: libxl_list_vcpu
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - libxl_bitmap_dispose
    - xc_vcpu_getaffinity
    - xc_vcpu_getinfo
    - free
    - libxl__calloc
    - libxl_get_max_cpus
    - LOGED
    - libxl_bitmap_init
    - libxl_cpu_bitmap_alloc
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: libxl_vcpuinfo
    signature: "libxl_vcpuinfo *libxl_list_vcpu(libxl_ctx *ctx, uint32_t domid,\n
      \                                      int *nr_vcpus_out, int *nr_cpus_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:1732,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/light/libxl_domain.c:1736,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_domain.c:1738,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1739,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_domain.c:1740,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:1741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - gc
    - domid
    - cpumap
    - info
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_bitmap*
    - libxl_dominfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1724
    functionDepth: 3
    functionLinenumber: 1724
    functionLinenumberEnd: 1748
    functionName: libxl__set_vcpuonline_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl__xs_get_dompath
    - GCSPRINTF
    - xs_transaction_start
    - libxl__xs_printf
    - xs_transaction_end
    linkageType: ''
    returnType: int
    signature: "int libxl__set_vcpuonline_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                         const libxl_bitmap *cpumap,\n                                          const
      libxl_dominfo *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_domain.c:1758,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:1762,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:1766,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1768,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:1772,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_domain.c:1773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - gc
    - domid
    - response
    - map
    argTypes:
    - libxl__gc*
    - libxl_domid
    - libxl__json_object*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1777
    functionName: qmp_parse_query_cpus_fast
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - LOGD
    - libxl__json_array_get
    - libxl__json_map_get
    - libxl_bitmap_set_none
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int qmp_parse_query_cpus_fast(libxl__gc *gc,\n                                     libxl_domid
      domid,\n                                     const libxl__json_object *response,\n
      \                                    libxl_bitmap *const map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_domain.c:1787,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:1791,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:1795,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:1797,1
    - Dst: libxl__json_object_get_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:1801,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_domain.c:1802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - gc
    - domid
    - response
    - map
    argTypes:
    - libxl__gc*
    - libxl_domid
    - libxl__json_object*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1779
    functionDepth: 2
    functionLinenumber: 1779
    functionLinenumberEnd: 1806
    functionName: qmp_parse_query_cpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - LOGD
    - libxl__json_array_get
    - libxl__json_map_get
    - libxl_bitmap_set_none
    - libxl__json_object_get_integer
    linkageType: ''
    returnType: int
    signature: "int qmp_parse_query_cpus(libxl__gc *gc,\n                                libxl_domid
      domid,\n                                const libxl__json_object *response,\n
      \                               libxl_bitmap *const map)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:1840,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:1844,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1845,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1849,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1851,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1852,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_domain.c:1858,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1860,1
    - Dst: libxl_bitmap_count_set
      Src: /src/xen/tools/libs/light/libxl_domain.c:1864,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1867,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:1873,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:1879,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_domain.c:1881,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_domain.c:1883,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:1888,1
    - Dst: set_vcpuonline_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:1903,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 4
    argNames:
    - ctx
    - domid
    - cpumap
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1836
    functionDepth: 8
    functionLinenumber: 1836
    functionLinenumberEnd: 1905
    functionName: libxl_set_vcpuonline
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl_bitmap_count_set
    - libxl__ev_time_register_rel
    - libxl__device_model_version_running
    - GCNEW
    - libxl_dominfo_init
    - set_vcpuonline_done
    - libxl_domain_info
    - libxl__ev_qmp_init
    - libxl_bitmap_init
    - LOGED
    - libxl__ev_qmp_send
    - libxl__ev_time_init
    - libxl__domain_type
    linkageType: ''
    returnType: int
    signature: "int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid,\n                         libxl_bitmap
      *cpumap,\n                         const libxl_asyncop_how *ao_how)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1911,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:1916,1
    - Dst: set_vcpuonline_qmp_query_cpus_parse
      Src: /src/xen/tools/libs/light/libxl_domain.c:1922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1907
    functionDepth: 8
    functionLinenumber: 1907
    functionLinenumberEnd: 1923
    functionName: set_vcpuonline_qmp_cpus_fast_queried
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - set_vcpuonline_qmp_query_cpus_parse
    - libxl__ev_qmp_send
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_cpus_fast_queried(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1929,1
    - Dst: set_vcpuonline_qmp_query_cpus_parse
      Src: /src/xen/tools/libs/light/libxl_domain.c:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1932
    functionName: set_vcpuonline_qmp_cpus_queried
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - set_vcpuonline_qmp_query_cpus_parse
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_cpus_queried(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1939,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:1946,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:1950,1
    - Dst: qmp_parse_query_cpus_fast
      Src: /src/xen/tools/libs/light/libxl_domain.c:1952,1
    - Dst: qmp_parse_query_cpus
      Src: /src/xen/tools/libs/light/libxl_domain.c:1954,1
    - Dst: libxl_bitmap_copy_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:1958,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/libs/light/libxl_domain.c:1961,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:1965,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:1968,1
    - Dst: set_vcpuonline_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:1970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - egc
    - qmp
    - response
    - query_cpus_fast
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1934
    functionDepth: 8
    functionLinenumber: 1934
    functionLinenumberEnd: 1971
    functionName: set_vcpuonline_qmp_query_cpus_parse
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 2
    functionsReached:
    - CONTAINER_OF
    - libxl_bitmap_copy_alloc
    - libxl_bitmap_dispose
    - set_vcpuonline_done
    - libxl_bitmap_reset
    - qmp_parse_query_cpus
    - libxl_bitmap_init
    - qmp_parse_query_cpus_fast
    - libxl__ev_qmp_send
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_query_cpus_parse(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response,\n    bool query_cpus_fast, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/libs/light/libxl_domain.c:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1962
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 14
    functionsReached:
    - libxl_bitmap_reset
    linkageType: ''
    returnType: void
    signature: void libxl_for_each_set_bit(i, current_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:1976,1
    - Dst: set_vcpuonline_qmp_add_cpu
      Src: /src/xen/tools/libs/light/libxl_domain.c:1984,1
    - Dst: libxl__json_array_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:1999,1
    - Dst: libxl__json_map_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:2000,1
    - Dst: libxl__json_object_get_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2001,1
    - Dst: set_vcpuonline_qmp_device_add_cpu
      Src: /src/xen/tools/libs/light/libxl_domain.c:2008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 2009
    functionName: set_vcpuonline_qmp_query_hotpluggable_cpus
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__json_object_get_string
    - set_vcpuonline_qmp_device_add_cpu
    - libxl__json_array_get
    - libxl__json_map_get
    - set_vcpuonline_qmp_add_cpu
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_query_hotpluggable_cpus(libxl__egc *egc,\n
      \   libxl__ev_qmp *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:2014,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2015,1
    - Dst: libxl_bitmap_cpu_valid
      Src: /src/xen/tools/libs/light/libxl_domain.c:2023,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_domain.c:2024,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2026,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2026,1
    - Dst: libxl__qmp_param_add_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2027,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:2033,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:2034,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:2035,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:2036,1
    - Dst: set_vcpuonline_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:2043,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2011
    functionDepth: 8
    functionLinenumber: 2011
    functionLinenumberEnd: 2044
    functionName: set_vcpuonline_qmp_device_add_cpu
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_test
    - STATE_AO_GC
    - CONTAINER_OF
    - GCSPRINTF
    - set_vcpuonline_done
    - libxl__ev_qmp_send
    - libxl__qmp_param_add_string
    - libxl__qmp_param_add_integer
    - libxl_bitmap_cpu_valid
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_device_add_cpu(libxl__egc *egc,\n    libxl__ev_qmp
      *qmp, const libxl__json_object *response, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:2053,1
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2054,1
    - Dst: libxl_bitmap_cpu_valid
      Src: /src/xen/tools/libs/light/libxl_domain.c:2062,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/libs/light/libxl_domain.c:2063,1
    - Dst: libxl__qmp_param_add_integer
      Src: /src/xen/tools/libs/light/libxl_domain.c:2065,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:2066,1
    - Dst: set_vcpuonline_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:2073,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2049
    functionDepth: 8
    functionLinenumber: 2049
    functionLinenumberEnd: 2074
    functionName: set_vcpuonline_qmp_add_cpu
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_test
    - STATE_AO_GC
    - CONTAINER_OF
    - set_vcpuonline_done
    - libxl__ev_qmp_send
    - libxl__qmp_param_add_integer
    - libxl_bitmap_cpu_valid
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_qmp_add_cpu(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                      const libxl__json_object *response,\n
      \                                      int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2081,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2084,1
    - Dst: set_vcpuonline_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:2087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2088
    functionName: set_vcpuonline_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - LOGD
    - set_vcpuonline_done
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_timeout(libxl__egc *egc, libxl__ev_time *ev,\n
      \                                  const struct timeval *requested_abs,\n                                   int
      rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:2094,1
    - Dst: libxl__set_vcpuonline_xenstore
      Src: /src/xen/tools/libs/light/libxl_domain.c:2100,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2103,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2104,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_domain.c:2105,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2106,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:2107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - svos
    - rc
    argTypes:
    - libxl__egc*
    - set_vcpuonline_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2090
    functionDepth: 5
    functionLinenumber: 2090
    functionLinenumberEnd: 2108
    functionName: set_vcpuonline_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 5
    functionsReached:
    - STATE_AO_GC
    - libxl_bitmap_dispose
    - libxl_dominfo_dispose
    - libxl__set_vcpuonline_xenstore
    - libxl__ev_time_deregister
    - libxl__ev_qmp_dispose
    - libxl__ao_complete
    linkageType: ''
    returnType: void
    signature: "void set_vcpuonline_done(libxl__egc *egc,\n                                set_vcpuonline_state
      *svos,\n                                int rc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:2120,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2121,1
    - Dst: libxl__domain_type
      Src: /src/xen/tools/libs/light/libxl_domain.c:2127,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_domain.c:2129,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:2131,1
    - Dst: domain_s3_resume_done
      Src: /src/xen/tools/libs/light/libxl_domain.c:2145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - ao
    - egc
    - domid
    argTypes:
    - libxl__ao*
    - libxl__egc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2114
    functionDepth: 8
    functionLinenumber: 2114
    functionLinenumberEnd: 2146
    functionName: domain_s3_resume
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl__device_model_version_running
    - GCNEW
    - libxl__ev_qmp_init
    - libxl__ev_qmp_send
    - domain_s3_resume_done
    - libxl__domain_type
    linkageType: ''
    returnType: void
    signature: void domain_s3_resume(libxl__ao *ao, libxl__egc *egc, int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2155,1
    - Dst: libxl_trigger_to_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2156,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2158,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:2159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2148
    functionDepth: 5
    functionLinenumber: 2148
    functionLinenumberEnd: 2160
    functionName: domain_s3_resume_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 1
    functionsReached:
    - libxl_trigger_to_string
    - libxl__ao_complete
    - LOGD
    - libxl__ev_qmp_dispose
    linkageType: ''
    returnType: void
    signature: "void domain_s3_resume_done(libxl__egc *egc, libxl__ev_qmp *qmp,\n
      \                                 const libxl__json_object *response,\n                                  int
      rc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:2166,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/libs/light/libxl_domain.c:2171,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/libs/light/libxl_domain.c:2175,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/libs/light/libxl_domain.c:2179,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/libs/light/libxl_domain.c:2183,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/libs/light/libxl_domain.c:2187,1
    - Dst: domain_s3_resume
      Src: /src/xen/tools/libs/light/libxl_domain.c:2191,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_domain.c:2200,1
    - Dst: libxl_trigger_to_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2201,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:2206,1
    - Dst: AO_CREATE_FAIL
      Src: /src/xen/tools/libs/light/libxl_domain.c:2209,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - ctx
    - domid
    - trigger
    - vcpuid
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_trigger
    - uint32_t
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2162
    functionDepth: 9
    functionLinenumber: 2162
    functionLinenumberEnd: 2210
    functionName: libxl_send_trigger
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - libxl_trigger_to_string
    - domain_s3_resume
    - LOGED
    - AO_CREATE_FAIL
    - libxl__ao_complete
    - xc_domain_send_trigger
    linkageType: ''
    returnType: int
    signature: "int libxl_send_trigger(libxl_ctx *ctx, uint32_t domid,\n                       libxl_trigger
      trigger, uint32_t vcpuid,\n                       const libxl_asyncop_how *ao_how)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_domain.c:2214,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:2215,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_domain.c:2219,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2220,1
    - Dst: libxl__xs_read
      Src: /src/xen/tools/libs/light/libxl_domain.c:2221,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2222,1
    - Dst: LOGEVD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2224,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/light/libxl_domain.c:2227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2212
    functionDepth: 2
    functionLinenumber: 2212
    functionLinenumberEnd: 2231
    functionName: libxl_vm_get_start_time
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__xs_get_dompath
    - GCSPRINTF
    - libxl__xs_read
    - strtoul
    - LOGEVD
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t libxl_vm_get_start_time(libxl_ctx *ctx, uint32_t domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_domain.c:2241,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2248,1
    - Dst: libxl__xs_read_checked
      Src: /src/xen/tools/libs/light/libxl_domain.c:2250,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_domain.c:2252,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/libs/light/libxl_domain.c:2253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - gc
    - domid
    - max_vcpus
    - map
    argTypes:
    - libxl__gc*
    - uint32_t
    - unsigned int
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2233
    functionDepth: 3
    functionLinenumber: 2233
    functionLinenumberEnd: 2259
    functionName: libxl__update_avail_vcpus_xenstore
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl__xs_get_dompath
    - GCSPRINTF
    - strcmp
    - libxl__xs_read_checked
    linkageType: ''
    returnType: int
    signature: "int libxl__update_avail_vcpus_xenstore(libxl__gc *gc, uint32_t domid,\n
      \                                             unsigned int max_vcpus,\n                                              libxl_bitmap
      *map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_domain.c:2286,1
    - Dst: GCNEW
      Src: /src/xen/tools/libs/light/libxl_domain.c:2289,1
    - Dst: libxl__ev_qmp_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2290,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2294,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2296,1
    - Dst: libxl__ev_devlock_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2297,1
    - Dst: libxl__ev_slowlock_lock
      Src: /src/xen/tools/libs/light/libxl_domain.c:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - domid
    - d_config
    - ao_how
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_domain_config*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2282
    functionDepth: 5
    functionLinenumber: 2282
    functionLinenumberEnd: 2303
    functionName: libxl_retrieve_domain_configuration
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - AO_CREATE
    - GCNEW
    - libxl__ev_qmp_init
    - libxl__ev_devlock_init
    - libxl_bitmap_init
    - libxl__ev_time_init
    - libxl__ev_slowlock_lock
    linkageType: ''
    returnType: int
    signature: "int libxl_retrieve_domain_configuration(libxl_ctx *ctx, uint32_t domid,\n
      \                                       libxl_domain_config *d_config,\n                                        const
      libxl_asyncop_how *ao_how)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2309,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:2310,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_domain.c:2320,1
    - Dst: libxl__get_domain_configuration
      Src: /src/xen/tools/libs/light/libxl_domain.c:2326,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2328,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:2333,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_domain.c:2339,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_domain.c:2345,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:2349,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:2352,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:2358,1
    - Dst: retrieve_domain_configuration_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:2360,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - egc
    - devlock
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_slowlock*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2305
    functionDepth: 8
    functionLinenumber: 2305
    functionLinenumberEnd: 2361
    functionName: retrieve_domain_configuration_lock_acquired
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - retrieve_domain_configuration_end
    - LOGD
    - libxl__device_model_version_running
    - libxl_bitmap_alloc
    - libxl__ev_qmp_send
    - libxl__unlock_file
    - libxl__get_domain_configuration
    - libxl__lock_domain_userdata
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void retrieve_domain_configuration_lock_acquired(\n    libxl__egc
      *egc, libxl__ev_slowlock *devlock, int rc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2369,1
    - Dst: libxl__ev_qmp_send
      Src: /src/xen/tools/libs/light/libxl_domain.c:2374,1
    - Dst: qmp_parse_query_cpus_fast
      Src: /src/xen/tools/libs/light/libxl_domain.c:2381,1
    - Dst: retrieve_domain_configuration_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:2384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2363
    functionDepth: 8
    functionLinenumber: 2363
    functionLinenumberEnd: 2385
    functionName: retrieve_domain_configuration_cpu_fast_queried
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - retrieve_domain_configuration_end
    - libxl__ev_qmp_send
    - qmp_parse_query_cpus_fast
    linkageType: ''
    returnType: void
    signature: "void retrieve_domain_configuration_cpu_fast_queried(\n    libxl__egc
      *egc, libxl__ev_qmp *qmp,\n    const libxl__json_object *response, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2393,1
    - Dst: qmp_parse_query_cpus
      Src: /src/xen/tools/libs/light/libxl_domain.c:2397,1
    - Dst: retrieve_domain_configuration_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:2400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - egc
    - qmp
    - response
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_qmp*
    - libxl__json_object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2387
    functionDepth: 3
    functionLinenumber: 2387
    functionLinenumberEnd: 2401
    functionName: retrieve_domain_configuration_cpu_queried
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - retrieve_domain_configuration_end
    - qmp_parse_query_cpus
    linkageType: ''
    returnType: void
    signature: "void retrieve_domain_configuration_cpu_queried(\n    libxl__egc *egc,
      libxl__ev_qmp *qmp,\n    const libxl__json_object *response, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_domain.c:2407,1
    - Dst: retrieve_domain_configuration_end
      Src: /src/xen/tools/libs/light/libxl_domain.c:2409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2410
    functionName: retrieve_domain_configuration_timeout
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - retrieve_domain_configuration_end
    linkageType: ''
    returnType: void
    signature: "void retrieve_domain_configuration_timeout(libxl__egc *egc,\n    libxl__ev_time
      *ev, const struct timeval *requested_abs, int rc)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_domain.c:2415,1
    - Dst: libxl__lock_domain_userdata
      Src: /src/xen/tools/libs/light/libxl_domain.c:2424,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/libs/light/libxl_domain.c:2433,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2435,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:2438,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2445,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_domain.c:2446,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2448,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2449,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/libs/light/libxl_domain.c:2452,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2453,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2462,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_domain.c:2463,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:2464,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/libs/light/libxl_domain.c:2465,1
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_domain.c:2469,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_domain.c:2470,1
    - Dst: libxl_bitmap_copy
      Src: /src/xen/tools/libs/light/libxl_domain.c:2473,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_domain.c:2476,1
    - Dst: libxl__update_avail_vcpus_xenstore
      Src: /src/xen/tools/libs/light/libxl_domain.c:2481,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_domain.c:2485,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2489,1
    - Dst: libxl__get_memory_target
      Src: /src/xen/tools/libs/light/libxl_domain.c:2510,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2512,1
    - Dst: libxl__get_targetmem_fudge
      Src: /src/xen/tools/libs/light/libxl_domain.c:2520,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2527,1
    - Dst: libxl_domain_sched_params_get
      Src: /src/xen/tools/libs/light/libxl_domain.c:2528,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2531,1
    - Dst: libxl__device_type_get_num
      Src: /src/xen/tools/libs/light/libxl_domain.c:2571,1
    - Dst: libxl__device_list
      Src: /src/xen/tools/libs/light/libxl_domain.c:2572,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2574,1
    - Dst: libxl__device_kind_to_string
      Src: /src/xen/tools/libs/light/libxl_domain.c:2575,1
    - Dst: libxl__device_type_get_ptr
      Src: /src/xen/tools/libs/light/libxl_domain.c:2577,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_domain.c:2582,1
    - Dst: libxl__device_type*::compare
      Src: /src/xen/tools/libs/light/libxl_domain.c:2584,1
    - Dst: libxl__device_type*::merge
      Src: /src/xen/tools/libs/light/libxl_domain.c:2590,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_domain.c:2592,1
    - Dst: libxl__device_type*::dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2595,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_domain.c:2598,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_domain.c:2598,1
    - Dst: libxl__device_type_get_elem
      Src: /src/xen/tools/libs/light/libxl_domain.c:2599,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_domain.c:2606,1
    - Dst: libxl__device_type*::dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2612,1
    - Dst: free
      Src: /src/xen/tools/libs/light/libxl_domain.c:2613,1
    - Dst: libxl__ev_slowlock_unlock
      Src: /src/xen/tools/libs/light/libxl_domain.c:2618,1
    - Dst: libxl__unlock_file
      Src: /src/xen/tools/libs/light/libxl_domain.c:2619,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2620,1
    - Dst: libxl__ev_qmp_dispose
      Src: /src/xen/tools/libs/light/libxl_domain.c:2621,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_domain.c:2622,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_domain.c:2623,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 122
    argCount: 3
    argNames:
    - egc
    - rdcs
    - rc
    argTypes:
    - libxl__egc*
    - retrieve_domain_configuration_state*
    - int
    assertStmts:
    - condition: (version != LIBXL_DEVICE_MODEL_VERSION_UNKNOWN)
      pos:
        line_end: 2469
        line_start: 2469
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    constantsTouched: []
    func_position:
      end: 2624
      start: 2412
    functionDepth: 6
    functionLinenumber: 2412
    functionLinenumberEnd: 2624
    functionName: retrieve_domain_configuration_end
    functionSourceFile: /src/xen/tools/libs/light/libxl_domain.c
    functionUses: 4
    functionsReached:
    - libxl__device_type_get_elem
    - libxl__device_type*::compare
    - libxl__device_type*::merge
    - libxl__ev_slowlock_unlock
    - libxl__device_list
    - libxl_uuid_copy
    - libxl_domain_sched_params_dispose
    - libxl_bitmap_dispose
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl__device_model_version_running
    - free
    - abort
    - libxl_bitmap_copy
    - libxl__unlock_file
    - libxl__ev_time_deregister
    - libxl__device_type_get_num
    - libxl_bitmap_set_none
    - libxl__ev_qmp_dispose
    - libxl__lock_domain_userdata
    - STATE_AO_GC
    - libxl__get_targetmem_fudge
    - libxl__realloc
    - libxl_domid_to_name
    - libxl_domain_sched_params_get
    - libxl_bitmap_init
    - libxl__device_type*::dispose
    - libxl__ao_complete
    - libxl__device_type_get_ptr
    - LOGD
    - libxl_domain_info
    - libxl__update_avail_vcpus_xenstore
    - libxl__device_kind_to_string
    - libxl__get_memory_target
    - assert
    - memcpy
    - libxl_bitmap_alloc
    linkageType: ''
    returnType: void
    signature: "void retrieve_domain_configuration_end(libxl__egc *egc,\n    retrieve_domain_configuration_state
      *rdcs, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: DIV_ROUNDUP
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUNDUP(n, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: LIBXL__LOG
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOG(ctx, loglevel, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: LIBXL__LOG_ERRNO
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOG_ERRNO(ctx, loglevel, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - errnoval
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: LIBXL__LOG_ERRNOVAL
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOG_ERRNOVAL(ctx, loglevel, errnoval, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - _d
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: LIBXL__LOGD
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOGD(ctx, loglevel, _d, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - _d
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: LIBXL__LOGD_ERRNO
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOGD_ERRNO(ctx, loglevel, _d, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 14
    argNames:
    - (
    - ctx
    - ','
    - loglevel
    - ','
    - errnoval
    - ','
    - _d
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: LIBXL__LOGD_ERRNOVAL
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__LOGD_ERRNOVAL(ctx, loglevel, errnoval, _d, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rc_acc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: ACCUMULATE_RC
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCUMULATE_RC(rc_acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - libxl__ao_abortable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: libxl__ao_abortable_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__ao_abortable_init\n  (libxl__ao_abortable *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - libxl__ao_abortable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: libxl__ao_abortable_isregistered
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool libxl__ao_abortable_isregistered\n  (const libxl__ao_abortable
      *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - args
    - ','
    - name
    - ','
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: QMP_PARAMETERS_SPRINTF
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QMP_PARAMETERS_SPRINTF(args, name, format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: QEMU_BACKEND
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QEMU_BACKEND(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slot
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: PCI_DEVFN
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_DEVFN(slot, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - devfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 763
    functionName: PCI_SLOT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SLOT(devfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - devfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: PCI_FUNC
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_FUNC(devfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: PRINTF_ATTRIBUTE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTF_ATTRIBUTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gc
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 836
    functionName: LIBXL_INIT_GC
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_INIT_GC(gc,ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: libxl__gc_owner
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: libxl_ctx
    signature: libxl_ctx *libxl__gc_owner(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 846
    functionName: libxl__gc_is_real
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__gc_is_real(const libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 875
    functionName: NN
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - efd
    argTypes:
    - libxl__ev_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1170
    functionName: libxl__ev_fd_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__ev_fd_init(libxl__ev_fd *efd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - efd
    argTypes:
    - libxl__ev_fd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1172
    functionName: libxl__ev_fd_isregistered
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__ev_fd_isregistered(const libxl__ev_fd *efd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ao_abortable_init
      Src: /src/xen/tools/libs/light/libxl_internal.h:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ev
    argTypes:
    - libxl__ev_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1186
    functionName: libxl__ev_time_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 14
    functionsReached:
    - libxl__ao_abortable_init
    linkageType: ''
    returnType: void
    signature: void libxl__ev_time_init(libxl__ev_time *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - libxl__ev_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1188
    functionName: libxl__ev_time_isregistered
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__ev_time_isregistered(const libxl__ev_time *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xswatch_out
    argTypes:
    - libxl__ev_xswatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1197
    functionName: libxl__ev_xswatch_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__ev_xswatch_init(libxl__ev_xswatch *xswatch_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xw
    argTypes:
    - libxl__ev_xswatch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1199
    functionName: libxl__ev_xswatch_isregistered
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__ev_xswatch_isregistered(const libxl__ev_xswatch *xw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evev
    argTypes:
    - libxl__ev_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1231
    functionName: libxl__ev_evtchn_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__ev_evtchn_init(libxl__ev_evtchn *evev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evev
    argTypes:
    - libxl__ev_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1233
    functionName: libxl__ev_evtchn_iswaiting
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__ev_evtchn_iswaiting(const libxl__ev_evtchn *evev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - childw_out
    argTypes:
    - libxl__ev_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1266
    functionName: libxl__ev_child_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__ev_child_init(libxl__ev_child *childw_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - childw_out
    argTypes:
    - libxl__ev_child*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1268
    functionName: libxl__ev_child_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__ev_child_inuse(const libxl__ev_child *childw_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - egc
    - ','
    - type
    - ','
    - domid
    - ','
    - user
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1297
    functionName: NEW_EVENT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_EVENT(egc, type, domid, user)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - gc
    - ','
    - msg
    - ','
    - errnoval
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1317
    functionName: LIBXL__EVENT_DISASTER
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__EVENT_DISASTER(gc, msg, errnoval, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xswait_init
      Src: /src/xen/tools/libs/light/libxl_internal.h:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ds
    argTypes:
    - libxl__ev_devstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: libxl__ev_devstate_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached:
    - libxl__xswait_init
    linkageType: ''
    returnType: void
    signature: void libxl__ev_devstate_init(libxl__ev_devstate *ds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xswait_stop
      Src: /src/xen/tools/libs/light/libxl_internal.h:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - ds
    argTypes:
    - libxl__gc*
    - libxl__ev_devstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1665
    functionDepth: 5
    functionLinenumber: 1665
    functionLinenumberEnd: 1669
    functionName: libxl__ev_devstate_cancel
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 3
    functionsReached:
    - libxl__xswait_stop
    linkageType: ''
    returnType: void
    signature: "void libxl__ev_devstate_cancel(libxl__gc *gc,\n                                             libxl__ev_devstate
      *ds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_internal.h:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - libxl__spawn_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 1905
    functionName: libxl__spawn_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached:
    - libxl__ev_child_inuse
    linkageType: ''
    returnType: int
    signature: int libxl__spawn_inuse(const libxl__spawn_state *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2149
    functionName: libxl__json_object_is_null
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_null(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2153
    functionName: libxl__json_object_is_bool
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_bool(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2154
    functionDepth: 0
    functionLinenumber: 2154
    functionLinenumberEnd: 2157
    functionName: libxl__json_object_is_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_string(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2161
    functionName: libxl__json_object_is_integer
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_integer(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2165
    functionName: libxl__json_object_is_double
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_double(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2166
    functionDepth: 0
    functionLinenumber: 2166
    functionLinenumberEnd: 2169
    functionName: libxl__json_object_is_number
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_number(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2173
    functionName: libxl__json_object_is_map
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_map(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2174
    functionDepth: 0
    functionLinenumber: 2174
    functionLinenumberEnd: 2177
    functionName: libxl__json_object_is_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_is_array(const libxl__json_object *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_bool
      Src: /src/xen/tools/libs/light/libxl_internal.h:2185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2183
    functionDepth: 1
    functionLinenumber: 2183
    functionLinenumberEnd: 2189
    functionName: libxl__json_object_get_bool
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - libxl__json_object_is_bool
    linkageType: ''
    returnType: bool
    signature: bool libxl__json_object_get_bool(const libxl__json_object *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_string
      Src: /src/xen/tools/libs/light/libxl_internal.h:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2197
    functionName: libxl__json_object_get_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 18
    functionsReached:
    - libxl__json_object_is_string
    linkageType: ''
    returnType: char
    signature: char *libxl__json_object_get_string(const libxl__json_object *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_number
      Src: /src/xen/tools/libs/light/libxl_internal.h:2201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2198
    functionDepth: 1
    functionLinenumber: 2198
    functionLinenumberEnd: 2205
    functionName: libxl__json_object_get_number
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached:
    - libxl__json_object_is_number
    linkageType: ''
    returnType: char
    signature: char *libxl__json_object_get_number(const libxl__json_object *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_map
      Src: /src/xen/tools/libs/light/libxl_internal.h:2209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2206
    functionDepth: 1
    functionLinenumber: 2206
    functionLinenumberEnd: 2213
    functionName: libxl__json_object_get_map
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - libxl__json_object_is_map
    linkageType: ''
    returnType: flexarray_t
    signature: flexarray_t *libxl__json_object_get_map(const libxl__json_object *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_array
      Src: /src/xen/tools/libs/light/libxl_internal.h:2217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2221
    functionName: libxl__json_object_get_array
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached:
    - libxl__json_object_is_array
    linkageType: ''
    returnType: flexarray_t
    signature: flexarray_t *libxl__json_object_get_array(const libxl__json_object
      *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl__json_object_is_integer
      Src: /src/xen/tools/libs/light/libxl_internal.h:2224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - libxl__json_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2222
    functionDepth: 1
    functionLinenumber: 2222
    functionLinenumberEnd: 2228
    functionName: libxl__json_object_get_integer
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 15
    functionsReached:
    - libxl__json_object_is_integer
    linkageType: ''
    returnType: long long
    signature: long long libxl__json_object_get_integer(const libxl__json_object *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2270
    functionName: JSON
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_model_version_running
      Src: /src/xen/tools/libs/light/libxl_internal.h:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2274
    functionDepth: 3
    functionLinenumber: 2274
    functionLinenumberEnd: 2280
    functionName: libxl__stubdomain_is_linux_running
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached:
    - libxl__device_model_version_running
    linkageType: ''
    returnType: bool
    signature: bool libxl__stubdomain_is_linux_running(libxl__gc *gc, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_internal.h:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b_info
    argTypes:
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2282
    functionDepth: 2
    functionLinenumber: 2282
    functionLinenumberEnd: 2289
    functionName: libxl__stubdomain_is_linux
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 3
    functionsReached:
    - libxl_defbool_val
    linkageType: ''
    returnType: bool
    signature: bool libxl__stubdomain_is_linux(const libxl_domain_build_info *b_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - gc
    - ','
    - dm_domid
    - ','
    - domid
    - ','
    - fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2294
    functionName: DEVICE_MODEL_XS_PATH
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVICE_MODEL_XS_PATH(gc, dm_domid, domid, fmt, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - egc
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2341
    functionName: LIBXL_INIT_EGC
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_INIT_EGC(egc,ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2352
    functionDepth: 0
    functionLinenumber: 2352
    functionLinenumberEnd: 2355
    functionName: EGC_INIT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EGC_INIT(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - domid
    - ','
    - ao_how
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2462
    functionName: AO_CREATE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AO_CREATE(ctx, domid, ao_how)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2475
    functionDepth: 0
    functionLinenumber: 2475
    functionLinenumberEnd: 2480
    functionName: AO_CREATE_FAIL
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AO_CREATE_FAIL(rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op_ao
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2504
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2504
    functionName: STATE_AO_GC
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 234
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_AO_GC(op_ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dls
    argTypes:
    - libxl__disk_local_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 3038
    functionDepth: 0
    functionLinenumber: 3038
    functionLinenumberEnd: 3041
    functionName: libxl__device_disk_local_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void libxl__device_disk_local_init(libxl__disk_local_state *dls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_internal.h:3393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chs
    argTypes:
    - libxl__conversion_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3391
    functionDepth: 1
    functionLinenumber: 3391
    functionLinenumberEnd: 3393
    functionName: libxl__conversion_helper_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 3
    functionsReached:
    - libxl__ev_child_inuse
    linkageType: ''
    returnType: bool
    signature: "bool libxl__conversion_helper_inuse\n                    (const libxl__conversion_helper_state
      *chs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - libxl__stream_read_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3455
    functionDepth: 0
    functionLinenumber: 3455
    functionLinenumberEnd: 3459
    functionName: libxl__stream_read_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__stream_read_inuse(const libxl__stream_read_state *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stream
    argTypes:
    - libxl__stream_write_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3536
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3536
    functionName: libxl__stream_write_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__stream_write_inuse(const libxl__stream_write_state *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3708
    functionDepth: 0
    functionLinenumber: 3708
    functionLinenumberEnd: 3725
    functionName: LIBXL_DEFINE_DEVICE_ADD
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_ADD(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3739
      start: 3726
    functionDepth: 0
    functionLinenumber: 3726
    functionLinenumberEnd: 3739
    functionName: LIBXL_DEFINE_DEVICES_ADD
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICES_ADD(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - remtype
    - ','
    - removedestroy
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3766
      start: 3740
    functionDepth: 0
    functionLinenumber: 3740
    functionLinenumberEnd: 3766
    functionName: LIBXL_DEFINE_DEVICE_REMOVE_EXT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_REMOVE_EXT(type, remtype, removedestroy, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3767
    functionDepth: 0
    functionLinenumber: 3767
    functionLinenumberEnd: 3779
    functionName: LIBXL_DEFINE_UPDATE_DEVID
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_UPDATE_DEVID(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3780
    functionDepth: 0
    functionLinenumber: 3780
    functionLinenumberEnd: 3794
    functionName: LIBXL_DEFINE_DEVICE_FROM_TYPE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_FROM_TYPE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3831
      start: 3795
    functionDepth: 0
    functionLinenumber: 3795
    functionLinenumberEnd: 3831
    functionName: LIBXL_DEFINE_DEVID_TO_DEVICE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVID_TO_DEVICE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3838
      start: 3833
    functionDepth: 0
    functionLinenumber: 3833
    functionLinenumberEnd: 3838
    functionName: LIBXL_DEFINE_DEVICE_REMOVE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_REMOVE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3839
    functionDepth: 0
    functionLinenumber: 3839
    functionLinenumberEnd: 3844
    functionName: LIBXL_DEFINE_DEVICE_REMOVE_CUSTOM
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_REMOVE_CUSTOM(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3845
    functionDepth: 0
    functionLinenumber: 3845
    functionLinenumberEnd: 3848
    functionName: LIBXL_DEFINE_DEVICE_SAFE_REMOVE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_SAFE_REMOVE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3867
    functionName: LIBXL_DEFINE_DEVICE_LIST
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_DEFINE_DEVICE_LIST(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - kind
    - ','
    - array
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3912
    functionDepth: 0
    functionLinenumber: 3912
    functionLinenumberEnd: 3932
    functionName: DEFINE_DEVICE_TYPE_STRUCT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_DEVICE_TYPE_STRUCT(name, kind, array, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3933
    functionDepth: 0
    functionLinenumber: 3933
    functionLinenumberEnd: 3937
    functionName: libxl__device_type_get_ptr
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void **libxl__device_type_get_ptr(\n    const libxl__device_type *dt,
      const libxl_domain_config *d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__device_type_get_ptr
      Src: /src/xen/tools/libs/light/libxl_internal.h:3943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dt
    - d_config
    - e
    argTypes:
    - libxl__device_type*
    - libxl_domain_config*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3939
    functionDepth: 1
    functionLinenumber: 3939
    functionLinenumberEnd: 3944
    functionName: libxl__device_type_get_elem
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached:
    - libxl__device_type_get_ptr
    linkageType: ''
    returnType: void
    signature: "void *libxl__device_type_get_elem(\n    const libxl__device_type *dt,
      const libxl_domain_config *d_config,\n    int e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dt
    - d_config
    argTypes:
    - libxl__device_type*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3950
    functionName: libxl__device_type_get_num
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int *libxl__device_type_get_num(\n    const libxl__device_type *dt,
      const libxl_domain_config *d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__ev_child_inuse
      Src: /src/xen/tools/libs/light/libxl_internal.h:4244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shs
    argTypes:
    - libxl__save_helper_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4242
    functionDepth: 1
    functionLinenumber: 4242
    functionLinenumberEnd: 4245
    functionName: libxl__save_helper_inuse
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 5
    functionsReached:
    - libxl__ev_child_inuse
    linkageType: ''
    returnType: bool
    signature: bool libxl__save_helper_inuse(const libxl__save_helper_state *shs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4285
    functionDepth: 0
    functionLinenumber: 4285
    functionLinenumberEnd: 4286
    functionName: GC_INIT
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 122
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GC_INIT(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - nmemb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4293
      start: 4292
    functionDepth: 0
    functionLinenumber: 4292
    functionLinenumberEnd: 4293
    functionName: ARRAY_SIZE_OK
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE_OK(ptr, nmemb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4304
      start: 4302
    functionDepth: 0
    functionLinenumber: 4302
    functionLinenumberEnd: 4304
    functionName: GCNEW
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCNEW(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - nmemb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 4313
    functionDepth: 0
    functionLinenumber: 4313
    functionLinenumberEnd: 4315
    functionName: GCNEW_ARRAY
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCNEW_ARRAY(var, nmemb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - nmemb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4330
      start: 4326
    functionDepth: 0
    functionLinenumber: 4326
    functionLinenumberEnd: 4330
    functionName: GCREALLOC_ARRAY
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCREALLOC_ARRAY(var, nmemb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4339
      start: 4338
    functionDepth: 0
    functionLinenumber: 4338
    functionLinenumberEnd: 4339
    functionName: GCSPRINTF
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 213
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCSPRINTF(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4367
    functionDepth: 0
    functionLinenumber: 4367
    functionLinenumberEnd: 4368
    functionName: LOG
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG(l,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4368
    functionDepth: 0
    functionLinenumber: 4368
    functionLinenumberEnd: 4369
    functionName: LOGE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 110
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGE(l,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - e
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4370
      start: 4369
    functionDepth: 0
    functionLinenumber: 4369
    functionLinenumberEnd: 4370
    functionName: LOGEV
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGEV(l,e,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - d
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4372
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4372
    functionName: LOGD
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 209
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGD(l,d,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - l
    - ','
    - d
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4373
      start: 4372
    functionDepth: 0
    functionLinenumber: 4372
    functionLinenumberEnd: 4373
    functionName: LOGED
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGED(l,d,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - l
    - ','
    - e
    - ','
    - d
    - ','
    - f
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4374
      start: 4373
    functionDepth: 0
    functionLinenumber: 4373
    functionLinenumberEnd: 4374
    functionName: LOGEVD
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOGEVD(l,e,d,f, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/light/libxl_internal.h:4379,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.h:4380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 4379
        line_start: 4379
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    constantsTouched: []
    func_position:
      end: 4381
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4381
    functionName: libxl__ctx_lock
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__ctx_lock(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/light/libxl_internal.h:4384,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_internal.h:4385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts:
    - condition: (!r)
      pos:
        line_end: 4384
        line_start: 4384
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    constantsTouched: []
    func_position:
      end: 4386
      start: 4383
    functionDepth: 0
    functionLinenumber: 4383
    functionLinenumberEnd: 4386
    functionName: libxl__ctx_unlock
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void libxl__ctx_unlock(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_internal.h:4484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cndt
    argTypes:
    - libxl__numa_candidate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4480
    functionDepth: 1
    functionLinenumber: 4480
    functionLinenumberEnd: 4485
    functionName: libxl__numa_candidate_init
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - libxl_bitmap_init
    linkageType: ''
    returnType: void
    signature: void libxl__numa_candidate_init(libxl__numa_candidate *cndt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_internal.h:4490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - cndt
    argTypes:
    - libxl__gc*
    - libxl__numa_candidate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4487
    functionDepth: 3
    functionLinenumber: 4487
    functionLinenumberEnd: 4491
    functionName: libxl__numa_candidate_alloc
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached:
    - libxl_node_bitmap_alloc
    linkageType: ''
    returnType: int
    signature: "int libxl__numa_candidate_alloc(libxl__gc *gc,\n                                              libxl__numa_candidate
      *cndt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_internal.h:4494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cndt
    argTypes:
    - libxl__numa_candidate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4492
    functionDepth: 2
    functionLinenumber: 4492
    functionLinenumberEnd: 4495
    functionName: libxl__numa_candidate_dispose
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - libxl_bitmap_dispose
    linkageType: ''
    returnType: void
    signature: void libxl__numa_candidate_dispose(libxl__numa_candidate *cndt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_copy
      Src: /src/xen/tools/libs/light/libxl_internal.h:4503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - cndt
    - nodemap
    argTypes:
    - libxl__gc*
    - libxl__numa_candidate*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4504
      start: 4498
    functionDepth: 1
    functionLinenumber: 4498
    functionLinenumberEnd: 4504
    functionName: libxl__numa_candidate_get_nodemap
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached:
    - libxl_bitmap_copy
    linkageType: ''
    returnType: void
    signature: "void libxl__numa_candidate_get_nodemap(libxl__gc *gc,\n                                       const
      libxl__numa_candidate *cndt,\n                                       libxl_bitmap
      *nodemap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_copy
      Src: /src/xen/tools/libs/light/libxl_internal.h:4511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - cndt
    - nodemap
    argTypes:
    - libxl__gc*
    - libxl__numa_candidate*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4506
    functionDepth: 1
    functionLinenumber: 4506
    functionLinenumberEnd: 4512
    functionName: libxl__numa_candidate_put_nodemap
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached:
    - libxl_bitmap_copy
    linkageType: ''
    returnType: void
    signature: "void libxl__numa_candidate_put_nodemap(libxl__gc *gc,\n                                       libxl__numa_candidate
      *cndt,\n                                       const libxl_bitmap *nodemap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - libxl_defbool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4549
      start: 4546
    functionDepth: 0
    functionLinenumber: 4546
    functionLinenumberEnd: 4549
    functionName: libxl__defbool_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__defbool_is_default(libxl_defbool *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - head
    - ','
    - entry
    - ','
    - elm_new
    - ','
    - elm_search
    - ','
    - search_body
    - ','
    - new_after_search_p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4562
    functionDepth: 0
    functionLinenumber: 4562
    functionLinenumberEnd: 4574
    functionName: LIBXL_TAILQ_INSERT_SORTED
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "LIBXL_TAILQ_INSERT_SORTED(head, entry, elm_new, elm_search,     \\\n
      \                                 search_body, new_after_search_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - isfoo
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4599
      start: 4598
    functionDepth: 0
    functionLinenumber: 4598
    functionLinenumberEnd: 4599
    functionName: CTYPE
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTYPE(isfoo,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hwcap
    argTypes:
    - libxl_hwcap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4644
      start: 4641
    functionDepth: 0
    functionLinenumber: 4641
    functionLinenumberEnd: 4644
    functionName: libxl__hwcap_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__hwcap_is_default(libxl_hwcap *hwcap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/libs/light/libxl_internal.h:4648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psl
    argTypes:
    - libxl_string_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4649
      start: 4646
    functionDepth: 1
    functionLinenumber: 4646
    functionLinenumberEnd: 4649
    functionName: libxl__string_list_is_empty
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached:
    - libxl_string_list_length
    linkageType: ''
    returnType: int
    signature: int libxl__string_list_is_empty(libxl_string_list *psl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_key_value_list_length
      Src: /src/xen/tools/libs/light/libxl_internal.h:4653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkvl
    argTypes:
    - libxl_key_value_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4654
      start: 4651
    functionDepth: 1
    functionLinenumber: 4651
    functionLinenumberEnd: 4654
    functionName: libxl__key_value_list_is_empty
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached:
    - libxl_key_value_list_length
    linkageType: ''
    returnType: int
    signature: int libxl__key_value_list_is_empty(libxl_key_value_list *pkvl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - gc
    - info
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4709
      start: 4697
    functionDepth: 0
    functionLinenumber: 4697
    functionLinenumberEnd: 4709
    functionName: libxl__get_targetmem_fudge
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t libxl__get_targetmem_fudge(libxl__gc *gc,\n                                    const
      libxl_domain_build_info *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4721
      start: 4720
    functionDepth: 0
    functionLinenumber: 4720
    functionLinenumberEnd: 4721
    functionName: COMPARE_DEVID
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE_DEVID(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4721
    functionDepth: 0
    functionLinenumber: 4721
    functionLinenumberEnd: 4722
    functionName: COMPARE_DISK
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE_DISK(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4726
      start: 4722
    functionDepth: 0
    functionLinenumber: 4722
    functionLinenumberEnd: 4726
    functionName: COMPARE_PCI
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE_PCI(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4728
      start: 4726
    functionDepth: 0
    functionLinenumber: 4726
    functionLinenumberEnd: 4728
    functionName: COMPARE_USB
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE_USB(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4729
      start: 4728
    functionDepth: 0
    functionLinenumber: 4728
    functionLinenumberEnd: 4729
    functionName: COMPARE_USBCTRL
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE_USBCTRL(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_internal.h:4756,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_internal.h:4757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b_info
    argTypes:
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4758
      start: 4754
    functionDepth: 2
    functionLinenumber: 4754
    functionLinenumberEnd: 4758
    functionName: libxl__acpi_defbool_val
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 2
    functionsReached:
    - libxl_defbool_val
    linkageType: ''
    returnType: bool
    signature: bool libxl__acpi_defbool_val(const libxl_domain_build_info *b_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - libxl_timer_mode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4793
      start: 4790
    functionDepth: 0
    functionLinenumber: 4790
    functionLinenumberEnd: 4793
    functionName: libxl__timer_mode_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__timer_mode_is_default(libxl_timer_mode *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4798
      start: 4795
    functionDepth: 0
    functionLinenumber: 4795
    functionLinenumberEnd: 4798
    functionName: libxl__string_is_default
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__string_is_default(char **s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_internal.h:4804,1
    - Dst: libxl__run_dir_path
      Src: /src/xen/tools/libs/light/libxl_internal.h:4804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gc
    - domid
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4805
      start: 4802
    functionDepth: 1
    functionLinenumber: 4802
    functionLinenumberEnd: 4805
    functionName: libxl__qemu_qmp_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_internal.h
    functionUses: 4
    functionsReached:
    - libxl__run_dir_path
    - GCSPRINTF
    linkageType: ''
    returnType: char
    signature: char *libxl__qemu_qmp_path(libxl__gc *gc, int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - info
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: libxl__prepare_acpi
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_no_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__prepare_acpi(libxl__gc *gc, libxl_domain_build_info *info,\n
      \                       struct xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - info
    - out
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: libxl__get_acpi_size
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm_no_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int libxl__get_acpi_size(libxl__gc *gc,\n                         const
      libxl_domain_build_info *info,\n                         uint64_t *out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:35,1
    - Dst: libxl__netbuffer_enabled
      Src: /src/xen/tools/libs/light/libxl_remus.c:37,1
    - Dst: init_subkind_nic
      Src: /src/xen/tools/libs/light/libxl_remus.c:38,1
    - Dst: init_subkind_drbd_disk
      Src: /src/xen/tools/libs/light/libxl_remus.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: init_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 2
    functionsReached:
    - init_subkind_nic
    - STATE_AO_GC
    - libxl__netbuffer_enabled
    - init_subkind_drbd_disk
    linkageType: ''
    returnType: int
    signature: int init_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:53,1
    - Dst: libxl__netbuffer_enabled
      Src: /src/xen/tools/libs/light/libxl_remus.c:55,1
    - Dst: cleanup_subkind_nic
      Src: /src/xen/tools/libs/light/libxl_remus.c:56,1
    - Dst: cleanup_subkind_drbd_disk
      Src: /src/xen/tools/libs/light/libxl_remus.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cds
    argTypes:
    - libxl__checkpoint_devices_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: cleanup_device_subkind
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 3
    functionsReached:
    - cleanup_subkind_nic
    - STATE_AO_GC
    - libxl__netbuffer_enabled
    - cleanup_subkind_drbd_disk
    linkageType: ''
    returnType: void
    signature: void cleanup_device_subkind(libxl__checkpoint_devices_state *cds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:75,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:83,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_remus.c:85,1
    - Dst: libxl__netbuffer_enabled
      Src: /src/xen/tools/libs/light/libxl_remus.c:86,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:87,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_remus.c:94,1
    - Dst: init_device_subkind
      Src: /src/xen/tools/libs/light/libxl_remus.c:104,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:105,1
    - Dst: libxl__checkpoint_devices_setup
      Src: /src/xen/tools/libs/light/libxl_remus.c:116,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_remus.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - egc
    - rs
    argTypes:
    - libxl__egc*
    - libxl__remus_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 121
    functionName: libxl__remus_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 1
    functionsReached:
    - libxl_defbool_val
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__netbuffer_enabled
    - LOGD
    - init_device_subkind
    - libxl__checkpoint_devices_setup
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: void libxl__remus_setup(libxl__egc *egc, libxl__remus_state *rs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:126,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:127,1
    - Dst: libxl__domain_save
      Src: /src/xen/tools/libs/light/libxl_remus.c:130,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:134,1
    - Dst: libxl__checkpoint_devices_teardown
      Src: /src/xen/tools/libs/light/libxl_remus.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 123
    functionDepth: 6
    functionLinenumber: 123
    functionLinenumberEnd: 137
    functionName: remus_setup_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__checkpoint_devices_teardown
    - LOGD
    - libxl__domain_save
    linkageType: ''
    returnType: void
    signature: "void remus_setup_done(libxl__egc *egc,\n                             libxl__checkpoint_devices_state
      *cds, int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:142,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:143,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:146,1
    - Dst: cleanup_device_subkind
      Src: /src/xen/tools/libs/light/libxl_remus.c:149,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_remus.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: remus_setup_failed
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - cleanup_device_subkind
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void remus_setup_failed(libxl__egc *egc,\n                               libxl__checkpoint_devices_state
      *cds, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:161,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:168,1
    - Dst: libxl__checkpoint_devices_teardown
      Src: /src/xen/tools/libs/light/libxl_remus.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - egc
    - rs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__remus_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: libxl__remus_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 1
    functionsReached:
    - CONTAINER_OF
    - libxl__checkpoint_devices_teardown
    - LOGD
    linkageType: ''
    returnType: void
    signature: "void libxl__remus_teardown(libxl__egc *egc,\n                           libxl__remus_state
      *rs,\n                           int rc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:178,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:179,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:182,1
    - Dst: cleanup_device_subkind
      Src: /src/xen/tools/libs/light/libxl_remus.c:185,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_remus.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: remus_teardown_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - cleanup_device_subkind
    - libxl__domain_save_state*::callback
    linkageType: ''
    returnType: void
    signature: "void remus_teardown_done(libxl__egc *egc,\n                                libxl__checkpoint_devices_state
      *cds,\n                                int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_suspend
      Src: /src/xen/tools/libs/light/libxl_remus.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: libxl__remus_domain_suspend_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - libxl__domain_suspend
    linkageType: ''
    returnType: void
    signature: void libxl__remus_domain_suspend_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:215,1
    - Dst: libxl__checkpoint_devices_postsuspend
      Src: /src/xen/tools/libs/light/libxl_remus.c:222,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - egc
    - dsps
    - rc
    argTypes:
    - libxl__egc*
    - libxl__domain_suspend_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: remus_domain_suspend_callback_common_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__checkpoint_devices_postsuspend
    linkageType: ''
    returnType: void
    signature: "void remus_domain_suspend_callback_common_done(libxl__egc *egc,\n
      \                               libxl__domain_suspend_state *dsps, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:234,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: remus_devices_postsuspend_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void remus_devices_postsuspend_cb(libxl__egc *egc,\n                                         libxl__checkpoint_devices_state
      *cds,\n                                         int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:252,1
    - Dst: libxl__checkpoint_devices_preresume
      Src: /src/xen/tools/libs/light/libxl_remus.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: libxl__remus_domain_resume_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__checkpoint_devices_preresume
    linkageType: ''
    returnType: void
    signature: void libxl__remus_domain_resume_callback(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:263,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:264,1
    - Dst: libxl__domain_resume_deprecated
      Src: /src/xen/tools/libs/light/libxl_remus.c:270,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 14
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: remus_devices_preresume_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__domain_resume_deprecated
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void remus_devices_preresume_cb(libxl__egc *egc,\n                                       libxl__checkpoint_devices_state
      *cds,\n                                       int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:296,1
    - Dst: libxl__stream_write_start_checkpoint
      Src: /src/xen/tools/libs/light/libxl_remus.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: libxl__remus_domain_save_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__stream_write_start_checkpoint
    linkageType: ''
    returnType: void
    signature: void libxl__remus_domain_save_checkpoint_callback(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:304,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:309,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:312,1
    - Dst: libxl__checkpoint_devices_commit
      Src: /src/xen/tools/libs/light/libxl_remus.c:318,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - egc
    - sws
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_write_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 324
    functionName: remus_checkpoint_stream_written
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__checkpoint_devices_commit
    linkageType: ''
    returnType: void
    signature: "void remus_checkpoint_stream_written(\n    libxl__egc *egc, libxl__stream_write_state
      *sws, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:330,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:332,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_remus.c:335,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_remus.c:348,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - egc
    - cds
    - rc
    argTypes:
    - libxl__egc*
    - libxl__checkpoint_devices_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 359
    functionName: remus_devices_commit_cb
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - LOGD
    - libxl__xc_domain_saverestore_async_callback_done
    - libxl__ev_time_register_rel
    linkageType: ''
    returnType: void
    signature: "void remus_devices_commit_cb(libxl__egc *egc,\n                                    libxl__checkpoint_devices_state
      *cds,\n                                    int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_remus.c:366,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:368,1
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: remus_next_checkpoint
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void remus_next_checkpoint(libxl__egc *egc, libxl__ev_time *ev,\n
      \                                 const struct timeval *requested_abs,\n                                  int
      rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_remus.c:397,1
    - Dst: libxl__stream_read_start_checkpoint
      Src: /src/xen/tools/libs/light/libxl_remus.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: libxl__remus_domain_restore_checkpoint_callback
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - STATE_AO_GC
    - libxl__stream_read_start_checkpoint
    linkageType: ''
    returnType: void
    signature: void libxl__remus_domain_restore_checkpoint_callback(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__xc_domain_saverestore_async_callback_done
      Src: /src/xen/tools/libs/light/libxl_remus.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - stream
    - rc
    argTypes:
    - libxl__egc*
    - libxl__stream_read_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: remus_checkpoint_stream_done
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 0
    functionsReached:
    - libxl__xc_domain_saverestore_async_callback_done
    linkageType: ''
    returnType: void
    signature: "void remus_checkpoint_stream_done(\n    libxl__egc *egc, libxl__stream_read_state
      *stream, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - egc
    - dcs
    argTypes:
    - libxl__egc*
    - libxl__domain_create_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: libxl__remus_restore_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_remus.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__remus_restore_setup(libxl__egc *egc,\n                                libxl__domain_create_state
      *dcs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:25,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:29,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:30,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_sched.c:42,1
    - Dst: libxl__bitmap_copy_best_effort
      Src: /src/xen/tools/libs/light/libxl_sched.c:46,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/libs/light/libxl_sched.c:50,1
    - Dst: libxl__bitmap_copy_best_effort
      Src: /src/xen/tools/libs/light/libxl_sched.c:54,1
    - Dst: xc_vcpu_setaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:58,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:62,1
    - Dst: libxl_bitmap_equal
      Src: /src/xen/tools/libs/light/libxl_sched.c:73,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:74,1
    - Dst: libxl_bitmap_equal
      Src: /src/xen/tools/libs/light/libxl_sched.c:80,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:81,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/libs/light/libxl_sched.c:83,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:84,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_sched.c:91,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/libs/light/libxl_sched.c:92,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 6
    argNames:
    - ctx
    - domid
    - vcpuid
    - cpumap_hard
    - cpumap_soft
    - flags
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    - libxl_bitmap*
    - libxl_bitmap*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 95
    functionName: libxl__set_vcpuaffinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_equal
    - GC_INIT
    - LOGD
    - libxl_bitmap_dispose
    - libxl_bitmap_is_empty
    - libxl_bitmap_init
    - LOGED
    - xc_vcpu_setaffinity
    - libxl_cpu_bitmap_alloc
    - libxl__bitmap_copy_best_effort
    linkageType: ''
    returnType: int
    signature: "int libxl__set_vcpuaffinity(libxl_ctx *ctx, uint32_t domid,\n                                   uint32_t
      vcpuid,\n                                   const libxl_bitmap *cpumap_hard,\n
      \                                  const libxl_bitmap *cpumap_soft,\n                                   unsigned
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__set_vcpuaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - domid
    - vcpuid
    - cpumap_hard
    - cpumap_soft
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: libxl_set_vcpuaffinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 2
    functionsReached:
    - libxl__set_vcpuaffinity
    linkageType: ''
    returnType: int
    signature: "int libxl_set_vcpuaffinity(libxl_ctx *ctx, uint32_t domid, uint32_t
      vcpuid,\n                           const libxl_bitmap *cpumap_hard,\n                           const
      libxl_bitmap *cpumap_soft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__set_vcpuaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - domid
    - vcpuid
    - cpumap_hard
    - cpumap_soft
    argTypes:
    - libxl_ctx*
    - uint32_t
    - uint32_t
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: libxl_set_vcpuaffinity_force
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - libxl__set_vcpuaffinity
    linkageType: ''
    returnType: int
    signature: "int libxl_set_vcpuaffinity_force(libxl_ctx *ctx, uint32_t domid,\n
      \                                uint32_t vcpuid,\n                                 const
      libxl_bitmap *cpumap_hard,\n                                 const libxl_bitmap
      *cpumap_soft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:119,1
    - Dst: libxl_set_vcpuaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:123,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ctx
    - domid
    - max_vcpus
    - cpumap_hard
    - cpumap_soft
    argTypes:
    - libxl_ctx*
    - uint32_t
    - unsigned int
    - libxl_bitmap*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: libxl_set_vcpuaffinity_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - libxl_set_vcpuaffinity
    - GC_INIT
    - LOGD
    linkageType: ''
    returnType: int
    signature: "int libxl_set_vcpuaffinity_all(libxl_ctx *ctx, uint32_t domid,\n                               unsigned
      int max_vcpus,\n                               const libxl_bitmap *cpumap_hard,\n
      \                              const libxl_bitmap *cpumap_soft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:136,1
    - Dst: xc_domain_node_setaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:137,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - domid
    - nodemap
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: libxl_domain_set_nodeaffinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - xc_domain_node_setaffinity
    - GC_INIT
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_set_nodeaffinity(libxl_ctx *ctx, uint32_t domid,\n
      \                                 libxl_bitmap *nodemap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:149,1
    - Dst: xc_domain_node_getaffinity
      Src: /src/xen/tools/libs/light/libxl_sched.c:150,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - domid
    - nodemap
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: libxl_domain_get_nodeaffinity
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - LOGED
    - GC_INIT
    - xc_domain_node_getaffinity
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_get_nodeaffinity(libxl_ctx *ctx, uint32_t domid,\n
      \                                 libxl_bitmap *nodemap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:163,1
    - Dst: xc_sched_id
      Src: /src/xen/tools/libs/light/libxl_sched.c:164,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_sched.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: libxl_get_scheduler
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - xc_sched_id
    - GC_INIT
    - LOGE
    linkageType: ''
    returnType: int
    signature: int libxl_get_scheduler(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: sched_arinc653_domain_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sched_arinc653_domain_set(libxl__gc *gc, uint32_t domid,\n                                     const
      libxl_domain_sched_params *scinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: sched_null_domain_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sched_null_domain_set(libxl__gc *gc, uint32_t domid,\n                                 const
      libxl_domain_sched_params *scinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: sched_null_domain_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sched_null_domain_get(libxl__gc *gc, uint32_t domid,\n                                 libxl_domain_sched_params
      *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sched_credit_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:201,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:203,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: sched_credit_domain_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 2
    functionsReached:
    - libxl_domain_sched_params_init
    - xc_sched_credit_domain_get
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int sched_credit_domain_get(libxl__gc *gc, uint32_t domid,\n                                   libxl_domain_sched_params
      *scinfo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:222,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:224,1
    - Dst: xc_sched_credit_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:228,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:230,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:236,1
    - Dst: libxl_domain_sched_params*::cap
      Src: /src/xen/tools/libs/light/libxl_sched.c:244,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:246,1
    - Dst: xc_sched_credit_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:254,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 261
    functionName: sched_credit_domain_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 2
    functionsReached:
    - xc_sched_credit_domain_get
    - LOGD
    - LOGED
    - xc_sched_credit_domain_set
    - xc_domain_getinfo_single
    - libxl_domain_sched_params*::cap
    linkageType: ''
    returnType: int
    signature: "int sched_credit_domain_set(libxl__gc *gc, uint32_t domid,\n                                   const
      libxl_domain_sched_params *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - gc
    - ratelimit
    argTypes:
    - libxl__gc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: sched_ratelimit_check
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: int
    signature: int sched_ratelimit_check(libxl__gc *gc, int ratelimit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:281,1
    - Dst: xc_sched_credit_params_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:283,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_sched.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - poolid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_sched_credit_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: libxl_sched_credit_params_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_sched_credit_params_get
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl_sched_credit_params_get(libxl_ctx *ctx, uint32_t poolid,\n
      \                                 libxl_sched_credit_params *scinfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:305,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:309,1
    - Dst: sched_ratelimit_check
      Src: /src/xen/tools/libs/light/libxl_sched.c:314,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:319,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:324,1
    - Dst: xc_sched_credit_params_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:334,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_sched.c:336,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - poolid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_sched_credit_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 349
    functionName: libxl_sched_credit_params_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - sched_ratelimit_check
    - xc_sched_credit_params_set
    - LOGE
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl_sched_credit_params_set(libxl_ctx *ctx, uint32_t poolid,\n
      \                                 libxl_sched_credit_params *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:356,1
    - Dst: xc_sched_credit2_params_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:358,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_sched.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - poolid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_sched_credit2_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: libxl_sched_credit2_params_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_sched_credit2_params_get
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl_sched_credit2_params_get(libxl_ctx *ctx, uint32_t poolid,\n
      \                                  libxl_sched_credit2_params *scinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:378,1
    - Dst: sched_ratelimit_check
      Src: /src/xen/tools/libs/light/libxl_sched.c:380,1
    - Dst: xc_sched_credit2_params_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:385,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_sched.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - poolid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_sched_credit2_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 398
    functionName: libxl_sched_credit2_params_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - xc_sched_credit2_params_set
    - sched_ratelimit_check
    - LOGE
    linkageType: ''
    returnType: int
    signature: "int libxl_sched_credit2_params_set(libxl_ctx *ctx, uint32_t poolid,\n
      \                                  libxl_sched_credit2_params *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sched_credit2_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:406,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:408,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 418
    functionName: sched_credit2_domain_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - xc_sched_credit2_domain_get
    - libxl_domain_sched_params_init
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int sched_credit2_domain_get(libxl__gc *gc, uint32_t domid,\n                                    libxl_domain_sched_params
      *scinfo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:427,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:429,1
    - Dst: xc_sched_credit2_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:433,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:435,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:441,1
    - Dst: libxl_domain_sched_params*::cap
      Src: /src/xen/tools/libs/light/libxl_sched.c:449,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:451,1
    - Dst: xc_sched_credit2_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:459,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 466
    functionName: sched_credit2_domain_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - LOGD
    - xc_sched_credit2_domain_set
    - xc_sched_credit2_domain_get
    - LOGED
    - xc_domain_getinfo_single
    - libxl_domain_sched_params*::cap
    linkageType: ''
    returnType: int
    signature: "int sched_credit2_domain_set(libxl__gc *gc, uint32_t domid,\n                                    const
      libxl_domain_sched_params *scinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:473,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:479,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_sched.c:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - gc
    - period
    - budget
    argTypes:
    - libxl__gc*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 493
    functionName: sched_rtds_validate_params
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: int
    signature: int sched_rtds_validate_params(libxl__gc *gc, int period, int budget)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:504,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:506,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_sched.c:516,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:520,1
    - Dst: xc_sched_rtds_vcpu_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:530,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 547
    functionName: sched_rtds_vcpu_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - LOGD
    - GCNEW_ARRAY
    - LOGED
    - xc_sched_rtds_vcpu_get
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_vcpu_get(libxl__gc *gc, uint32_t domid,\n                               libxl_vcpu_sched_params
      *scinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:558,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:560,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_sched.c:570,1
    - Dst: xc_sched_rtds_vcpu_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:575,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:577,1
    - Dst: libxl__calloc
      Src: /src/xen/tools/libs/light/libxl_sched.c:583,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 596
    functionName: sched_rtds_vcpu_get_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GCNEW_ARRAY
    - libxl__calloc
    - LOGED
    - xc_sched_rtds_vcpu_get
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_vcpu_get_all(libxl__gc *gc, uint32_t domid,\n                                   libxl_vcpu_sched_params
      *scinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:608,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:610,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:623,1
    - Dst: sched_rtds_validate_params
      Src: /src/xen/tools/libs/light/libxl_sched.c:628,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_sched.c:635,1
    - Dst: xc_sched_rtds_vcpu_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:646,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:649,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 656
    functionName: sched_rtds_vcpu_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - xc_sched_rtds_vcpu_set
    - LOGD
    - sched_rtds_validate_params
    - GCNEW_ARRAY
    - LOGED
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_vcpu_set(libxl__gc *gc, uint32_t domid,\n                               const
      libxl_vcpu_sched_params *scinfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/light/libxl_sched.c:669,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:671,1
    - Dst: sched_rtds_validate_params
      Src: /src/xen/tools/libs/light/libxl_sched.c:681,1
    - Dst: GCNEW_ARRAY
      Src: /src/xen/tools/libs/light/libxl_sched.c:687,1
    - Dst: xc_sched_rtds_vcpu_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:698,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:701,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 708
    functionName: sched_rtds_vcpu_set_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - xc_sched_rtds_vcpu_set
    - sched_rtds_validate_params
    - GCNEW_ARRAY
    - LOGED
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_vcpu_set_all(libxl__gc *gc, uint32_t domid,\n                                   const
      libxl_vcpu_sched_params *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sched_rtds_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:716,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:718,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 729
    functionName: sched_rtds_domain_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - libxl_domain_sched_params_init
    - xc_sched_rtds_domain_get
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_domain_get(libxl__gc *gc, uint32_t domid,\n                               libxl_domain_sched_params
      *scinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_sched_rtds_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:737,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:739,1
    - Dst: sched_rtds_validate_params
      Src: /src/xen/tools/libs/light/libxl_sched.c:751,1
    - Dst: xc_sched_rtds_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:754,1
    - Dst: LOGED
      Src: /src/xen/tools/libs/light/libxl_sched.c:756,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - gc
    - domid
    - scinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 761
    functionName: sched_rtds_domain_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - sched_rtds_validate_params
    - xc_sched_rtds_domain_set
    - xc_sched_rtds_domain_get
    - LOGED
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_domain_set(libxl__gc *gc, uint32_t domid,\n                               const
      libxl_domain_sched_params *scinfo)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:766,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:771,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:775,1
    - Dst: sched_credit_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:779,1
    - Dst: sched_credit2_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:782,1
    - Dst: sched_arinc653_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:785,1
    - Dst: sched_rtds_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:788,1
    - Dst: sched_null_domain_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:791,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:794,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 763
    functionDepth: 4
    functionLinenumber: 763
    functionLinenumberEnd: 801
    functionName: libxl_domain_sched_params_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - LOGD
    - sched_rtds_domain_set
    - sched_null_domain_set
    - sched_arinc653_domain_set
    - sched_credit2_domain_set
    - libxl__domain_scheduler
    - sched_credit_domain_set
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_sched_params_set(libxl_ctx *ctx, uint32_t domid,\n
      \                                 const libxl_domain_sched_params *scinfo)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:806,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:811,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:815,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:822,1
    - Dst: sched_rtds_vcpu_set
      Src: /src/xen/tools/libs/light/libxl_sched.c:826,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 803
    functionDepth: 4
    functionLinenumber: 803
    functionLinenumberEnd: 836
    functionName: libxl_vcpu_sched_params_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_scheduler
    - LOGD
    - sched_rtds_vcpu_set
    linkageType: ''
    returnType: int
    signature: "int libxl_vcpu_sched_params_set(libxl_ctx *ctx, uint32_t domid,\n
      \                               const libxl_vcpu_sched_params *scinfo)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:841,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:846,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:850,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:857,1
    - Dst: sched_rtds_vcpu_set_all
      Src: /src/xen/tools/libs/light/libxl_sched.c:861,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:864,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 871
    functionName: libxl_vcpu_sched_params_set_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_scheduler
    - LOGD
    - sched_rtds_vcpu_set_all
    linkageType: ''
    returnType: int
    signature: "int libxl_vcpu_sched_params_set_all(libxl_ctx *ctx, uint32_t domid,\n
      \                                   const libxl_vcpu_sched_params *scinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:876,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/libs/light/libxl_sched.c:879,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:881,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:885,1
    - Dst: sched_credit_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:889,1
    - Dst: sched_credit2_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:892,1
    - Dst: sched_rtds_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:895,1
    - Dst: sched_null_domain_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:898,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 873
    functionDepth: 4
    functionLinenumber: 873
    functionLinenumberEnd: 908
    functionName: libxl_domain_sched_params_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 1
    functionsReached:
    - GC_INIT
    - LOGD
    - sched_credit2_domain_get
    - libxl_domain_sched_params_init
    - sched_rtds_domain_get
    - libxl__domain_scheduler
    - sched_credit_domain_get
    - sched_null_domain_get
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_sched_params_get(libxl_ctx *ctx, uint32_t domid,\n
      \                                 libxl_domain_sched_params *scinfo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:913,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:916,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:920,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:927,1
    - Dst: sched_rtds_vcpu_get
      Src: /src/xen/tools/libs/light/libxl_sched.c:931,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 910
    functionDepth: 4
    functionLinenumber: 910
    functionLinenumberEnd: 941
    functionName: libxl_vcpu_sched_params_get
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_scheduler
    - LOGD
    - sched_rtds_vcpu_get
    linkageType: ''
    returnType: int
    signature: "int libxl_vcpu_sched_params_get(libxl_ctx *ctx, uint32_t domid,\n
      \                               libxl_vcpu_sched_params *scinfo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_sched.c:946,1
    - Dst: libxl__domain_scheduler
      Src: /src/xen/tools/libs/light/libxl_sched.c:949,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:953,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:960,1
    - Dst: sched_rtds_vcpu_get_all
      Src: /src/xen/tools/libs/light/libxl_sched.c:964,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_sched.c:967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - domid
    - scinfo
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 943
    functionDepth: 5
    functionLinenumber: 943
    functionLinenumberEnd: 974
    functionName: libxl_vcpu_sched_params_get_all
    functionSourceFile: /src/xen/tools/libs/light/libxl_sched.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__domain_scheduler
    - LOGD
    - sched_rtds_vcpu_get_all
    linkageType: ''
    returnType: int
    signature: "int libxl_vcpu_sched_params_get_all(libxl_ctx *ctx, uint32_t domid,\n
      \                                   libxl_vcpu_sched_params *scinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/libs/light/libxl_flask.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - buf
    - len
    - ssidref
    argTypes:
    - libxl_ctx*
    - char*
    - size_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: libxl_flask_context_to_sid
    functionSourceFile: /src/xen/tools/libs/light/libxl_flask.c
    functionUses: 1
    functionsReached:
    - xc_flask_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int libxl_flask_context_to_sid(libxl_ctx *ctx, char *buf, size_t len,\n
      \                              uint32_t *ssidref)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_sid_to_context
      Src: /src/xen/tools/libs/light/libxl_flask.c:35,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_flask.c:38,1
    - Dst: strdup
      Src: /src/xen/tools/libs/light/libxl_flask.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - ssidref
    - buf
    - len
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: libxl_flask_sid_to_context
    functionSourceFile: /src/xen/tools/libs/light/libxl_flask.c
    functionUses: 1
    functionsReached:
    - strlen
    - strdup
    - xc_flask_sid_to_context
    linkageType: ''
    returnType: int
    signature: "int libxl_flask_sid_to_context(libxl_ctx *ctx, uint32_t ssidref,\n
      \                              char **buf, size_t *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_getenforce
      Src: /src/xen/tools/libs/light/libxl_flask.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: libxl_flask_getenforce
    functionSourceFile: /src/xen/tools/libs/light/libxl_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_getenforce
    linkageType: ''
    returnType: int
    signature: int libxl_flask_getenforce(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_setenforce
      Src: /src/xen/tools/libs/light/libxl_flask.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - mode
    argTypes:
    - libxl_ctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: libxl_flask_setenforce
    functionSourceFile: /src/xen/tools/libs/light/libxl_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_setenforce
    linkageType: ''
    returnType: int
    signature: int libxl_flask_setenforce(libxl_ctx *ctx, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_load
      Src: /src/xen/tools/libs/light/libxl_flask.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - policy
    - size
    argTypes:
    - libxl_ctx*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: libxl_flask_loadpolicy
    functionSourceFile: /src/xen/tools/libs/light/libxl_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_load
    linkageType: ''
    returnType: int
    signature: int libxl_flask_loadpolicy(libxl_ctx *ctx, void *policy, uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:37,1
    - Dst: libxl__ev_time_register_rel
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:39,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ao
    - j
    argTypes:
    - libxl__ao*
    - int
    assertStmts:
    - condition: (!rc)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: regs
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_timedereg.c
    functionUses: 0
    functionsReached:
    - LOG
    - libxl__ev_time_register_rel
    - assert
    linkageType: ''
    returnType: void
    signature: void regs(libxl__ao *ao, int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AO_CREATE
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:47,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:52,1
    - Dst: libxl__ev_time_init
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:53,1
    - Dst: regs
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - ao_how
    argTypes:
    - libxl_ctx*
    - libxl_asyncop_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: libxl_test_timedereg
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_timedereg.c
    functionUses: 1
    functionsReached:
    - AO_CREATE
    - libxl__ev_time_init
    - regs
    linkageType: ''
    returnType: int
    signature: int libxl_test_timedereg(libxl_ctx *ctx, libxl_asyncop_how *ao_how)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:68,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:70,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:74,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:75,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:76,1
    - Dst: regs
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:77,1
    - Dst: libxl__ev_time_deregister
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:78,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:83,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:87,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:89,1
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:89,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:90,1
    - Dst: libxl__ev_time_isregistered
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:90,1
    - Dst: libxl__ao_complete
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:92,1
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_test_timedereg.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 4
    argNames:
    - egc
    - ev
    - requested_abs
    - rc
    argTypes:
    - libxl__egc*
    - libxl__ev_time*
    - struct timeval*
    - int
    assertStmts:
    - condition: (rc == ERROR_TIMEDOUT)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    - condition: (ev == &et[0][1])
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    - condition: (ev == &et[1][seq-1])
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    - condition: (ev == &et[1][2])
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    - condition: (!libxl__ev_time_isregistered(&et[0][i]))
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    - condition: (!libxl__ev_time_isregistered(&et[1][i]))
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
    constantsTouched: []
    func_position:
      end: 100
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 100
    functionName: occurs
    functionSourceFile: /src/xen/tools/libs/light/libxl_test_timedereg.c
    functionUses: 4
    functionsReached:
    - libxl__ev_time_isregistered
    - abort
    - libxl__ev_time_deregister
    - regs
    - libxl__ao_complete
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void occurs(libxl__egc *egc, libxl__ev_time *ev,\n                   const
      struct timeval *requested_abs, int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:23,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:25,1
    - Dst: libxl__colo_restore_state*::callback
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - crs
    argTypes:
    - libxl__egc*
    - libxl__colo_restore_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: libxl__colo_restore_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_colo.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - LOGD
    - libxl__colo_restore_state*::callback
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_setup(libxl__egc *egc,\n                               libxl__colo_restore_state
      *crs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - egc
    - dcs_void
    - ret
    - retval
    - errnoval
    argTypes:
    - libxl__egc*
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: libxl__colo_restore_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_colo.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_restore_teardown(libxl__egc *egc, void *dcs_void,\n
      \                                 int ret, int retval, int errnoval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:39,1
    - Dst: STATE_AO_GC
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:40,1
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:42,1
    - Dst: libxl__domain_save_state*::callback
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - egc
    - css
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: libxl__colo_save_setup
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_colo.c
    functionUses: 1
    functionsReached:
    - STATE_AO_GC
    - CONTAINER_OF
    - libxl__domain_save_state*::callback
    - LOGD
    linkageType: ''
    returnType: void
    signature: void libxl__colo_save_setup(libxl__egc *egc, libxl__colo_save_state
      *css)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/light/libxl_no_colo.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - egc
    - css
    - rc
    argTypes:
    - libxl__egc*
    - libxl__colo_save_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: libxl__colo_save_teardown
    functionSourceFile: /src/xen/tools/libs/light/libxl_no_colo.c
    functionUses: 1
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void libxl__colo_save_teardown(libxl__egc *egc,\n                               libxl__colo_save_state
      *css,\n                               int rc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_INIT
      Src: /src/xen/tools/libs/light/libxl_genid.c:35,1
    - Dst: libxl__random_bytes
      Src: /src/xen/tools/libs/light/libxl_genid.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - libxl_ctx*
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: libxl_ms_vm_genid_generate
    functionSourceFile: /src/xen/tools/libs/light/libxl_genid.c
    functionUses: 0
    functionsReached:
    - GC_INIT
    - libxl__random_bytes
    linkageType: ''
    returnType: int
    signature: int libxl_ms_vm_genid_generate(libxl_ctx *ctx, libxl_ms_vm_genid *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/tools/libs/light/libxl_genid.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: libxl_ms_vm_genid_is_zero
    functionSourceFile: /src/xen/tools/libs/light/libxl_genid.c
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool libxl_ms_vm_genid_is_zero(const libxl_ms_vm_genid *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_genid.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - dst
    - src
    argTypes:
    - libxl_ctx*
    - libxl_ms_vm_genid*
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: libxl_ms_vm_genid_copy
    functionSourceFile: /src/xen/tools/libs/light/libxl_genid.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libxl_ms_vm_genid_copy(libxl_ctx *ctx, libxl_ms_vm_genid *dst,\n
      \                           const libxl_ms_vm_genid *src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl__gc_owner
      Src: /src/xen/tools/libs/light/libxl_genid.c:63,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_genid.c:69,1
    - Dst: libxl__xs_get_dompath
      Src: /src/xen/tools/libs/light/libxl_genid.c:75,1
    - Dst: libxl__xs_printf
      Src: /src/xen/tools/libs/light/libxl_genid.c:80,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_genid.c:81,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/light/libxl_genid.c:89,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/light/libxl_genid.c:93,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/light/libxl_genid.c:100,1
    - Dst: munmap
      Src: /src/xen/tools/libs/light/libxl_genid.c:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - gc
    - domid
    - id
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_ms_vm_genid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 117
    functionName: libxl__ms_vm_genid_set
    functionSourceFile: /src/xen/tools/libs/light/libxl_genid.c
    functionUses: 1
    functionsReached:
    - libxl__xs_get_dompath
    - GCSPRINTF
    - xc_hvm_param_get
    - munmap
    - libxl__xs_printf
    - libxl__gc_owner
    - xc_map_foreign_range
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int libxl__ms_vm_genid_set(libxl__gc *gc, uint32_t domid,\n                           const
      libxl_ms_vm_genid *id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - virtio_mmio_base
    argTypes:
    - libxl__gc*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: alloc_virtio_mmio_base
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t alloc_virtio_mmio_base(libxl__gc *gc, uint64_t *virtio_mmio_base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - virtio_mmio_irq
    argTypes:
    - libxl__gc*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: alloc_virtio_mmio_irq
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t alloc_virtio_mmio_irq(libxl__gc *gc, uint32_t *virtio_mmio_irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_virtio_mmio_base
      Src: /src/xen/tools/libs/light/libxl_arm.c:57,1
    - Dst: alloc_virtio_mmio_irq
      Src: /src/xen/tools/libs/light/libxl_arm.c:61,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - gc
    - base
    - irq
    - virtio_mmio_base
    - virtio_mmio_irq
    argTypes:
    - libxl__gc*
    - uint64_t*
    - uint32_t*
    - uint64_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: alloc_virtio_mmio_params
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - alloc_virtio_mmio_irq
    - LOG
    - alloc_virtio_mmio_base
    linkageType: ''
    returnType: int
    signature: "int alloc_virtio_mmio_params(libxl__gc *gc, uint64_t *base,\n                                    uint32_t
      *irq, uint64_t *virtio_mmio_base,\n                                    uint32_t
      *virtio_mmio_irq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - gic_version
    argTypes:
    - libxl_gic_version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: gicv_to_string
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gicv_to_string(libxl_gic_version gic_version)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: alloc_virtio_mmio_params
      Src: /src/xen/tools/libs/light/libxl_arm.c:109,1
    - Dst: alloc_virtio_mmio_params
      Src: /src/xen/tools/libs/light/libxl_arm.c:124,1
    - Dst: max
      Src: /src/xen/tools/libs/light/libxl_arm.c:144,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:162,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:169,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:182,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:187,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:196,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:209,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:225,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:244,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:248,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 3
    argNames:
    - gc
    - d_config
    - config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 251
    functionName: libxl__arch_domain_prepare_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - LOG
    - max
    - alloc_virtio_mmio_params
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_prepare_config(libxl__gc *gc,\n                                      libxl_domain_config
      *d_config,\n                                      struct xen_domctl_createdomain
      *config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - config
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 273
    functionName: libxl__arch_domain_save_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_save_config(libxl__gc *gc,\n                                   libxl_domain_config
      *d_config,\n                                   libxl__domain_build_state *state,\n
      \                                  const struct xen_domctl_createdomain *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__domain_set_paging_mempool_size
      Src: /src/xen/tools/libs/light/libxl_arm.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - domid
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: libxl__arch_domain_create
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - libxl__domain_set_paging_mempool_size
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_create(libxl__gc *gc,\n                              libxl_domain_config
      *d_config,\n                              libxl__domain_build_state *state,\n
      \                             uint32_t domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:290,1
    - Dst: libxl__get_acpi_size
      Src: /src/xen/tools/libs/light/libxl_arm.c:291,1
    - Dst: DIV_ROUNDUP
      Src: /src/xen/tools/libs/light/libxl_arm.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - gc
    - info
    - out
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 301
    functionName: libxl__arch_extra_memory
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 3
    functionsReached:
    - libxl_defbool_val
    - DIV_ROUNDUP
    - libxl__get_acpi_size
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_extra_memory(libxl__gc *gc,\n                             const
      libxl_domain_build_info *info,\n                             uint64_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/tools/libs/light/libxl_arm.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cellp
    - size
    - val
    argTypes:
    - be32**
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: set_cell
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - cpu_to_fdt32
    linkageType: ''
    returnType: void
    signature: void set_cell(be32 **cellp, int size, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:337,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:342,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:343,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - interrupt
    - irq
    - cpumask
    - level
    argTypes:
    - gic_interrupt
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (irq >= 16)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    constantsTouched: []
    func_position:
      end: 345
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 345
    functionName: set_interrupt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - assert
    - set_cell
    linkageType: ''
    returnType: void
    signature: "void set_interrupt(gic_interrupt interrupt, unsigned int irq,\n                          unsigned
      int cpumask, unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:351,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cellp
    - address_cells
    - size_cells
    - address
    - size
    argTypes:
    - be32**
    - int
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: set_range
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - set_cell
    linkageType: ''
    returnType: void
    signature: "void set_range(be32 **cellp,\n                      int address_cells,
      int size_cells,\n                      uint64_t address, uint64_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_arm.c:363,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:366,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_arm.c:368,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_arm.c:370,1
    - Dst: libxl__zalloc
      Src: /src/xen/tools/libs/light/libxl_arm.c:372,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/light/libxl_arm.c:374,1
    - Dst: strlen
      Src: /src/xen/tools/libs/light/libxl_arm.c:375,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - gc
    - fdt
    - nr_compat
    argTypes:
    - libxl__gc*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: fdt_property_compat
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - libxl__zalloc
    - strcpy
    - strlen
    - fdt_property
    - va_end
    linkageType: ''
    returnType: int
    signature: int fdt_property_compat(libxl__gc *gc, void *fdt, unsigned nr_compat,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:387,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - fdt
    - intr
    - num_irq
    argTypes:
    - libxl__gc*
    - void*
    - gic_interrupt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 394
    functionName: fdt_property_interrupts
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_cell
    - fdt_property
    linkageType: ''
    returnType: int
    signature: "int fdt_property_interrupts(libxl__gc *gc, void *fdt,\n                                   gic_interrupt
      *intr,\n                                   unsigned num_irq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_arm.c:407,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:409,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:410,1
    - Dst: set_range
      Src: /src/xen/tools/libs/light/libxl_arm.c:411,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_arm.c:413,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - gc
    - fdt
    - addr_cells
    - size_cells
    - num_regs
    argTypes:
    - libxl__gc*
    - void*
    - unsigned
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 416
    functionName: fdt_property_regs
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - set_range
    - fdt_property
    - va_end
    linkageType: ''
    returnType: int
    signature: "int fdt_property_regs(libxl__gc *gc, void *fdt,\n                             unsigned
      addr_cells,\n                             unsigned size_cells,\n                             unsigned
      num_regs, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_range
      Src: /src/xen/tools/libs/light/libxl_arm.c:428,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - gc
    - fdt
    - addr_cells
    - size_cells
    - num_regs
    argTypes:
    - libxl__gc*
    - void*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: fdt_property_reg_placeholder
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - set_range
    - fdt_property
    linkageType: ''
    returnType: int
    signature: "int fdt_property_reg_placeholder(libxl__gc *gc, void *fdt,\n                                        unsigned
      int addr_cells,\n                                        unsigned int size_cells,\n
      \                                       unsigned int num_regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_arm.c:443,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:445,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:446,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_arm.c:448,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - gc
    - fdt
    - name
    - num_cells
    argTypes:
    - libxl__gc*
    - void*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 451
    functionName: fdt_property_values
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - set_cell
    - fdt_property
    - va_end
    linkageType: ''
    returnType: int
    signature: "int fdt_property_values(libxl__gc *gc, void *fdt,\n                               const
      char *name,\n                               unsigned num_cells, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/light/libxl_arm.c:464,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:467,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:468,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:471,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:472,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:475,1
    - Dst: va_arg
      Src: /src/xen/tools/libs/light/libxl_arm.c:478,1
    - Dst: set_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:479,1
    - Dst: va_end
      Src: /src/xen/tools/libs/light/libxl_arm.c:481,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - gc
    - fdt
    - addr_cells
    - size_cells
    - num_regs
    argTypes:
    - libxl__gc*
    - void*
    - unsigned
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 484
    functionName: fdt_property_vpci_ranges
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - set_cell
    - fdt_property
    - va_end
    linkageType: ''
    returnType: int
    signature: "int fdt_property_vpci_ranges(libxl__gc *gc, void *fdt,\n                                    unsigned
      addr_cells,\n                                    unsigned size_cells,\n                                    unsigned
      num_regs, ...)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:492,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:492,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:497,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:498,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:504,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:507,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - gc
    - vers
    - fdt
    argTypes:
    - libxl__gc*
    - libxl_version_info*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 5
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: make_root_properties
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_cell
    - fdt_property_string
    - fdt_property_compat
    - GCSPRINTF
    linkageType: ''
    returnType: int
    signature: "int make_root_properties(libxl__gc *gc,\n                                const
      libxl_version_info *vers,\n                                void *fdt)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:526,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:530,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:531,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:537,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:538,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:540,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:544,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:546,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:548,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:551,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:555,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:559,1
    - Dst: libxl__random_bytes
      Src: /src/xen/tools/libs/light/libxl_arm.c:563,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:565,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - gc
    - fdt
    - ramdisk
    - state
    - info
    argTypes:
    - libxl__gc*
    - void*
    - bool
    - libxl__domain_build_state*
    - libxl_domain_build_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 572
    functionName: make_chosen_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - libxl_defbool_val
    - GCSPRINTF
    - libxl__random_bytes
    - fdt_property_regs
    - fdt_property_string
    - fdt_property_compat
    - fdt_property
    - fdt_end_node
    - LOG
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_chosen_node(libxl__gc *gc, void *fdt, bool ramdisk,\n                            libxl__domain_build_state
      *state,\n                            const libxl_domain_build_info *info)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:580,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:583,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:586,1
    - Dst: libxl__compute_mpdir
      Src: /src/xen/tools/libs/light/libxl_arm.c:592,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:593,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:595,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:598,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:601,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:604,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:607,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:610,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:614,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - gc
    - fdt
    - nr_cpus
    - ainfo
    argTypes:
    - libxl__gc*
    - void*
    - int
    - struct arch_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 574
    functionDepth: 5
    functionLinenumber: 574
    functionLinenumberEnd: 618
    functionName: make_cpus_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_property_regs
    - fdt_property_string
    - fdt_property_cell
    - fdt_property_compat
    - libxl__compute_mpdir
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_cpus_node(libxl__gc *gc, void *fdt, int nr_cpus,\n                          const
      struct arch_info *ainfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:624,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:627,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:631,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:634,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:637,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 644
    functionName: make_psci_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_string
    - fdt_property_cell
    - fdt_property_compat
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_psci_node(libxl__gc *gc, void *fdt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:649,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:651,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:654,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:657,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:660,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:663,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 5
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: make_optee_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_string
    - fdt_property_compat
    - fdt_end_node
    - LOG
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_optee_node(libxl__gc *gc, void *fdt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:680,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:682,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:684,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:687,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:690,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - fdt
    - dom
    argTypes:
    - libxl__gc*
    - void*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 699
    functionName: make_memory_nodes
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_property_regs
    - fdt_property_string
    - fdt_end_node
    - LOG
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_memory_nodes(libxl__gc *gc, void *fdt,\n                             const
      struct xc_dom_image *dom)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:706,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:708,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:711,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:717,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:720,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:723,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:726,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:732,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:735,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - gc
    - fdt
    - gicd_base
    - gicd_size
    - gicc_base
    - gicc_size
    argTypes:
    - libxl__gc*
    - void*
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 701
    functionDepth: 5
    functionLinenumber: 701
    functionLinenumberEnd: 742
    functionName: make_gicv2_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_property_regs
    - fdt_property_cell
    - fdt_property_compat
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_gicv2_node(libxl__gc *gc, void *fdt,\n                           uint64_t
      gicd_base, uint64_t gicd_size,\n                           uint64_t gicc_base,
      uint64_t gicc_size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:751,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:753,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:756,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:759,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:762,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:765,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:768,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:774,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:777,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 744
    functionDepth: 5
    functionLinenumber: 744
    functionLinenumberEnd: 784
    functionName: make_gicv3_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_property_regs
    - fdt_property_cell
    - fdt_property_compat
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_gicv3_node(libxl__gc *gc, void *fdt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:793,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:796,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:799,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:800,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:801,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/tools/libs/light/libxl_arm.c:803,1
    - Dst: fdt_property_u32
      Src: /src/xen/tools/libs/light/libxl_arm.c:807,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - gc
    - fdt
    - ainfo
    - frequency
    argTypes:
    - libxl__gc*
    - void*
    - struct arch_info*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 786
    functionDepth: 5
    functionLinenumber: 786
    functionLinenumberEnd: 813
    functionName: make_timer_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - set_interrupt
    - fdt_property_u32
    - fdt_property_compat
    - fdt_property_interrupts
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_timer_node(libxl__gc *gc, void *fdt,\n                           const
      struct arch_info *ainfo,\n                           uint32_t frequency)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:824,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:827,1
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:828,1
    - Dst: fdt_property_reg_placeholder
      Src: /src/xen/tools/libs/light/libxl_arm.c:838,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:848,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/tools/libs/light/libxl_arm.c:850,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:853,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - gc
    - fdt
    - vers
    argTypes:
    - libxl__gc*
    - void*
    - libxl_version_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 817
    functionDepth: 5
    functionLinenumber: 817
    functionLinenumberEnd: 857
    functionName: make_hypervisor_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - set_interrupt
    - fdt_property_reg_placeholder
    - fdt_property_compat
    - fdt_property_interrupts
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_hypervisor_node(libxl__gc *gc, void *fdt,\n                                const
      libxl_version_info *vers)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:866,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:869,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:872,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:877,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/tools/libs/light/libxl_arm.c:879,1
    - Dst: fdt_property_u32
      Src: /src/xen/tools/libs/light/libxl_arm.c:883,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:885,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - gc
    - fdt
    - ainfo
    - dom
    argTypes:
    - libxl__gc*
    - void*
    - struct arch_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 859
    functionDepth: 5
    functionLinenumber: 859
    functionLinenumberEnd: 889
    functionName: make_vpl011_uart_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_regs
    - set_interrupt
    - fdt_property_u32
    - fdt_property_compat
    - fdt_property_interrupts
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_vpl011_uart_node(libxl__gc *gc, void *fdt,\n                                 const
      struct arch_info *ainfo,\n                                 struct xc_dom_image
      *dom)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:898,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:900,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:903,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:906,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:909,1
    - Dst: fdt_property_values
      Src: /src/xen/tools/libs/light/libxl_arm.c:913,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:916,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:919,1
    - Dst: fdt_property_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:922,1
    - Dst: fdt_property_vpci_ranges
      Src: /src/xen/tools/libs/light/libxl_arm.c:925,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:932,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - gc
    - fdt
    - ainfo
    - dom
    argTypes:
    - libxl__gc*
    - void*
    - struct arch_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 891
    functionDepth: 5
    functionLinenumber: 891
    functionLinenumberEnd: 936
    functionName: make_vpci_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_property_regs
    - fdt_property_string
    - fdt_property_cell
    - fdt_property_compat
    - fdt_property_vpci_ranges
    - fdt_end_node
    - fdt_property_values
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_vpci_node(libxl__gc *gc, void *fdt,\n                          const
      struct arch_info *ainfo,\n                          struct xc_dom_image *dom)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:943,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:946,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:949,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:952,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:955,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 959
    functionName: make_xen_iommu_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_cell
    - fdt_property_compat
    - fdt_begin_node
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: int make_xen_iommu_node(libxl__gc *gc, void *fdt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:968,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:970,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:973,1
    - Dst: fdt_property_regs
      Src: /src/xen/tools/libs/light/libxl_arm.c:976,1
    - Dst: set_interrupt
      Src: /src/xen/tools/libs/light/libxl_arm.c:980,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/tools/libs/light/libxl_arm.c:981,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:984,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/tools/libs/light/libxl_arm.c:990,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/tools/libs/light/libxl_arm.c:991,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:993,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - gc
    - fdt
    - base
    - irq
    - backend_domid
    - grant_usage
    argTypes:
    - libxl__gc*
    - void*
    - uint64_t
    - uint32_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 998
    functionName: make_virtio_mmio_node_common
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - cpu_to_fdt32
    - fdt_property_regs
    - set_interrupt
    - fdt_property_compat
    - fdt_property_interrupts
    - fdt_property
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_virtio_mmio_node_common(libxl__gc *gc, void *fdt, uint64_t
      base,\n                                        uint32_t irq, uint32_t backend_domid,\n
      \                                       bool grant_usage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_virtio_mmio_node_common
      Src: /src/xen/tools/libs/light/libxl_arm.c:1006,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - gc
    - fdt
    - base
    - irq
    - backend_domid
    - grant_usage
    argTypes:
    - libxl__gc*
    - void*
    - uint64_t
    - uint32_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1000
    functionDepth: 6
    functionLinenumber: 1000
    functionLinenumberEnd: 1010
    functionName: make_virtio_mmio_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_end_node
    - make_virtio_mmio_node_common
    linkageType: ''
    returnType: int
    signature: "int make_virtio_mmio_node(libxl__gc *gc, void *fdt, uint64_t base,\n
      \                                uint32_t irq, uint32_t backend_domid,\n                                 bool
      grant_usage)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1021,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:1024,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1017
    functionDepth: 5
    functionLinenumber: 1017
    functionLinenumberEnd: 1028
    functionName: make_virtio_mmio_node_i2c
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_end_node
    - fdt_property_compat
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_virtio_mmio_node_i2c(libxl__gc *gc, void *fdt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1039,1
    - Dst: fdt_property_compat
      Src: /src/xen/tools/libs/light/libxl_arm.c:1042,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:1045,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:1048,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:1051,1
    - Dst: fdt_property_cell
      Src: /src/xen/tools/libs/light/libxl_arm.c:1054,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1035
    functionDepth: 5
    functionLinenumber: 1035
    functionLinenumberEnd: 1058
    functionName: make_virtio_mmio_node_gpio
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_property_cell
    - fdt_property_compat
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_virtio_mmio_node_gpio(libxl__gc *gc, void *fdt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: make_virtio_mmio_node_common
      Src: /src/xen/tools/libs/light/libxl_arm.c:1066,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1070,1
    - Dst: make_virtio_mmio_node_i2c
      Src: /src/xen/tools/libs/light/libxl_arm.c:1071,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1073,1
    - Dst: make_virtio_mmio_node_gpio
      Src: /src/xen/tools/libs/light/libxl_arm.c:1074,1
    - Dst: strncmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1079,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1081,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1086,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 7
    argNames:
    - gc
    - fdt
    - base
    - irq
    - type
    - backend_domid
    - grant_usage
    argTypes:
    - libxl__gc*
    - void*
    - uint64_t
    - uint32_t
    - char*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1060
    functionDepth: 6
    functionLinenumber: 1060
    functionLinenumberEnd: 1087
    functionName: make_virtio_mmio_node_device
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - make_virtio_mmio_node_i2c
    - LOG
    - make_virtio_mmio_node_gpio
    - strncmp
    - fdt_end_node
    - strcmp
    - make_virtio_mmio_node_common
    linkageType: ''
    returnType: int
    signature: "int make_virtio_mmio_node_device(libxl__gc *gc, void *fdt, uint64_t
      base,\n                                        uint32_t irq, const char *type,\n
      \                                       uint32_t backend_domid, bool grant_usage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/light/libxl_arm.c:1094,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1096,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - dom
    argTypes:
    - libxl__gc*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1101
    functionName: get_arch_info
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - LOG
    - strcmp
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct arch_info
    signature: "struct arch_info *get_arch_info(libxl__gc *gc,\n                                             const
      struct xc_dom_image *dom)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/libs/light/libxl_arm.c:1107,1
    - Dst: open
      Src: /src/xen/tools/libs/light/libxl_arm.c:1111,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_arm.c:1113,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/libs/light/libxl_arm.c:1117,1
    - Dst: fdt_totalsize
      Src: /src/xen/tools/libs/light/libxl_arm.c:1117,1
    - Dst: close
      Src: /src/xen/tools/libs/light/libxl_arm.c:1122,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_arm.c:1123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - gc
    - fdt
    argTypes:
    - libxl__gc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1125
    functionName: debug_dump_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - fdt_totalsize
    - LOGE
    - getenv
    - libxl_write_exactly
    linkageType: ''
    returnType: void
    signature: void debug_dump_fdt(libxl__gc *gc, void *fdt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_magic
      Src: /src/xen/tools/libs/light/libxl_arm.c:1133,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1134,1
    - Dst: fdt_check_header
      Src: /src/xen/tools/libs/light/libxl_arm.c:1138,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1140,1
    - Dst: fdt_totalsize
      Src: /src/xen/tools/libs/light/libxl_arm.c:1144,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - gc
    - fdt
    - size
    argTypes:
    - libxl__gc*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1150
    functionName: check_partial_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt_check_header
    - LOG
    - fdt_magic
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_first_property_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1158,1
    - Dst: fdt_next_property_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1160,1
    - Dst: fdt_get_property_by_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1162,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/tools/libs/light/libxl_arm.c:1166,1
    - Dst: fdt_property
      Src: /src/xen/tools/libs/light/libxl_arm.c:1167,1
    - Dst: fdt_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:1167,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/tools/libs/light/libxl_arm.c:1168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - gc
    - fdt
    - pfdt
    - nodeoff
    argTypes:
    - libxl__gc*
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1174
    functionName: copy_properties
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - fdt32_to_cpu
    - fdt_first_property_offset
    - fdt_string
    - fdt_get_property_by_offset
    - fdt_next_property_offset
    - fdt_property
    linkageType: ''
    returnType: int
    signature: "int copy_properties(libxl__gc *gc, void *fdt, void *pfdt,\n                           int
      nodeoff)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1182,1
    - Dst: fdt_get_name
      Src: /src/xen/tools/libs/light/libxl_arm.c:1182,1
    - Dst: copy_properties
      Src: /src/xen/tools/libs/light/libxl_arm.c:1185,1
    - Dst: fdt_first_subnode
      Src: /src/xen/tools/libs/light/libxl_arm.c:1188,1
    - Dst: fdt_next_subnode
      Src: /src/xen/tools/libs/light/libxl_arm.c:1190,1
    - Dst: copy_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1191,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - gc
    - fdt
    - pfdt
    - nodeoff
    - depth
    argTypes:
    - libxl__gc*
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1202
    functionName: copy_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - copy_properties
    - copy_node
    - fdt_get_name
    - fdt_next_subnode
    - fdt_end_node
    - fdt_first_subnode
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int copy_node(libxl__gc *gc, void *fdt, void *pfdt,\n                     int
      nodeoff, int depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/libs/light/libxl_arm.c:1208,1
    - Dst: fdt_path_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1220,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1224,1
    - Dst: fdt_get_name
      Src: /src/xen/tools/libs/light/libxl_arm.c:1224,1
    - Dst: copy_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - gc
    - path
    - fdt
    - pfdt
    argTypes:
    - libxl__gc*
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1204
    functionDepth: 3
    functionLinenumber: 1204
    functionLinenumberEnd: 1231
    functionName: copy_node_by_path
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - copy_node
    - fdt_get_name
    - strrchr
    - fdt_path_offset
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int copy_node_by_path(libxl__gc *gc, const char *path,\n                             void
      *fdt, void *pfdt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_node_by_path
      Src: /src/xen/tools/libs/light/libxl_arm.c:1243,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1245,1
    - Dst: copy_node_by_path
      Src: /src/xen/tools/libs/light/libxl_arm.c:1249,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - gc
    - fdt
    - pfdt
    argTypes:
    - libxl__gc*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1239
    functionDepth: 4
    functionLinenumber: 1239
    functionLinenumberEnd: 1256
    functionName: copy_partial_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - LOG
    - copy_node_by_path
    linkageType: ''
    returnType: int
    signature: int copy_partial_fdt(libxl__gc *gc, void *fdt, void *pfdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gc
    - fdt
    - size
    argTypes:
    - libxl__gc*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1265
    functionName: check_partial_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: int
    signature: int check_partial_fdt(libxl__gc *gc, void *fdt, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - fdt
    - pfdt
    argTypes:
    - libxl__gc*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1274
    functionName: copy_partial_fdt
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int copy_partial_fdt(libxl__gc *gc, void *fdt, void *pfdt)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_version_info
      Src: /src/xen/tools/libs/light/libxl_arm.c:1296,1
    - Dst: get_arch_info
      Src: /src/xen/tools/libs/light/libxl_arm.c:1299,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1302,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1304,1
    - Dst: gicv_to_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:1305,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1308,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/libs/light/libxl_arm.c:1310,1
    - Dst: LOGEV
      Src: /src/xen/tools/libs/light/libxl_arm.c:1313,1
    - Dst: libxl__ptr_add
      Src: /src/xen/tools/libs/light/libxl_arm.c:1317,1
    - Dst: check_partial_fdt
      Src: /src/xen/tools/libs/light/libxl_arm.c:1319,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1350,1
    - Dst: libxl__realloc
      Src: /src/xen/tools/libs/light/libxl_arm.c:1355,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1357,1
    - Dst: fdt_create
      Src: /src/xen/tools/libs/light/libxl_arm.c:1357,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1359,1
    - Dst: fdt_finish_reservemap
      Src: /src/xen/tools/libs/light/libxl_arm.c:1359,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1361,1
    - Dst: fdt_begin_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1361,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1363,1
    - Dst: make_root_properties
      Src: /src/xen/tools/libs/light/libxl_arm.c:1363,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1364,1
    - Dst: make_chosen_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1364,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1365,1
    - Dst: make_cpus_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1365,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1366,1
    - Dst: make_psci_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1366,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1368,1
    - Dst: make_memory_nodes
      Src: /src/xen/tools/libs/light/libxl_arm.c:1368,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1372,1
    - Dst: make_gicv2_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1372,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1377,1
    - Dst: make_gicv3_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1377,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1380,1
    - Dst: gicv_to_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:1381,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1386,1
    - Dst: make_timer_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1386,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1387,1
    - Dst: make_hypervisor_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1387,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1390,1
    - Dst: make_vpl011_uart_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1390,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1393,1
    - Dst: make_optee_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1393,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1396,1
    - Dst: make_vpci_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1396,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:1402,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1405,1
    - Dst: make_virtio_mmio_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1405,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:1407,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:1417,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1420,1
    - Dst: make_virtio_mmio_node_device
      Src: /src/xen/tools/libs/light/libxl_arm.c:1420,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:1423,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1431,1
    - Dst: make_xen_iommu_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1431,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1434,1
    - Dst: copy_partial_fdt
      Src: /src/xen/tools/libs/light/libxl_arm.c:1434,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1436,1
    - Dst: fdt_end_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1436,1
    - Dst: FDT
      Src: /src/xen/tools/libs/light/libxl_arm.c:1438,1
    - Dst: fdt_finish
      Src: /src/xen/tools/libs/light/libxl_arm.c:1438,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1443,1
    - Dst: fdt_totalsize
      Src: /src/xen/tools/libs/light/libxl_arm.c:1443,1
    - Dst: xc_dom_devicetree_mem
      Src: /src/xen/tools/libs/light/libxl_arm.c:1445,1
    - Dst: fdt_totalsize
      Src: /src/xen/tools/libs/light/libxl_arm.c:1445,1
    - Dst: LOGE
      Src: /src/xen/tools/libs/light/libxl_arm.c:1447,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1280
    functionDepth: 7
    functionLinenumber: 1280
    functionLinenumberEnd: 1456
    functionName: libxl__prepare_dtb
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - xc_dom_devicetree_mem
    - libxl_get_version_info
    - make_vpl011_uart_node
    - fdt_totalsize
    - make_hypervisor_node
    - fdt_end_node
    - fdt_begin_node
    - libxl_defbool_val
    - make_cpus_node
    - get_arch_info
    - fdt_finish
    - make_virtio_mmio_node_device
    - LOGEV
    - make_virtio_mmio_node
    - libxl__ptr_add
    - LOGE
    - make_gicv3_node
    - libxl__realloc
    - make_gicv2_node
    - make_xen_iommu_node
    - libxl_read_file_contents
    - fdt_finish_reservemap
    - check_partial_fdt
    - gicv_to_string
    - make_chosen_node
    - LOG
    - make_vpci_node
    - make_optee_node
    - copy_partial_fdt
    - make_timer_node
    - make_psci_node
    - make_memory_nodes
    - fdt_create
    - make_root_properties
    - FDT
    linkageType: ''
    returnType: int
    signature: "int libxl__prepare_dtb(libxl__gc *gc, libxl_domain_config *d_config,\n
      \                             libxl__domain_build_state *state,\n                              struct
      xc_dom_image *dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1345
    functionName: FDT
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT( call )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1468,1
    - Dst: libxl_domain_type_to_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:1469,1
    - Dst: MASK_INSR
      Src: /src/xen/tools/libs/light/libxl_arm.c:1474,1
    - Dst: MASK_INSR
      Src: /src/xen/tools/libs/light/libxl_arm.c:1477,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/light/libxl_arm.c:1480,1
    - Dst: libxl__prepare_dtb
      Src: /src/xen/tools/libs/light/libxl_arm.c:1485,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/libs/light/libxl_arm.c:1488,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1489,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/light/libxl_arm.c:1494,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1496,1
    - Dst: libxl__prepare_acpi
      Src: /src/xen/tools/libs/light/libxl_arm.c:1501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - gc
    - d_config
    - state
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl__domain_build_state*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1458
    functionDepth: 8
    functionLinenumber: 1458
    functionLinenumberEnd: 1505
    functionName: libxl__arch_domain_init_hw_description
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - xc_hvm_param_set
    - libxl_defbool_val
    - MASK_INSR
    - libxl__prepare_acpi
    - strcmp
    - libxl_domain_type_to_string
    - libxl__prepare_dtb
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_init_hw_description(libxl__gc *gc,\n                                           libxl_domain_config
      *d_config,\n                                           libxl__domain_build_state
      *state,\n                                           struct xc_dom_image *dom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GCSPRINTF
      Src: /src/xen/tools/libs/light/libxl_arm.c:1511,1
    - Dst: fdt_path_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1513,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:1514,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1517,1
    - Dst: fdt_nop_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1518,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1523,1
    - Dst: set_range
      Src: /src/xen/tools/libs/light/libxl_arm.c:1525,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/tools/libs/light/libxl_arm.c:1527,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:1528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - gc
    - fdt
    - uname
    - base
    - size
    argTypes:
    - libxl__gc*
    - void*
    - char*
    - uint64_t
    - uint64_t
    assertStmts:
    - condition: (node > 0)
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    - condition: (!res)
      pos:
        line_end: 1527
        line_start: 1527
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    constantsTouched: []
    func_position:
      end: 1530
      start: 1507
    functionDepth: 3
    functionLinenumber: 1507
    functionLinenumberEnd: 1530
    functionName: finalise_one_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - GCSPRINTF
    - fdt_nop_node
    - set_range
    - fdt_setprop_inplace
    - fdt_path_offset
    - LOG
    - assert
    linkageType: ''
    returnType: void
    signature: "void finalise_one_node(libxl__gc *gc, void *fdt, const char *uname,\n
      \                             uint64_t base, uint64_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1533
    functionName: ALIGN_UP_TO_2MB
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_UP_TO_2MB(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1545
    functionName: compare_iomem
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_iomem(const void *a, const void *b)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1562,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/libs/light/libxl_arm.c:1566,1
    - Dst: qsort
      Src: /src/xen/tools/libs/light/libxl_arm.c:1573,1
    - Dst: ALIGN_UP_TO_2MB
      Src: /src/xen/tools/libs/light/libxl_arm.c:1590,1
    - Dst: min
      Src: /src/xen/tools/libs/light/libxl_arm.c:1593,1
    - Dst: set_range
      Src: /src/xen/tools/libs/light/libxl_arm.c:1655,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1659,1
    - Dst: set_range
      Src: /src/xen/tools/libs/light/libxl_arm.c:1662,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1667,1
    - Dst: fdt_setprop
      Src: /src/xen/tools/libs/light/libxl_arm.c:1672,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 3
    argNames:
    - gc
    - b_info
    - dom
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1547
    functionDepth: 3
    functionLinenumber: 1547
    functionLinenumberEnd: 1673
    functionName: finalize_hypervisor_node
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 0
    functionsReached:
    - libxl_domain_info
    - ALIGN_UP_TO_2MB
    - set_range
    - qsort
    - fdt_setprop
    - min
    - fdt_path_offset
    - LOG
    linkageType: ''
    returnType: int
    signature: "int finalize_hypervisor_node(libxl__gc *gc,\n                                    libxl_domain_build_info
      *b_info,\n                                    struct xc_dom_image *dom)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1696,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:1697,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1699,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/tools/libs/light/libxl_arm.c:1703,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/tools/libs/light/libxl_arm.c:1704,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:1706,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/tools/libs/light/libxl_arm.c:1708,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/tools/libs/light/libxl_arm.c:1709,1
    - Dst: assert
      Src: /src/xen/tools/libs/light/libxl_arm.c:1711,1
    - Dst: finalize_hypervisor_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1715,1
    - Dst: finalise_one_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1722,1
    - Dst: finalise_one_node
      Src: /src/xen/tools/libs/light/libxl_arm.c:1726,1
    - Dst: debug_dump_fdt
      Src: /src/xen/tools/libs/light/libxl_arm.c:1730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - dom
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - struct xc_dom_image*
    assertStmts:
    - condition: (chosen > 0)
      pos:
        line_end: 1696
        line_start: 1696
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    - condition: (!res)
      pos:
        line_end: 1705
        line_start: 1705
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    - condition: (!res)
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    constantsTouched: []
    func_position:
      end: 1733
      start: 1675
    functionDepth: 4
    functionLinenumber: 1675
    functionLinenumberEnd: 1733
    functionName: libxl__arch_domain_finalise_hw_description
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - debug_dump_fdt
    - fdt_setprop_inplace
    - finalise_one_node
    - finalize_hypervisor_node
    - fdt_path_offset
    - LOG
    - cpu_to_fdt64
    - assert
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_finalise_hw_description(libxl__gc *gc,\n                                               uint32_t
      domid,\n                                               libxl_domain_config *d_config,\n
      \                                              struct xc_dom_image *dom)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_vuart_init
      Src: /src/xen/tools/libs/light/libxl_arm.c:1747,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - gc
    - info
    - dom
    - state
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - struct xc_dom_image*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1735
    functionDepth: 1
    functionLinenumber: 1735
    functionLinenumberEnd: 1760
    functionName: libxl__arch_build_dom_finish
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - LOG
    - xc_dom_vuart_init
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_build_dom_finish(libxl__gc *gc,\n                                 libxl_domain_build_info
      *info,\n                                 struct xc_dom_image *dom,\n                                 libxl__domain_build_state
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl__vnuma_build_vmemrange_pv_generic
      Src: /src/xen/tools/libs/light/libxl_arm.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gc
    - domid
    - info
    - state
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_build_info*
    - libxl__domain_build_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1762
    functionDepth: 2
    functionLinenumber: 1762
    functionLinenumberEnd: 1768
    functionName: libxl__arch_vnuma_build_vmemrange
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - libxl__vnuma_build_vmemrange_pv_generic
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_vnuma_build_vmemrange(libxl__gc *gc,\n                                      uint32_t
      domid,\n                                      libxl_domain_build_info *info,\n
      \                                     libxl__domain_build_state *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_bind_pt_spi_irq
      Src: /src/xen/tools/libs/light/libxl_arm.c:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - domid
    - irq
    argTypes:
    - libxl__gc*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1773
    functionName: libxl__arch_domain_map_irq
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - xc_domain_bind_pt_spi_irq
    linkageType: ''
    returnType: int
    signature: int libxl__arch_domain_map_irq(libxl__gc *gc, uint32_t domid, int irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1784,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1785,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - gc
    - c_info
    argTypes:
    - libxl__gc*
    - libxl_domain_create_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1791
    functionName: libxl__arch_domain_create_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - LOG
    linkageType: ''
    returnType: void
    signature: "void libxl__arch_domain_create_info_setdefault(libxl__gc *gc,\n                                               libxl_domain_create_info
      *c_info)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_arm.c:1798,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/libs/light/libxl_arm.c:1801,1
    - Dst: arch_capabilities_arm_sve
      Src: /src/xen/tools/libs/light/libxl_arm.c:1806,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1809,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1816,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1821,1
    - Dst: LOG
      Src: /src/xen/tools/libs/light/libxl_arm.c:1831,1
    - Dst: memset
      Src: /src/xen/tools/libs/light/libxl_arm.c:1834,1
    - Dst: libxl_domain_build_info_init_type
      Src: /src/xen/tools/libs/light/libxl_arm.c:1836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - gc
    - b_info
    - physinfo
    argTypes:
    - libxl__gc*
    - libxl_domain_build_info*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1839
    functionName: libxl__arch_domain_build_info_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - libxl_defbool_setdefault
    - arch_capabilities_arm_sve
    - libxl_domain_build_info_init_type
    - memset
    - LOG
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_domain_build_info_setdefault(libxl__gc *gc,\n                                             libxl_domain_build_info
      *b_info,\n                                             const libxl_physinfo
      *physinfo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOGD
      Src: /src/xen/tools/libs/light/libxl_arm.c:1859,1
    - Dst: libxl_passthrough_to_string
      Src: /src/xen/tools/libs/light/libxl_arm.c:1861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - gc
    - domid
    - d_config
    - physinfo
    argTypes:
    - libxl__gc*
    - uint32_t
    - libxl_domain_config*
    - libxl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1869
    functionName: libxl__arch_passthrough_mode_setdefault
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached:
    - LOGD
    - libxl_passthrough_to_string
    linkageType: ''
    returnType: int
    signature: "int libxl__arch_passthrough_mode_setdefault(libxl__gc *gc,\n                                            uint32_t
      domid,\n                                            libxl_domain_config *d_config,\n
      \                                           const libxl_physinfo *physinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - gc
    - dst
    - src
    argTypes:
    - libxl__gc*
    - libxl_domain_config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1871
    functionDepth: 0
    functionLinenumber: 1871
    functionLinenumberEnd: 1875
    functionName: libxl__arch_update_domain_config
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl__arch_update_domain_config(libxl__gc *gc,\n                                      libxl_domain_config
      *dst,\n                                      const libxl_domain_config *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - sbdf
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1880
    functionName: libxl__arch_hvm_map_gsi
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__arch_hvm_map_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t
      domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gc
    - sbdf
    - domid
    argTypes:
    - libxl__gc*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1882
    functionDepth: 0
    functionLinenumber: 1882
    functionLinenumberEnd: 1885
    functionName: libxl__arch_hvm_unmap_gsi
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl__arch_hvm_unmap_gsi(libxl__gc *gc, uint32_t sbdf, uint32_t
      domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gc
    argTypes:
    - libxl__gc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1890
    functionName: libxl__arch_local_domain_has_pirq_notion
    functionSourceFile: /src/xen/tools/libs/light/libxl_arm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool libxl__arch_local_domain_has_pirq_notion(libxl__gc *gc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: mutex_lock
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_lock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: mutex_unlock
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_unlock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: condvar_signal
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: condvar_signal(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: condvar_wait
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: condvar_wait(c, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: cleanup_push
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_push(f, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - run
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: cleanup_pop
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_pop(run)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: read_thread_exists
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_thread_exists(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: cleanup_push_heap
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_push_heap(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - run
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: cleanup_pop_heap
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_pop_heap(run, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: mutex_lock
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_lock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: mutex_unlock
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_unlock(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: condvar_signal
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: condvar_signal(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: condvar_wait
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: condvar_wait(c, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: cleanup_push
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_push(f, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - run
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: cleanup_pop
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_pop(run)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: read_thread_exists
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_thread_exists(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: cleanup_push_heap
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_push_heap(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - run
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: cleanup_pop_heap
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cleanup_pop_heap(run, p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/libs/store/xs.c:169,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/store/xs.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - nonblock
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 183
    functionName: setnonblock
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: bool
    signature: bool setnonblock(int fd, int nonblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/libs/store/xs.c:187,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/store/xs.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: set_cloexec
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 10
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: bool
    signature: bool set_cloexec(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/xen/tools/libs/store/xs.c:198,1
    - Dst: pipe
      Src: /src/xen/tools/libs/store/xs.c:200,1
    - Dst: set_cloexec
      Src: /src/xen/tools/libs/store/xs.c:203,1
    - Dst: set_cloexec
      Src: /src/xen/tools/libs/store/xs.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fds
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: pipe_cloexec
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - pipe2
    - pipe
    - set_cloexec
    linkageType: ''
    returnType: int
    signature: int pipe_cloexec(int fds[2])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:213,1
    - Dst: pipe_cloexec
      Src: /src/xen/tools/libs/store/xs.c:215,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:217,1
    - Dst: write
      Src: /src/xen/tools/libs/store/xs.c:218,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: xs_fileno
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 2
    functionsReached:
    - XEN_TAILQ_EMPTY
    - mutex_lock
    - pipe_cloexec
    - write
    - mutex_unlock
    linkageType: ''
    returnType: int
    signature: int xs_fileno(struct xs_handle *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/xen/tools/libs/store/xs.c:232,1
    - Dst: set_cloexec
      Src: /src/xen/tools/libs/store/xs.c:237,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:241,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/store/xs.c:245,1
    - Dst: connect
      Src: /src/xen/tools/libs/store/xs.c:247,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - connect_to
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 257
    functionName: get_socket
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - connect
    - socket
    - close
    - strcpy
    - set_cloexec
    - strlen
    linkageType: ''
    returnType: int
    signature: int get_socket(const char *connect_to)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/store/xs.c:263,1
    - Dst: set_cloexec
      Src: /src/xen/tools/libs/store/xs.c:268,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - connect_to
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 279
    functionName: get_dev
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - open
    - set_cloexec
    - close
    linkageType: ''
    returnType: int
    signature: int get_dev(const char *connect_to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/store/xs.c:283,1
    - Dst: xentoolcore__restrict_by_dup2_null
      Src: /src/xen/tools/libs/store/xs.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xentoolcore__restrict_by_dup2_null
    - CONTAINER_OF
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:294,1
    - Dst: memset
      Src: /src/xen/tools/libs/store/xs.c:298,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/store/xs.c:302,1
    - Dst: stat
      Src: /src/xen/tools/libs/store/xs.c:304,1
    - Dst: S_ISSOCK
      Src: /src/xen/tools/libs/store/xs.c:307,1
    - Dst: get_socket
      Src: /src/xen/tools/libs/store/xs.c:310,1
    - Dst: get_dev
      Src: /src/xen/tools/libs/store/xs.c:312,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/store/xs.c:317,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/libs/store/xs.c:318,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/libs/store/xs.c:326,1
    - Dst: pthread_cond_init
      Src: /src/xen/tools/libs/store/xs.c:327,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/libs/store/xs.c:329,1
    - Dst: pthread_cond_init
      Src: /src/xen/tools/libs/store/xs.c:330,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/libs/store/xs.c:332,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/store/xs.c:341,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:343,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:345,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - connect_to
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 349
    functionName: get_handle
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_INIT
    - xentoolcore__deregister_active_handle
    - free
    - S_ISSOCK
    - stat
    - malloc
    - close
    - get_dev
    - pthread_mutex_init
    - pthread_cond_init
    - memset
    - get_socket
    - xentoolcore__register_active_handle
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *get_handle(const char *connect_to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/libs/store/xs.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: xs_daemon_open
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_open
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *xs_daemon_open(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/libs/store/xs.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: xs_daemon_open_readonly
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_open
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *xs_daemon_open_readonly(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/libs/store/xs.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: xs_domain_open
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_open
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *xs_domain_open(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/libs/store/xs.c:368,1
    - Dst: access
      Src: /src/xen/tools/libs/store/xs.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: xs_domain_dev
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - access
    - getenv
    linkageType: ''
    returnType: char
    signature: char *xs_domain_dev(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_handle
      Src: /src/xen/tools/libs/store/xs.c:392,1
    - Dst: xs_daemon_socket
      Src: /src/xen/tools/libs/store/xs.c:392,1
    - Dst: get_handle
      Src: /src/xen/tools/libs/store/xs.c:395,1
    - Dst: xs_domain_dev
      Src: /src/xen/tools/libs/store/xs.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: xs_open
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 7
    functionsReached:
    - xs_domain_dev
    - get_handle
    - xs_daemon_socket
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *xs_open(unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/store/xs.c:407,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:408,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:409,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/store/xs.c:412,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:413,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 416
    functionName: close_free_msgs
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    - XEN_TAILQ_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void close_free_msgs(struct xs_handle *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:421,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:422,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/store/xs.c:425,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:426,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 429
    functionName: close_fds_free
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    - xentoolcore__deregister_active_handle
    - close
    linkageType: ''
    returnType: void
    signature: void close_fds_free(struct xs_handle *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_free_msgs
      Src: /src/xen/tools/libs/store/xs.c:433,1
    - Dst: close_fds_free
      Src: /src/xen/tools/libs/store/xs.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: xs_daemon_destroy_postfork
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - close_free_msgs
    - close_fds_free
    linkageType: ''
    returnType: void
    signature: void xs_daemon_destroy_postfork(struct xs_handle *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cancel
      Src: /src/xen/tools/libs/store/xs.c:441,1
    - Dst: pthread_join
      Src: /src/xen/tools/libs/store/xs.c:442,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:446,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:447,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:448,1
    - Dst: close_free_msgs
      Src: /src/xen/tools/libs/store/xs.c:450,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:452,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:453,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:454,1
    - Dst: close_fds_free
      Src: /src/xen/tools/libs/store/xs.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 457
    functionName: xs_daemon_close
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - mutex_lock
    - close_free_msgs
    - pthread_cancel
    - close_fds_free
    - mutex_unlock
    linkageType: ''
    returnType: void
    signature: void xs_daemon_close(struct xs_handle *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_daemon_close
      Src: /src/xen/tools/libs/store/xs.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - xsh
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: xs_close
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 3
    functionsReached:
    - xs_daemon_close
    linkageType: ''
    returnType: void
    signature: void xs_close(struct xs_handle *xsh)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: setnonblock
      Src: /src/xen/tools/libs/store/xs.c:472,1
    - Dst: read
      Src: /src/xen/tools/libs/store/xs.c:478,1
    - Dst: setnonblock
      Src: /src/xen/tools/libs/store/xs.c:494,1
    - Dst: setnonblock
      Src: /src/xen/tools/libs/store/xs.c:503,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - fd
    - data
    - len
    - nonblocking
    argTypes:
    - int
    - void*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 505
    functionName: read_all
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - read
    - setnonblock
    linkageType: ''
    returnType: bool
    signature: bool read_all(int fd, void *data, unsigned int len, int nonblocking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/store/xs.c:513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - data
    - len
    argTypes:
    - int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 523
    functionName: xs_write_all
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: bool
    signature: bool xs_write_all(int fd, const void *data, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/store/xs.c:529,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - errorstring
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: get_error
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - strcmp
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int get_error(const char *errorstring)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_thread_exists
      Src: /src/xen/tools/libs/store/xs.c:543,1
    - Dst: read_message
      Src: /src/xen/tools/libs/store/xs.c:546,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:549,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:551,1
    - Dst: condvar_wait
      Src: /src/xen/tools/libs/store/xs.c:552,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:554,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:555,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/store/xs.c:559,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/store/xs.c:560,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:561,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:561,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:562,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - h
    - type
    - len
    argTypes:
    - struct xs_handle*
    - enum xsd_sockmsg_type*
    - unsigned int*
    assertStmts:
    - condition: (XEN_TAILQ_EMPTY(&h->reply_list))
      pos:
        line_end: 560
        line_start: 560
        source_file: /src/xen/tools/libs/store/xs.c
    constantsTouched: []
    func_position:
      end: 572
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 572
    functionName: read_reply
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_EMPTY
    - mutex_lock
    - condvar_wait
    - mutex_unlock
    - free
    - XEN_TAILQ_REMOVE
    - assert
    - XEN_TAILQ_FIRST
    - read_thread_exists
    - read_message
    linkageType: ''
    returnType: void
    signature: "void *read_reply(\n\tstruct xs_handle *h, enum xsd_sockmsg_type *type,
      unsigned int *len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - p_iov
    - nr
    - res
    argTypes:
    - struct iovec**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 600
    functionName: update_iov
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t update_iov(struct iovec **p_iov, size_t nr, size_t res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sendmsg
      Src: /src/xen/tools/libs/store/xs.c:615,1
    - Dst: update_iov
      Src: /src/xen/tools/libs/store/xs.c:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - iov
    - nr
    argTypes:
    - int
    - struct iovec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 626
    functionName: sendmsg_exact
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - update_iov
    linkageType: ''
    returnType: bool
    signature: bool sendmsg_exact(int fd, struct iovec *iov, unsigned int nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writev
      Src: /src/xen/tools/libs/store/xs.c:636,1
    - Dst: update_iov
      Src: /src/xen/tools/libs/store/xs.c:643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - iov
    - nr
    argTypes:
    - int
    - struct iovec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: writev_exact
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - writev
    - update_iov
    linkageType: ''
    returnType: bool
    signature: bool writev_exact(int fd, struct iovec *iov, unsigned int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendmsg_exact
      Src: /src/xen/tools/libs/store/xs.c:652,1
    - Dst: writev_exact
      Src: /src/xen/tools/libs/store/xs.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - iov
    - nr
    argTypes:
    - struct xs_handle*
    - struct iovec*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 655
    functionName: write_request
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - sendmsg_exact
    - writev_exact
    linkageType: ''
    returnType: bool
    signature: bool write_request(struct xs_handle *h, struct iovec *iov, unsigned
      int nr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:677,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:678,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:691,1
    - Dst: write_request
      Src: /src/xen/tools/libs/store/xs.c:693,1
    - Dst: read_reply
      Src: /src/xen/tools/libs/store/xs.c:696,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:700,1
    - Dst: get_error
      Src: /src/xen/tools/libs/store/xs.c:703,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:704,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:710,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:719,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:721,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - h
    - iovec
    - num_vecs
    - len
    argTypes:
    - struct xs_handle*
    - struct iovec*
    - unsigned int
    - unsigned int*
    assertStmts:
    - condition: (num_vecs >= 1)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/xen/tools/libs/store/xs.c
    - condition: (iovec[0].iov_len == sizeof(*msg))
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/xen/tools/libs/store/xs.c
    constantsTouched: []
    func_position:
      end: 725
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 725
    functionName: xs_talkv
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - read_reply
    - write_request
    - get_error
    - mutex_lock
    - free
    - close
    - assert
    - mutex_unlock
    linkageType: ''
    returnType: void
    signature: "void *xs_talkv(struct xs_handle *h,\n\t\t      struct iovec *iovec,\n\t\t
      \     unsigned int num_vecs,\n\t\t      unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 733
    functionName: free_no_errno
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_no_errno(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:747,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:749,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - h
    - t
    - type
    - string
    - len
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - enum xsd_sockmsg_type
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 736
    functionDepth: 4
    functionLinenumber: 736
    functionLinenumberEnd: 750
    functionName: xs_single
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_talkv
    - strlen
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void *xs_single(struct xs_handle *h, xs_transaction_t t,\n\t\t       enum
      xsd_sockmsg_type type,\n\t\t       const char *string,\n\t\t       unsigned
      int *len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reply
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 758
    functionName: xs_bool
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: bool
    signature: bool xs_bool(char *reply)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/libs/store/xs.c:766,1
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:769,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:771,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/store/xs.c:774,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:775,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 781
    functionName: xs_directory_common
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free_no_errno
    - malloc
    - xenstore_count_strings
    - strlen
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char **xs_directory_common(char *strings, unsigned int len,\n\t\t\t\t
      \ unsigned int *num)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/store/xs.c:792,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:795,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:800,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:802,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:804,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:804,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/store/xs.c:814,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:815,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:816,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/store/xs.c:822,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:824,1
    - Dst: realloc
      Src: /src/xen/tools/libs/store/xs.c:825,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/store/xs.c:826,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:826,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:827,1
    - Dst: xs_directory_common
      Src: /src/xen/tools/libs/store/xs.c:837,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 838
    functionName: xs_directory_part
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_directory_common
    - ARRAY_SIZE
    - free
    - xs_talkv
    - strncpy
    - strlen
    - memset
    - realloc
    - strcmp
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char **xs_directory_part(struct xs_handle *h, xs_transaction_t t,\n\t\t\t\tconst
      char *path, unsigned int *num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:846,1
    - Dst: xs_directory_part
      Src: /src/xen/tools/libs/store/xs.c:850,1
    - Dst: xs_directory_common
      Src: /src/xen/tools/libs/store/xs.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 840
    functionDepth: 5
    functionLinenumber: 840
    functionLinenumberEnd: 854
    functionName: xs_directory
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 18
    functionsReached:
    - xs_single
    - xs_directory_common
    - xs_directory_part
    linkageType: ''
    returnType: char
    signature: "char **xs_directory(struct xs_handle *h, xs_transaction_t t,\n\t\t
      \   const char *path, unsigned int *num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - t
    - path
    - len
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: xs_read
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 74
    functionsReached:
    - xs_single
    linkageType: ''
    returnType: void
    signature: "void *xs_read(struct xs_handle *h, xs_transaction_t t,\n\t      const
      char *path, unsigned int *len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:879,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:883,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:883,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - h
    - t
    - path
    - data
    - len
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: xs_write
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 20
    functionsReached:
    - xs_talkv
    - strlen
    - xs_bool
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool xs_write(struct xs_handle *h, xs_transaction_t t,\n\t      const
      char *path, const void *data, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:892,1
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - t
    - path
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 889
    functionDepth: 5
    functionLinenumber: 889
    functionLinenumberEnd: 893
    functionName: xs_mkdir
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 6
    functionsReached:
    - xs_single
    - xs_bool
    linkageType: ''
    returnType: bool
    signature: "bool xs_mkdir(struct xs_handle *h, xs_transaction_t t,\n\t      const
      char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:901,1
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - t
    - path
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 902
    functionName: xs_rm
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 13
    functionsReached:
    - xs_single
    - xs_bool
    linkageType: ''
    returnType: bool
    signature: "bool xs_rm(struct xs_handle *h, xs_transaction_t t,\n\t   const char
      *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:915,1
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/libs/store/xs.c:920,1
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:923,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:925,1
    - Dst: xenstore_strings_to_perms
      Src: /src/xen/tools/libs/store/xs.c:929,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:930,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - h
    - t
    - path
    - num
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 907
    functionDepth: 5
    functionLinenumber: 907
    functionLinenumberEnd: 936
    functionName: xs_get_permissions
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    - free_no_errno
    - malloc
    - xenstore_count_strings
    - xenstore_strings_to_perms
    - xs_single
    linkageType: ''
    returnType: struct xs_permissions
    signature: "struct xs_permissions *xs_get_permissions(struct xs_handle *h,\n\t\t\t\t\t
      \ xs_transaction_t t,\n\t\t\t\t\t  const char *path, unsigned int *num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:954,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:957,1
    - Dst: xenstore_perm_to_string
      Src: /src/xen/tools/libs/store/xs.c:959,1
    - Dst: strdup
      Src: /src/xen/tools/libs/store/xs.c:962,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:963,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:968,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:968,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:968,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:971,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:977,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - h
    - t
    - path
    - perms
    - num_perms
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - char*
    - struct xs_permissions*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 941
    functionDepth: 4
    functionLinenumber: 941
    functionLinenumberEnd: 979
    functionName: xs_set_permissions
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 6
    functionsReached:
    - MAX_STRLEN
    - xenstore_perm_to_string
    - xs_bool
    - ARRAY_SIZE
    - free
    - free_no_errno
    - xs_talkv
    - strlen
    - strdup
    linkageType: ''
    returnType: bool
    signature: "bool xs_set_permissions(struct xs_handle *h,\n\t\t\txs_transaction_t
      t,\n\t\t\tconst char *path,\n\t\t\tstruct xs_permissions *perms,\n\t\t\tunsigned
      int num_perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - domid
    argTypes:
    - struct xs_handle*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: xs_restrict
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xs_restrict(struct xs_handle *h, unsigned domid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1009,1
    - Dst: pthread_attr_init
      Src: /src/xen/tools/libs/store/xs.c:1018,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1019,1
    - Dst: dlsym
      Src: /src/xen/tools/libs/store/xs.c:1024,1
    - Dst: getsz
      Src: /src/xen/tools/libs/store/xs.c:1026,1
    - Dst: pthread_attr_setstacksize
      Src: /src/xen/tools/libs/store/xs.c:1031,1
    - Dst: pthread_attr_destroy
      Src: /src/xen/tools/libs/store/xs.c:1032,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1033,1
    - Dst: sigfillset
      Src: /src/xen/tools/libs/store/xs.c:1037,1
    - Dst: pthread_sigmask
      Src: /src/xen/tools/libs/store/xs.c:1038,1
    - Dst: pthread_create
      Src: /src/xen/tools/libs/store/xs.c:1040,1
    - Dst: pthread_sigmask
      Src: /src/xen/tools/libs/store/xs.c:1041,1
    - Dst: pthread_attr_destroy
      Src: /src/xen/tools/libs/store/xs.c:1042,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1043,1
    - Dst: pthread_sigmask
      Src: /src/xen/tools/libs/store/xs.c:1047,1
    - Dst: pthread_attr_destroy
      Src: /src/xen/tools/libs/store/xs.c:1048,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1050,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1056,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1058,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1060,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1060,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1060,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - h
    - path
    - token
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 992
    functionDepth: 4
    functionLinenumber: 992
    functionLinenumberEnd: 1061
    functionName: xs_watch
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xs_bool
    - getsz
    - mutex_lock
    - pthread_attr_init
    - ARRAY_SIZE
    - xs_talkv
    - pthread_attr_destroy
    - pthread_attr_setstacksize
    - strlen
    - dlsym
    - sigfillset
    - pthread_create
    - pthread_sigmask
    - mutex_unlock
    linkageType: ''
    returnType: bool
    signature: bool xs_watch(struct xs_handle *h, const char *path, const char *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1071,1
    - Dst: read
      Src: /src/xen/tools/libs/store/xs.c:1072,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1074
    functionName: xs_maybe_clear_watch_pipe
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - read
    - XEN_TAILQ_EMPTY
    linkageType: ''
    returnType: void
    signature: void xs_maybe_clear_watch_pipe(struct xs_handle *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1087,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1095,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1097,1
    - Dst: condvar_wait
      Src: /src/xen/tools/libs/store/xs.c:1101,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:1107,1
    - Dst: read_thread_exists
      Src: /src/xen/tools/libs/store/xs.c:1107,1
    - Dst: read_message
      Src: /src/xen/tools/libs/store/xs.c:1108,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1113,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1114,1
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/libs/store/xs.c:1118,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/store/xs.c:1119,1
    - Dst: xs_maybe_clear_watch_pipe
      Src: /src/xen/tools/libs/store/xs.c:1121,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1122,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:1124,1
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/libs/store/xs.c:1127,1
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:1129,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:1131,1
    - Dst: free_no_errno
      Src: /src/xen/tools/libs/store/xs.c:1132,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/store/xs.c:1137,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1139,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1140,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!read_thread_exists(h))
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/xen/tools/libs/store/xs.c
    - condition: (msg->hdr.type == XS_WATCH_EVENT)
      pos:
        line_end: 1123
        line_start: 1123
        source_file: /src/xen/tools/libs/store/xs.c
    constantsTouched: []
    func_position:
      end: 1148
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1148
    functionName: read_watch_internal
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_maybe_clear_watch_pipe
    - XEN_TAILQ_EMPTY
    - mutex_lock
    - condvar_wait
    - free_no_errno
    - free
    - malloc
    - XEN_TAILQ_REMOVE
    - xenstore_count_strings
    - strlen
    - read_message
    - assert
    - XEN_TAILQ_FIRST
    - memcpy
    - read_thread_exists
    - mutex_unlock
    linkageType: ''
    returnType: char
    signature: "char **read_watch_internal(struct xs_handle *h, unsigned int *num,\n\t\t\t\t
      \ int nonblocking)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_watch_internal
      Src: /src/xen/tools/libs/store/xs.c:1154,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (num >= 2)
      pos:
        line_end: 1154
        line_start: 1154
        source_file: /src/xen/tools/libs/store/xs.c
    constantsTouched: []
    func_position:
      end: 1157
      start: 1150
    functionDepth: 3
    functionLinenumber: 1150
    functionLinenumberEnd: 1157
    functionName: xs_check_watch
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - read_watch_internal
    - assert
    linkageType: ''
    returnType: char
    signature: char **xs_check_watch(struct xs_handle *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_watch_internal
      Src: /src/xen/tools/libs/store/xs.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1166
    functionName: xs_read_watch
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - read_watch_internal
    linkageType: ''
    returnType: char
    signature: char **xs_read_watch(struct xs_handle *h, unsigned int *num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1184,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1186,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1188,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1188,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1188,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1195,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1197,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1198,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/libs/store/xs.c:1202,1
    - Dst: assert
      Src: /src/xen/tools/libs/store/xs.c:1203,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/store/xs.c:1222,1
    - Dst: xs_path_is_subpath
      Src: /src/xen/tools/libs/store/xs.c:1223,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/libs/store/xs.c:1224,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1225,1
    - Dst: xs_maybe_clear_watch_pipe
      Src: /src/xen/tools/libs/store/xs.c:1229,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1231,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - h
    - path
    - token
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    assertStmts:
    - condition: (msg->hdr.type == XS_WATCH_EVENT)
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/xen/tools/libs/store/xs.c
    constantsTouched: []
    func_position:
      end: 1234
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1234
    functionName: xs_unwatch
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xs_maybe_clear_watch_pipe
    - xs_bool
    - ARRAY_SIZE
    - mutex_lock
    - XEN_TAILQ_EMPTY
    - free
    - xs_talkv
    - strcmp
    - XEN_TAILQ_FOREACH_SAFE
    - XEN_TAILQ_REMOVE
    - strlen
    - xs_path_is_subpath
    - assert
    - mutex_unlock
    linkageType: ''
    returnType: bool
    signature: bool xs_unwatch(struct xs_handle *h, const char *path, const char *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:1245,1
    - Dst: strtoul
      Src: /src/xen/tools/libs/store/xs.c:1249,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct xs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1240
    functionDepth: 5
    functionLinenumber: 1240
    functionLinenumberEnd: 1253
    functionName: xs_transaction_start
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 32
    functionsReached:
    - free
    - xs_single
    - strtoul
    linkageType: ''
    returnType: xs_transaction_t
    signature: xs_transaction_t xs_transaction_start(struct xs_handle *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/xen/tools/libs/store/xs.c:1266,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/store/xs.c:1268,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1270,1
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - h
    - t
    - abort
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1260
    functionDepth: 5
    functionLinenumber: 1260
    functionLinenumberEnd: 1271
    functionName: xs_transaction_end
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 19
    functionsReached:
    - xs_single
    - strcpy
    - xs_bool
    linkageType: ''
    returnType: bool
    signature: "bool xs_transaction_end(struct xs_handle *h, xs_transaction_t t,\n\t\t\tbool
      abort)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1282,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1283,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1284,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1287,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1288,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1289,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1294,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1296,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1298,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1300,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1300,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - h
    - domid
    - mfn
    - eventchn
    argTypes:
    - struct xs_handle*
    - unsigned int
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1301
    functionName: xs_introduce_domain
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - xs_bool
    - ARRAY_SIZE
    - xs_talkv
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool xs_introduce_domain(struct xs_handle *h,\n\t\t\t unsigned int
      domid, unsigned long mfn,\n\t\t\t unsigned int eventchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1307,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1308,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1311,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1312,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1317,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1319,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1321,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1321,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - h
    - domid
    - target
    argTypes:
    - struct xs_handle*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1303
    functionDepth: 4
    functionLinenumber: 1303
    functionLinenumberEnd: 1322
    functionName: xs_set_target
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - xs_bool
    - ARRAY_SIZE
    - xs_talkv
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool xs_set_target(struct xs_handle *h,\n\t\t   unsigned int domid,
      unsigned int target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1328,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1330,1
    - Dst: xs_single
      Src: /src/xen/tools/libs/store/xs.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - type
    - domid
    argTypes:
    - struct xs_handle*
    - enum xsd_sockmsg_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1324
    functionDepth: 5
    functionLinenumber: 1324
    functionLinenumberEnd: 1333
    functionName: single_with_domid
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - xs_single
    linkageType: ''
    returnType: void
    signature: "void * single_with_domid(struct xs_handle *h,\n\t\t\t\tenum xsd_sockmsg_type
      type,\n\t\t\t\tunsigned int domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1337,1
    - Dst: single_with_domid
      Src: /src/xen/tools/libs/store/xs.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - domid
    argTypes:
    - struct xs_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1335
    functionDepth: 6
    functionLinenumber: 1335
    functionLinenumberEnd: 1338
    functionName: xs_release_domain
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xs_bool
    - single_with_domid
    linkageType: ''
    returnType: bool
    signature: bool xs_release_domain(struct xs_handle *h, unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1343,1
    - Dst: single_with_domid
      Src: /src/xen/tools/libs/store/xs.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - domid
    argTypes:
    - struct xs_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 6
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: xs_resume_domain
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 2
    functionsReached:
    - xs_bool
    - single_with_domid
    linkageType: ''
    returnType: bool
    signature: bool xs_resume_domain(struct xs_handle *h, unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: single_with_domid
      Src: /src/xen/tools/libs/store/xs.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - domid
    argTypes:
    - struct xs_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1346
    functionDepth: 6
    functionLinenumber: 1346
    functionLinenumberEnd: 1349
    functionName: xs_get_domain_path
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 2
    functionsReached:
    - single_with_domid
    linkageType: ''
    returnType: char
    signature: char *xs_get_domain_path(struct xs_handle *h, unsigned int domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1353,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1354,1
    - Dst: memcmp
      Src: /src/xen/tools/libs/store/xs.c:1359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1366
    functionName: xs_path_is_subpath
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 2
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool xs_path_is_subpath(const char *parent, const char *child)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: single_with_domid
      Src: /src/xen/tools/libs/store/xs.c:1370,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/store/xs.c:1376,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - domid
    argTypes:
    - struct xs_handle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1368
    functionDepth: 6
    functionLinenumber: 1368
    functionLinenumberEnd: 1380
    functionName: xs_is_domain_introduced
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    - strcmp
    - single_with_domid
    linkageType: ''
    returnType: bool
    signature: bool xs_is_domain_introduced(struct xs_handle *h, unsigned int domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_daemon_open
      Src: /src/xen/tools/libs/store/xs.c:1390,1
    - Dst: sprintf
      Src: /src/xen/tools/libs/store/xs.c:1394,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/store/xs.c:1395,1
    - Dst: xs_daemon_close
      Src: /src/xen/tools/libs/store/xs.c:1396,1
    - Dst: atoi
      Src: /src/xen/tools/libs/store/xs.c:1403,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1382
    functionDepth: 6
    functionLinenumber: 1382
    functionLinenumberEnd: 1408
    functionName: xs_suspend_evtchn_port
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xs_daemon_close
    - free
    - sprintf
    - xs_read
    - xs_daemon_open
    - atoi
    linkageType: ''
    returnType: int
    signature: int xs_suspend_evtchn_port(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/libs/store/xs.c:1415,1
    - Dst: free
      Src: /src/xen/tools/libs/store/xs.c:1416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - reply
    - uintval
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1419
    functionName: xs_uint
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - free
    - strtoul
    linkageType: ''
    returnType: bool
    signature: bool xs_uint(char *reply, unsigned int *uintval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_uint
      Src: /src/xen/tools/libs/store/xs.c:1429,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1429,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - features
    argTypes:
    - struct xs_handle*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1421
    functionDepth: 4
    functionLinenumber: 1421
    functionLinenumberEnd: 1430
    functionName: xs_get_features_supported
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xs_talkv
    - ARRAY_SIZE
    - xs_uint
    linkageType: ''
    returnType: bool
    signature: bool xs_get_features_supported(struct xs_handle *h, unsigned int *features)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_uint
      Src: /src/xen/tools/libs/store/xs.c:1435,1
    - Dst: single_with_domid
      Src: /src/xen/tools/libs/store/xs.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - domid
    - features
    argTypes:
    - struct xs_handle*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1432
    functionDepth: 6
    functionLinenumber: 1432
    functionLinenumberEnd: 1436
    functionName: xs_get_features_domain
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_uint
    - single_with_domid
    linkageType: ''
    returnType: bool
    signature: "bool xs_get_features_domain(struct xs_handle *h, unsigned int domid,\n\t\t\t
      \   unsigned int *features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1442,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/libs/store/xs.c:1443,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1446,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/store/xs.c:1447,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1452,1
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1454,1
    - Dst: xs_bool
      Src: /src/xen/tools/libs/store/xs.c:1456,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1456,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - h
    - domid
    - features
    argTypes:
    - struct xs_handle*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1457
    functionName: xs_set_features_domain
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - xs_bool
    - ARRAY_SIZE
    - xs_talkv
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool xs_set_features_domain(struct xs_handle *h, unsigned int domid,\n\t\t\t
      \   unsigned int features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/store/xs.c:1468,1
    - Dst: xs_talkv
      Src: /src/xen/tools/libs/store/xs.c:1472,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/store/xs.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - h
    - cmd
    - data
    - len
    argTypes:
    - struct xs_handle*
    - char*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1459
    functionDepth: 4
    functionLinenumber: 1459
    functionLinenumberEnd: 1473
    functionName: xs_control_command
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_talkv
    - strlen
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: "char *xs_control_command(struct xs_handle *h, const char *cmd,\n\t\t\t
      void *data, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_control_command
      Src: /src/xen/tools/libs/store/xs.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - h
    - cmd
    - data
    - len
    argTypes:
    - struct xs_handle*
    - char*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1475
    functionDepth: 5
    functionLinenumber: 1475
    functionLinenumberEnd: 1479
    functionName: xs_debug_command
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_control_command
    linkageType: ''
    returnType: char
    signature: "char *xs_debug_command(struct xs_handle *h, const char *cmd,\n\t\t
      \      void *data, unsigned int len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:1499,1
    - Dst: cleanup_push_heap
      Src: /src/xen/tools/libs/store/xs.c:1502,1
    - Dst: read_all
      Src: /src/xen/tools/libs/store/xs.c:1503,1
    - Dst: malloc
      Src: /src/xen/tools/libs/store/xs.c:1515,1
    - Dst: cleanup_push_heap
      Src: /src/xen/tools/libs/store/xs.c:1518,1
    - Dst: read_all
      Src: /src/xen/tools/libs/store/xs.c:1519,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1527,1
    - Dst: cleanup_push
      Src: /src/xen/tools/libs/store/xs.c:1528,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1531,1
    - Dst: write
      Src: /src/xen/tools/libs/store/xs.c:1533,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/store/xs.c:1536,1
    - Dst: condvar_signal
      Src: /src/xen/tools/libs/store/xs.c:1538,1
    - Dst: cleanup_pop
      Src: /src/xen/tools/libs/store/xs.c:1540,1
    - Dst: mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1542,1
    - Dst: XEN_TAILQ_EMPTY
      Src: /src/xen/tools/libs/store/xs.c:1545,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1546,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/libs/store/xs.c:1551,1
    - Dst: condvar_signal
      Src: /src/xen/tools/libs/store/xs.c:1552,1
    - Dst: mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1554,1
    - Dst: cleanup_pop_heap
      Src: /src/xen/tools/libs/store/xs.c:1560,1
    - Dst: cleanup_pop_heap
      Src: /src/xen/tools/libs/store/xs.c:1562,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - h
    - nonblocking
    argTypes:
    - struct xs_handle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1567
    functionName: read_message
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 2
    functionsReached:
    - XEN_TAILQ_INSERT_TAIL
    - cleanup_pop
    - XEN_TAILQ_EMPTY
    - mutex_lock
    - read_all
    - malloc
    - cleanup_push
    - condvar_signal
    - cleanup_push_heap
    - cleanup_pop_heap
    - write
    - mutex_unlock
    linkageType: ''
    returnType: int
    signature: int read_message(struct xs_handle *h, int nonblocking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_daemon_path
      Src: /src/xen/tools/libs/store/xs.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1572
    functionName: xs_daemon_socket
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 1
    functionsReached:
    - xenstore_daemon_path
    linkageType: ''
    returnType: char
    signature: char *xs_daemon_socket(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_daemon_socket
      Src: /src/xen/tools/libs/store/xs.c:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1574
    functionDepth: 2
    functionLinenumber: 1574
    functionLinenumberEnd: 1577
    functionName: xs_daemon_socket_ro
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xs_daemon_socket
    linkageType: ''
    returnType: char
    signature: char *xs_daemon_socket_ro(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_daemon_rundir
      Src: /src/xen/tools/libs/store/xs.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1582
    functionName: xs_daemon_rundir
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xenstore_daemon_rundir
    linkageType: ''
    returnType: char
    signature: char *xs_daemon_rundir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_strings_to_perms
      Src: /src/xen/tools/libs/store/xs.c:1587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - perms
    - num
    - strings
    argTypes:
    - struct xs_permissions*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1588
    functionName: xs_strings_to_perms
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - xenstore_strings_to_perms
    linkageType: ''
    returnType: bool
    signature: "bool xs_strings_to_perms(struct xs_permissions *perms, unsigned int
      num,\n\t\t\t const char *strings)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_message
      Src: /src/xen/tools/libs/store/xs.c:1596,1
    - Dst: close
      Src: /src/xen/tools/libs/store/xs.c:1606,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1609,1
    - Dst: pthread_cond_broadcast
      Src: /src/xen/tools/libs/store/xs.c:1610,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1611,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/store/xs.c:1613,1
    - Dst: pthread_cond_broadcast
      Src: /src/xen/tools/libs/store/xs.c:1614,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/store/xs.c:1615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1591
    functionDepth: 3
    functionLinenumber: 1591
    functionLinenumberEnd: 1618
    functionName: read_thread
    functionSourceFile: /src/xen/tools/libs/store/xs.c
    functionUses: 0
    functionsReached:
    - close
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_cond_broadcast
    - read_message
    linkageType: ''
    returnType: void
    signature: void *read_thread(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - lg
    argTypes:
    - xentoollog_logger_stdiostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: progress_erase
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void progress_erase(xentoollog_logger_stdiostream *lg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: progress_erase
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:57,1
    - Dst: time
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:61,1
    - Dst: localtime_r
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:62,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:64,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:69,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:72,1
    - Dst: getpid
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:72,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:75,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:77,1
    - Dst: xtl_level_to_string
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:77,1
    - Dst: vfprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:79,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:82,1
    - Dst: strerror
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:82,1
    - Dst: putc
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:84,1
    - Dst: fflush
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 6
    argNames:
    - logger_in
    - level
    - errnoval
    - context
    - format
    - al
    argTypes:
    - xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 86
    functionName: stdiostream_vmessage
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - xtl_level_to_string
    - time
    - putc
    - vfprintf
    - fflush
    - progress_erase
    - fprintf
    - localtime_r
    - strerror
    - getpid
    linkageType: ''
    returnType: void
    signature: "void stdiostream_vmessage(xentoollog_logger *logger_in,\n                                 xentoollog_level
      level,\n                                 int errnoval,\n                                 const
      char *context,\n                                 const char *format,\n                                 va_list
      al)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:94,1
    - Dst: stdiostream_vmessage
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:95,1
    - Dst: va_end
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - logger_in
    - level
    - context
    - format
    argTypes:
    - struct xentoollog_logger*
    - xentoollog_level
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: stdiostream_message
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - va_start
    - stdiostream_vmessage
    - va_end
    linkageType: ''
    returnType: void
    signature: "void stdiostream_message(struct xentoollog_logger *logger_in,\n                                xentoollog_level
      level,\n                                const char *context,\n                                const
      char *format, ...)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stdiostream_message
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:126,1
    - Dst: putc
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:133,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:135,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - logger_in
    - context
    - doing_what
    - percent
    - done
    - total
    argTypes:
    - struct xentoollog_logger*
    - char*
    - char*
    - int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 145
    functionName: stdiostream_progress
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - putc
    - stdiostream_message
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void stdiostream_progress(struct xentoollog_logger *logger_in,\n                                 const
      char *context,\n                                 const char *doing_what, int
      percent,\n                                 unsigned long done, unsigned long
      total)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: progress_erase
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:149,1
    - Dst: free
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - logger_in
    argTypes:
    - struct xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: stdiostream_destroy
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - free
    - progress_erase
    linkageType: ''
    returnType: void
    signature: void stdiostream_destroy(struct xentoollog_logger *logger_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lg
    - min_level
    argTypes:
    - xentoollog_logger_stdiostream*
    - xentoollog_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: xtl_stdiostream_set_minlevel
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xtl_stdiostream_set_minlevel(xentoollog_logger_stdiostream *lg,\n
      \                                 xentoollog_level min_level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: progress_erase
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - lg
    - set_flags
    - clear_flags
    argTypes:
    - xentoollog_logger_stdiostream*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: xtl_stdiostream_adjust_flags
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 0
    functionsReached:
    - progress_erase
    linkageType: ''
    returnType: void
    signature: "void xtl_stdiostream_adjust_flags(xentoollog_logger_stdiostream *lg,\n
      \                                 unsigned set_flags, unsigned clear_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:179,1
    - Dst: fileno
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:179,1
    - Dst: tzset
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:186,1
    - Dst: XTL_NEW_LOGGER
      Src: /src/xen/tools/libs/toollog/xtl_logger_stdio.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - f
    - min_level
    - flags
    argTypes:
    - FILE*
    - xentoollog_level
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: xtl_createlogger_stdiostream
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    functionUses: 7
    functionsReached:
    - XTL_NEW_LOGGER
    - tzset
    - fileno
    - isatty
    linkageType: ''
    returnType: xentoollog_logger_stdiostream
    signature: "xentoollog_logger_stdiostream *xtl_createlogger_stdiostream\n        (FILE
      *f, xentoollog_level min_level, unsigned flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/toollog/xtl_core.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - xentoollog_level
    assertStmts:
    - condition: (level >= 0 && level < XTL_NUM_LEVELS)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libs/toollog/xtl_core.c
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: xtl_level_to_string
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_core.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *xtl_level_to_string(xentoollog_level level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/toollog/xtl_core.c:48,1
    - Dst: struct xentoollog_logger*::vmessage
      Src: /src/xen/tools/libs/toollog/xtl_core.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - logger
    - level
    - errnoval
    - context
    - format
    - al
    argTypes:
    - struct xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - char*
    - va_list
    assertStmts:
    - condition: (level > XTL_NONE && level < XTL_NUM_LEVELS)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/tools/libs/toollog/xtl_core.c
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: xtl_logv
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_core.c
    functionUses: 1
    functionsReached:
    - assert
    - struct xentoollog_logger*::vmessage
    linkageType: ''
    returnType: void
    signature: "void xtl_logv(struct xentoollog_logger *logger,\n              xentoollog_level
      level,\n              int errnoval /* or -1 */,\n              const char *context
      /* eg \"xc\", \"xenstore\", \"xl\" */,\n              const char *format /*
      does not contain \\n */,\n              va_list al)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/toollog/xtl_core.c:60,1
    - Dst: xtl_logv
      Src: /src/xen/tools/libs/toollog/xtl_core.c:61,1
    - Dst: va_end
      Src: /src/xen/tools/libs/toollog/xtl_core.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - logger
    - level
    - errnoval
    - context
    - format
    argTypes:
    - struct xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: xtl_log
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_core.c
    functionUses: 5
    functionsReached:
    - va_start
    - va_end
    - xtl_logv
    linkageType: ''
    returnType: void
    signature: "void xtl_log(struct xentoollog_logger *logger,\n             xentoollog_level
      level,\n             int errnoval /* or -1 */,\n             const char *context
      /* eg \"xc\", \"xenstore\", \"xl\" */,\n             const char *format /* does
      not contain \\n */,\n             ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct xentoollog_logger*::progress
      Src: /src/xen/tools/libs/toollog/xtl_core.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - logger
    - context
    - doing_what
    - done
    - total
    argTypes:
    - struct xentoollog_logger*
    - char*
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: xtl_progress
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_core.c
    functionUses: 1
    functionsReached:
    - struct xentoollog_logger*::progress
    linkageType: ''
    returnType: void
    signature: "void xtl_progress(struct xentoollog_logger *logger,\n                  const
      char *context, const char *doing_what,\n                  unsigned long done,
      unsigned long total)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct xentoollog_logger*::destroy
      Src: /src/xen/tools/libs/toollog/xtl_core.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - logger
    argTypes:
    - struct xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: xtl_logger_destroy
    functionSourceFile: /src/xen/tools/libs/toollog/xtl_core.c
    functionUses: 10
    functionsReached:
    - struct xentoollog_logger*::destroy
    linkageType: ''
    returnType: void
    signature: void xtl_logger_destroy(struct xentoollog_logger *logger)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_loginit
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:51,1
    - Dst: xc_dom_allocate
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:52,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:55,1
    - Dst: strlen
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:57,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:58,1
    - Dst: xc_dom_boot_xen_init
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:65,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:67,1
    - Dst: xc_dom_mem_init
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:69,1
    - Dst: xc_dom_boot_mem_init
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:71,1
    - Dst: xc_dom_build_image
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:73,1
    - Dst: xc_dom_boot_image
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:75,1
    - Dst: xc_dom_gnttab_init
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:77,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:80,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:81,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/libs/guest/xg_dom_compat_linux.c:84,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 12
    argNames:
    - xch
    - domid
    - mem_mb
    - image_name
    - initrd_name
    - cmdline
    - features
    - flags
    - store_evtchn
    - store_mfn
    - console_evtchn
    - console_mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - char*
    - char*
    - char*
    - char*
    - unsigned long
    - unsigned int
    - unsigned long*
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 86
    functionName: xc_linux_build
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_compat_linux.c
    functionUses: 0
    functionsReached:
    - xc_dom_allocate
    - xc_dom_kernel_file
    - xc_dom_boot_xen_init
    - xc_dom_build_image
    - xc_dom_release
    - xc_dom_p2m
    - xc_dom_loginit
    - xc_dom_boot_image
    - xc_dom_boot_mem_init
    - strlen
    - xc_dom_mem_init
    - xc_dom_gnttab_init
    - xc_dom_parse_image
    - xc_dom_module_file
    linkageType: ''
    returnType: int
    signature: "int xc_linux_build(xc_interface *xch, uint32_t domid,\n                   unsigned
      int mem_mb,\n                   const char *image_name,\n                   const
      char *initrd_name,\n                   const char *cmdline,\n                   const
      char *features,\n                   unsigned long flags,\n                   unsigned
      int store_evtchn,\n                   unsigned long *store_mfn,\n                   unsigned
      int console_evtchn,\n                   unsigned long *console_mfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:55,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:63,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:65,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:73,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:74,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - xch
    - start
    - end
    - status
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: xc_mark_page_online
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    - xc_hypercall_bounce_post
    - ERROR
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_mark_page_online(xc_interface *xch, unsigned long start,\n
      \                       unsigned long end, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:85,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:93,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:95,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:103,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:104,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - xch
    - start
    - end
    - status
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 109
    functionName: xc_mark_page_offline
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    - xc_hypercall_bounce_post
    - ERROR
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_mark_page_offline(xc_interface *xch, unsigned long start,\n
      \                         unsigned long end, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:115,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:123,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:125,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:133,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:134,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - xch
    - start
    - end
    - status
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: xc_query_page_offline_status
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    - xc_hypercall_bounce_post
    - ERROR
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_query_page_offline_status(xc_interface *xch, unsigned long
      start,\n                                 unsigned long end, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - gpfn
    - gnttab
    - gnt_num
    argTypes:
    - xc_interface*
    - xen_pfn_t
    - grant_entry_v1_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: xc_is_page_granted_v1
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_is_page_granted_v1(xc_interface *xch, xen_pfn_t gpfn,\n                                 grant_entry_v1_t
      *gnttab, int gnt_num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - gpfn
    - gnttab
    - gnt_num
    argTypes:
    - xc_interface*
    - xen_pfn_t
    - grant_entry_v2_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: xc_is_page_granted_v2
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_is_page_granted_v2(xc_interface *xch, xen_pfn_t gpfn,\n                                 grant_entry_v2_t
      *gnttab, int gnt_num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - table_mfn
    - offset
    - backup
    argTypes:
    - xen_pfn_t
    - int
    - struct pte_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 198
    functionName: backup_ptes
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: "int backup_ptes(xen_pfn_t table_mfn, int offset,\n                       struct
      pte_backup *backup)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: backup_ptes
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - xch
    - pte
    - new_pte
    - table_mfn
    - table_offset
    - backup
    - mfn
    argTypes:
    - xc_interface*
    - uint64_t
    - uint64_t*
    - unsigned long
    - int
    - struct pte_backup*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 235
    functionName: __clear_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - backup_ptes
    linkageType: ''
    returnType: int
    signature: "int __clear_pte(xc_interface *xch,\n                       uint64_t
      pte, uint64_t *new_pte,\n                       unsigned long table_mfn, int
      table_offset,\n                       struct pte_backup *backup,\n                       unsigned
      long mfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 7
    argNames:
    - xch
    - pte
    - new_pte
    - table_mfn
    - table_offset
    - backup
    - new_mfn
    argTypes:
    - xc_interface*
    - uint64_t
    - uint64_t*
    - unsigned long
    - int
    - struct pte_backup*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 264
    functionName: __update_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: int
    signature: "int __update_pte(xc_interface *xch,\n                      uint64_t
      pte, uint64_t *new_pte,\n                      unsigned long table_mfn, int
      table_offset,\n                      struct pte_backup *backup,\n                      unsigned
      long new_mfn)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:281,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:293,1
    - Dst: func
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:305,1
    - Dst: xc_add_mmu_update
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:310,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:327,1
    - Dst: xc_flush_mmu_updates
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:332,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:339,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 7
    argNames:
    - xch
    - domid
    - minfo
    - backup
    - mmu
    - func
    - data
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xc_domain_meminfo*
    - struct pte_backup*
    - struct xc_mmu*
    - pte_func
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 342
    functionName: change_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_add_mmu_update
    - xc_flush_mmu_updates
    - munmap
    - xc_pfn_to_mfn
    - xc_map_foreign_range
    - func
    linkageType: ''
    returnType: int
    signature: "int change_pte(xc_interface *xch, uint32_t domid,\n                     struct
      xc_domain_meminfo *minfo,\n                     struct pte_backup *backup,\n
      \                    struct xc_mmu *mmu,\n                     pte_func func,\n
      \                    unsigned long data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: change_pte
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - minfo
    - backup
    - mmu
    - new_mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xc_domain_meminfo*
    - struct pte_backup*
    - struct xc_mmu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: update_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - change_pte
    linkageType: ''
    returnType: int
    signature: "int update_pte(xc_interface *xch, uint32_t domid,\n                     struct
      xc_domain_meminfo *minfo,\n                     struct pte_backup *backup,\n
      \                    struct xc_mmu *mmu,\n                     unsigned long
      new_mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: change_pte
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - minfo
    - backup
    - mmu
    - mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xc_domain_meminfo*
    - struct pte_backup*
    - struct xc_mmu*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: clear_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - change_pte
    linkageType: ''
    returnType: int
    signature: "int clear_pte(xc_interface *xch, uint32_t domid,\n                     struct
      xc_domain_meminfo *minfo,\n                     struct pte_backup *backup,\n
      \                    struct xc_mmu *mmu,\n                     xen_pfn_t mfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:377,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:382,1
    - Dst: xc_query_page_offline_status
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:387,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - xch
    - domid
    - mfn
    - info
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 397
    functionName: is_page_exchangable
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_query_page_offline_status
    - ERROR
    - DPRINTF
    linkageType: ''
    returnType: int
    signature: "int is_page_exchangable(xc_interface *xch, uint32_t domid, xen_pfn_t
      mfn,\n                               xc_domaininfo_t *info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: M2P_SIZE
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:411,1
    - Dst: M2P_CHUNKS
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:412,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:414,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:417,1
    - Dst: xc_machphys_mfn_list
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:421,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:423,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:427,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:430,1
    - Dst: xc_map_foreign_ranges
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:437,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:442,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:450,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - xch
    - max_mfn
    - prot
    - mfn0
    argTypes:
    - xc_interface*
    - unsigned long
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 456
    functionName: xc_map_m2p
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - M2P_SIZE
    - xc_map_foreign_ranges
    - xc_machphys_mfn_list
    - calloc
    - PERROR
    - free
    - ERROR
    - M2P_CHUNKS
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t *xc_map_m2p(xc_interface *xch,\n                      unsigned
      long max_mfn,\n                      int prot,\n                      unsigned
      long *mfn0)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:476,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:478,1
    - Dst: dominfo_shutdown_with
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:482,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:485,1
    - Dst: is_page_exchangable
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:488,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:490,1
    - Dst: xc_maximum_ram_page
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:495,1
    - Dst: xc_map_m2p
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:496,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:498,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:504,1
    - Dst: xc_map_domain_meminfo
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:505,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:507,1
    - Dst: xc_gnttab_map_table_v2
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:523,1
    - Dst: xc_gnttab_map_table_v1
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:526,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:529,1
    - Dst: xc_is_page_granted_v1
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:535,1
    - Dst: xc_is_page_granted_v2
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:536,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:538,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:543,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:546,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:551,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:556,1
    - Dst: xc_mmuext_op
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:567,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:569,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:577,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:581,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:585,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:586,1
    - Dst: xc_alloc_mmu_updates
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:588,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:591,1
    - Dst: clear_pte
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:596,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:600,1
    - Dst: xc_domain_memory_exchange_pages
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:604,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:610,1
    - Dst: update_pte
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:612,1
    - Dst: update_pte
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:618,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:622,1
    - Dst: xc_query_page_offline_status
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:629,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:634,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:637,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:643,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:647,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:651,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:654,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:655,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:683,1
    - Dst: xc_mmuext_op
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:687,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:689,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:694,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:696,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:698,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:701,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:703,1
    - Dst: xc_unmap_domain_meminfo
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:705,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:706,1
    - Dst: M2P_SIZE
      Src: /src/xen/tools/libs/guest/xg_offline_page.c:706,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 165
    argCount: 3
    argNames:
    - xch
    - domid
    - mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 709
    functionName: xc_exchange_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_offline_page.c
    functionUses: 0
    functionsReached:
    - xc_is_page_granted_v2
    - IPRINTF
    - ERROR
    - munmap
    - xc_is_page_granted_v1
    - xc_map_foreign_range
    - free
    - malloc
    - dominfo_shutdown_with
    - xc_map_m2p
    - xc_alloc_mmu_updates
    - xc_unmap_domain_meminfo
    - update_pte
    - xc_gnttab_map_table_v2
    - xc_maximum_ram_page
    - clear_pte
    - memset
    - xc_domain_getinfo_single
    - M2P_SIZE
    - xc_mmuext_op
    - PERROR
    - xc_gnttab_map_table_v1
    - xc_map_domain_meminfo
    - xc_domain_memory_exchange_pages
    - xc_query_page_offline_status
    - is_page_exchangable
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_exchange_page(xc_interface *xch, uint32_t domid, xen_pfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_reportv
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - elf
    - caller_data
    - iserr
    - fmt
    - al
    argTypes:
    - struct elf_binary*
    - void*
    - bool
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: log_callback
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - xc_reportv
    linkageType: ''
    returnType: void
    signature: "void log_callback(struct elf_binary *elf, void *caller_data,\n                         bool
      iserr, const char *fmt, va_list al)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_set_log
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - elf
    - verbose
    argTypes:
    - xc_interface*
    - struct elf_binary*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: xc_elf_set_logfile
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - elf_set_log
    linkageType: ''
    returnType: void
    signature: "void xc_elf_set_logfile(xc_interface *xch, struct elf_binary *elf,\n
      \                       int verbose)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:55,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:62,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:74,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - dom
    - elf
    argTypes:
    - struct xc_dom_image*
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 92
    functionName: xc_dom_guest_type
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - strstr
    - xc_dom_panic
    - elf_uval
    linkageType: ''
    returnType: char
    signature: "char *xc_dom_guest_type(struct xc_dom_image *dom,\n                                     struct
      elf_binary *elf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:102,1
    - Dst: elf_is_elfbinary
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:108,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dom
    - verbose
    argTypes:
    - struct xc_dom_image*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: check_elf_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - elf_is_elfbinary
    - xc_dom_panic
    linkageType: ''
    returnType: elf_negerrnoval
    signature: elf_negerrnoval check_elf_kernel(struct xc_dom_image *dom, bool verbose)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_elf_kernel
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:124,1
    - Dst: elf_init
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:128,1
    - Dst: elf_parse_binary
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:136,1
    - Dst: elf_xen_parse
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 143
    functionName: xc_dom_probe_elf_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - elf_xen_parse
    - check_elf_kernel
    - elf_parse_binary
    - elf_init
    linkageType: ''
    returnType: elf_negerrnoval
    signature: elf_negerrnoval xc_dom_probe_elf_kernel(struct xc_dom_image *dom)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_elf_kernel
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:150,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:154,1
    - Dst: elf_init
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:158,1
    - Dst: xc_elf_set_logfile
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:159,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:162,1
    - Dst: elf_parse_binary
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:168,1
    - Dst: elf_xen_parse
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:169,1
    - Dst: elf_xen_feature_get
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:176,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:178,1
    - Dst: xc_dom_guest_type
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:188,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:191,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:196,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:197,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 201
    functionName: xc_dom_parse_elf_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - elf_xen_parse
    - elf_parse_binary
    - elf_xen_feature_get
    - check_elf_kernel
    - xc_dom_panic
    - DOMPRINTF
    - elf_check_broken
    - xc_elf_set_logfile
    - xc_dom_guest_type
    - xc_dom_malloc
    - elf_init
    linkageType: ''
    returnType: elf_negerrnoval
    signature: elf_negerrnoval xc_dom_parse_elf_kernel(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_seg_to_ptr_pages
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:209,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:212,1
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:216,1
    - Dst: elf_load_binary
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:218,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: xc_dom_load_elf_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_seg_to_ptr_pages
    - XC_DOM_PAGE_SIZE
    - elf_load_binary
    - DOMPRINTF
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus xc_dom_load_elf_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_elfloader.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_elfloader.c
    functionUses: 1
    functionsReached:
    - xc_dom_register_loader
    linkageType: ''
    returnType: void
    signature: void register_loader(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: ERR
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/guest/xg_suspend.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - domid
    argTypes:
    - char[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: get_suspend_file
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void get_suspend_file(char buf[], uint32_t domid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_suspend_file
      Src: /src/xen/tools/libs/guest/xg_suspend.c:50,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_suspend.c:56,1
    - Dst: open
      Src: /src/xen/tools/libs/guest/xg_suspend.c:58,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:60,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/guest/xg_suspend.c:62,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:64,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_suspend.c:66,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/guest/xg_suspend.c:70,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:72,1
    - Dst: fstat
      Src: /src/xen/tools/libs/guest/xg_suspend.c:74,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:76,1
    - Dst: stat
      Src: /src/xen/tools/libs/guest/xg_suspend.c:78,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:83,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_suspend.c:98,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - xch
    - domid
    - lockfd
    argTypes:
    - xc_interface*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 101
    functionName: lock_suspend_event
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached:
    - open
    - stat
    - close
    - get_suspend_file
    - ERR
    - fcntl
    - memset
    - fstat
    linkageType: ''
    returnType: int
    signature: int lock_suspend_event(xc_interface *xch, uint32_t domid, int *lockfd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_suspend_file
      Src: /src/xen/tools/libs/guest/xg_suspend.c:111,1
    - Dst: unlink
      Src: /src/xen/tools/libs/guest/xg_suspend.c:113,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:115,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_suspend.c:117,1
    - Dst: ERR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:120,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_suspend.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - xch
    - domid
    - lockfd
    argTypes:
    - xc_interface*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: unlock_suspend_event
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached:
    - close
    - ERR
    - get_suspend_file
    - unlink
    linkageType: ''
    returnType: int
    signature: int unlock_suspend_event(xc_interface *xch, uint32_t domid, int *lockfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/libs/guest/xg_suspend.c:134,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:136,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/guest/xg_suspend.c:142,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - xce
    - suspend_evtchn
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: xc_await_suspend
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - ERROR
    - xenevtchn_pending
    linkageType: ''
    returnType: int
    signature: int xc_await_suspend(xc_interface *xch, xenevtchn_handle *xce, int
      suspend_evtchn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/libs/guest/xg_suspend.c:154,1
    - Dst: unlock_suspend_event
      Src: /src/xen/tools/libs/guest/xg_suspend.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - xch
    - xce
    - domid
    - suspend_evtchn
    - lockfd
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: xc_suspend_evtchn_release
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 1
    functionsReached:
    - xenevtchn_unbind
    - unlock_suspend_event
    linkageType: ''
    returnType: int
    signature: "int xc_suspend_evtchn_release(xc_interface *xch, xenevtchn_handle
      *xce,\n                              uint32_t domid, int suspend_evtchn, int
      *lockfd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock_suspend_event
      Src: /src/xen/tools/libs/guest/xg_suspend.c:164,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/libs/guest/xg_suspend.c:169,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:171,1
    - Dst: xc_domain_subscribe_for_suspend
      Src: /src/xen/tools/libs/guest/xg_suspend.c:175,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_suspend.c:177,1
    - Dst: xc_suspend_evtchn_release
      Src: /src/xen/tools/libs/guest/xg_suspend.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - xch
    - xce
    - domid
    - port
    - lockfd
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: xc_suspend_evtchn_init_sane
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 0
    functionsReached:
    - xc_domain_subscribe_for_suspend
    - lock_suspend_event
    - ERROR
    - xenevtchn_bind_interdomain
    - xc_suspend_evtchn_release
    linkageType: ''
    returnType: int
    signature: "int xc_suspend_evtchn_init_sane(xc_interface *xch, xenevtchn_handle
      *xce,\n                                uint32_t domid, int port, int *lockfd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_suspend_evtchn_init_sane
      Src: /src/xen/tools/libs/guest/xg_suspend.c:194,1
    - Dst: xc_await_suspend
      Src: /src/xen/tools/libs/guest/xg_suspend.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - xch
    - xce
    - domid
    - port
    - lockfd
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: xc_suspend_evtchn_init_exclusive
    functionSourceFile: /src/xen/tools/libs/guest/xg_suspend.c
    functionUses: 1
    functionsReached:
    - xc_suspend_evtchn_init_sane
    - xc_await_suspend
    linkageType: ''
    returnType: int
    signature: "int xc_suspend_evtchn_init_exclusive(xc_interface *xch, xenevtchn_handle
      *xce,\n                                     uint32_t domid, int port, int *lockfd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arch_ctxt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: xc_core_arch_context_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_init(arch_ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arch_ctxt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: xc_core_arch_context_free
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_free(arch_ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - arch_ctxt
    - ','
    - ctxt
    - ','
    - xch
    - ','
    - domid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: xc_core_arch_context_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_get(arch_ctxt, ctxt, xch, domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xch
    - ','
    - arch_ctxt
    - ','
    - args
    - ','
    - dump_rtn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: xc_core_arch_context_dump
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_dump(xch, arch_ctxt, args, dump_rtn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - xch
    - arch_ctxt
    - sheaders
    - strtab
    - filesz
    - offset
    argTypes:
    - xc_interface*
    - struct xc_core_arch_context*
    - struct xc_core_section_headers*
    - struct xc_core_strtab*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: xc_core_arch_context_get_shdr
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_context_get_shdr(xc_interface *xch,\n                              struct
      xc_core_arch_context *arch_ctxt, \n                              struct xc_core_section_headers
      *sheaders,\n                              struct xc_core_strtab *strtab,\n                              uint64_t
      *filesz, uint64_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: PFN_TO_KB
    functionSourceFile: /src/xen/tools/libs/guest/xg_save_restore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_TO_KB(_pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _d
    - ','
    - _s
    - ','
    - _f
    - ','
    - _w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: MEMCPY_FIELD
    functionSourceFile: /src/xen/tools/libs/guest/xg_save_restore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMCPY_FIELD(_d, _s, _f, _w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _p
    - ','
    - _f
    - ','
    - _v
    - ','
    - _w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: MEMSET_ARRAY_FIELD
    functionSourceFile: /src/xen/tools/libs/guest/xg_save_restore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMSET_ARRAY_FIELD(_p, _f, _v, _w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: xc_domain_get_native_protocol
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *xc_domain_get_native_protocol(xc_interface *xch,\n                                          uint32_t
      domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:56,1
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:58,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:63,1
    - Dst: xc_dom_console_init
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:73,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:74,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:75,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:76,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:78,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:80,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:82,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:85,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: alloc_magic_pages
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_hvm_param_set
    - xc_dom_console_init
    - BUILD_BUG_ON
    - xc_clear_domain_page
    - xc_domain_populate_physmap_exact
    linkageType: ''
    returnType: int
    signature: int alloc_magic_pages(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: start_info_arm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    linkageType: ''
    returnType: int
    signature: int start_info_arm(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dom
    - ptr
    argTypes:
    - struct xc_dom_image*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: shared_info_arm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    linkageType: ''
    returnType: int
    signature: int shared_info_arm(struct xc_dom_image *dom, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:115,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:118,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:143,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:146,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 152
    functionName: vcpu_arm32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_vcpu_setcontext
    - xc_dom_panic
    - DOMPRINTF
    - memset
    linkageType: ''
    returnType: int
    signature: int vcpu_arm32(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:160,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:162,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:173,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:185,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:188,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 194
    functionName: vcpu_arm64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_vcpu_setcontext
    - xc_dom_panic
    - DOMPRINTF
    - memset
    linkageType: ''
    returnType: int
    signature: int vcpu_arm64(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:214,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:215,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:219,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:224,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:226,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - xch
    - domid
    - guest_type
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 231
    functionName: set_mode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - do_domctl
    - strcmp
    - xc_dom_printf
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int set_mode(xc_interface *xch, uint32_t domid, const char *guest_type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:276,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - dom
    - pfn_shift
    - base_pfn
    - nr_pfns
    - extents
    argTypes:
    - struct xc_dom_image*
    - int
    - xen_pfn_t
    - xen_pfn_t*
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 285
    functionName: populate_one_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - xc_domain_populate_physmap
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: "int populate_one_size(struct xc_dom_image *dom, int pfn_shift,\n                             xen_pfn_t
      base_pfn, xen_pfn_t *nr_pfns,\n                             xen_pfn_t *extents)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:293,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:296,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:300,1
    - Dst: min_t
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:308,1
    - Dst: populate_one_size
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:314,1
    - Dst: populate_one_size
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:323,1
    - Dst: populate_one_size
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:328,1
    - Dst: populate_one_size
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:333,1
    - Dst: populate_one_size
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:338,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:343,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:351,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 3
    argNames:
    - dom
    - base_pfn
    - nr_pfns
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 353
    functionName: populate_guest_memory
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - populate_one_size
    - DOMPRINTF
    - min_t
    linkageType: ''
    returnType: int
    signature: "int populate_guest_memory(struct xc_dom_image *dom,\n                                 xen_pfn_t
      base_pfn, xen_pfn_t nr_pfns)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:367,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:370,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:372,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:378,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:382,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:389,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:395,1
    - Dst: set_mode
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:401,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:414,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:415,1
    - Dst: populate_guest_memory
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:420,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:445,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:457,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:469,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts:
    - condition: (dom->rambase_pfn << XC_PAGE_SHIFT == bankbase[0])
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
    - condition: (dom->rambank_size[0] != 0)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
    - condition: (ramsize == 0)
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
    constantsTouched: []
    func_position:
      end: 477
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 477
    functionName: meminit
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - populate_guest_memory
    - DOMPRINTF
    - set_mode
    - assert
    linkageType: ''
    returnType: int
    signature: int meminit(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: xc_dom_translated
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xc_dom_translated(const struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: bootearly
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int bootearly(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: bootlate
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bootlate(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:534,1
    - Dst: xc_dom_register_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_arm.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: register_arch_hooks
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_arm.c
    functionUses: 1
    functionsReached:
    - xc_dom_register_arch_hooks
    linkageType: ''
    returnType: void
    signature: void register_arch_hooks(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_resume.c:35,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:37,1
    - Dst: dominfo_shutdown_with
      Src: /src/xen/tools/libs/guest/xg_resume.c:41,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:43,1
    - Dst: dominfo_shutdown_reason
      Src: /src/xen/tools/libs/guest/xg_resume.c:45,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/guest/xg_resume.c:54,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_resume.c:59,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:61,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_resume.c:64,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_resume.c:69,1
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/libs/guest/xg_resume.c:73,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:76,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_resume.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 82
    functionName: modify_returncode
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - PERROR
    - dominfo_shutdown_reason
    - xc_vcpu_setcontext
    - ERROR
    - xc_vcpu_getcontext
    - dominfo_shutdown_with
    - xc_version
    - xc_domain_get_guest_width
    - SET_FIELD
    - strstr
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: int modify_returncode(xc_interface *xch, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: modify_returncode
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int modify_returncode(xc_interface *xch, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modify_returncode
      Src: /src/xen/tools/libs/guest/xg_resume.c:103,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_resume.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: xc_domain_resume_cooperative
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 0
    functionsReached:
    - do_domctl
    - modify_returncode
    linkageType: ''
    returnType: int
    signature: int xc_domain_resume_cooperative(xc_interface *xch, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_resume.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: xc_domain_resume_hvm
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_domain_resume_hvm(xc_interface *xch, uint32_t domid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_resume.c:149,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:151,1
    - Dst: xc_domain_resume_hvm
      Src: /src/xen/tools/libs/guest/xg_resume.c:160,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_resume.c:162,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:164,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_resume.c:169,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:173,1
    - Dst: xc_core_arch_map_p2m
      Src: /src/xen/tools/libs/guest/xg_resume.c:178,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:180,1
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/libs/guest/xg_resume.c:184,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:186,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:190,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_resume.c:192,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:196,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:200,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:201,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:212,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_resume.c:213,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_resume.c:215,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_resume.c:220,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_resume.c:222,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_resume.c:229,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_resume.c:234,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_resume.c:236,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 240
    functionName: xc_domain_resume_any
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 0
    functionsReached:
    - xc_core_arch_map_p2m
    - PERROR
    - GET_FIELD
    - xc_vcpu_setcontext
    - ERROR
    - xc_vcpu_getcontext
    - munmap
    - do_domctl
    - xc_domain_get_guest_width
    - SET_FIELD
    - xc_map_foreign_range
    - xc_domain_resume_hvm
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: int xc_domain_resume_any(xc_interface *xch, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_resume_cooperative
      Src: /src/xen/tools/libs/guest/xg_resume.c:263,1
    - Dst: xc_domain_resume_any
      Src: /src/xen/tools/libs/guest/xg_resume.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - fast
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: xc_domain_resume
    functionSourceFile: /src/xen/tools/libs/guest/xg_resume.c
    functionUses: 3
    functionsReached:
    - xc_domain_resume_any
    - xc_domain_resume_cooperative
    linkageType: ''
    returnType: int
    signature: int xc_domain_resume(xc_interface *xch, uint32_t domid, int fast)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:12,1
    - Dst: htonl
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:15,1
    - Dst: htonl
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:16,1
    - Dst: htons
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:17,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:28,1
    - Dst: write_exact
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:32,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:34,1
    - Dst: write_exact
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:38,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - guest_type
    argTypes:
    - struct xc_sr_context*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 45
    functionName: write_headers
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - PERROR
    - xc_version
    - htons
    - write_exact
    - htonl
    linkageType: ''
    returnType: int
    signature: int write_headers(struct xc_sr_context *ctx, uint16_t guest_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: write_end_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 2
    functionsReached:
    - write_record
    linkageType: ''
    returnType: int
    signature: int write_end_record(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: write_static_data_end_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - write_record
    linkageType: ''
    returnType: int
    signature: int write_static_data_end_record(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: write_checkpoint_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - write_record
    linkageType: ''
    returnType: int
    signature: int write_checkpoint_record(struct xc_sr_context *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:105,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:108,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:110,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:112,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:114,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:116,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:118,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:122,1
    - Dst: struct xc_sr_context*::save::ops::pfn_to_gfn
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:129,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:135,1
    - Dst: xc_get_pfn_type_batch
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:140,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:143,1
    - Dst: is_known_page_type
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:150,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:152,1
    - Dst: page_type_has_stream_data
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:156,1
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:164,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:168,1
    - Dst: page_type_has_stream_data
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:175,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:180,1
    - Dst: struct xc_sr_context*::save::ops::normalise_page
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:186,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:195,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:211,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:214,1
    - Dst: writev_exact
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:256,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:258,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:263,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:267,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:269,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:271,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:272,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:273,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:274,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:275,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:276,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:277,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 124
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts:
    - condition: (nr_pfns != 0)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    - condition: (nr_pages == 0)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    constantsTouched: []
    func_position:
      end: 280
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 280
    functionName: write_batch
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - PERROR
    - calloc
    - struct xc_sr_context*::save::ops::normalise_page
    - free
    - ERROR
    - struct xc_sr_context*::save::ops::pfn_to_gfn
    - malloc
    - is_known_page_type
    - xc_get_pfn_type_batch
    - xenforeignmemory_map
    - writev_exact
    - xenforeignmemory_unmap
    - page_type_has_stream_data
    - assert
    - set_bit
    linkageType: ''
    returnType: int
    signature: int write_batch(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_batch
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:292,1
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 302
    functionName: flush_batch
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - write_batch
    - VALGRIND_MAKE_MEM_UNDEFINED
    linkageType: ''
    returnType: int
    signature: int flush_batch(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flush_batch
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: add_to_batch
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - flush_batch
    linkageType: ''
    returnType: int
    signature: int add_to_batch(struct xc_sr_context *ctx, xen_pfn_t pfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct xc_sr_context*::save::callbacks::suspend
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:330,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:334,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:339,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:341,1
    - Dst: dominfo_shutdown_with
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:346,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:348,1
    - Dst: dominfo_shutdown_reason
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:350,1
    - Dst: xc_report_progress_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 357
    functionName: suspend_domain
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - PERROR
    - dominfo_shutdown_reason
    - ERROR
    - dominfo_shutdown_with
    - xc_report_progress_single
    - xc_domain_getinfo_single
    - struct xc_sr_context*::save::callbacks::suspend
    linkageType: ''
    returnType: int
    signature: int suspend_domain(struct xc_sr_context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:377,1
    - Dst: add_to_batch
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:380,1
    - Dst: xc_report_progress_step
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:386,1
    - Dst: flush_batch
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:391,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:396,1
    - Dst: xc_report_progress_step
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:398,1
    - Dst: struct xc_sr_context*::save::ops::check_vm_state
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - entries
    argTypes:
    - struct xc_sr_context*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 401
    functionName: send_dirty_pages
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - add_to_batch
    - xc_report_progress_step
    - flush_batch
    - DPRINTF
    - struct xc_sr_context*::save::ops::check_vm_state
    - test_bit
    linkageType: ''
    returnType: int
    signature: "int send_dirty_pages(struct xc_sr_context *ctx,\n                            unsigned
      long entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_set
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:412,1
    - Dst: send_dirty_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: send_all_pages
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - send_dirty_pages
    - bitmap_set
    linkageType: ''
    returnType: int
    signature: int send_all_pages(struct xc_sr_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:424,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:430,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:435,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 449
    functionName: enable_logdirty
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 2
    functionsReached:
    - xc_shadow_control
    - PERROR
    linkageType: ''
    returnType: int
    signature: int enable_logdirty(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:457,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:459,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:463,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - str
    argTypes:
    - struct xc_sr_context*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 468
    functionName: update_progress_string
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - free
    - xc_set_progress_prefix
    - asprintf
    - PERROR
    linkageType: ''
    returnType: int
    signature: int update_progress_string(struct xc_sr_context *ctx, char **str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - stats
    - user
    argTypes:
    - struct precopy_stats
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 490
    functionName: simple_precopy_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int simple_precopy_policy(struct precopy_stats stats, void *user)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: update_progress_string
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:512,1
    - Dst: bitmap_set
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:524,1
    - Dst: precopy_policy
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:528,1
    - Dst: update_progress_string
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:533,1
    - Dst: send_dirty_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:537,1
    - Dst: precopy_policy
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:549,1
    - Dst: xc_logdirty_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:554,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:559,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:570,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:576,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:577,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 579
    functionName: send_memory_live
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - PERROR
    - free
    - update_progress_string
    - xc_logdirty_control
    - precopy_policy
    - send_dirty_pages
    - xc_set_progress_prefix
    - bitmap_set
    linkageType: ''
    returnType: int
    signature: int send_memory_live(struct xc_sr_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:592,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:598,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:605,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:618,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:623,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:629,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 631
    functionName: colo_merge_secondary_dirty_bitmap
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - read_record
    - free
    - PERROR
    - set_bit
    linkageType: ''
    returnType: int
    signature: int colo_merge_secondary_dirty_bitmap(struct xc_sr_context *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: suspend_domain
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:647,1
    - Dst: xc_logdirty_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:651,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:653,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:657,1
    - Dst: update_progress_string
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:664,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:669,1
    - Dst: bitmap_or
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:671,1
    - Dst: colo_merge_secondary_dirty_bitmap
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:675,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:678,1
    - Dst: send_dirty_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:683,1
    - Dst: bitmap_clear
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:687,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:691,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:692,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 638
    functionDepth: 5
    functionLinenumber: 638
    functionLinenumberEnd: 694
    functionName: suspend_and_send_dirty
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - bitmap_clear
    - xc_set_progress_prefix
    - PERROR
    - suspend_domain
    - free
    - bitmap_or
    - colo_merge_secondary_dirty_bitmap
    - update_progress_string
    - xc_logdirty_control
    - send_dirty_pages
    - HYPERCALL_BUFFER
    linkageType: ''
    returnType: int
    signature: int suspend_and_send_dirty(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:703,1
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:705,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:709,1
    - Dst: send_all_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:710,1
    - Dst: xc_logdirty_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:714,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:719,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 729
    functionName: verify_frames
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - write_record
    - PERROR
    - DPRINTF
    - send_all_pages
    - xc_logdirty_control
    - xc_set_progress_prefix
    linkageType: ''
    returnType: int
    signature: int verify_frames(struct xc_sr_context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: enable_logdirty
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:738,1
    - Dst: send_memory_live
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:742,1
    - Dst: suspend_and_send_dirty
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:746,1
    - Dst: verify_frames
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:752,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 734
    functionDepth: 7
    functionLinenumber: 734
    functionLinenumberEnd: 759
    functionName: send_domain_memory_live
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - send_memory_live
    - verify_frames
    - enable_logdirty
    - suspend_and_send_dirty
    linkageType: ''
    returnType: int
    signature: int send_domain_memory_live(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: suspend_and_send_dirty
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 6
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: send_domain_memory_checkpointed
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - suspend_and_send_dirty
    linkageType: ''
    returnType: int
    signature: int send_domain_memory_checkpointed(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: suspend_domain
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:778,1
    - Dst: xc_set_progress_prefix
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:782,1
    - Dst: send_all_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 790
    functionName: send_domain_memory_nonlive
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 0
    functionsReached:
    - send_all_pages
    - xc_set_progress_prefix
    - suspend_domain
    linkageType: ''
    returnType: int
    signature: int send_domain_memory_nonlive(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct xc_sr_context*::save::ops::setup
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:799,1
    - Dst: xc_hypercall_buffer_alloc_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:803,1
    - Dst: NRPAGES
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:804,1
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:804,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:805,1
    - Dst: bitmap_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:807,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 822
    functionName: setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 15
    functionsReached:
    - xc_hypercall_buffer_alloc_pages
    - NRPAGES
    - ERROR
    - malloc
    - struct xc_sr_context*::save::ops::setup
    - bitmap_alloc
    - bitmap_size
    linkageType: ''
    returnType: int
    signature: int setup(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_shadow_control
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:831,1
    - Dst: struct xc_sr_context*::save::ops::cleanup
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:834,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:835,1
    - Dst: xc_hypercall_buffer_free_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:837,1
    - Dst: NRPAGES
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:838,1
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:838,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:839,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 841
    functionName: cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 15
    functionsReached:
    - NRPAGES
    - PERROR
    - free
    - struct xc_sr_context*::save::ops::cleanup
    - xc_hypercall_buffer_free_pages
    - xc_shadow_control
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void cleanup(struct xc_sr_context *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:851,1
    - Dst: dhdr_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:852,1
    - Dst: setup
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:854,1
    - Dst: xc_report_progress_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:858,1
    - Dst: write_headers
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:860,1
    - Dst: struct xc_sr_context*::save::ops::static_data
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:864,1
    - Dst: write_static_data_end_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:868,1
    - Dst: struct xc_sr_context*::save::ops::start_of_stream
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:872,1
    - Dst: struct xc_sr_context*::save::ops::start_of_checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:877,1
    - Dst: struct xc_sr_context*::save::ops::check_vm_state
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:881,1
    - Dst: send_domain_memory_live
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:886,1
    - Dst: send_domain_memory_checkpointed
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:888,1
    - Dst: send_domain_memory_nonlive
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:890,1
    - Dst: dominfo_shutdown_with
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:895,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:897,1
    - Dst: struct xc_sr_context*::save::ops::end_of_checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:902,1
    - Dst: write_checkpoint_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:915,1
    - Dst: struct xc_sr_context*::save::callbacks::checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:921,1
    - Dst: struct xc_sr_context*::save::callbacks::postcopy
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:929,1
    - Dst: struct xc_sr_context*::save::callbacks::wait_checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:935,1
    - Dst: struct xc_sr_context*::save::callbacks::checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:942,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:948,1
    - Dst: xc_report_progress_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:955,1
    - Dst: write_end_record
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:957,1
    - Dst: xc_report_progress_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:961,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:967,1
    - Dst: cleanup
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:970,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 108
    argCount: 2
    argNames:
    - ctx
    - guest_type
    argTypes:
    - struct xc_sr_context*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 846
    functionDepth: 8
    functionLinenumber: 846
    functionLinenumberEnd: 979
    functionName: save
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 12
    functionsReached:
    - struct xc_sr_context*::save::callbacks::postcopy
    - struct xc_sr_context*::save::callbacks::wait_checkpoint
    - IPRINTF
    - ERROR
    - struct xc_sr_context*::save::ops::start_of_checkpoint
    - struct xc_sr_context*::save::ops::static_data
    - write_end_record
    - dominfo_shutdown_with
    - setup
    - struct xc_sr_context*::save::callbacks::checkpoint
    - cleanup
    - send_domain_memory_live
    - write_checkpoint_record
    - send_domain_memory_nonlive
    - write_headers
    - dhdr_type_to_str
    - struct xc_sr_context*::save::ops::end_of_checkpoint
    - write_static_data_end_record
    - PERROR
    - send_domain_memory_checkpointed
    - xc_report_progress_single
    - struct xc_sr_context*::save::ops::check_vm_state
    - struct xc_sr_context*::save::ops::start_of_stream
    linkageType: ''
    returnType: int
    signature: int save(struct xc_sr_context *ctx, uint16_t guest_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:998,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1000,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1010,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1013,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1017,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1021,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1025,1
    - Dst: save
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1033,1
    - Dst: save
      Src: /src/xen/tools/libs/guest/xg_sr_save.c:1038,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - xch
    - io_fd
    - dom
    - flags
    - callbacks
    - stream_type
    - recv_fd
    argTypes:
    - xc_interface*
    - int
    - uint32_t
    - uint32_t
    - struct save_callbacks*
    - xc_stream_type_t
    - int
    assertStmts:
    - condition: (callbacks->checkpoint && callbacks->postcopy)
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    - condition: (callbacks->wait_checkpoint)
      pos:
        line_end: 1009
        line_start: 1009
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    - condition: (callbacks->switch_qemu_logdirty)
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    - condition: (!"Bad stream_type")
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
    constantsTouched: []
    func_position:
      end: 1040
      start: 981
    functionDepth: 9
    functionLinenumber: 981
    functionLinenumberEnd: 1040
    functionName: xc_domain_save
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save.c
    functionUses: 2
    functionsReached:
    - save
    - PERROR
    - DPRINTF
    - assert
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom,\n                   uint32_t
      flags, struct save_callbacks *callbacks,\n                   xc_stream_type_t
      stream_type, int recv_fd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:55,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:62,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 74
    functionName: xc_dom_probe_zimage32_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    - xc_dom_printf
    linkageType: ''
    returnType: int
    signature: int xc_dom_probe_zimage32_kernel(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:83,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:92,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 122
    functionName: xc_dom_parse_zimage32_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_parse_zimage32_kernel(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:151,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:158,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 171
    functionName: xc_dom_probe_zimage64_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    - xc_dom_printf
    linkageType: ''
    returnType: int
    signature: int xc_dom_probe_zimage64_kernel(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:179,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:185,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:193,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 212
    functionName: xc_dom_parse_zimage64_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_parse_zimage64_kernel(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:222,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:224,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:227,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:232,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:234,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: xc_dom_load_zimage_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - DOMPRINTF
    - memcpy
    - xc_dom_seg_to_ptr
    linkageType: ''
    returnType: int
    signature: int xc_dom_load_zimage_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:258,1
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    functionUses: 2
    functionsReached:
    - xc_dom_register_loader
    linkageType: ''
    returnType: void
    signature: void register_loader(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: xc_try_bzip2_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
    functionUses: 0
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_bzip2_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: XEN_DUMPCORE_FORMAT_VERSION
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DUMPCORE_FORMAT_VERSION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: XEN_DUMPCORE_FORMAT_MAJOR
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DUMPCORE_FORMAT_MAJOR(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: XEN_DUMPCORE_FORMAT_MINOR
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DUMPCORE_FORMAT_MINOR(version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:50,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:52,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:56,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:57,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:59,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: setup_hypercall_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - XC_DOM_PAGE_SHIFT
    - xc_dom_panic
    - do_domctl
    - xc_dom_p2m
    - DOMPRINTF
    - strerror
    linkageType: ''
    returnType: int
    signature: int setup_hypercall_page(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:74,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:77,1
    - Dst: strtok_r
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:78,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:80,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:81,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: xc_dom_compat_check
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - xc_dom_panic
    - DOMPRINTF
    - strncpy
    - strcmp
    linkageType: ''
    returnType: int
    signature: int xc_dom_compat_check(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:99,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:100,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:102,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dom
    - xch
    - domid
    argTypes:
    - struct xc_dom_image*
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 109
    functionName: xc_dom_boot_xen_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 2
    functionsReached:
    - xc_version
    - xc_dom_panic
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_boot_xen_init(struct xc_dom_image *dom, xc_interface *xch,
      uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:115,1
    - Dst: struct xc_dom_image*::arch_hooks::meminit
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:117,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: xc_dom_boot_mem_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - struct xc_dom_image*::arch_hooks::meminit
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: int xc_dom_boot_mem_init(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:132,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:138,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:141,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:148,1
    - Dst: xc_map_foreign_ranges
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:150,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:156,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - dom
    - pfn
    - count
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 164
    functionName: xc_dom_boot_domU_map
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - xc_map_foreign_ranges
    - XC_DOM_PAGE_SHIFT
    - xc_dom_panic
    - xc_dom_p2m
    - strerror
    - xc_dom_malloc
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_boot_domU_map(struct xc_dom_image *dom, xen_pfn_t pfn,\n
      \                          xen_pfn_t count)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:171,1
    - Dst: struct xc_dom_image*::arch_hooks::bootearly
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:174,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:178,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:180,1
    - Dst: struct xc_dom_image*::arch_hooks::setup_pgtables
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:189,1
    - Dst: struct xc_dom_image*::arch_hooks::start_info
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:194,1
    - Dst: setup_hypercall_page
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:197,1
    - Dst: xc_dom_log_memory_footprint
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:199,1
    - Dst: struct xc_dom_image*::arch_hooks::bootlate
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:202,1
    - Dst: struct xc_dom_image*::arch_hooks::vcpu
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:206,1
    - Dst: xc_dom_unmap_all
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 211
    functionName: xc_dom_boot_image
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - struct xc_dom_image*::arch_hooks::vcpu
    - xc_dom_log_memory_footprint
    - xc_dom_panic
    - setup_hypercall_page
    - struct xc_dom_image*::arch_hooks::bootlate
    - xc_dom_unmap_all
    - struct xc_dom_image*::arch_hooks::bootearly
    - struct xc_dom_image*::arch_hooks::setup_pgtables
    - struct xc_dom_image*::arch_hooks::start_info
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: int xc_dom_boot_image(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:216,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:220,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:226,1
    - Dst: xc_gnttab_op
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:229,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:231,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: xc_dom_gnttab_setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xc_dom_panic
    - set_xen_guest_handle
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - xc_gnttab_op
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t xc_dom_gnttab_setup(xc_interface *xch, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - xch
    - gnttab
    - idx
    - guest_domid
    - backend_domid
    - guest_gfn
    argTypes:
    - xc_interface*
    - grant_entry_v1_t*
    - unsigned int
    - uint32_t
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: xc_dom_set_gnttab_entry
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - xc_dom_printf
    linkageType: ''
    returnType: void
    signature: "void xc_dom_set_gnttab_entry(xc_interface *xch,\n                                    grant_entry_v1_t
      *gnttab,\n                                    unsigned int idx,\n                                    uint32_t
      guest_domid,\n                                    uint32_t backend_domid,\n
      \                                   xen_pfn_t guest_gfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_gnttab_setup
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:273,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:277,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:284,1
    - Dst: xc_dom_set_gnttab_entry
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:291,1
    - Dst: xc_dom_set_gnttab_entry
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:293,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:296,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:298,1
    - Dst: xc_domain_cacheflush
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - xch
    - domid
    - console_gfn
    - xenstore_gfn
    - console_domid
    - xenstore_domid
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    - xen_pfn_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 310
    functionName: compat_gnttab_seed
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - xc_dom_set_gnttab_entry
    - munmap
    - xc_dom_panic
    - xc_domain_cacheflush
    - xc_map_foreign_range
    - xc_dom_gnttab_setup
    linkageType: ''
    returnType: int
    signature: "int compat_gnttab_seed(xc_interface *xch, uint32_t domid,\n                              xen_pfn_t
      console_gfn,\n                              xen_pfn_t xenstore_gfn,\n                              uint32_t
      console_domid,\n                              uint32_t xenstore_domid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_get_scratch_gpfn
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:329,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:332,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:341,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:344,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:347,1
    - Dst: compat_gnttab_seed
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:354,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:359,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:362,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:367,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 6
    argNames:
    - xch
    - domid
    - console_gfn
    - xenstore_gfn
    - console_domid
    - xenstore_domid
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    - xen_pfn_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 378
    functionName: compat_gnttab_hvm_seed
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    - xc_core_arch_get_scratch_gpfn
    - xc_dom_panic
    - compat_gnttab_seed
    - xc_dom_printf
    linkageType: ''
    returnType: int
    signature: "int compat_gnttab_hvm_seed(xc_interface *xch, uint32_t domid,\n                                  xen_pfn_t
      console_gfn,\n                                  xen_pfn_t xenstore_gfn,\n                                  uint32_t
      console_domid,\n                                  uint32_t xenstore_domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenforeignmemory_map_resource
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:389,1
    - Dst: compat_gnttab_hvm_seed
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:397,1
    - Dst: compat_gnttab_seed
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:400,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:404,1
    - Dst: xc_dom_set_gnttab_entry
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:410,1
    - Dst: xc_dom_set_gnttab_entry
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:412,1
    - Dst: xenforeignmemory_unmap_resource
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - xch
    - guest_domid
    - is_hvm
    - console_gfn
    - xenstore_gfn
    - console_domid
    - xenstore_domid
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - xen_pfn_t
    - xen_pfn_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 418
    functionName: xc_dom_gnttab_seed
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - xc_dom_set_gnttab_entry
    - xc_dom_panic
    - xenforeignmemory_map_resource
    - xenforeignmemory_unmap_resource
    - compat_gnttab_hvm_seed
    - compat_gnttab_seed
    linkageType: ''
    returnType: int
    signature: "int xc_dom_gnttab_seed(xc_interface *xch, uint32_t guest_domid,\n
      \                      bool is_hvm, xen_pfn_t console_gfn,\n                       xen_pfn_t
      xenstore_gfn, uint32_t console_domid,\n                       uint32_t xenstore_domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_translated
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:422,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:423,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:424,1
    - Dst: xc_dom_gnttab_seed
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: xc_dom_gnttab_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 2
    functionsReached:
    - xc_dom_translated
    - xc_dom_p2m
    - xc_dom_gnttab_seed
    linkageType: ''
    returnType: int
    signature: int xc_dom_gnttab_init(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:437,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:444,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:447,1
    - Dst: xc_domain_cacheflush
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - xch
    - domid
    - console_gfn
    - clear
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 450
    functionName: dom_console_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 1
    functionsReached:
    - memset
    - munmap
    - xc_map_foreign_range
    - xc_domain_cacheflush
    linkageType: ''
    returnType: int
    signature: "int dom_console_init(xc_interface *xch,\n                            uint32_t
      domid,\n                            xen_pfn_t console_gfn,\n                            bool
      clear)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_console_init
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - console_gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: xc_dom_console_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 1
    functionsReached:
    - dom_console_init
    linkageType: ''
    returnType: int
    signature: "int xc_dom_console_init(xc_interface *xch,\n                        uint32_t
      domid,\n                        xen_pfn_t console_gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_console_init
      Src: /src/xen/tools/libs/guest/xg_dom_boot.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - console_gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: xc_dom_console_set_disconnected
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_boot.c
    functionUses: 0
    functionsReached:
    - dom_console_init
    linkageType: ''
    returnType: int
    signature: "int xc_dom_console_set_disconnected(xc_interface *xch,\n                                    uint32_t
      domid,\n                                    xen_pfn_t console_gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzma.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: xc_try_lzma_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
    functionUses: 0
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzma_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arch_ctxt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: xc_core_arch_context_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_init(arch_ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arch_ctxt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: xc_core_arch_context_free
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_free(arch_ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - arch_ctxt
    - ','
    - ctxt
    - ','
    - xch
    - ','
    - domid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: xc_core_arch_context_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_get(arch_ctxt, ctxt, xch, domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - xch
    - ','
    - arch_ctxt
    - ','
    - args
    - ','
    - dump_rtn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: xc_core_arch_context_dump
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_core_arch_context_dump(xch, arch_ctxt, args, dump_rtn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - xch
    - arch_ctxt
    - sheaders
    - strtab
    - filesz
    - offset
    argTypes:
    - xc_interface*
    - struct xc_core_arch_context*
    - struct xc_core_section_headers*
    - struct xc_core_strtab*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: xc_core_arch_context_get_shdr
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_context_get_shdr(xc_interface *xch,\n                              struct
      xc_core_arch_context *arch_ctxt, \n                              struct xc_core_section_headers
      *sheaders,\n                              struct xc_core_strtab *strtab,\n                              uint64_t
      *filesz, uint64_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - arch_ctxt
    - pfn
    argTypes:
    - struct xc_core_arch_context*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 48
    functionName: xc_core_arch_gpfn_may_present
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_gpfn_may_present(struct xc_core_arch_context *arch_ctxt,\n
      \                             unsigned long pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:59,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:62,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - xch
    - unused
    - info
    - live_shinfo
    - mapp
    - nr_entries
    argTypes:
    - xc_interface*
    - struct xc_core_arch_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xc_core_memory_map_t**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 75
    functionName: xc_core_arch_memory_map_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached:
    - xc_domain_nr_gpfns
    - malloc
    - PERROR
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_memory_map_get(xc_interface *xch, struct xc_core_arch_context
      *unused,\n                            xc_domaininfo_t *info, shared_info_any_t
      *live_shinfo,\n                            xc_core_memory_map_t **mapp,\n                            unsigned
      int *nr_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vaddr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: is_canonical_address
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_canonical_address(uint64_t vaddr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:99,1
    - Dst: is_canonical_address
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:109,1
    - Dst: is_canonical_address
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:110,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:115,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:133,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:140,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:143,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:154,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:159,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:162,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:168,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:171,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:173,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:183,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:217,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:224,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 92
    argCount: 5
    argNames:
    - xch
    - dinfo
    - dom
    - live_shinfo
    - p2m_cr3
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - uint32_t
    - shared_info_any_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 227
    functionName: xc_core_arch_map_p2m_list_rw
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached:
    - GET_FIELD
    - PERROR
    - free
    - ERROR
    - munmap
    - malloc
    - is_canonical_address
    - xc_map_foreign_pages
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t *\nxc_core_arch_map_p2m_list_rw(xc_interface *xch, struct
      domain_info_context *dinfo,\n                             uint32_t dom, shared_info_any_t
      *live_shinfo,\n                             uint64_t p2m_cr3)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:244,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:245,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:249,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:254,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:256,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:259,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:273,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:279,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:284,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:286,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:289,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:290,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:306,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:309,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:311,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 4
    argNames:
    - xch
    - dinfo
    - dom
    - live_shinfo
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - uint32_t
    - shared_info_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 316
    functionName: xc_core_arch_map_p2m_tree_rw
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached:
    - GET_FIELD
    - PERROR
    - free
    - ERROR
    - munmap
    - malloc
    - xc_map_foreign_range
    - memset
    - xc_map_foreign_pages
    - memcpy
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t *\nxc_core_arch_map_p2m_tree_rw(xc_interface *xch, struct
      domain_info_context *dinfo,\n                             uint32_t dom, shared_info_any_t
      *live_shinfo)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:328,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:330,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:336,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:340,1
    - Dst: xc_core_arch_map_p2m_list_rw
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:342,1
    - Dst: xc_core_arch_map_p2m_tree_rw
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:343,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:348,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:355,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 6
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    - rw
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 368
    functionName: xc_core_arch_map_p2m_rw
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached:
    - xc_domain_nr_gpfns
    - GET_FIELD
    - PERROR
    - free
    - ERROR
    - xc_core_arch_map_p2m_tree_rw
    - xc_core_arch_map_p2m_list_rw
    - xc_map_foreign_pages
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m_rw(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                        shared_info_any_t *live_shinfo,
      xen_pfn_t **live_p2m, int rw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_map_p2m_rw
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: xc_core_arch_map_p2m
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 1
    functionsReached:
    - xc_core_arch_map_p2m_rw
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                        shared_info_any_t *live_shinfo,
      xen_pfn_t **live_p2m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_map_p2m_rw
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: xc_core_arch_map_p2m_writable
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 0
    functionsReached:
    - xc_core_arch_map_p2m_rw
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m_writable(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                              shared_info_any_t
      *live_shinfo, xen_pfn_t **live_p2m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_core_x86.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - gpfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: xc_core_arch_get_scratch_gpfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_x86.c
    functionUses: 1
    functionsReached:
    - xc_domain_nr_gpfns
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_get_scratch_gpfn(xc_interface *xch, uint32_t domid,\n
      \                             xen_pfn_t *gpfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:48,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:50,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:57,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 65
    functionName: xc_dom_loginit
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - fopen
    - xc_dom_printf
    - PERROR
    - xtl_createlogger_stdiostream
    linkageType: ''
    returnType: int
    signature: int xc_dom_loginit(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:71,1
    - Dst: xtl_logv
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:72,1
    - Dst: va_end
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - fmt
    argTypes:
    - xc_interface*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: xc_dom_printf
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 6
    functionsReached:
    - va_start
    - va_end
    - xtl_logv
    linkageType: ''
    returnType: void
    signature: void xc_dom_printf(xc_interface *xch, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:83,1
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:84,1
    - Dst: va_end
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:85,1
    - Dst: xc_report
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - xch
    - file
    - line
    - err
    - fmt
    argTypes:
    - xc_interface*
    - char*
    - int
    - xc_error_code
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: xc_dom_panic_func
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - va_start
    - vsnprintf
    - xc_report
    - va_end
    linkageType: ''
    returnType: void
    signature: "void xc_dom_panic_func(xc_interface *xch,\n                       const
      char *file, int line, xc_error_code err,\n                       const char
      *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:97,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:99,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dom
    - name
    - mem
    argTypes:
    - struct xc_dom_image*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: print_mem
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: void
    signature: void print_mem(struct xc_dom_image *dom, const char *name, size_t mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:106,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:107,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:108,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:109,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:110,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:111,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: xc_dom_log_memory_footprint
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - print_mem
    - DOMPRINTF
    linkageType: ''
    returnType: void
    signature: void xc_dom_log_memory_footprint(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:124,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:127,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:130,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:133,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - dom
    - size
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 141
    functionName: xc_dom_malloc
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - memset
    - print_mem
    - malloc
    - DOMPRINTF
    linkageType: ''
    returnType: void
    signature: void *xc_dom_malloc(struct xc_dom_image *dom, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:147,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:150,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:153,1
    - Dst: mmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:155,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:160,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:161,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - dom
    - size
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: xc_dom_malloc_page_aligned
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - print_mem
    - free
    - malloc
    - DOMPRINTF
    - mmap
    - memset
    linkageType: ''
    returnType: void
    signature: void *xc_dom_malloc_page_aligned(struct xc_dom_image *dom, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:178,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:181,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - dom
    - ptr
    - size
    argTypes:
    - struct xc_dom_image*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: xc_dom_register_external
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_register_external(struct xc_dom_image *dom, void *ptr, size_t
      size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:203,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:205,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:207,1
    - Dst: lseek
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:211,1
    - Dst: lseek
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:212,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:213,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:215,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:223,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:230,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:235,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:237,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:243,1
    - Dst: mmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:245,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:248,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:250,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:259,1
    - Dst: print_mem
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:261,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:266,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:267,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:268,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - dom
    - filename
    - size
    - max_size
    argTypes:
    - struct xc_dom_image*
    - char*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 270
    functionName: xc_dom_malloc_filemap
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - open
    - print_mem
    - free
    - xc_dom_panic
    - malloc
    - lseek
    - close
    - mmap
    - DOMPRINTF
    - strerror
    - memset
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_malloc_filemap(struct xc_dom_image *dom,\n                            const
      char *filename, size_t * size,\n                            const size_t max_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:284,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:287,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 292
    functionName: xc_dom_free_all
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    linkageType: ''
    returnType: void
    signature: void xc_dom_free_all(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:296,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:297,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dom
    - str
    argTypes:
    - struct xc_dom_image*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: xc_dom_strdup
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xc_dom_malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *xc_dom_strdup(struct xc_dom_image *dom, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dom
    - sz
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 321
    functionName: xc_dom_kernel_check_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: int xc_dom_kernel_check_size(struct xc_dom_image *dom, size_t sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:335,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:339,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - blob
    - ziplen
    argTypes:
    - xc_interface*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 350
    functionName: xc_dom_check_gzip
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - strncmp
    - xc_dom_printf
    linkageType: ''
    returnType: size_t
    signature: size_t xc_dom_check_gzip(xc_interface *xch, void *blob, size_t ziplen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:358,1
    - Dst: inflateInit2
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:363,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:366,1
    - Dst: inflate
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:370,1
    - Dst: inflateEnd
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:371,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:374,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - xch
    - src
    - srclen
    - dst
    - dstlen
    argTypes:
    - xc_interface*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 382
    functionName: xc_dom_do_gunzip
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - inflateInit2
    - xc_dom_panic
    - inflate
    - inflateEnd
    - memset
    - xc_dom_printf
    linkageType: ''
    returnType: int
    signature: "int xc_dom_do_gunzip(xc_interface *xch,\n                     void
      *src, size_t srclen, void *dst, size_t dstlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_check_gzip
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:389,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:393,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:396,1
    - Dst: xc_dom_do_gunzip
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: xc_dom_try_gunzip
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_check_gzip
    - xc_dom_kernel_check_size
    - xc_dom_malloc
    - xc_dom_do_gunzip
    linkageType: ''
    returnType: int
    signature: int xc_dom_try_gunzip(struct xc_dom_image *dom, void **blob, size_t
      * size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_pfn_to_ptr_retcount
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - pfn
    - count
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: xc_dom_pfn_to_ptr
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_pfn_to_ptr_retcount
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,\n
      \                       xen_pfn_t count)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:423,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:433,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:451,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:476,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:483,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:486,1
    - Dst: xc_dom_boot_domU_map
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:493,1
    - Dst: mmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:503,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:509,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:512,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:519,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 4
    argNames:
    - dom
    - pfn
    - count
    - count_out
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 525
    functionName: xc_dom_pfn_to_ptr_retcount
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - XC_DOM_PAGE_SHIFT
    - xc_dom_panic
    - DOMPRINTF
    - mmap
    - xc_dom_boot_domU_map
    - strerror
    - memset
    - xc_dom_malloc
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_pfn_to_ptr_retcount(struct xc_dom_image *dom, xen_pfn_t
      pfn,\n                                 xen_pfn_t count, xen_pfn_t *count_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:530,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:536,1
    - Dst: struct xc_dom_image*::allocate
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - dom
    - name
    - pages
    argTypes:
    - struct xc_dom_image*
    - char*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 551
    functionName: xc_dom_chk_alloc_pages
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - struct xc_dom_image*::allocate
    - xc_dom_panic
    - XC_DOM_PAGE_SIZE
    linkageType: ''
    returnType: int
    signature: "int xc_dom_chk_alloc_pages(struct xc_dom_image *dom, const char *name,\n
      \                                 xen_pfn_t pages)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:555,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:560,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:567,1
    - Dst: xc_dom_chk_alloc_pages
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dom
    - boundary
    argTypes:
    - struct xc_dom_image*
    - xen_vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 575
    functionName: xc_dom_alloc_pad
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_chk_alloc_pages
    - xc_dom_panic
    - XC_DOM_PAGE_SIZE
    linkageType: ''
    returnType: int
    signature: int xc_dom_alloc_pad(struct xc_dom_image *dom, xen_vaddr_t boundary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:581,1
    - Dst: xc_dom_alloc_pad
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:585,1
    - Dst: xc_dom_chk_alloc_pages
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:594,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:598,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:601,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - dom
    - seg
    - name
    - start
    - size
    argTypes:
    - struct xc_dom_image*
    - struct xc_dom_seg*
    - char*
    - xen_vaddr_t
    - xen_vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 611
    functionName: xc_dom_alloc_segment
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - XC_DOM_PAGE_SIZE
    - xc_dom_seg_to_ptr
    - DOMPRINTF
    - xc_dom_chk_alloc_pages
    - xc_dom_alloc_pad
    - memset
    linkageType: ''
    returnType: int
    signature: "int xc_dom_alloc_segment(struct xc_dom_image *dom,\n                         struct
      xc_dom_seg *seg, const char *name,\n                         xen_vaddr_t start,
      xen_vaddr_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_chk_alloc_pages
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:621,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dom
    - name
    argTypes:
    - struct xc_dom_image*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 627
    functionName: xc_dom_alloc_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_chk_alloc_pages
    - DOMPRINTF
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t xc_dom_alloc_page(struct xc_dom_image *dom, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:631,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:642,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:647,1
    - Dst: xc_domain_cacheflush
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - dom
    - pfn
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 654
    functionName: xc_dom_unmap_one
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - XC_DOM_PAGE_SHIFT
    - munmap
    - xc_domain_cacheflush
    - DOMPRINTF
    linkageType: ''
    returnType: void
    signature: void xc_dom_unmap_one(struct xc_dom_image *dom, xen_pfn_t pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_unmap_one
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: xc_dom_unmap_all
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - xc_dom_unmap_one
    linkageType: ''
    returnType: void
    signature: void xc_dom_unmap_all(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - loader
    argTypes:
    - struct xc_dom_loader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: xc_dom_register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xc_dom_register_loader(struct xc_dom_loader *loader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:680,1
    - Dst: struct xc_dom_loader*::probe
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:681,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:683,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:686,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 692
    functionName: xc_dom_find_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    - DOMPRINTF
    - struct xc_dom_loader*::probe
    linkageType: ''
    returnType: struct xc_dom_loader
    signature: struct xc_dom_loader *xc_dom_find_loader(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hooks
    argTypes:
    - struct xc_dom_arch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: xc_dom_register_arch_hooks
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xc_dom_register_arch_hooks(struct xc_dom_arch *hooks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:706,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:710,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:713,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 724
    functionName: xc_dom_set_arch_hooks
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - malloc
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: int xc_dom_set_arch_hooks(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:731,1
    - Dst: xc_dom_unmap_all
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:733,1
    - Dst: xc_dom_free_all
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:734,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:735,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:736,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 738
    functionName: xc_dom_release
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_free_all
    - free
    - xc_dom_unmap_all
    linkageType: ''
    returnType: void
    signature: void xc_dom_release(struct xc_dom_image *dom)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:745,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:748,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:752,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:755,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:758,1
    - Dst: xc_dom_strdup
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:766,1
    - Dst: elf_xen_parse_features
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:768,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - xch
    - cmdline
    - features
    argTypes:
    - xc_interface*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 786
    functionName: xc_dom_allocate
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - xc_dom_release
    - malloc
    - xc_dom_strdup
    - memset
    - xc_dom_printf
    - elf_xen_parse_features
    linkageType: ''
    returnType: struct xc_dom_image
    signature: "struct xc_dom_image *xc_dom_allocate(xc_interface *xch,\n                                     const
      char *cmdline, const char *features)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dom
    - sz
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: xc_dom_kernel_max_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_kernel_max_size(struct xc_dom_image *dom, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dom
    - sz
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: xc_dom_module_max_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_module_max_size(struct xc_dom_image *dom, size_t sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dom
    - sz
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: xc_dom_devicetree_max_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_devicetree_max_size(struct xc_dom_image *dom, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:811,1
    - Dst: xc_dom_malloc_filemap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:812,1
    - Dst: xc_dom_try_gunzip
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dom
    - filename
    argTypes:
    - struct xc_dom_image*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 809
    functionDepth: 4
    functionLinenumber: 809
    functionLinenumberEnd: 817
    functionName: xc_dom_kernel_file
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - xc_dom_try_gunzip
    - xc_dom_malloc_filemap
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_kernel_file(struct xc_dom_image *dom, const char *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:823,1
    - Dst: xc_dom_malloc_filemap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:825,1
    - Dst: xc_dom_strdup
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - dom
    - filename
    - cmdline
    argTypes:
    - struct xc_dom_image*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 844
    functionName: xc_dom_module_file
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 3
    functionsReached:
    - xc_dom_strdup
    - xc_dom_malloc_filemap
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_module_file(struct xc_dom_image *dom, const char *filename,
      const char *cmdline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:849,1
    - Dst: xc_dom_malloc_filemap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dom
    - filename
    argTypes:
    - struct xc_dom_image*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 861
    functionName: xc_dom_devicetree_file
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_malloc_filemap
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_devicetree_file(struct xc_dom_image *dom, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:865,1
    - Dst: xc_dom_try_gunzip
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dom
    - mem
    - memsize
    argTypes:
    - struct xc_dom_image*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 863
    functionDepth: 4
    functionLinenumber: 863
    functionLinenumberEnd: 869
    functionName: xc_dom_kernel_mem
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_try_gunzip
    linkageType: ''
    returnType: int
    signature: int xc_dom_kernel_mem(struct xc_dom_image *dom, const void *mem, size_t
      memsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:876,1
    - Dst: xc_dom_strdup
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - dom
    - mem
    - memsize
    - cmdline
    argTypes:
    - struct xc_dom_image*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 894
    functionName: xc_dom_module_mem
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_strdup
    linkageType: ''
    returnType: int
    signature: "int xc_dom_module_mem(struct xc_dom_image *dom, const void *mem,\n
      \                     size_t memsize, const char *cmdline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dom
    - mem
    - memsize
    argTypes:
    - struct xc_dom_image*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 903
    functionName: xc_dom_devicetree_mem
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - DOMPRINTF_CALLED
    linkageType: ''
    returnType: int
    signature: "int xc_dom_devicetree_mem(struct xc_dom_image *dom, const void *mem,\n
      \                         size_t memsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:909,1
    - Dst: xc_dom_find_loader
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:912,1
    - Dst: struct xc_dom_image*::kernel_loader::parser
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:915,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:919,1
    - Dst: xc_dom_compat_check
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:925,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:936,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 945
    functionName: xc_dom_parse_image
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_panic
    - xc_dom_find_loader
    - struct xc_dom_image*::kernel_loader::parser
    - xc_dom_compat_check
    linkageType: ''
    returnType: int
    signature: int xc_dom_parse_image(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dom
    - rambase
    argTypes:
    - struct xc_dom_image*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 954
    functionName: xc_dom_rambase_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_rambase_init(struct xc_dom_image *dom, uint64_t rambase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_set_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:961,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:963,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:968,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:971,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - dom
    - mem_mb
    argTypes:
    - struct xc_dom_image*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 979
    functionName: xc_dom_mem_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached:
    - XC_DOM_PAGE_SHIFT
    - xc_dom_panic
    - xc_dom_set_arch_hooks
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int xc_dom_mem_init(struct xc_dom_image *dom, unsigned int mem_mb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:991,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:996,1
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:997,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1001,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1004,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1009,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - dom
    - mod
    argTypes:
    - struct xc_dom_image*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 1015
    functionName: xc_dom_build_module
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_dom_seg_to_ptr
    - xc_dom_alloc_segment
    - xc_dom_panic
    - DOMPRINTF
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_dom_build_module(struct xc_dom_image *dom, unsigned int mod)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1030,1
    - Dst: xc_domain_add_to_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - dom
    - extents
    - num_pages
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1052
    functionName: populate_acpi_pages
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_domain_add_to_physmap
    - xc_domain_populate_physmap
    linkageType: ''
    returnType: int
    signature: "int populate_acpi_pages(struct xc_dom_image *dom,\n                               xen_pfn_t
      *extents,\n                               unsigned int num_pages)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1063,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1070,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1073,1
    - Dst: populate_acpi_pages
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1080,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1082,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1086,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1091,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1096,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1099,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1101,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1108,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1054
    functionDepth: 2
    functionLinenumber: 1054
    functionLinenumberEnd: 1110
    functionName: xc_dom_load_acpi
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - populate_acpi_pages
    - free
    - munmap
    - malloc
    - DOMPRINTF
    - xc_map_foreign_range
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_dom_load_acpi(struct xc_dom_image *dom)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1118,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1123,1
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1127,1
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1132,1
    - Dst: struct xc_dom_image*::kernel_loader::loader
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1137,1
    - Dst: xc_dom_build_module
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1148,1
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1165,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1169,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1172,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1176,1
    - Dst: xc_dom_load_acpi
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1180,1
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1186,1
    - Dst: struct xc_dom_image*::arch_hooks::alloc_p2m_list
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1189,1
    - Dst: struct xc_dom_image*::arch_hooks::alloc_magic_pages
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1191,1
    - Dst: struct xc_dom_image*::arch_hooks::alloc_pgtables
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1194,1
    - Dst: xc_dom_alloc_page
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1198,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1203,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1205,1
    - Dst: xc_dom_alloc_pad
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1209,1
    - Dst: xc_dom_build_module
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1220,1
    - Dst: struct xc_dom_image*::arch_hooks::alloc_p2m_list
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1235,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 87
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1244
    functionName: xc_dom_build_image
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 2
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_build_module
    - XC_DOM_PAGE_SIZE
    - struct xc_dom_image*::arch_hooks::alloc_pgtables
    - xc_dom_seg_to_ptr
    - xc_dom_alloc_segment
    - xc_dom_alloc_page
    - xc_dom_panic
    - DOMPRINTF
    - struct xc_dom_image*::arch_hooks::alloc_p2m_list
    - struct xc_dom_image*::arch_hooks::alloc_magic_pages
    - struct xc_dom_image*::kernel_loader::loader
    - xc_dom_alloc_pad
    - xc_dom_load_acpi
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_dom_build_image(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1249,1
    - Dst: xc_dom_pfn_to_ptr_retcount
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1256,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dom
    - vaddr
    - safe_region_out
    argTypes:
    - struct xc_dom_image*
    - xen_vaddr_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1261
    functionName: xc_dom_vaddr_to_ptr
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached:
    - xc_dom_pfn_to_ptr_retcount
    - XC_DOM_PAGE_SHIFT
    - XC_DOM_PAGE_SIZE
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_vaddr_to_ptr(struct xc_dom_image *dom,\n                          xen_vaddr_t
      vaddr, size_t *safe_region_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1266
    functionName: xc_dom_virt_base
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xc_dom_virt_base(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1271
    functionName: xc_dom_virt_entry
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xc_dom_virt_entry(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1276
    functionName: xc_dom_virt_hypercall
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xc_dom_virt_hypercall(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    functionName: xc_dom_guest_os
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xc_dom_guest_os(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_xen_feature_get
      Src: /src/xen/tools/libs/guest/xg_dom_core.c:1285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dom
    - nr
    argTypes:
    - struct xc_dom_image*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1286
    functionName: xc_dom_feature_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_core.c
    functionUses: 1
    functionsReached:
    - elf_xen_feature_get
    linkageType: ''
    returnType: bool
    signature: bool xc_dom_feature_get(struct xc_dom_image *dom, unsigned int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pte
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: pte_to_frame
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t pte_to_frame(uint64_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pte
    - mfn
    argTypes:
    - uint64_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: merge_pte
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t merge_pte(uint64_t pte, xen_pfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: round_pgup
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_pgup(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: round_pgdown
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_pgdown(_p)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 143
    functionName: find_table
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xen_bin_image_table
    signature: struct xen_bin_image_table *find_table(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_table
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: xc_dom_probe_bin_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached:
    - find_table
    linkageType: ''
    returnType: int
    signature: int xc_dom_probe_bin_kernel(struct xc_dom_image *dom)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_table
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:160,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:164,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:165,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:166,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:167,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:168,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:169,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:170,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:175,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:187,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:196,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:197,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:198,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:199,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:203,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:210,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:236,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 245
    functionName: xc_dom_parse_bin_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached:
    - strstr
    - xc_dom_panic
    - DOMPRINTF
    - find_table
    linkageType: ''
    returnType: int
    signature: int xc_dom_parse_bin_kernel(struct xc_dom_image *dom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_table
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:259,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:272,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:273,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:274,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:275,1
    - Dst: xc_dom_vaddr_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:277,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:280,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:288,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:295,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:300,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 304
    functionName: xc_dom_load_bin_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 0
    functionsReached:
    - find_table
    - DOMPRINTF
    - xc_dom_vaddr_to_ptr
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_dom_load_bin_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_binloader.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_binloader.c
    functionUses: 3
    functionsReached:
    - xc_dom_register_loader
    linkageType: ''
    returnType: void
    signature: void register_loader(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_blob
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:13,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: handle_hvm_context
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - ERROR
    - update_blob
    linkageType: ''
    returnType: int
    signature: "int handle_hvm_context(struct xc_sr_context *ctx,\n                              struct
      xc_sr_record *rec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:35,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:42,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:55,1
    - Dst: xc_dom_console_init
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:65,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:69,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:73,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:87,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:90,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 96
    functionName: handle_hvm_params
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - PERROR
    - ERROR
    - xc_dom_console_init
    - DBGPRINTF
    - xc_clear_domain_page
    linkageType: ''
    returnType: int
    signature: "int handle_hvm_params(struct xc_sr_context *ctx,\n                             struct
      xc_sr_record *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: x86_hvm_pfn_is_valid
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool x86_hvm_pfn_is_valid(const struct xc_sr_context *ctx, xen_pfn_t
      pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: x86_hvm_pfn_to_gfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t x86_hvm_pfn_to_gfn(const struct xc_sr_context *ctx,\n                                    xen_pfn_t
      pfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctx
    - pfn
    - gfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: x86_hvm_set_gfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void x86_hvm_set_gfn(struct xc_sr_context *ctx, xen_pfn_t pfn,\n                            xen_pfn_t
      gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctx
    - pfn
    - type
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: x86_hvm_set_page_type
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void x86_hvm_set_page_type(struct xc_sr_context *ctx,\n                                  xen_pfn_t
      pfn, xen_pfn_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - type
    - page
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: x86_hvm_localise_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int x86_hvm_localise_page(struct xc_sr_context *ctx,\n                                 uint32_t
      type, void *page)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:142,1
    - Dst: dhdr_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:143,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:149,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 165
    functionName: x86_hvm_setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - ERROR
    - dhdr_type_to_str
    - PERROR
    linkageType: ''
    returnType: int
    signature: int x86_hvm_setup(struct xc_sr_context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: handle_x86_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:176,1
    - Dst: handle_hvm_context
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:179,1
    - Dst: handle_hvm_params
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:182,1
    - Dst: handle_x86_cpuid_policy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:185,1
    - Dst: handle_x86_msr_policy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: x86_hvm_process_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - handle_x86_tsc_info
    - handle_hvm_params
    - handle_x86_cpuid_policy
    - handle_hvm_context
    - handle_x86_msr_policy
    linkageType: ''
    returnType: int
    signature: "int x86_hvm_process_record(struct xc_sr_context *ctx,\n                                  struct
      xc_sr_record *rec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:203,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:207,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:211,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:215,1
    - Dst: xc_domain_hvm_setcontext
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:219,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:224,1
    - Dst: xc_dom_gnttab_seed
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:228,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 198
    functionDepth: 5
    functionLinenumber: 198
    functionLinenumberEnd: 240
    functionName: x86_hvm_stream_complete
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - PERROR
    - xc_domain_hvm_setcontext
    - xc_dom_gnttab_seed
    linkageType: ''
    returnType: int
    signature: int x86_hvm_stream_complete(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:244,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:246,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: x86_hvm_cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int x86_hvm_cleanup(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common.h:202,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common.h:205,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_common.h:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - blob
    - src
    - size
    argTypes:
    - struct xc_sr_blob*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 210
    functionName: update_blob
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.h
    functionUses: 1
    functionsReached:
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int update_blob(struct xc_sr_blob *blob,\n                              const
      void *src, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_common.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: write_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.h
    functionUses: 4
    functionsReached:
    - write_split_record
    linkageType: ''
    returnType: int
    signature: "int write_record(struct xc_sr_context *ctx,\n                               struct
      xc_sr_record *rec)"
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 486
    functionName: is_known_page_type
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_known_page_type(uint32_t type)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 515
    functionName: page_type_to_populate
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool page_type_to_populate(uint32_t type)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 542
    functionName: page_type_has_stream_data
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool page_type_has_stream_data(uint32_t type)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/guest/xg_private.c:37,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:39,1
    - Dst: gzdopen
      Src: /src/xen/tools/libs/guest/xg_private.c:43,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:45,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_private.c:54,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:56,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_private.c:57,1
    - Dst: gzread
      Src: /src/xen/tools/libs/guest/xg_private.c:63,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:67,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_private.c:68,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:74,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_private.c:75,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_private.c:90,1
    - Dst: gzclose
      Src: /src/xen/tools/libs/guest/xg_private.c:96,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_private.c:98,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - xch
    - filename
    - size
    argTypes:
    - xc_interface*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 100
    functionName: xc_read_image
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.c
    functionUses: 0
    functionsReached:
    - gzclose
    - open
    - PERROR
    - free
    - gzread
    - gzdopen
    - close
    - realloc
    linkageType: ''
    returnType: char
    signature: "char *xc_read_image(xc_interface *xch,\n                    const
      char *filename, unsigned long *size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_private.c:125,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_private.c:126,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:129,1
    - Dst: inflateInit2
      Src: /src/xen/tools/libs/guest/xg_private.c:137,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:140,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_private.c:141,1
    - Dst: inflate
      Src: /src/xen/tools/libs/guest/xg_private.c:146,1
    - Dst: inflateEnd
      Src: /src/xen/tools/libs/guest/xg_private.c:147,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_private.c:150,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_private.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - xch
    - in_buf
    - in_size
    - out_size
    argTypes:
    - xc_interface*
    - char*
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 159
    functionName: xc_inflate_buffer
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.c
    functionUses: 0
    functionsReached:
    - free
    - inflateInit2
    - ERROR
    - malloc
    - inflate
    - inflateEnd
    - memset
    linkageType: ''
    returnType: char
    signature: "char *xc_inflate_buffer(xc_interface *xch,\n                        const
      char *in_buf, unsigned long in_size,\n                        unsigned long
      *out_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_mmuext_op
      Src: /src/xen/tools/libs/guest/xg_private.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - xch
    - type
    - mfn
    - dom
    argTypes:
    - xc_interface*
    - unsigned int
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: pin_table
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.c
    functionUses: 0
    functionsReached:
    - xc_mmuext_op
    linkageType: ''
    returnType: int
    signature: "int pin_table(\n    xc_interface *xch, unsigned int type, unsigned
      long mfn, uint32_t dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - page
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: csum_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long csum_page(void *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _p
    - ','
    - _f
    - ','
    - _w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: GET_FIELD
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_FIELD(_p, _f, _w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _p
    - ','
    - _f
    - ','
    - _v
    - ','
    - _w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: SET_FIELD
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FIELD(_p, _f, _v, _w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: get_unaligned_le32
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_unaligned_le32(const uint8_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: NRPAGES
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NRPAGES(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pfn
    - p2m
    - gwidth
    argTypes:
    - xen_pfn_t
    - xen_pfn_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: xc_pfn_to_mfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t xc_pfn_to_mfn(xen_pfn_t pfn, xen_pfn_t *p2m,\n                                      unsigned
      gwidth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: M2P_SIZE
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M2P_SIZE(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: M2P_CHUNKS
    functionSourceFile: /src/xen/tools/libs/guest/xg_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M2P_CHUNKS(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: bitmaskof
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitmaskof(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: featureword_of
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: featureword_of(idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - caps
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: xc_get_cpu_levelling_caps
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:57,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:62,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:68,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:70,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - index
    - nr_features
    - featureset
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 78
    functionName: xc_get_cpu_featureset
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_get_cpu_featureset(xc_interface *xch, uint32_t index,\n                          uint32_t
      *nr_features, uint32_t *featureset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: xc_get_cpu_featureset_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xc_get_cpu_featureset_size(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:89,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:91,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:92,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:93,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:94,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:95,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:96,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:97,1
    - Dst: MASK
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:98,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mask
    argTypes:
    - enum xc_static_cpu_featuremask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: xc_get_static_cpu_featuremask
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - MASK
    - ARRAY_SIZE
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t *xc_get_static_cpu_featuremask(\n    enum xc_static_cpu_featuremask
      mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - nr_leaves
    - nr_msrs
    argTypes:
    - xc_interface*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: xc_cpu_policy_get_size
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_get_size(xc_interface *xch, uint32_t *nr_leaves,\n
      \                          uint32_t *nr_msrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:133,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:136,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:141,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:142,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:147,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:149,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:151,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:154,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - xch
    - index
    - nr_leaves
    - leaves
    - nr_msrs
    - msrs
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - xen_cpuid_leaf_t*
    - uint32_t*
    - xen_msr_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 164
    functionName: get_system_cpu_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int get_system_cpu_policy(xc_interface *xch, uint32_t index,\n                                 uint32_t
      *nr_leaves, xen_cpuid_leaf_t *leaves,\n                                 uint32_t
      *nr_msrs, xen_msr_entry_t *msrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:171,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:174,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:179,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:180,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:185,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:187,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:189,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:192,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - xch
    - domid
    - nr_leaves
    - leaves
    - nr_msrs
    - msrs
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - xen_cpuid_leaf_t*
    - uint32_t*
    - xen_msr_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 202
    functionName: get_domain_cpu_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int get_domain_cpu_policy(xc_interface *xch, uint32_t domid,\n                                 uint32_t
      *nr_leaves, xen_cpuid_leaf_t *leaves,\n                                 uint32_t
      *nr_msrs, xen_msr_entry_t *msrs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:211,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:214,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:223,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:224,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:229,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:231,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:233,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:236,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 9
    argNames:
    - xch
    - domid
    - nr_leaves
    - leaves
    - nr_msrs
    - msrs
    - err_leaf_p
    - err_subleaf_p
    - err_msr_p
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - xen_cpuid_leaf_t*
    - uint32_t
    - xen_msr_entry_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 247
    functionName: xc_set_domain_cpu_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_set_domain_cpu_policy(xc_interface *xch, uint32_t domid,\n
      \                            uint32_t nr_leaves, xen_cpuid_leaf_t *leaves,\n
      \                            uint32_t nr_msrs, xen_msr_entry_t *msrs,\n                             uint32_t
      *err_leaf_p, uint32_t *err_subleaf_p,\n                             uint32_t
      *err_msr_p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - l
    - r
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: compare_leaves
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_leaves(const void *l, const void *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - leaves
    - nr_leaves
    - xend
    argTypes:
    - xen_cpuid_leaf_t*
    - unsigned int
    - struct xc_xend_cpuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: find_leaf
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: xen_cpuid_leaf_t
    signature: "xen_cpuid_leaf_t *find_leaf(\n    xen_cpuid_leaf_t *leaves, unsigned
      int nr_leaves,\n    const struct xc_xend_cpuid *xend)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:287,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:289,1
    - Dst: xc_cpu_policy_get_size
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:295,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:298,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:304,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:305,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:306,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:308,1
    - Dst: get_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:315,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:318,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:326,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:331,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:339,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:343,1
    - Dst: find_leaf
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:351,1
    - Dst: find_leaf
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:352,1
    - Dst: find_leaf
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:353,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:357,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:361,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:379,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:382,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:385,1
    - Dst: clear_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:390,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:392,1
    - Dst: xc_set_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:398,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:402,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:411,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:412,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:413,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 3
    argNames:
    - xch
    - domid
    - xend
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xc_xend_cpuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 416
    functionName: xc_cpuid_xend_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - get_system_cpu_policy
    - PERROR
    - calloc
    - get_domain_cpu_policy
    - ARRAY_SIZE
    - free
    - ERROR
    - xc_cpu_policy_get_size
    - find_leaf
    - clear_bit
    - test_bit
    - xc_domain_getinfo_single
    - xc_set_domain_cpu_policy
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int xc_cpuid_xend_policy(\n    xc_interface *xch, uint32_t domid,
      const struct xc_xend_cpuid *xend)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - l
    - r
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: compare_msr
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_msr(const void *l, const void *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msrs
    - nr_msrs
    - index
    argTypes:
    - xen_msr_entry_t*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: find_msr
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: xen_msr_entry_t
    signature: "xen_msr_entry_t *find_msr(\n    xen_msr_entry_t *msrs, unsigned int
      nr_msrs,\n    uint32_t index)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:454,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:456,1
    - Dst: xc_cpu_policy_get_size
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:462,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:465,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:470,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:471,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:472,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:474,1
    - Dst: get_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:482,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:485,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:493,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:498,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:506,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:510,1
    - Dst: find_msr
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:517,1
    - Dst: find_msr
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:518,1
    - Dst: find_msr
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:519,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:524,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:529,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:538,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:540,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:543,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:550,1
    - Dst: clear_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:552,1
    - Dst: xc_set_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:557,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:561,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:570,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:571,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:572,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 3
    argNames:
    - xch
    - domid
    - msr
    argTypes:
    - xc_interface*
    - domid_t
    - struct xc_msr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 575
    functionName: xc_msr_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - get_system_cpu_policy
    - PERROR
    - calloc
    - get_domain_cpu_policy
    - ARRAY_SIZE
    - free
    - ERROR
    - xc_cpu_policy_get_size
    - clear_bit
    - find_msr
    - test_bit
    - xc_domain_getinfo_single
    - xc_set_domain_cpu_policy
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int xc_msr_policy(xc_interface *xch, domid_t domid,\n                         const
      struct xc_msr *msr)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpu_policy_init
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:586,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:587,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:590,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:595,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:597,1
    - Dst: xc_get_cpu_featureset
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:604,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:609,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:615,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:620,1
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:625,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:629,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:630,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:651,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:652,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:653,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:657,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:660,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:661,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:662,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:677,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:685,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:688,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:695,1
    - Dst: x86_cpu_policy_lookup_deep_deps
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:696,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:699,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:706,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:726,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:727,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:752,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:787,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:788,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:791,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:791,1
    - Dst: xc_set_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:795,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:799,1
    - Dst: xc_cpuid_xend_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:805,1
    - Dst: xc_msr_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:810,1
    - Dst: xc_cpu_policy_destroy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:818,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 122
    argCount: 10
    argNames:
    - xch
    - domid
    - restore
    - featureset
    - nr_features
    - pae
    - itsc
    - nested_virt
    - xend
    - msr
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - uint32_t*
    - unsigned int
    - bool
    - bool
    - bool
    - struct xc_xend_cpuid*
    - struct xc_msr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 821
    functionName: xc_cpuid_apply_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - ERROR
    - xc_get_cpu_featureset
    - xc_msr_policy
    - xc_cpu_policy_destroy
    - get_system_cpu_policy
    - ARRAY_SIZE
    - x86_cpu_featureset_to_policy
    - test_bit
    - x86_cpuid_copy_to_buffer
    - min
    - x86_cpuid_copy_from_buffer
    - xc_domain_getinfo_single
    - PERROR
    - xc_cpu_policy_init
    - x86_cpu_policy_lookup_deep_deps
    - xc_set_domain_cpu_policy
    - strerror
    - memcpy
    - xc_cpuid_xend_policy
    linkageType: ''
    returnType: int
    signature: "int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, bool
      restore,\n                          const uint32_t *featureset, unsigned int
      nr_features,\n                          bool pae, bool itsc, bool nested_virt,\n
      \                         const struct xc_xend_cpuid *xend,\n                          const
      struct xc_msr *msr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: xc_cpu_policy_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - calloc
    linkageType: ''
    returnType: xc_cpu_policy_t
    signature: xc_cpu_policy_t *xc_cpu_policy_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - policy
    argTypes:
    - xc_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 836
    functionName: xc_cpu_policy_destroy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xc_cpu_policy_destroy(xc_cpu_policy_t *policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:844,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:849,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:850,1
    - Dst: x86_msr_copy_from_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:854,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:859,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - xch
    - policy
    - nr_leaves
    - nr_entries
    argTypes:
    - xc_interface*
    - xc_cpu_policy_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 865
    functionName: deserialize_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strerror
    - x86_cpuid_copy_from_buffer
    - x86_msr_copy_from_buffer
    linkageType: ''
    returnType: int
    signature: "int deserialize_policy(xc_interface *xch, xc_cpu_policy_t *policy,\n
      \                             unsigned int nr_leaves, unsigned int nr_entries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:870,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:871,1
    - Dst: get_system_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:874,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:878,1
    - Dst: deserialize_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - policy_idx
    - policy
    argTypes:
    - xc_interface*
    - unsigned int
    - xc_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 890
    functionName: xc_cpu_policy_get_system
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - deserialize_policy
    - get_system_cpu_policy
    - PERROR
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx,\n
      \                            xc_cpu_policy_t *policy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:895,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:896,1
    - Dst: get_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:899,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:903,1
    - Dst: deserialize_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - domid
    - policy
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 915
    functionName: xc_cpu_policy_get_domain
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - PERROR
    - deserialize_policy
    - get_domain_cpu_policy
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid,\n
      \                            xc_cpu_policy_t *policy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:921,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:922,1
    - Dst: xc_cpu_policy_serialise
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:925,1
    - Dst: xc_set_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:930,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:935,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:936,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:938,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:940,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - domid
    - policy
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 944
    functionName: xc_cpu_policy_set_domain
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - ERROR
    - xc_cpu_policy_serialise
    - strerror
    - xc_set_domain_cpu_policy
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_set_domain(xc_interface *xch, uint32_t domid,\n
      \                            xc_cpu_policy_t *policy)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:954,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:957,1
    - Dst: x86_msr_copy_to_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:965,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - xch
    - p
    - leaves
    - nr_leaves
    - msrs
    - nr_msrs
    argTypes:
    - xc_interface*
    - xc_cpu_policy_t*
    - xen_cpuid_leaf_t*
    - uint32_t*
    - xen_msr_entry_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 976
    functionName: xc_cpu_policy_serialise
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 1
    functionsReached:
    - ERROR
    - x86_msr_copy_to_buffer
    - x86_cpuid_copy_to_buffer
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t
      *p,\n                            xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves,\n
      \                           xen_msr_entry_t *msrs, uint32_t *nr_msrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:983,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:989,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - policy
    - leaves
    - nr
    argTypes:
    - xc_interface*
    - xc_cpu_policy_t*
    - xen_cpuid_leaf_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 996
    functionName: xc_cpu_policy_update_cpuid
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strerror
    - x86_cpuid_copy_from_buffer
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_update_cpuid(xc_interface *xch, xc_cpu_policy_t
      *policy,\n                               const xen_cpuid_leaf_t *leaves,\n                               uint32_t
      nr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_msr_copy_from_buffer
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1002,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1007,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1008,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - policy
    - msrs
    - nr
    argTypes:
    - xc_interface*
    - xc_cpu_policy_t*
    - xen_msr_entry_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1014
    functionName: xc_cpu_policy_update_msrs
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - ERROR
    - strerror
    - x86_msr_copy_from_buffer
    linkageType: ''
    returnType: int
    signature: "int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy,\n
      \                             const xen_msr_entry_t *msrs, uint32_t nr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpu_policies_are_compatible
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1020,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1026,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_cpuid_x86.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - host
    - guest
    argTypes:
    - xc_interface*
    - xc_cpu_policy_t*
    - xc_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1031
    functionName: xc_cpu_policy_is_compatible
    functionSourceFile: /src/xen/tools/libs/guest/xg_cpuid_x86.c
    functionUses: 0
    functionsReached:
    - x86_cpu_policies_are_compatible
    - ERROR
    linkageType: ''
    returnType: bool
    signature: "bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t
      *host,\n                                 xc_cpu_policy_t *guest)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:16,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:18,1
    - Dst: ntohl
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:22,1
    - Dst: ntohl
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:23,1
    - Dst: ntohs
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:24,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:28,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:34,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:40,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:47,1
    - Dst: read_exact
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:53,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:55,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:64,1
    - Dst: dhdr_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:65,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:66,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:69,1
    - Dst: dhdr_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 72
    functionName: read_headers
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - ntohs
    - PERROR
    - IPRINTF
    - ERROR
    - DPRINTF
    - ntohl
    - dhdr_type_to_str
    - read_exact
    linkageType: ''
    returnType: int
    signature: int read_headers(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: pfn_is_populated
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool pfn_is_populated(const struct xc_sr_context *ctx, xen_pfn_t pfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:110,1
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:111,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:112,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:115,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:120,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:126,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:126,1
    - Dst: set_bit
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts:
    - condition: (!test_bit(pfn, ctx->restore.populated_pfns))
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
    constantsTouched: []
    func_position:
      end: 130
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 130
    functionName: pfn_set_populated
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - set_bit
    - ERROR
    - memset
    - test_bit
    - realloc
    - assert
    - bitmap_size
    linkageType: ''
    returnType: int
    signature: int pfn_set_populated(struct xc_sr_context *ctx, xen_pfn_t pfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:143,1
    - Dst: struct xc_sr_context*::restore::ops::set_gfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - gfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 160
    functionName: populate_small_superpage
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - struct xc_sr_context*::restore::ops::set_gfn
    - xc_domain_populate_physmap_exact
    linkageType: ''
    returnType: bool
    signature: bool populate_small_superpage(struct xc_sr_context *ctx, xen_pfn_t
      gfn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:171,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:172,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:181,1
    - Dst: page_type_to_populate
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:190,1
    - Dst: pfn_is_populated
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:191,1
    - Dst: pfn_set_populated
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:193,1
    - Dst: populate_small_superpage
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:210,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:220,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:224,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:232,1
    - Dst: struct xc_sr_context*::restore::ops::set_gfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:237,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:244,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:245,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - ctx
    - count
    - original_pfns
    - types
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    - xen_pfn_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 248
    functionName: populate_pfns
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - PERROR
    - page_type_to_populate
    - populate_small_superpage
    - ERROR
    - free
    - malloc
    - pfn_is_populated
    - pfn_set_populated
    - xc_domain_populate_physmap_exact
    - struct xc_sr_context*::restore::ops::set_gfn
    linkageType: ''
    returnType: int
    signature: "int populate_pfns(struct xc_sr_context *ctx, unsigned int count,\n
      \                 const xen_pfn_t *original_pfns, const uint32_t *types)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:259,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:260,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:270,1
    - Dst: populate_pfns
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:275,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:278,1
    - Dst: struct xc_sr_context*::restore::ops::set_page_type
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:284,1
    - Dst: page_type_has_stream_data
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:286,1
    - Dst: struct xc_sr_context*::restore::ops::pfn_to_gfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:287,1
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:294,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:300,1
    - Dst: page_type_has_stream_data
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:307,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:313,1
    - Dst: struct xc_sr_context*::restore::ops::localise_page
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:319,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:322,1
    - Dst: memcmp
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:330,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:331,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:337,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:350,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:352,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:353,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 5
    argNames:
    - ctx
    - count
    - pfns
    - types
    - page_data
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    - xen_pfn_t*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 356
    functionName: process_page_data
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - struct xc_sr_context*::restore::ops::pfn_to_gfn
    - PERROR
    - memcmp
    - free
    - ERROR
    - malloc
    - xenforeignmemory_map
    - populate_pfns
    - xenforeignmemory_unmap
    - page_type_has_stream_data
    - memcpy
    - struct xc_sr_context*::restore::ops::set_page_type
    - struct xc_sr_context*::restore::ops::localise_page
    linkageType: ''
    returnType: int
    signature: "int process_page_data(struct xc_sr_context *ctx, unsigned int count,\n
      \                            xen_pfn_t *pfns, uint32_t *types, void *page_data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: handle_static_data_end
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:381,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:384,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:392,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:399,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:406,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:412,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:417,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:418,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:421,1
    - Dst: struct xc_sr_context*::restore::ops::pfn_is_valid
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:429,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:431,1
    - Dst: is_known_page_type
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:436,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:438,1
    - Dst: page_type_has_stream_data
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:443,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:456,1
    - Dst: process_page_data
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:462,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:465,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:466,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 469
    functionName: handle_page_data
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - free
    - ERROR
    - is_known_page_type
    - malloc
    - process_page_data
    - struct xc_sr_context*::restore::ops::pfn_is_valid
    - handle_static_data_end
    - page_type_has_stream_data
    linkageType: ''
    returnType: int
    signature: int handle_page_data(struct xc_sr_context *ctx, struct xc_sr_record
      *rec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_logdirty_control
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:490,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:492,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:495,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:501,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:506,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:509,1
    - Dst: test_bit
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:516,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:521,1
    - Dst: writev_exact
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:533,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:533,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:535,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:541,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 543
    functionName: send_checkpoint_dirty_pfn_list
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ARRAY_SIZE
    - free
    - ERROR
    - malloc
    - writev_exact
    - xc_logdirty_control
    - test_bit
    - HYPERCALL_BUFFER
    linkageType: ''
    returnType: int
    signature: int send_checkpoint_dirty_pfn_list(struct xc_sr_context *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:554,1
    - Dst: struct xc_sr_context*::restore::callbacks::checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:559,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:580,1
    - Dst: process_record
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:584,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:589,1
    - Dst: if
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:602,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 608
    functionName: handle_checkpoint
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - if
    - IPRINTF
    - ERROR
    - struct xc_sr_context*::restore::callbacks::checkpoint
    - process_record
    linkageType: ''
    returnType: int
    signature: int handle_checkpoint(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: HANDLE_CALLBACK_RETURN_VALUE
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_CALLBACK_RETURN_VALUE(ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:654,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:658,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 670
    functionName: buffer_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 0
    functionsReached:
    - realloc
    - ERROR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int buffer_record(struct xc_sr_context *ctx, struct xc_sr_record *rec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:680,1
    - Dst: struct xc_sr_context*::restore::ops::static_data_complete
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:686,1
    - Dst: struct xc_sr_context*::restore::callbacks::static_data_done
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:691,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 696
    functionName: handle_static_data_end
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 1
    functionsReached:
    - struct xc_sr_context*::restore::ops::static_data_complete
    - ERROR
    - struct xc_sr_context*::restore::callbacks::static_data_done
    linkageType: ''
    returnType: int
    signature: int handle_static_data_end(struct xc_sr_context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: handle_page_data
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:709,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:713,1
    - Dst: handle_checkpoint
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:718,1
    - Dst: handle_static_data_end
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:722,1
    - Dst: struct xc_sr_context*::restore::ops::process_record
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:726,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:730,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 698
    functionDepth: 5
    functionLinenumber: 698
    functionLinenumberEnd: 734
    functionName: process_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 3
    functionsReached:
    - free
    - DPRINTF
    - handle_static_data_end
    - struct xc_sr_context*::restore::ops::process_record
    - handle_checkpoint
    - handle_page_data
    linkageType: ''
    returnType: int
    signature: int process_record(struct xc_sr_context *ctx, struct xc_sr_record *rec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc_pages
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:745,1
    - Dst: NRPAGES
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:746,1
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:746,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:750,1
    - Dst: struct xc_sr_context*::restore::ops::setup
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:756,1
    - Dst: bitmap_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:761,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:765,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:770,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 782
    functionName: setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 18
    functionsReached:
    - xc_hypercall_buffer_alloc_pages
    - NRPAGES
    - struct xc_sr_context*::restore::ops::setup
    - ERROR
    - malloc
    - bitmap_alloc
    - bitmap_size
    linkageType: ''
    returnType: int
    signature: int setup(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:792,1
    - Dst: xc_hypercall_buffer_free_pages
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:795,1
    - Dst: NRPAGES
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:796,1
    - Dst: bitmap_size
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:796,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:798,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:799,1
    - Dst: struct xc_sr_context*::restore::ops::cleanup
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:801,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:802,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 803
    functionName: cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 17
    functionsReached:
    - NRPAGES
    - PERROR
    - free
    - struct xc_sr_context*::restore::ops::cleanup
    - xc_hypercall_buffer_free_pages
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void cleanup(struct xc_sr_context *ctx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:814,1
    - Dst: setup
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:816,1
    - Dst: read_record
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:822,1
    - Dst: buffer_record
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:835,1
    - Dst: process_record
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:841,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:845,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:846,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:849,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:850,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:868,1
    - Dst: struct xc_sr_context*::restore::ops::stream_complete
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:876,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:880,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:886,1
    - Dst: cleanup
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:889,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 898
    functionName: restore
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 12
    functionsReached:
    - struct xc_sr_context*::restore::ops::stream_complete
    - PERROR
    - IPRINTF
    - ERROR
    - DPRINTF
    - read_record
    - setup
    - buffer_record
    - cleanup
    - process_record
    - rec_type_to_str
    linkageType: ''
    returnType: int
    signature: int restore(struct xc_sr_context *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:929,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:935,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:941,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:945,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:947,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:952,1
    - Dst: read_headers
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:957,1
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:960,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:962,1
    - Dst: restore
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:969,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:972,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore.c:977,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 13
    argNames:
    - xch
    - io_fd
    - dom
    - store_evtchn
    - store_mfn
    - store_domid
    - console_evtchn
    - console_gfn
    - console_domid
    - stream_type
    - callbacks
    - send_back_fd
    - memflags
    argTypes:
    - xc_interface*
    - int
    - uint32_t
    - unsigned int
    - unsigned long*
    - uint32_t
    - unsigned int
    - unsigned long*
    - uint32_t
    - xc_stream_type_t
    - struct restore_callbacks*
    - int
    - unsigned int
    assertStmts:
    - condition: "(callbacks->suspend &&\n               callbacks->postcopy &&\n
        \              callbacks->wait_checkpoint &&\n               callbacks->restore_results)"
      pos:
        line_end: 931
        line_start: 928
        source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
    - condition: (callbacks->checkpoint)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
    - condition: (!"Bad stream_type")
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
    constantsTouched: []
    func_position:
      end: 986
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 986
    functionName: xc_domain_restore
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore.c
    functionUses: 2
    functionsReached:
    - xc_domain_nr_gpfns
    - PERROR
    - restore
    - IPRINTF
    - DPRINTF
    - assert
    - xc_domain_getinfo_single
    - read_headers
    linkageType: ''
    returnType: int
    signature: "int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,\n
      \                     unsigned int store_evtchn, unsigned long *store_mfn,\n
      \                     uint32_t store_domid, unsigned int console_evtchn,\n                      unsigned
      long *console_gfn, uint32_t console_domid,\n                      xc_stream_type_t
      stream_type,\n                      struct restore_callbacks *callbacks, int
      send_back_fd,\n                      unsigned int memflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: cpu_to_le32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t cpu_to_le32(const uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: le32_to_cpu
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t le32_to_cpu(const uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: xc_try_xz_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
    functionUses: 0
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_xz_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: likely
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: unlikely
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap16
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: le16_to_cpu
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t le16_to_cpu(uint16_t v)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:54,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:55,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:60,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:67,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:81,1
    - Dst: lz4_decompress_unknownoutputsize
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:95,1
    - Dst: xc_dom_register_external
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:108,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:127,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:129,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 3
    argNames:
    - dom
    - blob
    - psize
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 131
    functionName: xc_try_lz4_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - free
    - lz4_decompress_unknownoutputsize
    - malloc
    - DOMPRINTF
    - xc_dom_register_external
    - xc_dom_kernel_check_size
    linkageType: ''
    returnType: int
    signature: "int xc_try_lz4_decode(\n\tstruct xc_dom_image *dom, void **blob, size_t
      *psize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: xc_try_lz4_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
    functionUses: 0
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_lz4_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: unsafe_error
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: void
    signature: void unsafe_error(const char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c:19,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: unsafe_flush
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c
    functionUses: 0
    functionsReached:
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int unsafe_flush(void *src, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c:38,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - fn
    - dom
    - blob
    - size
    argTypes:
    - decompress_fn
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 48
    functionName: xc_dom_decompress_unsafe
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c
    functionUses: 4
    functionsReached:
    - free
    - fn
    linkageType: ''
    returnType: int
    signature: "int xc_dom_decompress_unsafe(\n    decompress_fn fn, struct xc_dom_image
      *dom, void **blob, size_t *size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:18,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:21,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:26,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:29,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:34,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:38,1
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:44,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:47,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 10
    functionDepth: 2
    functionLinenumber: 10
    functionLinenumberEnd: 54
    functionName: write_hvm_context
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - write_record
    - PERROR
    - free
    - malloc
    - xc_domain_hvm_getcontext
    linkageType: ''
    returnType: int
    signature: int write_hvm_context(struct xc_sr_context *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:82,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:94,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:99,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:102,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:118,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 123
    functionName: write_hvm_params
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - write_split_record
    - PERROR
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int write_hvm_params(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: x86_hvm_pfn_to_gfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t x86_hvm_pfn_to_gfn(const struct xc_sr_context *ctx,\n                                    xen_pfn_t
      pfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - type
    - page
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: x86_hvm_normalise_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int x86_hvm_normalise_page(struct xc_sr_context *ctx,\n                                  xen_pfn_t
      type, void **page)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:143,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:145,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:153,1
    - Dst: struct xc_sr_context*::save::callbacks::switch_qemu_logdirty
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:160,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: x86_hvm_setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - xc_domain_nr_gpfns
    - PERROR
    - struct xc_sr_context*::save::callbacks::switch_qemu_logdirty
    linkageType: ''
    returnType: int
    signature: int x86_hvm_setup(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_x86_cpu_policy_records
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: x86_hvm_static_data
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - write_x86_cpu_policy_records
    linkageType: ''
    returnType: int
    signature: int x86_hvm_static_data(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: x86_hvm_start_of_stream
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int x86_hvm_start_of_stream(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: x86_hvm_start_of_checkpoint
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int x86_hvm_start_of_checkpoint(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: x86_hvm_check_vm_state
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int x86_hvm_check_vm_state(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_x86_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:197,1
    - Dst: write_hvm_context
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:202,1
    - Dst: write_hvm_params
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 212
    functionName: x86_hvm_end_of_checkpoint
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - write_hvm_params
    - write_x86_tsc_info
    - write_hvm_context
    linkageType: ''
    returnType: int
    signature: int x86_hvm_end_of_checkpoint(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct xc_sr_context*::save::callbacks::switch_qemu_logdirty
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:220,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: x86_hvm_cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
    functionUses: 0
    functionsReached:
    - PERROR
    - struct xc_sr_context*::save::callbacks::switch_qemu_logdirty
    linkageType: ''
    returnType: int
    signature: int x86_hvm_cleanup(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: dhdr_type_to_str
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.c
    functionUses: 3
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *dhdr_type_to_str(uint32_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: rec_type_to_str
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *rec_type_to_str(uint32_t type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:62,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:63,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:74,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:75,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:80,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:82,1
    - Dst: writev_exact
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:84,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:84,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - ctx
    - rec
    - buf
    - sz
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    - void*
    - size_t
    assertStmts:
    - condition: (rec->data)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/xen/tools/libs/guest/xg_sr_common.c
    - condition: (buf)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/xen/tools/libs/guest/xg_sr_common.c
    constantsTouched: []
    func_position:
      end: 92
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 92
    functionName: write_split_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.c
    functionUses: 2
    functionsReached:
    - ROUNDUP
    - PERROR
    - ARRAY_SIZE
    - ERROR
    - typeof
    - writev_exact
    - assert
    - rec_type_to_str
    linkageType: ''
    returnType: int
    signature: "int write_split_record(struct xc_sr_context *ctx, struct xc_sr_record
      *rec,\n                       void *buf, size_t sz)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:100,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:102,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:108,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:109,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:113,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:117,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:121,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:122,1
    - Dst: read_exact
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:126,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:128,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:130,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - fd
    - rec
    argTypes:
    - struct xc_sr_context*
    - int
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 142
    functionName: read_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.c
    functionUses: 4
    functionsReached:
    - ROUNDUP
    - PERROR
    - free
    - ERROR
    - malloc
    - read_exact
    - rec_type_to_str
    linkageType: ''
    returnType: int
    signature: int read_record(struct xc_sr_context *ctx, int fd, struct xc_sr_record
      *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:146,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:147,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:148,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:150,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:151,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:152,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:153,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:154,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:155,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_sr_common.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: build_assertions
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:85,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:89,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:92,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: xc_core_strtab_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - PERROR
    linkageType: ''
    returnType: struct xc_core_strtab
    signature: 'struct xc_core_strtab *

      xc_core_strtab_init(xc_interface *xch)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:109,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strtab
    argTypes:
    - struct xc_core_strtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: xc_core_strtab_free
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xc_core_strtab_free(struct xc_core_strtab *strtab)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/guest/xg_core.c:117,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:121,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:131,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_core.c:136,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:139,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/guest/xg_core.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - xch
    - strtab
    - name
    argTypes:
    - xc_interface*
    - struct xc_core_strtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 151
    functionName: xc_core_strtab_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - realloc
    - strcpy
    - strlen
    - PERROR
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t xc_core_strtab_get(xc_interface *xch, struct xc_core_strtab
      *strtab, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:168,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:174,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: xc_core_shdr_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: struct xc_core_section_headers
    signature: 'struct xc_core_section_headers *

      xc_core_shdr_init(xc_interface *xch)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:186,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sheaders
    argTypes:
    - struct xc_core_section_headers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: xc_core_shdr_free
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void xc_core_shdr_free(struct xc_core_section_headers *sheaders)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_core.c:205,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - xch
    - sheaders
    argTypes:
    - xc_interface*
    - struct xc_core_section_headers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 216
    functionName: xc_core_shdr_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - memset
    - realloc
    linkageType: ''
    returnType: Elf64_Shdr
    signature: "Elf64_Shdr *\nxc_core_shdr_get(xc_interface *xch,\n                 struct
      xc_core_section_headers *sheaders)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_strtab_get
      Src: /src/xen/tools/libs/guest/xg_core.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 9
    argNames:
    - xch
    - shdr
    - strtab
    - name
    - type
    - offset
    - size
    - addralign
    - entsize
    argTypes:
    - xc_interface*
    - Elf64_Shdr*
    - struct xc_core_strtab*
    - char*
    - uint32_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 237
    functionName: xc_core_shdr_set
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - xc_core_strtab_get
    linkageType: ''
    returnType: int
    signature: "int xc_core_shdr_set(xc_interface *xch,\n                 Elf64_Shdr
      *shdr,\n                 struct xc_core_strtab *strtab,\n                 const
      char *name, uint32_t type,\n                 uint64_t offset, uint64_t size,\n
      \                uint64_t addralign, uint64_t entsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - ehdr
    argTypes:
    - Elf64_Ehdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: xc_core_ehdr_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void xc_core_ehdr_init(Elf64_Ehdr *ehdr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:274,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:276,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:282,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:287,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:292,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:297,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:301,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_core.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - xch
    - xen_version
    argTypes:
    - xc_interface*
    - struct xen_dumpcore_elfnote_xen_version_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 312
    functionName: elfnote_fill_xen_version
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_version
    linkageType: ''
    returnType: int
    signature: "int elfnote_fill_xen_version(xc_interface *xch,\n                         struct
      xen_dumpcore_elfnote_xen_version_desc\n                         *xen_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format_version
    argTypes:
    - struct xen_dumpcore_elfnote_format_version_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: elfnote_fill_format_version
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void elfnote_fill_format_version(struct xen_dumpcore_elfnote_format_version_desc\n
      \                           *format_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:325,1
    - Dst: strlen
      Src: /src/xen/tools/libs/guest/xg_core.c:326,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_core.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - elfnote
    argTypes:
    - struct elfnote*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: elfnote_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: void elfnote_init(struct elfnote *elfnote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elfnote_init
      Src: /src/xen/tools/libs/guest/xg_core.c:337,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:343,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - args
    - dump_rtn
    argTypes:
    - xc_interface*
    - void*
    - dumpcore_rtn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 347
    functionName: elfnote_dump_none
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - elfnote_init
    - dump_rtn
    linkageType: ''
    returnType: int
    signature: int elfnote_dump_none(xc_interface *xch, void *args, dumpcore_rtn_t
      dump_rtn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elfnote_init
      Src: /src/xen/tools/libs/guest/xg_core.c:359,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:360,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:369,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - xch
    - args
    - dump_rtn
    - info
    - nr_vcpus
    - nr_pages
    argTypes:
    - xc_interface*
    - void*
    - dumpcore_rtn_t
    - xc_domaininfo_t*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: elfnote_dump_core_header
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - elfnote_init
    - memset
    - dump_rtn
    linkageType: ''
    returnType: int
    signature: "int elfnote_dump_core_header(\n    xc_interface *xch,\n    void *args,
      dumpcore_rtn_t dump_rtn, const xc_domaininfo_t *info,\n    int nr_vcpus, unsigned
      long nr_pages)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elfnote_init
      Src: /src/xen/tools/libs/guest/xg_core.c:383,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:384,1
    - Dst: elfnote_fill_xen_version
      Src: /src/xen/tools/libs/guest/xg_core.c:388,1
    - Dst: memmove
      Src: /src/xen/tools/libs/guest/xg_core.c:393,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:395,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - args
    - dump_rtn
    - guest_width
    argTypes:
    - xc_interface*
    - void*
    - dumpcore_rtn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 399
    functionName: elfnote_dump_xen_version
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - elfnote_init
    - memmove
    - dump_rtn
    - memset
    - elfnote_fill_xen_version
    linkageType: ''
    returnType: int
    signature: "int elfnote_dump_xen_version(xc_interface *xch, void *args,\n                         dumpcore_rtn_t
      dump_rtn, unsigned int guest_width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elfnote_init
      Src: /src/xen/tools/libs/guest/xg_core.c:409,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:410,1
    - Dst: elfnote_fill_format_version
      Src: /src/xen/tools/libs/guest/xg_core.c:414,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:415,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - xch
    - args
    - dump_rtn
    argTypes:
    - xc_interface*
    - void*
    - dumpcore_rtn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 419
    functionName: elfnote_dump_format_version
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - elfnote_init
    - memset
    - dump_rtn
    - elfnote_fill_format_version
    linkageType: ''
    returnType: int
    signature: "int elfnote_dump_format_version(xc_interface *xch,\n                            void
      *args, dumpcore_rtn_t dump_rtn)"
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_context_init
      Src: /src/xen/tools/libs/guest/xg_core.c:465,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:466,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:468,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_core.c:472,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:474,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_core.c:478,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:482,1
    - Dst: xc_core_arch_auto_translated_physmap
      Src: /src/xen/tools/libs/guest/xg_core.c:485,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_core.c:490,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:492,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_core.c:521,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:524,1
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/libs/guest/xg_core.c:530,1
    - Dst: xc_core_arch_context_get
      Src: /src/xen/tools/libs/guest/xg_core.c:532,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:540,1
    - Dst: xc_core_arch_memory_map_get
      Src: /src/xen/tools/libs/guest/xg_core.c:545,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:565,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:568,1
    - Dst: xc_core_arch_map_p2m
      Src: /src/xen/tools/libs/guest/xg_core.c:572,1
    - Dst: xc_maximum_ram_page
      Src: /src/xen/tools/libs/guest/xg_core.c:576,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core.c:582,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:585,1
    - Dst: xc_core_ehdr_init
      Src: /src/xen/tools/libs/guest/xg_core.c:591,1
    - Dst: xc_core_strtab_init
      Src: /src/xen/tools/libs/guest/xg_core.c:594,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:597,1
    - Dst: xc_core_shdr_init
      Src: /src/xen/tools/libs/guest/xg_core.c:600,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:603,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:607,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:610,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:615,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:618,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:625,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:637,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:640,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:643,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:650,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:653,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:657,1
    - Dst: xc_core_arch_context_get_shdr
      Src: /src/xen/tools/libs/guest/xg_core.c:665,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:674,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:677,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:681,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_core.c:699,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:703,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:706,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:710,1
    - Dst: xc_core_shdr_get
      Src: /src/xen/tools/libs/guest/xg_core.c:717,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:720,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:726,1
    - Dst: xc_core_shdr_set
      Src: /src/xen/tools/libs/guest/xg_core.c:734,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:752,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:757,1
    - Dst: elfnote_dump_none
      Src: /src/xen/tools/libs/guest/xg_core.c:763,1
    - Dst: elfnote_dump_core_header
      Src: /src/xen/tools/libs/guest/xg_core.c:768,1
    - Dst: elfnote_dump_xen_version
      Src: /src/xen/tools/libs/guest/xg_core.c:773,1
    - Dst: elfnote_dump_format_version
      Src: /src/xen/tools/libs/guest/xg_core.c:778,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:783,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:790,1
    - Dst: xc_core_arch_context_dump
      Src: /src/xen/tools/libs/guest/xg_core.c:796,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:801,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:802,1
    - Dst: xc_core_arch_gpfn_may_present
      Src: /src/xen/tools/libs/guest/xg_core.c:855,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_core.c:868,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_core.c:872,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core.c:873,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:877,1
    - Dst: IPRINTF
      Src: /src/xen/tools/libs/guest/xg_core.c:894,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:897,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_core.c:905,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_core.c:906,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:908,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:923,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:926,1
    - Dst: dump_rtn
      Src: /src/xen/tools/libs/guest/xg_core.c:932,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:940,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core.c:942,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:944,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:946,1
    - Dst: xc_core_shdr_free
      Src: /src/xen/tools/libs/guest/xg_core.c:948,1
    - Dst: xc_core_strtab_free
      Src: /src/xen/tools/libs/guest/xg_core.c:950,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:952,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_core.c:954,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_core.c:956,1
    - Dst: xc_core_arch_context_free
      Src: /src/xen/tools/libs/guest/xg_core.c:957,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 341
    argCount: 4
    argNames:
    - xch
    - domid
    - args
    - dump_rtn
    argTypes:
    - xc_interface*
    - uint32_t
    - void*
    - dumpcore_rtn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 960
    functionName: xc_domain_dumpcore_via_callback
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - xc_core_strtab_init
    - ROUNDUP
    - IPRINTF
    - munmap
    - xc_core_shdr_init
    - xc_core_shdr_set
    - xc_map_foreign_range
    - xc_core_shdr_free
    - xc_core_arch_context_get
    - elfnote_dump_format_version
    - calloc
    - free
    - xc_vcpu_getcontext
    - malloc
    - elfnote_dump_none
    - xc_core_arch_context_free
    - xc_domain_get_guest_width
    - dump_rtn
    - xc_core_ehdr_init
    - xc_core_arch_auto_translated_physmap
    - xc_core_arch_context_init
    - xc_core_arch_context_get_shdr
    - xc_maximum_ram_page
    - xc_core_arch_gpfn_may_present
    - elfnote_dump_xen_version
    - memset
    - xc_domain_getinfo_single
    - elfnote_dump_core_header
    - xc_core_arch_map_p2m
    - PERROR
    - xc_core_strtab_free
    - DPRINTF
    - xc_core_arch_memory_map_get
    - xc_core_arch_context_dump
    - memcpy
    - xc_core_shdr_get
    linkageType: ''
    returnType: int
    signature: "int xc_domain_dumpcore_via_callback(xc_interface *xch,\n                                uint32_t
      domid,\n                                void *args,\n                                dumpcore_rtn_t
      dump_rtn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_exact
      Src: /src/xen/tools/libs/guest/xg_core.c:973,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:975,1
    - Dst: discard_file_cache
      Src: /src/xen/tools/libs/guest/xg_core.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - xch
    - args
    - buffer
    - length
    argTypes:
    - xc_interface*
    - void*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 987
    functionName: local_file_dump
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 0
    functionsReached:
    - discard_file_cache
    - write_exact
    - PERROR
    linkageType: ''
    returnType: int
    signature: "int local_file_dump(xc_interface *xch,\n                           void
      *args, char *buffer, unsigned int length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/guest/xg_core.c:997,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core.c:999,1
    - Dst: xc_domain_dumpcore_via_callback
      Src: /src/xen/tools/libs/guest/xg_core.c:1003,1
    - Dst: discard_file_cache
      Src: /src/xen/tools/libs/guest/xg_core.c:1007,1
    - Dst: close
      Src: /src/xen/tools/libs/guest/xg_core.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - corename
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 1012
    functionName: xc_domain_dumpcore
    functionSourceFile: /src/xen/tools/libs/guest/xg_core.c
    functionUses: 1
    functionsReached:
    - xc_domain_dumpcore_via_callback
    - open
    - PERROR
    - discard_file_cache
    - close
    linkageType: ''
    returnType: int
    signature: "int xc_domain_dumpcore(xc_interface *xch,\n                   uint32_t
      domid,\n                   const char *corename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vaddr
    argTypes:
    - xen_vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: is_canonical_address
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_canonical_address(xen_vaddr_t vaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:19,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: map_shinfo
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - xc_map_foreign_range
    - PERROR
    linkageType: ''
    returnType: int
    signature: int map_shinfo(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - dst
    - src
    - count
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 74
    functionName: copy_mfns_from_guest
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int copy_mfns_from_guest(const struct xc_sr_context *ctx,\n                                xen_pfn_t
      *dst, const void *src, size_t count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:85,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:89,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:95,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:98,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:106,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:108,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:109,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - mfns
    - n_mfns
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 118
    functionName: map_p2m_leaves
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - mfn_in_pseudophysmap
    - ERROR
    - malloc
    - dump_bad_pseudophysmap_entry
    - xc_map_foreign_pages
    - mfn_to_pfn
    linkageType: ''
    returnType: int
    signature: "int map_p2m_leaves(struct xc_sr_context *ctx, xen_pfn_t *mfns,\n                          size_t
      n_mfns)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:151,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:155,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:159,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:164,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:168,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:173,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:176,1
    - Dst: copy_mfns_from_guest
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:181,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:183,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:194,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:222,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:227,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:231,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:236,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:239,1
    - Dst: copy_mfns_from_guest
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:244,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:246,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:254,1
    - Dst: map_p2m_leaves
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:261,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:264,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:266,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:268,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:270,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 273
    functionName: map_p2m_tree
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - copy_mfns_from_guest
    - GET_FIELD
    - PERROR
    - free
    - ERROR
    - munmap
    - malloc
    - DPRINTF
    - xc_map_foreign_range
    - map_p2m_leaves
    - xc_map_foreign_pages
    linkageType: ''
    returnType: int
    signature: int map_p2m_tree(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 291
    functionName: get_p2m_generation
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - GET_FIELD
    linkageType: ''
    returnType: int
    signature: int get_p2m_generation(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_p2m_generation
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:301,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: x86_pv_check_vm_state_p2m_list
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - get_p2m_generation
    - ERROR
    linkageType: ''
    returnType: int
    signature: int x86_pv_check_vm_state_p2m_list(struct xc_sr_context *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cr3_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:323,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:324,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:327,1
    - Dst: get_p2m_generation
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:332,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:334,1
    - Dst: is_canonical_address
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:343,1
    - Dst: is_canonical_address
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:344,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:349,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:362,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:369,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:371,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:374,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:377,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:388,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:391,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:394,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:400,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:403,1
    - Dst: pte_to_frame
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:409,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:412,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:444,1
    - Dst: map_p2m_leaves
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:450,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:453,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:455,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 100
    argCount: 2
    argNames:
    - ctx
    - p2m_cr3
    argTypes:
    - struct xc_sr_context*
    - uint64_t
    assertStmts:
    - condition: (p2m_mfn != 0)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    constantsTouched: []
    func_position:
      end: 458
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 458
    functionName: map_p2m_list
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - get_p2m_generation
    - GET_FIELD
    - PERROR
    - free
    - ERROR
    - munmap
    - malloc
    - DPRINTF
    - pte_to_frame
    - map_p2m_leaves
    - is_canonical_address
    - xc_map_foreign_pages
    - assert
    - cr3_to_mfn
    linkageType: ''
    returnType: int
    signature: int map_p2m_list(struct xc_sr_context *ctx, uint64_t p2m_cr3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:470,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:472,1
    - Dst: map_p2m_list
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:474,1
    - Dst: map_p2m_tree
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: map_p2m
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 2
    functionsReached:
    - map_p2m_list
    - GET_FIELD
    - map_p2m_tree
    linkageType: ''
    returnType: int
    signature: int map_p2m(struct xc_sr_context *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:497,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:499,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:506,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:507,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:509,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:510,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:514,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:514,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:518,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:521,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:531,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:532,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:534,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:535,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:539,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:539,1
    - Dst: cr3_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:544,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:544,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:545,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:547,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:548,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:552,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:553,1
    - Dst: mfn_to_cr3
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:553,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:559,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:561,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:562,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:566,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:571,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:573,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 577
    functionName: write_one_vcpu_basic
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - GET_FIELD
    - mfn_in_pseudophysmap
    - PERROR
    - ERROR
    - xc_vcpu_getcontext
    - write_split_record
    - SET_FIELD
    - dump_bad_pseudophysmap_entry
    - mfn_to_cr3
    - cr3_to_mfn
    - mfn_to_pfn
    linkageType: ''
    returnType: int
    signature: int write_one_vcpu_basic(struct xc_sr_context *ctx, uint32_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:600,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:602,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 612
    functionName: write_one_vcpu_extended
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_split_record
    - PERROR
    - xc_domctl
    linkageType: ''
    returnType: int
    signature: int write_one_vcpu_extended(struct xc_sr_context *ctx, uint32_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:637,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:639,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:647,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:650,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:655,1
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:656,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:658,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:666,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:674,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 677
    functionName: write_one_vcpu_xsave
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - xc_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - write_split_record
    linkageType: ''
    returnType: int
    signature: int write_one_vcpu_xsave(struct xc_sr_context *ctx, uint32_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:703,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:705,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:714,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:717,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:722,1
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:723,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:725,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:733,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:743,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - ctx
    - id
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 746
    functionName: write_one_vcpu_msrs
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - xc_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - write_split_record
    linkageType: ''
    returnType: int
    signature: int write_one_vcpu_msrs(struct xc_sr_context *ctx, uint32_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:760,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:763,1
    - Dst: write_one_vcpu_basic
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:771,1
    - Dst: write_one_vcpu_extended
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:775,1
    - Dst: write_one_vcpu_xsave
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:779,1
    - Dst: write_one_vcpu_msrs
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:783,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 789
    functionName: write_all_vcpu_information
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - xc_vcpu_getinfo
    - write_one_vcpu_msrs
    - write_one_vcpu_extended
    - write_one_vcpu_basic
    - write_one_vcpu_xsave
    linkageType: ''
    returnType: int
    signature: int write_all_vcpu_information(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 807
    functionName: write_x86_pv_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_record
    linkageType: ''
    returnType: int
    signature: int write_x86_pv_info(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:831,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:833,1
    - Dst: write_split_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:844,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 850
    functionName: write_x86_pv_p2m_frames
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - free
    - ERROR
    - malloc
    - write_split_record
    linkageType: ''
    returnType: int
    signature: int write_x86_pv_p2m_frames(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 864
    functionName: write_shared_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_record
    linkageType: ''
    returnType: int
    signature: int write_shared_info(struct xc_sr_context *ctx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:895,1
    - Dst: pte_to_frame
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:911,1
    - Dst: pte_to_frame
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:941,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:950,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:960,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:966,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:972,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:974,1
    - Dst: merge_pte
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:980,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:980,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - ctx
    - src
    - dst
    - type
    argTypes:
    - struct xc_sr_context*
    - uint64_t*
    - uint64_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 987
    functionName: normalise_pagetable
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - mfn_in_pseudophysmap
    - ERROR
    - merge_pte
    - pte_to_frame
    - dump_bad_pseudophysmap_entry
    - mfn_to_pfn
    linkageType: ''
    returnType: int
    signature: "int normalise_pagetable(struct xc_sr_context *ctx, const uint64_t
      *src,\n                               uint64_t *dst, unsigned long type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:992,1
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts:
    - condition: (pfn <= ctx->x86.pv.max_pfn)
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    constantsTouched: []
    func_position:
      end: 995
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 995
    functionName: x86_pv_pfn_to_gfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - assert
    - xc_pfn_to_mfn
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t x86_pv_pfn_to_gfn(const struct xc_sr_context *ctx,\n                                   xen_pfn_t
      pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1013,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1016,1
    - Dst: normalise_pagetable
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - type
    - page
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1026
    functionName: x86_pv_normalise_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - ERROR
    - malloc
    - normalise_pagetable
    linkageType: ''
    returnType: int
    signature: "int x86_pv_normalise_page(struct xc_sr_context *ctx, xen_pfn_t type,\n
      \                                void **page)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_pv_domain_info
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1036,1
    - Dst: x86_pv_map_m2p
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1040,1
    - Dst: map_shinfo
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1044,1
    - Dst: map_p2m
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1032
    functionDepth: 4
    functionLinenumber: 1032
    functionLinenumberEnd: 1053
    functionName: x86_pv_setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - x86_pv_map_m2p
    - map_p2m
    - map_shinfo
    - x86_pv_domain_info
    linkageType: ''
    returnType: int
    signature: int x86_pv_setup(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_x86_pv_info
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1059,1
    - Dst: write_x86_cpu_policy_records
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1068
    functionName: x86_pv_static_data
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_x86_cpu_policy_records
    - write_x86_pv_info
    linkageType: ''
    returnType: int
    signature: int x86_pv_static_data(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_x86_pv_p2m_frames
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1085
    functionName: x86_pv_start_of_stream
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_x86_pv_p2m_frames
    linkageType: ''
    returnType: int
    signature: int x86_pv_start_of_stream(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1090
    functionName: x86_pv_start_of_checkpoint
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int x86_pv_start_of_checkpoint(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_x86_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1096,1
    - Dst: write_shared_info
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1100,1
    - Dst: write_all_vcpu_information
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1109
    functionName: x86_pv_end_of_checkpoint
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - write_all_vcpu_information
    - write_x86_tsc_info
    - write_shared_info
    linkageType: ''
    returnType: int
    signature: int x86_pv_end_of_checkpoint(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x86_pv_check_vm_state_p2m_list
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1117
    functionName: x86_pv_check_vm_state
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - x86_pv_check_vm_state_p2m_list
    linkageType: ''
    returnType: int
    signature: int x86_pv_check_vm_state(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1121,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1124,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1127,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1133
    functionName: x86_pv_cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    linkageType: ''
    returnType: int
    signature: int x86_pv_cleanup(struct xc_sr_context *ctx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:60,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:64,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:67,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:72,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:80,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:84,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:86,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:90,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:93,1
    - Dst: BZ2_bzDecompress
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:103,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:105,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:108,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:109,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:115,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:117,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:122,1
    - Dst: xc_dom_register_external
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:124,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:126,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:127,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:131,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:139,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 142
    functionName: xc_try_bzip2_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - BZ2_bzDecompress
    - BZ2_bzDecompressInit
    - free
    - malloc
    - DOMPRINTF
    - BZ2_bzDecompressEnd
    - xc_dom_register_external
    - xc_dom_kernel_check_size
    linkageType: ''
    returnType: int
    signature: "int xc_try_bzip2_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: xc_try_bzip2_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: "int xc_try_bzip2_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:173,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:178,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:180,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:182,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:186,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:189,1
    - Dst: lzma_code
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:199,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:201,1
    - Dst: strerror
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:209,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:238,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:240,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:246,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:248,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:253,1
    - Dst: xc_dom_register_external
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:255,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:257,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:258,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:262,1
    - Dst: lzma_end
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:270,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 5
    argNames:
    - dom
    - blob
    - size
    - stream
    - what
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    - lzma_stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 273
    functionName: _xc_try_lzma_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - free
    - malloc
    - DOMPRINTF
    - xc_dom_register_external
    - xc_dom_kernel_check_size
    - lzma_code
    - strerror
    - lzma_end
    linkageType: ''
    returnType: int
    signature: "int _xc_try_lzma_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size,\n    lzma_stream *stream, const char *what)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzma_stream_decoder
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:282,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:284,1
    - Dst: _xc_try_lzma_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: xc_try_xz_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - _xc_try_lzma_decode
    - lzma_stream_decoder
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: "int xc_try_xz_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzma_alone_decoder
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:296,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:298,1
    - Dst: _xc_try_lzma_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 303
    functionName: xc_try_lzma_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 2
    functionsReached:
    - _xc_try_lzma_decode
    - lzma_alone_decoder
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzma_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: xc_try_xz_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: "int xc_try_xz_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: xc_try_lzma_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 2
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzma_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: lzo_read_16
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint_fast16_t
    signature: uint_fast16_t lzo_read_16(const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lzo_read_16
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:341,1
    - Dst: lzo_read_16
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: lzo_read_32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - lzo_read_16
    linkageType: ''
    returnType: uint_fast32_t
    signature: uint_fast32_t lzo_read_32(const unsigned char *buf)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:361,1
    - Dst: lzo_init
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:363,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:366,1
    - Dst: memcmp
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:370,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:372,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:377,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:379,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:381,1
    - Dst: lzo_read_16
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:387,1
    - Dst: lzo_read_32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:399,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:415,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:421,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:424,1
    - Dst: lzo_read_32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:436,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:444,1
    - Dst: xc_dom_register_external
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:447,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:450,1
    - Dst: lzo_read_32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:468,1
    - Dst: lzo1x_decompress_safe
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:482,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:528,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:529,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 116
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 532
    functionName: xc_try_lzo1x_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - lzo_read_16
    - lzo1x_decompress_safe
    - memcmp
    - free
    - malloc
    - DOMPRINTF
    - BUILD_BUG_ON
    - lzo_read_32
    - xc_dom_register_external
    - xc_dom_kernel_check_size
    - lzo_init
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzo1x_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: xc_try_lzo1x_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzo1x_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:560,1
    - Dst: get_unaligned_le32
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:565,1
    - Dst: xc_dom_kernel_check_size
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:567,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:569,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:573,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:576,1
    - Dst: ZSTD_decompress
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:580,1
    - Dst: ZSTD_isError
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:582,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:584,1
    - Dst: ZSTD_getErrorName
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:584,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:585,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:591,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:593,1
    - Dst: xc_dom_register_external
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:597,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:599,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:600,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 611
    functionName: xc_try_zstd_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - free
    - malloc
    - ZSTD_getErrorName
    - DOMPRINTF
    - xc_dom_register_external
    - ZSTD_decompress
    - xc_dom_kernel_check_size
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: "int xc_try_zstd_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 622
    functionName: xc_try_zstd_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: "int xc_try_zstd_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 643
    functionName: VERSION
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION(h,l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dom
    - magic
    - len
    argTypes:
    - struct xc_dom_image*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 675
    functionName: check_magic
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int check_magic(struct xc_dom_image *dom, const void *magic, size_t
      len)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:685,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:692,1
    - Dst: memcmp
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:698,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:700,1
    - Dst: VERSION
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:704,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:706,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:720,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:726,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:734,1
    - Dst: xc_dom_try_gunzip
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:736,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:739,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:744,1
    - Dst: xc_try_bzip2_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:746,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:749,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:755,1
    - Dst: xc_try_xz_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:757,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:760,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:766,1
    - Dst: xc_try_zstd_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:768,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:771,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:777,1
    - Dst: xc_try_lzma_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:779,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:782,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:788,1
    - Dst: xc_try_lzo1x_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:790,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:793,1
    - Dst: check_magic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:799,1
    - Dst: xc_try_lz4_decode
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:801,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:804,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:812,1
    - Dst: probe
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:817,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 84
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 818
    functionName: xc_dom_probe_bzimage_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - xc_try_lz4_decode
    - memcmp
    - xc_dom_try_gunzip
    - xc_try_xz_decode
    - xc_dom_panic
    - xc_try_bzip2_decode
    - VERSION
    - xc_try_lzma_decode
    - check_magic
    - xc_try_zstd_decode
    - probe
    - xc_dom_printf
    - xc_try_lzo1x_decode
    linkageType: ''
    returnType: int
    signature: int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 823
    functionName: xc_dom_parse_bzimage_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - parser
    linkageType: ''
    returnType: int
    signature: int xc_dom_parse_bzimage_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loader
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 828
    functionName: xc_dom_load_bzimage_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 0
    functionsReached:
    - loader
    linkageType: ''
    returnType: int
    signature: int xc_dom_load_bzimage_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    functionUses: 4
    functionsReached:
    - xc_dom_register_loader
    linkageType: ''
    returnType: void
    signature: void register_loader(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: likely
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: unlikely
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap16
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: be16_to_cpu
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t be16_to_cpu(const uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap32
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: be32_to_cpu
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t be32_to_cpu(const uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: xc_try_lzo1x_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
    functionUses: 1
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_lzo1x_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:37,1
    - Dst: elf_is_elfbinary
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:42,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dom
    - verbose
    argTypes:
    - struct xc_dom_image*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: check_elf_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 2
    functionsReached:
    - elf_is_elfbinary
    - xc_dom_panic
    linkageType: ''
    returnType: elf_negerrnoval
    signature: elf_negerrnoval check_elf_kernel(struct xc_dom_image *dom, bool verbose)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_elf_kernel
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:61,1
    - Dst: elf_init
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:65,1
    - Dst: elf_parse_binary
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:73,1
    - Dst: elf_xen_parse
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 79
    functionName: xc_dom_probe_hvm_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 0
    functionsReached:
    - elf_xen_parse
    - check_elf_kernel
    - elf_parse_binary
    - elf_init
    linkageType: ''
    returnType: elf_negerrnoval
    signature: elf_negerrnoval xc_dom_probe_hvm_kernel(struct xc_dom_image *dom)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_elf_kernel
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:90,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:94,1
    - Dst: elf_init
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:98,1
    - Dst: xc_elf_set_logfile
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:99,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:102,1
    - Dst: elf_32bit
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:107,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:109,1
    - Dst: elf_parse_binary
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:115,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:123,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:124,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 127
    functionName: xc_dom_parse_hvm_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 0
    functionsReached:
    - elf_parse_binary
    - check_elf_kernel
    - xc_dom_panic
    - DOMPRINTF
    - elf_32bit
    - elf_check_broken
    - xc_elf_set_logfile
    - xc_dom_malloc
    - elf_init
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus xc_dom_parse_hvm_kernel(struct xc_dom_image *dom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:138,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:140,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:143,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:147,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:150,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - dom
    - module
    - name
    argTypes:
    - struct xc_dom_image*
    - struct xc_hvm_firmware_module*
    - char*
    assertStmts:
    - condition: (dom->mmio_start > 0 && dom->mmio_start < UINT32_MAX)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    constantsTouched: []
    func_position:
      end: 163
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 163
    functionName: module_init_one
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 0
    functionsReached:
    - xc_dom_seg_to_ptr
    - xc_dom_alloc_segment
    - DOMPRINTF
    - assert
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int module_init_one(struct xc_dom_image *dom,\n                           struct
      xc_hvm_firmware_module *module,\n                           const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: module_init_one
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:169,1
    - Dst: module_init_one
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:173,1
    - Dst: module_init_one
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: modules_init
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 0
    functionsReached:
    - module_init_one
    linkageType: ''
    returnType: int
    signature: int modules_init(struct xc_dom_image *dom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:192,1
    - Dst: xc_map_foreign_ranges
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:199,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:205,1
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:210,1
    - Dst: elf_load_binary
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:212,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:215,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:219,1
    - Dst: modules_init
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:221,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:224,1
    - Dst: elf_uval
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:228,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:230,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:234,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts:
    - condition: (rc != 0)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    constantsTouched: []
    func_position:
      end: 237
      start: 183
    functionDepth: 6
    functionLinenumber: 183
    functionLinenumberEnd: 237
    functionName: xc_dom_load_hvm_kernel
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 0
    functionsReached:
    - xc_map_foreign_ranges
    - XC_DOM_PAGE_SIZE
    - modules_init
    - calloc
    - free
    - munmap
    - DOMPRINTF
    - assert
    - elf_uval
    - elf_load_binary
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus xc_dom_load_hvm_kernel(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_loader
      Src: /src/xen/tools/libs/guest/xg_dom_hvmloader.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: register_loader
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
    functionUses: 5
    functionsReached:
    - xc_dom_register_loader
    linkageType: ''
    returnType: void
    signature: void register_loader(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - xch
    - io_fd
    - dom
    - flags
    - callbacks
    - stream_type
    - recv_fd
    argTypes:
    - xc_interface*
    - int
    - uint32_t
    - uint32_t
    - struct save_callbacks*
    - xc_stream_type_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: xc_domain_save
    functionSourceFile: /src/xen/tools/libs/guest/xg_nomigrate.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t
      flags,\n                   struct save_callbacks *callbacks,\n                   xc_stream_type_t
      stream_type, int recv_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 13
    argNames:
    - xch
    - io_fd
    - dom
    - store_evtchn
    - store_mfn
    - store_domid
    - console_evtchn
    - console_mfn
    - console_domid
    - stream_type
    - callbacks
    - send_back_fd
    - memflags
    argTypes:
    - xc_interface*
    - int
    - uint32_t
    - unsigned int
    - unsigned long*
    - uint32_t
    - unsigned int
    - unsigned long*
    - uint32_t
    - xc_stream_type_t
    - struct restore_callbacks*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: xc_domain_restore
    functionSourceFile: /src/xen/tools/libs/guest/xg_nomigrate.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,\n
      \                     unsigned int store_evtchn, unsigned long *store_mfn,\n
      \                     uint32_t store_domid, unsigned int console_evtchn,\n                      unsigned
      long *console_mfn, uint32_t console_domid,\n                      xc_stream_type_t
      stream_type,\n                      struct restore_callbacks *callbacks, int
      send_back_fd,\n                      unsigned int memflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_decompress_unsafe
      Src: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dom
    - blob
    - size
    argTypes:
    - struct xc_dom_image*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: xc_try_zstd_decode
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
    functionUses: 1
    functionsReached:
    - xc_dom_decompress_unsafe
    linkageType: ''
    returnType: int
    signature: "int xc_try_zstd_decode(\n    struct xc_dom_image *dom, void **blob,
      size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: special_pfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: special_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ioreq_server_pfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioreq_server_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: bits_to_mask
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bits_to_mask(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: round_down
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_down(addr, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: round_up
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_up(addr, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: round_pg_up
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_pg_up(addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: xc_domain_get_native_protocol
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 1
    functionsReached:
    - xc_domain_get_guest_width
    linkageType: ''
    returnType: char
    signature: "char *xc_domain_get_native_protocol(xc_interface *xch,\n                                          uint32_t
      domid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:150,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:159,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:169,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:175,1
    - Dst: bits_to_mask
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:196,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:203,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:219,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:231,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 4
    argNames:
    - dom
    - from
    - to
    - pfn
    argTypes:
    - struct xc_dom_image*
    - xen_vaddr_t
    - xen_vaddr_t
    - xen_pfn_t
    assertStmts:
    - condition: "(map->lvls[l].from >= map_cmp->lvls[l].from ||\n                   map->lvls[l].to
        <= map_cmp->lvls[l].to)"
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    constantsTouched: []
    func_position:
      end: 238
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 238
    functionName: count_pgtables
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    - DOMPRINTF
    - memset
    - assert
    - bits_to_mask
    linkageType: ''
    returnType: int
    signature: "int count_pgtables(struct xc_dom_image *dom, xen_vaddr_t from,\n                          xen_vaddr_t
      to, xen_pfn_t pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_up
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:252,1
    - Dst: bits_to_mask
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:253,1
    - Dst: count_pgtables
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:255,1
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 268
    functionName: alloc_pgtables_pv
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - round_up
    - bits_to_mask
    - count_pgtables
    - xc_dom_alloc_segment
    linkageType: ''
    returnType: int
    signature: int alloc_pgtables_pv(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_to_mask
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:277,1
    - Dst: alloc_pgtables_pv
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: alloc_pgtables_x86_32_pae
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - bits_to_mask
    - alloc_pgtables_pv
    linkageType: ''
    returnType: int
    signature: int alloc_pgtables_x86_32_pae(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: pgentry_to_pfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pgentry_to_pfn(entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_alloc_mmu_updates
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:311,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:314,1
    - Dst: xc_dom_unmap_one
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:318,1
    - Dst: xc_make_page_below_4G
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:320,1
    - Dst: xc_add_mmu_update
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:326,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:328,1
    - Dst: xc_flush_mmu_updates
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:332,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:340,1
    - Dst: xc_dom_pfn_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:343,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:346,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:350,1
    - Dst: XC_DOM_PAGE_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:350,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:352,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:359,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - dom
    - l3pfn
    - l3mfn
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 362
    functionName: move_l3_below_4G
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - xc_add_mmu_update
    - xc_flush_mmu_updates
    - xc_make_page_below_4G
    - xc_dom_seg_to_ptr
    - XC_DOM_PAGE_SIZE
    - free
    - XC_DOM_PAGE_SHIFT
    - xc_dom_unmap_one
    - xc_dom_pfn_to_ptr
    - DOMPRINTF
    - xc_alloc_mmu_updates
    - memset
    linkageType: ''
    returnType: xen_pfn_t
    signature: "xen_pfn_t move_l3_below_4G(struct xc_dom_image *dom,\n                                  xen_pfn_t
      l3pfn,\n                                  xen_pfn_t l3mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_pfn_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:371,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dom
    - m
    - l
    argTypes:
    - struct xc_dom_image*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 378
    functionName: get_pg_table
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - xc_dom_panic
    - xc_dom_pfn_to_ptr
    linkageType: ''
    returnType: x86_pgentry_t
    signature: x86_pgentry_t *get_pg_table(struct xc_dom_image *dom, int m, int l)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - dom
    - l
    - pfn
    argTypes:
    - struct xc_dom_image*
    - int
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 402
    functionName: get_pg_prot
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: x86_pgentry_t
    signature: x86_pgentry_t get_pg_prot(struct xc_dom_image *dom, int l, xen_pfn_t
      pfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pg_table
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:421,1
    - Dst: max
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:432,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:434,1
    - Dst: max
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:436,1
    - Dst: pfn_to_paddr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:440,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:440,1
    - Dst: get_pg_prot
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:441,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 448
    functionName: setup_pgtables_pv
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - max
    - xc_dom_p2m
    - get_pg_table
    - min
    - pfn_to_paddr
    - get_pg_prot
    linkageType: ''
    returnType: int
    signature: int setup_pgtables_pv(struct xc_dom_image *dom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:466,1
    - Dst: move_l3_below_4G
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:470,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:474,1
    - Dst: setup_pgtables_pv
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 483
    functionName: setup_pgtables_x86_32_pae
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - setup_pgtables_pv
    - move_l3_below_4G
    - xc_dom_p2m
    - xc_dom_panic
    linkageType: ''
    returnType: int
    signature: int setup_pgtables_x86_32_pae(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_to_mask
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:492,1
    - Dst: alloc_pgtables_pv
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 488
    functionDepth: 5
    functionLinenumber: 488
    functionLinenumberEnd: 502
    functionName: alloc_pgtables_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - bits_to_mask
    - alloc_pgtables_pv
    linkageType: ''
    returnType: int
    signature: int alloc_pgtables_x86_64(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_pgtables_pv
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 520
    functionName: setup_pgtables_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - setup_pgtables_pv
    linkageType: ''
    returnType: int
    signature: int setup_pgtables_x86_64(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:528,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dom
    - p2m_alloc_size
    argTypes:
    - struct xc_dom_image*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: alloc_p2m_list
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 1
    functionsReached:
    - xc_dom_seg_to_ptr
    - xc_dom_alloc_segment
    linkageType: ''
    returnType: int
    signature: int alloc_p2m_list(struct xc_dom_image *dom, size_t p2m_alloc_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: round_pg_up
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:543,1
    - Dst: alloc_p2m_list
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 5
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: alloc_p2m_list_x86_32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - round_pg_up
    - alloc_p2m_list
    linkageType: ''
    returnType: int
    signature: int alloc_p2m_list_x86_32(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_pg_up
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:555,1
    - Dst: count_pgtables
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:560,1
    - Dst: alloc_p2m_list
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 571
    functionName: alloc_p2m_list_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - count_pgtables
    - round_pg_up
    - alloc_p2m_list
    linkageType: ''
    returnType: int
    signature: int alloc_p2m_list_x86_64(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_alloc_page
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:577,1
    - Dst: xc_dom_alloc_page
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:581,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:584,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:585,1
    - Dst: xc_dom_alloc_page
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:587,1
    - Dst: xc_dom_console_init
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:590,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 596
    functionName: alloc_magic_pages_pv
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - xc_dom_p2m
    - xc_dom_alloc_page
    - xc_dom_console_init
    - xc_clear_domain_page
    linkageType: ''
    returnType: int
    signature: int alloc_magic_pages_pv(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:605,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:608,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:614,1
    - Dst: ioreq_server_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - hvm_info_page
    - dom
    argTypes:
    - void*
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 625
    functionName: build_hvm_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - ioreq_server_pfn
    linkageType: ''
    returnType: void
    signature: void build_hvm_info(void *hvm_info_page, struct xc_dom_image *dom)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:639,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:641,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:645,1
    - Dst: xc_clear_domain_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:649,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:649,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:653,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:654,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:655,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:656,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:657,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:658,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:659,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:660,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:661,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:662,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:663,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:664,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:665,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:666,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:681,1
    - Dst: strlen
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:681,1
    - Dst: ioreq_server_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:692,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:694,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:698,1
    - Dst: xc_clear_domain_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:702,1
    - Dst: ioreq_server_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:702,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:707,1
    - Dst: ioreq_server_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:708,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:709,1
    - Dst: xc_dom_alloc_segment
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:713,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:717,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:725,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:727,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:732,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:733,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:734,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:736,1
    - Dst: xc_dom_console_init
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:737,1
    - Dst: special_pfn
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:739,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:740,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 751
    functionName: alloc_magic_pages_hvm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - ROUNDUP
    - xc_dom_alloc_segment
    - munmap
    - xc_dom_console_init
    - DOMPRINTF
    - xc_map_foreign_range
    - strlen
    - xc_clear_domain_page
    - xc_domain_populate_physmap_exact
    - ioreq_server_pfn
    - special_pfn
    - xc_clear_domain_pages
    linkageType: ''
    returnType: int
    signature: int alloc_magic_pages_hvm(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_pfn_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:759,1
    - Dst: xc_dom_translated
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:761,1
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:763,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:767,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:771,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:772,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:781,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:783,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 799
    functionName: start_info_x86_32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_pfn_to_ptr
    - DOMPRINTF
    - xc_dom_p2m
    - strncpy
    - xc_dom_translated
    - memset
    linkageType: ''
    returnType: int
    signature: int start_info_x86_32(struct xc_dom_image *dom)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_pfn_to_ptr
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:805,1
    - Dst: xc_dom_translated
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:807,1
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:809,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:813,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:817,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:818,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:832,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:834,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 850
    functionName: start_info_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_dom_pfn_to_ptr
    - DOMPRINTF
    - xc_dom_p2m
    - strncpy
    - xc_dom_translated
    - memset
    linkageType: ''
    returnType: int
    signature: int start_info_x86_64(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:857,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dom
    - ptr
    argTypes:
    - struct xc_dom_image*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 863
    functionName: shared_info_x86_32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - memset
    linkageType: ''
    returnType: int
    signature: int shared_info_x86_32(struct xc_dom_image *dom, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:870,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dom
    - ptr
    argTypes:
    - struct xc_dom_image*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: shared_info_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - memset
    linkageType: ''
    returnType: int
    signature: int shared_info_x86_64(struct xc_dom_image *dom, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:887,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:890,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:907,1
    - Dst: xen_pfn_to_cr3_x86_32
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:908,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:909,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:922,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 928
    functionName: vcpu_x86_32
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_vcpu_setcontext
    - xen_pfn_to_cr3_x86_32
    - xc_dom_panic
    - xc_dom_p2m
    - DOMPRINTF
    - memset
    linkageType: ''
    returnType: int
    signature: int vcpu_x86_32(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:937,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:940,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:953,1
    - Dst: xen_pfn_to_cr3_x86_64
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:954,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:955,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:968,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 974
    functionName: vcpu_x86_64
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - xc_vcpu_setcontext
    - xc_dom_panic
    - DOMPRINTF
    - xc_dom_p2m
    - xen_pfn_to_cr3_x86_64
    - memset
    linkageType: ''
    returnType: int
    signature: int vcpu_x86_64(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - type
    - instance
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 988
    functionName: hvm_get_save_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: void
    signature: "void *hvm_get_save_record(const void *ctx, unsigned int type,\n                                       unsigned
      int instance)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF_CALLED
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1003,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1005,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1014,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1017,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1023,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1026,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1033,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1036,1
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1043,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1044,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1045,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1048,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1050,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1082,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1084,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1099,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1100,1
    - Dst: hvm_get_save_record
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1105,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1105,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1110,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1115,1
    - Dst: xc_domain_hvm_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1126,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1129,1
    - Dst: xc_domain_hvm_setcontext
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1138,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1141,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1145,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 73
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts:
    - condition: (dom->max_vcpus)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    constantsTouched: []
    func_position:
      end: 1147
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1147
    functionName: vcpu_hvm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - DOMPRINTF_CALLED
    - calloc
    - free
    - xc_dom_panic
    - memset
    - hvm_get_save_record
    - HVM_SAVE_LENGTH
    - xc_domain_hvm_getcontext
    - assert
    - xc_domain_hvm_setcontext
    - memcpy
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: int
    signature: int vcpu_hvm(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1164,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1167,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1168,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1174,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1176,1
    - Dst: xc_dom_printf
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - xch
    - domid
    - guest_type
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1181
    functionName: x86_compat
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - do_domctl
    - memset
    - strcmp
    - xc_dom_printf
    linkageType: ''
    returnType: int
    signature: "int x86_compat(xc_interface *xch, uint32_t domid,\n                      const
      char *guest_type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: x86_compat
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1194,1
    - Dst: xc_domain_claim_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1201,1
    - Dst: max
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1243,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1248,1
    - Dst: xc_dom_malloc
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1254,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1271,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1271,1
    - Dst: XENMEMF_exact_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1272,1
    - Dst: min_t
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1283,1
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1290,1
    - Dst: min_t
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1309,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1310,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1316,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1320,1
    - Dst: xc_domain_claim_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1331,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 77
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1183
    functionDepth: 3
    functionLinenumber: 1183
    functionLinenumberEnd: 1334
    functionName: meminit_pv
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - XENMEMF_get_node
    - max
    - xc_domain_claim_pages
    - x86_compat
    - xc_dom_panic
    - xc_domain_populate_physmap
    - min_t
    - xc_domain_populate_physmap_exact
    - xc_dom_malloc
    - XENMEMF_exact_node
    linkageType: ''
    returnType: int
    signature: int meminit_pv(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - start
    - memsize
    - mmio_start
    - mmio_size
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1347
    functionName: check_mmio_hole
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int check_mmio_hole(uint64_t start, uint64_t memsize,\n                           uint64_t
      mmio_start, uint64_t mmio_size)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1408,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1422,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1432,1
    - Dst: xc_domain_claim_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1446,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1450,1
    - Dst: xc_domain_set_pod_target
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1463,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1468,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1484,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1487,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1491,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1506,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1506,1
    - Dst: XENMEMF_exact_node
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1507,1
    - Dst: check_mmio_hole
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1550,1
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1561,1
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1600,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1622,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1631,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1636,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1637,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1638,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1639,1
    - Dst: xc_domain_claim_pages
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1648,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 148
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1651
    functionName: meminit_hvm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - XENMEMF_get_node
    - xc_domain_claim_pages
    - ARRAY_SIZE
    - xc_domain_populate_physmap
    - DOMPRINTF
    - DPRINTF
    - xc_domain_populate_physmap_exact
    - XENMEMF_exact_node
    - xc_domain_set_pod_target
    - check_mmio_hole
    linkageType: ''
    returnType: int
    signature: int meminit_hvm(struct xc_dom_image *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_xen_feature_get
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1658,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1666
    functionName: bootearly
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 1
    functionsReached:
    - elf_xen_feature_get
    - DOMPRINTF
    linkageType: ''
    returnType: int
    signature: int bootearly(struct xc_dom_image *dom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1683,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1684,1
    - Dst: xc_dom_unmap_one
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1688,1
    - Dst: xc_dom_unmap_one
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1689,1
    - Dst: pin_table
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1690,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1691,1
    - Dst: xc_dom_panic
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1695,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1703,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1705,1
    - Dst: struct xc_dom_image*::arch_hooks::shared_info
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1711,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1668
    functionDepth: 2
    functionLinenumber: 1668
    functionLinenumberEnd: 1715
    functionName: bootlate_pv
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - struct xc_dom_image*::arch_hooks::shared_info
    - ARRAY_SIZE
    - munmap
    - xc_dom_panic
    - xc_dom_unmap_one
    - xc_dom_p2m
    - DOMPRINTF
    - xc_map_foreign_range
    - pin_table
    - strcmp
    linkageType: ''
    returnType: int
    signature: int bootlate_pv(struct xc_dom_image *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1750,1
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1757,1
    - Dst: strnlen
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1757,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - dom
    - module
    - cmdline
    - modlist
    - start_info
    argTypes:
    - struct xc_dom_image*
    - struct xc_hvm_firmware_module*
    - char*
    - struct hvm_modlist_entry*
    - struct hvm_start_info*
    assertStmts:
    - condition: (start_info->nr_modules < HVMLOADER_MODULE_MAX_COUNT)
      pos:
        line_end: 1749
        line_start: 1749
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - condition: "(strnlen(cmdline, HVMLOADER_MODULE_CMDLINE_SIZE)\n               <
        HVMLOADER_MODULE_CMDLINE_SIZE)"
      pos:
        line_end: 1757
        line_start: 1756
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    constantsTouched: []
    func_position:
      end: 1766
      start: 1734
    functionDepth: 1
    functionLinenumber: 1734
    functionLinenumberEnd: 1766
    functionName: add_module_to_list
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - strncpy
    - strnlen
    - assert
    linkageType: ''
    returnType: void
    signature: "void add_module_to_list(struct xc_dom_image *dom,\n                               struct
      xc_hvm_firmware_module *module,\n                               const char *cmdline,\n
      \                              struct hvm_modlist_entry *modlist,\n                               struct
      hvm_start_info *start_info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1778,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1779,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1784,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1796,1
    - Dst: add_module_to_list
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1806,1
    - Dst: DOMPRINTF
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1821,1
    - Dst: add_module_to_list
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1824,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1838,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1839,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1858,1
    - Dst: XC_DOM_PAGE_SHIFT
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1858,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1864,1
    - Dst: build_hvm_info
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1868,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1869,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1872,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1874,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1879
    functionName: bootlate_hvm
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 0
    functionsReached:
    - add_module_to_list
    - xc_hvm_param_set
    - build_hvm_info
    - XC_DOM_PAGE_SHIFT
    - munmap
    - DOMPRINTF
    - BUILD_BUG_ON
    - strncpy
    - xc_map_foreign_range
    linkageType: ''
    returnType: int
    signature: int bootlate_hvm(struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1881
    functionDepth: 0
    functionLinenumber: 1881
    functionLinenumberEnd: 1885
    functionName: xc_dom_translated
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xc_dom_translated(const struct xc_dom_image *dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_register_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1941,1
    - Dst: xc_dom_register_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1942,1
    - Dst: xc_dom_register_arch_hooks
      Src: /src/xen/tools/libs/guest/xg_dom_x86.c:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1944
    functionName: register_arch_hooks
    functionSourceFile: /src/xen/tools/libs/guest/xg_dom_x86.c
    functionUses: 2
    functionsReached:
    - xc_dom_register_arch_hooks
    linkageType: ''
    returnType: void
    signature: void register_arch_hooks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_domain.c:27,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_domain.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - minfo
    argTypes:
    - xc_interface*
    - struct xc_domain_meminfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: xc_unmap_domain_meminfo
    functionSourceFile: /src/xen/tools/libs/guest/xg_domain.c
    functionUses: 1
    functionsReached:
    - free
    - munmap
    linkageType: ''
    returnType: int
    signature: int xc_unmap_domain_meminfo(xc_interface *xch, struct xc_domain_meminfo
      *minfo)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/guest/xg_domain.c:52,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:54,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_domain.c:58,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:60,1
    - Dst: xc_version
      Src: /src/xen/tools/libs/guest/xg_domain.c:66,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:68,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_domain.c:71,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_domain.c:74,1
    - Dst: strstr
      Src: /src/xen/tools/libs/guest/xg_domain.c:76,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_domain.c:85,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:89,1
    - Dst: xc_core_arch_map_p2m_writable
      Src: /src/xen/tools/libs/guest/xg_domain.c:94,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:97,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_domain.c:98,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_domain.c:101,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_domain.c:106,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:109,1
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_domain.c:113,1
    - Dst: min
      Src: /src/xen/tools/libs/guest/xg_domain.c:119,1
    - Dst: xc_get_pfn_type_batch
      Src: /src/xen/tools/libs/guest/xg_domain.c:121,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_domain.c:123,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_domain.c:133,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_domain.c:138,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 3
    argNames:
    - xch
    - domid
    - minfo
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xc_domain_meminfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 143
    functionName: xc_map_domain_meminfo
    functionSourceFile: /src/xen/tools/libs/guest/xg_domain.c
    functionUses: 1
    functionsReached:
    - PERROR
    - calloc
    - free
    - munmap
    - xc_pfn_to_mfn
    - xc_version
    - xc_domain_get_guest_width
    - xc_core_arch_map_p2m_writable
    - min
    - xc_map_foreign_range
    - xc_get_pfn_type_batch
    - strstr
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: int
    signature: "int xc_map_domain_meminfo(xc_interface *xch, uint32_t domid,\n                          struct
      xc_domain_meminfo *minfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - arch_ctxt
    - pfn
    argTypes:
    - struct xc_core_arch_context*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: xc_core_arch_gpfn_may_present
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_gpfn_may_present(struct xc_core_arch_context *arch_ctxt,\n
      \                             unsigned long pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_nr_gpfns
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:43,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:46,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - xch
    - unused
    - info
    - live_shinfo
    - mapp
    - nr_entries
    argTypes:
    - xc_interface*
    - struct xc_core_arch_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xc_core_memory_map_t**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 59
    functionName: xc_core_arch_memory_map_get
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 1
    functionsReached:
    - xc_domain_nr_gpfns
    - malloc
    - PERROR
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_memory_map_get(xc_interface *xch, struct xc_core_arch_context
      *unused,\n                            xc_domaininfo_t *info, shared_info_any_t
      *live_shinfo,\n                            xc_core_memory_map_t **mapp,\n                            unsigned
      int *nr_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    - rw
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: xc_core_arch_map_p2m_rw
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m_rw(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                        shared_info_any_t *live_shinfo,
      xen_pfn_t **live_p2m, int rw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_map_p2m_rw
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: xc_core_arch_map_p2m
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 2
    functionsReached:
    - xc_core_arch_map_p2m_rw
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                        shared_info_any_t *live_shinfo,
      xen_pfn_t **live_p2m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_core_arch_map_p2m_rw
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - dinfo
    - info
    - live_shinfo
    - live_p2m
    argTypes:
    - xc_interface*
    - struct domain_info_context*
    - xc_domaininfo_t*
    - shared_info_any_t*
    - xen_pfn_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: xc_core_arch_map_p2m_writable
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 1
    functionsReached:
    - xc_core_arch_map_p2m_rw
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_map_p2m_writable(xc_interface *xch, struct domain_info_context
      *dinfo, xc_domaininfo_t *info,\n                              shared_info_any_t
      *live_shinfo, xen_pfn_t **live_p2m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/guest/xg_core_arm.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - domid
    - gpfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: xc_core_arch_get_scratch_gpfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_core_arm.c
    functionUses: 1
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: "int xc_core_arch_get_scratch_gpfn(xc_interface *xch, uint32_t domid,\n
      \                             xen_pfn_t *gpfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_get_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:13,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:16,1
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 3
    functionDepth: 2
    functionLinenumber: 3
    functionLinenumberEnd: 21
    functionName: write_x86_tsc_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 2
    functionsReached:
    - xc_domain_get_tsc_info
    - write_record
    - PERROR
    linkageType: ''
    returnType: int
    signature: int write_x86_tsc_info(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:30,1
    - Dst: xc_domain_set_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:35,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: handle_x86_tsc_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 1
    functionsReached:
    - ERROR
    - xc_domain_set_tsc_info
    - PERROR
    linkageType: ''
    returnType: int
    signature: int handle_x86_tsc_info(struct xc_sr_context *ctx, struct xc_sr_record
      *rec)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpu_policy_get_size
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:54,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:56,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:60,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:61,1
    - Dst: xc_cpu_policy_init
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:62,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:65,1
    - Dst: xc_cpu_policy_get_domain
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:70,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:72,1
    - Dst: xc_cpu_policy_serialise
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:76,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:79,1
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:87,1
    - Dst: write_record
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:95,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:103,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:104,1
    - Dst: xc_cpu_policy_destroy
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:105,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 108
    functionName: write_x86_cpu_policy_records
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 2
    functionsReached:
    - xc_cpu_policy_get_domain
    - write_record
    - PERROR
    - xc_cpu_policy_init
    - free
    - ERROR
    - xc_cpu_policy_serialise
    - malloc
    - xc_cpu_policy_get_size
    - xc_cpu_policy_destroy
    linkageType: ''
    returnType: int
    signature: int write_x86_cpu_policy_records(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:118,1
    - Dst: update_blob
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:123,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: handle_x86_cpuid_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 1
    functionsReached:
    - ERROR
    - update_blob
    linkageType: ''
    returnType: int
    signature: int handle_x86_cpuid_policy(struct xc_sr_context *ctx, struct xc_sr_record
      *rec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:138,1
    - Dst: update_blob
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:143,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: handle_x86_msr_policy
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 1
    functionsReached:
    - ERROR
    - update_blob
    linkageType: ''
    returnType: int
    signature: int handle_x86_msr_policy(struct xc_sr_context *ctx, struct xc_sr_record
      *rec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_set_domain_cpu_policy
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:167,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - missing
    argTypes:
    - struct xc_sr_context*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 178
    functionName: x86_static_data_complete
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86.c
    functionUses: 0
    functionsReached:
    - PERROR
    - xc_set_domain_cpu_policy
    linkageType: ''
    returnType: int
    signature: int x86_static_data_complete(struct xc_sr_context *ctx, unsigned int
      *missing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:7,1
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts:
    - condition: (pfn <= ctx->x86.pv.max_pfn)
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: pfn_to_mfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 4
    functionsReached:
    - assert
    - xc_pfn_to_mfn
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t pfn_to_mfn(const struct xc_sr_context *ctx, xen_pfn_t pfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:29,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:32,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:35,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:41,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:44,1
    - Dst: realloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:50,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:53,1
    - Dst: struct xc_sr_context*::restore::ops::set_gfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:62,1
    - Dst: struct xc_sr_context*::restore::ops::set_page_type
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:63,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - ctx
    - max_pfn
    argTypes:
    - struct xc_sr_context*
    - unsigned long
    assertStmts:
    - condition: (max_pfn > old_max)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    constantsTouched: []
    func_position:
      end: 71
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 71
    functionName: expand_p2m
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - ERROR
    - DPRINTF
    - realloc
    - assert
    - struct xc_sr_context*::restore::ops::set_page_type
    - struct xc_sr_context*::restore::ops::set_gfn
    linkageType: ''
    returnType: int
    signature: int expand_p2m(struct xc_sr_context *ctx, unsigned long max_pfn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:107,1
    - Dst: xc_mmuext_op
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:112,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:114,1
    - Dst: xc_mmuext_op
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:121,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:123,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 128
    functionName: pin_pagetables
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - pfn_to_mfn
    - xc_mmuext_op
    - PERROR
    linkageType: ''
    returnType: int
    signature: int pin_pagetables(struct xc_sr_context *ctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:141,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:145,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:151,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:157,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:158,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:160,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:161,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:165,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:166,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:170,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:175,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:178,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:182,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:183,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:185,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:186,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:191,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:192,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:196,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:199,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:203,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:204,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:206,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:207,1
    - Dst: xc_dom_console_set_disconnected
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:211,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:213,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:214,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:218,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:220,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:222,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:228,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 2
    argNames:
    - ctx
    - vcpu
    argTypes:
    - struct xc_sr_context*
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 231
    functionName: process_start_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - xc_dom_console_set_disconnected
    - GET_FIELD
    - mfn_in_pseudophysmap
    - PERROR
    - ERROR
    - munmap
    - pfn_to_mfn
    - SET_FIELD
    - xc_map_foreign_range
    - dump_bad_pseudophysmap_entry
    linkageType: ''
    returnType: int
    signature: "int process_start_info(struct xc_sr_context *ctx,\n                              vcpu_guest_context_any_t
      *vcpu)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: process_start_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:248,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:254,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:255,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:258,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:261,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:271,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:274,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:280,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:286,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:287,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:289,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:290,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:294,1
    - Dst: cr3_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:298,1
    - Dst: GET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:298,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:301,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:309,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:316,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:317,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:319,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:320,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:324,1
    - Dst: mfn_to_cr3
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:324,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:333,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:341,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:348,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:349,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:351,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:352,1
    - Dst: xc_vcpu_setcontext
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:359,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:361,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - ctx
    - vcpuid
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 369
    functionName: process_vcpu_basic
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - GET_FIELD
    - mfn_in_pseudophysmap
    - PERROR
    - xc_vcpu_setcontext
    - ERROR
    - cr3_to_mfn
    - pfn_to_mfn
    - SET_FIELD
    - dump_bad_pseudophysmap_entry
    - mfn_to_cr3
    - process_start_info
    linkageType: ''
    returnType: int
    signature: "int process_vcpu_basic(struct xc_sr_context *ctx,\n                              unsigned
      int vcpuid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:384,1
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:386,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - vcpuid
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: process_vcpu_extended
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - memcpy
    - xc_domctl
    linkageType: ''
    returnType: int
    signature: "int process_vcpu_extended(struct xc_sr_context *ctx,\n                                 unsigned
      int vcpuid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:408,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:411,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:420,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:422,1
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:424,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:426,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - vcpuid
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 431
    functionName: process_vcpu_xsave
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - xc_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int process_vcpu_xsave(struct xc_sr_context *ctx,\n                              unsigned
      int vcpuid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:446,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:449,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:458,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:460,1
    - Dst: xc_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:462,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:464,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - ctx
    - vcpuid
    argTypes:
    - struct xc_sr_context*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 469
    functionName: process_vcpu_msrs
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - xc_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int process_vcpu_msrs(struct xc_sr_context *ctx,\n                             unsigned
      int vcpuid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: process_vcpu_basic
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:487,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:493,1
    - Dst: process_vcpu_extended
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:499,1
    - Dst: process_vcpu_xsave
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:506,1
    - Dst: process_vcpu_msrs
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 520
    functionName: update_vcpu_context
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - process_vcpu_basic
    - ERROR
    - process_vcpu_msrs
    - process_vcpu_xsave
    - process_vcpu_extended
    linkageType: ''
    returnType: int
    signature: int update_vcpu_context(struct xc_sr_context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:540,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:547,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:553,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:554,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:556,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:557,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:564,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:569,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:573,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:579,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 582
    functionName: update_guest_p2m
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - mfn_in_pseudophysmap
    - PERROR
    - ERROR
    - munmap
    - pfn_to_mfn
    - dump_bad_pseudophysmap_entry
    - xc_map_foreign_pages
    - memcpy
    linkageType: ''
    returnType: int
    signature: int update_guest_p2m(struct xc_sr_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct xc_sr_rec_x86_pv_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 597
    functionName: valid_x86_pv_info_combination
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool valid_x86_pv_info_combination(\n    const struct xc_sr_rec_x86_pv_info
      *info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:610,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:616,1
    - Dst: valid_x86_pv_info_combination
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:621,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:623,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:639,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:643,1
    - Dst: x86_pv_domain_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:649,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:652,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:661,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 669
    functionName: handle_x86_pv_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - valid_x86_pv_info_combination
    - ERROR
    - do_domctl
    - x86_pv_domain_info
    linkageType: ''
    returnType: int
    signature: "int handle_x86_pv_info(struct xc_sr_context *ctx,\n                              struct
      xc_sr_record *rec)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: handle_static_data_end
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:686,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:689,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:696,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:702,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:708,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:715,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:725,1
    - Dst: expand_p2m
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:734,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 743
    functionName: handle_x86_pv_p2m_frames
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - handle_static_data_end
    - ERROR
    - expand_p2m
    linkageType: ''
    returnType: int
    signature: "int handle_x86_pv_p2m_frames(struct xc_sr_context *ctx,\n                                    struct
      xc_sr_record *rec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:781,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:782,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:789,1
    - Dst: DBGPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:802,1
    - Dst: rec_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:803,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:811,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:829,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:840,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:850,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:860,1
    - Dst: update_blob
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:868,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:870,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 875
    functionName: handle_x86_pv_vcpu_blob
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - ERROR
    - DBGPRINTF
    - update_blob
    - rec_type_to_str
    linkageType: ''
    returnType: int
    signature: "int handle_x86_pv_vcpu_blob(struct xc_sr_context *ctx,\n                                   struct
      xc_sr_record *rec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:891,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:897,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:902,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:907,1
    - Dst: MEMCPY_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:912,1
    - Dst: MEMCPY_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:913,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:915,1
    - Dst: MEMSET_ARRAY_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:918,1
    - Dst: SET_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:920,1
    - Dst: MEMSET_ARRAY_FIELD
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:923,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:929,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 932
    functionName: handle_shared_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - ERROR
    - munmap
    - SET_FIELD
    - xc_map_foreign_range
    - MEMSET_ARRAY_FIELD
    - MEMCPY_FIELD
    linkageType: ''
    returnType: int
    signature: "int handle_shared_info(struct xc_sr_context *ctx,\n                              struct
      xc_sr_record *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - pfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: x86_pv_pfn_is_valid
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool x86_pv_pfn_is_valid(const struct xc_sr_context *ctx, xen_pfn_t
      pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - pfn
    - type
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - unsigned long
    assertStmts:
    - condition: (pfn <= ctx->x86.pv.max_pfn)
      pos:
        line_end: 943
        line_start: 943
        source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    constantsTouched: []
    func_position:
      end: 947
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 947
    functionName: x86_pv_set_page_type
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void x86_pv_set_page_type(struct xc_sr_context *ctx, xen_pfn_t pfn,\n
      \                                unsigned long type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - pfn
    - mfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts:
    - condition: (pfn <= ctx->x86.pv.max_pfn)
      pos:
        line_end: 952
        line_start: 952
        source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    constantsTouched: []
    func_position:
      end: 961
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 961
    functionName: x86_pv_set_gfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void x86_pv_set_gfn(struct xc_sr_context *ctx, xen_pfn_t pfn,\n                           xen_pfn_t
      mfn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pte_to_frame
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:990,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:995,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1002,1
    - Dst: populate_pfns
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1007,1
    - Dst: pte_to_frame
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1018,1
    - Dst: pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1019,1
    - Dst: mfn_in_pseudophysmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1021,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1023,1
    - Dst: dump_bad_pseudophysmap_entry
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1025,1
    - Dst: merge_pte
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1030,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - type
    - page
    argTypes:
    - struct xc_sr_context*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 1035
    functionName: x86_pv_localise_page
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - mfn_in_pseudophysmap
    - ERROR
    - pfn_to_mfn
    - merge_pte
    - pte_to_frame
    - populate_pfns
    - dump_bad_pseudophysmap_entry
    linkageType: ''
    returnType: int
    signature: "int x86_pv_localise_page(struct xc_sr_context *ctx,\n                                uint32_t
      type, void *page)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1048,1
    - Dst: dhdr_type_to_str
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1049,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1055,1
    - Dst: x86_pv_domain_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1060,1
    - Dst: calloc
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1065,1
    - Dst: x86_pv_map_m2p
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1078
    functionName: x86_pv_setup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - calloc
    - ERROR
    - dhdr_type_to_str
    - x86_pv_domain_info
    - x86_pv_map_m2p
    linkageType: ''
    returnType: int
    signature: int x86_pv_setup(struct xc_sr_context *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: handle_x86_pv_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1089,1
    - Dst: handle_x86_pv_p2m_frames
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1092,1
    - Dst: handle_x86_pv_vcpu_blob
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1098,1
    - Dst: handle_shared_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1101,1
    - Dst: handle_x86_tsc_info
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1104,1
    - Dst: handle_x86_cpuid_policy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1107,1
    - Dst: handle_x86_msr_policy
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - ctx
    - rec
    argTypes:
    - struct xc_sr_context*
    - struct xc_sr_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1115
    functionName: x86_pv_process_record
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - handle_x86_pv_info
    - handle_x86_tsc_info
    - handle_x86_pv_p2m_frames
    - handle_shared_info
    - handle_x86_pv_vcpu_blob
    - handle_x86_cpuid_policy
    - handle_x86_msr_policy
    linkageType: ''
    returnType: int
    signature: "int x86_pv_process_record(struct xc_sr_context *ctx,\n                                 struct
      xc_sr_record *rec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: update_vcpu_context
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1126,1
    - Dst: pin_pagetables
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1130,1
    - Dst: update_guest_p2m
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1134,1
    - Dst: xc_dom_gnttab_seed
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1138,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1121
    functionDepth: 6
    functionLinenumber: 1121
    functionLinenumberEnd: 1150
    functionName: x86_pv_stream_complete
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - PERROR
    - update_vcpu_context
    - pin_pagetables
    - update_guest_p2m
    - xc_dom_gnttab_seed
    linkageType: ''
    returnType: int
    signature: int x86_pv_stream_complete(struct xc_sr_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1157,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1158,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1169,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1170,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1171,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1172,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1175,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1178,1
    - Dst: munmap
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1181,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1183,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c:1184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1187
    functionName: x86_pv_cleanup
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
    functionUses: 0
    functionsReached:
    - free
    - munmap
    linkageType: ''
    returnType: int
    signature: int x86_pv_cleanup(struct xc_sr_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - mfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts:
    - condition: (mfn <= ctx->x86.pv.max_mfn)
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: mfn_to_pfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t mfn_to_pfn(struct xc_sr_context *ctx, xen_pfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:14,1
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:15,1
    - Dst: mfn_to_pfn
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - mfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: mfn_in_pseudophysmap
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 7
    functionsReached:
    - mfn_to_pfn
    - xc_pfn_to_mfn
    linkageType: ''
    returnType: bool
    signature: bool mfn_in_pseudophysmap(struct xc_sr_context *ctx, xen_pfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:24,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:29,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:34,1
    - Dst: xc_pfn_to_mfn
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - mfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: dump_bad_pseudophysmap_entry
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 7
    functionsReached:
    - ERROR
    - xc_pfn_to_mfn
    linkageType: ''
    returnType: void
    signature: void dump_bad_pseudophysmap_entry(struct xc_sr_context *ctx, xen_pfn_t
      mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - cr3
    argTypes:
    - struct xc_sr_context*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: cr3_to_mfn
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t cr3_to_mfn(struct xc_sr_context *ctx, uint64_t cr3)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - _mfn
    argTypes:
    - struct xc_sr_context*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: mfn_to_cr3
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mfn_to_cr3(struct xc_sr_context *ctx, xen_pfn_t _mfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:74,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:76,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:86,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: x86_pv_domain_info
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 3
    functionsReached:
    - xc_domain_get_guest_width
    - ERROR
    - PERROR
    - DPRINTF
    linkageType: ''
    returnType: int
    signature: int x86_pv_domain_info(struct xc_sr_context *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_maximum_ram_page
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:105,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:107,1
    - Dst: M2P_SIZE
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:112,1
    - Dst: M2P_CHUNKS
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:113,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:115,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:118,1
    - Dst: xc_machphys_mfn_list
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:123,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:125,1
    - Dst: malloc
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:129,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:132,1
    - Dst: xc_map_foreign_ranges
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:140,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:146,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:164,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:168,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:179,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:182,1
    - Dst: free
      Src: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c:183,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct xc_sr_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 186
    functionName: x86_pv_map_m2p
    functionSourceFile: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
    functionUses: 2
    functionsReached:
    - M2P_SIZE
    - xc_map_foreign_ranges
    - PERROR
    - xc_machphys_mfn_list
    - xc_memory_op
    - free
    - ERROR
    - malloc
    - M2P_CHUNKS
    - DPRINTF
    - xc_maximum_ram_page
    linkageType: ''
    returnType: int
    signature: int x86_pv_map_m2p(struct xc_sr_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - xch
    - dom
    - prot
    - arr
    - num
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - xen_pfn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: xc_map_foreign_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_foreign_memory.c
    functionUses: 7
    functionsReached:
    - xenforeignmemory_map
    linkageType: ''
    returnType: void
    signature: "void *xc_map_foreign_pages(xc_interface *xch, uint32_t dom, int prot,\n
      \                          const xen_pfn_t *arr, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:44,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:51,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - xch
    - dom
    - size
    - prot
    - mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: xc_map_foreign_range
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_foreign_memory.c
    functionUses: 19
    functionsReached:
    - free
    - xc_map_foreign_pages
    - calloc
    linkageType: ''
    returnType: void
    signature: "void *xc_map_foreign_range(xc_interface *xch,\n                           uint32_t
      dom, int size, int prot,\n                           unsigned long mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:71,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:79,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 7
    argNames:
    - xch
    - dom
    - size
    - prot
    - chunksize
    - entries
    - nentries
    argTypes:
    - xc_interface*
    - uint32_t
    - size_t
    - int
    - size_t
    - privcmd_mmap_entry_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 82
    functionName: xc_map_foreign_ranges
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_foreign_memory.c
    functionUses: 4
    functionsReached:
    - free
    - xc_map_foreign_pages
    - calloc
    linkageType: ''
    returnType: void
    signature: "void *xc_map_foreign_ranges(xc_interface *xch,\n                            uint32_t
      dom, size_t size,\n                            int prot, size_t chunksize,\n
      \                           privcmd_mmap_entry_t entries[],\n                            int
      nentries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/libs/ctrl/xc_foreign_memory.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - dom
    - prot
    - arr
    - err
    - num
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - xen_pfn_t*
    - int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: xc_map_foreign_bulk
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_foreign_memory.c
    functionUses: 0
    functionsReached:
    - xenforeignmemory_map
    linkageType: ''
    returnType: void
    signature: "void *xc_map_foreign_bulk(xc_interface *xch, uint32_t dom, int prot,\n
      \                         const xen_pfn_t *arr, int *err, unsigned int num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:35,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:38,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:41,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:43,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:44,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - xch
    - overlay_fdt
    - overlay_fdt_size
    - overlay_op
    argTypes:
    - xc_interface*
    - void*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: xc_dt_overlay
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_dt_overlay.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_dt_overlay(xc_interface *xch, void *overlay_fdt,\n                  uint32_t
      overlay_fdt_size, uint8_t overlay_op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:66,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:69,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:72,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:74,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:75,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_dt_overlay.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - xch
    - overlay_fdt
    - overlay_fdt_size
    - overlay_op
    - domain_id
    argTypes:
    - xc_interface*
    - void*
    - uint32_t
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 81
    functionName: xc_dt_overlay_domain
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_dt_overlay.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_dt_overlay_domain(xc_interface *xch, void *overlay_fdt,\n                         uint32_t
      overlay_fdt_size, uint8_t overlay_op,\n                         uint32_t domain_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_csched.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_credit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: xc_sched_credit_domain_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit_domain_set(\n    xc_interface *xch,\n    uint32_t
      domid,\n    struct xen_domctl_sched_credit *sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_csched.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_credit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: xc_sched_credit_domain_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched.c
    functionUses: 3
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit_domain_get(\n    xc_interface *xch,\n    uint32_t
      domid,\n    struct xen_domctl_sched_credit *sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_csched.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_credit_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: xc_sched_credit_params_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit_params_set(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_credit_schedule *schedule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_csched.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_credit_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: xc_sched_credit_params_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit_params_get(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_credit_schedule *schedule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:26,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:30,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:36,1
    - Dst: do_platform_op
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:38,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - xch
    - op
    argTypes:
    - xc_interface*
    - xc_resource_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: xc_resource_op_one
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_resource.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - set_xen_guest_handle
    - do_platform_op
    - DECLARE_NAMED_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_resource_op_one(xc_interface *xch, xc_resource_op_t *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:51,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:54,1
    - Dst: xc_hypercall_buffer_array_create
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:59,1
    - Dst: xc_hypercall_buffer_array_create
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:66,1
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:75,1
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:76,1
    - Dst: xc_hypercall_buffer_array_alloc
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:80,1
    - Dst: xc_hypercall_buffer_array_alloc
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:89,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:96,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:100,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:106,1
    - Dst: do_multicall_op
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:109,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:109,1
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:113,1
    - Dst: xc_hypercall_buffer_array_get
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:120,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:122,1
    - Dst: xc_hypercall_buffer_array_destroy
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:126,1
    - Dst: xc_hypercall_buffer_array_destroy
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:127,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:128,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 3
    argNames:
    - xch
    - nr_ops
    - ops
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_resource_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 130
    functionName: xc_resource_op_multi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_resource.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - HYPERCALL_BUFFER
    - xc_hypercall_buffer_array_alloc
    - do_multicall_op
    - xc_hypercall_buffer_array_get
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_array_destroy
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_buffer_array_create
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xc_resource_op_multi(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t
      *ops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_resource_op_one
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:135,1
    - Dst: xc_resource_op_multi
      Src: /src/xen/tools/libs/ctrl/xc_resource.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - nr_ops
    - ops
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_resource_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: xc_resource_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_resource.c
    functionUses: 1
    functionsReached:
    - xc_resource_op_one
    - xc_resource_op_multi
    linkageType: ''
    returnType: int
    signature: int xc_resource_op(xc_interface *xch, uint32_t nr_ops, xc_resource_op_t
      *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:40,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:44,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:46,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:50,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:51,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:55,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - xch
    - op
    argTypes:
    - xc_interface*
    - xen_flask_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 62
    functionName: xc_flask_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    - fprintf
    - HYPERCALL_BUFFER_AS_ARG
    - xencall1
    linkageType: ''
    returnType: int
    signature: int xc_flask_op(xc_interface *xch, xen_flask_op_t *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:68,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:69,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:71,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:77,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:79,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - buf
    - size
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: xc_flask_load
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_load(xc_interface *xch, char *buf, uint32_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:90,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:92,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:94,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:100,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:102,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - xch
    - buf
    - size
    - sid
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: xc_flask_context_to_sid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_context_to_sid(xc_interface *xch, char *buf, uint32_t
      size, uint32_t *sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:116,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:118,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:120,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:127,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:129,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - sid
    - buf
    - size
    argTypes:
    - xc_interface*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: xc_flask_sid_to_context
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_sid_to_context(xc_interface *xch, int sid, char *buf,
      uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: xc_flask_getenforce
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 2
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_getenforce(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - mode
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: xc_flask_setenforce
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 2
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_setenforce(xc_interface *xch, int mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:157,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:159,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:161,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:168,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:170,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - xch
    - id
    - name
    - size
    - curr
    - pend
    argTypes:
    - xc_interface*
    - int
    - char*
    - uint32_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 183
    functionName: xc_flask_getbool_byid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_getbool_byid(xc_interface *xch, int id, char *name, uint32_t
      size, int *curr, int *pend)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:189,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:189,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:191,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:193,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:199,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:200,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:202,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - xch
    - name
    - curr
    - pend
    argTypes:
    - xc_interface*
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 215
    functionName: xc_flask_getbool_byname
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_getbool_byname(xc_interface *xch, char *name, int *curr,
      int *pend)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:221,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:221,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:223,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:225,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:233,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:234,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:236,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - xch
    - name
    - value
    - commit
    argTypes:
    - xc_interface*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 241
    functionName: xc_flask_setbool
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_flask_op
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_flask_setbool(xc_interface *xch, char *name, int value, int
      commit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:250,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:250,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - xch
    - ocon
    - low
    - high
    - scontext
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: xc_flask_add
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_context_to_sid
    - xc_flask_op
    - strlen
    linkageType: ''
    returnType: int
    signature: int xc_flask_add(xc_interface *xch, uint32_t ocon, uint64_t low, uint64_t
      high, char *scontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_add
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - pirq
    - scontext
    argTypes:
    - xc_interface*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: xc_flask_add_pirq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_add
    linkageType: ''
    returnType: int
    signature: int xc_flask_add_pirq(xc_interface *xch, unsigned int pirq, char *scontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_add
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - low
    - high
    - scontext
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: xc_flask_add_ioport
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_flask_add
    linkageType: ''
    returnType: int
    signature: "int xc_flask_add_ioport(xc_interface *xch, unsigned long low, unsigned
      long high,\n                      char *scontext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_add
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - low
    - high
    - scontext
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 4
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: xc_flask_add_iomem
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_flask_add
    linkageType: ''
    returnType: int
    signature: "int xc_flask_add_iomem(xc_interface *xch, unsigned long low, unsigned
      long high,\n                     char *scontext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_add
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - device
    - scontext
    argTypes:
    - xc_interface*
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: xc_flask_add_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_flask_add
    linkageType: ''
    returnType: int
    signature: int xc_flask_add_device(xc_interface *xch, unsigned long device, char
      *scontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - xch
    - ocon
    - low
    - high
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: xc_flask_del
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_del(xc_interface *xch, uint32_t ocon, uint64_t low, uint64_t
      high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_del
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - pirq
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: xc_flask_del_pirq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_del
    linkageType: ''
    returnType: int
    signature: int xc_flask_del_pirq(xc_interface *xch, unsigned int pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_del
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - low
    - high
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: xc_flask_del_ioport
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_del
    linkageType: ''
    returnType: int
    signature: int xc_flask_del_ioport(xc_interface *xch, unsigned long low, unsigned
      long high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_del
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - low
    - high
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: xc_flask_del_iomem
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_del
    linkageType: ''
    returnType: int
    signature: int xc_flask_del_iomem(xc_interface *xch, unsigned long low, unsigned
      long high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_del
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - device
    argTypes:
    - xc_interface*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: xc_flask_del_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_del
    linkageType: ''
    returnType: int
    signature: int xc_flask_del_device(xc_interface *xch, unsigned long device)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:326,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:326,1
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:329,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:329,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 10
    argNames:
    - xch
    - scon
    - tcon
    - tclass
    - req
    - allowed
    - decided
    - auditallow
    - auditdeny
    - seqno
    argTypes:
    - xc_interface*
    - char*
    - char*
    - uint16_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 357
    functionName: xc_flask_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_context_to_sid
    - xc_flask_op
    - strlen
    linkageType: ''
    returnType: int
    signature: "int xc_flask_access(xc_interface *xch, const char *scon, const char
      *tcon,\n                uint16_t tclass, uint32_t req,\n                uint32_t
      *allowed, uint32_t *decided,\n                uint32_t *auditallow, uint32_t
      *auditdeny,\n                uint32_t *seqno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:366,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - buf
    - size
    argTypes:
    - xc_interface*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 374
    functionName: xc_flask_avc_hashstats
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_avc_hashstats(xc_interface *xch, char *buf, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:382,1
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:390,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - xch
    - buf
    - size
    argTypes:
    - xc_interface*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 405
    functionName: xc_flask_avc_cachestats
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_avc_cachestats(xc_interface *xch, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: xc_flask_policyvers
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_policyvers(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: xc_flask_getavc_threshold
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_getavc_threshold(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - threshold
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 430
    functionName: xc_flask_setavc_threshold
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 0
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_setavc_threshold(xc_interface *xch, int threshold)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_flask_op
      Src: /src/xen/tools/libs/ctrl/xc_flask.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - sid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 440
    functionName: xc_flask_relabel_domain
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_flask.c
    functionUses: 1
    functionsReached:
    - xc_flask_op
    linkageType: ''
    returnType: int
    signature: int xc_flask_relabel_domain(xc_interface *xch, uint32_t domid, uint32_t
      sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_create_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - handle_bufioreq
    - id
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - ioservid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: xc_hvm_create_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_create_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_create_ioreq_server(\n    xc_interface *xch, uint32_t domid,
      int handle_bufioreq,\n    ioservid_t *id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_get_ioreq_server_info
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - id
    - ioreq_pfn
    - bufioreq_pfn
    - bufioreq_port
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - xen_pfn_t*
    - xen_pfn_t*
    - evtchn_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: xc_hvm_get_ioreq_server_info
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_get_ioreq_server_info
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_get_ioreq_server_info(\n    xc_interface *xch, uint32_t
      domid, ioservid_t id, xen_pfn_t *ioreq_pfn,\n    xen_pfn_t *bufioreq_pfn, evtchn_port_t
      *bufioreq_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_map_io_range_to_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - id
    - is_mmio
    - start
    - end
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: xc_hvm_map_io_range_to_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_map_io_range_to_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_map_io_range_to_ioreq_server(\n    xc_interface *xch, uint32_t
      domid, ioservid_t id, int is_mmio,\n    uint64_t start, uint64_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_unmap_io_range_from_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - id
    - is_mmio
    - start
    - end
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: xc_hvm_unmap_io_range_from_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_unmap_io_range_from_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_unmap_io_range_from_ioreq_server(\n    xc_interface *xch,
      uint32_t domid, ioservid_t id, int is_mmio,\n    uint64_t start, uint64_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_map_pcidev_to_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - xch
    - domid
    - id
    - segment
    - bus
    - device
    - function
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: xc_hvm_map_pcidev_to_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_map_pcidev_to_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_map_pcidev_to_ioreq_server(\n    xc_interface *xch, uint32_t
      domid, ioservid_t id, uint16_t segment,\n    uint8_t bus, uint8_t device, uint8_t
      function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_unmap_pcidev_from_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - xch
    - domid
    - id
    - segment
    - bus
    - device
    - function
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: xc_hvm_unmap_pcidev_from_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_unmap_pcidev_from_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_unmap_pcidev_from_ioreq_server(\n    xc_interface *xch,
      uint32_t domid, ioservid_t id, uint16_t segment,\n    uint8_t bus, uint8_t device,
      uint8_t function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_destroy_ioreq_server
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - id
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: xc_hvm_destroy_ioreq_server
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_destroy_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_destroy_ioreq_server(\n    xc_interface *xch, uint32_t
      domid, ioservid_t id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_set_ioreq_server_state
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - id
    - enabled
    argTypes:
    - xc_interface*
    - uint32_t
    - ioservid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: xc_hvm_set_ioreq_server_state
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_set_ioreq_server_state
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_set_ioreq_server_state(\n    xc_interface *xch, uint32_t
      domid, ioservid_t id, int enabled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_set_pci_intx_level
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - xch
    - domid
    - segment
    - bus
    - device
    - intx
    - level
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: xc_hvm_set_pci_intx_level
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_set_pci_intx_level
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_set_pci_intx_level(\n    xc_interface *xch, uint32_t domid,
      uint16_t segment, uint8_t bus,\n    uint8_t device, uint8_t intx, unsigned int
      level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_set_isa_irq_level
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - irq
    - level
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: xc_hvm_set_isa_irq_level
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_set_isa_irq_level
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_set_isa_irq_level(\n    xc_interface *xch, uint32_t domid,
      uint8_t irq, unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_set_pci_link_route
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - link
    - irq
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: xc_hvm_set_pci_link_route
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_set_pci_link_route
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_set_pci_link_route(\n    xc_interface *xch, uint32_t domid,
      uint8_t link, uint8_t irq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_inject_msi
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - msi_addr
    - msi_data
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: xc_hvm_inject_msi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_inject_msi
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_inject_msi(\n    xc_interface *xch, uint32_t domid, uint64_t
      msi_addr, uint32_t msi_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_track_dirty_vram
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - first_pfn
    - nr
    - dirty_bitmap
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint32_t
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: xc_hvm_track_dirty_vram
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_track_dirty_vram
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_track_dirty_vram(\n    xc_interface *xch, uint32_t domid,
      uint64_t first_pfn, uint32_t nr,\n    unsigned long *dirty_bitmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_modified_memory
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - first_pfn
    - nr
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: xc_hvm_modified_memory
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_modified_memory
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_modified_memory(\n    xc_interface *xch, uint32_t domid,
      uint64_t first_pfn, uint32_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_set_mem_type
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - type
    - first_pfn
    - nr
    argTypes:
    - xc_interface*
    - uint32_t
    - hvmmem_type_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: xc_hvm_set_mem_type
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_set_mem_type
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_set_mem_type(\n    xc_interface *xch, uint32_t domid, hvmmem_type_t
      type,\n    uint64_t first_pfn, uint32_t nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_inject_event
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - xch
    - domid
    - vcpu
    - vector
    - type
    - error_code
    - insn_len
    - cr2
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - uint8_t
    - uint8_t
    - uint32_t
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: xc_hvm_inject_trap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_inject_event
    linkageType: ''
    returnType: int
    signature: "int xc_hvm_inject_trap(\n    xc_interface *xch, uint32_t domid, int
      vcpu, uint8_t vector,\n    uint8_t type, uint32_t error_code, uint8_t insn_len,
      uint64_t cr2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xendevicemodel_pin_memory_cacheattr
      Src: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - start
    - end
    - type
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: xc_domain_pin_memory_cacheattr
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
    functionUses: 0
    functionsReached:
    - xendevicemodel_pin_memory_cacheattr
    linkageType: ''
    returnType: int
    signature: "int xc_domain_pin_memory_cacheattr(\n    xc_interface *xch, uint32_t
      domid, uint64_t start, uint64_t end,\n    uint32_t type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/xen/tools/libs/ctrl/xc_freebsd.c:28,1
    - Dst: lseek
      Src: /src/xen/tools/libs/ctrl/xc_freebsd.c:38,1
    - Dst: posix_fadvise
      Src: /src/xen/tools/libs/ctrl/xc_freebsd.c:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - xch
    - fd
    - flush
    argTypes:
    - xc_interface*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: discard_file_cache
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_freebsd.c
    functionUses: 2
    functionsReached:
    - fsync
    - lseek
    - posix_fadvise
    linkageType: ''
    returnType: void
    signature: void discard_file_cache(xc_interface *xch, int fd, int flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: posix_memalign
      Src: /src/xen/tools/libs/ctrl/xc_freebsd.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - alignment
    - size
    argTypes:
    - xc_interface*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: xc_memalign
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_freebsd.c
    functionUses: 0
    functionsReached:
    - posix_memalign
    linkageType: ''
    returnType: void
    signature: void *xc_memalign(xc_interface *xch, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: xc_pcidev_get_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_freebsd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_pcidev_get_gsi(xc_interface *xch, uint32_t sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - domid
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: xc_memshr_control
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_control(xc_interface *xch,\n                      uint32_t
      domid,\n                      int enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: xc_memshr_ring_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_ring_enable(xc_interface *xch,\n                          uint32_t
      domid,\n                          uint32_t *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: xc_memshr_ring_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_ring_disable(xc_interface *xch,\n                           uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xch
    - domid
    - mso
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_mem_sharing_op_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: xc_memshr_memop
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_memop(xc_interface *xch, uint32_t domid,\n                            xen_mem_sharing_op_t
      *mso)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:85,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - domid
    - gfn
    - handle
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: xc_memshr_nominate_gfn
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_nominate_gfn(xc_interface *xch,\n                           uint32_t
      domid,\n                           unsigned long gfn,\n                           uint64_t
      *handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:106,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - domid
    - gref
    - handle
    argTypes:
    - xc_interface*
    - uint32_t
    - grant_ref_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: xc_memshr_nominate_gref
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_nominate_gref(xc_interface *xch,\n                            uint32_t
      domid,\n                            grant_ref_t gref,\n                            uint64_t
      *handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:129,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - xch
    - source_domain
    - source_gfn
    - source_handle
    - client_domain
    - client_gfn
    - client_handle
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - uint64_t
    - uint32_t
    - unsigned long
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 140
    functionName: xc_memshr_share_gfns
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_share_gfns(xc_interface *xch,\n                         uint32_t
      source_domain,\n                         unsigned long source_gfn,\n                         uint64_t
      source_handle,\n                         uint32_t client_domain,\n                         unsigned
      long client_gfn,\n                         uint64_t client_handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:152,1
    - Dst: XENMEM_SHARING_OP_FIELD_MAKE_GREF
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:157,1
    - Dst: XENMEM_SHARING_OP_FIELD_MAKE_GREF
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:159,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - xch
    - source_domain
    - source_gref
    - source_handle
    - client_domain
    - client_gref
    - client_handle
    argTypes:
    - xc_interface*
    - uint32_t
    - grant_ref_t
    - uint64_t
    - uint32_t
    - grant_ref_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: xc_memshr_share_grefs
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - XENMEM_SHARING_OP_FIELD_MAKE_GREF
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_share_grefs(xc_interface *xch,\n                          uint32_t
      source_domain,\n                          grant_ref_t source_gref,\n                          uint64_t
      source_handle,\n                          uint32_t client_domain,\n                          grant_ref_t
      client_gref,\n                          uint64_t client_handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:174,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - xch
    - source_domain
    - source_gfn
    - source_handle
    - client_domain
    - client_gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - uint64_t
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: xc_memshr_add_to_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_add_to_physmap(xc_interface *xch,\n                    uint32_t
      source_domain,\n                    unsigned long source_gfn,\n                    uint64_t
      source_handle,\n                    uint32_t client_domain,\n                    unsigned
      long client_gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:194,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - xch
    - source_domain
    - client_domain
    - first_gfn
    - last_gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: xc_memshr_range_share
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_range_share(xc_interface *xch,\n                          uint32_t
      source_domain,\n                          uint32_t client_domain,\n                          uint64_t
      first_gfn,\n                          uint64_t last_gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: xc_memshr_domain_resume
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_domain_resume(xc_interface *xch,\n                            uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:220,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 226
    functionName: xc_memshr_debug_gfn
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_debug_gfn(xc_interface *xch,\n                        uint32_t
      domid,\n                        unsigned long gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:234,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - gref
    argTypes:
    - xc_interface*
    - uint32_t
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: xc_memshr_debug_gref
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_debug_gref(xc_interface *xch,\n                         uint32_t
      domid,\n                         grant_ref_t gref)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:247,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - xch
    - pdomid
    - domid
    - allow_with_iommu
    - block_interrupts
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: xc_memshr_fork
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_fork(xc_interface *xch, uint32_t pdomid, uint32_t domid,\n
      \                  bool allow_with_iommu, bool block_interrupts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:265,1
    - Dst: xc_memshr_memop
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - domid
    - reset_state
    - reset_memory
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: xc_memshr_fork_reset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memshr_memop
    linkageType: ''
    returnType: int
    signature: "int xc_memshr_fork_reset(xc_interface *xch, uint32_t domid, bool reset_state,\n
      \                        bool reset_memory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:279,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: xc_memshr_audit
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: int xc_memshr_audit(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: xc_sharing_freed_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 1
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: long
    signature: long xc_sharing_freed_pages(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_memshr.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: xc_sharing_used_frames
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_memshr.c
    functionUses: 1
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: long
    signature: long xc_sharing_used_frames(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - cpu
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: xc_cpu_online
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_cpu_online(xc_interface *xch, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - cpu
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: xc_cpu_offline
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_cpu_offline(xc_interface *xch, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 60
    functionName: xc_smt_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_smt_enable(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: xc_smt_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_smt_disable(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_open
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: xc_gnttab_open
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_open
    linkageType: ''
    returnType: xc_gnttab
    signature: "xc_gnttab *xc_gnttab_open(xentoollog_logger *logger,\n                          unsigned
      open_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_close
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcg
    argTypes:
    - xc_gnttab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: xc_gnttab_close
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_close
    linkageType: ''
    returnType: int
    signature: int xc_gnttab_close(xc_gnttab *xcg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_map_grant_ref
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xcg
    - domid
    - ref
    - prot
    argTypes:
    - xc_gnttab*
    - uint32_t
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: xc_gnttab_map_grant_ref
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_map_grant_ref
    linkageType: ''
    returnType: void
    signature: "void *xc_gnttab_map_grant_ref(xc_gnttab *xcg,\n                              uint32_t
      domid,\n                              uint32_t ref,\n                              int
      prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_map_grant_refs
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcg
    - count
    - domids
    - refs
    - prot
    argTypes:
    - xc_gnttab*
    - uint32_t
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: xc_gnttab_map_grant_refs
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_map_grant_refs
    linkageType: ''
    returnType: void
    signature: "void *xc_gnttab_map_grant_refs(xc_gnttab *xcg,\n                               uint32_t
      count,\n                               uint32_t *domids,\n                               uint32_t
      *refs,\n                               int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_map_domain_grant_refs
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcg
    - count
    - domid
    - refs
    - prot
    argTypes:
    - xc_gnttab*
    - uint32_t
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: xc_gnttab_map_domain_grant_refs
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_map_domain_grant_refs
    linkageType: ''
    returnType: void
    signature: "void *xc_gnttab_map_domain_grant_refs(xc_gnttab *xcg,\n                                      uint32_t
      count,\n                                      uint32_t domid,\n                                      uint32_t
      *refs,\n                                      int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_map_grant_ref_notify
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xcg
    - domid
    - ref
    - prot
    - notify_offset
    - notify_port
    argTypes:
    - xc_gnttab*
    - uint32_t
    - uint32_t
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: xc_gnttab_map_grant_ref_notify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_map_grant_ref_notify
    linkageType: ''
    returnType: void
    signature: "void *xc_gnttab_map_grant_ref_notify(xc_gnttab *xcg,\n                                     uint32_t
      domid,\n                                     uint32_t ref,\n                                     int
      prot,\n                                     uint32_t notify_offset,\n                                     evtchn_port_t
      notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xcg
    - start_address
    - count
    argTypes:
    - xc_gnttab*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: xc_gnttab_munmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_unmap
    linkageType: ''
    returnType: int
    signature: "int xc_gnttab_munmap(xc_gnttab *xcg,\n                     void *start_address,\n
      \                    uint32_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_set_max_grants
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xcg
    - count
    argTypes:
    - xc_gnttab*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: xc_gnttab_set_max_grants
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengnttab_set_max_grants
    linkageType: ''
    returnType: int
    signature: "int xc_gnttab_set_max_grants(xc_gnttab *xcg,\n                             uint32_t
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_open
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: xc_gntshr_open
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengntshr_open
    linkageType: ''
    returnType: xc_gntshr
    signature: "xc_gntshr *xc_gntshr_open(xentoollog_logger *logger,\n                          unsigned
      open_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_close
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xcg
    argTypes:
    - xc_gntshr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: xc_gntshr_close
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengntshr_close
    linkageType: ''
    returnType: int
    signature: int xc_gntshr_close(xc_gntshr *xcg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_share_pages
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xcg
    - domid
    - count
    - refs
    - writable
    argTypes:
    - xc_gntshr*
    - uint32_t
    - int
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: xc_gntshr_share_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengntshr_share_pages
    linkageType: ''
    returnType: void
    signature: "void *xc_gntshr_share_pages(xc_gntshr *xcg, uint32_t domid,\n                            int
      count, uint32_t *refs, int writable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_share_page_notify
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xcg
    - domid
    - ref
    - writable
    - notify_offset
    - notify_port
    argTypes:
    - xc_gntshr*
    - uint32_t
    - uint32_t*
    - int
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: xc_gntshr_share_page_notify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengntshr_share_page_notify
    linkageType: ''
    returnType: void
    signature: "void *xc_gntshr_share_page_notify(xc_gntshr *xcg, uint32_t domid,\n
      \                                 uint32_t *ref, int writable,\n                                  uint32_t
      notify_offset,\n                                  evtchn_port_t notify_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_unshare
      Src: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xcg
    - start_address
    - count
    argTypes:
    - xc_gntshr*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: xc_gntshr_munmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
    functionUses: 0
    functionsReached:
    - xengntshr_unshare
    linkageType: ''
    returnType: int
    signature: int xc_gntshr_munmap(xc_gntshr *xcg, void *start_address, uint32_t
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - xch
    - domain_id
    - op
    - mode
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: xc_vm_event_control
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vm_event.c
    functionUses: 3
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vm_event_control(xc_interface *xch, uint32_t domain_id, unsigned
      int op,\n                        unsigned int mode, uint32_t *port)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_pause
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:58,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:61,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:66,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:69,1
    - Dst: xc_get_pfn_type_batch
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:75,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:79,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:83,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:89,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:93,1
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:124,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:127,1
    - Dst: xc_domain_decrease_reservation_exact
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:132,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:134,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:139,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:146,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:150,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 4
    argNames:
    - xch
    - domain_id
    - param
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 157
    functionName: xc_vm_event_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vm_event.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - xc_vm_event_control
    - PERROR
    - xc_domain_decrease_reservation_exact
    - xc_get_pfn_type_batch
    - xc_domain_populate_physmap_exact
    - xenforeignmemory_unmap
    - xc_map_foreign_pages
    - xc_domain_pause
    - xc_domain_unpause
    linkageType: ''
    returnType: void
    signature: "void *xc_vm_event_enable(xc_interface *xch, uint32_t domain_id, int
      param,\n                         uint32_t *port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vm_event.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 173
    functionName: xc_vm_event_get_version
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vm_event.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_vm_event_get_version(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/xen/tools/libs/ctrl/xc_minios.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - xch
    - fd
    - flush
    argTypes:
    - xc_interface*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: discard_file_cache
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_minios.c
    functionUses: 2
    functionsReached:
    - fsync
    linkageType: ''
    returnType: void
    signature: void discard_file_cache(xc_interface *xch, int fd, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memalign
      Src: /src/xen/tools/libs/ctrl/xc_minios.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - alignment
    - size
    argTypes:
    - xc_interface*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: xc_memalign
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_minios.c
    functionUses: 0
    functionsReached:
    - memalign
    linkageType: ''
    returnType: void
    signature: void *xc_memalign(xc_interface *xch, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: xc_pcidev_get_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_minios.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_pcidev_get_gsi(xc_interface *xch, uint32_t sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - sysctl
    argTypes:
    - xc_interface*
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: do_sysctl_save
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int do_sysctl_save(xc_interface *xch, struct xen_sysctl *sysctl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - ppoolid
    - sched_id
    argTypes:
    - xc_interface*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: xc_cpupool_create
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 1
    functionsReached:
    - do_sysctl_save
    linkageType: ''
    returnType: int
    signature: "int xc_cpupool_create(xc_interface *xch,\n                      uint32_t
      *ppoolid,\n                      uint32_t sched_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - poolid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: xc_cpupool_destroy
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 1
    functionsReached:
    - do_sysctl_save
    linkageType: ''
    returnType: int
    signature: "int xc_cpupool_destroy(xc_interface *xch,\n                       uint32_t
      poolid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:76,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:79,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:83,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:85,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:92,1
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:95,1
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:100,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:104,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:106,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:113,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - xch
    - poolid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 119
    functionName: xc_cpupool_getinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 3
    functionsReached:
    - xc_get_cpumap_size
    - PERROR
    - calloc
    - free
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - do_sysctl_save
    - memcpy
    - xc_cpumap_alloc
    linkageType: ''
    returnType: xc_cpupoolinfo_t
    signature: "xc_cpupoolinfo_t *xc_cpupool_getinfo(xc_interface *xch, \n                       uint32_t
      poolid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:124,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - info
    argTypes:
    - xc_interface*
    - xc_cpupoolinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: xc_cpupool_infofree
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void xc_cpupool_infofree(xc_interface *xch,\n                         xc_cpupoolinfo_t
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - poolid
    - cpu
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: xc_cpupool_addcpu
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 2
    functionsReached:
    - do_sysctl_save
    linkageType: ''
    returnType: int
    signature: "int xc_cpupool_addcpu(xc_interface *xch,\n                      uint32_t
      poolid,\n                      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - poolid
    - cpu
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: xc_cpupool_removecpu
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 2
    functionsReached:
    - do_sysctl_save
    linkageType: ''
    returnType: int
    signature: "int xc_cpupool_removecpu(xc_interface *xch,\n                         uint32_t
      poolid,\n                         int cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - poolid
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: xc_cpupool_movedomain
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 1
    functionsReached:
    - do_sysctl_save
    linkageType: ''
    returnType: int
    signature: "int xc_cpupool_movedomain(xc_interface *xch,\n                          uint32_t
      poolid,\n                          uint32_t domid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:190,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:194,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:196,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:202,1
    - Dst: do_sysctl_save
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:205,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:210,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:214,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_cpupool.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 219
    functionName: xc_cpupool_freeinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_cpupool.c
    functionUses: 1
    functionsReached:
    - xc_get_cpumap_size
    - PERROR
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - do_sysctl_save
    - memcpy
    - xc_cpumap_alloc
    linkageType: ''
    returnType: xc_cpumap_t
    signature: xc_cpumap_t xc_cpupool_freeinfo(xc_interface *xch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:29,1
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:33,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:41,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:43,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:47,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:50,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - xch
    - domain_id
    - op
    - gfn
    - buffer
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 56
    functionName: xc_mem_paging_memop
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - memset
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_mem_paging_memop(xc_interface *xch, uint32_t domain_id,\n                               unsigned
      int op, uint64_t gfn, void *buffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: xc_mem_paging_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: "int xc_mem_paging_enable(xc_interface *xch, uint32_t domain_id,\n
      \                        uint32_t *port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domain_id
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: xc_mem_paging_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: int xc_mem_paging_disable(xc_interface *xch, uint32_t domain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domain_id
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: xc_mem_paging_resume
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: int xc_mem_paging_resume(xc_interface *xch, uint32_t domain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_mem_paging_memop
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domain_id
    - gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: xc_mem_paging_nominate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_mem_paging_memop
    linkageType: ''
    returnType: int
    signature: int xc_mem_paging_nominate(xc_interface *xch, uint32_t domain_id, uint64_t
      gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_mem_paging_memop
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domain_id
    - gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: xc_mem_paging_evict
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_mem_paging_memop
    linkageType: ''
    returnType: int
    signature: int xc_mem_paging_evict(xc_interface *xch, uint32_t domain_id, uint64_t
      gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_mem_paging_memop
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domain_id
    - gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: xc_mem_paging_prep
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_mem_paging_memop
    linkageType: ''
    returnType: int
    signature: int xc_mem_paging_prep(xc_interface *xch, uint32_t domain_id, uint64_t
      gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_mem_paging_memop
      Src: /src/xen/tools/libs/ctrl/xc_mem_paging.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - xch
    - domain_id
    - gfn
    - buffer
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: xc_mem_paging_load
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_paging.c
    functionUses: 0
    functionsReached:
    - xc_mem_paging_memop
    linkageType: ''
    returnType: int
    signature: "int xc_mem_paging_load(xc_interface *xch, uint32_t domain_id,\n                       uint64_t
      gfn, void *buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - xch
    - domid
    - bus
    - dev
    - func
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: xc_physdev_pci_access_modify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_physdev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_physdev_pci_access_modify(xc_interface *xch,\n                                 uint32_t
      domid,\n                                 int bus,\n                                 int
      dev,\n                                 int func,\n                                 int
      enable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:49,1
    - Dst: do_physdev_op
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - xch
    - domid
    - index
    - pirq
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: xc_physdev_map_pirq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_physdev.c
    functionUses: 2
    functionsReached:
    - memset
    - do_physdev_op
    linkageType: ''
    returnType: int
    signature: "int xc_physdev_map_pirq(xc_interface *xch,\n                        uint32_t
      domid,\n                        int index,\n                        int *pirq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:80,1
    - Dst: do_physdev_op
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 8
    argNames:
    - xch
    - domid
    - index
    - pirq
    - devfn
    - segbus
    - entry_nr
    - table_base
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - int*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: xc_physdev_map_pirq_msi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_physdev.c
    functionUses: 0
    functionsReached:
    - memset
    - do_physdev_op
    linkageType: ''
    returnType: int
    signature: "int xc_physdev_map_pirq_msi(xc_interface *xch,\n                            uint32_t
      domid,\n                            int index,\n                            int
      *pirq,\n                            int devfn,\n                            int
      segbus,\n                            int entry_nr,\n                            uint64_t
      table_base)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_physdev_op
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - xch
    - domid
    - gsi
    - pirq
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: xc_physdev_map_pirq_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_physdev.c
    functionUses: 2
    functionsReached:
    - do_physdev_op
    linkageType: ''
    returnType: int
    signature: "int xc_physdev_map_pirq_gsi(xc_interface *xch,\n                            uint32_t
      domid,\n                            int gsi,\n                            int
      *pirq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:132,1
    - Dst: do_physdev_op
      Src: /src/xen/tools/libs/ctrl/xc_physdev.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - pirq
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: xc_physdev_unmap_pirq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_physdev.c
    functionUses: 2
    functionsReached:
    - memset
    - do_physdev_op
    linkageType: ''
    returnType: int
    signature: "int xc_physdev_unmap_pirq(xc_interface *xch,\n                          uint32_t
      domid,\n                          int pirq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:24,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:26,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:28,1
    - Dst: xencall3
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:32,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:33,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - xch
    - cmd
    - op
    - op_size
    - count
    argTypes:
    - xc_interface*
    - int
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: xc_gnttab_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xencall3
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_gnttab_op(xc_interface *xch, int cmd, void * op, int op_size,
      int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_gnttab_op
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:45,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - query
    argTypes:
    - xc_interface*
    - struct gnttab_query_size*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: xc_gnttab_query_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 0
    functionsReached:
    - xc_gnttab_op
    - ERROR
    linkageType: ''
    returnType: int
    signature: int xc_gnttab_query_size(xc_interface *xch, struct gnttab_query_size
      *query)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_gnttab_op
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: xc_gnttab_get_version
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 0
    functionsReached:
    - xc_gnttab_op
    linkageType: ''
    returnType: int
    signature: int xc_gnttab_get_version(xc_interface *xch, uint32_t domid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_gnttab_op
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:80,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:84,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:90,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:93,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:97,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:100,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:106,1
    - Dst: xc_gnttab_op
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:109,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:114,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:121,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:125,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:131,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:132,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - xch
    - domid
    - gnt_num
    argTypes:
    - xc_interface*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 135
    functionName: _gnttab_map_table
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 0
    functionsReached:
    - free
    - ERROR
    - malloc
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - xc_gnttab_op
    - xc_map_foreign_pages
    linkageType: ''
    returnType: void
    signature: void *_gnttab_map_table(xc_interface *xch, uint32_t domid, int *gnt_num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_gnttab_get_version
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:140,1
    - Dst: _gnttab_map_table
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - domid
    - gnt_num
    argTypes:
    - xc_interface*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: xc_gnttab_map_table_v1
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 1
    functionsReached:
    - xc_gnttab_get_version
    - _gnttab_map_table
    linkageType: ''
    returnType: grant_entry_v1_t
    signature: "grant_entry_v1_t *xc_gnttab_map_table_v1(xc_interface *xch, uint32_t
      domid,\n                                         int *gnt_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_gnttab_get_version
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:148,1
    - Dst: _gnttab_map_table
      Src: /src/xen/tools/libs/ctrl/xc_gnttab.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - domid
    - gnt_num
    argTypes:
    - xc_interface*
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: xc_gnttab_map_table_v2
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_gnttab.c
    functionUses: 1
    functionsReached:
    - xc_gnttab_get_version
    - _gnttab_map_table
    linkageType: ''
    returnType: grant_entry_v2_t
    signature: "grant_entry_v2_t *xc_gnttab_map_table_v2(xc_interface *xch, uint32_t
      domid,\n                                         int *gnt_num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - pdomid
    - config
    argTypes:
    - xc_interface*
    - uint32_t*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: xc_domain_create
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 6
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_create(xc_interface *xch, uint32_t *pdomid,\n                     struct
      xen_domctl_createdomain *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domid
    - start_pfn
    - nr_pfns
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: xc_domain_cacheflush
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 3
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_cacheflush(xc_interface *xch, uint32_t domid,\n                         xen_pfn_t
      start_pfn, xen_pfn_t nr_pfns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: xc_domain_pause
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_pause(xc_interface *xch,\n                    uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: xc_domain_unpause
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_unpause(xc_interface *xch,\n                      uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: xc_domain_destroy
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 8
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_destroy(xc_interface *xch,\n                      uint32_t
      domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:100,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:102,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:105,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:111,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:113,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - xch
    - domid
    - reason
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: xc_domain_shutdown
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_domain_shutdown(xc_interface *xch,\n                       uint32_t
      domid,\n                       int reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_nodemap_size
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:131,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:134,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:138,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:141,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:148,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:149,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:152,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - xch
    - domid
    - nodemap
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_nodemap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 158
    functionName: xc_domain_node_setaffinity
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - PERROR
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    - xc_get_nodemap_size
    linkageType: ''
    returnType: int
    signature: "int xc_domain_node_setaffinity(xc_interface *xch,\n                               uint32_t
      domid,\n                               xc_nodemap_t nodemap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_nodemap_size
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:169,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:172,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:176,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:179,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:186,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:189,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:191,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - xch
    - domid
    - nodemap
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_nodemap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 197
    functionName: xc_domain_node_getaffinity
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - PERROR
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    - xc_get_nodemap_size
    linkageType: ''
    returnType: int
    signature: "int xc_domain_node_getaffinity(xc_interface *xch,\n                               uint32_t
      domid,\n                               xc_nodemap_t nodemap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:207,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:209,1
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:214,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:217,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:221,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:222,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:224,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:225,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:227,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:236,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:239,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:243,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:246,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - xch
    - domid
    - vcpu
    - cpumap_hard_inout
    - cpumap_soft_inout
    - flags
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - xc_cpumap_t
    - xc_cpumap_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 250
    functionName: xc_vcpu_setaffinity
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_get_cpumap_size
    - PERROR
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - HYPERCALL_BOUNCE_SET_SIZE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_setaffinity(xc_interface *xch,\n                        uint32_t
      domid,\n                        int vcpu,\n                        xc_cpumap_t
      cpumap_hard_inout,\n                        xc_cpumap_t cpumap_soft_inout,\n
      \                       uint32_t flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:261,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:262,1
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:266,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:269,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:273,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:274,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:276,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:277,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:279,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:288,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:291,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:295,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:298,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - xch
    - domid
    - vcpu
    - cpumap_hard
    - cpumap_soft
    - flags
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - xc_cpumap_t
    - xc_cpumap_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 302
    functionName: xc_vcpu_getaffinity
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_get_cpumap_size
    - PERROR
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - HYPERCALL_BOUNCE_SET_SIZE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_getaffinity(xc_interface *xch,\n                        uint32_t
      domid,\n                        int vcpu,\n                        xc_cpumap_t
      cpumap_hard,\n                        xc_cpumap_t cpumap_soft,\n                        uint32_t
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:309,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - domid
    - guest_width
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 319
    functionName: xc_domain_get_guest_width
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 6
    functionsReached:
    - memset
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_get_guest_width(xc_interface *xch, uint32_t domid,\n
      \                             unsigned int *guest_width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:331,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - xch
    - type
    - domid
    - console_domid
    - gfn
    - evtchn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - xen_pfn_t
    - evtchn_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 346
    functionName: xc_dom_vuart_init
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - memset
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_dom_vuart_init(xc_interface *xch,\n                      uint32_t
      type,\n                      uint32_t domid,\n                      uint32_t
      console_domid,\n                      xen_pfn_t gfn,\n                      evtchn_port_t
      *evtchn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - info
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: xc_domain_getinfo_single
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 28
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_getinfo_single(xc_interface *xch,\n                             uint32_t
      domid,\n                             xc_domaininfo_t *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:373,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:375,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:381,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:383,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - first_domain
    - max_domains
    - info
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 391
    functionName: xc_domain_getinfolist
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 6
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_sysctl
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_getinfolist(xc_interface *xch,\n                          uint32_t
      first_domain,\n                          unsigned int max_domains,\n                          xc_domaininfo_t
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - pfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: xc_set_broken_page_p2m
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_set_broken_page_p2m(xc_interface *xch,\n                           uint32_t
      domid,\n                           unsigned long pfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:417,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:419,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:425,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:427,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - domid
    - ctxt_buf
    - size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 432
    functionName: xc_domain_hvm_getcontext
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_hvm_getcontext(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint8_t *ctxt_buf,\n                             uint32_t
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:445,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:447,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:455,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:457,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - xch
    - domid
    - typecode
    - instance
    - ctxt_buf
    - size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint16_t
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 462
    functionName: xc_domain_hvm_getcontext_partial
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_hvm_getcontext_partial(xc_interface *xch,\n                                     uint32_t
      domid,\n                                     uint16_t typecode,\n                                     uint16_t
      instance,\n                                     void *ctxt_buf,\n                                     uint32_t
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:472,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:474,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:480,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:482,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - domid
    - ctxt_buf
    - size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 487
    functionName: xc_domain_hvm_setcontext
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_hvm_setcontext(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint8_t *ctxt_buf,\n                             uint32_t
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:496,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:498,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:504,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:506,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpu
    - ctxt
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 511
    functionName: xc_vcpu_getcontext
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 5
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_getcontext(xc_interface *xch,\n                       uint32_t
      domid,\n                       uint32_t vcpu,\n                       vcpu_guest_context_any_t
      *ctxt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:537,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:541,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:547,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:550,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:564,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpu
    - extstate
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - xc_vcpu_extstate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 572
    functionName: xc_vcpu_get_extstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - PERROR
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_get_extstate(xc_interface *xch,\n                         uint32_t
      domid,\n                         uint32_t vcpu,\n                         xc_vcpu_extstate_t
      *extstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:579,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:581,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:584,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:591,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:593,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - xch
    - id
    - timeout
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 599
    functionName: xc_watchdog
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_watchdog(xc_interface *xch,\n                uint32_t id,\n
      \               uint32_t timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:611,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - xch
    - domid
    - sop
    - mb
    - mode
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 625
    functionName: xc_shadow_control
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 6
    functionsReached:
    - memset
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_shadow_control(xc_interface *xch,\n                      uint32_t
      domid,\n                      unsigned int sop,\n                      unsigned
      int *mb,\n                      unsigned int mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:645,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:648,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:651,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - xch
    - domid
    - sop
    - dirty_bitmap
    - pages
    - mode
    - stats
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - xc_hypercall_buffer_t*
    - unsigned long
    - unsigned int
    - xc_shadow_op_stats_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 658
    functionName: xc_logdirty_control
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - do_domctl
    - memcpy
    - set_xen_guest_handle
    linkageType: ''
    returnType: long long
    signature: "long long xc_logdirty_control(xc_interface *xch,\n                              uint32_t
      domid,\n                              unsigned int sop,\n                              xc_hypercall_buffer_t
      *dirty_bitmap,\n                              unsigned long pages,\n                              unsigned
      int mode,\n                              xc_shadow_op_stats_t *stats)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 674
    functionName: xc_get_paging_mempool_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_get_paging_mempool_size(xc_interface *xch, uint32_t domid, uint64_t
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 687
    functionName: xc_set_paging_mempool_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_set_paging_mempool_size(xc_interface *xch, uint32_t domid, uint64_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - max_memkb
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 698
    functionName: xc_domain_setmaxmem
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 7
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_setmaxmem(xc_interface *xch,\n                        uint32_t
      domid,\n                        uint64_t max_memkb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:711,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:714,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:717,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:719,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - xch
    - domid
    - entries
    - nr_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - struct e820entry[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 724
    functionName: xc_domain_set_memory_map
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_memory_map(xc_interface *xch,\n                               uint32_t
      domid,\n                               struct e820entry entries[],\n                               uint32_t
      nr_entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:734,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:737,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:741,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:743,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - entries
    - max_entries
    argTypes:
    - xc_interface*
    - struct e820entry[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 748
    functionName: xc_get_machine_memory_map
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_get_machine_memory_map(xc_interface *xch,\n                              struct
      e820entry entries[],\n                              uint32_t max_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_set_memory_map
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - map_limitkb
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: xc_domain_set_memmap_limit
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_domain_set_memory_map
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_memmap_limit(xc_interface *xch,\n                               uint32_t
      domid,\n                               unsigned long map_limitkb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - domid
    - map_limitkb
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 769
    functionName: xc_domain_set_memmap_limit
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - PERROR
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_memmap_limit(xc_interface *xch,\n                               uint32_t
      domid,\n                               unsigned long map_limitkb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:788,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:792,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:795,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:797,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 7
    argNames:
    - xch
    - flags
    - seg
    - bus
    - devfn
    - entries
    - max_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint8_t
    - uint8_t
    - struct xen_reserved_device_memory[]
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 805
    functionName: xc_reserved_device_memory_map
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_reserved_device_memory_map(xc_interface *xch,\n                                  uint32_t
      flags,\n                                  uint16_t seg,\n                                  uint8_t
      bus,\n                                  uint8_t devfn,\n                                  struct
      xen_reserved_device_memory entries[],\n                                  uint32_t
      *max_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - time_offset_seconds
    argTypes:
    - xc_interface*
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 816
    functionName: xc_domain_set_time_offset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_time_offset(xc_interface *xch,\n                              uint32_t
      domid,\n                              int32_t time_offset_seconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - xch
    - domid
    - tsc_mode
    - elapsed_nsec
    - gtsc_khz
    - incarnation
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 833
    functionName: xc_domain_set_tsc_info
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_tsc_info(xc_interface *xch,\n                           uint32_t
      domid,\n                           uint32_t tsc_mode,\n                           uint64_t
      elapsed_nsec,\n                           uint32_t gtsc_khz,\n                           uint32_t
      incarnation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - xch
    - domid
    - tsc_mode
    - elapsed_nsec
    - gtsc_khz
    - incarnation
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - uint64_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 856
    functionName: xc_domain_get_tsc_info
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_get_tsc_info(xc_interface *xch,\n                           uint32_t
      domid,\n                           uint32_t *tsc_mode,\n                           uint64_t
      *elapsed_nsec,\n                           uint32_t *gtsc_khz,\n                           uint32_t
      *incarnation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domid
    - gpfns
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 870
    functionName: xc_domain_maximum_gpfn
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: int xc_domain_maximum_gpfn(xc_interface *xch, uint32_t domid, xen_pfn_t
      *gpfns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_maximum_gpfn
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - domid
    - gpfns
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 880
    functionName: xc_domain_nr_gpfns
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 6
    functionsReached:
    - xc_domain_maximum_gpfn
    linkageType: ''
    returnType: int
    signature: int xc_domain_nr_gpfns(xc_interface *xch, uint32_t domid, xen_pfn_t
      *gpfns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:890,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:899,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:901,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:905,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:907,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - mem_flags
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 912
    functionName: xc_domain_increase_reservation
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_increase_reservation(xc_interface *xch,\n                                   uint32_t
      domid,\n                                   unsigned long nr_extents,\n                                   unsigned
      int extent_order,\n                                   unsigned int mem_flags,\n
      \                                  xen_pfn_t *extent_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_increase_reservation
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:923,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - mem_flags
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 939
    functionName: xc_domain_increase_reservation_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - DPRINTF
    - xc_domain_increase_reservation
    linkageType: ''
    returnType: int
    signature: "int xc_domain_increase_reservation_exact(xc_interface *xch,\n                                         uint32_t
      domid,\n                                         unsigned long nr_extents,\n
      \                                        unsigned int extent_order,\n                                         unsigned
      int mem_flags,\n                                         xen_pfn_t *extent_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:948,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:958,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:963,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:965,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:968,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:970,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 975
    functionName: xc_domain_decrease_reservation
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - DPRINTF
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_decrease_reservation(xc_interface *xch,\n                                   uint32_t
      domid,\n                                   unsigned long nr_extents,\n                                   unsigned
      int extent_order,\n                                   xen_pfn_t *extent_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_decrease_reservation
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:985,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1000
    functionName: xc_domain_decrease_reservation_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_domain_decrease_reservation
    - DPRINTF
    linkageType: ''
    returnType: int
    signature: "int xc_domain_decrease_reservation_exact(xc_interface *xch,\n                                         uint32_t
      domid,\n                                         unsigned long nr_extents,\n
      \                                        unsigned int extent_order,\n                                         xen_pfn_t
      *extent_start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - space
    - idx
    - gpfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - unsigned long
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1015
    functionName: xc_domain_add_to_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_domain_add_to_physmap(xc_interface *xch,\n                             uint32_t
      domid,\n                             unsigned int space,\n                             unsigned
      long idx,\n                             xen_pfn_t gpfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1027,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1028,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1029,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1038,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1039,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1040,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1042,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1047,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1048,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1049,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1051,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1055,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1056,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 8
    argNames:
    - xch
    - domid
    - foreign_domid
    - space
    - size
    - idxs
    - gpfns
    - errs
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - unsigned int
    - unsigned int
    - xen_ulong_t*
    - xen_pfn_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1060
    functionName: xc_domain_add_to_physmap_batch
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_add_to_physmap_batch(xc_interface *xch,\n                                   uint32_t
      domid,\n                                   uint32_t foreign_domid,\n                                   unsigned
      int space,\n                                   unsigned int size,\n                                   xen_ulong_t
      *idxs,\n                                   xen_pfn_t *gpfns,\n                                   int
      *errs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - gpfn
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1071
    functionName: xc_domain_remove_from_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_domain_remove_from_physmap(xc_interface *xch,\n                                  uint32_t
      domid,\n                                  xen_pfn_t gpfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - nr_pages
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1085
    functionName: xc_domain_claim_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 3
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_domain_claim_pages(xc_interface *xch,\n                               uint32_t
      domid,\n                               unsigned long nr_pages)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1095,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1103,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1105,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1108,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1110,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - mem_flags
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1114
    functionName: xc_domain_populate_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_populate_physmap(xc_interface *xch,\n                               uint32_t
      domid,\n                               unsigned long nr_extents,\n                               unsigned
      int extent_order,\n                               unsigned int mem_flags,\n
      \                              xen_pfn_t *extent_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_populate_physmap
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1125,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - xch
    - domid
    - nr_extents
    - extent_order
    - mem_flags
    - extent_start
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1139
    functionName: xc_domain_populate_physmap_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 10
    functionsReached:
    - xc_domain_populate_physmap
    - DPRINTF
    linkageType: ''
    returnType: int
    signature: "int xc_domain_populate_physmap_exact(xc_interface *xch,\n                                     uint32_t
      domid,\n                                     unsigned long nr_extents,\n                                     unsigned
      int extent_order,\n                                     unsigned int mem_flags,\n
      \                                    xen_pfn_t *extent_start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1151,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1152,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1166,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1167,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1170,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1171,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1173,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1176,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 8
    argNames:
    - xch
    - domid
    - nr_in_extents
    - in_order
    - in_extents
    - nr_out_extents
    - out_order
    - out_extents
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned int
    - xen_pfn_t*
    - unsigned long
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1180
    functionName: xc_domain_memory_exchange_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_memory_exchange_pages(xc_interface *xch,\n                                    uint32_t
      domid,\n                                    unsigned long nr_in_extents,\n                                    unsigned
      int in_order,\n                                    xen_pfn_t *in_extents,\n
      \                                   unsigned long nr_out_extents,\n                                    unsigned
      int out_order,\n                                    xen_pfn_t *out_extents)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1203,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - xch
    - op
    - domid
    - target_pages
    - tot_pages
    - pod_cache_pages
    - pod_entries
    argTypes:
    - xc_interface*
    - int
    - uint32_t
    - uint64_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1220
    functionName: xc_domain_pod_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - DPRINTF
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_domain_pod_target(xc_interface *xch,\n                                int
      op,\n                                uint32_t domid,\n                                uint64_t
      target_pages,\n                                uint64_t *tot_pages,\n                                uint64_t
      *pod_cache_pages,\n                                uint64_t *pod_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_pod_target
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - target_pages
    - tot_pages
    - pod_cache_pages
    - pod_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1223
    functionDepth: 2
    functionLinenumber: 1223
    functionLinenumberEnd: 1237
    functionName: xc_domain_set_pod_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_domain_pod_target
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_pod_target(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint64_t target_pages,\n                             uint64_t
      *tot_pages,\n                             uint64_t *pod_cache_pages,\n                             uint64_t
      *pod_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_pod_target
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - tot_pages
    - pod_cache_pages
    - pod_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1239
    functionDepth: 2
    functionLinenumber: 1239
    functionLinenumberEnd: 1252
    functionName: xc_domain_get_pod_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_pod_target
    linkageType: ''
    returnType: int
    signature: "int xc_domain_get_pod_target(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint64_t *tot_pages,\n                             uint64_t
      *pod_cache_pages,\n                             uint64_t *pod_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - target_pages
    - tot_pages
    - pod_cache_pages
    - pod_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1262
    functionName: xc_domain_set_pod_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_pod_target(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint64_t target_pages,\n                             uint64_t
      *tot_pages,\n                             uint64_t *pod_cache_pages,\n                             uint64_t
      *pod_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - xch
    - domid
    - tot_pages
    - pod_cache_pages
    - pod_entries
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1271
    functionName: xc_domain_get_pod_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xc_domain_get_pod_target(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint64_t *tot_pages,\n                             uint64_t
      *pod_cache_pages,\n                             uint64_t *pod_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - max
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1281
    functionName: xc_domain_max_vcpus
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_domain_max_vcpus(xc_interface *xch, uint32_t domid, unsigned
      int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1289,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - handle
    argTypes:
    - xc_interface*
    - uint32_t
    - xen_domain_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1292
    functionName: xc_domain_sethandle
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_domain_sethandle(xc_interface *xch, uint32_t domid,\n                        xen_domain_handle_t
      handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1306,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpu
    - info
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - xc_vcpuinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1311
    functionName: xc_vcpu_getinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - do_domctl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_getinfo(xc_interface *xch,\n                    uint32_t
      domid,\n                    uint32_t vcpu,\n                    xc_vcpuinfo_t
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - xch
    - domid
    - first_port
    - nr_ports
    - allow_access
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1328
    functionName: xc_domain_ioport_permission
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_ioport_permission(xc_interface *xch,\n                                uint32_t
      domid,\n                                uint32_t first_port,\n                                uint32_t
      nr_ports,\n                                uint32_t allow_access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - xch
    - min_width
    - max_width
    - node
    - bytes
    argTypes:
    - xc_interface*
    - int
    - int
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1349
    functionName: xc_availheap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_availheap(xc_interface *xch,\n                 int min_width,\n
      \                int max_width,\n                 int node,\n                 uint64_t
      *bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1357,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1360,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1366,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1368,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpu
    - ctxt
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1373
    functionName: xc_vcpu_setcontext
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 7
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_vcpu_setcontext(xc_interface *xch,\n                       uint32_t
      domid,\n                       uint32_t vcpu,\n                       vcpu_guest_context_any_t
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - xch
    - domid
    - pirq
    - allow_access
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1388
    functionName: xc_domain_irq_permission
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 4
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_irq_permission(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint32_t pirq,\n                             bool
      allow_access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - gsi
    - flags
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1403
    functionName: xc_domain_gsi_permission
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_gsi_permission(xc_interface *xch,\n                             uint32_t
      domid,\n                             uint32_t gsi,\n                             uint32_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - xch
    - domid
    - first_mfn
    - nr_mfns
    - allow_access
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned long
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1420
    functionName: xc_domain_iomem_permission
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 5
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_iomem_permission(xc_interface *xch,\n                               uint32_t
      domid,\n                               unsigned long first_mfn,\n                               unsigned
      long nr_mfns,\n                               uint8_t allow_access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - xch
    - domid
    - trigger
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1435
    functionName: xc_domain_send_trigger
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_send_trigger(xc_interface *xch,\n                           uint32_t
      domid,\n                           uint32_t trigger,\n                           uint32_t
      vcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1439,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1442,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1449,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1451,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - dom
    - param
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1454
    functionName: xc_hvm_param_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 9
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_hvm_param_set(xc_interface *handle, uint32_t dom, uint32_t param,
      uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1458,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1461,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1467,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1469,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - dom
    - param
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1473
    functionName: xc_hvm_param_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 7
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_hvm_param_get(xc_interface *handle, uint32_t dom, uint32_t param,
      uint64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - dom
    - param
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1478
    functionName: xc_set_hvm_param
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    linkageType: ''
    returnType: int
    signature: int xc_set_hvm_param(xc_interface *handle, uint32_t dom, int param,
      unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - handle
    - dom
    - param
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1490
    functionName: xc_get_hvm_param
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    linkageType: ''
    returnType: int
    signature: int xc_get_hvm_param(xc_interface *handle, uint32_t dom, int param,
      unsigned long *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1502
    functionName: xc_domain_setdebugging
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_setdebugging(xc_interface *xch,\n                           uint32_t
      domid,\n                           unsigned int enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domid
    - machine_sbdf
    - flags
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1519
    functionName: xc_assign_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 3
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_assign_device(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint32_t machine_sbdf,\n    uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1531,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1534,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1536,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1546,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1548,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - xch
    - domid
    - machine_sbdf
    - max_sdevs
    - num_sdevs
    - sdev_array
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1555
    functionName: xc_get_device_group
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_get_device_group(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint32_t machine_sbdf,\n    uint32_t max_sdevs,\n    uint32_t *num_sdevs,\n
      \   uint32_t *sdev_array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - xch
    - domid
    - machine_sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1571
    functionName: xc_test_assign_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_test_assign_device(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint32_t machine_sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - xch
    - domid
    - machine_sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1587
    functionName: xc_deassign_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 3
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_deassign_device(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint32_t machine_sbdf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1595,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1597,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1599,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1612,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1614,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - domid
    - path
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1619
    functionName: xc_assign_dt_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_assign_dt_device(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1627,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1629,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1631,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1639,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1642,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - domid
    - path
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1647
    functionName: xc_test_assign_dt_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_test_assign_dt_device(\n    xc_interface *xch,\n    uint32_t
      domid,\n    char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1655,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1657,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1659,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1667,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1670,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - domid
    - path
    argTypes:
    - xc_interface*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1675
    functionName: xc_deassign_dt_device
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_deassign_dt_device(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 6
    argNames:
    - xch
    - domid
    - gvec
    - pirq
    - gflags
    - gtable
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1704
    functionName: xc_domain_update_msi_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_update_msi_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint32_t gvec,\n    uint32_t pirq,\n    uint32_t gflags,\n    uint64_t
      gtable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - xch
    - domid
    - gvec
    - pirq
    - gflags
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1728
    functionName: xc_domain_unbind_msi_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_unbind_msi_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint32_t gvec,\n    uint32_t pirq,\n    uint32_t gflags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1771,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 9
    argNames:
    - xch
    - domid
    - machine_irq
    - irq_type
    - bus
    - device
    - intx
    - isa_irq
    - spi
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1773
    functionName: xc_domain_bind_pt_irq_int
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_bind_pt_irq_int(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint32_t machine_irq,\n    uint8_t irq_type,\n    uint8_t bus,\n
      \   uint8_t device,\n    uint8_t intx,\n    uint8_t isa_irq,\n    uint16_t spi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_bind_pt_irq_int
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - xch
    - domid
    - machine_irq
    - irq_type
    - bus
    - device
    - intx
    - isa_irq
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1787
    functionName: xc_domain_bind_pt_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_bind_pt_irq_int
    linkageType: ''
    returnType: int
    signature: "int xc_domain_bind_pt_irq(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint8_t machine_irq,\n    uint8_t irq_type,\n    uint8_t bus,\n    uint8_t
      device,\n    uint8_t intx,\n    uint8_t isa_irq)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 9
    argNames:
    - xch
    - domid
    - machine_irq
    - irq_type
    - bus
    - device
    - intx
    - isa_irq
    - spi
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1831
    functionName: xc_domain_unbind_pt_irq_int
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_unbind_pt_irq_int(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint32_t machine_irq,\n    uint8_t irq_type,\n    uint8_t bus,\n
      \   uint8_t device,\n    uint8_t intx,\n    uint8_t isa_irq,\n    uint8_t spi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_unbind_pt_irq_int
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - xch
    - domid
    - machine_irq
    - irq_type
    - bus
    - device
    - intx
    - isa_irq
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1845
    functionName: xc_domain_unbind_pt_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_unbind_pt_irq_int
    linkageType: ''
    returnType: int
    signature: "int xc_domain_unbind_pt_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint8_t machine_irq,\n    uint8_t irq_type,\n    uint8_t bus,\n
      \   uint8_t device,\n    uint8_t intx,\n    uint8_t isa_irq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_bind_pt_irq
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - xch
    - domid
    - machine_irq
    - bus
    - device
    - intx
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1847
    functionDepth: 2
    functionLinenumber: 1847
    functionLinenumberEnd: 1858
    functionName: xc_domain_bind_pt_pci_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_bind_pt_irq
    linkageType: ''
    returnType: int
    signature: "int xc_domain_bind_pt_pci_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint8_t machine_irq,\n    uint8_t bus,\n    uint8_t device,\n    uint8_t
      intx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_bind_pt_irq
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - machine_irq
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1868
    functionName: xc_domain_bind_pt_isa_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_bind_pt_irq
    linkageType: ''
    returnType: int
    signature: "int xc_domain_bind_pt_isa_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint8_t machine_irq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_bind_pt_irq_int
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - vspi
    - spi
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1878
    functionName: xc_domain_bind_pt_spi_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_domain_bind_pt_irq_int
    linkageType: ''
    returnType: int
    signature: "int xc_domain_bind_pt_spi_irq(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint16_t vspi,\n    uint16_t spi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_unbind_pt_irq_int
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domid
    - vspi
    - spi
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1887
    functionName: xc_domain_unbind_pt_spi_irq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - xc_domain_unbind_pt_irq_int
    linkageType: ''
    returnType: int
    signature: "int xc_domain_unbind_pt_spi_irq(xc_interface *xch,\n                                uint32_t
      domid,\n                                uint16_t vspi,\n                                uint16_t
      spi)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1902,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1904,1
    - Dst: xc_core_arch_auto_translated_physmap
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1907,1
    - Dst: min_t
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1919,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1923,1
    - Dst: xc_domain_memory_mapping
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1951,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 6
    argNames:
    - xch
    - domid
    - first_gfn
    - first_mfn
    - nr_mfns
    - add_mapping
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - unsigned long
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1959
    functionName: xc_domain_memory_mapping
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - PERROR
    - do_domctl
    - min_t
    - xc_core_arch_auto_translated_physmap
    - xc_domain_getinfo_single
    - xc_domain_memory_mapping
    linkageType: ''
    returnType: int
    signature: "int xc_domain_memory_mapping(\n    xc_interface *xch,\n    uint32_t
      domid,\n    unsigned long first_gfn,\n    unsigned long first_mfn,\n    unsigned
      long nr_mfns,\n    uint32_t add_mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - xch
    - domid
    - first_gport
    - first_mport
    - nr_ports
    - add_mapping
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1979
    functionName: xc_domain_ioport_mapping
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_ioport_mapping(\n    xc_interface *xch,\n    uint32_t
      domid,\n    uint32_t first_gport,\n    uint32_t first_mport,\n    uint32_t nr_ports,\n
      \   uint32_t add_mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:1992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - target
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1993
    functionName: xc_domain_set_target
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_target(\n    xc_interface *xch,\n    uint32_t domid,\n
      \   uint32_t target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - dom
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2005
    functionName: xc_domain_subscribe_for_suspend
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_subscribe_for_suspend(\n    xc_interface *xch, uint32_t
      dom, evtchn_port_t port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2011,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - xc
    - domid
    - sop
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2018
    functionName: xc_domain_debug_control
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - memset
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_domain_debug_control(xc_interface *xc, uint32_t domid, uint32_t
      sop, uint32_t vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - xch
    - domid
    - orphans
    - m2p_bad
    - p2m_bad
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2038
    functionName: xc_domain_p2m_audit
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_p2m_audit(xc_interface *xch, \n                        uint32_t
      domid,\n                        uint64_t *orphans,\n                        uint64_t
      *m2p_bad,   \n                        uint64_t *p2m_bad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - required
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2050
    functionName: xc_domain_set_access_required
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_access_required(xc_interface *xch,\n                                  uint32_t
      domid,\n                                  unsigned int required)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - domid
    - virq
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2060
    functionName: xc_domain_set_virq_handler
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_domain_set_virq_handler(xc_interface *xch, uint32_t domid, int
      virq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2075,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2077,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2080,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2082,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2092,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2096,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2097,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2098,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2099,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2106,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2107,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2108,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2109,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2118,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2121,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2122,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2123,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 9
    argNames:
    - xch
    - domid
    - nr_vnodes
    - nr_vmemranges
    - nr_vcpus
    - vmemrange
    - vdistance
    - vcpu_to_vnode
    - vnode_to_pnode
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - xen_vmemrange_t*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2063
    functionDepth: 1
    functionLinenumber: 2063
    functionLinenumberEnd: 2127
    functionName: xc_domain_setvnuma
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_setvnuma(xc_interface *xch,\n                       uint32_t
      domid,\n                       uint32_t nr_vnodes,\n                       uint32_t
      nr_vmemranges,\n                       uint32_t nr_vcpus,\n                       xen_vmemrange_t
      *vmemrange,\n                       unsigned int *vdistance,\n                       unsigned
      int *vcpu_to_vnode,\n                       unsigned int *vnode_to_pnode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2139,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2141,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2144,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2149,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2150,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2151,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2158,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2159,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2160,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2168,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2176,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2177,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 8
    argNames:
    - xch
    - domid
    - nr_vnodes
    - nr_vmemranges
    - nr_vcpus
    - vmemrange
    - vdistance
    - vcpu_to_vnode
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - xen_vmemrange_t*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2181
    functionName: xc_domain_getvnuma
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_domain_getvnuma(xc_interface *xch,\n                       uint32_t
      domid,\n                       uint32_t *nr_vnodes,\n                       uint32_t
      *nr_vmemranges,\n                       uint32_t *nr_vcpus,\n                       xen_vmemrange_t
      *vmemrange,\n                       unsigned int *vdistance,\n                       unsigned
      int *vcpu_to_vnode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2190
    functionName: xc_domain_soft_reset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_domain_soft_reset(xc_interface *xch,\n                         uint32_t
      domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2204,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2207,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2210,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2211,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2218,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_domain.c:2221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - xch
    - domid
    - llc_colors
    - num_llc_colors
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2192
    functionDepth: 1
    functionLinenumber: 2192
    functionLinenumberEnd: 2224
    functionName: xc_domain_set_llc_colors
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_domain.c
    functionUses: 1
    functionsReached:
    - PERROR
    - do_domctl
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_domain_set_llc_colors(xc_interface *xch, uint32_t domid,\n
      \                            const uint32_t *llc_colors,\n                             uint32_t
      num_llc_colors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:17,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:20,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:23,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:29,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:31,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - xch
    - type
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: xc_kexec_exec
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_kexec.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_kexec_exec(xc_interface *xch, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:42,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:45,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:48,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:55,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:57,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - xch
    - range
    - nr
    - size
    - start
    argTypes:
    - xc_interface*
    - int
    - int
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: xc_kexec_get_range
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_kexec.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_kexec_get_range(xc_interface *xch, int range,  int nr,\n                       uint64_t
      *size, uint64_t *start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:73,1
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:75,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:77,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:79,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:82,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:85,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:93,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:95,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:97,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:100,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - xch
    - type
    - arch
    - entry_maddr
    - nr_segments
    - segments
    argTypes:
    - xc_interface*
    - uint8_t
    - uint16_t
    - uint64_t
    - uint32_t
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 104
    functionName: xc_kexec_load
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_kexec.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xc_hypercall_bounce_post
    - PERROR
    - xencall2
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_kexec_load(xc_interface *xch, uint8_t type, uint16_t arch,\n
      \                 uint64_t entry_maddr,\n                  uint32_t nr_segments,
      xen_kexec_segment_t *segments)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:108,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:111,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:114,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:120,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:122,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - xch
    - type
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: xc_kexec_unload
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_kexec.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_kexec_unload(xc_interface *xch, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:132,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:135,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:138,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:144,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:146,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_kexec.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - xch
    - type
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: xc_kexec_status
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_kexec.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - PERROR
    - xencall2
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_kexec_status(xc_interface *xch, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_csched2.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_credit2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: xc_sched_credit2_domain_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched2.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit2_domain_set(\n    xc_interface *xch,\n    uint32_t
      domid,\n    struct xen_domctl_sched_credit2 *sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_csched2.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_credit2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: xc_sched_credit2_domain_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched2.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit2_domain_get(\n    xc_interface *xch,\n    uint32_t
      domid,\n    struct xen_domctl_sched_credit2 *sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_csched2.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_credit2_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: xc_sched_credit2_params_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched2.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit2_params_set(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_credit2_schedule *schedule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_csched2.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_credit2_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: xc_sched_credit2_params_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_csched2.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_credit2_params_get(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_credit2_schedule *schedule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: IPRINTF
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPRINTF(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: DPRINTF
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: DBGPRINTF
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGPRINTF(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _m
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: ERROR
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 167
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(_m, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _m
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: PERROR
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 117
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_m, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _ubuf
    - ','
    - _sz
    - ','
    - _dir
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 164
    functionName: DECLARE_NAMED_HYPERCALL_BOUNCE
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_NAMED_HYPERCALL_BOUNCE(_name, _ubuf, _sz, _dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _ubuf
    - ','
    - _sz
    - ','
    - _dir
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: DECLARE_HYPERCALL_BOUNCE
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HYPERCALL_BOUNCE(_ubuf, _sz, _dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ubuf
    - ','
    - _sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: DECLARE_HYPERCALL_BOUNCE_IN
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HYPERCALL_BOUNCE_IN(_ubuf, _sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _buf
    - ','
    - _sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: HYPERCALL_BOUNCE_SET_SIZE
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_BOUNCE_SET_SIZE(_buf, _sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _buf
    - ','
    - _dir
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: HYPERCALL_BOUNCE_SET_DIR
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_BOUNCE_SET_DIR(_buf, _dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _xch
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: xc_hypercall_bounce_pre
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_bounce_pre(_xch, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _xch
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: xc_hypercall_bounce_post
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_bounce_post(_xch, _name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.h:216,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.h:218,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.h:220,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_private.h:224,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.h:225,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.h:229,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.h:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - xch
    - cmd
    - op
    - len
    argTypes:
    - xc_interface*
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: do_physdev_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 4
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xencall2
    - DECLARE_HYPERCALL_BOUNCE
    - DPRINTF
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int do_physdev_op(xc_interface *xch, int cmd, void *op, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.h:245,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.h:249,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.h:251,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_private.h:256,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.h:257,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.h:263,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.h:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - xch
    - domctl
    - retries
    argTypes:
    - xc_interface*
    - struct xen_domctl*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 270
    functionName: do_domctl_maybe_retry_efault
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    - DPRINTF
    - HYPERCALL_BUFFER_AS_ARG
    - xencall1
    linkageType: ''
    returnType: int
    signature: "int do_domctl_maybe_retry_efault(xc_interface *xch,\n                                               struct
      xen_domctl *domctl,\n                                               unsigned
      int retries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl_maybe_retry_efault
      Src: /src/xen/tools/libs/ctrl/xc_private.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domctl
    argTypes:
    - xc_interface*
    - struct xen_domctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: do_domctl
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 75
    functionsReached:
    - do_domctl_maybe_retry_efault
    linkageType: ''
    returnType: int
    signature: int do_domctl(xc_interface *xch, struct xen_domctl *domctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xencall_buffers_never_fault
      Src: /src/xen/tools/libs/ctrl/xc_private.h:279,1
    - Dst: do_domctl_maybe_retry_efault
      Src: /src/xen/tools/libs/ctrl/xc_private.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domctl
    argTypes:
    - xc_interface*
    - struct xen_domctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: do_domctl_retry_efault
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 0
    functionsReached:
    - do_domctl_maybe_retry_efault
    - xencall_buffers_never_fault
    linkageType: ''
    returnType: int
    signature: int do_domctl_retry_efault(xc_interface *xch, struct xen_domctl *domctl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.h:287,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.h:291,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.h:293,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_private.h:297,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.h:298,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.h:302,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.h:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - xch
    - sysctl
    argTypes:
    - xc_interface*
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 309
    functionName: do_sysctl
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 10
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    - DPRINTF
    - HYPERCALL_BUFFER_AS_ARG
    - xencall1
    linkageType: ''
    returnType: int
    signature: int do_sysctl(xc_interface *xch, struct xen_sysctl *sysctl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.h:315,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.h:320,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.h:322,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_private.h:326,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.h:327,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.h:331,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.h:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - xch
    - platform_op
    argTypes:
    - xc_interface*
    - struct xen_platform_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 337
    functionName: do_platform_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 1
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    - DPRINTF
    - HYPERCALL_BUFFER_AS_ARG
    - xencall1
    linkageType: ''
    returnType: int
    signature: "int do_platform_op(xc_interface *xch,\n                                 struct
      xen_platform_op *platform_op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_private.h:344,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_private.h:346,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.h:347,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.h:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - call_list
    - nr_calls
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: do_multicall_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 1
    functionsReached:
    - xencall2
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - HYPERCALL_BUFFER_AS_ARG
    - DPRINTF
    linkageType: ''
    returnType: int
    signature: "int do_multicall_op(xc_interface *xch,\n                                  xc_hypercall_buffer_t
      *call_list,\n                                  uint32_t nr_calls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: DOMPRINTF
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOMPRINTF(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: DOMPRINTF_CALLED
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOMPRINTF_CALLED(xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: xc_core_arch_auto_translated_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_core_arch_auto_translated_physmap(const xc_domaininfo_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: xc_core_arch_auto_translated_physmap
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_core_arch_auto_translated_physmap(const xc_domaininfo_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - cpuid
    - max_px
    argTypes:
    - xc_interface*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: xc_pm_get_max_px
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_pm_get_max_px(xc_interface *xch, int cpuid, int *max_px)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:48,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:51,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:63,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:66,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:68,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:76,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:77,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:79,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:82,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:83,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:92,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - xch
    - cpuid
    - pxpt
    argTypes:
    - xc_interface*
    - int
    - struct xc_px_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 96
    functionName: xc_pm_get_pxstat
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    - xc_hypercall_bounce_post
    - set_xen_guest_handle
    - DECLARE_NAMED_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_pm_get_pxstat(xc_interface *xch, int cpuid, struct xc_px_stat
      *pxpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: xc_pm_reset_pxstat
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_pm_reset_pxstat(xc_interface *xch, int cpuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - cpuid
    - max_cx
    argTypes:
    - xc_interface*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: xc_pm_get_max_cx
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_pm_get_max_cx(xc_interface *xch, int cpuid, int *max_cx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:127,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:130,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:133,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:136,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:141,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:143,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:145,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:147,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:156,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:157,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:158,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:159,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:161,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:171,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:173,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:175,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - xch
    - cpuid
    - cxpt
    argTypes:
    - xc_interface*
    - int
    - struct xc_cx_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 180
    functionName: xc_pm_get_cxstat
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - xc_sysctl
    - set_xen_guest_handle
    - DECLARE_NAMED_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_pm_get_cxstat(xc_interface *xch, int cpuid, struct xc_cx_stat
      *cxpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: xc_pm_reset_cxstat
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_pm_reset_cxstat(xc_interface *xch, int cpuid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:204,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:207,1
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:210,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:223,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:226,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:230,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:233,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:238,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:241,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:252,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:271,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:279,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:285,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:286,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:287,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:288,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:289,1
    - Dst: CHK_FIELD
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:290,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:294,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:298,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:300,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:302,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - xch
    - cpuid
    - user_para
    argTypes:
    - xc_interface*
    - int
    - struct xc_get_cpufreq_para*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 305
    functionName: xc_get_cpufreq_para
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - CHK_FIELD
    - xc_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_NAMED_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - BUILD_BUG_ON
    - memcpy
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_get_cpufreq_para(xc_interface *xch, int cpuid,\n                        struct
      xc_get_cpufreq_para *user_para)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: CHK_FIELD
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHK_FIELD(fld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:320,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - cpuid
    - govname
    argTypes:
    - xc_interface*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 324
    functionName: xc_set_cpufreq_gov
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - strncpy
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_set_cpufreq_gov(xc_interface *xch, int cpuid, char *govname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - cpuid
    - ctrl_type
    - ctrl_value
    argTypes:
    - xc_interface*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: xc_set_cpufreq_para
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_set_cpufreq_para(xc_interface *xch, int cpuid, \n                        int
      ctrl_type, int ctrl_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - cpuid
    - set_cppc
    argTypes:
    - xc_interface*
    - int
    - xc_set_cppc_para_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 366
    functionName: xc_set_cpufreq_cppc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,\n                        xc_set_cppc_para_t
      *set_cppc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - cpuid
    - cppc_para
    argTypes:
    - xc_interface*
    - unsigned int
    - xc_cppc_para_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: xc_get_cppc_para
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_get_cppc_para(xc_interface *xch, unsigned int cpuid,\n                     xc_cppc_para_t
      *cppc_para)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - cpuid
    - avg_freq
    argTypes:
    - xc_interface*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 410
    functionName: xc_get_cpufreq_avgfreq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - xch
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: xc_set_sched_opt_smt
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_set_sched_opt_smt(xc_interface *xch, uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - value
    - type
    argTypes:
    - xc_interface*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 447
    functionName: get_max_cstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int get_max_cstate(xc_interface *xch, uint32_t *value, uint32_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_max_cstate
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - value
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 452
    functionName: xc_get_cpuidle_max_cstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - get_max_cstate
    linkageType: ''
    returnType: int
    signature: int xc_get_cpuidle_max_cstate(xc_interface *xch, uint32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_max_cstate
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - value
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: xc_get_cpuidle_max_csubstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - get_max_cstate
    linkageType: ''
    returnType: int
    signature: int xc_get_cpuidle_max_csubstate(xc_interface *xch, uint32_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - xch
    - value
    - type
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 474
    functionName: set_max_cstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int set_max_cstate(xc_interface *xch, uint32_t value, uint32_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_cstate
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: xc_set_cpuidle_max_cstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - set_max_cstate
    linkageType: ''
    returnType: int
    signature: int xc_set_cpuidle_max_cstate(xc_interface *xch, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_max_cstate
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: xc_set_cpuidle_max_csubstate
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - set_max_cstate
    linkageType: ''
    returnType: int
    signature: int xc_set_cpuidle_max_csubstate(xc_interface *xch, uint32_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - xch
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 499
    functionName: xc_enable_turbo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_enable_turbo(xc_interface *xch, int cpuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_pm.c:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - xch
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 514
    functionName: xc_disable_turbo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pm.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_disable_turbo(xc_interface *xch, int cpuid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: xc_get_max_cpus
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 3
    functionsReached:
    - xc_physinfo
    linkageType: ''
    returnType: int
    signature: int xc_get_max_cpus(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: xc_get_online_cpus
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - xc_physinfo
    linkageType: ''
    returnType: int
    signature: int xc_get_online_cpus(xc_interface *xch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: xc_get_max_nodes
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - xc_physinfo
    linkageType: ''
    returnType: int
    signature: int xc_get_max_nodes(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: xc_get_cpumap_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 4
    functionsReached:
    - xc_get_max_cpus
    linkageType: ''
    returnType: int
    signature: int xc_get_cpumap_size(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_nodes
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: xc_get_nodemap_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 2
    functionsReached:
    - xc_get_max_nodes
    linkageType: ''
    returnType: int
    signature: int xc_get_nodemap_size(xc_interface *xch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:90,1
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: xc_cpumap_alloc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 4
    functionsReached:
    - xc_get_cpumap_size
    - calloc
    linkageType: ''
    returnType: xc_cpumap_t
    signature: xc_cpumap_t xc_cpumap_alloc(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: BITS_PER_CPUMAP
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_PER_CPUMAP(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cpu
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: CPUMAP_ENTRY
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPUMAP_ENTRY(cpu, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cpu
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CPUMAP_SHIFT
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPUMAP_SHIFT(cpu, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPUMAP_ENTRY
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:112,1
    - Dst: CPUMAP_SHIFT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - map
    argTypes:
    - int
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: xc_cpumap_clearcpu
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - CPUMAP_ENTRY
    - CPUMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void xc_cpumap_clearcpu(int cpu, xc_cpumap_t map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPUMAP_ENTRY
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:117,1
    - Dst: CPUMAP_SHIFT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - map
    argTypes:
    - int
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: xc_cpumap_setcpu
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - CPUMAP_ENTRY
    - CPUMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void xc_cpumap_setcpu(int cpu, xc_cpumap_t map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPUMAP_ENTRY
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:122,1
    - Dst: CPUMAP_SHIFT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - map
    argTypes:
    - int
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: xc_cpumap_testcpu
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - CPUMAP_ENTRY
    - CPUMAP_SHIFT
    linkageType: ''
    returnType: int
    signature: int xc_cpumap_testcpu(int cpu, xc_cpumap_t map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_nodemap_size
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:129,1
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 133
    functionName: xc_nodemap_alloc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - calloc
    - xc_get_nodemap_size
    linkageType: ''
    returnType: xc_nodemap_t
    signature: xc_nodemap_t xc_nodemap_alloc(xc_interface *xch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:143,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:145,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:149,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:159,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - xch
    - buffer
    - pnr_chars
    - clear
    - incremental
    - pindex
    argTypes:
    - xc_interface*
    - char*
    - unsigned int*
    - int
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: xc_readconsolering
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 2
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_readconsolering(xc_interface *xch,\n                       char
      *buffer,\n                       unsigned int *pnr_chars,\n                       int
      clear, int incremental, uint32_t *pindex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:173,1
    - Dst: DECLARE_HYPERCALL_BOUNCE_IN
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:175,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:177,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:181,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:184,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xch
    - keys
    argTypes:
    - xc_interface*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: xc_send_debug_keys
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 2
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - set_xen_guest_handle
    - strlen
    - DECLARE_HYPERCALL_BOUNCE_IN
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_send_debug_keys(xc_interface *xch, const char *keys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:199,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - put_info
    argTypes:
    - xc_interface*
    - xc_physinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: xc_physinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 9
    functionsReached:
    - do_sysctl
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_physinfo(xc_interface *xch,\n                xc_physinfo_t
      *put_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:214,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:218,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:223,1
    - Dst: do_platform_op
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:225,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - buf
    - len
    - flags
    argTypes:
    - xc_interface*
    - void*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: xc_microcode_update
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - set_xen_guest_handle
    - do_platform_op
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xc_microcode_update(xc_interface *xch, const void *buf,\n                        size_t
      len, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_platform_op
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - cpu_ver
    argTypes:
    - xc_interface*
    - struct xenpf_pcpu_version*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: xc_get_cpu_version
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_platform_op
    linkageType: ''
    returnType: int
    signature: int xc_get_cpu_version(xc_interface *xch, struct xenpf_pcpu_version
      *cpu_ver)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_platform_op
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - ucode_rev
    argTypes:
    - xc_interface*
    - struct xenpf_ucode_revision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: xc_get_ucode_revision
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_platform_op
    linkageType: ''
    returnType: int
    signature: "int xc_get_ucode_revision(xc_interface *xch,\n                          struct
      xenpf_ucode_revision *ucode_rev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:272,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:275,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:279,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:283,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - xch
    - max_cpus
    - cputopo
    argTypes:
    - xc_interface*
    - unsigned*
    - xc_cputopo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 292
    functionName: xc_cputopoinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_cputopoinfo(xc_interface *xch, unsigned *max_cpus,\n                   xc_cputopo_t
      *cputopo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:299,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:301,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:305,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:307,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:311,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:312,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:316,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:322,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - xch
    - max_nodes
    - meminfo
    - distance
    argTypes:
    - xc_interface*
    - unsigned*
    - xc_meminfo_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: xc_numainfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_numainfo(xc_interface *xch, unsigned *max_nodes,\n                xc_meminfo_t
      *meminfo, uint32_t *distance)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:335,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:337,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:340,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:342,1
    - Dst: set_xen_guest_handle_offset
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:350,1
    - Dst: set_xen_guest_handle_offset
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:352,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:355,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:362,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:363,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - xch
    - num_devs
    - devs
    - nodes
    argTypes:
    - xc_interface*
    - unsigned
    - physdev_pci_device_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 366
    functionName: xc_pcitopoinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - set_xen_guest_handle_offset
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_pcitopoinfo(xc_interface *xch, unsigned num_devs,\n                   physdev_pci_device_t
      *devs,\n                   uint32_t *nodes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - sched_id
    argTypes:
    - xc_interface*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 382
    functionName: xc_sched_id
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 2
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_id(xc_interface *xch,\n                int *sched_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:388,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:390,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:392,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:397,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:398,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - xch
    - mc
    argTypes:
    - xc_interface*
    - struct xen_mc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: xc_mca_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    - HYPERCALL_BUFFER_AS_ARG
    - xencall1
    linkageType: ''
    returnType: int
    signature: int xc_mca_op(xc_interface *xch, struct xen_mc *mc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:411,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:412,1
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:414,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:424,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:425,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:427,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:430,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:438,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:440,1
    - Dst: xencall1
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:444,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:444,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:446,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:449,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - xch
    - flags
    - cpumap
    - nr_bits
    argTypes:
    - xc_interface*
    - unsigned int
    - xc_cpumap_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 452
    functionName: xc_mca_op_inject_v2
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xencall1
    - memset
    - HYPERCALL_BOUNCE_SET_SIZE
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_mca_op_inject_v2(xc_interface *xch, unsigned int flags,\n                        xc_cpumap_t
      cpumap, unsigned int nr_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:461,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:462,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 465
    functionName: xc_perfc_reset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: int xc_perfc_reset(xc_interface *xch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:476,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:477,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - xch
    - nbr_desc
    - nbr_val
    argTypes:
    - xc_interface*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 487
    functionName: xc_perfc_query_number
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: "int xc_perfc_query_number(xc_interface *xch,\n                          int
      *nbr_desc,\n                          int *nbr_val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:494,1
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:495,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:499,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:500,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - desc
    - val
    argTypes:
    - xc_interface*
    - struct xc_hypercall_buffer*
    - struct xc_hypercall_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 503
    functionName: xc_perfc_query
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: "int xc_perfc_query(xc_interface *xch,\n                   struct xc_hypercall_buffer
      *desc,\n                   struct xc_hypercall_buffer *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:511,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 514
    functionName: xc_lockprof_reset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: int xc_lockprof_reset(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:525,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - xch
    - n_elems
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: xc_lockprof_query_number
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: "int xc_lockprof_query_number(xc_interface *xch,\n                             uint32_t
      *n_elems)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:541,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:546,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - xch
    - n_elems
    - time
    - data
    argTypes:
    - xc_interface*
    - uint32_t*
    - uint64_t*
    - struct xc_hypercall_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: xc_lockprof_query
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - do_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: "int xc_lockprof_query(xc_interface *xch,\n                      uint32_t
      *n_elems,\n                      uint64_t *time,\n                      struct
      xc_hypercall_buffer *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:560,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:562,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:567,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:569,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - xch
    - max_cpus
    - info
    - nr_cpus
    argTypes:
    - xc_interface*
    - int
    - xc_cpuinfo_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 577
    functionName: xc_getcpuinfo
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_getcpuinfo(xc_interface *xch, int max_cpus,\n                  xc_cpuinfo_t
      *info, int *nr_cpus)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:588,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:597,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:604,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:606,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:609,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:612,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:615,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:621,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:624,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:626,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:628,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - xch
    - name
    - payload
    - size
    - force
    argTypes:
    - xc_interface*
    - char*
    - unsigned char*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 632
    functionName: xc_livepatch_upload
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - strlen
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BOUNCE_SET_SIZE
    - memcpy
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_livepatch_upload(xc_interface *xch,\n                        char
      *name,\n                        unsigned char *payload,\n                        uint32_t
      size,\n                        bool force)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:640,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:649,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:656,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:658,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:668,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:670,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:672,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - xch
    - name
    - status
    argTypes:
    - xc_interface*
    - char*
    - struct xen_livepatch_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 677
    functionName: xc_livepatch_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - strlen
    - HYPERCALL_BOUNCE_SET_SIZE
    - memcpy
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_livepatch_get(xc_interface *xch,\n                     char
      *name,\n                     struct xen_livepatch_status *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:704,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - xch
    - nr
    - name_total_size
    - metadata_total_size
    argTypes:
    - xc_interface*
    - unsigned int*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 717
    functionName: xc_livepatch_list_get_sizes
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - memset
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_livepatch_list_get_sizes(xc_interface *xch, unsigned int *nr,\n
      \                               uint32_t *name_total_size,\n                                uint32_t
      *metadata_total_size)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:778,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:779,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:780,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:781,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:782,1
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:802,1
    - Dst: min
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:829,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:833,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:834,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:835,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:836,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:837,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:839,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:840,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:841,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:842,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:843,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:845,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:849,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:853,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:857,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:861,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:865,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:866,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:867,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:868,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:869,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:874,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:886,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:887,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:888,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:889,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:890,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:913,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:914,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:915,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:916,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:917,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:932,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:933,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:934,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:935,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:936,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:938,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:939,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:940,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:941,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:942,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:957,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:958,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:959,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:960,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:961,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 126
    argCount: 12
    argNames:
    - xch
    - max
    - start
    - info
    - name
    - len
    - name_total_size
    - metadata
    - metadata_len
    - metadata_total_size
    - done
    - left
    argTypes:
    - xc_interface*
    - unsigned int
    - unsigned int
    - struct xen_livepatch_status*
    - char*
    - uint32_t*
    - uint32_t
    - char*
    - uint32_t*
    - uint32_t
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 965
    functionName: xc_livepatch_list
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - min
    - memset
    - HYPERCALL_BOUNCE_SET_SIZE
    - HYPERCALL_BUFFER
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_livepatch_list(xc_interface *xch, const unsigned int max,\n
      \                     const unsigned int start,\n                      struct
      xen_livepatch_status *info,\n                      char *name, uint32_t *len,\n
      \                     const uint32_t name_total_size,\n                      char
      *metadata, uint32_t *metadata_len,\n                      const uint32_t metadata_total_size,\n
      \                     unsigned int *done, unsigned int *left)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:976,1
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:979,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:987,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:989,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1000,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1002,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - xch
    - name
    - action
    - timeout
    - flags
    argTypes:
    - xc_interface*
    - char*
    - unsigned int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 1007
    functionName: _xc_livepatch_action
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - strlen
    - HYPERCALL_BOUNCE_SET_SIZE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int _xc_livepatch_action(xc_interface *xch,\n                                char
      *name,\n                                unsigned int action,\n                                uint32_t
      timeout,\n                                uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xc_livepatch_action
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - name
    - timeout
    - flags
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1012
    functionName: xc_livepatch_apply
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - _xc_livepatch_action
    linkageType: ''
    returnType: int
    signature: int xc_livepatch_apply(xc_interface *xch, char *name, uint32_t timeout,
      uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xc_livepatch_action
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - name
    - timeout
    - flags
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: xc_livepatch_revert
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - _xc_livepatch_action
    linkageType: ''
    returnType: int
    signature: int xc_livepatch_revert(xc_interface *xch, char *name, uint32_t timeout,
      uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xc_livepatch_action
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - name
    - timeout
    - flags
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1022
    functionName: xc_livepatch_unload
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - _xc_livepatch_action
    linkageType: ''
    returnType: int
    signature: int xc_livepatch_unload(xc_interface *xch, char *name, uint32_t timeout,
      uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xc_livepatch_action
      Src: /src/xen/tools/libs/ctrl/xc_misc.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - name
    - timeout
    - flags
    argTypes:
    - xc_interface*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1027
    functionName: xc_livepatch_replace
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_misc.c
    functionUses: 0
    functionsReached:
    - _xc_livepatch_action
    linkageType: ''
    returnType: int
    signature: int xc_livepatch_replace(xc_interface *xch, char *name, uint32_t timeout,
      uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/libs/ctrl/xc_version.c:14,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_version.c:15,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_version.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xch
    - cmd
    - dest
    argTypes:
    - xc_interface*
    - int
    - xc_hypercall_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: do_xen_version
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 0
    functionsReached:
    - xencall2
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int do_xen_version(xc_interface *xch, int cmd,\n                          xc_hypercall_buffer_t
      *dest)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_version.c:21,1
    - Dst: HYPERCALL_BOUNCE_SET_DIR
      Src: /src/xen/tools/libs/ctrl/xc_version.c:61,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_version.c:65,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_version.c:69,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_version.c:71,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_version.c:73,1
    - Dst: do_xen_version
      Src: /src/xen/tools/libs/ctrl/xc_version.c:77,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_version.c:77,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_version.c:80,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - xch
    - cmd
    - arg
    argTypes:
    - xc_interface*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 83
    functionName: xc_version
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 9
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - ERROR
    - DECLARE_HYPERCALL_BOUNCE
    - HYPERCALL_BOUNCE_SET_SIZE
    - HYPERCALL_BOUNCE_SET_DIR
    - HYPERCALL_BUFFER
    - do_xen_version
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_version(xc_interface *xch, int cmd, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_version.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - cmd
    - hbuf
    argTypes:
    - xc_interface*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: do_xen_version_raw
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 0
    functionsReached:
    - xencall2
    linkageType: ''
    returnType: int
    signature: int do_xen_version_raw(xc_interface *xch, int cmd, void *hbuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_xen_version_raw
      Src: /src/xen/tools/libs/ctrl/xc_version.c:107,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/ctrl/xc_version.c:111,1
    - Dst: do_xen_version_raw
      Src: /src/xen/tools/libs/ctrl/xc_version.c:117,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/ctrl/xc_version.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - xch
    - subop
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 126
    functionName: varbuf_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 0
    functionsReached:
    - xencall_alloc_buffer
    - do_xen_version_raw
    - xencall_free_buffer
    linkageType: ''
    returnType: xen_varbuf_t
    signature: xen_varbuf_t *varbuf_op(xc_interface *xch, unsigned int subop)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_op
      Src: /src/xen/tools/libs/ctrl/xc_version.c:137,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_version.c:143,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_version.c:146,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/ctrl/xc_version.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - xch
    - subop
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: varbuf_simple_string
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 0
    functionsReached:
    - xencall_free_buffer
    - malloc
    - memcpy
    - varbuf_op
    linkageType: ''
    returnType: char
    signature: char *varbuf_simple_string(xc_interface *xch, unsigned int subop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_simple_string
      Src: /src/xen/tools/libs/ctrl/xc_version.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: xc_xenver_extraversion
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 2
    functionsReached:
    - varbuf_simple_string
    linkageType: ''
    returnType: char
    signature: char *xc_xenver_extraversion(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_simple_string
      Src: /src/xen/tools/libs/ctrl/xc_version.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: xc_xenver_capabilities
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 2
    functionsReached:
    - varbuf_simple_string
    linkageType: ''
    returnType: char
    signature: char *xc_xenver_capabilities(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_simple_string
      Src: /src/xen/tools/libs/ctrl/xc_version.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 6
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: xc_xenver_changeset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 2
    functionsReached:
    - varbuf_simple_string
    linkageType: ''
    returnType: char
    signature: char *xc_xenver_changeset(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_simple_string
      Src: /src/xen/tools/libs/ctrl/xc_version.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: xc_xenver_commandline
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 1
    functionsReached:
    - varbuf_simple_string
    linkageType: ''
    returnType: char
    signature: char *xc_xenver_commandline(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: str2hex
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void str2hex(char *dst, const unsigned char *src, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: varbuf_op
      Src: /src/xen/tools/libs/ctrl/xc_version.c:190,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_version.c:196,1
    - Dst: str2hex
      Src: /src/xen/tools/libs/ctrl/xc_version.c:199,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/ctrl/xc_version.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: xc_xenver_buildid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_version.c
    functionUses: 1
    functionsReached:
    - str2hex
    - malloc
    - xencall_free_buffer
    - varbuf_op
    linkageType: ''
    returnType: char
    signature: char *xc_xenver_buildid(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_rtds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: xc_sched_rtds_domain_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_rt.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_rtds_domain_set(xc_interface *xch,\n                           uint32_t
      domid,\n                           struct xen_domctl_sched_rtds *sdom)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - sdom
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_sched_rtds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: xc_sched_rtds_domain_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_rt.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_sched_rtds_domain_get(xc_interface *xch,\n                           uint32_t
      domid,\n                           struct xen_domctl_sched_rtds *sdom)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:74,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:77,1
    - Dst: set_xen_guest_handle_offset
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:88,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:90,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpus
    - num_vcpus
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_schedparam_vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 98
    functionName: xc_sched_rtds_vcpu_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_rt.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - set_xen_guest_handle_offset
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_sched_rtds_vcpu_set(xc_interface *xch,\n                           uint32_t
      domid,\n                           struct xen_domctl_schedparam_vcpu *vcpus,\n
      \                          uint32_t num_vcpus)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:108,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:111,1
    - Dst: set_xen_guest_handle_offset
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:122,1
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:124,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_rt.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpus
    - num_vcpus
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_domctl_schedparam_vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 132
    functionName: xc_sched_rtds_vcpu_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_rt.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - set_xen_guest_handle_offset
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_sched_rtds_vcpu_get(xc_interface *xch,\n                           uint32_t
      domid,\n                           struct xen_domctl_schedparam_vcpu *vcpus,\n
      \                          uint32_t num_vcpus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:37,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:42,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:49,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:52,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_arinc653_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 57
    functionName: xc_sched_arinc653_schedule_set
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_arinc653.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_sched_arinc653_schedule_set(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_arinc653_schedule *schedule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:67,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:72,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:79,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:82,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_arinc653.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - cpupool_id
    - schedule
    argTypes:
    - xc_interface*
    - uint32_t
    - struct xen_sysctl_arinc653_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: xc_sched_arinc653_schedule_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_arinc653.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_sched_arinc653_schedule_get(\n    xc_interface *xch,\n    uint32_t
      cpupool_id,\n    struct xen_sysctl_arinc653_schedule *schedule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domain_id
    - access
    - first_pfn
    - nr
    argTypes:
    - xc_interface*
    - uint32_t
    - xenmem_access_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: xc_set_mem_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_access.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_set_mem_access(xc_interface *xch,\n                      uint32_t
      domain_id,\n                      xenmem_access_t access,\n                      uint64_t
      first_pfn,\n                      uint32_t nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:50,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:51,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:64,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:65,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:67,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:71,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:72,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:74,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:76,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - xch
    - domain_id
    - access
    - pages
    - nr
    argTypes:
    - xc_interface*
    - uint32_t
    - uint8_t*
    - uint64_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 80
    functionName: xc_set_mem_access_multi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_access.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_set_mem_access_multi(xc_interface *xch,\n                            uint32_t
      domain_id,\n                            uint8_t *access,\n                            uint64_t
      *pages,\n                            uint32_t nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_mem_access.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - xch
    - domain_id
    - pfn
    - access
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - xenmem_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: xc_get_mem_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_mem_access.c
    functionUses: 0
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: "int xc_get_mem_access(xc_interface *xch,\n                      uint32_t
      domain_id,\n                      uint64_t pfn,\n                      xenmem_access_t
      *access)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:30,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:32,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:40,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:41,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - dom
    - state
    argTypes:
    - xc_interface*
    - uint32_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 48
    functionName: xc_altp2m_get_domain_state
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_altp2m_get_domain_state(xc_interface *handle, uint32_t dom,
      bool *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:53,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:55,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:64,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:65,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - dom
    - state
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: xc_altp2m_set_domain_state
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: int xc_altp2m_set_domain_state(xc_interface *handle, uint32_t dom,
      bool state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:75,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:77,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:87,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:88,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - handle
    - domid
    - vcpuid
    - gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: xc_altp2m_set_vcpu_enable_notify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_vcpu_enable_notify(xc_interface *handle, uint32_t
      domid,\n                                     uint32_t vcpuid, xen_pfn_t gfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:98,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:100,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:109,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:110,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - domid
    - vcpuid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: xc_altp2m_set_vcpu_disable_notify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_vcpu_disable_notify(xc_interface *handle, uint32_t
      domid,\n                                      uint32_t vcpuid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:120,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:122,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:132,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:133,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - domid
    - default_access
    - view_id
    argTypes:
    - xc_interface*
    - uint32_t
    - xenmem_access_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 140
    functionName: xc_altp2m_create_view
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_create_view(xc_interface *handle, uint32_t domid,\n
      \                         xenmem_access_t default_access, uint16_t *view_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:146,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:148,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:157,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:158,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - domid
    - view_id
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: xc_altp2m_destroy_view
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_destroy_view(xc_interface *handle, uint32_t domid,\n
      \                          uint16_t view_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:169,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:171,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:180,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:181,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - domid
    - view_id
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: xc_altp2m_switch_to_view
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_switch_to_view(xc_interface *handle, uint32_t domid,\n
      \                            uint16_t view_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:191,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:193,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:203,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:204,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - handle
    - domid
    - view_id
    - gfn
    - sve
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 211
    functionName: xc_altp2m_get_suppress_ve
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_get_suppress_ve(xc_interface *handle, uint32_t domid,\n
      \                             uint16_t view_id, xen_pfn_t gfn, bool *sve)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:217,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:219,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:230,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:231,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - handle
    - domid
    - view_id
    - gfn
    - sve
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 235
    functionName: xc_altp2m_set_suppress_ve
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_suppress_ve(xc_interface *handle, uint32_t domid,\n
      \                             uint16_t view_id, xen_pfn_t gfn, bool sve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:243,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:245,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:257,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:258,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 8
    argNames:
    - handle
    - domid
    - view_id
    - first_gfn
    - last_gfn
    - sve
    - error_gfn
    - error_code
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - xen_pfn_t
    - bool
    - xen_pfn_t*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 268
    functionName: xc_altp2m_set_supress_ve_multi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_supress_ve_multi(xc_interface *handle, uint32_t
      domid,\n                                   uint16_t view_id, xen_pfn_t first_gfn,\n
      \                                  xen_pfn_t last_gfn, bool sve,\n                                   xen_pfn_t
      *error_gfn, int32_t *error_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:275,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:277,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:288,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:289,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - handle
    - domid
    - view_id
    - gfn
    - access
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - xenmem_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: xc_altp2m_set_mem_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_mem_access(xc_interface *handle, uint32_t domid,\n
      \                            uint16_t view_id, xen_pfn_t gfn,\n                             xenmem_access_t
      access)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:300,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:302,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:313,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:314,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - handle
    - domid
    - view_id
    - old_gfn
    - new_gfn
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: xc_altp2m_change_gfn
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_change_gfn(xc_interface *handle, uint32_t domid,\n                         uint16_t
      view_id, xen_pfn_t old_gfn,\n                         xen_pfn_t new_gfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:326,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:327,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:329,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:332,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:342,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:343,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:345,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:349,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:350,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:352,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:353,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:355,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:356,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - xch
    - domid
    - view_id
    - access
    - gfns
    - nr
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - uint8_t*
    - uint64_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 360
    functionName: xc_altp2m_set_mem_access_multi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xc_hypercall_bounce_post
    - PERROR
    - xencall2
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_mem_access_multi(xc_interface *xch, uint32_t domid,\n
      \                                  uint16_t view_id, uint8_t *access,\n                                   uint64_t
      *gfns, uint32_t nr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:367,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:369,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:379,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:380,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - handle
    - domid
    - view_id
    - gfn
    - access
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - xen_pfn_t
    - xenmem_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 387
    functionName: xc_altp2m_get_mem_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_get_mem_access(xc_interface *handle, uint32_t domid,\n
      \                            uint16_t view_id, xen_pfn_t gfn,\n                             xenmem_access_t
      *access)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:394,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:396,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:405,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:406,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - domid
    - vcpuid
    - altp2m_idx
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 412
    functionName: xc_altp2m_get_vcpu_p2m_idx
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_get_vcpu_p2m_idx(xc_interface *handle, uint32_t domid,\n
      \                              uint32_t vcpuid, uint16_t *altp2m_idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:419,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:421,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:431,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:432,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_altp2m.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - handle
    - domid
    - view_id
    - visible
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 436
    functionName: xc_altp2m_set_visibility
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_altp2m.c
    functionUses: 0
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xencall2
    - xc_hypercall_buffer_free
    - xc_hypercall_buffer_alloc
    - HYPERCALL_BUFFER_AS_ARG
    linkageType: ''
    returnType: int
    signature: "int xc_altp2m_set_visibility(xc_interface *handle, uint32_t domid,\n
      \                            uint16_t view_id, bool visible)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:28,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:30,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:32,1
    - Dst: xencall2
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:36,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:37,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:39,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - xch
    - cmd
    - arg
    - arg_size
    - silently_fail
    argTypes:
    - xc_interface*
    - int
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: do_evtchn_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn.c
    functionUses: 0
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xencall2
    - ERROR
    - DECLARE_HYPERCALL_BOUNCE
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int do_evtchn_op(xc_interface *xch, int cmd, void *arg,\n                        size_t
      arg_size, int silently_fail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_evtchn_op
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - dom
    - remote_dom
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: xc_evtchn_alloc_unbound
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn.c
    functionUses: 2
    functionsReached:
    - do_evtchn_op
    linkageType: ''
    returnType: xc_evtchn_port_or_error_t
    signature: "xc_evtchn_port_or_error_t xc_evtchn_alloc_unbound(xc_interface *xch,\n
      \                       uint32_t dom,\n                        uint32_t remote_dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_evtchn_op
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - dom
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: xc_evtchn_reset
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn.c
    functionUses: 1
    functionsReached:
    - do_evtchn_op
    linkageType: ''
    returnType: int
    signature: "int xc_evtchn_reset(xc_interface *xch,\n                    uint32_t
      dom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_evtchn_op
      Src: /src/xen/tools/libs/ctrl/xc_evtchn.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - status
    argTypes:
    - xc_interface*
    - xc_evtchn_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: xc_evtchn_status
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn.c
    functionUses: 1
    functionsReached:
    - do_evtchn_op
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_status(xc_interface *xch, xc_evtchn_status_t *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:28,1
    - Dst: lseek
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:41,1
    - Dst: posix_fadvise64
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - xch
    - fd
    - flush
    argTypes:
    - xc_interface*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 55
    functionName: discard_file_cache
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_linux.c
    functionUses: 2
    functionsReached:
    - fsync
    - lseek
    - posix_fadvise64
    linkageType: ''
    returnType: void
    signature: void discard_file_cache(xc_interface *xch, int fd, int flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: posix_memalign
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - alignment
    - size
    argTypes:
    - xc_interface*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: xc_memalign
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_linux.c
    functionUses: 0
    functionsReached:
    - posix_memalign
    linkageType: ''
    returnType: void
    signature: void *xc_memalign(xc_interface *xch, size_t alignment, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:77,1
    - Dst: xencall_fd
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:77,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_linux.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - xch
    - sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: xc_pcidev_get_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_linux.c
    functionUses: 2
    functionsReached:
    - xencall_fd
    - ioctl
    - PERROR
    linkageType: ''
    returnType: int
    signature: int xc_pcidev_get_gsi(xc_interface *xch, uint32_t sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: xc_psr_cmt_attach
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_psr_cmt_attach(xc_interface *xch, uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: xc_psr_cmt_detach
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_psr_cmt_detach(xc_interface *xch, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xch
    - domid
    - rmid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: xc_psr_cmt_get_domain_rmid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 2
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_cmt_get_domain_rmid(xc_interface *xch, uint32_t domid,\n
      \                              uint32_t *rmid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - xch
    - total_rmid
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: xc_psr_cmt_get_total_rmid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_psr_cmt_get_total_rmid(xc_interface *xch, uint32_t *total_rmid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - xch
    - upscaling_factor
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: xc_psr_cmt_get_l3_upscaling_factor
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_cmt_get_l3_upscaling_factor(xc_interface *xch,\n                                       uint32_t
      *upscaling_factor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xch
    - event_mask
    argTypes:
    - xc_interface*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: xc_psr_cmt_get_l3_event_mask
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_psr_cmt_get_l3_event_mask(xc_interface *xch, uint32_t *event_mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - cpu
    - l3_cache_size
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 159
    functionName: xc_psr_cmt_get_l3_cache_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_cmt_get_l3_cache_size(xc_interface *xch, uint32_t cpu,\n
      \                                uint32_t *l3_cache_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:208,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:208,1
    - Dst: xc_resource_op
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:214,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 6
    argNames:
    - xch
    - rmid
    - cpu
    - type
    - monitor_data
    - tsc
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - xc_psr_cmt_type
    - uint64_t*
    - uint64_t*
    assertStmts:
    - condition: (nr <= ARRAY_SIZE(entries))
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/xen/tools/libs/ctrl/xc_psr.c
    constantsTouched: []
    func_position:
      end: 227
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 227
    functionName: xc_psr_cmt_get_data
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - xc_resource_op
    - assert
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int xc_psr_cmt_get_data(xc_interface *xch, uint32_t rmid, uint32_t
      cpu,\n                        xc_psr_cmt_type type, uint64_t *monitor_data,\n
      \                       uint64_t *tsc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 250
    functionName: xc_psr_cmt_enabled
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_psr_cmt_enabled(xc_interface *xch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - xch
    - domid
    - type
    - target
    - data
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_psr_type
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 287
    functionName: xc_psr_set_domain_data
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_set_domain_data(xc_interface *xch, uint32_t domid,\n                           xc_psr_type
      type, uint32_t target,\n                           uint64_t data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - xch
    - domid
    - type
    - target
    - data
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_psr_type
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 330
    functionName: xc_psr_get_domain_data
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 1
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_get_domain_data(xc_interface *xch, uint32_t domid,\n                           xc_psr_type
      type, uint32_t target,\n                           uint64_t *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:355,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_psr.c:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - xch
    - socket
    - type
    - hw_info
    argTypes:
    - xc_interface*
    - uint32_t
    - xc_psr_feat_type
    - xc_psr_hw_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 385
    functionName: xc_psr_get_hw_info
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_psr.c
    functionUses: 2
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: "int xc_psr_get_hw_info(xc_interface *xch, uint32_t socket,\n                       xc_psr_feat_type
      type, xc_psr_hw_info *hw_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - xch
    - fd
    - flush
    argTypes:
    - xc_interface*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: discard_file_cache
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_solaris.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void discard_file_cache(xc_interface *xch, int fd, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memalign
      Src: /src/xen/tools/libs/ctrl/xc_solaris.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - alignment
    - size
    argTypes:
    - xc_interface*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: xc_memalign
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_solaris.c
    functionUses: 0
    functionsReached:
    - memalign
    linkageType: ''
    returnType: void
    signature: void *xc_memalign(xc_interface *xch, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: xc_pcidev_get_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_solaris.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_pcidev_get_gsi(xc_interface *xch, uint32_t sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 3
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: xc_evtchn_open
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_open
    linkageType: ''
    returnType: xc_evtchn
    signature: "xc_evtchn *xc_evtchn_open(xentoollog_logger *logger,\n                          unsigned
      open_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xc_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: xc_evtchn_close
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_close(xc_evtchn *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xc_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: xc_evtchn_fd
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_fd
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_fd(xc_evtchn *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xc_evtchn*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: xc_evtchn_notify
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_notify
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_notify(xc_evtchn *xce, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_bind_unbound_port
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - domid
    argTypes:
    - xc_evtchn*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: xc_evtchn_bind_unbound_port
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_bind_unbound_port
    linkageType: ''
    returnType: evtchn_port_or_error_t
    signature: evtchn_port_or_error_t xc_evtchn_bind_unbound_port(xc_evtchn *xce,
      uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xce
    - domid
    - remote_port
    argTypes:
    - xc_evtchn*
    - uint32_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: xc_evtchn_bind_interdomain
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_bind_interdomain
    linkageType: ''
    returnType: evtchn_port_or_error_t
    signature: "evtchn_port_or_error_t xc_evtchn_bind_interdomain(xc_evtchn *xce,
      uint32_t domid,\n                           evtchn_port_t remote_port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - virq
    argTypes:
    - xc_evtchn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: xc_evtchn_bind_virq
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_bind_virq
    linkageType: ''
    returnType: evtchn_port_or_error_t
    signature: evtchn_port_or_error_t xc_evtchn_bind_virq(xc_evtchn *xce, unsigned
      int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xc_evtchn*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: xc_evtchn_unbind
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unbind
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_unbind(xc_evtchn *xce, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xce
    argTypes:
    - xc_evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: xc_evtchn_pending
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_pending
    linkageType: ''
    returnType: evtchn_port_or_error_t
    signature: evtchn_port_or_error_t xc_evtchn_pending(xc_evtchn *xce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xce
    - port
    argTypes:
    - xc_evtchn*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: xc_evtchn_unmask
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    linkageType: ''
    returnType: int
    signature: int xc_evtchn_unmask(xc_evtchn *xce, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xencall_alloc_buffer_pages
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - b
    - nr_pages
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: xc__hypercall_buffer_alloc_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xencall_alloc_buffer_pages
    linkageType: ''
    returnType: void
    signature: void *xc__hypercall_buffer_alloc_pages(xc_interface *xch, xc_hypercall_buffer_t
      *b, int nr_pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xencall_free_buffer_pages
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - b
    - nr_pages
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: xc__hypercall_buffer_free_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xencall_free_buffer_pages
    linkageType: ''
    returnType: void
    signature: void xc__hypercall_buffer_free_pages(xc_interface *xch, xc_hypercall_buffer_t
      *b, int nr_pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xch
    - b
    - size
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: xc__hypercall_buffer_alloc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xencall_alloc_buffer
    linkageType: ''
    returnType: void
    signature: void *xc__hypercall_buffer_alloc(xc_interface *xch, xc_hypercall_buffer_t
      *b, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - b
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: xc__hypercall_buffer_free
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xencall_free_buffer
    linkageType: ''
    returnType: void
    signature: void xc__hypercall_buffer_free(xc_interface *xch, xc_hypercall_buffer_t
      *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:71,1
    - Dst: xc__hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:82,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:87,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - xch
    - b
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: xc__hypercall_bounce_pre
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xc__hypercall_buffer_alloc
    - memcpy
    - abort
    linkageType: ''
    returnType: int
    signature: int xc__hypercall_bounce_pre(xc_interface *xch, xc_hypercall_buffer_t
      *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:98,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:104,1
    - Dst: xc__hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - xch
    - b
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: xc__hypercall_bounce_post
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xc__hypercall_buffer_free
    - memcpy
    - abort
    linkageType: ''
    returnType: void
    signature: void xc__hypercall_bounce_post(xc_interface *xch, xc_hypercall_buffer_t
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:120,1
    - Dst: calloc
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:124,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:134,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - xch
    - n
    argTypes:
    - xc_interface*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 137
    functionName: xc_hypercall_buffer_array_create
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 1
    functionsReached:
    - free
    - malloc
    - calloc
    linkageType: ''
    returnType: xc_hypercall_buffer_array_t
    signature: "xc_hypercall_buffer_array_t *xc_hypercall_buffer_array_create(xc_interface
      *xch,\n                                                              unsigned
      n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:148,1
    - Dst: xc__hypercall_buffer_alloc
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - xch
    - array
    - index
    - hbuf
    - size
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_array_t*
    - unsigned
    - xc_hypercall_buffer_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 5
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: xc__hypercall_buffer_array_alloc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - xc__hypercall_buffer_alloc
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xc__hypercall_buffer_array_alloc(xc_interface *xch,\n                                       xc_hypercall_buffer_array_t
      *array,\n                                       unsigned index,\n                                       xc_hypercall_buffer_t
      *hbuf,\n                                       size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - xch
    - array
    - index
    - hbuf
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_array_t*
    - unsigned
    - xc_hypercall_buffer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: xc__hypercall_buffer_array_get
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: "void *xc__hypercall_buffer_array_get(xc_interface *xch,\n                                     xc_hypercall_buffer_array_t
      *array,\n                                     unsigned index,\n                                     xc_hypercall_buffer_t
      *hbuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc__hypercall_buffer_free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:177,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:178,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_hcall_buf.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - xc
    - array
    argTypes:
    - xc_interface*
    - xc_hypercall_buffer_array_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: xc_hypercall_buffer_array_destroy
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    functionUses: 1
    functionsReached:
    - xc__hypercall_buffer_free
    - free
    linkageType: ''
    returnType: void
    signature: "void xc_hypercall_buffer_array_destroy(xc_interface *xc,\n                                       xc_hypercall_buffer_array_t
      *array)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xch
    - enable
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: tbuf_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int tbuf_enable(xc_interface *xch, int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - size
    argTypes:
    - xc_interface*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: xc_tbuf_set_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_tbuf_set_size(xc_interface *xch, unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:64,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:68,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - xch
    - size
    argTypes:
    - xc_interface*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: xc_tbuf_get_size
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - xenforeignmemory_unmap
    - xc_sysctl
    - xc_map_foreign_range
    linkageType: ''
    returnType: int
    signature: int xc_tbuf_get_size(xc_interface *xch, unsigned long *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_tbuf_set_size
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:93,1
    - Dst: tbuf_enable
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:95,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - xch
    - pages
    - mfn
    - size
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 110
    functionName: xc_tbuf_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - xc_sysctl
    - xc_tbuf_set_size
    - tbuf_enable
    linkageType: ''
    returnType: int
    signature: "int xc_tbuf_enable(xc_interface *xch, unsigned long pages, unsigned
      long *mfn,\n                   unsigned long *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tbuf_enable
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: xc_tbuf_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - tbuf_enable
    linkageType: ''
    returnType: int
    signature: int xc_tbuf_disable(xc_interface *xch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:120,1
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:124,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:127,1
    - Dst: HYPERCALL_BOUNCE_SET_SIZE
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:131,1
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:133,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:136,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:140,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:142,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:150,1
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:153,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - xch
    - mask
    argTypes:
    - xc_interface*
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 159
    functionName: xc_tbuf_set_cpu_mask
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    - xc_get_cpumap_size
    - PERROR
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - HYPERCALL_BOUNCE_SET_SIZE
    - xc_get_max_cpus
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int xc_tbuf_set_cpu_mask(xc_interface *xch, xc_cpumap_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_tbuf.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - mask
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: xc_tbuf_set_evt_mask
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_tbuf.c
    functionUses: 0
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_tbuf_set_evt_mask(xc_interface *xch, uint32_t mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fsync
      Src: /src/xen/tools/libs/ctrl/xc_netbsd.c:32,1
    - Dst: lseek
      Src: /src/xen/tools/libs/ctrl/xc_netbsd.c:45,1
    - Dst: posix_fadvise
      Src: /src/xen/tools/libs/ctrl/xc_netbsd.c:51,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - xch
    - fd
    - flush
    argTypes:
    - xc_interface*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: discard_file_cache
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_netbsd.c
    functionUses: 2
    functionsReached:
    - fsync
    - lseek
    - posix_fadvise
    linkageType: ''
    returnType: void
    signature: void discard_file_cache(xc_interface *xch, int fd, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valloc
      Src: /src/xen/tools/libs/ctrl/xc_netbsd.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - alignment
    - size
    argTypes:
    - xc_interface*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: xc_memalign
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_netbsd.c
    functionUses: 0
    functionsReached:
    - valloc
    linkageType: ''
    returnType: void
    signature: void *xc_memalign(xc_interface *xch, size_t alignment, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - sbdf
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: xc_pcidev_get_gsi
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_netbsd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_pcidev_get_gsi(xc_interface *xch, uint32_t sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_enable
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domain_id
    - port
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: xc_monitor_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_enable
    linkageType: ''
    returnType: void
    signature: void *xc_monitor_enable(xc_interface *xch, uint32_t domain_id, uint32_t
      *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domain_id
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: xc_monitor_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: int xc_monitor_disable(xc_interface *xch, uint32_t domain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_vm_event_control
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domain_id
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: xc_monitor_resume
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - xc_vm_event_control
    linkageType: ''
    returnType: int
    signature: int xc_monitor_resume(xc_interface *xch, uint32_t domain_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - domain_id
    - capabilities
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: xc_monitor_get_capabilities
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_get_capabilities(xc_interface *xch, uint32_t domain_id,\n
      \                               uint32_t *capabilities)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 7
    argNames:
    - xch
    - domain_id
    - index
    - enable
    - sync
    - bitmask
    - onchangeonly
    argTypes:
    - xc_interface*
    - uint32_t
    - uint16_t
    - bool
    - bool
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: xc_monitor_write_ctrlreg
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_write_ctrlreg(xc_interface *xch, uint32_t domain_id,\n
      \                            uint16_t index, bool enable, bool sync,\n                             uint64_t
      bitmask, bool onchangeonly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - xch
    - domain_id
    - msr
    - enable
    - onchangeonly
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: xc_monitor_mov_to_msr
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_mov_to_msr(xc_interface *xch, uint32_t domain_id, uint32_t
      msr,\n                          bool enable, bool onchangeonly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 120
    functionName: xc_monitor_software_breakpoint
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_software_breakpoint(xc_interface *xch, uint32_t domain_id,\n
      \                                  bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: xc_monitor_singlestep
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_singlestep(xc_interface *xch, uint32_t domain_id,\n
      \                         bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: xc_monitor_descriptor_access
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_descriptor_access(xc_interface *xch, uint32_t domain_id,\n
      \                                bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - xch
    - domain_id
    - enable
    - sync
    - allow_userspace
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: xc_monitor_guest_request
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_guest_request(xc_interface *xch, uint32_t domain_id,
      bool enable,\n                             bool sync, bool allow_userspace)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - disable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: xc_monitor_inguest_pagefault
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_inguest_pagefault(xc_interface *xch, uint32_t domain_id,\n
      \                               bool disable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: xc_monitor_emulate_each_rep
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_emulate_each_rep(xc_interface *xch, uint32_t domain_id,\n
      \                               bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domain_id
    - enable
    - sync
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: xc_monitor_debug_exceptions
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_debug_exceptions(xc_interface *xch, uint32_t domain_id,\n
      \                               bool enable, bool sync)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: xc_monitor_cpuid
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_monitor_cpuid(xc_interface *xch, uint32_t domain_id, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: xc_monitor_privileged_call
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_privileged_call(xc_interface *xch, uint32_t domain_id,\n
      \                              bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: xc_monitor_emul_unimplemented
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_emul_unimplemented(xc_interface *xch, uint32_t domain_id,\n
      \                                 bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domain_id
    - enable
    - sync
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: xc_monitor_vmexit
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_monitor_vmexit(xc_interface *xch, uint32_t domain_id, bool
      enable,\n                      bool sync)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_monitor.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xch
    - domain_id
    - enable
    argTypes:
    - xc_interface*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: xc_monitor_io
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_monitor.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_monitor_io(xc_interface *xch, uint32_t domain_id, bool enable)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xc_clear_last_error
      Src: /src/xen/tools/libs/ctrl/xc_private.c:35,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/ctrl/xc_private.c:43,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_private.c:48,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:51,1
    - Dst: xencall_open
      Src: /src/xen/tools/libs/ctrl/xc_private.c:59,1
    - Dst: xenforeignmemory_open
      Src: /src/xen/tools/libs/ctrl/xc_private.c:64,1
    - Dst: xendevicemodel_open
      Src: /src/xen/tools/libs/ctrl/xc_private.c:68,1
    - Dst: xenforeignmemory_close
      Src: /src/xen/tools/libs/ctrl/xc_private.c:75,1
    - Dst: xencall_close
      Src: /src/xen/tools/libs/ctrl/xc_private.c:76,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:77,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_private.c:78,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - logger
    - dombuild_logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 80
    functionName: xc_interface_open
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 16
    functionsReached:
    - xencall_close
    - xencall_open
    - xtl_logger_destroy
    - PERROR
    - xtl_createlogger_stdiostream
    - xc_clear_last_error
    - xendevicemodel_open
    - free
    - malloc
    - xenforeignmemory_open
    - xenforeignmemory_close
    linkageType: ''
    returnType: struct xc_interface_core
    signature: "struct xc_interface_core *xc_interface_open(xentoollog_logger *logger,\n
      \                                           xentoollog_logger *dombuild_logger,\n
      \                                           unsigned open_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xencall_close
      Src: /src/xen/tools/libs/ctrl/xc_private.c:89,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:90,1
    - Dst: xenforeignmemory_close
      Src: /src/xen/tools/libs/ctrl/xc_private.c:92,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:93,1
    - Dst: xendevicemodel_close
      Src: /src/xen/tools/libs/ctrl/xc_private.c:95,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:96,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:98,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:99,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_private.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: xc_interface_close
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 11
    functionsReached:
    - xencall_close
    - xtl_logger_destroy
    - PERROR
    - free
    - xendevicemodel_close
    - xenforeignmemory_close
    linkageType: ''
    returnType: int
    signature: int xc_interface_close(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: xc_interface_xcall_handle
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xencall_handle
    signature: xencall_handle *xc_interface_xcall_handle(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: xc_interface_fmem_handle
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xenforeignmemory_handle
    signature: struct xenforeignmemory_handle *xc_interface_fmem_handle(xc_interface
      *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: xc_interface_dmod_handle
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xendevicemodel_handle
    signature: struct xendevicemodel_handle *xc_interface_dmod_handle(xc_interface
      *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: xc_get_last_error
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: xc_error
    signature: xc_error *xc_get_last_error(xc_interface *xch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: xc_clear_last_error
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xc_clear_last_error(xc_interface *xch)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: xc_error_code_to_desc
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xc_error_code_to_desc(int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/ctrl/xc_private.c:167,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:169,1
    - Dst: vsnprintf
      Src: /src/xen/tools/libs/ctrl/xc_private.c:180,1
    - Dst: xtl_log
      Src: /src/xen/tools/libs/ctrl/xc_private.c:183,1
    - Dst: xc_error_code_to_desc
      Src: /src/xen/tools/libs/ctrl/xc_private.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - xch
    - lg
    - level
    - code
    - fmt
    - args
    argTypes:
    - xc_interface*
    - xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 188
    functionName: xc_reportv
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached:
    - xc_error_code_to_desc
    - vsnprintf
    - strlen
    - xtl_log
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void xc_reportv(xc_interface *xch, xentoollog_logger *lg,\n                xentoollog_level
      level, int code,\n                const char *fmt, va_list args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/ctrl/xc_private.c:193,1
    - Dst: xc_reportv
      Src: /src/xen/tools/libs/ctrl/xc_private.c:194,1
    - Dst: va_end
      Src: /src/xen/tools/libs/ctrl/xc_private.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - xch
    - lg
    - level
    - code
    - fmt
    argTypes:
    - xc_interface*
    - xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: xc_report
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached:
    - va_start
    - va_end
    - xc_reportv
    linkageType: ''
    returnType: void
    signature: "void xc_report(xc_interface *xch, xentoollog_logger *lg,\n               xentoollog_level
      level, int code, const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/libs/ctrl/xc_private.c:201,1
    - Dst: xc_reportv
      Src: /src/xen/tools/libs/ctrl/xc_private.c:202,1
    - Dst: va_end
      Src: /src/xen/tools/libs/ctrl/xc_private.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - xch
    - code
    - fmt
    argTypes:
    - xc_interface*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 3
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: xc_report_error
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - xc_reportv
    linkageType: ''
    returnType: void
    signature: void xc_report_error(xc_interface *xch, int code, const char *fmt,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - doing
    argTypes:
    - xc_interface*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: xc_set_progress_prefix
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xc_set_progress_prefix(xc_interface *xch, const char *doing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/ctrl/xc_private.c:216,1
    - Dst: xtl_progress
      Src: /src/xen/tools/libs/ctrl/xc_private.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xch
    - doing
    argTypes:
    - xc_interface*
    - char*
    assertStmts:
    - condition: (doing)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/xen/tools/libs/ctrl/xc_private.c
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: xc_report_progress_single
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - assert
    - xtl_progress
    linkageType: ''
    returnType: void
    signature: void xc_report_progress_single(xc_interface *xch, const char *doing)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/ctrl/xc_private.c:223,1
    - Dst: xtl_progress
      Src: /src/xen/tools/libs/ctrl/xc_private.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xch
    - done
    - total
    argTypes:
    - xc_interface*
    - unsigned long
    - unsigned long
    assertStmts:
    - condition: (xch->currently_progress_reporting)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/xen/tools/libs/ctrl/xc_private.c
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: xc_report_progress_step
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached:
    - assert
    - xtl_progress
    linkageType: ''
    returnType: void
    signature: "void xc_report_progress_step(xc_interface *xch,\n                             unsigned
      long done, unsigned long total)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:233,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:234,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_private.c:239,1
    - Dst: do_domctl_retry_efault
      Src: /src/xen/tools/libs/ctrl/xc_private.c:240,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - xch
    - dom
    - num
    - arr
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned int
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: xc_get_pfn_type_batch
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 3
    functionsReached:
    - xc_hypercall_bounce_post
    - DECLARE_HYPERCALL_BOUNCE
    - do_domctl_retry_efault
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_get_pfn_type_batch(xc_interface *xch, uint32_t dom,\n                          unsigned
      int num, xen_pfn_t *arr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:251,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:254,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:256,1
    - Dst: xencall4
      Src: /src/xen/tools/libs/ctrl/xc_private.c:260,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.c:261,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - xch
    - op
    - nr_ops
    - dom
    argTypes:
    - xc_interface*
    - struct mmuext_op*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: xc_mmuext_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 3
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - xencall4
    - HYPERCALL_BUFFER_AS_ARG
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_mmuext_op(\n    xc_interface *xch,\n    struct mmuext_op *op,\n
      \   unsigned int nr_ops,\n    uint32_t dom)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_NAMED_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:273,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:278,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:280,1
    - Dst: xencall4
      Src: /src/xen/tools/libs/ctrl/xc_private.c:285,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.c:286,1
    - Dst: ERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:290,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - xch
    - mmu
    argTypes:
    - xc_interface*
    - struct xc_mmu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 300
    functionName: flush_mmu_updates
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - ERROR
    - xencall4
    - HYPERCALL_BUFFER_AS_ARG
    - DECLARE_NAMED_HYPERCALL_BOUNCE
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: int flush_mmu_updates(xc_interface *xch, struct xc_mmu *mmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_private.c:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - subject
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: xc_alloc_mmu_updates
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - malloc
    linkageType: ''
    returnType: struct xc_mmu
    signature: struct xc_mmu *xc_alloc_mmu_updates(xc_interface *xch, unsigned int
      subject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_mmu_updates
      Src: /src/xen/tools/libs/ctrl/xc_private.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - xch
    - mmu
    - ptr
    - val
    argTypes:
    - xc_interface*
    - struct xc_mmu*
    - unsigned long long
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 322
    functionName: xc_add_mmu_update
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - flush_mmu_updates
    linkageType: ''
    returnType: int
    signature: "int xc_add_mmu_update(xc_interface *xch, struct xc_mmu *mmu,\n                      unsigned
      long long ptr, unsigned long long val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_mmu_updates
      Src: /src/xen/tools/libs/ctrl/xc_private.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - mmu
    argTypes:
    - xc_interface*
    - struct xc_mmu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: xc_flush_mmu_updates
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - flush_mmu_updates
    linkageType: ''
    returnType: int
    signature: int xc_flush_mmu_updates(xc_interface *xch, struct xc_mmu *mmu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:331,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:334,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:336,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.c:352,1
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:354,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:357,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:359,1
    - Dst: do_multicall_op
      Src: /src/xen/tools/libs/ctrl/xc_private.c:363,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/libs/ctrl/xc_private.c:363,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:365,1
    - Dst: xencall2L
      Src: /src/xen/tools/libs/ctrl/xc_private.c:379,1
    - Dst: HYPERCALL_BUFFER_AS_ARG
      Src: /src/xen/tools/libs/ctrl/xc_private.c:380,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - xch
    - cmd
    - arg
    - len
    argTypes:
    - xc_interface*
    - unsigned int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 385
    functionName: xc_memory_op
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 24
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - DECLARE_HYPERCALL_BOUNCE
    - HYPERCALL_BUFFER_AS_ARG
    - xencall2L
    - do_multicall_op
    - HYPERCALL_BUFFER
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: long
    signature: long xc_memory_op(xc_interface *xch, unsigned int cmd, void *arg, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_private.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - xch
    - max_mfn
    argTypes:
    - xc_interface*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: xc_maximum_ram_page
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 3
    functionsReached:
    - xc_memory_op
    linkageType: ''
    returnType: int
    signature: int xc_maximum_ram_page(xc_interface *xch, unsigned long *max_mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_private.c:406,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - xch
    - domid
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 412
    functionName: xc_domain_get_cpu_usage
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - do_domctl
    - PERROR
    linkageType: ''
    returnType: long long
    signature: long long xc_domain_get_cpu_usage(xc_interface *xch, uint32_t domid,
      int vcpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BOUNCE
      Src: /src/xen/tools/libs/ctrl/xc_private.c:419,1
    - Dst: xc_hypercall_bounce_pre
      Src: /src/xen/tools/libs/ctrl/xc_private.c:424,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/ctrl/xc_private.c:426,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/libs/ctrl/xc_private.c:430,1
    - Dst: xc_memory_op
      Src: /src/xen/tools/libs/ctrl/xc_private.c:431,1
    - Dst: xc_hypercall_bounce_post
      Src: /src/xen/tools/libs/ctrl/xc_private.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - xch
    - max_extents
    - extent_start
    argTypes:
    - xc_interface*
    - unsigned long
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 440
    functionName: xc_machphys_mfn_list
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 2
    functionsReached:
    - xc_hypercall_bounce_post
    - PERROR
    - xc_memory_op
    - DECLARE_HYPERCALL_BOUNCE
    - set_xen_guest_handle
    - xc_hypercall_bounce_pre
    linkageType: ''
    returnType: int
    signature: "int xc_machphys_mfn_list(xc_interface *xch,\n\t\t\t unsigned long
      max_extents,\n\t\t\t xen_pfn_t *extent_start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/ctrl/xc_private.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - xch
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: xc_get_tot_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: long
    signature: long xc_get_tot_pages(xc_interface *xch, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/ctrl/xc_private.c:457,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:461,1
    - Dst: munmap
      Src: /src/xen/tools/libs/ctrl/xc_private.c:462,1
    - Dst: xc_domain_cacheflush
      Src: /src/xen/tools/libs/ctrl/xc_private.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domid
    - dst_pfn
    - src_page
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: xc_copy_to_domain_page
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - munmap
    - xc_map_foreign_range
    - memcpy
    - xc_domain_cacheflush
    linkageType: ''
    returnType: int
    signature: "int xc_copy_to_domain_page(xc_interface *xch,\n                           uint32_t
      domid,\n                           unsigned long dst_pfn,\n                           const
      char *src_page)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/ctrl/xc_private.c:473,1
    - Dst: memset
      Src: /src/xen/tools/libs/ctrl/xc_private.c:477,1
    - Dst: munmap
      Src: /src/xen/tools/libs/ctrl/xc_private.c:478,1
    - Dst: xc_domain_cacheflush
      Src: /src/xen/tools/libs/ctrl/xc_private.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - xch
    - domid
    - dst_pfn
    - num
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: xc_clear_domain_pages
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached:
    - memset
    - munmap
    - xc_map_foreign_range
    - xc_domain_cacheflush
    linkageType: ''
    returnType: int
    signature: "int xc_clear_domain_pages(xc_interface *xch,\n                          uint32_t
      domid,\n                          unsigned long dst_pfn,\n                          int
      num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_private.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - domctl
    argTypes:
    - xc_interface*
    - struct xen_domctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: xc_domctl
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 6
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: int xc_domctl(xc_interface *xch, struct xen_domctl *domctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_sysctl
      Src: /src/xen/tools/libs/ctrl/xc_private.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xch
    - sysctl
    argTypes:
    - xc_interface*
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: xc_sysctl
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 30
    functionsReached:
    - do_sysctl
    linkageType: ''
    returnType: int
    signature: int xc_sysctl(xc_interface *xch, struct xen_sysctl *sysctl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_decrease_reservation_exact
      Src: /src/xen/tools/libs/ctrl/xc_private.c:499,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.c:502,1
    - Dst: xc_domain_increase_reservation_exact
      Src: /src/xen/tools/libs/ctrl/xc_private.c:506,1
    - Dst: XENMEMF_address_bits
      Src: /src/xen/tools/libs/ctrl/xc_private.c:507,1
    - Dst: DPRINTF
      Src: /src/xen/tools/libs/ctrl/xc_private.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - xch
    - domid
    - mfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 514
    functionName: xc_make_page_below_4G
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 1
    functionsReached:
    - xc_domain_decrease_reservation_exact
    - XENMEMF_address_bits
    - DPRINTF
    - xc_domain_increase_reservation_exact
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long xc_make_page_below_4G(\n    xc_interface *xch, uint32_t
      domid, unsigned long mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_private.c:519,1
    - Dst: pthread_setspecific
      Src: /src/xen/tools/libs/ctrl/xc_private.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 521
    functionName: _xc_clean_errbuf
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - free
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void _xc_clean_errbuf(void * m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/xen/tools/libs/ctrl/xc_private.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: _xc_init_errbuf
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - pthread_key_create
    linkageType: ''
    returnType: void
    signature: void _xc_init_errbuf(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/xen/tools/libs/ctrl/xc_private.c:533,1
    - Dst: pthread_once
      Src: /src/xen/tools/libs/ctrl/xc_private.c:542,1
    - Dst: pthread_getspecific
      Src: /src/xen/tools/libs/ctrl/xc_private.c:544,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_private.c:546,1
    - Dst: pthread_setspecific
      Src: /src/xen/tools/libs/ctrl/xc_private.c:549,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/ctrl/xc_private.c:556,1
    - Dst: strerror
      Src: /src/xen/tools/libs/ctrl/xc_private.c:557,1
    - Dst: strncpy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:558,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/ctrl/xc_private.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - xch
    - errcode
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 564
    functionName: xc_strerror
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    - malloc
    - pthread_mutex_lock
    - strncpy
    - pthread_mutex_unlock
    - strerror
    - pthread_once
    - pthread_setspecific
    linkageType: ''
    returnType: char
    signature: char *xc_strerror(xc_interface *xch, int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - lp
    - nbits
    argTypes:
    - uint8_t*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 579
    functionName: bitmap_64_to_byte
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitmap_64_to_byte(uint8_t *bp, const uint64_t *lp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - lp
    - bp
    - nbits
    argTypes:
    - uint64_t*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 594
    functionName: bitmap_byte_to_64
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitmap_byte_to_64(uint64_t *lp, const uint8_t *bp, int nbits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/libs/ctrl/xc_private.c:603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 614
    functionName: read_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 3
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int read_exact(int fd, void *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/libs/ctrl/xc_private.c:623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 632
    functionName: write_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 3
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int write_exact(int fd, const void *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_exact
      Src: /src/xen/tools/libs/ctrl/xc_private.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - iov
    - iovcnt
    argTypes:
    - int
    - struct iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 650
    functionName: writev_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 4
    functionsReached:
    - write_exact
    linkageType: ''
    returnType: int
    signature: int writev_exact(int fd, const struct iovec *iov, int iovcnt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: writev
      Src: /src/xen/tools/libs/ctrl/xc_private.c:671,1
    - Dst: min
      Src: /src/xen/tools/libs/ctrl/xc_private.c:671,1
    - Dst: malloc
      Src: /src/xen/tools/libs/ctrl/xc_private.c:693,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_private.c:701,1
    - Dst: free
      Src: /src/xen/tools/libs/ctrl/xc_private.c:714,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - fd
    - iov
    - iovcnt
    argTypes:
    - int
    - struct iovec*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 717
    functionName: writev_exact
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 4
    functionsReached:
    - free
    - malloc
    - writev
    - min
    - memcpy
    linkageType: ''
    returnType: int
    signature: int writev_exact(int fd, const struct iovec *iov, int iovcnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 727
    functionName: xc_ffs8
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xc_ffs8(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_ffs8
      Src: /src/xen/tools/libs/ctrl/xc_private.c:732,1
    - Dst: xc_ffs8
      Src: /src/xen/tools/libs/ctrl/xc_private.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: xc_ffs16
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - xc_ffs8
    linkageType: ''
    returnType: int
    signature: int xc_ffs16(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_ffs16
      Src: /src/xen/tools/libs/ctrl/xc_private.c:738,1
    - Dst: xc_ffs16
      Src: /src/xen/tools/libs/ctrl/xc_private.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: xc_ffs32
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - xc_ffs16
    linkageType: ''
    returnType: int
    signature: int xc_ffs32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_ffs32
      Src: /src/xen/tools/libs/ctrl/xc_private.c:744,1
    - Dst: xc_ffs32
      Src: /src/xen/tools/libs/ctrl/xc_private.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: xc_ffs64
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_private.c
    functionUses: 0
    functionsReached:
    - xc_ffs32
    linkageType: ''
    returnType: int
    signature: int xc_ffs64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: xc_vmtrace_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_enable(\n    xc_interface *xch, uint32_t domid, uint32_t
      vcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: xc_vmtrace_disable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_disable(\n    xc_interface *xch, uint32_t domid, uint32_t
      vcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - vcpu
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: xc_vmtrace_reset_and_enable
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_reset_and_enable(\n    xc_interface *xch, uint32_t
      domid, uint32_t vcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - xch
    - domid
    - vcpu
    - pos
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: xc_vmtrace_output_position
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_output_position(\n    xc_interface *xch, uint32_t domid,
      uint32_t vcpu, uint64_t *pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - xch
    - domid
    - vcpu
    - key
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: xc_vmtrace_get_option
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_get_option(\n    xc_interface *xch, uint32_t domid,
      uint32_t vcpu,\n    uint64_t key, uint64_t *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_domctl
      Src: /src/xen/tools/libs/ctrl/xc_vmtrace.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xch
    - domid
    - vcpu
    - key
    - value
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: xc_vmtrace_set_option
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_vmtrace.c
    functionUses: 0
    functionsReached:
    - do_domctl
    linkageType: ''
    returnType: int
    signature: "int xc_vmtrace_set_option(\n    xc_interface *xch, uint32_t domid,
      uint32_t vcpu,\n    uint64_t key, uint64_t value)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:37,1
    - Dst: xc_domain_hvm_getcontext_partial
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:43,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:44,1
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:54,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:56,1
    - Dst: xen_cr3_to_pfn_x86_64
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:60,1
    - Dst: xen_cr3_to_pfn_x86_32
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:64,1
    - Dst: xc_ffs64
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:83,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:84,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:88,1
    - Dst: munmap
      Src: /src/xen/tools/libs/ctrl/xc_pagetab.c:89,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 4
    argNames:
    - xch
    - dom
    - vcpu
    - virt
    argTypes:
    - xc_interface*
    - uint32_t
    - int
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 102
    functionName: xc_translate_foreign_address
    functionSourceFile: /src/xen/tools/libs/ctrl/xc_pagetab.c
    functionUses: 0
    functionsReached:
    - xen_cr3_to_pfn_x86_64
    - xc_domain_hvm_getcontext_partial
    - munmap
    - xc_vcpu_getcontext
    - xc_domain_get_guest_width
    - xc_ffs64
    - xc_map_foreign_range
    - xen_cr3_to_pfn_x86_32
    - xc_domain_getinfo_single
    - memcpy
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long xc_translate_foreign_address(xc_interface *xch, uint32_t
      dom,\n                                           int vcpu, unsigned long long
      virt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:37,1
    - Dst: assert
      Src: /src/xen/tools/libs/toolcore/handlereg.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!e)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libs/toolcore/handlereg.c
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: lock
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 64
    functionsReached:
    - pthread_mutex_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:42,1
    - Dst: assert
      Src: /src/xen/tools/libs/toolcore/handlereg.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!e)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/xen/tools/libs/toolcore/handlereg.c
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: unlock
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 44
    functionsReached:
    - pthread_mutex_unlock
    - assert
    linkageType: ''
    returnType: void
    signature: void unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:47,1
    - Dst: XEN_LIST_INSERT_HEAD
      Src: /src/xen/tools/libs/toolcore/handlereg.c:48,1
    - Dst: unlock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ah
    argTypes:
    - Xentoolcore__Active_Handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: xentoolcore__register_active_handle
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 5
    functionsReached:
    - lock
    - XEN_LIST_INSERT_HEAD
    - unlock
    linkageType: ''
    returnType: void
    signature: void xentoolcore__register_active_handle(Xentoolcore__Active_Handle
      *ah)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:53,1
    - Dst: XEN_LIST_REMOVE
      Src: /src/xen/tools/libs/toolcore/handlereg.c:54,1
    - Dst: unlock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ah
    argTypes:
    - Xentoolcore__Active_Handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: xentoolcore__deregister_active_handle
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 9
    functionsReached:
    - XEN_LIST_REMOVE
    - lock
    - unlock
    linkageType: ''
    returnType: void
    signature: void xentoolcore__deregister_active_handle(Xentoolcore__Active_Handle
      *ah)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:62,1
    - Dst: XEN_LIST_FOREACH
      Src: /src/xen/tools/libs/toolcore/handlereg.c:63,1
    - Dst: Xentoolcore__Active_Handle*::restrict_callback
      Src: /src/xen/tools/libs/toolcore/handlereg.c:64,1
    - Dst: unlock
      Src: /src/xen/tools/libs/toolcore/handlereg.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: xentoolcore_restrict_all
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 0
    functionsReached:
    - lock
    - unlock
    - Xentoolcore__Active_Handle*::restrict_callback
    - XEN_LIST_FOREACH
    linkageType: ''
    returnType: int
    signature: int xentoolcore_restrict_all(domid_t domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/toolcore/handlereg.c:81,1
    - Dst: dup2
      Src: /src/xen/tools/libs/toolcore/handlereg.c:84,1
    - Dst: close
      Src: /src/xen/tools/libs/toolcore/handlereg.c:87,1
    - Dst: close
      Src: /src/xen/tools/libs/toolcore/handlereg.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: xentoolcore__restrict_by_dup2_null
    functionSourceFile: /src/xen/tools/libs/toolcore/handlereg.c
    functionUses: 3
    functionsReached:
    - open
    - dup2
    - close
    linkageType: ''
    returnType: int
    signature: int xentoolcore__restrict_by_dup2_null(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: rd_prod
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rd_prod(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: _rd_cons
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t * _rd_cons(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: rd_cons
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rd_cons(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: _wr_prod
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t * _wr_prod(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: wr_prod
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wr_prod(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: wr_cons
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wr_cons(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: rd_ring
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * rd_ring(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: wr_ring
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * wr_ring(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: wr_ring_size
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t wr_ring_size(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: rd_ring_size
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rd_ring_size(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_or_and_fetch
      Src: /src/xen/tools/libs/vchan/io.c:99,1
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctrl
    - bit
    argTypes:
    - struct libxenvchan*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: request_notify
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - __sync_or_and_fetch
    - xen_mb
    linkageType: ''
    returnType: void
    signature: void request_notify(struct libxenvchan *ctrl, uint8_t bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:106,1
    - Dst: __sync_fetch_and_and
      Src: /src/xen/tools/libs/vchan/io.c:108,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/libs/vchan/io.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctrl
    - bit
    argTypes:
    - struct libxenvchan*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: send_notify
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_notify
    - __sync_fetch_and_and
    - xen_mb
    linkageType: ''
    returnType: int
    signature: int send_notify(struct libxenvchan *ctrl, uint8_t bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rd_prod
      Src: /src/xen/tools/libs/vchan/io.c:121,1
    - Dst: rd_cons
      Src: /src/xen/tools/libs/vchan/io.c:121,1
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:122,1
    - Dst: rd_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: raw_get_data_ready
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - rd_ring_size
    - rd_prod
    - rd_cons
    - xen_mb
    linkageType: ''
    returnType: int
    signature: int raw_get_data_ready(struct libxenvchan *ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_get_data_ready
      Src: /src/xen/tools/libs/vchan/io.c:135,1
    - Dst: request_notify
      Src: /src/xen/tools/libs/vchan/io.c:139,1
    - Dst: raw_get_data_ready
      Src: /src/xen/tools/libs/vchan/io.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctrl
    - request
    argTypes:
    - struct libxenvchan*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: fast_get_data_ready
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - request_notify
    - raw_get_data_ready
    linkageType: ''
    returnType: int
    signature: int fast_get_data_ready(struct libxenvchan *ctrl, size_t request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_notify
      Src: /src/xen/tools/libs/vchan/io.c:153,1
    - Dst: raw_get_data_ready
      Src: /src/xen/tools/libs/vchan/io.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: libxenvchan_data_ready
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - request_notify
    - raw_get_data_ready
    linkageType: ''
    returnType: int
    signature: int libxenvchan_data_ready(struct libxenvchan *ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wr_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:163,1
    - Dst: wr_prod
      Src: /src/xen/tools/libs/vchan/io.c:163,1
    - Dst: wr_cons
      Src: /src/xen/tools/libs/vchan/io.c:163,1
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:164,1
    - Dst: wr_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: raw_get_buffer_space
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - wr_ring_size
    - wr_prod
    - wr_cons
    - xen_mb
    linkageType: ''
    returnType: int
    signature: int raw_get_buffer_space(struct libxenvchan *ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:177,1
    - Dst: request_notify
      Src: /src/xen/tools/libs/vchan/io.c:181,1
    - Dst: raw_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctrl
    - request
    argTypes:
    - struct libxenvchan*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: fast_get_buffer_space
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - request_notify
    - raw_get_buffer_space
    linkageType: ''
    returnType: int
    signature: int fast_get_buffer_space(struct libxenvchan *ctrl, size_t request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: request_notify
      Src: /src/xen/tools/libs/vchan/io.c:195,1
    - Dst: raw_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: libxenvchan_buffer_space
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - request_notify
    - raw_get_buffer_space
    linkageType: ''
    returnType: int
    signature: int libxenvchan_buffer_space(struct libxenvchan *ctrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/libs/vchan/io.c:201,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/vchan/io.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: libxenvchan_wait
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - xenevtchn_pending
    linkageType: ''
    returnType: int
    signature: int libxenvchan_wait(struct libxenvchan *ctrl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wr_prod
      Src: /src/xen/tools/libs/vchan/io.c:215,1
    - Dst: wr_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:215,1
    - Dst: wr_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:216,1
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:219,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/vchan/io.c:220,1
    - Dst: wr_ring
      Src: /src/xen/tools/libs/vchan/io.c:220,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/vchan/io.c:224,1
    - Dst: wr_ring
      Src: /src/xen/tools/libs/vchan/io.c:224,1
    - Dst: xen_wmb
      Src: /src/xen/tools/libs/vchan/io.c:226,1
    - Dst: wr_prod
      Src: /src/xen/tools/libs/vchan/io.c:227,1
    - Dst: send_notify
      Src: /src/xen/tools/libs/vchan/io.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: do_send
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - send_notify
    - wr_prod
    - wr_ring
    - xen_wmb
    - xen_mb
    - wr_ring_size
    - memcpy
    linkageType: ''
    returnType: int
    signature: int do_send(struct libxenvchan *ctrl, const void *data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/libs/vchan/io.c:240,1
    - Dst: fast_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:242,1
    - Dst: do_send
      Src: /src/xen/tools/libs/vchan/io.c:244,1
    - Dst: wr_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:247,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/libs/vchan/io.c:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: libxenvchan_send
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - do_send
    - libxenvchan_is_open
    - fast_get_buffer_space
    - libxenvchan_wait
    - wr_ring_size
    linkageType: ''
    returnType: int
    signature: int libxenvchan_send(struct libxenvchan *ctrl, const void *data, size_t
      size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/libs/vchan/io.c:257,1
    - Dst: fast_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:262,1
    - Dst: do_send
      Src: /src/xen/tools/libs/vchan/io.c:266,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/libs/vchan/io.c:269,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/libs/vchan/io.c:271,1
    - Dst: fast_get_buffer_space
      Src: /src/xen/tools/libs/vchan/io.c:275,1
    - Dst: do_send
      Src: /src/xen/tools/libs/vchan/io.c:280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 282
    functionName: libxenvchan_write
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - fast_get_buffer_space
    - do_send
    - libxenvchan_wait
    - libxenvchan_is_open
    linkageType: ''
    returnType: int
    signature: int libxenvchan_write(struct libxenvchan *ctrl, const void *data, size_t
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rd_cons
      Src: /src/xen/tools/libs/vchan/io.c:291,1
    - Dst: rd_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:291,1
    - Dst: rd_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:292,1
    - Dst: xen_rmb
      Src: /src/xen/tools/libs/vchan/io.c:295,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/vchan/io.c:296,1
    - Dst: rd_ring
      Src: /src/xen/tools/libs/vchan/io.c:296,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/vchan/io.c:300,1
    - Dst: rd_ring
      Src: /src/xen/tools/libs/vchan/io.c:300,1
    - Dst: xen_mb
      Src: /src/xen/tools/libs/vchan/io.c:302,1
    - Dst: rd_cons
      Src: /src/xen/tools/libs/vchan/io.c:303,1
    - Dst: send_notify
      Src: /src/xen/tools/libs/vchan/io.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: do_recv
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - send_notify
    - rd_ring
    - xen_rmb
    - rd_ring_size
    - rd_cons
    - xen_mb
    - memcpy
    linkageType: ''
    returnType: int
    signature: int do_recv(struct libxenvchan *ctrl, void *data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fast_get_data_ready
      Src: /src/xen/tools/libs/vchan/io.c:316,1
    - Dst: do_recv
      Src: /src/xen/tools/libs/vchan/io.c:318,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/libs/vchan/io.c:319,1
    - Dst: rd_ring_size
      Src: /src/xen/tools/libs/vchan/io.c:323,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/libs/vchan/io.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: libxenvchan_recv
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - do_recv
    - libxenvchan_is_open
    - rd_ring_size
    - fast_get_data_ready
    - libxenvchan_wait
    linkageType: ''
    returnType: int
    signature: int libxenvchan_recv(struct libxenvchan *ctrl, void *data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fast_get_data_ready
      Src: /src/xen/tools/libs/vchan/io.c:333,1
    - Dst: do_recv
      Src: /src/xen/tools/libs/vchan/io.c:337,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/libs/vchan/io.c:338,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/libs/vchan/io.c:342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - ctrl
    - data
    - size
    argTypes:
    - struct libxenvchan*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 345
    functionName: libxenvchan_read
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - fast_get_data_ready
    - libxenvchan_wait
    - do_recv
    - libxenvchan_is_open
    linkageType: ''
    returnType: int
    signature: int libxenvchan_read(struct libxenvchan *ctrl, void *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: libxenvchan_is_open
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxenvchan_is_open(struct libxenvchan* ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/libs/vchan/io.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: libxenvchan_fd_for_select
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_fd
    linkageType: ''
    returnType: int
    signature: int libxenvchan_fd_for_select(struct libxenvchan *ctrl)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/vchan/io.c:365,1
    - Dst: munmap
      Src: /src/xen/tools/libs/vchan/io.c:367,1
    - Dst: xengntshr_unshare
      Src: /src/xen/tools/libs/vchan/io.c:371,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/libs/vchan/io.c:374,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/libs/vchan/io.c:379,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/vchan/io.c:380,1
    - Dst: xengntshr_close
      Src: /src/xen/tools/libs/vchan/io.c:384,1
    - Dst: xengnttab_close
      Src: /src/xen/tools/libs/vchan/io.c:387,1
    - Dst: close_xs_srv
      Src: /src/xen/tools/libs/vchan/io.c:390,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/io.c:391,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 392
    functionName: libxenvchan_close
    functionSourceFile: /src/xen/tools/libs/vchan/io.c
    functionUses: 0
    functionsReached:
    - xengntshr_unshare
    - free
    - munmap
    - xengnttab_unmap
    - xengntshr_close
    - xenevtchn_notify
    - close_xs_srv
    - xengnttab_close
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void libxenvchan_close(struct libxenvchan *ctrl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xengntshr_share_page_notify
      Src: /src/xen/tools/libs/vchan/init.c:80,1
    - Dst: memset
      Src: /src/xen/tools/libs/vchan/init.c:87,1
    - Dst: xengntshr_share_pages
      Src: /src/xen/tools/libs/vchan/init.c:106,1
    - Dst: xengntshr_share_pages
      Src: /src/xen/tools/libs/vchan/init.c:120,1
    - Dst: xengntshr_unshare
      Src: /src/xen/tools/libs/vchan/init.c:130,1
    - Dst: xengntshr_unshare
      Src: /src/xen/tools/libs/vchan/init.c:132,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - ctrl
    - domain
    argTypes:
    - struct libxenvchan*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 137
    functionName: init_gnt_srv
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - memset
    - xengntshr_share_page_notify
    - xengntshr_share_pages
    - xengntshr_unshare
    linkageType: ''
    returnType: int
    signature: int init_gnt_srv(struct libxenvchan *ctrl, int domain)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_map_grant_ref_notify
      Src: /src/xen/tools/libs/vchan/init.c:144,1
    - Dst: xengnttab_map_domain_grant_refs
      Src: /src/xen/tools/libs/vchan/init.c:174,1
    - Dst: xengnttab_map_domain_grant_refs
      Src: /src/xen/tools/libs/vchan/init.c:192,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/libs/vchan/init.c:204,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/libs/vchan/init.c:207,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - ctrl
    - domain
    - ring_ref
    argTypes:
    - struct libxenvchan*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 212
    functionName: init_gnt_cli
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - xengnttab_unmap
    - xengnttab_map_domain_grant_refs
    - xengnttab_map_grant_ref_notify
    linkageType: ''
    returnType: int
    signature: int init_gnt_cli(struct libxenvchan *ctrl, int domain, uint32_t ring_ref)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/libs/vchan/init.c:219,1
    - Dst: xenevtchn_bind_unbound_port
      Src: /src/xen/tools/libs/vchan/init.c:223,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/vchan/init.c:228,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/libs/vchan/init.c:235,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/vchan/init.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ctrl
    - domain
    - logger
    argTypes:
    - struct libxenvchan*
    - int
    - struct xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 241
    functionName: init_evt_srv
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - xenevtchn_open
    - xenevtchn_unbind
    - xenevtchn_unmask
    - xenevtchn_bind_unbound_port
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: "int init_evt_srv(struct libxenvchan *ctrl, int domain,\n                        struct
      xentoollog_logger *logger)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/vchan/init.c:254,1
    - Dst: xs_open
      Src: /src/xen/tools/libs/vchan/init.c:258,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/vchan/init.c:261,1
    - Dst: atoi
      Src: /src/xen/tools/libs/vchan/init.c:266,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/libs/vchan/init.c:274,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:278,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:279,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/vchan/init.c:280,1
    - Dst: strlen
      Src: /src/xen/tools/libs/vchan/init.c:280,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/vchan/init.c:282,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:285,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:286,1
    - Dst: xs_write
      Src: /src/xen/tools/libs/vchan/init.c:287,1
    - Dst: strlen
      Src: /src/xen/tools/libs/vchan/init.c:287,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/libs/vchan/init.c:289,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/libs/vchan/init.c:292,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/init.c:299,1
    - Dst: xs_close
      Src: /src/xen/tools/libs/vchan/init.c:300,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - ctrl
    - domain
    - xs_base
    - ring_ref
    argTypes:
    - struct libxenvchan*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 243
    functionDepth: 6
    functionLinenumber: 243
    functionLinenumberEnd: 303
    functionName: init_xs_srv
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_write
    - xs_open
    - free
    - xs_set_permissions
    - xs_close
    - xs_transaction_start
    - xs_read
    - strlen
    - strdup
    - xs_transaction_end
    - atoi
    linkageType: ''
    returnType: int
    signature: int init_xs_srv(struct libxenvchan *ctrl, int domain, const char* xs_base,
      int ring_ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/libs/vchan/init.c:312,1
    - Dst: xs_rm
      Src: /src/xen/tools/libs/vchan/init.c:314,1
    - Dst: xs_close
      Src: /src/xen/tools/libs/vchan/init.c:315,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/init.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 6
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: close_xs_srv
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 1
    functionsReached:
    - free
    - xs_rm
    - xs_open
    - xs_close
    linkageType: ''
    returnType: void
    signature: void close_xs_srv(struct libxenvchan *ctrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - siz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: min_order
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int min_order(size_t siz)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/vchan/init.c:338,1
    - Dst: min_order
      Src: /src/xen/tools/libs/vchan/init.c:347,1
    - Dst: min_order
      Src: /src/xen/tools/libs/vchan/init.c:348,1
    - Dst: xengntshr_open
      Src: /src/xen/tools/libs/vchan/init.c:363,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/init.c:365,1
    - Dst: init_evt_srv
      Src: /src/xen/tools/libs/vchan/init.c:369,1
    - Dst: init_gnt_srv
      Src: /src/xen/tools/libs/vchan/init.c:371,1
    - Dst: init_xs_srv
      Src: /src/xen/tools/libs/vchan/init.c:374,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/libs/vchan/init.c:378,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 5
    argNames:
    - logger
    - domain
    - xs_path
    - left_min
    - right_min
    argTypes:
    - struct xentoollog_logger*
    - int
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 329
    functionDepth: 7
    functionLinenumber: 329
    functionLinenumberEnd: 380
    functionName: libxenvchan_server_init
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - free
    - xengntshr_open
    - init_evt_srv
    - malloc
    - init_xs_srv
    - min_order
    - libxenvchan_close
    - init_gnt_srv
    linkageType: ''
    returnType: struct libxenvchan
    signature: "struct libxenvchan *libxenvchan_server_init(struct xentoollog_logger
      *logger,\n                                            int domain, const char*
      xs_path,\n                                            size_t left_min, size_t
      right_min)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/libs/vchan/init.c:387,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/libs/vchan/init.c:391,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/libs/vchan/init.c:397,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/libs/vchan/init.c:404,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/libs/vchan/init.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ctrl
    - domain
    - logger
    argTypes:
    - struct libxenvchan*
    - int
    - struct xentoollog_logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 410
    functionName: init_evt_cli
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - xenevtchn_open
    - xenevtchn_unbind
    - xenevtchn_unmask
    - xenevtchn_bind_interdomain
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: "int init_evt_cli(struct libxenvchan *ctrl, int domain,\n                        struct
      xentoollog_logger *logger)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/vchan/init.c:416,1
    - Dst: xs_open
      Src: /src/xen/tools/libs/vchan/init.c:431,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:436,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/vchan/init.c:437,1
    - Dst: atoi
      Src: /src/xen/tools/libs/vchan/init.c:440,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/init.c:441,1
    - Dst: snprintf
      Src: /src/xen/tools/libs/vchan/init.c:444,1
    - Dst: xs_read
      Src: /src/xen/tools/libs/vchan/init.c:445,1
    - Dst: atoi
      Src: /src/xen/tools/libs/vchan/init.c:448,1
    - Dst: free
      Src: /src/xen/tools/libs/vchan/init.c:449,1
    - Dst: xengnttab_open
      Src: /src/xen/tools/libs/vchan/init.c:453,1
    - Dst: init_evt_cli
      Src: /src/xen/tools/libs/vchan/init.c:458,1
    - Dst: init_gnt_cli
      Src: /src/xen/tools/libs/vchan/init.c:462,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/libs/vchan/init.c:469,1
    - Dst: xs_close
      Src: /src/xen/tools/libs/vchan/init.c:473,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/libs/vchan/init.c:476,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 3
    argNames:
    - logger
    - domain
    - xs_path
    argTypes:
    - struct xentoollog_logger*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 479
    functionName: libxenvchan_client_init
    functionSourceFile: /src/xen/tools/libs/vchan/init.c
    functionUses: 0
    functionsReached:
    - snprintf
    - init_evt_cli
    - xs_open
    - init_gnt_cli
    - free
    - xs_close
    - malloc
    - xs_read
    - xengnttab_open
    - xenevtchn_notify
    - atoi
    - libxenvchan_close
    linkageType: ''
    returnType: struct libxenvchan
    signature: "struct libxenvchan *libxenvchan_client_init(struct xentoollog_logger
      *logger,\n                                            int domain, const char*
      xs_path)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/hypfs/core.c:48,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/hypfs/core.c:60,1
    - Dst: xencall_open
      Src: /src/xen/tools/libs/hypfs/core.c:65,1
    - Dst: xencall5
      Src: /src/xen/tools/libs/hypfs/core.c:70,1
    - Dst: xencall_close
      Src: /src/xen/tools/libs/hypfs/core.c:77,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/hypfs/core.c:78,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 81
    functionName: xenhypfs_open
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 1
    functionsReached:
    - xencall5
    - xencall_open
    - xencall_close
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - calloc
    - free
    linkageType: ''
    returnType: xenhypfs_handle
    signature: "xenhypfs_handle *xenhypfs_open(xentoollog_logger *logger,\n                               unsigned
      open_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xencall_close
      Src: /src/xen/tools/libs/hypfs/core.c:88,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/hypfs/core.c:89,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fshdl
    argTypes:
    - xenhypfs_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: xenhypfs_close
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 1
    functionsReached:
    - free
    - xencall_close
    - xtl_logger_destroy
    linkageType: ''
    returnType: int
    signature: int xenhypfs_close(xenhypfs_handle *fshdl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:105,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:112,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/hypfs/core.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - fshdl
    - path
    - path_buf
    argTypes:
    - xenhypfs_handle*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 123
    functionName: xenhypfs_get_pathbuf
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached:
    - xencall_alloc_buffer
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int xenhypfs_get_pathbuf(xenhypfs_handle *fshdl, const char *path,\n
      \                               char **path_buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/hypfs/core.c:133,1
    - Dst: inflateInit2
      Src: /src/xen/tools/libs/hypfs/core.c:139,1
    - Dst: inflate
      Src: /src/xen/tools/libs/hypfs/core.c:144,1
    - Dst: realloc
      Src: /src/xen/tools/libs/hypfs/core.c:149,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/hypfs/core.c:154,1
    - Dst: inflateEnd
      Src: /src/xen/tools/libs/hypfs/core.c:158,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:160,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - in_data
    - sz
    argTypes:
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 166
    functionName: xenhypfs_inflate
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached:
    - free
    - inflateInit2
    - malloc
    - inflate
    - inflateEnd
    - realloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *xenhypfs_inflate(void *in_data, size_t *sz)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - entry
    - dirent
    argTypes:
    - struct xen_hypfs_direntry*
    - struct xenhypfs_dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 209
    functionName: xenhypfs_set_attrs
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void xenhypfs_set_attrs(struct xen_hypfs_direntry *entry,\n                               struct
      xenhypfs_dirent *dirent)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_get_pathbuf
      Src: /src/xen/tools/libs/hypfs/core.c:222,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:230,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:232,1
    - Dst: xencall5
      Src: /src/xen/tools/libs/hypfs/core.c:239,1
    - Dst: malloc
      Src: /src/xen/tools/libs/hypfs/core.c:249,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/hypfs/core.c:252,1
    - Dst: strrchr
      Src: /src/xen/tools/libs/hypfs/core.c:254,1
    - Dst: calloc
      Src: /src/xen/tools/libs/hypfs/core.c:262,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:262,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:264,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/hypfs/core.c:270,1
    - Dst: xenhypfs_set_attrs
      Src: /src/xen/tools/libs/hypfs/core.c:271,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:275,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:276,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - fshdl
    - path
    - dirent
    argTypes:
    - xenhypfs_handle*
    - char*
    - struct xenhypfs_dirent**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 280
    functionName: xenhypfs_read_raw
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached:
    - xencall5
    - calloc
    - xenhypfs_get_pathbuf
    - free
    - xencall_free_buffer
    - malloc
    - strcpy
    - strlen
    - xenhypfs_set_attrs
    - strrchr
    - xencall_alloc_buffer
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *xenhypfs_read_raw(xenhypfs_handle *fshdl, const char *path,\n
      \                       struct xenhypfs_dirent **dirent)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_read_raw
      Src: /src/xen/tools/libs/hypfs/core.c:288,1
    - Dst: xenhypfs_inflate
      Src: /src/xen/tools/libs/hypfs/core.c:296,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:299,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:320,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:323,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:326,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:329,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:341,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:344,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:347,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/hypfs/core.c:350,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:363,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:364,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - fshdl
    - path
    argTypes:
    - xenhypfs_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 282
    functionDepth: 6
    functionLinenumber: 282
    functionLinenumberEnd: 368
    functionName: xenhypfs_read
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached:
    - free
    - xenhypfs_inflate
    - asprintf
    - xenhypfs_read_raw
    linkageType: ''
    returnType: char
    signature: char *xenhypfs_read(xenhypfs_handle *fshdl, const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_read_raw
      Src: /src/xen/tools/libs/hypfs/core.c:381,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:395,1
    - Dst: malloc
      Src: /src/xen/tools/libs/hypfs/core.c:403,1
    - Dst: xenhypfs_set_attrs
      Src: /src/xen/tools/libs/hypfs/core.c:412,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/hypfs/core.c:414,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:415,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:421,1
    - Dst: free
      Src: /src/xen/tools/libs/hypfs/core.c:422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - fshdl
    - path
    - num_entries
    argTypes:
    - xenhypfs_handle*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 370
    functionDepth: 6
    functionLinenumber: 370
    functionLinenumberEnd: 426
    functionName: xenhypfs_readdir
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 0
    functionsReached:
    - xenhypfs_read_raw
    - free
    - malloc
    - xenhypfs_set_attrs
    - strlen
    - strcpy
    linkageType: ''
    returnType: struct xenhypfs_dirent
    signature: "struct xenhypfs_dirent *xenhypfs_readdir(xenhypfs_handle *fshdl,\n
      \                                        const char *path,\n                                         unsigned
      int *num_entries)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_get_pathbuf
      Src: /src/xen/tools/libs/hypfs/core.c:437,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:445,1
    - Dst: xencall5
      Src: /src/xen/tools/libs/hypfs/core.c:451,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:470,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:471,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:472,1
    - Dst: xencall_alloc_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:473,1
    - Dst: strlen
      Src: /src/xen/tools/libs/hypfs/core.c:479,1
    - Dst: strcpy
      Src: /src/xen/tools/libs/hypfs/core.c:480,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/hypfs/core.c:485,1
    - Dst: strtoll
      Src: /src/xen/tools/libs/hypfs/core.c:497,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:509,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:509,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:509,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:510,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:510,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:512,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:512,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:512,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:513,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/hypfs/core.c:513,1
    - Dst: xencall5
      Src: /src/xen/tools/libs/hypfs/core.c:524,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:531,1
    - Dst: xencall_free_buffer
      Src: /src/xen/tools/libs/hypfs/core.c:532,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 97
    argCount: 3
    argNames:
    - fshdl
    - path
    - val
    argTypes:
    - xenhypfs_handle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 428
    functionDepth: 5
    functionLinenumber: 428
    functionLinenumberEnd: 535
    functionName: xenhypfs_write
    functionSourceFile: /src/xen/tools/libs/hypfs/core.c
    functionUses: 1
    functionsReached:
    - xencall5
    - xenhypfs_get_pathbuf
    - xencall_free_buffer
    - strcmp
    - strtoll
    - strcpy
    - strlen
    - xencall_alloc_buffer
    - strtoull
    linkageType: ''
    returnType: int
    signature: int xenhypfs_write(xenhypfs_handle *fshdl, const char *path, const
      char *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:30,1
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:34,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - report
    - report_source
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: xlu_cfg_init
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: XLU_Config
    signature: XLU_Config *xlu_cfg_init(FILE *report, const char *report_source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_yylex_init_extra
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:50,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:52,1
    - Dst: strerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - cfg
    argTypes:
    - CfgParseContext*
    - XLU_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: ctx_prep
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - xlu__cfg_yylex_init_extra
    linkageType: ''
    returnType: int
    signature: int ctx_prep(CfgParseContext *ctx, XLU_Config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_yylex_destroy
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: ctx_dispose
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - xlu__cfg_yylex_destroy
    linkageType: ''
    returnType: void
    signature: void ctx_dispose(CfgParseContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_yyset_lineno
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:67,1
    - Dst: xlu__cfg_yyparse
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:69,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:70,1
    - Dst: fputs
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CfgParseContext*
    assertStmts:
    - condition: (ctx->err)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: parse
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 13
    functionsReached:
    - xlu__cfg_yyparse
    - assert
    - fputs
    - xlu__cfg_yyset_lineno
    linkageType: ''
    returnType: void
    signature: void parse(CfgParseContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ctx_prep
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:86,1
    - Dst: fopen
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:89,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:92,1
    - Dst: strerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:93,1
    - Dst: xlu__cfg_yyrestart
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:97,1
    - Dst: parse
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:99,1
    - Dst: ctx_dispose
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:102,1
    - Dst: fclose
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - cfg
    - real_filename
    argTypes:
    - XLU_Config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 106
    functionName: xlu_cfg_readfile
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - fopen
    - ctx_dispose
    - ctx_prep
    - fclose
    - strerror
    - fprintf
    - xlu__cfg_yyrestart
    - parse
    linkageType: ''
    returnType: int
    signature: int xlu_cfg_readfile(XLU_Config *cfg, const char *real_filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ctx_prep
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:113,1
    - Dst: xlu__cfg_yy_scan_bytes
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:116,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:118,1
    - Dst: parse
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:124,1
    - Dst: xlu__cfg_yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:127,1
    - Dst: ctx_dispose
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cfg
    - data
    - length
    argTypes:
    - XLU_Config*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: xlu_cfg_readdata
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - ctx_dispose
    - ctx_prep
    - parse
    - fprintf
    - xlu__cfg_yy_scan_bytes
    - xlu__cfg_yy_delete_buffer
    linkageType: ''
    returnType: int
    signature: int xlu_cfg_readdata(XLU_Config *cfg, const char *data, int length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:141,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:145,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:146,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - XLU_ConfigValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: xlu__cfg_value_free
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 1
    functionsReached:
    - free
    - xlu__cfg_value_free
    linkageType: ''
    returnType: void
    signature: void xlu__cfg_value_free(XLU_ConfigValue *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:153,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:154,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - XLU_ConfigSetting*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: xlu__cfg_set_free
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__cfg_value_free
    linkageType: ''
    returnType: void
    signature: void xlu__cfg_set_free(XLU_ConfigSetting *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_set_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:166,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:168,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - XLU_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: xlu_cfg_destroy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__cfg_set_free
    linkageType: ''
    returnType: void
    signature: void xlu_cfg_destroy(XLU_Config *cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - n
    argTypes:
    - XLU_Config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: find
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: XLU_ConfigSetting
    signature: XLU_ConfigSetting *find(const XLU_Config *cfg, const char *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:187,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - cfg
    - n
    - set_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - XLU_ConfigSetting**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: find_atom
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - fprintf
    - find
    linkageType: ''
    returnType: int
    signature: "int find_atom(const XLU_Config *cfg, const char *n,\n                     XLU_ConfigSetting
      **set_r, int dont_warn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - XLU_ConfigValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: xlu_cfg_value_type
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum XLU_ConfigValueType
    signature: enum XLU_ConfigValueType xlu_cfg_value_type(const XLU_ConfigValue *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cfg
    - value
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - XLU_ConfigValue*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: xlu_cfg_value_get_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_value_get_string(const XLU_Config *cfg, XLU_ConfigValue
      *value,\n                             char **value_r, int dont_warn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cfg
    - value
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - XLU_ConfigValue*
    - XLU_ConfigList**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: xlu_cfg_value_get_list
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_value_get_list(const XLU_Config *cfg, XLU_ConfigValue
      *value,\n                           XLU_ConfigList **value_r, int dont_warn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - XLU_ConfigList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: xlu_cfg_get_listitem2
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XLU_ConfigValue
    signature: "XLU_ConfigValue *xlu_cfg_get_listitem2(const XLU_ConfigList *list,\n
      \                                      int entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_atom
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cfg
    - n
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: xlu_cfg_get_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - find_atom
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_string(const XLU_Config *cfg, const char *n,\n                       const
      char **value_r, int dont_warn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_atom
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:264,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:265,1
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cfg
    - n
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 268
    functionName: xlu_cfg_replace_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    - find_atom
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_replace_string(const XLU_Config *cfg, const char *n,\n
      \                          char **value_r, int dont_warn)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: find_atom
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:278,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:281,1
    - Dst: strtol
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:287,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:291,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:293,1
    - Dst: strerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:296,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:301,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:308,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:315,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - cfg
    - n
    - min
    - max
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - long
    - long
    - long*
    - int
    assertStmts:
    - condition: (e==EINVAL || e==ERANGE)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    constantsTouched: []
    func_position:
      end: 323
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 323
    functionName: xlu_cfg_get_bounded_long
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - strtol
    - find_atom
    - assert
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_bounded_long(const XLU_Config *cfg, const char *n,\n
      \                            long min, long max, long *value_r,\n                             int
      dont_warn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cfg
    - n
    - value_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: xlu_cfg_get_long
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_bounded_long
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_long(const XLU_Config *cfg, const char *n,\n                     long
      *value_r, int dont_warn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:337,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cfg
    - n
    - b
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - libxl_defbool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: xlu_cfg_get_defbool
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_long
    - libxl_defbool_set
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_defbool(const XLU_Config *cfg, const char *n, libxl_defbool
      *b,\n                     int dont_warn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:346,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - cfg
    - n
    - list_r
    - entries_r
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - XLU_ConfigList**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 359
    functionName: xlu_cfg_get_list
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - fprintf
    - find
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_list(const XLU_Config *cfg, const char *n,\n                     XLU_ConfigList
      **list_r, int *entries_r, int dont_warn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:367,1
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:370,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:374,1
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - cfg
    - n
    - psl
    - dont_warn
    argTypes:
    - XLU_Config*
    - char*
    - libxl_string_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 382
    functionName: xlu_cfg_get_list_as_string_list
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_list
    - malloc
    - strdup
    - xlu_cfg_get_listitem
    linkageType: ''
    returnType: int
    signature: "int xlu_cfg_get_list_as_string_list(const XLU_Config *cfg, const char
      *n,\n                     libxl_string_list *psl, int dont_warn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - list
    - entry
    argTypes:
    - XLU_ConfigList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: xlu_cfg_get_listitem
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xlu_cfg_get_listitem(const XLU_ConfigList *list, int entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:398,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:402,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:409,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - atom
    - loc
    argTypes:
    - CfgParseContext*
    - char*
    - YYLTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 412
    functionName: xlu__cfg_string_mk
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: XLU_ConfigValue
    signature: "XLU_ConfigValue *xlu__cfg_string_mk(CfgParseContext *ctx, char *atom,\n
      \                                   YYLTYPE *loc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:423,1
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:427,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:433,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:440,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:441,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - val
    - loc
    argTypes:
    - CfgParseContext*
    - XLU_ConfigValue*
    - YYLTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 444
    functionName: xlu__cfg_list_mk
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__cfg_value_free
    - malloc
    - memcpy
    linkageType: ''
    returnType: XLU_ConfigValue
    signature: "XLU_ConfigValue *xlu__cfg_list_mk(CfgParseContext *ctx,\n                                  XLU_ConfigValue
      *val,\n                                  YYLTYPE *loc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:452,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:453,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:461,1
    - Dst: realloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:466,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - list
    - val
    argTypes:
    - CfgParseContext*
    - XLU_ConfigValue*
    - XLU_ConfigValue*
    assertStmts:
    - condition: (val)
      pos:
        line_end: 451
        line_start: 451
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    - condition: (list->type == XLU_LIST)
      pos:
        line_end: 452
        line_start: 452
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    constantsTouched: []
    func_position:
      end: 480
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 480
    functionName: xlu__cfg_list_append
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - realloc
    - assert
    - xlu__cfg_value_free
    linkageType: ''
    returnType: void
    signature: "void xlu__cfg_list_append(CfgParseContext *ctx,\n                          XLU_ConfigValue
      *list,\n                          XLU_ConfigValue *val)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfgl_lexicalerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:489,1
    - Dst: asprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:498,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:503,1
    - Dst: realloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:519,1
    - Dst: memmove
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:529,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:534,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:539,1
    - Dst: abort
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - ctx
    - prev
    - to_add
    argTypes:
    - CfgParseContext*
    - XLU_ConfigValue*
    - XLU_ConfigValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 547
    functionName: xlu__cfg_concat_vals
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - asprintf
    - abort
    - free
    - memmove
    - xlu__cfgl_lexicalerror
    - memset
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int xlu__cfg_concat_vals(CfgParseContext *ctx,\n                                XLU_ConfigValue
      *prev,\n                                XLU_ConfigValue *to_add)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:557,1
    - Dst: find
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:561,1
    - Dst: xlu__cfg_concat_vals
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:563,1
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:571,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:584,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:585,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:586,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - name
    - op
    - val
    - lineno
    argTypes:
    - CfgParseContext*
    - char*
    - enum XLU_Operation
    - XLU_ConfigValue*
    - int
    assertStmts:
    - condition: (name)
      pos:
        line_end: 556
        line_start: 556
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    - condition: (ctx->err)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    constantsTouched: []
    func_position:
      end: 587
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 587
    functionName: xlu__cfg_set_store
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - find
    - xlu__cfg_concat_vals
    - assert
    - xlu__cfg_value_free
    linkageType: ''
    returnType: void
    signature: "void xlu__cfg_set_store(CfgParseContext *ctx, char *name,\n                        enum
      XLU_Operation op,\n                        XLU_ConfigValue *val, int lineno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - CfgParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 596
    functionName: xlu__cfgl_strdup
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: char
    signature: char *xlu__cfgl_strdup(CfgParseContext *ctx, const char *src)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:606,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:607,1
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:609,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:619,1
    - Dst: NUMERIC_CHAR
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:650,1
    - Dst: NUMERIC_CHAR
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:652,1
    - Dst: xlu__cfgl_lexicalerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:654,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:659,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - CfgParseContext*
    - char*
    assertStmts:
    - condition: (p < src+len-1)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    - condition: (len>=2 && src[0]==src[len-1])
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    - condition: (p <= src+len-1)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/xen/tools/libs/util/libxlu_cfg.c
    constantsTouched: []
    func_position:
      end: 668
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 668
    functionName: xlu__cfgl_dequote
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 0
    functionsReached:
    - malloc
    - xlu__cfgl_lexicalerror
    - NUMERIC_CHAR
    - strlen
    - assert
    linkageType: ''
    returnType: char
    signature: char *xlu__cfgl_dequote(CfgParseContext *ctx, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - minlen
    - ','
    - maxlen
    - ','
    - base
    - ','
    - basetext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 648
    functionName: NUMERIC_CHAR
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUMERIC_CHAR(minlen,maxlen,base,basetext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_yyget_lineno
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:672,1
    - Dst: xlu__cfg_yyerror
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - msg
    argTypes:
    - CfgParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 675
    functionName: xlu__cfgl_lexicalerror
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 2
    functionsReached:
    - xlu__cfg_yyget_lineno
    - xlu__cfg_yyerror
    linkageType: ''
    returnType: void
    signature: void xlu__cfgl_lexicalerror(CfgParseContext *ctx, char const *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xlu__cfg_yyget_text
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:684,1
    - Dst: xlu__cfg_yyget_leng
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:685,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg.c:698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - loc
    - ctx
    - msg
    argTypes:
    - YYLTYPE*
    - CfgParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 704
    functionName: xlu__cfg_yyerror
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg.c
    functionUses: 1
    functionsReached:
    - xlu__cfg_yyget_text
    - fprintf
    - xlu__cfg_yyget_leng
    linkageType: ''
    returnType: void
    signature: void xlu__cfg_yyerror(YYLTYPE *loc, CfgParseContext *ctx, char const
      *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - _c
    - ','
    - _x
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 10
    functionName: XLU__PCI_ERR
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLU__PCI_ERR(_c, _x, _a...)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/xen/tools/libs/util/libxlu_pci.c:19,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:29,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:33,1
    - Dst: sscanf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:49,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - pci
    - str
    - endp
    argTypes:
    - libxl_device_pci*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 66
    functionName: parse_bdf
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - isxdigit
    - sscanf
    linkageType: ''
    returnType: int
    signature: int parse_bdf(libxl_device_pci *pci, const char *str, const char **endp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - vdevfnp
    - str
    - endp
    argTypes:
    - uint32_t*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: parse_vslot
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - sscanf
    linkageType: ''
    returnType: int
    signature: int parse_vslot(uint32_t *vdevfnp, const char *str, const char **endp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/xen/tools/libs/util/libxlu_pci.c:102,1
    - Dst: strndup
      Src: /src/xen/tools/libs/util/libxlu_pci.c:110,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_pci.c:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - keyp
    - valp
    - str
    - endp
    argTypes:
    - char**
    - char**
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: parse_key_val
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - free
    - strndup
    linkageType: ''
    returnType: int
    signature: "int parse_key_val(char **keyp, char**valp, const char *str,\n                         const
      char **endp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_rdm_reserve_policy_from_string
      Src: /src/xen/tools/libs/util/libxlu_pci.c:129,1
    - Dst: XLU__PCI_ERR
      Src: /src/xen/tools/libs/util/libxlu_pci.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cfg
    - policy
    - str
    argTypes:
    - XLU_Config*
    - libxl_rdm_reserve_policy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: parse_rdm_policy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - XLU__PCI_ERR
    - libxl_rdm_reserve_policy_from_string
    linkageType: ''
    returnType: int
    signature: "int parse_rdm_policy(XLU_Config *cfg, libxl_rdm_reserve_policy *policy,\n
      \                           const char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_bdf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cfg
    - pci
    - str
    argTypes:
    - XLU_Config*
    - libxl_device_pci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: xlu_pci_parse_bdf
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - parse_bdf
    linkageType: ''
    returnType: int
    signature: int xlu_pci_parse_bdf(XLU_Config *cfg, libxl_device_pci *pci, const
      char *str)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: parse_bdf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:151,1
    - Dst: parse_vslot
      Src: /src/xen/tools/libs/util/libxlu_pci.c:158,1
    - Dst: parse_key_val
      Src: /src/xen/tools/libs/util/libxlu_pci.c:172,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:176,1
    - Dst: parse_bdf
      Src: /src/xen/tools/libs/util/libxlu_pci.c:177,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:179,1
    - Dst: parse_vslot
      Src: /src/xen/tools/libs/util/libxlu_pci.c:180,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:181,1
    - Dst: atoi
      Src: /src/xen/tools/libs/util/libxlu_pci.c:182,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:183,1
    - Dst: atoi
      Src: /src/xen/tools/libs/util/libxlu_pci.c:184,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:185,1
    - Dst: atoi
      Src: /src/xen/tools/libs/util/libxlu_pci.c:186,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:187,1
    - Dst: atoi
      Src: /src/xen/tools/libs/util/libxlu_pci.c:188,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:189,1
    - Dst: parse_rdm_policy
      Src: /src/xen/tools/libs/util/libxlu_pci.c:190,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:191,1
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_pci.c:193,1
    - Dst: XLU__PCI_ERR
      Src: /src/xen/tools/libs/util/libxlu_pci.c:196,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_pci.c:200,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_pci.c:201,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 3
    argNames:
    - cfg
    - pci
    - str
    argTypes:
    - XLU_Config*
    - libxl_device_pci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 211
    functionName: xlu_pci_parse_spec_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - parse_rdm_policy
    - free
    - strcmp
    - parse_vslot
    - parse_bdf
    - strdup
    - XLU__PCI_ERR
    - atoi
    - parse_key_val
    linkageType: ''
    returnType: int
    signature: "int xlu_pci_parse_spec_string(XLU_Config *cfg, libxl_device_pci *pci,\n
      \                             const char *str)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_pci.c:223,1
    - Dst: strlen
      Src: /src/xen/tools/libs/util/libxlu_pci.c:226,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:231,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:233,1
    - Dst: XLU__PCI_ERR
      Src: /src/xen/tools/libs/util/libxlu_pci.c:236,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_pci.c:246,1
    - Dst: XLU__PCI_ERR
      Src: /src/xen/tools/libs/util/libxlu_pci.c:249,1
    - Dst: parse_rdm_policy
      Src: /src/xen/tools/libs/util/libxlu_pci.c:259,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_pci.c:271,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_pci.c:276,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 3
    argNames:
    - cfg
    - rdm
    - str
    argTypes:
    - XLU_Config*
    - libxl_rdm_reserve*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 283
    functionName: xlu_rdm_parse
    functionSourceFile: /src/xen/tools/libs/util/libxlu_pci.c
    functionUses: 0
    functionsReached:
    - parse_rdm_policy
    - free
    - strlen
    - strdup
    - XLU__PCI_ERR
    - strcmp
    linkageType: ''
    returnType: int
    signature: int xlu_rdm_parse(XLU_Config *cfg, libxl_rdm_reserve *rdm, const char
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: YY_SC_TO_UI
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SC_TO_UI(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: YY_STATE_EOF
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STATE_EOF(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: YY_LESS_LINENO
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LESS_LINENO(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: YY_LINENO_REWIND_TO
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LINENO_REWIND_TO(dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: yyless
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: unput
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unput(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - is_interactive
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: yy_set_interactive
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_interactive(is_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - at_bol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 569
    functionName: yy_set_bol
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_bol(at_bol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 570
    functionName: YY_AT_BOL
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_AT_BOL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: yymore
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yymore()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: GOT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 934
    functionName: YY_INPUT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf,result,max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 942
    functionName: yyterminate
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyterminate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 952
    functionName: YY_FATAL_ERROR
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_FATAL_ERROR(msg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1363,1
    - Dst: yyrealloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1424,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1432,1
    - Dst: YY_INPUT
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1446,1
    - Dst: yyrestart
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1457,1
    - Dst: yyrealloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1474,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1477,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1354
    functionDepth: 0
    functionLinenumber: 1354
    functionLinenumberEnd: 1489
    functionName: yy_get_next_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yyrestart
    - YY_INPUT
    - YY_FATAL_ERROR
    - yyrealloc
    linkageType: ''
    returnType: int
    signature: int yy_get_next_buffer (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YY_SC_TO_UI
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1519
    functionName: yy_get_previous_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - YY_SC_TO_UI
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_get_previous_state (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - yy_current_state
    - yyscanner
    argTypes:
    - yy_state_type
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1549
    functionName: yy_try_NUL_trans
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t
      yyscanner)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: yy_get_next_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1583,1
    - Dst: yyrestart
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1597,1
    - Dst: yywrap
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1603,1
    - Dst: yyinput
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1609,1
    - Dst: input
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1634
    functionName: input
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yyrestart
    - yy_get_next_buffer
    - yyinput
    - input
    - yywrap
    linkageType: ''
    returnType: int
    signature: int input  (yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1647,1
    - Dst: yy_create_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1649,1
    - Dst: yy_init_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1652,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - input_file
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1654
    functionName: yyrestart
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 3
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    - yy_init_buffer
    - yy_create_buffer
    linkageType: ''
    returnType: void
    signature: void yyrestart  (FILE * input_file , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1669,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1660
    functionDepth: 0
    functionLinenumber: 1660
    functionLinenumberEnd: 1690
    functionName: yy_switch_to_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1699
    functionName: yy_load_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_load_buffer_state  (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1711,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1713,1
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1720,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1722,1
    - Dst: yy_init_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - file
    - size
    - yyscanner
    argTypes:
    - FILE*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1729
    functionName: yy_create_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - YY_FATAL_ERROR
    - yy_init_buffer
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t
      yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1746,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1749
    functionName: yy_delete_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yyfree
    linkageType: ''
    returnType: void
    signature: void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yy_flush_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1761,1
    - Dst: isatty
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1775,1
    - Dst: fileno
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - b
    - file
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1778
    functionName: yy_init_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached:
    - fileno
    - isatty
    - yy_flush_buffer
    linkageType: ''
    returnType: void
    signature: void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1806
    functionName: yy_flush_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1820,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1839
    functionName: yypush_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1851,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1857,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1860
    functionName: yypop_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yy_delete_buffer
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypop_buffer_state (yyscan_t yyscanner)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1877,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1881,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1883,1
    - Dst: yyrealloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1896,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1901,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1865
    functionDepth: 0
    functionLinenumber: 1865
    functionLinenumberEnd: 1907
    functionName: yyensure_buffer_stack
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 3
    functionsReached:
    - yyalloc
    - memset
    - YY_FATAL_ERROR
    - yyrealloc
    linkageType: ''
    returnType: void
    signature: void yyensure_buffer_stack (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1925,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1927,1
    - Dst: yy_switch_to_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - size
    - yyscanner
    argTypes:
    - char*
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1915
    functionDepth: 0
    functionLinenumber: 1915
    functionLinenumberEnd: 1942
    functionName: yy_scan_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - yy_switch_to_buffer
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t
      yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yy_scan_bytes
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1955,1
    - Dst: strlen
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yystr
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 1956
    functionName: yy_scan_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - strlen
    - yy_scan_bytes
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1974,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1976,1
    - Dst: yy_scan_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1983,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:1985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - yybytes
    - _yybytes_len
    - yyscanner
    argTypes:
    - char*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1965
    functionDepth: 0
    functionLinenumber: 1965
    functionLinenumberEnd: 1993
    functionName: yy_scan_bytes
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached:
    - yyalloc
    - YY_FATAL_ERROR
    - yy_scan_buffer
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len
      , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2003,1
    - Dst: exit
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1999
    functionDepth: 0
    functionLinenumber: 1999
    functionLinenumberEnd: 2005
    functionName: yy_fatal_error
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void yy_fatal_error (const char* msg , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 2010
    functionDepth: 0
    functionLinenumber: 2010
    functionLinenumberEnd: 2013
    functionName: yyless
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2038
    functionDepth: 0
    functionLinenumber: 2038
    functionLinenumberEnd: 2046
    functionName: yyget_lineno
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_lineno  (yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2059
    functionName: yyget_column
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_column  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2068
    functionName: yyget_in
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_in  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2077
    functionName: yyget_out
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_out  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2086
    functionName: yyget_leng
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_leng  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2096
    functionName: yyget_text
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *yyget_text  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user_defined
    - yyscanner
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2102
    functionDepth: 0
    functionLinenumber: 2102
    functionLinenumberEnd: 2106
    functionName: yyset_extra
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _line_number
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2112
    functionDepth: 0
    functionLinenumber: 2112
    functionLinenumberEnd: 2121
    functionName: yyset_lineno
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_lineno (int  _line_number , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _column_no
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2136
    functionName: yyset_column
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_column (int  _column_no , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _in_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2148
    functionName: yyset_in
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _out_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2154
    functionName: yyset_out
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2156
    functionDepth: 0
    functionLinenumber: 2156
    functionLinenumberEnd: 2160
    functionName: yyget_debug
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_debug  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _bdebug
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2166
    functionName: yyset_debug
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_debug (int  _bdebug , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2170
    functionDepth: 0
    functionLinenumber: 2170
    functionLinenumberEnd: 2174
    functionName: yyget_lval
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYSTYPE
    signature: YYSTYPE * yyget_lval  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yylval_param
    - yyscanner
    argTypes:
    - YYSTYPE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2176
    functionDepth: 0
    functionLinenumber: 2176
    functionLinenumberEnd: 2180
    functionName: yyset_lval
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2182
    functionDepth: 0
    functionLinenumber: 2182
    functionLinenumberEnd: 2186
    functionName: yyget_lloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYLTYPE
    signature: YYLTYPE *yyget_lloc  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yylloc_param
    - yyscanner
    argTypes:
    - YYLTYPE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2192
    functionName: yyset_lloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2207,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2215,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ptr_yy_globals
    argTypes:
    - yyscan_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2200
    functionDepth: 0
    functionLinenumber: 2200
    functionLinenumberEnd: 2218
    functionName: yylex_init
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - memset
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_init(yyscan_t* ptr_yy_globals)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyset_extra
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2231,1
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2238,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2247,1
    - Dst: yyset_extra
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2249,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - yy_user_defined
    - ptr_yy_globals
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2252
    functionName: yylex_init_extra
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - memset
    - yyset_extra
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2285
    functionName: yy_init_globals
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_init_globals (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2294,1
    - Dst: yypop_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2296,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2300,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2304,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2309,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2288
    functionDepth: 0
    functionLinenumber: 2288
    functionLinenumberEnd: 2315
    functionName: yylex_destroy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 1
    functionsReached:
    - yy_delete_buffer
    - yypop_buffer_state
    - yyfree
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_destroy  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s1
    - s2
    - n
    - yyscanner
    argTypes:
    - char*
    - char*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2330
    functionName: yy_flex_strncpy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2341
    functionName: yy_flex_strlen
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_flex_strlen (const char * s , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - yyscanner
    argTypes:
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2344
    functionDepth: 1
    functionLinenumber: 2344
    functionLinenumberEnd: 2349
    functionName: yyalloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 6
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - size
    - yyscanner
    argTypes:
    - void*
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2364
    functionName: yyrealloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_l.c:2370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - yyscanner
    argTypes:
    - void*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2371
    functionName: yyfree
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_l.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void yyfree (void * ptr , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: YY_SC_TO_UI
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SC_TO_UI(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: YY_STATE_EOF
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STATE_EOF(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: yyless
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: unput
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unput(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - is_interactive
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: yy_set_interactive
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_interactive(is_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - at_bol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 530
    functionName: yy_set_bol
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_bol(at_bol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    functionName: YY_AT_BOL
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_AT_BOL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1091
    functionName: yymore
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yymore()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dpc
    - ','
    - member
    - ','
    - enumname
    - ','
    - str
    - ','
    - valname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1160
    functionName: DSET
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DSET(dpc,member,enumname,str,valname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - delim
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1169
    functionName: STRIP
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRIP(delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - what
    - ','
    - loc
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1174
    functionName: SAVESTRING
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAVESTRING(what,loc,val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1177,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1178,1
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dpc
    - what_respecified
    - update
    - value
    argTypes:
    - DiskParseContext*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1181
    functionName: savestring
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__disk_err
    - strdup
    linkageType: ''
    returnType: void
    signature: "void savestring(DiskParseContext *dpc, const char *what_respecified,\n\t\t
      \      char **update, const char *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1187,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1187,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1189,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1189,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1189,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1194
    functionName: setaccess
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - xlu__disk_err
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setaccess(DiskParseContext *dpc, const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1198,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1198,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1199,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1199,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1200,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1200,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1201,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1201,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1202,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1202,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1203,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1203,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1204,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1204,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1206
    functionName: setformat
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - DSET
    - xlu__disk_err
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setformat(DiskParseContext *dpc, const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1210,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1210,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1211,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1211,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1212,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1212,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1213,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1213,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: setbackendtype
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - DSET
    - xlu__disk_err
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setbackendtype(DiskParseContext *dpc, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1219,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1219,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1220,1
    - Dst: DSET
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1220,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: setspecification
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - DSET
    - xlu__disk_err
    - strcmp
    linkageType: ''
    returnType: void
    signature: void setspecification(DiskParseContext *dpc, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1226,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1232
    functionName: setcoloport
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - xlu__disk_err
    - atoi
    linkageType: ''
    returnType: void
    signature: void setcoloport(DiskParseContext *dpc, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1239,1
    - Dst: DEPRECATE
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1243,1
    - Dst: SAVESTRING
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1245,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1247,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1249,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:1252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dpc
    - str
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1255
    functionName: vdev_and_devtype
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - xlu__disk_err
    - SAVESTRING
    - DEPRECATE
    - strrchr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int vdev_and_devtype(DiskParseContext *dpc, char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1448
    functionName: YY_INPUT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf,result,max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1456
    functionName: yyterminate
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyterminate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1466
    functionName: YY_FATAL_ERROR
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_FATAL_ERROR(msg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2074,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2118,1
    - Dst: YY_INPUT
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2127,1
    - Dst: yyrestart
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2138,1
    - Dst: yyrealloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2155,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2158,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2065
    functionDepth: 0
    functionLinenumber: 2065
    functionLinenumberEnd: 2170
    functionName: yy_get_next_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - YY_INPUT
    - YY_FATAL_ERROR
    - yyrealloc
    - yyrestart
    linkageType: ''
    returnType: int
    signature: int yy_get_next_buffer (yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_SC_TO_UI
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2174
    functionDepth: 0
    functionLinenumber: 2174
    functionLinenumberEnd: 2199
    functionName: yy_get_previous_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - YY_SC_TO_UI
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_get_previous_state (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - yy_current_state
    - yyscanner
    argTypes:
    - yy_state_type
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2206
    functionDepth: 0
    functionLinenumber: 2206
    functionLinenumberEnd: 2225
    functionName: yy_try_NUL_trans
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t
      yyscanner)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yy_get_next_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2259,1
    - Dst: yyrestart
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2273,1
    - Dst: yywrap
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2279,1
    - Dst: yyinput
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2285,1
    - Dst: input
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2303
    functionName: input
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 2
    functionsReached:
    - yyrestart
    - yy_get_next_buffer
    - yyinput
    - input
    - yywrap
    linkageType: ''
    returnType: int
    signature: int input  (yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2316,1
    - Dst: yy_create_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2318,1
    - Dst: yy_init_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2321,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - input_file
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2311
    functionDepth: 0
    functionLinenumber: 2311
    functionLinenumberEnd: 2323
    functionName: yyrestart
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 5
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    - yy_init_buffer
    - yy_create_buffer
    linkageType: ''
    returnType: void
    signature: void yyrestart  (FILE * input_file , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2338,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2329
    functionDepth: 0
    functionLinenumber: 2329
    functionLinenumberEnd: 2359
    functionName: yy_switch_to_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2361
    functionDepth: 0
    functionLinenumber: 2361
    functionLinenumberEnd: 2368
    functionName: yy_load_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_load_buffer_state  (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2380,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2382,1
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2389,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2391,1
    - Dst: yy_init_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - file
    - size
    - yyscanner
    argTypes:
    - FILE*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2398
    functionName: yy_create_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 2
    functionsReached:
    - yyalloc
    - YY_FATAL_ERROR
    - yy_init_buffer
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t
      yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2415,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2404
    functionDepth: 0
    functionLinenumber: 2404
    functionLinenumberEnd: 2418
    functionName: yy_delete_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 3
    functionsReached:
    - yyfree
    linkageType: ''
    returnType: void
    signature: void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yy_flush_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2430,1
    - Dst: isatty
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2444,1
    - Dst: fileno
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - b
    - file
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2424
    functionDepth: 0
    functionLinenumber: 2424
    functionLinenumberEnd: 2447
    functionName: yy_init_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 4
    functionsReached:
    - fileno
    - isatty
    - yy_flush_buffer
    linkageType: ''
    returnType: void
    signature: void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - b
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2453
    functionDepth: 0
    functionLinenumber: 2453
    functionLinenumberEnd: 2475
    functionName: yy_flush_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 2
    functionsReached:
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyensure_buffer_stack
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2489,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - new_buffer
    - yyscanner
    argTypes:
    - YY_BUFFER_STATE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2483
    functionDepth: 0
    functionLinenumber: 2483
    functionLinenumberEnd: 2508
    functionName: yypush_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - yyensure_buffer_stack
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2520,1
    - Dst: yy_load_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2514
    functionDepth: 0
    functionLinenumber: 2514
    functionLinenumberEnd: 2529
    functionName: yypop_buffer_state
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - yy_delete_buffer
    - yy_load_buffer_state
    linkageType: ''
    returnType: void
    signature: void yypop_buffer_state (yyscan_t yyscanner)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2546,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2550,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2552,1
    - Dst: yyrealloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2565,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2570,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2576
    functionName: yyensure_buffer_stack
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 6
    functionsReached:
    - yyalloc
    - memset
    - YY_FATAL_ERROR
    - yyrealloc
    linkageType: ''
    returnType: void
    signature: void yyensure_buffer_stack (yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2594,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2596,1
    - Dst: yy_switch_to_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - base
    - size
    - yyscanner
    argTypes:
    - char*
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2584
    functionDepth: 0
    functionLinenumber: 2584
    functionLinenumberEnd: 2611
    functionName: yy_scan_buffer
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - yy_switch_to_buffer
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t
      yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yy_scan_bytes
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2624,1
    - Dst: strlen
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - yystr
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2621
    functionDepth: 0
    functionLinenumber: 2621
    functionLinenumberEnd: 2625
    functionName: yy_scan_string
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - strlen
    - yy_scan_bytes
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2643,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2645,1
    - Dst: yy_scan_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2652,1
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - yybytes
    - _yybytes_len
    - yyscanner
    argTypes:
    - char*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2662
    functionName: yy_scan_bytes
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 3
    functionsReached:
    - yyalloc
    - YY_FATAL_ERROR
    - yy_scan_buffer
    linkageType: ''
    returnType: YY_BUFFER_STATE
    signature: YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len
      , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2672,1
    - Dst: exit
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2668
    functionDepth: 0
    functionLinenumber: 2668
    functionLinenumberEnd: 2674
    functionName: yy_fatal_error
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void yy_fatal_error (const char* msg , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2679
    functionDepth: 0
    functionLinenumber: 2679
    functionLinenumberEnd: 2682
    functionName: yyless
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2715
    functionName: yyget_lineno
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_lineno  (yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2720
    functionDepth: 0
    functionLinenumber: 2720
    functionLinenumberEnd: 2728
    functionName: yyget_column
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_column  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2733
    functionDepth: 0
    functionLinenumber: 2733
    functionLinenumberEnd: 2737
    functionName: yyget_in
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_in  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2746
    functionName: yyget_out
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FILE
    signature: FILE *yyget_out  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2755
    functionName: yyget_leng
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_leng  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2765
    functionName: yyget_text
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *yyget_text  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user_defined
    - yyscanner
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2771
    functionDepth: 0
    functionLinenumber: 2771
    functionLinenumberEnd: 2775
    functionName: yyset_extra
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _line_number
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2781
    functionDepth: 0
    functionLinenumber: 2781
    functionLinenumberEnd: 2790
    functionName: yyset_lineno
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_lineno (int  _line_number , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _column_no
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2796
    functionDepth: 0
    functionLinenumber: 2796
    functionLinenumberEnd: 2805
    functionName: yyset_column
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yyset_column (int  _column_no , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _in_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2813
    functionDepth: 0
    functionLinenumber: 2813
    functionLinenumberEnd: 2817
    functionName: yyset_in
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _out_str
    - yyscanner
    argTypes:
    - FILE*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2819
    functionDepth: 0
    functionLinenumber: 2819
    functionLinenumberEnd: 2823
    functionName: yyset_out
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2825
    functionDepth: 0
    functionLinenumber: 2825
    functionLinenumberEnd: 2829
    functionName: yyget_debug
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yyget_debug  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _bdebug
    - yyscanner
    argTypes:
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2831
    functionDepth: 0
    functionLinenumber: 2831
    functionLinenumberEnd: 2835
    functionName: yyset_debug
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yyset_debug (int  _bdebug , yyscan_t yyscanner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2852,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2860,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ptr_yy_globals
    argTypes:
    - yyscan_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2845
    functionDepth: 0
    functionLinenumber: 2845
    functionLinenumberEnd: 2863
    functionName: yylex_init
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached:
    - yyalloc
    - memset
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_init(yyscan_t* ptr_yy_globals)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: yyset_extra
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2876,1
    - Dst: yyalloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2883,1
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2892,1
    - Dst: yyset_extra
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2894,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - yy_user_defined
    - ptr_yy_globals
    argTypes:
    - YY_EXTRA_TYPE
    - yyscan_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2872
    functionDepth: 0
    functionLinenumber: 2872
    functionLinenumberEnd: 2897
    functionName: yylex_init_extra
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - yyalloc
    - memset
    - yyset_extra
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2899
    functionDepth: 0
    functionLinenumber: 2899
    functionLinenumberEnd: 2935
    functionName: yy_init_globals
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_init_globals (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2944,1
    - Dst: yypop_buffer_state
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2946,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2950,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2954,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2957,1
    - Dst: yy_init_globals
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2962,1
    - Dst: yyfree
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:2965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - yyscanner
    argTypes:
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2968
    functionName: yylex_destroy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 1
    functionsReached:
    - yy_delete_buffer
    - yypop_buffer_state
    - yyfree
    - yy_init_globals
    linkageType: ''
    returnType: int
    signature: int yylex_destroy  (yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s1
    - s2
    - n
    - yyscanner
    argTypes:
    - char*
    - char*
    - int
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2975
    functionDepth: 0
    functionLinenumber: 2975
    functionLinenumberEnd: 2983
    functionName: yy_flex_strncpy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - yyscanner
    argTypes:
    - char*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2987
    functionDepth: 0
    functionLinenumber: 2987
    functionLinenumberEnd: 2994
    functionName: yy_flex_strlen
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_flex_strlen (const char * s , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:3001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - yyscanner
    argTypes:
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2997
    functionDepth: 1
    functionLinenumber: 2997
    functionLinenumberEnd: 3002
    functionName: yyalloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 12
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - size
    - yyscanner
    argTypes:
    - void*
    - yy_size_t
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 3004
    functionDepth: 0
    functionLinenumber: 3004
    functionLinenumberEnd: 3017
    functionName: yyrealloc
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 4
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_disk_l.c:3023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - yyscanner
    argTypes:
    - void*
    - yyscan_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 3019
    functionDepth: 1
    functionLinenumber: 3019
    functionLinenumberEnd: 3024
    functionName: yyfree
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk_l.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void yyfree (void * ptr , yyscan_t yyscanner)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_disk.c:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dpc
    - erroneous
    - message
    argTypes:
    - DiskParseContext*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 16
    functionName: xlu__disk_err
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk.c
    functionUses: 7
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void xlu__disk_err(DiskParseContext *dpc, const char *erroneous,\n
      \                  const char *message)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu__disk_yylex_init_extra
      Src: /src/xen/tools/libs/util/libxlu_disk.c:23,1
    - Dst: xlu__disk_yy_scan_bytes
      Src: /src/xen/tools/libs/util/libxlu_disk.c:26,1
    - Dst: strlen
      Src: /src/xen/tools/libs/util/libxlu_disk.c:26,1
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_disk.c:32,1
    - Dst: strerror
      Src: /src/xen/tools/libs/util/libxlu_disk.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - dpc
    - spec
    argTypes:
    - DiskParseContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: dpc_prep
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk.c
    functionUses: 0
    functionsReached:
    - xlu__disk_yylex_init_extra
    - strerror
    - fprintf
    - strlen
    - xlu__disk_yy_scan_bytes
    linkageType: ''
    returnType: int
    signature: int dpc_prep(DiskParseContext *dpc, const char *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu__disk_yy_delete_buffer
      Src: /src/xen/tools/libs/util/libxlu_disk.c:39,1
    - Dst: xlu__disk_yylex_destroy
      Src: /src/xen/tools/libs/util/libxlu_disk.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dpc
    argTypes:
    - DiskParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: dpc_dispose
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk.c
    functionUses: 0
    functionsReached:
    - xlu__disk_yylex_destroy
    - xlu__disk_yy_delete_buffer
    linkageType: ''
    returnType: void
    signature: void dpc_dispose(DiskParseContext *dpc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libs/util/libxlu_disk.c:54,1
    - Dst: dpc_prep
      Src: /src/xen/tools/libs/util/libxlu_disk.c:62,1
    - Dst: xlu__disk_yylex
      Src: /src/xen/tools/libs/util/libxlu_disk.c:65,1
    - Dst: assert
      Src: /src/xen/tools/libs/util/libxlu_disk.c:66,1
    - Dst: dpc_dispose
      Src: /src/xen/tools/libs/util/libxlu_disk.c:69,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_disk.c:78,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk.c:83,1
    - Dst: xlu__disk_err
      Src: /src/xen/tools/libs/util/libxlu_disk.c:87,1
    - Dst: dpc_dispose
      Src: /src/xen/tools/libs/util/libxlu_disk.c:92,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - cfg
    - nspecs
    - specs
    - disk
    argTypes:
    - XLU_Config*
    - int
    - char**
    - libxl_device_disk*
    assertStmts:
    - condition: (!e)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/xen/tools/libs/util/libxlu_disk.c
    constantsTouched: []
    func_position:
      end: 94
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 94
    functionName: xlu_disk_parse
    functionSourceFile: /src/xen/tools/libs/util/libxlu_disk.c
    functionUses: 0
    functionsReached:
    - dpc_dispose
    - xlu__disk_err
    - strcmp
    - xlu__disk_yylex
    - dpc_prep
    - memset
    - assert
    linkageType: ''
    returnType: int
    signature: "int xlu_disk_parse(XLU_Config *cfg,\n                   int nspecs,
      const char *const *specs,\n                   libxl_device_disk *disk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: YY_
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_(Msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: YY_
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_(Msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: YY_ATTRIBUTE
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_ATTRIBUTE(Spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: YYUSE
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYUSE(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: YY_INITIAL_VALUE
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INITIAL_VALUE(Value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: YYSTACK_BYTES
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYSTACK_BYTES(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Stack_alloc
    - ','
    - Stack
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: YYSTACK_RELOCATE
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYSTACK_RELOCATE(Stack_alloc, Stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Dst
    - ','
    - Src
    - ','
    - Count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: YYCOPY
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCOPY(Dst, Src, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Dst
    - ','
    - Src
    - ','
    - Count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: YYCOPY
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCOPY(Dst, Src, Count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - YYX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: YYTRANSLATE
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYTRANSLATE(YYX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Yystate
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 488
    functionName: yypact_value_is_default
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yypact_value_is_default(Yystate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Yytable_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: yytable_value_is_error
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yytable_value_is_error(Yytable_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: YYRECOVERING
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYRECOVERING()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Token
    - ','
    - Value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: YYBACKUP
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYBACKUP(Token, Value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - Current
    - ','
    - Rhs
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: YYLLOC_DEFAULT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYLLOC_DEFAULT(Current, Rhs, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Rhs
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 632
    functionName: YYRHSLOC
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYRHSLOC(Rhs, K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: YYDPRINTF
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYDPRINTF(Args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:666,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:668,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:674,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:676,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:679,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - yyo
    - yylocp
    argTypes:
    - FILE*
    - YYLTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 682
    functionName: yy_location_print_
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: YY_ATTRIBUTE_UNUSED
    signature: YY_ATTRIBUTE_UNUSED yy_location_print_ (FILE *yyo, YYLTYPE const *
      const yylocp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - File
    - ','
    - Loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: YY_LOCATION_PRINT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCATION_PRINT(File, Loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - File
    - ','
    - Loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 689
    functionName: YY_LOCATION_PRINT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_LOCATION_PRINT(File, Loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - Title
    - ','
    - Type
    - ','
    - Value
    - ','
    - Location
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 703
    functionName: YY_SYMBOL_PRINT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SYMBOL_PRINT(Title, Type, Value, Location)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:713,1
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:714,1
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:715,1
    - Dst: YYPRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:720,1
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - yylocationp
    - ctx
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - YYLTYPE*
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 723
    functionName: yy_symbol_value_print
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - YYUSE
    - YYPRINT
    linkageType: ''
    returnType: void
    signature: void yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const *
      const yyvaluep, YYLTYPE const * const yylocationp, CfgParseContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:733,1
    - Dst: YY_LOCATION_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:736,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:737,1
    - Dst: yy_symbol_value_print
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:738,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - yyo
    - yytype
    - yyvaluep
    - yylocationp
    - ctx
    argTypes:
    - FILE*
    - int
    - YYSTYPE*
    - YYLTYPE*
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 740
    functionName: yy_symbol_print
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - yy_symbol_value_print
    - YYFPRINTF
    - YY_LOCATION_PRINT
    linkageType: ''
    returnType: void
    signature: void yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const
      yyvaluep, YYLTYPE const * const yylocationp, CfgParseContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:750,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:754,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - yybottom
    - yytop
    argTypes:
    - yytype_int16*
    - yytype_int16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: yy_stack_print
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    linkageType: ''
    returnType: void
    signature: void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Bottom
    - ','
    - Top
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 764
    functionName: YY_STACK_PRINT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STACK_PRINT(Bottom, Top)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:776,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:781,1
    - Dst: yy_symbol_print
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:782,1
    - Dst: YYFPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - yyssp
    - yyvsp
    - yylsp
    - yyrule
    - ctx
    argTypes:
    - yytype_int16*
    - YYSTYPE*
    - YYLTYPE*
    - int
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 788
    functionName: yy_reduce_print
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - YYFPRINTF
    - yy_symbol_print
    linkageType: ''
    returnType: void
    signature: void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE
      *yylsp, int yyrule, CfgParseContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Rule
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 795
    functionName: YY_REDUCE_PRINT
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_REDUCE_PRINT(Rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - yystr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 838
    functionName: yystrlen
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YYSIZE_T
    signature: YYSIZE_T yystrlen (const char *yystr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - yydest
    - yysrc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 858
    functionName: yystpcpy
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      yystpcpy (char *yydest, const char *yysrc)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yystrlen
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:907,1
    - Dst: yystpcpy
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:909,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - yyres
    - yystr
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 910
    functionName: yytnamerr
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - yystpcpy
    - yystrlen
    linkageType: ''
    returnType: YYSIZE_T
    signature: YYSIZE_T yytnamerr (char *yyres, const char *yystr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yytnamerr
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:925,1
    - Dst: yypact_value_is_default
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:963,1
    - Dst: yytable_value_is_error
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:976,1
    - Dst: yytnamerr
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:986,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1003,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1003,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1004,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1004,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1005,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1005,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1006,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1006,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1007,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1007,1
    - Dst: YYCASE_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1008,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1008,1
    - Dst: yystrlen
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1013,1
    - Dst: yytnamerr
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1038,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 4
    argNames:
    - yymsg_alloc
    - yymsg
    - yyssp
    - yytoken
    argTypes:
    - YYSIZE_T*
    - char**
    - yytype_int16*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 1048
    functionName: yysyntax_error
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - yytnamerr
    - yystrlen
    - YYCASE_
    - yytable_value_is_error
    - YY_
    - yypact_value_is_default
    linkageType: ''
    returnType: int
    signature: "int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,\n                yytype_int16
      *yyssp, int yytoken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1002
    functionName: YYCASE_
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYCASE_(N, S)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1058,1
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1059,1
    - Dst: YYUSE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1060,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1063,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1070,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1076,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1082,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1088,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1094,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1100,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - yymsg
    - yytype
    - yyvaluep
    - yylocationp
    - ctx
    argTypes:
    - char*
    - int
    - YYSTYPE*
    - YYLTYPE*
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1114
    functionName: yydestruct
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__cfg_value_free
    - YYUSE
    - YY_SYMBOL_PRINT
    linkageType: ''
    returnType: void
    signature: void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep,
      YYLTYPE *yylocationp, CfgParseContext *ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1070,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1076,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1082,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1088,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1094,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1100,1
    - Dst: xlu__cfg_value_free
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1065
    functionDepth: 2
    functionLinenumber: 1065
    functionLinenumberEnd: 1112
    functionName: switch
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 0
    functionsReached:
    - free
    - xlu__cfg_value_free
    linkageType: ''
    returnType: YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    signature: YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: YYDPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1206,1
    - Dst: yyoverflow
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1252,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1252,1
    - Dst: YYSTACK_ALLOC
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1272,1
    - Dst: YYSTACK_BYTES
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1272,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1275,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1276,1
    - Dst: YYSTACK_RELOCATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1277,1
    - Dst: YYSTACK_FREE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1280,1
    - Dst: YYDPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1288,1
    - Dst: YYDPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1296,1
    - Dst: yypact_value_is_default
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1313,1
    - Dst: YYDPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1321,1
    - Dst: yylex
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1322,1
    - Dst: YYDPRINTF
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1328,1
    - Dst: YYTRANSLATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1332,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1333,1
    - Dst: yytable_value_is_error
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1344,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1356,1
    - Dst: YYLLOC_DEFAULT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1397,1
    - Dst: YY_REDUCE_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1399,1
    - Dst: xlu__cfg_set_store
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1404,1
    - Dst: xlu__cfg_set_store
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1410,1
    - Dst: xlu__cfg_string_mk
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1416,1
    - Dst: xlu__cfg_list_mk
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1440,1
    - Dst: xlu__cfg_list_mk
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1458,1
    - Dst: xlu__cfg_list_append
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1464,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1483,1
    - Dst: YYPOPSTACK
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1485,1
    - Dst: YY_STACK_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1487,1
    - Dst: YYTRANSLATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1512,1
    - Dst: yyerror
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1519,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1519,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1524,1
    - Dst: YYSTACK_FREE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1532,1
    - Dst: YYSTACK_ALLOC
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1533,1
    - Dst: yyerror
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1546,1
    - Dst: yydestruct
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1569,1
    - Dst: YYPOPSTACK
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1591,1
    - Dst: YY_STACK_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1593,1
    - Dst: yypact_value_is_default
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1607,1
    - Dst: yydestruct
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1623,1
    - Dst: YYPOPSTACK
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1625,1
    - Dst: YY_STACK_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1627,1
    - Dst: YYLLOC_DEFAULT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1637,1
    - Dst: YY_SYMBOL_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1641,1
    - Dst: yyerror
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1668,1
    - Dst: YY_
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1668,1
    - Dst: YYTRANSLATE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1682,1
    - Dst: yydestruct
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1683,1
    - Dst: YYPOPSTACK
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1688,1
    - Dst: YY_STACK_PRINT
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1689,1
    - Dst: yydestruct
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1692,1
    - Dst: YYPOPSTACK
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1694,1
    - Dst: YYSTACK_FREE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1698,1
    - Dst: YYSTACK_FREE
      Src: /src/xen/tools/libs/util/libxlu_cfg_y.c:1702,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 278
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CfgParseContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1123
    functionDepth: 5
    functionLinenumber: 1123
    functionLinenumberEnd: 1705
    functionName: yyparse
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 1
    functionsReached:
    - YYPOPSTACK
    - YYSTACK_RELOCATE
    - xlu__cfg_set_store
    - yytable_value_is_error
    - YY_SYMBOL_PRINT
    - YYDPRINTF
    - yyoverflow
    - yyerror
    - xlu__cfg_list_mk
    - YY_REDUCE_PRINT
    - YY_
    - YYSTACK_ALLOC
    - YY_STACK_PRINT
    - YYSTACK_BYTES
    - xlu__cfg_list_append
    - YYSTACK_FREE
    - yylex
    - yypact_value_is_default
    - yydestruct
    - YYTRANSLATE
    - YYLLOC_DEFAULT
    - xlu__cfg_string_mk
    linkageType: ''
    returnType: int
    signature: int yyparse (CfgParseContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1196
    functionName: YYPOPSTACK
    functionSourceFile: /src/xen/tools/libs/util/libxlu_cfg_y.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YYPOPSTACK(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/libs/util/libxlu_vif.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cfg
    - msg
    - rate
    argTypes:
    - XLU_Config*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: xlu__vif_err
    functionSourceFile: /src/xen/tools/libs/util/libxlu_vif.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void xlu__vif_err(XLU_Config *cfg, const char *msg, const char *rate)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/xen/tools/libs/util/libxlu_vif.c:22,1
    - Dst: regexec
      Src: /src/xen/tools/libs/util/libxlu_vif.c:23,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:24,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/util/libxlu_vif.c:30,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:32,1
    - Dst: regfree
      Src: /src/xen/tools/libs/util/libxlu_vif.c:49,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - cfg
    - bytes
    - bytes_per_sec
    argTypes:
    - XLU_Config*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 51
    functionName: vif_parse_rate_bytes_per_sec
    functionSourceFile: /src/xen/tools/libs/util/libxlu_vif.c
    functionUses: 0
    functionsReached:
    - regcomp
    - regexec
    - xlu__vif_err
    - strtoull
    - regfree
    linkageType: ''
    returnType: int
    signature: "int vif_parse_rate_bytes_per_sec(XLU_Config *cfg, const char *bytes,\n
      \                                       uint64_t *bytes_per_sec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/xen/tools/libs/util/libxlu_vif.c:61,1
    - Dst: regexec
      Src: /src/xen/tools/libs/util/libxlu_vif.c:62,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:63,1
    - Dst: strtoull
      Src: /src/xen/tools/libs/util/libxlu_vif.c:69,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:71,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:82,1
    - Dst: regfree
      Src: /src/xen/tools/libs/util/libxlu_vif.c:90,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - cfg
    - interval
    - interval_usecs
    argTypes:
    - XLU_Config*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: vif_parse_rate_interval_usecs
    functionSourceFile: /src/xen/tools/libs/util/libxlu_vif.c
    functionUses: 0
    functionsReached:
    - regcomp
    - regexec
    - xlu__vif_err
    - strtoull
    - regfree
    linkageType: ''
    returnType: int
    signature: "int vif_parse_rate_interval_usecs(XLU_Config *cfg, const char *interval,\n
      \                                        uint32_t *interval_usecs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/libs/util/libxlu_vif.c:102,1
    - Dst: strchr
      Src: /src/xen/tools/libs/util/libxlu_vif.c:108,1
    - Dst: strcmp
      Src: /src/xen/tools/libs/util/libxlu_vif.c:112,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:113,1
    - Dst: vif_parse_rate_bytes_per_sec
      Src: /src/xen/tools/libs/util/libxlu_vif.c:118,1
    - Dst: vif_parse_rate_interval_usecs
      Src: /src/xen/tools/libs/util/libxlu_vif.c:122,1
    - Dst: xlu__vif_err
      Src: /src/xen/tools/libs/util/libxlu_vif.c:127,1
    - Dst: free
      Src: /src/xen/tools/libs/util/libxlu_vif.c:139,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - cfg
    - rate
    - nic
    argTypes:
    - XLU_Config*
    - char*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 141
    functionName: xlu_vif_parse_rate
    functionSourceFile: /src/xen/tools/libs/util/libxlu_vif.c
    functionUses: 0
    functionsReached:
    - vif_parse_rate_interval_usecs
    - free
    - strchr
    - strdup
    - xlu__vif_err
    - strcmp
    - vif_parse_rate_bytes_per_sec
    linkageType: ''
    returnType: int
    signature: int xlu_vif_parse_rate(XLU_Config *cfg, const char *rate, libxl_device_nic
      *nic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONTAINER_OF
      Src: /src/xen/tools/libs/foreignmemory/core.c:25,1
    - Dst: xenforeignmemory_restrict
      Src: /src/xen/tools/libs/foreignmemory/core.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ah
    - domid
    argTypes:
    - Xentoolcore__Active_Handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: all_restrict_cb
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 0
    functionsReached:
    - xenforeignmemory_restrict
    - CONTAINER_OF
    linkageType: ''
    returnType: int
    signature: int all_restrict_cb(Xentoolcore__Active_Handle *ah, domid_t domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/foreignmemory/core.c:37,1
    - Dst: xentoolcore__register_active_handle
      Src: /src/xen/tools/libs/foreignmemory/core.c:47,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/libs/foreignmemory/core.c:52,1
    - Dst: osdep_xenforeignmemory_open
      Src: /src/xen/tools/libs/foreignmemory/core.c:56,1
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/foreignmemory/core.c:62,1
    - Dst: osdep_xenforeignmemory_close
      Src: /src/xen/tools/libs/foreignmemory/core.c:63,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/foreignmemory/core.c:64,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/core.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - logger
    - open_flags
    argTypes:
    - xentoollog_logger*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 67
    functionName: xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 3
    functionsReached:
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - xentoolcore__deregister_active_handle
    - free
    - malloc
    - osdep_xenforeignmemory_close
    - osdep_xenforeignmemory_open
    - xentoolcore__register_active_handle
    linkageType: ''
    returnType: xenforeignmemory_handle
    signature: "xenforeignmemory_handle *xenforeignmemory_open(xentoollog_logger *logger,\n
      \                                              unsigned open_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xentoolcore__deregister_active_handle
      Src: /src/xen/tools/libs/foreignmemory/core.c:76,1
    - Dst: osdep_xenforeignmemory_close
      Src: /src/xen/tools/libs/foreignmemory/core.c:77,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/libs/foreignmemory/core.c:78,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/core.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 4
    functionsReached:
    - free
    - xtl_logger_destroy
    - xentoolcore__deregister_active_handle
    - osdep_xenforeignmemory_close
    linkageType: ''
    returnType: int
    signature: int xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/foreignmemory/core.c:92,1
    - Dst: osdep_xenforeignmemory_map
      Src: /src/xen/tools/libs/foreignmemory/core.c:97,1
    - Dst: osdep_xenforeignmemory_unmap
      Src: /src/xen/tools/libs/foreignmemory/core.c:108,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/core.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: xenforeignmemory_map2
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 0
    functionsReached:
    - free
    - osdep_xenforeignmemory_map
    - malloc
    - osdep_xenforeignmemory_unmap
    linkageType: ''
    returnType: void
    signature: "void *xenforeignmemory_map2(xenforeignmemory_handle *fmem,\n                            uint32_t
      dom, void *addr,\n                            int prot, int flags, size_t num,\n
      \                           const xen_pfn_t arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenforeignmemory_map2
      Src: /src/xen/tools/libs/foreignmemory/core.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fmem
    - dom
    - prot
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 5
    functionsReached:
    - xenforeignmemory_map2
    linkageType: ''
    returnType: void
    signature: "void *xenforeignmemory_map(xenforeignmemory_handle *fmem,\n                           uint32_t
      dom, int prot,\n                           size_t num,\n                           const
      xen_pfn_t arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xenforeignmemory_unmap
      Src: /src/xen/tools/libs/foreignmemory/core.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 6
    functionsReached:
    - osdep_xenforeignmemory_unmap
    linkageType: ''
    returnType: int
    signature: "int xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n                           void
      *addr, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xenforeignmemory_restrict
      Src: /src/xen/tools/libs/foreignmemory/core.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - domid
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: xenforeignmemory_restrict
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 2
    functionsReached:
    - osdep_xenforeignmemory_restrict
    linkageType: ''
    returnType: int
    signature: "int xenforeignmemory_restrict(xenforeignmemory_handle *fmem,\n                              domid_t
      domid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/libs/foreignmemory/core.c:155,1
    - Dst: osdep_xenforeignmemory_map_resource
      Src: /src/xen/tools/libs/foreignmemory/core.c:171,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/core.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 9
    argNames:
    - fmem
    - domid
    - type
    - id
    - frame
    - nr_frames
    - paddr
    - prot
    - flags
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    - unsigned int
    - unsigned int
    - unsigned long
    - unsigned long
    - void**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 180
    functionName: xenforeignmemory_map_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 3
    functionsReached:
    - free
    - osdep_xenforeignmemory_map_resource
    - calloc
    linkageType: ''
    returnType: xenforeignmemory_resource_handle
    signature: "xenforeignmemory_resource_handle *xenforeignmemory_map_resource(\n
      \   xenforeignmemory_handle *fmem, domid_t domid, unsigned int type,\n    unsigned
      int id, unsigned long frame, unsigned long nr_frames,\n    void **paddr, int
      prot, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xenforeignmemory_unmap_resource
      Src: /src/xen/tools/libs/foreignmemory/core.c:185,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/core.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: xenforeignmemory_unmap_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 3
    functionsReached:
    - free
    - osdep_xenforeignmemory_unmap_resource
    linkageType: ''
    returnType: int
    signature: "int xenforeignmemory_unmap_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osdep_xenforeignmemory_map_resource
      Src: /src/xen/tools/libs/foreignmemory/core.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - fmem
    - domid
    - type
    - id
    - size
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    - unsigned int
    - unsigned int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: xenforeignmemory_resource_size
    functionSourceFile: /src/xen/tools/libs/foreignmemory/core.c
    functionUses: 1
    functionsReached:
    - osdep_xenforeignmemory_map_resource
    linkageType: ''
    returnType: int
    signature: "int xenforeignmemory_resource_size(\n    xenforeignmemory_handle *fmem,
      domid_t domid, unsigned int type,\n    unsigned int id, size_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmem
    - domid
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: osdep_xenforeignmemory_restrict
    functionSourceFile: /src/xen/tools/libs/foreignmemory/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem,\n
      \                                                 domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: osdep_xenforeignmemory_map_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_map_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: osdep_xenforeignmemory_unmap_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: PERROR
    functionSourceFile: /src/xen/tools/libs/foreignmemory/private.h
    functionUses: 136
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_f...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:31,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:35,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:43,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:45,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:49,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:51,1
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 63
    functionName: osdep_xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: osdep_xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:79,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:82,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:92,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:95,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: osdep_xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 1
    functionsReached:
    - munmap
    - ioctl
    - PERROR
    - mmap
    linkageType: ''
    returnType: void
    signature: "void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem,\n
      \                                uint32_t dom, void *addr,\n                                 int
      prot, int flags, size_t num,\n                                 const xen_pfn_t
      arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: osdep_xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n
      \                                void *addr, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmem
    - domid
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: osdep_xenforeignmemory_restrict
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem,\n
      \                                   domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: osdep_xenforeignmemory_unmap_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 1
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:139,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:147,1
    - Dst: osdep_xenforeignmemory_unmap_resource
      Src: /src/xen/tools/libs/foreignmemory/netbsd.c:157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: osdep_xenforeignmemory_map_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/netbsd.c
    functionUses: 2
    functionsReached:
    - osdep_xenforeignmemory_unmap_resource
    - ioctl
    - mmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_map_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/libs/foreignmemory/compat.c:37,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/foreignmemory/compat.c:43,1
    - Dst: osdep_map_foreign_batch
      Src: /src/xen/tools/libs/foreignmemory/compat.c:44,1
    - Dst: memset
      Src: /src/xen/tools/libs/foreignmemory/compat.c:57,1
    - Dst: free
      Src: /src/xen/tools/libs/foreignmemory/compat.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 62
    functionName: osdep_xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/compat.c
    functionUses: 1
    functionsReached:
    - osdep_map_foreign_batch
    - free
    - malloc
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem, uint32_t
      dom,\n                                 void *addr, int prot, int flags, size_t
      num,\n                                 const xen_pfn_t arr[/*num*/], int err[/*num*/])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/foreignmemory/linux.c:41,1
    - Dst: open
      Src: /src/xen/tools/libs/foreignmemory/linux.c:46,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/linux.c:51,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:60,1
    - Dst: xtl_log
      Src: /src/xen/tools/libs/foreignmemory/linux.c:62,1
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/linux.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 75
    functionName: osdep_xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - close
    - xtl_log
    - ioctl
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/linux.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: osdep_xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: usleep
      Src: /src/xen/tools/libs/foreignmemory/linux.c:99,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - fd
    - dom
    - mfn
    - addr
    argTypes:
    - int
    - uint32_t
    - xen_pfn_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: map_foreign_batch_single
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    - usleep
    linkageType: ''
    returnType: int
    signature: "int map_foreign_batch_single(int fd, uint32_t dom,\n                                    xen_pfn_t
      *mfn, unsigned long addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 6
    argNames:
    - fd
    - dom
    - addr
    - arr
    - err
    - num
    argTypes:
    - int
    - uint32_t
    - void*
    - xen_pfn_t*
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 159
    functionName: retry_paged
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int retry_paged(int fd, uint32_t dom, void *addr,\n                       const
      xen_pfn_t *arr, int *err, size_t num)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:171,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:182,1
    - Dst: usleep
      Src: /src/xen/tools/libs/foreignmemory/linux.c:188,1
    - Dst: retry_paged
      Src: /src/xen/tools/libs/foreignmemory/linux.c:189,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/libs/foreignmemory/linux.c:201,1
    - Dst: sysconf
      Src: /src/xen/tools/libs/foreignmemory/linux.c:202,1
    - Dst: alloca
      Src: /src/xen/tools/libs/foreignmemory/linux.c:205,1
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:208,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/linux.c:212,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:213,1
    - Dst: memcpy
      Src: /src/xen/tools/libs/foreignmemory/linux.c:218,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:225,1
    - Dst: map_foreign_batch_single
      Src: /src/xen/tools/libs/foreignmemory/linux.c:245,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:259,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:274,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 280
    functionName: osdep_xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 1
    functionsReached:
    - ROUNDUP
    - retry_paged
    - sysconf
    - PERROR
    - usleep
    - munmap
    - map_foreign_batch_single
    - mmap
    - memcpy
    - alloca
    - ioctl
    linkageType: ''
    returnType: void
    signature: "void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem,\n
      \                                uint32_t dom, void *addr,\n                                 int
      prot, int flags, size_t num,\n                                 const xen_pfn_t
      arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: osdep_xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n
      \                                void *addr, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - domid
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: osdep_xenforeignmemory_restrict
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem,\n
      \                                   domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: osdep_xenforeignmemory_unmap_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/linux.c:316,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/linux.c:324,1
    - Dst: osdep_xenforeignmemory_unmap_resource
      Src: /src/xen/tools/libs/foreignmemory/linux.c:335,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 347
    functionName: osdep_xenforeignmemory_map_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/linux.c
    functionUses: 2
    functionsReached:
    - osdep_xenforeignmemory_unmap_resource
    - ioctl
    - mmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_map_resource(\n    xenforeignmemory_handle
      *fmem, xenforeignmemory_resource_handle *fres)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:30,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:34,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:42,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:44,1
    - Dst: fcntl
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:48,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:50,1
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 62
    functionName: osdep_xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/solaris.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: osdep_xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/solaris.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:75,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:83,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - arr
    - num
    argTypes:
    - xenforeignmem_handle*
    - uint32_t
    - void*
    - int
    - int
    - xen_pfn_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: osdep_map_foreign_batch
    functionSourceFile: /src/xen/tools/libs/foreignmemory/solaris.c
    functionUses: 1
    functionsReached:
    - munmap
    - ioctl
    - mmap
    linkageType: ''
    returnType: void
    signature: "void *osdep_map_foreign_batch(xenforeignmem_handle *fmem, uint32_t
      dom,\n                              void *addr, int prot, int flags, xen_pfn_t
      *arr, int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/solaris.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: osdep_xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/solaris.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n
      \                                void *addr, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: osdep_xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: osdep_xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/minios.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_frames_ex
      Src: /src/xen/tools/libs/foreignmemory/minios.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: osdep_xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/minios.c
    functionUses: 1
    functionsReached:
    - map_frames_ex
    linkageType: ''
    returnType: void
    signature: "void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem,\n
      \                                uint32_t dom, void *addr,\n                                 int
      prot, int flags, size_t num,\n                                 const xen_pfn_t
      arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/minios.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: osdep_xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/minios.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n
      \                                void *addr, size_t num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:36,1
    - Dst: PERROR
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: osdep_xenforeignmemory_open
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_open(xenforeignmemory_handle *fmem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fmem
    argTypes:
    - xenforeignmemory_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: osdep_xenforeignmemory_close
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 2
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int osdep_xenforeignmemory_close(xenforeignmemory_handle *fmem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:66,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:76,1
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - fmem
    - dom
    - addr
    - prot
    - flags
    - num
    - arr
    - err
    argTypes:
    - xenforeignmemory_handle*
    - uint32_t
    - void*
    - int
    - int
    - size_t
    - xen_pfn_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 87
    functionName: osdep_xenforeignmemory_map
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 1
    functionsReached:
    - munmap
    - ioctl
    - mmap
    linkageType: ''
    returnType: void
    signature: "void *osdep_xenforeignmemory_map(xenforeignmemory_handle *fmem,\n
      \                                uint32_t dom, void *addr,\n                                 int
      prot, int flags, size_t num,\n                                 const xen_pfn_t
      arr[/*num*/], int err[/*num*/])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fmem
    - addr
    - num
    argTypes:
    - xenforeignmemory_handle*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: osdep_xenforeignmemory_unmap
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 2
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap(xenforeignmemory_handle *fmem,\n
      \                                void *addr, size_t num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - domid
    argTypes:
    - xenforeignmemory_handle*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: osdep_xenforeignmemory_restrict
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 1
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_restrict(xenforeignmemory_handle *fmem,\n
      \                                   domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: osdep_xenforeignmemory_unmap_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 3
    functionsReached:
    - munmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_unmap_resource(xenforeignmemory_handle
      *fmem,\n                                        xenforeignmemory_resource_handle
      *fres)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:123,1
    - Dst: ioctl
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:131,1
    - Dst: osdep_xenforeignmemory_unmap_resource
      Src: /src/xen/tools/libs/foreignmemory/freebsd.c:142,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - fmem
    - fres
    argTypes:
    - xenforeignmemory_handle*
    - xenforeignmemory_resource_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 154
    functionName: osdep_xenforeignmemory_map_resource
    functionSourceFile: /src/xen/tools/libs/foreignmemory/freebsd.c
    functionUses: 2
    functionsReached:
    - osdep_xenforeignmemory_unmap_resource
    - ioctl
    - mmap
    linkageType: ''
    returnType: int
    signature: "int osdep_xenforeignmemory_map_resource(xenforeignmemory_handle *fmem,\n
      \                                       xenforeignmemory_resource_handle *fres)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/xl/xl_nic.c:30,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_nic.c:31,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_nic.c:35,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_nic.c:36,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_nic.c:40,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_nic.c:41,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_nic.c:45,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_nic.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - nic
    argTypes:
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 48
    functionName: set_default_nic_values
    functionSourceFile: /src/xen/tools/xl/xl_nic.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_default_nic_values(libxl_device_nic *nic)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_nic.c:57,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_nic.c:61,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_nic.c:63,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_nic.c:65,1
    - Dst: libxl_device_nic_init
      Src: /src/xen/tools/xl/xl_nic.c:69,1
    - Dst: set_default_nic_values
      Src: /src/xen/tools/xl/xl_nic.c:70,1
    - Dst: parse_nic_config
      Src: /src/xen/tools/xl/xl_nic.c:73,1
    - Dst: libxl_device_nic_to_json
      Src: /src/xen/tools/xl/xl_nic.c:78,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_nic.c:79,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_nic.c:80,1
    - Dst: libxl_device_nic_dispose
      Src: /src/xen/tools/xl/xl_nic.c:81,1
    - Dst: ferror
      Src: /src/xen/tools/xl/xl_nic.c:82,1
    - Dst: fflush
      Src: /src/xen/tools/xl/xl_nic.c:82,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_nic.c:82,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_nic.c:82,1
    - Dst: libxl_device_nic_add
      Src: /src/xen/tools/xl/xl_nic.c:86,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_nic.c:87,1
    - Dst: libxl_device_nic_dispose
      Src: /src/xen/tools/xl/xl_nic.c:90,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_nic.c:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 93
    functionName: main_networkattach
    functionSourceFile: /src/xen/tools/xl/xl_nic.c
    functionUses: 0
    functionsReached:
    - find_domain
    - ferror
    - free
    - libxl_device_nic_add
    - set_default_nic_values
    - libxl_device_nic_to_json
    - libxl_device_nic_dispose
    - fflush
    - xlu_cfg_destroy
    - fprintf
    - parse_nic_config
    - printf
    - exit
    - libxl_device_nic_init
    - xlu_cfg_init
    - perror
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_networkattach(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_nic.c:102,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_nic.c:107,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_nic.c:110,1
    - Dst: libxl_device_nic_list
      Src: /src/xen/tools/xl/xl_nic.c:111,1
    - Dst: libxl_device_nic_getinfo
      Src: /src/xen/tools/xl/xl_nic.c:116,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_nic.c:118,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_nic.c:120,1
    - Dst: LIBXL_MAC_BYTES
      Src: /src/xen/tools/xl/xl_nic.c:120,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_nic.c:122,1
    - Dst: libxl_nicinfo_dispose
      Src: /src/xen/tools/xl/xl_nic.c:125,1
    - Dst: libxl_device_nic_list_free
      Src: /src/xen/tools/xl/xl_nic.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 131
    functionName: main_networklist
    functionSourceFile: /src/xen/tools/xl/xl_nic.c
    functionUses: 0
    functionsReached:
    - libxl_device_nic_list_free
    - find_domain
    - libxl_device_nic_getinfo
    - libxl_nicinfo_dispose
    - libxl_device_nic_list
    - LIBXL_MAC_BYTES
    - printf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_networklist(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_nic.c:139,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_nic.c:143,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_nic.c:145,1
    - Dst: libxl_devid_to_device_nic
      Src: /src/xen/tools/xl/xl_nic.c:146,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_nic.c:146,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_nic.c:147,1
    - Dst: libxl_mac_to_device_nic
      Src: /src/xen/tools/xl/xl_nic.c:151,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_nic.c:152,1
    - Dst: libxl_device_nic_remove
      Src: /src/xen/tools/xl/xl_nic.c:156,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_nic.c:157,1
    - Dst: libxl_device_nic_dispose
      Src: /src/xen/tools/xl/xl_nic.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 162
    functionName: main_networkdetach
    functionSourceFile: /src/xen/tools/xl/xl_nic.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_devid_to_device_nic
    - libxl_mac_to_device_nic
    - libxl_device_nic_remove
    - libxl_device_nic_dispose
    - strchr
    - fprintf
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_networkdetach(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_misc.c:30,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_misc.c:32,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:35,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:36,1
    - Dst: libxl_send_trigger
      Src: /src/xen/tools/xl/xl_misc.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - domid
    - b
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 10
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: button_press
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_send_trigger
    - strcmp
    - fprintf
    linkageType: ''
    returnType: void
    signature: void button_press(uint32_t domid, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:46,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:50,1
    - Dst: button_press
      Src: /src/xen/tools/xl/xl_misc.c:54,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 11
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: main_button_press
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - button_press
    - fprintf
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_button_press(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:65,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:72,1
    - Dst: libxl_domain_rename
      Src: /src/xen/tools/xl/xl_misc.c:73,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 79
    functionName: main_rename
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 5
    functionsReached:
    - libxl_domain_rename
    - find_domain
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_rename(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:90,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:94,1
    - Dst: libxl_trigger_from_string
      Src: /src/xen/tools/xl/xl_misc.c:97,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:98,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_misc.c:103,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_misc.c:104,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:105,1
    - Dst: libxl_send_trigger
      Src: /src/xen/tools/xl/xl_misc.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 81
    functionDepth: 10
    functionLinenumber: 81
    functionLinenumberEnd: 112
    functionName: main_trigger
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_trigger_from_string
    - libxl_send_trigger
    - fprintf
    - strtol
    - strcmp
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_trigger(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:120,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:124,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:129,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_misc.c:130,1
    - Dst: libxl_send_sysrq
      Src: /src/xen/tools/xl/xl_misc.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 137
    functionName: main_sysrq
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - find_domain
    - help
    - fprintf
    - libxl_send_sysrq
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_sysrq(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:144,1
    - Dst: libxl_send_debug_keys
      Src: /src/xen/tools/xl/xl_misc.c:150,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: main_debug_keys
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - libxl_send_debug_keys
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_debug_keys(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:163,1
    - Dst: libxl_set_parameters
      Src: /src/xen/tools/xl/xl_misc.c:169,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: main_set_parameters
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - libxl_set_parameters
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_set_parameters(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:187,1
    - Dst: do_daemonize
      Src: /src/xen/tools/xl/xl_misc.c:197,1
    - Dst: libxl_device_events_handler
      Src: /src/xen/tools/xl/xl_misc.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 7
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: main_devd
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - do_daemonize
    - libxl_device_events_handler
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_devd(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:218,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:222,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:226,1
    - Dst: libxl_qemu_monitor_command
      Src: /src/xen/tools/xl/xl_misc.c:230,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_misc.c:232,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 237
    functionName: main_qemu_monitor_command
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - find_domain
    - free
    - fprintf
    - libxl_qemu_monitor_command
    - printf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_qemu_monitor_command(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_core_dump
      Src: /src/xen/tools/xl/xl_misc.c:243,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:244,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - domid
    - filename
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: core_dump_domain
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - libxl_domain_core_dump
    linkageType: ''
    returnType: void
    signature: void core_dump_domain(uint32_t domid, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:251,1
    - Dst: core_dump_domain
      Src: /src/xen/tools/xl/xl_misc.c:255,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: main_dump_core
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - find_domain
    - core_dump_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_dump_core(int argc, char **argv)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:275,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_misc.c:276,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:277,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:280,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_misc.c:283,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_misc.c:286,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_misc.c:291,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_misc.c:301,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_misc.c:302,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_misc.c:303,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_misc.c:307,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:308,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:313,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl_misc.c:314,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:316,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_misc.c:317,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:318,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_misc.c:319,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_misc.c:320,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:321,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:322,1
    - Dst: realloc
      Src: /src/xen/tools/xl/xl_misc.c:325,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_misc.c:326,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:328,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:329,1
    - Dst: sprintf
      Src: /src/xen/tools/xl/xl_misc.c:331,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:335,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:336,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_misc.c:339,1
    - Dst: parse_config_data
      Src: /src/xen/tools/xl/xl_misc.c:341,1
    - Dst: printf_info
      Src: /src/xen/tools/xl/xl_misc.c:344,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:347,1
    - Dst: libxl_userdata_store
      Src: /src/xen/tools/xl/xl_misc.c:348,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_misc.c:351,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_misc.c:352,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_misc.c:356,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:358,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_misc.c:359,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 361
    functionName: main_config_update
    functionSourceFile: /src/xen/tools/xl/xl_misc.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_domain_config_init
    - string_realloc_append
    - free
    - sprintf
    - libxl_domain_config_dispose
    - strchr
    - parse_config_data
    - help
    - libxl_read_file_contents
    - fprintf
    - strerror
    - strlen
    - printf_info
    - exit
    - realloc
    - libxl_userdata_store
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_config_update(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_cdrom.c:36,1
    - Dst: parse_disk_config
      Src: /src/xen/tools/xl/xl_cdrom.c:39,1
    - Dst: stat
      Src: /src/xen/tools/xl/xl_cdrom.c:47,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cdrom.c:48,1
    - Dst: libxl_cdrom_insert
      Src: /src/xen/tools/xl/xl_cdrom.c:54,1
    - Dst: libxl_device_disk_dispose
      Src: /src/xen/tools/xl/xl_cdrom.c:62,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cdrom.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - domid
    - virtdev
    - phys
    argTypes:
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 66
    functionName: cd_insert
    functionSourceFile: /src/xen/tools/xl/xl_cdrom.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - free
    - stat
    - parse_disk_config
    - libxl_cdrom_insert
    - fprintf
    - libxl_device_disk_dispose
    linkageType: ''
    returnType: int
    signature: int cd_insert(uint32_t domid, const char *virtdev, char *phys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cdrom.c:74,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_cdrom.c:78,1
    - Dst: cd_insert
      Src: /src/xen/tools/xl/xl_cdrom.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: main_cd_eject
    functionSourceFile: /src/xen/tools/xl/xl_cdrom.c
    functionUses: 0
    functionsReached:
    - find_domain
    - cd_insert
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cd_eject(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cdrom.c:94,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_cdrom.c:98,1
    - Dst: cd_insert
      Src: /src/xen/tools/xl/xl_cdrom.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 106
    functionName: main_cd_insert
    functionSourceFile: /src/xen/tools/xl/xl_cdrom.c
    functionUses: 0
    functionsReached:
    - find_domain
    - cd_insert
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cd_insert(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_list
      Src: /src/xen/tools/xl/xl_pci.c:30,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_pci.c:33,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_pci.c:35,1
    - Dst: libxl_device_pci_list_free
      Src: /src/xen/tools/xl/xl_pci.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: pcilist
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_list_free
    - libxl_device_pci_list
    - printf
    linkageType: ''
    returnType: void
    signature: void pcilist(uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:47,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_pci.c:51,1
    - Dst: pcilist
      Src: /src/xen/tools/xl/xl_pci.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: main_pcilist
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - pcilist
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pcilist(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/xl/xl_pci.c:63,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_pci.c:65,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_pci.c:66,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:66,1
    - Dst: xlu_pci_parse_spec_string
      Src: /src/xen/tools/xl/xl_pci.c:68,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:69,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:71,1
    - Dst: libxl_device_pci_destroy
      Src: /src/xen/tools/xl/xl_pci.c:74,1
    - Dst: libxl_device_pci_remove
      Src: /src/xen/tools/xl/xl_pci.c:77,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/xl/xl_pci.c:81,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_pci.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - domid
    - spec_string
    - force
    argTypes:
    - uint32_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: pcidetach
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_init
    - libxl_device_pci_destroy
    - libxl_device_pci_remove
    - xlu_cfg_destroy
    - fprintf
    - xlu_pci_parse_spec_string
    - exit
    - libxl_device_pci_dispose
    - xlu_cfg_init
    - perror
    linkageType: ''
    returnType: int
    signature: int pcidetach(uint32_t domid, const char *spec_string, int force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:94,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_pci.c:100,1
    - Dst: pcidetach
      Src: /src/xen/tools/xl/xl_pci.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 107
    functionName: main_pcidetach
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - find_domain
    - SWITCH_FOREACH_OPT
    - pcidetach
    linkageType: ''
    returnType: int
    signature: int main_pcidetach(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/xl/xl_pci.c:115,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_pci.c:117,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_pci.c:118,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:118,1
    - Dst: xlu_pci_parse_spec_string
      Src: /src/xen/tools/xl/xl_pci.c:120,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:121,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:123,1
    - Dst: libxl_device_pci_add
      Src: /src/xen/tools/xl/xl_pci.c:126,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/xl/xl_pci.c:129,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_pci.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - domid
    - spec_string
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 133
    functionName: pciattach
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_init
    - libxl_device_pci_add
    - xlu_cfg_destroy
    - fprintf
    - xlu_pci_parse_spec_string
    - exit
    - libxl_device_pci_dispose
    - xlu_cfg_init
    - perror
    linkageType: ''
    returnType: int
    signature: int pciattach(uint32_t domid, const char *spec_string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:141,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_pci.c:145,1
    - Dst: pciattach
      Src: /src/xen/tools/xl/xl_pci.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: main_pciattach
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - pciattach
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pciattach(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_assignable_list
      Src: /src/xen/tools/xl/xl_pci.c:159,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_pci.c:167,1
    - Dst: libxl_device_pci_assignable_list_free
      Src: /src/xen/tools/xl/xl_pci.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - show_names
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: pciassignable_list
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_assignable_list_free
    - libxl_device_pci_assignable_list
    - printf
    linkageType: ''
    returnType: void
    signature: void pciassignable_list(bool show_names)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:183,1
    - Dst: pciassignable_list
      Src: /src/xen/tools/xl/xl_pci.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: main_pciassignable_list
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - pciassignable_list
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pciassignable_list(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/xl/xl_pci.c:199,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_pci.c:201,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_pci.c:202,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:202,1
    - Dst: xlu_pci_parse_bdf
      Src: /src/xen/tools/xl/xl_pci.c:204,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:205,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:206,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_pci.c:210,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:212,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:213,1
    - Dst: libxl_device_pci_assignable_add
      Src: /src/xen/tools/xl/xl_pci.c:217,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/xl/xl_pci.c:219,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_pci.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - bdf
    - name
    - rebind
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 193
    functionDepth: 6
    functionLinenumber: 193
    functionLinenumberEnd: 223
    functionName: pciassignable_add
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_init
    - libxl_device_pci_assignable_add
    - xlu_cfg_destroy
    - xlu_pci_parse_bdf
    - fprintf
    - strdup
    - exit
    - libxl_device_pci_dispose
    - xlu_cfg_init
    - perror
    linkageType: ''
    returnType: int
    signature: int pciassignable_add(const char *bdf, const char *name, int rebind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:235,1
    - Dst: pciassignable_add
      Src: /src/xen/tools/xl/xl_pci.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 225
    functionDepth: 7
    functionLinenumber: 225
    functionLinenumberEnd: 247
    functionName: main_pciassignable_add
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - pciassignable_add
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pciassignable_add(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_pci_init
      Src: /src/xen/tools/xl/xl_pci.c:255,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_pci.c:257,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_pci.c:258,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:258,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_pci.c:261,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:263,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:264,1
    - Dst: libxl_device_pci_assignable_remove
      Src: /src/xen/tools/xl/xl_pci.c:267,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_pci.c:272,1
    - Dst: xlu_pci_parse_bdf
      Src: /src/xen/tools/xl/xl_pci.c:275,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_pci.c:276,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_pci.c:278,1
    - Dst: libxl_device_pci_assignable_remove
      Src: /src/xen/tools/xl/xl_pci.c:281,1
    - Dst: libxl_device_pci_dispose
      Src: /src/xen/tools/xl/xl_pci.c:284,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_pci.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ident
    - rebind
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 288
    functionName: pciassignable_remove
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - libxl_device_pci_init
    - libxl_device_pci_assignable_remove
    - free
    - xlu_cfg_destroy
    - xlu_pci_parse_bdf
    - fprintf
    - strdup
    - exit
    - libxl_device_pci_dispose
    - xlu_cfg_init
    - perror
    linkageType: ''
    returnType: int
    signature: int pciassignable_remove(const char *ident, int rebind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_pci.c:296,1
    - Dst: pciassignable_remove
      Src: /src/xen/tools/xl/xl_pci.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: main_pciassignable_remove
    functionSourceFile: /src/xen/tools/xl/xl_pci.c
    functionUses: 0
    functionsReached:
    - pciassignable_remove
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pciassignable_remove(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vdispl.c:32,1
    - Dst: libxl_device_vdispl_init
      Src: /src/xen/tools/xl/xl_vdispl.c:36,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vdispl.c:37,1
    - Dst: parse_vdispl_config
      Src: /src/xen/tools/xl/xl_vdispl.c:40,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vdispl.c:45,1
    - Dst: libxl_device_vdispl_to_json
      Src: /src/xen/tools/xl/xl_vdispl.c:50,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vdispl.c:51,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vdispl.c:52,1
    - Dst: libxl_device_vdispl_add
      Src: /src/xen/tools/xl/xl_vdispl.c:57,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vdispl.c:58,1
    - Dst: libxl_device_vdispl_dispose
      Src: /src/xen/tools/xl/xl_vdispl.c:65,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 67
    functionName: main_vdisplattach
    functionSourceFile: /src/xen/tools/xl/xl_vdispl.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_vdispl_dispose
    - free
    - libxl_device_vdispl_init
    - libxl_device_vdispl_add
    - fprintf
    - printf
    - parse_vdispl_config
    - libxl_device_vdispl_to_json
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vdisplattach(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vdispl.c:76,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_vdispl.c:83,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vdispl.c:84,1
    - Dst: libxl_device_vdispl_list
      Src: /src/xen/tools/xl/xl_vdispl.c:88,1
    - Dst: libxl_vdisplinfo_init
      Src: /src/xen/tools/xl/xl_vdispl.c:93,1
    - Dst: libxl_device_vdispl_getinfo
      Src: /src/xen/tools/xl/xl_vdispl.c:94,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vdispl.c:96,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vdispl.c:104,1
    - Dst: libxl_vdisplinfo_dispose
      Src: /src/xen/tools/xl/xl_vdispl.c:116,1
    - Dst: libxl_device_vdispl_list_free
      Src: /src/xen/tools/xl/xl_vdispl.c:118,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 69
    functionDepth: 6
    functionLinenumber: 69
    functionLinenumberEnd: 121
    functionName: main_vdispllist
    functionSourceFile: /src/xen/tools/xl/xl_vdispl.c
    functionUses: 0
    functionsReached:
    - libxl_device_vdispl_getinfo
    - libxl_domain_qualifier_to_domid
    - libxl_vdisplinfo_init
    - libxl_device_vdispl_list
    - libxl_vdisplinfo_dispose
    - fprintf
    - printf
    - libxl_device_vdispl_list_free
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vdispllist(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vdispl.c:129,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vdispl.c:133,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_vdispl.c:134,1
    - Dst: libxl_device_vdispl_init
      Src: /src/xen/tools/xl/xl_vdispl.c:136,1
    - Dst: libxl_devid_to_device_vdispl
      Src: /src/xen/tools/xl/xl_vdispl.c:138,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vdispl.c:139,1
    - Dst: libxl_device_vdispl_remove
      Src: /src/xen/tools/xl/xl_vdispl.c:144,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vdispl.c:146,1
    - Dst: libxl_device_vdispl_dispose
      Src: /src/xen/tools/xl/xl_vdispl.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 156
    functionName: main_vdispldetach
    functionSourceFile: /src/xen/tools/xl/xl_vdispl.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_devid_to_device_vdispl
    - libxl_device_vdispl_dispose
    - libxl_device_vdispl_remove
    - libxl_device_vdispl_init
    - fprintf
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vdispldetach(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vtpm.c:32,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_vtpm.c:36,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:37,1
    - Dst: libxl_device_vtpm_init
      Src: /src/xen/tools/xl/xl_vtpm.c:42,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_vtpm.c:44,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/xl/xl_vtpm.c:45,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:46,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:47,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_vtpm.c:50,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_vtpm.c:51,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:53,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:54,1
    - Dst: libxl_device_vtpm_to_json
      Src: /src/xen/tools/xl/xl_vtpm.c:60,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vtpm.c:61,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vtpm.c:62,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:63,1
    - Dst: ferror
      Src: /src/xen/tools/xl/xl_vtpm.c:64,1
    - Dst: fflush
      Src: /src/xen/tools/xl/xl_vtpm.c:64,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_vtpm.c:64,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vtpm.c:64,1
    - Dst: libxl_device_vtpm_add
      Src: /src/xen/tools/xl/xl_vtpm.c:68,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:69,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:70,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 75
    functionName: main_vtpmattach
    functionSourceFile: /src/xen/tools/xl/xl_vtpm.c
    functionUses: 0
    functionsReached:
    - ferror
    - libxl_uuid_from_string
    - libxl_device_vtpm_add
    - free
    - libxl_domain_qualifier_to_domid
    - libxl_device_vtpm_dispose
    - replace_string
    - libxl_device_vtpm_to_json
    - fflush
    - fprintf
    - printf
    - exit
    - MATCH_OPTION
    - libxl_device_vtpm_init
    - SWITCH_FOREACH_OPT
    - perror
    linkageType: ''
    returnType: int
    signature: int main_vtpmattach(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vtpm.c:84,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vtpm.c:89,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_vtpm.c:93,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:94,1
    - Dst: libxl_device_vtpm_list
      Src: /src/xen/tools/xl/xl_vtpm.c:97,1
    - Dst: libxl_device_vtpm_getinfo
      Src: /src/xen/tools/xl/xl_vtpm.c:101,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vtpm.c:103,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/xl/xl_vtpm.c:105,1
    - Dst: libxl_vtpminfo_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:109,1
    - Dst: libxl_device_vtpm_list_free
      Src: /src/xen/tools/xl/xl_vtpm.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 115
    functionName: main_vtpmlist
    functionSourceFile: /src/xen/tools/xl/xl_vtpm.c
    functionUses: 0
    functionsReached:
    - libxl_device_vtpm_list_free
    - libxl_device_vtpm_getinfo
    - libxl_device_vtpm_list
    - libxl_domain_qualifier_to_domid
    - libxl_vtpminfo_dispose
    - fprintf
    - printf
    - LIBXL_UUID_BYTES
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vtpmlist(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vtpm.c:124,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vtpm.c:128,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/xl/xl_vtpm.c:130,1
    - Dst: libxl_devid_to_device_vtpm
      Src: /src/xen/tools/xl/xl_vtpm.c:131,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_vtpm.c:131,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:132,1
    - Dst: libxl_uuid_to_device_vtpm
      Src: /src/xen/tools/xl/xl_vtpm.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:137,1
    - Dst: libxl_device_vtpm_remove
      Src: /src/xen/tools/xl/xl_vtpm.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vtpm.c:143,1
    - Dst: libxl_device_vtpm_dispose
      Src: /src/xen/tools/xl/xl_vtpm.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 147
    functionName: main_vtpmdetach
    functionSourceFile: /src/xen/tools/xl/xl_vtpm.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_devid_to_device_vtpm
    - libxl_uuid_from_string
    - libxl_uuid_to_device_vtpm
    - fprintf
    - libxl_device_vtpm_remove
    - atoi
    - libxl_device_vtpm_dispose
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vtpmdetach(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vkb.c:34,1
    - Dst: libxl_device_vkb_init
      Src: /src/xen/tools/xl/xl_vkb.c:38,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vkb.c:39,1
    - Dst: parse_vkb_config
      Src: /src/xen/tools/xl/xl_vkb.c:42,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vkb.c:47,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vkb.c:58,1
    - Dst: libxl_device_vkb_to_json
      Src: /src/xen/tools/xl/xl_vkb.c:64,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vkb.c:65,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vkb.c:66,1
    - Dst: libxl_device_vkb_add
      Src: /src/xen/tools/xl/xl_vkb.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vkb.c:71,1
    - Dst: libxl_device_vkb_dispose
      Src: /src/xen/tools/xl/xl_vkb.c:79,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 81
    functionName: main_vkbattach
    functionSourceFile: /src/xen/tools/xl/xl_vkb.c
    functionUses: 0
    functionsReached:
    - libxl_device_vkb_to_json
    - find_domain
    - free
    - libxl_device_vkb_init
    - parse_vkb_config
    - fprintf
    - printf
    - libxl_device_vkb_add
    - libxl_device_vkb_dispose
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vkbattach(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vkb.c:90,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vkb.c:95,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vkb.c:99,1
    - Dst: libxl_device_vkb_list
      Src: /src/xen/tools/xl/xl_vkb.c:100,1
    - Dst: libxl_device_vkb_getinfo
      Src: /src/xen/tools/xl/xl_vkb.c:105,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vkb.c:106,1
    - Dst: libxl_vkb_backend_to_string
      Src: /src/xen/tools/xl/xl_vkb.c:110,1
    - Dst: libxl_vkbinfo_dispose
      Src: /src/xen/tools/xl/xl_vkb.c:112,1
    - Dst: libxl_device_vkb_list_free
      Src: /src/xen/tools/xl/xl_vkb.c:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 118
    functionName: main_vkblist
    functionSourceFile: /src/xen/tools/xl/xl_vkb.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_vkb_list
    - libxl_device_vkb_getinfo
    - libxl_vkb_backend_to_string
    - libxl_vkbinfo_dispose
    - libxl_device_vkb_list_free
    - printf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vkblist(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vkb.c:126,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vkb.c:130,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_vkb.c:131,1
    - Dst: libxl_device_vkb_init
      Src: /src/xen/tools/xl/xl_vkb.c:133,1
    - Dst: libxl_devid_to_device_vkb
      Src: /src/xen/tools/xl/xl_vkb.c:135,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vkb.c:136,1
    - Dst: libxl_device_vkb_remove
      Src: /src/xen/tools/xl/xl_vkb.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vkb.c:143,1
    - Dst: libxl_device_vkb_dispose
      Src: /src/xen/tools/xl/xl_vkb.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 153
    functionName: main_vkbdetach
    functionSourceFile: /src/xen/tools/xl/xl_vkb.c
    functionUses: 0
    functionsReached:
    - find_domain
    - SWITCH_FOREACH_OPT
    - libxl_device_vkb_remove
    - libxl_device_vkb_init
    - fprintf
    - libxl_device_vkb_dispose
    - atoi
    - libxl_devid_to_device_vkb
    linkageType: ''
    returnType: int
    signature: int main_vkbdetach(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xl/xl_utils.c:40,1
    - Dst: vasprintf
      Src: /src/xen/tools/xl/xl_utils.c:41,1
    - Dst: va_end
      Src: /src/xen/tools/xl/xl_utils.c:42,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_utils.c:46,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_utils.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - file
    - line
    - func
    - fmt
    argTypes:
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: dolog
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - va_start
    - vasprintf
    - free
    - libxl_write_exactly
    - va_end
    linkageType: ''
    returnType: void
    signature: void dolog(const char *file, int line, const char *func, const char
      *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vasprintf
      Src: /src/xen/tools/xl/xl_utils.c:52,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:54,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - strp
    - fmt
    - ap
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: xvasprintf
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - exit
    - perror
    - vasprintf
    linkageType: ''
    returnType: void
    signature: void xvasprintf(char **strp, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xl/xl_utils.c:62,1
    - Dst: xvasprintf
      Src: /src/xen/tools/xl/xl_utils.c:63,1
    - Dst: va_end
      Src: /src/xen/tools/xl/xl_utils.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strp
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: xasprintf
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 1
    functionsReached:
    - va_start
    - va_end
    - xvasprintf
    linkageType: ''
    returnType: void
    signature: void xasprintf(char **strp, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xl/xl_utils.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:72,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: xmalloc
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 1
    functionsReached:
    - exit
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/xl/xl_utils.c:81,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:83,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: xcalloc
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - calloc
    linkageType: ''
    returnType: void
    signature: void *xcalloc(size_t n, size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/xl/xl_utils.c:93,1
    - Dst: realloc
      Src: /src/xen/tools/xl/xl_utils.c:99,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:101,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ptr
    - sz
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: xrealloc
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - free
    - realloc
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void *xrealloc(void *ptr, size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_utils.c:111,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:113,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_utils.c:114,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: xstrdup
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strlen
    - strdup
    linkageType: ''
    returnType: char
    signature: char *xstrdup(const char *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/tools/xl/xl_utils.c:125,1
    - Dst: ferror
      Src: /src/xen/tools/xl/xl_utils.c:127,1
    - Dst: fflush
      Src: /src/xen/tools/xl/xl_utils.c:127,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:128,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fh
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: flush_stream
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - ferror
    - abort
    - fflush
    - exit
    - perror
    linkageType: ''
    returnType: void
    signature: void flush_stream(FILE *fh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_utils.c:138,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:140,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:141,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_utils.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: find_domain
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 21
    functionsReached:
    - exit
    - libxl_domain_qualifier_to_domid
    - libxl_domid_to_name
    - fprintf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t find_domain(const char *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xl/xl_utils.c:165,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_utils.c:167,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:168,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:170,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:171,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_utils.c:174,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:175,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:181,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_utils.c:183,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - argc
    - argv
    - optstring
    - longopts
    - helpstr
    - reqargs
    argTypes:
    - int
    - char*[]
    - char*
    - struct option*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 187
    functionName: def_getopt
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - exit
    - help
    - fprintf
    - getopt_long
    linkageType: ''
    returnType: int
    signature: "int def_getopt(int argc, char * const argv[],\n                const
      char *optstring,\n                const struct option *longopts,\n                const
      char* helpstr, int reqargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_utils.c:194,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_utils.c:195,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:197,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:198,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_utils.c:201,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_utils.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - accumulate
    - more
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: string_realloc_append
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 1
    functionsReached:
    - xrealloc
    - fprintf
    - strlen
    - exit
    - memcpy
    linkageType: ''
    returnType: void
    signature: void string_realloc_append(char **accumulate, const char *more)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:228,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:230,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:238,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:244,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:248,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_utils.c:250,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - map
    - maplen
    - stream
    argTypes:
    - uint8_t*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 253
    functionName: print_bitmap
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_bitmap(uint8_t *map, int maplen, FILE *stream)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xl_fork
      Src: /src/xen/tools/xl/xl_utils.c:261,1
    - Dst: child_report
      Src: /src/xen/tools/xl/xl_utils.c:263,1
    - Dst: postfork
      Src: /src/xen/tools/xl/xl_utils.c:269,1
    - Dst: libxl_create_logfile
      Src: /src/xen/tools/xl/xl_utils.c:271,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_utils.c:273,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_utils.c:273,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:274,1
    - Dst: CHK_SYSCALL
      Src: /src/xen/tools/xl/xl_utils.c:277,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_utils.c:277,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_utils.c:278,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_utils.c:279,1
    - Dst: CHK_SYSCALL
      Src: /src/xen/tools/xl/xl_utils.c:281,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_utils.c:281,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_utils.c:282,1
    - Dst: dup2
      Src: /src/xen/tools/xl/xl_utils.c:284,1
    - Dst: dup2
      Src: /src/xen/tools/xl/xl_utils.c:285,1
    - Dst: dup2
      Src: /src/xen/tools/xl/xl_utils.c:286,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_utils.c:288,1
    - Dst: CHK_SYSCALL
      Src: /src/xen/tools/xl/xl_utils.c:290,1
    - Dst: daemon
      Src: /src/xen/tools/xl/xl_utils.c:290,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_utils.c:293,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:297,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:298,1
    - Dst: asprintf
      Src: /src/xen/tools/xl/xl_utils.c:301,1
    - Dst: getpid
      Src: /src/xen/tools/xl/xl_utils.c:301,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:302,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:303,1
    - Dst: write
      Src: /src/xen/tools/xl/xl_utils.c:306,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_utils.c:306,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:307,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:308,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_utils.c:311,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_utils.c:312,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_utils.c:313,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_utils.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - name
    - pidfile
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (logfile >= 3)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/xen/tools/xl/xl_utils.c
    - condition: (nullfd >= 3)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/xen/tools/xl/xl_utils.c
    constantsTouched: []
    func_position:
      end: 321
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 321
    functionName: do_daemonize
    functionSourceFile: /src/xen/tools/xl/xl_utils.c
    functionUses: 1
    functionsReached:
    - strlen
    - getpid
    - write
    - free
    - child_report
    - close
    - perror
    - libxl_create_logfile
    - open
    - dup2
    - xl_fork
    - CHK_SYSCALL
    - exit
    - LOG
    - asprintf
    - postfork
    - daemon
    - strerror
    - assert
    linkageType: ''
    returnType: int
    signature: int do_daemonize(const char *name, const char *pidfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MUST
      Src: /src/xen/tools/xl/xl_migrate.c:44,1
    - Dst: libxl_pipe
      Src: /src/xen/tools/xl/xl_migrate.c:44,1
    - Dst: MUST
      Src: /src/xen/tools/xl/xl_migrate.c:45,1
    - Dst: libxl_pipe
      Src: /src/xen/tools/xl/xl_migrate.c:45,1
    - Dst: xl_fork
      Src: /src/xen/tools/xl/xl_migrate.c:47,1
    - Dst: dup2
      Src: /src/xen/tools/xl/xl_migrate.c:50,1
    - Dst: dup2
      Src: /src/xen/tools/xl/xl_migrate.c:51,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:52,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:52,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:53,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:53,1
    - Dst: execlp
      Src: /src/xen/tools/xl/xl_migrate.c:54,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_migrate.c:55,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:56,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:59,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:60,1
    - Dst: signal
      Src: /src/xen/tools/xl/xl_migrate.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - rune
    - send_fd
    - recv_fd
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 69
    functionName: create_migration_child
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - libxl_pipe
    - dup2
    - execlp
    - close
    - signal
    - xl_fork
    - MUST
    - exit
    - perror
    linkageType: ''
    returnType: pid_t
    signature: "pid_t create_migration_child(const char *rune, int *send_fd,\n                                        int
      *recv_fd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:78,1
    - Dst: memcmp
      Src: /src/xen/tools/xl/xl_migrate.c:81,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:82,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - fd
    - msg
    - msgsz
    - what
    - rune
    argTypes:
    - int
    - void*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: migrate_read_fixedmessage
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - libxl_read_exactly
    - fprintf
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int migrate_read_fixedmessage(int fd, const void *msg, int msgsz,\n
      \                                    const char *what, const char *rune)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xl_child_pid
      Src: /src/xen/tools/xl/xl_migrate.c:97,1
    - Dst: CHK_SYSCALL
      Src: /src/xen/tools/xl/xl_migrate.c:99,1
    - Dst: gettimeofday
      Src: /src/xen/tools/xl/xl_migrate.c:99,1
    - Dst: xl_child_pid
      Src: /src/xen/tools/xl/xl_migrate.c:103,1
    - Dst: xl_waitpid
      Src: /src/xen/tools/xl/xl_migrate.c:104,1
    - Dst: xl_report_child_exitstatus
      Src: /src/xen/tools/xl/xl_migrate.c:108,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:113,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_migrate.c:114,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_migrate.c:117,1
    - Dst: CHK_SYSCALL
      Src: /src/xen/tools/xl/xl_migrate.c:119,1
    - Dst: gettimeofday
      Src: /src/xen/tools/xl/xl_migrate.c:119,1
    - Dst: timercmp
      Src: /src/xen/tools/xl/xl_migrate.c:120,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:121,1
    - Dst: timersub
      Src: /src/xen/tools/xl/xl_migrate.c:126,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/xl/xl_migrate.c:130,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/xl/xl_migrate.c:131,1
    - Dst: FD_SET
      Src: /src/xen/tools/xl/xl_migrate.c:132,1
    - Dst: FD_SET
      Src: /src/xen/tools/xl/xl_migrate.c:133,1
    - Dst: select
      Src: /src/xen/tools/xl/xl_migrate.c:134,1
    - Dst: timercmp
      Src: /src/xen/tools/xl/xl_migrate.c:136,1
    - Dst: select
      Src: /src/xen/tools/xl/xl_migrate.c:138,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:145,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_migrate.c:147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - recv_fd
    argTypes:
    - int
    assertStmts:
    - condition: (child == 0)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/xen/tools/xl/xl_migrate.c
    constantsTouched: []
    func_position:
      end: 152
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 152
    functionName: migration_child_report
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - timercmp
    - xl_waitpid
    - FD_SET
    - FD_ZERO
    - xl_child_pid
    - xl_report_child_exitstatus
    - strerror
    - CHK_SYSCALL
    - fprintf
    - select
    - gettimeofday
    - assert
    - timersub
    linkageType: ''
    returnType: void
    signature: void migration_child_report(int recv_fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:161,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:162,1
    - Dst: migrate_read_fixedmessage
      Src: /src/xen/tools/xl/xl_migrate.c:165,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:169,1
    - Dst: migration_child_report
      Src: /src/xen/tools/xl/xl_migrate.c:170,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:171,1
    - Dst: save_domain_core_writeconfig
      Src: /src/xen/tools/xl/xl_migrate.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - send_fd
    - recv_fd
    - child
    - config_data
    - config_len
    - rune
    argTypes:
    - int
    - int
    - pid_t
    - uint8_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 177
    functionName: migrate_do_preamble
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - close
    - save_domain_core_writeconfig
    - fprintf
    - migration_child_report
    - exit
    - migrate_read_fixedmessage
    linkageType: ''
    returnType: void
    signature: "void migrate_do_preamble(int send_fd, int recv_fd, pid_t child,\n
      \                               uint8_t *config_data, int config_len,\n                                const
      char *rune)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: save_domain_core_begin
      Src: /src/xen/tools/xl/xl_migrate.c:191,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:195,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:197,1
    - Dst: create_migration_child
      Src: /src/xen/tools/xl/xl_migrate.c:200,1
    - Dst: migrate_do_preamble
      Src: /src/xen/tools/xl/xl_migrate.c:202,1
    - Dst: xtl_stdiostream_adjust_flags
      Src: /src/xen/tools/xl/xl_migrate.c:205,1
    - Dst: libxl_domain_suspend
      Src: /src/xen/tools/xl/xl_migrate.c:209,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:211,1
    - Dst: migrate_read_fixedmessage
      Src: /src/xen/tools/xl/xl_migrate.c:223,1
    - Dst: xtl_stdiostream_adjust_flags
      Src: /src/xen/tools/xl/xl_migrate.c:228,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:234,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_migrate.c:237,1
    - Dst: libxl_domain_rename
      Src: /src/xen/tools/xl/xl_migrate.c:238,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:247,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:249,1
    - Dst: migrate_read_fixedmessage
      Src: /src/xen/tools/xl/xl_migrate.c:255,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:260,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:266,1
    - Dst: migrate_read_fixedmessage
      Src: /src/xen/tools/xl/xl_migrate.c:269,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:275,1
    - Dst: libxl_domain_rename
      Src: /src/xen/tools/xl/xl_migrate.c:278,1
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_migrate.c:280,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:281,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:283,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:284,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:287,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_migrate.c:288,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:289,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:290,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:293,1
    - Dst: migration_child_report
      Src: /src/xen/tools/xl/xl_migrate.c:294,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:295,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:296,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:299,1
    - Dst: migration_child_report
      Src: /src/xen/tools/xl/xl_migrate.c:300,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:301,1
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_migrate.c:302,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:303,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:306,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:314,1
    - Dst: migration_child_report
      Src: /src/xen/tools/xl/xl_migrate.c:315,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:316,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 5
    argNames:
    - domid
    - preserve_domid
    - rune
    - debug
    - override_config_file
    argTypes:
    - uint32_t
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 179
    functionDepth: 11
    functionLinenumber: 179
    functionLinenumberEnd: 317
    functionName: migrate_domain
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - libxl_read_exactly
    - libxl_domain_rename
    - xasprintf
    - libxl_domain_destroy
    - save_domain_core_begin
    - libxl_domain_suspend
    - migrate_do_preamble
    - create_migration_child
    - close
    - fprintf
    - libxl_domain_resume
    - xtl_stdiostream_adjust_flags
    - libxl_write_exactly
    - exit
    - migration_child_report
    - migrate_read_fixedmessage
    linkageType: ''
    returnType: void
    signature: "void migrate_domain(uint32_t domid, int preserve_domid,\n                           const
      char *rune, int debug,\n                           const char *override_config_file)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/xen/tools/xl/xl_migrate.c:332,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:335,1
    - Dst: CHK_ERRNOVAL
      Src: /src/xen/tools/xl/xl_migrate.c:337,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:337,1
    - Dst: memset
      Src: /src/xen/tools/xl/xl_migrate.c:342,1
    - Dst: create_domain
      Src: /src/xen/tools/xl/xl_migrate.c:354,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:356,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:358,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:372,1
    - Dst: libxl_domain_rename
      Src: /src/xen/tools/xl/xl_migrate.c:386,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:389,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:396,1
    - Dst: libxl_domain_unpause
      Src: /src/xen/tools/xl/xl_migrate.c:398,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:400,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:404,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:411,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:414,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:418,1
    - Dst: migrate_read_fixedmessage
      Src: /src/xen/tools/xl/xl_migrate.c:420,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:425,1
    - Dst: libxl_domain_rename
      Src: /src/xen/tools/xl/xl_migrate.c:428,1
    - Dst: libxl_domain_unpause
      Src: /src/xen/tools/xl/xl_migrate.c:433,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:437,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:441,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:445,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_migrate.c:448,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:449,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:452,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:455,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_migrate.c:457,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:459,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:461,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:464,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_migrate.c:467,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:472,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:475,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 86
    argCount: 9
    argNames:
    - debug
    - daemonize
    - monitor
    - pause_after_migration
    - send_fd
    - recv_fd
    - checkpointed
    - colo_proxy_script
    - userspace_colo_proxy
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - libxl_checkpointed_stream
    - char*
    - bool
    assertStmts:
    - condition: (!!rc_buf == !!rc)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/xen/tools/xl/xl_migrate.c
    constantsTouched: []
    func_position:
      end: 476
      start: 319
    functionDepth: 11
    functionLinenumber: 319
    functionLinenumberEnd: 476
    functionName: migrate_receive
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - create_domain
    - libxl_domain_rename
    - libxl_domain_unpause
    - signal
    - libxl_domain_destroy
    - CHK_ERRNOVAL
    - migrate_read_fixedmessage
    - fprintf
    - memset
    - assert
    - libxl_write_exactly
    - exit
    linkageType: ''
    returnType: void
    signature: "void migrate_receive(int debug, int daemonize, int monitor,\n                            int
      pause_after_migration,\n                            int send_fd, int recv_fd,\n
      \                           libxl_checkpointed_stream checkpointed,\n                            char
      *colo_proxy_script,\n                            bool userspace_colo_proxy)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_migrate.c:494,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_migrate.c:523,1
    - Dst: migrate_receive
      Src: /src/xen/tools/xl/xl_migrate.c:526,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 479
    functionDepth: 12
    functionLinenumber: 479
    functionLinenumberEnd: 531
    functionName: main_migrate_receive
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - help
    - migrate_receive
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_migrate_receive(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_migrate.c:548,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_migrate.c:576,1
    - Dst: isatty
      Src: /src/xen/tools/xl/xl_migrate.c:579,1
    - Dst: memset
      Src: /src/xen/tools/xl/xl_migrate.c:588,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_migrate.c:595,1
    - Dst: migrate_domain
      Src: /src/xen/tools/xl/xl_migrate.c:605,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 533
    functionDepth: 12
    functionLinenumber: 533
    functionLinenumberEnd: 607
    functionName: main_migrate
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - find_domain
    - xasprintf
    - memset
    - migrate_domain
    - isatty
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_migrate(int argc, char **argv)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xl/xl_migrate.c:621,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_migrate.c:623,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_migrate.c:625,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:628,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:631,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:634,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:637,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:643,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:652,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:655,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_migrate.c:658,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/xl/xl_migrate.c:662,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/xl/xl_migrate.c:663,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/xl/xl_migrate.c:664,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:666,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:669,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:670,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:671,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:672,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:675,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:676,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/xl/xl_migrate.c:677,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/xl/xl_migrate.c:678,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_migrate.c:679,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:680,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/xl/xl_migrate.c:683,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_migrate.c:684,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_migrate.c:686,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:691,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:697,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_migrate.c:698,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_migrate.c:700,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:701,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:708,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_migrate.c:709,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_migrate.c:714,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:719,1
    - Dst: save_domain_core_begin
      Src: /src/xen/tools/xl/xl_migrate.c:725,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:728,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_migrate.c:730,1
    - Dst: create_migration_child
      Src: /src/xen/tools/xl/xl_migrate.c:733,1
    - Dst: migrate_do_preamble
      Src: /src/xen/tools/xl/xl_migrate.c:735,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_migrate.c:739,1
    - Dst: libxl_domain_remus_start
      Src: /src/xen/tools/xl/xl_migrate.c:743,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_migrate.c:748,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:749,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:750,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:751,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:760,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_migrate.c:762,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_migrate.c:763,1
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_migrate.c:764,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_migrate.c:767,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 609
    functionDepth: 11
    functionLinenumber: 609
    functionLinenumberEnd: 769
    functionName: main_remus
    functionSourceFile: /src/xen/tools/xl/xl_migrate.c
    functionUses: 0
    functionsReached:
    - SWITCH_FOREACH_OPT
    - libxl_defbool_val
    - find_domain
    - xasprintf
    - libxl_domain_remus_start
    - free
    - close
    - libxl_defbool_is_default
    - perror
    - open
    - libxl_defbool_setdefault
    - migrate_do_preamble
    - create_migration_child
    - fprintf
    - libxl_domain_resume
    - memset
    - exit
    - libxl_domain_info
    - save_domain_core_begin
    - libxl_defbool_set
    - atoi
    linkageType: ''
    returnType: int
    signature: int main_remus(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:34,1
    - Dst: libxl_psr_cmt_enabled
      Src: /src/xen/tools/xl/xl_psr.c:36,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:37,1
    - Dst: libxl_psr_cmt_get_total_rmid
      Src: /src/xen/tools/xl/xl_psr.c:41,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:43,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:46,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:48,1
    - Dst: libxl_psr_cmt_type_supported
      Src: /src/xen/tools/xl/xl_psr.c:49,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:50,1
    - Dst: libxl_psr_cmt_type_supported
      Src: /src/xen/tools/xl/xl_psr.c:51,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:52,1
    - Dst: libxl_psr_cmt_type_supported
      Src: /src/xen/tools/xl/xl_psr.c:53,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: psr_cmt_hwinfo
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cmt_type_supported
    - libxl_psr_cmt_get_total_rmid
    - libxl_psr_cmt_enabled
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: int psr_cmt_hwinfo(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cmt_get_sample
      Src: /src/xen/tools/xl/xl_psr.c:71,1
    - Dst: usleep
      Src: /src/xen/tools/xl/xl_psr.c:76,1
    - Dst: libxl_psr_cmt_get_sample
      Src: /src/xen/tools/xl/xl_psr.c:78,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - domid
    - type
    - socketid
    - bandwidth_r
    argTypes:
    - uint32_t
    - libxl_psr_cmt_type
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 104
    functionName: psr_cmt_get_mem_bandwidth
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - fprintf
    - libxl_psr_cmt_get_sample
    - usleep
    linkageType: ''
    returnType: int
    signature: "int psr_cmt_get_mem_bandwidth(uint32_t domid,\n                                     libxl_psr_cmt_type
      type,\n                                     uint32_t socketid,\n                                     uint64_t
      *bandwidth_r)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cmt_domain_attached
      Src: /src/xen/tools/xl/xl_psr.c:114,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_psr.c:117,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:118,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_psr.c:119,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/xl/xl_psr.c:121,1
    - Dst: libxl_psr_cmt_get_sample
      Src: /src/xen/tools/xl/xl_psr.c:124,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:126,1
    - Dst: psr_cmt_get_mem_bandwidth
      Src: /src/xen/tools/xl/xl_psr.c:130,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:132,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - dominfo
    - type
    - socketmap
    argTypes:
    - libxl_dominfo*
    - libxl_psr_cmt_type
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 140
    functionName: psr_cmt_print_domain_info
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - psr_cmt_get_mem_bandwidth
    - free
    - libxl_domid_to_name
    - libxl_for_each_set_bit
    - libxl_psr_cmt_get_sample
    - printf
    - libxl_psr_cmt_domain_attached
    linkageType: ''
    returnType: void
    signature: "void psr_cmt_print_domain_info(libxl_dominfo *dominfo,\n                                      libxl_psr_cmt_type
      type,\n                                      libxl_bitmap *socketmap)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cmt_enabled
      Src: /src/xen/tools/xl/xl_psr.c:149,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:150,1
    - Dst: libxl_psr_cmt_type_supported
      Src: /src/xen/tools/xl/xl_psr.c:154,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:155,1
    - Dst: libxl_psr_cmt_type_to_string
      Src: /src/xen/tools/xl/xl_psr.c:156,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_psr.c:160,1
    - Dst: libxl_socket_bitmap_alloc
      Src: /src/xen/tools/xl/xl_psr.c:161,1
    - Dst: libxl_get_online_socketmap
      Src: /src/xen/tools/xl/xl_psr.c:162,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:164,1
    - Dst: libxl_psr_cmt_get_total_rmid
      Src: /src/xen/tools/xl/xl_psr.c:168,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:170,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:174,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:177,1
    - Dst: libxl_for_each_set_bit
      Src: /src/xen/tools/xl/xl_psr.c:178,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:179,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:180,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:184,1
    - Dst: libxl_psr_cmt_get_l3_cache_size
      Src: /src/xen/tools/xl/xl_psr.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:189,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:194,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:196,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_psr.c:203,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_psr.c:204,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:205,1
    - Dst: psr_cmt_print_domain_info
      Src: /src/xen/tools/xl/xl_psr.c:209,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_psr.c:210,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_psr.c:215,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:216,1
    - Dst: psr_cmt_print_domain_info
      Src: /src/xen/tools/xl/xl_psr.c:221,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_psr.c:222,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_psr.c:226,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 2
    argNames:
    - type
    - domid
    argTypes:
    - libxl_psr_cmt_type
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 228
    functionName: psr_cmt_show
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - libxl_psr_cmt_type_supported
    - libxl_psr_cmt_get_total_rmid
    - libxl_psr_cmt_get_l3_cache_size
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_get_online_socketmap
    - libxl_socket_bitmap_alloc
    - libxl_domain_info
    - libxl_bitmap_dispose
    - psr_cmt_print_domain_info
    - libxl_bitmap_init
    - libxl_psr_cmt_enabled
    - libxl_for_each_set_bit
    - fprintf
    - printf
    - libxl_psr_cmt_type_to_string
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int psr_cmt_show(libxl_psr_cmt_type type, uint32_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cmt_get_l3_cache_size
      Src: /src/xen/tools/xl/xl_psr.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:189,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 16
    functionsReached:
    - libxl_psr_cmt_get_l3_cache_size
    - printf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void libxl_for_each_set_bit(socketid, socketmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:235,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:239,1
    - Dst: libxl_psr_cmt_attach
      Src: /src/xen/tools/xl/xl_psr.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 5
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: main_psr_cmt_attach
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cmt_attach
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_cmt_attach(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:250,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:254,1
    - Dst: libxl_psr_cmt_detach
      Src: /src/xen/tools/xl/xl_psr.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: main_psr_cmt_detach
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cmt_detach
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_cmt_detach(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:266,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_psr.c:270,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_psr.c:272,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_psr.c:274,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:277,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:284,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:286,1
    - Dst: psr_cmt_show
      Src: /src/xen/tools/xl/xl_psr.c:290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 293
    functionName: main_psr_cmt_show
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - find_domain
    - help
    - psr_cmt_show
    - strcmp
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_cmt_show(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cat_get_info
      Src: /src/xen/tools/xl/xl_psr.c:302,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:306,1
    - Dst: libxl_psr_cmt_get_l3_cache_size
      Src: /src/xen/tools/xl/xl_psr.c:309,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:311,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:315,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:316,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:317,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:319,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:320,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:321,1
    - Dst: libxl_psr_cat_info_list_free
      Src: /src/xen/tools/xl/xl_psr.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 328
    functionName: psr_l3_cat_hwinfo
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cmt_get_l3_cache_size
    - libxl_psr_cat_info_list_free
    - libxl_psr_cat_get_info
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: int psr_l3_cat_hwinfo(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_get_val
      Src: /src/xen/tools/xl/xl_psr.c:336,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:338,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:340,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - domid
    - info
    - type
    argTypes:
    - uint32_t
    - libxl_psr_hw_info*
    - libxl_psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: psr_print_one_domain_val_type
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_get_val
    - printf
    linkageType: ''
    returnType: void
    signature: "void psr_print_one_domain_val_type(uint32_t domid,\n                                          libxl_psr_hw_info
      *info,\n                                          libxl_psr_type type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_psr.c:353,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:354,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_psr.c:355,1
    - Dst: psr_print_one_domain_val_type
      Src: /src/xen/tools/xl/xl_psr.c:362,1
    - Dst: psr_print_one_domain_val_type
      Src: /src/xen/tools/xl/xl_psr.c:365,1
    - Dst: psr_print_one_domain_val_type
      Src: /src/xen/tools/xl/xl_psr.c:367,1
    - Dst: psr_print_one_domain_val_type
      Src: /src/xen/tools/xl/xl_psr.c:373,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:378,1
    - Dst: psr_print_one_domain_val_type
      Src: /src/xen/tools/xl/xl_psr.c:383,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - domid
    - info
    - type
    - lvl
    argTypes:
    - uint32_t
    - libxl_psr_hw_info*
    - libxl_psr_feat_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 389
    functionName: psr_print_one_domain_val
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_domid_to_name
    - psr_print_one_domain_val_type
    - printf
    linkageType: ''
    returnType: void
    signature: "void psr_print_one_domain_val(uint32_t domid,\n                                     libxl_psr_hw_info
      *info,\n                                     libxl_psr_feat_type type,\n                                     unsigned
      int lvl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: psr_print_one_domain_val
      Src: /src/xen/tools/xl/xl_psr.c:400,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_psr.c:404,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:405,1
    - Dst: psr_print_one_domain_val
      Src: /src/xen/tools/xl/xl_psr.c:410,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_psr.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - domid
    - info
    - type
    - lvl
    argTypes:
    - uint32_t
    - libxl_psr_hw_info*
    - libxl_psr_feat_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 391
    functionDepth: 6
    functionLinenumber: 391
    functionLinenumberEnd: 414
    functionName: psr_print_domain_val
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - psr_print_one_domain_val
    - fprintf
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: "int psr_print_domain_val(uint32_t domid,\n                                libxl_psr_hw_info
      *info,\n                                libxl_psr_feat_type type,\n                                unsigned
      int lvl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:421,1
    - Dst: libxl_psr_cmt_get_l3_cache_size
      Src: /src/xen/tools/xl/xl_psr.c:431,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:433,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:437,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:440,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:443,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:445,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:451,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:452,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:456,1
    - Dst: psr_print_domain_val
      Src: /src/xen/tools/xl/xl_psr.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - domid
    - info
    - type
    - lvl
    argTypes:
    - uint32_t
    - libxl_psr_hw_info*
    - libxl_psr_feat_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 416
    functionDepth: 7
    functionLinenumber: 416
    functionLinenumberEnd: 461
    functionName: psr_print_socket
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - psr_print_domain_val
    - libxl_psr_cmt_get_l3_cache_size
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int psr_print_socket(uint32_t domid,\n                            libxl_psr_hw_info
      *info,\n                            libxl_psr_feat_type type,\n                            unsigned
      int lvl)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:474,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:481,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:488,1
    - Dst: libxl_psr_get_hw_info
      Src: /src/xen/tools/xl/xl_psr.c:492,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:494,1
    - Dst: psr_print_socket
      Src: /src/xen/tools/xl/xl_psr.c:499,1
    - Dst: libxl_psr_hw_info_list_free
      Src: /src/xen/tools/xl/xl_psr.c:505,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - domid
    - type
    - lvl
    argTypes:
    - uint32_t
    - libxl_psr_feat_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 463
    functionDepth: 8
    functionLinenumber: 463
    functionLinenumberEnd: 507
    functionName: psr_val_show
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - psr_print_socket
    - libxl_psr_get_hw_info
    - fprintf
    - libxl_psr_hw_info_list_free
    linkageType: ''
    returnType: int
    signature: "int psr_val_show(uint32_t domid,\n                        libxl_psr_feat_type
      type,\n                        unsigned int lvl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_cat_get_info
      Src: /src/xen/tools/xl/xl_psr.c:515,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:519,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:523,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:524,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:525,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:526,1
    - Dst: libxl_psr_cat_info_list_free
      Src: /src/xen/tools/xl/xl_psr.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 532
    functionName: psr_l2_cat_hwinfo
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_cat_info_list_free
    - libxl_psr_cat_get_info
    - printf
    linkageType: ''
    returnType: int
    signature: int psr_l2_cat_hwinfo(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:539,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:546,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:548,1
    - Dst: psr_val_show
      Src: /src/xen/tools/xl/xl_psr.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 534
    functionDepth: 9
    functionLinenumber: 534
    functionLinenumberEnd: 553
    functionName: main_psr_mba_show
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - help
    - find_domain
    - SWITCH_FOREACH_OPT
    - psr_val_show
    linkageType: ''
    returnType: int
    signature: int main_psr_mba_show(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_socket_bitmap_alloc
      Src: /src/xen/tools/xl/xl_psr.c:572,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/xl/xl_psr.c:573,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:575,1
    - Dst: trim
      Src: /src/xen/tools/xl/xl_psr.c:577,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_psr.c:578,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_psr.c:579,1
    - Dst: parse_range
      Src: /src/xen/tools/xl/xl_psr.c:581,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_psr.c:583,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_psr.c:586,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_psr.c:587,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/xl/xl_psr.c:593,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl_psr.c:594,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:597,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:601,1
    - Dst: strtoll
      Src: /src/xen/tools/xl/xl_psr.c:602,1
    - Dst: libxl_psr_set_val
      Src: /src/xen/tools/xl/xl_psr.c:604,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_psr.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 555
    functionDepth: 5
    functionLinenumber: 555
    functionLinenumberEnd: 608
    functionName: main_psr_mba_set
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - parse_range
    - find_domain
    - libxl_bitmap_dispose
    - libxl_socket_bitmap_alloc
    - free
    - libxl_bitmap_set_any
    - libxl_bitmap_is_empty
    - split_string_into_string_list
    - trim
    - libxl_string_list_dispose
    - libxl_string_list_length
    - help
    - strtoll
    - libxl_bitmap_set_none
    - libxl_psr_set_val
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_mba_set(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_psr_get_hw_info
      Src: /src/xen/tools/xl/xl_psr.c:616,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:620,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:623,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:624,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:626,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:627,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_psr.c:628,1
    - Dst: libxl_psr_hw_info_list_free
      Src: /src/xen/tools/xl/xl_psr.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: psr_mba_hwinfo
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_psr_hw_info_list_free
    - libxl_psr_get_hw_info
    - printf
    linkageType: ''
    returnType: int
    signature: int psr_mba_hwinfo(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: libxl_socket_bitmap_alloc
      Src: /src/xen/tools/xl/xl_psr.c:657,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/xl/xl_psr.c:658,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:660,1
    - Dst: trim
      Src: /src/xen/tools/xl/xl_psr.c:662,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_psr.c:663,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_psr.c:664,1
    - Dst: parse_range
      Src: /src/xen/tools/xl/xl_psr.c:666,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_psr.c:668,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_psr.c:671,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_psr.c:672,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_psr.c:681,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:689,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_psr.c:700,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/xl/xl_psr.c:704,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl_psr.c:705,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:708,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:712,1
    - Dst: strtoll
      Src: /src/xen/tools/xl/xl_psr.c:713,1
    - Dst: libxl_psr_cat_set_cbm
      Src: /src/xen/tools/xl/xl_psr.c:715,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_psr.c:717,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 635
    functionDepth: 5
    functionLinenumber: 635
    functionLinenumberEnd: 719
    functionName: main_psr_cat_cbm_set
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_psr_cat_set_cbm
    - SWITCH_FOREACH_OPT
    - find_domain
    - libxl_bitmap_dispose
    - free
    - libxl_string_list_dispose
    - help
    - libxl_bitmap_set_none
    - parse_range
    - libxl_socket_bitmap_alloc
    - split_string_into_string_list
    - trim
    - libxl_string_list_length
    - fprintf
    - strtoll
    - libxl_bitmap_set_any
    - libxl_bitmap_is_empty
    - atoi
    linkageType: ''
    returnType: int
    signature: int main_psr_cat_cbm_set(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:732,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_psr.c:734,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_psr.c:741,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_psr.c:743,1
    - Dst: psr_val_show
      Src: /src/xen/tools/xl/xl_psr.c:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 721
    functionDepth: 9
    functionLinenumber: 721
    functionLinenumberEnd: 748
    functionName: main_psr_cat_show
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - find_domain
    - help
    - psr_val_show
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_cat_show(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_psr.c:761,1
    - Dst: psr_cmt_hwinfo
      Src: /src/xen/tools/xl/xl_psr.c:774,1
    - Dst: psr_l3_cat_hwinfo
      Src: /src/xen/tools/xl/xl_psr.c:777,1
    - Dst: psr_l2_cat_hwinfo
      Src: /src/xen/tools/xl/xl_psr.c:781,1
    - Dst: psr_mba_hwinfo
      Src: /src/xen/tools/xl/xl_psr.c:785,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 750
    functionDepth: 5
    functionLinenumber: 750
    functionLinenumberEnd: 788
    functionName: main_psr_hwinfo
    functionSourceFile: /src/xen/tools/xl/xl_psr.c
    functionUses: 0
    functionsReached:
    - psr_l3_cat_hwinfo
    - psr_cmt_hwinfo
    - psr_l2_cat_hwinfo
    - psr_mba_hwinfo
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_psr_hwinfo(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_block.c:32,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_block.c:36,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:37,1
    - Dst: parse_disk_config_multistring
      Src: /src/xen/tools/xl/xl_block.c:42,1
    - Dst: libxl_device_disk_to_json
      Src: /src/xen/tools/xl/xl_block.c:46,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_block.c:47,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_block.c:48,1
    - Dst: ferror
      Src: /src/xen/tools/xl/xl_block.c:49,1
    - Dst: fflush
      Src: /src/xen/tools/xl/xl_block.c:49,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_block.c:49,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_block.c:49,1
    - Dst: libxl_device_disk_add
      Src: /src/xen/tools/xl/xl_block.c:53,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 58
    functionName: main_blockattach
    functionSourceFile: /src/xen/tools/xl/xl_block.c
    functionUses: 0
    functionsReached:
    - libxl_device_disk_add
    - ferror
    - free
    - libxl_domain_qualifier_to_domid
    - parse_disk_config_multistring
    - fflush
    - fprintf
    - printf
    - exit
    - libxl_device_disk_to_json
    - SWITCH_FOREACH_OPT
    - perror
    linkageType: ''
    returnType: int
    signature: int main_blockattach(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_block.c:67,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_block.c:71,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_block.c:75,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:76,1
    - Dst: libxl_device_disk_list
      Src: /src/xen/tools/xl/xl_block.c:79,1
    - Dst: libxl_device_disk_getinfo
      Src: /src/xen/tools/xl/xl_block.c:84,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_block.c:86,1
    - Dst: libxl_diskinfo_dispose
      Src: /src/xen/tools/xl/xl_block.c:89,1
    - Dst: libxl_device_disk_list_free
      Src: /src/xen/tools/xl/xl_block.c:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 95
    functionName: main_blocklist
    functionSourceFile: /src/xen/tools/xl/xl_block.c
    functionUses: 0
    functionsReached:
    - libxl_diskinfo_dispose
    - libxl_device_disk_list_free
    - libxl_device_disk_list
    - libxl_domain_qualifier_to_domid
    - libxl_device_disk_getinfo
    - fprintf
    - printf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_blocklist(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_block.c:108,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_block.c:116,1
    - Dst: libxl_vdev_to_device_disk
      Src: /src/xen/tools/xl/xl_block.c:118,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:119,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:124,1
    - Dst: libxl_device_disk_safe_remove
      Src: /src/xen/tools/xl/xl_block.c:128,1
    - Dst: libxl_device_disk_destroy
      Src: /src/xen/tools/xl/xl_block.c:129,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_block.c:131,1
    - Dst: libxl_device_disk_dispose
      Src: /src/xen/tools/xl/xl_block.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 137
    functionName: main_blockdetach
    functionSourceFile: /src/xen/tools/xl/xl_block.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_disk_safe_remove
    - fprintf
    - libxl_device_disk_destroy
    - libxl_device_disk_dispose
    - libxl_vdev_to_device_disk
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_blockdetach(int argc, char **argv)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:55,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_cpupool.c:64,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_cpupool.c:65,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_cpupool.c:68,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_cpupool.c:69,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_cpupool.c:70,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_cpupool.c:74,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl_cpupool.c:82,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:84,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_cpupool.c:85,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cpupool.c:93,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cpupool.c:94,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:95,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_cpupool.c:98,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cpupool.c:99,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:101,1
    - Dst: strcat
      Src: /src/xen/tools/xl/xl_cpupool.c:105,1
    - Dst: strcat
      Src: /src/xen/tools/xl/xl_cpupool.c:106,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cpupool.c:107,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_cpupool.c:110,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:112,1
    - Dst: xlu_cfg_readdata
      Src: /src/xen/tools/xl/xl_cpupool.c:116,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:118,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_cpupool.c:118,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_cpupool.c:122,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_cpupool.c:123,1
    - Dst: libxl_basename
      Src: /src/xen/tools/xl/xl_cpupool.c:125,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:127,1
    - Dst: libxl_name_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:130,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:131,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_cpupool.c:135,1
    - Dst: libxl_scheduler_from_string
      Src: /src/xen/tools/xl/xl_cpupool.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:137,1
    - Dst: libxl_get_scheduler
      Src: /src/xen/tools/xl/xl_cpupool.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:143,1
    - Dst: libxl_get_freecpus
      Src: /src/xen/tools/xl/xl_cpupool.c:149,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:150,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_cpupool.c:153,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:154,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_cpupool.c:157,1
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/xl/xl_cpupool.c:161,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:163,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_cpupool.c:166,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_cpupool.c:167,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_cpupool.c:170,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_cpupool.c:171,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/xl/xl_cpupool.c:178,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:181,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_cpupool.c:184,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_cpupool.c:186,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_cpupool.c:187,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_cpupool.c:188,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:189,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_cpupool.c:192,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_cpupool.c:195,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_cpupool.c:196,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_cpupool.c:201,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:202,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/xl/xl_cpupool.c:210,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:212,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:213,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:214,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_cpupool.c:214,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:215,1
    - Dst: libxl_cpupool_create
      Src: /src/xen/tools/xl/xl_cpupool.c:219,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:220,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_cpupool.c:228,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:230,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:231,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cpupool.c:232,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cpupool.c:233,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cpupool.c:234,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 179
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 236
    functionName: main_cpupoolcreate
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_scheduler_from_string
    - string_realloc_append
    - strchr
    - strlen
    - libxl_scheduler_to_string
    - strcat
    - SWITCH_FOREACH_OPT
    - libxl_bitmap_test
    - xlu_cfg_get_string
    - libxl_bitmap_dispose
    - free
    - xrealloc
    - libxl_uuid_generate
    - help
    - xlu_cfg_destroy
    - libxl_name_to_cpupoolid
    - libxl_cputopology_list_free
    - libxl_get_scheduler
    - xlu_cfg_readdata
    - libxl_basename
    - libxl_bitmap_init
    - parse_cpurange
    - libxl_read_file_contents
    - fprintf
    - strdup
    - printf
    - xlu_cfg_init
    - libxl_get_freecpus
    - libxl_cpupool_create
    - libxl_get_cpu_topology
    - xlu_cfg_get_listitem
    - strerror
    - libxl_cpu_bitmap_alloc
    - xlu_cfg_get_list
    - atoi
    linkageType: ''
    returnType: int
    signature: int main_cpupoolcreate(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_cpupool.c:201,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 16
    functionsReached:
    - libxl_bitmap_test
    - fprintf
    linkageType: ''
    returnType: void
    signature: void libxl_for_each_set_bit(i, cpumap)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:252,1
    - Dst: libxl_name_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:260,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:261,1
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/xl/xl_cpupool.c:266,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:268,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:272,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:274,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:276,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:281,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/xl/xl_cpupool.c:283,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_cpupool.c:284,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:285,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:286,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:290,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_cpupool.c:291,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_cpupool.c:294,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/xl/xl_cpupool.c:298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 301
    functionName: main_cpupoollist
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_test
    - libxl_list_cpupool
    - libxl_name_to_cpupoolid
    - fprintf
    - printf
    - libxl_for_each_bit
    - libxl_scheduler_to_string
    - SWITCH_FOREACH_OPT
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: int
    signature: int main_cpupoollist(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:309,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:315,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_cpupool.c:316,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:317,1
    - Dst: libxl_cpupool_destroy
      Src: /src/xen/tools/xl/xl_cpupool.c:321,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 327
    functionName: main_cpupooldestroy
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_qualifier_to_cpupoolid
    - libxl_cpupoolid_is_valid
    - fprintf
    - libxl_cpupool_destroy
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cpupooldestroy(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:336,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:342,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_cpupool.c:343,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:344,1
    - Dst: libxl_cpupool_rename
      Src: /src/xen/tools/xl/xl_cpupool.c:350,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 356
    functionName: main_cpupoolrename
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_qualifier_to_cpupoolid
    - libxl_cpupool_rename
    - libxl_cpupoolid_is_valid
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cpupoolrename(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:366,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_cpupool.c:370,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_cpupool.c:371,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:372,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_cpupool.c:377,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:380,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_cpupool.c:381,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:382,1
    - Dst: libxl_cpupool_cpuadd_cpumap
      Src: /src/xen/tools/xl/xl_cpupool.c:386,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:387,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:392,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: main_cpupoolcpuadd
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_qualifier_to_cpupoolid
    - libxl_bitmap_dispose
    - libxl_bitmap_init
    - parse_cpurange
    - libxl_cpu_bitmap_alloc
    - fprintf
    - libxl_cpupoolid_is_valid
    - SWITCH_FOREACH_OPT
    - libxl_cpupool_cpuadd_cpumap
    linkageType: ''
    returnType: int
    signature: int main_cpupoolcpuadd(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_cpupool.c:404,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_cpupool.c:405,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:406,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:410,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_cpupool.c:415,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:418,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_cpupool.c:419,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:420,1
    - Dst: libxl_cpupool_cpuremove_cpumap
      Src: /src/xen/tools/xl/xl_cpupool.c:424,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:425,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:426,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:432,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 434
    functionName: main_cpupoolcpuremove
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_qualifier_to_cpupoolid
    - libxl_bitmap_dispose
    - libxl_bitmap_init
    - parse_cpurange
    - libxl_cpu_bitmap_alloc
    - fprintf
    - libxl_cpupoolid_is_valid
    - libxl_cpupool_cpuremove_cpumap
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cpupoolcpuremove(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:444,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_cpupool.c:451,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_cpupool.c:452,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:453,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_cpupool.c:457,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_cpupool.c:458,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:459,1
    - Dst: libxl_cpupool_movedomain
      Src: /src/xen/tools/xl/xl_cpupool.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 436
    functionDepth: 4
    functionLinenumber: 436
    functionLinenumberEnd: 467
    functionName: main_cpupoolmigrate
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_cpupool_movedomain
    - libxl_cpupool_qualifier_to_cpupoolid
    - libxl_domain_qualifier_to_domid
    - libxl_domid_to_name
    - libxl_cpupoolid_is_valid
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_cpupoolmigrate(int argc, char **argv)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_cpupool.c:488,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_cpupool.c:492,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_cpupool.c:496,1
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/xl/xl_cpupool.c:497,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:499,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/xl/xl_cpupool.c:504,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:507,1
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/xl/xl_cpupool.c:511,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:513,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_cpupool.c:517,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:518,1
    - Dst: libxl_cpupool_cpuadd_node
      Src: /src/xen/tools/xl/xl_cpupool.c:526,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:527,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:531,1
    - Dst: libxl_cpupool_rename
      Src: /src/xen/tools/xl/xl_cpupool.c:532,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:533,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_cpupool.c:541,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_cpupool.c:545,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:546,1
    - Dst: libxl_set_vcpuonline
      Src: /src/xen/tools/xl/xl_cpupool.c:549,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:550,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:558,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_cpupool.c:559,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_cpupool.c:560,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:561,1
    - Dst: sleep
      Src: /src/xen/tools/xl/xl_cpupool.c:567,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:570,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/xl/xl_cpupool.c:573,1
    - Dst: libxl_cpupool_cpuremove_node
      Src: /src/xen/tools/xl/xl_cpupool.c:581,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:582,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cpupool.c:586,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:587,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/xl/xl_cpupool.c:588,1
    - Dst: libxl_cpupool_create
      Src: /src/xen/tools/xl/xl_cpupool.c:590,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:591,1
    - Dst: libxl_cpupool_cpuadd_node
      Src: /src/xen/tools/xl/xl_cpupool.c:595,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_cpupool.c:596,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/xl/xl_cpupool.c:610,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:611,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_cpupool.c:612,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_cpupool.c:613,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 115
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 469
    functionDepth: 9
    functionLinenumber: 469
    functionLinenumberEnd: 616
    functionName: main_cpupoolnumasplit
    functionSourceFile: /src/xen/tools/xl/xl_cpupool.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_cpupool_rename
    - libxl_list_cpupool
    - SWITCH_FOREACH_OPT
    - xasprintf
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_bitmap_dispose
    - free
    - libxl_uuid_generate
    - libxl_cputopology_list_free
    - libxl_bitmap_set_none
    - libxl_cpupoolinfo_list_free
    - libxl_bitmap_init
    - libxl_cpupool_cpuadd_node
    - fprintf
    - sleep
    - libxl_cpupool_cpuremove_node
    - libxl_domain_info
    - libxl_get_cpu_topology
    - libxl_cpu_bitmap_alloc
    - libxl_cpupool_create
    - libxl_set_vcpuonline
    linkageType: ''
    returnType: int
    signature: int main_cpupoolnumasplit(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - array
    - ','
    - count
    - ','
    - initfn
    - ','
    - more
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: ARRAY_EXTEND_INIT__CORE
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_EXTEND_INIT__CORE(array,count,initfn,more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - array
    - ','
    - count
    - ','
    - initfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: ARRAY_EXTEND_INIT
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_EXTEND_INIT(array,count,initfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - libxl_action_on_shutdown
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: get_action_on_shutdown_name
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_action_on_shutdown_name(libxl_action_on_shutdown a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - a
    argTypes:
    - char*
    - libxl_action_on_shutdown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: parse_action_on_shutdown
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_action_on_shutdown(const char *buf, libxl_action_on_shutdown
      *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_device_disk_init
      Src: /src/xen/tools/xl/xl_parse.c:104,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_parse.c:107,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_parse.c:108,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:108,1
    - Dst: xlu_disk_parse
      Src: /src/xen/tools/xl/xl_parse.c:111,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:112,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:114,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_parse.c:114,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - config
    - nspecs
    - specs
    - disk
    argTypes:
    - XLU_Config**
    - int
    - char**
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: parse_disk_config_multistring
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - xlu_disk_parse
    - strerror
    - fprintf
    - libxl_device_disk_init
    - xlu_cfg_init
    - perror
    - exit
    linkageType: ''
    returnType: void
    signature: "void parse_disk_config_multistring(XLU_Config **config,\n                                   int
      nspecs, const char *const *specs,\n                                   libxl_device_disk
      *disk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_disk_config_multistring
      Src: /src/xen/tools/xl/xl_parse.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - spec
    - disk
    argTypes:
    - XLU_Config**
    - char*
    - libxl_device_disk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: parse_disk_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - parse_disk_config_multistring
    linkageType: ''
    returnType: void
    signature: "void parse_disk_config(XLU_Config **config, const char *spec,\n                       libxl_device_disk
      *disk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xlu_vif_parse_rate
      Src: /src/xen/tools/xl/xl_parse.c:130,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:131,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:133,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_parse.c:133,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - config
    - rate
    - nic
    argTypes:
    - XLU_Config**
    - char*
    - libxl_device_nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: parse_vif_rate
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - exit
    - strerror
    - fprintf
    - xlu_vif_parse_rate
    linkageType: ''
    returnType: void
    signature: "void parse_vif_rate(XLU_Config **config, const char *rate,\n                           libxl_device_nic
      *nic)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:143,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - str
    - a
    - b
    argTypes:
    - char*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: parse_range
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 2
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_range(const char *str, unsigned long *a, unsigned long *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_parse.c:173,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:175,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:177,1
    - Dst: STR_SKIP_PREFIX
      Src: /src/xen/tools/xl/xl_parse.c:182,1
    - Dst: STR_SKIP_PREFIX
      Src: /src/xen/tools/xl/xl_parse.c:187,1
    - Dst: STR_SKIP_PREFIX
      Src: /src/xen/tools/xl/xl_parse.c:187,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:191,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:194,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl_parse.c:197,1
    - Dst: parse_range
      Src: /src/xen/tools/xl/xl_parse.c:201,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:203,1
    - Dst: libxl_node_to_cpumap
      Src: /src/xen/tools/xl/xl_parse.c:213,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:215,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/xl/xl_parse.c:221,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:222,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/xl/xl_parse.c:226,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:227,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_parse.c:233,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - str
    - cpumap
    argTypes:
    - char*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 235
    functionName: update_cpumap_range
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - parse_range
    - libxl_bitmap_dispose
    - libxl_bitmap_reset
    - libxl_bitmap_set_any
    - libxl_bitmap_init
    - STR_SKIP_PREFIX
    - fprintf
    - libxl_node_bitmap_alloc
    - strcmp
    - libxl_node_to_cpumap
    linkageType: ''
    returnType: int
    signature: int update_cpumap_range(const char *str, libxl_bitmap *cpumap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/xl/xl_parse.c:221,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 16
    functionsReached:
    - libxl_bitmap_set
    - libxl_bitmap_reset
    linkageType: ''
    returnType: void
    signature: void libxl_for_each_set_bit(i, node_cpumap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:244,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:247,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:248,1
    - Dst: update_cpumap_range
      Src: /src/xen/tools/xl/xl_parse.c:249,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cpu
    - cpumap
    argTypes:
    - char*
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: parse_cpurange
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 3
    functionsReached:
    - xstrdup
    - free
    - strtok_r
    - update_cpumap_range
    linkageType: ''
    returnType: int
    signature: int parse_cpurange(const char *cpu, libxl_bitmap *cpumap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:263,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:264,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:265,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:266,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - config
    - vnc
    argTypes:
    - XLU_Config*
    - libxl_vnc_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: parse_top_level_vnc_options
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_long
    - xlu_cfg_replace_string
    - xlu_cfg_get_defbool
    linkageType: ''
    returnType: void
    signature: "void parse_top_level_vnc_options(XLU_Config *config,\n                                        libxl_vnc_info
      *vnc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:274,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:275,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:276,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - config
    - sdl
    argTypes:
    - XLU_Config*
    - libxl_sdl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: parse_top_level_sdl_options
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_replace_string
    - xlu_cfg_get_defbool
    linkageType: ''
    returnType: void
    signature: "void parse_top_level_sdl_options(XLU_Config *config,\n                                        libxl_sdl_info
      *sdl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:285,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:286,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:287,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:290,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:292,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_parse.c:296,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_parse.c:298,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:300,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:305,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:306,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - XLU_Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 310
    functionName: parse_cmdline
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_string
    - xasprintf
    - fprintf
    - strdup
    - exit
    linkageType: ''
    returnType: char
    signature: char *parse_cmdline(XLU_Config *config)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_parse.c:335,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_parse.c:339,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:346,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_parse.c:347,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:348,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:349,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:350,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_parse.c:353,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:354,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:360,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_parse.c:364,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:365,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:366,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:367,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_parse.c:370,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:371,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_parse.c:374,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:375,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:376,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:377,1
    - Dst: libxl_bitmap_copy
      Src: /src/xen/tools/xl/xl_parse.c:379,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:385,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - b_info
    - cpus
    - buf
    - num_cpus
    - is_hard
    argTypes:
    - libxl_domain_build_info*
    - XLU_ConfigList*
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 387
    functionName: parse_vcpu_affinity
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - libxl_bitmap_copy
    - libxl_bitmap_init
    - parse_cpurange
    - xlu_cfg_get_listitem
    - libxl_cpu_bitmap_alloc
    - fprintf
    - exit
    - libxl_defbool_set
    linkageType: ''
    returnType: void
    signature: "void parse_vcpu_affinity(libxl_domain_build_info *b_info,\n                                XLU_ConfigList
      *cpus, const char *buf,\n                                int num_cpus, bool
      is_hard)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:394,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:396,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 400
    functionName: parse_ulong
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strtoul
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long parse_ulong(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:404,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - val
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: replace_string
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 3
    functionsReached:
    - free
    - xstrdup
    linkageType: ''
    returnType: void
    signature: void replace_string(char **str, const char *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - prefix
    - len
    - arg
    - argopt
    argTypes:
    - char*
    - size_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: match_option_size
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int match_option_size(const char *prefix, size_t len,\n                      char
      *arg, char **argopt)"
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:425,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:426,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:428,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:431,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:434,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:436,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:438,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:444,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:445,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:446,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:447,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:449,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:450,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:451,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:452,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:453,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:454,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:455,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:456,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:457,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:458,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:459,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:460,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:461,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:462,1
    - Dst: parse_vif_rate
      Src: /src/xen/tools/xl/xl_parse.c:463,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:464,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:465,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:466,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:467,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:468,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:469,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:470,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:471,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:472,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:473,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:474,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:475,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:476,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:477,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:478,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:479,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:480,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:481,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:482,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:483,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:484,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:485,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:486,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:487,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:488,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:489,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:490,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:491,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:492,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:493,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:494,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:495,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:496,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:497,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:498,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:499,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:500,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:501,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:502,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:503,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:504,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:505,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:506,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:507,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:508,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:509,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:510,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:511,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:512,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:513,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:514,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:515,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:516,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:517,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:518,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:519,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:520,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:521,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:522,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:523,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:524,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:525,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:526,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:527,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:528,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:529,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:530,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:531,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:532,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:533,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:534,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:535,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:536,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:537,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:538,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:539,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:540,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:541,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:542,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:543,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:544,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:545,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:546,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:547,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:548,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:549,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:550,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:551,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:552,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:553,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:554,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:555,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:556,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:557,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:558,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:559,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:560,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:561,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:562,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:563,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:564,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:565,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:566,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:567,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:568,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:569,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:570,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:571,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:572,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:573,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:575,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 220
    argCount: 3
    argNames:
    - nic
    - config
    - token
    argTypes:
    - libxl_device_nic*
    - XLU_Config**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 579
    functionName: parse_nic_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - parse_ulong
    - libxl_defbool_set
    - replace_string
    - fprintf
    - parse_vif_rate
    - strcmp
    - MATCH_OPTION
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_nic_config(libxl_device_nic *nic, XLU_Config **config, char
      *token)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libxl_physinfo_init
      Src: /src/xen/tools/xl/xl_parse.c:594,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/xl/xl_parse.c:595,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_parse.c:596,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:597,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:598,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_parse.c:602,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:604,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:611,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:612,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_parse.c:614,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:615,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:616,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:617,1
    - Dst: libxl_vnode_info_init
      Src: /src/xen/tools/xl/xl_parse.c:624,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:625,1
    - Dst: xlu_cfg_get_listitem2
      Src: /src/xen/tools/xl/xl_parse.c:636,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_parse.c:637,1
    - Dst: xlu_cfg_value_get_list
      Src: /src/xen/tools/xl/xl_parse.c:639,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:641,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:642,1
    - Dst: xlu_cfg_get_listitem2
      Src: /src/xen/tools/xl/xl_parse.c:647,1
    - Dst: xlu_cfg_value_type
      Src: /src/xen/tools/xl/xl_parse.c:650,1
    - Dst: xlu_cfg_value_get_string
      Src: /src/xen/tools/xl/xl_parse.c:655,1
    - Dst: split_string_into_pair
      Src: /src/xen/tools/xl/xl_parse.c:659,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:661,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:663,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:666,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:667,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:669,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:671,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:674,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:675,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:676,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:679,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:683,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:684,1
    - Dst: parse_range
      Src: /src/xen/tools/xl/xl_parse.c:687,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:697,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:702,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:703,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:706,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:707,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:710,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:713,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:715,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:716,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:724,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:725,1
    - Dst: libxl_get_online_cpus
      Src: /src/xen/tools/xl/xl_parse.c:728,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:731,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:732,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:736,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:738,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:747,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:748,1
    - Dst: libxl_bitmap_copy_alloc
      Src: /src/xen/tools/xl/xl_parse.c:755,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_parse.c:756,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:759,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 111
    argCount: 2
    argNames:
    - config
    - b_info
    argTypes:
    - XLU_Config*
    - libxl_domain_build_info*
    assertStmts:
    - condition: (vnode_spec)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/xen/tools/xl/xl_parse.c
    constantsTouched: []
    func_position:
      end: 760
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 760
    functionName: parse_vnuma_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - xcalloc
    - xlu_cfg_value_type
    - libxl_physinfo_dispose
    - xlu_cfg_value_get_list
    - strcmp
    - split_string_into_pair
    - libxl_bitmap_dispose
    - free
    - libxl_string_list_dispose
    - libxl_physinfo_init
    - parse_range
    - libxl_bitmap_copy_alloc
    - xlu_cfg_value_get_string
    - libxl_bitmap_init
    - split_string_into_string_list
    - libxl_get_online_cpus
    - libxl_string_list_length
    - fprintf
    - exit
    - libxl_vnode_info_init
    - xlu_cfg_get_list
    - parse_ulong
    - libxl_cpu_bitmap_alloc
    - xlu_cfg_get_listitem2
    - libxl_defbool_set
    - libxl_get_physinfo
    - assert
    linkageType: ''
    returnType: void
    signature: "void parse_vnuma_config(const XLU_Config *config,\n                               libxl_domain_build_info
      *b_info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:769,1
    - Dst: libxl_usbctrl_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:770,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:771,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:774,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:775,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:776,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:777,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:779,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - usbctrl
    - token
    argTypes:
    - libxl_device_usbctrl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 784
    functionName: parse_usbctrl_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - libxl_usbctrl_type_from_string
    - atoi
    - MATCH_OPTION
    - fprintf
    linkageType: ''
    returnType: int
    signature: int parse_usbctrl_config(libxl_device_usbctrl *usbctrl, char *token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:793,1
    - Dst: libxl_usbdev_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:794,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:795,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:798,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:799,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:800,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:801,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:802,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:803,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:804,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:805,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - usbdev
    - token
    argTypes:
    - libxl_device_usbdev*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 812
    functionName: parse_usbdev_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - libxl_usbdev_type_from_string
    - atoi
    - MATCH_OPTION
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_usbdev_config(libxl_device_usbdev *usbdev, char *token)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:821,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:822,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:823,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:824,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:825,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:826,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:828,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:829,1
    - Dst: split_string_into_pair
      Src: /src/xen/tools/xl/xl_parse.c:836,1
    - Dst: sscanf
      Src: /src/xen/tools/xl/xl_parse.c:840,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:842,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:845,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:850,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - vdispl
    - token
    argTypes:
    - libxl_device_vdispl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 859
    functionName: parse_vdispl_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - xcalloc
    - split_string_into_pair
    - free
    - split_string_into_string_list
    - libxl_string_list_dispose
    - libxl_string_list_length
    - fprintf
    - strdup
    - sscanf
    - MATCH_OPTION
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_vdispl_config(libxl_device_vdispl *vdispl, char *token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:866,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:869,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:871,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:872,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:876,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:879,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:880,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:883,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:885,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:886,1
    - Dst: libxl_vsnd_pcm_format_from_string
      Src: /src/xen/tools/xl/xl_parse.c:892,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:893,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:894,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:900,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:901,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:902,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:903,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:904,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:905,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:906,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - params
    - token
    argTypes:
    - libxl_vsnd_params*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 912
    functionName: parse_vsnd_params
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xcalloc
    - libxl_vsnd_pcm_format_from_string
    - split_string_into_string_list
    - libxl_string_list_dispose
    - libxl_string_list_length
    - fprintf
    - exit
    - MATCH_OPTION
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_params(libxl_vsnd_params *params, char *token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:917,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:924,1
    - Dst: parse_vsnd_params
      Src: /src/xen/tools/xl/xl_parse.c:930,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:933,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:934,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:935,1
    - Dst: libxl_vsnd_stream_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:936,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:937,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - vsnd
    - param
    argTypes:
    - libxl_device_vsnd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 947
    functionName: parse_vsnd_pcm_stream
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - libxl_vsnd_stream_type_from_string
    - parse_vsnd_params
    - fprintf
    - strdup
    - MATCH_OPTION
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_pcm_stream(libxl_device_vsnd *vsnd, char *param)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:952,1
    - Dst: parse_vsnd_params
      Src: /src/xen/tools/xl/xl_parse.c:958,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:961,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:962,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - vsnd
    - param
    argTypes:
    - libxl_device_vsnd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 970
    functionName: parse_vsnd_pcm_param
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - parse_vsnd_params
    - MATCH_OPTION
    - fprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_pcm_param(libxl_device_vsnd *vsnd, char *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_vsnd_params
      Src: /src/xen/tools/xl/xl_parse.c:974,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:977,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:978,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:979,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:980,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:981,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:982,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - vsnd
    - param
    argTypes:
    - libxl_device_vsnd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 990
    functionName: parse_vsnd_card_param
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - parse_vsnd_params
    - MATCH_OPTION
    - strdup
    - fprintf
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_card_param(libxl_device_vsnd *vsnd, char *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:994,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:996,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:997,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:999,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:1001,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:1007,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1010,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - vsnd
    - key
    argTypes:
    - libxl_device_vsnd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1015
    functionName: parse_vsnd_create_item
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - ARRAY_EXTEND_INIT_NODEVID
    - fprintf
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_create_item(libxl_device_vsnd *vsnd, const char *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1019,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1020,1
    - Dst: parse_vsnd_create_item
      Src: /src/xen/tools/xl/xl_parse.c:1029,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:1032,1
    - Dst: parse_vsnd_card_param
      Src: /src/xen/tools/xl/xl_parse.c:1033,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:1035,1
    - Dst: parse_vsnd_pcm_param
      Src: /src/xen/tools/xl/xl_parse.c:1036,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_parse.c:1038,1
    - Dst: parse_vsnd_pcm_stream
      Src: /src/xen/tools/xl/xl_parse.c:1039,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1043,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1049,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - vsnd
    - spec
    argTypes:
    - libxl_device_vsnd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1017
    functionDepth: 4
    functionLinenumber: 1017
    functionLinenumberEnd: 1051
    functionName: parse_vsnd_item
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - parse_vsnd_create_item
    - parse_vsnd_pcm_stream
    - free
    - parse_vsnd_card_param
    - strcasecmp
    - strdup
    - parse_vsnd_pcm_param
    - strtok
    linkageType: ''
    returnType: int
    signature: int parse_vsnd_item(libxl_device_vsnd *vsnd, const char *spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_value_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1063,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1066,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_parse.c:1066,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:1070,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1074,1
    - Dst: parse_vsnd_item
      Src: /src/xen/tools/xl/xl_parse.c:1075,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - config
    - card_value
    - d_config
    argTypes:
    - XLU_Config*
    - XLU_ConfigValue*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1053
    functionDepth: 5
    functionLinenumber: 1053
    functionLinenumberEnd: 1084
    functionName: parse_vsnd_card_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - ARRAY_EXTEND_INIT
    - xlu_cfg_get_listitem
    - strerror
    - fprintf
    - xlu_cfg_value_get_list
    - parse_vsnd_item
    - exit
    linkageType: ''
    returnType: void
    signature: "void parse_vsnd_card_config(const XLU_Config *config,\n                                   XLU_ConfigValue
      *card_value,\n                                   libxl_domain_config *d_config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1091,1
    - Dst: xlu_cfg_get_listitem2
      Src: /src/xen/tools/xl/xl_parse.c:1097,1
    - Dst: parse_vsnd_card_config
      Src: /src/xen/tools/xl/xl_parse.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - config
    - d_config
    argTypes:
    - XLU_Config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1086
    functionDepth: 6
    functionLinenumber: 1086
    functionLinenumberEnd: 1102
    functionName: parse_vsnd_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_list
    - parse_vsnd_card_config
    - xlu_cfg_get_listitem2
    linkageType: ''
    returnType: void
    signature: "void parse_vsnd_config(const XLU_Config *config,\n                              libxl_domain_config
      *d_config)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1108,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1109,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1110,1
    - Dst: libxl_vkb_backend_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1112,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1113,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1118,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1119,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1120,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1121,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1122,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1123,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1124,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1125,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1126,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1127,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1128,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1129,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1130,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1131,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1132,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1133,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1134,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1135,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1136,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1137,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1138,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1139,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1141,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - vkb
    - token
    argTypes:
    - libxl_device_vkb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1146
    functionName: parse_vkb_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - libxl_vkb_backend_from_string
    - fprintf
    - strdup
    - MATCH_OPTION
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_vkb_config(libxl_device_vkb *vkb, char *token)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1156,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1158,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:1162,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1166,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1168,1
    - Dst: parse_vkb_config
      Src: /src/xen/tools/xl/xl_parse.c:1173,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1176,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1180,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1191,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1204,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1205,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 2
    argNames:
    - config
    - d_config
    argTypes:
    - XLU_Config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1206
    functionName: parse_vkb_list
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - free
    - ARRAY_EXTEND_INIT
    - xlu_cfg_get_listitem
    - parse_vkb_config
    - fprintf
    - strdup
    - exit
    - xlu_cfg_get_list
    - strtok
    linkageType: ''
    returnType: void
    signature: "void parse_vkb_list(const XLU_Config *config,\n                           libxl_domain_config
      *d_config)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1213,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1214,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1215,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1216,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1217,1
    - Dst: libxl_virtio_transport_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1218,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1220,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:1221,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:1221,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - virtio
    - token
    argTypes:
    - libxl_device_virtio*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1228
    functionName: parse_virtio_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strdup
    - libxl_defbool_set
    - MATCH_OPTION
    - strtoul
    - libxl_virtio_transport_from_string
    linkageType: ''
    returnType: int
    signature: int parse_virtio_config(libxl_device_virtio *virtio, char *token)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1238,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1240,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:1244,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1247,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1249,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1255,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1256,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1256,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1257,1
    - Dst: malloc
      Src: /src/xen/tools/xl/xl_parse.c:1258,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1258,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1258,1
    - Dst: strcpy
      Src: /src/xen/tools/xl/xl_parse.c:1260,1
    - Dst: strcat
      Src: /src/xen/tools/xl/xl_parse.c:1261,1
    - Dst: strcat
      Src: /src/xen/tools/xl/xl_parse.c:1262,1
    - Dst: parse_virtio_config
      Src: /src/xen/tools/xl/xl_parse.c:1267,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1270,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1272,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1276,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1283,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1284,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - config
    - d_config
    argTypes:
    - XLU_Config*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1285
    functionName: parse_virtio_list
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - ARRAY_EXTEND_INIT
    - xlu_cfg_get_listitem
    - strncmp
    - strcpy
    - strlen
    - strdup
    - exit
    - xlu_cfg_get_list
    - parse_virtio_config
    - MATCH_OPTION
    - strcat
    - strtok
    linkageType: ''
    returnType: void
    signature: "void parse_virtio_list(const XLU_Config *config,\n                              libxl_domain_config
      *d_config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1294,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1297,1
    - Dst: MATCH_OPTION
      Src: /src/xen/tools/xl/xl_parse.c:1300,1
    - Dst: libxl_arm_sci_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1301,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1303,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:1309,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - cfg
    - arm_sci
    - str
    argTypes:
    - XLU_Config*
    - libxl_arm_sci*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1315
    functionName: parse_arm_sci_config
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - libxl_arm_sci_type_from_string
    - free
    - fprintf
    - strdup
    - MATCH_OPTION
    - strtok
    linkageType: ''
    returnType: int
    signature: "int parse_arm_sci_config(XLU_Config *cfg, libxl_arm_sci *arm_sci,\n
      \                               const char *str)"
  - BBCount: 304
    BranchProfiles: []
    Callsites:
    - Dst: libxl_physinfo_init
      Src: /src/xen/tools/xl/xl_parse.c:1343,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/xl/xl_parse.c:1344,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_parse.c:1345,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1346,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1347,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_parse.c:1350,1
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl_parse.c:1352,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1354,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1355,1
    - Dst: xlu_cfg_readdata
      Src: /src/xen/tools/xl/xl_parse.c:1358,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1360,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_parse.c:1360,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1361,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1364,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1365,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1368,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1370,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1373,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:1377,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1379,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1380,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1380,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1382,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1382,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1384,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1384,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1387,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1388,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1393,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1396,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1396,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:1398,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:1398,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1401,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1402,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1407,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1409,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1421,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1423,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1424,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1425,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1428,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1429,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1430,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1431,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/xl/xl_parse.c:1434,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1437,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1439,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1440,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1442,1
    - Dst: libxl_domain_build_info_init_type
      Src: /src/xen/tools/xl/xl_parse.c:1445,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1448,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1449,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1450,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1452,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1453,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1455,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1456,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1461,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1465,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1467,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1469,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1471,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1473,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1475,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1478,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1481,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1484,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1491,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1493,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1495,1
    - Dst: sscanf
      Src: /src/xen/tools/xl/xl_parse.c:1498,1
    - Dst: sscanf
      Src: /src/xen/tools/xl/xl_parse.c:1499,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1500,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1501,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1505,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1507,1
    - Dst: realloc
      Src: /src/xen/tools/xl/xl_parse.c:1511,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1519,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:1530,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1531,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1532,1
    - Dst: libxl_bitmap_set_none
      Src: /src/xen/tools/xl/xl_parse.c:1534,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:1536,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1538,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1541,1
    - Dst: libxl_vuart_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1542,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1543,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1545,1
    - Dst: parse_vnuma_config
      Src: /src/xen/tools/xl/xl_parse.c:1549,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1560,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1561,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1565,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1566,1
    - Dst: parse_vcpu_affinity
      Src: /src/xen/tools/xl/xl_parse.c:1567,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1570,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1571,1
    - Dst: parse_vcpu_affinity
      Src: /src/xen/tools/xl/xl_parse.c:1572,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl_parse.c:1574,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1581,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl_parse.c:1583,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1590,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl_parse.c:1592,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1599,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:1601,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1603,1
    - Dst: parse_action_on_shutdown
      Src: /src/xen/tools/xl/xl_parse.c:1605,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1606,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1607,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1610,1
    - Dst: parse_action_on_shutdown
      Src: /src/xen/tools/xl/xl_parse.c:1612,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1613,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1614,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1617,1
    - Dst: parse_action_on_shutdown
      Src: /src/xen/tools/xl/xl_parse.c:1619,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1620,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1621,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1625,1
    - Dst: parse_action_on_shutdown
      Src: /src/xen/tools/xl/xl_parse.c:1627,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1628,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1629,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1632,1
    - Dst: parse_action_on_shutdown
      Src: /src/xen/tools/xl/xl_parse.c:1634,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1635,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1636,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1642,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1645,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1648,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1651,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1654,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1657,1
    - Dst: xlu_rdm_parse
      Src: /src/xen/tools/xl/xl_parse.c:1659,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1665,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1668,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:1671,1
    - Dst: xlu_pci_parse_spec_string
      Src: /src/xen/tools/xl/xl_parse.c:1683,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1685,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1688,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:1692,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1695,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1698,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:1701,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:1705,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1707,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1708,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1713,1
    - Dst: libxl_passthrough_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1714,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1715,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1718,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1722,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1725,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1727,1
    - Dst: libxl_tsc_mode_to_string
      Src: /src/xen/tools/xl/xl_parse.c:1728,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1729,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1737,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1738,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1741,1
    - Dst: libxl_tsc_mode_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1742,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1743,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1745,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1749,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1752,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1753,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1756,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1758,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1761,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1764,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1765,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1766,1
    - Dst: parse_cmdline
      Src: /src/xen/tools/xl/xl_parse.c:1767,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1769,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1770,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1772,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:1775,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:1776,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1777,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1778,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1781,1
    - Dst: libxl_defbool_is_default
      Src: /src/xen/tools/xl/xl_parse.c:1783,1
    - Dst: libxl_defbool_setdefault
      Src: /src/xen/tools/xl/xl_parse.c:1784,1
    - Dst: libxl_defbool_val
      Src: /src/xen/tools/xl/xl_parse.c:1785,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1786,1
    - Dst: xlu_cfg_get_list_as_string_list
      Src: /src/xen/tools/xl/xl_parse.c:1789,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1795,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1797,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:1800,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1805,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1806,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1809,1
    - Dst: libxl_timer_mode_to_string
      Src: /src/xen/tools/xl/xl_parse.c:1810,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1813,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1815,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1818,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1827,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1829,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1832,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1834,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1836,1
    - Dst: libxl_timer_mode_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1839,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1840,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1842,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1846,1
    - Dst: libxl_basename
      Src: /src/xen/tools/xl/xl_parse.c:1850,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:1851,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1852,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:1858,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1860,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1862,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:1864,1
    - Dst: libxl_bios_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1865,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1866,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1868,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1871,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1874,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1875,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1876,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1877,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1878,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1879,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1880,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1881,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1882,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1884,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:1889,1
    - Dst: libxl_bitmap_alloc
      Src: /src/xen/tools/xl/xl_parse.c:1891,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1897,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:1898,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl_parse.c:1899,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:1900,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:1901,1
    - Dst: libxl_viridian_enlightenment_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1912,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1914,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1917,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_parse.c:1920,1
    - Dst: libxl_bitmap_reset
      Src: /src/xen/tools/xl/xl_parse.c:1921,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1927,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1930,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1931,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:1934,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1941,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1943,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:1947,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1948,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1951,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:1953,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:1956,1
    - Dst: xcalloc
      Src: /src/xen/tools/xl/xl_parse.c:1963,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:1969,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1971,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1974,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:1977,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:1978,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1980,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1982,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1989,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1992,1
    - Dst: libxl_smbios_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:1995,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:1997,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:1998,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2003,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2005,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:2011,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2013,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2020,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2021,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2024,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2025,1
    - Dst: libxl_ms_vm_genid_generate
      Src: /src/xen/tools/xl/xl_parse.c:2026,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2028,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2029,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2031,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2034,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2035,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2039,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2042,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2047,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2048,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2051,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2053,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2062,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2063,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2078,1
    - Dst: libxl_bios_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2079,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:2080,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:2080,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:2082,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:2082,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2084,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2101,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2103,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2105,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:2107,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:2107,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_parse.c:2108,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:2108,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2109,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2111,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_parse.c:2114,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2117,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2118,1
    - Dst: abort
      Src: /src/xen/tools/xl/xl_parse.c:2124,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2127,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2130,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2131,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2135,1
    - Dst: libxl_altp2m_mode_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2136,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2137,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2139,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2143,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2145,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2146,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2152,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2156,1
    - Dst: calloc
      Src: /src/xen/tools/xl/xl_parse.c:2158,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2160,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2161,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2170,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2172,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2174,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:2176,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2178,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2180,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2183,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2184,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:2190,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2192,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2194,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2197,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2198,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2202,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2209,1
    - Dst: calloc
      Src: /src/xen/tools/xl/xl_parse.c:2211,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2213,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2214,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2219,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2221,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2223,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:2225,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2227,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2229,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2232,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2233,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2239,1
    - Dst: calloc
      Src: /src/xen/tools/xl/xl_parse.c:2242,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2244,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2245,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2250,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2252,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2254,1
    - Dst: libxl_iomem_range_init
      Src: /src/xen/tools/xl/xl_parse.c:2256,1
    - Dst: sscanf
      Src: /src/xen/tools/xl/xl_parse.c:2257,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2262,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2264,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2271,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2274,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2276,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:2278,1
    - Dst: parse_disk_config
      Src: /src/xen/tools/xl/xl_parse.c:2281,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2283,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2287,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2292,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2296,1
    - Dst: libxl_device_p9_init
      Src: /src/xen/tools/xl/xl_parse.c:2299,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:2301,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:2302,1
    - Dst: split_string_into_pair
      Src: /src/xen/tools/xl/xl_parse.c:2307,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2310,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2312,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2315,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2316,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2317,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2318,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2319,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2320,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2321,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2322,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2323,1
    - Dst: libxl_p9_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2324,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2325,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2327,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2329,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:2330,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2331,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:2332,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2333,1
    - Dst: parse_ulong
      Src: /src/xen/tools/xl/xl_parse.c:2334,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2335,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_parse.c:2336,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2338,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2339,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2341,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2342,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:2345,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_parse.c:2350,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2351,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2352,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2357,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2360,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2362,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2366,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2370,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:2375,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2378,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2379,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2381,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2382,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2383,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2385,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2388,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2389,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2391,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2394,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2395,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2397,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2401,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2404,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2406,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2408,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2411,1
    - Dst: parse_vdispl_config
      Src: /src/xen/tools/xl/xl_parse.c:2415,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2416,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2417,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2419,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2421,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2423,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2424,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2429,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2432,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2436,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2440,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2441,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:2446,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2449,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2450,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2452,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2453,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2455,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2457,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2460,1
    - Dst: parse_vsnd_config
      Src: /src/xen/tools/xl/xl_parse.c:2464,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2466,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2469,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:2476,1
    - Dst: split_string_into_string_list
      Src: /src/xen/tools/xl/xl_parse.c:2480,1
    - Dst: libxl_string_list_length
      Src: /src/xen/tools/xl/xl_parse.c:2481,1
    - Dst: split_string_into_pair
      Src: /src/xen/tools/xl/xl_parse.c:2485,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2488,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2490,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2493,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2494,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2495,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2496,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2497,1
    - Dst: replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2498,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2499,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2500,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2502,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2505,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2507,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2510,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2513,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2514,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2518,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2519,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2522,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2523,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:2525,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2531,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2533,1
    - Dst: libxl_string_list_dispose
      Src: /src/xen/tools/xl/xl_parse.c:2535,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2536,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2540,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2543,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2545,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2548,1
    - Dst: set_default_nic_values
      Src: /src/xen/tools/xl/xl_parse.c:2551,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2553,1
    - Dst: parse_nic_config
      Src: /src/xen/tools/xl/xl_parse.c:2559,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2560,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2562,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2566,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2567,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2575,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2576,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2580,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2583,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2586,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2589,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:2595,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2598,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2599,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:2599,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2600,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2601,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2602,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2603,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2604,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2605,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2606,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:2607,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2608,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2609,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:2609,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2610,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2611,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2612,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2613,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2614,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:2614,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2615,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2616,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_parse.c:2616,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2617,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2618,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2619,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2620,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2621,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2622,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2624,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2627,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2631,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2634,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2637,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2640,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2643,1
    - Dst: parse_usbctrl_config
      Src: /src/xen/tools/xl/xl_parse.c:2649,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2650,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2651,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2653,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2657,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2660,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2663,1
    - Dst: ARRAY_EXTEND_INIT_NODEVID
      Src: /src/xen/tools/xl/xl_parse.c:2666,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2669,1
    - Dst: parse_usbdev_config
      Src: /src/xen/tools/xl/xl_parse.c:2675,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2676,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_parse.c:2677,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2679,1
    - Dst: xlu_cfg_get_list
      Src: /src/xen/tools/xl/xl_parse.c:2683,1
    - Dst: xlu_cfg_get_listitem
      Src: /src/xen/tools/xl/xl_parse.c:2688,1
    - Dst: libxl_cpuid_parse_config_xend
      Src: /src/xen/tools/xl/xl_parse.c:2689,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2711,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2712,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2717,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:2721,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:2722,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2724,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2727,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2728,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2729,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2730,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:2733,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:2734,1
    - Dst: libxl_cpuid_parse_config
      Src: /src/xen/tools/xl/xl_parse.c:2735,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2754,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2755,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:2757,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2765,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2766,1
    - Dst: strstr
      Src: /src/xen/tools/xl/xl_parse.c:2770,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2772,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2776,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2783,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2785,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2786,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2790,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2792,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2795,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2796,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2799,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2801,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2804,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2807,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2809,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2811,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2813,1
    - Dst: parse_extra_args
      Src: /src/xen/tools/xl/xl_parse.c:2825,1
    - Dst: parse_extra_args
      Src: /src/xen/tools/xl/xl_parse.c:2828,1
    - Dst: parse_extra_args
      Src: /src/xen/tools/xl/xl_parse.c:2831,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2840,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2847,1
    - Dst: ARRAY_EXTEND_INIT
      Src: /src/xen/tools/xl/xl_parse.c:2850,1
    - Dst: parse_top_level_vnc_options
      Src: /src/xen/tools/xl/xl_parse.c:2853,1
    - Dst: parse_top_level_sdl_options
      Src: /src/xen/tools/xl/xl_parse.c:2854,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2855,1
    - Dst: parse_top_level_vnc_options
      Src: /src/xen/tools/xl/xl_parse.c:2858,1
    - Dst: parse_top_level_sdl_options
      Src: /src/xen/tools/xl/xl_parse.c:2859,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2862,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2865,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2866,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2868,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2870,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_parse.c:2872,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2875,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2876,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2878,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2882,1
    - Dst: libxl_hdtype_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2883,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2884,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2886,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2889,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2890,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2891,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2893,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2895,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2897,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2899,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2901,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2903,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2905,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2907,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2909,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2911,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2913,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2914,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2915,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2916,1
    - Dst: libxl_gfx_passthru_kind_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2917,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2919,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2922,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_parse.c:2924,1
    - Dst: xlu_cfg_get_list_as_string_list
      Src: /src/xen/tools/xl/xl_parse.c:2926,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2936,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2941,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2942,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2944,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2945,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:2946,1
    - Dst: xlu_cfg_get_list_as_string_list
      Src: /src/xen/tools/xl/xl_parse.c:2948,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2958,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2963,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2964,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2966,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl_parse.c:2967,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2968,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:2970,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:2975,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2976,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2979,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2983,1
    - Dst: libxl_vendor_device_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2986,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:2988,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:2991,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:2998,1
    - Dst: libxl_gic_version_from_string
      Src: /src/xen/tools/xl/xl_parse.c:2999,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3001,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3003,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:3007,1
    - Dst: libxl_tee_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:3008,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3010,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3012,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:3016,1
    - Dst: libxl_sve_type_from_string
      Src: /src/xen/tools/xl/xl_parse.c:3017,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3019,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3020,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl_parse.c:3024,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:3027,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl_parse.c:3030,1
    - Dst: parse_arm_sci_config
      Src: /src/xen/tools/xl/xl_parse.c:3031,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3032,1
    - Dst: parse_vkb_list
      Src: /src/xen/tools/xl/xl_parse.c:3036,1
    - Dst: parse_virtio_list
      Src: /src/xen/tools/xl/xl_parse.c:3040,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:3042,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:3045,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3047,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl_parse.c:3052,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl_parse.c:3054,1
    CyclomaticComplexity: 376
    EdgeCount: 376
    ICount: 1227
    argCount: 4
    argNames:
    - config_source
    - config_data
    - config_len
    - d_config
    argTypes:
    - char*
    - char*
    - int
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 1317
    functionDepth: 7
    functionLinenumber: 1317
    functionLinenumberEnd: 3055
    functionName: parse_config_data
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached:
    - libxl_passthrough_from_string
    - libxl_vuart_type_from_string
    - parse_arm_sci_config
    - libxl_timer_mode_to_string
    - parse_usbctrl_config
    - libxl_hdtype_from_string
    - libxl_bios_type_from_string
    - libxl_defbool_val
    - split_string_into_pair
    - xlu_cfg_replace_string
    - libxl_uuid_generate
    - libxl_viridian_enlightenment_from_string
    - libxl_defbool_is_default
    - parse_vdispl_config
    - parse_vkb_list
    - xlu_cfg_readdata
    - libxl_basename
    - libxl_bitmap_reset
    - split_string_into_string_list
    - libxl_device_p9_init
    - parse_virtio_list
    - parse_usbdev_config
    - xlu_cfg_init
    - strtok
    - parse_extra_args
    - strncmp
    - libxl_cpu_bitmap_alloc
    - parse_action_on_shutdown
    - set_default_nic_values
    - strtoul
    - libxl_bitmap_set
    - libxl_tsc_mode_to_string
    - parse_vsnd_config
    - strcmp
    - libxl_altp2m_mode_from_string
    - xlu_cfg_get_list_as_string_list
    - xlu_cfg_get_bounded_long
    - libxl_uuid_from_string
    - parse_cmdline
    - xlu_rdm_parse
    - exit
    - libxl_smbios_type_from_string
    - libxl_p9_type_from_string
    - libxl_cpuid_parse_config_xend
    - libxl_bitmap_set_any
    - strstr
    - libxl_bitmap_alloc
    - xcalloc
    - parse_top_level_vnc_options
    - xlu_cfg_get_defbool
    - strchr
    - libxl_physinfo_dispose
    - replace_string
    - libxl_gfx_passthru_kind_from_string
    - libxl_sve_type_from_string
    - calloc
    - abort
    - free
    - ARRAY_EXTEND_INIT
    - libxl_string_list_dispose
    - libxl_cpuid_parse_config
    - parse_vnuma_config
    - libxl_defbool_setdefault
    - libxl_string_list_length
    - fprintf
    - parse_nic_config
    - sscanf
    - xlu_pci_parse_spec_string
    - parse_top_level_sdl_options
    - libxl_iomem_range_init
    - parse_vcpu_affinity
    - parse_disk_config
    - parse_ulong
    - xlu_cfg_get_long
    - xlu_cfg_get_listitem
    - libxl_timer_mode_from_string
    - xlu_cfg_get_list
    - libxl_defbool_set
    - realloc
    - atoi
    - libxl_tsc_mode_from_string
    - libxl_vendor_device_from_string
    - strlen
    - libxl_domain_build_info_init_type
    - xstrdup
    - xlu_cfg_get_string
    - xasprintf
    - xlu_cfg_destroy
    - libxl_physinfo_init
    - libxl_bitmap_set_none
    - strtok_r
    - libxl_tee_type_from_string
    - strdup
    - libxl_ms_vm_genid_generate
    - strerror
    - libxl_gic_version_from_string
    - ARRAY_EXTEND_INIT_NODEVID
    - libxl_get_physinfo
    linkageType: ''
    returnType: void
    signature: "void parse_config_data(const char *config_source,\n                       const
      char *config_data,\n                       int config_len,\n                       libxl_domain_config
      *d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2816
    functionDepth: 0
    functionLinenumber: 2816
    functionLinenumberEnd: 2823
    functionName: parse_extra_args
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_extra_args(type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/xen/tools/xl/xl_parse.c:3063,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:3065,1
    - Dst: tolower
      Src: /src/xen/tools/xl/xl_parse.c:3068,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - mem
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3058
    functionDepth: 1
    functionLinenumber: 3058
    functionLinenumberEnd: 3089
    functionName: parse_mem_size_kb
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 0
    functionsReached:
    - tolower
    - strlen
    - strtoll
    linkageType: ''
    returnType: int64_t
    signature: int64_t parse_mem_size_kb(const char *mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:3102,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3104,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3105,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:3109,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:3112,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:3114,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:3116,1
    - Dst: malloc
      Src: /src/xen/tools/xl/xl_parse.c:3118,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_parse.c:3120,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_parse.c:3121,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:3124,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_parse.c:3126,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_parse.c:3127,1
    - Dst: strtok_r
      Src: /src/xen/tools/xl/xl_parse.c:3129,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:3134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - str
    - delim
    - psl
    argTypes:
    - char*
    - char*
    - libxl_string_list*
    assertStmts:
    - condition: (i < nr)
      pos:
        line_end: 3125
        line_start: 3125
        source_file: /src/xen/tools/xl/xl_parse.c
    constantsTouched: []
    func_position:
      end: 3135
      start: 3092
    functionDepth: 1
    functionLinenumber: 3092
    functionLinenumberEnd: 3135
    functionName: split_string_into_string_list
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 6
    functionsReached:
    - strtok_r
    - free
    - malloc
    - fprintf
    - strdup
    - exit
    - assert
    linkageType: ''
    returnType: void
    signature: "void split_string_into_string_list(const char *str,\n                                   const
      char *delim,\n                                   libxl_string_list *psl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: predicate
      Src: /src/xen/tools/xl/xl_parse.c:3142,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_parse.c:3146,1
    - Dst: predicate
      Src: /src/xen/tools/xl/xl_parse.c:3147,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_parse.c:3152,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_parse.c:3154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - predicate
    - input
    - output
    argTypes:
    - char_predicate_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3158
      start: 3137
    functionDepth: 0
    functionLinenumber: 3137
    functionLinenumberEnd: 3158
    functionName: trim
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 2
    functionsReached:
    - memcpy
    - xmalloc
    - strlen
    - predicate
    linkageType: ''
    returnType: void
    signature: void trim(char_predicate_t predicate, const char *input, char **output)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:3166,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_parse.c:3168,1
    - Dst: trim
      Src: /src/xen/tools/xl/xl_parse.c:3175,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:3177,1
    - Dst: trim
      Src: /src/xen/tools/xl/xl_parse.c:3185,1
    - Dst: xstrdup
      Src: /src/xen/tools/xl/xl_parse.c:3187,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:3195,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:3196,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_parse.c:3197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - str
    - delim
    - a
    - b
    - predicate
    argTypes:
    - char*
    - char
    - char**
    - char**
    - char_predicate_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3160
    functionDepth: 1
    functionLinenumber: 3160
    functionLinenumberEnd: 3199
    functionName: split_string_into_pair
    functionSourceFile: /src/xen/tools/xl/xl_parse.c
    functionUses: 3
    functionsReached:
    - xstrdup
    - strchr
    - free
    - trim
    linkageType: ''
    returnType: int
    signature: "int split_string_into_pair(const char *str, char delim, char **a,
      char **b,\n                           char_predicate_t predicate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_version_info
      Src: /src/xen/tools/xl/xl.c:81,1
    - Dst: regcomp
      Src: /src/xen/tools/xl/xl.c:87,1
    - Dst: regexec
      Src: /src/xen/tools/xl/xl.c:96,1
    - Dst: regfree
      Src: /src/xen/tools/xl/xl.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 75
    functionDepth: 5
    functionLinenumber: 75
    functionLinenumberEnd: 100
    functionName: auto_autoballoon
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 0
    functionsReached:
    - regcomp
    - regexec
    - libxl_get_version_info
    - regfree
    linkageType: ''
    returnType: int
    signature: int auto_autoballoon(void)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xlu_cfg_init
      Src: /src/xen/tools/xl/xl.c:111,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:113,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:114,1
    - Dst: xlu_cfg_readdata
      Src: /src/xen/tools/xl/xl.c:117,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:119,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl.c:119,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:120,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:123,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:124,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:124,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:126,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:126,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:128,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:131,1
    - Dst: auto_autoballoon
      Src: /src/xen/tools/xl/xl.c:134,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl.c:136,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:139,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:140,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:142,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:146,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:147,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:160,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:161,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:163,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:164,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:167,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:168,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:169,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:172,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:173,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:175,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:176,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:179,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:180,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:181,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:184,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:185,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:187,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:188,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:190,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:191,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:193,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:196,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:199,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl.c:200,1
    - Dst: xlu_cfg_get_long
      Src: /src/xen/tools/xl/xl.c:202,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl.c:205,1
    - Dst: xlu_cfg_replace_string
      Src: /src/xen/tools/xl/xl.c:207,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl.c:210,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:215,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl.c:217,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:222,1
    - Dst: xlu_cfg_get_bounded_long
      Src: /src/xen/tools/xl/xl.c:224,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:229,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl.c:231,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl.c:232,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl.c:233,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:235,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl.c:236,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl.c:238,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:239,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl.c:240,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl.c:242,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:243,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl.c:244,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl.c:246,1
    - Dst: xlu_cfg_get_string
      Src: /src/xen/tools/xl/xl.c:248,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:249,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:251,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:254,1
    - Dst: xlu_cfg_get_defbool
      Src: /src/xen/tools/xl/xl.c:257,1
    - Dst: xlu_cfg_destroy
      Src: /src/xen/tools/xl/xl.c:260,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 104
    argCount: 3
    argNames:
    - configfile
    - configfile_data
    - configfile_len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 261
    functionName: parse_global_config
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 0
    functionsReached:
    - xlu_cfg_get_string
    - auto_autoballoon
    - xlu_cfg_get_bounded_long
    - xlu_cfg_replace_string
    - free
    - libxl_bitmap_set_any
    - xlu_cfg_get_defbool
    - parse_cpurange
    - xlu_cfg_get_long
    - xlu_cfg_destroy
    - strerror
    - fprintf
    - libxl_cpu_bitmap_alloc
    - strdup
    - exit
    - strcmp
    - xlu_cfg_init
    - xlu_cfg_readdata
    linkageType: ''
    returnType: void
    signature: "void parse_global_config(const char *configfile,\n                              const
      char *configfile_data,\n                              int configfile_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_postfork_child_noexec
      Src: /src/xen/tools/xl/xl.c:265,1
    - Dst: xl_ctx_alloc
      Src: /src/xen/tools/xl/xl.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: postfork
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 2
    functionsReached:
    - xl_ctx_alloc
    - libxl_postfork_child_noexec
    linkageType: ''
    returnType: void
    signature: void postfork(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xl/xl.c:275,1
    - Dst: fork
      Src: /src/xen/tools/xl/xl.c:279,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl.c:281,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - child
    - description
    argTypes:
    - xlchildnum
    - char*
    assertStmts:
    - condition: (!ch->pid)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/xen/tools/xl/xl.c
    constantsTouched: []
    func_position:
      end: 292
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 292
    functionName: xl_fork
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 2
    functionsReached:
    - exit
    - assert
    - perror
    - fork
    linkageType: ''
    returnType: pid_t
    signature: pid_t xl_fork(xlchildnum child, const char *description)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xl/xl.c:298,1
    - Dst: waitpid
      Src: /src/xen/tools/xl/xl.c:305,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl.c:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - child
    - status
    - flags
    argTypes:
    - xlchildnum
    - int*
    - int
    assertStmts:
    - condition: (got)
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/xen/tools/xl/xl.c
    - condition: (got == ch->pid)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/xen/tools/xl/xl.c
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: xl_waitpid
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 1
    functionsReached:
    - assert
    - waitpid
    linkageType: ''
    returnType: pid_t
    signature: pid_t xl_waitpid(xlchildnum child, int *status, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - xlchildnum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: xl_child_pid
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xl_child_pid(xlchildnum child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_report_child_exitstatus
      Src: /src/xen/tools/xl/xl.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - level
    - child
    - pid
    - status
    argTypes:
    - xentoollog_level
    - xlchildnum
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: xl_report_child_exitstatus
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 13
    functionsReached:
    - libxl_report_child_exitstatus
    linkageType: ''
    returnType: void
    signature: "void xl_report_child_exitstatus(xentoollog_level level,\n                                xlchildnum
      child, pid_t pid, int status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xl/xl.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - got
    - status
    - user
    argTypes:
    - pid_t
    - int
    - void*
    assertStmts:
    - condition: (got)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/xen/tools/xl/xl.c
    constantsTouched: []
    func_position:
      end: 341
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 341
    functionName: xl_reaped_callback
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int xl_reaped_callback(pid_t got, int status, void *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/xl/xl.c:349,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:350,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:351,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl.c:354,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl.c:355,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl.c:356,1
    - Dst: libxl_childproc_setmode
      Src: /src/xen/tools/xl/xl.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 358
    functionName: xl_ctx_alloc
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 3
    functionsReached:
    - libxl_ctx_alloc
    - libxl_bitmap_init
    - fprintf
    - exit
    - libxl_childproc_setmode
    linkageType: ''
    returnType: void
    signature: void xl_ctx_alloc(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl.c:362,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl.c:363,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl.c:364,1
    - Dst: libxl_ctx_free
      Src: /src/xen/tools/xl/xl.c:366,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/xl/xl.c:370,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 8
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: xl_ctx_free
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 2
    functionsReached:
    - free
    - xtl_logger_destroy
    - libxl_bitmap_dispose
    - libxl_ctx_free
    linkageType: ''
    returnType: void
    signature: void xl_ctx_free(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/xen/tools/xl/xl.c:389,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:407,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:408,1
    - Dst: help
      Src: /src/xen/tools/xl/xl.c:415,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:416,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/xl/xl.c:424,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl.c:425,1
    - Dst: xl_ctx_alloc
      Src: /src/xen/tools/xl/xl.c:427,1
    - Dst: atexit
      Src: /src/xen/tools/xl/xl.c:429,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl.c:431,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:434,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl.c:435,1
    - Dst: parse_global_config
      Src: /src/xen/tools/xl/xl.c:436,1
    - Dst: free
      Src: /src/xen/tools/xl/xl.c:437,1
    - Dst: cmdtable_lookup
      Src: /src/xen/tools/xl/xl.c:444,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:447,1
    - Dst: struct cmd_spec*::cmd_impl
      Src: /src/xen/tools/xl/xl.c:451,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:452,1
    - Dst: help
      Src: /src/xen/tools/xl/xl.c:453,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:456,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 379
    functionDepth: 8
    functionLinenumber: 379
    functionLinenumberEnd: 462
    functionName: main
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 59
    functionsReached:
    - parse_global_config
    - xl_ctx_alloc
    - xtl_createlogger_stdiostream
    - free
    - struct cmd_spec*::cmd_impl
    - cmdtable_lookup
    - help
    - libxl_read_file_contents
    - fprintf
    - getopt
    - strerror
    - exit
    - atexit
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xl_waitpid
      Src: /src/xen/tools/xl/xl.c:467,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl.c:469,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl.c:470,1
    - Dst: xl_report_child_exitstatus
      Src: /src/xen/tools/xl/xl.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - child
    argTypes:
    - xlchildnum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: child_report
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 3
    functionsReached:
    - xl_report_child_exitstatus
    - strerror
    - xl_waitpid
    - fprintf
    linkageType: ''
    returnType: int
    signature: int child_report(xlchildnum child)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl.c:485,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:486,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:487,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:489,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl.c:490,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:491,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:492,1
    - Dst: cmdtable_lookup
      Src: /src/xen/tools/xl/xl.c:495,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:497,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:504,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl.c:507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 510
    functionName: help
    functionSourceFile: /src/xen/tools/xl/xl.c
    functionUses: 11
    functionsReached:
    - strcmp
    - cmdtable_lookup
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: void help(const char *command)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vsnd.c:34,1
    - Dst: libxl_device_vsnd_init
      Src: /src/xen/tools/xl/xl_vsnd.c:38,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vsnd.c:39,1
    - Dst: parse_vsnd_item
      Src: /src/xen/tools/xl/xl_vsnd.c:42,1
    - Dst: libxl_device_vsnd_to_json
      Src: /src/xen/tools/xl/xl_vsnd.c:47,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:48,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vsnd.c:50,1
    - Dst: libxl_device_vsnd_add
      Src: /src/xen/tools/xl/xl_vsnd.c:54,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vsnd.c:55,1
    - Dst: libxl_device_vsnd_dispose
      Src: /src/xen/tools/xl/xl_vsnd.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 64
    functionName: main_vsndattach
    functionSourceFile: /src/xen/tools/xl/xl_vsnd.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_vsnd_dispose
    - free
    - libxl_device_vsnd_add
    - fprintf
    - libxl_device_vsnd_init
    - printf
    - parse_vsnd_item
    - libxl_device_vsnd_to_json
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vsndattach(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:71,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:75,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:79,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:83,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:85,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:87,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:91,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:93,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/xl/xl_vsnd.c:93,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:95,1
    - Dst: libxl_vsnd_pcm_format_to_string
      Src: /src/xen/tools/xl/xl_vsnd.c:95,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - params
    argTypes:
    - libxl_vsnd_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 99
    functionName: print_params
    functionSourceFile: /src/xen/tools/xl/xl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl_vsnd_pcm_format_to_string
    - printf
    linkageType: ''
    returnType: void
    signature: void print_params(libxl_vsnd_params *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vsnd.c:108,1
    - Dst: libxl_domain_qualifier_to_domid
      Src: /src/xen/tools/xl/xl_vsnd.c:115,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vsnd.c:116,1
    - Dst: libxl_device_vsnd_list
      Src: /src/xen/tools/xl/xl_vsnd.c:120,1
    - Dst: libxl_vsndinfo_init
      Src: /src/xen/tools/xl/xl_vsnd.c:125,1
    - Dst: libxl_device_vsnd_getinfo
      Src: /src/xen/tools/xl/xl_vsnd.c:126,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:128,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:134,1
    - Dst: print_params
      Src: /src/xen/tools/xl/xl_vsnd.c:137,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:142,1
    - Dst: print_params
      Src: /src/xen/tools/xl/xl_vsnd.c:143,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:149,1
    - Dst: libxl_vsnd_stream_type_to_string
      Src: /src/xen/tools/xl/xl_vsnd.c:151,1
    - Dst: print_params
      Src: /src/xen/tools/xl/xl_vsnd.c:152,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vsnd.c:153,1
    - Dst: libxl_vsndinfo_dispose
      Src: /src/xen/tools/xl/xl_vsnd.c:158,1
    - Dst: libxl_device_vsnd_list_free
      Src: /src/xen/tools/xl/xl_vsnd.c:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 101
    functionDepth: 7
    functionLinenumber: 101
    functionLinenumberEnd: 163
    functionName: main_vsndlist
    functionSourceFile: /src/xen/tools/xl/xl_vsnd.c
    functionUses: 0
    functionsReached:
    - libxl_vsnd_stream_type_to_string
    - libxl_device_vsnd_getinfo
    - libxl_vsndinfo_init
    - libxl_device_vsnd_list
    - libxl_domain_qualifier_to_domid
    - libxl_vsndinfo_dispose
    - fprintf
    - printf
    - libxl_device_vsnd_list_free
    - print_params
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vsndlist(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vsnd.c:171,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vsnd.c:175,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_vsnd.c:176,1
    - Dst: libxl_device_vsnd_init
      Src: /src/xen/tools/xl/xl_vsnd.c:178,1
    - Dst: libxl_devid_to_device_vsnd
      Src: /src/xen/tools/xl/xl_vsnd.c:180,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vsnd.c:181,1
    - Dst: libxl_device_vsnd_remove
      Src: /src/xen/tools/xl/xl_vsnd.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vsnd.c:188,1
    - Dst: libxl_device_vsnd_dispose
      Src: /src/xen/tools/xl/xl_vsnd.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 198
    functionName: main_vsnddetach
    functionSourceFile: /src/xen/tools/xl/xl_vsnd.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_vsnd_dispose
    - libxl_device_vsnd_remove
    - fprintf
    - libxl_devid_to_device_vsnd
    - libxl_device_vsnd_init
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vsnddetach(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:37,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:38,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:39,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:40,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:40,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:41,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:41,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:42,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:43,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_sxp.c:48,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_sxp.c:49,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:50,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/xl/xl_sxp.c:50,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_sxp.c:51,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:53,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:56,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:58,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:60,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:62,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:64,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:67,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:68,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:69,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:71,1
    - Dst: libxl_tsc_mode_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:71,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:72,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:73,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:74,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:75,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:78,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:80,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:82,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:83,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:87,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:90,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:91,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:92,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:93,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:94,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:94,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:95,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:96,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:97,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:98,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:99,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:99,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:100,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:101,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:102,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:103,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:104,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:105,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:106,1
    - Dst: libxl_timer_mode_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:107,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:108,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:109,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:110,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:113,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:114,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:115,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:116,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:117,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:118,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:119,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:120,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:121,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:122,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:123,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:124,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:125,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:126,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:127,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:128,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:129,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:130,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:131,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:132,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:133,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:137,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:138,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:139,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:140,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:141,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:142,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:143,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:144,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:145,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:148,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:149,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:150,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:151,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:152,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:153,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:154,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:157,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_sxp.c:158,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:160,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:163,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:164,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:165,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:166,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:167,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:168,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:169,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:170,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:171,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:172,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:173,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:174,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:178,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:179,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:181,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:182,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:183,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:184,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:185,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:187,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:191,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:192,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:196,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:197,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:198,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:202,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:205,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:206,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:210,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:211,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:212,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:213,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:214,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:215,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:216,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:217,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:218,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:219,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:220,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:221,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:222,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:223,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:224,1
    - Dst: libxl_defbool_to_string
      Src: /src/xen/tools/xl/xl_sxp.c:225,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:226,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:227,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:228,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:229,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sxp.c:231,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 148
    argCount: 3
    argNames:
    - domid
    - d_config
    - fh
    argTypes:
    - int
    - libxl_domain_config*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 232
    functionName: printf_info_sexp
    functionSourceFile: /src/xen/tools/xl/xl_sxp.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - libxl_defbool_to_string
    - libxl_tsc_mode_to_string
    - fprintf
    - exit
    - libxl_timer_mode_to_string
    - LIBXL_UUID_BYTES
    linkageType: ''
    returnType: void
    signature: void printf_info_sexp(int domid, libxl_domain_config *d_config, FILE
      *fh)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_flask_getenforce
      Src: /src/xen/tools/xl/xl_flask.c:30,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_flask.c:34,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:36,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_flask.c:39,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_flask.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: main_getenforce
    functionSourceFile: /src/xen/tools/xl/xl_flask.c
    functionUses: 0
    functionsReached:
    - libxl_flask_getenforce
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: int main_getenforce(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: help
      Src: /src/xen/tools/xl/xl_flask.c:52,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_flask.c:58,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_flask.c:60,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_flask.c:62,1
    - Dst: strcasecmp
      Src: /src/xen/tools/xl/xl_flask.c:64,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_flask.c:67,1
    - Dst: libxl_flask_setenforce
      Src: /src/xen/tools/xl/xl_flask.c:71,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:75,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 82
    functionName: main_setenforce
    functionSourceFile: /src/xen/tools/xl/xl_flask.c
    functionUses: 0
    functionsReached:
    - libxl_flask_setenforce
    - help
    - fprintf
    - strcasecmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main_setenforce(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: help
      Src: /src/xen/tools/xl/xl_flask.c:93,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_flask.c:98,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:100,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_flask.c:101,1
    - Dst: stat
      Src: /src/xen/tools/xl/xl_flask.c:106,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:108,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_flask.c:109,1
    - Dst: malloc
      Src: /src/xen/tools/xl/xl_flask.c:113,1
    - Dst: read
      Src: /src/xen/tools/xl/xl_flask.c:115,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:117,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_flask.c:118,1
    - Dst: libxl_flask_loadpolicy
      Src: /src/xen/tools/xl/xl_flask.c:122,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:126,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_flask.c:129,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_flask.c:130,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_flask.c:134,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_flask.c:138,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_flask.c:140,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 143
    functionName: main_loadpolicy
    functionSourceFile: /src/xen/tools/xl/xl_flask.c
    functionUses: 0
    functionsReached:
    - open
    - read
    - free
    - stat
    - malloc
    - close
    - help
    - strerror
    - fprintf
    - printf
    - libxl_flask_loadpolicy
    linkageType: ''
    returnType: int
    signature: int main_loadpolicy(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_saverestore.c:46,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl_saverestore.c:50,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:53,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_saverestore.c:54,1
    - Dst: parse_config_data
      Src: /src/xen/tools/xl/xl_saverestore.c:56,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_saverestore.c:58,1
    - Dst: libxl_retrieve_domain_configuration
      Src: /src/xen/tools/xl/xl_saverestore.c:60,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:63,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_saverestore.c:64,1
    - Dst: libxl_domain_config_to_json
      Src: /src/xen/tools/xl/xl_saverestore.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:72,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_saverestore.c:73,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_saverestore.c:76,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_saverestore.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 5
    argNames:
    - domid
    - preserve_domid
    - override_config_file
    - config_data_r
    - config_len_r
    argTypes:
    - uint32_t
    - int
    - char*
    - uint8_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 79
    functionName: save_domain_core_begin
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 2
    functionsReached:
    - libxl_domain_config_to_json
    - libxl_domain_config_init
    - free
    - libxl_domain_config_dispose
    - libxl_retrieve_domain_configuration
    - parse_config_data
    - libxl_read_file_contents
    - fprintf
    - strlen
    - exit
    linkageType: ''
    returnType: void
    signature: "void save_domain_core_begin(uint32_t domid,\n                            int
      preserve_domid,\n                            const char *override_config_file,\n
      \                           uint8_t **config_data_r,\n                            int
      *config_len_r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xl/xl_saverestore.c:88,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_saverestore.c:89,1
    - Dst: ADD_OPTDATA
      Src: /src/xen/tools/xl/xl_saverestore.c:105,1
    - Dst: ADD_OPTDATA
      Src: /src/xen/tools/xl/xl_saverestore.c:106,1
    - Dst: CHK_ERRNOVAL
      Src: /src/xen/tools/xl/xl_saverestore.c:112,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_saverestore.c:112,1
    - Dst: CHK_ERRNOVAL
      Src: /src/xen/tools/xl/xl_saverestore.c:114,1
    - Dst: libxl_write_exactly
      Src: /src/xen/tools/xl/xl_saverestore.c:114,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_saverestore.c:118,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - source
    - config_data
    - config_len
    argTypes:
    - int
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 124
    functionName: save_domain_core_writeconfig
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 1
    functionsReached:
    - ADD_OPTDATA
    - free
    - CHK_ERRNOVAL
    - fprintf
    - memset
    - libxl_write_exactly
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void save_domain_core_writeconfig(int fd, const char *source,\n                                  const
      uint8_t *config_data, int config_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: ADD_OPTDATA
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_OPTDATA(ptr, len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: save_domain_core_begin
      Src: /src/xen/tools/xl/xl_saverestore.c:134,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_saverestore.c:138,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_saverestore.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:143,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_saverestore.c:144,1
    - Dst: save_domain_core_writeconfig
      Src: /src/xen/tools/xl/xl_saverestore.c:147,1
    - Dst: libxl_domain_suspend
      Src: /src/xen/tools/xl/xl_saverestore.c:149,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_saverestore.c:150,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_saverestore.c:153,1
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_saverestore.c:154,1
    - Dst: libxl_domain_pause
      Src: /src/xen/tools/xl/xl_saverestore.c:158,1
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_saverestore.c:159,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_saverestore.c:162,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_saverestore.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - domid
    - preserve_domid
    - filename
    - checkpoint
    - leavepaused
    - override_config_file
    argTypes:
    - uint32_t
    - int
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 165
    functionName: save_domain
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 0
    functionsReached:
    - open
    - fputs
    - libxl_domain_destroy
    - save_domain_core_begin
    - libxl_domain_suspend
    - close
    - save_domain_core_writeconfig
    - fprintf
    - libxl_domain_resume
    - exit
    - libxl_domain_pause
    linkageType: ''
    returnType: int
    signature: "int save_domain(uint32_t domid, int preserve_domid,\n                       const
      char *filename, int checkpoint,\n                       int leavepaused, const
      char *override_config_file)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_saverestore.c:181,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_saverestore.c:212,1
    - Dst: memset
      Src: /src/xen/tools/xl/xl_saverestore.c:216,1
    - Dst: create_domain
      Src: /src/xen/tools/xl/xl_saverestore.c:229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 234
    functionName: main_restore
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 2
    functionsReached:
    - memset
    - help
    - create_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_restore(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_saverestore.c:246,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_saverestore.c:259,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_saverestore.c:263,1
    - Dst: save_domain
      Src: /src/xen/tools/xl/xl_saverestore.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 236
    functionDepth: 12
    functionLinenumber: 236
    functionLinenumberEnd: 271
    functionName: main_save
    functionSourceFile: /src/xen/tools/xl/xl_saverestore.c
    functionUses: 5
    functionsReached:
    - help
    - find_domain
    - save_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_save(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_suspend_only
      Src: /src/xen/tools/xl/xl_vmcontrol.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 6
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: suspend_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 2
    functionsReached:
    - libxl_domain_suspend_only
    linkageType: ''
    returnType: void
    signature: void suspend_domain(uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_resume
      Src: /src/xen/tools/xl/xl_vmcontrol.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 11
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: resume_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 2
    functionsReached:
    - libxl_domain_resume
    linkageType: ''
    returnType: void
    signature: void resume_domain(uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:50,1
    - Dst: suspend_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:54,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 57
    functionName: main_suspend
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 6
    functionsReached:
    - find_domain
    - SWITCH_FOREACH_OPT
    - suspend_domain
    linkageType: ''
    returnType: int
    signature: int main_suspend(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:63,1
    - Dst: resume_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:67,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 12
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: main_resume
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 8
    functionsReached:
    - resume_domain
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_resume(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_pause
      Src: /src/xen/tools/xl/xl_vmcontrol.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: pause_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_domain_pause
    linkageType: ''
    returnType: void
    signature: void pause_domain(uint32_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_unpause
      Src: /src/xen/tools/xl/xl_vmcontrol.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 11
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: unpause_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_domain_unpause
    linkageType: ''
    returnType: void
    signature: void unpause_domain(uint32_t domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:88,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:91,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:93,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:94,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - domid
    - force
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: destroy_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_domain_destroy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void destroy_domain(uint32_t domid, int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:101,1
    - Dst: pause_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:105,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: main_pause
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 6
    functionsReached:
    - pause_domain
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_pause(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:114,1
    - Dst: unpause_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:118,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 12
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: main_unpause
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 8
    functionsReached:
    - unpause_domain
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_unpause(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:128,1
    - Dst: destroy_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:134,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: main_destroy
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 15
    functionsReached:
    - destroy_domain
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_destroy(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:143,1
    - Dst: libxl_domain_reboot
      Src: /src/xen/tools/xl/xl_vmcontrol.c:144,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:147,1
    - Dst: libxl_send_trigger
      Src: /src/xen/tools/xl/xl_vmcontrol.c:149,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:151,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:153,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:157,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:157,1
    - Dst: libxl_evenable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:161,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:163,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - domid
    - deathw
    - for_user
    - fallback_trigger
    argTypes:
    - uint32_t
    - libxl_evgen_domain_death**
    - libxl_ev_user
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 138
    functionDepth: 10
    functionLinenumber: 138
    functionLinenumberEnd: 167
    functionName: reboot_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_send_trigger
    - fprintf
    - libxl_domain_reboot
    - exit
    - libxl_evenable_domain_death
    linkageType: ''
    returnType: void
    signature: "void reboot_domain(uint32_t domid, libxl_evgen_domain_death **deathw,\n
      \                         libxl_ev_user for_user, int fallback_trigger)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:176,1
    - Dst: libxl_domain_shutdown
      Src: /src/xen/tools/xl/xl_vmcontrol.c:177,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:180,1
    - Dst: libxl_send_trigger
      Src: /src/xen/tools/xl/xl_vmcontrol.c:182,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:184,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:191,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:191,1
    - Dst: libxl_evenable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:195,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:197,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:198,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - domid
    - deathw
    - for_user
    - fallback_trigger
    argTypes:
    - uint32_t
    - libxl_evgen_domain_death**
    - libxl_ev_user
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 201
    functionName: shutdown_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_domain_shutdown
    - libxl_send_trigger
    - fprintf
    - exit
    - libxl_evenable_domain_death
    linkageType: ''
    returnType: void
    signature: "void shutdown_domain(uint32_t domid,\n                            libxl_evgen_domain_death
      **deathw,\n                            libxl_ev_user for_user,\n                            int
      fallback_trigger)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:207,1
    - Dst: libxl_event_wait
      Src: /src/xen/tools/xl/xl_vmcontrol.c:210,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:212,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:213,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:218,1
    - Dst: libxl_evdisable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:219,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:223,1
    - Dst: libxl_evdisable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:226,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:229,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:233,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - deathws
    - nr
    - wait_for_shutdown_or_death
    argTypes:
    - libxl_evgen_domain_death**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 203
    functionDepth: 6
    functionLinenumber: 203
    functionLinenumberEnd: 238
    functionName: wait_for_domain_deaths
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_event_wait
    - libxl_evdisable_domain_death
    - exit
    - libxl_event_free
    - LOG
    linkageType: ''
    returnType: void
    signature: "void wait_for_domain_deaths(libxl_evgen_domain_death **deathws, int
      nr,\n                                   int wait_for_shutdown_or_death)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:255,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:268,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:275,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:276,1
    - Dst: calloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:281,1
    - Dst: fn
      Src: /src/xen/tools/xl/xl_vmcontrol.c:286,1
    - Dst: wait_for_domain_deaths
      Src: /src/xen/tools/xl/xl_vmcontrol.c:292,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:293,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:296,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:299,1
    - Dst: fn
      Src: /src/xen/tools/xl/xl_vmcontrol.c:301,1
    - Dst: wait_for_domain_deaths
      Src: /src/xen/tools/xl/xl_vmcontrol.c:304,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - do_reboot
    - argc
    - argv
    argTypes:
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 240
    functionDepth: 7
    functionLinenumber: 240
    functionLinenumberEnd: 309
    functionName: main_shutdown_or_reboot
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - wait_for_domain_deaths
    - find_domain
    - calloc
    - free
    - fn
    - fprintf
    - SWITCH_FOREACH_OPT
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int main_shutdown_or_reboot(int do_reboot, int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: main_shutdown_or_reboot
      Src: /src/xen/tools/xl/xl_vmcontrol.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 8
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: main_shutdown
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 3
    functionsReached:
    - main_shutdown_or_reboot
    linkageType: ''
    returnType: int
    signature: int main_shutdown(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: main_shutdown_or_reboot
      Src: /src/xen/tools/xl/xl_vmcontrol.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 8
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: main_reboot
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 1
    functionsReached:
    - main_shutdown_or_reboot
    linkageType: ''
    returnType: int
    signature: int main_reboot(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_evdisable_disk_eject
      Src: /src/xen/tools/xl/xl_vmcontrol.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - diskws
    - num_disks
    argTypes:
    - libxl_evgen_disk_eject**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 331
    functionName: evdisable_disk_ejects
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_evdisable_disk_eject
    linkageType: ''
    returnType: void
    signature: "void evdisable_disk_ejects(libxl_evgen_disk_eject **diskws,\n                                 int
      num_disks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_event_wait
      Src: /src/xen/tools/xl/xl_vmcontrol.c:337,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:339,1
    - Dst: libxl_event_to_json
      Src: /src/xen/tools/xl/xl_vmcontrol.c:343,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:344,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:347,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - domid
    - event_r
    argTypes:
    - uint32_t
    - libxl_event**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 353
    functionName: domain_wait_event
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_event_wait
    - free
    - libxl_event_to_json
    - libxl_event_free
    - LOG
    linkageType: ''
    returnType: int
    signature: int domain_wait_event(uint32_t domid, libxl_event **event_r)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_need_memory
      Src: /src/xen/tools/xl/xl_vmcontrol.c:369,1
    - Dst: libxl_get_free_memory
      Src: /src/xen/tools/xl/xl_vmcontrol.c:376,1
    - Dst: libxl_set_memory_target
      Src: /src/xen/tools/xl/xl_vmcontrol.c:386,1
    - Dst: time
      Src: /src/xen/tools/xl/xl_vmcontrol.c:392,1
    - Dst: libxl_wait_for_memory_target
      Src: /src/xen/tools/xl/xl_vmcontrol.c:393,1
    - Dst: difftime
      Src: /src/xen/tools/xl/xl_vmcontrol.c:397,1
    - Dst: time
      Src: /src/xen/tools/xl/xl_vmcontrol.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - domid
    - d_config
    argTypes:
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: freemem
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_set_memory_target
    - libxl_wait_for_memory_target
    - time
    - libxl_domain_need_memory
    - libxl_get_free_memory
    - difftime
    linkageType: ''
    returnType: bool
    signature: bool freemem(uint32_t domid, libxl_domain_config *d_config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_userdata_retrieve
      Src: /src/xen/tools/xl/xl_vmcontrol.c:412,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:414,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:417,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_vmcontrol.c:418,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_vmcontrol.c:419,1
    - Dst: parse_config_data
      Src: /src/xen/tools/xl/xl_vmcontrol.c:420,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:422,1
    - Dst: libxl_userdata_unlink
      Src: /src/xen/tools/xl/xl_vmcontrol.c:423,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_vmcontrol.c:427,1
    - Dst: libxl_retrieve_domain_configuration
      Src: /src/xen/tools/xl/xl_vmcontrol.c:428,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:431,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_vmcontrol.c:433,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_vmcontrol.c:435,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - domid
    - d_config
    argTypes:
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 401
    functionDepth: 8
    functionLinenumber: 401
    functionLinenumberEnd: 439
    functionName: reload_domain_config
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_init
    - free
    - libxl_domain_config_dispose
    - libxl_retrieve_domain_configuration
    - parse_config_data
    - libxl_userdata_unlink
    - libxl_userdata_retrieve
    - LOG
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void reload_domain_config(uint32_t domid,\n                                 libxl_domain_config
      *d_config)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:457,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:469,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:474,1
    - Dst: get_action_on_shutdown_name
      Src: /src/xen/tools/xl/xl_vmcontrol.c:476,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:482,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:483,1
    - Dst: libxl_domain_core_dump
      Src: /src/xen/tools/xl/xl_vmcontrol.c:484,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:485,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:486,1
    - Dst: reload_domain_config
      Src: /src/xen/tools/xl/xl_vmcontrol.c:500,1
    - Dst: reload_domain_config
      Src: /src/xen/tools/xl/xl_vmcontrol.c:505,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:509,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:511,1
    - Dst: reload_domain_config
      Src: /src/xen/tools/xl/xl_vmcontrol.c:516,1
    - Dst: abort
      Src: /src/xen/tools/xl/xl_vmcontrol.c:523,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 3
    argNames:
    - r_domid
    - event
    - d_config
    argTypes:
    - uint32_t*
    - libxl_event*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 442
    functionDepth: 9
    functionLinenumber: 442
    functionLinenumberEnd: 527
    functionName: handle_domain_death
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - get_action_on_shutdown_name
    - libxl_domain_core_dump
    - abort
    - free
    - libxl_domain_destroy
    - LOG
    - reload_domain_config
    linkageType: ''
    returnType: domain_restart_type
    signature: "domain_restart_type handle_domain_death(uint32_t *r_domid,\n                                               libxl_event
      *event,\n                                               libxl_domain_config
      *d_config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xl/xl_vmcontrol.c:541,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:543,1
    - Dst: tzset
      Src: /src/xen/tools/xl/xl_vmcontrol.c:547,1
    - Dst: gmtime_r
      Src: /src/xen/tools/xl/xl_vmcontrol.c:548,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:549,1
    - Dst: strftime
      Src: /src/xen/tools/xl/xl_vmcontrol.c:553,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:554,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/xl/xl_vmcontrol.c:558,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:560,1
    - Dst: libxl_domain_preserve
      Src: /src/xen/tools/xl/xl_vmcontrol.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - r_domid
    - event
    - d_config
    argTypes:
    - uint32_t*
    - libxl_event*
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 572
    functionName: preserve_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - strftime
    - time
    - libxl_uuid_generate
    - tzset
    - LOG
    - gmtime_r
    - libxl_domain_preserve
    linkageType: ''
    returnType: int
    signature: "int preserve_domain(uint32_t *r_domid, libxl_event *event,\n                           libxl_domain_config
      *d_config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xl_child_pid
      Src: /src/xen/tools/xl/xl_vmcontrol.c:576,1
    - Dst: child_report
      Src: /src/xen/tools/xl/xl_vmcontrol.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - child
    argTypes:
    - xlchildnum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: console_child_report
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - xl_child_pid
    - child_report
    linkageType: ''
    returnType: void
    signature: void console_child_report(xlchildnum child)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vncviewer_exec
      Src: /src/xen/tools/xl/xl_vmcontrol.c:582,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domid
    - autopass
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: vncviewer
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - fprintf
    - libxl_vncviewer_exec
    linkageType: ''
    returnType: int
    signature: int vncviewer(uint32_t domid, int autopass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: console_child_report
      Src: /src/xen/tools/xl/xl_vmcontrol.c:589,1
    - Dst: xl_fork
      Src: /src/xen/tools/xl/xl_vmcontrol.c:591,1
    - Dst: postfork
      Src: /src/xen/tools/xl/xl_vmcontrol.c:595,1
    - Dst: sleep
      Src: /src/xen/tools/xl/xl_vmcontrol.c:597,1
    - Dst: vncviewer
      Src: /src/xen/tools/xl/xl_vmcontrol.c:598,1
    - Dst: _exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - domid
    - autopass
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 587
    functionDepth: 5
    functionLinenumber: 587
    functionLinenumberEnd: 600
    functionName: autoconnect_vncviewer
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - sleep
    - console_child_report
    - postfork
    - xl_fork
    - vncviewer
    - _exit
    linkageType: ''
    returnType: void
    signature: void autoconnect_vncviewer(uint32_t domid, int autopass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xl/xl_vmcontrol.c:615,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:617,1
    - Dst: fcntl
      Src: /src/xen/tools/xl/xl_vmcontrol.c:620,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:621,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:622,1
    - Dst: fcntl
      Src: /src/xen/tools/xl/xl_vmcontrol.c:626,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:630,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 635
    functionName: acquire_lock
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - open
    - fprintf
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int acquire_lock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/xl/xl_vmcontrol.c:652,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:656,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 664
    functionName: release_lock
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - fprintf
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int release_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:673,1
    - Dst: console_child_report
      Src: /src/xen/tools/xl/xl_vmcontrol.c:675,1
    - Dst: xl_fork
      Src: /src/xen/tools/xl/xl_vmcontrol.c:677,1
    - Dst: postfork
      Src: /src/xen/tools/xl/xl_vmcontrol.c:681,1
    - Dst: sleep
      Src: /src/xen/tools/xl/xl_vmcontrol.c:683,1
    - Dst: libxl_primary_console_exec
      Src: /src/xen/tools/xl/xl_vmcontrol.c:684,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_vmcontrol.c:686,1
    - Dst: _exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx_ignored
    - ev
    - priv
    argTypes:
    - libxl_ctx*
    - libxl_event*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 688
    functionName: autoconnect_console
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - sleep
    - console_child_report
    - postfork
    - xl_fork
    - libxl_primary_console_exec
    - libxl_event_free
    - _exit
    - perror
    linkageType: ''
    returnType: void
    signature: "void autoconnect_console(libxl_ctx *ctx_ignored,\n                                libxl_event
      *ev, void *priv)"
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_vmcontrol.c:727,1
    - Dst: open
      Src: /src/xen/tools/xl/xl_vmcontrol.c:741,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:743,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_vmcontrol.c:743,1
    - Dst: libxl_fd_set_cloexec
      Src: /src/xen/tools/xl/xl_vmcontrol.c:747,1
    - Dst: CHK_ERRNOVAL
      Src: /src/xen/tools/xl/xl_vmcontrol.c:751,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/xl/xl_vmcontrol.c:751,1
    - Dst: memcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:754,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:755,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:760,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:763,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:771,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:777,1
    - Dst: CHK_ERRNOVAL
      Src: /src/xen/tools/xl/xl_vmcontrol.c:778,1
    - Dst: libxl_read_exactly
      Src: /src/xen/tools/xl/xl_vmcontrol.c:778,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:797,1
    - Dst: WITH_OPTDATA
      Src: /src/xen/tools/xl/xl_vmcontrol.c:800,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:801,1
    - Dst: WITH_OPTDATA
      Src: /src/xen/tools/xl/xl_vmcontrol.c:804,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:805,1
    - Dst: memcpy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:806,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:813,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:815,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl_vmcontrol.c:818,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:820,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_vmcontrol.c:821,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_vmcontrol.c:823,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_vmcontrol.c:824,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:825,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:829,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_vmcontrol.c:830,1
    - Dst: sprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:831,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:838,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:847,1
    - Dst: libxl_domain_config_from_json
      Src: /src/xen/tools/xl/xl_vmcontrol.c:850,1
    - Dst: parse_config_data
      Src: /src/xen/tools/xl/xl_vmcontrol.c:853,1
    - Dst: libxl_bitmap_is_full
      Src: /src/xen/tools/xl/xl_vmcontrol.c:863,1
    - Dst: libxl_bitmap_is_full
      Src: /src/xen/tools/xl/xl_vmcontrol.c:865,1
    - Dst: libxl_bitmap_is_full
      Src: /src/xen/tools/xl/xl_vmcontrol.c:867,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:871,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vmcontrol.c:875,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:876,1
    - Dst: libxl_bitmap_set_any
      Src: /src/xen/tools/xl/xl_vmcontrol.c:877,1
    - Dst: apply_global_affinity_masks
      Src: /src/xen/tools/xl/xl_vmcontrol.c:881,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_vmcontrol.c:890,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:895,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_vmcontrol.c:896,1
    - Dst: printf_info_sexp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:903,1
    - Dst: libxl_domain_config_to_json
      Src: /src/xen/tools/xl/xl_vmcontrol.c:905,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:907,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:909,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_vmcontrol.c:911,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:912,1
    - Dst: flush_stream
      Src: /src/xen/tools/xl/xl_vmcontrol.c:913,1
    - Dst: assert
      Src: /src/xen/tools/xl/xl_vmcontrol.c:923,1
    - Dst: acquire_lock
      Src: /src/xen/tools/xl/xl_vmcontrol.c:926,1
    - Dst: freemem
      Src: /src/xen/tools/xl/xl_vmcontrol.c:932,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:933,1
    - Dst: libxl_pipe
      Src: /src/xen/tools/xl/xl_vmcontrol.c:941,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/xl/xl_vmcontrol.c:952,1
    - Dst: libxl_domain_restore_params_init
      Src: /src/xen/tools/xl/xl_vmcontrol.c:958,1
    - Dst: libxl_defbool_set
      Src: /src/xen/tools/xl/xl_vmcontrol.c:964,1
    - Dst: libxl_domain_create_restore
      Src: /src/xen/tools/xl/xl_vmcontrol.c:967,1
    - Dst: libxl_domain_restore_params_dispose
      Src: /src/xen/tools/xl/xl_vmcontrol.c:972,1
    - Dst: libxl_domain_soft_reset
      Src: /src/xen/tools/xl/xl_vmcontrol.c:981,1
    - Dst: libxl_domain_create_new
      Src: /src/xen/tools/xl/xl_vmcontrol.c:986,1
    - Dst: release_lock
      Src: /src/xen/tools/xl/xl_vmcontrol.c:993,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:996,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:997,1
    - Dst: read
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1011,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1015,1
    - Dst: strerror
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1017,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1019,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1021,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1024,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1025,1
    - Dst: libxl_domain_unpause
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1030,1
    - Dst: autoconnect_vncviewer
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1037,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1042,1
    - Dst: do_daemonize
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1043,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1044,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1051,1
    - Dst: getpid
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1052,1
    - Dst: libxl_evenable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1054,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1058,1
    - Dst: libxl_evenable_disk_eject
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1065,1
    - Dst: domain_wait_event
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1073,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1079,1
    - Dst: handle_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1082,1
    - Dst: preserve_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1089,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1090,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1098,1
    - Dst: libxl_evdisable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1099,1
    - Dst: evdisable_disk_ejects
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1101,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1102,1
    - Dst: libxl_event_check
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1106,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1108,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1111,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1124,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1125,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1132,1
    - Dst: sleep
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1133,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1137,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1138,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1143,1
    - Dst: libxl_evenable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1149,1
    - Dst: libxl_evdisable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1151,1
    - Dst: abort
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1157,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1162,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1163,1
    - Dst: libxl_cdrom_insert
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1169,1
    - Dst: libxl_event_to_json
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1173,1
    - Dst: LOG
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1174,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1176,1
    - Dst: libxl_event_free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1179,1
    - Dst: release_lock
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1184,1
    - Dst: libxl_domid_valid_guest
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1185,1
    - Dst: libxl_domain_destroy
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1186,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1192,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1193,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1199,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1201,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1203,1
    - Dst: console_child_report
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1205,1
    - Dst: libxl_evdisable_domain_death
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1208,1
    - Dst: evdisable_disk_ejects
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1210,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1211,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1219,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 343
    argCount: 1
    argNames:
    - dom_info
    argTypes:
    - struct domain_create*
    assertStmts:
    - condition: (domid == INVALID_DOMID)
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/xen/tools/xl/xl_vmcontrol.c
    - condition: (!common_domname)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/xen/tools/xl/xl_vmcontrol.c
    constantsTouched: []
    func_position:
      end: 1222
      start: 690
    functionDepth: 11
    functionLinenumber: 690
    functionLinenumberEnd: 1222
    functionName: create_domain
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 2
    functionsReached:
    - libxl_read_exactly
    - libxl_evenable_domain_death
    - xmalloc
    - memcmp
    - libxl_domain_config_init
    - WITH_OPTDATA
    - libxl_domain_create_restore
    - flush_stream
    - libxl_domain_config_from_json
    - libxl_event_check
    - preserve_domain
    - strlen
    - freemem
    - getpid
    - libxl_fd_set_cloexec
    - libxl_domain_create_new
    - strcmp
    - libxl_domain_config_to_json
    - xasprintf
    - fputs
    - console_child_report
    - abort
    - free
    - xrealloc
    - libxl_evenable_disk_eject
    - libxl_domain_config_dispose
    - printf_info_sexp
    - close
    - libxl_cdrom_insert
    - CHK_ERRNOVAL
    - do_daemonize
    - libxl_domain_soft_reset
    - handle_domain_death
    - evdisable_disk_ejects
    - autoconnect_vncviewer
    - libxl_event_free
    - libxl_bitmap_is_full
    - libxl_domain_restore_params_init
    - apply_global_affinity_masks
    - open
    - libxl_pipe
    - domain_wait_event
    - sprintf
    - libxl_domain_destroy
    - libxl_bitmap_init
    - parse_config_data
    - release_lock
    - libxl_read_file_contents
    - fprintf
    - strdup
    - exit
    - libxl_domain_restore_params_dispose
    - LOG
    - acquire_lock
    - read
    - sleep
    - libxl_domain_unpause
    - libxl_bitmap_set_any
    - libxl_evdisable_domain_death
    - libxl_event_to_json
    - strerror
    - libxl_cpu_bitmap_alloc
    - libxl_defbool_set
    - assert
    - memcpy
    - libxl_domid_valid_guest
    linkageType: ''
    returnType: int
    signature: int create_domain(struct domain_create *dom_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - amt
    - ','
    - body
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 793
    functionName: WITH_OPTDATA
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITH_OPTDATA(amt, body)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1257,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1262,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1300,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1301,1
    - Dst: string_realloc_append
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1302,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1306,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1307,1
    - Dst: create_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1312,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1314,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1318,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1320
    functionName: main_create
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 11
    functionsReached:
    - create_domain
    - string_realloc_append
    - free
    - strchr
    - help
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_create(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: help
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1334,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1338,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1340,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1342,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1346,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1354,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1355,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1358,1
    - Dst: libxl_read_file_contents
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1363,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1367,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1369,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1373,1
    - Dst: libxl_dt_overlay
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1378,1
    - Dst: libxl_dt_overlay_domain
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1380,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vmcontrol.c:1383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1323
    functionDepth: 5
    functionLinenumber: 1323
    functionLinenumberEnd: 1389
    functionName: main_dt_overlay
    functionSourceFile: /src/xen/tools/xl/xl_vmcontrol.c
    functionUses: 0
    functionsReached:
    - find_domain
    - free
    - libxl_dt_overlay_domain
    - libxl_read_file_contents
    - help
    - fprintf
    - libxl_dt_overlay
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main_dt_overlay(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_console.c:33,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_console.c:35,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_console.c:37,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_console.c:39,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_console.c:42,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_console.c:47,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_console.c:54,1
    - Dst: libxl_primary_console_exec
      Src: /src/xen/tools/xl/xl_console.c:56,1
    - Dst: libxl_console_exec
      Src: /src/xen/tools/xl/xl_console.c:58,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_console.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 61
    functionName: main_console
    functionSourceFile: /src/xen/tools/xl/xl_console.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_console_exec
    - strcmp
    - fprintf
    - libxl_primary_console_exec
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_console(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_console.c:73,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_console.c:79,1
    - Dst: libxl_vncviewer_exec
      Src: /src/xen/tools/xl/xl_console.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 84
    functionName: main_vncviewer
    functionSourceFile: /src/xen/tools/xl/xl_console.c
    functionUses: 0
    functionsReached:
    - find_domain
    - SWITCH_FOREACH_OPT
    - libxl_vncviewer_exec
    linkageType: ''
    returnType: int
    signature: int main_vncviewer(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_console.c:94,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:99,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_console.c:102,1
    - Dst: libxl_device_channel_list
      Src: /src/xen/tools/xl/xl_console.c:103,1
    - Dst: libxl_device_channel_getinfo
      Src: /src/xen/tools/xl/xl_console.c:107,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:109,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:110,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:111,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:112,1
    - Dst: libxl_channel_connection_to_string
      Src: /src/xen/tools/xl/xl_console.c:112,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:116,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_console.c:121,1
    - Dst: libxl_channelinfo_dispose
      Src: /src/xen/tools/xl/xl_console.c:122,1
    - Dst: libxl_device_channel_dispose
      Src: /src/xen/tools/xl/xl_console.c:124,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_console.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 129
    functionName: main_channellist
    functionSourceFile: /src/xen/tools/xl/xl_console.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_channel_list
    - free
    - libxl_channel_connection_to_string
    - libxl_device_channel_dispose
    - printf
    - libxl_channelinfo_dispose
    - libxl_device_channel_getinfo
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_channellist(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - prefix
    - ','
    - arg
    - ','
    - oparg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: MATCH_OPTION
    functionSourceFile: /src/xen/tools/xl/xl_parse.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH_OPTION(prefix, arg, oparg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_vcpu.c:33,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:34,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_vcpu.c:36,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:39,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:42,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:47,1
    - Dst: print_bitmap
      Src: /src/xen/tools/xl/xl_vcpu.c:49,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:50,1
    - Dst: print_bitmap
      Src: /src/xen/tools/xl/xl_vcpu.c:51,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - tdomid
    - vcpuinfo
    - nr_cpus
    argTypes:
    - uint32_t
    - libxl_vcpuinfo*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 53
    functionName: print_vcpuinfo
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_domid_to_name
    - print_bitmap
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_vcpuinfo(uint32_t tdomid,\n                           const
      libxl_vcpuinfo *vcpuinfo,\n                           uint32_t nr_cpus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_vcpu
      Src: /src/xen/tools/xl/xl_vcpu.c:60,1
    - Dst: print_vcpuinfo
      Src: /src/xen/tools/xl/xl_vcpu.c:66,1
    - Dst: libxl_vcpuinfo_list_free
      Src: /src/xen/tools/xl/xl_vcpu.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - domid
    - nr_cpus
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: print_domain_vcpuinfo
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - print_vcpuinfo
    - libxl_list_vcpu
    - libxl_vcpuinfo_list_free
    linkageType: ''
    returnType: void
    signature: void print_domain_vcpuinfo(uint32_t domid, uint32_t nr_cpus)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:89,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vcpu.c:90,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:98,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:99,1
    - Dst: libxl_bitmap_and
      Src: /src/xen/tools/xl/xl_vcpu.c:101,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:103,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vcpu.c:104,1
    - Dst: libxl_bitmap_and
      Src: /src/xen/tools/xl/xl_vcpu.c:106,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:108,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vcpu.c:109,1
    - Dst: libxl_bitmap_is_empty
      Src: /src/xen/tools/xl/xl_vcpu.c:112,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:113,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vcpu.c:114,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:118,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:119,1
    - Dst: libxl_bitmap_copy_alloc
      Src: /src/xen/tools/xl/xl_vcpu.c:120,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:122,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - type
    - vcpu_affinity_array
    - size
    argTypes:
    - libxl_domain_type
    - libxl_bitmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 125
    functionName: apply_global_affinity_masks
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 1
    functionsReached:
    - libxl_bitmap_copy_alloc
    - libxl_bitmap_dispose
    - libxl_bitmap_and
    - libxl_bitmap_is_empty
    - libxl_bitmap_init
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: "void apply_global_affinity_masks(libxl_domain_type type,\n                                 libxl_bitmap
      *vcpu_affinity_array,\n                                 unsigned int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/xl/xl_vcpu.c:133,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:134,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_vcpu.c:138,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_vcpu.c:142,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:143,1
    - Dst: print_domain_vcpuinfo
      Src: /src/xen/tools/xl/xl_vcpu.c:148,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_vcpu.c:150,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vcpu.c:153,1
    - Dst: print_domain_vcpuinfo
      Src: /src/xen/tools/xl/xl_vcpu.c:154,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 127
    functionDepth: 6
    functionLinenumber: 127
    functionLinenumberEnd: 159
    functionName: vcpulist
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - print_domain_vcpuinfo
    - find_domain
    - libxl_physinfo_dispose
    - fprintf
    - printf
    - libxl_get_physinfo
    - libxl_list_domain
    linkageType: ''
    returnType: void
    signature: void vcpulist(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vcpu.c:165,1
    - Dst: vcpulist
      Src: /src/xen/tools/xl/xl_vcpu.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: main_vcpulist
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - vcpulist
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vcpulist(int argc, char **argv)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:194,1
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:195,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vcpu.c:197,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vcpu.c:208,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_vcpu.c:214,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vcpu.c:216,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:217,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:221,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_vcpu.c:227,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_vcpu.c:228,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vcpu.c:245,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_vcpu.c:247,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_vcpu.c:253,1
    - Dst: parse_cpurange
      Src: /src/xen/tools/xl/xl_vcpu.c:255,1
    - Dst: libxl_get_max_cpus
      Src: /src/xen/tools/xl/xl_vcpu.c:259,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:261,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:265,1
    - Dst: print_bitmap
      Src: /src/xen/tools/xl/xl_vcpu.c:267,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:269,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:271,1
    - Dst: print_bitmap
      Src: /src/xen/tools/xl/xl_vcpu.c:272,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:274,1
    - Dst: ferror
      Src: /src/xen/tools/xl/xl_vcpu.c:276,1
    - Dst: fflush
      Src: /src/xen/tools/xl/xl_vcpu.c:276,1
    - Dst: perror
      Src: /src/xen/tools/xl/xl_vcpu.c:277,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_vcpu.c:278,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_vcpu.c:289,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_vcpu.c:291,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:292,1
    - Dst: apply_global_affinity_masks
      Src: /src/xen/tools/xl/xl_vcpu.c:297,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:299,1
    - Dst: libxl_set_vcpuaffinity_force
      Src: /src/xen/tools/xl/xl_vcpu.c:303,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:304,1
    - Dst: libxl_set_vcpuaffinity
      Src: /src/xen/tools/xl/xl_vcpu.c:310,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:311,1
    - Dst: libxl_list_vcpu
      Src: /src/xen/tools/xl/xl_vcpu.c:316,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:317,1
    - Dst: libxl_set_vcpuaffinity_all
      Src: /src/xen/tools/xl/xl_vcpu.c:320,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:321,1
    - Dst: libxl_vcpuinfo_list_free
      Src: /src/xen/tools/xl/xl_vcpu.c:322,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:327,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:328,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 108
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 330
    functionName: main_vcpupin
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - libxl_vcpuinfo_list_free
    - fflush
    - strcmp
    - SWITCH_FOREACH_OPT
    - find_domain
    - print_bitmap
    - ferror
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_set_vcpuaffinity_force
    - libxl_set_vcpuaffinity_all
    - libxl_bitmap_dispose
    - libxl_get_max_cpus
    - perror
    - apply_global_affinity_masks
    - libxl_bitmap_init
    - parse_cpurange
    - fprintf
    - strtol
    - exit
    - libxl_set_vcpuaffinity
    - libxl_domain_info
    - libxl_cpu_bitmap_alloc
    - libxl_list_vcpu
    linkageType: ''
    returnType: int
    signature: int main_vcpupin(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_vcpu.c:340,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_vcpu.c:341,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:343,1
    - Dst: libxl_get_max_cpus
      Src: /src/xen/tools/xl/xl_vcpu.c:352,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_vcpu.c:355,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_vcpu.c:356,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:360,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:363,1
    - Dst: libxl_cpu_bitmap_alloc
      Src: /src/xen/tools/xl/xl_vcpu.c:369,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:371,1
    - Dst: libxl_bitmap_set
      Src: /src/xen/tools/xl/xl_vcpu.c:375,1
    - Dst: libxl_set_vcpuonline
      Src: /src/xen/tools/xl/xl_vcpu.c:377,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:379,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_vcpu.c:381,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_vcpu.c:384,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - domid
    - nr_vcpus
    - check_host
    argTypes:
    - uint32_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 332
    functionDepth: 9
    functionLinenumber: 332
    functionLinenumberEnd: 386
    functionName: vcpuset
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_set
    - libxl_bitmap_dispose
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - libxl_get_max_cpus
    - libxl_bitmap_init
    - libxl_set_vcpuonline
    - libxl_cpu_bitmap_alloc
    - fprintf
    - strtoul
    linkageType: ''
    returnType: int
    signature: int vcpuset(uint32_t domid, const char* nr_vcpus, int check_host)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_vcpu.c:396,1
    - Dst: vcpuset
      Src: /src/xen/tools/xl/xl_vcpu.c:404,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_vcpu.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 388
    functionDepth: 10
    functionLinenumber: 388
    functionLinenumberEnd: 408
    functionName: main_vcpuset
    functionSourceFile: /src/xen/tools/xl/xl_vcpu.c
    functionUses: 0
    functionsReached:
    - vcpuset
    - find_domain
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_vcpuset(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cmdtable.c:665,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_cmdtable.c:667,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_cmdtable.c:670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 676
    functionName: cmdtable_lookup
    functionSourceFile: /src/xen/tools/xl/xl_cmdtable.c
    functionUses: 2
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: struct cmd_spec
    signature: struct cmd_spec *cmdtable_lookup(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xl/xl_info.c:45,1
    - Dst: vasprintf
      Src: /src/xen/tools/xl/xl_info.c:46,1
    - Dst: strncmp
      Src: /src/xen/tools/xl/xl_info.c:50,1
    - Dst: strlen
      Src: /src/xen/tools/xl/xl_info.c:50,1
    - Dst: strchr
      Src: /src/xen/tools/xl/xl_info.c:51,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_info.c:52,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_info.c:54,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:56,1
    - Dst: va_end
      Src: /src/xen/tools/xl/xl_info.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: maybe_printf
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - va_start
    - fputs
    - vasprintf
    - free
    - strchr
    - strncmp
    - strlen
    - va_end
    linkageType: ''
    returnType: int
    signature: int maybe_printf(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_config_to_json
      Src: /src/xen/tools/xl/xl_info.c:74,1
    - Dst: json_tokener_parse_verbose
      Src: /src/xen/tools/xl/xl_info.c:75,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:77,1
    - Dst: json_tokener_error_desc
      Src: /src/xen/tools/xl/xl_info.c:78,1
    - Dst: json_object_new_object
      Src: /src/xen/tools/xl/xl_info.c:82,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/xl/xl_info.c:84,1
    - Dst: json_object_new_int
      Src: /src/xen/tools/xl/xl_info.c:84,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/xl/xl_info.c:86,1
    - Dst: json_object_new_null
      Src: /src/xen/tools/xl/xl_info.c:86,1
    - Dst: json_object_object_add
      Src: /src/xen/tools/xl/xl_info.c:91,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:102,1
    - Dst: json_object_put
      Src: /src/xen/tools/xl/xl_info.c:103,1
    - Dst: json_object_put
      Src: /src/xen/tools/xl/xl_info.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - jso_r
    - domid
    - d_config
    argTypes:
    - json_object**
    - int
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 106
    functionName: printf_info_one_json
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_to_json
    - free
    - json_object_new_object
    - json_object_new_int
    - json_object_put
    - fprintf
    - json_tokener_error_desc
    - json_tokener_parse_verbose
    - json_object_new_null
    - json_object_object_add
    linkageType: ''
    returnType: int
    signature: "int printf_info_one_json(json_object **jso_r, int domid,\n                                libxl_domain_config
      *d_config)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_map_open
      Src: /src/xen/tools/xl/xl_info.c:115,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/xl/xl_info.c:119,1
    - Dst: yajl_gen_integer
      Src: /src/xen/tools/xl/xl_info.c:124,1
    - Dst: yajl_gen_null
      Src: /src/xen/tools/xl/xl_info.c:126,1
    - Dst: yajl_gen_string
      Src: /src/xen/tools/xl/xl_info.c:130,1
    - Dst: libxl_domain_config_gen_json
      Src: /src/xen/tools/xl/xl_info.c:134,1
    - Dst: yajl_gen_map_close
      Src: /src/xen/tools/xl/xl_info.c:138,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - hand
    - domid
    - d_config
    argTypes:
    - yajl_gen
    - int
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 144
    functionName: printf_info_one_json
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_gen_json
    - yajl_gen_string
    - yajl_gen_null
    - yajl_gen_map_close
    - yajl_gen_map_open
    - yajl_gen_integer
    linkageType: ''
    returnType: yajl_gen_status
    signature: "yajl_gen_status printf_info_one_json(yajl_gen hand, int domid,\n                                            libxl_domain_config
      *d_config)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf_info_sexp
      Src: /src/xen/tools/xl/xl_info.c:152,1
    - Dst: printf_info_one_json
      Src: /src/xen/tools/xl/xl_info.c:159,1
    - Dst: json_object_to_json_string_ext
      Src: /src/xen/tools/xl/xl_info.c:163,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_info.c:167,1
    - Dst: json_object_put
      Src: /src/xen/tools/xl/xl_info.c:170,1
    - Dst: flush_stream
      Src: /src/xen/tools/xl/xl_info.c:171,1
    - Dst: libxl_yajl_gen_alloc
      Src: /src/xen/tools/xl/xl_info.c:180,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:182,1
    - Dst: printf_info_one_json
      Src: /src/xen/tools/xl/xl_info.c:186,1
    - Dst: yajl_gen_get_buf
      Src: /src/xen/tools/xl/xl_info.c:190,1
    - Dst: fputs
      Src: /src/xen/tools/xl/xl_info.c:194,1
    - Dst: yajl_gen_free
      Src: /src/xen/tools/xl/xl_info.c:197,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:200,1
    - Dst: flush_stream
      Src: /src/xen/tools/xl/xl_info.c:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - output_format
    - domid
    - d_config
    - fh
    argTypes:
    - enum output_format
    - int
    - libxl_domain_config*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 147
    functionDepth: 4
    functionLinenumber: 147
    functionLinenumberEnd: 205
    functionName: printf_info
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 1
    functionsReached:
    - fputs
    - flush_stream
    - printf_info_sexp
    - libxl_yajl_gen_alloc
    - printf_info_one_json
    - json_object_put
    - fprintf
    - yajl_gen_free
    - yajl_gen_get_buf
    - json_object_to_json_string_ext
    linkageType: ''
    returnType: void
    signature: "void printf_info(enum output_format output_format,\n                 int
      domid,\n                 libxl_domain_config *d_config, FILE *fh)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_version_info
      Src: /src/xen/tools/xl/xl_info.c:213,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:214,1
    - Dst: libxl_get_scheduler
      Src: /src/xen/tools/xl/xl_info.c:218,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:220,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:225,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:226,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:227,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:228,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:230,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:231,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_info.c:231,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:232,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:233,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:234,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:235,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:236,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:237,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:238,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:239,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 243
    functionName: output_xeninfo
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_get_version_info
    - fprintf
    - libxl_scheduler_to_string
    - libxl_get_scheduler
    - maybe_printf
    linkageType: ''
    returnType: void
    signature: void output_xeninfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/xen/tools/xl/xl_info.c:249,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:252,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:253,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:254,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: output_nodeinfo
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - maybe_printf
    - uname
    linkageType: ''
    returnType: void
    signature: void output_nodeinfo(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/xl/xl_info.c:266,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:267,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:270,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:271,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:272,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:273,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:274,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:275,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:277,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:282,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:298,1
    - Dst: arch_capabilities_arm_sve
      Src: /src/xen/tools/xl/xl_info.c:299,1
    - Dst: libxl_get_version_info
      Src: /src/xen/tools/xl/xl_info.c:303,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:306,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:307,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:308,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:309,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:310,1
    - Dst: libxl_get_freecpus
      Src: /src/xen/tools/xl/xl_info.c:312,1
    - Dst: libxl_for_each_bit
      Src: /src/xen/tools/xl/xl_info.c:313,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/xl/xl_info.c:314,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:316,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:317,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_info.c:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 321
    functionName: output_physinfo
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_get_freecpus
    - libxl_bitmap_test
    - libxl_get_version_info
    - free
    - libxl_physinfo_dispose
    - fprintf
    - arch_capabilities_arm_sve
    - libxl_for_each_bit
    - maybe_printf
    - libxl_get_physinfo
    linkageType: ''
    returnType: void
    signature: void output_physinfo(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_numainfo
      Src: /src/xen/tools/xl/xl_info.c:328,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:330,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:334,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:335,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:339,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:343,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:344,1
    - Dst: libxl_numainfo_list_free
      Src: /src/xen/tools/xl/xl_info.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 351
    functionName: output_numainfo
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_get_numainfo
    - libxl_numainfo_list_free
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void output_numainfo(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: libxl_get_cpu_topology
      Src: /src/xen/tools/xl/xl_info.c:361,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:363,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:367,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:368,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:372,1
    - Dst: libxl_cputopology_list_free
      Src: /src/xen/tools/xl/xl_info.c:376,1
    - Dst: libxl_get_pci_topology
      Src: /src/xen/tools/xl/xl_info.c:378,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:380,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:384,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:385,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:388,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:397,1
    - Dst: libxl_pcitopology_list_free
      Src: /src/xen/tools/xl/xl_info.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 402
    functionName: output_topologyinfo
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_get_pci_topology
    - libxl_pcitopology_list_free
    - libxl_get_cpu_topology
    - fprintf
    - libxl_cputopology_list_free
    - printf
    linkageType: ''
    returnType: void
    signature: void output_topologyinfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/xl/xl_info.c:409,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:411,1
    - Dst: xs_get_features_supported
      Src: /src/xen/tools/xl/xl_info.c:416,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:418,1
    - Dst: xs_close
      Src: /src/xen/tools/xl/xl_info.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 404
    functionDepth: 5
    functionLinenumber: 404
    functionLinenumberEnd: 421
    functionName: output_xenstore_info
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - xs_open
    - xs_get_features_supported
    - fprintf
    - maybe_printf
    - xs_close
    linkageType: ''
    returnType: void
    signature: void output_xenstore_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: output_nodeinfo
      Src: /src/xen/tools/xl/xl_info.c:425,1
    - Dst: output_physinfo
      Src: /src/xen/tools/xl/xl_info.c:427,1
    - Dst: output_topologyinfo
      Src: /src/xen/tools/xl/xl_info.c:430,1
    - Dst: output_numainfo
      Src: /src/xen/tools/xl/xl_info.c:431,1
    - Dst: output_xeninfo
      Src: /src/xen/tools/xl/xl_info.c:433,1
    - Dst: output_xenstore_info
      Src: /src/xen/tools/xl/xl_info.c:436,1
    - Dst: maybe_printf
      Src: /src/xen/tools/xl/xl_info.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - numa
    - xs
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 423
    functionDepth: 6
    functionLinenumber: 423
    functionLinenumberEnd: 441
    functionName: print_info
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - output_xenstore_info
    - output_physinfo
    - output_xeninfo
    - output_topologyinfo
    - maybe_printf
    - output_numainfo
    - output_nodeinfo
    linkageType: ''
    returnType: void
    signature: void print_info(int numa, bool xs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_list_vm
      Src: /src/xen/tools/xl/xl_info.c:449,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:452,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:453,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:455,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_info.c:457,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:458,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/xl/xl_info.c:458,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:460,1
    - Dst: libxl_vminfo_list_free
      Src: /src/xen/tools/xl/xl_info.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 443
    functionDepth: 6
    functionLinenumber: 443
    functionLinenumberEnd: 463
    functionName: list_vm
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 1
    functionsReached:
    - free
    - libxl_domid_to_name
    - libxl_vminfo_list_free
    - fprintf
    - printf
    - exit
    - LIBXL_UUID_BYTES
    - libxl_list_vm
    linkageType: ''
    returnType: void
    signature: void list_vm(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_init
      Src: /src/xen/tools/xl/xl_info.c:473,1
    - Dst: libxl_physinfo_init
      Src: /src/xen/tools/xl/xl_info.c:474,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:476,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:477,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:478,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:479,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:480,1
    - Dst: libxl_node_bitmap_alloc
      Src: /src/xen/tools/xl/xl_info.c:482,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:483,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:484,1
    - Dst: libxl_get_physinfo
      Src: /src/xen/tools/xl/xl_info.c:486,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:487,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_info.c:488,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:489,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:492,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:494,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_info.c:498,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:500,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:515,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:517,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/xl/xl_info.c:517,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:518,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:519,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:522,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:524,1
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/xl/xl_info.c:526,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:527,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:528,1
    - Dst: libxl_domain_get_nodeaffinity
      Src: /src/xen/tools/xl/xl_info.c:531,1
    - Dst: putchar
      Src: /src/xen/tools/xl/xl_info.c:533,1
    - Dst: print_bitmap
      Src: /src/xen/tools/xl/xl_info.c:534,1
    - Dst: putchar
      Src: /src/xen/tools/xl/xl_info.c:536,1
    - Dst: libxl_bitmap_dispose
      Src: /src/xen/tools/xl/xl_info.c:539,1
    - Dst: libxl_physinfo_dispose
      Src: /src/xen/tools/xl/xl_info.c:540,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 7
    argNames:
    - verbose
    - context
    - claim
    - numa
    - cpupool
    - info
    - nb_domain
    argTypes:
    - bool
    - bool
    - bool
    - bool
    - bool
    - libxl_dominfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 541
    functionName: list_domains
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_bitmap_dispose
    - libxl_domain_get_nodeaffinity
    - print_bitmap
    - free
    - libxl_domid_to_name
    - libxl_bitmap_init
    - libxl_physinfo_dispose
    - LIBXL_UUID_BYTES
    - libxl_physinfo_init
    - fprintf
    - printf
    - exit
    - libxl_node_bitmap_alloc
    - libxl_get_physinfo
    - libxl_cpupoolid_to_name
    - putchar
    linkageType: ''
    returnType: void
    signature: "void list_domains(bool verbose, bool context, bool claim, bool numa,\n
      \                        bool cpupool, const libxl_dominfo *info, int nb_domain)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: json_object_new_array
      Src: /src/xen/tools/xl/xl_info.c:560,1
    - Dst: libxl_yajl_gen_alloc
      Src: /src/xen/tools/xl/xl_info.c:564,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:566,1
    - Dst: yajl_gen_array_open
      Src: /src/xen/tools/xl/xl_info.c:570,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/xl/xl_info.c:578,1
    - Dst: libxl_retrieve_domain_configuration
      Src: /src/xen/tools/xl/xl_info.c:579,1
    - Dst: printf_info_one_json
      Src: /src/xen/tools/xl/xl_info.c:586,1
    - Dst: json_object_array_add
      Src: /src/xen/tools/xl/xl_info.c:588,1
    - Dst: printf_info_one_json
      Src: /src/xen/tools/xl/xl_info.c:590,1
    - Dst: printf_info_sexp
      Src: /src/xen/tools/xl/xl_info.c:593,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/xl/xl_info.c:594,1
    - Dst: json_object_to_json_string_ext
      Src: /src/xen/tools/xl/xl_info.c:606,1
    - Dst: yajl_gen_array_close
      Src: /src/xen/tools/xl/xl_info.c:610,1
    - Dst: yajl_gen_get_buf
      Src: /src/xen/tools/xl/xl_info.c:614,1
    - Dst: puts
      Src: /src/xen/tools/xl/xl_info.c:619,1
    - Dst: json_object_put
      Src: /src/xen/tools/xl/xl_info.c:625,1
    - Dst: yajl_gen_free
      Src: /src/xen/tools/xl/xl_info.c:627,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:629,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 2
    argNames:
    - info
    - nb_domain
    argTypes:
    - libxl_dominfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 543
    functionDepth: 6
    functionLinenumber: 543
    functionLinenumberEnd: 633
    functionName: list_domains_details
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_domain_config_init
    - libxl_domain_config_dispose
    - printf_info_sexp
    - libxl_retrieve_domain_configuration
    - libxl_yajl_gen_alloc
    - printf_info_one_json
    - json_object_put
    - fprintf
    - json_object_array_add
    - json_object_new_array
    - yajl_gen_get_buf
    - puts
    - yajl_gen_array_open
    - json_object_to_json_string_ext
    - yajl_gen_free
    - yajl_gen_array_close
    linkageType: ''
    returnType: void
    signature: void list_domains_details(const libxl_dominfo *info, int nb_domain)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:657,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/xl/xl_info.c:675,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_info.c:678,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:680,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_info.c:685,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_info.c:686,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:688,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:693,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_info.c:699,1
    - Dst: list_domains_details
      Src: /src/xen/tools/xl/xl_info.c:704,1
    - Dst: list_domains
      Src: /src/xen/tools/xl/xl_info.c:706,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_info.c:710,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_info.c:712,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 636
    functionDepth: 7
    functionLinenumber: 636
    functionLinenumberEnd: 715
    functionName: main_list
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - find_domain
    - libxl_dominfo_init
    - libxl_dominfo_dispose
    - libxl_domain_info
    - list_domains
    - list_domains_details
    - help
    - fprintf
    - SWITCH_FOREACH_OPT
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int main_list(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:721,1
    - Dst: list_vm
      Src: /src/xen/tools/xl/xl_info.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 717
    functionDepth: 7
    functionLinenumber: 717
    functionLinenumberEnd: 727
    functionName: main_vm_list
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - SWITCH_FOREACH_OPT
    - list_vm
    linkageType: ''
    returnType: int
    signature: int main_vm_list(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:740,1
    - Dst: print_info
      Src: /src/xen/tools/xl/xl_info.c:756,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 729
    functionDepth: 7
    functionLinenumber: 729
    functionLinenumberEnd: 758
    functionName: main_info
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 21
    functionsReached:
    - print_info
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_info(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:766,1
    - Dst: libxl_name_to_domid
      Src: /src/xen/tools/xl/xl_info.c:772,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:773,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 780
    functionName: main_domid
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - printf
    - libxl_name_to_domid
    - fprintf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_domid(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:789,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_info.c:793,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_info.c:794,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:796,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_info.c:800,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:802,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:806,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 810
    functionName: main_domname
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_domid_to_name
    - fprintf
    - strtol
    - printf
    - strcmp
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_domname(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:827,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:829,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:831,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:834,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:836,1
    - Dst: xasprintf
      Src: /src/xen/tools/xl/xl_info.c:838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - uptime
    - short_mode
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 841
    functionName: uptime_to_string
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - xasprintf
    linkageType: ''
    returnType: char
    signature: char *uptime_to_string(unsigned long uptime, int short_mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:849,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:854,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_info.c:856,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:858,1
    - Dst: list_domains
      Src: /src/xen/tools/xl/xl_info.c:862,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_info.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 843
    functionDepth: 5
    functionLinenumber: 843
    functionLinenumberEnd: 867
    functionName: main_claims
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - SWITCH_FOREACH_OPT
    - fprintf
    - list_domains
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int main_claims(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: localtime
      Src: /src/xen/tools/xl/xl_info.c:874,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:876,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:877,1
    - Dst: strftime
      Src: /src/xen/tools/xl/xl_info.c:879,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:880,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:881,1
    - Dst: strdup
      Src: /src/xen/tools/xl/xl_info.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - now
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: current_time_to_string
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - strftime
    - localtime
    - fprintf
    - strdup
    - exit
    linkageType: ''
    returnType: char
    signature: char *current_time_to_string(time_t now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xl/xl_info.c:896,1
    - Dst: read
      Src: /src/xen/tools/xl/xl_info.c:900,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_info.c:902,1
    - Dst: close
      Src: /src/xen/tools/xl/xl_info.c:905,1
    - Dst: strtok
      Src: /src/xen/tools/xl/xl_info.c:909,1
    - Dst: strtoul
      Src: /src/xen/tools/xl/xl_info.c:910,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_info.c:912,1
    - Dst: current_time_to_string
      Src: /src/xen/tools/xl/xl_info.c:915,1
    - Dst: uptime_to_string
      Src: /src/xen/tools/xl/xl_info.c:916,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:917,1
    - Dst: uptime_to_string
      Src: /src/xen/tools/xl/xl_info.c:923,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:924,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:928,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:929,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:930,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:933,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_info.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - short_mode
    - now
    argTypes:
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 935
    functionName: print_dom0_uptime
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - open
    - read
    - free
    - libxl_domid_to_name
    - close
    - current_time_to_string
    - uptime_to_string
    - fprintf
    - printf
    - exit
    - strtoul
    - strtok
    linkageType: ''
    returnType: void
    signature: void print_dom0_uptime(int short_mode, time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vm_get_start_time
      Src: /src/xen/tools/xl/xl_info.c:945,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_info.c:949,1
    - Dst: current_time_to_string
      Src: /src/xen/tools/xl/xl_info.c:952,1
    - Dst: uptime_to_string
      Src: /src/xen/tools/xl/xl_info.c:953,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:954,1
    - Dst: uptime_to_string
      Src: /src/xen/tools/xl/xl_info.c:960,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:961,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:965,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:966,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_info.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - domuid
    - short_mode
    - now
    argTypes:
    - uint32_t
    - int
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 969
    functionName: print_domU_uptime
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_vm_get_start_time
    - free
    - libxl_domid_to_name
    - current_time_to_string
    - uptime_to_string
    - printf
    linkageType: ''
    returnType: void
    signature: void print_domU_uptime(uint32_t domuid, int short_mode, time_t now)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xl/xl_info.c:977,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:980,1
    - Dst: print_dom0_uptime
      Src: /src/xen/tools/xl/xl_info.c:983,1
    - Dst: libxl_list_vm
      Src: /src/xen/tools/xl/xl_info.c:984,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_info.c:986,1
    - Dst: print_domU_uptime
      Src: /src/xen/tools/xl/xl_info.c:991,1
    - Dst: libxl_vminfo_list_free
      Src: /src/xen/tools/xl/xl_info.c:993,1
    - Dst: print_dom0_uptime
      Src: /src/xen/tools/xl/xl_info.c:997,1
    - Dst: print_domU_uptime
      Src: /src/xen/tools/xl/xl_info.c:999,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - short_mode
    - doms
    - nb_doms
    argTypes:
    - int
    - uint32_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 971
    functionDepth: 6
    functionLinenumber: 971
    functionLinenumberEnd: 1002
    functionName: print_uptime
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - time
    - print_domU_uptime
    - libxl_vminfo_list_free
    - print_dom0_uptime
    - fprintf
    - printf
    - libxl_list_vm
    linkageType: ''
    returnType: void
    signature: void print_uptime(int short_mode, uint32_t doms[], int nb_doms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:1012,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_info.c:1019,1
    - Dst: print_uptime
      Src: /src/xen/tools/xl/xl_info.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1004
    functionDepth: 7
    functionLinenumber: 1004
    functionLinenumberEnd: 1024
    functionName: main_uptime
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - find_domain
    - SWITCH_FOREACH_OPT
    - print_uptime
    linkageType: ''
    returnType: int
    signature: int main_uptime(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:1037,1
    - Dst: libxl_xen_console_read_start
      Src: /src/xen/tools/xl/xl_info.c:1043,1
    - Dst: libxl_xen_console_read_line
      Src: /src/xen/tools/xl/xl_info.c:1047,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_info.c:1048,1
    - Dst: libxl_xen_console_read_finish
      Src: /src/xen/tools/xl/xl_info.c:1052,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1054
    functionName: main_dmesg
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - libxl_xen_console_read_line
    - libxl_xen_console_read_finish
    - libxl_xen_console_read_start
    - printf
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_dmesg(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_info.c:1060,1
    - Dst: system
      Src: /src/xen/tools/xl/xl_info.c:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1065
    functionName: main_top
    functionSourceFile: /src/xen/tools/xl/xl_info.c
    functionUses: 0
    functionsReached:
    - system
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_top(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_usb.c:31,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_usb.c:35,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/xl/xl_usb.c:37,1
    - Dst: parse_usbctrl_config
      Src: /src/xen/tools/xl/xl_usb.c:40,1
    - Dst: libxl_device_usbctrl_add
      Src: /src/xen/tools/xl/xl_usb.c:44,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:46,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/xl/xl_usb.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 52
    functionName: main_usbctrl_attach
    functionSourceFile: /src/xen/tools/xl/xl_usb.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_usbctrl_dispose
    - fprintf
    - parse_usbctrl_config
    - libxl_device_usbctrl_add
    - libxl_device_usbctrl_init
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_usbctrl_attach(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_usb.c:60,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_usb.c:64,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_usb.c:65,1
    - Dst: libxl_device_usbctrl_init
      Src: /src/xen/tools/xl/xl_usb.c:67,1
    - Dst: libxl_devid_to_device_usbctrl
      Src: /src/xen/tools/xl/xl_usb.c:68,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:69,1
    - Dst: libxl_device_usbctrl_remove
      Src: /src/xen/tools/xl/xl_usb.c:73,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:75,1
    - Dst: libxl_device_usbctrl_dispose
      Src: /src/xen/tools/xl/xl_usb.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: main_usbctrl_detach
    functionSourceFile: /src/xen/tools/xl/xl_usb.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_devid_to_device_usbctrl
    - libxl_device_usbctrl_remove
    - libxl_device_usbctrl_dispose
    - fprintf
    - libxl_device_usbctrl_init
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_usbctrl_detach(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_usb.c:90,1
    - Dst: libxl_device_usbdev_init
      Src: /src/xen/tools/xl/xl_usb.c:94,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_usb.c:96,1
    - Dst: parse_usbdev_config
      Src: /src/xen/tools/xl/xl_usb.c:99,1
    - Dst: libxl_device_usbdev_add
      Src: /src/xen/tools/xl/xl_usb.c:103,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:105,1
    - Dst: libxl_device_usbdev_dispose
      Src: /src/xen/tools/xl/xl_usb.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 84
    functionDepth: 5
    functionLinenumber: 84
    functionLinenumberEnd: 111
    functionName: main_usbdev_attach
    functionSourceFile: /src/xen/tools/xl/xl_usb.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_device_usbdev_dispose
    - libxl_device_usbdev_init
    - fprintf
    - libxl_device_usbdev_add
    - parse_usbdev_config
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_usbdev_attach(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_usb.c:120,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_usb.c:124,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_usb.c:125,1
    - Dst: atoi
      Src: /src/xen/tools/xl/xl_usb.c:126,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:129,1
    - Dst: libxl_device_usbdev_init
      Src: /src/xen/tools/xl/xl_usb.c:133,1
    - Dst: libxl_ctrlport_to_device_usbdev
      Src: /src/xen/tools/xl/xl_usb.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:135,1
    - Dst: libxl_device_usbdev_remove
      Src: /src/xen/tools/xl/xl_usb.c:140,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:142,1
    - Dst: libxl_device_usbdev_dispose
      Src: /src/xen/tools/xl/xl_usb.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 148
    functionName: main_usbdev_detach
    functionSourceFile: /src/xen/tools/xl/xl_usb.c
    functionUses: 0
    functionsReached:
    - libxl_ctrlport_to_device_usbdev
    - find_domain
    - libxl_device_usbdev_dispose
    - libxl_device_usbdev_init
    - fprintf
    - libxl_device_usbdev_remove
    - atoi
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_usbdev_detach(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_usb.c:157,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_usb.c:161,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_usb.c:164,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_usb.c:165,1
    - Dst: libxl_device_usbctrl_list
      Src: /src/xen/tools/xl/xl_usb.c:168,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_usb.c:174,1
    - Dst: libxl_usbctrlinfo_init
      Src: /src/xen/tools/xl/xl_usb.c:177,1
    - Dst: libxl_device_usbctrl_getinfo
      Src: /src/xen/tools/xl/xl_usb.c:179,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_usb.c:181,1
    - Dst: libxl_usbctrl_type_to_string
      Src: /src/xen/tools/xl/xl_usb.c:183,1
    - Dst: libxl_device_usbdev_init
      Src: /src/xen/tools/xl/xl_usb.c:190,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_usb.c:192,1
    - Dst: libxl_ctrlport_to_device_usbdev
      Src: /src/xen/tools/xl/xl_usb.c:194,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_usb.c:197,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_usb.c:201,1
    - Dst: libxl_device_usbdev_dispose
      Src: /src/xen/tools/xl/xl_usb.c:204,1
    - Dst: libxl_usbctrlinfo_dispose
      Src: /src/xen/tools/xl/xl_usb.c:208,1
    - Dst: libxl_device_usbctrl_list_free
      Src: /src/xen/tools/xl/xl_usb.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 150
    functionDepth: 6
    functionLinenumber: 150
    functionLinenumberEnd: 213
    functionName: main_usblist
    functionSourceFile: /src/xen/tools/xl/xl_usb.c
    functionUses: 0
    functionsReached:
    - libxl_ctrlport_to_device_usbdev
    - libxl_usbctrl_type_to_string
    - find_domain
    - libxl_device_usbctrl_getinfo
    - libxl_device_usbctrl_list_free
    - libxl_device_usbctrl_list
    - libxl_usbctrlinfo_dispose
    - libxl_usbctrlinfo_init
    - libxl_device_usbdev_dispose
    - libxl_device_usbdev_init
    - fprintf
    - printf
    - exit
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_usblist(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: CHK_ERRNOVAL
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHK_ERRNOVAL( call )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: CHK_SYSCALL
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHK_SYSCALL( call )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: MUST
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUST( call )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: STR_HAS_PREFIX
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_HAS_PREFIX( a, b )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: STR_SKIP_PREFIX
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_SKIP_PREFIX( a, b )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: LOG
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 165
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - opt
    - ','
    - opts
    - ','
    - longopts
    - ','
    - commandname
    - ','
    - num_required_opts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: SWITCH_FOREACH_OPT
    functionSourceFile: /src/xen/tools/xl/xl_utils.h
    functionUses: 84
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SWITCH_FOREACH_OPT(opt, opts, longopts,                         \\\n
      \                          commandname, num_required_opts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_sched_params_get
      Src: /src/xen/tools/xl/xl_sched.c:29,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:30,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:34,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:35,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sched
    - domid
    - scinfo
    argTypes:
    - libxl_scheduler
    - int
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: sched_domain_get
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - libxl_domain_sched_params_get
    - fprintf
    - libxl_scheduler_to_string
    linkageType: ''
    returnType: int
    signature: "int sched_domain_get(libxl_scheduler sched, int domid,\n                            libxl_domain_sched_params
      *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_sched_params_set
      Src: /src/xen/tools/xl/xl_sched.c:45,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - domid
    - scinfo
    argTypes:
    - int
    - libxl_domain_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: sched_domain_set
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - libxl_domain_sched_params_set
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sched_domain_set(int domid, const libxl_domain_sched_params *scinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vcpu_sched_params_get
      Src: /src/xen/tools/xl/xl_sched.c:58,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:60,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_sched.c:61,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:64,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:65,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sched
    - domid
    - scinfo
    argTypes:
    - libxl_scheduler
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: sched_vcpu_get
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_scheduler_to_string
    - fprintf
    - libxl_vcpu_sched_params_get
    linkageType: ''
    returnType: int
    signature: "int sched_vcpu_get(libxl_scheduler sched, int domid,\n                          libxl_vcpu_sched_params
      *scinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vcpu_sched_params_get_all
      Src: /src/xen/tools/xl/xl_sched.c:78,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:80,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_sched.c:81,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:84,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:85,1
    - Dst: libxl_scheduler_to_string
      Src: /src/xen/tools/xl/xl_sched.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sched
    - domid
    - scinfo
    argTypes:
    - libxl_scheduler
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: sched_vcpu_get_all
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_vcpu_sched_params_get_all
    - fprintf
    - libxl_scheduler_to_string
    linkageType: ''
    returnType: int
    signature: "int sched_vcpu_get_all(libxl_scheduler sched, int domid,\n                              libxl_vcpu_sched_params
      *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vcpu_sched_params_set
      Src: /src/xen/tools/xl/xl_sched.c:97,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:99,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_sched.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domid
    - scinfo
    argTypes:
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: sched_vcpu_set
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_vcpu_sched_params_set
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sched_vcpu_set(int domid, const libxl_vcpu_sched_params *scinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_vcpu_sched_params_set_all
      Src: /src/xen/tools/xl/xl_sched.c:110,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:112,1
    - Dst: exit
      Src: /src/xen/tools/xl/xl_sched.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domid
    - scinfo
    argTypes:
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: sched_vcpu_set_all
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - exit
    - libxl_vcpu_sched_params_set_all
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sched_vcpu_set_all(int domid, const libxl_vcpu_sched_params *scinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_sched_credit_params_set
      Src: /src/xen/tools/xl/xl_sched.c:121,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poolid
    - scinfo
    argTypes:
    - int
    - libxl_sched_credit_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: sched_credit_params_set
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 2
    functionsReached:
    - libxl_sched_credit_params_set
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sched_credit_params_set(int poolid, libxl_sched_credit_params *scinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_sched_credit_params_get
      Src: /src/xen/tools/xl/xl_sched.c:131,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poolid
    - scinfo
    argTypes:
    - int
    - libxl_sched_credit_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: sched_credit_params_get
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 2
    functionsReached:
    - fprintf
    - libxl_sched_credit_params_get
    linkageType: ''
    returnType: int
    signature: int sched_credit_params_get(int poolid, libxl_sched_credit_params *scinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:145,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:149,1
    - Dst: sched_domain_get
      Src: /src/xen/tools/xl/xl_sched.c:150,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:151,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:154,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:155,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:160,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: sched_credit_domain_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - sched_domain_get
    - free
    - libxl_domid_to_name
    - libxl_domain_sched_params_init
    - printf
    - libxl_domain_sched_params_dispose
    linkageType: ''
    returnType: int
    signature: int sched_credit_domain_output(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:170,1
    - Dst: sched_credit_params_get
      Src: /src/xen/tools/xl/xl_sched.c:171,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:172,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:175,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: sched_credit_pool_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - sched_credit_params_get
    - free
    - libxl_cpupoolid_to_name
    - printf
    linkageType: ''
    returnType: int
    signature: int sched_credit_pool_output(uint32_t poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_sched_credit2_params_set
      Src: /src/xen/tools/xl/xl_sched.c:188,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poolid
    - scinfo
    argTypes:
    - int
    - libxl_sched_credit2_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: sched_credit2_params_set
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 2
    functionsReached:
    - libxl_sched_credit2_params_set
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int sched_credit2_params_set(int poolid,\n                                    libxl_sched_credit2_params
      *scinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_sched_credit2_params_get
      Src: /src/xen/tools/xl/xl_sched.c:199,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - poolid
    - scinfo
    argTypes:
    - int
    - libxl_sched_credit2_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: sched_credit2_params_get
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 2
    functionsReached:
    - libxl_sched_credit2_params_get
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int sched_credit2_params_get(int poolid,\n                                    libxl_sched_credit2_params
      *scinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:213,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:217,1
    - Dst: sched_domain_get
      Src: /src/xen/tools/xl/xl_sched.c:218,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:219,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:222,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:223,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:228,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 231
    functionName: sched_credit2_domain_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - sched_domain_get
    - free
    - libxl_domid_to_name
    - libxl_domain_sched_params_init
    - printf
    - libxl_domain_sched_params_dispose
    linkageType: ''
    returnType: int
    signature: int sched_credit2_domain_output(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:236,1
    - Dst: sched_credit2_params_get
      Src: /src/xen/tools/xl/xl_sched.c:238,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:239,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:241,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: sched_credit2_pool_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - free
    - sched_credit2_params_get
    - libxl_cpupoolid_to_name
    - printf
    linkageType: ''
    returnType: int
    signature: int sched_credit2_pool_output(uint32_t poolid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:256,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:260,1
    - Dst: sched_domain_get
      Src: /src/xen/tools/xl/xl_sched.c:261,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:262,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:266,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:267,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:273,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 6
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: sched_rtds_domain_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - sched_domain_get
    - free
    - libxl_domid_to_name
    - libxl_domain_sched_params_init
    - printf
    - libxl_domain_sched_params_dispose
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_domain_output(\n    int domid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:285,1
    - Dst: sched_vcpu_get
      Src: /src/xen/tools/xl/xl_sched.c:290,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:294,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:296,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - domid
    - scinfo
    argTypes:
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 278
    functionDepth: 6
    functionLinenumber: 278
    functionLinenumberEnd: 306
    functionName: sched_rtds_vcpu_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - free
    - sched_vcpu_get
    - libxl_domid_to_name
    - printf
    linkageType: ''
    returnType: int
    signature: int sched_rtds_vcpu_output(int domid, libxl_vcpu_sched_params *scinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:316,1
    - Dst: sched_vcpu_get_all
      Src: /src/xen/tools/xl/xl_sched.c:322,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:326,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:328,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - domid
    - scinfo
    argTypes:
    - int
    - libxl_vcpu_sched_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 338
    functionName: sched_rtds_vcpu_output_all
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_domid_to_name
    - sched_vcpu_get_all
    - printf
    linkageType: ''
    returnType: int
    signature: "int sched_rtds_vcpu_output_all(int domid,\n                                      libxl_vcpu_sched_params
      *scinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupoolid_to_name
      Src: /src/xen/tools/xl/xl_sched.c:344,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_sched.c:345,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: sched_rtds_pool_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_cpupoolid_to_name
    - printf
    linkageType: ''
    returnType: int
    signature: int sched_rtds_pool_output(uint32_t poolid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_sched.c:361,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_sched.c:362,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:363,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_sched.c:368,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:370,1
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/xl/xl_sched.c:373,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:375,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:376,1
    - Dst: pooloutput
      Src: /src/xen/tools/xl/xl_sched.c:385,1
    - Dst: output
      Src: /src/xen/tools/xl/xl_sched.c:387,1
    - Dst: output
      Src: /src/xen/tools/xl/xl_sched.c:391,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:397,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:398,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 2
    argNames:
    - sched
    - cpupool
    argTypes:
    - libxl_scheduler
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 400
    functionName: sched_domain_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - libxl_cpupool_qualifier_to_cpupoolid
    - pooloutput
    - output
    - libxl_list_cpupool
    - libxl_cpupoolid_is_valid
    - fprintf
    - libxl_list_domain
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: int
    signature: "int sched_domain_output(libxl_scheduler sched, int (*output)(int),\n
      \                              int (*pooloutput)(uint32_t), const char *cpupool)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_sched.c:413,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_sched.c:414,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:415,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_sched.c:420,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:422,1
    - Dst: libxl_list_cpupool
      Src: /src/xen/tools/xl/xl_sched.c:425,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:427,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:428,1
    - Dst: pooloutput
      Src: /src/xen/tools/xl/xl_sched.c:437,1
    - Dst: output
      Src: /src/xen/tools/xl/xl_sched.c:439,1
    - Dst: libxl_vcpu_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:444,1
    - Dst: output
      Src: /src/xen/tools/xl/xl_sched.c:445,1
    - Dst: libxl_vcpu_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:446,1
    - Dst: libxl_cpupoolinfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:452,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_sched.c:453,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - sched
    - cpupool
    argTypes:
    - libxl_scheduler
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 402
    functionDepth: 5
    functionLinenumber: 402
    functionLinenumberEnd: 455
    functionName: sched_vcpu_output
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - libxl_cpupool_qualifier_to_cpupoolid
    - pooloutput
    - output
    - libxl_vcpu_sched_params_dispose
    - libxl_list_cpupool
    - libxl_cpupoolid_is_valid
    - fprintf
    - libxl_vcpu_sched_params_init
    - libxl_list_domain
    - libxl_cpupoolinfo_list_free
    linkageType: ''
    returnType: int
    signature: "int sched_vcpu_output(libxl_scheduler sched,\n                             int
      (*output)(int, libxl_vcpu_sched_params *),\n                             int
      (*pooloutput)(uint32_t), const char *cpupool)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_sched.c:490,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:495,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:499,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:503,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:507,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:511,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:523,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:528,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:532,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_sched.c:542,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_sched.c:544,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:545,1
    - Dst: sched_credit_pool_output
      Src: /src/xen/tools/xl/xl_sched.c:551,1
    - Dst: sched_credit_params_get
      Src: /src/xen/tools/xl/xl_sched.c:554,1
    - Dst: sched_credit_params_set
      Src: /src/xen/tools/xl/xl_sched.c:566,1
    - Dst: sched_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:570,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_sched.c:576,1
    - Dst: sched_credit_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:579,1
    - Dst: sched_credit_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:580,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:584,1
    - Dst: sched_domain_set
      Src: /src/xen/tools/xl/xl_sched.c:590,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:591,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 468
    functionDepth: 7
    functionLinenumber: 468
    functionLinenumberEnd: 598
    functionName: main_sched_credit
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - sched_credit_params_get
    - find_domain
    - libxl_cpupool_qualifier_to_cpupoolid
    - sched_credit_params_set
    - sched_credit_pool_output
    - sched_domain_set
    - libxl_domain_sched_params_init
    - libxl_cpupoolid_is_valid
    - fprintf
    - strtol
    - sched_credit_domain_output
    - libxl_domain_sched_params_dispose
    - SWITCH_FOREACH_OPT
    - sched_domain_output
    linkageType: ''
    returnType: int
    signature: int main_sched_credit(int argc, char **argv)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_sched.c:621,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:626,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:630,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:637,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:646,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:651,1
    - Dst: libxl_cpupool_qualifier_to_cpupoolid
      Src: /src/xen/tools/xl/xl_sched.c:660,1
    - Dst: libxl_cpupoolid_is_valid
      Src: /src/xen/tools/xl/xl_sched.c:662,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:663,1
    - Dst: sched_credit2_pool_output
      Src: /src/xen/tools/xl/xl_sched.c:669,1
    - Dst: sched_credit2_params_set
      Src: /src/xen/tools/xl/xl_sched.c:673,1
    - Dst: sched_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:677,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_sched.c:683,1
    - Dst: sched_credit2_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:686,1
    - Dst: sched_credit2_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:687,1
    - Dst: libxl_domain_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:691,1
    - Dst: sched_domain_set
      Src: /src/xen/tools/xl/xl_sched.c:697,1
    - Dst: libxl_domain_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:698,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 600
    functionDepth: 7
    functionLinenumber: 600
    functionLinenumberEnd: 705
    functionName: main_sched_credit2
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - find_domain
    - libxl_cpupool_qualifier_to_cpupoolid
    - sched_credit2_pool_output
    - sched_credit2_domain_output
    - sched_domain_set
    - libxl_domain_sched_params_init
    - libxl_cpupoolid_is_valid
    - fprintf
    - sched_credit2_params_set
    - strtol
    - libxl_domain_sched_params_dispose
    - SWITCH_FOREACH_OPT
    - sched_domain_output
    linkageType: ''
    returnType: int
    signature: int main_sched_credit2(int argc, char **argv)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:723,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:724,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:725,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:726,1
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_sched.c:751,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_sched.c:762,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:764,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_sched.c:770,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:772,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_sched.c:778,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_sched.c:780,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_sched.c:780,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:782,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:786,1
    - Dst: strcmp
      Src: /src/xen/tools/xl/xl_sched.c:790,1
    - Dst: xrealloc
      Src: /src/xen/tools/xl/xl_sched.c:796,1
    - Dst: strtol
      Src: /src/xen/tools/xl/xl_sched.c:798,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:807,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:813,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:818,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:823,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_sched.c:830,1
    - Dst: sched_vcpu_output
      Src: /src/xen/tools/xl/xl_sched.c:837,1
    - Dst: sched_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:847,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_sched.c:856,1
    - Dst: sched_rtds_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:858,1
    - Dst: sched_rtds_domain_output
      Src: /src/xen/tools/xl/xl_sched.c:859,1
    - Dst: libxl_vcpu_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:867,1
    - Dst: sched_rtds_vcpu_output
      Src: /src/xen/tools/xl/xl_sched.c:868,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:872,1
    - Dst: sched_rtds_vcpu_output
      Src: /src/xen/tools/xl/xl_sched.c:875,1
    - Dst: sched_rtds_vcpu_output_all
      Src: /src/xen/tools/xl/xl_sched.c:877,1
    - Dst: libxl_vcpu_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:878,1
    - Dst: libxl_vcpu_sched_params_init
      Src: /src/xen/tools/xl/xl_sched.c:886,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:891,1
    - Dst: sched_vcpu_set
      Src: /src/xen/tools/xl/xl_sched.c:898,1
    - Dst: xmalloc
      Src: /src/xen/tools/xl/xl_sched.c:902,1
    - Dst: sched_vcpu_set_all
      Src: /src/xen/tools/xl/xl_sched.c:906,1
    - Dst: libxl_vcpu_sched_params_dispose
      Src: /src/xen/tools/xl/xl_sched.c:909,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:919,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:920,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:921,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_sched.c:922,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 161
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 924
    functionName: main_sched_rtds
    functionSourceFile: /src/xen/tools/xl/xl_sched.c
    functionUses: 0
    functionsReached:
    - find_domain
    - xmalloc
    - sched_vcpu_output
    - sched_rtds_vcpu_output
    - sched_vcpu_set_all
    - free
    - xrealloc
    - sched_rtds_domain_output
    - libxl_vcpu_sched_params_dispose
    - fprintf
    - strtol
    - libxl_vcpu_sched_params_init
    - sched_vcpu_set
    - sched_rtds_vcpu_output_all
    - strcmp
    - SWITCH_FOREACH_OPT
    - sched_domain_output
    linkageType: ''
    returnType: int
    signature: int main_sched_rtds(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_mem_size_kb
      Src: /src/xen/tools/xl/xl_mem.c:29,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:31,1
    - Dst: libxl_domain_setmaxmem
      Src: /src/xen/tools/xl/xl_mem.c:35,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - domid
    - mem
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: set_memory_max
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 0
    functionsReached:
    - parse_mem_size_kb
    - fprintf
    - libxl_domain_setmaxmem
    linkageType: ''
    returnType: int
    signature: int set_memory_max(uint32_t domid, const char *mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_mem.c:49,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_mem.c:53,1
    - Dst: set_memory_max
      Src: /src/xen/tools/xl/xl_mem.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 5
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: main_memmax
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 0
    functionsReached:
    - find_domain
    - set_memory_max
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_memmax(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_mem_size_kb
      Src: /src/xen/tools/xl/xl_mem.c:63,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:65,1
    - Dst: libxl_set_memory_target
      Src: /src/xen/tools/xl/xl_mem.c:69,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - domid
    - mem
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 75
    functionName: set_memory_target
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 2
    functionsReached:
    - parse_mem_size_kb
    - libxl_set_memory_target
    - fprintf
    linkageType: ''
    returnType: int
    signature: int set_memory_target(uint32_t domid, const char *mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_mem.c:83,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_mem.c:87,1
    - Dst: set_memory_target
      Src: /src/xen/tools/xl/xl_mem.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: main_memset
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 0
    functionsReached:
    - find_domain
    - set_memory_target
    - SWITCH_FOREACH_OPT
    linkageType: ''
    returnType: int
    signature: int main_memset(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xl/xl_mem.c:97,1
    - Dst: libxl_domid_to_name
      Src: /src/xen/tools/xl/xl_mem.c:102,1
    - Dst: printf
      Src: /src/xen/tools/xl/xl_mem.c:104,1
    - Dst: free
      Src: /src/xen/tools/xl/xl_mem.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - info
    - nb_domain
    argTypes:
    - libxl_dominfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: sharing
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 0
    functionsReached:
    - free
    - libxl_domid_to_name
    - printf
    linkageType: ''
    returnType: void
    signature: void sharing(const libxl_dominfo *info, int nb_domain)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SWITCH_FOREACH_OPT
      Src: /src/xen/tools/xl/xl_mem.c:121,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/xl/xl_mem.c:126,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:128,1
    - Dst: find_domain
      Src: /src/xen/tools/xl/xl_mem.c:133,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/xl/xl_mem.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/xl/xl_mem.c:141,1
    - Dst: help
      Src: /src/xen/tools/xl/xl_mem.c:147,1
    - Dst: sharing
      Src: /src/xen/tools/xl/xl_mem.c:151,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/xl/xl_mem.c:154,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/xl/xl_mem.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 159
    functionName: main_sharing
    functionSourceFile: /src/xen/tools/xl/xl_mem.c
    functionUses: 0
    functionsReached:
    - libxl_dominfo_list_free
    - find_domain
    - libxl_dominfo_dispose
    - libxl_domain_info
    - help
    - fprintf
    - sharing
    - SWITCH_FOREACH_OPT
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int main_sharing(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: xs_set_error
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: void
    signature: void xs_set_error(int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_set_error
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - XsHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: xshandle
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xs_set_error
    linkageType: ''
    returnType: struct xs_handle
    signature: struct xs_handle *xshandle(XsHandle *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_transaction_path
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:110,1
    - Dst: xs_read
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:114,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:117,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:118,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: xspy_read
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - none
    - free
    - xs_read
    - parse_transaction_path
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_read(XsHandle *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:117,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: if
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - free
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (xsval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:140,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:150,1
    - Dst: strtoul
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:153,1
    - Dst: xs_write
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 160
    functionName: xspy_write
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - strtoul
    - PyArg_ParseTuple
    - xs_write
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_write(XsHandle *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_transaction_path
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:182,1
    - Dst: xs_directory
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:186,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:191,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:194,1
    - Dst: PyUnicode_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:194,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:196,1
    - Dst: PyBytes_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:196,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:198,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: xspy_ls
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - none
    - xs_directory
    - PyList_SetItem
    - free
    - PyList_New
    - parse_transaction_path
    - PyUnicode_FromString
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_ls(XsHandle *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:191,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:194,1
    - Dst: PyUnicode_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:194,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:196,1
    - Dst: PyBytes_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:196,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: if
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - PyList_SetItem
    - free
    - PyList_New
    - PyUnicode_FromString
    - PyBytes_FromString
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (xsval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_transaction_path
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:224,1
    - Dst: xs_mkdir
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 232
    functionName: xspy_mkdir
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xs_mkdir
    - parse_transaction_path
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_mkdir(XsHandle *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_transaction_path
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:252,1
    - Dst: xs_rm
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: xspy_rm
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - parse_transaction_path
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_rm(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:277,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:287,1
    - Dst: strtoul
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:290,1
    - Dst: xs_get_permissions
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:293,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:297,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:300,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:304,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:307,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 313
    functionName: xspy_get_permissions
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - PyList_SetItem
    - free
    - PyList_New
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    - xs_get_permissions
    - Py_BuildValue
    - xshandle
    - strtoul
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_get_permissions(XsHandle *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:297,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:300,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:304,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: if
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - PyList_SetItem
    - PyList_New
    - Py_BuildValue
    - free
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (perms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:333,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:345,1
    - Dst: strtoul
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:348,1
    - Dst: PyList_Check
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:350,1
    - Dst: xs_set_error
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:351,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:355,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:357,1
    - Dst: xs_set_error
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:359,1
    - Dst: PyTuple_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:363,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:370,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:371,1
    - Dst: memmove
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:385,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:391,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:394,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:398,1
    - Dst: Py_XDECREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:402,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:403,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 405
    functionName: xspy_set_permissions
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - calloc
    - xs_set_error
    - PyTuple_New
    - free
    - xs_set_permissions
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - PyArg_ParseTuple
    - PyList_GetItem
    - memmove
    - PyList_Check
    - Py_INCREF
    - xshandle
    - PyList_Size
    - strtoul
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_set_permissions(XsHandle *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 418
    functionName: MAX_STRLEN
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_STRLEN(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:421,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:424,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:430,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:438,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:439,1
    - Dst: PySequence_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:440,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:444,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:445,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:447,1
    - Dst: xs_watch
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:449,1
    - Dst: remove_watch
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:453,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 456
    functionName: xspy_watch
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - none
    - PySequence_SetItem
    - PyList_Append
    - PyArg_ParseTuple
    - PyList_GetItem
    - remove_watch
    - xs_watch
    - xshandle
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_watch(XsHandle *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:466,1
    - Dst: xs_fileno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:472,1
    - Dst: PyLong_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - XsHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: xspy_fileno
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - PyLong_FromLong
    - xs_fileno
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_fileno(XsHandle *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:488,1
    - Dst: xs_check_watch
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:495,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:497,1
    - Dst: match_watch_by_token
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:500,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 503
    functionName: xspy_check_watch
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - none
    - free
    - match_watch_by_token
    - xs_check_watch
    - xshandle
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_check_watch(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:514,1
    - Dst: xs_read_watch
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:524,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:527,1
    - Dst: match_watch_by_token
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:531,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:532,1
    - Dst: PyErr_Clear
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 512
    functionDepth: 4
    functionLinenumber: 512
    functionLinenumberEnd: 540
    functionName: xspy_read_watch
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - free
    - PyErr_SetFromErrno
    - match_watch_by_token
    - xs_read_watch
    - PyErr_Clear
    - xshandle
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_read_watch(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:553,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:556,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:561,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:564,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:566,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 551
    functionDepth: 5
    functionLinenumber: 551
    functionLinenumberEnd: 572
    functionName: xspy_unwatch
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - none
    - PyArg_ParseTuple
    - xs_unwatch
    - xshandle
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_unwatch(XsHandle *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:583,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:585,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:591,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:595,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:599,1
    - Dst: PyUnicode_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:601,1
    - Dst: PyBytes_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - XsHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 605
    functionName: xspy_transaction_start
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - PyErr_SetFromErrno
    - xs_transaction_start
    - PyUnicode_FromString
    - xshandle
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_transaction_start(XsHandle *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:624,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:632,1
    - Dst: strtoul
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:636,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:639,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:643,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:647,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XsHandle*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 617
    functionDepth: 6
    functionLinenumber: 617
    functionLinenumberEnd: 653
    functionName: xspy_transaction_end
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - xshandle
    - xs_transaction_end
    - strtoul
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *xspy_transaction_end(XsHandle *self, PyObject *args,\n                                      PyObject
      *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: if
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:673,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:678,1
    - Dst: xs_introduce_domain
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 667
    functionDepth: 5
    functionLinenumber: 667
    functionLinenumberEnd: 686
    functionName: xspy_introduce_domain
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - xs_introduce_domain
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_introduce_domain(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:703,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:708,1
    - Dst: xs_set_target
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 698
    functionDepth: 5
    functionLinenumber: 698
    functionLinenumberEnd: 716
    functionName: xspy_set_target
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - xs_set_target
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_set_target(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:731,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:736,1
    - Dst: xs_resume_domain
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 727
    functionDepth: 7
    functionLinenumber: 727
    functionLinenumberEnd: 744
    functionName: xspy_resume_domain
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - xs_resume_domain
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_resume_domain(XsHandle *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:759,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:764,1
    - Dst: xs_release_domain
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 755
    functionDepth: 7
    functionLinenumber: 755
    functionLinenumberEnd: 772
    functionName: xspy_release_domain
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xshandle
    - xs_release_domain
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_release_domain(XsHandle *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:784,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:790,1
    - Dst: PySequence_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:792,1
    - Dst: xs_close
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:795,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - XsHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 800
    functionName: xspy_close
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - PySequence_SetItem
    - Py_INCREF
    - xshandle
    - xs_close
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_close(XsHandle *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:813,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:819,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:823,1
    - Dst: PyUnicode_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:828,1
    - Dst: PyBytes_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:830,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:832,1
    - Dst: none
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 811
    functionDepth: 7
    functionLinenumber: 811
    functionLinenumberEnd: 838
    functionName: xspy_get_domain_path
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - none
    - xs_get_domain_path
    - free
    - PyArg_ParseTuple
    - PyUnicode_FromString
    - xshandle
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xspy_get_domain_path(XsHandle *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:828,1
    - Dst: PyBytes_FromString
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:830,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 834
    functionName: if
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - free
    - PyBytes_FromString
    - PyUnicode_FromString
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (xsval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:849,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:850,1
    - Dst: PySequence_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - XsHandle*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 855
    functionName: remove_watch
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 1
    functionsReached:
    - PyList_GetItem
    - PyList_Size
    - PySequence_SetItem
    linkageType: ''
    returnType: void
    signature: void remove_watch(XsHandle *self, PyObject *token)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xshandle
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:873,1
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:878,1
    - Dst: strtoul
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - self
    - args
    - xh
    - th
    - path
    argTypes:
    - XsHandle*
    - PyObject*
    - struct xs_handle**
    - xs_transaction_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: parse_transaction_path
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 4
    functionsReached:
    - xshandle
    - strtoul
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: "int parse_transaction_path(XsHandle *self, PyObject *args,\n                                  struct
      xs_handle **xh,\n                                  xs_transaction_t *th,\n                                  char
      **path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:892,1
    - Dst: xs_set_error
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:893,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:896,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:897,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:900,1
    - Dst: xs_set_error
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:905,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - xsval
    argTypes:
    - XsHandle*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 911
    functionName: match_watch_by_token
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 2
    functionsReached:
    - xs_set_error
    - PyList_GetItem
    - Py_BuildValue
    - sscanf
    - PyList_Size
    linkageType: ''
    returnType: PyObject
    signature: PyObject *match_watch_by_token(XsHandle *self, char **xsval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:917,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - result
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 924
    functionName: none
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 20
    functionsReached:
    - PyErr_SetFromErrno
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *none(bool result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 932
    functionName: XSPY_METH
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSPY_METH(_name, _args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:960,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:966,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 976
    functionName: xshandle_new
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_New
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xshandle_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:985,1
    - Dst: xs_open
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:989,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XsHandle*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 998
    functionName: xshandle_init
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - xs_open
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int xshandle_init(XsHandle *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_close
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:1003,1
    - Dst: Py_XDECREF
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:1007,1
    - Dst: Py_TYPE
      Src: /src/xen/tools/python/xen/lowlevel/xs/xs.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - XsHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1010
    functionName: xshandle_dealloc
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - xs_close
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void xshandle_dealloc(XsHandle *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_last_error
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:68,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:70,1
    - Dst: strerror
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:72,1
    - Dst: xc_error_code_to_desc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:77,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:80,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:83,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:85,1
    - Dst: xc_clear_last_error
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:88,1
    - Dst: PyErr_SetObject
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:92,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 97
    functionName: pyxc_error_to_exception
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_clear_last_error
    - xc_get_last_error
    - xc_error_code_to_desc
    - PyErr_SetFromErrno
    - PyErr_SetObject
    - strerror
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_error_to_exception(xc_interface *xch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:104,1
    - Dst: xc_domain_dumpcore
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:110,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:111,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: pyxc_domain_dumpcore
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - pyxc_error_to_exception
    - xc_domain_dumpcore
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_dumpcore(XcObject *self, PyObject *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:140,1
    - Dst: PyList_Check
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:147,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:148,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:153,1
    - Dst: PyLongOrInt_Check
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:154,1
    - Dst: PyLongOrInt_AsLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:156,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:170,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:172,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:173,1
    - Dst: xc_domain_set_target
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:176,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:177,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:180,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 186
    functionName: pyxc_domain_create
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - xc_domain_set_target
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - XEN_DOMCTL_GRANT_version
    - PyList_GetItem
    - PyLongOrInt_AsLong
    - PyList_Check
    - pyxc_error_to_exception
    - PyLongOrInt_Check
    - PyList_Size
    - xc_domain_create
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_create(XcObject *self,\n                                    PyObject
      *args,\n                                    PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:192,1
    - Dst: xc_domain_max_vcpus
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:195,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:196,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: pyxc_domain_max_vcpus
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - pyxc_error_to_exception
    - xc_domain_max_vcpus
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_max_vcpus(XcObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: pyxc_domain_pause
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_pause(XcObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: pyxc_domain_unpause
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_unpause(XcObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: pyxc_domain_destroy_hook
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_destroy_hook(XcObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_op
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: pyxc_domain_destroy
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - dom_op
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_destroy(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:227,1
    - Dst: xc_domain_shutdown
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:230,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:231,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: pyxc_domain_shutdown
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_domain_shutdown
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_shutdown(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:242,1
    - Dst: xc_domain_resume
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:245,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:246,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: pyxc_domain_resume
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_domain_resume
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_resume(XcObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:264,1
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:268,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:270,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:272,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:274,1
    - Dst: PyList_Check
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:276,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:278,1
    - Dst: PyLongOrInt_AsLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:280,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:280,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:283,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:285,1
    - Dst: xc_vcpu_setaffinity
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:292,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:295,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:296,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:298,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 301
    functionName: pyxc_vcpu_setaffinity
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_cpumap_alloc
    - free
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - PyList_GetItem
    - xc_vcpu_setaffinity
    - PyLongOrInt_AsLong
    - PyList_Check
    - pyxc_error_to_exception
    - Py_INCREF
    - PyList_Size
    - xc_get_max_cpus
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_vcpu_setaffinity(XcObject *self,\n                                       PyObject
      *args,\n                                       PyObject *kwds)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:310,1
    - Dst: PyList_Check
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:313,1
    - Dst: PyList_Size
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:314,1
    - Dst: PyList_GetItem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:321,1
    - Dst: PyLongOrInt_Check
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:322,1
    - Dst: PyLongOrInt_AsLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:324,1
    - Dst: xc_domain_sethandle
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:327,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:328,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:330,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 336
    functionName: pyxc_domain_sethandle
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    - PyList_GetItem
    - PyLongOrInt_AsLong
    - PyList_Check
    - xc_domain_sethandle
    - PyLongOrInt_Check
    - pyxc_error_to_exception
    - PyList_Size
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_sethandle(XcObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:352,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:356,1
    - Dst: PyErr_NoMemory
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:358,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:360,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:364,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:365,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:368,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:371,1
    - Dst: dominfo_shutdown_with
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:379,1
    - Dst: dominfo_shutdown_reason
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:388,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:390,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:393,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:394,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:395,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:396,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:400,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:400,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:401,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:402,1
    - Dst: PyList_SetItem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:403,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 409
    functionName: pyxc_domain_getinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - calloc
    - dominfo_shutdown_reason
    - free
    - PyList_SetItem
    - PyList_New
    - PyArg_ParseTupleAndKeywords
    - PyErr_NoMemory
    - dominfo_shutdown_with
    - PyDict_SetItemString
    - Py_BuildValue
    - Py_DECREF
    - pyxc_error_to_exception
    - xc_domain_getinfolist
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_getinfo(XcObject *self,\n                                     PyObject
      *args,\n                                     PyObject *kwds)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:425,1
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:429,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:431,1
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:433,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:435,1
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:437,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:439,1
    - Dst: xc_vcpu_getaffinity
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:441,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:445,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:446,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:449,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:455,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:459,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:460,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:461,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:465,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:466,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 469
    functionName: pyxc_vcpu_getinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - xc_cpumap_alloc
    - xc_vcpu_getinfo
    - xc_vcpu_getaffinity
    - free
    - PyList_New
    - PyArg_ParseTupleAndKeywords
    - PyDict_SetItemString
    - Py_BuildValue
    - Py_DECREF
    - pyxc_error_to_exception
    - PyList_Append
    - xc_get_max_cpus
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_vcpu_getinfo(XcObject *self,\n                                   PyObject
      *args,\n                                   PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:480,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:484,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:485,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 489
    functionName: pyxc_hvm_param_get
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - xc_hvm_param_get
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_hvm_param_get(XcObject *self,\n                                    PyObject
      *args,\n                                    PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:500,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:504,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:505,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 509
    functionName: pyxc_hvm_param_set
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_set
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_hvm_param_set(XcObject *self,\n                                    PyObject
      *args,\n                                    PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:513,1
    - Dst: strtol
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - token
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: token_value
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - strchr
    - strtol
    linkageType: ''
    returnType: int
    signature: int token_value(char *token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:521,1
    - Dst: token_value
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:525,1
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:526,1
    - Dst: token_value
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:527,1
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:528,1
    - Dst: token_value
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:529,1
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:530,1
    - Dst: token_value
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:531,1
    - Dst: strchr
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - str
    - seg
    - bus
    - dev
    - func
    argTypes:
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 536
    functionName: next_bdf
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - strchr
    - token_value
    linkageType: ''
    returnType: int
    signature: int next_bdf(char **str, int *seg, int *bus, int *dev, int *func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:548,1
    - Dst: next_bdf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:552,1
    - Dst: xc_test_assign_device
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:559,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: pyxc_test_assign_device
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_test_assign_device
    - next_bdf
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_test_assign_device(XcObject *self,\n                                         PyObject
      *args,\n                                         PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:581,1
    - Dst: next_bdf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:585,1
    - Dst: xc_assign_device
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:592,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:601,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 602
    functionName: pyxc_assign_device
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - next_bdf
    - xc_assign_device
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_assign_device(XcObject *self,\n                                    PyObject
      *args,\n                                    PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:614,1
    - Dst: next_bdf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:618,1
    - Dst: xc_deassign_device
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:625,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 635
    functionName: pyxc_deassign_device
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - next_bdf
    - PyArg_ParseTupleAndKeywords
    - xc_deassign_device
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_deassign_device(XcObject *self,\n                                      PyObject
      *args,\n                                      PyObject *kwds)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:649,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:655,1
    - Dst: PyErr_NoMemory
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:657,1
    - Dst: xc_get_device_group
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:664,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:669,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:670,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:675,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:676,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:679,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:682,1
    - Dst: PyErr_NoMemory
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:683,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:691,1
    - Dst: strcat
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:692,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:695,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:697,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 701
    functionName: pyxc_get_device_group
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - snprintf
    - calloc
    - free
    - PyErr_NoMemory
    - PyArg_ParseTuple
    - Py_BuildValue
    - pyxc_error_to_exception
    - xc_get_device_group
    - strcat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_get_device_group(XcObject *self,\n                                         PyObject
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:713,1
    - Dst: xc_dom_gnttab_seed
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:719,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 703
    functionDepth: 5
    functionLinenumber: 703
    functionLinenumberEnd: 725
    functionName: pyxc_gnttab_hvm_seed
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    - xc_dom_gnttab_seed
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_gnttab_hvm_seed(XcObject *self,\n\t\t\t\t      PyObject
      *args,\n\t\t\t\t      PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:736,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:740,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:741,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 744
    functionName: pyxc_evtchn_alloc_unbound
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - PyArg_ParseTupleAndKeywords
    - xc_evtchn_alloc_unbound
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_evtchn_alloc_unbound(XcObject *self,\n                                           PyObject
      *args,\n                                           PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:754,1
    - Dst: xc_evtchn_reset
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:757,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:758,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 762
    functionName: pyxc_evtchn_reset
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - xc_evtchn_reset
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_evtchn_reset(XcObject *self,\n                                   PyObject
      *args,\n                                   PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:774,1
    - Dst: xc_physdev_map_pirq
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:777,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:779,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 781
    functionName: pyxc_physdev_map_pirq
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_physdev_map_pirq
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromUnsignedLong
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_physdev_map_pirq(PyObject *self,\n                                       PyObject
      *args,\n                                       PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:792,1
    - Dst: xc_physdev_pci_access_modify
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:796,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:799,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 803
    functionName: pyxc_physdev_pci_access_modify
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - pyxc_error_to_exception
    - xc_physdev_pci_access_modify
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_physdev_pci_access_modify(XcObject *self,\n                                                PyObject
      *args,\n                                                PyObject *kwds)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:817,1
    - Dst: malloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:819,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:822,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:825,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:826,1
    - Dst: realloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:835,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:841,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:847,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: pyxc_readconsolering
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - PyArg_ParseTupleAndKeywords
    - xc_readconsolering
    - PyBytes_FromStringAndSize
    - pyxc_error_to_exception
    - realloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_readconsolering(XcObject *self,\n                                      PyObject
      *args,\n                                      PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pages
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 856
    functionName: pages_to_kib
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pages_to_kib(unsigned long pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:863,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:866,1
    - Dst: pages_to_kib
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 867
    functionName: pyxc_pages_to_kib
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    - pages_to_kib
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_pages_to_kib(XcObject *self, PyObject *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:879,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:880,1
    - Dst: sprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:889,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:894,1
    - Dst: sprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:896,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:898,1
    - Dst: sprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:900,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:904,1
    - Dst: pages_to_kib
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:909,1
    - Dst: pages_to_kib
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:910,1
    - Dst: pages_to_kib
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:911,1
    - Dst: arch_capabilities_arm_sve
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:921,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:922,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:925,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:929,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:930,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:931,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 938
    functionName: pyxc_physinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - sprintf
    - xc_physinfo
    - pages_to_kib
    - PyDict_SetItemString
    - Py_BuildValue
    - PyLong_FromUnsignedLong
    - pyxc_error_to_exception
    - arch_capabilities_arm_sve
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_physinfo(XcObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:948,1
    - Dst: malloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:951,1
    - Dst: xc_getcpuinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:955,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:957,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:958,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:961,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:964,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:965,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:966,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 973
    functionName: pyxc_getcpuinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_getcpuinfo
    - free
    - PyList_New
    - malloc
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    - Py_DECREF
    - pyxc_error_to_exception
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_getcpuinfo(XcObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:982,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:985,1
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:989,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:993,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:994,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:995,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1000,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1004,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1005,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1006,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1011,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1015,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1016,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1017,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1022,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1026,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1027,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1028,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1032,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1034,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1035,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1037,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1038,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1040,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1041,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1044,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1045,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1046
    functionName: pyxc_topologyinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_cputopoinfo
    - PyLongOrInt_FromLong
    - calloc
    - free
    - PyList_New
    - PyDict_SetItemString
    - Py_DECREF
    - Py_BuildValue
    - pyxc_error_to_exception
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_topologyinfo(XcObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_numainfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1058,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1061,1
    - Dst: calloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1062,1
    - Dst: xc_numainfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1066,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1070,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1071,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1072,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1073,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1080,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1081,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1082,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1085,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1086,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1087,1
    - Dst: xc_availheap
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1090,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1091,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1092,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1093,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1096,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1103,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1107,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1108,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1109,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1112,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1113,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1116,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1118,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1119,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1121,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1122,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1124,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1125,1
    - Dst: PyDict_SetItemString
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1127,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1129,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1132,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1133,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1135
    functionName: pyxc_numainfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_numainfo
    - PyLongOrInt_FromLong
    - calloc
    - free
    - PyList_New
    - PyDict_SetItemString
    - Py_DECREF
    - Py_BuildValue
    - pyxc_error_to_exception
    - PyList_Append
    - xc_availheap
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_numainfo(XcObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1143,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1146,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1148,1
    - Dst: alloca
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1150,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1152,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1137
    functionDepth: 3
    functionLinenumber: 1137
    functionLinenumberEnd: 1155
    functionName: pyxc_xenbuildid
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_version
    - Py_BuildValue
    - pyxc_error_to_exception
    - alloca
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_xenbuildid(XcObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1169,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1171,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1172,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1174,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1175,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1177,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1178,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1180,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1181,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1183,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1184,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1186,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1187,1
    - Dst: snprintf
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1189,1
    - Dst: xc_version
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1191,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1193,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1195,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1208
    functionName: pyxc_xeninfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_version
    - snprintf
    - Py_BuildValue
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_xeninfo(XcObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1221,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1225,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1226,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1210
    functionDepth: 2
    functionLinenumber: 1210
    functionLinenumberEnd: 1230
    functionName: pyxc_shadow_control
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_shadow_control
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_shadow_control(PyObject *self,\n                                     PyObject
      *args,\n                                     PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1244,1
    - Dst: xc_shadow_control
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1255,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1256,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1260
    functionName: pyxc_shadow_mem_control
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - xc_shadow_control
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_shadow_mem_control(PyObject *self,\n                                         PyObject
      *args,\n                                         PyObject *kwds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_sched_id
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1265,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1266,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1269
    functionName: pyxc_sched_id_get
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_sched_id
    - PyErr_SetFromErrno
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_sched_id_get(XcObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1284,1
    - Dst: xc_sched_credit_domain_set
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1291,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1292,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1296
    functionName: pyxc_sched_credit_domain_set
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - xc_sched_credit_domain_set
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_sched_credit_domain_set(XcObject *self,\n                                              PyObject
      *args,\n                                              PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1303,1
    - Dst: xc_sched_credit_domain_get
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1306,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1307,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1312
    functionName: pyxc_sched_credit_domain_get
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_sched_credit_domain_get
    - Py_BuildValue
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_sched_credit_domain_get(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1327,1
    - Dst: xc_sched_credit2_domain_set
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1334,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1335,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1339
    functionName: pyxc_sched_credit2_domain_set
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - xc_sched_credit2_domain_set
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_sched_credit2_domain_set(XcObject *self,\n                                              PyObject
      *args,\n                                              PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1346,1
    - Dst: xc_sched_credit2_domain_get
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1349,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1350,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1354
    functionName: pyxc_sched_credit2_domain_get
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_sched_credit2_domain_get
    - Py_BuildValue
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_sched_credit2_domain_get(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1361,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1364,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1365,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1369
    functionName: pyxc_domain_setmaxmem
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_domain_setmaxmem
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_setmaxmem(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1376,1
    - Dst: xc_domain_set_pod_target
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1381,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1383,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1371
    functionDepth: 3
    functionLinenumber: 1371
    functionLinenumberEnd: 1387
    functionName: pyxc_domain_set_target_mem
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - pyxc_error_to_exception
    - xc_domain_set_pod_target
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_set_target_mem(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1394,1
    - Dst: xc_domain_set_memmap_limit
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1397,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1398,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1389
    functionDepth: 3
    functionLinenumber: 1389
    functionLinenumberEnd: 1402
    functionName: pyxc_domain_set_memmap_limit
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    - pyxc_error_to_exception
    - xc_domain_set_memmap_limit
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_set_memmap_limit(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1413,1
    - Dst: xc_domain_ioport_permission
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1417,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1420,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1424
    functionName: pyxc_domain_ioport_permission
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - pyxc_error_to_exception
    - PyArg_ParseTupleAndKeywords
    - xc_domain_ioport_permission
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_ioport_permission(XcObject *self,\n                                               PyObject
      *args,\n                                               PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1436,1
    - Dst: xc_domain_irq_permission
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1440,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1443,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1447
    functionName: pyxc_domain_irq_permission
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_domain_irq_permission
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_irq_permission(PyObject *self,\n                                            PyObject
      *args,\n                                            PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1459,1
    - Dst: xc_domain_iomem_permission
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1463,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1466,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1470
    functionName: pyxc_domain_iomem_permission
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_domain_iomem_permission
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_iomem_permission(PyObject *self,\n                                               PyObject
      *args,\n                                               PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1477,1
    - Dst: xc_domain_set_time_offset
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1480,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1481,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1485
    functionName: pyxc_domain_set_time_offset
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    - pyxc_error_to_exception
    - xc_domain_set_time_offset
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_set_time_offset(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1491,1
    - Dst: xc_domain_set_tsc_info
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1494,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1495,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1487
    functionDepth: 2
    functionLinenumber: 1487
    functionLinenumberEnd: 1499
    functionName: pyxc_domain_set_tsc_info
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_domain_set_tsc_info
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_domain_set_tsc_info(XcObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1510,1
    - Dst: xc_domain_send_trigger
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1514,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1515,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1519
    functionName: pyxc_domain_send_trigger
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - xc_domain_send_trigger
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_domain_send_trigger(XcObject *self,\n                                          PyObject
      *args,\n                                          PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1529,1
    - Dst: xc_send_debug_keys
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1532,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1533,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1537
    functionName: pyxc_send_debug_keys
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - pyxc_error_to_exception
    - PyArg_ParseTupleAndKeywords
    - xc_send_debug_keys
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_send_debug_keys(XcObject *self,\n                                      PyObject
      *args,\n                                      PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1544,1
    - Dst: fn
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1547,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1548,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1539
    functionDepth: 2
    functionLinenumber: 1539
    functionLinenumberEnd: 1552
    functionName: dom_op
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 6
    functionsReached:
    - PyArg_ParseTuple
    - fn
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *dom_op(XcObject *self, PyObject *args,\n                        int
      (*fn)(xc_interface*, uint32_t))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1559,1
    - Dst: xc_memshr_control
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1562,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1563,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1554
    functionDepth: 2
    functionLinenumber: 1554
    functionLinenumberEnd: 1567
    functionName: pyxc_dom_set_memshr
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_memshr_control
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_dom_set_memshr(XcObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1575,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1577,1
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1579,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1584,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1586,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - cpumap
    argTypes:
    - XcObject*
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1593
    functionName: cpumap_to_cpulist
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - PyList_New
    - Py_DECREF
    - pyxc_error_to_exception
    - PyList_Append
    - xc_get_max_cpus
    linkageType: ''
    returnType: PyObject
    signature: PyObject *cpumap_to_cpulist(XcObject *self, xc_cpumap_t cpumap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1603,1
    - Dst: xc_cpupool_create
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1607,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1608,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1611
    functionName: pyxc_cpupool_create
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - xc_cpupool_create
    - PyArg_ParseTupleAndKeywords
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_cpupool_create(XcObject *self,\n                                     PyObject
      *args,\n                                     PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1618,1
    - Dst: xc_cpupool_destroy
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1621,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1622,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XcObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1626
    functionName: pyxc_cpupool_destroy
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - xc_cpupool_destroy
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_cpupool_destroy(XcObject *self,\n                                      PyObject
      *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1635,1
    - Dst: xc_cpupool_getinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1638,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1641,1
    - Dst: cpumap_to_cpulist
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1646,1
    - Dst: xc_cpupool_infofree
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1648,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1652,1
    - Dst: PyList_Append
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1656,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1628
    functionDepth: 3
    functionLinenumber: 1628
    functionLinenumberEnd: 1661
    functionName: pyxc_cpupool_getinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_cpupool_getinfo
    - PyList_New
    - cpumap_to_cpulist
    - Py_BuildValue
    - Py_DECREF
    - PyList_Append
    - xc_cpupool_infofree
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_cpupool_getinfo(XcObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1672,1
    - Dst: xc_cpupool_addcpu
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1676,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1677,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1681
    functionName: pyxc_cpupool_addcpu
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - pyxc_error_to_exception
    - xc_cpupool_addcpu
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_cpupool_addcpu(XcObject *self,\n                                     PyObject
      *args,\n                                     PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1692,1
    - Dst: xc_cpupool_removecpu
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1696,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1697,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1701
    functionName: pyxc_cpupool_removecpu
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - pyxc_error_to_exception
    - PyArg_ParseTupleAndKeywords
    - xc_cpupool_removecpu
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_cpupool_removecpu(XcObject *self,\n                                        PyObject
      *args,\n                                        PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1711,1
    - Dst: xc_cpupool_movedomain
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1715,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1716,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1720
    functionName: pyxc_cpupool_movedomain
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - xc_cpupool_movedomain
    - pyxc_error_to_exception
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyxc_cpupool_movedomain(XcObject *self,\n                                         PyObject
      *args,\n                                         PyObject *kwds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpupool_freeinfo
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1727,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1729,1
    - Dst: cpumap_to_cpulist
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1731,1
    - Dst: free
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1722
    functionDepth: 3
    functionLinenumber: 1722
    functionLinenumberEnd: 1736
    functionName: pyxc_cpupool_freeinfo
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - free
    - xc_cpupool_freeinfo
    - cpumap_to_cpulist
    - pyxc_error_to_exception
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyxc_cpupool_freeinfo(XcObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1748,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1752,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1754,1
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1757,1
    - Dst: strlen
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1757,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1759,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1763,1
    - Dst: PyLongOrInt_FromLong
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1738
    functionDepth: 4
    functionLinenumber: 1738
    functionLinenumberEnd: 1767
    functionName: pyflask_context_to_sid
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyLongOrInt_FromLong
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - xc_interface_open
    - xc_flask_context_to_sid
    - strlen
    - xc_interface_close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyflask_context_to_sid(PyObject *self, PyObject *args,\n
      \                                                                PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1780,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1784,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1786,1
    - Dst: xc_flask_sid_to_context
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1789,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1791,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1795,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1769
    functionDepth: 4
    functionLinenumber: 1769
    functionLinenumberEnd: 1799
    functionName: pyflask_sid_to_context
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - xc_interface_open
    - xc_flask_sid_to_context
    - Py_BuildValue
    - xc_interface_close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyflask_sid_to_context(PyObject *self, PyObject *args,\n
      \                                                                PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1810,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1813,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1815,1
    - Dst: xc_flask_load
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1818,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1820,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1824,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1827,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1801
    functionDepth: 4
    functionLinenumber: 1801
    functionLinenumberEnd: 1828
    functionName: pyflask_load
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - xc_interface_open
    - Py_BuildValue
    - xc_interface_close
    - xc_flask_load
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyflask_load(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1835,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1837,1
    - Dst: xc_flask_getenforce
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1840,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1842,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1846,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1830
    functionDepth: 4
    functionLinenumber: 1830
    functionLinenumberEnd: 1850
    functionName: pyflask_getenforce
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - xc_interface_open
    - xc_flask_getenforce
    - Py_BuildValue
    - xc_interface_close
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyflask_getenforce(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1861,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1865,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1867,1
    - Dst: xc_flask_setenforce
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1870,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1872,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1876,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1852
    functionDepth: 4
    functionLinenumber: 1852
    functionLinenumberEnd: 1880
    functionName: pyflask_setenforce
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_flask_setenforce
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - xc_interface_open
    - Py_BuildValue
    - xc_interface_close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyflask_setenforce(PyObject *self, PyObject *args,\n                                                            PyObject
      *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1896,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1901,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1903,1
    - Dst: xc_flask_access
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1906,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1909,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1913,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:1916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1882
    functionDepth: 4
    functionLinenumber: 1882
    functionLinenumberEnd: 1917
    functionName: pyflask_access
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_flask_access
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - xc_interface_open
    - Py_BuildValue
    - xc_interface_close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *pyflask_access(PyObject *self, PyObject *args,\n                                                       PyObject
      *kwds)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:2461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2469
    functionName: PyXc_new
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyXc_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:2474,1
    - Dst: pyxc_error_to_exception
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:2475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - XcObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2471
    functionDepth: 4
    functionLinenumber: 2471
    functionLinenumberEnd: 2480
    functionName: PyXc_init
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_interface_open
    - pyxc_error_to_exception
    linkageType: ''
    returnType: int
    signature: int PyXc_init(XcObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_close
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:2485,1
    - Dst: Py_TYPE
      Src: /src/xen/tools/python/xen/lowlevel/xc/xc.c:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - XcObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2482
    functionDepth: 4
    functionLinenumber: 2482
    functionLinenumberEnd: 2490
    functionName: PyXc_dealloc
    functionSourceFile: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyXc_dealloc(XcObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: LIST_HEAD
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: INIT_LIST_HEAD
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_LIST_HEAD(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: list_top
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_top(head, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - new
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: __list_add
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_add(struct list_head *new,\n\t\t\t      struct list_head
      *prev,\n\t\t\t      struct list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: list_add
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: list_add_tail
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: __list_del
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __list_del(struct list_head * prev, struct list_head * next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/tools/xenstored/list.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: list_del
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 1
    functionsReached:
    - __list_del
    linkageType: ''
    returnType: void
    signature: void list_del(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/tools/xenstored/list.h:123,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/list.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: list_del_init
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached:
    - __list_del
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void list_del_init(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/tools/xenstored/list.h:134,1
    - Dst: list_add
      Src: /src/xen/tools/xenstored/list.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: list_move
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached:
    - __list_del
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_move(struct list_head *list, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/tools/xenstored/list.h:146,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/list.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: list_move_tail
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached:
    - __list_del
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void list_move_tail(struct list_head *list,\n\t\t\t\t  struct list_head
      *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: list_empty
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: __list_splice
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_splice(struct list_head *list,\n\t\t\t\t struct list_head
      *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/list.h:180,1
    - Dst: __list_splice
      Src: /src/xen/tools/xenstored/list.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: list_splice
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 1
    functionsReached:
    - list_empty
    - __list_splice
    linkageType: ''
    returnType: void
    signature: void list_splice(struct list_head *list, struct list_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/list.h:194,1
    - Dst: __list_splice
      Src: /src/xen/tools/xenstored/list.h:195,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/list.h:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: list_splice_init
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_empty
    - __list_splice
    linkageType: ''
    returnType: void
    signature: "void list_splice_init(struct list_head *list,\n\t\t\t\t    struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: list_entry
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: list_for_each
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: list_for_each_prev
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: list_for_each_safe
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: list_for_each_entry_reverse
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_reverse(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: list_for_each_entry_continue
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_continue(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/xen/tools/xenstored/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe(pos, n, head, member)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:49,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:55,1
    - Dst: strncmp
      Src: /src/xen/tools/xenstored/watch.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - child
    - parent
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: is_child
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - strncmp
    - streq
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool is_child(const char *child, const char *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - watch
    - name
    argTypes:
    - struct watch*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: get_watch_path
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_watch_path(const struct watch *watch, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: perm_for_conn
      Src: /src/xen/tools/xenstored/watch.c:84,1
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/watch.c:90,1
    - Dst: perm_for_conn_from_node
      Src: /src/xen/tools/xenstored/watch.c:95,1
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/watch.c:101,1
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/watch.c:104,1
    - Dst: perm_for_conn_from_node
      Src: /src/xen/tools/xenstored/watch.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - conn
    - ctx
    - name
    - node
    - perms
    argTypes:
    - struct connection*
    - void*
    - char*
    - struct node*
    - struct node_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 112
    functionName: watch_permitted
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - get_parent
    - perm_for_conn_from_node
    - read_node_const
    - perm_for_conn
    linkageType: ''
    returnType: bool
    signature: "bool watch_permitted(struct connection *conn, const void *ctx,\n\t\t\t
      \   const char *name, const struct node *node,\n\t\t\t    struct node_perms
      *perms)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_watches
      Src: /src/xen/tools/xenstored/watch.c:130,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/watch.c:134,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/watch.c:137,1
    - Dst: watch_permitted
      Src: /src/xen/tools/xenstored/watch.c:138,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/watch.c:141,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:143,1
    - Dst: send_event
      Src: /src/xen/tools/xenstored/watch.c:144,1
    - Dst: get_watch_path
      Src: /src/xen/tools/xenstored/watch.c:145,1
    - Dst: is_child
      Src: /src/xen/tools/xenstored/watch.c:148,1
    - Dst: send_event
      Src: /src/xen/tools/xenstored/watch.c:149,1
    - Dst: get_watch_path
      Src: /src/xen/tools/xenstored/watch.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - conn
    - ctx
    - name
    - node
    - exact
    - perms
    argTypes:
    - struct connection*
    - void*
    - char*
    - struct node*
    - bool
    - struct node_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: fire_watches
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - get_watch_path
    - watch_permitted
    - domain_is_unprivileged
    - streq
    - queue_watches
    - send_event
    - is_child
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void fire_watches(struct connection *conn, const void *ctx, const
      char *name,\n\t\t  const struct node *node, bool exact, struct node_perms *perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_destroy
      Src: /src/xen/tools/xenstored/watch.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _watch
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: destroy_watch
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - trace_destroy
    linkageType: ''
    returnType: int
    signature: int destroy_watch(void *_watch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstarts
      Src: /src/xen/tools/xenstored/watch.c:166,1
    - Dst: strstarts
      Src: /src/xen/tools/xenstored/watch.c:166,1
    - Dst: canonicalize
      Src: /src/xen/tools/xenstored/watch.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - conn
    - ctx
    - path
    - relative
    argTypes:
    - struct connection*
    - void*
    - char**
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: check_watch_path
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - strstarts
    - canonicalize
    linkageType: ''
    returnType: int
    signature: "int check_watch_path(struct connection *conn, const void *ctx,\n\t\t\t
      \   const char **path, bool *relative)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/xen/tools/xenstored/watch.c:178,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/watch.c:181,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/watch.c:182,1
    - Dst: domain_memory_add
      Src: /src/xen/tools/xenstored/watch.c:185,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:185,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:185,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:189,1
    - Dst: get_implicit_path
      Src: /src/xen/tools/xenstored/watch.c:189,1
    - Dst: domain_watch_inc
      Src: /src/xen/tools/xenstored/watch.c:191,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/watch.c:192,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/watch.c:193,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/watch.c:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - conn
    - path
    - token
    - relative
    - no_quota_check
    argTypes:
    - struct connection*
    - char*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 201
    functionName: add_watch
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - domain_memory_add
    - talloc
    - talloc_strdup
    - talloc_free
    - strlen
    - get_implicit_path
    - domain_watch_inc
    - talloc_set_destructor
    - list_add_tail
    linkageType: ''
    returnType: struct watch
    signature: "struct watch *add_watch(struct connection *conn, const char *path,\n\t\t\t
      \      const char *token, bool relative,\n\t\t\t       bool no_quota_check)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/watch.c:209,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/watch.c:209,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/watch.c:209,1
    - Dst: check_watch_path
      Src: /src/xen/tools/xenstored/watch.c:212,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/watch.c:217,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:218,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:219,1
    - Dst: domain_watch
      Src: /src/xen/tools/xenstored/watch.c:223,1
    - Dst: add_watch
      Src: /src/xen/tools/xenstored/watch.c:226,1
    - Dst: trace_create
      Src: /src/xen/tools/xenstored/watch.c:230,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/watch.c:231,1
    - Dst: send_event
      Src: /src/xen/tools/xenstored/watch.c:237,1
    - Dst: get_watch_path
      Src: /src/xen/tools/xenstored/watch.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 241
    functionName: do_watch
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - add_watch
    - send_ack
    - get_watch_path
    - ARRAY_SIZE
    - trace_create
    - streq
    - get_strings
    - domain_watch
    - send_event
    - check_watch_path
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int do_watch(const void *ctx, struct connection *conn, struct buffered_data
      *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/watch.c:250,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/watch.c:250,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/watch.c:250,1
    - Dst: canonicalize
      Src: /src/xen/tools/xenstored/watch.c:253,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/watch.c:256,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:257,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/watch.c:257,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/watch.c:258,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/watch.c:259,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:260,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:261,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/watch.c:262,1
    - Dst: domain_watch_dec
      Src: /src/xen/tools/xenstored/watch.c:263,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/watch.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 269
    functionName: do_unwatch
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - send_ack
    - domain_watch_dec
    - ARRAY_SIZE
    - streq
    - get_strings
    - list_del
    - strlen
    - domain_memory_add_nochk
    - talloc_free
    - canonicalize
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int do_unwatch(const void *ctx, struct connection *conn,\n\t       struct
      buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/watch.c:275,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/watch.c:276,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/watch.c:277,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:277,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:278,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/watch.c:279,1
    - Dst: domain_watch_dec
      Src: /src/xen/tools/xenstored/watch.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: conn_delete_all_watches
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - domain_watch_dec
    - list_top
    - list_del
    - strlen
    - domain_memory_add_nochk
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void conn_delete_all_watches(struct connection *conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/watch.c:295,1
    - Dst: get_watch_path
      Src: /src/xen/tools/xenstored/watch.c:299,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:300,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/watch.c:301,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/xenstored/watch.c:303,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/watch.c:304,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/watch.c:306,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/watch.c:309,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/watch.c:311,1
    - Dst: dump_state_align
      Src: /src/xen/tools/xenstored/watch.c:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - fp
    - conn
    - conn_id
    argTypes:
    - FILE*
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 320
    functionName: dump_state_watches
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - dump_state_align
    - ROUNDUP
    - get_watch_path
    - strlen
    - fwrite
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: "char *dump_state_watches(FILE *fp, struct connection *conn,\n\t\t\t
      \      unsigned int conn_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_by_id
      Src: /src/xen/tools/xenstored/watch.c:329,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/watch.c:331,1
    - Dst: check_watch_path
      Src: /src/xen/tools/xenstored/watch.c:337,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/watch.c:339,1
    - Dst: add_watch
      Src: /src/xen/tools/xenstored/watch.c:341,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/watch.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 343
    functionName: read_state_watch
    functionSourceFile: /src/xen/tools/xenstored/watch.c
    functionUses: 0
    functionsReached:
    - barf
    - add_watch
    - get_connection_by_id
    - check_watch_path
    linkageType: ''
    returnType: void
    signature: void read_state_watch(const void *ctx, const void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: lu_destroy
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lu_destroy(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/lu.c:49,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/lu.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: lu_begin
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: char
    signature: char *lu_begin(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: lu_get_connection
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct connection
    signature: struct connection *lu_get_connection(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/lu.c:67,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/lu.c:72,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/lu.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts:
    - condition: (lu_status)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/tools/xenstored/lu.c
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: lu_write_response
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - fwrite
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int lu_write_response(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: lu_is_pending
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lu_is_pending(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/lu.c:92,1
    - Dst: xenstore_rundir
      Src: /src/xen/tools/xenstored/lu.c:93,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:95,1
    - Dst: open
      Src: /src/xen/tools/xenstored/lu.c:97,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:99,1
    - Dst: fstat
      Src: /src/xen/tools/xenstored/lu.c:100,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:101,1
    - Dst: talloc_size
      Src: /src/xen/tools/xenstored/lu.c:106,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:108,1
    - Dst: fdopen
      Src: /src/xen/tools/xenstored/lu.c:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - void*
    - struct lu_dump_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 111
    functionName: lu_get_dump_state
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - xenstore_rundir
    - open
    - barf
    - talloc_size
    - fdopen
    - talloc_asprintf
    - fstat
    linkageType: ''
    returnType: void
    signature: void lu_get_dump_state(void *ctx, struct lu_dump_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/xen/tools/xenstored/lu.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: lu_dump_close
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void lu_dump_close(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/lu.c:120,1
    - Dst: lu_dump_close
      Src: /src/xen/tools/xenstored/lu.c:122,1
    - Dst: unlink
      Src: /src/xen/tools/xenstored/lu.c:124,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/lu.c:125,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/lu.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct lu_dump_state*
    assertStmts:
    - condition: (state->filename != NULL)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/xen/tools/xenstored/lu.c
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: lu_close_dump_state
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - assert
    - unlink
    - lu_dump_close
    linkageType: ''
    returnType: void
    signature: void lu_close_dump_state(struct lu_dump_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:133,1
    - Dst: talloc_realloc_size
      Src: /src/xen/tools/xenstored/lu.c:136,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:138,1
    - Dst: fread
      Src: /src/xen/tools/xenstored/lu.c:142,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - state
    - size
    argTypes:
    - void*
    - struct lu_dump_state*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: lu_read_data
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - barf
    - fread
    - talloc_realloc_size
    linkageType: ''
    returnType: void
    signature: "void lu_read_data(void *ctx, struct lu_dump_state *state,\n\t\t\t
      unsigned int size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/xen/tools/xenstored/lu.c:152,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu.c:156,1
    - Dst: lu_get_dump_state
      Src: /src/xen/tools/xenstored/lu.c:157,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/lu.c:159,1
    - Dst: lu_read_data
      Src: /src/xen/tools/xenstored/lu.c:161,1
    - Dst: be32toh
      Src: /src/xen/tools/xenstored/lu.c:163,1
    - Dst: memcmp
      Src: /src/xen/tools/xenstored/lu.c:164,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/lu.c:167,1
    - Dst: lu_read_data
      Src: /src/xen/tools/xenstored/lu.c:170,1
    - Dst: lu_read_data
      Src: /src/xen/tools/xenstored/lu.c:174,1
    - Dst: read_state_global
      Src: /src/xen/tools/xenstored/lu.c:178,1
    - Dst: read_state_connection
      Src: /src/xen/tools/xenstored/lu.c:181,1
    - Dst: read_state_watch
      Src: /src/xen/tools/xenstored/lu.c:184,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/lu.c:187,1
    - Dst: read_state_node
      Src: /src/xen/tools/xenstored/lu.c:190,1
    - Dst: read_state_domain
      Src: /src/xen/tools/xenstored/lu.c:193,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/lu.c:196,1
    - Dst: lu_close_dump_state
      Src: /src/xen/tools/xenstored/lu.c:202,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/lu.c:204,1
    - Dst: check_domains
      Src: /src/xen/tools/xenstored/lu.c:211,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 212
    functionName: lu_read_state
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - check_domains
    - xprintf
    - read_state_global
    - memcmp
    - read_state_watch
    - lu_read_data
    - lu_get_dump_state
    - read_state_node
    - syslog
    - lu_close_dump_state
    - barf
    - talloc_new
    - read_state_connection
    - be32toh
    - read_state_domain
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void lu_read_state(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu.c:216,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/lu.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - void*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: lu_abort
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - syslog
    - talloc_free
    linkageType: ''
    returnType: char
    signature: char *lu_abort(const void *ctx, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu.c:230,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/lu.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - conn
    - cmdline
    argTypes:
    - void*
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: lu_cmdline
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - syslog
    linkageType: ''
    returnType: char
    signature: "char *lu_cmdline(const void *ctx, struct connection *conn,\n\t\t\t
      \     const char *cmdline)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xenstored/lu.c:245,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/lu.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: lu_check_lu_allowed
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - time
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool lu_check_lu_allowed(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xenstored/lu.c:270,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/lu.c:272,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/lu.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: lu_reject_reason
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - time
    - talloc_asprintf
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: char *lu_reject_reason(const void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/lu.c:290,1
    - Dst: xenstore_rundir
      Src: /src/xen/tools/xenstored/lu.c:291,1
    - Dst: open
      Src: /src/xen/tools/xenstored/lu.c:295,1
    - Dst: fdopen
      Src: /src/xen/tools/xenstored/lu.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: lu_dump_open
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    - xenstore_rundir
    - open
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: FILE *lu_dump_open(const void *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lu_dump_open
      Src: /src/xen/tools/xenstored/lu.c:309,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/lu.c:313,1
    - Dst: htobe32
      Src: /src/xen/tools/xenstored/lu.c:314,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/lu.c:316,1
    - Dst: dump_state_global
      Src: /src/xen/tools/xenstored/lu.c:321,1
    - Dst: dump_state_connections
      Src: /src/xen/tools/xenstored/lu.c:324,1
    - Dst: dump_state_nodes
      Src: /src/xen/tools/xenstored/lu.c:327,1
    - Dst: dump_state_domains
      Src: /src/xen/tools/xenstored/lu.c:330,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/lu.c:336,1
    - Dst: lu_dump_close
      Src: /src/xen/tools/xenstored/lu.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - void*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 343
    functionName: lu_dump_state
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - dump_state_connections
    - dump_state_global
    - lu_dump_close
    - dump_state_nodes
    - dump_state_domains
    - fwrite
    - memcpy
    - lu_dump_open
    - htobe32
    linkageType: ''
    returnType: char
    signature: char *lu_dump_state(const void *ctx, struct connection *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/tools/xenstored/lu.c:354,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/lu.c:356,1
    - Dst: strtok
      Src: /src/xen/tools/xenstored/lu.c:362,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:364,1
    - Dst: strtok
      Src: /src/xen/tools/xenstored/lu.c:367,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:376,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/lu.c:380,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/lu.c:384,1
    - Dst: domain_deinit
      Src: /src/xen/tools/xenstored/lu.c:390,1
    - Dst: lu_exec
      Src: /src/xen/tools/xenstored/lu.c:392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 393
    functionName: lu_activate_binary
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - isspace
    - lu_exec
    - domain_deinit
    - talloc_array
    - strcmp
    - memcpy
    - strtok
    linkageType: ''
    returnType: char
    signature: char *lu_activate_binary(const void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xenstored/lu.c:397,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/lu.c:411,1
    - Dst: lu_check_lu_allowed
      Src: /src/xen/tools/xenstored/lu.c:413,1
    - Dst: lu_reject_reason
      Src: /src/xen/tools/xenstored/lu.c:417,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/lu.c:422,1
    - Dst: lu_dump_state
      Src: /src/xen/tools/xenstored/lu.c:424,1
    - Dst: lu_activate_binary
      Src: /src/xen/tools/xenstored/lu.c:427,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/lu.c:438,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/lu.c:438,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/lu.c:440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct delayed_request*
    assertStmts:
    - condition: (lu_status->conn == conn)
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/xen/tools/xenstored/lu.c
    - condition: (req->in == lu_status->in)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/xen/tools/xenstored/lu.c
    constantsTouched: []
    func_position:
      end: 443
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 443
    functionName: do_lu_start
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - lu_dump_state
    - send_reply
    - time
    - lu_check_lu_allowed
    - lu_activate_binary
    - strlen
    - lu_reject_reason
    - assert
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: bool do_lu_start(struct delayed_request *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu.c:448,1
    - Dst: time
      Src: /src/xen/tools/xenstored/lu.c:464,1
    - Dst: delay_request
      Src: /src/xen/tools/xenstored/lu.c:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - ctx
    - conn
    - force
    - to
    - vers
    argTypes:
    - void*
    - struct connection*
    - bool
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 470
    functionName: lu_start
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - time
    - syslog
    - delay_request
    linkageType: ''
    returnType: char
    signature: "char *lu_start(const void *ctx, struct connection *conn,\n\t\t\t    bool
      force, unsigned int to, unsigned int vers)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:484,1
    - Dst: lu_abort
      Src: /src/xen/tools/xenstored/lu.c:486,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:489,1
    - Dst: lu_cmdline
      Src: /src/xen/tools/xenstored/lu.c:491,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:494,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:496,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:498,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/lu.c:500,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu.c:501,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/lu.c:503,1
    - Dst: lu_start
      Src: /src/xen/tools/xenstored/lu.c:508,1
    - Dst: lu_arch
      Src: /src/xen/tools/xenstored/lu.c:512,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/lu.c:519,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/lu.c:519,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 521
    functionName: do_control_lu
    functionSourceFile: /src/xen/tools/xenstored/lu.c
    functionUses: 0
    functionsReached:
    - lu_cmdline
    - send_reply
    - lu_abort
    - strcmp
    - lu_start
    - lu_arch
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_control_lu(const void *ctx, struct connection *conn, const
      char **vec,\n\t\t  int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: execvp
      Src: /src/xen/tools/xenstored/lu_daemon.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - void*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: lu_exec
    functionSourceFile: /src/xen/tools/xenstored/lu_daemon.c
    functionUses: 1
    functionsReached:
    - execvp
    linkageType: ''
    returnType: char
    signature: char *lu_exec(const void *ctx, int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu_daemon.c:31,1
    - Dst: stat
      Src: /src/xen/tools/xenstored/lu_daemon.c:33,1
    - Dst: lu_begin
      Src: /src/xen/tools/xenstored/lu_daemon.c:38,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/lu_daemon.c:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - conn
    - filename
    argTypes:
    - void*
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: lu_binary
    functionSourceFile: /src/xen/tools/xenstored/lu_daemon.c
    functionUses: 0
    functionsReached:
    - stat
    - talloc_strdup
    - lu_begin
    - syslog
    linkageType: ''
    returnType: char
    signature: "char *lu_binary(const void *ctx, struct connection *conn,\n\t\t\t
      \    const char *filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu_daemon.c:53,1
    - Dst: lu_binary
      Src: /src/xen/tools/xenstored/lu_daemon.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: lu_arch
    functionSourceFile: /src/xen/tools/xenstored/lu_daemon.c
    functionUses: 1
    functionsReached:
    - strcmp
    - lu_binary
    linkageType: ''
    returnType: char
    signature: "char *lu_arch(const void *ctx, struct connection *conn, const char
      **vec,\n\t\t    int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reason
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: TALLOC_ABORT
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TALLOC_ABORT(reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: discard_const_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: discard_const_p(type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: discard_const_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: discard_const_p(type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: TC_PTR_FROM_CHUNK
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TC_PTR_FROM_CHUNK(tc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:114,1
    - Dst: TALLOC_ABORT
      Src: /src/xen/tools/xenstored/talloc.c:116,1
    - Dst: TALLOC_ABORT
      Src: /src/xen/tools/xenstored/talloc.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: talloc_chunk_from_ptr
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - TALLOC_ABORT
    - discard_const_p
    linkageType: ''
    returnType: struct talloc_chunk
    signature: struct talloc_chunk *talloc_chunk_from_ptr(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - list
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: _TLIST_ADD
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TLIST_ADD(list, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - list
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: _TLIST_REMOVE
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TLIST_REMOVE(list, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: talloc_parent_chunk
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: struct talloc_chunk
    signature: struct talloc_chunk *talloc_parent_chunk(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:164,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: talloc_parent
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_parent_chunk
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: void
    signature: void *talloc_parent(const void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xenstored/talloc.c:183,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:195,1
    - Dst: _TLIST_ADD
      Src: /src/xen/tools/xenstored/talloc.c:203,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 209
    functionName: _talloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _TLIST_ADD
    - talloc_chunk_from_ptr
    - malloc
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: void
    signature: void *_talloc(const void *context, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: talloc_set_destructor
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 2
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: void
    signature: void talloc_set_destructor(const void *ptr, int (*destructor)(void
      *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: talloc_increase_ref_count
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: void
    signature: void talloc_increase_ref_count(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:242,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:243,1
    - Dst: _TLIST_REMOVE
      Src: /src/xen/tools/xenstored/talloc.c:247,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: talloc_reference_destructor
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _TLIST_REMOVE
    - talloc_chunk_from_ptr
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int talloc_reference_destructor(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:267,1
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:268,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/talloc.c:275,1
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:276,1
    - Dst: _TLIST_ADD
      Src: /src/xen/tools/xenstored/talloc.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - context
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 279
    functionName: talloc_reference
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _TLIST_ADD
    - talloc_chunk_from_ptr
    - talloc_named_const
    - talloc_set_destructor
    - discard_const_p
    linkageType: ''
    returnType: void
    signature: void *talloc_reference(const void *context, const void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:288,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:301,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:304,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/talloc.c:312,1
    - Dst: _TLIST_REMOVE
      Src: /src/xen/tools/xenstored/talloc.c:313,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - context
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 316
    functionName: talloc_unreference
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _TLIST_REMOVE
    - talloc_chunk_from_ptr
    - TC_PTR_FROM_CHUNK
    - talloc_parent_chunk
    - talloc_free
    - talloc_set_destructor
    linkageType: ''
    returnType: int
    signature: int talloc_unreference(const void *context, const void *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_unreference
      Src: /src/xen/tools/xenstored/talloc.c:335,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:340,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:344,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:344,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:349,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:352,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:355,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:357,1
    - Dst: talloc_unreference
      Src: /src/xen/tools/xenstored/talloc.c:362,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/talloc.c:366,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - context
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 322
    functionDepth: 4
    functionLinenumber: 322
    functionLinenumberEnd: 369
    functionName: talloc_unlink
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - TC_PTR_FROM_CHUNK
    - talloc_parent_chunk
    - talloc_steal
    - talloc_unreference
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int talloc_unlink(const void *context, const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:378,1
    - Dst: talloc_vasprintf
      Src: /src/xen/tools/xenstored/talloc.c:379,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - fmt
    - ap
    argTypes:
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: talloc_set_name_v
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - talloc_vasprintf
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: void
    signature: void talloc_set_name_v(const void *ptr, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/talloc.c:391,1
    - Dst: talloc_set_name_v
      Src: /src/xen/tools/xenstored/talloc.c:392,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - fmt
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: talloc_set_name
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - talloc_set_name_v
    linkageType: ''
    returnType: void
    signature: void talloc_set_name(const void *ptr, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: talloc_set_name_const
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: void
    signature: void talloc_set_name_const(const void *ptr, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc
      Src: /src/xen/tools/xenstored/talloc.c:416,1
    - Dst: va_start
      Src: /src/xen/tools/xenstored/talloc.c:419,1
    - Dst: talloc_set_name_v
      Src: /src/xen/tools/xenstored/talloc.c:420,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - context
    - size
    - fmt
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: talloc_named
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - va_start
    - _talloc
    - va_end
    - talloc_set_name_v
    linkageType: ''
    returnType: void
    signature: void *talloc_named(const void *context, size_t size, const char *fmt,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc
      Src: /src/xen/tools/xenstored/talloc.c:435,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - context
    - size
    - name
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: talloc_named_const
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - _talloc
    - talloc_set_name_const
    linkageType: ''
    returnType: void
    signature: void *talloc_named_const(const void *context, size_t size, const char
      *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 458
    functionName: talloc_get_name
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: char
    signature: char *talloc_get_name(const void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:469,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/talloc.c:470,1
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 474
    functionName: talloc_check_name
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - strcmp
    - talloc_get_name
    - discard_const_p
    linkageType: ''
    returnType: void
    signature: void *talloc_check_name(const void *ptr, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_enable_null_tracking
      Src: /src/xen/tools/xenstored/talloc.c:485,1
    - Dst: _talloc
      Src: /src/xen/tools/xenstored/talloc.c:487,1
    - Dst: va_start
      Src: /src/xen/tools/xenstored/talloc.c:490,1
    - Dst: talloc_set_name_v
      Src: /src/xen/tools/xenstored/talloc.c:491,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 495
    functionName: talloc_init
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - va_start
    - talloc_set_name_v
    - _talloc
    - talloc_enable_null_tracking
    - va_end
    linkageType: ''
    returnType: void
    signature: void *talloc_init(const char *fmt, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:510,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:518,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:521,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:522,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:524,1
    - Dst: talloc_parent_chunk
      Src: /src/xen/tools/xenstored/talloc.c:526,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:527,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/talloc.c:529,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 532
    functionName: talloc_free_children
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - TC_PTR_FROM_CHUNK
    - talloc_parent_chunk
    - talloc_steal
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void talloc_free_children(const void *ptr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:551,1
    - Dst: talloc_reference_destructor
      Src: /src/xen/tools/xenstored/talloc.c:559,1
    - Dst: d
      Src: /src/xen/tools/xenstored/talloc.c:576,1
    - Dst: talloc_free_children
      Src: /src/xen/tools/xenstored/talloc.c:585,1
    - Dst: _TLIST_REMOVE
      Src: /src/xen/tools/xenstored/talloc.c:588,1
    - Dst: free
      Src: /src/xen/tools/xenstored/talloc.c:599,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 607
    functionName: talloc_free
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 11
    functionsReached:
    - _TLIST_REMOVE
    - talloc_chunk_from_ptr
    - free
    - talloc_free_children
    - d
    - talloc_reference_destructor
    linkageType: ''
    returnType: int
    signature: int talloc_free(const void *ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:620,1
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:630,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:633,1
    - Dst: malloc
      Src: /src/xen/tools/xenstored/talloc.c:644,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/talloc.c:646,1
    - Dst: free
      Src: /src/xen/tools/xenstored/talloc.c:647,1
    - Dst: realloc
      Src: /src/xen/tools/xenstored/talloc.c:650,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:674,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:674,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - context
    - ptr
    - size
    - name
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 613
    functionDepth: 5
    functionLinenumber: 613
    functionLinenumberEnd: 677
    functionName: _talloc_realloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - talloc_set_name_const
    - free
    - malloc
    - talloc_named_const
    - TC_PTR_FROM_CHUNK
    - realloc
    - talloc_free
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *_talloc_realloc(const void *context, void *ptr, size_t size,
      const char *name)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:696,1
    - Dst: _TLIST_REMOVE
      Src: /src/xen/tools/xenstored/talloc.c:700,1
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:710,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:713,1
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:716,1
    - Dst: _TLIST_REMOVE
      Src: /src/xen/tools/xenstored/talloc.c:720,1
    - Dst: _TLIST_ADD
      Src: /src/xen/tools/xenstored/talloc.c:731,1
    - Dst: discard_const_p
      Src: /src/xen/tools/xenstored/talloc.c:733,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - new_ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 734
    functionName: talloc_steal
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 2
    functionsReached:
    - _TLIST_REMOVE
    - _TLIST_ADD
    - talloc_chunk_from_ptr
    - discard_const_p
    linkageType: ''
    returnType: void
    signature: void *talloc_steal(const void *new_ctx, const void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:751,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:761,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 767
    functionName: talloc_total_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_total_size
    - talloc_chunk_from_ptr
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: off_t
    signature: off_t talloc_total_size(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:775,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:785,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 791
    functionName: talloc_total_blocks
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_chunk_from_ptr
    - talloc_total_blocks
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: off_t
    signature: off_t talloc_total_blocks(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 806
    functionName: talloc_reference_count
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: int
    signature: int talloc_reference_count(const void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:813,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:823,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:824,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:825,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:827,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:827,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:828,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:831,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:831,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:832,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:832,1
    - Dst: talloc_reference_count
      Src: /src/xen/tools/xenstored/talloc.c:833,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:833,1
    - Dst: talloc_report_depth
      Src: /src/xen/tools/xenstored/talloc.c:834,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ptr
    - f
    - depth
    argTypes:
    - void*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 838
    functionName: talloc_report_depth
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_reference_count
    - talloc_chunk_from_ptr
    - talloc_get_name
    - talloc_total_blocks
    - TC_PTR_FROM_CHUNK
    - talloc_total_size
    - talloc_report_depth
    - fprintf
    linkageType: ''
    returnType: void
    signature: void talloc_report_depth(const void *ptr, FILE *f, int depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:850,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:851,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:852,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:853,1
    - Dst: talloc_report_depth
      Src: /src/xen/tools/xenstored/talloc.c:855,1
    - Dst: fflush
      Src: /src/xen/tools/xenstored/talloc.c:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - f
    argTypes:
    - void*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 857
    functionName: talloc_report_full
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_total_blocks
    - talloc_get_name
    - talloc_report_depth
    - talloc_total_size
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void talloc_report_full(const void *ptr, FILE *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:871,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:872,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:873,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:874,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:876,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:879,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:880,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:880,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:881,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:881,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:882,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:882,1
    - Dst: fflush
      Src: /src/xen/tools/xenstored/talloc.c:884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ptr
    - f
    argTypes:
    - void*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 862
    functionDepth: 3
    functionLinenumber: 862
    functionLinenumberEnd: 885
    functionName: talloc_report
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - talloc_total_blocks
    - talloc_get_name
    - TC_PTR_FROM_CHUNK
    - talloc_total_size
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void talloc_report(const void *ptr, FILE *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:892,1
    - Dst: talloc_report
      Src: /src/xen/tools/xenstored/talloc.c:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 895
    functionName: talloc_report_null
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_total_size
    - talloc_report
    linkageType: ''
    returnType: void
    signature: void talloc_report_null(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:902,1
    - Dst: talloc_report_full
      Src: /src/xen/tools/xenstored/talloc.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 900
    functionDepth: 5
    functionLinenumber: 900
    functionLinenumberEnd: 905
    functionName: talloc_report_null_full
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_total_size
    - talloc_report_full
    linkageType: ''
    returnType: void
    signature: void talloc_report_null_full(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 910
    functionDepth: 4
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: talloc_enable_null_tracking
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void talloc_enable_null_tracking(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:925,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:935,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:936,1
    - Dst: sprintf_append
      Src: /src/xen/tools/xenstored/talloc.c:938,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:942,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:942,1
    - Dst: sprintf_append
      Src: /src/xen/tools/xenstored/talloc.c:944,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:948,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:948,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:949,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:949,1
    - Dst: talloc_reference_count
      Src: /src/xen/tools/xenstored/talloc.c:950,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:950,1
    - Dst: talloc_report_depth_str
      Src: /src/xen/tools/xenstored/talloc.c:952,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ptr
    - pps
    - plen
    - pbuflen
    - depth
    argTypes:
    - void*
    - char**
    - ssize_t*
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 956
    functionName: talloc_report_depth_str
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_reference_count
    - talloc_chunk_from_ptr
    - sprintf_append
    - talloc_report_depth_str
    - talloc_get_name
    - talloc_total_blocks
    - TC_PTR_FROM_CHUNK
    - talloc_total_size
    linkageType: ''
    returnType: void
    signature: void talloc_report_depth_str(const void *ptr, char **pps, ssize_t *plen,
      size_t *pbuflen, int depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sprintf_append
      Src: /src/xen/tools/xenstored/talloc.c:971,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:973,1
    - Dst: talloc_total_size
      Src: /src/xen/tools/xenstored/talloc.c:974,1
    - Dst: talloc_total_blocks
      Src: /src/xen/tools/xenstored/talloc.c:975,1
    - Dst: talloc_report_depth_str
      Src: /src/xen/tools/xenstored/talloc.c:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 961
    functionDepth: 4
    functionLinenumber: 961
    functionLinenumberEnd: 982
    functionName: talloc_describe_all
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - sprintf_append
    - talloc_report_depth_str
    - talloc_total_blocks
    - talloc_get_name
    - talloc_total_size
    linkageType: ''
    returnType: char
    signature: char *talloc_describe_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_enable_null_tracking
      Src: /src/xen/tools/xenstored/talloc.c:990,1
    - Dst: atexit
      Src: /src/xen/tools/xenstored/talloc.c:991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 988
    functionDepth: 5
    functionLinenumber: 988
    functionLinenumberEnd: 992
    functionName: talloc_enable_leak_report
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - atexit
    - talloc_enable_null_tracking
    linkageType: ''
    returnType: void
    signature: void talloc_enable_leak_report(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_enable_null_tracking
      Src: /src/xen/tools/xenstored/talloc.c:999,1
    - Dst: atexit
      Src: /src/xen/tools/xenstored/talloc.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 5
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: talloc_enable_leak_report_full
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - atexit
    - talloc_enable_null_tracking
    linkageType: ''
    returnType: void
    signature: void talloc_enable_leak_report_full(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:1008,1
    - Dst: memset
      Src: /src/xen/tools/xenstored/talloc.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - size
    - name
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    functionName: _talloc_zero
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void *_talloc_zero(const void *ctx, size_t size, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:1023,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/talloc.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - t
    - p
    - size
    - name
    argTypes:
    - void*
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1021
    functionDepth: 4
    functionLinenumber: 1021
    functionLinenumberEnd: 1030
    functionName: _talloc_memdup
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void *_talloc_memdup(const void *t, const void *p, size_t size, const
      char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_memdup
      Src: /src/xen/tools/xenstored/talloc.c:1041,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/talloc.c:1041,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1035
    functionDepth: 3
    functionLinenumber: 1035
    functionLinenumberEnd: 1046
    functionName: talloc_strdup
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 3
    functionsReached:
    - talloc_set_name_const
    - strlen
    - talloc_memdup
    linkageType: ''
    returnType: char
    signature: char *talloc_strdup(const void *t, const char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/talloc.c:1054,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/talloc.c:1060,1
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/talloc.c:1062,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/talloc.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - orig
    - append
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1070
    functionName: talloc_append_string
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_realloc
    - memcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *talloc_append_string(const void *t, char *orig, const char *append)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc
      Src: /src/xen/tools/xenstored/talloc.c:1082,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/talloc.c:1084,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:1086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - t
    - p
    - n
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1088
    functionName: talloc_strndup
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _talloc
    - talloc_set_name_const
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *talloc_strndup(const void *t, const char *p, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1093
    functionName: VA_COPY
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1095
    functionName: VA_COPY
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1097
    functionName: VA_COPY
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VA_COPY(dest, src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VA_COPY
      Src: /src/xen/tools/xenstored/talloc.c:1107,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xenstored/talloc.c:1110,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1111,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1114,1
    - Dst: _talloc
      Src: /src/xen/tools/xenstored/talloc.c:1116,1
    - Dst: VA_COPY
      Src: /src/xen/tools/xenstored/talloc.c:1118,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xenstored/talloc.c:1119,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1120,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - t
    - fmt
    - ap
    argTypes:
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1100
    functionDepth: 3
    functionLinenumber: 1100
    functionLinenumberEnd: 1125
    functionName: talloc_vasprintf
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 1
    functionsReached:
    - talloc_set_name_const
    - VA_COPY
    - vsnprintf
    - _talloc
    - va_end
    linkageType: ''
    returnType: char
    signature: char *talloc_vasprintf(const void *t, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/talloc.c:1137,1
    - Dst: talloc_vasprintf
      Src: /src/xen/tools/xenstored/talloc.c:1138,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - fmt
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1132
    functionDepth: 4
    functionLinenumber: 1132
    functionLinenumberEnd: 1141
    functionName: talloc_asprintf
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 3
    functionsReached:
    - va_start
    - talloc_vasprintf
    - va_end
    linkageType: ''
    returnType: char
    signature: char *talloc_asprintf(const void *t, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_vasprintf
      Src: /src/xen/tools/xenstored/talloc.c:1159,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:1162,1
    - Dst: VA_COPY
      Src: /src/xen/tools/xenstored/talloc.c:1164,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xenstored/talloc.c:1167,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1174,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1177,1
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/talloc.c:1179,1
    - Dst: VA_COPY
      Src: /src/xen/tools/xenstored/talloc.c:1182,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xenstored/talloc.c:1184,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1185,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/talloc.c:1186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - s
    - fmt
    - ap
    argTypes:
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1152
    functionDepth: 4
    functionLinenumber: 1152
    functionLinenumberEnd: 1189
    functionName: talloc_vasprintf_append
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - talloc_vasprintf
    - talloc_set_name_const
    - talloc_realloc
    - VA_COPY
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: char
    signature: char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/talloc.c:1200,1
    - Dst: talloc_vasprintf_append
      Src: /src/xen/tools/xenstored/talloc.c:1201,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/talloc.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1196
    functionDepth: 5
    functionLinenumber: 1196
    functionLinenumberEnd: 1204
    functionName: talloc_asprintf_append
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - va_start
    - talloc_vasprintf_append
    - va_end
    linkageType: ''
    returnType: char
    signature: char *talloc_asprintf_append(char *s, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - el_size
    - count
    - name
    argTypes:
    - void*
    - size_t
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 4
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: _talloc_array
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void *_talloc_array(const void *ctx, size_t el_size, unsigned count,
      const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_zero
      Src: /src/xen/tools/xenstored/talloc.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - el_size
    - count
    - name
    argTypes:
    - void*
    - size_t
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1220
    functionDepth: 5
    functionLinenumber: 1220
    functionLinenumberEnd: 1226
    functionName: _talloc_zero_array
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _talloc_zero
    linkageType: ''
    returnType: void
    signature: void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned
      count, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_realloc
      Src: /src/xen/tools/xenstored/talloc.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ctx
    - ptr
    - el_size
    - count
    - name
    argTypes:
    - void*
    - void*
    - size_t
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1232
    functionDepth: 6
    functionLinenumber: 1232
    functionLinenumberEnd: 1238
    functionName: _talloc_realloc_array
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _talloc_realloc
    linkageType: ''
    returnType: void
    signature: void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size,
      unsigned count, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _talloc_realloc
      Src: /src/xen/tools/xenstored/talloc.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1245
    functionDepth: 6
    functionLinenumber: 1245
    functionLinenumberEnd: 1248
    functionName: talloc_realloc_fn
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - _talloc_realloc
    linkageType: ''
    returnType: void
    signature: void *talloc_realloc_fn(const void *context, void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/talloc.c:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 5
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: talloc_autofree
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void talloc_autofree(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_named_const
      Src: /src/xen/tools/xenstored/talloc.c:1264,1
    - Dst: atexit
      Src: /src/xen/tools/xenstored/talloc.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1261
    functionDepth: 4
    functionLinenumber: 1261
    functionLinenumberEnd: 1268
    functionName: talloc_autofree_context
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - atexit
    - talloc_named_const
    linkageType: ''
    returnType: void
    signature: void *talloc_autofree_context(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1280
    functionName: talloc_get_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    linkageType: ''
    returnType: size_t
    signature: size_t talloc_get_size(const void *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:1293,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/talloc.c:1295,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:1296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1302
    functionName: talloc_find_parent_byname
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - strcmp
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: void
    signature: void *talloc_find_parent_byname(const void *context, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:1312,1
    - Dst: talloc_chunk_from_ptr
      Src: /src/xen/tools/xenstored/talloc.c:1316,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:1317,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:1317,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/talloc.c:1319,1
    - Dst: talloc_get_name
      Src: /src/xen/tools/xenstored/talloc.c:1319,1
    - Dst: TC_PTR_FROM_CHUNK
      Src: /src/xen/tools/xenstored/talloc.c:1319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - context
    - file
    argTypes:
    - void*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1323
    functionName: talloc_show_parents
    functionSourceFile: /src/xen/tools/xenstored/talloc.c
    functionUses: 0
    functionsReached:
    - talloc_chunk_from_ptr
    - fprintf
    - talloc_get_name
    - TC_PTR_FROM_CHUNK
    linkageType: ''
    returnType: void
    signature: void talloc_show_parents(const void *context, FILE *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tablelength
    - hashvalue
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: indexFor
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int indexFor(unsigned int tablelength,\n                                    unsigned
      int hashvalue)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pindex
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: loadlimit
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int loadlimit(unsigned int pindex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/hashtable.c:66,1
    - Dst: talloc_set_name_const
      Src: /src/xen/tools/xenstored/hashtable.c:69,1
    - Dst: talloc_zero_array
      Src: /src/xen/tools/xenstored/hashtable.c:70,1
    - Dst: loadlimit
      Src: /src/xen/tools/xenstored/hashtable.c:80,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/hashtable.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - name
    - flags
    argTypes:
    - void*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: create_hashtable
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - talloc_set_name_const
    - talloc_zero
    - talloc_zero_array
    - talloc_free
    - loadlimit
    linkageType: ''
    returnType: struct hashtable
    signature: "struct hashtable *create_hashtable(const void *ctx, const char *name,\n
      \                                  unsigned int (*hashf) (const void *),\n                                   int
      (*eqf) (const void *, const void *),\n                                   unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct hashtable*::hashfn
      Src: /src/xen/tools/xenstored/hashtable.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hashtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: hash
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 1
    functionsReached:
    - struct hashtable*::hashfn
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash(const struct hashtable *h, const void *k)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/hashtable.c:113,1
    - Dst: memset
      Src: /src/xen/tools/xenstored/hashtable.c:121,1
    - Dst: indexFor
      Src: /src/xen/tools/xenstored/hashtable.c:125,1
    - Dst: loadlimit
      Src: /src/xen/tools/xenstored/hashtable.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 142
    functionName: hashtable_expand
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - memset
    - talloc_realloc
    - indexFor
    - loadlimit
    linkageType: ''
    returnType: int
    signature: int hashtable_expand(struct hashtable *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/xen/tools/xenstored/hashtable.c:150,1
    - Dst: indexFor
      Src: /src/xen/tools/xenstored/hashtable.c:151,1
    - Dst: struct hashtable*::eqfn
      Src: /src/xen/tools/xenstored/hashtable.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hashtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: hashtable_search_entry
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - hash
    - struct hashtable*::eqfn
    - indexFor
    linkageType: ''
    returnType: struct entry
    signature: "struct entry *hashtable_search_entry(const struct hashtable *h,\n
      \                                           const void *k)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search_entry
      Src: /src/xen/tools/xenstored/hashtable.c:169,1
    - Dst: hashtable_expand
      Src: /src/xen/tools/xenstored/hashtable.c:178,1
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/hashtable.c:180,1
    - Dst: hash
      Src: /src/xen/tools/xenstored/hashtable.c:186,1
    - Dst: indexFor
      Src: /src/xen/tools/xenstored/hashtable.c:187,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/hashtable.c:190,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/hashtable.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - h
    - k
    - v
    argTypes:
    - struct hashtable*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 197
    functionName: hashtable_add
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - indexFor
    - talloc_zero
    - hash
    - hashtable_search_entry
    - talloc_steal
    - hashtable_expand
    linkageType: ''
    returnType: int
    signature: int hashtable_add(struct hashtable *h, const void *k, void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search_entry
      Src: /src/xen/tools/xenstored/hashtable.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hashtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: hashtable_search
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - hashtable_search_entry
    linkageType: ''
    returnType: void
    signature: void *hashtable_search(const struct hashtable *h, const void *k)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search_entry
      Src: /src/xen/tools/xenstored/hashtable.c:212,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/hashtable.c:218,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/hashtable.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - h
    - k
    - v
    argTypes:
    - struct hashtable*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 5
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: hashtable_replace
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - talloc_steal
    - hashtable_search_entry
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int hashtable_replace(struct hashtable *h, const void *k, void *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/xen/tools/xenstored/hashtable.c:237,1
    - Dst: indexFor
      Src: /src/xen/tools/xenstored/hashtable.c:238,1
    - Dst: hash
      Src: /src/xen/tools/xenstored/hashtable.c:238,1
    - Dst: struct hashtable*::eqfn
      Src: /src/xen/tools/xenstored/hashtable.c:244,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/hashtable.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hashtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 227
    functionDepth: 5
    functionLinenumber: 227
    functionLinenumberEnd: 254
    functionName: hashtable_remove
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - hash
    - struct hashtable*::eqfn
    - talloc_free
    - indexFor
    linkageType: ''
    returnType: void
    signature: void hashtable_remove(struct hashtable *h, const void *k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/tools/xenstored/hashtable.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - h
    - arg
    argTypes:
    - struct hashtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 278
    functionName: hashtable_iterate
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: int
    signature: "int hashtable_iterate(struct hashtable *h,\n                      int
      (*func)(const void *k, void *v, void *arg), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/hashtable.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: hashtable_destroy
    functionSourceFile: /src/xen/tools/xenstored/hashtable.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void hashtable_destroy(struct hashtable *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: streq
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: streq(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: strstarts
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strstarts(a,b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/utils.h:21,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/utils.h:21,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/utils.h:24,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/utils.h:24,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/utils.h:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: strends
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached:
    - streq
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool strends(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: PRINTF_ATTRIBUTE
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTF_ATTRIBUTE(a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _fmt
    - ','
    - _args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: eprintf
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: eprintf(_fmt, _args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ERR_PTR
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ERR_PTR(long error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: PTR_ERR
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long PTR_ERR(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: IS_ERR
    functionSourceFile: /src/xen/tools/xenstored/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long IS_ERR(const void *ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/lu_minios.c:28,1
    - Dst: talloc_append_string
      Src: /src/xen/tools/xenstored/lu_minios.c:33,1
    - Dst: talloc_append_string
      Src: /src/xen/tools/xenstored/lu_minios.c:37,1
    - Dst: kexec
      Src: /src/xen/tools/xenstored/lu_minios.c:42,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/lu_minios.c:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - void*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 49
    functionName: lu_exec
    functionSourceFile: /src/xen/tools/xenstored/lu_minios.c
    functionUses: 1
    functionsReached:
    - talloc_strdup
    - talloc_asprintf
    - kexec
    - talloc_append_string
    linkageType: ''
    returnType: char
    signature: char *lu_exec(const void *ctx, int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/xenstored/lu_minios.c:56,1
    - Dst: lu_begin
      Src: /src/xen/tools/xenstored/lu_minios.c:58,1
    - Dst: talloc_size
      Src: /src/xen/tools/xenstored/lu_minios.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - conn
    - size
    argTypes:
    - void*
    - struct connection*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 71
    functionName: lu_binary_alloc
    functionSourceFile: /src/xen/tools/xenstored/lu_minios.c
    functionUses: 0
    functionsReached:
    - lu_begin
    - syslog
    - talloc_size
    linkageType: ''
    returnType: char
    signature: "char *lu_binary_alloc(const void *ctx, struct connection *conn,\n\t\t\t\t
      \  unsigned long size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/lu_minios.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - conn
    - size
    - data
    argTypes:
    - void*
    - struct connection*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: lu_binary_save
    functionSourceFile: /src/xen/tools/xenstored/lu_minios.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: char
    signature: "char *lu_binary_save(const void *ctx, struct connection *conn,\n\t\t\t\t
      \ unsigned int size, const char *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu_minios.c:92,1
    - Dst: lu_binary_alloc
      Src: /src/xen/tools/xenstored/lu_minios.c:93,1
    - Dst: atol
      Src: /src/xen/tools/xenstored/lu_minios.c:93,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/lu_minios.c:94,1
    - Dst: lu_binary_save
      Src: /src/xen/tools/xenstored/lu_minios.c:95,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/lu_minios.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: lu_arch
    functionSourceFile: /src/xen/tools/xenstored/lu_minios.c
    functionUses: 1
    functionsReached:
    - lu_binary_alloc
    - atol
    - strcmp
    - lu_binary_save
    - atoi
    linkageType: ''
    returnType: char
    signature: "char *lu_arch(const void *ctx, struct connection *conn, const char
      **vec,\n\t\t    int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: htobe32
    functionSourceFile: /src/xen/tools/xenstored/xenstore_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: be32toh
    functionSourceFile: /src/xen/tools/xenstored/xenstore_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: htobe32
    functionSourceFile: /src/xen/tools/xenstored/xenstore_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: be32toh
    functionSourceFile: /src/xen/tools/xenstored/xenstore_state.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trans
    argTypes:
    - struct transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: ta_node_created
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ta_node_created(struct transaction *trans)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/transaction.c:182,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/transaction.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - trans
    - name
    argTypes:
    - struct transaction*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: find_accessed_node
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - streq
    - list_for_each_entry
    linkageType: ''
    returnType: struct accessed_node
    signature: "struct accessed_node *find_accessed_node(struct transaction *trans,\n\t\t\t\t\t\tconst
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/transaction.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - trans
    - name
    argTypes:
    - void*
    - struct transaction*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: transaction_get_node_name
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    linkageType: ''
    returnType: char
    signature: "char *transaction_get_node_name(void *ctx, struct transaction *trans,\n\t\t\t\t
      \      const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_accessed_node
      Src: /src/xen/tools/xenstored/transaction.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - name
    argTypes:
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: transaction_prepend
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - find_accessed_node
    linkageType: ''
    returnType: char
    signature: char *transaction_prepend(struct connection *conn, const char *name)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: wrl_apply_debit_direct
      Src: /src/xen/tools/xenstored/transaction.c:237,1
    - Dst: find_accessed_node
      Src: /src/xen/tools/xenstored/transaction.c:249,1
    - Dst: domain_max_chk
      Src: /src/xen/tools/xenstored/transaction.c:251,1
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/transaction.c:255,1
    - Dst: transaction_get_node_name
      Src: /src/xen/tools/xenstored/transaction.c:258,1
    - Dst: strchr
      Src: /src/xen/tools/xenstored/transaction.c:261,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/transaction.c:264,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/transaction.c:269,1
    - Dst: write_node_raw
      Src: /src/xen/tools/xenstored/transaction.c:289,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/transaction.c:297,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:320,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 4
    argNames:
    - conn
    - node
    - type
    - db_name
    argTypes:
    - struct connection*
    - struct node*
    - enum node_access_type
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 226
    functionDepth: 6
    functionLinenumber: 226
    functionLinenumberEnd: 324
    functionName: access_node
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - find_accessed_node
    - write_node_raw
    - talloc_zero
    - transaction_get_node_name
    - strchr
    - talloc_array
    - wrl_apply_debit_direct
    - talloc_free
    - memcpy
    - list_add_tail
    - domain_max_chk
    linkageType: ''
    returnType: int
    signature: "int access_node(struct connection *conn, struct node *node,\n\t\tenum
      node_access_type type, const char **db_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_accessed_node
      Src: /src/xen/tools/xenstored/transaction.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - conn
    - name
    - watch_exact
    argTypes:
    - struct connection*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 347
    functionName: queue_watches
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 1
    functionsReached:
    - find_accessed_node
    linkageType: ''
    returnType: void
    signature: void queue_watches(struct connection *conn, const char *name, bool
      watch_exact)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/tools/xenstored/transaction.c:364,1
    - Dst: db_fetch
      Src: /src/xen/tools/xenstored/transaction.c:366,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/transaction.c:379,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/transaction.c:380,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:381,1
    - Dst: list_top
      Src: /src/xen/tools/xenstored/transaction.c:385,1
    - Dst: db_fetch
      Src: /src/xen/tools/xenstored/transaction.c:387,1
    - Dst: talloc_increase_ref_count
      Src: /src/xen/tools/xenstored/transaction.c:400,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/transaction.c:401,1
    - Dst: db_write
      Src: /src/xen/tools/xenstored/transaction.c:407,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/transaction.c:419,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/transaction.c:422,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/transaction.c:425,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:426,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - conn
    - trans
    - is_corrupt
    argTypes:
    - struct connection*
    - struct transaction*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 430
    functionName: finalize_transaction
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_increase_ref_count
    - db_write
    - list_top
    - db_delete
    - list_del
    - list_for_each_entry_safe
    - fire_watches
    - db_fetch
    - talloc_free
    linkageType: ''
    returnType: int
    signature: "int finalize_transaction(struct connection *conn,\n\t\t\t\tstruct
      transaction *trans, bool *is_corrupt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace_destroy
      Src: /src/xen/tools/xenstored/transaction.c:438,1
    - Dst: list_top
      Src: /src/xen/tools/xenstored/transaction.c:439,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/transaction.c:441,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/transaction.c:442,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - _transaction
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 447
    functionName: destroy_transaction
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - list_top
    - db_delete
    - list_del
    - talloc_free
    - trace_destroy
    linkageType: ''
    returnType: int
    signature: int destroy_transaction(void *_transaction)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/transaction.c:456,1
    - Dst: ERR_PTR
      Src: /src/xen/tools/xenstored/transaction.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - id
    argTypes:
    - struct connection*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: transaction_lookup
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - list_for_each_entry
    linkageType: ''
    returnType: struct transaction
    signature: struct transaction *transaction_lookup(struct connection *conn, uint32_t
      id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_transaction_get
      Src: /src/xen/tools/xenstored/transaction.c:473,1
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/transaction.c:477,1
    - Dst: trace_create
      Src: /src/xen/tools/xenstored/transaction.c:481,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/transaction.c:482,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/transaction.c:483,1
    - Dst: transaction_lookup
      Src: /src/xen/tools/xenstored/transaction.c:491,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/transaction.c:492,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/transaction.c:494,1
    - Dst: time
      Src: /src/xen/tools/xenstored/transaction.c:495,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/transaction.c:498,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/transaction.c:499,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/transaction.c:500,1
    - Dst: domain_transaction_inc
      Src: /src/xen/tools/xenstored/transaction.c:501,1
    - Dst: snprintf
      Src: /src/xen/tools/xenstored/transaction.c:504,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/transaction.c:505,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/transaction.c:505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 508
    functionName: do_transaction_start
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_set_destructor
    - snprintf
    - IS_ERR
    - send_reply
    - time
    - trace_create
    - talloc_zero
    - transaction_lookup
    - domain_transaction_inc
    - strlen
    - domain_transaction_get
    - talloc_steal
    - INIT_LIST_HEAD
    - list_empty
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: "int do_transaction_start(const void *ctx, struct connection *conn,\n\t\t\t
      struct buffered_data *in)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: onearg
      Src: /src/xen/tools/xenstored/transaction.c:513,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/transaction.c:519,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/transaction.c:519,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/transaction.c:526,1
    - Dst: domain_transaction_dec
      Src: /src/xen/tools/xenstored/transaction.c:527,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/transaction.c:528,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/transaction.c:531,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/transaction.c:534,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/transaction.c:536,1
    - Dst: acc_fix_domains
      Src: /src/xen/tools/xenstored/transaction.c:539,1
    - Dst: finalize_transaction
      Src: /src/xen/tools/xenstored/transaction.c:543,1
    - Dst: wrl_apply_debit_trans_commit
      Src: /src/xen/tools/xenstored/transaction.c:547,1
    - Dst: acc_fix_domains
      Src: /src/xen/tools/xenstored/transaction.c:550,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/transaction.c:553,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/transaction.c:555,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 510
    functionDepth: 6
    functionLinenumber: 510
    functionLinenumberEnd: 558
    functionName: do_transaction_end
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - finalize_transaction
    - send_ack
    - domain_transaction_dec
    - wrl_apply_debit_trans_commit
    - domain_is_unprivileged
    - onearg
    - streq
    - list_del
    - acc_fix_domains
    - corrupt
    - talloc_steal
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int do_transaction_end(const void *ctx, struct connection *conn,\n\t\t
      \      struct buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trans
    argTypes:
    - struct transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: transaction_get_changed_domains
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct list_head
    signature: struct list_head *transaction_get_changed_domains(struct transaction
      *trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trans
    argTypes:
    - struct transaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: fail_transaction
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fail_transaction(struct transaction *trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/transaction.c:574,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/transaction.c:576,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:577,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/transaction.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts:
    - condition: (conn->transaction == NULL)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/xen/tools/xenstored/transaction.c
    constantsTouched: []
    func_position:
      end: 583
      start: 570
    functionDepth: 5
    functionLinenumber: 570
    functionLinenumberEnd: 583
    functionName: conn_delete_all_transactions
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - list_del
    - list_top
    - assert
    linkageType: ''
    returnType: void
    signature: void conn_delete_all_transactions(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/transaction.c:592,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/transaction.c:593,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/transaction.c:594,1
    - Dst: remember_string
      Src: /src/xen/tools/xenstored/transaction.c:596,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/transaction.c:599,1
    - Dst: remember_string
      Src: /src/xen/tools/xenstored/transaction.c:602,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:606,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/transaction.c:613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - hash
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 585
    functionDepth: 5
    functionLinenumber: 585
    functionLinenumberEnd: 615
    functionName: check_transactions
    functionSourceFile: /src/xen/tools/xenstored/transaction.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    - remember_string
    - talloc_free
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int check_transactions(struct hashtable *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: _STRING_LINE_
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STRING_LINE_(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: _STRING_LINE2_
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STRING_LINE2_(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: talloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: talloc_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_size(ctx, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: talloc_new
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_new(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: talloc_zero
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: talloc_zero_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero_size(ctx, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: talloc_zero_array
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero_array(ctx, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: talloc_array
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_array(ctx, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - size
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: talloc_array_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_array_size(ctx, size, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - p
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: talloc_realloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_realloc(ctx, p, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: talloc_realloc_size
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_realloc_size(ctx, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - p
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: talloc_memdup
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_memdup(t, p, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: malloc_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: malloc_p(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: malloc_array_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: malloc_array_p(type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: realloc_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realloc_p(p, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: data_blob
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data_blob(ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: data_blob_talloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data_blob_talloc(ctx, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - blob
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: data_blob_dup_talloc
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: data_blob_dup_talloc(ctx, blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: talloc_set_type
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_set_type(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: talloc_get_type
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_get_type(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: talloc_find_parent_bytype
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_find_parent_bytype(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: talloc_zero_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_zero_p(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: talloc_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_p(ctx, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ctx
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: talloc_array_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_array_p(ctx, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - p
    - ','
    - type
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: talloc_realloc_p
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_realloc_p(ctx, p, type, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: talloc_destroy
    functionSourceFile: /src/xen/tools/xenstored/talloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: talloc_destroy(ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xenstored/posix.c:51,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:53,1
    - Dst: lockf
      Src: /src/xen/tools/xenstored/posix.c:56,1
    - Dst: exit
      Src: /src/xen/tools/xenstored/posix.c:57,1
    - Dst: snprintf
      Src: /src/xen/tools/xenstored/posix.c:59,1
    - Dst: getpid
      Src: /src/xen/tools/xenstored/posix.c:59,1
    - Dst: write
      Src: /src/xen/tools/xenstored/posix.c:60,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:61,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pidfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: write_pidfile
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - snprintf
    - barf_perror
    - open
    - close
    - getpid
    - exit
    - write
    - lockf
    linkageType: ''
    returnType: void
    signature: void write_pidfile(const char *pidfile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/xen/tools/xenstored/posix.c:72,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:73,1
    - Dst: exit
      Src: /src/xen/tools/xenstored/posix.c:75,1
    - Dst: setsid
      Src: /src/xen/tools/xenstored/posix.c:78,1
    - Dst: fork
      Src: /src/xen/tools/xenstored/posix.c:81,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:82,1
    - Dst: exit
      Src: /src/xen/tools/xenstored/posix.c:84,1
    - Dst: chdir
      Src: /src/xen/tools/xenstored/posix.c:87,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:88,1
    - Dst: umask
      Src: /src/xen/tools/xenstored/posix.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 92
    functionName: daemonize
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 2
    functionsReached:
    - barf_perror
    - chdir
    - umask
    - setsid
    - exit
    - fork
    linkageType: ''
    returnType: void
    signature: void daemonize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/xenstored/posix.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: trigger_reopen_log
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: void
    signature: void trigger_reopen_log(int signal __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xenstored/posix.c:109,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:111,1
    - Dst: dup2
      Src: /src/xen/tools/xenstored/posix.c:112,1
    - Dst: dup2
      Src: /src/xen/tools/xenstored/posix.c:113,1
    - Dst: dup2
      Src: /src/xen/tools/xenstored/posix.c:114,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: finish_daemonize
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - open
    - dup2
    - close
    linkageType: ''
    returnType: void
    signature: void finish_daemonize(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/xen/tools/xenstored/posix.c:123,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:124,1
    - Dst: fcntl
      Src: /src/xen/tools/xenstored/posix.c:128,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:130,1
    - Dst: fcntl
      Src: /src/xen/tools/xenstored/posix.c:132,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: init_pipe
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - pipe
    - fcntl
    linkageType: ''
    returnType: void
    signature: void init_pipe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/xenstored/posix.c:139,1
    - Dst: getpagesize
      Src: /src/xen/tools/xenstored/posix.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interface
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: unmap_xenbus
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - munmap
    - getpagesize
    linkageType: ''
    returnType: void
    signature: void unmap_xenbus(void *interface)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xenstored/posix.c:149,1
    - Dst: read
      Src: /src/xen/tools/xenstored/posix.c:153,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:157,1
    - Dst: strtoul
      Src: /src/xen/tools/xenstored/posix.c:163,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: get_xenbus_evtchn
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - strtoul
    - open
    - close
    - read
    linkageType: ''
    returnType: evtchn_port_t
    signature: evtchn_port_t get_xenbus_evtchn(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_xenbus_evtchn
      Src: /src/xen/tools/xenstored/posix.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: get_domain_evtchn
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - get_xenbus_evtchn
    linkageType: ''
    returnType: evtchn_port_t
    signature: evtchn_port_t get_domain_evtchn(unsigned int domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/xenstored/posix.c:188,1
    - Dst: mmap
      Src: /src/xen/tools/xenstored/posix.c:192,1
    - Dst: getpagesize
      Src: /src/xen/tools/xenstored/posix.c:192,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 201
    functionName: xenbus_map
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - getpagesize
    - open
    - close
    - mmap
    linkageType: ''
    returnType: void
    signature: void *xenbus_map(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/xenstored/posix.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - struct connection*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: writefd
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int writefd(struct connection *conn, const void *data, unsigned int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/xenstored/posix.c:223,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - struct connection*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: readfd
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: int
    signature: int readfd(struct connection *conn, void *data, unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/posix.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - mask
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 252
    functionName: socket_can_process
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - talloc_free
    linkageType: ''
    returnType: bool
    signature: bool socket_can_process(struct connection *conn, int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket_can_process
      Src: /src/xen/tools/xenstored/posix.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 6
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: socket_can_write
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - socket_can_process
    linkageType: ''
    returnType: bool
    signature: bool socket_can_write(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: socket_can_process
      Src: /src/xen/tools/xenstored/posix.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: socket_can_read
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - socket_can_process
    linkageType: ''
    returnType: bool
    signature: bool socket_can_read(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/xen/tools/xenstored/posix.c:276,1
    - Dst: new_connection
      Src: /src/xen/tools/xenstored/posix.c:280,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 286
    functionName: accept_connection
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - accept
    - new_connection
    - close
    linkageType: ''
    returnType: void
    signature: void accept_connection(int sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: destroy_fds
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void destroy_fds(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_daemon_path
      Src: /src/xen/tools/xenstored/posix.c:297,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:300,1
    - Dst: atexit
      Src: /src/xen/tools/xenstored/posix.c:303,1
    - Dst: socket
      Src: /src/xen/tools/xenstored/posix.c:304,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:306,1
    - Dst: unlink
      Src: /src/xen/tools/xenstored/posix.c:309,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/posix.c:313,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:314,1
    - Dst: strcpy
      Src: /src/xen/tools/xenstored/posix.c:315,1
    - Dst: bind
      Src: /src/xen/tools/xenstored/posix.c:316,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:317,1
    - Dst: chmod
      Src: /src/xen/tools/xenstored/posix.c:319,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:320,1
    - Dst: listen
      Src: /src/xen/tools/xenstored/posix.c:322,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 324
    functionName: init_sockets
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - bind
    - barf_perror
    - unlink
    - socket
    - xenstore_daemon_path
    - strcpy
    - strlen
    - atexit
    - listen
    - chmod
    linkageType: ''
    returnType: void
    signature: void init_sockets(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_connection
      Src: /src/xen/tools/xenstored/posix.c:331,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/posix.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: add_socket_connection
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - new_connection
    - barf
    linkageType: ''
    returnType: struct connection
    signature: struct connection *add_socket_connection(int fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/posix.c:341,1
    - Dst: mkdir
      Src: /src/xen/tools/xenstored/posix.c:345,1
    - Dst: xenstore_daemon_rundir
      Src: /src/xen/tools/xenstored/posix.c:345,1
    - Dst: mkdir
      Src: /src/xen/tools/xenstored/posix.c:346,1
    - Dst: openlog
      Src: /src/xen/tools/xenstored/posix.c:349,1
    - Dst: daemonize
      Src: /src/xen/tools/xenstored/posix.c:351,1
    - Dst: write_pidfile
      Src: /src/xen/tools/xenstored/posix.c:355,1
    - Dst: signal
      Src: /src/xen/tools/xenstored/posix.c:358,1
    - Dst: signal
      Src: /src/xen/tools/xenstored/posix.c:359,1
    - Dst: init_sockets
      Src: /src/xen/tools/xenstored/posix.c:362,1
    - Dst: init_pipe
      Src: /src/xen/tools/xenstored/posix.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - live_update
    - dofork
    - pidfile
    argTypes:
    - bool
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 365
    functionName: early_init
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - daemonize
    - mkdir
    - signal
    - openlog
    - reopen_log
    - init_pipe
    - write_pidfile
    - xenstore_daemon_rundir
    - init_sockets
    linkageType: ''
    returnType: void
    signature: void early_init(bool live_update, bool dofork, const char *pidfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_fd
      Src: /src/xen/tools/xenstored/posix.c:371,1
    - Dst: set_fd
      Src: /src/xen/tools/xenstored/posix.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: set_special_fds
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - set_fd
    linkageType: ''
    returnType: void
    signature: void set_special_fds(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:381,1
    - Dst: close
      Src: /src/xen/tools/xenstored/posix.c:382,1
    - Dst: init_pipe
      Src: /src/xen/tools/xenstored/posix.c:383,1
    - Dst: read
      Src: /src/xen/tools/xenstored/posix.c:388,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:389,1
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/posix.c:390,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/posix.c:397,1
    - Dst: accept_connection
      Src: /src/xen/tools/xenstored/posix.c:399,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 403
    functionName: handle_special_fds
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - read
    - close
    - reopen_log
    - init_pipe
    - accept_connection
    linkageType: ''
    returnType: void
    signature: void handle_special_fds(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sd_notify
      Src: /src/xen/tools/xenstored/posix.c:409,1
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/posix.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: late_init
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached:
    - sd_notify
    - fprintf
    linkageType: ''
    returnType: void
    signature: void late_init(bool live_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: get_socket_fd
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_socket_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: set_socket_fd
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_socket_fd(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fdopen
      Src: /src/xen/tools/xenstored/posix.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: evtchn_fdopen
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 2
    functionsReached:
    - xenevtchn_fdopen
    linkageType: ''
    returnType: xenevtchn_handle
    signature: xenevtchn_handle *evtchn_fdopen(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: evtchn_rebind
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evtchn_rebind(int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_daemon_rundir
      Src: /src/xen/tools/xenstored/posix.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: xenstore_rundir
    functionSourceFile: /src/xen/tools/xenstored/posix.c
    functionUses: 2
    functionsReached:
    - xenstore_daemon_rundir
    linkageType: ''
    returnType: char
    signature: char *xenstore_rundir(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: trace_wrl
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_wrl(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/tools/xenstored/domain.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - debit
    - debit_floor
    - credit
    - credit_ceil
    argTypes:
    - wrl_creditt*
    - wrl_creditt
    - wrl_creditt*
    - wrl_creditt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 225
    functionName: wrl_xfer_credit
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: void
    signature: "void wrl_xfer_credit(wrl_creditt *debit,  wrl_creditt debit_floor,\n\t\t\t
      \   wrl_creditt *credit, wrl_creditt credit_ceil)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_now_msec
      Src: /src/xen/tools/xenstored/domain.c:230,1
    - Dst: wrl_xfer_credit
      Src: /src/xen/tools/xenstored/domain.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: wrl_domain_new
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - get_now_msec
    - wrl_xfer_credit
    linkageType: ''
    returnType: void
    signature: void wrl_domain_new(struct domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrl_xfer_credit
      Src: /src/xen/tools/xenstored/domain.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: wrl_domain_destroy
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - wrl_xfer_credit
    linkageType: ''
    returnType: void
    signature: void wrl_domain_destroy(struct domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/tools/xenstored/domain.c:263,1
    - Dst: MIN
      Src: /src/xen/tools/xenstored/domain.c:272,1
    - Dst: wrl_xfer_credit
      Src: /src/xen/tools/xenstored/domain.c:277,1
    - Dst: wrl_xfer_credit
      Src: /src/xen/tools/xenstored/domain.c:282,1
    - Dst: wrl_xfer_credit
      Src: /src/xen/tools/xenstored/domain.c:284,1
    - Dst: trace_wrl
      Src: /src/xen/tools/xenstored/domain.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - domain
    - now
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 293
    functionName: wrl_credit_update
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - trace_wrl
    - MIN
    - wrl_xfer_credit
    linkageType: ''
    returnType: void
    signature: void wrl_credit_update(struct domain *domain, uint64_t now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wrl_credit_update
      Src: /src/xen/tools/xenstored/domain.c:300,1
    - Dst: MIN
      Src: /src/xen/tools/xenstored/domain.c:318,1
    - Dst: trace_wrl
      Src: /src/xen/tools/xenstored/domain.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - domain
    - now
    - ptimeout
    argTypes:
    - struct domain*
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 325
    functionName: wrl_check_timeout
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - trace_wrl
    - MIN
    - wrl_credit_update
    linkageType: ''
    returnType: void
    signature: void wrl_check_timeout(struct domain *domain, uint64_t now, int *ptimeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - now
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: WRL_LOG
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRL_LOG(now, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:334,1
    - Dst: get_now_msec
      Src: /src/xen/tools/xenstored/domain.c:338,1
    - Dst: wrl_credit_update
      Src: /src/xen/tools/xenstored/domain.c:339,1
    - Dst: trace_wrl
      Src: /src/xen/tools/xenstored/domain.c:342,1
    - Dst: WRL_LOG
      Src: /src/xen/tools/xenstored/domain.c:348,1
    - Dst: WRL_LOG
      Src: /src/xen/tools/xenstored/domain.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 355
    functionName: wrl_apply_debit_actual
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - WRL_LOG
    - domain_is_unprivileged
    - wrl_credit_update
    - get_now_msec
    - trace_wrl
    linkageType: ''
    returnType: void
    signature: void wrl_apply_debit_actual(struct domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WRL_LOG
      Src: /src/xen/tools/xenstored/domain.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - now
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 364
    functionName: wrl_log_periodic
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - WRL_LOG
    linkageType: ''
    returnType: void
    signature: void wrl_log_periodic(uint64_t now)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wrl_apply_debit_actual
      Src: /src/xen/tools/xenstored/domain.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: wrl_apply_debit_direct
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - wrl_apply_debit_actual
    linkageType: ''
    returnType: void
    signature: void wrl_apply_debit_direct(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrl_apply_debit_actual
      Src: /src/xen/tools/xenstored/domain.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 390
    functionName: wrl_apply_debit_trans_commit
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - wrl_apply_debit_actual
    linkageType: ''
    returnType: void
    signature: void wrl_apply_debit_trans_commit(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cons
    - prod
    argTypes:
    - XENSTORE_RING_IDX
    - XENSTORE_RING_IDX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: check_indexes
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_indexes(XENSTORE_RING_IDX cons, XENSTORE_RING_IDX prod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/xenstored/domain.c:401,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/xenstored/domain.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - cons
    - prod
    - buf
    - len
    argTypes:
    - XENSTORE_RING_IDX
    - XENSTORE_RING_IDX
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: get_output_chunk
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - MASK_XENSTORE_IDX
    linkageType: ''
    returnType: void
    signature: "void *get_output_chunk(XENSTORE_RING_IDX cons,\n\t\t\t      XENSTORE_RING_IDX
      prod,\n\t\t\t      char *buf, uint32_t *len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/xenstored/domain.c:411,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/xenstored/domain.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - cons
    - prod
    - buf
    - len
    argTypes:
    - XENSTORE_RING_IDX
    - XENSTORE_RING_IDX
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: get_input_chunk
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - MASK_XENSTORE_IDX
    linkageType: ''
    returnType: void
    signature: "void *get_input_chunk(XENSTORE_RING_IDX cons,\n\t\t\t\t   XENSTORE_RING_IDX
      prod,\n\t\t\t\t   const char *buf, uint32_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xen_mb
      Src: /src/xen/tools/xenstored/domain.c:428,1
    - Dst: check_indexes
      Src: /src/xen/tools/xenstored/domain.c:430,1
    - Dst: get_output_chunk
      Src: /src/xen/tools/xenstored/domain.c:435,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/domain.c:439,1
    - Dst: xen_mb
      Src: /src/xen/tools/xenstored/domain.c:440,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/xenstored/domain.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - struct connection*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 446
    functionName: writechn
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - xenevtchn_notify
    - check_indexes
    - get_output_chunk
    - xen_mb
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int writechn(struct connection *conn,\n\t\t    const void *data, unsigned
      int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xen_mb
      Src: /src/xen/tools/xenstored/domain.c:458,1
    - Dst: check_indexes
      Src: /src/xen/tools/xenstored/domain.c:460,1
    - Dst: get_input_chunk
      Src: /src/xen/tools/xenstored/domain.c:465,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/domain.c:469,1
    - Dst: xen_mb
      Src: /src/xen/tools/xenstored/domain.c:470,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/xenstored/domain.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - data
    - len
    argTypes:
    - struct connection*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 476
    functionName: readchn
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - get_input_chunk
    - xenevtchn_notify
    - check_indexes
    - xen_mb
    - memcpy
    linkageType: ''
    returnType: int
    signature: int readchn(struct connection *conn, void *data, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: domain_can_write
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool domain_can_write(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 501
    functionName: domain_can_read
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - domain_is_unprivileged
    linkageType: ''
    returnType: bool
    signature: bool domain_can_read(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenbus_map
      Src: /src/xen/tools/xenstored/domain.c:513,1
    - Dst: xengnttab_map_grant_ref
      Src: /src/xen/tools/xenstored/domain.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: map_interface
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - xengnttab_map_grant_ref
    - xenbus_map
    linkageType: ''
    returnType: void
    signature: void *map_interface(domid_t domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unmap_xenbus
      Src: /src/xen/tools/xenstored/domain.c:523,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/xenstored/domain.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - domid
    - interface
    argTypes:
    - domid_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 526
    functionName: unmap_interface
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - unmap_xenbus
    - xengnttab_unmap
    linkageType: ''
    returnType: void
    signature: void unmap_interface(domid_t domid, void *interface)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_nbentry_dec
      Src: /src/xen/tools/xenstored/domain.c:538,1
    - Dst: domain_nbentry_inc
      Src: /src/xen/tools/xenstored/domain.c:541,1
    - Dst: write_node_raw
      Src: /src/xen/tools/xenstored/domain.c:542,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:544,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/domain.c:548,1
    - Dst: rm_node
      Src: /src/xen/tools/xenstored/domain.c:550,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:552,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/domain.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ctx
    - conn
    - node
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 563
    functionName: domain_tree_remove_sub
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - trace
    - syslog
    - write_node_raw
    - domain_nbentry_inc
    - domain_nbentry_dec
    - rm_node
    linkageType: ''
    returnType: int
    signature: "int domain_tree_remove_sub(const void *ctx, struct connection *conn,\n\t\t\t\t
      \ struct node *node, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/domain.c:571,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:573,1
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/domain.c:577,1
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/domain.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 579
    functionName: domain_tree_remove
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - syslog
    - walk_node_tree
    linkageType: ''
    returnType: void
    signature: void domain_tree_remove(struct domain *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/xen/tools/xenstored/domain.c:583,1
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/domain.c:589,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/domain.c:592,1
    - Dst: log
      Src: /src/xen/tools/xenstored/domain.c:594,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 597
    functionName: fire_special_watches
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - log
    - talloc_new
    - fire_watches
    - talloc_free
    - read_node_const
    linkageType: ''
    returnType: void
    signature: void fire_special_watches(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_tree_remove
      Src: /src/xen/tools/xenstored/domain.c:603,1
    - Dst: hashtable_remove
      Src: /src/xen/tools/xenstored/domain.c:605,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/xenstored/domain.c:611,1
    - Dst: eprintf
      Src: /src/xen/tools/xenstored/domain.c:612,1
    - Dst: unmap_interface
      Src: /src/xen/tools/xenstored/domain.c:616,1
    - Dst: fire_special_watches
      Src: /src/xen/tools/xenstored/domain.c:618,1
    - Dst: wrl_domain_destroy
      Src: /src/xen/tools/xenstored/domain.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - _domain
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 599
    functionDepth: 6
    functionLinenumber: 599
    functionLinenumberEnd: 623
    functionName: destroy_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - xenevtchn_unbind
    - unmap_interface
    - domain_tree_remove
    - fire_special_watches
    - hashtable_remove
    - wrl_domain_destroy
    - eprintf
    linkageType: ''
    returnType: int
    signature: int destroy_domain(void *_domain)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:639,1
    - Dst: talloc_unlink
      Src: /src/xen/tools/xenstored/domain.c:655,1
    - Dst: talloc_autofree_context
      Src: /src/xen/tools/xenstored/domain.c:655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - domain
    - notify
    - state
    - unique_id
    argTypes:
    - struct domain*
    - bool*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 625
    functionDepth: 5
    functionLinenumber: 625
    functionLinenumberEnd: 663
    functionName: do_check_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - talloc_unlink
    - talloc_free
    - talloc_autofree_context
    linkageType: ''
    returnType: int
    signature: "int do_check_domain(struct domain *domain, bool *notify,\n\t\t\t   unsigned
      int state, uint64_t unique_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenmanage_get_domain_info
      Src: /src/xen/tools/xenstored/domain.c:671,1
    - Dst: do_check_domain
      Src: /src/xen/tools/xenstored/domain.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - k
    - v
    - arg
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 665
    functionDepth: 6
    functionLinenumber: 665
    functionLinenumberEnd: 678
    functionName: check_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - do_check_domain
    - xenmanage_get_domain_info
    linkageType: ''
    returnType: int
    signature: int check_domain(const void *k, void *v, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/domain.c:684,1
    - Dst: fire_special_watches
      Src: /src/xen/tools/xenstored/domain.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 680
    functionDepth: 6
    functionLinenumber: 680
    functionLinenumberEnd: 689
    functionName: check_domains
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - fire_special_watches
    - hashtable_iterate
    linkageType: ''
    returnType: void
    signature: void check_domains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search
      Src: /src/xen/tools/xenstored/domain.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 694
    functionName: find_domain_struct
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - hashtable_search
    linkageType: ''
    returnType: struct domain
    signature: struct domain *find_domain_struct(unsigned int domid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenmanage_poll_changed_domain
      Src: /src/xen/tools/xenstored/domain.c:704,1
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:706,1
    - Dst: do_check_domain
      Src: /src/xen/tools/xenstored/domain.c:708,1
    - Dst: fire_special_watches
      Src: /src/xen/tools/xenstored/domain.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: do_check_domains
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - xenmanage_poll_changed_domain
    - do_check_domain
    - find_domain_struct
    - fire_special_watches
    linkageType: ''
    returnType: void
    signature: void do_check_domains(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/xenstored/domain.c:720,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:721,1
    - Dst: do_check_domains
      Src: /src/xen/tools/xenstored/domain.c:724,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/xenstored/domain.c:726,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 716
    functionDepth: 7
    functionLinenumber: 716
    functionLinenumberEnd: 728
    functionName: handle_event
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - barf_perror
    - do_check_domains
    - xenevtchn_pending
    linkageType: ''
    returnType: void
    signature: void handle_event(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/domain.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - domid
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: talloc_domain_path
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    linkageType: ''
    returnType: char
    signature: char *talloc_domain_path(const void *context, unsigned int domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:738,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/domain.c:745,1
    - Dst: talloc_asprintf_append
      Src: /src/xen/tools/xenstored/domain.c:752,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/domain.c:759,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/domain.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - conn
    - domid
    argTypes:
    - void*
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 762
    functionName: domain_get_quota
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_reply
    - talloc_asprintf_append
    - find_domain_struct
    - strlen
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: "int domain_get_quota(const void *ctx, struct connection *conn,\n\t\t
      \    unsigned int domid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/domain.c:769,1
    - Dst: talloc_asprintf_append
      Src: /src/xen/tools/xenstored/domain.c:776,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/domain.c:783,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/domain.c:783,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - conn
    argTypes:
    - void*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 764
    functionDepth: 6
    functionLinenumber: 764
    functionLinenumberEnd: 786
    functionName: domain_max_global_acc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    - talloc_asprintf_append
    - send_reply
    - strlen
    linkageType: ''
    returnType: int
    signature: int domain_max_global_acc(const void *ctx, struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/domain.c:793,1
    - Dst: hashtable_add
      Src: /src/xen/tools/xenstored/domain.c:805,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:806,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/domain.c:811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - context
    - domid
    - unique_id
    argTypes:
    - void*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 814
    functionName: alloc_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - hashtable_add
    - talloc_free
    - talloc_zero
    - talloc_set_destructor
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *alloc_domain(const void *context, unsigned int domid,\n\t\t\t\t
      \  uint64_t unique_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:820,1
    - Dst: alloc_domain
      Src: /src/xen/tools/xenstored/domain.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 816
    functionDepth: 6
    functionLinenumber: 816
    functionLinenumberEnd: 823
    functionName: find_or_alloc_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - find_domain_struct
    - alloc_domain
    linkageType: ''
    returnType: struct domain
    signature: struct domain *find_or_alloc_domain(const void *ctx, unsigned int domid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:831,1
    - Dst: xenmanage_get_domain_info
      Src: /src/xen/tools/xenstored/domain.c:833,1
    - Dst: alloc_domain
      Src: /src/xen/tools/xenstored/domain.c:838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 825
    functionDepth: 6
    functionLinenumber: 825
    functionLinenumberEnd: 844
    functionName: find_or_alloc_existing_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - find_domain_struct
    - alloc_domain
    - xenmanage_get_domain_info
    linkageType: ''
    returnType: struct domain
    signature: struct domain *find_or_alloc_existing_domain(unsigned int domid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_domain_path
      Src: /src/xen/tools/xenstored/domain.c:852,1
    - Dst: wrl_domain_new
      Src: /src/xen/tools/xenstored/domain.c:858,1
    - Dst: evtchn_rebind
      Src: /src/xen/tools/xenstored/domain.c:861,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/xenstored/domain.c:868,1
    - Dst: new_connection
      Src: /src/xen/tools/xenstored/domain.c:877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - domain
    - port
    - restore
    argTypes:
    - struct domain*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 846
    functionDepth: 6
    functionLinenumber: 846
    functionLinenumberEnd: 887
    functionName: new_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - evtchn_rebind
    - new_connection
    - talloc_domain_path
    - xenevtchn_bind_interdomain
    - wrl_domain_new
    linkageType: ''
    returnType: int
    signature: int new_domain(struct domain *domain, int port, bool restore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 897
    functionName: find_domain_by_domid
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - find_domain_struct
    linkageType: ''
    returnType: struct domain
    signature: struct domain *find_domain_by_domid(unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 904
    functionName: trace_acc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_acc(...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_nbentry_fix
      Src: /src/xen/tools/xenstored/domain.c:911,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - head
    - chk_quota
    - update
    argTypes:
    - struct list_head*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 921
    functionName: acc_fix_domains
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_nbentry_fix
    linkageType: ''
    returnType: int
    signature: int acc_fix_domains(struct list_head *head, bool chk_quota, bool update)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_nbentry_fix
      Src: /src/xen/tools/xenstored/domain.c:911,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 918
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 9
    functionsReached:
    - domain_nbentry_fix
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(cd, head, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - domid
    argTypes:
    - struct list_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 934
    functionName: acc_find_changed_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct changed_domain
    signature: "struct changed_domain *acc_find_changed_domain(struct list_head *head,\n\t\t\t\t\t\t
      \     unsigned int domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 931
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(cd, head, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acc_find_changed_domain
      Src: /src/xen/tools/xenstored/domain.c:942,1
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/domain.c:946,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/domain.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - head
    - domid
    argTypes:
    - void*
    - struct list_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 954
    functionName: acc_get_changed_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - acc_find_changed_domain
    - talloc_zero
    - list_add_tail
    linkageType: ''
    returnType: struct changed_domain
    signature: "struct changed_domain *acc_get_changed_domain(const void *ctx,\n\t\t\t\t\t\t
      \    struct list_head *head,\n\t\t\t\t\t\t     unsigned int domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/domain.c:961,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:961,1
    - Dst: acc_get_changed_domain
      Src: /src/xen/tools/xenstored/domain.c:963,1
    - Dst: trace_acc
      Src: /src/xen/tools/xenstored/domain.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - head
    - what
    - val
    - domid
    argTypes:
    - void*
    - struct list_head*
    - enum accitem
    - int
    - unsigned int
    assertStmts:
    - condition: (what < ARRAY_SIZE(cd->acc))
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/xen/tools/xenstored/domain.c
    constantsTouched: []
    func_position:
      end: 973
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 973
    functionName: acc_add_changed_dom
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - trace_acc
    - assert
    - acc_get_changed_domain
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int acc_add_changed_dom(const void *ctx, struct list_head *head,\n\t\t\t
      \      enum accitem what, int val, unsigned int domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_delete_all_watches
      Src: /src/xen/tools/xenstored/domain.c:979,1
    - Dst: conn_delete_all_transactions
      Src: /src/xen/tools/xenstored/domain.c:980,1
    - Dst: conn_free_buffered_data
      Src: /src/xen/tools/xenstored/domain.c:981,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:983,1
    - Dst: xen_wmb
      Src: /src/xen/tools/xenstored/domain.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 975
    functionDepth: 6
    functionLinenumber: 975
    functionLinenumberEnd: 988
    functionName: domain_conn_reset
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - conn_free_buffered_data
    - conn_delete_all_watches
    - xen_wmb
    - talloc_free
    - conn_delete_all_transactions
    linkageType: ''
    returnType: void
    signature: void domain_conn_reset(struct domain *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/xen/tools/xenstored/domain.c:999,1
    - Dst: conn_delete_all_watches
      Src: /src/xen/tools/xenstored/domain.c:1006,1
    - Dst: conn_delete_all_transactions
      Src: /src/xen/tools/xenstored/domain.c:1007,1
    - Dst: conn_free_buffered_data
      Src: /src/xen/tools/xenstored/domain.c:1008,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1010,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - err
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 997
    functionDepth: 6
    functionLinenumber: 997
    functionLinenumberEnd: 1015
    functionName: ignore_connection
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - conn_free_buffered_data
    - trace
    - conn_delete_all_watches
    - talloc_free
    - conn_delete_all_transactions
    linkageType: ''
    returnType: void
    signature: void ignore_connection(struct connection *conn, unsigned int err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_or_alloc_domain
      Src: /src/xen/tools/xenstored/domain.c:1026,1
    - Dst: map_interface
      Src: /src/xen/tools/xenstored/domain.c:1031,1
    - Dst: new_domain
      Src: /src/xen/tools/xenstored/domain.c:1038,1
    - Dst: unmap_interface
      Src: /src/xen/tools/xenstored/domain.c:1041,1
    - Dst: setup_structure
      Src: /src/xen/tools/xenstored/domain.c:1050,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/domain.c:1053,1
    - Dst: fire_special_watches
      Src: /src/xen/tools/xenstored/domain.c:1056,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/xenstored/domain.c:1060,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/xenstored/domain.c:1061,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - ctx
    - domid
    - port
    - restore
    argTypes:
    - void*
    - unsigned int
    - evtchn_port_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1017
    functionDepth: 7
    functionLinenumber: 1017
    functionLinenumberEnd: 1066
    functionName: introduce_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 2
    functionsReached:
    - xenevtchn_unbind
    - unmap_interface
    - fire_special_watches
    - map_interface
    - xenevtchn_bind_interdomain
    - setup_structure
    - find_or_alloc_domain
    - talloc_steal
    - new_domain
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *introduce_domain(const void *ctx,\n\t\t\t\t       unsigned
      int domid,\n\t\t\t\t       evtchn_port_t port, bool restore)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/domain.c:1077,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1077,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1077,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1080,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1082,1
    - Dst: introduce_domain
      Src: /src/xen/tools/xenstored/domain.c:1088,1
    - Dst: domain_conn_reset
      Src: /src/xen/tools/xenstored/domain.c:1092,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/xenstored/domain.c:1098,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1069
    functionDepth: 8
    functionLinenumber: 1069
    functionLinenumberEnd: 1104
    functionName: do_introduce
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_ack
    - domain_conn_reset
    - ARRAY_SIZE
    - xenevtchn_notify
    - get_strings
    - introduce_domain
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_introduce(const void *ctx, struct connection *conn,\n\t\t struct
      buffered_data *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_by_domid
      Src: /src/xen/tools/xenstored/domain.c:1110,1
    - Dst: ERR_PTR
      Src: /src/xen/tools/xenstored/domain.c:1112,1
    - Dst: ERR_PTR
      Src: /src/xen/tools/xenstored/domain.c:1114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1106
    functionDepth: 5
    functionLinenumber: 1106
    functionLinenumberEnd: 1116
    functionName: find_connected_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - find_domain_by_domid
    linkageType: ''
    returnType: struct domain
    signature: struct domain *find_connected_domain(unsigned int domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/domain.c:1124,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1124,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1124,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1127,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1128,1
    - Dst: find_connected_domain
      Src: /src/xen/tools/xenstored/domain.c:1130,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/domain.c:1131,1
    - Dst: PTR_ERR
      Src: /src/xen/tools/xenstored/domain.c:1132,1
    - Dst: find_connected_domain
      Src: /src/xen/tools/xenstored/domain.c:1134,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/domain.c:1135,1
    - Dst: PTR_ERR
      Src: /src/xen/tools/xenstored/domain.c:1136,1
    - Dst: talloc_reference
      Src: /src/xen/tools/xenstored/domain.c:1138,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1144
    functionName: do_set_target
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_ack
    - IS_ERR
    - ARRAY_SIZE
    - find_connected_domain
    - PTR_ERR
    - talloc_reference
    - get_strings
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_set_target(const void *ctx, struct connection *conn,\n\t\t
      \ struct buffered_data *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: onearg
      Src: /src/xen/tools/xenstored/domain.c:1149,1
    - Dst: ERR_PTR
      Src: /src/xen/tools/xenstored/domain.c:1153,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1155,1
    - Dst: ERR_PTR
      Src: /src/xen/tools/xenstored/domain.c:1157,1
    - Dst: find_connected_domain
      Src: /src/xen/tools/xenstored/domain.c:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - in
    argTypes:
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1146
    functionDepth: 6
    functionLinenumber: 1146
    functionLinenumberEnd: 1160
    functionName: onearg_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - atoi
    - ERR_PTR
    - find_connected_domain
    - onearg
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *onearg_domain(struct connection *conn,\n\t\t\t\t    struct
      buffered_data *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: onearg_domain
      Src: /src/xen/tools/xenstored/domain.c:1168,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/domain.c:1169,1
    - Dst: PTR_ERR
      Src: /src/xen/tools/xenstored/domain.c:1170,1
    - Dst: conn_delete_all_watches
      Src: /src/xen/tools/xenstored/domain.c:1173,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1175,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1163
    functionDepth: 7
    functionLinenumber: 1163
    functionLinenumberEnd: 1180
    functionName: do_release
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_ack
    - IS_ERR
    - onearg_domain
    - PTR_ERR
    - conn_delete_all_watches
    - talloc_free
    linkageType: ''
    returnType: int
    signature: "int do_release(const void *ctx, struct connection *conn,\n\t       struct
      buffered_data *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: onearg_domain
      Src: /src/xen/tools/xenstored/domain.c:1187,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/domain.c:1188,1
    - Dst: PTR_ERR
      Src: /src/xen/tools/xenstored/domain.c:1189,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1182
    functionDepth: 7
    functionLinenumber: 1182
    functionLinenumberEnd: 1196
    functionName: do_resume
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - onearg_domain
    - IS_ERR
    - PTR_ERR
    - send_ack
    linkageType: ''
    returnType: int
    signature: "int do_resume(const void *ctx, struct connection *conn,\n\t      struct
      buffered_data *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: onearg
      Src: /src/xen/tools/xenstored/domain.c:1202,1
    - Dst: talloc_domain_path
      Src: /src/xen/tools/xenstored/domain.c:1207,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1207,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/domain.c:1211,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/domain.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1198
    functionDepth: 6
    functionLinenumber: 1198
    functionLinenumberEnd: 1214
    functionName: do_get_domain_path
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_reply
    - talloc_domain_path
    - onearg
    - strlen
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_get_domain_path(const void *ctx, struct connection *conn,\n\t\t
      \      struct buffered_data *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: onearg
      Src: /src/xen/tools/xenstored/domain.c:1221,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1226,1
    - Dst: find_domain_by_domid
      Src: /src/xen/tools/xenstored/domain.c:1230,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/domain.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1216
    functionDepth: 5
    functionLinenumber: 1216
    functionLinenumberEnd: 1235
    functionName: do_is_domain_introduced
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - atoi
    - find_domain_by_domid
    - send_reply
    - onearg
    linkageType: ''
    returnType: int
    signature: "int do_is_domain_introduced(const void *ctx, struct connection *conn,\n\t\t\t
      \   struct buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_delete_all_watches
      Src: /src/xen/tools/xenstored/domain.c:1241,1
    - Dst: conn_delete_all_transactions
      Src: /src/xen/tools/xenstored/domain.c:1242,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1238
    functionDepth: 6
    functionLinenumber: 1238
    functionLinenumberEnd: 1247
    functionName: do_reset_watches
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - conn_delete_all_watches
    - send_ack
    - conn_delete_all_transactions
    linkageType: ''
    returnType: int
    signature: "int do_reset_watches(const void *ctx, struct connection *conn,\n\t\t
      \    struct buffered_data *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/domain.c:1259,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1259,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1264,1
    - Dst: find_or_alloc_existing_domain
      Src: /src/xen/tools/xenstored/domain.c:1265,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/domain.c:1272,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/domain.c:1276,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/domain.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1249
    functionDepth: 7
    functionLinenumber: 1249
    functionLinenumberEnd: 1279
    functionName: do_get_feature
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_reply
    - ARRAY_SIZE
    - find_or_alloc_existing_domain
    - get_strings
    - strlen
    - talloc_asprintf
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_get_feature(const void *ctx, struct connection *conn,\n\t\t
      \  struct buffered_data *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/domain.c:1289,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1289,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1289,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1292,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/domain.c:1293,1
    - Dst: find_or_alloc_existing_domain
      Src: /src/xen/tools/xenstored/domain.c:1294,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/domain.c:1304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1281
    functionDepth: 7
    functionLinenumber: 1281
    functionLinenumberEnd: 1307
    functionName: do_set_feature
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - send_ack
    - ARRAY_SIZE
    - find_or_alloc_existing_domain
    - get_strings
    - atoi
    linkageType: ''
    returnType: int
    signature: "int do_set_feature(const void *ctx, struct connection *conn,\n\t\t
      \  struct buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_close
      Src: /src/xen/tools/xenstored/domain.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1313
    functionName: close_xgt_handle
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - xengnttab_close
    linkageType: ''
    returnType: int
    signature: int close_xgt_handle(void *_handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1323
    functionName: get_implicit_path
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_implicit_path(const struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_domain_evtchn
      Src: /src/xen/tools/xenstored/domain.c:1330,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1332,1
    - Dst: introduce_domain
      Src: /src/xen/tools/xenstored/domain.c:1334,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/domain.c:1336,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/xenstored/domain.c:1343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1325
    functionDepth: 8
    functionLinenumber: 1325
    functionLinenumberEnd: 1346
    functionName: init_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - get_domain_evtchn
    - xprintf
    - xenevtchn_notify
    - introduce_domain
    linkageType: ''
    returnType: bool
    signature: bool init_domain(unsigned int domid)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xenmanage_poll_changed_domain
      Src: /src/xen/tools/xenstored/domain.c:1357,1
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/domain.c:1361,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1364,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/domain.c:1392,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/domain.c:1397,1
    - Dst: snprintf
      Src: /src/xen/tools/xenstored/domain.c:1400,1
    - Dst: init_domain
      Src: /src/xen/tools/xenstored/domain.c:1410,1
    - Dst: init_domain
      Src: /src/xen/tools/xenstored/domain.c:1418,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1422,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/domain.c:1425,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1347
    functionDepth: 6
    functionLinenumber: 1347
    functionLinenumberEnd: 1426
    functionName: init_domains
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - snprintf
    - barf_perror
    - xprintf
    - xenmanage_poll_changed_domain
    - talloc_realloc
    - barf
    - init_domain
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void init_domains(bool live_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mount_9pfs
      Src: /src/xen/tools/xenstored/domain.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1433
    functionName: stubdom_init
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - mount_9pfs
    linkageType: ''
    returnType: void
    signature: void stubdom_init(bool live_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1438
    functionName: domhash_fn
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domhash_fn(const void *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1443
    functionName: domeq_fn
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int domeq_fn(const void *key1, const void *key2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_hashtable
      Src: /src/xen/tools/xenstored/domain.c:1448,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1450,1
    - Dst: xenmanage_open
      Src: /src/xen/tools/xenstored/domain.c:1452,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1454,1
    - Dst: talloc
      Src: /src/xen/tools/xenstored/domain.c:1456,1
    - Dst: talloc_autofree_context
      Src: /src/xen/tools/xenstored/domain.c:1456,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1458,1
    - Dst: xengnttab_open
      Src: /src/xen/tools/xenstored/domain.c:1460,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1462,1
    - Dst: xengnttab_set_max_grants
      Src: /src/xen/tools/xenstored/domain.c:1468,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/domain.c:1470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1445
    functionDepth: 6
    functionLinenumber: 1445
    functionLinenumberEnd: 1471
    functionName: domain_early_init
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - talloc
    - create_hashtable
    - xengnttab_set_max_grants
    - xengnttab_open
    - talloc_autofree_context
    - xenmanage_open
    - talloc_set_destructor
    linkageType: ''
    returnType: void
    signature: void domain_early_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/xenstored/domain.c:1478,1
    - Dst: evtchn_fdopen
      Src: /src/xen/tools/xenstored/domain.c:1480,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1483,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/xenstored/domain.c:1485,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/domain.c:1486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - evtfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1473
    functionDepth: 3
    functionLinenumber: 1473
    functionLinenumberEnd: 1488
    functionName: domain_init
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - evtchn_fdopen
    - barf_perror
    - xenevtchn_bind_virq
    - xenevtchn_open
    linkageType: ''
    returnType: void
    signature: void domain_init(int evtfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/xenstored/domain.c:1493,1
    - Dst: xenmanage_close
      Src: /src/xen/tools/xenstored/domain.c:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1490
    functionDepth: 3
    functionLinenumber: 1490
    functionLinenumberEnd: 1496
    functionName: domain_deinit
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - xenmanage_close
    - xenevtchn_unbind
    linkageType: ''
    returnType: void
    signature: void domain_deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:1511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domid
    - gen
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1507
    functionDepth: 4
    functionLinenumber: 1507
    functionLinenumberEnd: 1514
    functionName: chk_domain_generation
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - find_domain_struct
    linkageType: ''
    returnType: bool
    signature: bool chk_domain_generation(unsigned int domid, uint64_t gen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:1529,1
    - Dst: xenmanage_get_domain_info
      Src: /src/xen/tools/xenstored/domain.c:1531,1
    - Dst: alloc_domain
      Src: /src/xen/tools/xenstored/domain.c:1534,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - perms
    argTypes:
    - struct node_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1521
    functionDepth: 6
    functionLinenumber: 1521
    functionLinenumberEnd: 1540
    functionName: domain_alloc_permrefs
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - find_domain_struct
    - alloc_domain
    - xenmanage_get_domain_info
    linkageType: ''
    returnType: int
    signature: int domain_alloc_permrefs(struct node_perms *perms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chk_domain_generation
      Src: /src/xen/tools/xenstored/domain.c:1554,1
    - Dst: talloc_memdup
      Src: /src/xen/tools/xenstored/domain.c:1563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1546
    functionDepth: 5
    functionLinenumber: 1546
    functionLinenumberEnd: 1575
    functionName: domain_adjust_node_perms
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - chk_domain_generation
    - talloc_memdup
    linkageType: ''
    returnType: int
    signature: int domain_adjust_node_perms(struct node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/domain.c:1580,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1580,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/domain.c:1581,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1581,1
    - Dst: domid_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - d
    - what
    - val
    argTypes:
    - struct domain*
    - enum accitem
    - unsigned int
    assertStmts:
    - condition: (what < ARRAY_SIZE(d->acc))
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/xen/tools/xenstored/domain.c
    - condition: (what < ARRAY_SIZE(hard_quotas))
      pos:
        line_end: 1580
        line_start: 1580
        source_file: /src/xen/tools/xenstored/domain.c
    constantsTouched: []
    func_position:
      end: 1587
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1587
    functionName: domain_acc_valid_max
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - assert
    - ARRAY_SIZE
    - domid_is_unprivileged
    linkageType: ''
    returnType: void
    signature: "void domain_acc_valid_max(struct domain *d, enum accitem what,\n\t\t\t\t
      unsigned int val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/domain.c:1593,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/domain.c:1593,1
    - Dst: domain_acc_valid_max
      Src: /src/xen/tools/xenstored/domain.c:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - d
    - what
    - add
    argTypes:
    - struct domain*
    - enum accitem
    - int
    assertStmts:
    - condition: (what < ARRAY_SIZE(d->acc))
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/xen/tools/xenstored/domain.c
    constantsTouched: []
    func_position:
      end: 1611
      start: 1589
    functionDepth: 2
    functionLinenumber: 1589
    functionLinenumberEnd: 1611
    functionName: domain_acc_add_valid
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - assert
    - ARRAY_SIZE
    - domain_acc_valid_max
    linkageType: ''
    returnType: int
    signature: int domain_acc_add_valid(struct domain *d, enum accitem what, int add)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:1624,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/domain.c:1627,1
    - Dst: find_or_alloc_existing_domain
      Src: /src/xen/tools/xenstored/domain.c:1631,1
    - Dst: transaction_get_changed_domains
      Src: /src/xen/tools/xenstored/domain.c:1643,1
    - Dst: acc_find_changed_domain
      Src: /src/xen/tools/xenstored/domain.c:1645,1
    - Dst: acc_add_changed_dom
      Src: /src/xen/tools/xenstored/domain.c:1649,1
    - Dst: domain_acc_add_valid
      Src: /src/xen/tools/xenstored/domain.c:1651,1
    - Dst: transaction_get_changed_domains
      Src: /src/xen/tools/xenstored/domain.c:1655,1
    - Dst: acc_add_changed_dom
      Src: /src/xen/tools/xenstored/domain.c:1656,1
    - Dst: fail_transaction
      Src: /src/xen/tools/xenstored/domain.c:1659,1
    - Dst: domain_acc_add_valid
      Src: /src/xen/tools/xenstored/domain.c:1662,1
    - Dst: trace_acc
      Src: /src/xen/tools/xenstored/domain.c:1665,1
    - Dst: domain_acc_add_valid
      Src: /src/xen/tools/xenstored/domain.c:1667,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - conn
    - domid
    - what
    - add
    - no_dom_alloc
    argTypes:
    - struct connection*
    - unsigned int
    - enum accitem
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1613
    functionDepth: 7
    functionLinenumber: 1613
    functionLinenumberEnd: 1670
    functionName: domain_acc_add
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - trace_acc
    - domain_acc_add_valid
    - find_or_alloc_existing_domain
    - find_domain_struct
    - fail_transaction
    - acc_find_changed_domain
    - acc_add_changed_dom
    - corrupt
    - transaction_get_changed_domains
    linkageType: ''
    returnType: int
    signature: "int domain_acc_add(struct connection *conn, unsigned int domid,\n\t\t\t
      \ enum accitem what, int add, bool no_dom_alloc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/domain.c:1676,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/domain.c:1677,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1672
    functionDepth: 5
    functionLinenumber: 1672
    functionLinenumberEnd: 1680
    functionName: acc_drop
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - talloc_free
    - list_del
    - list_top
    linkageType: ''
    returnType: void
    signature: void acc_drop(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/domain.c:1694,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/domain.c:1695,1
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1698,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:1701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1682
    functionDepth: 8
    functionLinenumber: 1682
    functionLinenumberEnd: 1705
    functionName: acc_commit
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - domain_acc_add
    - talloc_free
    - list_del
    - list_top
    linkageType: ''
    returnType: void
    signature: void acc_commit(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - v
    - arg
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1716
    functionName: domain_reset_global_acc_sub
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int domain_reset_global_acc_sub(const void *k, void *v, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/domain.c:1726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1727
    functionName: domain_reset_global_acc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - hashtable_iterate
    linkageType: ''
    returnType: void
    signature: void domain_reset_global_acc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1735,1
    - Dst: domain_acc_valid_max
      Src: /src/xen/tools/xenstored/domain.c:1738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - conn
    - what
    - val
    argTypes:
    - struct connection*
    - enum accitem
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1729
    functionDepth: 2
    functionLinenumber: 1729
    functionLinenumberEnd: 1741
    functionName: domain_max_chk
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_is_unprivileged
    - domain_acc_valid_max
    linkageType: ''
    returnType: bool
    signature: "bool domain_max_chk(const struct connection *conn, enum accitem what,\n\t\t
      \   unsigned int val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - domid
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1743
    functionDepth: 8
    functionLinenumber: 1743
    functionLinenumberEnd: 1747
    functionName: domain_nbentry_inc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: int
    signature: int domain_nbentry_inc(struct connection *conn, unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - domid
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1749
    functionDepth: 8
    functionLinenumber: 1749
    functionLinenumberEnd: 1753
    functionName: domain_nbentry_dec
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: int
    signature: int domain_nbentry_dec(struct connection *conn, unsigned int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1759,1
    - Dst: domid_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - domid
    - num
    - update
    argTypes:
    - unsigned int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1755
    functionDepth: 8
    functionLinenumber: 1755
    functionLinenumberEnd: 1764
    functionName: domain_nbentry_fix
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 2
    functionsReached:
    - domain_acc_add
    - domid_is_unprivileged
    linkageType: ''
    returnType: int
    signature: int domain_nbentry_fix(unsigned int domid, int num, bool update)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1768,1
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1766
    functionDepth: 8
    functionLinenumber: 1766
    functionLinenumberEnd: 1770
    functionName: domain_nbentry
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - domain_acc_add
    - domain_is_unprivileged
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_nbentry(struct connection *conn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: domid_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1777,1
    - Dst: time
      Src: /src/xen/tools/xenstored/domain.c:1782,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:1787,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:1798,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:1805,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/domain.c:1812,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - conn
    - mem
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1819
    functionName: domain_chk_quota
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - time
    - syslog
    - domid_is_unprivileged
    linkageType: ''
    returnType: bool
    signature: bool domain_chk_quota(struct connection *conn, unsigned int mem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1826,1
    - Dst: domain_chk_quota
      Src: /src/xen/tools/xenstored/domain.c:1834,1
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - conn
    - domid
    - mem
    - no_quota_check
    argTypes:
    - struct connection*
    - unsigned int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1821
    functionDepth: 8
    functionLinenumber: 1821
    functionLinenumberEnd: 1848
    functionName: domain_memory_add
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_chk_quota
    - domain_acc_add
    linkageType: ''
    returnType: int
    signature: "int domain_memory_add(struct connection *conn, unsigned int domid,
      int mem,\n\t\t      bool no_quota_check)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1850
    functionDepth: 8
    functionLinenumber: 1850
    functionLinenumberEnd: 1853
    functionName: domain_watch_inc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_watch_inc(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1855
    functionDepth: 8
    functionLinenumber: 1855
    functionLinenumberEnd: 1858
    functionName: domain_watch_dec
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 2
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_watch_dec(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1862,1
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1860
    functionDepth: 8
    functionLinenumber: 1860
    functionLinenumberEnd: 1865
    functionName: domain_watch
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    - domain_is_unprivileged
    linkageType: ''
    returnType: int
    signature: int domain_watch(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1867
    functionDepth: 8
    functionLinenumber: 1867
    functionLinenumberEnd: 1870
    functionName: domain_outstanding_inc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_outstanding_inc(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - domid
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1872
    functionDepth: 8
    functionLinenumber: 1872
    functionLinenumberEnd: 1875
    functionName: domain_outstanding_dec
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_outstanding_dec(struct connection *conn, unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1877
    functionDepth: 8
    functionLinenumber: 1877
    functionLinenumberEnd: 1880
    functionName: domain_transaction_inc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_transaction_inc(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1882
    functionDepth: 8
    functionLinenumber: 1882
    functionLinenumberEnd: 1885
    functionName: domain_transaction_dec
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    linkageType: ''
    returnType: void
    signature: void domain_transaction_dec(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/domain.c:1889,1
    - Dst: domain_acc_add
      Src: /src/xen/tools/xenstored/domain.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1887
    functionDepth: 8
    functionLinenumber: 1887
    functionLinenumberEnd: 1892
    functionName: domain_transaction_get
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - domain_acc_add
    - domain_is_unprivileged
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_transaction_get(struct connection *conn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/xenstored/domain.c:1902,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/domain.c:1904,1
    - Dst: memset
      Src: /src/xen/tools/xenstored/domain.c:1910,1
    - Dst: dump_state_buffered_data
      Src: /src/xen/tools/xenstored/domain.c:1922,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/xenstored/domain.c:1926,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/domain.c:1931,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/domain.c:1933,1
    - Dst: dump_state_buffered_data
      Src: /src/xen/tools/xenstored/domain.c:1936,1
    - Dst: dump_state_align
      Src: /src/xen/tools/xenstored/domain.c:1939,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/domain.c:1943,1
    - Dst: dump_state_watches
      Src: /src/xen/tools/xenstored/domain.c:1946,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1952
    functionName: dump_state_connections
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - dump_state_align
    - ROUNDUP
    - BUILD_BUG_ON
    - memset
    - fwrite
    - dump_state_watches
    - list_for_each_entry
    - dump_state_buffered_data
    linkageType: ''
    returnType: char
    signature: char *dump_state_connections(FILE *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_socket_connection
      Src: /src/xen/tools/xenstored/domain.c:1961,1
    - Dst: introduce_domain
      Src: /src/xen/tools/xenstored/domain.c:1964,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/domain.c:1967,1
    - Dst: ignore_connection
      Src: /src/xen/tools/xenstored/domain.c:1978,1
    - Dst: find_or_alloc_domain
      Src: /src/xen/tools/xenstored/domain.c:1981,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/domain.c:1984,1
    - Dst: talloc_reference
      Src: /src/xen/tools/xenstored/domain.c:1985,1
    - Dst: read_state_buffered_data
      Src: /src/xen/tools/xenstored/domain.c:1992,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/xenstored/domain.c:1999,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1954
    functionDepth: 8
    functionLinenumber: 1954
    functionLinenumberEnd: 2001
    functionName: read_state_connection
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - ROUNDUP
    - add_socket_connection
    - barf
    - introduce_domain
    - find_or_alloc_domain
    - read_state_buffered_data
    - talloc_reference
    - ignore_connection
    linkageType: ''
    returnType: void
    signature: void read_state_connection(const void *ctx, const void *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xenstored/domain.c:2012,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/domain.c:2018,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/domain.c:2020,1
    - Dst: dump_state_align
      Src: /src/xen/tools/xenstored/domain.c:2022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - k
    - v
    - arg
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2003
    functionDepth: 1
    functionLinenumber: 2003
    functionLinenumberEnd: 2026
    functionName: dump_state_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - memset
    - fwrite
    - dump_state_align
    linkageType: ''
    returnType: int
    signature: int dump_state_domain(const void *k, void *v, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/domain.c:2032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2036
    functionName: dump_state_domains
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - hashtable_iterate
    linkageType: ''
    returnType: char
    signature: char *dump_state_domains(FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:2043,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/domain.c:2045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - state
    - version
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2038
    functionDepth: 4
    functionLinenumber: 2038
    functionLinenumberEnd: 2049
    functionName: read_state_domain
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 1
    functionsReached:
    - barf
    - find_domain_struct
    linkageType: ''
    returnType: void
    signature: void read_state_domain(const void *ctx, const void *state, unsigned
      int version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/domain.c:2062,1
    - Dst: hashtable_add
      Src: /src/xen/tools/xenstored/domain.c:2074,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/domain.c:2075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - k
    - v
    - arg
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2056
    functionDepth: 5
    functionLinenumber: 2056
    functionLinenumberEnd: 2080
    functionName: domain_check_acc_init_sub
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - hashtable_add
    - talloc_free
    - talloc_zero
    linkageType: ''
    returnType: int
    signature: int domain_check_acc_init_sub(const void *k, void *v, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_hashtable
      Src: /src/xen/tools/xenstored/domain.c:2086,1
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/domain.c:2091,1
    - Dst: hashtable_destroy
      Src: /src/xen/tools/xenstored/domain.c:2092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2082
    functionDepth: 6
    functionLinenumber: 2082
    functionLinenumberEnd: 2097
    functionName: domain_check_acc_init
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - create_hashtable
    - hashtable_iterate
    - hashtable_destroy
    linkageType: ''
    returnType: struct hashtable
    signature: struct hashtable *domain_check_acc_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/domain.c:2104,1
    - Dst: hashtable_search
      Src: /src/xen/tools/xenstored/domain.c:2105,1
    - Dst: log
      Src: /src/xen/tools/xenstored/domain.c:2107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - node
    - domains
    argTypes:
    - struct node*
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2099
    functionDepth: 3
    functionLinenumber: 2099
    functionLinenumberEnd: 2110
    functionName: domain_check_acc_add
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - get_node_owner
    - hashtable_search
    - log
    linkageType: ''
    returnType: void
    signature: void domain_check_acc_add(const struct node *node, struct hashtable
      *domains)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/xen/tools/xenstored/domain.c:2120,1
    - Dst: find_domain_struct
      Src: /src/xen/tools/xenstored/domain.c:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - k
    - v
    - arg
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2112
    functionDepth: 4
    functionLinenumber: 2112
    functionLinenumberEnd: 2130
    functionName: domain_check_acc_cb
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - log
    - find_domain_struct
    linkageType: ''
    returnType: int
    signature: int domain_check_acc_cb(const void *k, void *v, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/domain.c:2134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domains
    argTypes:
    - struct hashtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2135
    functionName: domain_check_acc
    functionSourceFile: /src/xen/tools/xenstored/domain.c
    functionUses: 0
    functionsReached:
    - hashtable_iterate
    linkageType: ''
    returnType: void
    signature: void domain_check_acc(struct hashtable *domains)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: get_node_owner
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_node_owner(const struct node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - node
    - perms
    argTypes:
    - struct node*
    - struct node_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: node_to_node_perms
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void node_to_node_perms(const struct node *node,\n\t\t\t\t      struct
      node_perms *perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_to_node_perms
      Src: /src/xen/tools/xenstored/core.h:277,1
    - Dst: perm_for_conn
      Src: /src/xen/tools/xenstored/core.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - node
    argTypes:
    - struct connection*
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 280
    functionName: perm_for_conn_from_node
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 1
    functionsReached:
    - perm_for_conn
    - node_to_node_perms
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int perm_for_conn_from_node(struct connection *conn,\n\t\t\t\t\t\t
      \  const struct node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - perms
    - node
    argTypes:
    - struct node_perms*
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: node_perms_to_node
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void node_perms_to_node(const struct node_perms *perms,\n\t\t\t\t
      \     struct node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 345
    functionName: log
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: trace_tdb
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: trace_tdb(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: domid_is_unprivileged
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool domid_is_unprivileged(unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domid_is_unprivileged
      Src: /src/xen/tools/xenstored/core.h:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: domain_is_unprivileged
    functionSourceFile: /src/xen/tools/xenstored/core.h
    functionUses: 8
    functionsReached:
    - domid_is_unprivileged
    linkageType: ''
    returnType: bool
    signature: bool domain_is_unprivileged(const struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/utils.c:18,1
    - Dst: vfprintf
      Src: /src/xen/tools/xenstored/utils.c:19,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/utils.c:20,1
    - Dst: fflush
      Src: /src/xen/tools/xenstored/utils.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: default_xprintf
    functionSourceFile: /src/xen/tools/xenstored/utils.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void default_xprintf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/utils.c:32,1
    - Dst: va_start
      Src: /src/xen/tools/xenstored/utils.c:34,1
    - Dst: vasprintf
      Src: /src/xen/tools/xenstored/utils.c:35,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/utils.c:36,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/utils.c:39,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/utils.c:40,1
    - Dst: free
      Src: /src/xen/tools/xenstored/utils.c:41,1
    - Dst: exit
      Src: /src/xen/tools/xenstored/utils.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: barf
    functionSourceFile: /src/xen/tools/xenstored/utils.c
    functionUses: 8
    functionsReached:
    - va_start
    - xprintf
    - vasprintf
    - free
    - syslog
    - exit
    - va_end
    linkageType: ''
    returnType: void
    signature: void barf(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/utils.c:52,1
    - Dst: va_start
      Src: /src/xen/tools/xenstored/utils.c:54,1
    - Dst: vasprintf
      Src: /src/xen/tools/xenstored/utils.c:55,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/utils.c:56,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/utils.c:59,1
    - Dst: strerror
      Src: /src/xen/tools/xenstored/utils.c:59,1
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/utils.c:60,1
    - Dst: strerror
      Src: /src/xen/tools/xenstored/utils.c:60,1
    - Dst: free
      Src: /src/xen/tools/xenstored/utils.c:61,1
    - Dst: exit
      Src: /src/xen/tools/xenstored/utils.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: barf_perror
    functionSourceFile: /src/xen/tools/xenstored/utils.c
    functionUses: 12
    functionsReached:
    - va_start
    - xprintf
    - vasprintf
    - free
    - syslog
    - strerror
    - exit
    - va_end
    linkageType: ''
    returnType: void
    signature: void barf_perror(const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/xen/tools/xenstored/utils.c:71,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/utils.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: dump_state_align
    functionSourceFile: /src/xen/tools/xenstored/utils.c
    functionUses: 3
    functionsReached:
    - fwrite
    - ftell
    linkageType: ''
    returnType: char
    signature: char *dump_state_align(FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/core.c:83,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xenstored/core.c:84,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/core.c:85,1
    - Dst: write
      Src: /src/xen/tools/xenstored/core.c:88,1
    - Dst: va_start
      Src: /src/xen/tools/xenstored/core.c:93,1
    - Dst: talloc_vasprintf
      Src: /src/xen/tools/xenstored/core.c:94,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/core.c:95,1
    - Dst: write
      Src: /src/xen/tools/xenstored/core.c:97,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:97,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: trace
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - va_start
    - talloc_vasprintf
    - write
    - vsnprintf
    - strlen
    - talloc_free
    - va_end
    linkageType: ''
    returnType: void
    signature: void trace(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xenstored/core.c:113,1
    - Dst: localtime
      Src: /src/xen/tools/xenstored/core.c:114,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:116,1
    - Dst: sockmsg_string
      Src: /src/xen/tools/xenstored/core.c:119,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:122,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - conn
    - data
    - type
    argTypes:
    - struct connection*
    - struct buffered_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: trace_io
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - time
    - localtime
    - trace
    - sockmsg_string
    linkageType: ''
    returnType: void
    signature: "void trace_io(const struct connection *conn,\n\t\t     const struct
      buffered_data *data,\n\t\t     const char *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: trace_create
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - trace
    linkageType: ''
    returnType: void
    signature: void trace_create(const void *data, const char *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: trace_destroy
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - trace
    linkageType: ''
    returnType: void
    signature: void trace_destroy(const void *data, const char *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/core.c:145,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - filename
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: absolute_filename
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    - talloc_strdup
    linkageType: ''
    returnType: char
    signature: char *absolute_filename(const void *ctx, const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/xenstored/core.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: close_log
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void close_log(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close_log
      Src: /src/xen/tools/xenstored/core.c:159,1
    - Dst: open
      Src: /src/xen/tools/xenstored/core.c:161,1
    - Dst: perror
      Src: /src/xen/tools/xenstored/core.c:165,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: reopen_log
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - trace
    - open
    - close_log
    - perror
    linkageType: ''
    returnType: void
    signature: void reopen_log(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/xen/tools/xenstored/core.c:175,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: get_now_msec
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - clock_gettime
    - barf_perror
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_now_msec(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/tools/xenstored/core.c:197,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:206,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:214,1
    - Dst: domain_outstanding_dec
      Src: /src/xen/tools/xenstored/core.c:223,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/core.c:225,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:227,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/core.c:232,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:234,1
    - Dst: list_add
      Src: /src/xen/tools/xenstored/core.c:235,1
    - Dst: domain_outstanding_dec
      Src: /src/xen/tools/xenstored/core.c:239,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:241,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - out
    - conn
    argTypes:
    - struct buffered_data*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 192
    functionDepth: 9
    functionLinenumber: 192
    functionLinenumberEnd: 242
    functionName: free_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - domain_outstanding_dec
    - list_add
    - list_del
    - domain_memory_add_nochk
    - talloc_steal
    - talloc_free
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void free_buffered_data(struct buffered_data *out,\n\t\t\t       struct
      connection *conn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/tools/xenstored/core.c:256,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:273,1
    - Dst: free_buffered_data
      Src: /src/xen/tools/xenstored/core.c:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - conn
    - msecs
    - ptimeout
    argTypes:
    - struct connection*
    - uint64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 244
    functionDepth: 10
    functionLinenumber: 244
    functionLinenumberEnd: 286
    functionName: check_event_timeout
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - trace
    - list_for_each_entry_safe
    - free_buffered_data
    linkageType: ''
    returnType: void
    signature: "void check_event_timeout(struct connection *conn, uint64_t msecs,\n\t\t\t\tint
      *ptimeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/core.c:292,1
    - Dst: free_buffered_data
      Src: /src/xen/tools/xenstored/core.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 10
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: conn_free_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - free_buffered_data
    - list_top
    linkageType: ''
    returnType: void
    signature: void conn_free_buffered_data(struct connection *conn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: list_top
      Src: /src/xen/tools/xenstored/core.c:304,1
    - Dst: struct connection*::funcs::write
      Src: /src/xen/tools/xenstored/core.c:310,1
    - Dst: struct connection*::funcs::write
      Src: /src/xen/tools/xenstored/core.c:327,1
    - Dst: trace_io
      Src: /src/xen/tools/xenstored/core.c:336,1
    - Dst: free_buffered_data
      Src: /src/xen/tools/xenstored/core.c:338,1
    - Dst: trace_io
      Src: /src/xen/tools/xenstored/core.c:343,1
    - Dst: trace_io
      Src: /src/xen/tools/xenstored/core.c:348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 298
    functionDepth: 10
    functionLinenumber: 298
    functionLinenumberEnd: 350
    functionName: write_messages
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - struct connection*::funcs::write
    - free_buffered_data
    - trace_io
    - list_top
    linkageType: ''
    returnType: bool
    signature: bool write_messages(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/tools/xenstored/core.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - _req
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: undelay_request
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - list_del
    linkageType: ''
    returnType: int
    signature: int undelay_request(void *_req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct delayed_request*::func
      Src: /src/xen/tools/xenstored/core.c:364,1
    - Dst: undelay_request
      Src: /src/xen/tools/xenstored/core.c:365,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/core.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct delayed_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: call_delayed
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - undelay_request
    - struct delayed_request*::func
    - talloc_set_destructor
    linkageType: ''
    returnType: void
    signature: void call_delayed(struct delayed_request *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:380,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/core.c:381,1
    - Dst: talloc
      Src: /src/xen/tools/xenstored/core.c:384,1
    - Dst: talloc_set_destructor
      Src: /src/xen/tools/xenstored/core.c:389,1
    - Dst: list_add
      Src: /src/xen/tools/xenstored/core.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - conn
    - in
    - data
    - no_quota_check
    argTypes:
    - struct connection*
    - struct buffered_data*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 403
    functionName: delay_request
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - talloc_set_destructor
    - talloc
    - domain_is_unprivileged
    - list_empty
    - list_add
    linkageType: ''
    returnType: int
    signature: "int delay_request(struct connection *conn, struct buffered_data *in,\n\t\t
      \ bool (*func)(struct delayed_request *), void *data,\n\t\t  bool no_quota_check)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/core.c:416,1
    - Dst: poll
      Src: /src/xen/tools/xenstored/core.c:417,1
    - Dst: write_messages
      Src: /src/xen/tools/xenstored/core.c:418,1
    - Dst: close
      Src: /src/xen/tools/xenstored/core.c:420,1
    - Dst: conn_free_buffered_data
      Src: /src/xen/tools/xenstored/core.c:423,1
    - Dst: conn_delete_all_watches
      Src: /src/xen/tools/xenstored/core.c:424,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:425,1
    - Dst: talloc_unlink
      Src: /src/xen/tools/xenstored/core.c:429,1
    - Dst: list_del
      Src: /src/xen/tools/xenstored/core.c:430,1
    - Dst: trace_destroy
      Src: /src/xen/tools/xenstored/core.c:431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - _conn
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 405
    functionDepth: 11
    functionLinenumber: 405
    functionLinenumberEnd: 433
    functionName: destroy_conn
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - conn_free_buffered_data
    - list_for_each_entry
    - close
    - conn_delete_all_watches
    - talloc_unlink
    - list_del
    - poll
    - write_messages
    - trace_destroy
    - list_empty
    linkageType: ''
    returnType: int
    signature: int destroy_conn(void *_conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::funcs::can_read
      Src: /src/xen/tools/xenstored/core.c:440,1
    - Dst: lu_is_pending
      Src: /src/xen/tools/xenstored/core.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 451
    functionName: conn_can_read
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - lu_is_pending
    - struct connection*::funcs::can_read
    linkageType: ''
    returnType: bool
    signature: bool conn_can_read(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::funcs::can_write
      Src: /src/xen/tools/xenstored/core.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: conn_can_write
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - struct connection*::funcs::can_write
    linkageType: ''
    returnType: bool
    signature: bool conn_can_write(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/xenstored/core.c:469,1
    - Dst: realloc
      Src: /src/xen/tools/xenstored/core.c:471,1
    - Dst: memset
      Src: /src/xen/tools/xenstored/core.c:476,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/core.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - events
    argTypes:
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 490
    functionName: set_fd
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - memset
    - ROUNDUP
    - syslog
    - realloc
    linkageType: ''
    returnType: int
    signature: int set_fd(int fd, short events)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xenstored/core.c:498,1
    - Dst: set_special_fds
      Src: /src/xen/tools/xenstored/core.c:504,1
    - Dst: set_fd
      Src: /src/xen/tools/xenstored/core.c:507,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/xenstored/core.c:507,1
    - Dst: get_now_msec
      Src: /src/xen/tools/xenstored/core.c:510,1
    - Dst: wrl_log_periodic
      Src: /src/xen/tools/xenstored/core.c:511,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:513,1
    - Dst: wrl_check_timeout
      Src: /src/xen/tools/xenstored/core.c:515,1
    - Dst: check_event_timeout
      Src: /src/xen/tools/xenstored/core.c:516,1
    - Dst: conn_can_read
      Src: /src/xen/tools/xenstored/core.c:517,1
    - Dst: conn_can_write
      Src: /src/xen/tools/xenstored/core.c:518,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/core.c:519,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/core.c:523,1
    - Dst: set_fd
      Src: /src/xen/tools/xenstored/core.c:525,1
    - Dst: lu_is_pending
      Src: /src/xen/tools/xenstored/core.c:530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ptimeout
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 492
    functionDepth: 11
    functionLinenumber: 492
    functionLinenumberEnd: 534
    functionName: initialize_fds
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - conn_can_read
    - set_fd
    - xenevtchn_fd
    - check_event_timeout
    - lu_is_pending
    - get_now_msec
    - conn_can_write
    - set_special_fds
    - memset
    - wrl_log_periodic
    - list_empty
    - list_for_each_entry
    - wrl_check_timeout
    linkageType: ''
    returnType: void
    signature: void initialize_fds(int *ptimeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct node_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: calc_node_acc_size
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t calc_node_acc_size(const struct node_hdr *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search
      Src: /src/xen/tools/xenstored/core.c:546,1
    - Dst: calc_node_acc_size
      Src: /src/xen/tools/xenstored/core.c:552,1
    - Dst: trace_tdb
      Src: /src/xen/tools/xenstored/core.c:554,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db_name
    - size
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: db_fetch
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - hashtable_search
    - trace_tdb
    - strlen
    - calc_node_acc_size
    linkageType: ''
    returnType: struct node_hdr
    signature: struct node_hdr *db_fetch(const char *db_name, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct node_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: perms_from_node_hdr
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xs_permissions
    signature: "struct xs_permissions *perms_from_node_hdr(\n\tconst struct node_hdr
      *hdr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: db_fetch
      Src: /src/xen/tools/xenstored/core.c:571,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - acc
    argTypes:
    - char*
    - struct node_account_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 580
    functionName: get_acc_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - perms_from_node_hdr
    - db_fetch
    linkageType: ''
    returnType: void
    signature: void get_acc_data(const char *name, struct node_account_data *acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - name
    - domid
    argTypes:
    - struct connection*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: get_acc_domid
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_acc_domid(struct connection *conn, const char *name,\n\t\t\t\t
      \ unsigned int domid)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:601,1
    - Dst: get_acc_data
      Src: /src/xen/tools/xenstored/core.c:610,1
    - Dst: get_acc_domid
      Src: /src/xen/tools/xenstored/core.c:611,1
    - Dst: get_acc_domid
      Src: /src/xen/tools/xenstored/core.c:612,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:612,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:619,1
    - Dst: domain_memory_add
      Src: /src/xen/tools/xenstored/core.c:621,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:626,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:633,1
    - Dst: hashtable_add
      Src: /src/xen/tools/xenstored/core.c:634,1
    - Dst: hashtable_replace
      Src: /src/xen/tools/xenstored/core.c:636,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:640,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:641,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:644,1
    - Dst: trace_tdb
      Src: /src/xen/tools/xenstored/core.c:649,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:653,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - conn
    - db_name
    - data
    - size
    - acc
    - mode
    - no_quota_check
    argTypes:
    - struct connection*
    - char*
    - void*
    - size_t
    - struct node_account_data*
    - enum write_node_mode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 594
    functionDepth: 9
    functionLinenumber: 594
    functionLinenumberEnd: 658
    functionName: db_write
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - trace_tdb
    - domain_memory_add
    - talloc_strdup
    - hashtable_replace
    - get_acc_domid
    - strlen
    - domain_memory_add_nochk
    - hashtable_add
    - perms_from_node_hdr
    - talloc_free
    - get_acc_data
    linkageType: ''
    returnType: int
    signature: "int db_write(struct connection *conn, const char *db_name, void *data,\n\t
      \    size_t size, struct node_account_data *acc,\n\t     enum write_node_mode
      mode, bool no_quota_check)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_acc_data
      Src: /src/xen/tools/xenstored/core.c:671,1
    - Dst: hashtable_remove
      Src: /src/xen/tools/xenstored/core.c:673,1
    - Dst: trace_tdb
      Src: /src/xen/tools/xenstored/core.c:674,1
    - Dst: get_acc_domid
      Src: /src/xen/tools/xenstored/core.c:677,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:678,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - name
    - acc
    argTypes:
    - struct connection*
    - char*
    - struct node_account_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 660
    functionDepth: 6
    functionLinenumber: 660
    functionLinenumberEnd: 681
    functionName: db_delete
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - trace_tdb
    - hashtable_remove
    - get_acc_domid
    - strlen
    - domain_memory_add_nochk
    - get_acc_data
    linkageType: ''
    returnType: void
    signature: "void db_delete(struct connection *conn, const char *name,\n\t       struct
      node_account_data *acc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/xen/tools/xenstored/core.c:696,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:702,1
    - Dst: transaction_prepend
      Src: /src/xen/tools/xenstored/core.c:708,1
    - Dst: db_fetch
      Src: /src/xen/tools/xenstored/core.c:709,1
    - Dst: access_node
      Src: /src/xen/tools/xenstored/core.c:712,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:721,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - conn
    - ctx
    - name
    - hdr
    argTypes:
    - struct connection*
    - void*
    - char*
    - struct node_hdr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 687
    functionDepth: 7
    functionLinenumber: 687
    functionLinenumberEnd: 729
    functionName: read_node_alloc
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - talloc
    - talloc_strdup
    - transaction_prepend
    - access_node
    - perms_from_node_hdr
    - db_fetch
    - talloc_free
    linkageType: ''
    returnType: struct node
    signature: "struct node *read_node_alloc(struct connection *conn, const void *ctx,\n\t\t\t\t
      \   const char *name,\n\t\t\t\t    const struct node_hdr **hdr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_adjust_node_perms
      Src: /src/xen/tools/xenstored/core.c:738,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:742,1
    - Dst: access_node
      Src: /src/xen/tools/xenstored/core.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - node
    argTypes:
    - struct connection*
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 731
    functionDepth: 7
    functionLinenumber: 731
    functionLinenumberEnd: 749
    functionName: read_node_helper
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - get_node_owner
    - domain_adjust_node_perms
    - access_node
    linkageType: ''
    returnType: bool
    signature: bool read_node_helper(struct connection *conn, struct node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_node_alloc
      Src: /src/xen/tools/xenstored/core.c:758,1
    - Dst: talloc_memdup
      Src: /src/xen/tools/xenstored/core.c:764,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:764,1
    - Dst: read_node_helper
      Src: /src/xen/tools/xenstored/core.c:770,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - ctx
    - name
    argTypes:
    - struct connection*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 751
    functionDepth: 8
    functionLinenumber: 751
    functionLinenumberEnd: 778
    functionName: read_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - read_node_alloc
    - read_node_helper
    - talloc_memdup
    - perms_from_node_hdr
    - talloc_free
    linkageType: ''
    returnType: struct node
    signature: "struct node *read_node(struct connection *conn, const void *ctx,\n\t\t
      \      const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_node_alloc
      Src: /src/xen/tools/xenstored/core.c:786,1
    - Dst: perms_from_node_hdr
      Src: /src/xen/tools/xenstored/core.c:791,1
    - Dst: read_node_helper
      Src: /src/xen/tools/xenstored/core.c:793,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - conn
    - ctx
    - name
    argTypes:
    - struct connection*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 780
    functionDepth: 8
    functionLinenumber: 780
    functionLinenumberEnd: 801
    functionName: read_node_const
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - read_node_alloc
    - perms_from_node_hdr
    - read_node_helper
    - talloc_free
    linkageType: ''
    returnType: struct node
    signature: "struct node *read_node_const(struct connection *conn, const void *ctx,\n\t\t\t\t
      \  const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 813
    functionName: read_node_can_propagate_errno
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool read_node_can_propagate_errno(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_adjust_node_perms
      Src: /src/xen/tools/xenstored/core.c:824,1
    - Dst: calc_node_acc_size
      Src: /src/xen/tools/xenstored/core.c:827,1
    - Dst: domain_max_chk
      Src: /src/xen/tools/xenstored/core.c:830,1
    - Dst: talloc_size
      Src: /src/xen/tools/xenstored/core.c:835,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/xenstored/core.c:841,1
    - Dst: typeof
      Src: /src/xen/tools/xenstored/core.c:841,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:848,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:850,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:852,1
    - Dst: db_write
      Src: /src/xen/tools/xenstored/core.c:854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - conn
    - db_name
    - node
    - mode
    - no_quota_check
    argTypes:
    - struct connection*
    - char*
    - struct node*
    - enum write_node_mode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 815
    functionDepth: 10
    functionLinenumber: 815
    functionLinenumberEnd: 859
    functionName: write_node_raw
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - calc_node_acc_size
    - db_write
    - typeof
    - BUILD_BUG_ON
    - domain_adjust_node_perms
    - talloc_size
    - memcpy
    - domain_max_chk
    linkageType: ''
    returnType: int
    signature: "int write_node_raw(struct connection *conn, const char *db_name,\n\t\t
      \  struct node *node, enum write_node_mode mode,\n\t\t   bool no_quota_check)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: access_node
      Src: /src/xen/tools/xenstored/core.c:870,1
    - Dst: write_node_raw
      Src: /src/xen/tools/xenstored/core.c:873,1
    - Dst: fail_transaction
      Src: /src/xen/tools/xenstored/core.c:879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - conn
    - node
    - mode
    - no_quota_check
    argTypes:
    - struct connection*
    - struct node*
    - enum write_node_mode
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 865
    functionDepth: 11
    functionLinenumber: 865
    functionLinenumberEnd: 883
    functionName: write_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - access_node
    - write_node_raw
    - fail_transaction
    linkageType: ''
    returnType: int
    signature: "int write_node(struct connection *conn, struct node *node,\n\t\t      enum
      write_node_mode mode, bool no_quota_check)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - perms
    argTypes:
    - struct connection*
    - struct node_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 903
    functionName: perm_for_conn
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - domain_is_unprivileged
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int perm_for_conn(struct connection *conn,\n\t\t\t   const
      struct node_perms *perms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/xenstored/core.c:912,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/core.c:914,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - node
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 909
    functionDepth: 5
    functionLinenumber: 909
    functionLinenumberEnd: 920
    functionName: get_parent
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - strrchr
    - talloc_strdup
    - talloc_asprintf
    linkageType: ''
    returnType: char
    signature: char *get_parent(const void *ctx, const char *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/core.c:932,1
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/core.c:935,1
    - Dst: read_node_can_propagate_errno
      Src: /src/xen/tools/xenstored/core.c:938,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/core.c:940,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/core.c:944,1
    - Dst: perm_for_conn_from_node
      Src: /src/xen/tools/xenstored/core.c:949,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - conn
    - ctx
    - name
    - perm
    argTypes:
    - struct connection*
    - void*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 926
    functionDepth: 9
    functionLinenumber: 926
    functionLinenumberEnd: 952
    functionName: ask_parents
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - perm_for_conn_from_node
    - streq
    - corrupt
    - read_node_can_propagate_errno
    - get_parent
    - read_node_const
    linkageType: ''
    returnType: int
    signature: "int ask_parents(struct connection *conn, const void *ctx,\n\t\t       const
      char *name, unsigned int *perm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ask_parents
      Src: /src/xen/tools/xenstored/core.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - ctx
    - node
    - errnum
    - perm
    argTypes:
    - struct connection*
    - void*
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 961
    functionDepth: 10
    functionLinenumber: 961
    functionLinenumberEnd: 975
    functionName: errno_from_parents
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - ask_parents
    linkageType: ''
    returnType: int
    signature: "int errno_from_parents(struct connection *conn, const void *ctx,\n\t\t\t
      \     const char *node, int errnum, unsigned int perm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: perm_for_conn_from_node
      Src: /src/xen/tools/xenstored/core.c:988,1
    - Dst: read_node_can_propagate_errno
      Src: /src/xen/tools/xenstored/core.c:993,1
    - Dst: errno_from_parents
      Src: /src/xen/tools/xenstored/core.c:994,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - conn
    - ctx
    - node
    - name
    - perm
    argTypes:
    - struct connection*
    - void*
    - struct node*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 981
    functionDepth: 11
    functionLinenumber: 981
    functionLinenumberEnd: 997
    functionName: get_node_chk_perm
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - read_node_can_propagate_errno
    - perm_for_conn_from_node
    - errno_from_parents
    linkageType: ''
    returnType: bool
    signature: "bool get_node_chk_perm(struct connection *conn, const void *ctx,\n\t\t\t
      \     const struct node *node, const char *name,\n\t\t\t      unsigned int perm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/core.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1009
    functionName: new_buffer
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - talloc_zero
    linkageType: ''
    returnType: struct buffered_data
    signature: struct buffered_data *new_buffer(void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/xen/tools/xenstored/core.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - struct buffered_data*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1026
    functionName: get_string
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 26
    functionsReached:
    - memchr
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_string(const struct buffered_data *data, unsigned
      int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/xen/tools/xenstored/core.c:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - vec
    - num
    argTypes:
    - struct buffered_data*
    - char*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1047
    functionName: get_strings
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 6
    functionsReached:
    - get_string
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_strings(struct buffered_data *data,\n\t\t\t const
      char *vec[], unsigned int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/core.c:1054,1
    - Dst: eprintf
      Src: /src/xen/tools/xenstored/core.c:1055,1
    - Dst: acc_drop
      Src: /src/xen/tools/xenstored/core.c:1061,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1063,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - error
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1049
    functionDepth: 6
    functionLinenumber: 1049
    functionLinenumberEnd: 1065
    functionName: send_error
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_reply
    - ARRAY_SIZE
    - acc_drop
    - strlen
    - eprintf
    linkageType: ''
    returnType: void
    signature: void send_error(struct connection *conn, int error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:1072,1
    - Dst: acc_commit
      Src: /src/xen/tools/xenstored/core.c:1075,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:1078,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:1092,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:1095,1
    - Dst: domain_memory_add_chk
      Src: /src/xen/tools/xenstored/core.c:1097,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:1099,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:1109,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/core.c:1112,1
    - Dst: domain_outstanding_inc
      Src: /src/xen/tools/xenstored/core.c:1114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - conn
    - type
    - data
    - len
    argTypes:
    - struct connection*
    - enum xsd_sockmsg_type
    - void*
    - unsigned int
    assertStmts:
    - condition: (type != XS_WATCH_EVENT)
      pos:
        line_end: 1071
        line_start: 1071
        source_file: /src/xen/tools/xenstored/core.c
    constantsTouched: []
    func_position:
      end: 1115
      start: 1067
    functionDepth: 9
    functionLinenumber: 1067
    functionLinenumberEnd: 1115
    functionName: send_reply
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 9
    functionsReached:
    - send_error
    - domain_memory_add_chk
    - acc_commit
    - domain_memory_add_nochk
    - talloc_array
    - assert
    - domain_outstanding_inc
    - memcpy
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void send_reply(struct connection *conn, enum xsd_sockmsg_type type,\n\t\tconst
      void *data, unsigned int len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1128,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1128,1
    - Dst: new_buffer
      Src: /src/xen/tools/xenstored/core.c:1133,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:1137,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1139,1
    - Dst: strcpy
      Src: /src/xen/tools/xenstored/core.c:1142,1
    - Dst: strcpy
      Src: /src/xen/tools/xenstored/core.c:1143,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1143,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:1152,1
    - Dst: memcmp
      Src: /src/xen/tools/xenstored/core.c:1154,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:1155,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1157,1
    - Dst: domain_memory_add_chk
      Src: /src/xen/tools/xenstored/core.c:1163,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1164,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:1168,1
    - Dst: get_now_msec
      Src: /src/xen/tools/xenstored/core.c:1169,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/core.c:1180,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - req
    - conn
    - path
    - token
    argTypes:
    - struct buffered_data*
    - struct connection*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1122
    functionDepth: 5
    functionLinenumber: 1122
    functionLinenumberEnd: 1182
    functionName: send_event
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - memcmp
    - domain_memory_add_chk
    - trace
    - domain_is_unprivileged
    - get_now_msec
    - new_buffer
    - strlen
    - strcpy
    - talloc_array
    - talloc_free
    - list_for_each_entry
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void send_event(struct buffered_data *req, struct connection *conn,\n\t\tconst
      char *path, const char *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - type
    argTypes:
    - struct connection*
    - enum xsd_sockmsg_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1185
    functionDepth: 10
    functionLinenumber: 1185
    functionLinenumberEnd: 1188
    functionName: send_ack
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 9
    functionsReached:
    - send_reply
    linkageType: ''
    returnType: void
    signature: void send_ack(struct connection *conn, enum xsd_sockmsg_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/xen/tools/xenstored/core.c:1193,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1197
    functionName: valid_chars
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strspn
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool valid_chars(const char *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/xen/tools/xenstored/core.c:1204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1207
    functionName: onearg
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 4
    functionsReached:
    - get_string
    linkageType: ''
    returnType: char
    signature: char *onearg(struct buffered_data *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/xenstored/core.c:1213,1
    - Dst: xenstore_perm_to_string
      Src: /src/xen/tools/xenstored/core.c:1216,1
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/core.c:1220,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1221,1
    - Dst: strcpy
      Src: /src/xen/tools/xenstored/core.c:1224,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - node
    - len
    argTypes:
    - struct node*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1228
    functionName: node_perms_to_strings
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - MAX_STRLEN
    - xenstore_perm_to_string
    - talloc_realloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *node_perms_to_strings(const struct node *node, unsigned int *len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: valid_chars
      Src: /src/xen/tools/xenstored/core.c:1245,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/core.c:1250,1
    - Dst: get_implicit_path
      Src: /src/xen/tools/xenstored/core.c:1250,1
    - Dst: sscanf
      Src: /src/xen/tools/xenstored/core.c:1257,1
    - Dst: strends
      Src: /src/xen/tools/xenstored/core.c:1266,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/core.c:1266,1
    - Dst: strstr
      Src: /src/xen/tools/xenstored/core.c:1267,1
    - Dst: domain_max_chk
      Src: /src/xen/tools/xenstored/core.c:1268,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1268,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1273,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 4
    argNames:
    - conn
    - ctx
    - node
    - allow_special
    argTypes:
    - struct connection*
    - void*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1276
    functionName: canonicalize
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - valid_chars
    - strends
    - streq
    - strlen
    - sscanf
    - talloc_asprintf
    - strstr
    - get_implicit_path
    - talloc_free
    - domain_max_chk
    linkageType: ''
    returnType: char
    signature: "char *canonicalize(struct connection *conn, const void *ctx,\n\t\t\t
      const char *node, bool allow_special)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: canonicalize
      Src: /src/xen/tools/xenstored/core.c:1284,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:1288,1
    - Dst: get_node_chk_perm
      Src: /src/xen/tools/xenstored/core.c:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - conn
    - ctx
    - name
    - canonical_name
    - perm
    - allow_special
    argTypes:
    - struct connection*
    - void*
    - char*
    - char**
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1278
    functionDepth: 12
    functionLinenumber: 1278
    functionLinenumberEnd: 1292
    functionName: get_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - read_node
    - canonicalize
    - get_node_chk_perm
    linkageType: ''
    returnType: struct node
    signature: "struct node *get_node(struct connection *conn, const void *ctx,\n\t\t\t
      \    const char *name, const char **canonical_name,\n\t\t\t     unsigned int
      perm, bool allow_special)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: canonicalize
      Src: /src/xen/tools/xenstored/core.c:1301,1
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/core.c:1305,1
    - Dst: get_node_chk_perm
      Src: /src/xen/tools/xenstored/core.c:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - conn
    - ctx
    - name
    - perm
    - allow_special
    argTypes:
    - struct connection*
    - void*
    - char*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1294
    functionDepth: 12
    functionLinenumber: 1294
    functionLinenumberEnd: 1308
    functionName: get_node_const
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - read_node_const
    - canonicalize
    - get_node_chk_perm
    linkageType: ''
    returnType: struct node
    signature: "struct node *get_node_const(struct connection *conn,\n\t\t\t\t\t const
      void *ctx, const char *name,\n\t\t\t\t\t unsigned int perm, bool allow_special)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node_const
      Src: /src/xen/tools/xenstored/core.c:1315,1
    - Dst: onearg
      Src: /src/xen/tools/xenstored/core.c:1315,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1310
    functionDepth: 13
    functionLinenumber: 1310
    functionLinenumberEnd: 1322
    functionName: send_directory
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - get_node_const
    - send_reply
    - onearg
    linkageType: ''
    returnType: int
    signature: "int send_directory(const void *ctx, struct connection *conn,\n\t\t\t
      \ struct buffered_data *in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/xenstored/core.c:1332,1
    - Dst: get_node_const
      Src: /src/xen/tools/xenstored/core.c:1336,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/core.c:1341,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1341,1
    - Dst: snprintf
      Src: /src/xen/tools/xenstored/core.c:1343,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1349,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1357,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1358,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1359,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:1364,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:1368,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:1369,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1324
    functionDepth: 13
    functionLinenumber: 1324
    functionLinenumberEnd: 1378
    functionName: send_directory_part
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - snprintf
    - get_node_const
    - send_reply
    - xenstore_count_strings
    - strlen
    - talloc_array
    - atoi
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int send_directory_part(const void *ctx, struct connection *conn,\n\t\t\t
      \      struct buffered_data *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node_const
      Src: /src/xen/tools/xenstored/core.c:1385,1
    - Dst: onearg
      Src: /src/xen/tools/xenstored/core.c:1385,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1380
    functionDepth: 13
    functionLinenumber: 1380
    functionLinenumberEnd: 1392
    functionName: do_read
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - get_node_const
    - send_reply
    - onearg
    linkageType: ''
    returnType: int
    signature: "int do_read(const void *ctx, struct connection *conn,\n\t\t   struct
      buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/xenstored/core.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1398
    functionName: basename
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *basename(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: basename
      Src: /src/xen/tools/xenstored/core.c:1406,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1407,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:1408,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:1411,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:1412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - parent
    - name
    argTypes:
    - void*
    - struct node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1417
    functionName: add_child
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - basename
    - strlen
    - talloc_array
    linkageType: ''
    returnType: int
    signature: int add_child(const void *ctx, struct node *parent, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:1426,1
    - Dst: talloc_realloc
      Src: /src/xen/tools/xenstored/core.c:1433,1
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/core.c:1442,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:1447,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:1448,1
    - Dst: add_child
      Src: /src/xen/tools/xenstored/core.c:1457,1
    - Dst: talloc
      Src: /src/xen/tools/xenstored/core.c:1461,1
    - Dst: talloc_steal
      Src: /src/xen/tools/xenstored/core.c:1464,1
    - Dst: talloc_memdup
      Src: /src/xen/tools/xenstored/core.c:1468,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:1473,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 3
    argNames:
    - conn
    - ctx
    - name
    argTypes:
    - struct connection*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1419
    functionDepth: 9
    functionLinenumber: 1419
    functionLinenumberEnd: 1490
    functionName: construct_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - read_node
    - talloc
    - strcmp
    - domain_is_unprivileged
    - talloc_memdup
    - talloc_realloc
    - add_child
    - talloc_steal
    - get_parent
    linkageType: ''
    returnType: struct node
    signature: "struct node *construct_node(struct connection *conn, const void *ctx,\n\t\t\t\t
      \  const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: streq
      Src: /src/xen/tools/xenstored/core.c:1494,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/core.c:1495,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/core.c:1497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - node
    argTypes:
    - struct connection*
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1492
    functionDepth: 7
    functionLinenumber: 1492
    functionLinenumberEnd: 1498
    functionName: destroy_node_rm
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - corrupt
    - streq
    - db_delete
    linkageType: ''
    returnType: void
    signature: void destroy_node_rm(struct connection *conn, struct node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_node_rm
      Src: /src/xen/tools/xenstored/core.c:1502,1
    - Dst: fail_transaction
      Src: /src/xen/tools/xenstored/core.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - node
    argTypes:
    - struct connection*
    - struct node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1500
    functionDepth: 8
    functionLinenumber: 1500
    functionLinenumberEnd: 1513
    functionName: destroy_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - destroy_node_rm
    - fail_transaction
    linkageType: ''
    returnType: int
    signature: int destroy_node(struct connection *conn, struct node *node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: construct_node
      Src: /src/xen/tools/xenstored/core.c:1522,1
    - Dst: ta_node_created
      Src: /src/xen/tools/xenstored/core.c:1527,1
    - Dst: domain_nbentry
      Src: /src/xen/tools/xenstored/core.c:1541,1
    - Dst: write_node
      Src: /src/xen/tools/xenstored/core.c:1546,1
    - Dst: domain_nbentry_inc
      Src: /src/xen/tools/xenstored/core.c:1553,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:1553,1
    - Dst: destroy_node_rm
      Src: /src/xen/tools/xenstored/core.c:1554,1
    - Dst: destroy_node
      Src: /src/xen/tools/xenstored/core.c:1568,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1575,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 5
    argNames:
    - conn
    - ctx
    - name
    - data
    - datalen
    argTypes:
    - struct connection*
    - void*
    - char*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1515
    functionDepth: 12
    functionLinenumber: 1515
    functionLinenumberEnd: 1581
    functionName: create_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - destroy_node_rm
    - construct_node
    - write_node
    - get_node_owner
    - ta_node_created
    - domain_nbentry_inc
    - destroy_node
    - domain_nbentry
    - talloc_free
    linkageType: ''
    returnType: struct node
    signature: "struct node *create_node(struct connection *conn, const void *ctx,\n\t\t\t\tconst
      char *name,\n\t\t\t\tvoid *data, unsigned int datalen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/core.c:1593,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/core.c:1593,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/core.c:1593,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1596,1
    - Dst: get_node
      Src: /src/xen/tools/xenstored/core.c:1599,1
    - Dst: create_node
      Src: /src/xen/tools/xenstored/core.c:1604,1
    - Dst: write_node
      Src: /src/xen/tools/xenstored/core.c:1611,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/core.c:1615,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/core.c:1616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1584
    functionDepth: 13
    functionLinenumber: 1584
    functionLinenumberEnd: 1619
    functionName: do_write
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_ack
    - ARRAY_SIZE
    - write_node
    - get_node
    - create_node
    - get_strings
    - strlen
    - fire_watches
    linkageType: ''
    returnType: int
    signature: "int do_write(const void *ctx, struct connection *conn,\n\t\t    struct
      buffered_data *in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/xen/tools/xenstored/core.c:1627,1
    - Dst: onearg
      Src: /src/xen/tools/xenstored/core.c:1627,1
    - Dst: create_node
      Src: /src/xen/tools/xenstored/core.c:1636,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/core.c:1639,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/core.c:1641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1621
    functionDepth: 13
    functionLinenumber: 1621
    functionLinenumberEnd: 1644
    functionName: do_mkdir
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_ack
    - get_node
    - create_node
    - onearg
    - fire_watches
    linkageType: ''
    returnType: int
    signature: "int do_mkdir(const void *ctx, struct connection *conn,\n\t\t    struct
      buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/tools/xenstored/core.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mem
    - 'off'
    - len
    - total
    argTypes:
    - void*
    - unsigned
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1650
    functionName: memdel
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void memdel(void *mem, unsigned off, unsigned len, unsigned total)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1655,1
    - Dst: memdel
      Src: /src/xen/tools/xenstored/core.c:1657,1
    - Dst: write_node
      Src: /src/xen/tools/xenstored/core.c:1660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - node
    - offset
    argTypes:
    - struct connection*
    - struct node*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1652
    functionDepth: 12
    functionLinenumber: 1652
    functionLinenumberEnd: 1661
    functionName: remove_child_entry
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strlen
    - write_node
    - memdel
    linkageType: ''
    returnType: int
    signature: "int remove_child_entry(struct connection *conn, struct node *node,\n\t\t\t
      \     size_t offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1669,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/core.c:1670,1
    - Dst: remove_child_entry
      Src: /src/xen/tools/xenstored/core.c:1671,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/core.c:1675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - conn
    - node
    - childname
    argTypes:
    - struct connection*
    - struct node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1663
    functionDepth: 13
    functionLinenumber: 1663
    functionLinenumberEnd: 1679
    functionName: delete_child
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - corrupt
    - streq
    - remove_child_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: "int delete_child(struct connection *conn,\n\t\t\tstruct node *node,
      const char *childname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: access_node
      Src: /src/xen/tools/xenstored/core.c:1690,1
    - Dst: domain_nbentry_dec
      Src: /src/xen/tools/xenstored/core.c:1694,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:1694,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/core.c:1698,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:1705,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/core.c:1706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - conn
    - node
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1681
    functionDepth: 9
    functionLinenumber: 1681
    functionLinenumberEnd: 1709
    functionName: delnode_sub
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strcmp
    - db_delete
    - access_node
    - fire_watches
    - get_node_owner
    - domain_nbentry_dec
    linkageType: ''
    returnType: int
    signature: "int delnode_sub(const void *ctx, struct connection *conn,\n\t\t       struct
      node *node, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/core.c:1714,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:1721,1
    - Dst: read_node_can_propagate_errno
      Src: /src/xen/tools/xenstored/core.c:1723,1
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/core.c:1725,1
    - Dst: corrupt
      Src: /src/xen/tools/xenstored/core.c:1734,1
    - Dst: delete_child
      Src: /src/xen/tools/xenstored/core.c:1741,1
    - Dst: basename
      Src: /src/xen/tools/xenstored/core.c:1741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - conn
    - ctx
    - name
    argTypes:
    - struct connection*
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1711
    functionDepth: 14
    functionLinenumber: 1711
    functionLinenumberEnd: 1745
    functionName: rm_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - basename
    - delete_child
    - read_node
    - corrupt
    - read_node_can_propagate_errno
    - get_parent
    - walk_node_tree
    linkageType: ''
    returnType: int
    signature: int rm_node(struct connection *conn, const void *ctx, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_node
      Src: /src/xen/tools/xenstored/core.c:1756,1
    - Dst: onearg
      Src: /src/xen/tools/xenstored/core.c:1756,1
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/core.c:1762,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:1765,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/core.c:1767,1
    - Dst: read_node_can_propagate_errno
      Src: /src/xen/tools/xenstored/core.c:1771,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/core.c:1777,1
    - Dst: rm_node
      Src: /src/xen/tools/xenstored/core.c:1780,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/core.c:1784,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1748
    functionDepth: 15
    functionLinenumber: 1748
    functionLinenumberEnd: 1787
    functionName: do_rm
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_ack
    - read_node
    - get_node
    - onearg
    - streq
    - read_node_can_propagate_errno
    - get_parent
    - rm_node
    linkageType: ''
    returnType: int
    signature: "int do_rm(const void *ctx, struct connection *conn,\n\t\t struct buffered_data
      *in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_node_const
      Src: /src/xen/tools/xenstored/core.c:1797,1
    - Dst: onearg
      Src: /src/xen/tools/xenstored/core.c:1797,1
    - Dst: node_perms_to_strings
      Src: /src/xen/tools/xenstored/core.c:1801,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/core.c:1805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1790
    functionDepth: 13
    functionLinenumber: 1790
    functionLinenumberEnd: 1808
    functionName: do_get_perms
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_reply
    - get_node_const
    - node_perms_to_strings
    - onearg
    linkageType: ''
    returnType: int
    signature: "int do_get_perms(const void *ctx, struct connection *conn,\n\t\t\tstruct
      buffered_data *in)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/xenstored/core.c:1818,1
    - Dst: domain_max_chk
      Src: /src/xen/tools/xenstored/core.c:1823,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1826,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:1828,1
    - Dst: xenstore_strings_to_perms
      Src: /src/xen/tools/xenstored/core.c:1831,1
    - Dst: domain_alloc_permrefs
      Src: /src/xen/tools/xenstored/core.c:1834,1
    - Dst: get_node
      Src: /src/xen/tools/xenstored/core.c:1840,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:1846,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:1847,1
    - Dst: node_to_node_perms
      Src: /src/xen/tools/xenstored/core.c:1850,1
    - Dst: domain_nbentry_dec
      Src: /src/xen/tools/xenstored/core.c:1851,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:1851,1
    - Dst: node_perms_to_node
      Src: /src/xen/tools/xenstored/core.c:1853,1
    - Dst: domain_nbentry_inc
      Src: /src/xen/tools/xenstored/core.c:1854,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:1854,1
    - Dst: write_node
      Src: /src/xen/tools/xenstored/core.c:1857,1
    - Dst: fire_watches
      Src: /src/xen/tools/xenstored/core.c:1860,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/core.c:1861,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1810
    functionDepth: 13
    functionLinenumber: 1810
    functionLinenumberEnd: 1864
    functionName: do_set_perms
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_ack
    - node_perms_to_node
    - write_node
    - get_node
    - domain_is_unprivileged
    - node_to_node_perms
    - domain_nbentry_inc
    - xenstore_count_strings
    - xenstore_strings_to_perms
    - strlen
    - fire_watches
    - talloc_array
    - get_node_owner
    - domain_alloc_permrefs
    - domain_nbentry_dec
    - domain_max_chk
    linkageType: ''
    returnType: int
    signature: "int do_set_perms(const void *ctx, struct connection *conn,\n\t\t\tstruct
      buffered_data *in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:1868,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/core.c:1869,1
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/core.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - s1
    - s2
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1866
    functionDepth: 5
    functionLinenumber: 1866
    functionLinenumberEnd: 1871
    functionName: child_name
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - talloc_asprintf
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *child_name(const void *ctx, const char *s1, const char *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remove_child_entry
      Src: /src/xen/tools/xenstored/core.c:1883,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:1884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - conn
    - parent
    - name
    argTypes:
    - struct connection*
    - struct node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1873
    functionDepth: 13
    functionLinenumber: 1873
    functionLinenumberEnd: 1891
    functionName: rm_from_parent
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - log
    - remove_child_entry
    linkageType: ''
    returnType: int
    signature: "int rm_from_parent(struct connection *conn, struct node *parent,\n\t\t\t
      \ const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/tools/xenstored/core.c:1903,1
    - Dst: rm_from_parent
      Src: /src/xen/tools/xenstored/core.c:1905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - conn
    - node
    - parent
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - struct node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1893
    functionDepth: 14
    functionLinenumber: 1893
    functionLinenumberEnd: 1908
    functionName: walk_call_func
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - rm_from_parent
    - func
    linkageType: ''
    returnType: int
    signature: "int walk_call_func(const void *ctx, struct connection *conn,\n\t\t\t
      \ struct node *node, struct node *parent, void *arg,\n\t\t\t  int (*func)(const
      void *ctx, struct connection *conn,\n\t\t\t\t      struct node *node, void *arg))"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: talloc_new
      Src: /src/xen/tools/xenstored/core.c:1919,1
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:1924,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1927,1
    - Dst: walk_call_func
      Src: /src/xen/tools/xenstored/core.c:1939,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1944,1
    - Dst: child_name
      Src: /src/xen/tools/xenstored/core.c:1950,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:1957,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:1963,1
    - Dst: struct walk_funcs*::enoent
      Src: /src/xen/tools/xenstored/core.c:1968,1
    - Dst: rm_from_parent
      Src: /src/xen/tools/xenstored/core.c:1975,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1978,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1982,1
    - Dst: walk_call_func
      Src: /src/xen/tools/xenstored/core.c:1986,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:1990,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 5
    argNames:
    - ctx
    - conn
    - root
    - funcs
    - arg
    argTypes:
    - void*
    - struct connection*
    - char*
    - struct walk_funcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1910
    functionDepth: 15
    functionLinenumber: 1910
    functionLinenumberEnd: 1993
    functionName: walk_node_tree
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 2
    functionsReached:
    - walk_call_func
    - struct walk_funcs*::enoent
    - rm_from_parent
    - talloc_strdup
    - read_node
    - talloc_new
    - strlen
    - talloc_free
    - child_name
    linkageType: ''
    returnType: int
    signature: "int walk_node_tree(const void *ctx, struct connection *conn, const
      char *root,\n\t\t   struct walk_funcs *funcs, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/core.c:2041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum xsd_sockmsg_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2045
    functionName: sockmsg_string
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *sockmsg_string(enum xsd_sockmsg_type type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:2058,1
    - Dst: trace_io
      Src: /src/xen/tools/xenstored/core.c:2059,1
    - Dst: eprintf
      Src: /src/xen/tools/xenstored/core.c:2062,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:2063,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:2068,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:2069,1
    - Dst: transaction_lookup
      Src: /src/xen/tools/xenstored/core.c:2074,1
    - Dst: IS_ERR
      Src: /src/xen/tools/xenstored/core.c:2075,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:2076,1
    - Dst: PTR_ERR
      Src: /src/xen/tools/xenstored/core.c:2076,1
    - Dst: talloc_new
      Src: /src/xen/tools/xenstored/core.c:2080,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:2082,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:2086,1
    - Dst: func
      Src: /src/xen/tools/xenstored/core.c:2089,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2090,1
    - Dst: send_error
      Src: /src/xen/tools/xenstored/core.c:2092,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - conn
    - in
    argTypes:
    - struct connection*
    - struct buffered_data*
    assertStmts:
    - condition: (conn->in == in)
      pos:
        line_end: 2057
        line_start: 2057
        source_file: /src/xen/tools/xenstored/core.c
    - condition: (conn->transaction == NULL)
      pos:
        line_end: 2085
        line_start: 2085
        source_file: /src/xen/tools/xenstored/core.c
    constantsTouched: []
    func_position:
      end: 2095
      start: 2050
    functionDepth: 7
    functionLinenumber: 2050
    functionLinenumberEnd: 2095
    functionName: process_message
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - send_error
    - IS_ERR
    - domain_is_unprivileged
    - PTR_ERR
    - talloc_new
    - transaction_lookup
    - func
    - assert
    - trace_io
    - talloc_free
    - eprintf
    linkageType: ''
    returnType: void
    signature: void process_message(struct connection *conn, struct buffered_data
      *in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lu_is_pending
      Src: /src/xen/tools/xenstored/core.c:2102,1
    - Dst: process_message
      Src: /src/xen/tools/xenstored/core.c:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct delayed_request*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2097
    functionDepth: 8
    functionLinenumber: 2097
    functionLinenumberEnd: 2115
    functionName: process_delayed_message
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - lu_is_pending
    - process_message
    linkageType: ''
    returnType: bool
    signature: bool process_delayed_message(struct delayed_request *req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lu_is_pending
      Src: /src/xen/tools/xenstored/core.c:2130,1
    - Dst: list_empty
      Src: /src/xen/tools/xenstored/core.c:2130,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:2132,1
    - Dst: delay_request
      Src: /src/xen/tools/xenstored/core.c:2135,1
    - Dst: trace
      Src: /src/xen/tools/xenstored/core.c:2137,1
    - Dst: process_message
      Src: /src/xen/tools/xenstored/core.c:2143,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:2145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts:
    - condition: (conn->in == NULL)
      pos:
        line_end: 2144
        line_start: 2144
        source_file: /src/xen/tools/xenstored/core.c
    constantsTouched: []
    func_position:
      end: 2146
      start: 2117
    functionDepth: 8
    functionLinenumber: 2117
    functionLinenumberEnd: 2146
    functionName: consider_message
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - trace
    - lu_is_pending
    - delay_request
    - process_message
    - assert
    - list_empty
    linkageType: ''
    returnType: void
    signature: void consider_message(struct connection *conn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: new_buffer
      Src: /src/xen/tools/xenstored/core.c:2159,1
    - Dst: struct connection*::funcs::read
      Src: /src/xen/tools/xenstored/core.c:2170,1
    - Dst: syslog
      Src: /src/xen/tools/xenstored/core.c:2188,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:2198,1
    - Dst: struct connection*::funcs::read
      Src: /src/xen/tools/xenstored/core.c:2206,1
    - Dst: consider_message
      Src: /src/xen/tools/xenstored/core.c:2217,1
    - Dst: ignore_connection
      Src: /src/xen/tools/xenstored/core.c:2221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2152
    functionDepth: 9
    functionLinenumber: 2152
    functionLinenumberEnd: 2222
    functionName: handle_input
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - consider_message
    - syslog
    - struct connection*::funcs::read
    - new_buffer
    - talloc_array
    - ignore_connection
    linkageType: ''
    returnType: void
    signature: void handle_input(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_messages
      Src: /src/xen/tools/xenstored/core.c:2227,1
    - Dst: ignore_connection
      Src: /src/xen/tools/xenstored/core.c:2228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2224
    functionDepth: 11
    functionLinenumber: 2224
    functionLinenumberEnd: 2229
    functionName: handle_output
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - write_messages
    - ignore_connection
    linkageType: ''
    returnType: void
    signature: void handle_output(struct connection *conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_autofree_context
      Src: /src/xen/tools/xenstored/core.c:2235,1
    - Dst: talloc_zero::talloc_zero
      Src: /src/xen/tools/xenstored/core.c:2235,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2244,1
    - Dst: out_list::out_list
      Src: /src/xen/tools/xenstored/core.c:2244,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2245,1
    - Dst: acc_list::acc_list
      Src: /src/xen/tools/xenstored/core.c:2245,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2246,1
    - Dst: ref_list::ref_list
      Src: /src/xen/tools/xenstored/core.c:2246,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2247,1
    - Dst: watches::watches
      Src: /src/xen/tools/xenstored/core.c:2247,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2248,1
    - Dst: transaction_list::transaction_list
      Src: /src/xen/tools/xenstored/core.c:2248,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/tools/xenstored/core.c:2249,1
    - Dst: delayed::delayed
      Src: /src/xen/tools/xenstored/core.c:2249,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/core.c:2251,1
    - Dst: list::list
      Src: /src/xen/tools/xenstored/core.c:2251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - funcs
    argTypes:
    - struct interface_funcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2231
    functionDepth: 5
    functionLinenumber: 2231
    functionLinenumberEnd: 2255
    functionName: new_connection
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 3
    functionsReached:
    - delayed::delayed
    - talloc_zero::talloc_zero
    - watches::watches
    - ref_list::ref_list
    - out_list::out_list
    - transaction_list::transaction_list
    - talloc_autofree_context
    - list::list
    - INIT_LIST_HEAD
    - acc_list::acc_list
    - list_add_tail
    linkageType: ''
    returnType: struct connection
    signature: struct connection *new_connection(const struct interface_funcs *funcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:2261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2266
    functionName: get_connection_by_id
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct connection
    signature: struct connection *get_connection_by_id(unsigned int conn_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_zero
      Src: /src/xen/tools/xenstored/core.c:2275,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:2277,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:2284,1
    - Dst: write_node
      Src: /src/xen/tools/xenstored/core.c:2286,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:2287,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - name
    - child
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2269
    functionDepth: 12
    functionLinenumber: 2269
    functionLinenumberEnd: 2289
    functionName: manual_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - barf_perror
    - write_node
    - talloc_zero
    - strlen
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void manual_node(const char *name, const char *child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - k
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2301
    functionName: hash_from_key_fn
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_from_key_fn(const void *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:2305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key1
    - key2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2306
    functionName: keys_equal_fn
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int keys_equal_fn(const void *key1, const void *key2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_hashtable
      Src: /src/xen/tools/xenstored/core.c:2310,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:2313,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2316,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2318,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2319,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2320,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2321,1
    - Dst: manual_node
      Src: /src/xen/tools/xenstored/core.c:2322,1
    - Dst: domain_nbentry_fix
      Src: /src/xen/tools/xenstored/core.c:2323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2308
    functionDepth: 13
    functionLinenumber: 2308
    functionLinenumberEnd: 2325
    functionName: setup_structure
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - create_hashtable
    - barf_perror
    - manual_node
    - domain_nbentry_fix
    linkageType: ''
    returnType: void
    signature: void setup_structure(bool live_update)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:2329,1
    - Dst: hashtable_add
      Src: /src/xen/tools/xenstored/core.c:2333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hash
    - str
    argTypes:
    - struct hashtable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2327
    functionDepth: 4
    functionLinenumber: 2327
    functionLinenumberEnd: 2334
    functionName: remember_string
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - talloc_strdup
    - hashtable_add
    linkageType: ''
    returnType: int
    signature: int remember_string(struct hashtable *hash, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_search
      Src: /src/xen/tools/xenstored/core.c:2357,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2358,1
    - Dst: remember_string
      Src: /src/xen/tools/xenstored/core.c:2362,1
    - Dst: domain_check_acc_add
      Src: /src/xen/tools/xenstored/core.c:2365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - conn
    - node
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2352
    functionDepth: 5
    functionLinenumber: 2352
    functionLinenumberEnd: 2368
    functionName: check_store_step
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - hashtable_search
    - log
    - domain_check_acc_add
    - remember_string
    linkageType: ''
    returnType: int
    signature: "int check_store_step(const void *ctx, struct connection *conn,\n\t\t\t
      \   struct node *node, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ctx
    - conn
    - parent
    - name
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2370
    functionDepth: 1
    functionLinenumber: 2370
    functionLinenumberEnd: 2376
    functionName: check_store_enoent
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - log
    linkageType: ''
    returnType: int
    signature: "int check_store_enoent(const void *ctx, struct connection *conn,\n\t\t\t
      \     struct node *parent, char *name, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/core.c:2386,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2389,1
    - Dst: strchr
      Src: /src/xen/tools/xenstored/core.c:2394,1
    - Dst: hashtable_search
      Src: /src/xen/tools/xenstored/core.c:2398,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2399,1
    - Dst: db_delete
      Src: /src/xen/tools/xenstored/core.c:2400,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - key
    - val
    - private
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2382
    functionDepth: 7
    functionLinenumber: 2382
    functionLinenumberEnd: 2406
    functionName: clean_store_
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - log
    - talloc_strdup
    - db_delete
    - strchr
    - hashtable_search
    - talloc_free
    linkageType: ''
    returnType: int
    signature: int clean_store_(const void *key, void *val, void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtable_iterate
      Src: /src/xen/tools/xenstored/core.c:2415,1
    - Dst: domain_check_acc
      Src: /src/xen/tools/xenstored/core.c:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct check_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2417
    functionName: clean_store
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - domain_check_acc
    - hashtable_iterate
    linkageType: ''
    returnType: void
    signature: void clean_store(struct check_store_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:2423,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2425,1
    - Dst: check_store_step
      Src: /src/xen/tools/xenstored/core.c:2430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - name
    - data
    argTypes:
    - void*
    - char*
    - struct check_store_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2419
    functionDepth: 9
    functionLinenumber: 2419
    functionLinenumberEnd: 2431
    functionName: check_store_path
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - read_node
    - log
    - check_store_step
    linkageType: ''
    returnType: int
    signature: int check_store_path(const void *ctx, const char *name, struct check_store_data
      *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: create_hashtable
      Src: /src/xen/tools/xenstored/core.c:2443,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2446,1
    - Dst: domain_check_acc_init
      Src: /src/xen/tools/xenstored/core.c:2450,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2452,1
    - Dst: talloc_new
      Src: /src/xen/tools/xenstored/core.c:2456,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2457,1
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/core.c:2458,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2460,1
    - Dst: check_store_path
      Src: /src/xen/tools/xenstored/core.c:2461,1
    - Dst: check_store_path
      Src: /src/xen/tools/xenstored/core.c:2462,1
    - Dst: check_transactions
      Src: /src/xen/tools/xenstored/core.c:2463,1
    - Dst: clean_store
      Src: /src/xen/tools/xenstored/core.c:2464,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2465,1
    - Dst: hashtable_destroy
      Src: /src/xen/tools/xenstored/core.c:2467,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2468,1
    - Dst: hashtable_destroy
      Src: /src/xen/tools/xenstored/core.c:2470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2433
    functionDepth: 16
    functionLinenumber: 2433
    functionLinenumberEnd: 2471
    functionName: check_store
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - log
    - hashtable_destroy
    - check_transactions
    - create_hashtable
    - check_store_path
    - talloc_new
    - clean_store
    - domain_check_acc_init
    - talloc_free
    - walk_node_tree
    linkageType: ''
    returnType: void
    signature: void check_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xenstored/core.c:2481,1
    - Dst: talloc_vasprintf
      Src: /src/xen/tools/xenstored/core.c:2482,1
    - Dst: va_end
      Src: /src/xen/tools/xenstored/core.c:2483,1
    - Dst: log
      Src: /src/xen/tools/xenstored/core.c:2485,1
    - Dst: strerror
      Src: /src/xen/tools/xenstored/core.c:2486,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2489,1
    - Dst: check_store
      Src: /src/xen/tools/xenstored/core.c:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - conn
    - fmt
    argTypes:
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2475
    functionDepth: 17
    functionLinenumber: 2475
    functionLinenumberEnd: 2494
    functionName: corrupt
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 6
    functionsReached:
    - va_start
    - log
    - talloc_vasprintf
    - check_store
    - strerror
    - talloc_free
    - va_end
    linkageType: ''
    returnType: void
    signature: void corrupt(struct connection *conn, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xenstored/core.c:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2546
    functionName: usage
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 7
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/xenstored/core.c:2583,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2578
    functionDepth: 3
    functionLinenumber: 2578
    functionLinenumberEnd: 2588
    functionName: get_optval_uint
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - barf
    - strtoul
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_optval_uint(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:2597,1
    - Dst: strncmp
      Src: /src/xen/tools/xenstored/core.c:2599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - arg
    - what
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2600
    functionName: what_matches
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool what_matches(const char *arg, const char *what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/xenstored/core.c:2604,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2608,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2609,1
    - Dst: what_matches
      Src: /src/xen/tools/xenstored/core.c:2610,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2602
    functionDepth: 4
    functionLinenumber: 2602
    functionLinenumberEnd: 2614
    functionName: set_timeout
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strchr
    - barf
    - what_matches
    - get_optval_uint
    linkageType: ''
    returnType: void
    signature: void set_timeout(const char *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/xenstored/core.c:2618,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2624,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2625,1
    - Dst: what_matches
      Src: /src/xen/tools/xenstored/core.c:2628,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - soft
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2616
    functionDepth: 4
    functionLinenumber: 2616
    functionLinenumberEnd: 2635
    functionName: set_quota
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strchr
    - barf
    - what_matches
    - get_optval_uint
    linkageType: ''
    returnType: void
    signature: void set_quota(const char *arg, bool soft)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:2662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2643
    functionDepth: 0
    functionLinenumber: 2643
    functionLinenumberEnd: 2672
    functionName: set_trace_switch
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int set_trace_switch(const char *arg)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xenstored/core.c:2685,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2690,1
    - Dst: usage
      Src: /src/xen/tools/xenstored/core.c:2696,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2702,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2705,1
    - Dst: set_trace_switch
      Src: /src/xen/tools/xenstored/core.c:2711,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2712,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2718,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2721,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2724,1
    - Dst: min
      Src: /src/xen/tools/xenstored/core.c:2726,1
    - Dst: set_quota
      Src: /src/xen/tools/xenstored/core.c:2730,1
    - Dst: set_quota
      Src: /src/xen/tools/xenstored/core.c:2733,1
    - Dst: set_timeout
      Src: /src/xen/tools/xenstored/core.c:2736,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2739,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2742,1
    - Dst: get_optval_uint
      Src: /src/xen/tools/xenstored/core.c:2745,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:2755,1
    - Dst: early_init
      Src: /src/xen/tools/xenstored/core.c:2757,1
    - Dst: talloc_enable_null_tracking
      Src: /src/xen/tools/xenstored/core.c:2759,1
    - Dst: domain_early_init
      Src: /src/xen/tools/xenstored/core.c:2761,1
    - Dst: domain_init
      Src: /src/xen/tools/xenstored/core.c:2765,1
    - Dst: init_domains
      Src: /src/xen/tools/xenstored/core.c:2766,1
    - Dst: finish_daemonize
      Src: /src/xen/tools/xenstored/core.c:2771,1
    - Dst: absolute_filename
      Src: /src/xen/tools/xenstored/core.c:2778,1
    - Dst: stubdom_init
      Src: /src/xen/tools/xenstored/core.c:2780,1
    - Dst: lu_read_state
      Src: /src/xen/tools/xenstored/core.c:2785,1
    - Dst: check_store
      Src: /src/xen/tools/xenstored/core.c:2788,1
    - Dst: initialize_fds
      Src: /src/xen/tools/xenstored/core.c:2791,1
    - Dst: late_init
      Src: /src/xen/tools/xenstored/core.c:2793,1
    - Dst: poll
      Src: /src/xen/tools/xenstored/core.c:2799,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:2802,1
    - Dst: handle_special_fds
      Src: /src/xen/tools/xenstored/core.c:2805,1
    - Dst: barf_perror
      Src: /src/xen/tools/xenstored/core.c:2809,1
    - Dst: handle_event
      Src: /src/xen/tools/xenstored/core.c:2812,1
    - Dst: list_entry
      Src: /src/xen/tools/xenstored/core.c:2824,1
    - Dst: typeof
      Src: /src/xen/tools/xenstored/core.c:2824,1
    - Dst: talloc_increase_ref_count
      Src: /src/xen/tools/xenstored/core.c:2826,1
    - Dst: list_entry
      Src: /src/xen/tools/xenstored/core.c:2830,1
    - Dst: typeof
      Src: /src/xen/tools/xenstored/core.c:2831,1
    - Dst: talloc_increase_ref_count
      Src: /src/xen/tools/xenstored/core.c:2833,1
    - Dst: conn_can_read
      Src: /src/xen/tools/xenstored/core.c:2835,1
    - Dst: handle_input
      Src: /src/xen/tools/xenstored/core.c:2836,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2837,1
    - Dst: talloc_increase_ref_count
      Src: /src/xen/tools/xenstored/core.c:2840,1
    - Dst: conn_can_write
      Src: /src/xen/tools/xenstored/core.c:2842,1
    - Dst: handle_output
      Src: /src/xen/tools/xenstored/core.c:2843,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:2844,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:2851,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/tools/xenstored/core.c:2854,1
    - Dst: call_delayed
      Src: /src/xen/tools/xenstored/core.c:2856,1
    - Dst: initialize_fds
      Src: /src/xen/tools/xenstored/core.c:2860,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 131
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2674
    functionDepth: 17
    functionLinenumber: 2674
    functionLinenumberEnd: 2862
    functionName: main
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 119
    functionsReached:
    - talloc_increase_ref_count
    - typeof
    - barf
    - set_quota
    - absolute_filename
    - handle_event
    - initialize_fds
    - barf_perror
    - check_store
    - handle_input
    - handle_output
    - list_for_each_entry_safe
    - set_trace_switch
    - talloc_enable_null_tracking
    - talloc_free
    - domain_early_init
    - init_domains
    - conn_can_read
    - domain_init
    - getopt_long
    - min
    - call_delayed
    - set_timeout
    - lu_read_state
    - poll
    - list_for_each_entry
    - finish_daemonize
    - get_optval_uint
    - handle_special_fds
    - early_init
    - late_init
    - list_entry
    - stubdom_init
    - conn_can_write
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2871,1
    - Dst: get_socket_fd
      Src: /src/xen/tools/xenstored/core.c:2873,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/xenstored/core.c:2874,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2879
    functionName: dump_state_global
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - fwrite
    - get_socket_fd
    - xenevtchn_fd
    linkageType: ''
    returnType: char
    signature: char *dump_state_global(FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2888,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - fp
    - in
    - total_len
    argTypes:
    - FILE*
    - struct buffered_data*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2897
    functionName: dump_input_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: char
    signature: "char *dump_input_buffered_data(FILE *fp,\n\t\t\t\t\t    const struct
      buffered_data *in,\n\t\t\t\t\t    unsigned int *total_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:2910,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:2919,1
    - Dst: dump_input_buffered_data
      Src: /src/xen/tools/xenstored/core.c:2920,1
    - Dst: dump_input_buffered_data
      Src: /src/xen/tools/xenstored/core.c:2924,1
    - Dst: list_for_each_entry
      Src: /src/xen/tools/xenstored/core.c:2934,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2939,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2946,1
    - Dst: lu_get_connection
      Src: /src/xen/tools/xenstored/core.c:2956,1
    - Dst: lu_write_response
      Src: /src/xen/tools/xenstored/core.c:2957,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - fp
    - c
    - sc
    argTypes:
    - FILE*
    - struct connection*
    - struct xs_state_connection*
    assertStmts:
    - condition: (!req->in->inhdr)
      pos:
        line_end: 2918
        line_start: 2918
        source_file: /src/xen/tools/xenstored/core.c
    constantsTouched: []
    func_position:
      end: 2969
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2969
    functionName: dump_state_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - dump_input_buffered_data
    - lu_write_response
    - lu_get_connection
    - fwrite
    - assert
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: "char *dump_state_buffered_data(FILE *fp, const struct connection *c,\n\t\t\t\t
      \    struct xs_state_connection *sc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:2997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - fp
    - perms
    - n_perms
    argTypes:
    - FILE*
    - struct xs_permissions*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 3003
    functionName: dump_state_node_perms
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: char
    signature: "char *dump_state_node_perms(FILE *fp, const struct xs_permissions
      *perms,\n\t\t\t\t  unsigned int n_perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - err
    argTypes:
    - struct dump_node_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3014
    functionName: dump_state_node_err
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dump_state_node_err(struct dump_node_data *data, const char *err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenstored/core.c:3025,1
    - Dst: ROUNDUP
      Src: /src/xen/tools/xenstored/core.c:3038,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:3040,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3041,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:3042,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3043,1
    - Dst: dump_state_node_perms
      Src: /src/xen/tools/xenstored/core.c:3045,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3047,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:3049,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3050,1
    - Dst: fwrite
      Src: /src/xen/tools/xenstored/core.c:3053,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3054,1
    - Dst: dump_state_align
      Src: /src/xen/tools/xenstored/core.c:3056,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3058,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - ctx
    - conn
    - node
    - data
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - struct dump_node_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3016
    functionDepth: 1
    functionLinenumber: 3016
    functionLinenumberEnd: 3061
    functionName: dump_state_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - dump_state_align
    - dump_state_node_err
    - ROUNDUP
    - strlen
    - dump_state_node_perms
    - fwrite
    linkageType: ''
    returnType: int
    signature: "int dump_state_node(const void *ctx, struct connection *conn,\n\t\t\t
      \  const struct node *node, struct dump_node_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_state_node
      Src: /src/xen/tools/xenstored/core.c:3066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - conn
    - node
    - arg
    argTypes:
    - void*
    - struct connection*
    - struct node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3063
    functionDepth: 2
    functionLinenumber: 3063
    functionLinenumberEnd: 3067
    functionName: dump_state_node_enter
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - dump_state_node
    linkageType: ''
    returnType: int
    signature: "int dump_state_node_enter(const void *ctx, struct connection *conn,\n\t\t\t\t
      struct node *node, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_node_const
      Src: /src/xen/tools/xenstored/core.c:3076,1
    - Dst: dump_state_node_err
      Src: /src/xen/tools/xenstored/core.c:3078,1
    - Dst: dump_state_node
      Src: /src/xen/tools/xenstored/core.c:3080,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:3081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - fp
    - ctx
    - data
    - name
    argTypes:
    - FILE*
    - void*
    - struct dump_node_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3069
    functionDepth: 9
    functionLinenumber: 3069
    functionLinenumberEnd: 3084
    functionName: dump_state_special_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - dump_state_node_err
    - talloc_free
    - read_node_const
    - dump_state_node
    linkageType: ''
    returnType: int
    signature: "int dump_state_special_node(FILE *fp, const void *ctx,\n\t\t\t\t   struct
      dump_node_data *data,\n\t\t\t\t   const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: walk_node_tree
      Src: /src/xen/tools/xenstored/core.c:3094,1
    - Dst: dump_state_special_node
      Src: /src/xen/tools/xenstored/core.c:3097,1
    - Dst: dump_state_special_node
      Src: /src/xen/tools/xenstored/core.c:3099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fp
    - ctx
    argTypes:
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3103
      start: 3086
    functionDepth: 16
    functionLinenumber: 3086
    functionLinenumberEnd: 3103
    functionName: dump_state_nodes
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - dump_state_special_node
    - walk_node_tree
    linkageType: ''
    returnType: char
    signature: char *dump_state_nodes(FILE *fp, const void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_socket_fd
      Src: /src/xen/tools/xenstored/core.c:3109,1
    - Dst: domain_init
      Src: /src/xen/tools/xenstored/core.c:3111,1
    - Dst: init_domains
      Src: /src/xen/tools/xenstored/core.c:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3105
    functionDepth: 7
    functionLinenumber: 3105
    functionLinenumberEnd: 3113
    functionName: read_state_global
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - domain_init
    - set_socket_fd
    - init_domains
    linkageType: ''
    returnType: void
    signature: void read_state_global(const void *ctx, const void *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:3123,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3125,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:3127,1
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/core.c:3129,1
    - Dst: get_now_msec
      Src: /src/xen/tools/xenstored/core.c:3130,1
    - Dst: list_add_tail
      Src: /src/xen/tools/xenstored/core.c:3136,1
    - Dst: domain_outstanding_inc
      Src: /src/xen/tools/xenstored/core.c:3144,1
    - Dst: domain_memory_add_nochk
      Src: /src/xen/tools/xenstored/core.c:3150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - bdata
    - conn
    - data
    - len
    argTypes:
    - struct buffered_data*
    - struct connection*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3115
    functionDepth: 9
    functionLinenumber: 3115
    functionLinenumberEnd: 3151
    functionName: add_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 0
    functionsReached:
    - domain_memory_add_nochk
    - domain_is_unprivileged
    - barf
    - get_now_msec
    - talloc_array
    - domain_outstanding_inc
    - memcpy
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void add_buffered_data(struct buffered_data *bdata,\n\t\t\t      struct
      connection *conn, const uint8_t *data,\n\t\t\t      unsigned int len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: new_buffer
      Src: /src/xen/tools/xenstored/core.c:3162,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3164,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:3173,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:3177,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:3181,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3184,1
    - Dst: min_t
      Src: /src/xen/tools/xenstored/core.c:3185,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:3188,1
    - Dst: assert
      Src: /src/xen/tools/xenstored/core.c:3200,1
    - Dst: delay_request
      Src: /src/xen/tools/xenstored/core.c:3202,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3204,1
    - Dst: new_buffer
      Src: /src/xen/tools/xenstored/core.c:3210,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3212,1
    - Dst: add_buffered_data
      Src: /src/xen/tools/xenstored/core.c:3218,1
    - Dst: memcpy
      Src: /src/xen/tools/xenstored/core.c:3223,1
    - Dst: add_buffered_data
      Src: /src/xen/tools/xenstored/core.c:3226,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - ctx
    - conn
    - sc
    argTypes:
    - void*
    - struct connection*
    - struct xs_state_connection*
    assertStmts:
    - condition: (conn->in == NULL)
      pos:
        line_end: 3199
        line_start: 3199
        source_file: /src/xen/tools/xenstored/core.c
    constantsTouched: []
    func_position:
      end: 3228
      start: 3153
    functionDepth: 10
    functionLinenumber: 3153
    functionLinenumberEnd: 3228
    functionName: read_state_buffered_data
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - add_buffered_data
    - barf
    - min_t
    - new_buffer
    - delay_request
    - talloc_array
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void read_state_buffered_data(const void *ctx, struct connection *conn,\n\t\t\t
      \     const struct xs_state_connection *sc)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: talloc
      Src: /src/xen/tools/xenstored/core.c:3239,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3241,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/core.c:3251,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3254,1
    - Dst: strstarts
      Src: /src/xen/tools/xenstored/core.c:3275,1
    - Dst: get_parent
      Src: /src/xen/tools/xenstored/core.c:3276,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3278,1
    - Dst: read_node
      Src: /src/xen/tools/xenstored/core.c:3279,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3281,1
    - Dst: add_child
      Src: /src/xen/tools/xenstored/core.c:3283,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3284,1
    - Dst: write_node_raw
      Src: /src/xen/tools/xenstored/core.c:3286,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3287,1
    - Dst: write_node_raw
      Src: /src/xen/tools/xenstored/core.c:3291,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/core.c:3292,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3293,1
    - Dst: domain_nbentry_inc
      Src: /src/xen/tools/xenstored/core.c:3295,1
    - Dst: get_node_owner
      Src: /src/xen/tools/xenstored/core.c:3295,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/core.c:3296,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/core.c:3298,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - ctx
    - state
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3230
    functionDepth: 11
    functionLinenumber: 3230
    functionLinenumberEnd: 3299
    functionName: read_state_node
    functionSourceFile: /src/xen/tools/xenstored/core.c
    functionUses: 1
    functionsReached:
    - talloc
    - read_node
    - write_node_raw
    - strcmp
    - get_node_owner
    - barf
    - domain_nbentry_inc
    - talloc_array
    - add_child
    - strstarts
    - get_parent
    - talloc_free
    linkageType: ''
    returnType: void
    signature: void read_state_node(const void *ctx, const void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: lu_get_connection
    functionSourceFile: /src/xen/tools/xenstored/lu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct connection
    signature: struct connection *lu_get_connection(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: lu_write_response
    functionSourceFile: /src/xen/tools/xenstored/lu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int lu_write_response(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: lu_is_pending
    functionSourceFile: /src/xen/tools/xenstored/lu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lu_is_pending(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_memory_add
      Src: /src/xen/tools/xenstored/domain.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - domid
    - mem
    argTypes:
    - struct connection*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 9
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: domain_memory_add_chk
    functionSourceFile: /src/xen/tools/xenstored/domain.h
    functionUses: 2
    functionsReached:
    - domain_memory_add
    linkageType: ''
    returnType: int
    signature: "int domain_memory_add_chk(struct connection *conn,\n\t\t\t\t\tunsigned
      int domid, int mem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_memory_add
      Src: /src/xen/tools/xenstored/domain.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - conn
    - domid
    - mem
    argTypes:
    - struct connection*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: domain_memory_add_nochk
    functionSourceFile: /src/xen/tools/xenstored/domain.h
    functionUses: 7
    functionsReached:
    - domain_memory_add
    linkageType: ''
    returnType: void
    signature: "void domain_memory_add_nochk(struct connection *conn,\n\t\t\t\t\t
      \  unsigned int domid, int mem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_store
      Src: /src/xen/tools/xenstored/control.c:55,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 17
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: do_control_check
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - check_store
    - send_ack
    linkageType: ''
    returnType: int
    signature: "int do_control_check(const void *ctx, struct connection *conn,\n\t\t\t
      \   const char **vec, int num)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/control.c:67,1
    - Dst: talloc_asprintf_append
      Src: /src/xen/tools/xenstored/control.c:75,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/control.c:82,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/control.c:82,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:89,1
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/control.c:90,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:91,1
    - Dst: close_log
      Src: /src/xen/tools/xenstored/control.c:92,1
    - Dst: set_trace_switch
      Src: /src/xen/tools/xenstored/control.c:94,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 61
    functionDepth: 11
    functionLinenumber: 61
    functionLinenumberEnd: 101
    functionName: do_control_log
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - send_ack
    - send_reply
    - talloc_asprintf_append
    - reopen_log
    - strlen
    - talloc_asprintf
    - set_trace_switch
    - strcmp
    - close_log
    linkageType: ''
    returnType: int
    signature: "int do_control_log(const void *ctx, struct connection *conn,\n\t\t\t
      \ const char **vec, int num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_strdup
      Src: /src/xen/tools/xenstored/control.c:109,1
    - Dst: talloc_asprintf_append
      Src: /src/xen/tools/xenstored/control.c:116,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/control.c:123,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/control.c:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - conn
    - quotas
    argTypes:
    - void*
    - struct connection*
    - struct quota*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 103
    functionDepth: 10
    functionLinenumber: 103
    functionLinenumberEnd: 126
    functionName: quota_show_current
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - talloc_strdup
    - talloc_asprintf_append
    - send_reply
    - strlen
    linkageType: ''
    returnType: int
    signature: "int quota_show_current(const void *ctx, struct connection *conn,\n\t\t\t
      \     const struct quota *quotas)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/xenstored/control.c:137,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:142,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - ctx
    - conn
    - vec
    - num
    - quotas
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    - struct quota*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 128
    functionDepth: 11
    functionLinenumber: 128
    functionLinenumberEnd: 150
    functionName: quota_set
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - send_ack
    - atoi
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int quota_set(const void *ctx, struct connection *conn,\n\t\t     const
      char **vec, int num, struct quota *quotas)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_get_quota
      Src: /src/xen/tools/xenstored/control.c:158,1
    - Dst: atoi
      Src: /src/xen/tools/xenstored/control.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: quota_get
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - atoi
    - domain_get_quota
    linkageType: ''
    returnType: int
    signature: "int quota_get(const void *ctx, struct connection *conn,\n\t\t     const
      char **vec, int num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:168,1
    - Dst: domain_reset_global_acc
      Src: /src/xen/tools/xenstored/control.c:169,1
    - Dst: domain_max_global_acc
      Src: /src/xen/tools/xenstored/control.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 161
    functionDepth: 7
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: quota_max
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - strcmp
    - domain_max_global_acc
    - domain_reset_global_acc
    linkageType: ''
    returnType: int
    signature: "int quota_max(const void *ctx, struct connection *conn,\n\t\t     const
      char **vec, int num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quota_show_current
      Src: /src/xen/tools/xenstored/control.c:181,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:183,1
    - Dst: quota_set
      Src: /src/xen/tools/xenstored/control.c:184,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:186,1
    - Dst: quota_max
      Src: /src/xen/tools/xenstored/control.c:187,1
    - Dst: quota_get
      Src: /src/xen/tools/xenstored/control.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 12
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: do_control_quota
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - quota_max
    - quota_get
    - quota_show_current
    - strcmp
    - quota_set
    linkageType: ''
    returnType: int
    signature: "int do_control_quota(const void *ctx, struct connection *conn,\n\t\t\t
      \   const char **vec, int num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quota_show_current
      Src: /src/xen/tools/xenstored/control.c:196,1
    - Dst: strcmp
      Src: /src/xen/tools/xenstored/control.c:198,1
    - Dst: quota_set
      Src: /src/xen/tools/xenstored/control.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 12
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: do_control_quota_s
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - quota_show_current
    - strcmp
    - quota_set
    linkageType: ''
    returnType: int
    signature: "int do_control_quota_s(const void *ctx, struct connection *conn,\n\t\t\t
      \     const char **vec, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_log
      Src: /src/xen/tools/xenstored/control.c:210,1
    - Dst: talloc_free
      Src: /src/xen/tools/xenstored/control.c:211,1
    - Dst: absolute_filename
      Src: /src/xen/tools/xenstored/control.c:212,1
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/control.c:213,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 11
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: do_control_logfile
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - send_ack
    - reopen_log
    - absolute_filename
    - talloc_free
    - close_log
    linkageType: ''
    returnType: int
    signature: "int do_control_logfile(const void *ctx, struct connection *conn,\n\t\t\t
      \     const char **vec, int num)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/xenstored/control.c:233,1
    - Dst: dup
      Src: /src/xen/tools/xenstored/control.c:239,1
    - Dst: fdopen
      Src: /src/xen/tools/xenstored/control.c:242,1
    - Dst: close
      Src: /src/xen/tools/xenstored/control.c:244,1
    - Dst: absolute_filename
      Src: /src/xen/tools/xenstored/control.c:247,1
    - Dst: fopen
      Src: /src/xen/tools/xenstored/control.c:250,1
    - Dst: talloc_report_full
      Src: /src/xen/tools/xenstored/control.c:256,1
    - Dst: fclose
      Src: /src/xen/tools/xenstored/control.c:257,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:259,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 219
    functionDepth: 11
    functionLinenumber: 219
    functionLinenumberEnd: 261
    functionName: do_control_memreport
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - fopen
    - send_ack
    - dup
    - close
    - fclose
    - absolute_filename
    - fdopen
    - talloc_report_full
    linkageType: ''
    returnType: int
    signature: "int do_control_memreport(const void *ctx, struct connection *conn,\n\t\t\t\tconst
      char **vec, int num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xprintf
      Src: /src/xen/tools/xenstored/control.c:269,1
    - Dst: send_ack
      Src: /src/xen/tools/xenstored/control.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 11
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: do_control_print
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - send_ack
    - xprintf
    linkageType: ''
    returnType: int
    signature: "int do_control_print(const void *ctx, struct connection *conn,\n\t\t\t
      \   const char **vec, int num)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: talloc_asprintf
      Src: /src/xen/tools/xenstored/control.c:321,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/control.c:324,1
    - Dst: talloc_asprintf_append
      Src: /src/xen/tools/xenstored/control.c:325,1
    - Dst: send_reply
      Src: /src/xen/tools/xenstored/control.c:331,1
    - Dst: strlen
      Src: /src/xen/tools/xenstored/control.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ctx
    - conn
    - vec
    - num
    argTypes:
    - void*
    - struct connection*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 312
    functionDepth: 10
    functionLinenumber: 312
    functionLinenumberEnd: 333
    functionName: do_control_help
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - send_reply
    - ARRAY_SIZE
    - talloc_asprintf_append
    - strlen
    - talloc_asprintf
    linkageType: ''
    returnType: int
    signature: "int do_control_help(const void *ctx, struct connection *conn,\n\t\t\t
      \  const char **vec, int num)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: domain_is_unprivileged
      Src: /src/xen/tools/xenstored/control.c:341,1
    - Dst: get_string
      Src: /src/xen/tools/xenstored/control.c:344,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/control.c:347,1
    - Dst: streq
      Src: /src/xen/tools/xenstored/control.c:348,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/xenstored/control.c:350,1
    - Dst: xenstore_count_strings
      Src: /src/xen/tools/xenstored/control.c:353,1
    - Dst: min
      Src: /src/xen/tools/xenstored/control.c:355,1
    - Dst: talloc_array
      Src: /src/xen/tools/xenstored/control.c:356,1
    - Dst: get_strings
      Src: /src/xen/tools/xenstored/control.c:359,1
    - Dst: func
      Src: /src/xen/tools/xenstored/control.c:362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - conn
    - in
    argTypes:
    - void*
    - struct connection*
    - struct buffered_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 363
    functionName: do_control
    functionSourceFile: /src/xen/tools/xenstored/control.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - domain_is_unprivileged
    - xenstore_count_strings
    - get_string
    - streq
    - min
    - get_strings
    - talloc_array
    - func
    linkageType: ''
    returnType: int
    signature: "int do_control(const void *ctx, struct connection *conn,\n\t       struct
      buffered_data *in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: finish_daemonize
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void finish_daemonize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barf
      Src: /src/xen/tools/xenstored/minios.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: add_socket_connection
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached:
    - barf
    linkageType: ''
    returnType: struct connection
    signature: struct connection *add_socket_connection(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - domid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: get_domain_evtchn
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: evtchn_port_t
    signature: evtchn_port_t get_domain_evtchn(unsigned int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: xenbus_map
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *xenbus_map(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - interface
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: unmap_xenbus
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unmap_xenbus(void *interface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_domid
      Src: /src/xen/tools/xenstored/minios.c:73,1
    - Dst: barf
      Src: /src/xen/tools/xenstored/minios.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - live_update
    - dofork
    - pidfile
    argTypes:
    - bool
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: early_init
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached:
    - barf
    - get_domid
    linkageType: ''
    returnType: void
    signature: void early_init(bool live_update, bool dofork, const char *pidfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: late_init
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void late_init(bool live_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: set_special_fds
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_special_fds(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: handle_special_fds
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handle_special_fds(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: get_socket_fd
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_socket_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: set_socket_fd
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_socket_fd(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/xenstored/minios.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: evtchn_fdopen
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 3
    functionsReached:
    - xenevtchn_open
    linkageType: ''
    returnType: xenevtchn_handle
    signature: xenevtchn_handle *evtchn_fdopen(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_bind
      Src: /src/xen/tools/xenstored/minios.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: evtchn_rebind
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached:
    - xenevtchn_bind
    linkageType: ''
    returnType: int
    signature: int evtchn_rebind(int port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenbus_watch_path_token
      Src: /src/xen/tools/xenstored/minios.c:115,1
    - Dst: log
      Src: /src/xen/tools/xenstored/minios.c:117,1
    - Dst: free
      Src: /src/xen/tools/xenstored/minios.c:119,1
    - Dst: xenbus_wait_for_watch
      Src: /src/xen/tools/xenstored/minios.c:124,1
    - Dst: xenbus_read
      Src: /src/xen/tools/xenstored/minios.c:130,1
    - Dst: free
      Src: /src/xen/tools/xenstored/minios.c:133,1
    - Dst: free
      Src: /src/xen/tools/xenstored/minios.c:136,1
    - Dst: xenbus_unwatch_path_token
      Src: /src/xen/tools/xenstored/minios.c:138,1
    - Dst: log
      Src: /src/xen/tools/xenstored/minios.c:140,1
    - Dst: free
      Src: /src/xen/tools/xenstored/minios.c:142,1
    - Dst: init_9pfront2
      Src: /src/xen/tools/xenstored/minios.c:145,1
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/minios.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 149
    functionName: mount_thread
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 0
    functionsReached:
    - log
    - free
    - xenbus_read
    - xenbus_watch_path_token
    - xenbus_wait_for_watch
    - reopen_log
    - init_9pfront2
    - xenbus_unwatch_path_token
    linkageType: ''
    returnType: void
    signature: void mount_thread(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_thread
      Src: /src/xen/tools/xenstored/minios.c:154,1
    - Dst: init_9pfront2
      Src: /src/xen/tools/xenstored/minios.c:156,1
    - Dst: reopen_log
      Src: /src/xen/tools/xenstored/minios.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - live_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: mount_9pfs
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 1
    functionsReached:
    - reopen_log
    - create_thread
    - init_9pfront2
    linkageType: ''
    returnType: void
    signature: void mount_9pfs(bool live_update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: xenstore_rundir
    functionSourceFile: /src/xen/tools/xenstored/minios.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xenstore_rundir(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/include/xen-sd-notify.h:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: xen_sd_closep
    functionSourceFile: /src/xen/tools/include/xen-sd-notify.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void xen_sd_closep(int *fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cleanup
      Src: /src/xen/tools/include/xen-sd-notify.h:46,1
    - Dst: strlen
      Src: /src/xen/tools/include/xen-sd-notify.h:52,1
    - Dst: getenv
      Src: /src/xen/tools/include/xen-sd-notify.h:57,1
    - Dst: strlen
      Src: /src/xen/tools/include/xen-sd-notify.h:65,1
    - Dst: memcpy
      Src: /src/xen/tools/include/xen-sd-notify.h:70,1
    - Dst: socket
      Src: /src/xen/tools/include/xen-sd-notify.h:76,1
    - Dst: connect
      Src: /src/xen/tools/include/xen-sd-notify.h:80,1
    - Dst: write
      Src: /src/xen/tools/include/xen-sd-notify.h:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 88
    functionName: xen_sd_notify
    functionSourceFile: /src/xen/tools/include/xen-sd-notify.h
    functionUses: 0
    functionsReached:
    - socket
    - connect
    - write
    - strlen
    - cleanup
    - getenv
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xen_sd_notify(const char *message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_sd_notify
      Src: /src/xen/tools/include/xen-sd-notify.h:91,1
    - Dst: unsetenv
      Src: /src/xen/tools/include/xen-sd-notify.h:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - unset_environment
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: sd_notify
    functionSourceFile: /src/xen/tools/include/xen-sd-notify.h
    functionUses: 3
    functionsReached:
    - unsetenv
    - xen_sd_notify
    linkageType: ''
    returnType: int
    signature: int sd_notify(int unset_environment, const char *message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/include/libxl_utils.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: libxl_bitmap_set_any
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 7
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_set_any(libxl_bitmap *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/include/libxl_utils.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: libxl_bitmap_set_none
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 13
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void libxl_bitmap_set_none(libxl_bitmap *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: libxl_bitmap_cpu_valid
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int libxl_bitmap_cpu_valid(libxl_bitmap *bitmap, int bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: libxl_for_each_bit
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libxl_for_each_bit(var, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: libxl_for_each_set_bit
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libxl_for_each_set_bit(v, m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/include/libxl_utils.h:151,1
    - Dst: libxl_bitmap_test
      Src: /src/xen/tools/include/libxl_utils.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ba
    - bb
    - nr_bits
    argTypes:
    - libxl_bitmap*
    - libxl_bitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: libxl_bitmap_equal
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 2
    functionsReached:
    - libxl_bitmap_test
    linkageType: ''
    returnType: int
    signature: "int libxl_bitmap_equal(const libxl_bitmap *ba,\n                                     const
      libxl_bitmap *bb,\n                                     int nr_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: libxl__sizekb_to_mb
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t libxl__sizekb_to_mb(uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - object
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: LIBXL_FILLZERO
    functionSourceFile: /src/xen/tools/include/libxl_utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_FILLZERO(object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - LOGGER
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: XTL_NEW_LOGGER
    functionSourceFile: /src/xen/tools/include/xentoollog.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XTL_NEW_LOGGER(LOGGER,buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: XEN_SLIST_HEAD_INITIALIZER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: XEN_SLIST_EMPTY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: XEN_SLIST_FIRST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: XEN_SLIST_FOREACH
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: XEN_SLIST_FOREACH_SAFE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - varp
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: XEN_SLIST_FOREACH_PREVPTR
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_FOREACH_PREVPTR(var, varp, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: XEN_SLIST_INIT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - slistelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: XEN_SLIST_INSERT_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_INSERT_AFTER(slistelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: XEN_SLIST_INSERT_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: XEN_SLIST_NEXT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: XEN_SLIST_REMOVE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_REMOVE(head, elm, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: XEN_SLIST_REMOVE_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_REMOVE_AFTER(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: XEN_SLIST_REMOVE_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: XEN_SLIST_SWAP
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_SLIST_SWAP(head1, head2, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: XEN_STAILQ_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: XEN_STAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head1
    - ','
    - head2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: XEN_STAILQ_CONCAT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_CONCAT(head1, head2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: XEN_STAILQ_EMPTY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: XEN_STAILQ_FIRST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: XEN_STAILQ_FOREACH
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: XEN_STAILQ_FOREACH_SAFE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: XEN_STAILQ_INIT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - tqelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: XEN_STAILQ_INSERT_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_INSERT_AFTER(head, tqelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: XEN_STAILQ_INSERT_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: XEN_STAILQ_INSERT_TAIL
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: XEN_STAILQ_LAST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_LAST(head, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: XEN_STAILQ_NEXT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: XEN_STAILQ_REMOVE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_REMOVE(head, elm, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: XEN_STAILQ_REMOVE_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_REMOVE_AFTER(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: XEN_STAILQ_REMOVE_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_REMOVE_HEAD(head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 297
    functionName: XEN_STAILQ_SWAP
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_STAILQ_SWAP(head1, head2, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: XEN_LIST_HEAD_INITIALIZER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: XEN_LIST_ENTRY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: XEN_LIST_EMPTY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: XEN_LIST_FIRST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: XEN_LIST_FOREACH
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: XEN_LIST_FOREACH_SAFE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: XEN_LIST_INIT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: XEN_LIST_INSERT_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: XEN_LIST_INSERT_BEFORE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: XEN_LIST_INSERT_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: XEN_LIST_NEXT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: XEN_LIST_REMOVE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: XEN_LIST_SWAP
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_LIST_SWAP(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: XEN_TAILQ_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: XEN_TAILQ_HEAD_INITIALIZER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_HEAD_INITIALIZER(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: XEN_TAILQ_ENTRY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: XEN_TAILQ_CONCAT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_CONCAT(head1, head2, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: XEN_TAILQ_EMPTY
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_EMPTY(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: XEN_TAILQ_FIRST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_FIRST(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: XEN_TAILQ_FOREACH
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_FOREACH(var, head, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: XEN_TAILQ_FOREACH_SAFE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_FOREACH_SAFE(var, head, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: XEN_TAILQ_FOREACH_REVERSE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_FOREACH_REVERSE(var, head, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - head
    - ','
    - headname
    - ','
    - field
    - ','
    - tvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: XEN_TAILQ_FOREACH_REVERSE_SAFE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: XEN_TAILQ_INIT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 449
    functionName: XEN_TAILQ_INSERT_AFTER
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 456
    functionName: XEN_TAILQ_INSERT_BEFORE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_INSERT_BEFORE(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: XEN_TAILQ_INSERT_HEAD
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: XEN_TAILQ_INSERT_TAIL
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - head
    - ','
    - headname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: XEN_TAILQ_LAST
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_LAST(head, headname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: XEN_TAILQ_NEXT
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_NEXT(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elm
    - ','
    - headname
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: XEN_TAILQ_PREV
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_PREV(elm, headname, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 491
    functionName: XEN_TAILQ_REMOVE
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head1
    - ','
    - head2
    - ','
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 508
    functionName: XEN_TAILQ_SWAP
    functionSourceFile: /src/xen/tools/include/xen_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_TAILQ_SWAP(head1, head2, type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: XC__HYPERCALL_BUFFER_NAME
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XC__HYPERCALL_BUFFER_NAME(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: HYPERCALL_BUFFER
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_BUFFER(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: DECLARE_HYPERCALL_BUFFER
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HYPERCALL_BUFFER(_type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _type
    - ','
    - _name
    - ','
    - _hbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: DECLARE_HYPERCALL_BUFFER_SHADOW
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HYPERCALL_BUFFER_SHADOW(_type, _name, _hbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: DECLARE_HYPERCALL_BUFFER_ARGUMENT
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HYPERCALL_BUFFER_ARGUMENT(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: HYPERCALL_BUFFER_AS_ARG
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_BUFFER_AS_ARG(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _hnd
    - ','
    - _val
    - ','
    - _byte_off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: set_xen_guest_handle_impl
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_impl(_hnd, _val, _byte_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _hnd
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: set_xen_guest_handle
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle(_hnd, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _hnd
    - ','
    - _val
    - ','
    - _off
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: set_xen_guest_handle_offset
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_offset(_hnd, _val, _off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _xch
    - ','
    - _name
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: xc_hypercall_buffer_alloc
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_alloc(_xch, _name, _size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _xch
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: xc_hypercall_buffer_free
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_free(_xch, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _xch
    - ','
    - _name
    - ','
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: xc_hypercall_buffer_alloc_pages
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_alloc_pages(_xch, _name, _nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _xch
    - ','
    - _name
    - ','
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: xc_hypercall_buffer_free_pages
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_free_pages(_xch, _name, _nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _xch
    - ','
    - _array
    - ','
    - _index
    - ','
    - _name
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: xc_hypercall_buffer_array_alloc
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_array_alloc(_xch, _array, _index, _name, _size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _xch
    - ','
    - _array
    - ','
    - _index
    - ','
    - _name
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: xc_hypercall_buffer_array_get
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_hypercall_buffer_array_get(_xch, _array, _index, _name, _size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - xc_domaininfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: dominfo_shutdown_reason
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dominfo_shutdown_reason(const xc_domaininfo_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dominfo_shutdown_reason
      Src: /src/xen/tools/include/xenctrl.h:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - info
    - expected_reason
    argTypes:
    - xc_domaininfo_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: dominfo_shutdown_with
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 5
    functionsReached:
    - dominfo_shutdown_reason
    linkageType: ''
    returnType: bool
    signature: "bool dominfo_shutdown_with(const xc_domaininfo_t *info,\n                                         unsigned
      int expected_reason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_clear_domain_pages
      Src: /src/xen/tools/include/xenctrl.h:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - xch
    - domid
    - dst_pfn
    argTypes:
    - xc_interface*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1422
    functionName: xc_clear_domain_page
    functionSourceFile: /src/xen/tools/include/xenctrl.h
    functionUses: 4
    functionsReached:
    - xc_clear_domain_pages
    linkageType: ''
    returnType: int
    signature: "int xc_clear_domain_page(xc_interface *xch, uint32_t domid,\n                                       unsigned
      long dst_pfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yajl_alloc
      Src: /src/xen/tools/include/libxl_json.h:77,1
    - Dst: yajl_config
      Src: /src/xen/tools/include/libxl_json.h:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - callbacks
    - allocFuncs
    - ctx
    argTypes:
    - yajl_callbacks*
    - yajl_alloc_funcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: libxl__yajl_alloc
    functionSourceFile: /src/xen/tools/include/libxl_json.h
    functionUses: 1
    functionsReached:
    - yajl_config
    - yajl_alloc
    linkageType: ''
    returnType: yajl_handle
    signature: "yajl_handle libxl__yajl_alloc(const yajl_callbacks *callbacks,\n                                            yajl_alloc_funcs
      *allocFuncs,\n                                            void *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_alloc
      Src: /src/xen/tools/include/libxl_json.h:86,1
    - Dst: yajl_gen_config
      Src: /src/xen/tools/include/libxl_json.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - allocFuncs
    argTypes:
    - yajl_alloc_funcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: libxl_yajl_gen_alloc
    functionSourceFile: /src/xen/tools/include/libxl_json.h
    functionUses: 5
    functionsReached:
    - yajl_gen_alloc
    - yajl_gen_config
    linkageType: ''
    returnType: yajl_gen
    signature: yajl_gen libxl_yajl_gen_alloc(const yajl_alloc_funcs *allocFuncs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yajl_alloc
      Src: /src/xen/tools/include/libxl_json.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - callbacks
    - allocFuncs
    - ctx
    argTypes:
    - yajl_callbacks*
    - yajl_alloc_funcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: libxl__yajl_alloc
    functionSourceFile: /src/xen/tools/include/libxl_json.h
    functionUses: 1
    functionsReached:
    - yajl_alloc
    linkageType: ''
    returnType: yajl_handle
    signature: "yajl_handle libxl__yajl_alloc(const yajl_callbacks *callbacks,\n                                            const
      yajl_alloc_funcs *allocFuncs,\n                                            void
      *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yajl_gen_alloc
      Src: /src/xen/tools/include/libxl_json.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocFuncs
    argTypes:
    - yajl_alloc_funcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: libxl_yajl_gen_alloc
    functionSourceFile: /src/xen/tools/include/libxl_json.h
    functionUses: 5
    functionsReached:
    - yajl_gen_alloc
    linkageType: ''
    returnType: yajl_gen
    signature: yajl_gen libxl_yajl_gen_alloc(const yajl_alloc_funcs *allocFuncs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uuid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: LIBXL__UUID_BYTES
    functionSourceFile: /src/xen/tools/include/libxl_uuid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL__UUID_BYTES(uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: LIBXL_UUID_BYTES
    functionSourceFile: /src/xen/tools/include/libxl_uuid.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_UUID_BYTES(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/include/libxl_uuid.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - libxl_uuid*
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: libxl_uuid_copy_0x040400
    functionSourceFile: /src/xen/tools/include/libxl_uuid.h
    functionUses: 0
    functionsReached:
    - libxl_uuid_copy
    linkageType: ''
    returnType: void
    signature: "void libxl_uuid_copy_0x040400(libxl_uuid *dst,\n                                            const
      libxl_uuid *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dom
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: XC_DOM_PAGE_SHIFT
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XC_DOM_PAGE_SHIFT(dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dom
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: XC_DOM_PAGE_SIZE
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XC_DOM_PAGE_SIZE(dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - xch
    - ','
    - err
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: xc_dom_panic
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_dom_panic(xch, err, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: xc_dom_trace
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xc_dom_trace(mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_pfn_to_ptr
      Src: /src/xen/tools/include/xenguest.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dom
    - seg
    - pages_out
    argTypes:
    - struct xc_dom_image*
    - struct xc_dom_seg*
    - xen_pfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: xc_dom_seg_to_ptr_pages
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 1
    functionsReached:
    - xc_dom_pfn_to_ptr
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_seg_to_ptr_pages(struct xc_dom_image *dom,\n                                      struct
      xc_dom_seg *seg,\n                                      xen_pfn_t *pages_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_seg_to_ptr_pages
      Src: /src/xen/tools/include/xenguest.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dom
    - seg
    argTypes:
    - struct xc_dom_image*
    - struct xc_dom_seg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: xc_dom_seg_to_ptr
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 7
    functionsReached:
    - xc_dom_seg_to_ptr_pages
    linkageType: ''
    returnType: void
    signature: "void *xc_dom_seg_to_ptr(struct xc_dom_image *dom,\n                                      struct
      xc_dom_seg *seg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_dom_translated
      Src: /src/xen/tools/include/xenguest.h:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dom
    - pfn
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: xc_dom_p2m
    functionSourceFile: /src/xen/tools/include/xenguest.h
    functionUses: 13
    functionsReached:
    - xc_dom_translated
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t xc_dom_p2m(struct xc_dom_image *dom, xen_pfn_t pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: xen_barrier
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: xen_mb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: xen_rmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: xen_wmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: xen_mb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: xen_rmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: xen_wmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: xen_mb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: xen_rmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: xen_wmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: xen_mb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: xen_rmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: xen_wmb
    functionSourceFile: /src/xen/tools/include/xen-barrier.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mac
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1294
    functionName: LIBXL_MAC_BYTES
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIBXL_MAC_BYTES(mac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_restore_params_init
      Src: /src/xen/tools/include/libxl.h:1828,1
    - Dst: libxl_domain_create_restore
      Src: /src/xen/tools/include/libxl.h:1830,1
    - Dst: libxl_domain_restore_params_dispose
      Src: /src/xen/tools/include/libxl.h:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - d_config
    - domid
    - restore_fd
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t*
    - int
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1818
    functionDepth: 8
    functionLinenumber: 1818
    functionLinenumberEnd: 1835
    functionName: libxl_domain_create_restore_0x040200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_restore_params_init
    - libxl_domain_restore_params_dispose
    - libxl_domain_create_restore
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_create_restore_0x040200(\n    libxl_ctx *ctx, libxl_domain_config
      *d_config,\n    uint32_t *domid, int restore_fd,\n    const libxl_asyncop_how
      *ao_how,\n    const libxl_asyncprogress_how *aop_console_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_create_restore
      Src: /src/xen/tools/include/libxl.h:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ctx
    - d_config
    - domid
    - restore_fd
    - params
    - ao_how
    - aop_console_how
    argTypes:
    - libxl_ctx*
    - libxl_domain_config*
    - uint32_t*
    - int
    - libxl_domain_restore_params*
    - libxl_asyncop_how*
    - libxl_asyncprogress_how*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1842
    functionDepth: 8
    functionLinenumber: 1842
    functionLinenumberEnd: 1852
    functionName: libxl_domain_create_restore_0x040400
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_create_restore
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_create_restore_0x040400(\n    libxl_ctx *ctx, libxl_domain_config
      *d_config,\n    uint32_t *domid, int restore_fd,\n    const libxl_domain_restore_params
      *params,\n    const libxl_asyncop_how *ao_how,\n    const libxl_asyncprogress_how
      *aop_console_how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_retrieve_domain_configuration
      Src: /src/xen/tools/include/libxl.h:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - domid
    - d_config
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_domain_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1884
    functionDepth: 6
    functionLinenumber: 1884
    functionLinenumberEnd: 1888
    functionName: libxl_retrieve_domain_configuration_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_retrieve_domain_configuration
    linkageType: ''
    returnType: int
    signature: "int libxl_retrieve_domain_configuration_0x041200(\n    libxl_ctx *ctx,
      uint32_t domid, libxl_domain_config *d_config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_shutdown
      Src: /src/xen/tools/include/libxl.h:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1933
    functionDepth: 8
    functionLinenumber: 1933
    functionLinenumberEnd: 1937
    functionName: libxl_domain_shutdown_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_shutdown
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_shutdown_0x041200(libxl_ctx *ctx,\n                                                 uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_reboot
      Src: /src/xen/tools/include/libxl.h:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1939
    functionDepth: 8
    functionLinenumber: 1939
    functionLinenumberEnd: 1943
    functionName: libxl_domain_reboot_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_reboot
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_reboot_0x041200(libxl_ctx *ctx,\n                                               uint32_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_pause
      Src: /src/xen/tools/include/libxl.h:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1984
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 1984
    functionName: libxl_domain_pause_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_pause
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_pause_0x041200(\n    libxl_ctx *ctx, uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_domain_unpause
      Src: /src/xen/tools/include/libxl.h:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1985
    functionDepth: 11
    functionLinenumber: 1985
    functionLinenumberEnd: 1989
    functionName: libxl_domain_unpause_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_domain_unpause
    linkageType: ''
    returnType: int
    signature: "int libxl_domain_unpause_0x041200(\n    libxl_ctx *ctx, uint32_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_console_exec
      Src: /src/xen/tools/include/libxl.h:2089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - domid
    - cons_num
    - type
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_console_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2085
    functionDepth: 2
    functionLinenumber: 2085
    functionLinenumberEnd: 2090
    functionName: libxl_console_exec_0x040700
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_console_exec
    linkageType: ''
    returnType: int
    signature: "int libxl_console_exec_0x040700(libxl_ctx *ctx,\n                                              uint32_t
      domid, int cons_num,\n                                              libxl_console_type
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_primary_console_exec
      Src: /src/xen/tools/include/libxl.h:2096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - domid_vm
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2093
    functionDepth: 3
    functionLinenumber: 2093
    functionLinenumberEnd: 2097
    functionName: libxl_primary_console_exec_0x040700
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_primary_console_exec
    linkageType: ''
    returnType: int
    signature: "int libxl_primary_console_exec_0x040700(libxl_ctx *ctx,\n                                                      uint32_t
      domid_vm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_console_exec
      Src: /src/xen/tools/include/libxl.h:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - domid
    - cons_num
    - type
    - notify_fd
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    - libxl_console_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2108
    functionName: libxl_console_exec_0x041700
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_console_exec
    linkageType: ''
    returnType: int
    signature: "int libxl_console_exec_0x041700(libxl_ctx *ctx, uint32_t domid,\n
      \                                             int cons_num,\n                                              libxl_console_type
      type,\n                                              int notify_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_primary_console_exec
      Src: /src/xen/tools/include/libxl.h:2115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - domid_vm
    - notify_fd
    argTypes:
    - libxl_ctx*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2116
    functionName: libxl_primary_console_exec_0x041700
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_primary_console_exec
    linkageType: ''
    returnType: int
    signature: "int libxl_primary_console_exec_0x041700(libxl_ctx *ctx,\n                                                      uint32_t
      domid_vm,\n                                                      int notify_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ctx
    - domid
    argTypes:
    - libxl_ctx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2679
    functionDepth: 0
    functionLinenumber: 2679
    functionLinenumberEnd: 2681
    functionName: libxl_cpuid_apply_policy
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl_cpuid_apply_policy(libxl_ctx *ctx __attribute__((unused)),\n
      \                                           uint32_t domid __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctx
    - domid
    - cpuid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_cpuid_policy_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2685
    functionName: libxl_cpuid_set
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libxl_cpuid_set(libxl_ctx *ctx __attribute__((unused)),\n                                   uint32_t
      domid __attribute__((unused)),\n                                   libxl_cpuid_policy_list
      cpuid __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - domid
    - ','
    - vcpuid
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2749
    functionDepth: 0
    functionLinenumber: 2749
    functionLinenumberEnd: 2751
    functionName: libxl_set_vcpuaffinity
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libxl_set_vcpuaffinity(ctx, domid, vcpuid, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ctx
    - ','
    - domid
    - ','
    - max_vcpus
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2753
    functionName: libxl_set_vcpuaffinity_all
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libxl_set_vcpuaffinity_all(ctx, domid, max_vcpus, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_set_vcpuonline
      Src: /src/xen/tools/include/libxl.h:2769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - domid
    - cpumap
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2765
    functionDepth: 9
    functionLinenumber: 2765
    functionLinenumberEnd: 2770
    functionName: libxl_set_vcpuonline_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_set_vcpuonline
    linkageType: ''
    returnType: int
    signature: "int libxl_set_vcpuonline_0x041200(libxl_ctx *ctx,\n                                                uint32_t
      domid,\n                                                libxl_bitmap *cpumap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_send_trigger
      Src: /src/xen/tools/include/libxl.h:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - domid
    - trigger
    - vcpuid
    argTypes:
    - libxl_ctx*
    - uint32_t
    - libxl_trigger
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2839
    functionDepth: 10
    functionLinenumber: 2839
    functionLinenumberEnd: 2843
    functionName: libxl_send_trigger_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_send_trigger
    linkageType: ''
    returnType: int
    signature: "int libxl_send_trigger_0x041200(\n    libxl_ctx *ctx, uint32_t domid,
      libxl_trigger trigger, uint32_t vcpuid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_qemu_monitor_command
      Src: /src/xen/tools/include/libxl.h:3008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - domid
    - command_line
    - output
    argTypes:
    - libxl_ctx*
    - uint32_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3005
    functionDepth: 7
    functionLinenumber: 3005
    functionLinenumberEnd: 3010
    functionName: libxl_qemu_monitor_command_0x041200
    functionSourceFile: /src/xen/tools/include/libxl.h
    functionUses: 0
    functionsReached:
    - libxl_qemu_monitor_command
    linkageType: ''
    returnType: int
    signature: "int libxl_qemu_monitor_command_0x041200(libxl_ctx *ctx,\n    uint32_t
      domid, const char *command_line, char **output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - inner_ptr
    - ','
    - outer
    - ','
    - member_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: CONTAINER_OF
    functionSourceFile: /src/xen/tools/include/xentoolcore_internal.h
    functionUses: 226
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTAINER_OF(inner_ptr, outer, member_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MAX_STRLEN
    functionSourceFile: /src/xen/tools/include/xenstore_lib.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_STRLEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: ffsl
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ffsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: BIT_WORD
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT_WORD(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: BITS_TO_LONGS
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_LONGS(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: DECLARE_BITMAP
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_BITMAP(name, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _nr
    - ','
    - _bmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BITMAP_ENTRY
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_ENTRY(_nr,_bmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: BITMAP_SHIFT
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_SHIFT(_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr_bits
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: bitmap_size
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bitmap_size(unsigned long nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/include/xen-tools/bitops.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nr_bits
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: bitmap_alloc
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 43
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: void *bitmap_alloc(unsigned long nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/include/xen-tools/bitops.h:44,1
    - Dst: bitmap_size
      Src: /src/xen/tools/include/xen-tools/bitops.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - nr_bits
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: bitmap_set
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 24
    functionsReached:
    - memset
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void bitmap_set(void *addr, unsigned long nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/include/xen-tools/bitops.h:49,1
    - Dst: bitmap_size
      Src: /src/xen/tools/include/xen-tools/bitops.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - nr_bits
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: bitmap_clear
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 1
    functionsReached:
    - memset
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void bitmap_clear(void *addr, unsigned long nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/include/xen-tools/bitops.h:55,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/include/xen-tools/bitops.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: test_bit
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 7
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: int
    signature: int test_bit(unsigned long nr, const void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/include/xen-tools/bitops.h:61,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/include/xen-tools/bitops.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: clear_bit
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 2
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void clear_bit(unsigned long nr, void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/include/xen-tools/bitops.h:67,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/include/xen-tools/bitops.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: set_bit
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 21
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void set_bit(unsigned long nr, void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/include/xen-tools/bitops.h:72,1
    - Dst: clear_bit
      Src: /src/xen/tools/include/xen-tools/bitops.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached:
    - test_bit
    - clear_bit
    linkageType: ''
    returnType: int
    signature: int test_and_clear_bit(unsigned long nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/include/xen-tools/bitops.h:79,1
    - Dst: set_bit
      Src: /src/xen/tools/include/xen-tools/bitops.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 0
    functionsReached:
    - test_bit
    - set_bit
    linkageType: ''
    returnType: int
    signature: int test_and_set_bit(unsigned long nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_size
      Src: /src/xen/tools/include/xen-tools/bitops.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - _dst
    - _other
    - nr_bits
    argTypes:
    - void*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: bitmap_or
    functionSourceFile: /src/xen/tools/include/xen-tools/bitops.h
    functionUses: 1
    functionsReached:
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: "void bitmap_or(void *_dst, const void *_other,\n                             unsigned
      long nr_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: xenstore_daemon_rundir
    functionSourceFile: /src/xen/tools/include/xen-tools/xenstore-common.h
    functionUses: 3
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *xenstore_daemon_rundir(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:22,1
    - Dst: snprintf
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:27,1
    - Dst: xenstore_daemon_rundir
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: xenstore_daemon_path
    functionSourceFile: /src/xen/tools/include/xen-tools/xenstore-common.h
    functionUses: 2
    functionsReached:
    - snprintf
    - getenv
    - xenstore_daemon_rundir
    linkageType: ''
    returnType: char
    signature: char *xenstore_daemon_path(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:70,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - perms
    - num
    - strings
    argTypes:
    - struct xs_permissions*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 81
    functionName: xenstore_strings_to_perms
    functionSourceFile: /src/xen/tools/include/xen-tools/xenstore-common.h
    functionUses: 3
    functionsReached:
    - strtol
    linkageType: ''
    returnType: bool
    signature: "bool xenstore_strings_to_perms(struct xs_permissions *perms,\n                                             unsigned
      int num,\n                                             const char *strings)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/include/xen-tools/xenstore-common.h:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - perm
    - buffer
    - buf_len
    argTypes:
    - struct xs_permissions*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 113
    functionName: xenstore_perm_to_string
    functionSourceFile: /src/xen/tools/include/xen-tools/xenstore-common.h
    functionUses: 2
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: bool
    signature: "bool xenstore_perm_to_string(const struct xs_permissions *perm,\n
      \                                          char *buffer, size_t buf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - strings
    - len
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: xenstore_count_strings
    functionSourceFile: /src/xen/tools/include/xen-tools/xenstore-common.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int xenstore_count_strings(const char *strings,\n                                                  unsigned
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: ARRAY_SIZE
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MAX
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MIN
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: min
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: max
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: min_t
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min_t(type, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: max_t
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max_t(type, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _x
    - ','
    - _w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ROUNDUP
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(_x,_w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: MASK_EXTR
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_EXTR(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: MASK_INSR
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_INSR(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: sizeof_field
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_field(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: endof_field
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: endof_field(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: container_of
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: __STR
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __STR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: STR
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: __AC
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AC(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: _AC
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _AC(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: MB
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MB(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _gb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: GB
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GB(_gb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: get_unaligned_t
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unaligned_t(type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - val
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: put_unaligned_t
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unaligned_t(type, val, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: get_unaligned
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unaligned(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: put_unaligned
    functionSourceFile: /src/xen/tools/include/xen-tools/common-macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unaligned(val, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/tools/include/xen-tools/arm-arch-capabilities.h:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - arch_capabilities
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: arch_capabilities_arm_sve
    functionSourceFile: /src/xen/tools/include/xen-tools/arm-arch-capabilities.h
    functionUses: 3
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_capabilities_arm_sve(unsigned int arch_capabilities)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - flag
    - ','
    - letter
    - ','
    - inum
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: _IOC
    functionSourceFile: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _IOC(flag, letter, inum, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - format
    - ','
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: printf
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.h
    functionUses: 446
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printf(format, p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - format
    - ','
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: BX_DEBUG
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG(format, p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - format
    - ','
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: BX_INFO
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_INFO(format, p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - format
    - ','
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: BX_PANIC
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_PANIC(format, p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - idx
    - ','
    - ret
    - ','
    - fn
    - ','
    - arg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 731
    functionName: X
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(idx, ret, fn, arg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 854
    functionName: SetCF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 855
    functionName: SetZF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetZF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 856
    functionName: ClearCF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 857
    functionName: ClearZF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearZF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 858
    functionName: GetCF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 972
    functionName: BX_DEBUG_ATA
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_ATA(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 977
    functionName: BX_DEBUG_INT13_HD
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT13_HD(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 982
    functionName: BX_DEBUG_INT13_CD
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT13_CD(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 987
    functionName: BX_DEBUG_INT13_ET
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT13_ET(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 992
    functionName: BX_DEBUG_INT13_FL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT13_FL(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 997
    functionName: BX_DEBUG_INT15
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT15(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1002
    functionName: BX_DEBUG_INT16
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT16(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1007
    functionName: BX_DEBUG_INT1A
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT1A(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1012
    functionName: BX_DEBUG_INT74
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BX_DEBUG_INT74(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1017
    functionName: SET_AL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: SET_BL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: SET_CL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1020
    functionName: SET_DL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: SET_AH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1022
    functionName: SET_BH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: SET_CH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1024
    functionName: SET_DH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1026
    functionName: GET_AL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: GET_BL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1028
    functionName: GET_CL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1029
    functionName: GET_DL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1030
    functionName: GET_AH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: GET_BH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: GET_CH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1033
    functionName: GET_DH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: GET_ELDL
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ELDL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1036
    functionName: GET_ELDH
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ELDH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1038
    functionName: SET_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1039
    functionName: CLEAR_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1040
    functionName: GET_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1042
    functionName: SET_ZF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1043
    functionName: CLEAR_ZF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1044
    functionName: GET_ZF
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:1265,1
    - Dst: outb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:1266,1
    - Dst: inb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:1267,1
    - Dst: inb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1269
    functionName: init_rtc
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - outb_cmos
    - inb_cmos
    linkageType: ''
    returnType: void
    signature: void init_rtc()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1291
    functionName: rtc_updating
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - inb_cmos
    linkageType: ''
    returnType: bx_bool
    signature: bx_bool rtc_updating()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1398
    functionName: get_CS
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u get_CS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1406
    functionName: get_SS
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u get_SS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:1416,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1418
    functionName: fixup_base_mem_in_k
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - write_word
    - read_dword
    linkageType: ''
    returnType: void
    signature: void fixup_base_mem_in_k()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1423
    functionName: enable_rom_write_access
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void enable_rom_write_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1428
    functionName: disable_rom_write_access
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void disable_rom_write_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1640
    functionName: check_for_keystroke
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bit8u
    signature: Bit8u check_for_keystroke()
  - BBCount: 145
    BranchProfiles: []
    Callsites:
    - Dst: delay_ticks
      Src: /src/xen/tools/firmware/rombios/rombios.c:1658,1
    - Dst: check_for_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:1659,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:1684,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1691,1
    - Dst: bios_printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:1693,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:1696,1
    - Dst: get_CS
      Src: /src/xen/tools/firmware/rombios/rombios.c:1696,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1707,1
    - Dst: send
      Src: /src/xen/tools/firmware/rombios/rombios.c:1717,1
    - Dst: put_uint
      Src: /src/xen/tools/firmware/rombios/rombios.c:1721,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:1725,1
    - Dst: get_CS
      Src: /src/xen/tools/firmware/rombios/rombios.c:1725,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1727,1
    - Dst: put_luint
      Src: /src/xen/tools/firmware/rombios/rombios.c:1730,1
    - Dst: put_luint
      Src: /src/xen/tools/firmware/rombios/rombios.c:1732,1
    - Dst: put_luint
      Src: /src/xen/tools/firmware/rombios/rombios.c:1735,1
    - Dst: send
      Src: /src/xen/tools/firmware/rombios/rombios.c:1747,1
    - Dst: put_int
      Src: /src/xen/tools/firmware/rombios/rombios.c:1753,1
    - Dst: put_int
      Src: /src/xen/tools/firmware/rombios/rombios.c:1755,1
    - Dst: put_str
      Src: /src/xen/tools/firmware/rombios/rombios.c:1758,1
    - Dst: get_CS
      Src: /src/xen/tools/firmware/rombios/rombios.c:1758,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1763,1
    - Dst: put_str
      Src: /src/xen/tools/firmware/rombios/rombios.c:1764,1
    - Dst: send
      Src: /src/xen/tools/firmware/rombios/rombios.c:1767,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:1770,1
    - Dst: send
      Src: /src/xen/tools/firmware/rombios/rombios.c:1775,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1804,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1804,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1809,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1810,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1811,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1823,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1827,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1827,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1828,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1832,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1832,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1833,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1836,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1837,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1841,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1845,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1845,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1846,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1850,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1850,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1851,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1855,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1856,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1860,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1861,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1865,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1869,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1869,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1870,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1874,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1874,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1875,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1878,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1879,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1884,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1884,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1885,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1887,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1888,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1892,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1896,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1896,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1897,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1901,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1901,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1902,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1905,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1906,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1910,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1914,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1914,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1915,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1918,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1922,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1922,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1923,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1926,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1930,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1930,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1931,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1935,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1935,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1936,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1939,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1940,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1943,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:1956,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1978,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1979,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:1980,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1998,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2010,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2015,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2025,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2027,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2071,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2072,1
    - Dst: memsetb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2075,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2078,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2082,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2087,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2093,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2098,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2100,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2108,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2109,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2111,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2114,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2127,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2129,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2131,1
    - Dst: check_for_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2133,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2135,1
    - Dst: check_for_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2139,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2140,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2142,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2144,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2147,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2148,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2154,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2157,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2160,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2162,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2164,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2171,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2181,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2185,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2201,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2204,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2205,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2209,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2212,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2214,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2225,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2227,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2231,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2233,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2235,1
    - Dst: bios_printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2246,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2254,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2260,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2267,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2269,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2281,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2285,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2287,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2295,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2301,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2310,1
    - Dst: get_s3_waking_vector
      Src: /src/xen/tools/firmware/rombios/rombios.c:2312,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2314,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2317,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2321,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2324,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2325,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2327,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2483,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2488,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2489,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2490,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2491,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2496,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2497,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2498,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2499,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2500,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2501,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2502,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2503,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2504,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2505,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2506,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2507,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2508,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2510,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2511,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2516,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2517,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2520,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2521,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2543,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:2562,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:2566,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2571,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2581,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2586,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2587,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2588,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2589,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2592,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2593,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2594,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2595,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2598,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2599,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2600,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2601,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2604,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2605,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2606,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2607,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2624,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2625,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2628,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2631,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2632,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2633,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2634,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2635,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2636,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2637,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2640,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2641,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2644,1
    - Dst: ata_reset
      Src: /src/xen/tools/firmware/rombios/rombios.c:2647,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2650,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2651,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2652,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2654,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2655,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2656,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2659,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2661,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2663,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2668,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2680,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2681,1
    - Dst: ata_cmd_data_in
      Src: /src/xen/tools/firmware/rombios/rombios.c:2683,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2683,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2684,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2686,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2686,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2688,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2688,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2690,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2690,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2692,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2692,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2693,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2693,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2694,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2694,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2696,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2696,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2697,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2697,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2698,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2698,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2700,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2700,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2704,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2705,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2706,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2707,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2708,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2709,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2710,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2711,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2712,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2713,1
    - Dst: inb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:2715,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2719,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2723,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2726,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2729,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2732,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2769,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2771,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2772,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2773,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2776,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2790,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2791,1
    - Dst: ata_cmd_data_in
      Src: /src/xen/tools/firmware/rombios/rombios.c:2793,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2793,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2794,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2796,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2796,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2797,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2797,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2799,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2799,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2803,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2804,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2805,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2806,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2809,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2820,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2821,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2837,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2837,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2839,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2839,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2840,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2840,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2844,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2844,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2846,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2846,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2854,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2857,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2859,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2862,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2864,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2865,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2867,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2870,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2877,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2878,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2879,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2881,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2898,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2907,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2908,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2913,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2916,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2919,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2921,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2926,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2927,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2928,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:2932,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:2934,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:2938,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2942,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2968,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2976,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2977,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2978,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2984,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2985,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2988,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2991,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2996,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2997,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2998,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2999,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3000,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3010,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3011,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3012,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3013,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3014,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3015,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3016,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3018,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3021,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3024,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3076,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3078,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3082,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3090,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3097,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3117,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3125,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3126,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3127,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3133,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:3134,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3137,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3140,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3145,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3146,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3147,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3148,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3149,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3159,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3160,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3161,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3162,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3163,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3164,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3165,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3167,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3170,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3173,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3227,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3229,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3233,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3241,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3248,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3267,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:3279,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3285,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3289,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3290,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3291,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3299,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:3300,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3302,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3305,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3306,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3307,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3308,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3309,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3310,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3311,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3312,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3315,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3318,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3321,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3351,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3359,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3360,1
    - Dst: await_ide
      Src: /src/xen/tools/firmware/rombios/rombios.c:3363,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3366,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3369,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3373,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3382,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3382,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3409,1
    - Dst: BX_DEBUG_ATA
      Src: /src/xen/tools/firmware/rombios/rombios.c:3410,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:3510,1
    CyclomaticComplexity: 235
    EdgeCount: 235
    ICount: 919
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 3512
    functionName: get_keystroke
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 1
    functionsReached:
    - await_ide
    - put_uint
    - get_keystroke
    - read_byte
    - get_CS
    - inb_cmos
    - memcpyb
    - check_for_keystroke
    - ata_reset
    - inb
    - bios_printf
    - get_s3_waking_vector
    - read_dword
    - get_SS
    - put_luint
    - write_word
    - send
    - BX_INFO
    - keyboard_panic
    - printf
    - ata_cmd_data_in
    - put_int
    - BX_DEBUG_ATA
    - outb
    - memsetb
    - BX_PANIC
    - write_byte
    - read_word
    - write_dword
    - put_str
    - delay_ticks
    linkageType: ''
    returnType: Bit8u
    signature: Bit8u get_keystroke()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1804,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1804,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1809,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1810,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1811,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1823,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1827,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1827,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1828,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1832,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1832,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1833,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1836,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1837,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1841,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1845,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1845,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1846,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1850,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1850,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1851,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1855,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1856,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1860,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1861,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1865,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1869,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1869,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1870,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1874,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1874,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1875,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1878,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1879,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1884,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1884,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1885,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1887,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1888,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1892,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1896,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1896,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1897,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1901,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1901,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1902,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1905,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1906,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1910,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1914,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1914,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1915,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1918,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1922,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1922,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1923,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1926,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1930,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1930,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1931,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1935,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1935,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1936,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1939,1
    - Dst: keyboard_panic
      Src: /src/xen/tools/firmware/rombios/rombios.c:1940,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1943,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1944
    functionName: keyboard_init
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - inb
    - keyboard_panic
    - outb
    linkageType: ''
    returnType: void
    signature: void keyboard_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1978,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:1979,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:1980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1963
    functionDepth: 1
    functionLinenumber: 1963
    functionLinenumberEnd: 1981
    functionName: machine_reset
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - BX_PANIC
    - outb
    linkageType: ''
    returnType: void
    signature: void machine_reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 1999
    functionName: clobber_entry_point
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - write_word
    linkageType: ''
    returnType: void
    signature: void clobber_entry_point()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2016
    functionName: s3_resume_panic
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - BX_PANIC
    linkageType: ''
    returnType: void
    signature: void s3_resume_panic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2025,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2022
    functionDepth: 0
    functionLinenumber: 2022
    functionLinenumberEnd: 2047
    functionName: print_bios_banner
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_bios_banner()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2071,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2072,1
    - Dst: memsetb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2075,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2078,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2082,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2087,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2093,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2098,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2101
    functionName: init_boot_vectors
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - memcpyb
    - memsetb
    - write_word
    - read_word
    - get_SS
    linkageType: ''
    returnType: void
    signature: void init_boot_vectors()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2127,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2129,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2131,1
    - Dst: check_for_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2133,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2135,1
    - Dst: check_for_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2139,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2140,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2142,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2144,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2147,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2148,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2154,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2157,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2160,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2162,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2164,1
    - Dst: get_keystroke
      Src: /src/xen/tools/firmware/rombios/rombios.c:2171,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2181,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2119
    functionDepth: 2
    functionLinenumber: 2119
    functionLinenumberEnd: 2188
    functionName: interactive_bootkey
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - get_keystroke
    - memcpyb
    - check_for_keystroke
    - write_word
    - read_word
    - printf
    - get_SS
    linkageType: ''
    returnType: void
    signature: void interactive_bootkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2251
    functionDepth: 1
    functionLinenumber: 2251
    functionLinenumberEnd: 2255
    functionName: nmi_handler_msg
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - BX_PANIC
    linkageType: ''
    returnType: void
    signature: void nmi_handler_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2261
    functionName: int18_panic_msg
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - BX_PANIC
    linkageType: ''
    returnType: void
    signature: void int18_panic_msg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2267,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2270
    functionName: log_bios_start
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - BX_INFO
    - outb
    linkageType: ''
    returnType: void
    signature: void log_bios_start()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2296
    functionName: debugger_on
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void debugger_on()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2302
    functionName: debugger_off
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void debugger_off()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2310,1
    - Dst: get_s3_waking_vector
      Src: /src/xen/tools/firmware/rombios/rombios.c:2312,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2314,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2317,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2321,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2324,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2325,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2304
    functionDepth: 1
    functionLinenumber: 2304
    functionLinenumberEnd: 2333
    functionName: s3_resume
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 1
    functionsReached:
    - write_word
    - write_byte
    - BX_INFO
    - read_byte
    - get_s3_waking_vector
    - read_dword
    linkageType: ''
    returnType: int
    signature: int s3_resume()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2483,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2488,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2489,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2490,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2491,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2496,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2497,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2498,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2499,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2500,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2501,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2502,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2503,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2504,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2505,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2506,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2507,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2508,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2510,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2511,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2516,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2517,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2520,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2522
    functionName: ata_init
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - write_word
    - write_dword
    - write_byte
    - read_word
    linkageType: ''
    returnType: void
    signature: void ata_init( )
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2581,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2586,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2587,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2588,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2589,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2592,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2593,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2594,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2595,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2598,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2599,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2600,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2601,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2604,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2605,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2606,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2607,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2624,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2625,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2628,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2631,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2632,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2633,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2634,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2635,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2636,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2637,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2640,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2641,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2644,1
    - Dst: ata_reset
      Src: /src/xen/tools/firmware/rombios/rombios.c:2647,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2650,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2651,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2652,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2654,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2655,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:2656,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2659,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2661,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2663,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2668,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2680,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2681,1
    - Dst: ata_cmd_data_in
      Src: /src/xen/tools/firmware/rombios/rombios.c:2683,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2683,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2684,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2686,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2686,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2688,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2688,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2690,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2690,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2692,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2692,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2693,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2693,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2694,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2694,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2696,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2696,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2697,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2697,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2698,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2698,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2700,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2700,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2704,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2705,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2706,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2707,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2708,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2709,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2710,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2711,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2712,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2713,1
    - Dst: inb_cmos
      Src: /src/xen/tools/firmware/rombios/rombios.c:2715,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2719,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2723,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2726,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2729,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2732,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:2769,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2771,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2772,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2773,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2776,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2790,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2791,1
    - Dst: ata_cmd_data_in
      Src: /src/xen/tools/firmware/rombios/rombios.c:2793,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2793,1
    - Dst: BX_PANIC
      Src: /src/xen/tools/firmware/rombios/rombios.c:2794,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2796,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2796,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2797,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2797,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2799,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2799,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2803,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2804,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2805,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:2806,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2809,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2820,1
    - Dst: read_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:2821,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2824,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2832,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2833,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2837,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2837,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2839,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2839,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2840,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2840,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2844,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2844,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2846,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2846,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2854,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2855,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2857,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2859,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2862,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2863,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2864,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2865,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2867,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2870,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2877,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2878,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:2879,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/rombios.c:2881,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 219
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2887
    functionName: ata_detect
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - inb_cmos
    - outb
    - write_word
    - write_byte
    - BX_PANIC
    - read_word
    - read_byte
    - ata_reset
    - BX_INFO
    - write_dword
    - printf
    - inb
    - ata_cmd_data_in
    - read_dword
    - get_SS
    linkageType: ''
    returnType: void
    signature: void ata_detect( )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2949
    functionDepth: 0
    functionLinenumber: 2949
    functionLinenumberEnd: 2950
    functionName: ata_cmd_non_data
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u ata_cmd_non_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3668,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3665
    functionDepth: 1
    functionLinenumber: 3665
    functionLinenumberEnd: 3672
    functionName: cdemu_init
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - write_byte
    - read_word
    linkageType: ''
    returnType: void
    signature: void cdemu_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3677,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3674
    functionDepth: 1
    functionLinenumber: 3674
    functionLinenumberEnd: 3680
    functionName: cdemu_isactive
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - read_byte
    - read_word
    linkageType: ''
    returnType: Bit8u
    signature: Bit8u cdemu_isactive()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3685,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3682
    functionDepth: 1
    functionLinenumber: 3682
    functionLinenumberEnd: 3688
    functionName: cdemu_emulated_drive
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - read_byte
    - read_word
    linkageType: ''
    returnType: Bit8u
    signature: Bit8u cdemu_emulated_drive()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3698,1
    - Dst: atapi_is_cdrom
      Src: /src/xen/tools/firmware/rombios/rombios.c:3706,1
    - Dst: atapi_is_ready
      Src: /src/xen/tools/firmware/rombios/rombios.c:3712,1
    - Dst: BX_INFO
      Src: /src/xen/tools/firmware/rombios/rombios.c:3713,1
    - Dst: memsetb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3716,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3716,1
    - Dst: ata_cmd_packet
      Src: /src/xen/tools/firmware/rombios/rombios.c:3724,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3724,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3724,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3730,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3730,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3730,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3733,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3733,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3733,1
    - Dst: memsetb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3739,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3739,1
    - Dst: ata_cmd_packet
      Src: /src/xen/tools/firmware/rombios/rombios.c:3747,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3747,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3747,1
    - Dst: tcpa_add_bootdevice
      Src: /src/xen/tools/firmware/rombios/rombios.c:3762,1
    - Dst: tcpa_ipl
      Src: /src/xen/tools/firmware/rombios/rombios.c:3763,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3763,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3766,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3770,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3773,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3775,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3777,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3778,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3783,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3784,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3787,1
    - Dst: write_dword
      Src: /src/xen/tools/firmware/rombios/rombios.c:3790,1
    - Dst: memsetb
      Src: /src/xen/tools/firmware/rombios/rombios.c:3793,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3793,1
    - Dst: ata_cmd_packet
      Src: /src/xen/tools/firmware/rombios/rombios.c:3801,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/rombios/rombios.c:3801,1
    - Dst: tcpa_ipl
      Src: /src/xen/tools/firmware/rombios/rombios.c:3807,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3811,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3813,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3814,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3815,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3818,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3819,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3820,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3823,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3824,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3825,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3828,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3828,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3829,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3830,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3830,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/rombios/rombios.c:3831,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3831,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3835,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3837,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3838,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3838,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3840,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3840,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3845,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3846,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:3849,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3695
    functionDepth: 1
    functionLinenumber: 3695
    functionLinenumberEnd: 3850
    functionName: cdrom_boot
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_bootdevice
    - memsetb
    - tcpa_ipl
    - write_word
    - write_byte
    - BX_INFO
    - read_word
    - atapi_is_ready
    - read_byte
    - write_dword
    - ata_cmd_packet
    - atapi_is_cdrom
    - get_SS
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u cdrom_boot()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5421
      start: 5420
    functionDepth: 0
    functionLinenumber: 5420
    functionLinenumberEnd: 5421
    functionName: SET_DISK_RET_STATUS
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DISK_RET_STATUS(status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:7096,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:7097,1
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/rombios.c:7098,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/rombios.c:7102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7104
      start: 7091
    functionDepth: 0
    functionLinenumber: 7091
    functionLinenumberEnd: 7104
    functionName: floppy_reset_controller
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: void
    signature: void floppy_reset_controller()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7142
      start: 7136
    functionDepth: 1
    functionLinenumber: 7136
    functionLinenumberEnd: 7142
    functionName: do
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - read_byte
    linkageType: ''
    returnType: ASM_START
    signature: ASM_START do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7315
      start: 7308
    functionDepth: 1
    functionLinenumber: 7308
    functionLinenumberEnd: 7315
    functionName: do
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - read_byte
    linkageType: ''
    returnType: ASM_START
    signature: ASM_START do
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7531,1
    - Dst: floppy_reset_controller
      Src: /src/xen/tools/firmware/rombios/rombios.c:7533,1
    - Dst: SET_AH
      Src: /src/xen/tools/firmware/rombios/rombios.c:7534,1
    - Dst: set_diskette_ret_status
      Src: /src/xen/tools/firmware/rombios/rombios.c:7535,1
    - Dst: SET_AL
      Src: /src/xen/tools/firmware/rombios/rombios.c:7536,1
    - Dst: SET_CF
      Src: /src/xen/tools/firmware/rombios/rombios.c:7537,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7541
      start: 7525
    functionDepth: 1
    functionLinenumber: 7525
    functionLinenumberEnd: 7541
    functionName: do
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - SET_AL
    - SET_AH
    - read_byte
    - set_diskette_ret_status
    - SET_CF
    - floppy_reset_controller
    linkageType: ''
    returnType: ASM_START
    signature: ASM_START do
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7665,1
    - Dst: floppy_reset_controller
      Src: /src/xen/tools/firmware/rombios/rombios.c:7667,1
    - Dst: SET_AH
      Src: /src/xen/tools/firmware/rombios/rombios.c:7668,1
    - Dst: set_diskette_ret_status
      Src: /src/xen/tools/firmware/rombios/rombios.c:7669,1
    - Dst: SET_AL
      Src: /src/xen/tools/firmware/rombios/rombios.c:7670,1
    - Dst: SET_CF
      Src: /src/xen/tools/firmware/rombios/rombios.c:7671,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/rombios.c:7674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7675
      start: 7659
    functionDepth: 1
    functionLinenumber: 7659
    functionLinenumberEnd: 7675
    functionName: do
    functionSourceFile: /src/xen/tools/firmware/rombios/rombios.c
    functionUses: 0
    functionsReached:
    - SET_AL
    - SET_AH
    - read_byte
    - set_diskette_ret_status
    - SET_CF
    - floppy_reset_controller
    linkageType: ''
    returnType: ASM_START
    signature: ASM_START do
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:80,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:81,1
    - Dst: fopen
      Src: /src/xen/tools/firmware/rombios/biossums.c:84,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:85,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:86,1
    - Dst: fread
      Src: /src/xen/tools/firmware/rombios/biossums.c:88,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:89,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/rombios/biossums.c:90,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:91,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/rombios/biossums.c:93,1
    - Dst: chksum__32__get_offset
      Src: /src/xen/tools/firmware/rombios/biossums.c:97,1
    - Dst: chksum__32__get_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:99,1
    - Dst: chksum__32__calc_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:100,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:101,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:102,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:103,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:107,1
    - Dst: chksum__32__set_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:108,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:111,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:114,1
    - Dst: chksum__mp__get_offset
      Src: /src/xen/tools/firmware/rombios/biossums.c:120,1
    - Dst: chksum__mp__get_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:122,1
    - Dst: chksum__mp__calc_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:123,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:124,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:125,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:126,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:130,1
    - Dst: chksum__mp__set_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:131,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:134,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:137,1
    - Dst: chksum_pcmp_get_offset
      Src: /src/xen/tools/firmware/rombios/biossums.c:143,1
    - Dst: chksum_pcmp_get_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:145,1
    - Dst: chksum_pcmp_calc_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:146,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:147,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:148,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:149,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:153,1
    - Dst: chksum_pcmp_set_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:154,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:157,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:160,1
    - Dst: chksum__pir_get_offset
      Src: /src/xen/tools/firmware/rombios/biossums.c:166,1
    - Dst: chksum__pir_get_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:168,1
    - Dst: chksum__pir_calc_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:169,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:170,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:171,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:172,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:176,1
    - Dst: chksum__pir_set_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:177,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:180,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:183,1
    - Dst: chksum_bios_get_offset
      Src: /src/xen/tools/firmware/rombios/biossums.c:188,1
    - Dst: chksum_bios_get_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:189,1
    - Dst: chksum_bios_calc_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:190,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:191,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:192,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:193,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:195,1
    - Dst: chksum_bios_set_value
      Src: /src/xen/tools/firmware/rombios/biossums.c:196,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:198,1
    - Dst: fopen
      Src: /src/xen/tools/firmware/rombios/biossums.c:201,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:202,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:203,1
    - Dst: fwrite
      Src: /src/xen/tools/firmware/rombios/biossums.c:205,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:206,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/rombios/biossums.c:207,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:208,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/rombios/biossums.c:210,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 122
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 213
    functionName: main
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 119
    functionsReached:
    - chksum__mp__set_value
    - chksum__32__calc_value
    - chksum__32__get_offset
    - chksum__32__get_value
    - chksum_bios_get_value
    - chksum__mp__get_value
    - chksum_bios_calc_value
    - chksum_pcmp_set_value
    - chksum__pir_get_value
    - chksum_pcmp_get_value
    - chksum__mp__get_offset
    - fwrite
    - fopen
    - chksum__pir_calc_value
    - fread
    - chksum_bios_get_offset
    - chksum_bios_set_value
    - chksum_pcmp_get_offset
    - printf
    - chksum__32__set_value
    - exit
    - chksum__pir_set_value
    - chksum_pcmp_calc_value
    - fclose
    - chksum__pir_get_offset
    - chksum__mp__calc_value
    linkageType: ''
    returnType: int
    signature: int main( int argc, char* argv[] )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/biossums.c:219,1
    - Dst: exit
      Src: /src/xen/tools/firmware/rombios/biossums.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - okay
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: check
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 17
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void check( int okay, char* message )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: chksum_bios_get_offset
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum_bios_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: chksum_bios_calc_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte chksum_bios_calc_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: chksum_bios_get_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte chksum_bios_get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: chksum_bios_set_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chksum_bios_set_value( byte* data, long offset, byte value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:263,1
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: chksum__32__calc_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__32__calc_value( byte* data, long offset )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 294
    functionName: chksum__32__get_offset
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum__32__get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: chksum__32__get_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__32__get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: chksum__32__set_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void chksum__32__set_value( byte* data, long offset, byte value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:317,1
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 328
    functionName: chksum__mp__calc_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__mp__calc_value( byte* data, long offset )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 348
    functionName: chksum__mp__get_offset
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum__mp__get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 355
    functionName: chksum__mp__get_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__mp__get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: chksum__mp__set_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void chksum__mp__set_value( byte* data, long offset, byte value )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:371,1
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:374,1
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 388
    functionName: chksum_pcmp_calc_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum_pcmp_calc_value( byte* data, long offset )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 408
    functionName: chksum_pcmp_get_offset
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum_pcmp_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: chksum_pcmp_get_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum_pcmp_get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: chksum_pcmp_set_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void chksum_pcmp_set_value( byte* data, long offset, byte value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:431,1
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 443
    functionName: chksum__pir_calc_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__pir_calc_value( byte* data, long offset )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 463
    functionName: chksum__pir_get_offset
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum__pir_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: chksum__pir_get_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum__pir_get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/rombios/biossums.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: chksum__pir_set_value
    functionSourceFile: /src/xen/tools/firmware/rombios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void chksum__pir_set_value( byte* data, long offset, byte value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: __stringify
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __stringify(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: stringify
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stringify(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _expr
    - ','
    - _action
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(_expr, _action)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - format
    - ','
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: PMM_DEBUG
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PMM_DEBUG(format, p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: ALIGN_UP
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_UP(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: ALIGN_DOWN
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_DOWN(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: memblk_is_inuse
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_is_inuse(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: memblk_is_avail
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_is_avail(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mb
    - handle
    argTypes:
    - memblk_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: set_inuse
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_inuse(memblk_t *mb, uint32_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mb
    argTypes:
    - memblk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: set_avail
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_avail(memblk_t *mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: memblk_size
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_size(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: memblk_buffer
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_buffer(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: memblk_bufsize
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_bufsize(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: buffer_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: buffer_memblk(_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _h
    - ','
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: memblk_loop_mbondition
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memblk_loop_mbondition(_h, _mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _h
    - ','
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: for_each_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_memblk(_h, _mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _h
    - ','
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: for_remain_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_remain_memblk(_h, _mb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memblk_buffer
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:220,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:223,1
    - Dst: set_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mb
    - size
    argTypes:
    - memblk_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: split_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_buffer
    - memblk_bufsize
    - set_avail
    linkageType: ''
    returnType: memblk_t
    signature: 'memblk_t *

      split_memblk(memblk_t *mb, uint32_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_remain_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:249,1
    - Dst: memblk_is_inuse
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - heap
    - mb
    argTypes:
    - heap_t*
    - memblk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: collect_avail_memblks
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_is_inuse
    - for_remain_memblk
    linkageType: ''
    returnType: void
    signature: void collect_avail_memblks(heap_t *heap, memblk_t *mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_UP
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:258,1
    - Dst: ALIGN_DOWN
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:260,1
    - Dst: set_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - heap
    - from_addr
    - to_addr
    argTypes:
    - heap_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 265
    functionName: pmm_init_heap
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - ALIGN_UP
    - ALIGN_DOWN
    - set_avail
    linkageType: ''
    returnType: void
    signature: void pmm_init_heap(heap_t *heap, uint32_t from_addr, uint32_t to_addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pmm_init_heap
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:278,1
    - Dst: pmm_init_heap
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 288
    functionName: pmm_initalize
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - pmm_init_heap
    linkageType: ''
    returnType: void
    signature: void pmm_initalize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memblk_is_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:298,1
    - Dst: collect_avail_memblks
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:300,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - heap
    argTypes:
    - heap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: pmm_max_avail_length
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_bufsize
    - collect_avail_memblks
    - memblk_is_avail
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmm_max_avail_length(heap_t *heap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memblk_is_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:298,1
    - Dst: collect_avail_memblks
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:300,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 304
    functionName: for_each_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_bufsize
    - collect_avail_memblks
    - memblk_is_avail
    linkageType: ''
    returnType: void
    signature: void for_each_memblk ( heap, mb )
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memblk_is_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:320,1
    - Dst: collect_avail_memblks
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:322,1
    - Dst: memblk_buffer
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:326,1
    - Dst: ALIGN_UP
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:327,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:331,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:333,1
    - Dst: split_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:336,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - heap
    - size
    - handle
    - flags
    argTypes:
    - heap_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 355
    functionName: first_fit
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_is_avail
    - ALIGN_UP
    - split_memblk
    - memblk_buffer
    - memblk_bufsize
    - ASSERT
    - collect_avail_memblks
    linkageType: ''
    returnType: memblk_t
    signature: 'memblk_t *

      first_fit(heap_t *heap, uint32_t size, uint32_t handle, uint32_t flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memblk_is_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:320,1
    - Dst: collect_avail_memblks
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:322,1
    - Dst: memblk_buffer
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:326,1
    - Dst: ALIGN_UP
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:327,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:331,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:333,1
    - Dst: split_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:336,1
    - Dst: memblk_bufsize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 352
    functionName: for_each_memblk
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_is_avail
    - ALIGN_UP
    - split_memblk
    - memblk_buffer
    - memblk_bufsize
    - ASSERT
    - collect_avail_memblks
    linkageType: ''
    returnType: void
    signature: void for_each_memblk ( heap, mb )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - heap
    - handle
    argTypes:
    - heap_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: pmm_find_handle
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - for_each_memblk
    linkageType: ''
    returnType: memblk_t
    signature: 'memblk_t *

      pmm_find_handle(heap_t *heap, uint32_t handle)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pmm_max_avail_length
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:421,1
    - Dst: first_fit
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:424,1
    - Dst: for_remain_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:434,1
    - Dst: split_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:439,1
    - Dst: set_inuse
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:440,1
    - Dst: memblk_buffer
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - length
    - handle
    - flags
    argTypes:
    - uint32_t
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 443
    functionName: pmmAllocate
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - set_inuse
    - pmm_max_avail_length
    - split_memblk
    - memblk_buffer
    - for_remain_memblk
    - first_fit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmmAllocate(uint32_t length, uint32_t handle, uint16_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pmm_find_handle
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:460,1
    - Dst: pmm_find_handle
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:462,1
    - Dst: memblk_buffer
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 465
    functionName: pmmFind
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_buffer
    - pmm_find_handle
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmmFind(uint32_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buffer_memblk
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:477,1
    - Dst: memblk_is_inuse
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:479,1
    - Dst: set_avail
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 484
    functionName: pmmDeallocate
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - memblk_is_inuse
    - buffer_memblk
    - set_avail
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmmDeallocate(uint32_t buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pmm_initalize
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:508,1
    - Dst: pmmAllocate
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:513,1
    - Dst: PMM_DEBUG
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:514,1
    - Dst: pmmFind
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:519,1
    - Dst: PMM_DEBUG
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:520,1
    - Dst: pmmDeallocate
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:524,1
    - Dst: PMM_DEBUG
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:525,1
    - Dst: PMM_DEBUG
      Src: /src/xen/tools/firmware/rombios/32bit/pmm.c:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - argp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 501
    functionDepth: 4
    functionLinenumber: 501
    functionLinenumberEnd: 534
    functionName: pmm
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/pmm.c
    functionUses: 0
    functionsReached:
    - PMM_DEBUG
    - pmmDeallocate
    - pmmFind
    - pmm_initalize
    - pmmAllocate
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmm(void *argp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: mmio_readb
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mmio_readb(uint8_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: mmio_readw
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t mmio_readw(uint16_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: mmio_readl
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mmio_readl(uint32_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: isdigit
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: outb
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outb(uint16_t addr, uint8_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: outw
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outw(uint16_t addr, uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: outl
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outl(uint16_t addr, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: inb
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t inb(uint16_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: inw
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t inw(uint16_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: inl
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t inl(uint16_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: itoa
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *itoa(char *a, unsigned int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - ct
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: strcmp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 115
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strcmp(const char *cs, const char *ct)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: strncmp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strncmp(const char *s1, const char *s2, uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 120
    functionName: memcpy
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 130
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memcpy(void *dest, const void *src, unsigned n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: memmove
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 15
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *memmove(void *dest, const void *src, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: strcpy
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strcpy(char *dest, const char *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 172
    functionName: strncpy
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strncpy(char *dest, const char *src, unsigned n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: strlen
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 150
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned strlen(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: memset
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 149
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      memset(void *s, int c, unsigned n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 210
    functionName: memcmp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memcmp(const void *s1, const void *s2, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - idx
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 219
    functionName: cpuid
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx,
      uint32_t *edx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - digits
    - byte
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 238
    functionName: byte_to_hex
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void byte_to_hex(char *digits, uint8_t byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:252,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:258,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:264,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:270,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - dest
    - uuid
    argTypes:
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 280
    functionName: uuid_to_string
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached:
    - byte_to_hex
    linkageType: ''
    returnType: void
    signature: void uuid_to_string(char *dest, uint8_t *uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printnum
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - num
    - base
    argTypes:
    - char*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: printnum
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 1
    functionsReached:
    - printnum
    linkageType: ''
    returnType: char
    signature: char *printnum(char *p, unsigned long num, int base)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:305,1
    - Dst: isdigit
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:311,1
    - Dst: isdigit
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:319,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:330,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:332,1
    - Dst: printnum
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:334,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:340,1
    - Dst: printnum
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:342,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:345,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:347,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:349,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:353,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:354,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:357,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:359,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:362,1
    - Dst: put
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:370,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 373
    functionName: _doprint
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached:
    - va_arg
    - put
    - isdigit
    - strlen
    - printnum
    linkageType: ''
    returnType: void
    signature: void _doprint(void (*put)(char), const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: putchar
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 4
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void putchar(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:384,1
    - Dst: _doprint
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:385,1
    - Dst: va_end
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: printf
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 452
    functionsReached:
    - va_start
    - _doprint
    - va_end
    linkageType: ''
    returnType: int
    signature: int printf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:394,1
    - Dst: inb
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - waittime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 404
    functionName: mssleep
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached:
    - inb
    linkageType: ''
    returnType: void
    signature: void mssleep(uint32_t waittime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: __find_rsdp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: struct acpi_20_rsdp
    signature: struct acpi_20_rsdp *__find_rsdp(const void *start, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:428,1
    - Dst: __find_rsdp
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:430,1
    - Dst: __find_rsdp
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 435
    functionName: find_rsdp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 1
    functionsReached:
    - __find_rsdp
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: struct acpi_20_rsdp
    signature: struct acpi_20_rsdp *find_rsdp(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_rsdp
      Src: /src/xen/tools/firmware/rombios/32bit/util.c:439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 465
    functionName: get_s3_waking_vector
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/util.c
    functionUses: 2
    functionsReached:
    - find_rsdp
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_s3_waking_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - seg
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: ADDR_FROM_SEG_OFF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDR_FROM_SEG_OFF(seg, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: SetCF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: SetZF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetZF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: ClearCF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: ClearZF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearZF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GetCF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetCF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: SET_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: CLEAR_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: GET_CF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: SET_ZF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: CLEAR_ZF
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seg
    - 'off'
    argTypes:
    - Bit16u
    - Bit16u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: read_dword
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 4
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: Bit32u
    signature: Bit32u read_dword(Bit16u seg, Bit16u off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seg
    - 'off'
    argTypes:
    - Bit16u
    - Bit16u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: read_word
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 9
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u read_word(Bit16u seg, Bit16u off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seg
    - 'off'
    argTypes:
    - Bit16u
    - Bit16u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: read_byte
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 10
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: Bit8u
    signature: Bit8u read_byte(Bit16u seg, Bit16u off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seg
    - 'off'
    - val
    argTypes:
    - Bit16u
    - Bit16u
    - Bit32u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: write_dword
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 4
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: void
    signature: void write_dword(Bit16u seg, Bit16u off, Bit32u val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seg
    - 'off'
    - val
    argTypes:
    - Bit16u
    - Bit16u
    - Bit16u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: write_word
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 9
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: void
    signature: void write_word(Bit16u seg, Bit16u off, Bit16u val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seg
    - 'off'
    - val
    argTypes:
    - Bit16u
    - Bit16u
    - Bit8u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: write_byte
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 6
    functionsReached:
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: void
    signature: void write_byte(Bit16u seg, Bit16u off, Bit8u val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - idx
    - ','
    - ret
    - ','
    - fn
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: X
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(idx, ret, fn, args...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmio_readb
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:49,1
    - Dst: mssleep
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - addr
    - time
    - mask
    - expect
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: tis_wait_sts
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - mssleep
    - mmio_readb
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t tis_wait_sts(uint8_t *addr, uint32_t time,\n                             uint8_t
      mask, uint8_t expect)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmio_readb
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:68,1
    - Dst: tis_wait_sts
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - baseaddr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 75
    functionName: tis_activate
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - tis_wait_sts
    - mmio_readb
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_activate(uint32_t baseaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tis_wait_sts
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - baseaddr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: tis_ready
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - tis_wait_sts
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_ready(uint32_t baseaddr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mmio_readw
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:99,1
    - Dst: mssleep
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - baseaddr
    - data
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 127
    functionName: tis_senddata
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - mmio_readw
    - mssleep
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_senddata(uint32_t baseaddr, unsigned char *data, uint32_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmio_readb
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:137,1
    - Dst: mmio_readb
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - baseaddr
    - buffer
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: tis_readresp
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - mmio_readb
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_readresp(uint32_t baseaddr, unsigned char *buffer, uint32_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tis_wait_sts
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - baseaddr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: tis_waitdatavalid
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - tis_wait_sts
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_waitdatavalid(uint32_t baseaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tis_wait_sts
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - baseaddr
    - timeout
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: tis_waitrespready
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - tis_wait_sts
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_waitrespready(uint32_t baseaddr, uint32_t timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmio_readl
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - baseaddr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: tis_probe
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
    functionUses: 0
    functionsReached:
    - mmio_readl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tis_probe(uint32_t baseaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: bswap
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t bswap(uint32_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct tpm_driver*::probe
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: MA_IsTPMPresent
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - struct tpm_driver*::probe
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t MA_IsTPMPresent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:172,1
    - Dst: MA_Transmit
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - startupcode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 180
    functionName: MA_InitTPM
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MA_Transmit
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t MA_InitTPM(uint16_t startupcode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: struct tpm_driver*::activate
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:196,1
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:205,1
    - Dst: struct tpm_driver*::senddata
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:206,1
    - Dst: struct tpm_driver*::waitdatavalid
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:215,1
    - Dst: struct tpm_driver*::waitrespready
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:222,1
    - Dst: struct tpm_driver*::readresp
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:229,1
    - Dst: struct tpm_driver*::ready
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - cmdbuffer
    - respbuffer
    - respbufferlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 242
    functionName: MA_Transmit
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - bswap
    - struct tpm_driver*::waitrespready
    - struct tpm_driver*::waitdatavalid
    - struct tpm_driver*::readresp
    - struct tpm_driver*::activate
    - struct tpm_driver*::senddata
    - struct tpm_driver*::ready
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t MA_Transmit(unsigned char *cmdbuffer, unsigned char *respbuffer,\n
      \                    uint32_t respbufferlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct acpi_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: acpi_validate_entry
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t acpi_validate_entry(struct acpi_header *hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MA_IsTPMPresent
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:273,1
    - Dst: find_rsdp
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:276,1
    - Dst: acpi_validate_entry
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:288,1
    - Dst: printf
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:298,1
    - Dst: tcpa_reset_acpi_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 307
    functionName: tcpa_acpi_init
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - MA_IsTPMPresent
    - find_rsdp
    - tcpa_reset_acpi_log
    - acpi_validate_entry
    - printf
    linkageType: ''
    returnType: void
    signature: void tcpa_acpi_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_get_lasa_base_ptr
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:312,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:314,1
    - Dst: tcpa_get_laml
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: tcpa_reset_acpi_log
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - memset
    - tcpa_get_lasa_base_ptr
    - tcpa_get_laml
    linkageType: ''
    returnType: void
    signature: void tcpa_reset_acpi_log(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_get_lasa_last_ptr
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:331,1
    - Dst: tcpa_get_lasa_base_ptr
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:332,1
    - Dst: tcpa_get_laml
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:352,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - entry_ptr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 374
    functionName: tcpa_extend_acpi_log
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_get_lasa_base_ptr
    - tcpa_get_lasa_last_ptr
    - memcpy
    - tcpa_get_laml
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tcpa_extend_acpi_log(uint32_t entry_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: tcpa_get_lasa_last_ptr
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *tcpa_get_lasa_last_ptr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:518,1
    - Dst: HashLogExtendEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - pcrIndex
    - event_type
    - ptr
    - length
    argTypes:
    - uint32_t
    - uint16_t
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 538
    functionName: tcpa_add_measurement_to_log_simple
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - memset
    - HashLogExtendEvent32
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t tcpa_add_measurement_to_log_simple(uint32_t pcrIndex,\n                                            uint16_t
      event_type,\n                                            uint8_t *ptr, uint32_t
      length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement_to_log_simple
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:577,1
    - Dst: tcpa_add_measurement_to_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:584,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pcrIndex
    - event_type
    - data
    argTypes:
    - uint32_t
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 592
    functionName: tcpa_add_measurement
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement_to_log_simple
    - tcpa_add_measurement_to_log
    - strlen
    linkageType: ''
    returnType: void
    signature: "void tcpa_add_measurement(uint32_t pcrIndex,\n                          uint16_t
      event_type,\n                          uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 601
    functionName: tcpa_calling_int19h
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement
    linkageType: ''
    returnType: void
    signature: void tcpa_calling_int19h(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: tcpa_returned_int19h
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement
    linkageType: ''
    returnType: void
    signature: void tcpa_returned_int19h(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 621
    functionName: tcpa_add_event_separators
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement
    linkageType: ''
    returnType: void
    signature: void tcpa_add_event_separators(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement_to_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:629,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 634
    functionName: tcpa_wake_event
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement_to_log
    - strlen
    linkageType: ''
    returnType: void
    signature: void tcpa_wake_event(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement_to_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:654,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - bootcd
    - bootdrv
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 656
    functionName: tcpa_add_bootdevice
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - tcpa_add_measurement_to_log
    - strlen
    linkageType: ''
    returnType: void
    signature: void tcpa_add_bootdevice(uint32_t bootcd, uint32_t bootdrv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcpa_add_measurement
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: tcpa_start_option_rom_scan
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - tcpa_add_measurement
    linkageType: ''
    returnType: void
    signature: void tcpa_start_option_rom_scan(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:673,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:674,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:679,1
    - Dst: HashAll32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:692,1
    - Dst: tcpa_add_measurement_to_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - seg
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 703
    functionName: tcpa_option_rom
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - HashAll32
    - ADDR_FROM_SEG_OFF
    - read_byte
    - memset
    - tcpa_add_measurement_to_log
    linkageType: ''
    returnType: void
    signature: void tcpa_option_rom(uint32_t seg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:717,1
    - Dst: tcpa_add_measurement_to_log_simple
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:720,1
    - Dst: tcpa_add_measurement_to_log_simple
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:728,1
    - Dst: tcpa_add_measurement_to_log_simple
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:736,1
    - Dst: tcpa_add_measurement_to_log_simple
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - bootcd
    - seg
    - 'off'
    - count
    argTypes:
    - Bit32u
    - Bit32u
    - Bit32u
    - Bit32u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 748
    functionName: tcpa_ipl
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - tcpa_add_measurement_to_log_simple
    - ADDR_FROM_SEG_OFF
    linkageType: ''
    returnType: void
    signature: void tcpa_ipl(Bit32u bootcd,Bit32u seg,Bit32u off,Bit32u count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:754,1
    - Dst: sha1
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:757,1
    - Dst: tcpa_add_pcpes_to_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - Bit32u
    - Bit32u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 766
    functionName: tcpa_measure_post
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - memset
    - tcpa_add_pcpes_to_log
    - sha1
    linkageType: ''
    returnType: void
    signature: void tcpa_measure_post(Bit32u from, Bit32u to)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PassThroughToTPM32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:796,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - idx
    - pttto
    - size_ptto
    argTypes:
    - uint32_t
    - struct pttto*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 804
    functionName: SendCommand32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - PassThroughToTPM32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t SendCommand32(uint32_t idx, struct pttto *pttto, uint32_t
      size_ptto)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:815,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:820,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:825,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:830,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:835,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:840,1
    - Dst: SendCommand32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:845,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - physpres
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 849
    functionName: tcpa_initialize_tpm
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - SendCommand32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tcpa_initialize_tpm(uint32_t physpres)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: TCG_IsShutdownPreBootInterface
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TCG_IsShutdownPreBootInterface(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:874,1
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:875,1
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:876,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:877,1
    - Dst: PassThroughToTPM32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:879,1
    - Dst: tcpa_reset_acpi_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:895,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:896,1
    - Dst: TCG_ShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - hash
    - pcrindex
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 900
    functionName: _TCG_TPM_Extend
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - bswap
    - tcpa_reset_acpi_log
    - PassThroughToTPM32
    - TCG_ShutdownPreBootInterface
    - memset
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t _TCG_TPM_Extend(unsigned char *hash, uint32_t pcrindex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:915,1
    - Dst: HashLogEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:970,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:981,1
    - Dst: _TCG_TPM_Extend
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:982,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 5
    argNames:
    - hleei_s
    - hleeo
    - magic
    - ecx
    - edx
    argTypes:
    - struct hleei_short*
    - struct hleeo*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 903
    functionDepth: 2
    functionLinenumber: 903
    functionLinenumberEnd: 991
    functionName: HashLogExtendEvent32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    - HashLogEvent32
    - _TCG_TPM_Extend
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t HashLogExtendEvent32(struct hleei_short *hleei_s, struct
      hleeo *hleeo,\n                              uint32_t magic, uint32_t ecx, uint32_t
      edx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1002,1
    - Dst: MA_Transmit
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1028,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - pttti
    - pttto
    - magic
    - ecx
    - edx
    argTypes:
    - struct pttti*
    - struct pttto*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1042
    functionName: PassThroughToTPM32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 2
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    - MA_Transmit
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t PassThroughToTPM32(struct pttti *pttti, struct pttto *pttto,\n
      \                           uint32_t magic, uint32_t ecx, uint32_t edx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ebx
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1056
    functionName: TCG_ShutdownPreBootInterface
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TCG_ShutdownPreBootInterface(uint32_t ebx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1070,1
    - Dst: HashAll32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1115,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1123,1
    - Dst: tcpa_extend_acpi_log
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1131,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 5
    argNames:
    - hlei
    - hleo
    - ebx
    - ecx
    - edx
    argTypes:
    - struct hlei*
    - struct hleo*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1152
    functionName: HashLogEvent32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 1
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    - tcpa_extend_acpi_log
    - memcpy
    - HashAll32
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t HashLogEvent32(struct hlei *hlei, struct hleo *hleo,\n                        uint32_t
      ebx, uint32_t ecx, uint32_t edx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1160,1
    - Dst: sha1
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - hai
    - hash
    - magic
    - ecx
    - edx
    argTypes:
    - struct hai*
    - unsigned char*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1192
    functionName: HashAll32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 2
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    - sha1
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t HashAll32(struct hai *hai, unsigned char *hash,\n                   uint32_t
      magic, uint32_t ecx, uint32_t edx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - ti
    - to
    - ebx
    - ecx
    - edx
    argTypes:
    - struct ti*
    - struct to*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1213
    functionName: TSS32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TSS32(struct ti *ti, struct to *to,\n               uint32_t
      ebx, uint32_t ecx, uint32_t edx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TCG_IsShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1226,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1253,1
    - Dst: HashLogExtendEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - buffer
    - info
    - magic
    - length
    - pcrindex
    - edx_ptr
    argTypes:
    - unsigned char*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1271
    functionName: CompactHashLogExtendEvent32
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - TCG_IsShutdownPreBootInterface
    - HashLogExtendEvent32
    - memset
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t CompactHashLogExtendEvent32(unsigned char *buffer,\n                                     uint32_t
      info,\n                                     uint32_t magic,\n                                     uint32_t
      length,\n                                     uint32_t pcrindex,\n                                     uint32_t
      *edx_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - rol
    argTypes:
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1288
    functionName: rol
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rol(uint32_t val, uint16_t rol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1305,1
    - Dst: rol
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1310,1
    - Dst: rol
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1334,1
    - Dst: rol
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - w
    - ctx
    argTypes:
    - uint32_t*
    - sha1_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1351
    functionName: sha1_block
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - bswap
    - rol
    linkageType: ''
    returnType: void
    signature: void sha1_block(uint32_t *w, sha1_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1364,1
    - Dst: sha1_block
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1365,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1373,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1374,1
    - Dst: sha1_block
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1379,1
    - Dst: memset
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1380,1
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1384,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1385,1
    - Dst: sha1_block
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1387,1
    - Dst: bswap
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - data32
    - length
    argTypes:
    - sha1_ctx*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1353
    functionDepth: 2
    functionLinenumber: 1353
    functionLinenumberEnd: 1392
    functionName: sha1_do
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - sha1_block
    - bswap
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha1_do(sha1_ctx *ctx, const unsigned char *data32, uint32_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1408,1
    - Dst: sha1_do
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1409,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - length
    - hash
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1411
    functionName: sha1
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 2
    functionsReached:
    - sha1_do
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha1(const unsigned char *data, uint32_t length, unsigned char
      *hash)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MA_IsTPMPresent
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1423,1
    - Dst: MA_InitTPM
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1428,1
    - Dst: tcpa_get_lasa_base_ptr
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1435,1
    - Dst: tcpa_get_lasa_last_ptr
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1437,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1438,1
    - Dst: HashLogExtendEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1444,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1445,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1448,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1453,1
    - Dst: PassThroughToTPM32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1457,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1458,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1461,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1466,1
    - Dst: TCG_ShutdownPreBootInterface
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1470,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1471,1
    - Dst: HashLogEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1475,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1476,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1479,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1484,1
    - Dst: HashAll32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1488,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1489,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1492,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1497,1
    - Dst: TSS32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1501,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1501,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1503,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1508,1
    - Dst: CompactHashLogExtendEvent32
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1512,1
    - Dst: ADDR_FROM_SEG_OFF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1513,1
    - Dst: CLEAR_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1520,1
    - Dst: SET_CF
      Src: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c:1523,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - regs
    - esds
    - flags_ptr
    argTypes:
    - pushad_regs_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1414
    functionDepth: 4
    functionLinenumber: 1414
    functionLinenumberEnd: 1527
    functionName: TCGInterruptHandler
    functionSourceFile: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    functionUses: 0
    functionsReached:
    - MA_IsTPMPresent
    - HashLogEvent32
    - HashLogExtendEvent32
    - ADDR_FROM_SEG_OFF
    - SET_CF
    - MA_InitTPM
    - tcpa_get_lasa_last_ptr
    - PassThroughToTPM32
    - TCG_ShutdownPreBootInterface
    - CompactHashLogExtendEvent32
    - HashAll32
    - tcpa_get_lasa_base_ptr
    - CLEAR_CF
    - TSS32
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TCGInterruptHandler(pushad_regs_t *regs, uint32_t esds,\n
      \                            uint32_t flags_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_overlap
      Src: /src/xen/tools/firmware/hvmloader/pci.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - start
    - size
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: check_overlap_all
    functionSourceFile: /src/xen/tools/firmware/hvmloader/pci.c
    functionUses: 0
    functionsReached:
    - check_overlap
    linkageType: ''
    returnType: bool
    signature: bool check_overlap_all(uint64_t start, uint64_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GB
      Src: /src/xen/tools/firmware/hvmloader/pci.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - base
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: find_next_rmrr
    functionSourceFile: /src/xen/tools/firmware/hvmloader/pci.c
    functionUses: 0
    functionsReached:
    - GB
    linkageType: ''
    returnType: int
    signature: int find_next_rmrr(uint32_t base)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/pci.c:124,1
    - Dst: typeof
      Src: /src/xen/tools/firmware/hvmloader/pci.c:124,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/pci.c:126,1
    - Dst: typeof
      Src: /src/xen/tools/firmware/hvmloader/pci.c:126,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/pci.c:128,1
    - Dst: typeof
      Src: /src/xen/tools/firmware/hvmloader/pci.c:128,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/pci.c:131,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/pci.c:133,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:134,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/pci.c:137,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/pci.c:139,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:140,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/pci.c:143,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/pci.c:145,1
    - Dst: pci_writeb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:153,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:154,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:158,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:159,1
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/pci.c:165,1
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/pci.c:166,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/pci.c:170,1
    - Dst: mem_hole_alloc
      Src: /src/xen/tools/firmware/hvmloader/pci.c:193,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:199,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/pci.c:206,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:207,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:208,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:209,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:210,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:211,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:212,1
    - Dst: pci_writeb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:213,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:219,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:220,1
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/pci.c:235,1
    - Dst: pci_writew
      Src: /src/xen/tools/firmware/hvmloader/pci.c:237,1
    - Dst: pci_readl
      Src: /src/xen/tools/firmware/hvmloader/pci.c:247,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:254,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:259,1
    - Dst: pci_readl
      Src: /src/xen/tools/firmware/hvmloader/pci.c:263,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:264,1
    - Dst: pci_readl
      Src: /src/xen/tools/firmware/hvmloader/pci.c:274,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:275,1
    - Dst: pci_readl
      Src: /src/xen/tools/firmware/hvmloader/pci.c:276,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:277,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:292,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:300,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/pci.c:310,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:314,1
    - Dst: PRIllx_arg
      Src: /src/xen/tools/firmware/hvmloader/pci.c:316,1
    - Dst: memmove
      Src: /src/xen/tools/firmware/hvmloader/pci.c:327,1
    - Dst: pci_readb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:349,1
    - Dst: pci_readb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:354,1
    - Dst: pci_writeb
      Src: /src/xen/tools/firmware/hvmloader/pci.c:355,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/pci.c:356,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 140
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 362
    functionName: pci_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/pci.c
    functionUses: 0
    functionsReached:
    - pci_readw
    - PRIllx_arg
    - outb
    - pci_readl
    - pci_writeb
    - pci_writew
    - typeof
    - pci_writel
    - BUILD_BUG_ON
    - pci_readb
    - memmove
    - ASSERT
    - printf
    - xenstore_read
    - mem_hole_alloc
    - strtoll
    linkageType: ''
    returnType: void
    signature: void pci_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MSR_MTRRphysBase
    functionSourceFile: /src/xen/tools/firmware/hvmloader/cacheattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_MTRRphysBase(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: MSR_MTRRphysMask
    functionSourceFile: /src/xen/tools/firmware/hvmloader/cacheattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_MTRRphysMask(reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:49,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: cpu_phys_addr
    functionSourceFile: /src/xen/tools/firmware/hvmloader/cacheattr.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpu_phys_addr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:66,1
    - Dst: cpu_phys_addr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:70,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:72,1
    - Dst: rdmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:75,1
    - Dst: BCST
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:83,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:84,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:85,1
    - Dst: BCST
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:89,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:90,1
    - Dst: BCST
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:93,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:95,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:99,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:116,1
    - Dst: MSR_MTRRphysBase
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:116,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:117,1
    - Dst: MSR_MTRRphysMask
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:117,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:131,1
    - Dst: MSR_MTRRphysBase
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:131,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:132,1
    - Dst: MSR_MTRRphysMask
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:132,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:137,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/cacheattr.c:140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 141
    functionName: cacheattr_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/cacheattr.c
    functionUses: 0
    functionsReached:
    - rdmsr
    - cpu_phys_addr
    - wrmsr
    - MSR_MTRRphysBase
    - cpuid
    - BCST
    - printf
    - MSR_MTRRphysMask
    linkageType: ''
    returnType: void
    signature: void cacheattr_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: BCST
    functionSourceFile: /src/xen/tools/firmware/hvmloader/cacheattr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BCST(mt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smp.c:51,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smp.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: read_apic_id
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smp.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_apic_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_apic_id
      Src: /src/xen/tools/firmware/hvmloader/smp.c:63,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/smp.c:65,1
    - Dst: cacheattr_init
      Src: /src/xen/tools/firmware/hvmloader/smp.c:66,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/smp.c:67,1
    - Dst: wmb
      Src: /src/xen/tools/firmware/hvmloader/smp.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: cpu_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smp.c
    functionUses: 0
    functionsReached:
    - wmb
    - read_apic_id
    - cacheattr_init
    - printf
    linkageType: ''
    returnType: void
    signature: void cpu_setup(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/xen/tools/firmware/hvmloader/smp.c:83,1
    - Dst: wmb
      Src: /src/xen/tools/firmware/hvmloader/smp.c:88,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/firmware/hvmloader/smp.c:95,1
    - Dst: hypercall_vcpu_op
      Src: /src/xen/tools/firmware/hvmloader/smp.c:116,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/smp.c:117,1
    - Dst: hypercall_vcpu_op
      Src: /src/xen/tools/firmware/hvmloader/smp.c:118,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/smp.c:119,1
    - Dst: cpu_relax
      Src: /src/xen/tools/firmware/hvmloader/smp.c:126,1
    - Dst: hypercall_vcpu_op
      Src: /src/xen/tools/firmware/hvmloader/smp.c:129,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/smp.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: boot_cpu
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smp.c
    functionUses: 0
    functionsReached:
    - BUG
    - wmb
    - cpu_relax
    - ARRAY_SIZE
    - hypercall_vcpu_op
    - aligned
    linkageType: ''
    returnType: void
    signature: void boot_cpu(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smp.c:138,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smp.c:141,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/smp.c:144,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/smp.c:147,1
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/smp.c:148,1
    - Dst: cpu_setup
      Src: /src/xen/tools/firmware/hvmloader/smp.c:150,1
    - Dst: boot_cpu
      Src: /src/xen/tools/firmware/hvmloader/smp.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: smp_initialise
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smp.c
    functionUses: 0
    functionsReached:
    - cpu_setup
    - cpuid
    - scratch_alloc
    - printf
    - boot_cpu
    linkageType: ''
    returnType: void
    signature: void smp_initialise(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:128,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:132,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:136,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: smbios_pt_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - strtoll
    - xenstore_read
    linkageType: ''
    returnType: void
    signature: void smbios_pt_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - type
    - length_out
    argTypes:
    - uint8_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: get_smbios_pt_struct
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      get_smbios_pt_struct(uint8_t type, uint32_t *length_out)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_smbios_pt_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:184,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - start
    - type
    - handle
    - min_size
    argTypes:
    - void*
    - uint8_t
    - uint16_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 193
    functionName: smbios_pt_copy
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - get_smbios_pt_struct
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_pt_copy(void *start, uint8_t type, uint16_t handle, size_t min_size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:201,1
    - Dst: memcmp
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:204,1
    - Dst: strncpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:205,1
    - Dst: memcmp
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:206,1
    - Dst: strncpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:207,1
    - Dst: strncpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: get_cpu_manufacturer
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - strncpy
    - cpuid
    - memcmp
    linkageType: ''
    returnType: void
    signature: void get_cpu_manufacturer(char *buf, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:224,1
    - Dst: get_cpu_manufacturer
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:226,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:239,1
    - Dst: smbios_type_0_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:239,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:241,1
    - Dst: smbios_type_1_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:241,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:242,1
    - Dst: smbios_type_2_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:242,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:243,1
    - Dst: smbios_type_3_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:243,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:245,1
    - Dst: smbios_type_4_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:245,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:246,1
    - Dst: smbios_type_7_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:246,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:247,1
    - Dst: smbios_type_8_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:247,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:248,1
    - Dst: smbios_type_9_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:248,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:249,1
    - Dst: smbios_type_11_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:249,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:253,1
    - Dst: smbios_type_16_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:253,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:259,1
    - Dst: smbios_type_17_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:259,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:260,1
    - Dst: smbios_type_19_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:260,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:261,1
    - Dst: smbios_type_20_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:261,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:264,1
    - Dst: smbios_type_22_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:264,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:265,1
    - Dst: smbios_type_26_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:265,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:266,1
    - Dst: smbios_type_27_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:266,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:267,1
    - Dst: smbios_type_28_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:267,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:268,1
    - Dst: smbios_type_32_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:268,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:269,1
    - Dst: smbios_type_39_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:269,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:270,1
    - Dst: smbios_type_vendor_oem_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:270,1
    - Dst: do_struct
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:271,1
    - Dst: smbios_type_127_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 10
    argNames:
    - ep
    - start
    - vcpus
    - memsize
    - uuid
    - xen_version
    - xen_major_version
    - xen_minor_version
    - nr_structs
    - max_struct_size
    argTypes:
    - void*
    - void*
    - uint32_t
    - uint64_t
    - uint8_t[]
    - char*
    - uint32_t
    - uint32_t
    - unsigned*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 276
    functionName: write_smbios_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - smbios_pt_init
    - smbios_type_4_init
    - smbios_type_11_init
    - smbios_type_28_init
    - smbios_type_20_init
    - smbios_type_16_init
    - smbios_type_8_init
    - smbios_type_2_init
    - smbios_type_32_init
    - get_cpu_manufacturer
    - smbios_type_22_init
    - smbios_type_9_init
    - smbios_type_vendor_oem_init
    - smbios_type_127_init
    - smbios_type_0_init
    - smbios_type_1_init
    - smbios_type_26_init
    - smbios_type_39_init
    - smbios_type_7_init
    - smbios_type_27_init
    - smbios_type_3_init
    - smbios_type_17_init
    - smbios_type_19_init
    - do_struct
    linkageType: ''
    returnType: int
    signature: "int write_smbios_tables(void *ep, void *start,\n                    uint32_t
      vcpus, uint64_t memsize,\n                    uint8_t uuid[16], char *xen_version,\n
      \                   uint32_t xen_major_version, uint32_t xen_minor_version,\n
      \                   unsigned *nr_structs, unsigned *max_struct_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: do_struct
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_struct(fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GB
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:286,1
    - Dst: MB
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 294
    functionName: get_memsize
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - MB
    - GB
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_memsize(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hypercall_xen_version
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:313,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:314,1
    - Dst: hypercall_xen_version
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:317,1
    - Dst: hypercall_xen_version
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:321,1
    - Dst: itoa
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:327,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:328,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:332,1
    - Dst: itoa
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:341,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:342,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:346,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:349,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:353,1
    - Dst: write_smbios_tables
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:359,1
    - Dst: get_memsize
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:360,1
    - Dst: mem_alloc
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:368,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:370,1
    - Dst: smbios_entry_point_init
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:372,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:378,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - ep
    - smbios_start
    - smbios_end
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 380
    functionName: hvm_write_smbios_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 0
    functionsReached:
    - hypercall_xen_version
    - get_memsize
    - itoa
    - smbios_entry_point_init
    - BUILD_BUG_ON
    - write_smbios_tables
    - strcpy
    - strlen
    - printf
    - mem_alloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void hvm_write_smbios_tables(\n    unsigned long ep, unsigned long
      smbios_start, unsigned long smbios_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:394,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:396,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - start
    - max_structure_size
    - structure_table_length
    - structure_table_address
    - number_of_structures
    argTypes:
    - void*
    - uint16_t
    - uint16_t
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 418
    functionName: smbios_entry_point_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void smbios_entry_point_init(void *start,\n                        uint16_t
      max_structure_size,\n                        uint16_t structure_table_length,\n
      \                       uint32_t structure_table_address,\n                        uint16_t
      number_of_structures)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:434,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:436,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:440,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:465,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:466,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:467,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:469,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:470,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:471,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:473,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 4
    argNames:
    - start
    - xen_version
    - xen_major_version
    - xen_minor_version
    argTypes:
    - void*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 478
    functionName: smbios_type_0_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - BUILD_BUG_ON
    - memset
    - strcpy
    - strlen
    - xenstore_read
    - smbios_pt_copy
    linkageType: ''
    returnType: void
    signature: "void *\nsmbios_type_0_init(void *start, const char *xen_version,\n
      \                  uint32_t xen_major_version, uint32_t xen_minor_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:491,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:493,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:497,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:508,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:516,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:517,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:518,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:520,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:521,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:522,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:524,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:525,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:526,1
    - Dst: uuid_to_string
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:528,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:529,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:530,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 3
    argNames:
    - start
    - xen_version
    - uuid
    argTypes:
    - void*
    - char*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 536
    functionName: smbios_type_1_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - BUILD_BUG_ON
    - memset
    - strcpy
    - strlen
    - xenstore_read
    - uuid_to_string
    - smbios_pt_copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void *\nsmbios_type_1_init(void *start, const char *xen_version,\n
      \                  uint8_t uuid[16])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:554,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:555,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:559,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:569,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:578,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:581,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:582,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:586,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:589,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:590,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:594,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:597,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:598,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:602,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:605,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:606,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:610,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:613,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:614,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:618,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:621,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:622,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 634
    functionName: smbios_type_2_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - endof_field
    - strcpy
    - xenstore_read
    - strlen
    - smbios_pt_copy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_2_init(void *start)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:652,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:657,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:675,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:676,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:677,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:680,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:683,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:684,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:687,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:690,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:691,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 697
    functionName: smbios_type_3_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - strcpy
    - strlen
    - xenstore_read
    - smbios_pt_copy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_3_init(void *start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:709,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:711,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:722,1
    - Dst: get_cpu_mhz
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:731,1
    - Dst: strncpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:741,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:742,1
    - Dst: itoa
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:743,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:743,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:745,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:746,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:748,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 3
    argNames:
    - start
    - cpu_number
    - cpu_manufacturer
    argTypes:
    - void*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 753
    functionName: smbios_type_4_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - get_cpu_mhz
    - itoa
    - BUILD_BUG_ON
    - strncpy
    - cpuid
    - strcpy
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: "void *\nsmbios_type_4_init(\n    void *start, unsigned int cpu_number,
      char *cpu_manufacturer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:760,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 765
    functionName: smbios_type_7_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_7_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:772,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 777
    functionName: smbios_type_8_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_8_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:784,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 789
    functionName: smbios_type_9_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_9_init(void *start)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:802,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:804,1
    - Dst: snprintf
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:819,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:820,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:822,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:823,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:830,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 837
    functionName: smbios_type_11_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - snprintf
    - BUILD_BUG_ON
    - strcpy
    - strlen
    - xenstore_read
    - smbios_pt_copy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_11_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:846,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - start
    - memsize
    - nr_mem_devs
    argTypes:
    - void*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 864
    functionName: smbios_type_16_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_16_init(void *start, uint32_t memsize, int nr_mem_devs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:874,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:876,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:885,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:895,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:896,1
    - Dst: itoa
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:897,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:898,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 3
    argNames:
    - start
    - memory_size_mb
    - instance
    argTypes:
    - void*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 903
    functionName: smbios_type_17_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - itoa
    - BUILD_BUG_ON
    - ASSERT
    - strcpy
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_17_init(void *start, uint32_t memory_size_mb, int instance)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:912,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - start
    - memory_size_mb
    - instance
    argTypes:
    - void*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 928
    functionName: smbios_type_19_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_19_init(void *start, uint32_t memory_size_mb, int instance)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:937,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - start
    - memory_size_mb
    - instance
    argTypes:
    - void*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 957
    functionName: smbios_type_20_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_20_init(void *start, uint32_t memory_size_mb, int instance)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:969,1
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:971,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:975,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:976,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:979,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1003,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1004,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1006,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1007,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1008,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1010,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1011,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1013,1
    - Dst: strcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1014,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 1020
    functionName: smbios_type_22_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - BUILD_BUG_ON
    - strncmp
    - memset
    - strcpy
    - strlen
    - xenstore_read
    - smbios_pt_copy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_22_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1035,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1037
    functionName: smbios_type_26_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - endof_field
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_26_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1052,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1054
    functionName: smbios_type_27_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - endof_field
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_27_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1069,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1071
    functionName: smbios_type_28_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - endof_field
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_28_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1080,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1082,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1093
    functionName: smbios_type_32_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_32_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smbios_pt_copy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1108,1
    - Dst: endof_field
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1110
    functionName: smbios_type_39_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - smbios_pt_copy
    - endof_field
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_39_init(void *start)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1142
    functionName: smbios_type_vendor_oem_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_vendor_oem_init(void *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/smbios.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - start
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1159
    functionName: smbios_type_127_init
    functionSourceFile: /src/xen/tools/firmware/hvmloader/smbios.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      smbios_type_127_init(void *start)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:65,1
    - Dst: mem_alloc
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:66,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:67,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:68,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:87,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:89,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:96,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:110,1
    - Dst: ELF32_R_SYM
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:121,1
    - Dst: ELF32_R_TYPE
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:125,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:138,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - elfarray
    - elfarraysize
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 141
    functionName: relocate_32bitbios
    functionSourceFile: /src/xen/tools/firmware/hvmloader/32bitbios_support.c
    functionUses: 0
    functionsReached:
    - ELF32_R_TYPE
    - BUG_ON
    - ELF32_R_SYM
    - memset
    - printf
    - mem_alloc
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t relocate_32bitbios(char *elfarray, uint32_t elfarraysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: relocate_32bitbios
      Src: /src/xen/tools/firmware/hvmloader/32bitbios_support.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: rombios_highbios_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/32bitbios_support.c
    functionUses: 0
    functionsReached:
    - relocate_32bitbios
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rombios_highbios_setup(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:56,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:71,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:88,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:94,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:96,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:99,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:104,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:110,1
    - Dst: round_option_rom
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:112,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 6
    argNames:
    - option_rom_end
    - devfn
    - vendor_id
    - device_id
    - roms
    - dest
    argTypes:
    - unsigned int
    - uint8_t
    - uint16_t
    - uint16_t
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 113
    functionName: scan_option_rom
    functionSourceFile: /src/xen/tools/firmware/hvmloader/optionroms.c
    functionUses: 0
    functionsReached:
    - strncmp
    - round_option_rom
    - memcpy
    - printf
    linkageType: ''
    returnType: int
    signature: "int scan_option_rom(\n    unsigned int option_rom_end,\n    uint8_t
      devfn, uint16_t vendor_id, uint16_t device_id,\n    void *roms, uint32_t dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:130,1
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:131,1
    - Dst: scan_option_rom
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - option_rom_end
    - copy_rom_dest
    - etherboot_rom
    argTypes:
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: scan_etherboot_nic
    functionSourceFile: /src/xen/tools/firmware/hvmloader/optionroms.c
    functionUses: 0
    functionsReached:
    - scan_option_rom
    - pci_readw
    linkageType: ''
    returnType: int
    signature: "int scan_etherboot_nic(unsigned int option_rom_end,\n                       uint32_t
      copy_rom_dest,\n                       void *etherboot_rom)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:158,1
    - Dst: pci_readw
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:159,1
    - Dst: pci_readl
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:171,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:176,1
    - Dst: scan_option_rom
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:178,1
    - Dst: pci_writel
      Src: /src/xen/tools/firmware/hvmloader/optionroms.c:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - option_rom_end
    - rom_base_addr
    argTypes:
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 188
    functionName: pci_load_option_roms
    functionSourceFile: /src/xen/tools/firmware/hvmloader/optionroms.c
    functionUses: 0
    functionsReached:
    - scan_option_rom
    - pci_readl
    - pci_writel
    - pci_readw
    linkageType: ''
    returnType: int
    signature: "int pci_load_option_roms(unsigned int option_rom_end,\n                         uint32_t
      rom_base_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: setup_paging
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_paging(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: start_paging
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void start_paging(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: stop_paging
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void stop_paging(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_paging
      Src: /src/xen/tools/firmware/hvmloader/tests.c:107,1
    - Dst: stop_paging
      Src: /src/xen/tools/firmware/hvmloader/tests.c:127,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 148
    functionName: rep_insb_test
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached:
    - start_paging
    - stop_paging
    - printf
    linkageType: ''
    returnType: int
    signature: int rep_insb_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start_paging
      Src: /src/xen/tools/firmware/hvmloader/tests.c:170,1
    - Dst: stop_paging
      Src: /src/xen/tools/firmware/hvmloader/tests.c:190,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 212
    functionName: rep_insw_test
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached:
    - start_paging
    - stop_paging
    - printf
    linkageType: ''
    returnType: int
    signature: int rep_insw_test(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/tests.c:220,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/tests.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 271
    functionName: shadow_gs_test
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: int
    signature: int shadow_gs_test(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:286,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/tests.c:288,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:292,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:301,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/tests.c:312,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/tests.c:340,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:348,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:355,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/tests.c:356,1
    - Dst: setup_paging
      Src: /src/xen/tools/firmware/hvmloader/tests.c:357,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:361,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:365,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:368,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:374,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:376,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/tests.c:379,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/tests.c:380,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 382
    functionName: perform_tests
    functionSourceFile: /src/xen/tools/firmware/hvmloader/tests.c
    functionUses: 0
    functionsReached:
    - BUG
    - setup_paging
    - BUILD_BUG_ON
    - strlen
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void perform_tests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: round_option_rom
    functionSourceFile: /src/xen/tools/firmware/hvmloader/option_rom.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_option_rom(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: hcall_addr
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hcall_addr(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: _hypercall0
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall0(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: _hypercall1
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall1(type, name, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: _hypercall2
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall2(type, name, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: _hypercall3
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall3(type, name, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: _hypercall4
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall4(type, name, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: _hypercall5
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall5(type, name, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: hypercall_sched_op
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_sched_op(\n    int cmd, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: hypercall_memory_op
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_memory_op(\n    unsigned int cmd, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - call_list
    - nr_calls
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: hypercall_multicall
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_multicall(\n    void *call_list, int nr_calls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: hypercall_event_channel_op
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_event_channel_op(\n    int cmd, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: hypercall_xen_version
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 1
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_xen_version(\n    int cmd, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall3
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - count
    - str
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: hypercall_console_io
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall3
    linkageType: ''
    returnType: int
    signature: "int hypercall_console_io(\n    int cmd, int count, char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: hypercall_vm_assist
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_vm_assist(\n    unsigned int cmd, unsigned int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall3
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - vcpuid
    - extra_args
    argTypes:
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: hypercall_vcpu_op
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 1
    functionsReached:
    - _hypercall3
    linkageType: ''
    returnType: int
    signature: "int hypercall_vcpu_op(\n    int cmd, int vcpuid, void *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall2
      Src: /src/xen/tools/firmware/hvmloader/hypercall.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: hypercall_hvm_op
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hypercall.h
    functionUses: 0
    functionsReached:
    - _hypercall2
    linkageType: ''
    returnType: int
    signature: "int hypercall_hvm_op(\n    int cmd, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_e820_table
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:54,1
    - Dst: dump_e820_table
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: rombios_setup_e820
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - dump_e820_table
    - build_e820_table
    linkageType: ''
    returnType: void
    signature: void rombios_setup_e820(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: rombios_setup_bios_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void rombios_setup_bios_info(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:76,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:77,1
    - Dst: round_option_rom
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:79,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:82,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:83,1
    - Dst: round_option_rom
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:85,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:88,1
    - Dst: round_option_rom
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:89,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:93,1
    - Dst: scan_etherboot_nic
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:103,1
    - Dst: pci_load_option_roms
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:108,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:112,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:114,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:118,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 125
    functionName: rombios_load_roms
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - pci_load_option_roms
    - round_option_rom
    - scan_etherboot_nic
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rombios_load_roms(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:134,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:136,1
    - Dst: rombios_highbios_setup
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - config
    - unused_addr
    - unused_size
    - ipxe_addr
    argTypes:
    - struct bios_config*
    - void*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: rombios_load
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - rombios_highbios_setup
    - memcpy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void rombios_load(const struct bios_config *config,\n                         void
      *unused_addr, uint32_t unused_size,\n                         void *ipxe_addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: get_mp_table_start
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: void
    signature: void *get_mp_table_start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: reset_bios_checksum
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_bios_checksum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmloader_acpi_build_tables
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: rombios_acpi_build_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - hvmloader_acpi_build_tables
    linkageType: ''
    returnType: void
    signature: void rombios_acpi_build_tables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_mp_table_start
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:197,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:201,1
    - Dst: create_mp_tables
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:205,1
    - Dst: reset_bios_checksum
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: rombios_create_mp_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - printf
    - reset_bios_checksum
    - get_mp_table_start
    - create_mp_tables
    linkageType: ''
    returnType: void
    signature: void rombios_create_mp_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_write_smbios_tables
      Src: /src/xen/tools/firmware/hvmloader/rombios.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: rombios_create_smbios_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/rombios.c
    functionUses: 0
    functionsReached:
    - hvm_write_smbios_tables
    linkageType: ''
    returnType: void
    signature: void rombios_create_smbios_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: seabios_setup_bios_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - scratch_alloc
    linkageType: ''
    returnType: void
    signature: void seabios_setup_bios_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: seabios_finish_bios_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void seabios_finish_bios_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: add_table
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void add_table(uint32_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:91,1
    - Dst: hvmloader_acpi_build_tables
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:99,1
    - Dst: add_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: seabios_acpi_build_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - add_table
    - hvmloader_acpi_build_tables
    - scratch_alloc
    linkageType: ''
    returnType: void
    signature: void seabios_acpi_build_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:105,1
    - Dst: create_mp_tables
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: seabios_create_mp_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - add_table
    - create_mp_tables
    linkageType: ''
    returnType: void
    signature: void seabios_create_mp_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:110,1
    - Dst: hvm_write_smbios_tables
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:111,1
    - Dst: add_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: seabios_create_smbios_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - add_table
    - scratch_alloc
    - hvm_write_smbios_tables
    linkageType: ''
    returnType: void
    signature: void seabios_create_smbios_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:117,1
    - Dst: create_pir_tables
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: seabios_create_pir_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - add_table
    - create_pir_tables
    linkageType: ''
    returnType: void
    signature: void seabios_create_pir_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:123,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:127,1
    - Dst: build_e820_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:129,1
    - Dst: dump_e820_table
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: seabios_setup_e820
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - build_e820_table
    - dump_e820_table
    - scratch_alloc
    linkageType: ''
    returnType: void
    signature: void seabios_setup_e820(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:139,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/seabios.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - bios
    - bios_addr
    - bios_length
    - unused_addr
    argTypes:
    - struct bios_config*
    - void*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: seabios_load
    functionSourceFile: /src/xen/tools/firmware/hvmloader/seabios.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void seabios_load(const struct bios_config *bios,\n                         void
      *bios_addr, uint32_t bios_length,\n                         void *unused_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: XEN_ERRNO
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_ERRNO(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ASSERT
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: BUG
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: BUG_ON
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - p
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: test_bit
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_bit(unsigned int b, const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_and_clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - v
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: wrmsr
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrmsr(uint32_t idx, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: rdmsr
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rdmsr(uint32_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - val
    argTypes:
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: outb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outb(uint16_t port, uint8_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - val
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: outw
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outw(uint16_t port, uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - val
    argTypes:
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: outl
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void outl(uint16_t port, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: inb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t inb(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: inw
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t inw(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: inl
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t inl(uint16_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reg
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: ioapic_read
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ioapic_read(uint32_t reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - reg
    - val
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: ioapic_write
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ioapic_write(uint32_t reg, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: lapic_read
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lapic_read(uint32_t reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - val
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: lapic_write
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lapic_write(uint32_t reg, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - devfn
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: pci_readb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_readb(devfn, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - devfn
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: pci_readw
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_readw(devfn, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - devfn
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: pci_readl
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_readl(devfn, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - devfn
    - ','
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: pci_writeb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_writeb(devfn, reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - devfn
    - ','
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: pci_writew
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_writew(devfn, reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - devfn
    - ','
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: pci_writel
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_writel(devfn, reg, val)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - leaf
    - subleaf
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 207
    functionName: cpuid_count
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cpuid_count(\n    uint32_t leaf,\n    uint32_t subleaf,\n    uint32_t
      *eax,\n    uint32_t *ebx,\n    uint32_t *ecx,\n    uint32_t *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/tools/firmware/hvmloader/util.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - leaf
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: cpuid
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 7
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: void
    signature: "void cpuid(\n    uint32_t leaf,\n    uint32_t *eax,\n    uint32_t
      *ebx,\n    uint32_t *ecx,\n    uint32_t *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: rdtsc
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: cpu_relax
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpu_relax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: barrier
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: rmb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: wmb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: mb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: do_div
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_div(n, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ll
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: PRIllx_arg
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIllx_arg(ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: virt_to_phys
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_phys(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: perform_tests
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perform_tests()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:41,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:45,1
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:48,1
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:49,1
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:51,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:54,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:55,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:56,1
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:58,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/vnuma.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: init_vnuma_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/vnuma.c
    functionUses: 0
    functionsReached:
    - set_xen_guest_handle
    - ASSERT
    - hypercall_memory_op
    - scratch_alloc
    - printf
    linkageType: ''
    returnType: void
    signature: void init_vnuma_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - start
    - size
    - reserved_start
    - reserved_size
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: check_overlap
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool check_overlap(uint64_t start, uint64_t size,\n                   uint64_t
      reserved_start, uint64_t reserved_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:47,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: cmos_inb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t cmos_inb(uint8_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:53,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - val
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: cmos_outb
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void cmos_outb(uint8_t idx, uint8_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: itoa
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *itoa(char *a, unsigned int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - cs
    - ct
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: strcmp
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 115
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strcmp(const char *cs, const char *ct)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - char*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: strncmp
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strncmp(const char *s1, const char *s2, uint32_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: memcpy
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 148
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memcpy(void *dest, const void *src, unsigned n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/util.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: memmove
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 16
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *memmove(void *dest, const void *src, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: strcpy
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strcpy(char *dest, const char *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: strncpy
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strncpy(char *dest, const char *src, unsigned n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: strlen
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 164
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned strlen(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - c
    - base
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 186
    functionName: __digit
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __digit(char c, int base)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/tools/firmware/hvmloader/util.c:194,1
    - Dst: __digit
      Src: /src/xen/tools/firmware/hvmloader/util.c:225,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 3
    argNames:
    - s
    - end
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 237
    functionName: strtoll
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 7
    functionsReached:
    - __digit
    - isspace
    linkageType: ''
    returnType: long long
    signature: long long strtoll(const char *s, char **end, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: memset
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 172
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      memset(void *s, int c, unsigned n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 266
    functionName: memcmp
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memcmp(const void *s1, const void *s2, unsigned n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - digits
    - byte
    argTypes:
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: byte_to_hex
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void byte_to_hex(char *digits, uint8_t byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/hvmloader/util.c:291,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/hvmloader/util.c:297,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/hvmloader/util.c:303,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/hvmloader/util.c:309,1
    - Dst: byte_to_hex
      Src: /src/xen/tools/firmware/hvmloader/util.c:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - dest
    - uuid
    argTypes:
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 319
    functionName: uuid_to_string
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached:
    - byte_to_hex
    linkageType: ''
    returnType: void
    signature: void uuid_to_string(char *dest, uint8_t *uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/util.c:328,1
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/util.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - entries
    - max_entries
    argTypes:
    - struct e820entry[]
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 334
    functionName: get_mem_mapping_layout
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - hypercall_memory_op
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: int get_mem_mapping_layout(struct e820entry entries[], uint32_t *max_entries)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/util.c:351,1
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/util.c:352,1
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/util.c:371,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/util.c:372,1
    - Dst: adjust_memory_map
      Src: /src/xen/tools/firmware/hvmloader/util.c:376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - mfn
    - nr_mfns
    argTypes:
    - xen_pfn_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 377
    functionName: mem_hole_populate_ram
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - adjust_memory_map
    - BUG
    - hypercall_memory_op
    - set_xen_guest_handle
    linkageType: ''
    returnType: void
    signature: void mem_hole_populate_ram(xen_pfn_t mfn, uint32_t nr_mfns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/util.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nr_mfns
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: mem_hole_alloc
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: xen_pfn_t
    signature: xen_pfn_t mem_hole_alloc(uint32_t nr_mfns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/util.c:400,1
    - Dst: mem_hole_populate_ram
      Src: /src/xen/tools/firmware/hvmloader/util.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 411
    functionName: mem_alloc
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    - mem_hole_populate_ram
    linkageType: ''
    returnType: void
    signature: void *mem_alloc(uint32_t size, uint32_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/util.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: scratch_alloc
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 6
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void *scratch_alloc(uint32_t size, uint32_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bus
    - ','
    - devfn
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: PCI_CONF1_ADDRESS
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_CONF1_ADDRESS(bus, devfn, reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: outl
      Src: /src/xen/tools/firmware/hvmloader/util.c:436,1
    - Dst: PCI_CONF1_ADDRESS
      Src: /src/xen/tools/firmware/hvmloader/util.c:436,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:440,1
    - Dst: inw
      Src: /src/xen/tools/firmware/hvmloader/util.c:441,1
    - Dst: inl
      Src: /src/xen/tools/firmware/hvmloader/util.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - devfn
    - reg
    - len
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: pci_read
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - inl
    - PCI_CONF1_ADDRESS
    - outl
    - inb
    - inw
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pci_read(uint32_t devfn, uint32_t reg, uint32_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: outl
      Src: /src/xen/tools/firmware/hvmloader/util.c:449,1
    - Dst: PCI_CONF1_ADDRESS
      Src: /src/xen/tools/firmware/hvmloader/util.c:449,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:453,1
    - Dst: outw
      Src: /src/xen/tools/firmware/hvmloader/util.c:454,1
    - Dst: outl
      Src: /src/xen/tools/firmware/hvmloader/util.c:455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - devfn
    - reg
    - len
    - val
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: pci_write
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - PCI_CONF1_ADDRESS
    - outl
    - outw
    - outb
    linkageType: ''
    returnType: void
    signature: void pci_write(uint32_t devfn, uint32_t reg, uint32_t len, uint32_t
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printnum
      Src: /src/xen/tools/firmware/hvmloader/util.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - num
    - base
    argTypes:
    - char*
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 468
    functionName: printnum
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 3
    functionsReached:
    - printnum
    linkageType: ''
    returnType: char
    signature: char *printnum(char *p, unsigned long num, unsigned base)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:482,1
    - Dst: isdigit
      Src: /src/xen/tools/firmware/hvmloader/util.c:488,1
    - Dst: isdigit
      Src: /src/xen/tools/firmware/hvmloader/util.c:496,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/hvmloader/util.c:509,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:513,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/hvmloader/util.c:518,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:522,1
    - Dst: printnum
      Src: /src/xen/tools/firmware/hvmloader/util.c:526,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/util.c:528,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:530,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:536,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/hvmloader/util.c:541,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/util.c:542,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:545,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:547,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:550,1
    - Dst: emit
      Src: /src/xen/tools/firmware/hvmloader/util.c:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 3
    argNames:
    - arg
    - fmt
    - ap
    argTypes:
    - void*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 561
    functionName: _doprint
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached:
    - va_arg
    - isdigit
    - emit
    - strlen
    - printnum
    linkageType: ''
    returnType: void
    signature: void _doprint(void (*emit)(void *, char), void *arg, const char *fmt,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: putchar
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 4
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void putchar(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/xen/tools/firmware/hvmloader/util.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - c
    argTypes:
    - void*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: __put
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - putchar
    linkageType: ''
    returnType: void
    signature: void __put(void *arg, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/firmware/hvmloader/util.c:577,1
    - Dst: _doprint
      Src: /src/xen/tools/firmware/hvmloader/util.c:578,1
    - Dst: va_end
      Src: /src/xen/tools/firmware/hvmloader/util.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: printf
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 467
    functionsReached:
    - va_start
    - _doprint
    - va_end
    linkageType: ''
    returnType: int
    signature: int printf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _doprint
      Src: /src/xen/tools/firmware/hvmloader/util.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fmt
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: vprintf
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 2
    functionsReached:
    - _doprint
    linkageType: ''
    returnType: int
    signature: int vprintf(const char *fmt, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - c
    argTypes:
    - void*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: __copy
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __copy(void *arg, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/firmware/hvmloader/util.c:618,1
    - Dst: _doprint
      Src: /src/xen/tools/firmware/hvmloader/util.c:619,1
    - Dst: va_end
      Src: /src/xen/tools/firmware/hvmloader/util.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - size
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 626
    functionName: snprintf
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 61
    functionsReached:
    - va_start
    - _doprint
    - va_end
    linkageType: ''
    returnType: int
    signature: int snprintf(char *buf, size_t size, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:631,1
    - Dst: hypercall_sched_op
      Src: /src/xen/tools/firmware/hvmloader/util.c:632,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 636
    functionName: crash
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - hypercall_sched_op
    - printf
    linkageType: ''
    returnType: void
    signature: void crash(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:640,1
    - Dst: crash
      Src: /src/xen/tools/firmware/hvmloader/util.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - assertion
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 643
    functionName: __assert_failed
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - printf
    - crash
    linkageType: ''
    returnType: void
    signature: void __assert_failed(const char *assertion, const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:647,1
    - Dst: crash
      Src: /src/xen/tools/firmware/hvmloader/util.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 649
    functionName: __bug
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - printf
    - crash
    linkageType: ''
    returnType: void
    signature: void __bug(const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/util.c:657,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:659,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/util.c:660,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:665,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/util.c:666,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/util.c:674,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/util.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct hvm_info_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 677
    functionName: validate_hvm_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - BUG
    - strncmp
    - printf
    linkageType: ''
    returnType: void
    signature: void validate_hvm_info(struct hvm_info_table *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_hvm_info
      Src: /src/xen/tools/firmware/hvmloader/util.c:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 694
    functionName: get_hvm_info_table
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - validate_hvm_info
    linkageType: ''
    returnType: struct hvm_info_table
    signature: struct hvm_info_table *get_hvm_info_table(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_hole_alloc
      Src: /src/xen/tools/firmware/hvmloader/util.c:707,1
    - Dst: hypercall_memory_op
      Src: /src/xen/tools/firmware/hvmloader/util.c:709,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/util.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: get_shared_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - BUG
    - mem_hole_alloc
    - hypercall_memory_op
    linkageType: ''
    returnType: struct shared_info
    signature: struct shared_info *get_shared_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_shared_info
      Src: /src/xen/tools/firmware/hvmloader/util.c:717,1
    - Dst: rmb
      Src: /src/xen/tools/firmware/hvmloader/util.c:730,1
    - Dst: rmb
      Src: /src/xen/tools/firmware/hvmloader/util.c:733,1
    - Dst: do_div
      Src: /src/xen/tools/firmware/hvmloader/util.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 746
    functionName: get_cpu_mhz
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 1
    functionsReached:
    - do_div
    - rmb
    - get_shared_info
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_cpu_mhz(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:753,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:754,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:755,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:756,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:757,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uart_base
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 761
    functionName: uart_exists
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: int
    signature: int uart_exists(uint16_t uart_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/util.c:767,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lpt_base
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 769
    functionName: lpt_exists
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: int
    signature: int lpt_exists(uint16_t lpt_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hpet_base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 775
    functionName: hpet_exists
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpet_exists(unsigned long hpet_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/util.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: battery_port_exists
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - inb
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t battery_port_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_phys
      Src: /src/xen/tools/firmware/hvmloader/util.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - v
    argTypes:
    - struct acpi_ctxt*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 785
    functionName: acpi_v2p
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - virt_to_phys
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long acpi_v2p(struct acpi_ctxt *ctxt, void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 793
    functionName: acpi_pages_allocated
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long acpi_pages_allocated(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/util.c:807,1
    - Dst: mem_hole_populate_ram
      Src: /src/xen/tools/firmware/hvmloader/util.c:812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctxt
    - size
    - align
    argTypes:
    - struct acpi_ctxt*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 818
    functionName: acpi_mem_alloc
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - mem_hole_populate_ram
    linkageType: ''
    returnType: void
    signature: "void *acpi_mem_alloc(struct acpi_ctxt *ctxt,\n                            uint32_t
      size, uint32_t align)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ctxt
    - v
    - size
    argTypes:
    - struct acpi_ctxt*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 824
    functionName: acpi_mem_free
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void acpi_mem_free(struct acpi_ctxt *ctxt,\n                          void
      *v, uint32_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 829
    functionName: acpi_lapic_id
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t acpi_lapic_id(unsigned cpu)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mem_hole_populate_ram
      Src: /src/xen/tools/firmware/hvmloader/util.c:840,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:843,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/util.c:844,1
    - Dst: uart_exists
      Src: /src/xen/tools/firmware/hvmloader/util.c:858,1
    - Dst: uart_exists
      Src: /src/xen/tools/firmware/hvmloader/util.c:860,1
    - Dst: lpt_exists
      Src: /src/xen/tools/firmware/hvmloader/util.c:862,1
    - Dst: hpet_exists
      Src: /src/xen/tools/firmware/hvmloader/util.c:864,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:875,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/util.c:878,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/util.c:881,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:884,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/util.c:887,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:889,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/util.c:891,1
    - Dst: battery_port_exists
      Src: /src/xen/tools/firmware/hvmloader/util.c:894,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/util.c:896,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:896,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/util.c:898,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:898,1
    - Dst: strncmp
      Src: /src/xen/tools/firmware/hvmloader/util.c:900,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:900,1
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/util.c:910,1
    - Dst: strtoll
      Src: /src/xen/tools/firmware/hvmloader/util.c:911,1
    - Dst: mem_hole_populate_ram
      Src: /src/xen/tools/firmware/hvmloader/util.c:927,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/util.c:929,1
    - Dst: acpi_build_tables
      Src: /src/xen/tools/firmware/hvmloader/util.c:950,1
    - Dst: hvm_param_set
      Src: /src/xen/tools/firmware/hvmloader/util.c:952,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 84
    argCount: 2
    argNames:
    - config
    - physical
    argTypes:
    - struct acpi_config*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 953
    functionName: hvmloader_acpi_build_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/util.c
    functionUses: 2
    functionsReached:
    - acpi_build_tables
    - lpt_exists
    - hpet_exists
    - hvm_param_set
    - battery_port_exists
    - mem_hole_populate_ram
    - strncmp
    - uart_exists
    - xenstore_read
    - memset
    - strtoll
    linkageType: ''
    returnType: void
    signature: "void hvmloader_acpi_build_tables(struct acpi_config *config,\n                                 unsigned
      int physical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 2
    argNames:
    - mpct
    - length
    argTypes:
    - struct mp_config_table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 196
    functionName: fill_mp_config_table
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_mp_config_table(struct mp_config_table *mpct, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - mppe
    - vcpu_id
    argTypes:
    - struct mp_proc_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: fill_mp_proc_entry
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_mp_proc_entry(struct mp_proc_entry *mppe, int vcpu_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - mpbe
    - bus_id
    - type
    argTypes:
    - struct mp_bus_entry*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: fill_mp_bus_entry
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fill_mp_bus_entry(\n    struct mp_bus_entry *mpbe, int bus_id,
      const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mpie
    argTypes:
    - struct mp_ioapic_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: fill_mp_ioapic_entry
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_mp_ioapic_entry(struct mp_ioapic_entry *mpie)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - mpfps
    - mpct
    argTypes:
    - struct mp_floating_pointer_struct*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: fill_mpfps
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fill_mpfps(struct mp_floating_pointer_struct *mpfps, uint32_t
      mpct)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:273,1
    - Dst: mem_alloc
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:286,1
    - Dst: fill_mp_proc_entry
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:297,1
    - Dst: fill_mp_bus_entry
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:301,1
    - Dst: fill_mp_ioapic_entry
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:304,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:309,1
    - Dst: fill_mp_config_table
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:333,1
    - Dst: fill_mpfps
      Src: /src/xen/tools/firmware/hvmloader/mp_tables.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - _mpfps
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 338
    functionName: create_mp_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/mp_tables.c
    functionUses: 2
    functionsReached:
    - fill_mpfps
    - fill_mp_config_table
    - fill_mp_proc_entry
    - fill_mp_ioapic_entry
    - memset
    - printf
    - mem_alloc
    - fill_mp_bus_entry
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long create_mp_tables(void *_mpfps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_mem_mapping_layout
      Src: /src/xen/tools/firmware/hvmloader/e820.c:34,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:38,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/e820.c:39,1
    - Dst: check_overlap
      Src: /src/xen/tools/firmware/hvmloader/e820.c:47,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:50,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:51,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/e820.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: memory_map_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/e820.c
    functionUses: 0
    functionsReached:
    - get_mem_mapping_layout
    - BUG
    - check_overlap
    - printf
    linkageType: ''
    returnType: void
    signature: void memory_map_setup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GB
      Src: /src/xen/tools/firmware/hvmloader/e820.c:85,1
    - Dst: GB
      Src: /src/xen/tools/firmware/hvmloader/e820.c:97,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 104
    functionName: adjust_memory_map
    functionSourceFile: /src/xen/tools/firmware/hvmloader/e820.c
    functionUses: 1
    functionsReached:
    - GB
    linkageType: ''
    returnType: void
    signature: void adjust_memory_map(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:111,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:119,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:121,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:125,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:131,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:134,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:137,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:140,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/e820.c:143,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - e820
    - nr
    argTypes:
    - struct e820entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 149
    functionName: dump_e820_table
    functionSourceFile: /src/xen/tools/firmware/hvmloader/e820.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_e820_table(struct e820entry *e820, unsigned int nr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_pages_allocated
      Src: /src/xen/tools/firmware/hvmloader/e820.c:159,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/e820.c:166,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/e820.c:168,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/e820.c:264,1
    - Dst: MB
      Src: /src/xen/tools/firmware/hvmloader/e820.c:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - e820
    - lowmem_reserved_base
    - bios_image_base
    argTypes:
    - struct e820entry*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 306
    functionName: build_e820_table
    functionSourceFile: /src/xen/tools/firmware/hvmloader/e820.c
    functionUses: 2
    functionsReached:
    - MB
    - ASSERT
    - acpi_pages_allocated
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int build_e820_table(struct e820entry *e820,\n                     unsigned
      int lowmem_reserved_base,\n                     unsigned int bios_image_base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/pir.c:28,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/pir.c:31,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/pir.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 66
    functionName: create_pir_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/pir.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    - scratch_alloc
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long create_pir_tables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hypercall_hvm_op
      Src: /src/xen/tools/firmware/hvmloader/hvm_param.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 25
    functionName: hvm_param_get
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvm_param.c
    functionUses: 9
    functionsReached:
    - hypercall_hvm_op
    linkageType: ''
    returnType: int
    signature: int hvm_param_get(uint32_t index, uint64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypercall_hvm_op
      Src: /src/xen/tools/firmware/hvmloader/hvm_param.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: hvm_param_set
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvm_param.c
    functionUses: 12
    functionsReached:
    - hypercall_hvm_op
    linkageType: ''
    returnType: int
    signature: int hvm_param_set(uint32_t index, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: __ismask
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ismask(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: isalnum
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalnum(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: isalpha
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalpha(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: iscntrl
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iscntrl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: isdigit
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: isgraph
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isgraph(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: islower
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: islower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: isprint
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isprint(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ispunct
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ispunct(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: isspace
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isspace(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: isupper
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: isxdigit
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isxdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_shared_info
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:41,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:44,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:45,1
    - Dst: test_and_clear_bit
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:48,1
    - Dst: hypercall_sched_op
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: ring_wait
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - set_xen_guest_handle
    - hypercall_sched_op
    - get_shared_info
    - memset
    linkageType: ''
    returnType: void
    signature: void ring_wait(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_param_get
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:59,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:60,1
    - Dst: hvm_param_get
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:64,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:65,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: xenbus_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - BUG
    - printf
    - hvm_param_get
    linkageType: ''
    returnType: void
    signature: void xenbus_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_shared_info
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:75,1
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:78,1
    - Dst: hypercall_event_channel_op
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:83,1
    - Dst: ring_wait
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:85,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:91,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:92,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:97,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:98,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: xenbus_shutdown
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - ring_wait
    - ASSERT
    - hypercall_event_channel_op
    - get_shared_info
    - memset
    linkageType: ''
    returnType: void
    signature: void xenbus_shutdown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:109,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:115,1
    - Dst: ring_wait
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:116,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:118,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:119,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:124,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:124,1
    - Dst: barrier
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: ring_write
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - ring_wait
    - ASSERT
    - barrier
    - MASK_XENSTORE_IDX
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ring_write(const char *data, uint32_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:137,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:142,1
    - Dst: ring_wait
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:155,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:158,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:159,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:164,1
    - Dst: MASK_XENSTORE_IDX
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:165,1
    - Dst: barrier
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 171
    functionName: ring_read
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - ring_wait
    - ASSERT
    - barrier
    - MASK_XENSTORE_IDX
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ring_read(char *data, uint32_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:188,1
    - Dst: va_start
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:196,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:198,1
    - Dst: va_arg
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:199,1
    - Dst: va_end
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:207,1
    - Dst: ring_write
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:209,1
    - Dst: ring_write
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:211,1
    - Dst: hypercall_event_channel_op
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 176
    functionDepth: 5
    functionLinenumber: 176
    functionLinenumberEnd: 216
    functionName: xenbus_send
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_arg
    - ring_write
    - ASSERT
    - hypercall_event_channel_op
    - va_end
    linkageType: ''
    returnType: void
    signature: void xenbus_send(uint32_t type, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ring_read
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:230,1
    - Dst: ring_read
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:231,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - reply_len
    - reply_data
    - reply_type
    argTypes:
    - uint32_t*
    - char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 258
    functionName: xenbus_recv
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - ring_read
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int xenbus_recv(uint32_t *reply_len, const char **reply_data,\n                       uint32_t
      *reply_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenbus_send
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:272,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:273,1
    - Dst: xenbus_recv
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - path
    - default_resp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 267
    functionDepth: 6
    functionLinenumber: 267
    functionLinenumberEnd: 285
    functionName: xenstore_read
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 9
    functionsReached:
    - xenbus_recv
    - xenbus_send
    - strlen
    linkageType: ''
    returnType: char
    signature: char *xenstore_read(const char *path, const char *default_resp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenbus_send
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:296,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:297,1
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:299,1
    - Dst: xenbus_recv
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:302,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/xenbus.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - path
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 6
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: xenstore_write
    functionSourceFile: /src/xen/tools/firmware/hvmloader/xenbus.c
    functionUses: 0
    functionsReached:
    - xenbus_recv
    - xenbus_send
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int xenstore_write(const char *path, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: GET_APIC_ID
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: SET_APIC_ID
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: GET_APIC_VERSION
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_VERSION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: GET_APIC_MAXLVT
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_MAXLVT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: APIC_INTEGRATED
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APIC_INTEGRATED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: APIC_XAPIC
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APIC_XAPIC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: GET_APIC_LOGICAL_ID
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_LOGICAL_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: SET_APIC_LOGICAL_ID
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_LOGICAL_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: GET_APIC_DEST_FIELD
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_DEST_FIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: SET_APIC_DEST_FIELD
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_DEST_FIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: GET_APIC_TIMER_BASE
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_TIMER_BASE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SET_APIC_TIMER_BASE
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_TIMER_BASE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: GET_APIC_DELIVERY_MODE
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_DELIVERY_MODE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: SET_APIC_DELIVERY_MODE
    functionSourceFile: /src/xen/tools/firmware/hvmloader/apic_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_DELIVERY_MODE(x,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:130,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:137,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:141,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:141,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:144,1
    - Dst: wrmsr
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:146,1
    - Dst: cpuid
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:149,1
    - Dst: hypercall_xen_version
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:150,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 152
    functionName: init_hypercalls
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - hypercall_xen_version
    - wrmsr
    - BUG_ON
    - cpuid
    - printf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void init_hypercalls(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:166,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:167,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:170,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:171,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:172,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:173,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:176,1
    - Dst: cmos_outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 178
    functionName: cmos_write_memory_size
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - cmos_outb
    linkageType: ''
    returnType: void
    signature: void cmos_write_memory_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_alloc
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:198,1
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:199,1
    - Dst: hvm_param_set
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:200,1
    - Dst: virt_to_phys
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:201,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:202,1
    - Dst: virt_to_phys
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: init_vm86_tss
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - hvm_param_set
    - memset
    - printf
    - mem_alloc
    - virt_to_phys
    linkageType: ''
    returnType: void
    signature: void init_vm86_tss(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_read
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:215,1
    - Dst: ioapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:218,1
    - Dst: lapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:221,1
    - Dst: lapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:222,1
    - Dst: lapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:223,1
    - Dst: ioapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:226,1
    - Dst: ioapic_write
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:227,1
    - Dst: SET_APIC_ID
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: apic_setup
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - ioapic_read
    - lapic_write
    - ioapic_write
    - SET_APIC_ID
    linkageType: ''
    returnType: void
    signature: void apic_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstore_read
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:247,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:250,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:253,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: detect_bios
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - printf
    - BUG
    - strcmp
    - xenstore_read
    linkageType: ''
    returnType: struct bios_config
    signature: struct bios_config *detect_bios(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:269,1
    - Dst: outb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:271,1
    - Dst: inb
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:273,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: acpi_enable_sci
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - inb
    - BUG_ON
    - outb
    linkageType: ''
    returnType: void
    signature: void acpi_enable_sci(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:301,1
    - Dst: strcmp
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:304,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:310,1
    - Dst: PRIllx_arg
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:311,1
    - Dst: PRIllx_arg
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:312,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:313,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - info
    - name
    argTypes:
    - struct hvm_start_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 320
    functionName: get_module_entry
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 0
    functionsReached:
    - BUG
    - PRIllx_arg
    - strlen
    - printf
    - strcmp
    linkageType: ''
    returnType: struct hvm_modlist_entry
    signature: "struct hvm_modlist_entry *get_module_entry(\n    const struct hvm_start_info
      *info,\n    const char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:328,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:330,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:331,1
    - Dst: init_hypercalls
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:333,1
    - Dst: memory_map_setup
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:335,1
    - Dst: xenbus_setup
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:337,1
    - Dst: detect_bios
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:339,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:340,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:342,1
    - Dst: get_cpu_mhz
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:342,1
    - Dst: pci_setup
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:349,1
    - Dst: smp_initialise
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:351,1
    - Dst: apic_setup
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:353,1
    - Dst: perform_tests
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:355,1
    - Dst: struct bios_config*::bios_info_setup
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:358,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:362,1
    - Dst: struct bios_config*::create_smbios_tables
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:363,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:366,1
    - Dst: get_module_entry
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:367,1
    - Dst: struct bios_config*::bios_load
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:372,1
    - Dst: get_module_entry
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:380,1
    - Dst: struct bios_config*::bios_load
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:383,1
    - Dst: printf
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:392,1
    - Dst: BUG
      Src: /src/xen/tools/firmware/hvmloader/hvmloader.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 322
    functionDepth: 8
    functionLinenumber: 322
    functionLinenumberEnd: 394
    functionName: main
    functionSourceFile: /src/xen/tools/firmware/hvmloader/hvmloader.c
    functionUses: 119
    functionsReached:
    - get_cpu_mhz
    - perform_tests
    - apic_setup
    - BUG
    - memory_map_setup
    - struct bios_config*::bios_load
    - get_module_entry
    - xenbus_setup
    - detect_bios
    - BUG_ON
    - struct bios_config*::bios_info_setup
    - smp_initialise
    - init_hypercalls
    - printf
    - memset
    - struct bios_config*::create_smbios_tables
    - pci_setup
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: ovmf_setup_bios_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ovmf_setup_bios_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: ovmf_finish_bios_info
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ovmf_finish_bios_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:100,1
    - Dst: mem_hole_populate_ram
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:109,1
    - Dst: BUG_ON
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:113,1
    - Dst: memcpy
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - config
    - bios_addr
    - bios_length
    - unused_addr
    argTypes:
    - struct bios_config*
    - void*
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 117
    functionName: ovmf_load
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - memcpy
    - mem_hole_populate_ram
    linkageType: ''
    returnType: void
    signature: "void ovmf_load(const struct bios_config *config,\n                      void
      *bios_addr, uint32_t bios_length,\n                      void *unused_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmloader_acpi_build_tables
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: ovmf_acpi_build_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached:
    - hvmloader_acpi_build_tables
    linkageType: ''
    returnType: void
    signature: void ovmf_acpi_build_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_write_smbios_tables
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: ovmf_create_smbios_tables
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached:
    - hvm_write_smbios_tables
    linkageType: ''
    returnType: void
    signature: void ovmf_create_smbios_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scratch_alloc
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:142,1
    - Dst: build_e820_table
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:146,1
    - Dst: dump_e820_table
      Src: /src/xen/tools/firmware/hvmloader/ovmf.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: ovmf_setup_e820
    functionSourceFile: /src/xen/tools/firmware/hvmloader/ovmf.c
    functionUses: 0
    functionsReached:
    - build_e820_table
    - dump_e820_table
    - scratch_alloc
    linkageType: ''
    returnType: void
    signature: void ovmf_setup_e820(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: offsetof
    functionSourceFile: /src/xen/tools/firmware/include/stddef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(t, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: va_copy
    functionSourceFile: /src/xen/tools/firmware/include/stdarg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: va_start
    functionSourceFile: /src/xen/tools/firmware/include/stdarg.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_start(ap, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: va_end
    functionSourceFile: /src/xen/tools/firmware/include/stdarg.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_end(ap)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:90,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:91,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:92,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:93,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:101,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:104,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:111,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:117,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:122,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:124,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:126,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:128,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:130,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:132,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:134,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:137,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:138,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:139,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:140,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:142,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:144,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:146,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:147,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:156,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:157,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:159,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:161,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:162,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:218,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:219,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:220,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:221,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:222,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:223,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:224,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:225,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:227,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:230,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:234,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:237,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:238,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:239,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:241,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:242,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:243,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:244,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:245,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:246,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:247,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:248,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:249,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:250,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:251,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:252,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:253,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:256,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:257,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:258,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vbetables-gen.c:259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 133
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/xen/tools/firmware/vgabios/vbetables-gen.c
    functionUses: 119
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: SET_AL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: SET_BL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: SET_CL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: SET_DL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DL(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: SET_AH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: SET_BH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: SET_CH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: SET_DH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DH(val8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GET_AL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: GET_BL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: GET_CL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: GET_DL
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: GET_AH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: GET_BH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: GET_CH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: GET_DH
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: SET_CF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: CLEAR_CF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_CF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SET_ZF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: CLEAR_ZF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_ZF
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ZF()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: SCREEN_SIZE
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCREEN_SIZE(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: SCREEN_MEM_START
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCREEN_MEM_START(x,y,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: SCREEN_IO_START
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCREEN_IO_START(x,y,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: display_splash_screen
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void display_splash_screen()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 549
    functionName: display_info
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void display_info()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 578
    functionName: display_string
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void display_string()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1047
    functionName: switch
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ASM_END
    signature: ASM_END switch(cheight)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2649,1
    - Dst: outb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2650,1
    - Dst: inb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2651,1
    - Dst: outb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2653,1
    - Dst: biosfn_set_cursor_shape
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2656,1
    - Dst: biosfn_set_cursor_shape
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2660,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2662,1
    - Dst: outb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2663,1
    - Dst: inb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2664,1
    - Dst: outb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2665,1
    - Dst: inb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2666,1
    - Dst: write_byte
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2669,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2670,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2671,1
    - Dst: get_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2678,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2684,1
    - Dst: release_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2686,1
    - Dst: set_scan_lines
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2689,1
    - Dst: get_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2697,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2703,1
    - Dst: release_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2705,1
    - Dst: set_scan_lines
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2708,1
    - Dst: get_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2716,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2722,1
    - Dst: release_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2724,1
    - Dst: set_scan_lines
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2727,1
    - Dst: get_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2750,1
    - Dst: memcpyb
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2756,1
    - Dst: release_font_access
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2758,1
    - Dst: set_scan_lines
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2761,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2768,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2774,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2780,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2786,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2792,1
    - Dst: get_SS
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2798,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2802,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2802,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2803,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2803,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2806,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2806,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2807,1
    - Dst: read_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2807,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2810,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2811,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2814,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2815,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2818,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2819,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2822,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2823,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2826,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2827,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2830,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2831,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2835,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2840,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2840,1
    - Dst: write_word
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2843,1
    - Dst: read_byte
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2843,1
    - Dst: unimplemented
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:2873,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2587
    functionDepth: 2
    functionLinenumber: 2587
    functionLinenumberEnd: 2875
    functionName: get_font_access
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 1
    functionsReached:
    - memcpyb
    - outb
    - write_word
    - write_byte
    - set_scan_lines
    - read_word
    - read_byte
    - unimplemented
    - printf
    - get_font_access
    - inb
    - release_font_access
    - biosfn_set_cursor_shape
    - get_SS
    linkageType: ''
    returnType: void
    signature: void get_font_access()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3758
    functionDepth: 0
    functionLinenumber: 3758
    functionLinenumberEnd: 3763
    functionName: get_SS
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Bit16u
    signature: Bit16u get_SS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:3768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3766
    functionDepth: 0
    functionLinenumber: 3766
    functionLinenumberEnd: 3769
    functionName: unimplemented
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void unimplemented()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/vgabios.c:3773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3771
    functionDepth: 0
    functionLinenumber: 3771
    functionLinenumberEnd: 3774
    functionName: unknown
    functionSourceFile: /src/xen/tools/firmware/vgabios/vgabios.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void unknown()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:57,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:58,1
    - Dst: fopen
      Src: /src/xen/tools/firmware/vgabios/biossums.c:61,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:62,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:63,1
    - Dst: memset
      Src: /src/xen/tools/firmware/vgabios/biossums.c:65,1
    - Dst: fread
      Src: /src/xen/tools/firmware/vgabios/biossums.c:66,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:68,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/vgabios/biossums.c:69,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:70,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/vgabios/biossums.c:72,1
    - Dst: chksum_pmid_get_offset
      Src: /src/xen/tools/firmware/vgabios/biossums.c:92,1
    - Dst: chksum_pmid_get_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:94,1
    - Dst: chksum_pmid_calc_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:95,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:96,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:97,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:98,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:102,1
    - Dst: chksum_pmid_set_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:103,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:111,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:114,1
    - Dst: chksum_pcir_get_offset
      Src: /src/xen/tools/firmware/vgabios/biossums.c:118,1
    - Dst: chksum_bios_get_offset
      Src: /src/xen/tools/firmware/vgabios/biossums.c:133,1
    - Dst: chksum_bios_get_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:134,1
    - Dst: chksum_bios_calc_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:135,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:144,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:145,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:146,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:148,1
    - Dst: chksum_bios_set_value
      Src: /src/xen/tools/firmware/vgabios/biossums.c:149,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:153,1
    - Dst: fopen
      Src: /src/xen/tools/firmware/vgabios/biossums.c:158,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:159,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:160,1
    - Dst: fwrite
      Src: /src/xen/tools/firmware/vgabios/biossums.c:162,1
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:163,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/vgabios/biossums.c:164,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:165,1
    - Dst: fclose
      Src: /src/xen/tools/firmware/vgabios/biossums.c:167,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 111
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 171
    functionName: main
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 119
    functionsReached:
    - fopen
    - chksum_pmid_set_value
    - fread
    - chksum_bios_get_offset
    - chksum_bios_set_value
    - chksum_pmid_get_value
    - fclose
    - memset
    - chksum_pcir_get_offset
    - chksum_bios_get_value
    - printf
    - exit
    - fwrite
    - chksum_pmid_calc_value
    - chksum_bios_calc_value
    - chksum_pmid_get_offset
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/firmware/vgabios/biossums.c:177,1
    - Dst: exit
      Src: /src/xen/tools/firmware/vgabios/biossums.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - okay
    - message
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: check
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 29
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void check( int okay, char* message )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: chksum_bios_get_offset
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum_bios_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 200
    functionName: chksum_bios_calc_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte chksum_bios_calc_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: chksum_bios_get_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: byte
    signature: byte chksum_bios_get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: chksum_bios_set_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void chksum_bios_set_value( byte* data, long offset, byte value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/vgabios/biossums.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: chksum_pmid_calc_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum_pmid_calc_value( byte* data, long offset )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 249
    functionName: chksum_pmid_get_offset
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum_pmid_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/vgabios/biossums.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: chksum_pmid_get_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: byte
    signature: byte chksum_pmid_get_value( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/xen/tools/firmware/vgabios/biossums.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - offset
    - value
    argTypes:
    - byte*
    - long
    - byte
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: chksum_pmid_set_value
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 1
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: void chksum_pmid_set_value( byte* data, long offset, byte value )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - data
    - offset
    argTypes:
    - byte*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: chksum_pcir_get_offset
    functionSourceFile: /src/xen/tools/firmware/vgabios/biossums.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long chksum_pcir_get_offset( byte* data, long offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ri
    argTypes:
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: pv_hypercall_op
    functionSourceFile: /src/xen/tools/xentrace/pv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pv_hypercall_op(const struct record_info *ri)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ri
    - arg
    argTypes:
    - struct record_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: pv_hypercall_arg_present
    functionSourceFile: /src/xen/tools/xentrace/pv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pv_hypercall_arg_present(const struct record_info *ri, int arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 1
    argNames:
    - addr
    argTypes:
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: kernel_addr
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: type_of_addr
    signature: type_of_addr kernel_addr(guest_word_t addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/xentrace/xenctx.c:159,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xenctx.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: free_symbol
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_symbol(struct symbol *symbol)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 189
    functionName: insert_symbol
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_symbol(struct symbol *symbol)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - address
    argTypes:
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: lookup_symbol
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *lookup_symbol(guest_word_t address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kernel_addr
      Src: /src/xen/tools/xentrace/xenctx.c:208,1
    - Dst: lookup_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:211,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:217,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - addr
    - type
    argTypes:
    - guest_word_t
    - type_of_addr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: print_symbol
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - kernel_addr
    - lookup_symbol
    - printf
    linkageType: ''
    returnType: void
    signature: void print_symbol(guest_word_t addr, type_of_addr type)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/xentrace/xenctx.c:230,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:232,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:233,1
    - Dst: feof
      Src: /src/xen/tools/xentrace/xenctx.c:236,1
    - Dst: fgets
      Src: /src/xen/tools/xentrace/xenctx.c:237,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenctx.c:241,1
    - Dst: isspace
      Src: /src/xen/tools/xentrace/xenctx.c:242,1
    - Dst: isalpha
      Src: /src/xen/tools/xentrace/xenctx.c:245,1
    - Dst: isspace
      Src: /src/xen/tools/xentrace/xenctx.c:247,1
    - Dst: strlen
      Src: /src/xen/tools/xentrace/xenctx.c:254,1
    - Dst: strlen
      Src: /src/xen/tools/xentrace/xenctx.c:255,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenctx.c:266,1
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenctx.c:268,1
    - Dst: strdup
      Src: /src/xen/tools/xentrace/xenctx.c:273,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xenctx.c:275,1
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenctx.c:276,1
    - Dst: insert_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:280,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:284,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:286,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:288,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:290,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:290,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:292,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:294,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:296,1
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenctx.c:300,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 1
    argNames:
    - symtab
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 301
    functionName: read_symbol_table
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - fopen
    - insert_symbol
    - isalpha
    - isspace
    - free
    - feof
    - malloc
    - fclose
    - fprintf
    - strlen
    - strdup
    - exit
    - fgets
    - strcmp
    - strtoull
    linkageType: ''
    returnType: void
    signature: void read_symbol_table(const char *symtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:335,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:339,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 342
    functionName: print_flags
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_flags(uint64_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:349,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:354,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:356,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:361,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:363,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - regs
    - name
    - mask
    - reg_is_addr_mask
    - width
    argTypes:
    - void*
    - char*
    - unsigned int
    - uint64_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 368
    functionName: print_special
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_symbol
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_special(void *regs, const char *name, unsigned int mask,\n
      \                         const uint64_t reg_is_addr_mask[], int width)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:374,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:375,1
    - Dst: print_flags
      Src: /src/xen/tools/xentrace/xenctx.c:376,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:377,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:379,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:380,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:381,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:382,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:384,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:385,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:386,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:388,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:389,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:390,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:391,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:394,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_x86_32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 397
    functionName: print_ctx_32
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_symbol
    - print_flags
    - print_special
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ctx_32(vcpu_guest_context_x86_32_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:403,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:404,1
    - Dst: print_flags
      Src: /src/xen/tools/xentrace/xenctx.c:405,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:406,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:408,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:409,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:410,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:411,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:413,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:414,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:415,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:417,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:418,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:419,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:420,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:428,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_x86_64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 433
    functionName: print_ctx_32on64
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_symbol
    - print_flags
    - print_special
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ctx_32on64(vcpu_guest_context_x86_64_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:439,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:440,1
    - Dst: print_flags
      Src: /src/xen/tools/xentrace/xenctx.c:441,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:442,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:444,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:445,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:446,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:448,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:449,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:450,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:452,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:453,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:454,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:456,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:457,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:458,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:460,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:461,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:462,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:464,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:465,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:466,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:467,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:469,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:470,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:471,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:472,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:476,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:477,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:478,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:480,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:483,1
    - Dst: print_special
      Src: /src/xen/tools/xentrace/xenctx.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_x86_64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 486
    functionName: print_ctx_64
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_symbol
    - print_flags
    - print_special
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ctx_64(vcpu_guest_context_x86_64_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_ctx_32
      Src: /src/xen/tools/xentrace/xenctx.c:491,1
    - Dst: print_ctx_32on64
      Src: /src/xen/tools/xentrace/xenctx.c:493,1
    - Dst: print_ctx_64
      Src: /src/xen/tools/xentrace/xenctx.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: print_ctx
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_ctx_32on64
    - print_ctx_64
    - print_ctx_32
    linkageType: ''
    returnType: void
    signature: void print_ctx(vcpu_guest_context_any_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 519
    functionName: instr_pointer
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guest_word_t
    signature: guest_word_t instr_pointer(vcpu_guest_context_any_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 540
    functionName: stack_pointer
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guest_word_t
    signature: guest_word_t stack_pointer(vcpu_guest_context_any_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: frame_pointer
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: guest_word_t
    signature: guest_word_t frame_pointer(vcpu_guest_context_any_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:556,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:557,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:558,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:559,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:560,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:562,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:564,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:566,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:568,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:570,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:573,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:574,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:575,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:576,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:578,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:579,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:580,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:582,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:583,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:584,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:586,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:587,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:588,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:590,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:591,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:593,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:595,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:596,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:597,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:599,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:600,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 603
    functionName: print_ctx_32
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 1
    functionsReached:
    - print_symbol
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ctx_32(vcpu_guest_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:610,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:611,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:612,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:614,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:615,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:617,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:618,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:620,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:621,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:623,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:624,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:625,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:626,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:628,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:629,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:630,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:632,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:633,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:634,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:636,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:637,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:638,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:640,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:641,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:642,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:644,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:645,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:646,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:648,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:649,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:650,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:652,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:653,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:654,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:656,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:657,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:658,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:660,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:661,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:662,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:663,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vcpu_guest_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 665
    functionName: print_ctx_64
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 1
    functionsReached:
    - print_symbol
    - printf
    linkageType: ''
    returnType: void
    signature: void print_ctx_64(vcpu_guest_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_ctx_32
      Src: /src/xen/tools/xentrace/xenctx.c:674,1
    - Dst: print_ctx_64
      Src: /src/xen/tools/xentrace/xenctx.c:676,1
    - Dst: print_ctx_32
      Src: /src/xen/tools/xentrace/xenctx.c:678,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:681,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:682,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx_any
    argTypes:
    - vcpu_guest_context_any_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 668
    functionDepth: 4
    functionLinenumber: 668
    functionLinenumberEnd: 684
    functionName: print_ctx
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - printf
    - print_ctx_64
    - print_ctx_32
    linkageType: ''
    returnType: void
    signature: void print_ctx(vcpu_guest_context_any_t *ctx_any)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_translate_foreign_address
      Src: /src/xen/tools/xentrace/xenctx.c:694,1
    - Dst: munmap
      Src: /src/xen/tools/xentrace/xenctx.c:701,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/xentrace/xenctx.c:705,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - vcpu
    - virt
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 714
    functionName: map_page
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - xc_translate_foreign_address
    - xc_map_foreign_range
    - fprintf
    - munmap
    linkageType: ''
    returnType: void
    signature: void *map_page(vcpu_guest_context_any_t *ctx, int vcpu, guest_word_t
      virt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/xentrace/xenctx.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - width
    argTypes:
    - guest_word_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: read_stack_word
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: guest_word_t
    signature: guest_word_t read_stack_word(guest_word_t *src, int width)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:729,1
    - Dst: read_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:732,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:746,1
    - Dst: memcpy
      Src: /src/xen/tools/xentrace/xenctx.c:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - vcpu
    - virt
    - width
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    - guest_word_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 760
    functionName: read_mem_word
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - map_page
    - memcpy
    - read_stack_word
    linkageType: ''
    returnType: guest_word_t
    signature: "guest_word_t read_mem_word(vcpu_guest_context_any_t *ctx, int vcpu,\n
      \                                 guest_word_t virt, int width)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:765,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:767,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - word
    - width
    argTypes:
    - guest_word_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: print_stack_word
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_stack_word(guest_word_t word, int width)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:787,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:788,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:793,1
    - Dst: read_mem_word
      Src: /src/xen/tools/xentrace/xenctx.c:796,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:799,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:800,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:810,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:811,1
    - Dst: isprint
      Src: /src/xen/tools/xentrace/xenctx.c:819,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:820,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:822,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:827,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:829,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - ctx
    - vcpu
    - width
    - mem_addr
    - mem_limit
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    - int
    - guest_word_t
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 772
    functionDepth: 7
    functionLinenumber: 772
    functionLinenumberEnd: 831
    functionName: print_lines
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - map_page
    - read_mem_word
    - print_stack_word
    - isprint
    - printf
    linkageType: ''
    returnType: int
    signature: "int print_lines(vcpu_guest_context_any_t *ctx, int vcpu, int width,\n
      \                      guest_word_t mem_addr, guest_word_t mem_limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:836,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:837,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:838,1
    - Dst: print_lines
      Src: /src/xen/tools/xentrace/xenctx.c:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - vcpu
    - width
    - mem_addr
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    - int
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 833
    functionDepth: 8
    functionLinenumber: 833
    functionLinenumberEnd: 841
    functionName: print_mem
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 4
    functionsReached:
    - print_lines
    - printf
    - print_stack_word
    linkageType: ''
    returnType: void
    signature: "void print_mem(vcpu_guest_context_any_t *ctx, int vcpu, int width,\n
      \                         guest_word_t mem_addr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: instr_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:848,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:849,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:852,1
    - Dst: instr_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:855,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:856,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:858,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ctx
    - vcpu
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 862
    functionName: print_code
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - instr_pointer
    - map_page
    - printf
    linkageType: ''
    returnType: int
    signature: int print_code(vcpu_guest_context_any_t *ctx, int vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:866,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - width
    argTypes:
    - guest_word_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 868
    functionName: print_stack_addr
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - printf
    - print_stack_word
    linkageType: ''
    returnType: void
    signature: void print_stack_addr(guest_word_t addr, int width)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: stack_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:882,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:887,1
    - Dst: print_lines
      Src: /src/xen/tools/xentrace/xenctx.c:888,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:896,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:898,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:901,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:902,1
    - Dst: instr_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:902,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:903,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:905,1
    - Dst: instr_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:905,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:906,1
    - Dst: stack_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:909,1
    - Dst: frame_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:910,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:914,1
    - Dst: print_stack_addr
      Src: /src/xen/tools/xentrace/xenctx.c:917,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:918,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:919,1
    - Dst: read_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:919,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:920,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:927,1
    - Dst: read_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:930,1
    - Dst: print_stack_addr
      Src: /src/xen/tools/xentrace/xenctx.c:932,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:933,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:934,1
    - Dst: read_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:934,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:935,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:940,1
    - Dst: read_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:943,1
    - Dst: print_stack_addr
      Src: /src/xen/tools/xentrace/xenctx.c:944,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:945,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:946,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:947,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:948,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:949,1
    - Dst: map_page
      Src: /src/xen/tools/xentrace/xenctx.c:956,1
    - Dst: read_mem_word
      Src: /src/xen/tools/xentrace/xenctx.c:959,1
    - Dst: kernel_addr
      Src: /src/xen/tools/xentrace/xenctx.c:960,1
    - Dst: print_stack_addr
      Src: /src/xen/tools/xentrace/xenctx.c:962,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:963,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:964,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:965,1
    - Dst: print_symbol
      Src: /src/xen/tools/xentrace/xenctx.c:966,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:967,1
    - Dst: print_stack_addr
      Src: /src/xen/tools/xentrace/xenctx.c:969,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:970,1
    - Dst: print_stack_word
      Src: /src/xen/tools/xentrace/xenctx.c:971,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:972,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 89
    argCount: 4
    argNames:
    - ctx
    - vcpu
    - width
    - stk_addr_start
    argTypes:
    - vcpu_guest_context_any_t*
    - int
    - int
    - guest_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 870
    functionDepth: 8
    functionLinenumber: 870
    functionLinenumberEnd: 978
    functionName: print_stack
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - map_page
    - read_stack_word
    - read_mem_word
    - print_stack_word
    - instr_pointer
    - frame_pointer
    - print_stack_addr
    - kernel_addr
    - print_lines
    - print_symbol
    - stack_pointer
    - printf
    linkageType: ''
    returnType: int
    signature: "int print_stack(vcpu_guest_context_any_t *ctx, int vcpu, int width,\n
      \                      guest_word_t stk_addr_start)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_vcpu_getcontext
      Src: /src/xen/tools/xentrace/xenctx.c:985,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:986,1
    - Dst: xc_domain_hvm_getcontext_partial
      Src: /src/xen/tools/xentrace/xenctx.c:995,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/xentrace/xenctx.c:996,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:998,1
    - Dst: xc_version
      Src: /src/xen/tools/xentrace/xenctx.c:1005,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1006,1
    - Dst: strstr
      Src: /src/xen/tools/xentrace/xenctx.c:1009,1
    - Dst: xc_domain_get_guest_width
      Src: /src/xen/tools/xentrace/xenctx.c:1012,1
    - Dst: print_mem
      Src: /src/xen/tools/xentrace/xenctx.c:1021,1
    - Dst: print_stack
      Src: /src/xen/tools/xentrace/xenctx.c:1026,1
    - Dst: print_ctx
      Src: /src/xen/tools/xentrace/xenctx.c:1030,1
    - Dst: print_code
      Src: /src/xen/tools/xentrace/xenctx.c:1032,1
    - Dst: kernel_addr
      Src: /src/xen/tools/xentrace/xenctx.c:1035,1
    - Dst: instr_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:1035,1
    - Dst: print_stack
      Src: /src/xen/tools/xentrace/xenctx.c:1036,1
    - Dst: stack_pointer
      Src: /src/xen/tools/xentrace/xenctx.c:1037,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 981
    functionDepth: 9
    functionLinenumber: 981
    functionLinenumberEnd: 1040
    functionName: dump_ctx
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - print_mem
    - print_ctx
    - xc_domain_hvm_getcontext_partial
    - instr_pointer
    - xc_vcpu_getcontext
    - kernel_addr
    - xc_version
    - xc_domain_get_guest_width
    - print_stack
    - stack_pointer
    - print_code
    - strstr
    - perror
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: void
    signature: void dump_ctx(int vcpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_vcpu_getinfo
      Src: /src/xen/tools/xentrace/xenctx.c:1048,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1052,1
    - Dst: dump_ctx
      Src: /src/xen/tools/xentrace/xenctx.c:1053,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1054,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1042
    functionDepth: 10
    functionLinenumber: 1042
    functionLinenumberEnd: 1059
    functionName: dump_all_vcpus
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 0
    functionsReached:
    - xc_vcpu_getinfo
    - printf
    - dump_ctx
    linkageType: ''
    returnType: void
    signature: void dump_all_vcpus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1063,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1065,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1067,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1068,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1069,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1070,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1071,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1072,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1073,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1074,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1075,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1077,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1078,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1079,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1080,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1082,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1083,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1084,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1085,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1086,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1088,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1089,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1091,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1092,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1093,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1094,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1095,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1096,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1098,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1099,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1100,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1103
    functionName: usage
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 8
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xentrace/xenctx.c:1143,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenctx.c:1158,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1161,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1164,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenctx.c:1174,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1178,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1182,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:1186,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:1186,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:1187,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xenctx.c:1187,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenctx.c:1190,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1193,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1196,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenctx.c:1204,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenctx.c:1209,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenctx.c:1214,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xenctx.c:1220,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1221,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1223,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1224,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1231,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1232,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1238,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1241,1
    - Dst: atoi
      Src: /src/xen/tools/xentrace/xenctx.c:1245,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1247,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1248,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenctx.c:1255,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1258,1
    - Dst: atoi
      Src: /src/xen/tools/xentrace/xenctx.c:1260,1
    - Dst: read_symbol_table
      Src: /src/xen/tools/xentrace/xenctx.c:1264,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xentrace/xenctx.c:1266,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1268,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1269,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/xentrace/xenctx.c:1272,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1274,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1275,1
    - Dst: xc_domain_pause
      Src: /src/xen/tools/xentrace/xenctx.c:1278,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1280,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1281,1
    - Dst: dump_ctx
      Src: /src/xen/tools/xentrace/xenctx.c:1287,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1289,1
    - Dst: dump_ctx
      Src: /src/xen/tools/xentrace/xenctx.c:1294,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenctx.c:1296,1
    - Dst: dump_all_vcpus
      Src: /src/xen/tools/xentrace/xenctx.c:1301,1
    - Dst: dump_ctx
      Src: /src/xen/tools/xentrace/xenctx.c:1303,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/xentrace/xenctx.c:1305,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1307,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1308,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xentrace/xenctx.c:1311,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenctx.c:1313,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenctx.c:1314,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 140
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1105
    functionDepth: 11
    functionLinenumber: 1105
    functionLinenumberEnd: 1318
    functionName: main
    functionSourceFile: /src/xen/tools/xentrace/xenctx.c
    functionUses: 119
    functionsReached:
    - xc_domain_pause
    - atoi
    - dump_all_vcpus
    - xc_interface_close
    - getopt_long
    - xc_interface_open
    - xc_domain_getinfo_single
    - dump_ctx
    - xc_domain_unpause
    - fprintf
    - strtol
    - printf
    - exit
    - strcmp
    - usage
    - perror
    - strtoull
    - read_symbol_table
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xentrace/setsize.c:9,1
    - Dst: xc_tbuf_get_size
      Src: /src/xen/tools/xentrace/setsize.c:11,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/setsize.c:13,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/setsize.c:14,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/setsize.c:18,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/setsize.c:22,1
    - Dst: atol
      Src: /src/xen/tools/xentrace/setsize.c:24,1
    - Dst: xc_tbuf_set_size
      Src: /src/xen/tools/xentrace/setsize.c:26,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/setsize.c:28,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/setsize.c:29,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/setsize.c:31,1
    - Dst: xc_tbuf_get_size
      Src: /src/xen/tools/xentrace/setsize.c:33,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/setsize.c:34,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/setsize.c:37,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xentrace/setsize.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 6
    functionDepth: 4
    functionLinenumber: 6
    functionLinenumberEnd: 41
    functionName: main
    functionSourceFile: /src/xen/tools/xentrace/setsize.c
    functionUses: 119
    functionsReached:
    - xc_interface_close
    - xc_tbuf_set_size
    - atol
    - xc_tbuf_get_size
    - xc_interface_open
    - printf
    - exit
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char * argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _hz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: QHZ_FROM_HZ
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QHZ_FROM_HZ(_hz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - _x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: warn_once
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: warn_once(_x...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/xentrace/xenalyze.c:307,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:308,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:309,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:310,1
    - Dst: feof
      Src: /src/xen/tools/xentrace/xenalyze.c:312,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:315,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:317,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:318,1
    - Dst: fscanf
      Src: /src/xen/tools/xentrace/xenalyze.c:326,1
    - Dst: STR
      Src: /src/xen/tools/xentrace/xenalyze.c:326,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:334,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:339,1
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenalyze.c:352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 353
    functionName: parse_symbol_file
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fopen
    - feof
    - error
    - malloc
    - fclose
    - STR
    - fprintf
    - fscanf
    - perror
    linkageType: ''
    returnType: void
    signature: void parse_symbol_file(char *fn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 385
    functionName: find_symbol
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * find_symbol(unsigned long long addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:1443,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:1445,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:1447,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - h
    - v
    argTypes:
    - struct hvm_data*
    - struct vcpu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1455
    functionName: init_hvm_data
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - bzero
    - fprintf
    linkageType: ''
    returnType: void
    signature: void init_hvm_data(struct hvm_data *h, struct vcpu_data *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - h
    - event
    argTypes:
    - struct hvm_data*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: set_hvm_exit_reason_data
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hvm_exit_reason_data(struct hvm_data *h, unsigned event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _p
    - ','
    - _x
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1782
    functionDepth: 0
    functionLinenumber: 1782
    functionLinenumberEnd: 1787
    functionName: UPDATE_VOLUME
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_VOLUME(_p,_x,_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vol
    argTypes:
    - struct trace_volume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1791
    functionName: volume_clear
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - bzero
    linkageType: ''
    returnType: void
    signature: void volume_clear(struct trace_volume *vol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:1798,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:1803,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:1809,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - vol
    argTypes:
    - struct trace_volume*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1816
    functionName: volume_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void volume_summary(struct trace_volume *vol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - cpu_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1918
    functionName: cpumask_init
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpumask_init(cpu_mask_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - cpu_mask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1922
    functionName: cpumask_clear
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpumask_clear(cpu_mask_t *c, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - cpu_mask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1924
    functionDepth: 0
    functionLinenumber: 1924
    functionLinenumberEnd: 1926
    functionName: cpumask_set
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpumask_set(cpu_mask_t *c, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - cpu_mask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1933
    functionName: cpumask_isset
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpumask_isset(const cpu_mask_t *c, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - cpu_mask_t*
    - cpu_mask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1937
    functionName: cpumask_union
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpumask_union(cpu_mask_t *d, const cpu_mask_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - t
    argTypes:
    - unsigned long long
    - struct time_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1945
    functionName: cycles_to_time
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cycles_to_time(unsigned long long c, struct time_struct *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ac
    - t
    argTypes:
    - unsigned long long
    - struct time_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1958
    functionName: abs_cycles_to_time
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void abs_cycles_to_time(unsigned long long ac, struct time_struct *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ac
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1965
    functionName: abs_cycles_to_global
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: tsc_t
    signature: tsc_t abs_cycles_to_global(unsigned long long ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:1970,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - atsc
    - y
    argTypes:
    - tsc_t
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 1973
    functionName: scatterplot_vs_time
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - abs_cycles_to_time
    - printf
    linkageType: ''
    returnType: void
    signature: void scatterplot_vs_time(tsc_t atsc, long long y)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - A
    - N
    - ple
    argTypes:
    - long long*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 2030
    functionName: percentile
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long long
    signature: long long percentile(long long * A, int N, int ple)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:2048,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 4
    argNames:
    - A
    - w
    - N
    - ple
    argTypes:
    - float*
    - unsigned long long*
    - int
    - int
    assertStmts:
    - condition: (w[I]!=0)
      pos:
        line_end: 2047
        line_start: 2047
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 2116
      start: 2032
    functionDepth: 0
    functionLinenumber: 2032
    functionLinenumberEnd: 2116
    functionName: weighted_percentile
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: float
    signature: "float weighted_percentile(float * A, /* values */\n                                       unsigned
      long long * w, /* weights */\n                                       int N,
      \                 /* total */\n                                       int ple)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2133,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:2135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - A
    - N
    - ple
    argTypes:
    - long long*
    - int
    - int
    assertStmts:
    - condition: (A[I]!=0)
      pos:
        line_end: 2134
        line_start: 2134
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 2199
      start: 2118
    functionDepth: 0
    functionLinenumber: 2118
    functionLinenumberEnd: 2199
    functionName: self_weighted_percentile
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - assert
    - fprintf
    linkageType: ''
    returnType: long long
    signature: "long long self_weighted_percentile(long long * A,\n                                   int
      N,            /* total */\n                                   int ple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cycles
    - total
    argTypes:
    - long long
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2203
    functionName: __cycles_percent
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double __cycles_percent(long long cycles, long long total)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cycles_percent
      Src: /src/xen/tools/xentrace/xenalyze.c:2207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct cycle_summary*
    - struct cycle_framework*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2208
    functionName: __summary_percent
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - __cycles_percent
    linkageType: ''
    returnType: double
    signature: "double __summary_percent(struct cycle_summary *s,\n                                       struct
      cycle_framework *f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __summary_percent
      Src: /src/xen/tools/xentrace/xenalyze.c:2211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct cycle_summary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2210
    functionDepth: 2
    functionLinenumber: 2210
    functionLinenumberEnd: 2212
    functionName: summary_percent_global
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - __summary_percent
    linkageType: ''
    returnType: double
    signature: double summary_percent_global(struct cycle_summary *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2236,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - struct cycle_summary*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2214
    functionDepth: 0
    functionLinenumber: 2214
    functionLinenumberEnd: 2264
    functionName: update_cycles
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void update_cycles(struct cycle_summary *s, long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct interval_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2270
    functionName: clear_interval_cycles
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_interval_cycles(struct interval_element *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2284,1
    - Dst: percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2285,1
    - Dst: percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2286,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2288,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - struct cycle_summary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2272
    functionDepth: 1
    functionLinenumber: 2272
    functionLinenumberEnd: 2295
    functionName: print_cpu_affinity
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - percentile
    - printf
    linkageType: ''
    returnType: void
    signature: void print_cpu_affinity(struct cycle_summary *s, const char *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2316,1
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2317,1
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2318,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2320,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - s
    - total
    - p
    argTypes:
    - struct cycle_summary*
    - tsc_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2297
    functionDepth: 1
    functionLinenumber: 2297
    functionLinenumberEnd: 2333
    functionName: print_cycle_percent_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - self_weighted_percentile
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_cycle_percent_summary(struct cycle_summary *s,\n                                               tsc_t
      total, char *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2349,1
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2350,1
    - Dst: self_weighted_percentile
      Src: /src/xen/tools/xentrace/xenalyze.c:2351,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2353,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - struct cycle_summary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2335
    functionDepth: 1
    functionLinenumber: 2335
    functionLinenumberEnd: 2361
    functionName: print_cycle_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - self_weighted_percentile
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_cycle_summary(struct cycle_summary *s,\n                                       const
      char *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _s
    - ','
    - _p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2391
    functionName: PRINT_SUMMARY
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_SUMMARY(_s, _p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2400,1
    - Dst: __cycles_percent
      Src: /src/xen/tools/xentrace/xenalyze.c:2401,1
    - Dst: clear_interval_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - cycles
    argTypes:
    - struct interval_element*
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2403
    functionName: __interval_cycle_percent_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - __cycles_percent
    - clear_interval_cycles
    - printf
    linkageType: ''
    returnType: void
    signature: void __interval_cycle_percent_output(struct interval_element *e, tsc_t
      cycles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct interval_element*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2405
    functionDepth: 2
    functionLinenumber: 2405
    functionLinenumberEnd: 2407
    functionName: interval_cycle_percent_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - __interval_cycle_percent_output
    linkageType: ''
    returnType: void
    signature: void interval_cycle_percent_output(struct interval_element *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:2411,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2414
    functionName: interval_time_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - abs_cycles_to_time
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_time_output(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2419,1
    - Dst: interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2425,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2427,1
    - Dst: interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2433,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2416
    functionDepth: 3
    functionLinenumber: 2416
    functionLinenumberEnd: 2436
    functionName: interval_table_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_time_output
    - interval_cycle_percent_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_table_output(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2441,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2444,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2447
    functionName: interval_table_tail
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_table_tail(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2451,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2454,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2455,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:2458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2459
    functionName: interval_table_alloc
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - bzero
    - fprintf
    linkageType: ''
    returnType: void
    signature: void interval_table_alloc(int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2464,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2466,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2467,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2468,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:2471,1
    - Dst: strncpy
      Src: /src/xen/tools/xentrace/xenalyze.c:2474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - e
    - desc
    argTypes:
    - struct interval_element*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2461
    functionDepth: 1
    functionLinenumber: 2461
    functionLinenumberEnd: 2483
    functionName: interval_list_add
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - strncpy
    - fprintf
    - bzero
    linkageType: ''
    returnType: void
    signature: void interval_list_add(struct interval_element *e, char *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2489,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2491,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2485
    functionDepth: 0
    functionLinenumber: 2485
    functionLinenumberEnd: 2497
    functionName: interval_cr3_schedule_time_header
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_cr3_schedule_time_header(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2506,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2508,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2510,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2518,1
    - Dst: interval_list_add
      Src: /src/xen/tools/xentrace/xenalyze.c:2519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - cr3
    argTypes:
    - struct cr3_value_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2499
    functionDepth: 2
    functionLinenumber: 2499
    functionLinenumberEnd: 2525
    functionName: interval_cr3_value_check
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - interval_list_add
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void interval_cr3_value_check(struct cr3_value_struct *cr3)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:2528,1
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:2529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2527
    functionDepth: 0
    functionLinenumber: 2527
    functionLinenumberEnd: 2542
    functionName: cr3_time_compare
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - typeof
    linkageType: ''
    returnType: int
    signature: int cr3_time_compare(const void *_a, const void *_b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2557,1
    - Dst: qsort
      Src: /src/xen/tools/xentrace/xenalyze.c:2562,1
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2565,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2571,1
    - Dst: __cycles_percent
      Src: /src/xen/tools/xentrace/xenalyze.c:2573,1
    - Dst: clear_interval_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2577,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xenalyze.c:2580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2544
    functionDepth: 2
    functionLinenumber: 2544
    functionLinenumberEnd: 2581
    functionName: interval_cr3_schedule_ordered_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - __cycles_percent
    - free
    - qsort
    - malloc
    - clear_interval_cycles
    - interval_time_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_cr3_schedule_ordered_output(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2586,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2588,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2583
    functionDepth: 0
    functionLinenumber: 2583
    functionLinenumberEnd: 2590
    functionName: interval_cr3_short_summary_header
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_cr3_short_summary_header(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2599,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2603,1
    - Dst: __cycles_percent
      Src: /src/xen/tools/xentrace/xenalyze.c:2604,1
    - Dst: __interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2608,1
    - Dst: clear_interval_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2611,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2592
    functionDepth: 2
    functionLinenumber: 2592
    functionLinenumberEnd: 2615
    functionName: interval_cr3_short_summary_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - __cycles_percent
    - __interval_cycle_percent_output
    - clear_interval_cycles
    - interval_time_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_cr3_short_summary_output(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2624,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2626,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2634,1
    - Dst: interval_list_add
      Src: /src/xen/tools/xentrace/xenalyze.c:2635,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2617
    functionDepth: 2
    functionLinenumber: 2617
    functionLinenumberEnd: 2640
    functionName: interval_domain_value_check
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - interval_list_add
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void interval_domain_value_check(struct domain_data *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2645,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2647,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2642
    functionDepth: 0
    functionLinenumber: 2642
    functionLinenumberEnd: 2649
    functionName: interval_domain_short_summary_header
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_domain_short_summary_header(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2659,1
    - Dst: interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2661,1
    - Dst: interval_cycle_percent_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2664,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2651
    functionDepth: 3
    functionLinenumber: 2651
    functionLinenumberEnd: 2668
    functionName: interval_domain_short_summary_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_time_output
    - interval_cycle_percent_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_domain_short_summary_output(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2685,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - h
    - vector
    argTypes:
    - struct hvm_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2670
    functionDepth: 0
    functionLinenumber: 2670
    functionLinenumberEnd: 2691
    functionName: interval_domain_guest_interrupt
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void interval_domain_guest_interrupt(struct hvm_data *h, int vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2696,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2700,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2693
    functionDepth: 0
    functionLinenumber: 2693
    functionLinenumberEnd: 2703
    functionName: interval_domain_guest_interrupt_tail
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_domain_guest_interrupt_tail(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2713,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2721,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2705
    functionDepth: 2
    functionLinenumber: 2705
    functionLinenumberEnd: 2729
    functionName: interval_domain_guest_interrupt_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_time_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_domain_guest_interrupt_output(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interval_time_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2738,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2740,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2731
    functionDepth: 2
    functionLinenumber: 2731
    functionLinenumberEnd: 2746
    functionName: interval_domain_grant_maps_output
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_time_output
    - printf
    linkageType: ''
    returnType: void
    signature: void interval_domain_grant_maps_output(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: interval_table_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2755,1
    - Dst: interval_cr3_schedule_ordered_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2763,1
    - Dst: interval_cr3_short_summary_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2766,1
    - Dst: interval_domain_short_summary_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2769,1
    - Dst: interval_domain_guest_interrupt_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2772,1
    - Dst: interval_domain_grant_maps_output
      Src: /src/xen/tools/xentrace/xenalyze.c:2775,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2750
    functionDepth: 4
    functionLinenumber: 2750
    functionLinenumberEnd: 2780
    functionName: interval_callback
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_table_output
    - interval_domain_guest_interrupt_output
    - interval_cr3_short_summary_output
    - interval_domain_short_summary_output
    - interval_domain_grant_maps_output
    - interval_cr3_schedule_ordered_output
    linkageType: ''
    returnType: void
    signature: void interval_callback(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: interval_cr3_short_summary_header
      Src: /src/xen/tools/xentrace/xenalyze.c:2785,1
    - Dst: interval_domain_short_summary_header
      Src: /src/xen/tools/xentrace/xenalyze.c:2788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2782
    functionDepth: 1
    functionLinenumber: 2782
    functionLinenumberEnd: 2793
    functionName: interval_header
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_domain_short_summary_header
    - interval_cr3_short_summary_header
    linkageType: ''
    returnType: void
    signature: void interval_header(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: interval_table_tail
      Src: /src/xen/tools/xentrace/xenalyze.c:2797,1
    - Dst: interval_domain_guest_interrupt_tail
      Src: /src/xen/tools/xentrace/xenalyze.c:2803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2808
    functionName: interval_tail
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_table_tail
    - interval_domain_guest_interrupt_tail
    linkageType: ''
    returnType: void
    signature: void interval_tail(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2821,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:2823,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2824,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:2827,1
    - Dst: new
      Src: /src/xen/tools/xentrace/xenalyze.c:2833,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2838,1
    - Dst: update
      Src: /src/xen/tools/xentrace/xenalyze.c:2840,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2843,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - head
    - eip
    - cycles
    - type
    - extra
    argTypes:
    - struct eip_list_struct**
    - unsigned long long
    - unsigned long long
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2812
    functionDepth: 1
    functionLinenumber: 2812
    functionLinenumberEnd: 2844
    functionName: update_eip
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update
    - error
    - malloc
    - update_cycles
    - fprintf
    - new
    - bzero
    - perror
    linkageType: ''
    returnType: void
    signature: "void update_eip(struct eip_list_struct **head, unsigned long long
      eip,\n                unsigned long long cycles, int type, void * extra)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:2847,1
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:2848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2846
    functionDepth: 0
    functionLinenumber: 2846
    functionLinenumberEnd: 2861
    functionName: eip_compare
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - typeof
    linkageType: ''
    returnType: int
    signature: int eip_compare(const void *_a, const void *_b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2880,1
    - Dst: qsort
      Src: /src/xen/tools/xentrace/xenalyze.c:2885,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2894,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:2899,1
    - Dst: find_symbol
      Src: /src/xen/tools/xentrace/xenalyze.c:2901,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2904,1
    - Dst: find_symbol
      Src: /src/xen/tools/xentrace/xenalyze.c:2906,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:2907,1
    - Dst: dump
      Src: /src/xen/tools/xentrace/xenalyze.c:2914,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xenalyze.c:2918,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct eip_list_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2919
    functionName: dump_eip
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    - free
    - dump
    - qsort
    - malloc
    - find_symbol
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_eip(struct eip_list_struct *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2940,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:2942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - element
    argTypes:
    - struct hvm_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2936
    functionDepth: 1
    functionLinenumber: 2936
    functionLinenumberEnd: 2945
    functionName: hvm_update_short_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_cycles
    linkageType: ''
    returnType: void
    signature: void hvm_update_short_summary(struct hvm_data *h, int element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2953,1
    - Dst: print_cycle_percent_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:2954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - hss
    - total
    - prefix
    argTypes:
    - struct hvm_short_summary_struct*
    - tsc_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2947
    functionDepth: 2
    functionLinenumber: 2947
    functionLinenumberEnd: 2956
    functionName: hvm_short_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - print_cycle_percent_summary
    linkageType: ''
    returnType: void
    signature: "void hvm_short_summary(struct hvm_short_summary_struct *hss,\n                       tsc_t
      total, const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _h
    - ','
    - _s
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2960
    functionDepth: 0
    functionLinenumber: 2960
    functionLinenumberEnd: 2971
    functionName: hvm_set_summary_handler
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_set_summary_handler(_h, _s, _d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:2986,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:2988,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:2995,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:2998,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3000,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:3001,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts:
    - condition: (p==NULL)
      pos:
        line_end: 2994
        line_start: 2994
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 3010
      start: 2972
    functionDepth: 1
    functionLinenumber: 2972
    functionLinenumberEnd: 3010
    functionName: __hvm_set_summary_handler
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - malloc
    - error
    - fprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int __hvm_set_summary_handler(struct hvm_data *h, void (*s)(struct
      hvm_data *h, void*d), void*d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 3014
    functionDepth: 0
    functionLinenumber: 3014
    functionLinenumberEnd: 3024
    functionName: hvm_set_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hvm_set_postprocess(struct hvm_data *h, void (*s)(struct hvm_data
      *h))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3027
    functionDepth: 0
    functionLinenumber: 3027
    functionLinenumberEnd: 3028
    functionName: HIGH_BIT
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH_BIT(_v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_BIT
      Src: /src/xen/tools/xentrace/xenalyze.c:3030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3028
    functionDepth: 1
    functionLinenumber: 3028
    functionLinenumberEnd: 3034
    functionName: is_valid_addr64
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - HIGH_BIT
    linkageType: ''
    returnType: int
    signature: int is_valid_addr64(unsigned long long va)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3039,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3044,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3049,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3055,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3060,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3065,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3073,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3077,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3080,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3087
    functionName: hvm_pf_xen_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_pf_xen_summary(struct hvm_data *h, void *d)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_BIT
      Src: /src/xen/tools/xentrace/xenalyze.c:3097,1
    - Dst: HIGH_BIT
      Src: /src/xen/tools/xentrace/xenalyze.c:3099,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3101,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3104,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3105,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3106,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3107,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3109,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3114,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3115,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3116,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3118,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3123,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3124,1
    - Dst: _SUBFIELD
      Src: /src/xen/tools/xentrace/xenalyze.c:3126,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3131,1
    - Dst: HIGH_BIT
      Src: /src/xen/tools/xentrace/xenalyze.c:3227,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 2
    argNames:
    - e
    - guest_paging_levels
    argTypes:
    - struct pf_xen_extra*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3089
    functionDepth: 1
    functionLinenumber: 3089
    functionLinenumberEnd: 3234
    functionName: pf_preprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - HIGH_BIT
    - fprintf
    - _SUBFIELD
    linkageType: ''
    returnType: void
    signature: void pf_preprocess(struct pf_xen_extra *e, int guest_paging_levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _bits
    - ','
    - _shift
    - ','
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3093
    functionDepth: 0
    functionLinenumber: 3093
    functionLinenumberEnd: 3095
    functionName: _SUBFIELD
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SUBFIELD(_bits, _shift, _x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_addr64
      Src: /src/xen/tools/xentrace/xenalyze.c:3243,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3244,1
    - Dst: pf_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - event
    - h
    argTypes:
    - unsigned
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3268
      start: 3236
    functionDepth: 2
    functionLinenumber: 3236
    functionLinenumberEnd: 3268
    functionName: hvm_pf_xen_preprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - is_valid_addr64
    - fprintf
    - pf_preprocess
    linkageType: ''
    returnType: void
    signature: void hvm_pf_xen_preprocess(unsigned event, struct hvm_data *h)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HIGH_BIT
      Src: /src/xen/tools/xentrace/xenalyze.c:3280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - paging_levels
    - va
    argTypes:
    - int
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3270
    functionDepth: 1
    functionLinenumber: 3270
    functionLinenumberEnd: 3287
    functionName: is_kernel
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - HIGH_BIT
    linkageType: ''
    returnType: int
    signature: int is_kernel(int paging_levels, unsigned long long va)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3294,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3297,1
    - Dst: update_eip
      Src: /src/xen/tools/xentrace/xenalyze.c:3301,1
    - Dst: is_kernel
      Src: /src/xen/tools/xentrace/xenalyze.c:3307,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3308,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3311,1
    - Dst: is_kernel
      Src: /src/xen/tools/xentrace/xenalyze.c:3313,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3314,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3318,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3289
    functionDepth: 2
    functionLinenumber: 3289
    functionLinenumberEnd: 3325
    functionName: hvm_pf_xen_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_cycles
    - update_eip
    - hvm_set_summary_handler
    - fprintf
    - is_kernel
    linkageType: ''
    returnType: void
    signature: void hvm_pf_xen_postprocess(struct hvm_data *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3332,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3336,1
    - Dst: hvm_pf_xen_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3339,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3344,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3351,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3358,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3327
    functionDepth: 3
    functionLinenumber: 3327
    functionLinenumberEnd: 3360
    functionName: hvm_pf_xen_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_set_postprocess
    - fprintf
    - printf
    - hvm_pf_xen_preprocess
    linkageType: ''
    returnType: void
    signature: void hvm_pf_xen_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3383,1
    - Dst: cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:3389,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3390,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - v
    - tsc
    argTypes:
    - struct vcpu_data*
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3366
    functionDepth: 1
    functionLinenumber: 3366
    functionLinenumberEnd: 3406
    functionName: hvm_vlapic_vmentry_cleanup
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - cycles_to_time
    - update_cycles
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_vmentry_cleanup(struct vcpu_data *v, tsc_t tsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:3410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vla
    argTypes:
    - struct vlapic_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3408
    functionDepth: 0
    functionLinenumber: 3408
    functionLinenumberEnd: 3411
    functionName: hvm_vlapic_clear
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - bzero
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_clear(struct vlapic_struct *vla)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - vla
    - vec
    argTypes:
    - struct vlapic_struct*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3413
    functionDepth: 0
    functionLinenumber: 3413
    functionLinenumberEnd: 3435
    functionName: find_vec
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct outstanding_ipi
    signature: struct outstanding_ipi *find_vec(struct vlapic_struct *vla, int vec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3444,1
    - Dst: find_vec
      Src: /src/xen/tools/xentrace/xenalyze.c:3451,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3455,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3464,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3474,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - ov
    - vec
    argTypes:
    - struct vcpu_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3479
    functionName: ipi_send
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    - fprintf
    - find_vec
    linkageType: ''
    returnType: void
    signature: void ipi_send(struct vcpu_data *ov, int vec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3501,1
    - Dst: ipi_send
      Src: /src/xen/tools/xentrace/xenalyze.c:3519,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3524,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3481
    functionDepth: 2
    functionLinenumber: 3481
    functionLinenumberEnd: 3538
    functionName: hvm_vlapic_icr_handler
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - ipi_send
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_icr_handler(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_vec
      Src: /src/xen/tools/xentrace/xenalyze.c:3545,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3549,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - vec
    argTypes:
    - struct vcpu_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3540
    functionDepth: 1
    functionLinenumber: 3540
    functionLinenumberEnd: 3556
    functionName: hvm_vlapic_inject
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    - fprintf
    - find_vec
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_inject(struct vcpu_data *v, int vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3558
    functionDepth: 0
    functionLinenumber: 3558
    functionLinenumberEnd: 3562
    functionName: hvm_vlapic_eoi_handler
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_eoi_handler(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_vlapic_icr_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3570,1
    - Dst: hvm_vlapic_eoi_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3564
    functionDepth: 3
    functionLinenumber: 3564
    functionLinenumberEnd: 3577
    functionName: hvm_vlapic_handler
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_vlapic_icr_handler
    - hvm_vlapic_eoi_handler
    linkageType: ''
    returnType: void
    signature: void hvm_vlapic_handler(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warn_once
      Src: /src/xen/tools/xentrace/xenalyze.c:3591,1
    - Dst: update_io_address
      Src: /src/xen/tools/xentrace/xenalyze.c:3596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3582
    functionDepth: 1
    functionLinenumber: 3582
    functionLinenumberEnd: 3597
    functionName: enumerate_mmio
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - warn_once
    - update_io_address
    linkageType: ''
    returnType: void
    signature: void enumerate_mmio(struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3599
    functionDepth: 1
    functionLinenumber: 3599
    functionLinenumberEnd: 3605
    functionName: hvm_mmio_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    linkageType: ''
    returnType: void
    signature: void hvm_mmio_summary(struct hvm_data *h, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3616,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3620,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3627,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3632,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3639,1
    - Dst: enumerate_mmio
      Src: /src/xen/tools/xentrace/xenalyze.c:3644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3645
      start: 3607
    functionDepth: 2
    functionLinenumber: 3607
    functionLinenumberEnd: 3645
    functionName: hvm_mmio_assist_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - enumerate_mmio
    - update_cycles
    - hvm_set_summary_handler
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hvm_mmio_assist_postprocess(struct hvm_data *h)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3688,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3693,1
    - Dst: hvm_vlapic_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:3698,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3703
      start: 3648
    functionDepth: 4
    functionLinenumber: 3648
    functionLinenumberEnd: 3703
    functionName: hvm_mmio_assist_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_vlapic_handler
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_mmio_assist_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3711,1
    - Dst: interval_domain_guest_interrupt
      Src: /src/xen/tools/xentrace/xenalyze.c:3725,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3733,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:3737,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3740,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3744,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3762,1
    - Dst: hvm_vlapic_inject
      Src: /src/xen/tools/xentrace/xenalyze.c:3767,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3768
      start: 3705
    functionDepth: 2
    functionLinenumber: 3705
    functionLinenumberEnd: 3768
    functionName: hvm_inj_virq_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - interval_domain_guest_interrupt
    - fprintf
    - hvm_vlapic_inject
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_inj_virq_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:3787,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3788,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:3789,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:3792,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - list
    - pa
    - dir
    - arc_cycles
    - va
    argTypes:
    - struct io_address**
    - unsigned int
    - int
    - tsc_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3778
    functionDepth: 1
    functionLinenumber: 3778
    functionLinenumberEnd: 3808
    functionName: update_io_address
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - error
    - update_cycles
    - malloc
    - fprintf
    - bzero
    linkageType: ''
    returnType: void
    signature: "void update_io_address(struct io_address ** list, unsigned int pa,
      int dir,\n                       tsc_t arc_cycles, unsigned int va)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3814,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3819,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3820,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3824,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:3825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - list
    - s
    argTypes:
    - struct io_address*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3828
    functionName: hvm_io_address_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_io_address_summary(struct io_address *list, const char * s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_io_address
      Src: /src/xen/tools/xentrace/xenalyze.c:3833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3834
      start: 3830
    functionDepth: 2
    functionLinenumber: 3830
    functionLinenumberEnd: 3834
    functionName: hvm_io_write_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_io_address
    linkageType: ''
    returnType: void
    signature: void hvm_io_write_postprocess(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_io_address
      Src: /src/xen/tools/xentrace/xenalyze.c:3839,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:3841,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3842
      start: 3836
    functionDepth: 2
    functionLinenumber: 3836
    functionLinenumberEnd: 3842
    functionName: hvm_io_read_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_io_address
    - scatterplot_vs_time
    linkageType: ''
    returnType: void
    signature: void hvm_io_read_postprocess(struct hvm_data *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3863,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:3864,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3873,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3874,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:3877,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3878,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:3883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3844
    functionDepth: 1
    functionLinenumber: 3844
    functionLinenumberEnd: 3889
    functionName: hvm_io_assist_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_io_assist_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:3908,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:3923,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3924,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:3925,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:3928,1
    - Dst: interval_cr3_value_check
      Src: /src/xen/tools/xentrace/xenalyze.c:3949,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3953,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:3970,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:3975,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - val
    - h
    argTypes:
    - unsigned long long
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3979
      start: 3893
    functionDepth: 3
    functionLinenumber: 3893
    functionLinenumberEnd: 3979
    functionName: cr3_switch
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - update_cycles
    - interval_cr3_value_check
    - fprintf
    - scatterplot_vs_time
    - bzero
    linkageType: ''
    returnType: void
    signature: void cr3_switch(unsigned long long val, struct hvm_data *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:3993,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - v
    - gmfn
    argTypes:
    - struct vcpu_data*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3981
    functionDepth: 0
    functionLinenumber: 3981
    functionLinenumberEnd: 4002
    functionName: cr3_prealloc_unpin
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void cr3_prealloc_unpin(struct vcpu_data *v, unsigned long long gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:4005,1
    - Dst: typeof
      Src: /src/xen/tools/xentrace/xenalyze.c:4006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4004
    functionDepth: 0
    functionLinenumber: 4004
    functionLinenumberEnd: 4014
    functionName: cr3_compare_start
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - typeof
    linkageType: ''
    returnType: int
    signature: int cr3_compare_start(const void *_a, const void *_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:4029,1
    - Dst: qsort
      Src: /src/xen/tools/xentrace/xenalyze.c:4036,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4046,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4053,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4054,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4057,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4058,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4059,1
    - Dst: print_cycle_percent_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4060,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4061,1
    - Dst: print_cycle_percent_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4062,1
    - Dst: hvm_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4064,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4065,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4070,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xenalyze.c:4077,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct cr3_value_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4016
    functionDepth: 3
    functionLinenumber: 4016
    functionLinenumberEnd: 4078
    functionName: cr3_dump_list
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - hvm_short_summary
    - free
    - qsort
    - malloc
    - abs_cycles_to_time
    - print_cycle_percent_summary
    - printf
    - print_cycle_summary
    linkageType: ''
    returnType: void
    signature: void cr3_dump_list(struct cr3_value_struct *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4084,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4080
    functionDepth: 1
    functionLinenumber: 4080
    functionLinenumberEnd: 4088
    functionName: hvm_cr3_write_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    linkageType: ''
    returnType: void
    signature: void hvm_cr3_write_summary(struct hvm_data *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4094,1
    - Dst: hvm_cr3_write_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4090
    functionDepth: 2
    functionLinenumber: 4090
    functionLinenumberEnd: 4098
    functionName: hvm_cr_write_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    - hvm_cr3_write_summary
    linkageType: ''
    returnType: void
    signature: void hvm_cr_write_summary(struct hvm_data *h, void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4127,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4130,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:4133,1
    - Dst: cr3_switch
      Src: /src/xen/tools/xentrace/xenalyze.c:4137,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4142,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4159,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4160,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4161,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4162,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4163,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4164,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4165,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4166,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4167,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4168,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4169,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4170,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4171,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4172,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4173,1
    - Dst: case_cr
      Src: /src/xen/tools/xentrace/xenalyze.c:4174,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4177,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:4178,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4100
    functionDepth: 4
    functionLinenumber: 4100
    functionLinenumberEnd: 4182
    functionName: hvm_cr_write_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - case_cr
    - hvm_update_short_summary
    - error
    - update_cycles
    - cr3_switch
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hvm_cr_write_postprocess(struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4159
      start: 4155
    functionDepth: 0
    functionLinenumber: 4155
    functionLinenumberEnd: 4159
    functionName: case_cr
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: case_cr(_x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:4209,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4210,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4216,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4229
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4229
    functionName: hvm_cr_write_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_cr_write_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4234
      start: 4232
    functionDepth: 0
    functionLinenumber: 4232
    functionLinenumberEnd: 4234
    functionName: hvm_msr_write_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hvm_msr_write_summary(struct hvm_data *h, void *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:4242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4243
      start: 4236
    functionDepth: 1
    functionLinenumber: 4236
    functionLinenumberEnd: 4243
    functionName: hvm_msr_write_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_set_summary_handler
    linkageType: ''
    returnType: void
    signature: void hvm_msr_write_postprocess(struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_extra_words
      Src: /src/xen/tools/xentrace/xenalyze.c:4252,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4260,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:4265,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4245
    functionDepth: 1
    functionLinenumber: 4245
    functionLinenumberEnd: 4267
    functionName: hvm_msr_write_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - check_extra_words
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_msr_write_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4272
      start: 4270
    functionDepth: 0
    functionLinenumber: 4270
    functionLinenumberEnd: 4272
    functionName: hvm_msr_read_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hvm_msr_read_summary(struct hvm_data *h, void *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:4280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4274
    functionDepth: 1
    functionLinenumber: 4274
    functionLinenumberEnd: 4281
    functionName: hvm_msr_read_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_set_summary_handler
    linkageType: ''
    returnType: void
    signature: void hvm_msr_read_postprocess(struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_extra_words
      Src: /src/xen/tools/xentrace/xenalyze.c:4290,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4298,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:4303,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4283
    functionDepth: 1
    functionLinenumber: 4283
    functionLinenumberEnd: 4305
    functionName: hvm_msr_read_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - check_extra_words
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_msr_read_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4313,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4318
      start: 4307
    functionDepth: 1
    functionLinenumber: 4307
    functionLinenumberEnd: 4318
    functionName: hvm_vmcall_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - PRINT_SUMMARY
    linkageType: ''
    returnType: void
    signature: void hvm_vmcall_summary(struct hvm_data *h, void *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4327,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4330,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:4332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4320
    functionDepth: 1
    functionLinenumber: 4320
    functionLinenumberEnd: 4334
    functionName: hvm_vmcall_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_set_summary_handler
    - update_cycles
    linkageType: ''
    returnType: void
    signature: void hvm_vmcall_postprocess(struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4344,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4349,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:4356,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4336
    functionDepth: 1
    functionLinenumber: 4336
    functionLinenumberEnd: 4358
    functionName: hvm_vmcall_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void hvm_vmcall_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4369,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:4370,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4373,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:4374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4360
    functionDepth: 1
    functionLinenumber: 4360
    functionLinenumberEnd: 4378
    functionName: hvm_inj_exc_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_inj_exc_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4388,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4393,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - h
    - d
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4380
    functionDepth: 0
    functionLinenumber: 4380
    functionLinenumberEnd: 4400
    functionName: hvm_intr_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_intr_summary(struct hvm_data *h, void *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4413,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:4416,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4426,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4431,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4443,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4444,1
    - Dst: update_eip
      Src: /src/xen/tools/xentrace/xenalyze.c:4467,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:4476,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4403
    functionDepth: 2
    functionLinenumber: 4403
    functionLinenumberEnd: 4483
    functionName: hvm_intr_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - update_eip
    - abs_cycles_to_time
    - hvm_set_summary_handler
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_intr_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4505,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4512,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4517
      start: 4486
    functionDepth: 0
    functionLinenumber: 4486
    functionLinenumberEnd: 4517
    functionName: hvm_intr_window_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_intr_window_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4546,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:4547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4551
      start: 4519
    functionDepth: 1
    functionLinenumber: 4519
    functionLinenumberEnd: 4551
    functionName: hvm_pf_inject_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_pf_inject_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4565,1
    - Dst: hvm_generic_postprocess_init
      Src: /src/xen/tools/xentrace/xenalyze.c:4571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4572
      start: 4555
    functionDepth: 1
    functionLinenumber: 4555
    functionLinenumberEnd: 4572
    functionName: hvm_npf_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    - hvm_generic_postprocess_init
    linkageType: ''
    returnType: void
    signature: void hvm_npf_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4581,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4591,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4574
    functionDepth: 1
    functionLinenumber: 4574
    functionLinenumberEnd: 4600
    functionName: hvm_rdtsc_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - abs_cycles_to_time
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_rdtsc_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:4606,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:4608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - data
    argTypes:
    - struct hvm_data*
    - void*
    assertStmts:
    - condition: (evt < HVM_EVENT_HANDLER_MAX)
      pos:
        line_end: 4605
        line_start: 4605
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 4611
      start: 4602
    functionDepth: 1
    functionLinenumber: 4602
    functionLinenumberEnd: 4611
    functionName: hvm_generic_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - assert
    - PRINT_SUMMARY
    linkageType: ''
    returnType: void
    signature: void hvm_generic_summary(struct hvm_data *h, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4616,1
    - Dst: bcopy
      Src: /src/xen/tools/xentrace/xenalyze.c:4619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4620
      start: 4613
    functionDepth: 0
    functionLinenumber: 4613
    functionLinenumberEnd: 4620
    functionName: hvm_generic_postprocess_init
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - bcopy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hvm_generic_postprocess_init(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4662,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4686,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:4688,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4701,1
    - Dst: __hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:4711,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4712,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4717,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4622
    functionDepth: 2
    functionLinenumber: 4622
    functionLinenumberEnd: 4722
    functionName: hvm_generic_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_cycles
    - error
    - fprintf
    - __hvm_set_summary_handler
    linkageType: ''
    returnType: void
    signature: void hvm_generic_postprocess(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4748,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4752,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4759,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - ri
    - prefix
    argTypes:
    - struct record_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4724
    functionDepth: 0
    functionLinenumber: 4724
    functionLinenumberEnd: 4763
    functionName: hvm_generic_dump
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_generic_dump(struct record_info *ri, const char * prefix)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: hvm_generic_dump
      Src: /src/xen/tools/xentrace/xenalyze.c:4770,1
    - Dst: hvm_pf_inject_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4783,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4788,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:4789,1
    - Dst: hvm_inj_exc_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4794,1
    - Dst: hvm_inj_virq_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4797,1
    - Dst: hvm_intr_window_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4800,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4806,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4810,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4814,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:4815,1
    - Dst: hvm_generic_dump
      Src: /src/xen/tools/xentrace/xenalyze.c:4827,1
    - Dst: hvm_intr_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4837,1
    - Dst: hvm_pf_xen_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4841,1
    - Dst: hvm_io_assist_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4845,1
    - Dst: hvm_mmio_assist_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4851,1
    - Dst: hvm_cr_write_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4855,1
    - Dst: hvm_msr_write_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4858,1
    - Dst: hvm_msr_read_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4861,1
    - Dst: hvm_vmcall_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4864,1
    - Dst: hvm_npf_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4867,1
    - Dst: hvm_rdtsc_process
      Src: /src/xen/tools/xentrace/xenalyze.c:4870,1
    - Dst: hvm_generic_dump
      Src: /src/xen/tools/xentrace/xenalyze.c:4891,1
    - Dst: hvm_generic_postprocess_init
      Src: /src/xen/tools/xentrace/xenalyze.c:4893,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 113
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4765
    functionDepth: 5
    functionLinenumber: 4765
    functionLinenumberEnd: 4896
    functionName: hvm_handler_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_pf_inject_process
    - hvm_inj_virq_process
    - hvm_cr_write_process
    - hvm_mmio_assist_process
    - hvm_pf_xen_process
    - pcpu_string
    - hvm_msr_read_process
    - hvm_generic_postprocess_init
    - hvm_inj_exc_process
    - hvm_generic_dump
    - hvm_msr_write_process
    - hvm_intr_window_process
    - fprintf
    - printf
    - hvm_rdtsc_process
    - hvm_io_assist_process
    - hvm_intr_process
    - hvm_npf_process
    - hvm_vmcall_process
    linkageType: ''
    returnType: void
    signature: void hvm_handler_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4944,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4950,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4953,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:4957,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:4964,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4966
      start: 4904
    functionDepth: 0
    functionLinenumber: 4904
    functionLinenumberEnd: 4966
    functionName: domain_runstate
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    - printf
    linkageType: ''
    returnType: int
    signature: int domain_runstate(struct domain_data *d)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4977,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4979,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4983,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:4990,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4996,1
    - Dst: cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:4997,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:4999,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5006,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5009,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5025,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5060,1
    - Dst: domain_runstate
      Src: /src/xen/tools/xentrace/xenalyze.c:5062,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - v
    - new_runstate
    - tsc
    argTypes:
    - struct vcpu_data*
    - int
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 4968
    functionDepth: 1
    functionLinenumber: 4968
    functionLinenumberEnd: 5065
    functionName: runstate_update
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - cycles_to_time
    - update_cycles
    - abs_cycles_to_time
    - domain_runstate
    - printf
    linkageType: ''
    returnType: void
    signature: "void runstate_update(struct vcpu_data *v, int new_runstate,\n                                   tsc_t
      tsc)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: check_extra_words
      Src: /src/xen/tools/xentrace/xenalyze.c:5084,1
    - Dst: check_extra_words
      Src: /src/xen/tools/xentrace/xenalyze.c:5089,1
    - Dst: set_hvm_exit_reason_data
      Src: /src/xen/tools/xentrace/xenalyze.c:5096,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:5099,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5105,1
    - Dst: is_valid_addr64
      Src: /src/xen/tools/xentrace/xenalyze.c:5109,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5110,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5123,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5133,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5137,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5140,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5147,1
    - Dst: find_symbol
      Src: /src/xen/tools/xentrace/xenalyze.c:5151,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5153,1
    - Dst: find_symbol
      Src: /src/xen/tools/xentrace/xenalyze.c:5157,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5161,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 3
    argNames:
    - ri
    - h
    - v
    argTypes:
    - struct record_info*
    - struct hvm_data*
    - struct vcpu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5067
    functionDepth: 2
    functionLinenumber: 5067
    functionLinenumberEnd: 5175
    functionName: hvm_vmexit_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - set_hvm_exit_reason_data
    - error
    - update_cycles
    - fprintf
    - find_symbol
    - printf
    - scatterplot_vs_time
    - check_extra_words
    - bzero
    - is_valid_addr64
    linkageType: ''
    returnType: void
    signature: "void hvm_vmexit_process(struct record_info *ri, struct hvm_data *h,\n
      \                       struct vcpu_data *v)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5186,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5197,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5199,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5215,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5218,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5221,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5224,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5234,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - h
    - tsc
    argTypes:
    - struct hvm_data*
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5243
      start: 5177
    functionDepth: 2
    functionLinenumber: 5177
    functionLinenumberEnd: 5243
    functionName: hvm_close_vmexit
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_update_short_summary
    - abs_cycles_to_time
    - update_cycles
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_close_vmexit(struct hvm_data *h, tsc_t tsc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5249,1
    - Dst: hvm_vlapic_vmentry_cleanup
      Src: /src/xen/tools/xentrace/xenalyze.c:5257,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5260,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5272,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5285,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5292,1
    - Dst: hvm_close_vmexit
      Src: /src/xen/tools/xentrace/xenalyze.c:5296,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5298
      start: 5245
    functionDepth: 3
    functionLinenumber: 5245
    functionLinenumberEnd: 5298
    functionName: hvm_vmentry_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_vlapic_vmentry_cleanup
    - hvm_close_vmexit
    - printf
    linkageType: ''
    returnType: void
    signature: void hvm_vmentry_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:5306,1
    - Dst: vcpu_set_data_type
      Src: /src/xen/tools/xentrace/xenalyze.c:5310,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:5316,1
    - Dst: hvm_handler_process
      Src: /src/xen/tools/xentrace/xenalyze.c:5317,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:5320,1
    - Dst: warn_once
      Src: /src/xen/tools/xentrace/xenalyze.c:5321,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:5330,1
    - Dst: hvm_vmexit_process
      Src: /src/xen/tools/xentrace/xenalyze.c:5331,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:5334,1
    - Dst: hvm_vmentry_process
      Src: /src/xen/tools/xentrace/xenalyze.c:5335,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (p->current)
      pos:
        line_end: 5305
        line_start: 5305
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 5341
      start: 5300
    functionDepth: 6
    functionLinenumber: 5300
    functionLinenumberEnd: 5341
    functionName: hvm_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_handler_process
    - warn_once
    - UPDATE_VOLUME
    - hvm_vmexit_process
    - hvm_vmentry_process
    - fprintf
    - assert
    - vcpu_set_data_type
    linkageType: ''
    returnType: void
    signature: void hvm_process(struct pcpu_info *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5349,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:5354,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:5357,1
    - Dst: struct hvm_summary_handler_node*::handler
      Src: /src/xen/tools/xentrace/xenalyze.c:5363,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5368,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5372,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5376,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5377,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5381,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5387,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5391,1
    - Dst: PRINT_SUMMARY
      Src: /src/xen/tools/xentrace/xenalyze.c:5398,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5402,1
    - Dst: hvm_io_address_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5404,1
    - Dst: hvm_io_address_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5405,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5406
      start: 5343
    functionDepth: 2
    functionLinenumber: 5343
    functionLinenumberEnd: 5406
    functionName: hvm_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - struct hvm_summary_handler_node*::handler
    - PRINT_SUMMARY
    - hvm_io_address_summary
    - printf
    - print_cycle_summary
    linkageType: ''
    returnType: void
    signature: void hvm_summary(struct hvm_data *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _char
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5423
      start: 5419
    functionDepth: 0
    functionLinenumber: 5419
    functionLinenumberEnd: 5423
    functionName: FLAGSTRING
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAGSTRING(_name, _char)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5440,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5441,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5443,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5444,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5445,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5446,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5448,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5449,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5450,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5451,1
    - Dst: FLAGSTRING
      Src: /src/xen/tools/xentrace/xenalyze.c:5452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct pf_xen_extra*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5457
      start: 5424
    functionDepth: 1
    functionLinenumber: 5424
    functionLinenumberEnd: 5457
    functionName: flag_string
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - FLAGSTRING
    linkageType: ''
    returnType: char
    signature: char * flag_string(struct pf_xen_extra *e)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: update_eip
      Src: /src/xen/tools/xentrace/xenalyze.c:5465,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5469,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5470,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5472,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5474,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5476,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5478,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5480,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5482,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5484,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5486,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5488,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5491,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5496,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5498,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5502,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5509
      start: 5459
    functionDepth: 2
    functionLinenumber: 5459
    functionLinenumberEnd: 5509
    functionName: shadow_emulate_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_update_short_summary
    - update_cycles
    - update_eip
    - scatterplot_vs_time
    linkageType: ''
    returnType: void
    signature: void shadow_emulate_postprocess(struct hvm_data *h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5539,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5550,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5554,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5565,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5568,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5579,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5582,1
    - Dst: pf_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5592,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5595,1
    - Dst: flag_string
      Src: /src/xen/tools/xentrace/xenalyze.c:5599,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5602,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5603,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5604
      start: 5511
    functionDepth: 2
    functionLinenumber: 5511
    functionLinenumberEnd: 5604
    functionName: shadow_emulate_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - flag_string
    - error
    - pf_preprocess
    - hvm_set_postprocess
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_emulate_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5640,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5651,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5654,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5667,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5670,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5679,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5682,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - ri
    - o
    - h
    argTypes:
    - struct record_info*
    - struct shadow_emulate_other*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5689
      start: 5612
    functionDepth: 0
    functionLinenumber: 5612
    functionLinenumberEnd: 5689
    functionName: shadow_parse_other
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void shadow_parse_other(struct record_info *ri,\n                        struct
      shadow_emulate_other *o,\n                        struct hvm_data *h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5697,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5701,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5692
    functionDepth: 1
    functionLinenumber: 5692
    functionLinenumberEnd: 5707
    functionName: shadow_unsync_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_cycles
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shadow_unsync_postprocess(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shadow_parse_other
      Src: /src/xen/tools/xentrace/xenalyze.c:5715,1
    - Dst: pf_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5720,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5723,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5730,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5732
      start: 5710
    functionDepth: 2
    functionLinenumber: 5710
    functionLinenumberEnd: 5732
    functionName: shadow_unsync_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - shadow_parse_other
    - pf_preprocess
    - hvm_set_postprocess
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_unsync_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shadow_parse_other
      Src: /src/xen/tools/xentrace/xenalyze.c:5743,1
    - Dst: pf_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5749,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5752,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5758,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5760
      start: 5737
    functionDepth: 2
    functionLinenumber: 5737
    functionLinenumberEnd: 5760
    functionName: shadow_emulate_other_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - shadow_parse_other
    - pf_preprocess
    - hvm_set_postprocess
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_emulate_other_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5768,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5770,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5773,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5775,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5778,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5782,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5784,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5786,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5788,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5790,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5792,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5797,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5801,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5803,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5808,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5812,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:5814,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5817
      start: 5762
    functionDepth: 2
    functionLinenumber: 5762
    functionLinenumberEnd: 5817
    functionName: shadow_fixup_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_update_short_summary
    - scatterplot_vs_time
    - update_cycles
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shadow_fixup_postprocess(struct hvm_data *h)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5842,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5852,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5855,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5865,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5868,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5878,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5881,1
    - Dst: pf_preprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5890,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5895,1
    - Dst: flag_string
      Src: /src/xen/tools/xentrace/xenalyze.c:5900,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5902,1
    - Dst: flag_string
      Src: /src/xen/tools/xentrace/xenalyze.c:5905,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5908,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5909,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5819
    functionDepth: 2
    functionLinenumber: 5819
    functionLinenumberEnd: 5910
    functionName: shadow_fixup_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - flag_string
    - error
    - pf_preprocess
    - hvm_set_postprocess
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_fixup_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5918,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5921,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:5923,1
    - Dst: enumerate_mmio
      Src: /src/xen/tools/xentrace/xenalyze.c:5927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5912
    functionDepth: 2
    functionLinenumber: 5912
    functionLinenumberEnd: 5928
    functionName: shadow_mmio_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - enumerate_mmio
    - hvm_update_short_summary
    - update_cycles
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shadow_mmio_postprocess(struct hvm_data *h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5949,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5960,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5963,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5971,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:5974,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:5982,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:5987,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:5988,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5989
      start: 5930
    functionDepth: 1
    functionLinenumber: 5930
    functionLinenumberEnd: 5989
    functionName: shadow_mmio_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    - printf
    - hvm_set_postprocess
    linkageType: ''
    returnType: void
    signature: void shadow_mmio_process(struct record_info *ri, struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:5998,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6001,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:6003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5991
    functionDepth: 2
    functionLinenumber: 5991
    functionLinenumberEnd: 6005
    functionName: shadow_propagate_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_update_short_summary
    - update_cycles
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shadow_propagate_postprocess(struct hvm_data *h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6030,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6040,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6043,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6053,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6056,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6066,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6069,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6079,1
    - Dst: flag_string
      Src: /src/xen/tools/xentrace/xenalyze.c:6082,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:6084,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6085,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6086
      start: 6007
    functionDepth: 2
    functionLinenumber: 6007
    functionLinenumberEnd: 6086
    functionName: shadow_propagate_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - flag_string
    - error
    - hvm_set_postprocess
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_propagate_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6102,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6106,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6114,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - event
    - d
    - prefix
    - dump_header
    argTypes:
    - unsigned int
    - uint32_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6118
      start: 6088
    functionDepth: 0
    functionLinenumber: 6088
    functionLinenumberEnd: 6118
    functionName: shadow_fault_generic_dump
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - printf
    linkageType: ''
    returnType: void
    signature: "void shadow_fault_generic_dump(unsigned int event, uint32_t *d,\n
      \                              const char *prefix, const char * dump_header)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6125,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:6131,1
    - Dst: hvm_update_short_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:6134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6136
      start: 6120
    functionDepth: 2
    functionLinenumber: 6120
    functionLinenumberEnd: 6136
    functionName: shadow_fault_generic_postprocess
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - hvm_update_short_summary
    - update_cycles
    - fprintf
    linkageType: ''
    returnType: void
    signature: void shadow_fault_generic_postprocess(struct hvm_data *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bcopy
      Src: /src/xen/tools/xentrace/xenalyze.c:6144,1
    - Dst: shadow_fault_generic_dump
      Src: /src/xen/tools/xentrace/xenalyze.c:6147,1
    - Dst: hvm_set_postprocess
      Src: /src/xen/tools/xentrace/xenalyze.c:6152,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6154
      start: 6138
    functionDepth: 1
    functionLinenumber: 6138
    functionLinenumberEnd: 6154
    functionName: shadow_fault_generic_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - bcopy
    - hvm_set_postprocess
    - fprintf
    - shadow_fault_generic_dump
    linkageType: ''
    returnType: void
    signature: void shadow_fault_generic_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6169
      start: 6156
    functionDepth: 0
    functionLinenumber: 6156
    functionLinenumberEnd: 6169
    functionName: shadow_resync_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_resync_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6177,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6181,1
    - Dst: cr3_prealloc_unpin
      Src: /src/xen/tools/xentrace/xenalyze.c:6186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6171
    functionDepth: 1
    functionLinenumber: 6171
    functionLinenumberEnd: 6187
    functionName: shadow_prealloc_unpin_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    - printf
    - cr3_prealloc_unpin
    linkageType: ''
    returnType: void
    signature: void shadow_prealloc_unpin_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ri
    - h
    argTypes:
    - struct record_info*
    - struct hvm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6189
    functionDepth: 0
    functionLinenumber: 6189
    functionLinenumberEnd: 6199
    functionName: shadow_wrmap_bf_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void shadow_wrmap_bf_process(struct record_info *ri, struct hvm_data
      *h)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:6210,1
    - Dst: vcpu_set_data_type
      Src: /src/xen/tools/xentrace/xenalyze.c:6211,1
    - Dst: shadow_fault_generic_dump
      Src: /src/xen/tools/xentrace/xenalyze.c:6219,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6228,1
    - Dst: hvm_set_summary_handler
      Src: /src/xen/tools/xentrace/xenalyze.c:6237,1
    - Dst: shadow_propagate_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6245,1
    - Dst: shadow_emulate_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6248,1
    - Dst: shadow_fixup_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6251,1
    - Dst: shadow_mmio_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6255,1
    - Dst: shadow_emulate_other_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6260,1
    - Dst: shadow_unsync_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6264,1
    - Dst: shadow_resync_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6269,1
    - Dst: shadow_prealloc_unpin_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6272,1
    - Dst: shadow_wrmap_bf_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6275,1
    - Dst: shadow_fault_generic_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6279,1
    - Dst: warn_once
      Src: /src/xen/tools/xentrace/xenalyze.c:6281,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:6282,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (p->current)
      pos:
        line_end: 6209
        line_start: 6209
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 6286
      start: 6201
    functionDepth: 3
    functionLinenumber: 6201
    functionLinenumberEnd: 6286
    functionName: shadow_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - shadow_propagate_process
    - shadow_emulate_other_process
    - shadow_unsync_process
    - process_generic
    - shadow_fixup_process
    - warn_once
    - shadow_wrmap_bf_process
    - shadow_resync_process
    - shadow_prealloc_unpin_process
    - shadow_fault_generic_dump
    - hvm_set_summary_handler
    - fprintf
    - shadow_fault_generic_process
    - shadow_emulate_process
    - assert
    - vcpu_set_data_type
    - shadow_mmio_process
    linkageType: ''
    returnType: void
    signature: void shadow_process(struct pcpu_info *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6330,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ri
    - pv
    argTypes:
    - struct record_info*
    - struct pv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6337
      start: 6301
    functionDepth: 0
    functionLinenumber: 6301
    functionLinenumberEnd: 6337
    functionName: pv_hypercall_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_hypercall_process(struct record_info *ri, struct pv_data *pv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6376,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6379,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ri
    - pv
    argTypes:
    - struct record_info*
    - struct pv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6383
      start: 6339
    functionDepth: 0
    functionLinenumber: 6339
    functionLinenumberEnd: 6383
    functionName: pv_trap_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_trap_process(struct record_info *ri, struct pv_data *pv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6406,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6408,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6417,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6419,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6426,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6428,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - ri
    - pv
    argTypes:
    - struct record_info*
    - struct pv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6385
    functionDepth: 0
    functionLinenumber: 6385
    functionLinenumberEnd: 6438
    functionName: pv_ptwr_emulation_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_ptwr_emulation_process(struct record_info *ri, struct pv_data
      *pv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6444,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6448,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6452,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6454,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6456,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ri
    - pv
    argTypes:
    - struct record_info*
    - struct pv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6440
    functionDepth: 0
    functionLinenumber: 6440
    functionLinenumberEnd: 6461
    functionName: pv_generic_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_generic_process(struct record_info *ri, struct pv_data *pv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6469,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6480,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6487,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6496,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - pv
    argTypes:
    - struct pv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6502
      start: 6463
    functionDepth: 0
    functionLinenumber: 6463
    functionLinenumberEnd: 6502
    functionName: pv_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_summary(struct pv_data *pv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - strings
    - n
    - cmd
    argTypes:
    - char*[]
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6524
    functionDepth: 0
    functionLinenumber: 6524
    functionLinenumberEnd: 6533
    functionName: cmd_to_str
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *cmd_to_str(const char *strings[], size_t n, uint32_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6535
    functionDepth: 0
    functionLinenumber: 6535
    functionLinenumberEnd: 6539
    functionName: CMD_TO_STR
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_TO_STR(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xentrace/xenalyze.c:6549,1
    - Dst: pv_hypercall_arg_present
      Src: /src/xen/tools/xentrace/xenalyze.c:6552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ri
    - args
    argTypes:
    - struct record_info*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6566
      start: 6544
    functionDepth: 1
    functionLinenumber: 6544
    functionLinenumberEnd: 6566
    functionName: pv_hypercall_gather_args
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - memset
    - pv_hypercall_arg_present
    linkageType: ''
    returnType: void
    signature: void pv_hypercall_gather_args(const struct record_info *ri, uint64_t
      *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pv_hypercall_arg_present
      Src: /src/xen/tools/xentrace/xenalyze.c:6573,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6577,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6580,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ri
    argTypes:
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6589
      start: 6568
    functionDepth: 1
    functionLinenumber: 6568
    functionLinenumberEnd: 6589
    functionName: pv_hypercall_print_args
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pv_hypercall_arg_present
    - printf
    linkageType: ''
    returnType: void
    signature: void pv_hypercall_print_args(const struct record_info *ri)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pv_hypercall_op
      Src: /src/xen/tools/xentrace/xenalyze.c:6594,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6605,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6608,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6613,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6614,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6618,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6619,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6622,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6623,1
    - Dst: grant_table_op_to_str
      Src: /src/xen/tools/xentrace/xenalyze.c:6623,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6626,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6627,1
    - Dst: vcpu_op_to_str
      Src: /src/xen/tools/xentrace/xenalyze.c:6627,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6630,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6631,1
    - Dst: pv_hypercall_gather_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6634,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6635,1
    - Dst: sched_op_to_str
      Src: /src/xen/tools/xentrace/xenalyze.c:6635,1
    - Dst: pv_hypercall_print_args
      Src: /src/xen/tools/xentrace/xenalyze.c:6638,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6641,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - ri
    - pv
    - indent
    argTypes:
    - struct record_info*
    - struct pv_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6643
      start: 6591
    functionDepth: 2
    functionLinenumber: 6591
    functionLinenumberEnd: 6643
    functionName: pv_hypercall_v2_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - vcpu_op_to_str
    - pv_hypercall_print_args
    - pv_hypercall_op
    - sched_op_to_str
    - printf
    - grant_table_op_to_str
    - pv_hypercall_gather_args
    linkageType: ''
    returnType: void
    signature: "void pv_hypercall_v2_process(struct record_info *ri, struct pv_data
      *pv,\n                             const char *indent)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_set_data_type
      Src: /src/xen/tools/xentrace/xenalyze.c:6653,1
    - Dst: pv_hypercall_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6668,1
    - Dst: pv_trap_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6671,1
    - Dst: pv_ptwr_emulation_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6675,1
    - Dst: pv_hypercall_v2_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6678,1
    - Dst: pv_hypercall_v2_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6681,1
    - Dst: pv_generic_process
      Src: /src/xen/tools/xentrace/xenalyze.c:6684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6687
      start: 6645
    functionDepth: 3
    functionLinenumber: 6645
    functionLinenumberEnd: 6687
    functionName: pv_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pv_generic_process
    - pv_ptwr_emulation_process
    - pv_hypercall_process
    - pv_hypercall_v2_process
    - vcpu_set_data_type
    - pv_trap_process
    linkageType: ''
    returnType: void
    signature: void pv_process(struct pcpu_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:6694,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6696,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:6698,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6700,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6701,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:6704,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:6714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - d
    - vid
    argTypes:
    - struct domain_data*
    - int
    assertStmts:
    - condition: (d->vcpu[vid] == NULL)
      pos:
        line_end: 6693
        line_start: 6693
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - condition: (v == v->d->vcpu[v->vid])
      pos:
        line_end: 6713
        line_start: 6713
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 6720
      start: 6690
    functionDepth: 1
    functionLinenumber: 6690
    functionLinenumberEnd: 6720
    functionName: vcpu_create
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - fprintf
    - assert
    - bzero
    linkageType: ''
    returnType: struct vcpu_data
    signature: struct vcpu_data * vcpu_create(struct domain_data *d, int vid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:6725,1
    - Dst: interval_domain_value_check
      Src: /src/xen/tools/xentrace/xenalyze.c:6731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - did
    argTypes:
    - struct domain_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6732
      start: 6723
    functionDepth: 3
    functionLinenumber: 6723
    functionLinenumberEnd: 6732
    functionName: domain_init
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 2
    functionsReached:
    - interval_domain_value_check
    - bzero
    linkageType: ''
    returnType: void
    signature: void domain_init(struct domain_data *d, int did)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6738,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:6740,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6742,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6743,1
    - Dst: domain_init
      Src: /src/xen/tools/xentrace/xenalyze.c:6747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - did
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6750
      start: 6734
    functionDepth: 1
    functionLinenumber: 6734
    functionLinenumberEnd: 6750
    functionName: domain_create
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 12
    functionsReached:
    - domain_init
    - malloc
    - error
    - fprintf
    linkageType: ''
    returnType: struct domain_data
    signature: struct domain_data * domain_create(int did)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_create
      Src: /src/xen/tools/xentrace/xenalyze.c:6766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - did
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6773
      start: 6752
    functionDepth: 0
    functionLinenumber: 6752
    functionLinenumberEnd: 6773
    functionName: domain_find
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - domain_create
    linkageType: ''
    returnType: struct domain_data
    signature: struct domain_data * domain_find(int did)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_find
      Src: /src/xen/tools/xentrace/xenalyze.c:6780,1
    - Dst: vcpu_create
      Src: /src/xen/tools/xentrace/xenalyze.c:6785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - did
    - vid
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6788
      start: 6775
    functionDepth: 1
    functionLinenumber: 6775
    functionLinenumberEnd: 6788
    functionName: vcpu_find
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - vcpu_create
    - domain_find
    linkageType: ''
    returnType: struct vcpu_data
    signature: struct vcpu_data * vcpu_find(int did, int vid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:6795,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:6797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - tsc
    argTypes:
    - struct pcpu_info*
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6800
      start: 6790
    functionDepth: 1
    functionLinenumber: 6790
    functionLinenumberEnd: 6800
    functionName: pcpu_runstate_update
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - update_cycles
    linkageType: ''
    returnType: void
    signature: void pcpu_runstate_update(struct pcpu_info *p, tsc_t tsc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:6805,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6809,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6819,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6820,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6825,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6834,1
    - Dst: pcpu_runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:6841,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:6843,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:6844,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - p
    - prev
    - tsc
    - new_runstate
    argTypes:
    - struct pcpu_info*
    - struct vcpu_data*
    - tsc_t
    - int
    assertStmts:
    - condition: (prev == prev->d->vcpu[prev->vid])
      pos:
        line_end: 6804
        line_start: 6804
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 6845
      start: 6802
    functionDepth: 2
    functionLinenumber: 6802
    functionLinenumberEnd: 6845
    functionName: vcpu_prev_update
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - runstate_update
    - error
    - fprintf
    - pcpu_runstate_update
    - assert
    linkageType: ''
    returnType: void
    signature: "void vcpu_prev_update(struct pcpu_info *p, struct vcpu_data *prev,\n
      \                     tsc_t tsc, int new_runstate)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:6849,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6856,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:6858,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6863,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6868,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6879,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:6889,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:6890,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:6902,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:6910,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6913,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:6917,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:6925,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - p
    - next
    - tsc
    argTypes:
    - struct pcpu_info*
    - struct vcpu_data*
    - tsc_t
    assertStmts:
    - condition: (next == next->d->vcpu[next->vid])
      pos:
        line_end: 6848
        line_start: 6848
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 6928
      start: 6847
    functionDepth: 2
    functionLinenumber: 6847
    functionLinenumberEnd: 6928
    functionName: vcpu_next_update
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - runstate_update
    - error
    - update_cycles
    - abs_cycles_to_time
    - fprintf
    - printf
    - assert
    linkageType: ''
    returnType: void
    signature: void vcpu_next_update(struct pcpu_info *p, struct vcpu_data *next,
      tsc_t tsc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6959,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6960,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6966,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6967,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6971,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:6974,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:6978,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:6993,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7000,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7008,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7015,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:7018,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 5
    argNames:
    - p
    - v
    - old_runstate
    - new_runstate
    - ri_tsc
    argTypes:
    - struct pcpu_info*
    - struct vcpu_data*
    - int
    - int
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7020
      start: 6934
    functionDepth: 2
    functionLinenumber: 6934
    functionLinenumberEnd: 7020
    functionName: vcpu_start
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - runstate_update
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void vcpu_start(struct pcpu_info *p, struct vcpu_data *v,\n                int
      old_runstate, int new_runstate, tsc_t ri_tsc)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7063,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7065,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7073,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7081,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7098,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7107,1
    - Dst: vcpu_find
      Src: /src/xen/tools/xentrace/xenalyze.c:7112,1
    - Dst: vcpu_start
      Src: /src/xen/tools/xentrace/xenalyze.c:7123,1
    - Dst: hvm_close_vmexit
      Src: /src/xen/tools/xentrace/xenalyze.c:7132,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7143,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7155,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7174,1
    - Dst: scatterplot_vs_time
      Src: /src/xen/tools/xentrace/xenalyze.c:7182,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:7187,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:7189,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:7192,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7214,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7224,1
    - Dst: cpumask_union
      Src: /src/xen/tools/xentrace/xenalyze.c:7236,1
    - Dst: cpumask_set
      Src: /src/xen/tools/xentrace/xenalyze.c:7237,1
    - Dst: cpumask_isset
      Src: /src/xen/tools/xentrace/xenalyze.c:7239,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7242,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7243,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7248,1
    - Dst: cpumask_init
      Src: /src/xen/tools/xentrace/xenalyze.c:7254,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7262,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7270,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7282,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7287,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7288,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7298,1
    - Dst: vcpu_prev_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7301,1
    - Dst: vcpu_next_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7302,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7306,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7308,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7310,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7313,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7316,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7336,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:7338,1
    - Dst: vcpu_prev_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7341,1
    - Dst: vcpu_prev_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7343,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7348,1
    - Dst: lose_vcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:7350,1
    - Dst: vcpu_next_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7360,1
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7364,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 183
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7369
      start: 7022
    functionDepth: 3
    functionLinenumber: 7022
    functionLinenumberEnd: 7369
    functionName: sched_runstate_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - vcpu_prev_update
    - runstate_update
    - vcpu_next_update
    - error
    - update_cycles
    - lose_vcpu
    - vcpu_start
    - fprintf
    - vcpu_find
    - printf
    - scatterplot_vs_time
    - cpumask_set
    - cpumask_isset
    - cpumask_union
    - cpumask_init
    - hvm_close_vmexit
    linkageType: ''
    returnType: void
    signature: void sched_runstate_process(struct pcpu_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ri
    argTypes:
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7380
      start: 7371
    functionDepth: 0
    functionLinenumber: 7371
    functionLinenumberEnd: 7380
    functionName: dump_sched_switch
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_sched_switch(struct record_info *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dump_sched_switch
      Src: /src/xen/tools/xentrace/xenalyze.c:7391,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7395,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7402,1
    - Dst: vcpu_find
      Src: /src/xen/tools/xentrace/xenalyze.c:7407,1
    - Dst: vcpu_find
      Src: /src/xen/tools/xentrace/xenalyze.c:7408,1
    - Dst: vcpu_prev_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7410,1
    - Dst: vcpu_next_update
      Src: /src/xen/tools/xentrace/xenalyze.c:7412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7413
      start: 7382
    functionDepth: 3
    functionLinenumber: 7382
    functionLinenumberEnd: 7413
    functionName: sched_switch_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - vcpu_next_update
    - fprintf
    - vcpu_find
    - dump_sched_switch
    - vcpu_prev_update
    linkageType: ''
    returnType: void
    signature: void sched_switch_process(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_create
      Src: /src/xen/tools/xentrace/xenalyze.c:7420,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:7422,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:7430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (v == v->d->vcpu[v->vid])
      pos:
        line_end: 7421
        line_start: 7421
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 7431
      start: 7415
    functionDepth: 1
    functionLinenumber: 7415
    functionLinenumberEnd: 7431
    functionName: sched_default_vcpu_activate
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - vcpu_create
    - assert
    linkageType: ''
    returnType: void
    signature: void sched_default_vcpu_activate(struct pcpu_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_init
      Src: /src/xen/tools/xentrace/xenalyze.c:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7433
    functionDepth: 0
    functionLinenumber: 7433
    functionLinenumberEnd: 7438
    functionName: sched_default_domain_init
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - domain_init
    linkageType: ''
    returnType: void
    signature: void sched_default_domain_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - runstate_cycles
    argTypes:
    - tsc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7445
      start: 7440
    functionDepth: 0
    functionLinenumber: 7440
    functionLinenumberEnd: 7445
    functionName: runstate_clear
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void runstate_clear(tsc_t * runstate_cycles)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:7453,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - runstate_cycles
    argTypes:
    - tsc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7457
      start: 7447
    functionDepth: 1
    functionLinenumber: 7447
    functionLinenumberEnd: 7457
    functionName: runstate_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - cycles_to_time
    - printf
    linkageType: ''
    returnType: void
    signature: void runstate_summary(tsc_t * runstate_cycles)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:7467,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:7468,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7471,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7473,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:7474,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7481,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:7482,1
    - Dst: print_cpu_affinity
      Src: /src/xen/tools/xentrace/xenalyze.c:7486,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7489,1
    - Dst: print_cpu_affinity
      Src: /src/xen/tools/xentrace/xenalyze.c:7490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7492
      start: 7459
    functionDepth: 2
    functionLinenumber: 7459
    functionLinenumberEnd: 7492
    functionName: sched_summary_vcpu
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - update_cycles
    - printf
    - print_cycle_summary
    - print_cpu_affinity
    linkageType: ''
    returnType: void
    signature: void sched_summary_vcpu(struct vcpu_data *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7499,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:7501,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:7502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7494
    functionDepth: 2
    functionLinenumber: 7494
    functionLinenumberEnd: 7504
    functionName: sched_summary_domain
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - print_cycle_summary
    - printf
    linkageType: ''
    returnType: void
    signature: void sched_summary_domain(struct domain_data *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ri
    - action
    argTypes:
    - struct record_info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7513
      start: 7506
    functionDepth: 0
    functionLinenumber: 7506
    functionLinenumberEnd: 7513
    functionName: dump_sched_vcpu_action
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_sched_vcpu_action(struct record_info *ri, const char *action)
  - BBCount: 131
    BranchProfiles: []
    Callsites:
    - Dst: sched_switch_process
      Src: /src/xen/tools/xentrace/xenalyze.c:7523,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:7526,1
    - Dst: sched_runstate_process
      Src: /src/xen/tools/xentrace/xenalyze.c:7533,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7544,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7553,1
    - Dst: dump_sched_vcpu_action
      Src: /src/xen/tools/xentrace/xenalyze.c:7558,1
    - Dst: dump_sched_vcpu_action
      Src: /src/xen/tools/xentrace/xenalyze.c:7562,1
    - Dst: dump_sched_vcpu_action
      Src: /src/xen/tools/xentrace/xenalyze.c:7566,1
    - Dst: dump_sched_vcpu_action
      Src: /src/xen/tools/xentrace/xenalyze.c:7570,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7579,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7590,1
    - Dst: dump_sched_switch
      Src: /src/xen/tools/xentrace/xenalyze.c:7595,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7603,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7616,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7619,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7622,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7624,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7635,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7639,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7641,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:7650,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7657,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7659,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7661,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7662,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7668,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7670,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7676,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7682,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7686,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7692,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7696,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7702,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7706,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7712,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7716,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7722,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7726,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7732,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7738,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7745,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7750,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7756,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7762,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7763,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7765,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7771,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7775,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7782,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7785,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7786,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7789,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7796,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7801,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7807,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7811,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7818,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7824,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7826,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7828,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7830,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7832,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7839,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7843,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7854,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7860,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7871,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7878,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7885,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7891,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7897,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7901,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7908,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7912,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7919,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7924,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7931,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7937,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7945,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7949,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7957,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7960,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7962,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7965,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7972,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7980,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7987,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:7992,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:7998,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8003,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8009,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8013,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8020,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8025,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8033,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8038,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8045,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8050,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8052,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8054,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8060,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8067,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8074,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8078,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8085,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8089,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8096,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8100,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8107,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8112,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8119,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8123,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8125,1
    - Dst: TRC_SCHED_CLASS_EVT
      Src: /src/xen/tools/xentrace/xenalyze.c:8128,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8130,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8133,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:8136,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8137,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 319
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8139
      start: 7515
    functionDepth: 4
    functionLinenumber: 7515
    functionLinenumberEnd: 8139
    functionName: sched_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - dump_sched_vcpu_action
    - process_generic
    - TRC_SCHED_CLASS_EVT
    - UPDATE_VOLUME
    - sched_runstate_process
    - printf
    - dump_sched_switch
    - sched_switch_process
    linkageType: ''
    returnType: void
    signature: void sched_process(struct pcpu_info *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8145,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8147,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8150,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8154,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8157,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8161,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8162,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8166,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8169,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8173,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8176,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8181,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8192
      start: 8142
    functionDepth: 0
    functionLinenumber: 8142
    functionLinenumberEnd: 8192
    functionName: mem_summary_domain
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mem_summary_domain(struct domain_data *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - order
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8206
      start: 8194
    functionDepth: 0
    functionLinenumber: 8194
    functionLinenumberEnd: 8206
    functionName: p2m_canonical_order
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int p2m_canonical_order(int order)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8235,1
    - Dst: p2m_canonical_order
      Src: /src/xen/tools/xentrace/xenalyze.c:8251,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8258
      start: 8208
    functionDepth: 1
    functionLinenumber: 8208
    functionLinenumberEnd: 8258
    functionName: mem_pod_zero_reclaim_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    - p2m_canonical_order
    linkageType: ''
    returnType: void
    signature: void mem_pod_zero_reclaim_process(struct pcpu_info *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8271,1
    - Dst: p2m_canonical_order
      Src: /src/xen/tools/xentrace/xenalyze.c:8286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8291
      start: 8260
    functionDepth: 1
    functionLinenumber: 8260
    functionLinenumberEnd: 8291
    functionName: mem_pod_populate_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    - p2m_canonical_order
    linkageType: ''
    returnType: void
    signature: void mem_pod_populate_process(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8308
      start: 8293
    functionDepth: 0
    functionLinenumber: 8293
    functionLinenumberEnd: 8308
    functionName: mem_pod_superpage_splinter_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mem_pod_superpage_splinter_process(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8323
      start: 8310
    functionDepth: 0
    functionLinenumber: 8310
    functionLinenumberEnd: 8323
    functionName: mem_page_grant
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mem_page_grant(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8342
      start: 8324
    functionDepth: 0
    functionLinenumber: 8324
    functionLinenumberEnd: 8342
    functionName: mem_set_p2m_entry_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mem_set_p2m_entry_process(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8360
      start: 8344
    functionDepth: 0
    functionLinenumber: 8344
    functionLinenumberEnd: 8360
    functionName: mem_decrease_reservation_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mem_decrease_reservation_process(struct pcpu_info *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mem_page_grant
      Src: /src/xen/tools/xentrace/xenalyze.c:8375,1
    - Dst: mem_set_p2m_entry_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8378,1
    - Dst: mem_decrease_reservation_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8381,1
    - Dst: mem_pod_populate_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8384,1
    - Dst: mem_pod_zero_reclaim_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8387,1
    - Dst: mem_pod_superpage_splinter_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8390,1
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8394,1
    - Dst: domain_find
      Src: /src/xen/tools/xentrace/xenalyze.c:8405,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8414
      start: 8362
    functionDepth: 2
    functionLinenumber: 8362
    functionLinenumberEnd: 8414
    functionName: mem_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - mem_set_p2m_entry_process
    - mem_pod_superpage_splinter_process
    - mem_pod_populate_process
    - dump_generic
    - mem_page_grant
    - domain_find
    - mem_decrease_reservation_process
    - mem_pod_zero_reclaim_process
    linkageType: ''
    returnType: void
    signature: void mem_process(struct pcpu_info *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8426,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8433,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:8439,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8444,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8449,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:8452,1
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8456,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8461
      start: 8419
    functionDepth: 1
    functionLinenumber: 8419
    functionLinenumberEnd: 8461
    functionName: pm_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - dump_generic
    - printf
    linkageType: ''
    returnType: void
    signature: void pm_process(struct pcpu_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8501,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:8503,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8505,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8506,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/xenalyze.c:8509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - bus
    - devfn
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8519
      start: 8486
    functionDepth: 1
    functionLinenumber: 8486
    functionLinenumberEnd: 8519
    functionName: pdev_find
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - malloc
    - error
    - fprintf
    - bzero
    linkageType: ''
    returnType: struct pci_dev
    signature: struct pci_dev * pdev_find(uint8_t bus, uint8_t devfn)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8534,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8554,1
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:8562,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8564,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8579,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8593,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8601,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8616,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8632,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8642,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8650,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8664,1
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8674,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8678
      start: 8521
    functionDepth: 1
    functionLinenumber: 8521
    functionLinenumberEnd: 8678
    functionName: irq_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - abs_cycles_to_time
    - dump_generic
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void irq_process(struct pcpu_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pm_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8689,1
    - Dst: irq_process
      Src: /src/xen/tools/xentrace/xenalyze.c:8692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8696
      start: 8682
    functionDepth: 2
    functionLinenumber: 8682
    functionLinenumberEnd: 8696
    functionName: hw_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - irq_process
    - pm_process
    linkageType: ''
    returnType: void
    signature: void hw_process(struct pcpu_info *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8711,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8719
      start: 8699
    functionDepth: 1
    functionLinenumber: 8699
    functionLinenumberEnd: 8719
    functionName: dom0_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - process_generic
    - printf
    linkageType: ''
    returnType: void
    signature: void dom0_process(struct pcpu_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8726,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8735,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - f
    - ri
    argTypes:
    - FILE*
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8739
      start: 8722
    functionDepth: 0
    functionLinenumber: 8722
    functionLinenumberEnd: 8739
    functionName: dump_generic
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_generic(FILE * f, struct record_info *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8746,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8749,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8754,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8756,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8759,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8762,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - ri
    argTypes:
    - char*
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8766
      start: 8741
    functionDepth: 0
    functionLinenumber: 8741
    functionLinenumberEnd: 8766
    functionName: dump_raw
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_raw(const char * s, struct record_info *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8773,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:8774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - l
    - ri
    argTypes:
    - enum error_level
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8776
      start: 8768
    functionDepth: 1
    functionLinenumber: 8768
    functionLinenumberEnd: 8776
    functionName: error
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 152
    functionsReached:
    - exit
    - dump_generic
    linkageType: ''
    returnType: void
    signature: void error(enum error_level l, struct record_info *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8790,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8794,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - ri
    - expected_size
    - record
    argTypes:
    - struct record_info*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8802
      start: 8778
    functionDepth: 0
    functionLinenumber: 8778
    functionLinenumberEnd: 8802
    functionName: check_extra_words
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 3
    functionsReached:
    - error
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int check_extra_words(struct record_info *ri,\n                       int
      expected_size,\n                       const char *record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8806,1
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:8809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ri
    argTypes:
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8811
      start: 8804
    functionDepth: 1
    functionLinenumber: 8804
    functionLinenumberEnd: 8811
    functionName: process_generic
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 3
    functionsReached:
    - error
    - dump_generic
    linkageType: ''
    returnType: void
    signature: void process_generic(struct record_info *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_hvm_data
      Src: /src/xen/tools/xentrace/xenalyze.c:8821,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:8828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - type
    argTypes:
    - struct vcpu_data*
    - int
    assertStmts:
    - condition: (v->data_type == type)
      pos:
        line_end: 8827
        line_start: 8827
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 8830
      start: 8813
    functionDepth: 2
    functionLinenumber: 8813
    functionLinenumberEnd: 8830
    functionName: vcpu_set_data_type
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 3
    functionsReached:
    - init_hvm_data
    - assert
    linkageType: ''
    returnType: int
    signature: int vcpu_set_data_type(struct vcpu_data *v, int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:8837,1
    - Dst: hvm_vlapic_clear
      Src: /src/xen/tools/xentrace/xenalyze.c:8838,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8843,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - v
    - tsc
    argTypes:
    - struct vcpu_data*
    - tsc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8856
      start: 8833
    functionDepth: 2
    functionLinenumber: 8833
    functionLinenumberEnd: 8856
    functionName: lose_vcpu
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - runstate_update
    - hvm_vlapic_clear
    - printf
    linkageType: ''
    returnType: void
    signature: void lose_vcpu(struct vcpu_data *v, tsc_t tsc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8873,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8875,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8884,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8890,1
    - Dst: volume_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:8898,1
    - Dst: hvm_vlapic_clear
      Src: /src/xen/tools/xentrace/xenalyze.c:8903,1
    - Dst: cr3_switch
      Src: /src/xen/tools/xentrace/xenalyze.c:8906,1
    - Dst: vcpu_prev_update
      Src: /src/xen/tools/xentrace/xenalyze.c:8915,1
    - Dst: vcpu_next_update
      Src: /src/xen/tools/xentrace/xenalyze.c:8918,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8933,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8935,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8938,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:8943,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8957,1
    - Dst: lose_vcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:8959,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8968
      start: 8864
    functionDepth: 4
    functionLinenumber: 8864
    functionLinenumberEnd: 8968
    functionName: process_lost_records
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - vcpu_next_update
    - error
    - volume_summary
    - lose_vcpu
    - fprintf
    - hvm_vlapic_clear
    - printf
    - cr3_switch
    - vcpu_prev_update
    linkageType: ''
    returnType: void
    signature: void process_lost_records(struct pcpu_info *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:8977,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:8979,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8988,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:8989,1
    - Dst: update_cycles
      Src: /src/xen/tools/xentrace/xenalyze.c:8991,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:8998,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:8999,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9003,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9006,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9011,1
    - Dst: vcpu_next_update
      Src: /src/xen/tools/xentrace/xenalyze.c:9013,1
    - Dst: vcpu_find
      Src: /src/xen/tools/xentrace/xenalyze.c:9014,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9021,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:9022,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:9027,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9030,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9032,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9035
      start: 8971
    functionDepth: 3
    functionLinenumber: 8971
    functionLinenumberEnd: 9035
    functionName: process_lost_records_end
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pcpu_string_draw
    - vcpu_next_update
    - error
    - update_cycles
    - pcpu_string
    - fprintf
    - vcpu_find
    - printf
    linkageType: ''
    returnType: void
    signature: void process_lost_records_end(struct pcpu_info *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: process_lost_records
      Src: /src/xen/tools/xentrace/xenalyze.c:9044,1
    - Dst: process_lost_records_end
      Src: /src/xen/tools/xentrace/xenalyze.c:9047,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:9050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9052
      start: 9037
    functionDepth: 5
    functionLinenumber: 9037
    functionLinenumberEnd: 9052
    functionName: base_process
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - process_lost_records_end
    - process_lost_records
    - process_generic
    linkageType: ''
    returnType: void
    signature: void base_process(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9070,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9082
      start: 9066
    functionDepth: 0
    functionLinenumber: 9066
    functionLinenumberEnd: 9082
    functionName: activate_early_eof
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void activate_early_eof(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __read_record
      Src: /src/xen/tools/xentrace/xenalyze.c:9089,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9097,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9099,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9106,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9109,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9115,1
    - Dst: __fill_in_record_info
      Src: /src/xen/tools/xentrace/xenalyze.c:9122,1
    - Dst: record_order_insert
      Src: /src/xen/tools/xentrace/xenalyze.c:9127,1
    - Dst: sched_default_vcpu_activate
      Src: /src/xen/tools/xentrace/xenalyze.c:9131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - offset
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9140
      start: 9084
    functionDepth: 2
    functionLinenumber: 9084
    functionLinenumberEnd: 9140
    functionName: scan_for_new_pcpu
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - sched_default_vcpu_activate
    - __read_record
    - record_order_insert
    - fprintf
    - __fill_in_record_info
    linkageType: ''
    returnType: off_t
    signature: off_t scan_for_new_pcpu(off_t offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcpu_runstate_update
      Src: /src/xen/tools/xentrace/xenalyze.c:9172,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9174,1
    - Dst: lose_vcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:9177,1
    - Dst: record_order_remove
      Src: /src/xen/tools/xentrace/xenalyze.c:9181,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9198
      start: 9168
    functionDepth: 3
    functionLinenumber: 9168
    functionLinenumberEnd: 9198
    functionName: deactivate_pcpu
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - record_order_remove
    - pcpu_runstate_update
    - fprintf
    - lose_vcpu
    linkageType: ''
    returnType: void
    signature: void deactivate_pcpu(struct pcpu_info *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9217,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9219,1
    - Dst: interval_callback
      Src: /src/xen/tools/xentrace/xenalyze.c:9222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - order_tsc
    - ri
    argTypes:
    - tsc_t
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9235
      start: 9201
    functionDepth: 5
    functionLinenumber: 9201
    functionLinenumberEnd: 9235
    functionName: process_record_tsc
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_callback
    - error
    - fprintf
    linkageType: ''
    returnType: void
    signature: void process_record_tsc(tsc_t order_tsc, struct record_info *ri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abs_cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:9246,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9250,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9256,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9263,1
    - Dst: pcpu_string
      Src: /src/xen/tools/xentrace/xenalyze.c:9263,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9269,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - ri
    - p
    argTypes:
    - struct record_info*
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9279
      start: 9238
    functionDepth: 1
    functionLinenumber: 9238
    functionLinenumberEnd: 9279
    functionName: create_dump_header
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - abs_cycles_to_time
    - pcpu_string
    linkageType: ''
    returnType: void
    signature: void create_dump_header(struct record_info *ri, struct pcpu_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9295,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ri
    argTypes:
    - struct record_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9304
      start: 9281
    functionDepth: 0
    functionLinenumber: 9281
    functionLinenumberEnd: 9304
    functionName: find_toplevel_event
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - fprintf
    linkageType: ''
    returnType: int
    signature: int find_toplevel_event(struct record_info *ri)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9312,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9319,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9326,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9329,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9355,1
    - Dst: record_order_insert
      Src: /src/xen/tools/xentrace/xenalyze.c:9358,1
    - Dst: sched_default_vcpu_activate
      Src: /src/xen/tools/xentrace/xenalyze.c:9360,1
    - Dst: activate_early_eof
      Src: /src/xen/tools/xentrace/xenalyze.c:9372,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9374,1
    - Dst: deactivate_pcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:9376,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9393,1
    - Dst: cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:9400,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9401,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9404,1
    - Dst: cycles_to_time
      Src: /src/xen/tools/xentrace/xenalyze.c:9409,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9410,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9416,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9418,1
    - Dst: runstate_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:9419,1
    - Dst: volume_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:9420,1
    - Dst: runstate_clear
      Src: /src/xen/tools/xentrace/xenalyze.c:9425,1
    - Dst: volume_clear
      Src: /src/xen/tools/xentrace/xenalyze.c:9426,1
    - Dst: activate_early_eof
      Src: /src/xen/tools/xentrace/xenalyze.c:9433,1
    - Dst: scan_for_new_pcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:9435,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9438
      start: 9307
    functionDepth: 4
    functionLinenumber: 9307
    functionLinenumberEnd: 9438
    functionName: process_cpu_change
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - cycles_to_time
    - activate_early_eof
    - runstate_summary
    - scan_for_new_pcpu
    - error
    - volume_summary
    - sched_default_vcpu_activate
    - deactivate_pcpu
    - runstate_clear
    - record_order_insert
    - fprintf
    - volume_clear
    - printf
    linkageType: ''
    returnType: void
    signature: void process_cpu_change(struct pcpu_info *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9463,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9470,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9473,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9481,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9490,1
    - Dst: dump_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:9501,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - toplevel
    - ri
    - p
    argTypes:
    - int
    - struct record_info*
    - struct pcpu_info*
    assertStmts:
    - condition: (mask.p_current)
      pos:
        line_end: 9480
        line_start: 9480
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - condition: (mask.p_current)
      pos:
        line_end: 9469
        line_start: 9469
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9503
      start: 9454
    functionDepth: 1
    functionLinenumber: 9454
    functionLinenumberEnd: 9503
    functionName: toplevel_assert_check
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - dump_generic
    - assert
    - fprintf
    linkageType: ''
    returnType: int
    signature: int toplevel_assert_check(int toplevel, struct record_info *ri, struct
      pcpu_info *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: process_cpu_change
      Src: /src/xen/tools/xentrace/xenalyze.c:9511,1
    - Dst: dump_raw
      Src: /src/xen/tools/xentrace/xenalyze.c:9521,1
    - Dst: process_record_tsc
      Src: /src/xen/tools/xentrace/xenalyze.c:9523,1
    - Dst: create_dump_header
      Src: /src/xen/tools/xentrace/xenalyze.c:9526,1
    - Dst: find_toplevel_event
      Src: /src/xen/tools/xentrace/xenalyze.c:9529,1
    - Dst: toplevel_assert_check
      Src: /src/xen/tools/xentrace/xenalyze.c:9534,1
    - Dst: base_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9538,1
    - Dst: sched_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9541,1
    - Dst: hvm_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9544,1
    - Dst: shadow_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9547,1
    - Dst: pv_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9550,1
    - Dst: mem_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9553,1
    - Dst: hw_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9556,1
    - Dst: dom0_process
      Src: /src/xen/tools/xentrace/xenalyze.c:9559,1
    - Dst: process_generic
      Src: /src/xen/tools/xentrace/xenalyze.c:9562,1
    - Dst: UPDATE_VOLUME
      Src: /src/xen/tools/xentrace/xenalyze.c:9566,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9575
      start: 9505
    functionDepth: 7
    functionLinenumber: 9505
    functionLinenumberEnd: 9575
    functionName: process_record
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 4
    functionsReached:
    - process_generic
    - process_record_tsc
    - mem_process
    - sched_process
    - shadow_process
    - process_cpu_change
    - dump_raw
    - find_toplevel_event
    - toplevel_assert_check
    - dom0_process
    - hw_process
    - UPDATE_VOLUME
    - create_dump_header
    - pv_process
    - hvm_process
    - base_process
    linkageType: ''
    returnType: void
    signature: void process_record(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct trace_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9588
      start: 9577
    functionDepth: 0
    functionLinenumber: 9577
    functionLinenumberEnd: 9588
    functionName: get_rec_size
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t get_rec_size(struct trace_record *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenalyze.c:9593,1
    - Dst: dup2
      Src: /src/xen/tools/xentrace/xenalyze.c:9594,1
    - Dst: execlp
      Src: /src/xen/tools/xentrace/xenalyze.c:9596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9598
      start: 9592
    functionDepth: 0
    functionLinenumber: 9592
    functionLinenumberEnd: 9598
    functionName: progress_child_exec
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - dup2
    - execlp
    - fclose
    linkageType: ''
    returnType: void
    signature: void progress_child_exec(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/xen/tools/xentrace/xenalyze.c:9603,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:9604,1
    - Dst: fork
      Src: /src/xen/tools/xentrace/xenalyze.c:9606,1
    - Dst: progress_child_exec
      Src: /src/xen/tools/xentrace/xenalyze.c:9607,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9609,1
    - Dst: strerror
      Src: /src/xen/tools/xentrace/xenalyze.c:9610,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:9612,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9614,1
    - Dst: strerror
      Src: /src/xen/tools/xentrace/xenalyze.c:9615,1
    - Dst: fdopen
      Src: /src/xen/tools/xentrace/xenalyze.c:9619,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9620,1
    - Dst: strerror
      Src: /src/xen/tools/xentrace/xenalyze.c:9621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9625
      start: 9600
    functionDepth: 1
    functionLinenumber: 9600
    functionLinenumberEnd: 9625
    functionName: progress_init
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - pipe
    - fprintf
    - strerror
    - progress_child_exec
    - fdopen
    - exit
    - fork
    - perror
    linkageType: ''
    returnType: void
    signature: void progress_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9632,1
    - Dst: fflush
      Src: /src/xen/tools/xentrace/xenalyze.c:9633,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - offset
    argTypes:
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9644
      start: 9627
    functionDepth: 0
    functionLinenumber: 9627
    functionLinenumberEnd: 9644
    functionName: progress_update
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void progress_update(off_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9649,1
    - Dst: fflush
      Src: /src/xen/tools/xentrace/xenalyze.c:9650,1
    - Dst: fclose
      Src: /src/xen/tools/xentrace/xenalyze.c:9651,1
    - Dst: wait
      Src: /src/xen/tools/xentrace/xenalyze.c:9653,1
    - Dst: fork
      Src: /src/xen/tools/xentrace/xenalyze.c:9655,1
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9659,1
    - Dst: execlp
      Src: /src/xen/tools/xentrace/xenalyze.c:9661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9663
      start: 9646
    functionDepth: 1
    functionLinenumber: 9646
    functionLinenumberEnd: 9663
    functionName: progress_finish
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - snprintf
    - execlp
    - fclose
    - fflush
    - fprintf
    - wait
    - fork
    linkageType: ''
    returnType: void
    signature: void progress_finish(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mread64
      Src: /src/xen/tools/xentrace/xenalyze.c:9669,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:9673,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9674,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9681,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9683,1
    - Dst: get_rec_size
      Src: /src/xen/tools/xentrace/xenalyze.c:9686,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - rec
    - offset
    argTypes:
    - struct trace_record*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9696
      start: 9665
    functionDepth: 1
    functionLinenumber: 9665
    functionLinenumberEnd: 9696
    functionName: __read_record
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - get_rec_size
    - error
    - mread64
    - fprintf
    - perror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t __read_record(struct trace_record *rec, off_t offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9736,1
    - Dst: dump_raw
      Src: /src/xen/tools/xentrace/xenalyze.c:9738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9745
      start: 9698
    functionDepth: 1
    functionLinenumber: 9698
    functionLinenumberEnd: 9745
    functionName: __fill_in_record_info
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - snprintf
    - dump_raw
    linkageType: ''
    returnType: void
    signature: void __fill_in_record_info(struct pcpu_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __read_record
      Src: /src/xen/tools/xentrace/xenalyze.c:9754,1
    - Dst: __fill_in_record_info
      Src: /src/xen/tools/xentrace/xenalyze.c:9757,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9761,1
    - Dst: deactivate_pcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:9763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9767
      start: 9747
    functionDepth: 4
    functionLinenumber: 9747
    functionLinenumberEnd: 9767
    functionName: read_record
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 6
    functionsReached:
    - deactivate_pcpu
    - __fill_in_record_info
    - fprintf
    - __read_record
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t read_record(struct pcpu_info * p)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pcpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9803
      start: 9783
    functionDepth: 0
    functionLinenumber: 9783
    functionLinenumberEnd: 9803
    functionName: pcpu_string_draw
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pcpu_string_draw(struct pcpu_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9810,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9811,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:9814,1
    - Dst: pcpu_string_draw
      Src: /src/xen/tools/xentrace/xenalyze.c:9820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pcpu
    argTypes:
    - int
    assertStmts:
    - condition: (P.max_active_pcpu < MAX_CPUS)
      pos:
        line_end: 9809
        line_start: 9809
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - condition: (pcpu <= P.max_active_pcpu)
      pos:
        line_end: 9810
        line_start: 9810
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9828
      start: 9805
    functionDepth: 1
    functionLinenumber: 9805
    functionLinenumberEnd: 9828
    functionName: pcpu_string
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 5
    functionsReached:
    - pcpu_string_draw
    - assert
    linkageType: ''
    returnType: char
    signature: char * pcpu_string(int pcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - last
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (record_order[i])
      pos:
        line_end: 9855
        line_start: 9855
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9870
      start: 9847
    functionDepth: 0
    functionLinenumber: 9847
    functionLinenumberEnd: 9870
    functionName: record_order_bubble
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void record_order_bubble(struct pcpu_info *last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9879,1
    - Dst: PRESERVE_PCPU_ORDERING::PRESERVE_PCPU_ORDERING
      Src: /src/xen/tools/xentrace/xenalyze.c:9884,1
    - Dst: order_tsc::order_tsc
      Src: /src/xen/tools/xentrace/xenalyze.c:9886,1
    - Dst: pid::pid
      Src: /src/xen/tools/xentrace/xenalyze.c:9887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - new
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (record_order[i]!=new)
      pos:
        line_end: 9878
        line_start: 9878
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9900
      start: 9872
    functionDepth: 0
    functionLinenumber: 9872
    functionLinenumberEnd: 9900
    functionName: record_order_insert
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 2
    functionsReached:
    - pid::pid
    - assert
    - order_tsc::order_tsc
    - PRESERVE_PCPU_ORDERING::PRESERVE_PCPU_ORDERING
    linkageType: ''
    returnType: void
    signature: void record_order_insert(struct pcpu_info *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9911,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - rem
    argTypes:
    - struct pcpu_info*
    assertStmts:
    - condition: (record_order[i])
      pos:
        line_end: 9910
        line_start: 9910
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9916
      start: 9902
    functionDepth: 0
    functionLinenumber: 9902
    functionLinenumberEnd: 9916
    functionName: record_order_remove
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void record_order_remove(struct pcpu_info *rem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: progress_update
      Src: /src/xen/tools/xentrace/xenalyze.c:9925,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xenalyze.c:9928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (min_p || (P.max_active_pcpu==-1))
      pos:
        line_end: 9927
        line_start: 9927
        source_file: /src/xen/tools/xentrace/xenalyze.c
    constantsTouched: []
    func_position:
      end: 9931
      start: 9918
    functionDepth: 1
    functionLinenumber: 9918
    functionLinenumberEnd: 9931
    functionName: choose_next_record
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - progress_update
    - assert
    linkageType: ''
    returnType: struct pcpu_info
    signature: struct pcpu_info * choose_next_record(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: choose_next_record
      Src: /src/xen/tools/xentrace/xenalyze.c:9937,1
    - Dst: process_record
      Src: /src/xen/tools/xentrace/xenalyze.c:9940,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:9948,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:9950,1
    - Dst: read_record
      Src: /src/xen/tools/xentrace/xenalyze.c:9954,1
    - Dst: record_order_bubble
      Src: /src/xen/tools/xentrace/xenalyze.c:9958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9960
      start: 9933
    functionDepth: 2
    functionLinenumber: 9933
    functionLinenumberEnd: 9960
    functionName: process_records
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - read_record
    - fprintf
    - choose_next_record
    - process_record
    - record_order_bubble
    linkageType: ''
    returnType: void
    signature: void process_records(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9964,1
    - Dst: sched_summary_vcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:9965,1
    - Dst: hvm_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:9968,1
    - Dst: pv_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:9971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9976
      start: 9962
    functionDepth: 3
    functionLinenumber: 9962
    functionLinenumberEnd: 9976
    functionName: vcpu_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - sched_summary_vcpu
    - pv_summary
    - printf
    - hvm_summary
    linkageType: ''
    returnType: void
    signature: void vcpu_summary(struct vcpu_data *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9985,1
    - Dst: vcpu_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:9990,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:9997,1
    - Dst: sched_summary_domain
      Src: /src/xen/tools/xentrace/xenalyze.c:9999,1
    - Dst: mem_summary_domain
      Src: /src/xen/tools/xentrace/xenalyze.c:10001,1
    - Dst: vcpu_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10006,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10009,1
    - Dst: dump_eip
      Src: /src/xen/tools/xentrace/xenalyze.c:10010,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10014,1
    - Dst: dump_eip
      Src: /src/xen/tools/xentrace/xenalyze.c:10016,1
    - Dst: cr3_dump_list
      Src: /src/xen/tools/xentrace/xenalyze.c:10019,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10021
      start: 9978
    functionDepth: 4
    functionLinenumber: 9978
    functionLinenumberEnd: 10021
    functionName: domain_summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - mem_summary_domain
    - cr3_dump_list
    - dump_eip
    - vcpu_summary
    - printf
    - sched_summary_domain
    linkageType: ''
    returnType: void
    signature: void domain_summary(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10027,1
    - Dst: stringify_cpu_hz
      Src: /src/xen/tools/xentrace/xenalyze.c:10029,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10030,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10036,1
    - Dst: volume_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10037,1
    - Dst: domain_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10040
      start: 10025
    functionDepth: 5
    functionLinenumber: 10025
    functionLinenumberEnd: 10040
    functionName: summary
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 18
    functionsReached:
    - stringify_cpu_hz
    - domain_summary
    - volume_summary
    - printf
    linkageType: ''
    returnType: void
    signature: void summary(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10050,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10052,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10053,1
    - Dst: print_cycle_summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10054,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10061
      start: 10042
    functionDepth: 2
    functionLinenumber: 10042
    functionLinenumberEnd: 10061
    functionName: report_pcpu
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - print_cycle_summary
    - printf
    linkageType: ''
    returnType: void
    signature: void report_pcpu(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_default_domain_init
      Src: /src/xen/tools/xentrace/xenalyze.c:10076,1
    - Dst: scan_for_new_pcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:10080,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10088
      start: 10063
    functionDepth: 3
    functionLinenumber: 10063
    functionLinenumberEnd: 10088
    functionName: init_pcpus
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - scan_for_new_pcpu
    - fprintf
    - sched_default_domain_init
    linkageType: ''
    returnType: void
    signature: void init_pcpus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10159
      start: 10158
    functionDepth: 0
    functionLinenumber: 10158
    functionLinenumberEnd: 10159
    functionName: xstr
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xstr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10160
      start: 10159
    functionDepth: 0
    functionLinenumber: 10159
    functionLinenumberEnd: 10160
    functionName: str
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: str(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtof
      Src: /src/xen/tools/xentrace/xenalyze.c:10169,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10171,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:10172,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10188,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:10189,1
    - Dst: QHZ_FROM_HZ
      Src: /src/xen/tools/xentrace/xenalyze.c:10192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10193
      start: 10165
    functionDepth: 1
    functionLinenumber: 10165
    functionLinenumberEnd: 10193
    functionName: parse_cpu_hz
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - exit
    - strtof
    - fprintf
    - QHZ_FROM_HZ
    linkageType: ''
    returnType: void
    signature: void parse_cpu_hz(char * arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - cpu_hz
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10217
      start: 10196
    functionDepth: 0
    functionLinenumber: 10196
    functionLinenumberEnd: 10217
    functionName: stringify_cpu_hz
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * stringify_cpu_hz(long long cpu_hz)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10228,1
    - Dst: fflush
      Src: /src/xen/tools/xentrace/xenalyze.c:10229,1
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xenalyze.c:10231,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10234,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:10235,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenalyze.c:10241,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10243,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10246,1
    - Dst: fflush
      Src: /src/xen/tools/xentrace/xenalyze.c:10249,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - arg
    - a
    argTypes:
    - char*
    - struct array_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10260
      start: 10219
    functionDepth: 1
    functionLinenumber: 10219
    functionLinenumberEnd: 10260
    functionName: parse_array
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - error
    - malloc
    - fflush
    - fprintf
    - strtoull
    linkageType: ''
    returnType: int
    signature: int parse_array(char *arg, struct array_struct *a)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10309,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10311,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10317,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10319,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10325,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10327,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10335,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10337,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10344,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10346,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10370,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10372,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10388,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10390,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10410,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10413,1
    - Dst: strtoull
      Src: /src/xen/tools/xentrace/xenalyze.c:10418,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10422,1
    - Dst: strtof
      Src: /src/xen/tools/xentrace/xenalyze.c:10432,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10435,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10442,1
    - Dst: interval_table_alloc
      Src: /src/xen/tools/xentrace/xenalyze.c:10444,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10454,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10455,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10480,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10494,1
    - Dst: interval_table_alloc
      Src: /src/xen/tools/xentrace/xenalyze.c:10496,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10505,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10506,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10521,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10523,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10535,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10537,1
    - Dst: parse_array
      Src: /src/xen/tools/xentrace/xenalyze.c:10549,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10551,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10576,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10578,1
    - Dst: parse_cpu_hz
      Src: /src/xen/tools/xentrace/xenalyze.c:10590,1
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xenalyze.c:10598,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10601,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10605,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:10607,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xenalyze.c:10610,1
    - Dst: argp_usage
      Src: /src/xen/tools/xentrace/xenalyze.c:10629,1
    - Dst: interval_header
      Src: /src/xen/tools/xentrace/xenalyze.c:10636,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10641,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xenalyze.c:10645,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 312
    argCount: 3
    argNames:
    - key
    - arg
    - state
    argTypes:
    - int
    - char*
    - struct argp_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10655
      start: 10262
    functionDepth: 2
    functionLinenumber: 10262
    functionLinenumberEnd: 10655
    functionName: cmd_parser
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 0
    functionsReached:
    - interval_table_alloc
    - parse_array
    - parse_cpu_hz
    - interval_header
    - fprintf
    - printf
    - strtol
    - argp_usage
    - strtof
    - strtoull
    - exit
    linkageType: ''
    returnType: error_t
    signature: error_t cmd_parser(int key, char *arg, struct argp_state *state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: argp_parse
      Src: /src/xen/tools/xentrace/xenalyze.c:10927,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xenalyze.c:10930,1
    - Dst: open
      Src: /src/xen/tools/xentrace/xenalyze.c:10932,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:10933,1
    - Dst: error
      Src: /src/xen/tools/xentrace/xenalyze.c:10934,1
    - Dst: fstat
      Src: /src/xen/tools/xentrace/xenalyze.c:10937,1
    - Dst: mread_init
      Src: /src/xen/tools/xentrace/xenalyze.c:10941,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xenalyze.c:10942,1
    - Dst: parse_symbol_file
      Src: /src/xen/tools/xentrace/xenalyze.c:10945,1
    - Dst: init_pcpus
      Src: /src/xen/tools/xentrace/xenalyze.c:10950,1
    - Dst: progress_init
      Src: /src/xen/tools/xentrace/xenalyze.c:10953,1
    - Dst: process_records
      Src: /src/xen/tools/xentrace/xenalyze.c:10955,1
    - Dst: interval_tail
      Src: /src/xen/tools/xentrace/xenalyze.c:10958,1
    - Dst: summary
      Src: /src/xen/tools/xentrace/xenalyze.c:10961,1
    - Dst: report_pcpu
      Src: /src/xen/tools/xentrace/xenalyze.c:10964,1
    - Dst: progress_finish
      Src: /src/xen/tools/xentrace/xenalyze.c:10967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10970
      start: 10923
    functionDepth: 6
    functionLinenumber: 10923
    functionLinenumberEnd: 10970
    functionName: main
    functionSourceFile: /src/xen/tools/xentrace/xenalyze.c
    functionUses: 120
    functionsReached:
    - progress_finish
    - open
    - argp_parse
    - summary
    - parse_symbol_file
    - error
    - progress_init
    - interval_tail
    - process_records
    - report_pcpu
    - init_pcpus
    - exit
    - fstat
    - perror
    - mread_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _m
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: PERROR
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 142
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_m, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: close_handler
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void close_handler(int signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: MEMBUF_POINTER
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMBUF_POINTER(_i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: MEMBUF_CONS_INCREMENT
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMBUF_CONS_INCREMENT(_n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 118
    functionName: MEMBUF_PROD_SET
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMBUF_PROD_SET(_x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/xentrace.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:138,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: membuf_alloc
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - exit
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void membuf_alloc(unsigned long size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:160,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:162,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:169,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:171,1
    - Dst: MEMBUF_POINTER
      Src: /src/xen/tools/xentrace/xentrace.c:189,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:192,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:194,1
    - Dst: MEMBUF_CONS_INCREMENT
      Src: /src/xen/tools/xentrace/xentrace.c:202,1
    - Dst: MEMBUF_POINTER
      Src: /src/xen/tools/xentrace/xentrace.c:209,1
    - Dst: MEMBUF_CONS_INCREMENT
      Src: /src/xen/tools/xentrace/xentrace.c:216,1
    - Dst: MEMBUF_POINTER
      Src: /src/xen/tools/xentrace/xentrace.c:217,1
    - Dst: MEMBUF_POINTER
      Src: /src/xen/tools/xentrace/xentrace.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - cpu
    - window_size
    argTypes:
    - unsigned
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 235
    functionName: membuf_reserve_window
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - exit
    - MEMBUF_CONS_INCREMENT
    - fprintf
    - MEMBUF_POINTER
    linkageType: ''
    returnType: void
    signature: void membuf_reserve_window(unsigned cpu, unsigned long window_size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:243,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:245,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:250,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:252,1
    - Dst: MEMBUF_POINTER
      Src: /src/xen/tools/xentrace/xentrace.c:256,1
    - Dst: memcpy
      Src: /src/xen/tools/xentrace/xentrace.c:263,1
    - Dst: memcpy
      Src: /src/xen/tools/xentrace/xentrace.c:270,1
    - Dst: MEMBUF_PROD_SET
      Src: /src/xen/tools/xentrace/xentrace.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - start
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 279
    functionName: membuf_write
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - fprintf
    - MEMBUF_POINTER
    - exit
    - MEMBUF_PROD_SET
    - memcpy
    linkageType: ''
    returnType: void
    signature: void membuf_write(void *start, unsigned long size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:286,1
    - Dst: write
      Src: /src/xen/tools/xentrace/xentrace.c:297,1
    - Dst: write
      Src: /src/xen/tools/xentrace/xentrace.c:307,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:310,1
    - Dst: write
      Src: /src/xen/tools/xentrace/xentrace.c:318,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:321,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 333
    functionName: membuf_dump
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - write
    linkageType: ''
    returnType: void
    signature: void membuf_dump(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fstatvfs
      Src: /src/xen/tools/xentrace/xentrace.c:357,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:359,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:374,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:375,1
    - Dst: membuf_reserve_window
      Src: /src/xen/tools/xentrace/xentrace.c:386,1
    - Dst: write
      Src: /src/xen/tools/xentrace/xentrace.c:396,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:399,1
    - Dst: membuf_write
      Src: /src/xen/tools/xentrace/xentrace.c:408,1
    - Dst: write
      Src: /src/xen/tools/xentrace/xentrace.c:412,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:415,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:424,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:425,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - cpu
    - start
    - size
    - total_size
    argTypes:
    - unsigned int
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 426
    functionName: write_buffer
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - PERROR
    - fprintf
    - membuf_reserve_window
    - exit
    - write
    - membuf_write
    - fstatvfs
    linkageType: ''
    returnType: void
    signature: "void write_buffer(unsigned int cpu, unsigned char *start, int size,\n
      \                        int total_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xentrace/xentrace.c:430,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:434,1
    - Dst: xc_tbuf_disable
      Src: /src/xen/tools/xentrace/xentrace.c:438,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:440,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xentrace/xentrace.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 428
    functionDepth: 4
    functionLinenumber: 428
    functionLinenumberEnd: 444
    functionName: disable_tbufs
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - xc_tbuf_disable
    - xc_interface_open
    - perror
    linkageType: ''
    returnType: void
    signature: void disable_tbufs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_tbuf_enable
      Src: /src/xen/tools/xentrace/xentrace.c:453,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:457,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mfn
    - size
    argTypes:
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: get_tbufs
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - xc_tbuf_enable
    - perror
    - exit
    linkageType: ''
    returnType: void
    signature: void get_tbufs(unsigned long *mfn, unsigned long *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/xentrace/xentrace.c:477,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:482,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:483,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:488,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:489,1
    - Dst: calloc
      Src: /src/xen/tools/xentrace/xentrace.c:497,1
    - Dst: calloc
      Src: /src/xen/tools/xentrace/xentrace.c:498,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:501,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:502,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xentrace/xentrace.c:518,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:524,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:525,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - tbufs_mfn
    - num
    - tinfo_size
    argTypes:
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 531
    functionName: map_tbufs
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - PERROR
    - calloc
    - xc_map_foreign_range
    - fprintf
    - exit
    - xc_map_foreign_pages
    linkageType: ''
    returnType: struct t_struct
    signature: "struct t_struct *map_tbufs(unsigned long tbufs_mfn, unsigned int num,\n
      \                                 unsigned long tinfo_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:538,1
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/xentrace/xentrace.c:540,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:545,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:547,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - map
    argTypes:
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 552
    functionName: print_cpu_mask
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - fprintf
    - xc_get_cpumap_size
    linkageType: ''
    returnType: void
    signature: void print_cpu_mask(xc_cpumap_t map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_tbuf_set_cpu_mask
      Src: /src/xen/tools/xentrace/xentrace.c:556,1
    - Dst: print_cpu_mask
      Src: /src/xen/tools/xentrace/xentrace.c:560,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - map
    argTypes:
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: set_cpu_mask
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 1
    functionsReached:
    - print_cpu_mask
    - xc_tbuf_set_cpu_mask
    - PERROR
    linkageType: ''
    returnType: int
    signature: int set_cpu_mask(xc_cpumap_t map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_tbuf_set_evt_mask
      Src: /src/xen/tools/xentrace/xentrace.c:577,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:578,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:582,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mask
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 585
    functionName: set_evt_mask
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    - PERROR
    - xc_tbuf_set_evt_mask
    linkageType: ''
    returnType: void
    signature: void set_evt_mask(uint32_t mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/xentrace/xentrace.c:595,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:599,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 604
    functionName: get_num_cpus
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - exit
    - xc_physinfo
    - PERROR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_num_cpus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/xentrace/xentrace.c:613,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:615,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:616,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/xentrace/xentrace.c:619,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:621,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: event_init
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 1
    functionsReached:
    - PERROR
    - xenevtchn_bind_virq
    - exit
    - perror
    - xenevtchn_open
    linkageType: ''
    returnType: void
    signature: void event_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/xentrace/xentrace.c:634,1
    - Dst: poll
      Src: /src/xen/tools/xentrace/xentrace.c:638,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:642,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:643,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/xentrace/xentrace.c:647,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:649,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:650,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:653,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:656,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/xentrace/xentrace.c:658,1
    - Dst: PERROR
      Src: /src/xen/tools/xentrace/xentrace.c:660,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - milliseconds
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 664
    functionName: wait_for_event_or_timeout
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - PERROR
    - xenevtchn_unmask
    - xenevtchn_fd
    - fprintf
    - xenevtchn_pending
    - exit
    - poll
    linkageType: ''
    returnType: void
    signature: void wait_for_event_or_timeout(unsigned long milliseconds)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: event_init
      Src: /src/xen/tools/xentrace/xentrace.c:689,1
    - Dst: get_num_cpus
      Src: /src/xen/tools/xentrace/xentrace.c:692,1
    - Dst: get_tbufs
      Src: /src/xen/tools/xentrace/xentrace.c:695,1
    - Dst: disable_tbufs
      Src: /src/xen/tools/xentrace/xentrace.c:698,1
    - Dst: map_tbufs
      Src: /src/xen/tools/xentrace/xentrace.c:700,1
    - Dst: xen_rmb
      Src: /src/xen/tools/xentrace/xentrace.c:727,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xentrace.c:732,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xentrace.c:733,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xentrace.c:741,1
    - Dst: assert
      Src: /src/xen/tools/xentrace/xentrace.c:742,1
    - Dst: write_buffer
      Src: /src/xen/tools/xentrace/xentrace.c:750,1
    - Dst: write_buffer
      Src: /src/xen/tools/xentrace/xentrace.c:760,1
    - Dst: write_buffer
      Src: /src/xen/tools/xentrace/xentrace.c:763,1
    - Dst: xen_mb
      Src: /src/xen/tools/xentrace/xentrace.c:768,1
    - Dst: disable_tbufs
      Src: /src/xen/tools/xentrace/xentrace.c:779,1
    - Dst: wait_for_event_or_timeout
      Src: /src/xen/tools/xentrace/xentrace.c:787,1
    - Dst: membuf_dump
      Src: /src/xen/tools/xentrace/xentrace.c:791,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xentrace.c:794,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xentrace.c:795,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cons < 2*data_size)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/xen/tools/xentrace/xentrace.c
    - condition: (window_size > 0)
      pos:
        line_end: 740
        line_start: 740
        source_file: /src/xen/tools/xentrace/xentrace.c
    - condition: (window_size <= data_size)
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/xen/tools/xentrace/xentrace.c
    - condition: (prod < 2*data_size)
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/xen/tools/xentrace/xentrace.c
    constantsTouched: []
    func_position:
      end: 797
      start: 671
    functionDepth: 5
    functionLinenumber: 671
    functionLinenumberEnd: 797
    functionName: monitor_tbufs
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - wait_for_event_or_timeout
    - disable_tbufs
    - map_tbufs
    - free
    - xen_rmb
    - get_tbufs
    - membuf_dump
    - xen_mb
    - event_init
    - assert
    - get_num_cpus
    - write_buffer
    linkageType: ''
    returnType: void
    signature: void monitor_tbufs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 805
    functionName: xstr
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xstr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 806
    functionName: str
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: str(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentrace/xentrace.c:854,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xentrace.c:855,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 858
    functionName: usage
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 10
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(int status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xentrace.c:870,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:874,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:875,1
    - Dst: strerror
      Src: /src/xen/tools/xentrace/xentrace.c:875,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:876,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:895,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:896,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:903,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - arg
    - base
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 906
    functionName: sargtol
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - strtol
    - exit
    - usage
    linkageType: ''
    returnType: long
    signature: long sargtol(const char *restrict arg, int base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/xentrace/xentrace.c:915,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:918,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:919,1
    - Dst: strerror
      Src: /src/xen/tools/xentrace/xentrace.c:919,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:920,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:922,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arg
    - base
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 927
    functionName: argtol
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - usage
    - strerror
    - fprintf
    - strtol
    linkageType: ''
    returnType: long
    signature: long argtol(const char *restrict arg, int base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:932,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:934,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:936,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:938,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:940,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 947
    functionName: parse_evtmask
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - argtol
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_evtmask(char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 952
    functionName: is_terminator
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_terminator(c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_max_cpus
      Src: /src/xen/tools/xentrace/xentrace.c:961,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:964,1
    - Dst: is_terminator
      Src: /src/xen/tools/xentrace/xentrace.c:975,1
    - Dst: isdigit
      Src: /src/xen/tools/xentrace/xentrace.c:986,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:988,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:1003,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:1009,1
    - Dst: xc_cpumap_setcpu
      Src: /src/xen/tools/xentrace/xentrace.c:1015,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - mask_str
    - map
    argTypes:
    - char*
    - xc_cpumap_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 1024
    functionName: parse_cpumask_range
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - isdigit
    - xc_cpumap_setcpu
    - fprintf
    - is_terminator
    - xc_get_max_cpus
    linkageType: ''
    returnType: int
    signature: int parse_cpumask_range(const char *mask_str, xc_cpumap_t map)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_cpumap_alloc
      Src: /src/xen/tools/xentrace/xentrace.c:1035,1
    - Dst: strlen
      Src: /src/xen/tools/xentrace/xentrace.c:1039,1
    - Dst: strncmp
      Src: /src/xen/tools/xentrace/xentrace.c:1046,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:1050,1
    - Dst: strcmp
      Src: /src/xen/tools/xentrace/xentrace.c:1059,1
    - Dst: xc_get_cpumap_size
      Src: /src/xen/tools/xentrace/xentrace.c:1061,1
    - Dst: parse_cpumask_range
      Src: /src/xen/tools/xentrace/xentrace.c:1065,1
    - Dst: set_cpu_mask
      Src: /src/xen/tools/xentrace/xentrace.c:1068,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xentrace.c:1071,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xentrace.c:1072,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1030
    functionDepth: 5
    functionLinenumber: 1030
    functionLinenumberEnd: 1075
    functionName: parse_cpu_mask
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - xc_get_cpumap_size
    - free
    - strncmp
    - strlen
    - parse_cpumask_range
    - argtol
    - set_cpu_mask
    - strcmp
    - xc_cpumap_alloc
    linkageType: ''
    returnType: int
    signature: int parse_cpu_mask(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xentrace/xentrace.c:1098,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:1104,1
    - Dst: free
      Src: /src/xen/tools/xentrace/xentrace.c:1108,1
    - Dst: strdup
      Src: /src/xen/tools/xentrace/xentrace.c:1109,1
    - Dst: parse_evtmask
      Src: /src/xen/tools/xentrace/xentrace.c:1113,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:1117,1
    - Dst: printf
      Src: /src/xen/tools/xentrace/xentrace.c:1121,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:1122,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:1130,1
    - Dst: argtol
      Src: /src/xen/tools/xentrace/xentrace.c:1142,1
    - Dst: sargtol
      Src: /src/xen/tools/xentrace/xentrace.c:1146,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:1150,1
    - Dst: usage
      Src: /src/xen/tools/xentrace/xentrace.c:1154,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1161
    functionName: parse_args
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 0
    functionsReached:
    - parse_evtmask
    - sargtol
    - free
    - getopt_long
    - strdup
    - printf
    - argtol
    - usage
    - exit
    linkageType: ''
    returnType: void
    signature: void parse_args(int argc, char **argv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_args
      Src: /src/xen/tools/xentrace/xentrace.c:1181,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xentrace/xentrace.c:1183,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:1186,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:1187,1
    - Dst: set_evt_mask
      Src: /src/xen/tools/xentrace/xentrace.c:1191,1
    - Dst: parse_cpu_mask
      Src: /src/xen/tools/xentrace/xentrace.c:1195,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:1196,1
    - Dst: alarm
      Src: /src/xen/tools/xentrace/xentrace.c:1200,1
    - Dst: open
      Src: /src/xen/tools/xentrace/xentrace.c:1203,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/xentrace.c:1209,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:1210,1
    - Dst: isatty
      Src: /src/xen/tools/xentrace/xentrace.c:1213,1
    - Dst: fprintf
      Src: /src/xen/tools/xentrace/xentrace.c:1215,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/xentrace.c:1216,1
    - Dst: membuf_alloc
      Src: /src/xen/tools/xentrace/xentrace.c:1220,1
    - Dst: sigemptyset
      Src: /src/xen/tools/xentrace/xentrace.c:1225,1
    - Dst: sigaction
      Src: /src/xen/tools/xentrace/xentrace.c:1226,1
    - Dst: sigaction
      Src: /src/xen/tools/xentrace/xentrace.c:1227,1
    - Dst: sigaction
      Src: /src/xen/tools/xentrace/xentrace.c:1228,1
    - Dst: sigaction
      Src: /src/xen/tools/xentrace/xentrace.c:1229,1
    - Dst: monitor_tbufs
      Src: /src/xen/tools/xentrace/xentrace.c:1231,1
    - Dst: close
      Src: /src/xen/tools/xentrace/xentrace.c:1233,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1235
    functionName: main
    functionSourceFile: /src/xen/tools/xentrace/xentrace.c
    functionUses: 120
    functionsReached:
    - monitor_tbufs
    - open
    - membuf_alloc
    - sigaction
    - sigemptyset
    - set_evt_mask
    - parse_args
    - xc_interface_open
    - parse_cpu_mask
    - alarm
    - close
    - fprintf
    - exit
    - isatty
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/xentrace/mread.c:15,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/mread.c:19,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/mread.c:20,1
    - Dst: bzero
      Src: /src/xen/tools/xentrace/mread.c:23,1
    - Dst: fstat
      Src: /src/xen/tools/xentrace/mread.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 31
    functionName: mread_init
    functionSourceFile: /src/xen/tools/xentrace/mread.c
    functionUses: 1
    functionsReached:
    - malloc
    - exit
    - fstat
    - bzero
    - perror
    linkageType: ''
    returnType: mread_handle_t
    signature: mread_handle_t mread_init(int fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:54,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:58,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:64,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:70,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:79,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:84,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:91,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:97,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:100,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:105,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:112,1
    - Dst: munmap
      Src: /src/xen/tools/xentrace/mread.c:113,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:118,1
    - Dst: mmap
      Src: /src/xen/tools/xentrace/mread.c:120,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:124,1
    - Dst: perror
      Src: /src/xen/tools/xentrace/mread.c:128,1
    - Dst: exit
      Src: /src/xen/tools/xentrace/mread.c:129,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:143,1
    - Dst: bcopy
      Src: /src/xen/tools/xentrace/mread.c:146,1
    - Dst: dprintf
      Src: /src/xen/tools/xentrace/mread.c:152,1
    - Dst: mread64
      Src: /src/xen/tools/xentrace/mread.c:154,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 4
    argNames:
    - h
    - rec
    - len
    - offset
    argTypes:
    - mread_handle_t
    - void*
    - ssize_t
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 160
    functionName: mread64
    functionSourceFile: /src/xen/tools/xentrace/mread.c
    functionUses: 2
    functionsReached:
    - dprintf
    - munmap
    - mread64
    - mmap
    - exit
    - bcopy
    - perror
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mread64(mread_handle_t h, void *rec, ssize_t len, off_t offset)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/xcutils/lsevtchn.c:16,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xcutils/lsevtchn.c:18,1
    - Dst: errx
      Src: /src/xen/tools/xcutils/lsevtchn.c:20,1
    - Dst: xc_evtchn_status
      Src: /src/xen/tools/xcutils/lsevtchn.c:26,1
    - Dst: perror
      Src: /src/xen/tools/xcutils/lsevtchn.c:39,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:49,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:54,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:58,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:62,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:65,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:68,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:71,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/lsevtchn.c:75,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xcutils/lsevtchn.c:79,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 10
    functionDepth: 4
    functionLinenumber: 10
    functionLinenumberEnd: 82
    functionName: main
    functionSourceFile: /src/xen/tools/xcutils/lsevtchn.c
    functionUses: 120
    functionsReached:
    - xc_interface_open
    - errx
    - xc_evtchn_status
    - strtol
    - printf
    - xc_interface_close
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: VERSION
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION(h,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:67,1
    - Dst: elf_strfmt
      Src: /src/xen/tools/xcutils/readnotes.c:67,1
    - Dst: elf_note_desc
      Src: /src/xen/tools/xcutils/readnotes.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - elf
    argTypes:
    - char*
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: print_string_note
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 0
    functionsReached:
    - elf_strfmt
    - printf
    - elf_note_desc
    linkageType: ''
    returnType: void
    signature: "void print_string_note(const char *prefix, struct elf_binary *elf,\n\t\t\t
      \     ELF_HANDLE_DECL(elf_note) note)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_note_numeric
      Src: /src/xen/tools/xcutils/readnotes.c:73,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:74,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - elf
    argTypes:
    - char*
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: print_numeric_note
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 0
    functionsReached:
    - elf_uval
    - elf_note_numeric
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_numeric_note(const char *prefix, struct elf_binary *elf,\n\t\t\t
      \      ELF_HANDLE_DECL(elf_note) note)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:83,1
    - Dst: elf_note_desc
      Src: /src/xen/tools/xcutils/readnotes.c:84,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:90,1
    - Dst: elf_access_unsigned
      Src: /src/xen/tools/xcutils/readnotes.c:91,1
    - Dst: elf_access_unsigned
      Src: /src/xen/tools/xcutils/readnotes.c:92,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:95,1
    - Dst: elf_access_unsigned
      Src: /src/xen/tools/xcutils/readnotes.c:96,1
    - Dst: elf_access_unsigned
      Src: /src/xen/tools/xcutils/readnotes.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - prefix
    - elf
    argTypes:
    - char*
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: print_l1_mfn_valid_note
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 0
    functionsReached:
    - elf_access_unsigned
    - elf_uval
    - printf
    - elf_note_desc
    linkageType: ''
    returnType: void
    signature: "void print_l1_mfn_valid_note(const char *prefix, struct elf_binary
      *elf,\n\t\t\t\t    ELF_HANDLE_DECL(elf_note) note)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/tools/xcutils/readnotes.c:105,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/tools/xcutils/readnotes.c:109,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/tools/xcutils/readnotes.c:109,1
    - Dst: elf_note_next
      Src: /src/xen/tools/xcutils/readnotes.c:109,1
    - Dst: elf_note_name
      Src: /src/xen/tools/xcutils/readnotes.c:111,1
    - Dst: strcmp
      Src: /src/xen/tools/xcutils/readnotes.c:114,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:119,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:122,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:125,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:128,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:131,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:134,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:137,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:140,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:143,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:146,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:149,1
    - Dst: print_string_note
      Src: /src/xen/tools/xcutils/readnotes.c:152,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:155,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:158,1
    - Dst: print_l1_mfn_valid_note
      Src: /src/xen/tools/xcutils/readnotes.c:161,1
    - Dst: print_numeric_note
      Src: /src/xen/tools/xcutils/readnotes.c:164,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:167,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:168,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 173
    functionName: print_notes
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 0
    functionsReached:
    - elf_note_name
    - print_string_note
    - ELF_HANDLE_DECL
    - ELF_HANDLE_PTRVAL
    - printf
    - elf_note_next
    - print_l1_mfn_valid_note
    - strcmp
    - elf_uval
    - print_numeric_note
    linkageType: ''
    returnType: unsigned
    signature: unsigned print_notes(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      start, ELF_HANDLE_DECL(elf_note) end)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/tools/xcutils/readnotes.c:183,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:191,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xcutils/readnotes.c:196,1
    - Dst: open
      Src: /src/xen/tools/xcutils/readnotes.c:198,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:201,1
    - Dst: strerror
      Src: /src/xen/tools/xcutils/readnotes.c:201,1
    - Dst: fstat
      Src: /src/xen/tools/xcutils/readnotes.c:204,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:206,1
    - Dst: strerror
      Src: /src/xen/tools/xcutils/readnotes.c:207,1
    - Dst: mmap
      Src: /src/xen/tools/xcutils/readnotes.c:211,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:214,1
    - Dst: strerror
      Src: /src/xen/tools/xcutils/readnotes.c:214,1
    - Dst: memcmp
      Src: /src/xen/tools/xcutils/readnotes.c:220,1
    - Dst: VERSION
      Src: /src/xen/tools/xcutils/readnotes.c:222,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:224,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:236,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:241,1
    - Dst: xc_dom_check_gzip
      Src: /src/xen/tools/xcutils/readnotes.c:251,1
    - Dst: malloc
      Src: /src/xen/tools/xcutils/readnotes.c:254,1
    - Dst: xc_dom_do_gunzip
      Src: /src/xen/tools/xcutils/readnotes.c:255,1
    - Dst: elf_init
      Src: /src/xen/tools/xcutils/readnotes.c:260,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:262,1
    - Dst: xc_elf_set_logfile
      Src: /src/xen/tools/xcutils/readnotes.c:265,1
    - Dst: elf_phdr_count
      Src: /src/xen/tools/xcutils/readnotes.c:267,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/tools/xcutils/readnotes.c:270,1
    - Dst: elf_phdr_by_index
      Src: /src/xen/tools/xcutils/readnotes.c:271,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:272,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:278,1
    - Dst: print_notes
      Src: /src/xen/tools/xcutils/readnotes.c:281,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/tools/xcutils/readnotes.c:282,1
    - Dst: elf_segment_start
      Src: /src/xen/tools/xcutils/readnotes.c:282,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/tools/xcutils/readnotes.c:283,1
    - Dst: elf_segment_end
      Src: /src/xen/tools/xcutils/readnotes.c:283,1
    - Dst: elf_shdr_count
      Src: /src/xen/tools/xcutils/readnotes.c:288,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/tools/xcutils/readnotes.c:291,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/tools/xcutils/readnotes.c:292,1
    - Dst: elf_uval
      Src: /src/xen/tools/xcutils/readnotes.c:293,1
    - Dst: print_notes
      Src: /src/xen/tools/xcutils/readnotes.c:295,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/tools/xcutils/readnotes.c:296,1
    - Dst: elf_section_start
      Src: /src/xen/tools/xcutils/readnotes.c:296,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/tools/xcutils/readnotes.c:297,1
    - Dst: elf_section_end
      Src: /src/xen/tools/xcutils/readnotes.c:297,1
    - Dst: fprintf
      Src: /src/xen/tools/xcutils/readnotes.c:299,1
    - Dst: elf_shdr_by_name
      Src: /src/xen/tools/xcutils/readnotes.c:304,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/tools/xcutils/readnotes.c:305,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:306,1
    - Dst: elf_strfmt
      Src: /src/xen/tools/xcutils/readnotes.c:307,1
    - Dst: elf_section_start
      Src: /src/xen/tools/xcutils/readnotes.c:307,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/xcutils/readnotes.c:309,1
    - Dst: printf
      Src: /src/xen/tools/xcutils/readnotes.c:310,1
    - Dst: elf_check_broken
      Src: /src/xen/tools/xcutils/readnotes.c:310,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/xen/tools/xcutils/readnotes.c
    functionUses: 120
    functionsReached:
    - elf_shdr_by_name
    - elf_phdr_by_index
    - print_notes
    - memcmp
    - xc_interface_open
    - xc_elf_set_logfile
    - elf_phdr_count
    - ELF_MAKE_HANDLE
    - fstat
    - elf_uval
    - elf_shdr_by_index
    - elf_shdr_count
    - malloc
    - xc_dom_do_gunzip
    - elf_init
    - elf_segment_end
    - open
    - ELF_HANDLE_VALID
    - xc_dom_check_gzip
    - elf_section_start
    - mmap
    - elf_section_end
    - fprintf
    - printf
    - VERSION
    - elf_segment_start
    - ELF_HANDLE_DECL
    - elf_check_broken
    - strerror
    - elf_strfmt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: dolog
    functionSourceFile: /src/xen/tools/console/daemon/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dolog(val, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: handle_hup
    functionSourceFile: /src/xen/tools/console/daemon/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handle_hup(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/console/daemon/main.c:51,1
    - Dst: printf
      Src: /src/xen/tools/console/daemon/main.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: usage
    functionSourceFile: /src/xen/tools/console/daemon/main.c
    functionUses: 13
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/console/daemon/main.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: version
    functionSourceFile: /src/xen/tools/console/daemon/main.c
    functionUses: 28
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version(char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/xen/tools/console/daemon/main.c:73,1
    - Dst: fprintf
      Src: /src/xen/tools/console/daemon/main.c:74,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/main.c:75,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:76,1
    - Dst: setrlimit
      Src: /src/xen/tools/console/daemon/main.c:84,1
    - Dst: syslog
      Src: /src/xen/tools/console/daemon/main.c:85,1
    - Dst: rlim_cur::rlim_cur
      Src: /src/xen/tools/console/daemon/main.c:90,1
    - Dst: rlim_max::rlim_max
      Src: /src/xen/tools/console/daemon/main.c:91,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/main.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 93
    functionName: increase_fd_limit
    functionSourceFile: /src/xen/tools/console/daemon/main.c
    functionUses: 0
    functionsReached:
    - syslog
    - rlim_max::rlim_max
    - setrlimit
    - strerror
    - fprintf
    - rlim_cur::rlim_cur
    - getrlimit
    - exit
    linkageType: ''
    returnType: void
    signature: void increase_fd_limit(void)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:114,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:114,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:114,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:115,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:115,1
    - Dst: getopt_long
      Src: /src/xen/tools/console/daemon/main.c:119,1
    - Dst: usage
      Src: /src/xen/tools/console/daemon/main.c:122,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:123,1
    - Dst: version
      Src: /src/xen/tools/console/daemon/main.c:125,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:126,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:131,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:131,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/console/daemon/main.c:132,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:138,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:141,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:143,1
    - Dst: strdup
      Src: /src/xen/tools/console/daemon/main.c:148,1
    - Dst: strdup
      Src: /src/xen/tools/console/daemon/main.c:151,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:154,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:157,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:159,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:161,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:167,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/main.c:169,1
    - Dst: fprintf
      Src: /src/xen/tools/console/daemon/main.c:177,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:180,1
    - Dst: strdup
      Src: /src/xen/tools/console/daemon/main.c:185,1
    - Dst: geteuid
      Src: /src/xen/tools/console/daemon/main.c:188,1
    - Dst: fprintf
      Src: /src/xen/tools/console/daemon/main.c:189,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:190,1
    - Dst: signal
      Src: /src/xen/tools/console/daemon/main.c:193,1
    - Dst: openlog
      Src: /src/xen/tools/console/daemon/main.c:195,1
    - Dst: setlogmask
      Src: /src/xen/tools/console/daemon/main.c:196,1
    - Dst: increase_fd_limit
      Src: /src/xen/tools/console/daemon/main.c:198,1
    - Dst: daemonize
      Src: /src/xen/tools/console/daemon/main.c:201,1
    - Dst: xen_setup
      Src: /src/xen/tools/console/daemon/main.c:204,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/main.c:205,1
    - Dst: handle_io
      Src: /src/xen/tools/console/daemon/main.c:207,1
    - Dst: closelog
      Src: /src/xen/tools/console/daemon/main.c:209,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/main.c:210,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/main.c:211,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 214
    functionName: main
    functionSourceFile: /src/xen/tools/console/daemon/main.c
    functionUses: 120
    functionsReached:
    - daemonize
    - geteuid
    - closelog
    - LOG_MASK
    - increase_fd_limit
    - free
    - signal
    - getopt_long
    - openlog
    - version
    - setlogmask
    - fprintf
    - xen_setup
    - strdup
    - exit
    - handle_io
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MAX_STRLEN
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_STRLEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: console_enabled
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool console_enabled(struct console *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iter_func
      Src: /src/xen/tools/console/daemon/io.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - iter_func
    argTypes:
    - struct domain*
    - VOID_ITER_FUNC_ARG1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: console_iter_void_arg1
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - iter_func
    linkageType: ''
    returnType: void
    signature: "void console_iter_void_arg1(struct domain *d,\n\t\t\t\t\t  VOID_ITER_FUNC_ARG1
      iter_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iter_func
      Src: /src/xen/tools/console/daemon/io.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - iter_func
    - iter_data
    argTypes:
    - struct domain*
    - VOID_ITER_FUNC_ARG2
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: console_iter_void_arg2
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - iter_func
    linkageType: ''
    returnType: void
    signature: "void console_iter_void_arg2(struct domain *d,\n\t\t\t\t\t  VOID_ITER_FUNC_ARG2
      iter_func,\n\t\t\t\t\t  void *iter_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iter_func
      Src: /src/xen/tools/console/daemon/io.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - d
    - iter_func
    argTypes:
    - struct domain*
    - INT_ITER_FUNC_ARG1
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: console_iter_int_arg1
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - iter_func
    linkageType: ''
    returnType: int
    signature: "int console_iter_int_arg1(struct domain *d,\n\t\t\t\t\tINT_ITER_FUNC_ARG1
      iter_func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iter_func
      Src: /src/xen/tools/console/daemon/io.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - d
    - iter_func
    - iter_data
    argTypes:
    - struct domain*
    - INT_ITER_FUNC_ARG3
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 227
    functionName: console_iter_int_arg3
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - iter_func
    linkageType: ''
    returnType: int
    signature: "int console_iter_int_arg3(struct domain *d,\n\t\t\t\t\tINT_ITER_FUNC_ARG3
      iter_func,\n\t\t\t\t\tvoid **iter_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - src
    - dest
    - len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: do_replace_escape
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_replace_escape(const char *src, char *dest, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_replace_escape
      Src: /src/xen/tools/console/daemon/io.c:253,1
    - Dst: write
      Src: /src/xen/tools/console/daemon/io.c:254,1
    - Dst: write
      Src: /src/xen/tools/console/daemon/io.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: write_all
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - do_replace_escape
    - write
    linkageType: ''
    returnType: int
    signature: int write_all(int fd, const char* buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/console/daemon/io.c:272,1
    - Dst: localtime
      Src: /src/xen/tools/console/daemon/io.c:273,1
    - Dst: strftime
      Src: /src/xen/tools/console/daemon/io.c:274,1
    - Dst: memchr
      Src: /src/xen/tools/console/daemon/io.c:278,1
    - Dst: write_all
      Src: /src/xen/tools/console/daemon/io.c:283,1
    - Dst: write_all
      Src: /src/xen/tools/console/daemon/io.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - fd
    - data
    - sz
    - needts
    argTypes:
    - int
    - char*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 297
    functionName: write_with_timestamp
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - write_all
    - strftime
    - time
    - localtime
    - memchr
    linkageType: ''
    returnType: int
    signature: "int write_with_timestamp(int fd, const char *data, size_t sz,\n\t\t\t\tint
      *needts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: buffer_available
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool buffer_available(struct console *con)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xen_mb
      Src: /src/xen/tools/console/daemon/io.c:318,1
    - Dst: realloc
      Src: /src/xen/tools/console/daemon/io.c:326,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:328,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/io.c:329,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/tools/console/daemon/io.c:335,1
    - Dst: xen_mb
      Src: /src/xen/tools/console/daemon/io.c:337,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/console/daemon/io.c:339,1
    - Dst: write_with_timestamp
      Src: /src/xen/tools/console/daemon/io.c:348,1
    - Dst: write_all
      Src: /src/xen/tools/console/daemon/io.c:353,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:359,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:361,1
    - Dst: memmove
      Src: /src/xen/tools/console/daemon/io.c:370,1
    - Dst: memmove
      Src: /src/xen/tools/console/daemon/io.c:379,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 385
    functionName: buffer_append
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - write_all
    - dolog
    - write_with_timestamp
    - memmove
    - xenevtchn_notify
    - strerror
    - xen_mb
    - exit
    - MASK_XENCONS_IDX
    - realloc
    linkageType: ''
    returnType: void
    signature: void buffer_append(struct console *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: buffer_empty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool buffer_empty(struct buffer *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/console/daemon/io.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: buffer_advance
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void buffer_advance(struct buffer *buffer, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/console/daemon/io.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: domain_is_valid
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xc_domain_getinfo_single
    linkageType: ''
    returnType: bool
    signature: bool domain_is_valid(int domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/console/daemon/io.c:415,1
    - Dst: open
      Src: /src/xen/tools/console/daemon/io.c:418,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:420,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:421,1
    - Dst: write_with_timestamp
      Src: /src/xen/tools/console/daemon/io.c:423,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:424,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:426,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:428,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: create_hv_log
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - open
    - dolog
    - close
    - strerror
    - strlen
    - write_with_timestamp
    linkageType: ''
    returnType: int
    signature: int create_hv_log(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/console/daemon/io.c:444,1
    - Dst: realloc
      Src: /src/xen/tools/console/daemon/io.c:445,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:445,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:447,1
    - Dst: strcat
      Src: /src/xen/tools/console/daemon/io.c:451,1
    - Dst: xs_read
      Src: /src/xen/tools/console/daemon/io.c:452,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:453,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:457,1
    - Dst: snprintf
      Src: /src/xen/tools/console/daemon/io.c:461,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:464,1
    - Dst: open
      Src: /src/xen/tools/console/daemon/io.c:467,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:469,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:470,1
    - Dst: write_with_timestamp
      Src: /src/xen/tools/console/daemon/io.c:472,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:473,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:475,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:477,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 436
    functionDepth: 7
    functionLinenumber: 436
    functionLinenumberEnd: 483
    functionName: create_console_log
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - open
    - xs_get_domain_path
    - dolog
    - free
    - xs_read
    - close
    - strerror
    - strlen
    - write_with_timestamp
    - realloc
    - strcat
    linkageType: ''
    returnType: int
    signature: int create_console_log(struct console *con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:488,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 496
    functionName: console_close_tty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void console_close_tty(struct console *con)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/tools/console/daemon/io.c:507,1
    - Dst: grantpt
      Src: /src/xen/tools/console/daemon/io.c:511,1
    - Dst: unlockpt
      Src: /src/xen/tools/console/daemon/io.c:511,1
    - Dst: ptsname
      Src: /src/xen/tools/console/daemon/io.c:514,1
    - Dst: open
      Src: /src/xen/tools/console/daemon/io.c:517,1
    - Dst: ioctl
      Src: /src/xen/tools/console/daemon/io.c:520,1
    - Dst: ioctl
      Src: /src/xen/tools/console/daemon/io.c:528,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/daemon/io.c:531,1
    - Dst: assert
      Src: /src/xen/tools/console/daemon/io.c:533,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:539,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:540,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 5
    argNames:
    - amaster
    - aslave
    - name
    - termp
    - winp
    argTypes:
    - int*
    - int*
    - char*
    - struct termios*
    - struct winsize*
    assertStmts:
    - condition: (name == NULL)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/xen/tools/console/daemon/io.c
    constantsTouched: []
    func_position:
      end: 542
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 542
    functionName: openpty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 1
    functionsReached:
    - open
    - tcsetattr
    - unlockpt
    - grantpt
    - close
    - ptsname
    - assert
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int openpty(int *amaster, int *aslave, char *name,\n\t\t   struct
      termios *termp, struct winsize *winp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - termios_p
    argTypes:
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: cfmakeraw
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cfmakeraw(struct termios *termios_p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/console/daemon/io.c:569,1
    - Dst: assert
      Src: /src/xen/tools/console/daemon/io.c:570,1
    - Dst: openpty
      Src: /src/xen/tools/console/daemon/io.c:572,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:574,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:576,1
    - Dst: tcgetattr
      Src: /src/xen/tools/console/daemon/io.c:580,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:582,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:584,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/daemon/io.c:587,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/daemon/io.c:588,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:590,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:592,1
    - Dst: ptsname
      Src: /src/xen/tools/console/daemon/io.c:596,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:598,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:600,1
    - Dst: asprintf
      Src: /src/xen/tools/console/daemon/io.c:604,1
    - Dst: xs_read
      Src: /src/xen/tools/console/daemon/io.c:608,1
    - Dst: strtoul
      Src: /src/xen/tools/console/daemon/io.c:610,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:611,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:613,1
    - Dst: asprintf
      Src: /src/xen/tools/console/daemon/io.c:615,1
    - Dst: xs_write
      Src: /src/xen/tools/console/daemon/io.c:618,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:618,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:619,1
    - Dst: fcntl
      Src: /src/xen/tools/console/daemon/io.c:623,1
    - Dst: console_close_tty
      Src: /src/xen/tools/console/daemon/io.c:628,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts:
    - condition: (con->master_fd == -1)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/xen/tools/console/daemon/io.c
    - condition: (con->slave_fd == -1)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/xen/tools/console/daemon/io.c
    constantsTouched: []
    func_position:
      end: 630
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 630
    functionName: console_create_tty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xs_write
    - asprintf
    - dolog
    - tcsetattr
    - free
    - openpty
    - xs_read
    - ptsname
    - strerror
    - console_close_tty
    - strlen
    - fcntl
    - tcgetattr
    - cfmakeraw
    - assert
    - strtoul
    linkageType: ''
    returnType: int
    signature: int console_create_tty(struct console *con)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/console/daemon/io.c:640,1
    - Dst: va_arg
      Src: /src/xen/tools/console/daemon/io.c:641,1
    - Dst: va_arg
      Src: /src/xen/tools/console/daemon/io.c:642,1
    - Dst: va_arg
      Src: /src/xen/tools/console/daemon/io.c:643,1
    - Dst: asprintf
      Src: /src/xen/tools/console/daemon/io.c:646,1
    - Dst: xs_read
      Src: /src/xen/tools/console/daemon/io.c:650,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:651,1
    - Dst: sscanf
      Src: /src/xen/tools/console/daemon/io.c:657,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:659,1
    - Dst: va_end
      Src: /src/xen/tools/console/daemon/io.c:663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - xs
    - dir
    argTypes:
    - struct xs_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 633
    functionDepth: 6
    functionLinenumber: 633
    functionLinenumberEnd: 665
    functionName: xs_gather
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - va_start
    - asprintf
    - free
    - va_arg
    - xs_read
    - sscanf
    - va_end
    linkageType: ''
    returnType: int
    signature: int xs_gather(struct xs_handle *xs, const char *dir, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/console/daemon/io.c:672,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/console/daemon/io.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 677
    functionName: console_unmap_interface
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xenforeignmemory_unmap
    - xengnttab_unmap
    linkageType: ''
    returnType: void
    signature: void console_unmap_interface(struct console *con)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xs_gather
      Src: /src/xen/tools/console/daemon/io.c:685,1
    - Dst: snprintf
      Src: /src/xen/tools/console/daemon/io.c:701,1
    - Dst: xs_read
      Src: /src/xen/tools/console/daemon/io.c:702,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/io.c:703,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:704,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:707,1
    - Dst: console_unmap_interface
      Src: /src/xen/tools/console/daemon/io.c:711,1
    - Dst: xengnttab_map_grant_ref
      Src: /src/xen/tools/console/daemon/io.c:715,1
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/console/daemon/io.c:724,1
    - Dst: xc_evtchn_status
      Src: /src/xen/tools/console/daemon/io.c:739,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/console/daemon/io.c:747,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/console/daemon/io.c:751,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/console/daemon/io.c:757,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/console/daemon/io.c:762,1
    - Dst: console_create_tty
      Src: /src/xen/tools/console/daemon/io.c:770,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/console/daemon/io.c:772,1
    - Dst: create_console_log
      Src: /src/xen/tools/console/daemon/io.c:781,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 73
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 679
    functionDepth: 8
    functionLinenumber: 679
    functionLinenumberEnd: 789
    functionName: console_create_ring
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xenevtchn_open
    - free
    - xs_read
    - console_unmap_interface
    - console_create_tty
    - xc_evtchn_status
    - xenevtchn_bind_interdomain
    - create_console_log
    - xenforeignmemory_map
    - xs_gather
    - xengnttab_map_grant_ref
    - strcmp
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: int console_create_ring(struct console *con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/console/daemon/io.c:793,1
    - Dst: snprintf
      Src: /src/xen/tools/console/daemon/io.c:797,1
    - Dst: xs_watch
      Src: /src/xen/tools/console/daemon/io.c:799,1
    - Dst: console_iter_int_arg1
      Src: /src/xen/tools/console/daemon/io.c:801,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/console/daemon/io.c:803,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/console/daemon/io.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dom
    - watch
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 791
    functionDepth: 5
    functionLinenumber: 791
    functionLinenumberEnd: 809
    functionName: watch_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAX_STRLEN
    - xs_unwatch
    - xs_watch
    - console_iter_int_arg1
    linkageType: ''
    returnType: bool
    signature: bool watch_domain(struct domain *dom, bool watch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/xen/tools/console/daemon/io.c:820,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:821,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/console/daemon/io.c:841,1
    - Dst: realloc
      Src: /src/xen/tools/console/daemon/io.c:842,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:842,1
    - Dst: strlen
      Src: /src/xen/tools/console/daemon/io.c:843,1
    - Dst: strcat
      Src: /src/xen/tools/console/daemon/io.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 3
    argNames:
    - con
    - dom
    - data
    argTypes:
    - struct console*
    - struct domain*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 811
    functionDepth: 7
    functionLinenumber: 811
    functionLinenumberEnd: 854
    functionName: console_init
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 8
    functionsReached:
    - dolog
    - xs_get_domain_path
    - strlen
    - clock_gettime
    - realloc
    - strcat
    linkageType: ''
    returnType: int
    signature: int console_init(struct console *con, struct domain *dom, void **data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: console_free
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void console_free(struct console *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/console/daemon/io.c:867,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:869,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/io.c:871,1
    - Dst: console_iter_int_arg3
      Src: /src/xen/tools/console/daemon/io.c:876,1
    - Dst: watch_domain
      Src: /src/xen/tools/console/daemon/io.c:879,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:885,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:889,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 862
    functionDepth: 6
    functionLinenumber: 862
    functionLinenumberEnd: 892
    functionName: create_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 3
    functionsReached:
    - dolog
    - calloc
    - watch_domain
    - free
    - console_iter_int_arg3
    - console_iter_void_arg1
    - exit
    linkageType: ''
    returnType: struct domain
    signature: struct domain *create_domain(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 902
    functionName: lookup_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct domain
    signature: struct domain *lookup_domain(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:908,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 917
    functionName: remove_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - free
    - dolog
    linkageType: ''
    returnType: void
    signature: void remove_domain(struct domain *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:922,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:926,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 931
    functionName: console_cleanup
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - free
    - close
    linkageType: ''
    returnType: void
    signature: void console_cleanup(struct console *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:935,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:937,1
    - Dst: remove_domain
      Src: /src/xen/tools/console/daemon/io.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 940
    functionName: cleanup_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - remove_domain
    - console_iter_void_arg1
    linkageType: ''
    returnType: void
    signature: void cleanup_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_close
      Src: /src/xen/tools/console/daemon/io.c:945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: console_close_evtchn
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void console_close_evtchn(struct console *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watch_domain
      Src: /src/xen/tools/console/daemon/io.c:953,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:954,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: shutdown_domain
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - watch_domain
    - console_iter_void_arg1
    linkageType: ''
    returnType: void
    signature: void shutdown_domain(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/console/daemon/io.c:974,1
    - Dst: lookup_domain
      Src: /src/xen/tools/console/daemon/io.c:979,1
    - Dst: shutdown_domain
      Src: /src/xen/tools/console/daemon/io.c:982,1
    - Dst: create_domain
      Src: /src/xen/tools/console/daemon/io.c:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 990
    functionName: enum_domains
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - lookup_domain
    - create_domain
    - xc_domain_getinfolist
    - shutdown_domain
    linkageType: ''
    returnType: void
    signature: void enum_domains(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_mb
      Src: /src/xen/tools/console/daemon/io.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 1006
    functionName: ring_free_bytes
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xen_mb
    linkageType: ''
    returnType: int
    signature: int ring_free_bytes(struct console *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: console_close_tty
      Src: /src/xen/tools/console/daemon/io.c:1010,1
    - Dst: console_create_tty
      Src: /src/xen/tools/console/daemon/io.c:1013,1
    - Dst: shutdown_domain
      Src: /src/xen/tools/console/daemon/io.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - con
    - recreate
    argTypes:
    - struct console*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1008
    functionDepth: 7
    functionLinenumber: 1008
    functionLinenumberEnd: 1017
    functionName: console_handle_broken_tty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - shutdown_domain
    - console_close_tty
    - console_create_tty
    linkageType: ''
    returnType: void
    signature: void console_handle_broken_tty(struct console *con, int recreate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ring_free_bytes
      Src: /src/xen/tools/console/daemon/io.c:1031,1
    - Dst: read
      Src: /src/xen/tools/console/daemon/io.c:1038,1
    - Dst: console_handle_broken_tty
      Src: /src/xen/tools/console/daemon/io.c:1045,1
    - Dst: domain_is_valid
      Src: /src/xen/tools/console/daemon/io.c:1045,1
    - Dst: domain_is_valid
      Src: /src/xen/tools/console/daemon/io.c:1046,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/tools/console/daemon/io.c:1049,1
    - Dst: xen_wmb
      Src: /src/xen/tools/console/daemon/io.c:1052,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/console/daemon/io.c:1054,1
    - Dst: console_close_tty
      Src: /src/xen/tools/console/daemon/io.c:1056,1
    - Dst: shutdown_domain
      Src: /src/xen/tools/console/daemon/io.c:1057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1019
    functionDepth: 8
    functionLinenumber: 1019
    functionLinenumberEnd: 1059
    functionName: handle_tty_read
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - read
    - domain_is_valid
    - shutdown_domain
    - xenevtchn_notify
    - console_handle_broken_tty
    - xen_wmb
    - MASK_XENCONS_IDX
    - ring_free_bytes
    - console_close_tty
    linkageType: ''
    returnType: void
    signature: void handle_tty_read(struct console *con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/console/daemon/io.c:1069,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1072,1
    - Dst: console_handle_broken_tty
      Src: /src/xen/tools/console/daemon/io.c:1074,1
    - Dst: domain_is_valid
      Src: /src/xen/tools/console/daemon/io.c:1074,1
    - Dst: buffer_advance
      Src: /src/xen/tools/console/daemon/io.c:1076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1061
    functionDepth: 8
    functionLinenumber: 1061
    functionLinenumberEnd: 1078
    functionName: handle_tty_write
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - dolog
    - domain_is_valid
    - buffer_advance
    - console_handle_broken_tty
    - write
    linkageType: ''
    returnType: void
    signature: void handle_tty_write(struct console *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: console_enabled
      Src: /src/xen/tools/console/daemon/io.c:1084,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/console/daemon/io.c:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - con
    - data
    argTypes:
    - struct console*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1099
    functionName: console_evtchn_unmask
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - console_enabled
    linkageType: ''
    returnType: void
    signature: void console_evtchn_unmask(struct console *con, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/console/daemon/io.c:1108,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1112,1
    - Dst: buffer_append
      Src: /src/xen/tools/console/daemon/io.c:1120,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/console/daemon/io.c:1123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1124
    functionName: handle_ring_read
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - buffer_append
    - dolog
    - xenevtchn_pending
    linkageType: ''
    returnType: void
    signature: void handle_ring_read(struct console *con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle_ring_read
      Src: /src/xen/tools/console/daemon/io.c:1135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1126
    functionDepth: 4
    functionLinenumber: 1126
    functionLinenumberEnd: 1139
    functionName: handle_console_ring
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - handle_ring_read
    linkageType: ''
    returnType: void
    signature: void handle_console_ring(struct console *con)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_read_watch
      Src: /src/xen/tools/console/daemon/io.c:1148,1
    - Dst: strcmp
      Src: /src/xen/tools/console/daemon/io.c:1152,1
    - Dst: enum_domains
      Src: /src/xen/tools/console/daemon/io.c:1153,1
    - Dst: sscanf
      Src: /src/xen/tools/console/daemon/io.c:1154,1
    - Dst: lookup_domain
      Src: /src/xen/tools/console/daemon/io.c:1155,1
    - Dst: console_iter_int_arg1
      Src: /src/xen/tools/console/daemon/io.c:1159,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:1162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1141
    functionDepth: 4
    functionLinenumber: 1141
    functionLinenumberEnd: 1163
    functionName: handle_xs
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - console_iter_int_arg1
    - free
    - enum_domains
    - xs_read_watch
    - sscanf
    - lookup_domain
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handle_xs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/console/daemon/io.c:1173,1
    - Dst: xc_readconsolering
      Src: /src/xen/tools/console/daemon/io.c:1181,1
    - Dst: write_with_timestamp
      Src: /src/xen/tools/console/daemon/io.c:1186,1
    - Dst: write_all
      Src: /src/xen/tools/console/daemon/io.c:1189,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1192,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1193,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/console/daemon/io.c:1197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - xce_handle
    - force
    argTypes:
    - xenevtchn_handle*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1165
    functionDepth: 2
    functionLinenumber: 1165
    functionLinenumberEnd: 1198
    functionName: handle_hv_logs
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - write_all
    - dolog
    - xenevtchn_unmask
    - xc_readconsolering
    - strerror
    - xenevtchn_pending
    - write_with_timestamp
    linkageType: ''
    returnType: void
    signature: void handle_hv_logs(xenevtchn_handle *xce_handle, bool force)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: console_enabled
      Src: /src/xen/tools/console/daemon/io.c:1202,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:1204,1
    - Dst: create_console_log
      Src: /src/xen/tools/console/daemon/io.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1200
    functionDepth: 8
    functionLinenumber: 1200
    functionLinenumberEnd: 1207
    functionName: console_open_log
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - create_console_log
    - close
    - console_enabled
    linkageType: ''
    returnType: void
    signature: void console_open_log(struct console *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:1214,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:1220,1
    - Dst: create_hv_log
      Src: /src/xen/tools/console/daemon/io.c:1221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1223
    functionName: handle_log_reload
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - console_iter_void_arg1
    - create_hv_log
    - close
    linkageType: ''
    returnType: void
    signature: void handle_log_reload(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/tools/console/daemon/io.c:1236,1
    - Dst: realloc
      Src: /src/xen/tools/console/daemon/io.c:1238,1
    - Dst: memset
      Src: /src/xen/tools/console/daemon/io.c:1243,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - fd
    - events
    argTypes:
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1257
    functionName: set_fds
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - memset
    - ROUNDUP
    - dolog
    - realloc
    linkageType: ''
    returnType: int
    signature: int set_fds(int fd, short events)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/console/daemon/io.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1264
    functionName: reset_fds
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void reset_fds(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: buffer_available
      Src: /src/xen/tools/console/daemon/io.c:1276,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/console/daemon/io.c:1277,1
    - Dst: set_fds
      Src: /src/xen/tools/console/daemon/io.c:1278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - con
    - data
    argTypes:
    - struct console*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1284
    functionName: maybe_add_console_evtchn_fd
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - xenevtchn_fd
    - set_fds
    - buffer_available
    linkageType: ''
    returnType: void
    signature: void maybe_add_console_evtchn_fd(struct console *con, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ring_free_bytes
      Src: /src/xen/tools/console/daemon/io.c:1290,1
    - Dst: buffer_empty
      Src: /src/xen/tools/console/daemon/io.c:1293,1
    - Dst: set_fds
      Src: /src/xen/tools/console/daemon/io.c:1298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1286
    functionDepth: 1
    functionLinenumber: 1286
    functionLinenumberEnd: 1300
    functionName: maybe_add_console_tty_fd
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - ring_free_bytes
    - buffer_empty
    - set_fds
    linkageType: ''
    returnType: void
    signature: void maybe_add_console_tty_fd(struct console *con)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: console_handle_broken_tty
      Src: /src/xen/tools/console/daemon/io.c:1307,1
    - Dst: domain_is_valid
      Src: /src/xen/tools/console/daemon/io.c:1307,1
    - Dst: handle_tty_read
      Src: /src/xen/tools/console/daemon/io.c:1311,1
    - Dst: handle_tty_write
      Src: /src/xen/tools/console/daemon/io.c:1314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct console*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1302
    functionDepth: 9
    functionLinenumber: 1302
    functionLinenumberEnd: 1318
    functionName: handle_console_tty
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 0
    functionsReached:
    - handle_tty_write
    - console_handle_broken_tty
    - domain_is_valid
    - handle_tty_read
    linkageType: ''
    returnType: void
    signature: void handle_console_tty(struct console *con)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/console/daemon/io.c:1329,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1331,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1332,1
    - Dst: create_hv_log
      Src: /src/xen/tools/console/daemon/io.c:1335,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/console/daemon/io.c:1338,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1340,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1341,1
    - Dst: handle_hv_logs
      Src: /src/xen/tools/console/daemon/io.c:1345,1
    - Dst: xengnttab_open
      Src: /src/xen/tools/console/daemon/io.c:1348,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1350,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1351,1
    - Dst: xenforeignmemory_open
      Src: /src/xen/tools/console/daemon/io.c:1354,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1356,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1358,1
    - Dst: enum_domains
      Src: /src/xen/tools/console/daemon/io.c:1362,1
    - Dst: reset_fds
      Src: /src/xen/tools/console/daemon/io.c:1370,1
    - Dst: set_fds
      Src: /src/xen/tools/console/daemon/io.c:1372,1
    - Dst: xs_fileno
      Src: /src/xen/tools/console/daemon/io.c:1372,1
    - Dst: set_fds
      Src: /src/xen/tools/console/daemon/io.c:1375,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/console/daemon/io.c:1375,1
    - Dst: clock_gettime
      Src: /src/xen/tools/console/daemon/io.c:1378,1
    - Dst: console_iter_void_arg2
      Src: /src/xen/tools/console/daemon/io.c:1386,1
    - Dst: console_iter_void_arg2
      Src: /src/xen/tools/console/daemon/io.c:1388,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:1391,1
    - Dst: poll
      Src: /src/xen/tools/console/daemon/io.c:1403,1
    - Dst: handle_log_reload
      Src: /src/xen/tools/console/daemon/io.c:1408,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1419,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1420,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1426,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1428,1
    - Dst: handle_hv_logs
      Src: /src/xen/tools/console/daemon/io.c:1431,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/io.c:1441,1
    - Dst: strerror
      Src: /src/xen/tools/console/daemon/io.c:1443,1
    - Dst: handle_xs
      Src: /src/xen/tools/console/daemon/io.c:1446,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:1455,1
    - Dst: console_iter_void_arg1
      Src: /src/xen/tools/console/daemon/io.c:1457,1
    - Dst: shutdown_domain
      Src: /src/xen/tools/console/daemon/io.c:1460,1
    - Dst: cleanup_domain
      Src: /src/xen/tools/console/daemon/io.c:1463,1
    - Dst: free
      Src: /src/xen/tools/console/daemon/io.c:1467,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/io.c:1472,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/console/daemon/io.c:1476,1
    - Dst: xengnttab_close
      Src: /src/xen/tools/console/daemon/io.c:1480,1
    - Dst: xenforeignmemory_close
      Src: /src/xen/tools/console/daemon/io.c:1484,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1488
    functionName: handle_io
    functionSourceFile: /src/xen/tools/console/daemon/io.c
    functionUses: 1
    functionsReached:
    - dolog
    - enum_domains
    - shutdown_domain
    - xs_fileno
    - xengnttab_close
    - clock_gettime
    - xenevtchn_open
    - free
    - close
    - set_fds
    - reset_fds
    - xenforeignmemory_close
    - create_hv_log
    - cleanup_domain
    - poll
    - console_iter_void_arg2
    - handle_log_reload
    - xenevtchn_fd
    - handle_xs
    - xenforeignmemory_open
    - xenevtchn_bind_virq
    - xengnttab_open
    - strerror
    - handle_hv_logs
    - console_iter_void_arg1
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void handle_io(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/xen/tools/console/daemon/utils.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: child_exit
    functionSourceFile: /src/xen/tools/console/daemon/utils.c
    functionUses: 0
    functionsReached:
    - waitpid
    linkageType: ''
    returnType: void
    signature: void child_exit(int sig)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/xen/tools/console/daemon/utils.c:54,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:55,1
    - Dst: err
      Src: /src/xen/tools/console/daemon/utils.c:57,1
    - Dst: setsid
      Src: /src/xen/tools/console/daemon/utils.c:60,1
    - Dst: fork
      Src: /src/xen/tools/console/daemon/utils.c:62,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:63,1
    - Dst: err
      Src: /src/xen/tools/console/daemon/utils.c:65,1
    - Dst: open
      Src: /src/xen/tools/console/daemon/utils.c:69,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:70,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/utils.c:74,1
    - Dst: dup2
      Src: /src/xen/tools/console/daemon/utils.c:75,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/utils.c:78,1
    - Dst: umask
      Src: /src/xen/tools/console/daemon/utils.c:80,1
    - Dst: chdir
      Src: /src/xen/tools/console/daemon/utils.c:81,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:82,1
    - Dst: open
      Src: /src/xen/tools/console/daemon/utils.c:84,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:86,1
    - Dst: lockf
      Src: /src/xen/tools/console/daemon/utils.c:89,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:90,1
    - Dst: snprintf
      Src: /src/xen/tools/console/daemon/utils.c:93,1
    - Dst: getpid
      Src: /src/xen/tools/console/daemon/utils.c:93,1
    - Dst: write
      Src: /src/xen/tools/console/daemon/utils.c:94,1
    - Dst: exit
      Src: /src/xen/tools/console/daemon/utils.c:95,1
    - Dst: signal
      Src: /src/xen/tools/console/daemon/utils.c:97,1
    - Dst: signal
      Src: /src/xen/tools/console/daemon/utils.c:98,1
    - Dst: signal
      Src: /src/xen/tools/console/daemon/utils.c:99,1
    - Dst: signal
      Src: /src/xen/tools/console/daemon/utils.c:100,1
    - Dst: close
      Src: /src/xen/tools/console/daemon/utils.c:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - pidfile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 102
    functionName: daemonize
    functionSourceFile: /src/xen/tools/console/daemon/utils.c
    functionUses: 5
    functionsReached:
    - snprintf
    - err
    - open
    - chdir
    - umask
    - dup2
    - signal
    - close
    - setsid
    - getpid
    - exit
    - fork
    - write
    - lockf
    linkageType: ''
    returnType: void
    signature: void daemonize(const char *pidfile)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/console/daemon/utils.c:107,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/utils.c:109,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/console/daemon/utils.c:114,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/utils.c:116,1
    - Dst: xs_watch
      Src: /src/xen/tools/console/daemon/utils.c:120,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/utils.c:121,1
    - Dst: xs_watch
      Src: /src/xen/tools/console/daemon/utils.c:125,1
    - Dst: dolog
      Src: /src/xen/tools/console/daemon/utils.c:126,1
    - Dst: xs_close
      Src: /src/xen/tools/console/daemon/utils.c:134,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/console/daemon/utils.c:136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 104
    functionDepth: 5
    functionLinenumber: 104
    functionLinenumberEnd: 138
    functionName: xen_setup
    functionSourceFile: /src/xen/tools/console/daemon/utils.c
    functionUses: 1
    functionsReached:
    - xs_open
    - dolog
    - xc_interface_open
    - xs_watch
    - xc_interface_close
    - xs_close
    linkageType: ''
    returnType: bool
    signature: bool xen_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/procpipe.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: usage
    functionSourceFile: /src/xen/tools/console/testsuite/procpipe.c
    functionUses: 14
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/procpipe.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: version
    functionSourceFile: /src/xen/tools/console/testsuite/procpipe.c
    functionUses: 29
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/xen/tools/console/testsuite/procpipe.c:51,1
    - Dst: close
      Src: /src/xen/tools/console/testsuite/procpipe.c:53,1
    - Dst: dup2
      Src: /src/xen/tools/console/testsuite/procpipe.c:54,1
    - Dst: close
      Src: /src/xen/tools/console/testsuite/procpipe.c:55,1
    - Dst: dup2
      Src: /src/xen/tools/console/testsuite/procpipe.c:56,1
    - Dst: execlp
      Src: /src/xen/tools/console/testsuite/procpipe.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - stdout
    - stdin
    - cmd
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: exec
    functionSourceFile: /src/xen/tools/console/testsuite/procpipe.c
    functionUses: 45
    functionsReached:
    - fork
    - dup2
    - execlp
    - close
    linkageType: ''
    returnType: pid_t
    signature: pid_t exec(int stdout, int stdin, const char *cmd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/console/testsuite/procpipe.c:79,1
    - Dst: usage
      Src: /src/xen/tools/console/testsuite/procpipe.c:82,1
    - Dst: exit
      Src: /src/xen/tools/console/testsuite/procpipe.c:83,1
    - Dst: version
      Src: /src/xen/tools/console/testsuite/procpipe.c:85,1
    - Dst: exit
      Src: /src/xen/tools/console/testsuite/procpipe.c:86,1
    - Dst: errx
      Src: /src/xen/tools/console/testsuite/procpipe.c:88,1
    - Dst: errx
      Src: /src/xen/tools/console/testsuite/procpipe.c:94,1
    - Dst: pipe
      Src: /src/xen/tools/console/testsuite/procpipe.c:98,1
    - Dst: err
      Src: /src/xen/tools/console/testsuite/procpipe.c:100,1
    - Dst: pipe
      Src: /src/xen/tools/console/testsuite/procpipe.c:103,1
    - Dst: err
      Src: /src/xen/tools/console/testsuite/procpipe.c:105,1
    - Dst: exec
      Src: /src/xen/tools/console/testsuite/procpipe.c:108,1
    - Dst: err
      Src: /src/xen/tools/console/testsuite/procpipe.c:110,1
    - Dst: exec
      Src: /src/xen/tools/console/testsuite/procpipe.c:113,1
    - Dst: err
      Src: /src/xen/tools/console/testsuite/procpipe.c:115,1
    - Dst: waitpid
      Src: /src/xen/tools/console/testsuite/procpipe.c:118,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/console/testsuite/procpipe.c:119,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/console/testsuite/procpipe.c:119,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/procpipe.c:122,1
    - Dst: waitpid
      Src: /src/xen/tools/console/testsuite/procpipe.c:125,1
    - Dst: WIFEXITED
      Src: /src/xen/tools/console/testsuite/procpipe.c:126,1
    - Dst: WEXITSTATUS
      Src: /src/xen/tools/console/testsuite/procpipe.c:126,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/procpipe.c:129,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 133
    functionName: main
    functionSourceFile: /src/xen/tools/console/testsuite/procpipe.c
    functionUses: 129
    functionsReached:
    - err
    - WEXITSTATUS
    - waitpid
    - getopt_long
    - errx
    - version
    - pipe
    - printf
    - exit
    - WIFEXITED
    - usage
    - exec
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: MIN
    functionSourceFile: /src/xen/tools/console/testsuite/console-dom0.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-dom0.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: generate_random_buffer
    functionSourceFile: /src/xen/tools/console/testsuite/console-dom0.c
    functionUses: 0
    functionsReached:
    - random
    linkageType: ''
    returnType: void
    signature: void generate_random_buffer(char *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: canonicalize
    functionSourceFile: /src/xen/tools/console/testsuite/console-dom0.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void canonicalize(char *buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/xen/tools/console/testsuite/console-dom0.c:45,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/testsuite/console-dom0.c:46,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/testsuite/console-dom0.c:47,1
    - Dst: tcgetattr
      Src: /src/xen/tools/console/testsuite/console-dom0.c:49,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/testsuite/console-dom0.c:50,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/testsuite/console-dom0.c:51,1
    - Dst: fgets
      Src: /src/xen/tools/console/testsuite/console-dom0.c:53,1
    - Dst: canonicalize
      Src: /src/xen/tools/console/testsuite/console-dom0.c:54,1
    - Dst: strcmp
      Src: /src/xen/tools/console/testsuite/console-dom0.c:56,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:59,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:64,1
    - Dst: time
      Src: /src/xen/tools/console/testsuite/console-dom0.c:68,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:70,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-dom0.c:70,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:72,1
    - Dst: fgets
      Src: /src/xen/tools/console/testsuite/console-dom0.c:73,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:75,1
    - Dst: canonicalize
      Src: /src/xen/tools/console/testsuite/console-dom0.c:79,1
    - Dst: strcmp
      Src: /src/xen/tools/console/testsuite/console-dom0.c:80,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:81,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:82,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:85,1
    - Dst: srandom
      Src: /src/xen/tools/console/testsuite/console-dom0.c:88,1
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-dom0.c:90,1
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-dom0.c:92,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:94,1
    - Dst: generate_random_buffer
      Src: /src/xen/tools/console/testsuite/console-dom0.c:96,1
    - Dst: fwrite
      Src: /src/xen/tools/console/testsuite/console-dom0.c:97,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-dom0.c:98,1
    - Dst: fgets
      Src: /src/xen/tools/console/testsuite/console-dom0.c:101,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:103,1
    - Dst: canonicalize
      Src: /src/xen/tools/console/testsuite/console-dom0.c:107,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:108,1
    - Dst: strcmp
      Src: /src/xen/tools/console/testsuite/console-dom0.c:109,1
    - Dst: fprintf
      Src: /src/xen/tools/console/testsuite/console-dom0.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 117
    functionName: main
    functionSourceFile: /src/xen/tools/console/testsuite/console-dom0.c
    functionUses: 129
    functionsReached:
    - tcsetattr
    - time
    - random
    - strcmp
    - fflush
    - srandom
    - fprintf
    - printf
    - tcgetattr
    - fwrite
    - fgets
    - cfmakeraw
    - canonicalize
    - generate_random_buffer
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: canonicalize
    functionSourceFile: /src/xen/tools/console/testsuite/console-domU.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void canonicalize(char *buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/xen/tools/console/testsuite/console-domU.c:33,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/testsuite/console-domU.c:34,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/testsuite/console-domU.c:35,1
    - Dst: tcgetattr
      Src: /src/xen/tools/console/testsuite/console-domU.c:37,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/testsuite/console-domU.c:38,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/testsuite/console-domU.c:39,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:41,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-domU.c:41,1
    - Dst: fgets
      Src: /src/xen/tools/console/testsuite/console-domU.c:42,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:44,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-domU.c:44,1
    - Dst: canonicalize
      Src: /src/xen/tools/console/testsuite/console-domU.c:48,1
    - Dst: strtoul
      Src: /src/xen/tools/console/testsuite/console-domU.c:49,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:51,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-domU.c:51,1
    - Dst: srandom
      Src: /src/xen/tools/console/testsuite/console-domU.c:53,1
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-domU.c:55,1
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-domU.c:56,1
    - Dst: fgetc
      Src: /src/xen/tools/console/testsuite/console-domU.c:62,1
    - Dst: random
      Src: /src/xen/tools/console/testsuite/console-domU.c:63,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:65,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-domU.c:67,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:69,1
    - Dst: printf
      Src: /src/xen/tools/console/testsuite/console-domU.c:72,1
    - Dst: fflush
      Src: /src/xen/tools/console/testsuite/console-domU.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 76
    functionName: main
    functionSourceFile: /src/xen/tools/console/testsuite/console-domU.c
    functionUses: 129
    functionsReached:
    - tcsetattr
    - random
    - fflush
    - srandom
    - printf
    - tcgetattr
    - fgets
    - cfmakeraw
    - canonicalize
    - fgetc
    - strtoul
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: sighandler
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sighandler(int signum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/console/client/main.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: write_sync
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: bool
    signature: bool write_sync(int fd, const void *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/console/client/main.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: usage
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 15
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - termios_p
    argTypes:
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: cfmakeraw
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cfmakeraw(struct termios *termios_p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xs_fileno
      Src: /src/xen/tools/console/client/main.c:105,1
    - Dst: time
      Src: /src/xen/tools/console/client/main.c:110,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/console/client/main.c:114,1
    - Dst: FD_SET
      Src: /src/xen/tools/console/client/main.c:115,1
    - Dst: select
      Src: /src/xen/tools/console/client/main.c:116,1
    - Dst: xs_read_watch
      Src: /src/xen/tools/console/client/main.c:118,1
    - Dst: free
      Src: /src/xen/tools/console/client/main.c:119,1
    - Dst: xs_read
      Src: /src/xen/tools/console/client/main.c:122,1
    - Dst: open
      Src: /src/xen/tools/console/client/main.c:124,1
    - Dst: warn
      Src: /src/xen/tools/console/client/main.c:126,1
    - Dst: free
      Src: /src/xen/tools/console/client/main.c:128,1
    - Dst: time
      Src: /src/xen/tools/console/client/main.c:130,1
    - Dst: tcgetattr
      Src: /src/xen/tools/console/client/main.c:147,1
    - Dst: ioctl
      Src: /src/xen/tools/console/client/main.c:148,1
    - Dst: ioctl
      Src: /src/xen/tools/console/client/main.c:149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - xs
    - path
    - seconds
    argTypes:
    - struct xs_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 155
    functionName: get_pty_fd
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - open
    - FD_SET
    - time
    - free
    - FD_ZERO
    - warn
    - xs_read
    - xs_read_watch
    - xs_fileno
    - select
    - tcgetattr
    - ioctl
    linkageType: ''
    returnType: int
    signature: int get_pty_fd(struct xs_handle *xs, char *path, int seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/xen/tools/console/client/main.c:163,1
    - Dst: cfmakeraw
      Src: /src/xen/tools/console/client/main.c:167,1
    - Dst: tcsetattr
      Src: /src/xen/tools/console/client/main.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - old
    argTypes:
    - int
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: init_term
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - tcgetattr
    - cfmakeraw
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void init_term(int fd, struct termios *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tcsetattr
      Src: /src/xen/tools/console/client/main.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - old
    argTypes:
    - int
    - struct termios*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: restore_term
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void restore_term(int fd, struct termios *old)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: xs_fileno
      Src: /src/xen/tools/console/client/main.c:180,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/console/client/main.c:185,1
    - Dst: FD_SET
      Src: /src/xen/tools/console/client/main.c:187,1
    - Dst: FD_SET
      Src: /src/xen/tools/console/client/main.c:190,1
    - Dst: FD_SET
      Src: /src/xen/tools/console/client/main.c:192,1
    - Dst: select
      Src: /src/xen/tools/console/client/main.c:195,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/console/client/main.c:203,1
    - Dst: xs_fileno
      Src: /src/xen/tools/console/client/main.c:203,1
    - Dst: get_pty_fd
      Src: /src/xen/tools/console/client/main.c:204,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:206,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/console/client/main.c:214,1
    - Dst: read
      Src: /src/xen/tools/console/client/main.c:218,1
    - Dst: write_sync
      Src: /src/xen/tools/console/client/main.c:231,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:232,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/console/client/main.c:238,1
    - Dst: read
      Src: /src/xen/tools/console/client/main.c:242,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:248,1
    - Dst: write_sync
      Src: /src/xen/tools/console/client/main.c:253,1
    - Dst: perror
      Src: /src/xen/tools/console/client/main.c:254,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 63
    argCount: 5
    argNames:
    - fd
    - xs
    - pty_path
    - interactive
    - escape_character
    argTypes:
    - int
    - struct xs_handle*
    - char*
    - bool
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 177
    functionDepth: 7
    functionLinenumber: 177
    functionLinenumberEnd: 261
    functionName: console_loop
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - read
    - FD_SET
    - FD_ZERO
    - FD_ISSET
    - close
    - write_sync
    - get_pty_fd
    - xs_fileno
    - select
    - perror
    linkageType: ''
    returnType: int
    signature: "int console_loop(int fd, struct xs_handle *xs, char *pty_path,\n\t\t\tbool
      interactive, char escape_character)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: restore_term
      Src: /src/xen/tools/console/client/main.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: restore_term_stdin
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - restore_term
    linkageType: ''
    returnType: void
    signature: void restore_term_stdin(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/console/client/main.c:286,1
    - Dst: open
      Src: /src/xen/tools/console/client/main.c:289,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:291,1
    - Dst: flock
      Src: /src/xen/tools/console/client/main.c:293,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:297,1
    - Dst: fstat
      Src: /src/xen/tools/console/client/main.c:299,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:300,1
    - Dst: stat
      Src: /src/xen/tools/console/client/main.c:301,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:303,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 314
    functionName: console_lock
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - snprintf
    - err
    - open
    - stat
    - flock
    - close
    - fstat
    linkageType: ''
    returnType: void
    signature: void console_lock(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/xen/tools/console/client/main.c:319,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: console_unlock
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 0
    functionsReached:
    - close
    - unlink
    linkageType: ''
    returnType: void
    signature: void console_unlock(void)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/console/client/main.c:352,1
    - Dst: usage
      Src: /src/xen/tools/console/client/main.c:355,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:356,1
    - Dst: atoi
      Src: /src/xen/tools/console/client/main.c:359,1
    - Dst: strcmp
      Src: /src/xen/tools/console/client/main.c:362,1
    - Dst: strcmp
      Src: /src/xen/tools/console/client/main.c:364,1
    - Dst: strcmp
      Src: /src/xen/tools/console/client/main.c:366,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:369,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:370,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:372,1
    - Dst: atoi
      Src: /src/xen/tools/console/client/main.c:376,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:387,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:388,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:392,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:393,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:395,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:400,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:401,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:403,1
    - Dst: strtol
      Src: /src/xen/tools/console/client/main.c:405,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:407,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:408,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:410,1
    - Dst: xs_open
      Src: /src/xen/tools/console/client/main.c:413,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:415,1
    - Dst: signal
      Src: /src/xen/tools/console/client/main.c:418,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/console/client/main.c:420,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:422,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/console/client/main.c:425,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:427,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/console/client/main.c:428,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/console/client/main.c:429,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:430,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/console/client/main.c:437,1
    - Dst: malloc
      Src: /src/xen/tools/console/client/main.c:439,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:439,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:439,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:441,1
    - Dst: snprintf
      Src: /src/xen/tools/console/client/main.c:443,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:443,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:443,1
    - Dst: xs_read
      Src: /src/xen/tools/console/client/main.c:444,1
    - Dst: free
      Src: /src/xen/tools/console/client/main.c:445,1
    - Dst: snprintf
      Src: /src/xen/tools/console/client/main.c:452,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:452,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:452,1
    - Dst: snprintf
      Src: /src/xen/tools/console/client/main.c:454,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:454,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:454,1
    - Dst: snprintf
      Src: /src/xen/tools/console/client/main.c:457,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:457,1
    - Dst: strlen
      Src: /src/xen/tools/console/client/main.c:457,1
    - Dst: fprintf
      Src: /src/xen/tools/console/client/main.c:466,1
    - Dst: exit
      Src: /src/xen/tools/console/client/main.c:467,1
    - Dst: console_lock
      Src: /src/xen/tools/console/client/main.c:470,1
    - Dst: atexit
      Src: /src/xen/tools/console/client/main.c:471,1
    - Dst: xs_watch
      Src: /src/xen/tools/console/client/main.c:474,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:475,1
    - Dst: xs_fileno
      Src: /src/xen/tools/console/client/main.c:476,1
    - Dst: get_pty_fd
      Src: /src/xen/tools/console/client/main.c:482,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:484,1
    - Dst: init_term
      Src: /src/xen/tools/console/client/main.c:487,1
    - Dst: isatty
      Src: /src/xen/tools/console/client/main.c:488,1
    - Dst: isatty
      Src: /src/xen/tools/console/client/main.c:488,1
    - Dst: init_term
      Src: /src/xen/tools/console/client/main.c:490,1
    - Dst: atexit
      Src: /src/xen/tools/console/client/main.c:491,1
    - Dst: write
      Src: /src/xen/tools/console/client/main.c:500,1
    - Dst: err
      Src: /src/xen/tools/console/client/main.c:504,1
    - Dst: close
      Src: /src/xen/tools/console/client/main.c:506,1
    - Dst: console_loop
      Src: /src/xen/tools/console/client/main.c:509,1
    - Dst: free
      Src: /src/xen/tools/console/client/main.c:511,1
    - Dst: free
      Src: /src/xen/tools/console/client/main.c:512,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 123
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 324
    functionDepth: 8
    functionLinenumber: 324
    functionLinenumberEnd: 514
    functionName: main
    functionSourceFile: /src/xen/tools/console/client/main.c
    functionUses: 129
    functionsReached:
    - snprintf
    - err
    - xs_get_domain_path
    - xs_read
    - xc_interface_open
    - xs_fileno
    - strlen
    - strcmp
    - write
    - xs_open
    - free
    - signal
    - malloc
    - close
    - xs_watch
    - init_term
    - console_loop
    - console_lock
    - getopt_long
    - get_pty_fd
    - fprintf
    - strtol
    - exit
    - atexit
    - xc_domain_getinfo_single
    - isatty
    - xc_interface_close
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/xen/tools/xenpmd/xenpmd.c:110,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:113,1
    - Dst: asprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:116,1
    - Dst: asprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:119,1
    - Dst: fopen
      Src: /src/xen/tools/xenpmd/xenpmd.c:124,1
    - Dst: free
      Src: /src/xen/tools/xenpmd/xenpmd.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - battery_dir
    - battery_info_type
    argTypes:
    - DIR*
    - enum BATTERY_INFO_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 129
    functionName: get_next_battery_file
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - fopen
    - asprintf
    - free
    - strlen
    - readdir
    linkageType: ''
    returnType: FILE
    signature: "FILE *get_next_battery_file(DIR *battery_dir, \n                            enum
      BATTERY_INFO_TYPE battery_info_type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:135,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:137,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:142,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:144,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:148,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:150,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:154,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:156,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:160,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:162,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:166,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:168,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:172,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:174,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:178,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:180,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:184,1
    - Dst: strncmp
      Src: /src/xen/tools/xenpmd/xenpmd.c:186,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:187,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:194,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:196,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:201,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:203,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:208,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:210,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:215,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:217,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 3
    argNames:
    - attrib_name
    - attrib_value
    - info
    argTypes:
    - char*
    - char*
    - struct battery_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 223
    functionName: set_attribute_battery_info
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - strncpy
    - strncmp
    - strlen
    - strstr
    - strtoull
    linkageType: ''
    returnType: void
    signature: "void set_attribute_battery_info(char *attrib_name,\n                                char
      *attrib_value,\n                                struct battery_info *info)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:229,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:232,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:239,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:241,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:245,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:247,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:251,1
    - Dst: strtoull
      Src: /src/xen/tools/xenpmd/xenpmd.c:253,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:257,1
    - Dst: strstr
      Src: /src/xen/tools/xenpmd/xenpmd.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - attrib_name
    - attrib_value
    - status
    argTypes:
    - char*
    - char*
    - struct battery_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 263
    functionName: set_attribute_battery_status
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - strstr
    - strtoull
    linkageType: ''
    returnType: void
    signature: "void set_attribute_battery_status(char *attrib_name, \n                                  char
      *attrib_value,\n                                  struct battery_status *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:274,1
    - Dst: strchr
      Src: /src/xen/tools/xenpmd/xenpmd.c:275,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:280,1
    - Dst: strncpy
      Src: /src/xen/tools/xenpmd/xenpmd.c:287,1
    - Dst: set_attribute_battery_info
      Src: /src/xen/tools/xenpmd/xenpmd.c:291,1
    - Dst: set_attribute_battery_status
      Src: /src/xen/tools/xenpmd/xenpmd.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - line_info
    - type
    - info_or_status
    argTypes:
    - char*
    - enum BATTERY_INFO_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 298
    functionName: parse_battery_info_or_status
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - set_attribute_battery_info
    - strchr
    - strncpy
    - strlen
    - set_attribute_battery_status
    linkageType: ''
    returnType: void
    signature: "void parse_battery_info_or_status(char *line_info,\n                                  enum
      BATTERY_INFO_TYPE type,\n                                  void *info_or_status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xenpmd/xenpmd.c:311,1
    - Dst: memset
      Src: /src/xen/tools/xenpmd/xenpmd.c:313,1
    - Dst: get_next_battery_file
      Src: /src/xen/tools/xenpmd/xenpmd.c:315,1
    - Dst: fgets
      Src: /src/xen/tools/xenpmd/xenpmd.c:319,1
    - Dst: parse_battery_info_or_status
      Src: /src/xen/tools/xenpmd/xenpmd.c:320,1
    - Dst: fclose
      Src: /src/xen/tools/xenpmd/xenpmd.c:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - battery_dir
    - type
    - info_or_status
    argTypes:
    - DIR*
    - enum BATTERY_INFO_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 300
    functionDepth: 4
    functionLinenumber: 300
    functionLinenumberEnd: 324
    functionName: get_next_battery_info_or_status
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - parse_battery_info_or_status
    - fclose
    - memset
    - fgets
    - get_next_battery_file
    linkageType: ''
    returnType: int
    signature: "int get_next_battery_info_or_status(DIR *battery_dir,\n                                    enum
      BATTERY_INFO_TYPE type,\n                                    void *info_or_status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:329,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:330,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:331,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:332,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:333,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:334,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:335,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:336,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:337,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:338,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:339,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:340,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct battery_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: print_battery_info
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_battery_info(struct battery_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - temp_val
    - val
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: write_ulong_lsb_first
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void write_ulong_lsb_first(char *temp_val, unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_mkdir
      Src: /src/xen/tools/xenpmd/xenpmd.c:357,1
    - Dst: memset
      Src: /src/xen/tools/xenpmd/xenpmd.c:359,1
    - Dst: memset
      Src: /src/xen/tools/xenpmd/xenpmd.c:360,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:362,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:362,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:363,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:363,1
    - Dst: assert
      Src: /src/xen/tools/xenpmd/xenpmd.c:364,1
    - Dst: snprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:365,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:366,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:367,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:368,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:369,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:370,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:371,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:372,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:373,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:374,1
    - Dst: snprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:376,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:377,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:378,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:379,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:380,1
    - Dst: strncat
      Src: /src/xen/tools/xenpmd/xenpmd.c:381,1
    - Dst: xs_write
      Src: /src/xen/tools/xenpmd/xenpmd.c:382,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:383,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:383,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:384,1
    - Dst: strlen
      Src: /src/xen/tools/xenpmd/xenpmd.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct battery_info*
    assertStmts:
    - condition: (len < 255)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    constantsTouched: []
    func_position:
      end: 385
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 385
    functionName: write_battery_info_to_xenstore
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - xs_mkdir
    - snprintf
    - xs_write
    - strncat
    - write_ulong_lsb_first
    - strlen
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void write_battery_info_to_xenstore(struct battery_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/xenpmd/xenpmd.c:393,1
    - Dst: get_next_battery_info_or_status
      Src: /src/xen/tools/xenpmd/xenpmd.c:397,1
    - Dst: print_battery_info
      Src: /src/xen/tools/xenpmd/xenpmd.c:400,1
    - Dst: write_battery_info_to_xenstore
      Src: /src/xen/tools/xenpmd/xenpmd.c:404,1
    - Dst: closedir
      Src: /src/xen/tools/xenpmd/xenpmd.c:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 387
    functionDepth: 7
    functionLinenumber: 387
    functionLinenumberEnd: 412
    functionName: write_one_time_battery_info
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - print_battery_info
    - get_next_battery_info_or_status
    - opendir
    - write_battery_info_to_xenstore
    - closedir
    linkageType: ''
    returnType: int
    signature: int write_one_time_battery_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:417,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:418,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:419,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:420,1
    - Dst: printf
      Src: /src/xen/tools/xenpmd/xenpmd.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - status
    argTypes:
    - struct battery_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: print_battery_status
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_battery_status(struct battery_status *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_mkdir
      Src: /src/xen/tools/xenpmd/xenpmd.c:429,1
    - Dst: memset
      Src: /src/xen/tools/xenpmd/xenpmd.c:431,1
    - Dst: snprintf
      Src: /src/xen/tools/xenpmd/xenpmd.c:432,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:433,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:434,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:435,1
    - Dst: write_ulong_lsb_first
      Src: /src/xen/tools/xenpmd/xenpmd.c:436,1
    - Dst: xs_write
      Src: /src/xen/tools/xenpmd/xenpmd.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - status
    argTypes:
    - struct battery_status*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 439
    functionName: write_battery_status_to_xenstore
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - xs_mkdir
    - snprintf
    - xs_write
    - write_ulong_lsb_first
    - memset
    linkageType: ''
    returnType: void
    signature: void write_battery_status_to_xenstore(struct battery_status *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/xen/tools/xenpmd/xenpmd.c:453,1
    - Dst: get_next_battery_info_or_status
      Src: /src/xen/tools/xenpmd/xenpmd.c:457,1
    - Dst: print_battery_status
      Src: /src/xen/tools/xenpmd/xenpmd.c:460,1
    - Dst: write_battery_status_to_xenstore
      Src: /src/xen/tools/xenpmd/xenpmd.c:464,1
    - Dst: closedir
      Src: /src/xen/tools/xenpmd/xenpmd.c:473,1
    - Dst: xs_watch
      Src: /src/xen/tools/xenpmd/xenpmd.c:474,1
    - Dst: xs_read_watch
      Src: /src/xen/tools/xenpmd/xenpmd.c:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 441
    functionDepth: 7
    functionLinenumber: 441
    functionLinenumberEnd: 479
    functionName: wait_for_and_update_battery_status_request
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 0
    functionsReached:
    - get_next_battery_info_or_status
    - xs_read_watch
    - opendir
    - write_battery_status_to_xenstore
    - print_battery_status
    - xs_watch
    - closedir
    linkageType: ''
    returnType: int
    signature: int wait_for_and_update_battery_status_request(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/xen/tools/xenpmd/xenpmd.c:486,1
    - Dst: exit
      Src: /src/xen/tools/xenpmd/xenpmd.c:487,1
    - Dst: exit
      Src: /src/xen/tools/xenpmd/xenpmd.c:490,1
    - Dst: setsid
      Src: /src/xen/tools/xenpmd/xenpmd.c:492,1
    - Dst: fork
      Src: /src/xen/tools/xenpmd/xenpmd.c:494,1
    - Dst: exit
      Src: /src/xen/tools/xenpmd/xenpmd.c:495,1
    - Dst: exit
      Src: /src/xen/tools/xenpmd/xenpmd.c:498,1
    - Dst: chdir
      Src: /src/xen/tools/xenpmd/xenpmd.c:500,1
    - Dst: exit
      Src: /src/xen/tools/xenpmd/xenpmd.c:501,1
    - Dst: umask
      Src: /src/xen/tools/xenpmd/xenpmd.c:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 504
    functionName: daemonize
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 5
    functionsReached:
    - chdir
    - umask
    - setsid
    - exit
    - fork
    linkageType: ''
    returnType: void
    signature: void daemonize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: daemonize
      Src: /src/xen/tools/xenpmd/xenpmd.c:509,1
    - Dst: xs_open
      Src: /src/xen/tools/xenpmd/xenpmd.c:511,1
    - Dst: write_one_time_battery_info
      Src: /src/xen/tools/xenpmd/xenpmd.c:515,1
    - Dst: xs_close
      Src: /src/xen/tools/xenpmd/xenpmd.c:517,1
    - Dst: wait_for_and_update_battery_status_request
      Src: /src/xen/tools/xenpmd/xenpmd.c:521,1
    - Dst: xs_close
      Src: /src/xen/tools/xenpmd/xenpmd.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 8
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: main
    functionSourceFile: /src/xen/tools/xenpmd/xenpmd.c
    functionUses: 129
    functionsReached:
    - daemonize
    - xs_open
    - write_one_time_battery_info
    - xs_close
    - wait_for_and_update_battery_status_request
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_control.c:15,1
    - Dst: realloc
      Src: /src/xen/tools/xs-clients/xenstore_control.c:20,1
    - Dst: strcpy
      Src: /src/xen/tools/xs-clients/xenstore_control.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - val
    - len
    argTypes:
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 27
    functionName: add_to_buf
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - realloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int add_to_buf(char **buf, const char *val, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:36,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:38,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:39,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:40,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:41,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:43,1
    - Dst: asprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:45,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:46,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:49,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:50,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:51,1
    - Dst: strdup
      Src: /src/xen/tools/xs-clients/xenstore_control.c:56,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:58,1
    - Dst: time
      Src: /src/xen/tools/xs-clients/xenstore_control.c:62,1
    - Dst: time
      Src: /src/xen/tools/xs-clients/xenstore_control.c:62,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:63,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:64,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:67,1
    - Dst: sleep
      Src: /src/xen/tools/xs-clients/xenstore_control.c:69,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:72,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:75,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:76,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:81,1
    - Dst: strerror
      Src: /src/xen/tools/xs-clients/xenstore_control.c:82,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:83,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:84,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 4
    argNames:
    - xsh
    - force
    - to
    - vers
    argTypes:
    - struct xs_handle*
    - bool
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 87
    functionName: live_update_start
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - asprintf
    - sleep
    - free
    - time
    - strerror
    - fprintf
    - strdup
    - xs_control_command
    - strcmp
    - add_to_buf
    linkageType: ''
    returnType: int
    signature: "int live_update_start(struct xs_handle *xsh, bool force, unsigned
      int to,\n                             unsigned int vers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:94,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:95,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:99,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:100,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:101,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:102,1
    - Dst: strerror
      Src: /src/xen/tools/xs-clients/xenstore_control.c:103,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - xsh
    - cmdline
    argTypes:
    - struct xs_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 5
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: live_update_cmdline
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - free
    - strerror
    - fprintf
    - xs_control_command
    - strcmp
    - add_to_buf
    linkageType: ''
    returnType: int
    signature: int live_update_cmdline(struct xs_handle *xsh, const char *cmdline)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xs-clients/xenstore_control.c:120,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:122,1
    - Dst: xc_dom_allocate
      Src: /src/xen/tools/xs-clients/xenstore_control.c:126,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/xs-clients/xenstore_control.c:132,1
    - Dst: asprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:138,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:142,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:143,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:144,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:149,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:150,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:151,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:152,1
    - Dst: strerror
      Src: /src/xen/tools/xs-clients/xenstore_control.c:153,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:156,1
    - Dst: malloc
      Src: /src/xen/tools/xs-clients/xenstore_control.c:161,1
    - Dst: strcpy
      Src: /src/xen/tools/xs-clients/xenstore_control.c:167,1
    - Dst: sprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:172,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_control.c:173,1
    - Dst: memcpy
      Src: /src/xen/tools/xs-clients/xenstore_control.c:174,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:177,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:178,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:179,1
    - Dst: strerror
      Src: /src/xen/tools/xs-clients/xenstore_control.c:180,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:182,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:185,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:188,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/xs-clients/xenstore_control.c:191,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xs-clients/xenstore_control.c:194,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 2
    argNames:
    - xsh
    - binary
    argTypes:
    - struct xs_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 197
    functionName: send_kernel_blob
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - asprintf
    - xc_dom_allocate
    - xc_interface_close
    - free
    - xc_dom_kernel_file
    - sprintf
    - malloc
    - xc_interface_open
    - xc_dom_release
    - strerror
    - fprintf
    - strcpy
    - strlen
    - xs_control_command
    - strcmp
    - memcpy
    - add_to_buf
    linkageType: ''
    returnType: int
    signature: int send_kernel_blob(struct xs_handle *xsh, const char *binary)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: send_kernel_blob
      Src: /src/xen/tools/xs-clients/xenstore_control.c:215,1
    - Dst: live_update_cmdline
      Src: /src/xen/tools/xs-clients/xenstore_control.c:220,1
    - Dst: live_update_start
      Src: /src/xen/tools/xs-clients/xenstore_control.c:225,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - xsh
    - binary
    - cmdline
    - force
    - to
    - vers
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    - bool
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 6
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: live_update_stubdom
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - xs_control_command
    - live_update_cmdline
    - send_kernel_blob
    - live_update_start
    linkageType: ''
    returnType: int
    signature: "int live_update_stubdom(struct xs_handle *xsh, const char *binary,\n
      \                              const char *cmdline, bool force, unsigned int
      to,\n                               unsigned int vers)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:251,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:252,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:255,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:256,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:257,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:258,1
    - Dst: strerror
      Src: /src/xen/tools/xs-clients/xenstore_control.c:259,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:260,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:263,1
    - Dst: live_update_cmdline
      Src: /src/xen/tools/xs-clients/xenstore_control.c:266,1
    - Dst: live_update_start
      Src: /src/xen/tools/xs-clients/xenstore_control.c:271,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - xsh
    - binary
    - cmdline
    - force
    - to
    - vers
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    - bool
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 280
    functionName: live_update_daemon
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - live_update_cmdline
    - free
    - live_update_start
    - strerror
    - fprintf
    - xs_control_command
    - strcmp
    - add_to_buf
    linkageType: ''
    returnType: int
    signature: "int live_update_daemon(struct xs_handle *xsh, const char *binary,\n
      \                             const char *cmdline, bool force, unsigned int
      to,\n                              unsigned int vers)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:290,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:293,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:298,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:301,1
    - Dst: atoi
      Src: /src/xen/tools/xs-clients/xenstore_control.c:305,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:306,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:308,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:311,1
    - Dst: atoi
      Src: /src/xen/tools/xs-clients/xenstore_control.c:315,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:322,1
    - Dst: xs_read
      Src: /src/xen/tools/xs-clients/xenstore_control.c:327,1
    - Dst: live_update_stubdom
      Src: /src/xen/tools/xs-clients/xenstore_control.c:329,1
    - Dst: live_update_daemon
      Src: /src/xen/tools/xs-clients/xenstore_control.c:331,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:333,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 3
    argNames:
    - xsh
    - argc
    - argv
    argTypes:
    - struct xs_handle*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 337
    functionName: live_update
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 0
    functionsReached:
    - free
    - live_update_daemon
    - strcmp
    - xs_read
    - fprintf
    - atoi
    - live_update_stubdom
    linkageType: ''
    returnType: int
    signature: int live_update(struct xs_handle *xsh, int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:348,1
    - Dst: xs_open
      Src: /src/xen/tools/xs-clients/xenstore_control.c:354,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:356,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_control.c:361,1
    - Dst: live_update
      Src: /src/xen/tools/xs-clients/xenstore_control.c:362,1
    - Dst: add_to_buf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:367,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:369,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:374,1
    - Dst: xs_control_command
      Src: /src/xen/tools/xs-clients/xenstore_control.c:378,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:380,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:383,1
    - Dst: fprintf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:385,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_control.c:387,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_control.c:388,1
    - Dst: xs_close
      Src: /src/xen/tools/xs-clients/xenstore_control.c:391,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_control.c:394,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: main
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_control.c
    functionUses: 129
    functionsReached:
    - xs_open
    - live_update
    - free
    - xs_close
    - fprintf
    - strlen
    - printf
    - xs_control_command
    - strcmp
    - add_to_buf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/xs-clients/xenstore_client.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ebuf
    - min_avail
    argTypes:
    - struct expanding_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: expanding_buffer_ensure
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: char
    signature: "char *expanding_buffer_ensure(struct expanding_buffer *ebuf,\n                                     int
      min_avail)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/xs-clients/xenstore_client.c:89,1
    - Dst: expanding_buffer_ensure
      Src: /src/xen/tools/xs-clients/xenstore_client.c:95,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:104,1
    - Dst: expanding_buffer_ensure
      Src: /src/xen/tools/xs-clients/xenstore_client.c:108,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:112,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:115,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:116,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:117,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:118,1
    - Dst: ADDF
      Src: /src/xen/tools/xs-clients/xenstore_client.c:120,1
    - Dst: ADDF
      Src: /src/xen/tools/xs-clients/xenstore_client.c:121,1
    - Dst: ADD
      Src: /src/xen/tools/xs-clients/xenstore_client.c:125,1
    - Dst: assert
      Src: /src/xen/tools/xs-clients/xenstore_client.c:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - ebuf
    - val
    - len
    argTypes:
    - struct expanding_buffer*
    - char*
    - unsigned
    assertStmts:
    - condition: (len < INT_MAX/5)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
    - condition: (used <= ebuf->avail)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
    constantsTouched: []
    func_position:
      end: 131
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 131
    functionName: sanitise_value
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - expanding_buffer_ensure
    - assert
    - ADDF
    - ADD
    linkageType: ''
    returnType: char
    signature: "char *sanitise_value(struct expanding_buffer *ebuf,\n                            const
      char *val, unsigned len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ADD
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: ADDF
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDF(f,c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GETF
      Src: /src/xen/tools/xs-clients/xenstore_client.c:160,1
    - Dst: GETF
      Src: /src/xen/tools/xs-clients/xenstore_client.c:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - out
    - out_len_r
    - in
    argTypes:
    - char*
    - unsigned*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 176
    functionName: unsanitise_value
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - GETF
    linkageType: ''
    returnType: void
    signature: void unsanitise_value(char *out, unsigned *out_len_r, const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: GETF
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETF(f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/xs-clients/xenstore_client.c:183,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: expand_buffer
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - err
    - realloc
    linkageType: ''
    returnType: void
    signature: void expand_buffer(size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/xs-clients/xenstore_client.c:195,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:196,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:198,1
    - Dst: va_end
      Src: /src/xen/tools/xs-clients/xenstore_client.c:199,1
    - Dst: expand_buffer
      Src: /src/xen/tools/xs-clients/xenstore_client.c:200,1
    - Dst: va_start
      Src: /src/xen/tools/xs-clients/xenstore_client.c:201,1
    - Dst: vsnprintf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:202,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:203,1
    - Dst: va_end
      Src: /src/xen/tools/xs-clients/xenstore_client.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: output
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 14
    functionsReached:
    - va_start
    - err
    - expand_buffer
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void output(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand_buffer
      Src: /src/xen/tools/xs-clients/xenstore_client.c:211,1
    - Dst: memcpy
      Src: /src/xen/tools/xs-clients/xenstore_client.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: output_raw
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - memcpy
    - expand_buffer
    linkageType: ''
    returnType: void
    signature: void output_raw(const char *data, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:223,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:226,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:229,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:232,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:238,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:241,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:244,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - mode
    - incl_mode
    - progname
    argTypes:
    - enum mode
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 249
    functionName: usage
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 16
    functionsReached:
    - errx
    linkageType: ''
    returnType: void
    signature: void usage(enum mode mode, int incl_mode, const char *progname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/xs-clients/xenstore_client.c:255,1
    - Dst: warnx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - path
    - xsh
    - xth
    argTypes:
    - char*
    - struct xs_handle*
    - xs_transaction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 6
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: do_rm
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - warnx
    linkageType: ''
    returnType: int
    signature: int do_rm(char *path, struct xs_handle *xsh, xs_transaction_t xth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: MIN
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xs_directory
      Src: /src/xen/tools/xs-clients/xenstore_client.c:282,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:289,1
    - Dst: malloc
      Src: /src/xen/tools/xs-clients/xenstore_client.c:292,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:294,1
    - Dst: MAX_STRLEN
      Src: /src/xen/tools/xs-clients/xenstore_client.c:297,1
    - Dst: snprintf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:303,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:304,1
    - Dst: fputs
      Src: /src/xen/tools/xs-clients/xenstore_client.c:310,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:313,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:315,1
    - Dst: xs_read
      Src: /src/xen/tools/xs-clients/xenstore_client.c:321,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:331,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:335,1
    - Dst: sanitise_value
      Src: /src/xen/tools/xs-clients/xenstore_client.c:337,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:340,1
    - Dst: sanitise_value
      Src: /src/xen/tools/xs-clients/xenstore_client.c:341,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:343,1
    - Dst: MIN
      Src: /src/xen/tools/xs-clients/xenstore_client.c:345,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:347,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:351,1
    - Dst: xs_get_permissions
      Src: /src/xen/tools/xs-clients/xenstore_client.c:354,1
    - Dst: warn
      Src: /src/xen/tools/xs-clients/xenstore_client.c:356,1
    - Dst: fputs
      Src: /src/xen/tools/xs-clients/xenstore_client.c:360,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:363,1
    - Dst: xenstore_perm_to_string
      Src: /src/xen/tools/xs-clients/xenstore_client.c:364,1
    - Dst: fputs
      Src: /src/xen/tools/xs-clients/xenstore_client.c:365,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:367,1
    - Dst: putchar
      Src: /src/xen/tools/xs-clients/xenstore_client.c:371,1
    - Dst: do_ls
      Src: /src/xen/tools/xs-clients/xenstore_client.c:373,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:375,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:376,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - h
    - path
    - cur_depth
    - show_perms
    argTypes:
    - struct xs_handle*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 274
    functionDepth: 6
    functionLinenumber: 274
    functionLinenumberEnd: 377
    functionName: do_ls
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 1
    functionsReached:
    - snprintf
    - err
    - MAX_STRLEN
    - xenstore_perm_to_string
    - do_ls
    - xs_directory
    - fputs
    - free
    - sanitise_value
    - warn
    - malloc
    - xs_read
    - xs_get_permissions
    - strlen
    - printf
    - MIN
    - putchar
    linkageType: ''
    returnType: void
    signature: void do_ls(struct xs_handle *h, char *path, int cur_depth, int show_perms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xs_set_permissions
      Src: /src/xen/tools/xs-clients/xenstore_client.c:388,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:390,1
    - Dst: strrchr
      Src: /src/xen/tools/xs-clients/xenstore_client.c:394,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:396,1
    - Dst: do_chmod
      Src: /src/xen/tools/xs-clients/xenstore_client.c:401,1
    - Dst: xs_directory
      Src: /src/xen/tools/xs-clients/xenstore_client.c:411,1
    - Dst: snprintf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:416,1
    - Dst: do_chmod
      Src: /src/xen/tools/xs-clients/xenstore_client.c:418,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 7
    argNames:
    - path
    - perms
    - nperms
    - upto
    - recurse
    - xsh
    - xth
    argTypes:
    - char*
    - struct xs_permissions*
    - int
    - int
    - int
    - struct xs_handle*
    - xs_transaction_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 379
    functionDepth: 6
    functionLinenumber: 379
    functionLinenumberEnd: 424
    functionName: do_chmod
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 1
    functionsReached:
    - snprintf
    - err
    - do_chmod
    - xs_directory
    - free
    - xs_set_permissions
    - errx
    - strrchr
    linkageType: ''
    returnType: void
    signature: "void do_chmod(char *path, struct xs_permissions *perms, int nperms,
      int upto,\n\t int recurse, struct xs_handle *xsh, xs_transaction_t xth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_read_watch
      Src: /src/xen/tools/xs-clients/xenstore_client.c:435,1
    - Dst: printf
      Src: /src/xen/tools/xs-clients/xenstore_client.c:439,1
    - Dst: fflush
      Src: /src/xen/tools/xs-clients/xenstore_client.c:440,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - xsh
    - max_events
    argTypes:
    - struct xs_handle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 443
    functionName: do_watch
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - free
    - printf
    - fflush
    - xs_read_watch
    linkageType: ''
    returnType: void
    signature: void do_watch(struct xs_handle *xsh, int max_events)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:467,1
    - Dst: xs_read
      Src: /src/xen/tools/xs-clients/xenstore_client.c:470,1
    - Dst: warnx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:472,1
    - Dst: output
      Src: /src/xen/tools/xs-clients/xenstore_client.c:476,1
    - Dst: output_raw
      Src: /src/xen/tools/xs-clients/xenstore_client.c:478,1
    - Dst: output
      Src: /src/xen/tools/xs-clients/xenstore_client.c:480,1
    - Dst: sanitise_value
      Src: /src/xen/tools/xs-clients/xenstore_client.c:480,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:481,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:491,1
    - Dst: expanding_buffer_ensure
      Src: /src/xen/tools/xs-clients/xenstore_client.c:493,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:493,1
    - Dst: unsanitise_value
      Src: /src/xen/tools/xs-clients/xenstore_client.c:494,1
    - Dst: xs_write
      Src: /src/xen/tools/xs-clients/xenstore_client.c:497,1
    - Dst: warnx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:498,1
    - Dst: malloc
      Src: /src/xen/tools/xs-clients/xenstore_client.c:515,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:515,1
    - Dst: strcpy
      Src: /src/xen/tools/xs-clients/xenstore_client.c:518,1
    - Dst: do_rm
      Src: /src/xen/tools/xs-clients/xenstore_client.c:522,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:523,1
    - Dst: strrchr
      Src: /src/xen/tools/xs-clients/xenstore_client.c:527,1
    - Dst: xs_read
      Src: /src/xen/tools/xs-clients/xenstore_client.c:532,1
    - Dst: xs_directory
      Src: /src/xen/tools/xs-clients/xenstore_client.c:535,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:538,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:540,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:545,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:548,1
    - Dst: do_rm
      Src: /src/xen/tools/xs-clients/xenstore_client.c:551,1
    - Dst: xs_read
      Src: /src/xen/tools/xs-clients/xenstore_client.c:560,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:564,1
    - Dst: xs_directory
      Src: /src/xen/tools/xs-clients/xenstore_client.c:570,1
    - Dst: warnx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:572,1
    - Dst: output
      Src: /src/xen/tools/xs-clients/xenstore_client.c:577,1
    - Dst: output
      Src: /src/xen/tools/xs-clients/xenstore_client.c:578,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:580,1
    - Dst: do_ls
      Src: /src/xen/tools/xs-clients/xenstore_client.c:585,1
    - Dst: atoi
      Src: /src/xen/tools/xs-clients/xenstore_client.c:597,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:614,1
    - Dst: do_chmod
      Src: /src/xen/tools/xs-clients/xenstore_client.c:619,1
    - Dst: xs_watch
      Src: /src/xen/tools/xs-clients/xenstore_client.c:626,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:627,1
    - Dst: do_watch
      Src: /src/xen/tools/xs-clients/xenstore_client.c:629,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 143
    argCount: 12
    argNames:
    - mode
    - optind
    - argc
    - argv
    - xsh
    - xth
    - prefix
    - tidy
    - upto
    - recurse
    - nr_watches
    - raw
    argTypes:
    - enum mode
    - int
    - int
    - char**
    - struct xs_handle*
    - xs_transaction_t
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 445
    functionDepth: 7
    functionLinenumber: 445
    functionLinenumberEnd: 635
    functionName: perform
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - xs_read
    - output_raw
    - strlen
    - expanding_buffer_ensure
    - do_chmod
    - do_ls
    - free
    - sanitise_value
    - unsanitise_value
    - malloc
    - errx
    - do_watch
    - strcpy
    - xs_watch
    - warnx
    - xs_write
    - do_rm
    - strrchr
    - xs_directory
    - output
    - atoi
    linkageType: ''
    returnType: int
    signature: "int perform(enum mode mode, int optind, int argc, char **argv, struct
      xs_handle *xsh,\n        xs_transaction_t xth, int prefix, int tidy, int upto,
      int recurse, int nr_watches,\n        int raw)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:639,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:641,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:643,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:645,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:647,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:649,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:651,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:653,1
    - Dst: strcmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:655,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:658,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 660
    functionName: lookup_mode
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 0
    functionsReached:
    - strcmp
    - errx
    linkageType: ''
    returnType: enum mode
    signature: enum mode lookup_mode(const char *m)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/tools/xs-clients/xenstore_client.c:678,1
    - Dst: strncmp
      Src: /src/xen/tools/xs-clients/xenstore_client.c:682,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:682,1
    - Dst: strlen
      Src: /src/xen/tools/xs-clients/xenstore_client.c:685,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:688,1
    - Dst: lookup_mode
      Src: /src/xen/tools/xs-clients/xenstore_client.c:695,1
    - Dst: getopt_long
      Src: /src/xen/tools/xs-clients/xenstore_client.c:711,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:718,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:726,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:733,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:739,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:745,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:751,1
    - Dst: atoi
      Src: /src/xen/tools/xs-clients/xenstore_client.c:755,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:757,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:763,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:773,1
    - Dst: usage
      Src: /src/xen/tools/xs-clients/xenstore_client.c:779,1
    - Dst: memset
      Src: /src/xen/tools/xs-clients/xenstore_client.c:802,1
    - Dst: ioctl
      Src: /src/xen/tools/xs-clients/xenstore_client.c:803,1
    - Dst: xs_open
      Src: /src/xen/tools/xs-clients/xenstore_client.c:808,1
    - Dst: err
      Src: /src/xen/tools/xs-clients/xenstore_client.c:809,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/xs-clients/xenstore_client.c:813,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:815,1
    - Dst: perform
      Src: /src/xen/tools/xs-clients/xenstore_client.c:818,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/xs-clients/xenstore_client.c:820,1
    - Dst: errx
      Src: /src/xen/tools/xs-clients/xenstore_client.c:825,1
    - Dst: fwrite
      Src: /src/xen/tools/xs-clients/xenstore_client.c:829,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:831,1
    - Dst: free
      Src: /src/xen/tools/xs-clients/xenstore_client.c:832,1
    - Dst: xs_close
      Src: /src/xen/tools/xs-clients/xenstore_client.c:835,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 118
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 662
    functionDepth: 8
    functionLinenumber: 662
    functionLinenumberEnd: 838
    functionName: main
    functionSourceFile: /src/xen/tools/xs-clients/xenstore_client.c
    functionUses: 129
    functionsReached:
    - err
    - xs_open
    - perform
    - free
    - xs_close
    - xs_transaction_start
    - getopt_long
    - errx
    - fwrite
    - strncmp
    - memset
    - strlen
    - lookup_mode
    - strrchr
    - xs_transaction_end
    - atoi
    - usage
    - ioctl
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_alloc
      Src: /src/xen/tools/xenpaging/policy_default.c:47,1
    - Dst: bitmap_alloc
      Src: /src/xen/tools/xenpaging/policy_default.c:51,1
    - Dst: malloc
      Src: /src/xen/tools/xenpaging/policy_default.c:61,1
    - Dst: set_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:69,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 77
    functionName: policy_init
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 2
    functionsReached:
    - bitmap_alloc
    - malloc
    - set_bit
    linkageType: ''
    returnType: int
    signature: int policy_init(struct xenpaging *paging)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:106,1
    - Dst: test_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:110,1
    - Dst: bitmap_clear
      Src: /src/xen/tools/xenpaging/policy_default.c:128,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/policy_default.c:130,1
    - Dst: set_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 137
    functionName: policy_choose_victim
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - bitmap_clear
    - test_bit
    - DPRINTF
    - set_bit
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long policy_choose_victim(struct xenpaging *paging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:141,1
    - Dst: clear_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: policy_notify_paged_out
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: void policy_notify_paged_out(unsigned long gfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:150,1
    - Dst: clear_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - gfn
    - do_mru
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: policy_handle_paged_in
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void policy_handle_paged_in(unsigned long gfn, int do_mru)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policy_handle_paged_in
      Src: /src/xen/tools/xenpaging/policy_default.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: policy_notify_paged_in
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - policy_handle_paged_in
    linkageType: ''
    returnType: void
    signature: void policy_notify_paged_in(unsigned long gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policy_handle_paged_in
      Src: /src/xen/tools/xenpaging/policy_default.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: policy_notify_paged_in_nomru
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - policy_handle_paged_in
    linkageType: ''
    returnType: void
    signature: void policy_notify_paged_in_nomru(unsigned long gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/tools/xenpaging/policy_default.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: policy_notify_dropped
    functionSourceFile: /src/xen/tools/xenpaging/policy_default.c
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void policy_notify_dropped(unsigned long gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/xen/tools/xenpaging/xenpaging.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: unlink_pagefile
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - unlink
    linkageType: ''
    returnType: void
    signature: void unlink_pagefile(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink_pagefile
      Src: /src/xen/tools/xenpaging/xenpaging.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: close_handler
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - unlink_pagefile
    linkageType: ''
    returnType: void
    signature: void close_handler(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/xen/tools/xenpaging/xenpaging.c:67,1
    - Dst: xs_write
      Src: /src/xen/tools/xenpaging/xenpaging.c:69,1
    - Dst: strlen
      Src: /src/xen/tools/xenpaging/xenpaging.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: xenpaging_mem_paging_flush_ioemu_cache
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - xs_write
    - sprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void xenpaging_mem_paging_flush_ioemu_cache(struct xenpaging *paging)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/xenpaging/xenpaging.c:84,1
    - Dst: xs_fileno
      Src: /src/xen/tools/xenpaging/xenpaging.c:86,1
    - Dst: poll
      Src: /src/xen/tools/xenpaging/xenpaging.c:91,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:97,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:104,1
    - Dst: xs_read_watch
      Src: /src/xen/tools/xenpaging/xenpaging.c:105,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:108,1
    - Dst: strcmp
      Src: /src/xen/tools/xenpaging/xenpaging.c:109,1
    - Dst: xs_is_domain_introduced
      Src: /src/xen/tools/xenpaging/xenpaging.c:112,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/xenpaging/xenpaging.c:114,1
    - Dst: strcmp
      Src: /src/xen/tools/xenpaging/xenpaging.c:120,1
    - Dst: xs_read
      Src: /src/xen/tools/xenpaging/xenpaging.c:123,1
    - Dst: sscanf
      Src: /src/xen/tools/xenpaging/xenpaging.c:126,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:136,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:138,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:141,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:147,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/xenpaging/xenpaging.c:148,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:151,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/xenpaging/xenpaging.c:156,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:159,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 164
    functionName: xenpaging_wait_for_event_or_timeout
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - PERROR
    - free
    - xenevtchn_fd
    - xenevtchn_unmask
    - xs_read
    - DPRINTF
    - xs_read_watch
    - xs_is_domain_introduced
    - xs_fileno
    - xs_unwatch
    - sscanf
    - xenevtchn_pending
    - poll
    - strcmp
    linkageType: ''
    returnType: int
    signature: int xenpaging_wait_for_event_or_timeout(struct xenpaging *paging)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/xenpaging/xenpaging.c:172,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: xenpaging_get_tot_pages
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - xc_domain_getinfo_single
    - PERROR
    linkageType: ''
    returnType: int
    signature: int xenpaging_get_tot_pages(struct xenpaging *paging)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: posix_memalign
      Src: /src/xen/tools/xenpaging/xenpaging.c:186,1
    - Dst: mlock
      Src: /src/xen/tools/xenpaging/xenpaging.c:191,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 198
    functionName: init_page
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - free
    - posix_memalign
    - mlock
    linkageType: ''
    returnType: void
    signature: void *init_page(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:202,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:204,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:206,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:207,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:208,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:209,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:210,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:211,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: usage
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 17
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xenpaging/xenpaging.c:228,1
    - Dst: atoi
      Src: /src/xen/tools/xenpaging/xenpaging.c:232,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:235,1
    - Dst: strdup
      Src: /src/xen/tools/xenpaging/xenpaging.c:236,1
    - Dst: atoi
      Src: /src/xen/tools/xenpaging/xenpaging.c:240,1
    - Dst: atoi
      Src: /src/xen/tools/xenpaging/xenpaging.c:243,1
    - Dst: usage
      Src: /src/xen/tools/xenpaging/xenpaging.c:250,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:260,1
    - Dst: usage
      Src: /src/xen/tools/xenpaging/xenpaging.c:261,1
    - Dst: printf
      Src: /src/xen/tools/xenpaging/xenpaging.c:268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - paging
    - argc
    - argv
    argTypes:
    - struct xenpaging*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 273
    functionName: xenpaging_getopts
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - free
    - getopt_long
    - strdup
    - printf
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int xenpaging_getopts(struct xenpaging *paging, int argc, char *argv[])
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/xenpaging/xenpaging.c:285,1
    - Dst: xenpaging_getopts
      Src: /src/xen/tools/xenpaging/xenpaging.c:290,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/xenpaging/xenpaging.c:293,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenpaging/xenpaging.c:297,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:301,1
    - Dst: xs_open
      Src: /src/xen/tools/xenpaging/xenpaging.c:304,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:307,1
    - Dst: snprintf
      Src: /src/xen/tools/xenpaging/xenpaging.c:312,1
    - Dst: xs_watch
      Src: /src/xen/tools/xenpaging/xenpaging.c:313,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:315,1
    - Dst: xs_get_domain_path
      Src: /src/xen/tools/xenpaging/xenpaging.c:320,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:323,1
    - Dst: asprintf
      Src: /src/xen/tools/xenpaging/xenpaging.c:326,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:328,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:331,1
    - Dst: xs_watch
      Src: /src/xen/tools/xenpaging/xenpaging.c:332,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:334,1
    - Dst: xc_get_hvm_param
      Src: /src/xen/tools/xenpaging/xenpaging.c:339,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:343,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/xenpaging/xenpaging.c:348,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:353,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:358,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:363,1
    - Dst: xc_mem_paging_enable
      Src: /src/xen/tools/xenpaging/xenpaging.c:369,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:375,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:378,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:381,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:384,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:387,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/xenpaging/xenpaging.c:394,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:397,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/xenpaging/xenpaging.c:402,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:407,1
    - Dst: SHARED_RING_INIT
      Src: /src/xen/tools/xenpaging/xenpaging.c:414,1
    - Dst: BACK_RING_INIT
      Src: /src/xen/tools/xenpaging/xenpaging.c:415,1
    - Dst: xc_domain_decrease_reservation_exact
      Src: /src/xen/tools/xenpaging/xenpaging.c:420,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:422,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/xenpaging/xenpaging.c:427,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:431,1
    - Dst: bitmap_alloc
      Src: /src/xen/tools/xenpaging/xenpaging.c:440,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:443,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:446,1
    - Dst: calloc
      Src: /src/xen/tools/xenpaging/xenpaging.c:449,1
    - Dst: calloc
      Src: /src/xen/tools/xenpaging/xenpaging.c:450,1
    - Dst: calloc
      Src: /src/xen/tools/xenpaging/xenpaging.c:455,1
    - Dst: policy_init
      Src: /src/xen/tools/xenpaging/xenpaging.c:460,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:463,1
    - Dst: init_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:467,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:470,1
    - Dst: open
      Src: /src/xen/tools/xenpaging/xenpaging.c:475,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:478,1
    - Dst: xs_close
      Src: /src/xen/tools/xenpaging/xenpaging.c:488,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenpaging/xenpaging.c:490,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/xenpaging/xenpaging.c:492,1
    - Dst: munlock
      Src: /src/xen/tools/xenpaging/xenpaging.c:495,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:496,1
    - Dst: munmap
      Src: /src/xen/tools/xenpaging/xenpaging.c:501,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:504,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:505,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:506,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:507,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:508,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:509,1
    - Dst: free
      Src: /src/xen/tools/xenpaging/xenpaging.c:510,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 168
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 275
    functionDepth: 7
    functionLinenumber: 275
    functionLinenumberEnd: 514
    functionName: xenpaging_init
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_get_domain_path
    - xtl_createlogger_stdiostream
    - ERROR
    - munmap
    - xc_interface_open
    - init_page
    - munlock
    - BACK_RING_INIT
    - SHARED_RING_INIT
    - xenevtchn_open
    - xs_open
    - xtl_logger_destroy
    - calloc
    - free
    - xc_mem_paging_enable
    - xc_domain_decrease_reservation_exact
    - xs_watch
    - open
    - xc_get_hvm_param
    - xenpaging_getopts
    - xc_map_foreign_pages
    - xs_close
    - xc_domain_getinfo_single
    - asprintf
    - PERROR
    - DPRINTF
    - xenevtchn_bind_interdomain
    - bitmap_alloc
    - policy_init
    - xc_domain_populate_physmap_exact
    - xc_interface_close
    linkageType: ''
    returnType: struct xenpaging
    signature: struct xenpaging *xenpaging_init(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xs_unwatch
      Src: /src/xen/tools/xenpaging/xenpaging.c:521,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/xenpaging/xenpaging.c:522,1
    - Dst: munmap
      Src: /src/xen/tools/xenpaging/xenpaging.c:526,1
    - Dst: xc_mem_paging_disable
      Src: /src/xen/tools/xenpaging/xenpaging.c:527,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:530,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/xenpaging/xenpaging.c:534,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:537,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/xenpaging/xenpaging.c:542,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:545,1
    - Dst: xs_close
      Src: /src/xen/tools/xenpaging/xenpaging.c:550,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenpaging/xenpaging.c:553,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/xenpaging/xenpaging.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 556
    functionName: xenpaging_teardown
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - xtl_logger_destroy
    - xenevtchn_unbind
    - PERROR
    - munmap
    - xs_unwatch
    - xc_mem_paging_disable
    - xc_interface_close
    - xs_close
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void xenpaging_teardown(struct xenpaging *paging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/xenpaging/xenpaging.c:567,1
    - Dst: RING_GET_REQUEST
      Src: /src/xen/tools/xenpaging/xenpaging.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - vm_event
    - req
    argTypes:
    - struct vm_event*
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 573
    functionName: get_request
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - RING_GET_REQUEST
    - memcpy
    linkageType: ''
    returnType: void
    signature: void get_request(struct vm_event *vm_event, vm_event_request_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/xenpaging/xenpaging.c:584,1
    - Dst: RING_GET_RESPONSE
      Src: /src/xen/tools/xenpaging/xenpaging.c:584,1
    - Dst: RING_PUSH_RESPONSES
      Src: /src/xen/tools/xenpaging/xenpaging.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - vm_event
    - rsp
    argTypes:
    - struct vm_event*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 590
    functionName: put_response
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RING_PUSH_RESPONSES
    - RING_GET_RESPONSE
    linkageType: ''
    returnType: void
    signature: void put_response(struct vm_event *vm_event, vm_event_response_t *rsp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_mem_paging_nominate
      Src: /src/xen/tools/xenpaging/xenpaging.c:606,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:613,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:618,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:621,1
    - Dst: write_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:627,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:630,1
    - Dst: munmap
      Src: /src/xen/tools/xenpaging/xenpaging.c:631,1
    - Dst: munmap
      Src: /src/xen/tools/xenpaging/xenpaging.c:637,1
    - Dst: xc_mem_paging_evict
      Src: /src/xen/tools/xenpaging/xenpaging.c:640,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:647,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:649,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:653,1
    - Dst: policy_notify_paged_out
      Src: /src/xen/tools/xenpaging/xenpaging.c:655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - paging
    - gfn
    - slot
    argTypes:
    - struct xenpaging*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 668
    functionName: xenpaging_evict_page
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - PERROR
    - policy_notify_paged_out
    - munmap
    - DPRINTF
    - xc_mem_paging_evict
    - xc_mem_paging_nominate
    - write_page
    - xc_map_foreign_pages
    linkageType: ''
    returnType: int
    signature: int xenpaging_evict_page(struct xenpaging *paging, unsigned long gfn,
      int slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_response
      Src: /src/xen/tools/xenpaging/xenpaging.c:673,1
    - Dst: policy_notify_paged_in
      Src: /src/xen/tools/xenpaging/xenpaging.c:683,1
    - Dst: policy_notify_paged_in_nomru
      Src: /src/xen/tools/xenpaging/xenpaging.c:685,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/xenpaging/xenpaging.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - paging
    - rsp
    - notify_policy
    argTypes:
    - struct xenpaging*
    - vm_event_response_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 693
    functionName: xenpaging_resume_page
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - policy_notify_paged_in
    - policy_notify_paged_in_nomru
    - xenevtchn_notify
    - put_response
    linkageType: ''
    returnType: int
    signature: int xenpaging_resume_page(struct xenpaging *paging, vm_event_response_t
      *rsp, int notify_policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:701,1
    - Dst: read_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:704,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:707,1
    - Dst: xc_mem_paging_load
      Src: /src/xen/tools/xenpaging/xenpaging.c:714,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:720,1
    - Dst: sleep
      Src: /src/xen/tools/xenpaging/xenpaging.c:721,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - paging
    - gfn
    - i
    argTypes:
    - struct xenpaging*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 734
    functionName: xenpaging_populate_page
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - sleep
    - PERROR
    - DPRINTF
    - xc_mem_paging_load
    - read_page
    linkageType: ''
    returnType: int
    signature: int xenpaging_populate_page(struct xenpaging *paging, unsigned long
      gfn, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/xenpaging/xenpaging.c:744,1
    - Dst: page_in_trigger
      Src: /src/xen/tools/xenpaging/xenpaging.c:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - paging
    - num_pages
    argTypes:
    - struct xenpaging*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 755
    functionName: resume_pages
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - test_bit
    - page_in_trigger
    linkageType: ''
    returnType: void
    signature: void resume_pages(struct xenpaging *paging, int num_pages)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: policy_choose_victim
      Src: /src/xen/tools/xenpaging/xenpaging.c:771,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:781,1
    - Dst: xenpaging_mem_paging_flush_ioemu_cache
      Src: /src/xen/tools/xenpaging/xenpaging.c:782,1
    - Dst: xenpaging_evict_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:795,1
    - Dst: test_and_set_bit
      Src: /src/xen/tools/xenpaging/xenpaging.c:801,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:802,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - paging
    - slot
    argTypes:
    - struct xenpaging*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 762
    functionDepth: 6
    functionLinenumber: 762
    functionLinenumberEnd: 808
    functionName: evict_victim
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - xenpaging_mem_paging_flush_ioemu_cache
    - test_and_set_bit
    - ERROR
    - DPRINTF
    - xenpaging_evict_page
    - policy_choose_victim
    linkageType: ''
    returnType: int
    signature: int evict_victim(struct xenpaging *paging, int slot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evict_victim
      Src: /src/xen/tools/xenpaging/xenpaging.c:824,1
    - Dst: evict_victim
      Src: /src/xen/tools/xenpaging/xenpaging.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - paging
    - num_pages
    argTypes:
    - struct xenpaging*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 815
    functionDepth: 7
    functionLinenumber: 815
    functionLinenumberEnd: 850
    functionName: evict_pages
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 0
    functionsReached:
    - evict_victim
    linkageType: ''
    returnType: int
    signature: int evict_pages(struct xenpaging *paging, int num_pages)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xenpaging_init
      Src: /src/xen/tools/xenpaging/xenpaging.c:865,1
    - Dst: fprintf
      Src: /src/xen/tools/xenpaging/xenpaging.c:868,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:873,1
    - Dst: sigemptyset
      Src: /src/xen/tools/xenpaging/xenpaging.c:879,1
    - Dst: sigaction
      Src: /src/xen/tools/xenpaging/xenpaging.c:880,1
    - Dst: sigaction
      Src: /src/xen/tools/xenpaging/xenpaging.c:881,1
    - Dst: sigaction
      Src: /src/xen/tools/xenpaging/xenpaging.c:882,1
    - Dst: sigaction
      Src: /src/xen/tools/xenpaging/xenpaging.c:883,1
    - Dst: create_page_in_thread
      Src: /src/xen/tools/xenpaging/xenpaging.c:886,1
    - Dst: xenpaging_wait_for_event_or_timeout
      Src: /src/xen/tools/xenpaging/xenpaging.c:892,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:895,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:900,1
    - Dst: RING_HAS_UNCONSUMED_REQUESTS
      Src: /src/xen/tools/xenpaging/xenpaging.c:903,1
    - Dst: get_request
      Src: /src/xen/tools/xenpaging/xenpaging.c:908,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:912,1
    - Dst: test_and_clear_bit
      Src: /src/xen/tools/xenpaging/xenpaging.c:918,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:926,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:933,1
    - Dst: policy_notify_dropped
      Src: /src/xen/tools/xenpaging/xenpaging.c:936,1
    - Dst: xenpaging_populate_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:941,1
    - Dst: ERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:943,1
    - Dst: xenpaging_resume_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:953,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:955,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:967,1
    - Dst: xenpaging_resume_page
      Src: /src/xen/tools/xenpaging/xenpaging.c:983,1
    - Dst: PERROR
      Src: /src/xen/tools/xenpaging/xenpaging.c:985,1
    - Dst: resume_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:1000,1
    - Dst: xenpaging_get_tot_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:1014,1
    - Dst: resume_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:1022,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:1030,1
    - Dst: evict_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:1039,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:1048,1
    - Dst: resume_pages
      Src: /src/xen/tools/xenpaging/xenpaging.c:1051,1
    - Dst: DPRINTF
      Src: /src/xen/tools/xenpaging/xenpaging.c:1064,1
    - Dst: close
      Src: /src/xen/tools/xenpaging/xenpaging.c:1067,1
    - Dst: unlink_pagefile
      Src: /src/xen/tools/xenpaging/xenpaging.c:1068,1
    - Dst: xenpaging_teardown
      Src: /src/xen/tools/xenpaging/xenpaging.c:1071,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 852
    functionDepth: 8
    functionLinenumber: 852
    functionLinenumberEnd: 1074
    functionName: main
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.c
    functionUses: 130
    functionsReached:
    - xenpaging_populate_page
    - ERROR
    - resume_pages
    - xenpaging_teardown
    - create_page_in_thread
    - sigemptyset
    - test_and_clear_bit
    - close
    - policy_notify_dropped
    - unlink_pagefile
    - sigaction
    - xenpaging_get_tot_pages
    - fprintf
    - RING_HAS_UNCONSUMED_REQUESTS
    - evict_pages
    - PERROR
    - xenpaging_init
    - DPRINTF
    - xenpaging_wait_for_event_or_timeout
    - xenpaging_resume_page
    - get_request
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/xen/tools/xenpaging/file_ops.c:32,1
    - Dst: fn
      Src: /src/xen/tools/xenpaging/file_ops.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - page
    - i
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: file_op
    functionSourceFile: /src/xen/tools/xenpaging/file_ops.c
    functionUses: 0
    functionsReached:
    - fn
    - lseek
    linkageType: ''
    returnType: int
    signature: "int file_op(int fd, void *page, int i,\n                   ssize_t
      (*fn)(int, void *, size_t))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/xenpaging/file_ops.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: my_write
    functionSourceFile: /src/xen/tools/xenpaging/file_ops.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t my_write(int fd, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_op
      Src: /src/xen/tools/xenpaging/file_ops.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - page
    - i
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: read_page
    functionSourceFile: /src/xen/tools/xenpaging/file_ops.c
    functionUses: 1
    functionsReached:
    - file_op
    linkageType: ''
    returnType: int
    signature: int read_page(int fd, void *page, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_op
      Src: /src/xen/tools/xenpaging/file_ops.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - page
    - i
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: write_page
    functionSourceFile: /src/xen/tools/xenpaging/file_ops.c
    functionUses: 1
    functionsReached:
    - file_op
    linkageType: ''
    returnType: int
    signature: int write_page(int fd, void *page, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/xenpaging/pagein.c:28,1
    - Dst: pthread_cond_wait
      Src: /src/xen/tools/xenpaging/pagein.c:30,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/xenpaging/pagein.c:41,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xenpaging/pagein.c:44,1
    - Dst: munmap
      Src: /src/xen/tools/xenpaging/pagein.c:46,1
    - Dst: pthread_exit
      Src: /src/xen/tools/xenpaging/pagein.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: page_in
    functionSourceFile: /src/xen/tools/xenpaging/pagein.c
    functionUses: 0
    functionsReached:
    - munmap
    - xc_map_foreign_pages
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - pthread_exit
    - pthread_cond_wait
    linkageType: ''
    returnType: void
    signature: void *page_in(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/xenpaging/pagein.c:57,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/xenpaging/pagein.c:59,1
    - Dst: pthread_cond_signal
      Src: /src/xen/tools/xenpaging/pagein.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: page_in_trigger
    functionSourceFile: /src/xen/tools/xenpaging/pagein.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_cond_signal
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void page_in_trigger(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_create
      Src: /src/xen/tools/xenpaging/pagein.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - paging
    argTypes:
    - struct xenpaging*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: create_page_in_thread
    functionSourceFile: /src/xen/tools/xenpaging/pagein.c
    functionUses: 1
    functionsReached:
    - pthread_create
    linkageType: ''
    returnType: void
    signature: void create_page_in_thread(struct xenpaging *paging)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - msg
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: DPRINTF
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(msg, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - msg
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: ERROR
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(msg, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - msg
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: PERROR
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 156
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(msg, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _nr
    - ','
    - _bmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: BITMAP_ENTRY
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_ENTRY(_nr,_bmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: BITMAP_SHIFT
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_SHIFT(_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr_bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: bitmap_size
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_size(int nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/xenpaging/xenpaging.h:101,1
    - Dst: bitmap_size
      Src: /src/xen/tools/xenpaging/xenpaging.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr_bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: bitmap_alloc
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 45
    functionsReached:
    - calloc
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void *bitmap_alloc(int nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xenpaging/xenpaging.h:106,1
    - Dst: bitmap_size
      Src: /src/xen/tools/xenpaging/xenpaging.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - nr_bits
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: bitmap_clear
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 2
    functionsReached:
    - memset
    - bitmap_size
    linkageType: ''
    returnType: void
    signature: void bitmap_clear(void *addr, int nr_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/xenpaging/xenpaging.h:112,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/xenpaging/xenpaging.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: test_bit
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 11
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: int
    signature: int test_bit(int nr, const void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/xenpaging/xenpaging.h:118,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/xenpaging/xenpaging.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: clear_bit
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 8
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void clear_bit(int nr, void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_ENTRY
      Src: /src/xen/tools/xenpaging/xenpaging.h:124,1
    - Dst: BITMAP_SHIFT
      Src: /src/xen/tools/xenpaging/xenpaging.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - _addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: set_bit
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 26
    functionsReached:
    - BITMAP_ENTRY
    - BITMAP_SHIFT
    linkageType: ''
    returnType: void
    signature: void set_bit(int nr, void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/xenpaging/xenpaging.h:129,1
    - Dst: clear_bit
      Src: /src/xen/tools/xenpaging/xenpaging.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 2
    functionsReached:
    - test_bit
    - clear_bit
    linkageType: ''
    returnType: int
    signature: int test_and_clear_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/tools/xenpaging/xenpaging.h:136,1
    - Dst: set_bit
      Src: /src/xen/tools/xenpaging/xenpaging.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/tools/xenpaging/xenpaging.h
    functionUses: 1
    functionsReached:
    - test_bit
    - set_bit
    linkageType: ''
    returnType: int
    signature: int test_and_set_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER_ARGUMENT
      Src: /src/xen/tools/misc/xencov.c:32,1
    - Dst: memset
      Src: /src/xen/tools/misc/xencov.c:34,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/misc/xencov.c:39,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/misc/xencov.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - op
    - sysctl
    - buf
    - buf_size
    argTypes:
    - int
    - struct xen_sysctl*
    - struct xc_hypercall_buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: cov_sysctl
    functionSourceFile: /src/xen/tools/misc/xencov.c
    functionUses: 0
    functionsReached:
    - memset
    - DECLARE_HYPERCALL_BUFFER_ARGUMENT
    - xc_sysctl
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: "int cov_sysctl(int op, struct xen_sysctl *sysctl,\n               struct
      xc_hypercall_buffer *buf, uint32_t buf_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cov_sysctl
      Src: /src/xen/tools/misc/xencov.c:51,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:52,1
    - Dst: errx
      Src: /src/xen/tools/misc/xencov.c:57,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/misc/xencov.c:59,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:61,1
    - Dst: memset
      Src: /src/xen/tools/misc/xencov.c:63,1
    - Dst: cov_sysctl
      Src: /src/xen/tools/misc/xencov.c:64,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xencov.c:64,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:66,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xencov.c:68,1
    - Dst: fopen
      Src: /src/xen/tools/misc/xencov.c:71,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:74,1
    - Dst: fwrite
      Src: /src/xen/tools/misc/xencov.c:76,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:77,1
    - Dst: fclose
      Src: /src/xen/tools/misc/xencov.c:80,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/misc/xencov.c:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 83
    functionName: cov_read
    functionSourceFile: /src/xen/tools/misc/xencov.c
    functionUses: 0
    functionsReached:
    - err
    - fopen
    - HYPERCALL_BUFFER
    - errx
    - fclose
    - xc_hypercall_buffer_alloc
    - xc_hypercall_buffer_free
    - memset
    - fwrite
    - strcmp
    - cov_sysctl
    linkageType: ''
    returnType: void
    signature: void cov_read(const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cov_sysctl
      Src: /src/xen/tools/misc/xencov.c:89,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: cov_reset
    functionSourceFile: /src/xen/tools/misc/xencov.c
    functionUses: 0
    functionsReached:
    - err
    - cov_sysctl
    linkageType: ''
    returnType: void
    signature: void cov_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xencov.c:97,1
    - Dst: exit
      Src: /src/xen/tools/misc/xencov.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xencov.c
    functionUses: 18
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(int exit_code)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/xen/tools/misc/xencov.c:109,1
    - Dst: usage
      Src: /src/xen/tools/misc/xencov.c:112,1
    - Dst: usage
      Src: /src/xen/tools/misc/xencov.c:115,1
    - Dst: usage
      Src: /src/xen/tools/misc/xencov.c:122,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xencov.c:124,1
    - Dst: err
      Src: /src/xen/tools/misc/xencov.c:126,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xencov.c:128,1
    - Dst: cov_reset
      Src: /src/xen/tools/misc/xencov.c:129,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xencov.c:130,1
    - Dst: cov_read
      Src: /src/xen/tools/misc/xencov.c:131,1
    - Dst: usage
      Src: /src/xen/tools/misc/xencov.c:133,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xencov.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xencov.c
    functionUses: 130
    functionsReached:
    - err
    - xc_interface_open
    - cov_read
    - getopt
    - cov_reset
    - xc_interface_close
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-hvmcrash.c:47,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:48,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:49,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-hvmcrash.c:52,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:54,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:55,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-hvmcrash.c:58,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-hvmcrash.c:60,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:61,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:65,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:66,1
    - Dst: xc_domain_pause
      Src: /src/xen/tools/misc/xen-hvmcrash.c:69,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-hvmcrash.c:71,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:72,1
    - Dst: xc_interface_dmod_handle
      Src: /src/xen/tools/misc/xen-hvmcrash.c:75,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:78,1
    - Dst: xendevicemodel_inject_event
      Src: /src/xen/tools/misc/xen-hvmcrash.c:79,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:83,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-hvmcrash.c:84,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/misc/xen-hvmcrash.c:90,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-hvmcrash.c:92,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:93,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmcrash.c:97,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmcrash.c:98,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 102
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-hvmcrash.c
    functionUses: 130
    functionsReached:
    - xc_domain_pause
    - xc_interface_dmod_handle
    - xc_interface_open
    - xc_domain_unpause
    - xendevicemodel_inject_event
    - strerror
    - fprintf
    - printf
    - exit
    - atoi
    - xc_domain_getinfo_single
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenhypfs.c:12,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenhypfs.c:13,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenhypfs.c:14,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenhypfs.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 18
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 19
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isgraph
      Src: /src/xen/tools/misc/xenhypfs.c:25,1
    - Dst: isspace
      Src: /src/xen/tools/misc/xenhypfs.c:25,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:26,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:28,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: xenhypfs_print_escaped
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached:
    - isspace
    - printf
    - isgraph
    linkageType: ''
    returnType: void
    signature: void xenhypfs_print_escaped(char *string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenhypfs.c:46,1
    - Dst: usage
      Src: /src/xen/tools/misc/xenhypfs.c:47,1
    - Dst: usage
      Src: /src/xen/tools/misc/xenhypfs.c:53,1
    - Dst: xenhypfs_read
      Src: /src/xen/tools/misc/xenhypfs.c:56,1
    - Dst: perror
      Src: /src/xen/tools/misc/xenhypfs.c:58,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:62,1
    - Dst: xenhypfs_print_escaped
      Src: /src/xen/tools/misc/xenhypfs.c:64,1
    - Dst: free
      Src: /src/xen/tools/misc/xenhypfs.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 33
    functionDepth: 7
    functionLinenumber: 33
    functionLinenumberEnd: 69
    functionName: xenhypfs_cat
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached:
    - free
    - xenhypfs_print_escaped
    - printf
    - strcmp
    - usage
    - xenhypfs_read
    - perror
    linkageType: ''
    returnType: int
    signature: int xenhypfs_cat(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_write
      Src: /src/xen/tools/misc/xenhypfs.c:75,1
    - Dst: perror
      Src: /src/xen/tools/misc/xenhypfs.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - path
    - val
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: xenhypfs_wr
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached:
    - perror
    - xenhypfs_write
    linkageType: ''
    returnType: int
    signature: int xenhypfs_wr(char *path, char *val)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct xenhypfs_dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 113
    functionName: xenhypfs_type
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xenhypfs_type(struct xenhypfs_dirent *ent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_readdir
      Src: /src/xen/tools/misc/xenhypfs.c:121,1
    - Dst: perror
      Src: /src/xen/tools/misc/xenhypfs.c:123,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:127,1
    - Dst: xenhypfs_type
      Src: /src/xen/tools/misc/xenhypfs.c:127,1
    - Dst: free
      Src: /src/xen/tools/misc/xenhypfs.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: xenhypfs_ls
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached:
    - xenhypfs_readdir
    - xenhypfs_type
    - free
    - printf
    - perror
    linkageType: ''
    returnType: int
    signature: int xenhypfs_ls(char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_readdir
      Src: /src/xen/tools/misc/xenhypfs.c:144,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:149,1
    - Dst: asprintf
      Src: /src/xen/tools/misc/xenhypfs.c:152,1
    - Dst: xenhypfs_tree_sub
      Src: /src/xen/tools/misc/xenhypfs.c:157,1
    - Dst: free
      Src: /src/xen/tools/misc/xenhypfs.c:159,1
    - Dst: free
      Src: /src/xen/tools/misc/xenhypfs.c:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - path
    - depth
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 7
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: xenhypfs_tree_sub
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 1
    functionsReached:
    - xenhypfs_readdir
    - asprintf
    - free
    - printf
    - xenhypfs_tree_sub
    linkageType: ''
    returnType: int
    signature: int xenhypfs_tree_sub(const char *path, unsigned int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xenhypfs.c:170,1
    - Dst: xenhypfs_tree_sub
      Src: /src/xen/tools/misc/xenhypfs.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 8
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: xenhypfs_tree
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 0
    functionsReached:
    - printf
    - xenhypfs_tree_sub
    linkageType: ''
    returnType: int
    signature: int xenhypfs_tree(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xenhypfs_open
      Src: /src/xen/tools/misc/xenhypfs.c:179,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenhypfs.c:182,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenhypfs.c:184,1
    - Dst: xenhypfs_cat
      Src: /src/xen/tools/misc/xenhypfs.c:185,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenhypfs.c:186,1
    - Dst: xenhypfs_ls
      Src: /src/xen/tools/misc/xenhypfs.c:187,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenhypfs.c:188,1
    - Dst: xenhypfs_wr
      Src: /src/xen/tools/misc/xenhypfs.c:189,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenhypfs.c:190,1
    - Dst: xenhypfs_tree
      Src: /src/xen/tools/misc/xenhypfs.c:191,1
    - Dst: usage
      Src: /src/xen/tools/misc/xenhypfs.c:193,1
    - Dst: xenhypfs_close
      Src: /src/xen/tools/misc/xenhypfs.c:195,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 175
    functionDepth: 9
    functionLinenumber: 175
    functionLinenumberEnd: 198
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xenhypfs.c
    functionUses: 130
    functionsReached:
    - xenhypfs_open
    - xenhypfs_ls
    - xenhypfs_close
    - xenhypfs_wr
    - xenhypfs_cat
    - fprintf
    - xenhypfs_tree
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - a
    - ','
    - b
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: DPRINTF
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPRINTF(a, b...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - a
    - ','
    - b
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ERROR
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(a, b...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - a
    - ','
    - b
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PERROR
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 156
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(a, b...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: close_handler
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void close_handler(int sig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/misc/xen-access.c:93,1
    - Dst: poll
      Src: /src/xen/tools/misc/xen-access.c:97,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:103,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/misc/xen-access.c:109,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:112,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/misc/xen-access.c:116,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - xch
    - xce
    - ms
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 130
    functionName: xc_wait_for_event_or_timeout
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unmask
    - xenevtchn_fd
    - ERROR
    - xenevtchn_pending
    - poll
    linkageType: ''
    returnType: int
    signature: int xc_wait_for_event_or_timeout(xc_interface *xch, xenevtchn_handle
      *xce, unsigned long ms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-access.c:141,1
    - Dst: xc_monitor_disable
      Src: /src/xen/tools/misc/xen-access.c:145,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:149,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/misc/xen-access.c:157,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:161,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/misc/xen-access.c:169,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:172,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-access.c:178,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:181,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-access.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - xch
    - xenaccess
    argTypes:
    - xc_interface*
    - xenaccess_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 189
    functionName: xenaccess_teardown
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached:
    - xenevtchn_unbind
    - free
    - munmap
    - ERROR
    - xc_interface_close
    - xc_monitor_disable
    - xenevtchn_close
    linkageType: ''
    returnType: int
    signature: int xenaccess_teardown(xc_interface *xch, xenaccess_t *xenaccess)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-access.c:197,1
    - Dst: DPRINTF
      Src: /src/xen/tools/misc/xen-access.c:201,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-access.c:205,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-access.c:206,1
    - Dst: xc_monitor_enable
      Src: /src/xen/tools/misc/xen-access.c:216,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:223,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:226,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-access.c:229,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/misc/xen-access.c:237,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:240,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/misc/xen-access.c:246,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:251,1
    - Dst: SHARED_RING_INIT
      Src: /src/xen/tools/misc/xen-access.c:258,1
    - Dst: BACK_RING_INIT
      Src: /src/xen/tools/misc/xen-access.c:259,1
    - Dst: xc_domain_maximum_gpfn
      Src: /src/xen/tools/misc/xen-access.c:264,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:270,1
    - Dst: DPRINTF
      Src: /src/xen/tools/misc/xen-access.c:274,1
    - Dst: xenaccess_teardown
      Src: /src/xen/tools/misc/xen-access.c:279,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-access.c:282,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 2
    argNames:
    - xch_r
    - domain_id
    argTypes:
    - xc_interface**
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 287
    functionName: xenaccess_init
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached:
    - SHARED_RING_INIT
    - ERROR
    - malloc
    - xc_interface_open
    - DPRINTF
    - xenaccess_teardown
    - xc_monitor_enable
    - xenevtchn_bind_interdomain
    - xc_domain_maximum_gpfn
    - memset
    - BACK_RING_INIT
    - perror
    - xenevtchn_open
    linkageType: ''
    returnType: xenaccess_t
    signature: xenaccess_t *xenaccess_init(xc_interface **xch_r, domid_t domain_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_debug_control
      Src: /src/xen/tools/misc/xen-access.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xch
    - domain_id
    - vcpu
    - enable
    argTypes:
    - xc_interface*
    - domid_t
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: control_singlestep
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached:
    - xc_domain_debug_control
    linkageType: ''
    returnType: int
    signature: "int control_singlestep(\n    xc_interface *xch,\n    domid_t domain_id,\n
      \   unsigned long vcpu,\n    bool enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/misc/xen-access.c:314,1
    - Dst: RING_GET_REQUEST
      Src: /src/xen/tools/misc/xen-access.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - vm_event
    - req
    argTypes:
    - vm_event_t*
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: get_request
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 1
    functionsReached:
    - RING_GET_REQUEST
    - memcpy
    linkageType: ''
    returnType: void
    signature: void get_request(vm_event_t *vm_event, vm_event_request_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-access.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: get_x86_ctrl_reg_name
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char * get_x86_ctrl_reg_name(uint32_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/misc/xen-access.c:352,1
    - Dst: RING_GET_RESPONSE
      Src: /src/xen/tools/misc/xen-access.c:352,1
    - Dst: RING_PUSH_RESPONSES
      Src: /src/xen/tools/misc/xen-access.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - vm_event
    - rsp
    argTypes:
    - vm_event_t*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 358
    functionName: put_response
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 1
    functionsReached:
    - memcpy
    - RING_PUSH_RESPONSES
    - RING_GET_RESPONSE
    linkageType: ''
    returnType: void
    signature: void put_response(vm_event_t *vm_event, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-access.c:362,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-access.c:364,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-access.c:366,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-access.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 21
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char* progname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:406,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-access.c:410,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-access.c:419,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-access.c:423,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:427,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:433,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:440,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:444,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:450,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:456,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:463,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:467,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:471,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:475,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-access.c:480,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-access.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 489
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-access.c
    functionUses: 131
    functionsReached:
    - atoi
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: BITS_TO_LONGS
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_LONGS(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: DECLARE_BITMAP
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_BITMAP(name,bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: READ
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:69,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:70,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:71,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:73,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:75,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: dump_header
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 1
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:110,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:120,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:125,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: dump_fpu
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_fpu(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:135,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:136,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:137,1
    - Dst: dump_fpu
      Src: /src/xen/tools/misc/xen-hvmctx.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 202
    functionName: dump_cpu
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - dump_fpu
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:207,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:208,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:209,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:212,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:214,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:216,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: dump_pic
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_pic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:226,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:227,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:228,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 235
    functionName: dump_ioapic
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_ioapic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:239,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:240,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: dump_lapic
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_lapic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:248,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:249,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:250,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: dump_lapic_regs
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_lapic_regs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:261,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:262,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: dump_pci_irq
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_pci_irq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:269,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:270,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: dump_isa_irq
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_isa_irq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:277,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:278,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: dump_pci_link
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_pci_link(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:286,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:287,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:288,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:291,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:294,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:296,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: dump_pit
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_pit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:306,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:307,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:308,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: dump_rtc
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_rtc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:319,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:322,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:323,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:325,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:329,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: dump_hpet
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_hpet(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:338,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:339,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: dump_pmtimer
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_pmtimer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:346,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:349,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:350,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:353,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 358
    functionName: dump_mtrr
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_mtrr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:362,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:363,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: dump_viridian_domain
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_viridian_domain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:371,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:372,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: dump_viridian_vcpu
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_viridian_vcpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:380,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:381,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:382,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:383,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 385
    functionName: dump_vmce_vcpu
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_vmce_vcpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_TYPE
      Src: /src/xen/tools/misc/xen-hvmctx.c:389,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:390,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: dump_tsc_adjust
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 0
    functionsReached:
    - HVM_SAVE_TYPE
    - READ
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_tsc_adjust(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-hvmctx.c:401,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmctx.c:403,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmctx.c:404,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-hvmctx.c:407,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmctx.c:410,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmctx.c:411,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/misc/xen-hvmctx.c:413,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmctx.c:416,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmctx.c:417,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-hvmctx.c:419,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmctx.c:422,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmctx.c:423,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/misc/xen-hvmctx.c:425,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hvmctx.c:428,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-hvmctx.c:429,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:434,1
    - Dst: READ
      Src: /src/xen/tools/misc/xen-hvmctx.c:438,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:439,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:444,1
    - Dst: dump_header
      Src: /src/xen/tools/misc/xen-hvmctx.c:444,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:445,1
    - Dst: dump_cpu
      Src: /src/xen/tools/misc/xen-hvmctx.c:445,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:446,1
    - Dst: dump_pic
      Src: /src/xen/tools/misc/xen-hvmctx.c:446,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:447,1
    - Dst: dump_ioapic
      Src: /src/xen/tools/misc/xen-hvmctx.c:447,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:448,1
    - Dst: dump_lapic
      Src: /src/xen/tools/misc/xen-hvmctx.c:448,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:449,1
    - Dst: dump_lapic_regs
      Src: /src/xen/tools/misc/xen-hvmctx.c:449,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:450,1
    - Dst: dump_pci_irq
      Src: /src/xen/tools/misc/xen-hvmctx.c:450,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:451,1
    - Dst: dump_isa_irq
      Src: /src/xen/tools/misc/xen-hvmctx.c:451,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:452,1
    - Dst: dump_pci_link
      Src: /src/xen/tools/misc/xen-hvmctx.c:452,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:453,1
    - Dst: dump_pit
      Src: /src/xen/tools/misc/xen-hvmctx.c:453,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:454,1
    - Dst: dump_rtc
      Src: /src/xen/tools/misc/xen-hvmctx.c:454,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:455,1
    - Dst: dump_hpet
      Src: /src/xen/tools/misc/xen-hvmctx.c:455,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:456,1
    - Dst: dump_pmtimer
      Src: /src/xen/tools/misc/xen-hvmctx.c:456,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:457,1
    - Dst: dump_mtrr
      Src: /src/xen/tools/misc/xen-hvmctx.c:457,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:458,1
    - Dst: dump_viridian_domain
      Src: /src/xen/tools/misc/xen-hvmctx.c:458,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:459,1
    - Dst: dump_viridian_vcpu
      Src: /src/xen/tools/misc/xen-hvmctx.c:459,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:460,1
    - Dst: dump_vmce_vcpu
      Src: /src/xen/tools/misc/xen-hvmctx.c:460,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:461,1
    - Dst: dump_tsc_adjust
      Src: /src/xen/tools/misc/xen-hvmctx.c:461,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:462,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hvmctx.c:464,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/misc/xen-hvmctx.c:468,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 394
    functionDepth: 4
    functionLinenumber: 394
    functionLinenumberEnd: 471
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-hvmctx.c
    functionUses: 132
    functionsReached:
    - dump_header
    - dump_viridian_vcpu
    - dump_hpet
    - xc_interface_open
    - dump_lapic
    - dump_tsc_adjust
    - dump_pic
    - malloc
    - xc_domain_hvm_getcontext
    - dump_pit
    - dump_pci_irq
    - dump_mtrr
    - dump_vmce_vcpu
    - dump_lapic_regs
    - dump_rtc
    - fprintf
    - dump_isa_irq
    - printf
    - exit
    - dump_viridian_domain
    - HVM_SAVE_CODE
    - dump_cpu
    - dump_ioapic
    - dump_pci_link
    - READ
    - atoi
    - dump_pmtimer
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: M2P_SIZE
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M2P_SIZE(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: is_mapped
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_mapped(pfn_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - msg
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: ERROR
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 224
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(msg, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-mfndump.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: help_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int help_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:45,1
    - Dst: xc_maximum_ram_page
      Src: /src/xen/tools/misc/xen-mfndump.c:50,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:52,1
    - Dst: xc_map_m2p
      Src: /src/xen/tools/misc/xen-mfndump.c:56,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:58,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:62,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:63,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:66,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:68,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:70,1
    - Dst: M2P_SIZE
      Src: /src/xen/tools/misc/xen-mfndump.c:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 72
    functionName: dump_m2p_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - M2P_SIZE
    - ERROR
    - munmap
    - xc_maximum_ram_page
    - xc_map_m2p
    - printf
    - help_func
    linkageType: ''
    returnType: int
    signature: int dump_m2p_func(int argc, char *argv[])
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:83,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-mfndump.c:86,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-mfndump.c:88,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:90,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mfndump.c:95,1
    - Dst: xc_map_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:96,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:98,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:102,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:103,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:122,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:128,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:131,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:134,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:138,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:141,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:144,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:147,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:151,1
    - Dst: xc_unmap_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:153,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 155
    functionName: dump_p2m_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - ERROR
    - xc_map_domain_meminfo
    - printf
    - memset
    - help_func
    - atoi
    - xc_domain_getinfo_single
    - xc_unmap_domain_meminfo
    linkageType: ''
    returnType: int
    signature: int dump_p2m_func(int argc, char *argv[])
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:168,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-mfndump.c:171,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-mfndump.c:172,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-mfndump.c:174,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:176,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mfndump.c:181,1
    - Dst: xc_map_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:182,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:184,1
    - Dst: xc_maximum_ram_page
      Src: /src/xen/tools/misc/xen-mfndump.c:189,1
    - Dst: xc_map_m2p
      Src: /src/xen/tools/misc/xen-mfndump.c:191,1
    - Dst: xc_unmap_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:193,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:194,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:201,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:208,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/misc/xen-mfndump.c:213,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:217,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:224,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:225,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:227,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:232,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:235,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:238,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:241,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:245,1
    - Dst: is_mapped
      Src: /src/xen/tools/misc/xen-mfndump.c:246,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:247,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:248,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:251,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:253,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:258,1
    - Dst: xc_unmap_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:259,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:260,1
    - Dst: M2P_SIZE
      Src: /src/xen/tools/misc/xen-mfndump.c:260,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 262
    functionName: dump_ptes_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - M2P_SIZE
    - is_mapped
    - ERROR
    - munmap
    - xc_map_domain_meminfo
    - xc_maximum_ram_page
    - xc_map_m2p
    - xc_unmap_domain_meminfo
    - xc_map_foreign_range
    - printf
    - memset
    - help_func
    - atoi
    - xc_domain_getinfo_single
    - strtoul
    linkageType: ''
    returnType: int
    signature: int dump_ptes_func(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:274,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-mfndump.c:277,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-mfndump.c:278,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-mfndump.c:280,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:282,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mfndump.c:287,1
    - Dst: xc_map_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:288,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:290,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:296,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:298,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/misc/xen-mfndump.c:308,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:320,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:326,1
    - Dst: xc_unmap_domain_meminfo
      Src: /src/xen/tools/misc/xen-mfndump.c:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 332
    functionName: lookup_pte_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - ERROR
    - munmap
    - xc_map_domain_meminfo
    - xc_unmap_domain_meminfo
    - xc_map_foreign_range
    - printf
    - memset
    - help_func
    - atoi
    - xc_domain_getinfo_single
    - strtoul
    linkageType: ''
    returnType: int
    signature: int lookup_pte_func(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:344,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-mfndump.c:347,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-mfndump.c:348,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-mfndump.c:349,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-mfndump.c:350,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-mfndump.c:352,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-mfndump.c:353,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:355,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/misc/xen-mfndump.c:359,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/misc/xen-mfndump.c:360,1
    - Dst: ERROR
      Src: /src/xen/tools/misc/xen-mfndump.c:363,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:369,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:370,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mfndump.c:372,1
    - Dst: memcmp
      Src: /src/xen/tools/misc/xen-mfndump.c:372,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:376,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-mfndump.c:378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 380
    functionName: memcmp_mfns_func
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ERROR
    - munmap
    - xc_map_foreign_range
    - printf
    - help_func
    - atoi
    - xc_domain_getinfo_single
    - strtoul
    linkageType: ''
    returnType: int
    signature: int memcmp_mfns_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:402,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-mfndump.c:406,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-mfndump.c:409,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-mfndump.c:413,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xen-mfndump.c:415,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-mfndump.c:415,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-mfndump.c:419,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-mfndump.c:421,1
    - Dst: help_func
      Src: /src/xen/tools/misc/xen-mfndump.c:422,1
    - Dst: func
      Src: /src/xen/tools/misc/xen-mfndump.c:426,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-mfndump.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 431
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-mfndump.c
    functionUses: 132
    functionsReached:
    - ARRAY_SIZE
    - xc_interface_open
    - strncmp
    - fprintf
    - strlen
    - xc_interface_close
    - help_func
    - func
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - idx
    - regs
    - pv_context
    argTypes:
    - uint32_t
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 69
    functionName: cpuid
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpuid(uint32_t idx, uint32_t *regs, int pv_context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/tools/misc/xen-detect.c:79,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-detect.c:86,1
    - Dst: cpuid
      Src: /src/xen/tools/misc/xen-detect.c:108,1
    - Dst: cpuid
      Src: /src/xen/tools/misc/xen-detect.c:113,1
    - Dst: asprintf
      Src: /src/xen/tools/misc/xen-detect.c:116,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-detect.c:120,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-detect.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - pv_context
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 125
    functionName: check_for_xen
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 0
    functionsReached:
    - asprintf
    - cpuid
    - exit
    - strcmp
    - perror
    linkageType: ''
    returnType: int
    signature: int check_for_xen(int pv_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: longjmp
      Src: /src/xen/tools/misc/xen-detect.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: sigill_handler
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 0
    functionsReached:
    - longjmp
    linkageType: ''
    returnType: void
    signature: void sigill_handler(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:135,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:136,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:137,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:138,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:139,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:140,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/misc/xen-detect.c:150,1
    - Dst: fstat
      Src: /src/xen/tools/misc/xen-detect.c:153,1
    - Dst: fileno
      Src: /src/xen/tools/misc/xen-detect.c:153,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/misc/xen-detect.c:153,1
    - Dst: fclose
      Src: /src/xen/tools/misc/xen-detect.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: check_dir
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 0
    functionsReached:
    - fopen
    - fileno
    - fclose
    - fstat
    - S_ISDIR
    linkageType: ''
    returnType: bool
    signature: bool check_dir(const char *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/tools/misc/xen-detect.c:166,1
    - Dst: fstat
      Src: /src/xen/tools/misc/xen-detect.c:170,1
    - Dst: fileno
      Src: /src/xen/tools/misc/xen-detect.c:170,1
    - Dst: S_ISREG
      Src: /src/xen/tools/misc/xen-detect.c:170,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-detect.c:174,1
    - Dst: fread
      Src: /src/xen/tools/misc/xen-detect.c:182,1
    - Dst: ferror
      Src: /src/xen/tools/misc/xen-detect.c:184,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-detect.c:186,1
    - Dst: fclose
      Src: /src/xen/tools/misc/xen-detect.c:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 193
    functionName: read_file_content
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - fopen
    - fileno
    - ferror
    - free
    - fread
    - malloc
    - fclose
    - fstat
    linkageType: ''
    returnType: char
    signature: char *read_file_content(const char *filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_dir
      Src: /src/xen/tools/misc/xen-detect.c:200,1
    - Dst: read_file_content
      Src: /src/xen/tools/misc/xen-detect.c:203,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-detect.c:204,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-detect.c:206,1
    - Dst: read_file_content
      Src: /src/xen/tools/misc/xen-detect.c:208,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-detect.c:211,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-detect.c:213,1
    - Dst: read_file_content
      Src: /src/xen/tools/misc/xen-detect.c:218,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-detect.c:220,1
    - Dst: read_file_content
      Src: /src/xen/tools/misc/xen-detect.c:221,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-detect.c:223,1
    - Dst: asprintf
      Src: /src/xen/tools/misc/xen-detect.c:226,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-detect.c:229,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-detect.c:230,1
    - Dst: strdup
      Src: /src/xen/tools/misc/xen-detect.c:233,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-detect.c:234,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-detect.c:237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 239
    functionName: check_sysfs
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 0
    functionsReached:
    - asprintf
    - free
    - read_file_content
    - check_dir
    - strlen
    - strdup
    - exit
    - strcmp
    - perror
    linkageType: ''
    returnType: enum guest_type
    signature: enum guest_type check_sysfs(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/misc/xen-detect.c:256,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-detect.c:273,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-detect.c:274,1
    - Dst: check_sysfs
      Src: /src/xen/tools/misc/xen-detect.c:278,1
    - Dst: check_for_xen
      Src: /src/xen/tools/misc/xen-detect.c:285,1
    - Dst: setjmp
      Src: /src/xen/tools/misc/xen-detect.c:295,1
    - Dst: signal
      Src: /src/xen/tools/misc/xen-detect.c:296,1
    - Dst: check_for_xen
      Src: /src/xen/tools/misc/xen-detect.c:297,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:306,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-detect.c:308,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-detect.c:310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-detect.c
    functionUses: 132
    functionsReached:
    - check_for_xen
    - check_sysfs
    - free
    - signal
    - getopt_long
    - printf
    - exit
    - usage
    - setjmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-diag.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: show_help
    functionSourceFile: /src/xen/tools/misc/xen-diag.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-diag.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: help_func
    functionSourceFile: /src/xen/tools/misc/xen-diag.c
    functionUses: 6
    functionsReached:
    - show_help
    linkageType: ''
    returnType: int
    signature: int help_func(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-diag.c:42,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-diag.c:46,1
    - Dst: xc_gnttab_query_size
      Src: /src/xen/tools/misc/xen-diag.c:48,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-diag.c:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: gnttab_query_size_func
    functionSourceFile: /src/xen/tools/misc/xen-diag.c
    functionUses: 0
    functionsReached:
    - show_help
    - xc_gnttab_query_size
    - printf
    - strtol
    linkageType: ''
    returnType: int
    signature: int gnttab_query_size_func(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/xen/tools/misc/xen-diag.c:73,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-diag.c:77,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-diag.c:81,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xen-diag.c:82,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-diag.c:82,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-diag.c:85,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-diag.c:87,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-diag.c:92,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-diag.c:95,1
    - Dst: function
      Src: /src/xen/tools/misc/xen-diag.c:99,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-diag.c:101,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-diag.c:113,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-diag.c:114,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-diag.c:115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-diag.c
    functionUses: 132
    functionsReached:
    - ARRAY_SIZE
    - xc_interface_open
    - function
    - BUILD_BUG_ON
    - strncmp
    - fprintf
    - strlen
    - xc_interface_close
    - show_help
    - setvbuf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: X
    functionSourceFile: /src/xen/tools/misc/xenperf.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenperf.c:85,1
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenperf.c:86,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:116,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:117,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:118,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:119,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:120,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xenperf.c:125,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenperf.c:127,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenperf.c:128,1
    - Dst: xc_perfc_reset
      Src: /src/xen/tools/misc/xenperf.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenperf.c:136,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenperf.c:137,1
    - Dst: xc_perfc_query_number
      Src: /src/xen/tools/misc/xenperf.c:144,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenperf.c:146,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenperf.c:147,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/misc/xenperf.c:151,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/misc/xenperf.c:152,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenperf.c:156,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenperf.c:157,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenperf.c:158,1
    - Dst: xc_perfc_query
      Src: /src/xen/tools/misc/xenperf.c:161,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenperf.c:161,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenperf.c:161,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenperf.c:163,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenperf.c:164,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:173,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:177,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenperf.c:181,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:183,1
    - Dst: strncpy
      Src: /src/xen/tools/misc/xenperf.c:189,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xenperf.c:192,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:194,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:195,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:201,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:202,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenperf.c:207,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/misc/xenperf.c:213,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/misc/xenperf.c:214,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 216
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xenperf.c
    functionUses: 132
    functionsReached:
    - snprintf
    - DECLARE_HYPERCALL_BUFFER
    - xc_perfc_query_number
    - xc_interface_open
    - strncpy
    - xc_perfc_query
    - strerror
    - fprintf
    - xc_hypercall_buffer_alloc
    - printf
    - xc_hypercall_buffer_free
    - exit
    - xc_perfc_reset
    - strcmp
    - HYPERCALL_BUFFER
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpu_version
      Src: /src/xen/tools/misc/xen-ucode.c:31,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:34,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:35,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:36,1
    - Dst: xc_get_ucode_revision
      Src: /src/xen/tools/misc/xen-ucode.c:39,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:42,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:43,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:44,1
    - Dst: memcmp
      Src: /src/xen/tools/misc/xen-ucode.c:54,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:57,1
    - Dst: memcmp
      Src: /src/xen/tools/misc/xen-ucode.c:62,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:65,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:72,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 75
    functionName: show_curr_cpu
    functionSourceFile: /src/xen/tools/misc/xen-ucode.c
    functionUses: 0
    functionsReached:
    - memcmp
    - xc_get_cpu_version
    - xc_get_ucode_revision
    - strerror
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void show_curr_cpu(FILE *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:79,1
    - Dst: show_curr_cpu
      Src: /src/xen/tools/misc/xen-ucode.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xen-ucode.c
    functionUses: 23
    functionsReached:
    - fprintf
    - show_curr_cpu
    linkageType: ''
    returnType: void
    signature: void usage(FILE *stream, const char *name)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-ucode.c:108,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:111,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:112,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:113,1
    - Dst: getopt_long
      Src: /src/xen/tools/misc/xen-ucode.c:116,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-ucode.c:121,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:122,1
    - Dst: show_curr_cpu
      Src: /src/xen/tools/misc/xen-ucode.c:125,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:126,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:133,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:140,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-ucode.c:145,1
    - Dst: show_curr_cpu
      Src: /src/xen/tools/misc/xen-ucode.c:147,1
    - Dst: open
      Src: /src/xen/tools/misc/xen-ucode.c:152,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:155,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:156,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:157,1
    - Dst: fstat
      Src: /src/xen/tools/misc/xen-ucode.c:160,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:162,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:163,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:164,1
    - Dst: mmap
      Src: /src/xen/tools/misc/xen-ucode.c:168,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:171,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:171,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:172,1
    - Dst: xc_microcode_update
      Src: /src/xen/tools/misc/xen-ucode.c:176,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-ucode.c:178,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-ucode.c:181,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:182,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:183,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-ucode.c:186,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-ucode.c:188,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-ucode.c:190,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-ucode.c:190,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:191,1
    - Dst: close
      Src: /src/xen/tools/misc/xen-ucode.c:193,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-ucode.c:198,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-ucode.c:199,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-ucode.c
    functionUses: 132
    functionsReached:
    - fstat
    - open
    - xc_interface_close
    - munmap
    - xc_interface_open
    - getopt_long
    - mmap
    - xc_microcode_update
    - close
    - strerror
    - fprintf
    - printf
    - exit
    - strcmp
    - usage
    - show_curr_cpu
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: show_help
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: help_func
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 6
    functionsReached:
    - show_help
    linkageType: ''
    returnType: int
    signature: int help_func(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE
      Src: /src/xen/tools/misc/xen-livepatch.c:61,1
    - Dst: STATE
      Src: /src/xen/tools/misc/xen-livepatch.c:62,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: state2str
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - STATE
    linkageType: ''
    returnType: char
    signature: char *state2str(unsigned int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: STATE
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE(x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:84,1
    - Dst: xc_livepatch_list_get_sizes
      Src: /src/xen/tools/misc/xen-livepatch.c:89,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:93,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:95,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:101,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:105,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:109,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:113,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:117,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:121,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:125,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:126,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:127,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:128,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:129,1
    - Dst: xc_livepatch_list
      Src: /src/xen/tools/misc/xen-livepatch.c:132,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:137,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:139,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:143,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:152,1
    - Dst: state2str
      Src: /src/xen/tools/misc/xen-livepatch.c:152,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:154,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:154,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:156,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:161,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:168,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:170,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:172,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:174,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:176,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 178
    functionName: list_func
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - state2str
    - strerror
    - fprintf
    - memset
    - printf
    - xc_livepatch_list_get_sizes
    - show_help
    - xc_livepatch_list
    linkageType: ''
    returnType: int
    signature: int list_func(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-livepatch.c:183,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:186,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-livepatch.c:192,1
    - Dst: strncpy
      Src: /src/xen/tools/misc/xen-livepatch.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - argc
    - argv
    - name
    argTypes:
    - int
    - char*[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: get_name
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 9
    functionsReached:
    - memset
    - fprintf
    - strlen
    - strncpy
    linkageType: ''
    returnType: int
    signature: int get_name(int argc, char *argv[], char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:208,1
    - Dst: get_name
      Src: /src/xen/tools/misc/xen-livepatch.c:212,1
    - Dst: open
      Src: /src/xen/tools/misc/xen-livepatch.c:216,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:220,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:222,1
    - Dst: stat
      Src: /src/xen/tools/misc/xen-livepatch.c:225,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:228,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:230,1
    - Dst: close
      Src: /src/xen/tools/misc/xen-livepatch.c:231,1
    - Dst: mmap
      Src: /src/xen/tools/misc/xen-livepatch.c:236,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:240,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:242,1
    - Dst: close
      Src: /src/xen/tools/misc/xen-livepatch.c:243,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:246,1
    - Dst: xc_livepatch_upload
      Src: /src/xen/tools/misc/xen-livepatch.c:247,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:251,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:252,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:252,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:255,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-livepatch.c:258,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:260,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:262,1
    - Dst: close
      Src: /src/xen/tools/misc/xen-livepatch.c:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 267
    functionName: upload_func
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - open
    - munmap
    - stat
    - close
    - mmap
    - strerror
    - fprintf
    - get_name
    - printf
    - xc_livepatch_upload
    - show_help
    linkageType: ''
    returnType: int
    signature: int upload_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:342,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:348,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-livepatch.c:353,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:360,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - argc
    - argv
    - idx
    - flags
    argTypes:
    - int
    - char*[]
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 369
    functionName: get_flags
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fprintf
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int get_flags(int argc, char *argv[], unsigned int idx, uint32_t *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/xen/tools/misc/xen-livepatch.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ns
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: nanosleep_retry
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - nanosleep
    linkageType: ''
    returnType: void
    signature: void nanosleep_retry(long ns)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:400,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:404,1
    - Dst: get_name
      Src: /src/xen/tools/misc/xen-livepatch.c:407,1
    - Dst: get_flags
      Src: /src/xen/tools/misc/xen-livepatch.c:410,1
    - Dst: xc_livepatch_get
      Src: /src/xen/tools/misc/xen-livepatch.c:414,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:418,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:420,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:425,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:433,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:440,1
    - Dst: function
      Src: /src/xen/tools/misc/xen-livepatch.c:441,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:445,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:446,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:447,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:453,1
    - Dst: state2str
      Src: /src/xen/tools/misc/xen-livepatch.c:456,1
    - Dst: state2str
      Src: /src/xen/tools/misc/xen-livepatch.c:457,1
    - Dst: nanosleep_retry
      Src: /src/xen/tools/misc/xen-livepatch.c:461,1
    - Dst: xc_livepatch_get
      Src: /src/xen/tools/misc/xen-livepatch.c:462,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:471,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:472,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:480,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:483,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:484,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-livepatch.c:484,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-livepatch.c:489,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:490,1
    - Dst: state2str
      Src: /src/xen/tools/misc/xen-livepatch.c:493,1
    - Dst: state2str
      Src: /src/xen/tools/misc/xen-livepatch.c:494,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 3
    argNames:
    - argc
    - argv
    - idx
    argTypes:
    - int
    - char*[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 499
    functionName: action_func
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - function
    - state2str
    - strerror
    - fprintf
    - get_name
    - xc_livepatch_get
    - printf
    - nanosleep_retry
    - show_help
    - get_flags
    linkageType: ''
    returnType: int
    signature: int action_func(int argc, char *argv[], unsigned int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:509,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-livepatch.c:514,1
    - Dst: strdup
      Src: /src/xen/tools/misc/xen-livepatch.c:522,1
    - Dst: basename
      Src: /src/xen/tools/misc/xen-livepatch.c:524,1
    - Dst: strrchr
      Src: /src/xen/tools/misc/xen-livepatch.c:525,1
    - Dst: upload_func
      Src: /src/xen/tools/misc/xen-livepatch.c:535,1
    - Dst: action_func
      Src: /src/xen/tools/misc/xen-livepatch.c:539,1
    - Dst: action_func
      Src: /src/xen/tools/misc/xen-livepatch.c:541,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:544,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-livepatch.c:545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 547
    functionName: load_func
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 1
    functionsReached:
    - basename
    - free
    - upload_func
    - malloc
    - action_func
    - strdup
    - strrchr
    - show_help
    linkageType: ''
    returnType: int
    signature: int load_func(int argc, char *argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/xen/tools/misc/xen-livepatch.c:571,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:575,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-livepatch.c:579,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-livepatch.c:583,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:591,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-livepatch.c:592,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:595,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:597,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-livepatch.c:598,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:601,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:603,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-livepatch.c:609,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-livepatch.c:612,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-livepatch.c:616,1
    - Dst: action_func
      Src: /src/xen/tools/misc/xen-livepatch.c:617,1
    - Dst: function
      Src: /src/xen/tools/misc/xen-livepatch.c:619,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-livepatch.c:621,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-livepatch.c:631,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-livepatch.c:632,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-livepatch.c:633,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 645
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-livepatch.c
    functionUses: 132
    functionsReached:
    - ARRAY_SIZE
    - strcmp
    - xc_interface_open
    - function
    - action_func
    - BUILD_BUG_ON
    - fprintf
    - xc_interface_close
    - show_help
    - setvbuf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/misc/xen-mceinj.c:126,1
    - Dst: vasprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:127,1
    - Dst: abort
      Src: /src/xen/tools/misc/xen-mceinj.c:128,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:129,1
    - Dst: va_end
      Src: /src/xen/tools/misc/xen-mceinj.c:130,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-mceinj.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: Lprintf
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - va_start
    - abort
    - vasprintf
    - free
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void Lprintf(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/misc/xen-mceinj.c:139,1
    - Dst: vasprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:140,1
    - Dst: abort
      Src: /src/xen/tools/misc/xen-mceinj.c:141,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-mceinj.c:142,1
    - Dst: va_end
      Src: /src/xen/tools/misc/xen-mceinj.c:143,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-mceinj.c:144,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-mceinj.c:147,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-mceinj.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - xc_handle
    - fmt
    argTypes:
    - xc_interface*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: err
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 33
    functionsReached:
    - va_start
    - abort
    - vasprintf
    - free
    - exit
    - xc_interface_close
    - va_end
    - perror
    linkageType: ''
    returnType: void
    signature: void err(xc_interface *xc_handle, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: init_msr_inj
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void init_msr_inj(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_mca_op
      Src: /src/xen/tools/misc/xen-mceinj.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - xc_handle
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: flush_msr_inj
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - xc_mca_op
    linkageType: ''
    returnType: int
    signature: int flush_msr_inj(xc_interface *xc_handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:171,1
    - Dst: xc_mca_op
      Src: /src/xen/tools/misc/xen-mceinj.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - xc_handle
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 180
    functionName: mca_cpuinfo
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_mca_op
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mca_cpuinfo(xc_interface *xc_handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:187,1
    - Dst: mca_cpuinfo
      Src: /src/xen/tools/misc/xen-mceinj.c:189,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:191,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:193,1
    - Dst: xc_mca_op
      Src: /src/xen/tools/misc/xen-mceinj.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - xc_handle
    - cpu_nr
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: inject_cmci
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - memset
    - err
    - xc_mca_op
    - mca_cpuinfo
    linkageType: ''
    returnType: int
    signature: int inject_cmci(xc_interface *xc_handle, unsigned int cpu_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:209,1
    - Dst: xc_mca_op
      Src: /src/xen/tools/misc/xen-mceinj.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xc_handle
    - cpu_nr
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: inject_mce
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - memset
    - xc_mca_op
    linkageType: ''
    returnType: int
    signature: int inject_mce(xc_interface *xc_handle, int cpu_nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mca_cpuinfo
      Src: /src/xen/tools/misc/xen-mceinj.c:225,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:227,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:229,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-mceinj.c:232,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:234,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:235,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-mceinj.c:238,1
    - Dst: xc_mca_op_inject_v2
      Src: /src/xen/tools/misc/xen-mceinj.c:240,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-mceinj.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - xc_handle
    - cpu
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 245
    functionName: inject_lmce
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - err
    - mca_cpuinfo
    - free
    - malloc
    - xc_mca_op_inject_v2
    - memset
    linkageType: ''
    returnType: int
    signature: int inject_lmce(xc_interface *xc_handle, unsigned int cpu)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - bank
    - type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: bank_addr
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bank_addr(int bank, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flush_msr_inj
      Src: /src/xen/tools/misc/xen-mceinj.c:284,1
    - Dst: init_msr_inj
      Src: /src/xen/tools/misc/xen-mceinj.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - xc_handle
    - cpu_nr
    - flags
    - msr
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint64_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 300
    functionName: add_msr_intpose
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - init_msr_inj
    - flush_msr_inj
    linkageType: ''
    returnType: int
    signature: "int add_msr_intpose(xc_interface *xc_handle,\n                           uint32_t
      cpu_nr,\n                           uint32_t flags,\n                           uint64_t
      msr,\n                           uint64_t val,\n                           domid_t
      domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bank_addr
      Src: /src/xen/tools/misc/xen-mceinj.c:312,1
    - Dst: add_msr_intpose
      Src: /src/xen/tools/misc/xen-mceinj.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - xc_handle
    - cpu_nr
    - flags
    - type
    - bank
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 316
    functionName: add_msr_bank_intpose
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - add_msr_intpose
    - bank_addr
    linkageType: ''
    returnType: int
    signature: "int add_msr_bank_intpose(xc_interface *xc_handle,\n                                uint32_t
      cpu_nr,\n                                uint32_t flags,\n                                uint32_t
      type,\n                                uint32_t bank,\n                                uint64_t
      val,\n                                domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_msr_intpose
      Src: /src/xen/tools/misc/xen-mceinj.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - xc_handle
    - cpu_nr
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 325
    functionName: inject_mcg_status
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - add_msr_intpose
    linkageType: ''
    returnType: int
    signature: "int inject_mcg_status(xc_interface *xc_handle,\n                             uint32_t
      cpu_nr,\n                             uint64_t val,\n                             domid_t
      domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_msr_bank_intpose
      Src: /src/xen/tools/misc/xen-mceinj.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xc_handle
    - cpu_nr
    - bank
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 5
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: inject_mci_status
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - add_msr_bank_intpose
    linkageType: ''
    returnType: int
    signature: "int inject_mci_status(xc_interface *xc_handle,\n                             uint32_t
      cpu_nr,\n                             uint64_t bank,\n                             uint64_t
      val,\n                             domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_msr_bank_intpose
      Src: /src/xen/tools/misc/xen-mceinj.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - xc_handle
    - cpu_nr
    - bank
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: inject_mci_misc
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - add_msr_bank_intpose
    linkageType: ''
    returnType: int
    signature: "int inject_mci_misc(xc_interface *xc_handle,\n                           uint32_t
      cpu_nr,\n                           uint64_t bank,\n                           uint64_t
      val,\n                           domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_msr_bank_intpose
      Src: /src/xen/tools/misc/xen-mceinj.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - xc_handle
    - cpu_nr
    - bank
    - val
    - domid
    argTypes:
    - xc_interface*
    - uint32_t
    - uint64_t
    - uint64_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: inject_mci_addr
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - add_msr_bank_intpose
    linkageType: ''
    returnType: int
    signature: "int inject_mci_addr(xc_interface *xc_handle,\n                           uint32_t
      cpu_nr,\n                           uint64_t bank,\n                           uint64_t
      val,\n                           domid_t domid)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:370,1
    - Dst: inject_mcg_status
      Src: /src/xen/tools/misc/xen-mceinj.c:373,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:375,1
    - Dst: inject_mci_status
      Src: /src/xen/tools/misc/xen-mceinj.c:377,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:380,1
    - Dst: inject_mci_misc
      Src: /src/xen/tools/misc/xen-mceinj.c:382,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:385,1
    - Dst: inject_mci_addr
      Src: /src/xen/tools/misc/xen-mceinj.c:387,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:389,1
    - Dst: flush_msr_inj
      Src: /src/xen/tools/misc/xen-mceinj.c:391,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:393,1
    - Dst: inject_cmci
      Src: /src/xen/tools/misc/xen-mceinj.c:395,1
    - Dst: inject_lmce
      Src: /src/xen/tools/misc/xen-mceinj.c:397,1
    - Dst: inject_mce
      Src: /src/xen/tools/misc/xen-mceinj.c:399,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - xc_handle
    - mce
    - cpu_nr
    - domain
    - gaddr
    argTypes:
    - xc_interface*
    - struct mce_info*
    - uint32_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 404
    functionName: inject
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 1
    functionsReached:
    - err
    - inject_cmci
    - inject_mci_status
    - inject_mce
    - inject_mci_addr
    - inject_mcg_status
    - inject_mci_misc
    - inject_lmce
    - flush_msr_inj
    linkageType: ''
    returnType: int
    signature: "int inject(xc_interface *xc_handle, struct mce_info *mce,\n                  uint32_t
      cpu_nr, uint32_t domain, uint64_t gaddr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/misc/xen-mceinj.c:414,1
    - Dst: sprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:418,1
    - Dst: xs_read
      Src: /src/xen/tools/misc/xen-mceinj.c:419,1
    - Dst: xs_close
      Src: /src/xen/tools/misc/xen-mceinj.c:420,1
    - Dst: atoll
      Src: /src/xen/tools/misc/xen-mceinj.c:425,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-mceinj.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 429
    functionName: xs_get_dom_mem
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 0
    functionsReached:
    - xs_open
    - free
    - sprintf
    - xs_read
    - atoll
    - xs_close
    linkageType: ''
    returnType: long
    signature: long xs_get_dom_mem(int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mceinj.c:445,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-mceinj.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 460
    functionName: help
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 28
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void help(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: init_msr_inj
      Src: /src/xen/tools/misc/xen-mceinj.c:476,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-mceinj.c:477,1
    - Dst: Lprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:480,1
    - Dst: exit
      Src: /src/xen/tools/misc/xen-mceinj.c:481,1
    - Dst: getopt_long
      Src: /src/xen/tools/misc/xen-mceinj.c:486,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-mceinj.c:495,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-mceinj.c:496,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:497,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-mceinj.c:500,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-mceinj.c:501,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:502,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-mceinj.c:505,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-mceinj.c:506,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:507,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-mceinj.c:510,1
    - Dst: help
      Src: /src/xen/tools/misc/xen-mceinj.c:517,1
    - Dst: xs_get_dom_mem
      Src: /src/xen/tools/misc/xen-mceinj.c:524,1
    - Dst: Lprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:525,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:527,1
    - Dst: Lprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:529,1
    - Dst: Lprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:534,1
    - Dst: Lprintf
      Src: /src/xen/tools/misc/xen-mceinj.c:536,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-mceinj.c:542,1
    - Dst: inject
      Src: /src/xen/tools/misc/xen-mceinj.c:546,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-mceinj.c:549,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 462
    functionDepth: 7
    functionLinenumber: 462
    functionLinenumberEnd: 551
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-mceinj.c
    functionUses: 132
    functionsReached:
    - xs_get_dom_mem
    - err
    - xc_interface_close
    - getopt_long
    - xc_interface_open
    - init_msr_inj
    - Lprintf
    - help
    - inject
    - strlen
    - strtol
    - exit
    - strtoul
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:64,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - leaf
    - strs
    argTypes:
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: dump_leaf
    functionSourceFile: /src/xen/tools/misc/xen-cpuid.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_leaf(uint32_t leaf, const char *const *strs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-cpuid.c:78,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:78,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/tools/misc/xen-cpuid.c:79,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:79,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:81,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:83,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:89,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:91,1
    - Dst: dump_leaf
      Src: /src/xen/tools/misc/xen-cpuid.c:92,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - features
    - length
    - name
    - detail
    argTypes:
    - uint32_t*
    - uint32_t
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 95
    functionName: decode_featureset
    functionSourceFile: /src/xen/tools/misc/xen-cpuid.c
    functionUses: 0
    functionsReached:
    - printf
    - dump_leaf
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void decode_featureset(const uint32_t *features,\n                              const
      uint32_t length,\n                              const char *name,\n                              bool
      detail)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:102,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:106,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:107,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:108,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:109,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:112,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:113,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:113,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:115,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:115,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:117,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:117,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:119,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:119,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:121,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:121,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:123,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:123,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:125,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:125,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:127,1
    - Dst: xc_get_static_cpu_featuremask
      Src: /src/xen/tools/misc/xen-cpuid.c:127,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:130,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xen-cpuid.c:132,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:134,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:136,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-cpuid.c:141,1
    - Dst: xc_get_cpu_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:143,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:148,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:152,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:155,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-cpuid.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - xch
    - detail
    argTypes:
    - xc_interface*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 159
    functionName: dump_info
    functionSourceFile: /src/xen/tools/misc/xen-cpuid.c
    functionUses: 0
    functionsReached:
    - err
    - ARRAY_SIZE
    - free
    - malloc
    - xc_get_cpu_featureset
    - xc_get_static_cpu_featuremask
    - decode_featureset
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void dump_info(xc_interface *xch, bool detail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:167,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:168,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:169,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:177,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:182,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:183,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 5
    argNames:
    - name
    - leaves
    - nr_leaves
    - msrs
    - nr_msrs
    argTypes:
    - char*
    - xen_cpuid_leaf_t*
    - uint32_t
    - xen_msr_entry_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: print_policy
    functionSourceFile: /src/xen/tools/misc/xen-cpuid.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_policy(const char *name,\n                         xen_cpuid_leaf_t
      *leaves, uint32_t nr_leaves,\n                         xen_msr_entry_t *msrs,
      uint32_t nr_msrs)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpu_featureset_size
      Src: /src/xen/tools/misc/xen-cpuid.c:195,1
    - Dst: getopt_long
      Src: /src/xen/tools/misc/xen-cpuid.c:211,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:219,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:222,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-cpuid.c:245,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:247,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-cpuid.c:264,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xen-cpuid.c:269,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-cpuid.c:295,1
    - Dst: xc_cpu_policy_init
      Src: /src/xen/tools/misc/xen-cpuid.c:296,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:299,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:301,1
    - Dst: xc_cpu_policy_get_size
      Src: /src/xen/tools/misc/xen-cpuid.c:303,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:304,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:306,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xen-cpuid.c:309,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:311,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xen-cpuid.c:312,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:314,1
    - Dst: xc_cpu_policy_get_domain
      Src: /src/xen/tools/misc/xen-cpuid.c:322,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:323,1
    - Dst: xc_cpu_policy_serialise
      Src: /src/xen/tools/misc/xen-cpuid.c:324,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:326,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xen-cpuid.c:328,1
    - Dst: print_policy
      Src: /src/xen/tools/misc/xen-cpuid.c:329,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-cpuid.c:334,1
    - Dst: xc_cpu_policy_get_system
      Src: /src/xen/tools/misc/xen-cpuid.c:339,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-cpuid.c:343,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:348,1
    - Dst: xc_cpu_policy_serialise
      Src: /src/xen/tools/misc/xen-cpuid.c:350,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:352,1
    - Dst: print_policy
      Src: /src/xen/tools/misc/xen-cpuid.c:354,1
    - Dst: xc_cpu_policy_destroy
      Src: /src/xen/tools/misc/xen-cpuid.c:359,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-cpuid.c:360,1
    - Dst: free
      Src: /src/xen/tools/misc/xen-cpuid.c:361,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-cpuid.c:362,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-cpuid.c:366,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:369,1
    - Dst: xc_get_cpu_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:371,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-cpuid.c:372,1
    - Dst: dump_info
      Src: /src/xen/tools/misc/xen-cpuid.c:374,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-cpuid.c:376,1
    - Dst: memset
      Src: /src/xen/tools/misc/xen-cpuid.c:388,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xen-cpuid.c:390,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-cpuid.c:408,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-cpuid.c:413,1
    - Dst: decode_featureset
      Src: /src/xen/tools/misc/xen-cpuid.c:415,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 121
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 420
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-cpuid.c
    functionUses: 133
    functionsReached:
    - snprintf
    - err
    - print_policy
    - xc_cpu_policy_get_system
    - xc_interface_open
    - xc_get_cpu_featureset
    - xc_cpu_policy_destroy
    - strcmp
    - calloc
    - ARRAY_SIZE
    - free
    - xc_cpu_policy_get_domain
    - getopt_long
    - dump_info
    - fprintf
    - strtol
    - printf
    - memset
    - sscanf
    - xc_cpu_policy_init
    - xc_get_cpu_featureset_size
    - xc_cpu_policy_serialise
    - xc_cpu_policy_get_size
    - decode_featureset
    - xc_interface_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 27
    functionName: show_help
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 9
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: help_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 6
    functionsReached:
    - show_help
    linkageType: ''
    returnType: int
    signature: int help_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:44,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xen-hptool.c:48,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:49,1
    - Dst: xc_mark_page_online
      Src: /src/xen/tools/misc/xen-hptool.c:51,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:54,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:56,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:61,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: hp_mem_online_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - xc_mark_page_online
    - fprintf
    - printf
    - sscanf
    - show_help
    linkageType: ''
    returnType: int
    signature: int hp_mem_online_func(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:76,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xen-hptool.c:80,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:81,1
    - Dst: xc_query_page_offline_status
      Src: /src/xen/tools/misc/xen-hptool.c:82,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:85,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:88,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:90,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:92,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:94,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:96,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: hp_mem_query_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - fprintf
    - xc_query_page_offline_status
    - printf
    - sscanf
    - show_help
    linkageType: ''
    returnType: int
    signature: int hp_mem_query_func(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xs_suspend_evtchn_port
      Src: /src/xen/tools/misc/xen-hptool.c:113,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:116,1
    - Dst: xc_suspend_evtchn_init_exclusive
      Src: /src/xen/tools/misc/xen-hptool.c:119,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:123,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/misc/xen-hptool.c:128,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:131,1
    - Dst: xc_await_suspend
      Src: /src/xen/tools/misc/xen-hptool.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:136,1
    - Dst: xc_suspend_evtchn_release
      Src: /src/xen/tools/misc/xen-hptool.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - xch
    - xce
    - domid
    - evtchn
    - lockfd
    argTypes:
    - xc_interface*
    - xenevtchn_handle*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 7
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: suspend_guest
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - xs_suspend_evtchn_port
    - xenevtchn_notify
    - xc_suspend_evtchn_init_exclusive
    - fprintf
    - xc_suspend_evtchn_release
    - xc_await_suspend
    linkageType: ''
    returnType: int
    signature: "int suspend_guest(xc_interface *xch, xenevtchn_handle *xce, int domid,\n
      \                        int *evtchn, int *lockfd)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:157,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xen-hptool.c:161,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:162,1
    - Dst: xc_mark_page_offline
      Src: /src/xen/tools/misc/xen-hptool.c:163,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:165,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:167,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:169,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:177,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:180,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:186,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:188,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:196,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/misc/xen-hptool.c:204,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:208,1
    - Dst: suspend_guest
      Src: /src/xen/tools/misc/xen-hptool.c:214,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:217,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/misc/xen-hptool.c:219,1
    - Dst: xc_exchange_page
      Src: /src/xen/tools/misc/xen-hptool.c:223,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:227,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:234,1
    - Dst: xc_domain_resume
      Src: /src/xen/tools/misc/xen-hptool.c:240,1
    - Dst: xc_suspend_evtchn_release
      Src: /src/xen/tools/misc/xen-hptool.c:241,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/misc/xen-hptool.c:243,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 149
    functionDepth: 8
    functionLinenumber: 149
    functionLinenumberEnd: 251
    functionName: hp_mem_offline_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - xenevtchn_close
    - suspend_guest
    - xc_domain_resume
    - fprintf
    - xc_exchange_page
    - printf
    - sscanf
    - xc_mark_page_offline
    - show_help
    - xc_suspend_evtchn_release
    - xenevtchn_open
    linkageType: ''
    returnType: int
    signature: int hp_mem_offline_func(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usleep
      Src: /src/xen/tools/misc/xen-hptool.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 266
    functionName: exec_cpu_hp_fn
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - usleep
    linkageType: ''
    returnType: int
    signature: int exec_cpu_hp_fn(int (*hp_fn)(xc_interface *, int), int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:274,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-hptool.c:278,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:279,1
    - Dst: exec_cpu_hp_fn
      Src: /src/xen/tools/misc/xen-hptool.c:280,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:282,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-hptool.c:283,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 289
    functionName: hp_cpu_online_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - exec_cpu_hp_fn
    - strerror
    - fprintf
    - printf
    - show_help
    - atoi
    linkageType: ''
    returnType: int
    signature: int hp_cpu_online_func(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:296,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-hptool.c:299,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:300,1
    - Dst: exec_cpu_hp_fn
      Src: /src/xen/tools/misc/xen-hptool.c:301,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:303,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-hptool.c:304,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 309
    functionName: hp_cpu_offline_func
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - exec_cpu_hp_fn
    - strerror
    - fprintf
    - printf
    - show_help
    - atoi
    linkageType: ''
    returnType: int
    signature: int hp_cpu_offline_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:317,1
    - Dst: xc_smt_enable
      Src: /src/xen/tools/misc/xen-hptool.c:323,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:329,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-hptool.c:330,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 335
    functionName: main_smt_enable
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - xc_smt_enable
    - strerror
    - fprintf
    - printf
    - show_help
    linkageType: ''
    returnType: int
    signature: int main_smt_enable(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:343,1
    - Dst: xc_smt_disable
      Src: /src/xen/tools/misc/xen-hptool.c:349,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:355,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-hptool.c:356,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-hptool.c:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 361
    functionName: main_smt_disable
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 0
    functionsReached:
    - strerror
    - xc_smt_disable
    - fprintf
    - printf
    - show_help
    linkageType: ''
    returnType: int
    signature: int main_smt_disable(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xen-hptool.c:384,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-hptool.c:388,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:391,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-hptool.c:395,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xen-hptool.c:396,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-hptool.c:396,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xen-hptool.c:398,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-hptool.c:400,1
    - Dst: function
      Src: /src/xen/tools/misc/xen-hptool.c:405,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-hptool.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 410
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-hptool.c
    functionUses: 133
    functionsReached:
    - ARRAY_SIZE
    - xc_interface_open
    - function
    - strncmp
    - fprintf
    - strlen
    - xc_interface_close
    - show_help
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/misc/xen-lowmemd.c:21,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/misc/xen-lowmemd.c:23,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xen-lowmemd.c:25,1
    - Dst: xs_close
      Src: /src/xen/tools/misc/xen-lowmemd.c:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: cleanup
    functionSourceFile: /src/xen/tools/misc/xen-lowmemd.c
    functionUses: 20
    functionsReached:
    - xc_interface_close
    - xs_close
    - xenevtchn_unbind
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/misc/xen-lowmemd.c:46,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:48,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-lowmemd.c:53,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-lowmemd.c:61,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:63,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-lowmemd.c:68,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-lowmemd.c:73,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xen-lowmemd.c:76,1
    - Dst: xs_write
      Src: /src/xen/tools/misc/xen-lowmemd.c:77,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xen-lowmemd.c:78,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xen-lowmemd.c:80,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 83
    functionName: handle_low_mem
    functionSourceFile: /src/xen/tools/misc/xen-lowmemd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_write
    - xc_physinfo
    - strlen
    - printf
    - xc_domain_getinfo_single
    - perror
    linkageType: ''
    returnType: void
    signature: void handle_low_mem(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: atexit
      Src: /src/xen/tools/misc/xen-lowmemd.c:89,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-lowmemd.c:91,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:94,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/misc/xen-lowmemd.c:98,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:101,1
    - Dst: xs_open
      Src: /src/xen/tools/misc/xen-lowmemd.c:105,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:108,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/misc/xen-lowmemd.c:112,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:114,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/misc/xen-lowmemd.c:124,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:126,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xen-lowmemd.c:133,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:134,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/misc/xen-lowmemd.c:138,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-lowmemd.c:140,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-lowmemd.c:144,1
    - Dst: handle_low_mem
      Src: /src/xen/tools/misc/xen-lowmemd.c:145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 85
    functionDepth: 6
    functionLinenumber: 85
    functionLinenumberEnd: 149
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-lowmemd.c
    functionUses: 133
    functionsReached:
    - snprintf
    - xs_open
    - handle_low_mem
    - xenevtchn_unmask
    - xc_interface_open
    - xenevtchn_bind_virq
    - xenevtchn_pending
    - printf
    - atexit
    - perror
    - xenevtchn_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/xen/tools/misc/xenwatchdogd.c:35,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:37,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenwatchdogd.c:41,1
    - Dst: umask
      Src: /src/xen/tools/misc/xenwatchdogd.c:43,1
    - Dst: setsid
      Src: /src/xen/tools/misc/xenwatchdogd.c:44,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:45,1
    - Dst: chdir
      Src: /src/xen/tools/misc/xenwatchdogd.c:46,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:47,1
    - Dst: freopen
      Src: /src/xen/tools/misc/xenwatchdogd.c:48,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:49,1
    - Dst: freopen
      Src: /src/xen/tools/misc/xenwatchdogd.c:50,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:51,1
    - Dst: freopen
      Src: /src/xen/tools/misc/xenwatchdogd.c:52,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: daemonize
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 6
    functionsReached:
    - err
    - chdir
    - umask
    - freopen
    - setsid
    - exit
    - fork
    linkageType: ''
    returnType: void
    signature: void daemonize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: catch_exit
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void catch_exit(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: catch_usr1
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void catch_usr1(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenwatchdogd.c:71,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenwatchdogd.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exit_code
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 24
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(int exit_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/misc/xenwatchdogd.c:92,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - arg
    - what
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: parse_secs
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 0
    functionsReached:
    - errx
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_secs(const char *arg, const char *what)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/misc/xenwatchdogd.c:117,1
    - Dst: usage
      Src: /src/xen/tools/misc/xenwatchdogd.c:124,1
    - Dst: usage
      Src: /src/xen/tools/misc/xenwatchdogd.c:135,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:140,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:143,1
    - Dst: parse_secs
      Src: /src/xen/tools/misc/xenwatchdogd.c:145,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:147,1
    - Dst: parse_secs
      Src: /src/xen/tools/misc/xenwatchdogd.c:152,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:154,1
    - Dst: errx
      Src: /src/xen/tools/misc/xenwatchdogd.c:157,1
    - Dst: daemonize
      Src: /src/xen/tools/misc/xenwatchdogd.c:163,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xenwatchdogd.c:165,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:167,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenwatchdogd.c:169,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:170,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenwatchdogd.c:171,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:172,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenwatchdogd.c:173,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:174,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenwatchdogd.c:175,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:176,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenwatchdogd.c:177,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:178,1
    - Dst: xc_watchdog
      Src: /src/xen/tools/misc/xenwatchdogd.c:180,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:182,1
    - Dst: sleep
      Src: /src/xen/tools/misc/xenwatchdogd.c:185,1
    - Dst: xc_watchdog
      Src: /src/xen/tools/misc/xenwatchdogd.c:186,1
    - Dst: err
      Src: /src/xen/tools/misc/xenwatchdogd.c:188,1
    - Dst: xc_watchdog
      Src: /src/xen/tools/misc/xenwatchdogd.c:192,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 194
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xenwatchdogd.c
    functionUses: 133
    functionsReached:
    - daemonize
    - err
    - xc_watchdog
    - sleep
    - signal
    - getopt_long
    - errx
    - xc_interface_open
    - parse_secs
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 101
    functionName: show_help
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 18
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_help(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/tools/misc/xenpm.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: help_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 6
    functionsReached:
    - show_help
    linkageType: ''
    returnType: void
    signature: void help_func(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:110,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:112,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:114,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - arg
    - cpuid
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: parse_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - strcasecmp
    - sscanf
    linkageType: ''
    returnType: void
    signature: void parse_cpuid(const char *arg, int *cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:126,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:127,1
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:131,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:133,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:135,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - argc
    - argv
    - cpuid
    - val
    - what
    argTypes:
    - int
    - char*[]
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: parse_cpuid_and_int
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - exit
    - parse_cpuid
    - fprintf
    - sscanf
    linkageType: ''
    returnType: void
    signature: "void parse_cpuid_and_int(int argc, char *argv[],\n                                int
      *cpuid, int *val, const char *what)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:144,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:145,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:146,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:150,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:152,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:157,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:161,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:163,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - cpuid
    - cxstat
    argTypes:
    - int
    - struct xc_cx_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: print_cxstat
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_cxstat(int cpuid, struct xc_cx_stat *cxstat)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_pm_get_max_cx
      Src: /src/xen/tools/misc/xenpm.c:172,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:182,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:183,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:184,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:185,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:189,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:190,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:191,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:192,1
    - Dst: xc_pm_get_cxstat
      Src: /src/xen/tools/misc/xenpm.c:200,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:204,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:205,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:206,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - xc_handle
    - cpuid
    - cxstat
    argTypes:
    - xc_interface*
    - int
    - struct xc_cx_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 215
    functionName: get_cxstat_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - free
    - xc_pm_get_max_cx
    - xc_pm_get_cxstat
    - calloc
    linkageType: ''
    returnType: int
    signature: int get_cxstat_by_cpuid(xc_interface *xc_handle, int cpuid, struct
      xc_cx_stat *cxstat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpuidle_max_cstate
      Src: /src/xen/tools/misc/xenpm.c:222,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:227,1
    - Dst: xc_get_cpuidle_max_csubstate
      Src: /src/xen/tools/misc/xenpm.c:228,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:231,1
    - Dst: puts
      Src: /src/xen/tools/misc/xenpm.c:233,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - xc_handle
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 239
    functionName: show_max_cstate
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_get_cpuidle_max_cstate
    - xc_get_cpuidle_max_csubstate
    - printf
    - puts
    linkageType: ''
    returnType: int
    signature: int show_max_cstate(xc_interface *xc_handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:246,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:250,1
    - Dst: print_cxstat
      Src: /src/xen/tools/misc/xenpm.c:255,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:257,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:258,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:259,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - xc_handle
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: show_cxstat_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - free
    - get_cxstat_by_cpuid
    - print_cxstat
    - fprintf
    linkageType: ''
    returnType: int
    signature: int show_cxstat_by_cpuid(xc_interface *xc_handle, int cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:269,1
    - Dst: show_max_cstate
      Src: /src/xen/tools/misc/xenpm.c:271,1
    - Dst: show_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:278,1
    - Dst: show_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 283
    functionName: cxstat_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - show_cxstat_by_cpuid
    - show_max_cstate
    linkageType: ''
    returnType: void
    signature: void cxstat_func(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:289,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:290,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:291,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:292,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:297,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:299,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:300,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:301,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:303,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - cpuid
    - pxstat
    argTypes:
    - int
    - struct xc_px_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 307
    functionName: print_pxstat
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_pxstat(int cpuid, struct xc_px_stat *pxstat)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xc_pm_get_max_px
      Src: /src/xen/tools/misc/xenpm.c:320,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xenpm.c:325,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xenpm.c:329,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:332,1
    - Dst: xc_pm_get_pxstat
      Src: /src/xen/tools/misc/xenpm.c:336,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:340,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:341,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:351,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - xc_handle
    - cpuid
    - pxstat
    argTypes:
    - xc_interface*
    - int
    - struct xc_px_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 358
    functionName: get_pxstat_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - free
    - xc_pm_get_pxstat
    - xc_pm_get_max_px
    - malloc
    linkageType: ''
    returnType: int
    signature: int get_pxstat_by_cpuid(xc_interface *xc_handle, int cpuid, struct
      xc_px_stat *pxstat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cpufreq_avgfreq
      Src: /src/xen/tools/misc/xenpm.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - xc_handle
    - cpuid
    - avgfreq
    argTypes:
    - xc_interface*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 370
    functionName: get_avgfreq_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_get_cpufreq_avgfreq
    linkageType: ''
    returnType: int
    signature: int get_avgfreq_by_cpuid(xc_interface *xc_handle, int cpuid, int *avgfreq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:377,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:381,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:384,1
    - Dst: print_pxstat
      Src: /src/xen/tools/misc/xenpm.c:389,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:391,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - xc_handle
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 394
    functionName: show_pxstat_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - get_pxstat_by_cpuid
    - print_pxstat
    - free
    - fprintf
    linkageType: ''
    returnType: int
    signature: int show_pxstat_by_cpuid(xc_interface *xc_handle, int cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:401,1
    - Dst: show_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:409,1
    - Dst: show_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: pxstat_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - show_pxstat_by_cpuid
    linkageType: ''
    returnType: void
    signature: void pxstat_func(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_avgfreq_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:424,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:428,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:429,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xc_handle
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: show_cpufreq_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - get_avgfreq_by_cpuid
    - printf
    linkageType: ''
    returnType: int
    signature: int show_cpufreq_by_cpuid(xc_interface *xc_handle, int cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:439,1
    - Dst: show_cpufreq_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:446,1
    - Dst: show_cpufreq_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:450,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 451
    functionName: cpufreq_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - show_cpufreq_by_cpuid
    linkageType: ''
    returnType: void
    signature: void cpufreq_func(int argc, char *argv[])
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/misc/xenpm.c:467,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:469,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:470,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:474,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:477,1
    - Dst: gettimeofday
      Src: /src/xen/tools/misc/xenpm.c:481,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:483,1
    - Dst: get_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:488,1
    - Dst: get_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:492,1
    - Dst: get_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:502,1
    - Dst: get_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:507,1
    - Dst: get_avgfreq_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:514,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:516,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:522,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:541,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:544,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:552,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:557,1
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/misc/xenpm.c:560,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:611,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:619,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:631,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:639,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:651,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:652,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:653,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:654,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:655,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:656,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:658,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:659,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:660,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:661,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:663,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xenpm.c:664,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:665,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 133
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 459
    functionDepth: 4
    functionLinenumber: 459
    functionLinenumberEnd: 666
    functionName: signal_int_handler
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_cputopoinfo
    - get_avgfreq_by_cpuid
    - calloc
    - free
    - get_pxstat_by_cpuid
    - strerror
    - fprintf
    - printf
    - xc_interface_close
    - gettimeofday
    - get_cxstat_by_cpuid
    - exit
    linkageType: ''
    returnType: void
    signature: void signal_int_handler(int signo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:676,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:678,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:680,1
    - Dst: gettimeofday
      Src: /src/xen/tools/misc/xenpm.c:683,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:685,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:690,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:693,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:696,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:699,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:702,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:703,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:706,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:709,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:710,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:711,1
    - Dst: get_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:721,1
    - Dst: get_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:722,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:724,1
    - Dst: get_cxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:730,1
    - Dst: get_pxstat_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:731,1
    - Dst: get_avgfreq_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:732,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenpm.c:735,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:737,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:738,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:739,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:740,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:741,1
    - Dst: signal
      Src: /src/xen/tools/misc/xenpm.c:747,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:749,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:750,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:751,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:752,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:753,1
    - Dst: alarm
      Src: /src/xen/tools/misc/xenpm.c:756,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:759,1
    - Dst: pause
      Src: /src/xen/tools/misc/xenpm.c:761,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 762
    functionName: start_gather_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - get_avgfreq_by_cpuid
    - calloc
    - free
    - pause
    - signal
    - alarm
    - get_pxstat_by_cpuid
    - fprintf
    - printf
    - sscanf
    - gettimeofday
    - get_cxstat_by_cpuid
    linkageType: ''
    returnType: void
    signature: void start_gather_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/tools/misc/xenpm.c:767,1
    - Dst: MASK_EXTR
      Src: /src/xen/tools/misc/xenpm.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cppc
    - units
    argTypes:
    - xc_cppc_para_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 802
    functionName: calculate_activity_window
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int calculate_activity_window(const xc_cppc_para_t *cppc,\n
      \                                             const char **units)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:808,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:809,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:811,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:813,1
    - Dst: calculate_activity_window
      Src: /src/xen/tools/misc/xenpm.c:821,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:822,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:826,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - cpuid
    - cppc
    argTypes:
    - unsigned int
    - xc_cppc_para_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 830
    functionName: print_cppc_para
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - calculate_activity_window
    - printf
    linkageType: ''
    returnType: void
    signature: "void print_cppc_para(unsigned int cpuid,\n                            const
      xc_cppc_para_t *cppc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:838,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:839,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:842,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:844,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:846,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:847,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:850,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:854,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:859,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:864,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:867,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xenpm.c:868,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:871,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:872,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xenpm.c:875,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:878,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:879,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:883,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:887,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:891,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:893,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:894,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:896,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:902,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:904,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - cpuid
    - p_cpufreq
    argTypes:
    - int
    - struct xc_get_cpufreq_para*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 905
    functionName: print_cpufreq_para
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strcmp
    - printf
    linkageType: ''
    returnType: void
    signature: void print_cpufreq_para(int cpuid, struct xc_get_cpufreq_para *p_cpufreq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_get_cppc_para
      Src: /src/xen/tools/misc/xenpm.c:913,1
    - Dst: print_cppc_para
      Src: /src/xen/tools/misc/xenpm.c:915,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:919,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xc_handle
    - cpuid
    argTypes:
    - xc_interface*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 923
    functionName: show_cppc_para_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - print_cppc_para
    - xc_get_cppc_para
    - fprintf
    - strerror
    linkageType: ''
    returnType: int
    signature: int show_cppc_para_by_cpuid(xc_interface *xc_handle, unsigned int cpuid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:941,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:942,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:943,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xenpm.c:951,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:953,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xenpm.c:961,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:963,1
    - Dst: malloc
      Src: /src/xen/tools/misc/xenpm.c:971,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:973,1
    - Dst: xc_get_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:980,1
    - Dst: print_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:985,1
    - Dst: show_cppc_para_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:988,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:993,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:996,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:1001,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:1002,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:1003,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - xc_handle
    - cpuid
    argTypes:
    - xc_interface*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1006
    functionName: show_cpufreq_para_by_cpuid
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - xc_get_cpufreq_para
    - show_cppc_para_by_cpuid
    - fprintf
    - print_cpufreq_para
    linkageType: ''
    returnType: int
    signature: int show_cpufreq_para_by_cpuid(xc_interface *xc_handle, int cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1013,1
    - Dst: show_cpufreq_para_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1020,1
    - Dst: show_cpufreq_para_by_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1008
    functionDepth: 4
    functionLinenumber: 1008
    functionLinenumberEnd: 1025
    functionName: cpufreq_para_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - show_cpufreq_para_by_cpuid
    - parse_cpuid
    linkageType: ''
    returnType: void
    signature: void cpufreq_para_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid_and_int
      Src: /src/xen/tools/misc/xenpm.c:1031,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1037,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1038,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1040,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1044,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1045,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1048
    functionName: scaling_max_freq_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_para
    - strerror
    - fprintf
    - parse_cpuid_and_int
    linkageType: ''
    returnType: void
    signature: void scaling_max_freq_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid_and_int
      Src: /src/xen/tools/misc/xenpm.c:1054,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1060,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1061,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1063,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1067,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1068,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1069,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1071
    functionName: scaling_min_freq_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_para
    - strerror
    - fprintf
    - parse_cpuid_and_int
    linkageType: ''
    returnType: void
    signature: void scaling_min_freq_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid_and_int
      Src: /src/xen/tools/misc/xenpm.c:1077,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1083,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1084,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1086,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1090,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1091,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1094
    functionName: scaling_speed_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_para
    - strerror
    - fprintf
    - parse_cpuid_and_int
    linkageType: ''
    returnType: void
    signature: void scaling_speed_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid_and_int
      Src: /src/xen/tools/misc/xenpm.c:1100,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1106,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1107,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1109,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1113,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1114,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1117
    functionName: scaling_sampling_rate_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_para
    - strerror
    - fprintf
    - parse_cpuid_and_int
    linkageType: ''
    returnType: void
    signature: void scaling_sampling_rate_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid_and_int
      Src: /src/xen/tools/misc/xenpm.c:1123,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1129,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1130,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1132,1
    - Dst: xc_set_cpufreq_para
      Src: /src/xen/tools/misc/xenpm.c:1136,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1137,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1140
    functionName: scaling_up_threshold_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_para
    - strerror
    - fprintf
    - parse_cpuid_and_int
    linkageType: ''
    returnType: void
    signature: void scaling_up_threshold_func(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1149,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1156,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1157,1
    - Dst: xc_set_cpufreq_gov
      Src: /src/xen/tools/misc/xenpm.c:1164,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1165,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1166,1
    - Dst: xc_set_cpufreq_gov
      Src: /src/xen/tools/misc/xenpm.c:1170,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1171,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1174
    functionName: scaling_governor_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - strerror
    - fprintf
    - exit
    - xc_set_cpufreq_gov
    linkageType: ''
    returnType: void
    signature: void scaling_governor_func(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/misc/xenpm.c:1182,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1185,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1186,1
    - Dst: calloc
      Src: /src/xen/tools/misc/xenpm.c:1190,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1194,1
    - Dst: xc_cputopoinfo
      Src: /src/xen/tools/misc/xenpm.c:1198,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1201,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1202,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1206,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1211,1
    - Dst: free
      Src: /src/xen/tools/misc/xenpm.c:1216,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1219
    functionName: cpu_topology_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_cputopoinfo
    - calloc
    - free
    - strerror
    - fprintf
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void cpu_topology_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1226,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1227,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:1230,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:1232,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1236,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1237,1
    - Dst: xc_set_sched_opt_smt
      Src: /src/xen/tools/misc/xenpm.c:1240,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1241,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1243,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1245
    functionName: set_sched_smt_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_sched_opt_smt
    - strerror
    - fprintf
    - strcasecmp
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void set_sched_smt_func(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1252,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xenpm.c:1255,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1256,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1257,1
    - Dst: xc_sched_credit_params_get
      Src: /src/xen/tools/misc/xenpm.c:1260,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1261,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1262,1
    - Dst: xc_sched_credit_params_set
      Src: /src/xen/tools/misc/xenpm.c:1266,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1267,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1269,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1271
    functionName: set_vcpu_migration_delay_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    - xc_sched_credit_params_set
    - printf
    - exit
    - atoi
    - xc_sched_credit_params_get
    linkageType: ''
    returnType: void
    signature: void set_vcpu_migration_delay_func(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1277,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1281,1
    - Dst: xc_sched_credit_params_get
      Src: /src/xen/tools/misc/xenpm.c:1283,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1284,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1287,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1290
    functionName: get_vcpu_migration_delay_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - printf
    - strerror
    - fprintf
    - xc_sched_credit_params_get
    linkageType: ''
    returnType: void
    signature: void get_vcpu_migration_delay_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:1298,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:1300,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:1302,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:1304,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1306,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1307,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xenpm.c:1310,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xenpm.c:1310,1
    - Dst: xc_set_cpuidle_max_cstate
      Src: /src/xen/tools/misc/xenpm.c:1312,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1313,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1316,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1317,1
    - Dst: snprintf
      Src: /src/xen/tools/misc/xenpm.c:1323,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xenpm.c:1323,1
    - Dst: xc_set_cpuidle_max_csubstate
      Src: /src/xen/tools/misc/xenpm.c:1325,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1326,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1329,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1332
    functionName: set_max_cstate_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xc_set_cpuidle_max_csubstate
    - ARRAY_SIZE
    - strerror
    - fprintf
    - xc_set_cpuidle_max_cstate
    - sscanf
    - printf
    - exit
    - strcmp
    linkageType: ''
    returnType: void
    signature: void set_max_cstate_func(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1339,1
    - Dst: xc_enable_turbo
      Src: /src/xen/tools/misc/xenpm.c:1347,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1348,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1350,1
    - Dst: xc_enable_turbo
      Src: /src/xen/tools/misc/xenpm.c:1352,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1353,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1355
    functionName: enable_turbo_mode
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - strerror
    - fprintf
    - xc_enable_turbo
    linkageType: ''
    returnType: void
    signature: void enable_turbo_mode(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/tools/misc/xenpm.c:1362,1
    - Dst: xc_disable_turbo
      Src: /src/xen/tools/misc/xenpm.c:1370,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1371,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1373,1
    - Dst: xc_disable_turbo
      Src: /src/xen/tools/misc/xenpm.c:1375,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1376,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1378
    functionName: disable_turbo_mode
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    - strerror
    - fprintf
    - xc_disable_turbo
    linkageType: ''
    returnType: void
    signature: void disable_turbo_mode(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:1398,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:1403,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenpm.c:1408,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1410,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1419,1
    - Dst: MASK_INSR
      Src: /src/xen/tools/misc/xenpm.c:1434,1
    - Dst: MASK_INSR
      Src: /src/xen/tools/misc/xenpm.c:1435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - set_cppc
    - u
    - suffix
    argTypes:
    - xc_set_cppc_para_t*
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1439
    functionName: parse_activity_window
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fprintf
    - MASK_INSR
    linkageType: ''
    returnType: int
    signature: "int parse_activity_window(xc_set_cppc_para_t *set_cppc, unsigned long
      u,\n                                 const char *suffix)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1448,1
    - Dst: isdigit
      Src: /src/xen/tools/misc/xenpm.c:1452,1
    - Dst: sscanf
      Src: /src/xen/tools/misc/xenpm.c:1454,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1456,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1465,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:1469,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:1474,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xenpm.c:1479,1
    - Dst: strchr
      Src: /src/xen/tools/misc/xenpm.c:1493,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1496,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xenpm.c:1504,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1507,1
    - Dst: strncasecmp
      Src: /src/xen/tools/misc/xenpm.c:1511,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1511,1
    - Dst: parse_activity_window
      Src: /src/xen/tools/misc/xenpm.c:1513,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1522,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1529,1
    - Dst: strncasecmp
      Src: /src/xen/tools/misc/xenpm.c:1533,1
    - Dst: MAX
      Src: /src/xen/tools/misc/xenpm.c:1533,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1533,1
    - Dst: strncasecmp
      Src: /src/xen/tools/misc/xenpm.c:1538,1
    - Dst: MAX
      Src: /src/xen/tools/misc/xenpm.c:1538,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1538,1
    - Dst: strncasecmp
      Src: /src/xen/tools/misc/xenpm.c:1543,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1543,1
    - Dst: strncasecmp
      Src: /src/xen/tools/misc/xenpm.c:1548,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1548,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1555,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1562,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 4
    argNames:
    - set_cppc
    - cpuid
    - argc
    - argv
    argTypes:
    - xc_set_cppc_para_t*
    - int*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1567
    functionName: parse_cppc_opts
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - strchr
    - isdigit
    - parse_activity_window
    - fprintf
    - strcasecmp
    - sscanf
    - strlen
    - MAX
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_cppc_opts(xc_set_cppc_para_t *set_cppc, int *cpuid,\n                           int
      argc, char *argv[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_cppc_opts
      Src: /src/xen/tools/misc/xenpm.c:1577,1
    - Dst: exit
      Src: /src/xen/tools/misc/xenpm.c:1578,1
    - Dst: xc_set_cpufreq_cppc
      Src: /src/xen/tools/misc/xenpm.c:1588,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1589,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1590,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenpm.c:1594,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1595
    functionName: cppc_set_func
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 0
    functionsReached:
    - xc_set_cpufreq_cppc
    - strerror
    - fprintf
    - printf
    - exit
    - parse_cppc_opts
    linkageType: ''
    returnType: void
    signature: void cppc_set_func(int argc, char *argv[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xenpm.c:1628,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xenpm.c:1632,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xenpm.c:1636,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1639,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/misc/xenpm.c:1643,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1647,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenpm.c:1648,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xenpm.c:1649,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/misc/xenpm.c:1655,1
    - Dst: strncmp
      Src: /src/xen/tools/misc/xenpm.c:1656,1
    - Dst: strlen
      Src: /src/xen/tools/misc/xenpm.c:1656,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1661,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1663,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenpm.c:1664,1
    - Dst: function
      Src: /src/xen/tools/misc/xenpm.c:1669,1
    - Dst: show_help
      Src: /src/xen/tools/misc/xenpm.c:1672,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/misc/xenpm.c:1676,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1623
    functionDepth: 4
    functionLinenumber: 1623
    functionLinenumberEnd: 1678
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xenpm.c
    functionUses: 133
    functionsReached:
    - ARRAY_SIZE
    - xc_physinfo
    - xc_interface_open
    - function
    - strncmp
    - strerror
    - fprintf
    - strlen
    - xc_interface_close
    - show_help
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenlockprof.c:28,1
    - Dst: strcmp
      Src: /src/xen/tools/misc/xenlockprof.c:30,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:32,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:33,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:34,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xenlockprof.c:38,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenlockprof.c:40,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenlockprof.c:41,1
    - Dst: xc_lockprof_reset
      Src: /src/xen/tools/misc/xenlockprof.c:47,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenlockprof.c:49,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenlockprof.c:50,1
    - Dst: xc_lockprof_query_number
      Src: /src/xen/tools/misc/xenlockprof.c:57,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenlockprof.c:59,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenlockprof.c:60,1
    - Dst: xc_hypercall_buffer_alloc
      Src: /src/xen/tools/misc/xenlockprof.c:65,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenlockprof.c:68,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenlockprof.c:69,1
    - Dst: xc_lockprof_query
      Src: /src/xen/tools/misc/xenlockprof.c:74,1
    - Dst: HYPERCALL_BUFFER
      Src: /src/xen/tools/misc/xenlockprof.c:74,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xenlockprof.c:76,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xenlockprof.c:77,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:83,1
    - Dst: sprintf
      Src: /src/xen/tools/misc/xenlockprof.c:94,1
    - Dst: sprintf
      Src: /src/xen/tools/misc/xenlockprof.c:97,1
    - Dst: sprintf
      Src: /src/xen/tools/misc/xenlockprof.c:100,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:108,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:113,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:114,1
    - Dst: printf
      Src: /src/xen/tools/misc/xenlockprof.c:115,1
    - Dst: xc_hypercall_buffer_free
      Src: /src/xen/tools/misc/xenlockprof.c:117,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 120
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xenlockprof.c
    functionUses: 133
    functionsReached:
    - DECLARE_HYPERCALL_BUFFER
    - xc_lockprof_query
    - xc_lockprof_query_number
    - sprintf
    - xc_interface_open
    - strerror
    - fprintf
    - xc_hypercall_buffer_alloc
    - printf
    - xc_hypercall_buffer_free
    - strcmp
    - HYPERCALL_BUFFER
    - xc_lockprof_reset
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:19,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:20,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:21,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:22,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:23,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:24,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:25,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:26,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:27,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:28,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:29,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:30,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:31,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:32,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: usage
    functionSourceFile: /src/xen/tools/misc/xen-memshare.c
    functionUses: 25
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int usage(const char* prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: R
    functionSourceFile: /src/xen/tools/misc/xen-memshare.c
    functionUses: 303
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(f)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-memshare.c:52,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:55,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:59,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:63,1
    - Dst: xc_sharing_freed_pages
      Src: /src/xen/tools/misc/xen-memshare.c:65,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:69,1
    - Dst: xc_sharing_used_frames
      Src: /src/xen/tools/misc/xen-memshare.c:70,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:73,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:75,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:80,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:82,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:83,1
    - Dst: xc_memshr_control
      Src: /src/xen/tools/misc/xen-memshare.c:83,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:85,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:90,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:92,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:93,1
    - Dst: xc_memshr_control
      Src: /src/xen/tools/misc/xen-memshare.c:93,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:95,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:102,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:104,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:105,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:106,1
    - Dst: xc_memshr_nominate_gfn
      Src: /src/xen/tools/misc/xen-memshare.c:106,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:107,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:109,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:119,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:121,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:122,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:123,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:124,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:125,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:126,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:127,1
    - Dst: xc_memshr_share_gfns
      Src: /src/xen/tools/misc/xen-memshare.c:127,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:129,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:136,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:138,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:139,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/misc/xen-memshare.c:140,1
    - Dst: munmap
      Src: /src/xen/tools/misc/xen-memshare.c:142,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:143,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:145,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:154,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:156,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:157,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:158,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:159,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:160,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:161,1
    - Dst: xc_memshr_add_to_physmap
      Src: /src/xen/tools/misc/xen-memshare.c:161,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:163,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:169,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:171,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:172,1
    - Dst: R
      Src: /src/xen/tools/misc/xen-memshare.c:173,1
    - Dst: xc_memshr_debug_gfn
      Src: /src/xen/tools/misc/xen-memshare.c:173,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:175,1
    - Dst: xc_memshr_audit
      Src: /src/xen/tools/misc/xen-memshare.c:177,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:180,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-memshare.c:180,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:183,1
    - Dst: strcasecmp
      Src: /src/xen/tools/misc/xen-memshare.c:185,1
    - Dst: usage
      Src: /src/xen/tools/misc/xen-memshare.c:192,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:194,1
    - Dst: strtol
      Src: /src/xen/tools/misc/xen-memshare.c:195,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-memshare.c:196,1
    - Dst: strtoul
      Src: /src/xen/tools/misc/xen-memshare.c:197,1
    - Dst: xc_memshr_range_share
      Src: /src/xen/tools/misc/xen-memshare.c:199,1
    - Dst: printf
      Src: /src/xen/tools/misc/xen-memshare.c:202,1
    - Dst: strerror
      Src: /src/xen/tools/misc/xen-memshare.c:202,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 207
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-memshare.c
    functionUses: 133
    functionsReached:
    - munmap
    - xc_interface_open
    - xc_map_foreign_range
    - strcasecmp
    - xc_memshr_audit
    - R
    - xc_memshr_add_to_physmap
    - xc_memshr_share_gfns
    - xc_memshr_debug_gfn
    - xc_sharing_freed_pages
    - xc_memshr_nominate_gfn
    - printf
    - strtol
    - usage
    - xc_memshr_control
    - xc_memshr_range_share
    - strerror
    - xc_sharing_used_frames
    - strtoul
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: close_handler
    functionSourceFile: /src/xen/tools/misc/xen-vmtrace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void close_handler(int signum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_vmtrace_output_position
      Src: /src/xen/tools/misc/xen-vmtrace.c:57,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-vmtrace.c:59,1
    - Dst: fwrite
      Src: /src/xen/tools/misc/xen-vmtrace.c:64,1
    - Dst: fwrite
      Src: /src/xen/tools/misc/xen-vmtrace.c:68,1
    - Dst: fwrite
      Src: /src/xen/tools/misc/xen-vmtrace.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 74
    functionName: get_more_data
    functionSourceFile: /src/xen/tools/misc/xen-vmtrace.c
    functionUses: 0
    functionsReached:
    - fwrite
    - xc_vmtrace_output_position
    - perror
    linkageType: ''
    returnType: int
    signature: int get_more_data(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/xen/tools/misc/xen-vmtrace.c:84,1
    - Dst: sigaction
      Src: /src/xen/tools/misc/xen-vmtrace.c:85,1
    - Dst: sigaction
      Src: /src/xen/tools/misc/xen-vmtrace.c:86,1
    - Dst: sigaction
      Src: /src/xen/tools/misc/xen-vmtrace.c:87,1
    - Dst: sigaction
      Src: /src/xen/tools/misc/xen-vmtrace.c:88,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-vmtrace.c:92,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-vmtrace.c:93,1
    - Dst: fprintf
      Src: /src/xen/tools/misc/xen-vmtrace.c:94,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-vmtrace.c:98,1
    - Dst: atoi
      Src: /src/xen/tools/misc/xen-vmtrace.c:99,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/misc/xen-vmtrace.c:101,1
    - Dst: xenforeignmemory_open
      Src: /src/xen/tools/misc/xen-vmtrace.c:102,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-vmtrace.c:105,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-vmtrace.c:107,1
    - Dst: xenforeignmemory_resource_size
      Src: /src/xen/tools/misc/xen-vmtrace.c:109,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-vmtrace.c:112,1
    - Dst: xenforeignmemory_map_resource
      Src: /src/xen/tools/misc/xen-vmtrace.c:114,1
    - Dst: err
      Src: /src/xen/tools/misc/xen-vmtrace.c:118,1
    - Dst: xc_vmtrace_set_option
      Src: /src/xen/tools/misc/xen-vmtrace.c:120,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-vmtrace.c:124,1
    - Dst: xc_vmtrace_reset_and_enable
      Src: /src/xen/tools/misc/xen-vmtrace.c:128,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-vmtrace.c:130,1
    - Dst: get_more_data
      Src: /src/xen/tools/misc/xen-vmtrace.c:138,1
    - Dst: usleep
      Src: /src/xen/tools/misc/xen-vmtrace.c:141,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/misc/xen-vmtrace.c:143,1
    - Dst: get_more_data
      Src: /src/xen/tools/misc/xen-vmtrace.c:146,1
    - Dst: xc_vmtrace_disable
      Src: /src/xen/tools/misc/xen-vmtrace.c:155,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-vmtrace.c:156,1
    - Dst: xenforeignmemory_unmap_resource
      Src: /src/xen/tools/misc/xen-vmtrace.c:158,1
    - Dst: perror
      Src: /src/xen/tools/misc/xen-vmtrace.c:159,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/xen/tools/misc/xen-vmtrace.c
    functionUses: 133
    functionsReached:
    - err
    - xenforeignmemory_resource_size
    - xc_vmtrace_set_option
    - sigaction
    - xc_vmtrace_reset_and_enable
    - usleep
    - sigemptyset
    - xc_interface_open
    - xenforeignmemory_open
    - get_more_data
    - xc_vmtrace_disable
    - xenforeignmemory_map_resource
    - xenforeignmemory_unmap_resource
    - fprintf
    - atoi
    - xc_domain_getinfo_single
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: handle_stop
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handle_stop(int sig)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:84,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:88,1
    - Dst: strdup
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:91,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:94,1
    - Dst: strchr
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:100,1
    - Dst: stat
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:103,1
    - Dst: mkdir
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:115,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:121,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 123
    functionName: check_host_path
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - mkdir
    - free
    - syslog
    - stat
    - strchr
    - strlen
    - strdup
    - strstr
    linkageType: ''
    returnType: int
    signature: int check_host_path(device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - node
    - p
    argTypes:
    - device*
    - char*
    - struct path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: construct_frontend_path
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void construct_frontend_path(device *device, const char *node,\n                                    struct
      path *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - node
    - p
    argTypes:
    - device*
    - char*
    - struct path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: construct_backend_path
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void construct_backend_path(device *device, const char *node,\n                                   struct
      path *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_backend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:145,1
    - Dst: xs_read
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - device
    - node
    argTypes:
    - device*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: read_backend_node
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - construct_backend_path
    - xs_read
    linkageType: ''
    returnType: char
    signature: char *read_backend_node(device *device, const char *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:159,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - string
    - def
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: uint_from_string
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - free
    - strtoul
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int uint_from_string(char *string, unsigned int def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint_from_string
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:170,1
    - Dst: read_backend_node
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - device
    - node
    - def
    argTypes:
    - device*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 7
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: read_backend_node_uint
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - read_backend_node
    - uint_from_string
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int read_backend_node_uint(device *device, const char *node,\n
      \                                          unsigned int def)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct_frontend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:179,1
    - Dst: uint_from_string
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:181,1
    - Dst: xs_read
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - node
    - def
    argTypes:
    - device*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: read_frontend_node_uint
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - uint_from_string
    - construct_frontend_path
    - xs_read
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int read_frontend_node_uint(device *device, const char *node,\n
      \                                           unsigned int def)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: construct_backend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:195,1
    - Dst: xs_write
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:196,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:196,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:198,1
    - Dst: xs_get_permissions
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:203,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:206,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:211,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:212,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - device
    - node
    - val
    argTypes:
    - device*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: write_backend_node
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - xs_write
    - construct_backend_path
    - free
    - xs_set_permissions
    - syslog
    - xs_get_permissions
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool write_backend_node(device *device, const char *node,\n                               const
      char *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:226,1
    - Dst: write_backend_node
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - device
    - node
    - val
    argTypes:
    - device*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: write_backend_node_uint
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - write_backend_node
    linkageType: ''
    returnType: bool
    signature: "bool write_backend_node_uint(device *device, const char *node,\n                                   unsigned
      int val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:236,1
    - Dst: construct_backend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:237,1
    - Dst: xs_write
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:238,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - device
    - state
    argTypes:
    - device*
    - enum xenbus_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 5
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: write_backend_state
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - syslog
    - construct_backend_path
    - xs_write
    linkageType: ''
    returnType: bool
    signature: bool write_backend_state(device *device, enum xenbus_state state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - domid
    - devid
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: find_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_FOREACH
    linkageType: ''
    returnType: device
    signature: device *find_device(unsigned int domid, unsigned int devid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: construct_frontend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:268,1
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:269,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:270,1
    - Dst: close
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:273,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:275,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 277
    functionName: free_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - free
    - construct_frontend_path
    - close
    - xs_unwatch
    linkageType: ''
    returnType: void
    signature: void free_device(device *device)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:286,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:289,1
    - Dst: construct_frontend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:297,1
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:298,1
    - Dst: xs_watch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:299,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:301,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:303,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:307,1
    - Dst: XEN_TAILQ_INIT
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:308,1
    - Dst: read_backend_node
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:310,1
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:311,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:313,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:315,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:318,1
    - Dst: read_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:320,1
    - Dst: read_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:321,1
    - Dst: read_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:323,1
    - Dst: read_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:325,1
    - Dst: read_backend_node
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:327,1
    - Dst: check_host_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:328,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:330,1
    - Dst: open
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:334,1
    - Dst: write_backend_node
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:338,1
    - Dst: write_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:340,1
    - Dst: write_backend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:342,1
    - Dst: write_backend_state
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:346,1
    - Dst: XEN_TAILQ_INSERT_TAIL
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:349,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:350,1
    - Dst: free_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:355,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - domid
    - devid
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 279
    functionDepth: 8
    functionLinenumber: 279
    functionLinenumberEnd: 357
    functionName: new_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - XEN_TAILQ_INIT
    - XEN_TAILQ_INSERT_TAIL
    - open
    - calloc
    - free
    - syslog
    - construct_frontend_path
    - write_backend_node
    - read_backend_node
    - pthread_mutex_init
    - read_backend_node_uint
    - xs_watch
    - check_host_path
    - write_backend_node_uint
    - write_backend_state
    - strcmp
    - free_device
    linkageType: ''
    returnType: device
    signature: device *new_device(unsigned int domid, unsigned int devid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_signal
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:367,1
    - Dst: pthread_join
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:368,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:374,1
    - Dst: xengnttab_unmap
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:379,1
    - Dst: xenevtchn_unbind
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:385,1
    - Dst: pthread_mutex_destroy
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:389,1
    - Dst: pthread_cond_destroy
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 391
    functionName: disconnect_ring
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - xenevtchn_unbind
    - xengnttab_unmap
    - pthread_mutex_destroy
    - pthread_cond_signal
    - pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: void disconnect_ring(struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disconnect_ring
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:399,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:400,1
    - Dst: free_fids
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 407
    functionName: disconnect_guest
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - free
    - free_fids
    - disconnect_ring
    linkageType: ''
    returnType: void
    signature: void disconnect_guest(device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disconnect_guest
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:411,1
    - Dst: write_backend_state
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - state
    argTypes:
    - device*
    - enum xenbus_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 6
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: close_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - write_backend_state
    - disconnect_guest
    linkageType: ''
    returnType: void
    signature: void close_device(device *device, enum xenbus_state state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:417,1
    - Dst: close_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - device
    - msg
    argTypes:
    - device*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 7
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: connect_err
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - close_device
    - syslog
    linkageType: ''
    returnType: void
    signature: void connect_err(device *device, const char *msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: read_frontend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:429,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:431,1
    - Dst: read_frontend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:432,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:434,1
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:438,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:440,1
    - Dst: pthread_cond_init
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:443,1
    - Dst: pthread_mutex_init
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:444,1
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:446,1
    - Dst: read_frontend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:447,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:449,1
    - Dst: xenevtchn_bind_interdomain
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:450,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:452,1
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:455,1
    - Dst: read_frontend_node_uint
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:456,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:458,1
    - Dst: xengnttab_map_grant_ref
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:460,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:463,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:466,1
    - Dst: XEN_FLEX_RING_SIZE
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:467,1
    - Dst: xengnttab_map_domain_grant_refs
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:468,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:474,1
    - Dst: pthread_create
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:477,1
    - Dst: connect_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:478,1
    - Dst: write_backend_state
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:482,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 421
    functionDepth: 8
    functionLinenumber: 421
    functionLinenumberEnd: 483
    functionName: connect_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - read_frontend_node_uint
    - calloc
    - connect_err
    - XEN_FLEX_RING_SIZE
    - pthread_mutex_init
    - xenevtchn_bind_interdomain
    - pthread_cond_init
    - write_backend_state
    - xengnttab_map_grant_ref
    - pthread_create
    - xengnttab_map_domain_grant_refs
    linkageType: ''
    returnType: void
    signature: void connect_device(device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:487,1
    - Dst: disconnect_guest
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:489,1
    - Dst: pthread_mutex_destroy
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:490,1
    - Dst: free_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: remove_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_destroy
    - free_device
    - disconnect_guest
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void remove_device(device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:498,1
    - Dst: remove_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: remove_all_devices
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - remove_device
    - XEN_TAILQ_FOREACH_SAFE
    linkageType: ''
    returnType: void
    signature: void remove_all_devices(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: construct_frontend_path
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:509,1
    - Dst: xs_read
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:510,1
    - Dst: close_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:513,1
    - Dst: strtoul
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:517,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:520,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:524,1
    - Dst: connect_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:535,1
    - Dst: close_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:542,1
    - Dst: close_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:546,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:550,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 502
    functionDepth: 9
    functionLinenumber: 502
    functionLinenumberEnd: 556
    functionName: frontend_changed
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - connect_device
    - free
    - close_device
    - construct_frontend_path
    - xs_read
    - syslog
    - strtoul
    linkageType: ''
    returnType: void
    signature: void frontend_changed(device *device)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:562,1
    - Dst: new_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - domid
    - devid
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 558
    functionDepth: 9
    functionLinenumber: 558
    functionLinenumberEnd: 571
    functionName: check_device
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - find_device
    - new_device
    linkageType: ''
    returnType: void
    signature: void check_device(unsigned int domid, unsigned int devid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_directory
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:586,1
    - Dst: strtoul
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:593,1
    - Dst: snprintf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:597,1
    - Dst: xs_directory
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:598,1
    - Dst: strtoul
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:603,1
    - Dst: check_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:607,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:610,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:613,1
    - Dst: XEN_TAILQ_FOREACH_SAFE
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:615,1
    - Dst: remove_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:618,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 573
    functionDepth: 10
    functionLinenumber: 573
    functionLinenumberEnd: 620
    functionName: scan_backend
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_directory
    - free
    - XEN_TAILQ_FOREACH_SAFE
    - check_device
    - remove_device
    - strtoul
    linkageType: ''
    returnType: void
    signature: void scan_backend(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:627,1
    - Dst: scan_backend
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:629,1
    - Dst: sscanf
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:633,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:635,1
    - Dst: find_device
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:639,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:642,1
    - Dst: frontend_changed
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - path
    - token
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 622
    functionDepth: 11
    functionLinenumber: 622
    functionLinenumberEnd: 648
    functionName: handle_watch
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - frontend_changed
    - syslog
    - scan_backend
    - sscanf
    - find_device
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handle_watch(char *path, char *token)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xs_rm
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:654,1
    - Dst: xs_unwatch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:655,1
    - Dst: remove_all_devices
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:657,1
    - Dst: xenevtchn_close
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:660,1
    - Dst: xengnttab_close
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:662,1
    - Dst: xs_close
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:664,1
    - Dst: closelog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 666
    functionName: close_all
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - xs_rm
    - closelog
    - remove_all_devices
    - xs_unwatch
    - xengnttab_close
    - xs_close
    - xenevtchn_close
    linkageType: ''
    returnType: void
    signature: void close_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:670,1
    - Dst: strerror
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:670,1
    - Dst: close_all
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:671,1
    - Dst: exit
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 7
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: do_err
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - close_all
    - syslog
    - exit
    - strerror
    linkageType: ''
    returnType: void
    signature: void do_err(const char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:682,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:684,1
    - Dst: XEN_TAILQ_FOREACH
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:686,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:693,1
    - Dst: pthread_cond_signal
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:694,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 675
    functionDepth: 8
    functionLinenumber: 675
    functionLinenumberEnd: 700
    functionName: handle_event
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 1
    functionsReached:
    - XEN_TAILQ_FOREACH
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - xenevtchn_pending
    - pthread_cond_signal
    - do_err
    linkageType: ''
    returnType: void
    signature: void handle_event(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:708,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:710,1
    - Dst: xengnttab_open
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:712,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:714,1
    - Dst: xenevtchn_open
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:716,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:718,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:722,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:724,1
    - Dst: xs_read
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:726,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:729,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:730,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:731,1
    - Dst: close_all
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:732,1
    - Dst: exit
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:733,1
    - Dst: xs_write
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:736,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:737,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:739,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:740,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:743,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:746,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 702
    functionDepth: 8
    functionLinenumber: 702
    functionLinenumberEnd: 750
    functionName: xen_connect
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 0
    functionsReached:
    - xs_write
    - xs_open
    - free
    - syslog
    - xs_transaction_start
    - xs_read
    - xengnttab_open
    - exit
    - strlen
    - close_all
    - xs_transaction_end
    - do_err
    - xenevtchn_open
    linkageType: ''
    returnType: void
    signature: void xen_connect(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:755,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:755,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:756,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:756,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:757,1
    - Dst: umask
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:764,1
    - Dst: getenv
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:765,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:766,1
    - Dst: LOG_MASK
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:766,1
    - Dst: openlog
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:767,1
    - Dst: setlogmask
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:768,1
    - Dst: sigemptyset
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:770,1
    - Dst: sigaction
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:771,1
    - Dst: xen_connect
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:773,1
    - Dst: xs_watch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:775,1
    - Dst: do_err
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:776,1
    - Dst: xs_fileno
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:777,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:778,1
    - Dst: scan_backend
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:780,1
    - Dst: xs_check_watch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:785,1
    - Dst: handle_watch
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:787,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:788,1
    - Dst: handle_event
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:792,1
    - Dst: poll
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:794,1
    - Dst: close_all
      Src: /src/xen/tools/9pfsd/xen-9pfsd.c:797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 752
    functionDepth: 12
    functionLinenumber: 752
    functionLinenumberEnd: 800
    functionName: main
    functionSourceFile: /src/xen/tools/9pfsd/xen-9pfsd.c
    functionUses: 134
    functionsReached:
    - xs_fileno
    - scan_backend
    - close_all
    - getenv
    - handle_event
    - umask
    - xen_connect
    - sigemptyset
    - free
    - handle_watch
    - xs_watch
    - sigaction
    - LOG_MASK
    - openlog
    - setlogmask
    - poll
    - do_err
    - xenevtchn_fd
    - xs_check_watch
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_9pfs_queued
      Src: /src/xen/tools/9pfsd/io.c:98,1
    - Dst: xen_rmb
      Src: /src/xen/tools/9pfsd/io.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: ring_in_free
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - xen_9pfs_queued
    - xen_rmb
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ring_in_free(struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_9pfs_queued
      Src: /src/xen/tools/9pfsd/io.c:109,1
    - Dst: xen_rmb
      Src: /src/xen/tools/9pfsd/io.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: ring_out_data
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - xen_9pfs_queued
    - xen_rmb
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ring_out_data(struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_out_data
      Src: /src/xen/tools/9pfsd/io.c:120,1
    - Dst: min
      Src: /src/xen/tools/9pfsd/io.c:123,1
    - Dst: xen_9pfs_mask
      Src: /src/xen/tools/9pfsd/io.c:124,1
    - Dst: xen_9pfs_mask
      Src: /src/xen/tools/9pfsd/io.c:125,1
    - Dst: xen_9pfs_read_packet
      Src: /src/xen/tools/9pfsd/io.c:126,1
    - Dst: xen_rmb
      Src: /src/xen/tools/9pfsd/io.c:129,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/9pfsd/io.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ring
    - 'off'
    - total_len
    argTypes:
    - struct ring*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: get_request_bytes
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - xen_9pfs_read_packet
    - ring_out_data
    - xen_rmb
    - min
    - xenevtchn_notify
    - xen_9pfs_mask
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_request_bytes(struct ring *ring, unsigned int off,\n
      \                                     unsigned int total_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ring_in_free
      Src: /src/xen/tools/9pfsd/io.c:143,1
    - Dst: min
      Src: /src/xen/tools/9pfsd/io.c:146,1
    - Dst: xen_9pfs_mask
      Src: /src/xen/tools/9pfsd/io.c:147,1
    - Dst: xen_9pfs_mask
      Src: /src/xen/tools/9pfsd/io.c:148,1
    - Dst: xen_9pfs_write_packet
      Src: /src/xen/tools/9pfsd/io.c:149,1
    - Dst: xen_wmb
      Src: /src/xen/tools/9pfsd/io.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ring
    - 'off'
    - total_len
    argTypes:
    - struct ring*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 157
    functionName: put_response_bytes
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - ring_in_free
    - xen_9pfs_write_packet
    - min
    - xen_wmb
    - xen_9pfs_mask
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int put_response_bytes(struct ring *ring, unsigned int off,\n
      \                                      unsigned int total_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ring_in_free
      Src: /src/xen/tools/9pfsd/io.c:165,1
    - Dst: ring_out_data
      Src: /src/xen/tools/9pfsd/io.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: io_work_pending
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - ring_in_free
    - ring_out_data
    linkageType: ''
    returnType: bool
    signature: bool io_work_pending(struct ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:170,1
    - Dst: exit
      Src: /src/xen/tools/9pfsd/io.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: fmt_err
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - exit
    - syslog
    linkageType: ''
    returnType: void
    signature: void fmt_err(const char *fmt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:214,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:226,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:230,1
    - Dst: exit
      Src: /src/xen/tools/9pfsd/io.c:231,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:233,1
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:235,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:240,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:246,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:253,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:255,1
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:257,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:259,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:264,1
    - Dst: fill_buffer_at
      Src: /src/xen/tools/9pfsd/io.c:272,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:278,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:281,1
    - Dst: exit
      Src: /src/xen/tools/9pfsd/io.c:282,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:284,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:286,1
    - Dst: fill_buffer_at
      Src: /src/xen/tools/9pfsd/io.c:294,1
    - Dst: put_unaligned
      Src: /src/xen/tools/9pfsd/io.c:303,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:309,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 3
    argNames:
    - data
    - fmt
    - ap
    argTypes:
    - void**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 315
    functionName: vfill_buffer_at
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - fmt_err
    - va_arg
    - syslog
    - put_unaligned
    - fill_buffer_at
    - strlen
    - exit
    - memcpy
    linkageType: ''
    returnType: void
    signature: void vfill_buffer_at(void **data, const char *fmt, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/9pfsd/io.c:321,1
    - Dst: vfill_buffer_at
      Src: /src/xen/tools/9pfsd/io.c:322,1
    - Dst: va_end
      Src: /src/xen/tools/9pfsd/io.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - fmt
    argTypes:
    - void**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: fill_buffer_at
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 2
    functionsReached:
    - va_start
    - vfill_buffer_at
    - va_end
    linkageType: ''
    returnType: void
    signature: void fill_buffer_at(void **data, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/9pfsd/io.c:336,1
    - Dst: vfill_buffer_at
      Src: /src/xen/tools/9pfsd/io.c:337,1
    - Dst: va_end
      Src: /src/xen/tools/9pfsd/io.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ring
    - cmd
    - tag
    - fmt
    argTypes:
    - struct ring*
    - uint8_t
    - uint16_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 341
    functionName: fill_buffer
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfill_buffer_at
    - va_end
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(struct ring *ring, uint8_t cmd, uint16_t tag,\n                        const
      char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/tools/9pfsd/io.c:351,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ring
    - str
    - len
    argTypes:
    - struct ring*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 364
    functionName: add_string
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 14
    functionsReached:
    - realloc
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int add_string(struct ring *ring, const char *str,\n                               unsigned
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ring
    - data
    - len
    argTypes:
    - struct ring*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: chk_data
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool chk_data(struct ring *ring, void *data, unsigned int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/io.c:383,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - par
    - array
    - array_sz
    - elem_sz
    - data
    argTypes:
    - void**
    - void**
    - unsigned int*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 398
    functionName: fill_data_elem
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - memcpy
    - calloc
    linkageType: ''
    returnType: bool
    signature: "bool fill_data_elem(void **par, void **array, unsigned int *array_sz,\n
      \                          unsigned int elem_sz, void *data)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/9pfsd/io.c:437,1
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:442,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:449,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:450,1
    - Dst: get_unaligned
      Src: /src/xen/tools/9pfsd/io.c:452,1
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:455,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:460,1
    - Dst: fill_data_elem
      Src: /src/xen/tools/9pfsd/io.c:462,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:470,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:471,1
    - Dst: get_unaligned
      Src: /src/xen/tools/9pfsd/io.c:473,1
    - Dst: va_arg
      Src: /src/xen/tools/9pfsd/io.c:476,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:477,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:479,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:484,1
    - Dst: fill_data_elem
      Src: /src/xen/tools/9pfsd/io.c:486,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:493,1
    - Dst: get_unaligned
      Src: /src/xen/tools/9pfsd/io.c:495,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:497,1
    - Dst: add_string
      Src: /src/xen/tools/9pfsd/io.c:499,1
    - Dst: fill_data_elem
      Src: /src/xen/tools/9pfsd/io.c:502,1
    - Dst: chk_data
      Src: /src/xen/tools/9pfsd/io.c:509,1
    - Dst: fill_data_elem
      Src: /src/xen/tools/9pfsd/io.c:511,1
    - Dst: fmt_err
      Src: /src/xen/tools/9pfsd/io.c:518,1
    - Dst: va_end
      Src: /src/xen/tools/9pfsd/io.c:527,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 91
    argCount: 2
    argNames:
    - ring
    - fmt
    argTypes:
    - struct ring*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 530
    functionName: fill_data
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - va_start
    - fmt_err
    - va_end
    - va_arg
    - get_unaligned
    - fill_data_elem
    - chk_data
    - add_string
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fill_data(struct ring *ring, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FOREACH
      Src: /src/xen/tools/9pfsd/io.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - device
    - fid
    argTypes:
    - device*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 543
    functionName: find_fid
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_FOREACH
    linkageType: ''
    returnType: struct p9_fid
    signature: struct p9_fid *find_fid(device *device, unsigned int fid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:549,1
    - Dst: find_fid
      Src: /src/xen/tools/9pfsd/io.c:551,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - device
    - fid
    argTypes:
    - device*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 558
    functionName: get_fid_ref
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - find_fid
    linkageType: ''
    returnType: struct p9_fid
    signature: struct p9_fid *get_fid_ref(device *device, unsigned int fid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/io.c:565,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:565,1
    - Dst: strcpy
      Src: /src/xen/tools/9pfsd/io.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - device
    - fid
    - path
    argTypes:
    - device*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 573
    functionName: alloc_fid_mem
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - calloc
    linkageType: ''
    returnType: struct p9_fid
    signature: "struct p9_fid *alloc_fid_mem(device *device, unsigned int fid,\n                                    const
      char *path)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:580,1
    - Dst: find_fid
      Src: /src/xen/tools/9pfsd/io.c:582,1
    - Dst: alloc_fid_mem
      Src: /src/xen/tools/9pfsd/io.c:594,1
    - Dst: XEN_TAILQ_INSERT_HEAD
      Src: /src/xen/tools/9pfsd/io.c:599,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - device
    - fid
    - path
    argTypes:
    - device*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 606
    functionName: alloc_fid
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - XEN_TAILQ_INSERT_HEAD
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - find_fid
    - alloc_fid_mem
    linkageType: ''
    returnType: struct p9_fid
    signature: "struct p9_fid *alloc_fid(device *device, unsigned int fid,\n                                const
      char *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:613,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/io.c:619,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:620,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - device
    - fidp
    argTypes:
    - device*
    - struct p9_fid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 624
    functionName: free_fid
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - free
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void free_fid(device *device, struct p9_fid *fidp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_TAILQ_FIRST
      Src: /src/xen/tools/9pfsd/io.c:630,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/io.c:632,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 635
    functionName: free_fids
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 1
    functionsReached:
    - free
    - XEN_TAILQ_FIRST
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void free_fids(device *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/io.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: relpath_from_path
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *relpath_from_path(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:652,1
    - Dst: S_ISLNK
      Src: /src/xen/tools/9pfsd/io.c:659,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/9pfsd/io.c:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - device
    - path
    - qid
    - stbuf
    argTypes:
    - device*
    - char*
    - struct p9_qid*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 667
    functionName: fill_qid
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - S_ISDIR
    - fstatat
    linkageType: ''
    returnType: int
    signature: "int fill_qid(device *device, const char *path, struct p9_qid *qid,\n
      \                   const struct stat *stbuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/tools/9pfsd/io.c:674,1
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/io.c:677,1
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/io.c:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: name_ok
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - strchr
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool name_ok(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:698,1
    - Dst: strerror
      Src: /src/xen/tools/9pfsd/io.c:699,1
    - Dst: min
      Src: /src/xen/tools/9pfsd/io.c:700,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:700,1
    - Dst: memcpy
      Src: /src/xen/tools/9pfsd/io.c:701,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:703,1
    - Dst: add_string
      Src: /src/xen/tools/9pfsd/io.c:705,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:705,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ring
    - tag
    - err
    argTypes:
    - struct ring*
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 709
    functionName: p9_error
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_lock
    - min
    - strerror
    - pthread_mutex_unlock
    - strlen
    - fill_buffer
    - add_string
    - memcpy
    linkageType: ''
    returnType: void
    signature: void p9_error(struct ring *ring, uint16_t tag, uint32_t err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:718,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:721,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:727,1
    - Dst: strcmp
      Src: /src/xen/tools/9pfsd/io.c:735,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 739
    functionName: p9_version
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - fill_data
    - strcmp
    - fill_buffer
    - p9_error
    linkageType: ''
    returnType: void
    signature: void p9_version(struct ring *ring, struct p9_header *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:750,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:754,1
    - Dst: alloc_fid
      Src: /src/xen/tools/9pfsd/io.c:758,1
    - Dst: relpath_from_path
      Src: /src/xen/tools/9pfsd/io.c:758,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:761,1
    - Dst: fill_qid
      Src: /src/xen/tools/9pfsd/io.c:765,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:768,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:770,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 775
    functionName: p9_attach
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_error
    - free_fid
    - fill_data
    - fill_qid
    - fill_buffer
    - relpath_from_path
    - alloc_fid
    linkageType: ''
    returnType: void
    signature: void p9_attach(struct ring *ring, struct p9_header *hdr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:792,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:795,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:800,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:804,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:807,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:812,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:816,1
    - Dst: name_ok
      Src: /src/xen/tools/9pfsd/io.c:819,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:821,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:824,1
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/io.c:826,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:829,1
    - Dst: strcpy
      Src: /src/xen/tools/9pfsd/io.c:832,1
    - Dst: calloc
      Src: /src/xen/tools/9pfsd/io.c:836,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:839,1
    - Dst: strcat
      Src: /src/xen/tools/9pfsd/io.c:844,1
    - Dst: strcat
      Src: /src/xen/tools/9pfsd/io.c:845,1
    - Dst: fill_qid
      Src: /src/xen/tools/9pfsd/io.c:846,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:851,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:868,1
    - Dst: alloc_fid_mem
      Src: /src/xen/tools/9pfsd/io.c:876,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/io.c:880,1
    - Dst: XEN_TAILQ_INSERT_HEAD
      Src: /src/xen/tools/9pfsd/io.c:881,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:882,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:888,1
    - Dst: alloc_fid
      Src: /src/xen/tools/9pfsd/io.c:891,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:895,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:900,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:903,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:904,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:905,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:906,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 777
    functionDepth: 4
    functionLinenumber: 777
    functionLinenumberEnd: 907
    functionName: p9_walk
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_error
    - calloc
    - free
    - fill_data
    - XEN_TAILQ_INSERT_HEAD
    - free_fid
    - fill_qid
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - name_ok
    - strcpy
    - strlen
    - alloc_fid
    - fill_buffer
    - alloc_fid_mem
    - strcat
    - get_fid_ref
    - XEN_TAILQ_REMOVE
    linkageType: ''
    returnType: void
    signature: void p9_walk(struct ring *ring, struct p9_header *hdr)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - mode
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 936
    functionName: open_flags_from_mode
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int open_flags_from_mode(uint8_t mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ring
    - st
    argTypes:
    - struct ring*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 941
    functionName: get_iounit
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_iounit(struct ring *ring, struct stat *st)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:955,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:958,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:963,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:967,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:970,1
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:979,1
    - Dst: S_ISLNK
      Src: /src/xen/tools/9pfsd/io.c:985,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/9pfsd/io.c:991,1
    - Dst: openat
      Src: /src/xen/tools/9pfsd/io.c:1000,1
    - Dst: fdopendir
      Src: /src/xen/tools/9pfsd/io.c:1003,1
    - Dst: open_flags_from_mode
      Src: /src/xen/tools/9pfsd/io.c:1009,1
    - Dst: openat
      Src: /src/xen/tools/9pfsd/io.c:1013,1
    - Dst: fill_qid
      Src: /src/xen/tools/9pfsd/io.c:1018,1
    - Dst: get_iounit
      Src: /src/xen/tools/9pfsd/io.c:1019,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1022,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1027,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1028,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 943
    functionDepth: 4
    functionLinenumber: 943
    functionLinenumberEnd: 1029
    functionName: p9_open
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_error
    - fdopendir
    - open_flags_from_mode
    - fill_data
    - free_fid
    - openat
    - fill_qid
    - get_iounit
    - S_ISLNK
    - fill_buffer
    - fstatat
    - get_fid_ref
    - S_ISDIR
    linkageType: ''
    returnType: void
    signature: void p9_open(struct ring *ring, struct p9_header *hdr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:1048,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1051,1
    - Dst: name_ok
      Src: /src/xen/tools/9pfsd/io.c:1055,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1057,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1063,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:1067,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1070,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1071,1
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:1074,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1076,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1077,1
    - Dst: malloc
      Src: /src/xen/tools/9pfsd/io.c:1081,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:1081,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:1081,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1084,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1085,1
    - Dst: sprintf
      Src: /src/xen/tools/9pfsd/io.c:1088,1
    - Dst: alloc_fid_mem
      Src: /src/xen/tools/9pfsd/io.c:1089,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1090,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1093,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1094,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:1098,1
    - Dst: mkdirat
      Src: /src/xen/tools/9pfsd/io.c:1110,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/io.c:1113,1
    - Dst: XEN_TAILQ_INSERT_HEAD
      Src: /src/xen/tools/9pfsd/io.c:1114,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1115,1
    - Dst: openat
      Src: /src/xen/tools/9pfsd/io.c:1119,1
    - Dst: fdopendir
      Src: /src/xen/tools/9pfsd/io.c:1122,1
    - Dst: open_flags_from_mode
      Src: /src/xen/tools/9pfsd/io.c:1128,1
    - Dst: XEN_TAILQ_REMOVE
      Src: /src/xen/tools/9pfsd/io.c:1136,1
    - Dst: XEN_TAILQ_INSERT_HEAD
      Src: /src/xen/tools/9pfsd/io.c:1137,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1138,1
    - Dst: openat
      Src: /src/xen/tools/9pfsd/io.c:1142,1
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:1148,1
    - Dst: fill_qid
      Src: /src/xen/tools/9pfsd/io.c:1151,1
    - Dst: get_iounit
      Src: /src/xen/tools/9pfsd/io.c:1152,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:1156,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1158,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1163,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:1165,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1167,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1168,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 98
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1169
    functionName: p9_create
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - fdopendir
    - pthread_mutex_lock
    - get_iounit
    - strlen
    - fstatat
    - get_fid_ref
    - open_flags_from_mode
    - free
    - malloc
    - fill_qid
    - mkdirat
    - sprintf
    - pthread_mutex_unlock
    - XEN_TAILQ_REMOVE
    - p9_error
    - free_fid
    - fill_data
    - XEN_TAILQ_INSERT_HEAD
    - openat
    - name_ok
    - fill_buffer
    - alloc_fid_mem
    linkageType: ''
    returnType: void
    signature: void p9_create(struct ring *ring, struct p9_header *hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:1178,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1181,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:1185,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1188,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1195,1
    - Dst: close
      Src: /src/xen/tools/9pfsd/io.c:1196,1
    - Dst: unlinkat
      Src: /src/xen/tools/9pfsd/io.c:1198,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1203,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1204,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1207
    functionName: p9_clunk
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_error
    - free_fid
    - fill_data
    - close
    - unlinkat
    - fill_buffer
    - get_fid_ref
    linkageType: ''
    returnType: void
    signature: void p9_clunk(struct ring *ring, struct p9_header *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/9pfsd/io.c:1212,1
    - Dst: fill_qid
      Src: /src/xen/tools/9pfsd/io.c:1213,1
    - Dst: S_ISDIR
      Src: /src/xen/tools/9pfsd/io.c:1215,1
    - Dst: strlen
      Src: /src/xen/tools/9pfsd/io.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - device
    - p9s
    - st
    - name
    argTypes:
    - device*
    - struct p9_stat*
    - struct stat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1234
    functionName: fill_p9_stat
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - memset
    - S_ISDIR
    - strlen
    - fill_qid
    linkageType: ''
    returnType: void
    signature: "void fill_p9_stat(device *device, struct p9_stat *p9s, struct stat
      *st,\n                         const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:1245,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1248,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:1252,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1255,1
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:1259,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1261,1
    - Dst: fill_p9_stat
      Src: /src/xen/tools/9pfsd/io.c:1264,1
    - Dst: strrchr
      Src: /src/xen/tools/9pfsd/io.c:1264,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1266,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1236
    functionDepth: 4
    functionLinenumber: 1236
    functionLinenumberEnd: 1270
    functionName: p9_stat
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 1
    functionsReached:
    - p9_error
    - free_fid
    - fill_data
    - fill_p9_stat
    - fill_buffer
    - fstatat
    - strrchr
    - get_fid_ref
    linkageType: ''
    returnType: void
    signature: void p9_stat(struct ring *ring, struct p9_header *hdr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:1283,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1286,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:1290,1
    - Dst: rewinddir
      Src: /src/xen/tools/9pfsd/io.c:1307,1
    - Dst: readdir
      Src: /src/xen/tools/9pfsd/io.c:1312,1
    - Dst: fstatat
      Src: /src/xen/tools/9pfsd/io.c:1319,1
    - Dst: fill_p9_stat
      Src: /src/xen/tools/9pfsd/io.c:1321,1
    - Dst: seekdir
      Src: /src/xen/tools/9pfsd/io.c:1324,1
    - Dst: fill_buffer_at
      Src: /src/xen/tools/9pfsd/io.c:1327,1
    - Dst: pread
      Src: /src/xen/tools/9pfsd/io.c:1335,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1348,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1351,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1356,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1358
    functionName: p9_read
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_error
    - free_fid
    - fill_data
    - seekdir
    - rewinddir
    - fill_p9_stat
    - fill_buffer_at
    - pread
    - fstatat
    - fill_buffer
    - readdir
    - get_fid_ref
    linkageType: ''
    returnType: void
    signature: void p9_read(struct ring *ring, struct p9_header *hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fill_data
      Src: /src/xen/tools/9pfsd/io.c:1371,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1374,1
    - Dst: get_fid_ref
      Src: /src/xen/tools/9pfsd/io.c:1378,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1381,1
    - Dst: pwrite
      Src: /src/xen/tools/9pfsd/io.c:1389,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1400,1
    - Dst: fill_buffer
      Src: /src/xen/tools/9pfsd/io.c:1403,1
    - Dst: free_fid
      Src: /src/xen/tools/9pfsd/io.c:1406,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - ring
    - hdr
    argTypes:
    - struct ring*
    - struct p9_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1360
    functionDepth: 4
    functionLinenumber: 1360
    functionLinenumberEnd: 1407
    functionName: p9_write
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - pwrite
    - p9_error
    - free_fid
    - fill_data
    - fill_buffer
    - get_fid_ref
    linkageType: ''
    returnType: void
    signature: void p9_write(struct ring *ring, struct p9_header *hdr)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/9pfsd/io.c:1417,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:1420,1
    - Dst: pthread_mutex_lock
      Src: /src/xen/tools/9pfsd/io.c:1426,1
    - Dst: io_work_pending
      Src: /src/xen/tools/9pfsd/io.c:1427,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/9pfsd/io.c:1429,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:1430,1
    - Dst: pthread_cond_wait
      Src: /src/xen/tools/9pfsd/io.c:1431,1
    - Dst: pthread_mutex_unlock
      Src: /src/xen/tools/9pfsd/io.c:1433,1
    - Dst: get_request_bytes
      Src: /src/xen/tools/9pfsd/io.c:1442,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:1448,1
    - Dst: get_request_bytes
      Src: /src/xen/tools/9pfsd/io.c:1456,1
    - Dst: p9_version
      Src: /src/xen/tools/9pfsd/io.c:1465,1
    - Dst: p9_attach
      Src: /src/xen/tools/9pfsd/io.c:1469,1
    - Dst: p9_walk
      Src: /src/xen/tools/9pfsd/io.c:1473,1
    - Dst: p9_open
      Src: /src/xen/tools/9pfsd/io.c:1477,1
    - Dst: p9_create
      Src: /src/xen/tools/9pfsd/io.c:1481,1
    - Dst: p9_read
      Src: /src/xen/tools/9pfsd/io.c:1485,1
    - Dst: p9_write
      Src: /src/xen/tools/9pfsd/io.c:1489,1
    - Dst: p9_clunk
      Src: /src/xen/tools/9pfsd/io.c:1493,1
    - Dst: p9_stat
      Src: /src/xen/tools/9pfsd/io.c:1497,1
    - Dst: syslog
      Src: /src/xen/tools/9pfsd/io.c:1501,1
    - Dst: p9_error
      Src: /src/xen/tools/9pfsd/io.c:1503,1
    - Dst: put_response_bytes
      Src: /src/xen/tools/9pfsd/io.c:1514,1
    - Dst: xenevtchn_notify
      Src: /src/xen/tools/9pfsd/io.c:1519,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1528,1
    - Dst: free
      Src: /src/xen/tools/9pfsd/io.c:1529,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 85
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1409
    functionDepth: 5
    functionLinenumber: 1409
    functionLinenumberEnd: 1534
    functionName: io_thread
    functionSourceFile: /src/xen/tools/9pfsd/io.c
    functionUses: 0
    functionsReached:
    - p9_version
    - syslog
    - pthread_mutex_lock
    - p9_stat
    - p9_create
    - pthread_cond_wait
    - io_work_pending
    - xenevtchn_unmask
    - free
    - malloc
    - p9_attach
    - put_response_bytes
    - p9_write
    - get_request_bytes
    - pthread_mutex_unlock
    - p9_open
    - p9_error
    - p9_read
    - xenevtchn_notify
    - p9_walk
    - p9_clunk
    linkageType: ''
    returnType: void
    signature: void *io_thread(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:16,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:20,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:21,1
    - Dst: fopen
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:24,1
    - Dst: perror
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:27,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:28,1
    - Dst: fread
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:31,1
    - Dst: ferror
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:33,1
    - Dst: perror
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:35,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:36,1
    - Dst: feof
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:39,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:41,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:42,1
    - Dst: fclose
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:45,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 48
    functionName: main
    functionSourceFile: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c
    functionUses: 134
    functionsReached:
    - fopen
    - ferror
    - fread
    - feof
    - LLVMFuzzerTestOneInput
    - fclose
    - printf
    - exit
    - setbuf
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c:15,1
    - Dst: elf_init
      Src: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c:16,1
    - Dst: elf_parse_binary
      Src: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c:19,1
    - Dst: elf_xen_parse
      Src: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c:20,1
    - Dst: elf_xen_parse
      Src: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c
    functionUses: 1
    functionsReached:
    - memset
    - elf_xen_parse
    - elf_parse_binary
    - elf_init
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:17,1
    - Dst: setbuf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:18,1
    - Dst: getopt_long_only
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:29,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:37,1
    - Dst: fuzz_minimal_input_size
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:37,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:38,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:42,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:43,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:47,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:48,1
    - Dst: LLVMFuzzerInitialize
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:61,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:62,1
    - Dst: __AFL_INIT
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:65,1
    - Dst: __AFL_LOOP
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:67,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:74,1
    - Dst: fopen
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:75,1
    - Dst: perror
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:78,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:79,1
    - Dst: fseek
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:90,1
    - Dst: fread
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:94,1
    - Dst: ferror
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:96,1
    - Dst: perror
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:98,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:99,1
    - Dst: feof
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:103,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:105,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:109,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:112,1
    - Dst: fclose
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c:117,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 123
    functionName: main
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c
    functionUses: 134
    functionsReached:
    - getopt_long_only
    - fopen
    - __AFL_LOOP
    - LLVMFuzzerInitialize
    - __AFL_INIT
    - ferror
    - fread
    - feof
    - LLVMFuzzerTestOneInput
    - fclose
    - fseek
    - printf
    - fuzz_minimal_input_size
    - exit
    - setbuf
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - struct fuzz_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: input_avail
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool input_avail(const struct fuzz_state *s, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: input_avail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:70,1
    - Dst: memcpy
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - dst
    - size
    argTypes:
    - struct fuzz_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: input_read
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - memcpy
    - input_avail
    linkageType: ''
    returnType: bool
    signature: bool input_read(struct fuzz_state *s, void *dst, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: input_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:100,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:120,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - ctxt
    - why
    - exception
    argTypes:
    - struct x86_emulate_ctxt*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 127
    functionName: maybe_fail
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - input_read
    - printf
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int maybe_fail(struct x86_emulate_ctxt *ctxt,\n                      const
      char *why, bool exception)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: input_avail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:137,1
    - Dst: is_x86_system_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:144,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:145,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:148,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:151,1
    - Dst: input_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:155,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:157,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:159,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ctxt
    - seg
    - why
    - dst
    - bytes
    argTypes:
    - struct x86_emulate_ctxt*
    - enum x86_segment
    - char*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 164
    functionName: data_read
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - input_read
    - x86_emul_hw_exception
    - printf
    - input_avail
    - maybe_fail
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int data_read(struct x86_emulate_ctxt *ctxt,\n                     enum
      x86_segment seg,\n                     const char *why, void *dst, unsigned
      int bytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:174,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:175,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:182,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:184,1
    - Dst: is_x86_system_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:184,1
    - Dst: data_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: "(is_x86_system_segment(seg) &&\n               (ctxt->lma ? offset
        <= 0x10007 : !(offset >> 16)))"
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(offset >> 32))
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: '((long)offset < 0 ? (long)offset > -32 : !(offset >> 17))'
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 188
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 188
    functionName: fuzz_read
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - data_read
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int fuzz_read(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: fuzz_read_io
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - data_read
    linkageType: ''
    returnType: int
    signature: "int fuzz_read_io(\n    unsigned int port,\n    unsigned int bytes,\n
      \   unsigned long *val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:208,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:218,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:219,1
    - Dst: data_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (p_data == NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: fuzz_insn_fetch
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - x86_emul_hw_exception
    - data_read
    - maybe_fail
    - assert
    linkageType: ''
    returnType: int
    signature: "int fuzz_insn_fetch(\n    unsigned long offset,\n    void *p_data,\n
      \   unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ctxt
    - why
    - reps
    argTypes:
    - struct x86_emulate_ctxt*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 250
    functionName: _fuzz_rep_read
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - data_read
    linkageType: ''
    returnType: int
    signature: "int _fuzz_rep_read(struct x86_emulate_ctxt *ctxt,\n                          const
      char *why, unsigned long *reps)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - why
    - reps
    argTypes:
    - struct x86_emulate_ctxt*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 271
    functionName: _fuzz_rep_write
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int _fuzz_rep_write(struct x86_emulate_ctxt *ctxt,\n                           const
      char *why, unsigned long *reps)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:281,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:282,1
    - Dst: _fuzz_rep_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - src_port
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - uint16_t
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (dst_seg == x86_seg_es)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(dst_offset >> 32))
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: fuzz_rep_ins
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - assert
    - _fuzz_rep_read
    linkageType: ''
    returnType: int
    signature: "int fuzz_rep_ins(\n    uint16_t src_port,\n    enum x86_segment dst_seg,\n
      \   unsigned long dst_offset,\n    unsigned int bytes_per_rep,\n    unsigned
      long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:296,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:296,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:297,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:298,1
    - Dst: _fuzz_rep_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - src_seg
    - src_offset
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(src_seg))
      pos:
        line_end: 295
        line_start: 295
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !((src_offset | dst_offset) >> 32))
      pos:
        line_end: 297
        line_start: 297
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (dst_seg == x86_seg_es)
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: fuzz_rep_movs
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - _fuzz_rep_read
    linkageType: ''
    returnType: int
    signature: "int fuzz_rep_movs(\n    enum x86_segment src_seg,\n    unsigned long
      src_offset,\n    enum x86_segment dst_seg,\n    unsigned long dst_offset,\n
      \   unsigned int bytes_per_rep,\n    unsigned long *reps,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:311,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:311,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:312,1
    - Dst: _fuzz_rep_write
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - src_seg
    - src_offset
    - dst_port
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - uint16_t
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(src_seg))
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(src_offset >> 32))
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: fuzz_rep_outs
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - _fuzz_rep_write
    linkageType: ''
    returnType: int
    signature: "int fuzz_rep_outs(\n    enum x86_segment src_seg,\n    unsigned long
      src_offset,\n    uint16_t dst_port,\n    unsigned int bytes_per_rep,\n    unsigned
      long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:329,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:329,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:330,1
    - Dst: _fuzz_rep_write
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - p_data
    - seg
    - offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - void*
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(seg))
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(offset >> 32))
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 333
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 333
    functionName: fuzz_rep_stos
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - _fuzz_rep_write
    linkageType: ''
    returnType: int
    signature: "int fuzz_rep_stos(\n    void *p_data,\n    enum x86_segment seg,\n
      \   unsigned long offset,\n    unsigned int bytes_per_rep,\n    unsigned long
      *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:343,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:343,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:344,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(seg))
      pos:
        line_end: 342
        line_start: 342
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(offset >> 32))
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 347
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 347
    functionName: fuzz_write
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_write(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:362,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:363,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:365,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 7
    argNames:
    - seg
    - offset
    - old
    - new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: ((seg == x86_seg_gdtr || seg == x86_seg_ldtr) && !(offset >> 16))
      pos:
        line_end: 364
        line_start: 364
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(offset >> 32))
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: fuzz_cmpxchg
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_cmpxchg(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *old,\n    void *new,\n    unsigned int bytes,\n    bool lock,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:379,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:379,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:383,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - op
    - addr
    - aux
    - ctxt
    argTypes:
    - enum x86emul_tlb_op
    - unsigned long
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(aux))
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - condition: (ctxt->addr_size == 64 || !(addr >> 32))
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: fuzz_tlb_op
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_tlb_op(\n    enum x86emul_tlb_op op,\n    unsigned long addr,\n
      \   unsigned long aux,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - op
    - seg
    - offset
    - ctxt
    argTypes:
    - enum x86emul_cache_op
    - enum x86_segment
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: fuzz_cache_op
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_cache_op(\n    enum x86emul_cache_op op,\n    enum x86_segment
      seg,\n    unsigned long offset,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: fuzz_write_io
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_write_io(\n    unsigned int port,\n    unsigned int bytes,\n
      \   unsigned long val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:416,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:416,1
    - Dst: is_x86_system_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(seg) || is_x86_system_segment(seg))
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 421
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 421
    functionName: fuzz_read_segment
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - assert
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int fuzz_read_segment(\n    enum x86_segment seg,\n    struct segment_register
      *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:432,1
    - Dst: is_x86_user_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:432,1
    - Dst: is_x86_system_segment
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:432,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:434,1
    - Dst: check_state
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:442,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts:
    - condition: (is_x86_user_segment(seg) || is_x86_system_segment(seg))
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    constantsTouched: []
    func_position:
      end: 451
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 451
    functionName: fuzz_write_segment
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - check_state
    - is_x86_user_segment
    - x86_emul_hw_exception
    - assert
    - maybe_fail
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int fuzz_write_segment(\n    enum x86_segment seg,\n    const struct
      segment_register *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 467
    functionName: fuzz_read_cr
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int fuzz_read_cr(\n    unsigned int reg,\n    unsigned long *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:479,1
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:482,1
    - Dst: check_state
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:489,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 497
    functionName: fuzz_write_cr
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - check_state
    - x86_emul_hw_exception
    - maybe_fail
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int fuzz_write_cr(\n    unsigned int reg,\n    unsigned long val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: data_read
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:543,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:550,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 567
    functionName: fuzz_read_msr
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - x86_emul_hw_exception
    - data_read
    - printf
    linkageType: ''
    returnType: int
    signature: "int fuzz_read_msr(\n    unsigned int reg,\n    uint64_t *val,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: maybe_fail
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:580,1
    - Dst: check_state
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:599,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - reg
    - val
    - ctxt
    - explicit
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 611
    functionName: fuzz_write_msr
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - check_state
    - x86_emul_hw_exception
    - maybe_fail
    linkageType: ''
    returnType: int
    signature: "int fuzz_write_msr(\n    unsigned int reg,\n    uint64_t val,\n    struct
      x86_emulate_ctxt *ctxt,\n    bool explicit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 614
    functionName: SET
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: setup_fpu_exception_handler
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_fpu_exception_handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:659,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:660,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:661,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:662,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:663,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:665,1
    - Dst: fuzz_read_msr
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:667,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: dump_state
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 2
    functionsReached:
    - fuzz_read_msr
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_state(struct x86_emulate_ctxt *ctxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzz_read_msr
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 679
    functionName: long_mode_active
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - fuzz_read_msr
    linkageType: ''
    returnType: bool
    signature: bool long_mode_active(struct x86_emulate_ctxt *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_mode_active
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: in_longmode
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - long_mode_active
    linkageType: ''
    returnType: bool
    signature: bool in_longmode(struct x86_emulate_ctxt *ctxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_mode_active
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:694,1
    - Dst: in_longmode
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 689
    functionDepth: 4
    functionLinenumber: 689
    functionLinenumberEnd: 703
    functionName: set_sizes
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - in_longmode
    - long_mode_active
    linkageType: ''
    returnType: void
    signature: void set_sizes(struct x86_emulate_ctxt *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: CANONICALIZE
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CANONICALIZE(x, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 721
    functionName: CANONICALIZE_MAYBE
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CANONICALIZE_MAYBE(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 760
    functionName: MAYBE_DISABLE_HOOK
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAYBE_DISABLE_HOOK(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:768,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:769,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:770,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:771,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:772,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:773,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:774,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:775,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:776,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:777,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:778,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:779,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:780,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:781,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:782,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:783,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:784,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:785,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:786,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:787,1
    - Dst: MAYBE_DISABLE_HOOK
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 789
    functionName: disable_hooks
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - MAYBE_DISABLE_HOOK
    linkageType: ''
    returnType: void
    signature: void disable_hooks(struct x86_emulate_ctxt *ctxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CANONICALIZE_MAYBE
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:832,1
    - Dst: CANONICALIZE_MAYBE
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:833,1
    - Dst: long_mode_active
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 852
    functionName: sanitize_input
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 0
    functionsReached:
    - CANONICALIZE_MAYBE
    - long_mode_active
    linkageType: ''
    returnType: void
    signature: void sanitize_input(struct x86_emulate_ctxt *ctxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: long_mode_active
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:865,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 876
    functionName: check_state
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 5
    functionsReached:
    - long_mode_active
    linkageType: ''
    returnType: bool
    signature: bool check_state(struct x86_emulate_ctxt *ctxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: emul_test_init
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:880,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 887
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 1
    functionsReached:
    - emul_test_init
    - printf
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:906,1
    - Dst: memcpy
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:918,1
    - Dst: sanitize_input
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:923,1
    - Dst: disable_hooks
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:925,1
    - Dst: setup_fpu_exception_handler
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:929,1
    - Dst: set_sizes
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:931,1
    - Dst: dump_state
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:932,1
    - Dst: x86_emulate
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:934,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c:935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - data_p
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 889
    functionDepth: 5
    functionLinenumber: 889
    functionLinenumberEnd: 939
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 2
    functionsReached:
    - disable_hooks
    - setup_fpu_exception_handler
    - x86_emulate
    - sanitize_input
    - dump_state
    - set_sizes
    - printf
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data_p, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: fuzz_minimal_input_size
    functionSourceFile: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fuzz_minimal_input_size(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:23,1
    - Dst: malloc
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:25,1
    - Dst: memset
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:45,1
    - Dst: x86_cpu_policy_clear_out_of_range_leaves
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:51,1
    - Dst: x86_cpu_policy_recalc_synth
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:52,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:55,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:56,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:57,1
    - Dst: x86_msr_copy_to_buffer
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:59,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:60,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:61,1
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:64,1
    - Dst: leaves::leaves
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:64,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:65,1
    - Dst: x86_msr_copy_from_buffer
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:67,1
    - Dst: msrs::msrs
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:67,1
    - Dst: assert
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:68,1
    - Dst: memcmp
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:71,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:79,1
    - Dst: abort
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:83,1
    - Dst: free
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cpu_policy*
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    - condition: (nr_leaves <= CPUID_MAX_SERIALISED_LEAVES)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    - condition: (rc == 0)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    - condition: (rc == 0)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    - condition: (rc == 0)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    - condition: (nr_msrs <= MSR_MAX_SERIALISED_ENTRIES)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    constantsTouched: []
    func_position:
      end: 87
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 87
    functionName: check_policy
    functionSourceFile: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    functionUses: 0
    functionsReached:
    - x86_cpu_policy_clear_out_of_range_leaves
    - x86_msr_copy_from_buffer
    - memcmp
    - abort
    - free
    - x86_cpuid_copy_to_buffer
    - malloc
    - leaves::leaves
    - msrs::msrs
    - x86_msr_copy_to_buffer
    - x86_cpuid_copy_from_buffer
    - printf
    - x86_cpu_policy_recalc_synth
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void check_policy(struct cpu_policy *cp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setbuf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:93,1
    - Dst: setbuf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:94,1
    - Dst: getopt_long
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:103,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:111,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:117,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:119,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:126,1
    - Dst: __AFL_INIT
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:131,1
    - Dst: __AFL_LOOP
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:132,1
    - Dst: printf
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:140,1
    - Dst: fopen
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:141,1
    - Dst: perror
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:145,1
    - Dst: exit
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:146,1
    - Dst: calloc
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:150,1
    - Dst: fread
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:154,1
    - Dst: feof
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:156,1
    - Dst: check_policy
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:159,1
    - Dst: free
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:162,1
    - Dst: fclose
      Src: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c:166,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 172
    functionName: main
    functionSourceFile: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
    functionUses: 134
    functionsReached:
    - check_policy
    - fopen
    - __AFL_LOOP
    - __AFL_INIT
    - calloc
    - free
    - fread
    - feof
    - getopt_long
    - fclose
    - printf
    - exit
    - setbuf
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node-select.c:43,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: usage
    functionSourceFile: /src/xen/tools/vchan/node-select.c
    functionUses: 26
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_write
      Src: /src/xen/tools/vchan/node-select.c:61,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node-select.c:63,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:64,1
    - Dst: memmove
      Src: /src/xen/tools/vchan/node-select.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: vchan_wr
    functionSourceFile: /src/xen/tools/vchan/node-select.c
    functionUses: 0
    functionsReached:
    - exit
    - memmove
    - libxenvchan_write
    - fprintf
    linkageType: ''
    returnType: void
    signature: void vchan_wr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/vchan/node-select.c:77,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:79,1
    - Dst: memmove
      Src: /src/xen/tools/vchan/node-select.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: stdout_wr
    functionSourceFile: /src/xen/tools/vchan/node-select.c
    functionUses: 0
    functionsReached:
    - exit
    - memmove
    - write
    linkageType: ''
    returnType: void
    signature: void stdout_wr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/vchan/node-select.c:87,1
    - Dst: fcntl
      Src: /src/xen/tools/vchan/node-select.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - nonblocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: set_nonblocking
    functionSourceFile: /src/xen/tools/vchan/node-select.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int set_nonblocking(int fd, int nonblocking)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/tools/vchan/node-select.c:113,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node-select.c:114,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node-select.c:115,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node-select.c:116,1
    - Dst: libxenvchan_server_init
      Src: /src/xen/tools/vchan/node-select.c:117,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node-select.c:117,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node-select.c:118,1
    - Dst: libxenvchan_client_init
      Src: /src/xen/tools/vchan/node-select.c:119,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node-select.c:119,1
    - Dst: usage
      Src: /src/xen/tools/vchan/node-select.c:121,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node-select.c:123,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:124,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/node-select.c:127,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/node-select.c:127,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node-select.c:128,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:129,1
    - Dst: libxenvchan_fd_for_select
      Src: /src/xen/tools/vchan/node-select.c:132,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/vchan/node-select.c:136,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/vchan/node-select.c:137,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/node-select.c:139,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/node-select.c:141,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/node-select.c:142,1
    - Dst: select
      Src: /src/xen/tools/vchan/node-select.c:143,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node-select.c:145,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:146,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/node-select.c:148,1
    - Dst: read
      Src: /src/xen/tools/vchan/node-select.c:149,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:151,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/node-select.c:154,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/vchan/node-select.c:155,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/node-select.c:161,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/node-select.c:163,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/vchan/node-select.c:164,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/node-select.c:165,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/node-select.c:167,1
    - Dst: stdout_wr
      Src: /src/xen/tools/vchan/node-select.c:168,1
    - Dst: libxenvchan_data_ready
      Src: /src/xen/tools/vchan/node-select.c:169,1
    - Dst: libxenvchan_read
      Src: /src/xen/tools/vchan/node-select.c:170,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:172,1
    - Dst: stdout_wr
      Src: /src/xen/tools/vchan/node-select.c:174,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/vchan/node-select.c:176,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/node-select.c:177,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node-select.c:178,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node-select.c:179,1
    - Dst: stdout_wr
      Src: /src/xen/tools/vchan/node-select.c:182,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 186
    functionName: main
    functionSourceFile: /src/xen/tools/vchan/node-select.c
    functionUses: 134
    functionsReached:
    - FD_SET
    - FD_ZERO
    - set_nonblocking
    - stdout_wr
    - vchan_wr
    - libxenvchan_is_open
    - libxenvchan_wait
    - libxenvchan_fd_for_select
    - strcmp
    - libxenvchan_read
    - libxenvchan_server_init
    - select
    - perror
    - libxenvchan_client_init
    - FD_ISSET
    - exit
    - read
    - libxenvchan_data_ready
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_write
      Src: /src/xen/tools/vchan/node.c:45,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:47,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ctrl
    - buf
    - size
    argTypes:
    - struct libxenvchan*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: libxenvchan_write_all
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 0
    functionsReached:
    - exit
    - libxenvchan_write
    - perror
    linkageType: ''
    returnType: int
    signature: int libxenvchan_write_all(struct libxenvchan *ctrl, char *buf, int
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/vchan/node.c:60,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:62,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - buf
    - size
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: write_all
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 3
    functionsReached:
    - exit
    - write
    - perror
    linkageType: ''
    returnType: int
    signature: int write_all(int fd, char *buf, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node.c:72,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: usage
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 27
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/xen/tools/vchan/node.c:83,1
    - Dst: libxenvchan_read
      Src: /src/xen/tools/vchan/node.c:84,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node.c:85,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:87,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/vchan/node.c:88,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:89,1
    - Dst: write_all
      Src: /src/xen/tools/vchan/node.c:91,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:93,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:94,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:97,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 101
    functionName: reader
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 0
    functionsReached:
    - write_all
    - libxenvchan_read
    - rand
    - fprintf
    - exit
    - perror
    - libxenvchan_close
    linkageType: ''
    returnType: void
    signature: void reader(struct libxenvchan *ctrl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/xen/tools/vchan/node.c:107,1
    - Dst: read
      Src: /src/xen/tools/vchan/node.c:108,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:110,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/vchan/node.c:111,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:112,1
    - Dst: libxenvchan_write_all
      Src: /src/xen/tools/vchan/node.c:116,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node.c:117,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:119,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:120,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:123,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: writer
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 0
    functionsReached:
    - read
    - rand
    - libxenvchan_write_all
    - fprintf
    - exit
    - perror
    - libxenvchan_close
    linkageType: ''
    returnType: void
    signature: void writer(struct libxenvchan *ctrl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/vchan/node.c:137,1
    - Dst: usage
      Src: /src/xen/tools/vchan/node.c:141,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node.c:142,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node.c:144,1
    - Dst: usage
      Src: /src/xen/tools/vchan/node.c:147,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node.c:148,1
    - Dst: libxenvchan_server_init
      Src: /src/xen/tools/vchan/node.c:149,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node.c:149,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/node.c:150,1
    - Dst: libxenvchan_client_init
      Src: /src/xen/tools/vchan/node.c:151,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/node.c:151,1
    - Dst: usage
      Src: /src/xen/tools/vchan/node.c:153,1
    - Dst: perror
      Src: /src/xen/tools/vchan/node.c:155,1
    - Dst: exit
      Src: /src/xen/tools/vchan/node.c:156,1
    - Dst: srand
      Src: /src/xen/tools/vchan/node.c:160,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/node.c:161,1
    - Dst: writer
      Src: /src/xen/tools/vchan/node.c:163,1
    - Dst: reader
      Src: /src/xen/tools/vchan/node.c:165,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/vchan/node.c:166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 135
    functionDepth: 8
    functionLinenumber: 135
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/xen/tools/vchan/node.c
    functionUses: 134
    functionsReached:
    - atoi
    - time
    - writer
    - srand
    - libxenvchan_client_init
    - reader
    - libxenvchan_server_init
    - fprintf
    - exit
    - strcmp
    - usage
    - perror
    - libxenvchan_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:50,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: usage
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 28
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char** argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_write
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:103,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:105,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:106,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:109,1
    - Dst: memmove
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: vchan_wr
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 1
    functionsReached:
    - exit
    - memmove
    - libxenvchan_write
    - fprintf
    linkageType: ''
    returnType: void
    signature: void vchan_wr(struct libxenvchan *ctrl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:121,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:123,1
    - Dst: memmove
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - output_fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: socket_wr
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - exit
    - memmove
    - write
    linkageType: ''
    returnType: void
    signature: void socket_wr(int output_fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:131,1
    - Dst: fcntl
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - nonblocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: set_nonblocking
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 1
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int set_nonblocking(int fd, int nonblocking)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:151,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:153,1
    - Dst: strlen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:157,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:158,1
    - Dst: strlen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:159,1
    - Dst: socket
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:163,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:165,1
    - Dst: strcpy
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:170,1
    - Dst: connect
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:171,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:172,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:173,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - path_or_fd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 180
    functionName: connect_socket
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - socket
    - set_nonblocking
    - connect
    - close
    - fprintf
    - strlen
    - strcpy
    - perror
    - strtoll
    linkageType: ''
    returnType: int
    signature: int connect_socket(const char *path_or_fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strtoll
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:187,1
    - Dst: strlen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:192,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:193,1
    - Dst: strlen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:194,1
    - Dst: socket
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:199,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:201,1
    - Dst: strcpy
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:206,1
    - Dst: bind
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:207,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:208,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:209,1
    - Dst: listen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:212,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:213,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - path_or_fd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 219
    functionName: listen_socket
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - bind
    - socket
    - close
    - fprintf
    - strlen
    - strcpy
    - listen
    - perror
    - strtoll
    linkageType: ''
    returnType: int
    signature: int listen_socket(const char *path_or_fd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:230,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:232,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:235,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:237,1
    - Dst: xs_watch
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:241,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:242,1
    - Dst: xs_watch
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:245,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:246,1
    - Dst: xs_read_watch
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:250,1
    - Dst: free
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:252,1
    - Dst: libxenvchan_client_init
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:253,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:257,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:268,1
    - Dst: xs_close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:270,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 41
    argCount: 2
    argNames:
    - domid
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 221
    functionDepth: 7
    functionLinenumber: 221
    functionLinenumberEnd: 272
    functionName: connect_vchan
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - xs_open
    - free
    - libxenvchan_client_init
    - xc_interface_open
    - xs_read_watch
    - xs_watch
    - fprintf
    - xc_interface_close
    - xs_close
    - xc_domain_getinfo_single
    - perror
    linkageType: ''
    returnType: struct libxenvchan
    signature: struct libxenvchan *connect_vchan(int domid, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_data_ready
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:281,1
    - Dst: libxenvchan_read
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:282,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:283,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctrl
    argTypes:
    - struct libxenvchan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: discard_buffers
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - exit
    - libxenvchan_data_ready
    - perror
    - libxenvchan_read
    linkageType: ''
    returnType: void
    signature: void discard_buffers(struct libxenvchan *ctrl)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: libxenvchan_fd_for_select
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:295,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:299,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:300,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:304,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:309,1
    - Dst: FD_SET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:313,1
    - Dst: select
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:316,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:318,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:319,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:321,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:322,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:323,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:325,1
    - Dst: socket_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:327,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:328,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:330,1
    - Dst: discard_buffers
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:332,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:335,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:338,1
    - Dst: read
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:339,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:341,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:343,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:348,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:349,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:351,1
    - Dst: vchan_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:360,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:362,1
    - Dst: socket_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:363,1
    - Dst: libxenvchan_data_ready
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:364,1
    - Dst: libxenvchan_read
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:365,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:368,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:370,1
    - Dst: socket_wr
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:372,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct vchan_proxy_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 376
    functionName: data_loop
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 0
    functionsReached:
    - read
    - libxenvchan_read
    - FD_SET
    - discard_buffers
    - FD_ZERO
    - FD_ISSET
    - libxenvchan_is_open
    - close
    - vchan_wr
    - libxenvchan_data_ready
    - libxenvchan_wait
    - fprintf
    - select
    - libxenvchan_fd_for_select
    - perror
    - socket_wr
    - exit
    linkageType: ''
    returnType: int
    signature: int data_loop(struct vchan_proxy_state *state)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:405,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:408,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:410,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:413,1
    - Dst: usage
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:414,1
    - Dst: usage
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:425,1
    - Dst: usage
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:430,1
    - Dst: atoi
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:432,1
    - Dst: libxenvchan_server_init
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:437,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:439,1
    - Dst: exit
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:440,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:443,1
    - Dst: listen_socket
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:447,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:449,1
    - Dst: xs_open
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:458,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:460,1
    - Dst: xs_write
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:463,1
    - Dst: strlen
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:463,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:464,1
    - Dst: xs_close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:467,1
    - Dst: libxenvchan_is_open
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:475,1
    - Dst: libxenvchan_wait
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:476,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:478,1
    - Dst: connect_socket
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:482,1
    - Dst: fprintf
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:485,1
    - Dst: data_loop
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:489,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:496,1
    - Dst: accept
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:497,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:500,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:504,1
    - Dst: set_nonblocking
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:505,1
    - Dst: connect_vchan
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:506,1
    - Dst: perror
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:508,1
    - Dst: data_loop
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:512,1
    - Dst: strcmp
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:515,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:518,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:524,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:526,1
    - Dst: libxenvchan_close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:528,1
    - Dst: close
      Src: /src/xen/tools/vchan/vchan-socket-proxy.c:530,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 111
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 391
    functionDepth: 8
    functionLinenumber: 391
    functionLinenumberEnd: 533
    functionName: main
    functionSourceFile: /src/xen/tools/vchan/vchan-socket-proxy.c
    functionUses: 134
    functionsReached:
    - listen_socket
    - connect_socket
    - set_nonblocking
    - libxenvchan_is_open
    - libxenvchan_wait
    - strlen
    - connect_vchan
    - strcmp
    - libxenvchan_close
    - xs_open
    - close
    - libxenvchan_server_init
    - perror
    - xs_write
    - getopt_long
    - accept
    - fprintf
    - exit
    - xs_close
    - data_loop
    - atoi
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:71,1
    - Dst: socket
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:73,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:75,1
    - Dst: setsockopt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:81,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:83,1
    - Dst: htons
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:85,1
    - Dst: bind
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:88,1
    - Dst: listen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:89,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:90,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:91,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:94,1
    - Dst: accept
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:97,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:99,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:100,1
    - Dst: setsockopt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:106,1
    - Dst: setsockopt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:111,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:114,1
    - Dst: signal
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:116,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:120,1
    - Dst: inet_ntoa
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - port_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 123
    functionName: do_tcp
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - bind
    - gxprt
    - listen
    - socket
    - signal
    - setsockopt
    - close
    - accept
    - inet_ntoa
    - printf
    - htons
    - memset
    - atoi
    linkageType: ''
    returnType: int
    signature: int do_tcp(char *port_str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_tcp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:134,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:135,1
    - Dst: fcntl
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:140,1
    - Dst: fcntl
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:141,1
    - Dst: fcntl
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:143,1
    - Dst: getpid
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - portnum_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: gx_remote_open
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - getpid
    - do_tcp
    - close
    - fcntl
    linkageType: ''
    returnType: int
    signature: int gx_remote_open(char *portnum_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: gx_remote_close
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void gx_remote_close(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:168,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:172,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: readchar
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - gxprt
    - read
    - perror
    linkageType: ''
    returnType: int
    signature: int readchar(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: readchar
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:197,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:202,1
    - Dst: readchar
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:209,1
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:219,1
    - Dst: readchar
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:219,1
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:220,1
    - Dst: readchar
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:220,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:225,1
    - Dst: write
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:227,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:228,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:233,1
    - Dst: write
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:236,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:237,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:242,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 245
    functionName: gx_getpkt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - gx_fromhex
    - gxprt
    - write
    - readchar
    - perror
    linkageType: ''
    returnType: int
    signature: int gx_getpkt (char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: gx_reply_ok
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gx_reply_ok(char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: gx_reply_error
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gx_reply_error(char *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:277,1
    - Dst: malloc
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:280,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:293,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:294,1
    - Dst: write
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:303,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:304,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:305,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:309,1
    - Dst: read
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:311,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:313,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:317,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:319,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:320,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:325,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 331
    functionName: gx_putpkt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
    functionUses: 0
    functionsReached:
    - read
    - free
    - gxprt
    - gx_tohex
    - malloc
    - strlen
    - write
    - perror
    linkageType: ''
    returnType: int
    signature: int gx_putpkt (char *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:64,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:65,1
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:66,1
    - Dst: gx_convert_ascii_to_int
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:68,1
    - Dst: xg_regs_write
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:70,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:72,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:74,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: gx_write_guest_regs
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gx_reply_ok
    - gxprt
    - xg_regs_write
    - strlen
    - gx_convert_ascii_to_int
    - gx_reply_error
    linkageType: ''
    returnType: void
    signature: void gx_write_guest_regs(char *rbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xg_regs_read
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:89,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:91,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: gx_read_guest_regs
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gxprt
    - gx_convert_int_to_ascii
    - xg_regs_read
    linkageType: ''
    returnType: void
    signature: void gx_read_guest_regs(char *rbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:106,1
    - Dst: gx_convert_ascii_to_int
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:108,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:109,1
    - Dst: strncmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:111,1
    - Dst: strtoull
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:114,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:115,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:118,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:120,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:124,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:126,1
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 128
    functionName: _do_qRcmd_req
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - XGTRC
    - sprintf
    - strncmp
    - strlen
    - gx_convert_int_to_ascii
    - gx_convert_ascii_to_int
    - strtoull
    linkageType: ''
    returnType: void
    signature: void _do_qRcmd_req(char *remote_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:135,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:139,1
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:140,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:142,1
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:143,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:145,1
    - Dst: strncmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:151,1
    - Dst: _do_qRcmd_req
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 161
    functionName: process_q_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - _do_qRcmd_req
    - sprintf
    - strncmp
    - strlen
    - strcmp
    linkageType: ''
    returnType: void
    signature: void process_q_request(char *remote_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:179,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: process_H_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gx_reply_ok
    - strtoul
    linkageType: ''
    returnType: void
    signature: void process_H_request(char *remote_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gx_decode_m_packet
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:201,1
    - Dst: malloc
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:203,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:204,1
    - Dst: xg_read_mem
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:207,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:208,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:210,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:211,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:214,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 217
    functionName: process_m_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - free
    - XGTRC
    - malloc
    - xg_read_mem
    - gx_convert_int_to_ascii
    - gx_decode_m_packet
    - gx_reply_error
    linkageType: ''
    returnType: void
    signature: void process_m_request(char *remote_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gx_decode_M_packet
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:227,1
    - Dst: malloc
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:229,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:230,1
    - Dst: gx_convert_ascii_to_int
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:233,1
    - Dst: xg_write_mem
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:235,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:236,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:238,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:240,1
    - Dst: free
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: process_M_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gx_reply_ok
    - gxprt
    - free
    - malloc
    - xg_write_mem
    - gx_convert_ascii_to_int
    - gx_decode_M_packet
    - gx_reply_error
    linkageType: ''
    returnType: void
    signature: void process_M_request(char *remote_buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xg_resume
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:263,1
    - Dst: xg_step
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:272,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - bufp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 281
    functionName: process_v_cont_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gxprt
    - xg_step
    - xg_resume
    linkageType: ''
    returnType: void
    signature: void process_v_cont_request(char *bufp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:286,1
    - Dst: process_v_cont_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:287,1
    - Dst: strncmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 299
    functionName: process_v_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - process_v_cont_request
    - strncmp
    linkageType: ''
    returnType: void
    signature: void process_v_request(char *remote_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: watchpoint_stop
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int watchpoint_stop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:312,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:313,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:315,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:317,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:318,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:320,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:322,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:323,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - rbuf
    - regsp
    argTypes:
    - char*
    - union xg_gdb_regs32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 328
    functionName: copy_mini_context32
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gx_tohex
    - gx_convert_int_to_ascii
    linkageType: ''
    returnType: char
    signature: 'char *

      copy_mini_context32(char *rbuf, union xg_gdb_regs32 *regsp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:333,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:334,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:336,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:338,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:339,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:341,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:343,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:344,1
    - Dst: gx_convert_int_to_ascii
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - rbuf
    - regsp
    argTypes:
    - char*
    - union xg_gdb_regs64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: copy_mini_context64
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gx_tohex
    - gx_convert_int_to_ascii
    linkageType: ''
    returnType: char
    signature: 'char *

      copy_mini_context64(char *rbuf, union xg_gdb_regs64 *regsp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xg_regs_read
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:356,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:357,1
    - Dst: copy_mini_context32
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:361,1
    - Dst: copy_mini_context64
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: copy_mini_context
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gxprt
    - copy_mini_context32
    - xg_regs_read
    - copy_mini_context64
    linkageType: ''
    returnType: char
    signature: 'char *

      copy_mini_context(char *rbuf)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:380,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:382,1
    - Dst: watchpoint_stop
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:385,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:386,1
    - Dst: sprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:390,1
    - Dst: strlen
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - sig
    - buf
    - vcpu
    argTypes:
    - enum target_signal
    - char*
    - vcpuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: prepare_stop_reply
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - sprintf
    - gx_tohex
    - watchpoint_stop
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void prepare_stop_reply(enum target_signal sig, char *buf, vcpuid_t
      vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_stop_reply
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - remote_buf
    - vcpu
    argTypes:
    - char*
    - vcpuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: process_reas_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - prepare_stop_reply
    linkageType: ''
    returnType: void
    signature: void process_reas_request(char *remote_buf, vcpuid_t vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xg_resume_n_wait
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:409,1
    - Dst: prepare_stop_reply
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: process_c_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - prepare_stop_reply
    - xg_resume_n_wait
    linkageType: ''
    returnType: void
    signature: void process_c_request(char *remote_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:431,1
    - Dst: gx_decode_zZ_packet
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:434,1
    - Dst: xg_set_bp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:435,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:436,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: process_Z_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - xg_set_bp
    - gx_decode_zZ_packet
    - gx_reply_ok
    - gx_reply_error
    linkageType: ''
    returnType: void
    signature: void process_Z_request(char *rbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:449,1
    - Dst: gx_decode_zZ_packet
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:452,1
    - Dst: xg_rm_bp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:453,1
    - Dst: gx_reply_error
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:454,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 457
    functionName: process_z_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - xg_rm_bp
    - gx_decode_zZ_packet
    - gx_reply_ok
    - gx_reply_error
    linkageType: ''
    returnType: void
    signature: void process_z_request(char *rbuf)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:466,1
    - Dst: process_q_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:472,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:477,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:482,1
    - Dst: process_reas_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:487,1
    - Dst: process_H_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:491,1
    - Dst: assert
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:496,1
    - Dst: gx_read_guest_regs
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:497,1
    - Dst: assert
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:502,1
    - Dst: gx_write_guest_regs
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:503,1
    - Dst: process_m_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:508,1
    - Dst: process_M_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:512,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:516,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:521,1
    - Dst: process_c_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:526,1
    - Dst: xg_step
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:530,1
    - Dst: prepare_stop_reply
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:533,1
    - Dst: process_Z_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:540,1
    - Dst: process_z_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:544,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:548,1
    - Dst: gx_reply_ok
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:553,1
    - Dst: process_v_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:563,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:575,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 1
    argNames:
    - remote_buf
    argTypes:
    - char*
    assertStmts:
    - condition: (current_vcpu != -1)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    - condition: (current_vcpu != -1)
      pos:
        line_end: 501
        line_start: 501
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    constantsTouched: []
    func_position:
      end: 577
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 577
    functionName: process_remote_request
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - process_reas_request
    - xg_step
    - gx_reply_ok
    - process_M_request
    - process_q_request
    - process_c_request
    - XGTRC
    - process_H_request
    - process_z_request
    - process_Z_request
    - process_v_request
    - process_m_request
    - printf
    - gx_read_guest_regs
    - prepare_stop_reply
    - assert
    - gx_write_guest_regs
    linkageType: ''
    returnType: int
    signature: int process_remote_request(char *remote_buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:582,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:585,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:586,1
    - Dst: exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 588
    functionName: gdbsx_usage_exit
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void gdbsx_usage_exit(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:595,1
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:599,1
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:600,1
    - Dst: gdbsx_usage_exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:601,1
    - Dst: strtoul
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:604,1
    - Dst: strtoul
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:607,1
    - Dst: gdbsx_usage_exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:611,1
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:614,1
    - Dst: strtoul
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:615,1
    - Dst: gdbsx_usage_exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:617,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 18
    argCount: 4
    argNames:
    - argc
    - argv
    - domid_p
    - vp
    argTypes:
    - int
    - char**
    - domid_t*
    - vcpuid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 620
    functionName: check_usage_n_stuff
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 0
    functionsReached:
    - gdbsx_usage_exit
    - strcmp
    - strtoul
    linkageType: ''
    returnType: void
    signature: void check_usage_n_stuff(int argc, char **argv, domid_t *domid_p, vcpuid_t
      *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:629,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:630,1
    - Dst: exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:632,1
    - Dst: signal
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rbufpp
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 635
    functionName: initialize
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 1
    functionsReached:
    - gxprt
    - malloc
    - signal
    - exit
    linkageType: ''
    returnType: void
    signature: void initialize(char **rbufpp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_usage_n_stuff
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:646,1
    - Dst: xg_init
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:648,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:649,1
    - Dst: exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:650,1
    - Dst: xg_attach
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:652,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:653,1
    - Dst: exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:655,1
    - Dst: strcmp
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:657,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:659,1
    - Dst: xg_detach_deinit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:660,1
    - Dst: gdbsx_usage_exit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:661,1
    - Dst: gx_local_cmd
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:663,1
    - Dst: xg_detach_deinit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:664,1
    - Dst: initialize
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:668,1
    - Dst: gx_remote_open
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:672,1
    - Dst: xg_detach_deinit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:673,1
    - Dst: gx_getpkt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:678,1
    - Dst: process_remote_request
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:679,1
    - Dst: gx_putpkt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:681,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:687,1
    - Dst: xg_detach_deinit
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:688,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:691,1
    - Dst: gx_remote_close
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_main.c:693,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 695
    functionName: main
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    functionUses: 134
    functionsReached:
    - gdbsx_usage_exit
    - check_usage_n_stuff
    - gx_local_cmd
    - xg_attach
    - process_remote_request
    - gx_putpkt
    - xg_init
    - gxprt
    - initialize
    - gx_remote_close
    - xg_detach_deinit
    - gx_getpkt
    - gx_remote_open
    - printf
    - exit
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:30,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:31,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:32,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:33,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: gxprt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 11
    functionsReached:
    - va_start
    - fflush
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void gxprt(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: gx_fromhex
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 1
    functionsReached:
    - gxprt
    linkageType: ''
    returnType: int
    signature: int gx_fromhex(int a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nib
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: gx_tohex
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gx_tohex(int nib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:67,1
    - Dst: gx_tohex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - from
    - to
    - n
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: gx_convert_int_to_ascii
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 5
    functionsReached:
    - gx_tohex
    linkageType: ''
    returnType: void
    signature: void gx_convert_int_to_ascii(char *from, char *to, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:80,1
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - from
    - to
    - n
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: gx_convert_ascii_to_int
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 3
    functionsReached:
    - gx_fromhex
    linkageType: ''
    returnType: void
    signature: void gx_convert_ascii_to_int(char *from, char *to, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from
    - mem_addr_ptr
    argTypes:
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: gx_decode_zZ_packet
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 2
    functionsReached:
    - gx_fromhex
    linkageType: ''
    returnType: void
    signature: void gx_decode_zZ_packet(char *from, uint64_t *mem_addr_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:110,1
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - from
    - mem_addr_ptr
    - len_ptr
    argTypes:
    - char*
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 118
    functionName: gx_decode_m_packet
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 1
    functionsReached:
    - gx_fromhex
    linkageType: ''
    returnType: void
    signature: void gx_decode_m_packet(char *from, uint64_t *mem_addr_ptr, int *len_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:135,1
    - Dst: gx_fromhex
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - from
    - mem_addr_ptr
    - len_ptr
    argTypes:
    - char*
    - uint64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: gx_decode_M_packet
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
    functionUses: 1
    functionsReached:
    - gx_fromhex
    linkageType: ''
    returnType: char
    signature: 'char *

      gx_decode_M_packet(char *from, uint64_t *mem_addr_ptr, int *len_ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:35,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:37,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:39,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:41,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - r32p
    argTypes:
    - struct xg_gdb_regs32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: prnt_32regs
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void prnt_32regs(struct xg_gdb_regs32 *r32p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:49,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:51,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:53,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:55,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:57,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:59,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:61,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - r64p
    argTypes:
    - struct xg_gdb_regs64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: prnt_64regs
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void prnt_64regs(struct xg_gdb_regs64 *r64p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:73,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:74,1
    - Dst: xg_read_mem
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:77,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ip
    - sp
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: prnt_call_trace32
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 0
    functionsReached:
    - xg_read_mem
    - printf
    linkageType: ''
    returnType: void
    signature: void prnt_call_trace32(uint32_t ip, uint32_t sp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:95,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:96,1
    - Dst: xg_read_mem
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:99,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ip
    - sp
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: prnt_call_trace64
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 0
    functionsReached:
    - xg_read_mem
    - printf
    linkageType: ''
    returnType: void
    signature: void prnt_call_trace64(uint64_t ip, uint64_t sp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:117,1
    - Dst: xg_regs_read
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:118,1
    - Dst: gxprt
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:120,1
    - Dst: prnt_32regs
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:124,1
    - Dst: prnt_call_trace32
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:125,1
    - Dst: prnt_64regs
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:127,1
    - Dst: prnt_call_trace64
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - vcpuid
    argTypes:
    - vcpuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: prnt_vcpu_context
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 0
    functionsReached:
    - prnt_call_trace32
    - gxprt
    - prnt_32regs
    - prnt_call_trace64
    - xg_regs_read
    - printf
    - prnt_64regs
    linkageType: ''
    returnType: int
    signature: int prnt_vcpu_context(vcpuid_t vcpuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:137,1
    - Dst: prnt_vcpu_context
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:141,1
    - Dst: prnt_vcpu_context
      Src: /src/xen/tools/debugger/gdbsx/gx/gx_local.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - domid
    - vcpuid
    argTypes:
    - domid_t
    - vcpuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: gx_local_cmd
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
    functionUses: 1
    functionsReached:
    - prnt_vcpu_context
    - printf
    linkageType: ''
    returnType: int
    signature: int gx_local_cmd(domid_t domid, vcpuid_t vcpuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:36,1
    - Dst: va_start
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:37,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:38,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:39,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:40,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: xgtrc
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void xgtrc(const char *fn, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:50,1
    - Dst: va_start
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:51,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:52,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:53,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:54,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: xgprt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void xgprt(const char *fn, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: xg_init
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: xg_deinit
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xg_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: xg_attach
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_attach(domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - which_vcpu
    - guest_bitness
    argTypes:
    - vcpuid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: xg_step
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_step(vcpuid_t which_vcpu, int guest_bitness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - guest_bitness
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: xg_resume
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_resume(int guest_bitness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - which_regs
    - which_vcpu
    - regsp
    - guest_bitness
    argTypes:
    - regstype_t
    - vcpuid_t
    - struct xg_gdb_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: xg_regs_read
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xg_regs_read(regstype_t which_regs, vcpuid_t which_vcpu,\n             struct
      xg_gdb_regs *regsp, int guest_bitness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - which_regs
    - which_vcpu
    - regsp
    - guest_bitness
    argTypes:
    - regstype_t
    - vcpuid_t
    - struct xg_gdb_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: xg_regs_write
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int xg_regs_write(regstype_t which_regs, vcpuid_t which_vcpu,\n              struct
      xg_gdb_regs *regsp, int guest_bitness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - guestva
    - tobuf
    - len
    argTypes:
    - uint64_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: xg_read_mem
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_read_mem(uint64_t guestva, char *tobuf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - guestva
    - frombuf
    - len
    argTypes:
    - uint64_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: xg_write_mem
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_write_mem(uint64_t guestva, char *frombuf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vcpu_p
    - guest_bitness
    argTypes:
    - vcpuid_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: xg_wait_domain
    functionSourceFile: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xg_wait_domain(vcpuid_t *vcpu_p, int guest_bitness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: XGERR
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XGERR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: XGTRC
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XGTRC(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: XGTRC1
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XGTRC1(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: XGMIN
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XGMIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:95,1
    - Dst: va_start
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:96,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:97,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:98,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:99,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: xgtrc
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void xgtrc(const char *fn, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:110,1
    - Dst: va_start
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:111,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:112,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:113,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:114,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fn
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: xgprt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - vsnprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void xgprt(const char *fn, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:128,1
    - Dst: open
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:129,1
    - Dst: open
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:130,1
    - Dst: open
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:131,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:132,1
    - Dst: fcntl
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:139,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:140,1
    - Dst: fcntl
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:144,1
    - Dst: perror
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:145,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:149,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:153,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 158
    functionName: xg_init
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - open
    - XGTRC
    - close
    - fcntl
    - perror
    linkageType: ''
    returnType: int
    signature: int xg_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mlock
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:173,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:174,1
    - Dst: ioctl
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:182,1
    - Dst: munlock
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - cmd
    - domctlarg
    - sz
    argTypes:
    - uint32_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: _domctl_hcall
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - munlock
    - XGERR
    - mlock
    - ioctl
    linkageType: ''
    returnType: int
    signature: "int _domctl_hcall(uint32_t cmd,            /* which domctl hypercall
      */\n              void *domctlarg,       /* arg/buf to domctl to pin in mem
      */\n              int sz)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:206,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:208,1
    - Dst: mlock
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:212,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:213,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:216,1
    - Dst: ioctl
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:222,1
    - Dst: munlock
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:223,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:224,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:227,1
    - Dst: strstr
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:231,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - guest_bitness
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 237
    functionName: _check_hyp
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - XGTRC
    - mlock
    - memset
    - XGERR
    - munlock
    - _domctl_hcall
    - strstr
    - ioctl
    linkageType: ''
    returnType: int
    signature: int _check_hyp(int guest_bitness)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - domp
    argTypes:
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: _domain_ok
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - XGERR
    linkageType: ''
    returnType: int
    signature: int _domain_ok(struct xen_domctl_getdomaininfo *domp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:257,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:258,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: _unpause_domain
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - XGERR
    - _domctl_hcall
    linkageType: ''
    returnType: int
    signature: int _unpause_domain(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:273,1
    - Dst: mlock
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:278,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:279,1
    - Dst: _check_hyp
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:282,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:285,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:286,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:290,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:292,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:293,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:294,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:298,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:299,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:300,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:302,1
    - Dst: _domain_ok
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:305,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - domid
    - guest_bitness
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 313
    functionName: xg_attach
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - _domain_ok
    - XGTRC
    - mlock
    - _check_hyp
    - XGERR
    - memset
    - _domctl_hcall
    - _unpause_domain
    linkageType: ''
    returnType: int
    signature: int xg_attach(int domid, int guest_bitness)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:320,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:321,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: _domain_is_paused
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - XGERR
    - _domctl_hcall
    linkageType: ''
    returnType: int
    signature: int _domain_is_paused(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:332,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:334,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:335,1
    - Dst: _domain_is_paused
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:337,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:338,1
    - Dst: close
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 341
    functionName: xg_detach_deinit
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - _domain_is_paused
    - _domctl_hcall
    - close
    - XGERR
    - memset
    - _unpause_domain
    linkageType: ''
    returnType: void
    signature: void xg_detach_deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:353,1
    - Dst: _domain_is_paused
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:355,1
    - Dst: nanosleep
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: _wait_domain_pause
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - XGTRC
    - _domain_is_paused
    - nanosleep
    linkageType: ''
    returnType: int
    signature: int _wait_domain_pause(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:377,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:378,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:381,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:384,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:386,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:388,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:389,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:404,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - which_vcpu
    - guest_bitness
    - setit
    argTypes:
    - vcpuid_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 409
    functionName: _change_TF
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - XGTRC
    - set_xen_guest_handle
    - memset
    - XGERR
    - _domctl_hcall
    linkageType: ''
    returnType: int
    signature: int _change_TF(vcpuid_t which_vcpu, int guest_bitness, int setit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:421,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:423,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - hcall
    - which_vcpu
    argTypes:
    - uint32_t
    - vcpuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 430
    functionName: _allbutone_vcpu
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - XGERR
    - _domctl_hcall
    linkageType: ''
    returnType: int
    signature: int _allbutone_vcpu(uint32_t hcall, vcpuid_t which_vcpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:443,1
    - Dst: _allbutone_vcpu
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:445,1
    - Dst: _change_TF
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:448,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:451,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:454,1
    - Dst: _wait_domain_pause
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:458,1
    - Dst: _allbutone_vcpu
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:460,1
    - Dst: _change_TF
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - which_vcpu
    - guest_bitness
    argTypes:
    - vcpuid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 464
    functionName: xg_step
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 2
    functionsReached:
    - _allbutone_vcpu
    - _change_TF
    - _wait_domain_pause
    - XGTRC
    - _unpause_domain
    linkageType: ''
    returnType: int
    signature: int xg_step(vcpuid_t which_vcpu, int guest_bitness)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:474,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:475,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 481
    functionName: _vcpu_in_bp
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - XGERR
    - _domctl_hcall
    linkageType: ''
    returnType: vcpuid_t
    signature: vcpuid_t _vcpu_in_bp(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:497,1
    - Dst: assert
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:498,1
    - Dst: _domain_is_paused
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:498,1
    - Dst: _vcpu_in_bp
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:500,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:504,1
    - Dst: _unpause_domain
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:505,1
    - Dst: _wait_domain_pause
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:509,1
    - Dst: _vcpu_in_bp
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:512,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - guest_bitness
    argTypes:
    - int
    assertStmts:
    - condition: (_domain_is_paused())
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    constantsTouched: []
    func_position:
      end: 516
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 516
    functionName: xg_resume_n_wait
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - _wait_domain_pause
    - XGTRC
    - _domain_is_paused
    - _unpause_domain
    - assert
    - _vcpu_in_bp
    linkageType: ''
    returnType: vcpuid_t
    signature: vcpuid_t xg_resume_n_wait(int guest_bitness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - cp
    - rp
    argTypes:
    - struct cpu_user_regs_x86_32*
    - struct xg_gdb_regs32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 538
    functionName: _cp_32ctxt_to_32gdb
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _cp_32ctxt_to_32gdb(struct cpu_user_regs_x86_32 *cp, struct xg_gdb_regs32
      *rp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - cp
    - rp
    argTypes:
    - struct cpu_user_regs_x86_64*
    - struct xg_gdb_regs32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 560
    functionName: _cp_64ctxt_to_32gdb
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _cp_64ctxt_to_32gdb(struct cpu_user_regs_x86_64 *cp, struct xg_gdb_regs32
      *rp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:565,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:592,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:593,1
    - Dst: printf
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - cp
    - rp
    argTypes:
    - struct cpu_user_regs_x86_64*
    - struct xg_gdb_regs64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 597
    functionName: _cp_64ctxt_to_64gdb
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - printf
    linkageType: ''
    returnType: void
    signature: void _cp_64ctxt_to_64gdb(struct cpu_user_regs_x86_64 *cp, struct xg_gdb_regs64
      *rp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - rp
    - cp
    argTypes:
    - struct xg_gdb_regs32*
    - struct cpu_user_regs_x86_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 618
    functionName: _cp_32gdb_to_32ctxt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _cp_32gdb_to_32ctxt(struct xg_gdb_regs32 *rp, struct cpu_user_regs_x86_32
      *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - rp
    - cp
    argTypes:
    - struct xg_gdb_regs32*
    - struct cpu_user_regs_x86_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 639
    functionName: _cp_32gdb_to_64ctxt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _cp_32gdb_to_64ctxt(struct xg_gdb_regs32 *rp, struct cpu_user_regs_x86_64
      *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - rp
    - cp
    argTypes:
    - struct xg_gdb_regs64*
    - struct cpu_user_regs_x86_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 669
    functionName: _cp_64gdb_to_64ctxt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _cp_64gdb_to_64ctxt(struct xg_gdb_regs64 *rp, struct cpu_user_regs_x86_64
      *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:680,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:682,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:684,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vcpu_id
    - anycp
    argTypes:
    - vcpuid_t
    - union vcpu_guest_context_any*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: _get_vcpu_ctxt
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 0
    functionsReached:
    - memset
    - XGERR
    - _domctl_hcall
    - set_xen_guest_handle
    linkageType: ''
    returnType: int
    signature: int _get_vcpu_ctxt(vcpuid_t vcpu_id, union vcpu_guest_context_any *anycp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:708,1
    - Dst: _get_vcpu_ctxt
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:711,1
    - Dst: _cp_32ctxt_to_32gdb
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:718,1
    - Dst: _cp_64ctxt_to_32gdb
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:720,1
    - Dst: _cp_64ctxt_to_64gdb
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:722,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - which_regs
    - which_vcpu
    - regsp
    - guest_bitness
    argTypes:
    - regstype_t
    - vcpuid_t
    - union xg_gdb_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 726
    functionName: xg_regs_read
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 3
    functionsReached:
    - _cp_64ctxt_to_32gdb
    - XGTRC
    - _get_vcpu_ctxt
    - XGERR
    - _cp_32ctxt_to_32gdb
    - _cp_64ctxt_to_64gdb
    linkageType: ''
    returnType: int
    signature: "int xg_regs_read(regstype_t which_regs, vcpuid_t which_vcpu, \n             union
      xg_gdb_regs *regsp, int guest_bitness)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:745,1
    - Dst: _get_vcpu_ctxt
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:748,1
    - Dst: _cp_32gdb_to_32ctxt
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:753,1
    - Dst: _cp_32gdb_to_64ctxt
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:755,1
    - Dst: _cp_64gdb_to_64ctxt
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:757,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:760,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:761,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - which_regs
    - which_vcpu
    - regsp
    - guest_bitness
    argTypes:
    - regstype_t
    - vcpuid_t
    - union xg_gdb_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 766
    functionName: xg_regs_write
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - _cp_64gdb_to_64ctxt
    - XGTRC
    - _get_vcpu_ctxt
    - XGERR
    - _domctl_hcall
    - _cp_32gdb_to_32ctxt
    - _cp_32gdb_to_64ctxt
    linkageType: ''
    returnType: int
    signature: "int xg_regs_write(regstype_t which_regs, vcpuid_t which_vcpu, \n              union
      xg_gdb_regs *regsp, int guest_bitness)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:778,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:780,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:787,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:789,1
    - Dst: XGMIN
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:793,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - guestva
    - tobuf
    - tobuf_len
    - pgd3val
    argTypes:
    - uint64_t
    - char*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 797
    functionName: xg_read_mem
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 3
    functionsReached:
    - memset
    - XGTRC
    - XGMIN
    - _domctl_hcall
    linkageType: ''
    returnType: int
    signature: int xg_read_mem(uint64_t guestva, char *tobuf, int tobuf_len, uint64_t
      pgd3val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XGMIN
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:809,1
    - Dst: XGTRC
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:810,1
    - Dst: memset
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:813,1
    - Dst: _domctl_hcall
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:820,1
    - Dst: XGERR
      Src: /src/xen/tools/debugger/gdbsx/xg/xg_main.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - guestva
    - frombuf
    - buflen
    - pgd3val
    argTypes:
    - uint64_t
    - char*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 827
    functionName: xg_write_mem
    functionSourceFile: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    functionUses: 1
    functionsReached:
    - XGTRC
    - _domctl_hcall
    - XGERR
    - memset
    - XGMIN
    linkageType: ''
    returnType: int
    signature: int xg_write_mem(uint64_t guestva, char *frombuf, int buflen, uint64_t
      pgd3val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kdd_get_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:219,1
    - Dst: kdd_get_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: kdd_get_ip
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_get_regs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t kdd_get_ip(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/tools/debugger/kdd/kdd.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: blocking_write
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: size_t
    signature: size_t blocking_write(int fd, const void *buf, size_t count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:254,1
    - Dst: memset
      Src: /src/xen/tools/debugger/kdd/kdd.c:266,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:267,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:269,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:270,1
    - Dst: isprint
      Src: /src/xen/tools/debugger/kdd/kdd.c:271,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:273,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:277,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:279,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:282,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/kdd/kdd.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - s
    - name
    - p
    argTypes:
    - kdd_state*
    - char*
    - kdd_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 284
    functionName: kdd_log_pkt
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - memset
    - fflush
    - isprint
    - fprintf
    linkageType: ''
    returnType: void
    signature: void kdd_log_pkt(kdd_state *s, const char *name, kdd_pkt *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_access_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - addr
    - len
    - buf
    argTypes:
    - kdd_state*
    - uint64_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: kdd_read_physical
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_access_physical
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_read_physical(kdd_state *s, uint64_t addr, \n                                  uint32_t
      len, void *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_access_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - addr
    - len
    - buf
    argTypes:
    - kdd_state*
    - uint64_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: kdd_write_physical
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_access_physical
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_write_physical(kdd_state *s, uint64_t addr, \n                                   uint32_t
      len, void *buf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: kdd_get_ctrl
      Src: /src/xen/tools/debugger/kdd/kdd.c:312,1
    - Dst: kdd_rdmsr
      Src: /src/xen/tools/debugger/kdd/kdd.c:313,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:329,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:348,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:355,1
    - Dst: kdd_read_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:357,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:359,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - s
    - cpuid
    - va
    argTypes:
    - kdd_state*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 370
    functionName: v2p
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_rdmsr
    - KDD_DEBUG
    - kdd_read_physical
    - kdd_get_ctrl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t v2p(kdd_state *s, int cpuid, uint64_t va)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: v2p
      Src: /src/xen/tools/debugger/kdd/kdd.c:383,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:384,1
    - Dst: kdd_access_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:387,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - s
    - cpuid
    - addr
    - len
    - buf
    - write
    argTypes:
    - kdd_state*
    - int
    - uint64_t
    - uint32_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 396
    functionName: kdd_access_virtual
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_access_physical
    - v2p
    - KDD_DEBUG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_access_virtual(kdd_state *s, int cpuid, uint64_t addr,\n
      \                                  uint32_t len, void *buf, int write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_access_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - cpuid
    - addr
    - len
    - buf
    argTypes:
    - kdd_state*
    - int
    - uint64_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: kdd_read_virtual
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_access_virtual
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_read_virtual(kdd_state *s, int cpuid, uint64_t addr,\n
      \                                uint32_t len, void *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_access_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - cpuid
    - addr
    - len
    - buf
    argTypes:
    - kdd_state*
    - int
    - uint64_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: kdd_write_virtual
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_access_virtual
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_write_virtual(kdd_state *s, int cpuid, uint64_t addr,\n
      \                                 uint32_t len, void *buf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:461,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:462,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:468,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:470,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:480,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 452
    functionDepth: 5
    functionLinenumber: 452
    functionLinenumberEnd: 488
    functionName: check_os
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_read_virtual
    - KDD_DEBUG
    linkageType: ''
    returnType: int
    signature: int check_os(kdd_state *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:517,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:524,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:533,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:541,1
    - Dst: strncmp
      Src: /src/xen/tools/debugger/kdd/kdd.c:545,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - s
    - filebase
    - sectname
    - vaddr
    - vsize
    argTypes:
    - kdd_state*
    - uint64_t
    - char*
    - uint64_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 553
    functionName: get_pe64_sections
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - strncmp
    - kdd_read_virtual
    linkageType: ''
    returnType: int
    signature: "int get_pe64_sections(kdd_state *s, uint64_t filebase,\n        const
      char *sectname, uint64_t *vaddr, uint32_t *vsize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: kdd_rdmsr
      Src: /src/xen/tools/debugger/kdd/kdd.c:595,1
    - Dst: kdd_get_ctrl
      Src: /src/xen/tools/debugger/kdd/kdd.c:601,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:606,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:609,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:613,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:624,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:626,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:637,1
    - Dst: get_pe64_sections
      Src: /src/xen/tools/debugger/kdd/kdd.c:640,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:648,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:656,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:688,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:689,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:690,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:691,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 66
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 575
    functionDepth: 6
    functionLinenumber: 575
    functionLinenumberEnd: 702
    functionName: get_os_info_64
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - get_pe64_sections
    - kdd_rdmsr
    - kdd_get_ctrl
    - kdd_read_virtual
    linkageType: ''
    returnType: void
    signature: void get_os_info_64(kdd_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_os
      Src: /src/xen/tools/debugger/kdd/kdd.c:711,1
    - Dst: check_os
      Src: /src/xen/tools/debugger/kdd/kdd.c:721,1
    - Dst: get_os_info_64
      Src: /src/xen/tools/debugger/kdd/kdd.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 705
    functionDepth: 7
    functionLinenumber: 705
    functionLinenumberEnd: 726
    functionName: find_os
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - check_os
    - get_os_info_64
    linkageType: ''
    returnType: void
    signature: void find_os(kdd_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kdd_log_pkt
      Src: /src/xen/tools/debugger/kdd/kdd.c:746,1
    - Dst: blocking_write
      Src: /src/xen/tools/debugger/kdd/kdd.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 754
    functionName: kdd_tx
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - blocking_write
    - kdd_log_pkt
    linkageType: ''
    returnType: void
    signature: void kdd_tx(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_tx
      Src: /src/xen/tools/debugger/kdd/kdd.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - s
    - id
    - type
    argTypes:
    - kdd_state*
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 766
    functionName: kdd_send_ack
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_tx
    linkageType: ''
    returnType: void
    signature: void kdd_send_ack(kdd_state *s, uint32_t id, uint16_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kdd_tx
      Src: /src/xen/tools/debugger/kdd/kdd.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - s
    - subtype
    - extra
    argTypes:
    - kdd_state*
    - uint32_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: kdd_send_cmd
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_tx
    linkageType: ''
    returnType: void
    signature: void kdd_send_cmd(kdd_state *s, uint32_t subtype, size_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/tools/debugger/kdd/kdd.c:787,1
    - Dst: vsnprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:788,1
    - Dst: va_end
      Src: /src/xen/tools/debugger/kdd/kdd.c:789,1
    - Dst: kdd_tx
      Src: /src/xen/tools/debugger/kdd/kdd.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - s
    - fmt
    argTypes:
    - kdd_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 799
    functionName: kdd_send_string
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - va_start
    - kdd_tx
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void kdd_send_string(kdd_state *s, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:806,1
    - Dst: kdd_halt
      Src: /src/xen/tools/debugger/kdd/kdd.c:809,1
    - Dst: kdd_count_cpus
      Src: /src/xen/tools/debugger/kdd/kdd.c:826,1
    - Dst: kdd_get_ip
      Src: /src/xen/tools/debugger/kdd/kdd.c:829,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:832,1
    - Dst: kdd_tx
      Src: /src/xen/tools/debugger/kdd/kdd.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 838
    functionName: kdd_break
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_count_cpus
    - kdd_get_ip
    - kdd_halt
    - kdd_tx
    - kdd_read_virtual
    linkageType: ''
    returnType: void
    signature: void kdd_break(kdd_state *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:849,1
    - Dst: kdd_send_ack
      Src: /src/xen/tools/debugger/kdd/kdd.c:850,1
    - Dst: kdd_send_string
      Src: /src/xen/tools/debugger/kdd/kdd.c:851,1
    - Dst: kdd_guest_identify
      Src: /src/xen/tools/debugger/kdd/kdd.c:852,1
    - Dst: kdd_break
      Src: /src/xen/tools/debugger/kdd/kdd.c:853,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - s
    - id
    - type
    argTypes:
    - kdd_state*
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 841
    functionDepth: 6
    functionLinenumber: 841
    functionLinenumberEnd: 860
    functionName: kdd_handle_ack
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_send_string
    - kdd_guest_identify
    - kdd_send_ack
    - kdd_break
    linkageType: ''
    returnType: void
    signature: void kdd_handle_ack(kdd_state *s, uint32_t id, uint16_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_os
      Src: /src/xen/tools/debugger/kdd/kdd.c:871,1
    - Dst: kdd_send_string
      Src: /src/xen/tools/debugger/kdd/kdd.c:873,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:896,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 868
    functionDepth: 8
    functionLinenumber: 868
    functionLinenumberEnd: 898
    functionName: kdd_handle_handshake
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_send_string
    - KDD_LOG
    - kdd_send_cmd
    - find_os
    linkageType: ''
    returnType: void
    signature: void kdd_handle_handshake(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:903,1
    - Dst: kdd_break
      Src: /src/xen/tools/debugger/kdd/kdd.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 901
    functionDepth: 6
    functionLinenumber: 901
    functionLinenumberEnd: 910
    functionName: kdd_handle_setcpu
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_break
    linkageType: ''
    returnType: void
    signature: void kdd_handle_setcpu(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:915,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 924
    functionName: kdd_handle_soft_breakpoint
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_send_cmd
    linkageType: ''
    returnType: void
    signature: void kdd_handle_soft_breakpoint(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:928,1
    - Dst: kdd_send_string
      Src: /src/xen/tools/debugger/kdd/kdd.c:930,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 935
    functionName: kdd_handle_hard_breakpoint
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_send_string
    - KDD_LOG
    - kdd_send_cmd
    linkageType: ''
    returnType: void
    signature: void kdd_handle_hard_breakpoint(kdd_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:944,1
    - Dst: kdd_get_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:945,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd.c:946,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 954
    functionName: kdd_handle_read_regs
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_send_cmd
    - KDD_LOG
    - memcpy
    - kdd_get_regs
    linkageType: ''
    returnType: void
    signature: void kdd_handle_read_regs(kdd_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:963,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd.c:966,1
    - Dst: kdd_set_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:967,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 972
    functionName: kdd_handle_write_regs
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_send_cmd
    - KDD_LOG
    - memcpy
    - kdd_set_regs
    linkageType: ''
    returnType: void
    signature: void kdd_handle_write_regs(kdd_state *s)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:982,1
    - Dst: kdd_get_ctrl
      Src: /src/xen/tools/debugger/kdd/kdd.c:992,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:1002,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:1012,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd.c:1018,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1021,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1030,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd.c:1033,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:1041,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 975
    functionDepth: 5
    functionLinenumber: 975
    functionLinenumberEnd: 1042
    functionName: kdd_handle_read_ctrl
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_send_cmd
    - kdd_get_ctrl
    - kdd_read_virtual
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_handle_read_ctrl(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1050,1
    - Dst: kdd_rdmsr
      Src: /src/xen/tools/debugger/kdd/kdd.c:1052,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1045
    functionDepth: 3
    functionLinenumber: 1045
    functionLinenumberEnd: 1057
    functionName: kdd_handle_read_msr
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_rdmsr
    - KDD_LOG
    - kdd_send_cmd
    linkageType: ''
    returnType: void
    signature: void kdd_handle_read_msr(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1064,1
    - Dst: kdd_wrmsr
      Src: /src/xen/tools/debugger/kdd/kdd.c:1066,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1059
    functionDepth: 3
    functionLinenumber: 1059
    functionLinenumberEnd: 1070
    functionName: kdd_handle_write_msr
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - kdd_send_cmd
    - kdd_wrmsr
    linkageType: ''
    returnType: void
    signature: void kdd_handle_write_msr(kdd_state *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1079,1
    - Dst: kdd_read_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:1094,1
    - Dst: kdd_write_virtual
      Src: /src/xen/tools/debugger/kdd/kdd.c:1098,1
    - Dst: kdd_read_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:1102,1
    - Dst: kdd_write_physical
      Src: /src/xen/tools/debugger/kdd/kdd.c:1106,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1109,1
    - Dst: kdd_send_cmd
      Src: /src/xen/tools/debugger/kdd/kdd.c:1115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1073
    functionDepth: 5
    functionLinenumber: 1073
    functionLinenumberEnd: 1116
    functionName: kdd_handle_memory_access
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - KDD_DEBUG
    - kdd_send_cmd
    - kdd_read_physical
    - kdd_write_virtual
    - kdd_write_physical
    - kdd_read_virtual
    linkageType: ''
    returnType: void
    signature: void kdd_handle_memory_access(kdd_state *s)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: kdd_send_ack
      Src: /src/xen/tools/debugger/kdd/kdd.c:1129,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1135,1
    - Dst: kdd_send_ack
      Src: /src/xen/tools/debugger/kdd/kdd.c:1136,1
    - Dst: kdd_send_ack
      Src: /src/xen/tools/debugger/kdd/kdd.c:1141,1
    - Dst: memset
      Src: /src/xen/tools/debugger/kdd/kdd.c:1144,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1149,1
    - Dst: kdd_run
      Src: /src/xen/tools/debugger/kdd/kdd.c:1151,1
    - Dst: kdd_handle_handshake
      Src: /src/xen/tools/debugger/kdd/kdd.c:1156,1
    - Dst: kdd_handle_soft_breakpoint
      Src: /src/xen/tools/debugger/kdd/kdd.c:1159,1
    - Dst: kdd_handle_hard_breakpoint
      Src: /src/xen/tools/debugger/kdd/kdd.c:1162,1
    - Dst: kdd_handle_read_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:1165,1
    - Dst: kdd_handle_write_regs
      Src: /src/xen/tools/debugger/kdd/kdd.c:1168,1
    - Dst: kdd_handle_read_ctrl
      Src: /src/xen/tools/debugger/kdd/kdd.c:1171,1
    - Dst: kdd_handle_read_msr
      Src: /src/xen/tools/debugger/kdd/kdd.c:1174,1
    - Dst: kdd_handle_write_msr
      Src: /src/xen/tools/debugger/kdd/kdd.c:1177,1
    - Dst: kdd_handle_memory_access
      Src: /src/xen/tools/debugger/kdd/kdd.c:1183,1
    - Dst: kdd_handle_setcpu
      Src: /src/xen/tools/debugger/kdd/kdd.c:1189,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1193,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd.c:1196,1
    - Dst: kdd_tx
      Src: /src/xen/tools/debugger/kdd/kdd.c:1200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - kdd_state*
    - kdd_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1120
    functionDepth: 9
    functionLinenumber: 1120
    functionLinenumberEnd: 1203
    functionName: kdd_handle_pkt
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - kdd_handle_soft_breakpoint
    - KDD_LOG
    - kdd_run
    - kdd_handle_read_ctrl
    - kdd_handle_hard_breakpoint
    - kdd_handle_write_regs
    - kdd_handle_setcpu
    - kdd_tx
    - kdd_handle_write_msr
    - kdd_handle_read_msr
    - kdd_handle_read_regs
    - kdd_handle_handshake
    - memset
    - kdd_send_ack
    - kdd_handle_memory_access
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_handle_pkt(kdd_state *s, kdd_pkt *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/tools/debugger/kdd/kdd.c:1219,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:1221,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd.c:1222,1
    - Dst: memset
      Src: /src/xen/tools/debugger/kdd/kdd.c:1225,1
    - Dst: socket
      Src: /src/xen/tools/debugger/kdd/kdd.c:1229,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1231,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd.c:1232,1
    - Dst: connect
      Src: /src/xen/tools/debugger/kdd/kdd.c:1238,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1245,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd.c:1246,1
    - Dst: setsockopt
      Src: /src/xen/tools/debugger/kdd/kdd.c:1251,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1261,1
    - Dst: kdd_break
      Src: /src/xen/tools/debugger/kdd/kdd.c:1263,1
    - Dst: close
      Src: /src/xen/tools/debugger/kdd/kdd.c:1269,1
    - Dst: free
      Src: /src/xen/tools/debugger/kdd/kdd.c:1270,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 5
    argNames:
    - sp
    - addr
    - guest
    - log
    - verbosity
    argTypes:
    - kdd_state**
    - struct addrinfo*
    - kdd_guest*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1213
    functionDepth: 6
    functionLinenumber: 1213
    functionLinenumberEnd: 1272
    functionName: kdd_init
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - free
    - socket
    - malloc
    - connect
    - setsockopt
    - close
    - strerror
    - fprintf
    - memset
    - kdd_break
    linkageType: ''
    returnType: int
    signature: "int kdd_init(kdd_state **sp, struct addrinfo *addr, \n                    kdd_guest
      *guest, FILE *log, int verbosity)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/tools/debugger/kdd/kdd.c:1300,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1302,1
    - Dst: kdd_break
      Src: /src/xen/tools/debugger/kdd/kdd.c:1310,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd.c:1321,1
    - Dst: memmove
      Src: /src/xen/tools/debugger/kdd/kdd.c:1322,1
    - Dst: kdd_log_pkt
      Src: /src/xen/tools/debugger/kdd/kdd.c:1328,1
    - Dst: kdd_handle_pkt
      Src: /src/xen/tools/debugger/kdd/kdd.c:1330,1
    - Dst: kdd_handle_ack
      Src: /src/xen/tools/debugger/kdd/kdd.c:1332,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - s
    argTypes:
    - kdd_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1278
    functionDepth: 10
    functionLinenumber: 1278
    functionLinenumberEnd: 1335
    functionName: kdd_select_callback
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 0
    functionsReached:
    - read
    - KDD_LOG
    - kdd_log_pkt
    - KDD_DEBUG
    - kdd_handle_ack
    - memmove
    - kdd_handle_pkt
    - kdd_break
    linkageType: ''
    returnType: void
    signature: void kdd_select_callback(kdd_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd.c:1340,1
    - Dst: exit
      Src: /src/xen/tools/debugger/kdd/kdd.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1349
    functionName: usage
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 29
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/tools/debugger/kdd/kdd.c:1362,1
    - Dst: kdd_guest_init
      Src: /src/xen/tools/debugger/kdd/kdd.c:1369,1
    - Dst: getaddrinfo
      Src: /src/xen/tools/debugger/kdd/kdd.c:1370,1
    - Dst: kdd_init
      Src: /src/xen/tools/debugger/kdd/kdd.c:1371,1
    - Dst: usage
      Src: /src/xen/tools/debugger/kdd/kdd.c:1372,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/debugger/kdd/kdd.c:1375,1
    - Dst: FD_SET
      Src: /src/xen/tools/debugger/kdd/kdd.c:1376,1
    - Dst: select
      Src: /src/xen/tools/debugger/kdd/kdd.c:1377,1
    - Dst: kdd_select_callback
      Src: /src/xen/tools/debugger/kdd/kdd.c:1378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1352
    functionDepth: 11
    functionLinenumber: 1352
    functionLinenumberEnd: 1382
    functionName: main
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.c
    functionUses: 138
    functionsReached:
    - kdd_guest_init
    - kdd_select_callback
    - FD_SET
    - FD_ZERO
    - getaddrinfo
    - select
    - strcmp
    - usage
    - kdd_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - _v
    - ','
    - _s
    - ','
    - _fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: KDD_LOG_IF
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KDD_LOG_IF(_v, _s, _fmt, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - _s
    - ','
    - _fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: KDD_LOG
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KDD_LOG(_s, _fmt, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - _s
    - ','
    - _fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: KDD_DEBUG
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KDD_DEBUG(_s, _fmt, _a...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: flush_maps
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void flush_maps(kdd_guest *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_pause
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:84,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:87,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:89,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:90,1
    - Dst: realloc
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:93,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:95,1
    - Dst: memset
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:100,1
    - Dst: xc_domain_hvm_getcontext
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:103,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:105,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 108
    functionName: kdd_halt
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - KDD_LOG
    - strerror
    - memset
    - xc_domain_hvm_getcontext
    - realloc
    - xc_domain_pause
    linkageType: ''
    returnType: void
    signature: void kdd_halt(kdd_guest *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: kdd_poll_guest
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kdd_poll_guest(kdd_guest *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_hvm_setcontext
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:122,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:124,1
    - Dst: strerror
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: hvm_writeback
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - xc_domain_hvm_setcontext
    - strerror
    linkageType: ''
    returnType: void
    signature: void hvm_writeback(kdd_guest *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_maps
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:131,1
    - Dst: hvm_writeback
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:132,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: kdd_run
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - xc_domain_unpause
    - flush_maps
    - hvm_writeback
    linkageType: ''
    returnType: void
    signature: void kdd_run(kdd_guest *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 155
    functionName: kdd_count_cpus
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: int
    signature: int kdd_count_cpus(kdd_guest *g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:170,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - g
    - cpuid
    argTypes:
    - kdd_guest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: get_cpu
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: struct hvm_hw_cpu
    signature: struct hvm_hw_cpu *get_cpu(kdd_guest *g, int cpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:194,1
    - Dst: KDD_LOG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - g
    - cpuid
    argTypes:
    - kdd_guest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 203
    functionName: get_lapic
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - KDD_LOG
    - HVM_SAVE_CODE
    linkageType: ''
    returnType: struct hvm_hw_lapic_regs
    signature: struct hvm_hw_lapic_regs *get_lapic(kdd_guest *g, int cpuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - cpu
    - r
    argTypes:
    - struct hvm_hw_cpu*
    - kdd_regs_x86_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: kdd_get_regs_x86_32
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_get_regs_x86_32(struct hvm_hw_cpu *cpu, kdd_regs_x86_32 *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - cpu
    - r
    argTypes:
    - struct hvm_hw_cpu*
    - kdd_regs_x86_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: kdd_set_regs_x86_32
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_set_regs_x86_32(struct hvm_hw_cpu *cpu, kdd_regs_x86_32 *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - cpu
    - r
    argTypes:
    - struct hvm_hw_cpu*
    - kdd_regs_x86_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 287
    functionName: kdd_get_regs_x86_64
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_get_regs_x86_64(struct hvm_hw_cpu *cpu, kdd_regs_x86_64 *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - cpu
    - r
    argTypes:
    - struct hvm_hw_cpu*
    - kdd_regs_x86_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 322
    functionName: kdd_set_regs_x86_64
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kdd_set_regs_x86_64(struct hvm_hw_cpu *cpu, kdd_regs_x86_64 *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:329,1
    - Dst: memset
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:333,1
    - Dst: kdd_get_regs_x86_64
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:336,1
    - Dst: kdd_get_regs_x86_32
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - g
    - cpuid
    - r
    - w64
    argTypes:
    - kdd_guest*
    - int
    - kdd_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: kdd_get_regs
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 2
    functionsReached:
    - get_cpu
    - kdd_get_regs_x86_64
    - kdd_get_regs_x86_32
    - memset
    linkageType: ''
    returnType: int
    signature: int kdd_get_regs(kdd_guest *g, int cpuid, kdd_regs *r, int w64)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:347,1
    - Dst: kdd_set_regs_x86_64
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:352,1
    - Dst: kdd_set_regs_x86_32
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:354,1
    - Dst: hvm_writeback
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - g
    - cpuid
    - r
    - w64
    argTypes:
    - kdd_guest*
    - int
    - kdd_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 358
    functionName: kdd_set_regs
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - get_cpu
    - hvm_writeback
    - kdd_set_regs_x86_64
    - kdd_set_regs_x86_32
    linkageType: ''
    returnType: int
    signature: int kdd_set_regs(kdd_guest *g, int cpuid, kdd_regs *r, int w64)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - cpu
    - c
    argTypes:
    - struct hvm_hw_cpu*
    - kdd_ctrl_x86_32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: kdd_get_ctrl_x86_32
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kdd_get_ctrl_x86_32(struct hvm_hw_cpu *cpu, kdd_ctrl_x86_32 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - cpu
    - lapic
    - c
    argTypes:
    - struct hvm_hw_cpu*
    - struct hvm_hw_lapic_regs*
    - kdd_ctrl_x86_64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 403
    functionName: kdd_get_ctrl_x86_64
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void kdd_get_ctrl_x86_64(struct hvm_hw_cpu *cpu, \n                                struct
      hvm_hw_lapic_regs *lapic,\n                                kdd_ctrl_x86_64 *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:411,1
    - Dst: get_lapic
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:416,1
    - Dst: kdd_get_ctrl_x86_64
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:419,1
    - Dst: kdd_get_ctrl_x86_32
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - g
    - cpuid
    - ctrl
    - w64
    argTypes:
    - kdd_guest*
    - int
    - kdd_ctrl*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 425
    functionName: kdd_get_ctrl
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 3
    functionsReached:
    - get_cpu
    - kdd_get_ctrl_x86_64
    - get_lapic
    - kdd_get_ctrl_x86_32
    linkageType: ''
    returnType: int
    signature: int kdd_get_ctrl(kdd_guest *g, int cpuid, kdd_ctrl *ctrl, int w64)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:431,1
    - Dst: hvm_writeback
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - g
    - cpuid
    - msr
    - value
    argTypes:
    - kdd_guest*
    - int
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 453
    functionName: kdd_wrmsr
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - get_cpu
    - hvm_writeback
    linkageType: ''
    returnType: int
    signature: int kdd_wrmsr(kdd_guest *g, int cpuid, uint32_t msr, uint64_t value)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:459,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - g
    - cpuid
    - msr
    - value
    argTypes:
    - kdd_guest*
    - int
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 480
    functionName: kdd_rdmsr
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 3
    functionsReached:
    - get_cpu
    linkageType: ''
    returnType: int
    signature: int kdd_rdmsr(kdd_guest *g, int cpuid, uint32_t msr, uint64_t *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:496,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:505,1
    - Dst: KDD_DEBUG
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:511,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:521,1
    - Dst: memcpy
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:523,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - g
    - addr
    - len
    - buf
    - write
    argTypes:
    - kdd_guest*
    - uint64_t
    - uint32_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 526
    functionName: kdd_access_physical_page
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - munmap
    - xc_map_foreign_range
    - memcpy
    - KDD_DEBUG
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_access_physical_page(kdd_guest *g, uint64_t addr, \n
      \                                        uint32_t len, uint8_t *buf, int write)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kdd_access_physical_page
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - g
    - addr
    - len
    - buf
    - write
    argTypes:
    - kdd_guest*
    - uint64_t
    - uint32_t
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 545
    functionName: kdd_access_physical
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 3
    functionsReached:
    - kdd_access_physical_page
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t kdd_access_physical(kdd_guest *g, uint64_t addr, \n                             uint32_t
      len, uint8_t *buf, int write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:560,1
    - Dst: vfprintf
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:561,1
    - Dst: fprintf
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:562,1
    - Dst: fflush
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 6
    argNames:
    - logger
    - level
    - errnoval
    - context
    - format
    - al
    argTypes:
    - struct xentoollog_logger*
    - xentoollog_level
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: kdd_xc_log
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - fflush
    - vfprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void kdd_xc_log(struct xentoollog_logger *logger,\n                       xentoollog_level
      level,\n                       int errnoval /* or -1 */,\n                       const
      char *context /* eg \"xc\", \"xl\", may be 0 */,\n                       const
      char *format /* without level, context, \\n */,\n                       va_list
      al)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:575,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:582,1
    - Dst: strtoul
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:587,1
    - Dst: xc_domain_getinfo_single
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:593,1
    - Dst: snprintf
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:597,1
    - Dst: free
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:603,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:605,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - arg
    - log
    - verbosity
    argTypes:
    - char*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 607
    functionName: kdd_guest_init
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached:
    - snprintf
    - calloc
    - free
    - xc_interface_open
    - xc_interface_close
    - xc_domain_getinfo_single
    - strtoul
    linkageType: ''
    returnType: kdd_guest
    signature: kdd_guest *kdd_guest_init(char *arg, FILE *log, int verbosity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: kdd_guest_identify
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *kdd_guest_identify(kdd_guest *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_maps
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:618,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:619,1
    - Dst: free
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:620,1
    - Dst: free
      Src: /src/xen/tools/debugger/kdd/kdd-xen.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - g
    argTypes:
    - kdd_guest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 622
    functionName: kdd_guest_teardown
    functionSourceFile: /src/xen/tools/debugger/kdd/kdd-xen.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - free
    - flush_maps
    linkageType: ''
    returnType: void
    signature: void kdd_guest_teardown(kdd_guest *g)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:50,1
    - Dst: PyString_FromStringAndSize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:58,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:60,1
    - Dst: PyString_AS_STRING
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:70,1
    - Dst: PyBytes_AS_STRING
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:72,1
    - Dst: fsi_pread_file
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:75,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:79,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:80,1
    - Dst: _PyString_Resize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:94,1
    - Dst: _PyBytes_Resize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:96,1
    - Dst: _PyString_Resize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:103,1
    - Dst: _PyBytes_Resize
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:105,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - file
    - args
    - kwargs
    argTypes:
    - fsimage_file_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 108
    functionName: fsimage_file_read
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - PyString_FromStringAndSize
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - _PyString_Resize
    - PyBytes_FromStringAndSize
    - PyString_AS_STRING
    - Py_DECREF
    - fsi_pread_file
    - PyBytes_AS_STRING
    - _PyBytes_Resize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_file_read(fsimage_file_t *file, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FindMethod
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - name
    argTypes:
    - fsimage_file_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: fsimage_file_getattr
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - Py_FindMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_file_getattr(fsimage_file_t *file, char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsi_close_file
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:135,1
    - Dst: Py_XDECREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:136,1
    - Dst: PyObject_DEL
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - file
    argTypes:
    - fsimage_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: fsimage_file_dealloc
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - fsi_close_file
    - Py_XDECREF
    - PyObject_DEL
    linkageType: ''
    returnType: void
    signature: void fsimage_file_dealloc(fsimage_file_t *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:163,1
    - Dst: PyObject_NEW
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:166,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:173,1
    - Dst: fsi_open_file
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:174,1
    - Dst: Py_DECREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:175,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - fs
    - args
    - kwargs
    argTypes:
    - fsimage_fs_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 182
    functionName: fsimage_fs_open_file
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - fsi_open_file
    - Py_DECREF
    - PyObject_NEW
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_fs_open_file(fsimage_fs_t *fs, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:190,1
    - Dst: fsi_file_exists
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:193,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:194,1
    - Dst: Py_INCREF
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fs
    - args
    - kwargs
    argTypes:
    - fsimage_fs_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: fsimage_fs_file_exists
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - fsi_file_exists
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_fs_file_exists(fsimage_fs_t *fs, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FindMethod
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fs
    - name
    argTypes:
    - fsimage_fs_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: fsimage_fs_getattr
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - Py_FindMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_fs_getattr(fsimage_fs_t *fs, char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsi_close_fsimage
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:228,1
    - Dst: PyObject_DEL
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fs
    argTypes:
    - fsimage_fs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: fsimage_fs_dealloc
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - fsi_close_fsimage
    - PyObject_DEL
    linkageType: ''
    returnType: void
    signature: void fsimage_fs_dealloc (fsimage_fs_t *fs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:258,1
    - Dst: PyObject_NEW
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:262,1
    - Dst: fsi_open_fsimage
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:265,1
    - Dst: PyErr_SetFromErrno
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - o
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: fsimage_open
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - fsi_open_fsimage
    - PyArg_ParseTupleAndKeywords
    - PyObject_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_open(PyObject *o, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:280,1
    - Dst: fsi_fs_bootstring
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:284,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: fsimage_getbootstring
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - fsi_fs_bootstring
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_getbootstring(PyObject *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:292,1
    - Dst: Py_BuildValue
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:295,1
    - Dst: fsi_init
      Src: /src/xen/tools/pygrub/src/fsimage/fsimage.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: fsimage_init
    functionSourceFile: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - fsi_init
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fsimage_init(PyObject *o, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/setmask.c:45,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/xenmon/setmask.c:49,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/setmask.c:52,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/setmask.c:53,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/setmask.c:57,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/xenmon/setmask.c:65,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/setmask.c:66,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/setmask.c:69,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/setmask.c:70,1
    - Dst: xc_sysctl
      Src: /src/xen/tools/xenmon/setmask.c:76,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/setmask.c:79,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/setmask.c:80,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/setmask.c:84,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/setmask.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/xen/tools/xenmon/setmask.c
    functionUses: 138
    functionsReached:
    - xc_sysctl
    - xc_interface_close
    - xc_interface_open
    - printf
    - exit
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char * argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _m
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: PERROR
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 156
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERROR(_m, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: _atomic_read
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _atomic_read(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/xenmon/xenbaked.c:122,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ncpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: init_current
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - printf
    - calloc
    linkageType: ''
    returnType: void
    signature: void init_current(int ncpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - cpu
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: is_current
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_current(int domain, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: current
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int current(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - domain
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: set_current
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_current(int cpu, int domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: close_handler
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void close_handler(int signal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - x
    argTypes:
    - int
    - struct t_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: dump_record
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_record(int cpu, struct t_rec *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - millis
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: millis_to_timespec
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct timespec
    signature: struct timespec millis_to_timespec(unsigned long millis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: total_ns_gotten
      Src: /src/xen/tools/xenmon/xenbaked.c:217,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:219,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 226
    functionName: check_gotten_sum
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - printf
    - total_ns_gotten
    linkageType: ''
    returnType: void
    signature: void check_gotten_sum(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: difftime
      Src: /src/xen/tools/xenmon/xenbaked.c:233,1
    - Dst: time
      Src: /src/xen/tools/xenmon/xenbaked.c:233,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:235,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:237,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:241,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:244,1
    - Dst: check_gotten_sum
      Src: /src/xen/tools/xenmon/xenbaked.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 248
    functionName: dump_stats
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - time
    - difftime
    - check_gotten_sum
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_stats(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - event_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: log_event
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void log_event(int event_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xenevtchn_open
      Src: /src/xen/tools/xenmon/xenbaked.c:280,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/xenbaked.c:283,1
    - Dst: xenevtchn_bind_virq
      Src: /src/xen/tools/xenmon/xenbaked.c:285,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/xenbaked.c:286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 290
    functionName: eventchn_init
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - perror
    - xenevtchn_bind_virq
    - xenevtchn_open
    linkageType: ''
    returnType: int
    signature: int eventchn_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/xen/tools/xenmon/xenbaked.c:301,1
    - Dst: xenevtchn_fd
      Src: /src/xen/tools/xenmon/xenbaked.c:305,1
    - Dst: FD_ZERO
      Src: /src/xen/tools/xenmon/xenbaked.c:307,1
    - Dst: FD_SET
      Src: /src/xen/tools/xenmon/xenbaked.c:308,1
    - Dst: select
      Src: /src/xen/tools/xenmon/xenbaked.c:312,1
    - Dst: FD_ISSET
      Src: /src/xen/tools/xenmon/xenbaked.c:314,1
    - Dst: xenevtchn_pending
      Src: /src/xen/tools/xenmon/xenbaked.c:315,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/xenbaked.c:316,1
    - Dst: xenevtchn_unmask
      Src: /src/xen/tools/xenmon/xenbaked.c:321,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/xenbaked.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 324
    functionName: wait_for_event
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - FD_SET
    - xenevtchn_unmask
    - xenevtchn_fd
    - FD_ZERO
    - FD_ISSET
    - nanosleep
    - select
    - xenevtchn_pending
    - perror
    linkageType: ''
    returnType: void
    signature: void wait_for_event(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/xenbaked.c:328,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:333,1
    - Dst: xc_tbuf_enable
      Src: /src/xen/tools/xenmon/xenbaked.c:336,1
    - Dst: perror
      Src: /src/xen/tools/xenmon/xenbaked.c:340,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:341,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/xenbaked.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mfn
    - size
    argTypes:
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 326
    functionDepth: 4
    functionLinenumber: 326
    functionLinenumberEnd: 345
    functionName: get_tbufs
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - xc_tbuf_enable
    - xc_interface_close
    - xc_interface_open
    - exit
    - perror
    linkageType: ''
    returnType: void
    signature: void get_tbufs(unsigned long *mfn, unsigned long *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/xenbaked.c:349,1
    - Dst: xc_tbuf_disable
      Src: /src/xen/tools/xenmon/xenbaked.c:350,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/xenbaked.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: disable_tracing
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - xc_interface_close
    - xc_tbuf_disable
    - xc_interface_open
    linkageType: ''
    returnType: void
    signature: void disable_tracing(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/xenbaked.c:369,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:372,1
    - Dst: xc_map_foreign_range
      Src: /src/xen/tools/xenmon/xenbaked.c:376,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:381,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:382,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:387,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:388,1
    - Dst: calloc
      Src: /src/xen/tools/xenmon/xenbaked.c:392,1
    - Dst: calloc
      Src: /src/xen/tools/xenmon/xenbaked.c:393,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:396,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:397,1
    - Dst: xc_map_foreign_pages
      Src: /src/xen/tools/xenmon/xenbaked.c:411,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:417,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:418,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/xenbaked.c:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - tbufs_mfn
    - num
    - tinfo_size
    argTypes:
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 362
    functionDepth: 4
    functionLinenumber: 362
    functionLinenumberEnd: 426
    functionName: map_tbufs
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - xc_interface_close
    - PERROR
    - calloc
    - xc_interface_open
    - xc_map_foreign_range
    - fprintf
    - exit
    - xc_map_foreign_pages
    linkageType: ''
    returnType: struct t_struct
    signature: "struct t_struct *map_tbufs(unsigned long tbufs_mfn, unsigned int num,\n
      \                                 unsigned long tinfo_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/xenbaked.c:434,1
    - Dst: xc_physinfo
      Src: /src/xen/tools/xenmon/xenbaked.c:437,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:441,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:442,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/xenbaked.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 449
    functionName: get_num_cpus
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - xc_interface_close
    - PERROR
    - xc_physinfo
    - xc_interface_open
    - exit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_num_cpus(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_num_cpus
      Src: /src/xen/tools/xenmon/xenbaked.c:470,1
    - Dst: init_current
      Src: /src/xen/tools/xenmon/xenbaked.c:472,1
    - Dst: alloc_qos_data
      Src: /src/xen/tools/xenmon/xenbaked.c:473,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:475,1
    - Dst: get_tbufs
      Src: /src/xen/tools/xenmon/xenbaked.c:478,1
    - Dst: map_tbufs
      Src: /src/xen/tools/xenmon/xenbaked.c:479,1
    - Dst: eventchn_init
      Src: /src/xen/tools/xenmon/xenbaked.c:488,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:489,1
    - Dst: xen_rmb
      Src: /src/xen/tools/xenmon/xenbaked.c:501,1
    - Dst: process_record
      Src: /src/xen/tools/xenmon/xenbaked.c:513,1
    - Dst: process_record
      Src: /src/xen/tools/xenmon/xenbaked.c:521,1
    - Dst: xen_mb
      Src: /src/xen/tools/xenmon/xenbaked.c:525,1
    - Dst: wait_for_event
      Src: /src/xen/tools/xenmon/xenbaked.c:529,1
    - Dst: free
      Src: /src/xen/tools/xenmon/xenbaked.c:534,1
    - Dst: free
      Src: /src/xen/tools/xenmon/xenbaked.c:535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 539
    functionName: monitor_tbufs
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - eventchn_init
    - init_current
    - map_tbufs
    - free
    - xen_rmb
    - alloc_qos_data
    - get_tbufs
    - fprintf
    - printf
    - xen_mb
    - wait_for_event
    - get_num_cpus
    - process_record
    linkageType: ''
    returnType: int
    signature: int monitor_tbufs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: xstr
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xstr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 551
    functionName: str
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: str(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:572,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:573,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 576
    functionName: usage
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 30
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/xen/tools/xenmon/xenbaked.c:585,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:588,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:589,1
    - Dst: strerror
      Src: /src/xen/tools/xenmon/xenbaked.c:589,1
    - Dst: usage
      Src: /src/xen/tools/xenmon/xenbaked.c:590,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:592,1
    - Dst: usage
      Src: /src/xen/tools/xenmon/xenbaked.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arg
    - base
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 597
    functionName: argtol
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 3
    functionsReached:
    - usage
    - strerror
    - fprintf
    - strtol
    linkageType: ''
    returnType: long
    signature: long argtol(const char *restrict arg, int base)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/xenmon/xenbaked.c:612,1
    - Dst: argtol
      Src: /src/xen/tools/xenmon/xenbaked.c:618,1
    - Dst: millis_to_timespec
      Src: /src/xen/tools/xenmon/xenbaked.c:622,1
    - Dst: argtol
      Src: /src/xen/tools/xenmon/xenbaked.c:622,1
    - Dst: argtol
      Src: /src/xen/tools/xenmon/xenbaked.c:626,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:630,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:631,1
    - Dst: usage
      Src: /src/xen/tools/xenmon/xenbaked.c:635,1
    - Dst: usage
      Src: /src/xen/tools/xenmon/xenbaked.c:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 643
    functionName: parse_args
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - millis_to_timespec
    - getopt_long
    - printf
    - argtol
    - usage
    - exit
    linkageType: ''
    returnType: void
    signature: void parse_args(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/tools/xenmon/xenbaked.c:652,1
    - Dst: open
      Src: /src/xen/tools/xenmon/xenbaked.c:655,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:657,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:658,1
    - Dst: getpagesize
      Src: /src/xen/tools/xenmon/xenbaked.c:660,1
    - Dst: malloc
      Src: /src/xen/tools/xenmon/xenbaked.c:661,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:663,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:664,1
    - Dst: memset
      Src: /src/xen/tools/xenmon/xenbaked.c:666,1
    - Dst: write
      Src: /src/xen/tools/xenmon/xenbaked.c:671,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:672,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:673,1
    - Dst: mmap
      Src: /src/xen/tools/xenmon/xenbaked.c:676,1
    - Dst: PERROR
      Src: /src/xen/tools/xenmon/xenbaked.c:680,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:681,1
    - Dst: memset
      Src: /src/xen/tools/xenmon/xenbaked.c:684,1
    - Dst: advance_next_datapoint
      Src: /src/xen/tools/xenmon/xenbaked.c:686,1
    - Dst: free
      Src: /src/xen/tools/xenmon/xenbaked.c:692,1
    - Dst: close
      Src: /src/xen/tools/xenmon/xenbaked.c:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - ncpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 695
    functionName: alloc_qos_data
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - open
    - PERROR
    - calloc
    - free
    - malloc
    - close
    - mmap
    - advance_next_datapoint
    - getpagesize
    - memset
    - exit
    - write
    linkageType: ''
    returnType: void
    signature: void alloc_qos_data(int ncpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/xen/tools/xenmon/xenbaked.c:703,1
    - Dst: millis_to_timespec
      Src: /src/xen/tools/xenmon/xenbaked.c:704,1
    - Dst: parse_args
      Src: /src/xen/tools/xenmon/xenbaked.c:709,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:710,1
    - Dst: sigemptyset
      Src: /src/xen/tools/xenmon/xenbaked.c:716,1
    - Dst: sigaction
      Src: /src/xen/tools/xenmon/xenbaked.c:717,1
    - Dst: sigaction
      Src: /src/xen/tools/xenmon/xenbaked.c:718,1
    - Dst: sigaction
      Src: /src/xen/tools/xenmon/xenbaked.c:719,1
    - Dst: monitor_tbufs
      Src: /src/xen/tools/xenmon/xenbaked.c:721,1
    - Dst: dump_stats
      Src: /src/xen/tools/xenmon/xenbaked.c:723,1
    - Dst: msync
      Src: /src/xen/tools/xenmon/xenbaked.c:724,1
    - Dst: disable_tracing
      Src: /src/xen/tools/xenmon/xenbaked.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 698
    functionDepth: 5
    functionLinenumber: 698
    functionLinenumberEnd: 728
    functionName: main
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 138
    functionsReached:
    - millis_to_timespec
    - monitor_tbufs
    - sigaction
    - dump_stats
    - time
    - sigemptyset
    - parse_args
    - fprintf
    - disable_tracing
    - msync
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/xenmon/xenbaked.c:734,1
    - Dst: snprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:742,1
    - Dst: snprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - domid
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 758
    functionName: qos_init_domain
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - memset
    - snprintf
    linkageType: ''
    returnType: void
    signature: void qos_init_domain(int domid, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qos_init_domain
      Src: /src/xen/tools/xenmon/xenbaked.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domid
    - idx
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: global_init_domain
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - qos_init_domain
    linkageType: ''
    returnType: void
    signature: void global_init_domain(int domid, int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:783,1
    - Dst: global_init_domain
      Src: /src/xen/tools/xenmon/xenbaked.c:794,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/xenmon/xenbaked.c:799,1
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/xenmon/xenbaked.c:800,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/xenmon/xenbaked.c:801,1
    - Dst: qos_kill_thread
      Src: /src/xen/tools/xenmon/xenbaked.c:817,1
    - Dst: global_init_domain
      Src: /src/xen/tools/xenmon/xenbaked.c:823,1
    - Dst: fprintf
      Src: /src/xen/tools/xenmon/xenbaked.c:828,1
    - Dst: exit
      Src: /src/xen/tools/xenmon/xenbaked.c:829,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 775
    functionDepth: 4
    functionLinenumber: 775
    functionLinenumberEnd: 830
    functionName: indexof
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - qos_kill_thread
    - global_init_domain
    - xc_interface_open
    - fprintf
    - printf
    - xc_interface_close
    - xc_domain_getinfolist
    - exit
    linkageType: ''
    returnType: int
    signature: int indexof(int domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 5
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: domain_runnable
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - indexof
    linkageType: ''
    returnType: int
    signature: int domain_runnable(int domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:841,1
    - Dst: domain_runnable
      Src: /src/xen/tools/xenmon/xenbaked.c:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - domid
    - now
    argTypes:
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 838
    functionDepth: 6
    functionLinenumber: 838
    functionLinenumberEnd: 855
    functionName: update_blocked_time
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - indexof
    - domain_runnable
    linkageType: ''
    returnType: void
    signature: void update_blocked_time(int domid, uint64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QOS_INCR::QOS_INCR
      Src: /src/xen/tools/xenmon/xenbaked.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - now
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 880
    functionName: advance_next_datapoint
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - QOS_INCR::QOS_INCR
    linkageType: ''
    returnType: void
    signature: void advance_next_datapoint(uint64_t now)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:890,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:910,1
    - Dst: is_current
      Src: /src/xen/tools/xenmon/xenbaked.c:921,1
    - Dst: domain_runnable
      Src: /src/xen/tools/xenmon/xenbaked.c:943,1
    - Dst: update_blocked_time
      Src: /src/xen/tools/xenmon/xenbaked.c:945,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - cpu
    - domid
    - now
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 884
    functionDepth: 7
    functionLinenumber: 884
    functionLinenumberEnd: 958
    functionName: qos_update_thread
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - update_blocked_time
    - indexof
    - domain_runnable
    - printf
    - is_current
    linkageType: ''
    returnType: void
    signature: void qos_update_thread(int cpu, int domid, uint64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qos_update_thread
      Src: /src/xen/tools/xenmon/xenbaked.c:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - now
    - cpu
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 962
    functionDepth: 8
    functionLinenumber: 962
    functionLinenumberEnd: 969
    functionName: qos_update_all
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - qos_update_thread
    linkageType: ''
    returnType: void
    signature: void qos_update_all(uint64_t now, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qos_update_all
      Src: /src/xen/tools/xenmon/xenbaked.c:975,1
    - Dst: advance_next_datapoint
      Src: /src/xen/tools/xenmon/xenbaked.c:976,1
    - Dst: qos_update_thread
      Src: /src/xen/tools/xenmon/xenbaked.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cpu
    - domid
    - now
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 972
    functionDepth: 9
    functionLinenumber: 972
    functionLinenumberEnd: 980
    functionName: qos_update_thread_stats
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - advance_next_datapoint
    - qos_update_thread
    - qos_update_all
    linkageType: ''
    returnType: void
    signature: void qos_update_thread_stats(int cpu, int domid, uint64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:987,1
    - Dst: update_blocked_time
      Src: /src/xen/tools/xenmon/xenbaked.c:990,1
    - Dst: qos_update_thread_stats
      Src: /src/xen/tools/xenmon/xenbaked.c:999,1
    - Dst: set_current
      Src: /src/xen/tools/xenmon/xenbaked.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - cpu
    - domid
    - now
    - ns_alloc
    - ns_waited
    argTypes:
    - int
    - int
    - uint64_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 985
    functionDepth: 10
    functionLinenumber: 985
    functionLinenumberEnd: 1005
    functionName: qos_switch_in
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - update_blocked_time
    - indexof
    - set_current
    - qos_update_thread_stats
    linkageType: ''
    returnType: void
    signature: void qos_switch_in(int cpu, int domid, uint64_t now, unsigned long
      ns_alloc, unsigned long ns_waited)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1010,1
    - Dst: is_current
      Src: /src/xen/tools/xenmon/xenbaked.c:1013,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:1018,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:1022,1
    - Dst: printf
      Src: /src/xen/tools/xenmon/xenbaked.c:1030,1
    - Dst: qos_update_thread_stats
      Src: /src/xen/tools/xenmon/xenbaked.c:1036,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - cpu
    - domid
    - now
    - gotten
    argTypes:
    - int
    - int
    - uint64_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1008
    functionDepth: 10
    functionLinenumber: 1008
    functionLinenumberEnd: 1042
    functionName: qos_switch_out
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - indexof
    - is_current
    - printf
    - qos_update_thread_stats
    linkageType: ''
    returnType: void
    signature: void qos_switch_out(int cpu, int domid, uint64_t now, unsigned long
      gotten)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_runnable
      Src: /src/xen/tools/xenmon/xenbaked.c:1050,1
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1053,1
    - Dst: qos_update_thread_stats
      Src: /src/xen/tools/xenmon/xenbaked.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cpu
    - domid
    - now
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1046
    functionDepth: 10
    functionLinenumber: 1046
    functionLinenumberEnd: 1059
    functionName: qos_state_sleeping
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - indexof
    - domain_runnable
    - qos_update_thread_stats
    linkageType: ''
    returnType: void
    signature: void qos_state_sleeping(int cpu, int domid, uint64_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1064
    functionDepth: 5
    functionLinenumber: 1064
    functionLinenumberEnd: 1072
    functionName: qos_kill_thread
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 1
    functionsReached:
    - indexof
    linkageType: ''
    returnType: void
    signature: void qos_kill_thread(int domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qos_update_thread_stats
      Src: /src/xen/tools/xenmon/xenbaked.c:1082,1
    - Dst: domain_runnable
      Src: /src/xen/tools/xenmon/xenbaked.c:1084,1
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1087,1
    - Dst: update_blocked_time
      Src: /src/xen/tools/xenmon/xenbaked.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cpu
    - domid
    - now
    argTypes:
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1077
    functionDepth: 10
    functionLinenumber: 1077
    functionLinenumberEnd: 1094
    functionName: qos_state_runnable
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - update_blocked_time
    - indexof
    - domain_runnable
    - qos_update_thread_stats
    linkageType: ''
    returnType: void
    signature: void qos_state_runnable(int cpu, int domid, uint64_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - domid
    - now
    argTypes:
    - domid_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1097
    functionDepth: 5
    functionLinenumber: 1097
    functionLinenumberEnd: 1111
    functionName: qos_count_packets
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 0
    functionsReached:
    - indexof
    linkageType: ''
    returnType: void
    signature: void qos_count_packets(domid_t domid, uint64_t now)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: log_event
      Src: /src/xen/tools/xenmon/xenbaked.c:1133,1
    - Dst: qos_switch_out
      Src: /src/xen/tools/xenmon/xenbaked.c:1139,1
    - Dst: qos_switch_in
      Src: /src/xen/tools/xenmon/xenbaked.c:1146,1
    - Dst: indexof
      Src: /src/xen/tools/xenmon/xenbaked.c:1150,1
    - Dst: qos_kill_thread
      Src: /src/xen/tools/xenmon/xenbaked.c:1154,1
    - Dst: qos_state_sleeping
      Src: /src/xen/tools/xenmon/xenbaked.c:1158,1
    - Dst: qos_state_runnable
      Src: /src/xen/tools/xenmon/xenbaked.c:1162,1
    - Dst: qos_state_sleeping
      Src: /src/xen/tools/xenmon/xenbaked.c:1166,1
    - Dst: qos_count_packets
      Src: /src/xen/tools/xenmon/xenbaked.c:1170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - cpu
    - r
    argTypes:
    - int
    - struct t_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1114
    functionDepth: 11
    functionLinenumber: 1114
    functionLinenumberEnd: 1180
    functionName: process_record
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.c
    functionUses: 6
    functionsReached:
    - qos_kill_thread
    - qos_switch_out
    - qos_state_runnable
    - indexof
    - qos_state_sleeping
    - qos_switch_in
    - qos_count_packets
    - log_event
    linkageType: ''
    returnType: int
    signature: int process_record(int cpu, struct t_rec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: QOS_ADD
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QOS_ADD(N,A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: QOS_INCR
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QOS_INCR(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: QOS_DECR
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QOS_DECR(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: ID
    functionSourceFile: /src/xen/tools/xenmon/xenbaked.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ID(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: INT_FIELD_WIDTH
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_FIELD_WIDTH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentop/xentop.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 252
    functionName: usage
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 32
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/xentop/xentop.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: version
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 32
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void version(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isendwin
      Src: /src/xen/tools/xentop/xentop.c:265,1
    - Dst: endwin
      Src: /src/xen/tools/xentop/xentop.c:266,1
    - Dst: xenstat_free_node
      Src: /src/xen/tools/xentop/xentop.c:268,1
    - Dst: xenstat_free_node
      Src: /src/xen/tools/xentop/xentop.c:270,1
    - Dst: xenstat_uninit
      Src: /src/xen/tools/xentop/xentop.c:272,1
    - Dst: free_pcpu_stats
      Src: /src/xen/tools/xentop/xentop.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: cleanup
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 20
    functionsReached:
    - isendwin
    - endwin
    - xenstat_uninit
    - free_pcpu_stats
    - xenstat_free_node
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isendwin
      Src: /src/xen/tools/xentop/xentop.c:280,1
    - Dst: endwin
      Src: /src/xen/tools/xentop/xentop.c:281,1
    - Dst: fprintf
      Src: /src/xen/tools/xentop/xentop.c:282,1
    - Dst: exit
      Src: /src/xen/tools/xentop/xentop.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 284
    functionName: fail
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 38
    functionsReached:
    - exit
    - endwin
    - fprintf
    - isendwin
    linkageType: ''
    returnType: void
    signature: void fail(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getyx
      Src: /src/xen/tools/xentop/xentop.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: current_row
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - getyx
    linkageType: ''
    returnType: int
    signature: int current_row(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getmaxyx
      Src: /src/xen/tools/xentop/xentop.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: lines
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 3
    functionsReached:
    - getmaxyx
    linkageType: ''
    returnType: int
    signature: int lines(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_row
      Src: /src/xen/tools/xentop/xentop.c:309,1
    - Dst: lines
      Src: /src/xen/tools/xentop/xentop.c:309,1
    - Dst: va_start
      Src: /src/xen/tools/xentop/xentop.c:310,1
    - Dst: vw_printw
      Src: /src/xen/tools/xentop/xentop.c:311,1
    - Dst: va_end
      Src: /src/xen/tools/xentop/xentop.c:312,1
    - Dst: va_start
      Src: /src/xen/tools/xentop/xentop.c:315,1
    - Dst: vprintf
      Src: /src/xen/tools/xentop/xentop.c:316,1
    - Dst: va_end
      Src: /src/xen/tools/xentop/xentop.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 319
    functionName: print
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 9
    functionsReached:
    - va_start
    - vprintf
    - vw_printw
    - lines
    - current_row
    - va_end
    linkageType: ''
    returnType: void
    signature: void print(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_pcpu_data
      Src: /src/xen/tools/xentop/xentop.c:327,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:328,1
    - Dst: get_pcpu_count
      Src: /src/xen/tools/xentop/xentop.c:332,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:335,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:336,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:337,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:338,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:341,1
    - Dst: get_pcpu_usage
      Src: /src/xen/tools/xentop/xentop.c:341,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: print_pcpu_stats_display
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - get_pcpu_count
    - print
    - has_pcpu_data
    - get_pcpu_usage
    linkageType: ''
    returnType: void
    signature: void print_pcpu_stats_display(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attron
      Src: /src/xen/tools/xentop/xentop.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: xentop_attron
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - attron
    linkageType: ''
    returnType: void
    signature: void xentop_attron(int attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attroff
      Src: /src/xen/tools/xentop/xentop.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: xentop_attroff
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - attroff
    linkageType: ''
    returnType: void
    signature: void xentop_attroff(int attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xentop_attron
      Src: /src/xen/tools/xentop/xentop.c:362,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:363,1
    - Dst: xentop_attroff
      Src: /src/xen/tools/xentop/xentop.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - attr
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 365
    functionName: attr_addstr
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xentop_attron
    - addstr
    - xentop_attroff
    linkageType: ''
    returnType: void
    signature: void attr_addstr(int attr, const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/tools/xentop/xentop.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: set_delay
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: void
    signature: void set_delay(const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - new_prompt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: set_prompt
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_prompt(const char *new_prompt, void (*func)(const char *))
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: set_prompt
      Src: /src/xen/tools/xentop/xentop.c:415,1
    - Dst: clear
      Src: /src/xen/tools/xentop/xentop.c:418,1
    - Dst: prompt_complete_func
      Src: /src/xen/tools/xentop/xentop.c:427,1
    - Dst: set_prompt
      Src: /src/xen/tools/xentop/xentop.c:428,1
    - Dst: set_prompt
      Src: /src/xen/tools/xentop/xentop.c:431,1
    - Dst: isprint
      Src: /src/xen/tools/xentop/xentop.c:439,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 447
    functionName: handle_key
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - prompt_complete_func
    - isprint
    - set_prompt
    - clear
    linkageType: ''
    returnType: int
    signature: int handle_key(int ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - unsigned long long
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: compare
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare(unsigned long long i1, unsigned long long i2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: compare_dbl
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_dbl(double d1, double d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain**
    - xenstat_domain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: compare_domains
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_domains(xenstat_domain **domain1, xenstat_domain **domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/xen/tools/xentop/xentop.c:481,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:481,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: compare_name
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - xenstat_domain_name
    linkageType: ''
    returnType: int
    signature: int compare_name(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:488,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:488,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:490,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: print_name
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_name
    linkageType: ''
    returnType: void
    signature: void print_name(xenstat_domain *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/xen/tools/xentop/xentop.c:511,1
    - Dst: get
      Src: /src/xen/tools/xentop/xentop.c:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 519
    functionName: compare_state
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int compare_state(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:526,1
    - Dst: get
      Src: /src/xen/tools/xentop/xentop.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 528
    functionName: print_state
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - get
    linkageType: ''
    returnType: void
    signature: void print_state(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:533,1
    - Dst: xenstat_domain_cpu_ns
      Src: /src/xen/tools/xentop/xentop.c:533,1
    - Dst: xenstat_domain_cpu_ns
      Src: /src/xen/tools/xentop/xentop.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: compare_cpu
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_cpu_ns
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_cpu(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:540,1
    - Dst: xenstat_domain_cpu_ns
      Src: /src/xen/tools/xentop/xentop.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: print_cpu
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_cpu_ns
    linkageType: ''
    returnType: void
    signature: void print_cpu(xenstat_domain *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_node_domain
      Src: /src/xen/tools/xentop/xentop.c:553,1
    - Dst: xenstat_domain_id
      Src: /src/xen/tools/xentop/xentop.c:553,1
    - Dst: xenstat_domain_cpu_ns
      Src: /src/xen/tools/xentop/xentop.c:564,1
    - Dst: xenstat_domain_cpu_ns
      Src: /src/xen/tools/xentop/xentop.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 566
    functionName: get_cpu_pct
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_id
    - xenstat_domain_cpu_ns
    - xenstat_node_domain
    linkageType: ''
    returnType: double
    signature: double get_cpu_pct(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_dbl
      Src: /src/xen/tools/xentop/xentop.c:570,1
    - Dst: get_cpu_pct
      Src: /src/xen/tools/xentop/xentop.c:570,1
    - Dst: get_cpu_pct
      Src: /src/xen/tools/xentop/xentop.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: compare_cpu_pct
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - get_cpu_pct
    - compare_dbl
    linkageType: ''
    returnType: int
    signature: int compare_cpu_pct(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:576,1
    - Dst: get_cpu_pct
      Src: /src/xen/tools/xentop/xentop.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: print_cpu_pct
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - get_cpu_pct
    linkageType: ''
    returnType: void
    signature: void print_cpu_pct(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:582,1
    - Dst: xenstat_domain_cur_mem
      Src: /src/xen/tools/xentop/xentop.c:582,1
    - Dst: xenstat_domain_cur_mem
      Src: /src/xen/tools/xentop/xentop.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 584
    functionName: compare_mem
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_cur_mem
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_mem(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:589,1
    - Dst: xenstat_domain_cur_mem
      Src: /src/xen/tools/xentop/xentop.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: print_mem
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 5
    functionsReached:
    - xenstat_domain_cur_mem
    - print
    linkageType: ''
    returnType: void
    signature: void print_mem(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:596,1
    - Dst: xenstat_domain_cur_mem
      Src: /src/xen/tools/xentop/xentop.c:596,1
    - Dst: xenstat_node_tot_mem
      Src: /src/xen/tools/xentop/xentop.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: print_mem_pct
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_cur_mem
    - print
    - xenstat_node_tot_mem
    linkageType: ''
    returnType: void
    signature: void print_mem_pct(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:603,1
    - Dst: xenstat_domain_max_mem
      Src: /src/xen/tools/xentop/xentop.c:603,1
    - Dst: xenstat_domain_max_mem
      Src: /src/xen/tools/xentop/xentop.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 605
    functionName: compare_maxmem
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_max_mem
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_maxmem(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_max_mem
      Src: /src/xen/tools/xentop/xentop.c:610,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:612,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: print_maxmem
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_max_mem
    linkageType: ''
    returnType: void
    signature: void print_maxmem(xenstat_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_max_mem
      Src: /src/xen/tools/xentop/xentop.c:621,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:622,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:624,1
    - Dst: xenstat_domain_max_mem
      Src: /src/xen/tools/xentop/xentop.c:624,1
    - Dst: xenstat_node_tot_mem
      Src: /src/xen/tools/xentop/xentop.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 626
    functionName: print_max_pct
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_max_mem
    - xenstat_node_tot_mem
    linkageType: ''
    returnType: void
    signature: void print_max_pct(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:632,1
    - Dst: xenstat_domain_num_vcpus
      Src: /src/xen/tools/xentop/xentop.c:632,1
    - Dst: xenstat_domain_num_vcpus
      Src: /src/xen/tools/xentop/xentop.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: compare_vcpus
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_num_vcpus
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vcpus(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:639,1
    - Dst: xenstat_domain_num_vcpus
      Src: /src/xen/tools/xentop/xentop.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: print_vcpus
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_num_vcpus
    - print
    linkageType: ''
    returnType: void
    signature: void print_vcpus(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:646,1
    - Dst: xenstat_domain_num_networks
      Src: /src/xen/tools/xentop/xentop.c:646,1
    - Dst: xenstat_domain_num_networks
      Src: /src/xen/tools/xentop/xentop.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: compare_nets
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_num_networks
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_nets(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:653,1
    - Dst: xenstat_domain_num_networks
      Src: /src/xen/tools/xentop/xentop.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: print_nets
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_num_networks
    linkageType: ''
    returnType: void
    signature: void print_nets(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:660,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:660,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: compare_net_tx
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_net_bytes
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_net_tx(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:667,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: print_net_tx
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - tot_net_bytes
    linkageType: ''
    returnType: void
    signature: void print_net_tx(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:674,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:674,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: compare_net_rx
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_net_bytes
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_net_rx(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:681,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: print_net_rx
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - tot_net_bytes
    linkageType: ''
    returnType: void
    signature: void print_net_rx(xenstat_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_num_networks
      Src: /src/xen/tools/xentop/xentop.c:695,1
    - Dst: xenstat_domain_network
      Src: /src/xen/tools/xentop/xentop.c:700,1
    - Dst: xenstat_network_rbytes
      Src: /src/xen/tools/xentop/xentop.c:702,1
    - Dst: xenstat_network_tbytes
      Src: /src/xen/tools/xentop/xentop.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - domain
    - rx_flag
    argTypes:
    - xenstat_domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 708
    functionName: tot_net_bytes
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 4
    functionsReached:
    - xenstat_network_rbytes
    - xenstat_domain_network
    - xenstat_domain_num_networks
    - xenstat_network_tbytes
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long tot_net_bytes(xenstat_domain *domain, int rx_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:714,1
    - Dst: xenstat_domain_num_vbds
      Src: /src/xen/tools/xentop/xentop.c:714,1
    - Dst: xenstat_domain_num_vbds
      Src: /src/xen/tools/xentop/xentop.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 716
    functionName: compare_vbds
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_num_vbds
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbds(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:721,1
    - Dst: xenstat_domain_num_vbds
      Src: /src/xen/tools/xentop/xentop.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 722
    functionName: print_vbds
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_num_vbds
    linkageType: ''
    returnType: void
    signature: void print_vbds(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:730,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:731,1
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 734
    functionName: compare_vbd_oo
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbd_oo(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:741,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:743,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 749
    functionName: print_vbd_oo
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - print
    linkageType: ''
    returnType: void
    signature: void print_vbd_oo(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:757,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:758,1
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 761
    functionName: compare_vbd_rd
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbd_rd(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:768,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:770,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 776
    functionName: print_vbd_rd
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - print
    linkageType: ''
    returnType: void
    signature: void print_vbd_rd(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:784,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:785,1
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: compare_vbd_wr
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbd_wr(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:795,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:797,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 803
    functionName: print_vbd_wr
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - print
    linkageType: ''
    returnType: void
    signature: void print_vbd_wr(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:811,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:812,1
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 815
    functionName: compare_vbd_rsect
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbd_rsect(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:822,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:824,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 830
    functionName: print_vbd_rsect
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - print
    linkageType: ''
    returnType: void
    signature: void print_vbd_rsect(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:838,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:839,1
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 842
    functionName: compare_vbd_wsect
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_vbd_wsect(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:849,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:851,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 857
    functionName: print_vbd_wsect
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - tot_vbd_reqs
    - print
    linkageType: ''
    returnType: void
    signature: void print_vbd_wsect(xenstat_domain *domain)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_num_vbds
      Src: /src/xen/tools/xentop/xentop.c:875,1
    - Dst: xenstat_domain_vbd
      Src: /src/xen/tools/xentop/xentop.c:880,1
    - Dst: xenstat_vbd_error
      Src: /src/xen/tools/xentop/xentop.c:881,1
    - Dst: xenstat_vbd_oo_reqs
      Src: /src/xen/tools/xentop/xentop.c:888,1
    - Dst: xenstat_vbd_rd_reqs
      Src: /src/xen/tools/xentop/xentop.c:891,1
    - Dst: xenstat_vbd_wr_reqs
      Src: /src/xen/tools/xentop/xentop.c:894,1
    - Dst: xenstat_vbd_rd_sects
      Src: /src/xen/tools/xentop/xentop.c:897,1
    - Dst: xenstat_vbd_wr_sects
      Src: /src/xen/tools/xentop/xentop.c:900,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - domain
    - flag
    - res
    argTypes:
    - xenstat_domain*
    - int
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 910
    functionName: tot_vbd_reqs
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 10
    functionsReached:
    - xenstat_vbd_rd_reqs
    - xenstat_vbd_oo_reqs
    - xenstat_vbd_wr_reqs
    - xenstat_vbd_wr_sects
    - xenstat_domain_vbd
    - xenstat_vbd_rd_sects
    - xenstat_domain_num_vbds
    - xenstat_vbd_error
    linkageType: ''
    returnType: bool
    signature: bool tot_vbd_reqs(xenstat_domain *domain, int flag, unsigned long long
      *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/xen/tools/xentop/xentop.c:915,1
    - Dst: xenstat_domain_ssid
      Src: /src/xen/tools/xentop/xentop.c:915,1
    - Dst: xenstat_domain_ssid
      Src: /src/xen/tools/xentop/xentop.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain1
    - domain2
    argTypes:
    - xenstat_domain*
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: compare_ssid
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_ssid
    - compare
    linkageType: ''
    returnType: int
    signature: int compare_ssid(xenstat_domain *domain1, xenstat_domain *domain2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:922,1
    - Dst: xenstat_domain_ssid
      Src: /src/xen/tools/xentop/xentop.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: print_ssid
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - print
    - xenstat_domain_ssid
    linkageType: ''
    returnType: void
    signature: void print_ssid(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: reset_field_widths
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reset_field_widths(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/tools/xentop/xentop.c:943,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:943,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:948,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:948,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:952,1
    - Dst: tot_net_bytes
      Src: /src/xen/tools/xentop/xentop.c:952,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:956,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:957,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:961,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:962,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:966,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:967,1
    - Dst: tot_vbd_reqs
      Src: /src/xen/tools/xentop/xentop.c:971,1
    - Dst: INT_FIELD_WIDTH
      Src: /src/xen/tools/xentop/xentop.c:972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 975
    functionName: adjust_field_widths
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - INT_FIELD_WIDTH
    - xenstat_domain_name
    - tot_net_bytes
    - strlen
    - tot_vbd_reqs
    linkageType: ''
    returnType: void
    signature: void adjust_field_widths(xenstat_domain *domain)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strftime
      Src: /src/xen/tools/xentop/xentop.c:995,1
    - Dst: localtime
      Src: /src/xen/tools/xentop/xentop.c:995,1
    - Dst: xenstat_node_num_domains
      Src: /src/xen/tools/xentop/xentop.c:996,1
    - Dst: xenstat_node_xen_version
      Src: /src/xen/tools/xentop/xentop.c:997,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:998,1
    - Dst: xenstat_node_domain_by_index
      Src: /src/xen/tools/xentop/xentop.c:1002,1
    - Dst: xenstat_domain_running
      Src: /src/xen/tools/xentop/xentop.c:1003,1
    - Dst: xenstat_domain_blocked
      Src: /src/xen/tools/xentop/xentop.c:1004,1
    - Dst: xenstat_domain_paused
      Src: /src/xen/tools/xentop/xentop.c:1005,1
    - Dst: xenstat_domain_shutdown
      Src: /src/xen/tools/xentop/xentop.c:1006,1
    - Dst: xenstat_domain_crashed
      Src: /src/xen/tools/xentop/xentop.c:1007,1
    - Dst: xenstat_domain_dying
      Src: /src/xen/tools/xentop/xentop.c:1008,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1011,1
    - Dst: xenstat_node_tot_mem
      Src: /src/xen/tools/xentop/xentop.c:1015,1
    - Dst: xenstat_node_free_mem
      Src: /src/xen/tools/xentop/xentop.c:1015,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1018,1
    - Dst: xenstat_node_tot_mem
      Src: /src/xen/tools/xentop/xentop.c:1019,1
    - Dst: xenstat_node_free_mem
      Src: /src/xen/tools/xentop/xentop.c:1020,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1022,1
    - Dst: xenstat_node_num_cpus
      Src: /src/xen/tools/xentop/xentop.c:1023,1
    - Dst: xenstat_node_cpu_hz
      Src: /src/xen/tools/xentop/xentop.c:1024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1025
    functionName: do_summary
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_domain_dying
    - xenstat_domain_blocked
    - xenstat_domain_paused
    - strftime
    - xenstat_domain_shutdown
    - xenstat_node_num_domains
    - print
    - xenstat_node_domain_by_index
    - xenstat_node_free_mem
    - xenstat_domain_crashed
    - localtime
    - xenstat_node_tot_mem
    - xenstat_node_cpu_hz
    - xenstat_node_xen_version
    - xenstat_node_num_cpus
    - xenstat_domain_running
    linkageType: ''
    returnType: void
    signature: void do_summary(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xentop_attron
      Src: /src/xen/tools/xentop/xentop.c:1033,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1036,1
    - Dst: xentop_attron
      Src: /src/xen/tools/xentop/xentop.c:1039,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1040,1
    - Dst: xentop_attroff
      Src: /src/xen/tools/xentop/xentop.c:1042,1
    - Dst: xentop_attroff
      Src: /src/xen/tools/xentop/xentop.c:1044,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1046
    functionName: do_header
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xentop_attron
    - print
    - xentop_attroff
    linkageType: ''
    returnType: void
    signature: void do_header(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: move
      Src: /src/xen/tools/xentop/xentop.c:1051,1
    - Dst: lines
      Src: /src/xen/tools/xentop/xentop.c:1051,1
    - Dst: printw
      Src: /src/xen/tools/xentop/xentop.c:1054,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1056,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1056,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1059,1
    - Dst: attr_addstr
      Src: /src/xen/tools/xentop/xentop.c:1060,1
    - Dst: COLOR_PAIR
      Src: /src/xen/tools/xentop/xentop.c:1060,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1061,1
    - Dst: attr_addstr
      Src: /src/xen/tools/xentop/xentop.c:1064,1
    - Dst: COLOR_PAIR
      Src: /src/xen/tools/xentop/xentop.c:1064,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1065,1
    - Dst: attr_addstr
      Src: /src/xen/tools/xentop/xentop.c:1066,1
    - Dst: COLOR_PAIR
      Src: /src/xen/tools/xentop/xentop.c:1066,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1067,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1070,1
    - Dst: attr_addstr
      Src: /src/xen/tools/xentop/xentop.c:1071,1
    - Dst: COLOR_PAIR
      Src: /src/xen/tools/xentop/xentop.c:1071,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1072,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1075,1
    - Dst: attr_addstr
      Src: /src/xen/tools/xentop/xentop.c:1076,1
    - Dst: COLOR_PAIR
      Src: /src/xen/tools/xentop/xentop.c:1076,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1077,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1080,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1080,1
    - Dst: addch
      Src: /src/xen/tools/xentop/xentop.c:1082,1
    - Dst: addstr
      Src: /src/xen/tools/xentop/xentop.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1084
    functionName: do_bottom_line
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - addstr
    - COLOR_PAIR
    - addch
    - move
    - printw
    - lines
    - attr_addstr
    linkageType: ''
    returnType: void
    signature: void do_bottom_line(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1092,1
    - Dst: xentop_attron
      Src: /src/xen/tools/xentop/xentop.c:1094,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1095,1
    - Dst: xentop_attroff
      Src: /src/xen/tools/xentop/xentop.c:1097,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1100
    functionName: do_domain
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xentop_attron
    - print
    - xentop_attroff
    linkageType: ''
    returnType: void
    signature: void do_domain(xenstat_domain *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1109,1
    - Dst: xenstat_domain_num_vcpus
      Src: /src/xen/tools/xentop/xentop.c:1111,1
    - Dst: xenstat_domain_vcpu
      Src: /src/xen/tools/xentop/xentop.c:1115,1
    - Dst: xenstat_vcpu_online
      Src: /src/xen/tools/xentop/xentop.c:1117,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1119,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1120,1
    - Dst: xenstat_vcpu_ns
      Src: /src/xen/tools/xentop/xentop.c:1121,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1125
    functionName: do_vcpu
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_vcpu_ns
    - xenstat_domain_num_vcpus
    - xenstat_domain_vcpu
    - print
    - xenstat_vcpu_online
    linkageType: ''
    returnType: void
    signature: void do_vcpu(xenstat_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_num_networks
      Src: /src/xen/tools/xentop/xentop.c:1135,1
    - Dst: xenstat_domain_network
      Src: /src/xen/tools/xentop/xentop.c:1140,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1142,1
    - Dst: xenstat_network_rbytes
      Src: /src/xen/tools/xentop/xentop.c:1144,1
    - Dst: xenstat_network_rpackets
      Src: /src/xen/tools/xentop/xentop.c:1145,1
    - Dst: xenstat_network_rerrs
      Src: /src/xen/tools/xentop/xentop.c:1146,1
    - Dst: xenstat_network_rdrop
      Src: /src/xen/tools/xentop/xentop.c:1147,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1149,1
    - Dst: xenstat_network_tbytes
      Src: /src/xen/tools/xentop/xentop.c:1150,1
    - Dst: xenstat_network_tpackets
      Src: /src/xen/tools/xentop/xentop.c:1151,1
    - Dst: xenstat_network_terrs
      Src: /src/xen/tools/xentop/xentop.c:1152,1
    - Dst: xenstat_network_tdrop
      Src: /src/xen/tools/xentop/xentop.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1155
    functionName: do_network
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - xenstat_network_rbytes
    - xenstat_network_rpackets
    - xenstat_network_rdrop
    - xenstat_network_tbytes
    - print
    - xenstat_domain_network
    - xenstat_network_tdrop
    - xenstat_network_tpackets
    - xenstat_network_terrs
    - xenstat_network_rerrs
    - xenstat_domain_num_networks
    linkageType: ''
    returnType: void
    signature: void do_network(xenstat_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_domain_num_vbds
      Src: /src/xen/tools/xentop/xentop.c:1172,1
    - Dst: xenstat_domain_vbd
      Src: /src/xen/tools/xentop/xentop.c:1177,1
    - Dst: snprintf
      Src: /src/xen/tools/xentop/xentop.c:1182,1
    - Dst: MAJOR
      Src: /src/xen/tools/xentop/xentop.c:1183,1
    - Dst: xenstat_vbd_dev
      Src: /src/xen/tools/xentop/xentop.c:1183,1
    - Dst: MINOR
      Src: /src/xen/tools/xentop/xentop.c:1184,1
    - Dst: xenstat_vbd_dev
      Src: /src/xen/tools/xentop/xentop.c:1184,1
    - Dst: xenstat_vbd_error
      Src: /src/xen/tools/xentop/xentop.c:1186,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1188,1
    - Dst: xenstat_vbd_type
      Src: /src/xen/tools/xentop/xentop.c:1189,1
    - Dst: xenstat_vbd_dev
      Src: /src/xen/tools/xentop/xentop.c:1190,1
    - Dst: print
      Src: /src/xen/tools/xentop/xentop.c:1195,1
    - Dst: xenstat_vbd_type
      Src: /src/xen/tools/xentop/xentop.c:1196,1
    - Dst: xenstat_vbd_dev
      Src: /src/xen/tools/xentop/xentop.c:1197,1
    - Dst: xenstat_vbd_oo_reqs
      Src: /src/xen/tools/xentop/xentop.c:1198,1
    - Dst: xenstat_vbd_rd_reqs
      Src: /src/xen/tools/xentop/xentop.c:1199,1
    - Dst: xenstat_vbd_wr_reqs
      Src: /src/xen/tools/xentop/xentop.c:1200,1
    - Dst: xenstat_vbd_rd_sects
      Src: /src/xen/tools/xentop/xentop.c:1201,1
    - Dst: xenstat_vbd_wr_sects
      Src: /src/xen/tools/xentop/xentop.c:1202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - domain
    argTypes:
    - xenstat_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1205
    functionName: do_vbd
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached:
    - snprintf
    - MAJOR
    - xenstat_vbd_rd_reqs
    - xenstat_vbd_oo_reqs
    - print
    - xenstat_vbd_dev
    - xenstat_vbd_type
    - xenstat_vbd_wr_reqs
    - xenstat_vbd_wr_sects
    - xenstat_domain_vbd
    - xenstat_vbd_rd_sects
    - xenstat_domain_num_vbds
    - xenstat_vbd_error
    - MINOR
    linkageType: ''
    returnType: void
    signature: void do_vbd(xenstat_domain *domain)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xenstat_free_node
      Src: /src/xen/tools/xentop/xentop.c:1216,1
    - Dst: xenstat_get_node
      Src: /src/xen/tools/xentop/xentop.c:1218,1
    - Dst: fail
      Src: /src/xen/tools/xentop/xentop.c:1220,1
    - Dst: do_summary
      Src: /src/xen/tools/xentop/xentop.c:1224,1
    - Dst: xenstat_node_num_domains
      Src: /src/xen/tools/xentop/xentop.c:1227,1
    - Dst: calloc
      Src: /src/xen/tools/xentop/xentop.c:1229,1
    - Dst: fail
      Src: /src/xen/tools/xentop/xentop.c:1231,1
    - Dst: xenstat_node_domain_by_index
      Src: /src/xen/tools/xentop/xentop.c:1234,1
    - Dst: strcmp
      Src: /src/xen/tools/xentop/xentop.c:1235,1
    - Dst: xenstat_domain_name
      Src: /src/xen/tools/xentop/xentop.c:1235,1
    - Dst: qsort
      Src: /src/xen/tools/xentop/xentop.c:1253,1
    - Dst: reset_field_widths
      Src: /src/xen/tools/xentop/xentop.c:1260,1
    - Dst: adjust_field_widths
      Src: /src/xen/tools/xentop/xentop.c:1262,1
    - Dst: current_row
      Src: /src/xen/tools/xentop/xentop.c:1266,1
    - Dst: lines
      Src: /src/xen/tools/xentop/xentop.c:1266,1
    - Dst: do_header
      Src: /src/xen/tools/xentop/xentop.c:1269,1
    - Dst: do_domain
      Src: /src/xen/tools/xentop/xentop.c:1270,1
    - Dst: do_vcpu
      Src: /src/xen/tools/xentop/xentop.c:1272,1
    - Dst: do_network
      Src: /src/xen/tools/xentop/xentop.c:1274,1
    - Dst: do_vbd
      Src: /src/xen/tools/xentop/xentop.c:1276,1
    - Dst: update_pcpu_stats
      Src: /src/xen/tools/xentop/xentop.c:1280,1
    - Dst: print_pcpu_stats_display
      Src: /src/xen/tools/xentop/xentop.c:1281,1
    - Dst: fail
      Src: /src/xen/tools/xentop/xentop.c:1283,1
    - Dst: do_bottom_line
      Src: /src/xen/tools/xentop/xentop.c:1288,1
    - Dst: free
      Src: /src/xen/tools/xentop/xentop.c:1290,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1291
    functionName: top
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 30
    functionsReached:
    - xenstat_domain_name
    - do_bottom_line
    - strcmp
    - update_pcpu_stats
    - do_domain
    - xenstat_free_node
    - print_pcpu_stats_display
    - do_header
    - calloc
    - do_vcpu
    - free
    - do_vbd
    - reset_field_widths
    - fail
    - xenstat_node_num_domains
    - xenstat_node_domain_by_index
    - adjust_field_widths
    - xenstat_get_node
    - do_network
    - qsort
    - do_summary
    - lines
    - current_row
    linkageType: ''
    returnType: void
    signature: void top(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1298
    functionName: signal_exit_handler
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signal_exit_handler(int sig)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: atexit
      Src: /src/xen/tools/xentop/xentop.c:1322,1
    - Dst: fail
      Src: /src/xen/tools/xentop/xentop.c:1323,1
    - Dst: getopt_long
      Src: /src/xen/tools/xentop/xentop.c:1325,1
    - Dst: usage
      Src: /src/xen/tools/xentop/xentop.c:1328,1
    - Dst: exit
      Src: /src/xen/tools/xentop/xentop.c:1329,1
    - Dst: usage
      Src: /src/xen/tools/xentop/xentop.c:1332,1
    - Dst: exit
      Src: /src/xen/tools/xentop/xentop.c:1333,1
    - Dst: version
      Src: /src/xen/tools/xentop/xentop.c:1335,1
    - Dst: exit
      Src: /src/xen/tools/xentop/xentop.c:1336,1
    - Dst: atoi
      Src: /src/xen/tools/xentop/xentop.c:1350,1
    - Dst: atoi
      Src: /src/xen/tools/xentop/xentop.c:1359,1
    - Dst: xenstat_init
      Src: /src/xen/tools/xentop/xentop.c:1372,1
    - Dst: fail
      Src: /src/xen/tools/xentop/xentop.c:1374,1
    - Dst: initscr
      Src: /src/xen/tools/xentop/xentop.c:1378,1
    - Dst: start_color
      Src: /src/xen/tools/xentop/xentop.c:1379,1
    - Dst: cbreak
      Src: /src/xen/tools/xentop/xentop.c:1380,1
    - Dst: noecho
      Src: /src/xen/tools/xentop/xentop.c:1381,1
    - Dst: nonl
      Src: /src/xen/tools/xentop/xentop.c:1382,1
    - Dst: keypad
      Src: /src/xen/tools/xentop/xentop.c:1383,1
    - Dst: halfdelay
      Src: /src/xen/tools/xentop/xentop.c:1384,1
    - Dst: use_default_colors
      Src: /src/xen/tools/xentop/xentop.c:1386,1
    - Dst: init_pair
      Src: /src/xen/tools/xentop/xentop.c:1388,1
    - Dst: gettimeofday
      Src: /src/xen/tools/xentop/xentop.c:1391,1
    - Dst: erase
      Src: /src/xen/tools/xentop/xentop.c:1393,1
    - Dst: top
      Src: /src/xen/tools/xentop/xentop.c:1394,1
    - Dst: refresh
      Src: /src/xen/tools/xentop/xentop.c:1396,1
    - Dst: getch
      Src: /src/xen/tools/xentop/xentop.c:1400,1
    - Dst: handle_key
      Src: /src/xen/tools/xentop/xentop.c:1401,1
    - Dst: sigemptyset
      Src: /src/xen/tools/xentop/xentop.c:1407,1
    - Dst: sigaction
      Src: /src/xen/tools/xentop/xentop.c:1408,1
    - Dst: sigaction
      Src: /src/xen/tools/xentop/xentop.c:1409,1
    - Dst: gettimeofday
      Src: /src/xen/tools/xentop/xentop.c:1412,1
    - Dst: top
      Src: /src/xen/tools/xentop/xentop.c:1413,1
    - Dst: fflush
      Src: /src/xen/tools/xentop/xentop.c:1414,1
    - Dst: sleep
      Src: /src/xen/tools/xentop/xentop.c:1418,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1425
    functionName: main
    functionSourceFile: /src/xen/tools/xentop/xentop.c
    functionUses: 142
    functionsReached:
    - cbreak
    - halfdelay
    - version
    - fflush
    - initscr
    - sigemptyset
    - init_pair
    - use_default_colors
    - fail
    - sigaction
    - xenstat_init
    - getopt_long
    - start_color
    - exit
    - atexit
    - top
    - noecho
    - sleep
    - handle_key
    - erase
    - keypad
    - getch
    - refresh
    - gettimeofday
    - atoi
    - usage
    - nonl
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/xentop/pcpu.c:28,1
    - Dst: strerror
      Src: /src/xen/tools/xentop/pcpu.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: report_pcpu_error
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 0
    functionsReached:
    - strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void report_pcpu_error(const char *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_open
      Src: /src/xen/tools/xentop/pcpu.c:40,1
    - Dst: report_pcpu_error
      Src: /src/xen/tools/xentop/pcpu.c:42,1
    - Dst: xc_getcpuinfo
      Src: /src/xen/tools/xentop/pcpu.c:47,1
    - Dst: report_pcpu_error
      Src: /src/xen/tools/xentop/pcpu.c:49,1
    - Dst: realloc
      Src: /src/xen/tools/xentop/pcpu.c:55,1
    - Dst: realloc
      Src: /src/xen/tools/xentop/pcpu.c:61,1
    - Dst: free_pcpu_stats
      Src: /src/xen/tools/xentop/pcpu.c:105,1
    - Dst: report_pcpu_error
      Src: /src/xen/tools/xentop/pcpu.c:107,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - now
    - delay_sec
    argTypes:
    - struct timeval*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 109
    functionName: update_pcpu_stats
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 1
    functionsReached:
    - xc_getcpuinfo
    - xc_interface_open
    - report_pcpu_error
    - free_pcpu_stats
    - realloc
    linkageType: ''
    returnType: int
    signature: int update_pcpu_stats(const struct timeval *now, unsigned int delay_sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: get_pcpu_count
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_pcpu_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - cpu_index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: get_pcpu_usage
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float get_pcpu_usage(int cpu_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: has_pcpu_data
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_pcpu_data(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_interface_close
      Src: /src/xen/tools/xentop/pcpu.c:133,1
    - Dst: free
      Src: /src/xen/tools/xentop/pcpu.c:136,1
    - Dst: free
      Src: /src/xen/tools/xentop/pcpu.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: free_pcpu_stats
    functionSourceFile: /src/xen/tools/xentop/pcpu.c
    functionUses: 2
    functionsReached:
    - xc_interface_close
    - free
    linkageType: ''
    returnType: void
    signature: void free_pcpu_stats(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: ASCII32
    functionSourceFile: /src/xen/tools/libacpi/acpi2_0.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII32(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: ASCII64
    functionSourceFile: /src/xen/tools/libacpi/acpi2_0.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCII64(a,b,c,d,e,f,g,h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: indent
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void indent(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/tools/libacpi/mk_dsdt.c:33,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:38,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:39,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:44,1
    - Dst: va_start
      Src: /src/xen/tools/libacpi/mk_dsdt.c:45,1
    - Dst: vprintf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:46,1
    - Dst: va_end
      Src: /src/xen/tools/libacpi/mk_dsdt.c:47,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: _stmt
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 0
    functionsReached:
    - va_start
    - vprintf
    - indent
    - printf
    - format
    - va_end
    linkageType: ''
    returnType: void
    signature: void _stmt(const char *name, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: stmt
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stmt(n, f, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - n
    - ','
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: push_block
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: push_block(n, f, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:67,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: pop_block
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 0
    functionsReached:
    - indent
    - printf
    linkageType: ''
    returnType: void
    signature: void pop_block(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/libacpi/mk_dsdt.c:94,1
    - Dst: strtol
      Src: /src/xen/tools/libacpi/mk_dsdt.c:104,1
    - Dst: strcmp
      Src: /src/xen/tools/libacpi/mk_dsdt.c:109,1
    - Dst: fprintf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:111,1
    - Dst: strcmp
      Src: /src/xen/tools/libacpi/mk_dsdt.c:118,1
    - Dst: strcmp
      Src: /src/xen/tools/libacpi/mk_dsdt.c:120,1
    - Dst: fprintf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:123,1
    - Dst: fprintf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:139,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:149,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:153,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:154,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:155,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:155,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:156,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:159,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:160,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:161,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:162,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:163,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:164,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:170,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:172,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:174,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:176,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:180,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:183,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:184,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:184,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:185,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:187,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:188,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:188,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:189,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:189,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:190,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:192,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:194,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:196,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:197,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:199,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:201,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:202,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:203,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:204,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:206,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:207,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:208,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:210,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:211,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:212,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:214,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:218,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:222,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:223,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:228,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:230,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:231,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:231,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:232,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:235,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:236,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:241,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:243,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:245,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:247,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:249,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:250,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:251,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:252,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:253,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:254,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:255,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:256,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:257,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:258,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:260,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:261,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:263,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:266,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:267,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:268,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:269,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:270,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:276,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:283,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:284,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:285,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:289,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:293,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:296,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:299,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:303,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:304,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:305,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:306,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:307,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:308,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:309,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:310,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:311,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:312,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:313,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:314,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:315,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:316,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:317,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:318,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:319,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:320,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:321,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:322,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:323,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:324,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:325,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:326,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:327,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:328,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:329,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:330,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:331,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:336,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:337,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:338,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:339,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:340,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:341,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:343,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:346,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:348,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:350,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:353,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:355,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:373,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:374,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:375,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:375,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:376,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:376,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:377,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:381,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:382,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:383,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:384,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:385,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:386,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:387,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:388,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:389,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:390,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:391,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:392,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:393,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:396,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:401,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:403,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:404,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:405,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:405,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:406,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:406,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:407,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:409,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:411,1
    - Dst: indent
      Src: /src/xen/tools/libacpi/mk_dsdt.c:412,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/mk_dsdt.c:412,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:413,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:415,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:417,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:418,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:419,1
    - Dst: push_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:420,1
    - Dst: stmt
      Src: /src/xen/tools/libacpi/mk_dsdt.c:421,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:422,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:424,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:426,1
    - Dst: pop_block
      Src: /src/xen/tools/libacpi/mk_dsdt.c:430,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 237
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 434
    functionName: main
    functionSourceFile: /src/xen/tools/libacpi/mk_dsdt.c
    functionUses: 142
    functionsReached:
    - indent
    - getopt_long
    - stmt
    - push_block
    - fprintf
    - pop_block
    - strtol
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: align16
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: align16(sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: fixed_strcpy
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fixed_strcpy(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - table
    - checksum_offset
    - length
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: set_checksum
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_checksum(\n    void *table, uint32_t checksum_offset, uint32_t
      length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:85,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:88,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:91,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:92,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:104,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:131,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:143,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:146,1
    - Dst: struct acpi_config*::lapic_id
      Src: /src/xen/tools/libacpi/build.c:151,1
    - Dst: test_bit
      Src: /src/xen/tools/libacpi/build.c:152,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:158,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 3
    argNames:
    - ctxt
    - config
    - info
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    - struct acpi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 164
    functionName: construct_madt
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - struct acpi_ctxt*::mem_ops::v2p
    - struct acpi_config*::lapic_id
    - set_checksum
    - fixed_strcpy
    - struct acpi_ctxt*::mem_ops::alloc
    - memset
    - test_bit
    linkageType: ''
    returnType: struct acpi_20_madt
    signature: "struct acpi_20_madt *construct_madt(struct acpi_ctxt *ctxt,\n                                           const
      struct acpi_config *config,\n                                           struct
      acpi_info *info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:171,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:174,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:177,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:178,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ctxt
    - config
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 188
    functionName: construct_hpet
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - memset
    - struct acpi_ctxt*::mem_ops::alloc
    - set_checksum
    - fixed_strcpy
    linkageType: ''
    returnType: struct acpi_20_hpet
    signature: "struct acpi_20_hpet *construct_hpet(struct acpi_ctxt *ctxt,\n                                           const
      struct acpi_config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:195,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:198,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctxt
    - config
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 204
    functionName: construct_waet
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - set_checksum
    - struct acpi_ctxt*::mem_ops::alloc
    - memcpy
    linkageType: ''
    returnType: struct acpi_20_waet
    signature: "struct acpi_20_waet *construct_waet(struct acpi_ctxt *ctxt,\n                                           const
      struct acpi_config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:219,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:223,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:226,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:227,1
    - Dst: struct acpi_config*::lapic_id
      Src: /src/xen/tools/libacpi/build.c:239,1
    - Dst: ASSERT
      Src: /src/xen/tools/libacpi/build.c:257,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - ctxt
    - config
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 263
    functionName: construct_srat
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - struct acpi_config*::lapic_id
    - set_checksum
    - fixed_strcpy
    - struct acpi_ctxt*::mem_ops::alloc
    - ASSERT
    - memset
    linkageType: ''
    returnType: struct acpi_20_srat
    signature: "struct acpi_20_srat *construct_srat(struct acpi_ctxt *ctxt,\n                                           const
      struct acpi_config *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:274,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:278,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:281,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:282,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - ctxt
    - config
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 296
    functionName: construct_slit
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - memset
    - struct acpi_ctxt*::mem_ops::alloc
    - set_checksum
    - fixed_strcpy
    linkageType: ''
    returnType: struct acpi_20_slit
    signature: "struct acpi_20_slit *construct_slit(struct acpi_ctxt *ctxt,\n                                           const
      struct acpi_config *config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:322,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:325,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - ctxt
    - table_ptrs
    - nr_tables
    - config
    argTypes:
    - struct acpi_ctxt*
    - unsigned long*
    - int
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 333
    functionName: construct_passthrough_tables
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - struct acpi_ctxt*::mem_ops::v2p
    - struct acpi_ctxt*::mem_ops::alloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int construct_passthrough_tables(struct acpi_ctxt *ctxt,\n                                        unsigned
      long *table_ptrs,\n                                        int nr_tables,\n
      \                                       struct acpi_config *config)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: construct_madt
      Src: /src/xen/tools/libacpi/build.c:352,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:354,1
    - Dst: construct_hpet
      Src: /src/xen/tools/libacpi/build.c:360,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:362,1
    - Dst: construct_waet
      Src: /src/xen/tools/libacpi/build.c:368,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:371,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:376,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:378,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:379,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:384,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:386,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:387,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:392,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:394,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:395,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:400,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:402,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:403,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:415,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:417,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:418,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:420,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:422,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:423,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:428,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:429,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:434,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:437,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:439,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:440,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:455,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:457,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:458,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:460,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:462,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:463,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:468,1
    - Dst: fixed_strcpy
      Src: /src/xen/tools/libacpi/build.c:469,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:479,1
    - Dst: construct_srat
      Src: /src/xen/tools/libacpi/build.c:489,1
    - Dst: construct_slit
      Src: /src/xen/tools/libacpi/build.c:490,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:493,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/build.c:495,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:497,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/build.c:499,1
    - Dst: construct_passthrough_tables
      Src: /src/xen/tools/libacpi/build.c:503,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 119
    argCount: 4
    argNames:
    - ctxt
    - table_ptrs
    - config
    - info
    argTypes:
    - struct acpi_ctxt*
    - unsigned long*
    - struct acpi_config*
    - struct acpi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 508
    functionName: construct_secondary_tables
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - struct acpi_ctxt*::mem_ops::v2p
    - construct_hpet
    - construct_madt
    - construct_passthrough_tables
    - set_checksum
    - construct_waet
    - construct_srat
    - fixed_strcpy
    - construct_slit
    - struct acpi_ctxt*::mem_ops::alloc
    - printf
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int construct_secondary_tables(struct acpi_ctxt *ctxt,\n                                      unsigned
      long *table_ptrs,\n                                      struct acpi_config
      *config,\n                                      struct acpi_info *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:530,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:533,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ctxt
    - config
    - info
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    - struct acpi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 540
    functionName: new_vm_gid
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 0
    functionsReached:
    - struct acpi_ctxt*::mem_ops::v2p
    - struct acpi_ctxt*::mem_ops::alloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int new_vm_gid(struct acpi_ctxt *ctxt,\n                      struct
      acpi_config *config,\n                      struct acpi_info *info)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:557,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:574,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:576,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:588,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:590,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:594,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:596,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:607,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:609,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:612,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:613,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:614,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/build.c:631,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:634,1
    - Dst: memset
      Src: /src/xen/tools/libacpi/build.c:639,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:643,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:650,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:651,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:652,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:653,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/build.c:662,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:667,1
    - Dst: construct_secondary_tables
      Src: /src/xen/tools/libacpi/build.c:669,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:674,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:678,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:679,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:683,1
    - Dst: struct acpi_ctxt*::mem_ops::alloc
      Src: /src/xen/tools/libacpi/build.c:687,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:691,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:692,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:696,1
    - Dst: memcpy
      Src: /src/xen/tools/libacpi/build.c:705,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:706,1
    - Dst: struct acpi_ctxt*::mem_ops::v2p
      Src: /src/xen/tools/libacpi/build.c:707,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:708,1
    - Dst: set_checksum
      Src: /src/xen/tools/libacpi/build.c:711,1
    - Dst: new_vm_gid
      Src: /src/xen/tools/libacpi/build.c:715,1
    - Dst: printf
      Src: /src/xen/tools/libacpi/build.c:721,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 119
    argCount: 2
    argNames:
    - ctxt
    - config
    argTypes:
    - struct acpi_ctxt*
    - struct acpi_config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 723
    functionName: acpi_build_tables
    functionSourceFile: /src/xen/tools/libacpi/build.c
    functionUses: 5
    functionsReached:
    - struct acpi_ctxt*::mem_ops::v2p
    - set_checksum
    - struct acpi_ctxt*::mem_ops::alloc
    - construct_secondary_tables
    - printf
    - new_vm_gid
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_build_tables(struct acpi_ctxt *ctxt, struct acpi_config *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: mb_to_bytes
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mb_to_bytes(int mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: usage
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 34
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: mb_to_bytes
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:82,1
    - Dst: mb_to_bytes
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:83,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:99,1
    - Dst: open
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:102,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:105,1
    - Dst: xc_flask_context_to_sid
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:111,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:111,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:114,1
    - Dst: xc_dom_allocate
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:119,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:122,1
    - Dst: xc_dom_kernel_file
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:127,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:130,1
    - Dst: xc_dom_module_file
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:136,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:139,1
    - Dst: xc_dom_boot_xen_init
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:144,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:147,1
    - Dst: xtl_stdiostream_set_minlevel
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:157,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:158,1
    - Dst: xtl_stdiostream_set_minlevel
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:159,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:163,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:168,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:171,1
    - Dst: GB
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:182,1
    - Dst: GB
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:186,1
    - Dst: GB
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:197,1
    - Dst: xc_domain_create
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:203,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:206,1
    - Dst: xc_domain_max_vcpus
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:209,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:212,1
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:215,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:218,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:221,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:224,1
    - Dst: xc_domain_set_memmap_limit
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:230,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:233,1
    - Dst: ioctl
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:238,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:241,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:246,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:248,1
    - Dst: xc_dom_strdup
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:251,1
    - Dst: xc_evtchn_alloc_unbound
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:254,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:257,1
    - Dst: xc_dom_mem_init
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:262,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:265,1
    - Dst: xc_dom_boot_mem_init
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:268,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:271,1
    - Dst: xc_domain_set_memory_map
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:276,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:280,1
    - Dst: xc_dom_build_image
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:284,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:287,1
    - Dst: xc_dom_boot_image
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:290,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:293,1
    - Dst: xc_dom_gnttab_init
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:296,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:299,1
    - Dst: xc_domain_set_virq_handler
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:303,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:306,1
    - Dst: xc_domain_unpause
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:309,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:312,1
    - Dst: xc_dom_p2m
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:318,1
    - Dst: xc_dom_release
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:323,1
    - Dst: close
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:325,1
    - Dst: xc_domain_destroy
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:329,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 190
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 332
    functionName: build
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 2
    functionsReached:
    - snprintf
    - xc_domain_set_virq_handler
    - xc_dom_boot_xen_init
    - xc_domain_max_vcpus
    - xc_flask_context_to_sid
    - xtl_stdiostream_set_minlevel
    - strlen
    - xc_evtchn_alloc_unbound
    - xc_dom_mem_init
    - xc_dom_gnttab_init
    - ioctl
    - xc_domain_create
    - xc_domain_setmaxmem
    - xc_domain_set_memory_map
    - xc_dom_kernel_file
    - xc_dom_release
    - GB
    - XEN_DOMCTL_GRANT_version
    - xc_dom_p2m
    - xc_dom_boot_image
    - mb_to_bytes
    - xc_dom_strdup
    - close
    - xc_domain_set_memmap_limit
    - xc_dom_module_file
    - open
    - fprintf
    - xc_dom_parse_image
    - xc_domain_destroy
    - xc_dom_allocate
    - xc_dom_build_image
    - xc_dom_boot_mem_init
    - xc_domain_unpause
    linkageType: ''
    returnType: int
    signature: int build(xc_interface *xch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_getinfolist
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:342,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:342,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - xch
    argTypes:
    - xc_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 358
    functionName: check_domain
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 2
    functionsReached:
    - xc_domain_getinfolist
    - ARRAY_SIZE
    - fprintf
    linkageType: ''
    returnType: int
    signature: int check_domain(xc_interface *xch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xc_physinfo
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:370,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:373,1
    - Dst: strtoul
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:380,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:412,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 2
    argNames:
    - xch
    - str
    argTypes:
    - xc_interface*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 414
    functionName: parse_maxmem
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 0
    functionsReached:
    - xc_physinfo
    - fprintf
    - strtoul
    linkageType: ''
    returnType: int
    signature: int parse_maxmem(xc_interface *xch, char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xs_write
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:418,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:418,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - xsh
    - path
    - val
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: do_xs_write
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 0
    functionsReached:
    - xs_write
    - fprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void do_xs_write(struct xs_handle *xsh, char *path, char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:426,1
    - Dst: do_xs_write
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - xsh
    - path
    - val
    argTypes:
    - struct xs_handle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: do_xs_write_dom
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 0
    functionsReached:
    - snprintf
    - do_xs_write
    linkageType: ''
    returnType: void
    signature: void do_xs_write_dom(struct xs_handle *xsh, char *path, char *val)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:446,1
    - Dst: strtol
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:454,1
    - Dst: usage
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:476,1
    - Dst: usage
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:483,1
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:487,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:488,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:491,1
    - Dst: parse_maxmem
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:498,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:501,1
    - Dst: check_domain
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:507,1
    - Dst: build
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:510,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:512,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:514,1
    - Dst: gen_stub_json_config
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:522,1
    - Dst: xs_open
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:529,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:532,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:536,1
    - Dst: do_xs_write
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:537,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:538,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:539,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:540,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:541,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:543,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:544,1
    - Dst: xs_close
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:545,1
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:547,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:549,1
    - Dst: libxl_console_add_xenstore
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:553,1
    - Dst: libxl_device_9pfs_add
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:555,1
    - Dst: libxl_ctx_free
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:556,1
    - Dst: creat
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:558,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:561,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:565,1
    - Dst: write
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:566,1
    - Dst: close
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:567,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:570,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/helpers/init-xenstore-domain.c:580,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 119
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 430
    functionDepth: 8
    functionLinenumber: 430
    functionLinenumberEnd: 583
    functionName: main
    functionSourceFile: /src/xen/tools/helpers/init-xenstore-domain.c
    functionUses: 143
    functionsReached:
    - snprintf
    - libxl_console_add_xenstore
    - xtl_createlogger_stdiostream
    - libxl_ctx_free
    - xc_interface_open
    - write
    - creat
    - xs_open
    - xtl_logger_destroy
    - close
    - gen_stub_json_config
    - check_domain
    - do_xs_write_dom
    - parse_maxmem
    - libxl_device_9pfs_add
    - getopt_long
    - fprintf
    - strtol
    - xs_close
    - libxl_ctx_alloc
    - usage
    - xc_interface_close
    - do_xs_write
    - build
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xc_domain_setmaxmem
      Src: /src/xen/tools/helpers/init-dom0less.c:29,1
    - Dst: xc_domain_populate_physmap_exact
      Src: /src/xen/tools/helpers/init-dom0less.c:34,1
    - Dst: xc_clear_domain_page
      Src: /src/xen/tools/helpers/init-dom0less.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - xch
    - info
    - xenstore_pfn
    argTypes:
    - struct xc_interface_core*
    - libxl_dominfo*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 44
    functionName: alloc_xs_page
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - xc_domain_setmaxmem
    - xc_clear_domain_page
    - xc_domain_populate_physmap_exact
    linkageType: ''
    returnType: int
    signature: "int alloc_xs_page(struct xc_interface_core *xch,\n                         libxl_dominfo
      *info,\n                         uint64_t *xenstore_pfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/helpers/init-dom0less.c:51,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xch
    - info
    - xenstore_pfn
    argTypes:
    - struct xc_interface_core*
    - libxl_dominfo*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: get_xs_page
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - xc_hvm_param_get
    - printf
    linkageType: ''
    returnType: int
    signature: "int get_xs_page(struct xc_interface_core *xch, libxl_dominfo *info,\n
      \                      uint64_t *xenstore_pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:72,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/init-dom0less.c:76,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-dom0less.c:76,1
    - Dst: xs_set_permissions
      Src: /src/xen/tools/helpers/init-dom0less.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - xsh
    - t
    - domid
    - path
    - val
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - domid_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 79
    functionName: do_xs_write_dom
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 1
    functionsReached:
    - snprintf
    - xs_set_permissions
    - strlen
    - xs_write
    linkageType: ''
    returnType: bool
    signature: "bool do_xs_write_dom(struct xs_handle *xsh, xs_transaction_t t,\n
      \                           domid_t domid, char *path, char *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:87,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/init-dom0less.c:91,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-dom0less.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - xsh
    - t
    - domid
    - path
    - val
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - domid_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: do_xs_write_libxl
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - xs_write
    linkageType: ''
    returnType: bool
    signature: "bool do_xs_write_libxl(struct xs_handle *xsh, xs_transaction_t t,\n
      \                             domid_t domid, char *path, char *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:100,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/helpers/init-dom0less.c:101,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/init-dom0less.c:104,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-dom0less.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - xsh
    - t
    - uuid
    - path
    - val
    argTypes:
    - struct xs_handle*
    - xs_transaction_t
    - libxl_uuid
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: do_xs_write_vm
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - snprintf
    - LIBXL_UUID_BYTES
    - strlen
    - xs_write
    linkageType: ''
    returnType: bool
    signature: "bool do_xs_write_vm(struct xs_handle *xsh, xs_transaction_t t,\n                           libxl_uuid
      uuid, char *path, char *val)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/tools/helpers/init-dom0less.c:135,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:137,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:143,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:146,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:149,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/helpers/init-dom0less.c:149,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:152,1
    - Dst: LIBXL_UUID_BYTES
      Src: /src/xen/tools/helpers/init-dom0less.c:153,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:156,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:159,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:162,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:165,1
    - Dst: xs_transaction_start
      Src: /src/xen/tools/helpers/init-dom0less.c:170,1
    - Dst: do_xs_write_vm
      Src: /src/xen/tools/helpers/init-dom0less.c:176,1
    - Dst: do_xs_write_vm
      Src: /src/xen/tools/helpers/init-dom0less.c:177,1
    - Dst: do_xs_write_vm
      Src: /src/xen/tools/helpers/init-dom0less.c:178,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:181,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:182,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:183,1
    - Dst: snprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:185,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:189,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:194,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:195,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:196,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:197,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:199,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:200,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:201,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:203,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:204,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:205,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:206,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:207,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:208,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:209,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:210,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:212,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:213,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:214,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:215,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:216,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:218,1
    - Dst: do_xs_write_dom
      Src: /src/xen/tools/helpers/init-dom0less.c:219,1
    - Dst: do_xs_write_libxl
      Src: /src/xen/tools/helpers/init-dom0less.c:221,1
    - Dst: do_xs_write_libxl
      Src: /src/xen/tools/helpers/init-dom0less.c:222,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/helpers/init-dom0less.c:224,1
    - Dst: xs_transaction_end
      Src: /src/xen/tools/helpers/init-dom0less.c:234,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 148
    argCount: 5
    argNames:
    - xsh
    - info
    - uuid
    - xenstore_pfn
    - xenstore_port
    argTypes:
    - struct xs_handle*
    - libxl_dominfo*
    - libxl_uuid
    - uint64_t
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 114
    functionDepth: 6
    functionLinenumber: 114
    functionLinenumberEnd: 236
    functionName: create_xenstore
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - snprintf
    - xs_transaction_start
    - xs_transaction_end
    - LIBXL_UUID_BYTES
    - do_xs_write_vm
    - do_xs_write_libxl
    - do_xs_write_dom
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: "int create_xenstore(struct xs_handle *xsh,\n                           libxl_dominfo
      *info, libxl_uuid uuid,\n                           uint64_t xenstore_pfn,\n
      \                          evtchn_port_t xenstore_port)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:247,1
    - Dst: xc_hvm_param_get
      Src: /src/xen/tools/helpers/init-dom0less.c:249,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:252,1
    - Dst: get_xs_page
      Src: /src/xen/tools/helpers/init-dom0less.c:261,1
    - Dst: alloc_xs_page
      Src: /src/xen/tools/helpers/init-dom0less.c:267,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:269,1
    - Dst: xenforeignmemory_map
      Src: /src/xen/tools/helpers/init-dom0less.c:273,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:276,1
    - Dst: xenforeignmemory_unmap
      Src: /src/xen/tools/helpers/init-dom0less.c:281,1
    - Dst: xc_hvm_param_set
      Src: /src/xen/tools/helpers/init-dom0less.c:284,1
    - Dst: xc_dom_gnttab_seed
      Src: /src/xen/tools/helpers/init-dom0less.c:289,1
    - Dst: err
      Src: /src/xen/tools/helpers/init-dom0less.c:292,1
    - Dst: libxl_uuid_generate
      Src: /src/xen/tools/helpers/init-dom0less.c:295,1
    - Dst: xc_domain_sethandle
      Src: /src/xen/tools/helpers/init-dom0less.c:296,1
    - Dst: libxl_uuid_bytearray
      Src: /src/xen/tools/helpers/init-dom0less.c:296,1
    - Dst: gen_stub_json_config
      Src: /src/xen/tools/helpers/init-dom0less.c:298,1
    - Dst: err
      Src: /src/xen/tools/helpers/init-dom0less.c:300,1
    - Dst: create_xenstore
      Src: /src/xen/tools/helpers/init-dom0less.c:302,1
    - Dst: err
      Src: /src/xen/tools/helpers/init-dom0less.c:304,1
    - Dst: xs_introduce_domain
      Src: /src/xen/tools/helpers/init-dom0less.c:306,1
    - Dst: err
      Src: /src/xen/tools/helpers/init-dom0less.c:308,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - xsh
    - xch
    - xfh
    - info
    argTypes:
    - struct xs_handle*
    - struct xc_interface_core*
    - xenforeignmemory_handle*
    - libxl_dominfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 310
    functionName: init_domain
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 3
    functionsReached:
    - xc_hvm_param_set
    - err
    - xs_introduce_domain
    - xc_hvm_param_get
    - get_xs_page
    - libxl_uuid_generate
    - alloc_xs_page
    - gen_stub_json_config
    - xenforeignmemory_map
    - printf
    - xc_domain_sethandle
    - libxl_uuid_bytearray
    - xenforeignmemory_unmap
    - create_xenstore
    - xc_dom_gnttab_seed
    linkageType: ''
    returnType: int
    signature: "int init_domain(struct xs_handle *xsh,\n                       struct
      xc_interface_core *xch,\n                       xenforeignmemory_handle *xfh,\n
      \                      libxl_dominfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xs_is_domain_introduced
      Src: /src/xen/tools/helpers/init-dom0less.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xsh
    - domid
    argTypes:
    - struct xs_handle*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 7
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: domain_exists
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 0
    functionsReached:
    - xs_is_domain_introduced
    linkageType: ''
    returnType: bool
    signature: bool domain_exists(struct xs_handle *xsh, int domid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xs_open
      Src: /src/xen/tools/helpers/init-dom0less.c:328,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/helpers/init-dom0less.c:329,1
    - Dst: xenforeignmemory_open
      Src: /src/xen/tools/helpers/init-dom0less.c:330,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:332,1
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/helpers/init-dom0less.c:337,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:339,1
    - Dst: libxl_list_domain
      Src: /src/xen/tools/helpers/init-dom0less.c:343,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:345,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:357,1
    - Dst: domain_exists
      Src: /src/xen/tools/helpers/init-dom0less.c:358,1
    - Dst: init_domain
      Src: /src/xen/tools/helpers/init-dom0less.c:359,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom0less.c:361,1
    - Dst: printf
      Src: /src/xen/tools/helpers/init-dom0less.c:365,1
    - Dst: libxl_dominfo_list_free
      Src: /src/xen/tools/helpers/init-dom0less.c:369,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 318
    functionDepth: 8
    functionLinenumber: 318
    functionLinenumberEnd: 371
    functionName: main
    functionSourceFile: /src/xen/tools/helpers/init-dom0less.c
    functionUses: 145
    functionsReached:
    - libxl_dominfo_list_free
    - xs_open
    - libxl_ctx_alloc
    - domain_exists
    - xenforeignmemory_open
    - xc_interface_open
    - fprintf
    - printf
    - init_domain
    - libxl_list_domain
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/helpers/init-dom-json.c:19,1
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/helpers/init-dom-json.c:23,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom-json.c:25,1
    - Dst: libxl_domain_config_init
      Src: /src/xen/tools/helpers/init-dom-json.c:29,1
    - Dst: libxl_dominfo_init
      Src: /src/xen/tools/helpers/init-dom-json.c:31,1
    - Dst: libxl_domain_info
      Src: /src/xen/tools/helpers/init-dom-json.c:32,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom-json.c:33,1
    - Dst: libxl_domain_build_info_init_type
      Src: /src/xen/tools/helpers/init-dom-json.c:40,1
    - Dst: libxl_uuid_is_nil
      Src: /src/xen/tools/helpers/init-dom-json.c:43,1
    - Dst: libxl_uuid_copy
      Src: /src/xen/tools/helpers/init-dom-json.c:44,1
    - Dst: libxl_domain_config_to_json
      Src: /src/xen/tools/helpers/init-dom-json.c:46,1
    - Dst: libxl_userdata_store
      Src: /src/xen/tools/helpers/init-dom-json.c:50,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/init-dom-json.c:52,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/init-dom-json.c:54,1
    - Dst: libxl_dominfo_dispose
      Src: /src/xen/tools/helpers/init-dom-json.c:57,1
    - Dst: libxl_domain_config_dispose
      Src: /src/xen/tools/helpers/init-dom-json.c:58,1
    - Dst: free
      Src: /src/xen/tools/helpers/init-dom-json.c:59,1
    - Dst: libxl_ctx_free
      Src: /src/xen/tools/helpers/init-dom-json.c:60,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/helpers/init-dom-json.c:62,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - domid
    - uuid
    argTypes:
    - uint32_t
    - libxl_uuid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 10
    functionDepth: 8
    functionLinenumber: 10
    functionLinenumberEnd: 64
    functionName: gen_stub_json_config
    functionSourceFile: /src/xen/tools/helpers/init-dom-json.c
    functionUses: 2
    functionsReached:
    - libxl_ctx_alloc
    - libxl_domain_config_to_json
    - xtl_logger_destroy
    - libxl_dominfo_init
    - xtl_createlogger_stdiostream
    - libxl_domain_config_init
    - libxl_domain_info
    - libxl_uuid_is_nil
    - libxl_dominfo_dispose
    - free
    - libxl_ctx_free
    - libxl_domain_config_dispose
    - fprintf
    - strlen
    - libxl_domain_build_info_init_type
    - libxl_uuid_copy
    - libxl_userdata_store
    linkageType: ''
    returnType: int
    signature: int gen_stub_json_config(uint32_t domid, libxl_uuid *uuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xtl_createlogger_stdiostream
      Src: /src/xen/tools/helpers/xen-init-dom0.c:23,1
    - Dst: libxl_ctx_alloc
      Src: /src/xen/tools/helpers/xen-init-dom0.c:27,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:29,1
    - Dst: libxl_clear_domid_history
      Src: /src/xen/tools/helpers/xen-init-dom0.c:33,1
    - Dst: libxl_ctx_free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:36,1
    - Dst: xtl_logger_destroy
      Src: /src/xen/tools/helpers/xen-init-dom0.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 41
    functionName: clear_domid_history
    functionSourceFile: /src/xen/tools/helpers/xen-init-dom0.c
    functionUses: 1
    functionsReached:
    - libxl_ctx_alloc
    - xtl_logger_destroy
    - xtl_createlogger_stdiostream
    - libxl_ctx_free
    - libxl_clear_domid_history
    - fprintf
    linkageType: ''
    returnType: int
    signature: int clear_domid_history(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:56,1
    - Dst: xs_open
      Src: /src/xen/tools/helpers/xen-init-dom0.c:61,1
    - Dst: perror
      Src: /src/xen/tools/helpers/xen-init-dom0.c:63,1
    - Dst: xc_interface_open
      Src: /src/xen/tools/helpers/xen-init-dom0.c:68,1
    - Dst: perror
      Src: /src/xen/tools/helpers/xen-init-dom0.c:70,1
    - Dst: xs_read
      Src: /src/xen/tools/helpers/xen-init-dom0.c:76,1
    - Dst: xs_read
      Src: /src/xen/tools/helpers/xen-init-dom0.c:77,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:79,1
    - Dst: libxl_uuid_clear
      Src: /src/xen/tools/helpers/xen-init-dom0.c:84,1
    - Dst: libxl_uuid_from_string
      Src: /src/xen/tools/helpers/xen-init-dom0.c:87,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:88,1
    - Dst: libxl_uuid_is_nil
      Src: /src/xen/tools/helpers/xen-init-dom0.c:93,1
    - Dst: xc_domain_sethandle
      Src: /src/xen/tools/helpers/xen-init-dom0.c:94,1
    - Dst: libxl_uuid_bytearray
      Src: /src/xen/tools/helpers/xen-init-dom0.c:94,1
    - Dst: perror
      Src: /src/xen/tools/helpers/xen-init-dom0.c:95,1
    - Dst: gen_stub_json_config
      Src: /src/xen/tools/helpers/xen-init-dom0.c:100,1
    - Dst: clear_domid_history
      Src: /src/xen/tools/helpers/xen-init-dom0.c:104,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/xen-init-dom0.c:109,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/xen-init-dom0.c:109,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:110,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/xen-init-dom0.c:115,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/xen-init-dom0.c:116,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:117,1
    - Dst: xc_cpupool_getinfo
      Src: /src/xen/tools/helpers/xen-init-dom0.c:124,1
    - Dst: xc_cpupool_infofree
      Src: /src/xen/tools/helpers/xen-init-dom0.c:128,1
    - Dst: asprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:129,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:130,1
    - Dst: asprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:134,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:135,1
    - Dst: xs_write
      Src: /src/xen/tools/helpers/xen-init-dom0.c:140,1
    - Dst: strlen
      Src: /src/xen/tools/helpers/xen-init-dom0.c:141,1
    - Dst: fprintf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:142,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:146,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:147,1
    - Dst: printf
      Src: /src/xen/tools/helpers/xen-init-dom0.c:152,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:155,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:156,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:157,1
    - Dst: free
      Src: /src/xen/tools/helpers/xen-init-dom0.c:158,1
    - Dst: xs_close
      Src: /src/xen/tools/helpers/xen-init-dom0.c:159,1
    - Dst: xc_interface_close
      Src: /src/xen/tools/helpers/xen-init-dom0.c:160,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 43
    functionDepth: 9
    functionLinenumber: 43
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/xen/tools/helpers/xen-init-dom0.c
    functionUses: 145
    functionsReached:
    - xc_cpupool_getinfo
    - xs_read
    - xc_interface_open
    - strlen
    - xs_open
    - free
    - gen_stub_json_config
    - xc_domain_sethandle
    - libxl_uuid_bytearray
    - clear_domid_history
    - perror
    - xc_cpupool_infofree
    - xs_write
    - libxl_uuid_clear
    - libxl_uuid_from_string
    - fprintf
    - printf
    - xs_close
    - asprintf
    - libxl_uuid_is_nil
    - xc_interface_close
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: EX_FIELD
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EX_FIELD(ptr, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EX_FIELD
      Src: /src/xen/xen/arch/x86/extable.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct exception_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: ex_addr
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - EX_FIELD
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ex_addr(const struct exception_table_entry *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EX_FIELD
      Src: /src/xen/xen/arch/x86/extable.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct exception_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: ex_cont
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - EX_FIELD
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ex_cont(const struct exception_table_entry *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ex_addr
      Src: /src/xen/xen/arch/x86/extable.c:31,1
    - Dst: ex_addr
      Src: /src/xen/xen/arch/x86/extable.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: cmp_ex
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - ex_addr
    linkageType: ''
    returnType: int
    signature: int cmp_ex(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: swap_ex
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap_ex(void *a, void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort
      Src: /src/xen/xen/arch/x86/extable.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - stop
    argTypes:
    - struct exception_table_entry*
    - struct exception_table_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: init_or_livepatch::sort_exception_table
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - sort
    linkageType: ''
    returnType: void
    signature: "void init_or_livepatch sort_exception_table(struct exception_table_entry
      *start,\n                                 const struct exception_table_entry
      *stop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort_exception_table
      Src: /src/xen/xen/arch/x86/extable.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: sort_exception_tables
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - sort_exception_table
    linkageType: ''
    returnType: void
    signature: void sort_exception_tables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ex_addr
      Src: /src/xen/xen/arch/x86/extable.c:78,1
    - Dst: ex_cont
      Src: /src/xen/xen/arch/x86/extable.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - first
    - end
    - value
    argTypes:
    - struct exception_table_entry*
    - struct exception_table_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: search_one_extable
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - ex_addr
    - ex_cont
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long search_one_extable(const struct exception_table_entry
      *first,\n                   const struct exception_table_entry *end,\n                   unsigned
      long value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_text_region
      Src: /src/xen/xen/arch/x86/extable.c:92,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/extable.c:93,1
    - Dst: search_one_extable
      Src: /src/xen/xen/arch/x86/extable.c:98,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/extable.c:120,1
    - Dst: find_text_region
      Src: /src/xen/xen/arch/x86/extable.c:124,1
    - Dst: search_one_extable
      Src: /src/xen/xen/arch/x86/extable.c:126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 2
    argNames:
    - regs
    - stub_ra
    argTypes:
    - struct cpu_user_regs*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 146
    functionName: search_exception_table
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - this_cpu
    - search_one_extable
    - find_text_region
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long search_exception_table(const struct cpu_user_regs *regs,
      unsigned long *stub_ra)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/extable.c:172,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/extable.c:176,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/extable.c:179,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/extable.c:181,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/extable.c:181,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/extable.c:181,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/extable.c:185,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/extable.c:186,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/extable.c:186,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/extable.c:187,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/extable.c:187,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/extable.c:188,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/extable.c:204,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/extable.c:206,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/extable.c:207,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/extable.c:208,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/extable.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 218
    functionName: stub_selftest
    functionSourceFile: /src/xen/xen/arch/x86/extable.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - ARRAY_SIZE
    - _mfn
    - warning_add
    - place_ret
    - vector_name
    - printk
    - this_cpu
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int stub_selftest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: domain_vpit
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_vpit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: vcpu_vpit
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_vpit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: vpit_domain
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpit_domain(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: vpit_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpit_vcpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: get_guest_time
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_guest_time(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:59,1
    - Dst: vpit_vcpu
      Src: /src/xen/xen/arch/x86/emul-i8254.c:59,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:62,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:62,1
    - Dst: muldiv64
      Src: /src/xen/xen/arch/x86/emul-i8254.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: get_count
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - vpit_vcpu
    - spin_is_locked
    - ASSERT
    - muldiv64
    - get_guest_time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_count(PITState *pit, unsigned int channel)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 91
    functionName: pit_get_count
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - get_count
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pit_get_count(PITState *pit, int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:97,1
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - priv
    argTypes:
    - struct vcpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: pit_time_fired
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - get_guest_time
    - TRACE_TIME
    linkageType: ''
    returnType: void
    signature: void pit_time_fired(struct vcpu *v, void *priv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vpit_vcpu
      Src: /src/xen/xen/arch/x86/emul-i8254.c:105,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:107,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:107,1
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:115,1
    - Dst: DIV_ROUND
      Src: /src/xen/xen/arch/x86/emul-i8254.c:121,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/emul-i8254.c:123,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:131,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:132,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:138,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:139,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:143,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - pit
    - channel
    - val
    argTypes:
    - PITState*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 147
    functionName: pit_load_count
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - is_hvm_vcpu
    - TRACE_TIME
    - vpit_vcpu
    - create_periodic_time
    - spin_is_locked
    - ASSERT
    - DIV_ROUND
    - destroy_periodic_time
    - get_guest_time
    linkageType: ''
    returnType: void
    signature: void pit_load_count(PITState *pit, int channel, int val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: pit_get_out
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - get_count
    linkageType: ''
    returnType: int
    signature: int pit_get_out(PITState *pit, int channel)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: vpit_vcpu
      Src: /src/xen/xen/arch/x86/emul-i8254.c:182,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:184,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:184,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:195,1
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:196,1
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:207,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - pit
    - channel
    - val
    argTypes:
    - PITState*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 221
    functionName: pit_set_gate
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - vpit_vcpu
    - spin_is_locked
    - ASSERT
    - pit_load_count
    - destroy_periodic_time
    - get_guest_time
    linkageType: ''
    returnType: void
    signature: void pit_set_gate(PITState *pit, int channel, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:225,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: pit_get_gate
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: int
    signature: int pit_get_gate(PITState *pit, int channel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:233,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:233,1
    - Dst: pit_get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: pit_latch_count
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - pit_get_count
    linkageType: ''
    returnType: void
    signature: void pit_latch_count(PITState *pit, int channel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/emul-i8254.c:246,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/emul-i8254.c:246,1
    - Dst: pit_get_out
      Src: /src/xen/xen/arch/x86/emul-i8254.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pit
    - channel
    argTypes:
    - PITState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: pit_latch_status
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - pit_get_out
    linkageType: ''
    returnType: void
    signature: void pit_latch_status(PITState *pit, int channel)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:267,1
    - Dst: pit_latch_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:281,1
    - Dst: pit_latch_status
      Src: /src/xen/xen/arch/x86/emul-i8254.c:283,1
    - Dst: pit_latch_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:294,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:317,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:320,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:327,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:333,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - pit
    - addr
    - val
    argTypes:
    - struct PITState*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 334
    functionName: pit_ioport_write
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - pit_latch_status
    - pit_latch_count
    - spin_lock
    - pit_load_count
    linkageType: ''
    returnType: void
    signature: void pit_ioport_write(struct PITState *pit, uint32_t addr, uint32_t
      val)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:344,1
    - Dst: pit_get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:376,1
    - Dst: pit_get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:380,1
    - Dst: pit_get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:384,1
    - Dst: pit_get_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:389,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:396,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - pit
    - addr
    argTypes:
    - struct PITState*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 399
    functionName: pit_ioport_read
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - pit_get_count
    - spin_unlock
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pit_ioport_read(struct PITState *pit, uint32_t addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:404,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:407,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:408,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:409,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pit
    argTypes:
    - PITState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 411
    functionName: pit_stop_channel0_irq
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - TRACE_TIME
    - spin_unlock
    - spin_lock
    - destroy_periodic_time
    linkageType: ''
    returnType: void
    signature: void pit_stop_channel0_irq(PITState *pit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:416,1
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:419,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:422,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/emul-i8254.c:424,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: pit_save
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - spin_unlock
    - hvm_save_entry
    - domain_vpit
    - spin_lock
    linkageType: ''
    returnType: int
    signature: int pit_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:436,1
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/emul-i8254.c:439,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/emul-i8254.c:452,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 470
    functionName: pit_check
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - hvm_get_entry
    - has_vpit
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int pit_check(const struct domain *d, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:474,1
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:477,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:480,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/emul-i8254.c:482,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/emul-i8254.c:488,1
    - Dst: get_guest_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:501,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:503,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 509
    functionName: pit_load
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - spin_unlock
    - ARRAY_SIZE
    - domain_vpit
    - hvm_load_entry
    - spin_lock
    - pit_load_count
    - get_guest_time
    linkageType: ''
    returnType: int
    signature: int pit_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:518,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/emul-i8254.c:522,1
    - Dst: pit_ioport_write
      Src: /src/xen/xen/arch/x86/emul-i8254.c:529,1
    - Dst: pit_ioport_read
      Src: /src/xen/xen/arch/x86/emul-i8254.c:534,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/emul-i8254.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 515
    functionDepth: 5
    functionLinenumber: 515
    functionLinenumberEnd: 540
    functionName: handle_pit_io
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - pit_ioport_read
    - pit_ioport_write
    - vcpu_vpit
    linkageType: ''
    returnType: int
    signature: "int handle_pit_io(\n    int dir, unsigned int port, unsigned int bytes,
      uint32_t *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pit_set_gate
      Src: /src/xen/xen/arch/x86/emul-i8254.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pit
    - addr
    - val
    argTypes:
    - struct PITState*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: speaker_ioport_write
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - pit_set_gate
    linkageType: ''
    returnType: void
    signature: "void speaker_ioport_write(\n    struct PITState *pit, uint32_t addr,
      uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/emul-i8254.c:553,1
    - Dst: pit_get_gate
      Src: /src/xen/xen/arch/x86/emul-i8254.c:554,1
    - Dst: pit_get_out
      Src: /src/xen/xen/arch/x86/emul-i8254.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pit
    - addr
    argTypes:
    - struct PITState*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: speaker_ioport_read
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - pit_get_gate
    - pit_get_out
    - NOW
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t speaker_ioport_read(\n    struct PITState *pit, uint32_t
      addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:561,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/emul-i8254.c:563,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:565,1
    - Dst: speaker_ioport_write
      Src: /src/xen/xen/arch/x86/emul-i8254.c:568,1
    - Dst: speaker_ioport_read
      Src: /src/xen/xen/arch/x86/emul-i8254.c:570,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 4
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: handle_speaker_io
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - speaker_ioport_read
    - spin_unlock
    - vcpu_vpit
    - BUG_ON
    - spin_lock
    - speaker_ioport_write
    linkageType: ''
    returnType: int
    signature: "int handle_speaker_io(\n    int dir, unsigned int port, uint32_t bytes,
      uint32_t *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:587,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/emul-i8254.c:590,1
    - Dst: hwdom_pit_access
      Src: /src/xen/xen/arch/x86/emul-i8254.c:590,1
    - Dst: handle_speaker_io
      Src: /src/xen/xen/arch/x86/emul-i8254.c:598,1
    - Dst: handle_pit_io
      Src: /src/xen/xen/arch/x86/emul-i8254.c:600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - port
    - data
    - write
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 577
    functionDepth: 6
    functionLinenumber: 577
    functionLinenumberEnd: 605
    functionName: pv_pit_handler
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - handle_pit_io
    - handle_speaker_io
    - hwdom_pit_access
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int pv_pit_handler(int port, int data, int write)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:609,1
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:613,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/emul-i8254.c:616,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:618,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:619,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:623,1
    - Dst: pit_load_count
      Src: /src/xen/xen/arch/x86/emul-i8254.c:630,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/emul-i8254.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 634
    functionName: pit_reset
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - TRACE_TIME
    - spin_unlock
    - domain_vpit
    - spin_lock
    - destroy_periodic_time
    - pit_load_count
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void pit_reset(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:638,1
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:640,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/emul-i8254.c:643,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/emul-i8254.c:645,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/emul-i8254.c:647,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/emul-i8254.c:648,1
    - Dst: pit_reset
      Src: /src/xen/xen/arch/x86/emul-i8254.c:651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 652
    functionName: pit_init
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - domain_vpit
    - pit_reset
    - register_portio_handler
    - spin_lock_init
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void pit_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:656,1
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/emul-i8254.c:658,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/emul-i8254.c:661,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/emul-i8254.c:663,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/emul-i8254.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 666
    functionName: pit_deinit
    functionSourceFile: /src/xen/xen/arch/x86/emul-i8254.c
    functionUses: 0
    functionsReached:
    - has_vpit
    - TRACE_TIME
    - domain_vpit
    - destroy_periodic_time
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void pit_deinit(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pci.c:22,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/pci.c:24,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/pci.c:26,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/pci.c:31,1
    - Dst: inw
      Src: /src/xen/xen/arch/x86/pci.c:34,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/pci.c:37,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pci.c:41,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/pci.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - cf8
    - offset
    - bytes
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: pci_conf_read
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 0
    functionsReached:
    - inl
    - BUG
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BUG_ON
    - outl
    - inb
    - inw
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pci_conf_read(uint32_t cf8, uint8_t offset, uint8_t bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pci.c:53,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/pci.c:55,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/pci.c:57,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/pci.c:62,1
    - Dst: outw
      Src: /src/xen/xen/arch/x86/pci.c:65,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/pci.c:68,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/pci.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - cf8
    - offset
    - bytes
    - data
    argTypes:
    - uint32_t
    - uint8_t
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: pci_conf_write
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 0
    functionsReached:
    - outb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BUG_ON
    - outl
    - outw
    linkageType: ''
    returnType: void
    signature: void pci_conf_write(uint32_t cf8, uint8_t offset, uint8_t bytes, uint32_t
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsm_pci_config_permission
      Src: /src/xen/xen/arch/x86/pci.c:80,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pci.c:85,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/pci.c:94,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/arch/x86/pci.c:96,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/pci.c:96,1
    - Dst: pci_msi_conf_write_intercept
      Src: /src/xen/xen/arch/x86/pci.c:98,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/pci.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - seg
    - bdf
    - reg
    - size
    - data
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 103
    functionName: pci_conf_write_intercept
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - PCI_SBDF
    - pcidevs_unlock
    - ASSERT
    - pci_get_pdev
    - pci_msi_conf_write_intercept
    - xsm_pci_config_permission
    linkageType: ''
    returnType: int
    signature: "int pci_conf_write_intercept(unsigned int seg, unsigned int bdf,\n
      \                            unsigned int reg, unsigned int size,\n                             uint32_t
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_memory_hole
      Src: /src/xen/xen/arch/x86/pci.c:111,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pci.c:112,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pci.c:114,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pci.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pdev
    - start
    - end
    argTypes:
    - struct pci_dev*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: pci_check_bar
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - gdprintk
    - is_memory_hole
    linkageType: ''
    returnType: bool
    signature: bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/pci.c:136,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/pci.c:136,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/pci.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 143
    functionName: pci_sanitize_bar_memory
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 0
    functionsReached:
    - rangeset_remove_range
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int pci_sanitize_bar_memory(struct rangeset *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_add_segment
      Src: /src/xen/xen/arch/x86/pci.c:151,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pci.c:152,1
    - Dst: acpi_mmcfg_init
      Src: /src/xen/xen/arch/x86/pci.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: pci_setup
    functionSourceFile: /src/xen/xen/arch/x86/pci.c
    functionUses: 1
    functionsReached:
    - panic
    - pci_add_segment
    - acpi_mmcfg_init
    linkageType: ''
    returnType: void
    signature: void pci_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 25
    functionName: NEXT_ARG
    functionSourceFile: /src/xen/xen/arch/x86/hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_ARG(fmt, args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/arch/x86/hypercall.c:39,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hypercall.c:45,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hypercall.c:47,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/x86/hypercall.c:47,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hypercall.c:52,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/x86/hypercall.c:64,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/x86/hypercall.c:80,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/hypercall.c:94,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/hypercall.c:99,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hypercall.c:100,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hypercall.c:101,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hypercall.c:102,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 2
    argNames:
    - op
    - format
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 104
    functionName: hypercall_create_continuation
    functionSourceFile: /src/xen/xen/arch/x86/hypercall.c
    functionUses: 0
    functionsReached:
    - va_start
    - guest_cpu_user_regs
    - ARRAY_SIZE
    - array_access_nospec
    - gprintk
    - NEXT_ARG
    - domain_crash
    - ASSERT_UNREACHABLE
    - va_end
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long hypercall_create_continuation(\n    unsigned int op,
      const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - res
    argTypes:
    - struct vcpu*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: arch_hypercall_tasklet_result
    functionSourceFile: /src/xen/xen/arch/x86/hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_hypercall_tasklet_result(struct vcpu *v, long res)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hypercall.c:126,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hypercall.c:126,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hypercall.c:127,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hypercall.c:128,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hypercall.c:129,1
    - Dst: va_start
      Src: /src/xen/xen/arch/x86/hypercall.c:131,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/hypercall.c:137,1
    - Dst: va_arg
      Src: /src/xen/xen/arch/x86/hypercall.c:145,1
    - Dst: va_arg
      Src: /src/xen/xen/arch/x86/hypercall.c:146,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hypercall.c:150,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hypercall.c:165,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hypercall.c:172,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hypercall.c:184,1
    - Dst: va_arg
      Src: /src/xen/xen/arch/x86/hypercall.c:188,1
    - Dst: va_arg
      Src: /src/xen/xen/arch/x86/hypercall.c:189,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hypercall.c:193,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hypercall.c:208,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/hypercall.c:214,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 3
    argNames:
    - id
    - nr
    - mask
    argTypes:
    - unsigned int*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 217
    functionName: hypercall_xlat_continuation
    functionSourceFile: /src/xen/xen/arch/x86/hypercall.c
    functionUses: 0
    functionsReached:
    - va_start
    - guest_cpu_user_regs
    - BUG
    - ARRAY_SIZE
    - va_arg
    - ASSERT
    - domain_crash
    - va_end
    linkageType: ''
    returnType: int
    signature: "int hypercall_xlat_continuation(unsigned int *id, unsigned int nr,\n
      \                               unsigned int mask, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/hypercall.c:223,1
    - Dst: pv_do_multicall_call
      Src: /src/xen/xen/arch/x86/hypercall.c:224,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hypercall.c:226,1
    - Dst: hvm_do_multicall_call
      Src: /src/xen/xen/arch/x86/hypercall.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mcs
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: arch_do_multicall_call
    functionSourceFile: /src/xen/xen/arch/x86/hypercall.c
    functionUses: 0
    functionsReached:
    - pv_do_multicall_call
    - is_pv_domain
    - is_hvm_domain
    - hvm_do_multicall_call
    linkageType: ''
    returnType: enum mc_disposition
    signature: enum mc_disposition arch_do_multicall_call(struct mc_state *mcs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hpet.c:76,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hpet.c:78,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/hpet.c:80,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hpet.c:82,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hpet.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 93
    functionName: parse_hpet_param
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_hpet_param(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ticks
    - nsec
    - shift
    argTypes:
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: div_sc
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long div_sc(unsigned long ticks, unsigned long nsec,\n                                   int
      shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nsec
    - shift
    - factor
    argTypes:
    - unsigned long
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: ns2ticks
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long ns2ticks(unsigned long nsec, int shift,\n                                     unsigned
      long factor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/hpet.c:131,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:132,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:134,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:134,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:135,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/hpet.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - delta
    - timer
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: hpet_next_event
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - hpet_read32
    - HPET_Tn_CMP
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: int
    signature: int hpet_next_event(unsigned long delta, unsigned int timer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hpet.c:152,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hpet.c:154,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:164,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/hpet.c:166,1
    - Dst: ns2ticks
      Src: /src/xen/xen/arch/x86/hpet.c:167,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:171,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:171,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:171,1
    - Dst: hpet_next_event
      Src: /src/xen/xen/arch/x86/hpet.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - ch
    - expire
    - now
    - force
    argTypes:
    - struct hpet_event_channel*
    - s_time_t
    - s_time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 181
    functionName: reprogram_hpet_evt_channel
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - ns2ticks
    - hpet_write32
    - hpet_read32
    - HPET_Tn_CMP
    - hpet_next_event
    - ASSERT
    - max_t
    - unlikely
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int reprogram_hpet_evt_channel(\n    struct hpet_event_channel *ch,\n
      \   s_time_t expire, s_time_t now, int force)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hpet.c:185,1
    - Dst: __cpumask_test_and_clear_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:187,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/hpet.c:188,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/hpet.c:190,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/arch/x86/hpet.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: evt_do_broadcast
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - cpumask_empty
    - smp_processor_id
    - __cpumask_test_and_clear_cpu
    - cpumask_raise_softirq
    linkageType: ''
    returnType: void
    signature: void evt_do_broadcast(cpumask_t *mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:196,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hpet.c:201,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hpet.c:206,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/hpet.c:209,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hpet.c:210,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:213,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/hpet.c:215,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:215,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:218,1
    - Dst: evt_do_broadcast
      Src: /src/xen/xen/arch/x86/hpet.c:224,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hpet.c:228,1
    - Dst: reprogram_hpet_evt_channel
      Src: /src/xen/xen/arch/x86/hpet.c:231,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hpet.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ch
    argTypes:
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 236
    functionName: handle_hpet_broadcast
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - evt_do_broadcast
    - reprogram_hpet_evt_channel
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - __cpumask_set_cpu
    - per_cpu
    - this_cpu
    - ACCESS_ONCE
    - NOW
    linkageType: ''
    returnType: void
    signature: void handle_hpet_broadcast(struct hpet_event_channel *ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:242,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:246,1
    - Dst: handle_hpet_broadcast
      Src: /src/xen/xen/arch/x86/hpet.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: hpet_interrupt_handler
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - handle_hpet_broadcast
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hpet_interrupt_handler(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:257,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:257,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:259,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ch
    argTypes:
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: hpet_enable_channel
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - HPET_Tn_CFG
    - hpet_read32
    linkageType: ''
    returnType: void
    signature: void hpet_enable_channel(struct hpet_event_channel *ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_enable_channel
      Src: /src/xen/xen/arch/x86/hpet.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: hpet_msi_unmask
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_enable_channel
    linkageType: ''
    returnType: void
    signature: void hpet_msi_unmask(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:273,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:273,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:275,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: hpet_msi_mask
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - HPET_Tn_CFG
    - hpet_read32
    linkageType: ''
    returnType: void
    signature: void hpet_msi_mask(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/hpet.c:285,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:295,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hpet.c:295,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:296,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hpet.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ch
    - msg
    argTypes:
    - struct hpet_event_channel*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: hpet_msi_write
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - HPET_Tn_ROUTE
    - iommu_update_ire_from_msi
    - hpet_write32
    linkageType: ''
    returnType: int
    signature: int hpet_msi_write(struct hpet_event_channel *ch, struct msi_msg *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msi_compose_msg
      Src: /src/xen/xen/arch/x86/hpet.c:320,1
    - Dst: hpet_msi_write
      Src: /src/xen/xen/arch/x86/hpet.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: __hpet_setup_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - msi_compose_msg
    - hpet_msi_write
    linkageType: ''
    returnType: int
    signature: int __hpet_setup_msi_irq(struct irq_desc *desc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:327,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:327,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/hpet.c:328,1
    - Dst: clear_irq_vector
      Src: /src/xen/xen/arch/x86/hpet.c:330,1
    - Dst: bind_irq_vector
      Src: /src/xen/xen/arch/x86/hpet.c:335,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hpet.c:335,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/hpet.c:338,1
    - Dst: iommu_setup_hpet_msi
      Src: /src/xen/xen/arch/x86/hpet.c:343,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:351,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:351,1
    - Dst: request_irq
      Src: /src/xen/xen/arch/x86/hpet.c:354,1
    - Dst: __hpet_setup_msi_irq
      Src: /src/xen/xen/arch/x86/hpet.c:356,1
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/hpet.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ch
    argTypes:
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 367
    functionName: hpet_setup_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 1
    functionsReached:
    - __hpet_setup_msi_irq
    - irq_to_desc
    - hpet_read32
    - hpet_write32
    - iommu_update_ire_from_msi
    - cpumask_setall
    - iommu_setup_hpet_msi
    - clear_irq_vector
    - cpumask_of
    - bind_irq_vector
    - request_irq
    - HPET_Tn_CFG
    linkageType: ''
    returnType: int
    signature: int hpet_setup_msi_irq(struct hpet_event_channel *ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_irq
      Src: /src/xen/xen/arch/x86/hpet.c:373,1
    - Dst: hpet_setup_msi_irq
      Src: /src/xen/xen/arch/x86/hpet.c:377,1
    - Dst: destroy_irq
      Src: /src/xen/xen/arch/x86/hpet.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ch
    argTypes:
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: hpet_assign_irq
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - create_irq
    - hpet_setup_msi_irq
    - destroy_irq
    linkageType: ''
    returnType: int
    signature: int hpet_assign_irq(struct hpet_event_channel *ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hpet.c:391,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:394,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hpet.c:399,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:406,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:406,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/hpet.c:412,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hpet.c:416,1
    - Dst: hpet_assign_irq
      Src: /src/xen/xen/arch/x86/hpet.c:425,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:429,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 431
    functionName: hpet_fsb_cap_lookup
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_read32
    - xfree
    - xzalloc_array
    - zalloc_cpumask_var
    - hpet_assign_irq
    - unlikely
    - printk
    - HPET_Tn_CFG
    linkageType: ''
    returnType: void
    signature: void hpet_fsb_cap_lookup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/hpet.c:445,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hpet.c:451,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hpet.c:460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 464
    functionName: hpet_get_channel
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - arch_fetch_and_add
    linkageType: ''
    returnType: struct hpet_event_channel
    signature: struct hpet_event_channel *hpet_get_channel(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/hpet.c:468,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:471,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hpet.c:471,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hpet.c:472,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:474,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/hpet.c:484,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hpet.c:484,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hpet.c:486,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hpet.c:488,1
    - Dst: MSI_ADDR_DEST_ID
      Src: /src/xen/xen/arch/x86/hpet.c:490,1
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/hpet.c:497,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:499,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:502,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:502,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hpet.c:502,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:503,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:504,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hpet.c:504,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:508,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hpet.c:508,1
    - Dst: hpet_enable_channel
      Src: /src/xen/xen/arch/x86/hpet.c:511,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hpet.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - ch
    argTypes:
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 513
    functionName: set_channel_irq_affinity
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - hpet_read32
    - hpet_write32
    - cpu_physical_id
    - iommu_update_ire_from_msi
    - ASSERT
    - spin_lock
    - HPET_Tn_ROUTE
    - per_cpu
    - cpumask_copy
    - cpumask_of
    - MSI_ADDR_DEST_ID
    - local_irq_is_enabled
    - hpet_enable_channel
    linkageType: ''
    returnType: void
    signature: void set_channel_irq_affinity(struct hpet_event_channel *ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:518,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hpet.c:518,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hpet.c:519,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:521,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hpet.c:524,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hpet.c:528,1
    - Dst: set_channel_irq_affinity
      Src: /src/xen/xen/arch/x86/hpet.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cpu
    - ch
    argTypes:
    - unsigned int
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 531
    functionName: hpet_attach_channel
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - test_and_set_bit
    - set_channel_irq_affinity
    - ASSERT
    - spin_lock
    - per_cpu
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: "void hpet_attach_channel(unsigned int cpu,\n                                struct
      hpet_event_channel *ch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/hpet.c:538,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:540,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:540,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:542,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hpet.c:545,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/hpet.c:546,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:548,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:548,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:548,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hpet.c:551,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hpet.c:552,1
    - Dst: set_channel_irq_affinity
      Src: /src/xen/xen/arch/x86/hpet.c:557,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/hpet.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - cpu
    - ch
    argTypes:
    - unsigned int
    - struct hpet_event_channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 560
    functionName: hpet_detach_channel
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - local_irq_enable
    - hpet_write32
    - hpet_read32
    - set_channel_irq_affinity
    - HPET_Tn_CMP
    - spin_unlock_irq
    - spin_lock_irq
    - ASSERT
    - cpumask_first
    - per_cpu
    - clear_bit
    linkageType: ''
    returnType: void
    signature: "void hpet_detach_channel(unsigned int cpu,\n                                struct
      hpet_event_channel *ch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuidle_disable_deep_cstate
      Src: /src/xen/xen/arch/x86/hpet.c:574,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/hpet.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 577
    functionName: handle_rtc_once
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - cpuidle_disable_deep_cstate
    - ACCESS_ONCE
    linkageType: ''
    returnType: void
    signature: void handle_rtc_once(uint8_t index, uint8_t value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hpet_setup
      Src: /src/xen/xen/arch/x86/hpet.c:581,1
    - Dst: hpet_broadcast_is_available
      Src: /src/xen/xen/arch/x86/hpet.c:585,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:588,1
    - Dst: hpet_fsb_cap_lookup
      Src: /src/xen/xen/arch/x86/hpet.c:590,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:599,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hpet.c:604,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/hpet.c:605,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:617,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:624,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:624,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:627,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:627,1
    - Dst: div_sc
      Src: /src/xen/xen/arch/x86/hpet.c:634,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hpet.c:638,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/hpet.c:639,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 579
    functionDepth: 6
    functionLinenumber: 579
    functionLinenumberEnd: 648
    functionName: hpet_broadcast_init
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - hpet_broadcast_is_available
    - hpet_read32
    - hpet_write32
    - smp_wmb
    - zalloc_cpumask_var
    - div_sc
    - spin_lock_init
    - hpet_fsb_cap_lookup
    - HPET_Tn_CFG
    - hpet_setup
    linkageType: ''
    returnType: void
    signature: void hpet_broadcast_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_lopriority_vector
      Src: /src/xen/xen/arch/x86/hpet.c:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: hpet_broadcast_late_init
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - free_lopriority_vector
    linkageType: ''
    returnType: void
    signature: void hpet_broadcast_late_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hpet_resume
      Src: /src/xen/xen/arch/x86/hpet.c:664,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:666,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:683,1
    - Dst: __hpet_setup_msi_irq
      Src: /src/xen/xen/arch/x86/hpet.c:688,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/hpet.c:688,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:691,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:691,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:696,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:696,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 700
    functionName: hpet_broadcast_resume
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - __hpet_setup_msi_irq
    - irq_to_desc
    - hpet_write32
    - hpet_read32
    - hpet_resume
    - HPET_Tn_CFG
    linkageType: ''
    returnType: void
    signature: void hpet_broadcast_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hpet.c:710,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hpet.c:712,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:715,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:715,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:717,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:717,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:720,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:722,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hpet.c:724,1
    - Dst: smp_send_event_check_mask
      Src: /src/xen/xen/arch/x86/hpet.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 727
    functionName: hpet_disable_legacy_broadcast
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - hpet_read32
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - smp_send_event_check_mask
    - HPET_Tn_CFG
    - set_bit
    linkageType: ''
    returnType: void
    signature: void hpet_disable_legacy_broadcast(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hpet.c:731,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:732,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:733,1
    - Dst: hpet_get_channel
      Src: /src/xen/xen/arch/x86/hpet.c:739,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:741,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hpet.c:741,1
    - Dst: hpet_attach_channel
      Src: /src/xen/xen/arch/x86/hpet.c:744,1
    - Dst: disable_APIC_timer
      Src: /src/xen/xen/arch/x86/hpet.c:747,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:748,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hpet.c:750,1
    - Dst: reprogram_hpet_evt_channel
      Src: /src/xen/xen/arch/x86/hpet.c:756,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hpet.c:756,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hpet.c:757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 758
    functionName: hpet_broadcast_enter
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - reprogram_hpet_evt_channel
    - smp_processor_id
    - hpet_get_channel
    - ASSERT
    - spin_lock
    - per_cpu
    - cpumask_set_cpu
    - hpet_attach_channel
    - disable_APIC_timer
    - local_irq_is_enabled
    - NOW
    linkageType: ''
    returnType: void
    signature: void hpet_broadcast_enter(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hpet.c:762,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:763,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:764,1
    - Dst: hpet_get_channel
      Src: /src/xen/xen/arch/x86/hpet.c:770,1
    - Dst: enable_APIC_timer
      Src: /src/xen/xen/arch/x86/hpet.c:773,1
    - Dst: reprogram_timer
      Src: /src/xen/xen/arch/x86/hpet.c:774,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/hpet.c:775,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:777,1
    - Dst: hpet_detach_channel
      Src: /src/xen/xen/arch/x86/hpet.c:780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 760
    functionDepth: 4
    functionLinenumber: 760
    functionLinenumberEnd: 781
    functionName: hpet_broadcast_exit
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - enable_APIC_timer
    - raise_softirq
    - smp_processor_id
    - hpet_get_channel
    - hpet_detach_channel
    - per_cpu
    - cpumask_clear_cpu
    - reprogram_timer
    linkageType: ''
    returnType: void
    signature: void hpet_broadcast_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: hpet_broadcast_is_available
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpet_broadcast_is_available(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hpet.c:796,1
    - Dst: handle_hpet_broadcast
      Src: /src/xen/xen/arch/x86/hpet.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 789
    functionDepth: 4
    functionLinenumber: 789
    functionLinenumberEnd: 801
    functionName: hpet_legacy_irq_tick
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - handle_hpet_broadcast
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int hpet_legacy_irq_tick(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: struct
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: __initdata
    signature: __initdata struct
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:814,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:815,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:819,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:822,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:822,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:823,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:823,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:828,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:828,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/hpet.c:836,1
    - Dst: div_sc
      Src: /src/xen/xen/arch/x86/hpet.c:836,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/hpet.c:836,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:838,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:862,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:862,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:863,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:863,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 869
    functionName: hpet_enable_legacy_replacement_mode
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - SECONDS
    - hpet_read32
    - HPET_Tn_CMP
    - div_sc
    - HPET_Tn_CFG
    linkageType: ''
    returnType: bool
    signature: bool hpet_enable_legacy_replacement_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:873,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hpet.c:875,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:880,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:883,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:883,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:884,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hpet.c:884,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 888
    functionName: hpet_disable_legacy_replacement_mode
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_write32
    - hpet_read32
    - HPET_Tn_CMP
    - ASSERT
    - HPET_Tn_CFG
    linkageType: ''
    returnType: void
    signature: void hpet_disable_legacy_replacement_mode(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/hpet.c:898,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:900,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:903,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:908,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:911,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/hpet.c:916,1
    - Dst: hpet_resume
      Src: /src/xen/xen/arch/x86/hpet.c:917,1
    - Dst: do_div
      Src: /src/xen/xen/arch/x86/hpet.c:920,1
    - Dst: hpet_enable_legacy_replacement_mode
      Src: /src/xen/xen/arch/x86/hpet.c:925,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 928
    functionName: hpet_setup
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - hpet_enable_legacy_replacement_mode
    - hpet_read32
    - set_fixmap_nocache
    - printk
    - hpet_resume
    - do_div
    linkageType: ''
    returnType: u64
    signature: u64 hpet_setup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:940,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:946,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:951,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:953,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:957,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:957,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hpet.c:963,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:968,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:968,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:971,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - boot_cfg
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 974
    functionName: hpet_resume
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 2
    functionsReached:
    - hpet_write32
    - HPET_Tn_CFG
    - printk
    - hpet_read32
    linkageType: ''
    returnType: void
    signature: void hpet_resume(uint32_t *boot_cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hpet_broadcast_is_available
      Src: /src/xen/xen/arch/x86/hpet.c:983,1
    - Dst: hpet_disable_legacy_broadcast
      Src: /src/xen/xen/arch/x86/hpet.c:984,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:988,1
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/hpet.c:990,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:992,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hpet.c:992,1
    - Dst: hpet_write32
      Src: /src/xen/xen/arch/x86/hpet.c:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 996
    functionName: hpet_disable
    functionSourceFile: /src/xen/xen/arch/x86/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_broadcast_is_available
    - hpet_read32
    - hpet_write32
    - hpet_disable_legacy_broadcast
    - HPET_Tn_CFG
    linkageType: ''
    returnType: void
    signature: void hpet_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - shortcut
    - vector
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: prepare_ICR
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int prepare_ICR(unsigned int shortcut, int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_xAPIC_DEST_FIELD
      Src: /src/xen/xen/arch/x86/smp.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: prepare_ICR2
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - SET_xAPIC_DEST_FIELD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int prepare_ICR2(unsigned int mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smp.c:46,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smp.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: apic_wait_icr_idle
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - apic_read
    - cpu_relax
    linkageType: ''
    returnType: void
    signature: void apic_wait_icr_idle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/smp.c:57,1
    - Dst: prepare_ICR
      Src: /src/xen/xen/arch/x86/smp.c:59,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - shortcut
    - vector
    - dest
    argTypes:
    - unsigned int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: send_IPI_shortcut
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - prepare_ICR
    - apic_wait_icr_idle
    - apic_write
    linkageType: ''
    returnType: void
    signature: "void send_IPI_shortcut(unsigned int shortcut, int vector,\n                              unsigned
      int dest)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/smp.c:72,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/smp.c:74,1
    - Dst: in_mce_handler
      Src: /src/xen/xen/arch/x86/smp.c:74,1
    - Dst: in_nmi_handler
      Src: /src/xen/xen/arch/x86/smp.c:74,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/smp.c:82,1
    - Dst: cpu_in_hotplug_context
      Src: /src/xen/xen/arch/x86/smp.c:93,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/smp.c:95,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/smp.c:95,1
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/smp.c:97,1
    - Dst: cpumask_or
      Src: /src/xen/xen/arch/x86/smp.c:98,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smp.c:98,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:98,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/smp.c:103,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/smp.c:106,1
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/smp.c:109,1
    - Dst: send_IPI_shortcut
      Src: /src/xen/xen/arch/x86/smp.c:110,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/smp.c:112,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/smp.c:115,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 18
    argCount: 2
    argNames:
    - mask
    - vector
    argTypes:
    - cpumask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 116
    functionName: send_IPI_mask
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - cpumask_equal
    - put_cpu_maps
    - in_mce_handler
    - smp_processor_id
    - this_cpu
    - cpu_in_hotplug_context
    - alternative_vcall
    - in_nmi_handler
    - in_irq
    - get_cpu_maps
    - cpumask_of
    - send_IPI_shortcut
    - cpumask_or
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void send_IPI_mask(const cpumask_t *mask, int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/smp.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: send_IPI_self
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void send_IPI_self(int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_IPI_shortcut
      Src: /src/xen/xen/arch/x86/smp.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: send_IPI_self_legacy
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - send_IPI_shortcut
    linkageType: ''
    returnType: void
    signature: void send_IPI_self_legacy(uint8_t vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_bits
      Src: /src/xen/xen/arch/x86/smp.c:173,1
    - Dst: cpumask_bits
      Src: /src/xen/xen/arch/x86/smp.c:177,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:178,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/smp.c:182,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/smp.c:187,1
    - Dst: prepare_ICR2
      Src: /src/xen/xen/arch/x86/smp.c:192,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:193,1
    - Dst: prepare_ICR
      Src: /src/xen/xen/arch/x86/smp.c:198,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:203,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/smp.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cpumask
    - vector
    argTypes:
    - cpumask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 206
    functionName: send_IPI_mask_flat
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - prepare_ICR
    - apic_wait_icr_idle
    - prepare_ICR2
    - local_irq_restore
    - local_irq_save
    - apic_write
    - cpumask_bits
    linkageType: ''
    returnType: void
    signature: void send_IPI_mask_flat(const cpumask_t *cpumask, int vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/smp.c:213,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/smp.c:217,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:217,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/smp.c:223,1
    - Dst: prepare_ICR2
      Src: /src/xen/xen/arch/x86/smp.c:228,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/smp.c:228,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:229,1
    - Dst: prepare_ICR
      Src: /src/xen/xen/arch/x86/smp.c:234,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:239,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/smp.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mask
    - vector
    argTypes:
    - cpumask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 243
    functionName: send_IPI_mask_phys
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - smp_processor_id
    - cpu_physical_id
    - prepare_ICR
    - apic_wait_icr_idle
    - prepare_ICR2
    - local_irq_restore
    - local_irq_save
    - apic_write
    linkageType: ''
    returnType: void
    signature: void send_IPI_mask_phys(const cpumask_t *mask, int vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/smp.c:217,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:217,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/smp.c:223,1
    - Dst: prepare_ICR2
      Src: /src/xen/xen/arch/x86/smp.c:228,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/smp.c:228,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:229,1
    - Dst: prepare_ICR
      Src: /src/xen/xen/arch/x86/smp.c:234,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smp.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - smp_processor_id
    - cpu_physical_id
    - prepare_ICR
    - apic_wait_icr_idle
    - prepare_ICR2
    - apic_write
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( query_cpu, mask )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/smp.c:253,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/smp.c:254,1
    - Dst: __sync_local_execstate
      Src: /src/xen/xen/arch/x86/smp.c:255,1
    - Dst: flush_area_local
      Src: /src/xen/xen/arch/x86/smp.c:258,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smp.c:259,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: invalidate_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - ack_APIC_irq
    - smp_processor_id
    - flush_area_local
    - __sync_local_execstate
    - cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void invalidate_interrupt(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:264,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smp.c:267,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/smp.c:267,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/arch/x86/smp.c:267,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smp.c:267,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smp.c:269,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/smp.c:269,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/smp.c:272,1
    - Dst: flush_area_local
      Src: /src/xen/xen/arch/x86/smp.c:273,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/arch/x86/smp.c:276,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smp.c:276,1
    - Dst: hypervisor_flush_tlb
      Src: /src/xen/xen/arch/x86/smp.c:281,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/smp.c:284,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/smp.c:285,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smp.c:286,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/smp.c:289,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/smp.c:290,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smp.c:291,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/smp.c:292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: flush_area_mask
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - send_IPI_mask
    - spin_unlock
    - cpu_relax
    - cpumask_empty
    - smp_processor_id
    - flush_area_local
    - cpumask_and
    - ASSERT
    - spin_lock
    - cpumask_of
    - cpumask_clear_cpu
    - hypervisor_flush_tlb
    - cpumask_subset
    - local_irq_is_enabled
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void flush_area_mask(const cpumask_t *mask, const void *va, unsigned
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/smp.c:302,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smp.c:303,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:303,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/smp.c:304,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smp.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: new_tlbflush_clock_period
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - cpumask_andnot
    - ASSERT
    - cpumask_of
    - flush_mask
    linkageType: ''
    returnType: void
    signature: void new_tlbflush_clock_period(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/smp.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: smp_send_event_check_mask
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 1
    functionsReached:
    - send_IPI_mask
    linkageType: ''
    returnType: void
    signature: void smp_send_event_check_mask(const cpumask_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/smp.c:318,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/smp.c:320,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:320,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/smp.c:322,1
    - Dst: smp_call_function_interrupt
      Src: /src/xen/xen/arch/x86/smp.c:323,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/smp.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: smp_send_call_function_mask
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - send_IPI_mask
    - smp_call_function_interrupt
    - local_irq_enable
    - smp_processor_id
    - local_irq_disable
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void smp_send_call_function_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smp.c:330,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/smp.c:330,1
    - Dst: disable_local_APIC
      Src: /src/xen/xen/arch/x86/smp.c:332,1
    - Dst: hvm_cpu_down
      Src: /src/xen/xen/arch/x86/smp.c:334,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/smp.c:340,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smp.c:343,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: __stop_this_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - hvm_cpu_down
    - ASSERT
    - clts
    - cpumask_clear_cpu
    - disable_local_APIC
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void __stop_this_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smp.c:351,1
    - Dst: __stop_this_cpu
      Src: /src/xen/xen/arch/x86/smp.c:353,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/smp.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: stop_this_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 1
    functionsReached:
    - halt
    - cpu_relax
    - __stop_this_cpu
    linkageType: ''
    returnType: void
    signature: void stop_this_cpu(void *dummy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smp.c:364,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/smp.c:373,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/x86/smp.c:374,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/smp.c:376,1
    - Dst: pci_disable_msi_all
      Src: /src/xen/xen/arch/x86/smp.c:377,1
    - Dst: disable_IO_APIC
      Src: /src/xen/xen/arch/x86/smp.c:378,1
    - Dst: hpet_disable
      Src: /src/xen/xen/arch/x86/smp.c:379,1
    - Dst: iommu_quiesce
      Src: /src/xen/xen/arch/x86/smp.c:380,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/smp.c:382,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/smp.c:390,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/smp.c:391,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/smp.c:394,1
    - Dst: __stop_this_cpu
      Src: /src/xen/xen/arch/x86/smp.c:396,1
    - Dst: current_local_apic_mode
      Src: /src/xen/xen/arch/x86/smp.c:397,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/smp.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 400
    functionName: smp_send_stop
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - disable_IO_APIC
    - iommu_quiesce
    - smp_call_function
    - mdelay
    - local_irq_enable
    - current_local_apic_mode
    - smp_processor_id
    - local_irq_disable
    - num_online_cpus
    - pci_disable_msi_all
    - hpet_disable
    - __stop_this_cpu
    linkageType: ''
    returnType: void
    signature: void smp_send_stop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/smp.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: smp_send_nmi_allbutself
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - send_IPI_mask
    linkageType: ''
    returnType: void
    signature: void smp_send_nmi_allbutself(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/smp.c:409,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/smp.c:410,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/smp.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: event_check_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - this_cpu
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void event_check_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/smp.c:416,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/smp.c:417,1
    - Dst: smp_call_function_interrupt
      Src: /src/xen/xen/arch/x86/smp.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: call_function_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 2
    functionsReached:
    - perfc_incr
    - smp_call_function_interrupt
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void call_function_interrupt(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_up
      Src: /src/xen/xen/arch/x86/smp.c:424,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/x86/smp.c:428,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/smp.c:432,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smp.c:432,1
    - Dst: cpu_down_helper
      Src: /src/xen/xen/arch/x86/smp.c:434,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smp.c:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 442
    functionName: cpu_up_helper
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 0
    functionsReached:
    - cpu_up
    - per_cpu
    - printk
    - cpumask_weight
    - cpu_down_helper
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check cpu_up_helper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_down
      Src: /src/xen/xen/arch/x86/smp.c:447,1
    - Dst: cpu_down
      Src: /src/xen/xen/arch/x86/smp.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: cpu_down_helper
    functionSourceFile: /src/xen/xen/arch/x86/smp.c
    functionUses: 1
    functionsReached:
    - cpu_down
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check cpu_down_helper(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/nmi.c:59,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/nmi.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 75
    functionName: parse_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_watchdog(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoull
      Src: /src/xen/xen/arch/x86/nmi.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: parse_watchdog_timeout
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - simple_strtoull
    linkageType: ''
    returnType: int
    signature: int parse_watchdog_timeout(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: P4_ESCR_EVENT_SELECT
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P4_ESCR_EVENT_SELECT(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: P4_CCCR_THRESHOLD
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P4_CCCR_THRESHOLD(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: P4_CCCR_ESCR_SELECT
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P4_CCCR_ESCR_SELECT(N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/nmi.c:155,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:156,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/nmi.c:160,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/nmi.c:162,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:163,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/nmi.c:166,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 171
    functionName: wait_for_nmis
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - smp_processor_id
    - rdtsc
    - this_cpu
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void wait_for_nmis(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:180,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/nmi.c:187,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/nmi.c:189,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:190,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:192,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/nmi.c:192,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/nmi.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 207
    functionName: check_nmi_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - max
    - cpumask_empty
    - CPUMASK_PR
    - on_selected_cpus
    - printk
    linkageType: ''
    returnType: void
    signature: void check_nmi_watchdog(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:211,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/nmi.c:212,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:212,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/nmi.c:212,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/nmi.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: nmi_timer_fn
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - set_timer
    - MILLISECS
    - NOW
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void nmi_timer_fn(void *unused)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:221,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:226,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/nmi.c:226,1
    - Dst: wrmsr
      Src: /src/xen/xen/arch/x86/nmi.c:229,1
    - Dst: wrmsr
      Src: /src/xen/xen/arch/x86/nmi.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: disable_lapic_nmi_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - wrmsrns
    - MSR_P6_EVNTSEL
    - wrmsr
    linkageType: ''
    returnType: void
    signature: void disable_lapic_nmi_watchdog(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_apic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: enable_lapic_nmi_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - setup_apic_nmi_watchdog
    linkageType: ''
    returnType: void
    signature: void enable_lapic_nmi_watchdog(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/nmi.c:252,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/nmi.c:255,1
    - Dst: disable_lapic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: reserve_lapic_nmi
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - disable_lapic_nmi_watchdog
    linkageType: ''
    returnType: int
    signature: int reserve_lapic_nmi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/nmi.c:267,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/nmi.c:270,1
    - Dst: enable_lapic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: release_lapic_nmi
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - enable_lapic_nmi_watchdog
    linkageType: ''
    returnType: void
    signature: void release_lapic_nmi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - base
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: clear_msr_range
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - wrmsrns
    linkageType: ''
    returnType: void
    signature: void clear_msr_range(unsigned int base, unsigned int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/nmi.c:293,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - descr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: write_watchdog_counter
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - Dprintk
    linkageType: ''
    returnType: void
    signature: void write_watchdog_counter(const char *descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:303,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:304,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:311,1
    - Dst: write_watchdog_counter
      Src: /src/xen/xen/arch/x86/nmi.c:312,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/nmi.c:313,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: setup_k7_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - write_watchdog_counter
    - wrmsrns
    - clear_msr_range
    - apic_write
    linkageType: ''
    returnType: void
    signature: void setup_k7_watchdog(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/nmi.c:323,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/nmi.c:323,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/nmi.c:331,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:333,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/nmi.c:333,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:334,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/nmi.c:334,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:341,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/nmi.c:341,1
    - Dst: write_watchdog_counter
      Src: /src/xen/xen/arch/x86/nmi.c:342,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/nmi.c:343,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/nmi.c:345,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/nmi.c:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - counter
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 346
    functionName: setup_p6_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - wrmsrns
    - MSR_P6_EVNTSEL
    - cpuid_eax
    - write_watchdog_counter
    - MSR_P6_PERFCTR
    - clear_msr_range
    - apic_write
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void setup_p6_watchdog(unsigned counter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:352,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:362,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:367,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:368,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:370,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:372,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:373,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:374,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:375,1
    - Dst: clear_msr_range
      Src: /src/xen/xen/arch/x86/nmi.c:376,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:378,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:379,1
    - Dst: write_watchdog_counter
      Src: /src/xen/xen/arch/x86/nmi.c:380,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/nmi.c:381,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 383
    functionName: setup_p4_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - clear_msr_range
    - rdmsrl
    - wrmsrl
    - write_watchdog_counter
    - apic_write
    linkageType: ''
    returnType: void
    signature: void setup_p4_watchdog(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setup_k7_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:393,1
    - Dst: setup_p6_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:399,1
    - Dst: setup_p4_watchdog
      Src: /src/xen/xen/arch/x86/nmi.c:404,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 419
    functionName: setup_apic_nmi_watchdog
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 1
    functionsReached:
    - setup_p4_watchdog
    - setup_p6_watchdog
    - printk
    - setup_k7_watchdog
    linkageType: ''
    returnType: void
    signature: void setup_apic_nmi_watchdog(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/nmi.c:429,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:429,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/nmi.c:430,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:430,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/nmi.c:430,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/nmi.c:434,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 441
    functionName: cpu_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - set_timer
    - kill_timer
    - per_cpu
    - init_timer
    - NOW
    linkageType: ''
    returnType: int
    signature: "int cpu_nmi_callback(\n    struct notifier_block *nfb, unsigned long
      action, void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/nmi.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 455
    functionName: watchdog_disable
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void watchdog_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/nmi.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: watchdog_enable
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void watchdog_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/nmi.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: watchdog_enabled
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: bool
    signature: bool watchdog_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:475,1
    - Dst: cpu_nmi_callback
      Src: /src/xen/xen/arch/x86/nmi.c:476,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/nmi.c:477,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/arch/x86/nmi.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: watchdog_setup
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - for_each_online_cpu
    - watchdog_enable
    - cpu_nmi_callback
    linkageType: ''
    returnType: void
    signature: void watchdog_setup(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:486,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:488,1
    - Dst: watchdog_enabled
      Src: /src/xen/xen/arch/x86/nmi.c:488,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:494,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:495,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/nmi.c:497,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:498,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/nmi.c:499,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/nmi.c:500,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:505,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:516,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:527,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/nmi.c:528,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/nmi.c:530,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:532,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/nmi.c:532,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/nmi.c:540,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/nmi.c:544,1
    - Dst: write_watchdog_counter
      Src: /src/xen/xen/arch/x86/nmi.c:548,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 552
    functionName: nmi_watchdog_tick
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - fatal_trap
    - rdmsrl
    - write_watchdog_counter
    - watchdog_enabled
    - wrmsrl
    - printk
    - this_cpu
    - MSR_P6_PERFCTR
    - console_force_unlock
    - apic_write
    linkageType: ''
    returnType: bool
    signature: bool nmi_watchdog_tick(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 506
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void this_cpu(alert_counter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/nmi.c:563,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/nmi.c:564,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/nmi.c:565,1
    - Dst: apic_icr_write
      Src: /src/xen/xen/arch/x86/nmi.c:566,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/nmi.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: self_nmi
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - apic_icr_write
    - get_apic_id
    - apic_wait_icr_idle
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void self_nmi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:572,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/nmi.c:572,1
    - Dst: self_nmi
      Src: /src/xen/xen/arch/x86/nmi.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: do_nmi_trigger
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - get_apic_id
    - self_nmi
    - printk
    linkageType: ''
    returnType: void
    signature: void do_nmi_trigger(unsigned char key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:582,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:583,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:584,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/nmi.c:584,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/nmi.c:586,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:592,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/nmi.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 596
    functionName: do_nmi_stats
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - for_each_online_cpu
    - domain_vcpu
    - per_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void do_nmi_stats(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/nmi.c:600,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/nmi.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: register_nmi_trigger
    functionSourceFile: /src/xen/xen/arch/x86/nmi.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int register_nmi_trigger(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:37,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:37,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/gdbsx.c:38,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:41,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/gdbsx.c:41,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/gdbsx.c:42,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/gdbsx.c:45,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:47,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/gdbsx.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - vaddr
    - dp
    - toaddr
    - gfn
    argTypes:
    - dbgva_t
    - struct domain*
    - int
    - gfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: dbg_hvm_va2mfn
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - mfn_eq
    - put_gfn
    - _gfn
    - gfn_x
    - get_gfn
    - paging_gva_to_gfn
    - gfn_eq
    - p2m_is_readonly
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t dbg_hvm_va2mfn(dbgva_t vaddr, struct domain *dp, int toaddr,
      gfn_t *gfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:75,1
    - Dst: cr3_pa
      Src: /src/xen/xen/arch/x86/gdbsx.c:75,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:79,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/gdbsx.c:80,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:81,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:82,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/gdbsx.c:83,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:86,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/gdbsx.c:87,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:88,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:89,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/gdbsx.c:90,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/gdbsx.c:91,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:95,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/gdbsx.c:96,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:97,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:98,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/gdbsx.c:99,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/gdbsx.c:100,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:103,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/gdbsx.c:104,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:105,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:106,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/gdbsx.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - vaddr
    - dp
    - pgd3val
    argTypes:
    - dbgva_t
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 109
    functionName: dbg_pv_va2mfn
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - unmap_domain_page
    - cr3_pa
    - map_domain_page
    - l4_table_offset
    - l4e_get_flags
    - l3_table_offset
    - l2e_get_mfn
    - mfn_valid
    - l2_table_offset
    - maddr_to_mfn
    - l3e_get_mfn
    - l3e_get_flags
    - l1e_get_mfn
    - l1_table_offset
    - l4e_get_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t dbg_pv_va2mfn(dbgva_t vaddr, struct domain *dp, uint64_t pgd3val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/gdbsx.c:124,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/gdbsx.c:126,1
    - Dst: dbg_hvm_va2mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:127,1
    - Dst: dbg_pv_va2mfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:128,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/gdbsx.c:129,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:132,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/gdbsx.c:137,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/gdbsx.c:138,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/gdbsx.c:141,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/gdbsx.c:143,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/gdbsx.c:144,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/gdbsx.c:145,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/gdbsx.c:145,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/gdbsx.c:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - dp
    - addr
    - len
    - toaddr
    - pgd3
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - bool
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 153
    functionName: dbg_rw_guest_mem
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - paging_mark_dirty
    - unmap_domain_page
    - map_domain_page
    - copy_from_guest
    - put_gfn
    - guest_handle_add_offset
    - gfn_x
    - copy_to_guest
    - min_t
    - mfn_eq
    - gfn_eq
    - dbg_hvm_va2mfn
    - dbg_pv_va2mfn
    - is_hvm_domain
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int dbg_rw_guest_mem(struct domain *dp, unsigned long addr,\n
      \                                    XEN_GUEST_HANDLE_PARAM(void) buf,\n                                     unsigned
      int len, bool toaddr,\n                                     uint64_t pgd3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbg_rw_guest_mem
      Src: /src/xen/xen/arch/x86/gdbsx.c:160,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/gdbsx.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - iop
    argTypes:
    - struct domain*
    - struct xen_domctl_gdbsx_memio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: gdbsx_guest_mem_io
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - guest_handle_from_ptr
    - dbg_rw_guest_mem
    linkageType: ''
    returnType: int
    signature: "int gdbsx_guest_mem_io(\n    struct domain *d, struct xen_domctl_gdbsx_memio
      *iop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause_by_systemcontroller_nosync
      Src: /src/xen/xen/arch/x86/gdbsx.c:175,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/gdbsx.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: domain_pause_for_debugger
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - domain_pause_by_systemcontroller_nosync
    - send_global_virq
    linkageType: ''
    returnType: void
    signature: void domain_pause_for_debugger(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: gdbsx_guest_mem_io
      Src: /src/xen/xen/arch/x86/gdbsx.c:190,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/gdbsx.c:200,1
    - Dst: vcpu_pause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/gdbsx.c:202,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/gdbsx.c:210,1
    - Dst: vcpu_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/gdbsx.c:212,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/gdbsx.c:214,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/gdbsx.c:241,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 3
    argNames:
    - d
    - domctl
    - copyback
    argTypes:
    - struct domain*
    - struct xen_domctl*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 247
    functionName: gdbsx_domctl
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached:
    - domain_vcpu
    - vcpu_unpause_by_systemcontroller
    - vcpu_pause_by_systemcontroller
    - printk
    - gdbsx_guest_mem_io
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int gdbsx_domctl(struct domain *d, struct xen_domctl *domctl, bool
      *copyback)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/gdbsx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/irq.c:74,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/irq.c:76,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/irq.c:78,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/irq.c:80,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/irq.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - parse_irq_vector_map_param
    argTypes:
    - irq_ratelimit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 91
    functionName: integer_param
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - strchr
    - cmdline_strcmp
    linkageType: ''
    returnType: void
    signature: 'void integer_param("irq_ratelimit", irq_ratelimit_threshold);


      static int __init cf_check parse_irq_vector_map_param(const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: lock_vector_lock
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void lock_vector_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: unlock_vector_lock
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_vector_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: valid_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_irq_vector(unsigned int vector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/irq.c:118,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:120,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:121,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:124,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:124,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: release_old_vec
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - ASSERT
    - clear_bit
    - valid_irq_vector
    - test_bit
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void release_old_vec(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/irq.c:140,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/irq.c:141,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/irq.c:141,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/irq.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - event
    - irq
    - vector
    - mask
    argTypes:
    - uint32_t
    - int
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: _trace_irq_mask
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - min
    - memcpy
    - trace_time
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void _trace_irq_mask(uint32_t event, int irq, int vector,\n                            const
      cpumask_t *mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:148,1
    - Dst: _trace_irq_mask
      Src: /src/xen/xen/arch/x86/irq.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - event
    - irq
    - vector
    - mask
    argTypes:
    - uint32_t
    - int
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: trace_irq_mask
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - _trace_irq_mask
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void trace_irq_mask(uint32_t event, int irq, int vector,\n                           const
      cpumask_t *mask)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:158,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:160,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:161,1
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/irq.c:164,1
    - Dst: trace_irq_mask
      Src: /src/xen/xen/arch/x86/irq.c:168,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/irq.c:169,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:170,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:172,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:175,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:175,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - desc
    - vector
    - cpu_mask
    argTypes:
    - struct irq_desc*
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 180
    functionName: _bind_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - cpumask_equal
    - cpumask_empty
    - trace_irq_mask
    - BUG_ON
    - ASSERT
    - per_cpu
    - cpumask_copy
    - test_bit
    - cpumask_and
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int _bind_irq_vector(struct irq_desc *desc, int vector,\n                                   const
      cpumask_t *cpu_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:184,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:188,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:190,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:191,1
    - Dst: _bind_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:192,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:193,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - irq
    - vector
    - mask
    argTypes:
    - int
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 197
    functionName: bind_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - spin_lock_irqsave
    - _bind_irq_vector
    - spin_unlock_irqrestore
    - BUG_ON
    - spin_lock
    linkageType: ''
    returnType: int
    signature: int bind_irq_vector(int irq, int vector, const cpumask_t *mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:203,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:205,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:205,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:208,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:212,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:212,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:213,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/irq.c:217,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:221,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:221,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:222,1
    - Dst: trace_irq_mask
      Src: /src/xen/xen/arch/x86/irq.c:225,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:227,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:231,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:235,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:235,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:236,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:237,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:240,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/irq.c:245,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/irq.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 247
    functionName: _clear_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - unlikely
    - TRACE_TIME
    - trace_irq_mask
    - write_atomic
    - smp_wmb
    - BUG_ON
    - ASSERT
    - per_cpu
    - clear_bit
    - this_cpu
    - valid_irq_vector
    - test_bit
    - cpumask_and
    - release_old_vec
    linkageType: ''
    returnType: void
    signature: void _clear_irq_vector(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:212,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:212,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu(cpu, tmp_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:235,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:235,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:236,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - TRACE_TIME
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu(cpu, tmp_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:251,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:254,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:255,1
    - Dst: _clear_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:256,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:257,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: clear_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - spin_lock_irqsave
    - _clear_irq_vector
    - spin_unlock_irqrestore
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void clear_irq_vector(int irq)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:272,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/irq.c:273,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:280,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/arch/x86/irq.c:287,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:288,1
    - Dst: assign_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:291,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:293,1
    - Dst: irq_permit_access
      Src: /src/xen/xen/arch/x86/irq.c:305,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:307,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - node
    - grant_access
    argTypes:
    - nodeid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 315
    functionName: create_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - irq_to_desc
    - cpumask_empty
    - init_one_irq_desc
    - assign_irq_vector
    - node_to_cpumask
    - irq_permit_access
    - ASSERT
    - printk
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int create_irq(nodeid_t node, bool grant_access)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:319,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:323,1
    - Dst: MSI_IRQ
      Src: /src/xen/xen/arch/x86/irq.c:323,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/irq.c:327,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/arch/x86/irq.c:331,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:334,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/irq.c:338,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:344,1
    - Dst: struct irq_desc*::handler::shutdown
      Src: /src/xen/xen/arch/x86/irq.c:346,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/irq.c:351,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:352,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/irq.c:355,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:357,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:359,1
    - Dst: _clear_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:360,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:361,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:363,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 366
    functionName: destroy_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - smp_mb
    - spin_unlock
    - irq_deny_access
    - MSI_IRQ
    - irq_to_desc
    - rcu_lock_domain_by_id
    - spin_lock_irqsave
    - _clear_irq_vector
    - cpumask_setall
    - spin_unlock_irqrestore
    - BUG_ON
    - spin_lock
    - printk
    - struct irq_desc*::handler::shutdown
    - rcu_unlock_domain
    - xfree
    linkageType: ''
    returnType: void
    signature: void destroy_irq(unsigned int irq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:373,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:374,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/irq.c:376,1
    - Dst: MSI_IRQ
      Src: /src/xen/xen/arch/x86/irq.c:388,1
    - Dst: LEGACY_VECTOR
      Src: /src/xen/xen/arch/x86/irq.c:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: irq_to_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - MSI_IRQ
    - irq_to_desc
    - IO_APIC_IRQ
    - BUG_ON
    - LEGACY_VECTOR
    linkageType: ''
    returnType: int
    signature: int irq_to_vector(int irq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:398,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:401,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:403,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:407,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:409,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 419
    functionName: arch_init_one_irq_desc
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - zalloc_cpumask_var
    - alloc_cpumask_var
    - free_cpumask_var
    linkageType: ''
    returnType: int
    signature: int arch_init_one_irq_desc(struct irq_desc *desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:427,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/irq.c:429,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:438,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:441,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:446,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:453,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:458,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:465,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:469,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 478
    functionName: init_irq_data
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - irq_to_desc
    - init_one_irq_desc
    - xzalloc_array
    - BUILD_BUG_ON
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int init_irq_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_bad_irq
      Src: /src/xen/xen/arch/x86/irq.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: irq_ack_none
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - ack_bad_irq
    linkageType: ''
    returnType: void
    signature: void irq_ack_none(struct irq_desc *desc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:491,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:496,1
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/irq.c:502,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:503,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:505,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:508,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:508,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:510,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:513,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/irq.c:517,1
    - Dst: io_apic_get_used_vector_map
      Src: /src/xen/xen/arch/x86/irq.c:520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 524
    functionName: irq_get_used_vector_mask
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - irq_to_vector
    - IO_APIC_IRQ
    - ASSERT
    - io_apic_get_used_vector_map
    - printk
    - valid_irq_vector
    - test_bit
    - set_bit
    linkageType: ''
    returnType: vmask_t
    signature: vmask_t *irq_get_used_vector_mask(int irq)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/irq.c:544,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:545,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:549,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:559,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:560,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/irq.c:560,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:564,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:576,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:585,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:585,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:586,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:586,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:588,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:597,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/irq.c:600,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:601,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/irq.c:605,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:610,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:610,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:611,1
    - Dst: irq_get_used_vector_mask
      Src: /src/xen/xen/arch/x86/irq.c:634,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/irq.c:641,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:653,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:656,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:660,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:667,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:676,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:676,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:686,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:687,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:689,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:691,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:694,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:698,1
    - Dst: trace_irq_mask
      Src: /src/xen/xen/arch/x86/irq.c:701,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:701,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:703,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:705,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:705,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:708,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:714,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:714,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:716,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 93
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 723
    functionName: _assign_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - irq_to_vector
    - valid_irq_vector
    - cpumask_and
    - test_and_clear_bit
    - test_bit
    - release_old_vec
    - cpumask_clear
    - irq_get_used_vector_mask
    - cpu_online
    - ASSERT
    - clear_bit
    - cpumask_copy
    - cpumask_of
    - ASSERT_UNREACHABLE
    - cpumask_any
    - set_bit
    - cpumask_empty
    - per_cpu
    - unlikely
    - trace_irq_mask
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int _assign_irq_vector(struct irq_desc *desc, const cpumask_t *mask)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/irq.c:641,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:653,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:656,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:660,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:667,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:676,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:676,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:686,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:687,1
    - Dst: valid_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:689,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:691,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:694,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:698,1
    - Dst: trace_irq_mask
      Src: /src/xen/xen/arch/x86/irq.c:701,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:701,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:703,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:705,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:705,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:708,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:714,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:714,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:716,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 721
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 3
    functionsReached:
    - cpu_online
    - set_bit
    - cpumask_copy
    - test_and_clear_bit
    - cpumask_empty
    - trace_irq_mask
    - cpumask_and
    - ASSERT
    - per_cpu
    - unlikely
    - valid_irq_vector
    - cpumask_of
    - test_bit
    - ASSERT_UNREACHABLE
    - release_old_vec
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void for_each_cpu(cpu, mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:729,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:731,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:733,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:735,1
    - Dst: _assign_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:736,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:737,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:743,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/irq.c:745,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - irq
    - mask
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 725
    functionDepth: 4
    functionLinenumber: 725
    functionLinenumberEnd: 751
    functionName: assign_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - spin_lock_irqsave
    - _assign_irq_vector
    - cpumask_setall
    - spin_unlock_irqrestore
    - BUG_ON
    - spin_lock
    - cpumask_copy
    linkageType: ''
    returnType: int
    signature: int assign_irq_vector(int irq, const cpumask_t *mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:764,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:768,1
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/arch/x86/irq.c:770,1
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/irq.c:772,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/irq.c:773,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 784
    functionName: setup_vector_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - irq_desc_initialized
    - irq_to_desc
    - irq_to_vector
    - per_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void setup_vector_irq(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:790,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:807,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:807,1
    - Dst: struct irq_desc*::handler::set_affinity
      Src: /src/xen/xen/arch/x86/irq.c:808,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/irq.c:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 811
    functionName: move_masked_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - likely
    - struct irq_desc*::handler::set_affinity
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void move_masked_irq(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:815,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:818,1
    - Dst: struct irq_desc*::handler::disable
      Src: /src/xen/xen/arch/x86/irq.c:821,1
    - Dst: move_masked_irq
      Src: /src/xen/xen/arch/x86/irq.c:822,1
    - Dst: struct irq_desc*::handler::enable
      Src: /src/xen/xen/arch/x86/irq.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 824
    functionName: move_native_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - struct irq_desc*::handler::enable
    - likely
    - struct irq_desc*::handler::disable
    - unlikely
    - move_masked_irq
    linkageType: ''
    returnType: void
    signature: void move_native_irq(struct irq_desc *desc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/irq.c:830,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:832,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/irq.c:833,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:842,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:847,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:851,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/irq.c:860,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/irq.c:863,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:875,1
    - Dst: send_IPI_self
      Src: /src/xen/xen/arch/x86/irq.c:878,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:879,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:883,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/irq.c:885,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:890,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:891,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:894,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 826
    functionDepth: 2
    functionLinenumber: 826
    functionLinenumberEnd: 896
    functionName: irq_move_cleanup_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - spin_unlock
    - TRACE_TIME
    - release_old_vec
    - irq_to_desc
    - ack_APIC_irq
    - smp_processor_id
    - spin_lock
    - apic_read
    - ASSERT
    - per_cpu
    - ASSERT_UNREACHABLE
    - send_IPI_self
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void irq_move_cleanup_interrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:900,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/irq.c:902,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/irq.c:905,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: send_cleanup_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cpumask_weight
    - cpumask_and
    - release_old_vec
    - send_IPI_mask
    linkageType: ''
    returnType: void
    signature: void send_cleanup_vector(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:916,1
    - Dst: get_irq_regs
      Src: /src/xen/xen/arch/x86/irq.c:919,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:920,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/irq.c:923,1
    - Dst: send_cleanup_vector
      Src: /src/xen/xen/arch/x86/irq.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 912
    functionDepth: 5
    functionLinenumber: 912
    functionLinenumberEnd: 925
    functionName: irq_complete_move
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - send_cleanup_vector
    - smp_processor_id
    - likely
    - get_irq_regs
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void irq_complete_move(struct irq_desc *desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:933,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:936,1
    - Dst: _assign_irq_vector
      Src: /src/xen/xen/arch/x86/irq.c:937,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:938,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:945,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:946,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/irq.c:950,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:951,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/irq.c:953,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/irq.c:955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 927
    functionDepth: 4
    functionLinenumber: 927
    functionLinenumberEnd: 956
    functionName: set_desc_affinity
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - _assign_irq_vector
    - spin_unlock_irqrestore
    - cpumask_setall
    - cpu_mask_to_apicid
    - cpumask_copy
    - cpumask_and
    - cpumask_intersects
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int set_desc_affinity(struct irq_desc *desc, const cpumask_t
      *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:964,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/irq.c:964,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/irq.c:966,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:967,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/irq.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 970
    functionName: irq_set_affinity
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - ASSERT
    - spin_is_locked
    - cpumask_copy
    linkageType: ''
    returnType: void
    signature: void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:975,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/x86/irq.c:979,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - d
    - pirq
    - mask
    argTypes:
    - struct domain*
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 981
    functionName: pirq_set_affinity
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - domain_spin_lock_irq_desc
    - irq_set_affinity
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void pirq_set_affinity(struct domain *d, int pirq, const cpumask_t
      *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:989,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 992
    functionName: alloc_hipriority_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t alloc_hipriority_vector(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vector
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 999
    functionName: set_direct_apic_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void set_direct_apic_vector(uint8_t vector, void (*handler)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:1005,1
    - Dst: alloc_hipriority_vector
      Src: /src/xen/xen/arch/x86/irq.c:1007,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/irq.c:1008,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vector
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    functionName: alloc_direct_apic_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - alloc_hipriority_vector
    - set_direct_apic_vector
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void alloc_direct_apic_vector(uint8_t *vector, void (*handler)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1016,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vector
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1018
    functionName: free_lopriority_vector
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void free_lopriority_vector(uint8_t vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:1025,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/irq.c:1027,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:1029,1
    - Dst: struct irq_desc*::handler::enable
      Src: /src/xen/xen/arch/x86/irq.c:1030,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/irq.c:1031,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/irq.c:1032,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:1033,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1037
    functionName: irq_ratelimit_timer_fn
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - struct irq_desc*::handler::enable
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - list_del
    - list_for_each_entry_safe
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void irq_ratelimit_timer_fn(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/irq.c:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1044
    functionName: irq_ratelimit_init
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - init_timer
    linkageType: ''
    returnType: int
    signature: int irq_ratelimit_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/irq.c:1065,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/x86/irq.c:1074,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - irq
    - irqflags
    - devname
    - dev_id
    argTypes:
    - unsigned int
    - unsigned int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1079
    functionName: request_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - setup_irq
    - xmalloc
    - xfree
    linkageType: ''
    returnType: int
    signature: "int request_irq(unsigned int irq, unsigned int irqflags,\n        void
      (*handler)(int irq, void *dev_id),\n        const char * devname, void *dev_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:1087,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:1089,1
    - Dst: struct irq_desc*::handler::shutdown
      Src: /src/xen/xen/arch/x86/irq.c:1092,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1094,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/irq.c:1097,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1101
    functionName: release_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - struct irq_desc*::handler::shutdown
    - xfree
    linkageType: ''
    returnType: void
    signature: void release_irq(unsigned int irq, const void *dev_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1109,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:1111,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:1113,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1117,1
    - Dst: desc::desc
      Src: /src/xen/xen/arch/x86/irq.c:1121,1
    - Dst: struct irq_desc*::handler::startup
      Src: /src/xen/xen/arch/x86/irq.c:1123,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - irq
    - irqflags
    - new
    argTypes:
    - unsigned int
    - unsigned int
    - struct irqaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1128
    functionName: setup_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - desc::desc
    - irq_to_desc
    - spin_lock_irqsave
    - struct irq_desc*::handler::startup
    - spin_unlock_irqrestore
    - ASSERT
    linkageType: ''
    returnType: int
    signature: "int setup_irq(unsigned int irq, unsigned int irqflags,\n                     struct
      irqaction *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1151
    functionName: guest_action
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: irq_guest_action_t
    signature: irq_guest_action_t *guest_action(const struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1165
    functionName: pending_eoi_sp
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pending_eoi_sp(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1168,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1169
    functionName: cpu_has_pending_apic_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - this_cpu
    - pending_eoi_sp
    linkageType: ''
    returnType: bool
    signature: bool cpu_has_pending_apic_eoi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1173,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1174,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1176,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/irq.c:1178,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1183,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1192
    functionName: end_nonmaskable_irq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - pending_eoi_sp
    - ack_APIC_irq
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void end_nonmaskable_irq(struct irq_desc *desc, uint8_t vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1198,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1201
    functionName: set_pirq_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - set_bit
    linkageType: ''
    returnType: void
    signature: void set_pirq_eoi(struct domain *d, unsigned int irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1207,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/irq.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1203
    functionDepth: 0
    functionLinenumber: 1203
    functionLinenumberEnd: 1210
    functionName: clear_pirq_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void clear_pirq_eoi(struct domain *d, unsigned int irq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1220,1
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1222,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1225,1
    - Dst: timer_is_active
      Src: /src/xen/xen/arch/x86/irq.c:1231,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:1237,1
    - Dst: domain_irq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1237,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/irq.c:1239,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1245,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:1248,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:1257,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1261,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:1262,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1263,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/irq.c:1264,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1270
    functionName: irq_guest_eoi_timer_fn
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - struct irq_desc*::handler::end
    - cpumask_copy
    - domain_irq_to_pirq
    - on_selected_cpus
    - spin_unlock_irq
    - spin_lock_irq
    - pirq_info
    - ASSERT
    - test_and_clear_bool
    - printk
    - this_cpu
    - ASSERT_UNREACHABLE
    - timer_is_active
    linkageType: ''
    returnType: void
    signature: void irq_guest_eoi_timer_fn(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:1280,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - pirq
    - pflags
    argTypes:
    - struct domain*
    - int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1283
    functionName: domain_spin_lock_irq_desc
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - pirq_info
    - pirq_spin_lock_irq_desc
    linkageType: ''
    returnType: struct irq_desc
    signature: "struct irq_desc *domain_spin_lock_irq_desc(\n    struct domain *d,
      int pirq, unsigned long *pflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:1301,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:1302,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pirq
    - pflags
    argTypes:
    - struct pirq*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1312
    functionName: pirq_spin_lock_irq_desc
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - irq_to_desc
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: struct irq_desc
    signature: "struct irq_desc *pirq_spin_lock_irq_desc(\n    const struct pirq *pirq,
      unsigned long *pflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_insert
      Src: /src/xen/xen/arch/x86/irq.c:1317,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:1318,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/irq.c:1323,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/x86/irq.c:1327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - d
    - irq
    - pirq
    - pinfo
    argTypes:
    - struct domain*
    - int
    - int
    - struct pirq**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1333
    functionName: prepare_domain_irq_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - radix_tree_delete
    - radix_tree_int_to_ptr
    - radix_tree_insert
    - pirq_get_info
    linkageType: ''
    returnType: int
    signature: "int prepare_domain_irq_pirq(struct domain *d, int irq, int pirq,\n
      \                               struct pirq **pinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/arch/x86/irq.c:1337,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/arch/x86/irq.c:1338,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - irq
    - pirq
    argTypes:
    - struct domain*
    - int
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1341
    functionName: set_domain_irq_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - radix_tree_lookup_slot
    - radix_tree_replace_slot
    - radix_tree_int_to_ptr
    linkageType: ''
    returnType: void
    signature: void set_domain_irq_pirq(struct domain *d, int irq, struct pirq *pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/arch/x86/irq.c:1346,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/arch/x86/irq.c:1347,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - irq
    - pirq
    argTypes:
    - struct domain*
    - int
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1349
    functionName: clear_domain_irq_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - radix_tree_lookup_slot
    - radix_tree_replace_slot
    - radix_tree_int_to_ptr
    linkageType: ''
    returnType: void
    signature: void clear_domain_irq_pirq(struct domain *d, int irq, struct pirq *pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/arch/x86/irq.c:1355,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/x86/irq.c:1356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - irq
    - pirq
    argTypes:
    - struct domain*
    - int
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1357
    functionName: cleanup_domain_irq_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - radix_tree_delete
    - pirq_cleanup_check
    linkageType: ''
    returnType: void
    signature: "void cleanup_domain_irq_pirq(struct domain *d, int irq,\n                                    struct
      pirq *pirq)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_init
      Src: /src/xen/xen/arch/x86/irq.c:1364,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1365,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/arch/x86/irq.c:1366,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/irq.c:1368,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/irq.c:1372,1
    - Dst: prepare_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1374,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1377,1
    - Dst: set_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1380,1
    - Dst: cleanup_domain_irq_mapping
      Src: /src/xen/xen/arch/x86/irq.c:1384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1386
    functionName: init_domain_irq_mapping
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - cleanup_domain_irq_mapping
    - platform_legacy_irq
    - set_domain_irq_pirq
    - IO_APIC_IRQ
    - radix_tree_init
    - ASSERT
    - prepare_domain_irq_pirq
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int init_domain_irq_mapping(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/arch/x86/irq.c:1390,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1391,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/arch/x86/irq.c:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1393
    functionName: cleanup_domain_irq_mapping
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - radix_tree_destroy
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void cleanup_domain_irq_mapping(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1397,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/arch/x86/irq.c:1399,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1403,1
    - Dst: pt_pirq_init
      Src: /src/xen/xen/arch/x86/irq.c:1406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1411
    functionName: alloc_pirq_struct
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - xzalloc_bytes
    - pt_pirq_init
    - is_hvm_domain
    linkageType: ''
    returnType: struct pirq
    signature: struct pirq *alloc_pirq_struct(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1424,1
    - Dst: pt_pirq_cleanup_check
      Src: /src/xen/xen/arch/x86/irq.c:1428,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/x86/irq.c:1432,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/irq.c:1433,1
    - Dst: free_pirq_struct
      Src: /src/xen/xen/arch/x86/irq.c:1434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pirq
    - d
    argTypes:
    - struct pirq*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1435
    functionName: pirq_cleanup_check
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 2
    functionsReached:
    - radix_tree_delete
    - BUG
    - free_pirq_struct
    - is_hvm_domain
    - pt_pirq_cleanup_check
    linkageType: ''
    returnType: void
    signature: void pirq_cleanup_check(struct pirq *pirq, struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1440,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1444,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1444,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1446,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1451,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:1452,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:1453,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:1455,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:1456,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1460
    functionName: flush_ready_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - struct irq_desc*::handler::end
    - spin_unlock
    - irq_to_desc
    - pending_eoi_sp
    - ASSERT
    - spin_lock
    - this_cpu
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void flush_ready_eoi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1464,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1465,1
    - Dst: cpumask_test_and_clear_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1471,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:1471,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1475,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1478,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1482
    functionName: __set_eoi_ready
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - smp_processor_id
    - pending_eoi_sp
    - this_cpu
    - ASSERT
    - cpumask_test_and_clear_cpu
    linkageType: ''
    returnType: void
    signature: void __set_eoi_ready(const struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1489,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1489,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:1491,1
    - Dst: __set_eoi_ready
      Src: /src/xen/xen/arch/x86/irq.c:1492,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:1493,1
    - Dst: flush_ready_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1496
    functionName: set_eoi_ready
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - flush_ready_eoi
    - ASSERT
    - __set_eoi_ready
    - spin_lock
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void set_eoi_ready(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1502,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1502,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1503,1
    - Dst: desc_guest_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pirq
    argTypes:
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1506
    functionName: pirq_guest_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - desc_guest_eoi
    - ASSERT
    - pirq_spin_lock_irq_desc
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void pirq_guest_eoi(struct pirq *pirq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1510,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1513,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1514,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/irq.c:1514,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1515,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1517,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/irq.c:1521,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1525,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:1525,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:1527,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1528,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1532,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:1534,1
    - Dst: __cpumask_test_and_clear_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1536,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:1536,1
    - Dst: __set_eoi_ready
      Src: /src/xen/xen/arch/x86/irq.c:1538,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:1539,1
    - Dst: flush_ready_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1540,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/irq.c:1541,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1545,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:1548,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/irq.c:1549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - desc
    - pirq
    argTypes:
    - struct irq_desc*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1550
    functionName: desc_guest_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - guest_action
    - struct irq_desc*::handler::end
    - spin_unlock
    - cpumask_copy
    - local_irq_enable
    - cpumask_empty
    - smp_processor_id
    - on_selected_cpus
    - spin_unlock_irq
    - flush_ready_eoi
    - ASSERT
    - stop_timer
    - __cpumask_test_and_clear_cpu
    - test_and_clear_bool
    - __set_eoi_ready
    - unlikely
    linkageType: ''
    returnType: void
    signature: void desc_guest_eoi(struct irq_desc *desc, struct pirq *pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_gang_lookup
      Src: /src/xen/xen/arch/x86/irq.c:1558,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/irq.c:1559,1
    - Dst: evtchn_port_is_masked
      Src: /src/xen/xen/arch/x86/irq.c:1564,1
    - Dst: pirq_guest_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1565,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/irq.c:1567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1552
    functionDepth: 3
    functionLinenumber: 1552
    functionLinenumberEnd: 1570
    functionName: pirq_guest_unmask
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - evtchn_port_is_masked
    - ARRAY_SIZE
    - radix_tree_gang_lookup
    - pirq_guest_eoi
    linkageType: ''
    returnType: int
    signature: int pirq_guest_unmask(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/irq.c:1581,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/irq.c:1582,1
    - Dst: msi_maskable_irq
      Src: /src/xen/xen/arch/x86/irq.c:1590,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/irq.c:1596,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/irq.c:1601,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1604,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/irq.c:1606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1609
    functionName: irq_acktype
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - printk
    - BUG
    - strcmp
    - msi_maskable_irq
    linkageType: ''
    returnType: int
    signature: int irq_acktype(const struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1618,1
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1622,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:1625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1611
    functionDepth: 2
    functionLinenumber: 1611
    functionLinenumberEnd: 1628
    functionName: pirq_shared
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - domain_spin_lock_irq_desc
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int pirq_shared(struct domain *d, int pirq)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/irq.c:1637,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:1637,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1638,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1638,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1641,1
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1648,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1652,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1661,1
    - Dst: xmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/irq.c:1662,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:1664,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1666,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1667,1
    - Dst: irq_acktype
      Src: /src/xen/xen/arch/x86/irq.c:1680,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/irq.c:1681,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:1694,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:1695,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/irq.c:1697,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:1700,1
    - Dst: struct irq_desc*::handler::set_affinity
      Src: /src/xen/xen/arch/x86/irq.c:1704,1
    - Dst: struct irq_desc*::handler::startup
      Src: /src/xen/xen/arch/x86/irq.c:1708,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1712,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1725,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1726,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1727,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/irq.c:1728,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:1734,1
    - Dst: set_pirq_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1745,1
    - Dst: clear_pirq_eoi
      Src: /src/xen/xen/arch/x86/irq.c:1747,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1750,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:1754,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1755,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 3
    argNames:
    - v
    - pirq
    - will_share
    argTypes:
    - struct vcpu*
    - struct pirq*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1758
    functionName: pirq_guest_bind
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - cpu_relax
    - struct irq_desc*::handler::startup
    - xfree
    - free_cpumask_var
    - pirq_spin_lock_irq_desc
    - irq_acktype
    - cpumask_setall
    - BUG_ON
    - zalloc_cpumask_var
    - clear_pirq_eoi
    - printk
    - local_irq_is_enabled
    - xmalloc_flex_struct
    - WARN_ON
    - guest_action
    - spin_unlock_irq
    - ASSERT
    - cpumask_of
    - init_timer
    - struct irq_desc*::handler::set_affinity
    - set_pirq_eoi
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int pirq_guest_bind(struct vcpu *v, struct pirq *pirq, int will_share)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1763,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1767,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:1769,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1771,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1777,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/irq.c:1778,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/irq.c:1785,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:1788,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/irq.c:1792,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:1796,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1797,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/irq.c:1798,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1799,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1808,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1813,1
    - Dst: struct irq_desc*::handler::disable
      Src: /src/xen/xen/arch/x86/irq.c:1816,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:1826,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:1827,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1829,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1830,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/irq.c:1831,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1832,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1835,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:1835,1
    - Dst: struct irq_desc*::handler::shutdown
      Src: /src/xen/xen/arch/x86/irq.c:1839,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 3
    argNames:
    - d
    - pirq
    - desc
    argTypes:
    - struct domain*
    - struct pirq*
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1843
    functionName: __pirq_guest_unbind
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - struct irq_desc*::handler::end
    - cpumask_copy
    - struct irq_desc*::handler::shutdown
    - cpumask_empty
    - on_selected_cpus
    - spin_unlock_irq
    - spin_lock_irq
    - BUG_ON
    - memmove
    - test_and_clear_bool
    - struct irq_desc*::handler::disable
    - unlikely
    - dprintk
    linkageType: ''
    returnType: irq_guest_action_t
    signature: "irq_guest_action_t *__pirq_guest_unbind(\n    struct domain *d, struct
      pirq *pirq, struct irq_desc *desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/irq.c:1851,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:1851,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1853,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1853,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1854,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1859,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:1860,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1861,1
    - Dst: clear_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1862,1
    - Dst: __pirq_guest_unbind
      Src: /src/xen/xen/arch/x86/irq.c:1866,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1869,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/irq.c:1873,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:1874,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1875,1
    - Dst: cleanup_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1845
    functionDepth: 2
    functionLinenumber: 1845
    functionLinenumberEnd: 1879
    functionName: pirq_guest_unbind
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 1
    functionsReached:
    - __pirq_guest_unbind
    - rw_is_write_locked
    - clear_domain_irq_pirq
    - free_cpumask_var
    - pirq_spin_lock_irq_desc
    - irq_to_desc
    - local_irq_is_enabled
    - cleanup_domain_irq_pirq
    - spin_unlock_irq
    - spin_lock_irq
    - BUG_ON
    - kill_timer
    - xfree
    - WARN_ON
    linkageType: ''
    returnType: void
    signature: void pirq_guest_unbind(struct domain *d, struct pirq *pirq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/irq.c:1888,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:1888,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1890,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/irq.c:1890,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/irq.c:1891,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:1892,1
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1894,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1895,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:1898,1
    - Dst: __pirq_guest_unbind
      Src: /src/xen/xen/arch/x86/irq.c:1909,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:1912,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/irq.c:1916,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/irq.c:1917,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:1918,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 1922
    functionName: pirq_guest_force_unbind
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - __pirq_guest_unbind
    - rw_is_write_locked
    - free_cpumask_var
    - pirq_spin_lock_irq_desc
    - local_irq_is_enabled
    - xfree
    - spin_unlock_irq
    - BUG_ON
    - kill_timer
    - unlikely
    - dprintk
    - WARN_ON
    linkageType: ''
    returnType: bool
    signature: bool pirq_guest_force_unbind(struct domain *d, struct pirq *pirq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:1926,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1928,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:1930,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1933,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1934,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:1936,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/irq.c:1945,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1949,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1951,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:1952,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:1956,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1957,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:1957,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:1963,1
    - Dst: domain_irq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1963,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/irq.c:1966,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:1968,1
    - Dst: hvm_do_IRQ_dpci
      Src: /src/xen/xen/arch/x86/irq.c:1968,1
    - Dst: send_guest_pirq
      Src: /src/xen/xen/arch/x86/irq.c:1969,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/irq.c:1974,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:1974,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/irq.c:1975,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/irq.c:1975,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/irq.c:1975,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1977
    functionName: do_IRQ_guest
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - test_and_set_bool
    - pirq_info
    - stop_timer
    - is_hvm_domain
    - struct irq_desc*::handler::end
    - smp_processor_id
    - domain_irq_to_pirq
    - NOW
    - guest_action
    - pending_eoi_sp
    - ASSERT
    - migrate_timer
    - this_cpu
    - set_timer
    - hvm_do_IRQ_dpci
    - unlikely
    - cpumask_set_cpu
    - MILLISECS
    - send_guest_pirq
    linkageType: ''
    returnType: void
    signature: void do_IRQ_guest(struct irq_desc *desc, unsigned int vector)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1985,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/arch/x86/irq.c:1986,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/irq.c:1988,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:1989,1
    - Dst: irq_enter
      Src: /src/xen/xen/arch/x86/irq.c:1990,1
    - Dst: apic_isr_read
      Src: /src/xen/xen/arch/x86/irq.c:2000,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/irq.c:2001,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:2006,1
    - Dst: bogus_8259A_irq
      Src: /src/xen/xen/arch/x86/irq.c:2016,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2018,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:2019,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2020,1
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/arch/x86/irq.c:2021,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:2023,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2024,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2025,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2026,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2027,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2030,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:2033,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2038,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:2040,1
    - Dst: struct irq_desc*::handler::ack
      Src: /src/xen/xen/arch/x86/irq.c:2041,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:2043,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/irq.c:2046,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/irq.c:2048,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/irq.c:2050,1
    - Dst: struct irq_desc*::handler::disable
      Src: /src/xen/xen/arch/x86/irq.c:2052,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:2058,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/irq.c:2058,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:2060,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/irq.c:2061,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/irq.c:2062,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/irq.c:2062,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/irq.c:2063,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2064,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/x86/irq.c:2072,1
    - Dst: do_IRQ_guest
      Src: /src/xen/xen/arch/x86/irq.c:2073,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:2074,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/x86/irq.c:2074,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/irq.c:2094,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/x86/irq.c:2096,1
    - Dst: struct irqaction*::handler
      Src: /src/xen/xen/arch/x86/irq.c:2097,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/irq.c:2098,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/x86/irq.c:2098,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/irq.c:2100,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2112,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/x86/irq.c:2113,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2114,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2116,1
    - Dst: flush_ready_eoi
      Src: /src/xen/xen/arch/x86/irq.c:2117,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2122,1
    - Dst: irq_exit
      Src: /src/xen/xen/arch/x86/irq.c:2124,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/arch/x86/irq.c:2125,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 1979
    functionDepth: 2
    functionLinenumber: 1979
    functionLinenumberEnd: 2126
    functionName: do_IRQ
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - struct irqaction*::handler
    - irq_exit
    - likely
    - spin_lock_irq
    - spin_lock
    - struct irq_desc*::handler::ack
    - struct irq_desc*::handler::end
    - irq_to_desc
    - irq_enter
    - smp_processor_id
    - struct irq_desc*::handler::disable
    - printk
    - NOW
    - set_irq_regs
    - spin_unlock
    - irq_desc_initialized
    - CPUMASK_PR
    - do_IRQ_guest
    - bogus_8259A_irq
    - spin_unlock_irq
    - flush_ready_eoi
    - this_cpu
    - get_cycles
    - list_empty
    - perfc_incr
    - ack_APIC_irq
    - apic_isr_read
    - set_timer
    - unlikely
    - MILLISECS
    - list_add
    linkageType: ''
    returnType: void
    signature: void do_IRQ(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:2131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2133
    functionName: is_free_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - is_hvm_domain
    linkageType: ''
    returnType: bool
    signature: "bool is_free_pirq(const struct domain *d,\n                                const
      struct pirq *pirq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2139,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2139,1
    - Dst: is_free_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2144,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2144,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/irq.c:2146,1
    - Dst: is_free_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2151,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2151,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/irq.c:2153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - d
    - type
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2135
    functionDepth: 2
    functionLinenumber: 2135
    functionLinenumberEnd: 2158
    functionName: get_free_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - pirq_info
    - ASSERT
    - is_free_pirq
    - pirq_get_info
    linkageType: ''
    returnType: int
    signature: int get_free_pirq(struct domain *d, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2164,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2164,1
    - Dst: is_free_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2167,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2167,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/irq.c:2169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - nr
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2160
    functionDepth: 2
    functionLinenumber: 2160
    functionLinenumberEnd: 2177
    functionName: get_free_pirqs
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - pirq_info
    - ASSERT
    - is_free_pirq
    - pirq_get_info
    linkageType: ''
    returnType: int
    signature: int get_free_pirqs(struct domain *d, unsigned int nr)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_BITMAP
      Src: /src/xen/xen/arch/x86/irq.c:2189,1
    - Dst: DECLARE_BITMAP
      Src: /src/xen/xen/arch/x86/irq.c:2190,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2192,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2192,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/irq.c:2194,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2199,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/irq.c:2204,1
    - Dst: domain_irq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2205,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2210,1
    - Dst: xsm_map_domain_irq
      Src: /src/xen/xen/arch/x86/irq.c:2216,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2219,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:2224,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/irq.c:2224,1
    - Dst: irq_permit_access
      Src: /src/xen/xen/arch/x86/irq.c:2226,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2229,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:2234,1
    - Dst: prepare_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2237,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:2241,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2243,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/irq.c:2252,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/arch/x86/irq.c:2258,1
    - Dst: pci_enable_msi
      Src: /src/xen/xen/arch/x86/irq.c:2262,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2273,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2277,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2278,1
    - Dst: pci_disable_msi
      Src: /src/xen/xen/arch/x86/irq.c:2280,1
    - Dst: msi_free_irq
      Src: /src/xen/xen/arch/x86/irq.c:2282,1
    - Dst: setup_msi_irq
      Src: /src/xen/xen/arch/x86/irq.c:2287,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2297,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2297,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/irq.c:2298,1
    - Dst: set_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2306,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2307,1
    - Dst: create_irq
      Src: /src/xen/xen/arch/x86/irq.c:2311,1
    - Dst: prepare_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2312,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:2317,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/irq.c:2320,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/irq.c:2320,1
    - Dst: irq_permit_access
      Src: /src/xen/xen/arch/x86/irq.c:2322,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2323,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/irq.c:2327,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2330,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2331,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2335,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2345,1
    - Dst: pci_disable_msi
      Src: /src/xen/xen/arch/x86/irq.c:2347,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2350,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2351,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2352,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2355,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2359,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/arch/x86/irq.c:2360,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2361,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2364,1
    - Dst: cleanup_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2365,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2366,1
    - Dst: msi_free_irq
      Src: /src/xen/xen/arch/x86/irq.c:2370,1
    - Dst: set_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2374,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2375,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2379,1
    - Dst: set_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2380,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2381,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2388,1
    - Dst: cleanup_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2389,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2391,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/arch/x86/irq.c:2391,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2392,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 144
    argCount: 5
    argNames:
    - d
    - pirq
    - irq
    - type
    - data
    argTypes:
    - struct domain*
    - int
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2181
    functionDepth: 2
    functionLinenumber: 2181
    functionLinenumberEnd: 2397
    functionName: map_domain_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - rw_is_write_locked
    - likely
    - spin_unlock_irqrestore
    - pirq_info
    - msi_free_irq
    - __set_bit
    - irq_deny_access
    - irq_to_desc
    - create_irq
    - domain_irq_to_pirq
    - set_domain_irq_pirq
    - printk
    - test_bit
    - dprintk
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - cleanup_domain_irq_pirq
    - DECLARE_BITMAP
    - ASSERT
    - pci_disable_msi
    - pci_enable_msi
    - setup_msi_irq
    - prepare_domain_irq_pirq
    - xsm_map_domain_irq
    - set_bit
    - spin_lock_irqsave
    - irq_access_permitted
    - irq_permit_access
    - pci_get_pdev
    linkageType: ''
    returnType: int
    signature: "int map_domain_pirq(\n    struct domain *d, int pirq, int irq, int
      type, void *data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/irq.c:2412,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2413,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2413,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2415,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2418,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2424,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2430,1
    - Dst: xsm_unmap_domain_irq
      Src: /src/xen/xen/arch/x86/irq.c:2444,1
    - Dst: pirq_guest_force_unbind
      Src: /src/xen/xen/arch/x86/irq.c:2450,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2452,1
    - Dst: pci_disable_msi
      Src: /src/xen/xen/arch/x86/irq.c:2456,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2458,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2464,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2469,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2471,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:2473,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/irq.c:2473,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:2474,1
    - Dst: clear_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2477,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/arch/x86/irq.c:2481,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/arch/x86/irq.c:2482,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:2483,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2492,1
    - Dst: cleanup_domain_irq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2495,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/arch/x86/irq.c:2497,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2500,1
    - Dst: msi_free_irq
      Src: /src/xen/xen/arch/x86/irq.c:2508,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2400
    functionDepth: 3
    functionLinenumber: 2400
    functionLinenumberEnd: 2512
    functionName: unmap_domain_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - rw_is_write_locked
    - spin_unlock_irqrestore
    - pirq_info
    - msi_free_irq
    - irq_deny_access
    - irq_to_desc
    - BUG_ON
    - printk
    - pirq_guest_force_unbind
    - dprintk
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - clear_domain_irq_pirq
    - radix_tree_replace_slot
    - cleanup_domain_irq_pirq
    - radix_tree_lookup_slot
    - ASSERT
    - pci_disable_msi
    - xsm_unmap_domain_irq
    - radix_tree_int_to_ptr
    - spin_lock_irqsave
    linkageType: ''
    returnType: int
    signature: int unmap_domain_pirq(struct domain *d, int pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/irq.c:2518,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/irq.c:2519,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/irq.c:2522,1
    - Dst: unmap_domain_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2523,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2525,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2514
    functionDepth: 4
    functionLinenumber: 2514
    functionLinenumberEnd: 2527
    functionName: free_domain_pirqs
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - domain_pirq_to_irq
    - write_unlock
    - unmap_domain_pirq
    - pcidevs_unlock
    - write_lock
    linkageType: ''
    returnType: void
    signature: void free_domain_pirqs(struct domain *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2538,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/irq.c:2545,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2547,1
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/arch/x86/irq.c:2549,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/irq.c:2552,1
    - Dst: xsm_show_irq_sid
      Src: /src/xen/xen/arch/x86/irq.c:2552,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2554,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2556,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2558,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2558,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2561,1
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:2563,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2566,1
    - Dst: domain_irq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2575,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2576,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/irq.c:2577,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/arch/x86/irq.c:2578,1
    - Dst: evtchn_is_pending
      Src: /src/xen/xen/arch/x86/irq.c:2580,1
    - Dst: evtchn_is_masked
      Src: /src/xen/xen/arch/x86/irq.c:2581,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2582,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2584,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2591,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2593,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2595,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/irq.c:2597,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/irq.c:2600,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2601,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2604,1
    - Dst: dump_ioapic_irq_info
      Src: /src/xen/xen/arch/x86/irq.c:2606,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2529
    functionDepth: 1
    functionLinenumber: 2529
    functionLinenumberEnd: 2607
    functionName: dump_irqs
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - evtchn_read_unlock
    - evtchn_read_trylock
    - spin_unlock_irqrestore
    - pirq_info
    - xfree
    - xsm_show_irq_sid
    - irq_to_desc
    - domain_irq_to_pirq
    - printk
    - guest_action
    - evtchn_is_masked
    - evtchn_is_pending
    - irq_desc_initialized
    - CPUMASK_PR
    - process_pending_softirqs
    - dump_ioapic_irq_info
    - in_irq
    - spin_lock_irqsave
    - evtchn_from_port
    linkageType: ''
    returnType: void
    signature: void dump_irqs(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/irq.c:2612,1
    - Dst: sizeof_field
      Src: /src/xen/xen/arch/x86/irq.c:2613,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/irq.c:2615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2617
    functionName: setup_dump_irqs
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - sizeof_field
    - register_keyhandler
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: int setup_dump_irqs(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:2623,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2629,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/irq.c:2629,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2635,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2640,1
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/arch/x86/irq.c:2641,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/irq.c:2644,1
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/irq.c:2646,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/irq.c:2650,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2659,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/irq.c:2666,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/irq.c:2668,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:2670,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/irq.c:2677,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2682,1
    - Dst: apic_irr_read
      Src: /src/xen/xen/arch/x86/irq.c:2699,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/irq.c:2700,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:2700,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/irq.c:2700,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2713,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/irq.c:2714,1
    - Dst: release_old_vec
      Src: /src/xen/xen/arch/x86/irq.c:2717,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/arch/x86/irq.c:2726,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2729,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/irq.c:2733,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/irq.c:2736,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:2739,1
    - Dst: struct irq_desc*::handler::disable
      Src: /src/xen/xen/arch/x86/irq.c:2742,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2749,1
    - Dst: struct irq_desc*::handler::set_affinity
      Src: /src/xen/xen/arch/x86/irq.c:2753,1
    - Dst: struct irq_desc*::handler::enable
      Src: /src/xen/xen/arch/x86/irq.c:2758,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/irq.c:2760,1
    - Dst: apic_irr_read
      Src: /src/xen/xen/arch/x86/irq.c:2762,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/irq.c:2771,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/irq.c:2771,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/irq.c:2771,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/irq.c:2774,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2777,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/irq.c:2779,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/irq.c:2780,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2621
    functionDepth: 4
    functionLinenumber: 2621
    functionLinenumberEnd: 2782
    functionName: fixup_irqs
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - irq_to_vector
    - spin_lock
    - cpumask_subset
    - cpumask_test_cpu
    - irq_to_desc
    - smp_processor_id
    - struct irq_desc*::handler::enable
    - cpumask_setall
    - cpumask_andnot
    - cpumask_intersects
    - struct irq_desc*::handler::disable
    - printk
    - cpumask_clear_cpu
    - test_bit
    - release_old_vec
    - cpu_online
    - send_IPI_mask
    - spin_unlock
    - irq_desc_initialized
    - CPUMASK_PR
    - ASSERT
    - this_cpu
    - cpumask_of
    - cpumask_weight
    - cpumask_copy
    - cpumask_any
    - struct irq_desc*::handler::set_affinity
    - cpumask_empty
    - apic_irr_read
    linkageType: ''
    returnType: void
    signature: void fixup_irqs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_action
      Src: /src/xen/xen/arch/x86/irq.c:2792,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2792,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2796,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/irq.c:2796,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/irq.c:2800,1
    - Dst: pending_eoi_sp
      Src: /src/xen/xen/arch/x86/irq.c:2801,1
    - Dst: flush_ready_eoi
      Src: /src/xen/xen/arch/x86/irq.c:2803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2784
    functionDepth: 2
    functionLinenumber: 2784
    functionLinenumberEnd: 2804
    functionName: fixup_eoi
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - guest_action
    - irq_to_desc
    - smp_processor_id
    - pending_eoi_sp
    - flush_ready_eoi
    - this_cpu
    - cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void fixup_eoi(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2811,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2811,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:2813,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2819,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/irq.c:2824,1
    - Dst: domain_emuirq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2826,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2831,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/irq.c:2836,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/arch/x86/irq.c:2843,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:2844,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/arch/x86/irq.c:2851,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/arch/x86/irq.c:2852,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/x86/irq.c:2854,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/arch/x86/irq.c:2858,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 3
    argNames:
    - d
    - pirq
    - emuirq
    argTypes:
    - struct domain*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2806
    functionDepth: 2
    functionLinenumber: 2806
    functionLinenumberEnd: 2865
    functionName: map_domain_emuirq_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - radix_tree_insert
    - radix_tree_replace_slot
    - pirq_cleanup_check
    - domain_emuirq_to_pirq
    - radix_tree_int_to_ptr
    - radix_tree_lookup_slot
    - ASSERT
    - domain_pirq_to_emuirq
    - pirq_get_info
    - dprintk
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int map_domain_emuirq_pirq(struct domain *d, int pirq, int emuirq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:2872,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2878,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2878,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/irq.c:2880,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2883,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/irq.c:2889,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/arch/x86/irq.c:2894,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/x86/irq.c:2897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2867
    functionDepth: 2
    functionLinenumber: 2867
    functionLinenumberEnd: 2901
    functionName: unmap_domain_pirq_emuirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - radix_tree_delete
    - rw_is_write_locked
    - pirq_cleanup_check
    - pirq_info
    - ASSERT
    - domain_pirq_to_emuirq
    - dprintk
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int unmap_domain_pirq_emuirq(struct domain *d, int pirq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/irq.c:2905,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/irq.c:2912,1
    - Dst: map_domain_emuirq_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2913,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/irq.c:2915,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/irq.c:2916,1
    - Dst: guest_mask_msi_irq
      Src: /src/xen/xen/arch/x86/irq.c:2918,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/irq.c:2919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2903
    functionDepth: 3
    functionLinenumber: 2903
    functionLinenumberEnd: 2920
    functionName: arch_evtchn_bind_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - map_domain_emuirq_pirq
    - guest_mask_msi_irq
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void arch_evtchn_bind_pirq(struct domain *d, int pirq)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/irq.c:2927,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/irq.c:2927,1
    - Dst: domain_irq_to_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2928,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2933,1
    - Dst: get_free_pirqs
      Src: /src/xen/xen/arch/x86/irq.c:2948,1
    - Dst: get_free_pirqs
      Src: /src/xen/xen/arch/x86/irq.c:2952,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2954,1
    - Dst: get_free_pirq
      Src: /src/xen/xen/arch/x86/irq.c:2960,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2962,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2967,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 6
    argNames:
    - d
    - index
    - pirq
    - irq
    - type
    - nr
    argTypes:
    - struct domain*
    - int
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2922
    functionDepth: 3
    functionLinenumber: 2922
    functionLinenumberEnd: 2973
    functionName: allocate_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - get_free_pirqs
    - rw_is_write_locked
    - domain_irq_to_pirq
    - get_free_pirq
    - ASSERT
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int allocate_pirq(struct domain *d, int index, int pirq, int irq,\n
      \                        int type, int *nr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2981,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/irq.c:2986,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/irq.c:2989,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:2993,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/irq.c:3000,1
    - Dst: allocate_pirq
      Src: /src/xen/xen/arch/x86/irq.c:3001,1
    - Dst: map_domain_pirq
      Src: /src/xen/xen/arch/x86/irq.c:3008,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/irq.c:3013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - d
    - index
    - pirq_p
    argTypes:
    - struct domain*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2975
    functionDepth: 4
    functionLinenumber: 2975
    functionLinenumberEnd: 3016
    functionName: allocate_and_map_gsi_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - allocate_pirq
    - write_unlock
    - map_domain_pirq
    - write_lock
    - dprintk
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int allocate_and_map_gsi_pirq(struct domain *d, int index, int *pirq_p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/irq.c:3023,1
    - Dst: create_irq
      Src: /src/xen/xen/arch/x86/irq.c:3034,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:3038,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/irq.c:3045,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/irq.c:3047,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/irq.c:3054,1
    - Dst: allocate_pirq
      Src: /src/xen/xen/arch/x86/irq.c:3055,1
    - Dst: map_domain_pirq
      Src: /src/xen/xen/arch/x86/irq.c:3062,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/irq.c:3067,1
    - Dst: destroy_irq
      Src: /src/xen/xen/arch/x86/irq.c:3075,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 5
    argNames:
    - d
    - index
    - pirq_p
    - type
    - msi
    argTypes:
    - struct domain*
    - int
    - int*
    - int
    - struct msi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3018
    functionDepth: 5
    functionLinenumber: 3018
    functionLinenumberEnd: 3081
    functionName: allocate_and_map_msi_pirq
    functionSourceFile: /src/xen/xen/arch/x86/irq.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - allocate_pirq
    - write_unlock
    - create_irq
    - destroy_irq
    - dprintk
    - map_domain_pirq
    - write_lock
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int allocate_and_map_msi_pirq(struct domain *d, int index, int *pirq_p,\n
      \                             int type, struct msi_info *msi)"
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:96,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:98,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:101,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:155,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:164,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:172,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:180,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:190,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:191,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:193,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:201,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:211,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:212,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:214,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:222,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:223,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:233,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:233,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:234,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:236,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:244,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:255,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:256,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:258,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:266,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:277,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:278,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:280,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:290,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:294,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:296,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:299,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:301,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:303,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:308,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:310,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:312,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:314,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:316,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:318,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:325,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:327,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:329,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:331,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:333,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:337,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:339,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:341,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:343,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:345,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:349,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:354,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:356,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:360,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:364,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:366,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:368,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:370,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:372,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:374,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 227
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 383
    functionName: parse_spec_ctrl
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - parse_boolean
    - IS_ENABLED
    - strchr
    - strncmp
    - no_config_param
    - strlen
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_spec_ctrl(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: xpti_init_default
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __init
    signature: __init xpti_init_default(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:418,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:420,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:422,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:433,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:435,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:437,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 448
    functionName: parse_xpti
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - strchr
    - strcmp
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_xpti(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:464,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:466,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:468,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:479,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:481,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 492
    functionName: parse_pv_l1tf
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_pv_l1tf(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:502,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:504,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:506,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:508,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:510,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:512,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:518,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:524,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:535,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:536,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:537,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:538,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:539,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:540,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:541,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:542,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:543,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:544,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:545,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:548,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:549,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:550,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:551,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:552,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:553,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:554,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:555,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:556,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:557,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:558,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:559,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:560,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:561,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:562,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:567,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:568,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:569,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:572,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:572,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:573,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:574,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:575,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:576,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:577,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:602,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:613,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:614,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:616,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:617,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:619,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:620,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:622,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:623,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:625,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:641,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:651,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:652,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:653,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:654,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:657,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:658,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:660,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:663,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:668,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:669,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:670,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:671,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:674,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:675,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:678,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:681,1
    - Dst: xpti_pcid_enabled
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:684,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:686,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 23
    argCount: 1
    argNames:
    - thunk
    argTypes:
    - enum ind_thunk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 690
    functionName: print_details
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - cpufeat_mask
    - xpti_pcid_enabled
    - rdmsrl
    - IS_ENABLED
    - cpuid_count
    - cpuid
    - printk
    linkageType: ''
    returnType: void
    signature: void print_details(enum ind_thunk thunk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:717,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:718,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:719,1
    - Dst: for_each_present_cpu
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:725,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 730
    functionName: check_smt_enabled
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - MASK_EXTR
    - for_each_present_cpu
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool check_smt_enabled(void)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:738,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:794,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:799,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:813,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:876,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:915,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:927,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 931
    functionName: retpoline_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - add_taint
    - setup_force_cpu_cap
    - printk
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool retpoline_calculations(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 960
    functionName: rsb_is_full_width
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rsb_is_full_width(void)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 1029
    functionName: should_use_eager_fpu
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: bool should_use_eager_fpu(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1052,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1054,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1055,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1058,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1073,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1074,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1087,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - hw_smt_enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1088
    functionName: srso_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - setup_force_cpu_cap
    - printk
    - wrmsr_safe
    linkageType: ''
    returnType: void
    signature: void srso_calculations(bool hw_smt_enabled)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zen1_uarch
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1109
    functionName: has_div_vuln
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - is_zen1_uarch
    linkageType: ''
    returnType: bool
    signature: bool has_div_vuln(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_div_vuln
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1113,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1119,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - hw_smt_enabled
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1126
    functionName: div_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - warning_add
    - setup_force_cpu_cap
    - has_div_vuln
    linkageType: ''
    returnType: void
    signature: void div_calculations(bool hw_smt_enabled)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1133,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1133,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1147,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1148,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1154,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1163,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1164,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1174,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1183,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1189,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1191,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1195,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1206,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1215
    functionName: ibpb_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - setup_force_cpu_cap
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void ibpb_calculations(void)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1303,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1355
    functionName: l1tf_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - max
    - printk
    linkageType: ''
    returnType: __init
    signature: __init l1tf_calculations(void)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1444,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1449
    functionName: mds_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: __init
    signature: __init mds_calculations(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1526
    functionName: rfds_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void rfds_calculations(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1559,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1560,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1568,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1588,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1596,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1597
    functionName: tsa_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - setup_force_cpu_cap
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void tsa_calculations(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1599
    functionDepth: 0
    functionLinenumber: 1599
    functionLinenumberEnd: 1655
    functionName: cpu_has_gds
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cpu_has_gds(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_gds
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1666,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1683,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1686,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1687,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1690,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1704,1
    - Dst: set_in_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1715,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1728,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1744,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1745,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1749
    functionName: gds_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - add_taint
    - set_in_mcu_opt_ctrl
    - rdmsrl
    - cpu_has_gds
    - setup_clear_cpu_cap
    - printk
    - this_cpu
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void gds_calculations(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1768
    functionName: cpu_has_bug_bhi
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    linkageType: ''
    returnType: bool
    signature: bool cpu_has_bug_bhi(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_bug_bhi
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1772,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1785,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1823,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1827,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1831,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1837
    functionName: bhi_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - cpu_has_bug_bhi
    - boot_cpu_has
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void bhi_calculations(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1892,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1920,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1921
    functionName: its_calculations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void its_calculations(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1925,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1928,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1943,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1945
    functionName: spec_ctrl_init_domain
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - is_pv_domain
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void spec_ctrl_init_domain(struct domain *d)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: check_smt_enabled
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1953,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1955,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1956,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1966,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1970,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1971,1
    - Dst: retpoline_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1981,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:1998,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2018,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2037,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2039,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2042,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2047,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2058,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2063,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2077,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2078,1
    - Dst: amd_setup_legacy_ssbd
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2083,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2105,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2107,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2108,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2111,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2112,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2129,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2130,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2164,1
    - Dst: PML4_ADDR
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2164,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2167,1
    - Dst: rsb_is_full_width
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2168,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2186,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2191,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2201,1
    - Dst: srso_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2218,1
    - Dst: ibpb_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2220,1
    - Dst: div_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2222,1
    - Dst: should_use_eager_fpu
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2226,1
    - Dst: init_shadow_spec_ctrl_state
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2229,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2229,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2237,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2239,1
    - Dst: xpti_init_default
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2241,1
    - Dst: l1tf_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2243,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2261,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2268,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2271,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2285,1
    - Dst: mds_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2338,1
    - Dst: rfds_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2339,1
    - Dst: tsa_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2340,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2394,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2413,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2459,1
    - Dst: tsx_init
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2462,1
    - Dst: set_in_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2487,1
    - Dst: gds_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2491,1
    - Dst: bhi_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2493,1
    - Dst: its_calculations
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2495,1
    - Dst: print_details
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2497,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2525,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2526,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2527,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2541,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2542,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2543,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2544,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2553,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2567,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2579,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2581,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2586,1
    - Dst: set_in_pb_opt_ctrl
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2591,1
    CyclomaticComplexity: 125
    EdgeCount: 125
    ICount: 161
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 1947
    functionDepth: 3
    functionLinenumber: 1947
    functionLinenumberEnd: 2592
    functionName: init_speculation_mitigations
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - should_use_eager_fpu
    - get_cpu_info
    - xpti_init_default
    - add_taint
    - PML4_ADDR
    - IS_ENABLED
    - BUILD_BUG_ON
    - tsx_init
    - wrmsrl
    - gds_calculations
    - tsa_calculations
    - setup_force_cpu_cap
    - amd_setup_legacy_ssbd
    - init_shadow_spec_ctrl_state
    - read_cr4
    - warning_add
    - rfds_calculations
    - check_smt_enabled
    - mds_calculations
    - printk
    - bhi_calculations
    - ibpb_calculations
    - set_in_pb_opt_ctrl
    - retpoline_calculations
    - srso_calculations
    - cpuid_edx
    - print_details
    - l1tf_calculations
    - rsb_is_full_width
    - set_in_mcu_opt_ctrl
    - boot_cpu_has
    - div_calculations
    - its_calculations
    - barrier
    linkageType: ''
    returnType: void
    signature: void init_speculation_mitigations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/spec_ctrl.c:2597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2598
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/spec_ctrl.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/shutdown.c:89,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/shutdown.c:94,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/shutdown.c:96,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/shutdown.c:103,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 109
    functionName: set_reboot_type
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - strchr
    - efi_enabled
    - printk
    linkageType: ''
    returnType: int
    signature: int set_reboot_type(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inb_p
      Src: /src/xen/xen/arch/x86/shutdown.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: kb_wait
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - inb_p
    linkageType: ''
    returnType: void
    signature: void kb_wait(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/shutdown.c:123,1
    - Dst: xen_hypercall_shutdown
      Src: /src/xen/xen/arch/x86/shutdown.c:126,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/shutdown.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: __machine_halt
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - halt
    - local_irq_disable
    - xen_hypercall_shutdown
    linkageType: ''
    returnType: void
    signature: void __machine_halt(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/x86/shutdown.c:134,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/x86/shutdown.c:135,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/shutdown.c:139,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/x86/shutdown.c:140,1
    - Dst: __machine_halt
      Src: /src/xen/xen/arch/x86/shutdown.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: machine_halt
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 1
    functionsReached:
    - console_start_sync
    - smp_call_function
    - local_irq_enable
    - __machine_halt
    - watchdog_disable
    linkageType: ''
    returnType: void
    signature: void machine_halt(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/shutdown.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: default_reboot_type
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - efi_enabled
    linkageType: ''
    returnType: void
    signature: void default_reboot_type(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/shutdown.c:166,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/shutdown.c:180,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/shutdown.c:180,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/shutdown.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dmi_system_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 185
    functionName: override_reboot
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - printk
    - ASSERT
    - efi_enabled
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int override_reboot(const struct dmi_system_id *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: default_reboot_type
      Src: /src/xen/xen/arch/x86/shutdown.c:517,1
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/shutdown.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 520
    functionName: reboot_init
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - default_reboot_type
    - dmi_check_system
    linkageType: ''
    returnType: int
    signature: int reboot_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: machine_restart
      Src: /src/xen/xen/arch/x86/shutdown.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdelay
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: __machine_restart
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 0
    functionsReached:
    - machine_restart
    linkageType: ''
    returnType: void
    signature: void __machine_restart(void *pdelay)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/x86/shutdown.c:534,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/x86/shutdown.c:535,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/arch/x86/shutdown.c:536,1
    - Dst: local_irq_count
      Src: /src/xen/xen/arch/x86/shutdown.c:543,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/shutdown.c:547,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/shutdown.c:550,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/shutdown.c:553,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/shutdown.c:553,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/shutdown.c:556,1
    - Dst: smp_send_stop
      Src: /src/xen/xen/arch/x86/shutdown.c:559,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/shutdown.c:562,1
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/shutdown.c:564,1
    - Dst: acpi_dmar_reinstate
      Src: /src/xen/xen/arch/x86/shutdown.c:566,1
    - Dst: tboot_shutdown
      Src: /src/xen/xen/arch/x86/shutdown.c:567,1
    - Dst: default_reboot_type
      Src: /src/xen/xen/arch/x86/shutdown.c:571,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/shutdown.c:576,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/shutdown.c:583,1
    - Dst: kb_wait
      Src: /src/xen/xen/arch/x86/shutdown.c:589,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/shutdown.c:590,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/shutdown.c:591,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/shutdown.c:592,1
    - Dst: efi_reset_system
      Src: /src/xen/xen/arch/x86/shutdown.c:606,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/shutdown.c:607,1
    - Dst: acpi_reboot
      Src: /src/xen/xen/arch/x86/shutdown.c:614,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/shutdown.c:620,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/shutdown.c:627,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/shutdown.c:628,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/shutdown.c:629,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/shutdown.c:630,1
    - Dst: xen_hypercall_shutdown
      Src: /src/xen/xen/arch/x86/shutdown.c:641,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 1
    argNames:
    - delay_millisecs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 645
    functionName: machine_restart
    functionSourceFile: /src/xen/xen/arch/x86/shutdown.c
    functionUses: 1
    functionsReached:
    - console_start_sync
    - mdelay
    - local_irq_enable
    - kb_wait
    - halt
    - default_reboot_type
    - xen_hypercall_shutdown
    - on_selected_cpus
    - watchdog_disable
    - acpi_dmar_reinstate
    - __va
    - get_apic_id
    - tboot_shutdown
    - inb
    - efi_reset_system
    - spin_debug_disable
    - cpumask_of
    - udelay
    - ASSERT_UNREACHABLE
    - acpi_reboot
    - outb
    - tboot_in_measured_env
    - smp_send_stop
    - local_irq_count
    linkageType: ''
    returnType: void
    signature: void machine_restart(unsigned int delay_millisecs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:80,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/mpparse.c:81,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mpparse.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:90,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/mpparse.c:96,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - max_cpus
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 100
    functionName: set_nr_cpu_ids
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - min
    - ROUNDUP
    - max_t
    - printk
    linkageType: ''
    returnType: void
    signature: void set_nr_cpu_ids(unsigned int max_cpus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: last_physid
      Src: /src/xen/xen/arch/x86/mpparse.c:104,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: set_nr_sockets
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - printk
    - last_physid
    linkageType: ''
    returnType: void
    signature: void set_nr_sockets(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mp
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: mpf_checksum
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpf_checksum(unsigned char *mp, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:146,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:156,1
    - Dst: physid_set
      Src: /src/xen/xen/arch/x86/mpparse.c:163,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/mpparse.c:166,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/mpparse.c:175,1
    - Dst: alloc_cpu_id
      Src: /src/xen/xen/arch/x86/mpparse.c:183,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:185,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mpparse.c:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - m
    - apicid
    - hotplug
    argTypes:
    - struct mpc_config_processor*
    - u32
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 202
    functionName: MP_processor_info_x
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - physid_set
    - Dprintk
    - printk_once
    - printk
    - alloc_cpu_id
    - cpumask_set_cpu
    linkageType: ''
    returnType: int
    signature: "int MP_processor_info_x(struct mpc_config_processor *m,\n\t\t\t       u32
      apicid, bool hotplug)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_processor_info_x
      Src: /src/xen/xen/arch/x86/mpparse.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mpc_config_processor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: MP_processor_info
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - MP_processor_info_x
    linkageType: ''
    returnType: int
    signature: int MP_processor_info(struct mpc_config_processor *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:213,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:218,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/mpparse.c:225,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/mpparse.c:227,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/mpparse.c:229,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/mpparse.c:231,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/mpparse.c:233,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mpc_config_bus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 238
    functionName: MP_bus_info
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - strncmp
    - memcpy
    - printk
    linkageType: ''
    returnType: void
    signature: void MP_bus_info (struct mpc_config_bus *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:245,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:248,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mpparse.c:250,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mpc_config_ioapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: MP_ioapic_info
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - panic
    - printk
    linkageType: ''
    returnType: void
    signature: void MP_ioapic_info (struct mpc_config_ioapic *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:264,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mpparse.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mpc_config_intsrc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: MP_intsrc_info
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - panic
    - Dprintk
    linkageType: ''
    returnType: void
    signature: void MP_intsrc_info (struct mpc_config_intsrc *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:275,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mpparse.c:289,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mpparse.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mpc_config_lintsrc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: MP_lintsrc_info
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - BUG
    - Dprintk
    linkageType: ''
    returnType: void
    signature: void MP_lintsrc_info (struct mpc_config_lintsrc *m)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/mpparse.c:306,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:307,1
    - Dst: mpf_checksum
      Src: /src/xen/xen/arch/x86/mpparse.c:311,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:312,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:316,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:321,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:324,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:326,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:328,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:330,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:332,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:358,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/mpparse.c:360,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/mpparse.c:362,1
    - Dst: MP_processor_info
      Src: /src/xen/xen/arch/x86/mpparse.c:367,1
    - Dst: MP_bus_info
      Src: /src/xen/xen/arch/x86/mpparse.c:374,1
    - Dst: MP_ioapic_info
      Src: /src/xen/xen/arch/x86/mpparse.c:383,1
    - Dst: MP_intsrc_info
      Src: /src/xen/xen/arch/x86/mpparse.c:393,1
    - Dst: MP_lintsrc_info
      Src: /src/xen/xen/arch/x86/mpparse.c:402,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:415,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 1
    argNames:
    - mpc
    argTypes:
    - struct mp_config_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 417
    functionName: smp_read_mpc
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MP_intsrc_info
    - MP_processor_info
    - mpf_checksum
    - printk
    - MP_bus_info
    - MP_ioapic_info
    - memcpy
    - MP_lintsrc_info
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int smp_read_mpc(struct mp_config_table *mpc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/arch/x86/mpparse.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: ELCR_trigger
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - inb
    linkageType: ''
    returnType: int
    signature: int ELCR_trigger(unsigned int irq)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:449,1
    - Dst: ELCR_trigger
      Src: /src/xen/xen/arch/x86/mpparse.c:451,1
    - Dst: ELCR_trigger
      Src: /src/xen/xen/arch/x86/mpparse.c:451,1
    - Dst: ELCR_trigger
      Src: /src/xen/xen/arch/x86/mpparse.c:451,1
    - Dst: ELCR_trigger
      Src: /src/xen/xen/arch/x86/mpparse.c:451,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:452,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:454,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/mpparse.c:459,1
    - Dst: ELCR_trigger
      Src: /src/xen/xen/arch/x86/mpparse.c:476,1
    - Dst: MP_intsrc_info
      Src: /src/xen/xen/arch/x86/mpparse.c:484,1
    - Dst: MP_intsrc_info
      Src: /src/xen/xen/arch/x86/mpparse.c:490,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - mpc_default_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 491
    functionName: construct_default_ioirq_mptable
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - MP_intsrc_info
    - platform_legacy_irq
    - ELCR_trigger
    - printk
    linkageType: ''
    returnType: void
    signature: void construct_default_ioirq_mptable(int mpc_default_type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MP_processor_info
      Src: /src/xen/xen/arch/x86/mpparse.c:523,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:530,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:531,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:536,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:541,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:545,1
    - Dst: MP_bus_info
      Src: /src/xen/xen/arch/x86/mpparse.c:548,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:551,1
    - Dst: MP_bus_info
      Src: /src/xen/xen/arch/x86/mpparse.c:552,1
    - Dst: MP_ioapic_info
      Src: /src/xen/xen/arch/x86/mpparse.c:560,1
    - Dst: construct_default_ioirq_mptable
      Src: /src/xen/xen/arch/x86/mpparse.c:565,1
    - Dst: MP_lintsrc_info
      Src: /src/xen/xen/arch/x86/mpparse.c:575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 1
    argNames:
    - mpc_default_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 577
    functionName: construct_default_ISA_mptable
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - construct_default_ioirq_mptable
    - MP_processor_info
    - printk
    - MP_bus_info
    - MP_ioapic_info
    - memcpy
    - MP_lintsrc_info
    linkageType: ''
    returnType: void
    signature: void construct_default_ISA_mptable(int mpc_default_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/mpparse.c:581,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/mpparse.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: efi_unmap_mpf
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - efi_enabled
    - clear_fixmap
    linkageType: ''
    returnType: __init
    signature: __init efi_unmap_mpf(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: efi_unmap_mpf
      Src: /src/xen/xen/arch/x86/mpparse.c:599,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:600,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:604,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:606,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:608,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:611,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:620,1
    - Dst: construct_default_ISA_mptable
      Src: /src/xen/xen/arch/x86/mpparse.c:621,1
    - Dst: smp_read_mpc
      Src: /src/xen/xen/arch/x86/mpparse.c:629,1
    - Dst: efi_unmap_mpf
      Src: /src/xen/xen/arch/x86/mpparse.c:630,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:632,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:633,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:644,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mpparse.c:648,1
    - Dst: MP_bus_info
      Src: /src/xen/xen/arch/x86/mpparse.c:649,1
    - Dst: construct_default_ioirq_mptable
      Src: /src/xen/xen/arch/x86/mpparse.c:651,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mpparse.c:655,1
    - Dst: efi_unmap_mpf
      Src: /src/xen/xen/arch/x86/mpparse.c:657,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 590
    functionDepth: 4
    functionLinenumber: 590
    functionLinenumberEnd: 663
    functionName: get_smp_config
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - BUG
    - smp_read_mpc
    - construct_default_ioirq_mptable
    - printk
    - construct_default_ISA_mptable
    - efi_unmap_mpf
    - MP_bus_info
    - memcpy
    linkageType: ''
    returnType: void
    signature: void get_smp_config (void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/mpparse.c:667,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:670,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:672,1
    - Dst: mpf_checksum
      Src: /src/xen/xen/arch/x86/mpparse.c:678,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:683,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/mpparse.c:684,1
    - Dst: reserve_bootmem
      Src: /src/xen/xen/arch/x86/mpparse.c:686,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/mpparse.c:686,1
    - Dst: reserve_bootmem
      Src: /src/xen/xen/arch/x86/mpparse.c:701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - base
    - length
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 711
    functionName: smp_scan_config
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - Dprintk
    - virt_to_maddr
    - mpf_checksum
    - reserve_bootmem
    - printk
    - maddr_to_virt
    linkageType: ''
    returnType: int
    signature: int smp_scan_config (unsigned long base, unsigned long length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __set_fixmap
      Src: /src/xen/xen/arch/x86/mpparse.c:720,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mpparse.c:720,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/mpparse.c:721,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/mpparse.c:723,1
    - Dst: mpf_checksum
      Src: /src/xen/xen/arch/x86/mpparse.c:725,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:728,1
    - Dst: efi_unmap_mpf
      Src: /src/xen/xen/arch/x86/mpparse.c:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 733
    functionName: efi_check_config
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fix_to_virt
    - __set_fixmap
    - mpf_checksum
    - printk
    - PFN_DOWN
    - efi_unmap_mpf
    linkageType: ''
    returnType: void
    signature: void efi_check_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/mpparse.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 740
    functionName: get_bios_ebda
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - maddr_to_virt
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_bios_ebda(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/mpparse.c:746,1
    - Dst: efi_check_config
      Src: /src/xen/xen/arch/x86/mpparse.c:747,1
    - Dst: smp_scan_config
      Src: /src/xen/xen/arch/x86/mpparse.c:759,1
    - Dst: smp_scan_config
      Src: /src/xen/xen/arch/x86/mpparse.c:760,1
    - Dst: smp_scan_config
      Src: /src/xen/xen/arch/x86/mpparse.c:761,1
    - Dst: get_bios_ebda
      Src: /src/xen/xen/arch/x86/mpparse.c:780,1
    - Dst: smp_scan_config
      Src: /src/xen/xen/arch/x86/mpparse.c:782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 783
    functionName: find_smp_config
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - efi_check_config
    - get_bios_ebda
    - efi_enabled
    - smp_scan_config
    linkageType: ''
    returnType: void
    signature: void find_smp_config (void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/mpparse.c:796,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/mpparse.c:800,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - address
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 803
    functionName: mp_register_lapic_address
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - set_fixmap_nocache
    - get_apic_id
    - Dprintk
    linkageType: ''
    returnType: void
    signature: "void mp_register_lapic_address (\n\tu64\t\t\taddress)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_APIC_VERSION
      Src: /src/xen/xen/arch/x86/mpparse.c:812,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/mpparse.c:812,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:819,1
    - Dst: MP_processor_info_x
      Src: /src/xen/xen/arch/x86/mpparse.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - id
    - enabled
    - hotplug
    argTypes:
    - u32
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 825
    functionName: mp_register_lapic
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - MP_processor_info_x
    - apic_read
    - GET_APIC_VERSION
    - printk
    linkageType: ''
    returnType: int
    signature: int mp_register_lapic(u32 id, bool enabled, bool hotplug)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: physid_clear
      Src: /src/xen/xen/arch/x86/mpparse.c:835,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/mpparse.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - apic_id
    - cpu
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 839
    functionName: mp_unregister_lapic
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - cpumask_clear_cpu
    - physid_clear
    linkageType: ''
    returnType: void
    signature: void mp_unregister_lapic(uint32_t apic_id, uint32_t cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - gsi
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 865
    functionName: mp_find_ioapic
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int mp_find_ioapic(unsigned int gsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:876,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mpparse.c:878,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:881,1
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/mpparse.c:892,1
    - Dst: io_apic_get_version
      Src: /src/xen/xen/arch/x86/mpparse.c:894,1
    - Dst: io_apic_get_redir_entries
      Src: /src/xen/xen/arch/x86/mpparse.c:902,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - id
    - address
    - gsi_base
    argTypes:
    - u8
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 911
    functionName: mp_register_ioapic
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - io_apic_get_version
    - panic
    - set_fixmap_nocache
    - printk
    - io_apic_get_redir_entries
    linkageType: ''
    returnType: void
    signature: "void mp_register_ioapic (\n\tu8\t\t\tid, \n\tu32\t\t\taddress,\n\tu32\t\t\tgsi_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 920
    functionName: highest_gsi
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned highest_gsi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apic
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 925
    functionName: io_apic_gsi_base
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int io_apic_gsi_base(unsigned int apic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_find_ioapic
      Src: /src/xen/xen/arch/x86/mpparse.c:940,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:961,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mpparse.c:968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - bus_irq
    - polarity
    - trigger
    - gsi
    argTypes:
    - u8
    - u8
    - u8
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 971
    functionName: mp_override_legacy_irq
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - panic
    - Dprintk
    - mp_find_ioapic
    linkageType: ''
    returnType: void
    signature: "void mp_override_legacy_irq (\n\tu8\t\t\tbus_irq,\n\tu8\t\t\tpolarity,
      \n\tu8\t\t\ttrigger, \n\tu32\t\t\tgsi)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:983,1
    - Dst: mp_find_ioapic
      Src: /src/xen/xen/arch/x86/mpparse.c:988,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/mpparse.c:1001,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:1018,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:1026,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mpparse.c:1034,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 1036
    functionName: mp_config_acpi_legacy_irqs
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - Dprintk
    - panic
    - platform_legacy_irq
    - printk
    - mp_find_ioapic
    linkageType: ''
    returnType: void
    signature: void mp_config_acpi_legacy_irqs (void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/mpparse.c:1061,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/mpparse.c:1063,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/mpparse.c:1068,1
    - Dst: mp_find_ioapic
      Src: /src/xen/xen/arch/x86/mpparse.c:1072,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:1074,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/mpparse.c:1080,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/mpparse.c:1081,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/mpparse.c:1083,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/mpparse.c:1086,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mpparse.c:1094,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/mpparse.c:1099,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/mpparse.c:1101,1
    - Dst: io_apic_set_pci_routing
      Src: /src/xen/xen/arch/x86/mpparse.c:1106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - gsi
    - triggering
    - polarity
    argTypes:
    - u32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1108
    functionName: mp_register_gsi
    functionSourceFile: /src/xen/xen/arch/x86/mpparse.c
    functionUses: 0
    functionsReached:
    - io_apic_set_pci_routing
    - irq_to_desc
    - outb
    - Dprintk
    - test_and_set_bit
    - spin_lock_irqsave
    - platform_legacy_irq
    - spin_unlock_irqrestore
    - printk
    - inb
    - mp_find_ioapic
    linkageType: ''
    returnType: int
    signature: int mp_register_gsi (u32 gsi, int triggering, int polarity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/debug.c:42,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/debug.c:43,1
    - Dst: x86_adj_dr6_rsvd
      Src: /src/xen/xen/arch/x86/debug.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p
    - dr6
    - new
    argTypes:
    - struct cpu_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: x86_merge_dr6
    functionSourceFile: /src/xen/xen/arch/x86/debug.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - x86_adj_dr6_rsvd
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int x86_merge_dr6(const struct cpu_policy *p, unsigned int
      dr6,\n                           unsigned int new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - dr6
    argTypes:
    - struct cpu_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: x86_adj_dr6_rsvd
    functionSourceFile: /src/xen/xen/arch/x86/debug.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86_adj_dr6_rsvd(const struct cpu_policy *p, unsigned
      int dr6)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - dr7
    argTypes:
    - struct cpu_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 89
    functionName: x86_adj_dr7_rsvd
    functionSourceFile: /src/xen/xen/arch/x86/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86_adj_dr7_rsvd(const struct cpu_policy *p, unsigned
      int dr7)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/debug.c:93,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:95,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:96,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:97,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:98,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:99,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/debug.c:107,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/debug.c:114,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/debug.c:116,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/debug.c:117,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/debug.c:118,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/debug.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - curr
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: activate_debugregs
    functionSourceFile: /src/xen/xen/arch/x86/debug.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - ASSERT
    - write_debugreg
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void activate_debugregs(const struct vcpu *curr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/domain.c:88,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/domain.c:90,1
    - Dst: cpu_is_haltable
      Src: /src/xen/xen/arch/x86/domain.c:91,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:91,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/domain.c:93,1
    - Dst: safe_halt
      Src: /src/xen/xen/arch/x86/domain.c:94,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/domain.c:95,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/domain.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: default_idle
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - cpu_is_haltable
    - local_irq_enable
    - smp_processor_id
    - spec_ctrl_exit_idle
    - local_irq_disable
    - safe_halt
    - spec_ctrl_enter_idle
    linkageType: ''
    returnType: void
    signature: void default_idle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/domain.c:108,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/domain.c:108,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/domain.c:109,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/domain.c:110,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/domain.c:111,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/domain.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: default_dead_idle
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - halt
    - spec_ctrl_exit_idle
    - spec_ctrl_enter_idle
    - wbinvd
    linkageType: ''
    returnType: void
    signature: void default_dead_idle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:116,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/domain.c:118,1
    - Dst: _set_gate_lower
      Src: /src/xen/xen/arch/x86/domain.c:121,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain.c:121,1
    - Dst: cpu_exit_clear
      Src: /src/xen/xen/arch/x86/domain.c:134,1
    - Dst: dead_idle
      Src: /src/xen/xen/arch/x86/domain.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 138
    functionName: play_dead
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - cpu_exit_clear
    - smp_processor_id
    - local_irq_disable
    - dead_idle
    - this_cpu
    - _set_gate_lower
    linkageType: ''
    returnType: void
    signature: void play_dead(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:142,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:147,1
    - Dst: cpu_is_offline
      Src: /src/xen/xen/arch/x86/domain.c:151,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:153,1
    - Dst: play_dead
      Src: /src/xen/xen/arch/x86/domain.c:154,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:158,1
    - Dst: tasklet_work_to_do
      Src: /src/xen/xen/arch/x86/domain.c:158,1
    - Dst: do_tasklet
      Src: /src/xen/xen/arch/x86/domain.c:160,1
    - Dst: check_for_livepatch_work
      Src: /src/xen/xen/arch/x86/domain.c:162,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/domain.c:169,1
    - Dst: scrub_free_pages
      Src: /src/xen/xen/arch/x86/domain.c:169,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/domain.c:170,1
    - Dst: sched_guest_idle
      Src: /src/xen/xen/arch/x86/domain.c:173,1
    - Dst: pm_idle
      Src: /src/xen/xen/arch/x86/domain.c:175,1
    - Dst: do_softirq
      Src: /src/xen/xen/arch/x86/domain.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: idle_loop
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - sched_guest_idle
    - play_dead
    - smp_processor_id
    - pm_idle
    - tasklet_work_to_do
    - cpu_is_offline
    - do_softirq
    - ASSERT
    - check_for_livepatch_work
    - unlikely
    - scrub_free_pages
    - is_idle_domain
    - do_tasklet
    linkageType: ''
    returnType: void
    signature: void idle_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:185,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:185,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/domain.c:186,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/domain.c:187,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/x86/domain.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: startup_cpu_idle_loop
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - write_atomic
    - reset_stack_and_jump
    - ASSERT
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void startup_cpu_idle_loop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:194,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:196,1
    - Dst: hvm_init_hypercall_page
      Src: /src/xen/xen/arch/x86/domain.c:197,1
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:198,1
    - Dst: pv_ring3_init_hypercall_page
      Src: /src/xen/xen/arch/x86/domain.c:199,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:200,1
    - Dst: pv_ring1_init_hypercall_page
      Src: /src/xen/xen/arch/x86/domain.c:201,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domain.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - ptr
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_domain
    - is_pv_64bit_domain
    - hvm_init_hypercall_page
    - pv_ring1_init_hypercall_page
    - pv_ring3_init_hypercall_page
    - memset
    - ASSERT_UNREACHABLE
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void init_hypercall_page(struct domain *d, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:210,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/domain.c:212,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:214,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/domain.c:218,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/domain.c:220,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/domain.c:221,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/domain.c:223,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:235,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/domain.c:236,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain.c:236,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:236,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/domain.c:239,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:242,1
    - Dst: p2m_pod_dump_data
      Src: /src/xen/xen/arch/x86/domain.c:243,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/domain.c:245,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/domain.c:247,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:249,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/domain.c:250,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain.c:250,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:250,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/domain.c:254,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:256,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/domain.c:257,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain.c:257,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:257,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/domain.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 262
    functionName: dump_pageframe_info
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - mfn_x
    - nrspin_unlock
    - p2m_pod_dump_data
    - page_list_for_each
    - domain_tot_pages
    - nrspin_lock
    - printk
    - _p
    - is_hvm_domain
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void dump_pageframe_info(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_is_n2
      Src: /src/xen/xen/arch/x86/domain.c:267,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:279,1
    - Dst: nestedhvm_vcpu_enter_guestmode
      Src: /src/xen/xen/arch/x86/domain.c:282,1
    - Dst: nestedhvm_vcpu_exit_guestmode
      Src: /src/xen/xen/arch/x86/domain.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - policy
    argTypes:
    - struct vcpu*
    - struct guest_memory_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 287
    functionName: update_guest_memory_policy
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - nestedhvm_vcpu_exit_guestmode
    - nestedhvm_is_n2
    - nestedhvm_vcpu_enter_guestmode
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void update_guest_memory_policy(struct vcpu *v,\n                                struct
      guest_memory_policy *policy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:295,1
    - Dst: hvm_cpuid_policy_changed
      Src: /src/xen/xen/arch/x86/domain.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: cpu_policy_updated
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_hvm_vcpu
    - hvm_cpuid_policy_changed
    linkageType: ''
    returnType: void
    signature: void cpu_policy_updated(struct vcpu *v)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:304,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:318,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:320,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:332,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:333,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:336,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:351,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:352,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:355,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:362,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:421,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/domain.c:445,1
    - Dst: cpu_policy_updated
      Src: /src/xen/xen/arch/x86/domain.c:457,1
    - Dst: vpmu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:462,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 464
    functionName: domain_cpu_policy_changed
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - cpufeat_mask
    - is_pv_domain
    - vpmu_destroy
    - cpu_policy_updated
    linkageType: ''
    returnType: void
    signature: void domain_cpu_policy_changed(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_policy_updated
      Src: /src/xen/xen/arch/x86/domain.c:457,1
    - Dst: vpmu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - vpmu_destroy
    - cpu_policy_updated
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:482,1
    - Dst: flsl
      Src: /src/xen/xen/arch/x86/domain.c:488,1
    - Dst: pdx_to_paddr
      Src: /src/xen/xen/arch/x86/domain.c:488,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/x86/domain.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 494
    functionName: arch_domain_struct_memflags
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - pdx_to_paddr
    - MEMF_bits
    - flsl
    - unlikely
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_domain_struct_memflags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:499,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 505
    functionName: arch_vcpu_regs_init
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_regs_init(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mapcache_vcpu_init
      Src: /src/xen/xen/arch/x86/domain.c:514,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:518,1
    - Dst: paging_vcpu_init
      Src: /src/xen/xen/arch/x86/domain.c:520,1
    - Dst: vcpu_init_fpu
      Src: /src/xen/xen/arch/x86/domain.c:522,1
    - Dst: vmce_init_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:525,1
    - Dst: arch_vcpu_regs_init
      Src: /src/xen/xen/arch/x86/domain.c:527,1
    - Dst: init_vcpu_msr_policy
      Src: /src/xen/xen/arch/x86/domain.c:529,1
    - Dst: xstate_alloc_save_area
      Src: /src/xen/xen/arch/x86/domain.c:532,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/domain.c:535,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:537,1
    - Dst: hvm_vcpu_initialise
      Src: /src/xen/xen/arch/x86/domain.c:538,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:539,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/domain.c:542,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:546,1
    - Dst: pv_vcpu_initialise
      Src: /src/xen/xen/arch/x86/domain.c:547,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domain.c:550,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:557,1
    - Dst: vpmu_initialise
      Src: /src/xen/xen/arch/x86/domain.c:559,1
    - Dst: cpu_policy_updated
      Src: /src/xen/xen/arch/x86/domain.c:561,1
    - Dst: paging_vcpu_teardown
      Src: /src/xen/xen/arch/x86/domain.c:567,1
    - Dst: vcpu_destroy_fpu
      Src: /src/xen/xen/arch/x86/domain.c:568,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domain.c:569,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 573
    functionName: arch_vcpu_create
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - xstate_alloc_save_area
    - __pa
    - IS_ENABLED
    - vcpu_destroy_fpu
    - paging_vcpu_teardown
    - is_idle_domain
    - xfree
    - is_hvm_domain
    - vcpu_init_fpu
    - init_vcpu_msr_policy
    - vmce_init_vcpu
    - cpu_policy_updated
    - pv_vcpu_initialise
    - vpmu_initialise
    - ASSERT_UNREACHABLE
    - mapcache_vcpu_init
    - hvm_vcpu_initialise
    - arch_vcpu_regs_init
    - paging_vcpu_init
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_create(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domain.c:577,1
    - Dst: vcpu_destroy_fpu
      Src: /src/xen/xen/arch/x86/domain.c:580,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domain.c:582,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:585,1
    - Dst: hvm_vcpu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:586,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:587,1
    - Dst: pv_vcpu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:588,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domain.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 591
    functionName: arch_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_hvm_vcpu
    - IS_ENABLED
    - ASSERT_UNREACHABLE
    - vcpu_destroy_fpu
    - hvm_vcpu_destroy
    - xfree
    - pv_vcpu_destroy
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_destroy(struct vcpu *v)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/domain.c:599,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:602,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:604,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:612,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:617,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:620,1
    - Dst: hvm_hap_supported
      Src: /src/xen/xen/arch/x86/domain.c:624,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:626,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:630,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:632,1
    - Dst: hvm_nested_virt_supported
      Src: /src/xen/xen/arch/x86/domain.c:643,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:645,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:651,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:659,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:667,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/domain.c:671,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:673,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:680,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:687,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:694,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/domain.c:701,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:703,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:709,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:715,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:722,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:729,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/domain.c:735,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 740
    functionName: arch_sanitise_domain_config
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - MB
    - hvm_hap_supported
    - hvm_nested_virt_supported
    - IS_ENABLED
    - ASSERT
    - hvm_altp2m_supported
    - dprintk
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/domain.c:756,1
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/domain.c:757,1
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/domain.c:758,1
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/domain.c:759,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:797,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/domain.c:798,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domain.c:802,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - d
    - emflags
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 811
    functionName: emulation_flags_ok
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - BIT
    - ARRAY_SIZE
    - BUILD_BUG_ON
    - is_pv_domain
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool emulation_flags_ok(const struct domain *d, uint32_t emflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 822
    functionName: arch_init_idle_domain
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_init_idle_domain(struct domain *d)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/domain.c:832,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/domain.c:834,1
    - Dst: cpu_has_amd_erratum
      Src: /src/xen/xen/arch/x86/domain.c:836,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:840,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:845,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/domain.c:852,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:852,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:857,1
    - Dst: emulation_flags_ok
      Src: /src/xen/xen/arch/x86/domain.c:863,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:865,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:868,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/domain.c:869,1
    - Dst: spec_ctrl_init_domain
      Src: /src/xen/xen/arch/x86/domain.c:875,1
    - Dst: paging_domain_init
      Src: /src/xen/xen/arch/x86/domain.c:877,1
    - Dst: init_domain_cpu_policy
      Src: /src/xen/xen/arch/x86/domain.c:881,1
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/x86/domain.c:885,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/domain.c:890,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/domain.c:893,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/arch/x86/domain.c:894,1
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/x86/domain.c:894,1
    - Dst: init_domain_irq_mapping
      Src: /src/xen/xen/arch/x86/domain.c:896,1
    - Dst: iommu_domain_init
      Src: /src/xen/xen/arch/x86/domain.c:899,1
    - Dst: psr_domain_init
      Src: /src/xen/xen/arch/x86/domain.c:902,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:904,1
    - Dst: hvm_domain_initialise
      Src: /src/xen/xen/arch/x86/domain.c:906,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:909,1
    - Dst: mapcache_domain_init
      Src: /src/xen/xen/arch/x86/domain.c:911,1
    - Dst: pv_domain_initialise
      Src: /src/xen/xen/arch/x86/domain.c:914,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domain.c:918,1
    - Dst: tsc_set_info
      Src: /src/xen/xen/arch/x86/domain.c:920,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domain.c:922,1
    - Dst: pit_init
      Src: /src/xen/xen/arch/x86/domain.c:927,1
    - Dst: domain_cpu_policy_changed
      Src: /src/xen/xen/arch/x86/domain.c:935,1
    - Dst: psr_domain_free
      Src: /src/xen/xen/arch/x86/domain.c:943,1
    - Dst: iommu_domain_destroy
      Src: /src/xen/xen/arch/x86/domain.c:944,1
    - Dst: cleanup_domain_irq_mapping
      Src: /src/xen/xen/arch/x86/domain.c:945,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/domain.c:946,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/domain.c:947,1
    - Dst: paging_final_teardown
      Src: /src/xen/xen/arch/x86/domain.c:949,1
    - Dst: free_perdomain_mappings
      Src: /src/xen/xen/arch/x86/domain.c:950,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 3
    argNames:
    - d
    - config
    - flags
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 824
    functionDepth: 4
    functionLinenumber: 824
    functionLinenumberEnd: 953
    functionName: arch_domain_create
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - psr_domain_init
    - tsc_set_info
    - mapcache_domain_init
    - is_hvm_domain
    - init_domain_irq_mapping
    - alloc_xenheap_page
    - domain_cpu_policy_changed
    - share_xen_page_with_guest
    - free_perdomain_mappings
    - paging_final_teardown
    - XFREE
    - INIT_PAGE_LIST_HEAD
    - printk
    - pv_domain_initialise
    - is_hardware_domain
    - hvm_domain_initialise
    - virt_to_page
    - iommu_domain_init
    - pit_init
    - ASSERT_UNREACHABLE
    - psr_domain_free
    - emulation_flags_ok
    - iommu_domain_destroy
    - cleanup_domain_irq_mapping
    - rangeset_new
    - clear_page
    - spec_ctrl_init_domain
    - cpu_has_amd_erratum
    - is_pv_domain
    - paging_domain_init
    - free_xenheap_page
    - spin_lock_init
    - init_domain_cpu_policy
    linkageType: ''
    returnType: int
    signature: "int arch_domain_create(struct domain *d,\n                       struct
      xen_domctl_createdomain *config,\n                       unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 958
    functionName: arch_domain_teardown
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_domain_teardown(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:962,1
    - Dst: hvm_domain_destroy
      Src: /src/xen/xen/arch/x86/domain.c:963,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domain.c:965,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/domain.c:966,1
    - Dst: free_domain_pirqs
      Src: /src/xen/xen/arch/x86/domain.c:968,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:969,1
    - Dst: iommu_domain_destroy
      Src: /src/xen/xen/arch/x86/domain.c:970,1
    - Dst: paging_final_teardown
      Src: /src/xen/xen/arch/x86/domain.c:972,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:974,1
    - Dst: pv_domain_destroy
      Src: /src/xen/xen/arch/x86/domain.c:975,1
    - Dst: free_perdomain_mappings
      Src: /src/xen/xen/arch/x86/domain.c:976,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/domain.c:978,1
    - Dst: cleanup_domain_irq_mapping
      Src: /src/xen/xen/arch/x86/domain.c:979,1
    - Dst: psr_domain_free
      Src: /src/xen/xen/arch/x86/domain.c:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 960
    functionDepth: 5
    functionLinenumber: 960
    functionLinenumberEnd: 982
    functionName: arch_domain_destroy
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - psr_domain_free
    - iommu_domain_destroy
    - cleanup_domain_irq_mapping
    - free_domain_pirqs
    - free_perdomain_mappings
    - paging_final_teardown
    - XFREE
    - is_idle_domain
    - pv_domain_destroy
    - is_hvm_domain
    - is_pv_domain
    - free_xenheap_page
    - xfree
    - hvm_domain_destroy
    linkageType: ''
    returnType: void
    signature: void arch_domain_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/domain.c:986,1
    - Dst: viridian_time_domain_freeze
      Src: /src/xen/xen/arch/x86/domain.c:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 988
    functionName: arch_domain_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - viridian_time_domain_freeze
    - is_viridian_domain
    linkageType: ''
    returnType: void
    signature: void arch_domain_shutdown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/domain.c:992,1
    - Dst: viridian_time_domain_freeze
      Src: /src/xen/xen/arch/x86/domain.c:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 994
    functionName: arch_domain_pause
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - viridian_time_domain_freeze
    - is_viridian_domain
    linkageType: ''
    returnType: void
    signature: void arch_domain_pause(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/domain.c:998,1
    - Dst: viridian_time_domain_thaw
      Src: /src/xen/xen/arch/x86/domain.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1000
    functionName: arch_domain_unpause
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - viridian_time_domain_thaw
    - is_viridian_domain
    linkageType: ''
    returnType: void
    signature: void arch_domain_unpause(struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/x86/domain.c:1005,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:1015,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/domain.c:1018,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/domain.c:1021,1
    - Dst: unmap_domain_pirq_emuirq
      Src: /src/xen/xen/arch/x86/domain.c:1023,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/domain.c:1028,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/domain.c:1038,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:1039,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1041,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/domain.c:1042,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/domain.c:1048,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/domain.c:1051,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/domain.c:1051,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1051,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:1053,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1055,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/domain.c:1060,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:1063,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1065,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/arch/x86/domain.c:1070,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:1073,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1075,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/domain.c:1076,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/arch/x86/domain.c:1080,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1080,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domain.c:1084,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1086,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/domain.c:1087,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/domain.c:1093,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/domain.c:1094,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/domain.c:1098,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/domain.c:1098,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:1100,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1003
    functionDepth: 3
    functionLinenumber: 1003
    functionLinenumberEnd: 1103
    functionName: arch_domain_soft_reset
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - alloc_domheap_page
    - guest_physmap_remove_page
    - is_hvm_domain
    - page_to_mfn
    - put_gfn
    - set_xen_guest_handle
    - domain_pirq_to_emuirq
    - printk
    - mfn_eq
    - mfn_to_gfn
    - unmap_guest_area
    - write_unlock
    - unmap_domain_pirq_emuirq
    - virt_to_page
    - ASSERT
    - free_domheap_page
    - write_lock
    - page_get_owner_and_reference
    - gfn_x
    - guest_physmap_add_page
    - gfn_eq
    - put_page
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int arch_domain_soft_reset(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/domain.c:1093,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/domain.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1095
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - unmap_guest_area
    - set_xen_guest_handle
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:1108,1
    - Dst: hvm_domain_creation_finished
      Src: /src/xen/xen/arch/x86/domain.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1110
    functionName: arch_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - hvm_domain_creation_finished
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void arch_domain_creation_finished(struct domain *d)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:1139,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1146,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1150,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1150,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1151,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1151,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:1155,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1157,1
    - Dst: breakpoint_addr_ok
      Src: /src/xen/xen/arch/x86/domain.c:1158,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1158,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1171,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1172,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1173,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1174,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1175,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1176,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1177,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1178,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1179,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1180,1
    - Dst: fixup_guest_stack_selector
      Src: /src/xen/xen/arch/x86/domain.c:1183,1
    - Dst: fixup_guest_stack_selector
      Src: /src/xen/xen/arch/x86/domain.c:1184,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1185,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1187,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domain.c:1189,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1191,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/domain.c:1194,1
    - Dst: fixup_guest_stack_selector
      Src: /src/xen/xen/arch/x86/domain.c:1200,1
    - Dst: fixup_guest_stack_selector
      Src: /src/xen/xen/arch/x86/domain.c:1201,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1202,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1203,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1204,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1206,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domain.c:1207,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1212,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1213,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:1220,1
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:1226,1
    - Dst: vcpu_setup_fpu
      Src: /src/xen/xen/arch/x86/domain.c:1230,1
    - Dst: vcpu_reset_fpu
      Src: /src/xen/xen/arch/x86/domain.c:1232,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:1234,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:1255,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domain.c:1256,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:1279,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1281,1
    - Dst: XLAT_trap_info
      Src: /src/xen/xen/arch/x86/domain.c:1282,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1288,1
    - Dst: arch_vm_assist_valid_mask
      Src: /src/xen/xen/arch/x86/domain.c:1288,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:1291,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1293,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1294,1
    - Dst: x86_adj_dr6_rsvd
      Src: /src/xen/xen/arch/x86/domain.c:1295,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1295,1
    - Dst: x86_adj_dr7_rsvd
      Src: /src/xen/xen/arch/x86/domain.c:1296,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1296,1
    - Dst: hvm_set_info_guest
      Src: /src/xen/xen/arch/x86/domain.c:1301,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/domain.c:1313,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1313,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1314,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1322,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1324,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1329,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/domain.c:1335,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain.c:1335,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1337,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/domain.c:1338,1
    - Dst: compat_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domain.c:1339,1
    - Dst: xen_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domain.c:1344,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/domain.c:1345,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1349,1
    - Dst: xen_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domain.c:1350,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1354,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1356,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1358,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1360,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1366,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1367,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1368,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1369,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1371,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1372,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1382,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1383,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/domain.c:1388,1
    - Dst: pv_fixup_guest_cr4
      Src: /src/xen/xen/arch/x86/domain.c:1390,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:1392,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1397,1
    - Dst: set_debugreg
      Src: /src/xen/xen/arch/x86/domain.c:1398,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1398,1
    - Dst: set_debugreg
      Src: /src/xen/xen/arch/x86/domain.c:1399,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1399,1
    - Dst: set_debugreg
      Src: /src/xen/xen/arch/x86/domain.c:1400,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1400,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/domain.c:1412,1
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:1413,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/domain.c:1414,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/domain.c:1415,1
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/x86/domain.c:1419,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/domain.c:1423,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/domain.c:1425,1
    - Dst: fill_ro_mpt
      Src: /src/xen/xen/arch/x86/domain.c:1429,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1429,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/domain.c:1431,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/domain.c:1434,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/domain.c:1436,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/x86/domain.c:1440,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domain.c:1446,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/domain.c:1449,1
    - Dst: pv_set_gdt
      Src: /src/xen/xen/arch/x86/domain.c:1454,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domain.c:1458,1
    - Dst: pv_set_gdt
      Src: /src/xen/xen/arch/x86/domain.c:1463,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain.c:1469,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain.c:1473,1
    - Dst: compat_cr3_to_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1473,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain.c:1476,1
    - Dst: xen_cr3_to_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1476,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1477,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:1484,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/domain.c:1489,1
    - Dst: get_page_type_preemptible
      Src: /src/xen/xen/arch/x86/domain.c:1491,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/domain.c:1502,1
    - Dst: fill_ro_mpt
      Src: /src/xen/xen/arch/x86/domain.c:1503,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/domain.c:1515,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain.c:1518,1
    - Dst: xen_cr3_to_pfn
      Src: /src/xen/xen/arch/x86/domain.c:1518,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1519,1
    - Dst: get_page_type_preemptible
      Src: /src/xen/xen/arch/x86/domain.c:1525,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/domain.c:1539,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/domain.c:1541,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/domain.c:1548,1
    - Dst: zap_ro_mpt
      Src: /src/xen/xen/arch/x86/domain.c:1549,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/domain.c:1554,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/domain.c:1561,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1561,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1562,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/domain.c:1562,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/domain.c:1564,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:1569,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/domain.c:1570,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/domain.c:1574,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/domain.c:1577,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/domain.c:1582,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/domain.c:1583,1
    - Dst: update_cr3
      Src: /src/xen/xen/arch/x86/domain.c:1585,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/domain.c:1590,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain.c:1592,1
    CyclomaticComplexity: 100
    EdgeCount: 100
    ICount: 275
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1595
    functionName: arch_set_info_guest
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - compat_pfn_to_cr3
    - xen_pfn_to_cr3
    - pagetable_from_page
    - update_cr3
    - pagetable_get_mfn
    - rspin_lock
    - page_list_remove_head
    - pagetable_get_page
    - XLAT_trap_info
    - is_hvm_domain
    - is_pv_32bit_domain
    - map_domain_page
    - page_to_mfn
    - ARRAY_SIZE
    - rspin_unlock
    - hvm_set_info_guest
    - pagetable_is_null
    - pagetable_null
    - paging_mode_enabled
    - vcpu_reset_fpu
    - page_lock
    - pagetable_get_pfn
    - fixup_guest_stack_selector
    - is_canonical_address
    - VM_ASSIST
    - test_bit
    - page_list_add_tail
    - xen_cr3_to_pfn
    - pv_set_gdt
    - arch_vm_assist_valid_mask
    - is_pv_64bit_domain
    - vcpu_setup_fpu
    - c
    - _mfn
    - l4e_get_pfn
    - atomic_read
    - l4e_from_mfn
    - set_debugreg
    - pv_fixup_guest_cr4
    - hypercall_preempt_check
    - fixup_guest_code_selector
    - memset
    - clear_bit
    - get_page_from_mfn
    - put_old_guest_table
    - __addr_ok
    - page_unlock
    - set_bit
    - paging_update_paging_modes
    - unmap_domain_page
    - breakpoint_addr_ok
    - compat_cr3_to_pfn
    - fill_ro_mpt
    - get_page_type_preemptible
    - x86_adj_dr7_rsvd
    - pv_destroy_gdt
    - read_cr0
    - DIV_ROUND_UP
    - zap_ro_mpt
    - update_domain_wallclock_time
    - is_pv_domain
    - unlikely
    - put_page
    - memcpy
    - x86_adj_dr6_rsvd
    linkageType: ''
    returnType: int
    signature: "int arch_set_info_guest(\n    struct vcpu *v, vcpu_guest_context_u
      c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1143
    functionName: c
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 836
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c(fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1145
    functionName: c
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 836
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c(fld)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1601,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/domain.c:1606,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/domain.c:1609,1
    - Dst: arch_set_info_hvm_guest
      Src: /src/xen/xen/arch/x86/domain.c:1610,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/domain.c:1611,1
    - Dst: default_initialise_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1617
    functionName: arch_initialise_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_hvm_vcpu
    - domain_unlock
    - arch_set_info_hvm_guest
    - copy_from_guest
    - default_initialise_vcpu
    - domain_lock
    linkageType: ''
    returnType: int
    signature: int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/domain.c:1622,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1625,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/domain.c:1627,1
    - Dst: vcpu_destroy_pagetables
      Src: /src/xen/xen/arch/x86/domain.c:1628,1
    - Dst: vcpu_end_shutdown_deferral
      Src: /src/xen/xen/arch/x86/domain.c:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1633
    functionName: arch_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - vcpu_end_shutdown_deferral
    - pv_destroy_gdt
    - vcpu_destroy_pagetables
    - memset
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_reset(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1638,1
    - Dst: force_update_secondary_system_time
      Src: /src/xen/xen/arch/x86/domain.c:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - map
    - v
    argTypes:
    - void*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1642
    functionName: time_area_populate
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - force_update_secondary_system_time
    linkageType: ''
    returnType: void
    signature: void time_area_populate(void *map, struct vcpu *v)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1650,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domain.c:1656,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/domain.c:1659,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/domain.c:1660,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/domain.c:1668,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/domain.c:1671,1
    - Dst: force_update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/domain.c:1677,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/domain.c:1691,1
    - Dst: map_guest_area
      Src: /src/xen/xen/arch/x86/domain.c:1694,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/domain.c:1699,1
    - Dst: is_hwdom_pinned_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1710,1
    - Dst: acpi_get_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:1715,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/domain.c:1718,1
    - Dst: common_vcpu_op
      Src: /src/xen/xen/arch/x86/domain.c:1726,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 2
    argNames:
    - cmd
    - vcpuid
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1731
    functionName: do_vcpu_op
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - domain_vcpu
    - test_and_set_bool
    - vcpu_kick
    - copy_from_guest
    - is_hwdom_pinned_vcpu
    - hypercall_create_continuation
    - force_update_vcpu_system_time
    - acpi_get_processor_id
    - guest_handle_is_null
    - common_vcpu_op
    - copy_to_guest
    - guest_handle_okay
    - map_guest_area
    linkageType: ''
    returnType: long
    signature: long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1767,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/domain.c:1797,1
    - Dst: using_svm
      Src: /src/xen/xen/arch/x86/domain.c:1799,1
    - Dst: svm_load_segs
      Src: /src/xen/xen/arch/x86/domain.c:1800,1
    - Dst: LDT_VIRT_START
      Src: /src/xen/xen/arch/x86/domain.c:1800,1
    - Dst: load_LDT
      Src: /src/xen/xen/arch/x86/domain.c:1806,1
    - Dst: TRY_LOAD_SEG
      Src: /src/xen/xen/arch/x86/domain.c:1808,1
    - Dst: TRY_LOAD_SEG
      Src: /src/xen/xen/arch/x86/domain.c:1809,1
    - Dst: TRY_LOAD_SEG
      Src: /src/xen/xen/arch/x86/domain.c:1812,1
    - Dst: TRY_LOAD_SEG
      Src: /src/xen/xen/arch/x86/domain.c:1813,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/domain.c:1817,1
    - Dst: __wrgsbase
      Src: /src/xen/xen/arch/x86/domain.c:1819,1
    - Dst: __wrfsbase
      Src: /src/xen/xen/arch/x86/domain.c:1820,1
    - Dst: __wrgsbase
      Src: /src/xen/xen/arch/x86/domain.c:1822,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/domain.c:1826,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/domain.c:1827,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/domain.c:1828,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:1832,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/domain.c:1835,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:1843,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/domain.c:1844,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1847,1
    - Dst: ring_1
      Src: /src/xen/xen/arch/x86/domain.c:1849,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:1856,1
    - Dst: ring_1
      Src: /src/xen/xen/arch/x86/domain.c:1858,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1860,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1861,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1866,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1867,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1868,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1869,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1870,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1871,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1872,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/domain.c:1873,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:1877,1
    - Dst: toggle_guest_mode
      Src: /src/xen/xen/arch/x86/domain.c:1890,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:1896,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1898,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1899,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1900,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1901,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1902,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1903,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1904,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1905,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1906,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1907,1
    - Dst: put_guest
      Src: /src/xen/xen/arch/x86/domain.c:1908,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/domain.c:1909,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:1913,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1923
    functionName: load_segments
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - toggle_guest_mode
    - svm_load_segs
    - LDT_VIRT_START
    - __wrgsbase
    - using_svm
    - load_LDT
    - wrmsrns
    - read_cr4
    - domain_crash
    - VM_ASSIST
    - put_guest
    - TRY_LOAD_SEG
    - __wrfsbase
    - is_pv_32bit_vcpu
    - vcpu_info
    - ring_1
    - SWAP
    - unlikely
    linkageType: ''
    returnType: void
    signature: void load_segments(struct vcpu *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - seg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1774
    functionDepth: 0
    functionLinenumber: 1774
    functionLinenumberEnd: 1786
    functionName: TRY_LOAD_SEG
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_LOAD_SEG(seg, val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1942,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/domain.c:1946,1
    - Dst: __rdfsbase
      Src: /src/xen/xen/arch/x86/domain.c:1948,1
    - Dst: __rdgsbase
      Src: /src/xen/xen/arch/x86/domain.c:1949,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/domain.c:1953,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/domain.c:1954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1963
    functionName: save_segments
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - rdmsr
    - read_cr4
    - __rdfsbase
    - is_pv_32bit_vcpu
    - __rdgsbase
    linkageType: ''
    returnType: void
    signature: void save_segments(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: save_segments
      Src: /src/xen/xen/arch/x86/domain.c:1967,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:1975,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/domain.c:1976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1977
    functionName: paravirt_ctxt_switch_from
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - save_segments
    - write_debugreg
    - unlikely
    linkageType: ''
    returnType: void
    signature: void paravirt_ctxt_switch_from(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain.c:1981,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/domain.c:1984,1
    - Dst: l4e_from_page
      Src: /src/xen/xen/arch/x86/domain.c:1985,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:1988,1
    - Dst: activate_debugregs
      Src: /src/xen/xen/arch/x86/domain.c:1989,1
    - Dst: wrmsr_tsc_aux
      Src: /src/xen/xen/arch/x86/domain.c:1992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1979
    functionDepth: 2
    functionLinenumber: 1979
    functionLinenumberEnd: 1993
    functionName: paravirt_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - wrmsr_tsc_aux
    - l4e_from_page
    - activate_debugregs
    - this_cpu
    - unlikely
    - root_table_offset
    linkageType: ''
    returnType: void
    signature: void paravirt_ctxt_switch_to(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update_runstate_area
      Src: /src/xen/xen/arch/x86/domain.c:1997,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:1997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2000
    functionName: _update_runstate_area
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - update_runstate_area
    - is_pv_vcpu
    linkageType: ''
    returnType: void
    signature: void _update_runstate_area(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:2027,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:2027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2028
    functionName: need_full_gdt
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - is_pv_domain
    - is_idle_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline need_full_gdt(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2032,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2032,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/domain.c:2034,1
    - Dst: pv_gdt_ptes
      Src: /src/xen/xen/arch/x86/domain.c:2034,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:2035,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2035,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - cpu
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2037
    functionName: update_xen_slot_in_full_gdt
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - l1e_write
    - ASSERT
    - per_cpu
    - is_pv_32bit_vcpu
    - pv_gdt_ptes
    linkageType: ''
    returnType: void
    signature: void update_xen_slot_in_full_gdt(const struct vcpu *v, unsigned int
      cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDT_VIRT_START
      Src: /src/xen/xen/arch/x86/domain.c:2043,1
    - Dst: lgdt
      Src: /src/xen/xen/arch/x86/domain.c:2046,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - cpu
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2049
    functionName: load_full_gdt
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - lgdt
    - per_cpu
    - GDT_VIRT_START
    linkageType: ''
    returnType: void
    signature: void load_full_gdt(const struct vcpu *v, unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2055,1
    - Dst: lgdt
      Src: /src/xen/xen/arch/x86/domain.c:2058,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2061
    functionName: load_default_gdt
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - lgdt
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void load_default_gdt(unsigned int cpu)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/domain.c:2065,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:2066,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2067,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2071,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2072,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/x86/domain.c:2072,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:2074,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2076,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2076,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domain.c:2077,1
    - Dst: vcpu_save_fpu
      Src: /src/xen/xen/arch/x86/domain.c:2078,1
    - Dst: struct domain*::arch::ctxt_switch::from
      Src: /src/xen/xen/arch/x86/domain.c:2079,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2088,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2089,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:2091,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domain.c:2093,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/domain.c:2096,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/domain.c:2097,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:2099,1
    - Dst: set_msr_xss
      Src: /src/xen/xen/arch/x86/domain.c:2100,1
    - Dst: vcpu_restore_fpu_nonlazy
      Src: /src/xen/xen/arch/x86/domain.c:2102,1
    - Dst: arch::ctxt_switch::to
      Src: /src/xen/xen/arch/x86/domain.c:2103,1
    - Dst: psr_ctxt_switch_to
      Src: /src/xen/xen/arch/x86/domain.c:2106,1
    - Dst: need_full_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2108,1
    - Dst: update_xen_slot_in_full_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2109,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2111,1
    - Dst: need_full_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2112,1
    - Dst: load_default_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2113,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/domain.c:2115,1
    - Dst: using_svm
      Src: /src/xen/xen/arch/x86/domain.c:2119,1
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/arch/x86/domain.c:2119,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:2119,1
    - Dst: svm_load_segs_prefetch
      Src: /src/xen/xen/arch/x86/domain.c:2120,1
    - Dst: need_full_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2123,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2123,1
    - Dst: load_full_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2124,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2127,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2128,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2130,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2131
    functionName: __context_switch
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - need_full_gdt
    - update_xen_slot_in_full_gdt
    - write_ptbase
    - set_xcr0
    - using_svm
    - vcpu_cpu_dirty
    - is_idle_domain
    - BUG
    - load_full_gdt
    - smp_processor_id
    - write_atomic
    - set_msr_xss
    - load_default_gdt
    - cpumask_clear_cpu
    - is_hvm_vcpu
    - arch::ctxt_switch::to
    - is_pv_64bit_domain
    - struct domain*::arch::ctxt_switch::from
    - ASSERT
    - svm_load_segs_prefetch
    - vcpu_restore_fpu_nonlazy
    - psr_ctxt_switch_to
    - vcpu_save_fpu
    - read_atomic
    - per_cpu
    - cpumask_set_cpu
    - memcpy
    linkageType: ''
    returnType: void
    signature: void __context_switch(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:2135,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/domain.c:2136,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2138,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2140,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2141,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/domain.c:2141,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:2146,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/domain.c:2149,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/domain.c:2149,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2150,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/x86/domain.c:2150,1
    - Dst: _update_runstate_area
      Src: /src/xen/xen/arch/x86/domain.c:2153,1
    - Dst: vpmu_switch_from
      Src: /src/xen/xen/arch/x86/domain.c:2154,1
    - Dst: np2m_schedule
      Src: /src/xen/xen/arch/x86/domain.c:2155,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:2157,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/domain.c:2157,1
    - Dst: pt_save_timer
      Src: /src/xen/xen/arch/x86/domain.c:2158,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/domain.c:2160,1
    - Dst: set_current
      Src: /src/xen/xen/arch/x86/domain.c:2162,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2164,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/domain.c:2165,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/domain.c:2165,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/domain.c:2167,1
    - Dst: __context_switch
      Src: /src/xen/xen/arch/x86/domain.c:2171,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/domain.c:2174,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:2176,1
    - Dst: load_segments
      Src: /src/xen/xen/arch/x86/domain.c:2177,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/domain.c:2179,1
    - Dst: spec_ctrl_new_guest_context
      Src: /src/xen/xen/arch/x86/domain.c:2189,1
    - Dst: sched_context_switched
      Src: /src/xen/xen/arch/x86/domain.c:2197,1
    - Dst: _update_runstate_area
      Src: /src/xen/xen/arch/x86/domain.c:2199,1
    - Dst: vpmu_switch_to
      Src: /src/xen/xen/arch/x86/domain.c:2201,1
    - Dst: np2m_schedule
      Src: /src/xen/xen/arch/x86/domain.c:2202,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/domain.c:2205,1
    - Dst: reset_stack_and_call_ind
      Src: /src/xen/xen/arch/x86/domain.c:2207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2133
    functionDepth: 3
    functionLinenumber: 2133
    functionLinenumberEnd: 2208
    functionName: context_switch
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - get_cpu_info
    - update_vcpu_system_time
    - __context_switch
    - local_irq_enable
    - reset_stack_and_call_ind
    - local_irq_disable
    - np2m_schedule
    - sched_context_switched
    - vcpu_cpu_dirty
    - is_idle_domain
    - is_hvm_domain
    - smp_processor_id
    - vpmu_switch_to
    - load_segments
    - local_irq_is_enabled
    - cpu_online
    - spec_ctrl_new_guest_context
    - ASSERT
    - cpumask_of
    - pt_save_timer
    - flush_mask
    - list_empty
    - _update_runstate_area
    - ctxt_switch_levelling
    - set_current
    - read_atomic
    - per_cpu
    - is_pv_domain
    - unlikely
    - vpmu_switch_from
    linkageType: ''
    returnType: void
    signature: void context_switch(struct vcpu *prev, struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_stack_and_call_ind
      Src: /src/xen/xen/arch/x86/domain.c:2212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - same
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2210
    functionDepth: 1
    functionLinenumber: 2210
    functionLinenumberEnd: 2213
    functionName: continue_running
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - reset_stack_and_call_ind
    linkageType: ''
    returnType: void
    signature: void continue_running(struct vcpu *same)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/domain.c:2220,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2222,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2226,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:2226,1
    - Dst: __context_switch
      Src: /src/xen/xen/arch/x86/domain.c:2227,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/domain.c:2230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2215
    functionDepth: 3
    functionLinenumber: 2215
    functionLinenumberEnd: 2233
    functionName: __sync_local_execstate
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - __context_switch
    - smp_processor_id
    - ASSERT
    - this_cpu
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: int
    signature: int __sync_local_execstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_local_execstate
      Src: /src/xen/xen/arch/x86/domain.c:2237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2235
    functionDepth: 4
    functionLinenumber: 2235
    functionLinenumberEnd: 2238
    functionName: sync_local_execstate
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 2
    functionsReached:
    - __sync_local_execstate
    linkageType: ''
    returnType: void
    signature: void sync_local_execstate(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2242,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain.c:2244,1
    - Dst: sync_local_execstate
      Src: /src/xen/xen/arch/x86/domain.c:2245,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2246,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/domain.c:2249,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/domain.c:2249,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2251,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/domain.c:2251,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/domain.c:2252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2240
    functionDepth: 1
    functionLinenumber: 2240
    functionLinenumberEnd: 2253
    functionName: sync_vcpu_execstate
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - is_vcpu_dirty_cpu
    - sync_local_execstate
    - ASSERT
    - read_atomic
    - cpumask_of
    - flush_mask
    linkageType: ''
    returnType: void
    signature: void sync_vcpu_execstate(struct vcpu *v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/x86/domain.c:2263,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/domain.c:2265,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain.c:2268,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/domain.c:2268,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/domain.c:2271,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/domain.c:2275,1
    - Dst: put_page_and_type_preemptible
      Src: /src/xen/xen/arch/x86/domain.c:2276,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain.c:2301,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain.c:2302,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2305,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/domain.c:2310,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2311,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/domain.c:2314,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/domain.c:2317,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/domain.c:2331,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/domain.c:2332,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/domain.c:2335,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/domain.c:2337,1
    - Dst: devalidate_page
      Src: /src/xen/xen/arch/x86/domain.c:2340,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/domain.c:2345,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2348,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2349,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/domain.c:2353,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/domain.c:2372,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2375,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/domain.c:2378,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2383,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/domain.c:2390,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domain.c:2391,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/domain.c:2393,1
    - Dst: page_list_move
      Src: /src/xen/xen/arch/x86/domain.c:2401,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/x86/domain.c:2404,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 3
    argNames:
    - d
    - list
    - type
    argTypes:
    - struct domain*
    - struct page_list_head*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2255
    functionDepth: 1
    functionLinenumber: 2255
    functionLinenumberEnd: 2406
    functionName: relinquish_memory
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - likely
    - page_list_remove_head
    - devalidate_page
    - cmpxchg
    - BUG
    - test_and_clear_bit
    - put_page_and_type_preemptible
    - rspin_unlock
    - page_list_add
    - get_page
    - page_list_add_tail
    - smp_wmb
    - ASSERT
    - hypercall_preempt_check
    - set_bit
    - put_page_alloc_ref
    - page_list_move
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: "int relinquish_memory(\n    struct domain *d, struct page_list_head
      *list, unsigned long type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/domain.c:2413,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/domain.c:2413,1
    - Dst: pci_release_devices
      Src: /src/xen/xen/arch/x86/domain.c:2449,1
    - Dst: PROGRESS
      Src: /src/xen/xen/arch/x86/domain.c:2453,1
    - Dst: iommu_free_pgtables
      Src: /src/xen/xen/arch/x86/domain.c:2455,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:2462,1
    - Dst: relinquish_shared_pages
      Src: /src/xen/xen/arch/x86/domain.c:2468,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/arch/x86/domain.c:2476,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domain.c:2481,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/x86/domain.c:2482,1
    - Dst: vcpu_destroy_pagetables
      Src: /src/xen/xen/arch/x86/domain.c:2507,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/domain.c:2511,1
    - Dst: vpmu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:2513,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain.c:2516,1
    - Dst: pv_destroy_ldt
      Src: /src/xen/xen/arch/x86/domain.c:2521,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2522,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/domain.c:2528,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/domain.c:2529,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/domain.c:2529,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain.c:2529,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/domain.c:2534,1
    - Dst: page_list_splice
      Src: /src/xen/xen/arch/x86/domain.c:2535,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/domain.c:2536,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/domain.c:2537,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/domain.c:2569,1
    - Dst: pit_deinit
      Src: /src/xen/xen/arch/x86/domain.c:2572,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:2574,1
    - Dst: hvm_domain_relinquish_resources
      Src: /src/xen/xen/arch/x86/domain.c:2575,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2408
    functionDepth: 2
    functionLinenumber: 2408
    functionLinenumberEnd: 2578
    functionName: domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - put_page_and_type
    - iommu_free_pgtables
    - mfn_to_page
    - PROGRESS
    - nrspin_unlock
    - pit_deinit
    - is_hvm_domain
    - hvm_domain_relinquish_resources
    - pv_destroy_ldt
    - BUG
    - page_list_splice
    - BUG_ON
    - put_domain
    - INIT_PAGE_LIST_HEAD
    - domain_unpause
    - unmap_guest_area
    - unmap_domain_page_global
    - vcpu_destroy_pagetables
    - _mfn
    - relinquish_shared_pages
    - mem_sharing_is_fork
    - vpmu_destroy
    - cpumask_empty
    - pv_destroy_gdt
    - is_pv_domain
    - nrspin_lock
    - pci_release_devices
    linkageType: ''
    returnType: int
    signature: int domain_relinquish_resources(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domain.c:2462,1
    - Dst: relinquish_shared_pages
      Src: /src/xen/xen/arch/x86/domain.c:2468,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/arch/x86/domain.c:2476,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domain.c:2481,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/x86/domain.c:2482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2484
    functionName: PROGRESS
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - put_domain
    - relinquish_shared_pages
    - mem_sharing_is_fork
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void PROGRESS(shared)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_destroy_pagetables
      Src: /src/xen/xen/arch/x86/domain.c:2507,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/domain.c:2511,1
    - Dst: vpmu_destroy
      Src: /src/xen/xen/arch/x86/domain.c:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2492
    functionDepth: 1
    functionLinenumber: 2492
    functionLinenumberEnd: 2514
    functionName: PROGRESS
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - vcpu_destroy_pagetables
    - unmap_guest_area
    - vpmu_destroy
    linkageType: ''
    returnType: void
    signature: void PROGRESS(paging)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_destroy_ldt
      Src: /src/xen/xen/arch/x86/domain.c:2521,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/domain.c:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2523
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - pv_destroy_ldt
    - pv_destroy_gdt
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_dump_domain_info
      Src: /src/xen/xen/arch/x86/domain.c:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2580
    functionDepth: 1
    functionLinenumber: 2580
    functionLinenumberEnd: 2583
    functionName: arch_dump_domain_info
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - paging_dump_domain_info
    linkageType: ''
    returnType: void
    signature: void arch_dump_domain_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_dump_vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:2587,1
    - Dst: vpmu_dump
      Src: /src/xen/xen/arch/x86/domain.c:2589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2590
    functionName: arch_dump_vcpu_info
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - vpmu_dump
    - paging_dump_vcpu_info
    linkageType: ''
    returnType: void
    signature: void arch_dump_vcpu_info(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_unblock
      Src: /src/xen/xen/arch/x86/domain.c:2605,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/domain.c:2606,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/arch/x86/domain.c:2607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2608
    functionName: vcpu_kick
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 1
    functionsReached:
    - cpu_raise_softirq
    - vcpu_unblock
    - in_irq
    linkageType: ''
    returnType: void
    signature: void vcpu_kick(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/domain.c:2612,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/domain.c:2613,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/domain.c:2618,1
    - Dst: hvm_assert_evtchn_irq
      Src: /src/xen/xen/arch/x86/domain.c:2619,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/domain.c:2621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2610
    functionDepth: 1
    functionLinenumber: 2610
    functionLinenumberEnd: 2622
    functionName: vcpu_mark_events_pending
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - is_hvm_vcpu
    - vcpu_kick
    - hvm_assert_evtchn_irq
    - test_and_set_bit
    linkageType: ''
    returnType: void
    signature: void vcpu_mark_events_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2631
      start: 2624
    functionDepth: 0
    functionLinenumber: 2624
    functionLinenumberEnd: 2631
    functionName: vcpu_kick_softirq
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vcpu_kick_softirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_softirq
      Src: /src/xen/xen/arch/x86/domain.c:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2633
    functionDepth: 1
    functionLinenumber: 2633
    functionLinenumberEnd: 2637
    functionName: init_vcpu_kick_softirq
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - open_softirq
    linkageType: ''
    returnType: int
    signature: int init_vcpu_kick_softirq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/domain.c:2642,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/domain.c:2644,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domain.c:2646,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/domain.c:2646,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/domain.c:2649,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/domain.c:2654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2640
    functionDepth: 1
    functionLinenumber: 2640
    functionLinenumberEnd: 2659
    functionName: domain_max_paddr_bits
    functionSourceFile: /src/xen/xen/arch/x86/domain.c
    functionUses: 0
    functionsReached:
    - paging_mode_external
    - paging_mode_shadow
    - IS_ENABLED
    - min
    - paging_mode_hap
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_max_paddr_bits(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: guest_from_compat_handle
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_from_compat_handle(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_frequency_change
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: cpu_frequency_change_helper
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached:
    - cpu_frequency_change
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check cpu_frequency_change_helper(void *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - msr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 118
    functionName: msr_read_allowed
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool msr_read_allowed(unsigned int msr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - msr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: msr_write_allowed
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool msr_write_allowed(unsigned int msr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: msr_read_allowed
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:152,1
    - Dst: msr_write_allowed
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:159,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - ra
    argTypes:
    - struct resource_access*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 176
    functionName: check_resource_access
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached:
    - msr_read_allowed
    - msr_write_allowed
    linkageType: ''
    returnType: void
    signature: void check_resource_access(struct resource_access *ra)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:192,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:195,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:196,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:207,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:209,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:210,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:212,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:214,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:216,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:217,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:223,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:227,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 239
    functionName: resource_access
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 0
    functionsReached:
    - unlikely
    - BUG
    - wrmsr_safe
    - SECONDS
    - get_s_time_fixed
    - rdtsc
    - rdmsr_safe
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void resource_access(void *info)
  - BBCount: 116
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:243,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:248,1
    - Dst: xsm_platform_op
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:254,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:263,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:264,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:265,1
    - Dst: do_settime
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:271,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:277,1
    - Dst: do_settime
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:278,1
    - Dst: mtrr_add_page
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:286,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:295,1
    - Dst: mtrr_del_page
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:298,1
    - Dst: mtrr_del_page
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:307,1
    - Dst: mtrr_get
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:323,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:327,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:335,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:338,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:341,1
    - Dst: ucode_update_hcall
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:343,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:349,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:352,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:355,1
    - Dst: ucode_update_hcall
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:357,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:369,1
    - Dst: setup_ioapic_dest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:371,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:374,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:394,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:397,1
    - Dst: copy_from_compat
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:401,1
    - Dst: copy_to_compat
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:406,1
    - Dst: copy_to_compat
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:410,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:416,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:417,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:418,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:419,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:420,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:421,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:424,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:433,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:436,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:442,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:449,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:451,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:455,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:457,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:460,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:462,1
    - Dst: copy_to_compat
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:464,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:465,1
    - Dst: efi_get_info
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:469,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:472,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:481,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:484,1
    - Dst: efi_runtime_call
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:495,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:497,1
    - Dst: acpi_enter_sleep
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:502,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:510,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:512,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:520,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:523,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:524,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:531,1
    - Dst: xenctl_bitmap_to_cpumask
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:534,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:536,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:540,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:544,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:548,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:557,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:558,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:560,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:579,1
    - Dst: set_px_pminfo
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:581,1
    - Dst: set_cx_pminfo
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:590,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:604,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:606,1
    - Dst: acpi_set_pdc_bits
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:607,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:622,1
    - Dst: set_cppc_pminfo
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:624,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:640,1
    - Dst: cpu_present
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:647,1
    - Dst: acpi_get_processor_id
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:654,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:655,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:657,1
    - Dst: cpumask_last
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:661,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:663,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:665,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:673,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:679,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:681,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:690,1
    - Dst: cpumask_last
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:696,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:698,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:700,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:709,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:716,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:720,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:727,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:729,1
    - Dst: xsm_resource_plug_core
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:738,1
    - Dst: cpu_present
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:742,1
    - Dst: clocksource_is_tsc
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:743,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:749,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:755,1
    - Dst: xsm_resource_unplug_core
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:764,1
    - Dst: cpu_present
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:774,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:780,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:786,1
    - Dst: xsm_resource_plug_core
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:792,1
    - Dst: cpu_add
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:796,1
    - Dst: xsm_resource_plug_core
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:802,1
    - Dst: memory_add
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:806,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:818,1
    - Dst: num_present_cpus
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:819,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:821,1
    - Dst: get_cur_idle_nums
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:830,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:831,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:846,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:857,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:864,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:866,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:868,1
    - Dst: check_resource_access
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:874,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:878,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:881,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:886,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:888,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:892,1
    - Dst: resource_access
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:893,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:895,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:895,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:898,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:905,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:916,1
    - Dst: xensyms_read
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:918,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:921,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:930,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:932,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:938,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:941,1
    - Dst: fill_console_start_info
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:942,1
    - Dst: copy_field_to_guest
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:947,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:957,1
    CyclomaticComplexity: 178
    EdgeCount: 178
    ICount: 443
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 960
    functionName: do_platform_op
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 4
    functionsReached:
    - cpumask_last
    - copy_from_guest
    - on_selected_cpus
    - get_cpu_idle_time
    - __cpumask_clear_cpu
    - xenctl_bitmap_to_cpumask
    - set_px_pminfo
    - likely
    - do_settime
    - mtrr_del_page
    - IS_ENABLED
    - ucode_update_hcall
    - efi_get_info
    - copy_to_guest_offset
    - xsm_resource_plug_core
    - cpu_add
    - num_present_cpus
    - resource_access
    - xsm_platform_op
    - strlen
    - set_cppc_pminfo
    - cpumask_to_xenctl_bitmap
    - bootsym
    - efi_runtime_call
    - setup_ioapic_dest
    - xfree
    - fill_console_start_info
    - copy_field_to_guest
    - free_cpumask_var
    - copy_to_compat
    - smp_processor_id
    - hypercall_create_continuation
    - acpi_get_processor_id
    - printk
    - XEN_GUEST_HANDLE_PARAM
    - put_cpu_maps
    - copy_to_guest
    - dprintk
    - copy_from_compat
    - NOW
    - cpu_online
    - spin_unlock
    - clocksource_is_tsc
    - memory_add
    - mtrr_get
    - ASSERT
    - cpu_present
    - hypercall_preempt_check
    - guest_from_compat_handle
    - set_cx_pminfo
    - memset
    - min_t
    - check_resource_access
    - cpumask_of
    - mtrr_add_page
    - __copy_field_to_guest
    - acpi_set_pdc_bits
    - xsm_resource_unplug_core
    - xmalloc_array
    - xensyms_read
    - get_cur_idle_nums
    - BUILD_BUG_ON
    - XEN_GUEST_HANDLE
    - __copy_to_guest
    - C
    - spin_trylock
    - continue_hypercall_on_cpu
    - per_cpu
    - memcpy
    - get_cpu_maps
    - acpi_enter_sleep
    linkageType: ''
    returnType: ret_t
    signature: "ret_t do_platform_op(\n    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t)
      u_xenpf_op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: C
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 282
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:540,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:544,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/platform_hypercall.c:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 553
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/platform_hypercall.c
    functionUses: 3
    functionsReached:
    - copy_to_guest_offset
    - get_cpu_idle_time
    - __cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu, cpumap )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - apic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: ioapic_has_eoi_reg
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioapic_has_eoi_reg(apic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_or
      Src: /src/xen/xen/arch/x86/io_apic.c:103,1
    - Dst: apic_pin_2_gsi_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:107,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: share_vector_maps
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_pin_2_gsi_irq
    - bitmap_or
    - irq_to_desc
    linkageType: ''
    returnType: void
    signature: void share_vector_maps(unsigned int src, unsigned int dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:144,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:148,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/io_apic.c:152,1
    - Dst: share_vector_maps
      Src: /src/xen/xen/arch/x86/io_apic.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - irq
    - apic
    - pin
    argTypes:
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: add_pin_to_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - panic
    - BUG_ON
    - share_vector_maps
    linkageType: ''
    returnType: void
    signature: void add_pin_to_irq(unsigned int irq, int apic, int pin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - irq
    - apic
    - pin
    argTypes:
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: remove_pin_from_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void remove_pin_from_irq(unsigned int irq, int apic, int pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct irq_pin_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: pin_list_next
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct irq_pin_list
    signature: struct irq_pin_list *pin_list_next(const struct irq_pin_list *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:211,1
    - Dst: share_vector_maps
      Src: /src/xen/xen/arch/x86/io_apic.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - irq
    - oldapic
    - oldpin
    - newapic
    - newpin
    argTypes:
    - unsigned int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: replace_pin_at_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - share_vector_maps
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: "void replace_pin_at_irq(unsigned int irq,\n                      int
      oldapic, int oldpin,\n                      int newapic, int newpin)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 228
    functionName: io_apic_get_used_vector_map
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: vmask_t
    signature: vmask_t *io_apic_get_used_vector_map(unsigned int irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/io_apic.c:235,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/io_apic.c:241,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/io_apic.c:251,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/io_apic.c:252,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 255
    functionName: alloc_ioapic_entries
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - xfree
    linkageType: ''
    returnType: struct IO_APIC_route_entry
    signature: struct IO_APIC_route_entry **alloc_ioapic_entries(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:264,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:265,1
    - Dst: iommu_read_apic_from_ire
      Src: /src/xen/xen/arch/x86/io_apic.c:269,1
    - Dst: iommu_read_apic_from_ire
      Src: /src/xen/xen/arch/x86/io_apic.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - apic
    - pin
    - raw
    argTypes:
    - unsigned int
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: __ioapic_read_entry
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __io_apic_read
    - iommu_read_apic_from_ire
    linkageType: ''
    returnType: struct IO_APIC_route_entry
    signature: "struct IO_APIC_route_entry __ioapic_read_entry(\n    unsigned int
      apic, unsigned int pin, bool raw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:282,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:283,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - apic
    - pin
    - raw
    argTypes:
    - unsigned int
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: ioapic_read_entry
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - __ioapic_read_entry
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: struct IO_APIC_route_entry
    signature: "struct IO_APIC_route_entry ioapic_read_entry(\n    unsigned int apic,
      unsigned int pin, bool raw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __io_apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:294,1
    - Dst: __io_apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:295,1
    - Dst: iommu_update_ire_from_apic
      Src: /src/xen/xen/arch/x86/io_apic.c:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - apic
    - pin
    - raw
    - e
    argTypes:
    - unsigned int
    - unsigned int
    - bool
    - struct IO_APIC_route_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: __ioapic_write_entry
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - iommu_update_ire_from_apic
    - __io_apic_write
    linkageType: ''
    returnType: void
    signature: "void __ioapic_write_entry(\n    unsigned int apic, unsigned int pin,
      bool raw,\n    struct IO_APIC_route_entry e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:317,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:318,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - apic
    - pin
    - raw
    - e
    argTypes:
    - unsigned int
    - unsigned int
    - bool
    - struct IO_APIC_route_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: ioapic_write_entry
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - __ioapic_write_entry
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: "void ioapic_write_entry(\n    unsigned int apic, unsigned int pin,
      bool raw,\n    struct IO_APIC_route_entry e)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_has_eoi_reg
      Src: /src/xen/xen/arch/x86/io_apic.c:337,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:352,1
    - Dst: IO_APIC_BASE
      Src: /src/xen/xen/arch/x86/io_apic.c:354,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:363,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:370,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:376,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:378,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - apic
    - vector
    - pin
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 387
    functionName: __io_apic_eoi
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_write_entry
    - __ioapic_read_entry
    - ioapic_has_eoi_reg
    - IO_APIC_BASE
    linkageType: ''
    returnType: void
    signature: void __io_apic_eoi(unsigned int apic, unsigned int vector, unsigned
      int pin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:407,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ioapic_entries
    argTypes:
    - struct IO_APIC_route_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 411
    functionName: save_IO_APIC_setup
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_read_entry
    linkageType: ''
    returnType: int
    signature: int save_IO_APIC_setup(struct IO_APIC_route_entry **ioapic_entries)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ioapic_entries
    argTypes:
    - struct IO_APIC_route_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 441
    functionName: mask_IO_APIC_setup
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - ioapic_write_entry
    linkageType: ''
    returnType: void
    signature: void mask_IO_APIC_setup(struct IO_APIC_route_entry **ioapic_entries)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ioapic_entries
    - raw
    argTypes:
    - struct IO_APIC_route_entry**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 466
    functionName: restore_IO_APIC_setup
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - ioapic_write_entry
    linkageType: ''
    returnType: int
    signature: "int restore_IO_APIC_setup(struct IO_APIC_route_entry **ioapic_entries,\n
      \                         bool raw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/io_apic.c:473,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/io_apic.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ioapic_entries
    argTypes:
    - struct IO_APIC_route_entry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: free_ioapic_entries
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_ioapic_entries(struct IO_APIC_route_entry **ioapic_entries)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:483,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:489,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - irq
    - enable
    - disable
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 494
    functionName: modify_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_write_entry
    - __ioapic_read_entry
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: "void modify_IO_APIC_irq(unsigned int irq, unsigned int enable,\n                               unsigned
      int disable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: __mask_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - modify_IO_APIC_irq
    linkageType: ''
    returnType: void
    signature: void __mask_IO_APIC_irq (unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: __unmask_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - modify_IO_APIC_irq
    linkageType: ''
    returnType: void
    signature: void __unmask_IO_APIC_irq (unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: __edge_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - modify_IO_APIC_irq
    linkageType: ''
    returnType: void
    signature: void __edge_IO_APIC_irq (unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: __level_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - modify_IO_APIC_irq
    linkageType: ''
    returnType: void
    signature: void __level_IO_APIC_irq (unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:524,1
    - Dst: __mask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:525,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 4
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: mask_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - __mask_IO_APIC_irq
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void mask_IO_APIC_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:533,1
    - Dst: __unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:534,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: unmask_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - __unmask_IO_APIC_irq
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void unmask_IO_APIC_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:543,1
    - Dst: __io_apic_eoi
      Src: /src/xen/xen/arch/x86/io_apic.c:547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 549
    functionName: __eoi_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __io_apic_eoi
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: void __eoi_IO_APIC_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:554,1
    - Dst: __eoi_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:555,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 557
    functionName: eoi_IO_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - __eoi_IO_APIC_irq
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void eoi_IO_APIC_irq(struct irq_desc *desc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:564,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:574,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:576,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:581,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:583,1
    - Dst: __io_apic_eoi
      Src: /src/xen/xen/arch/x86/io_apic.c:585,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:591,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:593,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:595,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:597,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/arch/x86/io_apic.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - apic
    - pin
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 599
    functionName: clear_IO_APIC_pin
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_read_entry
    - __ioapic_write_entry
    - IO_APIC_ID
    - printk
    - memset
    - __io_apic_eoi
    linkageType: ''
    returnType: void
    signature: void clear_IO_APIC_pin(unsigned int apic, unsigned int pin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_IO_APIC_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 609
    functionName: clear_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - clear_IO_APIC_pin
    linkageType: ''
    returnType: void
    signature: void clear_IO_APIC (void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/io_apic.c:620,1
    - Dst: set_desc_affinity
      Src: /src/xen/xen/arch/x86/io_apic.c:622,1
    - Dst: SET_APIC_LOGICAL_ID
      Src: /src/xen/xen/arch/x86/io_apic.c:625,1
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:627,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:634,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:637,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/io_apic.c:641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 642
    functionName: set_ioapic_affinity_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_read_entry
    - spin_unlock
    - __ioapic_write_entry
    - SET_APIC_LOGICAL_ID
    - spin_lock
    - set_desc_affinity
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: void set_ioapic_affinity_irq(struct irq_desc *desc, const cpumask_t
      *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 3
    argNames:
    - apic
    - pin
    - type
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: find_irq_entry
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_irq_entry(int apic, int pin, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 2
    argNames:
    - irq
    - type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 682
    functionName: find_isa_irq_pin
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_isa_irq_pin(int irq, int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 14
    argCount: 2
    argNames:
    - irq
    - type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 711
    functionName: find_isa_irq_apic
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_isa_irq_apic(int irq, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_irq_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:736,1
    - Dst: pin_2_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:739,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:740,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:742,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:743,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/io_apic.c:743,1
    - Dst: set_ioapic_affinity_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:744,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:745,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 748
    functionName: setup_ioapic_dest
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - set_ioapic_affinity_irq
    - irq_to_desc
    - pin_2_irq
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BUG_ON
    - find_irq_entry
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void setup_ioapic_dest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:755,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/io_apic.c:757,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 762
    functionName: EISA_ELCR
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_printk
    - inb
    - platform_legacy_irq
    linkageType: ''
    returnType: int
    signature: int EISA_ELCR(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: default_EISA_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_EISA_trigger(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: default_EISA_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_EISA_polarity(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 776
    functionName: default_ISA_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_ISA_trigger(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: default_ISA_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_ISA_polarity(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: default_PCI_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_PCI_trigger(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    functionName: default_PCI_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_PCI_polarity(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    functionName: default_MCA_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_MCA_trigger(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 789
    functionName: default_MCA_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_MCA_polarity(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: default_NEC98_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_NEC98_trigger(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 795
    functionName: default_NEC98_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: default_NEC98_polarity(idx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: default_ISA_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:812,1
    - Dst: default_EISA_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:817,1
    - Dst: default_PCI_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:822,1
    - Dst: default_MCA_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:827,1
    - Dst: default_NEC98_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:832,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:837,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:851,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:862,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 868
    functionName: MPBIOS_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - default_PCI_polarity
    - default_ISA_polarity
    - default_NEC98_polarity
    - printk
    - default_MCA_polarity
    - default_EISA_polarity
    linkageType: ''
    returnType: int
    signature: int MPBIOS_polarity(int idx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: default_ISA_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:886,1
    - Dst: default_EISA_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:891,1
    - Dst: default_PCI_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:896,1
    - Dst: default_MCA_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:901,1
    - Dst: default_NEC98_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:906,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:911,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:925,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:936,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 942
    functionName: MPBIOS_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - default_PCI_trigger
    - default_MCA_trigger
    - default_EISA_trigger
    - printk
    - default_NEC98_trigger
    - default_ISA_trigger
    linkageType: ''
    returnType: int
    signature: int MPBIOS_trigger(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPBIOS_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: irq_polarity
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - MPBIOS_polarity
    linkageType: ''
    returnType: int
    signature: int irq_polarity(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPBIOS_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: irq_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - MPBIOS_trigger
    linkageType: ''
    returnType: int
    signature: int irq_trigger(int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:963,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:988,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - idx
    - apic
    - pin
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 995
    functionName: pin_2_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int pin_2_irq(int idx, int apic, int pin)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: highest_gsi
      Src: /src/xen/xen/arch/x86/io_apic.c:1002,1
    - Dst: mp_find_ioapic
      Src: /src/xen/xen/arch/x86/io_apic.c:1005,1
    - Dst: io_apic_gsi_base
      Src: /src/xen/xen/arch/x86/io_apic.c:1009,1
    - Dst: apic_pin_2_gsi_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - gsi
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1014
    functionName: gsi_2_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - highest_gsi
    - apic_pin_2_gsi_irq
    - io_apic_gsi_base
    - mp_find_ioapic
    linkageType: ''
    returnType: int
    signature: int gsi_2_irq(unsigned int gsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_irq_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1022,1
    - Dst: pin_2_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1023,1
    - Dst: irq_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:1024,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1031
    functionName: IO_APIC_irq_trigger
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - find_irq_entry
    - pin_2_irq
    - irq_trigger
    linkageType: ''
    returnType: int
    signature: int IO_APIC_irq_trigger(int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ent
    - ','
    - mode
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1046
    functionName: SET_DEST
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DEST(ent, mode, val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_APIC_irq_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - irq
    - trigger
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1054
    functionName: ioapic_register_intr
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - IO_APIC_irq_trigger
    linkageType: ''
    returnType: void
    signature: void ioapic_register_intr(int irq, unsigned long trigger)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1062,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:1069,1
    - Dst: find_irq_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1075,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1078,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1084,1
    - Dst: irq_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:1089,1
    - Dst: irq_polarity
      Src: /src/xen/xen/arch/x86/io_apic.c:1090,1
    - Dst: irq_trigger
      Src: /src/xen/xen/arch/x86/io_apic.c:1092,1
    - Dst: pin_2_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1097,1
    - Dst: add_pin_to_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1099,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/io_apic.c:1101,1
    - Dst: assign_irq_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:1104,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:1105,1
    - Dst: ioapic_register_intr
      Src: /src/xen/xen/arch/x86/io_apic.c:1107,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1109,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1110,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1110,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:1112,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/io_apic.c:1112,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:1113,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1114,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:1115,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1121
    functionName: setup_IO_APIC_irqs
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_printk
    - platform_legacy_irq
    - spin_unlock_irqrestore
    - cpu_mask_to_apicid
    - find_irq_entry
    - irq_to_desc
    - __ioapic_write_entry
    - SET_DEST
    - disable_8259A_irq
    - ioapic_register_intr
    - BUG_ON
    - IO_APIC_IRQ
    - irq_polarity
    - irq_trigger
    - memset
    - pin_2_irq
    - spin_lock_irqsave
    - assign_irq_vector
    - add_pin_to_irq
    linkageType: ''
    returnType: void
    signature: void setup_IO_APIC_irqs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:1130,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1132,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1132,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1135,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:1143,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/io_apic.c:1143,1
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1158,1
    - Dst: enable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1160,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - apic
    - pin
    - vector
    argTypes:
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1161
    functionName: setup_ExtINT_IRQ0_pin
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - SET_DEST
    - disable_8259A_irq
    - enable_8259A_irq
    - cpu_mask_to_apicid
    - memset
    - ioapic_write_entry
    - apic_write
    linkageType: ''
    returnType: void
    signature: void setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, int
      vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1165
    functionName: UNEXPECTED_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UNEXPECTED_IO_APIC(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1176,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1178,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1185,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/io_apic.c:1189,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:1194,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1195,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1196,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1198,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1200,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:1201,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1203,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1204,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1205,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1206,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1207,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1209,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1211,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1212,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1221,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1223,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1224,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1231,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1233,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1241,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1242,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1244,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1254,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1255,1
    - Dst: UNEXPECTED_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1257,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1260,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1262,1
    - Dst: ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1268,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1271,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1273,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1276,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1288,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1289,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/io_apic.c:1294,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1298,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1298,1
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:1299,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1300,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1301,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1304,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 71
    argCount: 1
    argNames:
    - boot
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1167
    functionDepth: 3
    functionLinenumber: 1167
    functionLinenumberEnd: 1307
    functionName: __print_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - ioapic_read_entry
    - irq_to_desc
    - spin_lock_irqsave
    - io_apic_read
    - spin_unlock_irqrestore
    - UNEXPECTED_IO_APIC
    - process_pending_softirqs
    - printk
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: void __print_IO_APIC(bool boot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __print_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1309
    functionDepth: 4
    functionLinenumber: 1309
    functionLinenumberEnd: 1313
    functionName: print_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - __print_IO_APIC
    linkageType: ''
    returnType: void
    signature: void print_IO_APIC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __print_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1315
    functionDepth: 4
    functionLinenumber: 1315
    functionLinenumberEnd: 1318
    functionName: _print_IO_APIC_keyhandler
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __print_IO_APIC
    linkageType: ''
    returnType: void
    signature: void _print_IO_APIC_keyhandler(unsigned char key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/io_apic.c:1326,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/io_apic.c:1337,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:1338,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/io_apic.c:1341,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:1342,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/x86/io_apic.c:1349,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/io_apic.c:1349,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:1350,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/x86/io_apic.c:1358,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/io_apic.c:1358,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:1360,1
    - Dst: ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1365,1
    - Dst: ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1369,1
    - Dst: find_isa_irq_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1387,1
    - Dst: find_isa_irq_apic
      Src: /src/xen/xen/arch/x86/io_apic.c:1388,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1391,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1399,1
    - Dst: clear_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1405,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1320
    functionDepth: 5
    functionLinenumber: 1320
    functionLinenumberEnd: 1406
    functionName: enable_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - xzalloc
    - ioapic_read_entry
    - find_isa_irq_pin
    - typeof
    - clear_IO_APIC
    - xzalloc_array
    - find_isa_irq_apic
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void enable_IO_APIC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1416,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:1426,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:1435,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/io_apic.c:1435,1
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1440,1
    - Dst: disconnect_bsp_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:1442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1411
    functionDepth: 5
    functionLinenumber: 1411
    functionLinenumberEnd: 1443
    functionName: disable_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - SET_DEST
    - clear_IO_APIC
    - get_apic_id
    - disconnect_bsp_APIC
    - memset
    - ioapic_write_entry
    linkageType: ''
    returnType: void
    signature: void disable_IO_APIC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/io_apic.c:1457,1
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/x86/io_apic.c:1459,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/io_apic.c:1460,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/io_apic.c:1462,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1463,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/io_apic.c:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1476
    functionName: timer_irq_works
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - local_save_flags
    - mdelay
    - local_irq_enable
    - local_irq_restore
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int timer_irq_works(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:1505,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1506,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1507,1
    - Dst: i8259A_irq_pending
      Src: /src/xen/xen/arch/x86/io_apic.c:1508,1
    - Dst: __unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1511,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1500
    functionDepth: 4
    functionLinenumber: 1500
    functionLinenumberEnd: 1515
    functionName: startup_edge_ioapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __unmask_IO_APIC_irq
    - spin_lock_irqsave
    - platform_legacy_irq
    - disable_8259A_irq
    - spin_unlock_irqrestore
    - i8259A_irq_pending
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int startup_edge_ioapic_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_complete_move
      Src: /src/xen/xen/arch/x86/io_apic.c:1524,1
    - Dst: move_native_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1525,1
    - Dst: mask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1529,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1522
    functionDepth: 6
    functionLinenumber: 1522
    functionLinenumberEnd: 1531
    functionName: ack_edge_ioapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - move_native_irq
    - irq_complete_move
    - mask_IO_APIC_irq
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void ack_edge_ioapic_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1547
    functionDepth: 5
    functionLinenumber: 1547
    functionLinenumberEnd: 1552
    functionName: startup_level_ioapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - unmask_IO_APIC_irq
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int startup_level_ioapic_irq(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/io_apic.c:1556,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/io_apic.c:1561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1554
    functionDepth: 0
    functionLinenumber: 1554
    functionLinenumberEnd: 1570
    functionName: setup_ioapic_ack
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int setup_ioapic_ack(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:1578,1
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:1579,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1586,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:1589,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:1593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1596
    functionName: io_apic_level_ack_pending
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - io_apic_read
    - pin_list_next
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: bool
    signature: bool io_apic_level_ack_pending(unsigned int irq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: irq_complete_move
      Src: /src/xen/xen/arch/x86/io_apic.c:1602,1
    - Dst: mask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1605,1
    - Dst: apic_tmr_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1627,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1629,1
    - Dst: io_apic_level_ack_pending
      Src: /src/xen/xen/arch/x86/io_apic.c:1635,1
    - Dst: move_masked_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1636,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/io_apic.c:1640,1
    - Dst: __edge_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1641,1
    - Dst: __level_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1642,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/io_apic.c:1643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1598
    functionDepth: 6
    functionLinenumber: 1598
    functionLinenumberEnd: 1645
    functionName: mask_and_ack_level_ioapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ack_APIC_irq
    - io_apic_level_ack_pending
    - __edge_IO_APIC_irq
    - apic_tmr_read
    - spin_lock
    - __level_IO_APIC_irq
    - irq_complete_move
    - mask_IO_APIC_irq
    - move_masked_irq
    linkageType: ''
    returnType: void
    signature: void mask_and_ack_level_ioapic_irq(struct irq_desc *desc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eoi_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1653,1
    - Dst: mask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1657,1
    - Dst: eoi_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1658,1
    - Dst: io_apic_level_ack_pending
      Src: /src/xen/xen/arch/x86/io_apic.c:1660,1
    - Dst: move_masked_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1661,1
    - Dst: unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1647
    functionDepth: 5
    functionLinenumber: 1647
    functionLinenumberEnd: 1666
    functionName: end_level_ioapic_irq_old
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - unmask_IO_APIC_irq
    - eoi_IO_APIC_irq
    - io_apic_level_ack_pending
    - mask_IO_APIC_irq
    - move_masked_irq
    linkageType: ''
    returnType: void
    signature: void end_level_ioapic_irq_old(struct irq_desc *desc, u8 vector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: eoi_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1694,1
    - Dst: apic_tmr_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1696,1
    - Dst: end_nonmaskable_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1698,1
    - Dst: io_apic_level_ack_pending
      Src: /src/xen/xen/arch/x86/io_apic.c:1701,1
    - Dst: move_native_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1702,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/io_apic.c:1706,1
    - Dst: __mask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1707,1
    - Dst: __edge_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1708,1
    - Dst: __level_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1709,1
    - Dst: __unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1711,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/io_apic.c:1712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1668
    functionDepth: 5
    functionLinenumber: 1668
    functionLinenumberEnd: 1714
    functionName: end_level_ioapic_irq_new
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - __unmask_IO_APIC_irq
    - eoi_IO_APIC_irq
    - io_apic_level_ack_pending
    - move_native_irq
    - __mask_IO_APIC_irq
    - __edge_IO_APIC_irq
    - end_nonmaskable_irq
    - apic_tmr_read
    - spin_lock
    - __level_IO_APIC_irq
    linkageType: ''
    returnType: void
    signature: void end_level_ioapic_irq_new(struct irq_desc *desc, u8 vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1749,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/io_apic.c:1750,1
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:1750,1
    - Dst: make_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1752
    functionName: init_IO_APIC_traps
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - platform_legacy_irq
    - irq_to_vector
    - IO_APIC_IRQ
    - make_8259A_irq
    linkageType: ''
    returnType: void
    signature: void init_IO_APIC_traps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1758,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1760
    functionName: enable_lapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void enable_lapic_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:1766,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1768
    functionName: disable_lapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void disable_lapic_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1773
    functionName: ack_lapic_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void ack_lapic_irq(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_isa_irq_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1797,1
    - Dst: find_isa_irq_apic
      Src: /src/xen/xen/arch/x86/io_apic.c:1798,1
    - Dst: ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1802,1
    - Dst: clear_IO_APIC_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1803,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:1805,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:1809,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/io_apic.c:1809,1
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1815,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/io_apic.c:1817,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/io_apic.c:1818,1
    - Dst: CMOS_WRITE
      Src: /src/xen/xen/arch/x86/io_apic.c:1819,1
    - Dst: CMOS_WRITE
      Src: /src/xen/xen/arch/x86/io_apic.c:1821,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/io_apic.c:1825,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/io_apic.c:1826,1
    - Dst: CMOS_WRITE
      Src: /src/xen/xen/arch/x86/io_apic.c:1830,1
    - Dst: CMOS_WRITE
      Src: /src/xen/xen/arch/x86/io_apic.c:1831,1
    - Dst: clear_IO_APIC_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1832,1
    - Dst: ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:1834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1791
    functionDepth: 4
    functionLinenumber: 1791
    functionLinenumberEnd: 1835
    functionName: unlock_ExtINT_logic
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - CMOS_WRITE
    - ioapic_read_entry
    - CMOS_READ
    - ioapic_write_entry
    - mdelay
    - SET_DEST
    - find_isa_irq_pin
    - get_apic_id
    - find_isa_irq_apic
    - memset
    - clear_IO_APIC_pin
    linkageType: ''
    returnType: void
    signature: void unlock_ExtINT_logic(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/io_apic.c:1849,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1854,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1854,1
    - Dst: clear_irq_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:1856,1
    - Dst: bind_irq_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:1858,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1859,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1870,1
    - Dst: init_8259A
      Src: /src/xen/xen/arch/x86/io_apic.c:1871,1
    - Dst: find_isa_irq_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1876,1
    - Dst: find_isa_irq_apic
      Src: /src/xen/xen/arch/x86/io_apic.c:1877,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1881,1
    - Dst: unmask_IO_APIC_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1888,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1888,1
    - Dst: timer_irq_works
      Src: /src/xen/xen/arch/x86/io_apic.c:1889,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1890,1
    - Dst: hpet_enable_legacy_replacement_mode
      Src: /src/xen/xen/arch/x86/io_apic.c:1907,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1909,1
    - Dst: timer_irq_works
      Src: /src/xen/xen/arch/x86/io_apic.c:1911,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1913,1
    - Dst: hpet_disable_legacy_replacement_mode
      Src: /src/xen/xen/arch/x86/io_apic.c:1915,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1916,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1921,1
    - Dst: hpet_disable_legacy_replacement_mode
      Src: /src/xen/xen/arch/x86/io_apic.c:1922,1
    - Dst: clear_IO_APIC_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1925,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1926,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1930,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1932,1
    - Dst: setup_ExtINT_IRQ0_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1936,1
    - Dst: timer_irq_works
      Src: /src/xen/xen/arch/x86/io_apic.c:1937,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1938,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1939,1
    - Dst: replace_pin_at_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1941,1
    - Dst: add_pin_to_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1943,1
    - Dst: clear_IO_APIC_pin
      Src: /src/xen/xen/arch/x86/io_apic.c:1949,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1951,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1953,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1955,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1955,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1957,1
    - Dst: enable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1958,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:1958,1
    - Dst: timer_irq_works
      Src: /src/xen/xen/arch/x86/io_apic.c:1960,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1961,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1962,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1965,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1966,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1968,1
    - Dst: init_8259A
      Src: /src/xen/xen/arch/x86/io_apic.c:1971,1
    - Dst: make_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:1972,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:1973,1
    - Dst: unlock_ExtINT_logic
      Src: /src/xen/xen/arch/x86/io_apic.c:1975,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/io_apic.c:1977,1
    - Dst: timer_irq_works
      Src: /src/xen/xen/arch/x86/io_apic.c:1979,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1980,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:1983,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/io_apic.c:1984,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1843
    functionDepth: 5
    functionLinenumber: 1843
    functionLinenumberEnd: 1985
    functionName: check_timer
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - replace_pin_at_irq
    - unmask_IO_APIC_irq
    - hpet_enable_legacy_replacement_mode
    - make_8259A_irq
    - clear_irq_vector
    - unlock_ExtINT_logic
    - apic_write
    - init_8259A
    - irq_to_desc
    - disable_8259A_irq
    - find_isa_irq_apic
    - printk
    - panic
    - find_isa_irq_pin
    - enable_8259A_irq
    - local_irq_restore
    - local_irq_save
    - clear_IO_APIC_pin
    - bind_irq_vector
    - timer_irq_works
    - add_pin_to_irq
    - setup_ExtINT_IRQ0_pin
    - hpet_disable_legacy_replacement_mode
    linkageType: ''
    returnType: void
    signature: void check_timer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xmalloc
      Src: /src/xen/xen/arch/x86/io_apic.c:2005,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/io_apic.c:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 2008
    functionName: ioapic_pm_state_alloc
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - _xmalloc
    linkageType: ''
    returnType: void
    signature: void ioapic_pm_state_alloc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2017,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2018,1
    - Dst: setup_IO_APIC_irqs
      Src: /src/xen/xen/arch/x86/io_apic.c:2025,1
    - Dst: init_IO_APIC_traps
      Src: /src/xen/xen/arch/x86/io_apic.c:2026,1
    - Dst: check_timer
      Src: /src/xen/xen/arch/x86/io_apic.c:2027,1
    - Dst: print_IO_APIC
      Src: /src/xen/xen/arch/x86/io_apic.c:2028,1
    - Dst: ioapic_pm_state_alloc
      Src: /src/xen/xen/arch/x86/io_apic.c:2029,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/io_apic.c:2031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2010
    functionDepth: 6
    functionLinenumber: 2010
    functionLinenumberEnd: 2032
    functionName: setup_IO_APIC
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - print_IO_APIC
    - setup_IO_APIC_irqs
    - init_IO_APIC_traps
    - ioapic_pm_state_alloc
    - register_keyhandler
    - printk
    - check_timer
    linkageType: ''
    returnType: void
    signature: void setup_IO_APIC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2040,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2043,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2044,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2048
    functionName: ioapic_suspend
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __io_apic_read
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void ioapic_suspend(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2057,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2061,1
    - Dst: __io_apic_write
      Src: /src/xen/xen/arch/x86/io_apic.c:2064,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:2067,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2050
    functionDepth: 2
    functionLinenumber: 2050
    functionLinenumberEnd: 2070
    functionName: ioapic_resume
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - __ioapic_write_entry
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - __io_apic_write
    - __io_apic_read
    linkageType: ''
    returnType: void
    signature: void ioapic_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2077,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2078,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ioapic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2082
    functionName: io_apic_get_version
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - io_apic_read
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int io_apic_get_version (int ioapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2090,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2091,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ioapic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2095
    functionName: io_apic_get_redir_entries
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - io_apic_read
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int io_apic_get_redir_entries (int ioapic)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:2100,1
    - Dst: IO_APIC_IRQ
      Src: /src/xen/xen/arch/x86/io_apic.c:2105,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2106,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/io_apic.c:2117,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2128,1
    - Dst: add_pin_to_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2129,1
    - Dst: assign_irq_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:2131,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/io_apic.c:2136,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/io_apic.c:2137,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/io_apic.c:2139,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:2140,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/io_apic.c:2140,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2142,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/io_apic.c:2143,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/io_apic.c:2143,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2147,1
    - Dst: ioapic_register_intr
      Src: /src/xen/xen/arch/x86/io_apic.c:2152,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2154,1
    - Dst: disable_8259A_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2155,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2157,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:2158,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/io_apic.c:2159,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/io_apic.c:2161,1
    - Dst: struct irq_desc*::handler::startup
      Src: /src/xen/xen/arch/x86/io_apic.c:2163,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - ioapic
    - pin
    - irq
    - edge_level
    - active_high_low
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2098
    functionDepth: 5
    functionLinenumber: 2098
    functionLinenumberEnd: 2167
    functionName: io_apic_set_pci_routing
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - apic_printk
    - platform_legacy_irq
    - struct irq_desc*::handler::startup
    - spin_unlock_irqrestore
    - spin_lock
    - cpu_mask_to_apicid
    - cpumask_and
    - irq_to_desc
    - __ioapic_write_entry
    - SET_DEST
    - disable_8259A_irq
    - ioapic_register_intr
    - printk
    - spin_unlock
    - CPUMASK_PR
    - IO_APIC_IRQ
    - this_cpu
    - memset
    - spin_lock_irqsave
    - assign_irq_vector
    - add_pin_to_irq
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level,
      int active_high_low)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - physbase
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2169
    functionDepth: 0
    functionLinenumber: 2169
    functionLinenumberEnd: 2180
    functionName: ioapic_physbase_to_id
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ioapic_physbase_to_id(unsigned long physbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_irq_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:2189,1
    - Dst: pin_2_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2191,1
    - Dst: io_apic_gsi_base
      Src: /src/xen/xen/arch/x86/io_apic.c:2192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - apic
    - pin
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2193
    functionName: apic_pin_2_gsi_irq
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 2
    functionsReached:
    - find_irq_entry
    - pin_2_irq
    - io_apic_gsi_base
    linkageType: ''
    returnType: int
    signature: int apic_pin_2_gsi_irq(int apic, int pin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_physbase_to_id
      Src: /src/xen/xen/arch/x86/io_apic.c:2200,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2203,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2204,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - physbase
    - reg
    - pval
    argTypes:
    - unsigned long
    - unsigned int
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2208
    functionName: ioapic_guest_read
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - io_apic_read
    - ioapic_physbase_to_id
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int ioapic_guest_read(unsigned long physbase, unsigned int reg, u32
      *pval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2215
    functionName: WARN_BOGUS_WRITE
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_BOGUS_WRITE(f, a...)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_physbase_to_id
      Src: /src/xen/xen/arch/x86/io_apic.c:2223,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2245,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2246,1
    - Dst: apic_pin_2_gsi_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2257,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/io_apic.c:2261,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2280,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2281,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2282,1
    - Dst: WARN_BOGUS_WRITE
      Src: /src/xen/xen/arch/x86/io_apic.c:2285,1
    - Dst: add_pin_to_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2297,1
    - Dst: assign_irq_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:2300,1
    - Dst: remove_pin_from_irq
      Src: /src/xen/xen/arch/x86/io_apic.c:2304,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2310,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/io_apic.c:2314,1
    - Dst: map_domain_pirq
      Src: /src/xen/xen/arch/x86/io_apic.c:2315,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/io_apic.c:2317,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/io_apic.c:2322,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/io_apic.c:2332,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/io_apic.c:2334,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/io_apic.c:2336,1
    - Dst: SET_DEST
      Src: /src/xen/xen/arch/x86/io_apic.c:2337,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/io_apic.c:2337,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/io_apic.c:2341,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/io_apic.c:2342,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/io_apic.c:2342,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:2347,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/io_apic.c:2349,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - physbase
    - reg
    - val
    argTypes:
    - unsigned long
    - unsigned int
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2216
    functionDepth: 5
    functionLinenumber: 2216
    functionLinenumberEnd: 2352
    functionName: ioapic_guest_write
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - spin_unlock_irqrestore
    - gprintk
    - cpu_mask_to_apicid
    - cpumask_and
    - ioapic_physbase_to_id
    - irq_to_desc
    - __ioapic_write_entry
    - SET_DEST
    - io_apic_read
    - printk
    - WARN_BOGUS_WRITE
    - write_unlock
    - CPUMASK_PR
    - this_cpu
    - map_domain_pirq
    - apic_pin_2_gsi_irq
    - write_lock
    - remove_pin_from_irq
    - spin_lock_irqsave
    - assign_irq_vector
    - add_pin_to_irq
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32
      val)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum ioapic_irq_destination_types
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2354
    functionDepth: 0
    functionLinenumber: 2354
    functionLinenumberEnd: 2369
    functionName: delivery_mode_2_str
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char * delivery_mode_2_str(\n    const enum ioapic_irq_destination_types
      mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/io_apic.c:2383,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2390,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2392,1
    - Dst: irq_to_vector
      Src: /src/xen/xen/arch/x86/io_apic.c:2392,1
    - Dst: pin_list_next
      Src: /src/xen/xen/arch/x86/io_apic.c:2394,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2398,1
    - Dst: ioapic_read_entry
      Src: /src/xen/xen/arch/x86/io_apic.c:2400,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2402,1
    - Dst: delivery_mode_2_str
      Src: /src/xen/xen/arch/x86/io_apic.c:2404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2371
    functionDepth: 3
    functionLinenumber: 2371
    functionLinenumberEnd: 2413
    functionName: dump_ioapic_irq_info
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 1
    functionsReached:
    - ioapic_read_entry
    - delivery_mode_2_str
    - irq_to_vector
    - process_pending_softirqs
    - printk
    - pin_list_next
    linkageType: ''
    returnType: void
    signature: void dump_ioapic_irq_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2420,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2421,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2422,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2432
    functionName: bad_ioapic_register
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - io_apic_read
    - printk
    linkageType: ''
    returnType: __init
    signature: __init bad_ioapic_register(unsigned int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/io_apic.c:2445,1
    - Dst: KB
      Src: /src/xen/xen/arch/x86/io_apic.c:2445,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2447,1
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/io_apic.c:2455,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2456,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/io_apic.c:2457,1
    - Dst: bad_ioapic_register
      Src: /src/xen/xen/arch/x86/io_apic.c:2459,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/io_apic.c:2461,1
    - Dst: io_apic_read
      Src: /src/xen/xen/arch/x86/io_apic.c:2466,1
    - Dst: rangeset_add_singleton
      Src: /src/xen/xen/arch/x86/io_apic.c:2470,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2472,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2434
    functionDepth: 2
    functionLinenumber: 2434
    functionLinenumberEnd: 2475
    functionName: ioapic_init_mappings
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - apic_printk
    - rangeset_add_singleton
    - set_fixmap_nocache
    - IS_ALIGNED
    - fix_to_virt
    - clear_fixmap
    - io_apic_read
    - KB
    - printk
    - bad_ioapic_register
    linkageType: ''
    returnType: void
    signature: void ioapic_init_mappings(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_init_mappings
      Src: /src/xen/xen/arch/x86/io_apic.c:2480,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/io_apic.c:2482,1
    - Dst: highest_gsi
      Src: /src/xen/xen/arch/x86/io_apic.c:2482,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2488,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2503,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/io_apic.c:2510,1
    - Dst: num_present_cpus
      Src: /src/xen/xen/arch/x86/io_apic.c:2510,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2515,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2517
    functionName: ioapic_init
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - highest_gsi
    - max
    - ioapic_init_mappings
    - num_present_cpus
    - printk
    linkageType: ''
    returnType: void
    signature: void ioapic_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_present_cpus
      Src: /src/xen/xen/arch/x86/io_apic.c:2521,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/io_apic.c:2523,1
    - Dst: is_system_domain
      Src: /src/xen/xen/arch/x86/io_apic.c:2526,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/io_apic.c:2530,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/io_apic.c:2535,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/io_apic.c:2536,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/io_apic.c:2539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2542
    functionName: __hwdom_init::arch_hwdom_irqs
    functionSourceFile: /src/xen/xen/arch/x86/io_apic.c
    functionUses: 0
    functionsReached:
    - num_present_cpus
    - min
    - min_t
    - printk
    - is_system_domain
    - is_hvm_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/string.c:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 30
    functionName: '*(memmove)(void *dest, const void *src, size_t n)'
    functionSourceFile: /src/xen/xen/arch/x86/string.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *(memmove)(void *dest, const void *src, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/xstate.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xcr
    - val
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: xsetbv
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - _ASM_EXTABLE
    linkageType: ''
    returnType: bool
    signature: bool xsetbv(uint32_t xcr, uint64_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:64,1
    - Dst: xsetbv
      Src: /src/xen/xen/arch/x86/xstate.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - xfeatures
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: set_xcr0
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 1
    functionsReached:
    - xsetbv
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool set_xcr0(u64 xfeatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: get_xcr0
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_xcr0(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:87,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/xstate.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xss
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: set_msr_xss
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 1
    functionsReached:
    - wrmsrl
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void set_msr_xss(u64 xss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: get_msr_xss
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_msr_xss(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: flsl
      Src: /src/xen/xen/arch/x86/xstate.c:107,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/xstate.c:108,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/xstate.c:112,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/xstate.c:121,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/xstate.c:124,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/xstate.c:128,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:130,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:131,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:132,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/xstate.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 137
    functionName: setup_xstate_features
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - xzalloc_array
    - flsl
    - BUG_ON
    - cpuid_count
    - test_bit
    linkageType: ''
    returnType: int
    signature: int setup_xstate_features(bool bsp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/xstate.c:160,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/xstate.c:161,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - comp_offsets
    - xcomp_bv
    argTypes:
    - uint16_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 167
    functionName: setup_xstate_comp
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ROUNDUP
    - test_bit
    linkageType: ''
    returnType: void
    signature: "void setup_xstate_comp(uint16_t *comp_offsets,\n                              const
      uint64_t xcomp_bv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:182,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:189,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:191,1
    - Dst: xstate_uncompressed_size
      Src: /src/xen/xen/arch/x86/xstate.c:191,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:195,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:199,1
    - Dst: xsave_area_compressed
      Src: /src/xen/xen/arch/x86/xstate.c:199,1
    - Dst: setup_xstate_comp
      Src: /src/xen/xen/arch/x86/xstate.c:200,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:205,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/xstate.c:206,1
    - Dst: fls
      Src: /src/xen/xen/arch/x86/xstate.c:219,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:225,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:226,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:228,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - v
    - dest
    - size
    argTypes:
    - struct vcpu*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 236
    functionName: expand_xsave_states
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - xstate_uncompressed_size
    - fls
    - VCPU_MAP_XSAVE_AREA
    - BUG_ON
    - ASSERT
    - memset
    - VCPU_UNMAP_XSAVE_AREA
    - setup_xstate_comp
    - xsave_area_compressed
    - memcpy
    linkageType: ''
    returnType: void
    signature: void expand_xsave_states(const struct vcpu *v, void *dest, unsigned
      int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:250,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:255,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:256,1
    - Dst: xstate_uncompressed_size
      Src: /src/xen/xen/arch/x86/xstate.c:256,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:257,1
    - Dst: xsave_area_compressed
      Src: /src/xen/xen/arch/x86/xstate.c:257,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:263,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:271,1
    - Dst: setup_xstate_comp
      Src: /src/xen/xen/arch/x86/xstate.c:277,1
    - Dst: fls
      Src: /src/xen/xen/arch/x86/xstate.c:288,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:294,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:295,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/xstate.c:297,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - v
    - src
    - size
    argTypes:
    - struct vcpu*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 305
    functionName: compress_xsave_states
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - xstate_uncompressed_size
    - fls
    - VCPU_MAP_XSAVE_AREA
    - BUG_ON
    - ASSERT
    - VCPU_UNMAP_XSAVE_AREA
    - setup_xstate_comp
    - xsave_area_compressed
    - memcpy
    linkageType: ''
    returnType: void
    signature: void compress_xsave_states(struct vcpu *v, const void *src, unsigned
      int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSAVE
      Src: /src/xen/xen/arch/x86/xstate.c:327,1
    - Dst: XSAVE
      Src: /src/xen/xen/arch/x86/xstate.c:331,1
    - Dst: XSAVE
      Src: /src/xen/xen/arch/x86/xstate.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - v
    - mask
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 380
    functionName: xsave
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 2
    functionsReached:
    - XSAVE
    linkageType: ''
    returnType: void
    signature: void xsave(struct vcpu *v, uint64_t mask)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/xen/xen/arch/x86/xstate.c:410,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:412,1
    - Dst: XRSTOR
      Src: /src/xen/xen/arch/x86/xstate.c:441,1
    - Dst: XRSTOR
      Src: /src/xen/xen/arch/x86/xstate.c:444,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/xstate.c:449,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:452,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:454,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:456,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:458,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:460,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:477,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:477,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:483,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/xstate.c:486,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/xstate.c:497,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 2
    argNames:
    - v
    - mask
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 499
    functionName: xrstor
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - likely
    - BUILD_BUG_ON
    - XRSTOR
    - gprintk
    - this_cpu
    - memset
    - domain_crash
    - __builtin_expect
    linkageType: ''
    returnType: void
    signature: void xrstor(struct vcpu *v, uint64_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: _xrstor
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _xrstor(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: XRSTOR
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XRSTOR(pfx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:507,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: xsave_enabled
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool xsave_enabled(const struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/xstate.c:527,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:530,1
    - Dst: _xvzalloc
      Src: /src/xen/xen/arch/x86/xstate.c:548,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 565
    functionName: xstate_alloc_save_area
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - _xvzalloc
    - is_idle_vcpu
    linkageType: ''
    returnType: int
    signature: int xstate_alloc_save_area(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XVFREE
      Src: /src/xen/xen/arch/x86/xstate.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: xstate_free_save_area
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - XVFREE
    linkageType: ''
    returnType: void
    signature: void xstate_free_save_area(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - xcr0
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: valid_xcr0
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_xcr0(uint64_t xcr0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:609,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:628,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/xstate.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - xcr0
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 634
    functionName: xstate_uncompressed_size
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - max
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xstate_uncompressed_size(uint64_t xcr0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:628,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/xstate.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 631
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 16
    functionsReached:
    - ASSERT
    - max
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, xcr0 )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:640,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:657,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/xstate.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - xstates
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 666
    functionName: xstate_compressed_size
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ROUNDUP
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xstate_compressed_size(uint64_t xstates)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:657,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/xstate.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 16
    functionsReached:
    - ASSERT
    - ROUNDUP
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, xstates )
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:678,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:681,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:682,1
    - Dst: valid_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:682,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:684,1
    - Dst: X86_XCR0_STATES::X86_XCR0_STATES
      Src: /src/xen/xen/arch/x86/xstate.c:684,1
    - Dst: X86_XSS_STATES::X86_XSS_STATES
      Src: /src/xen/xen/arch/x86/xstate.c:685,1
    - Dst: X86_XCR0_STATES::X86_XCR0_STATES
      Src: /src/xen/xen/arch/x86/xstate.c:688,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:690,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/xstate.c:691,1
    - Dst: set_msr_xss
      Src: /src/xen/xen/arch/x86/xstate.c:694,1
    - Dst: cpuid_count_ebx
      Src: /src/xen/xen/arch/x86/xstate.c:699,1
    - Dst: X86_XSS_STATES::X86_XSS_STATES
      Src: /src/xen/xen/arch/x86/xstate.c:701,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/xstate.c:708,1
    - Dst: hw_size::hw_size
      Src: /src/xen/xen/arch/x86/xstate.c:709,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/xstate.c:718,1
    - Dst: hw_size::hw_size
      Src: /src/xen/xen/arch/x86/xstate.c:719,1
    - Dst: xstate_uncompressed_size
      Src: /src/xen/xen/arch/x86/xstate.c:727,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/xstate.c:730,1
    - Dst: cpuid_count_ebx
      Src: /src/xen/xen/arch/x86/xstate.c:736,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/xstate.c:746,1
    - Dst: hw_size::hw_size
      Src: /src/xen/xen/arch/x86/xstate.c:747,1
    - Dst: xstate_compressed_size
      Src: /src/xen/xen/arch/x86/xstate.c:754,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/xstate.c:757,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/xstate.c:766,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - s
    - new
    argTypes:
    - struct xcheck_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 770
    functionName: check_new_xstate
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - xstate_uncompressed_size
    - BUG
    - panic
    - set_msr_xss
    - X86_XSS_STATES::X86_XSS_STATES
    - BUILD_BUG_ON
    - WARN
    - BUG_ON
    - set_xcr0
    - xstate_compressed_size
    - X86_XCR0_STATES::X86_XCR0_STATES
    - valid_xcr0
    - hw_size::hw_size
    - cpuid_count_ebx
    linkageType: ''
    returnType: void
    signature: void check_new_xstate(struct xcheck_state *s, uint64_t new)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:784,1
    - Dst: get_msr_xss
      Src: /src/xen/xen/arch/x86/xstate.c:785,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:798,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:801,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:804,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:807,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:815,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:818,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:820,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:821,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:823,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:824,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:826,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:827,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:830,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:831,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:833,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:834,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:836,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:837,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/xstate.c:839,1
    - Dst: check_new_xstate
      Src: /src/xen/xen/arch/x86/xstate.c:840,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:843,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/xstate.c:844,1
    - Dst: set_msr_xss
      Src: /src/xen/xen/arch/x86/xstate.c:846,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 847
    functionName: xstate_check_sizes
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - check_new_xstate
    - BUG
    - get_msr_xss
    - boot_cpu_has
    - set_msr_xss
    - set_xcr0
    - get_xcr0
    linkageType: ''
    returnType: void
    signature: void xstate_check_sizes(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: boolean_param
      Src: /src/xen/xen/arch/x86/xstate.c:857,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:878,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/xstate.c:879,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/xstate.c:883,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:885,1
    - Dst: valid_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:885,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:886,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/xstate.c:891,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:898,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/xstate.c:899,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:902,1
    - Dst: set_msr_xss
      Src: /src/xen/xen/arch/x86/xstate.c:903,1
    - Dst: cpuid_count_ebx
      Src: /src/xen/xen/arch/x86/xstate.c:913,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/xstate.c:914,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:919,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/xstate.c:920,1
    - Dst: cpuid_count_ebx
      Src: /src/xen/xen/arch/x86/xstate.c:920,1
    - Dst: setup_xstate_features
      Src: /src/xen/xen/arch/x86/xstate.c:923,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/xstate.c:924,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/xstate.c:926,1
    - Dst: xstate_check_sizes
      Src: /src/xen/xen/arch/x86/xstate.c:927,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 850
    functionDepth: 5
    functionLinenumber: 850
    functionLinenumberEnd: 928
    functionName: xstate_init
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - BUG
    - set_in_cr4
    - boolean_param
    - set_msr_xss
    - setup_xstate_features
    - IS_ENABLED
    - BUG_ON
    - cpuid_count
    - set_xcr0
    - this_cpu
    - xstate_check_sizes
    - printk
    - setup_clear_cpu_cap
    - valid_xcr0
    - cpuid_count_ebx
    linkageType: ''
    returnType: void
    signature: void xstate_init(struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 897
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void this_cpu(xcr0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_policy_xcr0_max
      Src: /src/xen/xen/arch/x86/xstate.c:933,1
    - Dst: valid_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:939,1
    - Dst: valid_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:940,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/xstate.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 9
    argCount: 4
    argNames:
    - d
    - xcr0
    - xcr0_accum
    - hdr
    argTypes:
    - struct domain*
    - uint64_t
    - uint64_t
    - struct xsave_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 952
    functionName: validate_xstate
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - valid_xcr0
    - cpu_policy_xcr0_max
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int validate_xstate(const struct domain *d, uint64_t xcr0, uint64_t
      xcr0_accum,\n                    const struct xsave_hdr *hdr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpu_policy_xcr0_max
      Src: /src/xen/xen/arch/x86/xstate.c:957,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/xstate.c:967,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:969,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/xstate.c:972,1
    - Dst: valid_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:977,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/xstate.c:981,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:981,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/xstate.c:983,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/xstate.c:985,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1000,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/xstate.c:1002,1
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:1006,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:1009,1
    - Dst: xstate_all
      Src: /src/xen/xen/arch/x86/xstate.c:1011,1
    - Dst: xrstor
      Src: /src/xen/xen/arch/x86/xstate.c:1019,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1021,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - index
    - new_bv
    argTypes:
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 954
    functionDepth: 3
    functionLinenumber: 954
    functionLinenumberEnd: 1025
    functionName: handle_xsetbv
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - xstate_all
    - write_cr0
    - VCPU_MAP_XSAVE_AREA
    - cpu_policy_xcr0_max
    - read_cr0
    - set_xcr0
    - gprintk
    - clts
    - unlikely
    - valid_xcr0
    - domain_crash
    - xrstor
    - VCPU_UNMAP_XSAVE_AREA
    linkageType: ''
    returnType: int
    signature: int handle_xsetbv(u32 index, u64 new_bv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1029,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/xstate.c:1031,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/xstate.c:1034,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/xstate.c:1035,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/xstate.c:1051,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1058
    functionName: read_bndcfgu
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - write_cr0
    - smp_processor_id
    - read_cr0
    - ASSERT
    - clts
    - ilog2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_bndcfgu(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1062,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/xstate.c:1063,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/xstate.c:1064,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/xstate.c:1069,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:1073,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/xstate.c:1076,1
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:1078,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/xstate.c:1079,1
    - Dst: xrstor
      Src: /src/xen/xen/arch/x86/xstate.c:1080,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/xstate.c:1081,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/xstate.c:1084,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/xstate.c:1086,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/xstate.c:1087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - mask
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1088
    functionName: xstate_set_init
    functionSourceFile: /src/xen/xen/arch/x86/xstate.c
    functionUses: 0
    functionsReached:
    - BUG
    - write_cr0
    - smp_processor_id
    - VCPU_MAP_XSAVE_AREA
    - read_cr0
    - set_xcr0
    - clts
    - this_cpu
    - memset
    - VCPU_UNMAP_XSAVE_AREA
    - xrstor
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void xstate_set_init(uint64_t mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stac
      Src: /src/xen/xen/arch/x86/crash.c:44,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/crash.c:47,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/crash.c:50,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/crash.c:66,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/crash.c:66,1
    - Dst: kexec_crash_save_cpu
      Src: /src/xen/xen/arch/x86/crash.c:68,1
    - Dst: __stop_this_cpu
      Src: /src/xen/xen/arch/x86/crash.c:69,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/crash.c:71,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/crash.c:72,1
    - Dst: current_local_apic_mode
      Src: /src/xen/xen/arch/x86/crash.c:90,1
    - Dst: apic_rdmsr
      Src: /src/xen/xen/arch/x86/crash.c:95,1
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/crash.c:97,1
    - Dst: GET_xAPIC_ID
      Src: /src/xen/xen/arch/x86/crash.c:102,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/crash.c:102,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/crash.c:104,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/crash.c:105,1
    - Dst: apic_mem_write
      Src: /src/xen/xen/arch/x86/crash.c:107,1
    - Dst: apic_mem_write
      Src: /src/xen/xen/arch/x86/crash.c:108,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/crash.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - regs
    - cpu
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 117
    functionName: do_nmi_crash
    functionSourceFile: /src/xen/xen/arch/x86/crash.c
    functionUses: 0
    functionsReached:
    - apic_mem_read
    - apic_wrmsr
    - cpu_relax
    - GET_xAPIC_ID
    - current_local_apic_mode
    - halt
    - apic_rdmsr
    - apic_mem_write
    - kexec_crash_save_cpu
    - ASSERT
    - per_cpu
    - this_cpu
    - cpumask_clear_cpu
    - set_ist
    - __stop_this_cpu
    - stac
    linkageType: ''
    returnType: int
    signature: "int do_nmi_crash(\n    const struct cpu_user_regs *regs, int cpu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/crash.c:122,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/crash.c:123,1
    - Dst: disable_lapic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/crash.c:125,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/crash.c:126,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/crash.c:131,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/crash.c:131,1
    - Dst: _set_gate_lower
      Src: /src/xen/xen/arch/x86/crash.c:137,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/crash.c:138,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/crash.c:140,1
    - Dst: smp_send_nmi_allbutself
      Src: /src/xen/xen/arch/x86/crash.c:141,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/crash.c:144,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/crash.c:146,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/crash.c:154,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/crash.c:157,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/crash.c:158,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/crash.c:160,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/crash.c:161,1
    - Dst: iommu_crash_shutdown
      Src: /src/xen/xen/arch/x86/crash.c:168,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/crash.c:170,1
    - Dst: __stop_this_cpu
      Src: /src/xen/xen/arch/x86/crash.c:172,1
    - Dst: current_local_apic_mode
      Src: /src/xen/xen/arch/x86/crash.c:179,1
    - Dst: pcidevs_trylock
      Src: /src/xen/xen/arch/x86/crash.c:181,1
    - Dst: pci_disable_msi_all
      Src: /src/xen/xen/arch/x86/crash.c:187,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/crash.c:188,1
    - Dst: disable_IO_APIC
      Src: /src/xen/xen/arch/x86/crash.c:191,1
    - Dst: hpet_disable
      Src: /src/xen/xen/arch/x86/crash.c:192,1
    - Dst: iommu_quiesce
      Src: /src/xen/xen/arch/x86/crash.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 195
    functionName: nmi_shootdown_cpus
    functionSourceFile: /src/xen/xen/arch/x86/crash.c
    functionUses: 0
    functionsReached:
    - mdelay
    - current_local_apic_mode
    - local_irq_disable
    - set_ist
    - console_force_unlock
    - iommu_crash_shutdown
    - disable_IO_APIC
    - smp_processor_id
    - cpumask_andnot
    - pcidevs_trylock
    - pci_disable_msi_all
    - printk
    - set_nmi_callback
    - __stop_this_cpu
    - _set_gate_lower
    - cpu_online
    - iommu_quiesce
    - CPUMASK_PR
    - hpet_disable
    - this_cpu
    - cpumask_of
    - smp_send_nmi_allbutself
    - cpumask_empty
    - pcidevs_unlock
    - disable_lapic_nmi_watchdog
    linkageType: ''
    returnType: void
    signature: void nmi_shootdown_cpus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: local_irq_count
    functionSourceFile: /src/xen/xen/arch/x86/crash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void local_irq_count(crashing_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nmi_shootdown_cpus
      Src: /src/xen/xen/arch/x86/crash.c:201,1
    - Dst: kexec_crash_save_info
      Src: /src/xen/xen/arch/x86/crash.c:203,1
    - Dst: arch_get_pfn_to_mfn_frame_list_list
      Src: /src/xen/xen/arch/x86/crash.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 7
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: machine_crash_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/crash.c
    functionUses: 0
    functionsReached:
    - arch_get_pfn_to_mfn_frame_list_list
    - kexec_crash_save_info
    - nmi_shootdown_cpus
    linkageType: ''
    returnType: void
    signature: void machine_crash_shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: set_cpu_state
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_cpu_state(state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset_cpuinfo
      Src: /src/xen/xen/arch/x86/smpboot.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: initialize_cpu_data
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - reset_cpuinfo
    linkageType: ''
    returnType: void
    signature: void initialize_cpu_data(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: identify_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:109,1
    - Dst: recheck_cpu_features
      Src: /src/xen/xen/arch/x86/smpboot.c:110,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/smpboot.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: smp_store_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_to_socket
    - identify_cpu
    - recheck_cpu_features
    linkageType: ''
    returnType: bool
    signature: bool smp_store_cpu_info(unsigned int id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/smpboot.c:140,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:141,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/smpboot.c:146,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/smpboot.c:147,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/smpboot.c:148,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:149,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:150,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/smpboot.c:153,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - slave
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: synchronize_tsc_master
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - cpu_relax
    - boot_cpu_has
    - atomic_read
    - smp_wmb
    - atomic_inc
    - rdtsc_ordered
    - cpumask_clear_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void synchronize_tsc_master(unsigned int slave)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/smpboot.c:164,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:165,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:170,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:171,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/smpboot.c:172,1
    - Dst: __write_tsc
      Src: /src/xen/xen/arch/x86/smpboot.c:178,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/smpboot.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - slave
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 181
    functionName: synchronize_tsc_slave
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - boot_cpu_has
    - cpumask_test_cpu
    - smp_rmb
    - __write_tsc
    - atomic_inc
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void synchronize_tsc_slave(unsigned int slave)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smpboot.c:185,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:189,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:192,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:193,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/smpboot.c:194,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:201,1
    - Dst: x2apic_ap_setup
      Src: /src/xen/xen/arch/x86/smpboot.c:202,1
    - Dst: setup_local_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:203,1
    - Dst: smp_store_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:206,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:208,1
    - Dst: hypervisor_ap_setup
      Src: /src/xen/xen/arch/x86/smpboot.c:214,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:216,1
    - Dst: hvm_cpu_up
      Src: /src/xen/xen/arch/x86/smpboot.c:221,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:223,1
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:226,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/arch/x86/smpboot.c:227,1
    - Dst: play_dead
      Src: /src/xen/xen/arch/x86/smpboot.c:228,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:232,1
    - Dst: synchronize_tsc_slave
      Src: /src/xen/xen/arch/x86/smpboot.c:234,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 239
    functionName: smp_callin
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - clear_local_APIC
    - smp_store_cpu_info
    - cpu_relax
    - x2apic_ap_setup
    - mdelay
    - setup_local_APIC
    - Dprintk
    - hypervisor_ap_setup
    - smp_processor_id
    - play_dead
    - spin_debug_enable
    - hvm_cpu_up
    - set_cpu_state
    - synchronize_tsc_slave
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void smp_callin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:246,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:246,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:247,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:247,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:248,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:248,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:249,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cpu1
    - cpu2
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: link_thread_siblings
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void link_thread_siblings(unsigned int cpu1, unsigned int cpu2)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:257,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:259,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/smpboot.c:259,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:260,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:260,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:261,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:261,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:265,1
    - Dst: link_thread_siblings
      Src: /src/xen/xen/arch/x86/smpboot.c:273,1
    - Dst: link_thread_siblings
      Src: /src/xen/xen/arch/x86/smpboot.c:279,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:282,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/smpboot.c:290,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:290,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:291,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:296,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:300,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:300,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:301,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:301,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/smpboot.c:305,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:305,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/smpboot.c:311,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:311,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 326
    functionName: set_cpu_sibling_map
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - link_thread_siblings
    - cpu_to_socket
    - cpumask_first
    - per_cpu
    - printk
    - cpumask_copy
    - cpumask_set_cpu
    - cpumask_weight
    linkageType: ''
    returnType: void
    signature: void set_cpu_sibling_map(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:330,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smpboot.c:331,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/smpboot.c:333,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:333,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/arch/x86/smpboot.c:351,1
    - Dst: wrpkrs_and_cache
      Src: /src/xen/xen/arch/x86/smpboot.c:354,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/smpboot.c:357,1
    - Dst: percpu_traps_init
      Src: /src/xen/xen/arch/x86/smpboot.c:359,1
    - Dst: cpu_init
      Src: /src/xen/xen/arch/x86/smpboot.c:361,1
    - Dst: initialize_cpu_data
      Src: /src/xen/xen/arch/x86/smpboot.c:365,1
    - Dst: microcode_update_one
      Src: /src/xen/xen/arch/x86/smpboot.c:367,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/smpboot.c:374,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/smpboot.c:374,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/smpboot.c:376,1
    - Dst: update_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/smpboot.c:379,1
    - Dst: update_pb_opt_ctrl
      Src: /src/xen/xen/arch/x86/smpboot.c:380,1
    - Dst: tsx_init
      Src: /src/xen/xen/arch/x86/smpboot.c:382,1
    - Dst: smp_callin
      Src: /src/xen/xen/arch/x86/smpboot.c:384,1
    - Dst: set_cpu_sibling_map
      Src: /src/xen/xen/arch/x86/smpboot.c:386,1
    - Dst: init_percpu_time
      Src: /src/xen/xen/arch/x86/smpboot.c:388,1
    - Dst: setup_secondary_APIC_clock
      Src: /src/xen/xen/arch/x86/smpboot.c:390,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/smpboot.c:396,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/arch/x86/smpboot.c:399,1
    - Dst: notify_cpu_starting
      Src: /src/xen/xen/arch/x86/smpboot.c:400,1
    - Dst: lock_vector_lock
      Src: /src/xen/xen/arch/x86/smpboot.c:407,1
    - Dst: setup_vector_irq
      Src: /src/xen/xen/arch/x86/smpboot.c:408,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:409,1
    - Dst: unlock_vector_lock
      Src: /src/xen/xen/arch/x86/smpboot.c:410,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/smpboot.c:413,1
    - Dst: mtrr_ap_init
      Src: /src/xen/xen/arch/x86/smpboot.c:414,1
    - Dst: startup_cpu_idle_loop
      Src: /src/xen/xen/arch/x86/smpboot.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 417
    functionName: start_secondary
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - update_pb_opt_ctrl
    - local_irq_enable
    - cpu_init
    - spin_debug_enable
    - wrmsrl
    - tsx_init
    - update_mcu_opt_ctrl
    - initialize_cpu_data
    - flush_tlb_local
    - init_percpu_time
    - smp_processor_id
    - set_cpu_sibling_map
    - cpumask_set_cpu
    - microcode_update_one
    - startup_cpu_idle_loop
    - setup_vector_irq
    - notify_cpu_starting
    - spin_debug_disable
    - rdmsrl
    - wrpkrs_and_cache
    - this_cpu
    - smp_callin
    - write_cr4
    - unlock_vector_lock
    - boot_cpu_has
    - percpu_traps_init
    - mtrr_ap_init
    - setup_secondary_APIC_clock
    - lock_vector_lock
    linkageType: ''
    returnType: void
    signature: void start_secondary(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/smpboot.c:438,1
    - Dst: tboot_wake_ap
      Src: /src/xen/xen/arch/x86/smpboot.c:438,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smpboot.c:444,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:445,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:449,1
    - Dst: apic_icr_write
      Src: /src/xen/xen/arch/x86/smpboot.c:454,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:459,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:462,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:463,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:464,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/smpboot.c:467,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:469,1
    - Dst: apic_icr_write
      Src: /src/xen/xen/arch/x86/smpboot.c:471,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:473,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:476,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:477,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:478,1
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/smpboot.c:481,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:491,1
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/smpboot.c:495,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:499,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smpboot.c:500,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:501,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:502,1
    - Dst: apic_icr_write
      Src: /src/xen/xen/arch/x86/smpboot.c:508,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:513,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:515,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:517,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:520,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:521,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:522,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:526,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/smpboot.c:532,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/smpboot.c:534,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:538,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:541,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:543,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 2
    argNames:
    - phys_apicid
    - start_eip
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 546
    functionName: wakeup_secondary_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - apic_icr_write
    - mdelay
    - Dprintk
    - get_maxlvt
    - apic_read
    - tboot_in_measured_env
    - printk
    - tboot_wake_ap
    - udelay
    - apic_write
    linkageType: ''
    returnType: int
    signature: int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_complement
      Src: /src/xen/xen/arch/x86/smpboot.c:553,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/smpboot.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 556
    functionName: alloc_cpu_id
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 1
    functionsReached:
    - cpumask_first
    - cpumask_complement
    linkageType: ''
    returnType: int
    signature: int alloc_cpu_id(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_save_state
      Src: /src/xen/xen/arch/x86/smpboot.c:567,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/smpboot.c:569,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/smpboot.c:573,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:577,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:584,1
    - Dst: wakeup_secondary_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:587,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:592,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:593,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/smpboot.c:600,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:606,1
    - Dst: print_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:607,1
    - Dst: synchronize_tsc_master
      Src: /src/xen/xen/arch/x86/smpboot.c:608,1
    - Dst: Dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:609,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/smpboot.c:613,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/smpboot.c:619,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/smpboot.c:620,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:622,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:626,1
    - Dst: cpu_exit_clear
      Src: /src/xen/xen/arch/x86/smpboot.c:633,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/smpboot.c:639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - apicid
    - cpu
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 642
    functionName: do_boot_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - print_cpu_info
    - cpu_exit_clear
    - set_cpu_state
    - wakeup_secondary_cpu
    - panic
    - Dprintk
    - mtrr_save_state
    - smp_rmb
    - synchronize_tsc_master
    - printk
    - bootsym_phys
    - udelay
    - bootsym
    linkageType: ''
    returnType: int
    signature: int do_boot_cpu(int apicid, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: bootsym
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bootsym(trampoline_cpu_started)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 645
    functionName: STUB_BUF_CPU_OFFS
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_BUF_CPU_OFFS(cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:651,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/smpboot.c:654,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:654,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/arch/x86/smpboot.c:657,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/smpboot.c:658,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/smpboot.c:660,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:664,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/smpboot.c:664,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:664,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/smpboot.c:668,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:668,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/smpboot.c:672,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/smpboot.c:676,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - cpu
    - mfn
    argTypes:
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 679
    functionName: alloc_stub_page
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - unmap_domain_page
    - page_to_mfn
    - mfn_to_page
    - __map_domain_page
    - alloc_domheap_page
    - _mfn
    - mfn_x
    - MEMF_node
    - BUILD_BUG_ON
    - map_pages_to_xen
    - memset
    - free_domheap_page
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long alloc_stub_page(unsigned int cpu, unsigned long *mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_uninit
      Src: /src/xen/xen/arch/x86/smpboot.c:683,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: cpu_exit_clear
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 2
    functionsReached:
    - set_cpu_state
    - cpu_uninit
    linkageType: ''
    returnType: void
    signature: void cpu_exit_clear(unsigned int cpu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:700,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:701,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/smpboot.c:708,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:708,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:709,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:711,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:712,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:715,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/smpboot.c:716,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/smpboot.c:721,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:721,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:722,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:723,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:726,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/smpboot.c:727,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/smpboot.c:732,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:732,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:733,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:736,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/smpboot.c:740,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/smpboot.c:741,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:742,1
    - Dst: root_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:744,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:744,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:748,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/smpboot.c:752,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:752,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:753,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/smpboot.c:756,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:756,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:758,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:760,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:764,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/smpboot.c:768,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:768,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:772,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:772,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/smpboot.c:773,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:776,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:778,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:782,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/smpboot.c:786,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:786,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:790,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:790,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/smpboot.c:791,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:794,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:797,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:799,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:799,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:800,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:800,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/smpboot.c:803,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:803,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:807,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:808,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:809,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 2
    argNames:
    - ptr
    - rpt
    argTypes:
    - void*
    - root_pgentry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 811
    functionName: clone_mapping
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - alloc_mapped_pagetable
    - l1e_write
    - l1e_from_pfn
    - l3e_get_pfn
    - PFN_DOWN
    - l2e_from_mfn
    - l2e_write
    - l1e_get_pfn
    - l3_table_offset
    - root_get_flags
    - l3e_get_flags
    - l1_table_offset
    - l2e_get_pfn
    - l1e_get_flags
    - l4e_write
    - l3e_write
    - map_l3t_from_l4e
    - l4e_from_mfn
    - ASSERT
    - UNMAP_DOMAIN_PAGE
    - root_table_offset
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - l2_table_offset
    - l3e_from_mfn
    linkageType: ''
    returnType: int
    signature: int clone_mapping(const void *ptr, root_pgentry_t *rpt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/smpboot.c:828,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/smpboot.c:832,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:833,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:835,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:836,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/smpboot.c:841,1
    - Dst: root_get_intpte
      Src: /src/xen/xen/arch/x86/smpboot.c:841,1
    - Dst: clone_mapping
      Src: /src/xen/xen/arch/x86/smpboot.c:847,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:852,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:855,1
    - Dst: clone_mapping
      Src: /src/xen/xen/arch/x86/smpboot.c:859,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/smpboot.c:859,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/smpboot.c:859,1
    - Dst: clone_mapping
      Src: /src/xen/xen/arch/x86/smpboot.c:862,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:862,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:865,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:867,1
    - Dst: clone_mapping
      Src: /src/xen/xen/arch/x86/smpboot.c:869,1
    - Dst: clone_mapping
      Src: /src/xen/xen/arch/x86/smpboot.c:872,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:872,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 875
    functionName: setup_cpu_root_pgt
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - alloc_xenheap_page
    - __va
    - __pa
    - clone_mapping
    - clear_page
    - BUILD_BUG_ON
    - root_get_intpte
    - per_cpu
    - unlikely
    - root_table_offset
    linkageType: ''
    returnType: int
    signature: int setup_cpu_root_pgt(unsigned int cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:879,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:881,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:886,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:888,1
    - Dst: root_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:889,1
    - Dst: root_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:895,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:898,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:899,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:907,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:910,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:910,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:911,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:912,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:916,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/smpboot.c:919,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/smpboot.c:919,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:920,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:920,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:923,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:924,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:927,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/smpboot.c:928,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/smpboot.c:931,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/smpboot.c:936,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:937,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/smpboot.c:938,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:938,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/smpboot.c:939,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/smpboot.c:941,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/smpboot.c:941,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:943,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 945
    functionName: cleanup_cpu_root_pgt
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - l2e_from_l3e
    - l3e_from_l4e
    - map_domain_page
    - l3_table_offset
    - l2e_get_mfn
    - root_get_flags
    - l3e_get_flags
    - l3e_get_mfn
    - l1_table_offset
    - ASSERT
    - l1e_empty
    - free_xen_pagetable
    - root_table_offset
    - l2e_get_flags
    - unmap_domain_page
    - map_l1t_from_l2e
    - l2_table_offset
    - free_xenheap_page
    - per_cpu
    - l4e_get_mfn
    linkageType: ''
    returnType: void
    signature: void cleanup_cpu_root_pgt(unsigned int cpu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/smpboot.c:956,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/smpboot.c:965,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/smpboot.c:967,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:971,1
    - Dst: reset_cpuinfo
      Src: /src/xen/xen/arch/x86/smpboot.c:976,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/smpboot.c:978,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:978,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/smpboot.c:979,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:979,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:980,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/smpboot.c:981,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:981,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:982,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/smpboot.c:983,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:983,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:984,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/smpboot.c:985,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:985,1
    - Dst: cleanup_cpu_root_pgt
      Src: /src/xen/xen/arch/x86/smpboot.c:988,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:990,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:992,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:992,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:993,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/smpboot.c:996,1
    - Dst: STUB_BUF_CPU_OFFS
      Src: /src/xen/xen/arch/x86/smpboot.c:996,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/smpboot.c:1000,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/smpboot.c:1001,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1001,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1002,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1003,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1004,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/smpboot.c:1006,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/smpboot.c:1006,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/smpboot.c:1009,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/smpboot.c:1010,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1010,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/smpboot.c:1014,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1014,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/smpboot.c:1015,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1015,1
    - Dst: memguard_unguard_stack
      Src: /src/xen/xen/arch/x86/smpboot.c:1019,1
    - Dst: FREE_XENHEAP_PAGES
      Src: /src/xen/xen/arch/x86/smpboot.c:1020,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - cpu
    - remove
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 1023
    functionName: cpu_smpboot_free
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - IS_ENABLED
    - xfree
    - STUB_BUF_CPU_OFFS
    - cleanup_cpu_root_pgt
    - map_domain_page
    - memguard_unguard_stack
    - destroy_xen_mappings
    - FREE_CPUMASK_VAR
    - cpumask_clear_cpu
    - _mfn
    - reset_cpuinfo
    - memset
    - free_domheap_page
    - unmap_domain_page
    - FREE_XENHEAP_PAGE
    - cpumask_empty
    - cpu_to_socket
    - per_cpu
    - FREE_XENHEAP_PAGES
    linkageType: ''
    returnType: void
    signature: void cpu_smpboot_free(unsigned int cpu, bool remove)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1027,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1032,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/smpboot.c:1034,1
    - Dst: memguard_guard_stack
      Src: /src/xen/xen/arch/x86/smpboot.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1040
    functionName: cpu_alloc_stack
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - alloc_xenheap_pages
    - memguard_guard_stack
    - MEMF_node
    linkageType: ''
    returnType: void
    signature: void *cpu_alloc_stack(unsigned int cpu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1046,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1052,1
    - Dst: cpu_alloc_stack
      Src: /src/xen/xen/arch/x86/smpboot.c:1055,1
    - Dst: get_cpu_info_from_stack
      Src: /src/xen/xen/arch/x86/smpboot.c:1058,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/smpboot.c:1059,1
    - Dst: init_shadow_spec_ctrl_state
      Src: /src/xen/xen/arch/x86/smpboot.c:1063,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1066,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1068,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/smpboot.c:1068,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1071,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1072,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1073,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1073,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/smpboot.c:1074,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:1075,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1079,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/smpboot.c:1079,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1082,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1083,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1083,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/smpboot.c:1084,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1088,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1089,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/smpboot.c:1089,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1090,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/smpboot.c:1092,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1092,1
    - Dst: disable_each_ist
      Src: /src/xen/xen/arch/x86/smpboot.c:1093,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1093,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/smpboot.c:1097,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1097,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1099,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1099,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:1102,1
    - Dst: alloc_stub_page
      Src: /src/xen/xen/arch/x86/smpboot.c:1103,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1103,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1106,1
    - Dst: STUB_BUF_CPU_OFFS
      Src: /src/xen/xen/arch/x86/smpboot.c:1106,1
    - Dst: setup_cpu_root_pgt
      Src: /src/xen/xen/arch/x86/smpboot.c:1108,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/smpboot.c:1114,1
    - Dst: cond_zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1117,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1117,1
    - Dst: cond_zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1118,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1118,1
    - Dst: cond_alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1119,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1119,1
    - Dst: cond_alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1120,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1120,1
    - Dst: cond_alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1121,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1121,1
    - Dst: cpu_smpboot_free
      Src: /src/xen/xen/arch/x86/smpboot.c:1128,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1131
    functionName: cpu_smpboot_alloc
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - BUILD_BUG_ON
    - l1e_from_pfn
    - STUB_BUF_CPU_OFFS
    - xzalloc
    - init_shadow_spec_ctrl_state
    - cond_alloc_cpumask_var
    - MEMF_node
    - cpu_smpboot_free
    - BUG_ON
    - cpu_online
    - cond_zalloc_cpumask_var
    - setup_cpu_root_pgt
    - cpu_alloc_stack
    - alloc_xenheap_pages
    - disable_each_ist
    - alloc_stub_page
    - memset
    - cpu_to_node
    - per_cpu
    - get_cpu_info_from_stack
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cpu_smpboot_alloc(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_smpboot_alloc
      Src: /src/xen/xen/arch/x86/smpboot.c:1142,1
    - Dst: cpu_smpboot_free
      Src: /src/xen/xen/arch/x86/smpboot.c:1146,1
    - Dst: cpu_smpboot_free
      Src: /src/xen/xen/arch/x86/smpboot.c:1149,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/smpboot.c:1153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1133
    functionDepth: 4
    functionLinenumber: 1133
    functionLinenumberEnd: 1154
    functionName: cpu_smpboot_callback
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_smpboot_alloc
    - notifier_from_errno
    - cpu_smpboot_free
    linkageType: ''
    returnType: int
    signature: "int cpu_smpboot_callback(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/smpboot.c:1162,1
    - Dst: mtrr_aps_sync_begin
      Src: /src/xen/xen/arch/x86/smpboot.c:1164,1
    - Dst: initialize_cpu_data
      Src: /src/xen/xen/arch/x86/smpboot.c:1167,1
    - Dst: print_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:1168,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1175,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1176,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1176,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/smpboot.c:1177,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1178,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1179,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/smpboot.c:1179,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/smpboot.c:1181,1
    - Dst: set_nr_sockets
      Src: /src/xen/xen/arch/x86/smpboot.c:1186,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/smpboot.c:1188,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/smpboot.c:1190,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/smpboot.c:1190,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/smpboot.c:1191,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1193,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1193,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/smpboot.c:1194,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1194,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/smpboot.c:1195,1
    - Dst: set_cpu_sibling_map
      Src: /src/xen/xen/arch/x86/smpboot.c:1197,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1205,1
    - Dst: physids_clear
      Src: /src/xen/xen/arch/x86/smpboot.c:1207,1
    - Dst: physid_set
      Src: /src/xen/xen/arch/x86/smpboot.c:1208,1
    - Dst: APIC_init_uniprocessor
      Src: /src/xen/xen/arch/x86/smpboot.c:1209,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1210,1
    - Dst: physid_isset
      Src: /src/xen/xen/arch/x86/smpboot.c:1220,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1222,1
    - Dst: physid_set
      Src: /src/xen/xen/arch/x86/smpboot.c:1224,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/smpboot.c:1224,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1230,1
    - Dst: verify_local_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1235,1
    - Dst: connect_bsp_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1237,1
    - Dst: enable_IO_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1241,1
    - Dst: setup_local_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1243,1
    - Dst: setup_IO_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1246,1
    - Dst: setup_boot_APIC_clock
      Src: /src/xen/xen/arch/x86/smpboot.c:1248,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1160
    functionDepth: 7
    functionLinenumber: 1160
    functionLinenumberEnd: 1249
    functionName: smp_prepare_cpus
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - setup_local_APIC
    - IS_ENABLED
    - l1e_from_pfn
    - initialize_cpu_data
    - verify_local_APIC
    - xzalloc
    - set_nr_sockets
    - set_cpu_sibling_map
    - get_apic_id
    - register_cpu_notifier
    - zalloc_cpumask_var
    - printk
    - setup_boot_APIC_clock
    - print_cpu_info
    - panic
    - connect_bsp_APIC
    - setup_IO_APIC
    - this_cpu
    - APIC_init_uniprocessor
    - physid_set
    - enable_IO_APIC
    - physids_clear
    - cpu_to_socket
    - xzalloc_array
    - physid_isset
    - per_cpu
    - mtrr_aps_sync_begin
    linkageType: ''
    returnType: void
    signature: void smp_prepare_cpus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smpboot.c:1253,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1255,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1256,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1258,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1259,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1260,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:1263,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:1264,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/smpboot.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1266
    functionName: smp_prepare_boot_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - smp_processor_id
    - per_cpu
    - get_cpu_info
    linkageType: ''
    returnType: void
    signature: void smp_prepare_boot_cpu(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1273,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/smpboot.c:1273,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1277,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1277,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/smpboot.c:1279,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1279,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1283,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1283,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1284,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1284,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/smpboot.c:1285,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1285,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/smpboot.c:1286,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1287
    functionName: remove_siblinginfo
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - cpu_to_socket
    - per_cpu
    - cpumask_clear_cpu
    - cpumask_weight
    linkageType: ''
    returnType: void
    signature: void remove_siblinginfo(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1277,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1277,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/smpboot.c:1279,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1281
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 5
    functionsReached:
    - cpumask_clear_cpu
    - cpumask_weight
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( sibling, per_cpu(cpu_core_mask, cpu) )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smpboot.c:1291,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:1293,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/smpboot.c:1295,1
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/smpboot.c:1296,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/smpboot.c:1298,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/smpboot.c:1299,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/smpboot.c:1300,1
    - Dst: time_suspend
      Src: /src/xen/xen/arch/x86/smpboot.c:1302,1
    - Dst: remove_siblinginfo
      Src: /src/xen/xen/arch/x86/smpboot.c:1304,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1307,1
    - Dst: fixup_irqs
      Src: /src/xen/xen/arch/x86/smpboot.c:1308,1
    - Dst: fixup_eoi
      Src: /src/xen/xen/arch/x86/smpboot.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1289
    functionDepth: 5
    functionLinenumber: 1289
    functionLinenumberEnd: 1310
    functionName: __cpu_disable
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - clear_local_APIC
    - mdelay
    - local_irq_enable
    - set_cpu_state
    - smp_processor_id
    - local_irq_disable
    - fixup_irqs
    - cpumask_clear_cpu
    - time_suspend
    - fixup_eoi
    - remove_siblinginfo
    linkageType: ''
    returnType: void
    signature: void __cpu_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/smpboot.c:1320,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/smpboot.c:1321,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:1322,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/smpboot.c:1323,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1327
    functionName: __cpu_die
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - mdelay
    - BUG_ON
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: void
    signature: void __cpu_die(unsigned int cpu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:1333,1
    - Dst: cpu_hotplug_begin
      Src: /src/xen/xen/arch/x86/smpboot.c:1341,1
    - Dst: physid_isset
      Src: /src/xen/xen/arch/x86/smpboot.c:1351,1
    - Dst: mp_register_lapic
      Src: /src/xen/xen/arch/x86/smpboot.c:1357,1
    - Dst: numa_disabled
      Src: /src/xen/xen/arch/x86/smpboot.c:1362,1
    - Dst: setup_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1364,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:1368,1
    - Dst: mp_unregister_lapic
      Src: /src/xen/xen/arch/x86/smpboot.c:1371,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/smpboot.c:1380,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/smpboot.c:1382,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1387,1
    - Dst: srat_detect_node
      Src: /src/xen/xen/arch/x86/smpboot.c:1390,1
    - Dst: numa_add_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1391,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/smpboot.c:1392,1
    - Dst: cpu_hotplug_done
      Src: /src/xen/xen/arch/x86/smpboot.c:1394,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - apic_id
    - acpi_id
    - pxm
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1329
    functionDepth: 3
    functionLinenumber: 1329
    functionLinenumberEnd: 1396
    functionName: cpu_add
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 1
    functionsReached:
    - mp_register_lapic
    - mp_unregister_lapic
    - boot_cpu_has
    - cpu_hotplug_begin
    - srat_detect_node
    - printk_once
    - physid_isset
    - cpu_hotplug_done
    - cpumask_set_cpu
    - setup_node
    - numa_add_cpu
    - numa_disabled
    - dprintk
    linkageType: ''
    returnType: int
    signature: int cpu_add(uint32_t apic_id, uint32_t acpi_id, uint32_t pxm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/smpboot.c:1410,1
    - Dst: do_boot_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1415,1
    - Dst: time_latch_stamps
      Src: /src/xen/xen/arch/x86/smpboot.c:1418,1
    - Dst: set_cpu_state
      Src: /src/xen/xen/arch/x86/smpboot.c:1420,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/smpboot.c:1421,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/smpboot.c:1422,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/smpboot.c:1424,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/smpboot.c:1425,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/smpboot.c:1426,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/smpboot.c:1426,1
    - Dst: show_execution_state_nmi
      Src: /src/xen/xen/arch/x86/smpboot.c:1429,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smpboot.c:1429,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/smpboot.c:1430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1399
    functionDepth: 3
    functionLinenumber: 1399
    functionLinenumberEnd: 1436
    functionName: __cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - cpu_relax
    - set_cpu_state
    - SECONDS
    - time_latch_stamps
    - panic
    - show_execution_state_nmi
    - process_pending_softirqs
    - printk
    - cpumask_of
    - do_boot_cpu
    - NOW
    linkageType: ''
    returnType: int
    signature: int __cpu_up(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_apic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/smpboot.c:1443,1
    - Dst: check_nmi_watchdog
      Src: /src/xen/xen/arch/x86/smpboot.c:1444,1
    - Dst: setup_ioapic_dest
      Src: /src/xen/xen/arch/x86/smpboot.c:1447,1
    - Dst: mtrr_save_state
      Src: /src/xen/xen/arch/x86/smpboot.c:1449,1
    - Dst: mtrr_aps_sync_end
      Src: /src/xen/xen/arch/x86/smpboot.c:1450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1439
    functionDepth: 7
    functionLinenumber: 1439
    functionLinenumberEnd: 1451
    functionName: smp_cpus_done
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - mtrr_save_state
    - setup_apic_nmi_watchdog
    - check_nmi_watchdog
    - mtrr_aps_sync_end
    - setup_ioapic_dest
    linkageType: ''
    returnType: void
    signature: void smp_cpus_done(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/smpboot.c:1455,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/smpboot.c:1461,1
    - Dst: serial_irq
      Src: /src/xen/xen/arch/x86/smpboot.c:1471,1
    - Dst: alloc_hipriority_vector
      Src: /src/xen/xen/arch/x86/smpboot.c:1473,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/smpboot.c:1474,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/smpboot.c:1476,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/smpboot.c:1478,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/smpboot.c:1478,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/smpboot.c:1479,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/smpboot.c:1483,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/smpboot.c:1484,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/smpboot.c:1485,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/smpboot.c:1486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1487
    functionName: smp_intr_init
    functionSourceFile: /src/xen/xen/arch/x86/smpboot.c
    functionUses: 0
    functionsReached:
    - set_direct_apic_vector
    - irq_to_desc
    - cpumask_copy
    - smp_processor_id
    - alloc_hipriority_vector
    - cpumask_setall
    - per_cpu
    - serial_irq
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void smp_intr_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/delay.c:23,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/delay.c:26,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/delay.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - usecs
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: udelay
    functionSourceFile: /src/xen/xen/arch/x86/delay.c
    functionUses: 3
    functionsReached:
    - cpu_relax
    - rdtsc_ordered
    linkageType: ''
    returnType: void
    signature: void udelay(unsigned long usecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/bitops.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 25
    functionName: __find_first_bit
    functionSourceFile: /src/xen/xen/arch/x86/bitops.c
    functionUses: 0
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __find_first_bit(\n    const unsigned long *addr, unsigned
      int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/bitops.c:33,1
    - Dst: __scanbit
      Src: /src/xen/xen/arch/x86/bitops.c:38,1
    - Dst: __find_first_bit
      Src: /src/xen/xen/arch/x86/bitops.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - unsigned long*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 51
    functionName: __find_next_bit
    functionSourceFile: /src/xen/xen/arch/x86/bitops.c
    functionUses: 0
    functionsReached:
    - __scanbit
    - ASSERT
    - __find_first_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __find_next_bit(\n    const unsigned long *addr, unsigned
      int size, unsigned int offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/bitops.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 75
    functionName: __find_first_zero_bit
    functionSourceFile: /src/xen/xen/arch/x86/bitops.c
    functionUses: 0
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __find_first_zero_bit(\n    const unsigned long *addr,
      unsigned int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/bitops.c:83,1
    - Dst: __scanbit
      Src: /src/xen/xen/arch/x86/bitops.c:88,1
    - Dst: __find_first_zero_bit
      Src: /src/xen/xen/arch/x86/bitops.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - unsigned long*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: __find_next_zero_bit
    functionSourceFile: /src/xen/xen/arch/x86/bitops.c
    functionUses: 0
    functionsReached:
    - __scanbit
    - ASSERT
    - __find_first_zero_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __find_next_zero_bit(\n    const unsigned long *addr,
      unsigned int size, unsigned int offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sel
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: SEL2GDT
    functionSourceFile: /src/xen/xen/arch/x86/desc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEL2GDT(sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: l3_disallow_mask
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3_disallow_mask(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: l1_disallow_mask
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1_disallow_mask(d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/mm.c:187,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/mm.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 195
    functionName: parse_mmio_relax
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_mmio_relax(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:205,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/x86/mm.c:218,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:219,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm.c:222,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: init_frametable_chunk
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - memset
    - alloc_boot_pages
    - ASSERT
    - map_pages_to_xen
    linkageType: ''
    returnType: void
    signature: void init_frametable_chunk(void *start, void *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/mm.c:229,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:232,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:233,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/mm.c:237,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/mm.c:238,1
    - Dst: init_frametable_chunk
      Src: /src/xen/xen/arch/x86/mm.c:241,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm.c:241,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm.c:242,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm.c:245,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm.c:246,1
    - Dst: init_frametable_chunk
      Src: /src/xen/xen/arch/x86/mm.c:248,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm.c:248,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 250
    functionName: init_frametable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - find_next_zero_bit
    - find_next_bit
    - DIV_ROUND_UP
    - BUILD_BUG_ON
    - init_frametable_chunk
    - memset
    - pdx_to_page
    linkageType: ''
    returnType: void
    signature: void init_frametable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:267,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:267,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:267,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: assign_io_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - set_gpfn_from_mfn
    - mfn_x
    - page_to_mfn
    - page_set_owner
    linkageType: ''
    returnType: void
    signature: void assign_io_page(struct page_info *page)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:293,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:294,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/mm.c:294,1
    - Dst: assign_io_page
      Src: /src/xen/xen/arch/x86/mm.c:295,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:295,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:295,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/mm.c:318,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/mm.c:319,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/mm.c:320,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:321,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm.c:327,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:327,1
    - Dst: assign_io_page
      Src: /src/xen/xen/arch/x86/mm.c:330,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:330,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:330,1
    - Dst: subarch_init_memory
      Src: /src/xen/xen/arch/x86/mm.c:337,1
    - Dst: efi_init_memory
      Src: /src/xen/xen/arch/x86/mm.c:339,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/mm.c:344,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/mm.c:347,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:349,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:351,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:352,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:352,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:354,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:356,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:358,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:359,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:360,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:363,1
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm.c:366,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:367,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:368,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:369,1
    - Dst: ASM_CONSTANT
      Src: /src/xen/xen/arch/x86/mm.c:379,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 380
    functionName: arch_init_memory
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - PFN_UP
    - PFN_DOWN
    - MB
    - subarch_init_memory
    - __va
    - map_domain_page
    - l3_table_offset
    - mfn_valid
    - BUG_ON
    - mfn_eq
    - assign_io_page
    - l4_table_offset
    - l3e_empty
    - map_l3t_from_l4e
    - _mfn
    - l4e_from_mfn
    - ASSERT
    - min_t
    - efi_init_memory
    - max_t
    - UNMAP_DOMAIN_PAGE
    - ASM_CONSTANT
    - alloc_xen_pagetable
    linkageType: ''
    returnType: void
    signature: void arch_init_memory(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/mm.c:384,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 2
    argNames:
    - mfn
    - mem_type
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 420
    functionName: page_is_ram_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - pfn_to_paddr
    linkageType: ''
    returnType: bool
    signature: bool page_is_ram_type(unsigned long mfn, unsigned int mem_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/mm.c:424,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: page_is_offlinable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - page_is_ram_type
    - mfn_x
    linkageType: ''
    returnType: bool
    signature: bool page_is_offlinable(mfn_t mfn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm.c:429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 468
    functionName: page_get_ram_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int page_get_ram_type(mfn_t mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm.c:473,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm.c:474,1
    - Dst: arch_get_max_pfn
      Src: /src/xen/xen/arch/x86/mm.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 479
    functionName: domain_get_maximum_gpfn
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - arch_get_max_pfn
    - is_hvm_domain
    - p2m_get_hostp2m
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long domain_get_maximum_gpfn(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:484,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:486,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:489,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:489,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:489,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm.c:491,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm.c:498,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm.c:499,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:500,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:506,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/arch/x86/mm.c:507,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm.c:508,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - page
    - d
    - flags
    argTypes:
    - struct page_info*
    - struct domain*
    - enum XENSHARE_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 512
    functionName: share_xen_page_with_guest
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - get_knownalive_domain
    - page_list_add_tail
    - page_to_mfn
    - set_gpfn_from_mfn
    - mfn_x
    - nrspin_unlock
    - page_get_owner
    - smp_wmb
    - ASSERT
    - page_set_owner
    - nrspin_lock
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void share_xen_page_with_guest(struct page_info *page, struct domain
      *d,\n                               enum XENSHARE_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:518,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:519,1
    - Dst: get_pcid_bits
      Src: /src/xen/xen/arch/x86/mm.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - v
    - mfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: make_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - is_pv_domain
    - get_pcid_bits
    linkageType: ''
    returnType: void
    signature: void make_cr3(struct vcpu *v, mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/mm.c:526,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:529,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/mm.c:529,1
    - Dst: pv_make_cr4
      Src: /src/xen/xen/arch/x86/mm.c:530,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:532,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/mm.c:535,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:535,1
    - Dst: get_pcid_bits
      Src: /src/xen/xen/arch/x86/mm.c:537,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/mm.c:538,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/mm.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: write_ptbase
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - pv_make_cr4
    - get_cpu_info
    - __pa
    - switch_cr3_cr4
    - get_pcid_bits
    - is_pv_domain
    - this_cpu
    - is_idle_domain
    linkageType: ''
    returnType: void
    signature: void write_ptbase(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:563,1
    - Dst: paging_update_cr3
      Src: /src/xen/xen/arch/x86/mm.c:564,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:567,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:569,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm.c:571,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 574
    functionName: update_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached:
    - make_cr3
    - pagetable_get_mfn
    - paging_update_cr3
    - pagetable_null
    - paging_mode_enabled
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t update_cr3(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_set_tlbflush_timestamp
      Src: /src/xen/xen/arch/x86/mm.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 587
    functionName: set_tlbflush_timestamp
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - page_set_tlbflush_timestamp
    linkageType: ''
    returnType: void
    signature: void set_tlbflush_timestamp(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm.c:600,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm.c:600,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:611,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 619
    functionName: inc_linear_entries
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - cmpxchg
    - read_atomic
    - typeof
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool inc_linear_entries(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm.c:623,1
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/mm.c:625,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: dec_linear_entries
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - arch_fetch_and_add
    - typeof
    linkageType: ''
    returnType: void
    signature: void dec_linear_entries(struct page_info *pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm.c:631,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm.c:631,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:635,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 643
    functionName: inc_linear_uses
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - cmpxchg
    - read_atomic
    - typeof
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool inc_linear_uses(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm.c:647,1
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/mm.c:649,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 651
    functionName: dec_linear_uses
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - arch_fetch_and_add
    - typeof
    linkageType: ''
    returnType: void
    signature: void dec_linear_uses(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 694
    functionName: define_get_linear_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_get_linear_pagetable(level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: define_get_linear_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: define_get_linear_pagetable(level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: dec_linear_uses
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void dec_linear_uses(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: dec_linear_entries
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void dec_linear_entries(struct page_info *pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm.c:766,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:770,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:771,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 774
    functionName: is_iomem_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - page_get_owner
    - ASSERT
    - mfn_valid
    - mfn_to_page
    linkageType: ''
    returnType: bool
    signature: bool is_iomem_page(mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:779,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:780,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:791,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 797
    functionName: is_memory_hole
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - mfn_x
    - PFN_DOWN
    linkageType: ''
    returnType: bool
    signature: bool is_memory_hole(mfn_t start, mfn_t end)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm.c:820,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:828,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - s
    - e
    - arg
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 837
    functionName: print_mmio_emul_range
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - printk
    linkageType: ''
    returnType: int
    signature: "int print_mmio_emul_range(\n    unsigned long s, unsigned long e,
      void *arg)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:850,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:851,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:851,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:852,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:857,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:859,1
    - Dst: l1_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:863,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:864,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:866,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm.c:870,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:870,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/mm.c:873,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:879,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/x86/mm.c:885,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:889,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/x86/mm.c:898,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:902,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm.c:911,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/mm.c:919,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:925,1
    - Dst: pci_mmcfg_decode
      Src: /src/xen/xen/arch/x86/mm.c:935,1
    - Dst: pci_get_ro_map
      Src: /src/xen/xen/arch/x86/mm.c:936,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm.c:937,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm.c:938,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/x86/mm.c:942,1
    - Dst: pte_flags_to_cacheattr
      Src: /src/xen/xen/arch/x86/mm.c:951,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:968,1
    - Dst: xsm_priv_mapping
      Src: /src/xen/xen/arch/x86/mm.c:978,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:980,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm.c:1003,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:1004,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1006,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm.c:1010,1
    - Dst: put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:1013,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1014,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1015,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/mm.c:1025,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/mm.c:1027,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1032,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1034,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:1035,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1037,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 94
    argCount: 3
    argNames:
    - l1e
    - l1e_owner
    - pg_owner
    argTypes:
    - l1_pgentry_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 1039
    functionName: get_page_from_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - mfn_to_page
    - pte_flags_to_cacheattr
    - l1_disallow_mask
    - pci_get_ro_map
    - get_gpfn_from_mfn
    - get_page_type
    - l1e_get_pfn
    - mfn_valid
    - iomem_access_permitted
    - printk
    - rangeset_report_ranges
    - test_bit
    - is_hardware_domain
    - l1e_get_flags
    - gdprintk
    - _mfn
    - is_special_page
    - put_page_type
    - pci_mmcfg_decode
    - ASSERT_UNREACHABLE
    - xsm_priv_mapping
    - set_bit
    - page_get_owner_and_reference
    - paging_mode_external
    - boot_cpu_has
    - rangeset_contains_singleton
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: "int get_page_from_l1e(\n    l1_pgentry_t l1e, struct domain *l1e_owner,
      struct domain *pg_owner)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:1059,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:1065,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1066,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1066,1
    - Dst: _get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:1069,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:1105,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1109,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - mfn
    - type
    - d
    - flags
    argTypes:
    - mfn_t
    - unsigned long
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1114
    functionName: get_page_and_type_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - _get_page_type
    - mfn_to_page
    - likely
    - ASSERT
    - unlikely
    - put_page
    - get_page_from_mfn
    linkageType: ''
    returnType: int
    signature: "int get_page_and_type_from_mfn(\n    mfn_t mfn, unsigned long type,
      struct domain *d,\n    unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:1121,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1124,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1124,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1126,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1127,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1131,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1133,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:1133,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1134,1
    - Dst: get_l2_linear_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:1134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - l2e
    - l2mfn
    - d
    - flags
    argTypes:
    - l2_pgentry_t
    - mfn_t
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1138
    functionName: get_page_from_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - gdprintk
    - get_l2_linear_pagetable
    - get_page_and_type_from_mfn
    - _mfn
    - ASSERT
    - unlikely
    - l2e_get_pfn
    linkageType: ''
    returnType: int
    signature: "int get_page_from_l2e(\n    l2_pgentry_t l2e, mfn_t l2mfn, struct
      domain *d, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1147,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1147,1
    - Dst: l3_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:1147,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1149,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1150,1
    - Dst: l3_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:1150,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1154,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1155,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1156,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:1157,1
    - Dst: get_l3_linear_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:1158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - l3e
    - l3mfn
    - d
    - flags
    argTypes:
    - l3_pgentry_t
    - mfn_t
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1162
    functionName: get_page_from_l3e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - is_pv_32bit_domain
    - l3_disallow_mask
    - get_page_and_type_from_mfn
    - get_l3_linear_pagetable
    - l3e_get_flags
    - l3e_get_mfn
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int get_page_from_l3e(\n    l3_pgentry_t l3e, mfn_t l3mfn, struct
      domain *d, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1171,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1171,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1173,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1174,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1178,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1179,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1180,1
    - Dst: get_l4_linear_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:1180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - l4e
    - l4mfn
    - d
    - flags
    argTypes:
    - l4_pgentry_t
    - mfn_t
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1165
    functionDepth: 2
    functionLinenumber: 1165
    functionLinenumberEnd: 1184
    functionName: get_page_from_l4e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - l4e_get_flags
    - get_page_and_type_from_mfn
    - get_l4_linear_pagetable
    - unlikely
    - l4e_get_mfn
    linkageType: ''
    returnType: int
    signature: "int get_page_from_l4e(\n    l4_pgentry_t l4e, mfn_t l4mfn, struct
      domain *d, unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:1192,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1196,1
    - Dst: is_iomem_page
      Src: /src/xen/xen/arch/x86/mm.c:1196,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:1196,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:1199,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:1199,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1200,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1221,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm.c:1224,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:1226,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/mm.c:1227,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1235,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm.c:1236,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm.c:1237,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - l1e
    - l1e_owner
    argTypes:
    - l1_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1240
    functionName: put_page_from_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - l1e_get_intpte
    - put_page_and_type
    - mfn_to_page
    - paging_mode_external
    - l1e_get_pfn
    - _mfn
    - is_iomem_page
    - page_get_owner
    - gprintk
    - pv_inject_hw_exception
    - put_page
    linkageType: ''
    returnType: void
    signature: void put_page_from_l1e(l1_pgentry_t l1e, struct domain *l1e_owner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1250,1
    - Dst: _put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:1257,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:1258,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pg
    - ptpg
    - flags
    argTypes:
    - struct page_info*
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1263
    functionName: put_pt_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_page
    - ASSERT
    - likely
    - _put_page_type
    linkageType: ''
    returnType: int
    signature: "int put_pt_page(struct page_info *pg, struct page_info *ptpg,\n                       unsigned
      int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1269,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:1269,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1269,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm.c:1272,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:1274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - page
    - writeable
    - pt_shift
    argTypes:
    - struct page_info*
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1277
    functionName: put_data_pages
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - page_to_mfn
    - mfn_x
    - ASSERT
    - put_page
    linkageType: ''
    returnType: int
    signature: int put_data_pages(struct page_info *page, bool writeable, int pt_shift)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1285,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:1285,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1285,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1288,1
    - Dst: put_data_pages
      Src: /src/xen/xen/arch/x86/mm.c:1289,1
    - Dst: l2e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1289,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1290,1
    - Dst: put_pt_page
      Src: /src/xen/xen/arch/x86/mm.c:1293,1
    - Dst: l2e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1293,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:1293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - l2e
    - l2mfn
    - flags
    argTypes:
    - l2_pgentry_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1294
    functionName: put_page_from_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_pt_page
    - l2e_get_flags
    - put_data_pages
    - mfn_to_page
    - l2e_get_mfn
    - mfn_eq
    - l2e_get_page
    linkageType: ''
    returnType: int
    signature: int put_page_from_l2e(l2_pgentry_t l2e, mfn_t l2mfn, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1298,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:1298,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1298,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1301,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1301,1
    - Dst: put_data_pages
      Src: /src/xen/xen/arch/x86/mm.c:1302,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1302,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1303,1
    - Dst: put_pt_page
      Src: /src/xen/xen/arch/x86/mm.c:1306,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1306,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:1306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - l3e
    - l3mfn
    - flags
    argTypes:
    - l3_pgentry_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: put_page_from_l3e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_pt_page
    - mfn_eq
    - put_data_pages
    - mfn_to_page
    - l3e_get_page
    - l3e_get_mfn
    - l3e_get_flags
    - unlikely
    linkageType: ''
    returnType: int
    signature: int put_page_from_l3e(l3_pgentry_t l3e, mfn_t l3mfn, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1311,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:1311,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1311,1
    - Dst: put_pt_page
      Src: /src/xen/xen/arch/x86/mm.c:1314,1
    - Dst: l4e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1314,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:1314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - l4e
    - l4mfn
    - flags
    argTypes:
    - l4_pgentry_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1315
    functionName: put_page_from_l4e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_pt_page
    - mfn_eq
    - mfn_to_page
    - l4e_get_flags
    - l4e_get_page
    - l4e_get_mfn
    linkageType: ''
    returnType: int
    signature: int put_page_from_l4e(l4_pgentry_t l4e, mfn_t l4mfn, unsigned int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1319,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1324,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1328,1
    - Dst: pv_l1tf_check_l1e
      Src: /src/xen/xen/arch/x86/mm.c:1330,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm.c:1336,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1345,1
    - Dst: l1e_flip_flags
      Src: /src/xen/xen/arch/x86/mm.c:1346,1
    - Dst: adjust_guest_l1e
      Src: /src/xen/xen/arch/x86/mm.c:1351,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1354,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1358,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm.c:1362,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1366
    functionName: promote_l1_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - unmap_domain_page
    - gdprintk
    - pv_l1tf_check_l1e
    - get_page_from_l1e
    - l1e_flip_flags
    - page_get_owner
    - adjust_guest_l1e
    - ASSERT
    - __map_domain_page
    - put_page_from_l1e
    linkageType: ''
    returnType: int
    signature: int promote_l1_table(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1383,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:1394,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:1395,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:1398,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - d
    - pl3e
    argTypes:
    - struct domain*
    - l3_pgentry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1404
    functionName: pae_xen_mappings_check
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - l3e_get_page
    - gdprintk
    linkageType: ''
    returnType: bool
    signature: "bool pae_xen_mappings_check(const struct domain *d,\n                                   const
      l3_pgentry_t *pl3e)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1408,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1409,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1415,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:1430,1
    - Dst: is_guest_l2_slot
      Src: /src/xen/xen/arch/x86/mm.c:1432,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1434,1
    - Dst: pv_l1tf_check_l2e
      Src: /src/xen/xen/arch/x86/mm.c:1436,1
    - Dst: get_page_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:1441,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1456,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1466,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1468,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1484,1
    - Dst: adjust_guest_l2e
      Src: /src/xen/xen/arch/x86/mm.c:1495,1
    - Dst: init_xen_pae_l2_slots
      Src: /src/xen/xen/arch/x86/mm.c:1499,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1501,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1406
    functionDepth: 3
    functionLinenumber: 1406
    functionLinenumberEnd: 1503
    functionName: promote_l2_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - gdprintk
    - page_to_mfn
    - map_domain_page
    - get_page_from_l2e
    - adjust_guest_l2e
    - unmap_domain_page
    - page_get_owner
    - is_guest_l2_slot
    - ASSERT
    - init_xen_pae_l2_slots
    - hypercall_preempt_check
    - pv_l1tf_check_l2e
    linkageType: ''
    returnType: int
    signature: int promote_l2_table(struct page_info *page, unsigned long type)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1507,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1508,1
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm.c:1513,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:1521,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1522,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm.c:1522,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:1523,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:1523,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/mm.c:1523,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1526,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:1528,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1532,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:1541,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm.c:1542,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:1549,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:1551,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1553,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1554,1
    - Dst: l3_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:1554,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1557,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1558,1
    - Dst: pae_xen_mappings_check
      Src: /src/xen/xen/arch/x86/mm.c:1564,1
    - Dst: adjust_guest_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1566,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1572,1
    - Dst: pv_l1tf_check_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1574,1
    - Dst: get_page_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1579,1
    - Dst: adjust_guest_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1597,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1602,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1621,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1623,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:1627,1
    - Dst: unadjust_guest_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1634,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1637,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1505
    functionDepth: 3
    functionLinenumber: 1505
    functionLinenumberEnd: 1639
    functionName: promote_l3_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - pae_xen_mappings_check
    - unadjust_guest_l3e
    - adjust_guest_l3e
    - PFN_DOWN
    - page_to_mfn
    - is_pv_32bit_domain
    - map_domain_page
    - l3_disallow_mask
    - get_page_and_type_from_mfn
    - get_page_from_l3e
    - GB
    - l3e_get_flags
    - l3e_get_mfn
    - VM_ASSIST
    - gdprintk
    - l3e_empty
    - mfn_x
    - ASSERT
    - hypercall_preempt_check
    - memset
    - ASSERT_UNREACHABLE
    - unmap_domain_page
    - pv_l1tf_check_l3e
    - l3e_get_page
    - page_get_owner
    - unlikely
    linkageType: ''
    returnType: int
    signature: int promote_l3_table(struct page_info *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm.c:1660,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1663,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1664,1
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/mm.c:1665,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1668,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1669,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1672,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:1672,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1673,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1674,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1677,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:1678,1
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/mm.c:1678,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1679,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1682,1
    - Dst: l4e_from_page
      Src: /src/xen/xen/arch/x86/mm.c:1683,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:1686,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm.c:1686,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1687,1
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:1688,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1689,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1690,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:1695,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm.c:1703,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1703,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1704,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1706,1
    - Dst: l4e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:1710,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm.c:1713,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/mm.c:1714,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/mm.c:1714,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm.c:1723,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1723,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1724,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - l4t
    - l4mfn
    - d
    - sl4mfn
    - ro_mpt
    argTypes:
    - l4_pgentry_t*
    - mfn_t
    - struct domain*
    - mfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1728
    functionName: init_xen_l4_slots
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - l4e_empty
    - is_pv_64bit_domain
    - l4_table_offset
    - paging_mode_external
    - l4e_from_page
    - l4e_from_mfn
    - BUILD_BUG_ON
    - IS_ENABLED
    - ASSERT
    - _p
    - mfn_eq
    - memset
    - l4e_get_intpte
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void init_xen_l4_slots(l4_pgentry_t *l4t, mfn_t l4mfn,\n                       const
      struct domain *d, mfn_t sl4mfn, bool ro_mpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1732,1
    - Dst: l4e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:1735,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1735,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1737,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1738,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1730
    functionDepth: 1
    functionLinenumber: 1730
    functionLinenumberEnd: 1744
    functionName: fill_ro_mpt
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - l4_table_offset
    - l4e_get_intpte
    - map_domain_page
    - unmap_domain_page
    linkageType: ''
    returnType: bool
    signature: bool fill_ro_mpt(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1748,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:1750,1
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/mm.c:1750,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1746
    functionDepth: 1
    functionLinenumber: 1746
    functionLinenumberEnd: 1752
    functionName: zap_ro_mpt
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - l4_table_offset
    - l4e_empty
    - map_domain_page
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void zap_ro_mpt(mfn_t mfn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1757,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1758,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1759,1
    - Dst: is_guest_l4_slot
      Src: /src/xen/xen/arch/x86/mm.c:1769,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:1774,1
    - Dst: pv_l1tf_check_l4e
      Src: /src/xen/xen/arch/x86/mm.c:1776,1
    - Dst: get_page_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:1781,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:1793,1
    - Dst: l4e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:1816,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:1818,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:1822,1
    - Dst: adjust_guest_l4e
      Src: /src/xen/xen/arch/x86/mm.c:1833,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/mm.c:1838,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm.c:1839,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm.c:1840,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1842,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1755
    functionDepth: 3
    functionLinenumber: 1755
    functionLinenumberEnd: 1845
    functionName: promote_l4_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - get_page_from_l4e
    - gdprintk
    - page_to_mfn
    - map_domain_page
    - init_xen_l4_slots
    - VM_ASSIST
    - unmap_domain_page
    - l4e_get_flags
    - adjust_guest_l4e
    - page_get_owner
    - ASSERT
    - atomic_inc
    - l4e_get_page
    - is_guest_l4_slot
    - pv_l1tf_check_l4e
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int promote_l4_table(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1849,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1853,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm.c:1856,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1847
    functionDepth: 2
    functionLinenumber: 1847
    functionLinenumberEnd: 1859
    functionName: demote_l1_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - page_get_owner
    - unmap_domain_page
    - put_page_from_l1e
    - __map_domain_page
    linkageType: ''
    returnType: void
    signature: void demote_l1_table(struct page_info *page)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1864,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1865,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1871,1
    - Dst: is_guest_l2_slot
      Src: /src/xen/xen/arch/x86/mm.c:1875,1
    - Dst: put_page_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:1876,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:1885,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1892,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1862
    functionDepth: 3
    functionLinenumber: 1862
    functionLinenumberEnd: 1912
    functionName: demote_l2_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - page_to_mfn
    - map_domain_page
    - page_get_owner
    - is_guest_l2_slot
    - hypercall_preempt_check
    - put_page_from_l2e
    linkageType: ''
    returnType: int
    signature: int demote_l2_table(struct page_info *page)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1916,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1917,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1923,1
    - Dst: put_page_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1927,1
    - Dst: unadjust_guest_l3e
      Src: /src/xen/xen/arch/x86/mm.c:1933,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:1938,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1945,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1959
    functionName: demote_l3_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - page_to_mfn
    - map_domain_page
    - unadjust_guest_l3e
    - page_get_owner
    - put_page_from_l3e
    - hypercall_preempt_check
    linkageType: ''
    returnType: int
    signature: int demote_l3_table(struct page_info *page)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:1963,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:1964,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1965,1
    - Dst: is_guest_l4_slot
      Src: /src/xen/xen/arch/x86/mm.c:1971,1
    - Dst: put_page_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:1972,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:1990,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm.c:1994,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 1999
    functionName: demote_l4_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - page_to_mfn
    - map_domain_page
    - put_page_from_l4e
    - page_get_owner
    - is_guest_l4_slot
    - atomic_dec
    linkageType: ''
    returnType: int
    signature: int demote_l4_table(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2026
    functionName: current_locked_page_set
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void current_locked_page_set(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2030
    functionName: current_locked_page_check
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool current_locked_page_check(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2036
    functionDepth: 0
    functionLinenumber: 2036
    functionLinenumberEnd: 2038
    functionName: current_locked_page_ne_check
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool current_locked_page_ne_check(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2042
    functionName: current_locked_page_check
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: current_locked_page_check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2043
    functionName: current_locked_page_ne_check
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: current_locked_page_ne_check(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2049,1
    - Dst: current_locked_page_check
      Src: /src/xen/xen/arch/x86/mm.c:2049,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm.c:2053,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2059,1
    - Dst: current_locked_page_set
      Src: /src/xen/xen/arch/x86/mm.c:2061,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2064
    functionName: page_lock_unsafe
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - current_locked_page_set
    - current_locked_page_check
    - ASSERT
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int page_lock_unsafe(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2070,1
    - Dst: current_locked_page_check
      Src: /src/xen/xen/arch/x86/mm.c:2070,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2074,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2078,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2079,1
    - Dst: current_locked_page_set
      Src: /src/xen/xen/arch/x86/mm.c:2081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2082
    functionName: page_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - current_locked_page_check
    - ASSERT
    - cmpxchg
    - current_locked_page_set
    linkageType: ''
    returnType: void
    signature: void page_unlock(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm.c:2112,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2114,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/arch/x86/mm.c:2116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2106
    functionDepth: 1
    functionLinenumber: 2106
    functionLinenumberEnd: 2117
    functionName: l3t_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - cmpxchg
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline l3t_lock(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2125,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2128
    functionName: l3t_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void l3t_unlock(struct page_info *page)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: l1e_read
      Src: /src/xen/xen/arch/x86/mm.c:2157,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2161,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:2161,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2163,1
    - Dst: l1_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:2166,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2168,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2168,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2170,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2171,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm.c:2177,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm.c:2180,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:2180,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2181,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:2184,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2184,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/mm.c:2186,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2189,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/mm.c:2190,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm.c:2198,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2201,1
    - Dst: l1e_from_page
      Src: /src/xen/xen/arch/x86/mm.c:2208,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2208,1
    - Dst: adjust_guest_l1e
      Src: /src/xen/xen/arch/x86/mm.c:2211,1
    - Dst: l1e_has_changed
      Src: /src/xen/xen/arch/x86/mm.c:2214,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2216,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2219,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm.c:2223,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2227,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2232,1
    - Dst: l1e_flip_flags
      Src: /src/xen/xen/arch/x86/mm.c:2233,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2238,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2240,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2240,1
    - Dst: pv_l1tf_check_l1e
      Src: /src/xen/xen/arch/x86/mm.c:2247,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2249,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2249,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm.c:2255,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 6
    argNames:
    - pl1e
    - nl1e
    - gl1mfn
    - cmd
    - pt_vcpu
    - pg_dom
    argTypes:
    - l1_pgentry_t*
    - l1_pgentry_t
    - mfn_t
    - unsigned int
    - struct vcpu*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2152
    functionDepth: 2
    functionLinenumber: 2152
    functionLinenumberEnd: 2257
    functionName: mod_l1_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_has_changed
    - _gfn
    - l1e_read
    - l1_disallow_mask
    - pv_l1tf_check_l1e
    - l1e_get_pfn
    - get_page_from_l1e
    - l1e_flip_flags
    - p2m_mem_paging_populate
    - get_page_from_gfn
    - l1e_get_flags
    - gdprintk
    - ASSERT
    - p2m_is_shared
    - l1e_from_page
    - paging_mode_refcounts
    - put_page_from_l1e
    - UPDATE_ENTRY
    - gfn_x
    - paging_mode_translate
    - adjust_guest_l1e
    - unlikely
    - put_page
    - p2m_is_paged
    linkageType: ''
    returnType: int
    signature: "int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e,\n                        mfn_t
      gl1mfn, unsigned int cmd,\n                        struct vcpu *pt_vcpu, struct
      domain *pg_dom)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:2269,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2273,1
    - Dst: is_guest_l2_slot
      Src: /src/xen/xen/arch/x86/mm.c:2273,1
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm.c:2273,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2275,1
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm.c:2276,1
    - Dst: l2e_read
      Src: /src/xen/xen/arch/x86/mm.c:2280,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2282,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2284,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2284,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2286,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2287,1
    - Dst: adjust_guest_l2e
      Src: /src/xen/xen/arch/x86/mm.c:2291,1
    - Dst: l2e_has_changed
      Src: /src/xen/xen/arch/x86/mm.c:2294,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2296,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2301,1
    - Dst: get_page_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:2301,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2304,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2304,1
    - Dst: pv_l1tf_check_l2e
      Src: /src/xen/xen/arch/x86/mm.c:2311,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2313,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2313,1
    - Dst: put_page_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:2319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - pl2e
    - nl2e
    - mfn
    - preserve_ad
    - vcpu
    argTypes:
    - l2_pgentry_t*
    - l2_pgentry_t
    - mfn_t
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2261
    functionDepth: 3
    functionLinenumber: 2261
    functionLinenumberEnd: 2322
    functionName: mod_l2_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l2e_has_changed
    - l2e_get_flags
    - gdprintk
    - adjust_guest_l2e
    - pv_l1tf_check_l2e
    - get_page_from_l2e
    - mfn_to_page
    - UPDATE_ENTRY
    - is_guest_l2_slot
    - unlikely
    - put_page_from_l2e
    - pgentry_ptr_to_slot
    - l2e_read
    linkageType: ''
    returnType: int
    signature: "int mod_l2_entry(l2_pgentry_t *pl2e,\n                        l2_pgentry_t
      nl2e,\n                        mfn_t mfn,\n                        int preserve_ad,\n
      \                       struct vcpu *vcpu)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm.c:2339,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:2339,1
    - Dst: l3e_read
      Src: /src/xen/xen/arch/x86/mm.c:2342,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2344,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2346,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2346,1
    - Dst: l3_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:2346,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2348,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2349,1
    - Dst: l3_disallow_mask
      Src: /src/xen/xen/arch/x86/mm.c:2349,1
    - Dst: adjust_guest_l3e
      Src: /src/xen/xen/arch/x86/mm.c:2353,1
    - Dst: l3e_has_changed
      Src: /src/xen/xen/arch/x86/mm.c:2356,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2358,1
    - Dst: get_page_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:2362,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2363,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2367,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2367,1
    - Dst: pv_l1tf_check_l3e
      Src: /src/xen/xen/arch/x86/mm.c:2374,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2376,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2376,1
    - Dst: put_page_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:2382,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - pl3e
    - nl3e
    - mfn
    - preserve_ad
    - vcpu
    argTypes:
    - l3_pgentry_t*
    - l3_pgentry_t
    - mfn_t
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2325
    functionDepth: 3
    functionLinenumber: 2325
    functionLinenumberEnd: 2384
    functionName: mod_l3_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - is_pv_32bit_domain
    - l3_disallow_mask
    - pv_l1tf_check_l3e
    - UPDATE_ENTRY
    - get_page_from_l3e
    - put_page_from_l3e
    - l3e_read
    - l3e_get_flags
    - unlikely
    - adjust_guest_l3e
    - pgentry_ptr_to_slot
    - l3e_has_changed
    linkageType: ''
    returnType: int
    signature: "int mod_l3_entry(l3_pgentry_t *pl3e,\n                        l3_pgentry_t
      nl3e,\n                        mfn_t mfn,\n                        int preserve_ad,\n
      \                       struct vcpu *vcpu)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2397,1
    - Dst: is_guest_l4_slot
      Src: /src/xen/xen/arch/x86/mm.c:2397,1
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm.c:2397,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2399,1
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm.c:2400,1
    - Dst: l4e_read
      Src: /src/xen/xen/arch/x86/mm.c:2404,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2406,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2408,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2408,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2410,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:2411,1
    - Dst: adjust_guest_l4e
      Src: /src/xen/xen/arch/x86/mm.c:2415,1
    - Dst: l4e_has_changed
      Src: /src/xen/xen/arch/x86/mm.c:2418,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2420,1
    - Dst: get_page_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:2424,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2425,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2429,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2429,1
    - Dst: pv_l1tf_check_l4e
      Src: /src/xen/xen/arch/x86/mm.c:2436,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2438,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/mm.c:2438,1
    - Dst: put_page_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:2444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - pl4e
    - nl4e
    - mfn
    - preserve_ad
    - vcpu
    argTypes:
    - l4_pgentry_t*
    - l4_pgentry_t
    - mfn_t
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2387
    functionDepth: 3
    functionLinenumber: 2387
    functionLinenumberEnd: 2446
    functionName: mod_l4_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l4e_has_changed
    - get_page_from_l4e
    - gdprintk
    - l4e_get_flags
    - UPDATE_ENTRY
    - l4e_read
    - adjust_guest_l4e
    - put_page_from_l4e
    - unlikely
    - is_guest_l4_slot
    - pgentry_ptr_to_slot
    - pv_l1tf_check_l4e
    linkageType: ''
    returnType: int
    signature: "int mod_l4_entry(l4_pgentry_t *pl4e,\n                        l4_pgentry_t
      nl4e,\n                        mfn_t mfn,\n                        int preserve_ad,\n
      \                       struct vcpu *vcpu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2465,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2465,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2482,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2484,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/mm.c:2484,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:2484,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/mm.c:2485,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm.c:2485,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2487,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm.c:2487,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2489,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2496,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/arch/x86/mm.c:2506,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:2508,1
    - Dst: cache_flush
      Src: /src/xen/xen/arch/x86/mm.c:2510,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:2511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2515
    functionName: cleanup_page_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - page_to_mfn
    - iommu_legacy_unmap
    - need_iommu_pt_sync
    - mfn_x
    - is_special_page
    - likely
    - page_get_owner
    - ASSERT
    - is_pv_domain
    - cache_flush
    - __test_and_clear_bit
    - unlikely
    - __map_domain_page
    - _dfn
    linkageType: ''
    returnType: int
    signature: int cleanup_page_mappings(struct page_info *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2522,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2526,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2526,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2528,1
    - Dst: cleanup_page_mappings
      Src: /src/xen/xen/arch/x86/mm.c:2530,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:2531,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2533,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2534,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2517
    functionDepth: 2
    functionLinenumber: 2517
    functionLinenumberEnd: 2536
    functionName: put_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 9
    functionsReached:
    - gdprintk
    - page_to_mfn
    - mfn_x
    - ASSERT
    - cleanup_page_mappings
    - unlikely
    - free_domheap_page
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void put_page(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2551,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2554,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2556,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2539
    functionDepth: 0
    functionLinenumber: 2539
    functionLinenumberEnd: 2560
    functionName: page_get_owner_and_reference
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached:
    - page_get_owner
    - ASSERT
    - cmpxchg
    - unlikely
    linkageType: ''
    returnType: struct domain
    signature: struct domain *page_get_owner_and_reference(struct page_info *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/mm.c:2565,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2567,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:2570,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm.c:2571,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2573,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2573,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - page
    - domain
    argTypes:
    - struct page_info*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2563
    functionDepth: 1
    functionLinenumber: 2563
    functionLinenumberEnd: 2580
    functionName: get_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 8
    functionsReached:
    - page_to_mfn
    - page_get_owner_and_reference
    - mfn_x
    - likely
    - gprintk
    - paging_mode_refcounts
    - put_page
    linkageType: ''
    returnType: bool
    signature: bool get_page(struct page_info *page, const struct domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2599,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2600,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2601,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2604
    functionName: get_page_light
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - cmpxchg
    - unlikely
    linkageType: ''
    returnType: void
    signature: void get_page_light(struct page_info *page)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2610,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2614,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:2615,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2615,1
    - Dst: promote_l1_table
      Src: /src/xen/xen/arch/x86/mm.c:2620,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2623,1
    - Dst: promote_l2_table
      Src: /src/xen/xen/arch/x86/mm.c:2624,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2627,1
    - Dst: promote_l3_table
      Src: /src/xen/xen/arch/x86/mm.c:2628,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2631,1
    - Dst: promote_l4_table
      Src: /src/xen/xen/arch/x86/mm.c:2632,1
    - Dst: validate_segdesc_page
      Src: /src/xen/xen/arch/x86/mm.c:2635,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm.c:2638,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm.c:2642,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm.c:2646,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2653,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2658,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2659,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2662,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2662,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2663,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2663,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2663,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2669,1
    - Dst: get_page_light
      Src: /src/xen/xen/arch/x86/mm.c:2672,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:2680,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - page
    - type
    - preemptible
    argTypes:
    - struct page_info*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2606
    functionDepth: 4
    functionLinenumber: 2606
    functionLinenumberEnd: 2683
    functionName: validate_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - promote_l1_table
    - page_to_mfn
    - BUG
    - gdprintk
    - get_gpfn_from_mfn
    - get_page_light
    - mfn_x
    - likely
    - promote_l2_table
    - page_get_owner
    - smp_wmb
    - ASSERT
    - validate_segdesc_page
    - printk
    - promote_l3_table
    - promote_l4_table
    - ASSERT_UNREACHABLE
    - paging_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int validate_page(struct page_info *page, unsigned long type,\n                           int
      preemptible)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2690,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2693,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2693,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:2693,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:2696,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2696,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2698,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:2698,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2699,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:2699,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2700,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm.c:2700,1
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm.c:2702,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2702,1
    - Dst: demote_l1_table
      Src: /src/xen/xen/arch/x86/mm.c:2714,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2718,1
    - Dst: demote_l2_table
      Src: /src/xen/xen/arch/x86/mm.c:2719,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2722,1
    - Dst: demote_l3_table
      Src: /src/xen/xen/arch/x86/mm.c:2723,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2726,1
    - Dst: demote_l4_table
      Src: /src/xen/xen/arch/x86/mm.c:2727,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2730,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2731,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2731,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm.c:2733,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:2738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - page
    - type
    - preemptible
    argTypes:
    - struct page_info*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2686
    functionDepth: 4
    functionLinenumber: 2686
    functionLinenumberEnd: 2741
    functionName: devalidate_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - shadow_remove_all_shadows
    - likely
    - BUG
    - page_to_mfn
    - paging_mode_enabled
    - demote_l3_table
    - gdprintk
    - mfn_x
    - ASSERT
    - paging_mode_refcounts
    - demote_l2_table
    - ASSERT_UNREACHABLE
    - demote_l1_table
    - page_get_owner
    - paging_mode_translate
    - demote_l4_table
    - unlikely
    - shadow_mode_enabled
    - paging_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int devalidate_page(struct page_info *page, unsigned long type,\n
      \                  int preemptible)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: devalidate_page
      Src: /src/xen/xen/arch/x86/mm.c:2747,1
    - Dst: PGT_type_equal
      Src: /src/xen/xen/arch/x86/mm.c:2749,1
    - Dst: dec_linear_uses
      Src: /src/xen/xen/arch/x86/mm.c:2753,1
    - Dst: dec_linear_entries
      Src: /src/xen/xen/arch/x86/mm.c:2754,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2760,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2760,1
    - Dst: set_tlbflush_timestamp
      Src: /src/xen/xen/arch/x86/mm.c:2761,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm.c:2762,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2767,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm.c:2769,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2774,1
    - Dst: get_page_light
      Src: /src/xen/xen/arch/x86/mm.c:2776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - page
    - type
    - preemptible
    - ptpg
    argTypes:
    - struct page_info*
    - unsigned long
    - bool
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2744
    functionDepth: 5
    functionLinenumber: 2744
    functionLinenumberEnd: 2781
    functionName: _put_final_page_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - get_page_light
    - PGT_type_equal
    - dec_linear_uses
    - page_get_owner
    - dec_linear_entries
    - ASSERT
    - set_tlbflush_timestamp
    - smp_wmb
    - BUG_ON
    - devalidate_page
    linkageType: ''
    returnType: int
    signature: "int _put_final_page_type(struct page_info *page, unsigned long type,\n
      \                               bool preemptible, struct page_info *ptpg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2790,1
    - Dst: current_locked_page_ne_check
      Src: /src/xen/xen/arch/x86/mm.c:2790,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2812,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:2813,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2817,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2819,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2824,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:2825,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2835,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2835,1
    - Dst: _put_final_page_type
      Src: /src/xen/xen/arch/x86/mm.c:2839,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:2841,1
    - Dst: PGT_type_equal
      Src: /src/xen/xen/arch/x86/mm.c:2846,1
    - Dst: set_tlbflush_timestamp
      Src: /src/xen/xen/arch/x86/mm.c:2855,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:2858,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm.c:2858,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2862,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:2862,1
    - Dst: PGT_type_equal
      Src: /src/xen/xen/arch/x86/mm.c:2865,1
    - Dst: dec_linear_uses
      Src: /src/xen/xen/arch/x86/mm.c:2867,1
    - Dst: dec_linear_entries
      Src: /src/xen/xen/arch/x86/mm.c:2868,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:2874,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm.c:2882,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:2887,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - page
    - flags
    - ptpg
    argTypes:
    - struct page_info*
    - unsigned int
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2784
    functionDepth: 6
    functionLinenumber: 2784
    functionLinenumberEnd: 2890
    functionName: _put_page_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - cpu_relax
    - PGT_type_equal
    - dec_linear_uses
    - _put_final_page_type
    - likely
    - IS_ENABLED
    - page_get_owner
    - BUG_ON
    - ASSERT
    - set_tlbflush_timestamp
    - dec_linear_entries
    - put_page
    - ASSERT_UNREACHABLE
    - unlikely
    - hypercall_preempt_check
    - cmpxchg
    - current_locked_page_ne_check
    linkageType: ''
    returnType: int
    signature: "int _put_page_type(struct page_info *page, unsigned int flags,\n                          struct
      page_info *ptpg)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2899,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2900,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/mm.c:2900,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/mm.c:2902,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2907,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2909,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2911,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2911,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2915,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2924,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2931,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:2950,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2953,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2953,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2954,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:2954,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:2954,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:2957,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:2966,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:2981,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm.c:2983,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/mm.c:2984,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3003,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:3003,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:3006,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3018,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3028,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:3030,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:3032,1
    - Dst: shadow_prepare_page_type_change
      Src: /src/xen/xen/arch/x86/mm.c:3033,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:3037,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3045,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:3047,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/mm.c:3047,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/mm.c:3048,1
    - Dst: tlbflush_filter
      Src: /src/xen/xen/arch/x86/mm.c:3051,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3053,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/mm.c:3053,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:3055,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/mm.c:3062,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3071,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm.c:3075,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3077,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/mm.c:3077,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:3077,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3079,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/mm.c:3082,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm.c:3082,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3082,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/arch/x86/mm.c:3085,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm.c:3085,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3085,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3089,1
    - Dst: _put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3091,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3105,1
    - Dst: cache_flush
      Src: /src/xen/xen/arch/x86/mm.c:3107,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3108,1
    - Dst: validate_page
      Src: /src/xen/xen/arch/x86/mm.c:3130,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3142,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 90
    argCount: 3
    argNames:
    - page
    - type
    - preemptible
    argTypes:
    - struct page_info*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3145
      start: 2893
    functionDepth: 7
    functionLinenumber: 2893
    functionLinenumberEnd: 3145
    functionName: _get_page_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - cpu_relax
    - need_iommu_pt_sync
    - likely
    - ACCESS_ONCE
    - cmpxchg
    - _dfn
    - _put_page_type
    - page_to_mfn
    - get_gpfn_from_mfn
    - tlbflush_filter
    - BUG_ON
    - gdprintk
    - mfn_x
    - iommu_legacy_map
    - ASSERT
    - hypercall_preempt_check
    - cpumask_copy
    - this_cpu
    - in_irq
    - __map_domain_page
    - flush_mask
    - validate_page
    - perfc_incr
    - unmap_domain_page
    - iommu_legacy_unmap
    - cpumask_empty
    - page_get_owner
    - shadow_prepare_page_type_change
    - is_pv_domain
    - cache_flush
    - unlikely
    - put_page
    - shadow_mode_enabled
    linkageType: ''
    returnType: int
    signature: "int _get_page_type(struct page_info *page, unsigned long type,\n                          bool
      preemptible)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3149,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3147
    functionDepth: 7
    functionLinenumber: 3147
    functionLinenumberEnd: 3152
    functionName: put_page_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 4
    functionsReached:
    - ASSERT
    - _put_page_type
    linkageType: ''
    returnType: void
    signature: void put_page_type(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3156,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3158,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3154
    functionDepth: 8
    functionLinenumber: 3154
    functionLinenumberEnd: 3162
    functionName: get_page_type
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - likely
    - _get_page_type
    linkageType: ''
    returnType: int
    signature: int get_page_type(struct page_info *page, unsigned long type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3164
    functionDepth: 7
    functionLinenumber: 3164
    functionLinenumberEnd: 3167
    functionName: put_page_type_preemptible
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - _put_page_type
    linkageType: ''
    returnType: int
    signature: int put_page_type_preemptible(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3171,1
    - Dst: _get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3169
    functionDepth: 8
    functionLinenumber: 3169
    functionLinenumberEnd: 3174
    functionName: get_page_type_preemptible
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - _get_page_type
    linkageType: ''
    returnType: int
    signature: int get_page_type_preemptible(struct page_info *page, unsigned long
      type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3183,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3201,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3213
      start: 3176
    functionDepth: 7
    functionLinenumber: 3176
    functionLinenumberEnd: 3213
    functionName: put_old_guest_table
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - put_page
    - ASSERT
    - _put_page_type
    linkageType: ''
    returnType: int
    signature: int put_old_guest_table(struct vcpu *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:3217,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/mm.c:3219,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/mm.c:3232,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3234,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3234,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:3236,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/mm.c:3237,1
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/mm.c:3237,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3238,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm.c:3242,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:3250,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3250,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:3251,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3252,1
    - Dst: put_page_and_type_preemptible
      Src: /src/xen/xen/arch/x86/mm.c:3254,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:3261,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm.c:3262,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3215
    functionDepth: 8
    functionLinenumber: 3215
    functionLinenumberEnd: 3290
    functionName: vcpu_destroy_pagetables
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 3
    functionsReached:
    - l4e_write
    - unmap_domain_page
    - pagetable_get_pfn
    - map_domain_page
    - l4e_empty
    - mfn_to_page
    - l4e_get_pfn
    - _mfn
    - put_page_and_type_preemptible
    - pagetable_null
    - ASSERT
    - put_page
    - paging_mode_refcounts
    - put_old_guest_table
    - is_pv_32bit_vcpu
    linkageType: ''
    returnType: int
    signature: int vcpu_destroy_pagetables(struct vcpu *v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:3301,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3303,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3304,1
    - Dst: mod_l4_entry
      Src: /src/xen/xen/arch/x86/mm.c:3306,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3307,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3311,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3320,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3322,1
    - Dst: pv_destroy_ldt
      Src: /src/xen/xen/arch/x86/mm.c:3326,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/mm.c:3327,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/mm.c:3332,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3333,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3336,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:3341,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/mm.c:3343,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3347,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3356,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3358,1
    - Dst: pv_destroy_ldt
      Src: /src/xen/xen/arch/x86/mm.c:3362,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm.c:3364,1
    - Dst: fill_ro_mpt
      Src: /src/xen/xen/arch/x86/mm.c:3365,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3366,1
    - Dst: update_cr3
      Src: /src/xen/xen/arch/x86/mm.c:3367,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3375,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:3375,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3375,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3376,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/mm.c:3377,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/mm.c:3379,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm.c:3381,1
    - Dst: shadow_put_top_level
      Src: /src/xen/xen/arch/x86/mm.c:3382,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3384,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3384,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:3386,1
    - Dst: put_page_and_type_preemptible
      Src: /src/xen/xen/arch/x86/mm.c:3388,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:3398,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3293
    functionDepth: 8
    functionLinenumber: 3293
    functionLinenumberEnd: 3404
    functionName: new_guest_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - pagetable_from_mfn
    - update_cr3
    - pagetable_get_mfn
    - mfn_to_page
    - likely
    - write_ptbase
    - pv_destroy_ldt
    - is_pv_32bit_domain
    - map_domain_page
    - put_page_and_type_preemptible
    - get_page_and_type_from_mfn
    - pagetable_is_null
    - BUG_ON
    - mfn_eq
    - VM_ASSIST
    - gdprintk
    - mfn_x
    - l4e_from_mfn
    - mod_l4_entry
    - put_old_guest_table
    - unmap_domain_page
    - fill_ro_mpt
    - maddr_to_mfn
    - unlikely
    - shadow_put_top_level
    linkageType: ''
    returnType: int
    signature: int new_guest_cr3(mfn_t mfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:3414,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/mm.c:3416,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3423,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/mm.c:3424,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/mm.c:3425,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/mm.c:3428,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm.c:3441,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3442,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - d
    - pmask
    argTypes:
    - struct domain*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3408
    functionDepth: 1
    functionLinenumber: 3408
    functionLinenumberEnd: 3446
    functionName: vcpumask_to_pcpumask
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - is_pv_32bit_domain
    - is_vcpu_dirty_cpu
    - read_atomic
    - copy_from_guest_offset
    - unlikely
    - __cpumask_set_cpu
    linkageType: ''
    returnType: int
    signature: "int vcpumask_to_pcpumask(\n    struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void)
      bmap, cpumask_t *pmask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm.c:3441,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3442,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3432
    functionDepth: 1
    functionLinenumber: 3432
    functionLinenumberEnd: 3444
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 16
    functionsReached:
    - is_vcpu_dirty_cpu
    - __cpumask_set_cpu
    - read_atomic
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( vcpu_id, vmask )
  - BBCount: 104
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm.c:3449,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/mm.c:3460,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3462,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3464,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:3465,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3471,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3472,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:3472,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3481,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3484,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:3484,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:3485,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:3488,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3490,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/mm.c:3490,1
    - Dst: get_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:3493,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm.c:3496,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:3498,1
    - Dst: xsm_mmuext_op
      Src: /src/xen/xen/arch/x86/mm.c:3502,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:3505,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:3511,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3517,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:3517,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm.c:3523,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm.c:3559,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:3568,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:3571,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3572,1
    - Dst: get_page_type_preemptible
      Src: /src/xen/xen/arch/x86/mm.c:3578,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3579,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3584,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3586,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3586,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3588,1
    - Dst: xsm_memory_pin_page
      Src: /src/xen/xen/arch/x86/mm.c:3592,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3593,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/mm.c:3593,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3596,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:3598,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3598,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3602,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:3606,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3606,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3609,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm.c:3613,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/mm.c:3615,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:3617,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm.c:3622,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:3634,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:3637,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3638,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3640,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/mm.c:3647,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3649,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3650,1
    - Dst: put_page_and_type_preemptible
      Src: /src/xen/xen/arch/x86/mm.c:3656,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:3670,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3673,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:3676,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3676,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3680,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3682,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm.c:3682,1
    - Dst: new_guest_cr3
      Src: /src/xen/xen/arch/x86/mm.c:3685,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3685,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3691,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3693,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm.c:3693,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3695,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:3698,1
    - Dst: get_page_and_type_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3708,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3709,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3711,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3716,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm.c:3722,1
    - Dst: zap_ro_mpt
      Src: /src/xen/xen/arch/x86/mm.c:3723,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3723,1
    - Dst: pagetable_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:3726,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:3730,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:3730,1
    - Dst: put_page_and_type_preemptible
      Src: /src/xen/xen/arch/x86/mm.c:3732,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:3746,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3755,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/mm.c:3756,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3762,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/mm.c:3765,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3771,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3773,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3775,1
    - Dst: vcpumask_to_pcpumask
      Src: /src/xen/xen/arch/x86/mm.c:3775,1
    - Dst: guest_handle_to_param
      Src: /src/xen/xen/arch/x86/mm.c:3776,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3780,1
    - Dst: flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm.c:3784,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/mm.c:3785,1
    - Dst: flush_tlb_one_mask
      Src: /src/xen/xen/arch/x86/mm.c:3786,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3791,1
    - Dst: flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm.c:3792,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3798,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/mm.c:3800,1
    - Dst: flush_tlb_one_mask
      Src: /src/xen/xen/arch/x86/mm.c:3801,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3811,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:3813,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/mm.c:3813,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3816,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/mm.c:3818,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3819,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/mm.c:3820,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3821,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm.c:3822,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/mm.c:3823,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3835,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm.c:3837,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/mm.c:3840,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3842,1
    - Dst: pv_destroy_ldt
      Src: /src/xen/xen/arch/x86/mm.c:3849,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/mm.c:3850,1
    - Dst: load_LDT
      Src: /src/xen/xen/arch/x86/mm.c:3854,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:3860,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3861,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3863,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3866,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3869,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3870,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:3877,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3877,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3879,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3879,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm.c:3881,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:3888,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3890,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3892,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3895,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3897,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:3904,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3906,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3908,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:3912,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3913,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3915,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3917,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:3918,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm.c:3924,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3924,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:3926,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3926,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:3926,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm.c:3928,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:3929,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3944,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/mm.c:3947,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:3951,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:3958,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/mm.c:3959,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:3965,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:3970,1
    - Dst: perfc_add
      Src: /src/xen/xen/arch/x86/mm.c:3972,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:3975,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:3975,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:3978,1
    CyclomaticComplexity: 133
    EdgeCount: 133
    ICount: 334
    argCount: 2
    argNames:
    - count
    - foreigndom
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3982
      start: 3448
    functionDepth: 9
    functionLinenumber: 3448
    functionLinenumberEnd: 3982
    functionName: do_mmuext_op
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - copy_from_guest
    - mfn_to_page
    - test_and_set_bit
    - guest_handle_add_offset
    - likely
    - nrspin_unlock
    - flush_tlb_mask
    - new_guest_cr3
    - flush_tlb_local
    - is_hvm_domain
    - load_LDT
    - pv_destroy_ldt
    - perfc_add
    - is_pv_32bit_domain
    - page_to_mfn
    - get_page_type
    - get_pg_owner
    - test_and_clear_bit
    - put_page_and_type_preemptible
    - get_page_and_type_from_mfn
    - put_pg_owner
    - set_xen_guest_handle
    - hypercall_create_continuation
    - BUG_ON
    - pagetable_from_pfn
    - guest_handle_is_null
    - XEN_GUEST_HANDLE_PARAM
    - pagetable_get_pfn
    - copy_to_guest
    - VM_ASSIST
    - get_page_from_gfn
    - paging_mark_dirty
    - cpumask_clear
    - vcpumask_to_pcpumask
    - gdprintk
    - copy_domain_page
    - paging_invlpg
    - mfn_x
    - _mfn
    - flush_tlb_one_mask
    - xsm_mmuext_op
    - ASSERT
    - hypercall_preempt_check
    - xsm_memory_pin_page
    - paging_mode_refcounts
    - this_cpu
    - put_old_guest_table
    - __addr_ok
    - flush_mask
    - perfc_incr
    - for_each_online_cpu
    - __copy_from_guest
    - guest_handle_to_param
    - clear_domain_page
    - paging_mode_external
    - zap_ro_mpt
    - paging_mode_translate
    - is_pv_domain
    - cache_flush_permitted
    - per_cpu
    - nrspin_lock
    - unlikely
    - guest_handle_okay
    - put_page
    - __cpumask_set_cpu
    - get_page_type_preemptible
    - cpumask_intersects
    linkageType: ''
    returnType: long
    signature: "long do_mmuext_op(\n    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,\n
      \   unsigned int count,\n    XEN_GUEST_HANDLE_PARAM(uint) pdone,\n    unsigned
      int foreigndom)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm.c:3985,1
    - Dst: put_old_guest_table
      Src: /src/xen/xen/arch/x86/mm.c:4002,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4004,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:4006,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4007,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4013,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:4014,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:4014,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4023,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4026,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:4026,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4027,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:4030,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4032,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/mm.c:4032,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/mm.c:4038,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4042,1
    - Dst: get_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4050,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm.c:4058,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4064,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4064,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4086,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm.c:4086,1
    - Dst: get_pte_flags
      Src: /src/xen/xen/arch/x86/mm.c:4090,1
    - Dst: get_pte_flags
      Src: /src/xen/xen/arch/x86/mm.c:4093,1
    - Dst: xsm_mmu_update
      Src: /src/xen/xen/arch/x86/mm.c:4098,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm.c:4107,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4109,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4112,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/mm.c:4113,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/mm.c:4115,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm.c:4115,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:4119,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4124,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:4126,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:4129,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:4130,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/mm.c:4133,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/mm.c:4135,1
    - Dst: mod_l1_entry
      Src: /src/xen/xen/arch/x86/mm.c:4140,1
    - Dst: l1e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:4140,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4145,1
    - Dst: mod_l2_entry
      Src: /src/xen/xen/arch/x86/mm.c:4147,1
    - Dst: l2e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:4147,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4154,1
    - Dst: mod_l3_entry
      Src: /src/xen/xen/arch/x86/mm.c:4156,1
    - Dst: l3e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:4156,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4163,1
    - Dst: mod_l4_entry
      Src: /src/xen/xen/arch/x86/mm.c:4165,1
    - Dst: l4e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:4165,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:4173,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4173,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:4187,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4187,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:4194,1
    - Dst: paging_write_guest_entry
      Src: /src/xen/xen/arch/x86/mm.c:4195,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4199,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/mm.c:4203,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:4205,1
    - Dst: paging_write_guest_entry
      Src: /src/xen/xen/arch/x86/mm.c:4206,1
    - Dst: put_page_type
      Src: /src/xen/xen/arch/x86/mm.c:4207,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4211,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4216,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4222,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm.c:4222,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4228,1
    - Dst: xsm_mmu_update
      Src: /src/xen/xen/arch/x86/mm.c:4234,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4240,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4241,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:4243,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4249,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:4249,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm.c:4250,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm.c:4250,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4252,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4260,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/mm.c:4263,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4267,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:4274,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/mm.c:4275,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4281,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4286,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:4289,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/mm.c:4316,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm.c:4324,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/mm.c:4324,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/mm.c:4326,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/mm.c:4328,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/mm.c:4329,1
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/mm.c:4331,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:4336,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/mm.c:4339,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/mm.c:4340,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:4345,1
    - Dst: perfc_add
      Src: /src/xen/xen/arch/x86/mm.c:4347,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4351,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4354,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:4354,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4357,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 206
    argCount: 2
    argNames:
    - count
    - foreigndom
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 3984
    functionDepth: 8
    functionLinenumber: 3984
    functionLinenumberEnd: 4361
    functionName: do_mmu_update
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - xsm_mmu_update
    - pagetable_get_mfn
    - _gfn
    - set_gpfn_from_mfn
    - _pfn
    - likely
    - paging_write_guest_entry
    - guest_handle_add_offset
    - __cpumask_clear_cpu
    - get_pte_flags
    - _p
    - cpumask_test_cpu
    - perfc_add
    - page_to_mfn
    - map_domain_page
    - get_page_type
    - get_pg_owner
    - smp_processor_id
    - p2m_mem_paging_populate
    - flush_local
    - set_xen_guest_handle
    - put_pg_owner
    - hypercall_create_continuation
    - page_lock
    - mod_l3_entry
    - guest_handle_is_null
    - XEN_GUEST_HANDLE_PARAM
    - mfn_eq
    - rcu_unlock_domain
    - l2e_from_intpte
    - copy_to_guest
    - get_page_from_gfn
    - l3e_from_intpte
    - gdprintk
    - l1e_from_intpte
    - rcu_lock_domain_by_id
    - mfn_x
    - put_page_type
    - ASSERT
    - paging_mark_pfn_dirty
    - mod_l1_entry
    - hypercall_preempt_check
    - paging_mode_refcounts
    - cpumask_copy
    - mod_l4_entry
    - get_page_from_mfn
    - put_old_guest_table
    - page_unlock
    - flush_mask
    - perfc_incr
    - unmap_domain_page
    - __copy_from_guest
    - mod_l2_entry
    - cpumask_empty
    - l4e_from_intpte
    - paging_mode_translate
    - maddr_to_mfn
    - per_cpu
    - unlikely
    - guest_handle_okay
    - put_page
    - p2m_is_paged
    linkageType: ''
    returnType: long
    signature: "long do_mmu_update(\n    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,\n
      \   unsigned int count,\n    XEN_GUEST_HANDLE_PARAM(uint) pdone,\n    unsigned
      int foreigndom)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm.c:4389,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/mm.c:4394,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm.c:4397,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm.c:4411,1
    - Dst: cleanup_page_mappings
      Src: /src/xen/xen/arch/x86/mm.c:4421,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm.c:4437,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:4439,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm.c:4442,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm.c:4443,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/arch/x86/mm.c:4446,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4449,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4451,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/x86/mm.c:4452,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4457,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm.c:4459,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:4461,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4461,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - d
    - page
    - memflags
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4465
      start: 4381
    functionDepth: 2
    functionLinenumber: 4381
    functionLinenumberEnd: 4465
    functionName: steal_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - page_to_mfn
    - paging_mode_external
    - page_get_owner_and_reference
    - page_list_del
    - is_special_page
    - nrspin_unlock
    - mfn_x
    - BUG_ON
    - put_domain
    - cleanup_page_mappings
    - page_set_owner
    - nrspin_lock
    - unlikely
    - put_page
    - cmpxchg
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: int
    signature: "int steal_page(\n    struct domain *d, struct page_info *page, unsigned
      int memflags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: l1e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:4471,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm.c:4481,1
    - Dst: xsm_update_va_mapping
      Src: /src/xen/xen/arch/x86/mm.c:4483,1
    - Dst: map_guest_l1e
      Src: /src/xen/xen/arch/x86/mm.c:4488,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4489,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm.c:4490,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/mm.c:4493,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4495,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4501,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4502,1
    - Dst: mod_l1_entry
      Src: /src/xen/xen/arch/x86/mm.c:4506,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4508,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm.c:4509,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:4513,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/mm.c:4529,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:4535,1
    - Dst: vcpumask_to_pcpumask
      Src: /src/xen/xen/arch/x86/mm.c:4536,1
    - Dst: const_guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/mm.c:4536,1
    - Dst: flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm.c:4542,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/mm.c:4549,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm.c:4555,1
    - Dst: vcpumask_to_pcpumask
      Src: /src/xen/xen/arch/x86/mm.c:4556,1
    - Dst: const_guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/mm.c:4556,1
    - Dst: flush_tlb_one_mask
      Src: /src/xen/xen/arch/x86/mm.c:4562,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - va
    - val64
    - flags
    - pg_owner
    argTypes:
    - unsigned long
    - u64
    - unsigned long
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4468
    functionDepth: 3
    functionLinenumber: 4468
    functionLinenumberEnd: 4567
    functionName: __do_update_va_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - xsm_update_va_mapping
    - unmap_domain_page
    - vcpumask_to_pcpumask
    - const_guest_handle_from_ptr
    - paging_invlpg
    - flush_tlb_local
    - flush_tlb_one_mask
    - map_guest_l1e
    - page_lock
    - this_cpu
    - mod_l1_entry
    - flush_tlb_mask
    - unlikely
    - page_unlock
    - put_page
    - get_page_from_mfn
    - l1e_from_intpte
    linkageType: ''
    returnType: int
    signature: "int __do_update_va_mapping(\n    unsigned long va, u64 val64, unsigned
      long flags, struct domain *pg_owner)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __do_update_va_mapping
      Src: /src/xen/xen/arch/x86/mm.c:4572,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - va
    - val64
    - flags
    argTypes:
    - unsigned long
    - uint64_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4569
    functionDepth: 4
    functionLinenumber: 4569
    functionLinenumberEnd: 4579
    functionName: do_update_va_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - __do_update_va_mapping
    - hypercall_create_continuation
    linkageType: ''
    returnType: long
    signature: "long do_update_va_mapping(\n    unsigned long va, uint64_t val64,
      unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4587,1
    - Dst: __do_update_va_mapping
      Src: /src/xen/xen/arch/x86/mm.c:4590,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4592,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - va
    - val64
    - flags
    - domid
    argTypes:
    - unsigned long
    - uint64_t
    - unsigned long
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4600
      start: 4581
    functionDepth: 4
    functionLinenumber: 4581
    functionLinenumberEnd: 4600
    functionName: do_update_va_mapping_otherdomain
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - __do_update_va_mapping
    - hypercall_create_continuation
    - put_pg_owner
    - get_pg_owner
    linkageType: ''
    returnType: long
    signature: "long do_update_va_mapping_otherdomain(\n    unsigned long va, uint64_t
      val64, unsigned long flags, domid_t domid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __do_update_va_mapping
      Src: /src/xen/xen/arch/x86/mm.c:4607,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - va
    - lo
    - hi
    - flags
    argTypes:
    - unsigned int
    - uint32_t
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4604
    functionDepth: 4
    functionLinenumber: 4604
    functionLinenumberEnd: 4615
    functionName: compat_update_va_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - __do_update_va_mapping
    - hypercall_create_continuation
    linkageType: ''
    returnType: int
    signature: "int compat_update_va_mapping(\n    unsigned int va, uint32_t lo, uint32_t
      hi, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4624,1
    - Dst: __do_update_va_mapping
      Src: /src/xen/xen/arch/x86/mm.c:4627,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/x86/mm.c:4629,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - va
    - lo
    - hi
    - flags
    - domid
    argTypes:
    - unsigned int
    - uint32_t
    - uint32_t
    - unsigned int
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4637
      start: 4617
    functionDepth: 4
    functionLinenumber: 4617
    functionLinenumberEnd: 4637
    functionName: compat_update_va_mapping_otherdomain
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - __do_update_va_mapping
    - hypercall_create_continuation
    - put_pg_owner
    - get_pg_owner
    linkageType: ''
    returnType: int
    signature: "int compat_update_va_mapping_otherdomain(\n    unsigned int va, uint32_t
      lo, uint32_t hi, unsigned int flags,\n    domid_t domid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:4655,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/mm.c:4664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - s
    - e
    - ctxt
    argTypes:
    - unsigned long
    - unsigned long
    - struct memory_map_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4672
      start: 4650
    functionDepth: 1
    functionLinenumber: 4650
    functionLinenumberEnd: 4672
    functionName: _handle_iomem_range
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - __copy_to_guest_offset
    - guest_handle_is_null
    linkageType: ''
    returnType: int
    signature: "int _handle_iomem_range(unsigned long s, unsigned long e,\n                               struct
      memory_map_context *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/mm.c:4685,1
    - Dst: _handle_iomem_range
      Src: /src/xen/xen/arch/x86/mm.c:4693,1
    - Dst: _handle_iomem_range
      Src: /src/xen/xen/arch/x86/mm.c:4697,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 3
    argNames:
    - s
    - e
    - p
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4674
    functionDepth: 2
    functionLinenumber: 4674
    functionLinenumberEnd: 4698
    functionName: handle_iomem_range
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - _handle_iomem_range
    - paddr_to_pfn
    linkageType: ''
    returnType: int
    signature: "int handle_iomem_range(\n    unsigned long s, unsigned long e, void
      *p)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4712,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/mm.c:4718,1
    - Dst: xsm_domain_memory_map
      Src: /src/xen/xen/arch/x86/mm.c:4722,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4725,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/mm.c:4729,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4732,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4736,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm.c:4738,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4739,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm.c:4743,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm.c:4744,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4747,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4749,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4758,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm.c:4761,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4766,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm.c:4770,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4771,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4772,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4774,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:4778,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm.c:4785,1
    - Dst: xsm_machine_memory_map
      Src: /src/xen/xen/arch/x86/mm.c:4789,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4793,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm.c:4796,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/mm.c:4801,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/mm.c:4802,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:4807,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/x86/mm.c:4811,1
    - Dst: handle_iomem_range
      Src: /src/xen/xen/arch/x86/mm.c:4815,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/mm.c:4823,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/mm.c:4826,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/x86/mm.c:4831,1
    - Dst: handle_iomem_range
      Src: /src/xen/xen/arch/x86/mm.c:4834,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4841,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/mm.c:4855,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4857,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm.c:4870,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/mm.c:4873,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm.c:4877,1
    - Dst: xsm_set_pod_target
      Src: /src/xen/xen/arch/x86/mm.c:4881,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:4883,1
    - Dst: p2m_pod_set_mem_target
      Src: /src/xen/xen/arch/x86/mm.c:4887,1
    - Dst: xsm_get_pod_target
      Src: /src/xen/xen/arch/x86/mm.c:4890,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm.c:4894,1
    - Dst: p2m_pod_get_mem_target
      Src: /src/xen/xen/arch/x86/mm.c:4899,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm.c:4901,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm.c:4905,1
    - Dst: subarch_memory_op
      Src: /src/xen/xen/arch/x86/mm.c:4911,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 130
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4915
    functionName: arch_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - handle_iomem_range
    - copy_from_guest
    - PFN_UP
    - xsm_get_pod_target
    - spin_lock
    - PFN_DOWN
    - xfree
    - is_hvm_domain
    - __copy_to_guest_offset
    - xsm_machine_memory_map
    - subarch_memory_op
    - hypercall_create_continuation
    - guest_handle_is_null
    - rangeset_report_ranges
    - XEN_GUEST_HANDLE_PARAM
    - copy_to_guest
    - rcu_unlock_domain
    - guest_handle_cast
    - is_hardware_domain
    - p2m_pod_set_mem_target
    - xsm_domain_memory_map
    - spin_unlock
    - p2m_pod_get_mem_target
    - min
    - ASSERT
    - xmalloc_array
    - __copy_to_guest
    - xsm_set_pod_target
    - guest_handle_okay
    - rcu_lock_domain_by_any_id
    linkageType: ''
    returnType: long
    signature: long arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/mm.c:4919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4920
      start: 4917
    functionDepth: 0
    functionLinenumber: 4917
    functionLinenumberEnd: 4920
    functionName: subpage_ro_active
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool subpage_ro_active(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/mm.c:4926,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:4927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4922
    functionDepth: 1
    functionLinenumber: 4922
    functionLinenumberEnd: 4931
    functionName: subpage_mmio_find_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - mfn_eq
    linkageType: ''
    returnType: struct subpage_ro_range
    signature: struct subpage_ro_range *subpage_mmio_find_page(mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/mm.c:4949,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/mm.c:4952,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm.c:4956,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/mm.c:4962,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:4964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - mfn
    - offset_s
    - offset_e
    argTypes:
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4968
      start: 4940
    functionDepth: 2
    functionLinenumber: 4940
    functionLinenumberEnd: 4968
    functionName: subpage_mmio_ro_add_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ASSERT
    - __test_and_set_bit
    - list_add
    - subpage_mmio_find_page
    linkageType: ''
    returnType: int
    signature: "int subpage_mmio_ro_add_page(\n    mfn_t mfn,\n    unsigned int offset_s,\n
      \   unsigned int offset_e)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/mm.c:4978,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/mm.c:4983,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/arch/x86/mm.c:4985,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm.c:4988,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/x86/mm.c:4990,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm.c:4991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - mfn
    - offset_s
    - offset_e
    argTypes:
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4992
      start: 4970
    functionDepth: 2
    functionLinenumber: 4970
    functionLinenumberEnd: 4992
    functionName: subpage_mmio_ro_remove_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - __clear_bit
    - list_del
    - bitmap_empty
    - xfree
    - subpage_mmio_find_page
    linkageType: ''
    returnType: void
    signature: "void subpage_mmio_ro_remove_page(\n    mfn_t mfn,\n    unsigned int
      offset_s,\n    unsigned int offset_e)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:4998,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5000,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5005,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5005,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5006,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5006,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5007,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5008,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm.c:5018,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5025,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5028,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5028,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5033,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5034,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5039,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5040,1
    - Dst: subpage_mmio_ro_add_page
      Src: /src/xen/xen/arch/x86/mm.c:5042,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5043,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5048,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm.c:5048,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5049,1
    - Dst: subpage_mmio_ro_add_page
      Src: /src/xen/xen/arch/x86/mm.c:5054,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5054,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5058,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm.c:5058,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5059,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/mm.c:5062,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5062,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5062,1
    - Dst: subpage_mmio_ro_remove_page
      Src: /src/xen/xen/arch/x86/mm.c:5070,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5070,1
    - Dst: subpage_mmio_ro_remove_page
      Src: /src/xen/xen/arch/x86/mm.c:5073,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm.c:5073,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - start
    - size
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 4994
    functionDepth: 3
    functionLinenumber: 4994
    functionLinenumberEnd: 5076
    functionName: subpage_mmio_ro_add
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - subpage_mmio_ro_remove_page
    - mfn_x
    - IS_ALIGNED
    - rangeset_contains_singleton
    - ASSERT
    - maddr_to_mfn
    - rangeset_add_range
    - PAGE_OFFSET
    - mfn_eq
    - ASSERT_UNREACHABLE
    - subpage_mmio_ro_add_page
    linkageType: ''
    returnType: int
    signature: "int subpage_mmio_ro_add(\n    paddr_t start,\n    size_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioremap
      Src: /src/xen/xen/arch/x86/mm.c:5086,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm.c:5086,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm.c:5088,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5092,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/x86/mm.c:5094,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct subpage_ro_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5101
      start: 5078
    functionDepth: 1
    functionLinenumber: 5078
    functionLinenumberEnd: 5101
    functionName: subpage_mmio_map_page
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ioremap
    - spin_unlock
    - mfn_to_maddr
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void *subpage_mmio_map_page(\n    struct subpage_ro_range *entry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/mm.c:5112,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm.c:5117,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm.c:5120,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5122,1
    - Dst: subpage_mmio_map_page
      Src: /src/xen/xen/arch/x86/mm.c:5126,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm.c:5129,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5131,1
    - Dst: write_mmio
      Src: /src/xen/xen/arch/x86/mm.c:5135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - mfn
    - offset
    - data
    - len
    argTypes:
    - mfn_t
    - unsigned int
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5103
    functionDepth: 2
    functionLinenumber: 5103
    functionLinenumberEnd: 5137
    functionName: subpage_mmio_write_emulate
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - write_mmio
    - subpage_mmio_map_page
    - mfn_x
    - gprintk
    - test_bit
    - subpage_mmio_find_page
    linkageType: ''
    returnType: void
    signature: "void subpage_mmio_write_emulate(\n    mfn_t mfn,\n    unsigned int
      offset,\n    unsigned long data,\n    unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:5149,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:5151,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5152,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/x86/mm.c:5155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5145
    functionDepth: 1
    functionLinenumber: 5145
    functionLinenumberEnd: 5156
    functionName: alloc_xen_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - alloc_domheap_page
    - page_to_mfn
    - alloc_boot_pages
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t alloc_xen_pagetable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5161,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:5162,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:5162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5159
    functionDepth: 1
    functionLinenumber: 5159
    functionLinenumberEnd: 5163
    functionName: free_xen_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - free_domheap_page
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void free_xen_pagetable(mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5167,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5170,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5175,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/mm.c:5176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pmfn
    argTypes:
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5179
      start: 5165
    functionDepth: 2
    functionLinenumber: 5165
    functionLinenumberEnd: 5179
    functionName: alloc_mapped_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - clear_page
    - map_domain_page
    - alloc_xen_pagetable
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void *alloc_mapped_pagetable(mfn_t *pmfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5191,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5192,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5196,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5200,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5201,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5202,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5204,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/mm.c:5206,1
    - Dst: efi_update_l4_pgtable
      Src: /src/xen/xen/arch/x86/mm.c:5207,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5207,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5211,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5212,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/mm.c:5215,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5216
      start: 5187
    functionDepth: 3
    functionLinenumber: 5187
    functionLinenumberEnd: 5216
    functionName: virt_to_xen_l3e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l4e_write
    - spin_unlock
    - alloc_mapped_pagetable
    - spin_lock_if
    - l4_table_offset
    - l4e_get_flags
    - free_xen_pagetable
    - map_l3t_from_l4e
    - l3_table_offset
    - l4e_from_mfn
    - efi_update_l4_pgtable
    - UNMAP_DOMAIN_PAGE
    linkageType: ''
    returnType: l3_pgentry_t
    signature: l3_pgentry_t *virt_to_xen_l3e(unsigned long v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_xen_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5222,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5226,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5230,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5234,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5237,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5238,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5239,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5241,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5241,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5245,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5246,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:5249,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5249,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5251,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5253,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5218
    functionDepth: 4
    functionLinenumber: 5218
    functionLinenumberEnd: 5254
    functionName: virt_to_xen_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - l3e_write
    - spin_unlock
    - alloc_mapped_pagetable
    - spin_lock_if
    - map_l2t_from_l3e
    - free_xen_pagetable
    - l2_table_offset
    - virt_to_xen_l3e
    - BUG_ON
    - l3e_get_flags
    - UNMAP_DOMAIN_PAGE
    - l3e_from_mfn
    linkageType: ''
    returnType: l2_pgentry_t
    signature: l2_pgentry_t *virt_to_xen_l2e(unsigned long v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_xen_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5260,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5264,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5268,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5272,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5275,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5276,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5277,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5279,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5279,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5283,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5284,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:5287,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5287,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5289,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5291,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5256
    functionDepth: 5
    functionLinenumber: 5256
    functionLinenumberEnd: 5292
    functionName: virt_to_xen_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - unmap_domain_page
    - l2e_write
    - spin_unlock
    - alloc_mapped_pagetable
    - spin_lock_if
    - map_l1t_from_l2e
    - virt_to_xen_l2e
    - free_xen_pagetable
    - BUG_ON
    - l1_table_offset
    - UNMAP_DOMAIN_PAGE
    - l2e_from_mfn
    linkageType: ''
    returnType: l1_pgentry_t
    signature: l1_pgentry_t *virt_to_xen_l1e(unsigned long v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5295
    functionDepth: 0
    functionLinenumber: 5295
    functionLinenumberEnd: 5296
    functionName: l1f_to_lNf
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1f_to_lNf(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5297
      start: 5296
    functionDepth: 0
    functionLinenumber: 5296
    functionLinenumberEnd: 5297
    functionName: lNf_to_l1f
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lNf_to_l1f(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5300
      start: 5299
    functionDepth: 0
    functionLinenumber: 5299
    functionLinenumberEnd: 5300
    functionName: flush_area
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_area(v, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5302
      start: 5301
    functionDepth: 0
    functionLinenumber: 5301
    functionLinenumberEnd: 5302
    functionName: L3T_INIT
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L3T_INIT(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5310
      start: 5303
    functionDepth: 0
    functionLinenumber: 5303
    functionLinenumberEnd: 5310
    functionName: L3T_LOCK
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L3T_LOCK(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5311
    functionDepth: 0
    functionLinenumber: 5311
    functionLinenumberEnd: 5319
    functionName: L3T_UNLOCK
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L3T_UNLOCK(page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5334,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5335,1
    - Dst: virt_to_xen_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5336,1
    - Dst: L3T_INIT
      Src: /src/xen/xen/arch/x86/mm.c:5342,1
    - Dst: CHECK_MAPPED
      Src: /src/xen/xen/arch/x86/mm.c:5343,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:5344,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5344,1
    - Dst: L3T_LOCK
      Src: /src/xen/xen/arch/x86/mm.c:5345,1
    - Dst: CHECK_MAPPED
      Src: /src/xen/xen/arch/x86/mm.c:5347,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5347,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5348,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5350,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5350,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5355,1
    - Dst: CHECK_MAPPED
      Src: /src/xen/xen/arch/x86/mm.c:5356,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5356,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5357,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5359,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5359,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5363,1
    - Dst: CHECK_MAPPED
      Src: /src/xen/xen/arch/x86/mm.c:5364,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5364,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5365,1
    - Dst: L3T_UNLOCK
      Src: /src/xen/xen/arch/x86/mm.c:5369,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5370,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5371,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - va
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5374
      start: 5321
    functionDepth: 4
    functionLinenumber: 5321
    functionLinenumberEnd: 5374
    functionName: xen_map_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - L3T_UNLOCK
    - mfn_to_page
    - virt_to_xen_l3e
    - L3T_INIT
    - l2e_get_mfn
    - l3e_get_flags
    - l3e_get_mfn
    - l1_table_offset
    - l1e_get_flags
    - l1e_get_mfn
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - CHECK_MAPPED
    - mfn_add
    - domain_page_map_to_mfn
    - l2_table_offset
    - L3T_LOCK
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t xen_map_to_mfn(unsigned long va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5332
      start: 5323
    functionDepth: 0
    functionLinenumber: 5323
    functionLinenumberEnd: 5332
    functionName: CHECK_MAPPED
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_MAPPED(cond)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: L3T_INIT
      Src: /src/xen/xen/arch/x86/mm.c:5418,1
    - Dst: L3T_UNLOCK
      Src: /src/xen/xen/arch/x86/mm.c:5423,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5424,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5425,1
    - Dst: virt_to_xen_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5427,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:5431,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5431,1
    - Dst: L3T_LOCK
      Src: /src/xen/xen/arch/x86/mm.c:5432,1
    - Dst: IS_L3E_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5436,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:5436,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5441,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5441,1
    - Dst: l1f_to_lNf
      Src: /src/xen/xen/arch/x86/mm.c:5441,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5443,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5446,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5448,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5450,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5450,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5450,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5451,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5455,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5460,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5462,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5463,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5463,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5463,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5467,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5470,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5470,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5471,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5474,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5478,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5479,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5480,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5480,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5482,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5483,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5483,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5488,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5489,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5494,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5495,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5498,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5503,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5505,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5506,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5506,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5507,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5507,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5512,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5516,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5517,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5522,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5523,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5526,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5528,1
    - Dst: l2e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5529,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5529,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5531,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5532,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5534,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5537,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5538,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5539,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5541,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5541,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5545,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5546,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5548,1
    - Dst: virt_to_xen_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5551,1
    - Dst: IS_L2E_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5555,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:5555,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5561,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5561,1
    - Dst: l1f_to_lNf
      Src: /src/xen/xen/arch/x86/mm.c:5561,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5563,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5566,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5568,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5570,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5570,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5570,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5571,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5575,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5578,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5578,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5579,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5580,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5581,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5581,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5586,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5587,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5594,1
    - Dst: virt_to_xen_l1e
      Src: /src/xen/xen/arch/x86/mm.c:5596,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5600,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5603,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5608,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5609,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5609,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5610,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5610,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:5615,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5619,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5620,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5625,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5626,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5629,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/mm.c:5631,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5632,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5632,1
    - Dst: lNf_to_l1f
      Src: /src/xen/xen/arch/x86/mm.c:5633,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5633,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5634,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5636,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5639,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5640,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5641,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5643,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5643,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5647,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5648,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5650,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5654,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5654,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/mm.c:5656,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5656,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5657,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5658,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5660,1
    - Dst: flush_flags
      Src: /src/xen/xen/arch/x86/mm.c:5662,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5662,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5663,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5667,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm.c:5668,1
    - Dst: IS_L2E_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5672,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5677,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5684,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5687,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5691,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5694,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5698,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5699,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5701,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5702,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5704,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5707,1
    - Dst: l2e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5707,1
    - Dst: l1f_to_lNf
      Src: /src/xen/xen/arch/x86/mm.c:5707,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5709,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5710,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5712,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5713,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5713,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5716,1
    - Dst: IS_L3E_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5723,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5728,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5735,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5736,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5739,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5743,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5744,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5747,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5749,1
    - Dst: l1f_to_lNf
      Src: /src/xen/xen/arch/x86/mm.c:5749,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5751,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5754,1
    - Dst: l3e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5754,1
    - Dst: l1f_to_lNf
      Src: /src/xen/xen/arch/x86/mm.c:5754,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5756,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:5757,1
    - Dst: FLUSH_ORDER
      Src: /src/xen/xen/arch/x86/mm.c:5759,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5760,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5760,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5763,1
    - Dst: L3T_UNLOCK
      Src: /src/xen/xen/arch/x86/mm.c:5775,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5776,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5777,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 219
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5779
      start: 5376
    functionDepth: 6
    functionLinenumber: 5376
    functionLinenumberEnd: 5779
    functionName: map_pages_to_xen
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached:
    - l1e_from_mfn
    - L3T_UNLOCK
    - mfn_to_page
    - l1e_write
    - virt_to_xen_l3e
    - l1e_from_pfn
    - l3e_get_pfn
    - l2e_from_pfn
    - IS_L3E_ALIGNED
    - FLUSH_ORDER
    - l2e_from_mfn
    - lNf_to_l1f
    - l2e_write
    - map_domain_page
    - L3T_INIT
    - spin_lock_if
    - l1e_get_pfn
    - IS_L2E_ALIGNED
    - l2e_get_mfn
    - l3e_from_pfn
    - l3e_get_flags
    - l3e_get_mfn
    - mfn_eq
    - l1_table_offset
    - l2e_get_pfn
    - l1e_get_flags
    - spin_unlock
    - l3e_write
    - mfn_x
    - _mfn
    - l1f_to_lNf
    - flush_flags
    - UNMAP_DOMAIN_PAGE
    - free_xen_pagetable
    - flush_area
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - virt_to_xen_l1e
    - virt_to_xen_l2e
    - mfn_add
    - domain_page_map_to_mfn
    - alloc_xen_pagetable
    - l2_table_offset
    - L3T_LOCK
    - l3e_from_mfn
    linkageType: ''
    returnType: int
    signature: "int map_pages_to_xen(\n    unsigned long virt,\n    mfn_t mfn,\n    unsigned
      long nr_mfns,\n    pte_attr_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - oldf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5390
    functionDepth: 0
    functionLinenumber: 5390
    functionLinenumberEnd: 5403
    functionName: flush_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_flags(oldf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - m
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5415
      start: 5408
    functionDepth: 0
    functionLinenumber: 5408
    functionLinenumberEnd: 5415
    functionName: IS_LnE_ALIGNED
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LnE_ALIGNED(v, m, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5416
      start: 5415
    functionDepth: 0
    functionLinenumber: 5415
    functionLinenumberEnd: 5416
    functionName: IS_L2E_ALIGNED
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_L2E_ALIGNED(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5417
      start: 5416
    functionDepth: 0
    functionLinenumber: 5416
    functionLinenumberEnd: 5417
    functionName: IS_L3E_ALIGNED
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_L3E_ALIGNED(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:5783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - virt
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5784
      start: 5781
    functionDepth: 0
    functionLinenumber: 5781
    functionLinenumberEnd: 5784
    functionName: populate_pt_range
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - map_pages_to_xen
    linkageType: ''
    returnType: int
    signature: int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5813,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5813,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5814,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:5814,1
    - Dst: L3T_INIT
      Src: /src/xen/xen/arch/x86/mm.c:5816,1
    - Dst: L3T_UNLOCK
      Src: /src/xen/xen/arch/x86/mm.c:5821,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5822,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5823,1
    - Dst: virt_to_xen_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5825,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm.c:5829,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5829,1
    - Dst: L3T_LOCK
      Src: /src/xen/xen/arch/x86/mm.c:5830,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5832,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5835,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5842,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5847,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5848,1
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm.c:5852,1
    - Dst: l3e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5853,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5853,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5854,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5856,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5862,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5863,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5866,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5868,1
    - Dst: l2e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5869,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5869,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5871,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5872,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5874,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5875,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5876,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:5878,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5878,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5882,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5884,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:5891,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5891,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5893,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5896,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5903,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5905,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/mm.c:5909,1
    - Dst: l2e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5910,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5910,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5911,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5913,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5920,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm.c:5922,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5925,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/mm.c:5927,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5928,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5928,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5929,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5930,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5932,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5933,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5934,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:5936,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5936,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5940,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:5942,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:5955,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5955,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5958,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:5959,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/mm.c:5961,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5962,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm.c:5962,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5963,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/mm.c:5965,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:5966,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:5973,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:5975,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5981,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5984,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:5988,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:5991,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:5995,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:5996,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:5998,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:6000,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:6004,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/mm.c:6004,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:6006,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:6007,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:6008,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:6011,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6020,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6020,1
    - Dst: spin_lock_if
      Src: /src/xen/xen/arch/x86/mm.c:6022,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6028,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6029,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:6032,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6038,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6040,1
    - Dst: l2e_get_intpte
      Src: /src/xen/xen/arch/x86/mm.c:6042,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/mm.c:6044,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/mm.c:6048,1
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm.c:6048,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:6050,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:6051,1
    - Dst: free_xen_pagetable
      Src: /src/xen/xen/arch/x86/mm.c:6052,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm.c:6055,1
    - Dst: flush_area
      Src: /src/xen/xen/arch/x86/mm.c:6059,1
    - Dst: L3T_UNLOCK
      Src: /src/xen/xen/arch/x86/mm.c:6065,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6066,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6067,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 145
    argCount: 3
    argNames:
    - s
    - e
    - nf
    argTypes:
    - unsigned long
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6069
      start: 5798
    functionDepth: 4
    functionLinenumber: 5798
    functionLinenumberEnd: 6069
    functionName: modify_xen_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - L3T_UNLOCK
    - mfn_to_page
    - l1e_write
    - virt_to_xen_l3e
    - l1e_from_pfn
    - l3e_get_pfn
    - l2e_from_pfn
    - l2e_empty
    - l2e_from_mfn
    - l2e_write
    - map_domain_page
    - L3T_INIT
    - spin_lock_if
    - l1e_get_pfn
    - l2e_get_mfn
    - l3e_from_pfn
    - l3e_get_flags
    - l3e_get_mfn
    - mfn_eq
    - l1_table_offset
    - l2e_get_pfn
    - l1e_get_flags
    - spin_unlock
    - l3e_write
    - l3e_empty
    - ASSERT
    - l1e_empty
    - UNMAP_DOMAIN_PAGE
    - free_xen_pagetable
    - flush_area
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - IS_ALIGNED
    - domain_page_map_to_mfn
    - alloc_xen_pagetable
    - l2_table_offset
    - l2e_get_intpte
    - L3T_LOCK
    - l3e_from_mfn
    linkageType: ''
    returnType: int
    signature: int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t
      nf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/mm.c:6078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6076
    functionDepth: 0
    functionLinenumber: 6076
    functionLinenumberEnd: 6079
    functionName: destroy_xen_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - modify_xen_mappings
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mappings(unsigned long s, unsigned long e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/mm.c:6100,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/mm.c:6101,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6104,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6105,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:6105,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6106,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6110,1
    - Dst: l2e_read
      Src: /src/xen/xen/arch/x86/mm.c:6111,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6112,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6114,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6116,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6118,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm.c:6118,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/mm.c:6120,1
    - Dst: l2e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:6120,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:6128,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6132,1
    - Dst: l1e_read
      Src: /src/xen/xen/arch/x86/mm.c:6133,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6134,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6136,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/mm.c:6138,1
    - Dst: l1e_from_intpte
      Src: /src/xen/xen/arch/x86/mm.c:6138,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6142,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - s
    - e
    - nf
    argTypes:
    - unsigned long
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6093
    functionDepth: 1
    functionLinenumber: 6093
    functionLinenumberEnd: 6149
    functionName: init_or_livepatch::modify_xen_mappings_lite
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - l2e_get_flags
    - l2e_write
    - unmap_domain_page
    - map_l1t_from_l2e
    - IS_ALIGNED
    - l1e_read
    - l2_table_offset
    - l1e_write
    - ASSERT
    - l2e_read
    - l1_table_offset
    - l2e_from_intpte
    - put_pte_flags
    - l1e_from_intpte
    linkageType: ''
    returnType: void
    signature: "void init_or_livepatch modify_xen_mappings_lite(\n    unsigned long
      s, unsigned long e, pte_attr_t nf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:6154,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6155,1
    - Dst: __fix_to_virt
      Src: /src/xen/xen/arch/x86/mm.c:6155,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:6155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - idx
    - mfn
    - flags
    argTypes:
    - enum fixed_addresses
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6156
      start: 6151
    functionDepth: 1
    functionLinenumber: 6151
    functionLinenumberEnd: 6156
    functionName: __set_fixmap
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - __fix_to_virt
    - map_pages_to_xen
    - _mfn
    linkageType: ''
    returnType: void
    signature: "void __set_fixmap(\n    enum fixed_addresses idx, unsigned long mfn,
      unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:6161,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6162,1
    - Dst: __fix_x_to_virt
      Src: /src/xen/xen/arch/x86/mm.c:6162,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:6162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - idx
    - mfn
    - flags
    argTypes:
    - enum fixed_addresses_x
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6163
      start: 6158
    functionDepth: 1
    functionLinenumber: 6158
    functionLinenumberEnd: 6163
    functionName: __set_fixmap_x
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - __fix_x_to_virt
    - map_pages_to_xen
    - _mfn
    linkageType: ''
    returnType: void
    signature: "void __set_fixmap_x(\n    enum fixed_addresses_x idx, unsigned long
      mfn, unsigned long flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/mm.c:6167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6168
      start: 6165
    functionDepth: 0
    functionLinenumber: 6165
    functionLinenumberEnd: 6168
    functionName: arch_vmap_virt_end
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - fix_to_virt
    linkageType: ''
    returnType: void
    signature: void *__init arch_vmap_virt_end(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:6172,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:6172,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/mm.c:6175,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/mm.c:6175,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:6175,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/mm.c:6179,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/mm.c:6183,1
    - Dst: __vmap
      Src: /src/xen/xen/arch/x86/mm.c:6185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6191
      start: 6170
    functionDepth: 1
    functionLinenumber: 6170
    functionLinenumberEnd: 6191
    functionName: ioremap
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - __va
    - PFN_UP
    - mfn_x
    - _mfn
    - page_is_ram_type
    - __vmap
    - PFN_DOWN
    - WARN_ON
    linkageType: ''
    returnType: void
    signature: void *ioremap(paddr_t pa, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm.c:6195,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:6195,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/mm.c:6197,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/mm.c:6200,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/mm.c:6200,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm.c:6200,1
    - Dst: __vmap
      Src: /src/xen/xen/arch/x86/mm.c:6202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6205
      start: 6193
    functionDepth: 1
    functionLinenumber: 6193
    functionLinenumberEnd: 6205
    functionName: ioremap_wc
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - mfn_x
    - _mfn
    - page_is_ram_type
    - __vmap
    - PFN_DOWN
    - WARN_ON
    linkageType: ''
    returnType: void
    signature: void *__init ioremap_wc(paddr_t pa, size_t len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6217,1
    - Dst: PERDOMAIN_VIRT_SLOT
      Src: /src/xen/xen/arch/x86/mm.c:6218,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6222,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6225,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/mm.c:6226,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6230,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6237,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6239,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6239,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6241,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6241,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6243,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6246,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6249,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/mm.c:6250,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6251,1
    - Dst: l3e_from_page
      Src: /src/xen/xen/arch/x86/mm.c:6251,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:6254,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6254,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6256,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6260,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6266,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6268,1
    - Dst: IS_NIL
      Src: /src/xen/xen/arch/x86/mm.c:6270,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/mm.c:6272,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/mm.c:6272,1
    - Dst: domain_to_node
      Src: /src/xen/xen/arch/x86/mm.c:6272,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6278,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6278,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6279,1
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/x86/mm.c:6280,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6284,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6290,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/mm.c:6292,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/mm.c:6293,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:6296,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6299,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6299,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6301,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6304,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6304,1
    - Dst: IS_NIL
      Src: /src/xen/xen/arch/x86/mm.c:6305,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6307,1
    - Dst: l1e_from_page
      Src: /src/xen/xen/arch/x86/mm.c:6308,1
    - Dst: l2e_add_flags
      Src: /src/xen/xen/arch/x86/mm.c:6309,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6316,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6319,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6324,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6325,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 78
    argCount: 5
    argNames:
    - d
    - va
    - nr
    - pl1tab
    - ppg
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - l1_pgentry_t**
    - struct page_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6328
      start: 6207
    functionDepth: 1
    functionLinenumber: 6207
    functionLinenumberEnd: 6328
    functionName: create_perdomain_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - alloc_domheap_page
    - l3e_from_page
    - page_to_mfn
    - l2e_add_flags
    - l3_table_offset
    - MEMF_node
    - l3e_get_flags
    - IS_NIL
    - l1_table_offset
    - l1e_get_flags
    - PERDOMAIN_VIRT_SLOT
    - virt_to_page
    - ASSERT
    - alloc_xenheap_pages
    - l1e_from_page
    - __map_domain_page
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - clear_domain_page
    - domain_to_node
    - clear_page
    - l2e_from_page
    - l2_table_offset
    linkageType: ''
    returnType: int
    signature: "int create_perdomain_mapping(struct domain *d, unsigned long va,\n
      \                            unsigned int nr, l1_pgentry_t **pl1tab,\n                             struct
      page_info **ppg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6335,1
    - Dst: PERDOMAIN_VIRT_SLOT
      Src: /src/xen/xen/arch/x86/mm.c:6336,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6337,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6337,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6342,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6343,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6345,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm.c:6347,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6348,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm.c:6349,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6353,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm.c:6355,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6359,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6362,1
    - Dst: l1e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:6362,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/mm.c:6363,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6366,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6377,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6380,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - d
    - va
    - nr
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6381
      start: 6330
    functionDepth: 1
    functionLinenumber: 6330
    functionLinenumberEnd: 6381
    functionName: destroy_perdomain_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - l2e_get_flags
    - l1e_get_page
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - PERDOMAIN_VIRT_SLOT
    - l3_table_offset
    - l2_table_offset
    - ASSERT
    - l1e_empty
    - l3e_get_flags
    - __map_domain_page
    - l1_table_offset
    - free_domheap_page
    linkageType: ''
    returnType: void
    signature: "void destroy_perdomain_mapping(struct domain *d, unsigned long va,\n
      \                              unsigned int nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6391,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6394,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:6396,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6397,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6401,1
    - Dst: l2e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:6403,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6405,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6407,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm.c:6411,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6414,1
    - Dst: l1e_get_page
      Src: /src/xen/xen/arch/x86/mm.c:6414,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6416,1
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/arch/x86/mm.c:6419,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6420,1
    - Dst: page_to_virt
      Src: /src/xen/xen/arch/x86/mm.c:6420,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6422,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6425,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6426,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm.c:6429,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm.c:6430,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6432
      start: 6383
    functionDepth: 1
    functionLinenumber: 6383
    functionLinenumberEnd: 6432
    functionName: free_perdomain_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached:
    - l1e_get_flags
    - l2e_get_flags
    - l1e_get_page
    - unmap_domain_page
    - l3e_get_page
    - page_to_virt
    - free_xenheap_page
    - l3e_get_flags
    - is_xen_heap_page
    - __map_domain_page
    - l2e_get_page
    - free_domheap_page
    linkageType: ''
    returnType: void
    signature: void free_perdomain_mappings(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6441
      start: 6434
    functionDepth: 0
    functionLinenumber: 6434
    functionLinenumberEnd: 6441
    functionName: write_sss_token
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_sss_token(unsigned long *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm.c:6445,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm.c:6453,1
    - Dst: write_sss_token
      Src: /src/xen/xen/arch/x86/mm.c:6455,1
    - Dst: write_sss_token
      Src: /src/xen/xen/arch/x86/mm.c:6456,1
    - Dst: write_sss_token
      Src: /src/xen/xen/arch/x86/mm.c:6457,1
    - Dst: write_sss_token
      Src: /src/xen/xen/arch/x86/mm.c:6458,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6460,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6460,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm.c:6464,1
    - Dst: write_sss_token
      Src: /src/xen/xen/arch/x86/mm.c:6465,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6467,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6468
      start: 6443
    functionDepth: 1
    functionLinenumber: 6443
    functionLinenumberEnd: 6468
    functionName: memguard_guard_stack
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - virt_to_mfn
    - write_sss_token
    - IS_ENABLED
    - map_pages_to_xen
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void memguard_guard_stack(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6472,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6472,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/mm.c:6475,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm.c:6475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6476
      start: 6470
    functionDepth: 0
    functionLinenumber: 6470
    functionLinenumberEnd: 6476
    functionName: memguard_unguard_stack
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 1
    functionsReached:
    - map_pages_to_xen
    - virt_to_mfn
    linkageType: ''
    returnType: void
    signature: void memguard_unguard_stack(void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/mm.c:6492,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/mm.c:6499,1
    - Dst: cpuid_count_ebx
      Src: /src/xen/xen/arch/x86/mm.c:6500,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/mm.c:6500,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm.c:6504,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/mm.c:6505,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/mm.c:6505,1
    - Dst: IS_SNB_GFX
      Src: /src/xen/xen/arch/x86/mm.c:6506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - array_size
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6510
      start: 6478
    functionDepth: 1
    functionLinenumber: 6478
    functionLinenumberEnd: 6510
    functionName: get_platform_badpages
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - IS_SNB_GFX
    - cpufeat_mask
    - PCI_SBDF
    - cpuid_eax
    - pci_conf_read32
    - cpuid_count_ebx
    linkageType: ''
    returnType: struct platform_bad_page
    signature: struct platform_bad_page *__init get_platform_badpages(unsigned int
      *array_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/mm.c:6514,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm.c:6517,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm.c:6518,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/mm.c:6521,1
    - Dst: flush_tlb_one_local
      Src: /src/xen/xen/arch/x86/mm.c:6522,1
    - Dst: hvm_invlpg
      Src: /src/xen/xen/arch/x86/mm.c:6524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6525
      start: 6512
    functionDepth: 1
    functionLinenumber: 6512
    functionLinenumberEnd: 6525
    functionName: paging_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 2
    functionsReached:
    - is_pv_vcpu
    - flush_tlb_one_local
    - paging_mode_enabled
    - hvm_invlpg
    - is_canonical_address
    - paging_get_hostmode
    linkageType: ''
    returnType: void
    signature: void paging_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - l2
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6535
      start: 6528
    functionDepth: 0
    functionLinenumber: 6528
    functionLinenumberEnd: 6535
    functionName: write_32bit_pse_identmap
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_32bit_pse_identmap(uint32_t *l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm.c:6541,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm.c:6543,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm.c:6545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6546
      start: 6537
    functionDepth: 0
    functionLinenumber: 6537
    functionLinenumberEnd: 6546
    functionName: get_upper_mfn_bound
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - min
    - PFN_DOWN
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_upper_mfn_bound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:6556,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm.c:6559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6560
      start: 6548
    functionDepth: 0
    functionLinenumber: 6548
    functionLinenumberEnd: 6560
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/mm.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/tboot.c:87,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/tboot.c:89,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/tboot.c:90,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/tboot.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - va
    - size
    - pa
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: tboot_copy_memory
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - set_fixmap
    - fix_to_virt
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: "void tboot_copy_memory(unsigned char *va, uint32_t size,\n                                     unsigned
      long pa)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/tboot.c:107,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/tboot.c:108,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/tboot.c:109,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:116,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:121,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:122,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:123,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:124,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:125,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:126,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:128,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:135,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:137,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:140,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:142,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/tboot.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 145
    functionName: tboot_probe
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fix_to_virt
    - clear_fixmap
    - printk
    - set_fixmap
    - tboot_copy_memory
    linkageType: ''
    returnType: void
    signature: void tboot_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: dma_pte_present
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_present(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: dma_pte_addr
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_addr(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: agaw_to_level
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: agaw_to_level(val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:167,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/tboot.c:167,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/tboot.c:167,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:168,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/arch/x86/tboot.c:173,1
    - Dst: update_iommu_mac
      Src: /src/xen/xen/arch/x86/tboot.c:177,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/arch/x86/tboot.c:177,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - pt_maddr
    - level
    argTypes:
    - vmac_ctx_t*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 181
    functionName: update_iommu_mac
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 1
    functionsReached:
    - dma_pte_addr
    - dma_pte_present
    - map_domain_page
    - unmap_domain_page
    - _mfn
    - update_iommu_mac
    - paddr_to_pfn
    - vmac_update
    linkageType: ''
    returnType: void
    signature: void update_iommu_mac(vmac_ctx_t *ctx, uint64_t pt_maddr, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: is_page_in_use
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_page_in_use(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/tboot.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - vmac_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: wipe_ctx
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void wipe_ctx(vmac_ctx_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmac_set_key
      Src: /src/xen/xen/arch/x86/tboot.c:205,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:210,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/tboot.c:212,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/tboot.c:213,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:215,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:216,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:217,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/tboot.c:219,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/tboot.c:221,1
    - Dst: dom_iommu
      Src: /src/xen/xen/arch/x86/tboot.c:223,1
    - Dst: update_iommu_mac
      Src: /src/xen/xen/arch/x86/tboot.c:225,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/arch/x86/tboot.c:226,1
    - Dst: vmac
      Src: /src/xen/xen/arch/x86/tboot.c:232,1
    - Dst: wipe_ctx
      Src: /src/xen/xen/arch/x86/tboot.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - key
    - mac
    argTypes:
    - uint8_t[]
    - vmac_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 235
    functionName: tboot_gen_domain_integrity
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - dom_iommu
    - agaw_to_level
    - wipe_ctx
    - nrspin_unlock
    - update_iommu_mac
    - page_list_for_each
    - vmac
    - nrspin_lock
    - printk
    - __map_domain_page
    - vmac_update
    - vmac_set_key
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: "void tboot_gen_domain_integrity(const uint8_t key[TB_KEY_SIZE],\n
      \                                      vmac_t *mac)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:210,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/tboot.c:212,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/tboot.c:213,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:215,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:216,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/tboot.c:217,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/tboot.c:219,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/tboot.c:221,1
    - Dst: dom_iommu
      Src: /src/xen/xen/arch/x86/tboot.c:223,1
    - Dst: update_iommu_mac
      Src: /src/xen/xen/arch/x86/tboot.c:225,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/arch/x86/tboot.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - dom_iommu
    - agaw_to_level
    - nrspin_unlock
    - update_iommu_mac
    - page_list_for_each
    - nrspin_lock
    - vmac_update
    - __map_domain_page
    - printk
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void for_each_domain( d )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vmac_set_key
      Src: /src/xen/xen/arch/x86/tboot.c:244,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/tboot.c:247,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/tboot.c:247,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/tboot.c:249,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/tboot.c:249,1
    - Dst: is_xen_fixed_mfn
      Src: /src/xen/xen/arch/x86/tboot.c:251,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/tboot.c:251,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/tboot.c:253,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/tboot.c:254,1
    - Dst: is_page_in_use
      Src: /src/xen/xen/arch/x86/tboot.c:259,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/tboot.c:259,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:260,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/tboot.c:260,1
    - Dst: vmac
      Src: /src/xen/xen/arch/x86/tboot.c:262,1
    - Dst: wipe_ctx
      Src: /src/xen/xen/arch/x86/tboot.c:264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - key
    - mac
    argTypes:
    - uint8_t[]
    - vmac_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: tboot_gen_xenheap_integrity
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - is_page_in_use
    - mfn_to_page
    - PFN_UP
    - _mfn
    - is_special_page
    - mfn_valid
    - vmac_update
    - vmac
    - PFN_DOWN
    - mfn_to_virt
    - is_xen_fixed_mfn
    - vmac_set_key
    - wipe_ctx
    linkageType: ''
    returnType: void
    signature: "void tboot_gen_xenheap_integrity(const uint8_t key[TB_KEY_SIZE],\n
      \                                       vmac_t *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/tboot.c:271,1
    - Dst: vmac_set_key
      Src: /src/xen/xen/arch/x86/tboot.c:275,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/tboot.c:278,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/tboot.c:279,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:282,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/tboot.c:282,1
    - Dst: vmac_update
      Src: /src/xen/xen/arch/x86/tboot.c:286,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/tboot.c:286,1
    - Dst: vmac
      Src: /src/xen/xen/arch/x86/tboot.c:290,1
    - Dst: wipe_ctx
      Src: /src/xen/xen/arch/x86/tboot.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - key
    - mac
    argTypes:
    - uint8_t[]
    - vmac_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 293
    functionName: tboot_gen_frametable_integrity
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - find_next_zero_bit
    - wipe_ctx
    - find_next_bit
    - DIV_ROUND_UP
    - vmac
    - vmac_update
    - vmac_set_key
    - pdx_to_page
    linkageType: ''
    returnType: void
    signature: "void tboot_gen_frametable_integrity(const uint8_t key[TB_KEY_SIZE],\n
      \                                          vmac_t *mac)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/tboot.c:305,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/tboot.c:306,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/tboot.c:308,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/tboot.c:308,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:312,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/tboot.c:313,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/tboot.c:319,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/tboot.c:332,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/tboot.c:335,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/tboot.c:338,1
    - Dst: efi_boot_mem_unused
      Src: /src/xen/xen/arch/x86/tboot.c:340,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/tboot.c:344,1
    - Dst: tboot_gen_domain_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:355,1
    - Dst: tboot_gen_frametable_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:356,1
    - Dst: tboot_gen_xenheap_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:357,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/tboot.c:364,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/tboot.c:366,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/tboot.c:367,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/tboot.c:367,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/tboot.c:375,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/tboot.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - shutdown_type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 380
    functionName: tboot_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 1
    functionsReached:
    - BUG
    - write_cr4
    - __pa
    - mfn_to_maddr
    - PFN_UP
    - efi_boot_mem_unused
    - mfn_x
    - read_cr4
    - local_irq_disable
    - write_ptbase
    - map_pages_to_xen
    - maddr_to_mfn
    - tboot_gen_domain_integrity
    - tboot_gen_xenheap_integrity
    - printk
    - wrmsrl
    - bootsym_phys
    - tboot_gen_frametable_integrity
    linkageType: ''
    returnType: void
    signature: void tboot_shutdown(uint32_t shutdown_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: tboot_in_measured_env
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_in_measured_env(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/tboot.c:391,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/tboot.c:397,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/tboot.c:406,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/tboot.c:413,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 420
    functionName: tboot_protect_mem_regions
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - e820_change_range_type
    - tboot_in_measured_env
    linkageType: ''
    returnType: int
    signature: int tboot_protect_mem_regions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/tboot.c:431,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/tboot.c:432,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:445,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:448,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:451,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:455,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:459,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/tboot.c:462,1
    - Dst: tboot_copy_memory
      Src: /src/xen/xen/arch/x86/tboot.c:465,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/tboot.c:466,1
    - Dst: dmar_handler
      Src: /src/xen/xen/arch/x86/tboot.c:468,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/tboot.c:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - dmar_handler
    argTypes:
    - acpi_table_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 472
    functionName: tboot_parse_dmar_table
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - dmar_handler
    - clear_fixmap
    - acpi_table_parse
    - xmalloc_bytes
    - tboot_in_measured_env
    - tboot_copy_memory
    - xfree
    linkageType: ''
    returnType: int
    signature: int tboot_parse_dmar_table(acpi_table_handler dmar_handler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/tboot.c:478,1
    - Dst: tboot_gen_xenheap_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:482,1
    - Dst: tboot_gen_frametable_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:487,1
    - Dst: tboot_gen_domain_integrity
      Src: /src/xen/xen/arch/x86/tboot.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 498
    functionName: tboot_s3_resume
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - tboot_gen_domain_integrity
    - tboot_gen_frametable_integrity
    - tboot_gen_xenheap_integrity
    - tboot_in_measured_env
    linkageType: ''
    returnType: int
    signature: int tboot_s3_resume(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/tboot.c:504,1
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/tboot.c:504,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:513,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tboot.c:514,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/tboot.c:515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 516
    functionName: tboot_s3_error
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 0
    functionsReached:
    - panic
    - BUG_ON
    - tboot_in_measured_env
    - printk
    linkageType: ''
    returnType: void
    signature: void tboot_s3_error(int error)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - apicid
    - sipi_vec
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: tboot_wake_ap
    functionSourceFile: /src/xen/xen/arch/x86/tboot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_wake_ap(int apicid, unsigned long sipi_vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:48,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:49,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:50,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domctl.c:56,1
    - Dst: xmemdup::xmemdup
      Src: /src/xen/xen/arch/x86/domctl.c:61,1
    - Dst: x86_cpuid_copy_from_buffer
      Src: /src/xen/xen/arch/x86/domctl.c:65,1
    - Dst: xdpc::xdpc
      Src: /src/xen/xen/arch/x86/domctl.c:66,1
    - Dst: x86_msr_copy_from_buffer
      Src: /src/xen/xen/arch/x86/domctl.c:68,1
    - Dst: xdpc::xdpc
      Src: /src/xen/xen/arch/x86/domctl.c:69,1
    - Dst: x86_cpu_policies_are_compatible
      Src: /src/xen/xen/arch/x86/domctl.c:76,1
    - Dst: recalculate_cpuid_policy
      Src: /src/xen/xen/arch/x86/domctl.c:87,1
    - Dst: domain_cpu_policy_changed
      Src: /src/xen/xen/arch/x86/domctl.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - d
    - xdpc
    argTypes:
    - struct domain*
    - xen_domctl_cpu_policy_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 104
    functionName: update_domain_cpu_policy
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - domain_cpu_policy_changed
    - recalculate_cpuid_policy
    - x86_cpu_policies_are_compatible
    - xdpc::xdpc
    - IS_ENABLED
    - xmemdup::xmemdup
    - is_pv_domain
    - x86_cpuid_copy_from_buffer
    - x86_msr_copy_from_buffer
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int update_domain_cpu_policy(struct domain *d,\n                                    xen_domctl_cpu_policy_t
      *xdpc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VMCE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:119,1
    - Dst: VMCE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:120,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/domctl.c:126,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domctl.c:131,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:133,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:136,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domctl.c:139,1
    - Dst: vmce_restore_vcpu
      Src: /src/xen/xen/arch/x86/domctl.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - evc
    argTypes:
    - struct vcpu*
    - struct xen_domctl_ext_vcpucontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 142
    functionName: vcpu_set_vmce
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUILD_BUG_ON
    - min
    - vmce_restore_vcpu
    - VMCE_SIZE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int vcpu_set_vmce(struct vcpu *v,\n                         const
      struct xen_domctl_ext_vcpucontext *evc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: VMCE_SIZE
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCE_SIZE(field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/domctl.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: arch_get_domain_info
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - paging_mode_hap
    linkageType: ''
    returnType: void
    signature: "void arch_get_domain_info(const struct domain *d,\n                          struct
      xen_domctl_getdomaininfo *info)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domctl.c:164,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:164,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/domctl.c:166,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:170,1
    - Dst: hvm_vmtrace_control
      Src: /src/xen/xen/arch/x86/domctl.c:176,1
    - Dst: hvm_vmtrace_output_position
      Src: /src/xen/xen/arch/x86/domctl.c:182,1
    - Dst: hvm_vmtrace_get_option
      Src: /src/xen/xen/arch/x86/domctl.c:188,1
    - Dst: hvm_vmtrace_set_option
      Src: /src/xen/xen/arch/x86/domctl.c:192,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:199,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - struct xen_domctl_vmtrace_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 205
    functionName: do_vmtrace_op
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - vcpu_pause
    - domain_vcpu
    - hvm_vmtrace_output_position
    - hvm_vmtrace_get_option
    - vcpu_unpause
    - hvm_vmtrace_set_option
    - hvm_vmtrace_control
    - ASSERT
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int do_vmtrace_op(struct domain *d, struct xen_domctl_vmtrace_op *op,\n
      \                        XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 201
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:224,1
    - Dst: paging_domctl
      Src: /src/xen/xen/arch/x86/domctl.c:227,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/domctl.c:229,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/domctl.c:242,1
    - Dst: xsm_ioport_permission
      Src: /src/xen/xen/arch/x86/domctl.c:243,1
    - Dst: ioports_permit_access
      Src: /src/xen/xen/arch/x86/domctl.c:246,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/domctl.c:248,1
    - Dst: gsi_2_irq
      Src: /src/xen/xen/arch/x86/domctl.c:263,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/domctl.c:271,1
    - Dst: xsm_irq_permission
      Src: /src/xen/xen/arch/x86/domctl.c:272,1
    - Dst: irq_permit_access
      Src: /src/xen/xen/arch/x86/domctl.c:276,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/arch/x86/domctl.c:278,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/arch/x86/domctl.c:286,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:291,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:292,1
    - Dst: raw_copy_from_guest
      Src: /src/xen/xen/arch/x86/domctl.c:304,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/domctl.c:310,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:312,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:313,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/domctl.c:313,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:315,1
    - Dst: p2m_is_broken
      Src: /src/xen/xen/arch/x86/domctl.c:315,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domctl.c:348,1
    - Dst: __raw_copy_to_guest
      Src: /src/xen/xen/arch/x86/domctl.c:350,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/domctl.c:361,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/domctl.c:362,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/domctl.c:362,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/domctl.c:367,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/domctl.c:372,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/domctl.c:386,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/domctl.c:388,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/domctl.c:393,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/domctl.c:400,1
    - Dst: init_hypercall_page
      Src: /src/xen/xen/arch/x86/domctl.c:401,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/domctl.c:402,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/domctl.c:404,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:414,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/domctl.c:418,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/domctl.c:422,1
    - Dst: hvm_load
      Src: /src/xen/xen/arch/x86/domctl.c:425,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:429,1
    - Dst: hvm_load
      Src: /src/xen/xen/arch/x86/domctl.c:430,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:431,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:434,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:444,1
    - Dst: hvm_save_size
      Src: /src/xen/xen/arch/x86/domctl.c:447,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:449,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/domctl.c:464,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:467,1
    - Dst: hvm_save
      Src: /src/xen/xen/arch/x86/domctl.c:468,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:469,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/domctl.c:472,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:477,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:484,1
    - Dst: hvm_save_one
      Src: /src/xen/xen/arch/x86/domctl.c:487,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:497,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:499,1
    - Dst: switch_compat
      Src: /src/xen/xen/arch/x86/domctl.c:505,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domctl.c:510,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:514,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:516,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/domctl.c:519,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domctl.c:523,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/domctl.c:539,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/domctl.c:540,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:545,1
    - Dst: hvm_acpi_power_button
      Src: /src/xen/xen/arch/x86/domctl.c:548,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:554,1
    - Dst: hvm_acpi_sleep_button
      Src: /src/xen/xen/arch/x86/domctl.c:557,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:574,1
    - Dst: xsm_bind_pt_irq
      Src: /src/xen/xen/arch/x86/domctl.c:577,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/domctl.c:581,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/domctl.c:583,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/domctl.c:587,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/domctl.c:589,1
    - Dst: pt_irq_create_bind
      Src: /src/xen/xen/arch/x86/domctl.c:590,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/domctl.c:591,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:594,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/domctl.c:602,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:605,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/x86/domctl.c:609,1
    - Dst: xsm_unbind_pt_irq
      Src: /src/xen/xen/arch/x86/domctl.c:612,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/domctl.c:616,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/domctl.c:618,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/arch/x86/domctl.c:619,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/domctl.c:620,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:623,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:639,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:641,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:649,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/domctl.c:656,1
    - Dst: xsm_ioport_mapping
      Src: /src/xen/xen/arch/x86/domctl.c:659,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:666,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/domctl.c:670,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/domctl.c:680,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/x86/domctl.c:689,1
    - Dst: ioports_permit_access
      Src: /src/xen/xen/arch/x86/domctl.c:692,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/domctl.c:695,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:696,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:701,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/domctl.c:704,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/domctl.c:707,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:708,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/domctl.c:711,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/domctl.c:712,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:713,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:738,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:740,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:770,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:780,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domctl.c:782,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/domctl.c:783,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:785,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domctl.c:786,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/domctl.c:793,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:807,1
    - Dst: vcpu_set_vmce
      Src: /src/xen/xen/arch/x86/domctl.c:809,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:811,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:821,1
    - Dst: tsc_get_info
      Src: /src/xen/xen/arch/x86/domctl.c:822,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:826,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:836,1
    - Dst: tsc_set_info
      Src: /src/xen/xen/arch/x86/domctl.c:837,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:841,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:850,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:860,1
    - Dst: hvm_debug_op
      Src: /src/xen/xen/arch/x86/domctl.c:863,1
    - Dst: gdbsx_domctl
      Src: /src/xen/xen/arch/x86/domctl.c:871,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:900,1
    - Dst: PV_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:909,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:913,1
    - Dst: PV_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:914,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:919,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:925,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/domctl.c:936,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:941,1
    - Dst: expand_xsave_states
      Src: /src/xen/xen/arch/x86/domctl.c:945,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:947,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:950,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:953,1
    - Dst: PV_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:967,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/domctl.c:970,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:976,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:980,1
    - Dst: validate_xstate
      Src: /src/xen/xen/arch/x86/domctl.c:991,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:998,1
    - Dst: xsave_area_compressed
      Src: /src/xen/xen/arch/x86/domctl.c:1006,1
    - Dst: PV_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1008,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:1012,1
    - Dst: compress_xsave_states
      Src: /src/xen/xen/arch/x86/domctl.c:1017,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1020,1
    - Dst: hvmemul_cancel
      Src: /src/xen/xen/arch/x86/domctl.c:1021,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:1023,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/domctl.c:1026,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:1040,1
    - Dst: mem_sharing_domctl
      Src: /src/xen/xen/arch/x86/domctl.c:1043,1
    - Dst: audit_p2m
      Src: /src/xen/xen/arch/x86/domctl.c:1053,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1066,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:1069,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/domctl.c:1069,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/domctl.c:1069,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domctl.c:1070,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/domctl.c:1070,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/domctl.c:1073,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/domctl.c:1075,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1094,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1103,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:1111,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:1119,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1121,1
    - Dst: guest_rdmsr
      Src: /src/xen/xen/arch/x86/domctl.c:1124,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/domctl.c:1137,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:1149,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:1155,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/domctl.c:1168,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/domctl.c:1173,1
    - Dst: guest_wrmsr
      Src: /src/xen/xen/arch/x86/domctl.c:1188,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:1190,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/domctl.c:1197,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:1202,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/domctl.c:1216,1
    - Dst: psr_alloc_rmid
      Src: /src/xen/xen/arch/x86/domctl.c:1225,1
    - Dst: psr_free_rmid
      Src: /src/xen/xen/arch/x86/domctl.c:1230,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/domctl.c:1248,1
    - Dst: psr_set_val
      Src: /src/xen/xen/arch/x86/domctl.c:1254,1
    - Dst: psr_set_val
      Src: /src/xen/xen/arch/x86/domctl.c:1260,1
    - Dst: psr_set_val
      Src: /src/xen/xen/arch/x86/domctl.c:1266,1
    - Dst: psr_set_val
      Src: /src/xen/xen/arch/x86/domctl.c:1272,1
    - Dst: psr_set_val
      Src: /src/xen/xen/arch/x86/domctl.c:1278,1
    - Dst: domctl_psr_get_val
      Src: /src/xen/xen/arch/x86/domctl.c:1294,1
    - Dst: domctl_psr_get_val
      Src: /src/xen/xen/arch/x86/domctl.c:1298,1
    - Dst: domctl_psr_get_val
      Src: /src/xen/xen/arch/x86/domctl.c:1302,1
    - Dst: domctl_psr_get_val
      Src: /src/xen/xen/arch/x86/domctl.c:1306,1
    - Dst: domctl_psr_get_val
      Src: /src/xen/xen/arch/x86/domctl.c:1310,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:1324,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/xen/arch/x86/domctl.c:1326,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:1333,1
    - Dst: x86_msr_copy_to_buffer
      Src: /src/xen/xen/arch/x86/domctl.c:1335,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/domctl.c:1351,1
    - Dst: update_domain_cpu_policy
      Src: /src/xen/xen/arch/x86/domctl.c:1357,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/domctl.c:1362,1
    - Dst: do_vmtrace_op
      Src: /src/xen/xen/arch/x86/domctl.c:1366,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/domctl.c:1376,1
    CyclomaticComplexity: 307
    EdgeCount: 307
    ICount: 716
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 1380
    functionName: arch_do_domctl
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - put_page_and_type
    - likely
    - IS_ENABLED
    - copy_to_guest_offset
    - xfree
    - hvm_acpi_sleep_button
    - pt_irq_create_bind
    - tsc_get_info
    - is_pv_32bit_domain
    - irq_deny_access
    - get_page_type
    - printk
    - is_canonical_address
    - get_page_from_gfn
    - xmalloc_bytes
    - compress_xsave_states
    - list_for_each_entry
    - guest_wrmsr
    - hvm_acpi_power_button
    - guest_rdmsr
    - pcidevs_unlock
    - hvm_load
    - unlikely
    - switch_compat
    - xsm_unbind_pt_irq
    - domctl_psr_get_val
    - copy_from_guest
    - init_hypercall_page
    - tsc_set_info
    - PV_XSAVE_SIZE
    - paging_domctl
    - mem_sharing_domctl
    - gdbsx_domctl
    - xsm_ioport_mapping
    - hypercall_create_continuation
    - list_del
    - is_hardware_domain
    - is_iommu_enabled
    - domain_unpause
    - pcidevs_lock
    - ioports_deny_access
    - is_special_page
    - vcpu_unpause
    - x86_cpuid_copy_to_buffer
    - hvm_save
    - xsm_irq_permission
    - ASSERT_UNREACHABLE
    - do_vmtrace_op
    - expand_xsave_states
    - ioports_access_permitted
    - hvmemul_cancel
    - hvm_save_size
    - is_pv_domain
    - copy_from_guest_offset
    - put_page
    - __raw_copy_to_guest
    - get_gfn_query
    - psr_free_rmid
    - pt_irq_destroy_bind
    - update_domain_cpu_policy
    - audit_p2m
    - raw_copy_from_guest
    - guest_handle_is_null
    - validate_xstate
    - psr_alloc_rmid
    - p2m_change_type_one
    - gsi_2_irq
    - xsave_area_compressed
    - psr_cmt_enabled
    - vcpu_kick
    - has_32bit_shinfo
    - fixup_guest_code_selector
    - unmap_domain_page
    - vcpu_pause
    - hvm_save_one
    - p2m_is_ram
    - paging_mode_translate
    - list_add_tail
    - xmalloc
    - test_and_set_bool
    - hvm_debug_op
    - vcpu_set_vmce
    - xsm_ioport_permission
    - is_hvm_domain
    - ARRAY_SIZE
    - put_gfn
    - mfn_valid
    - copy_to_guest
    - ioports_permit_access
    - x86_msr_copy_to_buffer
    - hypercall_preempt_check
    - __map_domain_page
    - psr_set_val
    - domain_pause
    - p2m_is_broken
    - irq_access_permitted
    - irq_permit_access
    - xsm_bind_pt_irq
    - __copy_to_guest
    linkageType: ''
    returnType: long
    signature: "long arch_do_domctl(\n    struct xen_domctl *domctl, struct domain
      *d,\n    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xcr0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 883
    functionName: PV_XSAVE_SIZE
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PV_XSAVE_SIZE(xcr0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - domctl
    - ','
    - type
    - ','
    - copyback
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1292
    functionName: domctl_psr_get_val
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domctl_psr_get_val(d, domctl, type, copyback)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1395,1
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/domctl.c:1403,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domctl.c:1404,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domctl.c:1405,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/domctl.c:1406,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1408,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1409,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1411,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1413,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1415,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1436,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/domctl.c:1437,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1461,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1463,1
    - Dst: XLAT_trap_info
      Src: /src/xen/xen/arch/x86/domctl.c:1464,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1470,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1471,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1472,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1473,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1474,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/domctl.c:1476,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1485,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1487,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1489,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1491,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1493,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/domctl.c:1496,1
    - Dst: hvm_get_reg
      Src: /src/xen/xen/arch/x86/domctl.c:1499,1
    - Dst: ring_0
      Src: /src/xen/xen/arch/x86/domctl.c:1501,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1514,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1515,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1516,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1517,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domctl.c:1519,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1519,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1520,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1522,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1523,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1524,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1525,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1526,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/domctl.c:1527,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1528,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1529,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1530,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1540,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1541,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/domctl.c:1545,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1545,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1546,1
    - Dst: xen_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domctl.c:1550,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/domctl.c:1551,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/domctl.c:1553,1
    - Dst: xen_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domctl.c:1554,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/domctl.c:1554,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/domctl.c:1560,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/domctl.c:1560,1
    - Dst: compat_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/domctl.c:1562,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/domctl.c:1562,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/domctl.c:1563,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/domctl.c:1567,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1568,1
    - Dst: c
      Src: /src/xen/xen/arch/x86/domctl.c:1571,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 117
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1573
    functionName: arch_get_info_guest
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 0
    functionsReached:
    - compat_pfn_to_cr3
    - xen_pfn_to_cr3
    - pagetable_get_mfn
    - hvm_get_reg
    - BUILD_BUG_ON
    - guest_kernel_mode
    - XLAT_trap_info
    - VCPU_UNMAP_XSAVE_AREA
    - is_hvm_domain
    - is_pv_32bit_domain
    - map_domain_page
    - ARRAY_SIZE
    - pagetable_is_null
    - BUG_ON
    - VCPU_MAP_XSAVE_AREA
    - l4e_get_pfn
    - c
    - hvm_get_segment_register
    - unmap_domain_page
    - is_pv_domain
    - ring_0
    - pagetable_get_pfn
    - memcpy
    linkageType: ''
    returnType: void
    signature: void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1399
    functionName: c
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 886
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c(fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1401
    functionName: c
    functionSourceFile: /src/xen/xen/arch/x86/domctl.c
    functionUses: 886
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: c(fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: alloc_bootmem
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloc_bootmem(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: dmi_eps
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed dmi_eps
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: smbios_eps
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed smbios_eps
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: smbios3_eps
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed smbios3_eps
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: dmi_printk
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmi_printk(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/dmi_scan.c:113,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/dmi_scan.c:113,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/dmi_scan.c:114,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/dmi_scan.c:117,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/dmi_scan.c:118,1
    - Dst: __acpi_map_table
      Src: /src/xen/xen/arch/x86/dmi_scan.c:121,1
    - Dst: __vmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:123,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/dmi_scan.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - addr
    - len
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: bt_ioremap
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - MB
    - __va
    - PFN_UP
    - _mfn
    - PAGE_OFFSET
    - __acpi_map_table
    - PFN_DOWN
    - __vmap
    linkageType: ''
    returnType: void
    signature: void *__init bt_ioremap(paddr_t addr, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vunmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: bt_iounmap
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - vunmap
    linkageType: ''
    returnType: void
    signature: void bt_iounmap(const void *ptr, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/dmi_scan.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dm
    - s
    argTypes:
    - struct dmi_header*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: dmi_string
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *__init dmi_string(const struct dmi_header *dm, uint8_t s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bt_ioremap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:165,1
    - Dst: decode
      Src: /src/xen/xen/arch/x86/dmi_scan.c:189,1
    - Dst: bt_iounmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - base
    - len
    - num
    argTypes:
    - paddr_t
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 205
    functionName: dmi_table
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - decode
    - bt_ioremap
    - bt_iounmap
    linkageType: ''
    returnType: int
    signature: "int dmi_table(paddr_t base, u32 len, int num,\n\t\t\t    void (*decode)(const
      struct dmi_header *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: dmi_checksum
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool dmi_checksum(const void __iomem *buf,\n                                       unsigned
      int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:236,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:238,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:244,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:246,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:250,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:251,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 2
    argNames:
    - smbios
    - smbios3
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 256
    functionName: dmi_efi_get_table
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - dmi_checksum
    - memcmp
    linkageType: ''
    returnType: void
    signature: void dmi_efi_get_table(const void *smbios, const void *smbios3)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/dmi_scan.c:262,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/dmi_scan.c:282,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:289,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:291,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:292,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/dmi_scan.c:299,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:303,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:305,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:308,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - base
    - len
    argTypes:
    - paddr_t*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 317
    functionName: dmi_get_table
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - memcmp
    - efi_enabled
    - BUILD_BUG_ON
    - memcpy_fromio
    - dmi_checksum
    - maddr_to_virt
    linkageType: ''
    returnType: char
    signature: char *__init dmi_get_table(paddr_t *base, u32 *len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:336,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:338,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:349,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:352,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:353,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:355,1
    - Dst: dmi_table
      Src: /src/xen/xen/arch/x86/dmi_scan.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - dmi
    - smbios
    argTypes:
    - struct dmi_eps*
    - smbios_eps_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 358
    functionName: _dmi_iterate
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - dmi_table
    - printk
    - dmi_printk
    linkageType: ''
    returnType: int
    signature: "int _dmi_iterate(const struct dmi_eps *dmi,\n\t\t\t       const smbios_eps_u
      smbios,\n\t\t\t       void (*decode)(const struct dmi_header *))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/dmi_scan.c:369,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:372,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:373,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:374,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:379,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:380,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:383,1
    - Dst: _dmi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:389,1
    - Dst: _dmi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: dmi_iterate
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 1
    functionsReached:
    - _dmi_iterate
    - memcmp
    - memcpy_fromio
    - dmi_checksum
    - maddr_to_virt
    linkageType: ''
    returnType: int
    signature: int dmi_iterate(void (*decode)(const struct dmi_header *))
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bt_ioremap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:403,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:406,1
    - Dst: bt_iounmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:407,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:409,1
    - Dst: bt_ioremap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:413,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:416,1
    - Dst: _dmi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:417,1
    - Dst: bt_iounmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:418,1
    - Dst: bt_ioremap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:426,1
    - Dst: memcpy_fromio
      Src: /src/xen/xen/arch/x86/dmi_scan.c:429,1
    - Dst: bt_iounmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:430,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:432,1
    - Dst: bt_ioremap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:436,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:439,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/dmi_scan.c:440,1
    - Dst: dmi_checksum
      Src: /src/xen/xen/arch/x86/dmi_scan.c:441,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:442,1
    - Dst: _dmi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:444,1
    - Dst: bt_iounmap
      Src: /src/xen/xen/arch/x86/dmi_scan.c:446,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 450
    functionName: dmi_efi_iterate
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - _dmi_iterate
    - memcmp
    - bt_iounmap
    - memcpy_fromio
    - printk
    - bt_ioremap
    - dmi_checksum
    linkageType: ''
    returnType: int
    signature: int dmi_efi_iterate(void (*decode)(const struct dmi_header *))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:461,1
    - Dst: alloc_bootmem
      Src: /src/xen/xen/arch/x86/dmi_scan.c:467,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/dmi_scan.c:467,1
    - Dst: strlcpy
      Src: /src/xen/xen/arch/x86/dmi_scan.c:469,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/dmi_scan.c:469,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - dm
    - slot
    - string
    argTypes:
    - struct dmi_header*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 472
    functionName: dmi_save_ident
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - strlen
    - printk
    - dmi_string
    - alloc_bootmem
    linkageType: ''
    returnType: void
    signature: void dmi_save_ident(const struct dmi_header *dm, int slot, int string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/dmi_scan.c:485,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/dmi_scan.c:485,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/dmi_scan.c:488,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/dmi_scan.c:488,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/dmi_scan.c:493,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/dmi_scan.c:493,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/dmi_scan.c:494,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/dmi_scan.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dmi_system_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 502
    functionName: ich10_bios_quirk
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - inl
    - pci_conf_read16
    - PCI_SBDF
    - outl
    linkageType: ''
    returnType: int
    signature: int ich10_bios_quirk(const struct dmi_system_id *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:507,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/dmi_scan.c:508,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dmi_blacklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: dmi_disable_acpi
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - disable_acpi
    - printk
    linkageType: ''
    returnType: __init
    signature: __init dmi_disable_acpi(const struct dmi_blacklist *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:522,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/dmi_scan.c:523,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dmi_blacklist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: force_acpi_ht
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - disable_acpi
    - printk
    linkageType: ''
    returnType: __init
    signature: __init force_acpi_ht(const struct dmi_blacklist *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:652,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:653,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:654,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:655,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:656,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:657,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:658,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:659,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:660,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:663,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:664,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:665,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:666,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:667,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:668,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:669,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:670,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:671,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:672,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:673,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:676,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:677,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:678,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:679,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:680,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:681,1
    - Dst: dmi_printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:682,1
    - Dst: dmi_string
      Src: /src/xen/xen/arch/x86/dmi_scan.c:683,1
    - Dst: dmi_save_ident
      Src: /src/xen/xen/arch/x86/dmi_scan.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - dm
    argTypes:
    - struct dmi_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 687
    functionName: dmi_decode
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - dmi_string
    - dmi_save_ident
    - dmi_printk
    linkageType: ''
    returnType: void
    signature: void dmi_decode(const struct dmi_header *dm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/dmi_scan.c:691,1
    - Dst: dmi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:691,1
    - Dst: dmi_efi_iterate
      Src: /src/xen/xen/arch/x86/dmi_scan.c:692,1
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/dmi_scan.c:693,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dmi_scan.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 696
    functionName: dmi_scan_machine
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - dmi_check_system
    - dmi_iterate
    - efi_enabled
    - printk
    - dmi_efi_iterate
    linkageType: ''
    returnType: void
    signature: void dmi_scan_machine(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/dmi_scan.c:713,1
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/dmi_scan.c:717,1
    - Dst: struct dmi_system_id*::callback
      Src: /src/xen/xen/arch/x86/dmi_scan.c:722,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct dmi_system_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 729
    functionName: dmi_check_system
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 2
    functionsReached:
    - struct dmi_system_id*::callback
    - strstr
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int dmi_check_system(const struct dmi_system_id *list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/xen/arch/x86/dmi_scan.c:766,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dmi_scan.c:771,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dmi_scan.c:781,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dmi_scan.c:788,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 38
    argCount: 4
    argNames:
    - field
    - yearp
    - monthp
    - dayp
    argTypes:
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 799
    functionName: dmi_get_date
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - strrchr
    - simple_strtoul
    linkageType: ''
    returnType: bool
    signature: bool dmi_get_date(int field, int *yearp, int *monthp, int *dayp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/dmi_scan.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: dmi_end_boot
    functionSourceFile: /src/xen/xen/arch/x86/dmi_scan.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void dmi_end_boot(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/msi.c:54,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/msi.c:56,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/msi.c:61,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/msi.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 66
    functionName: msix_fixmap_alloc
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - test_bit
    - spin_unlock
    - set_bit
    linkageType: ''
    returnType: int
    signature: int msix_fixmap_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/msi.c:70,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/msi.c:72,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/msi.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: msix_fixmap_free
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void msix_fixmap_free(int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/msi.c:87,1
    - Dst: msix_fixmap_alloc
      Src: /src/xen/xen/arch/x86/msi.c:90,1
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/msi.c:96,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/msi.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - msix
    - table_paddr
    - entry_paddr
    argTypes:
    - struct arch_msix*
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: msix_get_fixmap
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - set_fixmap_nocache
    - spin_lock
    - spin_unlock
    - msix_fixmap_alloc
    linkageType: ''
    returnType: int
    signature: "int msix_get_fixmap(struct arch_msix *msix, u64 table_paddr,\n                           u64
      entry_paddr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/msi.c:111,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:122,1
    - Dst: msix_fixmap_free
      Src: /src/xen/xen/arch/x86/msi.c:123,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/msi.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - msix
    - idx
    argTypes:
    - struct arch_msix*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 129
    functionName: msix_put_fixmap
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - msix_fixmap_free
    - spin_lock
    - clear_fixmap
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void msix_put_fixmap(struct arch_msix *msix, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: memory_decoded
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    linkageType: ''
    returnType: bool
    signature: bool memory_decoded(const struct pci_dev *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:146,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:146,1
    - Dst: memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dev
    - pos
    argTypes:
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: msix_memory_decoded
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - memory_decoded
    - msix_control_reg
    linkageType: ''
    returnType: bool
    signature: bool msix_memory_decoded(const struct pci_dev *dev, unsigned int pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/msi.c:159,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/msi.c:166,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/msi.c:168,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/msi.c:171,1
    - Dst: cpu_mask_to_apicid
      Src: /src/xen/xen/arch/x86/msi.c:172,1
    - Dst: MSI_ADDR_DEST_ID
      Src: /src/xen/xen/arch/x86/msi.c:179,1
    - Dst: MSI_DATA_VECTOR
      Src: /src/xen/xen/arch/x86/msi.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - vector
    - cpu_mask
    - msg
    argTypes:
    - unsigned
    - cpumask_t*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: msi_compose_msg
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - MSI_ADDR_DEST_ID
    - cpu_mask_to_apicid
    - this_cpu
    - memset
    - cpumask_and
    - MSI_DATA_VECTOR
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void msi_compose_msg(unsigned vector, const cpumask_t *cpu_mask, struct
      msi_msg *msg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:192,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:205,1
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/msi.c:206,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:219,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/msi.c:223,1
    - Dst: msi_lower_address_reg
      Src: /src/xen/xen/arch/x86/msi.c:223,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/msi.c:226,1
    - Dst: msi_upper_address_reg
      Src: /src/xen/xen/arch/x86/msi.c:226,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:228,1
    - Dst: msi_data_reg
      Src: /src/xen/xen/arch/x86/msi.c:228,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:236,1
    - Dst: msix_memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:236,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:239,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:241,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:243,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/msi.c:247,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - entry
    - msg
    - force
    argTypes:
    - struct msi_desc*
    - struct msi_msg*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 251
    functionName: write_msi_msg
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - writel
    - BUG
    - msi_lower_address_reg
    - iommu_update_ire_from_msi
    - ASSERT
    - msi_data_reg
    - unlikely
    - msix_memory_decoded
    - pci_conf_write16
    - msi_upper_address_reg
    - pci_conf_write32
    linkageType: ''
    returnType: int
    signature: "int write_msi_msg(struct msi_desc *entry, struct msi_msg *msg,\n                         bool
      force)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_desc_affinity
      Src: /src/xen/xen/arch/x86/msi.c:259,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:263,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/msi.c:263,1
    - Dst: MSI_DATA_VECTOR
      Src: /src/xen/xen/arch/x86/msi.c:267,1
    - Dst: MSI_ADDR_DEST_ID
      Src: /src/xen/xen/arch/x86/msi.c:269,1
    - Dst: write_msi_msg
      Src: /src/xen/xen/arch/x86/msi.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 273
    functionName: set_msi_affinity
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - write_msi_msg
    - spin_is_locked
    - ASSERT
    - set_desc_affinity
    - MSI_ADDR_DEST_ID
    - MSI_DATA_VECTOR
    linkageType: ''
    returnType: void
    signature: void set_msi_affinity(struct irq_desc *desc, const cpumask_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:277,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sbdf
    - pos
    - enable
    argTypes:
    - pci_sbdf_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: __msi_set_enable
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - pci_conf_write16
    linkageType: ''
    returnType: void
    signature: void __msi_set_enable(pci_sbdf_t sbdf, int pos, int enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dev
    - enable
    argTypes:
    - struct pci_dev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: msi_set_enable
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - __msi_set_enable
    linkageType: ''
    returnType: void
    signature: void msi_set_enable(struct pci_dev *dev, int enable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:300,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:300,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:304,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dev
    - enable
    argTypes:
    - struct pci_dev*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 306
    functionName: msix_set_enable
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - pci_conf_write16
    - msix_control_reg
    linkageType: ''
    returnType: void
    signature: void msix_set_enable(struct pci_dev *dev, int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: msi_maskable_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int msi_maskable_irq(const struct msi_desc *entry)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:322,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/msi.c:322,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:323,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:332,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/msi.c:335,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:340,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:341,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:342,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:345,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:346,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/msi.c:350,1
    - Dst: memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:350,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:352,1
    - Dst: readl
      Src: /src/xen/xen/arch/x86/msi.c:353,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/msi.c:355,1
    - Dst: MSIX_CHECK_WARN
      Src: /src/xen/xen/arch/x86/msi.c:368,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:369,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:376,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:377,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - desc
    - host
    - guest
    argTypes:
    - struct irq_desc*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 386
    functionName: msi_set_mask_bit
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - writel
    - MSIX_CHECK_WARN
    - spin_is_locked
    - memory_decoded
    - likely
    - msix_control_reg
    - BUG_ON
    - ASSERT
    - pci_conf_read32
    - readl
    - printk
    - unlikely
    - pci_conf_write16
    - pci_conf_write32
    linkageType: ''
    returnType: bool
    signature: bool msi_set_mask_bit(struct irq_desc *desc, bool host, bool guest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:398,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:401,1
    - Dst: msix_memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:401,1
    - Dst: readl
      Src: /src/xen/xen/arch/x86/msi.c:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 407
    functionName: msi_get_mask_bit
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - msix_memory_decoded
    - pci_conf_read32
    - readl
    - unlikely
    linkageType: ''
    returnType: int
    signature: int msi_get_mask_bit(const struct msi_desc *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:411,1
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:411,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: mask_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - msi_set_mask_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void mask_msi_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:418,1
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:418,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: unmask_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - WARN
    - msi_set_mask_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void unmask_msi_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: guest_mask_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - msi_set_mask_bit
    linkageType: ''
    returnType: void
    signature: void guest_mask_msi_irq(struct irq_desc *desc, bool mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:430,1
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:430,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: startup_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - WARN
    - msi_set_mask_bit
    - unlikely
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int startup_msi_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:437,1
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:437,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: shutdown_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - msi_set_mask_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void shutdown_msi_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_complete_move
      Src: /src/xen/xen/arch/x86/msi.c:443,1
    - Dst: move_native_irq
      Src: /src/xen/xen/arch/x86/msi.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: ack_nonmaskable_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - move_native_irq
    - irq_complete_move
    linkageType: ''
    returnType: void
    signature: void ack_nonmaskable_msi_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_nonmaskable_msi_irq
      Src: /src/xen/xen/arch/x86/msi.c:449,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/msi.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: ack_maskable_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - ack_nonmaskable_msi_irq
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void ack_maskable_msi_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/msi.c:483,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/msi.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 498
    functionName: alloc_msi_entry
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: struct msi_desc
    signature: struct msi_desc *alloc_msi_entry(unsigned int nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:503,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:509,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:511,1
    - Dst: __setup_msi_irq
      Src: /src/xen/xen/arch/x86/msi.c:516,1
    - Dst: msi_maskable_irq
      Src: /src/xen/xen/arch/x86/msi.c:517,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - desc
    - msidesc
    argTypes:
    - struct irq_desc*
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 524
    functionName: setup_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 5
    functionsReached:
    - pci_conf_read16
    - __setup_msi_irq
    - msi_maskable_irq
    - msix_control_reg
    - pci_conf_write16
    linkageType: ''
    returnType: int
    signature: int setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msi_compose_msg
      Src: /src/xen/xen/arch/x86/msi.c:534,1
    - Dst: write_msi_msg
      Src: /src/xen/xen/arch/x86/msi.c:535,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - desc
    - msidesc
    - handler
    argTypes:
    - struct irq_desc*
    - struct msi_desc*
    - hw_irq_controller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: __setup_msi_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - msi_compose_msg
    - unlikely
    - write_msi_msg
    linkageType: ''
    returnType: int
    signature: "int __setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc,\n
      \                   hw_irq_controller *handler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: destroy_irq
      Src: /src/xen/xen/arch/x86/msi.c:553,1
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/msi.c:557,1
    - Dst: msix_put_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:561,1
    - Dst: virt_to_fix
      Src: /src/xen/xen/arch/x86/msi.c:562,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/msi.c:564,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/msi.c:565,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 567
    functionName: msi_free_irq
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 2
    functionsReached:
    - msix_put_fixmap
    - destroy_irq
    - iommu_update_ire_from_msi
    - list_del
    - xfree
    - virt_to_fix
    linkageType: ''
    returnType: int
    signature: int msi_free_irq(struct msi_desc *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/msi.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dev
    - irq
    - cap_id
    argTypes:
    - struct pci_dev*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: find_msi_entry
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct msi_desc
    signature: "struct msi_desc *find_msi_entry(struct pci_dev *dev,\n                                       int
      irq, int cap_id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/msi.c:603,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:607,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:607,1
    - Dst: multi_msi_enable
      Src: /src/xen/xen/arch/x86/msi.c:611,1
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:614,1
    - Dst: alloc_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:616,1
    - Dst: msi_mask_bits_reg
      Src: /src/xen/xen/arch/x86/msi.c:620,1
    - Dst: is_64bit_address
      Src: /src/xen/xen/arch/x86/msi.c:620,1
    - Dst: is_64bit_address
      Src: /src/xen/xen/arch/x86/msi.c:624,1
    - Dst: is_mask_bit_support
      Src: /src/xen/xen/arch/x86/msi.c:627,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:642,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/msi.c:644,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/x86/msi.c:646,1
    - Dst: pci_intx
      Src: /src/xen/xen/arch/x86/msi.c:657,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:660,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:660,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 4
    argNames:
    - dev
    - irq
    - desc
    - nvec
    argTypes:
    - struct pci_dev*
    - int
    - struct msi_desc**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 663
    functionName: msi_capability_init
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - pci_conf_read16
    - msi_mask_bits_reg
    - list_add_tail
    - msi_set_enable
    - msi_control_reg
    - alloc_msi_entry
    - is_64bit_address
    - pci_conf_read32
    - pci_intx
    - multi_msi_enable
    - pci_conf_write16
    - is_mask_bit_support
    - pci_conf_write32
    linkageType: ''
    returnType: int
    signature: "int msi_capability_init(struct pci_dev *dev,\n                               int
      irq,\n                               struct msi_desc **desc,\n                               unsigned
      int nvec)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/arch/x86/msi.c:679,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:680,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:681,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:682,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:683,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/arch/x86/msi.c:693,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:704,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/msi.c:704,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/arch/x86/msi.c:708,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/msi.c:708,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:726,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/msi.c:726,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:735,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/msi.c:735,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 3
    argNames:
    - pdev
    - bir
    - vf
    argTypes:
    - struct pci_dev*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 739
    functionName: read_pci_mem_bar
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ARRAY_SIZE
    - PCI_SBDF
    - PCI_BDF
    - BUILD_BUG_ON
    - pci_conf_read32
    - pci_find_ext_capability
    - pci_conf_read8
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t read_pci_mem_bar(const struct pci_dev *pdev, uint8_t bir,\n
      \                                int vf)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/msi.c:766,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:768,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:768,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:776,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:776,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:780,1
    - Dst: memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:780,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:782,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:782,1
    - Dst: alloc_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:789,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:792,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:792,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:796,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:800,1
    - Dst: msix_table_offset_reg
      Src: /src/xen/xen/arch/x86/msi.c:800,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msi.c:803,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:815,1
    - Dst: read_pci_mem_bar
      Src: /src/xen/xen/arch/x86/msi.c:819,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/msi.c:820,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:825,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:825,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/msi.c:827,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/msi.c:834,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/msi.c:835,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/msi.c:837,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/msi.c:837,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/msi.c:840,1
    - Dst: msix_pba_offset_reg
      Src: /src/xen/xen/arch/x86/msi.c:840,1
    - Dst: read_pci_mem_bar
      Src: /src/xen/xen/arch/x86/msi.c:842,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/msi.c:843,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/msi.c:846,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/msi.c:847,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/msi.c:848,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/msi.c:849,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/msi.c:849,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:856,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:856,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/msi.c:857,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/msi.c:862,1
    - Dst: msix_get_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:868,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:881,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:881,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/msi.c:882,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/msi.c:885,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:888,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/x86/msi.c:901,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/msi.c:910,1
    - Dst: msix_get_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:912,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/msi.c:917,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/msi.c:923,1
    - Dst: msix_get_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:927,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/msi.c:932,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/msi.c:944,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:946,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/msi.c:947,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:949,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msi.c:956,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:957,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msi.c:958,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msi.c:962,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msi.c:964,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/msi.c:964,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/msi.c:965,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/msi.c:969,1
    - Dst: pci_intx
      Src: /src/xen/xen/arch/x86/msi.c:980,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:986,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:986,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 120
    argCount: 3
    argNames:
    - dev
    - msi
    - desc
    argTypes:
    - struct pci_dev*
    - struct msi_info*
    - struct msi_desc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 989
    functionName: msix_capability_init
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - writel
    - alloc_msi_entry
    - pci_conf_read32
    - gprintk
    - pci_intx
    - BITS_TO_LONGS
    - PFN_DOWN
    - pci_conf_write16
    - xfree
    - msix_table_offset_reg
    - read_pci_mem_bar
    - rangeset_overlaps_range
    - printk
    - domain_crash
    - WARN_ON
    - is_hardware_domain
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - pci_conf_read16
    - msix_pba_offset_reg
    - fix_to_virt
    - msix_control_reg
    - ASSERT
    - rangeset_add_range
    - msix_get_fixmap
    - domain_tot_pages
    - WARN
    - PAGE_OFFSET
    - unlikely
    - memory_decoded
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: "int msix_capability_init(struct pci_dev *dev,\n                                struct
      msi_info *msi,\n                                struct msi_desc **desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/msi.c:1010,1
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1012,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1015,1
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1020,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1023,1
    - Dst: __pci_disable_msix
      Src: /src/xen/xen/arch/x86/msi.c:1024,1
    - Dst: msi_capability_init
      Src: /src/xen/xen/arch/x86/msi.c:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - pdev
    - msi
    - desc
    argTypes:
    - struct pci_dev*
    - struct msi_info*
    - struct msi_desc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1002
    functionDepth: 4
    functionLinenumber: 1002
    functionLinenumberEnd: 1028
    functionName: __pci_enable_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - printk
    - find_msi_entry
    - msi_capability_init
    - __pci_disable_msix
    linkageType: ''
    returnType: int
    signature: "int __pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,\n
      \                           struct msi_desc **desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1035,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/msi.c:1036,1
    - Dst: pci_intx
      Src: /src/xen/xen/arch/x86/msi.c:1037,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:1039,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/msi.c:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1040
    functionName: __pci_disable_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - msi_set_enable
    - BUG_ON
    - pci_intx
    - list_empty
    linkageType: ''
    returnType: void
    signature: void __pci_disable_msi(struct msi_desc *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/msi.c:1065,1
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1073,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1076,1
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1081,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1084,1
    - Dst: __pci_disable_msi
      Src: /src/xen/xen/arch/x86/msi.c:1085,1
    - Dst: msix_capability_init
      Src: /src/xen/xen/arch/x86/msi.c:1088,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pdev
    - msi
    - desc
    argTypes:
    - struct pci_dev*
    - struct msi_info*
    - struct msi_desc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1057
    functionDepth: 4
    functionLinenumber: 1057
    functionLinenumberEnd: 1089
    functionName: __pci_enable_msix
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - msix_capability_init
    - __pci_disable_msi
    - printk
    - find_msi_entry
    linkageType: ''
    returnType: int
    signature: "int __pci_enable_msix(struct pci_dev *pdev, struct msi_info *msi,\n
      \                            struct msi_desc **desc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/msi.c:1095,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:1097,1
    - Dst: msix_put_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:1103,1
    - Dst: msix_put_fixmap
      Src: /src/xen/xen/arch/x86/msi.c:1108,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/msi.c:1112,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/msi.c:1114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - msix
    argTypes:
    - struct arch_msix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1118
    functionName: _pci_cleanup_msix
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - WARN
    - msix_put_fixmap
    - rangeset_remove_range
    linkageType: ''
    returnType: void
    signature: void _pci_cleanup_msix(struct arch_msix *msix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:1124,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1125,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1128,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:1130,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1133,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1133,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/msi.c:1138,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/msi.c:1138,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/msi.c:1140,1
    - Dst: memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:1140,1
    - Dst: writel
      Src: /src/xen/xen/arch/x86/msi.c:1141,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1144,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1151,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1151,1
    - Dst: _pci_cleanup_msix
      Src: /src/xen/xen/arch/x86/msi.c:1153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1154
    functionName: __pci_disable_msix
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - writel
    - memory_decoded
    - likely
    - msix_control_reg
    - _pci_cleanup_msix
    - BUG_ON
    - ASSERT
    - printk
    - unlikely
    - pci_conf_write16
    - list_empty
    linkageType: ''
    returnType: void
    signature: void __pci_disable_msix(struct msi_desc *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/msi.c:1164,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/arch/x86/msi.c:1165,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/msi.c:1165,1
    - Dst: _pci_cleanup_msix
      Src: /src/xen/xen/arch/x86/msi.c:1172,1
    - Dst: msix_capability_init
      Src: /src/xen/xen/arch/x86/msi.c:1176,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/msi.c:1177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - seg
    - bus
    - devfn
    - 'off'
    argTypes:
    - u16
    - u8
    - u8
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1156
    functionDepth: 3
    functionLinenumber: 1156
    functionLinenumberEnd: 1180
    functionName: pci_prepare_msix
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - PCI_SBDF
    - msix_capability_init
    - _pci_cleanup_msix
    - pcidevs_unlock
    - pci_get_pdev
    linkageType: ''
    returnType: int
    signature: int pci_prepare_msix(u16 seg, u8 bus, u8 devfn, bool off)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/msi.c:1192,1
    - Dst: __pci_enable_msix
      Src: /src/xen/xen/arch/x86/msi.c:1197,1
    - Dst: __pci_enable_msi
      Src: /src/xen/xen/arch/x86/msi.c:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pdev
    - msi
    - desc
    argTypes:
    - struct pci_dev*
    - struct msi_info*
    - struct msi_desc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1199
    functionName: pci_enable_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 2
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - __pci_enable_msi
    - __pci_enable_msix
    linkageType: ''
    returnType: int
    signature: "int pci_enable_msi(struct pci_dev *pdev, struct msi_info *msi,\n                   struct
      msi_desc **desc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __pci_disable_msi
      Src: /src/xen/xen/arch/x86/msi.c:1207,1
    - Dst: __pci_disable_msix
      Src: /src/xen/xen/arch/x86/msi.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - msi_desc
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1204
    functionDepth: 4
    functionLinenumber: 1204
    functionLinenumberEnd: 1210
    functionName: pci_disable_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 4
    functionsReached:
    - __pci_disable_msix
    - __pci_disable_msi
    linkageType: ''
    returnType: void
    signature: void pci_disable_msi(struct msi_desc *msi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/msi.c:1216,1
    - Dst: pci_disable_msi
      Src: /src/xen/xen/arch/x86/msi.c:1218,1
    - Dst: msi_free_irq
      Src: /src/xen/xen/arch/x86/msi.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1212
    functionDepth: 6
    functionLinenumber: 1212
    functionLinenumberEnd: 1221
    functionName: msi_free_irqs
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - msi_free_irq
    - pci_disable_msi
    - list_for_each_entry_safe
    linkageType: ''
    returnType: void
    signature: void msi_free_irqs(struct pci_dev* dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1226,1
    - Dst: msix_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1227,1
    - Dst: msi_free_irqs
      Src: /src/xen/xen/arch/x86/msi.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1223
    functionDepth: 7
    functionLinenumber: 1223
    functionLinenumberEnd: 1229
    functionName: pci_cleanup_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - msi_free_irqs
    - msix_set_enable
    - msi_set_enable
    linkageType: ''
    returnType: void
    signature: void pci_cleanup_msi(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1233,1
    - Dst: msix_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pdev
    - arg
    argTypes:
    - struct pci_dev*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1237
    functionName: disable_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 5
    functionsReached:
    - msix_set_enable
    - msi_set_enable
    linkageType: ''
    returnType: int
    signature: int disable_msi(struct pci_dev *pdev, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_iterate_devices
      Src: /src/xen/xen/arch/x86/msi.c:1242,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1247
    functionName: pci_disable_msi_all
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 2
    functionsReached:
    - pci_iterate_devices
    - printk
    linkageType: ''
    returnType: void
    signature: void pci_disable_msi_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1253,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:1260,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1268
    functionName: pci_reset_msix_state
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ASSERT
    - msix_control_reg
    linkageType: ''
    returnType: int
    signature: int pci_reset_msix_state(struct pci_dev *pdev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1278,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1280,1
    - Dst: msix_pba_offset_reg
      Src: /src/xen/xen/arch/x86/msi.c:1282,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1284,1
    - Dst: find_msi_entry
      Src: /src/xen/xen/arch/x86/msi.c:1295,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1305,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - pdev
    - reg
    - size
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1326
    functionName: pci_msi_conf_write_intercept
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - msix_pba_offset_reg
    - msi_control_reg
    - msix_control_reg
    - ASSERT
    - find_msi_entry
    linkageType: ''
    returnType: int
    signature: "int pci_msi_conf_write_intercept(struct pci_dev *pdev, unsigned int
      reg,\n                                 unsigned int size, uint32_t *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1339,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/arch/x86/msi.c:1339,1
    - Dst: xsm_resource_setup_pci
      Src: /src/xen/xen/arch/x86/msi.c:1344,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/msi.c:1350,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/msi.c:1357,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1359,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/msi.c:1364,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1366,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1368,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1368,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msi.c:1373,1
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1377,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:1382,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1382,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1383,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1383,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:1386,1
    - Dst: memory_decoded
      Src: /src/xen/xen/arch/x86/msi.c:1386,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1388,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1389,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1389,1
    - Dst: write_msi_msg
      Src: /src/xen/xen/arch/x86/msi.c:1397,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/msi.c:1401,1
    - Dst: msi_set_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:1401,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/msi.c:1404,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1409,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/msi.c:1411,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1416,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1420,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/msi.c:1422,1
    - Dst: multi_msi_enable
      Src: /src/xen/xen/arch/x86/msi.c:1423,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1424,1
    - Dst: msi_set_enable
      Src: /src/xen/xen/arch/x86/msi.c:1426,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/arch/x86/msi.c:1431,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/arch/x86/msi.c:1431,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1328
    functionDepth: 3
    functionLinenumber: 1328
    functionLinenumberEnd: 1435
    functionName: pci_restore_msi_state
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - unlikely
    - BUG
    - msi_set_enable
    - write_msi_msg
    - msi_set_mask_bit
    - spin_lock_irqsave
    - memory_decoded
    - msi_control_reg
    - spin_unlock_irqrestore
    - msix_control_reg
    - ASSERT
    - list_for_each_entry_safe
    - xsm_resource_setup_pci
    - multi_msi_enable
    - pci_conf_write16
    - dprintk
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int pci_restore_msi_state(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1443
    functionName: early_msi_init
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void early_msi_init(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1449,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/msi.c:1453,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/msi.c:1462,1
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/arch/x86/msi.c:1464,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/msi.c:1467,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1472,1
    - Dst: msi_get_mask_bit
      Src: /src/xen/xen/arch/x86/msi.c:1494,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/msi.c:1498,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/msi.c:1504,1
    - Dst: vpci_dump_msi
      Src: /src/xen/xen/arch/x86/msi.c:1519,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1445
    functionDepth: 3
    functionLinenumber: 1445
    functionLinenumberEnd: 1520
    functionName: dump_msi
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 1
    functionsReached:
    - vpci_dump_msi
    - irq_desc_initialized
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - process_pending_softirqs
    - printk
    - msi_get_mask_bit
    linkageType: ''
    returnType: void
    signature: void dump_msi(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/msi.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1526
    functionName: msi_setup_keyhandler
    functionSourceFile: /src/xen/xen/arch/x86/msi.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int msi_setup_keyhandler(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/vm_event.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: vm_event_init_domain
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: int
    signature: int vm_event_init_domain(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/vm_event.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/vm_event.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: vm_event_cleanup_domain
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void vm_event_cleanup_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/vm_event.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/vm_event.c:68,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/vm_event.c:71,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/vm_event.c:71,1
    - Dst: hvm_toggle_singlestep
      Src: /src/xen/xen/arch/x86/vm_event.c:74,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/vm_event.c:75,1
    - Dst: hvm_fast_singlestep
      Src: /src/xen/xen/arch/x86/vm_event.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - d
    - v
    - rsp
    argTypes:
    - struct domain*
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: vm_event_toggle_singlestep
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - hvm_fast_singlestep
    - IS_ENABLED
    - ASSERT
    - is_hvm_domain
    - hvm_toggle_singlestep
    - atomic_read
    linkageType: ''
    returnType: void
    signature: "void vm_event_toggle_singlestep(struct domain *d, struct vcpu *v,\n
      \                               vm_event_response_t *rsp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/vm_event.c:85,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/vm_event.c:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 114
    functionName: vm_event_register_write_resume
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void vm_event_register_write_resume(struct vcpu *v, vm_event_response_t
      *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/vm_event.c:118,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/vm_event.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: vm_event_set_registers
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void vm_event_set_registers(struct vcpu *v, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: vm_event_monitor_next_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_monitor_next_interrupt(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: vm_event_sync_event
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_sync_event(struct vcpu *v, bool value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:140,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/vm_event.c:192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 2
    argNames:
    - segment
    - reg
    argTypes:
    - enum x86_segment
    - struct vm_event_regs_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 195
    functionName: vm_event_pack_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - hvm_get_segment_register
    linkageType: ''
    returnType: void
    signature: "void vm_event_pack_segment_register(enum x86_segment segment,\n                                           struct
      vm_event_regs_x86 *reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/vm_event.c:201,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/vm_event.c:205,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/vm_event.c:205,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/vm_event.c:208,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:245,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:246,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:247,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:248,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:249,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:250,1
    - Dst: vm_event_pack_segment_register
      Src: /src/xen/xen/arch/x86/vm_event.c:251,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/vm_event.c:256,1
    - Dst: hvm_vmtrace_output_position
      Src: /src/xen/xen/arch/x86/vm_event.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 1
    argNames:
    - req
    argTypes:
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 261
    functionName: vm_event_fill_regs
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - is_hvm_vcpu
    - hvm_vmtrace_output_position
    - IS_ENABLED
    - ASSERT
    - alternative_vcall
    - vm_event_pack_segment_register
    linkageType: ''
    returnType: void
    signature: void vm_event_fill_regs(vm_event_request_t *req)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_mem_access_emulate_check
      Src: /src/xen/xen/arch/x86/vm_event.c:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 306
    functionName: vm_event_emulate_check
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - p2m_mem_access_emulate_check
    linkageType: ''
    returnType: void
    signature: void vm_event_emulate_check(struct vcpu *v, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_vmtrace_reset
      Src: /src/xen/xen/arch/x86/vm_event.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: vm_event_reset_vmtrace
    functionSourceFile: /src/xen/xen/arch/x86/vm_event.c
    functionUses: 0
    functionsReached:
    - hvm_vmtrace_reset
    linkageType: ''
    returnType: void
    signature: void vm_event_reset_vmtrace(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - start
    - end
    - type
    argTypes:
    - u64
    - u64
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: e820_all_mapped
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int e820_all_mapped(u64 start, u64 end, unsigned type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:80,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - start
    - size
    - type
    argTypes:
    - unsigned long long
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: add_memory_region
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - printk
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void add_memory_region(unsigned long long start,\n                                     unsigned
      long long size, int type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:97,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:102,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:105,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:108,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:111,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:114,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - map
    - entries
    argTypes:
    - struct e820entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 121
    functionName: print_e820_memory_map
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: "void print_e820_memory_map(const struct e820entry *map,\n                                  unsigned
      int entries)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:270,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/e820.c:284,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 2
    argNames:
    - biosmap
    - pnr_map
    argTypes:
    - struct e820entry*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 288
    functionName: sanitize_e820_map
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int sanitize_e820_map(struct e820entry *biosmap, unsigned int *pnr_map)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_memory_region
      Src: /src/xen/xen/arch/x86/e820.c:329,1
    - Dst: add_memory_region
      Src: /src/xen/xen/arch/x86/e820.c:336,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - biosmap
    - nr_map
    argTypes:
    - struct e820entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 339
    functionName: copy_e820_map
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - add_memory_region
    linkageType: ''
    returnType: int
    signature: int copy_e820_map(struct e820entry * biosmap, unsigned int nr_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/e820.c:355,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/e820.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 364
    functionName: find_max_pfn
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - PFN_DOWN
    - PFN_UP
    linkageType: ''
    returnType: unsigned long __init
    signature: unsigned long __init find_max_pfn(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/e820.c:384,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/e820.c:388,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/e820.c:388,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:403,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/e820.c:413,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:414,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:416,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - limit
    - warnmsg
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 419
    functionName: clip_to_limit
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - snprintf
    - max
    - memmove
    - e820_change_range_type
    - max_t
    - printk
    linkageType: ''
    returnType: void
    signature: void clip_to_limit(uint64_t limit, const char *warnmsg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:435,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/e820.c:442,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/e820.c:445,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/e820.c:446,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:449,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/e820.c:452,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/e820.c:462,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/e820.c:462,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/e820.c:463,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/e820.c:463,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:466,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/e820.c:469,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/e820.c:473,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 477
    functionName: mtrr_top_of_ram
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - MSR_IA32_MTRR_PHYSBASE
    - ASSERT
    - printk
    - MSR_IA32_MTRR_PHYSMASK
    - max_t
    - test_bit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mtrr_top_of_ram(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dmi_get_table
      Src: /src/xen/xen/arch/x86/e820.c:485,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/e820.c:490,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: reserve_dmi_region
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - dmi_get_table
    - reserve_e820_ram
    - printk
    linkageType: ''
    returnType: void
    signature: void reserve_dmi_region(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_e820_map
      Src: /src/xen/xen/arch/x86/e820.c:502,1
    - Dst: copy_e820_map
      Src: /src/xen/xen/arch/x86/e820.c:503,1
    - Dst: clip_to_limit
      Src: /src/xen/xen/arch/x86/e820.c:506,1
    - Dst: clip_to_limit
      Src: /src/xen/xen/arch/x86/e820.c:514,1
    - Dst: clip_to_limit
      Src: /src/xen/xen/arch/x86/e820.c:525,1
    - Dst: reserve_dmi_region
      Src: /src/xen/xen/arch/x86/e820.c:529,1
    - Dst: mtrr_top_of_ram
      Src: /src/xen/xen/arch/x86/e820.c:531,1
    - Dst: clip_to_limit
      Src: /src/xen/xen/arch/x86/e820.c:533,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - raw
    argTypes:
    - struct e820map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 534
    functionName: machine_specific_memory_setup
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - clip_to_limit
    - mtrr_top_of_ram
    - sanitize_e820_map
    - reserve_dmi_region
    - copy_e820_map
    linkageType: ''
    returnType: void
    signature: void machine_specific_memory_setup(struct e820map *raw)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:567,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:569,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:574,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:610,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:613,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:634,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:637,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:656,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:665,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/e820.c:673,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:680,1
    - Dst: print_e820_memory_map
      Src: /src/xen/xen/arch/x86/e820.c:681,1
    - Dst: machine_specific_memory_setup
      Src: /src/xen/xen/arch/x86/e820.c:684,1
    - Dst: hypervisor_e820_fixup
      Src: /src/xen/xen/arch/x86/e820.c:687,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:689,1
    - Dst: print_e820_memory_map
      Src: /src/xen/xen/arch/x86/e820.c:690,1
    - Dst: find_max_pfn
      Src: /src/xen/xen/arch/x86/e820.c:692,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 91
    argCount: 3
    argNames:
    - s
    - e
    - type
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 693
    functionName: e820_add_range
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - hypervisor_e820_fixup
    - ARRAY_SIZE
    - find_max_pfn
    - memmove
    - e820_change_range_type
    - printk
    - print_e820_memory_map
    - machine_specific_memory_setup
    linkageType: ''
    returnType: int
    signature: int e820_add_range(uint64_t s, uint64_t e, uint32_t type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:610,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:613,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/e820.c:634,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:637,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/e820.c:656,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:665,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 5
    argNames:
    - map
    - s
    - e
    - orig_type
    - new_type
    argTypes:
    - struct e820map*
    - uint64_t
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 668
    functionName: e820_change_range_type
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 3
    functionsReached:
    - printk
    - memmove
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int e820_change_range_type(\n    struct e820map *map, uint64_t s,
      uint64_t e,\n    uint32_t orig_type, uint32_t new_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/e820.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - s
    - e
    argTypes:
    - struct e820map*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: reserve_e820_ram
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 1
    functionsReached:
    - e820_change_range_type
    linkageType: ''
    returnType: int
    signature: int reserve_e820_ram(struct e820map *map, uint64_t s, uint64_t e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:680,1
    - Dst: print_e820_memory_map
      Src: /src/xen/xen/arch/x86/e820.c:681,1
    - Dst: machine_specific_memory_setup
      Src: /src/xen/xen/arch/x86/e820.c:684,1
    - Dst: hypervisor_e820_fixup
      Src: /src/xen/xen/arch/x86/e820.c:687,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/e820.c:689,1
    - Dst: print_e820_memory_map
      Src: /src/xen/xen/arch/x86/e820.c:690,1
    - Dst: find_max_pfn
      Src: /src/xen/xen/arch/x86/e820.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - str
    - raw
    argTypes:
    - char*
    - struct e820map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 693
    functionName: init_e820
    functionSourceFile: /src/xen/xen/arch/x86/e820.c
    functionUses: 0
    functionsReached:
    - hypervisor_e820_fixup
    - find_max_pfn
    - printk
    - print_e820_memory_map
    - machine_specific_memory_setup
    linkageType: ''
    returnType: unsigned long __init
    signature: unsigned long __init init_e820(const char *str, struct e820map *raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mask_and_ack_8259A_irq
      Src: /src/xen/xen/arch/x86/i8259.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: bogus_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 1
    functionsReached:
    - _mask_and_ack_8259A_irq
    linkageType: ''
    returnType: bool
    signature: bool bogus_8259A_irq(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mask_and_ack_8259A_irq
      Src: /src/xen/xen/arch/x86/i8259.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: mask_and_ack_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 2
    functionsReached:
    - _mask_and_ack_8259A_irq
    linkageType: ''
    returnType: void
    signature: void mask_and_ack_8259A_irq(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enable_8259A_irq
      Src: /src/xen/xen/arch/x86/i8259.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: startup_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - enable_8259A_irq
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int startup_8259A_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enable_8259A_irq
      Src: /src/xen/xen/arch/x86/i8259.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: end_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - enable_8259A_irq
    linkageType: ''
    returnType: void
    signature: void end_8259A_irq(struct irq_desc *desc, u8 vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: __byte
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __byte(x,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:102,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:105,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:107,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/i8259.c:108,1
    - Dst: LEGACY_VECTOR
      Src: /src/xen/xen/arch/x86/i8259.c:108,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: _disable_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - outb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - per_cpu
    - LEGACY_VECTOR
    linkageType: ''
    returnType: void
    signature: void _disable_8259A_irq(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _disable_8259A_irq
      Src: /src/xen/xen/arch/x86/i8259.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: disable_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 6
    functionsReached:
    - _disable_8259A_irq
    linkageType: ''
    returnType: void
    signature: void disable_8259A_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:122,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/i8259.c:124,1
    - Dst: LEGACY_VECTOR
      Src: /src/xen/xen/arch/x86/i8259.c:124,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:126,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:128,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: enable_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 4
    functionsReached:
    - outb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - per_cpu
    - LEGACY_VECTOR
    linkageType: ''
    returnType: void
    signature: void enable_8259A_irq(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:138,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:140,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:142,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: i8259A_irq_pending
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 1
    functionsReached:
    - inb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int i8259A_irq_pending(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:152,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:153,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:154,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: mask_8259A
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - outb
    linkageType: ''
    returnType: void
    signature: void mask_8259A(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:162,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:163,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:164,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: unmask_8259A
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - outb
    linkageType: ''
    returnType: void
    signature: void unmask_8259A(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:180,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:181,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:182,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:185,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:186,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: i8259A_irq_real
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - inb
    - outb
    linkageType: ''
    returnType: int
    signature: int i8259A_irq_real(unsigned int irq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:204,1
    - Dst: i8259A_irq_real
      Src: /src/xen/xen/arch/x86/i8259.c:221,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/i8259.c:226,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/i8259.c:227,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:240,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:241,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:243,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:244,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:247,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:248,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:250,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 256
    functionName: _mask_and_ack_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 2
    functionsReached:
    - outb
    - smp_processor_id
    - spin_lock_irqsave
    - i8259A_irq_real
    - spin_unlock_irqrestore
    - printk
    - inb
    linkageType: ''
    returnType: bool
    signature: bool _mask_and_ack_8259A_irq(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:264,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - trigger
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: restore_ELCR
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void restore_ELCR(char *trigger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:271,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - trigger
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: save_ELCR
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - inb
    linkageType: ''
    returnType: void
    signature: void save_ELCR(char *trigger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_8259A
      Src: /src/xen/xen/arch/x86/i8259.c:277,1
    - Dst: restore_ELCR
      Src: /src/xen/xen/arch/x86/i8259.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: i8259A_resume
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - restore_ELCR
    - init_8259A
    linkageType: ''
    returnType: int
    signature: int i8259A_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: save_ELCR
      Src: /src/xen/xen/arch/x86/i8259.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: i8259A_suspend
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - save_ELCR
    linkageType: ''
    returnType: int
    signature: int i8259A_suspend(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/i8259.c:292,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:294,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:295,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:300,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:301,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:302,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:304,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:306,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:308,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:309,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:310,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/i8259.c:311,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/i8259.c:323,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:325,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:326,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/i8259.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - auto_eoi
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 329
    functionName: init_8259A
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 2
    functionsReached:
    - outb_p
    - outb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - udelay
    linkageType: ''
    returnType: void
    signature: void init_8259A(int auto_eoi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/i8259.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: make_8259A_irq
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 2
    functionsReached:
    - irq_to_desc
    linkageType: ''
    returnType: void
    signature: void make_8259A_irq(unsigned int irq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:356,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:361,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:364,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/i8259.c:370,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/i8259.c:374,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:379,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/i8259.c:380,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/i8259.c:384,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 387
    functionName: probe_8259A_alias
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - ISOLATE_LSB
    - inb
    - dprintk
    - outb
    linkageType: ''
    returnType: void
    signature: void probe_8259A_alias(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/i8259.c:393,1
    - Dst: init_bsp_APIC
      Src: /src/xen/xen/arch/x86/i8259.c:395,1
    - Dst: init_8259A
      Src: /src/xen/xen/arch/x86/i8259.c:397,1
    - Dst: probe_8259A_alias
      Src: /src/xen/xen/arch/x86/i8259.c:399,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/i8259.c:401,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/i8259.c:402,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/i8259.c:407,1
    - Dst: LEGACY_VECTOR
      Src: /src/xen/xen/arch/x86/i8259.c:407,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/i8259.c:421,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/i8259.c:424,1
    - Dst: LEGACY_VECTOR
      Src: /src/xen/xen/arch/x86/i8259.c:425,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/i8259.c:428,1
    - Dst: apic_intr_init
      Src: /src/xen/xen/arch/x86/i8259.c:430,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/x86/i8259.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 433
    functionName: init_IRQ
    functionSourceFile: /src/xen/xen/arch/x86/i8259.c
    functionUses: 0
    functionsReached:
    - init_8259A
    - irq_to_desc
    - cpumask_of
    - smp_processor_id
    - platform_legacy_irq
    - init_bsp_APIC
    - probe_8259A_alias
    - apic_intr_init
    - per_cpu
    - cpumask_copy
    - setup_irq
    - LEGACY_VECTOR
    linkageType: ''
    returnType: void
    signature: void init_IRQ(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/setup.c:121,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/setup.c:123,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/setup.c:125,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/setup.c:128,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/setup.c:137,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/setup.c:142,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/setup.c:145,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/setup.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 160
    functionName: parse_cet
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - strchr
    - no_config_param
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_cet(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/setup.c:199,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 215
    functionName: parse_smep_param
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_smep_param(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/setup.c:230,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 246
    functionName: parse_smap_param
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_smap_param(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/setup.c:256,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/setup.c:258,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:260,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:266,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/setup.c:269,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:272,1
    - Dst: acpi_noirq_set
      Src: /src/xen/xen/arch/x86/setup.c:274,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/setup.c:276,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/arch/x86/setup.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 288
    functionName: parse_acpi_param
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - safe_strcpy
    - disable_acpi
    - acpi_noirq_set
    - parse_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_acpi_param(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:315,1
    - Dst: cmdline_cook
      Src: /src/xen/xen/arch/x86/setup.c:318,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:318,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:339,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/setup.c:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - mbi
    - mods
    argTypes:
    - multiboot_info_t*
    - module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 363
    functionName: multiboot_fill_boot_info
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - __va
    - efi_enabled
    - cmdline_cook
    - pfn_to_paddr
    linkageType: ''
    returnType: struct boot_info
    signature: "struct boot_info *__init multiboot_fill_boot_info(\n    const multiboot_info_t
      *mbi, module_t *mods)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/setup.c:368,1
    - Dst: node_end_pfn
      Src: /src/xen/xen/arch/x86/setup.c:369,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/setup.c:375,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:376,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:379,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/setup.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 383
    functionName: initial_images_nrpages
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - node_start_pfn
    - max
    - PFN_UP
    - paddr_to_pfn
    - node_end_pfn
    - min
    linkageType: ''
    returnType: unsigned long __init
    signature: unsigned long __init initial_images_nrpages(nodeid_t node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:387,1
    - Dst: init_domheap_pages
      Src: /src/xen/xen/arch/x86/setup.c:389,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/setup.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bm
    argTypes:
    - struct boot_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: release_boot_module
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - PAGE_ALIGN
    - init_domheap_pages
    linkageType: ''
    returnType: void
    signature: void release_boot_module(struct boot_module *bm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_boot_module
      Src: /src/xen/xen/arch/x86/setup.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 406
    functionName: free_boot_modules
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - release_boot_module
    linkageType: ''
    returnType: void
    signature: void free_boot_modules(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scheduler_init
      Src: /src/xen/xen/arch/x86/setup.c:410,1
    - Dst: set_current
      Src: /src/xen/xen/arch/x86/setup.c:411,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/setup.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: init_idle_domain
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - this_cpu
    - set_current
    - scheduler_init
    linkageType: ''
    returnType: void
    signature: void init_idle_domain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_set_online
      Src: /src/xen/xen/arch/x86/setup.c:424,1
    - Dst: numa_set_node
      Src: /src/xen/xen/arch/x86/setup.c:425,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 429
    functionName: srat_detect_node
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 1
    functionsReached:
    - printk
    - numa_set_node
    - node_set_online
    linkageType: ''
    returnType: void
    signature: void srat_detect_node(int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:452,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:454,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:471,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:471,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 481
    functionName: normalise_cpu_order
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - cpumask_next
    linkageType: ''
    returnType: void
    signature: void normalise_cpu_order(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:452,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:454,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:471,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:471,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/setup.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 480
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - cpumask_next
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( i )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/setup.c:497,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:501,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:502,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:517,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:517,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 521
    functionName: bootstrap_map_addr
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - PFN_DOWN
    - map_pages_to_xen
    - maddr_to_mfn
    - maddr_to_virt
    linkageType: ''
    returnType: void
    signature: void *__init bootstrap_map_addr(paddr_t start, paddr_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_map_addr
      Src: /src/xen/xen/arch/x86/setup.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bm
    argTypes:
    - struct boot_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: bootstrap_map_bm
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - bootstrap_map_addr
    linkageType: ''
    returnType: void
    signature: void *__init bootstrap_map_bm(const struct boot_module *bm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_map_addr
      Src: /src/xen/xen/arch/x86/setup.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: bootstrap_unmap
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - bootstrap_map_addr
    linkageType: ''
    returnType: void
    signature: void bootstrap_unmap(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/xen/xen/arch/x86/setup.c:556,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:557,1
    - Dst: bootstrap_map_addr
      Src: /src/xen/xen/arch/x86/setup.c:559,1
    - Dst: bootstrap_map_addr
      Src: /src/xen/xen/arch/x86/setup.c:560,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/setup.c:562,1
    - Dst: bootstrap_map_addr
      Src: /src/xen/xen/arch/x86/setup.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - uint64_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 570
    functionName: move_memory
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - memmove
    - bootstrap_map_addr
    - min
    - max
    linkageType: ''
    returnType: void
    signature: "void move_memory(\n    uint64_t dst, uint64_t src, unsigned int size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/setup.c:588,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/setup.c:594,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:594,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:594,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:610,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:610,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:613,1
    - Dst: l4e_from_intpte
      Src: /src/xen/xen/arch/x86/setup.c:616,1
    - Dst: l4e_get_intpte
      Src: /src/xen/xen/arch/x86/setup.c:616,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:617,1
    - Dst: l4e_get_paddr
      Src: /src/xen/xen/arch/x86/setup.c:617,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:620,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:621,1
    - Dst: l3e_from_intpte
      Src: /src/xen/xen/arch/x86/setup.c:624,1
    - Dst: l3e_get_intpte
      Src: /src/xen/xen/arch/x86/setup.c:624,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:625,1
    - Dst: l3e_get_paddr
      Src: /src/xen/xen/arch/x86/setup.c:625,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:628,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:629,1
    - Dst: l2e_from_intpte
      Src: /src/xen/xen/arch/x86/setup.c:632,1
    - Dst: l2e_get_intpte
      Src: /src/xen/xen/arch/x86/setup.c:632,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:642,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:642,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:645,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/setup.c:646,1
    - Dst: l2e_from_intpte
      Src: /src/xen/xen/arch/x86/setup.c:649,1
    - Dst: l2e_get_intpte
      Src: /src/xen/xen/arch/x86/setup.c:649,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:677,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:680,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:680,1
    - Dst: __builtin_frame_address
      Src: /src/xen/xen/arch/x86/setup.c:681,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:687,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 688
    functionName: move_xen
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - __va
    - l3e_get_paddr
    - __builtin_frame_address
    - __pa
    - l4e_get_flags
    - l3e_from_intpte
    - l3e_get_intpte
    - l4e_from_intpte
    - l2e_from_intpte
    - l3e_get_flags
    - l2e_get_intpte
    - barrier
    - printk
    - l4e_get_intpte
    - l4e_get_paddr
    - memcpy
    linkageType: ''
    returnType: void
    signature: void move_xen(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/setup.c:704,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/x86/setup.c:711,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/x86/setup.c:716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 6
    argNames:
    - s
    - e
    - size
    - mods
    - nr_mods
    - this_mod
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    - struct boot_module*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 722
    functionName: consider_modules
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 1
    functionsReached:
    - consider_modules
    - PAGE_ALIGN
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t consider_modules(\n    uint64_t s, uint64_t e, uint32_t size,
      const struct boot_module *mods,\n    unsigned int nr_mods, unsigned int this_mod)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/setup.c:726,1
    - Dst: pdx_to_pfn
      Src: /src/xen/xen/arch/x86/setup.c:742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - top_page
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 743
    functionName: setup_max_pdx
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - pdx_to_pfn
    - pfn_to_pdx
    linkageType: ''
    returnType: void
    signature: void setup_max_pdx(unsigned long top_page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:755,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:758,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 791
    functionName: parse_video_info
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - efi_enabled
    - bootsym
    linkageType: ''
    returnType: void
    signature: void parse_video_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/setup.c:807,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:809,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 793
    functionDepth: 3
    functionLinenumber: 793
    functionLinenumberEnd: 819
    functionName: kexec_reserve_area
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - reserve_e820_ram
    - printk
    linkageType: ''
    returnType: void
    signature: void kexec_reserve_area(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:823,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:824,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:825,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:826,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:827,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:828,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:829,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: using_2M_mapping
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - l1_table_offset
    linkageType: ''
    returnType: bool
    signature: bool using_2M_mapping(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsm_set_system_active
      Src: /src/xen/xen/arch/x86/setup.c:838,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:839,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/setup.c:844,1
    - Dst: stub_selftest
      Src: /src/xen/xen/arch/x86/setup.c:845,1
    - Dst: domain_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/setup.c:847,1
    - Dst: unregister_init_virtual_region
      Src: /src/xen/xen/arch/x86/setup.c:850,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/setup.c:853,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/setup.c:854,1
    - Dst: using_2M_mapping
      Src: /src/xen/xen/arch/x86/setup.c:857,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:868,1
    - Dst: init_xenheap_pages
      Src: /src/xen/xen/arch/x86/setup.c:869,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:869,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:869,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:870,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:873,1
    - Dst: startup_cpu_idle_loop
      Src: /src/xen/xen/arch/x86/setup.c:877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 878
    functionName: init_done
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - unregister_init_virtual_region
    - startup_cpu_idle_loop
    - using_2M_mapping
    - __pa
    - xsm_set_system_active
    - panic
    - domain_unpause_by_systemcontroller
    - clear_page
    - init_xenheap_pages
    - stub_selftest
    - IS_ENABLED
    - destroy_xen_mappings
    - _p
    - printk
    - modify_xen_mappings
    linkageType: ''
    returnType: void
    signature: void init_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: xen_msr_s_cet_value
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xen_msr_s_cet_value(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/setup.c:898,1
    - Dst: bsp_traps_reinit
      Src: /src/xen/xen/arch/x86/setup.c:901,1
    - Dst: setup_cpu_root_pgt
      Src: /src/xen/xen/arch/x86/setup.c:905,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:907,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/setup.c:911,1
    - Dst: xen_msr_s_cet_value
      Src: /src/xen/xen/arch/x86/setup.c:911,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/setup.c:926,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/x86/setup.c:937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 938
    functionName: reinit_bsp_stack
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - xen_msr_s_cet_value
    - bsp_traps_reinit
    - panic
    - wrss
    - reset_stack_and_jump
    - setup_cpu_root_pgt
    - wrmsrl
    - get_stack_bottom
    linkageType: ''
    returnType: void
    signature: void reinit_bsp_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/setup.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - loader_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 960
    functionName: loader_is_grub2
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool loader_is_grub2(const char *loader_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:979,1
    - Dst: loader_is_grub2
      Src: /src/xen/xen/arch/x86/setup.c:979,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - p
    - loader_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 989
    functionName: cmdline_cook
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 1
    functionsReached:
    - efi_enabled
    - loader_is_grub2
    linkageType: ''
    returnType: char
    signature: char *__init cmdline_cook(const char *p, const char *loader_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:993,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:993,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/setup.c:996,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - map
    - limit
    argTypes:
    - struct e820entry*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 999
    functionName: copy_bios_e820
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - min
    - bootsym
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_bios_e820(struct e820entry *map, unsigned int limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1013,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1013,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1016,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1023,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bi
    - bd
    argTypes:
    - struct boot_info*
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1026
    functionName: domain_cmdline_size
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - __va
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t domain_cmdline_size(const struct boot_info *bi,\n                                         const
      struct boot_domain *bd)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/setup.c:1033,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/xen/arch/x86/setup.c:1037,1
    - Dst: dom0_max_vcpus
      Src: /src/xen/xen/arch/x86/setup.c:1038,1
    - Dst: hvm_hap_supported
      Src: /src/xen/xen/arch/x86/setup.c:1050,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/setup.c:1052,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1053,1
    - Dst: domid_alloc
      Src: /src/xen/xen/arch/x86/setup.c:1063,1
    - Dst: get_initial_domain_id
      Src: /src/xen/xen/arch/x86/setup.c:1063,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1065,1
    - Dst: get_initial_domain_id
      Src: /src/xen/xen/arch/x86/setup.c:1065,1
    - Dst: domain_create
      Src: /src/xen/xen/arch/x86/setup.c:1067,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/setup.c:1069,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1070,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/setup.c:1070,1
    - Dst: init_dom0_cpuid_policy
      Src: /src/xen/xen/arch/x86/setup.c:1072,1
    - Dst: alloc_dom0_vcpu0
      Src: /src/xen/xen/arch/x86/setup.c:1074,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1075,1
    - Dst: domain_cmdline_size
      Src: /src/xen/xen/arch/x86/setup.c:1077,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/setup.c:1080,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1081,1
    - Dst: strlcpy
      Src: /src/xen/xen/arch/x86/setup.c:1084,1
    - Dst: cmdline_cook
      Src: /src/xen/xen/arch/x86/setup.c:1085,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1085,1
    - Dst: strlcat
      Src: /src/xen/xen/arch/x86/setup.c:1091,1
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/setup.c:1094,1
    - Dst: strlcat
      Src: /src/xen/xen/arch/x86/setup.c:1095,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1097,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1099,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/arch/x86/setup.c:1100,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/setup.c:1103,1
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/setup.c:1103,1
    - Dst: strlcat
      Src: /src/xen/xen/arch/x86/setup.c:1105,1
    - Dst: strlcat
      Src: /src/xen/xen/arch/x86/setup.c:1106,1
    - Dst: construct_dom0
      Src: /src/xen/xen/arch/x86/setup.c:1113,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1114,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/setup.c:1117,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 1
    argNames:
    - bi
    argTypes:
    - struct boot_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1028
    functionDepth: 3
    functionLinenumber: 1028
    functionLinenumberEnd: 1120
    functionName: create_dom0
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - strlcat
    - IS_ENABLED
    - cmdline_cook
    - strlen
    - domain_create
    - xfree
    - domain_cmdline_size
    - __va
    - hvm_hap_supported
    - safe_strcpy
    - XEN_DOMCTL_GRANT_version
    - printk
    - panic
    - strlcpy
    - alloc_dom0_vcpu0
    - dom0_max_vcpus
    - init_dom0_cpuid_policy
    - domid_alloc
    - IS_ERR
    - get_initial_domain_id
    - PTR_ERR
    - xzalloc_array
    - strstr
    - construct_dom0
    linkageType: ''
    returnType: struct domain
    signature: struct domain *__init create_dom0(struct boot_info *bi)
  - BBCount: 112
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/setup.c:1130,1
    - Dst: init_shadow_spec_ctrl_state
      Src: /src/xen/xen/arch/x86/setup.c:1148,1
    - Dst: percpu_init_areas
      Src: /src/xen/xen/arch/x86/setup.c:1150,1
    - Dst: bsp_early_traps_init
      Src: /src/xen/xen/arch/x86/setup.c:1152,1
    - Dst: smp_prepare_boot_cpu
      Src: /src/xen/xen/arch/x86/setup.c:1154,1
    - Dst: sort_exception_tables
      Src: /src/xen/xen/arch/x86/setup.c:1155,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/setup.c:1159,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/setup.c:1159,1
    - Dst: enable_nmis
      Src: /src/xen/xen/arch/x86/setup.c:1163,1
    - Dst: pvh_init
      Src: /src/xen/xen/arch/x86/setup.c:1170,1
    - Dst: multiboot_fill_boot_info
      Src: /src/xen/xen/arch/x86/setup.c:1176,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1180,1
    - Dst: multiboot_fill_boot_info
      Src: /src/xen/xen/arch/x86/setup.c:1182,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1182,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:1192,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/setup.c:1192,1
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/setup.c:1196,1
    - Dst: cmdline_parse
      Src: /src/xen/xen/arch/x86/setup.c:1208,1
    - Dst: kexec_early_calculations
      Src: /src/xen/xen/arch/x86/setup.c:1212,1
    - Dst: hypervisor_probe
      Src: /src/xen/xen/arch/x86/setup.c:1218,1
    - Dst: parse_video_info
      Src: /src/xen/xen/arch/x86/setup.c:1220,1
    - Dst: ns16550_init
      Src: /src/xen/xen/arch/x86/setup.c:1225,1
    - Dst: ns16550_init
      Src: /src/xen/xen/arch/x86/setup.c:1228,1
    - Dst: ehci_dbgp_init
      Src: /src/xen/xen/arch/x86/setup.c:1229,1
    - Dst: xhci_dbc_uart_init
      Src: /src/xen/xen/arch/x86/setup.c:1230,1
    - Dst: console_init_preirq
      Src: /src/xen/xen/arch/x86/setup.c:1231,1
    - Dst: early_cpu_init
      Src: /src/xen/xen/arch/x86/setup.c:1237,1
    - Dst: early_microcode_init
      Src: /src/xen/xen/arch/x86/setup.c:1238,1
    - Dst: pvh_print_info
      Src: /src/xen/xen/arch/x86/setup.c:1241,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1243,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1245,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1247,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1249,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1252,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1258,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1265,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1271,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1276,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1278,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1279,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1283,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1284,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1286,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1288,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1290,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1292,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1297,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1298,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1299,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1300,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1301,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1305,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1316,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:1329,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/x86/setup.c:1331,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1335,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/setup.c:1339,1
    - Dst: l3e_from_paddr
      Src: /src/xen/xen/arch/x86/setup.c:1340,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1340,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:1344,1
    - Dst: copy_bios_e820
      Src: /src/xen/xen/arch/x86/setup.c:1347,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/setup.c:1348,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/setup.c:1356,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1358,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/setup.c:1371,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1387,1
    - Dst: traps_init
      Src: /src/xen/xen/arch/x86/setup.c:1389,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:1392,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:1413,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:1415,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1431,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:1433,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:1437,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1439,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:1441,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:1443,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1444,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/setup.c:1450,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:1455,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1461,1
    - Dst: init_e820
      Src: /src/xen/xen/arch/x86/setup.c:1467,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/setup.c:1469,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/setup.c:1476,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/setup.c:1477,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/setup.c:1482,1
    - Dst: set_kexec_crash_area_size
      Src: /src/xen/xen/arch/x86/setup.c:1489,1
    - Dst: kexec_reserve_area
      Src: /src/xen/xen/arch/x86/setup.c:1490,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1494,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/setup.c:1507,1
    - Dst: bzimage_headroom
      Src: /src/xen/xen/arch/x86/setup.c:1512,1
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/arch/x86/setup.c:1512,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/arch/x86/setup.c:1513,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/setup.c:1517,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/setup.c:1539,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/setup.c:1547,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1553,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/x86/setup.c:1554,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1555,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1555,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1555,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1556,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1559,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1561,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/x86/setup.c:1568,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1579,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/setup.c:1584,1
    - Dst: move_xen
      Src: /src/xen/xen/arch/x86/setup.c:1586,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/setup.c:1593,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/x86/setup.c:1599,1
    - Dst: move_memory
      Src: /src/xen/xen/arch/x86/setup.c:1607,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/x86/setup.c:1622,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/setup.c:1622,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1637,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/setup.c:1642,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/setup.c:1642,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1646,1
    - Dst: using_2M_mapping
      Src: /src/xen/xen/arch/x86/setup.c:1649,1
    - Dst: efi_boot_mem_unused
      Src: /src/xen/xen/arch/x86/setup.c:1650,1
    - Dst: efi_boot_mem_unused
      Src: /src/xen/xen/arch/x86/setup.c:1653,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/setup.c:1655,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1655,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1655,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/setup.c:1656,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1656,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1656,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/arch/x86/setup.c:1659,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1659,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1659,1
    - Dst: kexec_reserve_area
      Src: /src/xen/xen/arch/x86/setup.c:1662,1
    - Dst: setup_max_pdx
      Src: /src/xen/xen/arch/x86/setup.c:1664,1
    - Dst: xenheap_max_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1666,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1666,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/setup.c:1683,1
    - Dst: vm_init
      Src: /src/xen/xen/arch/x86/setup.c:1696,1
    - Dst: acpi_boot_table_init
      Src: /src/xen/xen/arch/x86/setup.c:1699,1
    - Dst: srat_parse_regions
      Src: /src/xen/xen/arch/x86/setup.c:1702,1
    - Dst: setup_max_pdx
      Src: /src/xen/xen/arch/x86/setup.c:1703,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/setup.c:1707,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/setup.c:1709,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:1715,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1725,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1727,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/setup.c:1728,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1730,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/setup.c:1736,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1737,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/x86/setup.c:1742,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/setup.c:1745,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/setup.c:1746,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/setup.c:1747,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/arch/x86/setup.c:1750,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1750,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/arch/x86/setup.c:1757,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1766,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1767,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1771,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1771,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1771,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1772,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/arch/x86/setup.c:1773,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1781,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1781,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1781,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1782,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1786,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1786,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1786,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1787,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/arch/x86/setup.c:1788,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/x86/setup.c:1796,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1796,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1796,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1797,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/x86/setup.c:1797,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1797,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1798,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1804,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/setup.c:1805,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1805,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/setup.c:1806,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1806,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/setup.c:1809,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1809,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/setup.c:1810,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1822,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1826,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1830,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1834,1
    - Dst: using_2M_mapping
      Src: /src/xen/xen/arch/x86/setup.c:1838,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1840,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/setup.c:1841,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/setup.c:1841,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/setup.c:1849,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1849,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1849,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/setup.c:1850,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:1850,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:1857,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1870,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1871,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1872,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1877,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1878,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1882,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1883,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1884,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:1885,1
    - Dst: init_frametable
      Src: /src/xen/xen/arch/x86/setup.c:1887,1
    - Dst: vm_init
      Src: /src/xen/xen/arch/x86/setup.c:1890,1
    - Dst: acpi_boot_table_init
      Src: /src/xen/xen/arch/x86/setup.c:1893,1
    - Dst: acpi_numa_init
      Src: /src/xen/xen/arch/x86/setup.c:1895,1
    - Dst: numa_initmem_init
      Src: /src/xen/xen/arch/x86/setup.c:1897,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1899,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1901,1
    - Dst: xenheap_max_mfn
      Src: /src/xen/xen/arch/x86/setup.c:1905,1
    - Dst: end_boot_allocator
      Src: /src/xen/xen/arch/x86/setup.c:1907,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1918,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1918,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1920,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/setup.c:1921,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:1922,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/setup.c:1923,1
    - Dst: init_domheap_pages
      Src: /src/xen/xen/arch/x86/setup.c:1924,1
    - Dst: end_boot_allocator
      Src: /src/xen/xen/arch/x86/setup.c:1928,1
    - Dst: cpu_alloc_stack
      Src: /src/xen/xen/arch/x86/setup.c:1932,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:1934,1
    - Dst: console_init_ring
      Src: /src/xen/xen/arch/x86/setup.c:1936,1
    - Dst: vesa_init
      Src: /src/xen/xen/arch/x86/setup.c:1937,1
    - Dst: tasklet_subsys_init
      Src: /src/xen/xen/arch/x86/setup.c:1939,1
    - Dst: paging_init
      Src: /src/xen/xen/arch/x86/setup.c:1941,1
    - Dst: tboot_probe
      Src: /src/xen/xen/arch/x86/setup.c:1943,1
    - Dst: open_softirq
      Src: /src/xen/xen/arch/x86/setup.c:1945,1
    - Dst: find_smp_config
      Src: /src/xen/xen/arch/x86/setup.c:1950,1
    - Dst: dmi_scan_machine
      Src: /src/xen/xen/arch/x86/setup.c:1952,1
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/x86/setup.c:1954,1
    - Dst: xsm_multiboot_init
      Src: /src/xen/xen/arch/x86/setup.c:1957,1
    - Dst: setup_system_domains
      Src: /src/xen/xen/arch/x86/setup.c:1963,1
    - Dst: pci_setup
      Src: /src/xen/xen/arch/x86/setup.c:1969,1
    - Dst: acpi_iommu_init
      Src: /src/xen/xen/arch/x86/setup.c:1976,1
    - Dst: generic_apic_probe
      Src: /src/xen/xen/arch/x86/setup.c:1982,1
    - Dst: acpi_boot_init
      Src: /src/xen/xen/arch/x86/setup.c:1984,1
    - Dst: get_smp_config
      Src: /src/xen/xen/arch/x86/setup.c:1987,1
    - Dst: set_nr_cpu_ids
      Src: /src/xen/xen/arch/x86/setup.c:2001,1
    - Dst: set_nr_cpu_ids
      Src: /src/xen/xen/arch/x86/setup.c:2005,1
    - Dst: hypervisor_setup
      Src: /src/xen/xen/arch/x86/setup.c:2011,1
    - Dst: zap_low_mappings
      Src: /src/xen/xen/arch/x86/setup.c:2014,1
    - Dst: init_apic_mappings
      Src: /src/xen/xen/arch/x86/setup.c:2019,1
    - Dst: normalise_cpu_order
      Src: /src/xen/xen/arch/x86/setup.c:2021,1
    - Dst: init_cpu_to_node
      Src: /src/xen/xen/arch/x86/setup.c:2023,1
    - Dst: x2apic_bsp_setup
      Src: /src/xen/xen/arch/x86/setup.c:2025,1
    - Dst: init_irq_data
      Src: /src/xen/xen/arch/x86/setup.c:2027,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:2029,1
    - Dst: console_init_irq
      Src: /src/xen/xen/arch/x86/setup.c:2031,1
    - Dst: init_IRQ
      Src: /src/xen/xen/arch/x86/setup.c:2033,1
    - Dst: timer_init
      Src: /src/xen/xen/arch/x86/setup.c:2035,1
    - Dst: tsx_init
      Src: /src/xen/xen/arch/x86/setup.c:2037,1
    - Dst: calculate_raw_cpu_policy
      Src: /src/xen/xen/arch/x86/setup.c:2039,1
    - Dst: identify_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2041,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:2043,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:2054,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:2056,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:2057,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:2058,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:2061,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/setup.c:2063,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:2064,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:2065,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/setup.c:2067,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:2068,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/setup.c:2071,1
    - Dst: wrpkrs_and_cache
      Src: /src/xen/xen/arch/x86/setup.c:2077,1
    - Dst: init_speculation_mitigations
      Src: /src/xen/xen/arch/x86/setup.c:2079,1
    - Dst: init_idle_domain
      Src: /src/xen/xen/arch/x86/setup.c:2081,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2083,1
    - Dst: alloc_stub_page
      Src: /src/xen/xen/arch/x86/setup.c:2083,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/setup.c:2083,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2084,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/setup.c:2085,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2085,1
    - Dst: bsp_traps_reinit
      Src: /src/xen/xen/arch/x86/setup.c:2087,1
    - Dst: cpu_init
      Src: /src/xen/xen/arch/x86/setup.c:2089,1
    - Dst: rcu_init
      Src: /src/xen/xen/arch/x86/setup.c:2091,1
    - Dst: early_time_init
      Src: /src/xen/xen/arch/x86/setup.c:2093,1
    - Dst: arch_init_memory
      Src: /src/xen/xen/arch/x86/setup.c:2095,1
    - Dst: alternative_instructions
      Src: /src/xen/xen/arch/x86/setup.c:2097,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/setup.c:2099,1
    - Dst: early_msi_init
      Src: /src/xen/xen/arch/x86/setup.c:2101,1
    - Dst: iommu_setup
      Src: /src/xen/xen/arch/x86/setup.c:2103,1
    - Dst: smp_prepare_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2105,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/arch/x86/setup.c:2107,1
    - Dst: init_xen_time
      Src: /src/xen/xen/arch/x86/setup.c:2114,1
    - Dst: initialize_keytable
      Src: /src/xen/xen/arch/x86/setup.c:2116,1
    - Dst: console_init_postirq
      Src: /src/xen/xen/arch/x86/setup.c:2118,1
    - Dst: do_presmp_initcalls
      Src: /src/xen/xen/arch/x86/setup.c:2122,1
    - Dst: boot_apply_alt_calls
      Src: /src/xen/xen/arch/x86/setup.c:2124,1
    - Dst: srat_detect_node
      Src: /src/xen/xen/arch/x86/setup.c:2136,1
    - Dst: numa_add_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2138,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2140,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/setup.c:2141,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/x86/setup.c:2143,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2145,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2146,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/setup.c:2149,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2149,1
    - Dst: cpu_down
      Src: /src/xen/xen/arch/x86/setup.c:2151,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2155,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2161,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2161,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2163,1
    - Dst: smp_cpus_done
      Src: /src/xen/xen/arch/x86/setup.c:2164,1
    - Dst: do_initcalls
      Src: /src/xen/xen/arch/x86/setup.c:2166,1
    - Dst: watchdog_setup
      Src: /src/xen/xen/arch/x86/setup.c:2169,1
    - Dst: tboot_protect_mem_regions
      Src: /src/xen/xen/arch/x86/setup.c:2171,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:2172,1
    - Dst: init_guest_cpu_policies
      Src: /src/xen/xen/arch/x86/setup.c:2174,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2179,1
    - Dst: first_boot_module_index
      Src: /src/xen/xen/arch/x86/setup.c:2190,1
    - Dst: first_boot_module_index
      Src: /src/xen/xen/arch/x86/setup.c:2195,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2196,1
    - Dst: create_dom0
      Src: /src/xen/xen/arch/x86/setup.c:2205,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/setup.c:2207,1
    - Dst: heap_init_late
      Src: /src/xen/xen/arch/x86/setup.c:2209,1
    - Dst: init_constructors
      Src: /src/xen/xen/arch/x86/setup.c:2211,1
    - Dst: console_endboot
      Src: /src/xen/xen/arch/x86/setup.c:2213,1
    - Dst: serial_endboot
      Src: /src/xen/xen/arch/x86/setup.c:2216,1
    - Dst: dmi_end_boot
      Src: /src/xen/xen/arch/x86/setup.c:2218,1
    - Dst: setup_io_bitmap
      Src: /src/xen/xen/arch/x86/setup.c:2220,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/setup.c:2225,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/setup.c:2226,1
    - Dst: get_cpu_info_from_stack
      Src: /src/xen/xen/arch/x86/setup.c:2231,1
    - Dst: unreachable
      Src: /src/xen/xen/arch/x86/setup.c:2237,1
    CyclomaticComplexity: 163
    EdgeCount: 163
    ICount: 512
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 1125
    functionDepth: 8
    functionLinenumber: 1125
    functionLinenumberEnd: 2238
    functionName: __start_xen
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - unreachable
    - get_cpu_info
    - __pa
    - set_in_cr4
    - wrmsrl
    - tsx_init
    - first_boot_module_index
    - parse_video_info
    - smp_processor_id
    - efi_enabled
    - create_dom0
    - numa_initmem_init
    - bootstrap_map_bm
    - ns16550_init
    - printk
    - xhci_dbc_uart_init
    - init_apic_mappings
    - traps_init
    - paging_init
    - panic
    - move_memory
    - kexec_reserve_area
    - PAGE_ALIGN
    - alloc_stub_page
    - set_nr_cpu_ids
    - x2apic_bsp_setup
    - bsp_traps_reinit
    - rangeset_new
    - do_presmp_initcalls
    - watchdog_setup
    - acpi_boot_init
    - pci_setup
    - maddr_to_virt
    - sort_exception_tables
    - smp_prepare_cpus
    - init_e820
    - local_irq_enable
    - PFN_UP
    - early_time_init
    - acpi_iommu_init
    - hypervisor_setup
    - init_IRQ
    - PFN_DOWN
    - move_xen
    - cpu_down
    - calculate_raw_cpu_policy
    - init_domheap_pages
    - MB
    - xsm_multiboot_init
    - pvh_print_info
    - map_pages_to_xen
    - BUG_ON
    - bzimage_headroom
    - generic_apic_probe
    - modify_xen_mappings
    - smp_prepare_boot_cpu
    - vm_init
    - percpu_init_areas
    - early_cpu_init
    - setup_max_pdx
    - init_cpu_to_node
    - early_msi_init
    - iommu_setup
    - rdmsrl
    - min_t
    - max_t
    - pvh_init
    - init_xen_time
    - cpu_up
    - multiboot_fill_boot_info
    - init_guest_cpu_policies
    - bootstrap_unmap
    - efi_boot_mem_unused
    - pfn_to_pdx
    - dmi_end_boot
    - pfn_to_paddr
    - alternative_instructions
    - early_microcode_init
    - barrier
    - console_endboot
    - strstr
    - memcpy
    - vesa_init
    - ROUNDUP
    - console_init_preirq
    - enable_nmis
    - max
    - using_2M_mapping
    - virt_to_mfn
    - rcu_init
    - timer_init
    - spin_debug_enable
    - acpi_numa_init
    - printk_once
    - console_init_irq
    - identify_cpu
    - tasklet_subsys_init
    - set_pdx_range
    - setup_force_cpu_cap
    - __va
    - boot_apply_alt_calls
    - console_init_postirq
    - destroy_xen_mappings
    - cmdline_parse
    - numa_add_cpu
    - consider_modules
    - reserve_e820_ram
    - init_irq_data
    - init_frametable
    - end_boot_allocator
    - serial_endboot
    - init_constructors
    - wrpkrs_and_cache
    - cpu_alloc_stack
    - min
    - open_softirq
    - init_speculation_mitigations
    - cpumask_weight
    - boot_cpu_has
    - l3e_from_paddr
    - dmi_scan_machine
    - console_init_ring
    - maddr_to_mfn
    - set_kexec_crash_area_size
    - normalise_cpu_order
    - initialize_keytable
    - per_cpu
    - get_cpu_info_from_stack
    - setup_io_bitmap
    - hypervisor_probe
    - acpi_boot_table_init
    - cpu_init
    - srat_parse_regions
    - BUILD_BUG_ON
    - bootsym
    - init_shadow_spec_ctrl_state
    - copy_bios_e820
    - ARRAY_SIZE
    - find_smp_config
    - l3_table_offset
    - GB
    - init_idle_domain
    - xenheap_max_mfn
    - get_smp_config
    - srat_detect_node
    - num_online_cpus
    - setup_clear_cpu_cap
    - cpu_online
    - heap_init_late
    - ehci_dbgp_init
    - _mfn
    - ASSERT
    - smp_cpus_done
    - this_cpu
    - bsp_early_traps_init
    - setup_system_domains
    - init_boot_pages
    - do_initcalls
    - zap_low_mappings
    - tboot_protect_mem_regions
    - virt_to_maddr
    - arch_init_memory
    - kexec_early_calculations
    - tboot_probe
    linkageType: ''
    returnType: void
    signature: void __start_xen(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: srat_detect_node
      Src: /src/xen/xen/arch/x86/setup.c:2136,1
    - Dst: numa_add_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2138,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2140,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/setup.c:2141,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/x86/setup.c:2143,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2145,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/setup.c:2146,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/setup.c:2149,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/setup.c:2149,1
    - Dst: cpu_down
      Src: /src/xen/xen/arch/x86/setup.c:2151,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/setup.c:2155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2133
    functionDepth: 2
    functionLinenumber: 2133
    functionLinenumberEnd: 2158
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 1
    functionsReached:
    - cpu_up
    - cpu_online
    - cpu_down
    - srat_detect_node
    - num_online_cpus
    - per_cpu
    - printk
    - cpumask_weight
    - numa_add_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( i )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/setup.c:2244,1
    - Dst: safe_strcat
      Src: /src/xen/xen/arch/x86/setup.c:2246,1
    - Dst: safe_strcat
      Src: /src/xen/xen/arch/x86/setup.c:2249,1
    - Dst: safe_strcat
      Src: /src/xen/xen/arch/x86/setup.c:2252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2240
    functionDepth: 1
    functionLinenumber: 2240
    functionLinenumberEnd: 2258
    functionName: init_xen_cap_info
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - safe_strcat
    - IS_ENABLED
    linkageType: ''
    returnType: int
    signature: int init_xen_cap_info(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/setup.c:2267,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2267,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/setup.c:2267,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2268,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/setup.c:2268,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/setup.c:2279,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2279,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2279,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2280,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2280,1
    - Dst: efi_boot_mem_unused
      Src: /src/xen/xen/arch/x86/setup.c:2285,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:2287,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2287,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2287,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/setup.c:2288,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2288,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2288,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2289,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2289,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:2292,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2292,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2292,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/setup.c:2293,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2293,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2293,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2294,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2294,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/setup.c:2300,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2300,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2300,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/setup.c:2301,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/setup.c:2301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2307
    functionName: __hwdom_init::remove_xen_ranges
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - __pa
    - efi_boot_mem_unused
    - rangeset_remove_range
    - ASSERT
    - PFN_DOWN
    - bootsym_phys
    linkageType: ''
    returnType: int
    signature: int __hwdom_init remove_xen_ranges(struct rangeset *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/setup.c:2315,1
    - Dst: is_cmos_port
      Src: /src/xen/xen/arch/x86/setup.c:2321,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/setup.c:2322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - e
    - ctx
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2325
    functionName: io_bitmap_cb
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - is_cmos_port
    - ASSERT
    - __clear_bit
    linkageType: ''
    returnType: int
    signature: "int io_bitmap_cb(\n    unsigned long s, unsigned long e, void *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/setup.c:2329,1
    - Dst: bitmap_fill
      Src: /src/xen/xen/arch/x86/setup.c:2332,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/x86/setup.c:2333,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/setup.c:2335,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/setup.c:2341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2342
    functionName: __hwdom_init::setup_io_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/setup.c
    functionUses: 0
    functionsReached:
    - BUG
    - __set_bit
    - bitmap_fill
    - rangeset_report_ranges
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void __hwdom_init setup_io_bitmap(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: identify_cpu
      Src: /src/xen/xen/arch/x86/cpuid.c:23,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpuid.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: recheck_cpu_features
    functionSourceFile: /src/xen/xen/arch/x86/cpuid.c
    functionUses: 1
    functionsReached:
    - identify_cpu
    - printk
    linkageType: ''
    returnType: bool
    signature: bool recheck_cpu_features(unsigned int cpu)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:43,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:45,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpuid.c:52,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/cpuid.c:52,1
    - Dst: xen_major_version
      Src: /src/xen/xen/arch/x86/cpuid.c:67,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/arch/x86/cpuid.c:67,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:73,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:74,1
    - Dst: host_tsc_is_safe
      Src: /src/xen/xen/arch/x86/cpuid.c:83,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpuid.c:84,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:113,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:160,1
    - Dst: flsl
      Src: /src/xen/xen/arch/x86/cpuid.c:163,1
    - Dst: get_upper_mfn_bound
      Src: /src/xen/xen/arch/x86/cpuid.c:163,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpuid.c:167,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 4
    argNames:
    - v
    - leaf
    - subleaf
    - res
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 170
    functionName: cpuid_hypervisor_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpuid.c
    functionUses: 0
    functionsReached:
    - max
    - boot_cpu_has
    - flsl
    - xen_minor_version
    - min
    - is_pv_domain
    - host_tsc_is_safe
    - is_viridian_domain
    - ASSERT_UNREACHABLE
    - xen_major_version
    - is_hvm_domain
    - get_upper_mfn_bound
    linkageType: ''
    returnType: void
    signature: "void cpuid_hypervisor_leaves(const struct vcpu *v, uint32_t leaf,\n
      \                                   uint32_t subleaf, struct cpuid_leaf *res)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpuid.c:190,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:190,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpuid.c:191,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:192,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:198,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:201,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpuid.c:205,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:205,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpuid.c:206,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:207,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:210,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:214,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:217,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:221,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:224,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:228,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:234,1
    - Dst: cpuid_viridian_leaves
      Src: /src/xen/xen/arch/x86/cpuid.c:235,1
    - Dst: cpuid_hypervisor_leaves
      Src: /src/xen/xen/arch/x86/cpuid.c:243,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpuid.c:246,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:246,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpuid.c:247,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpuid.c:248,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/cpuid.c:251,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:280,1
    - Dst: vpmu_available
      Src: /src/xen/xen/arch/x86/cpuid.c:284,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpuid.c:285,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpuid.c:285,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:287,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpuid.c:288,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:289,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpuid.c:290,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:291,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:294,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:298,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpuid.c:300,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpuid.c:301,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpuid.c:304,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/cpuid.c:361,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/cpuid.c:362,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:363,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:374,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/cpuid.c:374,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:397,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:408,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpuid.c:418,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:419,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:419,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/cpuid.c:420,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:430,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:433,1
    - Dst: vpmu_available
      Src: /src/xen/xen/arch/x86/cpuid.c:441,1
    - Dst: xstate_uncompressed_size
      Src: /src/xen/xen/arch/x86/cpuid.c:473,1
    - Dst: xstate_compressed_size
      Src: /src/xen/xen/arch/x86/cpuid.c:478,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:487,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/cpuid.c:487,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:488,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:491,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/cpuid.c:494,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/cpuid.c:494,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:495,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/cpuid.c:511,1
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/cpuid.c:511,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:512,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpuid.c:514,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpuid.c:515,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpuid.c:528,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/cpuid.c:529,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpuid.c:529,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpuid.c:530,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 137
    argCount: 4
    argNames:
    - v
    - leaf
    - subleaf
    - res
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 534
    functionName: guest_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpuid.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - cpu_has
    - IS_ENABLED
    - guest_kernel_mode
    - hvm_long_mode_active
    - hap_enabled
    - is_hvm_domain
    - ARRAY_SIZE
    - vlapic_hw_disabled
    - read_cr4
    - vcpu_vpmu
    - vpmu_is_set
    - vcpu_vlapic
    - is_viridian_domain
    - is_hardware_domain
    - xstate_uncompressed_size
    - cpuid_viridian_leaves
    - cpuid_hypervisor_leaves
    - cpufeat_mask
    - xstate_compressed_size
    - ASSERT
    - min_t
    - ASSERT_UNREACHABLE
    - array_access_nospec
    - vpmu_available
    - hvm_pae_enabled
    - is_pv_domain
    linkageType: ''
    returnType: void
    signature: "void guest_cpuid(const struct vcpu *v, uint32_t leaf,\n                 uint32_t
      subleaf, struct cpuid_leaf *res)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/compat.c:18,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/compat.c:22,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/compat.c:22,1
    - Dst: do_physdev_op
      Src: /src/xen/xen/arch/x86/compat.c:25,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/compat.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: do_physdev_op_compat
    functionSourceFile: /src/xen/xen/arch/x86/compat.c
    functionUses: 0
    functionsReached:
    - do_physdev_op
    - copy_from_guest
    - guest_handle_from_ptr
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    linkageType: ''
    returnType: ret_t
    signature: ret_t do_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_sched_op
      Src: /src/xen/xen/arch/x86/compat.c:37,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/compat.c:37,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/compat.c:40,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/x86/compat.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 50
    functionName: do_sched_op_compat
    functionSourceFile: /src/xen/xen/arch/x86/compat.c
    functionUses: 0
    functionsReached:
    - do_sched_op
    - TRACE_TIME
    - guest_handle_from_ptr
    - domain_shutdown
    linkageType: ''
    returnType: long
    signature: long do_sched_op_compat(int cmd, unsigned long arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/compat.c:54,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/compat.c:58,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/compat.c:58,1
    - Dst: do_event_channel_op
      Src: /src/xen/xen/arch/x86/compat.c:73,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/compat.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: do_event_channel_op_compat
    functionSourceFile: /src/xen/xen/arch/x86/compat.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - do_event_channel_op
    - guest_handle_from_ptr
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    linkageType: ''
    returnType: long
    signature: "long do_event_channel_op_compat(\n    XEN_GUEST_HANDLE_PARAM(evtchn_op_t)
      uop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/i387.c:31,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:32,1
    - Dst: xrstor
      Src: /src/xen/xen/arch/x86/i387.c:33,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/i387.c:34,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - mask
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: fpu_xrstor
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - set_xcr0
    - ASSERT
    - xrstor
    linkageType: ''
    returnType: void
    signature: void fpu_xrstor(struct vcpu *v, uint64_t mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/xen/xen/arch/x86/i387.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 105
    functionName: fpu_fxrstor
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: void
    signature: void fpu_fxrstor(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:116,1
    - Dst: xstate_all
      Src: /src/xen/xen/arch/x86/i387.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: vcpu_xsave_mask
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - xstate_all
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vcpu_xsave_mask(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_xsave_mask
      Src: /src/xen/xen/arch/x86/i387.c:135,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:137,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/i387.c:142,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:143,1
    - Dst: xsave
      Src: /src/xen/xen/arch/x86/i387.c:144,1
    - Dst: set_xcr0
      Src: /src/xen/xen/arch/x86/i387.c:145,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: fpu_xsave
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - set_xcr0
    - ASSERT
    - xsave
    - vcpu_xsave_mask
    linkageType: ''
    returnType: void
    signature: void fpu_xsave(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: fpu_fxsave
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fpu_fxsave(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:203,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/i387.c:203,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/i387.c:206,1
    - Dst: xstate_all
      Src: /src/xen/xen/arch/x86/i387.c:213,1
    - Dst: fpu_xrstor
      Src: /src/xen/xen/arch/x86/i387.c:216,1
    - Dst: fpu_fxrstor
      Src: /src/xen/xen/arch/x86/i387.c:218,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/i387.c:224,1
    - Dst: fpu_xrstor
      Src: /src/xen/xen/arch/x86/i387.c:228,1
    - Dst: stts
      Src: /src/xen/xen/arch/x86/i387.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - v
    - need_stts
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 235
    functionName: vcpu_restore_fpu_nonlazy
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 1
    functionsReached:
    - is_pv_vcpu
    - xstate_all
    - is_idle_vcpu
    - fpu_xrstor
    - ASSERT
    - clts
    - stts
    - fpu_fxrstor
    linkageType: ''
    returnType: void
    signature: void vcpu_restore_fpu_nonlazy(struct vcpu *v, bool need_stts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:242,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/i387.c:242,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/i387.c:245,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:250,1
    - Dst: fpu_xrstor
      Src: /src/xen/xen/arch/x86/i387.c:253,1
    - Dst: fpu_fxrstor
      Src: /src/xen/xen/arch/x86/i387.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 259
    functionName: vcpu_restore_fpu_lazy
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - fpu_xrstor
    - ASSERT
    - clts
    - fpu_fxrstor
    linkageType: ''
    returnType: void
    signature: void vcpu_restore_fpu_lazy(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/i387.c:270,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/i387.c:270,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/i387.c:273,1
    - Dst: fpu_xsave
      Src: /src/xen/xen/arch/x86/i387.c:276,1
    - Dst: fpu_fxsave
      Src: /src/xen/xen/arch/x86/i387.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 283
    functionName: _vcpu_save_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - fpu_fxsave
    - is_idle_vcpu
    - fpu_xsave
    - ASSERT
    - clts
    linkageType: ''
    returnType: bool
    signature: bool _vcpu_save_fpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _vcpu_save_fpu
      Src: /src/xen/xen/arch/x86/i387.c:287,1
    - Dst: stts
      Src: /src/xen/xen/arch/x86/i387.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: vcpu_save_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 2
    functionsReached:
    - stts
    - _vcpu_save_fpu
    linkageType: ''
    returnType: void
    signature: void vcpu_save_fpu(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _vcpu_save_fpu
      Src: /src/xen/xen/arch/x86/i387.c:293,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/i387.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: save_fpu_enable
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 0
    functionsReached:
    - _vcpu_save_fpu
    - clts
    linkageType: ''
    returnType: void
    signature: void save_fpu_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstate_alloc_save_area
      Src: /src/xen/xen/arch/x86/i387.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: vcpu_init_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 1
    functionsReached:
    - xstate_alloc_save_area
    linkageType: ''
    returnType: int
    signature: int vcpu_init_fpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/i387.c:307,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/i387.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: vcpu_reset_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 1
    functionsReached:
    - VCPU_MAP_XSAVE_AREA
    - VCPU_UNMAP_XSAVE_AREA
    linkageType: ''
    returnType: void
    signature: void vcpu_reset_fpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/i387.c:324,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/i387.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: vcpu_setup_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 1
    functionsReached:
    - VCPU_MAP_XSAVE_AREA
    - VCPU_UNMAP_XSAVE_AREA
    linkageType: ''
    returnType: void
    signature: void vcpu_setup_fpu(struct vcpu *v, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstate_free_save_area
      Src: /src/xen/xen/arch/x86/i387.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: vcpu_destroy_fpu
    functionSourceFile: /src/xen/xen/arch/x86/i387.c
    functionUses: 2
    functionsReached:
    - xstate_free_save_area
    linkageType: ''
    returnType: void
    signature: void vcpu_destroy_fpu(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/tsx.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: parse_tsx
    functionSourceFile: /src/xen/xen/arch/x86/tsx.c
    functionUses: 0
    functionsReached:
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_tsx(const char *s)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/tsx.c:53,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/tsx.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tsx.c:89,1
    - Dst: set_in_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/tsx.c:104,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/tsx.c:126,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/tsx.c:149,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/tsx.c:152,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/tsx.c:154,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/tsx.c:155,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/tsx.c:202,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/tsx.c:224,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/tsx.c:225,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/tsx.c:252,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/tsx.c:261,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/tsx.c:269,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/tsx.c:305,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/tsx.c:308,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 310
    functionName: tsx_init
    functionSourceFile: /src/xen/xen/arch/x86/tsx.c
    functionUses: 3
    functionsReached:
    - unlikely
    - wrmsrns
    - rdmsr
    - set_in_mcu_opt_ctrl
    - rdmsrl
    - setup_clear_cpu_cap
    - printk_once
    - printk
    - this_cpu
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void tsx_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/alternative.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 123
    functionName: arch_init_ideal_nops
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: void arch_init_ideal_nops(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/alternative.c:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - insns
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: init_or_livepatch::add_nops
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void init_or_livepatch add_nops(void *insns, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/alternative.c:163,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/alternative.c:165,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/alternative.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 180
    functionName: place_ret
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - this_cpu
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void *place_ret(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/alternative.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - addr
    - opcode
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: init_or_livepatch::text_poke
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: 'void init_or_livepatch

      text_poke(void *addr, const void *opcode, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_kernel_text
      Src: /src/xen/xen/arch/x86/alternative.c:242,1
    - Dst: is_endbr64
      Src: /src/xen/xen/arch/x86/alternative.c:242,1
    - Dst: place_endbr64_poison
      Src: /src/xen/xen/arch/x86/alternative.c:245,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 250
    functionName: seal_endbr64
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - is_endbr64
    - is_kernel_text
    - printk
    - place_endbr64_poison
    linkageType: ''
    returnType: void
    signature: void seal_endbr64(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:264,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:276,1
    - Dst: ALT_REPL_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:277,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:285,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:287,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:293,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:301,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:303,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:318,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/alternative.c:329,1
    - Dst: init_or_livepatch::add_nops
      Src: /src/xen/xen/arch/x86/alternative.c:344,1
    - Dst: init_or_livepatch::text_poke
      Src: /src/xen/xen/arch/x86/alternative.c:345,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/alternative.c:349,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/alternative.c:354,1
    - Dst: init_or_livepatch::add_nops
      Src: /src/xen/xen/arch/x86/alternative.c:363,1
    - Dst: init_or_livepatch::text_poke
      Src: /src/xen/xen/arch/x86/alternative.c:364,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct alt_instr*
    - struct alt_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 368
    functionName: init_or_livepatch::_apply_alternatives
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - init_or_livepatch::text_poke
    - boot_cpu_has
    - ALT_REPL_PTR
    - IS_ENABLED
    - printk
    - init_or_livepatch::add_nops
    - memcpy
    - ALT_ORIG_PTR
    linkageType: ''
    returnType: int
    signature: "int init_or_livepatch _apply_alternatives(struct alt_instr *start,\n
      \                                                struct alt_instr *end)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALT_CALL_PTR
      Src: /src/xen/xen/arch/x86/alternative.c:388,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/alternative.c:392,1
    - Dst: ALT_CALL_LEN
      Src: /src/xen/xen/arch/x86/alternative.c:392,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:396,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/alternative.c:419,1
    - Dst: is_endbr64
      Src: /src/xen/xen/arch/x86/alternative.c:421,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/alternative.c:424,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/alternative.c:430,1
    - Dst: init_or_livepatch::text_poke
      Src: /src/xen/xen/arch/x86/alternative.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct alt_call*
    - struct alt_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 454
    functionName: init_or_livepatch::apply_alt_calls
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - is_endbr64
    - init_or_livepatch::text_poke
    - IS_ENABLED
    - ALT_CALL_LEN
    - BUILD_BUG_ON
    - ASSERT
    - ALT_CALL_PTR
    - printk
    linkageType: ''
    returnType: int
    signature: "int init_or_livepatch apply_alt_calls(\n    const struct alt_call
      *start, const struct alt_call *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _apply_alternatives
      Src: /src/xen/xen/arch/x86/alternative.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct alt_instr*
    - struct alt_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: apply_alternatives
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 1
    functionsReached:
    - _apply_alternatives
    linkageType: ''
    returnType: int
    signature: int apply_alternatives(struct alt_instr *start, struct alt_instr *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apply_alt_calls
      Src: /src/xen/xen/arch/x86/alternative.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct alt_call*
    - struct alt_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: livepatch_apply_alt_calls
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - apply_alt_calls
    linkageType: ''
    returnType: int
    signature: "int livepatch_apply_alt_calls(const struct alt_call *start,\n                              const
      struct alt_call *end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/arch/x86/alternative.c:500,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/alternative.c:500,1
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/alternative.c:503,1
    - Dst: _apply_alternatives
      Src: /src/xen/xen/arch/x86/alternative.c:507,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/alternative.c:510,1
    - Dst: apply_alt_calls
      Src: /src/xen/xen/arch/x86/alternative.c:515,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/alternative.c:517,1
    - Dst: seal_endbr64
      Src: /src/xen/xen/arch/x86/alternative.c:519,1
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/arch/x86/alternative.c:526,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/alternative.c:526,1
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/alternative.c:529,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - regs
    - cpu
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 535
    functionName: nmi_apply_alternatives
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - MB
    - _apply_alternatives
    - panic
    - apply_alt_calls
    - flush_local
    - modify_xen_mappings_lite
    - seal_endbr64
    linkageType: ''
    returnType: int
    signature: "int nmi_apply_alternatives(\n    const struct cpu_user_regs *regs,
      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/alternative.c:556,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/alternative.c:556,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/alternative.c:560,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/alternative.c:566,1
    - Dst: self_nmi
      Src: /src/xen/xen/arch/x86/alternative.c:569,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/alternative.c:577,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/alternative.c:578,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/alternative.c:580,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/alternative.c:581,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/alternative.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - what
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 584
    functionName: _alternative_instructions
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 0
    functionsReached:
    - mdelay
    - panic
    - self_nmi
    - ASSERT
    - barrier
    - set_nmi_callback
    - ACCESS_ONCE
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void _alternative_instructions(unsigned int what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_init_ideal_nops
      Src: /src/xen/xen/arch/x86/alternative.c:588,1
    - Dst: _alternative_instructions
      Src: /src/xen/xen/arch/x86/alternative.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: alternative_instructions
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 2
    functionsReached:
    - _alternative_instructions
    - arch_init_ideal_nops
    linkageType: ''
    returnType: void
    signature: void alternative_instructions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/alternative.c:594,1
    - Dst: _alternative_instructions
      Src: /src/xen/xen/arch/x86/alternative.c:595,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/alternative.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: boot_apply_alt_calls
    functionSourceFile: /src/xen/xen/arch/x86/alternative.c
    functionUses: 1
    functionsReached:
    - local_irq_disable
    - _alternative_instructions
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void boot_apply_alt_calls(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid4_cache_lookup
      Src: /src/xen/xen/arch/x86/sysctl.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: l3_cache_get
    functionSourceFile: /src/xen/xen/arch/x86/sysctl.c
    functionUses: 0
    functionsReached:
    - cpuid4_cache_lookup
    linkageType: ''
    returnType: void
    signature: void l3_cache_get(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: core_parking_remove
      Src: /src/xen/xen/arch/x86/sysctl.c:64,1
    - Dst: cpu_up_helper
      Src: /src/xen/xen/arch/x86/sysctl.c:67,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:67,1
    - Dst: cpu_down_helper
      Src: /src/xen/xen/arch/x86/sysctl.c:68,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:68,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/x86/sysctl.c:77,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/sysctl.c:88,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/sysctl.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 92
    functionName: smt_up_down_helper
    functionSourceFile: /src/xen/xen/arch/x86/sysctl.c
    functionUses: 0
    functionsReached:
    - cpu_up_helper
    - core_parking_remove
    - CPUMASK_PR
    - _p
    - printk
    - cpu_down_helper
    - general_preempt_check
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check smt_up_down_helper(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: core_parking_remove
      Src: /src/xen/xen/arch/x86/sysctl.c:64,1
    - Dst: cpu_up_helper
      Src: /src/xen/xen/arch/x86/sysctl.c:67,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:67,1
    - Dst: cpu_down_helper
      Src: /src/xen/xen/arch/x86/sysctl.c:68,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:68,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/x86/sysctl.c:77,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/arch/x86/sysctl.c
    functionUses: 1
    functionsReached:
    - cpu_up_helper
    - core_parking_remove
    - _p
    - cpu_down_helper
    - general_preempt_check
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( cpu )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/sysctl.c:96,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/sysctl.c:97,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/sysctl.c:100,1
    - Dst: hvm_hap_supported
      Src: /src/xen/xen/arch/x86/sysctl.c:102,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/sysctl.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pi
    argTypes:
    - struct xen_sysctl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: arch_do_physinfo
    functionSourceFile: /src/xen/xen/arch/x86/sysctl.c
    functionUses: 0
    functionsReached:
    - hvm_hap_supported
    - min
    - memcpy
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:129,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:135,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/sysctl.c:155,1
    - Dst: xsm_resource_plug_core
      Src: /src/xen/xen/arch/x86/sysctl.c:164,1
    - Dst: xsm_resource_unplug_core
      Src: /src/xen/xen/arch/x86/sysctl.c:165,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/sysctl.c:168,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/sysctl.c:173,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/sysctl.c:197,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/sysctl.c:203,1
    - Dst: l3_cache_get
      Src: /src/xen/xen/arch/x86/sysctl.c:204,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/sysctl.c:206,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/sysctl.c:206,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:221,1
    - Dst: psr_get_info
      Src: /src/xen/xen/arch/x86/sysctl.c:234,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:235,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:246,1
    - Dst: psr_get_info
      Src: /src/xen/xen/arch/x86/sysctl.c:251,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:252,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:263,1
    - Dst: psr_get_info
      Src: /src/xen/xen/arch/x86/sysctl.c:268,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:269,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:280,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:294,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/sysctl.c:317,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:320,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/sysctl.c:327,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:331,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/sysctl.c:343,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:346,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:352,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:381,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/sysctl.c:387,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/sysctl.c:388,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/sysctl.c:397,1
    - Dst: x86_cpuid_copy_to_buffer
      Src: /src/xen/xen/arch/x86/sysctl.c:399,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:405,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/sysctl.c:413,1
    - Dst: x86_msr_copy_to_buffer
      Src: /src/xen/xen/arch/x86/sysctl.c:415,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/sysctl.c:421,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 178
    argCount: 1
    argNames:
    - sysctl
    argTypes:
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 434
    functionName: arch_do_sysctl
    functionSourceFile: /src/xen/xen/arch/x86/sysctl.c
    functionUses: 0
    functionsReached:
    - xsm_resource_plug_core
    - on_selected_cpus
    - _p
    - l3_cache_get
    - psr_get_info
    - ARRAY_SIZE
    - smp_processor_id
    - guest_handle_is_null
    - x86_cpu_policy_to_featureset
    - copy_to_guest
    - psr_cmt_enabled
    - cpu_online
    - x86_cpuid_copy_to_buffer
    - x86_msr_copy_to_buffer
    - min_t
    - cpumask_of
    - __copy_field_to_guest
    - xsm_resource_unplug_core
    - array_index_nospec
    - __copy_to_guest
    - continue_hypercall_on_cpu
    linkageType: ''
    returnType: long
    signature: "long arch_do_sysctl(\n    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)
      u_sysctl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain_page.c:26,1
    - Dst: efi_rs_using_pgtables
      Src: /src/xen/xen/arch/x86/domain_page.c:40,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain_page.c:48,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/domain_page.c:48,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:48,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/domain_page.c:51,1
    - Dst: sync_local_execstate
      Src: /src/xen/xen/arch/x86/domain_page.c:52,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:54,1
    - Dst: cr3_pa
      Src: /src/xen/xen/arch/x86/domain_page.c:54,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/domain_page.c:54,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/domain_page.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 58
    functionName: mapcache_current_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - read_cr3
    - cr3_pa
    - __pa
    - smp_processor_id
    - sync_local_execstate
    - pagetable_is_null
    - this_cpu
    - ASSERT
    - efi_rs_using_pgtables
    - unlikely
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *mapcache_current_vcpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain_page.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: mapcache_override_current
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void mapcache_override_current(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: mapcache_l2_entry
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mapcache_l2_entry(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: MAPCACHE_L1ENT
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPCACHE_L1ENT(idx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:80,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/domain_page.c:80,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/domain_page.c:80,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/domain_page.c:81,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:81,1
    - Dst: mapcache_current_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:84,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:85,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/domain_page.c:86,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:86,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/domain_page.c:91,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:91,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/domain_page.c:93,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/domain_page.c:95,1
    - Dst: MAPHASH_HASHFN
      Src: /src/xen/xen/arch/x86/domain_page.c:97,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:97,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:98,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:101,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:103,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:104,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/domain_page.c:104,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:104,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:104,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/domain_page.c:108,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain_page.c:111,1
    - Dst: NEED_FLUSH
      Src: /src/xen/xen/arch/x86/domain_page.c:114,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/domain_page.c:114,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/domain_page.c:116,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/domain_page.c:117,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/domain_page.c:121,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/domain_page.c:122,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/domain_page.c:127,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/domain_page.c:130,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/arch/x86/domain_page.c:134,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/arch/x86/domain_page.c:135,1
    - Dst: MAPHASH_HASHFN
      Src: /src/xen/xen/arch/x86/domain_page.c:139,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:139,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:145,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/domain_page.c:145,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:145,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/domain_page.c:146,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:146,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/domain_page.c:146,1
    - Dst: MAPHASH_HASHFN
      Src: /src/xen/xen/arch/x86/domain_page.c:153,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:153,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/domain_page.c:155,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/domain_page.c:158,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/domain_page.c:159,1
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/x86/domain_page.c:161,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain_page.c:164,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/domain_page.c:167,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/domain_page.c:169,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:169,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:169,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/domain_page.c:172,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/domain_page.c:173,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 174
    functionName: map_domain_page
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 40
    functionsReached:
    - l1e_from_mfn
    - __pa
    - find_next_zero_bit
    - find_first_zero_bit
    - l1e_write
    - MAPCACHE_L1ENT
    - spin_lock
    - PFN_DOWN
    - BITS_TO_LONGS
    - flush_tlb_local
    - is_pv_vcpu
    - l1e_get_pfn
    - BUG_ON
    - mfn_eq
    - mapcache_current_vcpu
    - spin_unlock
    - mfn_x
    - xchg
    - ASSERT
    - l1e_empty
    - l1e_get_mfn
    - this_cpu
    - NEED_FLUSH
    - local_irq_save
    - mfn_to_virt
    - local_irq_restore
    - set_bit
    - perfc_incr
    - tlbflush_current_time
    - MAPHASH_HASHFN
    - pfn_to_paddr
    - BITMAP_LAST_WORD_MASK
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *map_domain_page(mfn_t mfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:187,1
    - Dst: mapcache_current_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:189,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:190,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:190,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:193,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/domain_page.c:195,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/domain_page.c:196,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:196,1
    - Dst: MAPHASH_HASHFN
      Src: /src/xen/xen/arch/x86/domain_page.c:197,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/domain_page.c:199,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:203,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:204,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:212,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/domain_page.c:212,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:212,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/domain_page.c:214,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:214,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/domain_page.c:214,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain_page.c:216,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/domain_page.c:226,1
    - Dst: MAPCACHE_L1ENT
      Src: /src/xen/xen/arch/x86/domain_page.c:226,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/domain_page.c:226,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/domain_page.c:228,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/domain_page.c:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 232
    functionName: unmap_domain_page
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 38
    functionsReached:
    - mapcache_current_vcpu
    - is_pv_vcpu
    - MAPHASH_HASHFN
    - l1e_get_pfn
    - l1e_write
    - MAPCACHE_L1ENT
    - ASSERT
    - l1e_empty
    - PFN_DOWN
    - local_irq_restore
    - local_irq_save
    - set_bit
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:239,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/domain_page.c:239,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/domain_page.c:242,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/domain_page.c:242,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domain_page.c:246,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/domain_page.c:247,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/domain_page.c:247,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/domain_page.c:249,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/domain_page.c:249,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/domain_page.c:254,1
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/domain_page.c:256,1
    - Dst: NIL
      Src: /src/xen/xen/arch/x86/domain_page.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 259
    functionName: mapcache_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 1
    functionsReached:
    - __pa
    - PFN_UP
    - NIL
    - BUILD_BUG_ON
    - BITS_TO_LONGS
    - ASSERT
    - is_pv_domain
    - PFN_DOWN
    - spin_lock_init
    - create_perdomain_mapping
    linkageType: ''
    returnType: int
    signature: int mapcache_domain_init(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/domain_page.c:267,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/domain_page.c:267,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/domain_page.c:269,1
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/domain_page.c:275,1
    - Dst: NIL
      Src: /src/xen/xen/arch/x86/domain_page.c:276,1
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/domain_page.c:280,1
    - Dst: NIL
      Src: /src/xen/xen/arch/x86/domain_page.c:281,1
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/domain_page.c:283,1
    - Dst: NIL
      Src: /src/xen/xen/arch/x86/domain_page.c:284,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/domain_page.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 303
    functionName: mapcache_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 1
    functionsReached:
    - is_pv_vcpu
    - NIL
    - PFN_UP
    - BUILD_BUG_ON
    - BITS_TO_LONGS
    - create_perdomain_mapping
    linkageType: ''
    returnType: int
    signature: int mapcache_vcpu_init(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:307,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/domain_page.c:307,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/domain_page.c:310,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:313,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/domain_page.c:313,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/domain_page.c:313,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/domain_page.c:314,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/domain_page.c:314,1
    - Dst: vmap
      Src: /src/xen/xen/arch/x86/domain_page.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 318
    functionName: map_domain_page_global
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 1
    functionsReached:
    - __pa
    - mfn_to_virt
    - mfn_x
    - ASSERT
    - PFN_DOWN
    - vmap
    - in_irq
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void *map_domain_page_global(mfn_t mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:327,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/x86/domain_page.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: unmap_domain_page_global
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 1
    functionsReached:
    - vunmap
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page_global(const void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:338,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:338,1
    - Dst: vmap_to_mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:341,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/domain_page.c:343,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/domain_page.c:345,1
    - Dst: l1_linear_offset
      Src: /src/xen/xen/arch/x86/domain_page.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: domain_page_map_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/domain_page.c
    functionUses: 3
    functionsReached:
    - vmap_to_mfn
    - virt_to_mfn
    - _mfn
    - ASSERT
    - l1e_get_mfn
    - l1_linear_offset
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t domain_page_map_to_mfn(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/msr.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: init_vcpu_msr_policy
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 1
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: int
    signature: int init_vcpu_msr_policy(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/msr.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: guest_rdmsr_xen
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 0
    functionsReached:
    - is_viridian_domain
    linkageType: ''
    returnType: int
    signature: int guest_rdmsr_xen(const struct vcpu *v, uint32_t idx, uint64_t *val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/msr.c:65,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/msr.c:79,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/msr.c:85,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/msr.c:87,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/msr.c:90,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/msr.c:92,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/msr.c:94,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/msr.c:94,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/msr.c:98,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/msr.c:100,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/msr.c:100,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/msr.c:104,1
    - Dst: init_hypercall_page
      Src: /src/xen/xen/arch/x86/msr.c:105,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/msr.c:106,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/msr.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 115
    functionName: guest_wrmsr_xen
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - page_to_mfn
    - unmap_domain_page
    - get_page_type
    - put_page_and_type
    - init_hypercall_page
    - _gfn
    - mfn_x
    - p2m_mem_paging_populate
    - __map_domain_page
    - put_page
    - p2m_is_paging
    - is_viridian_domain
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: int guest_wrmsr_xen(struct vcpu *v, uint32_t idx, uint64_t val)
  - BBCount: 88
    BranchProfiles: []
    Callsites:
    - Dst: MSR_RTIT_ADDR_B
      Src: /src/xen/xen/arch/x86/msr.c:139,1
    - Dst: vmce_has_lmce
      Src: /src/xen/xen/arch/x86/msr.c:165,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/msr.c:175,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/msr.c:179,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/msr.c:195,1
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/msr.c:221,1
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/msr.c:221,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/msr.c:222,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/msr.c:222,1
    - Dst: vmce_rdmsr
      Src: /src/xen/xen/arch/x86/msr.c:224,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/msr.c:243,1
    - Dst: is_cpufreq_controller
      Src: /src/xen/xen/arch/x86/msr.c:243,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/msr.c:243,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/msr.c:259,1
    - Dst: guest_rdmsr_x2apic
      Src: /src/xen/xen/arch/x86/msr.c:262,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/msr.c:278,1
    - Dst: guest_rdmsr_viridian
      Src: /src/xen/xen/arch/x86/msr.c:280,1
    - Dst: guest_rdmsr_xen
      Src: /src/xen/xen/arch/x86/msr.c:286,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msr.c:307,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/msr.c:309,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/msr.c:323,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/msr.c:325,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/msr.c:357,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/msr.c:358,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/msr.c:362,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/msr.c:364,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msr.c:379,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/msr.c:384,1
    - Dst: pv_get_reg
      Src: /src/xen/xen/arch/x86/msr.c:385,1
    - Dst: hvm_get_reg
      Src: /src/xen/xen/arch/x86/msr.c:387,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 195
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 392
    functionName: guest_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 1
    functionsReached:
    - hvm_get_reg
    - likely
    - BUILD_BUG_ON
    - is_cpufreq_controller
    - rdmsr_safe
    - vmce_has_lmce
    - is_hvm_domain
    - MSR_IA32_MCx_MISC
    - ARRAY_SIZE
    - is_viridian_domain
    - is_hardware_domain
    - MSR_IA32_MCx_CTL
    - guest_rdmsr_viridian
    - rdmsrl
    - ASSERT
    - guest_rdmsr_x2apic
    - array_index_nospec
    - pv_get_reg
    - guest_rdmsr_xen
    - MSR_IA32_MCx_CTL2
    - is_pv_domain
    - MSR_RTIT_ADDR_B
    - vmce_rdmsr
    linkageType: ''
    returnType: int
    signature: int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 417
    functionName: msr_spec_ctrl_valid_bits
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t msr_spec_ctrl_valid_bits(const struct cpu_policy *cp)
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: MSR_RTIT_ADDR_B
      Src: /src/xen/xen/arch/x86/msr.c:443,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/msr.c:456,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/msr.c:473,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/msr.c:485,1
    - Dst: msr_spec_ctrl_valid_bits
      Src: /src/xen/xen/arch/x86/msr.c:492,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/msr.c:507,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/msr.c:518,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/msr.c:534,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/msr.c:536,1
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/msr.c:541,1
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/msr.c:541,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/msr.c:542,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/msr.c:542,1
    - Dst: vmce_wrmsr
      Src: /src/xen/xen/arch/x86/msr.c:544,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/msr.c:559,1
    - Dst: is_cpufreq_controller
      Src: /src/xen/xen/arch/x86/msr.c:559,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/msr.c:559,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/msr.c:569,1
    - Dst: guest_wrmsr_x2apic
      Src: /src/xen/xen/arch/x86/msr.c:572,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/msr.c:578,1
    - Dst: get_xcr0
      Src: /src/xen/xen/arch/x86/msr.c:589,1
    - Dst: handle_xsetbv
      Src: /src/xen/xen/arch/x86/msr.c:592,1
    - Dst: handle_xsetbv
      Src: /src/xen/xen/arch/x86/msr.c:596,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/msr.c:615,1
    - Dst: guest_wrmsr_viridian
      Src: /src/xen/xen/arch/x86/msr.c:617,1
    - Dst: guest_wrmsr_xen
      Src: /src/xen/xen/arch/x86/msr.c:623,1
    - Dst: wrmsr_tsc_aux
      Src: /src/xen/xen/arch/x86/msr.c:634,1
    - Dst: amd_set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/msr.c:657,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/msr.c:676,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/msr.c:678,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/msr.c:681,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/msr.c:692,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/msr.c:697,1
    - Dst: pv_set_reg
      Src: /src/xen/xen/arch/x86/msr.c:698,1
    - Dst: hvm_set_reg
      Src: /src/xen/xen/arch/x86/msr.c:700,1
    CyclomaticComplexity: 99
    EdgeCount: 99
    ICount: 189
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 705
    functionName: guest_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/msr.c
    functionUses: 1
    functionsReached:
    - pv_set_reg
    - wrmsr_safe
    - likely
    - BUILD_BUG_ON
    - wrmsrl
    - is_cpufreq_controller
    - get_xcr0
    - is_hvm_domain
    - wrmsr_tsc_aux
    - msr_spec_ctrl_valid_bits
    - MSR_IA32_MCx_MISC
    - ARRAY_SIZE
    - guest_wrmsr_x2apic
    - is_canonical_address
    - is_viridian_domain
    - MSR_IA32_MCx_CTL
    - amd_set_legacy_ssbd
    - guest_wrmsr_viridian
    - ASSERT
    - vmce_wrmsr
    - MSR_RTIT_ADDR_B
    - handle_xsetbv
    - array_index_nospec
    - hvm_set_reg
    - ctxt_switch_levelling
    - is_pv_domain
    - MSR_IA32_MCx_CTL2
    - guest_wrmsr_xen
    linkageType: ''
    returnType: int
    signature: int guest_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: cpu_has_amd_erratum
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_has_amd_erratum(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps.c:94,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/traps.c:94,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/traps.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: cpu_regs_fred_info
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - read_cr4
    - container_of
    linkageType: ''
    returnType: void
    signature: void cpu_regs_fred_info(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:109,1
    - Dst: xen_major_version
      Src: /src/xen/xen/arch/x86/traps.c:110,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/arch/x86/traps.c:110,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/arch/x86/traps.c:110,1
    - Dst: xen_build_info
      Src: /src/xen/xen/arch/x86/traps.c:111,1
    - Dst: print_tainted
      Src: /src/xen/xen/arch/x86/traps.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: print_xen_info
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - print_tainted
    - xen_extra_version
    - xen_minor_version
    - printk
    - xen_build_info
    - xen_major_version
    linkageType: ''
    returnType: void
    signature: void print_xen_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/traps.c:122,1
    - Dst: read_cr2
      Src: /src/xen/xen/arch/x86/traps.c:123,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/traps.c:124,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/traps.c:125,1
    - Dst: __rdfsbase
      Src: /src/xen/xen/arch/x86/traps.c:135,1
    - Dst: __rdgsbase
      Src: /src/xen/xen/arch/x86/traps.c:136,1
    - Dst: __rdgs_shadow
      Src: /src/xen/xen/arch/x86/traps.c:137,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/traps.c:141,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/traps.c:142,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/traps.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct extra_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 150
    functionName: read_registers
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - rdmsr
    - read_cr2
    - read_cr4
    - read_cr0
    - __rdfsbase
    - __rdgs_shadow
    - __rdgsbase
    linkageType: ''
    returnType: void
    signature: void read_registers(struct extra_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:162,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:165,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:168,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:171,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:175,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:179,1
    - Dst: hvm_get_reg
      Src: /src/xen/xen/arch/x86/traps.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - v
    - regs
    - state
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - struct extra_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 183
    functionName: get_hvm_registers
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - hvm_get_reg
    - hvm_get_segment_register
    linkageType: ''
    returnType: void
    signature: "void get_hvm_registers(struct vcpu *v, struct cpu_user_regs *regs,\n
      \                             struct extra_state *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:195,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:197,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:197,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:198,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:200,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/traps.c:200,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:201,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:202,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:203,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:205,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:207,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:209,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:211,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:213,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:215,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:217,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:218,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - regs
    - state
    - context
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct extra_state*
    - enum context
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 223
    functionName: _show_registers
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - is_idle_vcpu
    - printk
    - _p
    linkageType: ''
    returnType: void
    signature: "void _show_registers(\n    const struct cpu_user_regs *regs, const
      struct extra_state *state,\n    enum context context, const struct vcpu *v)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:232,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:232,1
    - Dst: get_hvm_registers
      Src: /src/xen/xen/arch/x86/traps.c:234,1
    - Dst: read_registers
      Src: /src/xen/xen/arch/x86/traps.c:239,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:241,1
    - Dst: arch_get_cr2
      Src: /src/xen/xen/arch/x86/traps.c:244,1
    - Dst: print_xen_info
      Src: /src/xen/xen/arch/x86/traps.c:252,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:253,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/traps.c:253,1
    - Dst: _show_registers
      Src: /src/xen/xen/arch/x86/traps.c:254,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:256,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/traps.c:260,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/traps.c:261,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:264,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:265,1
    - Dst: canonicalise_addr
      Src: /src/xen/xen/arch/x86/traps.c:265,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:266,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:267,1
    - Dst: canonicalise_addr
      Src: /src/xen/xen/arch/x86/traps.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 269
    functionName: show_registers
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 1
    functionsReached:
    - read_registers
    - arch_get_cr2
    - is_hvm_vcpu
    - _show_registers
    - smp_processor_id
    - print_xen_info
    - rdmsrl
    - canonicalise_addr
    - guest_mode
    - get_hvm_registers
    - printk
    - _p
    linkageType: ''
    returnType: void
    signature: void show_registers(const struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:278,1
    - Dst: get_hvm_registers
      Src: /src/xen/xen/arch/x86/traps.c:281,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:287,1
    - Dst: arch_get_cr2
      Src: /src/xen/xen/arch/x86/traps.c:291,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/traps.c:292,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/traps.c:300,1
    - Dst: _show_registers
      Src: /src/xen/xen/arch/x86/traps.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 315
    functionName: vcpu_show_registers
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - arch_get_cr2
    - is_hvm_vcpu
    - _show_registers
    - guest_kernel_mode
    - get_hvm_registers
    - SWAP
    - pagetable_get_paddr
    linkageType: ''
    returnType: void
    signature: void vcpu_show_registers(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/traps.c:319,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:325,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/traps.c:326,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:329,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:329,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:330,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:331,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:332,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:333,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:333,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/traps.c:334,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:335,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:336,1
    - Dst: l4e_get_intpte
      Src: /src/xen/xen/arch/x86/traps.c:336,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:337,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:338,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:338,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:341,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:341,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:342,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:343,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:344,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:345,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:345,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/traps.c:346,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:347,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:348,1
    - Dst: l3e_get_intpte
      Src: /src/xen/xen/arch/x86/traps.c:348,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:349,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:350,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:351,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:352,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:352,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:355,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:355,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:356,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:357,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:358,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:359,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:359,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/traps.c:360,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:361,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:362,1
    - Dst: l2e_get_intpte
      Src: /src/xen/xen/arch/x86/traps.c:362,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:363,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:364,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:365,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:366,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:366,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:369,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:369,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:370,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:371,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:372,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/traps.c:373,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:373,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/traps.c:374,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:375,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:376,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/traps.c:376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 377
    functionName: show_page_walk
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - read_cr3
    - l3e_get_pfn
    - map_domain_page
    - get_gpfn_from_mfn
    - l1e_get_pfn
    - l3_table_offset
    - mfn_valid
    - l3e_get_flags
    - printk
    - is_canonical_address
    - l1_table_offset
    - l2e_get_pfn
    - l4_table_offset
    - l4e_get_pfn
    - _mfn
    - l4e_get_intpte
    - l2e_get_flags
    - unmap_domain_page
    - l4e_get_flags
    - l3e_get_intpte
    - l2_table_offset
    - l2e_get_intpte
    linkageType: ''
    returnType: void
    signature: void show_page_walk(unsigned long addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:384,1
    - Dst: stac
      Src: /src/xen/xen/arch/x86/traps.c:387,1
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/traps.c:395,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:418,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:419,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:419,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:423,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:426,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:428,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:432,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:433,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:435,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:438,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:440,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:441,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:443,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 447
    functionName: show_code
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - _ASM_EXTABLE
    - guest_mode
    - _p
    - printk
    - stac
    linkageType: ''
    returnType: void
    signature: void show_code(const struct cpu_user_regs *regs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:456,1
    - Dst: __compat_access_ok
      Src: /src/xen/xen/arch/x86/traps.c:458,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:460,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/traps.c:469,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:470,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:471,1
    - Dst: do_page_walk
      Src: /src/xen/xen/arch/x86/traps.c:475,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:478,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:483,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/traps.c:493,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:496,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:497,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:502,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:503,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/traps.c:507,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:510,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:511,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 512
    functionName: compat_show_guest_stack
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - for_each_vcpu
    - do_page_walk
    - guest_kernel_mode
    - __get_guest
    - __compat_access_ok
    - printk
    - pagetable_get_pfn
    - UNMAP_DOMAIN_PAGE
    linkageType: ''
    returnType: void
    signature: "void compat_show_guest_stack(struct vcpu *v,\n                                    const
      struct cpu_user_regs *regs)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:522,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:525,1
    - Dst: compat_show_guest_stack
      Src: /src/xen/xen/arch/x86/traps.c:527,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:532,1
    - Dst: access_ok
      Src: /src/xen/xen/arch/x86/traps.c:534,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:536,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:542,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:544,1
    - Dst: maddr_get_owner
      Src: /src/xen/xen/arch/x86/traps.c:548,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/traps.c:548,1
    - Dst: do_page_walk
      Src: /src/xen/xen/arch/x86/traps.c:550,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:553,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/traps.c:566,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:569,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:570,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:575,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:576,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:576,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/traps.c:580,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:583,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:584,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 585
    functionName: show_guest_stack
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 1
    functionsReached:
    - read_cr3
    - is_hvm_vcpu
    - maddr_get_owner
    - do_page_walk
    - guest_kernel_mode
    - access_ok
    - __get_guest
    - printk
    - _p
    - is_pv_32bit_vcpu
    - UNMAP_DOMAIN_PAGE
    - compat_show_guest_stack
    linkageType: ''
    returnType: void
    signature: void show_guest_stack(struct vcpu *v, const struct cpu_user_regs *regs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:594,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/traps.c:595,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/traps.c:597,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:607,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:609,1
    - Dst: hvm_vcpu_virtual_to_linear
      Src: /src/xen/xen/arch/x86/traps.c:611,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:614,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:630,1
    - Dst: hvm_copy_from_vcpu_linear
      Src: /src/xen/xen/arch/x86/traps.c:632,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:635,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:639,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:647,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:648,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 650
    functionName: show_hvm_stack
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - hvm_vcpu_virtual_to_linear
    - hvm_copy_from_vcpu_linear
    - printk
    - hvm_long_mode_active
    - hvm_get_segment_register
    linkageType: ''
    returnType: void
    signature: void show_hvm_stack(struct vcpu *v, const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_page
      Src: /src/xen/xen/arch/x86/traps.c:675,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:678,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sp
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 688
    functionName: get_stack_trace_bottom
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - get_stack_page
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_stack_trace_bottom(unsigned long sp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_page
      Src: /src/xen/xen/arch/x86/traps.c:693,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:696,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sp
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: get_shstk_bottom
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - get_stack_page
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_shstk_bottom(unsigned long sp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_page
      Src: /src/xen/xen/arch/x86/traps.c:705,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:708,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sp
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 716
    functionName: get_stack_dump_bottom
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - get_stack_page
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_stack_dump_bottom(unsigned long sp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_trace_bottom
      Src: /src/xen/xen/arch/x86/traps.c:728,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:733,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:734,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:734,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sp
    - bp
    argTypes:
    - unsigned long
    - unsigned long __maybe_unused
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 736
    functionName: _show_trace
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - printk
    - is_active_kernel_text
    - get_stack_trace_bottom
    - _p
    linkageType: ''
    returnType: void
    signature: void _show_trace(unsigned long sp, unsigned long __maybe_unused bp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_trace_bottom
      Src: /src/xen/xen/arch/x86/traps.c:746,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:777,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:777,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - sp
    - bp
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 781
    functionName: _show_trace
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - printk
    - get_stack_trace_bottom
    - _p
    linkageType: ''
    returnType: void
    signature: void _show_trace(unsigned long sp, unsigned long bp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ESP_BEFORE_EXCEPTION
      Src: /src/xen/xen/arch/x86/traps.c:787,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:790,1
    - Dst: asm_inline
      Src: /src/xen/xen/arch/x86/traps.c:793,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:806,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:807,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:808,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:808,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:808,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:812,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:824,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:825,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:827,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:827,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:827,1
    - Dst: _show_trace
      Src: /src/xen/xen/arch/x86/traps.c:831,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:833,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 834
    functionName: show_trace
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 1
    functionsReached:
    - is_active_kernel_text
    - asm_inline
    - printk
    - _p
    - ESP_BEFORE_EXCEPTION
    - _show_trace
    linkageType: ''
    returnType: void
    signature: void show_trace(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ESP_BEFORE_EXCEPTION
      Src: /src/xen/xen/arch/x86/traps.c:838,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:841,1
    - Dst: show_guest_stack
      Src: /src/xen/xen/arch/x86/traps.c:842,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:844,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:846,1
    - Dst: get_stack_dump_bottom
      Src: /src/xen/xen/arch/x86/traps.c:846,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:852,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:854,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:854,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:857,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:858,1
    - Dst: show_trace
      Src: /src/xen/xen/arch/x86/traps.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 861
    functionName: show_stack
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - get_stack_dump_bottom
    - show_trace
    - show_guest_stack
    - guest_mode
    - printk
    - _p
    - ESP_BEFORE_EXCEPTION
    linkageType: ''
    returnType: void
    signature: void show_stack(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:869,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:870,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:871,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:876,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/traps.c:878,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:887,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:894,1
    - Dst: _show_trace
      Src: /src/xen/xen/arch/x86/traps.c:897,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cpu
    - regs
    argTypes:
    - unsigned int
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 900
    functionName: show_stack_overflow
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - printk
    - _show_trace
    - per_cpu
    - _p
    linkageType: ''
    returnType: void
    signature: void show_stack_overflow(unsigned int cpu, const struct cpu_user_regs
      *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_lock_recursive_irqsave
      Src: /src/xen/xen/arch/x86/traps.c:905,1
    - Dst: show_registers
      Src: /src/xen/xen/arch/x86/traps.c:907,1
    - Dst: show_code
      Src: /src/xen/xen/arch/x86/traps.c:908,1
    - Dst: show_stack
      Src: /src/xen/xen/arch/x86/traps.c:909,1
    - Dst: console_unlock_recursive_irqrestore
      Src: /src/xen/xen/arch/x86/traps.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 912
    functionName: show_execution_state
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - show_code
    - console_lock_recursive_irqsave
    - show_registers
    - console_unlock_recursive_irqrestore
    - show_stack
    linkageType: ''
    returnType: void
    signature: void show_execution_state(const struct cpu_user_regs *regs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/traps.c:918,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:920,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:924,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/x86/traps.c:929,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/traps.c:929,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/traps.c:933,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/traps.c:942,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:942,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps.c:944,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/traps.c:944,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/traps.c:945,1
    - Dst: console_lock_recursive_irqsave
      Src: /src/xen/xen/arch/x86/traps.c:949,1
    - Dst: vcpu_show_registers
      Src: /src/xen/xen/arch/x86/traps.c:951,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:953,1
    - Dst: console_unlock_recursive_irqrestore
      Src: /src/xen/xen/arch/x86/traps.c:959,1
    - Dst: show_hvm_stack
      Src: /src/xen/xen/arch/x86/traps.c:961,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:965,1
    - Dst: show_guest_stack
      Src: /src/xen/xen/arch/x86/traps.c:966,1
    - Dst: console_unlock_recursive_irqrestore
      Src: /src/xen/xen/arch/x86/traps.c:968,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/traps.c:971,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:971,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/traps.c:972,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/traps.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 975
    functionName: vcpu_show_execution_state
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - show_execution_state
    - vcpu_pause
    - is_hvm_vcpu
    - vmx_vmcs_enter
    - show_hvm_stack
    - console_lock_recursive_irqsave
    - vcpu_show_registers
    - vcpu_unpause
    - show_guest_stack
    - using_vmx
    - console_unlock_recursive_irqrestore
    - guest_kernel_mode
    - ASSERT
    - vmx_vmcs_exit
    - printk
    - in_irq
    - test_bit
    linkageType: ''
    returnType: void
    signature: void vcpu_show_execution_state(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/traps.c:984,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/x86/traps.c:988,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:989,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:990,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:991,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:993,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:994,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:994,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/traps.c:996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - regs
    - cpu
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 999
    functionName: nmi_show_execution_state
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - show_execution_state
    - guest_mode
    - printk
    - _p
    - cpumask_clear_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: int
    signature: "int nmi_show_execution_state(\n    const struct cpu_user_regs *regs,
      int cpu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/x86/traps.c:1012,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/x86/traps.c:1013,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/traps.c:1015,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/traps.c:1016,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/traps.c:1017,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/traps.c:1021,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/traps.c:1026,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/traps.c:1027,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1035,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/traps.c:1035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - mask
    - show_all
    argTypes:
    - cpumask_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1001
    functionDepth: 4
    functionLinenumber: 1001
    functionLinenumberEnd: 1036
    functionName: show_execution_state_nmi
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 1
    functionsReached:
    - send_IPI_mask
    - console_start_sync
    - mdelay
    - CPUMASK_PR
    - watchdog_disable
    - cpumask_copy
    - printk
    - cpumask_weight
    - set_nmi_callback
    linkageType: ''
    returnType: void
    signature: void show_execution_state_nmi(const cpumask_t *mask, bool show_all)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1051
    functionName: x86_et_name
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *x86_et_name(unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - what
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1062
    functionName: x86_et_other_name
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *x86_et_other_name(unsigned int what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1067,1
    - Dst: N
      Src: /src/xen/xen/arch/x86/traps.c:1068,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: N
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1069,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: N
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: N
      Src: /src/xen/xen/arch/x86/traps.c:1070,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1071,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1072,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1072,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1072,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/traps.c:1074,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:1077,1
    - Dst: do_double_fault
      Src: /src/xen/xen/arch/x86/traps.c:1080,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/traps.c:1085,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1091,1
    - Dst: print_xen_info
      Src: /src/xen/xen/arch/x86/traps.c:1092,1
    - Dst: read_registers
      Src: /src/xen/xen/arch/x86/traps.c:1094,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1096,1
    - Dst: _show_registers
      Src: /src/xen/xen/arch/x86/traps.c:1097,1
    - Dst: show_code
      Src: /src/xen/xen/arch/x86/traps.c:1098,1
    - Dst: show_stack_overflow
      Src: /src/xen/xen/arch/x86/traps.c:1099,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1101,1
    - Dst: DEFINE_PER_CPU
      Src: /src/xen/xen/arch/x86/traps.c:1111,1
    - Dst: stac
      Src: /src/xen/xen/arch/x86/traps.c:1115,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps.c:1122,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps.c:1134,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/traps.c:1137,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/traps.c:1137,1
    - Dst: show_execution_state_nmi
      Src: /src/xen/xen/arch/x86/traps.c:1138,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/traps.c:1142,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/traps.c:1153,1
    - Dst: x86_et_other_name
      Src: /src/xen/xen/arch/x86/traps.c:1157,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1162,1
    - Dst: x86_et_name
      Src: /src/xen/xen/arch/x86/traps.c:1163,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1168,1
    - Dst: x86_et_name
      Src: /src/xen/xen/arch/x86/traps.c:1169,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1174,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/traps.c:1175,1
    - Dst: do_unhandled_trap
      Src: /src/xen/xen/arch/x86/traps.c:1179,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1181,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1187,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps.c:1187,1
    - Dst: rdssp
      Src: /src/xen/xen/arch/x86/traps.c:1191,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1194,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1195,1
    - Dst: get_shstk_bottom
      Src: /src/xen/xen/arch/x86/traps.c:1195,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1219,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1225,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/traps.c:1242,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/traps.c:1251,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1252,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/traps.c:1257,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1260,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1261,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1262,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1265,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps.c:1266,1
    - Dst: search_exception_table
      Src: /src/xen/xen/arch/x86/traps.c:1292,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/traps.c:1294,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps.c:1301,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1302,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/traps.c:1303,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1304,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1304,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1304,1
    - Dst: fixup_exception_return
      Src: /src/xen/xen/arch/x86/traps.c:1306,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps.c:1307,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps.c:1319,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1321,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/traps.c:1323,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1329,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1329,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:1329,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1333,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1342,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1342,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1344,1
    - Dst: pv_emulate_invalid_op
      Src: /src/xen/xen/arch/x86/traps.c:1344,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/traps.c:1345,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1349,1
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/x86/traps.c:1349,1
    - Dst: copy_from_unsafe
      Src: /src/xen/xen/arch/x86/traps.c:1350,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/traps.c:1351,1
    - Dst: do_bug_frame
      Src: /src/xen/xen/arch/x86/traps.c:1354,1
    - Dst: fixup_exception_return
      Src: /src/xen/xen/arch/x86/traps.c:1364,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1372,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1372,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:1372,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/x86/traps.c:1375,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1376,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1383,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1385,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1385,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:1385,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1388,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1389,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1389,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1394,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:1394,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/traps.c:1397,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/traps.c:1401,1
    - Dst: hardware_gp
      Src: /src/xen/xen/arch/x86/traps.c:1412,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1414,1
    - Dst: CONFIG_PV
      Src: /src/xen/xen/arch/x86/traps.c:1417,1
    - Dst: permit_softint
      Src: /src/xen/xen/arch/x86/traps.c:1445,1
    - Dst: TI_GET_DPL
      Src: /src/xen/xen/arch/x86/traps.c:1445,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:1451,1
    - Dst: pv_emulate_privileged_op
      Src: /src/xen/xen/arch/x86/traps.c:1459,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/traps.c:1466,1
    - Dst: gp_in_kernel
      Src: /src/xen/xen/arch/x86/traps.c:1470,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1471,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:1471,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/x86/traps.c:1475,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:1476,1
    - Dst: handle_ldt_mapping_fault
      Src: /src/xen/xen/arch/x86/traps.c:1480,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/traps.c:1489,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1493,1
    - Dst: pv_map_ldt_shadow_page
      Src: /src/xen/xen/arch/x86/traps.c:1493,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1495,1
    - Dst: pv_inject_page_fault
      Src: /src/xen/xen/arch/x86/traps.c:1514,1
    - Dst: handle_gdt_ldt_mapping_fault
      Src: /src/xen/xen/arch/x86/traps.c:1521,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1541,1
    - Dst: handle_ldt_mapping_fault
      Src: /src/xen/xen/arch/x86/traps.c:1542,1
    - Dst: do_general_protection
      Src: /src/xen/xen/arch/x86/traps.c:1546,1
    - Dst: __page_fault_type
      Src: /src/xen/xen/arch/x86/traps.c:1562,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/traps.c:1565,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/traps.c:1578,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1595,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:1595,1
    - Dst: l4e_read
      Src: /src/xen/xen/arch/x86/traps.c:1596,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:1596,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:1597,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1598,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1599,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1600,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1602,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1604,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:1604,1
    - Dst: l3e_read
      Src: /src/xen/xen/arch/x86/traps.c:1605,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:1605,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:1606,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1607,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1608,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1609,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1611,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1612,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1615,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:1615,1
    - Dst: l2e_read
      Src: /src/xen/xen/arch/x86/traps.c:1616,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:1616,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:1617,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1618,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1619,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1620,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1622,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1623,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1626,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps.c:1626,1
    - Dst: l1e_read
      Src: /src/xen/xen/arch/x86/traps.c:1627,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/traps.c:1627,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/traps.c:1628,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps.c:1629,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1630,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1631,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/traps.c:1633,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/traps.c:1636,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/traps.c:1638,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/traps.c:1675,1
    - Dst: __page_fault_type
      Src: /src/xen/xen/arch/x86/traps.c:1676,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/traps.c:1677,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/traps.c:1688,1
    - Dst: pagefault_by_memadd
      Src: /src/xen/xen/arch/x86/traps.c:1692,1
    - Dst: regs
      Src: /src/xen/xen/arch/x86/traps.c:1693,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/traps.c:1695,1
    - Dst: IN_HYPERVISOR_RANGE
      Src: /src/xen/xen/arch/x86/traps.c:1695,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:1706,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/traps.c:1712,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/traps.c:1715,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/traps.c:1718,1
    - Dst: pv_ro_page_fault
      Src: /src/xen/xen/arch/x86/traps.c:1721,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/traps.c:1730,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/traps.c:1730,1
    - Dst: paging_fault
      Src: /src/xen/xen/arch/x86/traps.c:1732,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps.c:1734,1
    - Dst: trace_trap_two_addr
      Src: /src/xen/xen/arch/x86/traps.c:1735,1
    - Dst: handle_PF
      Src: /src/xen/xen/arch/x86/traps.c:1742,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/traps.c:1749,1
    - Dst: fatal
      Src: /src/xen/xen/arch/x86/traps.c:1753,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/traps.c:1755,1
    - Dst: fixup_page_fault
      Src: /src/xen/xen/arch/x86/traps.c:1755,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/traps.c:1773,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:1773,1
    - Dst: spurious_page_fault
      Src: /src/xen/xen/arch/x86/traps.c:1775,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1780,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1782,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/traps.c:1788,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:1788,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1064
    functionDepth: 5
    functionLinenumber: 1064
    functionLinenumberEnd: 1792
    functionName: vector_name
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 2
    functionsReached:
    - search_exception_table
    - gp_in_kernel
    - likely
    - IS_ENABLED
    - DEFINE_PER_CPU
    - l3e_read
    - _p
    - show_execution_state_nmi
    - P
    - show_execution_state
    - smp_processor_id
    - paging_mode_enabled
    - guest_mode
    - printk
    - regs
    - VM_ASSIST
    - spurious_page_fault
    - show_stack_overflow
    - l1e_get_flags
    - is_active_kernel_text
    - show_code
    - panic
    - __page_fault_type
    - rdssp
    - l4_table_offset
    - permit_softint
    - local_irq_restore
    - perfc_incr
    - l4e_get_flags
    - wrss
    - l2_table_offset
    - unlikely
    - copy_from_unsafe
    - console_force_unlock
    - l4e_read
    - do_double_fault
    - if
    - read_cr4
    - fixup_page_fault
    - BUG_ON
    - is_hardware_domain
    - pv_map_ldt_shadow_page
    - do_unhandled_trap
    - extable_fixup
    - do_general_protection
    - trace_trap_two_addr
    - l4e_get_pfn
    - cpumask_of
    - in_irq
    - hardware_gp
    - l1e_read
    - read_cr3
    - fatal_trap
    - TI_GET_DPL
    - guest_kernel_mode
    - pv_inject_hw_exception
    - is_pv_vcpu
    - map_domain_page
    - handle_gdt_ldt_mapping_fault
    - get_shstk_bottom
    - l1e_get_pfn
    - CONFIG_PV
    - l3e_get_flags
    - l1_table_offset
    - paging_fault
    - l2e_get_pfn
    - pagefault_by_memadd
    - IN_HYPERVISOR_RANGE
    - handle_PF
    - x86_et_other_name
    - local_irq_save
    - fatal
    - unmap_domain_page
    - pv_inject_page_fault
    - paging_mode_external
    - do_bug_frame
    - fixup_exception_return
    - pv_emulate_privileged_op
    - l2e_read
    - N
    - memcmp
    - _show_registers
    - handle_ldt_mapping_fault
    - l3e_get_pfn
    - stac
    - ARRAY_SIZE
    - print_xen_info
    - l3_table_offset
    - domain_pause_for_debugger
    - read_registers
    - _mfn
    - vector_name
    - ASSERT
    - pv_emulate_invalid_op
    - this_cpu
    - is_pv_32bit_vcpu
    - l2e_get_flags
    - x86_et_name
    - pv_ro_page_fault
    linkageType: ''
    returnType: char
    signature: char *vector_name(unsigned int vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr2
      Src: /src/xen/xen/arch/x86/traps.c:1811,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/traps.c:1814,1
    - Dst: handle_PF
      Src: /src/xen/xen/arch/x86/traps.c:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1817
    functionName: handle_PF_IDT
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - read_cr2
    - handle_PF
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void handle_PF_IDT(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_cr2
      Src: /src/xen/xen/arch/x86/traps.c:1830,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/traps.c:1832,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/traps.c:1832,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/x86/traps.c:1844,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1845,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1846,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:1846,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1826
    functionDepth: 1
    functionLinenumber: 1826
    functionLinenumberEnd: 1849
    functionName: do_early_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - console_start_sync
    - smp_processor_id
    - read_cr2
    - fatal_trap
    - BUG_ON
    - printk
    - _p
    linkageType: ''
    returnType: void
    signature: void do_early_page_fault(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1859,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/traps.c:1860,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/traps.c:1860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1863
    functionName: pci_serr_nmicont
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - inb
    - printk
    - outb
    linkageType: ''
    returnType: bool
    signature: bool pci_serr_nmicont(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/traps.c:1869,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/traps.c:1872,1
    - Dst: nmi_reason
      Src: /src/xen/xen/arch/x86/traps.c:1872,1
    - Dst: pv_raise_nmi
      Src: /src/xen/xen/arch/x86/traps.c:1874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - reason_idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1875
    functionName: nmi_hwdom_report
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - pv_raise_nmi
    - is_pv_domain
    - nmi_reason
    - set_bit
    linkageType: ''
    returnType: void
    signature: void nmi_hwdom_report(unsigned int reason_idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/traps.c:1879,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/traps.c:1879,1
    - Dst: nmi_hwdom_report
      Src: /src/xen/xen/arch/x86/traps.c:1884,1
    - Dst: trigger_nmi_continuation
      Src: /src/xen/xen/arch/x86/traps.c:1889,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/traps.c:1892,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1893,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1877
    functionDepth: 2
    functionLinenumber: 1877
    functionLinenumberEnd: 1896
    functionName: pci_serr_error
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - outb
    - fatal_trap
    - nmi_hwdom_report
    - trigger_nmi_continuation
    - printk
    - inb
    - console_force_unlock
    linkageType: ''
    returnType: void
    signature: void pci_serr_error(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nmi_hwdom_report
      Src: /src/xen/xen/arch/x86/traps.c:1903,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/traps.c:1908,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1909,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1910,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/traps.c:1913,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/traps.c:1913,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/x86/traps.c:1914,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/traps.c:1915,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/traps.c:1915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1898
    functionDepth: 2
    functionLinenumber: 1898
    functionLinenumberEnd: 1916
    functionName: io_check_error
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - mdelay
    - outb
    - fatal_trap
    - nmi_hwdom_report
    - printk
    - inb
    - console_force_unlock
    linkageType: ''
    returnType: void
    signature: void io_check_error(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nmi_hwdom_report
      Src: /src/xen/xen/arch/x86/traps.c:1924,1
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/traps.c:1929,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1930,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:1931,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:1932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - regs
    - reason
    argTypes:
    - struct cpu_user_regs*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1934
    functionName: unknown_nmi_error
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - printk
    - fatal_trap
    - console_force_unlock
    - nmi_hwdom_report
    linkageType: ''
    returnType: void
    signature: "void unknown_nmi_error(const struct cpu_user_regs *regs,\n                              unsigned
      char reason)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/traps.c:1942,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps.c:1947,1
    - Dst: nmi_enter
      Src: /src/xen/xen/arch/x86/traps.c:1948,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/traps.c:1955,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/traps.c:1956,1
    - Dst: callback
      Src: /src/xen/xen/arch/x86/traps.c:1956,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/traps.c:1967,1
    - Dst: nmi_watchdog_tick
      Src: /src/xen/xen/arch/x86/traps.c:1970,1
    - Dst: pci_serr_error
      Src: /src/xen/xen/arch/x86/traps.c:1977,1
    - Dst: io_check_error
      Src: /src/xen/xen/arch/x86/traps.c:1979,1
    - Dst: unknown_nmi_error
      Src: /src/xen/xen/arch/x86/traps.c:1981,1
    - Dst: nmi_exit
      Src: /src/xen/xen/arch/x86/traps.c:1985,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1940
    functionDepth: 3
    functionLinenumber: 1940
    functionLinenumberEnd: 1986
    functionName: do_nmi
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - callback
    - unknown_nmi_error
    - nmi_watchdog_tick
    - smp_processor_id
    - nmi_exit
    - pci_serr_error
    - nmi_enter
    - this_cpu
    - io_check_error
    - unlikely
    - inb
    - ACCESS_ONCE
    linkageType: ''
    returnType: void
    signature: void do_nmi(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - callback
    argTypes:
    - nmi_callback_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1995
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1995
    functionName: set_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: nmi_callback_t
    signature: nmi_callback_t *set_nmi_callback(nmi_callback_t *callback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1997
    functionDepth: 0
    functionLinenumber: 1997
    functionLinenumberEnd: 2000
    functionName: unset_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unset_nmi_callback(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_serr_nmicont
      Src: /src/xen/xen/arch/x86/traps.c:2006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 2002
    functionDepth: 2
    functionLinenumber: 2002
    functionLinenumberEnd: 2010
    functionName: nmi_check_continuation
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - pci_serr_nmicont
    linkageType: ''
    returnType: bool
    signature: bool nmi_check_continuation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_IPI_self
      Src: /src/xen/xen/arch/x86/traps.c:2021,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/traps.c:2022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2023
    functionName: trigger_nmi_continuation
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 1
    functionsReached:
    - apic_wait_icr_idle
    - send_IPI_self
    linkageType: ''
    returnType: void
    signature: void trigger_nmi_continuation(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:2031,1
    - Dst: extable_fixup
      Src: /src/xen/xen/arch/x86/traps.c:2037,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/traps.c:2039,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:2043,1
    - Dst: vcpu_restore_fpu_lazy
      Src: /src/xen/xen/arch/x86/traps.c:2047,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/traps.c:2051,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/traps.c:2055,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/traps.c:2057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2025
    functionDepth: 5
    functionLinenumber: 2025
    functionLinenumberEnd: 2059
    functionName: do_device_not_available
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - extable_fixup
    - fatal_trap
    - guest_mode
    - vcpu_restore_fpu_lazy
    - pv_inject_hw_exception
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void do_device_not_available(struct cpu_user_regs *regs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/traps.c:2087,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/traps.c:2091,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:2093,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/traps.c:2114,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/traps.c:2137,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/traps.c:2146,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:2148,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/traps.c:2150,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/traps.c:2161,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2163,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2163,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2164,1
    - Dst: x86_merge_dr6
      Src: /src/xen/xen/arch/x86/traps.c:2175,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/traps.c:2178,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/traps.c:2180,1
    - Dst: pv_inject_DB
      Src: /src/xen/xen/arch/x86/traps.c:2184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - regs
    - dbg
    argTypes:
    - struct cpu_user_regs*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2064
    functionDepth: 2
    functionLinenumber: 2064
    functionLinenumberEnd: 2185
    functionName: handle_DB
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - pv_inject_DB
    - read_debugreg
    - write_debugreg
    - WARN
    - guest_kernel_mode
    - gprintk
    - wrmsrl
    - guest_mode
    - printk
    - _p
    - x86_merge_dr6
    - ASSERT_UNREACHABLE
    - domain_pause_for_debugger
    linkageType: ''
    returnType: void
    signature: void handle_DB(struct cpu_user_regs *regs, unsigned long dbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_DB
      Src: /src/xen/xen/arch/x86/traps.c:2193,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/traps.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2191
    functionDepth: 3
    functionLinenumber: 2191
    functionLinenumberEnd: 2194
    functionName: handle_DB_IDT
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - read_debugreg
    - handle_DB
    linkageType: ''
    returnType: void
    signature: void handle_DB_IDT(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps.c:2209,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/traps.c:2217,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/traps.c:2219,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2220,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/traps.c:2221,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/traps.c:2222,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/x86/traps.c:2226,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/traps.c:2227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2228
    functionName: do_entry_CP
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - show_execution_state
    - ARRAY_SIZE
    - panic
    - gprintk
    - guest_mode
    - _p
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void do_entry_CP(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clac
      Src: /src/xen/xen/arch/x86/traps.c:2241,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps.c:2244,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps.c:2246,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2247,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps.c:2247,1
    - Dst: __domain_crash
      Src: /src/xen/xen/arch/x86/traps.c:2249,1
    - Dst: do_softirq
      Src: /src/xen/xen/arch/x86/traps.c:2252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2253
    functionName: asm_domain_crash_synchronous
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - __domain_crash
    - clac
    - do_softirq
    - this_cpu
    - _p
    - printk
    linkageType: ''
    returnType: void
    signature: void asm_domain_crash_synchronous(unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps.c:2264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - ist_exit
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2265
    functionName: check_ist_exit
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void check_ist_exit(const struct cpu_user_regs *regs, bool ist_exit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2274
    functionName: entry_from_pv
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - fatal_trap
    linkageType: ''
    returnType: void
    signature: void entry_from_pv(struct cpu_user_regs *regs)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: cpu_regs_fred_info
      Src: /src/xen/xen/arch/x86/traps.c:2278,1
    - Dst: do_IRQ
      Src: /src/xen/xen/arch/x86/traps.c:2295,1
    - Dst: do_nmi
      Src: /src/xen/xen/arch/x86/traps.c:2298,1
    - Dst: do_double_fault
      Src: /src/xen/xen/arch/x86/traps.c:2303,1
    - Dst: do_machine_check
      Src: /src/xen/xen/arch/x86/traps.c:2304,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/traps.c:2315,1
    - Dst: handle_PF
      Src: /src/xen/xen/arch/x86/traps.c:2324,1
    - Dst: do_general_protection
      Src: /src/xen/xen/arch/x86/traps.c:2325,1
    - Dst: do_invalid_op
      Src: /src/xen/xen/arch/x86/traps.c:2326,1
    - Dst: do_device_not_available
      Src: /src/xen/xen/arch/x86/traps.c:2327,1
    - Dst: do_int3
      Src: /src/xen/xen/arch/x86/traps.c:2328,1
    - Dst: handle_DB
      Src: /src/xen/xen/arch/x86/traps.c:2329,1
    - Dst: do_entry_CP
      Src: /src/xen/xen/arch/x86/traps.c:2330,1
    - Dst: do_trap
      Src: /src/xen/xen/arch/x86/traps.c:2340,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/traps.c:2355,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2276
    functionDepth: 6
    functionLinenumber: 2276
    functionLinenumberEnd: 2356
    functionName: entry_from_xen
    functionSourceFile: /src/xen/xen/arch/x86/traps.c
    functionUses: 0
    functionsReached:
    - do_int3
    - do_device_not_available
    - local_irq_enable
    - do_general_protection
    - cpu_regs_fred_info
    - do_double_fault
    - do_trap
    - fatal_trap
    - do_machine_check
    - do_nmi
    - do_invalid_op
    - do_entry_CP
    - handle_PF
    - do_IRQ
    - handle_DB
    linkageType: ''
    returnType: void
    signature: void entry_from_xen(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - pxm
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: node_found
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool node_found(unsigned idx, unsigned pxm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:44,1
    - Dst: node_found
      Src: /src/xen/xen/arch/x86/srat.c:44,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:47,1
    - Dst: node_found
      Src: /src/xen/xen/arch/x86/srat.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pxm
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: pxm_to_node
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - node_found
    - ARRAY_SIZE
    linkageType: ''
    returnType: nodeid_t
    signature: nodeid_t pxm_to_node(unsigned pxm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/srat.c:60,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:62,1
    - Dst: node_found
      Src: /src/xen/xen/arch/x86/srat.c:63,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:73,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/srat.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - pxm
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 90
    functionName: setup_node
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 1
    functionsReached:
    - node_found
    - printk_once
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: nodeid_t
    signature: nodeid_t setup_node(unsigned pxm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:95,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: numa_fw_bad
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - printk
    linkageType: ''
    returnType: void
    signature: void numa_fw_bad(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - slit
    argTypes:
    - struct acpi_table_slit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 125
    functionName: slit_valid
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __init
    signature: __init slit_valid(struct acpi_table_slit *slit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: slit_valid
      Src: /src/xen/xen/arch/x86/srat.c:132,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:133,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/x86/srat.c:137,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/srat.c:137,1
    - Dst: vmap_contig
      Src: /src/xen/xen/arch/x86/srat.c:138,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/srat.c:138,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/srat.c:140,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/srat.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - slit
    argTypes:
    - struct acpi_table_slit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: acpi_numa_slit_init
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - vmap_contig
    - panic
    - printk
    - alloc_boot_pages
    - slit_valid
    - memcpy
    linkageType: ''
    returnType: void
    signature: void acpi_numa_slit_init(struct acpi_table_slit *slit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: numa_disabled
      Src: /src/xen/xen/arch/x86/srat.c:151,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:154,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:160,1
    - Dst: setup_node
      Src: /src/xen/xen/arch/x86/srat.c:165,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:167,1
    - Dst: numa_set_processor_nodes_parsed
      Src: /src/xen/xen/arch/x86/srat.c:172,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pa
    argTypes:
    - struct acpi_srat_x2apic_cpu_affinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 178
    functionName: acpi_numa_x2apic_affinity_init
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - numa_set_processor_nodes_parsed
    - numa_fw_bad
    - printk
    - setup_node
    - numa_disabled
    linkageType: ''
    returnType: void
    signature: void acpi_numa_x2apic_affinity_init(const struct acpi_srat_x2apic_cpu_affinity
      *pa)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: numa_disabled
      Src: /src/xen/xen/arch/x86/srat.c:187,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:190,1
    - Dst: setup_node
      Src: /src/xen/xen/arch/x86/srat.c:201,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:203,1
    - Dst: numa_set_processor_nodes_parsed
      Src: /src/xen/xen/arch/x86/srat.c:207,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - pa
    argTypes:
    - struct acpi_srat_cpu_affinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 213
    functionName: acpi_numa_processor_affinity_init
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - numa_set_processor_nodes_parsed
    - numa_fw_bad
    - printk
    - setup_node
    - numa_disabled
    linkageType: ''
    returnType: void
    signature: void acpi_numa_processor_affinity_init(const struct acpi_srat_cpu_affinity
      *pa)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: numa_disabled
      Src: /src/xen/xen/arch/x86/srat.c:222,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:225,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/srat.c:232,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/srat.c:233,1
    - Dst: numa_memblks_available
      Src: /src/xen/xen/arch/x86/srat.c:236,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/srat.c:237,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:239,1
    - Dst: setup_node
      Src: /src/xen/xen/arch/x86/srat.c:246,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:248,1
    - Dst: numa_update_node_memblks
      Src: /src/xen/xen/arch/x86/srat.c:257,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/arch/x86/srat.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - ma
    argTypes:
    - struct acpi_srat_mem_affinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 260
    functionName: acpi_numa_memory_affinity_init
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - numa_update_node_memblks
    - ROUNDUP
    - max
    - numa_memblks_available
    - numa_fw_bad
    - setup_node
    - numa_disabled
    - dprintk
    linkageType: ''
    returnType: void
    signature: void acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity
      *ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: acpi_numa_arch_fixup
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_numa_arch_fixup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/srat.c:272,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:280,1
    - Dst: pfn_pdx_add_region
      Src: /src/xen/xen/arch/x86/srat.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 286
    functionName: srat_parse_region
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - pfn_pdx_add_region
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: "int srat_parse_region(\n    struct acpi_subtable_header *header, const
      unsigned long end)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/srat.c:293,1
    - Dst: acpi_table_parse_srat
      Src: /src/xen/xen/arch/x86/srat.c:298,1
    - Dst: pfn_pdx_compression_setup
      Src: /src/xen/xen/arch/x86/srat.c:301,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/xen/arch/x86/srat.c:309,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/srat.c:311,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/srat.c:312,1
    - Dst: pfn_pdx_compression_reset
      Src: /src/xen/xen/arch/x86/srat.c:313,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/srat.c:314,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/srat.c:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - addr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 325
    functionName: srat_parse_regions
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 1
    functionsReached:
    - pfn_pdx_compression_setup
    - PFN_UP
    - pfn_pdx_compression_reset
    - acpi_table_parse
    - pdx_is_region_compressible
    - acpi_table_parse_srat
    - printk
    - PFN_DOWN
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void srat_parse_regions(paddr_t addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:331,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/srat.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: numa_node_to_arch_nid
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int numa_node_to_arch_nid(nodeid_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: numa_node_to_arch_nid
      Src: /src/xen/xen/arch/x86/srat.c:346,1
    - Dst: numa_node_to_arch_nid
      Src: /src/xen/xen/arch/x86/srat.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nodeid_t
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 354
    functionName: __node_distance
    functionSourceFile: /src/xen/xen/arch/x86/srat.c
    functionUses: 0
    functionsReached:
    - numa_node_to_arch_nid
    linkageType: ''
    returnType: u8
    signature: u8 __node_distance(nodeid_t a, nodeid_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/monitor.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: arch_monitor_init_domain
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int arch_monitor_init_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/monitor.c:39,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/monitor.c:41,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/monitor.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: arch_monitor_cleanup_domain
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - memset
    - xfree
    linkageType: ''
    returnType: void
    signature: void arch_monitor_cleanup_domain(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/monitor.c:47,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/monitor.c:52,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/monitor.c:56,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/monitor.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: monitor_bitmap_for_msr
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *monitor_bitmap_for_msr(const struct domain *d, u32 *msr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: monitor_bitmap_for_msr
      Src: /src/xen/xen/arch/x86/monitor.c:79,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/monitor.c:84,1
    - Dst: hvm_enable_msr_interception
      Src: /src/xen/xen/arch/x86/monitor.c:86,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/monitor.c:89,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/monitor.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - d
    - msr
    - onchangeonly
    argTypes:
    - struct domain*
    - u32
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: monitor_enable_msr
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - monitor_bitmap_for_msr
    - __set_bit
    - __clear_bit
    - hvm_enable_msr_interception
    linkageType: ''
    returnType: int
    signature: int monitor_enable_msr(struct domain *d, u32 msr, bool onchangeonly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: monitor_bitmap_for_msr
      Src: /src/xen/xen/arch/x86/monitor.c:103,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/monitor.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: monitor_disable_msr
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - monitor_bitmap_for_msr
    - __clear_bit
    linkageType: ''
    returnType: int
    signature: int monitor_disable_msr(struct domain *d, u32 msr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: monitor_bitmap_for_msr
      Src: /src/xen/xen/arch/x86/monitor.c:120,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/monitor.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: monitored_msr
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - monitor_bitmap_for_msr
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool monitored_msr(const struct domain *d, u32 msr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: monitor_bitmap_for_msr
      Src: /src/xen/xen/arch/x86/monitor.c:135,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/monitor.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 141
    functionName: monitored_msr_onchangeonly
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - monitor_bitmap_for_msr
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool monitored_msr_onchangeonly(const struct domain *d, u32 msr)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:156,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/monitor.c:157,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:160,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/monitor.c:163,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:166,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:169,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/monitor.c:197,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/monitor.c:198,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:201,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:212,1
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/monitor.c:214,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:216,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:218,1
    - Dst: monitor_enable_msr
      Src: /src/xen/xen/arch/x86/monitor.c:223,1
    - Dst: monitor_disable_msr
      Src: /src/xen/xen/arch/x86/monitor.c:225,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:227,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:236,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:239,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:241,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:249,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:252,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:254,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:263,1
    - Dst: hvm_has_set_descriptor_access_exiting
      Src: /src/xen/xen/arch/x86/monitor.c:266,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:269,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/monitor.c:272,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/monitor.c:273,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:276,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:284,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:287,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:289,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:297,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:300,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:305,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:313,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:316,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:318,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:326,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:329,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:331,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:339,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:342,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:345,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/monitor.c:353,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/monitor.c:356,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/monitor.c:358,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/monitor.c:367,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 128
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 372
    functionName: arch_monitor_domctl_event
    functionSourceFile: /src/xen/xen/arch/x86/monitor.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - for_each_vcpu
    - domain_pause
    - monitored_msr
    - ARRAY_SIZE
    - monitor_enable_msr
    - monitor_disable_msr
    - hvm_has_set_descriptor_access_exiting
    - hvm_update_guest_cr
    - alternative_vcall
    - unlikely
    - monitor_ctrlreg_bitmask
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int arch_monitor_domctl_event(struct domain *d,\n                              struct
      xen_domctl_monitor_op *mop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: round_up
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_up(x,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/numa.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - opt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: arch_numa_setup
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int arch_numa_setup(const char *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: arch_numa_disabled
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_numa_disabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: arch_numa_unavailable
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_numa_unavailable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_online
      Src: /src/xen/xen/arch/x86/numa.c:77,1
    - Dst: numa_set_node
      Src: /src/xen/xen/arch/x86/numa.c:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: init_cpu_to_node
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 1
    functionsReached:
    - numa_set_node
    - node_online
    linkageType: ''
    returnType: void
    signature: void init_cpu_to_node(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_online_node
      Src: /src/xen/xen/arch/x86/numa.c:87,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/arch/x86/numa.c:88,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/numa.c:89,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/numa.c:92,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/numa.c:98,1
    - Dst: flsl
      Src: /src/xen/xen/arch/x86/numa.c:99,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/numa.c:99,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/arch/x86/numa.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: arch_get_dma_bitsize
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 0
    functionsReached:
    - node_start_pfn
    - panic
    - flsl
    - node_spanned_pages
    - min_t
    - for_each_online_node
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_dma_bitsize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - idx
    - start
    - end
    argTypes:
    - unsigned int
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: arch_get_ram_range
    functionSourceFile: /src/xen/xen/arch/x86/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_get_ram_range(unsigned int idx, paddr_t *start, paddr_t *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:100,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: ack_bad_irq
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - printk
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void ack_bad_irq(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:121,1
    - Dst: GET_APIC_MAXLVT
      Src: /src/xen/xen/arch/x86/apic.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: get_maxlvt
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - GET_APIC_MAXLVT
    - apic_read
    linkageType: ''
    returnType: int
    signature: int get_maxlvt(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/apic.c:131,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:134,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:142,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:148,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:149,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:150,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:151,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:152,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:153,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:155,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:156,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:159,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:160,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:163,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:164,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:170,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:171,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:172,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:174,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:176,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:178,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:180,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:182,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:183,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:187,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:188,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 189
    functionName: clear_local_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 2
    functionsReached:
    - apic_read
    - get_maxlvt
    - apic_write
    linkageType: ''
    returnType: void
    signature: void clear_local_APIC(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:197,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:202,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/apic.c:204,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/apic.c:205,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 209
    functionName: connect_bsp_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 2
    functionsReached:
    - clear_local_APIC
    - apic_printk
    - printk
    - outb
    linkageType: ''
    returnType: void
    signature: void connect_bsp_APIC(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:220,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/apic.c:222,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/apic.c:223,1
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:229,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:232,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:236,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:240,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:245,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:249,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - virt_wire_setup
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 257
    functionName: disconnect_bsp_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - clear_local_APIC
    - apic_printk
    - outb
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void disconnect_bsp_APIC(int virt_wire_setup)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:261,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:267,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:267,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/apic.c:271,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:272,1
    - Dst: current_local_apic_mode
      Src: /src/xen/xen/arch/x86/apic.c:276,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/apic.c:279,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:281,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:289,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:293,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:298,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/apic.c:299,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 304
    functionName: disable_local_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - clear_local_APIC
    - current_local_apic_mode
    - smp_processor_id
    - rdmsrl
    - apic_read
    - wrmsrl
    - printk
    - apic_write
    linkageType: ''
    returnType: void
    signature: void disable_local_APIC(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:318,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:319,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:323,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:324,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:325,1
    - Dst: GET_APIC_VERSION
      Src: /src/xen/xen/arch/x86/apic.c:338,1
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/apic.c:341,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:353,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:359,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:366,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:367,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:374,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:375,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:376,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:377,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 380
    functionName: verify_local_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - apic_printk
    - GET_APIC_VERSION
    - get_maxlvt
    - apic_read
    - printk
    - apic_write
    linkageType: ''
    returnType: int
    signature: int verify_local_APIC(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:399,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:404,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:414,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:419,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 421
    functionName: init_bsp_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - clear_local_APIC
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void init_bsp_APIC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 426
    functionName: apic_pm_activate
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void apic_pm_activate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/apic.c:432,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 439
    functionName: __enable_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void __enable_x2apic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_enable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:444,1
    - Dst: __enable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: resume_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - iommu_enable_x2apic
    - __enable_x2apic
    linkageType: ''
    returnType: void
    signature: void resume_x2apic(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/apic.c:453,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/apic.c:458,1
    - Dst: physid_isset
      Src: /src/xen/xen/arch/x86/apic.c:458,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/apic.c:458,1
    - Dst: init_apic_ldr
      Src: /src/xen/xen/arch/x86/apic.c:465,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:470,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:484,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:487,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:494,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:539,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:542,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:554,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:557,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/apic.c:558,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:562,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/apic.c:563,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:565,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:574,1
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/apic.c:576,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:578,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:579,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:582,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:585,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:586,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:588,1
    - Dst: setup_apic_nmi_watchdog
      Src: /src/xen/xen/arch/x86/apic.c:593,1
    - Dst: apic_pm_activate
      Src: /src/xen/xen/arch/x86/apic.c:594,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 448
    functionDepth: 4
    functionLinenumber: 448
    functionLinenumberEnd: 595
    functionName: setup_local_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 2
    functionsReached:
    - apic_printk
    - ack_APIC_irq
    - smp_processor_id
    - get_maxlvt
    - init_apic_ldr
    - get_apic_id
    - BUILD_BUG_ON
    - BUG_ON
    - physid_isset
    - apic_read
    - setup_apic_nmi_watchdog
    - apic_pm_activate
    - apic_write
    linkageType: ''
    returnType: void
    signature: void setup_local_APIC(bool bsp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/apic.c:600,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:604,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:605,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:606,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:607,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:608,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:609,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:611,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:614,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:617,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:618,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:619,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:620,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:622,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/apic.c:624,1
    - Dst: disable_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:625,1
    - Dst: iommu_disable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:627,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/apic.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 597
    functionDepth: 4
    functionLinenumber: 597
    functionLinenumberEnd: 630
    functionName: lapic_suspend
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - iommu_disable_x2apic
    - get_maxlvt
    - apic_read
    - local_irq_restore
    - local_irq_save
    - disable_local_APIC
    linkageType: ''
    returnType: int
    signature: int lapic_suspend(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/apic.c:641,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/apic.c:651,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:653,1
    - Dst: resume_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:657,1
    - Dst: get_maxlvt
      Src: /src/xen/xen/arch/x86/apic.c:659,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:660,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:661,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:662,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:663,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:664,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:665,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:666,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:667,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:669,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:672,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:676,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:677,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:678,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:679,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:680,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:681,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:682,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:683,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/apic.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 686
    functionName: lapic_resume
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - get_maxlvt
    - rdmsrl
    - apic_read
    - wrmsrl
    - local_irq_restore
    - local_irq_save
    - apic_write
    - resume_x2apic
    linkageType: ''
    returnType: int
    signature: int lapic_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/apic.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: lapic_disable
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - setup_clear_cpu_cap
    linkageType: ''
    returnType: int
    signature: int lapic_disable(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/apic.c:705,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/apic.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: apic_set_verbosity
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int apic_set_verbosity(const char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/apic.c:724,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:726,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:736,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:748,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:751,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/apic.c:759,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/apic.c:759,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:760,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/apic.c:764,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:774,1
    - Dst: apic_pm_activate
      Src: /src/xen/xen/arch/x86/apic.c:776,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 779
    functionName: detect_init_APIC
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - cpufeat_mask
    - cpuid_edx
    - apic_pm_activate
    - wrmsrl
    - printk
    - rdmsr_safe
    - setup_force_cpu_cap
    linkageType: ''
    returnType: int
    signature: int detect_init_APIC (void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __enable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 785
    functionName: x2apic_ap_setup
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - __enable_x2apic
    linkageType: ''
    returnType: void
    signature: void x2apic_ap_setup(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:800,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:803,1
    - Dst: iommu_supports_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:806,1
    - Dst: alloc_ioapic_entries
      Src: /src/xen/xen/arch/x86/apic.c:809,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:811,1
    - Dst: save_IO_APIC_setup
      Src: /src/xen/xen/arch/x86/apic.c:815,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:817,1
    - Dst: mask_8259A
      Src: /src/xen/xen/arch/x86/apic.c:821,1
    - Dst: mask_IO_APIC_setup
      Src: /src/xen/xen/arch/x86/apic.c:822,1
    - Dst: iommu_enable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:824,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/apic.c:832,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:834,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:839,1
    - Dst: __enable_x2apic
      Src: /src/xen/xen/arch/x86/apic.c:851,1
    - Dst: apic_x2apic_probe
      Src: /src/xen/xen/arch/x86/apic.c:855,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:857,1
    - Dst: restore_IO_APIC_setup
      Src: /src/xen/xen/arch/x86/apic.c:871,1
    - Dst: unmask_8259A
      Src: /src/xen/xen/arch/x86/apic.c:872,1
    - Dst: free_ioapic_entries
      Src: /src/xen/xen/arch/x86/apic.c:877,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 787
    functionDepth: 4
    functionLinenumber: 787
    functionLinenumberEnd: 878
    functionName: x2apic_bsp_setup
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - save_IO_APIC_setup
    - alloc_ioapic_entries
    - iommu_enable_x2apic
    - panic
    - __enable_x2apic
    - apic_x2apic_probe
    - free_ioapic_entries
    - iommu_supports_x2apic
    - mask_IO_APIC_setup
    - printk
    - mask_8259A
    - unmask_8259A
    - restore_IO_APIC_setup
    linkageType: ''
    returnType: void
    signature: void x2apic_bsp_setup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: detect_init_APIC
      Src: /src/xen/xen/arch/x86/apic.c:891,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/apic.c:892,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/apic.c:892,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/apic.c:893,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/apic.c:893,1
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/arch/x86/apic.c:897,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:898,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/apic.c:899,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/apic.c:907,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/apic.c:908,1
    - Dst: ioapic_init
      Src: /src/xen/xen/arch/x86/apic.c:910,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 911
    functionName: init_apic_mappings
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - alloc_xenheap_page
    - __va
    - apic_printk
    - __pa
    - clear_page
    - set_fixmap_nocache
    - fix_to_virt
    - ioapic_init
    - get_apic_id
    - detect_init_APIC
    linkageType: ''
    returnType: void
    signature: void init_apic_mappings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/apic.c:943,1
    - Dst: PIT_LTCH_CH
      Src: /src/xen/xen/arch/x86/apic.c:943,1
    - Dst: inb_p
      Src: /src/xen/xen/arch/x86/apic.c:944,1
    - Dst: inb_p
      Src: /src/xen/xen/arch/x86/apic.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 950
    functionName: get_8254_timer_count
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - outb_p
    - PIT_LTCH_CH
    - inb_p
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_8254_timer_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_8254_timer_count
      Src: /src/xen/xen/arch/x86/apic.c:957,1
    - Dst: get_8254_timer_count
      Src: /src/xen/xen/arch/x86/apic.c:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 962
    functionName: wait_8254_wraparound
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - get_8254_timer_count
    linkageType: ''
    returnType: void
    signature: void wait_8254_wraparound(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:981,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:995,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:997,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:998,1
    - Dst: PASTE
      Src: /src/xen/xen/arch/x86/apic.c:998,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - clocks
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1001
    functionName: __setup_APIC_LVTT
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - PASTE
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void __setup_APIC_LVTT(unsigned int clocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/apic.c:1006,1
    - Dst: __setup_APIC_LVTT
      Src: /src/xen/xen/arch/x86/apic.c:1007,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/apic.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    functionName: setup_APIC_timer
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - local_irq_save
    - __setup_APIC_LVTT
    linkageType: ''
    returnType: void
    signature: void setup_APIC_timer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1014,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1015,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1016,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1017,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1018,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1019,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1020,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1021,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1022,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1023,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1024,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1025,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1026,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1027,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1028,1
    - Dst: X86_MATCH_VFMS
      Src: /src/xen/xen/arch/x86/apic.c:1029,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1030,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/apic.c:1031,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/apic.c:1038,1
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/apic.c:1041,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/apic.c:1047,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/apic.c:1050,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:1051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1053
    functionName: check_deadline_errata
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - x86_match_cpu
    - X86_MATCH_VFMS
    - setup_clear_cpu_cap
    - X86_MATCH_VFM
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void check_deadline_errata(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/apic.c:1064,1
    - Dst: apic_rdmsr
      Src: /src/xen/xen/arch/x86/apic.c:1065,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/apic.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1069
    functionName: apic_tmcct_read
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - alternative
    - apic_mem_read
    - apic_rdmsr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t apic_tmcct_read(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1092,1
    - Dst: __setup_APIC_LVTT
      Src: /src/xen/xen/arch/x86/apic.c:1098,1
    - Dst: calibrate_apic_timer
      Src: /src/xen/xen/arch/x86/apic.c:1100,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/apic.c:1106,1
    - Dst: wait_8254_wraparound
      Src: /src/xen/xen/arch/x86/apic.c:1113,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/apic.c:1116,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1117,1
    - Dst: wait_8254_wraparound
      Src: /src/xen/xen/arch/x86/apic.c:1121,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/apic.c:1123,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1124,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1128,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1133,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1142,1
    - Dst: __setup_APIC_LVTT
      Src: /src/xen/xen/arch/x86/apic.c:1144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1086
    functionDepth: 3
    functionLinenumber: 1086
    functionLinenumberEnd: 1147
    functionName: calibrate_APIC_clock
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - apic_printk
    - calibrate_apic_timer
    - __setup_APIC_LVTT
    - wait_8254_wraparound
    - ASSERT
    - apic_read
    - rdtsc_ordered
    linkageType: ''
    returnType: void
    signature: void calibrate_APIC_clock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1152,1
    - Dst: check_deadline_errata
      Src: /src/xen/xen/arch/x86/apic.c:1155,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/apic.c:1157,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/apic.c:1160,1
    - Dst: calibrate_APIC_clock
      Src: /src/xen/xen/arch/x86/apic.c:1163,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:1167,1
    - Dst: setup_APIC_timer
      Src: /src/xen/xen/arch/x86/apic.c:1171,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/apic.c:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1149
    functionDepth: 4
    functionLinenumber: 1149
    functionLinenumberEnd: 1174
    functionName: setup_boot_APIC_clock
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - apic_printk
    - calibrate_APIC_clock
    - boot_cpu_has
    - setup_APIC_timer
    - printk
    - local_irq_restore
    - local_irq_save
    - check_deadline_errata
    linkageType: ''
    returnType: void
    signature: void setup_boot_APIC_clock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_APIC_timer
      Src: /src/xen/xen/arch/x86/apic.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: setup_secondary_APIC_clock
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - setup_APIC_timer
    linkageType: ''
    returnType: void
    signature: void setup_secondary_APIC_clock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1187,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1189,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1192
    functionName: disable_APIC_timer
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void disable_APIC_timer(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1199,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1202
    functionName: enable_APIC_timer
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - apic_read
    - apic_write
    linkageType: ''
    returnType: void
    signature: void enable_APIC_timer(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/apic.c:1222,1
    - Dst: stime2tsc
      Src: /src/xen/xen/arch/x86/apic.c:1222,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/apic.c:1226,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/apic.c:1227,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1233
    functionName: reprogram_timer
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - stime2tsc
    - min_t
    - wrmsrl
    - apic_write
    - NOW
    linkageType: ''
    returnType: int
    signature: int reprogram_timer(s_time_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:1237,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/apic.c:1238,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/apic.c:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1240
    functionName: apic_timer_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - raise_softirq
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void apic_timer_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/apic.c:1247,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/apic.c:1248,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/apic.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    functionName: smp_send_state_dump
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - send_IPI_mask
    - per_cpu
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void smp_send_state_dump(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apic_isr_read
      Src: /src/xen/xen/arch/x86/apic.c:1261,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:1264,1
    - Dst: nmi_check_continuation
      Src: /src/xen/xen/arch/x86/apic.c:1265,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/apic.c:1266,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/apic.c:1267,1
    - Dst: dump_execstate
      Src: /src/xen/xen/arch/x86/apic.c:1268,1
    - Dst: get_irq_regs
      Src: /src/xen/xen/arch/x86/apic.c:1268,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:1277,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/apic.c:1278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1254
    functionDepth: 3
    functionLinenumber: 1254
    functionLinenumberEnd: 1279
    functionName: spurious_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - ack_APIC_irq
    - smp_processor_id
    - apic_isr_read
    - get_irq_regs
    - printk
    - this_cpu
    - dump_execstate
    - nmi_check_continuation
    linkageType: ''
    returnType: void
    signature: void spurious_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/apic.c:1297,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1302,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/apic.c:1303,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/apic.c:1304,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:1305,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/apic.c:1307,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:1309,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/apic.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1314
    functionName: error_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - ack_APIC_irq
    - smp_processor_id
    - apic_read
    - printk
    - apic_write
    linkageType: ''
    returnType: void
    signature: void error_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_do_interrupt
      Src: /src/xen/xen/arch/x86/apic.c:1322,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/apic.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1324
    functionName: pmu_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - vpmu_do_interrupt
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void pmu_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_intr_init
      Src: /src/xen/xen/arch/x86/apic.c:1328,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/apic.c:1331,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/apic.c:1334,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/apic.c:1335,1
    - Dst: set_direct_apic_vector
      Src: /src/xen/xen/arch/x86/apic.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1339
    functionName: apic_intr_init
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - smp_intr_init
    - set_direct_apic_vector
    linkageType: ''
    returnType: void
    signature: void apic_intr_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/apic.c:1348,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/apic.c:1359,1
    - Dst: verify_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:1365,1
    - Dst: connect_bsp_APIC
      Src: /src/xen/xen/arch/x86/apic.c:1367,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/apic.c:1375,1
    - Dst: physids_clear
      Src: /src/xen/xen/arch/x86/apic.c:1377,1
    - Dst: physid_set
      Src: /src/xen/xen/arch/x86/apic.c:1378,1
    - Dst: enable_IO_APIC
      Src: /src/xen/xen/arch/x86/apic.c:1382,1
    - Dst: setup_local_APIC
      Src: /src/xen/xen/arch/x86/apic.c:1384,1
    - Dst: check_nmi_watchdog
      Src: /src/xen/xen/arch/x86/apic.c:1387,1
    - Dst: setup_IO_APIC
      Src: /src/xen/xen/arch/x86/apic.c:1391,1
    - Dst: setup_boot_APIC_clock
      Src: /src/xen/xen/arch/x86/apic.c:1393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1345
    functionDepth: 7
    functionLinenumber: 1345
    functionLinenumberEnd: 1396
    functionName: APIC_init_uniprocessor
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 1
    functionsReached:
    - physid_set
    - enable_IO_APIC
    - setup_local_APIC
    - physids_clear
    - get_apic_id
    - connect_bsp_APIC
    - check_nmi_watchdog
    - printk
    - setup_clear_cpu_cap
    - setup_IO_APIC
    - verify_local_APIC
    - setup_boot_APIC_clock
    linkageType: ''
    returnType: int
    signature: int APIC_init_uniprocessor (void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum apic_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1413
    functionName: apic_mode_to_str
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * __init apic_mode_to_str(const enum apic_mode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_local_apic_mode
      Src: /src/xen/xen/arch/x86/apic.c:1425,1
    - Dst: apic_printk
      Src: /src/xen/xen/arch/x86/apic.c:1427,1
    - Dst: apic_mode_to_str
      Src: /src/xen/xen/arch/x86/apic.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1429
    functionName: record_boot_APIC_mode
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - current_local_apic_mode
    - apic_mode_to_str
    - apic_printk
    linkageType: ''
    returnType: void
    signature: void record_boot_APIC_mode(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/apic.c:1436,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/apic.c:1440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1449
    functionName: current_local_apic_mode
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 5
    functionsReached:
    - boot_cpu_has
    - rdmsrl
    linkageType: ''
    returnType: enum apic_mode
    signature: enum apic_mode current_local_apic_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/apic.c:1454,1
    - Dst: apic_isr_read
      Src: /src/xen/xen/arch/x86/apic.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1455
    functionName: check_for_unexpected_msi
    functionSourceFile: /src/xen/xen/arch/x86/apic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - apic_isr_read
    linkageType: ''
    returnType: void
    signature: void check_for_unexpected_msi(unsigned int vector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/traps-setup.c:42,1
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/traps-setup.c:43,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:45,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:46,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:51,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps-setup.c:62,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps-setup.c:80,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/traps-setup.c:108,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps-setup.c:111,1
    - Dst: rdssp
      Src: /src/xen/xen/arch/x86/traps-setup.c:111,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps-setup.c:117,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps-setup.c:117,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps-setup.c:118,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps-setup.c:118,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps-setup.c:119,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps-setup.c:119,1
    - Dst: wrss
      Src: /src/xen/xen/arch/x86/traps-setup.c:120,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/traps-setup.c:120,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:123,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:124,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/traps-setup.c:127,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps-setup.c:129,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/traps-setup.c:130,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:131,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:134,1
    - Dst: lgdt
      Src: /src/xen/xen/arch/x86/traps-setup.c:135,1
    - Dst: lidt
      Src: /src/xen/xen/arch/x86/traps-setup.c:136,1
    - Dst: ltr
      Src: /src/xen/xen/arch/x86/traps-setup.c:137,1
    - Dst: lldt
      Src: /src/xen/xen/arch/x86/traps-setup.c:138,1
    - Dst: enable_each_ist
      Src: /src/xen/xen/arch/x86/traps-setup.c:140,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/traps-setup.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 146
    functionName: load_system_tables
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - _set_tssldt_desc
    - wrmsrns
    - ARRAY_SIZE
    - smp_processor_id
    - rdssp
    - enable_each_ist
    - wrss
    - IS_ENABLED
    - lidt
    - BUG_ON
    - ASSERT
    - lgdt
    - per_cpu
    - _p
    - this_cpu
    - ltr
    - get_stack_bottom
    - lldt
    linkageType: ''
    returnType: void
    signature: void load_system_tables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: place_endbr64
      Src: /src/xen/xen/arch/x86/traps-setup.c:156,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/traps-setup.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - stub
    - stub_va
    - stack_bottom
    - target_va
    argTypes:
    - unsigned char*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 187
    functionName: write_stub_trampoline
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - place_endbr64
    - ROUNDUP
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int write_stub_trampoline(\n    unsigned char *stub, unsigned
      long stub_va,\n    unsigned long stack_bottom, unsigned long target_va)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/traps-setup.c:191,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:192,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps-setup.c:196,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps-setup.c:199,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/traps-setup.c:202,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/traps-setup.c:202,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:202,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:209,1
    - Dst: write_stub_trampoline
      Src: /src/xen/xen/arch/x86/traps-setup.c:210,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:218,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:219,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:220,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:224,1
    - Dst: write_stub_trampoline
      Src: /src/xen/xen/arch/x86/traps-setup.c:225,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps-setup.c:230,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/traps-setup.c:232,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:235,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 237
    functionName: legacy_syscall_init
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - wrmsrns
    - write_stub_trampoline
    - map_domain_page
    - unmap_domain_page
    - _mfn
    - IS_ENABLED
    - ASSERT
    - this_cpu
    - get_stack_bottom
    linkageType: ''
    returnType: void
    signature: void legacy_syscall_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps-setup.c:267,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/traps-setup.c:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 273
    functionName: init_ler
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - setup_force_cpu_cap
    - printk
    linkageType: ''
    returnType: void
    signature: void init_ler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/traps-setup.c:294,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/traps-setup.c:296,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:298,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:299,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:305,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/traps-setup.c:305,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:306,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:307,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:308,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:309,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:314,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:315,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:316,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/traps-setup.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 319
    functionName: init_fred
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - ASSERT
    - wrmsrns
    - get_stack_bottom
    linkageType: ''
    returnType: void
    signature: void init_fred(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:335,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:336,1
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/traps-setup.c:338,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/traps-setup.c:341,1
    - Dst: ltr
      Src: /src/xen/xen/arch/x86/traps-setup.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: init_fred_tss
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - _set_tssldt_desc
    - ltr
    - get_stack_bottom
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void init_fred_tss(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lidt
      Src: /src/xen/xen/arch/x86/traps-setup.c:359,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/traps-setup.c:362,1
    - Dst: ltr
      Src: /src/xen/xen/arch/x86/traps-setup.c:365,1
    - Dst: lldt
      Src: /src/xen/xen/arch/x86/traps-setup.c:366,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:369,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:370,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/traps-setup.c:371,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: bsp_early_traps_init
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 1
    functionsReached:
    - _set_tssldt_desc
    - lidt
    - IS_ENABLED
    - this_cpu
    - ltr
    - lldt
    linkageType: ''
    returnType: void
    signature: void bsp_early_traps_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _update_gate_addr_lower
      Src: /src/xen/xen/arch/x86/traps-setup.c:381,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps-setup.c:390,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps-setup.c:405,1
    - Dst: init_fred
      Src: /src/xen/xen/arch/x86/traps-setup.c:409,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/traps-setup.c:410,1
    - Dst: lidt
      Src: /src/xen/xen/arch/x86/traps-setup.c:416,1
    - Dst: init_fred_tss
      Src: /src/xen/xen/arch/x86/traps-setup.c:417,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/traps-setup.c:419,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps-setup.c:420,1
    - Dst: load_system_tables
      Src: /src/xen/xen/arch/x86/traps-setup.c:424,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/traps-setup.c:426,1
    - Dst: init_ler
      Src: /src/xen/xen/arch/x86/traps-setup.c:429,1
    - Dst: percpu_traps_init
      Src: /src/xen/xen/arch/x86/traps-setup.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 432
    functionName: traps_init
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 3
    functionsReached:
    - load_system_tables
    - set_in_cr4
    - init_fred
    - percpu_traps_init
    - init_fred_tss
    - _update_gate_addr_lower
    - lidt
    - printk
    - init_ler
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void traps_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_fred
      Src: /src/xen/xen/arch/x86/traps-setup.c:444,1
    - Dst: load_system_tables
      Src: /src/xen/xen/arch/x86/traps-setup.c:446,1
    - Dst: percpu_traps_init
      Src: /src/xen/xen/arch/x86/traps-setup.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 449
    functionName: bsp_traps_reinit
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 2
    functionsReached:
    - init_fred
    - percpu_traps_init
    - load_system_tables
    linkageType: ''
    returnType: void
    signature: void bsp_traps_reinit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: legacy_syscall_init
      Src: /src/xen/xen/arch/x86/traps-setup.c:463,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/traps-setup.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: percpu_traps_init
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 3
    functionsReached:
    - legacy_syscall_init
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void percpu_traps_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/traps-setup.c:480,1
    - Dst: lgdt
      Src: /src/xen/xen/arch/x86/traps-setup.c:486,1
    - Dst: init_fred
      Src: /src/xen/xen/arch/x86/traps-setup.c:488,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/traps-setup.c:489,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/traps-setup.c:489,1
    - Dst: lidt
      Src: /src/xen/xen/arch/x86/traps-setup.c:495,1
    - Dst: init_fred_tss
      Src: /src/xen/xen/arch/x86/traps-setup.c:496,1
    - Dst: lldt
      Src: /src/xen/xen/arch/x86/traps-setup.c:497,1
    - Dst: load_system_tables
      Src: /src/xen/xen/arch/x86/traps-setup.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 501
    functionName: percpu_early_traps_init
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - load_system_tables
    - init_fred
    - read_cr4
    - init_fred_tss
    - lidt
    - lgdt
    - this_cpu
    - write_cr4
    - lldt
    linkageType: ''
    returnType: void
    signature: void percpu_early_traps_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/traps-setup.c:515,1
    - Dst: endof_field
      Src: /src/xen/xen/arch/x86/traps-setup.c:516,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/traps-setup.c:517,1
    - Dst: endof_field
      Src: /src/xen/xen/arch/x86/traps-setup.c:518,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/traps-setup.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 526
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/traps-setup.c
    functionUses: 0
    functionsReached:
    - endof_field
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sz
    argTypes:
    - struct memsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: memsize_gt_zero
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool memsize_gt_zero(const struct memsize *sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sz
    - avail
    argTypes:
    - struct memsize*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: get_memsize
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long __init
    signature: "unsigned long __init get_memsize(const struct memsize *sz,\n                                        unsigned
      long avail)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/arch/x86/dom0_build.c:89,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/arch/x86/dom0_build.c:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - s
    - ps
    - sz
    argTypes:
    - char*
    - char**
    - struct memsize*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 119
    functionName: parse_amt
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - isdigit
    - parse_size_and_unit
    linkageType: ''
    returnType: int
    signature: int parse_amt(const char *s, const char **ps, struct memsize *sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dom0_build.c:130,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:135,1
    - Dst: parse_amt
      Src: /src/xen/xen/arch/x86/dom0_build.c:136,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:137,1
    - Dst: parse_amt
      Src: /src/xen/xen/arch/x86/dom0_build.c:138,1
    - Dst: parse_amt
      Src: /src/xen/xen/arch/x86/dom0_build.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 144
    functionName: parse_dom0_mem
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - strncmp
    - parse_amt
    - printk
    linkageType: ''
    returnType: int
    signature: int parse_dom0_mem(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:153,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:156,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: parse_dom0_max_vcpus
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_dom0_max_vcpus(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/dom0_build.c:180,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/dom0_build.c:182,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/x86/dom0_build.c:184,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/dom0_build.c:188,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:190,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:196,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 207
    functionName: parse_dom0_nodes
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - ARRAY_SIZE
    - strchr
    - isdigit
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_dom0_nodes(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nodes_setall
      Src: /src/xen/xen/arch/x86/dom0_build.c:220,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/dom0_build.c:226,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/arch/x86/dom0_build.c:234,1
    - Dst: node_set
      Src: /src/xen/xen/arch/x86/dom0_build.c:235,1
    - Dst: nodes_and
      Src: /src/xen/xen/arch/x86/dom0_build.c:236,1
    - Dst: nodes_empty
      Src: /src/xen/xen/arch/x86/dom0_build.c:237,1
    - Dst: for_each_node_mask
      Src: /src/xen/xen/arch/x86/dom0_build.c:239,1
    - Dst: cpumask_or
      Src: /src/xen/xen/arch/x86/dom0_build.c:240,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/arch/x86/dom0_build.c:240,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/dom0_build.c:241,1
    - Dst: cpupool_valid_cpus
      Src: /src/xen/xen/arch/x86/dom0_build.c:241,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/dom0_build.c:242,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/dom0_build.c:243,1
    - Dst: cpupool_valid_cpus
      Src: /src/xen/xen/arch/x86/dom0_build.c:243,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/dom0_build.c:245,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 255
    functionName: dom0_max_vcpus
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 1
    functionsReached:
    - cpumask_copy
    - nodes_setall
    - cpumask_empty
    - node_set
    - node_to_cpumask
    - for_each_node_mask
    - cpumask_and
    - nodes_empty
    - pxm_to_node
    - nodes_and
    - cpumask_set_cpu
    - cpumask_weight
    - cpumask_or
    - cpupool_valid_cpus
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dom0_max_vcpus(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_create
      Src: /src/xen/xen/arch/x86/dom0_build.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dom0
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: alloc_dom0_vcpu0
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 1
    functionsReached:
    - vcpu_create
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *__init alloc_dom0_vcpu0(struct domain *dom0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/dom0_build.c:276,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:276,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/dom0_build.c:278,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/dom0_build.c:278,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/dom0_build.c:281,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/dom0_build.c:284,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/dom0_build.c:286,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/dom0_build.c:287,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/dom0_build.c:289,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/dom0_build.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 299
    functionName: parse_arch_dom0_param
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - parse_boolean
    - IS_ENABLED
    linkageType: ''
    returnType: int
    signature: int parse_arch_dom0_param(const char *s, const char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:316,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/dom0_build.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - nr_pages
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: dom0_paging_pages
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - is_pv_domain
    - DIV_ROUND_UP
    linkageType: ''
    returnType: unsigned long __init
    signature: "unsigned long __init dom0_paging_pages(const struct domain *d,\n                                       unsigned
      long nr_pages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_mem
      Src: /src/xen/xen/arch/x86/dom0_build.c:330,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/dom0_build.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - avail
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: default_nr_pages
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - min
    - pv_shim_mem
    linkageType: ''
    returnType: unsigned long __init
    signature: unsigned long __init default_nr_pages(unsigned long avail)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: parse_dom0_mem
      Src: /src/xen/xen/arch/x86/dom0_build.c:342,1
    - Dst: for_each_node_mask
      Src: /src/xen/xen/arch/x86/dom0_build.c:344,1
    - Dst: avail_domheap_pages_region
      Src: /src/xen/xen/arch/x86/dom0_build.c:345,1
    - Dst: initial_images_nrpages
      Src: /src/xen/xen/arch/x86/dom0_build.c:346,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/dom0_build.c:350,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:352,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/dom0_build.c:356,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/dom0_build.c:366,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:370,1
    - Dst: default_nr_pages
      Src: /src/xen/xen/arch/x86/dom0_build.c:370,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/dom0_build.c:376,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:376,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/dom0_build.c:377,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:377,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/dom0_build.c:378,1
    - Dst: dom0_paging_pages
      Src: /src/xen/xen/arch/x86/dom0_build.c:380,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/dom0_build.c:382,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:388,1
    - Dst: default_nr_pages
      Src: /src/xen/xen/arch/x86/dom0_build.c:388,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:389,1
    - Dst: get_memsize
      Src: /src/xen/xen/arch/x86/dom0_build.c:390,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/dom0_build.c:393,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/dom0_build.c:394,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/dom0_build.c:395,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:397,1
    - Dst: memsize_gt_zero
      Src: /src/xen/xen/arch/x86/dom0_build.c:398,1
    - Dst: memsize_gt_zero
      Src: /src/xen/xen/arch/x86/dom0_build.c:399,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:410,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/dom0_build.c:413,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/dom0_build.c:415,1
    - Dst: sizeof_long < sizeof(end) && end >
      Src: /src/xen/xen/arch/x86/dom0_build.c:421,1
    - Dst: memsize_gt_zero
      Src: /src/xen/xen/arch/x86/dom0_build.c:425,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dom0_build.c:427,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/dom0_build.c:431,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 3
    argNames:
    - d
    - parms
    - initrd_len
    argTypes:
    - struct domain*
    - struct elf_dom_parms*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 434
    functionName: dom0_compute_nr_pages
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - max
    - iommu_use_hap_pt
    - initial_images_nrpages
    - round_pgup
    - dom0_paging_pages
    - is_pv_32bit_domain
    - paging_mode_enabled
    - avail_domheap_pages_region
    - default_nr_pages
    - printk
    - is_iommu_enabled
    - memsize_gt_zero
    - for_each_node_mask
    - min
    - sizeof_long < sizeof(end) && end >
    - min_t
    - get_order_from_bytes
    - get_memsize
    - is_pv_domain
    - parse_dom0_mem
    linkageType: ''
    returnType: unsigned long __init
    signature: "unsigned long __init dom0_compute_nr_pages(\n    struct domain *d,
      struct elf_dom_parms *parms, unsigned long initrd_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/xen/xen/arch/x86/dom0_build.c:445,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:447,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dom0_build.c:451,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/dom0_build.c:459,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/dom0_build.c:466,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:469,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/dom0_build.c:470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - dom0
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 472
    functionName: process_dom0_ioports_disable
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - BUG
    - ioports_deny_access
    - simple_strtoul
    - printk
    - strsep
    linkageType: ''
    returnType: void
    signature: void process_dom0_ioports_disable(struct domain *dom0)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ioports_permit_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:484,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:485,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/dom0_build.c:486,1
    - Dst: domain_max_paddr_bits
      Src: /src/xen/xen/arch/x86/dom0_build.c:486,1
    - Dst: irqs_permit_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:487,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/dom0_build.c:491,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:497,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:499,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:503,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/dom0_build.c:506,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:509,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:512,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:515,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:518,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:522,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:525,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:528,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:531,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:534,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:536,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:538,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:541,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:544,1
    - Dst: process_dom0_ioports_disable
      Src: /src/xen/xen/arch/x86/dom0_build.c:548,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:555,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:556,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/dom0_build.c:559,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:562,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:563,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:568,1
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/dom0_build.c:570,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/dom0_build.c:571,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:572,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:577,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:579,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:579,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/dom0_build.c:586,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:586,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:587,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:591,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/dom0_build.c:599,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:601,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:603,1
    - Dst: rangeset_add_singleton
      Src: /src/xen/xen/arch/x86/dom0_build.c:605,1
    - Dst: has_vpci
      Src: /src/xen/xen/arch/x86/dom0_build.c:608,1
    - Dst: vpci_mmcfg_deny_access
      Src: /src/xen/xen/arch/x86/dom0_build.c:613,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 616
    functionName: dom0_setup_permissions
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 0
    functionsReached:
    - ioports_permit_access
    - ISOLATE_LSB
    - process_dom0_ioports_disable
    - rangeset_add_singleton
    - has_vpci
    - has_vlapic
    - ioports_deny_access
    - paddr_to_pfn
    - irqs_permit_access
    - rangeset_contains_singleton
    - has_vioapic
    - iomem_deny_access
    - max_t
    - domain_max_paddr_bits
    - PFN_DOWN
    - iomem_permit_access
    - vpci_mmcfg_deny_access
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int dom0_setup_permissions(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/dom0_build.c:624,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/dom0_build.c:625,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/dom0_build.c:626,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/dom0_build.c:628,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:630,1
    - Dst: dom0_construct_pvh
      Src: /src/xen/xen/arch/x86/dom0_build.c:631,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/dom0_build.c:632,1
    - Dst: dom0_construct_pv
      Src: /src/xen/xen/arch/x86/dom0_build.c:633,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/dom0_build.c:635,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/dom0_build.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 644
    functionName: construct_dom0
    functionSourceFile: /src/xen/xen/arch/x86/dom0_build.c
    functionUses: 1
    functionsReached:
    - dom0_construct_pvh
    - panic
    - dom0_construct_pv
    - BUG_ON
    - is_pv_domain
    - process_pending_softirqs
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int construct_dom0(const struct boot_domain *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dividend
    - divisor
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: div_frac
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: u32
    signature: u32 div_frac(u32 dividend, u32 divisor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - multiplicand
    - multiplier
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: mul_frac
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 mul_frac(u32 multiplicand, u32 multiplier)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delta
    - scale
    argTypes:
    - uint64_t
    - struct time_scale*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: scale_delta
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t scale_delta(uint64_t delta, const struct time_scale *scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:161,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - scale
    argTypes:
    - struct time_scale
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 176
    functionName: scale_reciprocal
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - unlikely
    linkageType: ''
    returnType: struct time_scale
    signature: struct time_scale scale_reciprocal(struct time_scale scale)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:186,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/time.c:189,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/time.c:191,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/time.c:193,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/time.c:194,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/time.c:197,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/arch/x86/time.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 201
    functionName: smp_send_timer_broadcast_ipi
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - cpumask_empty
    - smp_processor_id
    - __cpumask_clear_cpu
    - cpumask_raise_softirq
    - cpumask_and
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void smp_send_timer_broadcast_ipi(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:205,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/time.c:205,1
    - Dst: hpet_legacy_irq_tick
      Src: /src/xen/xen/arch/x86/time.c:207,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/time.c:215,1
    - Dst: smp_send_timer_broadcast_ipi
      Src: /src/xen/xen/arch/x86/time.c:218,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/time.c:225,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:227,1
    - Dst: PIT_LTCH_CH
      Src: /src/xen/xen/arch/x86/time.c:227,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:228,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:229,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/time.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 236
    functionName: timer_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - local_irq_is_enabled
    - smp_send_timer_broadcast_ipi
    - outb
    - PIT_LTCH_CH
    - spin_unlock_irq
    - spin_lock_irq
    - ASSERT
    - inb
    - hpet_legacy_irq_tick
    linkageType: ''
    returnType: void
    signature: void timer_interrupt(int irq, void *dev_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - freq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: CALIBRATE_VALUE
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALIBRATE_VALUE(freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/time.c:250,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:250,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/time.c:252,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: preinit_pit
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - outb_p
    - PIT_TCW_CH
    - outb
    linkageType: ''
    returnType: void
    signature: void preinit_pit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:263,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/time.c:265,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/time.c:272,1
    - Dst: div_frac
      Src: /src/xen/xen/arch/x86/time.c:278,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/time.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ts
    - ticks_per_sec
    argTypes:
    - struct time_scale*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 280
    functionName: set_time_scale
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - MILLISECS
    - ASSERT
    - div_frac
    linkageType: ''
    returnType: void
    signature: void set_time_scale(struct time_scale *ts, u64 ticks_per_sec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_div
      Src: /src/xen/xen/arch/x86/time.c:287,1
    - Dst: do_div
      Src: /src/xen/xen/arch/x86/time.c:289,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/time.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - freq
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 293
    functionName: freq_string
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - snprintf
    - do_div
    linkageType: ''
    returnType: char
    signature: char *freq_string(u64 freq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:298,1
    - Dst: struct platform_timesource*::read_counter
      Src: /src/xen/xen/arch/x86/time.c:304,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - tsc
    - pts
    argTypes:
    - uint64_t*
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 321
    functionName: read_pt_and_tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - struct platform_timesource*::read_counter
    - rdtsc_ordered
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t read_pt_and_tsc(uint64_t *tsc,\n                                       const
      struct platform_timesource *pts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_pt_and_tsc
      Src: /src/xen/xen/arch/x86/time.c:326,1
    - Dst: CALIBRATE_VALUE
      Src: /src/xen/xen/arch/x86/time.c:327,1
    - Dst: struct platform_timesource*::read_counter
      Src: /src/xen/xen/arch/x86/time.c:330,1
    - Dst: read_pt_and_tsc
      Src: /src/xen/xen/arch/x86/time.c:333,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/time.c:336,1
    - Dst: muldiv64
      Src: /src/xen/xen/arch/x86/time.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 348
    functionName: calibrate_tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - read_pt_and_tsc
    - likely
    - struct platform_timesource*::read_counter
    - muldiv64
    - CALIBRATE_VALUE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calibrate_tsc(const struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:360,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:362,1
    - Dst: PIT_LTCH_CH
      Src: /src/xen/xen/arch/x86/time.c:362,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:363,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:364,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 371
    functionName: read_pit_count
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - outb
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - PIT_LTCH_CH
    - inb
    linkageType: ''
    returnType: u64
    signature: u64 read_pit_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:375,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:380,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/time.c:388,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:389,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:389,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:391,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:392,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:395,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:396,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:398,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 410
    functionName: init_pit
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - outb
    - BUILD_BUG_ON
    - PIT_TCW_CH
    - rdtsc_ordered
    - inb
    linkageType: ''
    returnType: int64_t
    signature: int64_t init_pit(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:415,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:415,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:417,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    functionName: resume_pit
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - PIT_TCW_CH
    - outb
    linkageType: ''
    returnType: void
    signature: void resume_pit(struct platform_timesource *pts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:450,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:450,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:452,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:452,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:459,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:460,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:465,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:468,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:479,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:480,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/time.c:483,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:487,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:488,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/time.c:495,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 498
    functionName: probe_pit_alias
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ISOLATE_LSB
    - outb
    - PIT_TCW_CH
    - inb
    - dprintk
    linkageType: ''
    returnType: void
    signature: void probe_pit_alias(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read32
      Src: /src/xen/xen/arch/x86/time.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: read_hpet_count
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - hpet_read32
    linkageType: ''
    returnType: u64
    signature: u64 read_hpet_count(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:519,1
    - Dst: cpuidle_using_deep_cstate
      Src: /src/xen/xen/arch/x86/time.c:520,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/time.c:522,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/time.c:522,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/time.c:524,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/time.c:524,1
    - Dst: mwait_pc10_supported
      Src: /src/xen/xen/arch/x86/time.c:560,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:564,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:567,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:568,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:574,1
    - Dst: hpet_setup
      Src: /src/xen/xen/arch/x86/time.c:577,1
    - Dst: calibrate_tsc
      Src: /src/xen/xen/arch/x86/time.c:582,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 509
    functionDepth: 3
    functionLinenumber: 509
    functionLinenumberEnd: 583
    functionName: init_hpet
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - PCI_SBDF
    - rdmsrl
    - cpuidle_using_deep_cstate
    - mwait_pc10_supported
    - printk
    - calibrate_tsc
    - strcmp
    - hpet_setup
    linkageType: ''
    returnType: int64_t
    signature: int64_t init_hpet(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_resume
      Src: /src/xen/xen/arch/x86/time.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: resume_hpet
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - hpet_resume
    linkageType: ''
    returnType: void
    signature: void resume_hpet(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inl
      Src: /src/xen/xen/arch/x86/time.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 613
    functionName: read_pmtimer_count
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - inl
    linkageType: ''
    returnType: u64
    signature: u64 read_pmtimer_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calibrate_tsc
      Src: /src/xen/xen/arch/x86/time.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: init_pmtimer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - calibrate_tsc
    linkageType: ''
    returnType: int64_t
    signature: int64_t init_pmtimer(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_time_scale
      Src: /src/xen/xen/arch/x86/time.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: init_pmtmr_scale
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - set_time_scale
    linkageType: ''
    returnType: __init
    signature: __init init_pmtmr_scale(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: acpi_pm_tick_to_ns
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - scale_delta
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t acpi_pm_tick_to_ns(uint64_t ticks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_present_cpus
      Src: /src/xen/xen/arch/x86/time.c:664,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:666,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:672,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 680
    functionName: init_tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - printk
    - num_present_cpus
    linkageType: ''
    returnType: int64_t
    signature: int64_t init_tsc(struct platform_timesource *pts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 723
    functionName: xen_timer_cpu_frequency
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xen_timer_cpu_frequency(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_timer_cpu_frequency
      Src: /src/xen/xen/arch/x86/time.c:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 731
    functionName: init_xen_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - xen_timer_cpu_frequency
    linkageType: ''
    returnType: int64_t
    signature: int64_t init_xen_timer(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - tsc
    argTypes:
    - struct vcpu_time_info*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 744
    functionName: read_cycle
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - scale_delta
    linkageType: ''
    returnType: always_inline
    signature: "always_inline read_cycle(const struct vcpu_time_info *info,\n                                         uint64_t
      tsc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:748,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:756,1
    - Dst: read_cycle
      Src: /src/xen/xen/arch/x86/time.c:758,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:758,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:762,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:763,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/time.c:767,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:770,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/time.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 773
    functionName: read_xen_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - smp_rmb
    - read_cycle
    - this_cpu
    - rdtsc_ordered
    - read_atomic
    - unlikely
    - cmpxchg
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_xen_timer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/time.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: resume_xen_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void resume_xen_timer(struct platform_timesource *pts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:799,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:803,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:806,1
    - Dst: read_xen_timer
      Src: /src/xen/xen/arch/x86/time.c:809,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 814
    functionName: read_xen_wallclock
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ASSERT_UNREACHABLE
    - read_xen_timer
    - smp_rmb
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_xen_wallclock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/time.c:835,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/time.c:839,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/time.c:842,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/time.c:847,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:857,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/time.c:860,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 867
    functionName: init_hyperv_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - alloc_domheap_page
    - rdmsrl
    - wrmsrl
    - free_domheap_page
    - page_to_maddr
    - __map_domain_page_global
    linkageType: ''
    returnType: int64_t
    signature: "int64_t init_hyperv_timer(\n    struct platform_timesource *pts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:885,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:890,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:894,1
    - Dst: hv_scale_tsc
      Src: /src/xen/xen/arch/x86/time.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 899
    functionName: read_hyperv_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - hv_scale_tsc
    - rdmsrl
    - smp_rmb
    - rdtsc_ordered
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_hyperv_timer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:936,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/time.c:936,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - platform_time
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 938
    functionName: __read_platform_stime
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - scale_delta
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t __read_platform_stime(u64 platform_time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/time.c:948,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 950
    functionName: read_counter
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - alternative_call
    - rdtsc_ordered
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_counter(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/time.c:958,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:960,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:964,1
    - Dst: __read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:965,1
    - Dst: __read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:969,1
    - Dst: ABS
      Src: /src/xen/xen/arch/x86/time.c:970,1
    - Dst: ABS
      Src: /src/xen/xen/arch/x86/time.c:970,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/time.c:975,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/time.c:978,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/time.c:980,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 981
    functionName: plt_overflow
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - read_counter
    - spin_unlock_irq
    - spin_lock_irq
    - printk_once
    - set_timer
    - __read_platform_stime
    - ABS
    - NOW
    linkageType: ''
    returnType: void
    signature: void plt_overflow(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:988,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/time.c:988,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/time.c:990,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:991,1
    - Dst: __read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:993,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/time.c:994,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - stamp
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1000
    functionName: read_platform_stime
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - read_counter
    - ASSERT
    - __read_platform_stime
    - spin_lock
    - unlikely
    - local_irq_is_enabled
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t read_platform_stime(u64 *stamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:1008,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:1009,1
    - Dst: __read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:1010,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1014
    functionName: platform_time_calibration
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - read_counter
    - __read_platform_stime
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void platform_time_calibration(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/time.c:1020,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1024
    functionName: resume_platform_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - read_counter
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void resume_platform_timer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/time.c:1028,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/time.c:1031,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/time.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1037
    functionName: reset_platform_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - spin_lock_irq
    - kill_timer
    - spin_unlock_irq
    linkageType: ''
    returnType: void
    signature: void reset_platform_timer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct platform_timesource*::init
      Src: /src/xen/xen/arch/x86/time.c:1041,1
    - Dst: reset_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:1048,1
    - Dst: set_time_scale
      Src: /src/xen/xen/arch/x86/time.c:1052,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:1054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pts
    argTypes:
    - struct platform_timesource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1039
    functionDepth: 2
    functionLinenumber: 1039
    functionLinenumberEnd: 1059
    functionName: try_platform_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - struct platform_timesource*::init
    - scale_delta
    - reset_platform_timer
    - set_time_scale
    linkageType: ''
    returnType: int64_t
    signature: int64_t try_platform_timer(struct platform_timesource *pts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1078,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/time.c:1080,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1083,1
    - Dst: try_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:1085,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:1091,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/time.c:1098,1
    - Dst: try_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:1101,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/time.c:1107,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:1109,1
    - Dst: freq_string
      Src: /src/xen/xen/arch/x86/time.c:1110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1113
    functionName: init_platform_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - panic
    - freq_string
    - printk
    - try_platform_timer
    - strcmp
    linkageType: ''
    returnType: u64
    signature: u64 init_platform_timer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apic_tmcct_read
      Src: /src/xen/xen/arch/x86/time.c:1117,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:1123,1
    - Dst: apic_tmcct_read
      Src: /src/xen/xen/arch/x86/time.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tmcct
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1140
    functionName: read_pt_and_tmcct
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - read_counter
    - apic_tmcct_read
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_pt_and_tmcct(uint32_t *tmcct)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_pt_and_tmcct
      Src: /src/xen/xen/arch/x86/time.c:1145,1
    - Dst: CALIBRATE_VALUE
      Src: /src/xen/xen/arch/x86/time.c:1146,1
    - Dst: read_counter
      Src: /src/xen/xen/arch/x86/time.c:1156,1
    - Dst: read_pt_and_tmcct
      Src: /src/xen/xen/arch/x86/time.c:1159,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/time.c:1162,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:1168,1
    - Dst: muldiv64
      Src: /src/xen/xen/arch/x86/time.c:1173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1177
    functionName: calibrate_apic_timer
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - read_counter
    - likely
    - muldiv64
    - unlikely
    - read_pt_and_tmcct
    - CALIBRATE_VALUE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t calibrate_apic_timer(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1185,1
    - Dst: scale_reciprocal
      Src: /src/xen/xen/arch/x86/time.c:1186,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - stime
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1193
    functionName: stime2tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - scale_delta
    - scale_reciprocal
    - this_cpu
    linkageType: ''
    returnType: u64
    signature: u64 stime2tsc(s_time_t stime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1197,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:1199,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:1202,1
    - Dst: stime2tsc
      Src: /src/xen/xen/arch/x86/time.c:1203,1
    - Dst: write_tsc
      Src: /src/xen/xen/arch/x86/time.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: cstate_restore_tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - stime2tsc
    - read_platform_stime
    - this_cpu
    - write_tsc
    linkageType: ''
    returnType: void
    signature: void cstate_restore_tsc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - year
    - mon
    - day
    - hour
    - min
    - sec
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1245
    functionName: mktime
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long mktime (unsigned int year, unsigned int mon,\n        unsigned
      int day, unsigned int hour,\n        unsigned int min, unsigned int sec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:1256,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:1259,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:1261,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1262,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/time.c:1263,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:1265,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:1267,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1268,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/time.c:1269,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1271,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1272,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1273,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1274,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1275,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1276,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1278,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1280,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1281,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1282,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1283,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1284,1
    - Dst: BCD_TO_BIN
      Src: /src/xen/xen/arch/x86/time.c:1285,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:1288,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/time.c:1293,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/time.c:1293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - rtc
    argTypes:
    - struct rtc_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1294
    functionName: __get_cmos_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - CMOS_READ
    - SECONDS
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BCD_TO_BIN
    - MILLISECS
    - NOW
    linkageType: ''
    returnType: bool
    signature: bool __get_cmos_time(struct rtc_time *rtc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __get_cmos_time
      Src: /src/xen/xen/arch/x86/time.c:1312,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/time.c:1330,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:1335,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1337
    functionName: cmos_rtc_probe
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - process_pending_softirqs
    - __get_cmos_time
    linkageType: ''
    returnType: bool
    signature: bool cmos_rtc_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __get_cmos_time
      Src: /src/xen/xen/arch/x86/time.c:1344,1
    - Dst: mktime
      Src: /src/xen/xen/arch/x86/time.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1347
    functionName: cmos_rtc_read
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - mktime
    - __get_cmos_time
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long cmos_rtc_read(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:1372,1
    - Dst: CMOS_READ
      Src: /src/xen/xen/arch/x86/time.c:1374,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:1375,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1375,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:1378,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1378,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:1380,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/time.c:1385,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/time.c:1390,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1391,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1396
    functionName: probe_cmos_alias
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - CMOS_READ
    - spin_lock_irqsave
    - RTC_PORT
    - spin_unlock_irqrestore
    - process_pending_softirqs
    - inb
    - dprintk
    linkageType: ''
    returnType: int
    signature: int probe_cmos_alias(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/time.c:1403,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1404,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1404,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1410,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1410,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1416,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1416,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1423,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1423,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 3
    argNames:
    - port
    - bytes
    - d
    argTypes:
    - unsigned int
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1428
    functionName: is_cmos_port
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - RTC_PORT
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool is_cmos_port(unsigned int port, unsigned int bytes, const struct
      domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1439,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1446,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1454,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/time.c:1456,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:1457,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1460,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/time.c:1461,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:1463,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:1464,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1464,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:1466,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:1467,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:1471,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1476
    functionName: rtc_guest_read
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ioports_access_permitted
    - outb
    - RTC_PORT
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - inb
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rtc_guest_read(unsigned int port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/time.c:1485,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1488,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1494,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1501,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/time.c:1503,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:1504,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1507,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/time.c:1508,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/time.c:1511,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/time.c:1513,1
    - Dst: hook
      Src: /src/xen/xen/arch/x86/time.c:1515,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/time.c:1517,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:1518,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:1519,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/time.c:1520,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:1524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - port
    - data
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1527
    functionName: rtc_guest_write
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ioports_access_permitted
    - outb
    - RTC_PORT
    - spin_lock_irqsave
    - typeof
    - hook
    - spin_unlock_irqrestore
    - ACCESS_ONCE
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void rtc_guest_write(unsigned int port, unsigned int data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:1553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1555
    functionName: wallclock_type_to_string
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: char *__init wallclock_type_to_string(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1564,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:1565,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1566,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1573,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:1575,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1585
    functionName: parse_wallclock
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_wallclock(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:1590,1
    - Dst: cmos_rtc_probe
      Src: /src/xen/xen/arch/x86/time.c:1597,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/time.c:1602,1
    - Dst: efi_get_time
      Src: /src/xen/xen/arch/x86/time.c:1602,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/time.c:1608,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/time.c:1609,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/time.c:1611,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/time.c:1614,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1588
    functionDepth: 3
    functionLinenumber: 1588
    functionLinenumberEnd: 1617
    functionName: probe_wallclock
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - panic
    - efi_enabled
    - ASSERT
    - cmos_rtc_probe
    - efi_get_time
    linkageType: ''
    returnType: void
    signature: void probe_wallclock(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_xen_wallclock
      Src: /src/xen/xen/arch/x86/time.c:1624,1
    - Dst: cmos_rtc_read
      Src: /src/xen/xen/arch/x86/time.c:1627,1
    - Dst: efi_get_time
      Src: /src/xen/xen/arch/x86/time.c:1630,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/time.c:1637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1639
    functionName: get_wallclock_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cmos_rtc_read
    - ASSERT_UNREACHABLE
    - efi_get_time
    - read_xen_wallclock
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_wallclock_time(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1647,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:1653,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/time.c:1655,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:1656,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - at_tsc
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1661
    functionName: get_s_time_fixed
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - scale_delta
    - rdtsc_ordered
    - likely
    - this_cpu
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t get_s_time_fixed(u64 at_tsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/time.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1666
    functionName: get_s_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - get_s_time_fixed
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t get_s_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1670,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:1672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1673
    functionName: tsc_ticks2ns
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - scale_delta
    - this_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t tsc_ticks2ns(uint64_t ticks)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1678,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/time.c:1682,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:1688,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/time.c:1694,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/time.c:1696,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/time.c:1699,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:1706,1
    - Dst: hvm_scale_tsc
      Src: /src/xen/xen/arch/x86/time.c:1708,1
    - Dst: clocksource_is_tsc
      Src: /src/xen/xen/arch/x86/time.c:1728,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:1731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - v
    - u
    argTypes:
    - struct vcpu*
    - struct vcpu_time_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1733
    functionName: collect_time_info
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - gtime_to_gtsc
    - clocksource_is_tsc
    - this_cpu
    - memset
    - hvm_scale_tsc
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: "void collect_time_info(const struct vcpu *v,\n                              struct
      vcpu_time_info *u)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/time.c:1743,1
    - Dst: collect_time_info
      Src: /src/xen/xen/arch/x86/time.c:1745,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/time.c:1749,1
    - Dst: version_update_begin
      Src: /src/xen/xen/arch/x86/time.c:1753,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1754,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1757,1
    - Dst: version_update_end
      Src: /src/xen/xen/arch/x86/time.c:1759,1
    - Dst: update_secondary_system_time
      Src: /src/xen/xen/arch/x86/time.c:1761,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/time.c:1761,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/time.c:1762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - v
    - force
    argTypes:
    - struct vcpu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1764
    functionName: __update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - update_secondary_system_time
    - is_pv_32bit_domain
    - memcmp
    - version_update_end
    - version_update_begin
    - smp_wmb
    - collect_time_info
    - is_pv_domain
    linkageType: ''
    returnType: void
    signature: void __update_vcpu_system_time(struct vcpu *v, int force)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/time.c:1770,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1771,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1777,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/time.c:1778,1
    - Dst: version_update_end
      Src: /src/xen/xen/arch/x86/time.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - map
    - src
    argTypes:
    - struct vcpu_time_info*
    - struct vcpu_time_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1779
    functionName: write_time_guest_area
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - version_update_end
    - write_atomic
    linkageType: ''
    returnType: void
    signature: "void write_time_guest_area(struct vcpu_time_info *map,\n                                  const
      struct vcpu_time_info *src)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/time.c:1784,1
    - Dst: write_time_guest_area
      Src: /src/xen/xen/arch/x86/time.c:1790,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/time.c:1794,1
    - Dst: update_guest_memory_policy
      Src: /src/xen/xen/arch/x86/time.c:1797,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/time.c:1800,1
    - Dst: update_guest_memory_policy
      Src: /src/xen/xen/arch/x86/time.c:1802,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1805,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/time.c:1807,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:1808,1
    - Dst: version_update_end
      Src: /src/xen/xen/arch/x86/time.c:1810,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/time.c:1811,1
    - Dst: update_guest_memory_policy
      Src: /src/xen/xen/arch/x86/time.c:1813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - v
    - u
    argTypes:
    - struct vcpu*
    - struct vcpu_time_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1816
    functionName: update_secondary_system_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - version_update_end
    - write_time_guest_area
    - XEN_GUEST_HANDLE
    - smp_wmb
    - __copy_to_guest
    - guest_handle_is_null
    - update_guest_memory_policy
    - __copy_field_to_guest
    linkageType: ''
    returnType: bool
    signature: "bool update_secondary_system_time(struct vcpu *v,\n                                  struct
      vcpu_time_info *u)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1821
    functionName: update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 3
    functionsReached:
    - __update_vcpu_system_time
    linkageType: ''
    returnType: void
    signature: void update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 3
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: force_update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - __update_vcpu_system_time
    linkageType: ''
    returnType: void
    signature: void force_update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: collect_time_info
      Src: /src/xen/xen/arch/x86/time.c:1833,1
    - Dst: write_time_guest_area
      Src: /src/xen/xen/arch/x86/time.c:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - map
    argTypes:
    - struct vcpu*
    - struct vcpu_time_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1836
    functionName: force_update_secondary_system_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - write_time_guest_area
    - collect_time_info
    linkageType: ''
    returnType: void
    signature: "void force_update_secondary_system_time(struct vcpu *v,\n                                        struct
      vcpu_time_info *map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/time.c:1842,1
    - Dst: for_each_domain
      Src: /src/xen/xen/arch/x86/time.c:1844,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:1845,1
    - Dst: rtc_update_clock
      Src: /src/xen/xen/arch/x86/time.c:1846,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/time.c:1848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1849
    functionName: update_domain_rtc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - rtc_update_clock
    - for_each_domain
    - rcu_read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void update_domain_rtc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:1855,1
    - Dst: rtc_update_clock
      Src: /src/xen/xen/arch/x86/time.c:1856,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/time.c:1857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - time_offset_seconds
    argTypes:
    - struct domain*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1858
    functionName: domain_set_time_offset
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - update_domain_wallclock_time
    - is_hvm_domain
    - rtc_update_clock
    linkageType: ''
    returnType: void
    signature: void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1862,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:1868,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:1873,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:1875,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:1876,1
    - Dst: set_time_scale
      Src: /src/xen/xen/arch/x86/time.c:1881,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:1882,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:1884,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:1887,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/time.c:1889,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:1889,1
    - Dst: platform_time_calibration
      Src: /src/xen/xen/arch/x86/time.c:1890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - freq
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1860
    functionDepth: 3
    functionLinenumber: 1860
    functionLinenumberEnd: 1894
    functionName: cpu_frequency_change
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - update_vcpu_system_time
    - local_irq_enable
    - smp_processor_id
    - platform_time_calibration
    - local_irq_disable
    - set_time_scale
    - read_platform_stime
    - set_timer
    - this_cpu
    - printk
    - rdtsc_ordered
    - NOW
    linkageType: ''
    returnType: int
    signature: int cpu_frequency_change(u64 freq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1902,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:1903,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:1927,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:1930,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:1932,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:1933,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:1940,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:1942,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:1945,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:1946,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:1947,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:1949,1
    - Dst: div_frac
      Src: /src/xen/xen/arch/x86/time.c:1978,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:2004,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:2008,1
    - Dst: div_frac
      Src: /src/xen/xen/arch/x86/time.c:2015,1
    - Dst: mul_frac
      Src: /src/xen/xen/arch/x86/time.c:2017,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2020,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2020,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:2025,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:2029,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:2031,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2034,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/time.c:2036,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:2036,1
    - Dst: platform_time_calibration
      Src: /src/xen/xen/arch/x86/time.c:2037,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 1900
    functionDepth: 3
    functionLinenumber: 1900
    functionLinenumberEnd: 2039
    functionName: local_time_calibration
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - update_vcpu_system_time
    - local_irq_enable
    - boot_cpu_has
    - smp_processor_id
    - platform_time_calibration
    - local_irq_disable
    - set_timer
    - ASSERT
    - printk
    - this_cpu
    - mul_frac
    - div_frac
    - NOW
    linkageType: ''
    returnType: void
    signature: void local_time_calibration(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2057,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/time.c:2070,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2072,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/time.c:2074,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:2081,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2085,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/time.c:2093,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/time.c:2095,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/time.c:2098,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - tsc_khz
    - max_warp
    argTypes:
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2101
    functionName: check_tsc_warp
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpu_relax
    - spin_lock
    - rdtsc_ordered
    - unlikely
    linkageType: ''
    returnType: void
    signature: void check_tsc_warp(unsigned long tsc_khz, unsigned long *max_warp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2108,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:2109,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/time.c:2110,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2111,1
    - Dst: check_tsc_warp
      Src: /src/xen/xen/arch/x86/time.c:2112,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/time.c:2113,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:2114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2115
    functionName: tsc_check_slave
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - local_irq_enable
    - smp_processor_id
    - local_irq_disable
    - check_tsc_warp
    - cpumask_clear_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void tsc_check_slave(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2119,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/time.c:2122,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/x86/time.c:2125,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/time.c:2126,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/time.c:2126,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:2127,1
    - Dst: check_tsc_warp
      Src: /src/xen/xen/arch/x86/time.c:2128,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:2129,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/time.c:2130,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2131,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/time.c:2133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2117
    functionDepth: 2
    functionLinenumber: 2117
    functionLinenumberEnd: 2134
    functionName: tsc_check_reliability
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - smp_call_function
    - cpu_relax
    - local_irq_enable
    - cpumask_empty
    - smp_processor_id
    - local_irq_disable
    - cpumask_andnot
    - spin_lock
    - check_tsc_warp
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void tsc_check_reliability(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2152,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/time.c:2155,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/time.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - r
    - old_tsc
    - new_tsc
    argTypes:
    - struct calibration_rendezvous*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2148
    functionDepth: 2
    functionLinenumber: 2148
    functionLinenumberEnd: 2159
    functionName: time_calibration_rendezvous_tail
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - get_s_time_fixed
    - raise_softirq
    - this_cpu
    linkageType: ''
    returnType: void
    signature: "void time_calibration_rendezvous_tail(const struct calibration_rendezvous
      *r,\n                                 uint64_t old_tsc, uint64_t new_tsc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/time.c:2169,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2175,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2177,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2178,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2181,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2189,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:2190,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/time.c:2192,1
    - Dst: write_tsc
      Src: /src/xen/xen/arch/x86/time.c:2196,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2201,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2204,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2205,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/time.c:2206,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/time.c:2210,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2211,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2212,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/time.c:2216,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2218,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/time.c:2220,1
    - Dst: write_tsc
      Src: /src/xen/xen/arch/x86/time.c:2225,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2230,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/time.c:2233,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2234,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2235,1
    - Dst: time_calibration_rendezvous_tail
      Src: /src/xen/xen/arch/x86/time.c:2250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - _r
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2165
    functionDepth: 3
    functionLinenumber: 2165
    functionLinenumberEnd: 2251
    functionName: time_calibration_tsc_rendezvous
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - write_tsc
    - cpu_relax
    - smp_processor_id
    - boot_cpu_has
    - time_calibration_rendezvous_tail
    - read_platform_stime
    - atomic_inc
    - rdtsc_ordered
    - cpumask_weight
    - ACCESS_ONCE
    - cmpxchg
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void time_calibration_tsc_rendezvous(void *_r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/time.c:2257,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2259,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2261,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2262,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2263,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:2265,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/time.c:2266,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/time.c:2268,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/time.c:2272,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/time.c:2273,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/time.c:2274,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/time.c:2275,1
    - Dst: time_calibration_rendezvous_tail
      Src: /src/xen/xen/arch/x86/time.c:2278,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - _r
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2254
    functionDepth: 3
    functionLinenumber: 2254
    functionLinenumberEnd: 2279
    functionName: time_calibration_std_rendezvous
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - boot_cpu_has
    - smp_processor_id
    - time_calibration_rendezvous_tail
    - smp_rmb
    - read_platform_stime
    - smp_wmb
    - atomic_inc
    - rdtsc_ordered
    - cpumask_weight
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void time_calibration_std_rendezvous(void *_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2288,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/time.c:2294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2285
    functionDepth: 1
    functionLinenumber: 2285
    functionLinenumberEnd: 2295
    functionName: time_calibration_nop_rendezvous
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void time_calibration_nop_rendezvous(void *rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ATOMIC_INIT
      Src: /src/xen/xen/arch/x86/time.c:2303,1
    - Dst: clocksource_is_tsc
      Src: /src/xen/xen/arch/x86/time.c:2306,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/time.c:2308,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:2309,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/time.c:2310,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/time.c:2313,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/time.c:2316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2300
    functionDepth: 3
    functionLinenumber: 2300
    functionLinenumberEnd: 2319
    functionName: time_calibration
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - local_irq_enable
    - clocksource_is_tsc
    - ATOMIC_INIT
    - local_irq_disable
    - on_selected_cpus
    - read_platform_stime
    - cpumask_copy
    linkageType: ''
    returnType: void
    signature: void time_calibration(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/time.c:2327,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:2328,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2329,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/time.c:2330,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/time.c:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2323
    functionDepth: 3
    functionLinenumber: 2323
    functionLinenumberEnd: 2333
    functionName: time_latch_stamps
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - get_s_time_fixed
    - read_platform_stime
    - rdtsc_ordered
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void time_latch_stamps(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2337,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/time.c:2343,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/time.c:2347,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2347,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:2351,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:2353,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/time.c:2361,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2373,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2375,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/time.c:2376,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/time.c:2383,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/time.c:2385,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/time.c:2389,1
    - Dst: read_platform_stime
      Src: /src/xen/xen/arch/x86/time.c:2390,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/time.c:2391,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/time.c:2392,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2400,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/time.c:2403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2335
    functionDepth: 3
    functionLinenumber: 2335
    functionLinenumberEnd: 2409
    functionName: init_percpu_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - boot_cpu_has
    - cpu_to_socket
    - rdmsrl
    - get_s_time_fixed
    - read_platform_stime
    - printk_once
    - ASSERT
    - wrmsrl
    - per_cpu
    - printk
    - this_cpu
    - local_irq_save
    - cpumask_weight
    - rdtsc_ordered
    - local_irq_restore
    linkageType: ''
    returnType: void
    signature: void init_percpu_time(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2429,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/time.c:2432,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/time.c:2433,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/time.c:2435,1
    - Dst: write_tsc
      Src: /src/xen/xen/arch/x86/time.c:2437,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/time.c:2438,1
    - Dst: ABS
      Src: /src/xen/xen/arch/x86/time.c:2439,1
    - Dst: write_tsc
      Src: /src/xen/xen/arch/x86/time.c:2454,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2458,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2461,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2464,1
    - Dst: cpuidle_disable_deep_cstate
      Src: /src/xen/xen/arch/x86/time.c:2465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2419
    functionDepth: 1
    functionLinenumber: 2419
    functionLinenumberEnd: 2469
    functionName: tsc_check_writability
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cpuidle_disable_deep_cstate
    - wrmsr_safe
    - boot_cpu_has
    - rdtsc
    - setup_clear_cpu_cap
    - printk
    - write_tsc
    - ABS
    linkageType: ''
    returnType: void
    signature: void tsc_check_writability(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2473,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/time.c:2477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2479
    functionName: reset_percpu_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - get_s_time_fixed
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void reset_percpu_time(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/time.c:2483,1
    - Dst: plt_overflow
      Src: /src/xen/xen/arch/x86/time.c:2484,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:2487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2481
    functionDepth: 3
    functionLinenumber: 2481
    functionLinenumberEnd: 2488
    functionName: try_platform_timer_tail
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - plt_overflow
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void try_platform_timer_tail(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2493,1
    - Dst: tsc_check_reliability
      Src: /src/xen/xen/arch/x86/time.c:2501,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2504,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2505,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:2507,1
    - Dst: try_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:2508,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/time.c:2518,1
    - Dst: try_platform_timer_tail
      Src: /src/xen/xen/arch/x86/time.c:2528,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2530,1
    - Dst: freq_string
      Src: /src/xen/xen/arch/x86/time.c:2531,1
    - Dst: time_calibration
      Src: /src/xen/xen/arch/x86/time.c:2533,1
    - Dst: tsc_check_writability
      Src: /src/xen/xen/arch/x86/time.c:2545,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2551,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2552,1
    - Dst: time_calibration
      Src: /src/xen/xen/arch/x86/time.c:2555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2491
    functionDepth: 4
    functionLinenumber: 2491
    functionLinenumberEnd: 2558
    functionName: verify_tsc_reliability
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - try_platform_timer_tail
    - tsc_check_reliability
    - boot_cpu_has
    - on_selected_cpus
    - freq_string
    - time_calibration
    - printk
    - setup_clear_cpu_cap
    - try_platform_timer
    - strcmp
    - tsc_check_writability
    linkageType: ''
    returnType: int
    signature: int verify_tsc_reliability(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tsc_check_writability
      Src: /src/xen/xen/arch/x86/time.c:2564,1
    - Dst: open_softirq
      Src: /src/xen/xen/arch/x86/time.c:2566,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/time.c:2572,1
    - Dst: probe_wallclock
      Src: /src/xen/xen/arch/x86/time.c:2576,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2578,1
    - Dst: wallclock_type_to_string
      Src: /src/xen/xen/arch/x86/time.c:2578,1
    - Dst: do_settime
      Src: /src/xen/xen/arch/x86/time.c:2581,1
    - Dst: get_wallclock_time
      Src: /src/xen/xen/arch/x86/time.c:2581,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:2581,1
    - Dst: try_platform_timer_tail
      Src: /src/xen/xen/arch/x86/time.c:2584,1
    - Dst: init_percpu_time
      Src: /src/xen/xen/arch/x86/time.c:2586,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/time.c:2588,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2595,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2596,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/time.c:2597,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2562
    functionDepth: 5
    functionLinenumber: 2562
    functionLinenumberEnd: 2600
    functionName: init_xen_time
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - try_platform_timer_tail
    - init_timer
    - init_percpu_time
    - probe_wallclock
    - boot_cpu_has
    - efi_enabled
    - do_settime
    - xzalloc_array
    - get_wallclock_time
    - open_softirq
    - printk
    - wallclock_type_to_string
    - tsc_check_writability
    - NOW
    linkageType: ''
    returnType: int
    signature: int init_xen_time(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2606,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2609,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2610,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/time.c:2612,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2615,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/time.c:2617,1
    - Dst: preinit_pit
      Src: /src/xen/xen/arch/x86/time.c:2622,1
    - Dst: probe_pit_alias
      Src: /src/xen/xen/arch/x86/time.c:2623,1
    - Dst: init_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:2625,1
    - Dst: set_time_scale
      Src: /src/xen/xen/arch/x86/time.c:2628,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2632,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/x86/time.c:2635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2604
    functionDepth: 4
    functionLinenumber: 2604
    functionLinenumberEnd: 2636
    functionName: early_time_init
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - boot_cpu_has
    - rdmsrl
    - set_time_scale
    - wrmsrl
    - probe_pit_alias
    - printk
    - this_cpu
    - setup_irq
    - preinit_pit
    - init_platform_timer
    linkageType: ''
    returnType: void
    signature: void early_time_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpuidle_using_deep_cstate
      Src: /src/xen/xen/arch/x86/time.c:2652,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2652,1
    - Dst: hpet_broadcast_init
      Src: /src/xen/xen/arch/x86/time.c:2654,1
    - Dst: hpet_broadcast_resume
      Src: /src/xen/xen/arch/x86/time.c:2654,1
    - Dst: hpet_broadcast_is_available
      Src: /src/xen/xen/arch/x86/time.c:2655,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2659,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/time.c:2668,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:2668,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/time.c:2670,1
    - Dst: outb_p
      Src: /src/xen/xen/arch/x86/time.c:2671,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - init
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2639
    functionDepth: 7
    functionLinenumber: 2639
    functionLinenumberEnd: 2674
    functionName: _disable_pit_irq
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - outb_p
    - hpet_broadcast_is_available
    - boot_cpu_has
    - hpet_broadcast_resume
    - cpuidle_using_deep_cstate
    - PIT_TCW_CH
    - printk
    - hpet_broadcast_init
    linkageType: ''
    returnType: int
    signature: int _disable_pit_irq(bool init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _disable_pit_irq
      Src: /src/xen/xen/arch/x86/time.c:2678,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2681,1
    - Dst: hpet_broadcast_late_init
      Src: /src/xen/xen/arch/x86/time.c:2685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2676
    functionDepth: 8
    functionLinenumber: 2676
    functionLinenumberEnd: 2688
    functionName: disable_pit_irq
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - _disable_pit_irq
    - hpet_broadcast_late_init
    - printk
    linkageType: ''
    returnType: int
    signature: int disable_pit_irq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/time.c:2693,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2694
    functionName: pit_broadcast_enter
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - smp_processor_id
    linkageType: ''
    returnType: void
    signature: void pit_broadcast_enter(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2698,1
    - Dst: cpumask_test_and_clear_cpu
      Src: /src/xen/xen/arch/x86/time.c:2700,1
    - Dst: reprogram_timer
      Src: /src/xen/xen/arch/x86/time.c:2701,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/time.c:2701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2696
    functionDepth: 1
    functionLinenumber: 2696
    functionLinenumberEnd: 2702
    functionName: pit_broadcast_exit
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - this_cpu
    - reprogram_timer
    - cpumask_test_and_clear_cpu
    linkageType: ''
    returnType: void
    signature: void pit_broadcast_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuidle_using_deep_cstate
      Src: /src/xen/xen/arch/x86/time.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2704
    functionDepth: 1
    functionLinenumber: 2704
    functionLinenumberEnd: 2707
    functionName: pit_broadcast_is_available
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - cpuidle_using_deep_cstate
    linkageType: ''
    returnType: int
    signature: int pit_broadcast_is_available(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/arch/x86/time.c:2711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2712
    functionName: send_timer_event
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - send_guest_vcpu_virq
    linkageType: ''
    returnType: void
    signature: void send_timer_event(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/time.c:2719,1
    - Dst: get_wallclock_time
      Src: /src/xen/xen/arch/x86/time.c:2723,1
    - Dst: get_sec
      Src: /src/xen/xen/arch/x86/time.c:2724,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/time.c:2725,1
    - Dst: platform_time_calibration
      Src: /src/xen/xen/arch/x86/time.c:2728,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/time.c:2732,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/time.c:2732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2717
    functionDepth: 5
    functionLinenumber: 2717
    functionLinenumberEnd: 2735
    functionName: time_suspend
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - softirq_pending
    - get_sec
    - smp_processor_id
    - platform_time_calibration
    - kill_timer
    - get_wallclock_time
    - clear_bit
    linkageType: ''
    returnType: int
    signature: int time_suspend(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preinit_pit
      Src: /src/xen/xen/arch/x86/time.c:2739,1
    - Dst: resume_platform_timer
      Src: /src/xen/xen/arch/x86/time.c:2741,1
    - Dst: _disable_pit_irq
      Src: /src/xen/xen/arch/x86/time.c:2743,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/time.c:2744,1
    - Dst: init_percpu_time
      Src: /src/xen/xen/arch/x86/time.c:2746,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/time.c:2748,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:2748,1
    - Dst: do_settime
      Src: /src/xen/xen/arch/x86/time.c:2750,1
    - Dst: get_wallclock_time
      Src: /src/xen/xen/arch/x86/time.c:2750,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/time.c:2750,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/time.c:2752,1
    - Dst: update_domain_rtc
      Src: /src/xen/xen/arch/x86/time.c:2754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2737
    functionDepth: 8
    functionLinenumber: 2737
    functionLinenumberEnd: 2757
    functionName: time_resume
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - update_vcpu_system_time
    - BUG
    - init_percpu_time
    - _disable_pit_irq
    - do_settime
    - set_timer
    - get_wallclock_time
    - update_domain_rtc
    - preinit_pit
    - NOW
    - resume_platform_timer
    linkageType: ''
    returnType: int
    signature: int time_resume(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:2769,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:2771,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:2777,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:2781,1
    - Dst: PIT_TCW_CH
      Src: /src/xen/xen/arch/x86/time.c:2788,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:2789,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:2796,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/time.c:2798,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/time.c:2798,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - ioreq
    argTypes:
    - struct ioreq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2759
    functionDepth: 1
    functionLinenumber: 2759
    functionLinenumberEnd: 2803
    functionName: hwdom_pit_access
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - inb
    - PIT_TCW_CH
    - outb
    linkageType: ''
    returnType: int
    signature: int hwdom_pit_access(struct ioreq *ioreq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:2816,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2818,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2819,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2820,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:2822,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/time.c:2823,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/time.c:2824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2830
    functionName: tsc_parse
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - strcmp
    - setup_clear_cpu_cap
    linkageType: ''
    returnType: int
    signature: int tsc_parse(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:2835,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:2838,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:2842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - time
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2843
    functionName: gtime_to_gtsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - scale_delta
    - is_hvm_domain
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gtime_to_gtsc(const struct domain *d, uint64_t time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:2848,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:2848,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - tsc
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2850
    functionName: gtsc_to_gtime
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - scale_delta
    - is_hvm_domain
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gtsc_to_gtime(const struct domain *d, uint64_t tsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2856
    functionName: clocksource_is_tsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool clocksource_is_tsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2861
    functionName: host_tsc_is_safe
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - boot_cpu_has
    linkageType: ''
    returnType: int
    signature: int host_tsc_is_safe(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:2871,1
    - Dst: get_s_time
      Src: /src/xen/xen/arch/x86/time.c:2888,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/time.c:2892,1
    - Dst: scale_delta
      Src: /src/xen/xen/arch/x86/time.c:2893,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - d
    - tsc_mode
    - elapsed_nsec
    - gtsc_khz
    - incarnation
    argTypes:
    - struct domain*
    - uint32_t*
    - uint64_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2867
    functionDepth: 1
    functionLinenumber: 2867
    functionLinenumberEnd: 2900
    functionName: tsc_get_info
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - rdtsc
    - scale_delta
    - is_hvm_domain
    - get_s_time
    linkageType: ''
    returnType: void
    signature: "void tsc_get_info(struct domain *d, uint32_t *tsc_mode,\n                  uint64_t
      *elapsed_nsec, uint32_t *gtsc_khz,\n                  uint32_t *incarnation)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/time.c:2914,1
    - Dst: is_system_domain
      Src: /src/xen/xen/arch/x86/time.c:2914,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/time.c:2916,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/time.c:2916,1
    - Dst: get_s_time
      Src: /src/xen/xen/arch/x86/time.c:2926,1
    - Dst: set_time_scale
      Src: /src/xen/xen/arch/x86/time.c:2928,1
    - Dst: host_tsc_is_safe
      Src: /src/xen/xen/arch/x86/time.c:2937,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:2939,1
    - Dst: hvm_get_tsc_scaling_ratio
      Src: /src/xen/xen/arch/x86/time.c:2940,1
    - Dst: scale_reciprocal
      Src: /src/xen/xen/arch/x86/time.c:2947,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:2957,1
    - Dst: hvm_get_tsc_scaling_ratio
      Src: /src/xen/xen/arch/x86/time.c:2961,1
    - Dst: hvm_set_rdtsc_exiting
      Src: /src/xen/xen/arch/x86/time.c:2963,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/time.c:2974,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/time.c:2975,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 5
    argNames:
    - d
    - tsc_mode
    - elapsed_nsec
    - gtsc_khz
    - incarnation
    argTypes:
    - struct domain*
    - uint32_t
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2910
    functionDepth: 2
    functionLinenumber: 2910
    functionLinenumberEnd: 2981
    functionName: tsc_set_info
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 2
    functionsReached:
    - scale_reciprocal
    - hvm_set_tsc_offset
    - set_time_scale
    - rdtsc
    - ASSERT
    - is_pv_domain
    - hvm_get_tsc_scaling_ratio
    - host_tsc_is_safe
    - is_system_domain
    - hvm_set_rdtsc_exiting
    - is_hardware_domain
    - is_hvm_domain
    - get_s_time
    linkageType: ''
    returnType: int
    signature: "int tsc_set_info(struct domain *d,\n                 uint32_t tsc_mode,
      uint64_t elapsed_nsec,\n                 uint32_t gtsc_khz, uint32_t incarnation)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tsc_check_reliability
      Src: /src/xen/xen/arch/x86/time.c:2989,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2990,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2991,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/time.c:2993,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2995,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2997,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:2999,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3000,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3002,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/time.c:3005,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/time.c:3009,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3012,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:3013,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3015,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3017,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3019,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3020,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/time.c:3024,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3027,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 2984
    functionDepth: 3
    functionLinenumber: 2984
    functionLinenumberEnd: 3028
    functionName: dump_softtsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - tsc_check_reliability
    - boot_cpu_has
    - printk
    - rcu_read_lock
    - is_hardware_domain
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void dump_softtsc(unsigned char key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/time.c:3009,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3012,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/time.c:3013,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3015,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3017,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3019,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/time.c:3020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3007
    functionDepth: 1
    functionLinenumber: 3007
    functionLinenumberEnd: 3022
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 1
    functionsReached:
    - is_hvm_domain
    - is_hardware_domain
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/time.c:3032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3030
    functionDepth: 1
    functionLinenumber: 3030
    functionLinenumberEnd: 3034
    functionName: setup_dump_softtsc
    functionSourceFile: /src/xen/xen/arch/x86/time.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int setup_dump_softtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_head_is_null
      Src: /src/xen/xen/arch/x86/livepatch.c:26,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/livepatch.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ved
    argTypes:
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: has_active_waitqueue
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - list_head_is_null
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool has_active_waitqueue(const struct vm_event_domain *ved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:44,1
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:48,1
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:51,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/livepatch.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 60
    functionName: arch_livepatch_safety_check
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - has_active_waitqueue
    - printk
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_safety_check(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:44,1
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:48,1
    - Dst: has_active_waitqueue
      Src: /src/xen/xen/arch/x86/livepatch.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 1
    functionsReached:
    - has_active_waitqueue
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: relax_virtual_region_perms
      Src: /src/xen/xen/arch/x86/livepatch.c:69,1
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/livepatch.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: arch_livepatch_quiesce
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - relax_virtual_region_perms
    - flush_local
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_quiesce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tighten_virtual_region_perms
      Src: /src/xen/xen/arch/x86/livepatch.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: arch_livepatch_revive
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - tighten_virtual_region_perms
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_revive(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_endbr64
      Src: /src/xen/xen/arch/x86/livepatch.c:112,1
    - Dst: is_endbr64_poison
      Src: /src/xen/xen/arch/x86/livepatch.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - func
    argTypes:
    - struct livepatch_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 120
    functionName: arch_livepatch_verify_func
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - is_endbr64_poison
    - is_endbr64
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_verify_func(const struct livepatch_func *func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_endbr64
      Src: /src/xen/xen/arch/x86/livepatch.c:144,1
    - Dst: is_endbr64_poison
      Src: /src/xen/xen/arch/x86/livepatch.c:144,1
    - Dst: livepatch_insn_len
      Src: /src/xen/xen/arch/x86/livepatch.c:148,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/livepatch.c:152,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/livepatch.c:157,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/livepatch.c:163,1
    - Dst: add_nops
      Src: /src/xen/xen/arch/x86/livepatch.c:166,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/livepatch.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 169
    functionName: arch_livepatch_apply
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - is_endbr64
    - BUILD_BUG_ON
    - add_nops
    - livepatch_insn_len
    - is_endbr64_poison
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void arch_livepatch_apply(const struct livepatch_func *func,\n                                   struct
      livepatch_fstate *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/livepatch.c:178,1
    - Dst: livepatch_insn_len
      Src: /src/xen/xen/arch/x86/livepatch.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: arch_livepatch_revert
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - livepatch_insn_len
    linkageType: ''
    returnType: void
    signature: "void arch_livepatch_revert(const struct livepatch_func *func,\n                                    struct
      livepatch_fstate *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/livepatch.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: arch_livepatch_post_action
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - flush_local
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_post_action(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - cpu
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: mask_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mask_nmi_callback(const struct cpu_user_regs *regs, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/livepatch.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: arch_livepatch_mask
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - set_nmi_callback
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/livepatch.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: arch_livepatch_unmask
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - set_nmi_callback
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_unmask(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: arch_livepatch_verify_elf
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_verify_elf(const struct livepatch_elf *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: arch_livepatch_symbol_ok
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arch_livepatch_symbol_ok(const struct livepatch_elf *elf,\n                              const
      struct livepatch_elf_sym *sym)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: arch_livepatch_symbol_deny
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arch_livepatch_symbol_deny(const struct livepatch_elf *elf,\n
      \                               const struct livepatch_elf_sym *sym)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: arch_livepatch_perform_rel
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rel(struct livepatch_elf *elf,\n                               const
      struct livepatch_elf_sec *base,\n                               const struct
      livepatch_elf_sec *rela)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ELF64_R_SYM
      Src: /src/xen/xen/arch/x86/livepatch.c:262,1
    - Dst: ELF64_R_TYPE
      Src: /src/xen/xen/arch/x86/livepatch.c:294,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/livepatch.c:332,1
    - Dst: ELF64_R_TYPE
      Src: /src/xen/xen/arch/x86/livepatch.c:333,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/livepatch.c:341,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 344
    functionName: arch_livepatch_perform_rela
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - ELF64_R_TYPE
    - ELF64_R_SYM
    - printk
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rela(struct livepatch_elf *elf,\n                                const
      struct livepatch_elf_sec *base,\n                                const struct
      livepatch_elf_sec *rela)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/livepatch.c:356,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/livepatch.c:357,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/x86/livepatch.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - va
    - pages
    - type
    argTypes:
    - void*
    - unsigned int
    - enum va_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: arch_livepatch_secure
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - modify_xen_mappings
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_secure(const void *va, unsigned int pages, enum
      va_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/livepatch.c:376,1
    - Dst: vm_init_type
      Src: /src/xen/xen/arch/x86/livepatch.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: arch_livepatch_init
    functionSourceFile: /src/xen/xen/arch/x86/livepatch.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - vm_init_type
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/ioport_emulate.c:31,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/ioport_emulate.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - opcode
    - io_emul_stub
    - regs
    argTypes:
    - uint8_t
    - char*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 35
    functionName: ioemul_handle_proliant_quirk
    functionSourceFile: /src/xen/xen/arch/x86/ioport_emulate.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ioemul_handle_proliant_quirk(\n    uint8_t opcode, char
      *io_emul_stub, const struct cpu_user_regs *regs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/ioport_emulate.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: ioport_quirks_init
    functionSourceFile: /src/xen/xen/arch/x86/ioport_emulate.c
    functionUses: 0
    functionsReached:
    - dmi_check_system
    linkageType: ''
    returnType: int
    signature: int ioport_quirks_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: cat_default_val
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cat_default_val(len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - feat
    - ','
    - cos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: get_cdp_data
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cdp_data(feat, cos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - feat
    - ','
    - cos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: get_cdp_code
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cdp_code(feat, cos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: psr_alloc_feat_enabled
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool psr_alloc_feat_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:230,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:237,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/psr.c:239,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/psr.c:245,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/x86/psr.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - socket
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 248
    functionName: free_socket_resources
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - bitmap_zero
    - ASSERT
    - memset
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_socket_resources(unsigned int socket)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 287
    functionName: psr_type_to_feat_type
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: enum psr_feat_type
    signature: enum psr_feat_type psr_type_to_feat_type(enum psr_type type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_first_bit
      Src: /src/xen/xen/arch/x86/psr.c:304,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/psr.c:305,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/psr.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - feat
    - val
    argTypes:
    - struct feat_node*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 313
    functionName: cat_check_cbm
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - find_next_bit
    - find_next_zero_bit
    - find_first_bit
    linkageType: ''
    returnType: bool
    signature: bool cat_check_cbm(const struct feat_node *feat, uint32_t *val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/x86/psr.c:330,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:341,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:343,1
    - Dst: MSR_IA32_PSR_L3_MASK
      Src: /src/xen/xen/arch/x86/psr.c:344,1
    - Dst: MSR_IA32_PSR_L2_MASK
      Src: /src/xen/xen/arch/x86/psr.c:345,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:346,1
    - Dst: get_cdp_code
      Src: /src/xen/xen/arch/x86/psr.c:361,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:361,1
    - Dst: get_cdp_data
      Src: /src/xen/xen/arch/x86/psr.c:362,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:362,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:364,1
    - Dst: MSR_IA32_PSR_L3_MASK
      Src: /src/xen/xen/arch/x86/psr.c:364,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:364,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:365,1
    - Dst: MSR_IA32_PSR_L3_MASK
      Src: /src/xen/xen/arch/x86/psr.c:365,1
    - Dst: cat_default_val
      Src: /src/xen/xen/arch/x86/psr.c:365,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/psr.c:366,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:367,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:381,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:382,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - regs
    - feat
    - info
    - type
    argTypes:
    - struct cpuid_leaf*
    - struct feat_node*
    - struct psr_socket_info*
    - enum psr_feat_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 386
    functionName: cat_init_feature
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - rdmsrl
    - MSR_IA32_PSR_L3_MASK
    - cpu_to_socket
    - get_cdp_code
    - min
    - MSR_IA32_PSR_L2_MASK
    - cat_default_val
    - wrmsrl
    - printk
    - get_cdp_data
    linkageType: ''
    returnType: bool
    signature: "bool cat_init_feature(const struct cpuid_leaf *regs,\n                             struct
      feat_node *feat,\n                             struct psr_socket_info *info,\n
      \                            enum psr_feat_type type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/x86/psr.c:397,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/psr.c:397,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/psr.c:401,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:411,1
    - Dst: MSR_IA32_PSR_MBA_MASK
      Src: /src/xen/xen/arch/x86/psr.c:411,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:417,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:419,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - regs
    - feat
    - info
    - type
    argTypes:
    - struct cpuid_leaf*
    - struct feat_node*
    - struct psr_socket_info*
    - enum psr_feat_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 423
    functionName: mba_init_feature
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - MSR_IA32_PSR_MBA_MASK
    - cpu_to_socket
    - min
    - wrmsrl
    - printk
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: "bool mba_init_feature(const struct cpuid_leaf *regs,\n                            struct
      feat_node *feat,\n                            struct psr_socket_info *info,\n
      \                           enum psr_feat_type type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - feat
    - data
    - array_len
    argTypes:
    - struct feat_node*
    - uint32_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 437
    functionName: cat_get_feat_info
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool cat_get_feat_info(\n    const struct feat_node *feat, uint32_t
      data[], unsigned int array_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:444,1
    - Dst: MSR_IA32_PSR_L3_MASK
      Src: /src/xen/xen/arch/x86/psr.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cos
    - val
    - type
    argTypes:
    - unsigned int
    - uint32_t
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: l3_cat_write_msr
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - MSR_IA32_PSR_L3_MASK
    linkageType: ''
    returnType: void
    signature: "void l3_cat_write_msr(\n    unsigned int cos, uint32_t val, enum psr_type
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cat_get_feat_info
      Src: /src/xen/xen/arch/x86/psr.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - feat
    - data
    - array_len
    argTypes:
    - struct feat_node*
    - uint32_t[]
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 469
    functionName: l3_cdp_get_feat_info
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - cat_get_feat_info
    linkageType: ''
    returnType: bool
    signature: "bool l3_cdp_get_feat_info(\n    const struct feat_node *feat, uint32_t
      data[], uint32_t array_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:475,1
    - Dst: MSR_IA32_PSR_L3_MASK_DATA
      Src: /src/xen/xen/arch/x86/psr.c:476,1
    - Dst: MSR_IA32_PSR_L3_MASK_CODE
      Src: /src/xen/xen/arch/x86/psr.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cos
    - val
    - type
    argTypes:
    - unsigned int
    - uint32_t
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: l3_cdp_write_msr
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_PSR_L3_MASK_CODE
    - wrmsrl
    - MSR_IA32_PSR_L3_MASK_DATA
    linkageType: ''
    returnType: void
    signature: "void l3_cdp_write_msr(\n    unsigned int cos, uint32_t val, enum psr_type
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:497,1
    - Dst: MSR_IA32_PSR_L2_MASK
      Src: /src/xen/xen/arch/x86/psr.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cos
    - val
    - type
    argTypes:
    - unsigned int
    - uint32_t
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: l2_cat_write_msr
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_PSR_L2_MASK
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: "void l2_cat_write_msr(\n    unsigned int cos, uint32_t val, enum psr_type
      type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - feat
    - data
    - array_len
    argTypes:
    - struct feat_node*
    - uint32_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 525
    functionName: mba_get_feat_info
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: "bool mba_get_feat_info(\n    const struct feat_node *feat, uint32_t
      data[], unsigned int array_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:531,1
    - Dst: MSR_IA32_PSR_MBA_MASK
      Src: /src/xen/xen/arch/x86/psr.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cos
    - val
    - type
    argTypes:
    - unsigned int
    - uint32_t
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: mba_write_msr
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_PSR_MBA_MASK
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: "void mba_write_msr(\n    unsigned int cos, uint32_t val, enum psr_type
      type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fls
      Src: /src/xen/xen/arch/x86/psr.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - feat
    - thrtl
    argTypes:
    - struct feat_node*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 558
    functionName: mba_sanitize_thrtl
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - fls
    linkageType: ''
    returnType: bool
    signature: "bool mba_sanitize_thrtl(\n    const struct feat_node *feat, uint32_t
      *thrtl)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/psr.c:576,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/psr.c:582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - s
    - delim
    - ss
    - feature
    - mask
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 594
    functionName: parse_psr_bool
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - strncmp
    - parse_bool
    linkageType: ''
    returnType: bool
    signature: "bool parse_psr_bool(const char *s, const char *delim,\n                                  const
      char *ss, const char *feature,\n                                  unsigned int
      mask)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/psr.c:603,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/psr.c:605,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/psr.c:607,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/psr.c:609,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/psr.c:615,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/psr.c:617,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/psr.c:621,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/psr.c:623,1
    - Dst: parse_psr_bool
      Src: /src/xen/xen/arch/x86/psr.c:627,1
    - Dst: parse_psr_bool
      Src: /src/xen/xen/arch/x86/psr.c:628,1
    - Dst: parse_psr_bool
      Src: /src/xen/xen/arch/x86/psr.c:629,1
    - Dst: parse_psr_bool
      Src: /src/xen/xen/arch/x86/psr.c:630,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 637
    functionName: parse_psr_param
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - strchr
    - cmdline_strcmp
    - parse_psr_bool
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_psr_param(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/psr.c:645,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/psr.c:648,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/psr.c:652,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/psr.c:657,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/psr.c:658,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/psr.c:662,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/psr.c:668,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/psr.c:669,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/psr.c:672,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - rmid_max
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 687
    functionName: init_psr_cmt
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - get_count_order
    - xzalloc
    - xmalloc_array
    - boot_cpu_has
    - cpuid_count
    - min
    - printk
    - xfree
    linkageType: ''
    returnType: void
    signature: void init_psr_cmt(unsigned int rmid_max)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:694,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/psr.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 718
    functionName: psr_alloc_rmid
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - psr_cmt_enabled
    linkageType: ''
    returnType: int
    signature: int psr_alloc_rmid(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 732
    functionName: psr_free_rmid
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void psr_free_rmid(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:738,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/psr.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct psr_socket_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 747
    functionName: get_max_cos_max
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - max
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_max_cos_max(const struct psr_socket_info *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/psr.c:751,1
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:753,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:755,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:755,1
    - Dst: get_max_cos_max
      Src: /src/xen/xen/arch/x86/psr.c:757,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/psr.c:760,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/psr.c:764,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/psr.c:765,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 766
    functionName: psr_assoc_init
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - get_count_order
    - smp_processor_id
    - psr_alloc_feat_enabled
    - cpu_to_socket
    - rdmsrl
    - this_cpu
    - get_max_cos_max
    - psr_cmt_enabled
    linkageType: ''
    returnType: void
    signature: void psr_assoc_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - rmid
    argTypes:
    - uint64_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 771
    functionName: psr_assoc_rmid
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void psr_assoc_rmid(uint64_t *reg, unsigned int rmid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - reg
    - cos
    - cos_mask
    argTypes:
    - uint64_t
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 778
    functionName: psr_assoc_cos
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t psr_assoc_cos(uint64_t reg, unsigned int cos,\n                              uint64_t
      cos_mask)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/psr.c:782,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/psr.c:785,1
    - Dst: psr_assoc_rmid
      Src: /src/xen/xen/arch/x86/psr.c:786,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:797,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:797,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/psr.c:801,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/psr.c:801,1
    - Dst: psr_assoc_cos
      Src: /src/xen/xen/arch/x86/psr.c:805,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/psr.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 813
    functionName: psr_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached:
    - psr_assoc_rmid
    - smp_processor_id
    - cpu_to_socket
    - likely
    - psr_assoc_cos
    - wrmsrl
    - this_cpu
    - test_bit
    - psr_cmt_enabled
    linkageType: ''
    returnType: void
    signature: void psr_ctxt_switch_to(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/psr.c:818,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/psr.c:821,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/psr.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - socket
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 827
    functionName: get_socket_info
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    linkageType: ''
    returnType: struct psr_socket_info
    signature: struct psr_socket_info *get_socket_info(unsigned int socket)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_socket_info
      Src: /src/xen/xen/arch/x86/psr.c:833,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:837,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/psr.c:839,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/psr.c:840,1
    - Dst: psr_type_to_feat_type
      Src: /src/xen/xen/arch/x86/psr.c:842,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:843,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:852,1
    - Dst: get_feat_info
      Src: /src/xen/xen/arch/x86/psr.c:856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - socket
    - type
    - data
    - array_len
    argTypes:
    - unsigned int
    - enum psr_type
    - uint32_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 860
    functionName: psr_get_info
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached:
    - get_feat_info
    - IS_ERR
    - ARRAY_SIZE
    - PTR_ERR
    - psr_type_to_feat_type
    - ASSERT
    - get_socket_info
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int psr_get_info(unsigned int socket, enum psr_type type,\n                 uint32_t
      data[], unsigned int array_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_socket_info
      Src: /src/xen/xen/arch/x86/psr.c:866,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:871,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/psr.c:873,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/psr.c:874,1
    - Dst: psr_type_to_feat_type
      Src: /src/xen/xen/arch/x86/psr.c:876,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:877,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:886,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/psr.c:890,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/psr.c:891,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/psr.c:895,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - d
    - socket
    - val
    - type
    argTypes:
    - struct domain*
    - unsigned int
    - uint32_t*
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 918
    functionName: psr_get_val
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 3
    functionsReached:
    - IS_ERR
    - domain_unlock
    - ARRAY_SIZE
    - test_and_set_bit
    - PTR_ERR
    - psr_type_to_feat_type
    - ASSERT
    - get_socket_info
    - domain_lock
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int psr_get_val(struct domain *d, unsigned int socket,\n                uint32_t
      *val, enum psr_type type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 931
    functionName: get_cos_num
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_cos_num(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:944,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:955,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - val
    - array_len
    - info
    - old_cos
    argTypes:
    - uint32_t[]
    - unsigned int
    - struct psr_socket_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 978
    functionName: gather_val_array
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int gather_val_array(uint32_t val[],\n                            unsigned
      int array_len,\n                            const struct psr_socket_info *info,\n
      \                           unsigned int old_cos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - array_len
    - feat_type
    argTypes:
    - unsigned int*
    - enum psr_feat_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 1000
    functionName: skip_prior_features
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int skip_prior_features(unsigned int *array_len,\n                               enum
      psr_feat_type feat_type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1014,1
    - Dst: skip_prior_features
      Src: /src/xen/xen/arch/x86/psr.c:1016,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:1029,1
    - Dst: struct feat_props*::sanitize
      Src: /src/xen/xen/arch/x86/psr.c:1036,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - val
    - array_len
    - info
    - feat_type
    - type
    - new_val
    argTypes:
    - uint32_t[]
    - unsigned int
    - struct psr_socket_info*
    - enum psr_feat_type
    - enum psr_type
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1061
    functionName: insert_val_into_array
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - struct feat_props*::sanitize
    - ASSERT
    - ASSERT_UNREACHABLE
    - skip_prior_features
    linkageType: ''
    returnType: int
    signature: "int insert_val_into_array(uint32_t val[],\n                                 unsigned
      int array_len,\n                                 const struct psr_socket_info
      *info,\n                                 enum psr_feat_type feat_type,\n                                 enum
      psr_type type,\n                                 uint32_t new_val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - val
    - feat
    - props
    - cos
    argTypes:
    - uint32_t[]
    - struct feat_node*
    - struct feat_props*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1102
    functionName: compare_val
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_val(const uint32_t val[],\n                       const
      struct feat_node *feat,\n                       const struct feat_props *props,\n
      \                      unsigned int cos)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:1128,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:1138,1
    - Dst: compare_val
      Src: /src/xen/xen/arch/x86/psr.c:1150,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - val
    - array_len
    - feat_type
    - info
    argTypes:
    - uint32_t[]
    - unsigned int
    - enum psr_feat_type
    - struct psr_socket_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1168
    functionName: find_cos
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - compare_val
    - ASSERT_UNREACHABLE
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int find_cos(const uint32_t val[], unsigned int array_len,\n                    enum
      psr_feat_type feat_type,\n                    const struct psr_socket_info *info)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:1177,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/psr.c:1187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - val
    - array_len
    - info
    - cos
    argTypes:
    - uint32_t[]
    - uint32_t
    - struct psr_socket_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1213
    functionName: fits_cos_max
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool fits_cos_max(const uint32_t val[],\n                         uint32_t
      array_len,\n                         const struct psr_socket_info *info,\n                         unsigned
      int cos)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fits_cos_max
      Src: /src/xen/xen/arch/x86/psr.c:1235,1
    - Dst: fits_cos_max
      Src: /src/xen/xen/arch/x86/psr.c:1247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - info
    - val
    - array_len
    - old_cos
    - feat_type
    argTypes:
    - struct psr_socket_info*
    - uint32_t[]
    - unsigned int
    - unsigned int
    - enum psr_feat_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1255
    functionName: pick_avail_cos
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - fits_cos_max
    linkageType: ''
    returnType: int
    signature: "int pick_avail_cos(const struct psr_socket_info *info,\n                          const
      uint32_t val[], unsigned int array_len,\n                          unsigned
      int old_cos,\n                          enum psr_feat_type feat_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/psr.c:1259,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/psr.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - socket
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1263
    functionName: get_socket_cpu
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - likely
    - cpumask_any
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_socket_cpu(unsigned int socket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_socket_info
      Src: /src/xen/xen/arch/x86/psr.c:1277,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:1277,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:1277,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:1283,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1293,1
    - Dst: struct feat_props*::write_msr
      Src: /src/xen/xen/arch/x86/psr.c:1311,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1315
    functionName: do_write_psr_msrs
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - struct feat_props*::write_msr
    - smp_processor_id
    - cpu_to_socket
    - ASSERT
    - get_socket_info
    linkageType: ''
    returnType: void
    signature: void do_write_psr_msrs(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_socket_info
      Src: /src/xen/xen/arch/x86/psr.c:1321,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:1332,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:1332,1
    - Dst: do_write_psr_msrs
      Src: /src/xen/xen/arch/x86/psr.c:1333,1
    - Dst: get_socket_cpu
      Src: /src/xen/xen/arch/x86/psr.c:1336,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/psr.c:1340,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/psr.c:1340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - socket
    - cos
    - val
    - array_len
    - feat_type
    argTypes:
    - unsigned int
    - unsigned int
    - uint32_t[]
    - unsigned int
    - enum psr_feat_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1344
    functionName: write_psr_msrs
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - get_socket_cpu
    - on_selected_cpus
    - cpu_to_socket
    - get_socket_info
    - cpumask_of
    - do_write_psr_msrs
    linkageType: ''
    returnType: int
    signature: "int write_psr_msrs(unsigned int socket, unsigned int cos,\n                          const
      uint32_t val[], unsigned int array_len,\n                          enum psr_feat_type
      feat_type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_socket_info
      Src: /src/xen/xen/arch/x86/psr.c:1353,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/psr.c:1356,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/psr.c:1357,1
    - Dst: psr_type_to_feat_type
      Src: /src/xen/xen/arch/x86/psr.c:1363,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/psr.c:1364,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/psr.c:1380,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/psr.c:1381,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/psr.c:1385,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1387,1
    - Dst: get_cos_num
      Src: /src/xen/xen/arch/x86/psr.c:1397,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/psr.c:1398,1
    - Dst: gather_val_array
      Src: /src/xen/xen/arch/x86/psr.c:1402,1
    - Dst: insert_val_into_array
      Src: /src/xen/xen/arch/x86/psr.c:1405,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/psr.c:1409,1
    - Dst: find_cos
      Src: /src/xen/xen/arch/x86/psr.c:1416,1
    - Dst: pick_avail_cos
      Src: /src/xen/xen/arch/x86/psr.c:1434,1
    - Dst: write_psr_msrs
      Src: /src/xen/xen/arch/x86/psr.c:1445,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1456,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1457,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/psr.c:1459,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/psr.c:1467,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/psr.c:1469,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/psr.c:1474,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/psr.c:1477,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 4
    argNames:
    - d
    - socket
    - new_val
    - type
    argTypes:
    - struct domain*
    - unsigned int
    - uint64_t
    - enum psr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1479
    functionName: psr_set_val
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 3
    functionsReached:
    - domain_unlock
    - test_and_set_bit
    - spin_lock
    - xfree
    - gather_val_array
    - ARRAY_SIZE
    - psr_type_to_feat_type
    - domain_lock
    - get_socket_info
    - get_cos_num
    - spin_unlock
    - ASSERT
    - write_psr_msrs
    - find_cos
    - IS_ERR
    - pick_avail_cos
    - PTR_ERR
    - xzalloc_array
    - insert_val_into_array
    linkageType: ''
    returnType: int
    signature: "int psr_set_val(struct domain *d, unsigned int socket,\n                uint64_t
      new_val, enum psr_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1488,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/psr.c:1495,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/psr.c:1502,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/psr.c:1503,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/psr.c:1505,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/psr.c:1508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1510
    functionName: psr_free_cos
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ASSERT
    - spin_lock
    - clear_bit
    - xfree
    linkageType: ''
    returnType: void
    signature: void psr_free_cos(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/psr.c:1514,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:1516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1517
    functionName: psr_alloc_cos
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - printk
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void psr_alloc_cos(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1521,1
    - Dst: psr_alloc_cos
      Src: /src/xen/xen/arch/x86/psr.c:1522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1523
    functionName: psr_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 1
    functionsReached:
    - psr_alloc_feat_enabled
    - psr_alloc_cos
    linkageType: ''
    returnType: void
    signature: void psr_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: psr_free_rmid
      Src: /src/xen/xen/arch/x86/psr.c:1527,1
    - Dst: psr_free_cos
      Src: /src/xen/xen/arch/x86/psr.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1529
    functionName: psr_domain_free
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 2
    functionsReached:
    - psr_free_cos
    - psr_free_rmid
    linkageType: ''
    returnType: void
    signature: void psr_domain_free(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:1535,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/psr.c:1539,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/psr.c:1543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1546
    functionName: init_psr
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - printk
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void init_psr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/psr.c:1550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1552
    functionName: psr_free
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void psr_free(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1556,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/psr.c:1561,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/psr.c:1565,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/psr.c:1569,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1573
    functionName: psr_cpu_prepare
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - psr_alloc_feat_enabled
    linkageType: ''
    returnType: int
    signature: int psr_cpu_prepare(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/psr.c:1578,1
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1583,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:1586,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/psr.c:1591,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/psr.c:1593,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/psr.c:1597,1
    - Dst: cat_init_feature
      Src: /src/xen/xen/arch/x86/psr.c:1603,1
    - Dst: cat_init_feature
      Src: /src/xen/xen/arch/x86/psr.c:1609,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/psr.c:1618,1
    - Dst: cat_init_feature
      Src: /src/xen/xen/arch/x86/psr.c:1622,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/psr.c:1630,1
    - Dst: mba_init_feature
      Src: /src/xen/xen/arch/x86/psr.c:1634,1
    - Dst: psr_assoc_init
      Src: /src/xen/xen/arch/x86/psr.c:1643,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1644
    functionName: psr_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - cat_init_feature
    - smp_processor_id
    - psr_alloc_feat_enabled
    - cpuid_count_leaf
    - cpu_to_socket
    - psr_assoc_init
    - spin_lock_init
    - mba_init_feature
    linkageType: ''
    returnType: void
    signature: void psr_cpu_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_socket
      Src: /src/xen/xen/arch/x86/psr.c:1648,1
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1650,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/psr.c:1657,1
    - Dst: free_socket_resources
      Src: /src/xen/xen/arch/x86/psr.c:1658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1646
    functionDepth: 2
    functionLinenumber: 1646
    functionLinenumberEnd: 1659
    functionName: psr_cpu_fini
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - cpumask_empty
    - psr_alloc_feat_enabled
    - free_socket_resources
    - cpu_to_socket
    linkageType: ''
    returnType: void
    signature: void psr_cpu_fini(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: psr_cpu_prepare
      Src: /src/xen/xen/arch/x86/psr.c:1670,1
    - Dst: psr_cpu_init
      Src: /src/xen/xen/arch/x86/psr.c:1673,1
    - Dst: psr_cpu_fini
      Src: /src/xen/xen/arch/x86/psr.c:1677,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/psr.c:1681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1661
    functionDepth: 3
    functionLinenumber: 1661
    functionLinenumberEnd: 1682
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - psr_cpu_fini
    - notifier_from_errno
    - psr_cpu_init
    - psr_cpu_prepare
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: init_psr_cmt
      Src: /src/xen/xen/arch/x86/psr.c:1697,1
    - Dst: init_psr
      Src: /src/xen/xen/arch/x86/psr.c:1700,1
    - Dst: psr_cpu_prepare
      Src: /src/xen/xen/arch/x86/psr.c:1702,1
    - Dst: psr_free
      Src: /src/xen/xen/arch/x86/psr.c:1703,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/psr.c:1706,1
    - Dst: psr_cpu_init
      Src: /src/xen/xen/arch/x86/psr.c:1708,1
    - Dst: psr_cmt_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1709,1
    - Dst: psr_alloc_feat_enabled
      Src: /src/xen/xen/arch/x86/psr.c:1709,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/psr.c:1710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1694
    functionDepth: 3
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    functionName: psr_presmp_init
    functionSourceFile: /src/xen/xen/arch/x86/psr.c
    functionUses: 0
    functionsReached:
    - init_psr_cmt
    - psr_free
    - psr_alloc_feat_enabled
    - register_cpu_notifier
    - psr_cpu_init
    - psr_cpu_prepare
    - setup_clear_cpu_cap
    - init_psr
    - psr_cmt_enabled
    linkageType: ''
    returnType: int
    signature: int psr_presmp_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu-policy.c:66,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu-policy.c:68,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/cpu-policy.c:72,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:77,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/cpu-policy.c:84,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/cpu-policy.c:97,1
    - Dst: callback
      Src: /src/xen/xen/arch/x86/cpu-policy.c:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 117
    functionName: parse_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 8
    functionsReached:
    - callback
    - cmdline_strcmp
    - parse_boolean
    - ARRAY_SIZE
    - strchr
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int parse_cpuid(\n    const char *s, void (*callback)(unsigned int
      feat, bool val))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu-policy.c:122,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu-policy.c:124,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:124,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu-policy.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - feat
    - val
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: _parse_xen_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - cpufeat_mask
    - cpuid_ecx
    - setup_force_cpu_cap
    - setup_clear_cpu_cap
    linkageType: ''
    returnType: void
    signature: void _parse_xen_cpuid(unsigned int feat, bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/xen/arch/x86/cpu-policy.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: parse_xen_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    linkageType: ''
    returnType: int
    signature: int parse_xen_cpuid(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:140,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - feat
    - val
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: _parse_dom0_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - __clear_bit
    linkageType: ''
    returnType: void
    signature: void _parse_dom0_cpuid(unsigned int feat, bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_cpuid
      Src: /src/xen/xen/arch/x86/cpu-policy.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: parse_dom0_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - parse_cpuid
    linkageType: ''
    returnType: int
    signature: int parse_dom0_cpuid(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - l
    - first
    - last
    argTypes:
    - struct cpuid_leaf*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: zero_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void zero_leaves(struct cpuid_leaf *l,\n                        unsigned
      int first, unsigned int last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/cpu-policy.c:163,1
    - Dst: bitmap_for_each
      Src: /src/xen/xen/arch/x86/cpu-policy.c:178,1
    - Dst: x86_cpu_policy_lookup_deep_deps
      Src: /src/xen/xen/arch/x86/cpu-policy.c:181,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu-policy.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fs
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 192
    functionName: sanitise_featureset
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ROUNDUP
    - x86_cpu_policy_lookup_deep_deps
    - bitmap_for_each
    linkageType: ''
    returnType: void
    signature: void sanitise_featureset(uint32_t *fs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:203,1
    - Dst: xstate_uncompressed_size
      Src: /src/xen/xen/arch/x86/cpu-policy.c:225,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:243,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:243,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 254
    functionName: recalculate_xstate
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - memset
    - xstate_uncompressed_size
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void recalculate_xstate(struct cpu_policy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, xstates )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:271,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:304,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:305,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:306,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 336
    functionName: recalculate_misc
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - memset
    - zero_leaves
    linkageType: ''
    returnType: void
    signature: void recalculate_misc(struct cpu_policy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpu_policy_fill_native
      Src: /src/xen/xen/arch/x86/cpu-policy.c:342,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu-policy.c:345,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:353,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 360
    functionName: calculate_raw_cpu_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 1
    functionsReached:
    - cpufeat_mask
    - ASSERT
    - x86_cpu_policy_fill_native
    linkageType: ''
    returnType: void
    signature: void calculate_raw_cpu_policy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpu-policy.c:370,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:370,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpu-policy.c:372,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:372,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/cpu-policy.c:383,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpu-policy.c:385,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:386,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:388,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 398
    functionName: calculate_host_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - max
    - ARRAY_SIZE
    - x86_cpu_featureset_to_policy
    - min_t
    - recalculate_xstate
    linkageType: ''
    returnType: void
    signature: void calculate_host_policy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:408,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:409,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: guest_common_max_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void guest_common_max_leaves(struct cpu_policy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: guest_common_default_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void guest_common_default_leaves(struct cpu_policy *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:444,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:445,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:446,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:455,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:456,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:457,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:468,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:482,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:483,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:494,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:505,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:506,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - fs
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 513
    functionName: guest_common_max_feature_adjustments
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - test_bit
    - __set_bit
    linkageType: ''
    returnType: void
    signature: void guest_common_max_feature_adjustments(uint32_t *fs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_forced_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu-policy.c:532,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:533,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:542,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:545,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:548,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:560,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:574,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:575,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:587,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:596,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:599,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:606,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 1
    argNames:
    - fs
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 607
    functionName: guest_common_default_feature_adjustments
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __clear_bit
    - __set_bit
    - is_forced_cpu_cap
    linkageType: ''
    returnType: void
    signature: void guest_common_default_feature_adjustments(uint32_t *fs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:612,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:619,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:620,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:621,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:622,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fs
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 631
    functionName: guest_common_feature_adjustments
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - test_bit
    - __set_bit
    linkageType: ''
    returnType: void
    signature: void guest_common_feature_adjustments(uint32_t *fs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: recalculate_misc
      Src: /src/xen/xen/arch/x86/cpu-policy.c:640,1
    - Dst: guest_common_max_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:642,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:644,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:646,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:655,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu-policy.c:661,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:663,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:664,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu-policy.c:684,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:685,1
    - Dst: guest_common_max_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:687,1
    - Dst: guest_common_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:688,1
    - Dst: sanitise_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:690,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:691,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 695
    functionName: calculate_pv_max_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - __clear_bit
    - ARRAY_SIZE
    - guest_common_feature_adjustments
    - boot_cpu_has
    - recalculate_misc
    - sanitise_featureset
    - x86_cpu_featureset_to_policy
    - x86_cpu_policy_to_featureset
    - guest_common_max_leaves
    - guest_common_max_feature_adjustments
    - recalculate_xstate
    linkageType: ''
    returnType: void
    signature: void calculate_pv_max_policy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_common_default_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:705,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:707,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:709,1
    - Dst: guest_common_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:712,1
    - Dst: guest_common_default_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:713,1
    - Dst: sanitise_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:715,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:722,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:725,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:727,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:731,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 733
    functionName: calculate_pv_def_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - ARRAY_SIZE
    - sanitise_featureset
    - guest_common_default_feature_adjustments
    - x86_cpu_featureset_to_policy
    - x86_cpu_policy_to_featureset
    - guest_common_default_leaves
    - guest_common_feature_adjustments
    - test_bit
    - recalculate_xstate
    linkageType: ''
    returnType: void
    signature: void calculate_pv_def_policy(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: recalculate_misc
      Src: /src/xen/xen/arch/x86/cpu-policy.c:743,1
    - Dst: guest_common_max_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:745,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:747,1
    - Dst: hvm_hap_supported
      Src: /src/xen/xen/arch/x86/cpu-policy.c:749,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:752,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:759,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:760,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:766,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:775,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:782,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu-policy.c:788,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:790,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:791,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu-policy.c:793,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:799,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:808,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:811,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:814,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:817,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:827,1
    - Dst: guest_common_max_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:845,1
    - Dst: guest_common_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:846,1
    - Dst: sanitise_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:848,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:849,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:850,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 854
    functionName: calculate_hvm_max_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - __clear_bit
    - ARRAY_SIZE
    - hvm_hap_supported
    - guest_common_feature_adjustments
    - boot_cpu_has
    - recalculate_misc
    - sanitise_featureset
    - x86_cpu_featureset_to_policy
    - x86_cpu_policy_to_featureset
    - guest_common_max_leaves
    - guest_common_max_feature_adjustments
    - recalculate_xstate
    linkageType: ''
    returnType: void
    signature: void calculate_hvm_max_policy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: guest_common_default_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:865,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:867,1
    - Dst: hvm_hap_supported
      Src: /src/xen/xen/arch/x86/cpu-policy.c:869,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:872,1
    - Dst: guest_common_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:875,1
    - Dst: guest_common_default_feature_adjustments
      Src: /src/xen/xen/arch/x86/cpu-policy.c:876,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:883,1
    - Dst: sanitise_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:885,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:892,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:895,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:897,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:901,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 903
    functionName: calculate_hvm_def_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - ARRAY_SIZE
    - hvm_hap_supported
    - sanitise_featureset
    - guest_common_default_feature_adjustments
    - x86_cpu_featureset_to_policy
    - x86_cpu_policy_to_featureset
    - guest_common_default_leaves
    - guest_common_feature_adjustments
    - test_bit
    - recalculate_xstate
    linkageType: ''
    returnType: void
    signature: void calculate_hvm_def_policy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calculate_host_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:907,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu-policy.c:909,1
    - Dst: calculate_pv_max_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:911,1
    - Dst: calculate_pv_def_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:912,1
    - Dst: calculate_hvm_max_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:917,1
    - Dst: calculate_hvm_def_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 920
    functionName: init_guest_cpu_policies
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 1
    functionsReached:
    - calculate_pv_max_policy
    - calculate_hvm_def_policy
    - IS_ENABLED
    - calculate_host_policy
    - calculate_hvm_max_policy
    - calculate_pv_def_policy
    linkageType: ''
    returnType: void
    signature: void init_guest_cpu_policies(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:924,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu-policy.c:925,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu-policy.c:926,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:930,1
    - Dst: xmemdup
      Src: /src/xen/xen/arch/x86/cpu-policy.c:934,1
    - Dst: recalculate_cpuid_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 943
    functionName: init_domain_cpu_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 1
    functionsReached:
    - xmemdup
    - recalculate_cpuid_policy
    - IS_ENABLED
    - is_pv_domain
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int init_domain_cpu_policy(struct domain *d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:948,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu-policy.c:949,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu-policy.c:950,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:956,1
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/xen/arch/x86/cpu-policy.c:960,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu-policy.c:963,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu-policy.c:964,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu-policy.c:965,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:971,1
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:972,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:974,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/cpu-policy.c:980,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:982,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/cpu-policy.c:987,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:989,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:990,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:998,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1000,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1002,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1006,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1010,1
    - Dst: sanitise_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1012,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1015,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1016,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1018,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1019,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1021,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1026,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1027,1
    - Dst: domain_max_paddr_bits
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1028,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1029,1
    - Dst: recalculate_xstate
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1034,1
    - Dst: recalculate_misc
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1035,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1037,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1049,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1049,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1055,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 1063
    functionName: recalculate_cpuid_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 2
    functionsReached:
    - nestedhvm_enabled
    - recalculate_misc
    - IS_ENABLED
    - hap_enabled
    - is_hvm_domain
    - x86_cpuid_lookup_vendor
    - is_pv_32bit_domain
    - ARRAY_SIZE
    - sanitise_featureset
    - x86_cpu_featureset_to_policy
    - x86_cpu_policy_to_featureset
    - is_hardware_domain
    - recalculate_xstate
    - cpufeat_mask
    - min
    - min_t
    - max_t
    - ASSERT_UNREACHABLE
    - __clear_bit
    - zero_leaves
    - is_pv_domain
    - domain_max_paddr_bits
    linkageType: ''
    returnType: void
    signature: void recalculate_cpuid_policy(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpu_policy_to_featureset
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1083,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1085,1
    - Dst: x86_cpu_featureset_to_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1091,1
    - Dst: is_control_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1101,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1101,1
    - Dst: recalculate_cpuid_policy
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1105
    functionName: init_dom0_cpuid_policy
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 1
    functionsReached:
    - recalculate_cpuid_policy
    - ARRAY_SIZE
    - x86_cpu_featureset_to_policy
    - is_pv_domain
    - x86_cpu_policy_to_featureset
    - is_control_domain
    linkageType: ''
    returnType: void
    signature: void init_dom0_cpuid_policy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1109,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1109,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1110,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1110,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1111,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1111,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1112,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1112,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1113,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1113,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1116,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1118,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1120,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1122,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu-policy.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1126
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/cpu-policy.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/flushtlb.c:49,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/flushtlb.c:53,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/flushtlb.c:53,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/flushtlb.c:56,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/flushtlb.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 61
    functionName: pre_flush
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 0
    functionsReached:
    - cmpxchg
    - raise_softirq
    - unlikely
    linkageType: ''
    returnType: u32
    signature: u32 pre_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/flushtlb.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: post_flush
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void post_flush(u32 t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/flushtlb.c:86,1
    - Dst: pre_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:89,1
    - Dst: invpcid_flush_all
      Src: /src/xen/xen/arch/x86/flushtlb.c:92,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:93,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:95,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:96,1
    - Dst: write_cr3
      Src: /src/xen/xen/arch/x86/flushtlb.c:99,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/flushtlb.c:99,1
    - Dst: post_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:102,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/flushtlb.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: do_tlb_flush
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - invpcid_flush_all
    - write_cr4
    - post_flush
    - read_cr4
    - pre_flush
    - write_cr3
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void do_tlb_flush(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/flushtlb.c:113,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/flushtlb.c:116,1
    - Dst: pre_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:119,1
    - Dst: hvm_flush_guest_tlbs
      Src: /src/xen/xen/arch/x86/flushtlb.c:120,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:122,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/flushtlb.c:123,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:141,1
    - Dst: write_cr3
      Src: /src/xen/xen/arch/x86/flushtlb.c:150,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:153,1
    - Dst: invpcid_flush_all_nonglobals
      Src: /src/xen/xen/arch/x86/flushtlb.c:170,1
    - Dst: post_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:173,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/flushtlb.c:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - cr3
    - cr4
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 176
    functionName: switch_cr3_cr4
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 1
    functionsReached:
    - write_cr4
    - post_flush
    - read_cr4
    - invpcid_flush_all_nonglobals
    - ASSERT
    - pre_flush
    - write_cr3
    - local_irq_restore
    - local_irq_save
    - hvm_flush_guest_tlbs
    linkageType: ''
    returnType: void
    signature: void switch_cr3_cr4(unsigned long cr3, unsigned long cr4)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/flushtlb.c:197,1
    - Dst: invpcid_flush_one
      Src: /src/xen/xen/arch/x86/flushtlb.c:209,1
    - Dst: invpcid_flush_one
      Src: /src/xen/xen/arch/x86/flushtlb.c:210,1
    - Dst: invpcid_flush_one
      Src: /src/xen/xen/arch/x86/flushtlb.c:213,1
    - Dst: invpcid_flush_one
      Src: /src/xen/xen/arch/x86/flushtlb.c:214,1
    - Dst: invlpg
      Src: /src/xen/xen/arch/x86/flushtlb.c:218,1
    - Dst: do_tlb_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:221,1
    - Dst: hvm_flush_guest_tlbs
      Src: /src/xen/xen/arch/x86/flushtlb.c:225,1
    - Dst: cache_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:241,1
    - Dst: cache_writeback
      Src: /src/xen/xen/arch/x86/flushtlb.c:243,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/flushtlb.c:247,1
    - Dst: wbnoinvd
      Src: /src/xen/xen/arch/x86/flushtlb.c:249,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/flushtlb.c:253,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 2
    argNames:
    - va
    - flags
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 256
    functionName: flush_area_local
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 2
    functionsReached:
    - get_cpu_info
    - do_tlb_flush
    - read_cr4
    - invpcid_flush_one
    - invlpg
    - cache_flush
    - cache_writeback
    - wbnoinvd
    - hvm_flush_guest_tlbs
    - wbinvd
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int flush_area_local(const void *va, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/flushtlb.c:274,1
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/flushtlb.c:284,1
    - Dst: alternative_2
      Src: /src/xen/xen/arch/x86/flushtlb.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 293
    functionName: cache_flush
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 3
    functionsReached:
    - alternative
    - alternative_2
    - alternative_input
    linkageType: ''
    returnType: void
    signature: void cache_flush(const void *addr, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/flushtlb.c:301,1
    - Dst: cache_flush
      Src: /src/xen/xen/arch/x86/flushtlb.c:302,1
    - Dst: clwb
      Src: /src/xen/xen/arch/x86/flushtlb.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 314
    functionName: cache_writeback
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 1
    functionsReached:
    - boot_cpu_has
    - cache_flush
    - clwb
    linkageType: ''
    returnType: void
    signature: void cache_writeback(const void *addr, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/flushtlb.c:318,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/flushtlb.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: guest_flush_tlb_flags
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 0
    functionsReached:
    - paging_mode_shadow
    - is_hvm_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int guest_flush_tlb_flags(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_flush_tlb_flags
      Src: /src/xen/xen/arch/x86/flushtlb.c:326,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/flushtlb.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - mask
    argTypes:
    - struct domain*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: guest_flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/x86/flushtlb.c
    functionUses: 0
    functionsReached:
    - flush_mask
    - guest_flush_tlb_flags
    linkageType: ''
    returnType: void
    signature: void guest_flush_tlb_mask(const struct domain *d, const cpumask_t *mask)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:49,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:55,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/machine_kexec.c:56,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/machine_kexec.c:57,1
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:59,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/machine_kexec.c:62,1
    - Dst: l4e_from_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:62,1
    - Dst: l4e_get_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:65,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:67,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/machine_kexec.c:68,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/machine_kexec.c:69,1
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:71,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/machine_kexec.c:74,1
    - Dst: l3e_from_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:74,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:77,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:79,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/machine_kexec.c:80,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/machine_kexec.c:81,1
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:83,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/machine_kexec.c:86,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:86,1
    - Dst: l2e_get_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:89,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:91,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/machine_kexec.c:92,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/machine_kexec.c:93,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/machine_kexec.c:93,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:98,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:100,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:102,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:104,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - image
    - vaddr
    - maddr
    argTypes:
    - struct kexec_image*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 106
    functionName: machine_kexec_add_page
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached:
    - l1e_write
    - l1e_from_pfn
    - l2e_write
    - l3e_from_page
    - l3_table_offset
    - l3e_get_flags
    - l4e_get_page
    - l1_table_offset
    - l4e_write
    - l3e_write
    - l4_table_offset
    - l4e_from_page
    - __map_domain_page
    - kimage_alloc_control_page
    - l2e_get_flags
    - unmap_domain_page
    - l2e_from_page
    - l4e_get_flags
    - l3e_get_page
    - l2_table_offset
    - l2e_get_page
    linkageType: ''
    returnType: int
    signature: "int machine_kexec_add_page(struct kexec_image *image, unsigned long
      vaddr,\n                           unsigned long maddr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:122,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/machine_kexec.c:123,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:124,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/arch/x86/machine_kexec.c:131,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/machine_kexec.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: machine_kexec_load
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - machine_kexec_add_page
    - __map_domain_page
    - page_to_maddr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int machine_kexec_load(struct kexec_image *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: machine_kexec_unload
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void machine_kexec_unload(struct kexec_image *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/machine_kexec.c:146,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/machine_kexec.c:146,1
    - Dst: smp_send_stop
      Src: /src/xen/xen/arch/x86/machine_kexec.c:147,1
    - Dst: machine_kexec
      Src: /src/xen/xen/arch/x86/machine_kexec.c:148,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/machine_kexec.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: machine_reboot_kexec
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached:
    - BUG
    - smp_processor_id
    - BUG_ON
    - smp_send_stop
    - machine_kexec
    linkageType: ''
    returnType: void
    signature: void machine_reboot_kexec(struct kexec_image *image)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/machine_kexec.c:160,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/machine_kexec.c:174,1
    - Dst: _update_gate_addr_lower
      Src: /src/xen/xen/arch/x86/machine_kexec.c:179,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/machine_kexec.c:183,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/machine_kexec.c:186,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/machine_kexec.c:188,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/machine_kexec.c:189,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/machine_kexec.c:189,1
    - Dst: enable_nmis
      Src: /src/xen/xen/arch/x86/machine_kexec.c:194,1
    - Dst: kexec_reloc
      Src: /src/xen/xen/arch/x86/machine_kexec.c:199,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/machine_kexec.c:199,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/machine_kexec.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: machine_kexec
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 1
    functionsReached:
    - kexec_reloc
    - enable_nmis
    - read_cr4
    - ctxt_switch_levelling
    - local_irq_disable
    - _update_gate_addr_lower
    - wrmsrl
    - per_cpu
    - write_cr4
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: void machine_kexec(struct kexec_image *image)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: machine_kexec_get_xen
      Src: /src/xen/xen/arch/x86/machine_kexec.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: machine_kexec_get
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached:
    - machine_kexec_get_xen
    linkageType: ''
    returnType: int
    signature: int machine_kexec_get(xen_kexec_range_t *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VMCOREINFO_SYMBOL
      Src: /src/xen/xen/arch/x86/machine_kexec.c:213,1
    - Dst: VMCOREINFO_SYMBOL
      Src: /src/xen/xen/arch/x86/machine_kexec.c:214,1
    - Dst: VMCOREINFO_SYMBOL_ALIAS
      Src: /src/xen/xen/arch/x86/machine_kexec.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: arch_crash_save_vmcoreinfo
    functionSourceFile: /src/xen/xen/arch/x86/machine_kexec.c
    functionUses: 0
    functionsReached:
    - VMCOREINFO_SYMBOL
    - VMCOREINFO_SYMBOL_ALIAS
    linkageType: ''
    returnType: void
    signature: void arch_crash_save_vmcoreinfo(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/physdev.c:37,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/physdev.c:37,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/physdev.c:39,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/arch/x86/physdev.c:54,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/physdev.c:59,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/physdev.c:59,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/physdev.c:60,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/physdev.c:68,1
    - Dst: get_free_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:77,1
    - Dst: map_domain_emuirq_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:78,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/physdev.c:85,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:89,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - d
    - type
    - index
    - pirq
    argTypes:
    - struct domain*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 91
    functionName: physdev_hvm_map_pirq
    functionSourceFile: /src/xen/xen/arch/x86/physdev.c
    functionUses: 0
    functionsReached:
    - domain_pirq_to_irq
    - list_for_each_entry
    - ARRAY_SIZE
    - write_unlock
    - domain_get_irq_dpci
    - get_free_pirq
    - BUILD_BUG_ON
    - map_domain_emuirq_pirq
    - ASSERT
    - write_lock
    - dprintk
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: "int physdev_hvm_map_pirq(\n    struct domain *d, int type, int *index,
      int *pirq)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/physdev.c:98,1
    - Dst: has_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:98,1
    - Dst: is_hvm_pv_evtchn_domain
      Src: /src/xen/xen/arch/x86/physdev.c:104,1
    - Dst: physdev_hvm_map_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:107,1
    - Dst: xsm_map_domain_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:110,1
    - Dst: allocate_and_map_gsi_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:118,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/physdev.c:123,1
    - Dst: allocate_and_map_msi_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:124,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:125,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/physdev.c:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - d
    - type
    - index
    - pirq_p
    - msi
    argTypes:
    - struct domain*
    - int
    - int*
    - int*
    - struct msi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 136
    functionName: physdev_map_pirq
    functionSourceFile: /src/xen/xen/arch/x86/physdev.c
    functionUses: 3
    functionsReached:
    - allocate_and_map_gsi_pirq
    - physdev_hvm_map_pirq
    - read_unlock
    - is_hvm_pv_evtchn_domain
    - xsm_map_domain_pirq
    - has_pirq
    - allocate_and_map_msi_pirq
    - dprintk
    - read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int physdev_map_pirq(struct domain *d, int type, int *index, int *pirq_p,\n
      \                    struct msi_info *msi)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/physdev.c:142,1
    - Dst: has_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:142,1
    - Dst: xsm_unmap_domain_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:143,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/physdev.c:147,1
    - Dst: has_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:147,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/physdev.c:149,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/physdev.c:150,1
    - Dst: unmap_domain_pirq_emuirq
      Src: /src/xen/xen/arch/x86/physdev.c:151,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:152,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/physdev.c:157,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/physdev.c:158,1
    - Dst: unmap_domain_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:159,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:160,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: physdev_unmap_pirq
    functionSourceFile: /src/xen/xen/arch/x86/physdev.c
    functionUses: 2
    functionsReached:
    - pcidevs_lock
    - xsm_unmap_domain_pirq
    - write_unlock
    - unmap_domain_pirq_emuirq
    - unmap_domain_pirq
    - pcidevs_unlock
    - domain_pirq_to_emuirq
    - has_pirq
    - write_lock
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int physdev_unmap_pirq(struct domain *d, int pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/physdev.c:170,1
    - Dst: pci_check_extcfg
      Src: /src/xen/xen/arch/x86/physdev.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pdev
    - arg
    argTypes:
    - struct pci_dev*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: physdev_check_pci_extcfg
    functionSourceFile: /src/xen/xen/arch/x86/physdev.c
    functionUses: 0
    functionsReached:
    - pci_check_extcfg
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int physdev_check_pci_extcfg(struct pci_dev *pdev, void *arg)
  - BBCount: 85
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:191,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/physdev.c:196,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/physdev.c:197,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:199,1
    - Dst: evtchn_unmask
      Src: /src/xen/xen/arch/x86/physdev.c:203,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/physdev.c:204,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/physdev.c:204,1
    - Dst: pirq_guest_eoi
      Src: /src/xen/xen/arch/x86/physdev.c:205,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/physdev.c:206,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/physdev.c:207,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/physdev.c:209,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/physdev.c:210,1
    - Dst: send_guest_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:216,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:218,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:229,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/physdev.c:233,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/physdev.c:236,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/physdev.c:238,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/physdev.c:242,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/physdev.c:243,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/physdev.c:243,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/physdev.c:245,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/physdev.c:250,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/physdev.c:254,1
    - Dst: pirq_guest_unmask
      Src: /src/xen/xen/arch/x86/physdev.c:267,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:274,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/physdev.c:281,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/arch/x86/physdev.c:282,1
    - Dst: domain_pirq_to_emuirq
      Src: /src/xen/xen/arch/x86/physdev.c:283,1
    - Dst: pirq_shared
      Src: /src/xen/xen/arch/x86/physdev.c:298,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/physdev.c:300,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:309,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/physdev.c:334,1
    - Dst: physdev_map_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:339,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/physdev.c:341,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/physdev.c:345,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:354,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/physdev.c:357,1
    - Dst: physdev_unmap_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:362,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/physdev.c:364,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:372,1
    - Dst: xsm_apic
      Src: /src/xen/xen/arch/x86/physdev.c:374,1
    - Dst: ioapic_guest_read
      Src: /src/xen/xen/arch/x86/physdev.c:377,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/physdev.c:378,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:386,1
    - Dst: xsm_apic
      Src: /src/xen/xen/arch/x86/physdev.c:388,1
    - Dst: ioapic_guest_write
      Src: /src/xen/xen/arch/x86/physdev.c:391,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:399,1
    - Dst: xsm_apic
      Src: /src/xen/xen/arch/x86/physdev.c:404,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/physdev.c:415,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:425,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/physdev.c:431,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:440,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/physdev.c:443,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/physdev.c:450,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:459,1
    - Dst: pci_add_device
      Src: /src/xen/xen/arch/x86/physdev.c:462,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:470,1
    - Dst: pci_remove_device
      Src: /src/xen/xen/arch/x86/physdev.c:473,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:482,1
    - Dst: pci_add_device
      Src: /src/xen/xen/arch/x86/physdev.c:493,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:503,1
    - Dst: xsm_resource_setup_pci
      Src: /src/xen/xen/arch/x86/physdev.c:506,1
    - Dst: pci_prepare_msix
      Src: /src/xen/xen/arch/x86/physdev.c:509,1
    - Dst: xsm_resource_setup_misc
      Src: /src/xen/xen/arch/x86/physdev.c:517,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:522,1
    - Dst: pci_mmcfg_reserved
      Src: /src/xen/xen/arch/x86/physdev.c:525,1
    - Dst: pci_segment_iterate
      Src: /src/xen/xen/arch/x86/physdev.c:529,1
    - Dst: has_vpci
      Src: /src/xen/xen/arch/x86/physdev.c:534,1
    - Dst: register_vpci_mmcfg_handler
      Src: /src/xen/xen/arch/x86/physdev.c:540,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:553,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/physdev.c:556,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/arch/x86/physdev.c:557,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/physdev.c:558,1
    - Dst: pci_restore_msi_state
      Src: /src/xen/xen/arch/x86/physdev.c:559,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:560,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:569,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/physdev.c:572,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/arch/x86/physdev.c:573,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/physdev.c:573,1
    - Dst: pci_restore_msi_state
      Src: /src/xen/xen/arch/x86/physdev.c:574,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:575,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:583,1
    - Dst: xsm_resource_setup_gsi
      Src: /src/xen/xen/arch/x86/physdev.c:590,1
    - Dst: mp_register_gsi
      Src: /src/xen/xen/arch/x86/physdev.c:594,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:602,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/physdev.c:605,1
    - Dst: get_free_pirq
      Src: /src/xen/xen/arch/x86/physdev.c:607,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/arch/x86/physdev.c:610,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/physdev.c:618,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/physdev.c:623,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/physdev.c:632,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/physdev.c:634,1
    - Dst: dbgp_op
      Src: /src/xen/xen/arch/x86/physdev.c:637,1
    - Dst: pci_physdev_op
      Src: /src/xen/xen/arch/x86/physdev.c:642,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 301
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 178
    functionDepth: 7
    functionLinenumber: 178
    functionLinenumberEnd: 647
    functionName: do_physdev_op
    functionSourceFile: /src/xen/xen/arch/x86/physdev.c
    functionUses: 5
    functionsReached:
    - domain_pirq_to_irq
    - put_page_and_type
    - copy_from_guest
    - pirq_shared
    - pirq_info
    - xsm_resource_setup_pci
    - pci_add_device
    - mp_register_gsi
    - cmpxchg
    - physdev_map_pirq
    - is_hvm_domain
    - dbgp_op
    - physdev_unmap_pirq
    - page_to_mfn
    - get_page_type
    - MASK_INSR
    - pirq_guest_eoi
    - pci_physdev_op
    - pci_prepare_msix
    - PCI_SBDF
    - register_vpci_mmcfg_handler
    - evtchn_unmask
    - domain_pirq_to_emuirq
    - pirq_guest_unmask
    - xsm_resource_setup_gsi
    - rcu_unlock_domain
    - xsm_apic
    - get_page_from_gfn
    - read_lock
    - is_hardware_domain
    - xsm_resource_setup_misc
    - pci_mmcfg_reserved
    - pcidevs_lock
    - has_vpci
    - read_unlock
    - write_unlock
    - mfn_x
    - guest_from_compat_handle
    - __map_domain_page_global
    - ioapic_guest_read
    - write_lock
    - pci_restore_msi_state
    - ioapic_guest_write
    - rcu_lock_domain_by_any_id
    - pci_segment_iterate
    - get_free_pirq
    - pci_remove_device
    - pcidevs_unlock
    - is_pv_domain
    - __copy_to_guest
    - pci_get_pdev
    - hvm_domain_irq
    - guest_handle_okay
    - put_page
    - pirq_get_info
    - send_guest_pirq
    linkageType: ''
    returnType: ret_t
    signature: ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: output_length
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __init unsigned long
    signature: __init unsigned long output_length(void *image, unsigned long image_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: setup_header
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed setup_header
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: VERSION
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION(h,l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/bzimage.c:60,1
    - Dst: VERSION
      Src: /src/xen/xen/arch/x86/bzimage.c:63,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/bzimage.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - hdr
    - len
    argTypes:
    - struct setup_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: bzimage_check
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 0
    functionsReached:
    - printk
    - VERSION
    - memcmp
    linkageType: ''
    returnType: __init
    signature: __init bzimage_check(struct setup_header *hdr, unsigned long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bzimage_check
      Src: /src/xen/xen/arch/x86/bzimage.c:80,1
    - Dst: elf_is_elfbinary
      Src: /src/xen/xen/arch/x86/bzimage.c:90,1
    - Dst: output_length
      Src: /src/xen/xen/arch/x86/bzimage.c:94,1
    - Dst: gzip_check
      Src: /src/xen/xen/arch/x86/bzimage.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - image_start
    - image_length
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 104
    functionName: bzimage_headroom
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 1
    functionsReached:
    - gzip_check
    - elf_is_elfbinary
    - output_length
    - bzimage_check
    linkageType: ''
    returnType: unsigned long __init
    signature: "unsigned long __init bzimage_headroom(void *image_start,\n                                      unsigned
      long image_length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bzimage_check
      Src: /src/xen/xen/arch/x86/bzimage.c:110,1
    - Dst: elf_is_elfbinary
      Src: /src/xen/xen/arch/x86/bzimage.c:122,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/bzimage.c:125,1
    - Dst: output_length
      Src: /src/xen/xen/arch/x86/bzimage.c:127,1
    - Dst: perform_gunzip
      Src: /src/xen/xen/arch/x86/bzimage.c:129,1
    - Dst: decompress
      Src: /src/xen/xen/arch/x86/bzimage.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - image_base
    - image_start
    - image_len
    argTypes:
    - void*
    - void**
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 139
    functionName: bzimage_parse
    functionSourceFile: /src/xen/xen/arch/x86/bzimage.c
    functionUses: 0
    functionsReached:
    - bzimage_check
    - decompress
    - BUG_ON
    - perform_gunzip
    - output_length
    - elf_is_elfbinary
    linkageType: ''
    returnType: int
    signature: "int bzimage_parse(void *image_base, void **image_start,\n                         unsigned
      long *image_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: vesa_ctrl_info
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed vesa_ctrl_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tag
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: get_mb2_data
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_mb2_data(tag, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tag
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: get_mb2_string
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_mb2_string(tag, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/boot/reloc.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - ctx
    argTypes:
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: alloc_mem
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t alloc_mem(uint32_t bytes, memctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - bytes
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: zero_mem
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void zero_mem(uint32_t s, uint32_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - bytes
    - ctx
    argTypes:
    - uint32_t
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: copy_mem
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached:
    - alloc_mem
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t copy_mem(uint32_t src, uint32_t bytes, memctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - src
    - ctx
    argTypes:
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: copy_string
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 5
    functionsReached:
    - copy_mem
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t copy_string(uint32_t src, memctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:114,1
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:114,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:117,1
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:125,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:128,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - in
    - ctx
    argTypes:
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: pvh_info_reloc
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached:
    - copy_string
    - copy_mem
    - _p
    linkageType: ''
    returnType: struct hvm_start_info
    signature: struct hvm_start_info *pvh_info_reloc(uint32_t in, memctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:145,1
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:145,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:148,1
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:154,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:157,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:162,1
    - Dst: copy_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:167,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - mbi_in
    - ctx
    argTypes:
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 180
    functionName: mbi_reloc
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached:
    - copy_string
    - copy_mem
    - _p
    linkageType: ''
    returnType: multiboot_info_t
    signature: multiboot_info_t *mbi_reloc(uint32_t mbi_in, memctx *ctx)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:184,1
    - Dst: alloc_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:196,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:197,1
    - Dst: zero_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:198,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/boot/reloc.c:201,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:204,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:205,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/boot/reloc.c:205,1
    - Dst: alloc_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:220,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:222,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/boot/reloc.c:226,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:229,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:230,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/boot/reloc.c:230,1
    - Dst: get_mb2_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:236,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:237,1
    - Dst: get_mb2_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:242,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:243,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:248,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:249,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:253,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:257,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:259,1
    - Dst: alloc_mem
      Src: /src/xen/xen/arch/x86/boot/reloc.c:262,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:264,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:265,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/boot/reloc.c:278,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:278,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:286,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:287,1
    - Dst: get_mb2_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:288,1
    - Dst: copy_string
      Src: /src/xen/xen/arch/x86/boot/reloc.c:289,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:301,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:302,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:317,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:318,1
    - Dst: get_mb2_data
      Src: /src/xen/xen/arch/x86/boot/reloc.c:323,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 2
    argNames:
    - mbi_in
    - ctx
    argTypes:
    - uint32_t
    - memctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 347
    functionName: mbi2_reloc
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - alloc_mem
    - _p
    - zero_mem
    - copy_string
    - get_mb2_data
    - get_mb2_string
    linkageType: ''
    returnType: multiboot_info_t
    signature: multiboot_info_t *mbi2_reloc(uint32_t mbi_in, memctx *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mbi_reloc
      Src: /src/xen/xen/arch/x86/boot/reloc.c:357,1
    - Dst: mbi2_reloc
      Src: /src/xen/xen/arch/x86/boot/reloc.c:360,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/boot/reloc.c:363,1
    - Dst: pvh_info_reloc
      Src: /src/xen/xen/arch/x86/boot/reloc.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - magic
    - in
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 371
    functionName: reloc
    functionSourceFile: /src/xen/xen/arch/x86/boot/reloc.c
    functionUses: 2
    functionsReached:
    - pvh_info_reloc
    - mbi_reloc
    - mbi2_reloc
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void *reloc(uint32_t magic, uint32_t in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: swap16
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap16(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: swap32
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap32(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: swap64
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap64(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:129,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:130,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:131,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:132,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:133,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:134,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:135,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:136,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:137,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:138,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:139,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:140,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - eh
    argTypes:
    - Elf32_Ehdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: endianadjust_ehdr32
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - swap16
    - swap32
    linkageType: ''
    returnType: void
    signature: void endianadjust_ehdr32(Elf32_Ehdr *eh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:148,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:149,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:150,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:151,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:152,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:153,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:154,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:155,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:156,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:157,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:158,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:159,1
    - Dst: swap16
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - eh
    argTypes:
    - Elf64_Ehdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: endianadjust_ehdr64
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - swap16
    - swap64
    - swap32
    linkageType: ''
    returnType: void
    signature: void endianadjust_ehdr64(Elf64_Ehdr *eh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:167,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:168,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:169,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:170,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:171,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:172,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:173,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ph
    argTypes:
    - Elf32_Phdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: endianadjust_phdr32
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - swap32
    linkageType: ''
    returnType: void
    signature: void endianadjust_phdr32(Elf32_Phdr *ph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:181,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:182,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:183,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:184,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:185,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:186,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:187,1
    - Dst: swap64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ph
    argTypes:
    - Elf64_Phdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: endianadjust_phdr64
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - swap64
    - swap32
    linkageType: ''
    returnType: void
    signature: void endianadjust_phdr64(Elf64_Phdr *ph)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:195,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:196,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:197,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:198,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:199,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:200,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:201,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:202,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:203,1
    - Dst: swap32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - sh
    argTypes:
    - Elf32_Shdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: endianadjust_shdr32
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - swap32
    linkageType: ''
    returnType: void
    signature: void endianadjust_shdr32(Elf32_Shdr *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:214,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:218,1
    - Dst: strerror
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:219,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - data
    - len
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: do_write
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - exit
    - strerror
    - fprintf
    - write
    linkageType: ''
    returnType: void
    signature: void do_write(int fd, void *data, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:235,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:239,1
    - Dst: strerror
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:240,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - data
    - len
    argTypes:
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: do_read
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 0
    functionsReached:
    - exit
    - read
    - fprintf
    - strerror
    linkageType: ''
    returnType: void
    signature: void do_read(int fd, void *data, int len)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:266,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:271,1
    - Dst: strtoul
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:280,1
    - Dst: open
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:282,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:285,1
    - Dst: strerror
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:286,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:290,1
    - Dst: IS_ELF
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:291,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:294,1
    - Dst: endianadjust_ehdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:300,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:303,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:306,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:307,1
    - Dst: endianadjust_ehdr64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:308,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:312,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:320,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:323,1
    - Dst: endianadjust_phdr64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:324,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:331,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:336,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:337,1
    - Dst: endianadjust_phdr64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:338,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:340,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:356,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:357,1
    - Dst: endianadjust_phdr64
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:358,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:360,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:368,1
    - Dst: open
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:421,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:424,1
    - Dst: strerror
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:425,1
    - Dst: endianadjust_ehdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:429,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:430,1
    - Dst: endianadjust_phdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:432,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:433,1
    - Dst: endianadjust_phdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:437,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:438,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:443,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:446,1
    - Dst: do_read
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:452,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:453,1
    - Dst: endianadjust_shdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:457,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:458,1
    - Dst: endianadjust_shdr32
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:462,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:464,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:466,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:468,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:469,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:473,1
    - Dst: do_write
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:474,1
    - Dst: close
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:476,1
    - Dst: close
      Src: /src/xen/xen/arch/x86/boot/mkelf32.c:477,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 137
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 480
    functionName: main
    functionSourceFile: /src/xen/xen/arch/x86/boot/mkelf32.c
    functionUses: 240
    functionsReached:
    - IS_ELF
    - open
    - endianadjust_phdr32
    - lseek
    - do_read
    - endianadjust_phdr64
    - do_write
    - endianadjust_ehdr32
    - endianadjust_shdr32
    - close
    - strerror
    - fprintf
    - endianadjust_ehdr64
    - strcmp
    - strtoul
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: tolower
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tolower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: strlen
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 226
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strlen(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - cs
    - ct
    - count
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: strncmp
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int strncmp(const char *cs, const char *ct, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: strchr
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strchr(const char *s, int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - s
    - accept
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: strspn
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strspn(const char *s, const char *accept)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - reject
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: strcspn
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strcspn(const char *s, const char *reject)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:133,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:137,1
    - Dst: tolower
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:146,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 3
    argNames:
    - s
    - stop
    - next
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 169
    functionName: __maybe_unused::strtoui
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strchr
    - tolower
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __maybe_unused strtoui(\n    const char *s, const char
      *stop, const char **next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:173,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:173,1
    - Dst: strcspn
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:173,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cs
    - ct
    - _delim_chars
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: strmaxcmp
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strncmp
    - max
    - strlen
    linkageType: ''
    returnType: int
    signature: int strmaxcmp(const char *cs, const char *ct, const char *_delim_chars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:178,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cs
    - ct
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: __maybe_unused::strsubcmp
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int __maybe_unused strsubcmp(const char *cs, const char *ct)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:185,1
    - Dst: strspn
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:189,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:194,1
    - Dst: strcspn
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:197,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:199,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - cmdline
    - opt
    - arg
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 204
    functionName: find_opt
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strmaxcmp
    - max
    - strcspn
    - strspn
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: char *find_opt(const char *cmdline, const char *opt, bool arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:208,1
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: skip_realmode
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - find_opt
    linkageType: ''
    returnType: bool
    signature: bool skip_realmode(const char *cmdline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:215,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:220,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: edd_parse
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strmaxcmp
    - find_opt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t edd_parse(const char *cmdline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:230,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:235,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: edid_parse
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strmaxcmp
    - find_opt
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t edid_parse(const char *cmdline)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - rows
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 270
    functionName: rows2vmode
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t rows2vmode(unsigned int rows)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:276,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:286,1
    - Dst: strsubcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:288,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:290,1
    - Dst: rows2vmode
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:291,1
    - Dst: strtoui
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:291,1
    - Dst: strsubcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:293,1
    - Dst: strtoui
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:295,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:295,1
    - Dst: strtoui
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:306,1
    - Dst: strtoui
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:311,1
    - Dst: strsubcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:321,1
    - Dst: strtoui
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:323,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:323,1
    - Dst: strmaxcmp
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:330,1
    - Dst: find_opt
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:333,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - cmdline
    - ebo
    argTypes:
    - char*
    - early_boot_opts_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 334
    functionName: vga_parse
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - strmaxcmp
    - find_opt
    - strsubcmp
    - strtoui
    - strlen
    - rows2vmode
    linkageType: ''
    returnType: void
    signature: void vga_parse(const char *cmdline, early_boot_opts_t *ebo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: skip_realmode
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:343,1
    - Dst: edd_parse
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:344,1
    - Dst: edid_parse
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:345,1
    - Dst: vga_parse
      Src: /src/xen/xen/arch/x86/boot/cmdline.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cmdline
    - ebo
    argTypes:
    - char*
    - early_boot_opts_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 350
    functionName: cmdline_parse_early
    functionSourceFile: /src/xen/xen/arch/x86/boot/cmdline.c
    functionUses: 0
    functionsReached:
    - edid_parse
    - vga_parse
    - edd_parse
    - skip_realmode
    linkageType: ''
    returnType: void
    signature: void cmdline_parse_early(const char *cmdline, early_boot_opts_t *ebo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unreachable
      Src: /src/xen/xen/arch/x86/efi/stub.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ImageHandle
    - SystemTable
    - cmdline
    argTypes:
    - EFI_HANDLE
    - EFI_SYSTEM_TABLE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 40
    functionName: efi_multiboot2
    functionSourceFile: /src/xen/xen/arch/x86/efi/stub.c
    functionUses: 0
    functionsReached:
    - unreachable
    linkageType: ''
    returnType: void
    signature: "void efi_multiboot2(EFI_HANDLE ImageHandle,\n                                    EFI_SYSTEM_TABLE
      *SystemTable,\n                                    const char *cmdline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: efi_init_memory
    functionSourceFile: /src/xen/xen/arch/x86/efi/stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_init_memory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: efi_boot_mem_unused
    functionSourceFile: /src/xen/xen/arch/x86/efi/stub.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - l4idx
    - l4e
    argTypes:
    - unsigned int
    - l4_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: efi_update_l4_pgtable
    functionSourceFile: /src/xen/xen/arch/x86/efi/stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrintErrMesg
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - n
    - src
    argTypes:
    - u8*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: edd_put_string
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PrintErrMesg
    linkageType: ''
    returnType: void
    signature: void edd_put_string(u8 *dst, size_t n, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: edd_put_string
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: edd_put_string(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: in_page_tables
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in_page_tables(v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: in_page_tables
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:92,1
    - Dst: in_page_tables
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:100,1
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:105,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - delta
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 110
    functionName: efi_arch_relocate_image
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - blexit
    - in_page_tables
    linkageType: ''
    returnType: void
    signature: void efi_arch_relocate_image(unsigned long delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:116,1
    - Dst: reloc_trampoline64
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - phys
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: relocate_trampoline
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - reloc_trampoline64
    - efi_enabled
    linkageType: ''
    returnType: void
    signature: void relocate_trampoline(unsigned long phys)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:128,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:130,1
    - Dst: ebmalloc
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:132,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:138,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - s
    argTypes:
    - u32*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: place_string
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 6
    functionsReached:
    - memcpy
    - strlen
    - ebmalloc
    linkageType: ''
    returnType: void
    signature: void place_string(u32 *addr, const char *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:208,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 5
    argNames:
    - SystemTable
    - map
    - map_size
    - desc_size
    - desc_ver
    argTypes:
    - EFI_SYSTEM_TABLE*
    - void*
    - UINTN
    - UINTN
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 220
    functionName: efi_arch_process_memory_map
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,\n
      \                                              void *map,\n                                               UINTN
      map_size,\n                                               UINTN desc_size,\n
      \                                              UINT32 desc_ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebmalloc
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map_size
    argTypes:
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: efi_arch_allocate_mmap_buffer
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - ebmalloc
    linkageType: ''
    returnType: void
    signature: void *__init efi_arch_allocate_mmap_buffer(UINTN map_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:232,1
    - Dst: relocate_trampoline
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: efi_arch_pre_exit_boot
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - relocate_trampoline
    - blexit
    linkageType: ''
    returnType: void
    signature: void efi_arch_pre_exit_boot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: efi_arch_relocate_image
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:241,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:242,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:242,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:252,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:254,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:255,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:256,1
    - Dst: unreachable
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 284
    functionName: efi_arch_post_exit_boot
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - unreachable
    - write_cr0
    - rdmsrl
    - wrmsrl
    - _p
    - efi_arch_relocate_image
    - memcpy
    linkageType: ''
    returnType: void
    signature: void efi_arch_post_exit_boot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - dir_handle
    - section
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: efi_arch_cfg_file_early
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,\n                                           EFI_FILE_HANDLE
      dir_handle,\n                                           const char *section)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:298,1
    - Dst: read_section
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:299,1
    - Dst: get_value
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:302,1
    - Dst: get_value
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:304,1
    - Dst: microcode_set_module
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:307,1
    - Dst: split_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:308,1
    - Dst: read_file
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:309,1
    - Dst: s2w
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:309,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - image
    - dir_handle
    - section
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 312
    functionName: efi_arch_cfg_file_late
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - read_file
    - s2w
    - read_section
    - get_value
    - IS_ENABLED
    - microcode_set_module
    - split_string
    - FreePool
    linkageType: ''
    returnType: void
    signature: "void efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,\n                                          EFI_FILE_HANDLE
      dir_handle,\n                                          const char *section)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: w2s
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:323,1
    - Dst: place_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:324,1
    - Dst: place_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cmdline_options
    - cfgfile_options
    argTypes:
    - CHAR16*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 337
    functionName: efi_arch_handle_cmdline
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - w2s
    - place_string
    linkageType: ''
    returnType: void
    signature: "void efi_arch_handle_cmdline(CHAR16 *cmdline_options,\n                                           const
      char *cfgfile_options)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:349,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:350,1
    - Dst: LocateHandle
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:352,1
    - Dst: AllocatePool
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:354,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:355,1
    - Dst: LocateHandle
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:356,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:358,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:368,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:369,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:383,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:385,1
    - Dst: IsDevicePathEnd
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:387,1
    - Dst: NextDevicePathNode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:388,1
    - Dst: DevicePathType
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:390,1
    - Dst: DevicePathSubType
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:397,1
    - Dst: EISA_PNP_ID
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:400,1
    - Dst: EISA_PNP_ID
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:401,1
    - Dst: DevicePathSubType
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:413,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:417,1
    - Dst: DevicePathSubType
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:425,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:428,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:435,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:440,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:445,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:450,1
    - Dst: edd_put_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:453,1
    - Dst: DevicePathSubType
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:469,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:477,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:486,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 489
    functionName: efi_arch_edd
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - EFI_ERROR
    - NextDevicePathNode
    - AllocatePool
    - BUILD_BUG_ON
    - EISA_PNP_ID
    - edd_put_string
    - LocateHandle
    - DevicePathType
    - IsDevicePathEnd
    - DevicePathSubType
    - memcpy
    - FreePool
    - HandleProtocol
    linkageType: ''
    returnType: void
    signature: void efi_arch_edd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cols
    - rows
    argTypes:
    - UINTN
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: efi_arch_console_init
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_console_init(UINTN cols, UINTN rows)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PrintErr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:511,1
    - Dst: set_color
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:540,1
    - Dst: set_color
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:543,1
    - Dst: set_color
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:546,1
    - Dst: set_color
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:550,1
    - Dst: PrintErr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 3
    argNames:
    - gop
    - info_size
    - mode_info
    argTypes:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*
    - UINTN
    - EFI_GRAPHICS_OUTPUT_MODE_INFORMATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 577
    functionName: efi_arch_video_init
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PrintErr
    - set_color
    linkageType: ''
    returnType: void
    signature: "void efi_arch_video_init(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,\n                                       UINTN
      info_size,\n                                       EFI_GRAPHICS_OUTPUT_MODE_INFORMATION
      *mode_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:588,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: copy_edid
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - memcpy
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool copy_edid(const void *buf, unsigned int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OpenProtocol
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:607,1
    - Dst: copy_edid
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:611,1
    - Dst: OpenProtocol
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:622,1
    - Dst: copy_edid
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - gop_handle
    argTypes:
    - EFI_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 628
    functionName: efi_arch_edid
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - OpenProtocol
    - copy_edid
    linkageType: ''
    returnType: void
    signature: void efi_arch_edid(EFI_HANDLE gop_handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:638,1
    - Dst: AllocatePages
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:643,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:644,1
    - Dst: relocate_trampoline
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:646,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:650,1
    - Dst: efi_enabled
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:653,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:664,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:665,1
    - Dst: l2e_from_paddr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:667,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:671,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:672,1
    - Dst: l3e_from_paddr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:676,1
    - Dst: l2_4G_offset
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:690,1
    - Dst: l2_4G_offset
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:691,1
    - Dst: l2e_from_paddr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:693,1
    - Dst: l2e_add_flags
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:699,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 704
    functionName: efi_arch_memory_setup
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - l2e_add_flags
    - PrintStr
    - PFN_UP
    - l3e_from_paddr
    - efi_enabled
    - AllocatePages
    - l2_table_offset
    - BUILD_BUG_ON
    - relocate_trampoline
    - l2_4G_offset
    - l2e_from_paddr
    linkageType: ''
    returnType: void
    signature: void efi_arch_memory_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 689
    functionName: l2_4G_offset
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2_4G_offset(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AllocatePool
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:717,1
    - Dst: wstrlen
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:717,1
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:719,1
    - Dst: wstrcpy
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:722,1
    - Dst: w2s
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:723,1
    - Dst: place_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:732,1
    - Dst: place_string
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:733,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - file
    - name
    - options
    argTypes:
    - struct file*
    - CHAR16*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 738
    functionName: efi_arch_handle_module
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - w2s
    - wstrcpy
    - place_string
    - blexit
    - AllocatePool
    - FreePool
    - wstrlen
    linkageType: ''
    returnType: void
    signature: "void efi_arch_handle_module(const struct file *file,\n                                          const
      CHAR16 *name,\n                                          const char *options)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:742,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:745,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:747,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:751,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:758,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:759,1
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:760,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 765
    functionName: efi_arch_cpu
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - blexit
    - IS_ENABLED
    - rdtsc
    - cpuid_eax
    - cpuid_edx
    - cpuid_ecx
    linkageType: ''
    returnType: void
    signature: void efi_arch_cpu(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FreePages
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:770,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: efi_arch_blexit
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PFN_UP
    - FreePages
    linkageType: ''
    returnType: void
    signature: void efi_arch_blexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:775,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 778
    functionName: efi_arch_halt
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - halt
    - local_irq_disable
    linkageType: ''
    returnType: void
    signature: void efi_arch_halt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:784,1
    - Dst: blexit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - loaded_image
    argTypes:
    - EFI_LOADED_IMAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: efi_arch_load_addr_check
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - blexit
    linkageType: ''
    returnType: void
    signature: void efi_arch_load_addr_check(const EFI_LOADED_IMAGE *loaded_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - SystemTable
    argTypes:
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 793
    functionName: efi_arch_use_config_file
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool efi_arch_use_config_file(EFI_SYSTEM_TABLE *SystemTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - vaddr
    - size
    argTypes:
    - void*
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 795
    functionName: efi_arch_flush_dcache_area
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_flush_dcache_area(const void *vaddr, UINTN size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:805,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:809,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - cmd
    - opt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 817
    functionName: get_option
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 1
    functionsReached:
    - strstr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *__init get_option(const char *cmd, const char *opt)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:827,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:828,1
    - Dst: efi_init
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:830,1
    - Dst: QueryMode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:832,1
    - Dst: efi_console_set_mode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:838,1
    - Dst: QueryMode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:840,1
    - Dst: efi_arch_console_init
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:842,1
    - Dst: efi_get_gop
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:844,1
    - Dst: get_option
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:852,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:856,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:858,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:861,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:866,1
    - Dst: VALID_TERMINATOR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:870,1
    - Dst: PrintErr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:873,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:878,1
    - Dst: VALID_TERMINATOR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:878,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:880,1
    - Dst: VALID_TERMINATOR
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:880,1
    - Dst: PrintErr
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:889,1
    - Dst: efi_find_gop_mode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:895,1
    - Dst: efi_arch_edid
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:897,1
    - Dst: efi_arch_edd
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:900,1
    - Dst: efi_arch_cpu
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:901,1
    - Dst: efi_tables
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:903,1
    - Dst: setup_efi_pci
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:904,1
    - Dst: efi_variables
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:905,1
    - Dst: efi_arch_memory_setup
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:906,1
    - Dst: efi_set_gop_mode
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:909,1
    - Dst: efi_relocate_esrt
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:911,1
    - Dst: efi_exit_boot
      Src: /src/xen/xen/arch/x86/efi/efi-boot.h:913,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - ImageHandle
    - SystemTable
    - cmdline
    argTypes:
    - EFI_HANDLE
    - EFI_SYSTEM_TABLE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 914
    functionName: efi_multiboot2
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - efi_init
    - efi_arch_edd
    - efi_variables
    - efi_set_gop_mode
    - simple_strtoul
    - __set_bit
    - get_option
    - efi_arch_edid
    - QueryMode
    - efi_arch_memory_setup
    - VALID_TERMINATOR
    - efi_console_set_mode
    - efi_exit_boot
    - efi_relocate_esrt
    - efi_arch_console_init
    - efi_find_gop_mode
    - efi_get_gop
    - PrintErr
    - efi_arch_cpu
    - setup_efi_pci
    - strncmp
    - efi_tables
    linkageType: ''
    returnType: void
    signature: "void efi_multiboot2(EFI_HANDLE ImageHandle,\n                           EFI_SYSTEM_TABLE
      *SystemTable,\n                           const char *cmdline)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 856
    functionName: VALID_TERMINATOR
    functionSourceFile: /src/xen/xen/arch/x86/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_TERMINATOR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:22,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmd
    - rc
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: usage
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 35
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *cmd, int rc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:34,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:43,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:45,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:46,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:53,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:54,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:57,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:58,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:59,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:62,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:63,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:78,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:83,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:84,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:94,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:95,1
    - Dst: malloc
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:98,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:101,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:102,1
    - Dst: lseek
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:105,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:107,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:110,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:111,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 6
    argNames:
    - name
    - handle
    - sections
    - image_base
    - image_size
    - width
    argTypes:
    - char*
    - int*
    - struct section_header**
    - uint_fast64_t*
    - uint_fast32_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 117
    functionName: load
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 8
    functionsReached:
    - open
    - read
    - lseek
    - malloc
    - fprintf
    - exit
    - perror
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int load(const char *name, int *handle,\n                         struct
      section_header **sections,\n                         uint_fast64_t *image_base,\n
      \                        uint_fast32_t *image_size,\n                         unsigned
      int *width)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:129,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:132,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:137,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:141,1
    - Dst: sysconf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:145,1
    - Dst: mmap
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:148,1
    - Dst: perror
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:152,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - sec
    - in
    - name
    - image_size
    argTypes:
    - struct section_header*
    - int
    - char*
    - uint_fast32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 157
    functionName: map_section
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 0
    functionsReached:
    - sysconf
    - mmap
    - fprintf
    - exit
    - perror
    linkageType: ''
    returnType: void
    signature: "void *map_section(const struct section_header *sec, int in,\n                               const
      char *name, uint_fast32_t image_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - sec
    argTypes:
    - void*
    - struct section_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: unmap_section
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void unmap_section(const void *ptr, const struct section_header *sec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:179,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:204,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:207,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:210,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:211,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:215,1
    - Dst: printf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:229,1
    - Dst: printf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:232,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:241,1
    - Dst: exit
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:244,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:248,1
    - Dst: printf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:252,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 7
    argNames:
    - ptr1
    - ptr2
    - sec
    - diff
    - width
    - base
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct section_header*
    - int_fast64_t
    - unsigned int
    - uint_fast64_t
    - uint_fast64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 257
    functionName: diff_sections
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - memcpy
    - printf
    linkageType: ''
    returnType: void
    signature: "void diff_sections(const unsigned char *ptr1, const unsigned char
      *ptr2,\n                          const struct section_header *sec,\n                          int_fast64_t
      diff, unsigned int width,\n                          uint_fast64_t base, uint_fast64_t
      end)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:268,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:269,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:270,1
    - Dst: usage
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:271,1
    - Dst: usage
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:274,1
    - Dst: load
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:276,1
    - Dst: load
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:277,1
    - Dst: fputs
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:279,1
    - Dst: fputs
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:284,1
    - Dst: fputs
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:290,1
    - Dst: fputs
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:295,1
    - Dst: puts
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:299,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:306,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:312,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:324,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:325,1
    - Dst: fprintf
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:330,1
    - Dst: map_section
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:339,1
    - Dst: map_section
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:340,1
    - Dst: diff_sections
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:342,1
    - Dst: unmap_section
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:345,1
    - Dst: unmap_section
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:346,1
    - Dst: diff_sections
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:349,1
    - Dst: close
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:351,1
    - Dst: close
      Src: /src/xen/xen/arch/x86/efi/mkreloc.c:352,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 355
    functionName: main
    functionSourceFile: /src/xen/xen/arch/x86/efi/mkreloc.c
    functionUses: 240
    functionsReached:
    - unmap_section
    - fputs
    - memcmp
    - diff_sections
    - load
    - close
    - fprintf
    - puts
    - strcmp
    - usage
    - map_section
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/efi/runtime.h:14,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/efi/runtime.h:16,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/efi/runtime.h:18,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/efi/runtime.h:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - l4idx
    - l4e
    argTypes:
    - unsigned int
    - l4_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: efi_update_l4_pgtable
    functionSourceFile: /src/xen/xen/arch/x86/efi/runtime.h
    functionUses: 1
    functionsReached:
    - l4e_write
    - unmap_domain_page
    - map_domain_page
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t l4e)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:23,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:23,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:29,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:29,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:39,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:43,1
    - Dst: efi_multiboot2
      Src: /src/xen/xen/arch/x86/efi/mbi2.c:63,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - magic
    - mbi
    argTypes:
    - uint32_t
    - multiboot2_fixed_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 66
    functionName: efi_multiboot2_prelude
    functionSourceFile: /src/xen/xen/arch/x86/efi/mbi2.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - efi_multiboot2
    - _p
    linkageType: ''
    returnType: char
    signature: 'char * asmlinkage __init

      efi_multiboot2_prelude(uint32_t magic, const multiboot2_fixed_t *mbi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 4
    functionName: test
    functionSourceFile: /src/xen/xen/arch/x86/efi/check.c
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 7
    functionName: __x86_return_thunk
    functionSourceFile: /src/xen/xen/arch/x86/efi/check.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __x86_return_thunk(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/acpi/power.c:50,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/acpi/power.c:52,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/acpi/power.c:54,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/acpi/power.c:56,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/acpi/power.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: parse_acpi_sleep
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - strchr
    - cmdline_strcmp
    - bootsym
    linkageType: ''
    returnType: int
    signature: int parse_acpi_sleep(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: console_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:90,1
    - Dst: time_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:93,1
    - Dst: i8259A_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:96,1
    - Dst: ioapic_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:100,1
    - Dst: iommu_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:102,1
    - Dst: lapic_suspend
      Src: /src/xen/xen/arch/x86/acpi/power.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: device_power_down
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - iommu_suspend
    - lapic_suspend
    - i8259A_suspend
    - console_suspend
    - ioapic_suspend
    - time_suspend
    linkageType: ''
    returnType: int
    signature: int device_power_down(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lapic_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:117,1
    - Dst: iommu_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:120,1
    - Dst: ioapic_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:123,1
    - Dst: i8259A_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:126,1
    - Dst: time_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:129,1
    - Dst: console_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:132,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/acpi/power.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - saved
    argTypes:
    - enum dev_power_saved
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 111
    functionDepth: 9
    functionLinenumber: 111
    functionLinenumberEnd: 140
    functionName: device_power_up
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - iommu_resume
    - BUG
    - i8259A_resume
    - lapic_resume
    - time_resume
    - console_resume
    - ioapic_resume
    linkageType: ''
    returnType: void
    signature: void device_power_up(enum dev_power_saved saved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/acpi/power.c:151,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/acpi/power.c:154,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/acpi/power.c:155,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/acpi/power.c:156,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/acpi/power.c:158,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/x86/acpi/power.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 166
    functionName: acpi_sleep_prepare
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - fix_to_virt
    - clear_fixmap
    - tboot_in_measured_env
    - PAGE_OFFSET
    - set_fixmap
    - bootsym_phys
    linkageType: ''
    returnType: void
    signature: void acpi_sleep_prepare(u32 state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - state
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: acpi_sleep_post
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_sleep_post(u32 state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/acpi/power.c:180,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/acpi/power.c:183,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/acpi/power.c:184,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/acpi/power.c:184,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/acpi/power.c:185,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/power.c:185,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/power.c:188,1
    - Dst: freeze_domains
      Src: /src/xen/xen/arch/x86/acpi/power.c:190,1
    - Dst: scheduler_disable
      Src: /src/xen/xen/arch/x86/acpi/power.c:191,1
    - Dst: acpi_dmar_reinstate
      Src: /src/xen/xen/arch/x86/acpi/power.c:193,1
    - Dst: disable_nonboot_cpus
      Src: /src/xen/xen/arch/x86/acpi/power.c:195,1
    - Dst: cpufreq_del_cpu
      Src: /src/xen/xen/arch/x86/acpi/power.c:201,1
    - Dst: hvm_cpu_down
      Src: /src/xen/xen/arch/x86/acpi/power.c:203,1
    - Dst: acpi_sleep_prepare
      Src: /src/xen/xen/arch/x86/acpi/power.c:205,1
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/x86/acpi/power.c:207,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/x86/acpi/power.c:208,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/power.c:209,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/acpi/power.c:211,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/arch/x86/acpi/power.c:212,1
    - Dst: device_power_down
      Src: /src/xen/xen/arch/x86/acpi/power.c:214,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/power.c:216,1
    - Dst: device_power_up
      Src: /src/xen/xen/arch/x86/acpi/power.c:218,1
    - Dst: console_end_sync
      Src: /src/xen/xen/arch/x86/acpi/power.c:219,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/arch/x86/acpi/power.c:220,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/power.c:227,1
    - Dst: ACPI_FLUSH_CPU_CACHE
      Src: /src/xen/xen/arch/x86/acpi/power.c:231,1
    - Dst: do_suspend_lowlevel
      Src: /src/xen/xen/arch/x86/acpi/power.c:236,1
    - Dst: tboot_s3_resume
      Src: /src/xen/xen/arch/x86/acpi/power.c:238,1
    - Dst: acpi_enter_sleep_state
      Src: /src/xen/xen/arch/x86/acpi/power.c:241,1
    - Dst: write_efer
      Src: /src/xen/xen/arch/x86/acpi/power.c:251,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/acpi/power.c:251,1
    - Dst: device_power_up
      Src: /src/xen/xen/arch/x86/acpi/power.c:253,1
    - Dst: mcheck_init
      Src: /src/xen/xen/arch/x86/acpi/power.c:255,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/power.c:257,1
    - Dst: tboot_s3_error
      Src: /src/xen/xen/arch/x86/acpi/power.c:260,1
    - Dst: console_end_sync
      Src: /src/xen/xen/arch/x86/acpi/power.c:262,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/arch/x86/acpi/power.c:263,1
    - Dst: microcode_update_one
      Src: /src/xen/xen/arch/x86/acpi/power.c:265,1
    - Dst: tsx_init
      Src: /src/xen/xen/arch/x86/acpi/power.c:267,1
    - Dst: recheck_cpu_features
      Src: /src/xen/xen/arch/x86/acpi/power.c:269,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/acpi/power.c:270,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/power.c:275,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/power.c:275,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/power.c:277,1
    - Dst: update_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/acpi/power.c:281,1
    - Dst: update_pb_opt_ctrl
      Src: /src/xen/xen/arch/x86/acpi/power.c:282,1
    - Dst: wrpkrs_and_cache
      Src: /src/xen/xen/arch/x86/acpi/power.c:291,1
    - Dst: percpu_traps_init
      Src: /src/xen/xen/arch/x86/acpi/power.c:294,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/arch/x86/acpi/power.c:297,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/acpi/power.c:298,1
    - Dst: acpi_sleep_post
      Src: /src/xen/xen/arch/x86/acpi/power.c:299,1
    - Dst: hvm_cpu_up
      Src: /src/xen/xen/arch/x86/acpi/power.c:300,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/acpi/power.c:301,1
    - Dst: cpufreq_add_cpu
      Src: /src/xen/xen/arch/x86/acpi/power.c:302,1
    - Dst: mtrr_aps_sync_begin
      Src: /src/xen/xen/arch/x86/acpi/power.c:305,1
    - Dst: enable_nonboot_cpus
      Src: /src/xen/xen/arch/x86/acpi/power.c:306,1
    - Dst: mtrr_aps_sync_end
      Src: /src/xen/xen/arch/x86/acpi/power.c:307,1
    - Dst: iommu_adjust_irq_affinities
      Src: /src/xen/xen/arch/x86/acpi/power.c:308,1
    - Dst: acpi_dmar_zap
      Src: /src/xen/xen/arch/x86/acpi/power.c:309,1
    - Dst: scheduler_enable
      Src: /src/xen/xen/arch/x86/acpi/power.c:310,1
    - Dst: thaw_domains
      Src: /src/xen/xen/arch/x86/acpi/power.c:311,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/acpi/power.c:313,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/acpi/power.c:314,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 97
    argCount: 1
    argNames:
    - state
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 316
    functionName: enter_state
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - device_power_up
    - get_cpu_info
    - update_pb_opt_ctrl
    - console_start_sync
    - is_idle_vcpu
    - spin_debug_enable
    - acpi_sleep_prepare
    - hvm_cpu_up
    - enable_nonboot_cpus
    - tsx_init
    - wrmsrl
    - watchdog_disable
    - scheduler_disable
    - update_mcu_opt_ctrl
    - thaw_domains
    - disable_nonboot_cpus
    - acpi_dmar_reinstate
    - BUG
    - raise_softirq
    - cpufreq_del_cpu
    - smp_processor_id
    - console_end_sync
    - acpi_sleep_post
    - acpi_enter_sleep_state
    - BUG_ON
    - acpi_dmar_zap
    - printk
    - tboot_s3_resume
    - iommu_adjust_irq_affinities
    - microcode_update_one
    - scheduler_enable
    - spin_unlock
    - cpufreq_add_cpu
    - panic
    - spin_debug_disable
    - mcheck_init
    - wrpkrs_and_cache
    - hvm_cpu_down
    - freeze_domains
    - local_irq_restore
    - local_irq_save
    - watchdog_enable
    - tboot_s3_error
    - device_power_down
    - write_efer
    - boot_cpu_has
    - percpu_traps_init
    - mtrr_aps_sync_end
    - ACPI_FLUSH_CPU_CACHE
    - do_suspend_lowlevel
    - spin_trylock
    - read_efer
    - recheck_cpu_features
    - mtrr_aps_sync_begin
    linkageType: ''
    returnType: int
    signature: int enter_state(u32 state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enter_state
      Src: /src/xen/xen/arch/x86/acpi/power.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 11
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: enter_state_helper
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - enter_state
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check enter_state_helper(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/acpi/power.c:332,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/acpi/power.c:363,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/acpi/power.c:379,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 1
    argNames:
    - sleep
    argTypes:
    - struct xenpf_enter_acpi_sleep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 380
    functionName: acpi_enter_sleep
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - PAGE_OFFSET
    - continue_hypercall_on_cpu
    linkageType: ''
    returnType: int
    signature: int acpi_enter_sleep(const struct xenpf_enter_acpi_sleep *sleep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/arch/x86/acpi/power.c:389,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/x86/acpi/power.c:391,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/arch/x86/acpi/power.c:395,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/x86/acpi/power.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 402
    functionName: acpi_get_wake_status
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - acpi_hw_register_read
    - ACPI_FAILURE
    linkageType: ''
    returnType: int
    signature: int acpi_get_wake_status(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TB_COPY_GAS
      Src: /src/xen/xen/arch/x86/acpi/power.c:416,1
    - Dst: TB_COPY_GAS
      Src: /src/xen/xen/arch/x86/acpi/power.c:418,1
    - Dst: TB_COPY_GAS
      Src: /src/xen/xen/arch/x86/acpi/power.c:420,1
    - Dst: TB_COPY_GAS
      Src: /src/xen/xen/arch/x86/acpi/power.c:422,1
    - Dst: bootsym_phys
      Src: /src/xen/xen/arch/x86/acpi/power.c:429,1
    - Dst: tboot_shutdown
      Src: /src/xen/xen/arch/x86/acpi/power.c:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - sleep_state
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 447
    functionName: tboot_sleep
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 0
    functionsReached:
    - bootsym_phys
    - tboot_shutdown
    - TB_COPY_GAS
    linkageType: ''
    returnType: void
    signature: void tboot_sleep(u8 sleep_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tbg
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: TB_COPY_GAS
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TB_COPY_GAS(tbg, g)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/acpi/power.c:454,1
    - Dst: tboot_sleep
      Src: /src/xen/xen/arch/x86/acpi/power.c:456,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/power.c:457,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/arch/x86/acpi/power.c:458,1
    - Dst: ACPI_FLUSH_CPU_CACHE
      Src: /src/xen/xen/arch/x86/acpi/power.c:461,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/arch/x86/acpi/power.c:475,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/arch/x86/acpi/power.c:480,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/x86/acpi/power.c:482,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/arch/x86/acpi/power.c:483,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/x86/acpi/power.c:487,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/arch/x86/acpi/power.c:488,1
    - Dst: acpi_get_wake_status
      Src: /src/xen/xen/arch/x86/acpi/power.c:491,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/arch/x86/acpi/power.c:494,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - sleep_state
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 495
    functionName: acpi_enter_sleep_state
    functionSourceFile: /src/xen/xen/arch/x86/acpi/power.c
    functionUses: 1
    functionsReached:
    - tboot_sleep
    - ACPI_FAILURE
    - acpi_get_wake_status
    - acpi_hw_register_write
    - return_ACPI_STATUS
    - ACPI_FLUSH_CPU_CACHE
    - tboot_in_measured_env
    - printk
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_enter_sleep_state(u8 sleep_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - ecx
    - edx
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: monitor
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - alternative_input
    linkageType: ''
    returnType: always_inline
    signature: "always_inline monitor(\n    const void *addr, unsigned int ecx, unsigned
      int edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eax
    - ecx
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: mwait
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline mwait(unsigned int eax, unsigned int ecx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - eax
    - ecx
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sti_mwait_cli
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline sti_mwait_cli(unsigned int eax, unsigned int ecx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: GET_HW_RES_IN_NS
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_HW_RES_IN_NS(msr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: GET_MC6_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MC6_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: GET_PC2_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC2_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: GET_PC3_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC3_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: GET_PC6_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC6_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: GET_PC7_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC7_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: GET_PC8_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC8_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: GET_PC9_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC9_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: GET_PC10_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_PC10_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: GET_CC1_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CC1_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: GET_CC3_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CC3_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: GET_CC6_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CC6_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: GET_CC7_RES
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CC7_RES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: lapic_timer_nop
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lapic_timer_nop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:112,1
    - Dst: hpet_broadcast_is_available
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:117,1
    - Dst: pit_broadcast_is_available
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: lapic_timer_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - hpet_broadcast_is_available
    - pit_broadcast_is_available
    linkageType: ''
    returnType: bool
    signature: bool lapic_timer_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:139,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: parse_cstate
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_cstate(const char *s)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: GET_PC8_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:188,1
    - Dst: GET_PC9_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:189,1
    - Dst: GET_PC10_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:190,1
    - Dst: GET_PC2_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:225,1
    - Dst: GET_CC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:226,1
    - Dst: GET_PC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:237,1
    - Dst: GET_PC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:238,1
    - Dst: GET_PC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:239,1
    - Dst: GET_CC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:240,1
    - Dst: GET_CC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:241,1
    - Dst: GET_PC2_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:245,1
    - Dst: GET_PC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:246,1
    - Dst: GET_PC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:247,1
    - Dst: GET_PC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:248,1
    - Dst: GET_CC1_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:249,1
    - Dst: GET_CC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:250,1
    - Dst: GET_CC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:251,1
    - Dst: GET_PC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:255,1
    - Dst: GET_PC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:256,1
    - Dst: GET_PC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:257,1
    - Dst: GET_MC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:267,1
    - Dst: GET_PC7_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:268,1
    - Dst: GET_CC1_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:269,1
    - Dst: GET_CC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:270,1
    - Dst: GET_PC2_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:279,1
    - Dst: GET_PC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:280,1
    - Dst: GET_PC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:281,1
    - Dst: GET_PC10_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:282,1
    - Dst: GET_CC1_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:283,1
    - Dst: GET_CC3_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:284,1
    - Dst: GET_CC6_RES
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 85
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 288
    functionName: do_get_hw_residencies
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - GET_PC2_RES
    - GET_PC9_RES
    - GET_CC1_RES
    - GET_MC6_RES
    - GET_CC7_RES
    - GET_PC6_RES
    - GET_CC3_RES
    - GET_PC7_RES
    - GET_PC3_RES
    - GET_CC6_RES
    - GET_PC10_RES
    - GET_PC8_RES
    linkageType: ''
    returnType: void
    signature: void do_get_hw_residencies(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:292,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:294,1
    - Dst: do_get_hw_residencies
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:295,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:297,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cpu
    - hw_res
    argTypes:
    - uint32_t
    - struct hw_residencies*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: get_hw_residencies
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - do_get_hw_residencies
    - on_selected_cpus
    - cpumask_of
    - memset
    linkageType: ''
    returnType: void
    signature: void get_hw_residencies(uint32_t cpu, struct hw_residencies *hw_res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_hw_residencies
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:304,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:307,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:309,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:314,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: print_hw_residencies
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - get_hw_residencies
    - printk
    linkageType: ''
    returnType: void
    signature: void print_hw_residencies(uint32_t cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: get_stime_tick
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - NOW
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_stime_tick(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: stime_ticks_elapsed
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t stime_ticks_elapsed(uint64_t t1, uint64_t t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: stime_tick_to_ns
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t stime_tick_to_ns(uint64_t ticks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inl
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: get_acpi_pm_tick
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - inl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_acpi_pm_tick(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 357
    functionName: acpi_pm_ticks_elapsed
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t acpi_pm_ticks_elapsed(uint64_t t1, uint64_t t2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:372,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:375,1
    - Dst: cpuidle_get_tick
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:376,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:377,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:384,1
    - Dst: ticks_elapsed
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:388,1
    - Dst: tick_to_ns
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:396,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:398,1
    - Dst: tick_to_ns
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:402,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:404,1
    - Dst: print_hw_residencies
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - cpu
    - power
    argTypes:
    - uint32_t
    - struct acpi_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 409
    functionName: print_acpi_power
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - spin_unlock_irq
    - spin_lock_irq
    - print_hw_residencies
    - tick_to_ns
    - printk
    - cpuidle_get_tick
    - ticks_elapsed
    - NOW
    linkageType: ''
    returnType: void
    signature: void print_acpi_power(uint32_t cpu, struct acpi_processor_power *power)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:415,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:418,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:420,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:422,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:425,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:433,1
    - Dst: print_acpi_power
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:434,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:436,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 442
    functionName: dump_cx
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - process_pending_softirqs
    - print_acpi_power
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_cx(unsigned char key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:433,1
    - Dst: print_acpi_power
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:434,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:436,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 441
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - process_pending_softirqs
    - print_acpi_power
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( cpu )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: cpu_idle_key_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int cpu_idle_key_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:453,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:454,1
    - Dst: alternative_io
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:475,1
    - Dst: __spec_ctrl_enter_idle_verw
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:483,1
    - Dst: monitor
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:485,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:487,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:487,1
    - Dst: __spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:491,1
    - Dst: mwait
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:494,1
    - Dst: sti_mwait_cli
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:496,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:498,1
    - Dst: alternative_io
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - eax
    - ecx
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 504
    functionName: mwait_idle_with_hints
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - alternative_io
    - smp_processor_id
    - spec_ctrl_exit_idle
    - __spec_ctrl_enter_idle_verw
    - ASSERT
    - sti_mwait_cli
    - monitor
    - __spec_ctrl_enter_idle
    - local_irq_is_enabled
    - mwait
    linkageType: ''
    returnType: void
    signature: void mwait_idle_with_hints(unsigned int eax, unsigned int ecx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mwait_idle_with_hints
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - struct acpi_processor_cx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: acpi_processor_ffh_cstate_enter
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - mwait_idle_with_hints
    linkageType: ''
    returnType: void
    signature: void acpi_processor_ffh_cstate_enter(struct acpi_processor_cx *cx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:513,1
    - Dst: acpi_processor_ffh_cstate_enter
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:519,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:522,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:524,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:528,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:529,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:532,1
    - Dst: safe_halt
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:533,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:534,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - cx
    argTypes:
    - struct acpi_processor_cx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 538
    functionName: acpi_idle_do_entry
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - acpi_processor_ffh_cstate_enter
    - get_cpu_info
    - inl
    - spec_ctrl_exit_idle
    - local_irq_disable
    - safe_halt
    - inb
    - spec_ctrl_enter_idle
    linkageType: ''
    returnType: void
    signature: void acpi_idle_do_entry(struct acpi_processor_cx *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_register
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:544,1
    - Dst: acpi_set_register
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 553
    functionName: acpi_idle_bm_check
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - acpi_get_register
    - acpi_set_register
    linkageType: ''
    returnType: int
    signature: int acpi_idle_bm_check(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:562,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:569,1
    - Dst: find_first_bit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:571,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - irq_traced
    argTypes:
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: trace_exit_reason
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - find_next_bit
    - apic_read
    - find_first_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void trace_exit_reason(u32 *irq_traced)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:584,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:601,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:602,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:603,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:604,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:605,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:606,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:607,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:625,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:626,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:627,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:628,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:629,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:630,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:631,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:632,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:633,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:634,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:635,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:636,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:637,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:638,1
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:643,1
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:644,1
    - Dst: cpu_has_pending_apic_eoi
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 648
    functionName: errata_c6_workaround
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - cpu_has_pending_apic_eoi
    - X86_MATCH_VFM
    - x86_match_cpu
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool errata_c6_workaround(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:653,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:653,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:655,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - power
    - cx
    - ticks
    argTypes:
    - struct acpi_processor_power*
    - struct acpi_processor_cx*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 659
    functionName: update_last_cx_stat
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ASSERT
    - local_irq_is_enabled
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void update_last_cx_stat(struct acpi_processor_power *power,\n                         struct
      acpi_processor_cx *cx, uint64_t ticks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:665,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:668,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:673,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - power
    - cx
    - before
    - after
    argTypes:
    - struct acpi_processor_power*
    - struct acpi_processor_cx*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 681
    functionName: update_idle_stats
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - spin_unlock
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void update_idle_stats(struct acpi_processor_power *power,\n                       struct
      acpi_processor_cx *cx,\n                       uint64_t before, uint64_t after)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:685,1
    - Dst: select
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:694,1
    - Dst: sched_has_urgent_vcpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:696,1
    - Dst: acpi_idle_bm_check
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:710,1
    - Dst: menu_get_trace_data
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:713,1
    - Dst: pm_idle_save
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:721,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:724,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:726,1
    - Dst: safe_halt
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:727,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:728,1
    - Dst: cpufreq_dbs_timer_suspend
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:733,1
    - Dst: rcu_idle_enter
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:735,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:737,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:743,1
    - Dst: cpu_is_haltable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:745,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:747,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:748,1
    - Dst: cpufreq_dbs_timer_resume
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:749,1
    - Dst: errata_c6_workaround
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:753,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:769,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:771,1
    - Dst: update_last_cx_stat
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:773,1
    - Dst: acpi_idle_do_entry
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:776,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:778,1
    - Dst: trace_exit_reason
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:779,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:781,1
    - Dst: update_idle_stats
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:784,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:786,1
    - Dst: lapic_timer_off
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:797,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:800,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:802,1
    - Dst: update_last_cx_stat
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:804,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:820,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:821,1
    - Dst: acpi_set_register
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:827,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:829,1
    - Dst: ACPI_FLUSH_CPU_CACHE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:834,1
    - Dst: acpi_idle_do_entry
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:838,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:844,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:845,1
    - Dst: acpi_set_register
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:846,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:847,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:851,1
    - Dst: cstate_restore_tsc
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:854,1
    - Dst: trace_exit_reason
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:855,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:857,1
    - Dst: update_idle_stats
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:861,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:863,1
    - Dst: lapic_timer_on
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:865,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:872,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:873,1
    - Dst: cpufreq_dbs_timer_resume
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:874,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:881,1
    - Dst: cpufreq_dbs_timer_resume
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:882,1
    - Dst: reflect
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:885,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 683
    functionDepth: 5
    functionLinenumber: 683
    functionLinenumberEnd: 886
    functionName: acpi_processor_idle
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - TRACE_TIME
    - lapic_timer_on
    - local_irq_enable
    - cpufreq_dbs_timer_suspend
    - local_irq_disable
    - acpi_idle_do_entry
    - alternative_call
    - spin_lock
    - cstate_restore_tsc
    - trace_exit_reason
    - cpufreq_dbs_timer_resume
    - acpi_idle_bm_check
    - update_last_cx_stat
    - pm_idle_save
    - update_idle_stats
    - smp_processor_id
    - spec_ctrl_exit_idle
    - rcu_idle_exit
    - safe_halt
    - num_online_cpus
    - select
    - lapic_timer_off
    - spec_ctrl_enter_idle
    - rcu_idle_enter
    - spin_unlock
    - process_pending_softirqs
    - cpu_is_haltable
    - sched_has_urgent_vcpu
    - menu_get_trace_data
    - errata_c6_workaround
    - ACPI_FLUSH_CPU_CACHE
    - reflect
    - acpi_set_register
    linkageType: ''
    returnType: void
    signature: void acpi_processor_idle(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:893,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:902,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:902,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:909,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:909,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:910,1
    - Dst: monitor
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:914,1
    - Dst: mwait
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:915,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:928,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:928,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:929,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:933,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:934,1
    - Dst: default_dead_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:939,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 940
    functionName: acpi_dead_idle
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - get_cpu_info
    - inl
    - smp_processor_id
    - monitor
    - inb
    - spec_ctrl_enter_idle
    - default_dead_idle
    - wbinvd
    - mwait
    linkageType: ''
    returnType: void
    signature: void acpi_dead_idle(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:953,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:967,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:976,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 987
    functionName: cpuidle_init_cpu
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - spin_lock_init
    - xzalloc
    linkageType: ''
    returnType: int
    signature: int cpuidle_init_cpu(unsigned int cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1001,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1005,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1007,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1022,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1023,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - cx
    argTypes:
    - xen_processor_cx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1026
    functionName: acpi_processor_ffh_cstate_probe
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - cpuid
    - printk
    linkageType: ''
    returnType: int
    signature: int acpi_processor_ffh_cstate_probe(xen_processor_cx_t *cx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1043,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 9
    argCount: 1
    argNames:
    - flags
    argTypes:
    - struct acpi_processor_flags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1065
    functionName: acpi_processor_power_init_bm_check
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - num_online_cpus
    linkageType: ''
    returnType: void
    signature: void acpi_processor_power_init_bm_check(struct acpi_processor_flags
      *flags)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: acpi_processor_ffh_cstate_probe
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1088,1
    - Dst: lapic_timer_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1102,1
    - Dst: acpi_processor_power_init_bm_check
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1109,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1124,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1131,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1152,1
    - Dst: acpi_set_register
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - power
    - cx
    argTypes:
    - struct acpi_processor_power*
    - xen_processor_cx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1170
    functionName: check_cx
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - ACPI_DEBUG_PRINT
    - acpi_processor_ffh_cstate_probe
    - acpi_processor_power_init_bm_check
    - acpi_set_register
    - lapic_timer_init
    linkageType: ''
    returnType: int
    signature: int check_cx(struct acpi_processor_power *power, xen_processor_cx_t
      *cx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: check_cx
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1181,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1193,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1209,1
    - Dst: ioports_deny_access
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1215,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1216,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - acpi_power
    - xen_cx
    argTypes:
    - struct acpi_processor_power*
    - xen_processor_cx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1175
    functionDepth: 4
    functionLinenumber: 1175
    functionLinenumberEnd: 1232
    functionName: set_cx
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - ioports_deny_access
    - smp_wmb
    - printk
    - check_cx
    linkageType: ''
    returnType: void
    signature: "void set_cx(\n    struct acpi_processor_power *acpi_power,\n    xen_processor_cx_t
      *xen_cx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - acpi_id
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1253
    functionName: get_cpu_id
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_cpu_id(u32 acpi_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1258,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1260,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1264,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1265,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1266,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1275,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1275,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1278,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1279,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1280,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1281,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1282,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1283,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1284,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1285,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1286,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1289,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1293,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1293,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1295,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1296,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - cpu
    - power
    argTypes:
    - uint32_t
    - struct xen_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1300
    functionName: print_cx_pminfo
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - XEN_GUEST_HANDLE
    - copy_from_guest_offset
    - unlikely
    - printk
    linkageType: ''
    returnType: void
    signature: void print_cx_pminfo(uint32_t cpu, struct xen_processor_power *power)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1307,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1312,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1312,1
    - Dst: print_cx_pminfo
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1321,1
    - Dst: get_cpu_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1323,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1329,1
    - Dst: cpuidle_init_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1334,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1346,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1346,1
    - Dst: set_cx
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1349,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1352,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1364,1
    - Dst: apic_wait_icr_idle
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1365,1
    - Dst: apic_icr_write
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1366,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1367,1
    - Dst: enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1372,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - acpi_id
    - power
    argTypes:
    - uint32_t
    - struct xen_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1391
    functionName: set_cx_pminfo
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - local_irq_save
    - cpuidle_init_cpu
    - set_cx
    - apic_icr_write
    - XEN_GUEST_HANDLE
    - print_cx_pminfo
    - get_cpu_id
    - apic_wait_icr_idle
    - printk
    - unlikely
    - guest_handle_okay
    - copy_from_guest_offset
    - enable
    - local_irq_restore
    linkageType: ''
    returnType: long
    signature: long set_cx_pminfo(uint32_t acpi_id, struct xen_processor_power *power)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1433,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1436,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1444,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1466,1
    - Dst: hpet_broadcast_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1467,1
    - Dst: lapic_timer_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1469,1
    - Dst: cpuidle_init_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1472,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 1
    argNames:
    - power
    argTypes:
    - struct acpi_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1393
    functionDepth: 7
    functionLinenumber: 1393
    functionLinenumberEnd: 1489
    functionName: amd_cpuidle_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - cpuidle_init_cpu
    - hpet_broadcast_init
    - ARRAY_SIZE
    - boot_cpu_has
    - cpuid_ecx
    - lapic_timer_init
    linkageType: ''
    returnType: void
    signature: void amd_cpuidle_init(struct acpi_processor_power *power)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1495
    functionName: pmstat_get_cx_nr
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pmstat_get_cx_nr(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1516,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1517,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1528,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1537,1
    - Dst: cpuidle_get_tick
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1538,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1539,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1547,1
    - Dst: ticks_elapsed
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1552,1
    - Dst: tick_to_ns
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1561,1
    - Dst: get_hw_residencies
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1566,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1576,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1577,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1578,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1579,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1580,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1581,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1582,1
    - Dst: PUT_PC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1583,1
    - Dst: PUT_CC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1586,1
    - Dst: PUT_CC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1587,1
    - Dst: PUT_CC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1588,1
    - Dst: PUT_CC
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1589,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1597,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 61
    argCount: 2
    argNames:
    - cpu
    - stat
    argTypes:
    - unsigned int
    - struct pm_cx_stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1497
    functionDepth: 3
    functionLinenumber: 1497
    functionLinenumberEnd: 1605
    functionName: pmstat_get_cx_stat
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - PUT_CC
    - get_cpu_idle_time
    - spin_unlock_irq
    - spin_lock_irq
    - copy_to_guest
    - min
    - tick_to_ns
    - PUT_PC
    - cpuidle_get_tick
    - ticks_elapsed
    - get_hw_residencies
    - NOW
    linkageType: ''
    returnType: int
    signature: int pmstat_get_cx_stat(unsigned int cpu, struct pm_cx_stat *stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - what
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1575
    functionName: PUT_xC
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_xC(what, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1576
    functionName: PUT_PC
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_PC(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1586
    functionName: PUT_CC
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT_CC(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: pmstat_reset_cx_stat
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pmstat_reset_cx_stat(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpet_disable_legacy_broadcast
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1624
    functionName: cpuidle_disable_deep_cstate
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 2
    functionsReached:
    - hpet_disable_legacy_broadcast
    linkageType: ''
    returnType: void
    signature: void cpuidle_disable_deep_cstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1630
    functionName: cpuidle_using_deep_cstate
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cpuidle_using_deep_cstate(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpuidle_init_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1645,1
    - Dst: enable
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1647,1
    - Dst: amd_cpuidle_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1654,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1632
    functionDepth: 8
    functionLinenumber: 1632
    functionLinenumberEnd: 1659
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - notifier_from_errno
    - enable
    - cpuidle_init_cpu
    - amd_cpuidle_init
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1667,1
    - Dst: intel_init_arat
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1670,1
    - Dst: mwait_idle_init
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1675,1
    - Dst: notifier_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1676,1
    - Dst: notifier_call
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1677,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/acpi/cpu_idle.c:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1680
    functionName: cpuidle_presmp_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    functionUses: 0
    functionsReached:
    - mwait_idle_init
    - smp_processor_id
    - intel_init_arat
    - notifier_call
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpuidle_presmp_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/acpi/lib.c:50,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/acpi/lib.c:58,1
    - Dst: __fix_to_virt
      Src: /src/xen/xen/arch/x86/acpi/lib.c:59,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/acpi/lib.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - phys
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 74
    functionName: __acpi_map_table
    functionSourceFile: /src/xen/xen/arch/x86/acpi/lib.c
    functionUses: 1
    functionsReached:
    - set_fixmap
    - __fix_to_virt
    - __va
    linkageType: ''
    returnType: char
    signature: char *__acpi_map_table(paddr_t phys, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/lib.c:82,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/acpi/lib.c:82,1
    - Dst: __fix_to_virt
      Src: /src/xen/xen/arch/x86/acpi/lib.c:86,1
    - Dst: __fix_to_virt
      Src: /src/xen/xen/arch/x86/acpi/lib.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: __acpi_unmap_table
    functionSourceFile: /src/xen/xen/arch/x86/acpi/lib.c
    functionUses: 0
    functionsReached:
    - __fix_to_virt
    - ASSERT
    - __pa
    linkageType: ''
    returnType: bool
    signature: bool __acpi_unmap_table(const void *ptr, unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/acpi/lib.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: acpi_get_processor_id
    functionSourceFile: /src/xen/xen/arch/x86/acpi/lib.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acpi_get_processor_id(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/acpi/lib.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: get_mwait_ecx
    functionSourceFile: /src/xen/xen/arch/x86/acpi/lib.c
    functionUses: 0
    functionsReached:
    - cpuid_ecx
    linkageType: ''
    returnType: void
    signature: void get_mwait_ecx(void *info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_id
      Src: /src/xen/xen/arch/x86/acpi/lib.c:111,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/lib.c:117,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/acpi/lib.c:124,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/acpi/lib.c:127,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/acpi/lib.c:134,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/lib.c:137,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/acpi/lib.c:138,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/lib.c:140,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/lib.c:140,1
    - Dst: hwp_active
      Src: /src/xen/xen/arch/x86/acpi/lib.c:145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - acpi_id
    - pdc
    - mask
    argTypes:
    - u32
    - u32*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 149
    functionName: arch_acpi_set_pdc_bits
    functionSourceFile: /src/xen/xen/arch/x86/acpi/lib.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - smp_processor_id
    - on_selected_cpus
    - cpu_has
    - cpuid_ecx
    - get_cpu_id
    - cpumask_of
    - hwp_active
    linkageType: ''
    returnType: int
    signature: int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *pdc, u32 mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: acpi_parse_madt
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_madt(struct acpi_table_header *table)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:84,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:87,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:98,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:110,1
    - Dst: mp_register_lapic
      Src: /src/xen/xen/arch/x86/acpi/boot.c:135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 138
    functionName: acpi_parse_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - mp_register_lapic
    - BAD_MADT_ENTRY
    - container_of
    - printk
    - acpi_table_print_madt_entry
    linkageType: ''
    returnType: int
    signature: int acpi_parse_x2apic(struct acpi_subtable_header *header, const unsigned
      long end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:144,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:147,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:158,1
    - Dst: mp_register_lapic
      Src: /src/xen/xen/arch/x86/acpi/boot.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 180
    functionName: acpi_parse_lapic
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - mp_register_lapic
    - acpi_table_print_madt_entry
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned
      long end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:187,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: acpi_parse_lapic_addr_ovr
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header,\n\t\t\t
      \ const unsigned long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:203,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:206,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:209,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: acpi_parse_x2apic_nmi
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_table_print_madt_entry
    - BAD_MADT_ENTRY
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_x2apic_nmi(struct acpi_subtable_header *header,\n\t\t
      \     const unsigned long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:221,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:223,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:226,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: acpi_parse_lapic_nmi
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_table_print_madt_entry
    - BAD_MADT_ENTRY
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const
      unsigned long end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:238,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:240,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:243,1
    - Dst: mp_register_ioapic
      Src: /src/xen/xen/arch/x86/acpi/boot.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 249
    functionName: acpi_parse_ioapic
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - mp_register_ioapic
    - acpi_table_print_madt_entry
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned
      long end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:256,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:259,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:262,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:266,1
    - Dst: mp_override_legacy_irq
      Src: /src/xen/xen/arch/x86/acpi/boot.c:270,1
    - Dst: ACPI_MADT_GET_POLARITY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:271,1
    - Dst: ACPI_MADT_GET_TRIGGER
      Src: /src/xen/xen/arch/x86/acpi/boot.c:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 276
    functionName: acpi_parse_int_src_ovr
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_ENTRY
    - container_of
    - mp_override_legacy_irq
    - ACPI_MADT_GET_POLARITY
    - ACPI_MADT_GET_TRIGGER
    - printk
    - acpi_table_print_madt_entry
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_int_src_ovr(struct acpi_subtable_header * header,\n\t\t
      \      const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:282,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/x86/acpi/boot.c:284,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/x86/acpi/boot.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 292
    functionName: acpi_parse_nmi_src
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_table_print_madt_entry
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_nmi_src(struct acpi_subtable_header * header, const
      unsigned long end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 328
    functionName: acpi_parse_hpet
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_hpet(struct acpi_table_header *table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:333,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/acpi/boot.c:339,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/acpi/boot.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: acpi_invalidate_bgrt
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - PFN_DOWN
    - page_is_ram_type
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_invalidate_bgrt(struct acpi_table_header *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: acpi_fadt_copy_address
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: acpi_fadt_copy_address(dst, src, len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/acpi/boot.c:407,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/acpi/boot.c:409,1
    - Dst: acpi_fadt_copy_address
      Src: /src/xen/xen/arch/x86/acpi/boot.c:415,1
    - Dst: acpi_fadt_copy_address
      Src: /src/xen/xen/arch/x86/acpi/boot.c:416,1
    - Dst: acpi_fadt_copy_address
      Src: /src/xen/xen/arch/x86/acpi/boot.c:417,1
    - Dst: acpi_fadt_copy_address
      Src: /src/xen/xen/arch/x86/acpi/boot.c:418,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/x86/acpi/boot.c:445,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/acpi/boot.c:449,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:462,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:467,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/x86/acpi/boot.c:476,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 1
    argNames:
    - fadt
    argTypes:
    - struct acpi_table_fadt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 481
    functionName: acpi_fadt_parse_sleep_info
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - acpi_os_unmap_memory
    - strncmp
    - acpi_fadt_copy_address
    - printk
    - memset
    linkageType: ''
    returnType: void
    signature: void acpi_fadt_parse_sleep_info(const struct acpi_table_fadt *fadt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/acpi/boot.c:486,1
    - Dst: ACPI_ACCESS_BIT_WIDTH
      Src: /src/xen/xen/arch/x86/acpi/boot.c:493,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:494,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:497,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:514,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/boot.c:518,1
    - Dst: acpi_fadt_parse_sleep_info
      Src: /src/xen/xen/arch/x86/acpi/boot.c:525,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 528
    functionName: acpi_parse_fadt
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - ACPI_ACCESS_BIT_WIDTH
    - acpi_fadt_parse_sleep_info
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: int acpi_parse_fadt(struct acpi_table_header *table)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:547,1
    - Dst: mp_register_lapic_address
      Src: /src/xen/xen/arch/x86/acpi/boot.c:555,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/acpi/boot.c:557,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:558,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:560,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:573,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:576,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 584
    functionName: acpi_parse_madt_lapic_entries
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - mp_register_lapic_address
    - acpi_table_parse_madt
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: int acpi_parse_madt_lapic_entries(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:617,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:628,1
    - Dst: mp_config_acpi_legacy_irqs
      Src: /src/xen/xen/arch/x86/acpi/boot.c:638,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 650
    functionName: acpi_parse_madt_ioapic_entries
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_table_parse_madt
    - mp_config_acpi_legacy_irqs
    linkageType: ''
    returnType: int
    signature: int acpi_parse_madt_ioapic_entries(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/acpi/boot.c:656,1
    - Dst: acpi_parse_madt_lapic_entries
      Src: /src/xen/xen/arch/x86/acpi/boot.c:661,1
    - Dst: generic_bigsmp_probe
      Src: /src/xen/xen/arch/x86/acpi/boot.c:664,1
    - Dst: acpi_parse_madt_ioapic_entries
      Src: /src/xen/xen/arch/x86/acpi/boot.c:669,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/acpi/boot.c:681,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 684
    functionName: acpi_process_madt
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_parse_madt_lapic_entries
    - generic_bigsmp_probe
    - acpi_table_parse
    - disable_acpi
    - acpi_parse_madt_ioapic_entries
    linkageType: ''
    returnType: void
    signature: void acpi_process_madt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_init
      Src: /src/xen/xen/arch/x86/acpi/boot.c:721,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/x86/acpi/boot.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 728
    functionName: acpi_boot_table_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 1
    functionsReached:
    - acpi_table_init
    - disable_acpi
    linkageType: ''
    returnType: int
    signature: int acpi_boot_table_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/acpi/boot.c:742,1
    - Dst: acpi_process_madt
      Src: /src/xen/xen/arch/x86/acpi/boot.c:747,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/acpi/boot.c:749,1
    - Dst: erst_init
      Src: /src/xen/xen/arch/x86/acpi/boot.c:751,1
    - Dst: acpi_hest_init
      Src: /src/xen/xen/arch/x86/acpi/boot.c:753,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/acpi/boot.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 758
    functionName: acpi_boot_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/boot.c
    functionUses: 1
    functionsReached:
    - erst_init
    - acpi_hest_init
    - acpi_process_madt
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int acpi_boot_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - duration
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: which_bucket
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int which_bucket(unsigned int duration)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:149,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:154,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:158,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 175
    functionName: avg_intr_interval_us
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached:
    - NOW
    - this_cpu
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t avg_intr_interval_us(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:179,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: get_sleep_length_us
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached:
    - NOW
    - this_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_sleep_length_us(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:190,1
    - Dst: get_sleep_length_us
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:199,1
    - Dst: which_bucket
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:201,1
    - Dst: avg_intr_interval_us
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:203,1
    - Dst: DIV_ROUND
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:205,1
    - Dst: DIV_ROUND
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - power
    argTypes:
    - struct acpi_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 238
    functionName: menu_select
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached:
    - get_sleep_length_us
    - avg_intr_interval_us
    - DIV_ROUND
    - this_cpu
    - which_bucket
    linkageType: ''
    returnType: int
    signature: int menu_select(struct acpi_processor_power *power)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - power
    argTypes:
    - struct acpi_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: menu_reflect
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void menu_reflect(struct acpi_processor_power *power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:280,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - power
    argTypes:
    - struct acpi_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: menu_enable_device
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 0
    functionsReached:
    - memset
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int menu_enable_device(struct acpi_processor_power *power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - expected
    - pred
    argTypes:
    - u32*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 301
    functionName: menu_get_trace_data
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    functionUses: 1
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void menu_get_trace_data(u32 *expected, u32 *pred)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - cpu
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: amd_cppc_err
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: amd_cppc_err(cpu, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - cpu
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: amd_cppc_warn
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: amd_cppc_warn(cpu, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - cpu
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: amd_cppc_verbose
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: amd_cppc_verbose(cpu, fmt, args...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:44,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: amd_cppc_handle_option
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - parse_boolean
    linkageType: ''
    returnType: bool
    signature: bool amd_cppc_handle_option(const char *s, const char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:64,1
    - Dst: amd_cppc_handle_option
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:66,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: amd_cppc_cmdline_parse
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - amd_cppc_handle_option
    - printk
    linkageType: ''
    returnType: int
    signature: int amd_cppc_cmdline_parse(const char *s, const char *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:123,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - data
    - freq
    - perf
    argTypes:
    - struct amd_cppc_drv_data*
    - unsigned int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 137
    functionName: amd_cppc_khz_to_perf
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - printk_once
    linkageType: ''
    returnType: int
    signature: "int amd_cppc_khz_to_perf(const struct amd_cppc_drv_data *data,\n                                unsigned
      int freq, uint8_t *perf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - data
    - cpc_mhz
    - perf
    - freq
    argTypes:
    - struct amd_cppc_drv_data*
    - unsigned int
    - uint8_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: amd_get_cpc_freq
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int amd_get_cpc_freq(const struct amd_cppc_drv_data *data,\n                            unsigned
      int cpc_mhz, uint8_t perf,\n                            unsigned int *freq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: amd_get_cpc_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - max_freq
    argTypes:
    - struct amd_cppc_drv_data*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: amd_get_max_freq
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_get_cpc_freq
    linkageType: ''
    returnType: int
    signature: "int amd_get_max_freq(const struct amd_cppc_drv_data *data,\n                            unsigned
      int *max_freq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_verify_within_limits
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: amd_cppc_cpufreq_verify
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - cpufreq_verify_within_limits
    linkageType: ''
    returnType: int
    signature: int amd_cppc_cpufreq_verify(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: amd_cppc_write_request_msrs
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void amd_cppc_write_request_msrs(void *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:210,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:217,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - policy
    - min_perf
    - des_perf
    - max_perf
    - epp
    argTypes:
    - struct cpufreq_policy*
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 219
    functionName: amd_cppc_write_request
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: "void amd_cppc_write_request(struct cpufreq_policy *policy,\n                                   uint8_t
      min_perf, uint8_t des_perf,\n                                   uint8_t max_perf,
      uint8_t epp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:229,1
    - Dst: amd_cppc_khz_to_perf
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:232,1
    - Dst: amd_cppc_write_request
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - policy
    - target_freq
    - relation
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 247
    functionName: amd_cppc_cpufreq_target
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_cppc_khz_to_perf
    - amd_cppc_write_request
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int amd_cppc_cpufreq_target(struct cpufreq_policy *policy,\n                                            unsigned
      int target_freq,\n                                            unsigned int relation)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:257,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:266,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:269,1
    - Dst: amd_cppc_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:277,1
    - Dst: amd_process_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:284,1
    - Dst: amd_get_cpc_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:287,1
    - Dst: amd_get_cpc_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:292,1
    - Dst: amd_get_max_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:297,1
    - Dst: amd_cppc_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:303,1
    - Dst: cpufreq_driver_getavg
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:319,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:322,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:323,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 333
    functionName: amd_cppc_init_msrs
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_get_cpc_freq
    - amd_cppc_err
    - amd_get_max_freq
    - rdmsrl
    - cpufreq_driver_getavg
    - wrmsrl
    - amd_process_freq
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void amd_cppc_init_msrs(void *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - policy
    - data
    argTypes:
    - struct cpufreq_policy*
    - struct amd_cppc_drv_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 349
    functionName: amd_cppc_boost_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void amd_cppc_boost_init(struct cpufreq_policy *policy,\n                                const
      struct amd_cppc_drv_data *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: amd_cppc_cpufreq_cpu_exit
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int amd_cppc_cpufreq_cpu_exit(struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:363,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:363,1
    - Dst: amd_cppc_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:374,1
    - Dst: amd_cppc_cpufreq_cpu_exit
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:375,1
    - Dst: amd_cppc_boost_init
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: amd_cppc_cpufreq_init_perf
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_cppc_err
    - amd_cppc_cpufreq_cpu_exit
    - on_selected_cpus
    - amd_cppc_boost_init
    - cpumask_of
    linkageType: ''
    returnType: int
    signature: int amd_cppc_cpufreq_init_perf(struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: amd_cppc_cpufreq_init_perf
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:390,1
    - Dst: amd_cppc_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 398
    functionName: amd_cppc_cpufreq_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_cppc_cpufreq_init_perf
    - amd_cppc_verbose
    linkageType: ''
    returnType: int
    signature: int amd_cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: amd_cppc_cpufreq_init_perf
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:404,1
    - Dst: cpufreq_policy_from_governor
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:408,1
    - Dst: amd_cppc_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: amd_cppc_epp_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_cppc_cpufreq_init_perf
    - amd_cppc_verbose
    - cpufreq_policy_from_governor
    linkageType: ''
    returnType: int
    signature: int amd_cppc_epp_cpu_init(struct cpufreq_policy *policy)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - policy
    - max_perf
    - min_perf
    - epp
    argTypes:
    - struct cpufreq_policy*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 465
    functionName: amd_cppc_prepare_policy
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void amd_cppc_prepare_policy(struct cpufreq_policy *policy,\n                                    uint8_t
      *max_perf, uint8_t *min_perf,\n                                    uint8_t *epp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: amd_cppc_prepare_policy
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:471,1
    - Dst: amd_cppc_write_request
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: amd_cppc_epp_set_policy
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - amd_cppc_write_request
    - amd_cppc_prepare_policy
    linkageType: ''
    returnType: int
    signature: int amd_cppc_epp_set_policy(struct cpufreq_policy *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:507,1
    - Dst: cpufreq_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: amd_cppc_register_driver
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_driver
    linkageType: ''
    returnType: int
    signature: int amd_cppc_register_driver(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pstate
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: transition_pstate
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void transition_pstate(void *pstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:60,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: update_cpb
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void update_cpb(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:74,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:77,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cpu
    - policy
    argTypes:
    - unsigned int
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: powernow_cpufreq_update
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: int
    signature: "int powernow_cpufreq_update(\n    unsigned int cpu, struct cpufreq_policy
      *policy)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_frequency_table_target
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:97,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:101,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:106,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:113,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:113,1
    - Dst: transition_pstate
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:114,1
    - Dst: cpufreq_statistic_update
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:115,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:120,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:123,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:123,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:124,1
    - Dst: transition_pstate
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:127,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:129,1
    - Dst: cpufreq_statistic_update
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:130,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - policy
    - target_freq
    - relation
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 137
    functionName: powernow_cpufreq_target
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - smp_processor_id
    - on_selected_cpus
    - transition_pstate
    - likely
    - unlikely
    - cpufreq_statistic_update
    - cpumask_and
    - cpufreq_frequency_table_target
    linkageType: ''
    returnType: int
    signature: "int powernow_cpufreq_target(\n    struct cpufreq_policy *policy,\n
      \   unsigned int target_freq, unsigned int relation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct xen_processor_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 164
    functionName: amd_fixup_frequency
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - rdmsr
    linkageType: ''
    returnType: void
    signature: void amd_fixup_frequency(struct xen_processor_px *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:178,1
    - Dst: amd_fixup_frequency
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: get_cpu_data
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - amd_fixup_frequency
    linkageType: ''
    returnType: void
    signature: void get_cpu_data(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_verify_within_limits
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:195,1
    - Dst: cpufreq_frequency_table_verify
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: powernow_cpufreq_verify
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - cpufreq_frequency_table_verify
    - cpufreq_verify_within_limits
    linkageType: ''
    returnType: int
    signature: int powernow_cpufreq_verify(struct cpufreq_policy *policy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:220,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:221,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:222,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:223,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:227,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:227,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:232,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:239,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:255,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:255,1
    - Dst: cpufreq_frequency_table_cpuinfo
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:271,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:275,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:288,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 291
    functionName: powernow_cpufreq_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - cpumask_copy
    - cpufreq_frequency_table_cpuinfo
    - on_selected_cpus
    - XFREE
    - cpu_has
    - printk
    - cpumask_of
    - cpumask_set_cpu
    - cpumask_weight
    linkageType: ''
    returnType: int
    signature: int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: powernow_cpufreq_cpu_exit
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: int
    signature: int powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: powernow_register_driver
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_driver
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int powernow_register_driver(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - value
    - data
    argTypes:
    - u32
    - struct acpi_cpufreq_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: extract_io
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned extract_io(u32 value, struct acpi_cpufreq_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msr
    - data
    argTypes:
    - u32
    - struct acpi_cpufreq_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: extract_msr
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned extract_msr(u32 msr, struct acpi_cpufreq_data *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extract_msr
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:69,1
    - Dst: extract_io
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - val
    - data
    argTypes:
    - u32
    - struct acpi_cpufreq_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: extract_freq
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - extract_io
    - extract_msr
    linkageType: ''
    returnType: unsigned
    signature: unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:106,1
    - Dst: acpi_os_read_port
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - drvcmd
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 115
    functionName: do_drv_read
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - acpi_os_read_port
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void do_drv_read(void *drvcmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:126,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:129,1
    - Dst: acpi_os_write_port
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - drvcmd
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: do_drv_write
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - acpi_os_write_port
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void do_drv_write(void *drvcmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:144,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:144,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:147,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:147,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:147,1
    - Dst: do_drv_read
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:148,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct drv_cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: drv_read
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - on_selected_cpus
    - likely
    - do_drv_read
    - ASSERT
    - cpumask_weight
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void drv_read(struct drv_cmd *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:155,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:155,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:155,1
    - Dst: do_drv_write
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:156,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - struct drv_cmd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: drv_write
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 1
    functionsReached:
    - do_drv_write
    - cpumask_equal
    - smp_processor_id
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void drv_write(struct drv_cmd *cmd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:166,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:168,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:168,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:171,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:172,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:173,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:176,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:196,1
    - Dst: drv_read
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 200
    functionName: get_cur_val
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - cpumask_empty
    - smp_processor_id
    - cpumask_first
    - per_cpu
    - unlikely
    - cpumask_of
    - cpumask_test_cpu
    - drv_read
    linkageType: ''
    returnType: u32
    signature: u32 get_cur_val(const cpumask_t *mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:207,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:210,1
    - Dst: extract_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:218,1
    - Dst: get_cur_val
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:218,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: get_cur_freq_on_cpu
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - get_cur_val
    - per_cpu
    - cpumask_of
    - extract_freq
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_cur_freq_on_cpu(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: intel_feature_detect
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - printk_once
    linkageType: ''
    returnType: void
    signature: void intel_feature_detect(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intel_feature_detect
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: feature_detect
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 1
    functionsReached:
    - intel_feature_detect
    linkageType: ''
    returnType: void
    signature: void feature_detect(void *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:243,1
    - Dst: get_cur_val
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:243,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mask
    - freq
    - data
    argTypes:
    - cpumask_t*
    - unsigned int
    - struct acpi_cpufreq_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: check_freqs
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - extract_freq
    - udelay
    - get_cur_val
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int check_freqs(const cpumask_t *mask, unsigned int freq,\n
      \                               struct acpi_cpufreq_data *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_frequency_table_target
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:273,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:277,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:280,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:284,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:309,1
    - Dst: drv_write
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:314,1
    - Dst: check_freqs
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:316,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:317,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:321,1
    - Dst: cpufreq_statistic_update
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - policy
    - target_freq
    - relation
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 328
    functionName: acpi_cpufreq_target
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - unlikely
    - for_each_cpu
    - check_freqs
    - printk
    - cpumask_of
    - cpufreq_statistic_update
    - cpumask_and
    - cpufreq_frequency_table_target
    - drv_write
    linkageType: ''
    returnType: int
    signature: "int acpi_cpufreq_target(\n    struct cpufreq_policy *policy,\n    unsigned
      int target_freq, unsigned int relation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_verify_within_limits
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:339,1
    - Dst: cpufreq_frequency_table_verify
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 344
    functionName: acpi_cpufreq_verify
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - cpufreq_frequency_table_verify
    - cpufreq_verify_within_limits
    linkageType: ''
    returnType: int
    signature: int acpi_cpufreq_verify(struct cpufreq_policy *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - cpu
    argTypes:
    - struct acpi_cpufreq_data*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: acpi_cpufreq_guess_freq
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data,
      unsigned int cpu)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:392,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:398,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:400,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:408,1
    - Dst: cpufreq_frequency_table_cpuinfo
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:438,1
    - Dst: acpi_cpufreq_guess_freq
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:445,1
    - Dst: get_cur_freq_on_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:449,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:458,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:458,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:469,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 472
    functionName: acpi_cpufreq_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - cpufreq_frequency_table_cpuinfo
    - on_selected_cpus
    - XFREE
    - cpu_has
    - get_cur_freq_on_cpu
    - printk
    - cpumask_of
    - acpi_cpufreq_guess_freq
    linkageType: ''
    returnType: int
    signature: int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 479
    functionName: acpi_cpufreq_cpu_exit
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: int
    signature: int acpi_cpufreq_cpu_exit(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: acpi_cpufreq_register
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_driver
    linkageType: ''
    returnType: int
    signature: int acpi_cpufreq_register(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:54,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _readin
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: read_measured_perf_ctrs
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void read_measured_perf_ctrs(void *_readin)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:77,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:80,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:88,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:93,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:100,1
    - Dst: read_measured_perf_ctrs
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:101,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:103,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:103,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - cpu
    - flag
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 124
    functionName: get_measured_perf
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - read_measured_perf_ctrs
    - unlikely
    - smp_processor_id
    - on_selected_cpus
    - per_cpu
    - cpumask_of
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_measured_perf(unsigned int cpu, unsigned int flag)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:144,1
    - Dst: acpi_cpufreq_register
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:145,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:148,1
    - Dst: hwp_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:149,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:156,1
    - Dst: powernow_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:174,1
    - Dst: amd_cppc_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:178,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:186,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:200,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:210,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 236
    functionName: cpufreq_driver_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - hwp_register_driver
    - IS_ENABLED
    - acpi_cpufreq_register
    - powernow_register_driver
    - ASSERT
    - printk
    - amd_cppc_register_driver
    linkageType: ''
    returnType: int
    signature: int cpufreq_driver_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: cpufreq_driver_late_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpufreq_driver_late_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_add_cpu
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: cpufreq_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - cpufreq_add_cpu
    linkageType: ''
    returnType: int
    signature: int cpufreq_cpu_init(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - cpu
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: hwp_err
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hwp_err(cpu, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: hwp_info
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hwp_info(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: hwp_verbose
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hwp_verbose(fmt, args...)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: hwp_governor
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hwp_governor(struct cpufreq_policy *policy,\n                                 unsigned
      int event)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:62,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 77
    functionName: hwp_handle_option
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - parse_boolean
    linkageType: ''
    returnType: bool
    signature: bool hwp_handle_option(const char *s, const char *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:83,1
    - Dst: hwp_handle_option
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: hwp_cmdline_parse
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_handle_option
    - strpbrk
    - printk
    linkageType: ''
    returnType: int
    signature: int hwp_cmdline_parse(const char *s, const char *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_governor
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: cpufreq_gov_hwp_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_governor
    linkageType: ''
    returnType: int
    signature: int cpufreq_gov_hwp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: hwp_active
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hwp_active(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:123,1
    - Dst: hwp_info
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:131,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:137,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:147,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:154,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:159,1
    - Dst: hwp_info
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 167
    functionName: hwp_available
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_verbose
    - hwp_info
    linkageType: ''
    returnType: bool
    signature: bool hwp_available(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: hwp_cpufreq_verify
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_verbose
    linkageType: ''
    returnType: int
    signature: int hwp_cpufreq_verify(struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:191,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:192,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:194,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: hwp_write_request
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_verbose
    - rdmsr_safe
    - wrmsr_safe
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void hwp_write_request(void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:223,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - policy
    - target_freq
    - relation
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: hwp_cpufreq_target
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: int
    signature: "int hwp_cpufreq_target(struct cpufreq_policy *policy,\n                                       unsigned
      int target_freq,\n                                       unsigned int relation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:232,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:234,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:243,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cpu
    - val
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 250
    functionName: hdc_set_pkg_hdc_ctl
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - wrmsr_safe
    - hwp_err
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool hdc_set_pkg_hdc_ctl(unsigned int cpu, bool val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:256,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:258,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:267,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cpu
    - val
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 274
    functionName: hdc_set_pm_ctl1
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - wrmsr_safe
    - hwp_err
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool hdc_set_pm_ctl1(unsigned int cpu, bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: hwp_get_cpu_speeds
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: void
    signature: void hwp_get_cpu_speeds(struct cpufreq_policy *policy)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:304,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:306,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:313,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:318,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:320,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:326,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:328,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:332,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:334,1
    - Dst: intel_feature_detect
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:339,1
    - Dst: hdc_set_pkg_hdc_ctl
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:342,1
    - Dst: hdc_set_pm_ctl1
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:343,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:345,1
    - Dst: hwp_get_cpu_speeds
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:349,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:356,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 358
    functionName: hwp_init_msrs
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_err
    - wrmsr_safe
    - hdc_set_pm_ctl1
    - intel_feature_detect
    - hdc_set_pkg_hdc_ctl
    - rdmsr_safe
    - hwp_get_cpu_speeds
    linkageType: ''
    returnType: void
    signature: void hwp_init_msrs(void *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:369,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:369,1
    - Dst: hwp_err
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:373,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:385,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 397
    functionName: hwp_cpufreq_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_verbose
    - on_selected_cpus
    - hwp_err
    - cpumask_of
    linkageType: ''
    returnType: int
    signature: int hwp_cpufreq_cpu_init(struct cpufreq_policy *policy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: hwp_cpufreq_cpu_exit
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hwp_cpufreq_cpu_exit(struct cpufreq_policy *policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:419,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:421,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:433,1
    - Dst: hwp_verbose
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 439
    functionName: hwp_set_misc_turbo
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_verbose
    - wrmsr_safe
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void hwp_set_misc_turbo(void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:443,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cpu
    - policy
    argTypes:
    - unsigned int
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: hwp_cpufreq_update
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: int
    signature: int hwp_cpufreq_update(unsigned int cpu, struct cpufreq_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - policy
    - cppc_para
    argTypes:
    - struct cpufreq_policy*
    - struct xen_get_cppc_para*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 483
    functionName: get_hwp_para
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_hwp_para(const struct cpufreq_policy *policy,\n                 struct
      xen_get_cppc_para *cppc_para)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: hwp_cpufreq_target
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:579,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 51
    argCount: 2
    argNames:
    - policy
    - set_cppc
    argTypes:
    - struct cpufreq_policy*
    - struct xen_set_cppc_para*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 580
    functionName: set_hwp_para
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 0
    functionsReached:
    - hwp_cpufreq_target
    linkageType: ''
    returnType: int
    signature: "int set_hwp_para(struct cpufreq_policy *policy,\n                 struct
      xen_set_cppc_para *set_cppc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hwp_available
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:587,1
    - Dst: cpufreq_register_driver
      Src: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: hwp_register_driver
    functionSourceFile: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
    functionUses: 1
    functionsReached:
    - hwp_available
    - cpufreq_register_driver
    linkageType: ''
    returnType: int
    signature: int hwp_register_driver(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: domain_vrtc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_vrtc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: vcpu_vrtc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_vrtc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: vrtc_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vrtc_domain(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: vrtc_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vrtc_vcpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: get_year
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_year(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: mode_is
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_is(d, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: rtc_mode_is
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rtc_mode_is(s, m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:64,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:64,1
    - Dst: rtc_mode_is
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:66,1
    - Dst: rtc_mode_is
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:76,1
    - Dst: hvm_isa_irq_deassert
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:77,1
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:77,1
    - Dst: hvm_isa_irq_assert
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:78,1
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: rtc_update_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_mode_is
    - hvm_isa_irq_assert
    - vrtc_domain
    - spin_is_locked
    - ASSERT
    - hvm_isa_irq_deassert
    linkageType: ''
    returnType: void
    signature: void rtc_update_irq(RTCState *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:87,1
    - Dst: rtc_mode_is
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:89,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:94,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:95,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - opaque
    argTypes:
    - struct vcpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 102
    functionName: rtc_pf_callback
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_mode_is
    - TRACE_TIME
    - spin_unlock
    - spin_lock
    - destroy_periodic_time
    linkageType: ''
    returnType: void
    signature: void rtc_pf_callback(struct vcpu *v, void *opaque)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: check_for_pf_ticks
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - NOW
    linkageType: ''
    returnType: void
    signature: void check_for_pf_ticks(RTCState *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_vcpu
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:127,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:129,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:129,1
    - Dst: DIV_ROUND
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:145,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:148,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:157,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:158,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:168,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 173
    functionName: rtc_timer_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - vrtc_vcpu
    - spin_is_locked
    - create_periodic_time
    - ASSERT
    - DIV_ROUND
    - destroy_periodic_time
    - NOW
    linkageType: ''
    returnType: void
    signature: void rtc_timer_update(RTCState *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:180,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:181,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:182,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:184,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:184,1
    - Dst: get_localtime_us
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:190,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:196,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:198,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:199,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:201,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:207,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:210,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:211,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 218
    functionName: check_update_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vrtc_domain
    - spin_is_locked
    - set_timer
    - ASSERT
    - stop_timer
    - spin_lock
    - get_localtime_us
    - NOW
    linkageType: ''
    returnType: void
    signature: void check_update_timer(RTCState *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:224,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:228,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: rtc_update_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - set_timer
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void rtc_update_timer(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:237,1
    - Dst: rtc_update_irq
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:242,1
    - Dst: check_update_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:243,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: rtc_update_timer2
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_update_irq
    - spin_lock
    - spin_unlock
    - check_update_timer
    linkageType: ''
    returnType: void
    signature: void rtc_update_timer2(void *opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - a
    argTypes:
    - RTCState*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: to_bcd
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int to_bcd(const RTCState *s, unsigned int a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - a
    argTypes:
    - RTCState*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: from_bcd
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int from_bcd(const RTCState *s, unsigned int a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - raw
    argTypes:
    - RTCState*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: convert_hour
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - from_bcd
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int convert_hour(const RTCState *s, unsigned int raw)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:289,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:291,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:291,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:293,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:298,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:298,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:299,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:301,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:302,1
    - Dst: convert_hour
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:303,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:305,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:306,1
    - Dst: convert_hour
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:307,1
    - Dst: get_localtime_us
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:309,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:310,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:451,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:452,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:454,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 112
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 456
    functionName: alarm_timer_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - gmtime
    - vrtc_domain
    - spin_is_locked
    - from_bcd
    - set_timer
    - ASSERT
    - stop_timer
    - get_localtime
    - spin_lock
    - convert_hour
    - rtc_copy_date
    - get_localtime_us
    - NOW
    linkageType: ''
    returnType: void
    signature: void alarm_timer_update(RTCState *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:462,1
    - Dst: rtc_update_irq
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:466,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:467,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: rtc_alarm_cb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_update_irq
    - spin_lock
    - spin_unlock
    - alarm_timer_update
    linkageType: ''
    returnType: void
    signature: void rtc_alarm_cb(void *opaque)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:475,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:478,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:484,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:490,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:501,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:516,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:516,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:517,1
    - Dst: rtc_set_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:519,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:521,1
    - Dst: rtc_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:527,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:537,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:537,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:538,1
    - Dst: rtc_set_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:545,1
    - Dst: check_for_pf_ticks
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:547,1
    - Dst: rtc_update_irq
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:553,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:556,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:557,1
    - Dst: rtc_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:559,1
    - Dst: check_update_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:562,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:564,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:572,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 72
    argCount: 3
    argNames:
    - opaque
    - addr
    - data
    argTypes:
    - void*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 575
    functionName: rtc_ioport_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_timer_update
    - spin_unlock
    - TRACE_TIME
    - gmtime
    - check_update_timer
    - vrtc_domain
    - rtc_set_time
    - check_for_pf_ticks
    - rtc_update_irq
    - spin_lock
    - get_localtime
    - destroy_periodic_time
    - rtc_copy_date
    - alarm_timer_update
    linkageType: ''
    returnType: int
    signature: int rtc_ioport_write(void *opaque, uint32_t addr, uint32_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:580,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:583,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:583,1
    - Dst: mktime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:585,1
    - Dst: get_year
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:585,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:588,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:589,1
    - Dst: convert_hour
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:590,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:591,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:592,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:593,1
    - Dst: from_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:594,1
    - Dst: mktime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:596,1
    - Dst: get_year
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:596,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:602,1
    - Dst: send_timeoffset_req
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 605
    functionName: rtc_set_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 1
    functionsReached:
    - send_timeoffset_req
    - vrtc_domain
    - spin_is_locked
    - get_year
    - from_bcd
    - ASSERT
    - update_domain_wallclock_time
    - convert_hour
    - mktime
    linkageType: ''
    returnType: void
    signature: void rtc_set_time(RTCState *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:611,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:611,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:613,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:614,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:618,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:624,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:628,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:629,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:630,1
    - Dst: to_bcd
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 632
    functionName: rtc_copy_date
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - spin_is_locked
    - to_bcd
    linkageType: ''
    returnType: void
    signature: void rtc_copy_date(RTCState *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:637,1
    - Dst: get_localtime_us
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 648
    functionName: update_in_progress
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - vrtc_domain
    - get_localtime_us
    linkageType: ''
    returnType: int
    signature: int update_in_progress(RTCState *s)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: vrtc_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:653,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:655,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:669,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:669,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:670,1
    - Dst: update_in_progress
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:676,1
    - Dst: check_for_pf_ticks
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:680,1
    - Dst: hvm_isa_irq_deassert
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:684,1
    - Dst: check_update_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:685,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:686,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - RTCState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 697
    functionName: rtc_ioport_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - gmtime
    - update_in_progress
    - check_update_timer
    - vrtc_domain
    - check_for_pf_ticks
    - spin_lock
    - get_localtime
    - hvm_isa_irq_deassert
    - rtc_copy_date
    - alarm_timer_update
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rtc_ioport_read(RTCState *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:702,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:706,1
    - Dst: rtc_ioport_write
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:713,1
    - Dst: rtc_ioport_read
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 699
    functionDepth: 4
    functionLinenumber: 699
    functionLinenumberEnd: 728
    functionName: handle_rtc_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - vcpu_vrtc
    - rtc_ioport_read
    - rtc_ioport_write
    linkageType: ''
    returnType: int
    signature: "int handle_rtc_io(\n    int dir, unsigned int port, unsigned int bytes,
      uint32_t *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:732,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:734,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:739,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:740,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 743
    functionName: rtc_migrate_timers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - has_vrtc
    - migrate_timer
    - vcpu_vrtc
    linkageType: ''
    returnType: void
    signature: void rtc_migrate_timers(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:749,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:752,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:755,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:757,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 761
    functionName: rtc_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - hvm_save_entry
    - spin_lock
    - domain_vrtc
    - has_vrtc
    linkageType: ''
    returnType: int
    signature: int rtc_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:766,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:768,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:771,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:774,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:776,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:785,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:788,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:788,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:789,1
    - Dst: rtc_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:792,1
    - Dst: check_update_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:793,1
    - Dst: alarm_timer_update
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:794,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:796,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 799
    functionName: rtc_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - rtc_timer_update
    - spin_unlock
    - gmtime
    - check_update_timer
    - update_domain_wallclock_time
    - spin_lock
    - domain_vrtc
    - get_localtime
    - hvm_load_entry_zeroextend
    - rtc_copy_date
    - has_vrtc
    - alarm_timer_update
    linkageType: ''
    returnType: int
    signature: int rtc_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:805,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:807,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:810,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 814
    functionName: rtc_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - has_vrtc
    - domain_vrtc
    - TRACE_TIME
    - destroy_periodic_time
    linkageType: ''
    returnType: void
    signature: void rtc_reset(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:825,1
    - Dst: rtc_guest_write
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:830,1
    - Dst: rtc_guest_read
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - dir
    - port
    - size
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 835
    functionName: hw_rtc_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - rtc_guest_read
    - rtc_guest_write
    linkageType: ''
    returnType: int
    signature: "int hw_rtc_io(\n    int dir, unsigned int port, unsigned int size,
      uint32_t *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:839,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:841,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:845,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:852,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:852,1
    - Dst: is_cmos_port
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:853,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:854,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:859,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:861,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:861,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:862,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:862,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:863,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:863,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:865,1
    - Dst: RTC_PORT
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:865,1
    - Dst: rtc_reset
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:867,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:869,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:876,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:876,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:877,1
    - Dst: rtc_copy_date
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:879,1
    - Dst: check_update_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:881,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 883
    functionName: rtc_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - init_timer
    - gmtime
    - check_update_timer
    - smp_processor_id
    - RTC_PORT
    - spin_lock_init
    - is_cmos_port
    - domain_vrtc
    - spin_lock
    - get_localtime
    - register_portio_handler
    - rtc_copy_date
    - has_vrtc
    - rtc_reset
    - is_hardware_domain
    - NOW
    linkageType: ''
    returnType: void
    signature: void rtc_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:887,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:889,1
    - Dst: spin_barrier
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:893,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:895,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:896,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:897,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:898,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 900
    functionName: rtc_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - spin_barrier
    - kill_timer
    - domain_vrtc
    - destroy_periodic_time
    - has_vrtc
    linkageType: ''
    returnType: void
    signature: void rtc_deinit(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:904,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:906,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:909,1
    - Dst: gmtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:910,1
    - Dst: get_localtime
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:910,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/rtc.c:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 912
    functionName: rtc_update_clock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/rtc.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - gmtime
    - spin_lock
    - get_localtime
    - domain_vrtc
    - has_vrtc
    linkageType: ''
    returnType: void
    signature: void rtc_update_clock(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_memory_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:33,1
    - Dst: compat_memory_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: hvm_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hypercall.c
    functionUses: 0
    functionsReached:
    - do_memory_op
    - compat_memory_op
    linkageType: ''
    returnType: long
    signature: long hvm_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: do_grant_table_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:61,1
    - Dst: compat_grant_table_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 64
    functionName: hvm_grant_table_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hypercall.c
    functionUses: 0
    functionsReached:
    - do_grant_table_op
    - compat_grant_table_op
    linkageType: ''
    returnType: long
    signature: "long hvm_grant_table_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      uop, unsigned int count)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: has_pirq
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:81,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:91,1
    - Dst: do_physdev_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:100,1
    - Dst: compat_physdev_op
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 103
    functionName: hvm_physdev_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hypercall.c
    functionUses: 0
    functionsReached:
    - compat_physdev_op
    - is_hardware_domain
    - do_physdev_op
    - has_pirq
    linkageType: ''
    returnType: long
    signature: long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:109,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:126,1
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:126,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:136,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:141,1
    - Dst: viridian_hypercall
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:143,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:145,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:154,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:160,1
    - Dst: call_handlers_hvm64
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:163,1
    - Dst: clobber_regs
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:167,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:171,1
    - Dst: call_handlers_hvm32
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:175,1
    - Dst: clobber_regs
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:180,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:183,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:185,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:187,1
    - Dst: ioreq_signal_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:190,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:193,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 196
    functionName: hvm_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hypercall.c
    functionUses: 0
    functionsReached:
    - call_handlers_hvm32
    - hvm_get_cpl
    - call_handlers_hvm64
    - perfc_incra
    - likely
    - ioreq_signal_mapcache_invalidate
    - hvmemul_cache_restore
    - HVM_DBG_LOG
    - clobber_regs
    - viridian_hypercall
    - unlikely
    - is_viridian_domain
    - hvm_guest_x86_mode
    - hvmemul_cache_disable
    linkageType: ''
    returnType: int
    signature: int hvm_hypercall(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:202,1
    - Dst: call_handlers_hvm64
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:206,1
    - Dst: call_handlers_hvm32
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:213,1
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/hypercall.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 218
    functionName: hvm_do_multicall_call
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hypercall.c
    functionUses: 1
    functionsReached:
    - call_handlers_hvm32
    - hvm_get_cpl
    - call_handlers_hvm64
    - hvm_guest_x86_mode
    linkageType: ''
    returnType: enum mc_disposition
    signature: enum mc_disposition hvm_do_multicall_call(struct mc_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: domain_vhpet
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_vhpet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: vcpu_vhpet
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_vhpet(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: vhpet_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vhpet_domain(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: vhpet_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vhpet_vcpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hpet
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: guest_time_hpet
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_time_hpet(hpet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: HPET_TN
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPET_TN(reg, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - tick
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: hpet_tick_to_ns
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpet_tick_to_ns(h, tick)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: timer_config
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_config(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: timer_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_enabled(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: timer_is_periodic
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_is_periodic(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: timer_is_32bit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_is_32bit(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: hpet_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpet_enabled(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: timer_level
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_level(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: timer_is_legacy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_is_legacy(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: timer_int_route
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_int_route(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: timer_int_route_cap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_int_route_cap(h, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: timer_int_route_valid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_int_route_valid(h, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:65,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:65,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - guest_time
    argTypes:
    - HPETState*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: hpet_read_maincounter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - rw_is_locked
    - hpet_enabled
    - ASSERT
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hpet_read_maincounter(HPETState *h, uint64_t guest_time)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:79,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:79,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:82,1
    - Dst: timer_is_periodic
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:82,1
    - Dst: hpet_read_maincounter
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:88,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - h
    - tn
    - guest_time
    argTypes:
    - HPETState*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: hpet_get_comparator
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_enabled
    - hpet_read_maincounter
    - rw_is_write_locked
    - ASSERT
    - timer_is_32bit
    - timer_is_periodic
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hpet_get_comparator(HPETState *h, unsigned int tn,\n                                    uint64_t
      guest_time)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hpet_read_maincounter
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:117,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:118,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:119,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:120,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:121,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:121,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:122,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:123,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:124,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:125,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:126,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:126,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:127,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:129,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:130,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:131,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:132,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 3
    argNames:
    - h
    - addr
    - guest_time
    argTypes:
    - HPETState*
    - unsigned long
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 136
    functionName: hpet_read64
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_get_comparator
    - array_index_nospec
    - hpet_read_maincounter
    - ARRAY_SIZE
    - array_access_nospec
    - HPET_Tn_CMP
    - HPET_Tn_ROUTE
    - HPET_TN
    - HPET_Tn_CFG
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hpet_read64(HPETState *h, unsigned long addr,\n                                   uint64_t
      guest_time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - len
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 154
    functionName: hpet_check_access_length
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - gdprintk
    linkageType: ''
    returnType: int
    signature: "int hpet_check_access_length(\n    unsigned long addr, unsigned long
      len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:160,1
    - Dst: hpet_check_access_length
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:172,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:178,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:179,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:179,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:179,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:181,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:183,1
    - Dst: hpet_read64
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:185,1
    - Dst: guest_time_hpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:185,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:188,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - v
    - addr
    - length
    - pval
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 199
    functionName: hpet_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - vcpu_vhpet
    - read_unlock
    - write_unlock
    - hpet_read64
    - hpet_check_access_length
    - guest_time_hpet
    - HPET_Tn_CMP
    - write_lock
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int hpet_read(\n    struct vcpu *v, unsigned long addr, unsigned int
      length,\n    unsigned long *pval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:204,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:205,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:205,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:206,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:207,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - h
    - tn
    - guest_time
    argTypes:
    - HPETState*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: hpet_stop_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_get_comparator
    - rw_is_write_locked
    - TRACE_TIME
    - ASSERT
    - destroy_periodic_time
    linkageType: ''
    returnType: void
    signature: "void hpet_stop_timer(HPETState *h, unsigned int tn,\n                            uint64_t
      guest_time)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:216,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:218,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:219,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:220,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: hpet_timer_fired
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - vcpu_vhpet
    - write_unlock
    - __test_and_set_bit
    - write_lock
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hpet_timer_fired(struct vcpu *v, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:236,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:237,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:237,1
    - Dst: pit_stop_channel0_irq
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:243,1
    - Dst: vhpet_domain
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:243,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:246,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:247,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:247,1
    - Dst: timer_int_route_valid
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:250,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:252,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:256,1
    - Dst: hpet_read_maincounter
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:257,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:258,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:275,1
    - Dst: vhpet_domain
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:276,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:280,1
    - Dst: timer_is_legacy
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:281,1
    - Dst: timer_int_route
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:291,1
    - Dst: timer_is_periodic
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:305,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:305,1
    - Dst: hpet_tick_to_ns
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:306,1
    - Dst: hpet_tick_to_ns
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:308,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:310,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:313,1
    - Dst: vhpet_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:313,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:314,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:315,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:316,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - h
    - tn
    - guest_time
    argTypes:
    - HPETState*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 317
    functionName: hpet_set_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - TRACE_TIME
    - vhpet_domain
    - destroy_periodic_time
    - timer_is_periodic
    - hpet_get_comparator
    - timer_int_route_valid
    - hpet_read_maincounter
    - timer_level
    - timer_is_legacy
    - timer_int_route
    - vhpet_vcpu
    - test_bit
    - timer_enabled
    - ASSERT
    - timer_is_32bit
    - ASSERT_UNREACHABLE
    - pit_stop_channel0_irq
    - create_periodic_time
    - hpet_tick_to_ns
    linkageType: ''
    returnType: void
    signature: "void hpet_set_timer(HPETState *h, unsigned int tn,\n                           uint64_t
      guest_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask::mask
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:322,1
    - Dst: old::old
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - new
    - old
    - mask
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: hpet_fixup_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - old::old
    - mask::mask
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hpet_fixup_reg(\n    uint64_t new, uint64_t old, uint64_t
      mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_int_route_valid
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:329,1
    - Dst: timer_config
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:332,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:333,1
    - Dst: timer_config
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:340,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:341,1
    - Dst: ffs
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:341,1
    - Dst: timer_int_route_cap
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - h
    - tn
    argTypes:
    - HPETState*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 343
    functionName: timer_sanitize_int_route
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - timer_int_route_valid
    - MASK_INSR
    - timer_config
    - timer_enabled
    - ffs
    - timer_int_route_cap
    linkageType: ''
    returnType: void
    signature: void timer_sanitize_int_route(HPETState *h, unsigned int tn)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:349,1
    - Dst: hpet_check_access_length
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:366,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:369,1
    - Dst: guest_time_hpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:371,1
    - Dst: hpet_read64
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:372,1
    - Dst: hpet_fixup_reg
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:375,1
    - Dst: hpet_fixup_reg
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:382,1
    - Dst: timer_sanitize_int_route
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:391,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:403,1
    - Dst: set_start_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:404,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:412,1
    - Dst: set_stop_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:413,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:424,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:427,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:428,1
    - Dst: hvm_ioapic_deassert
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:431,1
    - Dst: timer_int_route
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:431,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:432,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:432,1
    - Dst: timer_level
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:433,1
    - Dst: timer_is_periodic
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:433,1
    - Dst: set_start_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:434,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:441,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:443,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:446,1
    - Dst: set_restart_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:447,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:451,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:452,1
    - Dst: HPET_Tn_CFG
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:453,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:454,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:454,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:454,1
    - Dst: hpet_fixup_reg
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:457,1
    - Dst: timer_sanitize_int_route
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:462,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:469,1
    - Dst: set_restart_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:477,1
    - Dst: set_restart_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:482,1
    - Dst: set_start_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:485,1
    - Dst: set_stop_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:489,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:493,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:494,1
    - Dst: HPET_Tn_CMP
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:495,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:496,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:496,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:496,1
    - Dst: timer_is_periodic
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:497,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:500,1
    - Dst: hpet_tick_to_ns
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:507,1
    - Dst: MICROSECS
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:507,1
    - Dst: MICROSECS
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:508,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:528,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:532,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:532,1
    - Dst: set_restart_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:533,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:536,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:537,1
    - Dst: HPET_Tn_ROUTE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:538,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:539,1
    - Dst: HPET_TN
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:539,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:550,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:551,1
    - Dst: hpet_stop_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:552,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:557,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:558,1
    - Dst: hpet_set_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:559,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:566,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 123
    argCount: 4
    argNames:
    - v
    - addr
    - length
    - val
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 570
    functionName: hpet_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - HPET_Tn_CMP
    - MICROSECS
    - timer_is_periodic
    - hpet_stop_timer
    - timer_level
    - ffsl
    - ARRAY_SIZE
    - hvm_ioapic_deassert
    - __test_and_clear_bit
    - timer_int_route
    - set_stop_timer
    - HPET_Tn_CFG
    - timer_sanitize_int_route
    - vcpu_vhpet
    - hpet_enabled
    - gdprintk
    - hpet_set_timer
    - write_unlock
    - hpet_fixup_reg
    - timer_enabled
    - set_start_timer
    - hpet_check_access_length
    - timer_is_32bit
    - write_lock
    - array_index_nospec
    - __clear_bit
    - array_access_nospec
    - hpet_read64
    - guest_time_hpet
    - hpet_tick_to_ns
    - set_restart_timer
    - HPET_Tn_ROUTE
    - HPET_TN
    linkageType: ''
    returnType: int
    signature: "int hpet_write(\n    struct vcpu *v, unsigned long addr,\n    unsigned
      int length, unsigned long val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: set_stop_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_stop_timer(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: set_start_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_start_timer(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: set_restart_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_restart_timer(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: hpet_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hpet_range(struct vcpu *v, unsigned long addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:588,1
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:592,1
    - Dst: pt_global_vcpu_target
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:595,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:596,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:597,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:601,1
    - Dst: _hvm_init_entry
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:605,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:605,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:605,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:609,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:610,1
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:610,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:612,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:613,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:614,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:615,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:616,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:617,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:618,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:619,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:620,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:621,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:622,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:623,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:624,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:630,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:631,1
    - Dst: hpet_get_comparator
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:632,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 646
    functionName: hpet_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - _hvm_init_entry
    - hpet_get_comparator
    - hpet_enabled
    - hvm_get_guest_time
    - write_unlock
    - memset
    - C
    - HVM_SAVE_LENGTH
    - domain_vhpet
    - pt_global_vcpu_target
    - write_lock
    - HVM_SAVE_CODE
    - has_vhpet
    linkageType: ''
    returnType: int
    signature: int hpet_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 612
    functionName: C
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 304
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: domain_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:650,1
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:656,1
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:660,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:664,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:667,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:668,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:669,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:670,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:676,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:677,1
    - Dst: C
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:678,1
    - Dst: timer_is_32bit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:683,1
    - Dst: timer_sanitize_int_route
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:686,1
    - Dst: guest_time_hpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:691,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:696,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:698,1
    - Dst: hpet_set_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:699,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:701,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 704
    functionName: hpet_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_enabled
    - hpet_set_timer
    - write_unlock
    - timer_enabled
    - guest_time_hpet
    - hvm_get_entry
    - C
    - domain_vhpet
    - timer_is_32bit
    - write_lock
    - timer_sanitize_int_route
    - has_vhpet
    linkageType: ''
    returnType: int
    signature: int hpet_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 667
    functionName: C
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 305
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:712,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - h
    argTypes:
    - HPETState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 737
    functionName: hpet_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - memset
    - rwlock_init
    linkageType: ''
    returnType: void
    signature: void hpet_set(HPETState *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:741,1
    - Dst: hpet_set
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:744,1
    - Dst: domain_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:744,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: hpet_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - domain_vhpet
    - hpet_set
    - register_mmio_handler
    - has_vhpet
    linkageType: ''
    returnType: void
    signature: void hpet_init(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:752,1
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:754,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:757,1
    - Dst: hpet_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:759,1
    - Dst: guest_time_hpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:761,1
    - Dst: timer_enabled
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:764,1
    - Dst: hpet_stop_timer
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:765,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 771
    functionName: hpet_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - hpet_enabled
    - hpet_stop_timer
    - write_unlock
    - timer_enabled
    - guest_time_hpet
    - domain_vhpet
    - write_lock
    - has_vhpet
    linkageType: ''
    returnType: void
    signature: void hpet_deinit(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:775,1
    - Dst: hpet_deinit
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:778,1
    - Dst: hpet_set
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:779,1
    - Dst: domain_vhpet
      Src: /src/xen/xen/arch/x86/hvm/hpet.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 5
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: hpet_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hpet.c
    functionUses: 0
    functionsReached:
    - domain_vhpet
    - hpet_set
    - hpet_deinit
    - has_vhpet
    linkageType: ''
    returnType: void
    signature: void hpet_reset(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_add_page
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:29,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - addr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 35
    functionName: create_grant_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/hvm/grant_table.c
    functionUses: 0
    functionsReached:
    - _gfn
    - p2m_add_page
    linkageType: ''
    returnType: int
    signature: "int create_grant_p2m_mapping(uint64_t addr, mfn_t frame,\n                             unsigned
      int flags,\n                             unsigned int cache_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:48,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:49,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:49,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:51,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:52,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:54,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:54,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:57,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:57,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:59,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/grant_table.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - addr
    - frame
    - new_addr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: replace_grant_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/hvm/grant_table.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - put_gfn
    - mfn_x
    - _gfn
    - p2m_is_grant
    - mfn_eq
    - p2m_remove_page
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: "int replace_grant_p2m_mapping(uint64_t addr, mfn_t frame,\n                              uint64_t
      new_addr, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:16,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:16,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:18,1
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: subpage_mmio_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mmio.c
    functionUses: 0
    functionsReached:
    - subpage_mmio_find_page
    - mfn_eq
    - get_gfn_query_unlocked
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int subpage_mmio_accept(struct vcpu *v, unsigned long addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:31,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:39,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:41,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:46,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:47,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:49,1
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:53,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:56,1
    - Dst: subpage_mmio_map_page
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:60,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:63,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:64,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:66,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:66,1
    - Dst: read_mmio
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:70,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:70,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:72,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 74
    functionName: subpage_mmio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mmio.c
    functionUses: 0
    functionsReached:
    - subpage_mmio_map_page
    - mfn_to_maddr
    - put_gfn
    - IS_ALIGNED
    - read_mmio
    - gprintk
    - PAGE_OFFSET
    - mfn_eq
    - PFN_DOWN
    - subpage_mmio_find_page
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: "int subpage_mmio_read(\n    struct vcpu *v, unsigned long addr, unsigned
      int len, unsigned long *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:80,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:84,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:86,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:91,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:92,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:94,1
    - Dst: subpage_mmio_write_emulate
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:98,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:98,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: subpage_mmio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mmio.c
    functionUses: 0
    functionsReached:
    - put_gfn
    - subpage_mmio_write_emulate
    - IS_ALIGNED
    - gprintk
    - PAGE_OFFSET
    - mfn_eq
    - PFN_DOWN
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: "int subpage_mmio_write(\n    struct vcpu *v, unsigned long addr, unsigned
      int len, unsigned long data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/x86/hvm/mmio.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: register_subpage_ro_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mmio.c
    functionUses: 0
    functionsReached:
    - register_mmio_handler
    linkageType: ''
    returnType: void
    signature: void register_subpage_ro_handler(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct dmi_system_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: dmi_hvm_deny_port80
    functionSourceFile: /src/xen/xen/arch/x86/hvm/quirks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int dmi_hvm_deny_port80(const struct dmi_system_id *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DMI_MATCH2
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:39,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:40,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:41,1
    - Dst: DMI_MATCH2
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:46,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:47,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:48,1
    - Dst: DMI_MATCH2
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:53,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:54,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:55,1
    - Dst: DMI_MATCH2
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:60,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:61,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:62,1
    - Dst: DMI_MATCH2
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:67,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:68,1
    - Dst: DMI_MATCH
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:69,1
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:74,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/quirks.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 80
    functionName: check_port80
    functionSourceFile: /src/xen/xen/arch/x86/hvm/quirks.c
    functionUses: 0
    functionsReached:
    - DMI_MATCH2
    - dmi_check_system
    - __set_bit
    - DMI_MATCH
    linkageType: ''
    returnType: int
    signature: int check_port80(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:53,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:60,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - target
    - vector
    - trig_mode
    - delivery_mode
    argTypes:
    - struct vlapic*
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: vmsi_inj_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - BUG
    - vlapic_set_irq
    - HVM_DBG_LOG
    linkageType: ''
    returnType: void
    signature: "void vmsi_inj_irq(\n    struct vlapic *target,\n    uint8_t vector,\n
      \   uint8_t trig_mode,\n    uint8_t delivery_mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_lowest_prio
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:78,1
    - Dst: vmsi_inj_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:81,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:84,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:89,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:91,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:92,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:93,1
    - Dst: vmsi_inj_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:94,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - d
    - vector
    - dest
    - dest_mode
    - delivery_mode
    - trig_mode
    argTypes:
    - struct domain*
    - int
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 106
    functionName: vmsi_deliver
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vlapic_match_dest
    - vlapic_lowest_prio
    - vmsi_inj_irq
    - vlapic_enabled
    - printk
    - vcpu_vlapic
    - HVM_DBG_LOG
    linkageType: ''
    returnType: int
    signature: "int vmsi_deliver(\n    struct domain *d, int vector,\n    uint8_t
      dest, uint8_t dest_mode,\n    uint8_t delivery_mode, uint8_t trig_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:114,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:117,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:122,1
    - Dst: vmsi_deliver
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - pirq_dpci
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: vmsi_deliver_pirq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - HVM_DBG_LOG
    - vmsi_deliver
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vmsi_deliver_pirq(struct domain *d, const struct hvm_pirq_dpci
      *pirq_dpci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:138,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - d
    - dest
    - dest_mode
    argTypes:
    - struct domain*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: hvm_girq_dest_2_vcpu_id
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - vlapic_match_dest
    linkageType: ''
    returnType: int
    signature: int hvm_girq_dest_2_vcpu_id(struct domain *d, uint8_t dest, uint8_t
      dest_mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:138,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 3
    functionsReached:
    - vcpu_vlapic
    - vlapic_match_dest
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - what
    - ','
    - ent
    - ','
    - slot
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: acc_bit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: acc_bit(what, ent, slot, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: msixtbl_initialised
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool msixtbl_initialised(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:193,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:194,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:194,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:195,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: msixtbl_find_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - PFN_DOWN
    linkageType: ''
    returnType: struct msixtbl_entry
    signature: "struct msixtbl_entry *msixtbl_find_entry(\n    struct vcpu *v, unsigned
      long addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - entry
    - addr
    argTypes:
    - struct msixtbl_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: msixtbl_addr_to_desc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct msi_desc
    signature: "struct msi_desc *msixtbl_addr_to_desc(\n    const struct msixtbl_entry
      *entry, unsigned long addr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:237,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:241,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:241,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:243,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:243,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:249,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:256,1
    - Dst: MSIX_CHECK_WARN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:262,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:264,1
    - Dst: MSIX_CHECK_WARN
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:277,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:279,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 3
    argNames:
    - entry
    - addr
    - write
    argTypes:
    - struct msixtbl_entry*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 287
    functionName: get_adjacent_idx
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - MSIX_CHECK_WARN
    - gprintk
    - ASSERT_UNREACHABLE
    - PFN_DOWN
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_adjacent_idx(\n    const struct msixtbl_entry *entry,
      unsigned long addr, bool write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:296,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:296,1
    - Dst: get_adjacent_idx
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:300,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:305,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:305,1
    - Dst: read_mmio
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - entry
    - address
    - len
    - pval
    argTypes:
    - struct msixtbl_entry*
    - paddr_t
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 308
    functionName: adjacent_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - get_adjacent_idx
    - fix_to_virt
    - IS_ALIGNED
    - read_mmio
    - ASSERT
    - PAGE_OFFSET
    linkageType: ''
    returnType: void
    signature: "void adjacent_read(\n    const struct msixtbl_entry *entry,\n    paddr_t
      address, unsigned int len, uint64_t *pval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:317,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:317,1
    - Dst: get_adjacent_idx
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:319,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:324,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:324,1
    - Dst: write_mmio
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - entry
    - address
    - len
    - val
    argTypes:
    - struct msixtbl_entry*
    - paddr_t
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: adjacent_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - get_adjacent_idx
    - write_mmio
    - fix_to_virt
    - IS_ALIGNED
    - ASSERT
    - PAGE_OFFSET
    linkageType: ''
    returnType: void
    signature: "void adjacent_write(\n    const struct msixtbl_entry *entry,\n    paddr_t
      address, unsigned int len, uint64_t val)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:338,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:341,1
    - Dst: msixtbl_find_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:343,1
    - Dst: adjacent_read
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:350,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:364,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:366,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:366,1
    - Dst: acc_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:367,1
    - Dst: acc_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:374,1
    - Dst: msixtbl_addr_to_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:382,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:387,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:390,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:396,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 4
    argNames:
    - handler
    - address
    - len
    - pval
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 398
    functionName: msixtbl_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - rcu_read_unlock
    - MASK_INSR
    - ARRAY_SIZE
    - IS_ALIGNED
    - adjacent_read
    - msixtbl_addr_to_desc
    - acc_bit
    - msixtbl_find_entry
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: "int msixtbl_read(\n    const struct hvm_io_handler *handler, uint64_t
      address, uint32_t len,\n    uint64_t *pval)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:411,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:414,1
    - Dst: msixtbl_find_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:416,1
    - Dst: adjacent_write
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:423,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:431,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:439,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:441,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:442,1
    - Dst: acc_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:444,1
    - Dst: acc_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:448,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:451,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:460,1
    - Dst: msixtbl_addr_to_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:466,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:470,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:474,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:479,1
    - Dst: guest_mask_msi_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:481,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:484,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:488,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 4
    argNames:
    - v
    - address
    - len
    - val
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 490
    functionName: msixtbl_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - adjacent_write
    - rcu_read_unlock
    - ARRAY_SIZE
    - irq_to_desc
    - test_and_clear_bit
    - spin_lock_irqsave
    - IS_ALIGNED
    - msixtbl_addr_to_desc
    - spin_unlock_irqrestore
    - ASSERT
    - acc_bit
    - guest_mask_msi_irq
    - msixtbl_find_entry
    - rcu_read_lock
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int msixtbl_write(struct vcpu *v, unsigned long address,\n                         unsigned
      int len, unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:497,1
    - Dst: msixtbl_write
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handler
    - address
    - len
    - val
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 507
    functionName: _msixtbl_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - msixtbl_write
    - IS_ALIGNED
    linkageType: ''
    returnType: int
    signature: "int _msixtbl_write(\n    const struct hvm_io_handler *handler, uint64_t
      address, uint32_t len,\n    uint64_t val)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:517,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:519,1
    - Dst: msixtbl_find_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:520,1
    - Dst: msixtbl_addr_to_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:525,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:527,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:542,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:566,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 28
    argCount: 2
    argNames:
    - handler
    - r
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 577
    functionName: msixtbl_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - msixtbl_addr_to_desc
    - BUILD_BUG_ON
    - ASSERT
    - msixtbl_find_entry
    - rcu_read_lock
    linkageType: ''
    returnType: bool
    signature: "bool msixtbl_range(\n    const struct hvm_io_handler *handler, const
      ioreq_t *r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:590,1
    - Dst: INIT_RCU_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:591,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:592,1
    - Dst: list_add_rcu
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - d
    - pdev
    - gtable
    - entry
    argTypes:
    - struct domain*
    - struct pci_dev*
    - uint64_t
    - struct msixtbl_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 599
    functionName: add_msixtbl_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - INIT_LIST_HEAD
    - INIT_RCU_HEAD
    - list_add_rcu
    linkageType: ''
    returnType: void
    signature: "void add_msixtbl_entry(struct domain *d,\n                              struct
      pci_dev *pdev,\n                              uint64_t gtable,\n                              struct
      msixtbl_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:605,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rcu
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 608
    functionName: free_msixtbl_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - xfree
    - container_of
    linkageType: ''
    returnType: void
    signature: void free_msixtbl_entry(struct rcu_head *rcu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del_rcu
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:612,1
    - Dst: call_rcu
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct msixtbl_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: del_msixtbl_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - call_rcu
    - list_del_rcu
    linkageType: ''
    returnType: void
    signature: void del_msixtbl_entry(struct msixtbl_entry *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:624,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:625,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:625,1
    - Dst: msixtbl_initialised
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:627,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:634,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:638,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:641,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:651,1
    - Dst: add_msixtbl_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:657,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:660,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:664,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:665,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - d
    - pirq
    - gtable
    argTypes:
    - struct domain*
    - struct pirq*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 685
    functionName: msixtbl_pt_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - xzalloc
    - rw_is_write_locked
    - pirq_spin_lock_irq_desc
    - msixtbl_initialised
    - add_msixtbl_entry
    - spin_unlock_irq
    - ASSERT
    - atomic_inc
    - xfree
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int msixtbl_pt_register(struct domain *d, struct pirq *pirq, uint64_t
      gtable)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 681
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:694,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:695,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:695,1
    - Dst: msixtbl_initialised
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:697,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:700,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:710,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:715,1
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:719,1
    - Dst: del_msixtbl_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:720,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:722,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 723
    functionName: msixtbl_pt_unregister
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - rw_is_write_locked
    - pirq_spin_lock_irq_desc
    - msixtbl_initialised
    - spin_unlock_irq
    - ASSERT
    - atomic_dec_and_test
    - del_msixtbl_entry
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void msixtbl_pt_unregister(struct domain *d, struct pirq *pirq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:729,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:729,1
    - Dst: msixtbl_initialised
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:729,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:732,1
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 740
    functionName: msixtbl_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - hvm_next_io_handler
    - msixtbl_initialised
    - has_vlapic
    - INIT_LIST_HEAD
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void msixtbl_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msixtbl_initialised
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:746,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:749,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:751,1
    - Dst: del_msixtbl_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:753,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: msixtbl_pt_cleanup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - msixtbl_initialised
    - write_unlock
    - list_for_each_entry_safe
    - del_msixtbl_entry
    - write_lock
    linkageType: ''
    returnType: void
    signature: void msixtbl_pt_cleanup(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:768,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:772,1
    - Dst: msixtbl_addr_to_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:773,1
    - Dst: msixtbl_find_entry
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:773,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:775,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:778,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:784,1
    - Dst: msixtbl_write
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:791,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:792,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 793
    functionName: msix_write_completion
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - hvm_copy_from_guest_phys
    - gdprintk
    - rcu_read_unlock
    - msixtbl_write
    - msixtbl_addr_to_desc
    - hvmemul_cache_restore
    - msixtbl_find_entry
    - rcu_read_lock
    - hvmemul_cache_disable
    linkageType: ''
    returnType: void
    signature: void msix_write_completion(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:803,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:803,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:805,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:805,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:807,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:807,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:809,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:809,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:811,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - addr
    - masked
    argTypes:
    - uint16_t
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 815
    functionName: msi_gflags
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int msi_gflags(uint16_t data, uint64_t addr, bool masked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:820,1
    - Dst: guest_mask_msi_irq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:824,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - d
    - pirq
    - mask
    argTypes:
    - struct domain*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 826
    functionName: vpci_mask_pirq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - guest_mask_msi_irq
    - domain_spin_lock_irq_desc
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void vpci_mask_pirq(struct domain *d, int pirq, bool mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_mask_pirq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - msi
    - pdev
    - entry
    - mask
    argTypes:
    - struct vpci_msi*
    - struct pci_dev*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 4
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: vpci_msi_arch_mask
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - vpci_mask_pirq
    linkageType: ''
    returnType: void
    signature: "void vpci_msi_arch_mask(struct vpci_msi *msi, const struct pci_dev
      *pdev,\n                        unsigned int entry, bool mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:840,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:844,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:851,1
    - Dst: fls
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:852,1
    - Dst: msi_gflags
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:858,1
    - Dst: pt_irq_create_bind
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:860,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:864,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - pdev
    - data
    - address
    - vectors
    - pirq
    - mask
    argTypes:
    - struct pci_dev*
    - uint32_t
    - uint64_t
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 873
    functionName: vpci_msi_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - fls
    - gdprintk
    - pt_irq_destroy_bind
    - msi_gflags
    - pt_irq_create_bind
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int vpci_msi_update(const struct pci_dev *pdev, uint32_t data,\n                           uint64_t
      address, unsigned int vectors,\n                           unsigned int pirq,
      uint32_t mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:880,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:881,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:890,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:893,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:894,1
    - Dst: vpci_msi_update
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msi
    - pdev
    argTypes:
    - struct vpci_msi*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 901
    functionName: vpci_msi_arch_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - vpci_msi_update
    - pt_irq_destroy_bind
    - ASSERT
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev
      *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: allocate_and_map_msi_pirq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:914,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdev
    - nr
    - table_base
    argTypes:
    - struct pci_dev*
    - unsigned int
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 903
    functionDepth: 6
    functionLinenumber: 903
    functionLinenumberEnd: 925
    functionName: vpci_msi_enable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - allocate_and_map_msi_pirq
    linkageType: ''
    returnType: int
    signature: "int vpci_msi_enable(const struct pci_dev *pdev, unsigned int nr,\n
      \                          paddr_t table_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:932,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:933,1
    - Dst: vpci_msi_enable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:934,1
    - Dst: vpci_msi_update
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - msi
    - pdev
    - vectors
    argTypes:
    - struct vpci_msi*
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 927
    functionDepth: 7
    functionLinenumber: 927
    functionLinenumberEnd: 943
    functionName: vpci_msi_arch_enable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - ASSERT
    - vpci_msi_enable
    - vpci_msi_update
    linkageType: ''
    returnType: int
    signature: "int vpci_msi_arch_enable(struct vpci_msi *msi, const struct pci_dev
      *pdev,\n                         unsigned int vectors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:950,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:951,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:961,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:962,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:965,1
    - Dst: unmap_domain_pirq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:966,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pdev
    - pirq
    - nr
    - bound
    argTypes:
    - struct pci_dev*
    - int
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 945
    functionDepth: 4
    functionLinenumber: 945
    functionLinenumberEnd: 968
    functionName: vpci_msi_disable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - write_unlock
    - pt_irq_destroy_bind
    - unmap_domain_pirq
    - ASSERT
    - write_lock
    linkageType: ''
    returnType: void
    signature: "void vpci_msi_disable(const struct pci_dev *pdev, int pirq,\n                             unsigned
      int nr, bool bound)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_msi_disable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msi
    - pdev
    argTypes:
    - struct vpci_msi*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 970
    functionDepth: 5
    functionLinenumber: 970
    functionLinenumberEnd: 974
    functionName: vpci_msi_arch_disable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - vpci_msi_disable
    linkageType: ''
    returnType: void
    signature: void vpci_msi_arch_disable(struct vpci_msi *msi, const struct pci_dev
      *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msi
    argTypes:
    - struct vpci_msi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 979
    functionName: vpci_msi_arch_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpci_msi_arch_init(struct vpci_msi *msi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:983,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:984,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msi
    argTypes:
    - struct vpci_msi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 992
    functionName: vpci_msi_arch_print
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - printk
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vpci_msi_arch_print(const struct vpci_msi *msi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpci_mask_pirq
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - entry
    - pdev
    - mask
    argTypes:
    - struct vpci_msix_entry*
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 994
    functionDepth: 4
    functionLinenumber: 994
    functionLinenumberEnd: 999
    functionName: vpci_msix_arch_mask_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - vpci_mask_pirq
    linkageType: ''
    returnType: void
    signature: "void vpci_msix_arch_mask_entry(struct vpci_msix_entry *entry,\n                               const
      struct pci_dev *pdev, bool mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1006,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1007,1
    - Dst: vpci_msi_enable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1008,1
    - Dst: vmsix_entry_nr
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1008,1
    - Dst: vpci_msi_update
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1015,1
    - Dst: vpci_msi_disable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - entry
    - pdev
    - table_base
    argTypes:
    - struct vpci_msix_entry*
    - struct pci_dev*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1001
    functionDepth: 7
    functionLinenumber: 1001
    functionLinenumberEnd: 1024
    functionName: vpci_msix_arch_enable_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - vpci_msi_enable
    - vpci_msi_update
    - ASSERT
    - vmsix_entry_nr
    - vpci_msi_disable
    linkageType: ''
    returnType: int
    signature: "int vpci_msix_arch_enable_entry(struct vpci_msix_entry *entry,\n                                const
      struct pci_dev *pdev, paddr_t table_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpci_msi_disable
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - entry
    - pdev
    argTypes:
    - struct vpci_msix_entry*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1036
    functionName: vpci_msix_arch_disable_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - vpci_msi_disable
    linkageType: ''
    returnType: int
    signature: "int vpci_msix_arch_disable_entry(struct vpci_msix_entry *entry,\n
      \                                const struct pci_dev *pdev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct vpci_msix_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1041
    functionName: vpci_msix_arch_init_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpci_msix_arch_init_entry(struct vpci_msix_entry *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1053,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1053,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1054,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1054,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1060,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1061,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1067,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1073,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1074,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1075,1
    - Dst: read_trylock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1077,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1081,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1083,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1089,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmsi.c:1090,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - msix
    argTypes:
    - struct vpci_msix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1097
    functionName: vpci_msix_arch_print
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmsi.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - read_unlock
    - spin_is_locked
    - ASSERT
    - process_pending_softirqs
    - spin_trylock
    - printk
    - rw_is_locked
    - read_trylock
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int vpci_msix_arch_print(const struct vpci_msix *msix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/irq.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: hvm_domain_use_pirq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - is_hvm_domain
    linkageType: ''
    returnType: bool
    signature: bool hvm_domain_use_pirq(const struct domain *d, const struct pirq
      *pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:29,1
    - Dst: domain_emuirq_to_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:29,1
    - Dst: hvm_domain_use_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:31,1
    - Dst: send_guest_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:33,1
    - Dst: vioapic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ioapic_gsi
    argTypes:
    - struct domain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: assert_gsi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - domain_emuirq_to_pirq
    - hvm_domain_use_pirq
    - pirq_info
    - vioapic_irq_positive_edge
    - send_guest_pirq
    linkageType: ''
    returnType: void
    signature: void assert_gsi(struct domain *d, unsigned ioapic_gsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:41,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:46,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:50,1
    - Dst: assert_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:52,1
    - Dst: vioapic_get_vector
      Src: /src/xen/xen/arch/x86/hvm/irq.c:53,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - d
    - gsi
    - level
    argTypes:
    - struct domain*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 57
    functionName: hvm_ioapic_assert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vioapic_get_vector
    - spin_lock
    - ASSERT_UNREACHABLE
    - hvm_domain_irq
    - assert_gsi
    linkageType: ''
    returnType: int
    signature: int hvm_ioapic_assert(struct domain *d, unsigned int gsi, bool level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:61,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:65,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:69,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: hvm_ioapic_deassert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - ASSERT_UNREACHABLE
    - spin_unlock
    - hvm_domain_irq
    linkageType: ''
    returnType: void
    signature: void hvm_ioapic_deassert(struct domain *d, unsigned int gsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:76,1
    - Dst: vpic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - ioapic_gsi
    - pic_irq
    argTypes:
    - struct domain*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: assert_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - vpic_irq_positive_edge
    - assert_gsi
    linkageType: ''
    returnType: void
    signature: void assert_irq(struct domain *d, unsigned ioapic_gsi, unsigned pic_irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:84,1
    - Dst: domain_emuirq_to_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:84,1
    - Dst: hvm_domain_use_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:86,1
    - Dst: vpic_irq_negative_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - isa_irq
    argTypes:
    - struct domain*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: deassert_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - pirq_info
    - domain_emuirq_to_pirq
    - hvm_domain_use_pirq
    - vpic_irq_negative_edge
    linkageType: ''
    returnType: void
    signature: void deassert_irq(struct domain *d, unsigned isa_irq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:93,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:96,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:98,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:101,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:104,1
    - Dst: assert_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:108,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/arch/x86/hvm/irq.c:110,1
    - Dst: assert_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - d
    - device
    - intx
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 115
    functionName: __hvm_pci_intx_assert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - assert_gsi
    - assert_irq
    - hvm_pci_intx_gsi
    - hvm_pci_intx_link
    - ASSERT
    - hvm_domain_irq
    - __test_and_set_bit
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void __hvm_pci_intx_assert(\n    struct domain *d, unsigned int device,
      unsigned int intx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:120,1
    - Dst: __hvm_pci_intx_assert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:121,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - device
    - intx
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: hvm_pci_intx_assert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - spin_unlock
    - __hvm_pci_intx_assert
    linkageType: ''
    returnType: void
    signature: "void hvm_pci_intx_assert(\n    struct domain *d, unsigned int device,
      unsigned int intx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:128,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:131,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:133,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:136,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:139,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/arch/x86/hvm/irq.c:144,1
    - Dst: deassert_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - d
    - device
    - intx
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: __hvm_pci_intx_deassert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_pci_intx_gsi
    - hvm_pci_intx_link
    - ASSERT
    - deassert_irq
    - __test_and_clear_bit
    - hvm_domain_irq
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void __hvm_pci_intx_deassert(\n    struct domain *d, unsigned int
      device, unsigned int intx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:154,1
    - Dst: __hvm_pci_intx_deassert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:155,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - device
    - intx
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: hvm_pci_intx_deassert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 1
    functionsReached:
    - __hvm_pci_intx_deassert
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void hvm_pci_intx_deassert(\n    struct domain *d, unsigned int device,
      unsigned int intx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vioapic_get_trigger_mode
      Src: /src/xen/xen/arch/x86/hvm/irq.c:161,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:162,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:166,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:178,1
    - Dst: assert_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:183,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: hvm_gsi_assert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vioapic_get_trigger_mode
    - spin_lock
    - ASSERT_UNREACHABLE
    - hvm_domain_irq
    - assert_gsi
    linkageType: ''
    returnType: void
    signature: void hvm_gsi_assert(struct domain *d, unsigned int gsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vioapic_get_trigger_mode
      Src: /src/xen/xen/arch/x86/hvm/irq.c:190,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:191,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:195,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:199,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 202
    functionName: hvm_gsi_deassert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vioapic_get_trigger_mode
    - ASSERT
    - spin_lock
    - hvm_domain_irq
    linkageType: ''
    returnType: void
    signature: void hvm_gsi_deassert(struct domain *d, unsigned int gsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:208,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:209,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:212,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:214,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:216,1
    - Dst: assert_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:218,1
    - Dst: get_vector
      Src: /src/xen/xen/arch/x86/hvm/irq.c:221,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - isa_irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: hvm_isa_irq_assert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - assert_irq
    - get_vector
    - ASSERT
    - hvm_isa_irq_to_gsi
    - spin_lock
    - hvm_domain_irq
    - __test_and_set_bit
    linkageType: ''
    returnType: int
    signature: "int hvm_isa_irq_assert(struct domain *d, unsigned int isa_irq,\n                       int
      (*get_vector)(const struct domain *d,\n                                         unsigned
      int gsi))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:231,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:232,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:234,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:236,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:238,1
    - Dst: deassert_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:240,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - isa_irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: hvm_isa_irq_deassert
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - ASSERT
    - hvm_isa_irq_to_gsi
    - spin_lock
    - deassert_irq
    - __test_and_clear_bit
    - hvm_domain_irq
    linkageType: ''
    returnType: void
    signature: "void hvm_isa_irq_deassert(\n    struct domain *d, unsigned int isa_irq)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:248,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/irq.c:251,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:253,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:256,1
    - Dst: vioapic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:268,1
    - Dst: vpic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:270,1
    - Dst: vpic_irq_negative_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:275,1
    - Dst: __hvm_pci_intx_assert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:282,1
    - Dst: __hvm_pci_intx_deassert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:284,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:291,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 245
    functionDepth: 5
    functionLinenumber: 245
    functionLinenumberEnd: 292
    functionName: hvm_set_callback_irq_level
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - __hvm_pci_intx_deassert
    - spin_unlock
    - vpic_irq_positive_edge
    - __hvm_pci_intx_assert
    - vioapic_irq_positive_edge
    - ASSERT
    - spin_lock
    - hvm_domain_irq
    - vpic_irq_negative_edge
    linkageType: ''
    returnType: void
    signature: void hvm_set_callback_irq_level(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:297,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:300,1
    - Dst: hvm_set_callback_irq_level
      Src: /src/xen/xen/arch/x86/hvm/irq.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: hvm_maybe_deassert_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - hvm_set_callback_irq_level
    - hvm_domain_irq
    linkageType: ''
    returnType: void
    signature: void hvm_maybe_deassert_evtchn_irq(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/irq.c:306,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:306,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/irq.c:306,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/arch/x86/hvm/irq.c:308,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:314,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/irq.c:316,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:317,1
    - Dst: is_hvm_pv_evtchn_domain
      Src: /src/xen/xen/arch/x86/hvm/irq.c:319,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/irq.c:320,1
    - Dst: hvm_set_callback_irq_level
      Src: /src/xen/xen/arch/x86/hvm/irq.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 304
    functionDepth: 6
    functionLinenumber: 304
    functionLinenumberEnd: 323
    functionName: hvm_assert_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 1
    functionsReached:
    - tasklet_schedule
    - unlikely
    - vcpu_kick
    - is_hvm_pv_evtchn_domain
    - hvm_set_callback_irq_level
    - vlapic_enabled
    - in_irq
    - vcpu_vlapic
    - vlapic_set_irq
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void hvm_assert_evtchn_irq(struct vcpu *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:327,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:334,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:345,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:349,1
    - Dst: vpic_irq_negative_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:357,1
    - Dst: vioapic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:361,1
    - Dst: vpic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:362,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:366,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:368,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - d
    - link
    - isa_irq
    argTypes:
    - struct domain*
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 372
    functionName: hvm_set_pci_link_route
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vpic_irq_positive_edge
    - vioapic_irq_positive_edge
    - spin_lock
    - clear_bit
    - hvm_domain_irq
    - dprintk
    - vpic_irq_negative_edge
    - set_bit
    linkageType: ''
    returnType: int
    signature: int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:391,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:398,1
    - Dst: map_domain_emuirq_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:399,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:400,1
    - Dst: pirq_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:403,1
    - Dst: send_guest_pirq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:409,1
    - Dst: vmsi_deliver
      Src: /src/xen/xen/arch/x86/hvm/irq.c:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - d
    - addr
    - data
    argTypes:
    - struct domain*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 416
    functionName: hvm_inject_msi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - write_unlock
    - map_domain_emuirq_pirq
    - pirq_info
    - vmsi_deliver
    - write_lock
    - send_guest_pirq
    linkageType: ''
    returnType: int
    signature: int hvm_inject_msi(struct domain *d, uint64_t addr, uint32_t data)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:420,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/irq.c:425,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:431,1
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:431,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:431,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:434,1
    - Dst: vpic_irq_negative_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:445,1
    - Dst: __hvm_pci_intx_deassert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:450,1
    - Dst: vioapic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:467,1
    - Dst: vpic_irq_positive_edge
      Src: /src/xen/xen/arch/x86/hvm/irq.c:469,1
    - Dst: __hvm_pci_intx_assert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:476,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:485,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/irq.c:487,1
    - Dst: is_vcpu_online
      Src: /src/xen/xen/arch/x86/hvm/irq.c:488,1
    - Dst: hvm_assert_evtchn_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:489,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:492,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:496,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:499,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:502,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:505,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 65
    argCount: 2
    argNames:
    - d
    - via
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 418
    functionDepth: 7
    functionLinenumber: 418
    functionLinenumberEnd: 509
    functionName: hvm_set_callback_via
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - __hvm_pci_intx_deassert
    - spin_unlock
    - for_each_vcpu
    - has_vlapic
    - has_vpic
    - hvm_assert_evtchn_irq
    - vpic_irq_positive_edge
    - __hvm_pci_intx_assert
    - has_vioapic
    - spin_lock
    - vioapic_irq_positive_edge
    - hvm_domain_irq
    - printk
    - is_vcpu_online
    - vpic_irq_negative_edge
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void hvm_set_callback_via(struct domain *d, uint64_t via)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hvm_sync_pir_to_irr
      Src: /src/xen/xen/arch/x86/hvm/irq.c:523,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/irq.c:525,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/irq.c:528,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/hvm/irq.c:532,1
    - Dst: hvm_intack_vector
      Src: /src/xen/xen/arch/x86/hvm/irq.c:533,1
    - Dst: vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/irq.c:535,1
    - Dst: hvm_intack_pic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:536,1
    - Dst: vlapic_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:538,1
    - Dst: hvm_intack_lapic
      Src: /src/xen/xen/arch/x86/hvm/irq.c:540,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 543
    functionName: hvm_vcpu_has_pending_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - hvm_intack_vector
    - hvm_sync_pir_to_irr
    - vlapic_has_pending_irq
    - hvm_intack_pic
    - unlikely
    - hvm_intack_lapic
    - vlapic_accept_pic_intr
    linkageType: ''
    returnType: struct hvm_intack
    signature: struct hvm_intack hvm_vcpu_has_pending_irq(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/hvm/irq.c:553,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/hvm/irq.c:557,1
    - Dst: vpic_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:561,1
    - Dst: vlapic_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:567,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 578
    functionName: hvm_vcpu_ack_pending_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - vpic_ack_pending_irq
    - test_and_clear_bool
    - vlapic_ack_pending_irq
    linkageType: ''
    returnType: struct hvm_intack
    signature: "struct hvm_intack hvm_vcpu_ack_pending_irq(\n    struct vcpu *v, struct
      hvm_intack intack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:582,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/irq.c:584,1
    - Dst: hvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/irq.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: hvm_local_events_need_delivery
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_interrupt_blocked
    - likely
    - hvm_vcpu_has_pending_irq
    linkageType: ''
    returnType: int
    signature: int hvm_local_events_need_delivery(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:592,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:594,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:595,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:602,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:615,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:617,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:618,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:620,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 628
    functionName: irq_dump
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - printk
    - hvm_domain_irq
    linkageType: ''
    returnType: void
    signature: void irq_dump(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:634,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:636,1
    - Dst: for_each_domain
      Src: /src/xen/xen/arch/x86/hvm/irq.c:638,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/irq.c:639,1
    - Dst: irq_dump
      Src: /src/xen/xen/arch/x86/hvm/irq.c:640,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: dump_irq_info
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - for_each_domain
    - printk
    - irq_dump
    - rcu_read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void dump_irq_info(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/hvm/irq.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 649
    functionName: dump_irq_info_key_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int dump_irq_info_key_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:655,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:659,1
    - Dst: __hvm_pci_intx_deassert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:672,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:675,1
    - Dst: __hvm_pci_intx_assert
      Src: /src/xen/xen/arch/x86/hvm/irq.c:678,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/irq.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 652
    functionDepth: 5
    functionLinenumber: 652
    functionLinenumberEnd: 683
    functionName: irq_save_pci
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - __hvm_pci_intx_deassert
    - spin_unlock
    - hvm_save_entry
    - __hvm_pci_intx_assert
    - spin_lock
    - hvm_domain_irq
    linkageType: ''
    returnType: int
    signature: int irq_save_pci(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:688,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 692
    functionName: irq_save_isa
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    - hvm_domain_irq
    linkageType: ''
    returnType: int
    signature: int irq_save_isa(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:697,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 701
    functionName: irq_save_link
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    - hvm_domain_irq
    linkageType: ''
    returnType: int
    signature: int irq_save_link(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:705,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:709,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:723,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:726,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/arch/x86/hvm/irq.c:729,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 734
    functionName: irq_load_pci
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_pci_intx_gsi
    - hvm_load_entry
    - hvm_pci_intx_link
    - hvm_domain_irq
    - test_bit
    linkageType: ''
    returnType: int
    signature: int irq_load_pci(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:738,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:742,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:747,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/irq.c:748,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/irq.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 752
    functionName: irq_load_isa
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - platform_legacy_irq
    - hvm_load_entry
    - hvm_isa_irq_to_gsi
    - hvm_domain_irq
    - test_bit
    linkageType: ''
    returnType: int
    signature: int irq_load_isa(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:757,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:763,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/irq.c:767,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/irq.c:770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 777
    functionName: irq_check_link
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - printk
    - hvm_get_entry
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int irq_check_link(const struct domain *d,\n                                   hvm_domain_context_t
      *h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/irq.c:781,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/irq.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 801
    functionName: irq_load_link
    functionSourceFile: /src/xen/xen/arch/x86/hvm/irq.c
    functionUses: 0
    functionsReached:
    - hvm_load_entry
    - hvm_domain_irq
    linkageType: ''
    returnType: int
    signature: int irq_load_link(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: vpic_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpic_domain(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: __vpic_lock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __vpic_lock(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: vpic_lock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpic_lock(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: vpic_unlock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpic_unlock(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: vpic_is_locked
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpic_is_locked(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - mb2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: vpic_elcr_mask
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpic_elcr_mask(v, mb2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:50,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:50,1
    - Dst: __builtin_ctz
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:59,1
    - Dst: ror8
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vpic
    - mask
    argTypes:
    - struct hvm_hw_vpic*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: vpic_get_priority
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpic_is_locked
    - __builtin_ctz
    - ror8
    linkageType: ''
    returnType: int
    signature: int vpic_get_priority(struct hvm_hw_vpic *vpic, uint8_t mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:68,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:68,1
    - Dst: vpic_get_priority
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:71,1
    - Dst: vpic_get_priority
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - vpic
    argTypes:
    - struct hvm_hw_vpic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 92
    functionName: vpic_get_highest_priority_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpic_is_locked
    - vpic_get_priority
    linkageType: ''
    returnType: int
    signature: int vpic_get_highest_priority_irq(struct hvm_hw_vpic *vpic)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:98,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:98,1
    - Dst: vpic_get_highest_priority_irq
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:100,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:101,1
    - Dst: vpic_domain
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:116,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:120,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:121,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:128,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - vpic
    argTypes:
    - struct hvm_hw_vpic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 137
    functionName: vpic_update_int_output
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 1
    functionsReached:
    - TRACE_TIME
    - vpic_is_locked
    - vpic_update_int_output
    - vcpu_kick
    - vpic_get_highest_priority_irq
    - ASSERT
    - vpic_domain
    linkageType: ''
    returnType: void
    signature: void vpic_update_int_output(struct hvm_hw_vpic *vpic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:143,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:143,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:145,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - vpic
    - irq
    argTypes:
    - struct hvm_hw_vpic*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: __vpic_intack
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - TRACE_TIME
    - vpic_is_locked
    - vpic_update_int_output
    linkageType: ''
    returnType: void
    signature: void __vpic_intack(struct hvm_hw_vpic *vpic, int irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vpic_lock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:162,1
    - Dst: vpic_get_highest_priority_irq
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:167,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:168,1
    - Dst: __vpic_intack
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:169,1
    - Dst: vpic_get_highest_priority_irq
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:174,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:175,1
    - Dst: __vpic_intack
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:176,1
    - Dst: vpic_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - vpic
    argTypes:
    - struct hvm_hw_vpic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 158
    functionDepth: 5
    functionLinenumber: 158
    functionLinenumberEnd: 183
    functionName: vpic_intack
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 1
    functionsReached:
    - vpic_unlock
    - BUG_ON
    - vpic_get_highest_priority_irq
    - __vpic_intack
    - vpic_lock
    linkageType: ''
    returnType: int
    signature: int vpic_intack(struct hvm_hw_vpic *vpic)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: vpic_lock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:192,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:223,1
    - Dst: vpic_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:224,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:231,1
    - Dst: hvm_dpci_eoi
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:232,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:233,1
    - Dst: vpic_get_priority
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:263,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:278,1
    - Dst: vpic_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:279,1
    - Dst: hvm_dpci_eoi
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:280,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:281,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:325,1
    - Dst: vpic_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:327,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:330,1
    - Dst: vpic_domain
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:330,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 3
    argNames:
    - vpic
    - addr
    - val
    argTypes:
    - struct hvm_hw_vpic*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 331
    functionName: vpic_ioport_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - vpic_update_int_output
    - vpic_unlock
    - vpic_get_priority
    - pt_may_unmask_irq
    - hvm_isa_irq_to_gsi
    - for_each_set_bit
    - vpic_domain
    - hvm_dpci_eoi
    - vpic_lock
    linkageType: ''
    returnType: void
    signature: "void vpic_ioport_write(\n    struct hvm_hw_vpic *vpic, uint32_t addr,
      uint32_t val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vpic_intack
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - vpic
    - addr
    argTypes:
    - struct hvm_hw_vpic*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 6
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: vpic_ioport_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - vpic_intack
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vpic_ioport_read(struct hvm_hw_vpic *vpic, uint32_t addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:354,1
    - Dst: vpic_ioport_write
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:362,1
    - Dst: vpic_ioport_read
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 347
    functionDepth: 7
    functionLinenumber: 347
    functionLinenumberEnd: 367
    functionName: vpic_intercept_pic_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - vpic_ioport_read
    - vpic_ioport_write
    linkageType: ''
    returnType: int
    signature: "int vpic_intercept_pic_io(\n    int dir, unsigned int port, unsigned
      int bytes, uint32_t *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:375,1
    - Dst: vpic_elcr_mask
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:383,1
    - Dst: vpic_elcr_mask
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 403
    functionName: vpic_intercept_elcr_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - vpic_elcr_mask
    linkageType: ''
    returnType: int
    signature: "int vpic_intercept_elcr_io(\n    int dir, unsigned int port, unsigned
      int bytes, uint32_t *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:411,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 423
    functionName: vpic_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    - has_vpic
    linkageType: ''
    returnType: int
    signature: int vpic_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:427,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:430,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:434,1
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:437,1
    - Dst: vpic_elcr_mask
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:451,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 455
    functionName: vpic_check
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - has_vpic
    - hvm_load_instance
    - hvm_get_entry
    - vpic_elcr_mask
    linkageType: ''
    returnType: int
    signature: int vpic_check(const struct domain *d, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:460,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:462,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:466,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:466,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 477
    functionName: vpic_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - has_vpic
    - hvm_load_entry
    - hvm_load_instance
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int vpic_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:486,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:491,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 498
    functionName: vpic_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - memset
    - has_vpic
    linkageType: ''
    returnType: void
    signature: void vpic_reset(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:502,1
    - Dst: vpic_reset
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:505,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:507,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:508,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 511
    functionName: vpic_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 0
    functionsReached:
    - vpic_reset
    - register_portio_handler
    - has_vpic
    linkageType: ''
    returnType: void
    signature: void vpic_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:518,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:518,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:519,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:520,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:520,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:522,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 529
    functionName: vpic_irq_positive_edge
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 4
    functionsReached:
    - TRACE_TIME
    - vpic_is_locked
    - vpic_update_int_output
    - has_vpic
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void vpic_irq_positive_edge(struct domain *d, int irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:536,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:536,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:537,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:538,1
    - Dst: vpic_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:538,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:540,1
    - Dst: vpic_update_int_output
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 4
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: vpic_irq_negative_edge
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 4
    functionsReached:
    - TRACE_TIME
    - vpic_is_locked
    - vpic_update_int_output
    - has_vpic
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void vpic_irq_negative_edge(struct domain *d, int irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:554,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:554,1
    - Dst: vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:556,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:558,1
    - Dst: vpic_intack
      Src: /src/xen/xen/arch/x86/hvm/vpic.c:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 567
    functionName: vpic_ack_pending_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpic.c
    functionUses: 1
    functionsReached:
    - TRACE_TIME
    - has_vpic
    - ASSERT
    - vlapic_accept_pic_intr
    - vpic_intack
    linkageType: ''
    returnType: int
    signature: int vpic_ack_pending_irq(struct vcpu *v)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:23,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:31,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:41,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:47,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:53,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:60,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:69,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:77,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:86,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/domain.c:95,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - reg
    - seg
    argTypes:
    - struct segment_register*
    - enum x86_segment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 100
    functionName: check_segment
    functionSourceFile: /src/xen/xen/arch/x86/hvm/domain.c
    functionUses: 0
    functionsReached:
    - gprintk
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int check_segment(struct segment_register *reg, enum x86_segment seg)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:139,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:140,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:141,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:142,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:143,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:155,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:162,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:169,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:176,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:183,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/domain.c:211,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:213,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:220,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:227,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:234,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:256,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:257,1
    - Dst: SEG
      Src: /src/xen/xen/arch/x86/hvm/domain.c:258,1
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/domain.c:268,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:271,1
    - Dst: hvm_efer_valid
      Src: /src/xen/xen/arch/x86/hvm/domain.c:277,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:280,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/domain.c:285,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/domain.c:286,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/domain.c:287,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/domain.c:288,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/domain.c:290,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/domain.c:290,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/domain.c:293,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/domain.c:298,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/hvm/domain.c:303,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/domain.c:306,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/domain.c:307,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/domain.c:308,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/domain.c:309,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/domain.c:310,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/domain.c:315,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/domain.c:317,1
    - Dst: hvmemul_cancel
      Src: /src/xen/xen/arch/x86/hvm/domain.c:319,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/domain.c:322,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 127
    argCount: 2
    argNames:
    - v
    - ctx
    argTypes:
    - struct vcpu*
    - struct vcpu_hvm_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 325
    functionName: arch_set_info_hvm_guest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/domain.c
    functionUses: 1
    functionsReached:
    - paging_update_paging_modes
    - hvm_paging_enabled
    - pagetable_from_page
    - hvm_set_tsc_offset
    - paging_mode_shadow
    - hvmemul_cancel
    - hvm_cr4_guest_valid_bits
    - SEG
    - hvm_set_segment_register
    - gprintk
    - hvm_update_guest_cr
    - hvm_update_guest_efer
    - is_canonical_address
    - hvm_efer_valid
    - get_page_from_gfn
    - set_bit
    linkageType: ''
    returnType: int
    signature: int arch_set_info_hvm_guest(struct vcpu *v, const struct vcpu_hvm_context
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: SEG
    functionSourceFile: /src/xen/xen/arch/x86/hvm/domain.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEG(s, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: SEG
    functionSourceFile: /src/xen/xen/arch/x86/hvm/domain.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEG(l, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/hvm/save.c:23,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/hvm/save.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - hdr
    argTypes:
    - struct domain*
    - struct hvm_save_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: arch_hvm_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - rdtsc
    - cpuid
    linkageType: ''
    returnType: void
    signature: void arch_hvm_save(struct domain *d, struct hvm_save_header *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:40,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:47,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/hvm/save.c:52,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - hdr
    argTypes:
    - struct domain*
    - struct hvm_save_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 60
    functionName: arch_hvm_check
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - cpuid
    - printk
    linkageType: ''
    returnType: int
    signature: "int arch_hvm_check(const struct domain *d,\n                          const
      struct hvm_save_header *hdr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_rdtsc_exiting
      Src: /src/xen/xen/arch/x86/hvm/save.c:68,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/hvm/save.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - hdr
    argTypes:
    - struct domain*
    - struct hvm_save_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: arch_hvm_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - rdtsc
    - hvm_set_rdtsc_exiting
    linkageType: ''
    returnType: void
    signature: void arch_hvm_load(struct domain *d, const struct hvm_save_header *hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:92,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:93,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:94,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 7
    argNames:
    - typecode
    - name
    - save_state
    - check_state
    - load_state
    - size
    - kind
    argTypes:
    - uint16_t
    - char*
    - hvm_save_handler
    - hvm_check_handler
    - hvm_load_handler
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 102
    functionName: hvm_register_savevm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void hvm_register_savevm(uint16_t typecode,\n                                const
      char *name,\n                                hvm_save_handler save_state,\n
      \                               hvm_check_handler check_state,\n                                hvm_load_handler
      load_state,\n                                size_t size, int kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HVM_SAVE_LENGTH
      Src: /src/xen/xen/arch/x86/hvm/save.c:111,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/save.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: hvm_save_size
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - HVM_SAVE_LENGTH
    linkageType: ''
    returnType: size_t
    signature: size_t hvm_save_size(struct domain *d)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/x86/hvm/save.c:149,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/hvm/save.c:154,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/hvm/save.c:156,1
    - Dst: save
      Src: /src/xen/xen/arch/x86/hvm/save.c:158,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:159,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/hvm/save.c:177,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/save.c:181,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/hvm/save.c:191,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/save.c:193,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/save.c:195,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 4
    argNames:
    - d
    - typecode
    - instance
    - bufsz
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 128
    functionDepth: 9
    functionLinenumber: 128
    functionLinenumberEnd: 197
    functionName: hvm_save_one
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - vcpu_pause
    - domain_pause
    - save
    - vcpu_unpause
    - xmalloc_bytes
    - guest_handle_is_null
    - printk
    - copy_to_guest
    - xfree
    linkageType: ''
    returnType: int
    signature: "int hvm_save_one(struct domain *d, unsigned int typecode, unsigned
      int instance,\n                 XEN_GUEST_HANDLE_64(uint8) handle, uint64_t
      *bufsz)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/xen/xen/arch/x86/hvm/save.c:213,1
    - Dst: xen_changeset
      Src: /src/xen/xen/arch/x86/hvm/save.c:213,1
    - Dst: simple_strtoll
      Src: /src/xen/xen/arch/x86/hvm/save.c:215,1
    - Dst: arch_hvm_save
      Src: /src/xen/xen/arch/x86/hvm/save.c:219,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/save.c:221,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:223,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:242,1
    - Dst: handler
      Src: /src/xen/xen/arch/x86/hvm/save.c:244,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:246,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/save.c:251,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:256,1
    - Dst: handler
      Src: /src/xen/xen/arch/x86/hvm/save.c:258,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:260,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/save.c:265,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/save.c:270,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:273,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 281
    functionName: hvm_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 2
    functionsReached:
    - hvm_save_entry
    - handler
    - xen_changeset
    - ASSERT
    - arch_hvm_save
    - process_pending_softirqs
    - printk
    - simple_strtoll
    - strrchr
    linkageType: ''
    returnType: int
    signature: int hvm_save(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:242,1
    - Dst: handler
      Src: /src/xen/xen/arch/x86/hvm/save.c:244,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:246,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/save.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 252
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 5
    functionsReached:
    - handler
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/hvm/save.c:298,1
    - Dst: arch_hvm_check
      Src: /src/xen/xen/arch/x86/hvm/save.c:302,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:307,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/save.c:313,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/save.c:314,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/arch/x86/hvm/save.c:315,1
    - Dst: arch_hvm_load
      Src: /src/xen/xen/arch/x86/hvm/save.c:317,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:330,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:333,1
    - Dst: HVM_SAVE_CODE
      Src: /src/xen/xen/arch/x86/hvm/save.c:339,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/save.c:348,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:352,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/save.c:354,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:361,1
    - Dst: load
      Src: /src/xen/xen/arch/x86/hvm/save.c:363,1
    - Dst: check
      Src: /src/xen/xen/arch/x86/hvm/save.c:378,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:383,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/save.c:388,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - d
    - real
    - h
    argTypes:
    - struct domain*
    - bool
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 392
    functionName: hvm_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - arch_hvm_load
    - ARRAY_SIZE
    - check
    - test_and_set_bit
    - arch_hvm_check
    - load
    - hvm_get_entry
    - ASSERT
    - process_pending_softirqs
    - printk
    - HVM_SAVE_CODE
    - vcpu_sleep_nosync
    linkageType: ''
    returnType: int
    signature: int hvm_load(struct domain *d, bool real, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - h
    - tc
    - inst
    - len
    argTypes:
    - struct hvm_domain_context*
    - uint16_t
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 414
    functionName: _hvm_init_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 1
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int _hvm_init_entry(struct hvm_domain_context *h, uint16_t tc, uint16_t
      inst,\n                    uint32_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/save.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - src
    - src_len
    argTypes:
    - struct hvm_domain_context*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: _hvm_write_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void _hvm_write_entry(struct hvm_domain_context *h, void *src,\n                      uint32_t
      src_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:431,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/save.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - h
    - type
    - len
    - strict_length
    argTypes:
    - struct hvm_domain_context*
    - uint16_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 452
    functionName: _hvm_check_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int _hvm_check_entry(struct hvm_domain_context *h, uint16_t type,
      uint32_t len,\n                     bool strict_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/save.c:460,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/save.c:462,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/save.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - dest
    - dest_len
    argTypes:
    - struct hvm_domain_context*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: _hvm_read_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/save.c
    functionUses: 0
    functionsReached:
    - memset
    - BUG_ON
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void _hvm_read_entry(struct hvm_domain_context *h, void *dest,\n                     uint32_t
      dest_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: nestedhvm_vcpu_in_guestmode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedhvm
    linkageType: ''
    returnType: bool
    signature: bool nestedhvm_vcpu_in_guestmode(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:28,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:36,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:44,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:46,1
    - Dst: nestedhvm_vcpu_exit_guestmode
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: nestedhvm_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - hvm_unmap_guest_frame
    - vcpu_nestedhvm
    - alternative_vcall
    - hvm_asid_flush_vcpu_asid
    - nestedhvm_vcpu_exit_guestmode
    linkageType: ''
    returnType: void
    signature: void nestedhvm_vcpu_reset(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:60,1
    - Dst: nestedhvm_vcpu_reset
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: nestedhvm_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - nestedhvm_vcpu_reset
    linkageType: ''
    returnType: int
    signature: int nestedhvm_vcpu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: nestedhvm_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void nestedhvm_vcpu_destroy(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:79,1
    - Dst: hvm_asid_flush_core
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:89,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:90,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: nestedhvm_flushtlb_ipi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - hvm_asid_flush_core
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nestedhvm_flushtlb_ipi(void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:97,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: nestedhvm_vmcx_flushtlb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - on_selected_cpus
    linkageType: ''
    returnType: void
    signature: void nestedhvm_vmcx_flushtlb(struct p2m_domain *p2m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:120,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:135,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:137,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:142,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:147,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:150,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:151,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:158,1
    - Dst: start_nested_vmx
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:159,1
    - Dst: using_svm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:160,1
    - Dst: start_nested_svm
      Src: /src/xen/xen/arch/x86/hvm/nestedhvm.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 164
    functionName: nestedhvm_setup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached:
    - __clear_bit
    - ARRAY_SIZE
    - get_order_from_pages
    - using_vmx
    - start_nested_svm
    - alloc_xenheap_pages
    - using_svm
    - free_xenheap_pages
    - memset
    - start_nested_vmx
    linkageType: ''
    returnType: int
    signature: int nestedhvm_setup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ioport_80
    - ioport_ed
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 187
    functionName: nestedhvm_vcpu_iomap_get
    functionSourceFile: /src/xen/xen/arch/x86/hvm/nestedhvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: 'unsigned long *

      nestedhvm_vcpu_iomap_get(bool ioport_80, bool ioport_ed)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_broadcast
      Src: /src/xen/xen/arch/x86/hvm/io.c:49,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/io.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - timeoff
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: send_timeoffset_req
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 1
    functionsReached:
    - ioreq_broadcast
    - gprintk
    linkageType: ''
    returnType: void
    signature: void send_timeoffset_req(unsigned long timeoff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/io.c:58,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/io.c:58,1
    - Dst: hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/io.c:60,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/io.c:63,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/io.c:67,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/io.c:68,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/hvm/io.c:72,1
    - Dst: hvm_emulate_writeback
      Src: /src/xen/xen/arch/x86/hvm/io.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - validate
    - descr
    argTypes:
    - hvm_emulate_validate_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: hvm_emulate_one_insn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - hvm_inject_hw_exception
    - hvm_emulate_writeback
    - hvm_dump_emulation_state
    - hvm_emulate_init_once
    - hvm_inject_event
    - hvm_emulate_one
    linkageType: ''
    returnType: bool
    signature: bool hvm_emulate_one_insn(hvm_emulate_validate_t *validate, const char
      *descr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_mmio
      Src: /src/xen/xen/arch/x86/hvm/io.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - gla
    - gpfn
    - access
    argTypes:
    - unsigned long
    - unsigned long
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: handle_mmio_with_translation
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - handle_mmio
    linkageType: ''
    returnType: bool
    signature: "bool handle_mmio_with_translation(unsigned long gla, unsigned long
      gpfn,\n                                  struct npfec access)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:101,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/io.c:104,1
    - Dst: hvmemul_do_pio_buffer
      Src: /src/xen/xen/arch/x86/hvm/io.c:108,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/arch/x86/hvm/io.c:110,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/io.c:119,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/io.c:121,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/io.c:121,1
    - Dst: vcpu_ioreq_pending
      Src: /src/xen/xen/arch/x86/hvm/io.c:131,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/io.c:136,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/io.c:139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - port
    - size
    - dir
    argTypes:
    - uint16_t
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 144
    functionName: handle_pio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - vcpu_ioreq_pending
    - guest_cpu_user_regs
    - hvmemul_do_pio_buffer
    - ASSERT
    - gprintk
    - ioreq_needs_completion
    - domain_crash
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool handle_pio(uint16_t port, unsigned int size, int dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/io.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 167
    functionName: g2m_portio_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: "bool g2m_portio_accept(\n    const struct hvm_io_handler *handler,
      const ioreq_t *p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/arch/x86/hvm/io.c:180,1
    - Dst: inw
      Src: /src/xen/xen/arch/x86/hvm/io.c:183,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/hvm/io.c:186,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/io.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: g2m_portio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - inl
    - inb
    - BUG
    - inw
    linkageType: ''
    returnType: int
    signature: "int g2m_portio_read(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/hvm/io.c:206,1
    - Dst: outw
      Src: /src/xen/xen/arch/x86/hvm/io.c:209,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/hvm/io.c:212,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/io.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: g2m_portio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - outl
    - BUG
    - outw
    - outb
    linkageType: ''
    returnType: int
    signature: "int g2m_portio_write(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/io.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: register_g2m_portio_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - hvm_next_io_handler
    linkageType: ''
    returnType: void
    signature: void register_g2m_portio_handler(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:241,1
    - Dst: CF8_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/io.c:241,1
    - Dst: CF8_BDF
      Src: /src/xen/xen/arch/x86/hvm/io.c:243,1
    - Dst: CF8_ADDR_LO
      Src: /src/xen/xen/arch/x86/hvm/io.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cf8
    - addr
    - sbdf
    argTypes:
    - unsigned int
    - unsigned int
    - pci_sbdf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: hvm_pci_decode_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - CF8_ENABLED
    - ASSERT
    - CF8_ADDR_LO
    - CF8_BDF
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int hvm_pci_decode_addr(unsigned int cf8, unsigned int addr,\n
      \                                pci_sbdf_t *sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: vpci_portio_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool vpci_portio_accept(\n    const struct hvm_io_handler *handler,
      const ioreq_t *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:272,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:277,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/hvm/io.c:278,1
    - Dst: CF8_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/io.c:279,1
    - Dst: hvm_pci_decode_addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:282,1
    - Dst: vpci_access_allowed
      Src: /src/xen/xen/arch/x86/hvm/io.c:284,1
    - Dst: vpci_read
      Src: /src/xen/xen/arch/x86/hvm/io.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 290
    functionName: vpci_portio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - hvm_pci_decode_addr
    - vpci_access_allowed
    - vpci_read
    - ASSERT
    - CF8_ENABLED
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int vpci_portio_read(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:303,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:308,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/hvm/io.c:309,1
    - Dst: CF8_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/io.c:310,1
    - Dst: hvm_pci_decode_addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:313,1
    - Dst: vpci_access_allowed
      Src: /src/xen/xen/arch/x86/hvm/io.c:315,1
    - Dst: vpci_write
      Src: /src/xen/xen/arch/x86/hvm/io.c:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 321
    functionName: vpci_portio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - hvm_pci_decode_addr
    - vpci_access_allowed
    - vpci_write
    - ASSERT
    - CF8_ENABLED
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int vpci_portio_write(\n    const struct hvm_io_handler *handler,
      uint64_t addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vpci
      Src: /src/xen/xen/arch/x86/hvm/io.c:333,1
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/io.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 342
    functionName: register_vpci_portio_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - hvm_next_io_handler
    - has_vpci
    linkageType: ''
    returnType: void
    signature: void register_vpci_portio_handler(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/io.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - d
    - addr
    argTypes:
    - struct domain*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: vpci_mmcfg_find
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct hvm_mmcfg
    signature: "struct hvm_mmcfg *vpci_mmcfg_find(const struct domain *d,\n                                               paddr_t
      addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/io.c:369,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/hvm/io.c:371,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/io.c:371,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/io.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: __hwdom_init::vpci_mmcfg_deny_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - iomem_deny_access
    - list_for_each_entry
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int __hwdom_init vpci_mmcfg_deny_access(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VPCI_ECAM_BDF
      Src: /src/xen/xen/arch/x86/hvm/io.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mmcfg
    - addr
    - sbdf
    argTypes:
    - struct hvm_mmcfg*
    - paddr_t
    - pci_sbdf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: vpci_mmcfg_decode_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - VPCI_ECAM_BDF
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int vpci_mmcfg_decode_addr(const struct hvm_mmcfg *mmcfg,\n
      \                                          paddr_t addr, pci_sbdf_t *sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/hvm/io.c:397,1
    - Dst: vpci_mmcfg_find
      Src: /src/xen/xen/arch/x86/hvm/io.c:398,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: vpci_mmcfg_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - read_lock
    - vpci_mmcfg_find
    linkageType: ''
    returnType: int
    signature: int vpci_mmcfg_accept(struct vcpu *v, unsigned long addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/hvm/io.c:414,1
    - Dst: vpci_mmcfg_find
      Src: /src/xen/xen/arch/x86/hvm/io.c:415,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:418,1
    - Dst: vpci_mmcfg_decode_addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:422,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:423,1
    - Dst: vpci_ecam_read
      Src: /src/xen/xen/arch/x86/hvm/io.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 429
    functionName: vpci_mmcfg_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - vpci_mmcfg_find
    - vpci_ecam_read
    - vpci_mmcfg_decode_addr
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int vpci_mmcfg_read(\n    struct vcpu *v, unsigned long addr, unsigned
      int len, unsigned long *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/hvm/io.c:439,1
    - Dst: vpci_mmcfg_find
      Src: /src/xen/xen/arch/x86/hvm/io.c:440,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:443,1
    - Dst: vpci_mmcfg_decode_addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:447,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:448,1
    - Dst: vpci_ecam_write
      Src: /src/xen/xen/arch/x86/hvm/io.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 454
    functionName: vpci_mmcfg_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - vpci_mmcfg_find
    - vpci_ecam_write
    - vpci_mmcfg_decode_addr
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int vpci_mmcfg_write(\n    struct vcpu *v, unsigned long addr, unsigned
      int len, unsigned long data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/io.c:468,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/io.c:468,1
    - Dst: xmalloc::xmalloc
      Src: /src/xen/xen/arch/x86/hvm/io.c:473,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/io.c:482,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/io.c:483,1
    - Dst: addr::addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:485,1
    - Dst: size::size
      Src: /src/xen/xen/arch/x86/hvm/io.c:485,1
    - Dst: addr::addr
      Src: /src/xen/xen/arch/x86/hvm/io.c:489,1
    - Dst: start_bus::start_bus
      Src: /src/xen/xen/arch/x86/hvm/io.c:490,1
    - Dst: segment::segment
      Src: /src/xen/xen/arch/x86/hvm/io.c:491,1
    - Dst: size::size
      Src: /src/xen/xen/arch/x86/hvm/io.c:492,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:494,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/hvm/io.c:499,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/x86/hvm/io.c:500,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/io.c:502,1
    - Dst: next::next
      Src: /src/xen/xen/arch/x86/hvm/io.c:502,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:503,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - d
    - addr
    - start_bus
    - end_bus
    - seg
    argTypes:
    - struct domain*
    - paddr_t
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 506
    functionName: register_vpci_mmcfg_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 1
    functionsReached:
    - addr::addr
    - segment::segment
    - size::size
    - start_bus::start_bus
    - write_unlock
    - register_mmio_handler
    - next::next
    - ASSERT
    - xmalloc::xmalloc
    - is_hardware_domain
    - list_add
    - write_lock
    - list_empty
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int register_vpci_mmcfg_handler(struct domain *d, paddr_t addr,\n
      \                               unsigned int start_bus, unsigned int end_bus,\n
      \                               unsigned int seg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/io.c:512,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/hvm/io.c:513,1
    - Dst: list_first_entry
      Src: /src/xen/xen/arch/x86/hvm/io.c:515,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/io.c:518,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/io.c:519,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/io.c:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: destroy_vpci_mmcfg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/io.c
    functionUses: 0
    functionsReached:
    - list_first_entry
    - write_unlock
    - list_del
    - write_lock
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void destroy_vpci_mmcfg(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:32,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:34,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: hvm_vm_event_set_registers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vm_event.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - ASSERT
    - unlikely
    linkageType: ''
    returnType: void
    signature: void hvm_vm_event_set_registers(const struct vcpu *v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:67,1
    - Dst: hvm_vm_event_set_registers
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:69,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:73,1
    - Dst: hvm_emulate_one_vm_event
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:91,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:97,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:99,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:100,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:105,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:107,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:108,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:113,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:115,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:116,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:121,1
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:123,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:125,1
    - Dst: vm_event_sync_event
      Src: /src/xen/xen/arch/x86/hvm/vm_event.c:130,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 131
    functionName: hvm_vm_event_do_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vm_event.c
    functionUses: 0
    functionsReached:
    - hvm_emulate_one_vm_event
    - hvm_inject_hw_exception
    - vm_event_sync_event
    - hvm_set_cr4
    - hvm_msr_write_intercept
    - hvm_set_cr0
    - ASSERT
    - unlikely
    - hvm_vm_event_set_registers
    - hvm_set_cr3
    linkageType: ''
    returnType: void
    signature: void hvm_vm_event_do_resume(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:64,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: hvmtrace_io_assist
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - trace
    - likely
    linkageType: ''
    returnType: void
    signature: void hvmtrace_io_assist(const ioreq_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - io_handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: null_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int null_read(\n    const struct hvm_io_handler *io_handler, uint64_t
      addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: null_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int null_write(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:108,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:111,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:113,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: set_context_data
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - memset
    - vm_event_is_enabled
    - min
    - memcpy
    linkageType: ''
    returnType: int
    signature: int set_context_data(void *buffer, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - io_handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: ioreq_server_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvm_copy_from_guest_phys
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_read(\n    const struct hvm_io_handler *io_handler,
      uint64_t addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: hvmemul_cancel
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 2
    functionsReached:
    - hvmemul_cache_disable
    linkageType: ''
    returnType: void
    signature: void hvmemul_cancel(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:171,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:177,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:177,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:178,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:178,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:180,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:191,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:191,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:193,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:193,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:194,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:197,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:202,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:203,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:203,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:204,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:204,1
    - Dst: set_mmio_p2m_entry
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:206,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:206,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:206,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - addr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 210
    functionName: hwdom_fixup_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - altp2m_active
    - mfn_to_page
    - page_get_owner_and_reference
    - _gfn
    - _mfn
    - p2m_is_hole
    - mfn_valid
    - paddr_to_pfn
    - set_mmio_p2m_entry
    - put_gfn
    - iomem_access_permitted
    - ASSERT
    - get_gfn
    - mfn_eq
    - put_page
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int hwdom_fixup_p2m(paddr_t addr)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:237,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:239,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:260,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:274,1
    - Dst: hvmtrace_io_assist
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:276,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:284,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:292,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:295,1
    - Dst: hvm_io_intercept
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:300,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:306,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:352,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:354,1
    - Dst: p2m_get_ioreq_server
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:360,1
    - Dst: hvm_process_io_intercept
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:375,1
    - Dst: ioreq_server_select
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:383,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:388,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:395,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:396,1
    - Dst: hwdom_fixup_p2m
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:408,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:413,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:415,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:417,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:419,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:426,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:432,1
    - Dst: hvm_process_io_intercept
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:436,1
    - Dst: ioreq_send
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:441,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:444,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:450,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:453,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:456,1
    - Dst: hvmtrace_io_assist
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:464,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:467,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 103
    argCount: 8
    argNames:
    - is_mmio
    - addr
    - reps
    - size
    - dir
    - df
    - data_is_addr
    - data
    argTypes:
    - bool
    - paddr_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - bool
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 471
    functionName: hvmemul_do_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvm_process_io_intercept
    - paddr_to_pfn
    - gprintk
    - PFN_DOWN
    - hwdom_fixup_p2m
    - BUG
    - ioreq_server_select
    - hvmtrace_io_assist
    - get_gfn_query_unlocked
    - ioreq_needs_completion
    - domain_crash
    - is_hardware_domain
    - hvm_io_intercept
    - gdprintk
    - min
    - ASSERT
    - ASSERT_UNREACHABLE
    - ioreq_send
    - p2m_get_ioreq_server
    - rangeset_contains_singleton
    - unlikely
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_io(\n    bool is_mmio, paddr_t addr, unsigned long
      *reps, unsigned int size,\n    uint8_t dir, bool df, bool data_is_addr, uintptr_t
      data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:479,1
    - Dst: hvmemul_do_io
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:481,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:484,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 7
    argNames:
    - is_mmio
    - addr
    - reps
    - size
    - dir
    - df
    - buffer
    argTypes:
    - bool
    - paddr_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: hvmemul_do_io_buffer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - memset
    - BUG_ON
    - ASSERT
    - hvmemul_do_io
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_io_buffer(\n    bool is_mmio, paddr_t addr, unsigned
      long *reps, unsigned int size,\n    uint8_t dir, bool df, void *buffer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:497,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:497,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:507,1
    - Dst: p2m_is_mmio
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:514,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:516,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - gmfn
    - page
    argTypes:
    - unsigned long
    - struct page_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 523
    functionName: hvmemul_acquire_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - check_get_page_from_gfn
    - _gfn
    - p2m_is_mmio
    - put_page
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int hvmemul_acquire_page(unsigned long gmfn, struct page_info **page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 528
    functionName: hvmemul_release_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - put_page
    linkageType: ''
    returnType: void
    signature: void hvmemul_release_page(struct page_info *page)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:535,1
    - Dst: hvmemul_acquire_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:542,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:549,1
    - Dst: hvmemul_acquire_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:564,1
    - Dst: hvmemul_do_io
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:573,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:576,1
    - Dst: hvmemul_release_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - is_mmio
    - addr
    - reps
    - size
    - dir
    - df
    - ram_gpa
    argTypes:
    - bool
    - paddr_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 588
    functionName: hvmemul_do_io_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - paddr_to_pfn
    - ASSERT
    - hvmemul_acquire_page
    - min_t
    - hvmemul_do_io
    - hvmemul_release_page
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_io_addr(\n    bool is_mmio, paddr_t addr, unsigned
      long *reps,\n    unsigned int size, uint8_t dir, bool df, paddr_t ram_gpa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_do_io_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - size
    - dir
    - buffer
    argTypes:
    - uint16_t
    - unsigned int
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 604
    functionName: hvmemul_do_pio_buffer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - hvmemul_do_io_buffer
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_pio_buffer(uint16_t port,\n                          unsigned
      int size,\n                          uint8_t dir,\n                          void
      *buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_do_io_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - port
    - reps
    - size
    - dir
    - df
    - ram_addr
    argTypes:
    - uint16_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 624
    functionName: hvmemul_do_pio_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_io_addr
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_pio_addr(uint16_t port,\n                               unsigned
      long *reps,\n                               unsigned int size,\n                               uint8_t
      dir,\n                               bool df,\n                               paddr_t
      ram_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_do_io_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - mmio_gpa
    - reps
    - size
    - dir
    - df
    - buffer
    argTypes:
    - paddr_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: hvmemul_do_mmio_buffer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_io_buffer
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_mmio_buffer(paddr_t mmio_gpa,\n                                  unsigned
      long *reps,\n                                  unsigned int size,\n                                  uint8_t
      dir,\n                                  bool df,\n                                  void
      *buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_do_io_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - mmio_gpa
    - reps
    - size
    - dir
    - df
    - ram_gpa
    argTypes:
    - paddr_t
    - unsigned long*
    - unsigned int
    - uint8_t
    - bool
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 660
    functionDepth: 4
    functionLinenumber: 660
    functionLinenumberEnd: 668
    functionName: hvmemul_do_mmio_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_io_addr
    linkageType: ''
    returnType: int
    signature: "int hvmemul_do_mmio_addr(paddr_t mmio_gpa,\n                                unsigned
      long *reps,\n                                unsigned int size,\n                                uint8_t
      dir,\n                                bool df,\n                                paddr_t
      ram_gpa)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:701,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:703,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:719,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:719,1
    - Dst: hvm_translate_get_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:721,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:730,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:731,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:732,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:744,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:748,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:755,1
    - Dst: p2m_is_discard_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:759,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:761,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:771,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:771,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:774,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:774,1
    - Dst: hvm_monitor_check_p2m
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:776,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:778,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:785,1
    - Dst: vmap
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:787,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:792,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:794,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:794,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:801,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:807,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:807,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:809,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 4
    argNames:
    - linear
    - bytes
    - pfec
    - hvmemul_ctxt
    argTypes:
    - unsigned long
    - unsigned int
    - uint32_t
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 814
    functionName: hvmemul_map_linear_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - unlikely
    - page_to_mfn
    - ERR_PTR
    - map_domain_page
    - ARRAY_SIZE
    - mfn_to_page
    - hvm_translate_get_page
    - mfn_x
    - _mfn
    - ASSERT
    - p2m_is_discard_write
    - hvm_monitor_check_p2m
    - put_page
    - x86_emul_pagefault
    - vmap
    - vm_event_is_enabled
    - ASSERT_UNREACHABLE
    - p2m_is_readonly
    linkageType: ''
    returnType: void
    signature: "void *hvmemul_map_linear_addr(\n    unsigned long linear, unsigned
      int bytes, uint32_t pfec,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:827,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:829,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:833,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:833,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:833,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:834,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:835,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:835,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:837,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:841,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:843,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:843,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - mapping
    - linear
    - bytes
    - hvmemul_ctxt
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 847
    functionName: hvmemul_unmap_linear_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - ARRAY_SIZE
    - mfn_to_page
    - mfn_x
    - _mfn
    - mfn_valid
    - vunmap
    - ASSERT
    - mfn_eq
    - put_page
    - paging_mark_dirty
    linkageType: ''
    returnType: void
    signature: "void hvmemul_unmap_linear_addr(\n    void *mapping, unsigned long
      linear, unsigned int bytes,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:871,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:888,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:897,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:897,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:902,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:912,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:915,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:923,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:924,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:927,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 6
    argNames:
    - addr
    - paddr
    - bytes_per_rep
    - reps
    - pfec
    - hvmemul_ctxt
    argTypes:
    - unsigned long
    - paddr_t*
    - unsigned int
    - unsigned long*
    - uint32_t
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 939
    functionName: hvmemul_linear_to_phys
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - gfn_x
    - ASSERT
    - min_t
    - paging_gva_to_gfn
    - x86_emul_pagefault
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_linear_to_phys(\n    unsigned long addr,\n    paddr_t
      *paddr,\n    unsigned int bytes_per_rep,\n    unsigned long *reps,\n    uint32_t
      pfec,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:971,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:981,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:984,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:985,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:986,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:994,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:995,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:998,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1005,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1007,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1027,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1028,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 7
    argNames:
    - seg
    - offset
    - bytes_per_rep
    - reps_p
    - access_type
    - hvmemul_ctxt
    - linear
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - enum hvm_access_type
    - struct hvm_emulate_ctxt*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 1032
    functionName: hvmemul_virtual_to_linear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - is_x86_user_segment
    - x86_emul_hw_exception
    - hvmemul_get_seg_reg
    - PTR_ERR
    - ASSERT
    - hvm_virtual_to_linear_addr
    - min_t
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int hvmemul_virtual_to_linear(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    unsigned int bytes_per_rep,\n    unsigned long *reps_p,\n
      \   enum hvm_access_type access_type,\n    struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   unsigned long *linear)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1045,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1052,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1059,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1068,1
    - Dst: fls
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1069,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1078,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1081,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1082,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1083,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1087,1
    - Dst: hvmemul_do_mmio_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1089,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1095,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 6
    argNames:
    - cache
    - gpa
    - size
    - dir
    - buffer
    - offset
    argTypes:
    - struct hvm_mmio_cache*
    - paddr_t
    - unsigned int
    - uint8_t
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1116
    functionName: hvmemul_phys_mmio_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - fls
    - memcmp
    - hvmemul_do_mmio_buffer
    - ASSERT
    - domain_crash
    - ASSERT_UNREACHABLE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvmemul_phys_mmio_access(\n    struct hvm_mmio_cache *cache, paddr_t
      gpa, unsigned int size, uint8_t dir,\n    uint8_t *buffer, unsigned int offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1150,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - hvio
    - gla
    - dir
    - skip
    argTypes:
    - struct hvm_vcpu_io*
    - unsigned long
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1164
    functionName: hvmemul_find_mmio_cache
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - memset
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct hvm_mmio_cache
    signature: "struct hvm_mmio_cache *hvmemul_find_mmio_cache(\n    struct hvm_vcpu_io
      *hvio, unsigned long gla, uint8_t dir,\n    unsigned int skip)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - hvio
    - gla
    - gpa
    - write
    argTypes:
    - struct hvm_vcpu_io*
    - unsigned long
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1177
    functionName: latch_linear_to_phys
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: "void latch_linear_to_phys(struct hvm_vcpu_io *hvio, unsigned long
      gla,\n                                 unsigned long gpa, bool write)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_find_mmio_cache
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1187,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1198,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1203,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1206,1
    - Dst: latch_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1211,1
    - Dst: hvmemul_phys_mmio_access
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - gla
    - size
    - dir
    - buffer
    - pfec
    - hvmemul_ctxt
    - start_gla
    - known_gpfn
    argTypes:
    - unsigned long
    - unsigned int
    - uint8_t
    - void*
    - uint32_t
    - struct hvm_emulate_ctxt*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1179
    functionDepth: 6
    functionLinenumber: 1179
    functionLinenumberEnd: 1216
    functionName: hvmemul_linear_mmio_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - latch_linear_to_phys
    - hvmemul_find_mmio_cache
    - hvmemul_phys_mmio_access
    - pfn_to_paddr
    - ASSERT_UNREACHABLE
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_linear_mmio_access(\n    unsigned long gla, unsigned int
      size, uint8_t dir, void *buffer,\n    uint32_t pfec, struct hvm_emulate_ctxt
      *hvmemul_ctxt,\n    unsigned long start_gla, bool known_gpfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_linear_mmio_access
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - gla
    - size
    - buffer
    - pfec
    - hvmemul_ctxt
    - start_gla
    - translate
    argTypes:
    - unsigned long
    - unsigned int
    - void*
    - uint32_t
    - struct hvm_emulate_ctxt*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1218
    functionDepth: 7
    functionLinenumber: 1218
    functionLinenumberEnd: 1225
    functionName: hvmemul_linear_mmio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_linear_mmio_access
    linkageType: ''
    returnType: int
    signature: "int hvmemul_linear_mmio_read(\n    unsigned long gla, unsigned int
      size, void *buffer,\n    uint32_t pfec, struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   unsigned long start_gla, bool translate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_linear_mmio_access
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - gla
    - size
    - buffer
    - pfec
    - hvmemul_ctxt
    - start_gla
    - translate
    argTypes:
    - unsigned long
    - unsigned int
    - void*
    - uint32_t
    - struct hvm_emulate_ctxt*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1227
    functionDepth: 7
    functionLinenumber: 1227
    functionLinenumberEnd: 1234
    functionName: hvmemul_linear_mmio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_linear_mmio_access
    linkageType: ''
    returnType: int
    signature: "int hvmemul_linear_mmio_write(\n    unsigned long gla, unsigned int
      size, void *buffer,\n    uint32_t pfec, struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   unsigned long start_gla, bool translate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - addr
    - bytes
    - pfec
    argTypes:
    - unsigned long
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1255
    functionName: known_gla
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool known_gla(unsigned long addr, unsigned int bytes, uint32_t pfec)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: linear_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1273,1
    - Dst: hvmemul_find_mmio_cache
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1296,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1300,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1308,1
    - Dst: hvmemul_linear_mmio_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1315,1
    - Dst: known_gla
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - addr
    - bytes
    - p_data
    - pfec
    - hvmemul_ctxt
    argTypes:
    - unsigned long
    - unsigned int
    - void*
    - uint32_t
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1257
    functionDepth: 8
    functionLinenumber: 1257
    functionLinenumberEnd: 1326
    functionName: linear_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - linear_read
    - hvmemul_find_mmio_cache
    - hvmemul_linear_mmio_read
    - hvm_copy_from_guest_linear
    - known_gla
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int linear_read(unsigned long addr, unsigned int bytes, void *p_data,\n
      \                      uint32_t pfec, struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: linear_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1344,1
    - Dst: hvmemul_find_mmio_cache
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1356,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1360,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1368,1
    - Dst: hvmemul_linear_mmio_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1372,1
    - Dst: known_gla
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - addr
    - bytes
    - p_data
    - pfec
    - hvmemul_ctxt
    argTypes:
    - unsigned long
    - unsigned int
    - void*
    - uint32_t
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1328
    functionDepth: 8
    functionLinenumber: 1328
    functionLinenumberEnd: 1383
    functionName: linear_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - linear_write
    - hvmemul_find_mmio_cache
    - hvm_copy_to_guest_linear
    - known_gla
    - x86_emul_pagefault
    - hvmemul_linear_mmio_write
    linkageType: ''
    returnType: int
    signature: "int linear_write(unsigned long addr, unsigned int bytes, void *p_data,\n
      \                       uint32_t pfec, struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1397,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1404,1
    - Dst: linear_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - access_type
    - hvmemul_ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - enum hvm_access_type
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1385
    functionDepth: 9
    functionLinenumber: 1385
    functionLinenumberEnd: 1410
    functionName: __hvmemul_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - linear_read
    - hvmemul_virtual_to_linear
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int __hvmemul_read(\n    enum x86_segment seg,\n    unsigned long
      offset,\n    void *p_data,\n    unsigned int bytes,\n    enum hvm_access_type
      access_type,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1420,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1422,1
    - Dst: set_context_data
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1423,1
    - Dst: __hvmemul_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1425,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1412
    functionDepth: 10
    functionLinenumber: 1412
    functionLinenumberEnd: 1428
    functionName: hvmemul_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - unlikely
    - set_context_data
    - __hvmemul_read
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1437,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1446,1
    - Dst: __hvmemul_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1448,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1460,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1464,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1430
    functionDepth: 10
    functionLinenumber: 1430
    functionLinenumberEnd: 1474
    functionName: hvmemul_insn_fetch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - container_of
    - __hvmemul_read
    - unlikely
    - ASSERT_UNREACHABLE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvmemul_insn_fetch(\n    unsigned long offset,\n    void *p_data,\n
      \   unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1484,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1490,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1495,1
    - Dst: known_gla
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1500,1
    - Dst: hvmemul_map_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1502,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1503,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1504,1
    - Dst: linear_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1508,1
    - Dst: write_u16_atomic
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1513,1
    - Dst: write_u32_atomic
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1514,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1515,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1516,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1519,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1476
    functionDepth: 9
    functionLinenumber: 1476
    functionLinenumberEnd: 1522
    functionName: hvmemul_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - linear_write
    - hvmemul_map_linear_addr
    - container_of
    - hvmemul_virtual_to_linear
    - write_u16_atomic
    - hvmemul_unmap_linear_addr
    - PTR_ERR
    - write_u32_atomic
    - known_gla
    - write_u64_atomic
    - memcpy
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1533,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1539,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1544,1
    - Dst: known_gla
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1549,1
    - Dst: hvmemul_map_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1551,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1552,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1553,1
    - Dst: x86_emul_rmw
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1558,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1559,1
    - Dst: linear_read
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1567,1
    - Dst: x86_emul_rmw
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1569,1
    - Dst: linear_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 6
    argNames:
    - seg
    - offset
    - bytes
    - eflags
    - state
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    - uint32_t*
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1524
    functionDepth: 9
    functionLinenumber: 1524
    functionLinenumberEnd: 1575
    functionName: hvmemul_rmw
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - linear_read
    - IS_ERR
    - x86_emul_rmw
    - hvmemul_map_linear_addr
    - linear_write
    - container_of
    - hvmemul_virtual_to_linear
    - hvmemul_unmap_linear_addr
    - PTR_ERR
    - known_gla
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rmw(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   unsigned int bytes,\n    uint32_t *eflags,\n    struct x86_emulate_state
      *state,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1587,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1593,1
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1598,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1601,1
    - Dst: hvmemul_map_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1606,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1607,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1608,1
    - Dst: x86_emul_blk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1612,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - eflags
    - state
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - uint32_t*
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1616
    functionName: hvmemul_blk
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - x86_emul_blk
    - IS_ERR
    - hvmemul_map_linear_addr
    - container_of
    - hvmemul_virtual_to_linear
    - x86_insn_is_mem_write
    - hvmemul_unmap_linear_addr
    - PTR_ERR
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int hvmemul_blk(\n    enum x86_segment seg,\n    unsigned long offset,\n
      \   void *p_data,\n    unsigned int bytes,\n    uint32_t *eflags,\n    struct
      x86_emulate_state *state,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1628
    functionName: hvmemul_write_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_discard(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - src_port
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - uint16_t
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1639
    functionName: hvmemul_rep_ins_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_ins_discard(\n    uint16_t src_port,\n    enum x86_segment
      dst_seg,\n    unsigned long dst_offset,\n    unsigned int bytes_per_rep,\n    unsigned
      long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - src_seg
    - src_offset
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1651
    functionName: hvmemul_rep_movs_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_movs_discard(\n   enum x86_segment src_seg,\n   unsigned
      long src_offset,\n   enum x86_segment dst_seg,\n   unsigned long dst_offset,\n
      \  unsigned int bytes_per_rep,\n   unsigned long *reps,\n   struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - p_data
    - seg
    - offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - void*
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1662
    functionName: hvmemul_rep_stos_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_stos_discard(\n    void *p_data,\n    enum x86_segment
      seg,\n    unsigned long offset,\n    unsigned int bytes_per_rep,\n    unsigned
      long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - src_seg
    - src_offset
    - dst_port
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - uint16_t
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1664
    functionDepth: 0
    functionLinenumber: 1664
    functionLinenumberEnd: 1673
    functionName: hvmemul_rep_outs_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_outs_discard(\n    enum x86_segment src_seg,\n    unsigned
      long src_offset,\n    uint16_t dst_port,\n    unsigned int bytes_per_rep,\n
      \   unsigned long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - seg
    - offset
    - p_old
    - p_new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1685
    functionName: hvmemul_cmpxchg_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_cmpxchg_discard(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    void *p_old,\n    void *p_new,\n    unsigned int bytes,\n
      \   bool lock,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1694
    functionName: hvmemul_read_io_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_io_discard(\n    unsigned int port,\n    unsigned
      int bytes,\n    unsigned long *val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1696
    functionDepth: 0
    functionLinenumber: 1696
    functionLinenumberEnd: 1703
    functionName: hvmemul_write_io_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_io_discard(\n    unsigned int port,\n    unsigned
      int bytes,\n    unsigned long val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - reg
    - val
    - ctxt
    - explicit
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1712
    functionName: hvmemul_write_msr_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_msr_discard(\n    unsigned int reg,\n    uint64_t
      val,\n    struct x86_emulate_ctxt *ctxt,\n    bool explicit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - op
    - seg
    - offset
    - ctxt
    argTypes:
    - enum x86emul_cache_op
    - enum x86_segment
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1721
    functionName: hvmemul_cache_op_discard
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvmemul_cache_op_discard(\n    enum x86emul_cache_op op,\n    enum
      x86_segment seg,\n    unsigned long offset,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1734,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1740,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1745,1
    - Dst: known_gla
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1750,1
    - Dst: hvmemul_map_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1752,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1753,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1754,1
    - Dst: linear_write
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1760,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1769,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1770,1
    - Dst: p_new::p_new
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1770,1
    - Dst: __cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1772,1
    - Dst: bytes::bytes
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1772,1
    - Dst: cmpxchg_local_
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1774,1
    - Dst: bytes::bytes
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1774,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1777,1
    - Dst: __cmpxchg16b
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1789,1
    - Dst: cmpxchg16b_local_
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1791,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1803,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1808,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 7
    argNames:
    - seg
    - offset
    - p_old
    - p_new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1724
    functionDepth: 9
    functionLinenumber: 1724
    functionLinenumberEnd: 1811
    functionName: hvmemul_cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - __cmpxchg
    - IS_ERR
    - linear_write
    - hvmemul_map_linear_addr
    - container_of
    - hvmemul_virtual_to_linear
    - hvmemul_unmap_linear_addr
    - PTR_ERR
    - cmpxchg_local_
    - __cmpxchg16b
    - known_gla
    - p_new::p_new
    - cmpxchg16b_local_
    - bytes::bytes
    - ASSERT_UNREACHABLE
    - memcpy
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int hvmemul_cmpxchg(\n    enum x86_segment seg,\n    unsigned long
      offset,\n    void *p_old,\n    void *p_new,\n    unsigned int bytes,\n    bool
      lock,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1818,1
    - Dst: x86_insn_is_mem_access
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1820,1
    - Dst: struct hvm_emulate_ctxt*::validate
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1813
    functionDepth: 1
    functionLinenumber: 1813
    functionLinenumberEnd: 1824
    functionName: hvmemul_validate
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - struct hvm_emulate_ctxt*::validate
    - x86_insn_is_mem_access
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvmemul_validate(\n    const struct x86_emulate_state *state,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1835,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1842,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1851,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1856,1
    - Dst: hvmemul_do_pio_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - src_port
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - uint16_t
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1826
    functionDepth: 5
    functionLinenumber: 1826
    functionLinenumberEnd: 1862
    functionName: hvmemul_rep_ins
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - container_of
    - hvmemul_virtual_to_linear
    - get_gfn_query_unlocked
    - hvmemul_do_pio_addr
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_ins(\n    uint16_t src_port,\n    enum x86_segment
      dst_seg,\n    unsigned long dst_offset,\n    unsigned int bytes_per_rep,\n    unsigned
      long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1875,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1876,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1885,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1888,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1891,1
    - Dst: hvmemul_do_pio_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - dst_port
    - bytes_per_rep
    - reps
    argTypes:
    - uint16_t
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1903
      start: 1864
    functionDepth: 5
    functionLinenumber: 1864
    functionLinenumberEnd: 1903
    functionName: hvmemul_rep_outs_set_context
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_pio_buffer
    - ASSERT
    - min
    - hypercall_preempt_check
    - vm_event_is_enabled
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_outs_set_context(\n    uint16_t dst_port,\n    unsigned
      int bytes_per_rep,\n    unsigned long *reps)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1914,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1921,1
    - Dst: hvmemul_rep_outs_set_context
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1922,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1924,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1933,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1938,1
    - Dst: hvmemul_do_pio_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - src_seg
    - src_offset
    - dst_port
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - uint16_t
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1905
    functionDepth: 6
    functionLinenumber: 1905
    functionLinenumberEnd: 1944
    functionName: hvmemul_rep_outs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - container_of
    - hvmemul_virtual_to_linear
    - hvmemul_rep_outs_set_context
    - get_gfn_query_unlocked
    - unlikely
    - hvmemul_do_pio_addr
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_outs(\n    enum x86_segment src_seg,\n    unsigned
      long src_offset,\n    uint16_t dst_port,\n    unsigned int bytes_per_rep,\n
      \   unsigned long *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1956,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1966,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1972,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1992,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:1995,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2007,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2010,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2017,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2018,1
    - Dst: latch_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2026,1
    - Dst: hvmemul_do_mmio_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2027,1
    - Dst: latch_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2033,1
    - Dst: hvmemul_do_mmio_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2034,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2058,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2062,1
    - Dst: set_context_data
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2064,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2068,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2076,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2083,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2084,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2088,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2090,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2099,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2108,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 68
    argCount: 7
    argNames:
    - src_seg
    - src_offset
    - dst_seg
    - dst_offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 1946
    functionDepth: 5
    functionLinenumber: 1946
    functionLinenumberEnd: 2113
    functionName: hvmemul_rep_movs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - gdprintk
    - latch_linear_to_phys
    - container_of
    - hvmemul_virtual_to_linear
    - xvfree
    - hvm_copy_to_guest_phys
    - hvmemul_do_mmio_addr
    - hvmemul_cache_restore
    - pfn_to_paddr
    - get_gfn_query_unlocked
    - unlikely
    - set_context_data
    - hvm_copy_from_guest_phys
    - ASSERT_UNREACHABLE
    - hvmemul_cache_disable
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_movs(\n   enum x86_segment src_seg,\n   unsigned long
      src_offset,\n   enum x86_segment dst_seg,\n   unsigned long dst_offset,\n   unsigned
      int bytes_per_rep,\n   unsigned long *reps,\n   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2124,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2131,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2143,1
    - Dst: hvmemul_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2151,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2158,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2170,1
    - Dst: CASE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2191,1
    - Dst: CASE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2192,1
    - Dst: CASE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2193,1
    - Dst: CASE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2194,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2198,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2199,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2207,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2210,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2219,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2228,1
    - Dst: latch_linear_to_phys
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2236,1
    - Dst: hvmemul_do_mmio_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 6
    argNames:
    - p_data
    - seg
    - offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - void*
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2115
    functionDepth: 5
    functionLinenumber: 2115
    functionLinenumberEnd: 2240
    functionName: hvmemul_rep_stos
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - gdprintk
    - latch_linear_to_phys
    - container_of
    - hvmemul_virtual_to_linear
    - xvfree
    - hvm_copy_to_guest_phys
    - hvmemul_do_mmio_buffer
    - pfn_to_paddr
    - ASSERT_UNREACHABLE
    - get_gfn_query_unlocked
    - CASE
    - hvmemul_linear_to_phys
    linkageType: ''
    returnType: int
    signature: "int hvmemul_rep_stos(\n    void *p_data,\n    enum x86_segment seg,\n
      \   unsigned long offset,\n    unsigned int bytes_per_rep,\n    unsigned long
      *reps,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bits
    - ','
    - suffix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2191
    functionName: CASE
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(bits, suffix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2248,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2249,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2251,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2242
    functionDepth: 1
    functionLinenumber: 2242
    functionLinenumberEnd: 2257
    functionName: hvmemul_read_segment
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - hvmemul_get_seg_reg
    - PTR_ERR
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_segment(\n    enum x86_segment seg,\n    struct segment_register
      *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2265,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2268,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2272,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2259
    functionDepth: 0
    functionLinenumber: 2259
    functionLinenumberEnd: 2276
    functionName: hvmemul_write_segment
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - ARRAY_SIZE
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_segment(\n    enum x86_segment seg,\n    const struct
      segment_register *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2285,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2289,1
    - Dst: set_context_data
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2290,1
    - Dst: hvmemul_do_pio_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2278
    functionDepth: 5
    functionLinenumber: 2278
    functionLinenumberEnd: 2293
    functionName: hvmemul_read_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_pio_buffer
    - unlikely
    - set_context_data
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_io(\n    unsigned int port,\n    unsigned int bytes,\n
      \   unsigned long *val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_do_pio_buffer
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2295
    functionDepth: 5
    functionLinenumber: 2295
    functionLinenumberEnd: 2302
    functionName: hvmemul_write_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvmemul_do_pio_buffer
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_io(\n    unsigned int port,\n    unsigned int bytes,\n
      \   unsigned long val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2322,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2322,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - reg
    - pval
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2304
    functionDepth: 1
    functionLinenumber: 2304
    functionLinenumberEnd: 2334
    functionName: hvmemul_read_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - TRACE
    - vlapic_get_reg
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_cr(\n    unsigned int reg,\n    unsigned long *pval,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2344,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2348,1
    - Dst: hvm_pcid_enabled
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2358,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2362,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2367,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2377,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2377,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2336
    functionDepth: 1
    functionLinenumber: 2336
    functionLinenumberEnd: 2390
    functionName: hvmemul_write_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - vlapic_set_reg
    - hvm_set_cr4
    - hvm_pcid_enabled
    - TRACE
    - x86_emul_hw_exception
    - hvm_set_cr0
    - vcpu_vlapic
    - hvm_set_cr3
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_cr(\n    unsigned int reg,\n    unsigned long val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_read_xcr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2397,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2403
    functionName: hvmemul_read_xcr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - x86emul_read_xcr
    - TRACE
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_xcr(\n    unsigned int reg,\n    uint64_t *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2410,1
    - Dst: x86emul_write_xcr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2405
    functionDepth: 1
    functionLinenumber: 2405
    functionLinenumberEnd: 2413
    functionName: hvmemul_write_xcr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - TRACE
    - x86emul_write_xcr
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_xcr(\n    unsigned int reg,\n    uint64_t val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2420,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2426
    functionName: hvmemul_read_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - x86_emul_hw_exception
    - hvm_msr_read_intercept
    linkageType: ''
    returnType: int
    signature: "int hvmemul_read_msr(\n    unsigned int reg,\n    uint64_t *val,\n
      \   struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2434,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - reg
    - val
    - ctxt
    - explicit
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2440
    functionName: hvmemul_write_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - x86_emul_hw_exception
    - hvm_msr_write_intercept
    linkageType: ''
    returnType: int
    signature: "int hvmemul_write_msr(\n    unsigned int reg,\n    uint64_t val,\n
      \   struct x86_emulate_ctxt *ctxt,\n    bool explicit)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2449,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2452,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2464,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2464,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2466,1
    - Dst: hvmemul_map_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2476,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2477,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2479,1
    - Dst: clwb
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2485,1
    - Dst: clflushopt
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2487,1
    - Dst: clflush
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2489,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2491,1
    - Dst: hvmemul_unmap_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2495,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2499,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - op
    - seg
    - offset
    - ctxt
    argTypes:
    - enum x86emul_cache_op
    - enum x86_segment
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2442
    functionDepth: 2
    functionLinenumber: 2442
    functionLinenumberEnd: 2512
    functionName: hvmemul_cache_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - hvmemul_map_linear_addr
    - container_of
    - hvmemul_virtual_to_linear
    - clflush
    - clwb
    - hvmemul_unmap_linear_addr
    - IS_ERR_OR_NULL
    - ASSERT
    - cache_flush_permitted
    - alternative_vcall
    - clflushopt
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int hvmemul_cache_op(\n    enum x86emul_cache_op op,\n    enum x86_segment
      seg,\n    unsigned long offset,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2521,1
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2525,1
    - Dst: save_fpu_enable
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2539,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2550,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - type
    - ctxt
    argTypes:
    - enum x86_emulate_fpu_type
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2514
    functionDepth: 6
    functionLinenumber: 2514
    functionLinenumberEnd: 2557
    functionName: hvmemul_get_fpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - VCPU_MAP_XSAVE_AREA
    - ASSERT
    - alternative_vcall
    - save_fpu_enable
    - VCPU_UNMAP_XSAVE_AREA
    linkageType: ''
    returnType: int
    signature: "int hvmemul_get_fpu(\n    enum x86_emulate_fpu_type type,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2569,1
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2572,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2574,1
    - Dst: save_fpu_enable
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2584,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2586,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2620,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2626,1
    - Dst: vcpu_restore_fpu_nonlazy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2642,1
    - Dst: stts
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2646,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2647,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - ctxt
    - backout
    - aux
    argTypes:
    - struct x86_emulate_ctxt*
    - enum x86_emulate_fpu_type
    - struct x86_emul_fpu_aux*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2559
    functionDepth: 6
    functionLinenumber: 2559
    functionLinenumberEnd: 2650
    functionName: hvmemul_put_fpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - VCPU_MAP_XSAVE_AREA
    - boot_cpu_has
    - ASSERT
    - ASSERT_UNREACHABLE
    - alternative_vcall
    - stts
    - VCPU_UNMAP_XSAVE_AREA
    - save_fpu_enable
    - vcpu_restore_fpu_nonlazy
    - hvm_guest_x86_mode
    linkageType: ''
    returnType: void
    signature: "void hvmemul_put_fpu(\n    struct x86_emulate_ctxt *ctxt,\n    enum
      x86_emulate_fpu_type backout,\n    const struct x86_emul_fpu_aux *aux)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2659,1
    - Dst: hvmemul_virtual_to_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2665,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2678,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2683,1
    - Dst: x86emul_invpcid_type
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2687,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2689,1
    - Dst: x86emul_invpcid_pcid
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2692,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2697,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - op
    - addr
    - aux
    - ctxt
    argTypes:
    - enum x86emul_tlb_op
    - unsigned long
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2652
    functionDepth: 2
    functionLinenumber: 2652
    functionLinenumberEnd: 2707
    functionName: hvmemul_tlb_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - x86_emul_reset_event
    - paging_invlpg
    - container_of
    - x86emul_invpcid_pcid
    - x86emul_invpcid_type
    - hvmemul_virtual_to_linear
    - x86_emul_hw_exception
    - hvm_asid_flush_vcpu
    linkageType: ''
    returnType: int
    signature: "int hvmemul_tlb_op(\n    enum x86emul_tlb_op op,\n    unsigned long
      addr,\n    unsigned long aux,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2717,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2725
    functionName: hvmemul_vmfunc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - x86_emul_hw_exception
    linkageType: ''
    returnType: int
    signature: "int hvmemul_vmfunc(\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2779,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2783,1
    - Dst: hvm_emulate_init_per_insn
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2785,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2790,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2794,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2808,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2813,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2815,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2819,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2824,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2847,1
    - Dst: hvm_local_events_need_delivery
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2852,1
    - Dst: hvm_hlt
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2854,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - hvmemul_ctxt
    - ops
    - completion
    argTypes:
    - struct hvm_emulate_ctxt*
    - struct x86_emulate_ops*
    - enum vio_completion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2762
    functionDepth: 3
    functionLinenumber: 2762
    functionLinenumberEnd: 2858
    functionName: _hvm_emulate_one
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - hvm_hlt
    - hvm_inject_hw_exception
    - hvm_local_events_need_delivery
    - BUILD_BUG_ON
    - ASSERT
    - x86_emulate
    - alternative_vcall
    - ioreq_needs_completion
    - hvm_emulate_init_per_insn
    - memcpy
    - ASSERT_UNREACHABLE
    - hvmemul_cache_disable
    linkageType: ''
    returnType: int
    signature: "int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt,\n    const
      struct x86_emulate_ops *ops,\n    enum vio_completion completion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hvmemul_ctxt
    - completion
    argTypes:
    - struct hvm_emulate_ctxt*
    - enum vio_completion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2860
    functionDepth: 4
    functionLinenumber: 2860
    functionLinenumberEnd: 2865
    functionName: hvm_emulate_one
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 2
    functionsReached:
    - _hvm_emulate_one
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_one(\n    struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   enum vio_completion completion)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2901,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2901,1
    - Dst: _hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2906,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2913,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2915,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2922,1
    - Dst: hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2928,1
    - Dst: hvm_monitor_emul_unimplemented
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2943,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2947,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2948,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2951,1
    - Dst: hvm_emulate_writeback
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - kind
    - trapnr
    - errcode
    argTypes:
    - enum emul_kind
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2895
    functionDepth: 5
    functionLinenumber: 2895
    functionLinenumberEnd: 2956
    functionName: hvm_emulate_one_vm_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - hvm_monitor_emul_unimplemented
    - hvm_inject_hw_exception
    - BUILD_BUG_ON
    - hvm_emulate_writeback
    - ASSERT
    - hvm_dump_emulation_state
    - _hvm_emulate_one
    - hvm_emulate_init_once
    - hvm_inject_event
    - memcpy
    - hvm_emulate_one
    linkageType: ''
    returnType: void
    signature: "void hvm_emulate_one_vm_event(enum emul_kind kind, unsigned int trapnr,\n
      \   unsigned int errcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2966,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2969,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2970,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - hvmemul_ctxt
    - validate
    - regs
    argTypes:
    - struct hvm_emulate_ctxt*
    - hvm_emulate_validate_t*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2959
    functionDepth: 1
    functionLinenumber: 2959
    functionLinenumberEnd: 2977
    functionName: hvm_emulate_init_once
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 2
    functionsReached:
    - memset
    - alternative_call
    - hvmemul_get_seg_reg
    linkageType: ''
    returnType: void
    signature: "void hvm_emulate_init_once(\n    struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   hvm_emulate_validate_t *validate,\n    struct cpu_user_regs *regs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:2986,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3004,1
    - Dst: hvm_get_insn_bytes
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3007,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3016,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3023,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - hvmemul_ctxt
    - insn_buf
    - insn_bytes
    argTypes:
    - struct hvm_emulate_ctxt*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 2979
    functionDepth: 1
    functionLinenumber: 2979
    functionLinenumberEnd: 3030
    functionName: hvm_emulate_init_per_insn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - hvm_get_insn_bytes
    - hvm_virtual_to_linear_addr
    - hvm_copy_from_guest_linear
    - hvm_long_mode_active
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void hvm_emulate_init_per_insn(\n    struct hvm_emulate_ctxt *hvmemul_ctxt,\n
      \   const unsigned char *insn_buf,\n    unsigned int insn_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_set_bit
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3038,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hvmemul_ctxt
    argTypes:
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3040
    functionName: hvm_emulate_writeback
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 2
    functionsReached:
    - hvm_set_segment_register
    - for_each_set_bit
    linkageType: ''
    returnType: void
    signature: "void hvm_emulate_writeback(\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3052,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3053,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3055,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - seg
    - hvmemul_ctxt
    argTypes:
    - enum x86_segment
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 3046
    functionDepth: 1
    functionLinenumber: 3046
    functionLinenumberEnd: 3058
    functionName: hvmemul_get_seg_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 3
    functionsReached:
    - __test_and_set_bit
    - ERR_PTR
    - hvm_get_segment_register
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct segment_register
    signature: "struct segment_register *hvmemul_get_seg_reg(\n    enum x86_segment
      seg,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3060
    functionDepth: 0
    functionLinenumber: 3060
    functionLinenumberEnd: 3071
    functionName: guest_x86_mode_to_str
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *guest_x86_mode_to_str(int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_x86_mode_to_str
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3077,1
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3077,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3079,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - loglvl
    - prefix
    - hvmemul_ctxt
    - rc
    argTypes:
    - char*
    - char*
    - struct hvm_emulate_ctxt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3073
    functionDepth: 2
    functionLinenumber: 3073
    functionLinenumberEnd: 3085
    functionName: hvm_dump_emulation_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 2
    functionsReached:
    - printk
    - hvm_guest_x86_mode
    - hvmemul_get_seg_reg
    - guest_x86_mode_to_str
    linkageType: ''
    returnType: void
    signature: "void hvm_dump_emulation_state(const char *loglvl, const char *prefix,\n
      \                             struct hvm_emulate_ctxt *hvmemul_ctxt, int rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xvmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3104,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3114,1
    - Dst: xvmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3087
    functionDepth: 1
    functionLinenumber: 3087
    functionLinenumberEnd: 3124
    functionName: hvmemul_cache_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 0
    functionsReached:
    - xvmalloc_flex_struct
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int hvmemul_cache_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3126
    functionDepth: 0
    functionLinenumber: 3126
    functionLinenumberEnd: 3134
    functionName: hvmemul_cache_disable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hvmemul_cache_disable(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - token
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3136
    functionDepth: 0
    functionLinenumber: 3136
    functionLinenumberEnd: 3142
    functionName: hvmemul_cache_restore
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 3
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void hvmemul_cache_restore(struct vcpu *v, unsigned int token)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3151,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3159,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - v
    - gpa
    - buffer
    - size
    argTypes:
    - struct vcpu*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3174
    functionName: hvmemul_read_cache
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - hvmemul_read_cache
    - is_hvm_vcpu
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool hvmemul_read_cache(const struct vcpu *v, paddr_t gpa,\n                        void
      *buffer, unsigned int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3183,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3191,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3200,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3204,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3206,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/emulate.c:3213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - v
    - gpa
    - buffer
    - size
    argTypes:
    - struct vcpu*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3176
    functionDepth: 1
    functionLinenumber: 3176
    functionLinenumberEnd: 3216
    functionName: hvmemul_write_cache
    functionSourceFile: /src/xen/xen/arch/x86/hvm/emulate.c
    functionUses: 1
    functionsReached:
    - is_hvm_vcpu
    - hvmemul_write_cache
    - unlikely
    - domain_crash
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void hvmemul_write_cache(const struct vcpu *v, paddr_t gpa,\n                         const
      void *buffer, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_mmio
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: arch_ioreq_complete_mmio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - handle_mmio
    linkageType: ''
    returnType: bool
    signature: bool arch_ioreq_complete_mmio(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:42,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:42,1
    - Dst: vmx_realmode_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:43,1
    - Dst: hvm_emulate_writeback
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:44,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - completion
    argTypes:
    - enum vio_completion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: arch_vcpu_ioreq_completion
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - hvm_emulate_writeback
    - vmx_realmode_emulate_one
    - hvm_emulate_init_once
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool arch_vcpu_ioreq_completion(enum vio_completion completion)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:63,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:67,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: hvm_alloc_legacy_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - _gfn
    - BUILD_BUG_ON
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t hvm_alloc_legacy_ioreq_gfn(struct ioreq_server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:81,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:82,1
    - Dst: hvm_alloc_legacy_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: hvm_alloc_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - _gfn
    - hvm_alloc_legacy_ioreq_gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t hvm_alloc_ioreq_gfn(struct ioreq_server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:100,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:100,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s
    - gfn
    argTypes:
    - struct ioreq_server*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: hvm_free_legacy_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - gfn_eq
    - _gfn
    - set_bit
    linkageType: ''
    returnType: bool
    signature: "bool hvm_free_legacy_ioreq_gfn(struct ioreq_server *s,\n                                      gfn_t
      gfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:113,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:115,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:115,1
    - Dst: hvm_free_legacy_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:117,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:119,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - gfn
    argTypes:
    - struct ioreq_server*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: hvm_free_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - ASSERT
    - gfn_eq
    - hvm_free_legacy_ioreq_gfn
    - set_bit
    linkageType: ''
    returnType: void
    signature: void hvm_free_ioreq_gfn(struct ioreq_server *s, gfn_t gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:128,1
    - Dst: destroy_ring_for_helper
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:131,1
    - Dst: hvm_free_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: hvm_unmap_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - gfn_eq
    - destroy_ring_for_helper
    - hvm_free_ioreq_gfn
    linkageType: ''
    returnType: void
    signature: void hvm_unmap_ioreq_gfn(struct ioreq_server *s, bool buf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:151,1
    - Dst: hvm_alloc_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:160,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:162,1
    - Dst: prepare_ring_for_helper
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:165,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:165,1
    - Dst: hvm_unmap_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 172
    functionName: hvm_map_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - hvm_alloc_ioreq_gfn
    - gfn_x
    - prepare_ring_for_helper
    - gfn_eq
    - hvm_unmap_ioreq_gfn
    linkageType: ''
    returnType: int
    signature: int hvm_map_ioreq_gfn(struct ioreq_server *s, bool buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:179,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:182,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:182,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:183,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: hvm_remove_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - clear_page
    - gfn_eq
    - p2m_remove_page
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void hvm_remove_ioreq_gfn(struct ioreq_server *s, bool buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:193,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:196,1
    - Dst: p2m_add_page
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:198,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:198,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:200,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:200,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 203
    functionName: hvm_add_ioreq_gfn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - _pfn
    - clear_page
    - gfn_x
    - paging_mark_pfn_dirty
    - gfn_eq
    - p2m_add_page
    linkageType: ''
    returnType: int
    signature: int hvm_add_ioreq_gfn(struct ioreq_server *s, bool buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_map_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:209,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:211,1
    - Dst: hvm_map_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:212,1
    - Dst: hvm_unmap_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: arch_ioreq_server_map_pages
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - HANDLE_BUFIOREQ
    - hvm_map_ioreq_gfn
    - hvm_unmap_ioreq_gfn
    linkageType: ''
    returnType: int
    signature: int arch_ioreq_server_map_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_unmap_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:222,1
    - Dst: hvm_unmap_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: arch_ioreq_server_unmap_pages
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - hvm_unmap_ioreq_gfn
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_unmap_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_remove_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:228,1
    - Dst: hvm_remove_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: arch_ioreq_server_enable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - hvm_remove_ioreq_gfn
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_enable(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_add_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:234,1
    - Dst: hvm_add_ioreq_gfn
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: arch_ioreq_server_disable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - hvm_add_ioreq_gfn
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_disable(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_set_ioreq_server
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: arch_ioreq_server_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - p2m_set_ioreq_server
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_destroy(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_set_ioreq_server
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - s
    - flags
    argTypes:
    - struct domain*
    - struct ioreq_server*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: arch_ioreq_server_map_mem_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - p2m_set_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int arch_ioreq_server_map_mem_type(struct domain *d,\n                                   struct
      ioreq_server *s,\n                                   uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:256,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:256,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - d
    - s
    - flags
    argTypes:
    - struct domain*
    - struct ioreq_server*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: arch_ioreq_server_map_mem_type_completed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - p2m_change_entry_type_global
    - read_atomic
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void arch_ioreq_server_map_mem_type_completed(struct domain *d,\n
      \                                             struct ioreq_server *s,\n                                              uint32_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: relocate_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: arch_ioreq_server_destroy_all
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - relocate_portio_handler
    linkageType: ''
    returnType: bool
    signature: bool arch_ioreq_server_destroy_all(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CF8_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:277,1
    - Dst: hvm_pci_decode_addr
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:282,1
    - Dst: CF8_ADDR_HI
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:288,1
    - Dst: get_cpu_family
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:290,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:296,1
    - Dst: CF8_ADDR_HI
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:298,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 4
    argNames:
    - d
    - p
    - type
    - addr
    argTypes:
    - struct domain*
    - ioreq_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 309
    functionName: arch_ioreq_server_get_type_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - hvm_pci_decode_addr
    - CF8_ADDR_HI
    - rdmsr_safe
    - CF8_ENABLED
    - get_cpu_family
    linkageType: ''
    returnType: bool
    signature: "bool arch_ioreq_server_get_type_addr(const struct domain *d,\n                                     const
      ioreq_t *p,\n                                     uint8_t *type,\n                                     uint64_t
      *addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: hvm_access_cf8
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hvm_access_cf8(\n    int dir, unsigned int port, unsigned int
      bytes, uint32_t *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/ioreq.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: arch_ioreq_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/ioreq.c
    functionUses: 0
    functionsReached:
    - register_portio_handler
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pat_cr
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: pat_cr_2_paf
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pat_cr_2_paf(pat_cr, n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pat_cr_2_paf
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:79,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: hvm_mtrr_pat_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - pat_cr_2_paf
    linkageType: ''
    returnType: int
    signature: int hvm_mtrr_pat_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:99,1
    - Dst: cacheattr_to_pte_flags
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pat_type
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: pat_type_2_pte_flags
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - cacheattr_to_pte_flags
    - unlikely
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t pat_type_2_pte_flags(uint8_t pat_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:109,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:109,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:115,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:115,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:116,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:121,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:123,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:139,1
    - Dst: mtrr_fix_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:147,1
    - Dst: mtrr_var_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:152,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:152,1
    - Dst: mtrr_var_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:154,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:154,1
    - Dst: mtrr_def_type_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:158,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:160,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 166
    functionName: hvm_vcpu_cacheattr_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - mtrr_def_type_msr_set
    - xzalloc_array
    - MSR_IA32_MTRR_PHYSBASE
    - ASSERT
    - mtrr_fix_range_msr_set
    - printk
    - MSR_IA32_MTRR_PHYSMASK
    - memset
    - mtrr_var_range_msr_set
    - is_hardware_domain
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int hvm_vcpu_cacheattr_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: hvm_vcpu_cacheattr_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void hvm_vcpu_cacheattr_destroy(struct vcpu *v)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:184,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:186,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:236,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:251,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:255,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - m
    - pa
    - order
    argTypes:
    - struct mtrr_state*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 272
    functionName: mtrr_get_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - unlikely
    - likely
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int mtrr_get_type(const struct mtrr_state *m, paddr_t pa, unsigned
      int order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pat_cr_2_paf
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pat_cr
    - pte_flags
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: page_pat_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - pat_cr_2_paf
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t page_pat_type(uint64_t pat_cr, uint32_t pte_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_get_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:309,1
    - Dst: page_pat_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - m
    - pat
    - gpa
    - pte_flags
    - gmtrr_mtype
    argTypes:
    - struct mtrr_state*
    - uint64_t
    - paddr_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: effective_mm_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - mtrr_get_type
    - page_pat_type
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t effective_mm_type(struct mtrr_state *m,\n                                 uint64_t
      pat,\n                                 paddr_t gpa,\n                                 uint32_t
      pte_flags,\n                                 uint8_t gmtrr_mtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: effective_mm_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:333,1
    - Dst: mtrr_get_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:336,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:350,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:350,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:351,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:352,1
    - Dst: pat_type_2_pte_flags
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - v
    - gl1e_flags
    - gpaddr
    - spaddr
    - gmtrr_mtype
    argTypes:
    - struct vcpu*
    - uint32_t
    - paddr_t
    - paddr_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 362
    functionName: get_pat_flags
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - mtrr_get_type
    - p2m_is_ram
    - pat_type_2_pte_flags
    - paddr_to_pfn
    - effective_mm_type
    - get_gfn_query_unlocked
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t get_pat_flags(struct vcpu *v,\n                       uint32_t
      gl1e_flags,\n                       paddr_t gpaddr,\n                       paddr_t
      spaddr,\n                       uint8_t gmtrr_mtype)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: valid_mtrr_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_mtrr_type(uint8_t type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:384,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:385,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:387,1
    - Dst: valid_mtrr_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:387,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:389,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:393,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:395,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - d
    - m
    - msr_content
    argTypes:
    - struct domain*
    - struct mtrr_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 410
    functionName: mtrr_def_type_msr_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 1
    functionsReached:
    - valid_mtrr_type
    - memory_type_changed
    - unlikely
    - HVM_DBG_LOG
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: "bool mtrr_def_type_msr_set(struct domain *d, struct mtrr_state *m,\n
      \                          uint64_t msr_content)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:423,1
    - Dst: valid_mtrr_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:423,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - d
    - m
    - row
    - msr_content
    argTypes:
    - struct domain*
    - struct mtrr_state*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 433
    functionName: mtrr_fix_range_msr_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 1
    functionsReached:
    - memory_type_changed
    - valid_mtrr_type
    - unlikely
    linkageType: ''
    returnType: bool
    signature: "bool mtrr_fix_range_msr_set(struct domain *d, struct mtrr_state *m,\n
      \                           uint32_t row, uint64_t msr_content)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:442,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:443,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:445,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:452,1
    - Dst: valid_mtrr_type
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:452,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:461,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:463,1
    - Dst: is_var_mtrr_overlapped
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:470,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - d
    - m
    - msr
    - msr_content
    argTypes:
    - struct domain*
    - struct mtrr_state*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 476
    functionName: mtrr_var_range_msr_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 1
    functionsReached:
    - valid_mtrr_type
    - is_var_mtrr_overlapped
    - MSR_IA32_MTRR_PHYSBASE
    - memory_type_changed
    - unlikely
    - HVM_DBG_LOG
    - ASSERT_UNREACHABLE
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: "bool mtrr_var_range_msr_set(\n    struct domain *d, struct mtrr_state
      *m, uint32_t msr, uint64_t msr_content)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:488,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:499,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:504,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - vd
    - vs
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 512
    functionName: mtrr_pat_not_equal
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: bool mtrr_pat_not_equal(const struct vcpu *vd, const struct vcpu *vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: hvm_init_cacheattr_region_list
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void hvm_init_cacheattr_region_list(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:533,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:535,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:538,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 541
    functionName: hvm_destroy_cacheattr_region_list
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - list_del
    - list_empty
    - list_entry
    - xfree
    linkageType: ''
    returnType: void
    signature: void hvm_destroy_cacheattr_region_list(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:550,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:550,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:552,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:553,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:557,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:558,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:563,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:564,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 573
    functionName: hvm_get_mem_pinned_cacheattr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - list_for_each_entry_rcu
    - gfn_x
    - ASSERT
    - rcu_read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int hvm_get_mem_pinned_cacheattr(struct domain *d, gfn_t gfn,\n                                 unsigned
      int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rcu
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: free_pinned_cacheattr_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_pinned_cacheattr_entry(struct rcu_head *rcu)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:588,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:598,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:599,1
    - Dst: list_del_rcu
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:604,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:605,1
    - Dst: call_rcu
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:608,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:624,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:630,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:630,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:645,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:647,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:649,1
    - Dst: list_add_rcu
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:679,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:685,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:687,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:691,1
    - Dst: p2m_memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:693,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - d
    - gfn_start
    - gfn_end
    - type
    argTypes:
    - struct domain*
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 696
    functionName: hvm_set_mem_pinned_cacheattr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - domain_unlock
    - list_for_each_entry_rcu
    - call_rcu
    - is_iommu_enabled
    - xfree
    - domain_lock
    - memory_type_changed
    - is_hvm_domain
    - cache_flush_permitted
    - p2m_memory_type_changed
    - list_add_rcu
    - list_for_each_entry
    - list_del_rcu
    linkageType: ''
    returnType: int
    signature: "int hvm_set_mem_pinned_cacheattr(struct domain *d, uint64_t gfn_start,\n
      \                                uint64_t gfn_end, uint32_t type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:703,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:705,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:710,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:711,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:713,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:715,1
    - Dst: hvm_get_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:719,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:721,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:727,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:730,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 734
    functionName: hvm_save_mtrr_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    - MASK_INSR
    - ARRAY_SIZE
    - hvm_get_guest_pat
    - BUILD_BUG_ON
    - dprintk
    - memcpy
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int hvm_save_mtrr_msr(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:743,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:746,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:751,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:754,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:756,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:758,1
    - Dst: hvm_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:764,1
    - Dst: mtrr_fix_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:769,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:771,1
    - Dst: mtrr_var_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:773,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:774,1
    - Dst: mtrr_var_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:776,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:777,1
    - Dst: mtrr_def_type_msr_set
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 784
    functionName: hvm_load_mtrr_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 0
    functionsReached:
    - hvm_load_entry
    - mtrr_def_type_msr_set
    - hvm_load_instance
    - MSR_IA32_MTRR_PHYSBASE
    - mtrr_fix_range_msr_set
    - MSR_IA32_MTRR_PHYSMASK
    - mtrr_var_range_msr_set
    - dprintk
    - hvm_set_guest_pat
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int hvm_load_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:791,1
    - Dst: p2m_memory_type_changed
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:792,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:805,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:806,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/hvm/mtrr.c:808,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 810
    functionName: memory_type_changed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/mtrr.c
    functionUses: 5
    functionsReached:
    - boot_cpu_has
    - cache_flush_permitted
    - p2m_memory_type_changed
    - flush_all
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void memory_type_changed(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:51,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:51,1
    - Dst: hvm_isa_irq_assert
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:54,1
    - Dst: hvm_isa_irq_deassert
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - PMTState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: pmt_update_sci
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - hvm_isa_irq_assert
    - ASSERT
    - spin_is_locked
    - hvm_isa_irq_deassert
    linkageType: ''
    returnType: void
    signature: void pmt_update_sci(PMTState *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:63,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:66,1
    - Dst: pmt_update_sci
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:68,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: hvm_acpi_power_button
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - has_vpm
    - spin_unlock
    - pmt_update_sci
    linkageType: ''
    returnType: void
    signature: void hvm_acpi_power_button(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:76,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:79,1
    - Dst: pmt_update_sci
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:81,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: hvm_acpi_sleep_button
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - has_vpm
    - spin_unlock
    - pmt_update_sci
    linkageType: ''
    returnType: void
    signature: void hvm_acpi_sleep_button(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:93,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:93,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:96,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:104,1
    - Dst: pmt_update_sci
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - PMTState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 112
    functionName: pmt_update_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - hvm_get_guest_time
    - write_atomic
    - spin_is_locked
    - ASSERT
    - pmt_update_sci
    linkageType: ''
    returnType: void
    signature: void pmt_update_time(PMTState *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:123,1
    - Dst: pmt_update_time
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:126,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:139,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:139,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:139,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 117
    functionDepth: 7
    functionLinenumber: 117
    functionLinenumberEnd: 142
    functionName: pmt_timer_callback
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - pmt_update_time
    - set_timer
    - spin_lock
    - MILLISECS
    - NOW
    linkageType: ''
    returnType: void
    signature: void pmt_timer_callback(void *opaque)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:159,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:185,1
    - Dst: pmt_update_sci
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:192,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:203,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 206
    functionName: handle_evt_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - gdprintk
    - pmt_update_sci
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: "int handle_evt_io(\n    int dir, unsigned int port, unsigned int bytes,
      uint32_t *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:219,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:222,1
    - Dst: pmt_update_time
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:225,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:227,1
    - Dst: spin_barrier
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:236,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: handle_pmt_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - spin_unlock
    - pmt_update_time
    - spin_barrier
    - read_atomic
    - spin_trylock
    linkageType: ''
    returnType: int
    signature: "int handle_pmt_io(\n    int dir, unsigned int port, unsigned int bytes,
      uint32_t *val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:251,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:254,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:260,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:268,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 273
    functionName: acpi_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - hvm_save_entry
    - hvm_get_guest_time
    - has_vpm
    - spin_lock
    linkageType: ''
    returnType: int
    signature: int acpi_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:280,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:283,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:286,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:288,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:293,1
    - Dst: pmt_update_sci
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:297,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 302
    functionName: acpi_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - hvm_get_guest_time
    - has_vpm
    - hvm_load_entry
    - spin_lock
    - pmt_update_sci
    linkageType: ''
    returnType: int
    signature: int acpi_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:311,1
    - Dst: relocate_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:326,1
    - Dst: relocate_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:327,1
    - Dst: relocate_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:332,1
    - Dst: relocate_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - d
    - version
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 337
    functionName: pmtimer_change_ioport
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - relocate_portio_handler
    - has_vpm
    linkageType: ''
    returnType: int
    signature: int pmtimer_change_ioport(struct domain *d, uint64_t version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:343,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:346,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:354,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:355,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:358,1
    - Dst: pmt_timer_callback
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 360
    functionName: pmtimer_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - pmt_timer_callback
    - has_vpm
    - register_portio_handler
    - spin_lock_init
    - init_timer
    linkageType: ''
    returnType: void
    signature: void pmtimer_init(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:367,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: pmtimer_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - kill_timer
    - has_vpm
    linkageType: ''
    returnType: void
    signature: void pmtimer_deinit(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpm
      Src: /src/xen/xen/arch/x86/hvm/pmtimer.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: pmtimer_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/pmtimer.c
    functionUses: 0
    functionsReached:
    - has_vpm
    linkageType: ''
    returnType: void
    signature: void pmtimer_reset(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:120,1
    - Dst: hvm_cpu_down
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:123,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:127,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 134
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_cpu_down
    - alternative_call
    - alternative_vcall
    - notifier_from_errno
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:144,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fns
    argTypes:
    - struct hvm_function_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: hap_supported
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 5
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: bool hap_supported(struct hvm_function_table *fns)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:162,1
    - Dst: start_vmx
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:163,1
    - Dst: using_svm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:164,1
    - Dst: start_svm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:165,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:170,1
    - Dst: vmx_fill_funcs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:171,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:172,1
    - Dst: svm_fill_funcs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:173,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:180,1
    - Dst: hap_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:181,1
    - Dst: clear_iommu_hap_pt_share
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:182,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:185,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:186,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:189,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:195,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:199,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:206,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:212,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:214,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:215,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:217,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 220
    functionName: hvm_enable
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - start_vmx
    - __clear_bit
    - warning_add
    - using_vmx
    - IS_ENABLED
    - vmx_fill_funcs
    - clear_iommu_hap_pt_share
    - register_cpu_notifier
    - using_svm
    - svm_fill_funcs
    - printk
    - hap_supported
    - memset
    - start_svm
    linkageType: ''
    returnType: int
    signature: int hvm_enable(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - type
    - vector
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: hvm_event_needs_reinjection
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hvm_event_needs_reinjection(uint8_t type, uint8_t vector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_triple_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - vec1
    - vec2
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 284
    functionName: hvm_combine_hw_exceptions
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_triple_fault
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t hvm_combine_hw_exceptions(uint8_t vec1, uint8_t vec2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:290,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - enable
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: hvm_set_rdtsc_exiting
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_set_rdtsc_exiting(struct domain *d, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - guest_pat
    argTypes:
    - struct vcpu*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: hvm_get_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: void
    signature: void hvm_get_guest_pat(struct vcpu *v, uint64_t *guest_pat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 331
    functionName: pat_valid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pat_valid(uint64_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pat_valid
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:335,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - guest_pat
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: hvm_set_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - alternative_call
    - pat_valid
    linkageType: ''
    returnType: int
    signature: int hvm_set_guest_pat(struct vcpu *v, uint64_t guest_pat)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - gtsc_khz
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 377
    functionName: hvm_get_tsc_scaling_ratio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 hvm_get_tsc_scaling_ratio(u32 gtsc_khz)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - tsc
    argTypes:
    - struct domain*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 394
    functionName: hvm_scale_tsc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 hvm_scale_tsc(const struct domain *d, u64 tsc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_time_fixed
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:403,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:404,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:408,1
    - Dst: hvm_scale_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:410,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - v
    - guest_tsc
    - at_tsc
    argTypes:
    - struct vcpu*
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: hvm_set_guest_tsc_fixed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_set_tsc_offset
    - hvm_get_guest_time_fixed
    - gtime_to_gtsc
    - rdtsc
    - hvm_scale_tsc
    linkageType: ''
    returnType: void
    signature: void hvm_set_guest_tsc_fixed(struct vcpu *v, u64 guest_tsc, u64 at_tsc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: hvm_set_guest_tsc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_set_guest_tsc(v, t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:425,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - guest_tsc
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 429
    functionName: hvm_set_guest_tsc_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_set_guest_tsc
    - update_vcpu_system_time
    linkageType: ''
    returnType: void
    signature: void hvm_set_guest_tsc_msr(struct vcpu *v, u64 guest_tsc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:434,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - tsc_adjust
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: hvm_set_guest_tsc_adjust
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - update_vcpu_system_time
    - hvm_set_tsc_offset
    linkageType: ''
    returnType: void
    signature: void hvm_set_guest_tsc_adjust(struct vcpu *v, u64 tsc_adjust)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_time_fixed
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:446,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:447,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:451,1
    - Dst: hvm_scale_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - v
    - at_tsc
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 457
    functionName: hvm_get_guest_tsc_fixed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - rdtsc
    - gtime_to_gtsc
    - hvm_scale_tsc
    - hvm_get_guest_time_fixed
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hvm_get_guest_tsc_fixed(struct vcpu *v, uint64_t at_tsc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:462,1
    - Dst: hvmemul_cancel
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 465
    functionName: hvm_set_info_guest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - alternative_vcall
    - hvmemul_cancel
    linkageType: ''
    returnType: void
    signature: void hvm_set_info_guest(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtc_migrate_timers
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:469,1
    - Dst: pt_migrate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: hvm_migrate_timers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - rtc_migrate_timers
    - pt_migrate
    linkageType: ''
    returnType: void
    signature: void hvm_migrate_timers(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:475,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:475,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:476,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:476,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:484,1
    - Dst: dpci_pirq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:484,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:488,1
    - Dst: MSI_IRQ
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:488,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:489,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:489,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - pirq_dpci
    - v
    argTypes:
    - struct hvm_pirq_dpci*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 492
    functionName: hvm_migrate_pirq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_spin_lock_irq_desc
    - MSI_IRQ
    - irq_set_affinity
    - dpci_pirq
    - spin_unlock_irq
    - ASSERT
    - hvm_domain_irq
    - cpumask_of
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void hvm_migrate_pirq(struct hvm_pirq_dpci *pirq_dpci, const struct
      vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_migrate_pirq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - pirq_dpci
    - arg
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: migrate_pirq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - hvm_migrate_pirq
    linkageType: ''
    returnType: int
    signature: "int migrate_pirq(\n    struct domain *d, struct hvm_pirq_dpci *pirq_dpci,
      void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:506,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:506,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:509,1
    - Dst: pt_pirq_iterate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:510,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 512
    functionName: hvm_migrate_pirqs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - pt_pirq_iterate
    - hvm_domain_irq
    - read_lock
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void hvm_migrate_pirqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - info
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: hvm_get_pending_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: bool
    signature: bool hvm_get_pending_event(struct vcpu *v, struct x86_event *info)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_wakeup_from_wait
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:523,1
    - Dst: pt_restore_timer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:525,1
    - Dst: has_vpci
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:527,1
    - Dst: vpci_process_pending
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:527,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:529,1
    - Dst: vcpu_ioreq_handle_completion
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:533,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:536,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:536,1
    - Dst: hvm_vm_event_do_resume
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:537,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:542,1
    - Dst: hvm_event_pending
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:544,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:545,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:550,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:550,1
    - Dst: hvm_get_pending_event
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:555,1
    - Dst: hvm_monitor_interrupt
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:557,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 562
    functionName: hvm_do_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - check_wakeup_from_wait
    - has_vpci
    - vpci_process_pending
    - raise_softirq
    - pt_restore_timer
    - vcpu_ioreq_handle_completion
    - smp_rmb
    - hvm_monitor_interrupt
    - hvm_event_pending
    - unlikely
    - hvm_get_pending_event
    - vm_event_is_enabled
    - hvm_inject_event
    - hvm_vm_event_do_resume
    linkageType: ''
    returnType: void
    signature: void hvm_do_resume(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:571,1
    - Dst: is_console_printable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:583,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:586,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:587,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:587,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:590,1
    - Dst: guest_printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:593,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 599
    functionName: hvm_print_line
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ARRAY_SIZE
    - is_console_printable
    - guest_printk
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: int
    signature: "int hvm_print_line(\n    int dir, unsigned int port, unsigned int
      bytes, uint32_t *val)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:609,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:614,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:615,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:616,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:617,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:618,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:619,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:620,1
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:622,1
    - Dst: hvm_init_cacheattr_region_list
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:626,1
    - Dst: paging_enable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:628,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:632,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:633,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:634,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:635,1
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:637,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:646,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:648,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:649,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:649,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:654,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:657,1
    - Dst: _xmalloc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:659,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:665,1
    - Dst: register_g2m_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:670,1
    - Dst: register_vpci_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:671,1
    - Dst: ioreq_domain_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:673,1
    - Dst: hvm_init_guest_time
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:675,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:680,1
    - Dst: vpic_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:695,1
    - Dst: vioapic_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:697,1
    - Dst: stdvga_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:701,1
    - Dst: rtc_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:703,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:705,1
    - Dst: subpage_ro_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:707,1
    - Dst: register_subpage_ro_handler
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:708,1
    - Dst: viridian_domain_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:713,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:717,1
    - Dst: vioapic_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:724,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:726,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:727,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:728,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:729,1
    - Dst: hvm_destroy_cacheattr_region_list
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:731,1
    - Dst: destroy_perdomain_mapping
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:732,1
    - Dst: hvm_domain_relinquish_resources
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:734,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:735,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:736,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 101
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 601
    functionDepth: 3
    functionLinenumber: 601
    functionLinenumberEnd: 738
    functionName: hvm_domain_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - register_g2m_portio_handler
    - hvm_destroy_cacheattr_region_list
    - BUILD_BUG_ON
    - alternative_call
    - register_portio_handler
    - viridian_domain_init
    - vioapic_deinit
    - xfree
    - hvm_domain_relinquish_resources
    - xzalloc
    - hvm_init_guest_time
    - subpage_ro_active
    - spin_lock_init
    - XFREE
    - _xmalloc
    - paging_enable
    - xzalloc_flex_struct
    - ioreq_domain_init
    - destroy_perdomain_mapping
    - hvm_init_cacheattr_region_list
    - is_hardware_domain
    - create_perdomain_mapping
    - MASK_EXTR
    - gdprintk
    - vpic_init
    - ASSERT
    - memset
    - vioapic_init
    - rwlock_init
    - register_subpage_ro_handler
    - xzalloc_array
    - register_vpci_portio_handler
    - rtc_init
    - stdvga_init
    - hvm_domain_irq
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: "int hvm_domain_initialise(struct domain *d,\n                          const
      struct xen_domctl_createdomain *config)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:746,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:749,1
    - Dst: viridian_domain_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:751,1
    - Dst: ioreq_server_destroy_all
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:753,1
    - Dst: msixtbl_pt_cleanup
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:755,1
    - Dst: rtc_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:758,1
    - Dst: pmtimer_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:759,1
    - Dst: hpet_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:760,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:762,1
    - Dst: hvmemul_cache_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 741
    functionDepth: 5
    functionLinenumber: 741
    functionLinenumberEnd: 764
    functionName: hvm_domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - rtc_deinit
    - hpet_deinit
    - pmtimer_deinit
    - hvmemul_cache_destroy
    - msixtbl_pt_cleanup
    - alternative_vcall
    - ioreq_server_destroy_all
    - viridian_domain_deinit
    linkageType: ''
    returnType: void
    signature: void hvm_domain_relinquish_resources(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_relinquish_resources
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:776,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:778,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:779,1
    - Dst: hvm_destroy_cacheattr_region_list
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:781,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:784,1
    - Dst: vioapic_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:786,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:788,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:789,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:791,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:793,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:794,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:795,1
    - Dst: destroy_vpci_mmcfg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 766
    functionDepth: 6
    functionLinenumber: 766
    functionLinenumberEnd: 799
    functionName: hvm_domain_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - hvm_destroy_cacheattr_region_list
    - XFREE
    - destroy_vpci_mmcfg
    - list_entry
    - list_for_each_safe
    - alternative_vcall
    - list_del
    - vioapic_deinit
    - xfree
    - hvm_domain_relinquish_resources
    linkageType: ''
    returnType: void
    signature: void hvm_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 808
    functionName: hvm_save_tsc_adjust
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    linkageType: ''
    returnType: int
    signature: int hvm_save_tsc_adjust(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:812,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:818,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 828
    functionName: hvm_load_tsc_adjust
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_load_instance
    - dprintk
    - hvm_load_entry
    linkageType: ''
    returnType: int
    signature: int hvm_load_tsc_adjust(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_tsc_fixed
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:837,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:878,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:880,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:884,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:888,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:894,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:900,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:906,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:912,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:918,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:924,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:930,1
    - Dst: VCPU_MAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:938,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:940,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:941,1
    - Dst: VCPU_UNMAP_XSAVE_AREA
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:942,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 833
    functionDepth: 3
    functionLinenumber: 833
    functionLinenumberEnd: 947
    functionName: hvm_save_cpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    - VCPU_MAP_XSAVE_AREA
    - BUILD_BUG_ON
    - hvm_get_guest_tsc_fixed
    - alternative_vcall
    - memcpy
    - VCPU_UNMAP_XSAVE_AREA
    - hvm_get_segment_register
    linkageType: ''
    returnType: int
    signature: int hvm_save_cpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:971,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 3
    argNames:
    - v
    - value
    - cr0_pg
    argTypes:
    - struct vcpu*
    - uint64_t
    - signed int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 981
    functionName: hvm_efer_valid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - nestedhvm_enabled
    linkageType: ''
    returnType: char
    signature: "char *hvm_efer_valid(const struct vcpu *v, uint64_t value,\n                           signed
      int cr0_pg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:999,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1023
    functionName: hvm_cr4_guest_valid_bits
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - nestedhvm_enabled
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hvm_cr4_guest_valid_bits(const struct domain *d)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1028,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1038,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1043,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1054,1
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1059,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1062,1
    - Dst: hvm_efer_valid
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1067,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1067,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1070,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1078,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1085,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1092,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1099,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1110,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1111,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1112,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1113,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1114,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1115,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1116,1
    - Dst: UNFOLD_ARBYTES
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1117,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1121,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1125,1
    - Dst: hvm_set_guest_tsc_fixed
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1129,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1133,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1137,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1143,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1149,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1155,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1161,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1167,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1173,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1179,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1185,1
    - Dst: vcpu_setup_fpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1188,1
    - Dst: vcpu_reset_fpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1190,1
    - Dst: x86_adj_dr6_rsvd
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1214,1
    - Dst: x86_adj_dr7_rsvd
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1215,1
    - Dst: hvmemul_cancel
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1217,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1221,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1222,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 131
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1225
    functionName: hvm_load_cpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - gprintk
    - hvm_load_entry_zeroextend
    - vcpu_wake
    - hvm_cr4_guest_valid_bits
    - hvm_set_segment_register
    - vcpu_reset_fpu
    - hvm_update_guest_cr
    - printk
    - dprintk
    - MASK_EXTR
    - vcpu_setup_fpu
    - hvm_load_instance
    - clear_bit
    - hvm_efer_valid
    - x86_adj_dr7_rsvd
    - UNFOLD_ARBYTES
    - hvmemul_cancel
    - hvm_set_guest_tsc_fixed
    - x86_adj_dr6_rsvd
    linkageType: ''
    returnType: int
    signature: int hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: UNFOLD_ARBYTES
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNFOLD_ARBYTES(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xcr0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1233
    functionName: HVM_CPU_XSAVE_SIZE
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_CPU_XSAVE_SIZE(xcr0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsave_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1241,1
    - Dst: HVM_CPU_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1244,1
    - Dst: _hvm_init_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1245,1
    - Dst: expand_xsave_states
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1234
    functionDepth: 2
    functionLinenumber: 1234
    functionLinenumberEnd: 1259
    functionName: hvm_save_cpu_xsave_states
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - _hvm_init_entry
    - expand_xsave_states
    - HVM_CPU_XSAVE_SIZE
    - xsave_enabled
    linkageType: ''
    returnType: int
    signature: "int hvm_save_cpu_xsave_states(\n    struct vcpu *v, hvm_domain_context_t
      *h)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1285,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1288,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1306,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1313,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1321,1
    - Dst: validate_xstate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1334,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1338,1
    - Dst: HVM_CPU_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1345,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1358,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1364,1
    - Dst: xsave_area_compressed
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1371,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1373,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1380,1
    - Dst: compress_xsave_states
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1394
    functionName: hvm_load_cpu_xsave_states
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - xsave_area_compressed
    - HVM_CPU_XSAVE_SIZE
    - hvm_load_instance
    - compress_xsave_states
    - validate_xstate
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int hvm_load_cpu_xsave_states(\n    struct domain *d, hvm_domain_context_t
      *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1397
    functionName: HVM_CPU_MSR_SIZE
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_CPU_MSR_SIZE(cnt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1413,1
    - Dst: _hvm_init_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1418,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1419,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1419,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1425,1
    - Dst: guest_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1429,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1442,1
    - Dst: msr_spec_ctrl_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1464,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1472,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1472,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1480,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1481,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1410
    functionDepth: 3
    functionLinenumber: 1410
    functionLinenumberEnd: 1488
    functionName: hvm_save_cpu_msrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - msr_spec_ctrl_valid_bits
    - ARRAY_SIZE
    - guest_rdmsr
    - HVM_CPU_MSR_SIZE
    - ASSERT
    - _p
    - _hvm_init_entry
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int hvm_save_cpu_msrs(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1492,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1499,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1508,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1515,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1520,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1522,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1524,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1532,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1534,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1537,1
    - Dst: guest_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1560,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1564,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1490
    functionDepth: 5
    functionLinenumber: 1490
    functionLinenumberEnd: 1579
    functionName: hvm_load_cpu_msrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - HVM_CPU_MSR_SIZE
    - hvm_load_instance
    - printk
    - dprintk
    - guest_wrmsr
    linkageType: ''
    returnType: int
    signature: int hvm_load_cpu_msrs(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_register_savevm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1586,1
    - Dst: HVM_CPU_XSAVE_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1591,1
    - Dst: hvm_register_savevm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1595,1
    - Dst: HVM_CPU_MSR_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1600,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1605
    functionName: hvm_register_CPU_save_and_restore
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - HVM_CPU_MSR_SIZE
    - HVM_CPU_XSAVE_SIZE
    - ARRAY_SIZE
    - hvm_register_savevm
    linkageType: ''
    returnType: int
    signature: int hvm_register_CPU_save_and_restore(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_assert_evtchn_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1608
    functionDepth: 7
    functionLinenumber: 1608
    functionLinenumberEnd: 1611
    functionName: hvm_assert_evtchn_irq_tasklet
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_assert_evtchn_irq
    linkageType: ''
    returnType: void
    signature: void hvm_assert_evtchn_irq_tasklet(void *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1618,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1620,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1621,1
    - Dst: hvm_vcpu_cacheattr_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1623,1
    - Dst: vlapic_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1628,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1632,1
    - Dst: softirq_tasklet_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1636,1
    - Dst: hvmemul_cache_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1641,1
    - Dst: setup_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1645,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1649,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1651,1
    - Dst: nestedhvm_vcpu_initialise
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1652,1
    - Dst: viridian_vcpu_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1655,1
    - Dst: ioreq_server_add_vcpu_all
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1659,1
    - Dst: pmtimer_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1666,1
    - Dst: hpet_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1667,1
    - Dst: hvm_set_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1670,1
    - Dst: nestedhvm_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1676,1
    - Dst: free_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1678,1
    - Dst: hvmemul_cache_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1680,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1681,1
    - Dst: vlapic_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1683,1
    - Dst: hvm_vcpu_cacheattr_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1685,1
    - Dst: viridian_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1687,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1613
    functionDepth: 9
    functionLinenumber: 1613
    functionLinenumberEnd: 1689
    functionName: hvm_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - softirq_tasklet_init
    - hpet_init
    - nestedhvm_enabled
    - ioreq_server_add_vcpu_all
    - setup_compat_arg_xlat
    - hvmemul_cache_destroy
    - alternative_call
    - hvm_asid_flush_vcpu
    - vlapic_destroy
    - hvm_set_guest_tsc
    - viridian_vcpu_deinit
    - spin_lock_init
    - free_compat_arg_xlat
    - viridian_vcpu_init
    - nestedhvm_vcpu_initialise
    - hvm_vcpu_cacheattr_destroy
    - vlapic_init
    - hvmemul_cache_init
    - pmtimer_init
    - vcpu_nestedhvm
    - hvm_vcpu_cacheattr_init
    - nestedhvm_vcpu_destroy
    - alternative_vcall
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int hvm_vcpu_initialise(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: viridian_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1693,1
    - Dst: ioreq_server_remove_vcpu_all
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1695,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1697,1
    - Dst: altp2m_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1698,1
    - Dst: nestedhvm_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1700,1
    - Dst: free_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1702,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1704,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1705,1
    - Dst: vlapic_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1707,1
    - Dst: hvm_vcpu_cacheattr_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1710
    functionName: hvm_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - altp2m_vcpu_destroy
    - viridian_vcpu_deinit
    - tasklet_kill
    - hvm_vcpu_cacheattr_destroy
    - nestedhvm_vcpu_destroy
    - alternative_vcall
    - hvm_altp2m_supported
    - vlapic_destroy
    - ioreq_server_remove_vcpu_all
    - free_compat_arg_xlat
    linkageType: ''
    returnType: void
    signature: void hvm_vcpu_destroy(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1718,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1719,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1722,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1723,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1726,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1731,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1734
    functionName: hvm_vcpu_down
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - set_bit
    - gdprintk
    - domain_unlock
    - domain_lock
    - domain_shutdown
    - vcpu_sleep_nosync
    linkageType: ''
    returnType: void
    signature: void hvm_vcpu_down(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_event_pending
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1740,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1748,1
    - Dst: hvm_vcpu_down
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1749,1
    - Dst: vcpu_block_enable_events
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1751,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1753,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - eflags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1754
    functionName: hvm_hlt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - vcpu_block_enable_events
    - hvm_vcpu_down
    - TRACE
    - vcpu_runnable
    - hvm_event_pending
    - unlikely
    linkageType: ''
    returnType: void
    signature: void hvm_hlt(unsigned int eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1762,1
    - Dst: vcpu_show_execution_state
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1765,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1767
    functionName: hvm_triple_fault
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - gprintk
    - domain_shutdown
    - vcpu_show_execution_state
    linkageType: ''
    returnType: void
    signature: void hvm_triple_fault(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1776,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1778,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1780,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1782,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1783,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1784,1
    - Dst: nhvm_vmcx_guest_intercepts_event
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1785,1
    - Dst: nhvm_vcpu_vmexit_event
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1790,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1801,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1807
    functionName: hvm_inject_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - gdprintk
    - nestedhvm_enabled
    - nestedhvm_vmswitch_in_progress
    - nhvm_vmcx_guest_intercepts_event
    - ASSERT
    - alternative_vcall
    - nhvm_vcpu_vmexit_event
    - nestedhvm_vcpu_in_guestmode
    linkageType: ''
    returnType: void
    signature: void hvm_inject_event(const struct x86_event *event)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1829,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1830,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1831,1
    - Dst: nestedhvm_hap_nested_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1843,1
    - Dst: handle_mmio
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1855,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1856,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1871,1
    - Dst: hvm_mmio_internal
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1871,1
    - Dst: handle_mmio_with_translation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1873,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1874,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1883,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1884,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1888,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1890,1
    - Dst: p2m_altp2m_get_or_propagate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1897,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1909,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1953,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1953,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1957,1
    - Dst: p2m_is_altp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1967,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1971,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1971,1
    - Dst: altp2m_vcpu_emulate_ve
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1973,1
    - Dst: p2m_mem_access_check
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1980,1
    - Dst: p2m_is_discard_write
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:1999,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2002,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2002,1
    - Dst: handle_mmio_with_translation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2004,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2005,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2012,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2018,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2020,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2020,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2028,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2038,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2038,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2045,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2045,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2046,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2047,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2047,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2061,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2061,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2062,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2062,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2070,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2070,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2075,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2077,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2091,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2093,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2096,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 146
    argCount: 3
    argNames:
    - gpa
    - gla
    - npfec
    argTypes:
    - paddr_t
    - unsigned long
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 2099
    functionName: hvm_hap_nested_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - _pfn
    - p2m_put_gfn
    - nestedhvm_enabled
    - _gfn
    - vm_event_check_ring
    - p2m_is_discard_write
    - gprintk
    - p2m_is_hostp2m
    - xfree
    - altp2m_active
    - monitor_traps
    - p2m_set_entry
    - p2m_altp2m_get_or_propagate
    - p2m_mem_paging_populate
    - hvm_mmio_internal
    - printk
    - mfn_eq
    - p2m_change_type_one
    - nestedhvm_vcpu_in_guestmode
    - nestedhvm_hap_nested_page_fault
    - p2m_get_altp2m
    - p2m_mem_access_check
    - hvm_inject_hw_exception
    - mfn_x
    - struct p2m_domain*::get_entry
    - altp2m_vcpu_emulate_ve
    - ASSERT
    - paging_mark_pfn_dirty
    - p2m_is_shared
    - vm_event_is_enabled
    - p2m_get_hostp2m
    - nestedhvm_paging_mode_hap
    - p2m_is_ram
    - rangeset_contains_singleton
    - p2m_is_altp2m
    - handle_mmio
    - handle_mmio_with_translation
    - p2m_is_paged
    - get_gfn_type_access
    linkageType: ''
    returnType: int
    signature: "int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,\n                              struct
      npfec npfec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2105,1
    - Dst: hvm_monitor_crX
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2106,1
    - Dst: x86emul_write_xcr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2108,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - index
    - new_bv
    argTypes:
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2113
    functionName: hvm_handle_xsetbv
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - vm_event_is_enabled
    - hvm_inject_hw_exception
    - hvm_monitor_crX
    - x86emul_write_xcr
    linkageType: ''
    returnType: int
    signature: int hvm_handle_xsetbv(u32 index, u64 new_bv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hvm_efer_valid
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2122,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2125,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2132,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2134,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2143,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2159,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2163,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2168,1
    - Dst: nestedhvm_vcpu_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2169,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2115
    functionDepth: 2
    functionLinenumber: 2115
    functionLinenumberEnd: 2177
    functionName: hvm_set_efer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_paging_enabled
    - gdprintk
    - nestedhvm_enabled
    - hvm_set_segment_register
    - hvm_update_guest_efer
    - printk
    - nestedhvm_vcpu_reset
    - hvm_efer_valid
    - p2m_flush_nestedp2m
    - hvm_get_segment_register
    linkageType: ''
    returnType: int
    signature: int hvm_set_efer(uint64_t value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2182,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2182,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2185,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2186,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2191,1
    - Dst: hvm_pcid_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2196,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2200,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2205,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2209,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2209,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2214,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2219,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - cr
    - gpr
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2226
    functionName: hvm_mov_to_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - gdprintk
    - hvm_inject_hw_exception
    - vlapic_set_reg
    - hvm_set_cr4
    - hvm_pcid_enabled
    - TRACE
    - hvm_set_cr0
    - vcpu_vlapic
    - decode_gpr
    - domain_crash
    - HVM_DBG_LOG
    - hvm_set_cr3
    linkageType: ''
    returnType: int
    signature: int hvm_mov_to_cr(unsigned int cr, unsigned int gpr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2231,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2231,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2239,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2242,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2242,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2245,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2250,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2251,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - cr
    - gpr
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2258
    functionName: hvm_mov_from_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - gdprintk
    - array_access_nospec
    - TRACE
    - vlapic_get_reg
    - vcpu_vlapic
    - decode_gpr
    - domain_crash
    - HVM_DBG_LOG
    linkageType: ''
    returnType: int
    signature: int hvm_mov_from_cr(unsigned int cr, unsigned int gpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_set_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2263,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - cr
    - value
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2260
    functionDepth: 1
    functionLinenumber: 2260
    functionLinenumberEnd: 2265
    functionName: hvm_update_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - nestedhvm_set_cr
    - hvm_update_guest_cr
    linkageType: ''
    returnType: void
    signature: void hvm_update_cr(struct vcpu *v, unsigned int cr, unsigned long value)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2274,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2276,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2280,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2291,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2295,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2296,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2298,1
    - Dst: hvm_monitor_crX
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2300,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2312,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2321,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2323,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2326,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2328,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2331,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2335,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2338,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2340,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2345,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2347,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2348,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2348,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2355,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2364,1
    - Dst: hvm_pcid_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2368,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2370,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2376,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2379,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2382,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2384,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2384,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2385,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2390,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2391,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2392,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2393,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2394,1
    - Dst: hvm_update_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2396,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2399,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2399,1
    - Dst: paging_update_nestedmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2400,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2402,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 2
    argNames:
    - value
    - may_defer
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2267
    functionDepth: 2
    functionLinenumber: 2267
    functionLinenumberEnd: 2406
    functionName: hvm_set_cr0
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - pagetable_from_page
    - paging_mode_shadow
    - gprintk
    - pagetable_get_page
    - hvm_long_mode_active
    - page_to_mfn
    - has_arch_pdevs
    - pagetable_null
    - rangeset_is_empty
    - domain_crash
    - nestedhvm_vcpu_in_guestmode
    - get_page_from_gfn
    - is_iommu_enabled
    - paging_update_nestedmode
    - gdprintk
    - mfn_x
    - nestedhvm_vmswitch_in_progress
    - ASSERT
    - hvm_update_guest_efer
    - vm_event_is_enabled
    - monitor_ctrlreg_bitmask
    - HVM_DBG_LOG
    - hvm_get_segment_register
    - paging_update_paging_modes
    - hvm_pcid_enabled
    - alternative_vcall
    - hvm_update_cr
    - hvm_monitor_crX
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: int hvm_set_cr0(unsigned long value, bool may_defer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2413,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2417,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2422,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2423,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2425,1
    - Dst: hvm_monitor_crX
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2427,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2438,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2438,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2444,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2445,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2449,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2449,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2450,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2452,1
    - Dst: paging_update_cr3
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2456,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2460,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2461,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - value
    - noflush
    - may_defer
    argTypes:
    - unsigned long
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2463
    functionName: hvm_set_cr3
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - hvm_paging_enabled
    - gdprintk
    - pagetable_from_page
    - paging_mode_shadow
    - paging_update_cr3
    - ASSERT
    - domain_crash
    - put_page
    - hvm_monitor_crX
    - unlikely
    - pagetable_get_page
    - vm_event_is_enabled
    - monitor_ctrlreg_bitmask
    - HVM_DBG_LOG
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: int hvm_set_cr3(unsigned long value, bool noflush, bool may_defer)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2468,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2470,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2474,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2481,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2483,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2491,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2498,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2501,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2506,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2507,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2509,1
    - Dst: hvm_monitor_crX
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2511,1
    - Dst: hvm_update_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2521,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2531,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2531,1
    - Dst: paging_update_nestedmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2532,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2534,1
    - Dst: handle_xsetbv
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2544,1
    - Dst: get_xcr0
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2545,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2549,1
    - Dst: handle_xsetbv
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2553,1
    - Dst: get_xcr0
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2554,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 2
    argNames:
    - value
    - may_defer
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2559
    functionName: hvm_set_cr4
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - paging_update_paging_modes
    - nestedhvm_vcpu_in_guestmode
    - nestedhvm_vmswitch_in_progress
    - hvm_cr4_guest_valid_bits
    - get_xcr0
    - ASSERT
    - gprintk
    - hvm_long_mode_active
    - hvm_update_cr
    - hvm_monitor_crX
    - unlikely
    - vm_event_is_enabled
    - monitor_ctrlreg_bitmask
    - HVM_DBG_LOG
    - handle_xsetbv
    - paging_update_nestedmode
    linkageType: ''
    returnType: int
    signature: int hvm_set_cr4(unsigned long value, bool may_defer)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2572,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2576,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2576,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2584,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2587,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2598,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2603,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2606,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2607,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2613,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2625,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 70
    argCount: 8
    argNames:
    - v
    - seg
    - reg
    - offset
    - bytes
    - access_type
    - active_cs
    - linear_addr
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    - unsigned long
    - unsigned int
    - enum hvm_access_type
    - struct segment_register*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2699
    functionName: hvm_vcpu_virtual_to_linear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - max
    - is_x86_user_segment
    - ASSERT
    - vcpu_runnable
    - is_canonical_address
    - hvm_long_mode_active
    - is_x86_system_segment
    linkageType: ''
    returnType: bool
    signature: "bool hvm_vcpu_virtual_to_linear(\n    struct vcpu *v,\n    enum x86_segment
      seg,\n    const struct segment_register *reg,\n    unsigned long offset,\n    unsigned
      int bytes,\n    enum hvm_access_type access_type,\n    const struct segment_register
      *active_cs,\n    unsigned long *linear_addr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2716,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2716,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2721,1
    - Dst: p2m_is_discard_write
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2721,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2722,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2725,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2725,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2729,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2733,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2737,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2741,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2742,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2743,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2746,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2748,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - gfn
    - permanent
    - writable
    argTypes:
    - unsigned long
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2708
    functionDepth: 1
    functionLinenumber: 2708
    functionLinenumberEnd: 2751
    functionName: _hvm_map_guest_frame
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - xmalloc
    - check_get_page_from_gfn
    - _pfn
    - _gfn
    - p2m_is_discard_write
    - paging_mark_pfn_dirty
    - spin_lock
    - unlikely
    - __map_domain_page
    - put_page
    - __map_domain_page_global
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void *_hvm_map_guest_frame(unsigned long gfn, bool permanent,\n                                  bool
      *writable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hvm_map_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gfn
    - permanent
    - writable
    argTypes:
    - unsigned long
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2753
    functionDepth: 2
    functionLinenumber: 2753
    functionLinenumberEnd: 2758
    functionName: hvm_map_guest_frame_rw
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - _hvm_map_guest_frame
    linkageType: ''
    returnType: void
    signature: "void *hvm_map_guest_frame_rw(unsigned long gfn, bool permanent,\n
      \                            bool *writable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hvm_map_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - permanent
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2763
    functionName: hvm_map_guest_frame_ro
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - _hvm_map_guest_frame
    linkageType: ''
    returnType: void
    signature: void *hvm_map_guest_frame_ro(unsigned long gfn, bool permanent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2773,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2774,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2777,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2780,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2783,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2784,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2785,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2788,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2789,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2790,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2793,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p
    - permanent
    argTypes:
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2765
    functionDepth: 0
    functionLinenumber: 2765
    functionLinenumberEnd: 2797
    functionName: hvm_unmap_guest_frame
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - spin_unlock
    - mfn_to_page
    - unmap_domain_page_global
    - domain_page_map_to_mfn
    - page_get_owner
    - spin_lock
    - list_del
    - put_page
    - xfree
    - list_for_each_entry
    - paging_mark_dirty
    linkageType: ''
    returnType: void
    signature: void hvm_unmap_guest_frame(void *p, bool permanent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2803,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2804,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2805,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2805,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2799
    functionDepth: 0
    functionLinenumber: 2799
    functionLinenumberEnd: 2807
    functionName: hvm_mapped_guest_frames_mark_dirty
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - page_to_mfn
    - spin_lock
    - list_for_each_entry
    - paging_mark_dirty
    linkageType: ''
    returnType: void
    signature: void hvm_mapped_guest_frames_mark_dirty(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2817,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2828,1
    - Dst: hvm_map_guest_frame_rw
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2832,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - va
    - writable
    argTypes:
    - unsigned long
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2809
    functionDepth: 3
    functionLinenumber: 2809
    functionLinenumberEnd: 2841
    functionName: hvm_map_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - hvm_map_guest_frame_rw
    - domain_crash
    - paging_gva_to_gfn
    linkageType: ''
    returnType: void
    signature: void *hvm_map_entry(unsigned long va, bool *writable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2843
    functionDepth: 1
    functionLinenumber: 2843
    functionLinenumberEnd: 2846
    functionName: hvm_unmap_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_unmap_guest_frame
    linkageType: ''
    returnType: void
    signature: void hvm_unmap_entry(void *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2864,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2873,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2875,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2883,1
    - Dst: hvm_map_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2894,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2953,1
    - Dst: hvm_unmap_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2959,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2970,1
    - Dst: hvm_unmap_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2975,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:2976,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 94
    argCount: 4
    argNames:
    - seg
    - sel
    - cpl
    - eflags
    argTypes:
    - enum x86_segment
    - uint16_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2848
    functionDepth: 4
    functionLinenumber: 2848
    functionLinenumberEnd: 2979
    functionName: task_switch_load_seg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_inject_hw_exception
    - hvm_unmap_entry
    - hvm_set_segment_register
    - hvm_map_entry
    - memset
    - cmpxchg
    - hvm_get_segment_register
    linkageType: ''
    returnType: int
    signature: "int task_switch_load_seg(\n    enum x86_segment seg, uint16_t sel,
      unsigned int cpl, unsigned int eflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3012,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3020,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - base
    - limit
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 2994
    functionDepth: 1
    functionLinenumber: 2994
    functionLinenumberEnd: 3023
    functionName: hvm_prepare_vm86_tss
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: void
    signature: void hvm_prepare_vm86_tss(struct vcpu *v, uint32_t base, uint32_t limit)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3030,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3037,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3040,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3041,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3045,1
    - Dst: hvm_map_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3051,1
    - Dst: hvm_map_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3056,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3073,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3081,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3087,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3091,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3094,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3113,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3115,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3117,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3119,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3121,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3123,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3125,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3128,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3134,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3138,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3141,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3151,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3154,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3156,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3172,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3173,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3174,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3175,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3176,1
    - Dst: task_switch_load_seg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3177,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3185,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3190,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3198,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3201,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3205,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3208,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3216,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3218,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3223,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3227,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3231,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3240,1
    - Dst: hvm_unmap_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3243,1
    - Dst: hvm_unmap_entry
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3244,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3246,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 151
    argCount: 5
    argNames:
    - tss_sel
    - taskswitch_reason
    - errcode
    - insn_len
    - extra_eflags
    argTypes:
    - uint16_t
    - enum hvm_task_switch_reason
    - int32_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3025
    functionDepth: 5
    functionLinenumber: 3025
    functionLinenumberEnd: 3247
    functionName: hvm_task_switch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - hvm_inject_hw_exception
    - hvm_copy_to_guest_linear
    - hvm_unmap_entry
    - hvmemul_cache_disable
    - hvm_set_segment_register
    - hvm_virtual_to_linear_addr
    - hvm_update_guest_cr
    - hvm_copy_from_guest_linear
    - hvm_map_entry
    - clear_bit
    - hvmemul_cache_restore
    - task_switch_load_seg
    - hvm_inject_page_fault
    - hvm_get_segment_register
    - hvm_set_cr3
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void hvm_task_switch(\n    uint16_t tss_sel, enum hvm_task_switch_reason
      taskswitch_reason,\n    int32_t errcode, unsigned int insn_len, unsigned int
      extra_eflags)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3260,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3260,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3262,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3281,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3282,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3291,1
    - Dst: hvm_mmio_internal
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3292,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3292,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3295,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3295,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3300,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3302,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3303,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3306,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3308,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3311,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3313,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 8
    argNames:
    - v
    - addr
    - linear
    - pfec
    - pfinfo
    - page_p
    - gfn_p
    - p2mt_p
    argTypes:
    - struct vcpu*
    - unsigned long
    - bool
    - uint32_t
    - pagefault_info_t*
    - struct page_info**
    - gfn_t*
    - p2m_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3249
    functionDepth: 2
    functionLinenumber: 3249
    functionLinenumberEnd: 3324
    functionName: hvm_translate_get_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - _gfn
    - p2m_mem_paging_populate
    - gaddr_to_gfn
    - gfn_x
    - ASSERT
    - hvm_mmio_internal
    - gfn_to_gaddr
    - p2m_is_shared
    - paging_gva_to_gfn
    - p2m_is_grant
    - gfn_eq
    - put_page
    - p2m_is_paging
    - nestedhvm_vcpu_in_guestmode
    - get_page_from_gfn
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_translate_get_page(\n    struct vcpu
      *v, unsigned long addr, bool linear, uint32_t pfec,\n    pagefault_info_t *pfinfo,
      struct page_info **page_p,\n    gfn_t *gfn_p, p2m_type_t *p2mt_p)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3334,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3334,1
    - Dst: in_atomic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3348,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3359,1
    - Dst: hvm_translate_get_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3361,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3368,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3372,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3372,1
    - Dst: hvm_monitor_check_p2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3375,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3377,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3382,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3382,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3384,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3388,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3389,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3389,1
    - Dst: p2m_is_discard_write
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3391,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3394,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3396,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3397,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3397,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3397,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3400,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3407,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 7
    argNames:
    - buf
    - addr
    - size
    - v
    - flags
    - pfec
    - pfinfo
    argTypes:
    - void*
    - paddr_t
    - unsigned int
    - struct vcpu*
    - unsigned int
    - uint32_t
    - pagefault_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3330
    functionDepth: 3
    functionLinenumber: 3330
    functionLinenumberEnd: 3411
    functionName: __hvm_copy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - _pfn
    - p2m_is_discard_write
    - in_atomic
    - hvm_translate_get_page
    - hvm_monitor_check_p2m
    - is_hvm_vcpu
    - hvmemul_read_cache
    - hvmemul_write_cache
    - min
    - ASSERT
    - paging_mark_pfn_dirty
    - __map_domain_page
    - vm_event_is_enabled
    - memset
    - unmap_domain_page
    - gfn_x
    - gfn_to_gaddr
    - unlikely
    - put_page
    - memcpy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result __hvm_copy(\n    void *buf, paddr_t addr,
      unsigned int size, struct vcpu *v, unsigned int flags,\n    uint32_t pfec, pagefault_info_t
      *pfinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hvm_copy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - paddr
    - buf
    - size
    - v
    argTypes:
    - paddr_t
    - void*
    - unsigned int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3413
    functionDepth: 4
    functionLinenumber: 3413
    functionLinenumberEnd: 3419
    functionName: hvm_copy_to_guest_phys
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - __hvm_copy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_copy_to_guest_phys(\n    paddr_t paddr,
      const void *buf, unsigned int size, struct vcpu *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hvm_copy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - paddr
    - size
    argTypes:
    - void*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3421
    functionDepth: 4
    functionLinenumber: 3421
    functionLinenumberEnd: 3426
    functionName: hvm_copy_from_guest_phys
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - __hvm_copy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_copy_from_guest_phys(\n    void *buf,
      paddr_t paddr, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hvm_copy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - addr
    - buf
    - size
    - pfec
    - pfinfo
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - uint32_t
    - pagefault_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3428
    functionDepth: 4
    functionLinenumber: 3428
    functionLinenumberEnd: 3435
    functionName: hvm_copy_to_guest_linear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - __hvm_copy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_copy_to_guest_linear(\n    unsigned
      long addr, const void *buf, unsigned int size, uint32_t pfec,\n    pagefault_info_t
      *pfinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hvm_copy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - buf
    - addr
    - size
    - pfec
    - pfinfo
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    - uint32_t
    - pagefault_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3437
    functionDepth: 4
    functionLinenumber: 3437
    functionLinenumberEnd: 3444
    functionName: hvm_copy_from_guest_linear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - __hvm_copy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_copy_from_guest_linear(\n    void
      *buf, unsigned long addr, unsigned int size, uint32_t pfec,\n    pagefault_info_t
      *pfinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hvm_copy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - buf
    - addr
    - size
    - v
    - pfec
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3453
      start: 3446
    functionDepth: 4
    functionLinenumber: 3446
    functionLinenumberEnd: 3453
    functionName: hvm_copy_from_vcpu_linear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - __hvm_copy
    linkageType: ''
    returnType: enum hvm_translation_result
    signature: "enum hvm_translation_result hvm_copy_from_vcpu_linear(\n    void *buf,
      unsigned long addr, unsigned int size, struct vcpu *v,\n    unsigned int pfec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_compat_arg_xlat_range
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3459,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3461,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3467
      start: 3455
    functionDepth: 5
    functionLinenumber: 3455
    functionLinenumberEnd: 3467
    functionName: copy_to_user_hvm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - is_compat_arg_xlat_range
    - hvm_copy_to_guest_linear
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_to_user_hvm(void *to, const void *from, unsigned
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_compat_arg_xlat_range
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3473,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3475,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - to
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3469
    functionDepth: 5
    functionLinenumber: 3469
    functionLinenumberEnd: 3482
    functionName: clear_user_hvm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - memset
    - is_compat_arg_xlat_range
    - hvm_copy_to_guest_linear
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int clear_user_hvm(void *to, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_compat_arg_xlat_range
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3488,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3490,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3484
    functionDepth: 5
    functionLinenumber: 3484
    functionLinenumberEnd: 3496
    functionName: copy_from_user_hvm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - is_compat_arg_xlat_range
    - hvm_copy_from_guest_linear
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_from_user_hvm(void *to, const void *from, unsigned
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3505,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3507,1
    - Dst: guest_cpuid
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3511,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3512,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3519,1
    - Dst: hvm_monitor_cpuid
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - regs
    - inst_len
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3522
      start: 3498
    functionDepth: 3
    functionLinenumber: 3498
    functionLinenumberEnd: 3522
    functionName: hvm_vmexit_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_monitor_cpuid
    - hvm_inject_hw_exception
    - hvm_get_cpl
    - TRACE
    - guest_cpuid
    - vm_event_is_enabled
    linkageType: ''
    returnType: int
    signature: int hvm_vmexit_cpuid(struct cpu_user_regs *regs, unsigned int inst_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msr_split
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3526,1
    - Dst: hvm_get_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3526,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3524
    functionDepth: 1
    functionLinenumber: 3524
    functionLinenumberEnd: 3529
    functionName: hvm_rdtsc_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - msr_split
    - TRACE
    - hvm_get_guest_tsc
    linkageType: ''
    returnType: void
    signature: void hvm_rdtsc_intercept(struct cpu_user_regs *regs)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: guest_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3541,1
    - Dst: hvm_get_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3555,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3563,1
    - Dst: vlapic_tdt_msr_get
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3567,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3567,1
    - Dst: hvm_get_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3571,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3583,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3584,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3597,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3598,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3604,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3605,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3607,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3607,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3610,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3612,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3614,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3615,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3630,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3635,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 87
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3642
      start: 3531
    functionDepth: 3
    functionLinenumber: 3531
    functionLinenumberEnd: 3642
    functionName: hvm_msr_read_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - MSR_IA32_MTRR_PHYSMASK
    - array_index_nospec
    - MASK_INSR
    - ARRAY_SIZE
    - vlapic_tdt_msr_get
    - hvm_get_guest_pat
    - TRACE
    - guest_rdmsr
    - MSR_IA32_MTRR_PHYSBASE
    - alternative_call
    - hvm_get_guest_tsc
    - vcpu_vlapic
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3651,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3653,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3654,1
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3654,1
    - Dst: hvm_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3658,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3662,1
    - Dst: hvm_monitor_msr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3664,1
    - Dst: guest_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3675,1
    - Dst: hvm_set_efer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3685,1
    - Dst: hvm_set_guest_tsc_msr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3690,1
    - Dst: hvm_set_guest_tsc_adjust
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3694,1
    - Dst: guest_wrmsr_apic_base
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3698,1
    - Dst: vlapic_tdt_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3701,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3701,1
    - Dst: hvm_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3705,1
    - Dst: mtrr_def_type_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3715,1
    - Dst: mtrr_fix_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3722,1
    - Dst: mtrr_fix_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3731,1
    - Dst: mtrr_fix_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3739,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3743,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3743,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3746,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3748,1
    - Dst: mtrr_var_range_msr_set
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3749,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3759,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 96
    argCount: 3
    argNames:
    - msr
    - msr_content
    - may_defer
    argTypes:
    - unsigned int
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3644
    functionDepth: 5
    functionLinenumber: 3644
    functionLinenumberEnd: 3767
    functionName: hvm_msr_write_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - TRACE
    - mtrr_def_type_msr_set
    - hvm_set_guest_tsc_adjust
    - alternative_call
    - mtrr_fix_range_msr_set
    - mtrr_var_range_msr_set
    - hvm_set_guest_pat
    - monitored_msr
    - hvm_set_efer
    - vlapic_tdt_msr_set
    - guest_wrmsr_apic_base
    - MSR_IA32_MTRR_PHYSBASE
    - MSR_IA32_MTRR_PHYSMASK
    - vcpu_vlapic
    - MASK_EXTR
    - ASSERT
    - hvm_set_guest_tsc_msr
    - vm_event_is_enabled
    - guest_wrmsr
    - hvm_msr_read_intercept
    - unlikely
    - hvm_monitor_msr
    linkageType: ''
    returnType: int
    signature: "int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content,\n
      \                           bool may_defer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3771,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3771,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - reg
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3779
      start: 3769
    functionDepth: 1
    functionLinenumber: 3769
    functionLinenumberEnd: 3779
    functionName: hvm_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - alternative_call
    - vcpu_runnable
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3783,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3783,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3781
    functionDepth: 1
    functionLinenumber: 3781
    functionLinenumberEnd: 3791
    functionName: hvm_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - alternative_vcall
    - vcpu_runnable
    linkageType: ''
    returnType: void
    signature: void hvm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3797,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3801,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3793
    functionDepth: 1
    functionLinenumber: 3793
    functionLinenumberEnd: 3813
    functionName: is_sysdesc_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC
    - x86_insn_modrm
    linkageType: ''
    returnType: bool
    signature: "bool is_sysdesc_access(\n    const struct x86_emulate_state *state,
      const struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3822,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3825,1
    - Dst: hvm_monitor_descriptor_access
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3826,1
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3829,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - exit_info
    - vmx_exit_qualification
    - descriptor
    - is_write
    argTypes:
    - uint64_t
    - uint64_t
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3815
    functionDepth: 2
    functionLinenumber: 3815
    functionLinenumberEnd: 3833
    functionName: hvm_descriptor_access_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_monitor_descriptor_access
    - hvm_emulate_one_insn
    - ASSERT
    - vm_event_is_enabled
    - domain_crash
    linkageType: ''
    returnType: int
    signature: "int hvm_descriptor_access_intercept(uint64_t exit_info,\n                                    uint64_t
      vmx_exit_qualification,\n                                    unsigned int descriptor,
      bool is_write)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3840,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3841,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3847
    functionName: is_cross_vendor
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC
    linkageType: ''
    returnType: bool
    signature: "bool is_cross_vendor(\n    const struct x86_emulate_state *state,
      const struct x86_emulate_ctxt *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3856,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3866,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3869,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3871,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3877,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3880,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3888,1
    - Dst: hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3892,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3896,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3899,1
    - Dst: hvm_emulate_writeback
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3902,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3849
    functionDepth: 5
    functionLinenumber: 3849
    functionLinenumberEnd: 3905
    functionName: hvm_ud_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - memcmp
    - add_taint
    - hvm_inject_hw_exception
    - hvm_emulate_writeback
    - hvm_virtual_to_linear_addr
    - hvm_copy_from_guest_linear
    - hvm_emulate_init_once
    - hvm_long_mode_active
    - hvm_inject_event
    - hvm_emulate_one
    linkageType: ''
    returnType: void
    signature: void hvm_ud_intercept(struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3911,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3913,1
    - Dst: nhvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3916,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3922,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3925,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3936,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3936,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3907
    functionDepth: 1
    functionLinenumber: 3907
    functionLinenumberEnd: 3942
    functionName: hvm_interrupt_blocked
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 2
    functionsReached:
    - guest_cpu_user_regs
    - nhvm_interrupt_blocked
    - nestedhvm_enabled
    - vlapic_get_reg
    - ASSERT
    - alternative_call
    - vcpu_vlapic
    linkageType: ''
    returnType: enum hvm_intblk
    signature: enum hvm_intblk hvm_interrupt_blocked(struct vcpu *v, struct hvm_intack
      intack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3955,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3944
    functionDepth: 1
    functionLinenumber: 3944
    functionLinenumberEnd: 3969
    functionName: hvm_latch_shinfo_size
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - update_domain_wallclock_time
    - hvm_guest_x86_mode
    linkageType: ''
    returnType: void
    signature: void hvm_latch_shinfo_size(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_latch_shinfo_size
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3973,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - ptr
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3976
      start: 3971
    functionDepth: 2
    functionLinenumber: 3971
    functionLinenumberEnd: 3976
    functionName: hvm_init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - alternative_vcall
    - hvm_latch_shinfo_size
    linkageType: ''
    returnType: void
    signature: void hvm_init_hypercall_page(struct domain *d, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3983,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3988,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3991,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3991,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3992,1
    - Dst: vcpu_reset_fpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3995,1
    - Dst: arch_vcpu_regs_init
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:3997,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4001,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4004,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4007,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4010,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4013,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4019,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4024,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4025,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4026,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4027,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4028,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4031,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4034,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4037,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4038,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4043,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4047,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4051,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 3
    argNames:
    - v
    - cs
    - ip
    argTypes:
    - struct vcpu*
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 3978
    functionDepth: 2
    functionLinenumber: 3978
    functionLinenumberEnd: 4055
    functionName: hvm_vcpu_reset_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - paging_update_paging_modes
    - domain_unlock
    - hvm_set_tsc_offset
    - paging_mode_shadow
    - pagetable_null
    - domain_lock
    - vcpu_reset_fpu
    - hvm_update_guest_cr
    - hvm_update_guest_efer
    - arch_vcpu_regs_init
    - hvm_set_segment_register
    - clear_bit
    - pagetable_get_page
    - put_page
    linkageType: ''
    returnType: void
    signature: void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs, uint16_t ip)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4061,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4062,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4065,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4067,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4068,1
    - Dst: vlapic_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4076,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4076,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4077,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4078,1
    - Dst: vpic_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4081,1
    - Dst: vioapic_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4082,1
    - Dst: pit_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4083,1
    - Dst: rtc_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4084,1
    - Dst: pmtimer_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4085,1
    - Dst: hpet_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4086,1
    - Dst: hvm_vcpu_reset_state
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4088,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4091
      start: 4057
    functionDepth: 6
    functionLinenumber: 4057
    functionLinenumberEnd: 4091
    functionName: hvm_s3_suspend
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - pmtimer_reset
    - domain_pause
    - domain_unlock
    - test_and_set_bool
    - pit_reset
    - hvm_vcpu_reset_state
    - domain_lock
    - ASSERT
    - vcpu_reset
    - vlapic_reset
    - vcpu_vlapic
    - vpic_reset
    - hpet_reset
    - rtc_reset
    - vioapic_reset
    linkageType: ''
    returnType: void
    signature: void hvm_s3_suspend(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4076,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4076,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4077,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4072
    functionDepth: 1
    functionLinenumber: 4072
    functionLinenumberEnd: 4079
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 9
    functionsReached:
    - vcpu_vlapic
    - ASSERT
    - vcpu_reset
    - vlapic_reset
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4095,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4099,1
    - Dst: hvm_set_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4100,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4093
    functionDepth: 1
    functionLinenumber: 4093
    functionLinenumberEnd: 4103
    functionName: hvm_s3_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_set_guest_tsc
    - for_each_vcpu
    - test_and_clear_bool
    - domain_unpause
    linkageType: ''
    returnType: void
    signature: void hvm_s3_resume(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4107,1
    - Dst: paging_flush_tlb
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4105
    functionDepth: 1
    functionLinenumber: 4105
    functionLinenumberEnd: 4111
    functionName: hvmop_flush_tlb_all
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - paging_flush_tlb
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int hvmop_flush_tlb_all(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4114,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4120,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4123,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4129,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4140,1
    - Dst: hvm_assert_evtchn_irq
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4113
    functionDepth: 7
    functionLinenumber: 4113
    functionLinenumberEnd: 4145
    functionName: hvmop_set_evtchn_upcall_vector
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - domain_vcpu
    - copy_from_guest
    - hvm_assert_evtchn_irq
    - printk
    - XEN_GUEST_HANDLE_PARAM
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int hvmop_set_evtchn_upcall_vector(\n    XEN_GUEST_HANDLE_PARAM(xen_hvm_evtchn_upcall_vector_t)
      uop)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: xsm_hvm_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4154,1
    - Dst: block_speculation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - d
    - index
    - new_value
    argTypes:
    - struct domain*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4147
    functionDepth: 0
    functionLinenumber: 4147
    functionLinenumberEnd: 4226
    functionName: hvm_allow_set_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - xsm_hvm_param
    - block_speculation
    linkageType: ''
    returnType: int
    signature: "int hvm_allow_set_param(struct domain *d,\n                               uint32_t
      index,\n                               uint64_t new_value)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: hvm_allow_set_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4234,1
    - Dst: block_speculation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4239,1
    - Dst: hvm_set_callback_via
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4244,1
    - Dst: hvm_latch_shinfo_size
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4245,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4252,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4262,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4262,1
    - Dst: domctl_lock_acquire
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4274,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4278,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4280,1
    - Dst: paging_update_cr3
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4281,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4282,1
    - Dst: domctl_lock_release
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4284,1
    - Dst: hvm_s3_suspend
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4296,1
    - Dst: hvm_s3_resume
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4298,1
    - Dst: pmtimer_change_ioport
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4304,1
    - Dst: xsm_hvm_param_altp2mhvm
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4307,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4311,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4332,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4339,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4341,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4344,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4361,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4374,1
    - Dst: vmce_enable_mca_cap
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4391,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4399,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 118
    argCount: 3
    argNames:
    - d
    - index
    - value
    argTypes:
    - struct domain*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4228
    functionDepth: 8
    functionLinenumber: 4228
    functionLinenumberEnd: 4404
    functionName: hvm_set_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - paging_mode_shadow
    - nestedhvm_enabled
    - domctl_lock_acquire
    - using_vmx
    - IS_ENABLED
    - BUILD_BUG_ON
    - domctl_lock_release
    - hvm_set_callback_via
    - xsm_hvm_param_altp2mhvm
    - paging_update_cr3
    - domain_crash
    - hvm_latch_shinfo_size
    - domain_unpause
    - hvm_s3_resume
    - vmce_enable_mca_cap
    - HVM_DBG_LOG
    - set_bit
    - domain_pause
    - pmtimer_change_ioport
    - hvm_allow_set_param
    - block_speculation
    - hvm_s3_suspend
    linkageType: ''
    returnType: int
    signature: int hvm_set_param(struct domain *d, uint32_t index, uint64_t value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4407,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4413,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4419,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4424,1
    - Dst: hvm_set_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4425,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4429
      start: 4406
    functionDepth: 9
    functionLinenumber: 4406
    functionLinenumberEnd: 4429
    functionName: hvmop_set_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - XEN_GUEST_HANDLE_PARAM
    - rcu_lock_domain_by_any_id
    - hvm_set_param
    - is_hvm_domain
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: "int hvmop_set_param(\n    XEN_GUEST_HANDLE_PARAM(xen_hvm_param_t)
      arg)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xsm_hvm_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - d
    - index
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4476
      start: 4431
    functionDepth: 0
    functionLinenumber: 4431
    functionLinenumberEnd: 4476
    functionName: hvm_allow_get_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - xsm_hvm_param
    linkageType: ''
    returnType: int
    signature: "int hvm_allow_get_param(struct domain *d,\n                               uint32_t
      index)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hvm_allow_get_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4482,1
    - Dst: block_speculation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - d
    - index
    - value
    argTypes:
    - struct domain*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4514
      start: 4478
    functionDepth: 0
    functionLinenumber: 4478
    functionLinenumberEnd: 4514
    functionName: hvm_get_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_allow_get_param
    - block_speculation
    linkageType: ''
    returnType: int
    signature: int hvm_get_param(struct domain *d, uint32_t index, uint64_t *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4517,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4523,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4529,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4534,1
    - Dst: hvm_get_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4534,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4536,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4538,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4544
      start: 4516
    functionDepth: 1
    functionLinenumber: 4516
    functionLinenumberEnd: 4544
    functionName: hvmop_get_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - is_hvm_domain
    - __copy_to_guest
    - XEN_GUEST_HANDLE_PARAM
    - rcu_lock_domain_by_any_id
    - HVM_DBG_LOG
    - hvm_get_param
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: "int hvmop_get_param(\n    XEN_GUEST_HANDLE_PARAM(xen_hvm_param_t)
      arg)"
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4586,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4589,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4620,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4625,1
    - Dst: xsm_hvm_altp2mhvm_op
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4653,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4659,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4660,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4668,1
    - Dst: domain_pause_except_self
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4674,1
    - Dst: p2m_init_altp2m_by_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4683,1
    - Dst: altp2m_vcpu_initialise
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4688,1
    - Dst: altp2m_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4690,1
    - Dst: p2m_flush_altp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4694,1
    - Dst: domain_unpause_except_self
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4699,1
    - Dst: altp2m_vcpu_enable_ve
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4722,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4722,1
    - Dst: altp2m_vcpu_disable_ve
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4744,1
    - Dst: p2m_init_next_altp2m
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4749,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4751,1
    - Dst: p2m_destroy_altp2m_by_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4755,1
    - Dst: p2m_switch_domain_altp2m_by_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4759,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4767,1
    - Dst: p2m_set_suppress_ve
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4771,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4779,1
    - Dst: p2m_set_suppress_ve_multi
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4787,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4788,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4799,1
    - Dst: p2m_get_suppress_ve
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4803,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4807,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4813,1
    - Dst: p2m_set_mem_access
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4822,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4822,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4828,1
    - Dst: p2m_set_mem_access_multi
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4848,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4858,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4858,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4865,1
    - Dst: p2m_get_mem_access
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4877,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4877,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4882,1
    - Dst: p2m_change_altp2m_gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4891,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4892,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4893,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4900,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4906,1
    - Dst: altp2m_vcpu_idx
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4912,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4913,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4923,1
    - Dst: p2m_set_altp2m_view_visibility
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4926,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4932,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4938,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 221
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4944
      start: 4577
    functionDepth: 1
    functionLinenumber: 4577
    functionLinenumberEnd: 4944
    functionName: do_altp2m_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - p2m_init_next_altp2m
    - xsm_hvm_altp2mhvm_op
    - copy_from_guest
    - p2m_switch_domain_altp2m_by_id
    - nestedhvm_enabled
    - _gfn
    - p2m_set_suppress_ve
    - altp2m_vcpu_disable_ve
    - domain_unpause_except_self
    - hvm_altp2m_supported
    - p2m_set_mem_access
    - p2m_set_suppress_ve_multi
    - is_hvm_domain
    - p2m_destroy_altp2m_by_id
    - altp2m_vcpu_destroy
    - altp2m_active
    - p2m_get_suppress_ve
    - p2m_set_altp2m_view_visibility
    - p2m_set_mem_access_multi
    - p2m_flush_altp2m
    - guest_handle_cast
    - rcu_unlock_domain
    - altp2m_vcpu_initialise
    - p2m_get_mem_access
    - altp2m_vcpu_enable_ve
    - p2m_init_altp2m_by_id
    - min
    - p2m_change_altp2m_gfn
    - vm_event_is_enabled
    - ASSERT_UNREACHABLE
    - __copy_field_to_guest
    - altp2m_vcpu_idx
    - domain_vcpu
    - __copy_to_guest
    - rcu_lock_domain_by_any_id
    - domain_pause_except_self
    linkageType: ''
    returnType: int
    signature: "int do_altp2m_op(\n    XEN_GUEST_HANDLE_PARAM(void) arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_vcpu_initialise
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4688,1
    - Dst: altp2m_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4691
      start: 4685
    functionDepth: 1
    functionLinenumber: 4685
    functionLinenumberEnd: 4691
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 11
    functionsReached:
    - altp2m_vcpu_initialise
    - altp2m_vcpu_destroy
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu( d, v )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4985,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4988,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:4995,1
    - Dst: XLAT_hvm_altp2m_set_mem_access_multi
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5004,1
    - Dst: do_altp2m_op
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5011,1
    - Dst: do_altp2m_op
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5021,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5030,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5030,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5038,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5044
      start: 4974
    functionDepth: 2
    functionLinenumber: 4974
    functionLinenumberEnd: 5044
    functionName: compat_altp2m_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - __copy_field_to_guest
    - set_xen_guest_handle
    - XLAT_hvm_altp2m_set_mem_access_multi
    - hvm_altp2m_supported
    - guest_handle_cast
    - ASSERT_UNREACHABLE
    - do_altp2m_op
    linkageType: ''
    returnType: int
    signature: "int compat_altp2m_op(\n    XEN_GUEST_HANDLE_PARAM(void) arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5002
      start: 5000
    functionDepth: 0
    functionLinenumber: 5000
    functionLinenumberEnd: 5002
    functionName: XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 5002
    functionDepth: 0
    functionLinenumber: 5002
    functionLinenumberEnd: 5004
    functionName: XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list(_d_, _s_)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5047,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5054,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5057,1
    - Dst: xsm_hvm_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5061,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5066,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5074,1
    - Dst: p2m_is_mmio
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5075,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5079,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5081,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5083,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5085,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5091,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5096,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5099
      start: 5046
    functionDepth: 1
    functionLinenumber: 5046
    functionLinenumberEnd: 5099
    functionName: hvmop_get_mem_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - xsm_hvm_param
    - copy_from_guest
    - p2m_is_mmio
    - p2m_is_ram
    - p2m_is_grant
    - __copy_to_guest
    - get_gfn_query_unlocked
    - rcu_unlock_domain
    - XEN_GUEST_HANDLE_PARAM
    - rcu_lock_domain_by_any_id
    - p2m_is_readonly
    - is_hvm_domain
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int hvmop_get_mem_type(\n    XEN_GUEST_HANDLE_PARAM(xen_hvm_get_mem_type_t)
      arg)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: hvmop_set_evtchn_upcall_vector
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5115,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5116,1
    - Dst: hvmop_set_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5120,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5121,1
    - Dst: hvmop_get_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5125,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5126,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5130,1
    - Dst: hvmop_flush_tlb_all
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5130,1
    - Dst: hvmop_get_mem_type
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5134,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5135,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5143,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5146,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5151,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5153,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5153,1
    - Dst: xsm_hvm_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5154,1
    - Dst: pagetable_dying
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5156,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5158,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5165,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5166,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5174,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5183,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5188,1
    - Dst: monitor_guest_request
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5189,1
    - Dst: compat_altp2m_op
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5195,1
    - Dst: do_altp2m_op
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5195,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5204,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5208
      start: 5101
    functionDepth: 10
    functionLinenumber: 5101
    functionLinenumberEnd: 5208
    functionName: do_hvm_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - hvmop_flush_tlb_all
    - hvmop_get_mem_type
    - copy_from_guest
    - paging_mode_shadow
    - hvmop_set_evtchn_upcall_vector
    - is_hvm_domain
    - trace
    - hypercall_create_continuation
    - guest_handle_is_null
    - copy_to_guest
    - guest_handle_cast
    - rcu_unlock_domain
    - NOW
    - monitor_guest_request
    - hvmop_get_param
    - hvmop_set_param
    - do_altp2m_op
    - xsm_hvm_param
    - rcu_lock_domain_by_any_id
    - compat_altp2m_op
    - unlikely
    - pagetable_dying
    linkageType: ''
    returnType: long
    signature: long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5225,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5244,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - v
    - op
    argTypes:
    - struct vcpu*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5251
      start: 5210
    functionDepth: 1
    functionLinenumber: 5210
    functionLinenumberEnd: 5251
    functionName: hvm_debug_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - vcpu_unpause
    - vcpu_pause
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int hvm_debug_op(struct vcpu *v, int32_t op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5256,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5256,1
    - Dst: hvm_is_singlestep_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5262
      start: 5254
    functionDepth: 1
    functionLinenumber: 5254
    functionLinenumberEnd: 5262
    functionName: hvm_toggle_singlestep
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - hvm_is_singlestep_supported
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void hvm_toggle_singlestep(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5267,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5267,1
    - Dst: hvm_is_singlestep_supported
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - p2midx
    argTypes:
    - struct vcpu*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5278
      start: 5265
    functionDepth: 1
    functionLinenumber: 5265
    functionLinenumberEnd: 5278
    functionName: hvm_fast_singlestep
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - hvm_is_singlestep_supported
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5291,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5337,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5288
    functionDepth: 1
    functionLinenumber: 5288
    functionLinenumberEnd: 5356
    functionName: hvm_get_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 10
    functionsReached:
    - is_x86_user_segment
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: "void hvm_get_segment_register(struct vcpu *v, enum x86_segment seg,\n
      \                             struct segment_register *reg)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5368,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5369,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5370,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5371,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5377,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5378,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5379,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5380,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5381,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5391,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5394,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5396,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5399,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5399,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5401,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5406,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5407,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5408,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5410,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5410,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5412,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5414,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5420,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5421,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5422,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5423,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5423,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5429,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5429,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5430,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5434,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5438,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5439
      start: 5358
    functionDepth: 0
    functionLinenumber: 5358
    functionLinenumberEnd: 5439
    functionName: hvm_set_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 7
    functionsReached:
    - alternative_vcall
    - is_canonical_address
    - ASSERT
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void hvm_set_segment_register(struct vcpu *v, enum x86_segment seg,\n
      \                             struct segment_register *reg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_save_size
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5444,1
    - Dst: vmalloc
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5448,1
    - Dst: hvm_save
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5451,1
    - Dst: hvm_get_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5458,1
    - Dst: hvm_set_param
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5461,1
    - Dst: hvm_load
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5466,1
    - Dst: vfree
      Src: /src/xen/xen/arch/x86/hvm/hvm.c:5469,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5472
      start: 5442
    functionDepth: 9
    functionLinenumber: 5442
    functionLinenumberEnd: 5472
    functionName: hvm_copy_context_and_params
    functionSourceFile: /src/xen/xen/arch/x86/hvm/hvm.c
    functionUses: 0
    functionsReached:
    - vfree
    - vmalloc
    - hvm_save_size
    - hvm_load
    - hvm_save
    - hvm_get_param
    - hvm_set_param
    linkageType: ''
    returnType: int
    signature: int hvm_copy_context_and_params(struct domain *dst, struct domain *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/hvm/dm.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - args
    - buf_idx
    - offset_bytes
    - dst_bytes
    argTypes:
    - void*
    - struct dmop_args*
    - unsigned int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: _raw_copy_from_guest_buf_offset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 0
    functionsReached:
    - copy_from_guest_offset
    linkageType: ''
    returnType: bool
    signature: "bool _raw_copy_from_guest_buf_offset(void *dst,\n                                            const
      struct dmop_args *args,\n                                            unsigned
      int buf_idx,\n                                            size_t offset_bytes,\n
      \                                           size_t dst_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - bufs
    - ','
    - buf_idx
    - ','
    - offset_bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: COPY_FROM_GUEST_BUF_OFFSET
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FROM_GUEST_BUF_OFFSET(dst, bufs, buf_idx, offset_bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dm.c:51,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/hvm/dm.c:60,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/hvm/dm.c:63,1
    - Dst: shadow_track_dirty_vram
      Src: /src/xen/xen/arch/x86/hvm/dm.c:64,1
    - Dst: hap_track_dirty_vram
      Src: /src/xen/xen/arch/x86/hvm/dm.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - d
    - first_pfn
    - nr_frames
    - buf
    argTypes:
    - struct domain*
    - xen_pfn_t
    - unsigned int
    - struct xen_dm_op_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: track_dirty_vram
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 2
    functionsReached:
    - shadow_track_dirty_vram
    - GB
    - DIV_ROUND_UP
    - hap_track_dirty_vram
    - shadow_mode_enabled
    linkageType: ''
    returnType: int
    signature: "int track_dirty_vram(struct domain *d, xen_pfn_t first_pfn,\n                            unsigned
      int nr_frames,\n                            const struct xen_dm_op_buf *buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_pci_intx_deassert
      Src: /src/xen/xen/arch/x86/hvm/dm.c:78,1
    - Dst: hvm_pci_intx_assert
      Src: /src/xen/xen/arch/x86/hvm/dm.c:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 6
    argNames:
    - d
    - domain
    - bus
    - device
    - intx
    - level
    argTypes:
    - struct domain*
    - uint16_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 68
    functionDepth: 6
    functionLinenumber: 68
    functionLinenumberEnd: 88
    functionName: set_pci_intx_level
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 1
    functionsReached:
    - hvm_pci_intx_deassert
    - hvm_pci_intx_assert
    linkageType: ''
    returnType: int
    signature: "int set_pci_intx_level(struct domain *d, uint16_t domain,\n                              uint8_t
      bus, uint8_t device,\n                              uint8_t intx, uint8_t level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hvm_isa_irq_deassert
      Src: /src/xen/xen/arch/x86/hvm/dm.c:99,1
    - Dst: hvm_isa_irq_assert
      Src: /src/xen/xen/arch/x86/hvm/dm.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - d
    - isa_irq
    - level
    argTypes:
    - struct domain*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: set_isa_irq_level
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 1
    functionsReached:
    - hvm_isa_irq_deassert
    - hvm_isa_irq_assert
    linkageType: ''
    returnType: int
    signature: "int set_isa_irq_level(struct domain *d, uint8_t isa_irq,\n                             uint8_t
      level)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/hvm/dm.c:124,1
    - Dst: COPY_FROM_GUEST_BUF_OFFSET
      Src: /src/xen/xen/arch/x86/hvm/dm.c:138,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:148,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:175,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/hvm/dm.c:178,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:178,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/hvm/dm.c:183,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:183,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/dm.c:184,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/hvm/dm.c:195,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - d
    - bufs
    - header
    argTypes:
    - struct domain*
    - struct dmop_args*
    - struct xen_dm_op_modified_memory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 204
    functionName: modified_memory
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 1
    functionsReached:
    - paging_mode_log_dirty
    - page_to_mfn
    - _pfn
    - domain_get_maximum_gpfn
    - COPY_FROM_GUEST_BUF_OFFSET
    - paging_mark_pfn_dirty
    - hypercall_preempt_check
    - put_page
    - sh_remove_shadows
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: "int modified_memory(struct domain *d,\n                           const
      struct dmop_args *bufs,\n                           struct xen_dm_op_modified_memory
      *header)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_ioreq_server::p2m_ioreq_server
      Src: /src/xen/xen/arch/x86/hvm/dm.c:208,1
    - Dst: p2m_ram_rw::p2m_ram_rw
      Src: /src/xen/xen/arch/x86/hvm/dm.c:212,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/hvm/dm.c:214,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/hvm/dm.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: allow_p2m_type_change
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 0
    functionsReached:
    - p2m_ioreq_server::p2m_ioreq_server
    - p2m_is_ram
    - p2m_ram_rw::p2m_ram_rw
    - p2m_is_hole
    linkageType: ''
    returnType: bool
    signature: bool allow_p2m_type_change(p2m_type_t old, p2m_type_t new)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:236,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dm.c:239,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/dm.c:240,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/dm.c:243,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/hvm/dm.c:249,1
    - Dst: p2m_get_ioreq_server
      Src: /src/xen/xen/arch/x86/hvm/dm.c:253,1
    - Dst: get_gfn_unshare
      Src: /src/xen/xen/arch/x86/hvm/dm.c:262,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/hvm/dm.c:263,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:265,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/hvm/dm.c:266,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:266,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/hvm/dm.c:270,1
    - Dst: allow_p2m_type_change
      Src: /src/xen/xen/arch/x86/hvm/dm.c:272,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/hvm/dm.c:275,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:277,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/hvm/dm.c:289,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 2
    argNames:
    - d
    - data
    argTypes:
    - struct domain*
    - struct xen_dm_op_set_mem_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 300
    functionName: set_mem_type
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 1
    functionsReached:
    - get_gfn_unshare
    - ARRAY_SIZE
    - array_access_nospec
    - domain_get_maximum_gpfn
    - put_gfn
    - _gfn
    - p2m_get_ioreq_server
    - p2m_mem_paging_populate
    - allow_p2m_type_change
    - p2m_is_shared
    - hypercall_preempt_check
    - unlikely
    - p2m_change_type_one
    - p2m_is_paging
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: "int set_mem_type(struct domain *d,\n                        struct
      xen_dm_op_set_mem_type *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/dm.c:310,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/hvm/dm.c:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - d
    - data
    argTypes:
    - struct domain*
    - struct xen_dm_op_inject_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 323
    functionName: inject_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 6
    functionsReached:
    - smp_wmb
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: "int inject_event(struct domain *d,\n                        const
      struct xen_dm_op_inject_event *data)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/hvm/dm.c:355,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/dm.c:360,1
    - Dst: xsm_dm_op
      Src: /src/xen/xen/arch/x86/hvm/dm.c:363,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/hvm/dm.c:373,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dm.c:376,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/dm.c:382,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dm.c:382,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/hvm/dm.c:387,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/hvm/dm.c:406,1
    - Dst: ioreq_server_map_mem_type
      Src: /src/xen/xen/arch/x86/hvm/dm.c:410,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/dm.c:421,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/hvm/dm.c:423,1
    - Dst: p2m_finish_type_change
      Src: /src/xen/xen/arch/x86/hvm/dm.c:427,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dm.c:427,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/hvm/dm.c:435,1
    - Dst: track_dirty_vram
      Src: /src/xen/xen/arch/x86/hvm/dm.c:459,1
    - Dst: set_pci_intx_level
      Src: /src/xen/xen/arch/x86/hvm/dm.c:468,1
    - Dst: set_isa_irq_level
      Src: /src/xen/xen/arch/x86/hvm/dm.c:479,1
    - Dst: hvm_set_pci_link_route
      Src: /src/xen/xen/arch/x86/hvm/dm.c:488,1
    - Dst: modified_memory
      Src: /src/xen/xen/arch/x86/hvm/dm.c:497,1
    - Dst: set_mem_type
      Src: /src/xen/xen/arch/x86/hvm/dm.c:513,1
    - Dst: inject_event
      Src: /src/xen/xen/arch/x86/hvm/dm.c:526,1
    - Dst: hvm_inject_msi
      Src: /src/xen/xen/arch/x86/hvm/dm.c:539,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/x86/hvm/dm.c:548,1
    - Dst: xenmem_add_to_physmap
      Src: /src/xen/xen/arch/x86/hvm/dm.c:570,1
    - Dst: hvm_set_mem_pinned_cacheattr
      Src: /src/xen/xen/arch/x86/hvm/dm.c:595,1
    - Dst: ioreq_server_dm_op
      Src: /src/xen/xen/arch/x86/hvm/dm.c:611,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/hvm/dm.c:616,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/hvm/dm.c:621,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 154
    argCount: 1
    argNames:
    - op_args
    argTypes:
    - struct dmop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 325
    functionDepth: 7
    functionLinenumber: 325
    functionLinenumberEnd: 624
    functionName: dm_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 1
    functionsReached:
    - rcu_lock_remote_domain_by_id
    - _gfn
    - xenmem_add_to_physmap
    - copy_to_guest_offset
    - set_pci_intx_level
    - hap_enabled
    - is_hvm_domain
    - ioreq_server_map_mem_type
    - ARRAY_SIZE
    - modified_memory
    - set_isa_irq_level
    - rcu_unlock_domain
    - ioreq_server_dm_op
    - xsm_dm_op
    - p2m_finish_type_change
    - hypercall_preempt_check
    - hvm_set_mem_pinned_cacheattr
    - set_mem_type
    - domain_shutdown
    - hvm_inject_msi
    - p2m_get_hostp2m
    - array_index_nospec
    - inject_event
    - read_atomic
    - copy_from_guest_offset
    - hvm_set_pci_link_route
    - track_dirty_vram
    linkageType: ''
    returnType: int
    signature: int dm_op(const struct dmop_args *op_args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dm.c:654,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/dm.c:658,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dm.c:658,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/hvm/dm.c:664,1
    - Dst: XLAT_dm_op_buf
      Src: /src/xen/xen/arch/x86/hvm/dm.c:670,1
    - Dst: dm_op
      Src: /src/xen/xen/arch/x86/hvm/dm.c:675,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/hvm/dm.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - domid
    - nr_bufs
    argTypes:
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 682
    functionName: compat_dm_op
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - ARRAY_SIZE
    - XLAT_dm_op_buf
    - hypercall_create_continuation
    - dm_op
    - copy_from_guest_offset
    linkageType: ''
    returnType: int
    signature: "int compat_dm_op(\n    domid_t domid, unsigned int nr_bufs, XEN_GUEST_HANDLE_PARAM(void)
      bufs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 669
    functionName: XLAT_dm_op_buf_HNDL_h
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_dm_op_buf_HNDL_h(_d_, _s_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:39,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:39,1
    - Dst: nhvm_vcpu_p2m_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - req
    argTypes:
    - struct vcpu*
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: set_npt_base
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - nestedhvm_vcpu_in_guestmode
    - nhvm_vcpu_p2m_base
    linkageType: ''
    returnType: void
    signature: void set_npt_base(struct vcpu *v, vm_event_request_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:50,1
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:66,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - index
    - value
    - old
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: hvm_monitor_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - monitor_ctrlreg_bitmask
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: bool
    signature: bool hvm_monitor_cr(unsigned int index, unsigned long value, unsigned
      long old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:88,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: hvm_monitor_emul_unimplemented
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 1
    functionsReached:
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: bool
    signature: bool hvm_monitor_emul_unimplemented(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:98,1
    - Dst: monitored_msr_onchangeonly
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:99,1
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:109,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - msr
    - new_value
    - old_value
    argTypes:
    - unsigned int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: hvm_monitor_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 1
    functionsReached:
    - monitor_traps
    - set_npt_base
    - monitored_msr
    - monitored_msr_onchangeonly
    linkageType: ''
    returnType: bool
    signature: bool hvm_monitor_msr(unsigned int msr, uint64_t new_value, uint64_t
      old_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:135,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - exit_info
    - vmx_exit_qualification
    - descriptor
    - is_write
    argTypes:
    - uint64_t
    - uint64_t
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: hvm_monitor_descriptor_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 1
    functionsReached:
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: void
    signature: "void hvm_monitor_descriptor_access(uint64_t exit_info,\n                                   uint64_t
      vmx_exit_qualification,\n                                   uint8_t descriptor,
      bool is_write)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:146,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:149,1
    - Dst: paging_gva_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rip
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: gfn_of_rip
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - hvm_get_cpl
    - hvm_get_segment_register
    - paging_gva_to_gfn
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gfn_of_rip(unsigned long rip)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gfn_of_rip
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:174,1
    - Dst: p2m_altp2m_check
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:184,1
    - Dst: gfn_of_rip
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:194,1
    - Dst: gfn_of_rip
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:202,1
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:213,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - rip
    - type
    - trap_type
    - insn_length
    - pending_dbg
    argTypes:
    - unsigned long
    - enum hvm_monitor_debug_type
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 216
    functionName: hvm_monitor_debug
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - gfn_of_rip
    - monitor_traps
    - set_npt_base
    - p2m_altp2m_check
    linkageType: ''
    returnType: int
    signature: "int hvm_monitor_debug(unsigned long rip, enum hvm_monitor_debug_type
      type,\n                      unsigned int trap_type, unsigned int insn_length,\n
      \                     unsigned int pending_dbg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:233,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - insn_length
    - leaf
    - subleaf
    argTypes:
    - unsigned long
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 236
    functionName: hvm_monitor_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 1
    functionsReached:
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: int
    signature: "int hvm_monitor_cpuid(unsigned long insn_length, unsigned int leaf,\n
      \                     unsigned int subleaf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:250,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - vector
    - type
    - err
    - cr2
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 253
    functionName: hvm_monitor_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 1
    functionsReached:
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: void
    signature: "void hvm_monitor_interrupt(unsigned int vector, unsigned int type,\n
      \                          unsigned int err, uint64_t cr2)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:266,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:267,1
    - Dst: altp2m_vcpu_idx
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:268,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:271,1
    - Dst: p2m_get_mem_access
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:277,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:327,1
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:331,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:333,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - gla
    - gfn
    - pfec
    - kind
    argTypes:
    - unsigned long
    - gfn_t
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 334
    functionName: hvm_monitor_check_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 2
    functionsReached:
    - p2m_get_mem_access
    - altp2m_vcpu_idx
    - altp2m_active
    - monitor_traps
    - gfn_x
    - ASSERT
    - gfn_to_gaddr
    - set_npt_base
    linkageType: ''
    returnType: bool
    signature: "bool hvm_monitor_check_p2m(unsigned long gla, gfn_t gfn, uint32_t
      pfec,\n                           uint16_t kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:343,1
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:349,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - exit_reason
    - exit_qualification
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: hvm_monitor_vmexit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: int
    signature: "int hvm_monitor_vmexit(unsigned long exit_reason,\n                       unsigned
      long exit_qualification)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_npt_base
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:370,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/x86/hvm/monitor.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - port
    - bytes
    - in
    - str
    argTypes:
    - unsigned int
    - unsigned int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: hvm_monitor_io
    functionSourceFile: /src/xen/xen/arch/x86/hvm/monitor.c
    functionUses: 0
    functionsReached:
    - set_npt_base
    - monitor_traps
    linkageType: ''
    returnType: int
    signature: "int hvm_monitor_io(unsigned int port, unsigned int bytes,\n                   bool
      in, bool str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: vlapic_lvtt_period
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_lvtt_period(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: vlapic_lvtt_oneshot
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_lvtt_oneshot(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: vlapic_lvtt_tdt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_lvtt_tdt(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fls
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - bitmap
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 82
    functionName: vlapic_find_highest_vector
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - fls
    linkageType: ''
    returnType: int
    signature: int vlapic_find_highest_vector(const void *bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_test_and_set_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - vlapic
    argTypes:
    - int
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: vlapic_test_and_set_irr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_test_and_set_vector
    linkageType: ''
    returnType: int
    signature: int vlapic_test_and_set_irr(int vector, struct vlapic *vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_clear_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - vlapic
    argTypes:
    - int
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: vlapic_clear_irr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_clear_vector
    linkageType: ''
    returnType: void
    signature: void vlapic_clear_irr(int vector, struct vlapic *vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_sync_pir_to_irr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:100,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:100,1
    - Dst: vlapic_find_highest_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: vlapic_find_highest_irr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - hvm_sync_pir_to_irr
    - vlapic_vcpu
    - vlapic_find_highest_vector
    linkageType: ''
    returnType: int
    signature: int vlapic_find_highest_irr(struct vlapic *vlapic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:114,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:116,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:126,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:129,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:129,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - vlapic
    - err_bit
    argTypes:
    - struct vlapic*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 135
    functionName: vlapic_error
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - APIC_VECTOR_VALID
    - vlapic_get_reg
    - vlapic_set_irq
    - ilog2
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vlapic_error(struct vlapic *vlapic, unsigned int err_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:139,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:139,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:143,1
    - Dst: const_vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:143,1
    - Dst: vlapic_test_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - vlapic
    - vec
    argTypes:
    - struct vlapic*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: vlapic_test_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - const_vlapic_vcpu
    - vlapic_test_vector
    - APIC_VECTOR_VALID
    - alternative_call
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool vlapic_test_irq(const struct vlapic *vlapic, uint8_t vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:151,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:153,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:153,1
    - Dst: vlapic_error
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:155,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:155,1
    - Dst: vlapic_set_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:160,1
    - Dst: vlapic_clear_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:162,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:165,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:168,1
    - Dst: vlapic_test_and_set_irr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:169,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - vlapic
    - vec
    - trig
    argTypes:
    - struct vlapic*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: vlapic_set_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 3
    functionsReached:
    - vlapic_test_and_set_irr
    - vcpu_kick
    - vlapic_set_vector
    - vlapic_error
    - vlapic_clear_vector
    - APIC_VECTOR_VALID
    - alternative_vcall
    - vlapic_vcpu
    - unlikely
    - ilog2
    linkageType: ''
    returnType: void
    signature: void vlapic_set_irq(struct vlapic *vlapic, uint8_t vec, uint8_t trig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_find_highest_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: vlapic_find_highest_isr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_find_highest_vector
    linkageType: ''
    returnType: int
    signature: int vlapic_find_highest_isr(const struct vlapic *vlapic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:183,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:184,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 197
    functionName: vlapic_get_ppr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_find_highest_isr
    - HVM_DBG_LOG
    - vlapic_get_reg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vlapic_get_ppr(const struct vlapic *vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_ppr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:201,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: vlapic_set_ppr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_get_ppr
    - vlapic_set_reg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vlapic_set_ppr(struct vlapic *vlapic)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:210,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:212,1
    - Dst: GET_xAPIC_LOGICAL_ID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:216,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:219,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:230,1
    - Dst: const_vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:231,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:232,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - vlapic
    - mda
    argTypes:
    - struct vlapic*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 237
    functionName: vlapic_match_logical_addr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - const_vlapic_vcpu
    - vlapic_get_reg
    - GET_xAPIC_LOGICAL_ID
    - printk
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: bool
    signature: bool vlapic_match_logical_addr(const struct vlapic *vlapic, uint32_t
      mda)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:243,1
    - Dst: vlapic_match_logical_addr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:251,1
    - Dst: _VLAPIC_ID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:252,1
    - Dst: VLAPIC_ID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:253,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - target
    - source
    - short_hand
    - dest
    - dest_mode
    argTypes:
    - struct vlapic*
    - struct vlapic*
    - int
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: vlapic_match_dest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 3
    functionsReached:
    - gdprintk
    - vlapic_match_logical_addr
    - VLAPIC_ID
    - HVM_DBG_LOG
    - _VLAPIC_ID
    linkageType: ''
    returnType: bool
    signature: "bool vlapic_match_dest(\n    const struct vlapic *target, const struct
      vlapic *source,\n    int short_hand, uint32_t dest, bool dest_mode)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:274,1
    - Dst: hvm_vcpu_down
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:289,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:290,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:293,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:294,1
    - Dst: vlapic_do_init
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:296,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:296,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:297,1
    - Dst: hvm_vcpu_reset_state
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:303,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:308,1
    - Dst: hvmemul_cancel
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:311,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - target
    - icr
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 314
    functionName: vlapic_init_sipi_one
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - BUG
    - vcpu_pause
    - hvm_vcpu_down
    - domain_unlock
    - vcpu_unpause
    - hvm_vcpu_reset_state
    - hvmemul_cancel
    - domain_lock
    - ASSERT
    - vcpu_reset
    - vlapic_do_init
    - vcpu_vlapic
    linkageType: ''
    returnType: void
    signature: void vlapic_init_sipi_one(struct vcpu *target, uint32_t icr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:319,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:320,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:328,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:330,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:330,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:330,1
    - Dst: vlapic_init_sipi_one
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:332,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:335,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 337
    functionName: vlapic_init_sipi_action
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vlapic_match_dest
    - vcpu_unpause
    - vlapic_init_sipi_one
    - vcpu_vlapic
    linkageType: ''
    returnType: void
    signature: void vlapic_init_sipi_action(void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:342,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:349,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:350,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:354,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:358,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:362,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:366,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:368,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:369,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:371,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:372,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:378,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:381,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - v
    - icr_low
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 386
    functionName: vlapic_accept_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_wake
    - gdprintk
    - BUG
    - test_and_set_bool
    - domain_unlock
    - vcpu_kick
    - test_and_clear_bit
    - domain_lock
    - domain_crash
    - vlapic_enabled
    - vcpu_vlapic
    - vlapic_set_irq
    linkageType: ''
    returnType: void
    signature: void vlapic_accept_irq(struct vcpu *v, uint32_t icr_low)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:392,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:397,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:397,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:402,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:403,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:404,1
    - Dst: vlapic_get_ppr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:405,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:413,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 5
    argNames:
    - d
    - source
    - short_hand
    - dest
    - dest_mode
    argTypes:
    - struct domain*
    - struct vlapic*
    - int
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 417
    functionName: vlapic_lowest_prio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - unlikely
    - vlapic_match_dest
    - vlapic_get_ppr
    - vlapic_enabled
    - hvm_domain_irq
    - vcpu_vlapic
    - vlapic_vcpu
    linkageType: ''
    returnType: struct vlapic
    signature: "struct vlapic *vlapic_lowest_prio(\n    struct domain *d, const struct
      vlapic *source,\n    int short_hand, uint32_t dest, bool dest_mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:421,1
    - Dst: has_viridian_apic_assist
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:429,1
    - Dst: viridian_apic_assist_completed
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:430,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:434,1
    - Dst: has_viridian_apic_assist
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:446,1
    - Dst: viridian_apic_assist_clear
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:447,1
    - Dst: vlapic_clear_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:449,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:452,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:453,1
    - Dst: vlapic_handle_EOI
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 462
    functionName: vlapic_EOI_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - has_viridian_apic_assist
    - viridian_apic_assist_clear
    - viridian_apic_assist_completed
    - vlapic_clear_vector
    - vlapic_handle_EOI
    - alternative_vcall
    - vlapic_find_highest_isr
    - vlapic_vcpu
    linkageType: ''
    returnType: void
    signature: void vlapic_EOI_set(struct vlapic *vlapic)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:466,1
    - Dst: vlapic_test_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:469,1
    - Dst: vioapic_update_EOI
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:470,1
    - Dst: hvm_dpci_msi_eoi
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vlapic
    - vector
    argTypes:
    - struct vlapic*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: vlapic_handle_EOI
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - vioapic_update_EOI
    - hvm_dpci_msi_eoi
    - vlapic_test_vector
    - vlapic_vcpu
    linkageType: ''
    returnType: void
    signature: void vlapic_handle_EOI(struct vlapic *vlapic, u8 vector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:478,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:484,1
    - Dst: multiple_bits_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:485,1
    - Dst: GET_xAPIC_DEST_FIELD
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:490,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:490,1
    - Dst: multiple_bits_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - vlapic
    - short_hand
    - dest
    - dest_mode
    argTypes:
    - struct vlapic*
    - unsigned int
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 495
    functionName: is_multicast_dest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - multiple_bits_set
    - vlapic_domain
    - vlapic_get_reg
    - GET_xAPIC_DEST_FIELD
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: bool
    signature: "bool is_multicast_dest(struct vlapic *vlapic, unsigned int short_hand,\n
      \                             uint32_t dest, bool dest_mode)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:504,1
    - Dst: _VLAPIC_ID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:506,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:514,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:517,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:517,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:520,1
    - Dst: vlapic_lowest_prio
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:524,1
    - Dst: vlapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:525,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:527,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:527,1
    - Dst: vlapic_error
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:528,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:528,1
    - Dst: vlapic_accept_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:530,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:530,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:535,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:535,1
    - Dst: vlapic_error
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:537,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:537,1
    - Dst: is_multicast_dest
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:543,1
    - Dst: cpu_raise_softirq_batch_begin
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:546,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:549,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:549,1
    - Dst: vlapic_accept_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:551,1
    - Dst: cpu_raise_softirq_batch_finish
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:554,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - vlapic
    - icr_low
    - icr_high
    argTypes:
    - struct vlapic*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 558
    functionName: vlapic_ipi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    - is_multicast_dest
    - vlapic_match_dest
    - vlapic_lowest_prio
    - ilog2
    - vlapic_error
    - cpu_raise_softirq_batch_begin
    - vlapic_domain
    - APIC_VECTOR_VALID
    - vlapic_accept_irq
    - WARN
    - cpu_raise_softirq_batch_finish
    - vlapic_vcpu
    - unlikely
    - vcpu_vlapic
    - vcpu_pause_nosync
    - HVM_DBG_LOG
    - _VLAPIC_ID
    linkageType: ''
    returnType: void
    signature: "void vlapic_ipi(\n    struct vlapic *vlapic, uint32_t icr_low, uint32_t
      icr_high)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:549,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:549,1
    - Dst: vlapic_accept_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 4
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 12
    functionsReached:
    - vcpu_vlapic
    - vlapic_accept_irq
    - vlapic_match_dest
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( vlapic_domain(vlapic), v )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: const_vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:562,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:563,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:566,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:572,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 584
    functionName: vlapic_get_tmcct
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - hvm_get_guest_time
    - const_vlapic_vcpu
    - vlapic_lvtt_period
    - vlapic_get_reg
    - HVM_DBG_LOG
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vlapic_get_tmcct(const struct vlapic *vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:590,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - vlapic
    - val
    argTypes:
    - struct vlapic*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 598
    functionName: vlapic_set_tdcr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_set_reg
    - HVM_DBG_LOG
    linkageType: ''
    returnType: void
    signature: void vlapic_set_tdcr(struct vlapic *vlapic, unsigned int val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_ppr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:606,1
    - Dst: vlapic_lvtt_oneshot
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:609,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:609,1
    - Dst: vlapic_get_tmcct
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:611,1
    - Dst: vlapic_lvtt_oneshot
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:614,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:614,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - vlapic
    - offset
    argTypes:
    - struct vlapic*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 622
    functionName: vlapic_read_aligned
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_get_tmcct
    - vlapic_lvtt_period
    - vlapic_get_reg
    - vlapic_get_ppr
    - vlapic_lvtt_oneshot
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vlapic_read_aligned(const struct vlapic *vlapic,\n                                    unsigned
      int offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:628,1
    - Dst: vlapic_base_address
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:629,1
    - Dst: vlapic_read_aligned
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:641,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - v
    - address
    - len
    - pval
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 656
    functionName: vlapic_mmio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - vlapic_base_address
    - vlapic_read_aligned
    - HVM_DBG_LOG
    linkageType: ''
    returnType: int
    signature: "int vlapic_mmio_read(\n    struct vcpu *v, unsigned long address,
      unsigned int len,\n    unsigned long *pval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:661,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:662,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:662,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:662,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:662,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:663,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:663,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:663,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:663,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:664,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:664,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:664,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:664,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:665,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:665,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:665,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:665,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:666,1
    - Dst: REG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:666,1
    - Dst: REGBLOCK
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:668,1
    - Dst: REGBLOCK
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:669,1
    - Dst: REGBLOCK
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:669,1
    - Dst: REGBLOCK
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:669,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:672,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:681,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:683,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:687,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:688,1
    - Dst: vlapic_read_aligned
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:693,1
    - Dst: vlapic_read_aligned
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:695,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 704
    functionName: guest_rdmsr_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - hvm_get_guest_time
    - REGBLOCK
    - REG
    - vlapic_read_aligned
    - ASSERT
    - vcpu_vlapic
    - test_bit
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: int
    signature: int guest_rdmsr_x2apic(const struct vcpu *v, uint32_t msr, uint64_t
      *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:708,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 710
    functionName: vlapic_tdt_pt_cb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - hvm_get_guest_time
    linkageType: ''
    returnType: void
    signature: void vlapic_tdt_pt_cb(struct vcpu *v, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:729,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:737,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:741,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:753,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:761,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:764,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:773,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:777,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:782,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:783,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - vlapic
    - lvtt
    - tmict_updated
    - old_divisor
    argTypes:
    - struct vlapic*
    - uint32_t
    - bool
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 791
    functionName: vlapic_update_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - hvm_get_guest_time
    - vlapic_lvtt_period
    - create_periodic_time
    - vlapic_get_reg
    - destroy_periodic_time
    - HVM_DBG_LOG
    linkageType: ''
    returnType: void
    signature: "void vlapic_update_timer(struct vlapic *vlapic, uint32_t lvtt,\n                                bool
      tmict_updated, uint32_t old_divisor)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:795,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:797,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:802,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:806,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:807,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:811,1
    - Dst: vlapic_EOI_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:815,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:819,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:823,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:827,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:838,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:839,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:846,1
    - Dst: vlapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:846,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:848,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:849,1
    - Dst: vlapic_ipi
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:855,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:855,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:856,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:860,1
    - Dst: vlapic_lvtt_tdt
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:864,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:867,1
    - Dst: vlapic_update_timer
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:872,1
    - Dst: vlapic_sw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:880,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:882,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:883,1
    - Dst: vlapic_adjust_i8259_target
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:886,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:887,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:890,1
    - Dst: vpmu_lvtpc_update
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:892,1
    - Dst: vlapic_lvtt_oneshot
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:896,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:896,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:899,1
    - Dst: vlapic_update_timer
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:901,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:901,1
    - Dst: vlapic_set_tdcr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:909,1
    - Dst: vlapic_update_timer
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:911,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:911,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:913,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 793
    functionDepth: 6
    functionLinenumber: 793
    functionLinenumberEnd: 918
    functionName: vlapic_reg_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_sw_disabled
    - vlapic_set_reg
    - vlapic_adjust_i8259_target
    - vlapic_EOI_set
    - vlapic_lvtt_period
    - vpmu_lvtpc_update
    - vcpu_vlapic
    - vlapic_update_timer
    - vlapic_set_tdcr
    - xchg
    - vlapic_lvtt_tdt
    - memset
    - vlapic_set_irq
    - HVM_DBG_LOG
    - vcpu_info
    - array_access_nospec
    - pt_may_unmask_irq
    - vlapic_domain
    - vlapic_get_reg
    - vlapic_ipi
    - vlapic_lvtt_oneshot
    linkageType: ''
    returnType: void
    signature: void vlapic_reg_write(struct vcpu *v, unsigned int reg, uint32_t val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:923,1
    - Dst: vlapic_base_address
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:924,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:930,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:943,1
    - Dst: vlapic_read_aligned
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:945,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - v
    - address
    - len
    - val
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 920
    functionDepth: 7
    functionLinenumber: 920
    functionLinenumberEnd: 967
    functionName: vlapic_mmio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_base_address
    - HVM_DBG_LOG
    - vlapic_reg_write
    - unlikely
    - vcpu_vlapic
    - vlapic_read_aligned
    linkageType: ''
    returnType: int
    signature: "int vlapic_mmio_write(\n    struct vcpu *v, unsigned long address,
      unsigned int len, unsigned long val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:971,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:972,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:974,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - offset
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 969
    functionDepth: 7
    functionLinenumber: 969
    functionLinenumberEnd: 986
    functionName: vlapic_apicv_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - vlapic_x2apic_mode
    - vlapic_reg_write
    - vlapic_get_reg
    linkageType: ''
    returnType: int
    signature: int vlapic_apicv_write(struct vcpu *v, unsigned int offset)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:990,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:994,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:996,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1050,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1069,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1069,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 988
    functionDepth: 7
    functionLinenumber: 988
    functionLinenumberEnd: 1072
    functionName: guest_wrmsr_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - vlapic_set_reg
    - ASSERT
    - vlapic_reg_write
    - vcpu_vlapic
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: int
    signature: int guest_wrmsr_x2apic(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1076,1
    - Dst: vlapic_base_address
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1077,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1079,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1082
    functionName: vlapic_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - vlapic_hw_disabled
    - vlapic_base_address
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: int
    signature: int vlapic_range(struct vcpu *v, unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1093
    functionName: x2apic_ldr_from_id
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t x2apic_ldr_from_id(uint32_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1097,1
    - Dst: x2apic_ldr_from_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1099,1
    - Dst: x2apic_ldr_from_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1106,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1108,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1110
    functionName: set_x2apic_id
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_set_reg
    - vlapic_vcpu
    - x2apic_ldr_from_id
    linkageType: ''
    returnType: void
    signature: void set_x2apic_id(struct vlapic *vlapic)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1115,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1117,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1163,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1171,1
    - Dst: vlapic_reset
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1176,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1178,1
    - Dst: vlapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1178,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1183,1
    - Dst: vlapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1183,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1187,1
    - Dst: vlapic_xapic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1187,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1191,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1193,1
    - Dst: set_x2apic_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1194,1
    - Dst: hvm_update_vlapic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1196,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1196,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - v
    - val
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1202
    functionName: guest_wrmsr_apic_base
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - vlapic_xapic_mode
    - hvm_update_vlapic_mode
    - vlapic_reset
    - has_vlapic
    - set_x2apic_id
    - pt_may_unmask_irq
    - vlapic_domain
    - HVM_DBG_LOG
    - memset
    - printk
    - unlikely
    - vcpu_vlapic
    - vlapic_vcpu
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: int
    signature: int guest_wrmsr_apic_base(struct vcpu *v, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_lvtt_tdt
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1210
    functionName: vlapic_tdt_msr_get
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - vlapic_lvtt_tdt
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vlapic_tdt_msr_get(struct vlapic *vlapic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1215,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1217,1
    - Dst: vlapic_lvtt_tdt
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1220,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1222,1
    - Dst: hvm_get_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1227,1
    - Dst: gtsc_to_gtime
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1230,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1231,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1233,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1237,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1239,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1251,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1253,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1261,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1262,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1265,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - vlapic
    - value
    argTypes:
    - struct vlapic*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1272
    functionName: vlapic_tdt_msr_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - TRACE_TIME
    - vlapic_hw_disabled
    - create_periodic_time
    - vlapic_lvtt_tdt
    - vlapic_vcpu
    - hvm_get_guest_tsc
    - max_t
    - gtsc_to_gtime
    - HVM_DBG_LOG
    - destroy_periodic_time
    linkageType: ''
    returnType: void
    signature: void vlapic_tdt_msr_set(struct vlapic *vlapic, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1277,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1278,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1281,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1281,1
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1283,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1286,1
    - Dst: VLAPIC_ID
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1292,1
    - Dst: vlapic_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1293,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1298
    functionName: __vlapic_accept_pic_intr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - has_vpic
    - vlapic_hw_disabled
    - vlapic_get_reg
    - domain_vioapic
    - has_vioapic
    - ASSERT
    - VLAPIC_ID
    - vlapic_disabled
    - vcpu_vlapic
    linkageType: ''
    returnType: int
    signature: int __vlapic_accept_pic_intr(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1304,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1304,1
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1304,1
    - Dst: __vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1309,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1300
    functionDepth: 2
    functionLinenumber: 1300
    functionLinenumberEnd: 1314
    functionName: vlapic_accept_pic_intr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 3
    functionsReached:
    - TRACE_TIME
    - has_vpic
    - __vlapic_accept_pic_intr
    - vlapic_hw_disabled
    - vcpu_vlapic
    linkageType: ''
    returnType: int
    signature: int vlapic_accept_pic_intr(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vpic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1320,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1323,1
    - Dst: __vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1324,1
    - Dst: pt_adjust_global_vcpu_target
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1334
    functionName: vlapic_adjust_i8259_target
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - __vlapic_accept_pic_intr
    - for_each_vcpu
    - pt_adjust_global_vcpu_target
    - has_vpic
    linkageType: ''
    returnType: void
    signature: void vlapic_adjust_i8259_target(struct domain *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1338,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1341,1
    - Dst: has_viridian_synic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1348,1
    - Dst: viridian_synic_poll
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1349,1
    - Dst: vlapic_find_highest_irr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1351,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1356,1
    - Dst: has_viridian_apic_assist
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1364,1
    - Dst: viridian_apic_assist_completed
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1365,1
    - Dst: vlapic_EOI_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1366,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1368,1
    - Dst: has_viridian_apic_assist
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1378,1
    - Dst: viridian_apic_assist_clear
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1336
    functionDepth: 4
    functionLinenumber: 1336
    functionLinenumberEnd: 1384
    functionName: vlapic_has_pending_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - has_viridian_apic_assist
    - viridian_apic_assist_clear
    - viridian_apic_assist_completed
    - has_viridian_synic
    - viridian_synic_poll
    - vlapic_EOI_set
    - vlapic_enabled
    - vlapic_find_highest_isr
    - vcpu_vlapic
    - nestedhvm_vcpu_in_guestmode
    - vlapic_find_highest_irr
    linkageType: ''
    returnType: int
    signature: int vlapic_has_pending_irq(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1388,1
    - Dst: has_viridian_apic_assist
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1396,1
    - Dst: vlapic_test_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1397,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1400,1
    - Dst: viridian_apic_assist_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1408,1
    - Dst: has_viridian_synic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1412,1
    - Dst: viridian_synic_is_auto_eoi_sint
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1413,1
    - Dst: vlapic_set_vector
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1414,1
    - Dst: vlapic_clear_irr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - v
    - vector
    - force_ack
    argTypes:
    - struct vcpu*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1386
    functionDepth: 3
    functionLinenumber: 1386
    functionLinenumberEnd: 1419
    functionName: vlapic_ack_pending_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - has_viridian_apic_assist
    - vlapic_set_vector
    - has_viridian_synic
    - vlapic_test_vector
    - viridian_apic_assist_set
    - vlapic_find_highest_isr
    - vcpu_vlapic
    - viridian_synic_is_auto_eoi_sint
    - vlapic_clear_irr
    linkageType: ''
    returnType: int
    signature: int vlapic_ack_pending_irq(struct vcpu *v, int vector, bool force_ack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1423,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1425
    functionName: is_vlapic_lvtpc_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vlapic_get_reg
    - vlapic_enabled
    linkageType: ''
    returnType: bool
    signature: bool is_vlapic_lvtpc_enabled(struct vlapic *vlapic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1432,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1432,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1435,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1439,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1440,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1441,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1443,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1444,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1449,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1450,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1451,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1452,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1453,1
    - Dst: vlapic_set_tdcr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1454,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1456,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1459,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1461,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1464,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1466
    functionName: vlapic_do_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - TRACE_TIME
    - has_vlapic
    - vlapic_set_tdcr
    - vlapic_set_reg
    - vlapic_vcpu
    - destroy_periodic_time
    - vlapic_x2apic_mode
    linkageType: ''
    returnType: void
    signature: void vlapic_do_init(struct vlapic *vlapic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1471,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1473,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1480,1
    - Dst: vlapic_do_init
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1469
    functionDepth: 3
    functionLinenumber: 1469
    functionLinenumberEnd: 1482
    functionName: vlapic_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 3
    functionsReached:
    - vlapic_set_reg
    - vlapic_do_init
    - vlapic_vcpu
    - has_vlapic
    linkageType: ''
    returnType: void
    signature: void vlapic_reset(struct vlapic *vlapic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1491,1
    - Dst: vlapic_lvtt_tdt
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1493,1
    - Dst: vlapic_tdt_msr_get
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1495,1
    - Dst: vlapic_tdt_msr_set
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1496,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1500,1
    - Dst: vlapic_lvtt_period
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1505,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1510,1
    - Dst: create_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1513,1
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1485
    functionDepth: 3
    functionLinenumber: 1485
    functionLinenumberEnd: 1519
    functionName: lapic_rearm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - vlapic_tdt_msr_get
    - vlapic_lvtt_period
    - vlapic_tdt_msr_set
    - create_periodic_time
    - vlapic_lvtt_tdt
    - vlapic_get_reg
    - vlapic_vcpu
    linkageType: ''
    returnType: void
    signature: void lapic_rearm(struct vlapic *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1523,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1526,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    functionName: lapic_save_hidden
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - hvm_save_entry
    - has_vlapic
    linkageType: ''
    returnType: int
    signature: int lapic_save_hidden(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1531,1
    - Dst: hvm_sync_pir_to_irr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1534,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1536,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1537
    functionName: lapic_save_regs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - hvm_save_entry
    - hvm_sync_pir_to_irr
    - has_vlapic
    linkageType: ''
    returnType: int
    signature: int lapic_save_regs(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1545,1
    - Dst: x2apic_ldr_from_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1546,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1549,1
    - Dst: set_x2apic_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1561,1
    - Dst: x2apic_ldr_from_id
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1563,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - vlapic
    argTypes:
    - struct vlapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1579
    functionName: lapic_load_fixup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - set_x2apic_id
    - printk
    - vlapic_vcpu
    - vlapic_x2apic_mode
    - x2apic_ldr_from_id
    linkageType: ''
    returnType: void
    signature: void lapic_load_fixup(struct vlapic *vlapic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1584,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1588,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - vcpuid
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1596
    functionName: lapic_check_common
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - dprintk
    - domain_vcpu
    - has_vlapic
    linkageType: ''
    returnType: int
    signature: int lapic_check_common(const struct domain *d, unsigned int vcpuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1601,1
    - Dst: lapic_check_common
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1603,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1598
    functionDepth: 2
    functionLinenumber: 1598
    functionLinenumberEnd: 1617
    functionName: lapic_check_hidden
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - lapic_check_common
    - hvm_load_instance
    - hvm_load_entry_zeroextend
    linkageType: ''
    returnType: int
    signature: "int lapic_check_hidden(const struct domain *d,\n                                       hvm_domain_context_t
      *h)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1621,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1623,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1625,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1627,1
    - Dst: lapic_load_fixup
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1633,1
    - Dst: hvm_update_vlapic_mode
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1638
    functionName: lapic_load_hidden
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - hvm_update_vlapic_mode
    - hvm_load_instance
    - hvm_load_entry_zeroextend
    - vcpu_vlapic
    - lapic_load_fixup
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int lapic_load_hidden(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1643,1
    - Dst: lapic_check_common
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1646,1
    - Dst: hvm_get_entry
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1640
    functionDepth: 2
    functionLinenumber: 1640
    functionLinenumberEnd: 1653
    functionName: lapic_check_regs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - lapic_check_common
    - hvm_load_instance
    - hvm_get_entry
    linkageType: ''
    returnType: int
    signature: "int lapic_check_regs(const struct domain *d,\n                                     hvm_domain_context_t
      *h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1657,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1659,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1661,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1662,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1664,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1665,1
    - Dst: lapic_load_fixup
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1668,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1671,1
    - Dst: vlapic_find_highest_isr
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1672,1
    - Dst: vlapic_adjust_i8259_target
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1674,1
    - Dst: lapic_rearm
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1655
    functionDepth: 4
    functionLinenumber: 1655
    functionLinenumberEnd: 1677
    functionName: lapic_load_regs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 0
    functionsReached:
    - lapic_rearm
    - vlapic_get_reg
    - hvm_load_entry
    - vlapic_adjust_i8259_target
    - hvm_load_instance
    - alternative_vcall
    - vlapic_find_highest_isr
    - vcpu_vlapic
    - lapic_load_fixup
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int lapic_load_regs(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1686,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1688,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1690,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1698,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1702,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1705,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1709,1
    - Dst: vlapic_reset
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1711,1
    - Dst: tasklet_init
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1713,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1684
    functionDepth: 4
    functionLinenumber: 1684
    functionLinenumberEnd: 1719
    functionName: vlapic_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 1
    functionsReached:
    - has_vlapic
    - clear_page
    - alloc_domheap_page
    - register_mmio_handler
    - tasklet_init
    - free_domheap_page
    - vlapic_reset
    - vcpu_vlapic
    - HVM_DBG_LOG
    - __map_domain_page_global
    linkageType: ''
    returnType: int
    signature: int vlapic_init(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1723,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1725,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1728,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1729,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1730,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1731,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vlapic.c:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1733
    functionName: vlapic_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vlapic.c
    functionUses: 2
    functionsReached:
    - TRACE_TIME
    - tasklet_kill
    - has_vlapic
    - unmap_domain_page_global
    - destroy_periodic_time
    - vcpu_vlapic
    - free_domheap_page
    linkageType: ''
    returnType: void
    signature: void vlapic_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - p_data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: stdvga_mem_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/stdvga.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int stdvga_mem_read(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t *p_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_select
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:61,1
    - Dst: ioreq_send
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: stdvga_mem_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/stdvga.c
    functionUses: 0
    functionsReached:
    - ioreq_server_select
    - ioreq_send
    linkageType: ''
    returnType: int
    signature: "int stdvga_mem_write(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_mmio_first_byte
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:77,1
    - Dst: ioreq_mmio_last_byte
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: stdvga_mem_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/stdvga.c
    functionUses: 0
    functionsReached:
    - ioreq_mmio_first_byte
    - ioreq_mmio_last_byte
    linkageType: ''
    returnType: bool
    signature: "bool stdvga_mem_accept(\n    const struct hvm_io_handler *handler,
      const ioreq_t *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vvga
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:94,1
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/stdvga.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: stdvga_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/stdvga.c
    functionUses: 1
    functionsReached:
    - has_vvga
    - hvm_next_io_handler
    linkageType: ''
    returnType: void
    signature: void stdvga_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_mmio_first_byte
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:26,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:28,1
    - Dst: struct hvm_io_handler*::mmio::ops::check
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:30,1
    - Dst: ioreq_mmio_last_byte
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:34,1
    - Dst: struct hvm_io_handler*::mmio::ops::check
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:36,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: hvm_mmio_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_handler*::mmio::ops::check
    - ioreq_mmio_first_byte
    - domain_crash
    - ioreq_mmio_last_byte
    linkageType: ''
    returnType: bool
    signature: "bool hvm_mmio_accept(\n    const struct hvm_io_handler *handler, const
      ioreq_t *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:46,1
    - Dst: struct hvm_io_handler*::mmio::ops::read
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: hvm_mmio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_handler*::mmio::ops::read
    linkageType: ''
    returnType: int
    signature: "int hvm_mmio_read(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:55,1
    - Dst: struct hvm_io_handler*::mmio::ops::write
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: hvm_mmio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_handler*::mmio::ops::write
    linkageType: ''
    returnType: int
    signature: "int hvm_mmio_write(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: hvm_portio_accept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: bool
    signature: "bool hvm_portio_accept(\n    const struct hvm_io_handler *handler,
      const ioreq_t *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:84,1
    - Dst: struct hvm_io_handler*::portio::action
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: hvm_portio_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_handler*::portio::action
    linkageType: ''
    returnType: int
    signature: "int hvm_portio_read(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:98,1
    - Dst: struct hvm_io_handler*::portio::action
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - handler
    - addr
    - size
    - data
    argTypes:
    - struct hvm_io_handler*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: hvm_portio_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_handler*::portio::action
    linkageType: ''
    returnType: int
    signature: "int hvm_portio_write(\n    const struct hvm_io_handler *handler, uint64_t
      addr, uint32_t size,\n    uint64_t data)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: struct hvm_io_ops*::read
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:125,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:131,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:143,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:146,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:161,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:164,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:176,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:179,1
    - Dst: hvmemul_cache_restore
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:183,1
    - Dst: struct hvm_io_ops*::write
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:191,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - handler
    - p
    argTypes:
    - struct hvm_io_handler*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 213
    functionName: hvm_process_io_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 1
    functionsReached:
    - struct hvm_io_ops*::write
    - hvmemul_cache_restore
    - struct hvm_io_ops*::read
    - domain_crash
    - hvm_copy_from_guest_phys
    - ASSERT_UNREACHABLE
    - hvmemul_cache_disable
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: int
    signature: "int hvm_process_io_intercept(const struct hvm_io_handler *handler,\n
      \                            ioreq_t *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:220,1
    - Dst: struct hvm_io_ops*::accept
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: hvm_find_io_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - struct hvm_io_ops*::accept
    linkageType: ''
    returnType: struct hvm_io_handler
    signature: struct hvm_io_handler *hvm_find_io_handler(const ioreq_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_find_io_handler
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:243,1
    - Dst: hvm_process_io_intercept
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 6
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: hvm_io_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 1
    functionsReached:
    - hvm_find_io_handler
    - hvm_process_io_intercept
    linkageType: ''
    returnType: int
    signature: int hvm_io_intercept(ioreq_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:255,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: hvm_next_io_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 4
    functionsReached:
    - ASSERT
    - domain_crash
    linkageType: ''
    returnType: struct hvm_io_handler
    signature: struct hvm_io_handler *hvm_next_io_handler(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ops
    argTypes:
    - struct domain*
    - struct hvm_mmio_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: register_mmio_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 4
    functionsReached:
    - hvm_next_io_handler
    linkageType: ''
    returnType: void
    signature: "void register_mmio_handler(struct domain *d,\n                           const
      struct hvm_mmio_ops *ops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_next_io_handler
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - d
    - port
    - size
    - action
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - portio_action_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: register_portio_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 6
    functionsReached:
    - hvm_next_io_handler
    linkageType: ''
    returnType: void
    signature: "void register_portio_handler(struct domain *d, unsigned int port,\n
      \                            unsigned int size, portio_action_t action)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - d
    - old_port
    - new_port
    - size
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 316
    functionName: relocate_portio_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool relocate_portio_handler(struct domain *d, unsigned int old_port,\n
      \                            unsigned int new_port, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_find_io_handler
      Src: /src/xen/xen/arch/x86/hvm/intercept.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: hvm_mmio_internal
    functionSourceFile: /src/xen/xen/arch/x86/hvm/intercept.c
    functionUses: 2
    functionsReached:
    - hvm_find_io_handler
    linkageType: ''
    returnType: bool
    signature: bool hvm_mmio_internal(paddr_t gpa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:57,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:58,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: print_order_stats
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - printk
    linkageType: ''
    returnType: void
    signature: void print_order_stats(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:70,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:70,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:70,1
    - Dst: unmap_mmio_regions
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:71,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:71,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:71,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:76,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - d
    - pfn
    - nr_pages
    - map
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 87
    functionName: modify_identity_mmio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - unmap_mmio_regions
    - _gfn
    - map_mmio_regions
    - _mfn
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: int
    signature: "int modify_identity_mmio(struct domain *d, unsigned long pfn,\n                                       unsigned
      long nr_pages, const bool map)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:99,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:99,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:100,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:100,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:101,1
    - Dst: KB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:101,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:113,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:114,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:120,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:121,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:135,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:135,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:140,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:141,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:143,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:143,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:144,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:156,1
    - Dst: p2m_add_page
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:163,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:163,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:163,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:166,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:179,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - d
    - start
    - nr_pages
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 183
    functionName: pvh_populate_memory_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - MB
    - ROUNDUP
    - page_to_mfn
    - ARRAY_SIZE
    - get_order_from_pages
    - ffsl
    - _gfn
    - IS_ALIGNED
    - GB
    - KB
    - min
    - process_pending_softirqs
    - printk
    - PFN_DOWN
    - alloc_domheap_pages
    - p2m_add_page
    linkageType: ''
    returnType: int
    signature: "int pvh_populate_memory_range(struct domain *d,\n                                            unsigned
      long start,\n                                            unsigned long nr_pages)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 5
    argNames:
    - d
    - size
    - align
    - limit
    - addr
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - paddr_t
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 215
    functionName: pvh_steal_ram
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - MB
    linkageType: ''
    returnType: int
    signature: "int pvh_steal_ram(struct domain *d, unsigned long size,\n                                unsigned
      long align, paddr_t limit,\n                                paddr_t *addr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:249,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:252,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:256,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:257,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - d
    - s
    - e
    - type
    argTypes:
    - struct domain*
    - uint64_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 267
    functionName: pvh_add_mem_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - xfree
    - memcpy
    - printk
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: "int pvh_add_mem_range(struct domain *d, uint64_t s, uint64_t e,\n
      \                                   unsigned int type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pvh_steal_ram
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:282,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:282,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:284,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:286,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:289,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:291,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:294,1
    - Dst: pvh_steal_ram
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:297,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:297,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:299,1
    - Dst: map_domain_gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:308,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:308,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:308,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:308,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:312,1
    - Dst: write_32bit_pse_identmap
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:315,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:316,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:317,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:317,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:319,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 323
    functionName: pvh_setup_vmx_realmode_helpers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - pvh_add_mem_range
    - unmap_domain_page
    - mfn_to_page
    - pvh_steal_ram
    - map_domain_gfn
    - _gfn
    - GB
    - p2m_get_hostp2m
    - printk
    - PFN_DOWN
    - put_page
    - write_32bit_pse_identmap
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: int
    signature: int pvh_setup_vmx_realmode_helpers(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:337,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:339,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:367,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:376,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:396,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - d
    - nr_pages
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 399
    functionName: pvh_setup_e820
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - panic
    - xzalloc_array
    - ASSERT
    - PFN_DOWN
    linkageType: ''
    returnType: __init
    signature: __init pvh_setup_e820(struct domain *d, unsigned long nr_pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom0_compute_nr_pages
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:403,1
    - Dst: pvh_setup_e820
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:406,1
    - Dst: paging_set_allocation
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:409,1
    - Dst: dom0_paging_pages
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:409,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: pvh_init_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - pvh_setup_e820
    - process_pending_softirqs
    - paging_set_allocation
    - dom0_compute_nr_pages
    - dom0_paging_pages
    linkageType: ''
    returnType: void
    signature: void pvh_init_p2m(struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:430,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:431,1
    - Dst: pvh_populate_memory_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:433,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:439,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:439,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:442,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:442,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:442,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:443,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:448,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:457,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:459,1
    - Dst: set_mmio_p2m_entry
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:460,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:460,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:460,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:467,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:467,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:467,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:468,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:471,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:476,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:476,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:476,1
    - Dst: pvh_setup_vmx_realmode_helpers
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:483,1
    - Dst: print_order_stats
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:489,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 493
    functionName: pvh_populate_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    - _gfn
    - print_order_stats
    - using_vmx
    - pvh_setup_vmx_realmode_helpers
    - PFN_DOWN
    - paging_mode_hap
    - hvm_copy_to_guest_phys
    - pvh_populate_memory_range
    - MB
    - put_gfn
    - set_mmio_p2m_entry
    - printk
    - mfn_eq
    - _mfn
    - ASSERT
    - min_t
    - vmx_unrestricted_guest
    - mfn_to_virt
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int pvh_populate_p2m(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:499,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:512,1
    - Dst: MAX
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:515,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:515,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:515,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:517,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:517,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:517,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 3
    argNames:
    - d
    - elf
    - size
    argTypes:
    - struct domain*
    - struct elf_binary*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 539
    functionName: find_memory
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - MB
    - ROUNDUP
    - IS_ALIGNED
    - ASSERT
    - MAX
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t find_memory(\n    const struct domain *d, const struct elf_binary
      *elf, size_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - d
    - elf
    argTypes:
    - struct domain*
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 564
    functionName: check_load_address
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool check_load_address(\n    const struct domain *d, const struct
      elf_binary *elf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:580,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - d
    - elf
    - parms
    argTypes:
    - struct domain*
    - struct elf_binary*
    - struct elf_dom_parms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 610
    functionName: find_kernel_memory
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - MB
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t find_kernel_memory(\n    const struct domain *d, struct elf_binary
      *elf,\n    const struct elf_dom_parms *parms)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_load_address
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:618,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:623,1
    - Dst: find_kernel_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:627,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:630,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - d
    - elf
    - parms
    argTypes:
    - struct domain*
    - struct elf_binary*
    - struct elf_dom_parms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 644
    functionName: check_and_adjust_load_address
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - find_kernel_memory
    - check_load_address
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool check_and_adjust_load_address(\n    const struct domain *d, struct
      elf_binary *elf, struct elf_dom_parms *parms)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:652,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:656,1
    - Dst: bzimage_parse
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:667,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:669,1
    - Dst: elf_init
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:673,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:675,1
    - Dst: elf_set_verbose
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:679,1
    - Dst: elf_parse_binary
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:680,1
    - Dst: elf_xen_parse
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:681,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:683,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:684,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:685,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:685,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:691,1
    - Dst: check_and_adjust_load_address
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:699,1
    - Dst: elf_set_vcpu
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:702,1
    - Dst: elf_load_binary
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:703,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:706,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:707,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:708,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:708,1
    - Dst: elf_round_up
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:722,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:726,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:731,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:734,1
    - Dst: elf_round_up
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:739,1
    - Dst: find_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:741,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:744,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:750,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:750,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:754,1
    - Dst: elf_round_up
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:760,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:763,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:765,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:768,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:774,1
    - Dst: free_boot_modules
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:778,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:780,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:783,1
    - Dst: elf_round_up
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:793,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:797,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:800,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:810,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:813,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 101
    argCount: 3
    argNames:
    - bd
    - entry
    - start_info_addr
    argTypes:
    - struct boot_domain*
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 646
    functionDepth: 5
    functionLinenumber: 646
    functionLinenumberEnd: 821
    functionName: pvh_load_kernel
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - elf_xen_parse
    - elf_parse_binary
    - __va
    - ROUNDUP
    - free_boot_modules
    - elf_set_vcpu
    - elf_round_up
    - find_memory
    - bzimage_parse
    - elf_set_verbose
    - elf_check_broken
    - check_and_adjust_load_address
    - bootstrap_map_bm
    - printk
    - strlen
    - elf_load_binary
    - elf_init
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: int
    signature: "int pvh_load_kernel(\n    const struct boot_domain *bd, paddr_t *entry,
      paddr_t *start_info_addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_setup_dom0_vcpus
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:849,1
    - Dst: arch_set_info_hvm_guest
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:851,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:854,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:858,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - d
    - entry
    - start_info
    argTypes:
    - struct domain*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 864
    functionName: pvh_setup_cpus
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - arch_set_info_hvm_guest
    - update_domain_wallclock_time
    - sched_setup_dom0_vcpus
    - printk
    - clear_bit
    linkageType: ''
    returnType: int
    signature: "int pvh_setup_cpus(struct domain *d, paddr_t entry,\n                                 paddr_t
      start_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 871
    functionName: acpi_count_intr_ovr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int acpi_count_intr_ovr(\n    struct acpi_subtable_header *header,
      const unsigned long end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 883
    functionName: acpi_set_intr_ovr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_set_intr_ovr(\n    struct acpi_subtable_header *header, const
      unsigned long end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:897,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:906,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:909,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:915,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:916,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:918,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:929,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:937,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:938,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:939,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:956,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:959,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:965,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:965,1
    - Dst: pvh_steal_ram
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:968,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:968,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:970,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:976,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:977,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:979,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:982,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:989,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - d
    - addr
    argTypes:
    - struct domain*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 885
    functionDepth: 5
    functionLinenumber: 885
    functionLinenumberEnd: 992
    functionName: pvh_setup_acpi_madt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - xzalloc_bytes
    - pvh_add_mem_range
    - ACPI_SUCCESS
    - pvh_steal_ram
    - acpi_tb_checksum
    - acpi_get_table
    - GB
    - domain_vioapic
    - xfree
    - ASSERT
    - min_t
    - printk
    - ACPI_CAST_PTR
    - acpi_table_parse_madt
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: int
    signature: int pvh_setup_acpi_madt(struct domain *d, paddr_t *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:997,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:998,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1001,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1002,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - address
    - size
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1006
    functionName: acpi_memory_banned
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - page_is_ram_type
    - PFN_DOWN
    linkageType: ''
    returnType: bool
    signature: "bool acpi_memory_banned(unsigned long address,\n                                      unsigned
      long size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1020,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1022,1
    - Dst: acpi_memory_banned
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1025,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1030,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1036,1
    - Dst: acpi_memory_banned
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1038,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - sig
    - address
    - size
    argTypes:
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1044
    functionName: pvh_acpi_table_allowed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - acpi_memory_banned
    - strncmp
    - printk
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool pvh_acpi_table_allowed(const char *sig,\n                                          unsigned
      long address,\n                                          unsigned long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pvh_acpi_table_allowed
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1054,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1055,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - sig
    - address
    - size
    argTypes:
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    functionName: pvh_acpi_xsdt_table_allowed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - strncmp
    - pvh_acpi_table_allowed
    linkageType: ''
    returnType: bool
    signature: "bool pvh_acpi_xsdt_table_allowed(const char *sig,\n                                               unsigned
      long address,\n                                               unsigned long
      size)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: acpi_dmar_reinstate
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1076,1
    - Dst: pvh_acpi_xsdt_table_allowed
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1081,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1093,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1096,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1102,1
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1102,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1105,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1119,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1120,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1123,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1128,1
    - Dst: pvh_acpi_xsdt_table_allowed
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1142,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1153,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1153,1
    - Dst: pvh_steal_ram
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1156,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1156,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1158,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1164,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1165,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1167,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1170,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1177,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - d
    - madt_addr
    - addr
    argTypes:
    - struct domain*
    - paddr_t
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1059
    functionDepth: 5
    functionLinenumber: 1059
    functionLinenumberEnd: 1180
    functionName: pvh_setup_acpi_xsdt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - xzalloc_bytes
    - acpi_os_get_root_pointer
    - pvh_add_mem_range
    - pvh_steal_ram
    - pvh_acpi_xsdt_table_allowed
    - acpi_tb_checksum
    - acpi_os_unmap_memory
    - GB
    - printk
    - ACPI_CAST_PTR
    - acpi_dmar_reinstate
    - xfree
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: int
    signature: "int pvh_setup_acpi_xsdt(struct domain *d, paddr_t madt_addr,\n                                      paddr_t
      *addr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1207,1
    - Dst: pvh_acpi_table_allowed
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1208,1
    - Dst: acpi_memory_banned
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1209,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1210,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1220,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1221,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1225,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1225,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1227,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1227,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1231,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1231,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1232,1
    - Dst: MB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1232,1
    - Dst: modify_identity_mmio
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1235,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1238,1
    - Dst: pvh_setup_acpi_madt
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1244,1
    - Dst: pvh_setup_acpi_xsdt
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1248,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1253,1
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1253,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1256,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1259,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1260,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1266,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1266,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1268,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1268,1
    - Dst: pvh_steal_ram
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1279,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1279,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1281,1
    - Dst: pvh_add_mem_range
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1286,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1288,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1291,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1294,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1299,1
    - Dst: sizeof_field
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1302,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1306,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - d
    - start_info
    argTypes:
    - struct domain*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1182
    functionDepth: 6
    functionLinenumber: 1182
    functionLinenumberEnd: 1311
    functionName: pvh_setup_acpi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - pvh_setup_acpi_xsdt
    - PFN_UP
    - acpi_os_unmap_memory
    - PFN_DOWN
    - acpi_memory_banned
    - hvm_copy_to_guest_phys
    - acpi_os_map_memory
    - MB
    - pvh_steal_ram
    - modify_identity_mmio
    - GB
    - printk
    - acpi_os_get_root_pointer
    - pvh_add_mem_range
    - acpi_tb_checksum
    - pvh_acpi_table_allowed
    - pvh_setup_acpi_madt
    - sizeof_field
    - strncmp
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int pvh_setup_acpi(struct domain *d, paddr_t start_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_vpci_mmcfg_handler
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1320,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1329
    functionName: pvh_setup_mmcfg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 0
    functionsReached:
    - register_vpci_mmcfg_handler
    - printk
    linkageType: ''
    returnType: void
    signature: void pvh_setup_mmcfg(struct domain *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1337,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1340,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1342,1
    - Dst: pvh_setup_mmcfg
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1349,1
    - Dst: dom0_setup_permissions
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1355,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1358,1
    - Dst: pvh_init_p2m
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1368,1
    - Dst: iommu_hwdom_init
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1370,1
    - Dst: pvh_populate_p2m
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1372,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1375,1
    - Dst: pvh_load_kernel
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1379,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1382,1
    - Dst: pvh_setup_cpus
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1386,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1389,1
    - Dst: pvh_setup_acpi
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1393,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1396,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1402,1
    - Dst: print_e820_memory_map
      Src: /src/xen/xen/arch/x86/hvm/dom0_build.c:1403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1331
    functionDepth: 7
    functionLinenumber: 1331
    functionLinenumberEnd: 1407
    functionName: dom0_construct_pvh
    functionSourceFile: /src/xen/xen/arch/x86/hvm/dom0_build.c
    functionUses: 1
    functionsReached:
    - pvh_populate_p2m
    - panic
    - pvh_init_p2m
    - iommu_hwdom_init
    - pvh_setup_acpi
    - pvh_setup_cpus
    - pvh_setup_mmcfg
    - printk
    - print_e820_memory_map
    - pvh_load_kernel
    - is_hardware_domain
    - dom0_setup_permissions
    linkageType: ''
    returnType: int
    signature: int dom0_construct_pvh(const struct boot_domain *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: mode_is
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_is(d, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:23,1
    - Dst: get_s_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: hvm_init_guest_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 1
    functionsReached:
    - spin_lock_init
    - get_s_time
    linkageType: ''
    returnType: void
    signature: void hvm_init_guest_time(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:34,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:34,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:36,1
    - Dst: get_s_time_fixed
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:37,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - at_tsc
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: hvm_get_guest_time_fixed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 2
    functionsReached:
    - is_hvm_vcpu
    - spin_unlock
    - get_s_time_fixed
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hvm_get_guest_time_fixed(const struct vcpu *v, uint64_t at_tsc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:53,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - guest_time
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: hvm_set_guest_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - update_vcpu_system_time
    - hvm_get_guest_time
    linkageType: ''
    returnType: void
    signature: void hvm_set_guest_time(struct vcpu *v, u64 guest_time)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:83,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:84,1
    - Dst: vioapic_get_vector
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:85,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:88,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pt
    - src
    argTypes:
    - struct periodic_time*
    - enum hvm_intsrc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: pt_irq_vector
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - vioapic_get_vector
    - ASSERT
    - hvm_isa_irq_to_gsi
    - domain_crash
    - dprintk
    linkageType: ''
    returnType: int
    signature: int pt_irq_vector(struct periodic_time *pt, enum hvm_intsrc src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:106,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:108,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:109,1
    - Dst: vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:117,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:120,1
    - Dst: vioapic_get_mask
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:125,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:129,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:132,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: pt_irq_masked
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - vlapic_get_reg
    - hvm_isa_irq_to_gsi
    - ASSERT_UNREACHABLE
    - vlapic_enabled
    - vcpu_vlapic
    - vioapic_get_mask
    - domain_crash
    - vlapic_accept_pic_intr
    - dprintk
    linkageType: ''
    returnType: int
    signature: int pt_irq_masked(struct periodic_time *pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: pt_vcpu_lock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - spin_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline pt_vcpu_lock(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: pt_vcpu_unlock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void pt_vcpu_unlock(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _read_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:177,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: pt_lock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - _read_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline pt_lock(struct periodic_time *pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:183,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: pt_unlock
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void pt_unlock(struct periodic_time *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:189,1
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: pt_process_missed_ticks
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - mode_is
    - NOW
    linkageType: ''
    returnType: void
    signature: void pt_process_missed_ticks(struct periodic_time *pt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:208,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: pt_freeze_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - mode_is
    - hvm_get_guest_time
    linkageType: ''
    returnType: void
    signature: void pt_freeze_time(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:216,1
    - Dst: hvm_set_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: pt_thaw_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - hvm_set_guest_time
    - mode_is
    linkageType: ''
    returnType: void
    signature: void pt_thaw_time(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:234,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:236,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:238,1
    - Dst: pt_freeze_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:240,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: pt_save_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 1
    functionsReached:
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - pt_freeze_time
    - stop_timer
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void pt_save_timer(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:250,1
    - Dst: pt_process_missed_ticks
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:256,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:257,1
    - Dst: pt_thaw_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:261,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: pt_restore_timer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 1
    functionsReached:
    - pt_thaw_time
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - pt_process_missed_ticks
    - set_timer
    linkageType: ''
    returnType: void
    signature: void pt_restore_timer(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_process_missed_ticks
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:256,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 33
    functionsReached:
    - pt_process_missed_ticks
    - set_timer
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry ( pt, head, list )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pt_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:270,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:276,1
    - Dst: pt_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: pt_timer_fn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - pt_lock
    - vcpu_kick
    - pt_unlock
    linkageType: ''
    returnType: void
    signature: void pt_timer_fn(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:288,1
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:292,1
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:293,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:295,1
    - Dst: pt_process_missed_ticks
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:296,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:298,1
    - Dst: pt_process_missed_ticks
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:305,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:307,1
    - Dst: mode_is
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:311,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:312,1
    - Dst: hvm_set_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - v
    - pt
    argTypes:
    - struct vcpu*
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 314
    functionName: pt_irq_fired
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - mode_is
    - hvm_set_guest_time
    - hvm_get_guest_time
    - set_timer
    - pt_process_missed_ticks
    - list_del
    linkageType: ''
    returnType: void
    signature: void pt_irq_fired(struct vcpu *v, struct periodic_time *pt)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:324,1
    - Dst: pt_irq_masked
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:333,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:338,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:354,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:362,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:372,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:372,1
    - Dst: hvm_isa_irq_deassert
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:377,1
    - Dst: platform_legacy_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:378,1
    - Dst: vlapic_accept_pic_intr
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:378,1
    - Dst: hvm_isa_irq_assert
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:380,1
    - Dst: hvm_isa_irq_assert
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:383,1
    - Dst: vlapic_test_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:388,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:388,1
    - Dst: hvm_ioapic_assert
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:394,1
    - Dst: vlapic_test_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:395,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:395,1
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:409,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:411,1
    - Dst: pt_irq_fired
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:414,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:419,1
    - Dst: cb
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:422,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 429
    functionName: pt_update_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - pt_irq_masked
    - cb
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - hvm_isa_irq_assert
    - hvm_ioapic_assert
    - platform_legacy_irq
    - pt_irq_fired
    - hvm_isa_irq_deassert
    - list_del
    - vcpu_vlapic
    - vlapic_test_irq
    - vlapic_set_irq
    - vlapic_accept_pic_intr
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pt_update_irq(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pt_irq_masked
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:333,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 7
    functionsReached:
    - pt_irq_masked
    - list_del
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe ( pt, temp, head, list )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_irq_vector
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 445
    functionName: is_pt_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - pt_irq_vector
    linkageType: ''
    returnType: struct periodic_time
    signature: "struct periodic_time *is_pt_irq(\n    struct vcpu *v, struct hvm_intack
      intack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_irq_vector
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 442
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 34
    functionsReached:
    - pt_irq_vector
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry ( pt, head, list )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:456,1
    - Dst: is_pt_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:458,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:461,1
    - Dst: pt_irq_fired
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:465,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:470,1
    - Dst: cb
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 474
    functionName: pt_intr_post
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - cb
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - pt_irq_fired
    - is_pt_irq
    linkageType: ''
    returnType: void
    signature: void pt_intr_post(struct vcpu *v, struct hvm_intack intack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:481,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:483,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:484,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 487
    functionName: pt_migrate
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 1
    functionsReached:
    - migrate_timer
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void pt_migrate(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:496,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:499,1
    - Dst: destroy_periodic_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:503,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:505,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:514,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:515,1
    - Dst: hvm_get_guest_time
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:522,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:526,1
    - Dst: align_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:532,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:549,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:550,1
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:552,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:554,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:555,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:557,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 8
    argNames:
    - v
    - pt
    - delta
    - period
    - irq
    - cb
    - data
    - level
    argTypes:
    - struct vcpu*
    - struct periodic_time*
    - uint64_t
    - uint64_t
    - uint8_t
    - time_cb*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 558
    functionName: create_periodic_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 6
    functionsReached:
    - gdprintk
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - test_and_set_bool
    - hvm_get_guest_time
    - write_unlock
    - align_timer
    - set_timer
    - hvm_domain_irq
    - destroy_periodic_time
    - list_add
    - write_lock
    - ASSERT_UNREACHABLE
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: "void create_periodic_time(\n    struct vcpu *v, struct periodic_time
      *pt, uint64_t delta,\n    uint64_t period, uint8_t irq, time_cb *cb, void *data,
      bool level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pt_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:566,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:568,1
    - Dst: pt_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:571,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: destroy_periodic_time
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 17
    functionsReached:
    - kill_timer
    - list_del
    - pt_lock
    - pt_unlock
    linkageType: ''
    returnType: void
    signature: void destroy_periodic_time(struct periodic_time *pt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:582,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:587,1
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:592,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:594,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:595,1
    - Dst: pt_vcpu_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:599,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:602,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:603,1
    - Dst: pt_vcpu_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:605,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:608,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pt
    - v
    argTypes:
    - struct periodic_time*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 609
    functionName: pt_adjust_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - pt_vcpu_lock
    - pt_vcpu_unlock
    - write_unlock
    - ASSERT
    - migrate_timer
    - list_del
    - write_lock
    - list_add
    linkageType: ''
    returnType: void
    signature: void pt_adjust_vcpu(struct periodic_time *pt, struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:617,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:622,1
    - Dst: pt_adjust_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:623,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:624,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:628,1
    - Dst: pt_adjust_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:629,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:630,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:632,1
    - Dst: pt_adjust_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:634,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 636
    functionName: pt_adjust_global_vcpu_target
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 1
    functionsReached:
    - has_vpit
    - spin_unlock
    - write_unlock
    - pt_adjust_vcpu
    - spin_lock
    - write_lock
    linkageType: ''
    returnType: void
    signature: void pt_adjust_global_vcpu_target(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pt_lock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:644,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:648,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:649,1
    - Dst: pt_unlock
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pt
    argTypes:
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 652
    functionName: pt_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 0
    functionsReached:
    - pt_lock
    - list_add
    - vcpu_kick
    - pt_unlock
    linkageType: ''
    returnType: void
    signature: void pt_resume(struct periodic_time *pt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: has_vpit
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:658,1
    - Dst: pt_resume
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:659,1
    - Dst: has_vrtc
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:660,1
    - Dst: pt_resume
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:661,1
    - Dst: has_vhpet
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:662,1
    - Dst: pt_resume
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:667,1
    - Dst: pt_resume
      Src: /src/xen/xen/arch/x86/hvm/vpt.c:672,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - d
    - vlapic_pt
    argTypes:
    - struct domain*
    - struct periodic_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 673
    functionName: pt_may_unmask_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vpt.c
    functionUses: 3
    functionsReached:
    - has_vpit
    - has_vhpet
    - has_vrtc
    - pt_resume
    linkageType: ''
    returnType: void
    signature: void pt_may_unmask_irq(struct domain *d, struct periodic_time *vlapic_pt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/asid.c:54,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/asid.c:62,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/asid.c:65,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/asid.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - nasids
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: hvm_asid_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/asid.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hvm_asid_init(unsigned int nasids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/asid.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - asid
    argTypes:
    - struct hvm_vcpu_asid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: hvm_asid_flush_vcpu_asid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/asid.c
    functionUses: 1
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void hvm_asid_flush_vcpu_asid(struct hvm_vcpu_asid *asid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/asid.c:82,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/asid.c:83,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/asid.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: hvm_asid_flush_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/asid.c
    functionUses: 2
    functionsReached:
    - hvm_asid_flush_vcpu_asid
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void hvm_asid_flush_vcpu(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/asid.c:88,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/asid.c:93,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/asid.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: hvm_asid_flush_core
    functionSourceFile: /src/xen/xen/arch/x86/hvm/asid.c
    functionUses: 1
    functionsReached:
    - likely
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hvm_asid_flush_core(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/asid.c:107,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/hvm/asid.c:115,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/asid.c:119,1
    - Dst: hvm_asid_flush_core
      Src: /src/xen/xen/arch/x86/hvm/asid.c:121,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/asid.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - asid
    argTypes:
    - struct hvm_vcpu_asid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: hvm_asid_handle_vmenter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/asid.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - this_cpu
    - read_atomic
    - unlikely
    - hvm_asid_flush_core
    linkageType: ''
    returnType: bool
    signature: bool hvm_asid_handle_vmenter(struct hvm_vcpu_asid *asid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - d
    - addr
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: addr_vioapic
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - domain_vioapic
    linkageType: ''
    returnType: struct hvm_vioapic
    signature: "struct hvm_vioapic *addr_vioapic(const struct domain *d,\n                                        unsigned
      long addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OPTIMIZER_HIDE_VAR
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:73,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - d
    - gsi
    - pin
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: gsi_vioapic
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - OPTIMIZER_HIDE_VAR
    - domain_vioapic
    linkageType: ''
    returnType: struct hvm_vioapic
    signature: "struct hvm_vioapic *gsi_vioapic(const struct domain *d,\n                                       unsigned
      int gsi, unsigned int *pin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:121,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - vioapic
    argTypes:
    - struct hvm_vioapic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 135
    functionName: vioapic_read_indirect
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - array_index_nospec
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vioapic_read_indirect(const struct hvm_vioapic *vioapic)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:144,1
    - Dst: addr_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:146,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:147,1
    - Dst: vioapic_read_indirect
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - v
    - addr
    - length
    - pval
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 166
    functionName: vioapic_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - HVM_DBG_LOG
    - addr_vioapic
    - vioapic_read_indirect
    linkageType: ''
    returnType: int
    signature: "int vioapic_read(\n    struct vcpu *v, unsigned long addr,\n    unsigned
      int length, unsigned long *pval)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:178,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:178,1
    - Dst: mp_register_gsi
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:181,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:186,1
    - Dst: allocate_and_map_gsi_pirq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:191,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:194,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:199,1
    - Dst: pt_irq_create_bind
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:200,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:203,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:205,1
    - Dst: unmap_domain_pirq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:206,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:207,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - gsi
    - trig
    - pol
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 212
    functionName: vioapic_hwdom_map_gsi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - allocate_and_map_gsi_pirq
    - write_unlock
    - unmap_domain_pirq
    - pcidevs_unlock
    - ASSERT
    - gprintk
    - write_lock
    - mp_register_gsi
    - pt_irq_create_bind
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: "int vioapic_hwdom_map_gsi(unsigned int gsi, unsigned int trig,\n                                 unsigned
      int pol)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vioapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:218,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:219,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:226,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:229,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:233,1
    - Dst: vlapic_adjust_i8259_target
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:258,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:267,1
    - Dst: vioapic_deliver
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:269,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:272,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:275,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:284,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:285,1
    - Dst: hvm_dpci_eoi
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:286,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:289,1
    - Dst: vioapic_hwdom_map_gsi
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:297,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:301,1
    - Dst: pt_may_unmask_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:308,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - vioapic
    - idx
    - top_word
    - val
    argTypes:
    - struct hvm_vioapic*
    - unsigned int
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 309
    functionName: vioapic_write_redirent
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - vioapic_deliver
    - array_index_nospec
    - spin_unlock
    - vioapic_domain
    - pt_may_unmask_irq
    - vioapic_hwdom_map_gsi
    - vlapic_adjust_i8259_target
    - ASSERT
    - spin_lock
    - gprintk
    - hvm_domain_irq
    - hvm_dpci_eoi
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: "void vioapic_write_redirent(\n    struct hvm_vioapic *vioapic, unsigned
      int idx,\n    int top_word, uint32_t val)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:336,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:341,1
    - Dst: vioapic_write_redirent
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - vioapic
    - val
    argTypes:
    - struct hvm_vioapic*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 351
    functionName: vioapic_write_indirect
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - vioapic_write_redirent
    - gdprintk
    - HVM_DBG_LOG
    linkageType: ''
    returnType: void
    signature: "void vioapic_write_indirect(\n    struct hvm_vioapic *vioapic, uint32_t
      val)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: addr_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:359,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:360,1
    - Dst: vioapic_write_indirect
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:369,1
    - Dst: vioapic_update_EOI
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - v
    - addr
    - length
    - val
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 383
    functionName: vioapic_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - vioapic_write_indirect
    - ASSERT
    - addr_vioapic
    - vioapic_update_EOI
    linkageType: ''
    returnType: int
    signature: "int vioapic_write(\n    struct vcpu *v, unsigned long addr,\n    unsigned
      int length, unsigned long val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addr_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: vioapic_range
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - addr_vioapic
    linkageType: ''
    returnType: int
    signature: int vioapic_range(struct vcpu *v, unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:403,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:406,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - vioapic
    - target
    - vector
    - trig_mode
    - delivery_mode
    argTypes:
    - struct hvm_vioapic*
    - struct vlapic*
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: ioapic_inj_irq
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - vlapic_set_irq
    - ASSERT
    - HVM_DBG_LOG
    linkageType: ''
    returnType: void
    signature: "void ioapic_inj_irq(\n    struct hvm_vioapic *vioapic,\n    struct
      vlapic *target,\n    uint8_t vector,\n    uint8_t trig_mode,\n    uint8_t delivery_mode)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vioapic_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:419,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:424,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:424,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:426,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:436,1
    - Dst: hvm_isa_irq_to_gsi
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:439,1
    - Dst: pt_active
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:439,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:440,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:442,1
    - Dst: vlapic_lowest_prio
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:446,1
    - Dst: ioapic_inj_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:449,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:453,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:461,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:463,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:465,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:466,1
    - Dst: ioapic_inj_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:467,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:474,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:475,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:475,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:477,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:478,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:483,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - vioapic
    - pin
    argTypes:
    - struct hvm_vioapic*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 412
    functionDepth: 5
    functionLinenumber: 412
    functionLinenumberEnd: 487
    functionName: vioapic_deliver
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - gdprintk
    - test_and_set_bool
    - vcpu_kick
    - vlapic_match_dest
    - vioapic_domain
    - vlapic_lowest_prio
    - spin_is_locked
    - ASSERT
    - hvm_isa_irq_to_gsi
    - vlapic_enabled
    - ioapic_inj_irq
    - vcpu_vlapic
    - HVM_DBG_LOG
    - pt_active
    linkageType: ''
    returnType: void
    signature: void vioapic_deliver(struct hvm_vioapic *vioapic, unsigned int pin)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gsi_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:492,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:497,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:501,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:503,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:504,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:504,1
    - Dst: vioapic_deliver
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:512,1
    - Dst: vioapic_deliver
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 489
    functionDepth: 6
    functionLinenumber: 489
    functionLinenumberEnd: 519
    functionName: vioapic_irq_positive_edge
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 4
    functionsReached:
    - vioapic_deliver
    - spin_is_locked
    - ASSERT
    - gsi_vioapic
    - HVM_DBG_LOG
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void vioapic_irq_positive_edge(struct domain *d, unsigned int irq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:523,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:527,1
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:527,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:529,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:533,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:544,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:546,1
    - Dst: hvm_dpci_eoi
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:547,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:548,1
    - Dst: vioapic_deliver
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:556,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - d
    - vector
    argTypes:
    - struct domain*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 521
    functionDepth: 6
    functionLinenumber: 521
    functionLinenumberEnd: 562
    functionName: vioapic_update_EOI
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 2
    functionsReached:
    - vioapic_deliver
    - spin_unlock
    - domain_vioapic
    - has_vioapic
    - ASSERT
    - spin_lock
    - hvm_domain_irq
    - hvm_dpci_eoi
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void vioapic_update_EOI(struct domain *d, u8 vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gsi_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: vioapic_get_mask
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 1
    functionsReached:
    - gsi_vioapic
    linkageType: ''
    returnType: int
    signature: int vioapic_get_mask(const struct domain *d, unsigned int gsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gsi_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 584
    functionName: vioapic_get_vector
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 2
    functionsReached:
    - gsi_vioapic
    linkageType: ''
    returnType: int
    signature: int vioapic_get_vector(const struct domain *d, unsigned int gsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gsi_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: vioapic_get_trigger_mode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 2
    functionsReached:
    - gsi_vioapic
    linkageType: ''
    returnType: int
    signature: int vioapic_get_trigger_mode(const struct domain *d, unsigned int gsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:602,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:605,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:607,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 612
    functionName: ioapic_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - has_vioapic
    - hvm_save_entry
    - ARRAY_SIZE
    - domain_vioapic
    linkageType: ''
    returnType: int
    signature: int ioapic_save(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:618,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:621,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:623,1
    - Dst: hvm_load_entry
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 631
    functionName: ioapic_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - has_vioapic
    - hvm_load_entry
    - ARRAY_SIZE
    - domain_vioapic
    linkageType: ''
    returnType: int
    signature: int ioapic_load(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:640,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:642,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:648,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:652,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:656,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 671
    functionName: vioapic_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 1
    functionsReached:
    - domain_vioapic
    - has_vioapic
    - ASSERT
    - memset
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void vioapic_reset(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:678,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:678,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - nr_vioapics
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: vioapic_free
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 0
    functionsReached:
    - xfree
    - domain_vioapic
    linkageType: ''
    returnType: void
    signature: void vioapic_free(const struct domain *d, unsigned int nr_vioapics)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:686,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:688,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:692,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:696,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:703,1
    - Dst: io_apic_gsi_base
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:706,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:710,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:710,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:714,1
    - Dst: xmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:715,1
    - Dst: vioapic_free
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:718,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:721,1
    - Dst: domain_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:722,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:723,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:731,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:731,1
    - Dst: vioapic_reset
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:734,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 739
    functionName: vioapic_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 1
    functionsReached:
    - vioapic_free
    - max
    - ARRAY_SIZE
    - domain_vioapic
    - xzalloc_array
    - register_mmio_handler
    - has_vioapic
    - ASSERT
    - xmalloc_flex_struct
    - hvm_domain_irq
    - io_apic_gsi_base
    - vioapic_reset
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vioapic_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_vioapic
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:743,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:745,1
    - Dst: vioapic_free
      Src: /src/xen/xen/arch/x86/hvm/vioapic.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 750
    functionName: vioapic_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vioapic.c
    functionUses: 2
    functionsReached:
    - has_vioapic
    - ASSERT
    - vioapic_free
    linkageType: ''
    returnType: void
    signature: void vioapic_deinit(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: viridian_apic_assist_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 1
    functionsReached:
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void viridian_apic_assist_set(const struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: viridian_apic_assist_completed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool viridian_apic_assist_completed(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: viridian_apic_assist_clear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void viridian_apic_assist_clear(const struct vcpu *v)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:83,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:92,1
    - Dst: vlapic_EOI_set
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:95,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:95,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:99,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:100,1
    - Dst: vlapic_reg_write
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:104,1
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:109,1
    - Dst: viridian_dump_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:111,1
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:113,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:117,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:127,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:134,1
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:137,1
    - Dst: viridian_dump_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:139,1
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:141,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:145,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:154,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:157,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:170,1
    - Dst: vector::vector
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:172,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:175,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:183,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 189
    functionName: viridian_synic_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - vector::vector
    - viridian_dump_guest_page
    - ARRAY_SIZE
    - array_access_nospec
    - viridian_unmap_guest_page
    - vlapic_EOI_set
    - vlapic_reg_write
    - printk
    - vcpu_vlapic
    - viridian_feature_mask
    - ASSERT_UNREACHABLE
    - viridian_map_guest_page
    linkageType: ''
    returnType: int
    signature: int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:203,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:203,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:204,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:204,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:211,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:211,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:219,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:226,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:240,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:247,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:254,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:264,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:266,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:274,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 279
    functionName: viridian_synic_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - array_access_nospec
    - vlapic_get_reg
    - vcpu_vlapic
    - viridian_feature_mask
    linkageType: ''
    returnType: int
    signature: int viridian_synic_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t
      *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:290,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:294,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 298
    functionName: viridian_synic_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int viridian_synic_vcpu_init(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: viridian_synic_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int viridian_synic_domain_init(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:309,1
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: viridian_synic_vcpu_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - viridian_unmap_guest_page
    linkageType: ''
    returnType: void
    signature: void viridian_synic_vcpu_deinit(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: viridian_synic_domain_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void viridian_synic_domain_deinit(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: viridian_time_poll_timers
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: viridian_synic_poll
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 1
    functionsReached:
    - viridian_time_poll_timers
    linkageType: ''
    returnType: void
    signature: void viridian_synic_poll(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:350,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:362,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:363,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:365,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:365,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:366,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - v
    - sintx
    - index
    - expiration
    - delivery
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 369
    functionName: viridian_synic_deliver_timer_msg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    - ASSERT
    - vlapic_enabled
    - vcpu_vlapic
    - vlapic_set_irq
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool viridian_synic_deliver_timer_msg(struct vcpu *v, unsigned int
      sintx,\n                                      unsigned int index,\n                                      uint64_t
      expiration,\n                                      uint64_t delivery)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:377,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: viridian_synic_is_auto_eoi_sint
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 1
    functionsReached:
    - array_access_nospec
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool viridian_synic_is_auto_eoi_sint(const struct vcpu *v,\n                                     unsigned
      int vector)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:391,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:391,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:391,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_viridian_vcpu_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    functionName: viridian_synic_save_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void viridian_synic_save_vcpu_ctxt(const struct vcpu *v,\n                                   struct
      hvm_viridian_vcpu_context *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:411,1
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:417,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/synic.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_viridian_vcpu_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 431
    functionName: viridian_synic_load_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached:
    - viridian_map_guest_page
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void viridian_synic_load_vcpu_ctxt(\n    struct vcpu *v, const struct
      hvm_viridian_vcpu_context *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - ctxt
    argTypes:
    - struct domain*
    - struct hvm_viridian_domain_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: viridian_synic_save_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void viridian_synic_save_domain_ctxt(\n    const struct domain *d,
      struct hvm_viridian_domain_context *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - ctxt
    argTypes:
    - struct domain*
    - struct hvm_viridian_domain_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: viridian_synic_load_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void viridian_synic_load_domain_ctxt(\n    struct domain *d, const
      struct hvm_viridian_domain_context *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:34,1
    - Dst: host_tsc_is_safe
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:48,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:57,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - d
    - initialize
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 79
    functionName: update_reference_tsc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - clear_page
    - printk
    - host_tsc_is_safe
    linkageType: ''
    returnType: void
    signature: void update_reference_tsc(const struct domain *d, bool initialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:85,1
    - Dst: pt_global_vcpu_target
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:85,1
    - Dst: hv_scale_tsc
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - offset
    argTypes:
    - struct domain*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: trc_val
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - hv_scale_tsc
    - pt_global_vcpu_target
    - hvm_get_guest_tsc
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t trc_val(const struct domain *d, int64_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:96,1
    - Dst: trc_val
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: time_ref_count_freeze
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - trc_val
    linkageType: ''
    returnType: void
    signature: void time_ref_count_freeze(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:106,1
    - Dst: trc_val
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:109,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:111,1
    - Dst: update_reference_tsc
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:113,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: time_ref_count_thaw
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - trc_val
    - test_and_set_bit
    - spin_lock
    - update_reference_tsc
    linkageType: ''
    returnType: void
    signature: void time_ref_count_thaw(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trc_val
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: time_ref_count
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - trc_val
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t time_ref_count(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vs
    argTypes:
    - struct viridian_stimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: stop_stimer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - stop_timer
    linkageType: ''
    returnType: void
    signature: void stop_stimer(struct viridian_stimer *vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:141,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: stimer_expire
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - vcpu_kick
    - set_bit
    linkageType: ''
    returnType: void
    signature: void stimer_expire(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: time_ref_count
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:150,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:154,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:155,1
    - Dst: stimer_expire
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:203,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:207,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:213,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:214,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:215,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - vs
    argTypes:
    - struct viridian_stimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 216
    functionName: start_stimer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - set_timer
    - ASSERT
    - migrate_timer
    - time_ref_count
    - printk
    - stimer_expire
    - clear_bit
    - NOW
    linkageType: ''
    returnType: void
    signature: void start_stimer(struct viridian_stimer *vs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:230,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:234,1
    - Dst: viridian_synic_deliver_timer_msg
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:237,1
    - Dst: time_ref_count
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:239,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:242,1
    - Dst: start_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - stimerx
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 248
    functionName: poll_stimer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - time_ref_count
    - clear_bit
    - viridian_synic_deliver_timer_msg
    - test_bit
    - start_stimer
    linkageType: ''
    returnType: void
    signature: void poll_stimer(struct vcpu *v, unsigned int stimerx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:258,1
    - Dst: poll_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: viridian_time_poll_timers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 1
    functionsReached:
    - poll_stimer
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void viridian_time_poll_timers(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:267,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:268,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:271,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: time_vcpu_freeze
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - viridian_feature_mask
    - stop_timer
    - ARRAY_SIZE
    - is_viridian_vcpu
    linkageType: ''
    returnType: void
    signature: void time_vcpu_freeze(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:285,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:286,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:289,1
    - Dst: start_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: time_vcpu_thaw
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - start_stimer
    - viridian_feature_mask
    - ARRAY_SIZE
    - is_viridian_vcpu
    linkageType: ''
    returnType: void
    signature: void time_vcpu_thaw(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:302,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:305,1
    - Dst: time_vcpu_freeze
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:306,1
    - Dst: time_ref_count_freeze
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: viridian_time_domain_freeze
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - time_ref_count_freeze
    - is_viridian_domain
    - time_vcpu_freeze
    linkageType: ''
    returnType: void
    signature: void viridian_time_domain_freeze(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:315,1
    - Dst: time_ref_count_thaw
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:318,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:320,1
    - Dst: time_vcpu_thaw
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 311
    functionDepth: 5
    functionLinenumber: 311
    functionLinenumberEnd: 322
    functionName: viridian_time_domain_thaw
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - is_viridian_domain
    - time_ref_count_thaw
    - time_vcpu_thaw
    linkageType: ''
    returnType: void
    signature: void viridian_time_domain_thaw(const struct domain *d)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:333,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:336,1
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:337,1
    - Dst: viridian_dump_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:339,1
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:342,1
    - Dst: update_reference_tsc
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:343,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:345,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:358,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:360,1
    - Dst: stop_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:363,1
    - Dst: start_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:371,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:383,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:385,1
    - Dst: stop_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:388,1
    - Dst: start_stimer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:398,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:404,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 410
    functionName: viridian_time_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - stop_stimer
    - viridian_dump_guest_page
    - gdprintk
    - array_access_nospec
    - viridian_unmap_guest_page
    - spin_lock
    - update_reference_tsc
    - viridian_feature_mask
    - viridian_map_guest_page
    - start_stimer
    linkageType: ''
    returnType: int
    signature: int viridian_time_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:421,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:428,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:435,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:445,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:448,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:449,1
    - Dst: time_ref_count
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:452,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:463,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:466,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:473,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:487,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:489,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:497,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 502
    functionName: viridian_time_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - array_access_nospec
    - test_and_set_bit
    - time_ref_count
    - printk
    - test_bit
    - viridian_feature_mask
    linkageType: ''
    returnType: int
    signature: int viridian_time_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t
      *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:509,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 518
    functionName: viridian_time_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - init_timer
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int viridian_time_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 523
    functionName: viridian_time_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int viridian_time_domain_init(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:530,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 539
    functionName: viridian_time_vcpu_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - kill_timer
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void viridian_time_vcpu_deinit(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: viridian_unmap_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 544
    functionName: viridian_time_domain_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - viridian_unmap_guest_page
    linkageType: ''
    returnType: void
    signature: void viridian_time_domain_deinit(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:552,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:552,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:553,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:554,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:554,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:555,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_viridian_vcpu_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 564
    functionName: viridian_time_save_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void viridian_time_save_vcpu_ctxt(\n    const struct vcpu *v, struct
      hvm_viridian_vcpu_context *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_viridian_vcpu_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 579
    functionName: viridian_time_load_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void viridian_time_load_vcpu_ctxt(\n    struct vcpu *v, const struct
      hvm_viridian_vcpu_context *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - ctxt
    argTypes:
    - struct domain*
    - struct hvm_viridian_domain_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 588
    functionName: viridian_time_save_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void viridian_time_save_domain_ctxt(\n    const struct domain *d,
      struct hvm_viridian_domain_context *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: viridian_map_guest_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/time.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - ctxt
    argTypes:
    - struct domain*
    - struct hvm_viridian_domain_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 600
    functionName: viridian_time_load_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/time.c
    functionUses: 0
    functionsReached:
    - viridian_map_guest_page
    linkageType: ''
    returnType: void
    signature: "void viridian_time_load_domain_ctxt(\n    struct domain *d, const
      struct hvm_viridian_domain_context *ctxt)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:118,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:118,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:119,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:127,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:128,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:129,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:133,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:166,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:168,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:170,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:172,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:174,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:182,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:184,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:186,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:197,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:201,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:203,1
    - Dst: viridian_feature_mask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:233,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:241,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:243,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 4
    argNames:
    - v
    - leaf
    - subleaf
    - res
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 247
    functionName: cpuid_viridian_leaves
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - is_viridian_domain
    - ASSERT
    - hap_enabled
    - read_efer
    - viridian_feature_mask
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void cpuid_viridian_leaves(const struct vcpu *v, uint32_t leaf,\n
      \                          uint32_t subleaf, struct cpuid_leaf *res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: dump_guest_os_id
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_guest_os_id(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: dump_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_hypercall(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:275,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:278,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:281,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:282,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:283,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:283,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:287,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:299,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:301,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: enable_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - page_to_mfn
    - unmap_domain_page
    - get_page_type
    - put_page_and_type
    - mfn_x
    - memset
    - __map_domain_page
    - put_page
    - get_page_from_gfn
    linkageType: ''
    returnType: void
    signature: void enable_hypercall_page(struct domain *d)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:312,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:312,1
    - Dst: dump_guest_os_id
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:318,1
    - Dst: dump_hypercall
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:323,1
    - Dst: enable_hypercall_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:325,1
    - Dst: viridian_synic_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:341,1
    - Dst: viridian_time_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:348,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:355,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:356,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:371,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:373,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:375,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 306
    functionDepth: 8
    functionLinenumber: 306
    functionLinenumberEnd: 390
    functionName: guest_wrmsr_viridian
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - viridian_time_wrmsr
    - gdprintk
    - ARRAY_SIZE
    - dump_hypercall
    - viridian_synic_wrmsr
    - dump_guest_os_id
    - BUILD_BUG_ON
    - ASSERT
    - spin_lock
    - enable_hypercall_page
    - gprintk
    - is_viridian_domain
    linkageType: ''
    returnType: int
    signature: int guest_wrmsr_viridian(struct vcpu *v, uint32_t idx, uint64_t val)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:398,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:398,1
    - Dst: viridian_synic_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:424,1
    - Dst: viridian_time_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:431,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:438,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:439,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 3
    argNames:
    - v
    - idx
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 461
    functionName: guest_rdmsr_viridian
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - ARRAY_SIZE
    - BUILD_BUG_ON
    - viridian_time_rdmsr
    - ASSERT
    - viridian_synic_rdmsr
    - is_viridian_domain
    linkageType: ''
    returnType: int
    signature: int guest_rdmsr_viridian(const struct vcpu *v, uint32_t idx, uint64_t
      *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:467,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:468,1
    - Dst: viridian_synic_vcpu_init
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:472,1
    - Dst: viridian_time_vcpu_init
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:476,1
    - Dst: viridian_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:483,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 486
    functionName: viridian_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - viridian_vcpu_deinit
    - viridian_time_vcpu_init
    - viridian_synic_vcpu_init
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int viridian_vcpu_init(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:492,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:493,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:497,1
    - Dst: viridian_synic_domain_init
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:499,1
    - Dst: viridian_time_domain_init
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:503,1
    - Dst: viridian_domain_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 513
    functionName: viridian_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - ASSERT
    - viridian_synic_domain_init
    - spin_lock_init
    - viridian_domain_deinit
    - viridian_time_domain_init
    linkageType: ''
    returnType: int
    signature: int viridian_domain_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: viridian_time_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:520,1
    - Dst: viridian_synic_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:521,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 524
    functionName: viridian_vcpu_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 3
    functionsReached:
    - XFREE
    - viridian_synic_vcpu_deinit
    - viridian_time_vcpu_deinit
    linkageType: ''
    returnType: void
    signature: void viridian_vcpu_deinit(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:530,1
    - Dst: viridian_vcpu_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:531,1
    - Dst: viridian_time_domain_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:536,1
    - Dst: viridian_synic_domain_deinit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:537,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: viridian_domain_deinit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - viridian_vcpu_deinit
    - viridian_synic_domain_deinit
    - XFREE
    - viridian_time_domain_deinit
    linkageType: ''
    returnType: void
    signature: void viridian_domain_deinit(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpmask
    argTypes:
    - struct hypercall_vpmask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: vpmask_empty
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - bitmap_zero
    linkageType: ''
    returnType: void
    signature: void vpmask_empty(struct hypercall_vpmask *vpmask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - vpmask
    - vp
    - mask
    argTypes:
    - struct hypercall_vpmask*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 573
    functionName: vpmask_set
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - __set_bit
    linkageType: ''
    returnType: void
    signature: "void vpmask_set(struct hypercall_vpmask *vpmask, unsigned int vp,\n
      \                      uint64_t mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_fill
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpmask
    argTypes:
    - struct hypercall_vpmask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: vpmask_fill
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - bitmap_fill
    linkageType: ''
    returnType: void
    signature: void vpmask_fill(struct hypercall_vpmask *vpmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_weight
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpmask
    argTypes:
    - struct hypercall_vpmask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: vpmask_nr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - bitmap_weight
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vpmask_nr(const struct hypercall_vpmask *vpmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - banks
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: HV_VPSET_SIZE
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HV_VPSET_SIZE(banks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hweight64
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpset
    argTypes:
    - struct hv_vpset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: hv_vpset_nr_banks
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - hweight64
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hv_vpset_nr_banks(struct hv_vpset *vpset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:611,1
    - Dst: vpmask_fill
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:619,1
    - Dst: hv_vpset_nr_banks
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:626,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:631,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:635,1
    - Dst: vpmask_empty
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:639,1
    - Dst: vpmask_set
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:648,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - in
    - bank_gpa
    - vpmask
    argTypes:
    - struct hv_vpset*
    - paddr_t
    - struct hypercall_vpmask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 662
    functionName: hv_vpset_to_vpmask
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - vpmask_set
    - vpmask_empty
    - hv_vpset_nr_banks
    - vpmask_fill
    - this_cpu
    - hvm_copy_from_guest_phys
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int hv_vpset_to_vpmask(const struct hv_vpset *in, paddr_t bank_gpa,\n
      \                             struct hypercall_vpmask *vpmask)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:692,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:705,1
    - Dst: vpmask_empty
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:718,1
    - Dst: vpmask_set
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:719,1
    - Dst: paging_flush_tlb
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - input
    - output
    - input_params_gpa
    - output_params_gpa
    argTypes:
    - union hypercall_input*
    - union hypercall_output*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 733
    functionName: hvcall_flush
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - vpmask_set
    - vpmask_empty
    - paging_flush_tlb
    - this_cpu
    - hvm_copy_from_guest_phys
    linkageType: ''
    returnType: int
    signature: "int hvcall_flush(const union hypercall_input *input,\n                        union
      hypercall_output *output,\n                        paddr_t input_params_gpa,\n
      \                       paddr_t output_params_gpa)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:740,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:753,1
    - Dst: hv_vpset_to_vpmask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:766,1
    - Dst: paging_flush_tlb
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - input
    - output
    - input_params_gpa
    - output_params_gpa
    argTypes:
    - union hypercall_input*
    - union hypercall_output*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 735
    functionDepth: 6
    functionLinenumber: 735
    functionLinenumberEnd: 785
    functionName: hvcall_flush_ex
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - paging_flush_tlb
    - hvm_copy_from_guest_phys
    - hv_vpset_to_vpmask
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int hvcall_flush_ex(const union hypercall_input *input,\n                           union
      hypercall_output *output,\n                           paddr_t input_params_gpa,\n
      \                          paddr_t output_params_gpa)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vpmask_nr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:790,1
    - Dst: cpu_raise_softirq_batch_begin
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:794,1
    - Dst: bitmap_for_each
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:796,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:798,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:800,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:801,1
    - Dst: cpu_raise_softirq_batch_finish
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - vpmask
    - vector
    argTypes:
    - struct hypercall_vpmask*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 806
    functionName: send_ipi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - vpmask_nr
    - bitmap_for_each
    - cpu_raise_softirq_batch_finish
    - vlapic_enabled
    - vcpu_vlapic
    - vlapic_set_irq
    - cpu_raise_softirq_batch_begin
    linkageType: ''
    returnType: void
    signature: void send_ipi(struct hypercall_vpmask *vpmask, uint8_t vector)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:813,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:835,1
    - Dst: vpmask_empty
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:852,1
    - Dst: vpmask_set
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:853,1
    - Dst: send_ipi
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:855,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - input
    - output
    - input_params_gpa
    - output_params_gpa
    argTypes:
    - union hypercall_input*
    - union hypercall_output*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 808
    functionDepth: 5
    functionLinenumber: 808
    functionLinenumberEnd: 858
    functionName: hvcall_ipi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - vpmask_set
    - vpmask_empty
    - this_cpu
    - hvm_copy_from_guest_phys
    - send_ipi
    linkageType: ''
    returnType: int
    signature: "int hvcall_ipi(const union hypercall_input *input,\n                      union
      hypercall_output *output,\n                      paddr_t input_params_gpa,\n
      \                     paddr_t output_params_gpa)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:865,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:881,1
    - Dst: hv_vpset_to_vpmask
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:894,1
    - Dst: send_ipi
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:899,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 4
    argNames:
    - input
    - output
    - input_params_gpa
    - output_params_gpa
    argTypes:
    - union hypercall_input*
    - union hypercall_output*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 860
    functionDepth: 6
    functionLinenumber: 860
    functionLinenumberEnd: 902
    functionName: hvcall_ipi_ex
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - send_ipi
    - hvm_copy_from_guest_phys
    - hv_vpset_to_vpmask
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int hvcall_ipi_ex(const union hypercall_input *input,\n                         union
      hypercall_output *output,\n                         paddr_t input_params_gpa,\n
      \                        paddr_t output_params_gpa)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: hvm_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:909,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:915,1
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:915,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:938,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:939,1
    - Dst: vcpu_yield
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:945,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:950,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:951,1
    - Dst: hvcall_flush
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:954,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:960,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:961,1
    - Dst: hvcall_flush_ex
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:964,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:969,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:970,1
    - Dst: hvcall_ipi
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:973,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:978,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:979,1
    - Dst: hvcall_ipi_ex
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:982,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:987,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1015,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 904
    functionDepth: 7
    functionLinenumber: 904
    functionLinenumberEnd: 1035
    functionName: viridian_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 1
    functionsReached:
    - hvcall_ipi
    - hvcall_ipi_ex
    - vcpu_yield
    - test_and_set_bit
    - hvcall_flush_ex
    - ASSERT
    - gprintk
    - ASSERT_UNREACHABLE
    - printk
    - is_viridian_domain
    - hvm_guest_x86_mode
    - hvcall_flush
    linkageType: ''
    returnType: int
    signature: int viridian_hypercall(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - name
    - vp
    argTypes:
    - struct vcpu*
    - char*
    - struct viridian_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1045
    functionName: viridian_dump_guest_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 2
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: "void viridian_dump_guest_page(const struct vcpu *v, const char *name,\n
      \                             const struct viridian_page *vp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1055,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1059,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1061,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1065,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1068,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1072,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1076,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1077,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1077,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - d
    - vp
    argTypes:
    - struct domain*
    - struct viridian_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1078
    functionName: viridian_map_guest_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 4
    functionsReached:
    - put_page_and_type
    - gdprintk
    - page_to_mfn
    - get_page_type
    - clear_page
    - mfn_x
    - put_page
    - __map_domain_page_global
    - get_page_from_gfn
    linkageType: ''
    returnType: void
    signature: void viridian_map_guest_page(struct domain *d, struct viridian_page
      *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1087,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1087,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1089,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vp
    argTypes:
    - struct viridian_page*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1093
    functionName: viridian_unmap_guest_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 4
    functionsReached:
    - unmap_domain_page_global
    - put_page_and_type
    - domain_page_map_to_mfn
    - mfn_to_page
    linkageType: ''
    returnType: void
    signature: void viridian_unmap_guest_page(struct viridian_page *vp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_domain
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1102,1
    - Dst: viridian_time_save_domain_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1108,1
    - Dst: viridian_synic_save_domain_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1109,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1112
    functionName: viridian_save_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - viridian_synic_save_domain_ctxt
    - viridian_time_save_domain_ctxt
    - is_viridian_domain
    - hvm_save_entry
    linkageType: ''
    returnType: int
    signature: "int viridian_save_domain_ctxt(\n    struct vcpu *v, hvm_domain_context_t
      *h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1120,1
    - Dst: viridian_synic_load_domain_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1126,1
    - Dst: viridian_time_load_domain_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1130
    functionName: viridian_load_domain_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - viridian_synic_load_domain_ctxt
    - viridian_time_load_domain_ctxt
    - hvm_load_entry_zeroextend
    linkageType: ''
    returnType: int
    signature: "int viridian_load_domain_ctxt(\n    struct domain *d, hvm_domain_context_t
      *h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_viridian_vcpu
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1140,1
    - Dst: viridian_time_save_vcpu_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1143,1
    - Dst: viridian_synic_save_vcpu_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1144,1
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1147
    functionName: viridian_save_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - viridian_time_save_vcpu_ctxt
    - hvm_save_entry
    - viridian_synic_save_vcpu_ctxt
    - is_viridian_vcpu
    linkageType: ''
    returnType: int
    signature: "int viridian_save_vcpu_ctxt(\n    struct vcpu *v, hvm_domain_context_t
      *h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1152,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1158,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1163,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1166,1
    - Dst: viridian_synic_load_vcpu_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1169,1
    - Dst: viridian_time_load_vcpu_ctxt
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1173
    functionName: viridian_load_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - viridian_time_load_vcpu_ctxt
    - memcmp
    - viridian_synic_load_vcpu_ctxt
    - hvm_load_instance
    - hvm_load_entry_zeroextend
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int viridian_load_vcpu_ctxt(\n    struct domain *d, hvm_domain_context_t
      *h)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1191,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1193,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1197,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/viridian/viridian.c:1218,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1221
    functionName: parse_viridian_version
    functionSourceFile: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    functionUses: 0
    functionsReached:
    - strchr
    - printk
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_viridian_version(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:61,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:63,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:67,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:68,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:85,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:91,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: vmx_enable_intr_window
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/intr.c
    functionUses: 0
    functionsReached:
    - TRACE
    - ASSERT
    - unlikely
    - __vmwrite
    - vmx_update_cpu_exec_control
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:139,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:141,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: nvmx_intr_blocked
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/intr.c
    functionUses: 0
    functionsReached:
    - nestedhvm_vcpu_in_guestmode
    - __vmread
    - vcpu_nestedhvm
    linkageType: ''
    returnType: enum hvm_intblk
    signature: enum hvm_intblk nvmx_intr_blocked(struct vcpu *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:166,1
    - Dst: hvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:167,1
    - Dst: nvmx_intr_blocked
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:170,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:172,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:176,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:178,1
    - Dst: vmx_inject_extint
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:185,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:187,1
    - Dst: hvm_vcpu_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:191,1
    - Dst: pt_intr_post
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:192,1
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:194,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:195,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:196,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:199,1
    - Dst: vmx_inject_extint
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:205,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 211
    functionName: nvmx_intr_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/intr.c
    functionUses: 0
    functionsReached:
    - hvm_interrupt_blocked
    - vmx_enable_intr_window
    - hvm_vcpu_ack_pending_irq
    - pt_intr_post
    - nvmx_intr_blocked
    - hvm_vcpu_has_pending_irq
    - get_vvmcs
    - unlikely
    - nestedhvm_vcpu_in_guestmode
    - vmx_inject_extint
    linkageType: ''
    returnType: int
    signature: int nvmx_intr_intercept(struct vcpu *v, struct hvm_intack intack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:215,1
    - Dst: find_first_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:218,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:220,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:221,1
    - Dst: EOI_EXIT_BITMAP
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: vmx_sync_exit_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/intr.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - clear_bit
    - find_first_bit
    - __vmwrite
    - EOI_EXIT_BITMAP
    linkageType: ''
    returnType: void
    signature: void vmx_sync_exit_bitmap(struct vcpu *v)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:234,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:237,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:242,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:242,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:247,1
    - Dst: pt_update_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:252,1
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:257,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:258,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:261,1
    - Dst: nvmx_intr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:261,1
    - Dst: hvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:264,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:273,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:277,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:283,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:289,1
    - Dst: vlapic_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:289,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:289,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:290,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:296,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:301,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:304,1
    - Dst: hvm_vcpu_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:309,1
    - Dst: vmx_inject_nmi
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:314,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:318,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:343,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:350,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:353,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:357,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:359,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:360,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:367,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:369,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:370,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:374,1
    - Dst: vmx_set_eoi_exit_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:375,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:379,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:383,1
    - Dst: vmx_sync_exit_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:385,1
    - Dst: pt_intr_post
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:387,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:391,1
    - Dst: vmx_inject_extint
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:392,1
    - Dst: pt_intr_post
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:393,1
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:397,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:402,1
    - Dst: vmx_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:403,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:407,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/intr.c:410,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 225
    functionDepth: 6
    functionLinenumber: 225
    functionLinenumberEnd: 411
    functionName: vmx_intr_assist
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/intr.c
    functionUses: 0
    functionsReached:
    - hvm_vcpu_ack_pending_irq
    - TRACE
    - likely
    - hvm_vcpu_has_pending_irq
    - vmx_sync_exit_bitmap
    - vmx_inject_nmi
    - pt_intr_post
    - hvm_interrupt_blocked
    - pt_update_irq
    - printk
    - vcpu_vlapic
    - nestedhvm_vcpu_in_guestmode
    - nvmx_intr_intercept
    - vmx_enable_intr_window
    - hvm_inject_hw_exception
    - ASSERT
    - vmx_set_eoi_exit_bitmap
    - vm_event_is_enabled
    - __vmwrite
    - vlapic_enabled
    - unlikely
    - vmx_update_cpu_exec_control
    - __vmread
    - vmx_inject_extint
    linkageType: ''
    returnType: void
    signature: void vmx_intr_assist(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:73,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:75,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:77,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:79,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:81,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: parse_ept_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    linkageType: ''
    returnType: int
    signature: int parse_ept_param(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: update_ept_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void update_ept_param(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_ept_param
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:105,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: init_ept_param
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - custom_runtime_set_var
    - update_ept_param
    linkageType: ''
    returnType: void
    signature: void init_ept_param(struct param_hypfs *par)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:121,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:125,1
    - Dst: update_ept_param
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:130,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:131,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:131,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:134,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:138,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:142,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:146,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:154,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:156,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:158,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 162
    functionName: parse_ept_param_runtime
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - custom_runtime_set_var
    - parse_boolean
    - rcu_read_unlock
    - paging_mode_shadow
    - param_2_parfs
    - nestedhvm_enabled
    - printk
    - update_ept_param
    - rcu_read_lock
    - is_hardware_domain
    - p2m_change_entry_type_global
    linkageType: ''
    returnType: int
    signature: int parse_ept_param_runtime(const char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:138,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:142,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:146,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:154,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 2
    functionsReached:
    - p2m_change_entry_type_global
    - paging_mode_shadow
    - is_hardware_domain
    - nestedhvm_enabled
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:179,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:182,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:183,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:184,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:185,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:186,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:187,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:188,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:189,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:190,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:191,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:192,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:193,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:194,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:195,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:196,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:197,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:198,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:199,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:200,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 205
    functionName: vmx_display_features
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - P
    - printk
    linkageType: ''
    returnType: void
    signature: void vmx_display_features(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: P
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(p,s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:213,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:225,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - name
    - ctl_min
    - ctl_opt
    - msr
    - mismatch
    argTypes:
    - char*
    - u32
    - u32
    - u32
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: adjust_vmx_controls
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - rdmsr
    - printk
    linkageType: ''
    returnType: u32
    signature: "u32 adjust_vmx_controls(\n    const char *name, u32 ctl_min, u32 ctl_opt,
      u32 msr, bool *mismatch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:238,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:246,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - name
    - ctl_min
    - ctl_opt
    - msr
    - mismatch
    argTypes:
    - char*
    - uint64_t
    - uint64_t
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 251
    functionName: adjust_vmx_controls2
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - rdmsrl
    - printk
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t adjust_vmx_controls2(\n    const char *name, uint64_t ctl_min,
      uint64_t ctl_opt, unsigned int msr,\n    bool *mismatch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - expected
    - saw
    argTypes:
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: cap_check
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool cap_check(\n    const char *name, unsigned long expected, unsigned
      long saw)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:268,1
    - Dst: adjust_vmx_controls
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:277,1
    - Dst: adjust_vmx_controls
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:299,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:307,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:317,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:318,1
    - Dst: adjust_vmx_controls
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:359,1
    - Dst: adjust_vmx_controls2
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:369,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:378,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:427,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:452,1
    - Dst: adjust_vmx_controls
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:460,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:474,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:482,1
    - Dst: adjust_vmx_controls
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:500,1
    - Dst: vmx_display_features
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:513,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:519,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:520,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:528,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:531,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:534,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:537,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:540,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:543,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:546,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:549,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:550,1
    - Dst: cap_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:551,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:557,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:565,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:566,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:572,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:573,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:581,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:582,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:591,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:592,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 135
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 597
    functionName: vmx_init_vmcs_config
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - rdmsr
    - adjust_vmx_controls2
    - smp_processor_id
    - vmx_display_features
    - rdmsrl
    - printk
    - cap_check
    - adjust_vmx_controls
    linkageType: ''
    returnType: int
    signature: int vmx_init_vmcs_config(bool bsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:604,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:606,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:610,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:611,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:613,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 616
    functionName: vmx_alloc_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - unmap_domain_page
    - clear_page
    - alloc_domheap_page
    - __map_domain_page
    - page_to_maddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vmx_alloc_vmcs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:620,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pa
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: vmx_free_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - free_domheap_page
    - maddr_to_page
    linkageType: ''
    returnType: void
    signature: void vmx_free_vmcs(paddr_t pa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:629,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:629,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:631,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:633,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:635,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:640,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:642,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 645
    functionName: __vmx_clear_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - __vmpclear
    - ASSERT
    - list_del
    - this_cpu
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void __vmx_clear_vmcs(void *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:652,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: vmx_clear_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void vmx_clear_vmcs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:659,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:663,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:663,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:664,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:667,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:667,1
    - Dst: __vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:669,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:670,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 673
    functionName: vmx_load_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - __vmptrld
    - smp_processor_id
    - ASSERT
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - list_add
    linkageType: ''
    returnType: void
    signature: void vmx_load_vmcs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:682,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:682,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:683,1
    - Dst: vmx_load_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 687
    functionName: vmx_vmcs_reload
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vmx_load_vmcs
    - local_irq_is_enabled
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void vmx_vmcs_reload(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nvmx_cpu_up_prepare
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:695,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:696,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:698,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:701,1
    - Dst: vmx_alloc_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:701,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:702,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:705,1
    - Dst: nvmx_cpu_dead
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 708
    functionName: vmx_cpu_up_prepare
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - vmx_alloc_vmcs
    - per_cpu
    - printk
    - nvmx_cpu_up_prepare
    - nvmx_cpu_dead
    linkageType: ''
    returnType: int
    signature: int vmx_cpu_up_prepare(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_free_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:712,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:712,1
    - Dst: nvmx_cpu_dead
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:714,1
    - Dst: vmx_pi_desc_fixup
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: vmx_cpu_dead
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 2
    functionsReached:
    - vmx_pi_desc_fixup
    - nvmx_cpu_dead
    - per_cpu
    - vmx_free_vmcs
    linkageType: ''
    returnType: void
    signature: void vmx_cpu_dead(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 713
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(vmxon_region, cpu)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:721,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:724,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:724,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:730,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:731,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:732,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:735,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:740,1
    - Dst: tboot_in_measured_env
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:745,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:749,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:757,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:759,1
    - Dst: vmx_init_vmcs_config
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:762,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:765,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:765,1
    - Dst: vmx_cpu_up_prepare
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:767,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:775,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:779,1
    - Dst: hvm_asid_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:781,1
    - Dst: ept_sync_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:784,1
    - Dst: vpid_sync_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:787,1
    - Dst: vmx_pi_per_cpu_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:789,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:795,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:799,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:802,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:808,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 810
    functionName: _vmx_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_cpu_up_prepare
    - wrmsrns
    - rdmsr
    - vmx_init_vmcs_config
    - smp_processor_id
    - read_cr4
    - read_cr0
    - rdmsrl
    - ept_sync_all
    - BUG_ON
    - vmx_pi_per_cpu_init
    - tboot_in_measured_env
    - printk
    - this_cpu
    - INIT_LIST_HEAD
    - test_bit
    - hvm_asid_init
    - vpid_sync_all
    linkageType: ''
    returnType: int
    signature: int _vmx_cpu_up(bool bsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _vmx_cpu_up
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 4
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: vmx_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - _vmx_cpu_up
    linkageType: ''
    returnType: int
    signature: int vmx_cpu_up(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:819,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:822,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:825,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:827,1
    - Dst: __vmx_clear_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:828,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:828,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:831,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:831,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 836
    functionName: vmx_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - read_cr4
    - list_entry
    - BUG_ON
    - __vmx_clear_vmcs
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - list_empty
    linkageType: ''
    returnType: void
    signature: void vmx_cpu_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 832
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void this_cpu(vmxon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:852,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:853,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:855,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:859,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:863,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:864,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:866,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:867,1
    - Dst: vmx_clear_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:869,1
    - Dst: vmx_load_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 878
    functionName: vmx_vmcs_try_enter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vcpu_pause
    - likely
    - vmx_clear_vmcs
    - BUG_ON
    - spin_lock
    - vmx_load_vmcs
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool vmx_vmcs_try_enter(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_try_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:882,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 885
    functionName: vmx_vmcs_enter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - vmx_vmcs_try_enter
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void vmx_vmcs_enter(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:891,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:894,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:895,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:896,1
    - Dst: vmx_clear_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:901,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:902,1
    - Dst: vmx_load_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:903,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:905,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 910
    functionName: vmx_vmcs_exit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - is_hvm_vcpu
    - spin_unlock
    - vcpu_unpause
    - likely
    - vmx_clear_vmcs
    - BUG_ON
    - vmx_load_vmcs
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void vmx_vmcs_exit(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:914,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:916,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:917,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:918,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:918,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:920,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:920,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:922,1
    - Dst: get_stack_bottom
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:922,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:929,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 931
    functionName: vmx_set_host_env
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - smp_processor_id
    - per_cpu
    - this_cpu
    - __vmwrite
    - get_stack_bottom
    linkageType: ''
    returnType: void
    signature: void vmx_set_host_env(struct vcpu *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:943,1
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:943,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:949,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:951,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:957,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:959,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:962,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - v
    - msr
    - type
    argTypes:
    - struct vcpu*
    - unsigned int
    - enum vmx_msr_intercept_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 963
    functionName: vmx_clear_msr_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - monitored_msr
    - clear_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void vmx_clear_msr_intercept(struct vcpu *v, unsigned int msr,\n                             enum
      vmx_msr_intercept_type type)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:977,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:979,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:985,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:987,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - v
    - msr
    - type
    argTypes:
    - struct vcpu*
    - unsigned int
    - enum vmx_msr_intercept_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 991
    functionName: vmx_set_msr_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void vmx_set_msr_intercept(struct vcpu *v, unsigned int msr,\n                           enum
      vmx_msr_intercept_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:997,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - msr_bitmap
    - msr
    - is_write
    argTypes:
    - struct vmx_msr_bitmap*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1005
    functionName: vmx_msr_is_intercepted
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: "bool vmx_msr_is_intercepted(struct vmx_msr_bitmap *msr_bitmap,\n                            unsigned
      int msr, bool is_write)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1014,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1016,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1018,1
    - Dst: __vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1019,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1023,1
    - Dst: vmx_set_host_env
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1028,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1032
    functionName: vmx_vmcs_switch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - __vmptrld
    - __vmpclear
    - spin_lock
    - this_cpu
    - vmx_set_host_env
    linkageType: ''
    returnType: void
    signature: void vmx_vmcs_switch(paddr_t from, paddr_t to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1037
    functionName: virtual_vmcs_enter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - __vmptrld
    linkageType: ''
    returnType: void
    signature: void virtual_vmcs_enter(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1041,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1043,1
    - Dst: __vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1046
    functionName: virtual_vmcs_exit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - __vmptrld
    - __vmpclear
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void virtual_vmcs_exit(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1052,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1053,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - vmcs_encoding
    argTypes:
    - struct vcpu*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1057
    functionName: virtual_vmcs_vmread
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_exit
    - __vmread
    - virtual_vmcs_enter
    linkageType: ''
    returnType: u64
    signature: u64 virtual_vmcs_vmread(const struct vcpu *v, u32 vmcs_encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1064,1
    - Dst: vmread_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1065,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - vmcs_encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1069
    functionName: virtual_vmcs_vmread_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_exit
    - vmread_safe
    - virtual_vmcs_enter
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno virtual_vmcs_vmread_safe(const struct vcpu *v,\n
      \                                            u32 vmcs_encoding, u64 *val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1073,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1074,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - vmcs_encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: virtual_vmcs_vmwrite
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_exit
    - __vmwrite
    - virtual_vmcs_enter
    linkageType: ''
    returnType: void
    signature: void virtual_vmcs_vmwrite(const struct vcpu *v, u32 vmcs_encoding,
      u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1083,1
    - Dst: vmwrite_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1084,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - vmcs_encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1088
    functionName: virtual_vmcs_vmwrite_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_exit
    - vmwrite_safe
    - virtual_vmcs_enter
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno virtual_vmcs_vmwrite_safe(const struct vcpu *v,\n
      \                                             u32 vmcs_encoding, u64 val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1103
    functionName: pi_desc_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pi_desc_init(struct vcpu *v)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1114,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1117,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1144,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1166,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1168,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1169,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1173,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1174,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1178,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1182,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1188,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1196,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1198,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1198,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1200,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1201,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1202,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1203,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1204,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1205,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1206,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1206,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1207,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1210,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1214,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1214,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1215,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1215,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1222,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1223,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1224,1
    - Dst: EOI_EXIT_BITMAP
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1224,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1227,1
    - Dst: pi_desc_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1233,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1235,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1235,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1236,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1240,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1241,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1242,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1243,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1244,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1245,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1246,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1247,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1250,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1253,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1254,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1256,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1256,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1259,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1260,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1263,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1263,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1264,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1265,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1268,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1269,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1270,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1272,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1274,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1275,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1278,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1279,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1281,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1283,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1286,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1287,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1288,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1289,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1290,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1291,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1294,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1295,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1296,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1297,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1298,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1299,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1302,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1303,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1304,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1305,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1306,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1307,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1310,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1311,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1314,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1315,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1318,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1319,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1320,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1321,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1324,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1325,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1326,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1328,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1329,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1330,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1333,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1337,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1339,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1342,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1345,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1349,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1350,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1350,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1351,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1354,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1356,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1359,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1359,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1360,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1362,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1363,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1366,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1368,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1371,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1375,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1376,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1380,1
    - Dst: vmx_vlapic_msr_changed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1382,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1384,1
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1385,1
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1389,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1393,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 163
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1107
    functionDepth: 4
    functionLinenumber: 1107
    functionLinenumberEnd: 1396
    functionName: construct_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - __pa
    - bitmap_zero
    - IS_ENABLED
    - vmx_vlapic_msr_changed
    - paging_mode_hap
    - alloc_xenheap_page
    - ARRAY_SIZE
    - p2m_get_pagetable
    - vmx_add_msr
    - hvm_update_guest_cr
    - vcpu_vlapic
    - vmx_clear_msr_intercept
    - is_iommu_enabled
    - memset
    - page_to_maddr
    - __vmwrite
    - EOI_EXIT_BITMAP
    - p2m_get_hostp2m
    - paging_update_paging_modes
    - vmx_vmcs_enter
    - read_cr0
    - virt_to_maddr
    - vmx_update_exception_bitmap
    - read_efer
    - pagetable_get_pfn
    - vmx_vmcs_exit
    - pi_desc_init
    - vmx_update_cpu_exec_control
    linkageType: ''
    returnType: int
    signature: int construct_vmcs(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - start
    - end
    - msr
    argTypes:
    - struct vmx_msr_entry*
    - struct vmx_msr_entry*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1421
    functionName: locate_msr_entry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vmx_msr_entry
    signature: "struct vmx_msr_entry *locate_msr_entry(\n    struct vmx_msr_entry
      *start, struct vmx_msr_entry *end, uint32_t msr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1431,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1431,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1452,1
    - Dst: locate_msr_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1460,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - v
    - msr
    - type
    argTypes:
    - struct vcpu*
    - uint32_t
    - enum vmx_msr_list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1463
    functionName: vmx_find_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - locate_msr_entry
    - ASSERT
    - ASSERT_UNREACHABLE
    - vcpu_runnable
    linkageType: ''
    returnType: struct vmx_msr_entry
    signature: "struct vmx_msr_entry *vmx_find_msr(const struct vcpu *v, uint32_t
      msr,\n                                   enum vmx_msr_list_type type)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1473,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1473,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1499,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1503,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1506,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1510,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1516,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1521,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1526,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1527,1
    - Dst: locate_msr_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1534,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1546,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1554,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1558,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1562,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1572,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 4
    argNames:
    - v
    - msr
    - val
    - type
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    - enum vmx_msr_list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1465
    functionDepth: 4
    functionLinenumber: 1465
    functionLinenumberEnd: 1575
    functionName: vmx_add_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - alloc_xenheap_page
    - vmx_vmcs_enter
    - __vmwrite
    - memmove
    - ASSERT
    - vcpu_runnable
    - virt_to_maddr
    - locate_msr_entry
    - vmx_vmcs_exit
    - unlikely
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int vmx_add_msr(struct vcpu *v, uint32_t msr, uint64_t val,\n                enum
      vmx_msr_list_type type)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1584,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1584,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1605,1
    - Dst: locate_msr_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1613,1
    - Dst: memmove
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1618,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1620,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1625,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1629,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1633,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - v
    - msr
    - type
    argTypes:
    - struct vcpu*
    - uint32_t
    - enum vmx_msr_list_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1577
    functionDepth: 4
    functionLinenumber: 1577
    functionLinenumberEnd: 1640
    functionName: vmx_del_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - __vmwrite
    - memmove
    - locate_msr_entry
    - ASSERT
    - vcpu_runnable
    - vmx_vmcs_exit
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int vmx_del_msr(struct vcpu *v, uint32_t msr, enum vmx_msr_list_type
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1644,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1647
    functionName: vmx_set_eoi_exit_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - test_and_set_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vmx_set_eoi_exit_bitmap(struct vcpu *v, u8 vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1651,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1649
    functionDepth: 0
    functionLinenumber: 1649
    functionLinenumberEnd: 1654
    functionName: vmx_clear_eoi_exit_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vmx_clear_eoi_exit_bitmap(struct vcpu *v, u8 vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1659
    functionName: vmx_vcpu_pml_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vmx_vcpu_pml_enabled(const struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vcpu_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1663,1
    - Dst: struct vcpu*::domain::arch::paging::alloc_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1666,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1670,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1672,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1672,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1673,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1677,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1661
    functionDepth: 4
    functionLinenumber: 1661
    functionLinenumberEnd: 1683
    functionName: vmx_vcpu_enable_pml
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - struct vcpu*::domain::arch::paging::alloc_page
    - vmx_vcpu_pml_enabled
    - vmx_vmcs_exit
    - page_to_maddr
    - __vmwrite
    linkageType: ''
    returnType: int
    signature: int vmx_vcpu_enable_pml(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vcpu_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1687,1
    - Dst: ept_vcpu_flush_pml_buffer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1691,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1693,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1696,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1699,1
    - Dst: struct vcpu*::domain::arch::paging::free_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1685
    functionDepth: 4
    functionLinenumber: 1685
    functionLinenumberEnd: 1703
    functionName: vmx_vcpu_disable_pml
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - struct vcpu*::domain::arch::paging::free_page
    - vmx_vcpu_pml_enabled
    - ept_vcpu_flush_pml_buffer
    - vmx_vmcs_exit
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_disable_pml(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1708
    functionName: vmx_domain_pml_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vmx_domain_pml_enabled(const struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1723,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1723,1
    - Dst: vmx_domain_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1725,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1728,1
    - Dst: vmx_vcpu_enable_pml
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1729,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1737,1
    - Dst: vmx_vcpu_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1738,1
    - Dst: vmx_vcpu_disable_pml
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1718
    functionDepth: 5
    functionLinenumber: 1718
    functionLinenumberEnd: 1741
    functionName: vmx_domain_enable_pml
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vmx_vcpu_disable_pml
    - vmx_vcpu_pml_enabled
    - vmx_domain_pml_enabled
    - ASSERT
    - atomic_read
    - vmx_vcpu_enable_pml
    linkageType: ''
    returnType: int
    signature: int vmx_domain_enable_pml(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1753,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1753,1
    - Dst: vmx_domain_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1755,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1758,1
    - Dst: vmx_vcpu_disable_pml
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1749
    functionDepth: 5
    functionLinenumber: 1749
    functionLinenumberEnd: 1762
    functionName: vmx_domain_disable_pml
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vmx_vcpu_disable_pml
    - vmx_domain_pml_enabled
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void vmx_domain_disable_pml(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1772,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1772,1
    - Dst: vmx_domain_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1774,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1777,1
    - Dst: ept_vcpu_flush_pml_buffer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1779
    functionName: vmx_domain_flush_pml_buffers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vmx_domain_pml_enabled
    - ASSERT
    - ept_vcpu_flush_pml_buffer
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void vmx_domain_flush_pml_buffers(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1783,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1784,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - eptp
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1781
    functionDepth: 4
    functionLinenumber: 1781
    functionLinenumberEnd: 1786
    functionName: vmx_vcpu_update_eptp
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - __vmwrite
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_update_eptp(struct vcpu *v, u64 eptp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1794,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1797,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1797,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1799,1
    - Dst: vmx_vcpu_update_eptp
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1800,1
    - Dst: ept_sync_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1803
    functionName: vmx_domain_update_eptp
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - ept_sync_domain
    - ASSERT
    - vmx_vcpu_update_eptp
    - atomic_read
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void vmx_domain_update_eptp(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmx_alloc_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1810,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1813,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1814,1
    - Dst: construct_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1818,1
    - Dst: vmx_destroy_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1805
    functionDepth: 5
    functionLinenumber: 1805
    functionLinenumberEnd: 1825
    functionName: vmx_create_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_alloc_vmcs
    - __vmpclear
    - construct_vmcs
    - INIT_LIST_HEAD
    - vmx_destroy_vmcs
    linkageType: ''
    returnType: int
    signature: int vmx_create_vmcs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_clear_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1831,1
    - Dst: vmx_free_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1833,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1835,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1836,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1838
    functionName: vmx_destroy_vmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - vmx_free_vmcs
    - free_xenheap_page
    - vmx_clear_vmcs
    linkageType: ''
    returnType: void
    signature: void vmx_destroy_vmcs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1845,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1846,1
    - Dst: vmcs_dump_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1851,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1854
    functionName: vmx_vmentry_failure
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - gprintk
    - __vmread
    - vmcs_dump_vcpu
    linkageType: ''
    returnType: void
    signature: void vmx_vmentry_failure(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1865,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1866,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1858
    functionDepth: 4
    functionLinenumber: 1858
    functionLinenumberEnd: 1868
    functionName: vmx_update_debug_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmx_update_exception_bitmap
    - vmx_vmcs_exit
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: void vmx_update_debug_state(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1876,1
    - Dst: vmx_vmcs_reload
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1877,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1890,1
    - Dst: flush_mask
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1895,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1895,1
    - Dst: vmx_clear_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1898,1
    - Dst: vmx_load_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1899,1
    - Dst: hvm_migrate_timers
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1900,1
    - Dst: hvm_migrate_pirqs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1901,1
    - Dst: vmx_set_host_env
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1902,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1910,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1917,1
    - Dst: vmx_update_debug_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1920,1
    - Dst: hvm_do_resume
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1923,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1926,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1927,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1928,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1928,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1930,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1870
    functionDepth: 5
    functionLinenumber: 1870
    functionLinenumberEnd: 1931
    functionName: vmx_do_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - unlikely
    - has_arch_pdevs
    - hvm_do_resume
    - __vmwrite
    - smp_processor_id
    - read_cr4
    - hvm_migrate_timers
    - vmx_vmcs_reload
    - vmx_clear_vmcs
    - reset_stack_and_jump
    - vmx_load_vmcs
    - hvm_asid_flush_vcpu
    - hvm_migrate_pirqs
    - cpumask_of
    - vmx_update_debug_state
    - vmx_set_host_env
    - flush_mask
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_do_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmread_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1933
    functionDepth: 1
    functionLinenumber: 1933
    functionLinenumberEnd: 1938
    functionName: vmr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - vmread_safe
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long vmr(unsigned long field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1944
    functionName: vmr16
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmr16(fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1945
    functionDepth: 0
    functionLinenumber: 1945
    functionLinenumberEnd: 1949
    functionName: vmr32
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmr32(fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1954,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1955,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1956,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1957,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - name
    - selector
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1950
    functionDepth: 2
    functionLinenumber: 1950
    functionLinenumberEnd: 1959
    functionName: vmx_dump_sel
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - printk
    - vmr
    linkageType: ''
    returnType: void
    signature: void vmx_dump_sel(const char *name, uint32_t selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1965,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1966,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - lim
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1961
    functionDepth: 2
    functionLinenumber: 1961
    functionLinenumberEnd: 1968
    functionName: vmx_dump_sel2
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - printk
    - vmr
    linkageType: ''
    returnType: void
    signature: void vmx_dump_sel2(const char *name, uint32_t lim)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1979,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1981,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1983,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1984,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1985,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1994,1
    - Dst: vmx_read_guest_loadonly_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1995,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1996,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1998,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:1999,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2000,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2000,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2000,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2001,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2002,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2002,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2003,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2003,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2008,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2009,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2009,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2009,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2009,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2010,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2011,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2011,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2011,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2011,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2013,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2014,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2015,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2016,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2017,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2018,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2019,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2020,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2021,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2021,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2022,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2023,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2024,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2025,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2026,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2027,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2028,1
    - Dst: vmx_dump_sel2
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2029,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2030,1
    - Dst: vmx_dump_sel2
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2031,1
    - Dst: vmx_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2032,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2033,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2034,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2035,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2036,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2036,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2037,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2038,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2038,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2040,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2041,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2041,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2042,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2043,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2043,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2046,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2046,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2048,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2049,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2049,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2051,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2052,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2053,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2053,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2053,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2054,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2055,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2055,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2056,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2056,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2057,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2057,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2058,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2059,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2060,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2060,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2060,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2061,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2062,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2062,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2063,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2064,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2064,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2064,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2065,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2066,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2067,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2067,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2069,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2069,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2069,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2071,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2072,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2074,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2075,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2076,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2077,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2078,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2079,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2080,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2081,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2082,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2083,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2084,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2085,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2086,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2087,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2088,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2089,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2090,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2091,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2092,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2093,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2094,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2095,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2095,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2096,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2097,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2097,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2098,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2099,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2099,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2102,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2103,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2103,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2106,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2107,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2107,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2108,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2110,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2111,1
    - Dst: CR3_TARGET_VALUE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2111,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2112,1
    - Dst: CR3_TARGET_VALUE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2112,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2114,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2114,1
    - Dst: CR3_TARGET_VALUE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2114,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2117,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2118,1
    - Dst: vmr32
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2118,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2121,1
    - Dst: vmr16
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2122,1
    - Dst: vmr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2122,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2124,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 1970
    functionDepth: 4
    functionLinenumber: 1970
    functionLinenumberEnd: 2125
    functionName: vmcs_dump_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - vmx_vmcs_enter
    - vmr16
    - vmx_dump_sel
    - vmr
    - GUEST_PDPTE
    - vmr32
    - vmx_vmcs_exit
    - read_efer
    - printk
    - CR3_TARGET_VALUE
    - vmx_read_guest_loadonly_msr
    - vmx_dump_sel2
    linkageType: ''
    returnType: void
    signature: void vmcs_dump_vcpu(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2132,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2134,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2138,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2140,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2145,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2148,1
    - Dst: vmcs_dump_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2149,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2151,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2155,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2127
    functionDepth: 5
    functionLinenumber: 2127
    functionLinenumberEnd: 2158
    functionName: vmcs_dump
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - vmcs_dump_vcpu
    - process_pending_softirqs
    - printk
    - rcu_read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void vmcs_dump(unsigned char ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2138,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2140,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2145,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2148,1
    - Dst: vmcs_dump_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2149,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2136
    functionDepth: 5
    functionLinenumber: 2136
    functionLinenumberEnd: 2153
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 2
    functionsReached:
    - printk
    - process_pending_softirqs
    - is_hvm_domain
    - vmcs_dump_vcpu
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2145,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2148,1
    - Dst: vmcs_dump_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2149,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2141
    functionDepth: 5
    functionLinenumber: 2141
    functionLinenumberEnd: 2152
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 21
    functionsReached:
    - process_pending_softirqs
    - printk
    - vmcs_dump_vcpu
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _vmx_cpu_up
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2169,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2172,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2175,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2160
    functionDepth: 4
    functionLinenumber: 2160
    functionLinenumberEnd: 2185
    functionName: vmx_vmcs_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - memset
    - register_keyhandler
    - _vmx_cpu_up
    - setup_clear_cpu_cap
    linkageType: ''
    returnType: int
    signature: int vmx_vmcs_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2192,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2193,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2194,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2195,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2196,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2197,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2198,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2199,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2187
    functionDepth: 0
    functionLinenumber: 2187
    functionLinenumberEnd: 2201
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nvmx_vcpu_in_vmx
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    linkageType: ''
    returnType: bool
    signature: bool nvmx_vcpu_in_vmx(const struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:38,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: nvmx_cpu_up_prepare
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 1
    functionsReached:
    - per_cpu
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int nvmx_cpu_up_prepare(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:53,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: nvmx_cpu_dead
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 2
    functionsReached:
    - XFREE
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void nvmx_cpu_dead(unsigned int cpu)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:59,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:60,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:61,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:72,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:77,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:80,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:88,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:91,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:96,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:96,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:98,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:101,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:106,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:107,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:113,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:114,1
    - Dst: VMCS_HIGH
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:114,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:115,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:116,1
    - Dst: VMCS_HIGH
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:116,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:117,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:118,1
    - Dst: VMCS_HIGH
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:118,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:120,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:125,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 142
    functionName: nvmx_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - gdprintk
    - page_to_mfn
    - set_bit
    - clear_domain_page
    - unmap_domain_page
    - alloc_xenheap_page
    - clear_page
    - alloc_domheap_page
    - VMCS_HIGH
    - vcpu_nestedhvm
    - __map_domain_page
    - INIT_LIST_HEAD
    - page_to_maddr
    - p2m_change_entry_type_global
    linkageType: ''
    returnType: int
    signature: int nvmx_vcpu_initialise(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:146,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:147,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:161,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:162,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:162,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:168,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:170,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:171,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:176,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 184
    functionName: nvmx_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - __vmpclear
    - list_for_each_entry_safe
    - list_del
    - maddr_to_page
    - free_domheap_page
    - xfree
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvmx_vcpu_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:188,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: vcpu_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - FREE_XENHEAP_PAGE
    linkageType: ''
    returnType: void
    signature: void vcpu_relinquish_resources(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvmx_purge_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:199,1
    - Dst: vcpu_relinquish_resources
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: nvmx_domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_relinquish_resources
    - nvmx_purge_vvmcs
    linkageType: ''
    returnType: void
    signature: void nvmx_domain_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvmx_purge_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:199,1
    - Dst: vcpu_relinquish_resources
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 21
    functionsReached:
    - vcpu_relinquish_resources
    - nvmx_purge_vvmcs
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: nvmx_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nvmx_vcpu_reset(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: nvmx_vcpu_eptp_base
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t nvmx_vcpu_eptp_base(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: nvmx_ept_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    linkageType: ''
    returnType: bool
    signature: bool nvmx_ept_enabled(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - width
    - type
    - index
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: vvmcs_offset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vvmcs_offset(u32 width, u32 type, u32 index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vvmcs_offset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - vvmcs
    - vmcs_encoding
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 276
    functionName: get_vvmcs_virtual
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcs_offset
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_vvmcs_virtual(void *vvmcs, uint32_t vmcs_encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - encoding
    argTypes:
    - struct vcpu*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 281
    functionName: get_vvmcs_real
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_vmread
    linkageType: ''
    returnType: u64
    signature: u64 get_vvmcs_real(const struct vcpu *v, u32 encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs_virtual
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vvmcs
    - encoding
    - val
    argTypes:
    - void*
    - u32
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: get_vvmcs_virtual_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs_virtual
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: enum vmx_insn_errno get_vvmcs_virtual_safe(void *vvmcs, u32 encoding,
      u64 *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_vmread_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: get_vvmcs_real_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_vmread_safe
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno get_vvmcs_real_safe(const struct vcpu *v, u32
      encoding,\n                                        u64 *val)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vvmcs_offset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - vvmcs
    - vmcs_encoding
    - val
    argTypes:
    - void*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 336
    functionName: set_vvmcs_virtual
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcs_offset
    linkageType: ''
    returnType: void
    signature: void set_vvmcs_virtual(void *vvmcs, uint32_t vmcs_encoding, uint64_t
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: set_vvmcs_real
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_vmwrite
    linkageType: ''
    returnType: void
    signature: void set_vvmcs_real(const struct vcpu *v, u32 encoding, u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_vvmcs_virtual
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vvmcs
    - encoding
    - val
    argTypes:
    - void*
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: set_vvmcs_virtual_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - set_vvmcs_virtual
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: enum vmx_insn_errno set_vvmcs_virtual_safe(void *vvmcs, u32 encoding,
      u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virtual_vmcs_vmwrite_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - encoding
    - val
    argTypes:
    - struct vcpu*
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: set_vvmcs_real_safe
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_vmwrite_safe
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno set_vvmcs_real_safe(const struct vcpu *v, u32
      encoding,\n                                        u64 val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - index
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: reg_read
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - decode_gpr
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long reg_read(struct cpu_user_regs *regs,\n                              unsigned
      int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - regs
    - index
    - value
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: reg_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 4
    functionsReached:
    - decode_gpr
    linkageType: ''
    returnType: void
    signature: "void reg_write(struct cpu_user_regs *regs,\n                      unsigned
      int index,\n                      unsigned long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: __n2_pin_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: u32
    signature: u32 __n2_pin_exec_control(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: __n2_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: u32
    signature: u32 __n2_exec_control(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:389,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: __n2_secondary_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __n2_exec_control
    linkageType: ''
    returnType: u32
    signature: u32 __n2_secondary_exec_control(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:405,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:412,1
    - Dst: vmx_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:416,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:422,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:426,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:429,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:433,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:442,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:450,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:454,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:467,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - regs
    - decode
    - poperandS
    argTypes:
    - struct cpu_user_regs*
    - struct vmx_inst_decoded*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 395
    functionDepth: 5
    functionLinenumber: 395
    functionLinenumberEnd: 469
    functionName: decode_vmx_inst
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - hvm_inject_hw_exception
    - vmx_guest_x86_mode
    - reg_read
    - hvm_copy_from_guest_linear
    - is_canonical_address
    - hvm_inject_page_fault
    - hvm_get_segment_register
    - __vmread
    linkageType: ''
    returnType: int
    signature: "int decode_vmx_inst(struct cpu_user_regs *regs,\n                           struct
      vmx_inst_decoded *decode,\n                           unsigned long *poperandS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: vmsucceed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmsucceed(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:481,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:481,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - regs
    - errno
    argTypes:
    - struct cpu_user_regs*
    - enum vmx_insn_errno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: vmfail_valid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - set_vvmcs
    - vvmcx_valid
    linkageType: ''
    returnType: void
    signature: void vmfail_valid(struct cpu_user_regs *regs, enum vmx_insn_errno errno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:492,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: vmfail_invalid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vvmcx_valid
    linkageType: ''
    returnType: void
    signature: void vmfail_invalid(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:502,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:503,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - regs
    - errno
    argTypes:
    - struct cpu_user_regs*
    - enum vmx_insn_errno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 506
    functionName: vmfail
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcx_valid
    - vmfail_valid
    - vmfail_invalid
    linkageType: ''
    returnType: void
    signature: void vmfail(struct cpu_user_regs *regs, enum vmx_insn_errno errno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:514,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:516,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:521,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - v
    - vector
    - error_code
    argTypes:
    - struct vcpu*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 527
    functionName: nvmx_intercepts_exception
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - get_vvmcs
    linkageType: ''
    returnType: bool
    signature: "bool nvmx_intercepts_exception(\n    struct vcpu *v, unsigned int
      vector, int error_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - field
    - host_value
    argTypes:
    - struct vcpu*
    - unsigned int
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: __shadow_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: u32
    signature: "u32 __shadow_control(struct vcpu *v,\n                                 unsigned
      int field,\n                                 u32 host_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:544,1
    - Dst: __shadow_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - field
    - host_value
    argTypes:
    - struct vcpu*
    - unsigned int
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 545
    functionName: set_shadow_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __shadow_control
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: "void set_shadow_control(struct vcpu *v,\n                               unsigned
      int field,\n                               u32 host_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:549,1
    - Dst: nestedhvm_vcpu_iomap_get
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: _shadow_io_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - nestedhvm_vcpu_iomap_get
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *_shadow_io_bitmap(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:562,1
    - Dst: bitmap_or
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:569,1
    - Dst: bitmap_or
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:572,1
    - Dst: bitmap_or
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:575,1
    - Dst: bitmap_or
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:578,1
    - Dst: bitmap_set
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:586,1
    - Dst: bitmap_set
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:587,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:589,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - v
    - shadow_ctrl
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: update_msrbitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - bitmap_or
    - virt_to_maddr
    - __vmwrite
    - bitmap_set
    linkageType: ''
    returnType: void
    signature: void update_msrbitmap(struct vcpu *v, uint32_t shadow_ctrl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:599,1
    - Dst: _shadow_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:629,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:631,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:631,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:632,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:632,1
    - Dst: update_msrbitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:635,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - v
    - host_cntrl
    argTypes:
    - struct vcpu*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 639
    functionName: nvmx_update_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virt_to_maddr
    - update_msrbitmap
    - __vmwrite
    - _shadow_io_bitmap
    - __n2_exec_control
    linkageType: ''
    returnType: void
    signature: void nvmx_update_exec_control(struct vcpu *v, u32 host_cntrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:645,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:652,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:655,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - v
    - host_cntrl
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 660
    functionName: nvmx_update_secondary_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - ASSERT
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: "void nvmx_update_secondary_exec_control(struct vcpu *v,\n                                        unsigned
      long host_cntrl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:667,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:670,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - host_cntrl
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 674
    functionName: nvmx_update_pin_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void nvmx_update_pin_control(struct vcpu *v, unsigned long host_cntrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:680,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - host_cntrl
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 687
    functionName: nvmx_update_exit_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void nvmx_update_exit_control(struct vcpu *v, unsigned long host_cntrl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:693,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 698
    functionName: nvmx_update_entry_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void nvmx_update_entry_control(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_shadow_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: nvmx_update_exception_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - set_shadow_control
    linkageType: ''
    returnType: void
    signature: void nvmx_update_exception_bitmap(struct vcpu *v, unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __n2_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:709,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:716,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:717,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:718,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:718,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:719,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:719,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:720,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 724
    functionName: nvmx_update_apic_access_address
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - __n2_secondary_exec_control
    - ASSERT
    - get_vvmcs
    - put_page
    - p2m_is_paging
    - page_to_maddr
    - get_page_from_gfn
    linkageType: ''
    returnType: void
    signature: void nvmx_update_apic_access_address(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:730,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:737,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:738,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:739,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:739,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:740,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:740,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:741,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 745
    functionName: nvmx_update_virtual_apic_address
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - ASSERT
    - get_vvmcs
    - put_page
    - p2m_is_paging
    - page_to_maddr
    - get_page_from_gfn
    - __n2_exec_control
    linkageType: ''
    returnType: void
    signature: void nvmx_update_virtual_apic_address(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:749,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:752,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:752,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 755
    functionName: nvmx_update_tpr_threshold
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __vmwrite
    - __n2_exec_control
    linkageType: ''
    returnType: void
    signature: void nvmx_update_tpr_threshold(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:759,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:760,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:761,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 763
    functionName: nvmx_update_pfec
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void nvmx_update_pfec(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:767,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 771
    functionName: __clear_current_vvmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __vmpclear
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void __clear_current_vvmcs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:775,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 782
    functionName: unmap_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - hvm_unmap_guest_frame
    linkageType: ''
    returnType: void
    signature: void unmap_msr_bitmap(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:791,1
    - Dst: unmap_msr_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:794,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:795,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:797,1
    - Dst: hvm_map_guest_frame_ro
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 803
    functionName: __must_check::_map_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - unmap_msr_bitmap
    - IS_ALIGNED
    - get_vvmcs
    - hvm_map_guest_frame_ro
    linkageType: ''
    returnType: bool
    signature: bool __must_check _map_msr_bitmap(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:807,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 814
    functionName: unmap_io_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - hvm_unmap_guest_frame
    linkageType: ''
    returnType: void
    signature: void unmap_io_bitmap(struct vcpu *v, unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:818,1
    - Dst: unmap_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:823,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:824,1
    - Dst: hvm_map_guest_frame_ro
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - vmcs_reg
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 828
    functionName: __must_check::_map_io_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - unmap_io_bitmap
    - get_vvmcs
    - hvm_map_guest_frame_ro
    linkageType: ''
    returnType: bool
    signature: bool __must_check _map_io_bitmap(struct vcpu *v, u64 vmcs_reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __must_check::_map_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:832,1
    - Dst: __must_check::_map_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 4
    functionLinenumber: 830
    functionLinenumberEnd: 834
    functionName: __must_check::map_io_bitmap_all
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __must_check::_map_io_bitmap
    linkageType: ''
    returnType: bool
    signature: bool __must_check map_io_bitmap_all(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:838,1
    - Dst: __clear_current_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:841,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:842,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:843,1
    - Dst: unmap_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:849,1
    - Dst: unmap_msr_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 852
    functionName: nvmx_purge_vvmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 2
    functionsReached:
    - vvmcx_valid
    - hvm_unmap_guest_frame
    - unmap_msr_bitmap
    - unmap_io_bitmap
    - __clear_current_vvmcs
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvmx_purge_vvmcs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:858,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 863
    functionName: nvmx_get_tsc_offset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: u64
    signature: u64 nvmx_get_tsc_offset(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:980,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - field
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 981
    functionName: vvmcs_to_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vvmcs_to_shadow(const struct vcpu *v, unsigned int field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:986,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:994,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:995,1
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1000,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1002,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1003,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1006,1
    - Dst: vvmcs_to_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1012,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - v
    - n
    - field
    argTypes:
    - struct vcpu*
    - unsigned int
    - u16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1013
    functionName: vvmcs_to_shadow_bulk
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcs_to_shadow
    - virtual_vmcs_exit
    - IS_ENABLED
    - virtual_vmcs_enter
    - printk_once
    - this_cpu
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: void
    signature: "void vvmcs_to_shadow_bulk(struct vcpu *v, unsigned int n,\n                                 const
      u16 *field)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmread_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1019,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - field
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1021
    functionName: shadow_to_vvmcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - set_vvmcs
    - vmread_safe
    linkageType: ''
    returnType: void
    signature: void shadow_to_vvmcs(const struct vcpu *v, unsigned int field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1026,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1034,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1035,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1041,1
    - Dst: virtual_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1043,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1045,1
    - Dst: virtual_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1046,1
    - Dst: shadow_to_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - v
    - n
    - field
    argTypes:
    - struct vcpu*
    - unsigned int
    - u16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1053
    functionName: shadow_to_vvmcs_bulk
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - virtual_vmcs_exit
    - shadow_to_vvmcs
    - IS_ENABLED
    - virtual_vmcs_enter
    - printk_once
    - this_cpu
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: void
    signature: "void shadow_to_vvmcs_bulk(struct vcpu *v, unsigned int n,\n                                 const
      u16 *field)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvmx_update_pin_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1062,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1063,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1064,1
    - Dst: nvmx_update_exit_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1065,1
    - Dst: nvmx_update_entry_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1066,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1067,1
    - Dst: nvmx_update_apic_access_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1068,1
    - Dst: nvmx_update_virtual_apic_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1069,1
    - Dst: nvmx_update_tpr_threshold
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1070,1
    - Dst: nvmx_update_pfec
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1055
    functionDepth: 4
    functionLinenumber: 1055
    functionLinenumberEnd: 1072
    functionName: load_shadow_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - nvmx_update_pin_control
    - vmx_update_cpu_exec_control
    - nvmx_update_pfec
    - nvmx_update_tpr_threshold
    - nvmx_update_apic_access_address
    - nvmx_update_virtual_apic_address
    - vmx_update_exception_bitmap
    - nvmx_update_entry_control
    - vmx_update_secondary_exec_control
    - nvmx_update_exit_control
    linkageType: ''
    returnType: void
    signature: void load_shadow_control(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1076,1
    - Dst: vvmcs_to_shadow_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1088,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1088,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1091,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1092,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1094,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1094,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1096,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1098,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1098,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1100,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1102,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1102,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1104,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1106,1
    - Dst: hvm_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1108,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1108,1
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1111,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1112,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1114,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1117,1
    - Dst: vvmcs_to_shadow_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1119,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1119,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1126,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1127,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1128,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1129,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1131,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1132,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1133,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1134,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1074
    functionDepth: 6
    functionLinenumber: 1074
    functionLinenumberEnd: 1140
    functionName: load_shadow_guest_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcs_to_shadow_bulk
    - ARRAY_SIZE
    - hvm_inject_hw_exception
    - hvm_set_tsc_offset
    - hvm_set_cr4
    - hvm_msr_write_intercept
    - hvm_set_cr0
    - get_vvmcs
    - __vmwrite
    - hvm_set_guest_pat
    - hvm_set_cr3
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void load_shadow_guest_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1144,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1147,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1149
    functionName: get_shadow_eptp
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - p2m_get_pagetable
    - p2m_get_nestedp2m
    - pagetable_get_pfn
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_shadow_eptp(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1154
    functionName: get_host_eptp
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - p2m_get_hostp2m
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_host_eptp(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1164
    functionName: nvmx_vpid_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_vvmcs
    linkageType: ''
    returnType: bool
    signature: bool nvmx_vpid_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1170,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1174,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1176,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1177,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1177,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1178,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - v
    - vvmcs
    argTypes:
    - struct vcpu*
    - struct vmcs_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1179
    functionName: nvmx_set_vmcs_pointer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - page_to_maddr
    - __vmwrite
    - __vmpclear
    linkageType: ''
    returnType: void
    signature: void nvmx_set_vmcs_pointer(struct vcpu *v, struct vmcs_struct *vvmcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1185,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1189,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1191,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1192,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - v
    - vvmcs
    argTypes:
    - struct vcpu*
    - struct vmcs_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1194
    functionName: nvmx_clear_vmcs_pointer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - __vmpclear
    linkageType: ''
    returnType: void
    signature: void nvmx_clear_vmcs_pointer(struct vcpu *v, struct vmcs_struct *vvmcs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1199,1
    - Dst: vmx_vmcs_switch
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1202,1
    - Dst: nestedhvm_vcpu_enter_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1204,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1219,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1220,1
    - Dst: load_shadow_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1227,1
    - Dst: load_shadow_guest_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1228,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1231,1
    - Dst: nvmx_ept_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1233,1
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1233,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1234,1
    - Dst: vvmcs_to_shadow_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1235,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1235,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1237,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1238,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1239,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1242,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1245,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1247,1
    - Dst: get_shadow_eptp
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1247,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1249,1
    - Dst: get_host_eptp
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1249,1
    - Dst: nvmx_vpid_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1252,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1254,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1255,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1259,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1196
    functionDepth: 7
    functionLinenumber: 1196
    functionLinenumberEnd: 1264
    functionName: virtual_vmentry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - get_shadow_eptp
    - hvm_long_mode_active
    - nvmx_vpid_enabled
    - ARRAY_SIZE
    - load_shadow_control
    - vvmcs_to_shadow_bulk
    - nvmx_ept_enabled
    - get_vvmcs
    - get_host_eptp
    - __vmwrite
    - vmx_vmcs_switch
    - vcpu_nestedhvm
    - paging_update_paging_modes
    - nestedhvm_paging_mode_hap
    - vcpu_2_nvmx
    - hvm_pae_enabled
    - nestedhvm_vcpu_enter_guestmode
    - hvm_asid_flush_vcpu_asid
    - load_shadow_guest_state
    linkageType: ''
    returnType: void
    signature: void virtual_vmentry(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shadow_to_vvmcs_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1269,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1269,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1272,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1273,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1276,1
    - Dst: shadow_to_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1277,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1282
    functionName: sync_vvmcs_guest_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - shadow_to_vvmcs
    - shadow_to_vvmcs_bulk
    - set_vvmcs
    - __n2_exec_control
    linkageType: ''
    returnType: void
    signature: void sync_vvmcs_guest_state(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1286,1
    - Dst: shadow_to_vvmcs_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1288,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1288,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1291,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1293,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1284
    functionDepth: 3
    functionLinenumber: 1284
    functionLinenumberEnd: 1296
    functionName: sync_vvmcs_ro
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - ARRAY_SIZE
    - shadow_to_vvmcs_bulk
    - get_vvmcs
    - set_vvmcs
    linkageType: ''
    returnType: void
    signature: void sync_vvmcs_ro(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1304,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1306,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1307,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1310,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1310,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1312,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1314,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1314,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1316,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1318,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1318,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1320,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1322,1
    - Dst: hvm_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1324,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1324,1
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1327,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1328,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1330,1
    - Dst: hvm_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1333,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1335,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1338,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1338,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1298
    functionDepth: 6
    functionLinenumber: 1298
    functionLinenumberEnd: 1339
    functionName: load_vvmcs_host_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - hvm_inject_hw_exception
    - hvm_set_tsc_offset
    - hvm_set_cr4
    - hvm_msr_write_intercept
    - hvm_set_cr0
    - get_vvmcs
    - virt_to_maddr
    - set_vvmcs
    - __vmwrite
    - hvm_set_guest_pat
    - hvm_set_cr3
    linkageType: ''
    returnType: void
    signature: void load_vvmcs_host_state(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1343,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1344,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1349,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1353,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1354,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1355,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1364,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1365,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1368,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1369,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1370,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1377
    functionName: sync_exception_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - gdprintk
    - get_vvmcs
    - set_vvmcs
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void sync_exception_state(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1381,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1382,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1383,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1395,1
    - Dst: vlapic_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1401,1
    - Dst: vlapic_set_ppr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1403,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1404,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1410,1
    - Dst: vlapic_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1412,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1421,1
    - Dst: vmx_sync_exit_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1379
    functionDepth: 5
    functionLinenumber: 1379
    functionLinenumberEnd: 1424
    functionName: nvmx_update_apicv
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - WARN_ON
    - vlapic_has_pending_irq
    - get_vvmcs
    - vmx_sync_exit_bitmap
    - vlapic_ack_pending_irq
    - vcpu_vlapic
    - __vmwrite
    - vlapic_set_ppr
    - __vmread
    linkageType: ''
    returnType: void
    signature: void nvmx_update_apicv(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1429,1
    - Dst: sync_vvmcs_ro
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1432,1
    - Dst: sync_vvmcs_guest_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1433,1
    - Dst: sync_exception_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1434,1
    - Dst: nvmx_ept_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1436,1
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1436,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1437,1
    - Dst: shadow_to_vvmcs_bulk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1438,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1438,1
    - Dst: np2m_schedule
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1441,1
    - Dst: vmx_vmcs_switch
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1443,1
    - Dst: nestedhvm_vcpu_exit_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1445,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1449,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1450,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1457,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1458,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1459,1
    - Dst: load_vvmcs_host_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1461,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1464,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1466,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1467,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1472,1
    - Dst: nvmx_update_apicv
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1426
    functionDepth: 7
    functionLinenumber: 1426
    functionLinenumberEnd: 1478
    functionName: virtual_vmexit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - sync_vvmcs_ro
    - shadow_to_vvmcs_bulk
    - np2m_schedule
    - sync_vvmcs_guest_state
    - hvm_long_mode_active
    - load_vvmcs_host_state
    - ARRAY_SIZE
    - sync_exception_state
    - nvmx_update_apicv
    - nestedhvm_vcpu_exit_guestmode
    - vmx_update_cpu_exec_control
    - nvmx_ept_enabled
    - get_vvmcs
    - __vmwrite
    - vmx_vmcs_switch
    - vcpu_nestedhvm
    - paging_update_paging_modes
    - hvm_pae_enabled
    - vmx_update_exception_bitmap
    - vmx_update_secondary_exec_control
    linkageType: ''
    returnType: void
    signature: void virtual_vmexit(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1484,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1485,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1486,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1487,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1496,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1497,1
    - Dst: get_shadow_eptp
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1498
    functionName: nvmx_eptp_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - nestedhvm_paging_mode_hap
    - get_shadow_eptp
    - nestedhvm_vcpu_in_guestmode
    - __vmwrite
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvmx_eptp_update(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1503,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1504,1
    - Dst: nvmx_eptp_update
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1506,1
    - Dst: vcpu_ioreq_pending
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1516,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1524,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1527,1
    - Dst: virtual_vmexit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1528,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1529,1
    - Dst: virtual_vmentry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1500
    functionDepth: 8
    functionLinenumber: 1500
    functionLinenumberEnd: 1531
    functionName: nvmx_switch_guest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_ioreq_pending
    - guest_cpu_user_regs
    - virtual_vmexit
    - virtual_vmentry
    - nvmx_eptp_update
    - unlikely
    - nestedhvm_vcpu_in_guestmode
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvmx_switch_guest(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1540,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1541,1
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1547,1
    - Dst: nvmx_vcpu_in_vmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1551,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1553,1
    - Dst: gfn_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1557,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1557,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1559,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1563,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1568,1
    - Dst: __vmpclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1579,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1580,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1580,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1580,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1581,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1581,1
    - Dst: __vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1582,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1584,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1537
    functionDepth: 6
    functionLinenumber: 1537
    functionLinenumberEnd: 1587
    functionName: nvmx_handle_vmxon
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - copy_domain_page
    - vmfail_invalid
    - __vmptrld
    - decode_vmx_inst
    - gfn_valid
    - _gfn
    - _mfn
    - vmfail
    - __vmpclear
    - vmsucceed
    - PFN_DOWN
    - hvm_copy_from_guest_phys
    - nvmx_vcpu_in_vmx
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmxon(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1592,1
    - Dst: nvmx_purge_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1594,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1589
    functionDepth: 3
    functionLinenumber: 1589
    functionLinenumberEnd: 1599
    functionName: nvmx_handle_vmxoff
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - vmsucceed
    - nvmx_purge_vvmcs
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmxoff(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - launched_list
    - vvmcs_mfn
    argTypes:
    - struct list_head*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1619
    functionName: vvmcs_launched
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: bool
    signature: "bool vvmcs_launched(struct list_head *launched_list,\n                           unsigned
      long vvmcs_mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1616
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 3
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each(pos, launched_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1626,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1629,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - launched_list
    - vvmcs_mfn
    argTypes:
    - struct list_head*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1637
    functionName: set_vvmcs_launched
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - vvmcs_launched
    - list_add
    linkageType: ''
    returnType: int
    signature: "int set_vvmcs_launched(struct list_head *launched_list,\n                              unsigned
      long vvmcs_mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1647,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1650,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - launched_list
    - vvmcs_mfn
    argTypes:
    - struct list_head*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1655
    functionName: clear_vvmcs_launched
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - list_del
    - xfree
    - list_entry
    linkageType: ''
    returnType: void
    signature: "void clear_vvmcs_launched(struct list_head *launched_list,\n                                 paddr_t
      vvmcs_mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1647,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1650,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1654
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 3
    functionsReached:
    - list_del
    - xfree
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each(pos, launched_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1659,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1660,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1663,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1663,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1664,1
    - Dst: map_io_bitmap_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1669,1
    - Dst: _map_msr_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1675,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1685
    functionName: nvmx_vmresume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - _map_msr_bitmap
    - vvmcx_valid
    - map_io_bitmap_all
    - vcpu_nestedhvm
    - ASSERT
    - __n2_exec_control
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: enum vmx_insn_errno nvmx_vmresume(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1691,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1695,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1697,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1701,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1704,1
    - Dst: vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1708,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1709,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1712,1
    - Dst: nvmx_vmresume
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1716,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1687
    functionDepth: 3
    functionLinenumber: 1687
    functionLinenumberEnd: 1721
    functionName: nvmx_handle_vmresume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - vvmcx_valid
    - vmfail_invalid
    - vvmcs_launched
    - vmfail_valid
    - nvmx_vmresume
    - PFN_DOWN
    - __vmread
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmresume(struct cpu_user_regs *regs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1727,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1731,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1733,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1737,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1740,1
    - Dst: vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1744,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1745,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1748,1
    - Dst: nvmx_vmresume
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1752,1
    - Dst: vmfail_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1754,1
    - Dst: set_vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1757,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1758,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1723
    functionDepth: 3
    functionLinenumber: 1723
    functionLinenumberEnd: 1764
    functionName: nvmx_handle_vmlaunch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - vvmcx_valid
    - vmfail_invalid
    - vvmcs_launched
    - vmfail_valid
    - nvmx_vmresume
    - PFN_DOWN
    - set_vvmcs_launched
    - __vmread
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmlaunch(struct cpu_user_regs *regs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1770,1
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1774,1
    - Dst: gfn_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1778,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1778,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1780,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1784,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1786,1
    - Dst: nvmx_purge_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1791,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1793,1
    - Dst: hvm_map_guest_frame_rw
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1796,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1796,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1809,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1810,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1817,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1817,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1821,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1828,1
    - Dst: nvmx_set_vmcs_pointer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1834,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1836,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1766
    functionDepth: 6
    functionLinenumber: 1766
    functionLinenumberEnd: 1840
    functionName: nvmx_handle_vmptrld
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - vvmcx_valid
    - nvmx_set_vmcs_pointer
    - hvm_unmap_guest_frame
    - nvmx_purge_vvmcs
    - mfn_to_maddr
    - decode_vmx_inst
    - gfn_valid
    - vmfail
    - paddr_to_pfn
    - domain_page_map_to_mfn
    - gaddr_to_gfn
    - vmsucceed
    - hvm_map_guest_frame_rw
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmptrld(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1846,1
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1851,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1857,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1859,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1842
    functionDepth: 6
    functionLinenumber: 1842
    functionLinenumberEnd: 1865
    functionName: nvmx_handle_vmptrst
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - decode_vmx_inst
    - hvm_copy_to_guest_linear
    - vmsucceed
    - hvm_inject_page_fault
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmptrst(struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1871,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1872,1
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1877,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1881,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1883,1
    - Dst: gfn_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1887,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1887,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1889,1
    - Dst: nvmx_clear_vmcs_pointer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1896,1
    - Dst: clear_vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1897,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1898,1
    - Dst: nvmx_purge_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1899,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1900,1
    - Dst: hvm_map_guest_frame_rw
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1907,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1907,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1911,1
    - Dst: clear_vvmcs_launched
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1917,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1918,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1918,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1919,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1922,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1924,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1867
    functionDepth: 6
    functionLinenumber: 1867
    functionLinenumberEnd: 1929
    functionName: nvmx_handle_vmclear
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - clear_vvmcs_launched
    - nvmx_clear_vmcs_pointer
    - hvm_unmap_guest_frame
    - nvmx_purge_vvmcs
    - decode_vmx_inst
    - gfn_valid
    - mfn_x
    - vmfail
    - vmsucceed
    - paddr_to_pfn
    - gaddr_to_gfn
    - domain_page_map_to_mfn
    - PFN_DOWN
    - hvm_map_guest_frame_rw
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmclear(struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1939,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1943,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1945,1
    - Dst: get_vvmcs_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1949,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1949,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1952,1
    - Dst: hvm_copy_to_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1958,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1960,1
    - Dst: reg_write
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1965,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1969,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1931
    functionDepth: 6
    functionLinenumber: 1931
    functionLinenumberEnd: 1971
    functionName: nvmx_handle_vmread
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - reg_write
    - vvmcx_valid
    - vmfail_invalid
    - decode_vmx_inst
    - hvm_copy_to_guest_linear
    - vmfail
    - vmsucceed
    - reg_read
    - get_vvmcs_safe
    - hvm_inject_page_fault
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmread(struct cpu_user_regs *regs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1982,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1986,1
    - Dst: vmfail_invalid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1988,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1992,1
    - Dst: set_vvmcs_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1993,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:1996,1
    - Dst: VMCS_HIGH
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2000,1
    - Dst: unmap_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2003,1
    - Dst: unmap_io_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2006,1
    - Dst: unmap_msr_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2009,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1973
    functionDepth: 6
    functionLinenumber: 1973
    functionLinenumberEnd: 2016
    functionName: nvmx_handle_vmwrite
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vvmcx_valid
    - vmfail_invalid
    - unmap_msr_bitmap
    - decode_vmx_inst
    - VMCS_HIGH
    - unmap_io_bitmap
    - vmfail
    - vmsucceed
    - set_vvmcs_safe
    - reg_read
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmwrite(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2024,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2027,1
    - Dst: np2m_flush_base
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2031,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2035,1
    - Dst: __invept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2036,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2039,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2042,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2018
    functionDepth: 6
    functionLinenumber: 2018
    functionLinenumberEnd: 2044
    functionName: nvmx_handle_invept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - np2m_flush_base
    - decode_vmx_inst
    - __invept
    - vmfail
    - vmsucceed
    - reg_read
    - p2m_flush_nestedp2m
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_invept(struct cpu_user_regs *regs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: decode_vmx_inst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2052,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2055,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2061,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2061,1
    - Dst: vmfail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2064,1
    - Dst: vmsucceed
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2046
    functionDepth: 6
    functionLinenumber: 2046
    functionLinenumberEnd: 2070
    functionName: nvmx_handle_invvpid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - decode_vmx_inst
    - vmfail
    - vmsucceed
    - reg_read
    - hvm_asid_flush_vcpu_asid
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_invvpid(struct cpu_user_regs *regs)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2078,1
    - Dst: vmx_guest_x86_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2079,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2080,1
    - Dst: nvmx_vcpu_in_vmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2081,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2083,1
    - Dst: vmx_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2087,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2089,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2093,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2096,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2097,1
    - Dst: nvmx_handle_vmxoff
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2104,1
    - Dst: nvmx_handle_vmxon
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2108,1
    - Dst: nvmx_handle_vmclear
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2112,1
    - Dst: nvmx_handle_vmptrld
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2116,1
    - Dst: nvmx_handle_vmptrst
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2120,1
    - Dst: nvmx_handle_vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2124,1
    - Dst: nvmx_handle_vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2128,1
    - Dst: nvmx_handle_vmlaunch
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2132,1
    - Dst: nvmx_handle_vmresume
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2136,1
    - Dst: nvmx_handle_invept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2140,1
    - Dst: nvmx_handle_invvpid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2144,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2148,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2149,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - regs
    - exit_reason
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2072
    functionDepth: 7
    functionLinenumber: 2072
    functionLinenumberEnd: 2155
    functionName: nvmx_handle_vmx_insn
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - nvmx_handle_vmxon
    - nestedhvm_enabled
    - hvm_long_mode_active
    - vmx_get_cpl
    - nvmx_handle_vmread
    - nvmx_handle_vmptrst
    - nvmx_handle_vmresume
    - domain_crash
    - nestedhvm_vcpu_in_guestmode
    - nvmx_handle_vmxoff
    - nvmx_handle_vmclear
    - hvm_inject_hw_exception
    - ASSERT_UNREACHABLE
    - nvmx_handle_vmwrite
    - nvmx_handle_vmlaunch
    - nvmx_handle_vmptrld
    - nvmx_handle_invept
    - nvmx_handle_invvpid
    - nvmx_vcpu_in_vmx
    - vmx_guest_x86_mode
    linkageType: ''
    returnType: int
    signature: int nvmx_handle_vmx_insn(struct cpu_user_regs *regs, unsigned int exit_reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enable1
    - ','
    - default1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2159
    functionName: __emul_value
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __emul_value(enable1, default1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enable1
    - ','
    - default1
    - ','
    - host_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2163
    functionName: gen_vmx_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gen_vmx_msr(enable1, default1, host_value)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2175,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2209,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2218,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2218,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2218,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2222,1
    - Dst: gen_vmx_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2239,1
    - Dst: gen_vmx_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2273,1
    - Dst: gen_vmx_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2283,1
    - Dst: gen_vmx_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2296,1
    - Dst: gen_vmx_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2305,1
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2325,1
    - Dst: nept_get_ept_vpid_cap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2332,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2341
    functionName: nvmx_msr_read_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - nestedhvm_enabled
    - _mfn
    - rdmsrl
    - hvm_cr4_guest_valid_bits
    - nept_get_ept_vpid_cap
    - gen_vmx_msr
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2357,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2359,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2361,1
    - Dst: nept_translate_l2ga
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2362,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2380,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2381,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - v
    - L2_gpa
    - L1_gpa
    - page_order
    - p2m_acc
    - npfec
    argTypes:
    - struct vcpu*
    - paddr_t
    - paddr_t*
    - unsigned int*
    - uint8_t*
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2347
    functionDepth: 4
    functionLinenumber: 2347
    functionLinenumberEnd: 2388
    functionName: nvmx_hap_walk_L1_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - gdprintk
    - BUG
    - vmx_vmcs_enter
    - vmx_vmcs_exit
    - nept_translate_l2ga
    - __vmread
    linkageType: ''
    returnType: int
    signature: "int nvmx_hap_walk_L1_p2m(\n    struct vcpu *v, paddr_t L2_gpa, paddr_t
      *L1_gpa, unsigned int *page_order,\n    uint8_t *p2m_acc, struct npfec npfec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2393,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2394,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2397,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2398,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2405,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2410,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2413,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2414,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2424,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2390
    functionDepth: 1
    functionLinenumber: 2390
    functionLinenumberEnd: 2427
    functionName: nvmx_idtv_handling
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - likely
    - __vmwrite
    - __vmread
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvmx_idtv_handling(void)
  - BBCount: 94
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2440,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2441,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2452,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2458,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2466,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2476,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2516,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2523,1
    - Dst: vmx_msr_is_intercepted
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2526,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2531,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2537,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2551,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2558,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2563,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2568,1
    - Dst: __n2_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2574,1
    - Dst: __n2_pin_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2579,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2585,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2591,1
    - Dst: msr_split
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2600,1
    - Dst: hvm_get_guest_tsc
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2600,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2600,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2603,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2609,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2614,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2619,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2624,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2629,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2635,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2644,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2646,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2650,1
    - Dst: reg_read
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2680,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2684,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2686,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2692,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2694,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2700,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2702,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2708,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2710,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2721,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2727,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2729,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2736,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2738,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2747,1
    - Dst: set_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2749,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2755,1
    - Dst: __n2_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2762,1
    - Dst: __n2_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2767,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2772,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2774,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 231
    argCount: 2
    argNames:
    - regs
    - exit_reason
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2436
    functionDepth: 3
    functionLinenumber: 2436
    functionLinenumberEnd: 2779
    functionName: nvmx_n2_vmexit_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - __n2_pin_exec_control
    - gprintk
    - hvm_get_guest_tsc
    - paging_mode_hap
    - MASK_INSR
    - reg_read
    - vmx_msr_is_intercepted
    - printk
    - domain_crash
    - __n2_exec_control
    - update_guest_eip
    - ASSERT
    - get_vvmcs
    - ASSERT_UNREACHABLE
    - vcpu_nestedhvm
    - vcpu_2_nvmx
    - __n2_secondary_exec_control
    - msr_split
    - set_vvmcs
    - __vmread
    linkageType: ''
    returnType: int
    signature: "int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs,\n                               unsigned
      int exit_reason)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2798,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2802,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2805,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2817,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c:2821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - v
    - cr
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2781
    functionDepth: 1
    functionLinenumber: 2781
    functionLinenumberEnd: 2822
    functionName: nvmx_set_cr_read_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - get_vvmcs
    - __vmwrite
    - nestedhvm_vmswitch_in_progress
    linkageType: ''
    returnType: void
    signature: void nvmx_set_cr_read_shadow(struct vcpu *v, unsigned int cr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hvm_function_table
    argTypes:
    - struct hvm_function_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2824
    functionDepth: 0
    functionLinenumber: 2824
    functionLinenumberEnd: 2829
    functionName: start_nested_vmx
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void start_nested_vmx(struct hvm_function_table *hvm_function_table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:98,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:98,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:99,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: vmx_pi_per_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - INIT_LIST_HEAD
    - per_cpu
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: void vmx_pi_per_cpu_init(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:108,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:111,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:112,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:120,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:122,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:123,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:124,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:126,1
    - Dst: pi_test_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:126,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:128,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:130,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:131,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: vmx_vcpu_block
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - spin_lock_irqsave
    - cpu_physical_id
    - write_atomic
    - spin_unlock_irqrestore
    - pi_test_sn
    - ASSERT
    - per_cpu
    - cmpxchg
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_block(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:140,1
    - Dst: pi_set_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 144
    functionName: vmx_pi_switch_from
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - test_bit
    - pi_set_sn
    linkageType: ''
    returnType: void
    signature: void vmx_pi_switch_from(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:149,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:151,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:152,1
    - Dst: pi_clear_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: vmx_pi_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - cpu_physical_id
    - pi_clear_sn
    - MASK_INSR
    linkageType: ''
    returnType: void
    signature: void vmx_pi_switch_to(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:168,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:173,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:179,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:187,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:188,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 193
    functionName: vmx_pi_unblock_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - spin_lock_irqsave
    - smp_rmb
    - spin_unlock_irqrestore
    - ASSERT
    - list_del
    linkageType: ''
    returnType: void
    signature: void vmx_pi_unblock_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:197,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:197,1
    - Dst: vmx_pi_unblock_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: vmx_pi_do_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - test_bit
    - vmx_pi_unblock_vcpu
    linkageType: ''
    returnType: void
    signature: void vmx_pi_do_resume(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:207,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:208,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:219,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:221,1
    - Dst: pi_set_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:227,1
    - Dst: pi_test_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:234,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:236,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:248,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:249,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:251,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:253,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:255,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:256,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:257,1
    - Dst: list_move
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:259,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:260,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:263,1
    - Dst: pi_clear_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:266,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 270
    functionName: vmx_pi_desc_fixup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - MASK_INSR
    - spin_lock_irqsave
    - pi_set_sn
    - cpu_physical_id
    - write_atomic
    - list_move
    - pi_clear_sn
    - spin_unlock_irqrestore
    - spin_lock
    - ASSERT
    - list_for_each_entry_safe
    - per_cpu
    - list_del
    - pi_test_on
    - cpumask_any
    linkageType: ''
    returnType: void
    signature: void vmx_pi_desc_fixup(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:320,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:323,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:338,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:345,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 350
    functionName: vmx_pi_hooks_assign
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - cpu_physical_id
    - ASSERT
    - cmpxchg
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void vmx_pi_hooks_assign(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:338,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:345,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 347
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 21
    functionsReached:
    - cpu_physical_id
    - cmpxchg
    - MASK_INSR
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:357,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:360,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:368,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:369,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:388,1
    - Dst: vmx_pi_unblock_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:389,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 392
    functionName: vmx_pi_hooks_deassign
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - for_each_vcpu
    - domain_pause
    - ASSERT
    - vmx_pi_unblock_vcpu
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void vmx_pi_hooks_deassign(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:407,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:421,1
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:423,1
    - Dst: iommu_update_ire_from_msi
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:425,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:432,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - v
    - pirq
    - gvec
    argTypes:
    - struct vcpu*
    - struct pirq*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 442
    functionName: vmx_pi_update_irte
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - pirq_spin_lock_irq_desc
    - iommu_update_ire_from_msi
    - spin_unlock_irq
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int vmx_pi_update_irte(const struct vcpu *v,\n                                       const
      struct pirq *pirq, uint8_t gvec)"
  - BBCount: 57
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 574
    functionName: get_model_specific_lbr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct lbr_info
    signature: struct lbr_info *__init get_model_specific_lbr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:591,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:593,1
    - Dst: vmx_alloc_vlapic_mapping
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 599
    functionName: vmx_domain_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_alloc_vlapic_mapping
    - spin_lock_init
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vmx_domain_initialise(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_free_vlapic_mapping
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: vmx_domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_free_vlapic_mapping
    linkageType: ''
    returnType: void
    signature: void vmx_domain_relinquish_resources(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:608,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:612,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:612,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:615,1
    - Dst: epte_get_entry_emt
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:615,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:617,1
    - Dst: set_mmio_p2m_entry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:619,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 621
    functionName: domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - _mfn
    - epte_get_entry_emt
    - set_mmio_p2m_entry
    - gaddr_to_gfn
    - ASSERT
    - mfn_eq
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void domain_creation_finished(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:632,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: vmx_init_ipt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void vmx_init_ipt(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:643,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:645,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:647,1
    - Dst: vmx_create_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:649,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:651,1
    - Dst: vmx_domain_pml_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:670,1
    - Dst: vmx_vcpu_enable_pml
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:672,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:674,1
    - Dst: vmx_destroy_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:675,1
    - Dst: vmx_install_vlapic_mapping
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:680,1
    - Dst: vmx_init_ipt
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 684
    functionName: vmx_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - vmx_init_ipt
    - vmx_install_vlapic_mapping
    - vmx_create_vmcs
    - vmx_domain_pml_enabled
    - INIT_LIST_HEAD
    - vmx_destroy_vmcs
    - spin_lock_init
    - dprintk
    - vmx_vcpu_enable_pml
    linkageType: ''
    returnType: int
    signature: int vmx_vcpu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vcpu_disable_pml
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:695,1
    - Dst: vmx_destroy_vmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 686
    functionDepth: 5
    functionLinenumber: 686
    functionLinenumberEnd: 697
    functionName: vmx_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vcpu_disable_pml
    - vmx_destroy_vmcs
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_destroy(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:708,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:712,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:713,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:713,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: vmx_restore_host_msrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - this_cpu
    - wrmsrl
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void vmx_restore_host_msrs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_gs_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:726,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:731,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:732,1
    - Dst: rdpkrs_and_cache
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: vmx_save_guest_msrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - rdpkrs_and_cache
    - rdmsrl
    - read_gs_shadow
    linkageType: ''
    returnType: void
    signature: void vmx_save_guest_msrs(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_gs_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:745,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:746,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:747,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:748,1
    - Dst: wrmsr_tsc_aux
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:751,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:756,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:756,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:757,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:758,1
    - Dst: wrpkrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 764
    functionName: vmx_restore_guest_msrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - wrmsr_tsc_aux
    - wrpkrs
    - write_gs_shadow
    - wrmsrl
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: void vmx_restore_guest_msrs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:768,1
    - Dst: nvmx_update_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:769,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: vmx_update_cpu_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 5
    functionsReached:
    - nvmx_update_exec_control
    - nestedhvm_vcpu_in_guestmode
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_update_cpu_exec_control(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:776,1
    - Dst: nvmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:777,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: vmx_update_secondary_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 3
    functionsReached:
    - nestedhvm_vcpu_in_guestmode
    - __vmwrite
    - nvmx_update_secondary_exec_control
    linkageType: ''
    returnType: void
    signature: void vmx_update_secondary_exec_control(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 788
    functionName: vmx_update_tertiary_exec_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_update_tertiary_exec_control(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:792,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:795,1
    - Dst: nvmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:796,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: vmx_update_exception_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 5
    functionsReached:
    - nestedhvm_vcpu_in_guestmode
    - nvmx_update_exception_bitmap
    - __vmwrite
    - unlikely
    linkageType: ''
    returnType: void
    signature: void vmx_update_exception_bitmap(struct vcpu *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:812,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:813,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:818,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:824,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:830,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:836,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:849,1
    - Dst: vmx_add_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:853,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:860,1
    - Dst: vmx_del_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:863,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:879,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:884,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:886,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:890,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:892,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:895,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:897,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:900,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:904,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:905,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 801
    functionDepth: 5
    functionLinenumber: 801
    functionLinenumberEnd: 907
    functionName: vmx_cpuid_policy_changed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_set_msr_intercept
    - vmx_vmcs_enter
    - vmx_add_guest_msr
    - domain_crash
    - vmx_update_exception_bitmap
    - vmx_vmcs_exit
    - printk
    - vmx_del_msr
    - vmx_clear_msr_intercept
    - __vmwrite
    - vmx_update_secondary_exec_control
    linkageType: ''
    returnType: void
    signature: void vmx_cpuid_policy_changed(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:913,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:915,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:915,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:917,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:918,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:919,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 923
    functionName: vmx_guest_x86_mode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 2
    functionsReached:
    - guest_cpu_user_regs
    - likely
    - unlikely
    - hvm_long_mode_active
    - __vmread
    linkageType: ''
    returnType: int
    signature: int vmx_guest_x86_mode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:933,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:935,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:936,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:937,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:938,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:939,1
    - Dst: vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 942
    functionName: vmx_save_dr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - read_debugreg
    - vmread
    - vmx_update_cpu_exec_control
    linkageType: ''
    returnType: void
    signature: void vmx_save_dr(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:951,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:952,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:953,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:954,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 957
    functionName: __restore_debug_registers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - write_debugreg
    linkageType: ''
    returnType: void
    signature: void __restore_debug_registers(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:968,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 970
    functionName: vmx_restore_dr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __restore_debug_registers
    - unlikely
    linkageType: ''
    returnType: void
    signature: void vmx_restore_dr(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:976,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:978,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:979,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:980,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:982,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:984,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:984,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:988,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: vmx_vmcs_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - hvm_event_needs_reinjection
    - vmx_vmcs_exit
    - __vmread
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vmx_vmcs_save(struct vcpu *v, struct hvm_hw_cpu *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1000,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1004,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1008,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1013,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1014,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1014,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1017,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - v
    - cr0
    - cr3
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1024
    functionName: vmx_restore_cr0_cr3
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - hvm_paging_enabled
    - gdprintk
    - pagetable_from_page
    - paging_mode_shadow
    - pagetable_null
    - pagetable_get_page
    - put_page
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: "int vmx_restore_cr0_cr3(\n    struct vcpu *v, unsigned long cr0, unsigned
      long cr3)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1035,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1043,1
    - Dst: vmx_restore_cr0_cr3
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1049,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1053,1
    - Dst: vmx_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1056,1
    - Dst: vmx_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1057,1
    - Dst: vmx_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1060,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1062,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1063,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1064,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1066,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1069,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1071,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1073,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1074,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1078,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1079,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1081,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1083,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1026
    functionDepth: 4
    functionLinenumber: 1026
    functionLinenumberEnd: 1086
    functionName: vmx_vmcs_restore
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - paging_update_paging_modes
    - gdprintk
    - vmx_update_guest_cr
    - vmx_vmcs_enter
    - __vmwrite
    - hvm_event_needs_reinjection
    - vmx_vmcs_exit
    - dprintk
    - vmx_update_guest_efer
    - vmx_restore_cr0_cr3
    linkageType: ''
    returnType: int
    signature: int vmx_vmcs_restore(struct vcpu *v, struct hvm_hw_cpu *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1095
    functionName: vmx_save_cpu_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1104
    functionName: vmx_load_cpu_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_save_guest_msrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1110,1
    - Dst: vmx_save_cpu_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1112,1
    - Dst: vmx_vmcs_save
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1107
    functionDepth: 5
    functionLinenumber: 1107
    functionLinenumberEnd: 1114
    functionName: vmx_save_vmcs_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_save_guest_msrs
    - vmx_save_cpu_state
    - vmx_vmcs_save
    linkageType: ''
    returnType: void
    signature: void vmx_save_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1119,1
    - Dst: vmx_load_cpu_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1121,1
    - Dst: vmx_vmcs_restore
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1123,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1125,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1116
    functionDepth: 5
    functionLinenumber: 1116
    functionLinenumberEnd: 1131
    functionName: vmx_load_vmcs_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - vmx_load_cpu_state
    - ASSERT
    - vmx_vmcs_restore
    - domain_crash
    linkageType: ''
    returnType: int
    signature: int vmx_load_vmcs_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_restore_fpu_lazy
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1135,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1137,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 5
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: vmx_fpu_enter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_update_exception_bitmap
    - __vmwrite
    - vcpu_restore_fpu_lazy
    linkageType: ''
    returnType: void
    signature: void vmx_fpu_enter(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1144,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1145,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1145,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1150,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1162,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1142
    functionDepth: 5
    functionLinenumber: 1142
    functionLinenumberEnd: 1166
    functionName: vmx_fpu_leave
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - read_cr0
    - vmx_update_exception_bitmap
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_fpu_leave(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1175,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1175,1
    - Dst: vmx_vmcs_reload
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1187,1
    - Dst: vmx_fpu_leave
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1191,1
    - Dst: vmx_save_guest_msrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1192,1
    - Dst: vmx_restore_host_msrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1193,1
    - Dst: vmx_save_dr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1194,1
    - Dst: vmx_pi_switch_from
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1198
    functionName: vmx_ctxt_switch_from
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_save_guest_msrs
    - unlikely
    - vmx_save_dr
    - vmx_fpu_leave
    - vmx_vmcs_reload
    - vmx_restore_host_msrs
    - this_cpu
    - vmx_pi_switch_from
    linkageType: ''
    returnType: void
    signature: void vmx_ctxt_switch_from(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_restore_guest_msrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1202,1
    - Dst: vmx_restore_dr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1203,1
    - Dst: vmx_pi_switch_to
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1207
    functionName: vmx_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_pi_switch_to
    - vmx_restore_guest_msrs
    - vmx_restore_dr
    linkageType: ''
    returnType: void
    signature: void vmx_ctxt_switch_to(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1214,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1217
    functionName: vmx_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - __vmread
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vmx_get_cpl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1223,1
    - Dst: vmx_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1224,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1219
    functionDepth: 4
    functionLinenumber: 1219
    functionLinenumberEnd: 1228
    functionName: _vmx_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - vmx_get_cpl
    - vmx_vmcs_enter
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _vmx_get_cpl(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1257,1
    - Dst: vmx_vmcs_try_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1257,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1259,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1264,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1274,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1275,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1276,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1277,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1286,1
    - Dst: GUEST_SEG_SELECTOR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1286,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1287,1
    - Dst: GUEST_SEG_AR_BYTES
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1287,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1292,1
    - Dst: GUEST_SEG_LIMIT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1292,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1293,1
    - Dst: GUEST_SEG_BASE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1293,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1297,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1245
    functionDepth: 3
    functionLinenumber: 1245
    functionLinenumberEnd: 1340
    functionName: vmx_get_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - BUG
    - GUEST_SEG_BASE
    - GUEST_SEG_SELECTOR
    - GUEST_SEG_LIMIT
    - GUEST_SEG_AR_BYTES
    - BUILD_BUG_ON
    - vmx_vmcs_try_enter
    - printk_once
    - vmx_vmcs_exit
    - unlikely
    - memset
    - __vmread
    linkageType: ''
    returnType: void
    signature: "void vmx_get_segment_register(\n    struct vcpu *v, enum x86_segment
      seg, struct segment_register *reg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hvm_prepare_vm86_tss
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1372,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1373,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1405,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1415,1
    - Dst: GUEST_SEG_SELECTOR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1415,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1416,1
    - Dst: GUEST_SEG_AR_BYTES
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1416,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1421,1
    - Dst: GUEST_SEG_LIMIT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1421,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1422,1
    - Dst: GUEST_SEG_BASE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1422,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1426,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1429,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1430
    functionName: vmx_set_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - BUG
    - vmx_vmcs_enter
    - GUEST_SEG_SELECTOR
    - __vmwrite
    - GUEST_SEG_LIMIT
    - GUEST_SEG_AR_BYTES
    - vmx_vmcs_exit
    - cmpxchg
    - GUEST_SEG_BASE
    - hvm_prepare_vm86_tss
    linkageType: ''
    returnType: void
    signature: "void vmx_set_segment_register(\n    struct vcpu *v, enum x86_segment
      seg, struct segment_register *reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1434,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1435,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1438,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1439,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - gpat
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1432
    functionDepth: 4
    functionLinenumber: 1432
    functionLinenumberEnd: 1442
    functionName: vmx_set_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - paging_mode_shadow
    - vmx_vmcs_exit
    - unlikely
    - __vmwrite
    linkageType: ''
    returnType: int
    signature: int vmx_set_guest_pat(struct vcpu *v, u64 gpat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1446,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1447,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1450,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1451,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - gpat
    argTypes:
    - struct vcpu*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1444
    functionDepth: 4
    functionLinenumber: 1444
    functionLinenumberEnd: 1454
    functionName: vmx_get_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - paging_mode_shadow
    - vmx_vmcs_exit
    - unlikely
    - __vmread
    linkageType: ''
    returnType: int
    signature: int vmx_get_guest_pat(struct vcpu *v, u64 *gpat)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_pat_not_equal
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1472
    functionName: domain_exit_uc_mode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - mtrr_pat_not_equal
    linkageType: ''
    returnType: bool
    signature: bool domain_exit_uc_mode(const struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_pat_not_equal
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1469
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 22
    functionsReached:
    - mtrr_pat_not_equal
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, vs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_blow_tables_per_domain
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - is_in_uc_mode
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1474
    functionDepth: 0
    functionLinenumber: 1474
    functionLinenumberEnd: 1478
    functionName: set_uc_mode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - shadow_blow_tables_per_domain
    linkageType: ''
    returnType: void
    signature: void set_uc_mode(struct domain *d, bool is_in_uc_mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1487,1
    - Dst: domain_pause_nosync
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1492,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1495,1
    - Dst: set_uc_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1496,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1498,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1500,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1506,1
    - Dst: domain_exit_uc_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1509,1
    - Dst: set_uc_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1510,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1514
    functionName: shadow_handle_cd
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - spin_unlock
    - domain_pause_nosync
    - domain_exit_uc_mode
    - spin_lock
    - flush_all
    - set_uc_mode
    linkageType: ''
    returnType: void
    signature: void shadow_handle_cd(struct vcpu *v, unsigned long value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1518,1
    - Dst: shadow_handle_cd
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1525,1
    - Dst: vmx_get_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1547,1
    - Dst: vmx_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1548,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1549,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1551,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1552,1
    - Dst: vmx_set_guest_pat
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1558,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1559,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1560,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1516
    functionDepth: 5
    functionLinenumber: 1516
    functionLinenumberEnd: 1564
    functionName: vmx_handle_cd
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_set_msr_intercept
    - paging_mode_shadow
    - vmx_get_guest_pat
    - vmx_set_guest_pat
    - wbinvd
    - hvm_asid_flush_vcpu
    - vmx_clear_msr_intercept
    - shadow_handle_cd
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void vmx_handle_cd(struct vcpu *v, unsigned long value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1568,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1571,1
    - Dst: hvm_tsc_scaling_ratio
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1571,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1573,1
    - Dst: nvmx_get_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1574,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1576,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - v
    - offset
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1566
    functionDepth: 4
    functionLinenumber: 1566
    functionLinenumberEnd: 1578
    functionName: vmx_set_tsc_offset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - hvm_tsc_scaling_ratio
    - vmx_vmcs_exit
    - nestedhvm_vcpu_in_guestmode
    - __vmwrite
    - nvmx_get_tsc_offset
    linkageType: ''
    returnType: void
    signature: void vmx_set_tsc_offset(struct vcpu *v, uint64_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1582,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1586,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - enable
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1580
    functionDepth: 4
    functionLinenumber: 1580
    functionLinenumberEnd: 1588
    functionName: vmx_set_rdtsc_exiting
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - vmx_update_cpu_exec_control
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: void vmx_set_rdtsc_exiting(struct vcpu *v, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1601,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1602,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - enable
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1591
    functionDepth: 4
    functionLinenumber: 1591
    functionLinenumberEnd: 1604
    functionName: vmx_set_descriptor_access_exiting
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - vmx_update_secondary_exec_control
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: "void vmx_set_descriptor_access_exiting(\n    struct vcpu *v, bool
      enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1628
    functionName: vmx_init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void vmx_init_hypercall_page(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1637
    functionName: vmx_get_interrupt_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmread
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vmx_get_interrupt_shadow(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - intr_shadow
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1639
    functionDepth: 1
    functionLinenumber: 1639
    functionLinenumberEnd: 1643
    functionName: vmx_set_interrupt_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: "void vmx_set_interrupt_shadow(\n    struct vcpu *v, unsigned int intr_shadow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1648,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1650,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1651,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1652,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1655,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - nrs
    argTypes:
    - struct vcpu*
    - struct hvm_vcpu_nonreg_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1645
    functionDepth: 4
    functionLinenumber: 1645
    functionLinenumberEnd: 1658
    functionName: vmx_get_nonreg_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - vmx_vmcs_enter
    - __vmread
    linkageType: ''
    returnType: void
    signature: "void vmx_get_nonreg_state(struct vcpu *v,\n    struct hvm_vcpu_nonreg_state
      *nrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1663,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1666,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1669,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1670,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1673,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - nrs
    argTypes:
    - struct vcpu*
    - struct hvm_vcpu_nonreg_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1660
    functionDepth: 4
    functionLinenumber: 1660
    functionLinenumberEnd: 1676
    functionName: vmx_set_nonreg_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - vmx_vmcs_exit
    - __vmwrite
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: "void vmx_set_nonreg_state(struct vcpu *v,\n    struct hvm_vcpu_nonreg_state
      *nrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1686,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1686,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1689,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1695,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1698,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1702,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1710,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1712,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1712,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1713,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1713,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1714,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1714,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1715,1
    - Dst: GUEST_PDPTE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1715,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1717,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1719,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1722
    functionName: vmx_load_pdptrs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - unmap_domain_page
    - vmx_vmcs_enter
    - __vmwrite
    - hvm_pae_enabled
    - GUEST_PDPTE
    - vmx_vmcs_exit
    - __map_domain_page
    - put_page
    - domain_crash
    - hvm_long_mode_active
    - get_page_from_gfn
    linkageType: ''
    returnType: void
    signature: void vmx_load_pdptrs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1726,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1727,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1724
    functionDepth: 4
    functionLinenumber: 1724
    functionLinenumberEnd: 1729
    functionName: vmx_update_host_cr3
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - __vmwrite
    - vmx_vmcs_enter
    linkageType: ''
    returnType: void
    signature: void vmx_update_host_cr3(struct vcpu *v)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1734,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1743,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1746,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1749,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1757,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1757,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1762,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1766,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1769,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1770,1
    - Dst: nvmx_set_cr_read_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1772,1
    - Dst: vmx_fpu_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1782,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1787,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1793,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1798,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1799,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1804,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1805,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1809,1
    - Dst: hvm_set_segment_register
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1811,1
    - Dst: vmx_update_exception_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1815,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1820,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1825,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1828,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1829,1
    - Dst: nvmx_set_cr_read_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1831,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1837,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1845,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1870,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1877,1
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1885,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1889,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1894,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1898,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1900,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1903,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1913,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1915,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1915,1
    - Dst: vmx_load_pdptrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1918,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1921,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1924,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1928,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1931,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    argCount: 3
    argNames:
    - v
    - cr
    - flags
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1731
    functionDepth: 6
    functionLinenumber: 1731
    functionLinenumberEnd: 1932
    functionName: vmx_update_guest_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - paging_mode_shadow
    - BUILD_BUG_ON
    - hvm_asid_flush_vcpu
    - vmx_load_pdptrs
    - vmx_fpu_enter
    - paging_mode_hap
    - hvm_paging_enabled
    - BUG
    - ARRAY_SIZE
    - hvm_cr4_guest_valid_bits
    - hvm_set_segment_register
    - nestedhvm_vcpu_in_guestmode
    - nvmx_set_cr_read_shadow
    - get_vvmcs
    - vmx_unrestricted_guest
    - monitor_ctrlreg_bitmask
    - __vmwrite
    - hvm_get_segment_register
    - vmx_vmcs_enter
    - vmx_update_exception_bitmap
    - vmx_vmcs_exit
    - vmx_update_cpu_exec_control
    linkageType: ''
    returnType: void
    signature: "void vmx_update_guest_cr(\n    struct vcpu *v, unsigned int cr, unsigned
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1937,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1939,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1949,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1967,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1973,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1979,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1982,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1983,1
    - Dst: vmx_del_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1995,1
    - Dst: vmx_del_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:1996,1
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2000,1
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2001,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2005,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2012,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2014,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1934
    functionDepth: 5
    functionLinenumber: 1934
    functionLinenumberEnd: 2015
    functionName: vmx_update_guest_efer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - vmx_set_msr_intercept
    - vmx_vmcs_enter
    - paging_mode_shadow
    - likely
    - vmx_del_msr
    - vmx_add_msr
    - vmx_vmcs_exit
    - read_efer
    - vmx_unrestricted_guest
    - vmx_clear_msr_intercept
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_update_guest_efer(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2020,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2027,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - v
    - intr_fields
    - error_code
    - source
    argTypes:
    - struct vcpu*
    - unsigned long
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2034
    functionName: nvmx_enqueue_n2_exceptions
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - gdprintk
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: "void nvmx_enqueue_n2_exceptions(struct vcpu *v,\n            unsigned
      long intr_fields, int error_code, uint8_t source)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvmx_enqueue_n2_exceptions
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - event
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2042
    functionName: nvmx_vmexit_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - nvmx_enqueue_n2_exceptions
    linkageType: ''
    returnType: int
    signature: "int nvmx_vmexit_event(\n    struct vcpu *v, const struct x86_event
      *event)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2058,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2059,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2062,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2063,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - trap
    - type
    - error_code
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2073
    functionName: __vmx_inject_exception
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - __vmwrite
    - MASK_INSR
    linkageType: ''
    returnType: void
    signature: void __vmx_inject_exception(int trap, int type, int error_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2080,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2081,1
    - Dst: nvmx_enqueue_n2_exceptions
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2083,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2085,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2086,1
    - Dst: __vmx_inject_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trap
    - source
    argTypes:
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2092
    functionName: vmx_inject_extint
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 2
    functionsReached:
    - MASK_INSR
    - get_vvmcs
    - nvmx_enqueue_n2_exceptions
    - nestedhvm_vcpu_in_guestmode
    - __vmx_inject_exception
    linkageType: ''
    returnType: void
    signature: void vmx_inject_extint(int trap, uint8_t source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2099,1
    - Dst: get_vvmcs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2100,1
    - Dst: nvmx_enqueue_n2_exceptions
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2102,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2104,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2105,1
    - Dst: __vmx_inject_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2094
    functionDepth: 2
    functionLinenumber: 2094
    functionLinenumberEnd: 2111
    functionName: vmx_inject_nmi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - MASK_INSR
    - get_vvmcs
    - nvmx_enqueue_n2_exceptions
    - nestedhvm_vcpu_in_guestmode
    - __vmx_inject_exception
    linkageType: ''
    returnType: void
    signature: void vmx_inject_nmi(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2130,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2132,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2133,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2133,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2135,1
    - Dst: nvmx_intercepts_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2136,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2140,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2141,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2142,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2143,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2152,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2158,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2163,1
    - Dst: vcpu_2_nvmx
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2164,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2166,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2168,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2169,1
    - Dst: hvm_combine_hw_exceptions
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2171,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2178,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2180,1
    - Dst: nvmx_intercepts_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2181,1
    - Dst: nvmx_enqueue_n2_exceptions
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2183,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2185,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2186,1
    - Dst: __vmx_inject_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2191,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2194,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2197,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2121
    functionDepth: 2
    functionLinenumber: 2121
    functionLinenumberEnd: 2198
    functionName: vmx_inject_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vcpu_2_nvmx
    - guest_cpu_user_regs
    - MASK_EXTR
    - MASK_INSR
    - read_debugreg
    - write_debugreg
    - __vmx_inject_exception
    - TRACE
    - nvmx_intercepts_exception
    - __restore_debug_registers
    - ASSERT
    - hvm_combine_hw_exceptions
    - nvmx_enqueue_n2_exceptions
    - unlikely
    - nestedhvm_vcpu_in_guestmode
    - __vmwrite
    - __vmread
    - domain_pause_for_debugger
    linkageType: ''
    returnType: void
    signature: void vmx_inject_event(const struct x86_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2204,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2208
    functionName: vmx_event_pending
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - __vmread
    linkageType: ''
    returnType: bool
    signature: bool vmx_event_pending(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2214,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2216,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2226,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2232,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2236
    functionName: vmx_set_info_guest
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - __vmwrite
    - vmx_vmcs_enter
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_set_info_guest(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_set_eoi_exit_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2242,1
    - Dst: vmx_clear_eoi_exit_bitmap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - vector
    - set
    argTypes:
    - struct vcpu*
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2245
    functionName: vmx_update_eoi_exit_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_set_eoi_exit_bitmap
    - vmx_clear_eoi_exit_bitmap
    linkageType: ''
    returnType: void
    signature: "void vmx_update_eoi_exit_bitmap(\n    struct vcpu *v, uint8_t vector,
      bool set)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2255,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - isr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2247
    functionDepth: 1
    functionLinenumber: 2247
    functionLinenumberEnd: 2265
    functionName: set_svi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: u8
    signature: u8 set_svi(int isr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2270,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2272,1
    - Dst: set_svi
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2274,1
    - Dst: vlapic_test_vector
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2290,1
    - Dst: vlapic_test_vector
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2291,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2292,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2294,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2295,1
    - Dst: EOI_EXIT_BITMAP
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2295,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - isr
    - v
    argTypes:
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2267
    functionDepth: 4
    functionLinenumber: 2267
    functionLinenumberEnd: 2298
    functionName: vmx_process_isr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_enter
    - ARRAY_SIZE
    - vlapic_test_vector
    - vmx_vmcs_exit
    - set_svi
    - vcpu_vlapic
    - __vmwrite
    - EOI_EXIT_BITMAP
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vmx_process_isr(int isr, struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_unblock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2304,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2311,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2343,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2344,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2344,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2350,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2300
    functionDepth: 4
    functionLinenumber: 2300
    functionLinenumberEnd: 2353
    functionName: __vmx_deliver_posted_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - send_IPI_mask
    - raise_softirq
    - smp_processor_id
    - vcpu_unblock
    - cpumask_of
    - in_irq
    linkageType: ''
    returnType: void
    signature: void __vmx_deliver_posted_interrupt(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pi_test_and_set_pir
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2359,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2362,1
    - Dst: pi_set_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2369,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2370,1
    - Dst: pi_test_sn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2384,1
    - Dst: pi_test_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2384,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2386,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2395,1
    - Dst: control::control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2396,1
    - Dst: __vmx_deliver_posted_interrupt
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2355
    functionDepth: 5
    functionLinenumber: 2355
    functionLinenumberEnd: 2400
    functionName: vmx_deliver_posted_intr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vcpu_kick
    - cmpxchg
    - pi_test_sn
    - __vmx_deliver_posted_interrupt
    - pi_test_and_set_pir
    - unlikely
    - pi_set_on
    - pi_test_on
    - control::control
    linkageType: ''
    returnType: void
    signature: void vmx_deliver_posted_intr(struct vcpu *v, u8 vector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pi_test_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2421,1
    - Dst: pi_test_and_clear_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2432,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2433,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2453,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2454,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2460,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2470
      start: 2402
    functionDepth: 1
    functionLinenumber: 2402
    functionLinenumberEnd: 2470
    functionName: vmx_sync_pir_to_irr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - xchg
    - ASSERT
    - vcpu_vlapic
    - pi_test_on
    - pi_test_and_clear_on
    linkageType: ''
    returnType: void
    signature: void vmx_sync_pir_to_irr(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pi_test_pir
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - vec
    argTypes:
    - struct vcpu*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2472
    functionDepth: 1
    functionLinenumber: 2472
    functionLinenumberEnd: 2475
    functionName: vmx_test_pir
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - pi_test_pir
    linkageType: ''
    returnType: bool
    signature: bool vmx_test_pir(const struct vcpu *v, uint8_t vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_svi
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2479,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - vector
    - isr
    argTypes:
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2477
    functionDepth: 2
    functionLinenumber: 2477
    functionLinenumberEnd: 2483
    functionName: vmx_handle_eoi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - printk_once
    - set_svi
    linkageType: ''
    returnType: void
    signature: void vmx_handle_eoi(uint8_t vector, int isr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2490,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2492
    functionName: vmx_enable_msr_interception
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - vmx_set_msr_intercept
    linkageType: ''
    returnType: void
    signature: void vmx_enable_msr_interception(struct domain *d, uint32_t msr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2503,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2504,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2506,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2509,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2509,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2511,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2513,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2517,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2517,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2497
    functionDepth: 4
    functionLinenumber: 2497
    functionLinenumberEnd: 2520
    functionName: vmx_vcpu_update_eptp
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - altp2m_active
    - p2m_get_altp2m
    - vmx_vmcs_enter
    - p2m_get_pagetable
    - vcpu_altp2m
    - vmx_vmcs_exit
    - pagetable_get_pfn
    - __vmwrite
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_update_eptp(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2533,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2535,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2538,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2539,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2539,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2543,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2547,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2547,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2552,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2552,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2562,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2522
    functionDepth: 4
    functionLinenumber: 2522
    functionLinenumberEnd: 2564
    functionName: vmx_vcpu_update_vmfunc_ve
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - altp2m_active
    - vmx_vmcs_enter
    - vcpu_altp2m
    - virt_to_maddr
    - vmx_vmcs_exit
    - page_to_maddr
    - __vmwrite
    - vmx_update_secondary_exec_control
    linkageType: ''
    returnType: void
    signature: void vmx_vcpu_update_vmfunc_ve(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2571,1
    - Dst: p2m_switch_vcpu_altp2m_by_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2566
    functionDepth: 1
    functionLinenumber: 2566
    functionLinenumberEnd: 2577
    functionName: vmx_vcpu_emulate_vmfunc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - p2m_switch_vcpu_altp2m_by_id
    - altp2m_active
    linkageType: ''
    returnType: int
    signature: int vmx_vcpu_emulate_vmfunc(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2581,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2588,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2596,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2598,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2599,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2600,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2601,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2602,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2604,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2608,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2611,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2579
    functionDepth: 4
    functionLinenumber: 2579
    functionLinenumberEnd: 2614
    functionName: vmx_vcpu_emulate_ve
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - paging_mark_dirty
    - unmap_domain_page
    - page_to_mfn
    - vmx_vmcs_enter
    - hvm_inject_hw_exception
    - vcpu_altp2m
    - vmx_vmcs_exit
    - __map_domain_page
    - __vmread
    linkageType: ''
    returnType: bool
    signature: bool vmx_vcpu_emulate_ve(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2623,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2624,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2625,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2626,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2631,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - v
    - info
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2618
    functionDepth: 4
    functionLinenumber: 2618
    functionLinenumberEnd: 2636
    functionName: vmx_get_pending_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_vmcs_exit
    - vmx_vmcs_enter
    - __vmread
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: "bool vmx_get_pending_event(\n    struct vcpu *v, struct x86_event
      *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - v
    - key
    - output
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2657
    functionDepth: 0
    functionLinenumber: 2657
    functionLinenumberEnd: 2677
    functionName: vmtrace_get_option
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int vmtrace_get_option(\n    struct vcpu *v, uint64_t key, uint64_t
      *output)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vmx_add_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2712,1
    - Dst: vmx_add_host_load_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2713,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2721,1
    - Dst: vmx_del_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2727,1
    - Dst: vmx_del_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - v
    - key
    - value
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2679
    functionDepth: 5
    functionLinenumber: 2679
    functionLinenumberEnd: 2732
    functionName: vmtrace_set_option
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 2
    functionsReached:
    - vmx_del_msr
    - domain_crash
    - vmx_add_host_load_msr
    - vmx_add_guest_msr
    linkageType: ''
    returnType: int
    signature: "int vmtrace_set_option(\n    struct vcpu *v, uint64_t key, uint64_t
      value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vmtrace_set_option
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - v
    - enable
    - reset
    argTypes:
    - struct vcpu*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2734
    functionDepth: 6
    functionLinenumber: 2734
    functionLinenumberEnd: 2764
    functionName: vmtrace_control
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - vmtrace_set_option
    linkageType: ''
    returnType: int
    signature: int vmtrace_control(struct vcpu *v, bool enable, bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - pos
    argTypes:
    - struct vcpu*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2770
    functionName: vmtrace_output_position
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vmtrace_output_position(struct vcpu *v, uint64_t *pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2780
    functionName: vmtrace_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vmtrace_reset(struct vcpu *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2799,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2802,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2804,1
    - Dst: rdpkrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2809,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2815,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2819,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2823,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2824,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2828,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2832,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2834,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2837,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - v
    - reg
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2783
    functionDepth: 4
    functionLinenumber: 2783
    functionLinenumberEnd: 2840
    functionName: vmx_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - rdpkrs
    - rdmsr
    - vmx_vmcs_enter
    - vmx_read_guest_msr
    - ASSERT
    - vmx_vmcs_exit
    - printk
    - domain_crash
    - __vmread
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vmx_get_reg(struct vcpu *v, unsigned int reg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vmx_write_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2857,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2860,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2862,1
    - Dst: wrpkrs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2869,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2874,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2878,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2879,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2883,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2887,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2889,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2842
    functionDepth: 4
    functionLinenumber: 2842
    functionLinenumberEnd: 2893
    functionName: vmx_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_write_guest_msr
    - vmx_vmcs_enter
    - wrpkrs
    - ASSERT
    - vmx_vmcs_exit
    - printk
    - domain_crash
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2977,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2977,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2979,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2979,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2981,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2982,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2984,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2991,1
    - Dst: pi_test_on
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2993,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2995,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:2996,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2974
    functionDepth: 1
    functionLinenumber: 2974
    functionLinenumberEnd: 3003
    functionName: pi_wakeup_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ack_APIC_irq
    - smp_processor_id
    - spin_lock
    - ASSERT
    - list_for_each_entry_safe
    - per_cpu
    - list_del
    - this_cpu
    - pi_test_on
    linkageType: ''
    returnType: void
    signature: void pi_wakeup_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3008,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3009,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3006
    functionDepth: 1
    functionLinenumber: 3006
    functionLinenumberEnd: 3050
    functionName: pi_notification_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - this_cpu
    - raise_softirq
    - ack_APIC_irq
    linkageType: ''
    returnType: void
    signature: void pi_notification_interrupt(void)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3059
    functionDepth: 1
    functionLinenumber: 3059
    functionLinenumberEnd: 3143
    functionName: has_if_pschange_mc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: bool has_if_pschange_mc(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3147,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3147,1
    - Dst: vmx_vmcs_init
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3149,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3151,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3151,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3152,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3157,1
    - Dst: has_if_pschange_mc
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3173,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3181,1
    - Dst: setup_ept_dump
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3190,1
    - Dst: alloc_direct_apic_vector
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3203,1
    - Dst: alloc_direct_apic_vector
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3206,1
    - Dst: get_model_specific_lbr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3219,1
    - Dst: lbr_tsx_fixup_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3220,1
    - Dst: ler_to_fixup_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3221,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3145
    functionDepth: 5
    functionLinenumber: 3145
    functionLinenumberEnd: 3224
    functionName: start_vmx
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - lbr_tsx_fixup_check
    - set_in_cr4
    - vmx_vmcs_init
    - get_model_specific_lbr
    - read_cr4
    - setup_ept_dump
    - alloc_direct_apic_vector
    - has_if_pschange_mc
    - printk
    - write_cr4
    - ler_to_fixup_check
    linkageType: ''
    returnType: struct hvm_function_table
    signature: struct hvm_function_table * __init start_vmx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3226
    functionDepth: 0
    functionLinenumber: 3226
    functionLinenumberEnd: 3250
    functionName: vmx_fill_funcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_fill_funcs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3260,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3256
    functionDepth: 1
    functionLinenumber: 3256
    functionLinenumberEnd: 3263
    functionName: get_instruction_length
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - __vmread
    linkageType: ''
    returnType: int
    signature: int get_instruction_length(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3267,1
    - Dst: get_instruction_length
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3270,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3273,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3277,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3265
    functionDepth: 2
    functionLinenumber: 3265
    functionLinenumberEnd: 3282
    functionName: update_guest_eip
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - hvm_inject_hw_exception
    - get_instruction_length
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: void
    signature: void update_guest_eip(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_fpu_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3288,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3284
    functionDepth: 6
    functionLinenumber: 3284
    functionLinenumberEnd: 3296
    functionName: vmx_fpu_dirty_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - vmx_fpu_enter
    linkageType: ''
    returnType: void
    signature: void vmx_fpu_dirty_intercept(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3303,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3306,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - exit_qualification
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3298
    functionDepth: 4
    functionLinenumber: 3298
    functionLinenumberEnd: 3311
    functionName: vmx_dr_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __restore_debug_registers
    - TRACE
    - vmx_update_cpu_exec_control
    linkageType: ''
    returnType: void
    signature: "void vmx_dr_access(unsigned long exit_qualification,\n                          struct
      cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3315,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - linear
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3313
    functionDepth: 2
    functionLinenumber: 3313
    functionLinenumberEnd: 3317
    functionName: vmx_invlpg_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - TRACE
    - paging_invlpg
    linkageType: ''
    returnType: void
    signature: void vmx_invlpg_intercept(unsigned long linear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpid_sync_vcpu_gva
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3319
    functionDepth: 1
    functionLinenumber: 3319
    functionLinenumberEnd: 3323
    functionName: vmx_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vpid_sync_vcpu_gva
    linkageType: ''
    returnType: void
    signature: void vmx_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3325
    functionDepth: 1
    functionLinenumber: 3325
    functionLinenumberEnd: 3336
    functionName: vmx_vmfunc_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    linkageType: ''
    returnType: int
    signature: int vmx_vmfunc_intercept(struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hvm_mov_to_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3345,1
    - Dst: hvm_mov_from_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3348,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3360,1
    - Dst: hvm_monitor_crX
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3361,1
    - Dst: vmx_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3363,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3364,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3377,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3379,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3380,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - qual
    argTypes:
    - cr_access_qual_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3338
    functionDepth: 7
    functionLinenumber: 3338
    functionLinenumberEnd: 3391
    functionName: vmx_cr_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - hvm_mov_to_cr
    - vmx_update_guest_cr
    - hvm_inject_hw_exception
    - TRACE
    - hvm_mov_from_cr
    - hvm_set_cr0
    - hvm_monitor_crX
    - vm_event_is_enabled
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int vmx_cr_access(cr_access_qual_t qual)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3415
    functionDepth: 1
    functionLinenumber: 3415
    functionLinenumberEnd: 3468
    functionName: lbr_tsx_fixup_check
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void lbr_tsx_fixup_check(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3470
    functionDepth: 0
    functionLinenumber: 3470
    functionLinenumberEnd: 3495
    functionName: ler_to_fixup_check
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ler_to_fixup_check(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ecx
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3497
    functionDepth: 0
    functionLinenumber: 3497
    functionLinenumberEnd: 3509
    functionName: is_last_branch_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_last_branch_msr(u32 ecx)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3517,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3522,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3525,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3528,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3532,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3536,1
    - Dst: read_gs_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3540,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3560,1
    - Dst: nvmx_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3564,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3568,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3574,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3574,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3575,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3575,1
    - Dst: vpmu_do_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3580,1
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3585,1
    - Dst: is_last_branch_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3588,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3594,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3600,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3604,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3511
    functionDepth: 3
    functionLinenumber: 3511
    functionLinenumberEnd: 3610
    functionName: vmx_msr_read_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - MSR_P6_EVNTSEL
    - read_gs_shadow
    - nvmx_msr_read_intercept
    - vmx_read_guest_msr
    - rdmsrl
    - is_last_branch_msr
    - vpmu_do_rdmsr
    - rdmsr_safe
    - MSR_P6_PERFCTR
    - HVM_DBG_LOG
    - __vmread
    linkageType: ''
    returnType: int
    signature: "int vmx_msr_read_intercept(\n    unsigned int msr, uint64_t *msr_content)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3617,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3620,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3624,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3630,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3634,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3612
    functionDepth: 1
    functionLinenumber: 3612
    functionLinenumberEnd: 3639
    functionName: vmx_alloc_vlapic_mapping
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - page_to_mfn
    - clear_domain_page
    - has_vlapic
    - alloc_domheap_page
    - domain_crash
    - get_page_and_type
    linkageType: ''
    returnType: int
    signature: int vmx_alloc_vlapic_mapping(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3645,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3646,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3646,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3648,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3650,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3641
    functionDepth: 1
    functionLinenumber: 3641
    functionLinenumberEnd: 3653
    functionName: vmx_free_vlapic_mapping
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - put_page_and_type
    - put_page_alloc_ref
    - mfn_to_page
    - _mfn
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void vmx_free_vlapic_mapping(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3660,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3660,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3663,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3665,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3665,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3666,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3668,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3669,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3670,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3672
      start: 3655
    functionDepth: 4
    functionLinenumber: 3655
    functionLinenumberEnd: 3672
    functionName: vmx_install_vlapic_mapping
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - vmx_vmcs_enter
    - mfn_to_maddr
    - _mfn
    - ASSERT
    - vmx_vmcs_exit
    - mfn_eq
    - vcpu_vlapic
    - page_to_maddr
    - __vmwrite
    linkageType: ''
    returnType: void
    signature: void vmx_install_vlapic_mapping(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3677,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3688,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3692,1
    - Dst: vlapic_base_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3693,1
    - Dst: vlapic_x2apic_mode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3695,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3703,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3705,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3706,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3707,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3711,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3712,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3713,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3724,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3726,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3727,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3728
      start: 3674
    functionDepth: 4
    functionLinenumber: 3674
    functionLinenumberEnd: 3728
    functionName: vmx_vlapic_msr_changed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 1
    functionsReached:
    - vmx_set_msr_intercept
    - vmx_vmcs_enter
    - vlapic_hw_disabled
    - vlapic_base_address
    - vmx_vmcs_exit
    - vcpu_vlapic
    - vmx_clear_msr_intercept
    - vlapic_x2apic_mode
    - vmx_update_secondary_exec_control
    linkageType: ''
    returnType: void
    signature: void vmx_vlapic_msr_changed(struct vcpu *v)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3736,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3743,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3746,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3748,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3751,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3753,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3759,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3763,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3765,1
    - Dst: write_gs_shadow
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3767,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3773,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3777,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3780,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3784,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3791,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3798,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3798,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3803,1
    - Dst: vmx_add_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3850,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3852,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3854,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3856,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3860,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3871,1
    - Dst: vmx_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3880,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3885,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3885,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3886,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3886,1
    - Dst: vpmu_do_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3891,1
    - Dst: vmx_write_guest_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3896,1
    - Dst: is_last_branch_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3897,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3900,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3903,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 112
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3730
    functionDepth: 4
    functionLinenumber: 3730
    functionLinenumberEnd: 3913
    functionName: vmx_msr_write_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - cpu_has
    - gprintk
    - wrmsrl
    - MSR_P6_PERFCTR
    - rdmsr_safe
    - MSR_P6_EVNTSEL
    - vcpu_vpmu
    - vmx_msr_read_intercept
    - vpmu_is_set
    - is_canonical_address
    - vmx_clear_msr_intercept
    - domain_crash
    - gdprintk
    - write_gs_shadow
    - is_last_branch_msr
    - vmx_add_guest_msr
    - HVM_DBG_LOG
    - __vmwrite
    - vmx_write_guest_msr
    - vpmu_do_wrmsr
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int vmx_msr_write_intercept(\n    unsigned int msr, uint64_t msr_content)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3919,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3920,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3923,1
    - Dst: do_IRQ
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 3927
    functionName: vmx_do_extint
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - do_IRQ
    - BUG_ON
    - TRACE
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_do_extint(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3931,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3935,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3929
    functionDepth: 1
    functionLinenumber: 3929
    functionLinenumberEnd: 3938
    functionName: vmx_wbinvd_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - flush_all
    - cache_flush_permitted
    - wbinvd
    linkageType: ''
    returnType: void
    signature: void vmx_wbinvd_intercept(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3977,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3977,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3979,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3984,1
    - Dst: hvm_hap_nested_page_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:3994,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4002,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4007,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4008,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4017,1
    - Dst: ept_walk_table
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4019,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4022,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4024,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - q
    - gpa
    argTypes:
    - ept_qual_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4025
      start: 3940
    functionDepth: 3
    functionLinenumber: 3940
    functionLinenumberEnd: 4025
    functionName: ept_handle_violation
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - trace
    - hvm_hap_nested_page_fault
    - mfn_x
    - gprintk
    - ept_walk_table
    - get_gfn_query_unlocked
    - domain_crash
    - __vmread
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void ept_handle_violation(ept_qual_t q, paddr_t gpa)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4034,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4035,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4039,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4047,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4050,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4055,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4062,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4063,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4068,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4072,1
    - Dst: vmcs_dump_vcpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4073,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4074,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4076,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - exit_reason
    - regs
    argTypes:
    - unsigned int
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4027
    functionDepth: 5
    functionLinenumber: 4027
    functionLinenumberEnd: 4077
    functionName: vmx_failed_vmentry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - TRACE
    - vmcs_dump_vcpu
    - printk
    - domain_crash
    - __vmread
    linkageType: ''
    returnType: void
    signature: "void vmx_failed_vmentry(unsigned int exit_reason,\n                               struct
      cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4079
    functionDepth: 0
    functionLinenumber: 4079
    functionLinenumberEnd: 4088
    functionName: vmx_enter_realmode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_enter_realmode(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4098,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4102,1
    - Dst: vlapic_EOI_set
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4103,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4103,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4109
      start: 4090
    functionDepth: 4
    functionLinenumber: 4090
    functionLinenumberEnd: 4109
    functionName: vmx_handle_eoi_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - update_guest_eip
    - TRACE
    - vlapic_EOI_set
    - vcpu_vlapic
    - __vmread
    linkageType: ''
    returnType: int
    signature: int vmx_handle_eoi_write(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4121,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4122,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4128,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4136,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - intr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4118
    functionDepth: 3
    functionLinenumber: 4118
    functionLinenumberEnd: 4143
    functionName: vmx_propagate_intr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - hvm_inject_event
    - __vmread
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vmx_propagate_intr(unsigned long intr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4149,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4151,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4151,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4156,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4162,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4163,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4173,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4177,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - idtv_info
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4182
    functionName: vmx_idtv_reinject
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - hvm_event_needs_reinjection
    - unlikely
    - __vmwrite
    - __vmread
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vmx_idtv_reinject(unsigned long idtv_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4186,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4184
    functionDepth: 1
    functionLinenumber: 4184
    functionLinenumberEnd: 4188
    functionName: vmx_handle_xsaves
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void vmx_handle_xsaves(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4192,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4194
      start: 4190
    functionDepth: 1
    functionLinenumber: 4190
    functionLinenumberEnd: 4194
    functionName: vmx_handle_xrstors
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void vmx_handle_xrstors(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4202,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4203,1
    - Dst: hvm_descriptor_access_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4210,1
    - Dst: hvm_descriptor_access_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - exit_reason
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4221
      start: 4196
    functionDepth: 3
    functionLinenumber: 4196
    functionLinenumberEnd: 4221
    functionName: vmx_handle_descriptor_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - hvm_descriptor_access_intercept
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_handle_descriptor_access(uint32_t exit_reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4227,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4228,1
    - Dst: vlapic_apicv_write
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4231
      start: 4223
    functionDepth: 8
    functionLinenumber: 4223
    functionLinenumberEnd: 4231
    functionName: vmx_handle_apic_write
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - __vmread
    - vlapic_apicv_write
    linkageType: ''
    returnType: int
    signature: int vmx_handle_apic_write(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4237,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4233
    functionDepth: 1
    functionLinenumber: 4233
    functionLinenumberEnd: 4240
    functionName: undo_nmis_unblocked_by_iret
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - __vmwrite
    - __vmread
    linkageType: ''
    returnType: void
    signature: void undo_nmis_unblocked_by_iret(void)
  - BBCount: 147
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4250,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4251,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4252,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4254,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4255,1
    - Dst: hvm_sanitize_regs_fields
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4257,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4259,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4265,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4270,1
    - Dst: vmx_unrestricted_guest
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4271,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4271,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4275,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4277,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4278,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4280,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4282,1
    - Dst: vmx_do_extint
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4288,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4291,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4292,1
    - Dst: do_machine_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4295,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4298,1
    - Dst: do_nmi
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4300,1
    - Dst: enable_nmis
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4301,1
    - Dst: do_machine_check
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4305,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4309,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4314,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4320,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4328,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4333,1
    - Dst: p2m_find_altp2m_by_eptp
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4335,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4338,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4339,1
    - Dst: p2m_set_altp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4345,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4348,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4349,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4353,1
    - Dst: hvm_monitor_vmexit
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4354,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4361,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4363,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4370,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4371,1
    - Dst: paging_update_nestedmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4373,1
    - Dst: nvmx_n2_vmexit_handler
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4374,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4378,1
    - Dst: vmx_failed_vmentry
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4379,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4396,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4398,1
    - Dst: hvm_maybe_deassert_evtchn_irq
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4417,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4419,1
    - Dst: vmx_idtv_reinject
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4421,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4440,1
    - Dst: undo_nmis_unblocked_by_iret
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4443,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4445,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4454,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4455,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4456,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4457,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4478,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4482,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4488,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4489,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4498,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4502,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4504,1
    - Dst: hvm_monitor_debug
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4506,1
    - Dst: vmx_propagate_intr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4513,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4516,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4519,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4525,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4526,1
    - Dst: hvm_monitor_debug
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4528,1
    - Dst: vmx_propagate_intr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4537,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4541,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4543,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4547,1
    - Dst: vmx_fpu_dirty_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4548,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4551,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4552,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4555,1
    - Dst: paging_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4560,1
    - Dst: trace_will_trace_event
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4562,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4564,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4565,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4568,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4572,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4575,1
    - Dst: vmx_propagate_intr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4576,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4579,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4582,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4586,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4590,1
    - Dst: hvm_ud_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4591,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4594,1
    - Dst: hvm_triple_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4601,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4606,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4611,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4619,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4622,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4629,1
    - Dst: get_instruction_length
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4631,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4633,1
    - Dst: hvm_task_switch
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4637,1
    - Dst: hvm_vmexit_cpuid
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4643,1
    - Dst: get_instruction_length
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4643,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4653,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4657,1
    - Dst: hvm_hlt
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4658,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4661,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4662,1
    - Dst: vmx_invlpg_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4663,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4668,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4675,1
    - Dst: hvm_rdtsc_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4676,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4680,1
    - Dst: hvm_hypercall
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4682,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4683,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4688,1
    - Dst: vmx_cr_access
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4689,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4690,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4694,1
    - Dst: vmx_dr_access
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4695,1
    - Dst: hvm_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4701,1
    - Dst: msr_split
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4704,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4705,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4709,1
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4716,1
    - Dst: msr_fold
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4716,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4719,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4723,1
    - Dst: nvmx_handle_vmx_insn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4739,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4740,1
    - Dst: vmx_vmfunc_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4744,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4745,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4747,1
    - Dst: WARN_ON
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4758,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4759,1
    - Dst: vmx_handle_eoi_write
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4763,1
    - Dst: handle_mmio
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4763,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4764,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4768,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4770,1
    - Dst: vlapic_handle_EOI
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4772,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4772,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4791,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4794,1
    - Dst: hvm_monitor_io
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4798,1
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4807,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4808,1
    - Dst: handle_pio
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4812,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4814,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4822,1
    - Dst: vmx_wbinvd_intercept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4823,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4831,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4832,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4834,1
    - Dst: undo_nmis_unblocked_by_iret
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4836,1
    - Dst: ept_handle_violation
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4838,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4846,1
    - Dst: ept_handle_misconfig
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4847,1
    - Dst: vmx_update_cpu_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4854,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4857,1
    - Dst: hvm_monitor_debug
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4858,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4863,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4869,1
    - Dst: vcpu_yield
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4870,1
    - Dst: hvm_handle_xsetbv
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4874,1
    - Dst: msr_fold
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4874,1
    - Dst: update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4875,1
    - Dst: vmx_handle_apic_write
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4879,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4883,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4885,1
    - Dst: undo_nmis_unblocked_by_iret
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4887,1
    - Dst: ept_vcpu_flush_pml_buffer
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4889,1
    - Dst: vmx_handle_xsaves
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4893,1
    - Dst: vmx_handle_xrstors
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4897,1
    - Dst: vmx_handle_descriptor_access
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4902,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4906,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4908,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4910,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4911,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4912,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4916,1
    - Dst: undo_nmis_unblocked_by_iret
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4917,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4932,1
    - Dst: vmx_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4934,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4935,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4938,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4943,1
    - Dst: nvmx_idtv_handling
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4944,1
    CyclomaticComplexity: 146
    EdgeCount: 146
    ICount: 430
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4242
    functionDepth: 9
    functionLinenumber: 4242
    functionLinenumberEnd: 4945
    functionName: vmx_vmexit_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - nvmx_handle_vmx_insn
    - TRACE
    - vmx_idtv_reinject
    - perfc_incra
    - printk
    - hvm_ud_intercept
    - domain_crash
    - paging_update_nestedmode
    - update_guest_eip
    - gdprintk
    - handle_pio
    - get_instruction_length
    - vm_event_is_enabled
    - vmx_handle_descriptor_access
    - vcpu_nestedhvm
    - perfc_incr
    - vmx_vmfunc_intercept
    - unlikely
    - hvm_triple_fault
    - vmx_update_cpu_exec_control
    - hvm_msr_write_intercept
    - hvm_sanitize_regs_fields
    - TRACE_TIME
    - local_irq_enable
    - p2m_find_altp2m_by_eptp
    - p2m_set_altp2m
    - paging_mode_hap
    - BUG_ON
    - hvm_maybe_deassert_evtchn_irq
    - ept_handle_misconfig
    - MASK_EXTR
    - write_debugreg
    - nvmx_idtv_handling
    - vmx_handle_xrstors
    - __restore_debug_registers
    - hvm_monitor_io
    - ept_handle_violation
    - undo_nmis_unblocked_by_iret
    - msr_split
    - nvmx_n2_vmexit_handler
    - hvm_msr_read_intercept
    - enable_nmis
    - hvm_hypercall
    - do_machine_check
    - vmx_fpu_dirty_intercept
    - vmx_get_cpl
    - hvm_hlt
    - hvm_paging_enabled
    - altp2m_active
    - vcpu_yield
    - __vmread
    - msr_fold
    - hvm_vmexit_cpuid
    - vcpu_vlapic
    - paging_fault
    - nestedhvm_vcpu_in_guestmode
    - vmx_cr_access
    - WARN_ON
    - hvm_monitor_vmexit
    - vmx_handle_apic_write
    - HVM_DBG_LOG
    - __vmwrite
    - vlapic_handle_EOI
    - hvm_emulate_one_insn
    - handle_mmio
    - vmx_handle_xsaves
    - hvm_handle_xsetbv
    - trace_will_trace_event
    - gprintk
    - hvm_long_mode_active
    - vmx_dr_access
    - MASK_INSR
    - vmx_propagate_intr
    - vmx_handle_eoi_write
    - vmx_invlpg_intercept
    - domain_pause_for_debugger
    - vmx_failed_vmentry
    - hvm_inject_hw_exception
    - hvm_rdtsc_intercept
    - ASSERT
    - vmx_unrestricted_guest
    - vmx_wbinvd_intercept
    - vmx_do_extint
    - do_nmi
    - ept_vcpu_flush_pml_buffer
    - hvm_inject_page_fault
    - hvm_task_switch
    - hvm_monitor_debug
    linkageType: ''
    returnType: void
    signature: void vmx_vmexit_handler(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4954,1
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4968,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4971
      start: 4947
    functionDepth: 2
    functionLinenumber: 4947
    functionLinenumberEnd: 4971
    functionName: lbr_tsx_fixup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_find_msr
    linkageType: ''
    returnType: void
    signature: void lbr_tsx_fixup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4977,1
    - Dst: canonicalise_addr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - v
    - msr
    - type
    argTypes:
    - struct vcpu*
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4973
    functionDepth: 2
    functionLinenumber: 4973
    functionLinenumberEnd: 4979
    functionName: sign_extend_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - vmx_find_msr
    - canonicalise_addr
    linkageType: ''
    returnType: void
    signature: void sign_extend_msr(struct vcpu *v, u32 msr, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sign_extend_msr
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4986
      start: 4981
    functionDepth: 3
    functionLinenumber: 4981
    functionLinenumberEnd: 4986
    functionName: ler_to_fixup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - sign_extend_msr
    linkageType: ''
    returnType: void
    signature: void ler_to_fixup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lbr_tsx_fixup
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4993,1
    - Dst: ler_to_fixup
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:4995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4996
      start: 4988
    functionDepth: 4
    functionLinenumber: 4988
    functionLinenumberEnd: 4996
    functionName: lbr_fixup
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - lbr_tsx_fixup
    - ler_to_fixup
    linkageType: ''
    returnType: void
    signature: void lbr_fixup(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5007,1
    - Dst: hvmemul_cache_disabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5007,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5010,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5010,1
    - Dst: vmx_pi_do_resume
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5014,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5018,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5019,1
    - Dst: hvm_asid_handle_vmenter
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5024,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5027,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5029,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5035,1
    - Dst: vmx_update_secondary_exec_control
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5042,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5046,1
    - Dst: vpid_sync_all
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5047,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5049,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5051,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5052,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5056,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5058,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5061,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5066,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5072,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5076,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5078,1
    - Dst: __invept
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5087,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5092,1
    - Dst: lbr_fixup
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5093,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5095,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5097,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5098,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/vmx.c:5099,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5102
      start: 4999
    functionDepth: 5
    functionLinenumber: 4999
    functionLinenumberEnd: 5102
    functionName: vmx_vmenter_helper
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - nestedhvm_enabled
    - cpumask_test_cpu
    - paging_mode_hap
    - altp2m_active
    - smp_processor_id
    - hvm_asid_handle_vmenter
    - cpumask_clear_cpu
    - nestedhvm_vcpu_in_guestmode
    - hvmemul_cache_disabled
    - vpid_sync_all
    - mfn_x
    - ASSERT
    - vmx_pi_do_resume
    - __vmwrite
    - lbr_fixup
    - p2m_get_hostp2m
    - vcpu_nestedhvm
    - __invept
    - unlikely
    - vmx_update_secondary_exec_control
    linkageType: ''
    returnType: bool
    signature: bool vmx_vmenter_helper(const struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:37,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:38,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:39,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:44,1
    - Dst: hvm_triple_fault
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:59,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:80,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:81,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:94,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - vector
    - insn_len
    - hvmemul_ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 96
    functionName: realmode_deliver_exception
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/realmode.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - hvmemul_get_seg_reg
    - hvm_triple_fault
    - hvm_copy_from_guest_phys
    - __vmwrite
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: void
    signature: "void realmode_deliver_exception(\n    unsigned int vector,\n    unsigned
      int insn_len,\n    struct hvm_emulate_ctxt *hvmemul_ctxt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:103,1
    - Dst: hvm_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:105,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:109,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:115,1
    - Dst: realmode_deliver_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:119,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:124,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:128,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:132,1
    - Dst: realmode_deliver_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:138,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:148,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - hvmemul_ctxt
    argTypes:
    - struct hvm_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 98
    functionDepth: 6
    functionLinenumber: 98
    functionLinenumberEnd: 150
    functionName: vmx_realmode_emulate_one
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/realmode.c
    functionUses: 1
    functionsReached:
    - perfc_incr
    - gdprintk
    - hvm_dump_emulation_state
    - unlikely
    - domain_crash
    - realmode_deliver_exception
    - hvm_emulate_one
    - domain_pause_for_debugger
    linkageType: ''
    returnType: void
    signature: void vmx_realmode_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:162,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:164,1
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:166,1
    - Dst: realmode_deliver_exception
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:172,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:178,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:178,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:185,1
    - Dst: hvm_local_events_need_delivery
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:187,1
    - Dst: vmx_realmode_emulate_one
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:190,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:216,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:218,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:220,1
    - Dst: hvmemul_get_seg_reg
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:222,1
    - Dst: hvm_emulate_writeback
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:229,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/hvm/vmx/realmode.c:233,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 152
    functionDepth: 7
    functionLinenumber: 152
    functionLinenumberEnd: 234
    functionName: vmx_realmode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/vmx/realmode.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - smp_processor_id
    - hvmemul_get_seg_reg
    - hvm_emulate_writeback
    - vmx_realmode_emulate_one
    - unlikely
    - hvm_emulate_init_once
    - realmode_deliver_exception
    - __vmwrite
    - hvm_local_events_need_delivery
    - __vmread
    linkageType: ''
    returnType: void
    signature: void vmx_realmode(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:33,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:41,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: svm_inject_nmi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/intr.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    linkageType: ''
    returnType: void
    signature: void svm_inject_nmi(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: svm_inject_extint
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/intr.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void svm_inject_extint(struct vcpu *v, int vector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:69,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:72,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:74,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:76,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:85,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:86,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:92,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:115,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:120,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 123
    functionName: svm_enable_intr_window
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/intr.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    - nestedhvm_enabled
    - TRACE
    - vmcb_get_vintr
    - ASSERT
    - vmcb_set_vintr
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_enable_intr_window(struct vcpu *v, struct hvm_intack intack)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:133,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:133,1
    - Dst: pt_update_irq
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:137,1
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:140,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:141,1
    - Dst: hvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:144,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:147,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:147,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:154,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:154,1
    - Dst: nestedsvm_vcpu_interrupt
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:161,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:174,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:193,1
    - Dst: svm_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:195,1
    - Dst: hvm_vcpu_ack_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:199,1
    - Dst: svm_inject_nmi
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:204,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:208,1
    - Dst: svm_inject_extint
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:209,1
    - Dst: pt_intr_post
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:210,1
    - Dst: hvm_vcpu_has_pending_irq
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:214,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:215,1
    - Dst: svm_enable_intr_window
      Src: /src/xen/xen/arch/x86/hvm/svm/intr.c:216,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 125
    functionDepth: 6
    functionLinenumber: 125
    functionLinenumberEnd: 217
    functionName: svm_intr_assist
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/intr.c
    functionUses: 0
    functionsReached:
    - hvm_interrupt_blocked
    - svm_inject_nmi
    - hvm_vcpu_ack_pending_irq
    - panic
    - pt_intr_post
    - nestedhvm_enabled
    - TRACE
    - likely
    - hvm_vcpu_has_pending_irq
    - svm_enable_intr_window
    - ASSERT
    - pt_update_irq
    - nestedsvm_vcpu_interrupt
    - unlikely
    - vm_event_is_enabled
    - nestedhvm_vcpu_in_guestmode
    - svm_inject_extint
    linkageType: ''
    returnType: void
    signature: void svm_intr_assist(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:30,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:33,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: alloc_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - clear_page
    - alloc_xenheap_page
    - printk
    linkageType: ''
    returnType: struct vmcb_struct
    signature: struct vmcb_struct *alloc_vmcb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vmcb
    argTypes:
    - struct vmcb_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: free_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - free_xenheap_page
    linkageType: ''
    returnType: void
    signature: void free_vmcb(struct vmcb_struct *vmcb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:88,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:88,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:91,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:93,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:94,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:95,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:96,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:97,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:98,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:99,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:101,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:102,1
    - Dst: hvm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:135,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:136,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:137,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:139,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:145,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:147,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:149,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:150,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:150,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 65
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 188
    functionName: construct_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - paging_update_paging_modes
    - get_order_from_bytes
    - svm_disable_intercept_for_msr
    - __pa
    - vmcb_set_np
    - p2m_get_pagetable
    - p2m_get_hostp2m
    - virt_to_maddr
    - alloc_xenheap_pages
    - hvm_update_guest_efer
    - hvm_update_guest_cr
    - memset
    - pagetable_get_paddr
    - paging_mode_hap
    linkageType: ''
    returnType: int
    signature: int construct_vmcb(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:192,1
    - Dst: alloc_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:197,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:199,1
    - Dst: construct_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:204,1
    - Dst: free_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:207,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: svm_create_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - alloc_vmcb
    - virt_to_maddr
    - printk
    - free_vmcb
    - construct_vmcb
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int svm_create_vmcb(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:219,1
    - Dst: free_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:223,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:227,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: svm_destroy_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - free_xenheap_pages
    - free_vmcb
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_destroy_vmcb(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - s
    argTypes:
    - char*
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: svm_dump_sel
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void svm_dump_sel(const char *name, const struct segment_register *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:252,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:254,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:255,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:256,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:258,1
    - Dst: vmcb_get_cr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:260,1
    - Dst: vmcb_get_dr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:260,1
    - Dst: vmcb_get_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:261,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:262,1
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:263,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:263,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:264,1
    - Dst: vmcb_get_iopm_base_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:265,1
    - Dst: vmcb_get_msrpm_base_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:265,1
    - Dst: vmcb_get_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:266,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:267,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:268,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:270,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:274,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:276,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:278,1
    - Dst: vmcb_get_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:279,1
    - Dst: vmcb_get_np_ctrl
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:279,1
    - Dst: vmcb_get_np
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:280,1
    - Dst: vmcb_get_sev
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:281,1
    - Dst: vmcb_get_sev_es
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:282,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:283,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:285,1
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:286,1
    - Dst: vmcb_get_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:286,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:287,1
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:288,1
    - Dst: vmcb_get_cr2
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:288,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:289,1
    - Dst: vmcb_get_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:290,1
    - Dst: vmcb_get_cr4
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:290,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:291,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:293,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:295,1
    - Dst: vmcb_get_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:296,1
    - Dst: vmcb_get_dr7
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:296,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:297,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:299,1
    - Dst: vmcb_get_g_pat
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:300,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:301,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:303,1
    - Dst: vmcb_get_h_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:304,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:307,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:308,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:309,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:310,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:311,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:312,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:313,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:314,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:315,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:316,1
    - Dst: svm_dump_sel
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - from
    - vmcb
    argTypes:
    - char*
    - struct vmcb_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 318
    functionName: svm_vmcb_dump
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - vmcb_get_msrpm_base_pa
    - vmcb_get_general1_intercepts
    - vmcb_get_dr7
    - vmcb_get_np
    - vmcb_get_cr4
    - vmcb_get_g_pat
    - vmcb_get_sev
    - vmcb_get_h_cr3
    - svm_dump_sel
    - vmcb_get_cr3
    - vmcb_get_efer
    - svm_sync_vmcb
    - vmcb_get_dr_intercepts
    - printk
    - vmcb_get_np_ctrl
    - vmcb_get_general2_intercepts
    - vmcb_get_vintr
    - vmcb_get_cr2
    - vmcb_get_exception_intercepts
    - vmcb_get_asid
    - vmcb_get_cr0
    - vmcb_get_tsc_offset
    - vmcb_get_cr_intercepts
    - vmcb_get_sev_es
    - virt_to_maddr
    - vmcb_get_dr6
    - vmcb_get_iopm_base_pa
    - vmcb_get_cpl
    linkageType: ''
    returnType: void
    signature: void svm_vmcb_dump(const char *from, const struct vmcb_struct *vmcb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:325,1
    - Dst: vmcb_get_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:326,1
    - Dst: vmcb_get_cr4
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:327,1
    - Dst: vmcb_get_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:329,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:338,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:341,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:344,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:351,1
    - Dst: hvm_cr4_guest_valid_bits
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:353,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:355,1
    - Dst: vmcb_get_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:358,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:359,1
    - Dst: vmcb_get_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:360,1
    - Dst: vmcb_get_dr7
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:362,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:363,1
    - Dst: vmcb_get_dr7
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:364,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:367,1
    - Dst: hvm_efer_valid
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:369,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:370,1
    - Dst: hvm_efer_valid
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:370,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:375,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:377,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:382,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:384,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:385,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:386,1
    - Dst: PRINTF
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:389,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 33
    argCount: 4
    argNames:
    - from
    - vmcb
    - v
    - verbose
    argTypes:
    - char*
    - struct vmcb_struct*
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 394
    functionName: svm_vmcb_isvalid
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - PRINTF
    - vmcb_get_dr7
    - vmcb_get_cr4
    - hvm_cr4_guest_valid_bits
    - vmcb_get_cr3
    - vmcb_get_efer
    - vmcb_get_dr6
    - hvm_efer_valid
    - vmcb_get_cr0
    - vmcb_get_general2_intercepts
    linkageType: ''
    returnType: bool
    signature: "bool svm_vmcb_isvalid(\n    const char *from, const struct vmcb_struct
      *vmcb, const struct vcpu *v,\n    bool verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: PRINTF
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 334
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTF(fmt, args...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:401,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:403,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:407,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:409,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:414,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:417,1
    - Dst: svm_vmcb_dump
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:418,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:420,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:424,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 427
    functionName: vmcb_dump
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - process_pending_softirqs
    - svm_vmcb_dump
    - printk
    - rcu_read_lock
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void vmcb_dump(unsigned char ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:407,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:409,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:414,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:417,1
    - Dst: svm_vmcb_dump
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:418,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 422
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 2
    functionsReached:
    - printk
    - process_pending_softirqs
    - svm_vmcb_dump
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:414,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:417,1
    - Dst: svm_vmcb_dump
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:418,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 23
    functionsReached:
    - process_pending_softirqs
    - svm_vmcb_dump
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: setup_vmcb_dump
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: void
    signature: void setup_vmcb_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:439,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:442,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:443,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:444,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:445,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:448,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:449,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:450,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:451,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:452,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:453,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:454,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:457,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:458,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:459,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:460,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:461,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:462,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:463,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:464,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/vmcb.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 466
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:26,1
    - Dst: local_event_delivery_disable
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: nestedsvm_vcpu_clgi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - local_event_delivery_disable
    linkageType: ''
    returnType: void
    signature: void nestedsvm_vcpu_clgi(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:34,1
    - Dst: local_event_delivery_enable
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: nestedsvm_vcpu_stgi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - local_event_delivery_enable
    linkageType: ''
    returnType: void
    signature: void nestedsvm_vcpu_stgi(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:40,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:44,1
    - Dst: vvmcx_valid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:44,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:45,1
    - Dst: hvm_map_guest_frame_rw
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:53,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:53,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - v
    - vmcbaddr
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 68
    functionName: nestedsvm_vmcb_map
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vvmcx_valid
    - hvm_unmap_guest_frame
    - paddr_to_pfn
    - ASSERT
    - hvm_map_guest_frame_rw
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nestedsvm_vmcb_map(struct vcpu *v, uint64_t vmcbaddr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:74,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:75,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:77,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:77,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:81,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:83,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:83,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:87,1
    - Dst: alloc_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:89,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:92,1
    - Dst: nsvm_vcpu_destroy
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 99
    functionName: nsvm_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - get_order_from_bytes
    - alloc_vmcb
    - virt_to_maddr
    - alloc_xenheap_pages
    - memset
    - nsvm_vcpu_destroy
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vcpu_initialise(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:103,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:104,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:117,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:118,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:124,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:125,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:129,1
    - Dst: free_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 139
    functionName: nsvm_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 1
    functionsReached:
    - vcpu_nestedsvm
    - get_order_from_bytes
    - free_vmcb
    - hvm_unmap_guest_frame
    - free_xenheap_pages
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nsvm_vcpu_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:143,1
    - Dst: nestedsvm_vcpu_stgi
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 166
    functionName: nsvm_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedsvm_vcpu_stgi
    linkageType: ''
    returnType: int
    signature: int nsvm_vcpu_reset(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - n1cr0
    - vvmcb
    - n1vmcb
    - n2vmcb
    argTypes:
    - uint64_t
    - struct vmcb_struct*
    - struct vmcb_struct*
    - struct vmcb_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 195
    functionName: nestedsvm_fpu_vmentry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t nestedsvm_fpu_vmentry(uint64_t n1cr0,\n    struct vmcb_struct
      *vvmcb,\n    struct vmcb_struct *n1vmcb, struct vmcb_struct *n2vmcb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - n1vmcb
    - n2vmcb
    - n1cr0
    - guest_cr0
    argTypes:
    - struct vmcb_struct*
    - struct vmcb_struct*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 218
    functionName: nestedsvm_fpu_vmexit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void nestedsvm_fpu_vmexit(struct vmcb_struct *n1vmcb,\n    struct
      vmcb_struct *n2vmcb, uint64_t n1cr0, uint64_t guest_cr0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:222,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:223,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - v
    - inst_len
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 244
    functionName: nsvm_vcpu_hostsave
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - ASSERT
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vcpu_hostsave(struct vcpu *v, unsigned int inst_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:248,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:249,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:255,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:256,1
    - Dst: hvm_set_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:269,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:271,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:273,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:277,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:279,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:281,1
    - Dst: nestedsvm_fpu_vmexit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:284,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:288,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:290,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:292,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:297,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:301,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:306,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:316,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:317,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:317,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:318,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:321,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:323,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:325,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 344
    functionName: nsvm_vcpu_hostrestore
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_paging_mode_hap
    - gdprintk
    - nestedsvm_fpu_vmexit
    - hvm_set_efer
    - hvm_inject_hw_exception
    - hvm_set_cr4
    - pagetable_is_null
    - pagetable_null
    - paging_mode_hap
    - ASSERT
    - hvm_set_cr0
    - hvm_update_guest_cr
    - pagetable_get_page
    - put_page
    - hvm_set_cr3
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vcpu_hostrestore(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:349,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:350,1
    - Dst: hvm_copy_from_guest_phys
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:361,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:365,1
    - Dst: hvm_map_guest_frame_ro
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:375,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:378,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:379,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:380,1
    - Dst: nestedhvm_vcpu_iomap_get
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:383,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:392,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - v
    - viopm
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 5
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: nsvm_vmrun_permissionmap
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - gdprintk
    - hvm_unmap_guest_frame
    - virt_to_maddr
    - hvm_map_guest_frame_ro
    - nestedhvm_vcpu_iomap_get
    - test_bit
    - hvm_copy_from_guest_phys
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vmrun_permissionmap(struct vcpu *v, bool viopm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:403,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:404,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:405,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:408,1
    - Dst: p2m_get_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:410,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:411,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - v
    - vvmcb
    - n2vmcb
    argTypes:
    - struct vcpu*
    - struct vmcb_struct*
    - struct vmcb_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 412
    functionName: nestedsvm_vmcb_set_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - p2m_get_nestedp2m
    - p2m_get_pagetable
    - ASSERT
    - pagetable_get_paddr
    linkageType: ''
    returnType: void
    signature: "void nestedsvm_vmcb_set_nestedp2m(struct vcpu *v,\n    struct vmcb_struct
      *vvmcb, struct vmcb_struct *n2vmcb)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:416,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:417,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:426,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:427,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:428,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:476,1
    - Dst: nsvm_vmrun_permissionmap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:484,1
    - Dst: hvm_set_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:539,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:541,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:543,1
    - Dst: hvm_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:547,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:549,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:551,1
    - Dst: nestedsvm_fpu_vmentry
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:555,1
    - Dst: hvm_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:557,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:559,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:561,1
    - Dst: hvm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:565,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:568,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:571,1
    - Dst: nestedsvm_vmcb_set_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:573,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:576,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:578,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:580,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:582,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:585,1
    - Dst: hvm_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:592,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:594,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:596,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:601,1
    - Dst: svm_vmcb_isvalid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:652,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:655,1
    - Dst: svm_vmcb_isvalid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:659,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:662,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 127
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 414
    functionDepth: 6
    functionLinenumber: 414
    functionLinenumberEnd: 673
    functionName: nsvm_vmcb_prepare4vmrun
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_paging_mode_hap
    - gdprintk
    - nestedsvm_vmcb_set_nestedp2m
    - vmcb_set_np
    - hvm_set_efer
    - hvm_inject_hw_exception
    - nsvm_vmrun_permissionmap
    - hvm_set_cr4
    - svm_vmcb_isvalid
    - paging_mode_hap
    - ASSERT
    - min
    - nestedsvm_fpu_vmentry
    - hvm_set_cr0
    - hvm_update_guest_cr
    - hvm_set_cr3
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vmcb_prepare4vmrun(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:680,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:681,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:685,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:686,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:687,1
    - Dst: vmcb_get_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:698,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:701,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:701,1
    - Dst: vmcb_get_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:702,1
    - Dst: vmcb_get_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:706,1
    - Dst: nsvm_vcpu_hostsave
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:712,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:715,1
    - Dst: nsvm_vmcb_prepare4vmrun
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:723,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:726,1
    - Dst: nestedsvm_vcpu_stgi
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - v
    - regs
    - inst_len
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 675
    functionDepth: 7
    functionLinenumber: 675
    functionLinenumberEnd: 732
    functionName: nsvm_vcpu_vmentry
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - gdprintk
    - nsvm_vcpu_hostsave
    - vmcb_get_np
    - nsvm_vmcb_prepare4vmrun
    - ASSERT
    - hvm_asid_flush_vcpu_asid
    - nestedsvm_vcpu_stgi
    - vmcb_get_asid
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: "int nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs *regs,\n
      \   unsigned int inst_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:739,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:740,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:742,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:750,1
    - Dst: nsvm_vcpu_vmentry
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:753,1
    - Dst: nestedhvm_vcpu_enter_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:758,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:765,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:770,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:772,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:779,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 734
    functionDepth: 8
    functionLinenumber: 734
    functionLinenumberEnd: 784
    functionName: nsvm_vcpu_vmrun
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_paging_mode_hap
    - gdprintk
    - paging_update_paging_modes
    - hvm_inject_hw_exception
    - nsvm_vcpu_vmentry
    - ASSERT
    - nestedhvm_vcpu_enter_guestmode
    - svm_get_insn_len
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vcpu_vmrun(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:790,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:791,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:796,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:798,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:807,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:808,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - v
    - regs
    - exitcode
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 834
    functionName: nsvm_vcpu_vmexit_inject
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - hvm_event_needs_reinjection
    - ASSERT
    - unlikely
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: "int nsvm_vcpu_vmexit_inject(struct vcpu *v, struct cpu_user_regs *regs,\n
      \   uint64_t exitcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:839,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:839,1
    - Dst: nestedsvm_vmexit_defer
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - event
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 844
    functionName: nsvm_vcpu_vmexit_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - nestedsvm_vmexit_defer
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: "int nsvm_vcpu_vmexit_event(\n    struct vcpu *v, const struct x86_event
      *event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 849
    functionName: nsvm_vcpu_hostcr3
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t nsvm_vcpu_hostcr3(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: svm_msrbit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:858,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:868,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - msr_bitmap
    - msr
    - write
    argTypes:
    - unsigned long*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 877
    functionName: nsvm_vmcb_guest_intercepts_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - svm_msrbit
    - test_bit
    linkageType: ''
    returnType: int
    signature: "int nsvm_vmcb_guest_intercepts_msr(unsigned long *msr_bitmap,\n    uint32_t
      msr, bool write)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:902,1
    - Dst: hvm_map_guest_frame_ro
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:906,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:908,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:911,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:913,1
    - Dst: hvm_map_guest_frame_ro
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:914,1
    - Dst: hvm_unmap_guest_frame
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:918,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - iopm_pa
    - exitinfo1
    argTypes:
    - paddr_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 924
    functionName: nsvm_vmcb_guest_intercepts_ioio
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - BUG
    - hvm_unmap_guest_frame
    - hvm_map_guest_frame_ro
    - unlikely
    - test_bit
    linkageType: ''
    returnType: int
    signature: int nsvm_vmcb_guest_intercepts_ioio(paddr_t iopm_pa, uint64_t exitinfo1)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:931,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:932,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:971,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:979,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:980,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:988,1
    - Dst: nestedsvm_vmcb_map
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:989,1
    - Dst: nsvm_vmcb_guest_intercepts_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:992,1
    - Dst: nestedsvm_vmcb_map
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:998,1
    - Dst: nsvm_vmcb_guest_intercepts_ioio
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1001,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 3
    argNames:
    - v
    - regs
    - exitcode
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 1009
    functionName: nsvm_vmcb_guest_intercepts_exitcode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_paging_mode_hap
    - gdprintk
    - BUG
    - nestedsvm_vmcb_map
    - ASSERT
    - nsvm_vmcb_guest_intercepts_msr
    - nsvm_vmcb_guest_intercepts_ioio
    - vcpu_nestedhvm
    linkageType: ''
    returnType: bool
    signature: "bool nsvm_vmcb_guest_intercepts_exitcode(struct vcpu *v,\n    struct
      cpu_user_regs *regs, uint64_t exitcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsvm_vmcb_guest_intercepts_exitcode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1014,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - vector
    - errcode
    argTypes:
    - struct vcpu*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1011
    functionDepth: 5
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    functionName: nsvm_vmcb_guest_intercepts_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - nsvm_vmcb_guest_intercepts_exitcode
    linkageType: ''
    returnType: bool
    signature: "bool nsvm_vmcb_guest_intercepts_event(\n    struct vcpu *v, unsigned
      int vector, int errcode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1021,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1022,1
    - Dst: svm_vmsave_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1026,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1073,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1074,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1081,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1084,1
    - Dst: vmcb_get_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1084,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1090,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1093,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1104,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1184
    functionName: nsvm_vmcb_prepare4vmexit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_paging_mode_hap
    - vmcb_set_np
    - vmcb_get_np
    - hvm_event_needs_reinjection
    - paging_mode_hap
    - unlikely
    - svm_vmsave_pa
    - memcpy
    - vcpu_nestedhvm
    linkageType: ''
    returnType: int
    signature: int nsvm_vmcb_prepare4vmexit(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1189
    functionName: nsvm_vmcb_hap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    linkageType: ''
    returnType: bool
    signature: bool nsvm_vmcb_hap_enabled(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nhvm_vcpu_p2m_base
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1202,1
    - Dst: paging_ga_to_gfn_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1211,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - v
    - L2_gpa
    - L1_gpa
    - page_order
    - p2m_acc
    - npfec
    argTypes:
    - struct vcpu*
    - paddr_t
    - paddr_t*
    - unsigned int*
    - uint8_t*
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1218
    functionName: nsvm_hap_walk_L1_p2m
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - paging_ga_to_gfn_cr3
    - nhvm_vcpu_p2m_base
    linkageType: ''
    returnType: int
    signature: "int nsvm_hap_walk_L1_p2m(\n    struct vcpu *v, paddr_t L2_gpa, paddr_t
      *L1_gpa, unsigned int *page_order,\n    uint8_t *p2m_acc, struct npfec npfec)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1222,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1223,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1225,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1225,1
    - Dst: nestedsvm_gif_isset
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1227,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1264
    functionName: nsvm_intr_blocked
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - nestedhvm_enabled
    - ASSERT
    - nestedhvm_vcpu_in_guestmode
    - nestedsvm_gif_isset
    - vcpu_nestedhvm
    linkageType: ''
    returnType: enum hvm_intblk
    signature: enum hvm_intblk nsvm_intr_blocked(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1271,1
    - Dst: nestedsvm_vcpu_clgi
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1277,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - v
    - exitcode
    - exitinfo1
    - exitinfo2
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1283
    functionName: nestedsvm_vmexit_defer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 1
    functionsReached:
    - vcpu_nestedsvm
    - nestedsvm_vcpu_clgi
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: "void nestedsvm_vmexit_defer(struct vcpu *v,\n    uint64_t exitcode,
      uint64_t exitinfo1, uint64_t exitinfo2)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1291,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1291,1
    - Dst: nsvm_vmcb_guest_intercepts_exitcode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1292,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1315,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1322,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1331,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1334,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - v
    - regs
    - exitcode
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1285
    functionDepth: 5
    functionLinenumber: 1285
    functionLinenumberEnd: 1359
    functionName: nestedsvm_check_intercepts
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - nestedhvm_paging_mode_hap
    - BUG
    - paging_mode_shadow
    - vcpu_nestedhvm
    - ASSERT
    - nsvm_vmcb_guest_intercepts_exitcode
    - paging_mode_hap
    linkageType: ''
    returnType: enum nestedhvm_vmexits
    signature: "enum nestedhvm_vmexits nestedsvm_check_intercepts(struct vcpu *v,
      struct cpu_user_regs *regs,\n    uint64_t exitcode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1367,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1367,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1368,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1368,1
    - Dst: nsvm_vmcb_prepare4vmexit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1370,1
    - Dst: nsvm_vcpu_hostrestore
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1374,1
    - Dst: nestedhvm_vcpu_exit_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1361
    functionDepth: 6
    functionLinenumber: 1361
    functionLinenumberEnd: 1380
    functionName: nestedsvm_vmexit_n2n1
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - nsvm_vmcb_prepare4vmexit
    - ASSERT
    - nsvm_vcpu_hostrestore
    - nestedhvm_vcpu_exit_guestmode
    - nestedhvm_vcpu_in_guestmode
    - vcpu_nestedhvm
    linkageType: ''
    returnType: enum nestedhvm_vmexits
    signature: enum nestedhvm_vmexits nestedsvm_vmexit_n2n1(struct vcpu *v, struct
      cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1390,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1394,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1399,1
    - Dst: nestedsvm_vmexit_n2n1
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1403,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1407,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1410,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1416,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1416,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1423,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1423,1
    - Dst: nsvm_vcpu_vmexit_inject
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1428,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1431,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - v
    - regs
    - exitcode
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1385
    functionDepth: 7
    functionLinenumber: 1385
    functionLinenumberEnd: 1440
    functionName: nestedsvm_vcpu_vmexit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - nestedhvm_paging_mode_hap
    - paging_update_paging_modes
    - gdprintk
    - BUG
    - nestedsvm_vmexit_n2n1
    - nsvm_vcpu_vmexit_inject
    - ASSERT
    - nestedhvm_vcpu_in_guestmode
    - vcpu_nestedhvm
    linkageType: ''
    returnType: enum nestedhvm_vmexits
    signature: "enum nestedhvm_vmexits nestedsvm_vcpu_vmexit(struct vcpu *v, struct
      cpu_user_regs *regs,\n    uint64_t exitcode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1445,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1450,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1453,1
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1454,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1455,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1456,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1457,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1458,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1459,1
    - Dst: nestedsvm_vcpu_vmexit
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1464,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1473,1
    - Dst: nsvm_vcpu_vmrun
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1474,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1478,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1478,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1482,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1482,1
    - Dst: nestedsvm_vmcb_set_nestedp2m
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1489,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1443
    functionDepth: 9
    functionLinenumber: 1443
    functionLinenumberEnd: 1491
    functionName: nsvm_vcpu_switch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - guest_cpu_user_regs
    - nestedhvm_paging_mode_hap
    - nestedsvm_vmcb_set_nestedp2m
    - nestedsvm_vcpu_vmexit
    - nestedhvm_enabled
    - ASSERT
    - nestedhvm_vcpu_in_guestmode
    - nsvm_vcpu_vmrun
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nsvm_vcpu_switch(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1501,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1501,1
    - Dst: nhvm_interrupt_blocked
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1503,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1526,1
    - Dst: nsvm_vmcb_guest_intercepts_exitcode
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1529,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1530,1
    - Dst: nestedsvm_vmexit_defer
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - v
    - intack
    argTypes:
    - struct vcpu*
    - struct hvm_intack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1494
    functionDepth: 5
    functionLinenumber: 1494
    functionLinenumberEnd: 1538
    functionName: nestedsvm_vcpu_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - BUG
    - nhvm_interrupt_blocked
    - ASSERT
    - nsvm_vmcb_guest_intercepts_exitcode
    - nestedsvm_vmexit_defer
    - nestedhvm_vcpu_in_guestmode
    linkageType: ''
    returnType: int
    signature: int nestedsvm_vcpu_interrupt(struct vcpu *v, const struct hvm_intack
      intack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1551
    functionName: nestedsvm_gif_isset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 1
    functionsReached:
    - vcpu_nestedsvm
    linkageType: ''
    returnType: bool
    signature: bool nestedsvm_gif_isset(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1561,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1563,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1567,1
    - Dst: nestedsvm_vcpu_stgi
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1570,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - regs
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1573
    functionName: svm_vmexit_do_stgi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - hvm_inject_hw_exception
    - nestedhvm_enabled
    - __update_guest_eip
    - svm_get_insn_len
    - nestedsvm_vcpu_stgi
    linkageType: ''
    returnType: void
    signature: void svm_vmexit_do_stgi(struct cpu_user_regs *regs, struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1579,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1582,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1584,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1588,1
    - Dst: nestedsvm_vcpu_clgi
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1591,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1594,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1597,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1598,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - regs
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1601
    functionName: svm_vmexit_do_clgi
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    - hvm_inject_hw_exception
    - nsvm_efer_svm_enabled
    - vmcb_get_vintr
    - __update_guest_eip
    - svm_get_insn_len
    - vmcb_set_vintr
    - nestedsvm_vcpu_clgi
    linkageType: ''
    returnType: void
    signature: void svm_vmexit_do_clgi(struct cpu_user_regs *regs, struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1610,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1618,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1621,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1625,1
    - Dst: vmcb_set_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1628,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1634,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1637,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1638,1
    - Dst: vmcb_set_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1641,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1649,1
    - Dst: vmcb_set_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1652,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1657,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1660,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1661,1
    - Dst: vmcb_set_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c:1664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1667
    functionName: svm_nested_features_on_efer_update
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - vmcb_set_general2_intercepts
    - nsvm_efer_svm_enabled
    - paging_mode_hap
    - vmcb_get_vintr
    - vmcb_set_vintr
    - vmcb_get_general2_intercepts
    linkageType: ''
    returnType: void
    signature: void svm_nested_features_on_efer_update(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - hvm_function_table
    argTypes:
    - struct hvm_function_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1681
    functionName: start_nested_svm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void start_nested_svm(struct hvm_function_table *hvm_function_table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: vcpu_nestedsvm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_nestedsvm(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: nsvm_efer_svm_enabled
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nsvm_efer_svm_enabled(v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: svm_nextrip_insn_length
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/emulate.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long svm_nextrip_insn_length(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: svm_nextrip_insn_length
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:64,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:68,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:73,1
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:74,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:74,1
    - Dst: hvm_emulate_init_per_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:75,1
    - Dst: x86_decode_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:76,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:77,1
    - Dst: x86_insn_length
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:80,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:81,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:82,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:93,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:94,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:95,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:99,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:102,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - v
    - instr_enc
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 107
    functionName: svm_get_insn_len
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/emulate.c
    functionUses: 3
    functionsReached:
    - guest_cpu_user_regs
    - x86_decode_insn
    - MASK_EXTR
    - hvm_inject_hw_exception
    - x86_emulate_free_state
    - svm_nextrip_insn_length
    - IS_ERR_OR_NULL
    - ASSERT
    - gprintk
    - hvm_dump_emulation_state
    - printk
    - hvm_emulate_init_per_insn
    - x86_insn_modrm
    - hvm_emulate_init_once
    - x86_insn_length
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int svm_get_insn_len(struct vcpu *v, unsigned int instr_enc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_init_once
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:119,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:119,1
    - Dst: hvm_emulate_init_per_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:120,1
    - Dst: x86_decode_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:121,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:122,1
    - Dst: x86_insn_length
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:125,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:136,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:140,1
    - Dst: hvm_dump_emulation_state
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:141,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/xen/arch/x86/hvm/svm/emulate.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 161
    functionName: svm_get_task_switch_insn_len
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/emulate.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - x86_decode_insn
    - x86_emulate_free_state
    - IS_ERR_OR_NULL
    - hvm_dump_emulation_state
    - printk
    - hvm_emulate_init_per_insn
    - x86_insn_modrm
    - hvm_emulate_init_once
    - x86_insn_length
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int svm_get_task_switch_insn_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vmcb
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: svm_vmload_pa
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void svm_vmload_pa(paddr_t vmcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vmcb
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: svm_vmsave_pa
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void svm_vmsave_pa(paddr_t vmcb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - linear
    - asid
    argTypes:
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: svm_invlpga
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void svm_invlpga(unsigned long linear, uint32_t asid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opc
    - ','
    - modrm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: INSTR_ENC
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_ENC(opc, modrm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:71,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:72,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: svm_crash_or_fault
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_inject_hw_exception
    - domain_crash
    - vmcb_get_cpl
    linkageType: ''
    returnType: void
    signature: void svm_crash_or_fault(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:81,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:84,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:86,1
    - Dst: svm_crash_or_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:87,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:91,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:91,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - regs
    - inst_len
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: __update_guest_eip
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 2
    functionsReached:
    - guest_cpu_user_regs
    - gdprintk
    - hvm_inject_hw_exception
    - svm_crash_or_fault
    - ASSERT
    - unlikely
    linkageType: ''
    returnType: void
    signature: void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:104,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: svm_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - read_efer
    - write_efer
    linkageType: ''
    returnType: void
    signature: void svm_cpu_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:109,1
    - Dst: vcpu_restore_fpu_lazy
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:111,1
    - Dst: vmcb_set_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:112,1
    - Dst: vmcb_get_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: svm_fpu_enter
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_exception_intercepts
    - vcpu_restore_fpu_lazy
    - vmcb_set_exception_intercepts
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_fpu_enter(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:119,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:121,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:122,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:122,1
    - Dst: vmcb_set_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:132,1
    - Dst: vmcb_get_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:134,1
    - Dst: vmcb_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:135,1
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 137
    functionName: svm_fpu_leave
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_cr0
    - read_cr0
    - ASSERT
    - vmcb_set_exception_intercepts
    - vmcb_get_exception_intercepts
    - vmcb_get_cr0
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_fpu_leave(struct vcpu *v)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:158,1
    - Dst: svm_fpu_enter
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:159,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:162,1
    - Dst: vmcb_get_cr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:164,1
    - Dst: monitor_ctrlreg_bitmask
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:168,1
    - Dst: vmcb_set_cr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:169,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:173,1
    - Dst: vmcb_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:175,1
    - Dst: vmcb_set_cr2
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:179,1
    - Dst: vmcb_set_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:182,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:183,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:186,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:188,1
    - Dst: hvm_asid_flush_vcpu_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:191,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:192,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:193,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:197,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:201,1
    - Dst: vmcb_set_cr4
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:218,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:221,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - v
    - cr
    - flags
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 223
    functionName: svm_update_guest_cr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_cr0
    - paging_mode_shadow
    - nestedhvm_enabled
    - hvm_asid_flush_vcpu
    - paging_mode_hap
    - hvm_paging_enabled
    - BUG
    - vmcb_set_cr_intercepts
    - nestedhvm_vcpu_in_guestmode
    - vmcb_set_cr4
    - svm_fpu_enter
    - nestedhvm_vmswitch_in_progress
    - vmcb_set_cr2
    - vmcb_set_cr3
    - monitor_ctrlreg_bitmask
    - vmcb_get_cr0
    - vcpu_nestedhvm
    - vmcb_get_cr_intercepts
    - hvm_asid_flush_vcpu_asid
    linkageType: ''
    returnType: void
    signature: "void svm_update_guest_cr(\n    struct vcpu *v, unsigned int cr, unsigned
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:229,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:231,1
    - Dst: vmcb_set_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:253,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:255,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:255,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:256,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:258,1
    - Dst: svm_nested_features_on_efer_update
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 260
    functionName: svm_update_guest_efer
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - nsvm_efer_svm_enabled
    - paging_mode_shadow
    - nestedhvm_enabled
    - ASSERT
    - vmcb_set_efer
    - svm_nested_features_on_efer_update
    - read_efer
    linkageType: ''
    returnType: void
    signature: void svm_update_guest_efer(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - msr_bitmap
    - msr
    argTypes:
    - unsigned long*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 278
    functionName: svm_msrbit
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: 'unsigned long *

      svm_msrbit(unsigned long *msr_bitmap, uint32_t msr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: svm_msrbit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:285,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:286,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:290,1
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:291,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:292,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:295,1
    - Dst: monitored_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:296,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - v
    - msr
    - flags
    argTypes:
    - struct vcpu*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: svm_intercept_msr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - monitored_msr
    - __clear_bit
    - svm_msrbit
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void svm_intercept_msr(struct vcpu *v, uint32_t msr, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:305,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: svm_enable_msr_interception
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - svm_intercept_msr
    linkageType: ''
    returnType: void
    signature: void svm_enable_msr_interception(struct domain *d, uint32_t msr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_set_dr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:320,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:328,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:329,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:330,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:331,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:333,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:334,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:335,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:336,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:339,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:340,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:341,1
    - Dst: read_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:342,1
    - Dst: vmcb_get_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:343,1
    - Dst: vmcb_get_dr7
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 345
    functionName: svm_save_dr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_dr_intercepts
    - vmcb_get_dr7
    - read_debugreg
    - rdmsrl
    - svm_intercept_msr
    - vmcb_get_dr6
    linkageType: ''
    returnType: void
    signature: void svm_save_dr(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_set_dr_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:353,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:355,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:362,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:364,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:365,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:366,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:367,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:371,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:372,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:373,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:374,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:378,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:379,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:380,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:381,1
    - Dst: vmcb_set_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:382,1
    - Dst: vmcb_set_dr7
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - vmcb
    - v
    argTypes:
    - struct vmcb_struct*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 384
    functionName: __restore_debug_registers
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 4
    functionsReached:
    - vmcb_set_dr_intercepts
    - vmcb_set_dr6
    - vmcb_set_dr7
    - boot_cpu_has
    - write_debugreg
    - svm_intercept_msr
    - ASSERT
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void __restore_debug_registers(struct vmcb_struct *vmcb, struct vcpu
      *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:396,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: svm_restore_dr
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - __restore_debug_registers
    - unlikely
    linkageType: ''
    returnType: void
    signature: void svm_restore_dr(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: svm_vmcb_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_event_needs_reinjection
    linkageType: ''
    returnType: int
    signature: int svm_vmcb_save(struct vcpu *v, struct hvm_hw_cpu *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:423,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:430,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:438,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:444,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:448,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:452,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:459,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:459,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:462,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:462,1
    - Dst: svm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:468,1
    - Dst: svm_update_guest_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:469,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:476,1
    - Dst: vmcb_set_np
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:478,1
    - Dst: vmcb_set_g_pat
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:479,1
    - Dst: vmcb_set_h_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:480,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:480,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:480,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:484,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:486,1
    - Dst: paging_update_paging_modes
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:495,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 419
    functionDepth: 7
    functionLinenumber: 419
    functionLinenumberEnd: 498
    functionName: svm_vmcb_restore
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_h_cr3
    - paging_update_paging_modes
    - gdprintk
    - pagetable_from_page
    - vmcb_set_np
    - paging_mode_shadow
    - p2m_get_pagetable
    - get_page_from_gfn
    - pagetable_null
    - paging_mode_hap
    - hvm_event_needs_reinjection
    - svm_update_guest_cr
    - pagetable_get_page
    - put_page
    - vmcb_set_g_pat
    - dprintk
    - pagetable_get_paddr
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int svm_vmcb_restore(struct vcpu *v, struct hvm_hw_cpu *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 509
    functionName: svm_save_cpu_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void svm_save_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svm_update_guest_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - v
    - data
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 522
    functionName: svm_load_cpu_state
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_update_guest_efer
    linkageType: ''
    returnType: void
    signature: void svm_load_cpu_state(struct vcpu *v, struct hvm_hw_cpu *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svm_save_cpu_state
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:526,1
    - Dst: svm_vmcb_save
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: svm_save_vmcb_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_save_cpu_state
    - svm_vmcb_save
    linkageType: ''
    returnType: void
    signature: void svm_save_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_load_cpu_state
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:532,1
    - Dst: svm_vmcb_restore
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:533,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:535,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_hw_cpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: svm_load_vmcb_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_load_cpu_state
    - gdprintk
    - domain_crash
    - svm_vmcb_restore
    linkageType: ''
    returnType: int
    signature: int svm_load_vmcb_ctxt(struct vcpu *v, struct hvm_hw_cpu *ctxt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: svm_get_interrupt_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    linkageType: ''
    returnType: unsigned cf_check
    signature: unsigned cf_check svm_get_interrupt_shadow(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:561,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - intr_shadow
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 570
    functionName: svm_set_interrupt_shadow
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    linkageType: ''
    returnType: void
    signature: "void svm_set_interrupt_shadow(\n    struct vcpu *v, unsigned int intr_shadow)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:576,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:578,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:578,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:580,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 583
    functionName: svm_guest_x86_mode
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - hvm_long_mode_active
    - likely
    - unlikely
    linkageType: ''
    returnType: int
    signature: int svm_guest_x86_mode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:590,1
    - Dst: vmcb_set_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:598,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:601,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:609,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 617
    functionName: svm_cpuid_policy_changed
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_intercept_msr
    - vmcb_set_exception_intercepts
    - vmcb_get_exception_intercepts
    linkageType: ''
    returnType: void
    signature: void svm_cpuid_policy_changed(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: svm_vmload_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:626,1
    - Dst: svm_vmsave_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - v
    - new_state
    argTypes:
    - struct vcpu*
    - enum vmcb_sync_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 638
    functionName: svm_sync_vmcb
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - svm_vmload_pa
    - svm_vmsave_pa
    linkageType: ''
    returnType: void
    signature: void svm_sync_vmcb(struct vcpu *v, enum vmcb_sync_state new_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: svm_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_cpl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int svm_get_cpl(struct vcpu *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:650,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:650,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:655,1
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:662,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:666,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:679,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:684,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:685,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 689
    functionName: svm_get_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vcpu_runnable
    - svm_sync_vmcb
    - domain_crash
    - ASSERT_UNREACHABLE
    - vmcb_get_cpl
    linkageType: ''
    returnType: void
    signature: "void svm_get_segment_register(\n    struct vcpu *v, enum x86_segment
      seg, struct segment_register *reg)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:696,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:696,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:717,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:721,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:722,1
    - Dst: vmcb_set_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:729,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:757,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - v
    - seg
    - reg
    argTypes:
    - struct vcpu*
    - enum x86_segment
    - struct segment_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 760
    functionName: svm_set_segment_register
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_cpl
    - ASSERT
    - vcpu_runnable
    - svm_sync_vmcb
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void svm_set_segment_register(\n    struct vcpu *v, enum x86_segment
      seg, struct segment_register *reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:766,1
    - Dst: vmcb_set_g_pat
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - gpat
    argTypes:
    - struct vcpu*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 771
    functionName: svm_set_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_g_pat
    - paging_mode_shadow
    linkageType: ''
    returnType: int
    signature: int svm_set_guest_pat(struct vcpu *v, u64 gpat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:777,1
    - Dst: vmcb_get_g_pat
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - gpat
    argTypes:
    - struct vcpu*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 782
    functionName: svm_get_guest_pat
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_g_pat
    - paging_mode_shadow
    linkageType: ''
    returnType: int
    signature: int svm_get_guest_pat(struct vcpu *v, u64 *gpat)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:791,1
    - Dst: vmcb_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:793,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:797,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:798,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:800,1
    - Dst: vmcb_get_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:802,1
    - Dst: vmcb_get_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:803,1
    - Dst: vmcb_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:804,1
    - Dst: vmcb_set_tsc_offset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - v
    - offset
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 808
    functionName: svm_set_tsc_offset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - vmcb_set_tsc_offset
    - nestedhvm_vcpu_in_guestmode
    - vmcb_get_tsc_offset
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_set_tsc_offset(struct vcpu *v, uint64_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:813,1
    - Dst: vmcb_get_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:814,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:825,1
    - Dst: vmcb_set_general2_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - enable
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 827
    functionName: svm_set_rdtsc_exiting
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    - vmcb_set_general2_intercepts
    - vmcb_get_general2_intercepts
    linkageType: ''
    returnType: void
    signature: void svm_set_rdtsc_exiting(struct vcpu *v, bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:834,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - enable
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 846
    functionName: svm_set_descriptor_access_exiting
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_get_general1_intercepts
    - vmcb_set_general1_intercepts
    linkageType: ''
    returnType: void
    signature: "void svm_set_descriptor_access_exiting(\n    struct vcpu *v, bool
      enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - struct vcpu*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 862
    functionName: svm_get_insn_bytes
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int svm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 885
    functionName: svm_init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void svm_init_hypercall_page(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 892
    functionName: svm_tsc_ratio_save
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void svm_tsc_ratio_save(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:897,1
    - Dst: hvm_tsc_scaling_ratio
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 898
    functionName: svm_tsc_ratio_load
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_tsc_scaling_ratio
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void svm_tsc_ratio_load(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:902,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:909,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:909,1
    - Dst: svm_fpu_leave
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:913,1
    - Dst: svm_save_dr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:915,1
    - Dst: svm_tsc_ratio_save
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:916,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:918,1
    - Dst: svm_vmload_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:919,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:919,1
    - Dst: enable_each_ist
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:922,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:922,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:930,1
    - Dst: amd_set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:931,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 933
    functionName: svm_ctxt_switch_from
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_save_dr
    - svm_vmload_pa
    - svm_tsc_ratio_save
    - amd_set_legacy_ssbd
    - smp_processor_id
    - svm_fpu_leave
    - enable_each_ist
    - ASSERT
    - svm_sync_vmcb
    - per_cpu
    - read_efer
    - unlikely
    linkageType: ''
    returnType: void
    signature: void svm_ctxt_switch_from(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:938,1
    - Dst: disable_each_ist
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:951,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:951,1
    - Dst: svm_restore_dr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:953,1
    - Dst: svm_tsc_ratio_load
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:956,1
    - Dst: wrmsr_tsc_aux
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:959,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:964,1
    - Dst: amd_set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 967
    functionName: svm_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_tsc_ratio_load
    - wrmsr_tsc_aux
    - amd_set_legacy_ssbd
    - svm_restore_dr
    - smp_processor_id
    - ASSERT
    - per_cpu
    - disable_each_ist
    linkageType: ''
    returnType: void
    signature: void svm_ctxt_switch_to(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:977,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:979,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:979,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:983,1
    - Dst: vmcb_get_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:985,1
    - Dst: vmcb_set_exception_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:988,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:993,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:995,1
    - Dst: hvm_migrate_timers
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:996,1
    - Dst: hvm_migrate_pirqs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:997,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:999,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1002,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1007,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1009,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1010,1
    - Dst: hvm_do_resume
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1013,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1015,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 1016
    functionName: svm_do_resume
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - vmcb_set_vintr
    - hvm_do_resume
    - smp_processor_id
    - nestedhvm_enabled
    - vlapic_hw_disabled
    - hvm_migrate_timers
    - reset_stack_and_jump
    - vlapic_get_reg
    - vmcb_get_vintr
    - hvm_asid_flush_vcpu
    - vmcb_set_exception_intercepts
    - vmcb_get_exception_intercepts
    - vcpu_vlapic
    - hvm_migrate_pirqs
    - nestedhvm_vcpu_in_guestmode
    linkageType: ''
    returnType: void
    signature: void svm_do_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1020,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1024,1
    - Dst: hvmemul_cache_disabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1024,1
    - Dst: svm_asid_handle_vmrun
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1026,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1028,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1029,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1037
    functionName: svm_vmenter_helper
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - TRACE_TIME
    - ASSERT
    - svm_sync_vmcb
    - svm_asid_handle_vmrun
    - nestedhvm_vcpu_in_guestmode
    - hvmemul_cache_disabled
    linkageType: ''
    returnType: void
    signature: void svm_vmenter_helper(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1043,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1049,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1049,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1064
    functionName: svm_guest_osvw_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - max
    - min
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void svm_guest_osvw_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1068,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1074
    functionName: svm_host_osvw_reset
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void svm_host_osvw_reset(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1078,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1085,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1089,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1090,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1103
    functionName: svm_host_osvw_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - test_bit
    - spin_unlock
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void svm_host_osvw_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1108,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1111,1
    - Dst: outb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1114,1
    - Dst: amd_check_disable_c1e
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dir
    - port
    - bytes
    - val
    argTypes:
    - int
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1119
    functionName: acpi_c1e_quirk
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - amd_check_disable_c1e
    - inb
    - ASSERT
    - outb
    linkageType: ''
    returnType: int
    signature: "int acpi_c1e_quirk(\n    int dir, unsigned int port, unsigned int
      bytes, uint32_t *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_guest_osvw_init
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1131,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1133,1
    - Dst: register_portio_handler
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1121
    functionDepth: 3
    functionLinenumber: 1121
    functionLinenumberEnd: 1137
    functionName: svm_domain_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_guest_osvw_init
    - is_hardware_domain
    - register_portio_handler
    linkageType: ''
    returnType: int
    signature: int svm_domain_initialise(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_create_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1145,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1139
    functionDepth: 3
    functionLinenumber: 1139
    functionLinenumberEnd: 1154
    functionName: svm_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - dprintk
    - svm_create_vmcb
    linkageType: ''
    returnType: int
    signature: int svm_vcpu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svm_destroy_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1156
    functionDepth: 3
    functionLinenumber: 1156
    functionLinenumberEnd: 1159
    functionName: svm_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - svm_destroy_vmcb
    linkageType: ''
    returnType: void
    signature: void svm_vcpu_destroy(struct vcpu *v)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1173,1
    - Dst: vmcb_get_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1181,1
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1184,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1201,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1208,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1209,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1210,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1215,1
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1251,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1169
    functionDepth: 5
    functionLinenumber: 1169
    functionLinenumberEnd: 1274
    functionName: svm_emul_swint_injection
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - hvm_virtual_to_linear_addr
    - vmcb_get_efer
    - hvm_copy_from_guest_linear
    - vmcb_get_cpl
    - vmcb_get_cr0
    - hvm_get_segment_register
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void svm_emul_swint_injection(struct x86_event *event)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1282,1
    - Dst: svm_emul_swint_injection
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1294,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1301,1
    - Dst: vmcb_set_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1302,1
    - Dst: vmcb_get_dr6
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1302,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1309,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1315,1
    - Dst: vmcb_set_cr2
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1317,1
    - Dst: hvm_combine_hw_exceptions
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1323,1
    - Dst: vmcb_get_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1389,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1395,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1399,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1402,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1276
    functionDepth: 6
    functionLinenumber: 1276
    functionLinenumberEnd: 1403
    functionName: svm_inject_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - vmcb_set_dr6
    - TRACE
    - vmcb_get_dr6
    - __restore_debug_registers
    - ASSERT
    - vmcb_get_efer
    - hvm_combine_hw_exceptions
    - vmcb_set_cr2
    - svm_emul_swint_injection
    - domain_pause_for_debugger
    linkageType: ''
    returnType: void
    signature: void svm_inject_event(const struct x86_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1408
    functionName: svm_event_pending
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool svm_event_pending(const struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1412,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1413,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1417,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1417,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1422,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1424,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1424,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1425,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1431,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1434
    functionName: svm_cpu_dead
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page_global
    - free_domheap_page
    - per_cpu
    - maddr_to_page
    linkageType: ''
    returnType: void
    signature: void svm_cpu_dead(unsigned int cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1438,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1439,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1440,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1445,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1449,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1453,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1453,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1454,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1459,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1464,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1464,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1467,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1467,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1468,1
    - Dst: svm_cpu_dead
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1436
    functionDepth: 2
    functionLinenumber: 1436
    functionLinenumberEnd: 1476
    functionName: svm_cpu_up_prepare
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - page_to_mfn
    - clear_domain_page
    - alloc_domheap_page
    - MEMF_node
    - per_cpu
    - page_to_maddr
    - svm_cpu_dead
    - __map_domain_page_global
    linkageType: ''
    returnType: int
    signature: int svm_cpu_up_prepare(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_amd_erratum
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1483,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1487,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1488,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1492
    functionName: svm_init_erratum_383
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - cpu_has_amd_erratum
    - wrmsr_safe
    - printk
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void svm_init_erratum_383(const struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1497,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1506
    functionName: svm_load_segs_prefetch
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - prefetchw
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void svm_load_segs_prefetch(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1512,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1513,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1515,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1528,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1529,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1534,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1536,1
    - Dst: svm_vmload_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1546,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - ldt_ents
    - ldt_base
    - fs_base
    - gs_base
    - gs_shadow
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1549
    functionName: svm_load_segs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - _set_tssldt_desc
    - svm_vmload_pa
    - smp_processor_id
    - likely
    - this_cpu
    - per_cpu
    - unlikely
    - memset
    linkageType: ''
    returnType: bool
    signature: "bool svm_load_segs(unsigned int ldt_ents, unsigned long ldt_base,\n
      \                  unsigned long fs_base, unsigned long gs_base,\n                   unsigned
      long gs_shadow)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1556,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1560,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1563,1
    - Dst: svm_cpu_up_prepare
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1567,1
    - Dst: write_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1570,1
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1570,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1573,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1573,1
    - Dst: svm_init_erratum_383
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1576,1
    - Dst: svm_asid_init
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1579,1
    - Dst: svm_host_osvw_init
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1582,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1595,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1596,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1596,1
    - Dst: svm_vmsave_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1598,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1552
    functionDepth: 3
    functionLinenumber: 1552
    functionLinenumberEnd: 1601
    functionName: _svm_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - rdmsr
    - write_efer
    - smp_processor_id
    - rdmsrl
    - svm_init_erratum_383
    - svm_host_osvw_init
    - IS_ENABLED
    - ASSERT
    - wrmsrl
    - per_cpu
    - printk
    - read_efer
    - svm_cpu_up_prepare
    - svm_vmsave_pa
    - svm_asid_init
    linkageType: ''
    returnType: int
    signature: int _svm_cpu_up(bool bsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _svm_cpu_up
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1603
    functionDepth: 4
    functionLinenumber: 1603
    functionLinenumberEnd: 1606
    functionName: svm_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - _svm_cpu_up
    linkageType: ''
    returnType: int
    signature: int svm_cpu_up(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hvm_hap_nested_page_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1636,1
    - Dst: p2m_get_p2m
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1647,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1648,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1648,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1652,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1655,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1663,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1663,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1663,1
    - Dst: nestedsvm_vmexit_defer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1665,1
    - Dst: p2m_get_p2m
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1672,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1673,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1673,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1675,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1677,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - v
    - regs
    - pfec
    - gpa
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    - uint64_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1679
    functionName: svm_do_nested_pgfault
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - p2m_get_gfn_type_access
    - hvm_hap_nested_page_fault
    - p2m_get_p2m
    - _gfn
    - mfn_x
    - trace
    - nestedhvm_enabled
    - ASSERT
    - nestedsvm_vmexit_defer
    - domain_crash
    - nestedhvm_vcpu_in_guestmode
    linkageType: ''
    returnType: void
    signature: "void svm_do_nested_pgfault(struct vcpu *v,\n    struct cpu_user_regs
      *regs, uint64_t pfec, paddr_t gpa)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1685,1
    - Dst: svm_fpu_enter
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1687,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1693,1
    - Dst: vmcb_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1695,1
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1695,1
    - Dst: vmcb_set_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1700,1
    - Dst: vmcb_get_cr0
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1681
    functionDepth: 6
    functionLinenumber: 1681
    functionLinenumberEnd: 1701
    functionName: svm_fpu_dirty_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vmcb_set_cr0
    - svm_fpu_enter
    - hvm_inject_hw_exception
    - vmcb_get_cr0
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_fpu_dirty_intercept(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_mov_to_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1713,1
    - Dst: hvm_mov_from_cr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1713,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - vmcb
    - regs
    argTypes:
    - struct vmcb_struct*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1703
    functionDepth: 3
    functionLinenumber: 1703
    functionLinenumberEnd: 1717
    functionName: svm_vmexit_do_cr_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_mov_to_cr
    - __update_guest_eip
    - hvm_mov_from_cr
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_cr_access(\n    struct vmcb_struct *vmcb, struct
      cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1721,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1723,1
    - Dst: __restore_debug_registers
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1725
    functionName: svm_dr_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - __restore_debug_registers
    - TRACE
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_dr_access(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1733,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1751,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1795,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1805,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1824,1
    - Dst: vmcb_get_debugctlmsr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1838,1
    - Dst: vmcb_get_lastbranchfromip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1842,1
    - Dst: vmcb_get_lastbranchtoip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1846,1
    - Dst: vmcb_get_lastintfromip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1850,1
    - Dst: vmcb_get_lastinttoip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1854,1
    - Dst: vpmu_do_rdmsr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1877,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1901,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1907,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1911,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 134
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1917
    functionName: svm_msr_read_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - vmcb_get_lastbranchfromip
    - vmcb_get_lastintfromip
    - gdprintk
    - MSR_IA32_MCx_MISC
    - vpmu_do_rdmsr
    - svm_sync_vmcb
    - vmcb_get_debugctlmsr
    - rdmsr_safe
    - vmcb_get_lastbranchtoip
    - HVM_DBG_LOG
    - vmcb_get_lastinttoip
    linkageType: ''
    returnType: int
    signature: "int svm_msr_read_intercept(\n    unsigned int msr, uint64_t *msr_content)"
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedsvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1925,1
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1939,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:1952,1
    - Dst: vmcb_set_debugctlmsr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2000,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2004,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2005,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2006,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2007,1
    - Dst: svm_disable_intercept_for_msr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2008,1
    - Dst: vmcb_set_lastbranchfromip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2012,1
    - Dst: vmcb_set_lastbranchtoip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2016,1
    - Dst: vmcb_set_lastintfromip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2020,1
    - Dst: vmcb_set_lastinttoip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2024,1
    - Dst: vpmu_do_wrmsr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2047,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2067,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2071,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2088,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2091,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 144
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 1919
    functionDepth: 2
    functionLinenumber: 1919
    functionLinenumberEnd: 2101
    functionName: svm_msr_write_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - vcpu_nestedsvm
    - svm_disable_intercept_for_msr
    - gdprintk
    - MSR_IA32_MCx_MISC
    - vmcb_set_lastintfromip
    - vpmu_do_wrmsr
    - vmcb_set_lastbranchfromip
    - vmcb_set_debugctlmsr
    - svm_sync_vmcb
    - rdmsr_safe
    - is_canonical_address
    - vmcb_set_lastinttoip
    - vmcb_set_lastbranchtoip
    linkageType: ''
    returnType: int
    signature: "int svm_msr_write_intercept(\n    unsigned int msr, uint64_t msr_content)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2107,1
    - Dst: hvm_msr_read_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2117,1
    - Dst: msr_split
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2119,1
    - Dst: hvm_msr_write_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2122,1
    - Dst: msr_fold
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2122,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2125,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2103
    functionDepth: 6
    functionLinenumber: 2103
    functionLinenumberEnd: 2128
    functionName: svm_do_msr_access
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_inject_hw_exception
    - msr_fold
    - msr_split
    - __update_guest_eip
    - hvm_msr_read_intercept
    - svm_get_insn_len
    - hvm_msr_write_intercept
    linkageType: ''
    returnType: void
    signature: void svm_do_msr_access(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2135,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2137,1
    - Dst: hvm_hlt
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vmcb
    - regs
    argTypes:
    - struct vmcb_struct*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2130
    functionDepth: 4
    functionLinenumber: 2130
    functionLinenumberEnd: 2140
    functionName: svm_vmexit_do_hlt
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_hlt
    - __update_guest_eip
    - svm_get_insn_len
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_hlt(struct vmcb_struct *vmcb,\n                              struct
      cpu_user_regs *regs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2150,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2154,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2158,1
    - Dst: hvm_rdtsc_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - regs
    - rdtscp
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2142
    functionDepth: 4
    functionLinenumber: 2142
    functionLinenumberEnd: 2164
    functionName: svm_vmexit_do_rdtsc
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_rdtsc_intercept
    - __update_guest_eip
    - svm_get_insn_len
    - hvm_inject_hw_exception
    linkageType: ''
    returnType: void
    signature: void svm_vmexit_do_rdtsc(struct cpu_user_regs *regs, bool rdtscp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2170,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2172,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2178,1
    - Dst: vcpu_yield
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2166
    functionDepth: 4
    functionLinenumber: 2166
    functionLinenumberEnd: 2180
    functionName: svm_vmexit_do_pause
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - __update_guest_eip
    - vcpu_yield
    - svm_get_insn_len
    linkageType: ''
    returnType: void
    signature: void svm_vmexit_do_pause(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2186,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2188,1
    - Dst: nestedsvm_vmcb_map
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2192,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2194,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2195,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - regs
    - v
    - vmcbaddr
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2182
    functionDepth: 4
    functionLinenumber: 2182
    functionLinenumberEnd: 2201
    functionName: svm_vmexit_do_vmrun
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - hvm_inject_hw_exception
    - nsvm_efer_svm_enabled
    - nestedsvm_vmcb_map
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_vmrun(struct cpu_user_regs *regs,\n                    struct
      vcpu *v, uint64_t vmcbaddr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2208,1
    - Dst: nestedsvm_vmcb_map
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2210,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2214,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2219,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2219,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - v
    - vmcbaddr
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2203
    functionDepth: 4
    functionLinenumber: 2203
    functionLinenumberEnd: 2226
    functionName: nsvm_get_nvmcb_page
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - p2m_is_ram
    - nestedsvm_vmcb_map
    - put_page
    - get_page_from_gfn
    - p2m_is_readonly
    - vcpu_nestedhvm
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      nsvm_get_nvmcb_page(struct vcpu *v, uint64_t vmcbaddr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2236,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2239,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2241,1
    - Dst: nsvm_get_nvmcb_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2245,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2248,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2250,1
    - Dst: svm_vmload_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2254,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2254,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2255,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - vmcb
    - regs
    - v
    - vmcbaddr
    argTypes:
    - struct vmcb_struct*
    - struct cpu_user_regs*
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2228
    functionDepth: 5
    functionLinenumber: 2228
    functionLinenumberEnd: 2261
    functionName: svm_vmexit_do_vmload
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_vmload_pa
    - gdprintk
    - hvm_inject_hw_exception
    - nsvm_efer_svm_enabled
    - nsvm_get_nvmcb_page
    - __update_guest_eip
    - svm_get_insn_len
    - put_page
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_vmload(struct vmcb_struct *vmcb,\n                     struct
      cpu_user_regs *regs,\n                     struct vcpu *v, uint64_t vmcbaddr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2271,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2274,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2276,1
    - Dst: nsvm_get_nvmcb_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2280,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2283,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2285,1
    - Dst: svm_vmsave_pa
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2289,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2289,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2290,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - vmcb
    - regs
    - v
    - vmcbaddr
    argTypes:
    - struct vmcb_struct*
    - struct cpu_user_regs*
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2263
    functionDepth: 5
    functionLinenumber: 2263
    functionLinenumberEnd: 2292
    functionName: svm_vmexit_do_vmsave
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - hvm_inject_hw_exception
    - nsvm_efer_svm_enabled
    - nsvm_get_nvmcb_page
    - __update_guest_eip
    - svm_get_insn_len
    - put_page
    - svm_vmsave_pa
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,\n                     struct
      cpu_user_regs *regs,\n                     struct vcpu *v, uint64_t vmcbaddr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2303,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2311,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2312,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2312,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2314,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2315,1
    - Dst: flush_tlb_mask
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2294
    functionDepth: 1
    functionLinenumber: 2294
    functionLinenumberEnd: 2321
    functionName: svm_is_erratum_383
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - this_cpu
    - wrmsrl
    - flush_tlb_mask
    - MSR_IA32_MCx_STATUS
    linkageType: ''
    returnType: int
    signature: int svm_is_erratum_383(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_is_erratum_383
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2326,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2328,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2323
    functionDepth: 2
    functionLinenumber: 2323
    functionLinenumberEnd: 2331
    functionName: svm_vmexit_mce_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - domain_crash
    - svm_is_erratum_383
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_mce_intercept(\n    struct vcpu *v, struct cpu_user_regs
      *regs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2335,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2337
    functionName: svm_wbinvd_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - flush_all
    - cache_flush_permitted
    linkageType: ''
    returnType: void
    signature: void svm_wbinvd_intercept(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2342,1
    - Dst: svm_wbinvd_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2348,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - regs
    - invld
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2339
    functionDepth: 4
    functionLinenumber: 2339
    functionLinenumberEnd: 2351
    functionName: svm_vmexit_do_invalidate_cache
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - __update_guest_eip
    - svm_wbinvd_intercept
    - svm_get_insn_len
    linkageType: ''
    returnType: void
    signature: "void svm_vmexit_do_invalidate_cache(struct cpu_user_regs *regs,\n
      \                                          bool invld)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: svm_invlpga
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2356,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - linear
    - asid
    argTypes:
    - struct vcpu*
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2353
    functionDepth: 1
    functionLinenumber: 2353
    functionLinenumberEnd: 2360
    functionName: svm_invlpga_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_invlpga
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: "void svm_invlpga_intercept(\n    struct vcpu *v, unsigned long linear,
      uint32_t asid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2364,1
    - Dst: paging_invlpg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - linear
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2362
    functionDepth: 2
    functionLinenumber: 2362
    functionLinenumberEnd: 2366
    functionName: svm_invlpg_intercept
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - TRACE
    - paging_invlpg
    linkageType: ''
    returnType: void
    signature: void svm_invlpg_intercept(unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2373,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2376
    functionName: is_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC
    - x86_insn_modrm
    linkageType: ''
    returnType: bool
    signature: "bool is_invlpg(\n    const struct x86_emulate_state *state, const
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2378
    functionDepth: 2
    functionLinenumber: 2378
    functionLinenumberEnd: 2382
    functionName: svm_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - hvm_asid_flush_vcpu
    linkageType: ''
    returnType: void
    signature: void svm_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - info
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2397
    functionName: svm_get_pending_event
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool svm_get_pending_event(\n    struct vcpu *v, struct x86_event
      *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: svm_sync_vmcb
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2412,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2416,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - v
    - reg
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2399
    functionDepth: 2
    functionLinenumber: 2399
    functionLinenumberEnd: 2421
    functionName: svm_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - svm_sync_vmcb
    - printk
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t svm_get_reg(struct vcpu *v, unsigned int reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2435,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2440
    functionName: svm_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - printk
    linkageType: ''
    returnType: void
    signature: void svm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: svm_host_osvw_reset
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2504,1
    - Dst: _svm_cpu_up
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2506,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2508,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2509,1
    - Dst: setup_vmcb_dump
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2513,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2516,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2518,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2522,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2528,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2529,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2530,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2531,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2532,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2533,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2534,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2535,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2536,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2537,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2538,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2539,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2540,1
    - Dst: P
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2541,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2500
    functionDepth: 4
    functionLinenumber: 2500
    functionLinenumberEnd: 2552
    functionName: start_svm
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached:
    - P
    - __clear_bit
    - cpuid_edx
    - svm_host_osvw_reset
    - printk
    - setup_clear_cpu_cap
    - _svm_cpu_up
    - setup_vmcb_dump
    linkageType: ''
    returnType: struct hvm_function_table
    signature: struct hvm_function_table * __init start_svm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2527
    functionDepth: 0
    functionLinenumber: 2527
    functionLinenumberEnd: 2528
    functionName: P
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(p,s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2554
    functionDepth: 0
    functionLinenumber: 2554
    functionLinenumberEnd: 2565
    functionName: svm_fill_funcs
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void svm_fill_funcs(void)
  - BBCount: 106
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2569,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2576,1
    - Dst: hvm_sanitize_regs_fields
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2583,1
    - Dst: vmcb_get_efer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2584,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2586,1
    - Dst: vmcb_get_cr3
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2587,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2589,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2589,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2599,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2601,1
    - Dst: vlapic_set_reg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2602,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2604,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2609,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2610,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2613,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2619,1
    - Dst: paging_update_nestedmode
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2623,1
    - Dst: nestedsvm_check_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2631,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2635,1
    - Dst: nestedsvm_vmexit_n2n1
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2647,1
    - Dst: nestedsvm_vmexit_defer
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2653,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2656,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2657,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2660,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2666,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2670,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2672,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2675,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2677,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2682,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2684,1
    - Dst: svm_vmcb_dump
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2685,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2686,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2690,1
    - Dst: hvm_maybe_deassert_evtchn_irq
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2695,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2700,1
    - Dst: hvm_event_needs_reinjection
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2701,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2709,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2714,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2719,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2729,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2737,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2743,1
    - Dst: hvm_monitor_debug
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2745,1
    - Dst: hvm_inject_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2752,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2756,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2760,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2768,1
    - Dst: domain_pause_for_debugger
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2770,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2774,1
    - Dst: hvm_monitor_debug
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2775,1
    - Dst: hvm_inject_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2781,1
    - Dst: svm_fpu_dirty_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2787,1
    - Dst: HVM_DBG_LOG
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2796,1
    - Dst: paging_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2803,1
    - Dst: trace_will_trace_event
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2808,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2810,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2811,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2813,1
    - Dst: hvm_inject_page_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2817,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2822,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2823,1
    - Dst: hvm_ud_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2827,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2832,1
    - Dst: svm_vmexit_mce_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2833,1
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2838,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2839,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2844,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2845,1
    - Dst: svm_vmexit_do_invalidate_cache
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2851,1
    - Dst: svm_get_task_switch_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2897,1
    - Dst: hvm_task_switch
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2900,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2911,1
    - Dst: hvm_vmexit_cpuid
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2914,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2919,1
    - Dst: svm_vmexit_do_hlt
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2924,1
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2928,1
    - Dst: hvm_monitor_io
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2932,1
    - Dst: handle_pio
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2944,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2947,1
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2949,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2950,1
    - Dst: svm_vmexit_do_cr_access
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2956,1
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2957,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2958,1
    - Dst: svm_invlpg_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2964,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2965,1
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2967,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2968,1
    - Dst: nsvm_efer_svm_enabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2972,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2974,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2977,1
    - Dst: svm_invlpga_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2979,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2980,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2984,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2986,1
    - Dst: TRACE
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2987,1
    - Dst: hvm_hypercall
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2989,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2990,1
    - Dst: svm_dr_access
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2995,1
    - Dst: svm_do_msr_access
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:2999,1
    - Dst: hvm_triple_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3003,1
    - Dst: svm_vmexit_do_rdtsc
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3008,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3015,1
    - Dst: svm_vmexit_do_vmrun
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3019,1
    - Dst: svm_vmexit_do_vmload
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3022,1
    - Dst: svm_vmexit_do_vmsave
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3025,1
    - Dst: svm_vmexit_do_stgi
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3028,1
    - Dst: svm_vmexit_do_clgi
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3031,1
    - Dst: vmcb_get_cpl
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3035,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3036,1
    - Dst: svm_get_insn_len
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3037,1
    - Dst: hvm_handle_xsetbv
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3038,1
    - Dst: msr_fold
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3038,1
    - Dst: __update_guest_eip
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3039,1
    - Dst: p2m_pt_handle_deferred_changes
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3049,1
    - Dst: svm_do_nested_pgfault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3052,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3054,1
    - Dst: vmcb_get_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3063,1
    - Dst: vmcb_set_general1_intercepts
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3076,1
    - Dst: svm_vmexit_do_pause
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3081,1
    - Dst: E2D
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3093,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3095,1
    - Dst: E2D
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3095,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3096,1
    - Dst: E2D
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3096,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3097,1
    - Dst: E2D
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3097,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3098,1
    - Dst: E2D
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3098,1
    - Dst: hvm_descriptor_access_intercept
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3101,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3111,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3117,1
    - Dst: svm_crash_or_fault
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3121,1
    - Dst: vlapic_hw_disabled
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3126,1
    - Dst: vmcb_get_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3130,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3132,1
    - Dst: vmcb_set_vintr
      Src: /src/xen/xen/arch/x86/hvm/svm/svm.c:3133,1
    CyclomaticComplexity: 122
    EdgeCount: 122
    ICount: 342
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 2567
    functionDepth: 7
    functionLinenumber: 2567
    functionLinenumberEnd: 3134
    functionName: svm_vmexit_handler
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 0
    functionsReached:
    - svm_vmexit_do_vmsave
    - TRACE
    - likely
    - svm_vmexit_do_vmload
    - vlapic_hw_disabled
    - svm_do_msr_access
    - perfc_incra
    - vmcb_get_cr3
    - nestedsvm_vmexit_defer
    - hvm_ud_intercept
    - domain_crash
    - paging_update_nestedmode
    - gdprintk
    - svm_fpu_dirty_intercept
    - handle_pio
    - vm_event_is_enabled
    - vcpu_nestedhvm
    - perfc_incr
    - unlikely
    - hvm_triple_fault
    - svm_vmexit_do_hlt
    - svm_vmexit_do_rdtsc
    - hvm_sanitize_regs_fields
    - TRACE_TIME
    - vlapic_set_reg
    - hvm_event_needs_reinjection
    - svm_invlpga_intercept
    - paging_mode_hap
    - svm_vmexit_do_invalidate_cache
    - nsvm_efer_svm_enabled
    - BUG_ON
    - hvm_maybe_deassert_evtchn_irq
    - E2D
    - vmcb_get_vintr
    - svm_vmexit_do_cr_access
    - hvm_monitor_io
    - guest_cpu_user_regs
    - vmcb_get_general1_intercepts
    - hvm_hypercall
    - hvm_inject_exception
    - msr_fold
    - hvm_vmexit_cpuid
    - vcpu_vlapic
    - paging_fault
    - nestedhvm_vcpu_in_guestmode
    - svm_get_task_switch_insn_len
    - svm_do_nested_pgfault
    - svm_invlpg_intercept
    - svm_crash_or_fault
    - __update_guest_eip
    - hvm_descriptor_access_intercept
    - vmcb_set_vintr
    - HVM_DBG_LOG
    - vmcb_set_general1_intercepts
    - nestedsvm_check_intercepts
    - hvm_emulate_one_insn
    - svm_vmexit_do_vmrun
    - vmcb_get_cpl
    - hvm_handle_xsetbv
    - nestedhvm_enabled
    - trace_will_trace_event
    - BUILD_BUG_ON
    - gprintk
    - hvm_long_mode_active
    - svm_vmexit_mce_intercept
    - BUG
    - p2m_pt_handle_deferred_changes
    - vmcb_get_efer
    - svm_get_insn_len
    - domain_pause_for_debugger
    - svm_dr_access
    - nestedsvm_vmexit_n2n1
    - hvm_inject_hw_exception
    - svm_vmexit_do_clgi
    - svm_vmexit_do_stgi
    - svm_vmexit_do_pause
    - vlapic_get_reg
    - svm_vmcb_dump
    - hvm_inject_page_fault
    - hvm_task_switch
    - hvm_monitor_debug
    linkageType: ''
    returnType: void
    signature: void svm_vmexit_handler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3092
    functionName: E2D
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/svm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E2D(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - type
    - ','
    - cleanbit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 587
    functionName: VMCB_ACCESSORS_
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCB_ACCESSORS_(name, type, cleanbit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - cleanbit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: VMCB_ACCESSORS
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCB_ACCESSORS(name, cleanbit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has_amd_erratum
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:19,1
    - Dst: cpuid_ebx
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:20,1
    - Dst: hvm_asid_init
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: svm_asid_init
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/asid.c
    functionUses: 1
    functionsReached:
    - cpu_has_amd_erratum
    - hvm_asid_init
    - cpuid_ebx
    linkageType: ''
    returnType: void
    signature: void svm_asid_init(const struct cpuinfo_x86 *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:34,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:35,1
    - Dst: hvm_asid_handle_vmenter
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:36,1
    - Dst: vmcb_set_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:41,1
    - Dst: vmcb_get_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:47,1
    - Dst: vmcb_set_asid
      Src: /src/xen/xen/arch/x86/hvm/svm/asid.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 52
    functionName: svm_asid_handle_vmrun
    functionSourceFile: /src/xen/xen/arch/x86/hvm/svm/asid.c
    functionUses: 1
    functionsReached:
    - vmcb_set_asid
    - hvm_asid_handle_vmenter
    - vmcb_get_asid
    - nestedhvm_vcpu_in_guestmode
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void svm_asid_handle_vmrun(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: ASSERT_INTERRUPT_STATUS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_INTERRUPT_STATUS(x, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: _ASM_EX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_EX(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: _ASM_EX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_EX(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: _ASM_EXTABLE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_EXTABLE(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: _ASM_EXTABLE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_EXTABLE(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 96
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: SUBSECTION_LBL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBSECTION_LBL(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: SUBSECTION_LBL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBSECTION_LBL(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: UNLIKELY_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_START(cond, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: UNLIKELY_DISPATCH_LABEL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_DISPATCH_LABEL(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: UNLIKELY_DONE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_DONE(cond, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: __UNLIKELY_END
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __UNLIKELY_END(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: UNLIKELY_END
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_END(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: GET_CPUINFO_FIELD
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CPUINFO_FIELD(field, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: GET_CURRENT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CURRENT(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: CPUINFO_FEATURE_OFFSET
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPUINFO_FEATURE_OFFSET(feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: SUBSECTION_LBL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBSECTION_LBL(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: SUBSECTION_LBL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBSECTION_LBL(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: UNLIKELY_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_START(cond, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: UNLIKELY_END
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY_END(tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/asm_defns.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: clac
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 1
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline clac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/asm_defns.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: stac
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 3
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline stac(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: ASM_CONSTANT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/asm_defns.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_CONSTANT(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: ALT_CALL_PTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_CALL_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: ALT_CALL_LEN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_CALL_LEN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: ALT_CALL_ARG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_CALL_ARG(arg, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: ALT_CALL_ARG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_CALL_ARG(arg, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: ALT_CALL_NO_ARG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_CALL_NO_ARG(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - rettype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: alternative_callN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_callN(n, rettype, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: alternative_vcall0
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall0(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: alternative_call0
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call0(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: alternative_vcall1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall1(func, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: alternative_call1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call1(func, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: alternative_vcall2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall2(func, arg1, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: alternative_call2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call2(func, arg1, arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: alternative_vcall3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall3(func, arg1, arg2, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: alternative_call3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call3(func, arg1, arg2, arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: alternative_vcall4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall4(func, arg1, arg2, arg3, arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 199
    functionName: alternative_call4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call4(func, arg1, arg2, arg3, arg4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - ','
    - arg5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 215
    functionName: alternative_vcall5
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall5(func, arg1, arg2, arg3, arg4, arg5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - ','
    - arg5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 232
    functionName: alternative_call5
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call5(func, arg1, arg2, arg3, arg4, arg5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - ','
    - arg5
    - ','
    - arg6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: alternative_vcall6
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall6(func, arg1, arg2, arg3, arg4, arg5, arg6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - func
    - ','
    - arg1
    - ','
    - arg2
    - ','
    - arg3
    - ','
    - arg4
    - ','
    - arg5
    - ','
    - arg6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: alternative_call6
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call6(func, arg1, arg2, arg3, arg4, arg5, arg6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: alternative_vcall__
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall__(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: alternative_call__
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call__(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: alternative_vcall_
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall_(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: alternative_call_
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call_(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: alternative_vcall
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall(func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: alternative_call
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call(func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: PML4_ADDR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PML4_ADDR(_slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: PERDOMAIN_VIRT_SLOT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERDOMAIN_VIRT_SLOT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: HYPERVISOR_COMPAT_VIRT_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERVISOR_COMPAT_VIRT_START(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: HYPERVISOR_COMPAT_VIRT_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERVISOR_COMPAT_VIRT_START(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: MACH2PHYS_COMPAT_NR_ENTRIES
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MACH2PHYS_COMPAT_NR_ENTRIES(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: COMPAT_L2_PAGETABLE_XEN_SLOTS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPAT_L2_PAGETABLE_XEN_SLOTS(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: GDT_VIRT_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GDT_VIRT_START(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: LDT_VIRT_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LDT_VIRT_START(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: ARG_XLAT_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_XLAT_START(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: BCD_TO_BIN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BCD_TO_BIN(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: BIN_TO_BCD
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIN_TO_BCD(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: RTC_PORT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTC_PORT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: CMOS_READ
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMOS_READ(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: CMOS_WRITE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMOS_WRITE(val, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/vm_event.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: vm_event_is_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vm_event.h
    functionUses: 19
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool vm_event_is_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: GEN16
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/gen-idt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN16(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - type
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: build_read_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_read_atomic(name, size, type, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - type
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: build_write_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_write_atomic(name, size, type, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - type
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: build_add_sized
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_add_sized(name, size, type, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: read_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_atomic(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: write_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_atomic(p, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: add_sized
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_sized(p, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: atomic_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 15
    functionsReached:
    - read_atomic
    linkageType: ''
    returnType: int
    signature: int atomic_read(const atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: _atomic_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _atomic_read(atomic_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: atomic_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 3
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: _atomic_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - old
    - new
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: atomic_cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int atomic_cmpxchg(atomic_t *v, int old, int new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: atomic_add
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_add(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: atomic_add_return
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - arch_fetch_and_add
    linkageType: ''
    returnType: int
    signature: int atomic_add_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: atomic_sub
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_sub(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: atomic_sub_return
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - arch_fetch_and_add
    linkageType: ''
    returnType: int
    signature: int atomic_sub_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: atomic_sub_and_test
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int atomic_sub_and_test(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: atomic_inc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_inc(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: atomic_inc_return
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: atomic_inc_and_test
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int atomic_inc_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: atomic_dec
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_dec(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: atomic_dec_return
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: atomic_dec_and_test
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 1
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int atomic_dec_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: atomic_add_negative
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int atomic_add_negative(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:223,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/arch/x86/include/asm/atomic.h:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_cmpxchg
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: atomic_and
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_and(int m, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: atomic_xchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_xchg(v, new)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/include/asm/softirq.h:27,1
    - Dst: old::old
      Src: /src/xen/xen/arch/x86/include/asm/softirq.h:35,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/include/asm/softirq.h:37,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/softirq.h:51,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/softirq.h:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - nr
    - cpu
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 57
    functionName: arch_set_softirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/softirq.h
    functionUses: 0
    functionsReached:
    - ACCESS_ONCE
    - cmpxchg
    - old::old
    - BUILD_BUG_ON
    linkageType: ''
    returnType: always_inline
    signature: always_inline arch_set_softirq(unsigned int nr, unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lldt
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:13,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:16,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:16,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:16,1
    - Dst: _set_tssldt_desc
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:18,1
    - Dst: LDT_VIRT_START
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:18,1
    - Dst: lldt
      Src: /src/xen/xen/arch/x86/include/asm/ldt.h:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 21
    functionName: load_LDT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/ldt.h
    functionUses: 2
    functionsReached:
    - _set_tssldt_desc
    - LDT_VIRT_START
    - this_cpu
    - is_pv_32bit_vcpu
    - lldt
    linkageType: ''
    returnType: void
    signature: void load_LDT(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: ring_0
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ring_0(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: ring_1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ring_1(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: ring_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ring_2(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: ring_3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ring_3(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: guest_kernel_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_kernel_mode(v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dpl
    - ','
    - v
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: permit_softint
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: permit_softint(dpl, v, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - tb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: null_trap_bounce
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: null_trap_bounce(v, tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: guest_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: read_sreg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_sreg(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: IO_APIC_BASE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_APIC_BASE(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: IO_APIC_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_APIC_ID(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: ioapic_reg_remapped
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioapic_reg_remapped(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IO_APIC_BASE
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - apic
    - reg
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: __io_apic_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 3
    functionsReached:
    - IO_APIC_BASE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __io_apic_read(unsigned int apic, unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_reg_remapped
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:152,1
    - Dst: iommu_read_apic_from_ire
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:153,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - apic
    - reg
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: io_apic_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 12
    functionsReached:
    - __io_apic_read
    - ioapic_reg_remapped
    - iommu_read_apic_from_ire
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int io_apic_read(unsigned int apic, unsigned int reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IO_APIC_BASE
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - apic
    - reg
    - value
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: __io_apic_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 2
    functionsReached:
    - IO_APIC_BASE
    linkageType: ''
    returnType: void
    signature: void __io_apic_write(unsigned int apic, unsigned int reg, unsigned
      int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:168,1
    - Dst: __io_apic_write
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - apic
    - reg
    - value
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: io_apic_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 3
    functionsReached:
    - BUG_ON
    - __io_apic_write
    linkageType: ''
    returnType: void
    signature: void io_apic_write(unsigned int apic, unsigned int reg, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:179,1
    - Dst: IO_APIC_BASE
      Src: /src/xen/xen/arch/x86/include/asm/io_apic.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - apic
    - reg
    - value
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: io_apic_modify
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io_apic.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    - IO_APIC_BASE
    linkageType: ''
    returnType: void
    signature: void io_apic_modify(unsigned int apic, unsigned int reg, unsigned int
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pcid
    - addr
    - type
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: invpcid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/invpcid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void invpcid(unsigned int pcid, unsigned long addr,\n                           unsigned
      int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invpcid
      Src: /src/xen/xen/arch/x86/include/asm/invpcid.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pcid
    - addr
    argTypes:
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: invpcid_flush_one
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/invpcid.h
    functionUses: 1
    functionsReached:
    - invpcid
    linkageType: ''
    returnType: void
    signature: void invpcid_flush_one(unsigned int pcid, unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invpcid
      Src: /src/xen/xen/arch/x86/include/asm/invpcid.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pcid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: invpcid_flush_single_context
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/invpcid.h
    functionUses: 0
    functionsReached:
    - invpcid
    linkageType: ''
    returnType: void
    signature: void invpcid_flush_single_context(unsigned int pcid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invpcid
      Src: /src/xen/xen/arch/x86/include/asm/invpcid.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: invpcid_flush_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/invpcid.h
    functionUses: 1
    functionsReached:
    - invpcid
    linkageType: ''
    returnType: void
    signature: void invpcid_flush_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invpcid
      Src: /src/xen/xen/arch/x86/include/asm/invpcid.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: invpcid_flush_all_nonglobals
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/invpcid.h
    functionUses: 1
    functionsReached:
    - invpcid
    linkageType: ''
    returnType: void
    signature: void invpcid_flush_all_nonglobals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: CF8_BDF
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF8_BDF(cf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: CF8_ADDR_LO
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF8_ADDR_LO(cf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: CF8_ADDR_HI
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF8_ADDR_HI(cf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cf8
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: CF8_ENABLED
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CF8_ENABLED(cf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: IS_SNB_GFX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SNB_GFX(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: is_pci_passthrough_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pci_passthrough_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: arch_pci_device_physdevop
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_pci_device_physdevop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nfb
    argTypes:
    - struct notifier_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: mwait_idle_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpuidle.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mwait_idle_init(struct notifier_block *nfb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: rdpkru
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rdpkru(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkru
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: wrpkru
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrpkru(uint32_t pkru)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rdpkrs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 1
    functionsReached:
    - rdmsr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rdpkrs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:60,1
    - Dst: rdpkrs
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: rdpkrs_and_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 1
    functionsReached:
    - rdpkrs
    - this_cpu
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rdpkrs_and_cache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:65,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkrs
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: wrpkrs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 2
    functionsReached:
    - wrmsrns
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void wrpkrs(uint32_t pkrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:77,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/prot-key.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkrs
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: wrpkrs_and_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/prot-key.h
    functionUses: 3
    functionsReached:
    - wrmsrns
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void wrpkrs_and_cache(uint32_t pkrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: guest_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_set_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: guest_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_clear_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: guest_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_change_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: guest_test_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: guest_test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_set_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: guest_test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_clear_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: guest_test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_change_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: guest_cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cmpxchg(d, ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: _raw_read_unlock
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _raw_read_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: arch_lock_acquire_barrier
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_acquire_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: arch_lock_release_barrier
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_release_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: arch_lock_relax
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: arch_lock_signal_wmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: ACPI_DISABLE_IRQS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DISABLE_IRQS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: ACPI_ENABLE_IRQS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ENABLE_IRQS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: ACPI_FLUSH_CPU_CACHE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FLUSH_CPU_CACHE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - facs
    - ','
    - Acq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: ACPI_ACQUIRE_GLOBAL_LOCK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ACQUIRE_GLOBAL_LOCK(facs, Acq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - facs
    - ','
    - Acq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ACPI_RELEASE_GLOBAL_LOCK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_RELEASE_GLOBAL_LOCK(facs, Acq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n_hi
    - ','
    - n_lo
    - ','
    - d32
    - ','
    - q32
    - ','
    - r32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: ACPI_DIV_64_BY_32
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n_hi
    - ','
    - n_lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: ACPI_SHIFT_RIGHT_64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SHIFT_RIGHT_64(n_hi, n_lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: disable_acpi
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_acpi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: acpi_noirq_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_noirq_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: acpi_ivrs_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_ivrs_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: XEN_CPUFEATURE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeatureset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_CPUFEATURE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: XEN_CPUFEATURE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeatureset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_CPUFEATURE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: XEN_CPUFEATURE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeatureset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_CPUFEATURE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: memory_type_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mtrr.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memory_type_changed(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: IO_APIC_IRQ
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_APIC_IRQ(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: MSI_IRQ
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSI_IRQ(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: LEGACY_VECTOR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEGACY_VECTOR(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: platform_legacy_irq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: platform_legacy_irq(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: pirq_dpci
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_dpci(pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: dpci_pirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dpci_pirq(pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: domain_pirq_to_irq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_pirq_to_irq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: domain_irq_to_pirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_irq_to_pirq(d, irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: domain_pirq_to_emuirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_pirq_to_emuirq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - emuirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: domain_emuirq_to_pirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_emuirq_to_pirq(d, emuirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: arch_move_irqs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_move_irqs(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: gen_endbr64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gen_endbr64(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_endbr64
      Src: /src/xen/xen/arch/x86/include/asm/endbr.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: is_endbr64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 4
    functionsReached:
    - gen_endbr64
    linkageType: ''
    returnType: bool
    signature: bool is_endbr64(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_endbr64
      Src: /src/xen/xen/arch/x86/include/asm/endbr.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: place_endbr64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 1
    functionsReached:
    - gen_endbr64
    linkageType: ''
    returnType: void
    signature: void place_endbr64(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: gen_endbr64_poison
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gen_endbr64_poison(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_endbr64_poison
      Src: /src/xen/xen/arch/x86/include/asm/endbr.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: is_endbr64_poison
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 2
    functionsReached:
    - gen_endbr64_poison
    linkageType: ''
    returnType: bool
    signature: bool is_endbr64_poison(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_endbr64_poison
      Src: /src/xen/xen/arch/x86/include/asm/endbr.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: place_endbr64_poison
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/endbr.h
    functionUses: 1
    functionsReached:
    - gen_endbr64_poison
    linkageType: ''
    returnType: void
    signature: void place_endbr64_poison(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: domain_pause_for_debugger
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/gdbsx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_pause_for_debugger(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - domctl
    - copyback
    argTypes:
    - struct domain*
    - struct xen_domctl*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: gdbsx_domctl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/gdbsx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gdbsx_domctl(\n    struct domain *d, struct xen_domctl *domctl,
      bool *copyback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: barrier_nospec_true
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline barrier_nospec_true(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: barrier_nospec_false
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline barrier_nospec_false(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: barrier_nospec_true
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:30,1
    - Dst: barrier_nospec_false
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: evaluate_nospec
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - barrier_nospec_false
    - barrier_nospec_true
    linkageType: ''
    returnType: always_inline
    signature: always_inline evaluate_nospec(bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier_nospec_true
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: block_speculation
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 3
    functionsReached:
    - barrier_nospec_true
    linkageType: ''
    returnType: always_inline
    signature: always_inline block_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - size
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: array_index_mask_nospec
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long array_index_mask_nospec(unsigned long index,\n                                                    unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: arch_block_lock_speculation
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline arch_block_lock_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: barrier_lock_true
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline barrier_lock_true(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: barrier_lock_false
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - alternative
    linkageType: ''
    returnType: always_inline
    signature: always_inline barrier_lock_false(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: barrier_lock_true
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:86,1
    - Dst: barrier_lock_false
      Src: /src/xen/xen/arch/x86/include/asm/nospec.h:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: arch_lock_evaluate_nospec
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nospec.h
    functionUses: 0
    functionsReached:
    - barrier_lock_true
    - barrier_lock_false
    linkageType: ''
    returnType: always_inline
    signature: always_inline arch_lock_evaluate_nospec(bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:72,1
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: spec_ctrl_new_guest_context
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 1
    functionsReached:
    - wrmsrl
    - alternative_input
    linkageType: ''
    returnType: always_inline
    signature: always_inline spec_ctrl_new_guest_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: init_shadow_spec_ctrl_state
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_shadow_spec_ctrl_state(struct cpu_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: __spec_ctrl_enter_idle_verw
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 1
    functionsReached:
    - alternative_input
    linkageType: ''
    returnType: always_inline
    signature: always_inline __spec_ctrl_enter_idle_verw(struct cpu_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:143,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:145,1
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:146,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:148,1
    - Dst: __spec_ctrl_enter_idle_verw
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:151,1
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - info
    - verw
    argTypes:
    - struct cpu_info*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 167
    functionName: __spec_ctrl_enter_idle
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 1
    functionsReached:
    - __spec_ctrl_enter_idle_verw
    - alternative_input
    - barrier
    linkageType: ''
    returnType: always_inline
    signature: always_inline __spec_ctrl_enter_idle(struct cpu_info *info, bool verw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: spec_ctrl_enter_idle
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 7
    functionsReached:
    - __spec_ctrl_enter_idle
    linkageType: ''
    returnType: always_inline
    signature: always_inline spec_ctrl_enter_idle(struct cpu_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:187,1
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:188,1
    - Dst: barrier
      Src: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cpu_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 202
    functionName: spec_ctrl_exit_idle
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
    functionUses: 5
    functionsReached:
    - alternative_input
    - barrier
    linkageType: ''
    returnType: always_inline
    signature: always_inline spec_ctrl_exit_idle(struct cpu_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: vcpu_vpmu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_vpmu(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: vpmu_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpmu_vcpu(vpmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: vpmu_available
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpmu_available(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxt
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: vpmu_reg_pointer
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vpmu_reg_pointer(ctxt, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpmu
    - mask
    argTypes:
    - struct vpmu_struct*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: vpmu_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpmu_set(struct vpmu_struct *vpmu, const u32 mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpmu
    - mask
    argTypes:
    - struct vpmu_struct*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: vpmu_reset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpmu_reset(struct vpmu_struct *vpmu, const u32 mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vpmu
    argTypes:
    - struct vpmu_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: vpmu_clear
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpmu_clear(struct vpmu_struct *vpmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpmu
    - mask
    argTypes:
    - struct vpmu_struct*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: vpmu_is_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vpmu_is_set(const struct vpmu_struct *vpmu, const u32 mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpmu
    - mask
    argTypes:
    - struct vpmu_struct*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: vpmu_are_all_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool vpmu_are_all_set(const struct vpmu_struct *vpmu,\n                                    const
      u32 mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_do_msr
      Src: /src/xen/xen/arch/x86/include/asm/vpmu.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: vpmu_do_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 2
    functionsReached:
    - vpmu_do_msr
    linkageType: ''
    returnType: int
    signature: int vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_do_msr
      Src: /src/xen/xen/arch/x86/include/asm/vpmu.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: vpmu_do_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 2
    functionsReached:
    - vpmu_do_msr
    linkageType: ''
    returnType: int
    signature: int vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_save
      Src: /src/xen/xen/arch/x86/include/asm/vpmu.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: vpmu_switch_from
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 1
    functionsReached:
    - vpmu_save
    linkageType: ''
    returnType: void
    signature: void vpmu_switch_from(struct vcpu *prev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_load
      Src: /src/xen/xen/arch/x86/include/asm/vpmu.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - next
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: vpmu_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 1
    functionsReached:
    - vpmu_load
    linkageType: ''
    returnType: void
    signature: void vpmu_switch_to(struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/vpmu.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: vpmu_allocate_context
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/vpmu.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int vpmu_allocate_context(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: nmi_reason
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nmi_reason(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 25
    functionName: GET_SET_SHARED
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SET_SHARED(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 44
    functionName: GET_SET_VCPU
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SET_VCPU(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: nmi_reason
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nmi_reason(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: GET_SET_SHARED
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SET_SHARED(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: GET_SET_VCPU
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SET_VCPU(type, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: _ASM_MK_NOP
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_MK_NOP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: _ASM_MK_NOP
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/nops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_MK_NOP(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - bi
    - k
    - start
    argTypes:
    - struct boot_info*
    - boot_module_kind
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: next_boot_module_index
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bootinfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int next_boot_module_index(\n    const struct boot_info *bi,
      boot_module_kind k, unsigned int start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bi
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: first_boot_module_index
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bootinfo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: first_boot_module_index(bi, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - b
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: for_each_boot_module_by_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bootinfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_boot_module_by_type(i, b, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: raw_copy_to_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: raw_copy_to_guest(dst, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: raw_copy_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: raw_copy_from_guest(dst, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: raw_clear_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: raw_clear_guest(dst,  len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: __raw_copy_to_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __raw_copy_to_guest(dst, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: __raw_copy_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __raw_copy_from_guest(dst, src, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: guest_handle_okay
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_okay(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - first
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: guest_handle_subrange_okay
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_subrange_okay(hnd, first, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: GUEST_KERNEL_RPL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GUEST_KERNEL_RPL(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - sel
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: __fixup_guest_selector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __fixup_guest_selector(d, sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: fixup_guest_stack_selector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fixup_guest_stack_selector(d, ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - cs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: fixup_guest_code_selector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fixup_guest_code_selector(d, cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - sel
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: guest_gate_selector_okay
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_gate_selector_okay(d, sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - desc
    - ','
    - addr
    - ','
    - limit
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: _set_tssldt_desc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _set_tssldt_desc(desc,addr,limit,type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gdtr
    argTypes:
    - struct desc_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: lgdt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lgdt(const struct desc_ptr *gdtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idtr
    argTypes:
    - struct desc_ptr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: lidt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lidt(const struct desc_ptr *idtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sel
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: lldt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lldt(unsigned int sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sel
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: ltr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/desc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ltr(unsigned int sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: in_irq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in_irq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: irq_enter
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_enter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: irq_exit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_exit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: nmi_count
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nmi_count(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: in_nmi_handler
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in_nmi_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: nmi_enter
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nmi_enter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: nmi_exit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nmi_exit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: mce_count
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mce_count(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: in_mce_handler
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in_mce_handler()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: mce_enter
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mce_enter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: mce_exit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hardirq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mce_exit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: GET_xAPIC_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_xAPIC_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: SET_xAPIC_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_xAPIC_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GET_APIC_VERSION
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_VERSION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: GET_APIC_MAXLVT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_APIC_MAXLVT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: GET_xAPIC_LOGICAL_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_xAPIC_LOGICAL_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: SET_xAPIC_LOGICAL_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_xAPIC_LOGICAL_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: APIC_VECTOR_VALID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APIC_VECTOR_VALID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: GET_xAPIC_DEST_FIELD
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_xAPIC_DEST_FIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: SET_xAPIC_DEST_FIELD
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_xAPIC_DEST_FIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: APIC_PRIO_CLASS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apicdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APIC_PRIO_CLASS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: write_debugreg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/debugreg.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_debugreg(reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: read_debugreg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/debugreg.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_debugreg(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: breakpoint_addr_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/debugreg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: breakpoint_addr_ok(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dr7
    - bp
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: x86_bp_width
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/debugreg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86_bp_width(unsigned int dr7, unsigned int bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: UA_KEEP
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UA_KEEP(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: get_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_guest(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: put_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_guest(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: __get_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __get_guest(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: __put_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __put_guest(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: put_unsafe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unsafe(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: put_guest_nocheck
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_guest_nocheck(x, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: put_guest_check
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_guest_check(x, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: get_unsafe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unsafe(x, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: get_guest_nocheck
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_guest_nocheck(x, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: get_guest_check
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_guest_check(x, ptr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: __m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __m(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - x
    - ','
    - addr
    - ','
    - GUARD
    - ','
    - err
    - ','
    - itype
    - ','
    - rtype
    - ','
    - ltype
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 172
    functionName: put_unsafe_asm
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unsafe_asm(x, addr, GUARD, err, itype, rtype, ltype, errret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - x
    - ','
    - addr
    - ','
    - GUARD
    - ','
    - err
    - ','
    - rtype
    - ','
    - ltype
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: get_unsafe_asm
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unsafe_asm(x, addr, GUARD, err, rtype, ltype, errret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - ','
    - grd
    - ','
    - retval
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: put_unsafe_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unsafe_size(x, ptr, size, grd, retval, errret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - ','
    - retval
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: put_guest_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_guest_size(x, ptr, size, retval, errret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - ','
    - grd
    - ','
    - retval
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: get_unsafe_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unsafe_size(x, ptr, size, grd, retval, errret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x
    - ','
    - ptr
    - ','
    - size
    - ','
    - retval
    - ','
    - errret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: get_guest_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_guest_size(x, ptr, size, retval, errret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:254,1
    - Dst: put_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:260,1
    - Dst: put_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:263,1
    - Dst: put_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:266,1
    - Dst: put_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:269,1
    - Dst: copy_to_guest_ll
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 274
    functionName: __copy_to_guest_pv
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached:
    - copy_to_guest_ll
    - put_guest_size
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned long
    signature: always_inline unsigned long __copy_to_guest_pv(void __user *to, const
      void *from, unsigned long n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:295,1
    - Dst: get_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:301,1
    - Dst: get_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:304,1
    - Dst: get_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:307,1
    - Dst: get_guest_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:310,1
    - Dst: copy_from_guest_ll
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 315
    functionName: __copy_from_guest_pv
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached:
    - copy_from_guest_ll
    - get_guest_size
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned long
    signature: always_inline unsigned long __copy_from_guest_pv(void *to, const void
      __user *from, unsigned long n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:331,1
    - Dst: put_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:336,1
    - Dst: put_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:339,1
    - Dst: put_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:342,1
    - Dst: put_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:345,1
    - Dst: copy_to_unsafe_ll
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 351
    functionName: copy_to_unsafe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 0
    functionsReached:
    - put_unsafe_size
    - copy_to_unsafe_ll
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned copy_to_unsafe(void __user *to, const void *from,
      unsigned int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:370,1
    - Dst: get_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:377,1
    - Dst: get_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:380,1
    - Dst: get_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:383,1
    - Dst: get_unsafe_size
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:386,1
    - Dst: copy_from_unsafe_ll
      Src: /src/xen/xen/arch/x86/include/asm/uaccess.h:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 392
    functionName: copy_from_unsafe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/uaccess.h
    functionUses: 1
    functionsReached:
    - get_unsafe_size
    - copy_from_unsafe_ll
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned copy_from_unsafe(void *to, const void __user
      *from, unsigned int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - nargs
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 61
    functionName: clobber_regs64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clobber_regs64(struct cpu_user_regs *regs,\n                                  unsigned
      int nargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - nargs
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: clobber_regs32
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hypercall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void clobber_regs32(struct cpu_user_regs *regs,\n                                  unsigned
      int nargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - r
    - ','
    - n
    - ','
    - t
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: clobber_regs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hypercall.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clobber_regs(r, n, t, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: arch_want_default_dmazone
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_want_default_dmazone()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 94
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 94
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: variable_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void variable_set_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: constant_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void constant_set_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: __set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: variable_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void variable_clear_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: constant_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void constant_clear_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: __clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: variable_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void variable_change_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: constant_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void constant_change_bit(int nr, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: __change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __change_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void change_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: change_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 21
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int test_and_set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: arch__test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int arch__test_and_set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 215
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 16
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int test_and_clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_clear_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: arch__test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int arch__test_and_clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: arch__test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int arch__test_and_change_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int test_and_change_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_change_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: variable_test_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: int
    signature: int variable_test_bit(int nr, const volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: arch_test_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_test_bit(nr, addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:310,1
    - Dst: alternative_io
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - val
    - max
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 320
    functionName: __scanbit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 2
    functionsReached:
    - alternative_io
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned __scanbit(unsigned long val, unsigned int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: find_first_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_bit(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - size
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 353
    functionName: find_next_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_bit(addr, size, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: find_first_zero_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_zero_bit(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - size
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: find_next_zero_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_zero_bit(addr, size, off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 429
    functionName: arch_ffs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned arch_ffs(unsigned int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 447
    functionName: arch_ffsl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned arch_ffsl(unsigned long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 465
    functionName: arch_fls
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned arch_fls(unsigned int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 483
    functionName: arch_flsl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned arch_flsl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_io
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:504,1
    - Dst: ASM_OUTPUT2
      Src: /src/xen/xen/arch/x86/include/asm/bitops.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 511
    functionName: arch_hweightl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - alternative_io
    - ASM_OUTPUT2
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned arch_hweightl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: wbinvd
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wbinvd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: wbnoinvd
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wbnoinvd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: clflush
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clflush(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: clflushopt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clflushopt(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: clwb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clwb(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: xchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xchg(ptr,v)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - x
    - ptr
    - size
    argTypes:
    - unsigned long
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: __xchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __xchg(\n    unsigned long x, volatile
      void *ptr, int size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 111
    functionName: __cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __cmpxchg(\n    volatile void *ptr, unsigned
      long old, unsigned long new, int size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: cmpxchg_local_
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long cmpxchg_local_(\n    void *ptr, unsigned
      long old, unsigned long new, unsigned int size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __bad_fetch_and_add_size
      Src: /src/xen/xen/arch/x86/include/asm/system.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - v
    - size
    argTypes:
    - void*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: __xadd
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached:
    - __bad_fetch_and_add_size
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __xadd(\n    volatile void *ptr, unsigned
      long v, int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: arch_fetch_and_add
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fetch_and_add(ptr, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: mb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: rmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: wmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: smp_mb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: smp_rmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: smp_wmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: set_mb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_mb(var, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: set_wmb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_wmb(var, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: smp_mb__before_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__before_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: smp_mb__after_atomic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__after_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: local_irq_disable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: local_irq_enable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: safe_halt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_halt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: halt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: halt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: local_save_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_save_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: local_irq_save
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_save(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: local_irq_restore
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_restore(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/x86/include/asm/system.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: local_irq_is_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/system.h
    functionUses: 22
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_irq_is_enabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/include/asm/random.h:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 14
    functionName: arch_get_random
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/random.h
    functionUses: 0
    functionsReached:
    - cpu_has
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idt
    - ist
    argTypes:
    - idt_entry_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: set_ist
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 2
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void set_ist(volatile idt_entry_t *idt, unsigned int ist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:49,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:50,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:51,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - idt
    argTypes:
    - idt_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: enable_each_ist
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 2
    functionsReached:
    - set_ist
    linkageType: ''
    returnType: void
    signature: void enable_each_ist(idt_entry_t *idt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:57,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:58,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:59,1
    - Dst: set_ist
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - idt
    argTypes:
    - idt_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: disable_each_ist
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 2
    functionsReached:
    - set_ist
    linkageType: ''
    returnType: void
    signature: void disable_each_ist(idt_entry_t *idt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:72,1
    - Dst: b::b
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:72,1
    - Dst: a::a
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gate
    - new
    argTypes:
    - idt_entry_t*
    - idt_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: _write_gate_lower
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - b::b
    - a::a
    linkageType: ''
    returnType: void
    signature: "void _write_gate_lower(volatile idt_entry_t *gate,\n                                     const
      idt_entry_t *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_gate_lower
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - gate
    - type
    - dpl
    - addr
    argTypes:
    - idt_entry_t*
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: _set_gate_lower
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 2
    functionsReached:
    - _write_gate_lower
    linkageType: ''
    returnType: void
    signature: "void _set_gate_lower(idt_entry_t *gate, unsigned long type,\n                                   unsigned
      long dpl, void *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_gate_lower
      Src: /src/xen/xen/arch/x86/include/asm/idt.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - gate
    - _addr
    argTypes:
    - idt_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: _update_gate_addr_lower
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/idt.h
    functionUses: 2
    functionsReached:
    - _write_gate_lower
    linkageType: ''
    returnType: void
    signature: void _update_gate_addr_lower(idt_entry_t *gate, void *_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: switch_compat
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int switch_compat(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - vec
    - ','
    - sym
    - ','
    - dpl
    - ','
    - auto
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: GEN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/gen-idt.lds.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN(vec, sym, dpl, auto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: rdtsc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tsc.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rdtsc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_io_2
      Src: /src/xen/xen/arch/x86/include/asm/tsc.h:29,1
    - Dst: ASM_OUTPUT2
      Src: /src/xen/xen/arch/x86/include/asm/tsc.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: rdtsc_ordered
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tsc.h
    functionUses: 15
    functionsReached:
    - alternative_io_2
    - ASM_OUTPUT2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rdtsc_ordered(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: __write_tsc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tsc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __write_tsc(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: write_tsc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tsc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_tsc(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PFN_ORDER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_ORDER(_pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PG_shift
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_shift(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PG_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_mask(x, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PGT_type_equal
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PGT_type_equal(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pg
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: page_state_is
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_state_is(pg, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: is_xen_heap_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: is_xen_heap_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: is_xen_fixed_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_fixed_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: page_get_owner
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_get_owner(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: page_set_owner
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_set_owner(_p,_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: maddr_get_owner
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_get_owner(ma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:345,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:346,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: virt_to_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 3
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *virt_to_page(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 367
    functionName: page_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void *page_to_virt(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: page_lock
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_lock(pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:414,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:416,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:416,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:416,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:416,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:418,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mfn
    - d
    argTypes:
    - mfn_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: get_page_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 4
    functionsReached:
    - gdprintk
    - mfn_to_page
    - mfn_x
    - mfn_valid
    - get_page
    - unlikely
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *get_page_from_mfn(mfn_t mfn, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page_type
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:428,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: put_page_and_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 11
    functionsReached:
    - put_page
    - put_page_type
    linkageType: ''
    returnType: void
    signature: void put_page_and_type(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_page_type_preemptible
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:434,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:436,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 432
    functionDepth: 8
    functionLinenumber: 432
    functionLinenumberEnd: 439
    functionName: put_page_and_type_preemptible
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 4
    functionsReached:
    - put_page
    - likely
    - put_page_type_preemptible
    linkageType: ''
    returnType: int
    signature: int put_page_and_type_preemptible(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:445,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:447,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:447,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:447,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - page
    - domain
    - type
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: get_page_and_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - get_page_type
    - likely
    - get_page
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: "int get_page_and_type(struct page_info *page,\n                                    struct
      domain *domain,\n                                    unsigned long type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: ASSERT_PAGE_IS_TYPE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_PAGE_IS_TYPE(_p, _t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: ASSERT_PAGE_IS_DOMAIN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_PAGE_IS_DOMAIN(_p, _d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: VALID_M2P
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_M2P(_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: SHARED_M2P
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_M2P(_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: get_gpfn_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gpfn_from_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: compat_pfn_to_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_pfn_to_cr3(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cr3
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: compat_cr3_to_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_cr3_to_pfn(cr3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: audit_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: audit_domain(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 582
    functionName: _audit_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _audit_domain(_d, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 583
    functionName: audit_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: audit_domain(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: audit_domains
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: audit_domains()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: NIL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NIL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 606
    functionName: IS_NIL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NIL(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 626
    functionName: domain_clamp_alloc_bitsize
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_clamp_alloc_bitsize(d, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 648
    functionName: arch_free_heap_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_free_heap_page(d, pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:660,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/include/asm/mm.h:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: arch_mfns_in_directmap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mm.h
    functionUses: 0
    functionsReached:
    - min
    - virt_to_mfn
    linkageType: ''
    returnType: bool
    signature: bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - aname
    - ','
    - aprobe
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: APIC_INIT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/genapic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APIC_INIT(aname, aprobe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: init_apic_ldr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/genapic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_apic_ldr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: ioports_access_permitted
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iocap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ioports_access_permitted(d, s, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: has_arch_io_resources
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iocap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_arch_io_resources(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: cache_flush_permitted
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iocap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cache_flush_permitted(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:28,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:29,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:31,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - d
    - s
    - e
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: ioports_permit_access
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iocap.h
    functionUses: 2
    functionsReached:
    - memory_type_changed
    - rangeset_add_range
    - cache_flush_permitted
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int ioports_permit_access(struct domain *d, unsigned long s,\n                                        unsigned
      long e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:41,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:43,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:43,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/arch/x86/include/asm/iocap.h:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - d
    - s
    - e
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: ioports_deny_access
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iocap.h
    functionUses: 4
    functionsReached:
    - cache_flush_permitted
    - memory_type_changed
    - is_iommu_enabled
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: "int ioports_deny_access(struct domain *d, unsigned long s,\n                                      unsigned
      long e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: ASSERT_FAILED
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_FAILED(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: tlbflush_current_time
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t tlbflush_current_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:45,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:45,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:46,1
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:47,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: page_set_tlbflush_timestamp
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached:
    - tlbflush_current_time
    - local_irq_enable
    - local_irq_disable
    - ASSERT
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void page_set_tlbflush_timestamp(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - cpu_stamp
    - lastuse_stamp
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: NEED_FLUSH
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached:
    - tlbflush_current_time
    linkageType: ''
    returnType: bool
    signature: bool NEED_FLUSH(u32 cpu_stamp, u32 lastuse_stamp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:85,1
    - Dst: NEED_FLUSH
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:86,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:86,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/include/asm/flushtlb.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mask
    - page_timestamp
    argTypes:
    - cpumask_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: tlbflush_filter
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached:
    - __cpumask_clear_cpu
    - for_each_cpu
    - per_cpu
    - NEED_FLUSH
    linkageType: ''
    returnType: void
    signature: void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: read_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_cr3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: invlpg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invlpg(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: FLUSH_ORDER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH_ORDER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: flush_local
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_local(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: flush_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_mask(mask, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - va
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: flush_area_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_area_all(va, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: flush_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_all(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: flush_tlb_local
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_local()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: flush_tlb_one_local
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_one_local(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_mask(mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: flush_tlb_one_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_one_mask(mask,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: arch_flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_flush_tlb_mask(mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: flush_tlb_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_all()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: flush_tlb_one_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_tlb_one_all(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: flush_root_pgtbl_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flush_root_pgtbl_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mfn
    - sync_icache
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: flush_page_to_ram
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void flush_page_to_ram(unsigned long mfn, bool sync_icache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: rdssp
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shstk.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long rdssp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - ptr
    argTypes:
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: wrss
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shstk.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrss(unsigned long val, unsigned long *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - g
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gfn(d, g, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: SUPERPAGE_RSVD
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUPERPAGE_RSVD(bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: fold_pse36
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fold_pse36(uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: unfold_pse36
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t unfold_pse36(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: guest_l1e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - _gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l1e_get_gfn(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: guest_l2e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - _gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l2e_get_gfn(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: guest_l1e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 guest_l1e_get_flags(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: guest_l2e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 guest_l2e_get_flags(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: guest_l1e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 guest_l1e_get_pkey(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: guest_l2e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 guest_l2e_get_pkey(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: guest_l1e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - gfn_x
    linkageType: ''
    returnType: guest_l1e_t
    signature: guest_l1e_t guest_l1e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: guest_l2e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - gfn_x
    linkageType: ''
    returnType: guest_l2e_t
    signature: guest_l2e_t guest_l2e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: guest_l1_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l1_table_offset(_va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: guest_l2_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l2_table_offset(_va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:133,1
    - Dst: l1e_get_paddr
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: guest_l1e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - _gfn
    - l1e_get_paddr
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l1e_get_gfn(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:135,1
    - Dst: l2e_get_paddr
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: guest_l2e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l2e_get_paddr
    - _gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l2e_get_gfn(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:137,1
    - Dst: l3e_get_paddr
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl3e
    argTypes:
    - guest_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: guest_l3e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - _gfn
    - l3e_get_paddr
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l3e_get_gfn(guest_l3e_t gl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:140,1
    - Dst: l4e_get_paddr
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl4e
    argTypes:
    - guest_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: guest_l4e_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - _gfn
    - l4e_get_paddr
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_l4e_get_gfn(guest_l4e_t gl4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: guest_l1e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 guest_l1e_get_flags(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: guest_l2e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 guest_l2e_get_flags(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl3e
    argTypes:
    - guest_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: guest_l3e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l3e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 guest_l3e_get_flags(guest_l3e_t gl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl4e
    argTypes:
    - guest_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: guest_l4e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l4e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 guest_l4e_get_flags(guest_l4e_t gl4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_pkey
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl1e
    argTypes:
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: guest_l1e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l1e_get_pkey
    linkageType: ''
    returnType: u32
    signature: u32 guest_l1e_get_pkey(guest_l1e_t gl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_pkey
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl2e
    argTypes:
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: guest_l2e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l2e_get_pkey
    linkageType: ''
    returnType: u32
    signature: u32 guest_l2e_get_pkey(guest_l2e_t gl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_pkey
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gl3e
    argTypes:
    - guest_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: guest_l3e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l3e_get_pkey
    linkageType: ''
    returnType: u32
    signature: u32 guest_l3e_get_pkey(guest_l3e_t gl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:162,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: guest_l1e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - gfn_x
    - l1e_from_pfn
    linkageType: ''
    returnType: guest_l1e_t
    signature: guest_l1e_t guest_l1e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_from_pfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:164,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: guest_l2e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l2e_from_pfn
    - gfn_x
    linkageType: ''
    returnType: guest_l2e_t
    signature: guest_l2e_t guest_l2e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_from_pfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:166,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: guest_l3e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - gfn_x
    - l3e_from_pfn
    linkageType: ''
    returnType: guest_l3e_t
    signature: guest_l3e_t guest_l3e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_from_pfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:169,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - flags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: guest_l4e_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - l4e_from_pfn
    - gfn_x
    linkageType: ''
    returnType: guest_l4e_t
    signature: guest_l4e_t guest_l4e_from_gfn(gfn_t gfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: guest_l1_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l1_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: guest_l2_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l2_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: guest_l3_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l3_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: guest_l4_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_l4_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:197,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: guest_can_use_l2_superpages
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_paging_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_can_use_l2_superpages(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: guest_can_use_l3_superpages
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - paging_mode_hap
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_can_use_l3_superpages(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 235
    functionName: guest_can_use_pse36
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - paging_mode_hap
    linkageType: ''
    returnType: bool
    signature: bool guest_can_use_pse36(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:243,1
    - Dst: hvm_nx_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: guest_nx_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_nx_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_nx_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:249,1
    - Dst: hvm_wp_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: guest_wp_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_wp_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_wp_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:254,1
    - Dst: hvm_smep_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: guest_smep_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_smep_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_smep_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:259,1
    - Dst: hvm_smap_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: guest_smap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_smap_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_smap_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:264,1
    - Dst: hvm_pku_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: guest_pku_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - hvm_pku_enabled
    - is_pv_vcpu
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_pku_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:269,1
    - Dst: hvm_pks_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: guest_pks_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - hvm_pks_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_pks_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_nx_enabled
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:279,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: guest_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - put_pte_flags
    - guest_nx_enabled
    linkageType: ''
    returnType: always_inline
    signature: always_inline guest_rsvd_bits(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_rsvd_bits
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - l1e
    argTypes:
    - struct vcpu*
    - guest_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: guest_l1e_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_rsvd_bits
    linkageType: ''
    returnType: always_inline
    signature: "always_inline guest_l1e_rsvd_bits(const struct vcpu *v,\n                                              guest_l1e_t
      l1e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_rsvd_bits
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:291,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:294,1
    - Dst: guest_can_use_pse36
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:296,1
    - Dst: fold_pse36
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:298,1
    - Dst: SUPERPAGE_RSVD
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - v
    - l2e
    argTypes:
    - struct vcpu*
    - guest_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: guest_l2e_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_can_use_pse36
    - SUPERPAGE_RSVD
    - guest_can_use_l2_superpages
    - fold_pse36
    - guest_rsvd_bits
    linkageType: ''
    returnType: always_inline
    signature: "always_inline guest_l2e_rsvd_bits(const struct vcpu *v,\n                                              guest_l2e_t
      l2e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_rsvd_bits
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:306,1
    - Dst: guest_can_use_l3_superpages
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:307,1
    - Dst: SUPERPAGE_RSVD
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - v
    - l3e
    argTypes:
    - struct vcpu*
    - guest_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: guest_l3e_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_can_use_l3_superpages
    - guest_rsvd_bits
    - SUPERPAGE_RSVD
    linkageType: ''
    returnType: always_inline
    signature: "always_inline guest_l3e_rsvd_bits(const struct vcpu *v,\n                                              guest_l3e_t
      l3e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_rsvd_bits
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - l4e
    argTypes:
    - struct vcpu*
    - guest_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: guest_l4e_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_rsvd_bits
    linkageType: ''
    returnType: always_inline
    signature: "always_inline guest_l4e_rsvd_bits(const struct vcpu *v,\n                                              guest_l4e_t
      l4e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:358,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:361,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gw
    argTypes:
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: guest_walk_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_l1e_get_flags
    - _gfn
    - guest_l1e_get_gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t guest_walk_to_gfn(const walk_t *gw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_walk_to_gfn
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:369,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:371,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gw
    argTypes:
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 375
    functionName: guest_walk_to_gpa
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - gfn_eq
    - gfn_to_gaddr
    - guest_walk_to_gfn
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t guest_walk_to_gpa(const walk_t *gw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:383,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:383,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:385,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - gw
    argTypes:
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 391
    functionName: guest_walk_to_page_order
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - guest_l3e_get_flags
    - guest_l2e_get_flags
    - ASSERT
    - guest_l1e_get_flags
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int guest_walk_to_page_order(const walk_t *gw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _n
    - ','
    - _l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: GPT_RENAME2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GPT_RENAME2(_n, _l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _n
    - ','
    - _l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: GPT_RENAME
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GPT_RENAME(_n, _l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:425,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:425,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:428,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:429,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:430,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:431,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:433,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:436,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:437,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:439,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:440,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:442,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:443,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/include/asm/guest_pt.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - gw
    argTypes:
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 453
    functionName: print_gw
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    functionUses: 0
    functionsReached:
    - mfn_x
    - gprintk
    - _p
    linkageType: ''
    returnType: void
    signature: void print_gw(const walk_t *gw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: cpufeat_word
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpufeat_word(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: cpufeat_bit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpufeat_bit(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: cpufeat_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpufeat_mask(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - f
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: VFM_MAKE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFM_MAKE(v, f, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vfm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: VFM_MODEL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFM_MODEL(vfm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vfm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: VFM_FAMILY
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFM_FAMILY(vfm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vfm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: VFM_VENDOR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFM_VENDOR(vfm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - what
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: CPU_DATA_INIT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPU_DATA_INIT(what...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpufeat_word
      Src: /src/xen/xen/arch/x86/include/asm/cpufeature.h:109,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/include/asm/cpufeature.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - feat
    argTypes:
    - struct cpuinfo_x86*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: cpu_has
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 51
    functionsReached:
    - cpufeat_mask
    - cpufeat_word
    linkageType: ''
    returnType: bool
    signature: bool cpu_has(const struct cpuinfo_x86 *info, unsigned int feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/include/asm/cpufeature.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feat
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: boot_cpu_has
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    functionUses: 45
    functionsReached:
    - cpu_has
    linkageType: ''
    returnType: bool
    signature: bool boot_cpu_has(unsigned int feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: ALT_NOT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_NOT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: alt_instr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed alt_instr
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: __ALT_PTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ALT_PTR(a,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: ALT_ORIG_PTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_ORIG_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ALT_REPL_PTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_REPL_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: alt_repl_s
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alt_repl_s(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: alt_repl_e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alt_repl_e(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: alt_repl_len
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alt_repl_len(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: AS_TRUE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_TRUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: as_max
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: as_max(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oldinstr
    - ','
    - padding
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: OLDINSTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OLDINSTR(oldinstr, padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oldinstr
    - ','
    - n1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: OLDINSTR_1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OLDINSTR_1(oldinstr, n1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - oldinstr
    - ','
    - n1
    - ','
    - n2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: OLDINSTR_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OLDINSTR_2(oldinstr, n1, n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - feature
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: ALTINSTR_ENTRY
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTINSTR_ENTRY(feature, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: DISCARD_ENTRY
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISCARD_ENTRY(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - newinstr
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: ALTINSTR_REPLACEMENT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTINSTR_REPLACEMENT(newinstr, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: ALTERNATIVE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTERNATIVE(oldinstr, newinstr, feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr1
    - ','
    - feature1
    - ','
    - newinstr2
    - ','
    - feature2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: ALTERNATIVE_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: alternative
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative(oldinstr, newinstr, feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr1
    - ','
    - feature1
    - ','
    - newinstr2
    - ','
    - feature2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: alternative_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_2(oldinstr, newinstr1, feature1, newinstr2, feature2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - ','
    - input
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: alternative_input
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_input(oldinstr, newinstr, feature, input...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - ','
    - output
    - ','
    - input
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: alternative_io
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_io(oldinstr, newinstr, feature, output, input...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 16
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr1
    - ','
    - feature1
    - ','
    - newinstr2
    - ','
    - feature2
    - ','
    - output
    - ','
    - input
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: alternative_io_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "alternative_io_2(oldinstr, newinstr1, feature1, newinstr2,      \\\n
      \                        feature2, output, input...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: ASM_OUTPUT2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_OUTPUT2(a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: GET_MARKER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MARKER(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: SET_MARKER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_MARKER(e, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - kind
    - ','
    - pt
    - ','
    - i
    - ','
    - idx
    - ','
    - shift
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: IS_CONTIG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CONTIG(kind, pt, i, idx, shift, b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:57,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:58,1
    - Dst: ffs
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:63,1
    - Dst: GET_MARKER
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:65,1
    - Dst: SET_MARKER
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:67,1
    - Dst: IS_CONTIG
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:87,1
    - Dst: GET_MARKER
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:87,1
    - Dst: SET_MARKER
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:92,1
    - Dst: IS_CONTIG
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:95,1
    - Dst: GET_MARKER
      Src: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h:95,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 4
    argNames:
    - pt
    - idx
    - level
    - kind
    argTypes:
    - uint64_t*
    - unsigned int
    - unsigned int
    - enum PTE_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 101
    functionName: pt_update_contig_markers
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
    functionUses: 0
    functionsReached:
    - GET_MARKER
    - ASSERT
    - ffs
    - SET_MARKER
    - IS_CONTIG
    linkageType: ''
    returnType: bool
    signature: "bool pt_update_contig_markers(uint64_t *pt, unsigned int idx,\n                                     unsigned
      int level, enum PTE_kind kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: cpu_physical_id
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/smp.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_physical_id(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: get_cpu_current
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/smp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu_current(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: tboot_probe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tboot_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - shutdown_type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: tboot_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tboot_shutdown(uint32_t shutdown_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: tboot_in_measured_env
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_in_measured_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: tboot_protect_mem_regions
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_protect_mem_regions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/include/asm/tboot.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dmar_handler
    argTypes:
    - acpi_table_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: tboot_parse_dmar_table
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 0
    functionsReached:
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int tboot_parse_dmar_table(acpi_table_handler dmar_handler)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: tboot_s3_resume
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_s3_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: tboot_s3_error
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tboot_s3_error(int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apicid
    - sipi_vec
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: tboot_wake_ap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/tboot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tboot_wake_ap(int apicid, unsigned long sipi_vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gpa
    - gla
    - npfec
    - req_ptr
    argTypes:
    - paddr_t
    - unsigned long
    - struct npfec
    - struct vm_event_st**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: p2m_mem_access_check
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,\n                                        struct
      npfec npfec,\n                                        struct vm_event_st **req_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/altp2m.h:20,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/altp2m.h:23,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/include/asm/altp2m.h:27,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/altp2m.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: altp2m_is_eptp_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/altp2m.h
    functionUses: 0
    functionsReached:
    - mfn_x
    - ASSERT
    - array_index_nospec
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: "bool altp2m_is_eptp_valid(const struct domain *d,\n                                        unsigned
      int idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: altp2m_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/altp2m.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool altp2m_active(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/include/asm/altp2m.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: altp2m_vcpu_idx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/altp2m.h
    functionUses: 2
    functionsReached:
    - vcpu_altp2m
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t altp2m_vcpu_idx(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: altp2m_is_eptp_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/altp2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool altp2m_is_eptp_valid(const struct domain *d,\n                                        unsigned
      int idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: altp2m_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/altp2m.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool altp2m_active(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - osvw_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: AMD_OSVW_ERRATUM
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_OSVW_ERRATUM(osvw_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - f
    - ','
    - m_start
    - ','
    - s_start
    - ','
    - m_end
    - ','
    - s_end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: AMD_MODEL_RANGE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_MODEL_RANGE(f, m_start, s_start, m_end, s_end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - range
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: AMD_MODEL_RANGE_FAMILY
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_MODEL_RANGE_FAMILY(range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - range
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: AMD_MODEL_RANGE_START
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_MODEL_RANGE_START(range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - range
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: AMD_MODEL_RANGE_END
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_MODEL_RANGE_END(range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: is_zen1_uarch
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_zen1_uarch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: is_zen2_uarch
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_zen2_uarch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: is_zen3_uarch
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_zen3_uarch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: is_zen4_uarch
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/amd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_zen4_uarch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: e820entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/e820.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed e820entry
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: p2m_to_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_to_mask(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: p2m_is_ram
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_ram(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: p2m_is_hole
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_hole(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: p2m_is_mmio
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_mmio(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: p2m_is_readonly
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_readonly(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: p2m_is_discard_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_discard_write(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: p2m_is_changeable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_changeable(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: p2m_is_pod
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_pod(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: p2m_is_grant
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_grant(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: p2m_is_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_valid(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: p2m_is_pageable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_pageable(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: p2m_is_paging
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_paging(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: p2m_is_paged
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_paged(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: p2m_is_sharable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_sharable(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: p2m_is_shared
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_shared(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: p2m_is_special
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_special(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: p2m_is_broken
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_broken(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: p2m_is_foreign
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_foreign(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: p2m_is_any_ram
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_any_ram(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: p2m_allows_invalid_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_allows_invalid_mfn(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: p2m_get_hostp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_get_hostp2m(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dir
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: np2m_schedule
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void np2m_schedule(int dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: p2m_is_hostp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_hostp2m(const struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: p2m_is_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_nestedp2m(const struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: p2m_is_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_altp2m(const struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: p2m_get_pagetable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t p2m_get_pagetable(const struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:471,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:478,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:478,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - p2m
    - gfn
    - t
    - a
    - q
    - page_order
    - locked
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: _get_gfn_type_access
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - gfn_x
    - paging_mode_translate
    - _mfn
    - p2m_get_gfn_type_access
    linkageType: ''
    returnType: void
    signature: "void _get_gfn_type_access(\n    struct p2m_domain *p2m, gfn_t gfn,
      p2m_type_t *t,\n    p2m_access_t *a, p2m_query_t q, unsigned int *page_order,
      bool locked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_gfn_type_access
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:497,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - p2m
    - gfn
    - t
    - a
    - q
    - page_order
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: get_gfn_type_access
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 4
    functionsReached:
    - _get_gfn_type_access
    - _gfn
    linkageType: ''
    returnType: void
    signature: "void get_gfn_type_access(\n    struct p2m_domain *p2m, unsigned long
      gfn, p2m_type_t *t,\n    p2m_access_t *a, p2m_query_t q, unsigned int *page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:505,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - t
    - q
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: get_gfn_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - p2m_get_hostp2m
    - get_gfn_type_access
    linkageType: ''
    returnType: void
    signature: "void get_gfn_type(\n    struct domain *d, unsigned long gfn, p2m_type_t
      *t, p2m_query_t q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - g
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gfn(d, g, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - g
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: get_gfn_query
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gfn_query(d, g, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - g
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: get_gfn_unshare
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gfn_unshare(d, g, t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:519,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:523,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:523,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: put_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 12
    functionsReached:
    - paging_mode_translate
    - _gfn
    - p2m_get_hostp2m
    - p2m_put_gfn
    linkageType: ''
    returnType: void
    signature: void put_gfn(struct domain *d, unsigned long gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _get_gfn_type_access
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:546,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:546,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gfn
    - t
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: get_gfn_query_unlocked
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 9
    functionsReached:
    - _get_gfn_type_access
    - _gfn
    - p2m_get_hostp2m
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t get_gfn_query_unlocked(struct domain *d,\n                                           unsigned
      long gfn,\n                                           p2m_type_t *t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:566,1
    - Dst: p2m_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:567,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:567,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:567,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:571,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:572,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:572,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:573,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:573,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - d
    - gfn
    - t
    - q
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 574
    functionName: get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 22
    functionsReached:
    - mfn_to_page
    - _gfn
    - _mfn
    - p2m_get_page_from_gfn
    - likely
    - mfn_valid
    - get_page
    - paging_mode_translate
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_gfn(\n    struct domain *d, unsigned
      long gfn, p2m_type_t *t, p2m_query_t q)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:579,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:580,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:580,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:580,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:582,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - mfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: mfn_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - paging_mode_translate
    - _gfn
    - get_gpfn_from_mfn
    - mfn_x
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t mfn_to_gfn(const struct domain *d, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ap2m
    - gfn
    - mfn
    - t
    - a
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t*
    - p2m_type_t*
    - p2m_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: _altp2m_get_effective_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int _altp2m_get_effective_entry(struct p2m_domain *ap2m,\n                                             gfn_t
      gfn, mfn_t *mfn,\n                                             p2m_type_t *t,
      p2m_access_t *a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - ap2m
    - ','
    - gfn
    - ','
    - mfn
    - ','
    - t
    - ','
    - a
    - ','
    - prepopulate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 607
    functionName: altp2m_get_effective_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: altp2m_get_effective_entry(ap2m, gfn, mfn, t, a, prepopulate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 646
    functionName: p2m_flush_hardware_cached_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_flush_hardware_cached_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: p2m_is_global_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_global_logdirty(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p2m
    - gfn
    - order
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: p2m_pod_demand_populate
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn, unsigned
      int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: p2m_pod_empty_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int p2m_pod_empty_cache(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 751
    functionName: p2m_pod_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_pod_active(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 756
    functionName: p2m_pod_offline_or_broken_hit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int p2m_pod_offline_or_broken_hit(struct page_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: p2m_pod_offline_or_broken_replace
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void p2m_pod_offline_or_broken_replace(struct page_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: relinquish_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int relinquish_p2m_mapping(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    functionName: p2m_pt_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_pt_init(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 815
    functionName: P2M_PRINTK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_PRINTK(f, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 817
    functionName: P2M_ERROR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_ERROR(f, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 820
    functionName: P2M_DEBUG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_DEBUG(f, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - f
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 822
    functionName: P2M_DEBUG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_DEBUG(f, a...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 845
    functionName: p2m_flags_to_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: p2m_type_t
    signature: p2m_type_t p2m_flags_to_type(unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:852,1
    - Dst: p2m_is_logdirty_range
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - recalc
    - t
    - p2m
    - gfn_start
    - gfn_end
    argTypes:
    - bool
    - p2m_type_t
    - struct p2m_domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 860
    functionName: p2m_recalc_type_range
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - p2m_is_changeable
    - p2m_is_logdirty_range
    linkageType: ''
    returnType: p2m_type_t
    signature: "p2m_type_t p2m_recalc_type_range(bool recalc, p2m_type_t t,\n                                               struct
      p2m_domain *p2m,\n                                               unsigned long
      gfn_start,\n                                               unsigned long gfn_end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_recalc_type_range
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - recalc
    - t
    - p2m
    - gfn
    argTypes:
    - bool
    - p2m_type_t
    - struct p2m_domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 2
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: p2m_recalc_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - p2m_recalc_type_range
    linkageType: ''
    returnType: p2m_type_t
    signature: "p2m_type_t p2m_recalc_type(bool recalc, p2m_type_t t,\n                                         struct
      p2m_domain *p2m,\n                                         unsigned long gfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:897,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 905
    functionName: p2m_get_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    - vcpu_altp2m
    linkageType: ''
    returnType: struct p2m_domain
    signature: struct p2m_domain *p2m_get_altp2m(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:912,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:914,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:917,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:918,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:919,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:921,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 925
    functionName: p2m_set_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - p2m_get_altp2m
    - vcpu_altp2m
    - BUG_ON
    - atomic_inc
    - atomic_dec
    linkageType: ''
    returnType: bool
    signature: bool p2m_set_altp2m(struct vcpu *v, unsigned int idx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1000,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - p2ma
    argTypes:
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 1002
    functionName: p2m_access_to_iommu_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int p2m_access_to_iommu_flags(p2m_access_t p2ma)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_access_to_iommu_flags
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1025,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1027,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1027,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - p2mt
    - p2ma
    - mfn
    argTypes:
    - p2m_type_t
    - p2m_access_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1036
    functionName: p2m_get_iommu_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - rangeset_contains_singleton
    - mfn_x
    - p2m_access_to_iommu_flags
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int p2m_get_iommu_flags(p2m_type_t p2mt,\n                                               p2m_access_t
      p2ma, mfn_t mfn)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1049,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1050,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1052,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1066,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1066,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1068,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1072,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1072,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1086,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1092,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1092,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1093,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1095,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1104,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/include/asm/p2m.h:1107,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 6
    argNames:
    - p2m
    - nt
    - ot
    - nfn
    - ofn
    - level
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    - mfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1117
    functionName: p2m_entry_modify
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - page_get_owner_and_reference
    - mfn_valid
    - BUG_ON
    - ASSERT
    - mfn_eq
    - put_page
    - ACCESS_ONCE
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t nt,\n                                   p2m_type_t
      ot, mfn_t nfn, mfn_t ofn,\n                                   unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/psr.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: psr_cmt_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/psr.h
    functionUses: 9
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool psr_cmt_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: psr_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/psr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void psr_ctxt_switch_to(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: psr_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/psr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void psr_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: psr_domain_free
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/psr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void psr_domain_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: cpu_to_core
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_core(_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: cpu_to_socket
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_socket(_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - op
    - count
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: cpuid_count
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cpuid_count(\n    unsigned int op,\n    unsigned int count,\n
      \   unsigned int *eax,\n    unsigned int *ebx,\n    unsigned int *ecx,\n    unsigned
      int *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - leaf
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - unsigned int
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: cpuid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 33
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: void
    signature: "void cpuid(\n    unsigned int leaf,\n    unsigned int *eax,\n    unsigned
      int *ebx,\n    unsigned int *ecx,\n    unsigned int *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: cpuid_eax
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned cpuid_eax(unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 164
    functionName: cpuid_ebx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned cpuid_ebx(unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: cpuid_ecx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned cpuid_ecx(unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 186
    functionName: cpuid_edx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: always_inline unsigned
    signature: always_inline unsigned cpuid_edx(unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - leaf
    - subleaf
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: cpuid_count_ebx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 3
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: always_inline unsigned
    signature: "always_inline unsigned cpuid_count_ebx(\n    unsigned int leaf, unsigned
      int subleaf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - leaf
    - subleaf
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: cpuid_count_edx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 0
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: always_inline unsigned
    signature: "always_inline unsigned cpuid_count_edx(\n    unsigned int leaf, unsigned
      int subleaf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: read_cr0
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_cr0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: write_cr0
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_cr0(unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: read_cr2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_cr2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: write_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_cr3(unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cr3
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: cr3_pa
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long cr3_pa(unsigned long cr3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cr3
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: cr3_pcid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 0
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cr3_pcid(unsigned long cr3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: read_cr4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 17
    functionsReached:
    - get_cpu_info
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_cr4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:249,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:253,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 278
    functionName: write_cr4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 7
    functionsReached:
    - get_cpu_info
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void write_cr4(unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: clts
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:288,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: stts
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 3
    functionsReached:
    - read_cr0
    - write_cr0
    linkageType: ''
    returnType: void
    signature: void stts(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:303,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:303,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/processor.h:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mask
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: set_in_cr4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 4
    functionsReached:
    - write_cr4
    - read_cr4
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline set_in_cr4 (unsigned long mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 323
    functionName: tss64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed tss64
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: cpu_relax
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: dump_execution_state
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dump_execution_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 391
    functionName: enable_nmis
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_nmis(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - raw
    - model
    - stepping
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: get_cpu_family
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t get_cpu_family(uint32_t raw, uint8_t *model,\n                                     uint8_t
      *stepping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 424
    functionName: tsx_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/processor.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tsx_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/xstate.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: xgetbv
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/xstate.h
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xgetbv(unsigned int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - xsave_area
    argTypes:
    - struct xsave_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: xsave_area_compressed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/xstate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xsave_area_compressed(const struct xsave_struct *xsave_area)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsave_area_compressed
      Src: /src/xen/xen/arch/x86/include/asm/xstate.h:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: xstate_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/xstate.h
    functionUses: 3
    functionsReached:
    - xsave_area_compressed
    linkageType: ''
    returnType: bool
    signature: bool xstate_all(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: VCPU_MAP_XSAVE_AREA
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/xstate.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VCPU_MAP_XSAVE_AREA(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: VCPU_UNMAP_XSAVE_AREA
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/xstate.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VCPU_UNMAP_XSAVE_AREA(v, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: shadow_mode_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_mode_enabled(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: shadow_mode_refcounts
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_mode_refcounts(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: shadow_mode_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_mode_log_dirty(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: shadow_mode_translate
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_mode_translate(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: shadow_mode_external
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_mode_external(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: shadow_vcpu_teardown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_vcpu_teardown(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: shadow_teardown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_teardown(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: shadow_final_teardown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_final_teardown(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: shadow_enable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_enable(d, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - begin_pfn
    - ','
    - nr
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: shadow_track_dirty_vram
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_track_dirty_vram(d, begin_pfn, nr, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - pages
    - ','
    - preempted
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: shadow_set_allocation
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_set_allocation(d, pages, preempted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - d
    - gmfn
    - fast
    - all
    argTypes:
    - struct domain*
    - mfn_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: sh_remove_shadows
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sh_remove_shadows(struct domain *d, mfn_t gmfn,\n                                     int
      fast, int all)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - page
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: shadow_prepare_page_type_change
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void shadow_prepare_page_type_change(struct domain *d,\n                                                   const
      struct page_info *page)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: shadow_blow_tables_per_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void shadow_blow_tables_per_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - old
    argTypes:
    - struct domain*
    - pagetable_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: shadow_put_top_level
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void shadow_put_top_level(struct domain *d, pagetable_t old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - sc
    argTypes:
    - struct domain*
    - struct xen_domctl_shadow_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: shadow_domctl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int shadow_domctl(struct domain *d,\n                                struct
      xen_domctl_shadow_op *sc,\n                                XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
      u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - intpte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: is_l1tf_safe_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_l1tf_safe_maddr(intpte_t pte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:186,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:186,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:187,1
    - Dst: paging_mode_sh_forced
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:189,1
    - Dst: is_l1tf_safe_maddr
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:190,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:195,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:205,1
    - Dst: tasklet_is_scheduled
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:206,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:207,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:209,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - d
    - level
    - pte
    argTypes:
    - struct domain*
    - unsigned int
    - intpte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: pv_l1tf_check_pte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached:
    - tasklet_is_scheduled
    - tasklet_schedule
    - smp_rmb
    - ASSERT
    - is_pv_domain
    - paging_mode_sh_forced
    - printk
    - is_l1tf_safe_maddr
    - domain_crash
    linkageType: ''
    returnType: bool
    signature: "bool pv_l1tf_check_pte(struct domain *d, unsigned int level,\n                                     intpte_t
      pte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_check_pte
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l1e
    argTypes:
    - struct domain*
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: pv_l1tf_check_l1e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 2
    functionsReached:
    - pv_l1tf_check_pte
    linkageType: ''
    returnType: bool
    signature: bool pv_l1tf_check_l1e(struct domain *d, l1_pgentry_t l1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_check_pte
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l2e
    argTypes:
    - struct domain*
    - l2_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: pv_l1tf_check_l2e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 2
    functionsReached:
    - pv_l1tf_check_pte
    linkageType: ''
    returnType: bool
    signature: bool pv_l1tf_check_l2e(struct domain *d, l2_pgentry_t l2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_check_pte
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l3e
    argTypes:
    - struct domain*
    - l3_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: pv_l1tf_check_l3e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 2
    functionsReached:
    - pv_l1tf_check_pte
    linkageType: ''
    returnType: bool
    signature: bool pv_l1tf_check_l3e(struct domain *d, l3_pgentry_t l3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_check_pte
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l4e
    argTypes:
    - struct domain*
    - l4_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: pv_l1tf_check_l4e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 2
    functionsReached:
    - pv_l1tf_check_pte
    linkageType: ''
    returnType: bool
    signature: bool pv_l1tf_check_l4e(struct domain *d, l4_pgentry_t l4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:244,1
    - Dst: tasklet_init
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: pv_l1tf_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached:
    - tasklet_init
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void pv_l1tf_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_kill
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: pv_l1tf_domain_destroy
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 0
    functionsReached:
    - tasklet_kill
    linkageType: ''
    returnType: void
    signature: void pv_l1tf_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/include/asm/shadow.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: shadow_remove_all_shadows
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/shadow.h
    functionUses: 1
    functionsReached:
    - sh_remove_shadows
    linkageType: ''
    returnType: void
    signature: void shadow_remove_all_shadows(struct domain *d, mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _fam
    - ','
    - _model
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: IFM
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/intel-family.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFM(_fam, _model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: arch_vcpu_struct_memflags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vcpu_struct_memflags(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: has_32bit_shinfo
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_32bit_shinfo(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: is_hvm_pv_evtchn_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_hvm_pv_evtchn_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MAPHASH_HASHFN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPHASH_HASHFN(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: has_vlapic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vlapic(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: has_vhpet
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vhpet(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: has_vpm
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpm(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: has_vrtc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vrtc(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: has_vioapic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vioapic(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: has_vpic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpic(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: has_vvga
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vvga(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: has_viommu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_viommu(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: has_vpit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpit(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: has_pirq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_pirq(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: has_vpci
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpci(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: gdt_ldt_pt_idx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gdt_ldt_pt_idx(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: pv_gdt_ptes
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pv_gdt_ptes(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 533
    functionName: pv_ldt_ptes
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pv_ldt_ptes(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: IOPL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOPL(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 632
    functionName: async_exception_state
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: async_exception_state(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmalloc
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 716
    functionName: alloc_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - vmalloc
    linkageType: ''
    returnType: struct vcpu_guest_context
    signature: struct vcpu_guest_context *alloc_vcpu_guest_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfree
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgc
    argTypes:
    - struct vcpu_guest_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 721
    functionName: free_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - vfree
    linkageType: ''
    returnType: void
    signature: void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 734
    functionName: pv_inject_event
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_inject_event(const struct x86_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - errcode
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 746
    functionName: pv_inject_hw_exception
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 3
    functionsReached:
    - pv_inject_event
    linkageType: ''
    returnType: void
    signature: void pv_inject_hw_exception(unsigned int vector, int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pending_dbg
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 759
    functionName: pv_inject_DB
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached:
    - pv_inject_event
    linkageType: ''
    returnType: void
    signature: void pv_inject_DB(unsigned long pending_dbg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - errcode
    - cr2
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 772
    functionName: pv_inject_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached:
    - pv_inject_event
    linkageType: ''
    returnType: void
    signature: void pv_inject_page_fault(int errcode, unsigned long cr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/domain.h:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 783
    functionName: pv_inject_sw_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - pv_inject_event
    linkageType: ''
    returnType: void
    signature: void pv_inject_sw_interrupt(unsigned int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: arch_vm_assist_valid_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vm_assist_valid_mask(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: get_stack_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_stack_page(unsigned long sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: get_cpu_info_from_stack
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct cpu_info
    signature: struct cpu_info *get_cpu_info_from_stack(unsigned long sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info_from_stack
      Src: /src/xen/xen/arch/x86/include/asm/current.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: get_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 19
    functionsReached:
    - get_cpu_info_from_stack
    linkageType: ''
    returnType: attr_const
    signature: attr_const *get_cpu_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: get_current
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_current()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: set_current
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_current(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: smp_processor_id
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 104
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_processor_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: guest_cpu_user_regs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cpu_user_regs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: get_per_cpu_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_per_cpu_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: get_stack_bottom
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_stack_bottom()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: ssaj_has_attr_noreturn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssaj_has_attr_noreturn(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: ssaj_has_attr_noreturn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ssaj_has_attr_noreturn(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - instr
    - ','
    - constr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 204
    functionName: switch_stack_and_jump
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: switch_stack_and_jump(fn, instr, constr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: reset_stack_and_jump
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: reset_stack_and_jump(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: reset_stack_and_call_ind
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/current.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: reset_stack_and_call_ind(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: bootsym_phys
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/trampoline.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bootsym_phys(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: bootsym
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/trampoline.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bootsym(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: PDX_ASM_GOTO
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDX_ASM_GOTO(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDX_ASM_GOTO
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:22,1
    - Dst: pfn_to_pdx_xlate
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: pfn_to_pdx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pdx.h
    functionUses: 3
    functionsReached:
    - pfn_to_pdx_xlate
    - PDX_ASM_GOTO
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pfn_to_pdx(unsigned long pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDX_ASM_GOTO
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:32,1
    - Dst: pdx_to_pfn_xlate
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pdx
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: pdx_to_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pdx.h
    functionUses: 2
    functionsReached:
    - pdx_to_pfn_xlate
    - PDX_ASM_GOTO
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pdx_to_pfn(unsigned long pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDX_ASM_GOTO
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:42,1
    - Dst: maddr_to_directmapoff_xlate
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: maddr_to_directmapoff
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pdx.h
    functionUses: 0
    functionsReached:
    - maddr_to_directmapoff_xlate
    - PDX_ASM_GOTO
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long maddr_to_directmapoff(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDX_ASM_GOTO
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:52,1
    - Dst: directmapoff_to_maddr_xlate
      Src: /src/xen/xen/arch/x86/include/asm/pdx.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: directmapoff_to_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pdx.h
    functionUses: 0
    functionsReached:
    - directmapoff_to_maddr_xlate
    - PDX_ASM_GOTO
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t directmapoff_to_maddr(unsigned long offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline rdmsr(unsigned int msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: rdmsrl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rdmsrl(msr,val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrmsr(unsigned int msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: wrmsrl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wrmsrl(msr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_input
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: wrmsrns
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 12
    functionsReached:
    - alternative_input
    linkageType: ''
    returnType: void
    signature: void wrmsrns(uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: rdmsr_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 16
    functionsReached:
    - _ASM_EXTABLE
    linkageType: ''
    returnType: int
    signature: int rdmsr_safe(unsigned int msr, uint64_t *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: wrmsr_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 10
    functionsReached:
    - _ASM_EXTABLE
    linkageType: ''
    returnType: int
    signature: int wrmsr_safe(unsigned int msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: read_efer
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 9
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t read_efer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:140,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: write_efer
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 3
    functionsReached:
    - wrmsrl
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void write_efer(uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:149,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/msr.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: wrmsr_tsc_aux
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr.h
    functionUses: 4
    functionsReached:
    - wrmsrns
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void wrmsr_tsc_aux(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: __rdfsbase
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __rdfsbase(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: __rdgsbase
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __rdgsbase(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: __rdgs_shadow
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __rdgs_shadow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: __wrfsbase
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __wrfsbase(unsigned long base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: __wrgsbase
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __wrgsbase(unsigned long base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: __wrgs_shadow
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __wrgs_shadow(unsigned long base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:66,1
    - Dst: __rdfsbase
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:67,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: read_fs_base
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 0
    functionsReached:
    - __rdfsbase
    - read_cr4
    - rdmsr
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_fs_base(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:74,1
    - Dst: __rdgsbase
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:75,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: read_gs_base
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 0
    functionsReached:
    - read_cr4
    - rdmsr
    - __rdgsbase
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_gs_base(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:82,1
    - Dst: __rdgs_shadow
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:85,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: read_gs_shadow
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 2
    functionsReached:
    - read_cr4
    - rdmsr
    - __rdgs_shadow
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long read_gs_shadow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:92,1
    - Dst: __wrfsbase
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:93,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: write_fs_base
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 0
    functionsReached:
    - wrmsrns
    - read_cr4
    - __wrfsbase
    linkageType: ''
    returnType: void
    signature: void write_fs_base(unsigned long base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:100,1
    - Dst: __wrgsbase
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:101,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: write_gs_base
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 0
    functionsReached:
    - wrmsrns
    - read_cr4
    - __wrgsbase
    linkageType: ''
    returnType: void
    signature: void write_gs_base(unsigned long base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:108,1
    - Dst: __wrgs_shadow
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:111,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/include/asm/fsgsbase.h:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - base
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: write_gs_shadow
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
    functionUses: 2
    functionsReached:
    - wrmsrns
    - read_cr4
    - __wrgs_shadow
    linkageType: ''
    returnType: void
    signature: void write_gs_shadow(unsigned long base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: RTIT_CTL_ADDR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTIT_CTL_ADDR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: MSR_RTIT_ADDR_A
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_RTIT_ADDR_A(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: MSR_RTIT_ADDR_B
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_RTIT_ADDR_B(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: MSR_IA32_MTRR_PHYSBASE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MTRR_PHYSBASE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: MSR_IA32_MTRR_PHYSMASK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MTRR_PHYSMASK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: MSR_IA32_MCx_CTL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MCx_CTL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: MSR_IA32_MCx_STATUS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MCx_STATUS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: MSR_IA32_MCx_ADDR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MCx_ADDR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: MSR_IA32_MCx_MISC
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MCx_MISC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: MSR_IA32_MCx_CTL2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_MCx_CTL2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: MSR_AMD64_MCx_MASK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_AMD64_MCx_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: MSR_IA32_PSR_L3_MASK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_PSR_L3_MASK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: MSR_IA32_PSR_L3_MASK_CODE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_PSR_L3_MASK_CODE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: MSR_IA32_PSR_L3_MASK_DATA
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_PSR_L3_MASK_DATA(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: MSR_IA32_PSR_L2_MASK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_PSR_L2_MASK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: MSR_IA32_PSR_MBA_MASK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_IA32_PSR_MBA_MASK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: MSR_P6_PERFCTR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_P6_PERFCTR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: MSR_P6_EVNTSEL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msr-index.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSR_P6_EVNTSEL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: __dfn_to_daddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __dfn_to_daddr(dfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - daddr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: __daddr_to_dfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __daddr_to_dfn(daddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: dfn_to_daddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dfn_to_daddr(dfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - daddr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: daddr_to_dfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: daddr_to_dfn(daddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - ops
    - ','
    - fn
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: iommu_call
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_call(ops, fn, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - ops
    - ','
    - fn
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: iommu_vcall
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_vcall(ops, fn, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/iommu.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: iommu_get_ops
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: struct iommu_ops
    signature: struct iommu_ops *iommu_get_ops(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_vcall
      Src: /src/xen/xen/arch/x86/include/asm/iommu.h:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: iommu_adjust_irq_affinities
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 1
    functionsReached:
    - iommu_vcall
    linkageType: ''
    returnType: void
    signature: void iommu_adjust_irq_affinities(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: supports_x2apic
      Src: /src/xen/xen/arch/x86/include/asm/iommu.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: iommu_supports_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 1
    functionsReached:
    - supports_x2apic
    linkageType: ''
    returnType: bool
    signature: bool iommu_supports_x2apic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_vcall
      Src: /src/xen/xen/arch/x86/include/asm/iommu.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: iommu_disable_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 1
    functionsReached:
    - iommu_vcall
    linkageType: ''
    returnType: void
    signature: void iommu_disable_x2apic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_writeback
      Src: /src/xen/xen/arch/x86/include/asm/iommu.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: iommu_sync_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/iommu.h
    functionUses: 0
    functionsReached:
    - cache_writeback
    linkageType: ''
    returnType: void
    signature: void iommu_sync_cache(const void *addr, unsigned int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:21,1
    - Dst: create_grant_p2m_mapping
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:22,1
    - Dst: create_grant_pv_mapping
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - addr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: create_grant_host_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached:
    - paging_mode_external
    - create_grant_p2m_mapping
    - create_grant_pv_mapping
    linkageType: ''
    returnType: int
    signature: "int create_grant_host_mapping(uint64_t addr, mfn_t frame,\n                                            unsigned
      int flags,\n                                            unsigned int cache_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:30,1
    - Dst: replace_grant_p2m_mapping
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:31,1
    - Dst: replace_grant_pv_mapping
      Src: /src/xen/xen/arch/x86/include/asm/grant_table.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - addr
    - frame
    - new_addr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: replace_grant_host_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached:
    - replace_grant_pv_mapping
    - paging_mode_external
    - replace_grant_p2m_mapping
    linkageType: ''
    returnType: int
    signature: "int replace_grant_host_mapping(uint64_t addr, mfn_t frame,\n                                             uint64_t
      new_addr,\n                                             unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gt
    - ','
    - st
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: gnttab_get_frame_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_get_frame_gfn(gt, st, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: gnttab_shared_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_shared_mfn(t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: gnttab_shared_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_shared_gfn(d, t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: gnttab_status_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_status_mfn(t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: gnttab_status_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_status_gfn(d, t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: gnttab_mark_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_mark_dirty(d, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - mask
    - addr
    argTypes:
    - struct domain*
    - unsigned int
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: gnttab_clear_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void gnttab_clear_flags(struct domain *d,\n                                      unsigned
      int mask, uint16_t *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ro
    - ','
    - ld
    - ','
    - rd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: gnttab_host_mapping_get_page_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_host_mapping_get_page_type(ro, ld, rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - domain
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: gnttab_release_host_mappings
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_release_host_mappings(domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: gnttab_need_iommu_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_need_iommu_mapping(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asm_inline
      Src: /src/xen/xen/arch/x86/include/asm/muldiv64.h:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 17
    functionName: arch_muldiv64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/muldiv64.h
    functionUses: 0
    functionsReached:
    - asm_inline
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t arch_muldiv64(uint64_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctrlreg_index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: monitor_ctrlreg_bitmask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: monitor_ctrlreg_bitmask(ctrlreg_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - allow_userspace
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: arch_monitor_allow_userspace
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/include/asm/monitor.h:49,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/include/asm/monitor.h:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 72
    functionName: arch_monitor_domctl_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 0
    functionsReached:
    - domain_unpause
    - domain_pause
    linkageType: ''
    returnType: int
    signature: int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op
      *mop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/include/asm/monitor.h:83,1
    - Dst: hvm_is_singlestep_supported
      Src: /src/xen/xen/arch/x86/include/asm/monitor.h:98,1
    - Dst: hvm_has_set_descriptor_access_exiting
      Src: /src/xen/xen/arch/x86/include/asm/monitor.h:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: arch_monitor_get_capabilities
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 0
    functionsReached:
    - hvm_is_singlestep_supported
    - is_hvm_domain
    - hvm_has_set_descriptor_access_exiting
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t arch_monitor_get_capabilities(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: arch_monitor_init_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_monitor_init_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: arch_monitor_cleanup_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_monitor_cleanup_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: monitored_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/monitor.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool monitored_msr(const struct domain *d, u32 msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: mwait_pc10_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mwait.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mwait_pc10_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: Dprintk
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dprintk(x...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: SET_APIC_LOGICAL_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_APIC_LOGICAL_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - v
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: apic_printk
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: apic_printk(v, s, a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - v
    argTypes:
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: apic_mem_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 1
    functionsReached:
    - fix_to_virt
    linkageType: ''
    returnType: void
    signature: void apic_mem_write(unsigned int reg, uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fix_to_virt
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: apic_mem_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 2
    functionsReached:
    - fix_to_virt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t apic_mem_read(unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - reg
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: apic_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 1
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void apic_wrmsr(unsigned int reg, uint64_t msr_content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reg
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: apic_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 2
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t apic_rdmsr(unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:94,1
    - Dst: apic_mem_write
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - reg
    - v
    argTypes:
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: apic_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 30
    functionsReached:
    - apic_wrmsr
    - apic_mem_write
    linkageType: ''
    returnType: void
    signature: void apic_write(unsigned int reg, uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:102,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: apic_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 34
    functionsReached:
    - apic_mem_read
    - apic_rdmsr
    linkageType: ''
    returnType: u32
    signature: u32 apic_read(unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_rdmsr
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:112,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:115,1
    - Dst: apic_mem_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: apic_icr_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 0
    functionsReached:
    - apic_mem_read
    - apic_rdmsr
    linkageType: ''
    returnType: u64
    signature: u64 apic_icr_read(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:125,1
    - Dst: apic_mem_write
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:128,1
    - Dst: apic_mem_write
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - low
    - dest
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: apic_icr_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 3
    functionsReached:
    - apic_wrmsr
    - apic_mem_write
    linkageType: ''
    returnType: void
    signature: void apic_icr_write(u32 low, u32 dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: apic_isr_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 3
    functionsReached:
    - apic_read
    linkageType: ''
    returnType: bool
    signature: bool apic_isr_read(unsigned int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: apic_tmr_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 2
    functionsReached:
    - apic_read
    linkageType: ''
    returnType: bool
    signature: bool apic_tmr_read(unsigned int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: apic_irr_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 1
    functionsReached:
    - apic_read
    linkageType: ''
    returnType: bool
    signature: bool apic_irr_read(unsigned int vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:150,1
    - Dst: GET_xAPIC_ID
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: get_apic_id
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 10
    functionsReached:
    - apic_read
    - GET_xAPIC_ID
    linkageType: ''
    returnType: u32
    signature: u32 get_apic_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/include/asm/apic.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: ack_APIC_irq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/apic.h
    functionUses: 18
    functionsReached:
    - apic_write
    linkageType: ''
    returnType: void
    signature: void ack_APIC_irq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - f
    - ','
    - m
    - ','
    - steps
    - ','
    - feat
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: X86_MATCH_CPU
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/match-cpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_MATCH_CPU(v, f, m, steps, feat, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vfm
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: X86_MATCH_VFM
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/match-cpu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_MATCH_VFM(vfm, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vfm
    - ','
    - stepping
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: X86_MATCH_VFMS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/match-cpu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_MATCH_VFMS(vfm, stepping, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - phys
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: set_fixmap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_fixmap(idx, phys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - phys
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: set_fixmap_nocache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_fixmap_nocache(idx, phys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: clear_fixmap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_fixmap(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: __fix_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __fix_to_virt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: __virt_to_fix
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __virt_to_fix(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: fix_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fix_to_virt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/fixmap.h:94,1
    - Dst: __virt_to_fix
      Src: /src/xen/xen/arch/x86/include/asm/fixmap.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vaddr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: virt_to_fix
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    - __virt_to_fix
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long virt_to_fix(const unsigned long vaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - phys
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: set_fixmap_x
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_fixmap_x(idx, phys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: clear_fixmap_x
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_fixmap_x(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: __fix_x_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __fix_x_to_virt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: fix_x_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/fixmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fix_x_to_virt(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/include/asm/event.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: vcpu_event_delivery_is_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 0
    functionsReached:
    - vcpu_info
    linkageType: ''
    returnType: int
    signature: int vcpu_event_delivery_is_enabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/event.h:26,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/event.h:26,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/include/asm/event.h:28,1
    - Dst: hvm_local_events_need_delivery
      Src: /src/xen/xen/arch/x86/include/asm/event.h:28,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/include/asm/event.h:29,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/include/asm/event.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: local_events_need_delivery
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 3
    functionsReached:
    - vcpu_info
    - is_hvm_vcpu
    - is_idle_vcpu
    - ASSERT
    - hvm_local_events_need_delivery
    linkageType: ''
    returnType: always_inline
    signature: always_inline local_events_need_delivery(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/include/asm/event.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: local_event_delivery_disable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 1
    functionsReached:
    - vcpu_info
    linkageType: ''
    returnType: void
    signature: void local_event_delivery_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: local_event_delivery_enable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void local_event_delivery_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: vcpu_info
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vcpu_info(current, evtchn_upcall_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: arch_get_virq_type
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum virq_type
    signature: enum virq_type arch_get_virq_type(unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - chn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: arch_evtchn_is_special
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_evtchn_is_special(chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MSI_DATA_VECTOR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSI_DATA_VECTOR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dest
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MSI_ADDR_DEST_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSI_ADDR_DEST_ID(dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: msi_control_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_control_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: msi_lower_address_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_lower_address_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: msi_upper_address_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_upper_address_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - is64bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: msi_data_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_data_reg(base, is64bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - is64bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: msi_mask_bits_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_mask_bits_reg(base, is64bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - is64bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: msi_pending_bits_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msi_pending_bits_reg(base, is64bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - control
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: multi_msi_capable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_msi_capable(control)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - control
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: multi_msi_enable
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multi_msi_enable(control, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - control
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: is_64bit_address
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_64bit_address(control)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - control
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: is_mask_bit_support
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_mask_bit_support(control)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: msix_control_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msix_control_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: msix_table_offset_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msix_table_offset_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: msix_pba_offset_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msix_pba_offset_reg(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - control
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: msix_table_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msix_table_size(control)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - msix
    - ','
    - domid
    - ','
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: MSIX_CHECK_WARN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/msi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSIX_CHECK_WARN(msix, domid, which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: HPET_Tn_CFG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hpet.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPET_Tn_CFG(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: HPET_Tn_CMP
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hpet.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPET_Tn_CMP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: HPET_Tn_ROUTE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hpet.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HPET_Tn_ROUTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: hpet_read32
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hpet.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpet_read32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: hpet_write32
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hpet.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hpet_write32(y,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/include/asm/time.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: get_cycles
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/time.h
    functionUses: 1
    functionsReached:
    - rdtsc_ordered
    linkageType: ''
    returnType: cycles_t
    signature: cycles_t get_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PIT_TCW_CH
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/time.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PIT_TCW_CH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PIT_LTCH_CH
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PIT_LTCH_CH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - physid
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: physid_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physid_set(physid, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - physid
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: physid_clear
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physid_clear(physid, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - physid
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: physid_isset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physid_isset(physid, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - physid
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: physid_test_and_set
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physid_test_and_set(physid, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: first_physid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: first_physid(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - id
    - ','
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: next_physid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_physid(id, map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: last_physid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: last_physid(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: physids_and
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_and(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: physids_or
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_or(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: physids_clear
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_clear(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: physids_complement
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_complement(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: physids_empty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_empty(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - map1
    - ','
    - map2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: physids_equal
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_equal(map1, map2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - map
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: physids_weight
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mpspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: physids_weight(map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: as_true
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: as_true(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - padding
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: decl_orig
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_orig(insn, padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: decl_repl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: decl_repl(insn, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: repl_len
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repl_len(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - new
    - ','
    - old
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: clone_repl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clone_repl(new, old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: as_max
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: as_max(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: mem_sharing_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mem_sharing_enabled(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __mem_sharing_unshare_page
      Src: /src/xen/xen/arch/x86/include/asm/mem_sharing.h:65,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/mem_sharing.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: mem_sharing_unshare_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 1
    functionsReached:
    - __mem_sharing_unshare_page
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_unshare_page(struct domain *d,\n                                           unsigned
      long gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: mem_sharing_is_fork
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mem_sharing_is_fork(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: mem_sharing_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mem_sharing_enabled(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: mem_sharing_get_nr_saved_mfns
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mem_sharing_get_nr_saved_mfns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: mem_sharing_get_nr_shared_mfns
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mem_sharing_get_nr_shared_mfns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/mem_sharing.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: mem_sharing_unshare_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int mem_sharing_unshare_page(struct domain *d, unsigned long gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/mem_sharing.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - gfn
    - allow_sleep
    argTypes:
    - struct domain*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: mem_sharing_notify_enomem
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,\n
      \                                           bool allow_sleep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: mem_sharing_is_fork
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mem_sharing_is_fork(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gfn
    - lock
    argTypes:
    - struct domain*
    - gfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: mem_sharing_fork_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mem_sharing_fork_page(struct domain *d, gfn_t gfn, bool lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - reset_state
    - reset_memory
    argTypes:
    - struct domain*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: mem_sharing_fork_reset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_fork_reset(struct domain *d, bool reset_state,\n                                         bool
      reset_memory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: readb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: readw
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: readl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: readq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: writeb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb(d,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: writew
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew(d,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: writel
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel(d,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: writeq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq(d,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: __OUT1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __OUT1(s,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: __OUT2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __OUT2(s,s1,s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - s1
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: __OUT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __OUT(s,s1,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: __IN1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IN1(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: __IN2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IN2(s,s1,s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - s
    - ','
    - s1
    - ','
    - i
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: __IN
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IN(s,s1,i...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: HAP_PRINTK
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAP_PRINTK(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: dev_is_pci
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_is_pci(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pci
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: pci_to_dev
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_to_dev(pci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: X86_SYNTH
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_SYNTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: X86_BUG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86_BUG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: paging_mode_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_enabled(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: paging_mode_shadow
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_shadow(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: paging_mode_sh_forced
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_sh_forced(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: paging_mode_hap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_hap(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: paging_mode_refcounts
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_refcounts(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: paging_mode_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_log_dirty(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: paging_mode_translate
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_translate(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: paging_mode_external
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_external(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: paging_logdirty_levels
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_logdirty_levels()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: L1_LOGDIRTY_IDX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L1_LOGDIRTY_IDX(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: L2_LOGDIRTY_IDX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L2_LOGDIRTY_IDX(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: L3_LOGDIRTY_IDX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L3_LOGDIRTY_IDX(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: L4_LOGDIRTY_IDX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L4_LOGDIRTY_IDX(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - ops
    argTypes:
    - struct domain*
    - struct log_dirty_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: paging_log_dirty_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void paging_log_dirty_init(struct domain *d,\n                                         const
      struct log_dirty_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: paging_mark_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void paging_mark_dirty(struct domain *d, mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - pfn
    argTypes:
    - struct domain*
    - pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: paging_mark_pfn_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: paging_mfn_is_dirty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool paging_mfn_is_dirty(struct domain *d, mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: paging_get_hostmode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_get_hostmode(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: paging_get_nestedmode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_get_nestedmode(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - va
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: paging_fault
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 3
    functionsReached:
    - paging_get_hostmode
    linkageType: ''
    returnType: int
    signature: int paging_fault(unsigned long va, struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - v
    - cr3
    - ga
    - pfec
    - page_order
    argTypes:
    - struct vcpu*
    - unsigned long
    - paddr_t
    - uint32_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: paging_ga_to_gfn_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 1
    functionsReached:
    - paging_get_hostmode
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long paging_ga_to_gfn_cr3(struct vcpu *v,\n                                                 unsigned
      long cr3,\n                                                 paddr_t ga,\n                                                 uint32_t
      *pfec,\n                                                 unsigned int *page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain::arch::paging::flush_tlb
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vcpu_bitmap
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: paging_flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 3
    functionsReached:
    - domain::arch::paging::flush_tlb
    linkageType: ''
    returnType: bool
    signature: bool paging_flush_tlb(const unsigned long *vcpu_bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: paging_update_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 3
    functionsReached:
    - paging_get_hostmode
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t paging_update_cr3(struct vcpu *v, bool noflush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct vcpu*::domain::arch::paging::update_paging_modes
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: paging_update_paging_modes
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 13
    functionsReached:
    - struct vcpu*::domain::arch::paging::update_paging_modes
    linkageType: ''
    returnType: void
    signature: void paging_update_paging_modes(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - new
    argTypes:
    - l1_pgentry_t*
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: safe_write_pte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void safe_write_pte(l1_pgentry_t *p, l1_pgentry_t new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/include/asm/paging.h:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: gfn_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/paging.h
    functionUses: 3
    functionsReached:
    - gfn_x
    linkageType: ''
    returnType: bool
    signature: bool gfn_valid(const struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 138
    functionName: edd_info
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/edd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed edd_info
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 137
    functionName: edd_device_params
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/edd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed edd_device_params
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: mbr_signature
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/edd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed mbr_signature
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l1ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: l1e_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_read(l1ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l2ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: l2e_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_read(l2ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l3ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: l3e_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_read(l3ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l4ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: l4e_read
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_read(l4ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l1ep
    - ','
    - l1e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: l1e_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_write(l1ep, l1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l2ep
    - ','
    - l2e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: l2e_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_write(l2ep, l2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l3ep
    - ','
    - l3e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: l3e_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_write(l3ep, l3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l4ep
    - ','
    - l4e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: l4e_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_write(l4ep, l4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: l1e_get_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_intpte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: l2e_get_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_intpte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: l3e_get_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_intpte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: l4e_get_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_intpte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: l1e_get_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: l2e_get_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: l3e_get_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: l4e_get_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: l1e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_mfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: l2e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_mfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: l3e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_mfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: l4e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_mfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: l1e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: l2e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: l3e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: l4e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: l1e_get_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_page(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: l2e_get_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_page(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: l3e_get_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_page(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: l4e_get_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_page(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: l1e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: l2e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: l3e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: l4e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_get_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: l1e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_get_pkey(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: l2e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_get_pkey(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: l3e_get_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_get_pkey(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: l1e_empty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: l2e_empty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: l3e_empty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: l4e_empty
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_empty()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: l1e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: l2e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: l3e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: l4e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: l1e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_from_mfn(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: l2e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_from_mfn(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: l3e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_from_mfn(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: l4e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_from_mfn(m, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/page.h:113,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/include/asm/page.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pa
    - flags
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: l1e_from_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - put_pte_flags
    linkageType: ''
    returnType: l1_pgentry_t
    signature: l1_pgentry_t l1e_from_paddr(paddr_t pa, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/page.h:118,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/include/asm/page.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pa
    - flags
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: l2e_from_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached:
    - ASSERT
    - put_pte_flags
    linkageType: ''
    returnType: l2_pgentry_t
    signature: l2_pgentry_t l2e_from_paddr(paddr_t pa, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/page.h:123,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/include/asm/page.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pa
    - flags
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: l3e_from_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached:
    - ASSERT
    - put_pte_flags
    linkageType: ''
    returnType: l3_pgentry_t
    signature: l3_pgentry_t l3e_from_paddr(paddr_t pa, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/page.h:128,1
    - Dst: put_pte_flags
      Src: /src/xen/xen/arch/x86/include/asm/page.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pa
    - flags
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: l4e_from_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - put_pte_flags
    linkageType: ''
    returnType: l4_pgentry_t
    signature: l4_pgentry_t l4e_from_paddr(paddr_t pa, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intpte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: l1e_from_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_from_intpte(intpte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intpte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: l2e_from_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_from_intpte(intpte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intpte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: l3e_from_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_from_intpte(intpte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intpte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: l4e_from_intpte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_from_intpte(intpte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: l1e_from_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_from_page(page, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: l2e_from_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_from_page(page, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: l3e_from_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_from_page(page, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: l4e_from_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_from_page(page, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: l1e_add_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_add_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: l2e_add_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_add_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: l3e_add_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_add_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: l4e_add_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_add_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: l1e_remove_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_remove_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: l2e_remove_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_remove_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: l3e_remove_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_remove_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: l4e_remove_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_remove_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: l1e_flip_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_flip_flags(x, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: l1e_has_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_has_changed(x,y,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: l2e_has_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_has_changed(x,y,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: l3e_has_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_has_changed(x,y,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: l4e_has_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4e_has_changed(x,y,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: map_l1t_from_l2e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: map_l1t_from_l2e(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: map_l2t_from_l3e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: map_l2t_from_l3e(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: map_l3t_from_l4e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: map_l3t_from_l4e(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l2e_
    - ','
    - offset_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: l1e_from_l2e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1e_from_l2e(l2e_, offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l3e_
    - ','
    - offset_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: l2e_from_l3e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2e_from_l3e(l3e_, offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l4e_
    - ','
    - offset_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: l3e_from_l4e
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3e_from_l4e(l4e_, offset_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: l1_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: l2_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: l3_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: l4_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: pgentry_ptr_to_slot
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pgentry_ptr_to_slot(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: pagetable_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_get_paddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: pagetable_get_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_get_page(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: pagetable_get_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_get_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: pagetable_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_get_mfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: pagetable_is_null
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_is_null(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: pagetable_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_from_pfn(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: pagetable_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_from_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: pagetable_from_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_from_page(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: pagetable_from_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_from_paddr(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: pagetable_null
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagetable_null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: clear_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_page(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _t
    - ','
    - _f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: copy_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_page(_t, _f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: __pa
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pa(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: __va
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __va(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: __virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: __mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: mfn_to_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_page(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: page_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_mfn(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: maddr_to_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_page(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: page_to_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_maddr(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: __pfn_to_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: __paddr_to_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: gfn_to_gaddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_to_gaddr(gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ga
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: gaddr_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gaddr_to_gfn(ga)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: mfn_to_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_maddr(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: maddr_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_mfn(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: mfn_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_valid(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: paddr_to_pfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: vmap_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: vmap_to_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_page(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: pte_flags_to_cacheattr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pte_flags_to_cacheattr(unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cacheattr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: cacheattr_to_pte_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cacheattr_to_pte_flags(unsigned int cacheattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - old_flags
    - new_flags
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: perms_strictly_increased
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool perms_strictly_increased(uint32_t old_flags, uint32_t new_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: invalidate_icache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: msr_fold
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpu-user-regs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t msr_fold(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - val
    argTypes:
    - struct cpu_user_regs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: msr_split
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/cpu-user-regs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msr_split(struct cpu_user_regs *regs, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: domain_vioapic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_vioapic(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: vioapic_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vioapic_domain(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_emulate_one_insn
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: handle_mmio
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    functionUses: 4
    functionsReached:
    - hvm_emulate_one_insn
    linkageType: ''
    returnType: bool
    signature: bool handle_mmio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:124,1
    - Dst: XVFREE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:125,1
    - Dst: XVFREE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: hvmemul_cache_destroy
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    functionUses: 2
    functionsReached:
    - XVFREE
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void hvmemul_cache_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:137,1
    - Dst: hvmemul_cache_disable
      Src: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: hvmemul_cache_disabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    functionUses: 2
    functionsReached:
    - hvmemul_cache_disable
    linkageType: ''
    returnType: bool
    signature: bool hvmemul_cache_disabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - gpa
    - buf
    - size
    argTypes:
    - struct vcpu*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: hvmemul_read_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool hvmemul_read_cache(const struct vcpu *v, paddr_t gpa,\n                                      void
      *buf,\n                                      unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - v
    - gpa
    - buf
    - size
    argTypes:
    - struct vcpu*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: hvmemul_write_cache
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hvmemul_write_cache(const struct vcpu *v, paddr_t gpa,\n                                       const
      void *buf, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dev
    - ','
    - intx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: hvm_pci_intx_gsi
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pci_intx_gsi(dev, intx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dev
    - ','
    - intx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: hvm_pci_intx_link
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pci_intx_link(dev, intx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: hvm_domain_irq
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_domain_irq(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - isa_irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: hvm_isa_irq_to_gsi
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_isa_irq_to_gsi(isa_irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pirq_dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: pt_pirq_softirq_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pt_pirq_softirq_active(struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: vcpu_nestedhvm
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_nestedhvm(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: vcpu_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_altp2m(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: nestedhvm_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 27
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool nestedhvm_enabled(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: nestedhvm_vcpu_enter_guestmode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedhvm_vcpu_enter_guestmode(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: nestedhvm_vcpu_exit_guestmode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedhvm_vcpu_exit_guestmode(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: nestedhvm_paging_mode_hap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedhvm_paging_mode_hap(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: nestedhvm_vmswitch_in_progress
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedhvm_vmswitch_in_progress(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:64,1
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:65,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:66,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: nestedhvm_is_n2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 1
    functionsReached:
    - nestedhvm_paging_mode_hap
    - nestedhvm_enabled
    - nestedhvm_vcpu_in_guestmode
    - nestedhvm_vmswitch_in_progress
    linkageType: ''
    returnType: bool
    signature: bool nestedhvm_is_n2(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_vmswitch_in_progress
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:75,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - v
    - cr
    - value
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: nestedhvm_set_cr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 1
    functionsReached:
    - nestedhvm_vcpu_in_guestmode
    - nestedhvm_vmswitch_in_progress
    linkageType: ''
    returnType: void
    signature: "void nestedhvm_set_cr(struct vcpu *v, unsigned int cr,\n                                    unsigned
      long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: vvmcx_valid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    functionUses: 11
    functionsReached:
    - vcpu_nestedhvm
    linkageType: ''
    returnType: bool
    signature: bool vvmcx_valid(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _x
    - ','
    - _inst
    - ','
    - _h
    - ','
    - _src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: hvm_save_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_save_entry(_x, _inst, _h, _src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: hvm_get_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_get_entry(x, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - h
    - ','
    - dst
    - ','
    - strict
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 86
    functionName: _hvm_load_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hvm_load_entry(x, h, dst, strict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - h
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: hvm_load_entry
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_load_entry(x, h, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - h
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: hvm_load_entry_zeroextend
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_load_entry_zeroextend(x, h, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hvm_domain_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: hvm_load_instance
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hvm_load_instance(const struct hvm_domain_context *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _x
    - ','
    - _save
    - ','
    - check
    - ','
    - _load
    - ','
    - _num
    - ','
    - _k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: HVM_REGISTER_SAVE_RESTORE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_REGISTER_SAVE_RESTORE(_x, _save, check, _load, _num, _k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - level
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: HVM_DBG_LOG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/support.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_DBG_LOG(level, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - level
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: HVM_DBG_LOG
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/support.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_DBG_LOG(level, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: viridian_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int viridian_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: viridian_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int viridian_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: viridian_vcpu_deinit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void viridian_vcpu_deinit(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: viridian_domain_deinit
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void viridian_domain_deinit(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feat
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: cpu_has_svm_feature
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cpu_has_svm_feature(unsigned int feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: svm_disable_intercept_for_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: svm_disable_intercept_for_msr(v, msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: svm_enable_intercept_for_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: svm_enable_intercept_for_msr(v, msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: create_grant_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/grant_table.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int create_grant_p2m_mapping(uint64_t addr, mfn_t frame,\n                                           unsigned
      int flags,\n                                           unsigned int cache_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - frame
    - new_addr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: replace_grant_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/grant_table.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int replace_grant_p2m_mapping(uint64_t addr, mfn_t frame,\n                                            uint64_t
      new_addr, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cr
    - ','
    - new
    - ','
    - old
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: hvm_monitor_crX
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/monitor.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_monitor_crX(cr, new, old)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: vcpu_vlapic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_vlapic(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: vlapic_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_vcpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: const_vlapic_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: const_vlapic_vcpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: vlapic_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_domain(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vlapic
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: _VLAPIC_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _VLAPIC_ID(vlapic, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: VLAPIC_ID
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLAPIC_ID(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: vlapic_sw_disabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_sw_disabled(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: vlapic_hw_disabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_hw_disabled(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: vlapic_disabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_disabled(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: vlapic_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_enabled(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: vlapic_base_address
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_base_address(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: vlapic_x2apic_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_x2apic_mode(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vlapic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: vlapic_xapic_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_xapic_mode(vlapic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: VEC_POS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VEC_POS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: REG_POS
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REG_POS(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: vlapic_test_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_test_vector(vec, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: vlapic_test_and_set_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_test_and_set_vector(vec, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: vlapic_test_and_clear_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_test_and_clear_vector(vec, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: vlapic_set_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_set_vector(vec, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vec
    - ','
    - bitmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: vlapic_clear_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vlapic_clear_vector(vec, bitmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vlapic
    - reg
    argTypes:
    - struct vlapic*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: vlapic_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vlapic_get_reg(const struct vlapic *vlapic,\n                                      uint32_t
      reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vlapic
    - reg
    - val
    argTypes:
    - struct vlapic*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: vlapic_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vlapic_set_reg(\n    struct vlapic *vlapic, uint32_t reg, uint32_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - vec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: hvm_intack
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_intack(src, vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: hvm_intack_pic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_intack_pic(vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: hvm_intack_lapic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_intack_lapic(vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: hvm_intack_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_intack_vector(vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_vcpu_virtual_to_linear
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - seg
    - reg
    - offset
    - bytes
    - access_type
    - active_cs
    - linear
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - unsigned long
    - unsigned int
    - enum hvm_access_type
    - struct segment_register*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: hvm_virtual_to_linear_addr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached:
    - hvm_vcpu_virtual_to_linear
    linkageType: ''
    returnType: bool
    signature: "bool hvm_virtual_to_linear_addr(\n    enum x86_segment seg,\n    const
      struct segment_register *reg,\n    unsigned long offset,\n    unsigned int bytes,\n
      \   enum hvm_access_type access_type,\n    const struct segment_register *active_cs,\n
      \   unsigned long *linear)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: using_vmx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool using_vmx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: using_svm
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool using_svm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: hvm_is_in_uc_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_is_in_uc_mode(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: hvm_get_guest_tsc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_get_guest_tsc(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: hvm_tsc_scaling_ratio
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_tsc_scaling_ratio(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: hvm_get_guest_time
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_get_guest_time(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: hvm_paging_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_paging_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: hvm_wp_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_wp_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: hvm_pcid_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pcid_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: hvm_pae_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pae_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: hvm_smep_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_smep_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 429
    functionName: hvm_smap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_smap_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: hvm_nx_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_nx_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: hvm_pku_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pku_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: hvm_pks_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pks_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: hvm_long_mode_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_long_mode_active(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 446
    functionName: hvm_has_set_descriptor_access_exiting
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_has_set_descriptor_access_exiting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - msr
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: hvm_enable_msr_interception
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_enable_msr_interception(struct domain *d, uint32_t msr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: hvm_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_domain_creation_finished(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:463,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: hvm_guest_x86_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 6
    functionsReached:
    - ASSERT
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hvm_guest_x86_mode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: hvm_update_host_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_update_host_cr3(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - cr
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: hvm_update_guest_cr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 10
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_update_guest_cr(struct vcpu *v, unsigned int cr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: hvm_update_guest_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_update_guest_cr3(struct vcpu *v, bool noflush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: hvm_update_guest_efer
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_update_guest_efer(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: hvm_cpuid_policy_changed
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_cpuid_policy_changed(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - offset
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: hvm_set_tsc_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 7
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_set_tsc_offset(struct vcpu *v, uint64_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_asid_flush_core
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: hvm_flush_guest_tlbs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - hvm_asid_flush_core
    linkageType: ''
    returnType: void
    signature: void hvm_flush_guest_tlbs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: hvm_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hvm_get_cpl(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: has_hvm_params
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_hvm_params(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: viridian_feature_mask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: viridian_feature_mask(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 527
    functionName: is_viridian_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_viridian_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: is_viridian_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_viridian_vcpu(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: has_viridian_time_ref_count
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_viridian_time_ref_count(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 536
    functionName: has_viridian_apic_assist
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_viridian_apic_assist(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: has_viridian_synic
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_viridian_synic(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - vector
    - type
    - insn_len
    - error_code
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: hvm_inject_exception
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - hvm_inject_event
    linkageType: ''
    returnType: void
    signature: "void hvm_inject_exception(\n    unsigned int vector, unsigned int
      type,\n    unsigned int insn_len, int error_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - errcode
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 563
    functionName: hvm_inject_hw_exception
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 35
    functionsReached:
    - hvm_inject_event
    linkageType: ''
    returnType: void
    signature: void hvm_inject_hw_exception(unsigned int vector, int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - errcode
    - cr2
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 576
    functionName: hvm_inject_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 6
    functionsReached:
    - hvm_inject_event
    linkageType: ''
    returnType: void
    signature: void hvm_inject_page_fault(int errcode, unsigned long cr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    functionName: hvm_event_pending
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: bool
    signature: bool hvm_event_pending(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 586
    functionName: hvm_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: hvm_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hvm_cpu_up(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: hvm_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_cpu_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - struct vcpu*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: hvm_get_insn_bytes
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hvm_get_insn_bytes(struct vcpu *v, uint8_t *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - compat
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 644
    functionName: hvm_sanitize_regs_fields
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hvm_sanitize_regs_fields(struct cpu_user_regs *regs,\n                                            bool
      compat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - event
    argTypes:
    - struct vcpu*
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: nhvm_vcpu_vmexit_event
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int nhvm_vcpu_vmexit_event(\n    struct vcpu *v, const struct x86_event
      *event)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: nhvm_vcpu_p2m_base
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t nhvm_vcpu_p2m_base(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - vector
    - errcode
    argTypes:
    - struct vcpu*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: nhvm_vmcx_guest_intercepts_event
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: bool
    signature: "bool nhvm_vmcx_guest_intercepts_event(\n    struct vcpu *v, unsigned
      int vector, int errcode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 679
    functionName: nhvm_vmcx_hap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: bool
    signature: bool nhvm_vmcx_hap_enabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: nhvm_interrupt_blocked
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: enum hvm_intblk
    signature: enum hvm_intblk nhvm_interrupt_blocked(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - v
    - L2_gpa
    - L1_gpa
    - page_order
    - p2m_acc
    - npfec
    argTypes:
    - struct vcpu*
    - paddr_t
    - paddr_t*
    - unsigned int*
    - uint8_t*
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: nhvm_hap_walk_L1_p2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int nhvm_hap_walk_L1_p2m(\n    struct vcpu *v, paddr_t L2_gpa, paddr_t
      *L1_gpa, unsigned int *page_order,\n    uint8_t *p2m_acc, struct npfec npfec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: hvm_is_singlestep_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_is_singlestep_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: hvm_hap_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_hap_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 709
    functionName: hvm_altp2m_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached:
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool hvm_altp2m_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: hvm_nested_virt_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_nested_virt_supported(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: altp2m_vcpu_update_p2m
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void altp2m_vcpu_update_p2m(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: altp2m_vcpu_update_vmfunc_ve
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void altp2m_vcpu_update_vmfunc_ve(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 741
    functionName: altp2m_vcpu_emulate_ve
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: bool
    signature: bool altp2m_vcpu_emulate_ve(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - enable
    - reset
    argTypes:
    - struct vcpu*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 753
    functionName: hvm_vmtrace_control
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hvm_vmtrace_control(struct vcpu *v, bool enable, bool reset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - pos
    argTypes:
    - struct vcpu*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 762
    functionName: hvm_vmtrace_output_position
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hvm_vmtrace_output_position(struct vcpu *v, uint64_t *pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - key
    - value
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: hvm_vmtrace_set_option
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int hvm_vmtrace_set_option(\n    struct vcpu *v, uint64_t key, uint64_t
      value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - v
    - key
    - value
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: hvm_vmtrace_get_option
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int hvm_vmtrace_get_option(\n    struct vcpu *v, uint64_t key, uint64_t
      *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 797
    functionName: hvm_vmtrace_reset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hvm_vmtrace_reset(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 822
    functionName: arch_vcpu_block
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vcpu_block(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - nrs
    argTypes:
    - struct vcpu*
    - struct hvm_vcpu_nonreg_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 828
    functionName: hvm_get_nonreg_state
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: "void hvm_get_nonreg_state(struct vcpu *v,\n                                        struct
      hvm_vcpu_nonreg_state *nrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - nrs
    argTypes:
    - struct vcpu*
    - struct hvm_vcpu_nonreg_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: hvm_set_nonreg_state
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: "void hvm_set_nonreg_state(struct vcpu *v,\n                                        struct
      hvm_vcpu_nonreg_state *nrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - pirq
    - gvec
    argTypes:
    - struct vcpu*
    - struct pirq*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: hvm_pi_update_irte
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int hvm_pi_update_irte(const struct vcpu *v,\n                                     const
      struct pirq *pirq, uint8_t gvec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: hvm_update_vlapic_mode
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_update_vlapic_mode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: hvm_sync_pir_to_irr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hvm_sync_pir_to_irr(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: hvm_is_singlestep_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_is_singlestep_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 878
    functionName: hvm_hap_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_hap_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 883
    functionName: hvm_altp2m_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_altp2m_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 888
    functionName: hvm_nested_virt_supported
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_nested_virt_supported(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 894
    functionName: nhvm_vmcx_hap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool nhvm_vmcx_hap_enabled(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: hvm_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hvm_cpu_up(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 903
    functionName: hvm_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hvm_cpu_down(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    functionName: hvm_flush_guest_tlbs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hvm_flush_guest_tlbs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 910
    functionName: hvm_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_invlpg(const struct vcpu *v, unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    functionName: hvm_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_domain_creation_finished(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 924
    functionName: hvm_update_host_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_update_host_cr3(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 929
    functionName: hvm_update_guest_cr3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_update_guest_cr3(const struct vcpu *v, bool noflush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: hvm_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hvm_get_cpl(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 940
    functionName: hvm_event_pending
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_event_pending(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - errcode
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 945
    functionName: hvm_inject_hw_exception
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 35
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_inject_hw_exception(unsigned int vector, int errcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 950
    functionName: hvm_has_set_descriptor_access_exiting
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hvm_has_set_descriptor_access_exiting(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - reg
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 956
    functionName: hvm_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: hvm_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hvm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 963
    functionName: is_viridian_domain
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_viridian_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: is_viridian_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_viridian_vcpu(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 965
    functionName: has_viridian_time_ref_count
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_viridian_time_ref_count(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 966
    functionName: hvm_long_mode_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_long_mode_active(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 967
    functionName: hvm_get_guest_time
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_get_guest_time(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 973
    functionName: hvm_paging_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_paging_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 974
    functionName: hvm_wp_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_wp_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 975
    functionName: hvm_pcid_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pcid_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 976
    functionName: hvm_pae_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pae_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 977
    functionName: hvm_smep_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_smep_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 978
    functionName: hvm_smap_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_smap_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 979
    functionName: hvm_nx_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_nx_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 980
    functionName: hvm_pku_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pku_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 981
    functionName: hvm_pks_enabled
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hvm_pks_enabled(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 983
    functionName: arch_vcpu_block
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vcpu_block(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: pt_global_vcpu_target
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_global_vcpu_target(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: pt_active
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_active(pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: msixtbl_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msixtbl_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: vmx_unrestricted_guest
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmx_unrestricted_guest(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: VMCS_HIGH
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCS_HIGH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: vmx_add_guest_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 3
    functionsReached:
    - vmx_add_msr
    linkageType: ''
    returnType: int
    signature: int vmx_add_guest_msr(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmx_add_msr
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 5
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: vmx_add_host_load_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 1
    functionsReached:
    - vmx_add_msr
    linkageType: ''
    returnType: int
    signature: "int vmx_add_host_load_msr(struct vcpu *v, uint32_t msr,\n                                        uint64_t
      val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: vmx_read_guest_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 2
    functionsReached:
    - vmx_find_msr
    linkageType: ''
    returnType: int
    signature: "int vmx_read_guest_msr(const struct vcpu *v, uint32_t msr,\n                                     uint64_t
      *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 706
    functionName: vmx_read_guest_loadonly_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 1
    functionsReached:
    - vmx_find_msr
    linkageType: ''
    returnType: int
    signature: "int vmx_read_guest_loadonly_msr(\n    const struct vcpu *v, uint32_t
      msr, uint64_t *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_find_msr
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 719
    functionName: vmx_write_guest_msr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    functionUses: 2
    functionsReached:
    - vmx_find_msr
    linkageType: ''
    returnType: int
    signature: "int vmx_write_guest_msr(struct vcpu *v, uint32_t msr,\n                                      uint64_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - pi_desc
    argTypes:
    - uint8_t
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: pi_test_and_set_pir
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - test_and_set_bit
    linkageType: ''
    returnType: int
    signature: int pi_test_and_set_pir(uint8_t vector, struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vector
    - pi_desc
    argTypes:
    - uint8_t
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: pi_test_pir
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: int
    signature: int pi_test_pir(uint8_t vector, const struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: pi_test_and_set_on
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    linkageType: ''
    returnType: int
    signature: int pi_test_and_set_on(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: pi_set_on
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - set_bit
    linkageType: ''
    returnType: void
    signature: void pi_set_on(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: pi_test_and_clear_on
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - test_and_clear_bit
    linkageType: ''
    returnType: int
    signature: int pi_test_and_clear_on(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: pi_test_on
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pi_test_on(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pi_desc
    - group
    argTypes:
    - struct pi_desc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: pi_get_pir
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached:
    - xchg
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pi_get_pir(struct pi_desc *pi_desc, int group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: pi_test_sn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pi_test_sn(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: pi_set_sn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached:
    - set_bit
    linkageType: ''
    returnType: void
    signature: void pi_set_sn(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi_desc
    argTypes:
    - struct pi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: pi_clear_sn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void pi_clear_sn(struct pi_desc *pi_desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: ept_has_2mb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ept_has_2mb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: ept_has_1gb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ept_has_1gb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: __vmptrld
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 5
    functionsReached:
    - BUG
    linkageType: ''
    returnType: always_inline
    signature: always_inline __vmptrld(u64 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: __vmpclear
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 9
    functionsReached:
    - BUG
    linkageType: ''
    returnType: always_inline
    signature: always_inline __vmpclear(u64 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_BUGFRAME_TEXT
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:330,1
    - Dst: _ASM_BUGFRAME_INFO
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - field
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: vmread
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 47
    functionsReached:
    - _ASM_BUGFRAME_TEXT
    - _ASM_BUGFRAME_INFO
    linkageType: ''
    returnType: always_inline unsigned long
    signature: always_inline unsigned long vmread(unsigned long field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmread
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: __vmread
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 44
    functionsReached:
    - vmread
    linkageType: ''
    returnType: always_inline
    signature: always_inline __vmread(unsigned long field, unsigned long *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: __vmwrite
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 71
    functionsReached:
    - BUG
    linkageType: ''
    returnType: always_inline
    signature: always_inline __vmwrite(unsigned long field, unsigned long value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:366,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:367,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:368,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:372,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:374,1
    - Dst: vmread
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 378
    functionName: vmread_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 4
    functionsReached:
    - vmread
    - ASM_FLAG_OUT
    - unlikely
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno vmread_safe(unsigned long field,\n                                              unsigned
      long *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmread
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - field
    - value
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 397
    functionName: vmwrite_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached:
    - vmread
    linkageType: ''
    returnType: enum vmx_insn_errno
    signature: "enum vmx_insn_errno vmwrite_safe(unsigned long field,\n                                               unsigned
      long value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - type
    - eptp
    argTypes:
    - unsigned long
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 423
    functionName: __invept
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached:
    - BUG
    linkageType: ''
    returnType: always_inline
    signature: always_inline __invept(unsigned long type, uint64_t eptp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - vpid
    - gva
    argTypes:
    - unsigned long
    - u16
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 446
    functionName: __invvpid
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: always_inline
    signature: always_inline __invvpid(unsigned long type, u16 vpid, u64 gva)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __invept
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: ept_sync_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - __invept
    linkageType: ''
    returnType: void
    signature: void ept_sync_all(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:463,1
    - Dst: __invvpid
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - gva
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 477
    functionName: vpid_sync_vcpu_gva
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 1
    functionsReached:
    - __invvpid
    - likely
    linkageType: ''
    returnType: void
    signature: void vpid_sync_vcpu_gva(struct vcpu *v, unsigned long gva)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __invvpid
      Src: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: vpid_sync_all
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 2
    functionsReached:
    - __invvpid
    linkageType: ''
    returnType: void
    signature: void vpid_sync_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    functionName: vmx_pi_hooks_assign
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_pi_hooks_assign(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    functionName: vmx_pi_hooks_deassign
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vmx_pi_hooks_deassign(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: vcpu_2_nvmx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_2_nvmx(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vcpu
    - ','
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: get_vvmcs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_vvmcs(vcpu, encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vcpu
    - ','
    - encoding
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: set_vvmcs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_vvmcs(vcpu, encoding, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vcpu
    - ','
    - encoding
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: get_vvmcs_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_vvmcs_safe(vcpu, encoding, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - vcpu
    - ','
    - encoding
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: set_vvmcs_safe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_vvmcs_safe(vcpu, encoding, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - hcall
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: _hypercall64_1
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall64_1(type, hcall, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - hcall
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: _hypercall64_2
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall64_2(type, hcall, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - hcall
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: _hypercall64_3
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall64_3(type, hcall, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type
    - ','
    - hcall
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: _hypercall64_4
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hypercall64_4(type, hcall, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_2
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: xen_hypercall_sched_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_2
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_sched_op(unsigned int cmd, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_2
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: xen_hypercall_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_2
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_memory_op(unsigned int cmd, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_3
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - vcpu
    - arg
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: xen_hypercall_vcpu_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_3
    linkageType: ''
    returnType: int
    signature: "int xen_hypercall_vcpu_op(unsigned int cmd, unsigned int vcpu,\n                                        void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_2
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: xen_hypercall_event_channel_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_2
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_event_channel_op(unsigned int cmd, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_3
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmd
    - arg
    - count
    argTypes:
    - unsigned int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: xen_hypercall_grant_table_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_3
    linkageType: ''
    returnType: long
    signature: "long xen_hypercall_grant_table_op(unsigned int cmd, void *arg,\n                                                unsigned
      int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_2
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: xen_hypercall_hvm_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_2
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_hvm_op(unsigned int op, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hypercall64_3
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - count
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: xen_hypercall_console_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - _hypercall64_3
    linkageType: ''
    returnType: void
    signature: "void xen_hypercall_console_write(\n    const char *buf, unsigned int
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_sched_op
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reason
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: xen_hypercall_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 2
    functionsReached:
    - xen_hypercall_sched_op
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_shutdown(unsigned int reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: xen_hypercall_evtchn_send
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - xen_hypercall_event_channel_op
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_evtchn_send(evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: xen_hypercall_evtchn_unmask
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - xen_hypercall_event_channel_op
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_evtchn_unmask(evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_hvm_op
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: xen_hypercall_hvm_get_param
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - xen_hypercall_hvm_op
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_hvm_get_param(uint32_t index, uint64_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_hvm_op
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - vector
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: xen_hypercall_set_evtchn_upcall_vector
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - xen_hypercall_hvm_op
    linkageType: ''
    returnType: long
    signature: "long xen_hypercall_set_evtchn_upcall_vector(\n    unsigned int cpu,
      unsigned int vector)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - count
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: xen_hypercall_console_write
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void xen_hypercall_console_write(\n    const char *buf, unsigned int
      count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reason
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: xen_hypercall_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
    functionUses: 2
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: long
    signature: long xen_hypercall_shutdown(unsigned int reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tsc
    - scale
    - offset
    argTypes:
    - uint64_t
    - uint64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: hv_scale_tsc
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hyperv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hv_scale_tsc(uint64_t tsc, uint64_t scale,\n                                    int64_t
      offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: hyperv_probe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hyperv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hypervisor_ops
    signature: struct hypervisor_ops *hyperv_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: xg_probe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hypervisor_ops
    signature: struct hypervisor_ops *xg_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mbi
    - mod
    argTypes:
    - multiboot_info_t**
    - module_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: pvh_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pvh_init(multiboot_info_t **mbi, module_t **mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: pvh_print_info
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pvh_print_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: hypervisor_probe
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *hypervisor_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: hypervisor_setup
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hypervisor_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: hypervisor_ap_setup
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hypervisor_ap_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: hypervisor_resume
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void hypervisor_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: hypervisor_e820_fixup
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hypervisor_e820_fixup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: hypervisor_flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hypervisor_flush_tlb(const cpumask_t *mask, const void *va,\n
      \                                      unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - control
    - input_addr
    - output_addr
    argTypes:
    - uint64_t
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: hv_do_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hv_do_hypercall(uint64_t control, paddr_t input_addr,\n                                       paddr_t
      output_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - code
    - input1
    - input2
    argTypes:
    - uint16_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: hv_do_fast_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hv_do_fast_hypercall(uint16_t code,\n                                            uint64_t
      input1, uint64_t input2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hv_do_hypercall
      Src: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h:63,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h:67,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - code
    - rep_count
    - varhead_size
    - input
    - output
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: hv_do_rep_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h
    functionUses: 0
    functionsReached:
    - hv_do_hypercall
    - MASK_INSR
    - MASK_EXTR
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t hv_do_rep_hypercall(uint16_t code, uint16_t rep_count,\n
      \                                          uint16_t varhead_size,\n                                           paddr_t
      input, paddr_t output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - d
    - l4start
    - va_start
    - store_va
    - console_va
    - vphysmap
    - si
    argTypes:
    - struct domain*
    - l4_pgentry_t*
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - start_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: pv_shim_setup_dom
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,\n
      \                                    unsigned long va_start,\n                                     unsigned
      long store_va,\n                                     unsigned long console_va,\n
      \                                    unsigned long vphysmap,\n                                     start_info_t
      *si)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reason
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: pv_shim_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int pv_shim_shutdown(uint8_t reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: pv_shim_inject_evtchn
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_shim_inject_evtchn(unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: pv_shim_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check pv_shim_cpu_up(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: pv_shim_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check pv_shim_cpu_down(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - order
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: pv_shim_online_memory
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_shim_online_memory(unsigned int nr, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - order
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: pv_shim_offline_memory
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_shim_offline_memory(unsigned int nr, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pv_shim_get_initial_domain_id
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: domid_t
    signature: domid_t pv_shim_get_initial_domain_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - avail
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: pv_shim_mem
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pv_shim_mem(uint64_t avail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: pv_shim_fixup_e820
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_shim_fixup_e820(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/shim.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: pv_shim_reserved_pages
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/shim.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct platform_bad_page
    signature: 'struct platform_bad_page *

      pv_shim_reserved_pages(unsigned int *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: pv_trap_callback_registered
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool pv_trap_callback_registered(const struct vcpu *v,\n                                               uint8_t
      vector)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: pv_raise_nmi
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pv_raise_nmi(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: pv_emulate_privileged_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pv_emulate_privileged_op(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: pv_emulate_sw_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: pv_emulate_gate_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_emulate_gate_op(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: pv_emulate_invalid_op
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pv_emulate_invalid_op(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - vector
    argTypes:
    - struct vcpu*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: pv_trap_callback_registered
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/traps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool pv_trap_callback_registered(const struct vcpu *v,\n                                               uint8_t
      vector)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/mm.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: pv_ro_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/mm.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int pv_ro_page_fault(unsigned long addr,\n                                   struct
      cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/mm.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - frames
    - entries
    argTypes:
    - struct vcpu*
    - unsigned long[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: pv_set_gdt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/mm.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int pv_set_gdt(struct vcpu *v, const unsigned long frames[],\n                             unsigned
      int entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/mm.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: pv_destroy_gdt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/mm.h
    functionUses: 4
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void pv_destroy_gdt(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: pv_map_ldt_shadow_page
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pv_map_ldt_shadow_page(unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/mm.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: pv_destroy_ldt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/mm.h
    functionUses: 4
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool pv_destroy_ldt(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/include/asm/pv/domain.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - is_xpti
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: get_pcid_bits
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/domain.h
    functionUses: 2
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_pcid_bits(const struct vcpu *v, bool is_xpti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: create_grant_pv_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/grant_table.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int create_grant_pv_mapping(uint64_t addr, mfn_t frame,\n                                          unsigned
      int flags,\n                                          unsigned int cache_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - addr
    - frame
    - new_addr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: replace_grant_pv_mapping
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/grant_table.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int replace_grant_pv_mapping(uint64_t addr, mfn_t frame,\n                                           uint64_t
      new_addr, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:13,1
    - Dst: __trace_pv_trap
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - trapnr
    - eip
    - use_error_code
    - error_code
    argTypes:
    - int
    - unsigned long
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: trace_pv_trap
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/trace.h
    functionUses: 1
    functionsReached:
    - __trace_pv_trap
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void trace_pv_trap(int trapnr, unsigned long eip,\n                                 int
      use_error_code, unsigned error_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:21,1
    - Dst: __trace_pv_page_fault
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - error_code
    argTypes:
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: trace_pv_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/trace.h
    functionUses: 1
    functionsReached:
    - __trace_pv_page_fault
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void trace_pv_page_fault(unsigned long addr,\n                                       unsigned
      error_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:28,1
    - Dst: __trace_trap_one_addr
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - va
    argTypes:
    - unsigned
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: trace_trap_one_addr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/trace.h
    functionUses: 1
    functionsReached:
    - __trace_trap_one_addr
    - unlikely
    linkageType: ''
    returnType: void
    signature: void trace_trap_one_addr(unsigned event, unsigned long va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:37,1
    - Dst: __trace_trap_two_addr
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - event
    - va1
    - va2
    argTypes:
    - unsigned
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: trace_trap_two_addr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/trace.h
    functionUses: 2
    functionsReached:
    - __trace_trap_two_addr
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void trace_trap_two_addr(unsigned event, unsigned long va1,\n                                       unsigned
      long va2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:44,1
    - Dst: __trace_ptwr_emulation
      Src: /src/xen/xen/arch/x86/include/asm/pv/trace.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - npte
    argTypes:
    - unsigned long
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: trace_ptwr_emulation
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/pv/trace.h
    functionUses: 1
    functionsReached:
    - __trace_ptwr_emulation
    - unlikely
    linkageType: ''
    returnType: void
    signature: void trace_ptwr_emulation(unsigned long addr, l1_pgentry_t npte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Data
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: POST_CODE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POST_CODE(_Data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: EFIERR
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFIERR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: EFIERR_OEM
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFIERR_OEM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: BREAKPOINT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BREAKPOINT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: BREAKPOINT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BREAKPOINT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Value
    - ','
    - Adjustment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: ALIGN_VARIABLE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_VARIABLE(Value ,Adjustment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: EFI_SIGNATURE_16
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_16(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: EFI_SIGNATURE_32
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_32(A,B,C,D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: EFI_SIGNATURE_64
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_64(A,B,C,D,E,F,G,H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: RUNTIME_CODE
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUNTIME_CODE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: BEGIN_RUNTIME_DATA
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_RUNTIME_DATA()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: END_RUNTIME_DATA
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_RUNTIME_DATA()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - InitFunction
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: EFI_DRIVER_ENTRY_POINT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_DRIVER_ENTRY_POINT(InitFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _if
    - ','
    - type
    - ','
    - name
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: LOAD_INTERNAL_DRIVER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INTERNAL_DRIVER(_if, type, name, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - InitFunction
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 256
    functionName: EFI_DRIVER_ENTRY_POINT
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_DRIVER_ENTRY_POINT(InitFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _if
    - ','
    - type
    - ','
    - name
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: LOAD_INTERNAL_DRIVER
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INTERNAL_DRIVER(_if, type, name, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: INTERFACE_DECL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERFACE_DECL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: INTERFACE_DECL
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERFACE_DECL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: is_compat_arg_xlat_range
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_compat_arg_xlat_range(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xlat_page_current
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: xlat_page_left_size
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_page_left_size(xlat_page_current)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xlat_page_current
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: xlat_malloc_init
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_malloc_init(xlat_page_current)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _p
    - ','
    - _t
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: xlat_malloc_array
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xlat_malloc_array(_p, _t, _c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: __addr_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __addr_ok(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: access_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: access_ok(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - count
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: array_access_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_access_ok(addr, count, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: __compat_addr_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __compat_addr_ok(d, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: __compat_access_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __compat_access_ok(d, addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: compat_access_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_access_ok(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - count
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: compat_array_access_ok
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_array_access_ok(addr,count,size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg(ptr,o,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:24,1
    - Dst: hi::hi
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:30,1
    - Dst: lo::lo
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - oldp
    - newp
    argTypes:
    - void*
    - __uint128_t*
    - __uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: __uint128_t::__cmpxchg16b
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
    functionUses: 0
    functionsReached:
    - lo::lo
    - ASSERT
    - hi::hi
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __uint128_t __cmpxchg16b(\n    volatile void *ptr, const
      __uint128_t *oldp, const __uint128_t *newp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:43,1
    - Dst: hi::hi
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:49,1
    - Dst: lo::lo
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/system.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - oldp
    - newp
    argTypes:
    - void*
    - __uint128_t*
    - __uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: __uint128_t::cmpxchg16b_local_
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
    functionUses: 0
    functionsReached:
    - lo::lo
    - ASSERT
    - hi::hi
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __uint128_t cmpxchg16b_local_(\n    void *ptr, const
      __uint128_t *oldp, const __uint128_t *newp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: cmpxchg16b
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg16b(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/elf.h:62,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/elf.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 2
    argNames:
    - core_regs
    - xen_core_regs
    argTypes:
    - ELF_Gregset*
    - crash_xen_core_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 73
    functionName: elf_core_save_regs
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/elf.h
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: "void elf_core_save_regs(ELF_Gregset *core_regs,\n                                      crash_xen_core_t
      *xen_core_regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: is_canonical_address
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_canonical_address(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: canonicalise_addr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long canonicalise_addr(unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: virt_to_pdx
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_pdx(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pdx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: pdx_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pdx_to_virt(pdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:39,1
    - Dst: directmapoff_to_maddr
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:41,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:43,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:43,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - va
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 13
    functionsReached:
    - directmapoff_to_maddr
    - ASSERT
    - GB
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long virt_to_maddr(unsigned long va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_maddr(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_directmapoff
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:55,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/include/asm/x86_64/page.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ma
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 6
    functionsReached:
    - ASSERT
    - maddr_to_directmapoff
    linkageType: ''
    returnType: void
    signature: void *maddr_to_virt(unsigned long ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: l1_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: l2_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: l3_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l3_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: l4_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l4_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _d
    - ','
    - _t
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: is_guest_l2_slot
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_guest_l2_slot(_d, _t, _s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: is_guest_l4_slot
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_guest_l4_slot(_d, _s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - intpte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: get_pte_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_pte_flags(intpte_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: put_pte_flags
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: intpte_t
    signature: intpte_t put_pte_flags(unsigned int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: get_pte_pkey
    functionSourceFile: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_pte_pkey(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xg_probe
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:25,1
    - Dst: hyperv_probe
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: hypervisor_probe
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 1
    functionsReached:
    - xg_probe
    - hyperv_probe
    linkageType: ''
    returnType: char
    signature: char *__init hypervisor_probe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:42,1
    - Dst: hypervisor_flush_tlb
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:45,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:45,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: hypervisor_setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - hypervisor_flush_tlb
    - setup
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void hypervisor_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: hypervisor_ap_setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int hypervisor_ap_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: hypervisor_resume
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void hypervisor_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: e820_fixup
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: hypervisor_e820_fixup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 2
    functionsReached:
    - e820_fixup
    linkageType: ''
    returnType: void
    signature: void hypervisor_e820_fixup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/guest/hypervisor.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: hypervisor_flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/guest/hypervisor.c
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int hypervisor_flush_tlb(const cpumask_t *mask, const void *va,\n
      \                        unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - gva_list
    - va
    - order
    argTypes:
    - uint64_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 58
    functionName: fill_gva_list
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int fill_gva_list(uint64_t *gva_list, const void *va,\n                                  unsigned
      int order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:63,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:68,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:70,1
    - Dst: cpumask_to_vpset
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:82,1
    - Dst: hv_do_rep_hypercall
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:96,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:97,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:103,1
    - Dst: hv_do_rep_hypercall
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:106,1
    - Dst: fill_gva_list
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:107,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 109
    functionName: flush_tlb_ex
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
    functionUses: 0
    functionsReached:
    - cpumask_to_vpset
    - BUILD_BUG_ON
    - virt_to_maddr
    - fill_gva_list
    - hv_do_rep_hypercall
    - this_cpu
    - ASSERT_UNREACHABLE
    - local_irq_is_enabled
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t flush_tlb_ex(const cpumask_t *mask, const void *va,\n                             unsigned
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:118,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:122,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:124,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:130,1
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:138,1
    - Dst: hv_vp_index
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:150,1
    - Dst: cpumask_last
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:150,1
    - Dst: hv_vp_index
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:155,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:159,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:166,1
    - Dst: hv_do_hypercall
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:175,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:176,1
    - Dst: hv_do_rep_hypercall
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:178,1
    - Dst: fill_gva_list
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:179,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:180,1
    - Dst: flush_tlb_ex
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:184,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 190
    functionName: hyperv_flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
    functionUses: 0
    functionsReached:
    - flush_tlb_ex
    - __set_bit
    - cpumask_equal
    - cpumask_empty
    - cpumask_last
    - hv_do_hypercall
    - virt_to_maddr
    - fill_gva_list
    - hv_do_rep_hypercall
    - hv_vp_index
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int hyperv_flush_tlb(const cpumask_t *mask, const void *va,\n                     unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hv_vp_index
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:155,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:159,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/guest/hyperv/tlb.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
    functionUses: 8
    functionsReached:
    - local_irq_restore
    - __set_bit
    - hv_vp_index
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu, mask )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hv_vp_index
      Src: /src/xen/xen/arch/x86/guest/hyperv/util.c:38,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/guest/hyperv/util.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - vpset
    - mask
    argTypes:
    - struct hv_vpset*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 53
    functionName: cpumask_to_vpset
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/util.c
    functionUses: 1
    functionsReached:
    - __set_bit
    - hv_vp_index
    linkageType: ''
    returnType: int
    signature: "int cpumask_to_vpset(struct hv_vpset *vpset,\n                     const
      cpumask_t *mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hv_vp_index
      Src: /src/xen/xen/arch/x86/guest/hyperv/util.c:38,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/guest/hyperv/util.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/util.c
    functionUses: 8
    functionsReached:
    - __set_bit
    - hv_vp_index
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu, mask )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_major_version
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:33,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: generate_guest_id
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 0
    functionsReached:
    - xen_minor_version
    - xen_major_version
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t generate_guest_id(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:47,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:53,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:58,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:62,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:65,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:67,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 82
    functionName: hyperv_probe
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 1
    functionsReached:
    - memset
    - cpuid_eax
    - cpuid
    linkageType: ''
    returnType: struct hypervisor_ops
    signature: struct hypervisor_ops *__init hyperv_probe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:90,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:92,1
    - Dst: generate_guest_id
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:95,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:96,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:99,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:105,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:110,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:111,1
    - Dst: set_fixmap_x
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 116
    functionName: setup_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 1
    functionsReached:
    - set_fixmap_x
    - generate_guest_id
    - rdmsrl
    - BUILD_BUG_ON
    - BUG_ON
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void setup_hypercall_page(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:122,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:125,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:125,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:126,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:128,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:129,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:133,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: setup_hypercall_pcpu_arg
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 0
    functionsReached:
    - alloc_xenheap_page
    - smp_processor_id
    - rdmsrl
    - printk
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int setup_hypercall_pcpu_arg(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:146,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:148,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:148,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:149,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:151,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:152,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:156,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:156,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:159,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:160,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:160,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: setup_vp_assist
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 0
    functionsReached:
    - alloc_xenheap_page
    - virt_to_mfn
    - clear_page
    - smp_processor_id
    - rdmsrl
    - wrmsrl
    - printk
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int setup_vp_assist(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASM_CONSTANT
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:169,1
    - Dst: __fix_x_to_virt
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:169,1
    - Dst: setup_hypercall_page
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:171,1
    - Dst: setup_hypercall_pcpu_arg
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:173,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:174,1
    - Dst: setup_vp_assist
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:176,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 33
    functionsReached:
    - ASM_CONSTANT
    - panic
    - setup_hypercall_page
    - setup_vp_assist
    - __fix_x_to_virt
    - setup_hypercall_pcpu_arg
    linkageType: ''
    returnType: void
    signature: void setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_hypercall_pcpu_arg
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:184,1
    - Dst: setup_vp_assist
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: ap_setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 2
    functionsReached:
    - setup_vp_assist
    - setup_hypercall_pcpu_arg
    linkageType: ''
    returnType: int
    signature: int ap_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: e820_add_range
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:195,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 5
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: e820_fixup
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 3
    functionsReached:
    - panic
    - e820_add_range
    linkageType: ''
    returnType: void
    signature: void e820_fixup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:205,1
    - Dst: hyperv_flush_tlb
      Src: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 209
    functionName: flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
    functionUses: 7
    functionsReached:
    - hyperv_flush_tlb
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int flush_tlb(\n    const cpumask_t *mask, const void *va, unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/guest/hyperv/private.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: hv_vp_index
    functionSourceFile: /src/xen/xen/arch/x86/guest/hyperv/private.h
    functionUses: 4
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hv_vp_index(unsigned int cpu)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:51,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:57,1
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:59,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:68,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: early_hypercall_setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - BUG
    - BUG_ON
    - cpuid
    - setup_force_cpu_cap
    - x86_cpuid_lookup_vendor
    linkageType: ''
    returnType: void
    signature: void early_hypercall_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: find_xen_leaves
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: void
    signature: void find_xen_leaves(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xg_alloc_unused_page
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:111,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:112,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:114,1
    - Dst: xen_hypercall_memory_op
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:115,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:117,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:119,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:119,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:122,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: map_shared_info
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_memory_op
    - ARRAY_SIZE
    - mfn_to_maddr
    - panic
    - mfn_x
    - xg_alloc_unused_page
    - write_atomic
    - set_fixmap
    linkageType: ''
    returnType: void
    signature: void map_shared_info(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:128,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:134,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:138,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:140,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:144,1
    - Dst: xen_hypercall_vcpu_op
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:146,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:149,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:150,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 159
    functionName: map_vcpuinfo
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - this_cpu
    - xen_hypercall_vcpu_op
    - test_bit
    - set_bit
    linkageType: ''
    returnType: int
    signature: int map_vcpuinfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:165,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:168,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:170,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:172,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: set_vcpu_id
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - ASSERT
    - cpuid
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void set_vcpu_id(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:179,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:181,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:189,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:189,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:190,1
    - Dst: GB
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:190,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:191,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:197,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:197,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:198,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:199,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:200,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 202
    functionName: init_memmap
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - panic
    - rangeset_new
    - GB
    - rangeset_add_range
    - max_t
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void init_memmap(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:206,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:210,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:214,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:215,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:217,1
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:221,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:223,1
    - Dst: pv_console_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:226,1
    - Dst: pv_console_rx
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:227,1
    - Dst: pv_shim_inject_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:229,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 234
    functionName: xen_evtchn_upcall
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - pv_console_evtchn
    - __clear_bit
    - pv_console_rx
    - ffsl
    - ack_APIC_irq
    - xchg
    - this_cpu
    - pv_shim_inject_evtchn
    linkageType: ''
    returnType: void
    signature: void xen_evtchn_upcall(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_set_evtchn_upcall_vector
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:242,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:242,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:246,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:254,1
    - Dst: xen_hypercall_hvm_op
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:263,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 269
    functionName: init_evtchn
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_set_evtchn_upcall_vector
    - smp_processor_id
    - this_cpu
    - printk
    - xen_hypercall_hvm_op
    linkageType: ''
    returnType: int
    signature: int init_evtchn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_memmap
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:273,1
    - Dst: map_shared_info
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:275,1
    - Dst: set_vcpu_id
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:277,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:278,1
    - Dst: map_vcpuinfo
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:279,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:281,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:289,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:291,1
    - Dst: alloc_direct_apic_vector
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:296,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:298,1
    - Dst: init_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 299
    functionName: setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 33
    functionsReached:
    - map_vcpuinfo
    - set_vcpu_id
    - init_evtchn
    - __cpumask_clear_cpu
    - map_shared_info
    - xzalloc_array
    - alloc_direct_apic_vector
    - BUG_ON
    - printk
    - xfree
    - init_memmap
    linkageType: ''
    returnType: void
    signature: void setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_vcpu_id
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:303,1
    - Dst: map_vcpuinfo
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:305,1
    - Dst: init_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: ap_setup
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 2
    functionsReached:
    - map_vcpuinfo
    - set_vcpu_id
    - init_evtchn
    linkageType: ''
    returnType: int
    signature: int ap_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_claim_range
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:313,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: xg_alloc_unused_page
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 1
    functionsReached:
    - _mfn
    - rangeset_claim_range
    linkageType: ''
    returnType: int
    signature: int xg_alloc_unused_page(mfn_t *mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:322,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:322,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: xg_free_unused_page
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: int xg_free_unused_page(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:327,1
    - Dst: map_vcpuinfo
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:327,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:328,1
    - Dst: init_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: ap_resume
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 0
    functionsReached:
    - map_vcpuinfo
    - BUG_ON
    - init_evtchn
    linkageType: ''
    returnType: void
    signature: void ap_resume(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_shared_info
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:334,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:342,1
    - Dst: map_vcpuinfo
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:343,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:344,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:347,1
    - Dst: init_evtchn
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:347,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:348,1
    - Dst: pv_console_init
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 352
    functionName: resume
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 37
    functionsReached:
    - map_vcpuinfo
    - init_evtchn
    - smp_call_function
    - panic
    - bitmap_zero
    - map_shared_info
    - BUG_ON
    - pv_console_init
    linkageType: ''
    returnType: void
    signature: void resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_fixup_e820
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: e820_fixup
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 3
    functionsReached:
    - pv_shim_fixup_e820
    linkageType: ''
    returnType: void
    signature: void e820_fixup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_hvm_op
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - va
    - flags
    argTypes:
    - cpumask_t*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 7
    functionsReached:
    - xen_hypercall_hvm_op
    linkageType: ''
    returnType: int
    signature: "int flush_tlb(\n    const cpumask_t *mask, const void *va, unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_xen_leaves
      Src: /src/xen/xen/arch/x86/guest/xen/xen.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: xg_probe
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/xen.c
    functionUses: 1
    functionsReached:
    - find_xen_leaves
    linkageType: ''
    returnType: struct hypervisor_ops
    signature: struct hypervisor_ops *__init xg_probe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:34,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:39,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:46,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:47,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:48,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:56,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:58,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:60,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:60,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:62,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:64,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:67,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - mbi
    - mod
    argTypes:
    - multiboot_info_t**
    - module_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: convert_pvh_info
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c
    functionUses: 0
    functionsReached:
    - __va
    - __pa
    - ARRAY_SIZE
    - panic
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void convert_pvh_info(multiboot_info_t **mbi,\n                                    module_t
      **mod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:87,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:88,1
    - Dst: xen_hypercall_memory_op
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:88,1
    - Dst: sanitize_e820_map
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: get_memory_map
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - sanitize_e820_map
    - xen_hypercall_memory_op
    - set_xen_guest_handle
    linkageType: ''
    returnType: void
    signature: void get_memory_map(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: convert_pvh_info
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:97,1
    - Dst: hypervisor_probe
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:99,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:100,1
    - Dst: get_memory_map
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:102,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:106,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mbi
    - mod
    argTypes:
    - multiboot_info_t**
    - module_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 108
    functionName: pvh_init
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c
    functionUses: 1
    functionsReached:
    - hypervisor_probe
    - get_memory_map
    - ASSERT
    - convert_pvh_info
    - memset
    - bootsym
    linkageType: ''
    returnType: void
    signature: void pvh_init(multiboot_info_t **mbi, module_t **mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:112,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:116,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:118,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:119,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:120,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:121,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:122,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:123,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:125,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:125,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:126,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:128,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:131,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:132,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:133,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:136,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 139
    functionName: pvh_print_info
    functionSourceFile: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - __va
    - printk
    linkageType: ''
    returnType: void
    signature: void pvh_print_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/pv/shim.c:67,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/arch/x86/pv/shim.c:68,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/pv/shim.c:69,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/arch/x86/pv/shim.c:70,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/arch/x86/pv/shim.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: parse_shim_mem
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - strncmp
    - parse_size_and_unit
    linkageType: ''
    returnType: int
    signature: int parse_shim_mem(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/xen/xen/arch/x86/pv/shim.c:83,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/pv/shim.c:86,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/shim.c:90,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/shim.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - avail
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: pv_shim_mem
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached:
    - panic
    - min
    - max
    - printk
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pv_shim_mem(uint64_t avail)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: e820_add_range
      Src: /src/xen/xen/arch/x86/pv/shim.c:103,1
    - Dst: e820_change_range_type
      Src: /src/xen/xen/arch/x86/pv/shim.c:105,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/shim.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pfn
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: mark_pfn_as_ram
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - panic
    - e820_change_range_type
    - e820_add_range
    linkageType: ''
    returnType: void
    signature: void mark_pfn_as_ram(uint64_t pfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:117,1
    - Dst: MARK_PARAM_RAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:127,1
    - Dst: MARK_PARAM_RAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: pv_shim_fixup_e820
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - MARK_PARAM_RAM
    linkageType: ''
    returnType: void
    signature: void pv_shim_fixup_e820(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: MARK_PARAM_RAM
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_PARAM_RAM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:135,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/pv/shim.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: pv_shim_reserved_pages
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct platform_bad_page
    signature: struct platform_bad_page *__init pv_shim_reserved_pages(unsigned int
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:149,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/pv/shim.c:150,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:150,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/pv/shim.c:151,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:151,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/pv/shim.c:152,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:152,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:153,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:153,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/pv/shim.c:155,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:157,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/shim.c:157,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - d
    - l4start
    - va
    - mfn
    argTypes:
    - struct domain*
    - l4_pgentry_t*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: replace_va_mapping
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - l1e_from_mfn
    - is_pv_32bit_domain
    - l2e_from_l3e
    - map_l1t_from_l2e
    - mfn_to_page
    - l4_table_offset
    - unmap_domain_page
    - l3_table_offset
    - l2_table_offset
    - l3e_from_l4e
    - l1e_get_mfn
    - l1_table_offset
    linkageType: ''
    returnType: void
    signature: "void replace_va_mapping(struct domain *d, l4_pgentry_t *l4start,\n
      \                                     unsigned long va, mfn_t mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:164,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:164,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:165,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:166,1
    - Dst: xen_hypercall_evtchn_unmask
      Src: /src/xen/xen/arch/x86/pv/shim.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: evtchn_reserve
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - port_is_valid
    - BUG_ON
    - ASSERT
    - evtchn_from_port
    - xen_hypercall_evtchn_unmask
    linkageType: ''
    returnType: void
    signature: void evtchn_reserve(struct domain *d, unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:171,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:171,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: evtchn_handled
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - port_is_valid
    - evtchn_from_port
    linkageType: ''
    returnType: bool
    signature: bool evtchn_handled(struct domain *d, unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:179,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:179,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - port
    - vcpu
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: evtchn_assign_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - port_is_valid
    - evtchn_from_port
    linkageType: ''
    returnType: void
    signature: "void evtchn_assign_vcpu(struct domain *d, unsigned int port,\n                               unsigned
      int vcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/shim.c:188,1
    - Dst: SET_AND_MAP_PARAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:210,1
    - Dst: SET_AND_MAP_PARAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:211,1
    - Dst: SET_AND_MAP_PARAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:212,1
    - Dst: SET_AND_MAP_PARAM
      Src: /src/xen/xen/arch/x86/pv/shim.c:214,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/pv/shim.c:220,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/x86/pv/shim.c:220,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:223,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:224,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:225,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:226,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:227,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:227,1
    - Dst: replace_va_mapping
      Src: /src/xen/xen/arch/x86/pv/shim.c:228,1
    - Dst: dom0_update_physmap
      Src: /src/xen/xen/arch/x86/pv/shim.c:229,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:230,1
    - Dst: consoled_set_ring_addr
      Src: /src/xen/xen/arch/x86/pv/shim.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 7
    argNames:
    - d
    - l4start
    - va_start
    - store_va
    - console_va
    - vphysmap
    - si
    argTypes:
    - struct domain*
    - l4_pgentry_t*
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - start_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 232
    functionName: pv_shim_setup_dom
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - virt_to_mfn
    - share_xen_page_with_guest
    - mfn_to_page
    - consoled_set_ring_addr
    - clear_page
    - mfn_x
    - SET_AND_MAP_PARAM
    - dom0_update_physmap
    - ASSERT
    - alloc_xenheap_pages
    - replace_va_mapping
    - MEMF_bits
    linkageType: ''
    returnType: void
    signature: "void pv_shim_setup_dom(struct domain *d, l4_pgentry_t *l4start,\n
      \                             unsigned long va_start, unsigned long store_va,\n
      \                             unsigned long console_va, unsigned long vphysmap,\n
      \                             start_info_t *si)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - si
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: SET_AND_MAP_PARAM
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_AND_MAP_PARAM(p, si, va)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/shim.c:247,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/shim.c:248,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:249,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:249,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/pv/shim.c:252,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/shim.c:254,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/pv/shim.c:255,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:257,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:257,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:258,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:258,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:260,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:260,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:263,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:263,1
    - Dst: consoled_get_ring_addr
      Src: /src/xen/xen/arch/x86/pv/shim.c:263,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:264,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/shim.c:266,1
    - Dst: xlat_start_info
      Src: /src/xen/xen/arch/x86/pv/shim.c:270,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 274
    functionName: write_start_info
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - snprintf
    - guest_cpu_user_regs
    - BUG
    - is_pv_32bit_domain
    - map_domain_page
    - virt_to_mfn
    - unmap_domain_page
    - mfn_x
    - _mfn
    - consoled_get_ring_addr
    - domain_tot_pages
    - BUG_ON
    - virt_to_maddr
    - xlat_start_info
    - xen_hypercall_hvm_get_param
    linkageType: ''
    returnType: void
    signature: void write_start_info(struct domain *d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_shutdown
      Src: /src/xen/xen/arch/x86/pv/shim.c:287,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:289,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:291,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:291,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:293,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:293,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/pv/shim.c:297,1
    - Dst: vcpu_pause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/pv/shim.c:299,1
    - Dst: time_suspend
      Src: /src/xen/xen/arch/x86/pv/shim.c:302,1
    - Dst: xen_hypercall_shutdown
      Src: /src/xen/xen/arch/x86/pv/shim.c:304,1
    - Dst: time_resume
      Src: /src/xen/xen/arch/x86/pv/shim.c:307,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/pv/shim.c:308,1
    - Dst: vcpu_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/pv/shim.c:310,1
    - Dst: hypervisor_resume
      Src: /src/xen/xen/arch/x86/pv/shim.c:316,1
    - Dst: time_resume
      Src: /src/xen/xen/arch/x86/pv/shim.c:317,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:323,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:323,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:324,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:327,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:327,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:329,1
    - Dst: get_initial_domain_id
      Src: /src/xen/xen/arch/x86/pv/shim.c:333,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:336,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/x86/pv/shim.c:336,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/pv/shim.c:339,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:346,1
    - Dst: evtchn_handled
      Src: /src/xen/xen/arch/x86/pv/shim.c:349,1
    - Dst: evtchn_close
      Src: /src/xen/xen/arch/x86/pv/shim.c:350,1
    - Dst: evtchn_free
      Src: /src/xen/xen/arch/x86/pv/shim.c:352,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:352,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:356,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:356,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:357,1
    - Dst: evtchn_allocate_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:357,1
    - Dst: evtchn_reserve
      Src: /src/xen/xen/arch/x86/pv/shim.c:358,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:359,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/arch/x86/pv/shim.c:359,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:361,1
    - Dst: evtchn_allocate_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:361,1
    - Dst: evtchn_reserve
      Src: /src/xen/xen/arch/x86/pv/shim.c:362,1
    - Dst: watchdog_domain_destroy
      Src: /src/xen/xen/arch/x86/pv/shim.c:365,1
    - Dst: watchdog_domain_init
      Src: /src/xen/xen/arch/x86/pv/shim.c:366,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/pv/shim.c:371,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/pv/shim.c:372,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:372,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:372,1
    - Dst: write_start_info
      Src: /src/xen/xen/arch/x86/pv/shim.c:383,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:388,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:389,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:390,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/pv/shim.c:393,1
    - Dst: runstate_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:393,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/pv/shim.c:394,1
    - Dst: vcpu_set_periodic_timer
      Src: /src/xen/xen/arch/x86/pv/shim.c:397,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/pv/shim.c:397,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/pv/shim.c:399,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/pv/shim.c:401,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:402,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/arch/x86/pv/shim.c:402,1
    - Dst: vcpu_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/pv/shim.c:405,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 1
    argNames:
    - reason
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 276
    functionDepth: 9
    functionLinenumber: 276
    functionLinenumberEnd: 409
    functionName: pv_shim_shutdown
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - watchdog_domain_init
    - port_is_valid
    - put_page_and_type
    - xen_hypercall_shutdown
    - mfn_to_page
    - write_start_info
    - vcpu_unpause_by_systemcontroller
    - stop_timer
    - evtchn_close
    - xfree
    - hypervisor_resume
    - evtchn_reserve
    - set_xen_guest_handle
    - BUG_ON
    - vcpu_reset
    - test_bit
    - xen_hypercall_hvm_get_param
    - unmap_guest_area
    - unmap_domain_page_global
    - _mfn
    - evtchn_free
    - time_resume
    - vcpu_pause_by_systemcontroller
    - evtchn_handled
    - evtchn_allocate_port
    - watchdog_domain_destroy
    - runstate_guest
    - get_initial_domain_id
    - vcpu_set_periodic_timer
    - iomem_deny_access
    - evtchn_from_port
    - MILLISECS
    - time_suspend
    linkageType: ''
    returnType: int
    signature: int pv_shim_shutdown(uint8_t reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:388,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:389,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/arch/x86/pv/shim.c:390,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/pv/shim.c:393,1
    - Dst: runstate_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:393,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/pv/shim.c:394,1
    - Dst: vcpu_set_periodic_timer
      Src: /src/xen/xen/arch/x86/pv/shim.c:397,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/pv/shim.c:397,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/x86/pv/shim.c:399,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/pv/shim.c:401,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:402,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/arch/x86/pv/shim.c:402,1
    - Dst: vcpu_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/x86/pv/shim.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 406
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 25
    functionsReached:
    - runstate_guest
    - unmap_guest_area
    - vcpu_unpause_by_systemcontroller
    - set_xen_guest_handle
    - vcpu_set_periodic_timer
    - BUG_ON
    - stop_timer
    - vcpu_reset
    - MILLISECS
    - test_bit
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: EVTCHN_FORWARD
      Src: /src/xen/xen/arch/x86/pv/shim.c:447,1
    - Dst: EVTCHN_FORWARD
      Src: /src/xen/xen/arch/x86/pv/shim.c:448,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:458,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:468,1
    - Dst: evtchn_bind_virq
      Src: /src/xen/xen/arch/x86/pv/shim.c:473,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:477,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:477,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:480,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:489,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:496,1
    - Dst: evtchn_handled
      Src: /src/xen/xen/arch/x86/pv/shim.c:496,1
    - Dst: evtchn_status
      Src: /src/xen/xen/arch/x86/pv/shim.c:497,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:499,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:501,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:510,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:513,1
    - Dst: evtchn_handled
      Src: /src/xen/xen/arch/x86/pv/shim.c:516,1
    - Dst: evtchn_bind_vcpu
      Src: /src/xen/xen/arch/x86/pv/shim.c:517,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:520,1
    - Dst: evtchn_assign_vcpu
      Src: /src/xen/xen/arch/x86/pv/shim.c:522,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:529,1
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:532,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/pv/shim.c:535,1
    - Dst: evtchn_handled
      Src: /src/xen/xen/arch/x86/pv/shim.c:537,1
    - Dst: evtchn_close
      Src: /src/xen/xen/arch/x86/pv/shim.c:539,1
    - Dst: evtchn_free
      Src: /src/xen/xen/arch/x86/pv/shim.c:544,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:544,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:546,1
    - Dst: evtchn_reserve
      Src: /src/xen/xen/arch/x86/pv/shim.c:552,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:560,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:563,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:567,1
    - Dst: evtchn_allocate_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:568,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:571,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:574,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:574,1
    - Dst: evtchn_assign_vcpu
      Src: /src/xen/xen/arch/x86/pv/shim.c:578,1
    - Dst: evtchn_reserve
      Src: /src/xen/xen/arch/x86/pv/shim.c:579,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:580,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:582,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:591,1
    - Dst: evtchn_unmask
      Src: /src/xen/xen/arch/x86/pv/shim.c:595,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:603,1
    - Dst: pv_console_evtchn
      Src: /src/xen/xen/arch/x86/pv/shim.c:606,1
    - Dst: consoled_guest_rx
      Src: /src/xen/xen/arch/x86/pv/shim.c:608,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:611,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:619,1
    - Dst: xen_hypercall_event_channel_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:622,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 634
    functionName: pv_shim_event_channel_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - port_is_valid
    - copy_from_guest
    - xen_hypercall_event_channel_op
    - evtchn_close
    - evtchn_reserve
    - evtchn_bind_virq
    - BUG_ON
    - evtchn_unmask
    - evtchn_assign_vcpu
    - pv_console_evtchn
    - write_unlock
    - evtchn_free
    - evtchn_status
    - evtchn_handled
    - write_lock
    - set_bit
    - evtchn_allocate_port
    - EVTCHN_FORWARD
    - __copy_to_guest
    - evtchn_from_port
    - consoled_guest_rx
    - evtchn_bind_vcpu
    linkageType: ''
    returnType: long
    signature: long pv_shim_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - port_field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 446
    functionName: EVTCHN_FORWARD
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EVTCHN_FORWARD(cmd, port_field)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/arch/x86/pv/shim.c:638,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/arch/x86/pv/shim.c:640,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/arch/x86/pv/shim.c:642,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/arch/x86/pv/shim.c:644,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 648
    functionName: pv_shim_inject_evtchn
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached:
    - port_is_valid
    - evtchn_read_unlock
    - evtchn_read_trylock
    - evtchn_from_port
    - evtchn_port_set_pending
    linkageType: ''
    returnType: void
    signature: void pv_shim_inject_evtchn(unsigned int port)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/shim.c:672,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/shim.c:677,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:677,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:678,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/shim.c:679,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/arch/x86/pv/shim.c:679,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/pv/shim.c:681,1
    - Dst: XLAT_gnttab_setup_table
      Src: /src/xen/xen/arch/x86/pv/shim.c:691,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:697,1
    - Dst: xen_hypercall_grant_table_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:704,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:708,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:712,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/pv/shim.c:713,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:717,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:727,1
    - Dst: xg_alloc_unused_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:743,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:746,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:751,1
    - Dst: xen_hypercall_memory_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:752,1
    - Dst: xg_free_unused_page
      Src: /src/xen/xen/arch/x86/pv/shim.c:755,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:759,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/arch/x86/pv/shim.c:759,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:759,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:759,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:760,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/shim.c:763,1
    - Dst: __copy_to_compat_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:769,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/pv/shim.c:778,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:786,1
    - Dst: XLAT_gnttab_setup_table
      Src: /src/xen/xen/arch/x86/pv/shim.c:791,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/shim.c:795,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:795,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/pv/shim.c:796,1
    - Dst: stac
      Src: /src/xen/xen/arch/x86/pv/shim.c:807,1
    - Dst: xen_hypercall_grant_table_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:808,1
    - Dst: clac
      Src: /src/xen/xen/arch/x86/pv/shim.c:809,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 818
    functionName: pv_shim_grant_table_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_memory_op
    - xg_free_unused_page
    - copy_from_guest
    - xg_alloc_unused_page
    - spin_lock
    - gprintk
    - __copy_to_compat_offset
    - stac
    - __copy_to_guest_offset
    - is_pv_32bit_domain
    - clac
    - BUG_ON
    - compat_handle_okay
    - spin_unlock
    - XLAT_gnttab_setup_table
    - mfn_x
    - ASSERT
    - iomem_permit_access
    - xen_hypercall_grant_table_op
    - xzalloc_array
    - __copy_to_guest
    - unlikely
    - guest_handle_okay
    linkageType: ''
    returnType: long
    signature: "long pv_shim_grant_table_op(unsigned int cmd,\n                            XEN_GUEST_HANDLE_PARAM(void)
      uop,\n                            unsigned int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_grant_table_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 822
    functionDepth: 3
    functionLinenumber: 822
    functionLinenumberEnd: 829
    functionName: do_grant_table_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached:
    - pv_shim_grant_table_op
    linkageType: ''
    returnType: long
    signature: "long do_grant_table_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      uop, unsigned int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_grant_table_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 839
    functionName: compat_grant_table_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 1
    functionsReached:
    - pv_shim_grant_table_op
    linkageType: ''
    returnType: int
    signature: "int compat_grant_table_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      uop, unsigned int count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:849,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/pv/shim.c:849,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:851,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:854,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/pv/shim.c:858,1
    - Dst: cpu_up_helper
      Src: /src/xen/xen/arch/x86/pv/shim.c:860,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:864,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:865,1
    - Dst: vcpu_set_hard_affinity
      Src: /src/xen/xen/arch/x86/pv/shim.c:870,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/pv/shim.c:870,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/pv/shim.c:873,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:874,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/arch/x86/pv/shim.c:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 879
    functionName: pv_shim_cpu_up
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - vcpu_wake
    - cpu_up_helper
    - domain_unlock
    - test_and_clear_bit
    - smp_processor_id
    - vcpu_set_hard_affinity
    - BUG_ON
    - domain_lock
    - gprintk
    - cpumask_of
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check pv_shim_cpu_up(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:886,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/pv/shim.c:886,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/pv/shim.c:888,1
    - Dst: vcpu_sleep_sync
      Src: /src/xen/xen/arch/x86/pv/shim.c:889,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/pv/shim.c:891,1
    - Dst: cpu_down_helper
      Src: /src/xen/xen/arch/x86/pv/shim.c:893,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 906
    functionName: pv_shim_cpu_down
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - test_and_set_bit
    - smp_processor_id
    - BUG_ON
    - gprintk
    - vcpu_sleep_sync
    - cpu_down_helper
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check pv_shim_cpu_down(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/pv/shim.c:919,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:922,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:922,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/pv/shim.c:923,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/pv/shim.c:923,1
    - Dst: xen_hypercall_memory_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - cmd
    - order
    - list
    argTypes:
    - unsigned int
    - unsigned int
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 935
    functionName: batch_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_memory_op
    - page_to_mfn
    - ARRAY_SIZE
    - mfn_x
    - set_xen_guest_handle
    - page_list_next
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long batch_memory_op(unsigned int cmd, unsigned int order,\n
      \                                    const struct page_list_head *list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/shim.c:922,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/shim.c:922,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/pv/shim.c:923,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/pv/shim.c:923,1
    - Dst: xen_hypercall_memory_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 932
    functionName: page_list_for_each
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 3
    functionsReached:
    - xen_hypercall_memory_op
    - page_to_mfn
    - ARRAY_SIZE
    - mfn_x
    - page_list_next
    linkageType: ''
    returnType: void
    signature: void page_list_for_each ( pg, list )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/pv/shim.c:940,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:945,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/arch/x86/pv/shim.c:946,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/pv/shim.c:952,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/pv/shim.c:953,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:957,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:960,1
    - Dst: batch_memory_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:964,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:967,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/pv/shim.c:967,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/shim.c:968,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/pv/shim.c:971,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:973,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:975,1
    - Dst: page_list_splice
      Src: /src/xen/xen/arch/x86/pv/shim.c:976,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:977,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - nr
    - order
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 937
    functionDepth: 3
    functionLinenumber: 937
    functionLinenumberEnd: 979
    functionName: pv_shim_online_memory
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - spin_unlock
    - page_list_for_each_safe
    - page_list_splice
    - free_domheap_pages
    - page_list_remove_head
    - BUG_ON
    - spin_lock
    - gprintk
    - batch_memory_op
    - page_list_empty
    - page_list_del
    - PAGE_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void pv_shim_online_memory(unsigned int nr, unsigned int order)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/pv/shim.c:984,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/shim.c:988,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/pv/shim.c:992,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:997,1
    - Dst: batch_memory_op
      Src: /src/xen/xen/arch/x86/pv/shim.c:1002,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/pv/shim.c:1003,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/shim.c:1006,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/pv/shim.c:1006,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/pv/shim.c:1007,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/pv/shim.c:1009,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/pv/shim.c:1011,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/shim.c:1013,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/pv/shim.c:1015,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/shim.c:1016,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - nr
    - order
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 981
    functionDepth: 3
    functionLinenumber: 981
    functionLinenumberEnd: 1018
    functionName: pv_shim_offline_memory
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - spin_unlock
    - free_domheap_pages
    - page_list_remove_head
    - BUG_ON
    - spin_lock
    - gprintk
    - batch_memory_op
    - page_list_empty
    - alloc_domheap_pages
    - PAGE_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void pv_shim_offline_memory(unsigned int nr, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/pv/shim.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1027
    functionName: pv_shim_get_initial_domain_id
    functionSourceFile: /src/xen/xen/arch/x86/pv/shim.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: domid_t
    signature: domid_t pv_shim_get_initial_domain_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - value
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: do_set_debugreg
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 0
    functionsReached:
    - set_debugreg
    linkageType: ''
    returnType: long
    signature: long do_set_debugreg(int reg, unsigned long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_read_dr
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: do_get_debugreg
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 0
    functionsReached:
    - x86emul_read_dr
    linkageType: ''
    returnType: long
    signature: long do_get_debugreg(int reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stts
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:39,1
    - Dst: clts
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - set
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: do_fpu_taskswitch
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 0
    functionsReached:
    - stts
    - clts
    linkageType: ''
    returnType: long
    signature: long do_fpu_taskswitch(int set)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: breakpoint_addr_ok
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:65,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:73,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:74,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:75,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:76,1
    - Dst: x86_adj_dr6_rsvd
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:91,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:95,1
    - Dst: x86_adj_dr7_rsvd
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:108,1
    - Dst: activate_debugregs
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:141,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:149,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 3
    argNames:
    - v
    - reg
    - value
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 157
    functionName: set_debugreg
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 2
    functionsReached:
    - breakpoint_addr_ok
    - x86_adj_dr7_rsvd
    - write_debugreg
    - activate_debugregs
    - x86_adj_dr6_rsvd
    linkageType: ''
    returnType: long
    signature: long set_debugreg(struct vcpu *v, unsigned int reg, unsigned long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fixup_guest_stack_selector
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ss
    - esp
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: do_stack_switch
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 0
    functionsReached:
    - fixup_guest_stack_selector
    linkageType: ''
    returnType: long
    signature: long do_stack_switch(unsigned long ss, unsigned long esp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:173,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:181,1
    - Dst: write_fs_base
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:190,1
    - Dst: write_gs_shadow
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:195,1
    - Dst: write_gs_base
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:199,1
    - Dst: read_gs_base
      Src: /src/xen/xen/arch/x86/pv/misc-hypercalls.c:248,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - which
    - base
    argTypes:
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 260
    functionName: do_set_segment_base
    functionSourceFile: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
    functionUses: 0
    functionsReached:
    - read_gs_base
    - write_gs_shadow
    - is_canonical_address
    - write_gs_base
    - write_fs_base
    - is_pv_32bit_vcpu
    linkageType: ''
    returnType: long
    signature: long do_set_segment_base(unsigned int which, unsigned long base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LDT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/emulate.h:21,1
    - Dst: GDT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/emulate.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sel
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: gdt_ldt_desc_ptr
    functionSourceFile: /src/xen/xen/arch/x86/pv/emulate.h
    functionUses: 0
    functionsReached:
    - LDT_VIRT_START
    - GDT_VIRT_START
    linkageType: ''
    returnType: seg_desc_t
    signature: seg_desc_t *gdt_ldt_desc_ptr(unsigned int sel)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:26,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:26,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:40,1
    - Dst: __trace_hypercall
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:44,1
    - Dst: call_handlers_pv64
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:47,1
    - Dst: clobber_regs
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:50,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:63,1
    - Dst: __trace_hypercall
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:67,1
    - Dst: call_handlers_pv32
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:71,1
    - Dst: clobber_regs
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:75,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - regs
    - compat
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 88
    functionName: always_inline::_pv_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 0
    functionsReached:
    - __trace_hypercall
    - perfc_incra
    - guest_kernel_mode
    - ASSERT
    - clobber_regs
    - unlikely
    - call_handlers_pv64
    - call_handlers_pv32
    linkageType: ''
    returnType: void
    signature: 'void always_inline

      _pv_hypercall(struct cpu_user_regs *regs, bool compat)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:96,1
    - Dst: call_handlers_pv32
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:101,1
    - Dst: call_handlers_pv64
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:110,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:114,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:116,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:116,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 118
    functionName: pv_do_multicall_call
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - call_handlers_pv64
    - likely
    - guest_kernel_mode
    - unlikely
    - is_pv_32bit_vcpu
    - call_handlers_pv32
    linkageType: ''
    returnType: enum mc_disposition
    signature: enum mc_disposition pv_do_multicall_call(struct mc_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 152
    functionName: pv_ring3_init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 1
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void pv_ring3_init_hypercall_page(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: pv_ring1_init_hypercall_page
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 1
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: void pv_ring1_init_hypercall_page(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:185,1
    - Dst: check_for_unexpected_msi
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:186,1
    - Dst: _pv_hypercall
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: do_entry_int82
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 0
    functionsReached:
    - _pv_hypercall
    - check_for_unexpected_msi
    - unlikely
    linkageType: ''
    returnType: void
    signature: void do_entry_int82(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pv_hypercall
      Src: /src/xen/xen/arch/x86/pv/hypercall.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: pv_hypercall
    functionSourceFile: /src/xen/xen/arch/x86/pv/hypercall.c
    functionUses: 2
    functionsReached:
    - _pv_hypercall
    linkageType: ''
    returnType: void
    signature: void pv_hypercall(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:31,1
    - Dst: cacheattr_to_pte_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - grant_flags
    - cache_flags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: grant_to_pte_flags
    functionSourceFile: /src/xen/xen/arch/x86/pv/grant_table.c
    functionUses: 0
    functionsReached:
    - cacheattr_to_pte_flags
    - MASK_INSR
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int grant_to_pte_flags(unsigned int grant_flags,\n                                       unsigned
      int cache_flags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:47,1
    - Dst: grant_to_pte_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:47,1
    - Dst: adjust_guest_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:48,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:58,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:60,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:65,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:67,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:71,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:76,1
    - Dst: map_guest_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:79,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:83,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:89,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:94,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:101,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:109,1
    - Dst: is_iomem_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:109,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:115,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:117,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:119,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:122,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 4
    argNames:
    - addr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 126
    functionName: create_grant_pv_mapping
    functionSourceFile: /src/xen/xen/arch/x86/pv/grant_table.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - l1e_from_mfn
    - map_domain_page
    - is_pv_32bit_domain
    - unmap_domain_page
    - grant_to_pte_flags
    - UPDATE_ENTRY
    - IS_ALIGNED
    - _mfn
    - is_iomem_page
    - adjust_guest_l1e
    - map_guest_l1e
    - page_lock
    - ASSERT
    - put_page
    - get_page_from_mfn
    - page_unlock
    - put_page_from_l1e
    linkageType: ''
    returnType: int
    signature: "int create_grant_pv_mapping(uint64_t addr, mfn_t frame,\n                            unsigned
      int flags, unsigned int cache_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:147,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:147,1
    - Dst: map_guest_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:149,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:152,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:157,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:161,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:168,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:168,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:174,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:176,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - linear
    - out
    argTypes:
    - unsigned long
    - l1_pgentry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 182
    functionName: steal_linear_address
    functionSourceFile: /src/xen/xen/arch/x86/pv/grant_table.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - unmap_domain_page
    - UPDATE_ENTRY
    - map_guest_l1e
    - ASSERT
    - is_pv_domain
    - page_lock
    - l1e_empty
    - put_page
    - get_page_from_mfn
    - page_unlock
    linkageType: ''
    returnType: bool
    signature: bool steal_linear_address(unsigned long linear, l1_pgentry_t *out)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:194,1
    - Dst: grant_to_pte_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:198,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:205,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:225,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:227,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:231,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:233,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:237,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:241,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:245,1
    - Dst: steal_linear_address
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:254,1
    - Dst: map_guest_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:257,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:262,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:267,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:279,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:279,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:279,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:280,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:280,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:283,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:285,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:286,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:286,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:290,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:290,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:292,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:294,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:296,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:311,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:313,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:315,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/pv/grant_table.c:320,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 4
    argNames:
    - addr
    - frame
    - new_addr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 323
    functionName: replace_grant_pv_mapping
    functionSourceFile: /src/xen/xen/arch/x86/pv/grant_table.c
    functionUses: 1
    functionsReached:
    - l1e_get_intpte
    - l1e_from_mfn
    - is_pv_32bit_domain
    - map_domain_page
    - grant_to_pte_flags
    - page_lock
    - mfn_eq
    - l1e_get_flags
    - gdprintk
    - _mfn
    - map_guest_l1e
    - l1e_empty
    - l1e_get_mfn
    - get_page_from_mfn
    - ASSERT_UNREACHABLE
    - page_unlock
    - steal_linear_address
    - put_page_from_l1e
    - unmap_domain_page
    - UPDATE_ENTRY
    - IS_ALIGNED
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: "int replace_grant_pv_mapping(uint64_t addr, mfn_t frame,\n                             uint64_t
      new_addr, unsigned int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gdt_ldt_desc_ptr
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:23,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:30,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:33,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:48,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:52,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - gate_sel
    - v
    - sel
    - 'off'
    - ar
    argTypes:
    - unsigned int
    - struct vcpu*
    - unsigned int*
    - unsigned long*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 72
    functionName: read_gate_descriptor
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 0
    functionsReached:
    - gdt_ldt_desc_ptr
    - get_unsafe
    - is_pv_32bit_vcpu
    linkageType: ''
    returnType: int
    signature: "int read_gate_descriptor(unsigned int gate_sel,\n                                const
      struct vcpu *v,\n                                unsigned int *sel,\n                                unsigned
      long *off,\n                                unsigned int *ar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - ar
    - limit
    - esp
    - decr
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: check_stack_limit
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool check_stack_limit(unsigned int ar, unsigned int limit,\n                                     unsigned
      int esp, unsigned int decr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:94,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:105,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:108,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:111,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:114,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:126,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:127,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:143,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:150,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 155
    functionName: read_mem
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 3
    functionsReached:
    - __copy_from_guest_pv
    - read_sreg
    - container_of
    - pv_emul_read_descriptor
    - ASSERT
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int read_mem(\n    enum x86_segment seg, unsigned long offset, void
      *p_data,\n    unsigned int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_mem
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: fetch
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 5
    functionsReached:
    - read_mem
    linkageType: ''
    returnType: int
    signature: "int fetch(unsigned long offset, void *p_data,\n                          unsigned
      int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: read_gate_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:174,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:178,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:183,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:193,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:199,1
    - Dst: x86_decode_insn
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:205,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:207,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:209,1
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:210,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:212,1
    - Dst: x86_insn_immediate
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:225,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:228,1
    - Dst: x86_insn_operand_ea
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:239,1
    - Dst: read_mem
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:240,1
    - Dst: x86_insn_opsize
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:240,1
    - Dst: x86_insn_length
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:247,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:248,1
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:252,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:261,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:265,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:272,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:277,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:282,1
    - Dst: GUEST_KERNEL_RPL
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:307,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:309,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:315,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:321,1
    - Dst: check_stack_limit
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:325,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:327,1
    - Dst: compat_access_ok
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:331,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:333,1
    - Dst: push
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:336,1
    - Dst: push
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:337,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:342,1
    - Dst: check_stack_limit
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:348,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:349,1
    - Dst: compat_access_ok
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:352,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:354,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:362,1
    - Dst: pv_inject_page_fault
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:365,1
    - Dst: push
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:368,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:377,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:380,1
    - Dst: check_stack_limit
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:383,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:385,1
    - Dst: compat_access_ok
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:389,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:391,1
    - Dst: push
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:395,1
    - Dst: push
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:396,1
    - Dst: pv_emul_instruction_done
      Src: /src/xen/xen/arch/x86/pv/emul-gate-op.c:405,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 135
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 406
    functionName: pv_emulate_gate_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 0
    functionsReached:
    - pv_inject_hw_exception
    - x86_insn_length
    - pv_emul_read_descriptor
    - pv_emul_instruction_done
    - push
    - check_stack_limit
    - read_mem
    - GUEST_KERNEL_RPL
    - x86_insn_immediate
    - x86_decode_insn
    - pv_inject_event
    - IS_ERR_OR_NULL
    - __get_guest
    - x86_insn_opsize
    - pv_inject_page_fault
    - read_gate_descriptor
    - x86_emulate_free_state
    - x86_insn_operand_ea
    - PTR_ERR
    - compat_access_ok
    - x86_insn_modrm
    linkageType: ''
    returnType: void
    signature: void pv_emulate_gate_op(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 302
    functionName: push
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: push(item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:27,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:27,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:29,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:29,1
    - Dst: pv_ldt_ptes
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:31,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:35,1
    - Dst: l1e_get_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:38,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:39,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:39,1
    - Dst: ASSERT_PAGE_IS_TYPE
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:42,1
    - Dst: ASSERT_PAGE_IS_DOMAIN
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:43,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: pv_destroy_ldt
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 4
    functionsReached:
    - l1e_get_flags
    - l1e_get_page
    - put_page_and_type
    - ASSERT_PAGE_IS_TYPE
    - ASSERT_PAGE_IS_DOMAIN
    - l1e_write
    - ASSERT
    - l1e_empty
    - pv_ldt_ptes
    - vcpu_cpu_dirty
    - in_irq
    linkageType: ''
    returnType: bool
    signature: bool pv_destroy_ldt(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_gdt_ptes
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:52,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:53,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:53,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:54,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:57,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:57,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:62,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:64,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:65,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:66,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:66,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: pv_destroy_gdt
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 4
    functionsReached:
    - l1e_get_flags
    - put_page_and_type
    - l1e_from_mfn
    - virt_to_mfn
    - mfn_to_page
    - _mfn
    - l1e_write
    - ASSERT
    - l1e_get_mfn
    - vcpu_cpu_dirty
    - mfn_eq
    - pv_gdt_ptes
    linkageType: ''
    returnType: void
    signature: void pv_destroy_gdt(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:78,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:80,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:80,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:88,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:90,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:91,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:91,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:96,1
    - Dst: pv_gdt_ptes
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:100,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:104,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:104,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:111,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:111,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - v
    - frames
    - entries
    argTypes:
    - struct vcpu*
    - unsigned long[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 114
    functionName: pv_set_gdt
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 1
    functionsReached:
    - put_page_and_type
    - mfn_to_page
    - pv_destroy_gdt
    - _mfn
    - mfn_valid
    - DIV_ROUND_UP
    - l1e_write
    - ASSERT
    - l1e_from_pfn
    - vcpu_cpu_dirty
    - get_page_and_type
    - pv_gdt_ptes
    linkageType: ''
    returnType: int
    signature: "int pv_set_gdt(struct vcpu *v, const unsigned long frames[],\n               unsigned
      int entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:117,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:119,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:128,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:131,1
    - Dst: pv_set_gdt
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:133,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:134,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - entries
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: do_set_gdt
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 0
    functionsReached:
    - pv_set_gdt
    - domain_unlock
    - copy_from_guest
    - DIV_ROUND_UP
    - domain_lock
    - XEN_GUEST_HANDLE_PARAM
    - flush_tlb_local
    linkageType: ''
    returnType: long
    signature: "long do_set_gdt(\n    XEN_GUEST_HANDLE_PARAM(xen_ulong_t) frame_list,
      unsigned int entries)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:144,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:147,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:155,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:162,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:166,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:169,1
    - Dst: pv_set_gdt
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:171,1
    - Dst: flush_tlb_local
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:172,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - entries
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 177
    functionName: compat_set_gdt
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - pv_set_gdt
    - domain_unlock
    - guest_handle_add_offset
    - DIV_ROUND_UP
    - domain_lock
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_okay
    - flush_tlb_local
    linkageType: ''
    returnType: int
    signature: "int compat_set_gdt(\n    XEN_GUEST_HANDLE_PARAM(uint) frame_list,
      unsigned int entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_update_descriptor
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pa_lo
    - pa_hi
    - desc_lo
    - desc_hi
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: compat_update_descriptor
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 0
    functionsReached:
    - do_update_descriptor
    linkageType: ''
    returnType: int
    signature: "int compat_update_descriptor(\n    uint32_t pa_lo, uint32_t pa_hi,
      uint32_t desc_lo, uint32_t desc_hi)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __fixup_guest_selector
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:198,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:204,1
    - Dst: HYPERVISOR_COMPAT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:224,1
    - Dst: guest_gate_selector_okay
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:244,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:261,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 2
    argNames:
    - dom
    - d
    argTypes:
    - struct domain*
    - seg_desc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 271
    functionName: check_descriptor
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 0
    functionsReached:
    - guest_gate_selector_okay
    - is_pv_32bit_domain
    - HYPERVISOR_COMPAT_VIRT_START
    - __fixup_guest_selector
    linkageType: ''
    returnType: bool
    signature: bool check_descriptor(const struct domain *dom, seg_desc_t *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:275,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:276,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:280,1
    - Dst: check_descriptor
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:280,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 286
    functionName: validate_segdesc_page
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 1
    functionsReached:
    - check_descriptor
    - unmap_domain_page
    - page_get_owner
    - unlikely
    - __map_domain_page
    linkageType: ''
    returnType: int
    signature: int validate_segdesc_page(struct page_info *page)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:292,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:299,1
    - Dst: check_descriptor
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:299,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:302,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:302,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:306,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:312,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:312,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:316,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:316,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:321,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:324,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:325,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:326,1
    - Dst: put_page_type
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:328,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/descriptor-tables.c:333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - gaddr
    - desc
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 336
    functionName: do_update_descriptor
    functionSourceFile: /src/xen/xen/arch/x86/pv/descriptor-tables.c
    functionUses: 1
    functionsReached:
    - check_descriptor
    - unmap_domain_page
    - page_to_mfn
    - map_domain_page
    - get_page_type
    - IS_ALIGNED
    - put_page_type
    - gaddr_to_gfn
    - gfn_x
    - unlikely
    - put_page
    - ACCESS_ONCE
    - get_page_from_gfn
    - paging_mark_dirty
    linkageType: ''
    returnType: long
    signature: long do_update_descriptor(uint64_t gaddr, uint64_t desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/pv/callback.c:23,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/callback.c:28,1
    - Dst: TI_SET_IF
      Src: /src/xen/xen/arch/x86/pv/callback.c:31,1
    - Dst: arch_get_nmi_reason
      Src: /src/xen/xen/arch/x86/pv/callback.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - address
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 41
    functionName: register_guest_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - arch_get_nmi_reason
    - is_canonical_address
    - is_pv_32bit_domain
    - TI_SET_IF
    linkageType: ''
    returnType: int
    signature: int register_guest_nmi_callback(unsigned long address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/pv/callback.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: unregister_guest_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void unregister_guest_nmi_callback(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/pv/callback.c:56,1
    - Dst: register_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:94,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - reg
    argTypes:
    - struct callback_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 103
    functionName: register_guest_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - is_canonical_address
    - register_guest_nmi_callback
    linkageType: ''
    returnType: long
    signature: long register_guest_callback(const struct callback_register *reg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unregister_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - unreg
    argTypes:
    - struct callback_unregister*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: unregister_guest_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - unregister_guest_nmi_callback
    linkageType: ''
    returnType: long
    signature: long unregister_guest_callback(const struct callback_unregister *unreg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:143,1
    - Dst: register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:146,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:155,1
    - Dst: unregister_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: do_callback_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - register_guest_callback
    - unregister_guest_callback
    - copy_from_guest
    linkageType: ''
    returnType: long
    signature: long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:187,1
    - Dst: register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:188,1
    - Dst: register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - event_address
    - failsafe_address
    - syscall_address
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: do_set_callbacks
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - register_guest_callback
    linkageType: ''
    returnType: long
    signature: "long do_set_callbacks(\n    unsigned long event_address, unsigned
      long failsafe_address,\n    unsigned long syscall_address)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/pv/callback.c:204,1
    - Dst: register_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - reg
    argTypes:
    - struct compat_callback_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 246
    functionName: compat_register_guest_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - register_guest_nmi_callback
    - fixup_guest_code_selector
    linkageType: ''
    returnType: int
    signature: int compat_register_guest_callback(struct compat_callback_register
      *reg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unregister_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - unreg
    argTypes:
    - struct compat_callback_unregister*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 273
    functionName: compat_unregister_guest_callback
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - unregister_guest_nmi_callback
    linkageType: ''
    returnType: int
    signature: "int compat_unregister_guest_callback(\n    struct compat_callback_unregister
      *unreg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:286,1
    - Dst: compat_register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:289,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:298,1
    - Dst: compat_unregister_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 311
    functionName: compat_callback_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - compat_unregister_guest_callback
    - compat_register_guest_callback
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: int compat_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compat_register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:332,1
    - Dst: compat_register_guest_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - event_selector
    - event_address
    - failsafe_selector
    - failsafe_address
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: compat_set_callbacks
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - compat_register_guest_callback
    linkageType: ''
    returnType: int
    signature: "int compat_set_callbacks(\n    unsigned long event_selector, unsigned
      long event_address,\n    unsigned long failsafe_selector, unsigned long failsafe_address)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/pv/callback.c:340,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/pv/callback.c:348,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/pv/callback.c:350,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:356,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/pv/callback.c:365,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/pv/callback.c:368,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/callback.c:370,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/pv/callback.c:372,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/pv/callback.c:374,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/pv/callback.c:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 383
    functionName: do_set_trap_table
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - guest_handle_add_offset
    - hypercall_create_continuation
    - guest_handle_is_null
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - memset
    - is_canonical_address
    - memcpy
    - fixup_guest_code_selector
    linkageType: ''
    returnType: long
    signature: long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/pv/callback.c:386,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/pv/callback.c:394,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/pv/callback.c:396,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:402,1
    - Dst: fixup_guest_code_selector
      Src: /src/xen/xen/arch/x86/pv/callback.c:411,1
    - Dst: XLAT_trap_info
      Src: /src/xen/xen/arch/x86/pv/callback.c:413,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/pv/callback.c:415,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/pv/callback.c:417,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/pv/callback.c:419,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 426
    functionName: compat_set_trap_table
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - guest_handle_add_offset
    - XEN_GUEST_HANDLE
    - hypercall_create_continuation
    - guest_handle_is_null
    - hypercall_preempt_check
    - fixup_guest_code_selector
    - memset
    - XLAT_trap_info
    linkageType: ''
    returnType: int
    signature: int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:438,1
    - Dst: register_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:440,1
    - Dst: unregister_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 452
    functionName: do_nmi_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - register_guest_nmi_callback
    - unregister_guest_nmi_callback
    - copy_from_guest
    linkageType: ''
    returnType: long
    signature: long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/pv/callback.c:464,1
    - Dst: register_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:466,1
    - Dst: unregister_guest_nmi_callback
      Src: /src/xen/xen/arch/x86/pv/callback.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 478
    functionName: compat_nmi_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/callback.c
    functionUses: 0
    functionsReached:
    - register_guest_nmi_callback
    - unregister_guest_nmi_callback
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/pv/domain.c:32,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/pv/domain.c:34,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/pv/domain.c:36,1
    - Dst: no_config_param
      Src: /src/xen/xen/arch/x86/pv/domain.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 51
    functionName: parse_pv
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    - no_config_param
    linkageType: ''
    returnType: int
    signature: int parse_pv(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/arch/x86/pv/domain.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: opt_pcid_init
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - custom_runtime_set_var
    linkageType: ''
    returnType: void
    signature: void opt_pcid_init(struct param_hypfs *par)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/pv/domain.c:82,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/pv/domain.c:93,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/arch/x86/pv/domain.c:110,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/arch/x86/pv/domain.c:110,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 114
    functionName: parse_pcid
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - param_2_parfs
    - custom_runtime_set_var
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_pcid(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:122,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/domain.c:126,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:127,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:128,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/pv/domain.c:129,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:130,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 139
    functionName: setup_compat_l4
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - init_xen_l4_slots
    - page_to_mfn
    - map_domain_page
    - unmap_domain_page
    - pagetable_from_page
    - clear_page
    - alloc_domheap_page
    linkageType: ''
    returnType: int
    signature: int setup_compat_l4(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/pv/domain.c:143,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:144,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:144,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/pv/domain.c:145,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/pv/domain.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: release_compat_l4
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - pagetable_get_page
    - free_domheap_page
    - pagetable_is_null
    - pagetable_null
    linkageType: ''
    returnType: void
    signature: void release_compat_l4(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/pv/domain.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - cr4
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: pv_fixup_guest_cr4
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pv_fixup_guest_cr4(const struct vcpu *v, unsigned long
      cr4)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: pge_init
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pge_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: pv_make_cr4
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_domain
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pv_make_cr4(const struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/pv/domain.c:238,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:242,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/domain.c:242,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:244,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/pv/domain.c:255,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/pv/domain.c:259,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/x86/pv/domain.c:259,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:266,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/arch/x86/pv/domain.c:267,1
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:267,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/pv/domain.c:273,1
    - Dst: vcpu_info_reset
      Src: /src/xen/xen/arch/x86/pv/domain.c:274,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:275,1
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:275,1
    - Dst: setup_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:280,1
    - Dst: setup_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:281,1
    - Dst: MACH2PHYS_COMPAT_NR_ENTRIES
      Src: /src/xen/xen/arch/x86/pv/domain.c:287,1
    - Dst: fls
      Src: /src/xen/xen/arch/x86/pv/domain.c:290,1
    - Dst: MACH2PHYS_COMPAT_NR_ENTRIES
      Src: /src/xen/xen/arch/x86/pv/domain.c:290,1
    - Dst: recalculate_cpuid_policy
      Src: /src/xen/xen/arch/x86/pv/domain.c:292,1
    - Dst: free_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:305,1
    - Dst: release_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:306,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 310
    functionName: switch_compat
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - recalculate_cpuid_policy
    - setup_compat_arg_xlat
    - BUILD_BUG_ON
    - setup_compat_l4
    - is_hvm_domain
    - is_pv_32bit_domain
    - share_xen_page_with_guest
    - release_compat_l4
    - free_compat_arg_xlat
    - MEMF_bits
    - fls
    - virt_to_page
    - MACH2PHYS_COMPAT_NR_ENTRIES
    - alloc_xenheap_pages
    - vcpu_info_reset
    - clear_page
    - domain_tot_pages
    - virt_to_maddr
    - put_page
    linkageType: ''
    returnType: int
    signature: int switch_compat(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:280,1
    - Dst: setup_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 283
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 26
    functionsReached:
    - setup_compat_l4
    - setup_compat_arg_xlat
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:305,1
    - Dst: release_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 26
    functionsReached:
    - release_compat_l4
    - free_compat_arg_xlat
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/pv/domain.c:315,1
    - Dst: GDT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/domain.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pv_create_gdt_ldt_l1tab
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - GDT_VIRT_START
    - create_perdomain_mapping
    linkageType: ''
    returnType: int
    signature: int pv_create_gdt_ldt_l1tab(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_perdomain_mapping
      Src: /src/xen/xen/arch/x86/pv/domain.c:323,1
    - Dst: GDT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/domain.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: pv_destroy_gdt_ldt_l1tab
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - destroy_perdomain_mapping
    - GDT_VIRT_START
    linkageType: ''
    returnType: void
    signature: void pv_destroy_gdt_ldt_l1tab(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/domain.c:329,1
    - Dst: free_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:331,1
    - Dst: release_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:332,1
    - Dst: pv_destroy_gdt_ldt_l1tab
      Src: /src/xen/xen/arch/x86/pv/domain.c:335,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/pv/domain.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 337
    functionName: pv_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - release_compat_l4
    - pv_destroy_gdt_ldt_l1tab
    - XFREE
    - is_pv_32bit_vcpu
    - free_compat_arg_xlat
    linkageType: ''
    returnType: void
    signature: void pv_vcpu_destroy(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/domain.c:344,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:344,1
    - Dst: pv_create_gdt_ldt_l1tab
      Src: /src/xen/xen/arch/x86/pv/domain.c:346,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/pv/domain.c:350,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/pv/domain.c:352,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/pv/domain.c:360,1
    - Dst: pv_fixup_guest_cr4
      Src: /src/xen/xen/arch/x86/pv/domain.c:362,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:364,1
    - Dst: setup_compat_arg_xlat
      Src: /src/xen/xen/arch/x86/pv/domain.c:366,1
    - Dst: setup_compat_l4
      Src: /src/xen/xen/arch/x86/pv/domain.c:369,1
    - Dst: pv_vcpu_destroy
      Src: /src/xen/xen/arch/x86/pv/domain.c:375,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 377
    functionName: pv_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_domain
    - setup_compat_arg_xlat
    - xzalloc_array
    - BUILD_BUG_ON
    - pv_create_gdt_ldt_l1tab
    - ASSERT
    - pv_fixup_guest_cr4
    - MILLISECS
    - setup_compat_l4
    - is_idle_domain
    - pv_vcpu_destroy
    linkageType: ''
    returnType: int
    signature: int pv_vcpu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_domain_destroy
      Src: /src/xen/xen/arch/x86/pv/domain.c:381,1
    - Dst: destroy_perdomain_mapping
      Src: /src/xen/xen/arch/x86/pv/domain.c:383,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/pv/domain.c:386,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/pv/domain.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 389
    functionName: pv_domain_destroy
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - destroy_perdomain_mapping
    - XFREE
    - FREE_XENHEAP_PAGE
    - pv_l1tf_domain_destroy
    linkageType: ''
    returnType: void
    signature: void pv_domain_destroy(struct domain *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pv_l1tf_domain_init
      Src: /src/xen/xen/arch/x86/pv/domain.c:402,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/pv/domain.c:405,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/pv/domain.c:405,1
    - Dst: domain_to_node
      Src: /src/xen/xen/arch/x86/pv/domain.c:405,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/domain.c:408,1
    - Dst: xmemdup
      Src: /src/xen/xen/arch/x86/pv/domain.c:411,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/domain.c:416,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/pv/domain.c:417,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/domain.c:435,1
    - Dst: pv_domain_destroy
      Src: /src/xen/xen/arch/x86/pv/domain.c:442,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 445
    functionName: pv_domain_initialise
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - xmemdup
    - is_pv_32bit_domain
    - domain_to_node
    - clear_page
    - MEMF_node
    - pv_l1tf_domain_init
    - alloc_xenheap_pages
    - ACCESS_ONCE
    - ASSERT_UNREACHABLE
    - pv_domain_destroy
    linkageType: ''
    returnType: int
    signature: int pv_domain_initialise(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: xpti_pcid_enabled
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xpti_pcid_enabled(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: update_cr3
      Src: /src/xen/xen/arch/x86/pv/domain.c:461,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/pv/domain.c:477,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/domain.c:481,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/pv/domain.c:481,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/pv/domain.c:481,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/pv/domain.c:482,1
    - Dst: write_cr3
      Src: /src/xen/xen/arch/x86/pv/domain.c:489,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/pv/domain.c:491,1
    - Dst: shadow_put_top_level
      Src: /src/xen/xen/arch/x86/pv/domain.c:492,1
    - Dst: update_runstate_area
      Src: /src/xen/xen/arch/x86/pv/domain.c:497,1
    - Dst: update_secondary_system_time
      Src: /src/xen/xen/arch/x86/pv/domain.c:501,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 503
    functionName: _toggle_guest_pt
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 0
    functionsReached:
    - unlikely
    - update_secondary_system_time
    - update_cr3
    - pagetable_get_mfn
    - update_runstate_area
    - pagetable_is_null
    - maddr_to_mfn
    - write_cr3
    - mfn_eq
    - shadow_mode_enabled
    - shadow_put_top_level
    linkageType: ''
    returnType: void
    signature: void _toggle_guest_pt(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/domain.c:510,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/domain.c:510,1
    - Dst: read_gs_base
      Src: /src/xen/xen/arch/x86/pv/domain.c:516,1
    - Dst: _toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/domain.c:523,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/pv/domain.c:527,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/domain.c:530,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/pv/domain.c:530,1
    - Dst: get_pcid_bits
      Src: /src/xen/xen/arch/x86/pv/domain.c:531,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/pv/domain.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 505
    functionDepth: 4
    functionLinenumber: 505
    functionLinenumberEnd: 539
    functionName: toggle_guest_mode
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 1
    functionsReached:
    - get_cpu_info
    - __pa
    - read_gs_base
    - get_pcid_bits
    - ASSERT
    - this_cpu
    - is_pv_32bit_vcpu
    - _toggle_guest_pt
    - shadow_mode_enabled
    linkageType: ''
    returnType: void
    signature: void toggle_guest_mode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/domain.c:547,1
    - Dst: _toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/domain.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: toggle_guest_pt
    functionSourceFile: /src/xen/xen/arch/x86/pv/domain.c
    functionUses: 2
    functionsReached:
    - is_pv_32bit_vcpu
    - _toggle_guest_pt
    linkageType: ''
    returnType: void
    signature: void toggle_guest_pt(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/mm.h:20,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/pv/mm.h:20,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/mm.h:21,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/pv/mm.h:21,1
    - Dst: toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/mm.h:24,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.h:26,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/pv/mm.h:26,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/pv/mm.h:27,1
    - Dst: l1_linear_offset
      Src: /src/xen/xen/arch/x86/pv/mm.h:27,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/pv/mm.h:28,1
    - Dst: toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/mm.h:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - linear
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 14
    functionDepth: 5
    functionLinenumber: 14
    functionLinenumberEnd: 34
    functionName: guest_get_eff_kern_l1e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - toggle_guest_pt
    - paging_mode_external
    - paging_mode_translate
    - ASSERT
    - get_unsafe
    - l1e_empty
    - unlikely
    - l1_linear_offset
    - __addr_ok
    linkageType: ''
    returnType: l1_pgentry_t
    signature: l1_pgentry_t guest_get_eff_kern_l1e(unsigned long linear)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.h:39,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/pv/mm.h:39,1
    - Dst: shadow_write_guest_entry
      Src: /src/xen/xen/arch/x86/pv/mm.h:40,1
    - Dst: gmfn::gmfn
      Src: /src/xen/xen/arch/x86/pv/mm.h:40,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/pv/mm.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - v
    - p
    - new
    - gmfn
    argTypes:
    - struct vcpu*
    - intpte_t*
    - intpte_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: paging_write_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 1
    functionsReached:
    - gmfn::gmfn
    - paging_mode_shadow
    - write_atomic
    - shadow_write_guest_entry
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void paging_write_guest_entry(\n    struct vcpu *v, intpte_t *p, intpte_t
      new, mfn_t gmfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.h:50,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/pv/mm.h:50,1
    - Dst: shadow_cmpxchg_guest_entry
      Src: /src/xen/xen/arch/x86/pv/mm.h:51,1
    - Dst: gmfn::gmfn
      Src: /src/xen/xen/arch/x86/pv/mm.h:51,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/pv/mm.h:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - v
    - p
    - old
    - new
    - gmfn
    argTypes:
    - struct vcpu*
    - intpte_t*
    - intpte_t
    - intpte_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: paging_cmpxchg_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - gmfn::gmfn
    - paging_mode_shadow
    - unlikely
    - cmpxchg
    - shadow_cmpxchg_guest_entry
    linkageType: ''
    returnType: intpte_t
    signature: "intpte_t paging_cmpxchg_guest_entry(\n    struct vcpu *v, intpte_t
      *p, intpte_t old, intpte_t new, mfn_t gmfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_write_guest_entry
      Src: /src/xen/xen/arch/x86/pv/mm.h:76,1
    - Dst: mfn::mfn
      Src: /src/xen/xen/arch/x86/pv/mm.h:76,1
    - Dst: t::t
      Src: /src/xen/xen/arch/x86/pv/mm.h:82,1
    - Dst: paging_cmpxchg_guest_entry
      Src: /src/xen/xen/arch/x86/pv/mm.h:87,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/mm.h:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - p
    - old
    - new
    - mfn
    - v
    - preserve_ad
    argTypes:
    - intpte_t*
    - intpte_t
    - intpte_t
    - mfn_t
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 99
    functionName: update_intpte
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - paging_cmpxchg_guest_entry
    - t::t
    - paging_write_guest_entry
    - mfn::mfn
    - BUG_ON
    linkageType: ''
    returnType: bool
    signature: "bool update_intpte(intpte_t *p, intpte_t old, intpte_t new,\n                                 mfn_t
      mfn, struct vcpu *v, bool preserve_ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - _t
    - ','
    - _p
    - ','
    - _o
    - ','
    - _n
    - ','
    - _m
    - ','
    - _v
    - ','
    - _ad
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: UPDATE_ENTRY
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_ENTRY(_t,_p,_o,_n,_m,_v,_ad)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:113,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:113,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:114,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.h:114,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:117,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/mm.h:119,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/pv/mm.h:120,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:122,1
    - Dst: l1e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:123,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:125,1
    - Dst: l1e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - l1e
    - d
    argTypes:
    - l1_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: l1_pgentry_t::adjust_guest_l1e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - gdprintk
    - is_pv_32bit_domain
    - l1e_get_pfn
    - likely
    - l1e_add_flags
    linkageType: ''
    returnType: always_inline
    signature: "always_inline l1_pgentry_t adjust_guest_l1e(l1_pgentry_t l1e,\n                                                   const
      struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:135,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:135,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:136,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.h:136,1
    - Dst: l2e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - l2e
    - d
    argTypes:
    - l2_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: l2_pgentry_t::adjust_guest_l2e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - is_pv_32bit_domain
    - likely
    - l2e_add_flags
    linkageType: ''
    returnType: always_inline
    signature: "always_inline l2_pgentry_t adjust_guest_l2e(l2_pgentry_t l2e,\n                                                   const
      struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:145,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:145,1
    - Dst: l3e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:146,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:146,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - l3e
    - d
    argTypes:
    - l3_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: l3_pgentry_t::adjust_guest_l3e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - l3e_get_flags
    - l3e_add_flags
    - likely
    linkageType: ''
    returnType: always_inline
    signature: "always_inline l3_pgentry_t adjust_guest_l3e(l3_pgentry_t l3e,\n                                                   const
      struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.h:155,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.h:155,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:156,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:156,1
    - Dst: l3e_remove_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - l3e
    - d
    argTypes:
    - l3_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: l3_pgentry_t::unadjust_guest_l3e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - likely
    - l3e_remove_flags
    - l3e_get_flags
    - unlikely
    linkageType: ''
    returnType: always_inline
    signature: "always_inline l3_pgentry_t unadjust_guest_l3e(l3_pgentry_t l3e,\n
      \                                                    const struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/mm.h:177,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:177,1
    - Dst: l4e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.h:178,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - l4e
    - d
    argTypes:
    - l4_pgentry_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: l4_pgentry_t::adjust_guest_l4e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.h
    functionUses: 0
    functionsReached:
    - l4e_get_flags
    - l4e_add_flags
    - likely
    - is_pv_32bit_domain
    linkageType: ''
    returnType: always_inline
    signature: "always_inline l4_pgentry_t adjust_guest_l4e(l4_pgentry_t l4e,\n                                                   const
      struct domain *d)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:85,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:102,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:102,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:102,1
    - Dst: place_endbr64
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:108,1
    - Dst: APPEND_BUFF
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:112,1
    - Dst: APPEND_CALL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:113,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:116,1
    - Dst: ioemul_handle_proliant_quirk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:118,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:123,1
    - Dst: APPEND_CALL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:130,1
    - Dst: APPEND_BUFF
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:131,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:132,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:135,1
    - Dst: MAX
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:137,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:138,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:140,1
    - Dst: block_speculation
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - ctxt
    - opcode
    - port
    - bytes
    argTypes:
    - struct priv_op_ctxt*
    - u8
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 149
    functionName: io_emul_stub_setup
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - APPEND_BUFF
    - APPEND_CALL
    - unlikely
    - map_domain_page
    - _mfn
    - ioemul_handle_proliant_quirk
    - likely
    - place_ret
    - place_endbr64
    - BUILD_BUG_ON
    - IS_ENABLED
    - BUG_ON
    - block_speculation
    - PAGE_OFFSET
    - this_cpu
    - MAX
    linkageType: ''
    returnType: io_emul_stub_t
    signature: "io_emul_stub_t *io_emul_stub_setup(struct priv_op_ctxt *ctxt, u8 opcode,\n
      \                                         unsigned int port, unsigned int bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: APPEND_BUFF
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_BUFF(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: APPEND_CALL
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_CALL(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:155,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:156,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:158,1
    - Dst: IOPL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: iopl_ok
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - IOPL
    - guest_kernel_mode
    - ASSERT
    - VM_ASSIST
    linkageType: ''
    returnType: bool
    signature: bool iopl_ok(const struct vcpu *v, const struct cpu_user_regs *regs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iopl_ok
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:172,1
    - Dst: toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:187,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:189,1
    - Dst: toggle_guest_pt
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:192,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:196,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - port
    - bytes
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 207
    functionName: guest_io_okay
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest_pv
    - iopl_ok
    - toggle_guest_pt
    - x86_emul_hw_exception
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int guest_io_okay(unsigned int port, unsigned int bytes,\n                         struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_cmos_port
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:221,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - port
    - bytes
    - d
    argTypes:
    - unsigned int
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 225
    functionName: admin_io_okay
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - is_cmos_port
    - ioports_access_permitted
    linkageType: ''
    returnType: bool
    signature: "bool admin_io_okay(unsigned int port, unsigned int bytes,\n                          const
      struct domain *d)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:232,1
    - Dst: CF8_ENABLED
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:235,1
    - Dst: CF8_BDF
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:238,1
    - Dst: pci_get_ro_map
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:241,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:243,1
    - Dst: CF8_ADDR_LO
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:246,1
    - Dst: CF8_ADDR_HI
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:248,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:254,1
    - Dst: CF8_ADDR_HI
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:257,1
    - Dst: xsm_pci_config_permission
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:261,1
    - Dst: pci_conf_write_intercept
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:263,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - currd
    - start
    - size
    - write
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 264
    functionName: pci_cfg_ok
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - pci_get_ro_map
    - CF8_ADDR_LO
    - xsm_pci_config_permission
    - CF8_ADDR_HI
    - rdmsr_safe
    - CF8_ENABLED
    - test_bit
    - is_hardware_domain
    - pci_conf_write_intercept
    - CF8_BDF
    linkageType: ''
    returnType: bool
    signature: "bool pci_cfg_ok(struct domain *currd, unsigned int start,\n                       unsigned
      int size, uint32_t *write)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: admin_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:272,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:276,1
    - Dst: inw
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:277,1
    - Dst: inl
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:278,1
    - Dst: pv_pit_handler
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:289,1
    - Dst: is_cmos_port
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:291,1
    - Dst: rtc_guest_read
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:293,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:302,1
    - Dst: pci_cfg_ok
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:305,1
    - Dst: pci_conf_read
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:306,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:308,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:311,1
    - Dst: inw
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:313,1
    - Dst: inb
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:317,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - port
    - bytes
    - currd
    argTypes:
    - unsigned int
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 330
    functionName: guest_io_read
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - inl
    - rtc_guest_read
    - ioports_access_permitted
    - pci_conf_read
    - pv_pit_handler
    - is_cmos_port
    - min
    - admin_io_okay
    - inb
    - inw
    - pci_cfg_ok
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t guest_io_read(unsigned int port, unsigned int bytes,\n                              struct
      domain *currd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x86_bp_width
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - v
    - port
    - len
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 357
    functionName: check_guest_io_breakpoint
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - x86_bp_width
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int check_guest_io_breakpoint(struct vcpu *v,\n                                              unsigned
      int port,\n                                              unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:363,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:369,1
    - Dst: guest_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:371,1
    - Dst: check_guest_io_breakpoint
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:375,1
    - Dst: admin_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:377,1
    - Dst: io_emul_stub_setup
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:380,1
    - Dst: io_emul
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:382,1
    - Dst: guest_io_read
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 359
    functionDepth: 8
    functionLinenumber: 359
    functionLinenumberEnd: 389
    functionName: read_io
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - guest_io_okay
    - container_of
    - check_guest_io_breakpoint
    - guest_io_read
    - io_emul
    - ASSERT
    - io_emul_stub_setup
    - admin_io_okay
    linkageType: ''
    returnType: int
    signature: "int read_io(\n    unsigned int port, unsigned int bytes, unsigned
      long *val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:397,1
    - Dst: amd_check_disable_c1e
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:399,1
    - Dst: outw
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:403,1
    - Dst: outl
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:407,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:411,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - port
    - bytes
    - data
    argTypes:
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 414
    functionName: _guest_io_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - outb
    - amd_check_disable_c1e
    - outl
    - outw
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void _guest_io_write(unsigned int port, unsigned int bytes,\n                            uint32_t
      data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: admin_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:419,1
    - Dst: _guest_io_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:421,1
    - Dst: pv_pit_handler
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:431,1
    - Dst: is_cmos_port
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:433,1
    - Dst: rtc_guest_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:435,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:444,1
    - Dst: pci_cfg_ok
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:447,1
    - Dst: pci_conf_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:448,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:450,1
    - Dst: ioports_access_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:453,1
    - Dst: _guest_io_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:455,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 4
    argNames:
    - port
    - bytes
    - data
    - currd
    argTypes:
    - unsigned int
    - unsigned int
    - uint32_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 416
    functionDepth: 7
    functionLinenumber: 416
    functionLinenumberEnd: 465
    functionName: guest_io_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 1
    functionsReached:
    - ioports_access_permitted
    - is_cmos_port
    - pv_pit_handler
    - min
    - admin_io_okay
    - pci_conf_write
    - _guest_io_write
    - pci_cfg_ok
    - rtc_guest_write
    linkageType: ''
    returnType: void
    signature: "void guest_io_write(unsigned int port, unsigned int bytes,\n                           uint32_t
      data, struct domain *currd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:471,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:477,1
    - Dst: guest_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:479,1
    - Dst: check_guest_io_breakpoint
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:483,1
    - Dst: admin_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:485,1
    - Dst: io_emul_stub_setup
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:488,1
    - Dst: io_emul
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:490,1
    - Dst: amd_check_disable_c1e
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:492,1
    - Dst: guest_io_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - port
    - bytes
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 499
    functionName: write_io
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - guest_io_okay
    - container_of
    - check_guest_io_breakpoint
    - amd_check_disable_c1e
    - io_emul
    - ASSERT
    - io_emul_stub_setup
    - admin_io_okay
    - guest_io_write
    linkageType: ''
    returnType: int
    signature: "int write_io(\n    unsigned int port, unsigned int bytes, unsigned
      long val,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:526,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:527,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:528,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:529,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:534,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:546,1
    - Dst: read_fs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:551,1
    - Dst: read_gs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:554,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:582,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 586
    functionName: read_segment
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - read_sreg
    - read_fs_base
    - read_gs_base
    - is_x86_user_segment
    - guest_kernel_mode
    - pv_emul_read_descriptor
    linkageType: ''
    returnType: int
    signature: "int read_segment(\n    enum x86_segment seg, struct segment_register
      *reg,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:604,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:607,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - base
    - offset
    - bytes
    - limit
    - seg
    - ctxt
    - addr
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    - unsigned long
    - enum x86_segment
    - struct x86_emulate_ctxt*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 612
    functionName: pv_emul_virt_to_linear
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - x86_emul_hw_exception
    - __addr_ok
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int pv_emul_virt_to_linear(unsigned long base, unsigned long offset,\n
      \                                 unsigned int bytes, unsigned long limit,\n
      \                                 enum x86_segment seg,\n                                  struct
      x86_emulate_ctxt *ctxt,\n                                  unsigned long *addr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:619,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:626,1
    - Dst: guest_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:630,1
    - Dst: read_segment
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:634,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:644,1
    - Dst: check_guest_io_breakpoint
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:648,1
    - Dst: guest_io_read
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:652,1
    - Dst: pv_emul_virt_to_linear
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:655,1
    - Dst: __copy_to_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:660,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:663,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:670,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:674,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 6
    argNames:
    - port
    - seg
    - offset
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - uint16_t
    - enum x86_segment
    - unsigned long
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 614
    functionDepth: 8
    functionLinenumber: 614
    functionLinenumberEnd: 681
    functionName: rep_ins
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - pv_emul_virt_to_linear
    - unlikely
    - guest_io_okay
    - container_of
    - x86_emul_hw_exception
    - read_segment
    - check_guest_io_breakpoint
    - __copy_to_guest_pv
    - guest_io_read
    - ASSERT
    - hypercall_preempt_check
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int rep_ins(\n    uint16_t port, enum x86_segment seg, unsigned long
      offset,\n    unsigned int bytes_per_rep, unsigned long *reps,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:688,1
    - Dst: guest_io_okay
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:697,1
    - Dst: read_segment
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:701,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:711,1
    - Dst: check_guest_io_breakpoint
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:716,1
    - Dst: pv_emul_virt_to_linear
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:723,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:728,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:731,1
    - Dst: guest_io_write
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:735,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:739,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:743,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 6
    argNames:
    - seg
    - offset
    - port
    - bytes_per_rep
    - reps
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - uint16_t
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 683
    functionDepth: 8
    functionLinenumber: 683
    functionLinenumberEnd: 750
    functionName: rep_outs
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - pv_emul_virt_to_linear
    - __copy_from_guest_pv
    - unlikely
    - guest_io_okay
    - container_of
    - x86_emul_hw_exception
    - check_guest_io_breakpoint
    - read_segment
    - hypercall_preempt_check
    - x86_emul_pagefault
    - guest_io_write
    linkageType: ''
    returnType: int
    signature: "int rep_outs(\n    enum x86_segment seg, unsigned long offset, uint16_t
      port,\n    unsigned int bytes_per_rep, unsigned long *reps,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:760,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:773,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:775,1
    - Dst: xen_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:776,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:776,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:776,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:781,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:781,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:783,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:784,1
    - Dst: compat_pfn_to_cr3
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:785,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:785,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 793
    functionName: read_cr
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 1
    functionsReached:
    - compat_pfn_to_cr3
    - xen_pfn_to_cr3
    - unmap_domain_page
    - is_pv_32bit_domain
    - map_domain_page
    - pagetable_get_mfn
    - read_cr0
    - gfn_x
    - mfn_to_gfn
    - l4e_get_mfn
    linkageType: ''
    returnType: int
    signature: "int read_cr(\n    unsigned int reg, unsigned long *val, struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:803,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:805,1
    - Dst: do_fpu_taskswitch
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:809,1
    - Dst: arch_set_cr2
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:814,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:824,1
    - Dst: xen_cr3_to_pfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:825,1
    - Dst: compat_cr3_to_pfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:825,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:826,1
    - Dst: new_guest_cr3
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:829,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:829,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:830,1
    - Dst: pv_fixup_guest_cr4
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:843,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:844,1
    - Dst: pv_make_cr4
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:844,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 795
    functionDepth: 9
    functionLinenumber: 795
    functionLinenumberEnd: 850
    functionName: write_cr
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - pv_make_cr4
    - gdprintk
    - is_pv_32bit_domain
    - do_fpu_taskswitch
    - xen_cr3_to_pfn
    - compat_cr3_to_pfn
    - page_to_mfn
    - write_cr4
    - ctxt_switch_levelling
    - read_cr0
    - pv_fixup_guest_cr4
    - new_guest_cr3
    - arch_set_cr2
    - put_page
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: "int write_cr(\n    unsigned int reg, unsigned long val, struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 860
    functionName: guest_misc_enable
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t guest_misc_enable(uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_efer
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:867,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 877
    functionName: guest_efer
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 7
    functionsReached:
    - is_pv_32bit_domain
    - read_efer
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t guest_efer(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_s_time
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:882,1
    - Dst: now::now
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:887,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:888,1
    - Dst: gtime_to_gtsc
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 891
    functionName: soft_rdtsc
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - cmpxchg
    - now::now
    - gtime_to_gtsc
    - get_s_time
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t soft_rdtsc(\n    const struct vcpu *v, const struct cpu_user_regs
      *regs)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: guest_rdmsr
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:903,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:906,1
    - Dst: read_fs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:923,1
    - Dst: read_gs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:929,1
    - Dst: soft_rdtsc
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:939,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:939,1
    - Dst: guest_efer
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:943,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:965,1
    - Dst: is_cpufreq_controller
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:965,1
    - Dst: is_hwdom_pinned_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:976,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:982,1
    - Dst: guest_misc_enable
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:984,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:992,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:992,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:993,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:993,1
    - Dst: vpmu_do_rdmsr
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1005,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1012,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1022,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1029,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1031,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1033,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1037,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 112
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 893
    functionDepth: 3
    functionLinenumber: 893
    functionLinenumberEnd: 1040
    functionName: read_msr
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 3
    functionsReached:
    - gdprintk
    - read_fs_base
    - is_cpufreq_controller
    - MSR_P6_EVNTSEL
    - x86_emul_reset_event
    - soft_rdtsc
    - read_gs_base
    - x86_emul_hw_exception
    - guest_rdmsr
    - guest_efer
    - rdtsc
    - guest_misc_enable
    - vpmu_do_rdmsr
    - gprintk
    - unlikely
    - MSR_P6_PERFCTR
    - rdmsr_safe
    - is_hwdom_pinned_vcpu
    linkageType: ''
    returnType: int
    signature: "int read_msr(\n    unsigned int reg, uint64_t *val, struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: guest_wrmsr
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1053,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1056,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1066,1
    - Dst: write_fs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1070,1
    - Dst: write_gs_base
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1072,1
    - Dst: write_gs_shadow
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1075,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1079,1
    - Dst: guest_efer
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1087,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1108,1
    - Dst: is_cpufreq_controller
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1108,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1109,1
    - Dst: is_hwdom_pinned_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1114,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1116,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1119,1
    - Dst: is_hwdom_pinned_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1127,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1129,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1140,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1145,1
    - Dst: guest_misc_enable
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1147,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1156,1
    - Dst: is_cpufreq_controller
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1156,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1157,1
    - Dst: is_hwdom_pinned_vcpu
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1165,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1165,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1169,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1169,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1170,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1170,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1182,1
    - Dst: vpmu_do_wrmsr
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1185,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1192,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1195,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1201,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 115
    argCount: 4
    argNames:
    - reg
    - val
    - ctxt
    - explicit
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1042
    functionDepth: 5
    functionLinenumber: 1042
    functionLinenumberEnd: 1208
    functionName: write_msr
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 2
    functionsReached:
    - wrmsr_safe
    - likely
    - write_gs_base
    - write_fs_base
    - is_cpufreq_controller
    - MSR_P6_PERFCTR
    - MSR_P6_EVNTSEL
    - is_canonical_address
    - is_hardware_domain
    - gdprintk
    - x86_emul_hw_exception
    - write_gs_shadow
    - guest_misc_enable
    - is_hwdom_pinned_vcpu
    - ASSERT_UNREACHABLE
    - guest_wrmsr
    - vpmu_do_wrmsr
    - guest_efer
    - rdmsr_safe
    linkageType: ''
    returnType: int
    signature: "int write_msr(\n    unsigned int reg, uint64_t val, struct x86_emulate_ctxt
      *ctxt,\n    bool explicit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1214,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1217,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1224,1
    - Dst: flush_all
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - op
    - seg
    - offset
    - ctxt
    argTypes:
    - enum x86emul_cache_op
    - enum x86_segment
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1229
    functionName: cache_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - flush_all
    - ASSERT
    - cache_flush_permitted
    linkageType: ''
    returnType: int
    signature: "int cache_op(\n    enum x86emul_cache_op op, enum x86_segment seg,\n
      \   unsigned long offset, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1239,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1240,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1241,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1242,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1243,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1244,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1245,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1246,1
    - Dst: iopl_ok
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1250,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1261,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1279
    functionName: validate
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 3
    functionsReached:
    - X86EMUL_OPC
    - iopl_ok
    - x86_insn_modrm
    linkageType: ''
    returnType: int
    signature: "int validate(\n    const struct x86_emulate_state *state, struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1286,1
    - Dst: pv_emul_virt_to_linear
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1294,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1299,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1311
    functionName: insn_fetch
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - pv_emul_virt_to_linear
    - x86_emul_pagefault
    - __copy_from_guest_pv
    - container_of
    linkageType: ''
    returnType: int
    signature: "int insn_fetch(\n    unsigned long offset, void *p_data, unsigned
      int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1340,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1348,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1356,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1357,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1361,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1367,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1370,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1377,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1385,1
    - Dst: pv_inject_DB
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1391,1
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1403
    functionName: pv_emulate_privileged_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 1
    functionsReached:
    - vcpu_info
    - unmap_domain_page
    - is_pv_32bit_domain
    - pv_inject_DB
    - pv_inject_event
    - ASSERT
    - pv_emul_read_descriptor
    - x86_emulate
    linkageType: ''
    returnType: int
    signature: int pv_emulate_privileged_op(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1421,1
    - Dst: pv_emul_read_descriptor
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1427,1
    - Dst: x86_decode_insn
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1434,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1435,1
    - Dst: x86_insn_length
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1438,1
    - Dst: x86_emulate_free_state
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1439,1
    - Dst: pv_inject_sw_interrupt
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1446,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-priv-op.c:1450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1451
    functionName: pv_emulate_sw_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    functionUses: 0
    functionsReached:
    - x86_decode_insn
    - is_pv_32bit_domain
    - pv_inject_sw_interrupt
    - x86_emulate_free_state
    - IS_ERR_OR_NULL
    - pv_emul_read_descriptor
    - pv_inject_hw_exception
    - x86_insn_length
    linkageType: ''
    returnType: void
    signature: void pv_emulate_sw_interrupt(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/mm.c:27,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/pv/mm.c:27,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/mm.c:28,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/pv/mm.c:28,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.c:30,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/pv/mm.c:30,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/pv/mm.c:34,1
    - Dst: l2_linear_offset
      Src: /src/xen/xen/arch/x86/pv/mm.c:34,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.c:38,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/mm.c:41,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/mm.c:43,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/pv/mm.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - linear
    - gl1mfn
    argTypes:
    - unsigned long
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: map_guest_l1e
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.c
    functionUses: 4
    functionsReached:
    - l2e_get_flags
    - map_domain_page
    - paging_mode_external
    - l2e_get_mfn
    - paging_mode_translate
    - ASSERT
    - get_unsafe
    - unlikely
    - l1_table_offset
    - l2_linear_offset
    - __addr_ok
    linkageType: ''
    returnType: l1_pgentry_t
    signature: l1_pgentry_t *map_guest_l1e(unsigned long linear, mfn_t *gl1mfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/mm.c:59,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/x86/pv/mm.c:59,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.c:67,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/mm.c:69,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/mm.c:73,1
    - Dst: guest_get_eff_kern_l1e
      Src: /src/xen/xen/arch/x86/pv/mm.c:76,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.c:77,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/mm.c:77,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/pv/mm.c:80,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/pv/mm.c:80,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.c:81,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/mm.c:84,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/pv/mm.c:84,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/mm.c:86,1
    - Dst: pv_ldt_ptes
      Src: /src/xen/xen/arch/x86/pv/mm.c:90,1
    - Dst: l1e_add_flags
      Src: /src/xen/xen/arch/x86/pv/mm.c:91,1
    - Dst: l1e_write
      Src: /src/xen/xen/arch/x86/pv/mm.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 51
    functionDepth: 6
    functionLinenumber: 51
    functionLinenumberEnd: 96
    functionName: pv_map_ldt_shadow_page
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.c
    functionUses: 1
    functionsReached:
    - l1e_get_flags
    - is_pv_32bit_domain
    - get_page_type
    - guest_get_eff_kern_l1e
    - l1e_get_pfn
    - get_page_from_gfn
    - l1e_write
    - BUG_ON
    - pv_ldt_ptes
    - l1e_add_flags
    - unlikely
    - put_page
    - in_irq
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool pv_map_ldt_shadow_page(unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/mm.c:101,1
    - Dst: COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
      Src: /src/xen/xen/arch/x86/pv/mm.c:101,1
    - Dst: COMPAT_L2_PAGETABLE_XEN_SLOTS
      Src: /src/xen/xen/arch/x86/pv/mm.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - l2t
    - d
    argTypes:
    - l2_pgentry_t*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: init_xen_pae_l2_slots
    functionSourceFile: /src/xen/xen/arch/x86/pv/mm.c
    functionUses: 1
    functionsReached:
    - memcpy
    - COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
    - COMPAT_L2_PAGETABLE_XEN_SLOTS
    linkageType: ''
    returnType: void
    signature: void init_xen_pae_l2_slots(l2_pgentry_t *l2t, const struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/pv/emulate.c:32,1
    - Dst: gdt_ldt_desc_ptr
      Src: /src/xen/xen/arch/x86/pv/emulate.c:32,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/emulate.c:54,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/emulate.c:58,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - sel
    - v
    - base
    - limit
    - ar
    - insn_fetch
    argTypes:
    - unsigned int
    - struct vcpu*
    - unsigned long*
    - unsigned long*
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 69
    functionName: pv_emul_read_descriptor
    functionSourceFile: /src/xen/xen/arch/x86/pv/emulate.c
    functionUses: 5
    functionsReached:
    - gdt_ldt_desc_ptr
    - get_unsafe
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int pv_emul_read_descriptor(unsigned int sel, const struct vcpu *v,\n
      \                           unsigned long *base, unsigned long *limit,\n                            unsigned
      int *ar, bool insn_fetch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_DB
      Src: /src/xen/xen/arch/x86/pv/emulate.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - regs
    - rip
    argTypes:
    - struct cpu_user_regs*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: pv_emul_instruction_done
    functionSourceFile: /src/xen/xen/arch/x86/pv/emulate.c
    functionUses: 1
    functionsReached:
    - pv_inject_DB
    linkageType: ''
    returnType: void
    signature: void pv_emul_instruction_done(struct cpu_user_regs *regs, unsigned
      long rip)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emulate.c:92,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/pv/emulate.c:92,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/emulate.c:100,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/emulate.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - v
    - reg
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: pv_get_reg
    functionSourceFile: /src/xen/xen/arch/x86/pv/emulate.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - domain_crash
    - printk
    - vcpu_runnable
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pv_get_reg(struct vcpu *v, unsigned int reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/emulate.c:112,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/pv/emulate.c:112,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/emulate.c:121,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/emulate.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - v
    - reg
    - val
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: pv_set_reg
    functionSourceFile: /src/xen/xen/arch/x86/pv/emulate.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - domain_crash
    - printk
    - vcpu_runnable
    linkageType: ''
    returnType: void
    signature: void pv_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_insn_is_mem_write
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: pv_emul_is_mem_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - x86_insn_is_mem_write
    linkageType: ''
    returnType: int
    signature: "int pv_emul_is_mem_write(\n    const struct x86_emulate_state *state,
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:41,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:42,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: ptwr_emulated_read
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest_pv
    - __addr_ok
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int ptwr_emulated_read(\n    enum x86_segment seg, unsigned long offset,
      void *p_data,\n    unsigned int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:55,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ptwr_emulated_insn_fetch
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - copy_from_guest_pv
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int ptwr_emulated_insn_fetch(\n    unsigned long offset, void *p_data,
      unsigned int bytes,\n    struct x86_emulate_ctxt *ctxt)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:86,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:89,1
    - Dst: copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:104,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:107,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:125,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:126,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:129,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:129,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:130,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:130,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:132,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:133,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:133,1
    - Dst: l1e_from_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:136,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:138,1
    - Dst: pv_l1tf_check_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:140,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:145,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:148,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:150,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:152,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:161,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:162,1
    - Dst: l1e_remove_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:163,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:170,1
    - Dst: l1e_flip_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:171,1
    - Dst: adjust_guest_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:176,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:179,1
    - Dst: l1e_from_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:182,1
    - Dst: paging_cmpxchg_guest_entry
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:183,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:183,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:184,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:185,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:195,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:196,1
    - Dst: UPDATE_ENTRY
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:203,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:204,1
    - Dst: trace_ptwr_emulation
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:207,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:209,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:212,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 5
    argNames:
    - addr
    - p_old
    - val
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - intpte_t*
    - intpte_t
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 215
    functionName: ptwr_emulated_update
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - paging_cmpxchg_guest_entry
    - mfn_to_page
    - x86_emul_pagefault
    - BUG
    - is_pv_32bit_domain
    - pv_l1tf_check_l1e
    - map_domain_page
    - get_page_from_l1e
    - copy_from_guest_pv
    - l1e_flip_flags
    - mfn_valid
    - l1e_get_flags
    - gdprintk
    - l1e_remove_flags
    - ASSERT
    - l1e_get_mfn
    - put_page_from_l1e
    - unmap_domain_page
    - UPDATE_ENTRY
    - trace_ptwr_emulation
    - page_get_owner
    - adjust_guest_l1e
    - unlikely
    - l1e_from_intpte
    linkageType: ''
    returnType: int
    signature: "int ptwr_emulated_update(unsigned long addr, intpte_t *p_old,\n                                intpte_t
      val, unsigned int bytes,\n                                struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:225,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:230,1
    - Dst: ptwr_emulated_update
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 4
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: ptwr_emulated_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - ptwr_emulated_update
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ptwr_emulated_write(\n    enum x86_segment seg, unsigned long
      offset, void *p_data,\n    unsigned int bytes, struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:244,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:249,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:250,1
    - Dst: p_new::p_new
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:250,1
    - Dst: ptwr_emulated_update
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:252,1
    - Dst: bytes::bytes
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:252,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - seg
    - offset
    - p_old
    - p_new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: ptwr_emulated_cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - p_new::p_new
    - bytes::bytes
    - ptwr_emulated_update
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ptwr_emulated_cmpxchg(\n    enum x86_segment seg, unsigned long
      offset, void *p_old, void *p_new,\n    unsigned int bytes, bool lock, struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:278,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:278,1
    - Dst: page_lock
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:282,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:287,1
    - Dst: page_unlock
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:290,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctxt
    - addr
    - pte
    argTypes:
    - struct x86_emulate_ctxt*
    - unsigned long
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 296
    functionName: ptwr_do_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - page_lock
    - x86_emulate
    - l1e_get_mfn
    - put_page
    - get_page_from_mfn
    - page_unlock
    linkageType: ''
    returnType: int
    signature: "int ptwr_do_page_fault(struct x86_emulate_ctxt *ctxt,\n                              unsigned
      long addr, l1_pgentry_t pte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:326,1
    - Dst: pci_conf_write_intercept
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:332,1
    - Dst: pci_mmcfg_write
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:334,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:334,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 339
    functionName: mmcfg_intercept_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - PCI_BUS
    - pci_mmcfg_write
    - PCI_DEVFN
    - pci_conf_write_intercept
    linkageType: ''
    returnType: int
    signature: "int mmcfg_intercept_write(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:355,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:362,1
    - Dst: subpage_mmio_write_emulate
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:363,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:363,1
    - Dst: subpage_mmio_find_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:366,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:367,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:369,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 372
    functionName: mmio_ro_emulated_write
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - mfn_x
    - subpage_mmio_find_page
    - gprintk
    - PAGE_OFFSET
    - subpage_mmio_write_emulate
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int mmio_ro_emulated_write(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:393,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:395,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:397,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:398,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:401,1
    - Dst: pci_ro_mmcfg_decode
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:407,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:407,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:408,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctxt
    - addr
    - pte
    argTypes:
    - struct x86_emulate_ctxt*
    - unsigned long
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 413
    functionName: mmio_ro_do_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 0
    functionsReached:
    - pci_ro_mmcfg_decode
    - mfn_to_page
    - page_get_owner_and_reference
    - mfn_x
    - mfn_valid
    - x86_emulate
    - l1e_get_mfn
    - put_page
    linkageType: ''
    returnType: int
    signature: "int mmio_ro_do_page_fault(struct x86_emulate_ctxt *ctxt,\n                                 unsigned
      long addr, l1_pgentry_t pte)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:419,1
    - Dst: guest_get_eff_kern_l1e
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:433,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:436,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:439,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:440,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:440,1
    - Dst: mmio_ro_do_page_fault
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:442,1
    - Dst: ptwr_do_page_fault
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:444,1
    - Dst: pv_inject_event
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:459,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:461,1
    - Dst: pv_inject_DB
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:468,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:473,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/pv/ro-page-fault.c:475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - addr
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 415
    functionDepth: 6
    functionLinenumber: 415
    functionLinenumberEnd: 480
    functionName: pv_ro_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    functionUses: 1
    functionsReached:
    - l1e_get_flags
    - perfc_incr
    - ptwr_do_page_fault
    - is_pv_32bit_domain
    - gdprintk
    - pv_inject_DB
    - guest_get_eff_kern_l1e
    - l1e_get_pfn
    - pv_inject_event
    - rangeset_contains_singleton
    - mmio_ro_do_page_fault
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int pv_ro_page_fault(unsigned long addr, struct cpu_user_regs *regs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/traps.c:26,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/traps.c:33,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/traps.c:36,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/traps.c:41,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/traps.c:45,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/traps.c:47,1
    - Dst: arch_set_cr2
      Src: /src/xen/xen/arch/x86/pv/traps.c:60,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/traps.c:64,1
    - Dst: trace_pv_page_fault
      Src: /src/xen/xen/arch/x86/pv/traps.c:67,1
    - Dst: x86_merge_dr6
      Src: /src/xen/xen/arch/x86/pv/traps.c:71,1
    - Dst: trace_pv_trap
      Src: /src/xen/xen/arch/x86/pv/traps.c:75,1
    - Dst: TI_GET_IF
      Src: /src/xen/xen/arch/x86/pv/traps.c:85,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/traps.c:88,1
    - Dst: null_trap_bounce
      Src: /src/xen/xen/arch/x86/pv/traps.c:88,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/traps.c:90,1
    - Dst: vector_name
      Src: /src/xen/xen/arch/x86/pv/traps.c:92,1
    - Dst: show_page_walk
      Src: /src/xen/xen/arch/x86/pv/traps.c:95,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct x86_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 97
    functionName: pv_inject_event
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 7
    functionsReached:
    - guest_cpu_user_regs
    - unlikely
    - trace_pv_page_fault
    - show_page_walk
    - null_trap_bounce
    - guest_kernel_mode
    - ASSERT
    - gprintk
    - vector_name
    - arch_set_cr2
    - x86_merge_dr6
    - TI_GET_IF
    - trace_pv_trap
    linkageType: ''
    returnType: void
    signature: void pv_inject_event(const struct x86_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/traps.c:108,1
    - Dst: null_trap_bounce
      Src: /src/xen/xen/arch/x86/pv/traps.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: set_guest_machinecheck_trapbounce
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 0
    functionsReached:
    - null_trap_bounce
    - pv_inject_hw_exception
    linkageType: ''
    returnType: bool
    signature: bool set_guest_machinecheck_trapbounce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/traps.c:123,1
    - Dst: null_trap_bounce
      Src: /src/xen/xen/arch/x86/pv/traps.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: set_guest_nmi_trapbounce
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 0
    functionsReached:
    - null_trap_bounce
    - pv_inject_hw_exception
    linkageType: ''
    returnType: bool
    signature: bool set_guest_nmi_trapbounce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/pv/traps.c:133,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/traps.c:135,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/pv/traps.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 143
    functionName: nmi_softirq
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - vcpu_kick
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void nmi_softirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_softirq
      Src: /src/xen/xen/arch/x86/pv/traps.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: pv_trap_init
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 0
    functionsReached:
    - open_softirq
    linkageType: ''
    returnType: int
    signature: int pv_trap_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/pv/traps.c:159,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/pv/traps.c:159,1
    - Dst: cmpxchgptr
      Src: /src/xen/xen/arch/x86/pv/traps.c:161,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/pv/traps.c:163,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/pv/traps.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: pv_raise_nmi
    functionSourceFile: /src/xen/xen/arch/x86/pv/traps.c
    functionUses: 1
    functionsReached:
    - test_and_set_bool
    - raise_softirq
    - smp_processor_id
    - cmpxchgptr
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int pv_raise_nmi(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:25,1
    - Dst: pv_inject_page_fault
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:27,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:30,1
    - Dst: copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:35,1
    - Dst: pv_inject_page_fault
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:38,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:41,1
    - Dst: guest_kernel_mode
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:46,1
    - Dst: pv_inject_hw_exception
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:49,1
    - Dst: guest_cpuid
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:55,1
    - Dst: pv_emul_instruction_done
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:62,1
    - Dst: trace_trap_one_addr
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 67
    functionName: emulate_forced_invalid_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-inv-op.c
    functionUses: 0
    functionsReached:
    - pv_inject_page_fault
    - memcmp
    - copy_from_guest_pv
    - guest_kernel_mode
    - trace_trap_one_addr
    - pv_emul_instruction_done
    - pv_inject_hw_exception
    - guest_cpuid
    linkageType: ''
    returnType: int
    signature: int emulate_forced_invalid_op(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emulate_forced_invalid_op
      Src: /src/xen/xen/arch/x86/pv/emul-inv-op.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: pv_emulate_invalid_op
    functionSourceFile: /src/xen/xen/arch/x86/pv/emul-inv-op.c
    functionUses: 1
    functionsReached:
    - emulate_forced_invalid_op
    linkageType: ''
    returnType: bool
    signature: bool pv_emulate_invalid_op(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - compat
    - pfn
    - mfn
    - vphysmap_s
    argTypes:
    - bool
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: dom0_update_physmap
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 1
    functionsReached:
    - set_gpfn_from_mfn
    linkageType: ''
    returnType: void
    signature: "void dom0_update_physmap(bool compat, unsigned long pfn,\n                                unsigned
      long mfn, unsigned long vphysmap_s)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:54,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:55,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:55,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:56,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:56,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:57,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:57,1
    - Dst: l1e_remove_flags
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:61,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:62,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:62,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:71,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:72,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:73,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:79,1
    - Dst: iommu_unmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:80,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:80,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:80,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:80,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:81,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:89,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:104,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:105,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:107,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:108,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:110,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:111,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:114,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:115,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - d
    - l4start
    - vpt_start
    - nr_pt_pages
    - flush_flags
    argTypes:
    - struct domain*
    - l4_pgentry_t*
    - unsigned long
    - unsigned long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 117
    functionName: mark_pv_pt_pages_rdonly
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - need_iommu_pt_sync
    - _dfn
    - BUG
    - page_to_mfn
    - is_pv_32bit_domain
    - l3_table_offset
    - l1_table_offset
    - l4_table_offset
    - map_l3t_from_l4e
    - mfn_x
    - iommu_unmap
    - l1e_remove_flags
    - ASSERT
    - l1e_get_mfn
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - l2_table_offset
    linkageType: ''
    returnType: __init
    signature: "__init mark_pv_pt_pages_rdonly(struct domain *d,\n                                           l4_pgentry_t
      *l4start,\n                                           unsigned long vpt_start,\n
      \                                          unsigned long nr_pt_pages,\n                                           unsigned
      int *flush_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:124,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:126,1
    - Dst: iommu_map
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:129,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:129,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:129,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:133,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:138,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:141,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:145,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:147,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:147,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - d
    - what
    - page
    - nr
    - flush_flags
    argTypes:
    - struct domain*
    - char*
    - struct page_info*
    - unsigned long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 161
    functionName: iommu_memory_setup
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - need_iommu_pt_sync
    - mfn_x
    - mfn_add
    - ASSERT
    - process_pending_softirqs
    - printk
    - iommu_map
    - _dfn
    linkageType: ''
    returnType: void
    signature: "void iommu_memory_setup(struct domain *d, const char *what,\n                                      struct
      page_info *page, unsigned long nr,\n                                      unsigned
      int *flush_flags)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:171,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:171,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:177,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:181,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:182,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:184,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:188,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:193,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:198,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:201,1
    - Dst: l4e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:202,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:204,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:211,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:212,1
    - Dst: l4e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:213,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:215,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:217,1
    - Dst: l3e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:218,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:226,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:230,1
    - Dst: iommu_memory_setup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:234,1
    - Dst: l3e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:238,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:242,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:248,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:249,1
    - Dst: l3e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:250,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:253,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:255,1
    - Dst: l2e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:256,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:260,1
    - Dst: iommu_memory_setup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:264,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:267,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:271,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:277,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:278,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:279,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:282,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:284,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:285,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:285,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:286,1
    - Dst: l1e_from_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:290,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:295,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:298,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:300,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:302,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:304,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 8
    argNames:
    - d
    - pgtbl_pfn
    - v_start
    - v_end
    - vphysmap_start
    - vphysmap_end
    - nr_pages
    - flush_flags
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 305
    functionName: setup_pv_physmap
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - alloc_domheap_page
    - IS_ENABLED
    - round_pgup
    - alloc_domheap_pages
    - l3e_from_page
    - map_domain_page
    - l3_table_offset
    - BUG_ON
    - l1_table_offset
    - panic
    - l4_table_offset
    - l4e_from_page
    - _mfn
    - map_l3t_from_l4e
    - l1e_from_page
    - __map_domain_page
    - l4e_get_intpte
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - l2e_from_page
    - clear_page
    - l3e_get_intpte
    - domain_tot_pages
    - l2_table_offset
    - l2e_get_intpte
    - iommu_memory_setup
    linkageType: ''
    returnType: __init
    signature: "__init setup_pv_physmap(struct domain *d, unsigned long pgtbl_pfn,\n
      \                                   unsigned long v_start, unsigned long v_end,\n
      \                                   unsigned long vphysmap_start,\n                                    unsigned
      long vphysmap_end,\n                                    unsigned long nr_pages,\n
      \                                   unsigned int *flush_flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:312,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:318,1
    - Dst: alloc_chunk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:332,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:343,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:345,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:348,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:353,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 2
    argNames:
    - d
    - max_pages
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 356
    functionName: alloc_chunk
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 1
    functionsReached:
    - get_order_from_pages
    - free_domheap_pages
    - domain_tot_pages
    - alloc_chunk
    - alloc_domheap_pages
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info * __init alloc_chunk(struct domain *d,\n                                             unsigned
      long max_pages)"
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:418,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:421,1
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:423,1
    - Dst: bzimage_parse
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:429,1
    - Dst: elf_init
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:432,1
    - Dst: elf_set_verbose
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:436,1
    - Dst: elf_parse_binary
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:438,1
    - Dst: elf_xen_parse
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:439,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:443,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:444,1
    - Dst: elf_uval
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:446,1
    - Dst: elf_32bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:448,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:455,1
    - Dst: switch_compat
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:455,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:457,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:464,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:469,1
    - Dst: elf_64bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:471,1
    - Dst: elf_msb
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:479,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:482,1
    - Dst: elf_64bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:483,1
    - Dst: elf_32bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:483,1
    - Dst: elf_msb
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:485,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:488,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:493,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:499,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:501,1
    - Dst: dom0_compute_nr_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:506,1
    - Dst: elf_32bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:509,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:512,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:516,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:521,1
    - Dst: max_t
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:525,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:530,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:549,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:553,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:555,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:562,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:567,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:575,1
    - Dst: NR
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:591,1
    - Dst: NR
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:593,1
    - Dst: NR
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:595,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:602,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:603,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:604,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:605,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:612,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:614,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:615,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:617,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:618,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:618,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:619,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:625,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:626,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:628,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:634,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:635,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:637,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:641,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:644,1
    - Dst: page_to_virt
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:644,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:644,1
    - Dst: release_boot_module
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:650,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:651,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:651,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:652,1
    - Dst: assign_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:658,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:658,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:658,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:659,1
    - Dst: iommu_memory_setup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:668,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:668,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:668,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:669,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:672,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:674,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:674,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:675,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:676,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:677,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:681,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:685,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:686,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:686,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:686,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:688,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:688,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:688,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:689,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:689,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:689,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:690,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:690,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:690,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:693,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:693,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:693,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:694,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:694,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:694,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:696,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:696,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:696,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:697,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:697,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:697,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:698,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:698,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:698,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:699,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:699,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:701,1
    - Dst: iommu_memory_setup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:707,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:707,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:707,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:710,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:712,1
    - Dst: HYPERVISOR_COMPAT_VIRT_START
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:716,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:719,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:731,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:732,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:733,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:734,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:734,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:734,1
    - Dst: pagetable_from_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:736,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:736,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:741,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:741,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:743,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:744,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:747,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:753,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:754,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:755,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:757,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:760,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:761,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:762,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:764,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:769,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:771,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:774,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:776,1
    - Dst: l4e_from_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:777,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:777,1
    - Dst: l3e_from_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:780,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:780,1
    - Dst: l2e_from_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:783,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:783,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:786,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:790,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:793,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:793,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:796,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:797,1
    - Dst: l3e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:807,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:809,1
    - Dst: __va
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:810,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:811,1
    - Dst: l3e_from_paddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:812,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:812,1
    - Dst: l3e_get_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:815,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:818,1
    - Dst: init_xen_pae_l2_slots
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:819,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:820,1
    - Dst: mark_pv_pt_pages_rdonly
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:824,1
    - Dst: shared_info
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:828,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:830,1
    - Dst: sched_setup_dom0_vcpus
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:832,1
    - Dst: update_cr3
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:837,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:840,1
    - Dst: cr3_pa
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:840,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:840,1
    - Dst: mapcache_override_current
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:841,1
    - Dst: elf_set_vcpu
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:846,1
    - Dst: elf_load_binary
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:847,1
    - Dst: mapcache_override_current
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:850,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:851,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:851,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:852,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:855,1
    - Dst: mapcache_override_current
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:862,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:863,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:863,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:864,1
    - Dst: init_hypercall_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:867,1
    - Dst: _p
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:867,1
    - Dst: free_boot_modules
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:871,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:875,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:878,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:884,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:888,1
    - Dst: elf_64bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:889,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:891,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:896,1
    - Dst: setup_pv_physmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:897,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:907,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:908,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:910,1
    - Dst: dom0_update_physmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:917,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:919,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:922,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:923,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:925,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:925,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:926,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:928,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:932,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:933,1
    - Dst: dom0_update_physmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:935,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:938,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:941,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:941,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:943,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:947,1
    - Dst: alloc_chunk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:948,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:949,1
    - Dst: iommu_memory_setup
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:951,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:951,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:953,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:955,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:955,1
    - Dst: dom0_update_physmap
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:959,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:963,1
    - Dst: iommu_iotlb_flush_all
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:968,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:977,1
    - Dst: strlcpy
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:979,1
    - Dst: fill_console_start_info
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:982,1
    - Dst: pv_shim_setup_dom
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:994,1
    - Dst: xlat_start_info
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:999,1
    - Dst: mapcache_override_current
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1004,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1005,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1005,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1007,1
    - Dst: pv_destroy_gdt
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1034,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1036,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1037,1
    - Dst: dom0_setup_permissions
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1039,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1040,1
    - Dst: iommu_hwdom_init
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1043,1
    - Dst: dom0_paging_pages
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1051,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1055,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1056,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1063,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1064,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1069,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1072,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1073,1
    - Dst: elf_check_broken
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1073,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 405
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 1076
    functionName: dom0_construct
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 0
    functionsReached:
    - __pa
    - pagetable_from_paddr
    - free_domheap_pages
    - IS_ENABLED
    - l1e_from_pfn
    - _p
    - alloc_domheap_pages
    - get_page_and_type
    - elf_load_binary
    - tasklet_schedule
    - is_pv_32bit_domain
    - iommu_hwdom_init
    - bzimage_parse
    - page_list_for_each
    - bootstrap_map_bm
    - printk
    - test_bit
    - VM_ASSIST
    - panic
    - release_boot_module
    - l4_table_offset
    - PAGE_ALIGN
    - l4e_from_paddr
    - get_order_from_bytes
    - map_l2t_from_l3e
    - clear_page
    - shared_info
    - l2_table_offset
    - update_domain_wallclock_time
    - unlikely
    - pagetable_get_pfn
    - switch_compat
    - elf_parse_binary
    - free_boot_modules
    - PFN_UP
    - init_hypercall_page
    - fill_console_start_info
    - round_pgup
    - get_gpfn_from_mfn
    - read_cr4
    - elf_32bit
    - BUG_ON
    - iommu_iotlb_flush_all
    - xlat_start_info
    - elf_init
    - MEMF_bits
    - switch_cr3_cr4
    - mfn_x
    - mapcache_override_current
    - strlcpy
    - sched_setup_dom0_vcpus
    - l2e_from_paddr
    - max_t
    - clear_bit
    - mark_pv_pt_pages_rdonly
    - dom0_setup_permissions
    - bootstrap_unmap
    - l3e_get_page
    - domain_tot_pages
    - pfn_to_paddr
    - assign_pages
    - memcpy
    - snprintf
    - ROUNDUP
    - virt_to_mfn
    - update_cr3
    - get_order_from_pages
    - maddr_to_page
    - elf_xen_parse
    - __set_bit
    - page_to_mfn
    - __va
    - init_xen_l4_slots
    - l1_table_offset
    - elf_64bit
    - memset
    - unmap_domain_page
    - cr3_pa
    - shadow_set_allocation
    - elf_set_vcpu
    - l3e_from_paddr
    - l3e_get_intpte
    - dom0_compute_nr_pages
    - mfn_to_page
    - elf_msb
    - setup_pv_physmap
    - paddr_to_pfn
    - elf_set_verbose
    - alloc_chunk
    - dom0_paging_pages
    - elf_uval
    - pagetable_get_paddr
    - BUG
    - MASK_INSR
    - HYPERVISOR_COMPAT_VIRT_START
    - l3_table_offset
    - pv_shim_setup_dom
    - dom0_update_physmap
    - _mfn
    - page_to_virt
    - process_pending_softirqs
    - pv_destroy_gdt
    - NR
    - elf_check_broken
    - init_xen_pae_l2_slots
    - virt_to_maddr
    - iommu_memory_setup
    linkageType: ''
    returnType: int
    signature: int dom0_construct(const struct boot_domain *bd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _l
    - ','
    - _h
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: NR
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NR(_l,_h,_s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1080,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1090,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1093,1
    - Dst: dom0_construct
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1096,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1100,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/pv/dom0_build.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1078
    functionDepth: 4
    functionLinenumber: 1078
    functionLinenumberEnd: 1107
    functionName: dom0_construct_pv
    functionSourceFile: /src/xen/xen/arch/x86/pv/dom0_build.c
    functionUses: 1
    functionsReached:
    - write_cr4
    - read_cr4
    - dom0_construct
    - IS_ENABLED
    linkageType: ''
    returnType: int
    signature: int dom0_construct_pv(const struct boot_domain *bd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/trace.c:8,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:22,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - trapnr
    - eip
    - use_error_code
    - error_code
    argTypes:
    - int
    - unsigned long
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 40
    functionName: __trace_pv_trap
    functionSourceFile: /src/xen/xen/arch/x86/pv/trace.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_vcpu
    - trace_time
    linkageType: ''
    returnType: void
    signature: "void __trace_pv_trap(int trapnr, unsigned long eip,\n                     int
      use_error_code, unsigned error_code)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/trace.c:44,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/trace.c:46,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:56,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - error_code
    argTypes:
    - unsigned long
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 71
    functionName: __trace_pv_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/pv/trace.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - is_pv_32bit_vcpu
    - trace_time
    linkageType: ''
    returnType: void
    signature: void __trace_pv_page_fault(unsigned long addr, unsigned error_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/trace.c:75,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:79,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - event
    - va
    argTypes:
    - unsigned
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: __trace_trap_one_addr
    functionSourceFile: /src/xen/xen/arch/x86/pv/trace.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_vcpu
    - trace_time
    linkageType: ''
    returnType: void
    signature: void __trace_trap_one_addr(unsigned event, unsigned long va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/trace.c:88,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:97,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - event
    - va1
    - va2
    argTypes:
    - unsigned
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: __trace_trap_two_addr
    functionSourceFile: /src/xen/xen/arch/x86/pv/trace.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_vcpu
    - trace_time
    linkageType: ''
    returnType: void
    signature: "void __trace_trap_two_addr(unsigned event, unsigned long va1,\n                           unsigned
      long va2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/trace.c:114,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/pv/trace.c:116,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/trace.c:122,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:127,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/pv/trace.c:135,1
    - Dst: trace_time
      Src: /src/xen/xen/arch/x86/pv/trace.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - addr
    - npte
    argTypes:
    - unsigned long
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: __trace_ptwr_emulation
    functionSourceFile: /src/xen/xen/arch/x86/pv/trace.c
    functionUses: 1
    functionsReached:
    - l1e_get_intpte
    - guest_cpu_user_regs
    - is_pv_32bit_vcpu
    - trace_time
    linkageType: ''
    returnType: void
    signature: void __trace_ptwr_emulation(unsigned long addr, l1_pgentry_t npte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __scanbit
      Src: /src/xen/xen/arch/x86/pv/iret.c:35,1
    - Dst: struct vcpu*::arch::async_exception_state
      Src: /src/xen/xen/arch/x86/pv/iret.c:39,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:41,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/pv/iret.c:43,1
    - Dst: struct vcpu*::arch::async_exception_state
      Src: /src/xen/xen/arch/x86/pv/iret.c:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - curr
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: async_exception_cleanup
    functionSourceFile: /src/xen/xen/arch/x86/pv/iret.c
    functionUses: 0
    functionsReached:
    - __scanbit
    - ASSERT_UNREACHABLE
    - struct vcpu*::arch::async_exception_state
    - unlikely
    linkageType: ''
    returnType: void
    signature: void async_exception_cleanup(struct vcpu *curr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/iret.c:54,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:58,1
    - Dst: copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/pv/iret.c:58,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/iret.c:61,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:69,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/pv/iret.c:69,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/pv/iret.c:71,1
    - Dst: toggle_guest_mode
      Src: /src/xen/xen/arch/x86/pv/iret.c:75,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/pv/iret.c:78,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/pv/iret.c:96,1
    - Dst: async_exception_cleanup
      Src: /src/xen/xen/arch/x86/pv/iret.c:98,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 106
    functionName: do_iret
    functionSourceFile: /src/xen/xen/arch/x86/pv/iret.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - guest_cpu_user_regs
    - async_exception_cleanup
    - toggle_guest_mode
    - copy_from_guest_pv
    - pagetable_is_null
    - gprintk
    - unlikely
    - domain_crash
    - VM_ASSIST
    linkageType: ''
    returnType: long
    signature: long do_iret(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/pv/iret.c:111,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:119,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:119,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:121,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:126,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:126,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:127,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:127,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:129,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:137,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:137,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:139,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/pv/iret.c:143,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:148,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/pv/iret.c:163,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:169,1
    - Dst: __put_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:170,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:177,1
    - Dst: __put_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:178,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:183,1
    - Dst: TI_GET_IF
      Src: /src/xen/xen/arch/x86/pv/iret.c:190,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:194,1
    - Dst: __put_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:194,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:196,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/pv/iret.c:202,1
    - Dst: ring_0
      Src: /src/xen/xen/arch/x86/pv/iret.c:202,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:204,1
    - Dst: ring_1
      Src: /src/xen/xen/arch/x86/pv/iret.c:207,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:210,1
    - Dst: __get_guest
      Src: /src/xen/xen/arch/x86/pv/iret.c:211,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/pv/iret.c:213,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/x86/pv/iret.c:218,1
    - Dst: async_exception_cleanup
      Src: /src/xen/xen/arch/x86/pv/iret.c:220,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 227
    functionName: compat_iret
    functionSourceFile: /src/xen/xen/arch/x86/pv/iret.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - guest_cpu_user_regs
    - gdprintk
    - async_exception_cleanup
    - ring_1
    - __get_guest
    - __put_guest
    - ring_0
    - unlikely
    - domain_crash
    - VM_ASSIST
    - TI_GET_IF
    linkageType: ''
    returnType: int
    signature: int compat_iret(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/genapic/bigsmp.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dmi_system_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: force_bigsmp
    functionSourceFile: /src/xen/xen/arch/x86/genapic/bigsmp.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int force_bigsmp(const struct dmi_system_id *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/genapic/bigsmp.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: probe_bigsmp
    functionSourceFile: /src/xen/xen/arch/x86/genapic/bigsmp.c
    functionUses: 0
    functionsReached:
    - dmi_check_system
    linkageType: ''
    returnType: int
    signature: int probe_bigsmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:18,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:19,1
    - Dst: SET_xAPIC_LOGICAL_ID
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:20,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:20,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: init_apic_ldr_flat
    functionSourceFile: /src/xen/xen/arch/x86/genapic/delivery.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - apic_read
    - apic_write
    - SET_xAPIC_LOGICAL_ID
    linkageType: ''
    returnType: void
    signature: void init_apic_ldr_flat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: init_apic_ldr_phys
    functionSourceFile: /src/xen/xen/arch/x86/genapic/delivery.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_apic_ldr_phys(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:36,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/x86/genapic/delivery.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpumask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: cpu_mask_to_apicid
    functionSourceFile: /src/xen/xen/arch/x86/genapic/delivery.c
    functionUses: 6
    functionsReached:
    - cpu_physical_id
    - cpumask_any
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpu_mask_to_apicid(const cpumask_t *cpumask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: probe
      Src: /src/xen/xen/arch/x86/genapic/probe.c:37,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/genapic/probe.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: generic_bigsmp_probe
    functionSourceFile: /src/xen/xen/arch/x86/genapic/probe.c
    functionUses: 1
    functionsReached:
    - probe
    - printk
    linkageType: ''
    returnType: void
    signature: void generic_bigsmp_probe(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/genapic/probe.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: genapic_apic_force
    functionSourceFile: /src/xen/xen/arch/x86/genapic/probe.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int genapic_apic_force(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: record_boot_APIC_mode
      Src: /src/xen/xen/arch/x86/genapic/probe.c:62,1
    - Dst: check_x2apic_preenabled
      Src: /src/xen/xen/arch/x86/genapic/probe.c:64,1
    - Dst: probe
      Src: /src/xen/xen/arch/x86/genapic/probe.c:69,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/probe.c:73,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/genapic/probe.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: generic_apic_probe
    functionSourceFile: /src/xen/xen/arch/x86/genapic/probe.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - printk
    - check_x2apic_preenabled
    - probe
    - record_boot_APIC_mode
    linkageType: ''
    returnType: void
    signature: void generic_apic_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: x2apic_cluster
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void x2apic_cluster(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:32,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:34,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:34,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:36,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:38,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:38,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:38,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:42,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:53,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:54,1
    - Dst: x2apic_cluster
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:55,1
    - Dst: x2apic_cluster
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:55,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:57,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:57,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:60,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:63,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: init_apic_ldr_x2apic_cluster
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - x2apic_cluster
    - smp_processor_id
    - BUG_ON
    - ASSERT
    - apic_read
    - per_cpu
    - cpumask_set_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void init_apic_ldr_x2apic_cluster(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:53,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:54,1
    - Dst: x2apic_cluster
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:55,1
    - Dst: x2apic_cluster
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:55,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:57,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    - per_cpu
    - x2apic_cluster
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vector
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: send_IPI_self_x2apic
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - apic_wrmsr
    linkageType: ''
    returnType: void
    signature: void send_IPI_self_x2apic(uint8_t vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:88,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:90,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:94,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:94,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:96,1
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:99,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cpumask
    - vector
    argTypes:
    - cpumask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 103
    functionName: send_IPI_mask_x2apic_phys
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - cpu_online
    - apic_wrmsr
    - smp_processor_id
    - cpu_physical_id
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: "void send_IPI_mask_x2apic_phys(\n    const cpumask_t *cpumask, int
      vector)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:94,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:94,1
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:96,1
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 8
    functionsReached:
    - cpu_online
    - smp_processor_id
    - cpu_physical_id
    - apic_wrmsr
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu, cpumask )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:108,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:109,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:113,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:115,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:117,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:117,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:119,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:119,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:120,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:124,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:124,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:127,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:129,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:132,1
    - Dst: apic_wrmsr
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:135,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - cpumask
    - vector
    argTypes:
    - cpumask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 139
    functionName: send_IPI_mask_x2apic_cluster
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - apic_wrmsr
    - cpumask_empty
    - smp_processor_id
    - cpumask_andnot
    - BUG_ON
    - cpumask_first
    - per_cpu
    - cpumask_of
    - local_irq_restore
    - local_irq_save
    - cpumask_and
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: "void send_IPI_mask_x2apic_cluster(\n    const cpumask_t *cpumask,
      int vector)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:127,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 8
    functionsReached:
    - per_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu, cluster_cpus )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:177,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:179,1
    - Dst: cond_alloc_cpumask_var
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:181,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:181,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:190,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:192,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:192,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:193,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:193,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:194,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:194,1
    - Dst: FREE_CPUMASK_VAR
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:196,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:196,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 201
    functionName: update_clusterinfo
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - cpumask_empty
    - notifier_from_errno
    - cond_alloc_cpumask_var
    - XFREE
    - FREE_CPUMASK_VAR
    - per_cpu
    - cpumask_clear_cpu
    linkageType: ''
    returnType: int
    signature: "int update_clusterinfo(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:216,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: parse_x2apic_mode
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    linkageType: ''
    returnType: int
    signature: int parse_x2apic_mode(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:237,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:241,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:242,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:249,1
    - Dst: update_clusterinfo
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:251,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:252,1
    - Dst: init_apic_ldr_x2apic_cluster
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:253,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 227
    functionDepth: 4
    functionLinenumber: 227
    functionLinenumberEnd: 258
    functionName: apic_x2apic_probe
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 1
    functionsReached:
    - update_clusterinfo
    - init_apic_ldr_x2apic_cluster
    - smp_processor_id
    - IS_ENABLED
    - register_cpu_notifier
    - printk
    - this_cpu
    linkageType: ''
    returnType: struct genapic
    signature: struct genapic *__init apic_x2apic_probe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:266,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:268,1
    - Dst: apic_x2apic_probe
      Src: /src/xen/xen/arch/x86/genapic/x2apic.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 260
    functionDepth: 5
    functionLinenumber: 260
    functionLinenumberEnd: 272
    functionName: check_x2apic_preenabled
    functionSourceFile: /src/xen/xen/arch/x86/genapic/x2apic.c
    functionUses: 1
    functionsReached:
    - apic_x2apic_probe
    - rdmsr
    - printk
    linkageType: ''
    returnType: void
    signature: void check_x2apic_preenabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - enum x86_segment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: is_x86_user_segment
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x86_user_segment(enum x86_segment seg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - enum x86_segment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: is_x86_system_segment
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_x86_system_segment(enum x86_segment seg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcid
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: x86emul_invpcid_aux
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int x86emul_invpcid_aux(unsigned int pcid,\n                                            unsigned
      int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aux
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: x86emul_invpcid_pcid
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86emul_invpcid_pcid(unsigned int aux)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aux
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: x86emul_invpcid_type
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86emul_invpcid_type(unsigned int aux)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: X86EMUL_OPC
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 632
    functionName: X86EMUL_OPC_66
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_66(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 633
    functionName: X86EMUL_OPC_F3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_F3(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: X86EMUL_OPC_F2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_F2(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: X86EMUL_OPC_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_VEX(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: X86EMUL_OPC_VEX_66
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_VEX_66(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 644
    functionName: X86EMUL_OPC_VEX_F3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_VEX_F3(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: X86EMUL_OPC_VEX_F2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_VEX_F2(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: X86EMUL_OPC_EVEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_EVEX(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 651
    functionName: X86EMUL_OPC_EVEX_66
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_EVEX_66(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: X86EMUL_OPC_EVEX_F3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_EVEX_F3(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 655
    functionName: X86EMUL_OPC_EVEX_F2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_EVEX_F2(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 657
    functionName: X86EMUL_OPC_XOP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_XOP(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 658
    functionName: X86EMUL_OPC_XOP_66
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_XOP_66(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: X86EMUL_OPC_XOP_F3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_XOP_F3(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ext
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 660
    functionName: X86EMUL_OPC_XOP_F2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X86EMUL_OPC_XOP_F2(ext, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 698
    functionName: array_access_nospec
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_access_nospec(arr, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:711,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:711,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:712,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - regs
    - modrm
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: decode_gpr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 4
    functionsReached:
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long *decode_gpr(struct cpu_user_regs *regs,\n                                        unsigned
      int modrm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct x86_emulate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 769
    functionName: x86_emulate_free_state
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x86_emulate_free_state(struct x86_emulate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - vector
    - error_code
    - ctxt
    argTypes:
    - unsigned int
    - int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 817
    functionName: x86_emul_hw_exception
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 19
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void x86_emul_hw_exception(\n    unsigned int vector, int error_code,
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - error_code
    - cr2
    - ctxt
    argTypes:
    - int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 830
    functionName: x86_emul_pagefault
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 13
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void x86_emul_pagefault(\n    int error_code, unsigned long cr2, struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 836
    functionName: x86_emul_reset_event
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x86_emul_reset_event(struct x86_emulate_ctxt *ctxt)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:48,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:51,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:57,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:63,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:73,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:80,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:149,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:155,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:163,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:166,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:186,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:193,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:233,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:242,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:247,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:259,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:260,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:261,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:276,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:276,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:278,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:280,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:293,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:294,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:295,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:299,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:309,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:345,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:358,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/blk.c:364,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 173
    argCount: 6
    argNames:
    - ptr
    - data
    - bytes
    - eflags
    - s
    - ctxt
    argTypes:
    - void*
    - void*
    - unsigned int
    - uint32_t*
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 371
    functionName: x86_emul_blk
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/blk.c
    functionUses: 2
    functionsReached:
    - generate_exception_if
    - ASM_FLAG_OUT
    - ASSERT
    - min
    - memset
    - ASSERT_UNREACHABLE
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int x86_emul_blk(\n    void *ptr,\n    void *data,\n    unsigned int
      bytes,\n    uint32_t *eflags,\n    struct x86_emulate_state *s,\n    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct x86_emulate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: x86_emulate_free_state
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 5
    functionsReached:
    - check_state
    linkageType: ''
    returnType: void
    signature: void x86_emulate_free_state(struct x86_emulate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct x86_emulate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: x86_insn_opsize
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 1
    functionsReached:
    - check_state
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86_insn_opsize(const struct x86_emulate_state *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:34,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:36,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - s
    - rm
    - reg
    argTypes:
    - struct x86_emulate_state*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: x86_insn_modrm
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 6
    functionsReached:
    - check_state
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int x86_insn_modrm(const struct x86_emulate_state *s,\n                   unsigned
      int *rm, unsigned int *reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - seg
    argTypes:
    - struct x86_emulate_state*
    - enum x86_segment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: x86_insn_operand_ea
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 1
    functionsReached:
    - check_state
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long x86_insn_operand_ea(const struct x86_emulate_state *s,\n
      \                                 enum x86_segment *seg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: x86_insn_is_portio
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool x86_insn_is_portio(const struct x86_emulate_state *s,\n                                 const
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:84,1
    - Dst: x86_insn_modrm
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:85,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:90,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:91,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: x86_insn_is_cr_access
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC
    - x86_insn_modrm
    linkageType: ''
    returnType: bool
    signature: "bool x86_insn_is_cr_access(const struct x86_emulate_state *s,\n                                    const
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - struct x86_emulate_state*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: x86_insn_immediate
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 1
    functionsReached:
    - check_state
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long x86_insn_immediate(const struct x86_emulate_state *s,\n
      \                                unsigned int nr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:129,1
    - Dst: xgetbv
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: x86emul_read_xcr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 1
    functionsReached:
    - x86_emul_hw_exception
    - xgetbv
    linkageType: ''
    returnType: int
    signature: "int x86emul_read_xcr(unsigned int reg, uint64_t *val,\n                              struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:150,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:154,1
    - Dst: handle_xsetbv
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - uint64_t
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 139
    functionDepth: 4
    functionLinenumber: 139
    functionLinenumberEnd: 158
    functionName: x86emul_write_xcr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 2
    functionsReached:
    - x86_emul_hw_exception
    - handle_xsetbv
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int x86emul_write_xcr(unsigned int reg, uint64_t val,\n                               struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:169,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:169,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:174,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:198,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: x86emul_read_dr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 1
    functionsReached:
    - array_access_nospec
    - is_pv_vcpu
    - ASSERT
    - x86_emul_hw_exception
    linkageType: ''
    returnType: int
    signature: "int x86emul_read_dr(unsigned int reg, unsigned long *val,\n                             struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:212,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:212,1
    - Dst: set_debugreg
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:214,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:220,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - reg
    - val
    - ctxt
    argTypes:
    - unsigned int
    - unsigned long
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: x86emul_write_dr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 0
    functionsReached:
    - set_debugreg
    - is_pv_vcpu
    - ASSERT
    - x86_emul_hw_exception
    linkageType: ''
    returnType: int
    signature: "int x86emul_write_dr(unsigned int reg, unsigned long val,\n                              struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpuid
      Src: /src/xen/xen/arch/x86/x86_emulate/util-xen.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - leaf
    - subleaf
    - res
    - ctxt
    argTypes:
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: x86emul_cpuid
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
    functionUses: 0
    functionsReached:
    - guest_cpuid
    linkageType: ''
    returnType: int
    signature: "int x86emul_cpuid(uint32_t leaf, uint32_t subleaf,\n                           struct
      cpuid_leaf *res,\n                           struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: ERR_PTR
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_PTR(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: evex_encoded
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evex_encoded()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:29,1
    - Dst: init_context
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:36,1
    - Dst: x86emul_decode
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:38,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:39,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:40,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:50,1
    - Dst: dump_execution_state
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:52,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: x86_decode_insn
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 5
    functionsReached:
    - ERR_PTR
    - dump_execution_state
    - this_cpu
    - init_context
    - printk
    - unlikely
    - __builtin_return_address
    - x86emul_decode
    linkageType: ''
    returnType: struct x86_emulate_state
    signature: "struct x86_emulate_state *\nx86_decode_insn(\n    struct x86_emulate_ctxt
      *ctxt,\n    int (*insn_fetch)(\n        unsigned long offset, void *p_data,
      unsigned int bytes,\n        struct x86_emulate_ctxt *ctxt))"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - scale
    - s
    argTypes:
    - enum disp8scale
    - struct x86_emulate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 611
    functionName: decode_disp8scale
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int decode_disp8scale(enum disp8scale scale,\n                                      const
      struct x86_emulate_state *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: insn_fetch_bytes
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insn_fetch_bytes(_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: insn_fetch_type
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insn_fetch_type(type)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:668,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:673,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:673,1
    - Dst: insn_fetch_bytes
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:675,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:676,1
    - Dst: insn_fetch_bytes
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:683,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:689,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:693,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:706,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:706,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:714,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:720,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 86
    argCount: 3
    argNames:
    - s
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 730
    functionName: decode_onebyte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached:
    - insn_fetch_bytes
    - X86EMUL_OPC_F3
    - generate_exception_if
    - mode_64bit
    - insn_fetch_type
    - amd_like
    linkageType: ''
    returnType: int
    signature: "int decode_onebyte(struct x86_emulate_state *s,\n               struct
      x86_emulate_ctxt *ctxt,\n               const struct x86_emulate_ops *ops)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:760,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:761,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:774,1
    - Dst: vcpu_has_cr8_legacy
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:778,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:785,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:786,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:787,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:793,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:797,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:800,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:801,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:809,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:810,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:815,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:816,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:822,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:824,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:843,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:849,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:859,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:861,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:862,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:867,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:871,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 116
    argCount: 3
    argNames:
    - s
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 891
    functionName: decode_twobyte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC_VEX
    - X86EMUL_OPC_EVEX_F3
    - X86EMUL_OPC_VEX_F2
    - MASK_INSR
    - generate_exception_if
    - X86EMUL_OPC_VEX_F3
    - mode_64bit
    - X86EMUL_OPC_VEX_66
    - insn_fetch_type
    - ASSERT
    - amd_like
    - vcpu_has_cr8_legacy
    - X86EMUL_OPC_EVEX_66
    linkageType: ''
    returnType: int
    signature: "int decode_twobyte(struct x86_emulate_state *s,\n               struct
      x86_emulate_ctxt *ctxt,\n               const struct x86_emulate_ops *ops)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:908,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:911,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:915,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:916,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:917,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:923,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:930,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:933,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:934,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:935,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:936,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:937,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:938,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:939,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:940,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:941,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:942,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:943,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:944,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - s
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 953
    functionName: decode_0f38
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC_VEX
    - X86EMUL_OPC_VEX_F2
    - MASK_INSR
    - X86EMUL_OPC_VEX_F3
    - X86EMUL_OPC_VEX_66
    - X86EMUL_OPC_EVEX_66
    linkageType: ''
    returnType: int
    signature: "int decode_0f38(struct x86_emulate_state *s,\n            struct x86_emulate_ctxt
      *ctxt,\n            const struct x86_emulate_ops *ops)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:961,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:965,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:966,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:967,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:968,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:969,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:970,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:971,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:974,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:975,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:976,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:982,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:983,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - s
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 994
    functionName: decode_0f3a
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 0
    functionsReached:
    - X86EMUL_OPC_VEX_F2
    - MASK_INSR
    - X86EMUL_OPC_66
    - X86EMUL_OPC_VEX_66
    - X86EMUL_OPC_EVEX_66
    linkageType: ''
    returnType: int
    signature: "int decode_0f3a(struct x86_emulate_state *s,\n            struct x86_emulate_ctxt
      *ctxt,\n            const struct x86_emulate_ops *ops)"
  - BBCount: 236
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1008,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1010,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1014,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1029,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1037,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1043,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1062,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1083,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1088,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1093,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1094,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1098,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1099,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1110,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1118,1
    - Dst: in_realmode
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1126,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1136,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1150,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1151,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1175,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1177,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1178,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1180,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1199,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1203,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1208,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1212,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1217,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1223,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1233,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1238,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1247,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1249,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1250,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1252,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1260,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1262,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1268,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1282,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1322,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1323,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1363,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1402,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1411,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1414,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1427,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1449,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1521,1
    - Dst: decode_disp8scale
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1592,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1610,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1616,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1618,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1624,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1662,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1665,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1668,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1678,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1683,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1684,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1684,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1688,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1692,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1696,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1699,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1705,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1708,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1712,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1714,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1723,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1724,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1727,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1730,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1752,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1752,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1766,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1767,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1768,1
    - Dst: insn_fetch_type
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1772,1
    - Dst: decode_onebyte
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1782,1
    - Dst: decode_twobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1786,1
    - Dst: decode_0f38
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1790,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1797,1
    - Dst: decode_0f3a
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1800,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1807,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1820,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1829,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1844,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1888,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1888,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1892,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/decode.c:1892,1
    CyclomaticComplexity: 272
    EdgeCount: 272
    ICount: 682
    argCount: 3
    argNames:
    - s
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1923
    functionName: x86emul_decode
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/decode.c
    functionUses: 1
    functionsReached:
    - decode_disp8scale
    - generate_exception_if
    - amd_like
    - decode_onebyte
    - decode_gpr
    - decode_twobyte
    - in_realmode
    - MASK_INSR
    - ARRAY_SIZE
    - decode_0f38
    - X86EMUL_OPC_66
    - insn_fetch_type
    - ASSERT
    - truncate_ea
    - memset
    - ASSERT_UNREACHABLE
    - array_access_nospec
    - mode_64bit
    - evex_encoded
    - unlikely
    - decode_0f3a
    - struct x86_emulate_ctxt*::regs::r
    linkageType: ''
    returnType: int
    signature: "int x86emul_decode(struct x86_emulate_state *s,\n                   struct
      x86_emulate_ctxt *ctxt,\n                   const struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_state
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:14,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: x86_insn_length
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util.c
    functionUses: 5
    functionsReached:
    - check_state
    - struct x86_emulate_ctxt*::regs::r
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int x86_insn_length(const struct x86_emulate_state *s,\n
      \                            const struct x86_emulate_ctxt *ctxt)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:28,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:36,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:37,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:38,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:39,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:40,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:41,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:42,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:43,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:44,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:45,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:46,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:47,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:48,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:51,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:54,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:57,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:84,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:85,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:86,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:87,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:88,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:89,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:90,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 64
    argCount: 2
    argNames:
    - s
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 108
    functionName: x86_insn_is_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util.c
    functionUses: 2
    functionsReached:
    - X86EMUL_OPC
    - X86EMUL_OPC_F3
    - X86EMUL_OPC_66
    - mode_64bit
    - X86EMUL_OPC_VEX_66
    - X86EMUL_OPC_F2
    - X86EMUL_OPC_EVEX_66
    linkageType: ''
    returnType: bool
    signature: "bool x86_insn_is_mem_access(const struct x86_emulate_state *s,\n                                     const
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:120,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:137,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:139,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:140,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:141,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:144,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:145,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:146,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:147,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:148,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:149,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:163,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:187,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:188,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:189,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:190,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:191,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:250,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:260,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:271,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/util.c:274,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 133
    argCount: 2
    argNames:
    - s
    - ctxt
    argTypes:
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 286
    functionName: x86_insn_is_mem_write
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/util.c
    functionUses: 3
    functionsReached:
    - X86EMUL_OPC
    - X86EMUL_OPC_EVEX_F3
    - X86EMUL_OPC_F3
    - X86EMUL_OPC_66
    - mode_64bit
    - X86EMUL_OPC_F2
    linkageType: ''
    returnType: bool
    signature: "bool x86_insn_is_mem_write(const struct x86_emulate_state *s,\n                                    const
      struct x86_emulate_ctxt *ctxt)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:35,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:36,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:42,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:47,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:52,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:65,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:66,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:67,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:68,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:77,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:78,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:84,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:89,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:94,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:111,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:112,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:115,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:116,1
    - Dst: is_aligned
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:116,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:123,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:127,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:127,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:128,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:128,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:131,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:143,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:144,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:147,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:151,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:152,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:168,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:169,1
    - Dst: struct x86_emulate_ops*::cmpxchg
      Src: /src/xen/xen/arch/x86/x86_emulate/0fc7.c:172,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 111
    argCount: 6
    argNames:
    - s
    - regs
    - dst
    - ctxt
    - ops
    - mmvalp
    argTypes:
    - struct x86_emulate_state*
    - struct cpu_user_regs*
    - struct operand*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    - mmval_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 193
    functionName: x86emul_0fc7
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/0fc7.c
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read
    - is_aligned
    - memcmp
    - container_of
    - generate_exception_if
    - struct x86_emulate_ops*::cmpxchg
    - fail_if
    - ASM_FLAG_OUT
    - host_and_vcpu_must_have
    - typeof
    - struct x86_emulate_ops*::read_msr
    - struct cpu_user_regs*::r
    - vcpu_must_have
    linkageType: ''
    returnType: int
    signature: "int x86emul_0fc7(struct x86_emulate_state *s,\n                 struct
      cpu_user_regs *regs,\n                 struct operand *dst,\n                 struct
      x86_emulate_ctxt *ctxt,\n                 const struct x86_emulate_ops *ops,\n
      \                mmval_t *mmvalp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: mode_64bit
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_64bit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: r
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1506
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: r(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: mode_64bit
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_64bit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: r
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1506
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: r(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct x86_emulate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: check_state
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 11
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void check_state(const struct x86_emulate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ea
    - ','
    - byte_width
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 459
    functionName: truncate_word
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: truncate_word(ea, byte_width)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ea
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: truncate_ea
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: truncate_ea(ea)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: fail_if
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fail_if(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 475
    functionName: EXPECT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - e
    - ec
    argTypes:
    - uint8_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: mkec
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mkec(uint8_t e, int32_t ec, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - p
    - ','
    - e
    - ','
    - ec
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 488
    functionName: generate_exception_if
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: generate_exception_if(p, e, ec...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - e
    - ','
    - ec
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 490
    functionName: generate_exception
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: generate_exception(e, ec...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 504
    functionName: in_realmode
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached:
    - struct x86_emulate_ops*::read_cr
    linkageType: ''
    returnType: bool
    signature: "bool in_realmode(\n    struct x86_emulate_ctxt *ctxt,\n    const struct
      x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: in_realmode
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 512
    functionName: in_protmode
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached:
    - in_realmode
    linkageType: ''
    returnType: bool
    signature: "bool in_protmode(\n    struct x86_emulate_ctxt *ctxt,\n    const struct
      x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: mode_ring0
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_ring0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: _amd_like
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _amd_like(const struct cpu_policy *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: amd_like
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 4
    functionsReached:
    - _amd_like
    linkageType: ''
    returnType: bool
    signature: bool amd_like(const struct x86_emulate_ctxt *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 533
    functionName: vcpu_has_fpu
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_fpu()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: vcpu_has_sep
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: vcpu_has_cx8
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_cx8()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: vcpu_has_cmov
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_cmov()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: vcpu_has_clflush
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_clflush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: vcpu_has_mmx
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_mmx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: vcpu_has_fxsr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_fxsr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: vcpu_has_sse
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 541
    functionName: vcpu_has_sse2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: vcpu_has_sse3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 543
    functionName: vcpu_has_pclmulqdq
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_pclmulqdq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: vcpu_has_ssse3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_ssse3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: vcpu_has_fma
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_fma()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: vcpu_has_cx16
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_cx16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: vcpu_has_sse4_1
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse4_1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    functionName: vcpu_has_sse4_2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse4_2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 549
    functionName: vcpu_has_movbe
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_movbe()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: vcpu_has_popcnt
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_popcnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 551
    functionName: vcpu_has_aesni
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_aesni()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: vcpu_has_avx
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: vcpu_has_f16c
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_f16c()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: vcpu_has_rdrand
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_rdrand()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: vcpu_has_mmxext
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_mmxext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: vcpu_has_3dnow_ext
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_3dnow_ext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 558
    functionName: vcpu_has_3dnow
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_3dnow()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: vcpu_has_lahf_lm
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_lahf_lm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 560
    functionName: vcpu_has_cr8_legacy
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_cr8_legacy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: vcpu_has_lzcnt
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_lzcnt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 562
    functionName: vcpu_has_sse4a
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sse4a()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: vcpu_has_misalignsse
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_misalignsse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    functionName: vcpu_has_xop
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_xop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 565
    functionName: vcpu_has_fma4
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_fma4()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: vcpu_has_tbm
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_tbm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 567
    functionName: vcpu_has_clzero
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_clzero()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 568
    functionName: vcpu_has_wbnoinvd
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_wbnoinvd()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: vcpu_has_nscb
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_nscb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: vcpu_has_bmi1
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_bmi1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 572
    functionName: vcpu_has_hle
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_hle()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 573
    functionName: vcpu_has_avx2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 574
    functionName: vcpu_has_bmi2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_bmi2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 575
    functionName: vcpu_has_invpcid
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_invpcid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 576
    functionName: vcpu_has_rtm
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_rtm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 577
    functionName: vcpu_has_mpx
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_mpx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 578
    functionName: vcpu_has_avx512f
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512f()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 579
    functionName: vcpu_has_avx512dq
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512dq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: vcpu_has_rdseed
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_rdseed()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 581
    functionName: vcpu_has_adx
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_adx()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 582
    functionName: vcpu_has_smap
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_smap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 583
    functionName: vcpu_has_avx512_ifma
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_ifma()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: vcpu_has_clflushopt
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_clflushopt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: vcpu_has_clwb
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_clwb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 586
    functionName: vcpu_has_avx512cd
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512cd()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 587
    functionName: vcpu_has_sha
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sha()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: vcpu_has_avx512bw
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512bw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 589
    functionName: vcpu_has_avx512vl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512vl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    functionName: vcpu_has_avx512_vbmi
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_vbmi()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 591
    functionName: vcpu_has_avx512_vbmi2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_vbmi2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 592
    functionName: vcpu_has_gfni
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_gfni()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 593
    functionName: vcpu_has_vaes
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_vaes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 594
    functionName: vcpu_has_vpclmulqdq
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_vpclmulqdq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: vcpu_has_avx512_vnni
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_vnni()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 596
    functionName: vcpu_has_avx512_bitalg
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_bitalg()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 597
    functionName: vcpu_has_avx512_vpopcntdq
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_vpopcntdq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: vcpu_has_rdpid
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_rdpid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 599
    functionName: vcpu_has_movdiri
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_movdiri()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 600
    functionName: vcpu_has_movdir64b
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_movdir64b()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 601
    functionName: vcpu_has_enqcmd
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_enqcmd()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 602
    functionName: vcpu_has_avx512_vp2intersect
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_vp2intersect()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 603
    functionName: vcpu_has_serialize
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_serialize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 604
    functionName: vcpu_has_tsxldtrk
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_tsxldtrk()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 605
    functionName: vcpu_has_avx512_fp16
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_fp16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 606
    functionName: vcpu_has_sha512
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sha512()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 607
    functionName: vcpu_has_sm3
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sm3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 608
    functionName: vcpu_has_sm4
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_sm4()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 609
    functionName: vcpu_has_avx_vnni
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx_vnni()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 610
    functionName: vcpu_has_avx512_bf16
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx512_bf16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 611
    functionName: vcpu_has_cmpccxadd
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_cmpccxadd()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 612
    functionName: vcpu_has_wrmsrns
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_wrmsrns()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 613
    functionName: vcpu_has_avx_ifma
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx_ifma()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 614
    functionName: vcpu_has_avx_vnni_int8
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx_vnni_int8()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 615
    functionName: vcpu_has_avx_ne_convert
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx_ne_convert()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 616
    functionName: vcpu_has_avx_vnni_int16
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_has_avx_vnni_int16()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: vcpu_must_have
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_must_have(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: host_and_vcpu_must_have
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: host_and_vcpu_must_have(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: host_and_vcpu_must_have
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: host_and_vcpu_must_have(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sav
    - ','
    - _msk
    - ','
    - _tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 672
    functionName: _PRE_EFLAGS
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PRE_EFLAGS(_sav, _msk, _tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sav
    - ','
    - _msk
    - ','
    - _tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 680
    functionName: _POST_EFLAGS
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _POST_EFLAGS(_sav, _msk, _tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 701
    functionName: get_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_stub(stb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 709
    functionName: put_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_stub(stb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - pre
    - ','
    - post
    - ','
    - constraints
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 718
    functionName: invoke_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invoke_stub(pre, post, constraints...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: get_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_stub(stb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 747
    functionName: put_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_stub(stb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - pre
    - ','
    - post
    - ','
    - constraints
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 754
    functionName: invoke_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invoke_stub(pre, post, constraints...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 769
    functionName: get_fpu
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_fpu(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: init_context
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached:
    - x86_emul_reset_event
    linkageType: ''
    returnType: void
    signature: void init_context(struct x86_emulate_ctxt *ctxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:816,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:818,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:819,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - seg
    - offs
    - size
    - ctxt
    - ops
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 831
    functionName: is_aligned
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 1
    functionsReached:
    - memset
    - ASSERT
    - struct x86_emulate_ops*::read_segment
    - mode_64bit
    linkageType: ''
    returnType: bool
    signature: "bool is_aligned(enum x86_segment seg, unsigned long offs,\n                              unsigned
      int size, struct x86_emulate_ctxt *ctxt,\n                              const
      struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_get_cpl
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:839,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 842
    functionName: umip_active
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached:
    - x86emul_get_cpl
    - struct x86_emulate_ops*::read_cr
    linkageType: ''
    returnType: bool
    signature: "bool umip_active(struct x86_emulate_ctxt *ctxt,\n                               const
      struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/private.h:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - seg
    - offset
    - val
    - bytes
    - ctxt
    - ops
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned long*
    - unsigned int
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 854
    functionName: read_ulong
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/private.h
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read
    linkageType: ''
    returnType: int
    signature: "int read_ulong(enum x86_segment seg,\n                             unsigned
      long offset,\n                             unsigned long *val,\n                             unsigned
      int bytes,\n                             struct x86_emulate_ctxt *ctxt,\n                             const
      struct x86_emulate_ops *ops)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:38,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:39,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:39,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:40,1
    - Dst: struct x86_emulate_ops*::write_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:41,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:42,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:46,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:50,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:51,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:51,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:59,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:61,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:63,1
    - Dst: struct x86_emulate_ops*::read_xcr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:64,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:67,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:68,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:72,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:74,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:76,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:77,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:77,1
    - Dst: struct x86_emulate_ops*::write_xcr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:78,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:85,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:86,1
    - Dst: struct x86_emulate_ops*::vmfunc
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:87,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:92,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:93,1
    - Dst: vcpu_has_rtm
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:93,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:94,1
    - Dst: vcpu_has_rtm
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:94,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:98,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:99,1
    - Dst: vcpu_has_rtm
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:99,1
    - Dst: vcpu_has_hle
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:99,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:106,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:107,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:111,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:112,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:113,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:113,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:114,1
    - Dst: struct x86_emulate_ops*::tlb_op
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:115,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:115,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:115,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:124,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:128,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:143,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:159,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:161,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:162,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:163,1
    - Dst: rdpkru
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:163,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:164,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:176,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:178,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:179,1
    - Dst: wrpkru
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:180,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:188,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:188,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:189,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:189,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:190,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:192,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:194,1
    - Dst: struct x86_emulate_ops*::write_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:196,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:200,1
    - Dst: struct x86_emulate_ops*::write_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:204,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:206,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:212,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:213,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:216,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:223,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:225,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:228,1
    - Dst: struct x86_emulate_ops*::rep_stos
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:235,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:245,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:248,1
    - Dst: GRP7_MEM
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:262,1
    - Dst: GRP7_MEM
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:263,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:264,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:265,1
    - Dst: umip_active
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:265,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:266,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:267,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:269,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:276,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:278,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:278,1
    - Dst: GRP7_MEM
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:283,1
    - Dst: GRP7_MEM
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:284,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:285,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:286,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:286,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:287,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:288,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:289,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:291,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:291,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:292,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:294,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:294,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:297,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:299,1
    - Dst: GRP7_ALL
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:303,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:304,1
    - Dst: umip_active
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:304,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:307,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:314,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:315,1
    - Dst: GRP7_ALL
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:319,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:320,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:321,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:322,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:322,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:323,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:327,1
    - Dst: struct x86_emulate_ops*::write_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:332,1
    - Dst: GRP7_MEM
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:336,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:337,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:338,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:338,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:339,1
    - Dst: struct x86_emulate_ops*::tlb_op
      Src: /src/xen/xen/arch/x86/x86_emulate/0f01.c:340,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 253
    argCount: 5
    argNames:
    - s
    - regs
    - dst
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_state*
    - struct cpu_user_regs*
    - struct operand*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 19
    functionDepth: 10
    functionLinenumber: 19
    functionLinenumberEnd: 357
    functionName: x86emul_0f01
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/0f01.c
    functionUses: 0
    functionsReached:
    - umip_active
    - struct x86_emulate_ops*::write
    - generate_exception_if
    - rdpkru
    - fail_if
    - struct x86_emulate_ops*::read_msr
    - struct x86_emulate_ops*::write_msr
    - generate_exception
    - struct x86_emulate_ops*::read_xcr
    - struct x86_emulate_ops*::vmfunc
    - x86_emul_reset_event
    - host_and_vcpu_must_have
    - vcpu_has_hle
    - in_protmode
    - read_ulong
    - is_canonical_address
    - struct x86_emulate_ops*::rep_stos
    - struct x86_emulate_ops*::read_cr
    - struct x86_emulate_ops*::tlb_op
    - struct x86_emulate_ops*::read_segment
    - ASSERT
    - mode_ring0
    - truncate_ea
    - memset
    - wrpkru
    - vcpu_must_have
    - struct x86_emulate_ops*::write_xcr
    - struct x86_emulate_ops*::write_segment
    - GRP7_MEM
    - vcpu_has_rtm
    - mode_64bit
    - struct x86_emulate_ops*::write_cr
    - struct cpu_user_regs*::r
    - GRP7_ALL
    linkageType: ''
    returnType: int
    signature: "int x86emul_0f01(struct x86_emulate_state *s,\n                 struct
      cpu_user_regs *regs,\n                 struct operand *dst,\n                 struct
      x86_emulate_ctxt *ctxt,\n                 const struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mod
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: _GRP7
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/0f01.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _GRP7(mod, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: GRP7_MEM
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/0f01.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GRP7_MEM(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: GRP7_ALL
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/0f01.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GRP7_ALL(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stub
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: init_prefixes
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_prefixes(stub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - vex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: copy_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_VEX(ptr, vex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - rex
    - ','
    - vex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: copy_REX_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_REX_VEX(ptr, rex, vex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stub
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: init_evex
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_evex(stub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - evex
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: copy_EVEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_EVEX(ptr, evex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: rep_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rep_prefix()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: repe_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repe_prefix()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: repne_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: repne_prefix()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: DECLARE_ALIGNED
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_ALIGNED(type, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 38
    argNames:
    - (
    - _op
    - ','
    - src
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - ','
    - wsx
    - ','
    - wsy
    - ','
    - wdx
    - ','
    - wdy
    - ','
    - lsx
    - ','
    - lsy
    - ','
    - ldx
    - ','
    - ldy
    - ','
    - qsx
    - ','
    - qsy
    - ','
    - qdx
    - ','
    - qdy
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 159
    functionName: __emulate_2op_nobyte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "__emulate_2op_nobyte(_op, src, dst, sz, eflags, wsx,wsy,wdx,wdy,   \\\n
      \                            lsx,lsy,ldx,ldy, qsx,qsy,qdx,qdy, extra...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 30
    argNames:
    - (
    - _op
    - ','
    - src
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - ','
    - _bx
    - ','
    - by
    - ','
    - wx
    - ','
    - wy
    - ','
    - lx
    - ','
    - ly
    - ','
    - qx
    - ','
    - qy
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: __emulate_2op
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "__emulate_2op(_op, src, dst, sz, eflags, _bx, by, wx, wy,          \\\n
      \                     lx, ly, qx, qy, extra...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op
    - ','
    - src
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: _emulate_2op_SrcB
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _emulate_2op_SrcB(op, src, dst, sz, eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - src
    - ','
    - dst
    - ','
    - eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: emulate_2op_SrcB
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_2op_SrcB(op, src, dst, eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 14
    argNames:
    - (
    - op
    - ','
    - src
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: _emulate_2op_SrcV
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _emulate_2op_SrcV(op, src, dst, sz, eflags, extra...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _op
    - ','
    - _src
    - ','
    - _dst
    - ','
    - _eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: emulate_2op_SrcV
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_2op_SrcV(_op, _src, _dst, _eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 14
    argNames:
    - (
    - op
    - ','
    - src
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: _emulate_2op_SrcV_nobyte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _emulate_2op_SrcV_nobyte(op, src, dst, sz, eflags, extra...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _op
    - ','
    - _src
    - ','
    - _dst
    - ','
    - _eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: emulate_2op_SrcV_nobyte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_2op_SrcV_nobyte(_op, _src, _dst, _eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _op
    - ','
    - _src
    - ','
    - _dst
    - ','
    - _eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: emulate_2op_SrcV_srcmem
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_2op_SrcV_srcmem(_op, _src, _dst, _eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - _op
    - ','
    - dst
    - ','
    - sz
    - ','
    - eflags
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 237
    functionName: _emulate_1op
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _emulate_1op(_op, dst, sz, eflags, extra...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - dst
    - ','
    - eflags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: emulate_1op
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_1op(op, dst, eflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 20
    argNames:
    - (
    - _op
    - ','
    - src
    - ','
    - dst
    - ','
    - eflags
    - ','
    - qsx
    - ','
    - qsy
    - ','
    - qdx
    - ','
    - qdy
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: __emulate_2op_8byte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "__emulate_2op_8byte(_op, src, dst, eflags,                      \\\n
      \                           qsx, qsy, qdx, qdy, extra...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - _op
    - ','
    - dst
    - ','
    - eflags
    - ','
    - extra
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: __emulate_1op_8byte
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __emulate_1op_8byte(_op, dst, eflags, extra...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - dst
    - ','
    - src
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: emulate_stub
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_stub(dst, src...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: even_parity
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: bool
    signature: bool even_parity(uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - inc
    - ','
    - byte_width
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: _register_address_increment
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _register_address_increment(reg, inc, byte_width)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - adj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: register_address_adjust
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: register_address_adjust(reg, adj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: sp_pre_dec
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sp_pre_dec(dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - inc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: sp_post_inc
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sp_post_inc(inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rel
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 325
    functionName: jmp_rel
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: jmp_rel(rel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cs
    - ','
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: validate_far_branch
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_far_branch(cs, ip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cs
    - ','
    - newip
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: commit_far_branch
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: commit_far_branch(cs, newip)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:353,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:354,1
    - Dst: struct x86_emulate_ops*::read_xcr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:357,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:359,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:390,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:392,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:397,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:400,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:405,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:411,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:415,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:416,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:417,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:419,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 3
    argNames:
    - type
    - ctxt
    - ops
    argTypes:
    - enum x86_emulate_fpu_type
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 426
    functionName: x86emul_get_fpu
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read_xcr
    - generate_exception_if
    - struct x86_emulate_ops*::read_cr
    - fail_if
    - ASSERT
    linkageType: ''
    returnType: int
    signature: "int x86emul_get_fpu(\n    enum x86_emulate_fpu_type type,\n    struct
      x86_emulate_ctxt *ctxt,\n    const struct x86_emulate_ops *ops)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:435,1
    - Dst: struct x86_emulate_ops*::put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:436,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:437,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:440,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:447,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:455,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:467,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:470,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:471,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:472,1
    - Dst: read_sreg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:473,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:475,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:488,1
    - Dst: struct x86_emulate_ops*::put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:493,1
    - Dst: struct x86_emulate_ops*::put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:496,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 5
    argNames:
    - type
    - failed_late
    - state
    - ctxt
    - ops
    argTypes:
    - enum x86_emulate_fpu_type
    - bool
    - struct x86_emulate_state*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 497
    functionName: put_fpu
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached:
    - is_pv_vcpu
    - read_sreg
    - struct x86_emulate_ops*::put_fpu
    - struct x86_emulate_ops*::read_segment
    - unlikely
    - ASSERT_UNREACHABLE
    - struct x86_emulate_ctxt*::regs::r
    linkageType: ''
    returnType: void
    signature: "void put_fpu(\n    enum x86_emulate_fpu_type type,\n    bool failed_late,\n
      \   const struct x86_emulate_state *state,\n    struct x86_emulate_ctxt *ctxt,\n
      \   const struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - ad_bytes
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: get_loop_count
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct cpu_user_regs*::r
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long get_loop_count(\n    const struct cpu_user_regs *regs,\n
      \   int ad_bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - regs
    - ad_bytes
    - count
    argTypes:
    - struct cpu_user_regs*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 516
    functionName: put_loop_count
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct cpu_user_regs*::r
    linkageType: ''
    returnType: void
    signature: "void put_loop_count(\n    struct cpu_user_regs *regs,\n    int ad_bytes,\n
      \   unsigned long count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - extend_si
    - ','
    - extend_di
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: get_rep_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_rep_prefix(extend_si, extend_di)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_loop_count
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:549,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:554,1
    - Dst: struct cpu_user_regs*::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:554,1
    - Dst: put_loop_count
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - int_regs
    - ext_regs
    - ad_bytes
    - reps_completed
    argTypes:
    - struct cpu_user_regs*
    - struct cpu_user_regs*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: __put_rep_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - put_loop_count
    - get_loop_count
    - struct cpu_user_regs*::r
    linkageType: ''
    returnType: void
    signature: "void __put_rep_prefix(\n    struct cpu_user_regs *int_regs,\n    struct
      cpu_user_regs *ext_regs,\n    int ad_bytes,\n    unsigned long reps_completed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reps_completed
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 567
    functionName: put_rep_prefix
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_rep_prefix(reps_completed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ea
    - ','
    - reps
    - ','
    - bytes_per_rep
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 583
    functionName: truncate_ea_and_reps
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: truncate_ea_and_reps(ea, reps, bytes_per_rep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 597
    functionName: mul_dbl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: bool
    signature: bool mul_dbl(unsigned long m[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - unsigned long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: imul_dbl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - ASM_FLAG_OUT
    linkageType: ''
    returnType: bool
    signature: bool imul_dbl(unsigned long m[2])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - u
    - v
    argTypes:
    - unsigned long[]
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: div_dbl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool div_dbl(unsigned long u[2], unsigned long v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: div_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:649,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - u
    - v
    argTypes:
    - unsigned long[]
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 668
    functionName: idiv_dbl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - div_dbl
    linkageType: ''
    returnType: bool
    signature: bool idiv_dbl(unsigned long u[2], unsigned long v)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - condition
    - flags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 706
    functionName: test_cc
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool test_cc(\n    unsigned int condition, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 721
    functionName: x86emul_get_cpl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached:
    - struct x86_emulate_ops*::read_segment
    linkageType: ''
    returnType: int
    signature: "int x86emul_get_cpl(struct x86_emulate_ctxt *ctxt,\n                    const
      struct x86_emulate_ops *ops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_get_cpl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:728,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 732
    functionName: _mode_iopl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - x86emul_get_cpl
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int _mode_iopl(\n    struct x86_emulate_ctxt *ctxt,\n    const struct
      x86_emulate_ops  *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: mode_iopl
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_iopl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 748
    functionName: mode_vif
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mode_vif()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mode_iopl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:759,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:762,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:767,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:771,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:773,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:779,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:787,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:794,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:801,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - first_port
    - bytes
    - ctxt
    - ops
    argTypes:
    - unsigned int
    - unsigned int
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 806
    functionName: ioport_access_check
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - generate_exception_if
    - mode_iopl
    - fail_if
    - struct x86_emulate_ops*::read_segment
    - read_ulong
    linkageType: ''
    returnType: int
    signature: "int ioport_access_check(\n    unsigned int first_port,\n    unsigned
      int bytes,\n    struct x86_emulate_ctxt *ctxt,\n    const struct x86_emulate_ops
      *ops)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - seg
    - sel
    - sreg
    - ctxt
    - ops
    argTypes:
    - enum x86_segment
    - uint16_t
    - struct segment_register*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 828
    functionName: realmode_load_seg
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read_segment
    linkageType: ''
    returnType: int
    signature: "int realmode_load_seg(\n    enum x86_segment seg,\n    uint16_t sel,\n
      \   struct segment_register *sreg,\n    struct x86_emulate_ctxt *ctxt,\n    const
      struct x86_emulate_ops *ops)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: x86emul_get_cpl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:847,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:860,1
    - Dst: _amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:868,1
    - Dst: vcpu_has_nscb
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:868,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:870,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:871,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:884,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:887,1
    - Dst: is_x86_system_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:902,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:905,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:982,1
    - Dst: _amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:995,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:996,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1000,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1013,1
    - Dst: _amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1013,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1017,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1027,1
    - Dst: struct x86_emulate_ops*::cmpxchg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1028,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1063,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 144
    argCount: 6
    argNames:
    - seg
    - sel
    - is_ret
    - sreg
    - ctxt
    - ops
    argTypes:
    - enum x86_segment
    - uint16_t
    - bool
    - struct segment_register*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 1067
    functionName: protmode_load_seg
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read
    - x86emul_get_cpl
    - _amd_like
    - is_x86_user_segment
    - fail_if
    - struct x86_emulate_ops*::cmpxchg
    - vcpu_has_nscb
    - generate_exception_if
    - mode_64bit
    - struct x86_emulate_ops*::read_segment
    - memset
    - is_canonical_address
    - is_x86_system_segment
    linkageType: ''
    returnType: int
    signature: "int protmode_load_seg(\n    enum x86_segment seg,\n    uint16_t sel,
      bool is_ret,\n    struct segment_register *sreg,\n    struct x86_emulate_ctxt
      *ctxt,\n    const struct x86_emulate_ops *ops)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1086,1
    - Dst: protmode_load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1087,1
    - Dst: realmode_load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1089,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1092,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 6
    argNames:
    - seg
    - sel
    - is_ret
    - sreg
    - ctxt
    - ops
    argTypes:
    - enum x86_segment
    - uint16_t
    - bool
    - struct segment_register*
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1069
    functionDepth: 4
    functionLinenumber: 1069
    functionLinenumberEnd: 1095
    functionName: load_seg
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 2
    functionsReached:
    - in_protmode
    - struct x86_emulate_ops*::write_segment
    - protmode_load_seg
    - realmode_load_seg
    linkageType: ''
    returnType: int
    signature: "int load_seg(\n    enum x86_segment seg,\n    uint16_t sel, bool is_ret,\n
      \   struct segment_register *sreg,\n    struct x86_emulate_ctxt *ctxt,\n    const
      struct x86_emulate_ops *ops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1134,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1137,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1137,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1138,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1140,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1140,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - regs
    - modrm_reg
    - legacy
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1146
    functionName: _decode_gpr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - decode_gpr
    - ASSERT
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void *_decode_gpr(\n    struct cpu_user_regs *regs, unsigned int modrm_reg,
      bool legacy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1152,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vex_reg
    - regs
    - ctxt
    argTypes:
    - unsigned int
    - struct cpu_user_regs*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1153
    functionName: decode_vex_gpr
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - decode_gpr
    - mode_64bit
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long *decode_vex_gpr(\n    unsigned int vex_reg, struct cpu_user_regs
      *regs,\n    const struct x86_emulate_ctxt *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lig
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1168
    functionName: avx512_vlen_check
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avx512_vlen_check(lig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1176,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1185
    functionName: is_branch_step
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - struct x86_emulate_ops*::read_msr
    - x86_emul_reset_event
    linkageType: ''
    returnType: bool
    signature: "bool is_branch_step(struct x86_emulate_ctxt *ctxt,\n                           const
      struct x86_emulate_ops *ops)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_has_mpx
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1193,1
    - Dst: struct x86_emulate_ops*::read_xcr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1196,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1199,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1203,1
    - Dst: read_bndcfgu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1204,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1206,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1210,1
    - Dst: xstate_set_init
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1222,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 3
    argNames:
    - ctxt
    - ops
    - pfx
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    - enum vex_pfx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1225
    functionName: adjust_bnd
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - read_bndcfgu
    - vcpu_has_mpx
    - struct x86_emulate_ops*::read_xcr
    - x86_emul_reset_event
    - struct x86_emulate_ops*::read_msr
    - ASSERT
    - xstate_set_init
    - mode_ring0
    linkageType: ''
    returnType: void
    signature: "void adjust_bnd(struct x86_emulate_ctxt *ctxt,\n                       const
      struct x86_emulate_ops *ops, enum vex_pfx pfx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1235
    functionName: x86emul_unhandleable_rw
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int x86emul_unhandleable_rw(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    void *p_data,\n    unsigned int bytes,\n    struct x86_emulate_ctxt
      *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1250
    functionName: evex_encoded
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: evex_encoded()
  - BBCount: 1773
    BranchProfiles: []
    Callsites:
    - Dst: is_branch_step
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1269,1
    - Dst: DECLARE_ALIGNED
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1276,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1279,1
    - Dst: init_context
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1281,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1283,1
    - Dst: mode_vif
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1283,1
    - Dst: x86emul_decode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1288,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1293,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1298,1
    - Dst: struct x86_emulate_ops*::validate
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1300,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1315,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1315,1
    - Dst: _decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1318,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1320,1
    - Dst: _decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1332,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1338,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1366,1
    - Dst: x86emul_get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1391,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1394,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1403,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1405,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1408,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1416,1
    - Dst: put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1417,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1430,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1438,1
    - Dst: _decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1442,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1448,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1481,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1491,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1494,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1501,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1513,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1514,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1518,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1519,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1542,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1552,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1562,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1572,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1582,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1592,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1602,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1607,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1612,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1620,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1621,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1622,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1623,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1632,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1633,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1634,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1636,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1639,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1639,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1641,1
    - Dst: even_parity
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1668,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1686,1
    - Dst: emulate_1op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1690,1
    - Dst: emulate_1op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1692,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1696,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1701,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1703,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1705,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1705,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1711,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1715,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1717,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1717,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1727,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1729,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1729,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1732,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1744,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1745,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1745,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1751,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1757,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1762,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1763,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1774,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1774,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1780,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1799,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1801,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1804,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1811,1
    - Dst: ioport_access_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1821,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1823,1
    - Dst: truncate_ea_and_reps
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1824,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1824,1
    - Dst: struct x86_emulate_ops*::read_io
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1832,1
    - Dst: struct x86_emulate_ops*::rep_ins
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1837,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1841,1
    - Dst: struct x86_emulate_ops*::read_io
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1842,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1851,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1851,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1852,1
    - Dst: ioport_access_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1863,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1865,1
    - Dst: truncate_ea_and_reps
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1866,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1866,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1873,1
    - Dst: struct x86_emulate_ops*::rep_outs
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1879,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1883,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1886,1
    - Dst: struct x86_emulate_ops*::write_io
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1891,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1895,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1895,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1896,1
    - Dst: test_cc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1903,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1904,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1905,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1926,1
    - Dst: vcpu_has_rtm
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1955,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1965,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1966,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1971,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1981,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1981,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1983,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1984,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1992,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1998,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:1998,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2000,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2008,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2010,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2012,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2012,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2018,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2026,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2034,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2034,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2035,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2035,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2043,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2051,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2051,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2053,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2055,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2056,1
    - Dst: validate_far_branch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2057,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2059,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2059,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2061,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2061,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2062,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2063,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2066,1
    - Dst: x86emul_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2074,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2081,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2086,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2090,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2096,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2107,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2113,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2118,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2119,1
    - Dst: mode_iopl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2127,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2131,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2133,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2133,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2142,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2144,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2147,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2163,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2164,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2169,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2170,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2175,1
    - Dst: truncate_ea_and_reps
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2179,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2179,1
    - Dst: truncate_ea_and_reps
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2180,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2180,1
    - Dst: struct x86_emulate_ops*::rep_movs
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2182,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2186,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2192,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2192,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2193,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2193,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2194,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2201,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2203,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2205,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2205,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2205,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2207,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2207,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2207,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2210,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2210,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2211,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2211,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2212,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2214,1
    - Dst: repe_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2215,1
    - Dst: repne_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2216,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2217,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2222,1
    - Dst: truncate_ea_and_reps
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2226,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2226,1
    - Dst: struct x86_emulate_ops*::rep_stos
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2228,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2237,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2237,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2238,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2245,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2246,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2246,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2246,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2249,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2249,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2250,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2254,1
    - Dst: get_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2256,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2257,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2257,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2257,1
    - Dst: register_address_adjust
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2260,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2260,1
    - Dst: put_rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2261,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2264,1
    - Dst: repe_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2265,1
    - Dst: repne_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2266,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2267,1
    - Dst: _decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2272,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2278,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2283,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2295,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2296,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2297,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2298,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2300,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2301,1
    - Dst: GRP2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2302,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2309,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2309,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2311,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2311,1
    - Dst: struct x86_emulate_ops*::insn_fetch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2313,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2315,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2316,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2323,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2324,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2324,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2327,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2327,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2328,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2335,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2336,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2337,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2338,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2338,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2339,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2341,1
    - Dst: truncate_word
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2349,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2349,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2350,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2352,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2352,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2356,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2356,1
    - Dst: sp_pre_dec
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2361,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2366,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2370,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2370,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2374,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2375,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2375,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2382,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2382,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2384,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2384,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2386,1
    - Dst: commit_far_branch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2387,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2398,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2419,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2419,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2428,1
    - Dst: in_realmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2428,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2430,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2430,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2432,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2432,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2434,1
    - Dst: sp_post_inc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2434,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2442,1
    - Dst: commit_far_branch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2443,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2463,1
    - Dst: even_parity
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2470,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2480,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2480,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2480,1
    - Dst: get_loop_count
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2488,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2496,1
    - Dst: put_loop_count
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2497,1
    - Dst: get_loop_count
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2502,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2503,1
    - Dst: ioport_access_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2517,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2522,1
    - Dst: struct x86_emulate_ops*::write_io
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2523,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2529,1
    - Dst: struct x86_emulate_ops*::read_io
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2530,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2544,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2545,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2546,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2547,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2553,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2555,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2559,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2559,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2561,1
    - Dst: commit_far_branch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2562,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2567,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2567,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2577,1
    - Dst: emulate_1op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2596,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2627,1
    - Dst: mul_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2628,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2630,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2636,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2645,1
    - Dst: imul_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2669,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2672,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2684,1
    - Dst: div_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2685,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2694,1
    - Dst: div_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2695,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2705,1
    - Dst: div_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2706,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2713,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2714,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2716,1
    - Dst: div_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2716,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2718,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2729,1
    - Dst: idiv_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2730,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2739,1
    - Dst: idiv_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2740,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2750,1
    - Dst: idiv_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2751,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2758,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2759,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2761,1
    - Dst: idiv_dbl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2761,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2763,1
    - Dst: mode_iopl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2779,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2783,1
    - Dst: mode_vif
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2783,1
    - Dst: mode_iopl
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2789,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2797,1
    - Dst: mode_vif
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2798,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2815,1
    - Dst: emulate_1op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2824,1
    - Dst: emulate_1op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2830,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2833,1
    - Dst: struct x86_emulate_ops*::insn_fetch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2834,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2836,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2838,1
    - Dst: struct x86_emulate_ops*::insn_fetch
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2841,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2843,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2845,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2849,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2851,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2852,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2862,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2866,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2868,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2868,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2872,1
    - Dst: umip_active
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2872,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2875,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2875,1
    - Dst: load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2876,1
    - Dst: protmode_load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2881,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2893,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2903,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2908,1
    - Dst: x86emul_0f01
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2909,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2912,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2913,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2913,1
    - Dst: protmode_load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2915,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2944,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2960,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2961,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2961,1
    - Dst: protmode_load_seg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2963,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:2989,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3003,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3009,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3010,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3012,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3013,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3013,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3013,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3015,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3033,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3033,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3038,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3048,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3053,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3054,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3055,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3080,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3081,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3081,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3082,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3083,1
    - Dst: struct x86_emulate_ops*::write_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3084,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3088,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3094,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3095,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3097,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3098,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3098,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3098,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3099,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3099,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3100,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3100,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3107,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3108,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3112,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3124,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3126,1
    - Dst: struct x86_emulate_ops*::read_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3127,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3138,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3153,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3157,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3158,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3159,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3166,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3167,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3168,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3168,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3169,1
    - Dst: struct x86_emulate_ops*::cache_op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3170,1
    - Dst: repe_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3170,1
    - Dst: vcpu_has_wbnoinvd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3171,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3180,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3181,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3182,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3183,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3185,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3186,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3187,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3187,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3192,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3193,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3197,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3199,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3201,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3203,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3205,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3277,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3278,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3280,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3282,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3285,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3289,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3293,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3295,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3297,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3299,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3301,1
    - Dst: CASE_SIMD_SINGLE_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3304,1
    - Dst: CASE_SIMD_SINGLE_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3307,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3310,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3312,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3314,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3316,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3318,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3320,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3322,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3324,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3326,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3328,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3336,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3339,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3341,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3349,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3351,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3354,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3367,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3368,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3371,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3372,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3374,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3375,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3377,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3378,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3382,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3384,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3386,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3387,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3388,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3389,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3390,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3391,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3393,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3397,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3399,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3401,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3402,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3416,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3417,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3418,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3420,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3421,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3422,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3424,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3426,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3428,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3430,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3432,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3434,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3440,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3441,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3442,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3443,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3444,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3446,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3448,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3450,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3453,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3459,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3460,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3461,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3462,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3463,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3464,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3471,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3474,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3475,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3476,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3477,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3480,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3481,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3488,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3489,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3490,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3493,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3494,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3495,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3496,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3499,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3500,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3501,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3502,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3503,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3504,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3505,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3506,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3507,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3508,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3509,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3510,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3511,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3512,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3513,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3514,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3515,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3517,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3518,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3519,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3524,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3525,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3526,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3527,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3528,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3528,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3532,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3535,1
    - Dst: write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3536,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3541,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3543,1
    - Dst: read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3544,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3552,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3555,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3556,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3557,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3558,1
    - Dst: CASE_SIMD_SCALAR_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3565,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3569,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3571,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3572,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3576,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3577,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3582,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3595,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3596,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3597,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3599,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3600,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3601,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3603,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3605,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3606,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3610,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3618,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3622,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3636,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3638,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3639,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3641,1
    - Dst: CASE_SIMD_SCALAR_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3645,1
    - Dst: CASE_SIMD_SCALAR_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3646,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3650,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3652,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3653,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3657,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3658,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3659,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3665,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3679,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3688,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3693,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3696,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3701,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3703,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3705,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3706,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3708,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3712,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3713,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3714,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3715,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3716,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3718,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3719,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3720,1
    - Dst: CASE_SIMD_SCALAR_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3721,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3722,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3726,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3728,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3729,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3730,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3733,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3734,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3738,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3740,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3741,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3745,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3746,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3747,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3750,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3757,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3767,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3770,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3775,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3777,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3780,1
    - Dst: _POST_EFLAGS
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3781,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3786,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3787,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3790,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3791,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3792,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3793,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3795,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3796,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3797,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3801,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3803,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3804,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3806,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3812,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3813,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3813,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3814,1
    - Dst: struct x86_emulate_ops*::write_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3815,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3816,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3821,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3822,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3824,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3825,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3827,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3829,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3830,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3833,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3834,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3837,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3838,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3838,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3839,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3840,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3842,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3843,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3846,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3847,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3848,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3848,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3849,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3849,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3851,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3852,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3856,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3871,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3874,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3876,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3879,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3881,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3882,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3884,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3895,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3896,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3897,1
    - Dst: amd_like
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3897,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3898,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3898,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3899,1
    - Dst: in_protmode
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3899,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3901,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3902,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3906,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3907,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3908,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3908,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3909,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3909,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3924,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3925,1
    - Dst: struct x86_emulate_ops*::write_segment
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3926,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3929,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3929,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3930,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3930,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3935,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3935,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3936,1
    - Dst: test_cc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3937,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3943,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3945,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3947,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3948,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3949,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3950,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3951,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3952,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3953,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3954,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3955,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3956,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3957,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3958,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3961,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3963,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3965,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3966,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3966,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3972,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3974,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3983,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3984,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3985,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3988,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3989,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3990,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3993,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3994,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:3999,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4001,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4003,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4008,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4013,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4015,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4020,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4025,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4026,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4029,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4032,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4034,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4038,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4040,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4042,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4043,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4046,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4047,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4049,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4051,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4055,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4056,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4057,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4058,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4059,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4062,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4063,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4066,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4076,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4084,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4086,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4087,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4092,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4093,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4094,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4096,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4098,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4101,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4104,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4105,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4106,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4109,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4116,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4118,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4120,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4122,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4124,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4126,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4130,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4132,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4134,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4136,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4138,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4140,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4143,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4144,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4145,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4146,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4147,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4149,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4151,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4153,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4155,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4157,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4159,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4160,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4161,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4163,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4165,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4167,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4168,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4169,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4171,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4173,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4175,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4176,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4177,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4179,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4180,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4181,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4183,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4185,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4186,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4187,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4188,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4189,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4191,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4193,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4195,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4196,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4197,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4199,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4201,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4203,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4204,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4205,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4207,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4209,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4211,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4213,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4214,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4215,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4217,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4218,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4219,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4221,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4223,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4225,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4226,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4228,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4230,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4232,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4238,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4239,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4240,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4241,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4242,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4243,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4244,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4245,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4246,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4247,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4248,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4249,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4250,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4251,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4252,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4253,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4254,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4255,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4256,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4257,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4258,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4259,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4260,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4261,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4262,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4263,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4264,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4265,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4269,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4270,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4272,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4279,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4280,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4285,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4286,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4288,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4289,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4290,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4291,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4294,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4295,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4296,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4297,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4298,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4299,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4300,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4301,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4304,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4305,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4306,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4307,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4308,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4309,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4310,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4311,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4312,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4313,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4314,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4315,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4316,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4317,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4318,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4319,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4320,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4321,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4322,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4323,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4324,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4328,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4329,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4330,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4335,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4336,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4339,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4340,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4341,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4342,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4343,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4344,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4345,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4346,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4347,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4348,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4349,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4352,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4355,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4356,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4358,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4361,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4362,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4363,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4367,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4368,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4371,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4372,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4373,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4374,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4379,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4381,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4385,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4386,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4387,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4391,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4392,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4396,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4397,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4401,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4406,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4410,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4412,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4413,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4416,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4417,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4422,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4423,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4427,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4428,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4429,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4431,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4432,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4433,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4436,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4437,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4439,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4443,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4447,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4449,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4450,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4453,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4454,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4457,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4458,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4459,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4462,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4463,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4464,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4465,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4466,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4467,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4468,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4469,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4477,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4478,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4482,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4483,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4484,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4485,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4487,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4492,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4493,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4494,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4498,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4499,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4502,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4505,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4506,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4512,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4514,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4515,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4516,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4517,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4525,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4526,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4527,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4532,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4537,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4538,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4539,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4540,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4541,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4542,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4543,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4546,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4549,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4554,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4555,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4559,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4560,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4561,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4564,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4580,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4581,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4582,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4584,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4587,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4588,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4595,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4596,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4597,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4598,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4612,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4617,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4619,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4620,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4624,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4625,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4629,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4630,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4633,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4642,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4644,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4645,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4647,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4648,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4653,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4667,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4672,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4687,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4699,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4700,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4715,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4720,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4724,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4732,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4735,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4738,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4739,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4740,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4743,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4774,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4782,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4783,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4789,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4796,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4805,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4806,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4808,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4809,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4811,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4819,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4820,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4821,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4822,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4826,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4827,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4828,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4830,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4832,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4835,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4838,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4840,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4842,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4844,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4846,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4850,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4863,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4868,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4869,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4870,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4872,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4873,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4874,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4875,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4876,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4877,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4878,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4879,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4880,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4881,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4882,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4883,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4887,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4888,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4889,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4893,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4894,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4895,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4897,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4904,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4904,1
    - Dst: test_cc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4905,1
    - Dst: jmp_rel
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4906,1
    - Dst: adjust_bnd
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4907,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4910,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4910,1
    - Dst: test_cc
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4911,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4916,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4917,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4918,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4920,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4921,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4922,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4923,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4926,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4931,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4937,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4939,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4951,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4952,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4953,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4954,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4957,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4959,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4962,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4964,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4967,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4969,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4973,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4976,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4978,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4979,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4980,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4982,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4984,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4988,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4989,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4990,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4991,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4994,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4996,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:4999,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5000,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5004,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5007,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5010,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5012,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5016,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5019,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5021,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5022,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5024,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5026,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5029,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5031,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5033,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5034,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5035,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5036,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5038,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5040,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5042,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5044,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5046,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5049,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5051,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5053,1
    - Dst: _POST_EFLAGS
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5054,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5059,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5061,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5067,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5069,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5072,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5073,1
    - Dst: x86_emul_reset_event
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5077,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5083,1
    - Dst: struct x86_emulate_ops*::cpuid
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5086,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5089,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5090,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5091,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5092,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5095,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5096,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5099,1
    - Dst: emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5103,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5107,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5108,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5109,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5110,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5113,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5120,1
    - Dst: truncate_word
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5121,1
    - Dst: _emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5130,1
    - Dst: _emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5133,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5138,1
    - Dst: emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5142,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5145,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5146,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5147,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5149,1
    - Dst: x86emul_0fae
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5151,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5154,1
    - Dst: emulate_2op_SrcV_srcmem
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5155,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5158,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5158,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5159,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5162,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5167,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5173,1
    - Dst: struct x86_emulate_ops*::cmpxchg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5174,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5199,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5201,1
    - Dst: emulate_2op_SrcV
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5202,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5203,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5207,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5208,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5209,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5213,1
    - Dst: emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5217,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5220,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5222,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5227,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5231,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5232,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5239,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5246,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5250,1
    - Dst: emulate_2op_SrcV_nobyte
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5254,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5257,1
    - Dst: emulate_2op_SrcV_srcmem
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5259,1
    - Dst: emulate_2op_SrcV_srcmem
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5262,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5268,1
    - Dst: emulate_2op_SrcV_srcmem
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5270,1
    - Dst: emulate_2op_SrcV_srcmem
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5273,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5279,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5281,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5286,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5290,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5290,1
    - Dst: CASE_SIMD_ALL_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5306,1
    - Dst: CASE_SIMD_PACKED_FP_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5308,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5315,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5316,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5323,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5324,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5329,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5331,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5335,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5336,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5351,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5353,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5358,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5360,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5361,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5368,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5369,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5370,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5371,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5373,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5375,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5376,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5378,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5386,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5388,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5389,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5394,1
    - Dst: CASE_SIMD_PACKED_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5403,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5404,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5407,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5410,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5412,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5413,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5414,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5419,1
    - Dst: x86emul_0fc7
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5420,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5423,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5423,1
    - Dst: decode_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5425,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5445,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5446,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5447,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5448,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5449,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5450,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5452,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5453,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5458,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5459,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5460,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5461,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5462,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5463,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5469,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5470,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5471,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5472,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5478,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5479,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5480,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5482,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5488,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5489,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5492,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5493,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5494,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5495,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5496,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5497,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5498,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5499,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5500,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5506,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5507,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5508,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5509,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5510,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5511,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5512,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5516,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5517,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5518,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5519,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5520,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5521,1
    - Dst: CASE_SIMD_PACKED_INT_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5528,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5529,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5532,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5534,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5535,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5539,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5540,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5544,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5545,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5546,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5556,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5563,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5566,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5568,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5569,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5571,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5575,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5587,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5587,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5591,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5592,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5593,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5594,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5595,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5596,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5597,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5598,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5599,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5600,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5601,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5602,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5603,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5604,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5605,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5606,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5610,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5614,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5615,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5617,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5633,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5634,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5635,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5637,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5640,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5641,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5644,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5645,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5646,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5649,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5650,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5651,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5653,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5654,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5657,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5658,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5662,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5663,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5664,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5667,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5674,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5684,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5692,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5693,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5695,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5700,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5701,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5702,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5703,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5704,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5705,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5706,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5707,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5708,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5709,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5710,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5711,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5714,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5715,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5716,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5717,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5718,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5719,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5720,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5721,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5722,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5723,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5724,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5725,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5726,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5727,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5728,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5729,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5730,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5733,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5734,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5735,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5736,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5737,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5741,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5742,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5743,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5744,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5745,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5746,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5749,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5750,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5751,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5752,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5753,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5754,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5755,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5756,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5757,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5758,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5759,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5763,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5764,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5765,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5766,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5767,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5768,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5769,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5770,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5771,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5772,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5773,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5774,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5775,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5776,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5777,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5778,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5781,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5786,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5787,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5788,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5792,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5793,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5794,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5796,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5801,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5802,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5803,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5806,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5807,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5808,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5812,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5813,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5815,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5825,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5826,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5832,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5834,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5836,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5838,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5840,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5842,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5846,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5848,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5851,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5853,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5855,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5858,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5861,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5862,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5863,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5864,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5865,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5866,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5867,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5868,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5869,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5870,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5871,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5872,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5876,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5877,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5878,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5880,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5881,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5883,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5885,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5886,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5891,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5892,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5893,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5898,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5903,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5907,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5908,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5916,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5917,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5918,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5924,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5927,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5928,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5931,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5932,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5933,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5934,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5936,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5938,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5939,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5942,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5953,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5954,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5961,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5964,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5966,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5967,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5973,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5984,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5985,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5986,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5987,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5988,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5989,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5990,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5991,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5992,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5993,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5994,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5995,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5996,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5997,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5998,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:5999,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6000,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6001,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6002,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6003,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6004,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6006,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6009,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6010,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6011,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6012,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6013,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6014,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6015,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6016,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6017,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6018,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6019,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6020,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6021,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6022,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6023,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6024,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6026,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6029,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6030,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6033,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6034,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6035,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6036,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6037,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6038,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6042,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6044,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6047,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6048,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6049,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6050,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6051,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6052,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6053,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6057,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6058,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6061,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6062,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6063,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6064,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6065,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6066,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6067,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6068,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6072,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6073,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6074,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6075,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6076,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6077,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6080,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6081,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6082,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6083,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6084,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6085,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6088,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6089,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6095,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6096,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6097,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6101,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6102,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6103,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6104,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6107,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6108,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6111,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6112,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6113,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6114,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6115,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6118,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6119,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6121,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6122,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6124,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6125,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6126,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6130,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6131,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6134,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6135,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6138,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6139,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6140,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6143,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6144,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6145,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6146,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6147,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6148,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6149,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6155,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6158,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6159,1
    - Dst: hweight64
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6161,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6168,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6169,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6170,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6174,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6175,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6176,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6179,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6180,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6181,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6184,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6185,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6186,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6187,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6188,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6190,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6191,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6192,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6197,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6198,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6199,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6201,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6203,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6204,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6208,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6209,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6210,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6211,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6217,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6218,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6219,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6220,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6222,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6223,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6226,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6227,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6228,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6230,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6234,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6238,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6240,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6241,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6243,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6244,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6249,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6250,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6251,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6252,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6252,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6254,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6258,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6259,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6264,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6264,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6268,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6270,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6272,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6279,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6282,1
    - Dst: struct x86_emulate_ops*::tlb_op
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6283,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6283,1
    - Dst: x86emul_invpcid_aux
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6284,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6293,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6294,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6295,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6299,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6300,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6301,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6302,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6306,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6307,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6308,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6309,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6311,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6312,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6319,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6320,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6323,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6324,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6325,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6328,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6329,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6333,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6337,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6339,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6343,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6346,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6349,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6352,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6353,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6358,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6359,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6367,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6368,1
    - Dst: local_events_need_delivery
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6384,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6398,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6399,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6403,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6407,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6409,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6413,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6416,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6417,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6426,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6427,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6428,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6429,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6431,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6438,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6439,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6443,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6444,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6445,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6448,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6449,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6463,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6465,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6470,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6471,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6474,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6475,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6480,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6490,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6491,1
    - Dst: local_events_need_delivery
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6510,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6519,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6520,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6528,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6530,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6542,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6544,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6545,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6554,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6555,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6556,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6557,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6558,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6559,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6560,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6561,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6562,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6563,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6564,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6565,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6566,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6567,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6568,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6569,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6570,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6571,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6572,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6573,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6574,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6575,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6576,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6577,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6578,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6579,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6580,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6581,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6582,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6583,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6584,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6587,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6588,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6589,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6590,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6592,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6599,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6600,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6601,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6605,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6606,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6607,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6610,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6611,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6618,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6620,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6625,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6626,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6629,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6630,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6640,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6661,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6666,1
    - Dst: local_events_need_delivery
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6680,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6689,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6695,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6697,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6698,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6707,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6708,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6709,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6710,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6714,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6715,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6716,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6717,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6720,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6721,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6722,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6723,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6726,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6727,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6728,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6729,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6730,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6731,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6732,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6736,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6737,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6738,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6739,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6740,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6744,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6745,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6748,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6749,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6750,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6753,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6754,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6755,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6759,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6760,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6761,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6762,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6763,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6764,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6765,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6766,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6770,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6771,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6772,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6773,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6776,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6777,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6778,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6779,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6783,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6784,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6785,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6786,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6788,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6790,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6793,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6794,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6795,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6796,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6797,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6798,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6803,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6804,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6805,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6805,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6807,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6808,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6812,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6813,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6814,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6815,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6832,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6837,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6838,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6839,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6861,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6866,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6867,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6868,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6869,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6870,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6871,1
    - Dst: X86EMUL_OPC_VEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6872,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6873,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6875,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6876,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6876,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6876,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6879,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6881,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6882,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6888,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6893,1
    - Dst: decode_vex_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6895,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6896,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6898,1
    - Dst: X86EMUL_OPC_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6902,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6904,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6905,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6905,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6905,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6912,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6918,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6924,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6929,1
    - Dst: decode_vex_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6931,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6932,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6934,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6938,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6939,1
    - Dst: rep_prefix
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6941,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6945,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6952,1
    - Dst: ASM_FLAG_OUT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6961,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6971,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6972,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6973,1
    - Dst: decode_vex_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6974,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6975,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6977,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6983,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6984,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6985,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6986,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6987,1
    - Dst: is_aligned
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6987,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6989,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6991,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6992,1
    - Dst: struct x86_emulate_ops*::blk
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:6994,1
    - Dst: X86EMUL_OPC_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7000,1
    - Dst: X86EMUL_OPC_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7001,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7002,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7003,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7004,1
    - Dst: mode_ring0
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7004,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7005,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7006,1
    - Dst: is_aligned
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7006,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7008,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7009,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7010,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7015,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7016,1
    - Dst: struct x86_emulate_ops*::read_msr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7017,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7020,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7021,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7024,1
    - Dst: struct x86_emulate_ops*::blk
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7026,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7032,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7033,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7034,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7035,1
    - Dst: struct x86_emulate_ops*::blk
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7037,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7045,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7046,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7047,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7050,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7051,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7052,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7056,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7057,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7058,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7059,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7061,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7062,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7065,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7066,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7067,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7068,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7070,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7071,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7072,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7075,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7076,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7077,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7081,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7082,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7083,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7084,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7085,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7086,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7087,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7088,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7089,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7090,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7091,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7094,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7095,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7096,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7098,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7099,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7100,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7101,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7102,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7105,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7106,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7108,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7109,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7110,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7111,1
    - Dst: CASE_SIMD_PACKED_INT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7116,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7117,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7121,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7125,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7126,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7128,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7145,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7146,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7148,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7152,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7153,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7154,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7155,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7156,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7157,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7159,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7166,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7170,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7177,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7178,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7180,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7181,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7182,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7184,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7190,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7191,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7192,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7193,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7194,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7195,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7196,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7199,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7202,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7205,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7206,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7214,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7215,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7216,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7217,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7218,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7222,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7224,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7226,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7227,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7228,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7231,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7233,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7235,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7237,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7240,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7241,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7243,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7245,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7247,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7251,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7253,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7255,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7257,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7260,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7261,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7265,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7266,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7270,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7271,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7273,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7276,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7277,1
    - Dst: init_evex
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7278,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7282,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7283,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7284,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7299,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7304,1
    - Dst: __builtin_ctz
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7313,1
    - Dst: __builtin_clz
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7317,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7325,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7326,1
    - Dst: copy_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7335,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7337,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7340,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7343,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7347,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7347,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7360,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7361,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7362,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7363,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7364,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7368,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7369,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7371,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7374,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7375,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7376,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7377,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7383,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7384,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7385,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7386,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7388,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7394,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7395,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7399,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7402,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7403,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7406,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7407,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7408,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7413,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7414,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7415,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7417,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7418,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7419,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7421,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7424,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7425,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7426,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7427,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7429,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7432,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7433,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7434,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7436,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7437,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7438,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7439,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7441,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7444,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7445,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7446,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7447,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7449,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7451,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7454,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7455,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7457,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7459,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7461,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7462,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7466,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7467,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7468,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7471,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7472,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7473,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7477,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7480,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7481,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7482,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7485,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7487,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7489,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7492,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7493,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7494,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7497,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7498,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7501,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7503,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7505,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7507,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7509,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7511,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7513,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7515,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7517,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7519,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7521,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7523,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7525,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7527,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7529,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7531,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7533,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7535,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7537,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7539,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7541,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7544,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7545,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7546,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7547,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7548,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7549,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7550,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7551,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7554,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7555,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7559,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7560,1
    - Dst: get_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7561,1
    - Dst: init_prefixes
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7564,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7577,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7583,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7591,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7594,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7598,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7603,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7607,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7608,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7609,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7610,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7613,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7614,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7617,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7618,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7619,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7620,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7623,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7624,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7627,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7628,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7629,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7632,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7633,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7634,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7637,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7638,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7640,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7641,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7642,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7644,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7647,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7648,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7652,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7653,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7654,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7657,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7658,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7659,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7660,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7663,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7664,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7665,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7666,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7670,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7671,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7672,1
    - Dst: X86EMUL_OPC_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7676,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7677,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7678,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7681,1
    - Dst: X86EMUL_OPC_VEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7686,1
    - Dst: vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7687,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7688,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7689,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7697,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7699,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7701,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7706,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7710,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7711,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7712,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7713,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7714,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7715,1
    - Dst: CASE_SIMD_SINGLE_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7716,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7717,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7718,1
    - Dst: CASE_SIMD_ALL_FP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7721,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7723,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7730,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7732,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7734,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7736,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7740,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7741,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7742,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7743,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7744,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7745,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7747,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7751,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7752,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7753,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7754,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7755,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7756,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7758,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7762,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7763,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7764,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7765,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7766,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7767,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7768,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7771,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7772,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7773,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7774,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7775,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7776,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7777,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7778,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7779,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7780,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7781,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7782,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7783,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7784,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7785,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7786,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7787,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7788,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7789,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7790,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7791,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7792,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7793,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7795,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7798,1
    - Dst: X86EMUL_OPC_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7799,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7800,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7801,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7802,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7803,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7804,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7805,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7806,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7807,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7808,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7809,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7810,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7811,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7812,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7813,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7814,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7815,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7818,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7821,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7822,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7823,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7824,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7827,1
    - Dst: X86EMUL_OPC_EVEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7828,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7829,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7830,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7831,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7834,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7835,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7836,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7837,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7840,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7841,1
    - Dst: X86EMUL_OPC_EVEX_F3
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7842,1
    - Dst: X86EMUL_OPC_EVEX_F2
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7843,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7847,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7848,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7850,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7854,1
    - Dst: avx512_vlen_check
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7858,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7862,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7863,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7864,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7865,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7866,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7867,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7868,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7869,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7870,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7871,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7872,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7873,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7874,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7875,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7876,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7877,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7878,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7879,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7880,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7881,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7882,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7883,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7884,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7885,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7886,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7888,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7890,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7892,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7894,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7899,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7909,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7917,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7918,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7918,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7918,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7920,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7929,1
    - Dst: decode_vex_gpr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7931,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7932,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7934,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7938,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7943,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7948,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7954,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7960,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7961,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7962,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7964,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7965,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7966,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7967,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7970,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7971,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7972,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7973,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7974,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7975,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7976,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7977,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7978,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7979,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7980,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7981,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7982,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7983,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7984,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7985,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7987,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7989,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7991,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7993,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7995,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7997,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:7999,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8001,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8003,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8005,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8007,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8009,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8011,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8012,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8017,1
    - Dst: get_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8019,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8020,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8020,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8020,1
    - Dst: host_and_vcpu_must_have
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8022,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8023,1
    - Dst: read_ulong
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8027,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8038,1
    - Dst: emulate_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8040,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8042,1
    - Dst: X86EMUL_OPC_XOP
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8046,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8052,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8082,1
    - Dst: struct x86_emulate_ops*::rmw
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8093,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8125,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8126,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8129,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8130,1
    - Dst: evex_encoded
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8132,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8134,1
    - Dst: copy_EVEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8135,1
    - Dst: place_ret
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8139,1
    - Dst: copy_REX_VEX
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8140,1
    - Dst: vcpu_has_misalignsse
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8162,1
    - Dst: generate_exception_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8164,1
    - Dst: is_aligned
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8165,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8169,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8172,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8177,1
    - Dst: __builtin_ctzll
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8187,1
    - Dst: __builtin_clzll
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8191,1
    - Dst: struct x86_emulate_ops*::read
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8210,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8210,1
    - Dst: EXPECT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8220,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8225,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8231,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8232,1
    - Dst: X86EMUL_OPC_VEX_66
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8233,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8238,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8254,1
    - Dst: X86EMUL_OPC
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8256,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8257,1
    - Dst: invoke_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8259,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8261,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8282,1
    - Dst: struct x86_emulate_ops*::cmpxchg
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8283,1
    - Dst: fail_if
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8291,1
    - Dst: struct x86_emulate_ops*::write
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8292,1
    - Dst: truncate_ea
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8292,1
    - Dst: put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8307,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8311,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8312,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8312,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8325,1
    - Dst: struct cpu_user_regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8325,1
    - Dst: put_fpu
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8332,1
    - Dst: put_stub
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8333,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8340,1
    - Dst: struct x86_emulate_ops*::read_cr
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8343,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8345,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8347,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8351,1
    - Dst: generate_exception
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8354,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8355,1
    CyclomaticComplexity: 1501
    EdgeCount: 1501
    ICount: 5335
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8361
      start: 1255
    functionDepth: 11
    functionLinenumber: 1255
    functionLinenumberEnd: 8361
    functionName: x86_emulate
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 6
    functionsReached:
    - X86EMUL_OPC
    - sp_pre_dec
    - struct x86_emulate_ops*::write
    - generate_exception_if
    - invoke_stub
    - typeof
    - ioport_access_check
    - likely
    - vcpu_has_wbnoinvd
    - hweight64
    - get_loop_count
    - X86EMUL_OPC_F2
    - struct x86_emulate_ops*::blk
    - get_fpu
    - struct x86_emulate_ops*::read
    - X86EMUL_OPC_EVEX_F3
    - DECLARE_ALIGNED
    - register_address_adjust
    - container_of
    - X86EMUL_OPC_VEX_F3
    - adjust_bnd
    - struct x86_emulate_ops*::rep_outs
    - in_protmode
    - init_context
    - x86emul_decode
    - is_canonical_address
    - copy_EVEX
    - domain_crash
    - X86EMUL_OPC_EVEX_66
    - put_fpu
    - struct x86_emulate_ops*::rep_ins
    - struct x86_emulate_ops*::write_io
    - validate_far_branch
    - X86EMUL_OPC_EVEX_F2
    - truncate_ea_and_reps
    - vcpu_must_have
    - emulate_1op
    - vcpu_has_rtm
    - struct x86_emulate_ops*::cache_op
    - CASE_SIMD_SINGLE_FP
    - __builtin_ctzll
    - is_x86_user_segment
    - fail_if
    - copy_VEX
    - struct x86_emulate_ops*::read_msr
    - is_branch_step
    - amd_like
    - sp_post_inc
    - decode_gpr
    - struct x86_emulate_ops*::write_msr
    - X86EMUL_OPC_XOP
    - x86emul_invpcid_aux
    - ASM_FLAG_OUT
    - repe_prefix
    - load_seg
    - __builtin_clzll
    - protmode_load_seg
    - put_stub
    - MASK_EXTR
    - struct x86_emulate_ops*::rep_stos
    - X86EMUL_OPC_EVEX
    - CASE_SIMD_SINGLE_FP_VEX
    - struct x86_emulate_ops*::insn_fetch
    - idiv_dbl
    - place_ret
    - X86EMUL_OPC_VEX_66
    - struct x86_emulate_ops*::tlb_op
    - mode_ring0
    - truncate_ea
    - __builtin_ctz
    - struct cpu_user_regs::r
    - ASSERT_UNREACHABLE
    - mul_dbl
    - copy_REX_VEX
    - CASE_SIMD_ALL_FP_VEX
    - x86emul_0f01
    - imul_dbl
    - mode_vif
    - put_rep_prefix
    - truncate_word
    - test_cc
    - struct x86_emulate_ctxt*::regs::r
    - memcpy
    - X86EMUL_OPC_VEX
    - umip_active
    - emulate_stub
    - _decode_gpr
    - CASE_SIMD_PACKED_FP
    - __builtin_clz
    - emulate_2op_SrcV_nobyte
    - CASE_SIMD_SCALAR_FP_VEX
    - _POST_EFLAGS
    - generate_exception
    - x86emul_fpu
    - in_realmode
    - struct x86_emulate_ops*::cpuid
    - x86_emul_reset_event
    - host_and_vcpu_must_have
    - X86EMUL_OPC_66
    - read_ulong
    - init_prefixes
    - rep_prefix
    - X86EMUL_OPC_F3
    - repne_prefix
    - struct x86_emulate_ops*::read_segment
    - memset
    - vcpu_has_misalignsse
    - struct x86_emulate_ops*::read_io
    - CASE_SIMD_PACKED_INT_VEX
    - x86emul_0fae
    - struct x86_emulate_ops*::write_segment
    - local_events_need_delivery
    - decode_vex_gpr
    - evex_encoded
    - struct x86_emulate_ops*::write_cr
    - avx512_vlen_check
    - GRP2
    - struct x86_emulate_ops*::validate
    - BUILD_BUG_ON
    - gprintk
    - get_rep_prefix
    - __builtin_return_address
    - write
    - CASE_SIMD_SCALAR_FP
    - emulate_2op_SrcV
    - struct x86_emulate_ops*::rmw
    - struct x86_emulate_ops*::rep_movs
    - init_evex
    - x86emul_0fc7
    - x86emul_get_fpu
    - commit_far_branch
    - struct x86_emulate_ops*::read_cr
    - mode_iopl
    - ASSERT
    - emulate_2op_SrcV_srcmem
    - _emulate_2op_SrcV_nobyte
    - put_loop_count
    - CASE_SIMD_PACKED_INT
    - X86EMUL_OPC_VEX_F2
    - read
    - CASE_SIMD_ALL_FP
    - EXPECT
    - is_aligned
    - struct x86_emulate_ops*::cmpxchg
    - get_stub
    - mode_64bit
    - CASE_SIMD_PACKED_FP_VEX
    - jmp_rel
    - div_dbl
    - even_parity
    linkageType: ''
    returnType: int
    signature: "int x86_emulate(\n    struct x86_emulate_ctxt *ctxt,\n    const struct
      x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2294
    functionName: GRP2
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GRP2(name, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3215
    functionDepth: 0
    functionLinenumber: 3215
    functionLinenumberEnd: 3218
    functionName: CASE_SIMD_PACKED_INT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3221
    functionName: CASE_SIMD_PACKED_INT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3222
    functionDepth: 0
    functionLinenumber: 3222
    functionLinenumberEnd: 3224
    functionName: CASE_SIMD_PACKED_INT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3225
    functionDepth: 0
    functionLinenumber: 3225
    functionLinenumberEnd: 3226
    functionName: CASE_SIMD_PACKED_INT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3230
    functionDepth: 0
    functionLinenumber: 3230
    functionLinenumberEnd: 3233
    functionName: CASE_SIMD_PACKED_INT_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3234
    functionDepth: 0
    functionLinenumber: 3234
    functionLinenumberEnd: 3237
    functionName: CASE_SIMD_ALL_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_ALL_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3237
    functionDepth: 0
    functionLinenumber: 3237
    functionLinenumberEnd: 3240
    functionName: CASE_SIMD_PACKED_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3240
    functionDepth: 0
    functionLinenumber: 3240
    functionLinenumberEnd: 3243
    functionName: CASE_SIMD_SCALAR_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SCALAR_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3243
    functionDepth: 0
    functionLinenumber: 3243
    functionLinenumberEnd: 3246
    functionName: CASE_SIMD_SINGLE_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SINGLE_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3250
      start: 3247
    functionDepth: 0
    functionLinenumber: 3247
    functionLinenumberEnd: 3250
    functionName: CASE_SIMD_ALL_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_ALL_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3253
    functionName: CASE_SIMD_PACKED_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3253
    functionDepth: 0
    functionLinenumber: 3253
    functionLinenumberEnd: 3256
    functionName: CASE_SIMD_SCALAR_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SCALAR_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3256
    functionDepth: 0
    functionLinenumber: 3256
    functionLinenumberEnd: 3259
    functionName: CASE_SIMD_SINGLE_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SINGLE_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3262
    functionDepth: 0
    functionLinenumber: 3262
    functionLinenumberEnd: 3264
    functionName: CASE_SIMD_PACKED_INT_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_INT_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3265
    functionDepth: 0
    functionLinenumber: 3265
    functionLinenumberEnd: 3266
    functionName: CASE_SIMD_ALL_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_ALL_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3266
    functionDepth: 0
    functionLinenumber: 3266
    functionLinenumberEnd: 3267
    functionName: CASE_SIMD_PACKED_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3268
      start: 3267
    functionDepth: 0
    functionLinenumber: 3267
    functionLinenumberEnd: 3268
    functionName: CASE_SIMD_SCALAR_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SCALAR_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3269
      start: 3268
    functionDepth: 0
    functionLinenumber: 3268
    functionLinenumberEnd: 3269
    functionName: CASE_SIMD_SINGLE_FP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SINGLE_FP(kind, pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3271
      start: 3270
    functionDepth: 0
    functionLinenumber: 3270
    functionLinenumberEnd: 3271
    functionName: CASE_SIMD_ALL_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_ALL_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3271
    functionDepth: 0
    functionLinenumber: 3271
    functionLinenumberEnd: 3272
    functionName: CASE_SIMD_PACKED_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_PACKED_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3272
    functionDepth: 0
    functionLinenumber: 3272
    functionLinenumberEnd: 3273
    functionName: CASE_SIMD_SCALAR_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SCALAR_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfx
    - ','
    - opc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3273
    functionDepth: 0
    functionLinenumber: 3273
    functionLinenumberEnd: 3274
    functionName: CASE_SIMD_SINGLE_FP_VEX
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_SIMD_SINGLE_FP_VEX(pfx, opc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8402
      start: 8397
    functionDepth: 0
    functionLinenumber: 8397
    functionLinenumberEnd: 8402
    functionName: COND_LOCK
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_LOCK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8410
      start: 8405
    functionDepth: 0
    functionLinenumber: 8405
    functionLinenumberEnd: 8410
    functionName: UNOP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNOP(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8416
      start: 8410
    functionDepth: 0
    functionLinenumber: 8410
    functionLinenumberEnd: 8416
    functionName: BINOP
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINOP(op, sfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8421
      start: 8416
    functionDepth: 0
    functionLinenumber: 8416
    functionLinenumberEnd: 8421
    functionName: SHIFT
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIFT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sz
    - ','
    - cst
    - ','
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8534
      start: 8522
    functionDepth: 0
    functionLinenumber: 8522
    functionLinenumberEnd: 8534
    functionName: XADD
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XADD(sz, cst, mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8584,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8585,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8586,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8587,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8588,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8589,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8592,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8593,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8594,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8595,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8596,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8597,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8599
      start: 8581
    functionDepth: 0
    functionLinenumber: 8581
    functionLinenumberEnd: 8599
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8610,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8614,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8615,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8617,1
    - Dst: mode_64bit
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8617,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8620,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8626,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8634,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8637,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8642,1
    - Dst: struct x86_emulate_ctxt*::regs::r
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8642,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c:8652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - ops
    argTypes:
    - struct x86_emulate_ctxt*
    - struct x86_emulate_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8655
      start: 8606
    functionDepth: 12
    functionLinenumber: 8606
    functionLinenumberEnd: 8655
    functionName: x86_emulate_wrapper
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    functionUses: 0
    functionsReached:
    - typeof
    - mode_64bit
    - ASSERT
    - x86_emulate
    - struct x86_emulate_ctxt*::regs::r
    linkageType: ''
    returnType: int
    signature: "int x86_emulate_wrapper(\n    struct x86_emulate_ctxt *ctxt,\n    const
      struct x86_emulate_ops *ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: cpu_has_amd_erratum
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_has_amd_erratum(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: cpu_has_amd_erratum
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_has_amd_erratum(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: fpu_check_write
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool fpu_check_write(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opc
    - ','
    - ext
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: emulate_fpu_insn_memdst
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_fpu_insn_memdst(opc, ext, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opc
    - ','
    - ext
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: emulate_fpu_insn_memsrc
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_fpu_insn_memsrc(opc, ext, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - bytes
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: emulate_fpu_insn_stub_eflags
    functionSourceFile: /src/xen/xen/arch/x86/x86_emulate/fpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_fpu_insn_stub_eflags(bytes...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:21,1
    - Dst: clac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: copy_to_guest_ll
    functionSourceFile: /src/xen/xen/arch/x86/lib/copy-guest.c
    functionUses: 1
    functionsReached:
    - clac
    - stac
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_to_guest_ll(void __user *to, const void *from, unsigned
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:41,1
    - Dst: clac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: copy_from_guest_ll
    functionSourceFile: /src/xen/xen/arch/x86/lib/copy-guest.c
    functionUses: 1
    functionsReached:
    - clac
    - stac
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_from_guest_ll(void *to, const void __user *from,
      unsigned int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access_ok
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:82,1
    - Dst: __copy_to_guest_pv
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: copy_to_guest_pv
    functionSourceFile: /src/xen/xen/arch/x86/lib/copy-guest.c
    functionUses: 2
    functionsReached:
    - access_ok
    - __copy_to_guest_pv
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int copy_to_guest_pv(void __user *to, const void *from, unsigned
      int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access_ok
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:99,1
    - Dst: stac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:103,1
    - Dst: clac
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - to
    - n
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: clear_guest_pv
    functionSourceFile: /src/xen/xen/arch/x86/lib/copy-guest.c
    functionUses: 0
    functionsReached:
    - access_ok
    - clac
    - stac
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int clear_guest_pv(void __user *to, unsigned int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access_ok
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:135,1
    - Dst: __copy_from_guest_pv
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:136,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/copy-guest.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - to
    - from
    - n
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: copy_from_guest_pv
    functionSourceFile: /src/xen/xen/arch/x86/lib/copy-guest.c
    functionUses: 10
    functionsReached:
    - __copy_from_guest_pv
    - access_ok
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int copy_from_guest_pv(void *to, const void __user *from,\n
      \                               unsigned int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:66,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:67,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:68,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:69,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:70,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:72,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/arch/x86/lib/generic-hweightl.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: test_arch_generic_hweightl
    functionSourceFile: /src/xen/xen/arch/x86/lib/generic-hweightl.c
    functionUses: 0
    functionsReached:
    - RUNTIME_CHECK
    linkageType: ''
    returnType: void
    signature: void test_arch_generic_hweightl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: array_access_nospec
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_access_nospec(a, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - index
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: copy_from_buffer_offset
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_from_buffer_offset(dst, src, index, nr)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_buffer_offset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:73,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:80,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:84,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:87,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:91,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:94,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:98,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:101,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:105,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:108,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:115,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:134,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:138,1
    - Dst: x86_cpu_policy_recalc_synth
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:146,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 78
    argCount: 5
    argNames:
    - p
    - leaves
    - nr_entries
    - err_leaf
    - err_subleaf
    argTypes:
    - struct cpu_policy*
    - cpuid_leaf_buffer_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 157
    functionName: x86_cpuid_copy_from_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
    functionUses: 6
    functionsReached:
    - array_access_nospec
    - copy_from_buffer_offset
    - ARRAY_SIZE
    - x86_cpu_policy_recalc_synth
    linkageType: ''
    returnType: int
    signature: "int x86_cpuid_copy_from_buffer(struct cpu_policy *p,\n                               const
      cpuid_leaf_buffer_t leaves,\n                               uint32_t nr_entries,
      uint32_t *err_leaf,\n                               uint32_t *err_subleaf)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_buffer_offset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:185,1
    - Dst: ASSIGN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:210,1
    - Dst: ASSIGN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c:211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - p
    - msrs
    - nr_entries
    - err_msr
    argTypes:
    - struct cpu_policy*
    - msr_entry_buffer_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 228
    functionName: x86_msr_copy_from_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
    functionUses: 5
    functionsReached:
    - ASSIGN
    - copy_from_buffer_offset
    linkageType: ''
    returnType: int
    signature: "int x86_msr_copy_from_buffer(struct cpu_policy *p,\n                             const
      msr_entry_buffer_t msrs, uint32_t nr_entries,\n                             uint32_t
      *err_msr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 209
    functionName: ASSIGN
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bit
    - vaddr
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: test_bit
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/private.h
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test_bit(unsigned int bit, const void *vaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:9,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - l
    - first
    - last
    argTypes:
    - struct cpuid_leaf*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: zero_leaves
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void zero_leaves(struct cpuid_leaf *l,\n                        unsigned
      int first, unsigned int last)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 3
    argNames:
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 48
    functionName: x86_cpuid_lookup_vendor
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int x86_cpuid_lookup_vendor(uint32_t ebx, uint32_t ecx, uint32_t
      edx)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - vendor
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: x86_cpuid_vendor_to_str
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *x86_cpuid_vendor_to_str(unsigned int vendor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - p
    - fs
    argTypes:
    - struct cpu_policy*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: x86_cpu_policy_to_featureset
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void x86_cpu_policy_to_featureset(\n    const struct cpu_policy *p,
      uint32_t fs[FEATURESET_NR_ENTRIES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - fs
    - p
    argTypes:
    - uint32_t[]
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 109
    functionName: x86_cpu_featureset_to_policy
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void x86_cpu_featureset_to_policy(\n    const uint32_t fs[FEATURESET_NR_ENTRIES],
      struct cpu_policy *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: x86_cpu_policy_recalc_synth
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 2
    functionsReached:
    - x86_cpuid_lookup_vendor
    linkageType: ''
    returnType: void
    signature: void x86_cpu_policy_recalc_synth(struct cpu_policy *p)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:121,1
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:122,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:123,1
    - Dst: cpuid_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:132,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:137,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:144,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:157,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:158,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:165,1
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:167,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:168,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:169,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:179,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:181,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:194,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:195,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:196,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:205,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:206,1
    - Dst: cpu_policy_xstates
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:208,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:211,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:211,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:214,1
    - Dst: cpuid_count_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:217,1
    - Dst: cpuid_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:222,1
    - Dst: for
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:223,1
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:223,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:224,1
    - Dst: cpuid_leaf
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:225,1
    - Dst: if
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:234,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:235,1
    - Dst: x86_cpu_policy_recalc_synth
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:238,1
    - Dst: x86_cpu_policy_clear_out_of_range_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:241,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:245,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:246,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:249,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:252,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:256,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:256,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:260,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:262,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:263,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:266,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:269,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:273,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:273,1
    - Dst: cpu_policy_xstates
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:276,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:277,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:281,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:281,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:284,1
    - Dst: __builtin_clzll
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:284,1
    - Dst: cpu_policy_xstates
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:284,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:286,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:287,1
    - Dst: zero_leaves
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:290,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:291,1
    - Dst: x86_cpu_policy_lookup_deep_deps
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:294,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:301,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c:306,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 333
    functionName: x86_cpu_policy_fill_native
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    functionUses: 3
    functionsReached:
    - x86_cpu_policy_clear_out_of_range_leaves
    - max
    - test_bit
    - ARRAY_SIZE
    - if
    - __builtin_clzll
    - cpuid_count_leaf
    - rdmsrl
    - x86_cpu_policy_lookup_deep_deps
    - BUILD_BUG_ON
    - zero_leaves
    - for
    - printk
    - x86_cpu_policy_recalc_synth
    - memset
    - cpuid_leaf
    - MIN
    - cpu_policy_xstates
    linkageType: ''
    returnType: void
    signature: void x86_cpu_policy_fill_native(struct cpu_policy *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FAIL_CPUID
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c:19,1
    - Dst: FAIL_CPUID
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c:22,1
    - Dst: FAIL_CPUID
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c:25,1
    - Dst: FAIL_MSR
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - host
    - guest
    - err
    argTypes:
    - struct cpu_policy*
    - struct cpu_policy*
    - struct cpu_policy_errors*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 44
    functionName: x86_cpu_policies_are_compatible
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c
    functionUses: 4
    functionsReached:
    - FAIL_CPUID
    - FAIL_MSR
    linkageType: ''
    returnType: int
    signature: "int x86_cpu_policies_are_compatible(const struct cpu_policy *host,\n
      \                                   const struct cpu_policy *guest,\n                                    struct
      cpu_policy_errors *err)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: FAIL_CPUID
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_CPUID(l, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: FAIL_MSR
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_MSR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - index
    - ','
    - src
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: copy_to_buffer_offset
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_buffer_offset(dst, index, src, nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_to_buffer_offset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - leaf
    - subleaf
    - data
    - leaves
    - curr_entry
    - nr_entries
    argTypes:
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    - cpuid_leaf_buffer_t
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: copy_leaf_to_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 0
    functionsReached:
    - copy_to_buffer_offset
    linkageType: ''
    returnType: int
    signature: "int copy_leaf_to_buffer(uint32_t leaf, uint32_t subleaf,\n                               const
      struct cpuid_leaf *data,\n                               cpuid_leaf_buffer_t
      leaves,\n                               uint32_t *curr_entry, const uint32_t
      nr_entries)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:80,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:81,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:86,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:88,1
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:97,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:98,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:99,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:103,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:105,1
    - Dst: cpu_policy_xstates
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:114,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:116,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:117,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:120,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:122,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:127,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:133,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:135,1
    - Dst: MIN
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:139,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:140,1
    - Dst: COPY_LEAF
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:141,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - p
    - leaves
    - nr_entries_p
    argTypes:
    - struct cpu_policy*
    - cpuid_leaf_buffer_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 148
    functionName: x86_cpuid_copy_to_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 7
    functionsReached:
    - COPY_LEAF
    - MIN
    - cpu_policy_xstates
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: "int x86_cpuid_copy_to_buffer(const struct cpu_policy *p,\n                             cpuid_leaf_buffer_t
      leaves, uint32_t *nr_entries_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - s
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: COPY_LEAF
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_LEAF(l, s, data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: copy_to_buffer_offset
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - idx
    - val
    - msrs
    - curr_entry
    - nr_entries
    argTypes:
    - uint32_t
    - uint64_t
    - msr_entry_buffer_t
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: copy_msr_to_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 0
    functionsReached:
    - copy_to_buffer_offset
    linkageType: ''
    returnType: int
    signature: "int copy_msr_to_buffer(uint32_t idx, uint64_t val,\n                              msr_entry_buffer_t
      msrs,\n                              uint32_t *curr_entry, const uint32_t nr_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_MSR
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:186,1
    - Dst: COPY_MSR
      Src: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - msrs
    - nr_entries_p
    argTypes:
    - struct cpu_policy*
    - msr_entry_buffer_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: x86_msr_copy_to_buffer
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 5
    functionsReached:
    - COPY_MSR
    linkageType: ''
    returnType: int
    signature: "int x86_msr_copy_to_buffer(const struct cpu_policy *p,\n                           msr_entry_buffer_t
      msrs, uint32_t *nr_entries_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: COPY_MSR
    functionSourceFile: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_MSR(idx, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: is_vmx_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_vmx_vcpu(v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:110,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:110,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:112,1
    - Dst: MSR_P6_PERFCTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:112,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:122,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - msr_content
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 128
    functionName: handle_pmc_quirk
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - MSR_P6_PERFCTR
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void handle_pmc_quirk(u64 msr_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:137,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: core2_get_arch_pmc_count
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - cpuid_eax
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int core2_get_arch_pmc_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:146,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: core2_get_fixed_pmc_count
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - cpuid_edx
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int core2_get_fixed_pmc_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:156,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: core2_get_bitwidth_fix_count
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - cpuid_edx
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int core2_get_bitwidth_fix_count(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:188,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:189,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:191,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - msr_index
    - type
    - index
    argTypes:
    - u32
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 206
    functionName: is_core2_vpmu_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - MSR_P6_EVNTSEL
    linkageType: ''
    returnType: int
    signature: int is_core2_vpmu_msr(u32 msr_index, int *type, int *index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:214,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:218,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:221,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:226,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:226,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:228,1
    - Dst: vmx_clear_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: core2_vpmu_set_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - vmx_clear_msr_intercept
    - MSR_P6_EVNTSEL
    linkageType: ''
    returnType: void
    signature: void core2_vpmu_set_msr_bitmap(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:237,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:241,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:244,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:248,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:248,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:250,1
    - Dst: vmx_set_msr_intercept
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: core2_vpmu_unset_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - vmx_set_msr_intercept
    - MSR_P6_EVNTSEL
    linkageType: ''
    returnType: void
    signature: void core2_vpmu_unset_msr_bitmap(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:257,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:258,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:260,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:263,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:266,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:267,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:267,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:270,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:271,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:273,1
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 276
    functionName: __core2_vpmu_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - MSR_P6_EVNTSEL
    - is_vmx_vcpu
    - vmx_read_guest_msr
    - rdmsrl
    - vcpu_vpmu
    - vpmu_reg_pointer
    - mem_sharing_enabled
    linkageType: ''
    returnType: void
    signature: void __core2_vpmu_save(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:280,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:282,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:283,1
    - Dst: vpmu_are_all_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:285,1
    - Dst: __core2_vpmu_save
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:288,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:291,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:291,1
    - Dst: core2_vpmu_unset_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:293,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:297,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:297,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - v
    - to_guest
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: core2_vpmu_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 1
    functionsReached:
    - is_vmx_vcpu
    - has_vlapic
    - __core2_vpmu_save
    - vcpu_vpmu
    - core2_vpmu_unset_msr_bitmap
    - ASSERT
    - vpmu_is_set
    - wrmsrl
    - memcpy
    - vpmu_are_all_set
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_save(struct vcpu *v, bool to_guest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:308,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:309,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:311,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:314,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:322,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:323,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:323,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:326,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:327,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:327,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:328,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:330,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:332,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:334,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:337,1
    - Dst: vmx_write_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 340
    functionName: __core2_vpmu_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - vmx_write_guest_msr
    - MSR_P6_EVNTSEL
    - is_vmx_vcpu
    - vcpu_vpmu
    - vpmu_is_set
    - wrmsrl
    - mem_sharing_is_fork
    - vpmu_reg_pointer
    linkageType: ''
    returnType: void
    signature: void __core2_vpmu_load(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:345,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:346,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:347,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:349,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:384,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:385,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:386,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:387,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:392,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:394,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 399
    functionName: core2_vpmu_verify
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - is_vmx_vcpu
    - vcpu_vpmu
    - is_canonical_address
    - vpmu_is_set
    - vpmu_reg_pointer
    - __addr_ok
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_verify(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:403,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:405,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:412,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:412,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:414,1
    - Dst: core2_vpmu_verify
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:418,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:425,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:430,1
    - Dst: __core2_vpmu_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - v
    - from_guest
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 435
    functionName: core2_vpmu_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 1
    functionsReached:
    - vpmu_set
    - has_vlapic
    - core2_vpmu_verify
    - vcpu_vpmu
    - ASSERT
    - vpmu_is_set
    - memset
    - __core2_vpmu_load
    - memcpy
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_load(struct vcpu *v, bool from_guest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:439,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:443,1
    - Dst: vmx_add_host_load_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:445,1
    - Dst: vmx_add_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:448,1
    - Dst: _xzalloc
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:460,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:462,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:474,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:477,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:478,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:481,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:487,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:488,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:490,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 437
    functionDepth: 6
    functionLinenumber: 437
    functionLinenumberEnd: 494
    functionName: core2_vpmu_alloc_resource
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - vpmu_set
    - is_vmx_vcpu
    - has_vlapic
    - _xzalloc
    - vcpu_vpmu
    - vmx_add_host_load_msr
    - vmx_add_guest_msr
    - ASSERT
    - printk
    - xfree
    - memcpy
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_alloc_resource(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:498,1
    - Dst: is_core2_vpmu_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:500,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:503,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:503,1
    - Dst: core2_vpmu_alloc_resource
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:504,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:508,1
    - Dst: __core2_vpmu_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:510,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:511,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:513,1
    - Dst: core2_vpmu_set_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - msr_index
    - type
    - index
    argTypes:
    - u32
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 7
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: core2_vpmu_msr_common_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - core2_vpmu_alloc_resource
    - vpmu_set
    - is_vmx_vcpu
    - core2_vpmu_set_msr_bitmap
    - vcpu_vpmu
    - vpmu_is_set
    - unlikely
    - __core2_vpmu_load
    - is_core2_vpmu_msr
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_msr_common_check(u32 msr_index, int *type, int *index)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:524,1
    - Dst: core2_vpmu_msr_common_check
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:528,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:543,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:546,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:560,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:562,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:562,1
    - Dst: __addr_ok
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:563,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:565,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:573,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:584,1
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:585,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:588,1
    - Dst: MSR_P6_EVNTSEL
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:604,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:610,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:653,1
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:654,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:657,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:670,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:673,1
    - Dst: vmx_write_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:674,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:676,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:681,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:683,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 104
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 519
    functionDepth: 8
    functionLinenumber: 519
    functionLinenumberEnd: 686
    functionName: core2_vpmu_do_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - vpmu_reg_pointer
    - is_vmx_vcpu
    - MSR_P6_EVNTSEL
    - vmx_write_guest_msr
    - vpmu_set
    - vmx_read_guest_msr
    - vpmu_reset
    - core2_vpmu_msr_common_check
    - vcpu_vpmu
    - rdmsrl
    - vpmu_is_set
    - wrmsrl
    - is_canonical_address
    - __addr_ok
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:692,1
    - Dst: core2_vpmu_msr_common_check
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:695,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:707,1
    - Dst: vmx_read_guest_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:708,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:710,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:713,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:720,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 688
    functionDepth: 8
    functionLinenumber: 688
    functionLinenumberEnd: 726
    functionName: core2_vpmu_do_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - is_vmx_vcpu
    - vmx_read_guest_msr
    - core2_vpmu_msr_common_check
    - vcpu_vpmu
    - rdmsrl
    - vpmu_is_set
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:731,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:738,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:741,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:743,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:744,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:746,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:750,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:752,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:753,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:757,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:767,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 772
    functionName: core2_vpmu_dump
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - vpmu_reg_pointer
    - vpmu_is_set
    - vcpu_vpmu
    - printk
    linkageType: ''
    returnType: void
    signature: void core2_vpmu_dump(const struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:778,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:781,1
    - Dst: handle_pmc_quirk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:785,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:789,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 800
    functionName: core2_vpmu_do_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - handle_pmc_quirk
    - rdmsrl
    - vcpu_vpmu
    - wrmsrl
    - __vmread
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_do_interrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:804,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:806,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:808,1
    - Dst: is_vmx_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:810,1
    - Dst: core2_vpmu_unset_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:811,1
    - Dst: vpmu_clear
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 813
    functionName: core2_vpmu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - is_vmx_vcpu
    - vcpu_vpmu
    - core2_vpmu_unset_msr_bitmap
    - vpmu_clear
    - xfree
    linkageType: ''
    returnType: void
    signature: void core2_vpmu_destroy(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:817,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:831,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:833,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:836,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:840,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:841,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:845,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:847,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:852,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:855,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:856,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:858,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:859,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:860,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:861,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:862,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:863,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:864,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:865,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:873,1
    - Dst: core2_vpmu_alloc_resource
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:873,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 815
    functionDepth: 7
    functionLinenumber: 815
    functionLinenumberEnd: 877
    functionName: core2_vpmu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - vpmu_set
    - vpmu_reset
    - core2_vpmu_alloc_resource
    - boot_cpu_has
    - rdmsrl
    - vcpu_vpmu
    - printk
    linkageType: ''
    returnType: int
    signature: int core2_vpmu_initialise(struct vcpu *v)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:900,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:900,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:906,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:915,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:917,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:922,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:923,1
    - Dst: core2_get_arch_pmc_count
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:926,1
    - Dst: core2_get_fixed_pmc_count
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:927,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:933,1
    - Dst: core2_get_bitwidth_fix_count
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:943,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:966,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_intel.c:969,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 973
    functionName: core2_vpmu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
    functionUses: 0
    functionsReached:
    - core2_get_arch_pmc_count
    - ERR_PTR
    - rdmsrl
    - cpuid_eax
    - printk
    - core2_get_fixed_pmc_count
    - core2_get_bitwidth_fix_count
    - MASK_EXTR
    linkageType: ''
    returnType: struct arch_vpmu_ops
    signature: struct arch_vpmu_ops *__init core2_vpmu_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:59,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:62,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:63,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/cpu/common.c:64,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:66,1
    - Dst: x86_cpu_policy_lookup_deep_deps
      Src: /src/xen/xen/arch/x86/cpu/common.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:77,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/cpu/common.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - cap
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 81
    functionName: setup_clear_cpu_cap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 14
    functionsReached:
    - __clear_bit
    - x86_cpu_policy_lookup_deep_deps
    - __builtin_return_address
    - printk
    - __test_and_set_bit
    - test_bit
    linkageType: ''
    returnType: void
    signature: void setup_clear_cpu_cap(unsigned int cap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:85,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:88,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:89,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/cpu/common.c:90,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cap
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: setup_force_cpu_cap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 18
    functionsReached:
    - __set_bit
    - __builtin_return_address
    - printk
    - __test_and_set_bit
    - test_bit
    linkageType: ''
    returnType: void
    signature: void setup_force_cpu_cap(unsigned int cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:99,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cap
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: is_forced_cpu_cap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 1
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool is_forced_cpu_cap(unsigned int cap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: default_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - __clear_bit
    linkageType: ''
    returnType: void
    signature: void default_init(struct cpuinfo_x86 * c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/common.c:121,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/common.c:127,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/common.c:128,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/common.c:130,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/common.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: probe_cpuid_faulting
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - setup_clear_cpu_cap
    - this_cpu
    - setup_force_cpu_cap
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool probe_cpuid_faulting(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/common.c:141,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/common.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: set_cpuid_faulting
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void set_cpuid_faulting(bool enable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:159,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/arch/x86/cpu/common.c:164,1
    - Dst: is_control_domain
      Src: /src/xen/xen/arch/x86/cpu/common.c:181,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu/common.c:182,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu/common.c:183,1
    - Dst: set_cpuid_faulting
      Src: /src/xen/xen/arch/x86/cpu/common.c:188,1
    - Dst: amd_set_cpuid_user_dis
      Src: /src/xen/xen/arch/x86/cpu/common.c:190,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/common.c:196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 1
    argNames:
    - next
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 197
    functionName: ctxt_switch_levelling
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 4
    functionsReached:
    - boot_cpu_has
    - amd_set_cpuid_user_dis
    - set_cpuid_faulting
    - is_pv_domain
    - alternative_vcall
    - is_control_domain
    - is_idle_domain
    linkageType: ''
    returnType: void
    signature: void ctxt_switch_levelling(const struct vcpu *next)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/common.c:214,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/common.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 219
    functionName: setup_doitm
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void setup_doitm(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:233,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:234,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 251
    functionName: get_model_name
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: int
    signature: int get_model_name(struct cpuinfo_x86 *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:259,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:262,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:272,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:279,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 291
    functionName: display_cacheinfo
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - cpuid
    - printk
    linkageType: ''
    returnType: void
    signature: void display_cacheinfo(struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpuid_apic
    - index_msb
    argTypes:
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: _phys_pkg_id
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 _phys_pkg_id(u32 cpuid_apic, int index_msb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:307,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpuid_apic
    - index_msb
    argTypes:
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: phys_pkg_id
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 1
    functionsReached:
    - get_apic_id
    - _phys_pkg_id
    linkageType: ''
    returnType: u32
    signature: u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:325,1
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/xen/arch/x86/cpu/common.c:330,1
    - Dst: intel_unlock_cpuid_leaves
      Src: /src/xen/xen/arch/x86/cpu/common.c:332,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:342,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:347,1
    - Dst: get_cpu_family
      Src: /src/xen/xen/arch/x86/cpu/common.c:348,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/common.c:352,1
    - Dst: OPTIMIZER_HIDE_VAR
      Src: /src/xen/xen/arch/x86/cpu/common.c:376,1
    - Dst: OPTIMIZER_HIDE_VAR
      Src: /src/xen/xen/arch/x86/cpu/common.c:377,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/common.c:382,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:389,1
    - Dst: x86_cpuid_vendor_to_str
      Src: /src/xen/xen/arch/x86/cpu/common.c:392,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:399,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:403,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/common.c:404,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:410,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/common.c:416,1
    - Dst: cpuid_ebx
      Src: /src/xen/xen/arch/x86/cpu/common.c:418,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/common.c:419,1
    - Dst: initialize_cpu_data
      Src: /src/xen/xen/arch/x86/cpu/common.c:440,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 1
    argNames:
    - verbose
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 441
    functionName: early_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 1
    functionsReached:
    - x86_cpuid_vendor_to_str
    - rdmsr
    - intel_unlock_cpuid_leaves
    - initialize_cpu_data
    - cpuid_ebx
    - cpufeat_mask
    - cpuid_eax
    - cpuid_count
    - cpuid
    - printk
    - setup_clear_cpu_cap
    - test_bit
    - OPTIMIZER_HIDE_VAR
    - get_cpu_family
    - x86_cpuid_lookup_vendor
    linkageType: ''
    returnType: void
    signature: void early_cpu_init(bool verbose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/common.c:451,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/common.c:452,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/common.c:453,1
    - Dst: CPU_DATA_INIT
      Src: /src/xen/xen/arch/x86/cpu/common.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - c
    - keep_basic
    argTypes:
    - struct cpuinfo_x86*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 457
    functionName: reset_cpuinfo
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 2
    functionsReached:
    - memset
    - CPU_DATA_INIT
    linkageType: ''
    returnType: void
    signature: void reset_cpuinfo(struct cpuinfo_x86 *c, bool keep_basic)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:465,1
    - Dst: x86_cpuid_lookup_vendor
      Src: /src/xen/xen/arch/x86/cpu/common.c:470,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:472,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:473,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:480,1
    - Dst: get_cpu_family
      Src: /src/xen/xen/arch/x86/cpu/common.c:481,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:482,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/common.c:492,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/common.c:501,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/common.c:504,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/common.c:507,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:508,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:512,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:517,1
    - Dst: get_model_name
      Src: /src/xen/xen/arch/x86/cpu/common.c:522,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/cpu/common.c:524,1
    - Dst: cpuid_ebx
      Src: /src/xen/xen/arch/x86/cpu/common.c:526,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:528,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:536,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:541,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:547,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:553,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:557,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/common.c:558,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 562
    functionName: generic_identify
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - rdmsr
    - cpuid_ebx
    - smp_processor_id
    - cpu_has
    - get_model_name
    - cpuid_eax
    - cpuid_edx
    - cpuid
    - alternative_vcall
    - cpuid_count
    - printk
    - test_bit
    - phys_pkg_id
    - get_cpu_family
    - x86_cpuid_lookup_vendor
    linkageType: ''
    returnType: void
    signature: void generic_identify(struct cpuinfo_x86 *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: reset_cpuinfo
      Src: /src/xen/xen/arch/x86/cpu/common.c:571,1
    - Dst: generic_identify
      Src: /src/xen/xen/arch/x86/cpu/common.c:572,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:575,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:577,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:578,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/common.c:592,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/cpu/common.c:609,1
    - Dst: xstate_init
      Src: /src/xen/xen/arch/x86/cpu/common.c:615,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:618,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:620,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:621,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:628,1
    - Dst: arch_get_random
      Src: /src/xen/xen/arch/x86/cpu/common.c:633,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:641,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:642,1
    - Dst: mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/common.c:659,1
    - Dst: mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/common.c:661,1
    - Dst: mtrr_bp_init
      Src: /src/xen/xen/arch/x86/cpu/common.c:663,1
    - Dst: setup_doitm
      Src: /src/xen/xen/arch/x86/cpu/common.c:666,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 567
    functionDepth: 6
    functionLinenumber: 567
    functionLinenumberEnd: 667
    functionName: identify_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 3
    functionsReached:
    - snprintf
    - arch_get_random
    - smp_processor_id
    - mcheck_init
    - mtrr_bp_init
    - reset_cpuinfo
    - generic_identify
    - xstate_init
    - cpu_has
    - alternative_vcall
    - printk
    - setup_doitm
    linkageType: ''
    returnType: void
    signature: void identify_cpu(struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ecx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: LEAFB_SUBTYPE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAFB_SUBTYPE(ecx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eax
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 679
    functionName: BITS_SHIFT_NEXT_LEVEL
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_SHIFT_NEXT_LEVEL(eax)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ebx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: LEVEL_MAX_SIBLINGS
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVEL_MAX_SIBLINGS(ebx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:695,1
    - Dst: LEAFB_SUBTYPE
      Src: /src/xen/xen/arch/x86/cpu/common.c:698,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/common.c:701,1
    - Dst: BITS_SHIFT_NEXT_LEVEL
      Src: /src/xen/xen/arch/x86/cpu/common.c:706,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:711,1
    - Dst: LEAFB_SUBTYPE
      Src: /src/xen/xen/arch/x86/cpu/common.c:714,1
    - Dst: BITS_SHIFT_NEXT_LEVEL
      Src: /src/xen/xen/arch/x86/cpu/common.c:715,1
    - Dst: LEAFB_SUBTYPE
      Src: /src/xen/xen/arch/x86/cpu/common.c:721,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:725,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:727,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:729,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:734,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:737,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 685
    functionDepth: 5
    functionLinenumber: 685
    functionLinenumberEnd: 742
    functionName: detect_extended_topology
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - BITS_SHIFT_NEXT_LEVEL
    - __set_bit
    - cpuid_count
    - printk
    - phys_pkg_id
    - LEAFB_SUBTYPE
    linkageType: ''
    returnType: bool
    signature: bool detect_extended_topology(struct cpuinfo_x86 *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:749,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:750,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:751,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/common.c:754,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:758,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/cpu/common.c:760,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:761,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:764,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/cpu/common.c:769,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/cpu/common.c:771,1
    - Dst: phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:773,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:777,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 744
    functionDepth: 5
    functionLinenumber: 744
    functionLinenumberEnd: 780
    functionName: detect_ht
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - get_count_order
    - cpu_has
    - cpuid
    - printk
    - phys_pkg_id
    linkageType: ''
    returnType: void
    signature: void detect_ht(struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:786,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:789,1
    - Dst: BITS_SHIFT_NEXT_LEVEL
      Src: /src/xen/xen/arch/x86/cpu/common.c:790,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/common.c:792,1
    - Dst: LEAFB_SUBTYPE
      Src: /src/xen/xen/arch/x86/cpu/common.c:795,1
    - Dst: BITS_SHIFT_NEXT_LEVEL
      Src: /src/xen/xen/arch/x86/cpu/common.c:797,1
    - Dst: LEAFB_SUBTYPE
      Src: /src/xen/xen/arch/x86/cpu/common.c:802,1
    - Dst: _phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:804,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:807,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:808,1
    - Dst: cpuid_ebx
      Src: /src/xen/xen/arch/x86/cpu/common.c:809,1
    - Dst: _phys_pkg_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:812,1
    - Dst: get_count_order
      Src: /src/xen/xen/arch/x86/cpu/common.c:813,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - apicid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 817
    functionName: apicid_to_socket
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - BITS_SHIFT_NEXT_LEVEL
    - get_count_order
    - cpuid_ebx
    - boot_cpu_has
    - _phys_pkg_id
    - cpuid_count
    - LEAFB_SUBTYPE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int apicid_to_socket(unsigned int apicid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:827,1
    - Dst: x86_cpuid_vendor_to_str
      Src: /src/xen/xen/arch/x86/cpu/common.c:829,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/cpu/common.c:830,1
    - Dst: strlen
      Src: /src/xen/xen/arch/x86/cpu/common.c:830,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:831,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:834,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:836,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 839
    functionName: print_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 2
    functionsReached:
    - x86_cpuid_vendor_to_str
    - strlen
    - strncmp
    - printk
    linkageType: ''
    returnType: void
    signature: void print_cpu_info(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/common.c:851,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/common.c:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 864
    functionName: skinit_enable_intr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void skinit_enable_intr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/common.c:874,1
    - Dst: cpumask_test_and_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/common.c:876,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:877,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/cpu/common.c:878,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/common.c:881,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/cpu/common.c:884,1
    - Dst: stts
      Src: /src/xen/xen/arch/x86/cpu/common.c:887,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:890,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:891,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:892,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:893,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:894,1
    - Dst: write_debugreg
      Src: /src/xen/xen/arch/x86/cpu/common.c:895,1
    - Dst: wrpkru
      Src: /src/xen/xen/arch/x86/cpu/common.c:898,1
    - Dst: skinit_enable_intr
      Src: /src/xen/xen/arch/x86/cpu/common.c:907,1
    - Dst: enable_nmis
      Src: /src/xen/xen/arch/x86/cpu/common.c:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 911
    functionName: cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 8
    functionsReached:
    - cpumask_test_and_set_cpu
    - enable_nmis
    - local_irq_enable
    - smp_processor_id
    - write_debugreg
    - skinit_enable_intr
    - write_ptbase
    - printk
    - stts
    - wrpkru
    linkageType: ''
    returnType: void
    signature: void cpu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/cpu/common.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 916
    functionName: cpu_uninit
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 1
    functionsReached:
    - cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void cpu_uninit(unsigned int cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/common.c:937,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct x86_cpu_id[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 944
    functionName: x86_match_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/common.c
    functionUses: 2
    functionsReached:
    - cpu_has
    linkageType: ''
    returnType: struct x86_cpu_id
    signature: struct x86_cpu_id *x86_match_cpu(const struct x86_cpu_id table[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: is_guest_mode
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_guest_mode(msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: is_pmu_enabled
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_pmu_enabled(msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: set_guest_mode
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_guest_mode(msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: is_overflowed
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_overflowed(msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: is_svm_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_svm_vcpu(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: msr_bitmap_on
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msr_bitmap_on(vpmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: msr_bitmap_off
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msr_bitmap_off(vpmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vpmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: is_msr_bitmap_on
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_msr_bitmap_on(vpmu)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - idx
    argTypes:
    - u32
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 117
    functionName: get_pmu_reg_type
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_pmu_reg_type(u32 addr, unsigned int *idx)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: get_fam15h_addr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 get_fam15h_addr(u32 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:148,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctxt
    argTypes:
    - struct xen_pmu_amd_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: amd_vpmu_init_regs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void amd_vpmu_init_regs(struct xen_pmu_amd_ctxt *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:156,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:160,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:161,1
    - Dst: msr_bitmap_on
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: amd_vpmu_set_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - svm_intercept_msr
    - msr_bitmap_on
    - vcpu_vpmu
    linkageType: ''
    returnType: void
    signature: void amd_vpmu_set_msr_bitmap(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:170,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:174,1
    - Dst: svm_intercept_msr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:175,1
    - Dst: msr_bitmap_off
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: amd_vpmu_unset_msr_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - svm_intercept_msr
    - vcpu_vpmu
    - msr_bitmap_off
    linkageType: ''
    returnType: void
    signature: void amd_vpmu_unset_msr_bitmap(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: amd_vpmu_do_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_do_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:189,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:191,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:192,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:196,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: context_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - vpmu_reg_pointer
    - wrmsrl
    - vcpu_vpmu
    linkageType: ''
    returnType: void
    signature: void context_load(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:203,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:208,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:210,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:213,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:216,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:226,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:226,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:229,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:231,1
    - Dst: amd_vpmu_init_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:242,1
    - Dst: is_pmu_enabled
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:246,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:251,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:253,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:256,1
    - Dst: context_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - v
    - from_guest
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 261
    functionName: amd_vpmu_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - is_pmu_enabled
    - has_vlapic
    - vcpu_vpmu
    - amd_vpmu_init_regs
    - ASSERT
    - vpmu_is_set
    - wrmsrl
    - vpmu_reg_pointer
    - context_load
    - memcpy
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_load(struct vcpu *v, bool from_guest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:266,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:268,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: context_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - vpmu_reg_pointer
    - vcpu_vpmu
    linkageType: ''
    returnType: void
    signature: void context_save(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:277,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:282,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:284,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:286,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:290,1
    - Dst: context_save
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:293,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:295,1
    - Dst: is_svm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:295,1
    - Dst: is_msr_bitmap_on
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:296,1
    - Dst: amd_vpmu_unset_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:297,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:303,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:303,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - v
    - to_guest
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 311
    functionName: amd_vpmu_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - amd_vpmu_unset_msr_bitmap
    - is_svm_vcpu
    - vpmu_set
    - has_vlapic
    - context_save
    - vcpu_vpmu
    - ASSERT
    - vpmu_is_set
    - wrmsrl
    - is_msr_bitmap_on
    - memcpy
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_save(struct vcpu *v,  bool to_guest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:317,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:319,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:320,1
    - Dst: get_fam15h_addr
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 341
    functionName: context_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - vpmu_reg_pointer
    - vcpu_vpmu
    - get_fam15h_addr
    linkageType: ''
    returnType: void
    signature: void context_update(unsigned int msr, u64 msr_content)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:346,1
    - Dst: get_pmu_reg_type
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:348,1
    - Dst: is_svm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:355,1
    - Dst: is_guest_mode
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:356,1
    - Dst: set_guest_mode
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:358,1
    - Dst: is_pmu_enabled
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:363,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:363,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:365,1
    - Dst: is_svm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:367,1
    - Dst: is_msr_bitmap_on
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:367,1
    - Dst: amd_vpmu_set_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:368,1
    - Dst: is_pmu_enabled
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:373,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:373,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:375,1
    - Dst: is_svm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:376,1
    - Dst: is_msr_bitmap_on
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:376,1
    - Dst: amd_vpmu_unset_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:377,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:380,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:381,1
    - Dst: context_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:383,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:384,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:385,1
    - Dst: context_update
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:389,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:392,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 394
    functionName: amd_vpmu_do_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - amd_vpmu_unset_msr_bitmap
    - is_svm_vcpu
    - vpmu_set
    - vpmu_reset
    - context_update
    - amd_vpmu_set_msr_bitmap
    - is_pmu_enabled
    - set_guest_mode
    - vcpu_vpmu
    - vpmu_is_set
    - wrmsrl
    - get_pmu_reg_type
    - is_msr_bitmap_on
    - context_load
    - is_guest_mode
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_do_wrmsr(unsigned int msr, uint64_t msr_content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:399,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:401,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:402,1
    - Dst: context_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:404,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:405,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:406,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 412
    functionName: amd_vpmu_do_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - vcpu_vpmu
    - rdmsrl
    - vpmu_is_set
    - context_load
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_do_rdmsr(unsigned int msr, uint64_t *msr_content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:416,1
    - Dst: is_svm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:418,1
    - Dst: is_msr_bitmap_on
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:418,1
    - Dst: amd_vpmu_unset_msr_bitmap
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:419,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:421,1
    - Dst: vpmu_clear
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: amd_vpmu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - amd_vpmu_unset_msr_bitmap
    - is_svm_vcpu
    - vcpu_vpmu
    - vpmu_clear
    - is_msr_bitmap_on
    - xfree
    linkageType: ''
    returnType: void
    signature: void amd_vpmu_destroy(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:431,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:433,1
    - Dst: vpmu_reg_pointer
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:434,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:437,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:438,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:440,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:444,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:445,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:446,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:447,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:448,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:449,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:450,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:451,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:452,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:453,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:459,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:460,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:461,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 465
    functionName: amd_vpmu_dump
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - vcpu_vpmu
    - vpmu_is_set
    - printk
    - vpmu_reg_pointer
    linkageType: ''
    returnType: void
    signature: void amd_vpmu_dump(const struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:470,1
    - Dst: xmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:475,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:479,1
    - Dst: amd_vpmu_init_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:487,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:492,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:495,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:496,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 503
    functionName: amd_vpmu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - has_vlapic
    - vcpu_vpmu
    - amd_vpmu_init_regs
    - ASSERT
    - printk
    - memcpy
    - xmalloc_flex_struct
    linkageType: ''
    returnType: int
    signature: int amd_vpmu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: amd_allocate_context
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int amd_allocate_context(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:534,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:536,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:542,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:546,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 556
    functionName: common_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - rdmsrl
    - printk
    linkageType: ''
    returnType: struct arch_vpmu_ops
    signature: struct arch_vpmu_ops *__init common_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: common_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 584
    functionName: amd_vpmu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - common_init
    linkageType: ''
    returnType: struct arch_vpmu_ops
    signature: struct arch_vpmu_ops *__init amd_vpmu_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: common_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu_amd.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 599
    functionName: hygon_vpmu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
    functionUses: 0
    functionsReached:
    - common_init
    linkageType: ''
    returnType: struct arch_vpmu_ops
    signature: struct arch_vpmu_ops *__init hygon_vpmu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - fmt
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: pr_debug
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pr_debug(fmt...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: flg2MWAIT
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: flg2MWAIT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - eax
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: MWAIT2flg
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MWAIT2flg(eax)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hint
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: MWAIT_HINT2CSTATE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MWAIT_HINT2CSTATE(hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hint
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: MWAIT_HINT2SUBSTATE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MWAIT_HINT2SUBSTATE(hint)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1041,1
    - Dst: select
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1049,1
    - Dst: sched_has_urgent_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1050,1
    - Dst: MWAIT_HINT2SUBSTATE
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1056,1
    - Dst: menu_get_trace_data
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1061,1
    - Dst: pm_idle_save
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1065,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1068,1
    - Dst: spec_ctrl_enter_idle
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1070,1
    - Dst: safe_halt
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1071,1
    - Dst: spec_ctrl_exit_idle
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1072,1
    - Dst: cpufreq_dbs_timer_suspend
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1077,1
    - Dst: rcu_idle_enter
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1079,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1081,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1084,1
    - Dst: cpu_is_haltable
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1086,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1087,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1088,1
    - Dst: cpufreq_dbs_timer_resume
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1089,1
    - Dst: errata_c6_workaround
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1093,1
    - Dst: leave_mm
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1102,1
    - Dst: lapic_timer_off
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1106,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1108,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1109,1
    - Dst: update_last_cx_stat
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1111,1
    - Dst: mwait_idle_with_hints
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1113,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1116,1
    - Dst: cstate_restore_tsc
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1118,1
    - Dst: trace_exit_reason
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1119,1
    - Dst: update_idle_stats
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1122,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1123,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1125,1
    - Dst: lapic_timer_on
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1129,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1131,1
    - Dst: cpufreq_dbs_timer_resume
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1132,1
    - Dst: reflect
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1135,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1039
    functionDepth: 4
    functionLinenumber: 1039
    functionLinenumberEnd: 1136
    functionName: mwait_idle
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - TRACE_TIME
    - lapic_timer_on
    - local_irq_enable
    - cpufreq_dbs_timer_suspend
    - local_irq_disable
    - alternative_call
    - cstate_restore_tsc
    - trace_exit_reason
    - cpufreq_dbs_timer_resume
    - update_last_cx_stat
    - pm_idle_save
    - update_idle_stats
    - smp_processor_id
    - spec_ctrl_exit_idle
    - rcu_idle_exit
    - safe_halt
    - leave_mm
    - select
    - lapic_timer_off
    - spec_ctrl_enter_idle
    - rcu_idle_enter
    - process_pending_softirqs
    - MWAIT_HINT2SUBSTATE
    - cpu_is_haltable
    - sched_has_urgent_vcpu
    - mwait_idle_with_hints
    - menu_get_trace_data
    - errata_c6_workaround
    - reflect
    linkageType: ''
    returnType: void
    signature: void mwait_idle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1142,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1145
    functionName: auto_demotion_disable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void auto_demotion_disable(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1149,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1151
    functionName: byt_auto_demotion_disable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void byt_auto_demotion_disable(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1157,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1153
    functionDepth: 1
    functionLinenumber: 1153
    functionLinenumberEnd: 1160
    functionName: c1e_promotion_enable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void c1e_promotion_enable(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1166,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1169
    functionName: c1e_promotion_disable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void c1e_promotion_disable(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - model
    - ','
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1303
    functionDepth: 0
    functionLinenumber: 1303
    functionLinenumberEnd: 1305
    functionName: ICPU
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICPU(model, cpu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: for_each_present_cpu
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1369,1
    - Dst: apicid_to_socket
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1364
    functionDepth: 4
    functionLinenumber: 1364
    functionLinenumberEnd: 1383
    functionName: ivt_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - for_each_present_cpu
    - apicid_to_socket
    linkageType: ''
    returnType: void
    signature: void ivt_idle_state_table_update(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - irtl
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1402
    functionName: irtl_2_usec
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long __init
    signature: unsigned long long __init irtl_2_usec(unsigned long long irtl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1414,1
    - Dst: irtl_2_usec
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1415,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1421,1
    - Dst: irtl_2_usec
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1422,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1428,1
    - Dst: irtl_2_usec
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1429,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1435,1
    - Dst: irtl_2_usec
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1436,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1442,1
    - Dst: irtl_2_usec
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1448
    functionName: bxt_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - irtl_2_usec
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void bxt_idle_state_table_update(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1468,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1475,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1476,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1456
    functionDepth: 3
    functionLinenumber: 1456
    functionLinenumberEnd: 1485
    functionName: sklh_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void sklh_idle_state_table_update(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1515
    functionName: skx_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void skx_idle_state_table_update(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1523,1
    - Dst: BIT
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1539
    functionName: adl_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - BIT
    linkageType: ''
    returnType: void
    signature: void adl_idle_state_table_update(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1560
    functionName: spr_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void spr_idle_state_table_update(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ivt_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1571,1
    - Dst: bxt_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1575,1
    - Dst: sklh_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1578,1
    - Dst: skx_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1581,1
    - Dst: spr_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1585,1
    - Dst: adl_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1567
    functionDepth: 5
    functionLinenumber: 1567
    functionLinenumberEnd: 1593
    functionName: mwait_idle_state_table_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - skx_idle_state_table_update
    - spr_idle_state_table_update
    - sklh_idle_state_table_update
    - bxt_idle_state_table_update
    - adl_idle_state_table_update
    - ivt_idle_state_table_update
    linkageType: ''
    returnType: void
    signature: void mwait_idle_state_table_update(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1604,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1606,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1611,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1612,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1619,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1627,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1631,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1636,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1639,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1642,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1646,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1647,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1656,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1658,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1662,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1676,1
    - Dst: mwait_idle_state_table_update
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1678,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1595
    functionDepth: 6
    functionLinenumber: 1595
    functionLinenumberEnd: 1681
    functionName: mwait_idle_probe
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - boot_cpu_has
    - x86_match_cpu
    - strchr
    - pr_debug
    - isdigit
    - cpuid
    - mwait_idle_state_table_update
    - printk
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int mwait_idle_probe(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cpuidle_init_cpu
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1696,1
    - Dst: enable
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1699,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1700,1
    - Dst: flg2MWAIT
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1714,1
    - Dst: MWAIT_HINT2CSTATE
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1715,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1718,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1738,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1743,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1745,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1757,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1766,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1766,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1769,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1769,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1773,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1773,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1777,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1777,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1683
    functionDepth: 3
    functionLinenumber: 1683
    functionLinenumberEnd: 1785
    functionName: mwait_idle_cpu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 0
    functionsReached:
    - flg2MWAIT
    - cpuidle_init_cpu
    - MWAIT_HINT2CSTATE
    - cpumask_of
    - boot_cpu_has
    - notifier_from_errno
    - on_selected_cpus
    - printk
    - setup_clear_cpu_cap
    - enable
    linkageType: ''
    returnType: int
    signature: "int mwait_idle_cpu_init(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mwait_idle_probe
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1794,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1795,1
    - Dst: hpet_broadcast_init
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1796,1
    - Dst: hpet_broadcast_is_available
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1797,1
    - Dst: lapic_timer_init
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1799,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1802,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - nfb
    argTypes:
    - struct notifier_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1787
    functionDepth: 7
    functionLinenumber: 1787
    functionLinenumberEnd: 1812
    functionName: mwait_idle_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 1
    functionsReached:
    - mwait_idle_probe
    - hpet_broadcast_is_available
    - hpet_broadcast_init
    - boot_cpu_has
    - pr_debug
    - lapic_timer_init
    linkageType: ''
    returnType: int
    signature: int mwait_idle_init(struct notifier_block *nfb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/mwait-idle.c:1824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1829
    functionName: mwait_pc10_supported
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    functionUses: 1
    functionsReached:
    - cpuid
    linkageType: ''
    returnType: bool
    signature: bool mwait_pc10_supported(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_ebx
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:20,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:26,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: hygon_get_topology
    functionSourceFile: /src/xen/xen/arch/x86/cpu/hygon.c
    functionUses: 0
    functionsReached:
    - cpuid_ebx
    - smp_processor_id
    - printk
    linkageType: ''
    returnType: void
    signature: void hygon_get_topology(struct cpuinfo_x86 *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: amd_init_de_cfg
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:35,1
    - Dst: amd_init_lfence_dispatch
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:38,1
    - Dst: amd_init_ssbd
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:40,1
    - Dst: detect_zen2_null_seg_behaviour
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:45,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:58,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:62,1
    - Dst: display_cacheinfo
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:64,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:67,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:70,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:71,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:72,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:73,1
    - Dst: hygon_get_topology
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:77,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:80,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:84,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:86,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:87,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:89,1
    - Dst: amd_log_freq
      Src: /src/xen/xen/arch/x86/cpu/hygon.c:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 93
    functionName: init_hygon
    functionSourceFile: /src/xen/xen/arch/x86/cpu/hygon.c
    functionUses: 0
    functionsReached:
    - amd_log_freq
    - __set_bit
    - __clear_bit
    - display_cacheinfo
    - hygon_get_topology
    - rdmsrl
    - cpu_has
    - cpuid_ecx
    - wrmsrl
    - amd_init_ssbd
    - detect_zen2_null_seg_behaviour
    - amd_init_lfence_dispatch
    - setup_force_cpu_cap
    - amd_init_de_cfg
    linkageType: ''
    returnType: void
    signature: void init_hygon(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/shanghai.c:8,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/shanghai.c:10,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/shanghai.c:11,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/shanghai.c:12,1
    - Dst: init_intel_cacheinfo
      Src: /src/xen/xen/arch/x86/cpu/shanghai.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 16
    functionName: init_shanghai
    functionSourceFile: /src/xen/xen/arch/x86/cpu/shanghai.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - init_intel_cacheinfo
    - cpu_has
    linkageType: ''
    returnType: void
    signature: void init_shanghai(struct cpuinfo_x86 *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:51,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:53,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:55,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:61,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:63,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:65,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 84
    functionName: parse_vpmu_params
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - parse_boolean
    - strchr
    - printk
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_vpmu_params(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:92,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:95,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:100,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:101,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: vpmu_lvtpc_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 1
    functionsReached:
    - has_vlapic
    - vcpu_vpmu
    - likely
    - vpmu_is_set
    - apic_write
    linkageType: ''
    returnType: void
    signature: void vpmu_lvtpc_update(uint32_t val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:115,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:117,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:120,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:121,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:125,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:127,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:134,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:135,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:137,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:138,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:139,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - msr
    - msr_content
    - is_write
    argTypes:
    - unsigned int
    - uint64_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 149
    functionName: vpmu_do_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 2
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - has_vlapic
    - vcpu_vpmu
    - likely
    - alternative_call
    - vpmu_is_set
    - alternative_vcall
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vpmu_do_msr(unsigned int msr, uint64_t *msr_content, bool is_write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: choose_hwdom_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *choose_hwdom_vcpu(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: choose_hwdom_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:179,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:186,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:187,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:191,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:200,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:204,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:205,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:206,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:208,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:221,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:230,1
    - Dst: get_irq_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:244,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:248,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:249,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:250,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:256,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:262,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:273,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:275,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:285,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:286,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:291,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:293,1
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:295,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:302,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:305,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:307,1
    - Dst: is_vlapic_lvtpc_enabled
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:308,1
    - Dst: vlapic_get_reg
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:311,1
    - Dst: vlapic_set_irq
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:316,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 323
    functionName: vpmu_do_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - is_vlapic_lvtpc_enabled
    - has_vlapic
    - get_irq_regs
    - alternative_call
    - apic_write
    - choose_hwdom_vcpu
    - vpmu_reset
    - send_guest_vcpu_virq
    - smp_processor_id
    - vcpu_vpmu
    - vpmu_is_set
    - guest_mode
    - vcpu_vlapic
    - is_hardware_domain
    - is_hvm_vcpu
    - ASSERT
    - is_pv_32bit_vcpu
    - vlapic_set_irq
    - hvm_get_segment_register
    - vpmu_set
    - vlapic_get_reg
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void vpmu_do_interrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:328,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:330,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: vpmu_allocate_context
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - vpmu_is_set
    - vcpu_vpmu
    linkageType: ''
    returnType: int
    signature: int vpmu_allocate_context(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:340,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:342,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:345,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:347,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:349,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:351,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: vpmu_save_force
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - smp_processor_id
    - vcpu_vpmu
    - vpmu_is_set
    - alternative_vcall
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void vpmu_save_force(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:356,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:357,1
    - Dst: vpmu_are_all_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:359,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:363,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:365,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:367,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:368,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:370,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 373
    functionName: vpmu_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 2
    functionsReached:
    - vpmu_set
    - vpmu_reset
    - smp_processor_id
    - vcpu_vpmu
    - alternative_call
    - per_cpu
    - apic_write
    - vpmu_are_all_set
    linkageType: ''
    returnType: void
    signature: void vpmu_save(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:377,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:380,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:384,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:385,1
    - Dst: vpmu_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:385,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:386,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:389,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:391,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - v
    - from_guest
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 396
    functionName: vpmu_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 3
    functionsReached:
    - has_vlapic
    - vpmu_vcpu
    - vcpu_vpmu
    - alternative_call
    - vpmu_is_set
    - apic_write
    linkageType: ''
    returnType: int
    signature: int vpmu_load(struct vcpu *v, bool from_guest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:400,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:404,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:405,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:406,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:408,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:411,1
    - Dst: vpmu_available
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:413,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:420,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:428,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:431,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 439
    functionName: vpmu_arch_initialise
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - vpmu_available
    - vcpu_vpmu
    - BUILD_BUG_ON
    - ASSERT
    - alternative_call
    - printk
    linkageType: ''
    returnType: int
    signature: int vpmu_arch_initialise(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:443,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:451,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:455,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:455,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:457,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:459,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:459,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 462
    functionName: get_vpmu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - vpmu_set
    - spin_unlock
    - vcpu_vpmu
    - spin_lock
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void get_vpmu(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:466,1
    - Dst: vpmu_available
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:468,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:471,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:475,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:475,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:477,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:479,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:479,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 483
    functionName: put_vpmu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vpmu_reset
    - vpmu_available
    - vcpu_vpmu
    - spin_lock
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void put_vpmu(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:487,1
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:493,1
    - Dst: vpmu_arch_initialise
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:493,1
    - Dst: put_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 495
    functionName: vpmu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 1
    functionsReached:
    - vpmu_arch_initialise
    - put_vpmu
    - get_vpmu
    - has_vlapic
    linkageType: ''
    returnType: void
    signature: void vpmu_initialise(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:499,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: vpmu_clear_last
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void vpmu_clear_last(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:505,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:507,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:517,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:518,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:519,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:519,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:526,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:527,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:527,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:527,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:530,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 533
    functionName: vpmu_arch_destroy
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - vpmu_reset
    - on_selected_cpus
    - vcpu_vpmu
    - vpmu_is_set
    - alternative_vcall
    - per_cpu
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void vpmu_arch_destroy(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:537,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:540,1
    - Dst: vpmu_arch_destroy
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:542,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:546,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:550,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:552,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:552,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:553,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:554,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 556
    functionName: vpmu_cleanup
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - put_page_and_type
    - mfn_to_page
    - unmap_domain_page_global
    - domain_page_map_to_mfn
    - vcpu_vpmu
    - mfn_valid
    - spin_lock
    - ASSERT
    - vpmu_arch_destroy
    linkageType: ''
    returnType: void
    signature: void vpmu_cleanup(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_cleanup
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:560,1
    - Dst: put_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 563
    functionName: vpmu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 4
    functionsReached:
    - vpmu_cleanup
    - put_vpmu
    linkageType: ''
    returnType: void
    signature: void vpmu_destroy(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:576,1
    - Dst: vpmu_available
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:578,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:581,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:585,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:587,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:591,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:595,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:596,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:600,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:603,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:604,1
    - Dst: vpmu_arch_initialise
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:608,1
    - Dst: put_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:609,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:611,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - d
    - params
    argTypes:
    - struct domain*
    - xen_pmu_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 614
    functionName: pvpmu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - put_page_and_type
    - vpmu_arch_initialise
    - get_page_type
    - vpmu_available
    - vcpu_vpmu
    - put_vpmu
    - spin_lock
    - put_page
    - __map_domain_page_global
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: int pvpmu_init(struct domain *d, xen_pmu_params_t *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:625,1
    - Dst: vpmu_cleanup
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:627,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - d
    - params
    argTypes:
    - struct domain*
    - xen_pmu_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 631
    functionName: pvpmu_finish
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - vpmu_cleanup
    - vcpu_pause
    - vcpu_unpause
    linkageType: ''
    returnType: void
    signature: void pvpmu_finish(struct domain *d, xen_pmu_params_t *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:636,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:636,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: vpmu_dump
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 1
    functionsReached:
    - vpmu_is_set
    - alternative_vcall
    - vcpu_vpmu
    linkageType: ''
    returnType: void
    signature: void vpmu_dump(struct vcpu *v)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: has_vlapic
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:649,1
    - Dst: xsm_pmu_op
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:652,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:663,1
    - Dst: multiple_bits_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:678,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:682,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:686,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:698,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:703,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:709,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:715,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:726,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:732,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:737,1
    - Dst: copy_field_to_guest
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:743,1
    - Dst: pvpmu_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:749,1
    - Dst: pvpmu_finish
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:753,1
    - Dst: vpmu_lvtpc_update
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:759,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:766,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:771,1
    - Dst: vpmu_lvtpc_update
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:772,1
    - Dst: vpmu_load
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:773,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:776,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 640
    functionDepth: 4
    functionLinenumber: 640
    functionLinenumberEnd: 787
    functionName: do_xenpmu_op
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - pvpmu_init
    - vpmu_reset
    - vpmu_set
    - copy_from_guest
    - multiple_bits_set
    - has_vlapic
    - vpmu_lvtpc_update
    - vcpu_vpmu
    - spin_lock
    - gprintk
    - memset
    - vpmu_load
    - copy_to_guest
    - xsm_pmu_op
    - is_pv_32bit_vcpu
    - pvpmu_finish
    - copy_field_to_guest
    linkageType: ''
    returnType: long
    signature: "long do_xenpmu_op(\n    unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t)
      arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:793,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:799,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:800,1
    - Dst: vpmu_save_force
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:805,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 810
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 0
    functionsReached:
    - vpmu_reset
    - vcpu_vpmu
    - vpmu_save_force
    - vpmu_is_set
    - per_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:827,1
    - Dst: amd_vpmu_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:837,1
    - Dst: hygon_vpmu_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:841,1
    - Dst: core2_vpmu_init
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:847,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:852,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:857,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:860,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:861,1
    - Dst: __stringify
      Src: /src/xen/xen/arch/x86/cpu/vpmu.c:862,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 816
    functionDepth: 3
    functionLinenumber: 816
    functionLinenumberEnd: 871
    functionName: vpmu_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/vpmu.c
    functionUses: 2
    functionsReached:
    - core2_vpmu_init
    - amd_vpmu_init
    - hygon_vpmu_init
    - IS_ERR_OR_NULL
    - register_cpu_notifier
    - __stringify
    - printk
    linkageType: ''
    returnType: int
    signature: int vpmu_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - index
    - this_leaf
    argTypes:
    - int
    - struct cpuid4_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 102
    functionName: cpuid4_cache_lookup
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
    functionUses: 1
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: int
    signature: int cpuid4_cache_lookup(int index, struct cpuid4_info *this_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 117
    functionName: find_num_cache_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
    functionUses: 0
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: int
    signature: int find_num_cache_leaves(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: find_num_cache_leaves
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:131,1
    - Dst: cpuid4_cache_lookup
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:144,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:183,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:186,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:189,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:248,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:250,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:253,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:255,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:258,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c:261,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 91
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 265
    functionName: init_intel_cacheinfo
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - cpuid_eax
    - cpuid
    - printk
    - cpuid4_cache_lookup
    - find_num_cache_leaves
    linkageType: ''
    returnType: void
    signature: void init_intel_cacheinfo(struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:24,1
    - Dst: cpuid_edx
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:25,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:29,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:31,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:32,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:37,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:39,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:40,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:46,1
    - Dst: get_model_name
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:49,1
    - Dst: display_cacheinfo
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 51
    functionName: init_c3
    functionSourceFile: /src/xen/xen/arch/x86/cpu/centaur.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - rdmsrl
    - get_model_name
    - cpuid_edx
    - cpuid_eax
    - wrmsrl
    - printk
    - display_cacheinfo
    linkageType: ''
    returnType: void
    signature: void init_c3(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_c3
      Src: /src/xen/xen/arch/x86/cpu/centaur.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: init_centaur
    functionSourceFile: /src/xen/xen/arch/x86/cpu/centaur.c
    functionUses: 0
    functionsReached:
    - init_c3
    linkageType: ''
    returnType: void
    signature: void init_centaur(struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - msr
    - lo
    - hi
    argTypes:
    - unsigned int
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 65
    functionName: rdmsr_amd_safe
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - _ASM_EXTABLE
    linkageType: ''
    returnType: int
    signature: "int rdmsr_amd_safe(unsigned int msr, unsigned int *lo,\n\t\t\t\t unsigned
      int *hi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ASM_EXTABLE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - msr
    - lo
    - hi
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 82
    functionName: wrmsr_amd_safe
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - _ASM_EXTABLE
    linkageType: ''
    returnType: int
    signature: "int wrmsr_amd_safe(unsigned int msr, unsigned int lo,\n                                 unsigned
      int hi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: wrmsr_amd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wrmsr_amd(unsigned int msr, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_amd_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:102,1
    - Dst: wrmsr_amd_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - msr
    - caps
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: _probe_mask_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - wrmsr_amd_safe
    - rdmsr_amd_safe
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _probe_mask_msr(unsigned int msr, uint64_t caps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:129,1
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:131,1
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:135,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:137,1
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:139,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:149,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:153,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 157
    functionName: probe_masking_msrs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - cpuid_ecx
    - _probe_mask_msr
    - printk
    linkageType: ''
    returnType: void
    signature: void probe_masking_msrs(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:167,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu/amd.c:170,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:181,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:181,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/amd.c:183,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/amd.c:185,1
    - Dst: wrmsr_amd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:186,1
    - Dst: LAZY
      Src: /src/xen/xen/arch/x86/cpu/amd.c:201,1
    - Dst: LAZY
      Src: /src/xen/xen/arch/x86/cpu/amd.c:202,1
    - Dst: LAZY
      Src: /src/xen/xen/arch/x86/cpu/amd.c:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - next
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 206
    functionName: amd_ctxt_switch_masking
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - unlikely
    - LAZY
    - is_idle_vcpu
    - cpufeat_mask
    - is_pv_domain
    - this_cpu
    - wrmsr_amd
    linkageType: ''
    returnType: void
    signature: void amd_ctxt_switch_masking(const struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cap
    - ','
    - msr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: LAZY
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY(cap, msr, field)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: probe_cpuid_faulting
      Src: /src/xen/xen/arch/x86/cpu/amd.c:241,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:242,1
    - Dst: probe_masking_msrs
      Src: /src/xen/xen/arch/x86/cpu/amd.c:248,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/amd.c:253,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/amd.c:256,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/amd.c:257,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/amd.c:258,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/amd.c:266,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/amd.c:269,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/amd.c:277,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:283,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:289,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 304
    functionName: amd_init_levelling
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - probe_cpuid_faulting
    - boot_cpu_has
    - cpufeat_mask
    - cpuid
    - cpuid_ecx
    - printk
    - probe_masking_msrs
    linkageType: ''
    returnType: void
    signature: void amd_init_levelling(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:311,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: amd_set_cpuid_user_dis
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void amd_set_cpuid_user_dis(bool enable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:333,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:336,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:341,1
    - Dst: va_start
      Src: /src/xen/xen/arch/x86/cpu/amd.c:349,1
    - Dst: va_arg
      Src: /src/xen/xen/arch/x86/cpu/amd.c:352,1
    - Dst: AMD_MODEL_RANGE_FAMILY
      Src: /src/xen/xen/arch/x86/cpu/amd.c:353,1
    - Dst: AMD_MODEL_RANGE_START
      Src: /src/xen/xen/arch/x86/cpu/amd.c:354,1
    - Dst: AMD_MODEL_RANGE_END
      Src: /src/xen/xen/arch/x86/cpu/amd.c:355,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/cpu/amd.c:356,1
    - Dst: va_end
      Src: /src/xen/xen/arch/x86/cpu/amd.c:361,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - cpu
    - osvw_id
    argTypes:
    - struct cpuinfo_x86*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 363
    functionName: cpu_has_amd_erratum
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 3
    functionsReached:
    - va_start
    - va_arg
    - AMD_MODEL_RANGE_END
    - rdmsrl
    - cpu_has
    - AMD_MODEL_RANGE_FAMILY
    - va_end
    - AMD_MODEL_RANGE_START
    linkageType: ''
    returnType: int
    signature: int cpu_has_amd_erratum(const struct cpuinfo_x86 *cpu, int osvw_id,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:375,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:375,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/arch/x86/cpu/amd.c:379,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:379,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/arch/x86/cpu/amd.c:384,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:384,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 387
    functionName: disable_c1_ramping
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - pci_conf_write8
    - PCI_SBDF
    - pci_conf_read32
    - printk
    - pci_conf_read8
    linkageType: ''
    returnType: void
    signature: void disable_c1_ramping(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:398,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:400,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:401,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 403
    functionName: disable_c1e
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 3
    functionsReached:
    - smp_processor_id
    - wrmsr_safe
    - printk
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void disable_c1e(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - port
    - value
    argTypes:
    - unsigned int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: amd_check_disable_c1e
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 3
    functionsReached:
    - on_each_cpu
    linkageType: ''
    returnType: void
    signature: void amd_check_disable_c1e(unsigned int port, u8 value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:425,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/cpu/amd.c:429,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: check_syscfg_dram_mod_en
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - printk_once
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void check_syscfg_dram_mod_en(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:446,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:447,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:459,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/amd.c:462,1
    - Dst: detect_extended_topology
      Src: /src/xen/xen/arch/x86/cpu/amd.c:476,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 435
    functionDepth: 6
    functionLinenumber: 435
    functionLinenumberEnd: 487
    functionName: amd_get_topology
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - detect_extended_topology
    - cpu_has
    - cpuid
    - cpuid_ecx
    - printk
    linkageType: ''
    returnType: void
    signature: void amd_get_topology(struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - family
    - value
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 513
    functionName: amd_parse_freq
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int amd_parse_freq(unsigned int family,\n\t\t\t\t\t      unsigned
      int value)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:535,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:536,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:539,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:540,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:548,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:549,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:555,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:557,1
    - Dst: pci_conf_read
      Src: /src/xen/xen/arch/x86/cpu/amd.c:583,1
    - Dst: PCI_ECS_ADDRESS
      Src: /src/xen/xen/arch/x86/cpu/amd.c:583,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:592,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:597,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:603,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:604,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:606,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:608,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:610,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:611,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:613,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:615,1
    - Dst: amd_parse_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:617,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 70
    argCount: 4
    argNames:
    - c
    - low_mhz
    - nom_mhz
    - hi_mhz
    argTypes:
    - struct cpuinfo_x86*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 618
    functionName: amd_process_freq
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - PCI_SBDF
    - pci_conf_read
    - rdmsrl
    - cpu_has
    - amd_parse_freq
    - PCI_ECS_ADDRESS
    - pci_conf_read32
    - wrmsrl
    - cpuid_ecx
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: "void amd_process_freq(const struct cpuinfo_x86 *c,\n\t\t      unsigned
      int *low_mhz,\n\t\t      unsigned int *nom_mhz,\n\t\t      unsigned int *hi_mhz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sbdf
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: PCI_ECS_ADDRESS
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_ECS_ADDRESS(sbdf, reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: amd_init_levelling
      Src: /src/xen/xen/arch/x86/cpu/amd.c:623,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/cpu/amd.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: early_init_amd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - ctxt_switch_levelling
    - amd_init_levelling
    linkageType: ''
    returnType: void
    signature: void early_init_amd(struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: amd_process_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:636,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:639,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:640,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:643,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:644,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:646,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 647
    functionName: amd_log_freq
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - printk
    - smp_processor_id
    - amd_process_freq
    linkageType: ''
    returnType: void
    signature: void amd_log_freq(const struct cpuinfo_x86 *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:667,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:674,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - c
    - enable
    argTypes:
    - struct cpuinfo_x86*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 683
    functionName: set_legacy_ssbd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 3
    functionsReached:
    - wrmsr_safe
    - rdmsrl
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool set_legacy_ssbd(const struct cpuinfo_x86 *c, bool enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:696,1
    - Dst: set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:700,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/cpu/amd.c:701,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/amd.c:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 706
    functionName: amd_init_ssbd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - panic
    - printk_once
    - wrmsrl
    - set_legacy_ssbd
    linkageType: ''
    returnType: void
    signature: void amd_init_ssbd(const struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/amd.c:732,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:732,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/cpu/amd.c:738,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/cpu/amd.c:744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 747
    functionName: amd_setup_legacy_ssbd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - spin_lock_init
    - xzalloc_array
    - cpuid_ecx
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: bool amd_setup_legacy_ssbd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/amd.c:764,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:764,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/amd.c:767,1
    - Dst: set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:767,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/amd.c:771,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/amd.c:772,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/cpu/amd.c:776,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/amd.c:778,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/amd.c:780,1
    - Dst: set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:780,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/cpu/amd.c:781,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 782
    functionName: core_set_legacy_ssbd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BUG_ON
    - ASSERT
    - this_cpu
    - set_legacy_ssbd
    linkageType: ''
    returnType: void
    signature: void core_set_legacy_ssbd(bool enable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:793,1
    - Dst: wrmsr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:797,1
    - Dst: core_set_legacy_ssbd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:799,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:801,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 804
    functionName: amd_set_legacy_ssbd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 3
    functionsReached:
    - core_set_legacy_ssbd
    - ASSERT_UNREACHABLE
    - wrmsr
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void amd_set_legacy_ssbd(bool enable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_zen2_uarch
      Src: /src/xen/xen/arch/x86/cpu/amd.c:822,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:825,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: amd_init_spectral_chicken
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - is_zen2_uarch
    - wrmsr_safe
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void amd_init_spectral_chicken(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:833,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:835,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 840
    functionName: detect_zen2_null_seg_behaviour
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - setup_force_cpu_cap
    - wrmsrl
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void detect_zen2_null_seg_behaviour(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:849,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/cpu/amd.c:857,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/cpu/amd.c:858,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/x86/cpu/amd.c:859,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/cpu/amd.c:860,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:864,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 866
    functionName: fam17_disable_c6
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - smp_call_function
    - rdmsrl
    - process_pending_softirqs
    - wrmsrl
    - printk
    - put_cpu_maps
    - get_cpu_maps
    linkageType: ''
    returnType: void
    signature: void fam17_disable_c6(void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/amd.c:877,1
    - Dst: is_zen2_uarch
      Src: /src/xen/xen/arch/x86/cpu/amd.c:891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 895
    functionName: zenbleed_use_chickenbit
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - is_zen2_uarch
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool zenbleed_use_chickenbit(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:915,1
    - Dst: AMD64_DE_CFG_LFENCE_SERIALISE::AMD64_DE_CFG_LFENCE_SERIALISE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:916,1
    - Dst: zenbleed_use_chickenbit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:922,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:936,1
    - Dst: wrmsr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:947,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 948
    functionName: amd_init_de_cfg
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - AMD64_DE_CFG_LFENCE_SERIALISE::AMD64_DE_CFG_LFENCE_SERIALISE
    - rdmsr
    - zenbleed_use_chickenbit
    - wrmsr
    - test_bit
    linkageType: ''
    returnType: void
    signature: void amd_init_de_cfg(const struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:955,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:963,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:971,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:975,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 976
    functionName: amd_init_lfence_dispatch
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 1
    functionsReached:
    - setup_clear_cpu_cap
    - test_bit
    - setup_force_cpu_cap
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void amd_init_lfence_dispatch(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_zen4_uarch
      Src: /src/xen/xen/arch/x86/cpu/amd.c:985,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:995,1
    - Dst: BP_CFG_SPEC_REDUCE::BP_CFG_SPEC_REDUCE
      Src: /src/xen/xen/arch/x86/cpu/amd.c:996,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1002,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 1014
    functionName: amd_check_bp_cfg
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - rdmsrl
    - BP_CFG_SPEC_REDUCE::BP_CFG_SPEC_REDUCE
    - wrmsrl
    - is_zen4_uarch
    linkageType: ''
    returnType: void
    signature: void amd_check_bp_cfg(void)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: amd_init_de_cfg
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1021,1
    - Dst: amd_init_lfence_dispatch
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1024,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1033,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1035,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1039,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1045,1
    - Dst: rdmsr_amd_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1046,1
    - Dst: wrmsr_amd_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1047,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1054,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1055,1
    - Dst: amd_init_ssbd
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1057,1
    - Dst: amd_init_spectral_chicken
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1060,1
    - Dst: detect_zen2_null_seg_behaviour
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1065,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1072,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1076,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1084,1
    - Dst: disable_c1e
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1089,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1103,1
    - Dst: is_forced_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1104,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1109,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1110,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1121,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1122,1
    - Dst: display_cacheinfo
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1126,1
    - Dst: cpuid_ecx
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1129,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1133,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1134,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1135,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1137,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1145,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1146,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1148,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1149,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1151,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1152,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1162,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1163,1
    - Dst: amd_get_topology
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1165,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1169,1
    - Dst: cpu_has_amd_erratum
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1171,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1174,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1178,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1187,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1187,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1188,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1188,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1190,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1197,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1197,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1201,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1201,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1205,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1208,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1210,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1211,1
    - Dst: __clear_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1216,1
    - Dst: check_enable_amd_mmconf_dmi
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1221,1
    - Dst: fam10h_check_enable_mmcfg
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1223,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1232,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1234,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1242,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1249,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1250,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1251,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1252,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1255,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1257,1
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1258,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1262,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1262,1
    - Dst: disable_c1_ramping
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1263,1
    - Dst: amd_check_bp_cfg
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1265,1
    - Dst: fam17_disable_c6
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1268,1
    - Dst: check_syscfg_dram_mod_en
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1270,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1272,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1274,1
    - Dst: amd_log_freq
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1276,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 124
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1016
    functionDepth: 7
    functionLinenumber: 1016
    functionLinenumberEnd: 1277
    functionName: init_amd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - amd_log_freq
    - wrmsr_safe
    - cpu_has
    - printk_once
    - check_syscfg_dram_mod_en
    - pci_conf_read32
    - wrmsrl
    - cpuid_ecx
    - amd_get_topology
    - wrmsr_amd_safe
    - setup_force_cpu_cap
    - amd_init_de_cfg
    - wrmsrns
    - __set_bit
    - amd_check_bp_cfg
    - smp_processor_id
    - PCI_SBDF
    - warning_add
    - amd_init_spectral_chicken
    - is_forced_cpu_cap
    - printk
    - setup_clear_cpu_cap
    - amd_init_ssbd
    - detect_zen2_null_seg_behaviour
    - amd_init_lfence_dispatch
    - pci_conf_write32
    - disable_c1_ramping
    - rdmsr
    - panic
    - rdmsrl
    - check_enable_amd_mmconf_dmi
    - fam10h_check_enable_mmcfg
    - fam17_disable_c6
    - __clear_bit
    - disable_c1e
    - rdmsr_amd_safe
    - cpu_has_amd_erratum
    - rdmsr_safe
    - display_cacheinfo
    linkageType: ''
    returnType: void
    signature: void init_amd(struct cpuinfo_x86 *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DAYS
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1304,1
    - Dst: tsc_ticks2ns
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1304,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1304,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1308,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1309,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1309,1
    - Dst: fam17_disable_c6
      Src: /src/xen/xen/arch/x86/cpu/amd.c:1311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1314
    functionName: amd_check_erratum_1474
    functionSourceFile: /src/xen/xen/arch/x86/cpu/amd.c
    functionUses: 0
    functionsReached:
    - fam17_disable_c6
    - tsc_ticks2ns
    - DAYS
    - rdtsc
    - set_timer
    - init_timer
    - NOW
    linkageType: ''
    returnType: int
    signature: int amd_check_erratum_1474(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:31,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/cpu/intel.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: update_mcu_opt_ctrl
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 2
    functionsReached:
    - wrmsrns
    - rdmsr
    linkageType: ''
    returnType: void
    signature: void update_mcu_opt_ctrl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_mcu_opt_ctrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mask
    - val
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: set_in_mcu_opt_ctrl
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 3
    functionsReached:
    - update_mcu_opt_ctrl
    linkageType: ''
    returnType: void
    signature: void set_in_mcu_opt_ctrl(uint32_t mask, uint32_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:59,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/cpu/intel.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: update_pb_opt_ctrl
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 2
    functionsReached:
    - wrmsrns
    - rdmsr
    linkageType: ''
    returnType: void
    signature: void update_pb_opt_ctrl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_pb_opt_ctrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mask
    - val
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: set_in_pb_opt_ctrl
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 1
    functionsReached:
    - update_pb_opt_ctrl
    linkageType: ''
    returnType: void
    signature: void set_in_pb_opt_ctrl(uint32_t mask, uint32_t val)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/intel.c:86,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: check_memory_type_self_snoop_errata
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void check_memory_type_self_snoop_errata(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/intel.c:118,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/intel.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - msr
    - caps
    argTypes:
    - unsigned int*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: _probe_mask_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 1
    functionsReached:
    - wrmsr_safe
    - rdmsr_safe
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _probe_mask_msr(unsigned int *msr, uint64_t caps)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:173,1
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:176,1
    - Dst: _probe_mask_msr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:179,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:189,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:193,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 199
    functionName: probe_masking_msrs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 1
    functionsReached:
    - _probe_mask_msr
    - printk
    linkageType: ''
    returnType: void
    signature: void probe_masking_msrs(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/intel.c:209,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/cpu/intel.c:212,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/cpu/intel.c:223,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/x86/cpu/intel.c:223,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/intel.c:225,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/intel.c:227,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:228,1
    - Dst: LAZY
      Src: /src/xen/xen/arch/x86/cpu/intel.c:243,1
    - Dst: LAZY
      Src: /src/xen/xen/arch/x86/cpu/intel.c:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - next
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 247
    functionName: intel_ctxt_switch_masking
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - unlikely
    - LAZY
    - is_idle_vcpu
    - cpufeat_mask
    - is_pv_domain
    - wrmsrl
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void intel_ctxt_switch_masking(const struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: LAZY
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAZY(msr, field)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: probe_cpuid_faulting
      Src: /src/xen/xen/arch/x86/cpu/intel.c:265,1
    - Dst: probe_masking_msrs
      Src: /src/xen/xen/arch/x86/cpu/intel.c:271,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/intel.c:274,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/intel.c:277,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/intel.c:278,1
    - Dst: cpufeat_mask
      Src: /src/xen/xen/arch/x86/cpu/intel.c:279,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/intel.c:285,1
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/intel.c:290,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 310
    functionName: intel_init_levelling
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - probe_cpuid_faulting
    - cpufeat_mask
    - cpuid_count
    - cpuid
    - printk
    - probe_masking_msrs
    linkageType: ''
    returnType: void
    signature: void intel_init_levelling(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:317,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:321,1
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/cpu/intel.c:322,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/intel.c:323,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: intel_unlock_cpuid_leaves
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 1
    functionsReached:
    - rdmsrl
    - cpuid_eax
    - wrmsrl
    - printk
    - bootsym
    linkageType: ''
    returnType: void
    signature: void intel_unlock_cpuid_leaves(struct cpuinfo_x86 *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bootsym
      Src: /src/xen/xen/arch/x86/cpu/intel.c:335,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:336,1
    - Dst: intel_unlock_cpuid_leaves
      Src: /src/xen/xen/arch/x86/cpu/intel.c:338,1
    - Dst: check_memory_type_self_snoop_errata
      Src: /src/xen/xen/arch/x86/cpu/intel.c:348,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:354,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:356,1
    - Dst: intel_init_levelling
      Src: /src/xen/xen/arch/x86/cpu/intel.c:358,1
    - Dst: ctxt_switch_levelling
      Src: /src/xen/xen/arch/x86/cpu/intel.c:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 362
    functionName: early_init_intel
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - intel_unlock_cpuid_leaves
    - check_memory_type_self_snoop_errata
    - ctxt_switch_levelling
    - rdmsrl
    - intel_init_levelling
    - printk
    - setup_clear_cpu_cap
    - bootsym
    linkageType: ''
    returnType: void
    signature: void early_init_intel(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:376,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:377,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:378,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:379,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:380,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:381,1
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/cpu/intel.c:388,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 394
    functionName: probe_c3_errata
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - printk
    - X86_MATCH_VFM
    - x86_match_cpu
    linkageType: ''
    returnType: void
    signature: void probe_c3_errata(const struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:405,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:412,1
    - Dst: X86_MATCH_VFM
      Src: /src/xen/xen/arch/x86/cpu/intel.c:417,1
    - Dst: boot_cpu_has
      Src: /src/xen/xen/arch/x86/cpu/intel.c:421,1
    - Dst: x86_match_cpu
      Src: /src/xen/xen/arch/x86/cpu/intel.c:421,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:423,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 427
    functionName: probe_mwait_errata
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - boot_cpu_has
    - x86_match_cpu
    - X86_MATCH_VFM
    - printk
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void probe_mwait_errata(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr
      Src: /src/xen/xen/arch/x86/cpu/intel.c:442,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:444,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:445,1
    - Dst: wrmsrns
      Src: /src/xen/xen/arch/x86/cpu/intel.c:447,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:453,1
    - Dst: probe_c3_errata
      Src: /src/xen/xen/arch/x86/cpu/intel.c:455,1
    - Dst: probe_mwait_errata
      Src: /src/xen/xen/arch/x86/cpu/intel.c:457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 458
    functionName: Intel_errata_workarounds
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - probe_mwait_errata
    - wrmsrns
    - rdmsr
    - probe_c3_errata
    - printk
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void Intel_errata_workarounds(struct cpuinfo_x86 *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_count
      Src: /src/xen/xen/arch/x86/cpu/intel.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 477
    functionName: num_cpu_cores
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - cpuid_count
    linkageType: ''
    returnType: int
    signature: int num_cpu_cores(struct cpuinfo_x86 *c)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/intel.c:487,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:493,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/intel.c:494,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:498,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/intel.c:498,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:500,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:502,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:503,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/intel.c:509,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:512,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/intel.c:512,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:514,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:516,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:518,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:519,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/intel.c:529,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/cpu/intel.c:548,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/intel.c:549,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/intel.c:550,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/intel.c:567,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:581,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/intel.c:581,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:583,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:584,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 585
    functionName: intel_log_freq
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - smp_processor_id
    - cpuid
    - SWAP
    - printk
    - rdmsr_safe
    linkageType: ''
    returnType: void
    signature: void intel_log_freq(const struct cpuinfo_x86 *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:593,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/intel.c:597,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:610,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/intel.c:614,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/intel.c:615,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/intel.c:616,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/intel.c:619,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 621
    functionName: init_intel_perf
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - smp_processor_id
    - rdmsrl
    - cpuid_eax
    - wrmsrl
    - printk
    linkageType: ''
    returnType: void
    signature: void init_intel_perf(struct cpuinfo_x86 *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: detect_extended_topology
      Src: /src/xen/xen/arch/x86/cpu/intel.c:626,1
    - Dst: init_intel_cacheinfo
      Src: /src/xen/xen/arch/x86/cpu/intel.c:628,1
    - Dst: init_intel_perf
      Src: /src/xen/xen/arch/x86/cpu/intel.c:629,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/intel.c:631,1
    - Dst: num_cpu_cores
      Src: /src/xen/xen/arch/x86/cpu/intel.c:633,1
    - Dst: detect_ht
      Src: /src/xen/xen/arch/x86/cpu/intel.c:634,1
    - Dst: Intel_errata_workarounds
      Src: /src/xen/xen/arch/x86/cpu/intel.c:638,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/intel.c:640,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/intel.c:641,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/intel.c:642,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/intel.c:643,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/intel.c:646,1
    - Dst: intel_log_freq
      Src: /src/xen/xen/arch/x86/cpu/intel.c:650,1
    - Dst: setup_clear_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:661,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/intel.c:663,1
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 623
    functionDepth: 6
    functionLinenumber: 623
    functionLinenumberEnd: 665
    functionName: init_intel
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 0
    functionsReached:
    - init_intel_perf
    - __set_bit
    - intel_log_freq
    - detect_extended_topology
    - cpu_has
    - detect_ht
    - setup_clear_cpu_cap
    - num_cpu_cores
    - Intel_errata_workarounds
    - setup_force_cpu_cap
    - init_intel_cacheinfo
    linkageType: ''
    returnType: void
    signature: void init_intel(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_force_cpu_cap
      Src: /src/xen/xen/arch/x86/cpu/intel.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: intel_init_arat
    functionSourceFile: /src/xen/xen/arch/x86/cpu/intel.c
    functionUses: 1
    functionsReached:
    - setup_force_cpu_cap
    linkageType: ''
    returnType: void
    signature: void intel_init_arat(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - bit
    - banks
    argTypes:
    - int
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: mcabanks_clear
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void mcabanks_clear(int bit, struct mca_banks *banks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - bit
    - banks
    argTypes:
    - int
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: mcabanks_set
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    functionUses: 0
    functionsReached:
    - set_bit
    linkageType: ''
    returnType: void
    signature: void mcabanks_set(int bit, struct mca_banks* banks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - bit
    - banks
    argTypes:
    - int
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: mcabanks_test
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    functionUses: 0
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: int
    signature: int mcabanks_test(int bit, struct mca_banks* banks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:16,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - bank
    - mi
    - mfn
    - status
    argTypes:
    - int
    - struct mc_info*
    - mfn_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 28
    functionName: mci_action_add_pageoffline
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c
    functionUses: 0
    functionsReached:
    - x86_mcinfo_reserve
    - mfn_x
    linkageType: ''
    returnType: struct mcinfo_recovery
    signature: "struct mcinfo_recovery *\nmci_action_add_pageoffline(int bank, struct
      mc_info *mi,\n                           mfn_t mfn, uint32_t status)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:44,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:47,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:52,1
    - Dst: offline_page
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:53,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:55,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:57,1
    - Dst: mci_action_add_pageoffline
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:61,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:74,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:81,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:84,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:85,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:86,1
    - Dst: unmmap_broken_page
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:88,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:90,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:91,1
    - Dst: fill_vmsr_data
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:114,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:116,1
    - Dst: inject_vmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:122,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:124,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:129,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:141,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c:142,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 146
    functionName: mc_memerr_dhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c
    functionUses: 0
    functionsReached:
    - get_gpfn_from_mfn
    - inject_vmce
    - fill_vmsr_data
    - mfn_x
    - rcu_lock_domain_by_id
    - mci_action_add_pageoffline
    - alternative_call
    - maddr_to_mfn
    - BUG_ON
    - ASSERT
    - unmmap_broken_page
    - printk
    - rcu_unlock_domain
    - domain_crash
    - offline_page
    - dprintk
    - mce_printk
    linkageType: ''
    returnType: void
    signature: "void mc_memerr_dhandler(struct mca_binfo *binfo,\n                   enum
      mce_result *result,\n                   const struct cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MCTE_CLASS
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCTE_CLASS(tep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tep
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: MCTE_SET_CLASS
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCTE_SET_CLASS(tep, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MCTE_STATE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCTE_STATE(tep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tep
    - ','
    - old
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: MCTE_TRANSITION_STATE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCTE_TRANSITION_STATE(tep, old, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: COOKIE2MCTE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COOKIE2MCTE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: MCTE2COOKIE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCTE2COOKIE(tep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmpxchgptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - headp
    - linkp
    - new
    argTypes:
    - struct mctelem_ent**
    - struct mctelem_ent**
    - struct mctelem_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: mctelem_xchg_head
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - cmpxchgptr
    linkageType: ''
    returnType: void
    signature: "void mctelem_xchg_head(struct mctelem_ent **headp,\n\t\t\t\tstruct
      mctelem_ent **linkp,\n\t\t\t\tstruct mctelem_ent *new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:170,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:171,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:173,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:176,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:178,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:190,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - cookie
    - lmce
    argTypes:
    - mctelem_cookie_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 194
    functionName: mctelem_defer
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - mctelem_xchg_head
    - ASSERT
    - COOKIE2MCTE
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void mctelem_defer(mctelem_cookie_t cookie, bool lmce)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:216,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:235,1
    - Dst: fn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:259,1
    - Dst: MCTE2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:259,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:264,1
    - Dst: MCTE2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:264,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:266,1
    - Dst: MCTE2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cpu
    - lmce
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 268
    functionName: mctelem_process_deferred
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - mctelem_xchg_head
    - fn
    - MCTE2COOKIE
    - mctelem_dismiss
    - per_cpu
    - mctelem_commit
    linkageType: ''
    returnType: void
    signature: "void mctelem_process_deferred(unsigned int cpu,\n\t\t\t      int (*fn)(mctelem_cookie_t
      mctc),\n\t\t\t      bool lmce)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: mctelem_has_deferred
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: bool
    signature: bool mctelem_has_deferred(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: mctelem_has_deferred_lmce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: bool
    signature: bool mctelem_has_deferred_lmce(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:287,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:288,1
    - Dst: MCTE_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:288,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tep
    argTypes:
    - struct mctelem_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: mctelem_free
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - MCTE_STATE
    - set_bit
    linkageType: ''
    returnType: void
    signature: void mctelem_free(struct mctelem_ent *tep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tep
    argTypes:
    - struct mctelem_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: mctelem_hold
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mctelem_hold(struct mctelem_ent *tep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MCTE_CLASS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:310,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tep
    argTypes:
    - struct mctelem_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 315
    functionName: mctelem_processing_hold
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - MCTE_CLASS
    linkageType: ''
    returnType: void
    signature: void mctelem_processing_hold(struct mctelem_ent *tep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MCTE_CLASS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:322,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:325,1
    - Dst: MCTE_TRANSITION_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:327,1
    - Dst: mctelem_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tep
    argTypes:
    - struct mctelem_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: mctelem_processing_release
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - mctelem_free
    - MCTE_CLASS
    - MCTE_TRANSITION_STATE
    linkageType: ''
    returnType: void
    signature: void mctelem_processing_release(struct mctelem_ent *tep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:338,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:342,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:344,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:345,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:346,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - datasz
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 362
    functionName: mctelem_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - xmalloc_array
    - __set_bit
    - BUILD_BUG_ON
    - printk
    - xfree
    linkageType: ''
    returnType: void
    signature: void mctelem_init(unsigned int datasz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:377,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:385,1
    - Dst: mctelem_hold
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:389,1
    - Dst: MCTE_TRANSITION_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:390,1
    - Dst: MCTE_SET_CLASS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:394,1
    - Dst: MCTE_SET_CLASS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:396,1
    - Dst: MCTE2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - which
    argTypes:
    - mctelem_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 400
    functionName: mctelem_reserve
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - find_next_bit
    - MCTE_SET_CLASS
    - mctelem_hold
    - MCTE2COOKIE
    - MCTE_TRANSITION_STATE
    linkageType: ''
    returnType: mctelem_cookie_t
    signature: mctelem_cookie_t mctelem_reserve(mctelem_class_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: mctelem_dataptr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - COOKIE2MCTE
    linkageType: ''
    returnType: void
    signature: void *mctelem_dataptr(mctelem_cookie_t cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:415,1
    - Dst: MCTE_TRANSITION_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:418,1
    - Dst: mctelem_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: mctelem_dismiss
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 1
    functionsReached:
    - mctelem_free
    - COOKIE2MCTE
    - MCTE_TRANSITION_STATE
    linkageType: ''
    returnType: void
    signature: void mctelem_dismiss(mctelem_cookie_t cookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:429,1
    - Dst: MCTE_CLASS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:430,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:433,1
    - Dst: MCTE_TRANSITION_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:434,1
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: mctelem_commit
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 1
    functionsReached:
    - mctelem_xchg_head
    - MCTE_CLASS
    - COOKIE2MCTE
    - BUG_ON
    - MCTE_TRANSITION_STATE
    linkageType: ''
    returnType: void
    signature: void mctelem_commit(mctelem_cookie_t cookie)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mctelem_xchg_head
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:471,1
    - Dst: MCTE_TRANSITION_STATE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:481,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:499,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - which
    argTypes:
    - mctelem_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 502
    functionName: mctelem_append_processing
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - mctelem_xchg_head
    - smp_wmb
    - MCTE_TRANSITION_STATE
    linkageType: ''
    returnType: void
    signature: void mctelem_append_processing(mctelem_class_t which)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:510,1
    - Dst: mctelem_append_processing
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:511,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:513,1
    - Dst: mctelem_processing_hold
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:517,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:518,1
    - Dst: MCTE2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - which
    argTypes:
    - mctelem_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 520
    functionName: mctelem_consume_oldest_begin
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - mctelem_processing_hold
    - mctelem_append_processing
    - spin_lock
    - MCTE2COOKIE
    linkageType: ''
    returnType: mctelem_cookie_t
    signature: mctelem_cookie_t mctelem_consume_oldest_begin(mctelem_class_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:524,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:526,1
    - Dst: mctelem_processing_release
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:527,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 529
    functionName: mctelem_consume_oldest_end
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - mctelem_processing_release
    - spin_lock
    - COOKIE2MCTE
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void mctelem_consume_oldest_end(mctelem_cookie_t cookie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COOKIE2MCTE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:535,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:540,1
    - Dst: mctelem_processing_release
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:542,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - which
    - cookie
    argTypes:
    - mctelem_class_t
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 544
    functionName: mctelem_ack
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    functionUses: 0
    functionsReached:
    - mctelem_processing_release
    - spin_lock
    - COOKIE2MCTE
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void mctelem_ack(mctelem_class_t which, mctelem_cookie_t cookie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:57,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: vmce_init_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - memset
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: void vmce_init_vcpu(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:73,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - v
    - ctxt
    argTypes:
    - struct vcpu*
    - struct hvm_vmce_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 86
    functionName: vmce_restore_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - is_hvm_vcpu
    - printk
    linkageType: ''
    returnType: int
    signature: int vmce_restore_vcpu(struct vcpu *v, const struct hvm_vmce_vcpu *ctxt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:104,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:113,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:123,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:133,1
    - Dst: vmce_intel_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:145,1
    - Dst: vmce_amd_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:152,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 164
    functionName: bank_mce_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 0
    functionsReached:
    - vmce_amd_rdmsr
    - mce_printk
    - vmce_intel_rdmsr
    linkageType: ''
    returnType: int
    signature: int bank_mce_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:178,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:185,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:191,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:197,1
    - Dst: vmce_has_lmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:206,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:209,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:215,1
    - Dst: mce_bank_msr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:221,1
    - Dst: bank_mce_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:221,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 228
    functionName: vmce_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - bank_mce_rdmsr
    - mce_bank_msr
    - spin_lock
    - vmce_has_lmce
    - mce_printk
    linkageType: ''
    returnType: int
    signature: int vmce_rdmsr(uint32_t msr, uint64_t *val)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:249,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:258,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:267,1
    - Dst: vmce_intel_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:280,1
    - Dst: vmce_amd_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:287,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 299
    functionName: bank_mce_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 0
    functionsReached:
    - vmce_amd_wrmsr
    - mce_printk
    - vmce_intel_wrmsr
    linkageType: ''
    returnType: int
    signature: int bank_mce_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:311,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:321,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:331,1
    - Dst: vmce_has_lmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:335,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:339,1
    - Dst: mce_bank_msr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:344,1
    - Dst: bank_mce_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:344,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - msr
    - val
    argTypes:
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 350
    functionName: vmce_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - mce_bank_msr
    - spin_lock
    - vmce_has_lmce
    - mce_printk
    - bank_mce_wrmsr
    linkageType: ''
    returnType: int
    signature: int vmce_wrmsr(uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_save_entry
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - h
    argTypes:
    - struct vcpu*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: vmce_save_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 0
    functionsReached:
    - hvm_save_entry
    linkageType: ''
    returnType: int
    signature: int vmce_save_vcpu_ctxt(struct vcpu *v, hvm_domain_context_t *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_load_instance
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:367,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:374,1
    - Dst: hvm_load_entry_zeroextend
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:379,1
    - Dst: vmce_restore_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - h
    argTypes:
    - struct domain*
    - hvm_domain_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: vmce_load_vcpu_ctxt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 0
    functionsReached:
    - hvm_load_instance
    - dprintk
    - hvm_load_entry_zeroextend
    - vmce_restore_vcpu
    linkageType: ''
    returnType: int
    signature: int vmce_load_vcpu_ctxt(struct domain *d, hvm_domain_context_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:411,1
    - Dst: pv_trap_callback_registered
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:412,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:413,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:415,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:416,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - d
    - vcpu
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 431
    functionName: inject_vmce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - test_and_set_bool
    - vcpu_kick
    - pv_trap_callback_registered
    - mce_printk
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int inject_vmce(struct domain *d, int vcpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:411,1
    - Dst: pv_trap_callback_registered
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:412,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:413,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:415,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:416,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 428
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 26
    functionsReached:
    - test_and_set_bool
    - vcpu_kick
    - pv_trap_callback_registered
    - mce_printk
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:439,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:444,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - v
    - mcg_status
    - mci_status
    - mci_addr
    - mci_misc
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 458
    functionName: vcpu_fill_mc_msrs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - mce_printk
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: "int vcpu_fill_mc_msrs(struct vcpu *v, uint64_t mcg_status,\n                             uint64_t
      mci_status, uint64_t mci_addr,\n                             uint64_t mci_misc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:474,1
    - Dst: vcpu_fill_mc_msrs
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:486,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:489,1
    - Dst: vcpu_fill_mc_msrs
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - mc_bank
    - d
    - gstatus
    - vmce_vcpuid
    argTypes:
    - struct mcinfo_bank*
    - struct domain*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 500
    functionName: fill_vmsr_data
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - ASSERT
    - vcpu_fill_mc_msrs
    linkageType: ''
    returnType: int
    signature: "int fill_vmsr_data(struct mcinfo_bank *mc_bank, struct domain *d,\n
      \                  uint64_t gstatus, int vmce_vcpuid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:522,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:525,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:528,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:528,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:532,1
    - Dst: p2m_to_mask
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:533,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:535,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:535,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:536,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:538,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - d
    - mfn
    - gfn
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 541
    functionName: unmmap_broken_page
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - put_gfn
    - paging_mode_shadow
    - mfn_valid
    - ASSERT
    - mfn_eq
    - p2m_change_type_one
    - p2m_to_mask
    - is_hardware_domain
    - is_hvm_domain
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int unmmap_broken_page(struct domain *d, mfn_t mfn, unsigned long gfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - cap
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 559
    functionName: vmce_enable_mca_cap
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    linkageType: ''
    returnType: int
    signature: int vmce_enable_mca_cap(struct domain *d, uint64_t cap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/x86/cpu/mcheck/util.c:10,1
    - Dst: halt
      Src: /src/xen/xen/arch/x86/cpu/mcheck/util.c:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 14
    functionName: mce_panic_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/util.c
    functionUses: 0
    functionsReached:
    - halt
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void mce_panic_check(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: DEFINE_MCE_BARRIER
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_MCE_BARRIER(name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mce_available
      Src: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c:17,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c:20,1
    - Dst: amd_nonfatal_mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c:31,1
    - Dst: intel_nonfatal_mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c:37,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 47
    functionName: init_nonfatal_mce_checker
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c
    functionUses: 0
    functionsReached:
    - amd_nonfatal_mcheck_init
    - mce_available
    - intel_nonfatal_mcheck_init
    - printk
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int init_nonfatal_mce_checker(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - v
    - ','
    - s
    - ','
    - a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: mce_printk
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mce_printk(v, s, a...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intpose_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:82,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:82,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: mca_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 0
    functionsReached:
    - intpose_lookup
    - smp_processor_id
    - rdmsrl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mca_rdmsr(unsigned int msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: mca_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mca_wrmsr(msr, val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - v
    - msr
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 163
    functionName: mce_vendor_bank_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_CTL2
    linkageType: ''
    returnType: int
    signature: int mce_vendor_bank_msr(const struct vcpu *v, uint32_t msr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:168,1
    - Dst: mce_vendor_bank_msr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.h:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - v
    - msr
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: mce_bank_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 2
    functionsReached:
    - MSR_IA32_MCx_CTL
    - mce_vendor_bank_msr
    linkageType: ''
    returnType: int
    signature: int mce_bank_msr(const struct vcpu *v, uint32_t msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: vmce_has_lmce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vmce_has_lmce(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - segsel
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: SEG_PL
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEG_PL(segsel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - fmt
    - ','
    - err
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: x86_mcerr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcerr(fmt, err, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - fmt
    - ','
    - err
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: x86_mcerr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcerr(fmt, err, args...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: mce_set_verbosity
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int mce_set_verbosity(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:86,1
    - Dst: fatal_trap
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: unexpected_machine_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - fatal_trap
    - console_force_unlock
    - printk
    linkageType: ''
    returnType: void
    signature: void unexpected_machine_check(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mce_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:100,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:101,1
    - Dst: mce_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: do_machine_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 2
    functionsReached:
    - mce_enter
    - alternative_vcall
    - mce_exit
    linkageType: ''
    returnType: void
    signature: void do_machine_check(const struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:109,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:120,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:120,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: mcabanks_alloc
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - BITS_TO_LONGS
    - xmalloc
    - xfree
    - xzalloc_array
    linkageType: ''
    returnType: struct mca_banks
    signature: struct mca_banks *mcabanks_alloc(unsigned int nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:137,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - banks
    argTypes:
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: mcabanks_free
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void mcabanks_free(struct mca_banks *banks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:145,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:145,1
    - Dst: mca_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:148,1
    - Dst: MSR_IA32_MCx_ADDR
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:148,1
    - Dst: mca_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:150,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:150,1
    - Dst: mca_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:152,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - banknum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: mcabank_clear
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_ADDR
    - MSR_IA32_MCx_MISC
    - mca_rdmsr
    - mca_wrmsr
    - MSR_IA32_MCx_STATUS
    linkageType: ''
    returnType: void
    signature: void mcabank_clear(int banknum)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:175,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:182,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:182,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:188,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:188,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:191,1
    - Dst: MSR_IA32_MCx_ADDR
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:191,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:195,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:198,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:198,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:198,1
    - Dst: maddr_get_owner
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:202,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:209,1
    - Dst: rdtsc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:210,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - who
    - mi
    - bank
    argTypes:
    - enum mca_source
    - struct mc_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 212
    functionName: mca_init_bank
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_ADDR
    - MSR_IA32_MCx_MISC
    - _mfn
    - mca_rdmsr
    - mfn_valid
    - paddr_to_pfn
    - maddr_get_owner
    - rdtsc
    - alternative_call
    - x86_mcinfo_reserve
    - MSR_IA32_MCx_STATUS
    linkageType: ''
    returnType: void
    signature: void mca_init_bank(enum mca_source who, struct mc_info *mi, int bank)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:221,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:226,1
    - Dst: x86_mc_get_cpu_info
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - flags
    - mig
    argTypes:
    - uint32_t
    - struct mcinfo_global*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 239
    functionName: mca_init_global
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - x86_mc_get_cpu_info
    - smp_processor_id
    - mca_rdmsr
    linkageType: ''
    returnType: int
    signature: int mca_init_global(uint32_t flags, struct mcinfo_global *mig)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:269,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:289,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:298,1
    - Dst: mcabanks_test
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:301,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:304,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:304,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:314,1
    - Dst: mctelem_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:326,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:329,1
    - Dst: mcinfo_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:330,1
    - Dst: x86_mcinfo_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:331,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:333,1
    - Dst: mca_init_global
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:334,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:336,1
    - Dst: intel_get_extended_msrs
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:338,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:352,1
    - Dst: mca_init_bank
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:354,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:357,1
    - Dst: mcabank_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:362,1
    - Dst: mcabanks_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:364,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 4
    argNames:
    - who
    - bankmask
    - sp
    - clear_bank
    argTypes:
    - enum mca_source
    - struct mca_banks*
    - struct mca_summary*
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 389
    functionName: mcheck_mca_logout
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - mcinfo_clear
    - BUG
    - mca_init_global
    - mcabanks_test
    - mcabank_clear
    - mca_rdmsr
    - mcabanks_set
    - IS_ENABLED
    - intel_get_extended_msrs
    - mca_init_bank
    - alternative_call
    - ASSERT
    - alternative_vcall
    - this_cpu
    - x86_mcinfo_reserve
    - mctelem_reserve
    - MSR_IA32_MCx_STATUS
    - mctelem_dataptr
    linkageType: ''
    returnType: mctelem_cookie_t
    signature: "mctelem_cookie_t mcheck_mca_logout(enum mca_source who, struct mca_banks
      *bankmask,\n                  struct mca_summary *sp, struct mca_banks *clear_bank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:393,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:395,1
    - Dst: mce_panic_check
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lk
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: mce_spin_lock
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - spin_trylock
    - mce_panic_check
    linkageType: ''
    returnType: void
    signature: void mce_spin_lock(spinlock_t *lk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lk
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: mce_spin_unlock
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void mce_spin_unlock(spinlock_t *lk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:421,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:433,1
    - Dst: mce_action
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - regs
    - mctc
    argTypes:
    - struct cpu_user_regs*
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 437
    functionName: mce_urgent_action
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - mce_action
    - guest_mode
    - mca_rdmsr
    linkageType: ''
    returnType: int
    signature: "int mce_urgent_action(const struct cpu_user_regs *regs,\n                             mctelem_cookie_t
      mctc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ATOMIC_INIT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:443,1
    - Dst: ATOMIC_INIT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:444,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:447,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:448,1
    - Dst: mce_spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:454,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:457,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:458,1
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:459,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:470,1
    - Dst: mctelem_defer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:472,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:479,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:482,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:483,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:486,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:488,1
    - Dst: mcheck_mca_clearbanks
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:491,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:494,1
    - Dst: mce_spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:495,1
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:497,1
    - Dst: mce_urgent_action
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:498,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:499,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:500,1
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:505,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:506,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:513,1
    - Dst: mc_panic
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:514,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:515,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:519,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:521,1
    - Dst: mc_panic
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:523,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:525,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:526,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:528,1
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:531,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:532,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:535,1
    - Dst: mca_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:536,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:538,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:540,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 541
    functionName: mcheck_cmn_handler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - snprintf
    - mcheck_mca_logout
    - add_taint
    - mca_rdmsr
    - mc_panic
    - mce_barrier_exit
    - BITS_TO_LONGS
    - mctelem_commit
    - mctelem_defer
    - raise_softirq
    - smp_processor_id
    - cpumask_set_cpu
    - mctelem_dismiss
    - mce_spin_lock
    - mca_wrmsr
    - CPUMASK_PR
    - ATOMIC_INIT
    - mce_barrier_enter
    - memset
    - mcheck_mca_clearbanks
    - mce_urgent_action
    - cpumask_empty
    - per_cpu
    - mce_spin_unlock
    - mce_printk
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void mcheck_cmn_handler(const struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:547,1
    - Dst: mcabanks_test
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:549,1
    - Dst: mcabank_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - bankmask
    argTypes:
    - struct mca_banks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 553
    functionName: mcheck_mca_clearbanks
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - mcabanks_test
    - mcabank_clear
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void mcheck_mca_clearbanks(struct mca_banks *bankmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:558,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: mce_available
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - cpu_has
    linkageType: ''
    returnType: bool
    signature: bool mce_available(const struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: mce_firstbank
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mce_firstbank(struct cpuinfo_x86 *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:585,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:585,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:587,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:588,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:588,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:592,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:598,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - inited
    - c
    argTypes:
    - int
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 610
    functionName: show_mca_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - snprintf
    - ARRAY_SIZE
    - smp_processor_id
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int show_mca_info(int inited, struct cpuinfo_x86 *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:614,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:617,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:618,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:622,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:624,1
    - Dst: bitmap_fill
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:625,1
    - Dst: bitmap_copy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:626,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:626,1
    - Dst: bitmap_copy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:630,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:631,1
    - Dst: mce_firstbank
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:632,1
    - Dst: mcabanks_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 635
    functionName: set_poll_bankmask
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - mcabanks_clear
    - mce_firstbank
    - smp_processor_id
    - bitmap_copy
    - BUG_ON
    - min
    - bitmap_fill
    - per_cpu
    - unlikely
    linkageType: ''
    returnType: void
    signature: void set_poll_bankmask(struct cpuinfo_x86 *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:641,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:643,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:645,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:645,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:649,1
    - Dst: mcabanks_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:662,1
    - Dst: mcabanks_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:667,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:668,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:668,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 675
    functionName: mca_cap_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - mcabanks_alloc
    - xchg
    - rdmsrl
    - mcabanks_set
    - mcabanks_free
    - wrmsrl
    - per_cpu
    - printk
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int mca_cap_init(bool bsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:679,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:680,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:682,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:683,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:685,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: cpu_bank_free
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - per_cpu
    - mcabanks_free
    linkageType: ''
    returnType: void
    signature: void cpu_bank_free(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:691,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:692,1
    - Dst: mcabanks_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:692,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:693,1
    - Dst: mcabanks_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:693,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:697,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:698,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:702,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 705
    functionName: cpu_bank_alloc
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - mcabanks_alloc
    - per_cpu
    - mcabanks_free
    linkageType: ''
    returnType: int
    signature: int cpu_bank_alloc(unsigned int cpu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpu_bank_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:716,1
    - Dst: cpu_bank_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:722,1
    - Dst: cpu_bank_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:727,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:731,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 732
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - cpu_bank_free
    - cpu_bank_alloc
    - notifier_from_errno
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:742,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:747,1
    - Dst: mce_available
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:751,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:753,1
    - Dst: mca_cap_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:758,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:763,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:763,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:764,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:764,1
    - Dst: cpu_bank_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:766,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:767,1
    - Dst: amd_mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:774,1
    - Dst: intel_mcheck_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:784,1
    - Dst: show_mca_info
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:794,1
    - Dst: intpose_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:798,1
    - Dst: mctelem_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:802,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:803,1
    - Dst: set_in_cr4
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:807,1
    - Dst: set_poll_bankmask
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:809,1
    - Dst: cpu_bank_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:815,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:815,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:816,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - c
    - bsp
    argTypes:
    - struct cpuinfo_x86*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 819
    functionName: mcheck_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 4
    functionsReached:
    - set_poll_bankmask
    - mce_available
    - set_in_cr4
    - mctelem_init
    - panic
    - smp_processor_id
    - amd_mcheck_init
    - mca_cap_init
    - show_mca_info
    - mcabanks_free
    - register_cpu_notifier
    - cpu_bank_free
    - intpose_init
    - per_cpu
    - printk
    - cpu_bank_alloc
    - intel_mcheck_init
    linkageType: ''
    returnType: void
    signature: void mcheck_init(struct cpuinfo_x86 *c, bool bsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mc_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: mcinfo_clear
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mcinfo_clear(struct mc_info *mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 824
    functionName: x86_mcinfo_nentries
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void x86_mcinfo_nentries(mi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_first
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:834,1
    - Dst: x86_mcinfo_nentries
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:837,1
    - Dst: x86_mcinfo_next
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:838,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:846,1
    - Dst: x86_mcinfo_nentries
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:852,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - mi
    - size
    - type
    argTypes:
    - struct mc_info*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 859
    functionName: x86_mcinfo_reserve
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 3
    functionsReached:
    - x86_mcinfo_nentries
    - x86_mcinfo_next
    - x86_mcinfo_first
    - memset
    - mce_printk
    linkageType: ''
    returnType: void
    signature: "void *x86_mcinfo_reserve(struct mc_info *mi,\n                         unsigned
      int size, unsigned int type)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - vendor
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 875
    functionName: xen2linux_vendor
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xen2linux_vendor(unsigned int vendor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:882,1
    - Dst: xen2linux_vendor
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:885,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:886,1
    - Dst: apei_write_mce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - mc_global
    - mc_bank
    argTypes:
    - struct mcinfo_global*
    - struct mcinfo_bank*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 897
    functionName: x86_mcinfo_apei_save
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - memset
    - cpuid_eax
    - apei_write_mce
    - xen2linux_vendor
    linkageType: ''
    returnType: void
    signature: "void x86_mcinfo_apei_save(\n    struct mcinfo_global *mc_global, struct
      mcinfo_bank *mc_bank)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:911,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:916,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:920,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:923,1
    - Dst: x86_mcinfo_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:927,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:936,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:940,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:942,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:943,1
    - Dst: x86_mcinfo_apei_save
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:946,1
    - Dst: x86_mcinfo_next
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:949,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - mi
    argTypes:
    - struct mc_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 953
    functionName: x86_mcinfo_dump
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - printk
    - x86_mcinfo_apei_save
    - x86_mcinfo_next
    - x86_mcinfo_lookup
    linkageType: ''
    returnType: void
    signature: void x86_mcinfo_dump(struct mc_info *mi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:957,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:973,1
    - Dst: x86_mc_get_cpu_info
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:981,1
    - Dst: xen2linux_vendor
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:987,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:992,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:993,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:994,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1001,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1003,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1006,1
    - Dst: cpuid
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1012,1
    - Dst: get_apic_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1016,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 1017
    functionName: do_mc_get_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - ARRAY_SIZE
    - smp_processor_id
    - rdmsrl
    - get_apic_id
    - xen2linux_vendor
    - cpuid
    - x86_mc_get_cpu_info
    - memcpy
    linkageType: ''
    returnType: void
    signature: void do_mc_get_cpu_info(void *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_physical_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - cpu
    - chipid
    - coreid
    - threadid
    - apicid
    - ncores
    - ncores_active
    - nthreads
    argTypes:
    - unsigned
    - uint32_t*
    - uint16_t*
    - uint16_t*
    - uint32_t*
    - unsigned*
    - unsigned*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1051
    functionName: x86_mc_get_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 2
    functionsReached:
    - cpu_physical_id
    linkageType: ''
    returnType: void
    signature: "void x86_mc_get_cpu_info(unsigned cpu, uint32_t *chipid, uint16_t
      *coreid,\n                         uint16_t *threadid, uint32_t *apicid,\n                         unsigned
      *ncores, unsigned *ncores_active,\n                         unsigned *nthreads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1072
    functionName: intpose_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void intpose_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - cpu_nr
    - msr
    - valp
    argTypes:
    - unsigned int
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1090
    functionName: intpose_lookup
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct intpose_ent
    signature: "struct intpose_ent *intpose_lookup(unsigned int cpu_nr, uint64_t msr,\n
      \                                  uint64_t *valp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intpose_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1094,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - cpu_nr
    - msr
    - val
    argTypes:
    - unsigned int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1115
    functionName: intpose_add
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - intpose_lookup
    - printk
    linkageType: ''
    returnType: void
    signature: void intpose_add(unsigned int cpu_nr, uint64_t msr, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intpose_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cpu_nr
    - msr
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1126
    functionName: intpose_inval
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - intpose_lookup
    linkageType: ''
    returnType: bool
    signature: bool intpose_inval(unsigned int cpu_nr, uint64_t msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1132
    functionName: IS_MCA_BANKREG
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_MCA_BANKREG(r, cpu)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IS_MCA_BANKREG
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1143,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1202,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - mci
    argTypes:
    - struct xen_mc_msrinject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1209
    functionName: __maybe_unused::x86_mc_msrinject_verify
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - printk
    - IS_MCA_BANKREG
    linkageType: ''
    returnType: bool
    signature: bool __maybe_unused x86_mc_msrinject_verify(struct xen_mc_msrinject
      *mci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1224
    functionName: __maybe_unused::x86_mc_hwcr_wren
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __maybe_unused x86_mc_hwcr_wren(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - hwcr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1230
    functionName: __maybe_unused::x86_mc_hwcr_wren_restore
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    linkageType: ''
    returnType: void
    signature: void __maybe_unused x86_mc_hwcr_wren_restore(uint64_t hwcr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x86_mc_hwcr_wren
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1241,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1247,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1249,1
    - Dst: intpose_add
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1254,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1256,1
    - Dst: x86_mc_hwcr_wren_restore
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1261
    functionName: x86_mc_msrinject
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - x86_mc_hwcr_wren
    - wrmsrl
    - x86_mc_hwcr_wren_restore
    - intpose_add
    - printk
    linkageType: ''
    returnType: void
    signature: void x86_mc_msrinject(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1265,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1267
    functionName: x86_mc_mceinject
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - printk
    linkageType: ''
    returnType: void
    signature: void x86_mc_mceinject(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1274
    functionName: ID2COOKIE
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ID2COOKIE(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1275
    functionName: COOKIE2ID
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COOKIE2ID(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1338
    functionName: compat_handle_is_null
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_is_null(h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1339
    functionName: copy_to_compat
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_compat(h, p, n)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1342,1
    - Dst: xsm_do_mca
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1367,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1369,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1371,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1372,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1375,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1394,1
    - Dst: ID2COOKIE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1401,1
    - Dst: mctelem_ack
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1402,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1406,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1407,1
    - Dst: compat_handle_is_null
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1408,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1409,1
    - Dst: mctelem_consume_oldest_begin
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1412,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1415,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1416,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1417,1
    - Dst: copy_to_compat
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1418,1
    - Dst: COOKIE2ID
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1425,1
    - Dst: mctelem_consume_oldest_end
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1426,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1436,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1443,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1447,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1449,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1450,1
    - Dst: compat_handle_is_null
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1451,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1456,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1458,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1459,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1461,1
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1462,1
    - Dst: is_pv_32bit_vcpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1463,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1464,1
    - Dst: copy_to_compat
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1465,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1467,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1472,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1473,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1479,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1485,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1487,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1488,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1491,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1492,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1506,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1510,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1514,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1523,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1524,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1524,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1526,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1528,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1529,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1530,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1534,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1536,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1539,1
    - Dst: x86_mc_msrinject_verify
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1542,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1543,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1545,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1547,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1547,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1554,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1560,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1562,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1563,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1565,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1566,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1568,1
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1571,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1573,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1573,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1584,1
    - Dst: xenctl_bitmap_to_cpumask
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1590,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1594,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1596,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1597,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1600,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1601,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1605,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1606,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1606,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1608,1
    - Dst: cpumask_equal
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1619,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1620,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1621,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1626,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1629,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1629,1
    - Dst: send_IPI_self
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1630,1
    - Dst: send_IPI_mask
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1631,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1638,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1643,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1647,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1647,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1649,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1653,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1657,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1662,1
    - Dst: x86_mcerr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1668,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 187
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1672
    functionName: do_mca
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - for_each_cpu
    - cpumask_equal
    - copy_from_guest
    - x86_mc_msrinject_verify
    - add_taint
    - on_selected_cpus
    - xenctl_bitmap_to_cpumask
    - compat_handle_is_null
    - PFN_DOWN
    - ID2COOKIE
    - xfree
    - cpumask_subset
    - cpumask_test_cpu
    - free_cpumask_var
    - copy_to_compat
    - put_gfn
    - smp_processor_id
    - cpumask_next
    - x86_mcerr
    - num_online_cpus
    - guest_handle_is_null
    - printk
    - mctelem_ack
    - copy_to_guest
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - dprintk
    - on_each_cpu
    - cpu_online
    - send_IPI_mask
    - mfn_x
    - mctelem_consume_oldest_begin
    - min
    - cpumask_first
    - get_gfn
    - COOKIE2ID
    - cpumask_of
    - is_pv_32bit_vcpu
    - mctelem_consume_oldest_end
    - mctelem_dataptr
    - send_IPI_self
    - xsm_do_mca
    - xzalloc_array
    - pfn_to_paddr
    - per_cpu
    - rcu_lock_domain_by_any_id
    - cpumask_intersects
    linkageType: ''
    returnType: long
    signature: long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1680,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mctc
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1678
    functionDepth: 3
    functionLinenumber: 1678
    functionLinenumberEnd: 1686
    functionName: x86_mcinfo_dump_panic
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - x86_mcinfo_dump
    - mctelem_dataptr
    linkageType: ''
    returnType: int
    signature: int x86_mcinfo_dump_panic(mctelem_cookie_t mctc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1693,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1694,1
    - Dst: mctelem_process_deferred
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1695,1
    - Dst: mctelem_has_deferred_lmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1696,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1689
    functionDepth: 3
    functionLinenumber: 1689
    functionLinenumberEnd: 1698
    functionName: mc_panic_dump
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - mctelem_has_deferred_lmce
    - for_each_online_cpu
    - mctelem_process_deferred
    - dprintk
    linkageType: ''
    returnType: void
    signature: void mc_panic_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_force_unlock
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1703,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1705,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1706,1
    - Dst: mc_panic_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1711,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1700
    functionDepth: 4
    functionLinenumber: 1700
    functionLinenumberEnd: 1713
    functionName: mc_panic
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - panic
    - console_force_unlock
    - printk
    - mc_panic_dump
    linkageType: ''
    returnType: void
    signature: void mc_panic(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1750,1
    - Dst: x86_mcinfo_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1751,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1754,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1758,1
    - Dst: x86_mcinfo_lookup
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1763,1
    - Dst: x86_mcinfo_next
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1766,1
    - Dst: owned_error
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1777,1
    - Dst: recovery_handler
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1779,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - regs
    - mctc
    argTypes:
    - struct cpu_user_regs*
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1788
    functionName: mce_action
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 1
    functionsReached:
    - recovery_handler
    - owned_error
    - x86_mcinfo_next
    - printk
    - memset
    - mctelem_dataptr
    - x86_mcinfo_lookup
    linkageType: ''
    returnType: enum mce_result
    signature: "enum mce_result mce_action(const struct cpu_user_regs *regs,\n                                  mctelem_cookie_t
      mctc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mce_action
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1800,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1805,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1807,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1807,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1808,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1812,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1817,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1819,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - mctc
    argTypes:
    - mctelem_cookie_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1795
    functionDepth: 3
    functionLinenumber: 1795
    functionLinenumberEnd: 1828
    functionName: mce_delayed_action
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - panic
    - x86_mcinfo_dump
    - mce_action
    - dprintk
    - mctelem_dataptr
    linkageType: ''
    returnType: int
    signature: int mce_delayed_action(mctelem_cookie_t mctc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1836,1
    - Dst: mctelem_has_deferred_lmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1838,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1841,1
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1843,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1856,1
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1858,1
    - Dst: mctelem_has_deferred
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1859,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1860,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1861,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1865,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1868,1
    - Dst: mctelem_process_deferred
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1876,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1878,1
    - Dst: mctelem_process_deferred
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1879,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1882,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1884,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1885,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1889,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1831
    functionDepth: 3
    functionLinenumber: 1831
    functionLinenumberEnd: 1890
    functionName: mce_softirq
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - for_each_online_cpu
    - mctelem_has_deferred_lmce
    - smp_processor_id
    - send_global_virq
    - mce_barrier_enter
    - mctelem_process_deferred
    - mce_barrier_exit
    - dom0_vmce_enabled
    - mctelem_has_deferred
    - mce_printk
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void mce_softirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1913,1
    - Dst: open_softirq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct mce_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1915
    functionName: mce_handler_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    - open_softirq
    linkageType: ''
    returnType: void
    signature: void mce_handler_init(const struct mce_callbacks *cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: cper_mce_record
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed cper_mce_record
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:63,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:64,1
    - Dst: cper_next_record_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:74,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:86,1
    - Dst: erst_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mce*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 89
    functionName: apei_write_mce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
    functionUses: 1
    functionsReached:
    - memset
    - erst_write
    - memcpy
    - cper_next_record_id
    linkageType: ''
    returnType: int
    signature: int apei_write_mce(struct mce *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: erst_read_next
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:101,1
    - Dst: uuid_le_cmp
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:106,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:107,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - m
    - record_id
    argTypes:
    - struct mce*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: apei_read_mce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
    functionUses: 0
    functionsReached:
    - printk
    - erst_read_next
    - memcpy
    - uuid_le_cmp
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t apei_read_mce(struct mce *m, u64 *record_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erst_get_record_count
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: apei_check_mce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
    functionUses: 0
    functionsReached:
    - erst_get_record_count
    linkageType: ''
    returnType: bool
    signature: bool apei_check_mce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erst_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: apei_clear_mce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
    functionUses: 0
    functionsReached:
    - erst_clear
    linkageType: ''
    returnType: int
    signature: int apei_clear_mce(u64 record_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:75,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:88,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:89,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:90,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:92,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:92,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:93,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:95,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 109
    functionName: mce_amd_checkregs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
    functionUses: 0
    functionsReached:
    - mcheck_mca_logout
    - x86_mcinfo_dump
    - send_global_virq
    - mctelem_dismiss
    - dom0_vmce_enabled
    - mctelem_dataptr
    - mctelem_commit
    linkageType: ''
    returnType: void
    signature: void mce_amd_checkregs(void *info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:120,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:123,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:125,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:134,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:134,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:148,1
    - Dst: mca_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:164,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:164,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:188,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 190
    functionName: mce_amd_work_fn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_MISC
    - mca_rdmsr
    - mca_wrmsr
    - set_timer
    - printk
    - dom0_vmce_enabled
    - NOW
    - on_each_cpu
    linkageType: ''
    returnType: void
    signature: void mce_amd_work_fn(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:201,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:206,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:206,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:227,1
    - Dst: MSR_IA32_MCx_MISC
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:227,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:228,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:232,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:233,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c:233,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 234
    functionName: amd_nonfatal_mcheck_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
    functionUses: 1
    functionsReached:
    - MSR_IA32_MCx_MISC
    - rdmsrl
    - cpu_has
    - set_timer
    - wrmsrl
    - printk
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void amd_nonfatal_mcheck_init(struct cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:62,1
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:66,1
    - Dst: hwp_active
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:68,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:69,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:71,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:71,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:74,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:74,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:74,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:75,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:76,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:82,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:83,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:84,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: intel_thermal_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - wrmsr_safe
    - ack_APIC_irq
    - smp_processor_id
    - add_taint
    - rdmsrl
    - per_cpu
    - printk
    - MILLISECS
    - hwp_active
    - NOW
    linkageType: ''
    returnType: void
    signature: void intel_thermal_interrupt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:94,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: intel_thermal_supported
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - cpu_has
    linkageType: ''
    returnType: bool
    signature: bool intel_thermal_supported(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intel_thermal_supported
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:108,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: mcheck_intel_therm_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - apic_read
    - intel_thermal_supported
    linkageType: ''
    returnType: void
    signature: void mcheck_intel_therm_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:118,1
    - Dst: intel_thermal_supported
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:121,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:128,1
    - Dst: APIC_VECTOR_VALID
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:140,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:141,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:147,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:151,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:158,1
    - Dst: alloc_direct_apic_vector
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:163,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:168,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:170,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:171,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:173,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:174,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:176,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:178,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 180
    functionName: intel_init_thermal
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - rdmsrl
    - APIC_VECTOR_VALID
    - cpu_has
    - alloc_direct_apic_vector
    - intel_thermal_supported
    - wrmsrl
    - printk
    - apic_write
    linkageType: ''
    returnType: void
    signature: void intel_init_thermal(struct cpuinfo_x86 *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:185,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ext
    - msr
    argTypes:
    - struct mcinfo_extended*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: intel_get_extended_msr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void intel_get_extended_msr(struct mcinfo_extended *ext, u32 msr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:209,1
    - Dst: intel_get_extended_msr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:217,1
    - Dst: intel_get_extended_msr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:220,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - mig
    - mi
    argTypes:
    - struct mcinfo_global*
    - struct mc_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 223
    functionName: intel_get_extended_msrs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached:
    - x86_mcinfo_reserve
    - intel_get_extended_msr
    linkageType: ''
    returnType: struct mcinfo_extended
    signature: 'struct mcinfo_extended *

      intel_get_extended_msrs(struct mcinfo_global *mig, struct mc_info *mi)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 266
    functionName: intel_check_mce_type
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum intel_mce_type
    signature: enum intel_mce_type intel_check_mce_type(uint64_t status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:273,1
    - Dst: mc_memerr_dhandler
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: intel_memerr_dhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mce_printk
    - mc_memerr_dhandler
    linkageType: ''
    returnType: void
    signature: "void intel_memerr_dhandler(\n             struct mca_binfo *binfo,\n
      \            enum mce_result *result,\n             const struct cpu_user_regs
      *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intel_check_mce_type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: intel_srar_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_check_mce_type
    linkageType: ''
    returnType: bool
    signature: bool intel_srar_check(uint64_t status)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - status
    - misc
    - addrtype
    argTypes:
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 292
    functionName: intel_checkaddr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool intel_checkaddr(\n    uint64_t status, uint64_t misc, int addrtype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intel_memerr_dhandler
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 310
    functionName: intel_srar_dhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_memerr_dhandler
    linkageType: ''
    returnType: void
    signature: "void intel_srar_dhandler(\n    struct mca_binfo *binfo, enum mce_result
      *result,\n    const struct cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intel_check_mce_type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: intel_srao_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_check_mce_type
    linkageType: ''
    returnType: bool
    signature: bool intel_srao_check(uint64_t status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: intel_memerr_dhandler
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 336
    functionName: intel_srao_dhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_memerr_dhandler
    linkageType: ''
    returnType: void
    signature: "void intel_srao_dhandler(\n    struct mca_binfo *binfo, enum mce_result
      *result,\n    const struct cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: intel_default_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool intel_default_check(uint64_t status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intel_check_mce_type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 356
    functionName: intel_default_mce_dhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_check_mce_type
    linkageType: ''
    returnType: void
    signature: "void intel_default_mce_dhandler(\n    struct mca_binfo *binfo, enum
      mce_result *result,\n    const struct cpu_user_regs * regs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: intel_check_mce_type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - binfo
    - result
    - regs
    argTypes:
    - struct mca_binfo*
    - enum mce_result*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 383
    functionName: intel_default_mce_uhandler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - intel_check_mce_type
    linkageType: ''
    returnType: void
    signature: "void intel_default_mce_uhandler(\n    struct mca_binfo *binfo, enum
      mce_result *result,\n    const struct cpu_user_regs *regs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 24
    argCount: 2
    argNames:
    - who
    - status
    argTypes:
    - enum mca_source
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 446
    functionName: intel_need_clearbank_scan
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool intel_need_clearbank_scan(enum mca_source who, u64 status)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 12
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 480
    functionName: intel_recoverable_scan
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool intel_recoverable_scan(uint64_t status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:490,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:493,1
    - Dst: integer_param
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:495,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:497,1
    - Dst: mcabanks_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:501,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:501,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:507,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:508,1
    - Dst: mcabanks_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:514,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:514,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:515,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:518,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:522,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:527,1
    - Dst: mcabanks_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:528,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:528,1
    - Dst: mcabanks_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:530,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 532
    functionName: do_cmci_discover
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mcabanks_clear
    - smp_processor_id
    - rdmsrl
    - integer_param
    - mcabanks_set
    - wrmsrl
    - per_cpu
    - MSR_IA32_MCx_CTL2
    - mce_printk
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int do_cmci_discover(int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:537,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:541,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:543,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:545,1
    - Dst: mcabanks_test
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:546,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:546,1
    - Dst: do_cmci_discover
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:547,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:549,1
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:558,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:559,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:563,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:565,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:566,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:570,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:570,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:571,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:575,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:577,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:579,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 581
    functionName: cmci_discover
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached:
    - mcheck_mca_logout
    - mcabanks_test
    - smp_processor_id
    - spin_lock_irqsave
    - x86_mcinfo_dump
    - spin_unlock_irqrestore
    - send_global_virq
    - do_cmci_discover
    - mctelem_dismiss
    - per_cpu
    - dom0_vmce_enabled
    - mce_printk
    - mctelem_dataptr
    - mctelem_commit
    linkageType: ''
    returnType: void
    signature: void cmci_discover(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmci_discover
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 600
    functionName: mce_set_owner
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - cmci_discover
    linkageType: ''
    returnType: void
    signature: void mce_set_owner(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmci_discover
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: __cpu_mcheck_distribute_cmci
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - cmci_discover
    linkageType: ''
    returnType: void
    signature: void __cpu_mcheck_distribute_cmci(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 611
    functionName: cpu_mcheck_distribute_cmci
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - on_each_cpu
    linkageType: ''
    returnType: void
    signature: void cpu_mcheck_distribute_cmci(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:615,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:620,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:622,1
    - Dst: MSR_IA32_MCx_CTL2
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:624,1
    - Dst: mcabanks_test
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:627,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:627,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:629,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:631,1
    - Dst: mcabanks_clear
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:632,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 634
    functionName: clear_cmci
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mcabanks_clear
    - mcabanks_test
    - smp_processor_id
    - rdmsrl
    - wrmsrl
    - per_cpu
    - MSR_IA32_MCx_CTL2
    - mce_printk
    linkageType: ''
    returnType: void
    signature: void clear_cmci(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear_cmci
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: cpu_mcheck_disable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - clear_cmci
    linkageType: ''
    returnType: void
    signature: void cpu_mcheck_disable(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ack_APIC_irq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:647,1
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:649,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:650,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:654,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:656,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:657,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:658,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:662,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:662,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:663,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 668
    functionName: cmci_interrupt
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mcheck_mca_logout
    - ack_APIC_irq
    - x86_mcinfo_dump
    - send_global_virq
    - mctelem_dismiss
    - dom0_vmce_enabled
    - this_cpu
    - mce_printk
    - mctelem_dataptr
    - mctelem_commit
    linkageType: ''
    returnType: void
    signature: void cmci_interrupt(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:673,1
    - Dst: mce_available
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:675,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:678,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:682,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:685,1
    - Dst: alloc_direct_apic_vector
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:690,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:694,1
    - Dst: apic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:696,1
    - Dst: apic_write
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:697,1
    - Dst: mce_set_owner
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 670
    functionDepth: 6
    functionLinenumber: 670
    functionLinenumberEnd: 700
    functionName: intel_init_cmci
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mce_available
    - smp_processor_id
    - alloc_direct_apic_vector
    - apic_read
    - mce_set_owner
    - apic_write
    - mce_printk
    linkageType: ''
    returnType: void
    signature: void intel_init_cmci(struct cpuinfo_x86 *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 718
    functionName: mce_is_broadcast
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mce_is_broadcast(struct cpuinfo_x86 *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:731,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 742
    functionName: intel_enable_lmce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - wrmsrl
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool intel_enable_lmce(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mce_is_broadcast
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:751,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:753,1
    - Dst: mce_firstbank
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:765,1
    - Dst: intel_enable_lmce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:768,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:771,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:773,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:776,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:777,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:778,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:779,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:792,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:796,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:797,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:798,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:799,1
    - Dst: CAP
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:800,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 802
    functionName: intel_init_mca
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mce_firstbank
    - intel_enable_lmce
    - mce_is_broadcast
    - smp_processor_id
    - rdmsrl
    - CAP
    - dprintk
    linkageType: ''
    returnType: void
    signature: void intel_init_mca(struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enabled
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: CAP
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAP(enabled, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:809,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:814,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:814,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 804
    functionDepth: 4
    functionLinenumber: 804
    functionLinenumberEnd: 818
    functionName: intel_mce_post_reset
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mctelem_commit
    - x86_mcinfo_dump
    - mctelem_dataptr
    - mcheck_mca_logout
    linkageType: ''
    returnType: void
    signature: void intel_mce_post_reset(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: intel_mce_post_reset
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:825,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:828,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:834,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:834,1
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:838,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:839,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:839,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:840,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:840,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:844,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:850,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - bsp
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 853
    functionName: intel_init_mce
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_CTL
    - ARRAY_SIZE
    - rdmsrl
    - intel_mce_post_reset
    - wrmsrl
    - this_cpu
    - MSR_IA32_MCx_STATUS
    - mce_printk
    linkageType: ''
    returnType: void
    signature: void intel_init_mce(bool bsp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:868,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:885,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:891,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 902
    functionName: intel_init_ppin
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - rdmsr_safe
    - wrmsr_safe
    - rdmsrl
    - cpu_has
    linkageType: ''
    returnType: void
    signature: void intel_init_ppin(const struct cpuinfo_x86 *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:906,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:907,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:909,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 911
    functionName: cpu_mcabank_free
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - per_cpu
    - mcabanks_free
    linkageType: ''
    returnType: void
    signature: void cpu_mcabank_free(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:915,1
    - Dst: mcabanks_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:916,1
    - Dst: mcabanks_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:917,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:922,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:923,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:924,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:928,1
    - Dst: mcabanks_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:929,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 931
    functionName: cpu_mcabank_alloc
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - mcabanks_alloc
    - per_cpu
    - mcabanks_free
    linkageType: ''
    returnType: int
    signature: int cpu_mcabank_alloc(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_mcabank_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:942,1
    - Dst: cpu_mcheck_disable
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:946,1
    - Dst: cpu_mcheck_distribute_cmci
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:951,1
    - Dst: cpu_mcabank_free
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:952,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 957
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 0
    functionsReached:
    - cpu_mcheck_distribute_cmci
    - cpu_mcabank_free
    - notifier_from_errno
    - cpu_mcheck_disable
    - cpu_mcabank_alloc
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_mcabank_alloc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:976,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:977,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:978,1
    - Dst: mcheck_intel_therm_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:979,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:983,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:985,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:985,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:986,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:986,1
    - Dst: intel_init_mca
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:989,1
    - Dst: mce_handler_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:992,1
    - Dst: intel_init_mce
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:994,1
    - Dst: intel_init_cmci
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:996,1
    - Dst: intel_init_thermal
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:998,1
    - Dst: intel_init_ppin
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - c
    - bsp
    argTypes:
    - struct cpuinfo_x86*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 971
    functionDepth: 7
    functionLinenumber: 971
    functionLinenumberEnd: 1003
    functionName: intel_mcheck_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached:
    - intel_init_ppin
    - BUG
    - intel_init_mca
    - mce_handler_init
    - intel_init_mce
    - smp_processor_id
    - mcheck_intel_therm_init
    - register_cpu_notifier
    - intel_init_cmci
    - intel_init_thermal
    - per_cpu
    - cpu_mcabank_alloc
    linkageType: ''
    returnType: enum mcheck_type
    signature: enum mcheck_type intel_mcheck_init(struct cpuinfo_x86 *c, bool bsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1017
    functionName: vmce_intel_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached:
    - mce_printk
    linkageType: ''
    returnType: int
    signature: int vmce_intel_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1049
    functionName: vmce_intel_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    functionUses: 1
    functionsReached:
    - mce_printk
    linkageType: ''
    returnType: int
    signature: int vmce_intel_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mcheck_mca_logout
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:28,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:28,1
    - Dst: dom0_vmce_enabled
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:45,1
    - Dst: mctelem_commit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:47,1
    - Dst: send_global_virq
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:48,1
    - Dst: x86_mcinfo_dump
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:52,1
    - Dst: mctelem_dataptr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:52,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:53,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:56,1
    - Dst: mctelem_dismiss
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 60
    functionName: mce_checkregs
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
    functionUses: 0
    functionsReached:
    - mcheck_mca_logout
    - x86_mcinfo_dump
    - send_global_virq
    - mctelem_dismiss
    - dom0_vmce_enabled
    - this_cpu
    - mctelem_dataptr
    - mctelem_commit
    linkageType: ''
    returnType: void
    signature: void mce_checkregs(void *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: on_each_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:64,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:78,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: mce_work_fn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
    functionUses: 0
    functionsReached:
    - set_timer
    - NOW
    - on_each_cpu
    linkageType: ''
    returnType: void
    signature: void mce_work_fn(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:84,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:85,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: intel_nonfatal_mcheck_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
    functionUses: 1
    functionsReached:
    - set_timer
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void intel_nonfatal_mcheck_init(struct cpuinfo_x86 *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:7,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:8,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bar
    argTypes:
    - struct mce_softirq_barrier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 10
    functionName: mce_barrier_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
    functionUses: 0
    functionsReached:
    - atomic_set
    linkageType: ''
    returnType: void
    signature: void mce_barrier_init(struct mce_softirq_barrier *bar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:14,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:15,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bar
    argTypes:
    - struct mce_softirq_barrier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: mce_barrier_dec
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - atomic_inc
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void mce_barrier_dec(struct mce_softirq_barrier *bar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:25,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:26,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:27,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:28,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:29,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:29,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:30,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:32,1
    - Dst: mce_panic_check
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bar
    - do_wait
    argTypes:
    - struct mce_softirq_barrier*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: mce_barrier_enter
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
    functionUses: 2
    functionsReached:
    - smp_mb
    - mce_panic_check
    - num_online_cpus
    - atomic_inc
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void mce_barrier_enter(struct mce_softirq_barrier *bar, bool do_wait)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:43,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:44,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:45,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:46,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:47,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:48,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:50,1
    - Dst: mce_panic_check
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bar
    - do_wait
    argTypes:
    - struct mce_softirq_barrier*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: mce_barrier_exit
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
    functionUses: 2
    functionsReached:
    - smp_mb
    - mce_panic_check
    - atomic_inc
    - atomic_read
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void mce_barrier_exit(struct mce_softirq_barrier *bar, bool do_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mce_barrier_enter
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:57,1
    - Dst: mce_barrier_exit
      Src: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bar
    argTypes:
    - struct mce_softirq_barrier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: mce_barrier
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
    functionUses: 0
    functionsReached:
    - mce_barrier_enter
    - mce_barrier_exit
    linkageType: ''
    returnType: void
    signature: void mce_barrier(struct mce_softirq_barrier *bar)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - errorcode
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: mc_ec2type
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: enum mc_ec_type
    signature: enum mc_ec_type mc_ec2type(uint16_t errorcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mc_ec2type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - status
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 132
    functionName: mc_amd_recoverable_scan
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - mc_ec2type
    linkageType: ''
    returnType: bool
    signature: bool mc_amd_recoverable_scan(uint64_t status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mc_ec2type
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:140,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - status
    - misc
    - addrtype
    argTypes:
    - uint64_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 155
    functionName: mc_amd_addrcheck
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - BUG
    - mc_ec2type
    linkageType: ''
    returnType: bool
    signature: bool mc_amd_addrcheck(uint64_t status, uint64_t misc, int addrtype)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:163,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_x86*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: mcequirk_lookup_amd_quirkdata
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - ARRAY_SIZE
    linkageType: ''
    returnType: enum mcequirk_amd_flags
    signature: enum mcequirk_amd_flags mcequirk_lookup_amd_quirkdata(const struct
      cpuinfo_x86 *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:193,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:193,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:194,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:194,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:198,1
    - Dst: MSR_AMD64_MCx_MASK
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:198,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:199,1
    - Dst: MSR_AMD64_MCx_MASK
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:199,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum mcequirk_amd_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 206
    functionName: mcequirk_amd_apply
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MCx_CTL
    - MSR_AMD64_MCx_MASK
    - wrmsr_safe
    - ASSERT
    - wrmsrl
    - rdmsr_safe
    - MSR_IA32_MCx_STATUS
    linkageType: ''
    returnType: void
    signature: void mcequirk_amd_apply(enum mcequirk_amd_flags flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: x86_mcinfo_reserve
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:224,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:237,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:238,1
    - Dst: mca_rdmsr
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - mi
    - bank
    - status
    argTypes:
    - struct mc_info*
    - uint16_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 242
    functionName: amd_f10_handler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached:
    - x86_mcinfo_reserve
    - mca_rdmsr
    linkageType: ''
    returnType: struct mcinfo_extended
    signature: 'struct mcinfo_extended *cf_check

      amd_f10_handler(struct mc_info *mi, uint16_t bank, uint64_t status)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - who
    - status
    argTypes:
    - enum mca_source
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: amd_need_clearbank_scan
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool amd_need_clearbank_scan(\n    enum mca_source who, uint64_t status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mce_printk
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: vmce_amd_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 1
    functionsReached:
    - mce_printk
    linkageType: ''
    returnType: int
    signature: int vmce_amd_wrmsr(struct vcpu *v, uint32_t msr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - msr
    - val
    argTypes:
    - struct vcpu*
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: vmce_amd_rdmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vmce_amd_rdmsr(const struct vcpu *v, uint32_t msr, uint64_t *val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mcequirk_lookup_amd_quirkdata
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:295,1
    - Dst: mce_handler_init
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:300,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:302,1
    - Dst: mcequirk_amd_apply
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:305,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:309,1
    - Dst: MSR_IA32_MCx_CTL
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:309,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:310,1
    - Dst: MSR_IA32_MCx_STATUS
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:310,1
    - Dst: mcequirk_amd_apply
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:318,1
    - Dst: cpu_has
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:320,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:325,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:330,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c:331,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - c
    - bsp
    argTypes:
    - struct cpuinfo_x86*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 342
    functionName: amd_mcheck_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    functionUses: 1
    functionsReached:
    - MSR_IA32_MCx_CTL
    - mce_handler_init
    - wrmsr_safe
    - mcequirk_amd_apply
    - rdmsrl
    - cpu_has
    - wrmsrl
    - this_cpu
    - MSR_IA32_MCx_STATUS
    - mcequirk_lookup_amd_quirkdata
    linkageType: ''
    returnType: enum mcheck_type
    signature: enum mcheck_type amd_mcheck_init(const struct cpuinfo_x86 *c, bool
      bsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: dom0_vmce_enabled
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mcheck/vmce.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dom0_vmce_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:34,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:34,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:35,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - vr
    argTypes:
    - unsigned int
    - struct mtrr_var_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: get_mtrr_var_range
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - MSR_IA32_MTRR_PHYSBASE
    - rdmsrl
    - MSR_IA32_MTRR_PHYSMASK
    linkageType: ''
    returnType: void
    signature: void get_mtrr_var_range(unsigned int index, struct mtrr_var_range *vr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - frs
    argTypes:
    - mtrr_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: get_fixed_ranges
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void get_fixed_ranges(mtrr_type * frs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct mtrr_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: is_var_mtrr_overlapped
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 1
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: bool is_var_mtrr_overlapped(const struct mtrr_state *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fixed_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: mtrr_save_fixed_ranges
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - get_fixed_ranges
    linkageType: ''
    returnType: void
    signature: void mtrr_save_fixed_ranges(void *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:100,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:107,1
    - Dst: get_mtrr_var_range
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:111,1
    - Dst: get_fixed_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:112,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:114,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:116,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:117,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 121
    functionName: get_mtrr_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - rdmsrl
    - get_fixed_ranges
    - get_mtrr_var_range
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void get_mtrr_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - mtrr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: mtrr_attrib_to_str
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *__init mtrr_attrib_to_str(mtrr_type x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:149,1
    - Dst: mtrr_attrib_to_str
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: print_fixed_last
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - mtrr_attrib_to_str
    - printk
    linkageType: ''
    returnType: void
    signature: void print_fixed_last(const char *level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - end
    - type
    argTypes:
    - unsigned int
    - unsigned int
    - mtrr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: update_fixed_last
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_fixed_last(unsigned int base, unsigned int end,\n\t\t\t\t
      \    mtrr_type type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_fixed_last
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:170,1
    - Dst: print_fixed_last
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:178,1
    - Dst: update_fixed_last
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - base
    - step
    - types
    - level
    argTypes:
    - unsigned int
    - unsigned int
    - mtrr_type*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: print_fixed
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - print_fixed_last
    - update_fixed_last
    linkageType: ''
    returnType: void
    signature: "void print_fixed(unsigned int base, unsigned int step,\n\t\t\t       const
      mtrr_type *types, const char *level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:188,1
    - Dst: mtrr_attrib_to_str
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:189,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:195,1
    - Dst: print_fixed
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:199,1
    - Dst: print_fixed_last
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:203,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:205,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:211,1
    - Dst: mtrr_attrib_to_str
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:215,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:218,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:226,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:228,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:229,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 233
    functionName: print_mtrr_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - print_fixed_last
    - rdmsrl
    - mtrr_attrib_to_str
    - printk
    - print_fixed
    linkageType: ''
    returnType: void
    signature: void print_mtrr_state(const char *level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: print_mtrr_state
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:241,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:245,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:247,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:249,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:250,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:251,1
    - Dst: print_mtrr_state
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 254
    functionName: mtrr_state_warn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - print_mtrr_state
    - printk
    linkageType: ''
    returnType: void
    signature: void mtrr_state_warn(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:261,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:262,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:264,1
    - Dst: is_var_mtrr_overlapped
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msr
    - msr_content
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: mtrr_wrmsr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - is_var_mtrr_overlapped
    - printk
    - wrmsr_safe
    linkageType: ''
    returnType: void
    signature: void mtrr_wrmsr(unsigned int msr, uint64_t msr_content)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:281,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - msr
    - changed
    - msrwords
    argTypes:
    - int
    - bool*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: set_fixed_range
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - mtrr_wrmsr
    - rdmsrl
    linkageType: ''
    returnType: void
    signature: void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_get
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - base
    - size
    - replace_reg
    argTypes:
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 311
    functionName: mtrr_get_free_region
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - mtrr_get
    linkageType: ''
    returnType: int
    signature: "int mtrr_get_free_region(\n    unsigned long base, unsigned long size,
      int replace_reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:318,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:318,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:327,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - reg
    - base
    - size
    - type
    argTypes:
    - unsigned int
    - unsigned long*
    - unsigned long*
    - mtrr_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 337
    functionName: mtrr_get
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 2
    functionsReached:
    - MSR_IA32_MTRR_PHYSBASE
    - rdmsrl
    - MSR_IA32_MTRR_PHYSMASK
    linkageType: ''
    returnType: void
    signature: "void mtrr_get(\n    unsigned int reg, unsigned long *base, unsigned
      long *size, mtrr_type *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_fixed_range
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - frs
    argTypes:
    - mtrr_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: set_fixed_ranges
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - set_fixed_range
    linkageType: ''
    returnType: bool
    signature: bool set_fixed_ranges(mtrr_type *frs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:365,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:365,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:377,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:377,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:381,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:381,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:393,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - index
    - vr
    argTypes:
    - unsigned int
    - struct mtrr_var_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 359
    functionDepth: 3
    functionLinenumber: 359
    functionLinenumberEnd: 397
    functionName: set_mtrr_var_ranges
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - mtrr_wrmsr
    - MSR_IA32_MTRR_PHYSBASE
    - rdmsrl
    - MSR_IA32_MTRR_PHYSMASK
    linkageType: ''
    returnType: bool
    signature: bool set_mtrr_var_ranges(unsigned int index, struct mtrr_var_range
      *vr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_mtrr_var_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:413,1
    - Dst: set_fixed_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:416,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:422,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:423,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:425,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 431
    functionName: set_mtrr_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - set_fixed_ranges
    - set_mtrr_var_ranges
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long set_mtrr_state(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:451,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:454,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:454,1
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:462,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:464,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:466,1
    - Dst: invpcid_flush_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:468,1
    - Dst: write_cr3
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:470,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:470,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:473,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:476,1
    - Dst: alternative
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 482
    functionName: prepare_set
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - invpcid_flush_all
    - write_cr0
    - read_cr4
    - read_cr0
    - rdmsrl
    - alternative
    - spin_lock
    - write_cr3
    - mtrr_wrmsr
    - write_cr4
    linkageType: ''
    returnType: bool
    signature: bool prepare_set(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:487,1
    - Dst: write_cr0
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:490,1
    - Dst: read_cr0
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:490,1
    - Dst: write_cr4
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:494,1
    - Dst: read_cr4
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:494,1
    - Dst: invpcid_flush_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:496,1
    - Dst: write_cr3
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:498,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:498,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pge
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 501
    functionName: post_set
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - spin_unlock
    - invpcid_flush_all
    - write_cr0
    - read_cr4
    - read_cr0
    - write_cr3
    - mtrr_wrmsr
    - write_cr4
    linkageType: ''
    returnType: void
    signature: void post_set(bool pge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:509,1
    - Dst: prepare_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:510,1
    - Dst: set_mtrr_state
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:513,1
    - Dst: post_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:515,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:516,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 503
    functionDepth: 6
    functionLinenumber: 503
    functionLinenumberEnd: 524
    functionName: mtrr_set_all
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - set_mtrr_state
    - local_irq_restore
    - local_irq_save
    - post_set
    - prepare_set
    - set_bit
    linkageType: ''
    returnType: void
    signature: void mtrr_set_all(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:544,1
    - Dst: prepare_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:545,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:550,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:551,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:551,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:562,1
    - Dst: MSR_IA32_MTRR_PHYSBASE
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:562,1
    - Dst: mtrr_wrmsr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:563,1
    - Dst: MSR_IA32_MTRR_PHYSMASK
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:563,1
    - Dst: post_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:566,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - reg
    - base
    - size
    - type
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    - mtrr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 568
    functionName: mtrr_set
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - mtrr_wrmsr
    - MSR_IA32_MTRR_PHYSBASE
    - MSR_IA32_MTRR_PHYSMASK
    - memset
    - local_irq_save
    - local_irq_restore
    - post_set
    - prepare_set
    linkageType: ''
    returnType: void
    signature: "void mtrr_set(\n    unsigned int reg, unsigned long base, unsigned
      long size, mtrr_type type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - base
    - size
    - type
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 586
    functionName: mtrr_validate_add_page
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int mtrr_validate_add_page(\n    unsigned long base, unsigned long
      size, unsigned int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/generic.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: mtrr_have_wrcomb
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: bool
    signature: bool mtrr_have_wrcomb(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: DEFINE_MUTEX
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_MUTEX(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: mutex_lock
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_lock(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: mutex_unlock
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mutex_unlock(_m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: dump_stack
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dump_stack()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: get_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: put_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_cpu()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: mtrr_attrib_to_str
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *mtrr_attrib_to_str(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:86,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: set_num_var_ranges
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void set_num_var_ranges(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:95,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: init_table
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - printk
    linkageType: ''
    returnType: void
    signature: void init_table(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:131,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:133,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:134,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:135,1
    - Dst: mtrr_set_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:141,1
    - Dst: mtrr_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:143,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:146,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:147,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:148,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:150,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: ipi_handler
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - mtrr_set_all
    - cpu_relax
    - mtrr_set
    - local_irq_restore
    - local_irq_save
    - atomic_read
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void ipi_handler(void *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 2
    argNames:
    - type1
    - type2
    argTypes:
    - mtrr_type
    - mtrr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: types_compatible
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int types_compatible(mtrr_type type1, mtrr_type type2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:207,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:208,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:208,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:209,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:215,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:216,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:219,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:221,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:223,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:224,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:227,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:228,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:229,1
    - Dst: mtrr_set_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:242,1
    - Dst: mtrr_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:244,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:247,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:248,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:250,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:251,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:252,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:258,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:259,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - reg
    - base
    - size
    - type
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    - mtrr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 262
    functionName: set_mtrr
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - mtrr_set_all
    - cpu_relax
    - mtrr_set
    - smp_processor_id
    - on_selected_cpus
    - smp_wmb
    - cpumask_andnot
    - cpumask_of
    - local_irq_save
    - cpumask_weight
    - local_irq_restore
    - atomic_read
    linkageType: ''
    returnType: void
    signature: "void set_mtrr(unsigned int reg, unsigned long base,\n\t\t     unsigned
      long size, mtrr_type type)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_validate_add_page
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:310,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:314,1
    - Dst: mtrr_have_wrcomb
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:319,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:320,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:326,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:331,1
    - Dst: mutex_lock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:339,1
    - Dst: mtrr_get
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:341,1
    - Dst: types_compatible
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:352,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:355,1
    - Dst: types_compatible
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:363,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:365,1
    - Dst: mtrr_attrib_to_str
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:366,1
    - Dst: mtrr_attrib_to_str
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:367,1
    - Dst: mtrr_get_free_region
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:376,1
    - Dst: set_mtrr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:378,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:379,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:383,1
    - Dst: set_mtrr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:384,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:389,1
    - Dst: mutex_unlock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:392,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 72
    argCount: 4
    argNames:
    - base
    - size
    - type
    - increment
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 300
    functionDepth: 8
    functionLinenumber: 300
    functionLinenumberEnd: 394
    functionName: mtrr_add_page
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 1
    functionsReached:
    - mtrr_validate_add_page
    - mtrr_have_wrcomb
    - mutex_lock
    - mtrr_get_free_region
    - likely
    - mtrr_get
    - types_compatible
    - mtrr_attrib_to_str
    - printk
    - unlikely
    - set_mtrr
    - mutex_unlock
    linkageType: ''
    returnType: int
    signature: "int mtrr_add_page(unsigned long base, unsigned long size, \n\t\t  unsigned
      int type, char increment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:399,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:401,1
    - Dst: dump_stack
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - base
    - size
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: mtrr_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - dump_stack
    - printk
    linkageType: ''
    returnType: int
    signature: int mtrr_check(unsigned long base, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_check
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:449,1
    - Dst: mtrr_add_page
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - base
    - size
    - type
    - increment
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 445
    functionDepth: 9
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: mtrr_add
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - mtrr_check
    - mtrr_add_page
    linkageType: ''
    returnType: int
    signature: "int mtrr_add(unsigned long base, unsigned long size, unsigned int
      type,\n\t char increment)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mutex_lock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:481,1
    - Dst: mtrr_get
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:485,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:492,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:498,1
    - Dst: mtrr_get
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:501,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:503,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:507,1
    - Dst: set_mtrr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:511,1
    - Dst: mutex_unlock
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:514,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - reg
    - base
    - size
    argTypes:
    - int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 470
    functionDepth: 8
    functionLinenumber: 470
    functionLinenumberEnd: 516
    functionName: mtrr_del_page
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 1
    functionsReached:
    - mutex_lock
    - mtrr_get
    - printk
    - set_mtrr
    - mutex_unlock
    linkageType: ''
    returnType: int
    signature: int mtrr_del_page(int reg, unsigned long base, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_check
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:535,1
    - Dst: mtrr_del_page
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - reg
    - base
    - size
    argTypes:
    - int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 9
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: mtrr_del
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - mtrr_check
    - mtrr_del_page
    linkageType: ''
    returnType: int
    signature: int mtrr_del(int reg, unsigned long base, unsigned long size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_num_var_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:565,1
    - Dst: init_table
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:566,1
    - Dst: get_mtrr_state
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 569
    functionName: mtrr_bp_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 1
    functionsReached:
    - get_mtrr_state
    - set_num_var_ranges
    - init_table
    linkageType: ''
    returnType: void
    signature: void mtrr_bp_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_set_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 7
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: mtrr_ap_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 1
    functionsReached:
    - mtrr_set_all
    linkageType: ''
    returnType: void
    signature: void mtrr_ap_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:592,1
    - Dst: mtrr_save_fixed_ranges
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:595,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:597,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:597,1
    - Dst: put_cpu
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 599
    functionName: mtrr_save_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 2
    functionsReached:
    - on_selected_cpus
    - get_cpu
    - mtrr_save_fixed_ranges
    - cpumask_of
    - put_cpu
    linkageType: ''
    returnType: void
    signature: void mtrr_save_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: mtrr_aps_sync_begin
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mtrr_aps_sync_begin(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_mtrr
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 8
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: mtrr_aps_sync_end
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 2
    functionsReached:
    - set_mtrr
    linkageType: ''
    returnType: void
    signature: void mtrr_aps_sync_end(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_set_all
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 7
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: mtrr_bp_restore
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - mtrr_set_all
    linkageType: ''
    returnType: void
    signature: void mtrr_bp_restore(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mtrr_state_warn
      Src: /src/xen/xen/arch/x86/cpu/mtrr/main.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: mtrr_init_finialize
    functionSourceFile: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    functionUses: 0
    functionsReached:
    - mtrr_state_warn
    linkageType: ''
    returnType: int
    signature: int mtrr_init_finialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: microcode_set_module
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void microcode_set_module(unsigned int idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:125,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:127,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:129,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:131,1
    - Dst: parse_boolean
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:133,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:136,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:145,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:148,1
    - Dst: simple_strtol
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 172
    functionName: parse_ucode
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - parse_boolean
    - strchr
    - isdigit
    - printk
    - simple_strtol
    linkageType: ''
    returnType: int
    signature: int parse_ucode(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: ucode_parse_dup
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: struct microcode_patch
    signature: struct microcode_patch *ucode_parse_dup(const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: ucode_parse
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - parse
    linkageType: ''
    returnType: struct microcode_patch
    signature: struct microcode_patch *__init ucode_parse(const char *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: ucode_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int ucode_load(const struct microcode_patch *patch, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:224,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: is_cpu_primary
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - cpumask_first
    - per_cpu
    linkageType: ''
    returnType: bool
    signature: bool is_cpu_primary(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:234,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:238,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:239,1
    - Dst: __builtin_return_address
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:239,1
    - Dst: udelay
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - timeout
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 246
    functionName: wait_for_condition
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - func
    - __builtin_return_address
    - printk
    - udelay
    linkageType: ''
    returnType: int
    signature: "int wait_for_condition(bool (*func)(unsigned int data),\n                              unsigned
      int data, unsigned int timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: wait_cpu_callin
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - cpumask_weight
    linkageType: ''
    returnType: bool
    signature: bool wait_cpu_callin(unsigned int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: wait_cpu_callout
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: bool
    signature: bool wait_cpu_callout(unsigned int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:262,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - loading_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: wait_for_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - ACCESS_ONCE
    linkageType: ''
    returnType: bool
    signature: bool wait_for_state(loading_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - loading_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: set_state
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 6
    functionsReached:
    - ACCESS_ONCE
    linkageType: ''
    returnType: void
    signature: void set_state(loading_state_t state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:279,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:279,1
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: secondary_nmi_work
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - smp_processor_id
    - wait_for_state
    linkageType: ''
    returnType: int
    signature: int secondary_nmi_work(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:291,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:291,1
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:293,1
    - Dst: ucode_load
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:296,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:298,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 302
    functionName: primary_thread_work
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - wait_for_state
    - smp_processor_id
    - atomic_inc
    - cpumask_set_cpu
    - ucode_load
    linkageType: ''
    returnType: int
    signature: "int primary_thread_work(const struct microcode_patch *patch,\n                               unsigned
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_cpu_primary
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:307,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:311,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:319,1
    - Dst: primary_thread_work
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:324,1
    - Dst: secondary_nmi_work
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:327,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - regs
    - cpu
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 331
    functionName: microcode_nmi_callback
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - is_cpu_primary
    - cpumask_first
    - this_cpu
    - secondary_nmi_work
    - primary_thread_work
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int microcode_nmi_callback(\n    const struct cpu_user_regs *regs,
      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:335,1
    - Dst: self_nmi
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:338,1
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:344,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:347,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:348,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:348,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:348,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 351
    functionName: secondary_thread_fn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - wait_for_state
    - self_nmi
    - cpumask_first
    - per_cpu
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int secondary_thread_fn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:356,1
    - Dst: self_nmi
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:361,1
    - Dst: wait_for_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:367,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:369,1
    - Dst: primary_thread_work
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 373
    functionName: primary_thread_fn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - wait_for_state
    - primary_thread_work
    - self_nmi
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int primary_thread_fn(const struct microcode_patch *patch,\n                             unsigned
      int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:378,1
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:387,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:391,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:392,1
    - Dst: set_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:395,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:397,1
    - Dst: wait_for_condition
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:400,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:400,1
    - Dst: ucode_load
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:406,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:408,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:409,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:413,1
    - Dst: set_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:419,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:421,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:423,1
    - Dst: wait_for_condition
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:432,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:434,1
    - Dst: rdtsc_ordered
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:438,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:440,1
    - Dst: set_state
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:448,1
    - Dst: set_nmi_callback
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:450,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:451,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:455,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 458
    functionName: control_thread_fn
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - watchdog_enable
    - panic
    - smp_processor_id
    - smp_wmb
    - num_online_cpus
    - set_state
    - atomic_inc
    - watchdog_disable
    - ucode_load
    - cpumask_set_cpu
    - printk
    - set_nmi_callback
    - wait_for_condition
    - rdtsc_ordered
    - atomic_read
    linkageType: ''
    returnType: int
    signature: "int control_thread_fn(const struct microcode_patch *patch,\n                             unsigned
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:462,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:471,1
    - Dst: control_thread_fn
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:472,1
    - Dst: is_cpu_primary
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:474,1
    - Dst: primary_thread_fn
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:475,1
    - Dst: secondary_thread_fn
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - _patch_with_flags
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 481
    functionName: do_microcode_update
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - secondary_thread_fn
    - primary_thread_fn
    - is_cpu_primary
    - smp_processor_id
    - control_thread_fn
    - cpumask_first
    linkageType: ''
    returnType: int
    signature: int do_microcode_update(void *_patch_with_flags)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_maps
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:499,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:501,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:510,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:510,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:512,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:513,1
    - Dst: cpumask_first
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:515,1
    - Dst: ucode_parse_dup
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:520,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:523,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:525,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:527,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:529,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:535,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:545,1
    - Dst: alternative_call
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:548,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:553,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:554,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:564,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:566,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:567,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:568,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:573,1
    - Dst: is_cpu_primary
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:574,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:577,1
    - Dst: stop_machine_run
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:591,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:593,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:598,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:599,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:600,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:609,1
    - Dst: calculate_raw_cpu_policy
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:611,1
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:614,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:618,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:625,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:628,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 631
    functionName: __maybe_unused::ucode_update_hcall_cont
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - spin_lock
    - alternative_call
    - ucode_parse_dup
    - xfree
    - stop_machine_run
    - calculate_raw_cpu_policy
    - printk
    - put_cpu_maps
    - cpumask_clear
    - spin_unlock
    - cpumask_first
    - for_each_online_cpu
    - IS_ERR
    - is_cpu_primary
    - PTR_ERR
    - alternative_vcall
    - SWAP
    - unlikely
    - get_cpu_maps
    - atomic_read
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check __maybe_unused ucode_update_hcall_cont(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:634,1
    - Dst: xmalloc_flex_struct
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:646,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:650,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:653,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - len
    - flags
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 665
    functionName: ucode_update_hcall
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - XEN_GUEST_HANDLE
    - continue_hypercall_on_cpu
    - xfree
    - xmalloc_flex_struct
    linkageType: ''
    returnType: int
    signature: "int ucode_update_hcall(XEN_GUEST_HANDLE(const_void) buf,\n                       unsigned
      long len, unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:678,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:680,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:683,1
    - Dst: ucode_load
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:685,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 691
    functionName: microcode_update_one
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - IS_ENABLED
    - spin_lock
    - alternative_vcall
    - ucode_load
    linkageType: ''
    returnType: int
    signature: int microcode_update_one(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:714,1
    - Dst: find_cpio_data
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:722,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:726,1
    - Dst: strrchr
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:727,1
    - Dst: ucode_parse_dup
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:735,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:736,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:738,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:739,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:745,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:749,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:750,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 755
    functionName: microcode_init_cache
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - __va
    - IS_ERR
    - spin_unlock
    - PTR_ERR
    - spin_lock
    - ASSERT
    - ucode_parse_dup
    - printk
    - strrchr
    - find_cpio_data
    linkageType: ''
    returnType: int
    signature: int microcode_init_cache(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: amd_check_entrysign
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:774,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:780,1
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:793,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:796,1
    - Dst: find_cpio_data
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:801,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:805,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:818,1
    - Dst: strrchr
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:819,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:834,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:841,1
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:847,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:850,1
    - Dst: find_cpio_data
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:859,1
    - Dst: ucode_parse
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:879,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:880,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:882,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:883,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:889,1
    - Dst: ucode_load
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:903,1
    - Dst: early_cpu_init
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:907,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:910,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 1
    argNames:
    - bi
    argTypes:
    - struct boot_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 913
    functionName: early_microcode_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 0
    functionsReached:
    - ucode_parse
    - IS_ERR
    - amd_check_entrysign
    - bootstrap_unmap
    - PTR_ERR
    - ASSERT
    - bootstrap_map_bm
    - printk
    - ucode_load
    - strrchr
    - find_cpio_data
    - early_cpu_init
    linkageType: ''
    returnType: int
    signature: int early_microcode_load(struct boot_info *bi)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ucode_probe_amd
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:922,1
    - Dst: ucode_probe_intel
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:926,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:932,1
    - Dst: collect_cpu_info
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:936,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:938,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:938,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:940,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:952,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:954,1
    - Dst: early_microcode_load
      Src: /src/xen/xen/arch/x86/cpu/microcode/core.c:960,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - bi
    argTypes:
    - struct boot_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 915
    functionDepth: 4
    functionLinenumber: 915
    functionLinenumberEnd: 961
    functionName: early_microcode_init
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/core.c
    functionUses: 1
    functionsReached:
    - ucode_probe_amd
    - early_microcode_load
    - IS_ENABLED
    - printk
    - this_cpu
    - ucode_probe_intel
    - collect_cpu_info
    linkageType: ''
    returnType: int
    signature: int early_microcode_init(struct boot_info *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: MICROCODE_OP
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MICROCODE_OP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct microcode_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: ucode_probe_amd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ucode_probe_amd(struct microcode_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: amd_check_entrysign
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void amd_check_entrysign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct microcode_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: ucode_probe_intel
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ucode_probe_intel(struct microcode_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: pr_debug
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pr_debug(x...)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - elem
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: cmp_patch_id
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_patch_id(const void *key, const void *elem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:133,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:133,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:137,1
    - Dst: sha2_256
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:142,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:144,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - mc
    argTypes:
    - struct container_microcode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 154
    functionName: check_digest
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ARRAY_SIZE
    - bsearch
    - printk
    - sha2_256
    linkageType: ''
    returnType: bool
    signature: bool check_digest(const struct container_microcode *mc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:158,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:160,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:162,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:163,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:165,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: collect_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - rdmsrl
    - cpuid_eax
    - pr_debug
    - this_cpu
    - memset
    linkageType: ''
    returnType: void
    signature: void collect_cpu_info(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - patch_size
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 207
    functionName: verify_patch_size
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool verify_patch_size(uint32_t patch_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - struct cpu_signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 237
    functionName: check_final_patch_levels
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool check_final_patch_levels(const struct cpu_signature *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - old_rev
    - new_rev
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: compare_revisions
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_revisions(uint32_t old_rev, uint32_t new_rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: microcode_fits_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool microcode_fits_cpu(const struct microcode_patch *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:272,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:272,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:274,1
    - Dst: patch_id::patch_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct microcode_patch*
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: amd_compare
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - compare_revisions
    - ASSERT
    - patch_id::patch_id
    - microcode_fits_cpu
    linkageType: ''
    returnType: int
    signature: "int amd_compare(\n    const struct microcode_patch *old, const struct
      microcode_patch *new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:291,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:291,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:304,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: check_min_rev
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - microcode_fits_cpu
    - printk
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool check_min_rev(const struct microcode_patch *patch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:317,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:318,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:322,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:325,1
    - Dst: check_final_patch_levels
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:334,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:336,1
    - Dst: check_min_rev
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:342,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:344,1
    - Dst: wrmsr_safe
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:350,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:353,1
    - Dst: invlpg
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:366,1
    - Dst: invlpg
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:367,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:373,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:379,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 384
    functionName: amd_ucode_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - wrmsr_safe
    - smp_processor_id
    - check_min_rev
    - check_final_patch_levels
    - microcode_fits_cpu
    - rdmsrl
    - invlpg
    - per_cpu
    - printk
    - compare_revisions
    linkageType: ''
    returnType: int
    signature: "int amd_ucode_load(const struct microcode_patch *patch,\n                                   unsigned
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:388,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - et
    argTypes:
    - struct container_equiv_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 423
    functionName: scan_equiv_cpu_table
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - printk
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int scan_equiv_cpu_table(const struct container_equiv_table *et)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:440,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:454,1
    - Dst: scan_equiv_cpu_table
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:463,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:485,1
    - Dst: verify_patch_size
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:493,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:495,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:510,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:512,1
    - Dst: check_digest
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:514,1
    - Dst: xmemdup_bytes
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:546,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:555,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 60
    argCount: 3
    argNames:
    - buf
    - size
    - make_copy
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 558
    functionName: amd_ucode_parse
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - scan_equiv_cpu_table
    - ERR_PTR
    - xmemdup_bytes
    - verify_patch_size
    - microcode_fits_cpu
    - check_digest
    - printk
    - compare_revisions
    linkageType: ''
    returnType: struct microcode_patch
    signature: "struct microcode_patch *cf_check amd_ucode_parse(\n    const void
      *buf, size_t size, bool make_copy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:577,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:581,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct microcode_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 590
    functionName: ucode_probe_amd
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 1
    functionsReached:
    - add_taint
    - printk
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void ucode_probe_amd(struct microcode_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:595,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: test_digests_sorted
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 0
    functionsReached:
    - panic
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void test_digests_sorted(void)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:618,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:629,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:667,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:685,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/x86/cpu/microcode/amd.c:687,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 688
    functionName: amd_check_entrysign
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    functionUses: 1
    functionsReached:
    - add_taint
    - this_cpu
    - printk
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void amd_check_entrysign(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: pr_debug
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pr_debug(x...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: get_datasize
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_datasize(const struct microcode_patch *patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: get_totalsize
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_totalsize(const struct microcode_patch *patch)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: get_ext_sigtable
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct extended_sigtable
    signature: "struct extended_sigtable *get_ext_sigtable(\n    const struct microcode_patch
      *patch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cpu_sig
    - ucode_sig
    - ucode_pf
    argTypes:
    - struct cpu_signature*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: signature_matches
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool signature_matches(const struct cpu_signature *cpu_sig,\n                              unsigned
      int ucode_sig, unsigned int ucode_pf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:125,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:128,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:130,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:138,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:139,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:140,1
    - Dst: pr_debug
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 145
    functionName: collect_cpu_info
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 1
    functionsReached:
    - rdmsrl
    - cpuid_eax
    - pr_debug
    - wrmsrl
    - this_cpu
    - memset
    linkageType: ''
    returnType: void
    signature: void collect_cpu_info(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_totalsize
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:156,1
    - Dst: get_datasize
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:157,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:171,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:182,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:202,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:213,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:225,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - patch
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 230
    functionName: microcode_sanity_check
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached:
    - get_totalsize
    - get_datasize
    - printk
    linkageType: ''
    returnType: int
    signature: int microcode_sanity_check(const struct microcode_patch *patch)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - old_rev
    - new_rev
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: compare_revisions
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_revisions(int32_t old_rev, int32_t new_rev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:259,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:261,1
    - Dst: microcode_sanity_check
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:261,1
    - Dst: signature_matches
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:264,1
    - Dst: get_ext_sigtable
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:268,1
    - Dst: signature_matches
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - mc
    argTypes:
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 274
    functionName: microcode_fits_cpu
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 4
    functionsReached:
    - signature_matches
    - ASSERT
    - get_ext_sigtable
    - microcode_sanity_check
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool microcode_fits_cpu(const struct microcode_patch *mc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:283,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:283,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:286,1
    - Dst: rev::rev
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct microcode_patch*
    - struct microcode_patch*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: intel_compare
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached:
    - compare_revisions
    - ASSERT
    - rev::rev
    - microcode_fits_cpu
    linkageType: ''
    returnType: int
    signature: "int intel_compare(\n    const struct microcode_patch *old, const struct
      microcode_patch *new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:293,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:294,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:299,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:302,1
    - Dst: wbinvd
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:307,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:309,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:316,1
    - Dst: cpuid_eax
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:317,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:318,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:323,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - patch
    - flags
    argTypes:
    - struct microcode_patch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 334
    functionName: intel_ucode_load
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - microcode_fits_cpu
    - rdmsrl
    - cpuid_eax
    - wrmsrl
    - printk
    - this_cpu
    - compare_revisions
    - wbinvd
    linkageType: ''
    returnType: int
    signature: "int intel_ucode_load(const struct microcode_patch *patch,\n                                     unsigned
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_totalsize
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:352,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:355,1
    - Dst: microcode_sanity_check
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:359,1
    - Dst: microcode_fits_cpu
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:367,1
    - Dst: compare_revisions
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:368,1
    - Dst: xmemdup_bytes
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:379,1
    - Dst: get_totalsize
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:379,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:389,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - size
    - make_copy
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 392
    functionName: intel_ucode_parse
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - xmemdup_bytes
    - microcode_fits_cpu
    - get_totalsize
    - microcode_sanity_check
    - printk
    - compare_revisions
    linkageType: ''
    returnType: struct microcode_patch
    signature: "struct microcode_patch *cf_check intel_ucode_parse(\n    const void
      *buf, size_t size, bool make_copy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 405
    functionName: can_load_microcode
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 0
    functionsReached:
    - rdmsrl
    linkageType: ''
    returnType: bool
    signature: bool can_load_microcode(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:422,1
    - Dst: can_load_microcode
      Src: /src/xen/xen/arch/x86/cpu/microcode/intel.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct microcode_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: ucode_probe_intel
    functionSourceFile: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    functionUses: 1
    functionsReached:
    - can_load_microcode
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void ucode_probe_intel(struct microcode_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: superpage_aligned
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: superpage_aligned(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_alloc_mm_pre_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:29,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:30,1
    - Dst: page_alloc_mm_post_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: lock_page_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - page_alloc_mm_pre_lock
    - nrspin_lock
    - page_alloc_mm_post_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline lock_page_alloc(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_alloc_mm_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:37,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: unlock_page_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - page_alloc_mm_unlock
    - nrspin_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_page_alloc(struct p2m_domain *p2m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:52,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:56,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:58,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:59,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:65,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:69,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:70,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:76,1
    - Dst: pod_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:76,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:84,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:84,1
    - Dst: lock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:87,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:89,1
    - Dst: unlock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:90,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:97,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:101,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:104,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - p2m
    - page
    - order
    argTypes:
    - struct p2m_domain*
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: p2m_pod_cache_add
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_locked_by_me
    - page_list_add_tail
    - BUG
    - page_to_mfn
    - clear_domain_page
    - lock_page_alloc
    - unlock_page_alloc
    - mfn_x
    - mfn_add
    - page_get_owner
    - ASSERT
    - printk
    - page_list_del
    linkageType: ''
    returnType: int
    signature: "int p2m_pod_cache_add(struct p2m_domain *p2m,\n                  struct
      page_info *page,\n                  unsigned int order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:120,1
    - Dst: pod_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:120,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:122,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:126,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:131,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:131,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:137,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:138,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:138,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:142,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:142,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:143,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:150,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:150,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:151,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:155,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:155,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:156,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:160,1
    - Dst: lock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:164,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:167,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:167,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:168,1
    - Dst: unlock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - p2m
    - order
    argTypes:
    - struct p2m_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 173
    functionName: p2m_pod_cache_get
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_locked_by_me
    - page_list_add_tail
    - BUG
    - page_to_mfn
    - mfn_to_page
    - lock_page_alloc
    - unlock_page_alloc
    - mfn_x
    - _mfn
    - page_list_remove_head
    - page_get_owner
    - BUG_ON
    - ASSERT
    - page_list_empty
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info * p2m_pod_cache_get(struct p2m_domain *p2m,\n                                            unsigned
      int order)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:182,1
    - Dst: pod_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:182,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:195,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:196,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:205,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:211,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:214,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:233,1
    - Dst: p2m_pod_cache_get
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:238,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:240,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:246,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:246,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:248,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:253,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:254,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 3
    argNames:
    - p2m
    - pod_target
    - preemptible
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 267
    functionName: p2m_pod_set_cache_target
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_locked_by_me
    - gdprintk
    - put_page_alloc_ref
    - p2m_pod_cache_get
    - get_page
    - ASSERT
    - p2m_pod_cache_add
    - hypercall_preempt_check
    - printk
    - unlikely
    - page_list_empty
    - put_page
    - alloc_domheap_pages
    linkageType: ''
    returnType: int
    signature: int p2m_pod_set_cache_target(struct p2m_domain *p2m, unsigned long
      pod_target, int preemptible)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:308,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:312,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:315,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:327,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:339,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:341,1
    - Dst: has_arch_io_resources
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:341,1
    - Dst: p2m_pod_set_cache_target
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:344,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:347,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - d
    - target
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 350
    functionName: p2m_pod_set_mem_target
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 1
    functionsReached:
    - pod_lock
    - has_arch_pdevs
    - pod_unlock
    - p2m_pod_set_cache_target
    - domain_tot_pages
    - ASSERT
    - has_arch_io_resources
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_pod_set_mem_target(struct domain *d, unsigned long target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:354,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:356,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:356,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:358,1
    - Dst: lock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:359,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:361,1
    - Dst: unlock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:365,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - d
    - target
    argTypes:
    - struct domain*
    - xen_pod_target_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 367
    functionName: p2m_pod_get_mem_target
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 1
    functionsReached:
    - pod_lock
    - pod_unlock
    - lock_page_alloc
    - unlock_page_alloc
    - domain_tot_pages
    - ASSERT
    - is_hvm_domain
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_pod_get_mem_target(const struct domain *d, xen_pod_target_t
      *target)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:371,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:376,1
    - Dst: rspin_barrier
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:377,1
    - Dst: lock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:379,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:381,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:385,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:385,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:386,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:391,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:395,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:397,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:397,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:398,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:402,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:406,1
    - Dst: unlock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 411
    functionName: p2m_pod_empty_cache
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - lock_page_alloc
    - unlock_page_alloc
    - page_list_remove_head
    - page_get_owner
    - BUG_ON
    - hypercall_preempt_check
    - rspin_barrier
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_pod_empty_cache(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:421,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:421,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:424,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:425,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:425,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:426,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:428,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:428,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:432,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:435,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:435,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:436,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:438,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:444,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:446,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:446,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:449,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:455,1
    - Dst: lock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:459,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:461,1
    - Dst: unlock_page_alloc
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:462,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 465
    functionName: p2m_pod_offline_or_broken_hit
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_lock
    - page_list_add_tail
    - page_to_mfn
    - page_list_for_each_safe
    - pod_unlock
    - mfn_to_page
    - lock_page_alloc
    - unlock_page_alloc
    - mfn_x
    - _mfn
    - page_list_add
    - page_get_owner
    - page_list_del
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_pod_offline_or_broken_hit(struct page_info *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_to_nid
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:472,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:474,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:474,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:477,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:479,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:479,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:480,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:483,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:484,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 487
    functionName: p2m_pod_offline_or_broken_replace
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - page_to_nid
    - pod_lock
    - pod_unlock
    - alloc_domheap_page
    - MEMF_node
    - page_get_owner
    - p2m_pod_cache_add
    - unlikely
    - free_domheap_page
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_pod_offline_or_broken_replace(struct page_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:494,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:496,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: pod_unlock_and_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - p2m_flush_nestedp2m
    - pod_unlock
    linkageType: ''
    returnType: void
    signature: void pod_unlock_and_flush(struct p2m_domain *p2m)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:513,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:517,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:518,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:528,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:540,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:540,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:541,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:542,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:544,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:558,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:570,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:572,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:573,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:579,1
    - Dst: p2m_pod_zero_check_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:592,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:592,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:592,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:596,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:613,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:613,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:617,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:620,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:620,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:623,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:624,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:628,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:632,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:644,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:644,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:646,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:649,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:649,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:652,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:653,1
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:656,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:659,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:659,1
    - Dst: paging_mark_pfn_clean
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:660,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:660,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:660,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:662,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:664,1
    - Dst: p2m_pod_set_cache_target
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:677,1
    - Dst: pod_unlock_and_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:681,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:682,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 684
    functionName: decrease_reservation
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - set_gpfn_from_mfn
    - _pfn
    - _gfn
    - ioreq_request_mapcache_invalidate
    - paging_mark_pfn_clean
    - p2m_pod_set_cache_target
    - pod_lock
    - p2m_set_entry
    - p2m_pod_zero_check_superpage
    - gfn_unlock
    - mfn_valid
    - BUG_ON
    - gfn_lock
    - printk
    - domain_crash
    - gfn_add
    - p2m_tlb_flush_sync
    - mfn_x
    - struct p2m_domain*::get_entry
    - min
    - ASSERT
    - p2m_pod_cache_add
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    - pod_unlock_and_flush
    - p2m_is_ram
    - gfn_x
    - unlikely
    - p2m_is_pod
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long decrease_reservation(struct domain *d, gfn_t gfn, unsigned
      int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:690,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:690,1
    - Dst: decrease_reservation
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:693,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 700
    functionName: p2m_pod_decrease_reservation
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - gfn_add
    - decrease_reservation
    - ffsl
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long p2m_pod_decrease_reservation(struct domain *d, gfn_t
      gfn, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:704,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: p2m_pod_dump_data
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 1
    functionsReached:
    - printk
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_pod_dump_data(struct domain *d)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:728,1
    - Dst: pod_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:728,1
    - Dst: superpage_aligned
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:730,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:730,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:734,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:741,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:754,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:754,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:769,1
    - Dst: superpage_aligned
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:774,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:774,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:779,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:779,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:782,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:783,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:784,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:795,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:795,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:801,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:809,1
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:813,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:822,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:823,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:833,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:833,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:842,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:855,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:856,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:860,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:867,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:867,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:870,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:880,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:883,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:884,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:888,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 84
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 890
    functionName: p2m_pod_zero_check_superpage
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - paging_mode_shadow
    - superpage_aligned
    - ioreq_request_mapcache_invalidate
    - pod_locked_by_me
    - map_domain_page
    - p2m_set_entry
    - trace
    - gfn_unlock
    - gfn_lock
    - mfn_eq
    - domain_crash
    - gfn_add
    - p2m_tlb_flush_sync
    - mfn_x
    - is_special_page
    - struct p2m_domain*::get_entry
    - ASSERT
    - min
    - p2m_pod_cache_add
    - ASSERT_UNREACHABLE
    - unmap_domain_page
    - p2m_is_ram
    - mfn_add
    - gfn_x
    linkageType: ''
    returnType: int
    signature: int p2m_pod_zero_check_superpage(struct p2m_domain *p2m, gfn_t gfn)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:904,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:907,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:915,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:923,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:925,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:927,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:931,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:950,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:958,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:964,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:967,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:968,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:973,1
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:980,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:992,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1006,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1009,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1010,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1018,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1030,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1031,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1035,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1039,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1039,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1042,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 68
    argCount: 3
    argNames:
    - p2m
    - gfns
    - count
    argTypes:
    - struct p2m_domain*
    - gfn_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 1045
    functionName: p2m_pod_zero_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - p2m_set_entry
    - p2m_tlb_flush_sync
    - mfn_to_page
    - trace
    - paging_mode_shadow
    - mfn_x
    - p2m_is_ram
    - struct p2m_domain*::get_entry
    - is_special_page
    - ioreq_request_mapcache_invalidate
    - gfn_x
    - BUG_ON
    - p2m_pod_cache_add
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void p2m_pod_zero_check(struct p2m_domain *p2m, const gfn_t *gfns,
      unsigned int count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1055,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1055,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1058,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1067,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1068,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1071,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1071,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1072,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1074,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1076,1
    - Dst: p2m_pod_zero_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1079,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1090,1
    - Dst: p2m_pod_zero_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1095,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1097,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1098,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1100
    functionName: p2m_pod_emergency_sweep
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - _gfn
    - p2m_lock
    - p2m_is_ram
    - struct p2m_domain*::get_entry
    - p2m_pod_zero_check
    - gfn_x
    - BUG_ON
    - p2m_unlock
    - hypercall_preempt_check
    - gfn_eq
    linkageType: ''
    returnType: void
    signature: void p2m_pod_emergency_sweep(struct p2m_domain *p2m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1115,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1116,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1118,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1120,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1122,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1122,1
    - Dst: p2m_pod_zero_check_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1124,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1128,1
    - Dst: p2m_pod_zero_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1129,1
    - Dst: p2m_pod_zero_check
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1133,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1135,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1139
    functionName: pod_eager_reclaim
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - p2m_pod_zero_check_superpage
    - _gfn
    - p2m_pod_zero_check
    - gfn_x
    - gfn_eq
    - gfn_add
    linkageType: ''
    returnType: void
    signature: void pod_eager_reclaim(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1146,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1146,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1149,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p2m
    - gfn
    - order
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1151
    functionName: pod_eager_record
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - gfn_eq
    - ASSERT
    - gfn_x
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void pod_eager_record(struct p2m_domain *p2m, gfn_t gfn,\n                             unsigned
      int order)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1159,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1159,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1163,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1165,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1169,1
    - Dst: gfn_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1169,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1170,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1177,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1179,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1189,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1199,1
    - Dst: pod_eager_reclaim
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1207,1
    - Dst: p2m_pod_emergency_sweep
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1214,1
    - Dst: gfn_max
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1221,1
    - Dst: p2m_pod_cache_get
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1227,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1230,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1232,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1232,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1234,1
    - Dst: p2m_pod_cache_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1237,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1243,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1243,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1243,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1244,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1244,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1244,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1248,1
    - Dst: pod_eager_record
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1250,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1259,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1260,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1264,1
    - Dst: pod_unlock_and_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1267,1
    - Dst: pod_unlock_and_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1271,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1273,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1274,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1276,1
    - Dst: pod_unlock_and_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1280,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1284,1
    - Dst: pod_unlock_and_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1285,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1294,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1305,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1309,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 3
    argNames:
    - p2m
    - gfn
    - order
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1153
    functionDepth: 5
    functionLinenumber: 1153
    functionLinenumberEnd: 1313
    functionName: p2m_pod_demand_populate
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - gfn_max
    - _pfn
    - set_gpfn_from_mfn
    - _gfn
    - p2m_pod_cache_get
    - p2m_is_hostp2m
    - p2m_pod_emergency_sweep
    - pod_lock
    - page_to_mfn
    - pod_unlock
    - p2m_set_entry
    - trace
    - BUG_ON
    - pod_eager_record
    - printk
    - domain_crash
    - pod_eager_reclaim
    - mfn_x
    - ASSERT
    - p2m_pod_cache_add
    - paging_mark_pfn_dirty
    - ASSERT_UNREACHABLE
    - gfn_locked_by_me
    - pod_unlock_and_flush
    - domain_tot_pages
    - gfn_x
    - unlikely
    linkageType: ''
    returnType: bool
    signature: "bool p2m_pod_demand_populate(struct p2m_domain *p2m, gfn_t gfn,\n
      \                       unsigned int order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1319,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1320,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1324,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1326,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1335,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1335,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1336,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1337,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1344,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1356,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1359,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1365,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1368,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1371,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1378,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1381,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - d
    - gfn_l
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1388
    functionName: mark_populate_on_demand
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_lock
    - gfn_add
    - p2m_set_entry
    - pod_unlock
    - gfn_unlock
    - _gfn
    - P2M_DEBUG
    - struct p2m_domain*::get_entry
    - ioreq_request_mapcache_invalidate
    - BUG_ON
    - gfn_lock
    - min
    - p2m_is_pod
    - printk
    - domain_crash
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int mark_populate_on_demand(struct domain *d, unsigned long gfn_l,\n
      \                       unsigned int order)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ffsl
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1395,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1398,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1401,1
    - Dst: has_arch_io_resources
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1401,1
    - Dst: mark_populate_on_demand
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1412
    functionName: guest_physmap_mark_populate_on_demand
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - has_arch_pdevs
    - ffsl
    - mark_populate_on_demand
    - paging_mode_translate
    - has_arch_io_resources
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned
      long gfn,\n                                      unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mm_lock_init
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1418,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1419,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1420,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1422,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1424
    functionName: p2m_pod_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - mm_lock_init
    - INIT_PAGE_LIST_HEAD
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void p2m_pod_init(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1431,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1434,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1436,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pod.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1441
    functionName: p2m_pod_active
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pod.c
    functionUses: 0
    functionsReached:
    - pod_lock
    - pod_unlock
    - is_hvm_domain
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_pod_active(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/nested.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: p2m_nestedp2m_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/nested.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void p2m_nestedp2m_init(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_lock_init
      Src: /src/xen/xen/arch/x86/mm/nested.c:30,1
    - Dst: p2m_init_one
      Src: /src/xen/xen/arch/x86/mm/nested.c:33,1
    - Dst: p2m_teardown_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/nested.c:36,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm/nested.c:42,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/nested.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: p2m_init_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/nested.c
    functionUses: 0
    functionsReached:
    - mm_lock_init
    - p2m_teardown_nestedp2m
    - p2m_init_one
    - list_add
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_init_nestedp2m(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm/nested.c:58,1
    - Dst: p2m_free_one
      Src: /src/xen/xen/arch/x86/mm/nested.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: p2m_teardown_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/nested.c
    functionUses: 1
    functionsReached:
    - list_del
    - p2m_free_one
    linkageType: ''
    returnType: void
    signature: void p2m_teardown_nestedp2m(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock_init
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: mm_lock_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 2
    functionsReached:
    - rspin_lock_init
    linkageType: ''
    returnType: void
    signature: void mm_lock_init(mm_lock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: mm_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mm_locked_by_me(const mm_lock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: _get_lock_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int _get_lock_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:52,1
    - Dst: is_control_domain
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: _lock_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - is_control_domain
    linkageType: ''
    returnType: int
    signature: int _lock_level(const struct domain *d, int l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:63,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:65,1
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:65,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:67,1
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:67,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: _check_lock_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - BUG
    - printk
    - unlikely
    - _lock_level
    - _get_lock_level
    linkageType: ''
    returnType: void
    signature: void _check_lock_level(const struct domain *d, int l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: _set_lock_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void _set_lock_level(int l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mm_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:80,1
    - Dst: _check_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:81,1
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:82,1
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:86,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:88,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:89,1
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:90,1
    - Dst: _lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - d
    - l
    - func
    - level
    - rec
    argTypes:
    - struct domain*
    - mm_lock_t*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: _mm_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - _set_lock_level
    - _check_lock_level
    - panic
    - rspin_lock
    - unlikely
    - _lock_level
    - mm_locked_by_me
    - _get_lock_level
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _mm_lock(const struct domain *d, mm_lock_t *l,\n                                   const
      char *func, int level, int rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _check_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - level
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: _mm_enforce_order_lock_pre
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - _check_lock_level
    linkageType: ''
    returnType: void
    signature: void _mm_enforce_order_lock_pre(const struct domain *d, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:106,1
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:109,1
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:111,1
    - Dst: _lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - d
    - level
    - unlock_level
    - recurse_count
    argTypes:
    - struct domain*
    - int
    - int*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: _mm_enforce_order_lock_post
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - _lock_level
    - _set_lock_level
    - _get_lock_level
    linkageType: ''
    returnType: void
    signature: "void _mm_enforce_order_lock_post(const struct domain *d, int level,\n
      \                                              int *unlock_level,\n                                               unsigned
      short *recurse_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_rwlock_resource_init
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: mm_rwlock_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - percpu_rwlock_resource_init
    linkageType: ''
    returnType: void
    signature: void mm_rwlock_init(mm_rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: mm_write_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - smp_processor_id
    linkageType: ''
    returnType: int
    signature: int mm_write_locked_by_me(mm_rwlock_t *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_write_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:131,1
    - Dst: _check_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:133,1
    - Dst: percpu_write_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:134,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:135,1
    - Dst: _get_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:137,1
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:138,1
    - Dst: _lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:138,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - d
    - l
    - func
    - level
    argTypes:
    - struct domain*
    - mm_rwlock_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 143
    functionName: _mm_write_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - _set_lock_level
    - _check_lock_level
    - smp_processor_id
    - percpu_write_lock
    - mm_write_locked_by_me
    - _lock_level
    - block_lock_speculation
    - _get_lock_level
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _mm_write_lock(const struct domain *d, mm_rwlock_t *l,\n
      \                                        const char *func, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:151,1
    - Dst: percpu_write_unlock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: mm_write_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - _set_lock_level
    - percpu_write_unlock
    linkageType: ''
    returnType: void
    signature: void mm_write_unlock(mm_rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _check_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:158,1
    - Dst: percpu_read_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - l
    - level
    argTypes:
    - struct domain*
    - mm_rwlock_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: _mm_read_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - percpu_read_lock
    - _check_lock_level
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _mm_read_lock(const struct domain *d, mm_rwlock_t *l,\n
      \                                       int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_read_unlock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: mm_read_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - percpu_read_unlock
    linkageType: ''
    returnType: void
    signature: void mm_read_unlock(mm_rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: declare_mm_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_mm_lock(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: declare_mm_rwlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_mm_rwlock(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: mm_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_lock(name, d, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: mm_lock_recursive
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_lock_recursive(name, d, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: mm_write_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_write_lock(name, d, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: mm_read_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_read_lock(name, d, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: declare_mm_order_constraint
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: declare_mm_order_constraint(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:203,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - l
    argTypes:
    - mm_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: mm_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached:
    - rspin_unlock
    - _set_lock_level
    linkageType: ''
    returnType: void
    signature: void mm_unlock(mm_lock_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:213,1
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:216,1
    - Dst: _set_lock_level
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - unlock_level
    - recurse_count
    argTypes:
    - int
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 221
    functionName: mm_enforce_order_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    - _set_lock_level
    linkageType: ''
    returnType: void
    signature: "void mm_enforce_order_unlock(int unlock_level,\n                                            unsigned
      short *recurse_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: nestedp2m_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedp2m_lock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: nestedp2m_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nestedp2m_unlock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: page_sharing_mm_pre_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_sharing_mm_pre_lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: page_sharing_mm_post_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_sharing_mm_post_lock(l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: page_sharing_mm_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_sharing_mm_unlock(l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: altp2m_list_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: altp2m_list_lock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: altp2m_list_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: altp2m_list_unlock(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_altp2m
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:316,1
    - Dst: mm_write_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:317,1
    - Dst: mm_write_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: p2m_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached:
    - mm_write_lock
    - p2m_is_altp2m
    linkageType: ''
    returnType: always_inline
    signature: always_inline p2m_lock(struct p2m_domain *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_unlock_and_tlb_flush
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:326,1
    - Dst: mm_write_unlock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: p2m_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached:
    - mm_write_unlock
    - p2m_unlock_and_tlb_flush
    linkageType: ''
    returnType: void
    signature: void p2m_unlock(struct p2m_domain *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - g
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: gfn_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_lock(p,g,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - g
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: gfn_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_unlock(p,g,o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: p2m_read_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_read_lock(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: p2m_read_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_read_unlock(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: p2m_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_locked_by_me(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: gfn_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_locked_by_me(p,g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:342,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/arch/x86/mm/mm-locks.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - condition
    - p2m
    - gfn
    - order
    argTypes:
    - bool
    - struct p2m_domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: gfn_lock_if
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached:
    - gfn_lock
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: "always_inline gfn_lock_if(bool condition, struct p2m_domain *p2m,\n
      \                                     gfn_t gfn, unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: pod_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pod_lock(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: pod_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pod_unlock(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: pod_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pod_locked_by_me(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    functionName: page_alloc_mm_pre_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_alloc_mm_pre_lock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: page_alloc_mm_post_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_alloc_mm_post_lock(d, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: page_alloc_mm_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_alloc_mm_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: paging_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_lock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    functionName: paging_lock_recursive
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_lock_recursive(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: paging_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_unlock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: paging_locked_by_me
    functionSourceFile: /src/xen/xen/arch/x86/mm/mm-locks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_locked_by_me(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: RMAP_USES_HASHTAB
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RMAP_USES_HASHTAB(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: _free_pg_shared_info
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _free_pg_shared_info(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:73,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:74,1
    - Dst: list_add_rcu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:75,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: audit_add_list
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_add_rcu
    - spin_unlock
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void audit_add_list(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:83,1
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:83,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:84,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:87,1
    - Dst: list_del_rcu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:88,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:89,1
    - Dst: INIT_RCU_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:90,1
    - Dst: call_rcu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: page_sharing_dispose
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - unlikely
    - spin_unlock
    - INIT_RCU_HEAD
    - call_rcu
    - spin_lock
    - free_xenheap_pages
    - RMAP_USES_HASHTAB
    - list_del_rcu
    linkageType: ''
    returnType: void
    signature: void page_sharing_dispose(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: audit_add_list
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: audit_add_list(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:100,1
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:100,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:101,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: page_sharing_dispose
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - RMAP_USES_HASHTAB
    - free_xenheap_pages
    - xfree
    - unlikely
    linkageType: ''
    returnType: void
    signature: void page_sharing_dispose(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:129,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: _page_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - cmpxchg
    linkageType: ''
    returnType: bool
    signature: bool _page_lock(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:146,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:150,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: _page_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void _page_unlock(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:157,1
    - Dst: page_sharing_mm_pre_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:159,1
    - Dst: _page_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:160,1
    - Dst: preempt_disable
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:163,1
    - Dst: page_sharing_mm_post_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: mem_sharing_page_lock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - _page_lock
    - page_sharing_mm_post_lock
    - preempt_disable
    - this_cpu
    - page_sharing_mm_pre_lock
    linkageType: ''
    returnType: bool
    signature: bool mem_sharing_page_lock(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:172,1
    - Dst: page_sharing_mm_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:174,1
    - Dst: preempt_enable
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:176,1
    - Dst: _page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: mem_sharing_page_unlock
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - _page_unlock
    - page_sharing_mm_unlock
    - preempt_enable
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void mem_sharing_page_unlock(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: get_next_handle
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - arch_fetch_and_add
    linkageType: ''
    returnType: shr_handle_t
    signature: shr_handle_t get_next_handle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: rmap_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void rmap_init(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - domain
    - ','
    - gfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: HASH
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH(domain, gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:222,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:228,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:230,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:232,1
    - Dst: HASH
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:233,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:235,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 243
    functionName: rmap_list_to_hash_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - list_entry
    - HASH
    - list_for_each_safe
    - alloc_xenheap_pages
    - list_del
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: int
    signature: int rmap_list_to_hash_table(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:250,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:258,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:259,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: rmap_hash_table_to_list
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_del
    - list_add
    - free_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void rmap_hash_table_to_list(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:258,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: list_for_each_safe
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 4
    functionsReached:
    - list_del
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe ( pos, tmp, head )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: rmap_count
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - read_atomic
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long rmap_count(const struct page_info *pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:285,1
    - Dst: rmap_count
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:286,1
    - Dst: rmap_hash_table_to_list
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:287,1
    - Dst: list_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - gfn_info
    - page
    - convert
    argTypes:
    - gfn_info_t*
    - struct page_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: rmap_del
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - rmap_count
    - RMAP_USES_HASHTAB
    - list_del
    - rmap_hash_table_to_list
    linkageType: ''
    returnType: void
    signature: void rmap_del(gfn_info_t *gfn_info, struct page_info *page, int convert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:298,1
    - Dst: rmap_count
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:299,1
    - Dst: rmap_list_to_hash_table
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:304,1
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:306,1
    - Dst: HASH
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:307,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:311,1
    - Dst: list_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - gfn_info
    - page
    argTypes:
    - gfn_info_t*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: rmap_add
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - rmap_count
    - rmap_list_to_hash_table
    - HASH
    - RMAP_USES_HASHTAB
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: void
    signature: void rmap_add(gfn_info_t *gfn_info, struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:321,1
    - Dst: HASH
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:322,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - domain_id
    - gfn
    - page
    argTypes:
    - uint16_t
    - unsigned long
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 334
    functionName: rmap_retrieve
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - HASH
    - RMAP_USES_HASHTAB
    - list_entry
    linkageType: ''
    returnType: gfn_info_t
    signature: "gfn_info_t *rmap_retrieve(uint16_t domain_id, unsigned long gfn,\n
      \                                struct page_info *page)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 4
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: void
    signature: void list_for_each ( le, head )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - page
    - ri
    argTypes:
    - struct page_info*
    - struct rmap_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: rmap_seed_iterator
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - RMAP_USES_HASHTAB
    linkageType: ''
    returnType: void
    signature: void rmap_seed_iterator(struct page_info *page, struct rmap_iterator
      *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:358,1
    - Dst: RMAP_USES_HASHTAB
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:365,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - page
    - ri
    argTypes:
    - struct page_info*
    - struct rmap_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 385
    functionName: rmap_iterate
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - RMAP_USES_HASHTAB
    - list_entry
    linkageType: ''
    returnType: gfn_info_t
    signature: "gfn_info_t *rmap_iterate(struct page_info *page,\n                                struct
      rmap_iterator *ri)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:390,1
    - Dst: rmap_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:398,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - page
    - d
    - gfn
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: mem_sharing_gfn_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - atomic_inc
    - rmap_add
    linkageType: ''
    returnType: gfn_info_t
    signature: "gfn_info_t *mem_sharing_gfn_alloc(struct page_info *page,\n                                         struct
      domain *d, unsigned long gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:410,1
    - Dst: rmap_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:413,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - page
    - d
    - gfn_info
    argTypes:
    - struct page_info*
    - struct domain*
    - gfn_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: mem_sharing_gfn_destroy
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - rmap_del
    - xfree
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: "void mem_sharing_gfn_destroy(struct page_info *page, struct domain
      *d,\n                                    gfn_info_t *gfn_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:449,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:449,1
    - Dst: assign_pointers
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:451,1
    - Dst: assign_pointers
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:452,1
    - Dst: assign_pointers
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:456,1
    - Dst: assign_pointers
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:457,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:463,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:463,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:466,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 13
    argNames:
    - rd
    - rgfn
    - rt
    - ra
    - rmfn
    - ld
    - lgfn
    - lt
    - la
    - lmfn
    - q
    - rval
    - lock
    argTypes:
    - struct domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - mfn_t*
    - struct domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - mfn_t*
    - p2m_query_t
    - struct two_gfns*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 469
    functionName: get_two_gfns
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - assign_pointers
    - p2m_get_gfn_type_access
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void get_two_gfns(struct domain *rd, gfn_t rgfn, p2m_type_t *rt,\n
      \                        p2m_access_t *ra, mfn_t *rmfn,\n                         struct
      domain *ld, gfn_t lgfn, p2m_type_t *lt,\n                         p2m_access_t
      *la, mfn_t *lmfn,\n                         p2m_query_t q, struct two_gfns *rval,
      bool lock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - source
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: assign_pointers
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assign_pointers(dest, source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:473,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:473,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:474,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct two_gfns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: put_two_gfns
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - put_gfn
    linkageType: ''
    returnType: void
    signature: void put_two_gfns(const struct two_gfns *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:482,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:482,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:485,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:485,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:486,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:494,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:495,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:496,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:497,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:497,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 500
    functionName: mem_sharing_lookup
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - get_gpfn_from_mfn
    - mfn_to_page
    - _mfn
    - mfn_valid
    - SHARED_M2P
    - page_get_owner
    - ASSERT
    - read_atomic
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *mem_sharing_lookup(unsigned long mfn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:510,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:512,1
    - Dst: list_for_each_rcu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:514,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:523,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:525,1
    - Dst: mem_sharing_page_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:528,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:530,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:532,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:540,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:542,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:548,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:550,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:551,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:551,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:556,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:556,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:556,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:558,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:559,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:559,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:559,1
    - Dst: rmap_count
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:564,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:566,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:567,1
    - Dst: rmap_seed_iterator
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:576,1
    - Dst: rmap_iterate
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:577,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:583,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:586,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:588,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:592,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:593,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:595,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:597,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:597,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:602,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:605,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:608,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:614,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:616,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:621,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:624,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:628,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 637
    functionName: audit
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached:
    - list_for_each_rcu
    - rmap_count
    - SHARED_M2P
    - page_to_mfn
    - get_gpfn_from_mfn
    - rcu_read_unlock
    - get_gfn_query_unlocked
    - mfn_eq
    - rcu_unlock_domain
    - gdprintk
    - mfn_x
    - rcu_lock_domain_by_id
    - rmap_iterate
    - mem_sharing_page_unlock
    - rcu_read_lock
    - rmap_seed_iterator
    - list_entry
    - page_get_owner
    - mem_sharing_page_lock
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int audit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_is_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:651,1
    - Dst: __vm_event_claim_slot
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:654,1
    - Dst: vm_event_vcpu_pause
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:661,1
    - Dst: vm_event_put_request
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - d
    - gfn
    - allow_sleep
    argTypes:
    - struct domain*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 667
    functionName: mem_sharing_notify_enomem
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - __vm_event_claim_slot
    - vm_event_is_enabled
    - vm_event_vcpu_pause
    - vm_event_put_request
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_notify_enomem(struct domain *d, unsigned long gfn,\n
      \                             bool allow_sleep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 672
    functionName: mem_sharing_get_nr_saved_mfns
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mem_sharing_get_nr_saved_mfns(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 677
    functionName: mem_sharing_get_nr_shared_mfns
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mem_sharing_get_nr_shared_mfns(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:688,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:697,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:706,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:718,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:725,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:726,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:727,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:731,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:734,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - d
    - page
    - expected_refcnt
    - validate_only
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 737
    functionName: page_make_sharable
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - rspin_lock
    - rspin_unlock
    - put_domain
    - page_set_owner
    - page_list_del
    - get_page_and_type
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: int
    signature: "int page_make_sharable(struct domain *d,\n                              struct
      page_info *page,\n                              unsigned int expected_refcnt,\n
      \                             bool validate_only)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:743,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:746,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:750,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:751,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:758,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:759,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:763,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:766,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:769,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:769,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:770,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:772,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:773,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:774,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:775,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - d
    - page
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 780
    functionName: page_make_private
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - get_knownalive_domain
    - page_list_add_tail
    - put_page_and_type
    - nrspin_unlock
    - get_page
    - page_get_owner
    - ASSERT
    - mem_sharing_page_unlock
    - page_set_owner
    - nrspin_lock
    - put_page
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: int
    signature: int page_make_private(struct domain *d, struct page_info *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:786,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:789,1
    - Dst: mem_sharing_page_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:795,1
    - Dst: mem_sharing_lookup
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:798,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:798,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 805
    functionName: __grab_shared_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_x
    - mfn_valid
    - mem_sharing_page_unlock
    - mem_sharing_page_lock
    - mem_sharing_lookup
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *__grab_shared_page(mfn_t mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:812,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:814,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:814,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:818,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:820,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:820,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:821,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: debug_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - page_to_mfn
    - __grab_shared_page
    - mfn_x
    - page_get_owner
    - mem_sharing_page_unlock
    linkageType: ''
    returnType: int
    signature: int debug_mfn(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:835,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:835,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:837,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:838,1
    - Dst: debug_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:840,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:841,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 844
    functionName: debug_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - debug_mfn
    - put_gfn
    - gfn_x
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int debug_gfn(struct domain *d, gfn_t gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_sharing_gref_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:852,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:855,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:860,1
    - Dst: debug_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - ref
    argTypes:
    - struct domain*
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 846
    functionDepth: 5
    functionLinenumber: 846
    functionLinenumberEnd: 864
    functionName: debug_gref
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - mem_sharing_gref_to_gfn
    - gdprintk
    - debug_gfn
    linkageType: ''
    returnType: int
    signature: int debug_gref(struct domain *d, grant_ref_t ref)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:870,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:879,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:879,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:883,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:887,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:889,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:891,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:895,1
    - Dst: p2m_is_sharable
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:900,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:903,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:904,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:909,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:917,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:925,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:927,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:927,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:929,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:934,1
    - Dst: page_make_sharable
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:939,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:952,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:955,1
    - Dst: page_make_private
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:955,1
    - Dst: rmap_init
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:959,1
    - Dst: get_next_handle
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:962,1
    - Dst: mem_sharing_gfn_alloc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:965,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:965,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:967,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:969,1
    - Dst: page_make_private
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:969,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:974,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:974,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:974,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:977,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:980,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:980,1
    - Dst: audit_add_list
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:983,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:987,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:987,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 5
    argNames:
    - d
    - gfn
    - expected_refcnt
    - validate_only
    - phandle
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned int
    - bool
    - shr_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 989
    functionName: nominate_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - rmap_init
    - xmalloc
    - mfn_to_page
    - set_gpfn_from_mfn
    - altp2m_list_lock
    - xfree
    - BUG
    - altp2m_active
    - audit_add_list
    - __grab_shared_page
    - p2m_get_gfn_type_access
    - put_gfn
    - mfn_valid
    - BUG_ON
    - get_next_handle
    - mfn_eq
    - p2m_change_type_one
    - mem_sharing_gfn_alloc
    - p2m_is_sharable
    - mfn_x
    - is_special_page
    - altp2m_list_unlock
    - mem_sharing_page_unlock
    - p2m_is_shared
    - atomic_inc
    - page_make_sharable
    - p2m_get_hostp2m
    - page_make_private
    - gfn_x
    - get_gfn_type_access
    linkageType: ''
    returnType: int
    signature: "int nominate_page(struct domain *d, gfn_t gfn,\n                         unsigned
      int expected_refcnt, bool validate_only,\n                         shr_handle_t
      *phandle)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_two_gfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1004,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1011,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1024,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1024,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1027,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1032,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1035,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1042,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1047,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1050,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1055,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1056,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1062,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1063,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1070,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1071,1
    - Dst: rmap_seed_iterator
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1076,1
    - Dst: rmap_iterate
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1077,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1083,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1083,1
    - Dst: rmap_del
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1088,1
    - Dst: rmap_add
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1089,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1091,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1092,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1093,1
    - Dst: set_shared_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1093,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1094,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1096,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1096,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1097,1
    - Dst: page_sharing_dispose
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1100,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1103,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1104,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1107,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1110,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1113,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1114,1
    - Dst: put_two_gfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1118,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 6
    argNames:
    - sd
    - sgfn
    - sh
    - cd
    - cgfn
    - ch
    argTypes:
    - struct domain*
    - gfn_t
    - shr_handle_t
    - struct domain*
    - gfn_t
    - shr_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 991
    functionDepth: 3
    functionLinenumber: 991
    functionLinenumberEnd: 1120
    functionName: share_pages
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 4
    functionsReached:
    - put_page_and_type
    - put_two_gfns
    - get_page_and_type
    - atomic_dec
    - __grab_shared_page
    - BUG_ON
    - page_sharing_dispose
    - mfn_eq
    - rcu_unlock_domain
    - mfn_x
    - rcu_lock_domain_by_id
    - rmap_iterate
    - rmap_del
    - ASSERT
    - mem_sharing_page_unlock
    - atomic_inc
    - get_two_gfns
    - list_empty
    - rmap_seed_iterator
    - put_page_alloc_ref
    - set_shared_p2m_entry
    - rmap_add
    linkageType: ''
    returnType: int
    signature: "int share_pages(struct domain *sd, gfn_t sgfn, shr_handle_t sh,\n
      \                      struct domain *cd, gfn_t cgfn, shr_handle_t ch)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1154,1
    - Dst: get_two_gfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1157,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1157,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1158,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1162,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1166,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1177,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1184,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1184,1
    - Dst: mem_sharing_gfn_alloc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1185,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1187,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1192,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1192,1
    - Dst: mem_sharing_gfn_destroy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1198,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1199,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1208,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1210,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1215,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1217,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1219,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1221,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1225,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1226,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1232,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1235,1
    - Dst: put_two_gfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1238,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 6
    argNames:
    - sd
    - sgfn
    - sh
    - cd
    - cgfn
    - lock
    argTypes:
    - struct domain*
    - unsigned long
    - shr_handle_t
    - struct domain*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1145
    functionDepth: 4
    functionLinenumber: 1145
    functionLinenumberEnd: 1240
    functionName: add_to_physmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 3
    functionsReached:
    - put_page_and_type
    - mfn_to_page
    - _gfn
    - put_two_gfns
    - get_page_and_type
    - atomic_dec
    - __grab_shared_page
    - p2m_set_entry
    - mfn_valid
    - get_page
    - BUG_ON
    - domain_crash
    - mem_sharing_gfn_alloc
    - ASSERT
    - mem_sharing_page_unlock
    - atomic_inc
    - get_two_gfns
    - p2m_is_paging
    - p2m_get_hostp2m
    - put_page_alloc_ref
    - mem_sharing_gfn_destroy
    - p2m_is_hole
    - put_page
    linkageType: ''
    returnType: int
    signature: "int add_to_physmap(struct domain *sd, unsigned long sgfn, shr_handle_t
      sh,\n                   struct domain *cd, unsigned long cgfn, bool lock)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1268,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1271,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1273,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1278,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1278,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1283,1
    - Dst: __grab_shared_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1286,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1289,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1291,1
    - Dst: rmap_retrieve
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1294,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1295,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1297,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1299,1
    - Dst: rmap_count
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1306,1
    - Dst: mem_sharing_gfn_destroy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1313,1
    - Dst: page_sharing_dispose
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1314,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1316,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1319,1
    - Dst: mem_sharing_gfn_destroy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1328,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1330,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1333,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1335,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1342,1
    - Dst: page_make_private
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1342,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1347,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1351,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1352,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1361,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1361,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1361,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1363,1
    - Dst: set_shared_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1363,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1363,1
    - Dst: mem_sharing_gfn_destroy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1364,1
    - Dst: mem_sharing_page_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1365,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1366,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1369,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1371,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1373,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1377,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1377,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1377,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1383,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1383,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1387,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1387,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1392,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1395,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 3
    argNames:
    - d
    - gfn
    - destroy
    argTypes:
    - struct domain*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1257
    functionDepth: 4
    functionLinenumber: 1257
    functionLinenumberEnd: 1397
    functionName: __mem_sharing_unshare_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached:
    - put_page_and_type
    - rmap_count
    - set_gpfn_from_mfn
    - nestedhvm_enabled
    - alloc_domheap_page
    - rmap_retrieve
    - p2m_unlock
    - atomic_dec
    - BUG
    - page_to_mfn
    - __grab_shared_page
    - put_gfn
    - BUG_ON
    - page_sharing_dispose
    - p2m_change_type_one
    - gdprintk
    - copy_domain_page
    - mfn_x
    - p2m_lock
    - mem_sharing_page_unlock
    - p2m_is_shared
    - atomic_inc
    - get_gfn
    - put_page_alloc_ref
    - page_make_private
    - mem_sharing_gfn_destroy
    - set_shared_p2m_entry
    - unlikely
    - paging_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int __mem_sharing_unshare_page(struct domain *d,\n                               unsigned
      long gfn,\n                               bool destroy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1403,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1409,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1418,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1421,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1421,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1422,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1422,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1425,1
    - Dst: __mem_sharing_unshare_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1425,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1431,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1431,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1433,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1442,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1452,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1399
    functionDepth: 5
    functionLinenumber: 1399
    functionLinenumberEnd: 1454
    functionName: relinquish_shared_pages
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 2
    functionsReached:
    - _gfn
    - p2m_lock
    - struct p2m_domain*::get_entry
    - mfn_valid
    - p2m_unlock
    - BUG_ON
    - ASSERT
    - p2m_is_shared
    - hypercall_preempt_check
    - __mem_sharing_unshare_page
    - struct p2m_domain*::set_entry
    - atomic_read
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int relinquish_shared_pages(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1469,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1469,1
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1475,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1475,1
    - Dst: share_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1482,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1482,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1482,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1483,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1488,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - d
    - cd
    - range
    argTypes:
    - struct domain*
    - struct domain*
    - struct mem_sharing_op_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1456
    functionDepth: 5
    functionLinenumber: 1456
    functionLinenumberEnd: 1505
    functionName: range_share
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached:
    - _gfn
    - share_pages
    - ASSERT
    - hypercall_preempt_check
    - nominate_page
    linkageType: ''
    returnType: int
    signature: "int range_share(struct domain *d, struct domain *cd,\n                       struct
      mem_sharing_op_range *range)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1512,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1512,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1515,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1515,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1518,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - d
    - enable
    - flags
    argTypes:
    - struct domain*
    - bool
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1525
    functionName: mem_sharing_control
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - is_iommu_enabled
    - hap_enabled
    - is_hvm_domain
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_control(struct domain *d, bool enable,\n                                      uint16_t
      flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1542,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1547,1
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1555,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1564,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1566,1
    - Dst: add_to_physmap
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1567,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1568,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1579,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1584,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1587,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1587,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1590,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1597,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1599,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1603,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1604,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1605,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1605,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1607,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1609,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - d
    - gfn
    - unsharing
    argTypes:
    - struct domain*
    - gfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1536
    functionDepth: 5
    functionLinenumber: 1536
    functionLinenumberEnd: 1611
    functionName: mem_sharing_fork_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::set_entry
    - copy_domain_page
    - page_to_mfn
    - set_gpfn_from_mfn
    - put_gfn
    - alloc_domheap_page
    - p2m_lock
    - p2m_is_ram
    - mfn_valid
    - mfn_x
    - p2m_unlock
    - gfn_x
    - get_gfn_query
    - mem_sharing_is_fork
    - nominate_page
    - add_to_physmap
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int mem_sharing_fork_page(struct domain *d, gfn_t gfn, bool unsharing)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_move_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1619,1
    - Dst: vcpu_create
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1627,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1633
    functionName: bring_up_vcpus
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - vcpu_create
    - domain_update_node_affinity
    - cpupool_move_domain
    linkageType: ''
    returnType: int
    signature: int bring_up_vcpus(struct domain *cd, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_nonreg_state
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1639,1
    - Dst: hvm_set_nonreg_state
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d_vcpu
    - cd_vcpu
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1641
    functionName: copy_vcpu_nonreg_state
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - hvm_set_nonreg_state
    - hvm_get_nonreg_state
    linkageType: ''
    returnType: void
    signature: void copy_vcpu_nonreg_state(struct vcpu *d_vcpu, struct vcpu *cd_vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1654,1
    - Dst: map_guest_area
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1655,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1655,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1656,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - cd_area
    - d_area
    - cd_vcpu
    - d
    argTypes:
    - struct guest_area*
    - struct guest_area*
    - struct vcpu*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1659
    functionName: copy_guest_area
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - gfn_to_gaddr
    - PAGE_OFFSET
    - mfn_to_gfn
    - map_guest_area
    linkageType: ''
    returnType: int
    signature: "int copy_guest_area(struct guest_area *cd_area,\n                           const
      struct guest_area *d_area,\n                           struct vcpu *cd_vcpu,\n
      \                          const struct domain *d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1663,1
    - Dst: vcpu_vpmu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1664,1
    - Dst: vpmu_are_all_set
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1667,1
    - Dst: vpmu_allocate_context
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1669,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1677,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1679,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1683,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1683,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1685,1
    - Dst: vpmu_save
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1688,1
    - Dst: vpmu_is_set
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1691,1
    - Dst: vpmu_set
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1692,1
    - Dst: vpmu_reset
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1695,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1697,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - d_vcpu
    - cd_vcpu
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1661
    functionDepth: 4
    functionLinenumber: 1661
    functionLinenumberEnd: 1702
    functionName: copy_vpmu
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - vpmu_save
    - vpmu_reset
    - vpmu_set
    - smp_processor_id
    - on_selected_cpus
    - vcpu_vpmu
    - vpmu_allocate_context
    - vpmu_is_set
    - cpumask_of
    - memcpy
    - vpmu_are_all_set
    linkageType: ''
    returnType: int
    signature: int copy_vpmu(struct vcpu *d_vcpu, struct vcpu *cd_vcpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest_area
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1721,1
    - Dst: copy_guest_area
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1725,1
    - Dst: copy_guest_area
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1729,1
    - Dst: copy_vpmu
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1734,1
    - Dst: hvm_vmtrace_reset
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1738,1
    - Dst: copy_vcpu_nonreg_state
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1704
    functionDepth: 5
    functionLinenumber: 1704
    functionLinenumberEnd: 1749
    functionName: copy_vcpu_settings
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - hvm_vmtrace_reset
    - copy_guest_area
    - copy_vcpu_nonreg_state
    - copy_vpmu
    linkageType: ''
    returnType: int
    signature: int copy_vcpu_settings(struct domain *cd, const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hap_get_allocation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1755,1
    - Dst: hap_get_allocation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1757,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1760,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1761,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1765
    functionName: fork_hap_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - paging_unlock
    - hap_get_allocation
    - hap_set_allocation
    - paging_lock
    linkageType: ''
    returnType: int
    signature: int fork_hap_allocation(struct domain *cd, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tsc_get_info
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1774,1
    - Dst: tsc_set_info
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1767
    functionDepth: 3
    functionLinenumber: 1767
    functionLinenumberEnd: 1777
    functionName: copy_tsc
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - tsc_set_info
    - tsc_get_info
    linkageType: ''
    returnType: void
    signature: void copy_tsc(struct domain *cd, struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1783,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1794,1
    - Dst: hvm_get_param
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1800,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1803,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1804,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1807,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1809,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1812,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1813,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1813,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1815,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1815,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1821,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1824,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1824,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1825,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1825,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1826,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1828,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1828,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1828,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1829,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1829,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1829,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1831,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1833,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1836,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1842,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1845,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1850,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1850,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1850,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1855
    functionName: copy_special_pages
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - copy_domain_page
    - page_to_mfn
    - get_gpfn_from_mfn
    - virt_to_mfn
    - ARRAY_SIZE
    - set_gpfn_from_mfn
    - alloc_domheap_page
    - mfn_x
    - _gfn
    - _mfn
    - gfn_x
    - get_gfn_query_unlocked
    - mfn_eq
    - gfn_eq
    - struct p2m_domain*::set_entry
    - hvm_get_param
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int copy_special_pages(struct domain *cd, struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_vcpu_settings
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1861,1
    - Dst: hvm_copy_context_and_params
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1864,1
    - Dst: copy_special_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1867,1
    - Dst: copy_tsc
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1870,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1871,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1857
    functionDepth: 10
    functionLinenumber: 1857
    functionLinenumberEnd: 1874
    functionName: copy_settings
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - copy_tsc
    - hvm_copy_context_and_params
    - copy_vcpu_settings
    - copy_special_pages
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int copy_settings(struct domain *cd, struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1885,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1887,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1891,1
    - Dst: fork_hap_allocation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1901,1
    - Dst: bring_up_vcpus
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1904,1
    - Dst: copy_settings
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1907,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1913,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1914,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - cd
    - d
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1876
    functionDepth: 11
    functionLinenumber: 1876
    functionLinenumberEnd: 1918
    functionName: fork
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 29
    functionsReached:
    - domain_unpause
    - domain_pause
    - fork_hap_allocation
    - copy_settings
    - bring_up_vcpus
    - put_domain
    - get_domain
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int fork(struct domain *cd, struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1935,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1938,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1940,1
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1946,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1947,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1950,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1951,1
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1964,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1968,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1970,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1972,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1973,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1975,1
    - Dst: copy_settings
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1980,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1989,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - d
    - reset_state
    - reset_memory
    argTypes:
    - struct domain*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1930
    functionDepth: 11
    functionLinenumber: 1930
    functionLinenumberEnd: 1992
    functionName: mem_sharing_fork_reset
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - struct p2m_domain*::set_entry
    - put_page_and_type
    - page_to_mfn
    - page_list_for_each_safe
    - domain_pause
    - put_page_alloc_ref
    - copy_settings
    - rspin_lock
    - rspin_unlock
    - ASSERT
    - mfn_to_gfn
    - nominate_page
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_fork_reset(struct domain *d, bool reset_state,\n                           bool
      reset_memory)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:1994,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2001,1
    - Dst: audit
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2005,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2007,1
    - Dst: xsm_mem_sharing
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2011,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2015,1
    - Dst: mem_sharing_control
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2016,1
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2025,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2025,1
    - Dst: mem_sharing_gref_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2036,1
    - Dst: nominate_page
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2040,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2051,1
    - Dst: xsm_mem_sharing_op
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2056,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2059,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2063,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2065,1
    - Dst: XENMEM_SHARING_OP_FIELD_IS_GREF
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2070,1
    - Dst: XENMEM_SHARING_OP_FIELD_GET_GREF
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2073,1
    - Dst: mem_sharing_gref_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2075,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2079,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2084,1
    - Dst: XENMEM_SHARING_OP_FIELD_IS_GREF
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2086,1
    - Dst: XENMEM_SHARING_OP_FIELD_GET_GREF
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2089,1
    - Dst: mem_sharing_gref_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2091,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2095,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2100,1
    - Dst: share_pages
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2105,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2107,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2117,1
    - Dst: xsm_mem_sharing_op
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2122,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2125,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2129,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2131,1
    - Dst: XENMEM_SHARING_OP_FIELD_IS_GREF
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2136,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2139,1
    - Dst: add_to_physmap
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2148,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2150,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2175,1
    - Dst: xsm_mem_sharing_op
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2184,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2188,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2192,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2194,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2203,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2204,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2206,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2211,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2212,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2219,1
    - Dst: range_share
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2224,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2225,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2229,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2232,1
    - Dst: debug_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2242,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2242,1
    - Dst: debug_gref
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2246,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2260,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2268,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2272,1
    - Dst: mem_sharing_control
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2273,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2275,1
    - Dst: fork
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2279,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2282,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2288,1
    - Dst: mem_sharing_fork_reset
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2308,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2317,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2321,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 1994
    functionDepth: 12
    functionLinenumber: 1994
    functionLinenumberEnd: 2323
    functionName: mem_sharing_memop
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - audit
    - copy_from_guest
    - _gfn
    - debug_gfn
    - XENMEM_SHARING_OP_FIELD_GET_GREF
    - XENMEM_SHARING_OP_FIELD_IS_GREF
    - nominate_page
    - rcu_lock_live_remote_domain_by_id
    - add_to_physmap
    - debug_gref
    - mem_sharing_gref_to_gfn
    - mem_sharing_fork_reset
    - hypercall_create_continuation
    - range_share
    - xsm_mem_sharing_op
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - xsm_mem_sharing
    - mem_sharing_control
    - mem_sharing_enabled
    - domain_get_maximum_gpfn
    - share_pages
    - __copy_to_guest
    - fork
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int mem_sharing_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_sharing_op_t)
      arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mem_sharing_control
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - mec
    argTypes:
    - struct domain*
    - struct xen_domctl_mem_sharing_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2325
    functionDepth: 2
    functionLinenumber: 2325
    functionLinenumberEnd: 2341
    functionName: mem_sharing_domctl
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 1
    functionsReached:
    - mem_sharing_control
    linkageType: ''
    returnType: int
    signature: int mem_sharing_domctl(struct domain *d, struct xen_domctl_mem_sharing_op
      *mec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2345,1
    - Dst: mem_sharing_get_nr_shared_mfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2346,1
    - Dst: mem_sharing_get_nr_saved_mfns
      Src: /src/xen/xen/arch/x86/mm/mem_sharing.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2343
    functionDepth: 1
    functionLinenumber: 2343
    functionLinenumberEnd: 2348
    functionName: arch_dump_shared_mem_info
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_sharing.c
    functionUses: 0
    functionsReached:
    - mem_sharing_get_nr_shared_mfns
    - mem_sharing_get_nr_saved_mfns
    - printk
    linkageType: ''
    returnType: void
    signature: void arch_dump_shared_mem_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mm_rwlock_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:28,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:29,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:30,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:37,1
    - Dst: p2m_pod_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:40,1
    - Dst: p2m_nestedp2m_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:41,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:43,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:43,1
    - Dst: ept_p2m_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:44,1
    - Dst: p2m_pt_init
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - d
    - p2m
    argTypes:
    - struct domain*
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: p2m_initialise
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - p2m_nestedp2m_init
    - p2m_pt_init
    - ept_p2m_init
    - p2m_pod_init
    - using_vmx
    - mm_rwlock_init
    - INIT_PAGE_LIST_HEAD
    - spin_lock_init
    - hap_enabled
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int p2m_initialise(struct domain *d, struct p2m_domain *p2m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:53,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:58,1
    - Dst: p2m_initialise
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:61,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:66,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 70
    functionName: p2m_init_one
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - free_cpumask_var
    - p2m_initialise
    - zalloc_cpumask_var
    - xfree
    linkageType: ''
    returnType: struct p2m_domain
    signature: struct p2m_domain *p2m_init_one(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_free_logdirty
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:74,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:75,1
    - Dst: using_vmx
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:75,1
    - Dst: ept_p2m_uninit
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:76,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:77,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: p2m_free_one
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 1
    functionsReached:
    - free_cpumask_var
    - p2m_free_logdirty
    - ept_p2m_uninit
    - using_vmx
    - xfree
    - hap_enabled
    linkageType: ''
    returnType: void
    signature: void p2m_free_one(struct p2m_domain *p2m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_init_one
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:83,1
    - Dst: p2m_init_logdirty
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:89,1
    - Dst: p2m_free_one
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: p2m_init_hostp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - p2m_init_logdirty
    - p2m_init_one
    - p2m_free_one
    linkageType: ''
    returnType: int
    signature: int p2m_init_hostp2m(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:102,1
    - Dst: p2m_free_one
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: p2m_teardown_hostp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - p2m_free_one
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_teardown_hostp2m(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_init_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:115,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:116,1
    - Dst: p2m_init_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:124,1
    - Dst: p2m_teardown_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:127,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:131,1
    - Dst: p2m_init_altp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:131,1
    - Dst: p2m_teardown_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:134,1
    - Dst: p2m_teardown_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 139
    functionName: p2m_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 1
    functionsReached:
    - p2m_teardown_hostp2m
    - p2m_teardown_nestedp2m
    - p2m_init_nestedp2m
    - hvm_altp2m_supported
    - p2m_init_altp2m
    - p2m_init_hostp2m
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int p2m_init(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:160,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:163,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:163,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:167,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:168,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:170,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:171,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:171,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:174,1
    - Dst: struct domain*::arch::paging::free_page
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:179,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:182,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:190,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - p2m
    - remove_root
    - preempted
    argTypes:
    - struct p2m_domain*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 194
    functionName: p2m_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - clear_domain_page
    - pagetable_get_mfn
    - p2m_lock
    - struct domain*::arch::paging::free_page
    - pagetable_is_null
    - page_list_remove_head
    - pagetable_null
    - page_list_add
    - p2m_unlock
    - ASSERT
    - pagetable_get_page
    - general_preempt_check
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void p2m_teardown(struct p2m_domain *p2m, bool remove_root, bool *preempted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:198,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:200,1
    - Dst: p2m_teardown_altp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:201,1
    - Dst: p2m_teardown_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:206,1
    - Dst: p2m_teardown_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: p2m_final_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - p2m_teardown_hostp2m
    - p2m_teardown_nestedp2m
    - hvm_altp2m_supported
    - p2m_teardown_altp2m
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void p2m_final_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:224,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-basic.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: arch_acquire_resource_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-basic.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - is_pv_domain
    linkageType: ''
    returnType: bool
    signature: bool arch_acquire_resource_check(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/x86/mm/p2m.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: p2m_init_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - rangeset_new
    linkageType: ''
    returnType: int
    signature: int p2m_init_logdirty(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_destroy
      Src: /src/xen/xen/arch/x86/mm/p2m.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: p2m_free_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - rangeset_destroy
    linkageType: ''
    returnType: void
    signature: void p2m_free_logdirty(struct p2m_domain *p2m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:73,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - p2m
    - start
    - end
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: p2m_is_logdirty_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - rangeset_overlaps_range
    - rangeset_contains_range
    linkageType: ''
    returnType: int
    signature: "int p2m_is_logdirty_range(struct p2m_domain *p2m, unsigned long start,\n
      \                         unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct p2m_domain*::change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/p2m.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p2m
    - ot
    - nt
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: change_entry_type_global
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 5
    functionsReached:
    - struct p2m_domain*::change_entry_type_global
    linkageType: ''
    returnType: void
    signature: "void change_entry_type_global(struct p2m_domain *p2m,\n                                     p2m_type_t
      ot, p2m_type_t nt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:96,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:98,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:98,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:98,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:100,1
    - Dst: change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/p2m.c:102,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:105,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m.c:105,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:111,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:115,1
    - Dst: change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/p2m.c:116,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:117,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - d
    - ot
    - nt
    argTypes:
    - struct domain*
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 124
    functionName: p2m_change_entry_type_global
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 4
    functionsReached:
    - altp2m_active
    - p2m_is_changeable
    - mfn_x
    - p2m_lock
    - p2m_unlock
    - ASSERT
    - change_entry_type_global
    - unlikely
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void p2m_change_entry_type_global(struct domain *d,\n                                  p2m_type_t
      ot, p2m_type_t nt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct p2m_domain*::memory_type_changed
      Src: /src/xen/xen/arch/x86/mm/p2m.c:130,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: _memory_type_changed
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - struct p2m_domain*::memory_type_changed
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void _memory_type_changed(struct p2m_domain *p2m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:137,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:146,1
    - Dst: _memory_type_changed
      Src: /src/xen/xen/arch/x86/mm/p2m.c:148,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:151,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m.c:151,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:157,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:161,1
    - Dst: _memory_type_changed
      Src: /src/xen/xen/arch/x86/mm/p2m.c:162,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:163,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 172
    functionName: p2m_memory_type_changed
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - altp2m_active
    - mfn_x
    - p2m_lock
    - p2m_unlock
    - unlikely
    - _memory_type_changed
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_memory_type_changed(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:178,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:185,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/p2m.c:209,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - d
    - flags
    - s
    argTypes:
    - struct domain*
    - unsigned int
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 222
    functionName: p2m_set_ioreq_server
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - spin_lock
    - read_atomic
    - spin_unlock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_set_ioreq_server(struct domain *d,\n                         unsigned
      int flags,\n                         struct ioreq_server *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:227,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:230,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - d
    - flags
    argTypes:
    - struct domain*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 237
    functionName: p2m_get_ioreq_server
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - spin_lock
    - spin_unlock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct ioreq_server
    signature: "struct ioreq_server *p2m_get_ioreq_server(struct domain *d,\n                                          unsigned
      int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:241,1
    - Dst: struct p2m_domain*::enable_hardware_log_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: p2m_enable_hardware_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::enable_hardware_log_dirty
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_enable_hardware_log_dirty(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:249,1
    - Dst: struct p2m_domain*::disable_hardware_log_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: p2m_disable_hardware_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::disable_hardware_log_dirty
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_disable_hardware_log_dirty(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:257,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:261,1
    - Dst: struct p2m_domain*::flush_hardware_cached_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:262,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 265
    functionName: p2m_flush_hardware_cached_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_unlock
    - p2m_lock
    - struct p2m_domain*::flush_hardware_cached_dirty
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_flush_hardware_cached_dirty(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct p2m_domain*::tlb_flush
      Src: /src/xen/xen/arch/x86/mm/p2m.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: p2m_tlb_flush_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 3
    functionsReached:
    - struct p2m_domain*::tlb_flush
    linkageType: ''
    returnType: void
    signature: void p2m_tlb_flush_sync(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mm_write_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:289,1
    - Dst: struct p2m_domain*::tlb_flush
      Src: /src/xen/xen/arch/x86/mm/p2m.c:290,1
    - Dst: mm_write_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: p2m_unlock_and_tlb_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - struct p2m_domain*::tlb_flush
    - mm_write_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_unlock_and_tlb_flush(struct p2m_domain *p2m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gfn_lock_if
      Src: /src/xen/xen/arch/x86/mm/p2m.c:306,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:308,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/mm/p2m.c:311,1
    - Dst: mem_sharing_fork_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:312,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:313,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:316,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:318,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:318,1
    - Dst: mem_sharing_unshare_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:323,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:323,1
    - Dst: mem_sharing_notify_enomem
      Src: /src/xen/xen/arch/x86/mm/p2m.c:324,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:324,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:325,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:328,1
    - Dst: p2m_is_broken
      Src: /src/xen/xen/arch/x86/mm/p2m.c:328,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m.c:333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 7
    argNames:
    - p2m
    - gfn
    - t
    - a
    - q
    - page_order
    - locked
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 337
    functionName: p2m_get_gfn_type_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 4
    functionsReached:
    - mem_sharing_unshare_page
    - mem_sharing_notify_enomem
    - p2m_is_broken
    - p2m_is_hole
    - struct p2m_domain*::get_entry
    - gfn_x
    - gfn_lock_if
    - ASSERT
    - p2m_is_shared
    - domain_crash
    - unlikely
    - p2m_is_hostp2m
    - mem_sharing_fork_page
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t p2m_get_gfn_type_access(struct p2m_domain *p2m, gfn_t gfn,\n
      \                             p2m_type_t *t, p2m_access_t *a, p2m_query_t q,\n
      \                             unsigned int *page_order, bool locked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:341,1
    - Dst: gfn_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:341,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: p2m_put_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - gfn_unlock
    - ASSERT
    - gfn_locked_by_me
    linkageType: ''
    returnType: void
    signature: void p2m_put_gfn(struct p2m_domain *p2m, gfn_t gfn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:351,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:354,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:356,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:358,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:361,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:364,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/x86/mm/p2m.c:364,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/x86/mm/p2m.c:366,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:370,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:372,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - d
    - mfn
    - t
    argTypes:
    - struct domain*
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 378
    functionName: get_page_from_mfn_and_type
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - page_get_owner_and_reference
    - p2m_is_ram
    - mfn_valid
    - likely
    - get_page
    - p2m_is_shared
    - unlikely
    - put_page
    - p2m_is_foreign
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_mfn_and_type(\n    const struct domain
      *d, mfn_t mfn, p2m_type_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:394,1
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:394,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:397,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/p2m.c:398,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:399,1
    - Dst: get_page_from_mfn_and_type
      Src: /src/xen/xen/arch/x86/mm/p2m.c:400,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:402,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:408,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/p2m.c:408,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m.c:408,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/arch/x86/mm/p2m.c:409,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/p2m.c:414,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:414,1
    - Dst: get_page_from_mfn_and_type
      Src: /src/xen/xen/arch/x86/mm/p2m.c:415,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:416,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - p2m
    - gfn
    - t
    - a
    - q
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 419
    functionName: p2m_get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - get_page_from_mfn_and_type
    - p2m_get_gfn_type_access
    - p2m_read_unlock
    - put_gfn
    - p2m_is_ram
    - likely
    - gfn_x
    - get_gfn_type_access
    - p2m_is_shared
    - p2m_locked_by_me
    - mem_sharing_is_fork
    - p2m_read_lock
    - p2m_is_paging
    - p2m_is_pod
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *p2m_get_page_from_gfn(\n    struct p2m_domain *p2m,
      gfn_t gfn,\n    p2m_type_t *t, p2m_access_t *a, p2m_query_t q)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m.c:425,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:429,1
    - Dst: gfn_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:429,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:433,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:433,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:434,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:442,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:446,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:447,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 6
    argNames:
    - p2m
    - gfn
    - mfn
    - page_order
    - p2mt
    - p2ma
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t
    - unsigned int
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 453
    functionName: p2m_set_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 7
    functionsReached:
    - gfn_locked_by_me
    - mfn_x
    - mfn_add
    - gfn_x
    - ASSERT
    - mfn_eq
    - struct p2m_domain*::set_entry
    - hap_enabled
    - gfn_add
    linkageType: ''
    returnType: int
    signature: "int p2m_set_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn,\n
      \                 unsigned int page_order, p2m_type_t p2mt, p2m_access_t p2ma)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:459,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:460,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:461,1
    - Dst: struct p2m_domain*::domain::arch::paging::alloc_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:462,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/p2m.c:466,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:467,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:468,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:469,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - p2m
    - level
    argTypes:
    - struct p2m_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 473
    functionName: p2m_alloc_ptp
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::domain::arch::paging::alloc_page
    - page_list_add_tail
    - page_to_mfn
    - BUILD_BUG_ON
    - ASSERT
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t p2m_alloc_ptp(struct p2m_domain *p2m, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:477,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:478,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:479,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:480,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/p2m.c:482,1
    - Dst: struct p2m_domain*::domain::arch::paging::free_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - p2m
    - pg
    argTypes:
    - struct p2m_domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 486
    functionName: p2m_free_ptp
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::domain::arch::paging::free_page
    - ASSERT
    - page_list_del
    linkageType: ''
    returnType: void
    signature: void p2m_free_ptp(struct p2m_domain *p2m, struct page_info *pg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:501,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:503,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/p2m.c:503,1
    - Dst: P2M_ERROR
      Src: /src/xen/xen/arch/x86/mm/p2m.c:505,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:506,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:510,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:510,1
    - Dst: P2M_ERROR
      Src: /src/xen/xen/arch/x86/mm/p2m.c:512,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:513,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:517,1
    - Dst: p2m_alloc_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m.c:519,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:520,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:522,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:526,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 530
    functionName: p2m_alloc_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_eq
    - p2m_alloc_ptp
    - pagetable_from_mfn
    - P2M_ERROR
    - p2m_lock
    - p2m_get_pagetable
    - p2m_unlock
    - domain_tot_pages
    - P2M_PRINTK
    - pagetable_get_pfn
    - p2m_is_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_alloc_table(struct p2m_domain *p2m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:541,1
    - Dst: gfn_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:541,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:542,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:542,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:542,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:547,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:547,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:550,1
    - Dst: p2m_is_broken
      Src: /src/xen/xen/arch/x86/mm/p2m.c:550,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:551,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:551,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:551,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/mm/p2m.c:552,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:552,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:556,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:559,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:563,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:563,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:564,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:564,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:566,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:566,1
    - Dst: paging_mark_pfn_clean
      Src: /src/xen/xen/arch/x86/mm/p2m.c:567,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:567,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:567,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:572,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:574,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:576,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:576,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:586,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:586,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/mm/p2m.c:587,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:587,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:587,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:589,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:589,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:589,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:590,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:590,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:590,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 4
    argNames:
    - p2m
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 595
    functionName: p2m_remove_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - _pfn
    - set_gpfn_from_mfn
    - ioreq_request_mapcache_invalidate
    - p2m_is_special
    - paging_mark_pfn_clean
    - likely
    - p2m_set_entry
    - mfn_valid
    - mfn_eq
    - gfn_add
    - mfn_x
    - struct p2m_domain*::get_entry
    - ASSERT
    - paging_mark_pfn_dirty
    - p2m_is_shared
    - gfn_locked_by_me
    - p2m_is_broken
    - P2M_DEBUG
    - mfn_add
    - p2m_is_hole
    - gfn_x
    - p2m_is_any_ram
    linkageType: ''
    returnType: int
    signature: "int p2m_remove_entry(struct p2m_domain *p2m, gfn_t gfn, mfn_t mfn,\n
      \                unsigned int page_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:601,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:604,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:606,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:610,1
    - Dst: p2m_remove_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:611,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 615
    functionName: p2m_remove_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - gfn_unlock
    - paging_mode_translate
    - gfn_lock
    - p2m_remove_entry
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_remove_page(struct domain *d, gfn_t gfn, mfn_t mfn,\n                unsigned
      int page_order)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:621,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:630,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:632,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/x86/mm/p2m.c:637,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:640,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:642,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:646,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:648,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:648,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:648,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:653,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:653,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:655,1
    - Dst: mem_sharing_unshare_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:658,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:658,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:661,1
    - Dst: mem_sharing_notify_enomem
      Src: /src/xen/xen/arch/x86/mm/p2m.c:675,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:675,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:678,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:678,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:680,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:680,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:682,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:685,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:686,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:688,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:689,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:690,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m.c:691,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:695,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/mm/p2m.c:695,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:697,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:697,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:698,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:698,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m.c:700,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/p2m.c:706,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/p2m.c:709,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m.c:718,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:718,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:718,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:723,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:724,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:724,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:725,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:730,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:730,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:731,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:731,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:732,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:732,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:736,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:737,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:737,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:737,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:738,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:738,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:739,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:740,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/mm/p2m.c:740,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:742,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:742,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:743,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:744,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:744,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:745,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:745,1
    - Dst: p2m_remove_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:746,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:753,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:754,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/mm/p2m.c:756,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:760,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:760,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:760,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:761,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:761,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:762,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:762,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:762,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:775,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:775,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m.c:776,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:778,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:781,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:781,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/mm/p2m.c:782,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:784,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:784,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:784,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:785,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:785,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:785,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:787,1
    - Dst: p2m_is_paged
      Src: /src/xen/xen/arch/x86/mm/p2m.c:787,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:789,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:789,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:790,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:790,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:790,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:797,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:799,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:800,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:804,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 97
    argCount: 5
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 807
    functionName: p2m_add_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 3
    functionsReached:
    - mfn_to_page
    - set_gpfn_from_mfn
    - _pfn
    - _gfn
    - p2m_is_special
    - likely
    - p2m_unlock
    - atomic_dec
    - pod_lock
    - p2m_set_entry
    - pod_unlock
    - mfn_valid
    - BUG_ON
    - p2m_is_grant
    - printk
    - mfn_eq
    - mfn_to_gfn
    - domain_crash
    - gfn_add
    - gdprintk
    - mem_sharing_notify_enomem
    - mfn_x
    - p2m_lock
    - struct p2m_domain*::get_entry
    - ASSERT
    - paging_mark_pfn_dirty
    - p2m_is_shared
    - p2m_is_paging
    - p2m_remove_entry
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    - mem_sharing_unshare_page
    - P2M_DEBUG
    - p2m_is_ram
    - mfn_add
    - gfn_x
    - paging_mode_translate
    - page_get_owner
    - gfn_eq
    - p2m_is_foreign
    - p2m_is_paged
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int p2m_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,\n             unsigned
      int page_order, p2m_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:819,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:821,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:824,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:824,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:824,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:826,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:828,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:829,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:830,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - d
    - gfn_l
    - ot
    - nt
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 837
    functionName: p2m_change_type_one
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 6
    functionsReached:
    - p2m_set_entry
    - gfn_unlock
    - _gfn
    - p2m_is_special
    - struct p2m_domain*::get_entry
    - likely
    - BUG_ON
    - gfn_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_change_type_one(struct domain *d, unsigned long gfn_l,\n                        p2m_type_t
      ot, p2m_type_t nt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:846,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:864,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:866,1
    - Dst: p2m_is_altp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:875,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m.c:876,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:894,1
    - Dst: struct p2m_domain*::change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/p2m.c:896,1
    - Dst: struct p2m_domain*::change_entry_type_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:898,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:902,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m.c:904,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:912,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:916,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:923,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m.c:925,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 5
    argNames:
    - p2m
    - start
    - end_exclusive
    - ot
    - nt
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - unsigned long
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 927
    functionName: change_type_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::change_entry_type_global
    - rangeset_remove_range
    - p2m_is_altp2m
    - struct p2m_domain*::change_entry_type_range
    - min
    - ASSERT
    - rangeset_add_range
    - printk
    - unlikely
    - domain_crash
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void change_type_range(struct p2m_domain *p2m,\n                              unsigned
      long start, unsigned long end_exclusive,\n                              p2m_type_t
      ot, p2m_type_t nt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:933,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:935,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:936,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:936,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:936,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:938,1
    - Dst: change_type_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:941,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:944,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m.c:944,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:950,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:954,1
    - Dst: change_type_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:955,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:956,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m.c:963,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:964,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - d
    - start
    - end
    - ot
    - nt
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 929
    functionDepth: 3
    functionLinenumber: 929
    functionLinenumberEnd: 967
    functionName: p2m_change_type_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - altp2m_active
    - p2m_is_changeable
    - mfn_x
    - p2m_lock
    - nestedhvm_enabled
    - change_type_range
    - p2m_unlock
    - ASSERT
    - unlikely
    - p2m_flush_nestedp2m
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void p2m_change_type_range(struct domain *d,\n                           unsigned
      long start, unsigned long end,\n                           p2m_type_t ot, p2m_type_t
      nt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:978,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m.c:982,1
    - Dst: struct p2m_domain*::recalc
      Src: /src/xen/xen/arch/x86/mm/p2m.c:985,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - p2m
    - first_gfn
    - max_nr
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1004
    functionName: finish_type_change
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - gfn_x
    - min
    - gdprintk
    - struct p2m_domain*::recalc
    linkageType: ''
    returnType: int
    signature: "int finish_type_change(struct p2m_domain *p2m,\n                              gfn_t
      first_gfn, unsigned long max_nr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1009,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1012,1
    - Dst: finish_type_change
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1014,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1020,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1020,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1026,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1030,1
    - Dst: finish_type_change
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1031,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1032,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1042,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - d
    - first_gfn
    - max_nr
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1045
    functionName: p2m_finish_type_change
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - altp2m_active
    - mfn_x
    - p2m_lock
    - p2m_unlock
    - finish_type_change
    - unlikely
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_finish_type_change(struct domain *d,\n                           gfn_t
      first_gfn, unsigned long max_nr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1062,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1064,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1066,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1068,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1072,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1073,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1076,1
    - Dst: p2m_is_special
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1079,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1082,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1084,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1085,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1088,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1089,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1090,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1096,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1101,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1101,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1102,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1103,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1105,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1106,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1119,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1119,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1122,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1122,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1126,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1128,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1128,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1128,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1129,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1129,1
    - Dst: paging_mark_pfn_clean
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1130,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1130,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1130,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1132,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1134,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1136,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1137,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1139,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1144,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1150,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1150,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1150,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1151,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1151,1
    - Dst: paging_mark_pfn_clean
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1152,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1152,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1152,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1155,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1157,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1159,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1161,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1162,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1164,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 6
    argNames:
    - d
    - gfn_l
    - mfn
    - order
    - gfn_p2mt
    - access
    argTypes:
    - struct domain*
    - unsigned long
    - mfn_t
    - unsigned int
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1167
    functionName: set_typed_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - _pfn
    - set_gpfn_from_mfn
    - _gfn
    - p2m_is_special
    - paging_mark_pfn_clean
    - ioreq_request_mapcache_invalidate
    - pod_lock
    - p2m_set_entry
    - pod_unlock
    - gfn_unlock
    - mfn_valid
    - BUG_ON
    - gfn_lock
    - printk
    - mfn_eq
    - domain_crash
    - gfn_add
    - gdprintk
    - mfn_x
    - struct p2m_domain*::get_entry
    - ASSERT
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    - P2M_DEBUG
    - mfn_add
    - p2m_is_ram
    - gfn_x
    - paging_mode_translate
    - unlikely
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int set_typed_p2m_entry(struct domain *d, unsigned long gfn_l,\n                               mfn_t
      mfn, unsigned int order,\n                               p2m_type_t gfn_p2mt,
      p2m_access_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1173,1
    - Dst: arch_acquire_resource_check
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1173,1
    - Dst: set_typed_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1175,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - fd
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - struct domain*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1177
    functionName: set_foreign_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - set_typed_p2m_entry
    - arch_acquire_resource_check
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,\n
      \                         unsigned long gfn, mfn_t mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1183,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1183,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1184,1
    - Dst: set_typed_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1187,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1187,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1189
    functionName: set_mmio_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 3
    functionsReached:
    - mfn_x
    - gfn_x
    - rangeset_overlaps_range
    - set_typed_p2m_entry
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int set_mmio_p2m_entry(struct domain *d, gfn_t gfn, mfn_t mfn,\n                       unsigned
      int order)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1202,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1207,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1209,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1212,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1213,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1221,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1223,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1227,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1228,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1230,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1231,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - d
    - gfn_l
    - mfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1238
    functionName: clear_mmio_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - p2m_set_entry
    - gfn_unlock
    - _gfn
    - mfn_x
    - struct p2m_domain*::get_entry
    - paging_mode_translate
    - gfn_lock
    - mfn_eq
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int clear_mmio_p2m_entry(struct domain *d, unsigned long gfn_l,\n
      \                               mfn_t mfn, unsigned int order)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1245,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1247,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1250,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1252,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1256,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1258,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1261,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1261,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1263,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1271,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1274,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1277,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - d
    - gfn_l
    - p2ma
    - flag
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_access_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1279
    functionName: p2m_add_identity_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_set_entry
    - gfn_unlock
    - _gfn
    - _mfn
    - mfn_x
    - struct p2m_domain*::get_entry
    - paging_mode_translate
    - gfn_lock
    - printk
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_add_identity_entry(struct domain *d, unsigned long gfn_l,\n
      \                          p2m_access_t p2ma, unsigned int flag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1285,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1287,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1290,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1292,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1296,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1298,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1299,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1301,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1303,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1307,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1309,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1310,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - d
    - gfn_l
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1317
    functionName: p2m_remove_identity_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_set_entry
    - gfn_unlock
    - _gfn
    - mfn_x
    - struct p2m_domain*::get_entry
    - paging_mode_translate
    - gfn_lock
    - printk
    - mfn_eq
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_remove_identity_entry(struct domain *d, unsigned long gfn_l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1324,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1326,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1332,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1335,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1336,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1339,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1339,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1340,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1340,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1343,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1343,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1346,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1346,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1348,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1348,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1349,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1351,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1353,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1355,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - d
    - gfn_l
    - mfn
    argTypes:
    - struct domain*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1322
    functionDepth: 3
    functionLinenumber: 1322
    functionLinenumberEnd: 1357
    functionName: set_shared_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - gdprintk
    - p2m_set_entry
    - mfn_to_page
    - set_gpfn_from_mfn
    - gfn_unlock
    - _gfn
    - mfn_x
    - P2M_DEBUG
    - struct p2m_domain*::get_entry
    - mfn_valid
    - paging_mode_translate
    - gfn_lock
    - ASSERT
    - p2m_is_shared
    - read_atomic
    - get_gfn_query_unlocked
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int set_shared_p2m_entry(struct domain *d, unsigned long gfn_l, mfn_t
      mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1364,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1366,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1366,1
    - Dst: list_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1369,1
    - Dst: list_move
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - p2m
    argTypes:
    - struct domain*
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1374
    functionName: p2m_getlru_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - list_move
    - list_entry
    - ASSERT
    - list_empty
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct p2m_domain
    signature: 'struct p2m_domain *

      p2m_getlru_nestedp2m(struct domain *d, struct p2m_domain *p2m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1383,1
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1383,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1389,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1389,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1392,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1392,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1393,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1393,1
    - Dst: p2m_is_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1396,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1404,1
    - Dst: nestedhvm_vmcx_flushtlb
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1405,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1408,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1408,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1409,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1412,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1413,1
    - Dst: struct domain*::arch::paging::free_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1416,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1419
    functionName: p2m_flush_table_locked
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - clear_domain_page
    - pagetable_get_mfn
    - mfn_to_page
    - nestedhvm_enabled
    - struct domain*::arch::paging::free_page
    - p2m_get_pagetable
    - page_list_remove_head
    - page_list_add
    - ASSERT
    - p2m_locked_by_me
    - page_list_empty
    - p2m_is_hostp2m
    - p2m_is_nestedp2m
    - nestedhvm_vmcx_flushtlb
    linkageType: ''
    returnType: void
    signature: void p2m_flush_table_locked(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1425,1
    - Dst: p2m_flush_table_locked
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1426,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1428
    functionName: p2m_flush_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_flush_table_locked
    - p2m_lock
    - p2m_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_flush_table(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1433,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1434,1
    - Dst: p2m_flush_table
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1435,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - p2m
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1430
    functionDepth: 4
    functionLinenumber: 1430
    functionLinenumberEnd: 1437
    functionName: p2m_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - hvm_asid_flush_vcpu
    - p2m_flush_table
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void p2m_flush(struct vcpu *v, struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1448,1
    - Dst: p2m_flush_table_locked
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1449,1
    - Dst: p2m_flush_table
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1439
    functionDepth: 4
    functionLinenumber: 1439
    functionLinenumberEnd: 1453
    functionName: p2m_flush_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 4
    functionsReached:
    - p2m_flush_table_locked
    - p2m_locked_by_me
    - p2m_flush_table
    linkageType: ''
    returnType: void
    signature: void p2m_flush_nestedp2m(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedp2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1463,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1467,1
    - Dst: p2m_flush_table_locked
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1470,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1471,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1474,1
    - Dst: nestedp2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - v
    - np2m_base
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1455
    functionDepth: 3
    functionLinenumber: 1455
    functionLinenumberEnd: 1477
    functionName: np2m_flush_base
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - nestedp2m_lock
    - p2m_lock
    - p2m_unlock
    - nestedp2m_unlock
    - p2m_flush_table_locked
    linkageType: ''
    returnType: void
    signature: void np2m_flush_base(struct vcpu *v, unsigned long np2m_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1481,1
    - Dst: p2m_getlru_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1485,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - p2m
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1491
    functionName: assign_np2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - p2m_getlru_nestedp2m
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void assign_np2m(struct vcpu *v, struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1495,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1497
    functionName: nvcpu_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - hvm_asid_flush_vcpu
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void nvcpu_flush(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1502,1
    - Dst: nhvm_vcpu_p2m_base
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1505,1
    - Dst: nestedp2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1515,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1519,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1531,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1533,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1540,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1545,1
    - Dst: p2m_getlru_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1550,1
    - Dst: p2m_flush_table
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1551,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1552,1
    - Dst: nvcpu_flush
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1556,1
    - Dst: assign_np2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1558,1
    - Dst: nestedp2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1559,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1499
    functionDepth: 4
    functionLinenumber: 1499
    functionLinenumberEnd: 1562
    functionName: p2m_get_nestedp2m_locked
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - nestedp2m_lock
    - assign_np2m
    - p2m_lock
    - nhvm_vcpu_p2m_base
    - p2m_unlock
    - p2m_flush_table
    - nvcpu_flush
    - cpumask_clear_cpu
    - nestedp2m_unlock
    - p2m_getlru_nestedp2m
    - vcpu_nestedhvm
    linkageType: ''
    returnType: struct p2m_domain
    signature: 'struct p2m_domain *

      p2m_get_nestedp2m_locked(struct vcpu *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_nestedp2m_locked
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1566,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1570
    functionName: p2m_get_nestedp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_get_nestedp2m_locked
    - p2m_unlock
    linkageType: ''
    returnType: struct p2m_domain
    signature: struct p2m_domain *p2m_get_nestedp2m(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_is_n2
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1575,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1576,1
    - Dst: p2m_get_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1572
    functionDepth: 6
    functionLinenumber: 1572
    functionLinenumberEnd: 1579
    functionName: p2m_get_p2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - nestedhvm_is_n2
    - p2m_get_nestedp2m
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct p2m_domain
    signature: 'struct p2m_domain *

      p2m_get_p2m(struct vcpu *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1584,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1587,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1589,1
    - Dst: nestedhvm_vcpu_in_guestmode
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1590,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1591,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1599,1
    - Dst: nhvm_vcpu_p2m_base
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1600,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1608,1
    - Dst: hvm_asid_flush_core
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1615,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1616,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1619,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1621,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - dir
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1623
    functionName: np2m_schedule
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - nestedhvm_paging_mode_hap
    - nestedhvm_enabled
    - p2m_lock
    - nhvm_vcpu_p2m_base
    - p2m_unlock
    - ASSERT
    - cpumask_set_cpu
    - cpumask_clear_cpu
    - nestedhvm_vcpu_in_guestmode
    - hvm_asid_flush_core
    - vcpu_nestedhvm
    linkageType: ''
    returnType: void
    signature: void np2m_schedule(int dir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1629,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1630,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1632,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1632,1
    - Dst: nestedhvm_is_n2
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1632,1
    - Dst: p2m_get_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1648,1
    - Dst: paging_get_nestedmode
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1649,1
    - Dst: struct paging_mode*::gva_to_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1650,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1652,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1653,1
    - Dst: nhvm_hap_walk_L1_p2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1655,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1656,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1659,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1661,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1667,1
    - Dst: struct paging_mode*::gva_to_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - v
    - va
    - pfec
    argTypes:
    - struct vcpu*
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1625
    functionDepth: 6
    functionLinenumber: 1625
    functionLinenumberEnd: 1674
    functionName: paging_gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 5
    functionsReached:
    - is_hvm_vcpu
    - nestedhvm_is_n2
    - p2m_get_hostp2m
    - paddr_to_pfn
    - struct paging_mode*::gva_to_gfn
    - gfn_x
    - nhvm_hap_walk_L1_p2m
    - pfn_to_paddr
    - ASSERT
    - paging_get_nestedmode
    - paging_get_hostmode
    - p2m_get_nestedp2m
    - paging_mode_hap
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long paging_gva_to_gfn(struct vcpu *v,\n                                unsigned
      long va,\n                                uint32_t *pfec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1685,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 3
    argNames:
    - d
    - start_fn
    - nr
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1676
    functionDepth: 1
    functionLinenumber: 1676
    functionLinenumberEnd: 1702
    functionName: mmio_order
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - hap_enabled
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int mmio_order(const struct domain *d,\n                               unsigned
      long start_fn, unsigned long nr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1715,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1717,1
    - Dst: mmio_order
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1725,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1725,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1725,1
    - Dst: set_mmio_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1728,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1728,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1729,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1732,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1706
    functionDepth: 3
    functionLinenumber: 1706
    functionLinenumberEnd: 1739
    functionName: map_mmio_regions
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - mmio_order
    - mfn_x
    - mfn_add
    - set_mmio_p2m_entry
    - gfn_x
    - paging_mode_translate
    - ASSERT
    - ASSERT_UNREACHABLE
    - gfn_add
    linkageType: ''
    returnType: int
    signature: "int map_mmio_regions(struct domain *d,\n                     gfn_t
      start_gfn,\n                     unsigned long nr,\n                     mfn_t
      mfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1750,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1752,1
    - Dst: mmio_order
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1760,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1760,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1760,1
    - Dst: clear_mmio_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1763,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1763,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1764,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1767,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1741
    functionDepth: 2
    functionLinenumber: 1741
    functionLinenumberEnd: 1774
    functionName: unmap_mmio_regions
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 1
    functionsReached:
    - mmio_order
    - clear_mmio_p2m_entry
    - mfn_x
    - mfn_add
    - gfn_x
    - paging_mode_translate
    - ASSERT
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int unmap_mmio_regions(struct domain *d,\n                       gfn_t
      start_gfn,\n                       unsigned long nr,\n                       mfn_t
      mfn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1791,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1793,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1796,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1798,1
    - Dst: pod_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1799,1
    - Dst: struct p2m_domain*::audit_p2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1802,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1806,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1807,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1809,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1809,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1811,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1813,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1817,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1822,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1826,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1831,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1833,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1838,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1839,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1842,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1844,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1845,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1846,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1846,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1851,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1853,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1853,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1855,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1856,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1858,1
    - Dst: pod_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1860,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1861,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1863,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1865,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1868,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1870,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - d
    - orphans
    - m2p_bad
    - p2m_bad
    argTypes:
    - struct domain*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1877
    functionName: audit_p2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_put_gfn
    - set_gpfn_from_mfn
    - struct p2m_domain*::audit_p2m
    - _gfn
    - SHARED_M2P
    - nrspin_unlock
    - p2m_unlock
    - P2M_PRINTK
    - pod_lock
    - page_to_mfn
    - get_gpfn_from_mfn
    - pod_unlock
    - mfn_valid
    - page_list_for_each
    - mfn_x
    - p2m_lock
    - p2m_get_hostp2m
    - page_get_owner
    - paging_mode_translate
    - WARN
    - nrspin_lock
    - get_gfn_type_access
    linkageType: ''
    returnType: void
    signature: "void audit_p2m(struct domain *d,\n               uint64_t *orphans,\n
      \              uint64_t *m2p_bad,\n               uint64_t *p2m_bad)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: arch_acquire_resource_check
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1905,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1909,1
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1912,1
    - Dst: xsm_map_gmfn_foreign
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1921,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1929,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1936,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1936,1
    - Dst: p2m_is_hole
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1936,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1941,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1944,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1945,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1947,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1947,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1949,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1949,1
    - Dst: guest_remove_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1952,1
    - Dst: set_foreign_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1961,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1963,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1965,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1973,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1976,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/p2m.c:1980,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - tdom
    - fgfn
    - gpfn
    - foreigndom
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1896
    functionDepth: 3
    functionLinenumber: 1896
    functionLinenumberEnd: 1983
    functionName: p2m_add_foreign
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - rcu_lock_remote_domain_by_id
    - mfn_to_page
    - _gfn
    - arch_acquire_resource_check
    - p2m_remove_page
    - page_to_mfn
    - put_gfn
    - mfn_valid
    - rcu_unlock_domain
    - get_page_from_gfn
    - guest_remove_page
    - xsm_map_gmfn_foreign
    - gdprintk
    - set_foreign_p2m_entry
    - mfn_x
    - is_special_page
    - p2m_is_shared
    - get_gfn
    - rcu_lock_domain
    - p2m_is_ram
    - p2m_is_hole
    - put_page
    linkageType: ''
    returnType: int
    signature: "int p2m_add_foreign(struct domain *tdom, unsigned long fgfn,\n                           unsigned
      long gpfn, domid_t foreigndom)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2003,1
    - Dst: gnttab_map_frame
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2007,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2011,1
    - Dst: get_gfn_unshare
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2017,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2027,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2028,1
    - Dst: get_page_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2030,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2031,1
    - Dst: p2m_add_foreign
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2037,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2037,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2040,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2057,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2057,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2060,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2060,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2061,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2061,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2071,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2073,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2073,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2075,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2076,1
    - Dst: guest_remove_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2078,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2078,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2082,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2082,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2083,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2083,1
    - Dst: p2m_add_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2087,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2090,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2090,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2100,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2109,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 5
    argNames:
    - d
    - space
    - extra
    - idx
    - gfn
    argTypes:
    - struct domain*
    - unsigned int
    - union add_to_physmap_extra
    - unsigned long
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 1985
    functionDepth: 4
    functionLinenumber: 1985
    functionLinenumberEnd: 2112
    functionName: xenmem_add_to_physmap_one
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - mfn_to_page
    - _gfn
    - SHARED_M2P
    - p2m_remove_page
    - p2m_add_foreign
    - get_gpfn_from_mfn
    - put_gfn
    - mfn_valid
    - mfn_eq
    - guest_remove_page
    - mfn_x
    - is_special_page
    - ASSERT
    - p2m_is_shared
    - get_gfn
    - get_page_from_mfn
    - p2m_add_page
    - get_gfn_unshare
    - gfn_x
    - unlikely
    - gfn_eq
    - put_page
    - gnttab_map_frame
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap_one(\n    struct domain *d,\n    unsigned
      int space,\n    union add_to_physmap_extra extra,\n    unsigned long idx,\n
      \   gfn_t gfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2120,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2124,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2127,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2129,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2135,1
    - Dst: _get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2141,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2141,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2142,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2142,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2146,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2147,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2149,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2149,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2153,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2156,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2163,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2170,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2173,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2118
    functionDepth: 3
    functionLinenumber: 2118
    functionLinenumberEnd: 2176
    functionName: relinquish_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_set_entry
    - _gfn
    - p2m_lock
    - IS_ALIGNED
    - IS_ENABLED
    - p2m_unlock
    - paging_mode_translate
    - BUG_ON
    - ASSERT
    - hypercall_preempt_check
    - printk
    - _get_gfn_type_access
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int relinquish_p2m_mapping(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2181,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2195,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2198,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2201,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - d
    - begin_pfn
    - nr
    - dirty_bitmap
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2178
    functionDepth: 3
    functionLinenumber: 2178
    functionLinenumberEnd: 2204
    functionName: p2m_log_dirty_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    - p2m_lock
    - p2m_unlock
    - p2m_change_type_one
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: "void p2m_log_dirty_range(struct domain *d, unsigned long begin_pfn,\n
      \                        unsigned long nr, uint8_t *dirty_bitmap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2212,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2213,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2214,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2215,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2216,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2217,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2218,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2219,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2220,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2221,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2222,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2223,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2229,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2230,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m.c:2230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p2m
    - xaccess
    - paccess
    argTypes:
    - struct p2m_domain*
    - xenmem_access_t
    - p2m_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2243
    functionName: xenmem_access_to_p2m_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.c
    functionUses: 0
    functionsReached:
    - ACCESS
    - array_index_nospec
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: "bool xenmem_access_to_p2m_access(const struct p2m_domain *p2m,\n                                 xenmem_access_t
      xaccess,\n                                 p2m_access_t *paccess)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:23,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:25,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:26,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:26,1
    - Dst: altp2m_vcpu_update_p2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:28,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: altp2m_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 2
    functionsReached:
    - vcpu_pause
    - p2m_get_altp2m
    - vcpu_unpause
    - vcpu_altp2m
    - atomic_inc
    - altp2m_vcpu_update_p2m
    linkageType: ''
    returnType: void
    signature: void altp2m_vcpu_initialise(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:43,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:45,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:46,1
    - Dst: altp2m_vcpu_disable_ve
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:48,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:50,1
    - Dst: altp2m_vcpu_update_p2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:51,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: altp2m_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 3
    functionsReached:
    - vcpu_pause
    - p2m_get_altp2m
    - vcpu_unpause
    - vcpu_altp2m
    - altp2m_vcpu_disable_ve
    - altp2m_vcpu_update_p2m
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void altp2m_vcpu_destroy(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:60,1
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:69,1
    - Dst: p2m_is_pageable
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:79,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:79,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:91,1
    - Dst: altp2m_vcpu_update_vmfunc_ve
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:97,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - v
    - gfn
    argTypes:
    - struct vcpu*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: altp2m_vcpu_enable_ve
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - check_get_page_from_gfn
    - p2m_is_pageable
    - is_special_page
    - vcpu_altp2m
    - altp2m_vcpu_update_vmfunc_ve
    - put_page
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:109,1
    - Dst: xchg
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:117,1
    - Dst: altp2m_vcpu_update_vmfunc_ve
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:119,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: altp2m_vcpu_disable_ve
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 2
    functionsReached:
    - altp2m_vcpu_update_vmfunc_ve
    - xchg
    - put_page
    - vcpu_altp2m
    linkageType: ''
    returnType: void
    signature: void altp2m_vcpu_disable_ve(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:129,1
    - Dst: mm_lock_init
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:131,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:132,1
    - Dst: p2m_init_one
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:139,1
    - Dst: p2m_teardown_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:142,1
    - Dst: _atomic_set
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 151
    functionName: p2m_init_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - mm_lock_init
    - xvzalloc_array
    - _atomic_set
    - p2m_init_one
    - p2m_teardown_altp2m
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_init_altp2m(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_free_one
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:164,1
    - Dst: XVFREE
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: p2m_teardown_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 2
    functionsReached:
    - XVFREE
    - p2m_free_one
    linkageType: ''
    returnType: void
    signature: void p2m_teardown_altp2m(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:174,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:177,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:177,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:179,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:183,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:187,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:194,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:194,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:195,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:195,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:200,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 6
    argNames:
    - ap2m
    - gfn
    - mfn
    - t
    - a
    - prepopulate
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t*
    - p2m_type_t*
    - p2m_access_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 207
    functionName: altp2m_get_effective_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 0
    functionsReached:
    - p2m_get_gfn_type_access
    - _gfn
    - _mfn
    - mfn_x
    - struct p2m_domain*::get_entry
    - mfn_valid
    - gfn_x
    - p2m_is_hostp2m
    - struct p2m_domain*::set_entry
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int altp2m_get_effective_entry(struct p2m_domain *ap2m, gfn_t gfn,
      mfn_t *mfn,\n                               p2m_type_t *t, p2m_access_t *a,\n
      \                              bool prepopulate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:211,1
    - Dst: p2m_switch_vcpu_altp2m_by_id
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - struct vcpu*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: p2m_altp2m_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - p2m_switch_vcpu_altp2m_by_id
    - altp2m_active
    linkageType: ''
    returnType: void
    signature: void p2m_altp2m_check(struct vcpu *v, uint16_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:223,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:225,1
    - Dst: p2m_set_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:227,1
    - Dst: altp2m_vcpu_update_p2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:228,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - v
    - idx
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 234
    functionName: p2m_switch_vcpu_altp2m_by_id
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 2
    functionsReached:
    - mfn_x
    - altp2m_list_unlock
    - p2m_set_altp2m
    - altp2m_list_lock
    - altp2m_vcpu_update_p2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_switch_vcpu_altp2m_by_id(struct vcpu *v, unsigned int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:265,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:267,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:272,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:274,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:283,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:285,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:296,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:296,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:297,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:302,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:303,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:307,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:309,1
    - Dst: vcpu_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:309,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 6
    argNames:
    - ap2m
    - gfn_l
    - mfn
    - p2mt
    - p2ma
    - page_order
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - mfn_t*
    - p2m_type_t*
    - p2m_access_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 314
    functionName: p2m_altp2m_get_or_propagate
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - p2m_set_entry
    - mfn_x
    - p2m_lock
    - _mfn
    - _gfn
    - p2m_unlock
    - vcpu_altp2m
    - gprintk
    - mfn_eq
    - domain_crash
    - get_gfn_type_access
    linkageType: ''
    returnType: bool
    signature: "bool p2m_altp2m_get_or_propagate(struct p2m_domain *ap2m, unsigned
      long gfn_l,\n                                 mfn_t *mfn, p2m_type_t *p2mt,\n
      \                                p2m_access_t *p2ma, unsigned int *page_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:326,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:327,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:329,1
    - Dst: p2m_flush_table_locked
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:331,1
    - Dst: p2m_free_logdirty
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:334,1
    - Dst: ept_p2m_uninit
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:337,1
    - Dst: ept_p2m_init
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:338,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:340,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - d
    - idx
    - reset_type
    argTypes:
    - struct domain*
    - unsigned int
    - enum altp2m_reset_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 344
    functionName: p2m_reset_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - p2m_free_logdirty
    - p2m_lock
    - ept_p2m_init
    - ept_p2m_uninit
    - p2m_unlock
    - gfn_x
    - ASSERT
    - p2m_flush_table_locked
    linkageType: ''
    returnType: void
    signature: "void p2m_reset_altp2m(struct domain *d, unsigned int idx,\n                             enum
      altp2m_reset_type reset_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:350,1
    - Dst: p2m_reset_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:354,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:355,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:356,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 360
    functionName: p2m_flush_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - mfn_x
    - altp2m_list_lock
    - p2m_reset_altp2m
    - altp2m_list_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_flush_altp2m(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:368,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:370,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:371,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:373,1
    - Dst: p2m_init_logdirty
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:375,1
    - Dst: rangeset_merge
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:381,1
    - Dst: p2m_free_logdirty
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:385,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:392,1
    - Dst: p2m_init_altp2m_ept
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:395,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:398,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - d
    - idx
    - hvmmem_default_access
    argTypes:
    - struct domain*
    - unsigned int
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 401
    functionName: p2m_activate_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - p2m_init_altp2m_ept
    - rangeset_merge
    - p2m_init_logdirty
    - p2m_free_logdirty
    - p2m_lock
    - p2m_unlock
    - gfn_x
    - ASSERT
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_activate_altp2m(struct domain *d, unsigned int idx,\n                               p2m_access_t
      hvmmem_default_access)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:406,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:411,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:413,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:414,1
    - Dst: p2m_activate_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:415,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 419
    functionName: p2m_init_altp2m_by_id
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - mfn_x
    - p2m_activate_altp2m
    - altp2m_list_unlock
    - altp2m_list_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_init_altp2m_by_id(struct domain *d, unsigned int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:427,1
    - Dst: xenmem_access_to_p2m_access
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:430,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:433,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:437,1
    - Dst: p2m_activate_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:440,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - d
    - idx
    - hvmmem_default_access
    argTypes:
    - struct domain*
    - uint16_t*
    - xenmem_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 450
    functionName: p2m_init_next_altp2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - xenmem_access_to_p2m_access
    - mfn_x
    - p2m_activate_altp2m
    - altp2m_list_unlock
    - altp2m_list_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_init_next_altp2m(struct domain *d, uint16_t *idx,\n                         xenmem_access_t
      hvmmem_default_access)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause_except_self
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:460,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:465,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:467,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:468,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:470,1
    - Dst: _atomic_read
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:472,1
    - Dst: p2m_reset_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:474,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:475,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:476,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:477,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:478,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:483,1
    - Dst: domain_unpause_except_self
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 488
    functionName: p2m_destroy_altp2m_by_id
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - domain_pause_except_self
    - _atomic_read
    - mfn_x
    - altp2m_list_unlock
    - domain_unpause_except_self
    - altp2m_list_lock
    - p2m_reset_altp2m
    linkageType: ''
    returnType: int
    signature: int p2m_destroy_altp2m_by_id(struct domain *d, unsigned int idx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause_except_self
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:498,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:503,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:505,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:507,1
    - Dst: p2m_set_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:508,1
    - Dst: altp2m_vcpu_update_p2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:509,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:514,1
    - Dst: domain_unpause_except_self
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 519
    functionName: p2m_switch_domain_altp2m_by_id
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - domain_pause_except_self
    - mfn_x
    - altp2m_list_unlock
    - domain_unpause_except_self
    - p2m_set_altp2m
    - altp2m_list_lock
    - altp2m_vcpu_update_p2m
    linkageType: ''
    returnType: int
    signature: int p2m_switch_domain_altp2m_by_id(struct domain *d, unsigned int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:530,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:533,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:534,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:536,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:537,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:539,1
    - Dst: get_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:541,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:542,1
    - Dst: p2m_remove_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:543,1
    - Dst: altp2m_get_effective_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:548,1
    - Dst: altp2m_get_effective_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:553,1
    - Dst: set_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:558,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:563,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:564,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:565,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:566,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:570,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - d
    - idx
    - old_gfn
    - new_gfn
    argTypes:
    - struct domain*
    - unsigned int
    - gfn_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 573
    functionName: p2m_change_altp2m_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - get_entry
    - altp2m_is_eptp_valid
    - p2m_lock
    - mfn_valid
    - altp2m_get_effective_entry
    - p2m_unlock
    - set_entry
    - gfn_x
    - gfn_eq
    - p2m_remove_entry
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_change_altp2m_gfn(struct domain *d, unsigned int idx,\n                          gfn_t
      old_gfn, gfn_t new_gfn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:585,1
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:588,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:595,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:601,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:602,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:603,1
    - Dst: p2m_reset_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:607,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:616,1
    - Dst: p2m_reset_altp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:619,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:626,1
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:626,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:626,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:629,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:635,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:638,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:641,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 6
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    - p2mt
    - p2ma
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 644
    functionName: p2m_altp2m_propagate_change
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 0
    functionsReached:
    - altp2m_active
    - p2m_set_entry
    - p2m_put_gfn
    - mfn_x
    - altp2m_list_unlock
    - gfn_x
    - mfn_eq
    - altp2m_list_lock
    - p2m_reset_altp2m
    - get_gfn_type_access
    linkageType: ''
    returnType: int
    signature: "int p2m_altp2m_propagate_change(struct domain *d, gfn_t gfn,\n                                mfn_t
      mfn, unsigned int page_order,\n                                p2m_type_t p2mt,
      p2m_access_t p2ma)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:654,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:654,1
    - Dst: p2m_set_suppress_ve_multi
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - d
    - gfn
    - suppress_ve
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 661
    functionName: p2m_set_suppress_ve
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - gfn_x
    - p2m_set_suppress_ve_multi
    linkageType: ''
    returnType: int
    signature: "int p2m_set_suppress_ve(struct domain *d, gfn_t gfn, bool suppress_ve,\n
      \                       unsigned int altp2m_idx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:669,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:677,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:681,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:684,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:687,1
    - Dst: altp2m_get_effective_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:696,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:696,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:704,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:704,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:714,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:724,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:726,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 2
    argNames:
    - d
    - sve
    argTypes:
    - struct domain*
    - struct xen_hvm_altp2m_suppress_ve_multi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 666
    functionDepth: 3
    functionLinenumber: 666
    functionLinenumberEnd: 729
    functionName: p2m_set_suppress_ve_multi
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 2
    functionsReached:
    - array_index_nospec
    - altp2m_is_eptp_valid
    - _gfn
    - p2m_lock
    - altp2m_get_effective_entry
    - p2m_unlock
    - hypercall_preempt_check
    - struct p2m_domain*::set_entry
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_set_suppress_ve_multi(struct domain *d,\n                              struct
      xen_hvm_altp2m_suppress_ve_multi *sve)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:734,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:744,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:748,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:753,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:756,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:758,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:759,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:763,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - d
    - gfn
    - suppress_ve
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - bool*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 768
    functionName: p2m_get_suppress_ve
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - altp2m_is_eptp_valid
    - gfn_unlock
    - p2m_lock
    - struct p2m_domain*::get_entry
    - mfn_valid
    - p2m_unlock
    - gfn_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_get_suppress_ve(struct domain *d, gfn_t gfn, bool *suppress_ve,\n
      \                       unsigned int altp2m_idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:775,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:777,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:780,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:781,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:783,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:784,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/altp2m.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - altp2m_idx
    - visible
    argTypes:
    - struct domain*
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 789
    functionName: p2m_set_altp2m_view_visibility
    functionSourceFile: /src/xen/xen/arch/x86/mm/altp2m.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - altp2m_is_eptp_valid
    - mfn_x
    - altp2m_list_unlock
    - altp2m_list_lock
    linkageType: ''
    returnType: int
    signature: "int p2m_set_altp2m_view_visibility(struct domain *d, unsigned int
      altp2m_idx,\n                                   uint8_t visible)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - __pepte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: atomic_read_ept_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_read_ept_entry(__pepte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ept_entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: is_epte_present
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_epte_present(ept_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ept_entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: is_epte_superpage
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_epte_superpage(ept_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ept_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: is_epte_valid
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_epte_valid(const ept_entry_t *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_entry_modify
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:45,1
    - Dst: sa_p2mt::sa_p2mt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:45,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:46,1
    - Dst: mfn::mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:46,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:46,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:51,1
    - Dst: epte::epte
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:51,1
    - Dst: recalc::recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:63,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:63,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - p2m
    - entryptr
    - new
    - level
    argTypes:
    - struct p2m_domain*
    - ept_entry_t*
    - ept_entry_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 67
    functionName: atomic_write_ept_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - epte::epte
    - sa_p2mt::sa_p2mt
    - write_atomic
    - _mfn
    - p2m_entry_modify
    - iommu_use_hap_pt
    - recalc::recalc
    - mfn::mfn
    - iommu_sync_cache
    linkageType: ''
    returnType: int
    signature: "int atomic_write_ept_entry(struct p2m_domain *p2m,\n                                  ept_entry_t
      *entryptr, ept_entry_t new,\n                                  int level)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:107,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:109,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:109,1
    - Dst: vmx_domain_pml_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:121,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:122,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 2
    argNames:
    - p2m
    - entry
    argTypes:
    - struct p2m_domain*
    - ept_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 191
    functionName: ept_p2m_type_to_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - vmx_domain_pml_enabled
    - ASSERT
    - is_epte_superpage
    - rangeset_contains_singleton
    linkageType: ''
    returnType: void
    signature: "void ept_p2m_type_to_flags(const struct p2m_domain *p2m,\n                                  ept_entry_t
      *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_alloc_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:206,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:207,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:210,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - p2m
    - ept_entry
    argTypes:
    - struct p2m_domain*
    - ept_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 226
    functionName: ept_set_middle_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - p2m_alloc_ptp
    - map_domain_page
    - mfn_eq
    linkageType: ''
    returnType: ept_entry_t
    signature: "ept_entry_t *ept_set_middle_entry(struct p2m_domain *p2m,\n                                         ept_entry_t
      *ept_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:232,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:233,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:238,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:238,1
    - Dst: ept_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:240,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:241,1
    - Dst: p2m_free_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:244,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:244,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - p2m
    - ept_entry
    - level
    argTypes:
    - struct p2m_domain*
    - ept_entry_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: ept_free_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - p2m_free_ptp
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - _mfn
    - is_epte_present
    - is_epte_superpage
    - ept_free_entry
    linkageType: ''
    returnType: void
    signature: void ept_free_entry(struct p2m_domain *p2m, ept_entry_t *ept_entry,
      int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:260,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:260,1
    - Dst: ept_set_middle_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:262,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:275,1
    - Dst: ept_p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:277,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:282,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:282,1
    - Dst: ept_split_super_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:284,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:288,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:289,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:291,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - p2m
    - ept_entry
    - level
    - target
    argTypes:
    - struct p2m_domain*
    - ept_entry_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 297
    functionName: ept_split_super_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - ept_p2m_type_to_flags
    - ept_split_super_page
    - iommu_use_hap_pt
    - ASSERT
    - is_epte_superpage
    - iommu_sync_cache
    - ept_set_middle_entry
    - is_iommu_enabled
    linkageType: ''
    returnType: bool
    signature: "bool ept_split_super_page(\n    struct p2m_domain *p2m, ept_entry_t
      *ept_entry,\n    unsigned int level, unsigned int target)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:320,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:327,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:334,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:336,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:340,1
    - Dst: ept_set_middle_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:346,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:350,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:351,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:353,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:354,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:357,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:360,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:361,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - p2m
    - read_only
    - table
    - gfn_remainder
    - next_level
    argTypes:
    - struct p2m_domain*
    - bool
    - ept_entry_t**
    - unsigned long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 313
    functionDepth: 5
    functionLinenumber: 313
    functionLinenumberEnd: 364
    functionName: ept_next_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - _mfn
    - is_epte_present
    - iommu_use_hap_pt
    - atomic_write_ept_entry
    - ASSERT
    - is_epte_superpage
    - iommu_sync_cache
    - atomic_read_ept_entry
    - ept_set_middle_entry
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int ept_next_level(struct p2m_domain *p2m, bool read_only,\n                          ept_entry_t
      **table, unsigned long *gfn_remainder,\n                          int next_level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:375,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:381,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:387,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:389,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:389,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:396,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:397,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:401,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - p2m
    - mfn
    - recalc
    - level
    argTypes:
    - struct p2m_domain*
    - mfn_t
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 371
    functionDepth: 5
    functionLinenumber: 371
    functionLinenumberEnd: 404
    functionName: ept_invalidate_emt_subtree
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - is_epte_present
    - atomic_write_ept_entry
    - ASSERT
    - is_epte_valid
    - atomic_read_ept_entry
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: "bool ept_invalidate_emt_subtree(struct p2m_domain *p2m, mfn_t mfn,\n
      \                                      bool recalc, unsigned int level)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:423,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:423,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:423,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:426,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:440,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:441,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:441,1
    - Dst: ept_split_super_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:442,1
    - Dst: ept_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:444,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:448,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:449,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:452,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:456,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:463,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:465,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:465,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:470,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:471,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:477,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 4
    argNames:
    - p2m
    - target
    - first_gfn
    - last_gfn
    argTypes:
    - struct p2m_domain*
    - unsigned int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 480
    functionName: ept_invalidate_emt_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - ept_next_level
    - pagetable_get_mfn
    - is_epte_present
    - p2m_get_pagetable
    - ept_split_super_page
    - atomic_write_ept_entry
    - ASSERT
    - is_epte_superpage
    - is_epte_valid
    - atomic_read_ept_entry
    - ept_free_entry
    linkageType: ''
    returnType: int
    signature: "int ept_invalidate_emt_range(struct p2m_domain *p2m,\n                                    unsigned
      int target,\n                                    unsigned long first_gfn,\n
      \                                   unsigned long last_gfn)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:495,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:495,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:496,1
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:498,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:498,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:499,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:512,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:513,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:521,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:523,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:523,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:523,1
    - Dst: hvm_get_mem_pinned_cacheattr
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:563,1
    - Dst: mtrr_get_type
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:572,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:572,1
    - Dst: mtrr_get_type
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:575,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:575,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:580,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 6
    argNames:
    - d
    - gfn
    - mfn
    - order
    - ipat
    - type
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    - bool*
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 609
    functionName: epte_get_entry_emt
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - mfn_to_maddr
    - mtrr_get_type
    - mfn_x
    - mfn_add
    - mfn_valid
    - is_special_page
    - likely
    - gfn_to_gaddr
    - rangeset_overlaps_range
    - cache_flush_permitted
    - hvm_get_mem_pinned_cacheattr
    - rangeset_contains_range
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int epte_get_entry_emt(struct domain *d, gfn_t gfn, mfn_t mfn,\n                       unsigned
      int order, bool *ipat, p2m_type_t type)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:639,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:639,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:641,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:643,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:650,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:650,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:658,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:661,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:661,1
    - Dst: epte_get_entry_emt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:663,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:663,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:664,1
    - Dst: p2m_recalc_type
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:668,1
    - Dst: ept_p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:672,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:675,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:676,1
    - Dst: epte_get_entry_emt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:681,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:681,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:682,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:687,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:691,1
    - Dst: p2m_is_logdirty_range
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:692,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:708,1
    - Dst: ept_split_super_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:710,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:712,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:713,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:714,1
    - Dst: ept_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:718,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:725,1
    - Dst: ept_p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:726,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:727,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:728,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:737,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:737,1
    - Dst: ept_invalidate_emt_subtree
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:738,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:738,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:739,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:742,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:743,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:744,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:747,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:748,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:755,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:760,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 623
    functionDepth: 6
    functionLinenumber: 623
    functionLinenumberEnd: 765
    functionName: resolve_misconfig
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - ept_invalidate_emt_subtree
    - ept_p2m_type_to_flags
    - _gfn
    - ept_split_super_page
    - atomic_write_ept_entry
    - is_epte_valid
    - map_domain_page
    - p2m_is_logdirty_range
    - atomic_read_ept_entry
    - ept_free_entry
    - _mfn
    - epte_get_entry_emt
    - smp_wmb
    - ASSERT
    - p2m_recalc_type
    - unmap_domain_page
    - p2m_is_changeable
    - is_epte_present
    - is_epte_superpage
    - unlikely
    linkageType: ''
    returnType: int
    signature: int resolve_misconfig(struct p2m_domain *p2m, unsigned long gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:770,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:774,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:775,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:777,1
    - Dst: resolve_misconfig
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:780,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:780,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 767
    functionDepth: 7
    functionLinenumber: 767
    functionLinenumberEnd: 786
    functionName: ept_handle_misconfig
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - altp2m_active
    - p2m_get_altp2m
    - p2m_lock
    - p2m_unlock
    - PFN_DOWN
    - resolve_misconfig
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool ept_handle_misconfig(uint64_t gpa)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:800,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:803,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:803,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:808,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:815,1
    - Dst: resolve_misconfig
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:829,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:833,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:836,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:836,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:838,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:838,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:838,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:843,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:853,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:858,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:874,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:888,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:888,1
    - Dst: atomic_read_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:890,1
    - Dst: ept_split_super_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:892,1
    - Dst: ept_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:894,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:901,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:902,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:906,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:910,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:915,1
    - Dst: p2m_allows_invalid_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:915,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:920,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:923,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:927,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:928,1
    - Dst: ept_p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:931,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:933,1
    - Dst: epte_get_entry_emt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:936,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:936,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:940,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:940,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:953,1
    - Dst: atomic_write_ept_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:956,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:957,1
    - Dst: ept_sync_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:971,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:974,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:977,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:977,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:978,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:978,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:982,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:984,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:984,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:985,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:985,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:988,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:994,1
    - Dst: ept_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:995,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:997,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:997,1
    - Dst: p2m_altp2m_propagate_change
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:999,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:999,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 91
    argCount: 7
    argNames:
    - p2m
    - gfn_
    - mfn
    - order
    - p2mt
    - p2ma
    - sve
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t
    - unsigned int
    - p2m_type_t
    - p2m_access_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 794
    functionDepth: 7
    functionLinenumber: 794
    functionLinenumberEnd: 1005
    functionName: ept_set_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - ept_next_level
    - pagetable_get_mfn
    - ept_p2m_type_to_flags
    - _gfn
    - need_iommu_pt_sync
    - ept_split_super_page
    - iommu_use_hap_pt
    - atomic_write_ept_entry
    - hvm_altp2m_supported
    - is_epte_valid
    - p2m_is_hostp2m
    - _dfn
    - map_domain_page
    - ept_sync_domain
    - p2m_get_pagetable
    - mfn_valid
    - BUG_ON
    - p2m_altp2m_propagate_change
    - mfn_eq
    - resolve_misconfig
    - atomic_read_ept_entry
    - ept_free_entry
    - is_iommu_enabled
    - mfn_x
    - p2m_allows_invalid_mfn
    - _mfn
    - epte_get_entry_emt
    - iommu_legacy_map
    - ASSERT
    - this_cpu
    - iommu_iotlb_flush
    - unmap_domain_page
    - iommu_legacy_unmap
    - is_epte_present
    - gfn_x
    - is_epte_superpage
    - unlikely
    - p2m_is_foreign
    - p2m_get_iommu_flags
    linkageType: ''
    returnType: int
    signature: "int ept_set_entry(struct p2m_domain *p2m, gfn_t gfn_, mfn_t mfn,\n
      \             unsigned int order, p2m_type_t p2mt, p2m_access_t p2ma,\n              int
      sve)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1013,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1013,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1013,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1014,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1047,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1059,1
    - Dst: p2m_pod_demand_populate
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1064,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1075,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1083,1
    - Dst: p2m_pod_demand_populate
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1085,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1089,1
    - Dst: p2m_recalc_type
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1091,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1097,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1104,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1107,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1115,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 7
    argNames:
    - p2m
    - gfn_
    - t
    - a
    - q
    - page_order
    - sve
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    - unsigned int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1008
    functionDepth: 6
    functionLinenumber: 1008
    functionLinenumberEnd: 1117
    functionName: ept_get_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - ept_next_level
    - p2m_pod_demand_populate
    - pagetable_get_mfn
    - mfn_x
    - _mfn
    - p2m_get_pagetable
    - gfn_x
    - ASSERT
    - is_epte_valid
    - p2m_recalc_type
    - p2m_is_pod
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t ept_get_entry(\n    struct p2m_domain *p2m, gfn_t gfn_, p2m_type_t
      *t, p2m_access_t *a,\n    p2m_query_t q, unsigned int *page_order, bool *sve)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1121,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1124,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1124,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1124,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1129,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1134,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1148,1
    - Dst: is_epte_present
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1150,1
    - Dst: is_epte_superpage
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1151,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1157,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1157,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1159,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1168
    functionName: ept_walk_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - pagetable_get_mfn
    - _mfn
    - is_epte_present
    - p2m_get_pagetable
    - gprintk
    - is_epte_superpage
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_walk_table(struct domain *d, unsigned long gfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ept_invalidate_emt_subtree
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1178,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1178,1
    - Dst: ept_sync_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - p2m
    - ot
    - nt
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1170
    functionDepth: 6
    functionLinenumber: 1170
    functionLinenumberEnd: 1180
    functionName: ept_change_entry_type_global
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - _mfn
    - ept_sync_domain
    - ept_invalidate_emt_subtree
    linkageType: ''
    returnType: void
    signature: "void ept_change_entry_type_global(\n    struct p2m_domain *p2m, p2m_type_t
      ot, p2m_type_t nt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1197,1
    - Dst: ept_invalidate_emt_range
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1199,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1207,1
    - Dst: ept_invalidate_emt_range
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1209,1
    - Dst: ept_sync_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1223,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - p2m
    - ot
    - nt
    - first_gfn
    - last_gfn
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1182
    functionDepth: 7
    functionLinenumber: 1182
    functionLinenumberEnd: 1226
    functionName: ept_change_entry_type_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - max
    - min
    - ept_invalidate_emt_range
    - ept_sync_domain
    linkageType: ''
    returnType: int
    signature: "int ept_change_entry_type_range(\n    struct p2m_domain *p2m, p2m_type_t
      ot, p2m_type_t nt,\n    unsigned long first_gfn, unsigned long last_gfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ept_invalidate_emt_subtree
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1235,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1235,1
    - Dst: ept_sync_domain
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1228
    functionDepth: 6
    functionLinenumber: 1228
    functionLinenumberEnd: 1237
    functionName: ept_memory_type_changed
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - _mfn
    - ept_sync_domain
    - ept_invalidate_emt_subtree
    linkageType: ''
    returnType: void
    signature: void ept_memory_type_changed(struct p2m_domain *p2m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1244,1
    - Dst: p2m_is_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1246,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1247,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1249,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1239
    functionDepth: 5
    functionLinenumber: 1239
    functionLinenumberEnd: 1260
    functionName: ept_sync_domain_prepare
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - cpumask_setall
    - p2m_flush_nestedp2m
    - p2m_is_nestedp2m
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_sync_domain_prepare(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p2m
    - mask
    argTypes:
    - struct p2m_domain*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1266
    functionName: ept_sync_domain_mask
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - on_selected_cpus
    linkageType: ''
    returnType: void
    signature: void ept_sync_domain_mask(struct p2m_domain *p2m, const cpumask_t *mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1271,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1271,1
    - Dst: ept_sync_domain_prepare
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1277,1
    - Dst: ept_sync_domain_mask
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1268
    functionDepth: 6
    functionLinenumber: 1268
    functionLinenumberEnd: 1286
    functionName: ept_sync_domain
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 5
    functionsReached:
    - ASSERT
    - ept_sync_domain_prepare
    - ept_sync_domain_mask
    - hap_enabled
    linkageType: ''
    returnType: void
    signature: void ept_sync_domain(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ept_sync_domain_mask
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1291
    functionName: ept_tlb_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - ept_sync_domain_mask
    linkageType: ''
    returnType: void
    signature: void ept_tlb_flush(struct p2m_domain *p2m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1295,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1297,1
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1297,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1302,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1302,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1310,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1315,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - d
    - value
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1293
    functionDepth: 3
    functionLinenumber: 1293
    functionLinenumberEnd: 1321
    functionName: ept_set_ad_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - altp2m_active
    - mfn_x
    - p2m_lock
    - p2m_unlock
    - ASSERT
    - p2m_locked_by_me
    - unlikely
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_set_ad_sync(struct domain *d, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1326,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1326,1
    - Dst: vmx_domain_enable_pml
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1333,1
    - Dst: ept_set_ad_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1337,1
    - Dst: vmx_domain_update_eptp
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1323
    functionDepth: 6
    functionLinenumber: 1323
    functionLinenumberEnd: 1339
    functionName: ept_enable_pml
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vmx_domain_update_eptp
    - vmx_domain_enable_pml
    - ept_set_ad_sync
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void ept_enable_pml(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1344,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1344,1
    - Dst: vmx_domain_disable_pml
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1346,1
    - Dst: ept_set_ad_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1349,1
    - Dst: vmx_domain_update_eptp
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1341
    functionDepth: 6
    functionLinenumber: 1341
    functionLinenumberEnd: 1351
    functionName: ept_disable_pml
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - vmx_domain_disable_pml
    - ASSERT
    - vmx_domain_update_eptp
    - ept_set_ad_sync
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void ept_disable_pml(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1355,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1357,1
    - Dst: ept_enable_pml
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1358,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1353
    functionDepth: 7
    functionLinenumber: 1353
    functionLinenumberEnd: 1360
    functionName: ept_enable_hardware_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - p2m_unlock
    - p2m_lock
    - ept_enable_pml
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_enable_hardware_log_dirty(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1364,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1366,1
    - Dst: ept_disable_pml
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1367,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1362
    functionDepth: 7
    functionLinenumber: 1362
    functionLinenumberEnd: 1369
    functionName: ept_disable_hardware_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - p2m_unlock
    - p2m_lock
    - ept_disable_pml
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_disable_hardware_log_dirty(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1374,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1374,1
    - Dst: vmx_domain_flush_pml_buffers
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1371
    functionDepth: 2
    functionLinenumber: 1371
    functionLinenumberEnd: 1377
    functionName: ept_flush_pml_buffers
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - vmx_domain_flush_pml_buffers
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void ept_flush_pml_buffers(struct p2m_domain *p2m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1382,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1386,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1386,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1387,1
    - Dst: vmx_vcpu_pml_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1387,1
    - Dst: vmx_vmcs_enter
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1389,1
    - Dst: __vmread
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1391,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1397,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1414,1
    - Dst: p2m_change_type_one
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1427,1
    - Dst: paging_mark_pfn_dirty
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1430,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1430,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1432,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1434,1
    - Dst: __vmwrite
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1437,1
    - Dst: vmx_vmcs_exit
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1379
    functionDepth: 4
    functionLinenumber: 1379
    functionLinenumberEnd: 1442
    functionName: ept_vcpu_flush_pml_buffer
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 3
    functionsReached:
    - p2m_change_type_one
    - unmap_domain_page
    - vmx_vmcs_enter
    - _pfn
    - p2m_lock
    - p2m_unlock
    - vmx_vcpu_pml_enabled
    - ASSERT
    - vcpu_runnable
    - paging_mark_pfn_dirty
    - vmx_vmcs_exit
    - __map_domain_page
    - __vmwrite
    - __vmread
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_vcpu_flush_pml_buffer(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1472,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1482
    functionName: ept_p2m_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 2
    functionsReached:
    - zalloc_cpumask_var
    - cpumask_setall
    linkageType: ''
    returnType: int
    signature: int ept_p2m_init(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1488
    functionName: ept_p2m_uninit
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 2
    functionsReached:
    - free_cpumask_var
    linkageType: ''
    returnType: void
    signature: void ept_p2m_uninit(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1501,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1503
    functionName: memory_type_to_str
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *memory_type_to_str(unsigned int x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1516,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1520,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1523,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1525,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1540,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1547,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1549,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1550,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1552,1
    - Dst: memory_type_to_str
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1557,1
    - Dst: memory_type_to_str
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1558,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1563,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1565,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1569,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1505
    functionDepth: 6
    functionLinenumber: 1505
    functionLinenumberEnd: 1570
    functionName: ept_dump_p2m_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - ept_next_level
    - rcu_read_unlock
    - pagetable_get_mfn
    - p2m_get_pagetable
    - p2m_is_pod
    - process_pending_softirqs
    - printk
    - is_epte_valid
    - memory_type_to_str
    - rcu_read_lock
    - hap_enabled
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void ept_dump_p2m_table(unsigned char key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1520,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1523,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1525,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1533,1
    - Dst: ept_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1540,1
    - Dst: is_epte_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1547,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1549,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1550,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1552,1
    - Dst: memory_type_to_str
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1557,1
    - Dst: memory_type_to_str
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1558,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1563,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1565,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1518
    functionDepth: 6
    functionLinenumber: 1518
    functionLinenumberEnd: 1567
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 2
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - ept_next_level
    - pagetable_get_mfn
    - p2m_get_pagetable
    - p2m_is_pod
    - process_pending_softirqs
    - printk
    - is_epte_valid
    - memory_type_to_str
    - hap_enabled
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void for_each_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1575
    functionName: setup_ept_dump
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: void
    signature: void setup_ept_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1581,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1582,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1587,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1587,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1588,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - d
    - i
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1590
    functionName: p2m_init_altp2m_ept
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - pagetable_get_pfn
    - p2m_get_pagetable
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_init_altp2m_ept(struct domain *d, unsigned int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_list_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1598,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1602,1
    - Dst: altp2m_list_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-ept.c:1615,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - d
    - eptp
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1617
    functionName: p2m_find_altp2m_by_eptp
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-ept.c
    functionUses: 1
    functionsReached:
    - mfn_x
    - altp2m_list_lock
    - altp2m_list_unlock
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int p2m_find_altp2m_by_eptp(struct domain *d, uint64_t eptp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:32,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - guest_p
    - walk_p
    - set_dirty
    argTypes:
    - guest_intpte_t*
    - guest_intpte_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: set_ad_bits
    functionSourceFile: /src/xen/xen/arch/x86/mm/guest_walk.c
    functionUses: 0
    functionsReached:
    - cmpxchg
    - old::old
    linkageType: ''
    returnType: bool
    signature: "bool set_ad_bits(guest_intpte_t *guest_p, guest_intpte_t *walk_p,\n
      \                       bool set_dirty)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:106,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:109,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:110,1
    - Dst: guest_nx_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:119,1
    - Dst: guest_smep_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:119,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:128,1
    - Dst: guest_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:129,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:130,1
    - Dst: guest_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:132,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:133,1
    - Dst: guest_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:135,1
    - Dst: guest_l4e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:140,1
    - Dst: map_domain_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:151,1
    - Dst: guest_l4e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:152,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:163,1
    - Dst: guest_l4e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:163,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:164,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:165,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:167,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:168,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:170,1
    - Dst: guest_l3e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:175,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:191,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:203,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:205,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:210,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:210,1
    - Dst: guest_l1e_from_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:212,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:221,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:222,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:223,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:225,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:226,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:229,1
    - Dst: guest_l3e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:233,1
    - Dst: map_domain_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:242,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:243,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:253,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:253,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:259,1
    - Dst: guest_l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:264,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:265,1
    - Dst: guest_l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:267,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:268,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:272,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:280,1
    - Dst: guest_l2e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:286,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:305,1
    - Dst: unfold_pse36
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:305,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:307,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:320,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:322,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:327,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:327,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:328,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:331,1
    - Dst: guest_l1e_from_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:333,1
    - Dst: map_domain_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:341,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:342,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:352,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:352,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:353,1
    - Dst: hvmemul_read_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:354,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:356,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:357,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:360,1
    - Dst: guest_l1e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:365,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:392,1
    - Dst: guest_nx_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:392,1
    - Dst: guest_pku_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:403,1
    - Dst: guest_pks_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:404,1
    - Dst: guest_l1e_get_pkey
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:406,1
    - Dst: rdpkru
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:407,1
    - Dst: rdpkrs
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:407,1
    - Dst: guest_wp_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:412,1
    - Dst: guest_smep_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:438,1
    - Dst: guest_smap_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:442,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:444,1
    - Dst: guest_wp_enabled
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:450,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:466,1
    - Dst: set_ad_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:470,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:470,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:473,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:474,1
    - Dst: set_ad_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:478,1
    - Dst: guest_l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:478,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:481,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:482,1
    - Dst: set_ad_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:487,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:487,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:490,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:491,1
    - Dst: set_ad_bits
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:494,1
    - Dst: guest_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:494,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:497,1
    - Dst: hvmemul_write_cache
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:498,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:508,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:509,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:509,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:515,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:516,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:516,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:521,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:522,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:522,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 217
    argCount: 8
    argNames:
    - v
    - p2m
    - va
    - gw
    - walk
    - top_gfn
    - top_mfn
    - top_map
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - walk_t*
    - uint32_t
    - gfn_t
    - mfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 526
    functionName: guest_walk_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/guest_walk.c
    functionUses: 0
    functionsReached:
    - guest_l4_table_offset
    - guest_cpu_user_regs
    - set_ad_bits
    - mfn_to_page
    - rdpkru
    - _gfn
    - guest_l3e_get_gfn
    - guest_can_use_l2_superpages
    - unfold_pse36
    - guest_l2_table_offset
    - guest_l2e_get_flags
    - guest_pku_enabled
    - guest_l4e_rsvd_bits
    - guest_l1e_get_flags
    - guest_l1e_rsvd_bits
    - guest_l3e_rsvd_bits
    - paging_mark_dirty
    - guest_nx_enabled
    - guest_l1_table_offset
    - hvmemul_read_cache
    - guest_l3e_get_flags
    - guest_l2e_get_gfn
    - hvmemul_write_cache
    - guest_l4e_get_gfn
    - guest_pks_enabled
    - ASSERT
    - memset
    - ASSERT_UNREACHABLE
    - guest_l1e_get_pkey
    - perfc_incr
    - rdpkrs
    - unmap_domain_page
    - guest_l3_table_offset
    - map_domain_gfn
    - guest_l2e_rsvd_bits
    - gfn_x
    - guest_l1e_from_gfn
    - gfn_to_gaddr
    - guest_l4e_get_flags
    - guest_smap_enabled
    - guest_smep_enabled
    - put_page
    - guest_wp_enabled
    linkageType: ''
    returnType: bool
    signature: "bool guest_walk_tables(const struct vcpu *v, struct p2m_domain *p2m,\n
      \                 unsigned long va, walk_t *gw, uint32_t walk,\n                  gfn_t
      top_gfn, mfn_t top_mfn, void *top_map)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gfn_valid
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:540,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:547,1
    - Dst: p2m_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:548,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:549,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:549,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:550,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:552,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:552,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:554,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:555,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:559,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:562,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:573,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:574,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:574,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/guest_walk.c:576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - p2m
    - gfn
    - mfn
    - q
    - pfec
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t*
    - p2m_query_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 577
    functionName: map_domain_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/guest_walk.c
    functionUses: 2
    functionsReached:
    - page_to_mfn
    - map_domain_page
    - gfn_valid
    - p2m_get_page_from_gfn
    - p2m_mem_paging_populate
    - mfn_valid
    - gfn_x
    - paging_mode_translate
    - ASSERT
    - p2m_is_shared
    - p2m_is_hostp2m
    - put_page
    - p2m_is_paging
    - get_page_from_gfn
    linkageType: ''
    returnType: void
    signature: "void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,\n
      \                    p2m_query_t q, uint32_t *pfec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: p2m_init_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int p2m_init_logdirty(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: p2m_free_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_free_logdirty(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: p2m_l1e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_l1e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: p2m_l2e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_l2e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pfn
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: p2m_l3e_from_pfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_l3e_from_pfn(pfn, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - ent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: set_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_recalc(level, ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - ent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: clear_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_recalc(level, ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: _needs_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _needs_recalc(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - ent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: needs_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: needs_recalc(level, ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - level
    - ','
    - ent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: valid_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: valid_recalc(level, ent)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:89,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:89,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 4
    argNames:
    - p2m
    - t
    - mfn
    - level
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 98
    functionName: p2m_type_to_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - mfn_x
    - rangeset_contains_singleton
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long p2m_type_to_flags(const struct p2m_domain *p2m,\n                                       p2m_type_t
      t,\n                                       mfn_t mfn,\n                                       unsigned
      int level)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:117,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:117,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:117,1
    - Dst: p2m_is_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:118,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:124,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:126,1
    - Dst: struct p2m_domain*::write_p2m_entry_pre
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:127,1
    - Dst: level::level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:127,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:129,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:130,1
    - Dst: p2m_entry_modify
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:132,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:132,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:132,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:133,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:133,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:137,1
    - Dst: struct p2m_domain*::write_p2m_entry_post
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:144,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:146,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:148,1
    - Dst: p2m_is_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:148,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:150,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:155,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:155,1
    - Dst: perms_strictly_increased
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:156,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:156,1
    - Dst: p2m_flush_nestedp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:157,1
    - Dst: safe_write_pte
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:160,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 5
    argNames:
    - p2m
    - gfn
    - p
    - new
    - level
    argTypes:
    - struct p2m_domain*
    - unsigned long
    - l1_pgentry_t*
    - l1_pgentry_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 163
    functionName: write_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - safe_write_pte
    - nestedhvm_enabled
    - likely
    - p2m_flush_nestedp2m
    - p2m_is_nestedp2m
    - struct p2m_domain*::write_p2m_entry_pre
    - paging_unlock
    - p2m_entry_modify
    - paging_mode_enabled
    - perms_strictly_increased
    - level::level
    - mfn_eq
    - struct p2m_domain*::write_p2m_entry_post
    - l1e_get_flags
    - paging_lock
    - l1e_get_mfn
    - p2m_get_hostp2m
    - p2m_flags_to_type
    - gfn_x
    - paging_get_hostmode
    linkageType: ''
    returnType: int
    signature: "int write_p2m_entry(struct p2m_domain *p2m, unsigned long gfn,\n                           l1_pgentry_t
      *p, l1_pgentry_t new,\n                           unsigned int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - table
    - gfn_remainder
    - gfn
    - shift
    - max
    argTypes:
    - void*
    - unsigned long*
    - unsigned long
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: p2m_find_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - P2M_DEBUG
    linkageType: ''
    returnType: l1_pgentry_t
    signature: "l1_pgentry_t *\np2m_find_entry(void *table, unsigned long *gfn_remainder,\n
      \                  unsigned long gfn, uint32_t shift, uint32_t max)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:192,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:193,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:198,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:198,1
    - Dst: p2m_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:201,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:202,1
    - Dst: p2m_free_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:205,1
    - Dst: l1e_get_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - p2m
    - p2m_entry
    - page_order
    argTypes:
    - struct p2m_domain*
    - l1_pgentry_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 206
    functionName: p2m_free_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 1
    functionsReached:
    - l1e_get_flags
    - p2m_free_ptp
    - unmap_domain_page
    - l1e_get_page
    - map_domain_page
    - p2m_free_entry
    - l1e_get_mfn
    linkageType: ''
    returnType: void
    signature: void p2m_free_entry(struct p2m_domain *p2m, l1_pgentry_t *p2m_entry,
      int page_order)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:224,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:228,1
    - Dst: p2m_alloc_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:233,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:235,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:238,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:240,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:247,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:268,1
    - Dst: p2m_alloc_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:272,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:273,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:276,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:280,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:282,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:282,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:286,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:291,1
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:293,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:294,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:299,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:301,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:301,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:303,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:309,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:309,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:310,1
    - Dst: p2m_free_ptp
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:311,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:311,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 8
    argNames:
    - p2m
    - table
    - gfn_remainder
    - gfn
    - shift
    - max
    - level
    - unmap
    argTypes:
    - struct p2m_domain*
    - void**
    - unsigned long*
    - unsigned long
    - u32
    - u32
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 313
    functionName: p2m_next_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - p2m_free_ptp
    - p2m_alloc_ptp
    - l1e_from_mfn
    - write_p2m_entry
    - map_domain_page
    - unmap_domain_page
    - p2m_find_entry
    - mfn_to_page
    - l1e_get_pfn
    - mfn_valid
    - gfn_x
    - ASSERT
    - l1e_from_pfn
    - l1e_get_mfn
    - mfn_eq
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int p2m_next_level(struct p2m_domain *p2m, void **table,\n               unsigned
      long *gfn_remainder, unsigned long gfn, u32 shift,\n               u32 max,
      unsigned int level, bool unmap)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:331,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:331,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:331,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:335,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:343,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:346,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:354,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:356,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:363,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:363,1
    - Dst: set_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:365,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:366,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:369,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:379,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - p2m
    - level
    - first_gfn
    - last_gfn
    argTypes:
    - struct p2m_domain*
    - unsigned int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 382
    functionName: p2m_pt_set_recalc_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - write_p2m_entry
    - unmap_domain_page
    - map_domain_page
    - p2m_find_entry
    - pagetable_get_mfn
    - needs_recalc
    - p2m_next_level
    - p2m_get_pagetable
    - ASSERT_UNREACHABLE
    - set_recalc
    linkageType: ''
    returnType: int
    signature: "int p2m_pt_set_recalc_range(struct p2m_domain *p2m,\n                                   unsigned
      int level,\n                                   unsigned long first_gfn,\n                                   unsigned
      long last_gfn)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:399,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:399,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:399,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:404,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:406,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:409,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:413,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:413,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:413,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:414,1
    - Dst: p2m_is_changeable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:415,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:415,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:415,1
    - Dst: p2m_is_logdirty_range
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:416,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:420,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:426,1
    - Dst: valid_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:431,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:432,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:439,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:440,1
    - Dst: set_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:442,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:443,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:447,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:453,1
    - Dst: clear_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:456,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:457,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:458,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:463,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:464,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:468,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:470,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:471,1
    - Dst: valid_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:477,1
    - Dst: P2M_DEBUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:478,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:480,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:480,1
    - Dst: p2m_recalc_type_range
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:481,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:484,1
    - Dst: p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:485,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:486,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:492,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:500,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:501,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:501,1
    - Dst: clear_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:504,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:505,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:506,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:512,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 71
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 390
    functionDepth: 6
    functionLinenumber: 390
    functionLinenumberEnd: 515
    functionName: do_recalc
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - pagetable_get_mfn
    - p2m_next_level
    - p2m_recalc_type_range
    - BUILD_BUG_ON
    - l1e_from_pfn
    - set_recalc
    - map_domain_page
    - p2m_find_entry
    - needs_recalc
    - l1e_get_pfn
    - p2m_get_pagetable
    - p2m_is_logdirty_range
    - l1e_get_flags
    - write_p2m_entry
    - _mfn
    - clear_recalc
    - smp_wmb
    - ASSERT
    - ASSERT_UNREACHABLE
    - p2m_type_to_flags
    - unmap_domain_page
    - p2m_is_changeable
    - P2M_DEBUG
    - p2m_flags_to_type
    - valid_recalc
    - unlikely
    linkageType: ''
    returnType: int
    signature: int do_recalc(struct p2m_domain *p2m, unsigned long gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:519,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:528,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:528,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:531,1
    - Dst: do_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:532,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:532,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 517
    functionDepth: 7
    functionLinenumber: 517
    functionLinenumberEnd: 536
    functionName: p2m_pt_handle_deferred_changes
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 1
    functionsReached:
    - altp2m_active
    - do_recalc
    - p2m_lock
    - p2m_unlock
    - ASSERT
    - PFN_DOWN
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_pt_handle_deferred_changes(uint64_t gpa)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 546
    functionName: p2m_flags_to_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: p2m_access_t
    signature: p2m_access_t p2m_flags_to_access(unsigned int flags)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:552,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:553,1
    - Dst: p2m_mmio_direct::p2m_mmio_direct
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:554,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:555,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:555,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:556,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:556,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:557,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:560,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:560,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:574,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:578,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:582,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:594,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:608,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:621,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:621,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:621,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:622,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:633,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:636,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:637,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:642,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:644,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:644,1
    - Dst: p2m_flags_to_access
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:645,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:646,1
    - Dst: check_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:655,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:655,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:656,1
    - Dst: p2m_allows_invalid_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:656,1
    - Dst: p2m_l3e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:657,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:657,1
    - Dst: p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:658,1
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:659,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:662,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:669,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:678,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:684,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:686,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:687,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:688,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:690,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:690,1
    - Dst: p2m_flags_to_access
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:691,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:691,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:693,1
    - Dst: p2m_allows_invalid_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:693,1
    - Dst: p2m_l1e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:694,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:694,1
    - Dst: p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:695,1
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:697,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:700,1
    - Dst: p2m_find_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:707,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:710,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:711,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:716,1
    - Dst: p2m_get_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:718,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:718,1
    - Dst: p2m_flags_to_access
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:719,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:720,1
    - Dst: check_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:729,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:729,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:730,1
    - Dst: p2m_allows_invalid_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:730,1
    - Dst: p2m_l2e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:731,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:731,1
    - Dst: p2m_type_to_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:732,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:733,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:736,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:747,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:748,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:750,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:750,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:752,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:752,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:759,1
    - Dst: p2m_free_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:760,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:763,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 4
    argNames:
    - mfn
    - new
    - old
    - order
    argTypes:
    - mfn_t
    - p2m_type_t
    - p2m_type_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 765
    functionName: check_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 1
    functionsReached:
    - pagetable_get_mfn
    - p2m_next_level
    - need_iommu_pt_sync
    - p2m_flags_to_access
    - l2e_empty
    - _dfn
    - map_domain_page
    - p2m_find_entry
    - l1e_get_pfn
    - mfn_valid
    - p2m_get_pagetable
    - rangeset_overlaps_range
    - p2m_free_entry
    - mfn_eq
    - l1e_get_flags
    - write_p2m_entry
    - p2m_mmio_direct::p2m_mmio_direct
    - l3e_empty
    - mfn_x
    - _mfn
    - p2m_allows_invalid_mfn
    - p2m_l3e_from_pfn
    - iommu_legacy_map
    - ASSERT
    - l1e_empty
    - p2m_l2e_from_pfn
    - p2m_l1e_from_pfn
    - check_entry
    - p2m_type_to_flags
    - unmap_domain_page
    - iommu_legacy_unmap
    - p2m_flags_to_type
    - gfn_x
    - p2m_get_iommu_flags
    linkageType: ''
    returnType: void
    signature: "void check_entry(mfn_t mfn, p2m_type_t new, p2m_type_t old,\n                        unsigned
      int order)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:773,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:781,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:781,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:808,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:808,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:811,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:812,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:815,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:817,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:820,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:821,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:822,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:825,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:826,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:831,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:834,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:834,1
    - Dst: p2m_pod_demand_populate
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:838,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:840,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:845,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:850,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:850,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:851,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:852,1
    - Dst: p2m_recalc_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:853,1
    - Dst: _needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:853,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:854,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:855,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:857,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:857,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:857,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:858,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:861,1
    - Dst: _needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:862,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:864,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:867,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:868,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:873,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:877,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:877,1
    - Dst: p2m_pod_demand_populate
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:880,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:886,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:891,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:891,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:891,1
    - Dst: p2m_recalc_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:892,1
    - Dst: _needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:892,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:893,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:894,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:896,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:896,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:896,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:897,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:900,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:901,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:903,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:905,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:906,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:911,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:912,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:913,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:916,1
    - Dst: p2m_pod_demand_populate
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:919,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:925,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:928,1
    - Dst: p2m_recalc_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:929,1
    - Dst: _needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:929,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:930,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:932,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:932,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:932,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:932,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:933,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:933,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 112
    argCount: 7
    argNames:
    - p2m
    - gfn_
    - t
    - a
    - q
    - page_order
    - sve
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - p2m_query_t
    - unsigned int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 934
    functionName: p2m_pt_get_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - pagetable_get_mfn
    - p2m_is_valid
    - map_domain_page
    - needs_recalc
    - l3_table_offset
    - p2m_get_pagetable
    - mfn_valid
    - l2e_get_mfn
    - l3e_get_flags
    - l3e_get_mfn
    - l1_table_offset
    - l1e_get_flags
    - gdprintk
    - l4_table_offset
    - ASSERT
    - l1e_get_mfn
    - p2m_is_paging
    - p2m_recalc_type
    - l2e_get_flags
    - unmap_domain_page
    - p2m_pod_demand_populate
    - _needs_recalc
    - l4e_get_flags
    - mfn_add
    - p2m_flags_to_type
    - p2m_is_ram
    - l2_table_offset
    - gfn_x
    - paging_mode_translate
    - p2m_is_any_ram
    - l4e_get_mfn
    - p2m_is_pod
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t p2m_pt_get_entry(struct p2m_domain *p2m, gfn_t gfn_,\n                 p2m_type_t
      *t, p2m_access_t *a, p2m_query_t q,\n                 unsigned int *page_order,
      bool *sve)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:944,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:944,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:947,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:947,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:949,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:949,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:949,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:954,1
    - Dst: needs_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:955,1
    - Dst: set_recalc
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:959,1
    - Dst: write_p2m_entry
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:960,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:963,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:970,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - p2m
    - ot
    - nt
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 936
    functionDepth: 6
    functionLinenumber: 936
    functionLinenumberEnd: 974
    functionName: p2m_pt_change_entry_type_global
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - write_p2m_entry
    - unmap_domain_page
    - map_domain_page
    - guest_flush_tlb_mask
    - pagetable_get_mfn
    - needs_recalc
    - p2m_get_pagetable
    - ASSERT
    - pagetable_get_pfn
    - ASSERT_UNREACHABLE
    - hap_enabled
    - set_recalc
    linkageType: ''
    returnType: void
    signature: "void p2m_pt_change_entry_type_global(\n    struct p2m_domain *p2m,
      p2m_type_t ot, p2m_type_t nt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:984,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:984,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:990,1
    - Dst: p2m_pt_set_recalc_range
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:992,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:999,1
    - Dst: p2m_pt_set_recalc_range
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1001,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 5
    argNames:
    - p2m
    - ot
    - nt
    - first_gfn
    - last_gfn
    argTypes:
    - struct p2m_domain*
    - p2m_type_t
    - p2m_type_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 976
    functionDepth: 7
    functionLinenumber: 976
    functionLinenumberEnd: 1014
    functionName: p2m_pt_change_entry_type_range
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - max
    - p2m_pt_set_recalc_range
    - min
    - ASSERT
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: "int p2m_pt_change_entry_type_range(\n    struct p2m_domain *p2m, p2m_type_t
      ot, p2m_type_t nt,\n    unsigned long first_gfn, unsigned long last_gfn)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1022,1
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1022,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1023,1
    - Dst: pod_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1023,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1026,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1026,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1035,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1035,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1035,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1040,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1045,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1050,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1057,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1059,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1060,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1060,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1060,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1066,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1070,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1073,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1080,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1083,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1085,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1086,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1086,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1086,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1093,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1095,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1096,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1096,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1096,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1099,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1101,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1104,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1107,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1114,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1120,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1120,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1121,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1123,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1127,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1128,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1128,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1128,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1129,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1132,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1133,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1136,1
    - Dst: P2M_PRINTK
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1138,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1140,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1143,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1145,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1147,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1150,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1155,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1159,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1163
    functionName: p2m_pt_audit_p2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 0
    functionsReached:
    - pagetable_get_mfn
    - SHARED_M2P
    - P2M_PRINTK
    - p2m_locked_by_me
    - l3e_get_pfn
    - pod_locked_by_me
    - BUG
    - map_domain_page
    - get_gpfn_from_mfn
    - l1e_get_pfn
    - p2m_get_pagetable
    - mfn_valid
    - p2m_is_grant
    - l3e_get_flags
    - printk
    - l2e_get_pfn
    - l1e_get_flags
    - map_l3t_from_l4e
    - _mfn
    - ASSERT
    - p2m_is_shared
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - map_l1t_from_l2e
    - l4e_get_flags
    - p2m_flags_to_type
    - pagetable_get_pfn
    - p2m_is_pod
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check p2m_pt_audit_p2m(struct p2m_domain *p2m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1176,1
    - Dst: hap_p2m_init
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1177,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1178,1
    - Dst: shadow_p2m_init
      Src: /src/xen/xen/arch/x86/mm/p2m-pt.c:1179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1184
    functionName: p2m_pt_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/p2m-pt.c
    functionUses: 1
    functionsReached:
    - shadow_p2m_init
    - hap_p2m_init
    - hap_enabled
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void p2m_pt_init(struct p2m_domain *p2m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/physmap.c:22,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/physmap.c:24,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/mm/physmap.c:40,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/arch/x86/mm/physmap.c:42,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/arch/x86/mm/physmap.c:43,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/physmap.c:47,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/physmap.c:47,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/physmap.c:47,1
    - Dst: p2m_add_page
      Src: /src/xen/xen/arch/x86/mm/physmap.c:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 54
    functionName: guest_physmap_add_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/physmap.c
    functionUses: 1
    functionsReached:
    - put_page_and_type
    - p2m_add_page
    - mfn_to_page
    - set_gpfn_from_mfn
    - need_iommu_pt_sync
    - mfn_x
    - gfn_x
    - paging_mode_translate
    - get_page_and_type
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_add_page(struct domain *d, gfn_t gfn, mfn_t mfn,\n
      \                      unsigned int page_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/physmap.c:61,1
    - Dst: p2m_remove_page
      Src: /src/xen/xen/arch/x86/mm/physmap.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: guest_physmap_remove_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/physmap.c
    functionUses: 1
    functionsReached:
    - paging_mode_translate
    - p2m_remove_page
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_remove_page(struct domain *d, gfn_t gfn,\n                          mfn_t
      mfn, unsigned int page_order)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/physmap.c:70,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/physmap.c:72,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/arch/x86/mm/physmap.c:74,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/physmap.c:74,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/physmap.c:74,1
    - Dst: p2m_access_to_iommu_flags
      Src: /src/xen/xen/arch/x86/mm/physmap.c:76,1
    - Dst: p2m_add_identity_entry
      Src: /src/xen/xen/arch/x86/mm/physmap.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - d
    - gfn
    - p2ma
    - flag
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_access_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: set_identity_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/physmap.c
    functionUses: 0
    functionsReached:
    - p2m_add_identity_entry
    - _mfn
    - p2m_access_to_iommu_flags
    - iommu_legacy_map
    - paging_mode_translate
    - _dfn
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int set_identity_p2m_entry(struct domain *d, unsigned long gfn,\n
      \                          p2m_access_t p2ma, unsigned int flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/physmap.c:84,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/physmap.c:86,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/mm/physmap.c:88,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/mm/physmap.c:88,1
    - Dst: p2m_remove_identity_entry
      Src: /src/xen/xen/arch/x86/mm/physmap.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: clear_identity_p2m_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/physmap.c
    functionUses: 0
    functionsReached:
    - iommu_legacy_unmap
    - paging_mode_translate
    - p2m_remove_identity_entry
    - _dfn
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int clear_identity_p2m_entry(struct domain *d, unsigned long gfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:37,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:38,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:39,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:40,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:41,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:42,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:43,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:44,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:45,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:46,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:47,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:48,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:53,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:59,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:60,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:61,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:63,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p2m
    - gfn
    - access
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - xenmem_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 71
    functionName: _p2m_get_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - gfn_unlock
    - struct p2m_domain*::get_entry
    - gfn_lock
    - mfn_eq
    - gfn_eq
    - ACCESS
    linkageType: ''
    returnType: int
    signature: "int _p2m_get_mem_access(struct p2m_domain *p2m, gfn_t gfn,\n                               xenmem_access_t
      *access)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:82,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:83,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:85,1
    - Dst: _p2m_get_mem_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:87,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:87,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - struct vm_event_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 130
    functionName: p2m_mem_access_emulate_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 1
    functionsReached:
    - altp2m_active
    - _p2m_get_mem_access
    - p2m_get_altp2m
    - _gfn
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: "bool p2m_mem_access_emulate_check(struct vcpu *v,\n                                  const
      struct vm_event_st *rsp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:137,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:146,1
    - Dst: p2m_get_altp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:147,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:149,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:154,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:155,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:159,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:160,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:161,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:166,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:167,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:169,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:171,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:174,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:179,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:182,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:187,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:188,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:194,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:196,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:198,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:207,1
    - Dst: hvm_emulate_one_vm_event
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:212,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:219,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:225,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - gpa
    - gla
    - npfec
    - req_ptr
    argTypes:
    - paddr_t
    - unsigned long
    - struct npfec
    - struct vm_event_st**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 132
    functionDepth: 6
    functionLinenumber: 132
    functionLinenumberEnd: 252
    functionName: p2m_mem_access_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - gdprintk
    - altp2m_active
    - p2m_get_altp2m
    - gfn_unlock
    - struct p2m_domain*::get_entry
    - gaddr_to_gfn
    - vm_event_check_ring
    - gfn_lock
    - ASSERT
    - domain_crash
    - gfn_x
    - struct p2m_domain*::set_entry
    - hvm_emulate_one_vm_event
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: "bool p2m_mem_access_check(paddr_t gpa, unsigned long gla,\n                          struct
      npfec npfec,\n                          struct vm_event_st **req_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: altp2m_get_effective_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:263,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - d
    - hp2m
    - ap2m
    - a
    - gfn
    argTypes:
    - struct domain*
    - struct p2m_domain*
    - struct p2m_domain*
    - p2m_access_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 273
    functionName: p2m_set_altp2m_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 0
    functionsReached:
    - struct p2m_domain*::set_entry
    - altp2m_get_effective_entry
    linkageType: ''
    returnType: int
    signature: "int p2m_set_altp2m_mem_access(struct domain *d, struct p2m_domain
      *hp2m,\n                                     struct p2m_domain *ap2m, p2m_access_t
      a,\n                                     gfn_t gfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_set_altp2m_mem_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:283,1
    - Dst: p2m_get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:292,1
    - Dst: struct p2m_domain*::set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - d
    - p2m
    - ap2m
    - a
    - gfn
    argTypes:
    - struct domain*
    - struct p2m_domain*
    - struct p2m_domain*
    - p2m_access_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: set_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 1
    functionsReached:
    - p2m_get_gfn_type_access
    - struct p2m_domain*::set_entry
    - p2m_set_altp2m_mem_access
    linkageType: ''
    returnType: int
    signature: "int set_mem_access(struct domain *d, struct p2m_domain *p2m,\n                          struct
      p2m_domain *ap2m, p2m_access_t a,\n                          gfn_t gfn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:309,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:318,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:321,1
    - Dst: xenmem_access_to_p2m_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:325,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:329,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:335,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:337,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:339,1
    - Dst: set_mem_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:341,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:341,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:347,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:355,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:356,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 7
    argNames:
    - d
    - gfn
    - nr
    - start
    - mask
    - access
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - uint32_t
    - uint32_t
    - uint32_t
    - xenmem_access_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 359
    functionName: p2m_set_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 1
    functionsReached:
    - array_index_nospec
    - altp2m_is_eptp_valid
    - xenmem_access_to_p2m_access
    - _gfn
    - p2m_lock
    - p2m_unlock
    - gfn_x
    - hypercall_preempt_check
    - gfn_eq
    - set_mem_access
    - p2m_get_hostp2m
    linkageType: ''
    returnType: long
    signature: "long p2m_set_mem_access(struct domain *d, gfn_t gfn, uint32_t nr,\n
      \                       uint32_t start, uint32_t mask, xenmem_access_t access,\n
      \                       unsigned int altp2m_idx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:367,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:374,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:377,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:381,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:383,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:391,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:392,1
    - Dst: xenmem_access_to_p2m_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:398,1
    - Dst: set_mem_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:404,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:404,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:410,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:418,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:419,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 5
    argNames:
    - d
    - nr
    - start
    - mask
    - altp2m_idx
    argTypes:
    - struct domain*
    - uint32_t
    - uint32_t
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 422
    functionName: p2m_set_mem_access_multi
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 2
    functionsReached:
    - array_index_nospec
    - altp2m_is_eptp_valid
    - xenmem_access_to_p2m_access
    - _gfn
    - p2m_lock
    - p2m_unlock
    - hypercall_preempt_check
    - copy_from_guest_offset
    - set_mem_access
    - p2m_get_hostp2m
    linkageType: ''
    returnType: long
    signature: "long p2m_set_mem_access_multi(struct domain *d,\n                              const
      XEN_GUEST_HANDLE(const_uint64) pfn_list,\n                              const
      XEN_GUEST_HANDLE(const_uint8) access_list,\n                              uint32_t
      nr, uint32_t start, uint32_t mask,\n                              unsigned int
      altp2m_idx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:427,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:430,1
    - Dst: altp2m_is_eptp_valid
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:437,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:440,1
    - Dst: _p2m_get_mem_access
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - d
    - gfn
    - access
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - xenmem_access_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 445
    functionName: p2m_get_mem_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 4
    functionsReached:
    - array_index_nospec
    - altp2m_active
    - _p2m_get_mem_access
    - altp2m_is_eptp_valid
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t
      *access,\n                       unsigned int altp2m_idx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:449,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:449,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:451,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - access_required
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 466
    functionName: arch_p2m_set_access_required
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - altp2m_active
    - atomic_read
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void arch_p2m_set_access_required(struct domain *d, bool access_required)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:470,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/mem_access.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: p2m_mem_access_sanity_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_access.c
    functionUses: 0
    functionsReached:
    - hap_enabled
    - is_hvm_domain
    linkageType: ''
    returnType: bool
    signature: bool p2m_mem_access_sanity_check(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:33,1
    - Dst: vm_event_claim_slot
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:42,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:52,1
    - Dst: vm_event_put_request
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - d
    - gfn
    - p2mt
    argTypes:
    - struct domain*
    - gfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: p2m_mem_paging_drop_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - vm_event_claim_slot
    - vm_event_put_request
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void p2m_mem_paging_drop_page(struct domain *d, gfn_t gfn, p2m_type_t
      p2mt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:86,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:91,1
    - Dst: vm_event_claim_slot
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:92,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:97,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:98,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:101,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:102,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:109,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:110,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:118,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:120,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:125,1
    - Dst: vm_event_vcpu_pause
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:127,1
    - Dst: vm_event_cancel_slot
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:135,1
    - Dst: vm_event_put_request
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 144
    functionName: p2m_mem_paging_populate
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 7
    functionsReached:
    - vm_event_claim_slot
    - gdprintk
    - p2m_set_entry
    - vm_event_cancel_slot
    - gfn_unlock
    - struct p2m_domain*::get_entry
    - p2m_is_paging
    - vm_event_put_request
    - gfn_x
    - gfn_lock
    - vm_event_vcpu_pause
    - domain_crash
    - vcpu_pause_nosync
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_mem_paging_populate(struct domain *d, gfn_t gfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:163,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:171,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:173,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:174,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:179,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:181,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:182,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:186,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:186,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:186,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - d
    - rsp
    argTypes:
    - struct domain*
    - struct vm_event_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 190
    functionName: p2m_mem_paging_resume
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 0
    functionsReached:
    - paging_mode_log_dirty
    - p2m_set_entry
    - set_gpfn_from_mfn
    - gfn_unlock
    - _gfn
    - mfn_x
    - struct p2m_domain*::get_entry
    - mfn_valid
    - gfn_x
    - gfn_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_mem_paging_resume(struct domain *d, struct vm_event_st *rsp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:212,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:218,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:220,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:223,1
    - Dst: p2m_is_pageable
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:227,1
    - Dst: is_iomem_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:231,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:235,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:244,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 249
    functionName: nominate
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 1
    functionsReached:
    - p2m_set_entry
    - mfn_to_page
    - gfn_unlock
    - p2m_is_pageable
    - struct p2m_domain*::get_entry
    - mfn_valid
    - is_iomem_page
    - gfn_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int nominate(struct domain *d, gfn_t gfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:275,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:278,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:281,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:282,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:282,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:290,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:291,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:291,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:303,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:306,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:310,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:314,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:317,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 319
    functionName: evict
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 1
    functionsReached:
    - put_page_alloc_ref
    - p2m_set_entry
    - mfn_to_page
    - gfn_unlock
    - struct p2m_domain*::get_entry
    - mfn_valid
    - get_page
    - gfn_lock
    - atomic_inc
    - unlikely
    - put_page
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int evict(struct domain *d, gfn_t gfn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:339,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:342,1
    - Dst: gfn_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:345,1
    - Dst: struct p2m_domain*::get_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:347,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:355,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:361,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:361,1
    - Dst: page_alloc_mm_pre_lock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:365,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:366,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:367,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:369,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:369,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:375,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:377,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:378,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:382,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:385,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:386,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:387,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:400,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:401,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:405,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:405,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:405,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:408,1
    - Dst: gfn_unlock
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:412,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:421,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:422,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 426
    functionName: prepare
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 14
    functionsReached:
    - copy_from_guest
    - set_gpfn_from_mfn
    - alloc_domheap_page
    - gprintk
    - atomic_dec
    - paging_mode_log_dirty
    - page_to_mfn
    - map_domain_page
    - p2m_set_entry
    - gfn_unlock
    - mfn_valid
    - get_page
    - gfn_lock
    - guest_handle_is_null
    - domain_crash
    - mfn_x
    - struct p2m_domain*::get_entry
    - p2m_get_hostp2m
    - unmap_domain_page
    - put_page_alloc_ref
    - page_alloc_mm_pre_lock
    - gfn_x
    - unlikely
    - guest_handle_okay
    - put_page
    linkageType: ''
    returnType: int
    signature: "int prepare(struct domain *d, gfn_t gfn,\n                   XEN_GUEST_HANDLE_64(const_uint8)
      buffer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:428,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:435,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:438,1
    - Dst: xsm_mem_paging
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:442,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:447,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:447,1
    - Dst: nominate
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:453,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:453,1
    - Dst: evict
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:457,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:457,1
    - Dst: prepare
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:461,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:461,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:471,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/mem_paging.c:475,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 477
    functionName: mem_paging_memop
    functionSourceFile: /src/xen/xen/arch/x86/mm/mem_paging.c
    functionUses: 4
    functionsReached:
    - copy_from_guest
    - _gfn
    - evict
    - vm_event_check_ring
    - __copy_to_guest
    - prepare
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - nominate
    - xsm_mem_paging
    - rcu_lock_live_remote_domain_by_id
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: int mem_paging_memop(XEN_GUEST_HANDLE_PARAM(xen_mem_paging_op_t) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: PAGING_PRINTK
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGING_PRINTK(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: PAGING_ERROR
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGING_ERROR(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - flag
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: PAGING_DEBUG
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGING_DEBUG(flag, _f, _a...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct domain*::arch::paging::alloc_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:49,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:50,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/paging.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: paging_new_log_dirty_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - struct domain*::arch::paging::alloc_page
    - unlikely
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t paging_new_log_dirty_page(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_new_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:64,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:66,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: paging_new_log_dirty_leaf
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - clear_domain_page
    - paging_new_log_dirty_page
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t paging_new_log_dirty_leaf(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_new_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:75,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:77,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:80,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 86
    functionName: paging_new_log_dirty_node
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - paging_new_log_dirty_page
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t paging_new_log_dirty_node(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/paging.c:91,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:91,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: paging_map_log_dirty_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - map_domain_page
    - likely
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t *paging_map_log_dirty_bitmap(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct domain*::arch::paging::free_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:99,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - mfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: paging_free_log_dirty_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - struct domain*::arch::paging::free_page
    - mfn_to_page
    linkageType: ''
    returnType: void
    signature: void paging_free_log_dirty_page(struct domain *d, mfn_t mfn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/paging.c:107,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:109,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:111,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/paging.c:117,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:119,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:125,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:129,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:136,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:139,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:143,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:146,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:149,1
    - Dst: paging_free_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:150,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:152,1
    - Dst: paging_free_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:153,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/paging.c:156,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:165,1
    - Dst: paging_free_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:168,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/paging.c:171,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:180,1
    - Dst: paging_free_log_dirty_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:184,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:187,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:199,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - d
    - rc
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 202
    functionName: paging_free_log_dirty_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - paging_lock
    - paging_unlock
    - paging_free_log_dirty_page
    - ASSERT
    - hypercall_preempt_check
    - mfn_eq
    - memset
    linkageType: ''
    returnType: int
    signature: int paging_free_log_dirty_bitmap(struct domain *d, int rc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/arch/x86/mm/paging.c:208,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:217,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/paging.c:220,1
    - Dst: struct domain*::arch::paging::log_dirty::ops::enable
      Src: /src/xen/xen/arch/x86/mm/paging.c:221,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/paging.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 225
    functionName: paging_log_dirty_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - paging_mode_log_dirty
    - domain_unpause
    - has_arch_pdevs
    - domain_pause
    - struct domain*::arch::paging::log_dirty::ops::enable
    linkageType: ''
    returnType: int
    signature: int paging_log_dirty_enable(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/paging.c:233,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:235,1
    - Dst: struct domain*::arch::paging::log_dirty::ops::disable
      Src: /src/xen/xen/arch/x86/mm/paging.c:237,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:238,1
    - Dst: paging_free_log_dirty_bitmap
      Src: /src/xen/xen/arch/x86/mm/paging.c:242,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/paging.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - resuming
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 249
    functionName: paging_log_dirty_disable
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - paging_mode_log_dirty
    - domain_unpause
    - domain_pause
    - paging_free_log_dirty_bitmap
    - struct domain*::arch::paging::log_dirty::ops::disable
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int paging_log_dirty_disable(struct domain *d, bool resuming)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:259,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/paging.c:263,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/paging.c:263,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/paging.c:263,1
    - Dst: pfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:263,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:270,1
    - Dst: VALID_M2P
      Src: /src/xen/xen/arch/x86/mm/paging.c:270,1
    - Dst: pfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:270,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/paging.c:273,1
    - Dst: paging_logdirty_levels
      Src: /src/xen/xen/arch/x86/mm/paging.c:273,1
    - Dst: L1_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:274,1
    - Dst: L2_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:275,1
    - Dst: L3_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:276,1
    - Dst: L4_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:277,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/paging.c:280,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:282,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:282,1
    - Dst: paging_new_log_dirty_node
      Src: /src/xen/xen/arch/x86/mm/paging.c:285,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:286,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:286,1
    - Dst: paging_map_log_dirty_bitmap
      Src: /src/xen/xen/arch/x86/mm/paging.c:290,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:292,1
    - Dst: paging_new_log_dirty_node
      Src: /src/xen/xen/arch/x86/mm/paging.c:293,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:294,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:295,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:298,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:300,1
    - Dst: paging_new_log_dirty_node
      Src: /src/xen/xen/arch/x86/mm/paging.c:301,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:302,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:303,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:306,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:308,1
    - Dst: paging_new_log_dirty_leaf
      Src: /src/xen/xen/arch/x86/mm/paging.c:309,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:310,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:311,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:314,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/mm/paging.c:315,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/arch/x86/mm/paging.c:316,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:317,1
    - Dst: PAGING_DEBUG
      Src: /src/xen/xen/arch/x86/mm/paging.c:320,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:322,1
    - Dst: pfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:322,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:328,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - d
    - pfn
    - dirty
    argTypes:
    - struct domain*
    - pfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 330
    functionName: set_pfn_logdirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - SHARED_M2P
    - BUILD_BUG_ON
    - L2_LOGDIRTY_IDX
    - pfn_x
    - PAGING_DEBUG
    - paging_mode_log_dirty
    - L1_LOGDIRTY_IDX
    - map_domain_page
    - paging_unlock
    - paging_map_log_dirty_bitmap
    - BUG_ON
    - __test_and_clear_bit
    - mfn_eq
    - VALID_M2P
    - __test_and_set_bit
    - paging_new_log_dirty_leaf
    - mfn_x
    - paging_logdirty_levels
    - unmap_domain_page
    - paging_new_log_dirty_node
    - L3_LOGDIRTY_IDX
    - paging_mode_translate
    - paging_lock_recursive
    - L4_LOGDIRTY_IDX
    - unlikely
    linkageType: ''
    returnType: void
    signature: void set_pfn_logdirty(struct domain *d, pfn_t pfn, bool dirty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_pfn_logdirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - pfn
    argTypes:
    - struct domain*
    - pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: paging_mark_pfn_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 10
    functionsReached:
    - set_pfn_logdirty
    linkageType: ''
    returnType: void
    signature: void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_pfn_logdirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - pfn
    argTypes:
    - struct domain*
    - pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: paging_mark_pfn_clean
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 3
    functionsReached:
    - set_pfn_logdirty
    linkageType: ''
    returnType: void
    signature: void paging_mark_pfn_clean(struct domain *d, pfn_t pfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:347,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/paging.c:347,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/paging.c:348,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:348,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/paging.c:352,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/paging.c:352,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:352,1
    - Dst: set_pfn_logdirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 355
    functionName: paging_mark_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 11
    functionsReached:
    - paging_mode_log_dirty
    - set_pfn_logdirty
    - get_gpfn_from_mfn
    - _pfn
    - mfn_to_page
    - mfn_x
    - mfn_valid
    - page_get_owner
    linkageType: ''
    returnType: void
    signature: void paging_mark_dirty(struct domain *d, mfn_t gmfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:366,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/paging.c:366,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:367,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:367,1
    - Dst: _pfn
      Src: /src/xen/xen/arch/x86/mm/paging.c:370,1
    - Dst: get_gpfn_from_mfn
      Src: /src/xen/xen/arch/x86/mm/paging.c:370,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:370,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:372,1
    - Dst: VALID_M2P
      Src: /src/xen/xen/arch/x86/mm/paging.c:372,1
    - Dst: pfn_x
      Src: /src/xen/xen/arch/x86/mm/paging.c:372,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:376,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:379,1
    - Dst: L4_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:380,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:381,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:382,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:385,1
    - Dst: L3_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:386,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:387,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:388,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:391,1
    - Dst: L2_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:392,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:393,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:394,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:397,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm/paging.c:398,1
    - Dst: L1_LOGDIRTY_IDX
      Src: /src/xen/xen/arch/x86/mm/paging.c:398,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 402
    functionName: paging_mfn_is_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - paging_mode_log_dirty
    - mfn_eq
    - unmap_domain_page
    - L1_LOGDIRTY_IDX
    - get_gpfn_from_mfn
    - map_domain_page
    - _pfn
    - paging_locked_by_me
    - mfn_x
    - L3_LOGDIRTY_IDX
    - ASSERT
    - L2_LOGDIRTY_IDX
    - L4_LOGDIRTY_IDX
    - unlikely
    - VALID_M2P
    - test_bit
    - pfn_x
    linkageType: ''
    returnType: bool
    signature: bool paging_mfn_is_dirty(const struct domain *d, mfn_t gmfn)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/paging.c:423,1
    - Dst: hvm_mapped_guest_frames_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:425,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/paging.c:427,1
    - Dst: p2m_flush_hardware_cached_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:434,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/paging.c:437,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/paging.c:440,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:445,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/paging.c:447,1
    - Dst: PAGING_DEBUG
      Src: /src/xen/xen/arch/x86/mm/paging.c:453,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/paging.c:459,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/paging.c:461,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/mm/paging.c:464,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:468,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:469,1
    - Dst: paging_map_log_dirty_bitmap
      Src: /src/xen/xen/arch/x86/mm/paging.c:476,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:483,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:484,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:487,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:488,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/paging.c:494,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:495,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:496,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/paging.c:498,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/mm/paging.c:500,1
    - Dst: clear_guest_offset
      Src: /src/xen/xen/arch/x86/mm/paging.c:503,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:514,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:515,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:519,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/paging.c:521,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:530,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/x86/mm/paging.c:533,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:543,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:561,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:566,1
    - Dst: struct domain*::arch::paging::log_dirty::ops::clean
      Src: /src/xen/xen/arch/x86/mm/paging.c:576,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/paging.c:578,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:583,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/paging.c:584,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:587,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:589,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:591,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/paging.c:593,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 112
    argCount: 3
    argNames:
    - d
    - sc
    - resuming
    argTypes:
    - struct domain*
    - struct xen_domctl_shadow_op*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 596
    functionName: paging_log_dirty_op
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - likely
    - copy_to_guest_offset
    - hvm_mapped_guest_frames_mark_dirty
    - is_hvm_domain
    - PAGING_DEBUG
    - map_domain_page
    - paging_unlock
    - paging_map_log_dirty_bitmap
    - guest_handle_is_null
    - printk
    - mfn_eq
    - domain_unpause
    - paging_lock
    - p2m_flush_hardware_cached_dirty
    - min
    - ASSERT
    - hypercall_preempt_check
    - struct domain*::arch::paging::log_dirty::ops::clean
    - memset
    - unmap_domain_page
    - domain_pause
    - clear_guest_offset
    - clear_page
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int paging_log_dirty_op(struct domain *d,\n                               struct
      xen_domctl_shadow_op *sc,\n                               bool resuming)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - ops
    argTypes:
    - struct domain*
    - struct log_dirty_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: paging_log_dirty_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void paging_log_dirty_init(struct domain *d, const struct log_dirty_ops
      *ops)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:620,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/paging.c:623,1
    - Dst: mm_lock_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:624,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:635,1
    - Dst: hap_domain_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:636,1
    - Dst: shadow_domain_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 641
    functionName: paging_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - mm_lock_init
    - p2m_init
    - hap_domain_init
    - INIT_PAGE_LIST_HEAD
    - shadow_domain_init
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: int paging_domain_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:646,1
    - Dst: hap_vcpu_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:647,1
    - Dst: shadow_vcpu_init
      Src: /src/xen/xen/arch/x86/mm/paging.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: paging_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - hap_vcpu_init
    - hap_enabled
    - shadow_vcpu_init
    linkageType: ''
    returnType: void
    signature: void paging_vcpu_init(struct vcpu *v)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:659,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/paging.c:661,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:665,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/paging.c:667,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:671,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/paging.c:671,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/paging.c:673,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:684,1
    - Dst: xsm_shadow_control
      Src: /src/xen/xen/arch/x86/mm/paging.c:692,1
    - Dst: paging_log_dirty_enable
      Src: /src/xen/xen/arch/x86/mm/paging.c:711,1
    - Dst: paging_log_dirty_disable
      Src: /src/xen/xen/arch/x86/mm/paging.c:714,1
    - Dst: paging_log_dirty_op
      Src: /src/xen/xen/arch/x86/mm/paging.c:722,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:726,1
    - Dst: hap_domctl
      Src: /src/xen/xen/arch/x86/mm/paging.c:727,1
    - Dst: shadow_domctl
      Src: /src/xen/xen/arch/x86/mm/paging.c:729,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - d
    - sc
    - resuming
    argTypes:
    - struct domain*
    - struct xen_domctl_shadow_op*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 730
    functionName: paging_domctl
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - hap_domctl
    - paging_log_dirty_op
    - shadow_domctl
    - hap_enabled
    - printk
    - unlikely
    - paging_log_dirty_enable
    - xsm_shadow_control
    - paging_log_dirty_disable
    linkageType: ''
    returnType: int
    signature: "int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,\n
      \                 XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl,\n                  bool
      resuming)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/mm/paging.c:733,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/mm/paging.c:739,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/x86/mm/paging.c:746,1
    - Dst: xsm_domctl
      Src: /src/xen/xen/arch/x86/mm/paging.c:750,1
    - Dst: domctl_lock_acquire
      Src: /src/xen/xen/arch/x86/mm/paging.c:753,1
    - Dst: paging_domctl
      Src: /src/xen/xen/arch/x86/mm/paging.c:755,1
    - Dst: domctl_lock_release
      Src: /src/xen/xen/arch/x86/mm/paging.c:757,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/x86/mm/paging.c:763,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm/paging.c:766,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/arch/x86/mm/paging.c:768,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 772
    functionName: do_paging_domctl_cont
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - paging_domctl
    - copy_from_guest
    - rcu_lock_domain_by_id
    - __copy_field_to_guest
    - domctl_lock_acquire
    - hypercall_create_continuation
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - domctl_lock_release
    - xsm_domctl
    linkageType: ''
    returnType: long
    signature: "long do_paging_domctl_cont(\n    XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
      u_domctl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:777,1
    - Dst: hap_vcpu_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:778,1
    - Dst: shadow_vcpu_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 781
    functionName: paging_vcpu_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - hap_vcpu_teardown
    - shadow_vcpu_teardown
    - hap_enabled
    linkageType: ''
    returnType: void
    signature: void paging_vcpu_teardown(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:789,1
    - Dst: hap_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:790,1
    - Dst: shadow_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:792,1
    - Dst: paging_free_log_dirty_bitmap
      Src: /src/xen/xen/arch/x86/mm/paging.c:799,1
    - Dst: p2m_pod_empty_cache
      Src: /src/xen/xen/arch/x86/mm/paging.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 808
    functionName: paging_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - paging_free_log_dirty_bitmap
    - shadow_teardown
    - hap_teardown
    - p2m_pod_empty_cache
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: int paging_teardown(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:813,1
    - Dst: PAGING_PRINTK
      Src: /src/xen/xen/arch/x86/mm/paging.c:815,1
    - Dst: hap_final_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:820,1
    - Dst: hap_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:829,1
    - Dst: shadow_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:831,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:835,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/paging.c:835,1
    - Dst: PAGING_PRINTK
      Src: /src/xen/xen/arch/x86/mm/paging.c:837,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:840,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:841,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:842,1
    - Dst: p2m_final_teardown
      Src: /src/xen/xen/arch/x86/mm/paging.c:844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 845
    functionName: paging_final_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 2
    functionsReached:
    - p2m_teardown
    - PAGING_PRINTK
    - hap_final_teardown
    - shadow_teardown
    - ASSERT
    - hap_teardown
    - p2m_final_teardown
    - hap_enabled
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void paging_final_teardown(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:868,1
    - Dst: hap_enable
      Src: /src/xen/xen/arch/x86/mm/paging.c:869,1
    - Dst: shadow_enable
      Src: /src/xen/xen/arch/x86/mm/paging.c:871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - d
    - mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 872
    functionName: paging_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 2
    functionsReached:
    - hap_enable
    - shadow_enable
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: int paging_enable(struct domain *d, u32 mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:883,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/paging.c:883,1
    - Dst: struct vcpu*::arch::paging::mode::shadow::pagetable_dying
      Src: /src/xen/xen/arch/x86/mm/paging.c:885,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/paging.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 889
    functionName: pagetable_dying
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 2
    functionsReached:
    - BUG
    - ASSERT
    - paging_mode_shadow
    - struct vcpu*::arch::paging::mode::shadow::pagetable_dying
    linkageType: ''
    returnType: void
    signature: void pagetable_dying(paddr_t gpa)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:895,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:897,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/paging.c:898,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:899,1
    - Dst: paging_mode_sh_forced
      Src: /src/xen/xen/arch/x86/mm/paging.c:900,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:901,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/mm/paging.c:902,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:903,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/paging.c:904,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:905,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/paging.c:906,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:907,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/paging.c:908,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:909,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/paging.c:910,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:911,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 914
    functionName: paging_dump_domain_info
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - paging_mode_log_dirty
    - paging_mode_external
    - paging_mode_shadow
    - paging_mode_enabled
    - paging_mode_translate
    - paging_mode_sh_forced
    - printk
    - paging_mode_refcounts
    - paging_mode_hap
    linkageType: ''
    returnType: void
    signature: void paging_dump_domain_info(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:918,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:920,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/paging.c:921,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:922,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/paging.c:923,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/paging.c:924,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/paging.c:926,1
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/paging.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 929
    functionName: paging_dump_vcpu_info
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - paging_mode_enabled
    - paging_mode_shadow
    - paging_get_hostmode
    - printk
    linkageType: ''
    returnType: void
    signature: void paging_dump_vcpu_info(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:934,1
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:934,1
    - Dst: nestedhvm_paging_mode_hap
      Src: /src/xen/xen/arch/x86/mm/paging.c:935,1
    - Dst: hap_paging_get_mode
      Src: /src/xen/xen/arch/x86/mm/paging.c:937,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/paging.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 942
    functionName: paging_update_nestedmode
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 4
    functionsReached:
    - nestedhvm_paging_mode_hap
    - nestedhvm_enabled
    - hap_paging_get_mode
    - ASSERT
    - hvm_asid_flush_vcpu
    linkageType: ''
    returnType: void
    signature: void paging_update_nestedmode(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/paging.c:949,1
    - Dst: paging_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:949,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/paging.c:951,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:952,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/paging.c:953,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/paging.c:955,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 959
    functionName: paging_set_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 1
    functionsReached:
    - hap_set_allocation
    - shadow_set_allocation
    - paging_lock
    - paging_unlock
    - paging_mode_enabled
    - ASSERT
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: "int paging_set_allocation(struct domain *d, unsigned int pages,\n
      \                                bool *preempted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/paging.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 975
    functionName: arch_get_paging_mempool_size
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - is_pv_domain
    linkageType: ''
    returnType: int
    signature: int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/paging.c:983,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/paging.c:990,1
    - Dst: hap_enabled
      Src: /src/xen/xen/arch/x86/mm/paging.c:991,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/paging.c:992,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/paging.c:994,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/paging.c:995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 1003
    functionName: arch_set_paging_mempool_size
    functionSourceFile: /src/xen/xen/arch/x86/mm/paging.c
    functionUses: 0
    functionsReached:
    - hap_set_allocation
    - shadow_set_allocation
    - paging_lock
    - paging_unlock
    - is_pv_domain
    - hap_enabled
    linkageType: ''
    returnType: int
    signature: int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:65,1
    - Dst: vzalloc
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:68,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:72,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:78,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:80,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:96,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:98,1
    - Dst: p2m_enable_hardware_log_dirty
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:99,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:100,1
    - Dst: p2m_change_type_range
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:103,1
    - Dst: p2m_change_type_range
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:110,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:113,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:115,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:119,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:121,1
    - Dst: p2m_flush_hardware_cached_dirty
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:124,1
    - Dst: p2m_log_dirty_range
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:127,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:129,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:133,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:138,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:149,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:153,1
    - Dst: p2m_change_type_range
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:156,1
    - Dst: vfree
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 4
    argNames:
    - d
    - begin_pfn
    - nr_frames
    - guest_dirty_bitmap
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - XEN_GUEST_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 163
    functionName: hap_track_dirty_vram
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - xzalloc
    - vfree
    - p2m_log_dirty_range
    - domain_pause
    - guest_flush_tlb_mask
    - paging_lock
    - paging_unlock
    - p2m_flush_hardware_cached_dirty
    - vzalloc
    - DIV_ROUND_UP
    - p2m_change_type_range
    - copy_to_guest
    - memset
    - xfree
    - p2m_enable_hardware_log_dirty
    linkageType: ''
    returnType: int
    signature: "int hap_track_dirty_vram(struct domain *d,\n                         unsigned
      long begin_pfn,\n                         unsigned int nr_frames,\n                         XEN_GUEST_HANDLE(void)
      guest_dirty_bitmap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:177,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:183,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:187,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:189,1
    - Dst: p2m_enable_hardware_log_dirty
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:192,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:198,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 202
    functionName: hap_enable_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    - paging_lock
    - p2m_change_entry_type_global
    - paging_unlock
    - read_atomic
    - p2m_enable_hardware_log_dirty
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int hap_enable_log_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:206,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:208,1
    - Dst: p2m_disable_hardware_log_dirty
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:211,1
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 219
    functionName: hap_disable_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - p2m_change_entry_type_global
    - paging_unlock
    - p2m_disable_hardware_log_dirty
    - paging_lock
    linkageType: ''
    returnType: int
    signature: int hap_disable_log_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_change_entry_type_global
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:227,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: hap_clean_dirty_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    - p2m_change_entry_type_global
    linkageType: ''
    returnType: void
    signature: void hap_clean_dirty_bitmap(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:238,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:238,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:240,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:243,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:244,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:249,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 252
    functionName: hap_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - clear_domain_page
    - paging_locked_by_me
    - page_list_remove_head
    - ASSERT
    - unlikely
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *hap_alloc(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:256,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:258,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:258,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:265,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:267,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - d
    - mfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 274
    functionName: hap_free
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - mfn_to_page
    - paging_locked_by_me
    - ASSERT
    - unlikely
    - free_domheap_page
    linkageType: ''
    returnType: void
    signature: void hap_free(struct domain *d, mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:282,1
    - Dst: hap_alloc
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:283,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:285,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:289,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:289,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:294,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: hap_alloc_p2m_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - hap_alloc
    - paging_unlock
    - likely
    - page_get_owner
    - ASSERT
    - paging_lock_recursive
    - dprintk
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *cf_check hap_alloc_p2m_page(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:304,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:308,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:313,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:315,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:315,1
    - Dst: WARN
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:318,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:320,1
    - Dst: hap_free
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:324,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:324,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - d
    - pg
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 327
    functionName: hap_free_p2m_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - hap_free
    - paging_unlock
    - mfn_x
    - page_get_owner
    - WARN
    - paging_lock_recursive
    - page_set_owner
    - printk
    linkageType: ''
    returnType: void
    signature: void hap_free_p2m_page(struct domain *d, struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: hap_get_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hap_get_allocation(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:345,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:345,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:357,1
    - Dst: HAP_PRINTK
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:360,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:365,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:370,1
    - Dst: HAP_PRINTK
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:372,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:375,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:376,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:379,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 393
    functionName: hap_set_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 3
    functionsReached:
    - page_list_add_tail
    - alloc_domheap_page
    - paging_locked_by_me
    - page_list_remove_head
    - ASSERT
    - page_list_empty
    - HAP_PRINTK
    - free_domheap_page
    - general_preempt_check
    linkageType: ''
    returnType: int
    signature: int hap_set_allocation(struct domain *d, unsigned int pages, bool *preempted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:402,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:402,1
    - Dst: hap_alloc
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:404,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:407,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:408,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:410,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:411,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:419,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: hap_make_monitor_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - init_xen_l4_slots
    - page_to_mfn
    - map_domain_page
    - unmap_domain_page
    - hap_alloc
    - ASSERT
    - printk
    - pagetable_get_pfn
    - domain_crash
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t hap_make_monitor_table(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_free
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - mmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: hap_destroy_monitor_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - hap_free
    linkageType: ''
    returnType: void
    signature: void hap_destroy_monitor_table(struct vcpu* v, mfn_t mmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_log_dirty_init
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 454
    functionName: hap_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - paging_log_dirty_init
    linkageType: ''
    returnType: void
    signature: void hap_domain_init(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:470,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:475,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:476,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:479,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:480,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:483,1
    - Dst: p2m_alloc_table
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:491,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:491,1
    - Dst: p2m_alloc_table
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:497,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:503,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:506,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:512,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:520,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:521,1
    - Dst: p2m_alloc_table
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:526,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:539,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - d
    - mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 541
    functionName: hap_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - alloc_xenheap_page
    - domain_pause
    - hap_set_allocation
    - paging_lock
    - paging_unlock
    - mfn_x
    - p2m_alloc_table
    - hvm_altp2m_supported
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int hap_enable(struct domain *d, u32 mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:548,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:550,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: hap_final_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - p2m_teardown
    - hvm_altp2m_supported
    linkageType: ''
    returnType: void
    signature: void hap_final_teardown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:564,1
    - Dst: paging_mode_hap
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:566,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:569,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:570,1
    - Dst: hap_destroy_monitor_table
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:571,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:572,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 576
    functionName: hap_vcpu_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - pagetable_get_mfn
    - paging_lock
    - paging_unlock
    - mfn_x
    - pagetable_null
    - hap_destroy_monitor_table
    - paging_mode_hap
    linkageType: ''
    returnType: void
    signature: void hap_vcpu_teardown(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:583,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:584,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:587,1
    - Dst: hap_vcpu_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:588,1
    - Dst: hvm_altp2m_supported
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:592,1
    - Dst: altp2m_active
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:594,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:595,1
    - Dst: altp2m_vcpu_disable_ve
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:596,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:600,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:601,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:605,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:615,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:620,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:620,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:624,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:628,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:633,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:638,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:641,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - d
    - preempted
    argTypes:
    - struct domain*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 642
    functionName: hap_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - FREE_XENHEAP_PAGE
    - altp2m_active
    - hap_set_allocation
    - paging_lock
    - p2m_teardown
    - paging_unlock
    - XFREE
    - hap_vcpu_teardown
    - altp2m_vcpu_disable_ve
    - ASSERT
    - hvm_altp2m_supported
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void hap_teardown(struct domain *d, bool *preempted)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:653,1
    - Dst: hap_set_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:654,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:655,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:658,1
    - Dst: hap_get_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:662,1
    - Dst: hap_get_allocation
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:665,1
    - Dst: HAP_PRINTK
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - d
    - sc
    argTypes:
    - struct domain*
    - struct xen_domctl_shadow_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 673
    functionName: hap_domctl
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - hap_get_allocation
    - hap_set_allocation
    - paging_lock
    - paging_unlock
    - hypercall_create_continuation
    - HAP_PRINTK
    linkageType: ''
    returnType: int
    signature: "int hap_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,\n
      \              XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: hap_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hap_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:698,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - va
    - regs
    argTypes:
    - struct vcpu*
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 701
    functionName: hap_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - printk
    linkageType: ''
    returnType: int
    signature: "int hap_page_fault(\n    struct vcpu *v, unsigned long va, struct
      cpu_user_regs *regs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nestedhvm_enabled
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:715,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:715,1
    - Dst: p2m_flush
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:716,1
    - Dst: vcpu_nestedhvm
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 719
    functionName: hap_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - nestedhvm_enabled
    - p2m_flush
    - vcpu_nestedhvm
    linkageType: ''
    returnType: bool
    signature: bool hap_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_update_guest_cr3
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:724,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: hap_update_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - hvm_update_guest_cr3
    - pagetable_null
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t hap_update_cr3(struct vcpu *v, bool noflush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v
    - vcpu_bitmap
    argTypes:
    - struct vcpu*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: flush_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 11
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:738,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:740,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:743,1
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:750,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:753,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:755,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:756,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:757,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - vcpu_bitmap
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 769
    functionName: flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 7
    functionsReached:
    - cpumask_clear
    - smp_processor_id
    - flush_vcpu
    - is_vcpu_dirty_cpu
    - on_selected_cpus
    - hvm_asid_flush_vcpu
    - read_atomic
    - this_cpu
    - __cpumask_set_cpu
    linkageType: ''
    returnType: bool
    signature: bool flush_tlb(const unsigned long *vcpu_bitmap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:750,1
    - Dst: hvm_asid_flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:753,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:755,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:756,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 758
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 31
    functionsReached:
    - flush_vcpu
    - is_vcpu_dirty_cpu
    - hvm_asid_flush_vcpu
    - read_atomic
    - __cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:774,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:775,1
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 778
    functionName: hap_paging_get_mode
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached:
    - hvm_paging_enabled
    - hvm_long_mode_active
    - hvm_pae_enabled
    linkageType: ''
    returnType: struct paging_mode
    signature: 'struct paging_mode *

      hap_paging_get_mode(struct vcpu *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:790,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:791,1
    - Dst: hap_paging_get_mode
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:793,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:795,1
    - Dst: hap_make_monitor_table
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:797,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:799,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:801,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:802,1
    - Dst: hvm_update_host_cr3
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:803,1
    - Dst: hap_update_cr3
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:807,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:810,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 812
    functionName: hap_update_paging_modes
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - pagetable_from_mfn
    - hvm_update_host_cr3
    - make_cr3
    - hap_make_monitor_table
    - paging_lock
    - paging_unlock
    - put_gfn
    - pagetable_is_null
    - hap_paging_get_mode
    - hap_update_cr3
    - get_gfn
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void hap_update_paging_modes(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/hap/hap.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p2m
    - oflags
    argTypes:
    - struct p2m_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 821
    functionName: hap_write_p2m_entry_post
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    linkageType: ''
    returnType: void
    signature: void hap_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int
      oflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: hap_p2m_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hap_p2m_init(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - p2m
    - gva
    - pfec
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: hap_gva_to_gfn_real_mode
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check hap_gva_to_gfn_real_mode(\n    struct vcpu
      *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - v
    - p2m
    - cr3
    - ga
    - pfec
    - page_order
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - paddr_t
    - uint32_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: hap_p2m_ga_to_gfn_real_mode
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/hap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check hap_p2m_ga_to_gfn_real_mode(\n    struct vcpu
      *v, struct p2m_domain *p2m, unsigned long cr3,\n    paddr_t ga, uint32_t *pfec,
      unsigned int *page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: _hap_gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hap_gva_to_gfn(levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: hap_gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hap_gva_to_gfn(levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: _hap_p2m_ga_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _hap_p2m_ga_to_gfn(levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: hap_p2m_ga_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hap_p2m_ga_to_gfn(levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_p2m_ga_to_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - p2m
    - gva
    - pfec
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: hap_gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 0
    functionsReached:
    - hap_p2m_ga_to_gfn
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check hap_gva_to_gfn(GUEST_PAGING_LEVELS)(\n    struct
      vcpu *v, struct p2m_domain *p2m, unsigned long gva, uint32_t *pfec)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:48,1
    - Dst: p2m_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:49,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:51,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:53,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:53,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:56,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:57,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:57,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:58,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:60,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:64,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:65,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:72,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:75,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:75,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:76,1
    - Dst: guest_walk_tables
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:80,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:82,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:83,1
    - Dst: guest_walk_to_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:88,1
    - Dst: p2m_get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:91,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:94,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:95,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:97,1
    - Dst: p2m_is_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:97,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:99,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:100,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:102,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:105,1
    - Dst: guest_walk_to_page_order
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:109,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:111,1
    - Dst: hvm_nx_enabled
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:121,1
    - Dst: hvm_smep_enabled
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:121,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/guest_walk.c:124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 6
    argNames:
    - v
    - p2m
    - cr3
    - ga
    - pfec
    - page_order
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - paddr_t
    - uint32_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: hap_p2m_ga_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
    functionUses: 1
    functionsReached:
    - _gfn
    - hvm_smep_enabled
    - p2m_is_hostp2m
    - page_to_mfn
    - map_domain_page
    - guest_walk_to_page_order
    - p2m_get_page_from_gfn
    - p2m_mem_paging_populate
    - mfn_valid
    - gaddr_to_gfn
    - ASSERT
    - p2m_is_shared
    - guest_walk_tables
    - p2m_is_paging
    - guest_walk_to_gfn
    - unmap_domain_page
    - hvm_nx_enabled
    - gfn_x
    - put_page
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check hap_p2m_ga_to_gfn(GUEST_PAGING_LEVELS)(\n    struct
      vcpu *v, struct p2m_domain *p2m, unsigned long cr3,\n    paddr_t ga, uint32_t
      *pfec, unsigned int *page_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p2m
    - oflags
    argTypes:
    - struct p2m_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: nestedp2m_write_p2m_entry_post
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_hap.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    linkageType: ''
    returnType: void
    signature: void nestedp2m_write_p2m_entry_post(struct p2m_domain *p2m, unsigned
      int oflags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:80,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:81,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:82,1
    - Dst: p2m_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:82,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:90,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:92,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:92,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:96,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - v
    - p2m
    - L2_gpa
    - L0_gpa
    - page_order
    - p2mt
    - p2ma
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - paddr_t
    - paddr_t
    - unsigned int
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 101
    functionName: nestedhap_fix_p2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_hap.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - p2m_set_entry
    - _gfn
    - _mfn
    - ASSERT
    - p2m_locked_by_me
    - domain_crash
    linkageType: ''
    returnType: void
    signature: "void nestedhap_fix_p2m(struct vcpu *v, struct p2m_domain *p2m, \n
      \                 paddr_t L2_gpa, paddr_t L0_gpa,\n                  unsigned
      int page_order, p2m_type_t p2mt, p2m_access_t p2ma)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_type_access
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:115,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:126,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:129,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:129,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:129,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:132,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:137,1
    - Dst: p2m_put_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:139,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:139,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 7
    argNames:
    - p2m
    - L1_gpa
    - L0_gpa
    - p2mt
    - p2ma
    - page_order
    - npfec
    argTypes:
    - struct p2m_domain*
    - paddr_t
    - paddr_t*
    - p2m_type_t*
    - p2m_access_t*
    - unsigned int*
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 141
    functionName: nestedhap_walk_L0_p2m
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_hap.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    - p2m_put_gfn
    - p2m_is_ram
    - mfn_valid
    - gaddr_to_gfn
    - p2m_is_shared
    - p2m_is_paging
    - p2m_is_readonly
    - get_gfn_type_access
    linkageType: ''
    returnType: int
    signature: "int nestedhap_walk_L0_p2m(\n    struct p2m_domain *p2m, paddr_t L1_gpa,
      paddr_t *L0_gpa, p2m_type_t *p2mt,\n    p2m_access_t *p2ma, unsigned int *page_order,
      struct npfec npfec)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:160,1
    - Dst: nhvm_hap_walk_L1_p2m
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:163,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:175,1
    - Dst: nestedhap_walk_L0_p2m
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:180,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:197,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:201,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:203,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:222,1
    - Dst: p2m_get_nestedp2m_locked
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:229,1
    - Dst: nestedhap_fix_p2m
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:230,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/hap/nested_hap.c:232,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - v
    - L2_gpa
    - npfec
    argTypes:
    - struct vcpu*
    - paddr_t*
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 235
    functionName: nestedhvm_hap_nested_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_hap.c
    functionUses: 1
    functionsReached:
    - nestedhap_fix_p2m
    - BUG
    - gdprintk
    - p2m_unlock
    - nhvm_hap_walk_L1_p2m
    - min
    - nestedhap_walk_L0_p2m
    - ASSERT
    - p2m_get_nestedp2m_locked
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int nestedhvm_hap_nested_page_fault(\n    struct vcpu *v, paddr_t
      *L2_gpa, struct npfec npfec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:63,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - ept_entry_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 68
    functionName: nept_rsv_bits_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached:
    - BUG
    - gdprintk
    linkageType: ''
    returnType: bool
    signature: bool nept_rsv_bits_check(ept_entry_t e, uint32_t level)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - ept_entry_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: nept_emt_bits_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool nept_emt_bits_check(ept_entry_t e, uint32_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rwx_acc
    - rwx_bits
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: nept_permission_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool nept_permission_check(uint32_t rwx_acc, uint32_t rwx_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - e
    argTypes:
    - ept_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: nept_non_present_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool nept_non_present_check(ept_entry_t e)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: nept_get_ept_vpid_cap
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t nept_get_ept_vpid_cap(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nept_get_ept_vpid_cap
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - ept_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: nept_rwx_bits_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached:
    - nept_get_ept_vpid_cap
    linkageType: ''
    returnType: bool
    signature: bool nept_rwx_bits_check(ept_entry_t e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nept_rsv_bits_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:127,1
    - Dst: nept_emt_bits_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:128,1
    - Dst: nept_rwx_bits_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - ept_entry_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: nept_misconfiguration_check
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached:
    - nept_emt_bits_check
    - nept_rsv_bits_check
    - nept_rwx_bits_check
    linkageType: ''
    returnType: bool
    signature: bool nept_misconfiguration_check(ept_entry_t e, uint32_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gpa
    - lvl
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: ept_lvl_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ept_lvl_table_offset(unsigned long gpa, int lvl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:145,1
    - Dst: nhvm_vcpu_p2m_base
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:145,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:149,1
    - Dst: map_domain_gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:153,1
    - Dst: ept_lvl_table_offset
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:156,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:157,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:158,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:158,1
    - Dst: nept_non_present_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:160,1
    - Dst: nept_misconfiguration_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:163,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:171,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:173,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:173,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:177,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:181,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - v
    - l2ga
    - gw
    argTypes:
    - struct vcpu*
    - unsigned long
    - ept_walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 208
    functionName: nept_walk_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - mfn_to_page
    - _gfn
    - map_domain_gfn
    - nhvm_vcpu_p2m_base
    - gfn_x
    - nept_non_present_check
    - nept_misconfiguration_check
    - memset
    - put_page
    - ept_lvl_table_offset
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t nept_walk_tables(struct vcpu *v, unsigned long l2ga, ept_walk_t
      *gw)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:221,1
    - Dst: nept_walk_tables
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:223,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:227,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:246,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:247,1
    - Dst: nept_permission_check
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:249,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:270,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/hap/nested_ept.c:271,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 8
    argNames:
    - v
    - l2ga
    - page_order
    - rwx_acc
    - l1gfn
    - p2m_acc
    - exit_qual
    - exit_reason
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int*
    - uint32_t
    - unsigned long*
    - uint8_t*
    - uint64_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 275
    functionName: nept_translate_l2ga
    functionSourceFile: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
    functionUses: 1
    functionsReached:
    - nept_permission_check
    - gdprintk
    - BUG
    - likely
    - gfn_x
    - nept_walk_tables
    linkageType: ''
    returnType: int
    signature: "int nept_translate_l2ga(struct vcpu *v, paddr_t l2ga,\n                        unsigned
      int *page_order, uint32_t rwx_acc,\n                        unsigned long *l1gfn,
      uint8_t *p2m_acc,\n                        uint64_t *exit_qual, uint32_t *exit_reason)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:73,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:76,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:80,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:81,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:83,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:88,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:89,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:90,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:94,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:95,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:96,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:100,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:101,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 106
    functionName: sh_oos_audit
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - BUG
    - mfn_to_page
    - mfn_x
    - printk
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void sh_oos_audit(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:73,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:76,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:80,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:81,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:83,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:88,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:89,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:90,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:94,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:95,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:96,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:100,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:101,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:102,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 105
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - BUG
    - mfn_to_page
    - mfn_x
    - printk
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:116,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:116,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:121,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:122,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:125,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:129,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:130,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: oos_audit_hash_is_present
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - BUG
    - mfn_x
    - ASSERT
    - mfn_is_out_of_sync
    - printk
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void oos_audit_hash_is_present(struct domain *d, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:121,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:122,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - mfn_x
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:138,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:140,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:140,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:141,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:141,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:145,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:147,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - v
    - gmfn
    - snpmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 150
    functionName: _sh_resync_l1
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - SHADOW_INTERNAL_NAME
    - mfn_valid
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void _sh_resync_l1(struct vcpu *v, mfn_t gmfn, mfn_t snpmfn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:155,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:155,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:156,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:156,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:158,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:162,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:167,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - d
    - gmfn
    - smfn
    - 'off'
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 178
    functionName: sh_remove_write_access_from_sl1p
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - SHADOW_INTERNAL_NAME
    - mfn_valid
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: "int sh_remove_write_access_from_sl1p(struct domain *d, mfn_t gmfn,\n
      \                                           mfn_t smfn, unsigned long off)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:193,1
    - Dst: sh_remove_write_access_from_sl1p
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - v
    - gmfn
    - fixup
    argTypes:
    - struct vcpu*
    - mfn_t
    - struct oos_fixup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: oos_fixup_flush_gmfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - sh_remove_write_access_from_sl1p
    - mfn_eq
    linkageType: ''
    returnType: int
    signature: "int oos_fixup_flush_gmfn(struct vcpu *v, mfn_t gmfn,\n                                       struct
      oos_fixup *fixup)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:214,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:220,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:221,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:223,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:228,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:235,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:237,1
    - Dst: sh_remove_write_access_from_sl1p
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:240,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:243,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:257,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:262,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:263,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - d
    - gmfn
    - smfn
    - 'off'
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 265
    functionName: oos_fixup_add
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - BUG
    - mfn_x
    - sh_remove_write_access_from_sl1p
    - printk
    - mfn_eq
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: void
    signature: "void oos_fixup_add(struct domain *d, mfn_t gmfn,\n                   mfn_t
      smfn,  unsigned long off)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:220,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:221,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:223,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:228,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:235,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:237,1
    - Dst: sh_remove_write_access_from_sl1p
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:240,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:243,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 260
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - perfc_incr
    - mfn_x
    - sh_remove_write_access_from_sl1p
    - mfn_eq
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: oos_fixup_flush_gmfn
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:273,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:275,1
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:293,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - v
    - gmfn
    - fixup
    argTypes:
    - struct vcpu*
    - mfn_t
    - struct oos_fixup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: oos_remove_write_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - shadow_remove_all_shadows
    - oos_fixup_flush_gmfn
    - guest_flush_tlb_mask
    - sh_remove_write_access
    linkageType: ''
    returnType: int
    signature: "int oos_remove_write_access(struct vcpu *v, mfn_t gmfn,\n                                   struct
      oos_fixup *fixup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:308,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - event
    - gmfn
    argTypes:
    - int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: trace_resync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - trace
    - mfn_to_gfn
    linkageType: ''
    returnType: void
    signature: void trace_resync(int event, mfn_t gmfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:318,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:320,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:320,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:321,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:321,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:323,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:323,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:325,1
    - Dst: sh_page_has_multiple_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:325,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:325,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:327,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:327,1
    - Dst: oos_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:330,1
    - Dst: _sh_resync_l1
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:340,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:344,1
    - Dst: trace_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - v
    - gmfn
    - fixup
    - snp
    argTypes:
    - struct vcpu*
    - mfn_t
    - struct oos_fixup*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 346
    functionName: _sh_resync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - mfn_to_page
    - paging_locked_by_me
    - mfn_x
    - trace_resync
    - ASSERT
    - _sh_resync_l1
    - mfn_is_out_of_sync
    - oos_remove_write_access
    - SHADOW_PRINTK
    - sh_page_has_multiple_shadows
    linkageType: ''
    returnType: void
    signature: "void _sh_resync(struct vcpu *v, mfn_t gmfn,\n                       struct
      oos_fixup *fixup, mfn_t snp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:360,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:363,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:364,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:367,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:368,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:372,1
    - Dst: _sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:375,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:376,1
    - Dst: SWAP
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:382,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - v
    - gmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 385
    functionName: oos_hash_add
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - copy_domain_page
    - mfn_x
    - _sh_resync
    - SWAP
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void oos_hash_add(struct vcpu *v, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:394,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:394,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:399,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:400,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:402,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:409,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:410,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 412
    functionName: oos_hash_remove
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - BUG
    - mfn_x
    - printk
    - mfn_eq
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void oos_hash_remove(struct domain *d, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:399,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:400,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - mfn_x
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:425,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:426,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:428,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:434,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:435,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 437
    functionName: oos_snapshot_lookup
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - BUG
    - mfn_x
    - printk
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t oos_snapshot_lookup(struct domain *d, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:425,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:426,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - mfn_x
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:453,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:454,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:457,1
    - Dst: _sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:459,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:465,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:466,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 468
    functionName: sh_resync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 2
    functionsReached:
    - BUG
    - mfn_x
    - _sh_resync
    - printk
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void sh_resync(struct domain *d, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:453,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:454,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:457,1
    - Dst: _sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 463
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 31
    functionsReached:
    - _sh_resync
    - mfn_x
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:476,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:479,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:481,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:483,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:485,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:486,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - gl1mfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: sh_skip_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - BUG
    - mfn_to_page
    - mfn_x
    - SHADOW_INTERNAL_NAME
    - printk
    linkageType: ''
    returnType: int
    signature: int sh_skip_sync(struct vcpu *v, mfn_t gl1mfn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:505,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:507,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:507,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:514,1
    - Dst: _sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:517,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:526,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:537,1
    - Dst: sh_skip_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:543,1
    - Dst: trace_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:545,1
    - Dst: _sh_resync_l1
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:546,1
    - Dst: _sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:551,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - v
    - skip
    - this
    - others
    argTypes:
    - struct vcpu*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 556
    functionName: sh_resync_all
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - sh_skip_sync
    - for_each_vcpu
    - paging_locked_by_me
    - trace_resync
    - _sh_resync
    - ASSERT
    - _sh_resync_l1
    - mfn_eq
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void sh_resync_all(struct vcpu *v, int skip, int this, int others)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:566,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:566,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:568,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:568,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:570,1
    - Dst: sh_page_has_multiple_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:579,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:583,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:583,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:584,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:584,1
    - Dst: oos_hash_add
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:587,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:588,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/oos.c:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - v
    - gmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 562
    functionDepth: 6
    functionLinenumber: 562
    functionLinenumberEnd: 591
    functionName: sh_unsync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/oos.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - mfn_to_page
    - mfn_x
    - paging_locked_by_me
    - TRACE_SHADOW_PATH_FLAG
    - typeof
    - BUILD_BUG_ON
    - ASSERT
    - SHADOW_PRINTK
    - oos_hash_add
    - sh_page_has_multiple_shadows
    linkageType: ''
    returnType: int
    signature: int sh_unsync(struct vcpu *v, mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:22,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - v
    - p
    - new
    - gmfn
    argTypes:
    - struct vcpu*
    - intpte_t*
    - intpte_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: shadow_write_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/pv.c
    functionUses: 1
    functionsReached:
    - paging_unlock
    - paging_lock
    linkageType: ''
    returnType: void
    signature: void shadow_write_guest_entry(struct vcpu *v, intpte_t *p, intpte_t
      new, mfn_t gmfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:39,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:40,1
    - Dst: sh_validate_guest_entry
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:42,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/pv.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - v
    - p
    - old
    - new
    - gmfn
    argTypes:
    - struct vcpu*
    - intpte_t*
    - intpte_t
    - intpte_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: shadow_cmpxchg_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/pv.c
    functionUses: 1
    functionsReached:
    - sh_validate_guest_entry
    - cmpxchg
    - paging_unlock
    - paging_lock
    linkageType: ''
    returnType: intpte_t
    signature: "intpte_t shadow_cmpxchg_guest_entry(struct vcpu *v, intpte_t *p, intpte_t
      old,\n                           intpte_t new, mfn_t gmfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:88,1
    - Dst: paging_log_dirty_init
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: shadow_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - INIT_PAGE_LIST_HEAD
    - paging_log_dirty_init
    linkageType: ''
    returnType: int
    signature: int shadow_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:123,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:124,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: shadow_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - paging_mode_external
    - SHADOW_INTERNAL_NAME
    linkageType: ''
    returnType: void
    signature: void shadow_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: shadow_audit_key
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void shadow_audit_key(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: shadow_audit_key_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int shadow_audit_key_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:154,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:156,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:156,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:160,1
    - Dst: sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:161,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:165,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:170,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:174,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:179,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - d
    - gmfn
    - type
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 182
    functionName: shadow_promote
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - test_and_set_bit
    - TRACE_SHADOW_PATH_FLAG
    - mfn_valid
    - sh_resync
    - ASSERT
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:186,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:188,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:188,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:189,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:197,1
    - Dst: oos_hash_remove
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:199,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:202,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - d
    - gmfn
    - type
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 206
    functionName: shadow_demote
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - ASSERT
    - clear_bit
    - oos_hash_remove
    - test_bit
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: void
    signature: void shadow_demote(struct domain *d, mfn_t gmfn, unsigned int type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:216,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:218,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:237,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:240,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:244,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:247,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:251,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:254,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:257,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:260,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:263,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:266,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - v
    - gmfn
    - entry
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 269
    functionName: sh_validate_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - this_cpu
    - SHADOW_INTERNAL_NAME
    - paging_mark_dirty
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: int sh_validate_guest_entry(struct vcpu *v, mfn_t gmfn, void *entry,
      u32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: shadow_min_acceptable_pages
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int shadow_min_acceptable_pages(const struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:315,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:320,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:323,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:327,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:330,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - d
    - smfn
    - user_only
    argTypes:
    - struct domain*
    - mfn_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 333
    functionName: shadow_unhook_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - BUG
    - SHADOW_INTERNAL_NAME
    - printk
    - mfn_to_page
    linkageType: ''
    returnType: void
    signature: void shadow_unhook_mappings(struct domain *d, mfn_t smfn, int user_only)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:342,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:342,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:343,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:343,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:343,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: trace_shadow_prealloc_unpin
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - trace
    - mfn_valid
    - backpointer
    - ASSERT
    - mfn_to_gfn
    linkageType: ''
    returnType: void
    signature: void trace_shadow_prealloc_unpin(struct domain *d, mfn_t smfn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:360,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:369,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:372,1
    - Dst: trace_shadow_prealloc_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:375,1
    - Dst: sh_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:376,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:386,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:388,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:389,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:391,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:393,1
    - Dst: shadow_unhook_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:394,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:396,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:402,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:410,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:415,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - d
    - pages
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 420
    functionName: __must_check::_shadow_prealloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - for_each_vcpu
    - page_to_mfn
    - guest_flush_tlb_mask
    - ARRAY_SIZE
    - pagetable_get_mfn
    - trace_shadow_prealloc_unpin
    - sh_unpin
    - shadow_unhook_mappings
    - pagetable_is_null
    - printk
    - unlikely
    - ASSERT_UNREACHABLE
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: bool
    signature: bool __must_check _shadow_prealloc(struct domain *d, unsigned int pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:372,1
    - Dst: trace_shadow_prealloc_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:375,1
    - Dst: sh_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 381
    functionName: foreach_pinned_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - trace_shadow_prealloc_unpin
    - page_to_mfn
    - sh_unpin
    linkageType: ''
    returnType: void
    signature: void foreach_pinned_shadow(d, sp, t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:431,1
    - Dst: shadow_size
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:434,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:440,1
    - Dst: paging_logdirty_levels
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:442,1
    - Dst: _shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:444,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:450,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - d
    - type
    - count
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 453
    functionName: shadow_prealloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - paging_mode_log_dirty
    - paging_logdirty_levels
    - _shadow_prealloc
    - unlikely
    - domain_crash
    - shadow_size
    linkageType: ''
    returnType: bool
    signature: bool shadow_prealloc(struct domain *d, unsigned int type, unsigned
      int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:471,1
    - Dst: sh_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:472,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:476,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:477,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:478,1
    - Dst: shadow_unhook_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:479,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:481,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 486
    functionName: shadow_blow_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - page_to_mfn
    - guest_flush_tlb_mask
    - ARRAY_SIZE
    - pagetable_get_mfn
    - sh_unpin
    - shadow_unhook_mappings
    - pagetable_is_null
    linkageType: ''
    returnType: void
    signature: void shadow_blow_tables(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:471,1
    - Dst: sh_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: foreach_pinned_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - sh_unpin
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: void foreach_pinned_shadow(d, sp, t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:490,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:490,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:492,1
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:493,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: shadow_blow_tables_per_domain
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - domain_vcpu
    - paging_lock
    - shadow_blow_tables
    - paging_unlock
    - shadow_mode_enabled
    linkageType: ''
    returnType: void
    signature: void shadow_blow_tables_per_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:505,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:506,1
    - Dst: for_each_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:507,1
    - Dst: shadow_blow_tables_per_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:508,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: shadow_blow_all_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - for_each_domain
    - shadow_blow_tables_per_domain
    - printk
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void shadow_blow_all_tables(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: shadow_blow_tables_keyhandler_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int shadow_blow_tables_keyhandler_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sp
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: next_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - pdx_to_page
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      next_shadow(const struct page_info *sp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_to_pdx
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sp
    - next
    argTypes:
    - struct page_info*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: set_next_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_to_pdx
    linkageType: ''
    returnType: void
    signature: void set_next_shadow(struct page_info *sp, struct page_info *next)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: shadow_size
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:542,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:547,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:547,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:548,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:549,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:558,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:559,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:573,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:577,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:582,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:585,1
    - Dst: tlbflush_filter
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:586,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:587,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:587,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:589,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:590,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:593,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:593,1
    - Dst: INIT_PAGE_LIST_ENTRY
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:594,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:595,1
    - Dst: set_next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:601,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:602,1
    - Dst: sh_terminate_list
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:608,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:610,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - d
    - shadow_type
    - backpointer
    argTypes:
    - struct domain*
    - u32
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 611
    functionName: shadow_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_list_remove_head
    - shadow_size
    - BUG
    - page_to_mfn
    - set_next_shadow
    - INIT_PAGE_LIST_ENTRY
    - tlbflush_filter
    - page_list_add
    - INIT_PAGE_LIST_HEAD
    - printk
    - sh_terminate_list
    - ASSERT
    - cpumask_copy
    - perfc_incr
    - guest_flush_tlb_mask
    - clear_domain_page
    - cpumask_empty
    - paging_locked_by_me
    - pfn_to_pdx
    - unlikely
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t shadow_alloc(struct domain *d,\n                    u32 shadow_type,\n
      \                   unsigned long backpointer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:617,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:618,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:624,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:624,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:625,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:628,1
    - Dst: shadow_size
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:629,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:630,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:642,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:642,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:652,1
    - Dst: page_set_tlbflush_timestamp
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:659,1
    - Dst: perfc_decr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:660,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:667,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:674,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:675,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:678,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 687
    functionName: shadow_free
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - page_list_add_tail
    - page_to_mfn
    - page_list_next
    - mfn_to_page
    - page_set_tlbflush_timestamp
    - paging_locked_by_me
    - mfn_x
    - perfc_decr
    - ASSERT
    - page_set_owner
    - free_domheap_page
    - unlikely
    - ACCESS_ONCE
    - shadow_size
    linkageType: ''
    returnType: void
    signature: void shadow_free(struct domain *d, mfn_t smfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:642,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 648
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 34
    functionsReached:
    - mfn_x
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:698,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:703,1
    - Dst: shadow_min_acceptable_pages
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:706,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:711,1
    - Dst: shadow_min_acceptable_pages
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:715,1
    - Dst: shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:720,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:723,1
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:723,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:726,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:726,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:729,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 732
    functionName: shadow_alloc_p2m_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - paging_unlock
    - shadow_min_acceptable_pages
    - shadow_prealloc
    - page_get_owner
    - ASSERT
    - paging_lock_recursive
    - shadow_alloc
    - unlikely
    - dprintk
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *cf_check

      shadow_alloc_p2m_page(struct domain *d)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:737,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:742,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:744,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:744,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:748,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:754,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:758,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:758,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - d
    - pg
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 761
    functionName: shadow_free_p2m_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - paging_unlock
    - mfn_x
    - page_get_owner
    - paging_lock_recursive
    - page_set_owner
    - printk
    - shadow_free
    linkageType: ''
    returnType: void
    signature: void shadow_free_p2m_page(struct domain *d, struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_min_acceptable_pages
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:770,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:771,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:771,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:771,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:772,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 775
    functionName: sh_min_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - max
    - shadow_min_acceptable_pages
    - is_hvm_domain
    - domain_tot_pages
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sh_min_allocation(const struct domain *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:781,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:781,1
    - Dst: sh_min_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:786,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:793,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:802,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:805,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:814,1
    - Dst: _shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:819,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:822,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:823,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:828,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:831,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:837,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 845
    functionName: shadow_set_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 3
    functionsReached:
    - page_list_add_tail
    - alloc_domheap_page
    - paging_locked_by_me
    - _shadow_prealloc
    - page_list_remove_head
    - ASSERT
    - page_set_owner
    - free_domheap_page
    - SHADOW_PRINTK
    - sh_min_allocation
    - general_preempt_check
    linkageType: ''
    returnType: int
    signature: int shadow_set_allocation(struct domain *d, unsigned int pages, bool
      *preempted)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: shadow_get_allocation
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int shadow_get_allocation(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - t
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 876
    functionName: sh_hash
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: key_t
    signature: key_t sh_hash(unsigned long n, unsigned int t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:893,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:895,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:896,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:898,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:900,1
    - Dst: sh_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:900,1
    - Dst: __backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:900,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:902,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:902,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:903,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:910,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:910,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:912,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:922,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:924,1
    - Dst: shadowed
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:925,1
    - Dst: __backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:927,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:927,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:927,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:929,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:938,1
    - Dst: shadowed
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:938,1
    - Dst: __backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:940,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:940,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:940,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:942,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:946,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 2
    argNames:
    - d
    - bucket
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 948
    functionName: sh_hash_audit_bucket
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - shadowed
    - page_to_mfn
    - BUG
    - page_is_out_of_sync
    - mfn_to_page
    - mfn_x
    - BUG_ON
    - backpointer
    - next_shadow
    - sh_hash
    - printk
    - __backpointer
    linkageType: ''
    returnType: void
    signature: void sh_hash_audit_bucket(struct domain *d, int bucket)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 962
    functionName: sh_hash_audit
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - sh_hash_audit_bucket
    linkageType: ''
    returnType: void
    signature: void sh_hash_audit(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:970,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:970,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:971,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 977
    functionName: shadow_hash_alloc
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - paging_locked_by_me
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int shadow_hash_alloc(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:983,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:983,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:984,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 988
    functionName: shadow_hash_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - xfree
    - paging_locked_by_me
    linkageType: ''
    returnType: void
    signature: void shadow_hash_teardown(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:998,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:998,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:999,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1000,1
    - Dst: sh_hash_audit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1002,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1004,1
    - Dst: sh_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1005,1
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1006,1
    - Dst: __backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1012,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1015,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1017,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1019,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1022,1
    - Dst: set_next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1026,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1032,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1034,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1037,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - d
    - n
    - t
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1042
    functionName: shadow_hash_lookup
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - set_next_shadow
    - page_to_mfn
    - paging_locked_by_me
    - sh_hash_audit
    - sh_hash_audit_bucket
    - ASSERT
    - next_shadow
    - sh_hash
    - unlikely
    - __backpointer
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t shadow_hash_lookup(struct domain *d, unsigned long n, unsigned
      int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1051,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1051,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1052,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1053,1
    - Dst: sh_hash_audit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1055,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1057,1
    - Dst: sh_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1058,1
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1059,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1062,1
    - Dst: set_next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1063,1
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - d
    - n
    - t
    - smfn
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1044
    functionDepth: 4
    functionLinenumber: 1044
    functionLinenumberEnd: 1067
    functionName: shadow_hash_insert
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - set_next_shadow
    - mfn_to_page
    - paging_locked_by_me
    - sh_hash_audit
    - sh_hash_audit_bucket
    - ASSERT
    - sh_hash
    linkageType: ''
    returnType: void
    signature: "void shadow_hash_insert(struct domain *d, unsigned long n, unsigned
      int t,\n                        mfn_t smfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1076,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1076,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1077,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1078,1
    - Dst: sh_hash_audit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1080,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1082,1
    - Dst: sh_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1083,1
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1084,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1086,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1089,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1096,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1101,1
    - Dst: set_next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1106,1
    - Dst: sh_hash_audit_bucket
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - d
    - n
    - t
    - smfn
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1069
    functionDepth: 4
    functionLinenumber: 1069
    functionLinenumberEnd: 1111
    functionName: shadow_hash_delete
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - set_next_shadow
    - mfn_to_page
    - paging_locked_by_me
    - sh_hash_audit
    - sh_hash_audit_bucket
    - ASSERT
    - next_shadow
    - sh_hash
    linkageType: ''
    returnType: bool
    signature: "bool shadow_hash_delete(struct domain *d, unsigned long n, unsigned
      int t,\n                        mfn_t smfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: HASH_CALLBACKS_CHECK
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_CALLBACKS_CHECK(mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1134,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1134,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1137,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1141,1
    - Dst: next_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1149,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1153,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1154,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1155,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - d
    - callback_mask
    - callbacks
    - callback_mfn
    argTypes:
    - struct domain*
    - unsigned int
    - hash_callback_t[]
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1163
    functionName: hash_foreach
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - paging_locked_by_me
    - ASSERT
    - next_shadow
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void hash_foreach(struct domain *d,\n                         unsigned
      int callback_mask,\n                         const hash_callback_t callbacks[],\n
      \                        mfn_t callback_mfn)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1173,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1177,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1177,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1181,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1184,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1185,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1185,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1185,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1194,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1197,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1202,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1205,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1211,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1215,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1215,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1219,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1222,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1225,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1229,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1232
    functionName: sh_destroy_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - BUG
    - is_pv_32bit_domain
    - mfn_to_page
    - mfn_x
    - SHADOW_INTERNAL_NAME
    - page_get_owner
    - backpointer
    - ASSERT
    - printk
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void sh_destroy_shadow(struct domain *d, mfn_t smfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1240,1
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gmfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1244
    functionName: trace_shadow_wrmap_bf
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - trace
    - mfn_to_gfn
    linkageType: ''
    returnType: void
    signature: void trace_shadow_wrmap_bf(mfn_t gmfn)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1260,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1261,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1262,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1263,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1265,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1266,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1268,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1273,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1273,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1279,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1283,1
    - Dst: mfn_oos_may_write
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1286,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1292,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1294,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1300,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1302,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1302,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1303,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1329,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1332,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1333,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1334,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1334,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1338,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1346,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1347,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1351,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1352,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1353,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1353,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1358,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1360,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1369,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1371,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1373,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1380,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1381,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1381,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1382,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1382,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1383,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1383,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1389,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1389,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1394,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1396,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1398,1
    - Dst: GUESS
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1402,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1402,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1421,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1422,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1428,1
    - Dst: trace_shadow_wrmap_bf
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1437,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1439,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1441,1
    - Dst: HASH_CALLBACKS_CHECK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1442,1
    - Dst: hash_foreach
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1443,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1447,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1452,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1453,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1454,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1455,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 97
    argCount: 4
    argNames:
    - d
    - gmfn
    - level
    - fault_addr
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1253
    functionDepth: 3
    functionLinenumber: 1253
    functionLinenumberEnd: 1460
    functionName: sh_remove_write_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - TRACE_SHADOW_PATH_FLAG
    - hash_foreach
    - sh_mfn_is_a_page_table
    - printk
    - mfn_to_gfn
    - domain_crash
    - mfn_x
    - _mfn
    - HASH_CALLBACKS_CHECK
    - ASSERT
    - paging_mode_refcounts
    - perfc_incr
    - GUESS
    - trace_shadow_wrmap_bf
    - paging_locked_by_me
    - SHADOW_INTERNAL_NAME
    - mfn_oos_may_write
    - gfn_x
    - gfn_to_gaddr
    linkageType: ''
    returnType: int
    signature: "int sh_remove_write_access(struct domain *d, mfn_t gmfn,\n                           unsigned
      int level,\n                           unsigned long fault_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1314
    functionDepth: 0
    functionLinenumber: 1314
    functionLinenumberEnd: 1324
    functionName: GUESS
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GUESS(_a, _h)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1468,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1472,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1473,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1474,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1475,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1476,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1477,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1480,1
    - Dst: sh_check_page_has_no_refs
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1481,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1487,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1493,1
    - Dst: HASH_CALLBACKS_CHECK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1494,1
    - Dst: hash_foreach
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1495,1
    - Dst: sh_check_page_has_no_refs
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1498,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1511,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1514,1
    - Dst: is_ioreq_server_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1515,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1516,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1518,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1520,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1521,1
    - Dst: is_ioreq_server_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1521,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - d
    - gmfn
    - gfn
    argTypes:
    - struct domain*
    - mfn_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1466
    functionDepth: 3
    functionLinenumber: 1466
    functionLinenumberEnd: 1528
    functionName: sh_remove_all_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - sh_check_page_has_no_refs
    - mfn_to_page
    - hash_foreach
    - paging_mode_external
    - paging_unlock
    - SHADOW_INTERNAL_NAME
    - is_special_page
    - HASH_CALLBACKS_CHECK
    - is_ioreq_server_page
    - gfn_x
    - paging_lock_recursive
    - printk
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int sh_remove_all_mappings(struct domain *d, mfn_t gmfn, gfn_t gfn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1539,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1544,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1544,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1547,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1548,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1548,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1549,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1550,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1550,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1550,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1561,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1565,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1575,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1577,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1580,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1582,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1584,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1535
    functionDepth: 1
    functionLinenumber: 1535
    functionLinenumberEnd: 1587
    functionName: sh_remove_shadow_via_pointer
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - BUG
    - sh_type_has_up_pointer
    - map_domain_page
    - unmap_domain_page
    - mfn_to_page
    - SHADOW_INTERNAL_NAME
    - mfn_valid
    - ASSERT
    - maddr_to_mfn
    - l1e_get_mfn
    - mfn_eq
    linkageType: ''
    returnType: int
    signature: int sh_remove_shadow_via_pointer(struct domain *d, mfn_t smfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1598,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1606,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1607,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1609,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1611,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1613,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1614,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1631,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1632,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1632,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1637,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1639,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1639,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1644,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1649,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1684,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1685,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1686,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1687,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1689,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1690,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1692,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1694,1
    - Dst: DO_UNSHADOW
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1695,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1702,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1703,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1704,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1709,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - d
    - gmfn
    - fast
    - all
    argTypes:
    - struct domain*
    - mfn_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1589
    functionDepth: 3
    functionLinenumber: 1589
    functionLinenumberEnd: 1712
    functionName: sh_remove_shadows
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 2
    functionsReached:
    - perfc_incr
    - guest_flush_tlb_mask
    - mfn_to_page
    - DO_UNSHADOW
    - paging_unlock
    - mfn_x
    - SHADOW_INTERNAL_NAME
    - mfn_valid
    - ASSERT
    - paging_lock_recursive
    - domain_crash
    - printk
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void sh_remove_shadows(struct domain *d, mfn_t gmfn, int fast, int
      all)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1682
    functionName: DO_UNSHADOW
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_UNSHADOW(_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1731,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - d
    - page
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1732
    functionName: shadow_prepare_page_type_change
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - shadow_remove_all_shadows
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: "void shadow_prepare_page_type_change(struct domain *d,\n                                     const
      struct page_info *page)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1743,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1745,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1747,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1748,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1751
    functionName: sh_detach_old_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - pagetable_get_mfn
    - sh_put_ref
    - mfn_x
    - pagetable_null
    linkageType: ''
    returnType: void
    signature: void sh_detach_old_tables(struct vcpu *v)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1759,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1759,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1763,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1765,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1766,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1768,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1769,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1772,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1778,1
    - Dst: shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1782,1
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1787,1
    - Dst: sh_detach_old_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1802,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1805,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1809,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1809,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1810,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1810,1
    - Dst: shadow_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1816,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1819,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1825,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1827,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1831,1
    - Dst: hvm_pae_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1833,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1837,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1843,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1846,1
    - Dst: sh_make_monitor_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1848,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1851,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1854,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1855,1
    - Dst: hvm_update_host_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1856,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1859,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1862,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1865,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1876,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1878,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1884,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1888,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1889,1
    - Dst: sh_make_monitor_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1890,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1892,1
    - Dst: sh_destroy_monitor_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1894,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1898,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1899,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1900,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1905,1
    - Dst: write_ptbase
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1907,1
    - Dst: hvm_update_host_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1908,1
    - Dst: sh_destroy_monitor_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1909,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1929,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1929,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1933,1
    - Dst: struct vcpu*::arch::paging::mode::update_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1944,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1755
    functionDepth: 4
    functionLinenumber: 1755
    functionLinenumberEnd: 1945
    functionName: sh_update_paging_modes
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - pagetable_from_mfn
    - pagetable_get_mfn
    - write_ptbase
    - vcpu_runnable
    - shadow_alloc
    - SHADOW_PRINTK
    - hvm_long_mode_active
    - is_hvm_domain
    - hvm_paging_enabled
    - struct vcpu*::arch::paging::mode::update_cr3
    - pagetable_is_null
    - pagetable_null
    - shadow_prealloc
    - printk
    - mfn_eq
    - domain_crash
    - sh_make_monitor_table
    - sh_destroy_monitor_table
    - hvm_update_host_cr3
    - mfn_x
    - shadow_resync_all
    - ASSERT
    - ASSERT_UNREACHABLE
    - make_cr3
    - paging_mode_external
    - paging_locked_by_me
    - SHADOW_INTERNAL_NAME
    - hvm_pae_enabled
    - sh_detach_old_tables
    - xzalloc_array
    - paging_mode_translate
    - unlikely
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: void sh_update_paging_modes(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 1938
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 34
    functionsReached:
    - hvm_paging_enabled
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, vptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1954,1
    - Dst: sh_update_paging_modes
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1955,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1952
    functionDepth: 5
    functionLinenumber: 1952
    functionLinenumberEnd: 1957
    functionName: shadow_update_paging_modes
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - sh_update_paging_modes
    - paging_unlock
    - paging_lock
    linkageType: ''
    returnType: void
    signature: void shadow_update_paging_modes(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1976,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1978,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1978,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1979,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1984,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1985,1
    - Dst: shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1988,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1990,1
    - Dst: make_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1995,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1997,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:1997,1
    - Dst: sh_get_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2001,1
    - Dst: sh_pin
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2004,1
    - Dst: pagetable_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2006,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2010,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2011,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2012,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2013,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2018,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2020,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2020,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2020,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2028,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2028,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2030,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2030,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2031,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2039,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2039,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - v
    - slot
    - gmfn
    - root_type
    argTypes:
    - struct vcpu*
    - unsigned int
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 1960
    functionDepth: 2
    functionLinenumber: 1960
    functionLinenumberEnd: 2042
    functionName: sh_set_toplevel_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - pagetable_from_mfn
    - SHADOW_PRINTK
    - pagetable_get_mfn
    - sh_put_ref
    - mfn_x
    - sh_get_ref
    - get_shadow_status
    - mfn_valid
    - pagetable_is_null
    - pagetable_null
    - shadow_prealloc
    - ASSERT
    - sh_pin
    - is_pv_domain
    - printk
    - mfn_eq
    - domain_crash
    - make_shadow
    linkageType: ''
    returnType: pagetable_t
    signature: "pagetable_t sh_set_toplevel_shadow(struct vcpu *v,\n                                   unsigned
      int slot,\n                                   mfn_t gmfn,\n                                   unsigned
      int root_type,\n                                   mfn_t (*make_shadow)(struct
      vcpu *v,\n                                                        mfn_t gmfn,\n
      \                                                       uint32_t shadow_type))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2050,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2050,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2051,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2052,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2052,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - old
    argTypes:
    - struct domain*
    - pagetable_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2054
    functionName: shadow_put_top_level
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 2
    functionsReached:
    - pagetable_get_mfn
    - paging_lock
    - sh_put_ref
    - paging_unlock
    - pagetable_is_null
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void shadow_put_top_level(struct domain *d, pagetable_t old)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2064,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2064,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2065,1
    - Dst: paging_mode_sh_forced
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2073,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2077,1
    - Dst: sh_update_paging_modes
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - new_mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2059
    functionDepth: 5
    functionLinenumber: 2059
    functionLinenumberEnd: 2079
    functionName: sh_new_mode
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - sh_update_paging_modes
    - paging_locked_by_me
    - ASSERT
    - paging_mode_sh_forced
    linkageType: ''
    returnType: void
    signature: void sh_new_mode(struct domain *d, u32 new_mode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2091,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2095,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2098,1
    - Dst: sh_min_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2106,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2108,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2109,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2112,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2115,1
    - Dst: p2m_alloc_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2126,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2133,1
    - Dst: shadow_alloc_p2m_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2137,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2145,1
    - Dst: write_32bit_pse_identmap
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2146,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2147,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2150,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2153,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2156,1
    - Dst: shadow_hash_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2163,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2176,1
    - Dst: pagetable_from_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2177,1
    - Dst: sh_new_mode
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2180,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2183,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2190,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2190,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2191,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2196,1
    - Dst: shadow_free_p2m_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2197,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2199,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 2
    argNames:
    - d
    - mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2081
    functionDepth: 6
    functionLinenumber: 2081
    functionLinenumberEnd: 2201
    functionName: shadow_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - pagetable_from_page
    - p2m_alloc_table
    - shadow_hash_alloc
    - is_hvm_domain
    - paging_unlock
    - pagetable_is_null
    - p2m_get_pagetable
    - sh_new_mode
    - page_set_owner
    - write_32bit_pse_identmap
    - shadow_alloc_p2m_page
    - domain_unpause
    - paging_lock
    - __map_domain_page
    - sh_min_allocation
    - shadow_free_p2m_page
    - p2m_get_hostp2m
    - unmap_domain_page
    - domain_pause
    - shadow_set_allocation
    - p2m_teardown
    - shadow_mode_enabled
    linkageType: ''
    returnType: int
    signature: int shadow_enable(struct domain *d, u32 mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2207,1
    - Dst: paging_mode_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2209,1
    - Dst: sh_detach_old_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2212,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2214,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2216,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2218,1
    - Dst: sh_destroy_monitor_table
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2219,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2223,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2229
    functionName: shadow_vcpu_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - sh_destroy_monitor_table
    - pagetable_get_mfn
    - paging_lock
    - paging_mode_external
    - paging_mode_shadow
    - mfn_x
    - paging_unlock
    - sh_detach_old_tables
    - pagetable_null
    linkageType: ''
    returnType: void
    signature: void shadow_vcpu_teardown(struct vcpu *v)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2238,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2239,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2242,1
    - Dst: shadow_vcpu_teardown
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2243,1
    - Dst: p2m_teardown
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2245,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2245,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2249,1
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2256,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2265,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2275,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2277,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2288,1
    - Dst: shadow_hash_teardown
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2295,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2297,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2302,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2304,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2304,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2305,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2306,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2307,1
    - Dst: pagetable_get_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2309,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2310,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2319,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2321,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2322,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2323,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2328,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2333,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2337,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2340,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2342,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2344,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2344,1
    - Dst: shadow_free_p2m_page
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2347,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    argCount: 2
    argNames:
    - d
    - preempted
    argTypes:
    - struct domain*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2349
    functionName: shadow_teardown
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - shadow_free
    - pagetable_get_page
    - xfree
    - is_hvm_domain
    - hvm_paging_enabled
    - page_to_mfn
    - shadow_blow_tables
    - paging_unlock
    - XFREE
    - pagetable_is_null
    - shadow_hash_teardown
    - pagetable_null
    - page_set_owner
    - printk
    - mfn_eq
    - shadow_vcpu_teardown
    - paging_lock
    - mfn_x
    - ASSERT
    - shadow_free_p2m_page
    - p2m_get_hostp2m
    - shadow_set_allocation
    - p2m_teardown
    - page_get_owner
    linkageType: ''
    returnType: void
    signature: void shadow_teardown(struct domain *d, bool *preempted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2265,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2275,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2260
    functionDepth: 2
    functionLinenumber: 2260
    functionLinenumberEnd: 2282
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 36
    functionsReached:
    - xfree
    - shadow_free
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2354,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2354,1
    - Dst: sh_min_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2364,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2367,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2369,1
    - Dst: shadow_hash_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2381,1
    - Dst: sh_new_mode
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - d
    - mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2351
    functionDepth: 6
    functionLinenumber: 2351
    functionLinenumberEnd: 2389
    functionName: shadow_one_bit_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - shadow_set_allocation
    - paging_locked_by_me
    - sh_new_mode
    - ASSERT
    - shadow_hash_alloc
    - sh_min_allocation
    linkageType: ''
    returnType: int
    signature: int shadow_one_bit_enable(struct domain *d, u32 mode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2395,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2395,1
    - Dst: sh_new_mode
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2407,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2411,1
    - Dst: sh_detach_old_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2418,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2420,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2420,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2422,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2422,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2429,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2431,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2439,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2440,1
    - Dst: shadow_hash_teardown
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2441,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - d
    - mode
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2391
    functionDepth: 6
    functionLinenumber: 2391
    functionLinenumberEnd: 2449
    functionName: shadow_one_bit_disable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - BUG
    - make_cr3
    - pagetable_get_mfn
    - shadow_set_allocation
    - paging_locked_by_me
    - sh_detach_old_tables
    - shadow_hash_teardown
    - sh_new_mode
    - ASSERT
    - shadow_free
    - mfn_eq
    - SHADOW_PRINTK
    linkageType: ''
    returnType: int
    signature: int shadow_one_bit_disable(struct domain *d, u32 mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sh_detach_old_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2418,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2420,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2420,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2422,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2422,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2429,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2436
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 36
    functionsReached:
    - make_cr3
    - pagetable_get_mfn
    - sh_detach_old_tables
    - shadow_free
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2456,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2457,1
    - Dst: shadow_one_bit_enable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2458,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2459,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2452
    functionDepth: 7
    functionLinenumber: 2452
    functionLinenumberEnd: 2463
    functionName: shadow_test_enable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - domain_pause
    - paging_lock
    - paging_unlock
    - shadow_one_bit_enable
    linkageType: ''
    returnType: int
    signature: int shadow_test_enable(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2469,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2470,1
    - Dst: shadow_one_bit_disable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2471,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2472,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2465
    functionDepth: 7
    functionLinenumber: 2465
    functionLinenumberEnd: 2476
    functionName: shadow_test_disable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - domain_pause
    - paging_lock
    - paging_unlock
    - shadow_one_bit_disable
    linkageType: ''
    returnType: int
    signature: int shadow_test_disable(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2488,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2489,1
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2494,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2501,1
    - Dst: shadow_one_bit_enable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2505,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2484
    functionDepth: 7
    functionLinenumber: 2484
    functionLinenumberEnd: 2509
    functionName: sh_enable_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - paging_lock
    - shadow_blow_tables
    - paging_unlock
    - shadow_one_bit_enable
    - shadow_mode_enabled
    linkageType: ''
    returnType: int
    signature: int sh_enable_log_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2516,1
    - Dst: shadow_one_bit_disable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2517,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2512
    functionDepth: 7
    functionLinenumber: 2512
    functionLinenumberEnd: 2521
    functionName: sh_disable_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - shadow_one_bit_disable
    - paging_unlock
    - paging_lock
    linkageType: ''
    returnType: int
    signature: int sh_disable_log_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2528,1
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2532,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2526
    functionDepth: 4
    functionLinenumber: 2526
    functionLinenumberEnd: 2534
    functionName: sh_clean_dirty_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - shadow_blow_tables
    - paging_unlock
    - paging_lock
    linkageType: ''
    returnType: void
    signature: void sh_clean_dirty_bitmap(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: shadow_test_disable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2550,1
    - Dst: shadow_test_enable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2555,1
    - Dst: paging_enable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2558,1
    - Dst: shadow_get_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2561,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2565,1
    - Dst: shadow_mode_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2566,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2570,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2572,1
    - Dst: shadow_set_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2575,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2576,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2579,1
    - Dst: shadow_get_allocation
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - d
    - sc
    argTypes:
    - struct domain*
    - struct xen_domctl_shadow_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2539
    functionDepth: 8
    functionLinenumber: 2539
    functionLinenumberEnd: 2589
    functionName: shadow_domctl
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 1
    functionsReached:
    - shadow_mode_enabled
    - shadow_set_allocation
    - paging_lock
    - paging_unlock
    - hypercall_create_continuation
    - paging_enable
    - shadow_test_disable
    - shadow_get_allocation
    - dprintk
    - shadow_test_enable
    linkageType: ''
    returnType: int
    signature: "int shadow_domctl(struct domain *d,\n                  struct xen_domctl_shadow_op
      *sc,\n                  XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2601,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2602,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2603,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2604,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2605,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2606,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2608,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2609,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2610,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2612,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2614,1
    - Dst: SHADOW_INTERNAL_NAME
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2615,1
    - Dst: sh_oos_audit
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2627,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2640,1
    - Dst: HASH_CALLBACKS_CHECK
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2644,1
    - Dst: hash_foreach
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2595
    functionDepth: 3
    functionLinenumber: 2595
    functionLinenumberEnd: 2648
    functionName: shadow_audit_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - BUG
    - sh_oos_audit
    - hash_foreach
    - SHADOW_INTERNAL_NAME
    - HASH_CALLBACKS_CHECK
    linkageType: ''
    returnType: void
    signature: void shadow_audit_tables(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2656,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2657,1
    - Dst: paging_mode_sh_forced
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2659,1
    - Dst: shadow_one_bit_enable
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2661,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2665,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2667,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2671,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/x86/mm/shadow/common.c:2672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2652
    functionDepth: 7
    functionLinenumber: 2652
    functionLinenumberEnd: 2673
    functionName: pv_l1tf_tasklet
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/common.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - domain_pause
    - paging_lock
    - paging_unlock
    - shadow_one_bit_enable
    - paging_mode_sh_forced
    - printk
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void pv_l1tf_tasklet(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:6,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: _toggle_log_dirty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - is_pv_domain
    linkageType: ''
    returnType: int
    signature: int _toggle_log_dirty(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:12,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: _clean_dirty_bitmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - is_pv_domain
    linkageType: ''
    returnType: void
    signature: void _clean_dirty_bitmap(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: _update_paging_modes
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 15
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void _update_paging_modes(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paging_log_dirty_init
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:29,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: shadow_domain_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 1
    functionsReached:
    - is_hvm_domain
    - paging_log_dirty_init
    linkageType: ''
    returnType: int
    signature: int shadow_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - va
    - regs
    argTypes:
    - struct vcpu*
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: _page_fault
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 15
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int _page_fault(\n    struct vcpu *v, unsigned long va, struct cpu_user_regs
      *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: _invlpg
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 6
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool _invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:53,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - p2m
    - va
    - pfec
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: _gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 5
    functionsReached:
    - gfn_x
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check _gva_to_gfn(\n    struct vcpu *v, struct p2m_domain
      *p2m, unsigned long va, uint32_t *pfec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:60,1
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: _update_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 4
    functionsReached:
    - ASSERT_UNREACHABLE
    - pagetable_null
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t _update_cr3(struct vcpu *v, bool noflush)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:75,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/none.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: shadow_vcpu_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/none.c
    functionUses: 1
    functionsReached:
    - is_pv_vcpu
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void shadow_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: SHADOW_PRINTK
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHADOW_PRINTK(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - flag
    - ','
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: SHADOW_DEBUG
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHADOW_DEBUG(flag, _f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: TRACE_SHADOW_PATH_FLAG
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_SHADOW_PATH_FLAG(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - kind
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: SHADOW_INTERNAL_NAME_
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHADOW_INTERNAL_NAME_(name, kind, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - guest_levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: SHADOW_INTERNAL_NAME
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHADOW_INTERNAL_NAME(name, guest_levels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - shadow_levels
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: SHADOW_SH_NAME
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHADOW_SH_NAME(name, shadow_levels)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 221
    functionName: sh_type_is_pinnable
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: int sh_type_is_pinnable(struct domain *d, unsigned int t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_type_is_pinnable
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: sh_type_has_up_pointer
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - sh_type_is_pinnable
    linkageType: ''
    returnType: int
    signature: int sh_type_has_up_pointer(struct domain *d, unsigned int t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tmp_list
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 243
    functionName: sh_terminate_list
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sh_terminate_list(struct page_list_head *tmp_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: sh_page_has_multiple_shadows
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sh_page_has_multiple_shadows(struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: page_is_out_of_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int page_is_out_of_sync(struct page_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:325,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gmfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: mfn_is_out_of_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 2
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: int mfn_is_out_of_sync(mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: page_oos_may_write
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int page_oos_may_write(struct page_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_oos_may_write
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:336,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gmfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: mfn_oos_may_write
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - page_oos_may_write
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: int mfn_oos_may_write(mfn_t gmfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:346,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:346,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - shadow_type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 352
    functionName: shadow_size
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 3
    functionsReached:
    - ASSERT
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int shadow_size(unsigned int shadow_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:402,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - gmfn
    - level
    - fault_addr
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: sh_remove_write_access
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - ASSERT
    - paging_mode_refcounts
    linkageType: ''
    returnType: int
    signature: "int sh_remove_write_access(struct domain *d, mfn_t gmfn,\n                                         unsigned
      int level,\n                                         unsigned long fault_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 6
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: shadow_resync_all
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - sh_resync_all
    linkageType: ''
    returnType: void
    signature: void shadow_resync_all(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: shadow_resync_current_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - sh_resync_all
    linkageType: ''
    returnType: void
    signature: void shadow_resync_current_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: shadow_sync_other_vcpus
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - sh_resync_all
    linkageType: ''
    returnType: void
    signature: void shadow_sync_other_vcpus(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: backpointer
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: backpointer(sp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sp
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 512
    functionName: __backpointer
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 2
    functionsReached:
    - pdx_to_pfn
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __backpointer(const struct page_info *sp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:521,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:524,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:525,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - gmfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 532
    functionName: sh_mfn_is_a_page_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - page_get_owner
    - mfn_valid
    - paging_mode_refcounts
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: int sh_mfn_is_a_page_table(mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:546,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:548,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:548,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:549,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:554,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:556,1
    - Dst: __backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:557,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:557,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - d
    - smfn
    - entry_pa
    argTypes:
    - struct domain*
    - mfn_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 569
    functionName: sh_get_ref
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - sh_type_has_up_pointer
    - mfn_to_page
    - mfn_x
    - mfn_valid
    - ASSERT
    - unlikely
    - SHADOW_PRINTK
    - __backpointer
    linkageType: ''
    returnType: int
    signature: int sh_get_ref(struct domain *d, mfn_t smfn, paddr_t entry_pa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:577,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:579,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:579,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:580,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:581,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:586,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:586,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:593,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:595,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:596,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:597,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:603,1
    - Dst: sh_destroy_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:604,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - d
    - smfn
    - entry_pa
    argTypes:
    - struct domain*
    - mfn_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 605
    functionName: sh_put_ref
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 3
    functionsReached:
    - BUG
    - sh_type_has_up_pointer
    - mfn_to_page
    - mfn_x
    - mfn_valid
    - ASSERT
    - printk
    - unlikely
    - sh_destroy_shadow
    linkageType: ''
    returnType: void
    signature: void sh_put_ref(struct domain *d, mfn_t smfn, paddr_t entry_pa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:619,1
    - Dst: page_list_first
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:619,1
    - Dst: page_list_last
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:623,1
    - Dst: page_list_prev
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:625,1
    - Dst: page_list_prev
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:629,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:630,1
    - Dst: page_list_prev
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:631,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:632,1
    - Dst: page_list_prev
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:633,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:634,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:636,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - page
    - d
    argTypes:
    - struct page_info*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 638
    functionName: prev_pinned_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - page_list_last
    - page_list_prev
    - ASSERT
    - page_list_empty
    - page_list_first
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\nprev_pinned_shadow(struct page_info *page,\n                   const
      struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dom
    - ','
    - pos
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: foreach_pinned_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: foreach_pinned_shadow(dom, pos, tmp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:657,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:657,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:658,1
    - Dst: shadow_size
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:659,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:661,1
    - Dst: sh_type_is_pinnable
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:661,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:662,1
    - Dst: page_list_first
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:665,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:671,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:672,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:673,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:680,1
    - Dst: sh_get_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:685,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:692,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 695
    functionName: sh_pin
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - page_list_del
    - sh_get_ref
    - mfn_valid
    - page_list_add
    - ASSERT
    - sh_type_is_pinnable
    - page_list_next
    - shadow_size
    - page_list_first
    linkageType: ''
    returnType: bool
    signature: bool sh_pin(struct domain *d, mfn_t smfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:705,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:705,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:706,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:708,1
    - Dst: sh_type_is_pinnable
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:708,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:709,1
    - Dst: shadow_size
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:715,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:722,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:725,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:726,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:727,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:728,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:730,1
    - Dst: sh_terminate_list
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:737,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 699
    functionDepth: 3
    functionLinenumber: 699
    functionLinenumberEnd: 740
    functionName: sh_unpin
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 4
    functionsReached:
    - page_list_add_tail
    - mfn_to_page
    - page_list_del
    - sh_put_ref
    - sh_terminate_list
    - mfn_valid
    - ASSERT
    - INIT_PAGE_LIST_HEAD
    - sh_type_is_pinnable
    - page_list_next
    - shadow_size
    linkageType: ''
    returnType: void
    signature: void sh_unpin(struct domain *d, mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:754,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:754,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:756,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:756,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:756,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - gmfn
    - shadow_type
    argTypes:
    - struct domain*
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 750
    functionDepth: 5
    functionLinenumber: 750
    functionLinenumberEnd: 760
    functionName: get_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - perfc_incr
    - shadow_hash_lookup
    - mfn_to_page
    - mfn_x
    - ASSERT
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t get_shadow_status(struct domain *d, mfn_t gmfn, u32 shadow_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:766,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:767,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:767,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:769,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:769,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:772,1
    - Dst: get_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:773,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:773,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:775,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:776,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:777,1
    - Dst: shadow_hash_insert
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:781,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - d
    - gmfn
    - shadow_type
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    - u32
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 762
    functionDepth: 5
    functionLinenumber: 762
    functionLinenumberEnd: 782
    functionName: set_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - mfn_to_page
    - mfn_x
    - shadow_hash_insert
    - get_page
    - ASSERT
    - domain_crash
    - printk
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void set_shadow_status(struct domain *d, mfn_t gmfn, u32 shadow_type,
      mfn_t smfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:788,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:789,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:789,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:790,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:790,1
    - Dst: shadow_hash_delete
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:791,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:791,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:793,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:794,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - d
    - gmfn
    - shadow_type
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    - u32
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 784
    functionDepth: 5
    functionLinenumber: 784
    functionLinenumberEnd: 795
    functionName: delete_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    - mfn_to_page
    - mfn_x
    - ASSERT
    - shadow_hash_delete
    - put_page
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void delete_shadow_status(struct domain *d, mfn_t gmfn, u32 shadow_type,
      mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 837
    functionName: sh_reset_early_unshadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - mfn_x
    linkageType: ''
    returnType: void
    signature: void sh_reset_early_unshadow(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:866,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:867,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: vtlb_flush
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - memset
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void vtlb_flush(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page_number
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 874
    functionName: vtlb_hash
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vtlb_hash(unsigned long page_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:882,1
    - Dst: vtlb_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:883,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - v
    - page
    - frame
    - pfec
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 885
    functionName: vtlb_insert
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - vtlb_hash
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void vtlb_insert(struct vcpu *v, unsigned long page,\n                               unsigned
      long frame, uint32_t pfec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:892,1
    - Dst: vtlb_hash
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:893,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:895,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - v
    - va
    - pfec
    argTypes:
    - struct vcpu*
    - unsigned long
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 905
    functionName: vtlb_lookup
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 0
    functionsReached:
    - gfn_x
    - vtlb_hash
    - spin_unlock
    - spin_lock
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vtlb_lookup(struct vcpu *v,\n                                        unsigned
      long va, uint32_t pfec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/private.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 913
    functionName: sh_check_page_has_no_refs
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/private.h
    functionUses: 1
    functionsReached:
    - read_atomic
    linkageType: ''
    returnType: int
    signature: int sh_check_page_has_no_refs(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: for_each_shadow_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_shadow_table(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: for_each_shadow_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_shadow_table(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:87,1
    - Dst: guest_flush_tlb_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: sh_flush_local
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_flags
    - flush_local
    linkageType: ''
    returnType: void
    signature: void sh_flush_local(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: ASSERT_VALID_L2
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_VALID_L2(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: ASSERT_VALID_L2
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_VALID_L2(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:109,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:109,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:110,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:110,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: get_fl1_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_hash_lookup
    - mfn_to_page
    - gfn_x
    - ASSERT
    - mfn_eq
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t get_fl1_shadow_status(struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:118,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:119,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:119,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:121,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:121,1
    - Dst: shadow_hash_insert
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:122,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - d
    - gfn
    - smfn
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 123
    functionName: set_fl1_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_x
    - shadow_hash_insert
    - gfn_x
    - ASSERT
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void set_fl1_shadow_status(struct domain *d, gfn_t gfn, mfn_t smfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:129,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:130,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:130,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:131,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:131,1
    - Dst: shadow_hash_delete
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:132,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:132,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:134,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:136,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:136,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - d
    - gfn
    - smfn
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: delete_fl1_shadow_status
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_x
    - gfn_x
    - ASSERT
    - shadow_hash_delete
    - domain_crash
    - printk
    - SHADOW_PRINTK
    linkageType: ''
    returnType: void
    signature: void delete_fl1_shadow_status(struct domain *d, gfn_t gfn, mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:149,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:149,1
    - Dst: cr3_pa
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:150,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:151,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:156,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:157,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:158,1
    - Dst: guest_walk_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:159,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:159,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:162,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:166,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:168,1
    - Dst: guest_walk_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:171,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - v
    - va
    - gw
    - pfec
    argTypes:
    - struct vcpu*
    - unsigned long
    - walk_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 174
    functionName: sh_walk_guest_tables
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - cr3_pa
    - map_domain_page
    - pagetable_get_mfn
    - paging_mode_external
    - _gfn
    - guest_walk_tables
    - pagetable_get_pfn
    - memset
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: "bool sh_walk_guest_tables(struct vcpu *v, unsigned long va, walk_t
      *gw,\n                     uint32_t pfec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:194,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:194,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:197,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:210,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:213,1
    - Dst: guest_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:214,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:215,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:216,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:217,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:218,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:221,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:224,1
    - Dst: guest_l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:225,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:226,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:228,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:229,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:231,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:232,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - v
    - va
    - gw
    - version
    argTypes:
    - struct vcpu*
    - unsigned long
    - walk_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 237
    functionName: shadow_check_gwalk
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - guest_l4_table_offset
    - unmap_domain_page
    - map_domain_page
    - guest_l3_table_offset
    - guest_l1_table_offset
    - paging_locked_by_me
    - guest_can_use_l2_superpages
    - ASSERT
    - guest_l2_table_offset
    - guest_l2e_get_flags
    - atomic_read
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t shadow_check_gwalk(struct vcpu *v, unsigned long va, walk_t
      *gw, int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:245,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:249,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:250,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - gw
    argTypes:
    - struct vcpu*
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 254
    functionName: shadow_check_gl1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - mfn_valid
    - guest_l1_table_offset
    linkageType: ''
    returnType: int
    signature: int shadow_check_gl1e(struct vcpu *v, walk_t *gw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:277,1
    - Dst: sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:279,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:284,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:289,1
    - Dst: sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:291,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:296,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:300,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:301,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:303,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:305,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - v
    - va
    - gw
    argTypes:
    - struct vcpu*
    - unsigned long
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 309
    functionName: gw_remove_write_accesses
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_resync
    - guest_can_use_l2_superpages
    - mfn_is_out_of_sync
    - sh_remove_write_access
    - guest_l2e_get_flags
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gw_remove_write_accesses(struct vcpu *v, unsigned long va,
      walk_t *gw)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:323,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:324,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:324,1
    - Dst: sh_audit_l4_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:326,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:327,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:328,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:328,1
    - Dst: sh_audit_l3_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:330,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:332,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:334,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:334,1
    - Dst: sh_audit_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:336,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:338,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:338,1
    - Dst: sh_audit_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:340,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:343,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:344,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:344,1
    - Dst: sh_audit_l1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:346,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:347,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:348,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:349,1
    - Dst: get_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:350,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:350,1
    - Dst: sh_audit_fl1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:351,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - v
    - gw
    argTypes:
    - struct vcpu*
    - walk_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 313
    functionDepth: 6
    functionLinenumber: 313
    functionLinenumberEnd: 353
    functionName: sh_audit_gw
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_audit_l4_table
    - sh_audit_l2_table
    - get_fl1_shadow_status
    - get_shadow_status
    - mfn_valid
    - guest_l2e_get_gfn
    - sh_audit_fl1_table
    - sh_audit_l3_table
    - sh_audit_l1_table
    - guest_l2e_get_flags
    linkageType: ''
    returnType: void
    signature: void sh_audit_gw(struct vcpu *v, const walk_t *gw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:377,1
    - Dst: PAGE_LIST_HEAD_INIT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:378,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:380,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:383,1
    - Dst: page_list_next
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:385,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:387,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:388,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:389,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - smfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: sh_next_page
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - mfn_to_page
    - ASSERT
    - page_list_next
    - PAGE_LIST_HEAD_INIT
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t sh_next_page(mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - sl2e
    - ','
    - new_sl2e
    - ','
    - sl2mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: shadow_set_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_set_l2e(d, sl2e, new_sl2e, sl2mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: guest_index
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 guest_index(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:408,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:408,1
    - Dst: sh_next_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - smfn
    - guest_index
    argTypes:
    - mfn_t*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: shadow_l1_index
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - sh_next_page
    - mfn_to_page
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l1_index(mfn_t *smfn, u32 guest_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:421,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:421,1
    - Dst: sh_next_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - smfn
    - guest_index
    argTypes:
    - mfn_t*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: shadow_l2_index
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - sh_next_page
    - mfn_to_page
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l2_index(mfn_t *smfn, u32 guest_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - smfn
    - guest_index
    argTypes:
    - mfn_t*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: shadow_l3_index
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l3_index(mfn_t *smfn, u32 guest_index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - smfn
    - guest_index
    argTypes:
    - mfn_t*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: shadow_l4_index
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l4_index(mfn_t *smfn, u32 guest_index)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:468,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:474,1
    - Dst: gfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:476,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:478,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:482,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:484,1
    - Dst: sh_l1e_gnp
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:490,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:493,1
    - Dst: sh_l1e_mmio
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:500,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:501,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:507,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:509,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:518,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:520,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:520,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:522,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:525,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:526,1
    - Dst: guest_nx_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:537,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:539,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:547,1
    - Dst: is_special_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:548,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:548,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:552,1
    - Dst: hvm_get_mem_pinned_cacheattr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:562,1
    - Dst: pat_type_2_pte_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:563,1
    - Dst: hvm_is_in_uc_mode
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:564,1
    - Dst: pat_type_2_pte_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:565,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:567,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:567,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:567,1
    - Dst: get_pat_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:570,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:572,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:573,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:575,1
    - Dst: pat_type_2_pte_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:576,1
    - Dst: get_pat_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:578,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:580,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:581,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:599,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:603,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:606,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:611,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:611,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:616,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:617,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:620,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:628,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:631,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:631,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:659,1
    - Dst: paging_mode_log_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:659,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:662,1
    - Dst: paging_mfn_is_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:664,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:672,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:673,1
    - Dst: shadow_l1e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:678,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:681,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 89
    argCount: 7
    argNames:
    - v
    - guest_intpte
    - target_mfn
    - shadow_entry_ptr
    - level
    - ft
    - p2mt
    argTypes:
    - struct vcpu*
    - guest_intpte_t
    - mfn_t
    - void*
    - int
    - fetch_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 684
    functionName: _sh_propagate
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - mfn_to_page
    - mfn_to_maddr
    - shadow_l1e_from_mfn
    - guest_can_use_l2_superpages
    - guest_l1e_get_gfn
    - is_hvm_domain
    - paging_mode_log_dirty
    - is_pv_32bit_domain
    - shadow_l1e_empty
    - guest_l1e_get_flags
    - mfn_valid
    - pat_type_2_pte_flags
    - iomem_access_permitted
    - p2m_is_readonly
    - is_iommu_enabled
    - NOW
    - get_pat_flags
    - sh_l1e_mmio
    - sh_l1e_is_magic
    - guest_nx_enabled
    - mfn_x
    - is_special_page
    - ASSERT
    - paging_mode_refcounts
    - paging_mfn_is_dirty
    - gfn_valid
    - rangeset_contains_singleton
    - page_get_owner
    - sh_l1e_gnp
    - gfn_to_gaddr
    - gfn_x
    - hvm_get_mem_pinned_cacheattr
    - unlikely
    - p2m_is_any_ram
    - hvm_is_in_uc_mode
    - paging_mark_dirty
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _sh_propagate(struct vcpu *v,\n              guest_intpte_t
      guest_intpte,\n              mfn_t target_mfn,\n              void *shadow_entry_ptr,\n
      \             int level,\n              fetch_type_t ft,\n              p2m_type_t
      p2mt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:699,1
    - Dst: guest_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:700,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:701,1
    - Dst: guest_l4e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:701,1
    - Dst: _sh_propagate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - v
    - gl4e
    - sl3mfn
    - sl4e
    - ft
    argTypes:
    - struct vcpu*
    - guest_l4e_t
    - mfn_t
    - shadow_l4e_t*
    - fetch_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 692
    functionDepth: 5
    functionLinenumber: 692
    functionLinenumberEnd: 704
    functionName: l4e_propagate_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_l4e_rsvd_bits
    - ASSERT
    - guest_l4e_get_flags
    - mfn_eq
    - _sh_propagate
    linkageType: ''
    returnType: void
    signature: "void l4e_propagate_from_guest(struct vcpu *v,\n                         guest_l4e_t
      gl4e,\n                         mfn_t sl3mfn,\n                         shadow_l4e_t
      *sl4e,\n                         fetch_type_t ft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:713,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:714,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:715,1
    - Dst: guest_l3e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:715,1
    - Dst: _sh_propagate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - v
    - gl3e
    - sl2mfn
    - sl3e
    - ft
    argTypes:
    - struct vcpu*
    - guest_l3e_t
    - mfn_t
    - shadow_l3e_t*
    - fetch_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 718
    functionName: l3e_propagate_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_l3e_get_flags
    - guest_l3e_rsvd_bits
    - ASSERT
    - mfn_eq
    - _sh_propagate
    linkageType: ''
    returnType: void
    signature: "void l3e_propagate_from_guest(struct vcpu *v,\n                         guest_l3e_t
      gl3e,\n                         mfn_t sl2mfn,\n                         shadow_l3e_t
      *sl3e,\n                         fetch_type_t ft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:728,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:729,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:730,1
    - Dst: guest_l2e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:730,1
    - Dst: _sh_propagate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - v
    - gl2e
    - sl1mfn
    - sl2e
    - ft
    argTypes:
    - struct vcpu*
    - guest_l2e_t
    - mfn_t
    - shadow_l2e_t*
    - fetch_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 721
    functionDepth: 5
    functionLinenumber: 721
    functionLinenumberEnd: 733
    functionName: l2e_propagate_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_l2e_rsvd_bits
    - ASSERT
    - mfn_eq
    - _sh_propagate
    - guest_l2e_get_flags
    linkageType: ''
    returnType: void
    signature: "void l2e_propagate_from_guest(struct vcpu *v,\n                         guest_l2e_t
      gl2e,\n                         mfn_t sl1mfn,\n                         shadow_l2e_t
      *sl2e,\n                         fetch_type_t ft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:743,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:744,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:745,1
    - Dst: guest_l1e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:745,1
    - Dst: _sh_propagate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - v
    - gl1e
    - gmfn
    - sl1e
    - ft
    - p2mt
    argTypes:
    - struct vcpu*
    - guest_l1e_t
    - mfn_t
    - shadow_l1e_t*
    - fetch_type_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 735
    functionDepth: 5
    functionLinenumber: 735
    functionLinenumberEnd: 748
    functionName: l1e_propagate_from_guest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_l1e_get_flags
    - guest_l1e_rsvd_bits
    - ASSERT
    - mfn_eq
    - _sh_propagate
    linkageType: ''
    returnType: void
    signature: "void l1e_propagate_from_guest(struct vcpu *v,\n                         guest_l1e_t
      gl1e,\n                         mfn_t gmfn,\n                         shadow_l1e_t
      *sl1e,\n                         fetch_type_t ft,\n                         p2m_type_t
      p2mt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: increment_ptr_to_guest_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void increment_ptr_to_guest_entry(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _sl1mfn
    - ','
    - _sl1e
    - ','
    - _gl1p
    - ','
    - _done
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 792
    functionName: _FOREACH_PRESENT_L1E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _sl1mfn
    - ','
    - _sl1e
    - ','
    - _gl1p
    - ','
    - _done
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 804
    functionName: FOREACH_PRESENT_L1E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done,  _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _sl1mfn
    - ','
    - _sl1e
    - ','
    - _gl1p
    - ','
    - _done
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: FOREACH_PRESENT_L1E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L1E(_sl1mfn, _sl1e, _gl1p, _done, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _sl2mfn
    - ','
    - _sl2e
    - ','
    - _gl2p
    - ','
    - _done
    - ','
    - _dom
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 834
    functionName: FOREACH_PRESENT_L2E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _sl2mfn
    - ','
    - _sl2e
    - ','
    - _gl2p
    - ','
    - _done
    - ','
    - _dom
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 854
    functionName: FOREACH_PRESENT_L2E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _sl2mfn
    - ','
    - _sl2e
    - ','
    - _gl2p
    - ','
    - _done
    - ','
    - _dom
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 863
    functionName: FOREACH_PRESENT_L2E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _sl3mfn
    - ','
    - _sl3e
    - ','
    - _gl3p
    - ','
    - _done
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 900
    functionName: FOREACH_PRESENT_L3E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L3E(_sl3mfn, _sl3e, _gl3p, _done, _code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - _sl4mfn
    - ','
    - _sl4e
    - ','
    - _gl4p
    - ','
    - _done
    - ','
    - _dom
    - ','
    - _code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 921
    functionName: FOREACH_PRESENT_L4E
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOREACH_PRESENT_L4E(_sl4mfn, _sl4e, _gl4p, _done, _dom, _code)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:932,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:932,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:933,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:934,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:934,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:936,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:938,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:944,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:955,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:963,1
    - Dst: sh_unpin
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:966,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:966,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:974,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:980,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:982,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:984,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:984,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:985,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:986,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:992,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:993,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:995,1
    - Dst: init_xen_pae_l2_slots
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:997,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:998,1
    - Dst: shadow_promote
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1009,1
    - Dst: set_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1010,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - v
    - gmfn
    - shadow_type
    argTypes:
    - struct vcpu*
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 928
    functionDepth: 7
    functionLinenumber: 928
    functionLinenumberEnd: 1013
    functionName: sh_make_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - mfn_to_page
    - BUILD_BUG_ON
    - shadow_alloc
    - init_xen_l4_slots
    - page_to_mfn
    - map_domain_page
    - is_pv_32bit_domain
    - shadow_promote
    - sh_unpin
    - page_list_for_each
    - VM_ASSIST
    - sh_type_has_up_pointer
    - page_list_for_each_safe
    - mfn_x
    - unmap_domain_page
    - set_shadow_status
    - paging_mode_external
    - init_xen_pae_l2_slots
    - unlikely
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t sh_make_shadow(struct vcpu *v, mfn_t gmfn, u32 shadow_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1019,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1019,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1021,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1022,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1022,1
    - Dst: set_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1016
    functionDepth: 6
    functionLinenumber: 1016
    functionLinenumberEnd: 1026
    functionName: make_fl1_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - mfn_x
    - gfn_x
    - shadow_alloc
    - set_fl1_shadow_status
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t make_fl1_shadow(struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1047,1
    - Dst: sh_linear_l4_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1049,1
    - Dst: shadow_l4_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - gw
    - sl4mfn
    argTypes:
    - struct vcpu*
    - walk_t*
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1050
    functionName: shadow_get_and_create_l4e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l4_linear_offset
    - sh_linear_l4_table
    - pagetable_get_mfn
    linkageType: ''
    returnType: shadow_l4e_t
    signature: "shadow_l4e_t * shadow_get_and_create_l4e(struct vcpu *v,\n                                                walk_t
      *gw,\n                                                mfn_t *sl4mfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1061,1
    - Dst: shadow_get_and_create_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1063,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1064,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1065,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1067,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1068,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1068,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1075,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1076,1
    - Dst: sh_make_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1079,1
    - Dst: l4e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1082,1
    - Dst: shadow_set_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1083,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1084,1
    - Dst: sh_linear_l3_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1094,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - v
    - gw
    - sl3mfn
    - ft
    - resync
    argTypes:
    - struct vcpu*
    - walk_t*
    - mfn_t*
    - fetch_type_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1052
    functionDepth: 8
    functionLinenumber: 1052
    functionLinenumberEnd: 1095
    functionName: shadow_get_and_create_l3e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - l4e_propagate_from_guest
    - shadow_l3_linear_offset
    - sh_linear_l3_table
    - get_shadow_status
    - mfn_valid
    - sh_make_shadow
    - shadow_l4e_get_mfn
    - shadow_set_l4e
    - ASSERT
    - shadow_l4e_get_flags
    - shadow_get_and_create_l4e
    linkageType: ''
    returnType: shadow_l3e_t
    signature: "shadow_l3e_t * shadow_get_and_create_l3e(struct vcpu *v,\n                                                walk_t
      *gw,\n                                                mfn_t *sl3mfn,\n                                                fetch_type_t
      ft,\n                                                int *resync)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1109,1
    - Dst: shadow_get_and_create_l3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1111,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1113,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1115,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1116,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1116,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1126,1
    - Dst: guest_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1127,1
    - Dst: guest_l3_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1128,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1133,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1134,1
    - Dst: sh_make_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1137,1
    - Dst: l3e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1140,1
    - Dst: shadow_set_l3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1141,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1142,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1152,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1152,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1159,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1160,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1162,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1163,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1163,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1164,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1164,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1167,1
    - Dst: shadow_l2_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1171,1
    - Dst: guest_l2_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1171,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1173,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - v
    - gw
    - sl2mfn
    - ft
    - resync
    argTypes:
    - struct vcpu*
    - walk_t*
    - mfn_t*
    - fetch_type_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1099
    functionDepth: 9
    functionLinenumber: 1099
    functionLinenumberEnd: 1175
    functionName: shadow_get_and_create_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_l4_table_offset
    - is_pv_32bit_domain
    - guest_l3_table_offset
    - pagetable_get_mfn
    - shadow_l3_linear_offset
    - shadow_l3e_get_mfn
    - get_shadow_status
    - shadow_l3e_get_flags
    - mfn_valid
    - sh_make_shadow
    - l3e_propagate_from_guest
    - sh_linear_l2_table
    - ASSERT
    - shadow_l2_linear_offset
    - guest_l2_table_offset
    - shadow_get_and_create_l3e
    - shadow_set_l3e
    - shadow_l2_index
    linkageType: ''
    returnType: shadow_l2e_t
    signature: "shadow_l2e_t * shadow_get_and_create_l2e(struct vcpu *v,\n                                                walk_t
      *gw,\n                                                mfn_t *sl2mfn,\n                                                fetch_type_t
      ft,\n                                                int *resync)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: shadow_get_and_create_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1189,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1194,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1195,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1196,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1197,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1199,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1200,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1200,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1205,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1209,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1212,1
    - Dst: get_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1213,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1214,1
    - Dst: make_fl1_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1217,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1223,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1224,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1225,1
    - Dst: sh_make_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1228,1
    - Dst: l2e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1232,1
    - Dst: shadow_set_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1233,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1234,1
    - Dst: shadow_l1_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1243,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1243,1
    - Dst: shadow_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1250,1
    - Dst: sh_linear_l1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1254,1
    - Dst: shadow_l1_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1254,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - v
    - gw
    - sl1mfn
    - ft
    argTypes:
    - struct vcpu*
    - walk_t*
    - mfn_t*
    - fetch_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1178
    functionDepth: 10
    functionLinenumber: 1178
    functionLinenumberEnd: 1255
    functionName: shadow_get_and_create_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l1_index
    - shadow_l2e_get_flags
    - likely
    - shadow_get_and_create_l2e
    - guest_can_use_l2_superpages
    - guest_l2e_get_flags
    - shadow_l2e_get_mfn
    - mfn_valid
    - sh_make_shadow
    - shadow_set_l2e
    - shadow_l1_linear_offset
    - l2e_propagate_from_guest
    - guest_l1_table_offset
    - make_fl1_shadow
    - guest_l2e_get_gfn
    - get_shadow_status
    - shadow_resync_all
    - ASSERT
    - get_fl1_shadow_status
    - sh_linear_l1_table
    linkageType: ''
    returnType: shadow_l1e_t
    signature: "shadow_l1e_t * shadow_get_and_create_l1e(struct vcpu *v,\n                                                walk_t
      *gw,\n                                                mfn_t *sl1mfn,\n                                                fetch_type_t
      ft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1273,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1277,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1277,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1278,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1279,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1282,1
    - Dst: delete_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1283,1
    - Dst: shadow_demote
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1284,1
    - Dst: FOREACH_PRESENT_L4E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1287,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1288,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1288,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1289,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1270
    functionDepth: 6
    functionLinenumber: 1270
    functionLinenumberEnd: 1294
    functionName: sh_destroy_l4_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - shadow_demote
    - mfn_to_page
    - mfn_to_maddr
    - sh_put_ref
    - mfn_x
    - shadow_l4e_get_mfn
    - backpointer
    - ASSERT
    - shadow_free
    - FOREACH_PRESENT_L4E
    - delete_shadow_status
    linkageType: ''
    returnType: void
    signature: void sh_destroy_l4_shadow(struct domain *d, mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1299,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1303,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1303,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1304,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1305,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1308,1
    - Dst: delete_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1309,1
    - Dst: shadow_demote
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1310,1
    - Dst: FOREACH_PRESENT_L3E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1314,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1315,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1315,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1316,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1296
    functionDepth: 6
    functionLinenumber: 1296
    functionLinenumberEnd: 1321
    functionName: sh_destroy_l3_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - shadow_demote
    - mfn_to_page
    - mfn_to_maddr
    - sh_put_ref
    - mfn_x
    - shadow_l3e_get_mfn
    - backpointer
    - ASSERT
    - FOREACH_PRESENT_L3E
    - shadow_free
    - delete_shadow_status
    linkageType: ''
    returnType: void
    signature: void sh_destroy_l3_shadow(struct domain *d, mfn_t smfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1328,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1332,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1332,1
    - Dst: ASSERT_VALID_L2
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1334,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1335,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1338,1
    - Dst: delete_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1339,1
    - Dst: shadow_demote
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1340,1
    - Dst: FOREACH_PRESENT_L2E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1344,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1345,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1345,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1346,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1325
    functionDepth: 6
    functionLinenumber: 1325
    functionLinenumberEnd: 1351
    functionName: sh_destroy_l2_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_DEBUG
    - shadow_demote
    - shadow_l2e_get_mfn
    - mfn_to_page
    - mfn_to_maddr
    - sh_put_ref
    - mfn_x
    - backpointer
    - ASSERT
    - shadow_free
    - ASSERT_VALID_L2
    - FOREACH_PRESENT_L2E
    - delete_shadow_status
    linkageType: ''
    returnType: void
    signature: void sh_destroy_l2_shadow(struct domain *d, mfn_t smfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1356,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1359,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1359,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1360,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1361,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1366,1
    - Dst: delete_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1367,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1371,1
    - Dst: delete_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1372,1
    - Dst: shadow_demote
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1373,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1376,1
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1380,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1381,1
    - Dst: shadow_vram_put_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1383,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1383,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1384,1
    - Dst: shadow_put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1386,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - d
    - smfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1353
    functionDepth: 6
    functionLinenumber: 1353
    functionLinenumberEnd: 1393
    functionName: sh_destroy_l1_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_put_page_from_l1e
    - SHADOW_DEBUG
    - shadow_demote
    - sh_l1e_is_magic
    - shadow_l1e_get_flags
    - mfn_to_page
    - FOREACH_PRESENT_L1E
    - shadow_l1e_get_mfn
    - mfn_x
    - _gfn
    - shadow_vram_put_mfn
    - backpointer
    - ASSERT
    - delete_fl1_shadow_status
    - shadow_free
    - paging_mode_refcounts
    - delete_shadow_status
    linkageType: ''
    returnType: void
    signature: void sh_destroy_l1_shadow(struct domain *d, mfn_t smfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L2E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1411,1
    - Dst: shadow_set_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1413,1
    - Dst: shadow_l2e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - sl2mfn
    - user_only
    argTypes:
    - struct domain*
    - mfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1415
    functionName: sh_unhook_l2_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - FOREACH_PRESENT_L2E
    - shadow_l2e_empty
    - shadow_set_l2e
    linkageType: ''
    returnType: void
    signature: void sh_unhook_l2_mappings(struct domain *d, mfn_t sl2mfn, bool user_only)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L4E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1422,1
    - Dst: shadow_set_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1424,1
    - Dst: shadow_l4e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - d
    - sl4mfn
    - user_only
    argTypes:
    - struct domain*
    - mfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1426
    functionName: sh_unhook_l4_mappings
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l4e_empty
    - shadow_set_l4e
    - FOREACH_PRESENT_L4E
    linkageType: ''
    returnType: void
    signature: void sh_unhook_l4_mappings(struct domain *d, mfn_t sl4mfn, bool user_only)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1453,1
    - Dst: guest_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1455,1
    - Dst: guest_l4e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1456,1
    - Dst: guest_l4e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1458,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1459,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1459,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1460,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1461,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1462,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1466,1
    - Dst: shadow_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1467,1
    - Dst: l4e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1470,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1473,1
    - Dst: is_guest_l4_slot
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1477,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1479,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1483,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1485,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1486,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1488,1
    - Dst: shadow_set_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - v
    - new_ge
    - sl4mfn
    - se
    argTypes:
    - struct vcpu*
    - void*
    - mfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1442
    functionDepth: 7
    functionLinenumber: 1442
    functionLinenumberEnd: 1499
    functionName: validate_gl4e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - SHADOW_PRINTK
    - guest_l4e_rsvd_bits
    - mfn_valid
    - get_gfn_query_unlocked
    - printk
    - is_guest_l4_slot
    - l4e_propagate_from_guest
    - mfn_x
    - get_shadow_status
    - guest_l4e_get_gfn
    - shadow_resync_all
    - shadow_set_l4e
    - perfc_incr
    - paging_mode_external
    - p2m_is_ram
    - gfn_x
    - guest_l4e_get_flags
    - shadow_l4e_get_flags
    - unlikely
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int validate_gl4e(\n    struct vcpu *v, void *new_ge, mfn_t sl4mfn,
      void *se)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1513,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1515,1
    - Dst: guest_l3e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1516,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1518,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1519,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1519,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1520,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1521,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1522,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1526,1
    - Dst: shadow_resync_all
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1527,1
    - Dst: l3e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1530,1
    - Dst: shadow_set_l3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - v
    - new_ge
    - sl3mfn
    - se
    argTypes:
    - struct vcpu*
    - void*
    - mfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1502
    functionDepth: 7
    functionLinenumber: 1502
    functionLinenumberEnd: 1534
    functionName: validate_gl3e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - guest_l3e_get_flags
    - p2m_is_ram
    - get_shadow_status
    - mfn_valid
    - guest_l3e_rsvd_bits
    - guest_l3e_get_gfn
    - gfn_x
    - shadow_resync_all
    - l3e_propagate_from_guest
    - get_gfn_query_unlocked
    - shadow_set_l3e
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int validate_gl3e(\n    struct vcpu *v, void *new_ge, mfn_t sl3mfn,
      void *se)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1548,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1550,1
    - Dst: guest_l2e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1551,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1553,1
    - Dst: guest_can_use_l2_superpages
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1554,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1555,1
    - Dst: get_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1559,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1565,1
    - Dst: make_fl1_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1566,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1571,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1571,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1572,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1573,1
    - Dst: p2m_is_pod
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1574,1
    - Dst: l2e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1578,1
    - Dst: shadow_set_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - v
    - new_ge
    - sl2mfn
    - se
    argTypes:
    - struct vcpu*
    - void*
    - mfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1537
    functionDepth: 7
    functionLinenumber: 1537
    functionLinenumberEnd: 1583
    functionName: validate_gl2e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - get_fl1_shadow_status
    - make_fl1_shadow
    - guest_l2e_get_gfn
    - guest_l2e_rsvd_bits
    - mfn_valid
    - guest_can_use_l2_superpages
    - gfn_x
    - p2m_is_ram
    - get_shadow_status
    - l2e_propagate_from_guest
    - get_gfn_query_unlocked
    - shadow_set_l2e
    - guest_l2e_get_flags
    - p2m_is_pod
    linkageType: ''
    returnType: int
    signature: "int validate_gl2e(\n    struct vcpu *v, void *new_ge, mfn_t sl2mfn,
      void *se)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1600,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1602,1
    - Dst: guest_l1e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1603,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1605,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1606,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1606,1
    - Dst: l1e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1609,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1610,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1613,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1613,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1614,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1615,1
    - Dst: oos_snapshot_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1618,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1621,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1621,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1623,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1624,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - v
    - new_ge
    - sl1mfn
    - se
    argTypes:
    - struct vcpu*
    - void*
    - mfn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1585
    functionDepth: 6
    functionLinenumber: 1585
    functionLinenumberEnd: 1630
    functionName: validate_gl1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - oos_snapshot_lookup
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - guest_l1e_get_flags
    - guest_l1e_rsvd_bits
    - mfn_valid
    - gfn_x
    - backpointer
    - ASSERT
    - guest_l1e_get_gfn
    - get_gfn_query_unlocked
    - l1e_propagate_from_guest
    - mfn_is_out_of_sync
    - guest_index
    - shadow_set_l1e
    linkageType: ''
    returnType: int
    signature: "int validate_gl1e(\n    struct vcpu *v, void *new_ge, mfn_t sl1mfn,
      void *se)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1647,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1647,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1649,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1650,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1650,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1652,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1653,1
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1656,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1659,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1666,1
    - Dst: guest_l1e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1667,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1669,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1670,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1670,1
    - Dst: l1e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1673,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1674,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1675,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1679,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1680,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - v
    - gl1mfn
    - snpmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1639
    functionDepth: 6
    functionLinenumber: 1639
    functionLinenumberEnd: 1684
    functionName: sh_resync_l1
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 2
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - FOREACH_PRESENT_L1E
    - guest_l1e_get_flags
    - get_shadow_status
    - mfn_valid
    - guest_l1e_rsvd_bits
    - gfn_x
    - ASSERT
    - guest_l1e_get_gfn
    - get_gfn_query_unlocked
    - l1e_propagate_from_guest
    - guest_index
    - shadow_set_l1e
    linkageType: ''
    returnType: void
    signature: void sh_resync_l1(struct vcpu *v, mfn_t gl1mfn, mfn_t snpmfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1699,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1702,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1703,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1703,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1706,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1709,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1710,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1710,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1714,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1715,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1715,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1718,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1719,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1719,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1722,1
    - Dst: sh_type_has_up_pointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1724,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1726,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1727,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1727,1
    - Dst: for_each_shadow_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1730,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1731,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1732,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - v
    - gl1mfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1692
    functionDepth: 6
    functionLinenumber: 1692
    functionLinenumberEnd: 1738
    functionName: sh_safe_not_to_sync
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_type_has_up_pointer
    - mfn_to_page
    - for_each_shadow_table
    - mfn_x
    - get_shadow_status
    - mfn_valid
    - ASSERT
    - maddr_to_mfn
    - pagetable_get_pfn
    linkageType: ''
    returnType: int
    signature: int sh_safe_not_to_sync(struct vcpu *v, mfn_t gl1mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1765,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1768,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1769,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1769,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1770,1
    - Dst: shadow_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1772,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1773,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1779,1
    - Dst: shadow_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1780,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1781,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1785,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1786,1
    - Dst: validate_ge
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1788,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 5
    argNames:
    - v
    - gmfn
    - new_gp
    - size
    - sh_type
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1747
    functionDepth: 6
    functionLinenumber: 1747
    functionLinenumberEnd: 1797
    functionName: sh_map_and_validate
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_index
    - unmap_domain_page
    - map_domain_page
    - get_shadow_status
    - mfn_valid
    - ASSERT
    - validate_ge
    - mfn_eq
    - guest_index
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate(struct vcpu *v, mfn_t gmfn,\n                     void
      *new_gp, u32 size, u32 sh_type,\n                     u32 (*shadow_index)(mfn_t
      *smfn, u32 idx),\n                     int (*validate_ge)(struct vcpu *v, void
      *ge,\n                                        mfn_t smfn, void *se))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_map_and_validate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1805,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - gl4mfn
    - new_gl4p
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1800
    functionDepth: 7
    functionLinenumber: 1800
    functionLinenumberEnd: 1812
    functionName: sh_map_and_validate_gl4e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - BUG
    - sh_map_and_validate
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate_gl4e(struct vcpu *v, mfn_t gl4mfn,\n                          void
      *new_gl4p, u32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_map_and_validate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1819,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - gl3mfn
    - new_gl3p
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1814
    functionDepth: 7
    functionLinenumber: 1814
    functionLinenumberEnd: 1826
    functionName: sh_map_and_validate_gl3e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - BUG
    - sh_map_and_validate
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate_gl3e(struct vcpu *v, mfn_t gl3mfn,\n                          void
      *new_gl3p, u32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_map_and_validate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - gl2mfn
    - new_gl2p
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1828
    functionDepth: 7
    functionLinenumber: 1828
    functionLinenumberEnd: 1836
    functionName: sh_map_and_validate_gl2e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_map_and_validate
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate_gl2e(struct vcpu *v, mfn_t gl2mfn,\n                          void
      *new_gl2p, u32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_map_and_validate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1843,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - v
    - gl2mfn
    - new_gl2p
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1838
    functionDepth: 7
    functionLinenumber: 1838
    functionLinenumberEnd: 1850
    functionName: sh_map_and_validate_gl2he
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - BUG
    - sh_map_and_validate
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate_gl2he(struct vcpu *v, mfn_t gl2mfn,\n                           void
      *new_gl2p, u32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_map_and_validate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - gl1mfn
    - new_gl1p
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1852
    functionDepth: 7
    functionLinenumber: 1852
    functionLinenumberEnd: 1860
    functionName: sh_map_and_validate_gl1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_map_and_validate
    linkageType: ''
    returnType: int
    signature: "int sh_map_and_validate_gl1e(struct vcpu *v, mfn_t gl1mfn,\n                          void
      *new_gl1p, u32 size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1896,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1899,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1900,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1903,1
    - Dst: oos_snapshot_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1905,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1907,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1907,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1908,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1909,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1920,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1926,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1935,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1935,1
    - Dst: guest_l1e_from_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1937,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1938,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1938,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1938,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1939,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1943,1
    - Dst: guest_l1e_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1944,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1946,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1947,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1947,1
    - Dst: l1e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1956,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1957,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1965,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1968,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - v
    - gw
    - ptr_sl1e
    - sl1mfn
    argTypes:
    - struct vcpu*
    - walk_t*
    - shadow_l1e_t*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1874
    functionDepth: 6
    functionLinenumber: 1874
    functionLinenumberEnd: 1970
    functionName: sh_prefetch
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - oos_snapshot_lookup
    - unmap_domain_page
    - map_domain_page
    - guest_l1_table_offset
    - guest_l1e_get_flags
    - _gfn
    - guest_l1e_rsvd_bits
    - mfn_valid
    - guest_l1e_from_gfn
    - gfn_x
    - ASSERT
    - mfn_is_out_of_sync
    - guest_l1e_get_gfn
    - get_gfn_query_unlocked
    - l1e_propagate_from_guest
    - guest_l2e_get_flags
    - shadow_set_l1e
    linkageType: ''
    returnType: void
    signature: "void sh_prefetch(struct vcpu *v, walk_t *gw,\n                        shadow_l1e_t
      *ptr_sl1e, mfn_t sl1mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - extra
    - extra_data
    argTypes:
    - uint32_t
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1986
    functionDepth: 0
    functionLinenumber: 1986
    functionLinenumberEnd: 1989
    functionName: sh_trace
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - trace
    linkageType: ''
    returnType: void
    signature: void sh_trace(uint32_t event, unsigned int extra, const void *extra_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_trace
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:1995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - va
    argTypes:
    - uint32_t
    - guest_va_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 1996
    functionName: sh_trace_va
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_trace
    linkageType: ''
    returnType: void
    signature: void sh_trace_va(uint32_t event, guest_va_t va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2014,1
    - Dst: sh_trace
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - event
    - gl1e
    - va
    argTypes:
    - uint32_t
    - guest_l1e_t
    - guest_va_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1999
    functionDepth: 1
    functionLinenumber: 1999
    functionLinenumberEnd: 2019
    functionName: sh_trace_gl1e_va
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_trace
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void sh_trace_gl1e_va(uint32_t event, guest_l1e_t gl1e, guest_va_t
      va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2040,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2042,1
    - Dst: sh_trace
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - event
    - gfn
    - va
    argTypes:
    - uint32_t
    - gfn_t
    - guest_va_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2047
    functionName: __maybe_unused::sh_trace_gfn_va
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - sh_trace
    - this_cpu
    linkageType: ''
    returnType: void
    signature: "void __maybe_unused sh_trace_gfn_va(uint32_t event, gfn_t gfn,\n                                           guest_va_t
      va)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2060,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2061,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2064,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2065,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2065,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2067,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2069,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2070,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2070,1
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2071,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2075,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - vaddr
    - src
    - bytes
    argTypes:
    - void*
    - unsigned long
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2052
    functionDepth: 1
    functionLinenumber: 2052
    functionLinenumberEnd: 2077
    functionName: trace_emulate_write_val
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - typeof
    - memcpy
    - TRACE_SHADOW_PATH_FLAG
    - this_cpu
    linkageType: ''
    returnType: void
    signature: "void trace_emulate_write_val(\n    const void *ptr, unsigned long
      vaddr, const void *src, unsigned int bytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2098,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2101,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2103,1
    - Dst: sh_trace
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gl1e
    - va
    argTypes:
    - guest_l1e_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2109
    functionName: sh_trace_emulate
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_trace
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void sh_trace_emulate(guest_l1e_t gl1e, unsigned long va)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2125,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2126,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2151,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2154,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2170,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2175,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2175,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2183,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2207,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2208,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2209,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2210,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2211,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2211,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2211,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2212,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2213,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2213,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2217,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2225,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2225,1
    - Dst: sh_linear_l1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2226,1
    - Dst: shadow_l1_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2227,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2228,1
    - Dst: sh_l1e_is_gnp
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2231,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2235,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2237,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2238,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2239,1
    - Dst: sh_trace_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2240,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2245,1
    - Dst: sh_l1e_is_mmio
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2245,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2246,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2246,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2247,1
    - Dst: sh_l1e_mmio_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2247,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2248,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2249,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2250,1
    - Dst: sh_trace_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2251,1
    - Dst: handle_mmio_with_translation
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2252,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2256,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2264,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2265,1
    - Dst: sh_trace_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2266,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2281,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2281,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2283,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2288,1
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2288,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2353,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2354,1
    - Dst: sh_walk_guest_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2355,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2365,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2366,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2367,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2376,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2378,1
    - Dst: guest_walk_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2383,1
    - Dst: get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2384,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2394,1
    - Dst: p2m_is_mmio
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2395,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2396,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2396,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2398,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2399,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2400,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2400,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2401,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2402,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2402,1
    - Dst: vtlb_insert
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2408,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2408,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2412,1
    - Dst: shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2425,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2429,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2430,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2430,1
    - Dst: gw_remove_write_accesses
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2434,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2442,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2443,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2444,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2445,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2452,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2453,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2453,1
    - Dst: shadow_check_gwalk
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2458,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2460,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2461,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2462,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2462,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2466,1
    - Dst: sh_audit_gw
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2467,1
    - Dst: shadow_get_and_create_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2471,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2472,1
    - Dst: sh_update_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2484,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2486,1
    - Dst: sh_trace_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2487,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2489,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2490,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2490,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2496,1
    - Dst: sh_unsync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2498,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2500,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2506,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2507,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2507,1
    - Dst: shadow_check_gl1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2513,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2515,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2516,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2517,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2517,1
    - Dst: l1e_propagate_from_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2523,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2524,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2527,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2528,1
    - Dst: oos_snapshot_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2531,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2534,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2534,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2536,1
    - Dst: guest_l1_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2537,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2538,1
    - Dst: sh_prefetch
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2544,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2548,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2552,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2557,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2566,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2566,1
    - Dst: sh_audit_gw
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2568,1
    - Dst: guest_walk_to_gpa
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2569,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2570,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2571,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2572,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2574,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2575,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2575,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2577,1
    - Dst: sh_trace_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2578,1
    - Dst: handle_mmio_with_translation
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2580,1
    - Dst: p2m_is_readonly
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2585,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2593,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2594,1
    - Dst: hvm_wp_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2594,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2596,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2598,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2604,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2606,1
    - Dst: sh_trace_gl1e_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2608,1
    - Dst: sh_audit_gw
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2610,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2611,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2612,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2613,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2614,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2614,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2618,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2629,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2630,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2631,1
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2632,1
    - Dst: sh_trace_gfn_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2633,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2646,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2646,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2657,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2660,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2669,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2669,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2676,1
    - Dst: sh_audit_gw
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2683,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2684,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2685,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2686,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2686,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2689,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2704,1
    - Dst: hvm_event_pending
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2704,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2709,1
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2713,1
    - Dst: sh_trace_gfn_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2714,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2718,1
    - Dst: shadow_init_emulation
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2720,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2722,1
    - Dst: hvm_inject_event
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2737,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2740,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2754,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2758,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2762,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2763,1
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2767,1
    - Dst: sh_trace_gfn_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2769,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2782,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2787,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2796,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2808,1
    - Dst: shadow_continue_emulation
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2813,1
    - Dst: x86_emulate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2815,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2827,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2828,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2832,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2836,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2837,1
    - Dst: hvm_inject_hw_exception
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2840,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2847,1
    - Dst: sh_trace_emulate
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2852,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2854,1
    - Dst: sh_audit_gw
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2859,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2860,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2861,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2862,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2863,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2864,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2864,1
    - Dst: sh_trace_gl1e_va
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2867,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 316
    argCount: 3
    argNames:
    - v
    - va
    - regs
    argTypes:
    - struct vcpu*
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2120
    functionDepth: 12
    functionLinenumber: 2120
    functionLinenumberEnd: 2870
    functionName: sh_page_fault
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_continue_emulation
    - gw_remove_write_accesses
    - sh_update_cr3
    - shadow_l2e_get_flags
    - likely
    - hvm_event_pending
    - shadow_prealloc
    - backpointer
    - printk
    - sh_l1e_is_magic
    - guest_l1_table_offset
    - p2m_is_mmio
    - sh_l1e_is_mmio
    - paging_mode_refcounts
    - perfc_incr
    - hvm_wp_enabled
    - gfn_x
    - gfn_to_gaddr
    - l1e_propagate_from_guest
    - unlikely
    - p2m_is_any_ram
    - sh_walk_guest_tables
    - SHADOW_PRINTK
    - TRACE_SHADOW_PATH_FLAG
    - shadow_l2e_get_mfn
    - get_unsafe
    - p2m_is_readonly
    - is_hvm_vcpu
    - shadow_get_and_create_l1e
    - paging_lock
    - mfn_x
    - guest_walk_to_gpa
    - shadow_l2_linear_offset
    - atomic_inc
    - sh_audit_gw
    - hvm_inject_event
    - oos_snapshot_lookup
    - atomic_read
    - _gfn
    - shadow_check_gl1e
    - sh_trace_gl1e_va
    - sh_trace_gfn_va
    - mfn_is_out_of_sync
    - shadow_set_l1e
    - map_domain_page
    - paging_unlock
    - shadow_check_gwalk
    - sh_mfn_is_a_page_table
    - shadow_l1_linear_offset
    - hvm_get_cpl
    - smp_wmb
    - guest_walk_to_gfn
    - unmap_domain_page
    - sh_trace_emulate
    - paging_locked_by_me
    - handle_mmio_with_translation
    - shadow_audit_tables
    - sh_unsync
    - mfn_to_page
    - shadow_remove_all_shadows
    - pagetable_get_mfn
    - sh_l1e_is_gnp
    - shadow_init_emulation
    - is_hvm_domain
    - sh_l1e_mmio_get_gfn
    - sh_reset_early_unshadow
    - BUG
    - put_gfn
    - mfn_valid
    - sh_linear_l2_table
    - mfn_eq
    - sh_trace_va
    - hvm_inject_hw_exception
    - _mfn
    - ASSERT
    - x86_emulate
    - vtlb_insert
    - get_gfn
    - this_cpu
    - sh_linear_l1_table
    - guest_flush_tlb_mask
    - sh_prefetch
    - smp_rmb
    - sh_remove_shadows
    linkageType: ''
    returnType: int
    signature: "int sh_page_fault(\n    struct vcpu *v, unsigned long va, struct cpu_user_regs
      *regs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2657,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2660,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2669,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2673
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 36
    functionsReached:
    - mfn_to_page
    - mfn_eq
    - mfn_x
    - pagetable_get_mfn
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, tmp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2657,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2660,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2655
    functionDepth: 1
    functionLinenumber: 2655
    functionLinenumberEnd: 2667
    functionName: for_each_shadow_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - mfn_x
    - pagetable_get_mfn
    linkageType: ''
    returnType: void
    signature: void for_each_shadow_table(tmp, i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2883,1
    - Dst: vtlb_flush
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2887,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2900,1
    - Dst: sh_linear_l4_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2901,1
    - Dst: shadow_l4_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2901,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2907,1
    - Dst: sh_linear_l3_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2908,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2909,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2911,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2914,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2920,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2920,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2928,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2929,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2930,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2932,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2939,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2946,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2947,1
    - Dst: sh_flush_local
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2950,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2958,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2958,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2959,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2960,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2961,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2965,1
    - Dst: get_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2971,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2972,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2973,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2975,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2976,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2980,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2982,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2986,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2987,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2987,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2988,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2990,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2990,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2991,1
    - Dst: sh_linear_l1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2994,1
    - Dst: shadow_l1_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2994,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2996,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2996,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:2998,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - v
    - linear
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2878
    functionDepth: 3
    functionLinenumber: 2878
    functionLinenumberEnd: 3006
    functionName: sh_invlpg
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - shadow_l2e_get_flags
    - likely
    - shadow_set_l1e
    - shadow_l2e_get_mfn
    - shadow_l1e_empty
    - paging_unlock
    - sh_linear_l2_table
    - mfn_valid
    - sh_mfn_is_a_page_table
    - backpointer
    - shadow_l1_linear_offset
    - get_unsafe
    - l3e_get_flags
    - paging_lock
    - sh_linear_l3_table
    - shadow_l3e_get_flags
    - shadow_l2_linear_offset
    - sh_flush_local
    - vtlb_flush
    - perfc_incr
    - sh_linear_l1_table
    - shadow_l3_linear_offset
    - shadow_l4e_get_flags
    - shadow_l4_linear_offset
    - sh_linear_l4_table
    linkageType: ''
    returnType: bool
    signature: bool sh_invlpg(struct vcpu *v, unsigned long linear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtlb_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3021,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3022,1
    - Dst: sh_walk_guest_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3026,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3029,1
    - Dst: guest_walk_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3031,1
    - Dst: vtlb_insert
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3035,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3035,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - v
    - p2m
    - va
    - pfec
    argTypes:
    - struct vcpu*
    - struct p2m_domain*
    - unsigned long
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 3010
    functionDepth: 2
    functionLinenumber: 3010
    functionLinenumberEnd: 3039
    functionName: sh_gva_to_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - vtlb_lookup
    - vtlb_insert
    - sh_walk_guest_tables
    - guest_walk_to_gfn
    linkageType: ''
    returnType: unsigned long cf_check
    signature: "unsigned long cf_check sh_gva_to_gfn(\n    struct vcpu *v, struct
      p2m_domain *p2m, unsigned long va, uint32_t *pfec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3067,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3068,1
    - Dst: l4_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3080,1
    - Dst: l4e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3081,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3082,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3089,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3089,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3090,1
    - Dst: l4e_from_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3091,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3092,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3094,1
    - Dst: l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3118,1
    - Dst: shadow_l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3124,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3125,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3125,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3127,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3127,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3128,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3129,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3130,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3132,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3132,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3133,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3134,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3135,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3144,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3145,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3145,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3147,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3151,1
    - Dst: sh_flush_local
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3167,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3043
    functionDepth: 3
    functionLinenumber: 3043
    functionLinenumberEnd: 3168
    functionName: sh_update_linear_entries
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - pagetable_get_mfn
    - l4e_from_pfn
    - l2e_empty
    - l2e_from_mfn
    - map_domain_page
    - l3e_get_flags
    - l3e_get_mfn
    - l4_table_offset
    - shadow_l3e_get_flags
    - ASSERT
    - sh_flush_local
    - l2_linear_offset
    - unmap_domain_page
    - shadow_l4_table_offset
    - paging_mode_external
    - l4e_get_flags
    - l4_linear_offset
    - shadow_l3e_get_mfn
    - pagetable_get_pfn
    - l4e_get_mfn
    linkageType: ''
    returnType: void
    signature: void sh_update_linear_entries(struct vcpu *v)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3181,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3188,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3190,1
    - Dst: paging_lock_recursive
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3198,1
    - Dst: shadow_resync_current_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3204,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3207,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3207,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3208,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3216,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3218,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3218,1
    - Dst: hvm_paging_enabled
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3219,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3220,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3220,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3222,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3227,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3228,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3232,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3235,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3243,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3243,1
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3249,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3251,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3254,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3266,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3267,1
    - Dst: sh_set_toplevel_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3268,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3270,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3270,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3272,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3275,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3275,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3277,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3279,1
    - Dst: zap_ro_mpt
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3280,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3282,1
    - Dst: fill_ro_mpt
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3283,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3299,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3301,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3302,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3302,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3303,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3304,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3308,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3312,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3314,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3315,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3315,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3316,1
    - Dst: sh_set_toplevel_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3317,1
    - Dst: sh_set_toplevel_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3321,1
    - Dst: sh_set_toplevel_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3325,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3328,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3328,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3332,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3333,1
    - Dst: sh_set_toplevel_shadow
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3334,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3336,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3336,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3337,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3337,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3339,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3351,1
    - Dst: sh_next_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3359,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3362,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3365,1
    - Dst: shadow_l3e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3366,1
    - Dst: shadow_l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3367,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3375,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3377,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3377,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3383,1
    - Dst: make_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3385,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3385,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3392,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3394,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3394,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3397,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3401,1
    - Dst: hvm_update_guest_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3403,1
    - Dst: sh_update_linear_entries
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3407,1
    - Dst: vtlb_flush
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3411,1
    - Dst: shadow_sync_other_vcpus
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3423,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3426,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 92
    argCount: 2
    argNames:
    - v
    - noflush
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3170
    functionDepth: 7
    functionLinenumber: 3170
    functionLinenumberEnd: 3429
    functionName: sh_update_cr3
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - pagetable_get_mfn
    - BUILD_BUG_ON
    - guest_l3e_get_gfn
    - hvm_update_guest_cr3
    - SHADOW_PRINTK
    - is_hvm_domain
    - pagetable_get_paddr
    - hvm_paging_enabled
    - is_pv_32bit_domain
    - map_domain_page
    - paging_unlock
    - pagetable_is_null
    - pagetable_null
    - shadow_l3e_from_mfn
    - sh_next_page
    - get_gfn_query_unlocked
    - pagetable_get_pfn
    - guest_index
    - shadow_l3e_empty
    - VM_ASSIST
    - sh_set_toplevel_shadow
    - shadow_sync_other_vcpus
    - sh_update_linear_entries
    - guest_l3e_get_flags
    - mfn_x
    - ASSERT
    - sh_remove_write_access
    - vtlb_flush
    - unmap_domain_page
    - guest_flush_tlb_mask
    - make_cr3
    - fill_ro_mpt
    - paging_mode_external
    - paging_locked_by_me
    - p2m_is_ram
    - zap_ro_mpt
    - gfn_x
    - shadow_resync_current_vcpu
    - virt_to_maddr
    - paging_lock_recursive
    - unlikely
    linkageType: ''
    returnType: pagetable_t
    signature: pagetable_t sh_update_cr3(struct vcpu *v, bool noflush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sh_next_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3359,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3362,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3365,1
    - Dst: shadow_l3e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3366,1
    - Dst: shadow_l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3368
      start: 3354
    functionDepth: 2
    functionLinenumber: 3354
    functionLinenumberEnd: 3368
    functionName: for_each_shadow_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - pagetable_get_mfn
    - mfn_x
    - shadow_l3e_from_mfn
    - sh_next_page
    - shadow_l3e_empty
    linkageType: ''
    returnType: void
    signature: void for_each_shadow_table(v, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3444,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3444,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3445,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3445,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3450,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3452,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3459,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3462,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3464,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3464,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3466,1
    - Dst: shadow_l1e_remove_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3471,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3472,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3473,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3475,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3476,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - d
    - gmfn
    - smfn
    - 'off'
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3436
    functionDepth: 1
    functionLinenumber: 3436
    functionLinenumberEnd: 3482
    functionName: sh_rm_write_access_from_sl1p
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - unmap_domain_page
    - map_domain_page
    - shadow_l1e_get_flags
    - mfn_to_page
    - shadow_l1e_get_mfn
    - mfn_valid
    - ASSERT
    - mfn_eq
    - shadow_l1e_remove_flags
    - shadow_set_l1e
    linkageType: ''
    returnType: int
    signature: "int sh_rm_write_access_from_sl1p(struct domain *d, mfn_t gmfn,\n                                 mfn_t
      smfn, unsigned long off)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3509,1
    - Dst: l4_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3511,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3512,1
    - Dst: sh_linear_l4_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3515,1
    - Dst: shadow_l4_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3515,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3516,1
    - Dst: sh_linear_l3_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3518,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3518,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3519,1
    - Dst: shadow_l3_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3523,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3524,1
    - Dst: sh_linear_l2_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3527,1
    - Dst: shadow_l2_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3527,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3528,1
    - Dst: sh_linear_l1_table
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3530,1
    - Dst: shadow_l1_linear_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3530,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3532,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3534,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3534,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3538,1
    - Dst: shadow_l1e_remove_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3539,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3540,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - v
    - vaddr
    - gmfn
    argTypes:
    - struct vcpu*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3548
      start: 3486
    functionDepth: 1
    functionLinenumber: 3486
    functionLinenumberEnd: 3548
    functionName: sh_guess_wrmap
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l2e_get_flags
    - shadow_set_l1e
    - TRACE_SHADOW_PATH_FLAG
    - shadow_l2e_get_mfn
    - shadow_l1e_get_flags
    - shadow_l1e_get_mfn
    - sh_linear_l2_table
    - shadow_l1_linear_offset
    - mfn_eq
    - shadow_l4_linear_offset
    - sh_linear_l3_table
    - shadow_l3e_get_flags
    - shadow_l2_linear_offset
    - sh_linear_l1_table
    - paging_mode_external
    - shadow_l3_linear_offset
    - l4_linear_offset
    - shadow_l4e_get_flags
    - shadow_l1e_remove_flags
    - sh_linear_l4_table
    linkageType: ''
    returnType: int
    signature: "int sh_guess_wrmap(\n    struct vcpu *v, unsigned long vaddr, mfn_t
      gmfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - sl1mfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3552
    functionDepth: 0
    functionLinenumber: 3552
    functionLinenumberEnd: 3561
    functionName: store_last_writeable_pte_smfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - mfn_x
    linkageType: ''
    returnType: always_inline
    signature: "always_inline store_last_writeable_pte_smfn(\n    const struct domain
      *d, mfn_t sl1mfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3571,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3573,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3574,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3574,1
    - Dst: shadow_l1e_remove_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3576,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3578,1
    - Dst: store_last_writeable_pte_smfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3580,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - d
    - sl1mfn
    - readonly_mfn
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3589
      start: 3563
    functionDepth: 1
    functionLinenumber: 3563
    functionLinenumberEnd: 3589
    functionName: sh_rm_write_access_from_l1
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l1e_get_flags
    - shadow_l1e_get_mfn
    - FOREACH_PRESENT_L1E
    - mfn_to_page
    - store_last_writeable_pte_smfn
    - mfn_eq
    - shadow_l1e_remove_flags
    - shadow_set_l1e
    linkageType: ''
    returnType: int
    signature: "int sh_rm_write_access_from_l1(\n    struct domain *d, mfn_t sl1mfn,
      mfn_t readonly_mfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3599,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3601,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3601,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3603,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3603,1
    - Dst: sh_check_page_has_no_refs
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3604,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - sl1mfn
    - target_mfn
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3592
    functionDepth: 1
    functionLinenumber: 3592
    functionLinenumberEnd: 3610
    functionName: sh_rm_mappings_from_l1
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - sh_check_page_has_no_refs
    - shadow_l1e_empty
    - shadow_l1e_get_mfn
    - FOREACH_PRESENT_L1E
    - mfn_to_page
    - mfn_eq
    - shadow_set_l1e
    linkageType: ''
    returnType: int
    signature: "int sh_rm_mappings_from_l1(\n    struct domain *d, mfn_t sl1mfn, mfn_t
      target_mfn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3618,1
    - Dst: shadow_set_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3621,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3621,1
    - Dst: shadow_set_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3627,1
    - Dst: shadow_l2e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3627,1
    - Dst: shadow_set_l3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3631,1
    - Dst: shadow_l3e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3631,1
    - Dst: shadow_set_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3634,1
    - Dst: shadow_l4e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3634,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - d
    - ep
    - smfn
    argTypes:
    - struct domain*
    - void*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3615
    functionDepth: 1
    functionLinenumber: 3615
    functionLinenumberEnd: 3639
    functionName: sh_clear_shadow_entry
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l4e_empty
    - BUG
    - shadow_l1e_empty
    - mfn_to_page
    - shadow_set_l2e
    - shadow_set_l4e
    - shadow_l2e_empty
    - shadow_l3e_empty
    - shadow_set_l3e
    - shadow_set_l1e
    linkageType: ''
    returnType: void
    signature: void sh_clear_shadow_entry(struct domain *d, void *ep, mfn_t smfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L2E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3647,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3649,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3649,1
    - Dst: shadow_set_l2e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3651,1
    - Dst: shadow_l2e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3651,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - sl2mfn
    - sl1mfn
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3658
      start: 3641
    functionDepth: 1
    functionLinenumber: 3641
    functionLinenumberEnd: 3658
    functionName: sh_remove_l1_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l2e_get_mfn
    - mfn_to_page
    - shadow_set_l2e
    - shadow_l2e_empty
    - mfn_eq
    - FOREACH_PRESENT_L2E
    linkageType: ''
    returnType: int
    signature: int sh_remove_l1_shadow(struct domain *d, mfn_t sl2mfn, mfn_t sl1mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L3E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3667,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3669,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3669,1
    - Dst: shadow_set_l3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3671,1
    - Dst: shadow_l3e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3671,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - sl3mfn
    - sl2mfn
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3661
    functionDepth: 1
    functionLinenumber: 3661
    functionLinenumberEnd: 3678
    functionName: sh_remove_l2_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - shadow_l3e_get_mfn
    - FOREACH_PRESENT_L3E
    - mfn_eq
    - shadow_l3e_empty
    - shadow_set_l3e
    linkageType: ''
    returnType: int
    signature: int sh_remove_l2_shadow(struct domain *d, mfn_t sl3mfn, mfn_t sl2mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FOREACH_PRESENT_L4E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3686,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3688,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3688,1
    - Dst: shadow_set_l4e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3690,1
    - Dst: shadow_l4e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3690,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - sl4mfn
    - sl3mfn
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3697
      start: 3680
    functionDepth: 1
    functionLinenumber: 3680
    functionLinenumberEnd: 3697
    functionName: sh_remove_l3_shadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_l4e_empty
    - mfn_to_page
    - shadow_l4e_get_mfn
    - shadow_set_l4e
    - mfn_eq
    - FOREACH_PRESENT_L4E
    linkageType: ''
    returnType: int
    signature: int sh_remove_l3_shadow(struct domain *d, mfn_t sl4mfn, mfn_t sl3mfn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3721,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3721,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3729,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3729,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3730,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3730,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3732,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3737,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3741,1
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3750,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3753,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3760,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3760,1
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3762,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3762,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3765,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3767,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3767,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3768,1
    - Dst: shadow_unhook_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3769,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3774,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3784,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3785,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3787,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3707
    functionDepth: 5
    functionLinenumber: 3707
    functionLinenumberEnd: 3788
    functionName: sh_pagetable_dying
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - pagetable_get_mfn
    - mfn_to_page
    - _gfn
    - shadow_unhook_mappings
    - guest_l3e_get_gfn
    - is_hvm_domain
    - map_domain_page
    - paging_unlock
    - put_gfn
    - mfn_valid
    - pagetable_is_null
    - get_gfn_query_unlocked
    - printk
    - mfn_eq
    - shadow_hash_lookup
    - paging_lock
    - mfn_x
    - _mfn
    - ASSERT
    - unmap_domain_page
    - guest_flush_tlb_mask
    - p2m_is_ram
    - gfn_x
    - unlikely
    - get_gfn_query
    linkageType: ''
    returnType: void
    signature: void sh_pagetable_dying(paddr_t gpa)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_is_null
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3750,1
    - Dst: pagetable_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3753,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3758,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3760,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3760,1
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3762,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3762,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3765,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3767,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3767,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3768,1
    - Dst: shadow_unhook_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3772
      start: 3744
    functionDepth: 5
    functionLinenumber: 3744
    functionLinenumberEnd: 3772
    functionName: for_each_shadow_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - mfn_eq
    - shadow_hash_lookup
    - pagetable_get_mfn
    - mfn_to_page
    - mfn_x
    - _mfn
    - shadow_unhook_mappings
    - pagetable_is_null
    - gfn_x
    - guest_l3e_get_gfn
    - get_gfn_query_unlocked
    - unlikely
    linkageType: ''
    returnType: void
    signature: void for_each_shadow_table(v, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3797,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3797,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3799,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3799,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3800,1
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3803,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3803,1
    - Dst: shadow_hash_lookup
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3805,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3805,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3808,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3810,1
    - Dst: shadow_unhook_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3811,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3813,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3823,1
    - Dst: put_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - gpa
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3825
      start: 3790
    functionDepth: 5
    functionLinenumber: 3790
    functionLinenumberEnd: 3825
    functionName: sh_pagetable_dying
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - shadow_hash_lookup
    - guest_flush_tlb_mask
    - paging_lock
    - mfn_to_page
    - paging_unlock
    - _gfn
    - mfn_x
    - shadow_unhook_mappings
    - put_gfn
    - ASSERT
    - mfn_eq
    - is_hvm_domain
    - get_gfn_query
    linkageType: ''
    returnType: void
    signature: void sh_pagetable_dying(paddr_t gpa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - _level
    - ','
    - _fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3850
      start: 3834
    functionDepth: 0
    functionLinenumber: 3834
    functionLinenumberEnd: 3850
    functionName: AUDIT_FAIL
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AUDIT_FAIL(_level, _fmt, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - _level
    - ','
    - _fmt
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3851
    functionDepth: 0
    functionLinenumber: 3851
    functionLinenumberEnd: 3863
    functionName: AUDIT_FAIL_MIN
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AUDIT_FAIL_MIN(_level, _fmt, _a...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3870,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 4
    argNames:
    - d
    - level
    - gflags
    - sflags
    argTypes:
    - struct domain*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3864
    functionDepth: 1
    functionLinenumber: 3864
    functionLinenumberEnd: 3889
    functionName: sh_audit_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - is_hvm_domain
    linkageType: ''
    returnType: char
    signature: "char *sh_audit_flags(const struct domain *d, int level,\n                                  int
      gflags, int sflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sh_l1e_is_gnp
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3898,1
    - Dst: sh_l1e_mmio_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3900,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3902,1
    - Dst: sh_l1e_is_mmio
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3902,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3904,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3904,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3905,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3907,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3907,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3907,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3909,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - gl1e
    - gl1mfn
    - sl1e
    - sl1mfn
    argTypes:
    - guest_l1e_t*
    - mfn_t
    - shadow_l1e_t*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3891
    functionDepth: 1
    functionLinenumber: 3891
    functionLinenumberEnd: 3914
    functionName: audit_magic
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - AUDIT_FAIL
    - guest_l1e_get_flags
    - sh_l1e_is_mmio
    - sh_l1e_is_gnp
    - gfn_x
    - ASSERT
    - guest_l1e_get_gfn
    - gfn_eq
    - sh_l1e_mmio_get_gfn
    linkageType: ''
    returnType: always_inline
    signature: "always_inline audit_magic(\n    const guest_l1e_t *gl1e, mfn_t gl1mfn,\n
      \   const shadow_l1e_t *sl1e, mfn_t sl1mfn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3926,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3926,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3927,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3927,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3931,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3931,1
    - Dst: oos_audit_hash_is_present
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3933,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3938,1
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3939,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3941,1
    - Dst: audit_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3942,1
    - Dst: sh_audit_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3945,1
    - Dst: guest_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3945,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3946,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3947,1
    - Dst: guest_l1e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3951,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3952,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3953,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3953,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3955,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3955,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3956,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3958,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3958,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3958,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3962,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - d
    - sl1mfn
    - x
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3916
    functionDepth: 3
    functionLinenumber: 3916
    functionLinenumberEnd: 3964
    functionName: sh_audit_l1_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - sh_audit_flags
    - guest_l1e_get_gfn
    - map_domain_page
    - shadow_l1e_get_flags
    - FOREACH_PRESENT_L1E
    - shadow_l1e_get_mfn
    - guest_l1e_get_flags
    - backpointer
    - audit_magic
    - p2m_is_grant
    - get_gfn_query_unlocked
    - mfn_eq
    - sh_l1e_is_magic
    - mfn_x
    - ASSERT
    - unmap_domain_page
    - AUDIT_FAIL
    - gfn_x
    - oos_audit_hash_is_present
    linkageType: ''
    returnType: int
    signature: int sh_audit_l1_table(struct domain *d, mfn_t sl1mfn, mfn_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_l1e_from_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3975,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3975,1
    - Dst: FOREACH_PRESENT_L1E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3976,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3977,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3986,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:3987,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - d
    - sl1mfn
    - x
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3990
      start: 3966
    functionDepth: 1
    functionLinenumber: 3966
    functionLinenumberEnd: 3990
    functionName: sh_audit_fl1_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - sh_l1e_is_magic
    - AUDIT_FAIL
    - shadow_l1e_get_flags
    - FOREACH_PRESENT_L1E
    - _gfn
    - guest_l1e_from_gfn
    linkageType: ''
    returnType: int
    signature: int sh_audit_fl1_table(struct domain *d, mfn_t sl1mfn, mfn_t x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4003,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4003,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4004,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4004,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4008,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4008,1
    - Dst: AUDIT_FAIL_MIN
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4009,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4009,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4012,1
    - Dst: FOREACH_PRESENT_L2E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4013,1
    - Dst: sh_audit_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4015,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4015,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4016,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4017,1
    - Dst: guest_l2e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4021,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4022,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4023,1
    - Dst: get_fl1_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4024,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4025,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4026,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4026,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4028,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4029,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4032,1
    - Dst: guest_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4033,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4034,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4034,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4035,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4035,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4035,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - d
    - sl2mfn
    - x
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 3992
    functionDepth: 6
    functionLinenumber: 3992
    functionLinenumberEnd: 4040
    functionName: sh_audit_l2_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - sh_audit_flags
    - shadow_l2e_get_flags
    - guest_l2e_get_flags
    - shadow_l2e_get_mfn
    - map_domain_page
    - AUDIT_FAIL_MIN
    - backpointer
    - get_gfn_query_unlocked
    - mfn_eq
    - mfn_x
    - get_shadow_status
    - guest_l2e_get_gfn
    - ASSERT
    - unmap_domain_page
    - get_fl1_shadow_status
    - AUDIT_FAIL
    - gfn_x
    - FOREACH_PRESENT_L2E
    linkageType: ''
    returnType: int
    signature: int sh_audit_l2_table(struct domain *d, mfn_t sl2mfn, mfn_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_index
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4047,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - d
    - gl3e
    argTypes:
    - struct domain*
    - guest_l3e_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4043
    functionDepth: 1
    functionLinenumber: 4043
    functionLinenumberEnd: 4052
    functionName: type_from_gl3e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 0
    functionsReached:
    - guest_index
    - is_pv_32bit_domain
    linkageType: ''
    returnType: always_inline unsigned
    signature: "always_inline unsigned type_from_gl3e(\n    const struct domain *d,
      const guest_l3e_t *gl3e)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4065,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4065,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4066,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4066,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4070,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4070,1
    - Dst: AUDIT_FAIL_MIN
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4071,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4071,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4074,1
    - Dst: FOREACH_PRESENT_L3E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4075,1
    - Dst: sh_audit_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4077,1
    - Dst: guest_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4077,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4078,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4079,1
    - Dst: type_from_gl3e
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4083,1
    - Dst: guest_l3e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4085,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4086,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4087,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4088,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4088,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4089,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4090,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4092,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4092,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4092,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - d
    - sl3mfn
    - x
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4097
      start: 4054
    functionDepth: 6
    functionLinenumber: 4054
    functionLinenumberEnd: 4097
    functionName: sh_audit_l3_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - sh_audit_flags
    - guest_l3e_get_gfn
    - FOREACH_PRESENT_L3E
    - map_domain_page
    - AUDIT_FAIL_MIN
    - backpointer
    - get_gfn_query_unlocked
    - mfn_eq
    - type_from_gl3e
    - guest_l3e_get_flags
    - mfn_x
    - get_shadow_status
    - shadow_l3e_get_flags
    - ASSERT
    - unmap_domain_page
    - AUDIT_FAIL
    - shadow_l3e_get_mfn
    - gfn_x
    linkageType: ''
    returnType: int
    signature: int sh_audit_l3_table(struct domain *d, mfn_t sl3mfn, mfn_t x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4110,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4110,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4111,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4111,1
    - Dst: page_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4115,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4115,1
    - Dst: AUDIT_FAIL_MIN
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4116,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4116,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4119,1
    - Dst: FOREACH_PRESENT_L4E
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4120,1
    - Dst: sh_audit_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4122,1
    - Dst: guest_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4122,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4123,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4124,1
    - Dst: guest_l4e_get_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4128,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4129,1
    - Dst: get_shadow_status
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4130,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4130,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4131,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4133,1
    - Dst: AUDIT_FAIL
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4134,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4136,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4136,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4136,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/multi.c:4139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - d
    - sl4mfn
    - x
    argTypes:
    - struct domain*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4099
    functionDepth: 6
    functionLinenumber: 4099
    functionLinenumberEnd: 4141
    functionName: sh_audit_l4_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/multi.c
    functionUses: 1
    functionsReached:
    - page_is_out_of_sync
    - mfn_to_page
    - sh_audit_flags
    - map_domain_page
    - AUDIT_FAIL_MIN
    - backpointer
    - get_gfn_query_unlocked
    - mfn_eq
    - FOREACH_PRESENT_L4E
    - mfn_x
    - get_shadow_status
    - guest_l4e_get_gfn
    - ASSERT
    - unmap_domain_page
    - AUDIT_FAIL
    - shadow_l4e_get_mfn
    - gfn_x
    - guest_l4e_get_flags
    - shadow_l4e_get_flags
    linkageType: ''
    returnType: int
    signature: int sh_audit_l4_table(struct domain *d, mfn_t sl4mfn, mfn_t x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:52,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:53,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:56,1
    - Dst: hvm_get_segment_register
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - seg
    - sh_ctxt
    argTypes:
    - enum x86_segment
    - struct sh_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: hvm_get_seg_reg
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - __test_and_set_bit
    - ERR_PTR
    - hvm_get_segment_register
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct segment_register
    signature: "struct segment_register *hvm_get_seg_reg(\n    enum x86_segment seg,
      struct sh_emulate_ctxt *sh_ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_seg_reg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:72,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:73,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:74,1
    - Dst: hvm_virtual_to_linear_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:76,1
    - Dst: hvm_get_seg_reg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:78,1
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:87,1
    - Dst: x86_emul_hw_exception
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - seg
    - offset
    - bytes
    - access_type
    - sh_ctxt
    - linear
    argTypes:
    - enum x86_segment
    - unsigned long
    - unsigned int
    - enum hvm_access_type
    - struct sh_emulate_ctxt*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 95
    functionName: hvm_translate_virtual_addr
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - hvm_get_seg_reg
    - is_x86_user_segment
    - x86_emul_hw_exception
    - PTR_ERR
    - hvm_virtual_to_linear_addr
    linkageType: ''
    returnType: int
    signature: "int hvm_translate_virtual_addr(\n    enum x86_segment seg,\n    unsigned
      long offset,\n    unsigned int bytes,\n    enum hvm_access_type access_type,\n
      \   struct sh_emulate_ctxt *sh_ctxt,\n    unsigned long *linear)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hvm_translate_virtual_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:109,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:114,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:124,1
    - Dst: BUG
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 6
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - access_type
    - sh_ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - enum hvm_access_type
    - struct sh_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 137
    functionName: hvm_read
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_translate_virtual_addr
    - BUG
    - hvm_copy_from_guest_linear
    - x86_emul_pagefault
    linkageType: ''
    returnType: int
    signature: "int hvm_read(enum x86_segment seg,\n         unsigned long offset,\n
      \        void *p_data,\n         unsigned int bytes,\n         enum hvm_access_type
      access_type,\n         struct sh_emulate_ctxt *sh_ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_x86_user_segment
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:146,1
    - Dst: hvm_read
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:148,1
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: hvm_emulate_read
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - is_x86_user_segment
    - hvm_read
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_read(enum x86_segment seg,\n                 unsigned
      long offset,\n                 void *p_data,\n                 unsigned int
      bytes,\n                 struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:159,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:163,1
    - Dst: hvm_read
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:164,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: hvm_emulate_insn_fetch
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memcpy
    - hvm_read
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_insn_fetch(unsigned long offset,\n                       void
      *p_data,\n                       unsigned int bytes,\n                       struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:180,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:188,1
    - Dst: hvm_translate_virtual_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:190,1
    - Dst: sh_emulate_map_dest
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:195,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:196,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:197,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:199,1
    - Dst: write_u16_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:204,1
    - Dst: write_u32_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:205,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:206,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:207,1
    - Dst: struct vcpu*::arch::paging::mode::shadow::trace_emul_write_val
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:212,1
    - Dst: sh_emulate_unmap_dest
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:216,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:217,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 5
    argNames:
    - seg
    - offset
    - p_data
    - bytes
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - unsigned int
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: hvm_emulate_write
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - sh_emulate_map_dest
    - IS_ERR
    - sh_emulate_unmap_dest
    - shadow_audit_tables
    - container_of
    - hvm_translate_virtual_addr
    - paging_lock
    - paging_unlock
    - write_u16_atomic
    - PTR_ERR
    - write_u32_atomic
    - write_u64_atomic
    - struct vcpu*::arch::paging::mode::shadow::trace_emul_write_val
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_write(enum x86_segment seg,\n                  unsigned
      long offset,\n                  void *p_data,\n                  unsigned int
      bytes,\n                  struct x86_emulate_ctxt *ctxt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:233,1
    - Dst: hvm_translate_virtual_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:242,1
    - Dst: sh_emulate_map_dest
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:247,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:248,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:249,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:252,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:253,1
    - Dst: p_new::p_new
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:253,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:255,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:258,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:259,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:260,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:261,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:263,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:270,1
    - Dst: SHADOW_DEBUG
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:274,1
    - Dst: sh_emulate_unmap_dest
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:278,1
    - Dst: shadow_audit_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:279,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 7
    argNames:
    - seg
    - offset
    - p_old
    - p_new
    - bytes
    - lock
    - ctxt
    argTypes:
    - enum x86_segment
    - unsigned long
    - void*
    - void*
    - unsigned int
    - bool
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 283
    functionName: hvm_emulate_cmpxchg
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - sh_emulate_map_dest
    - IS_ERR
    - SHADOW_DEBUG
    - sh_emulate_unmap_dest
    - shadow_audit_tables
    - container_of
    - hvm_translate_virtual_addr
    - paging_lock
    - paging_unlock
    - PTR_ERR
    - p_new::p_new
    - SHADOW_PRINTK
    - cmpxchg
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_cmpxchg(enum x86_segment seg,\n                    unsigned
      long offset,\n                    void *p_old,\n                    void *p_new,\n
      \                   unsigned int bytes,\n                    bool lock,\n                    struct
      x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:291,1
    - Dst: hvm_get_seg_reg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:292,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:294,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - reg
    - ctxt
    argTypes:
    - enum x86_segment
    - struct segment_register*
    - struct x86_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: hvm_emulate_read_segment
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - hvm_get_seg_reg
    - IS_ERR
    - PTR_ERR
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hvm_emulate_read_segment(enum x86_segment seg,\n                         struct
      segment_register *reg,\n                         struct x86_emulate_ctxt *ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:318,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:318,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:320,1
    - Dst: hvm_long_mode_active
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:324,1
    - Dst: hvm_get_seg_reg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:327,1
    - Dst: hvm_get_seg_reg
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:334,1
    - Dst: hvm_translate_virtual_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:344,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - sh_ctxt
    - regs
    - pte_size
    argTypes:
    - struct sh_emulate_ctxt*
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 310
    functionDepth: 5
    functionLinenumber: 310
    functionLinenumberEnd: 353
    functionName: shadow_init_emulation
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached:
    - is_hvm_vcpu
    - hvm_translate_virtual_addr
    - hvm_get_seg_reg
    - ASSERT
    - hvm_copy_from_guest_linear
    - memset
    - hvm_long_mode_active
    linkageType: ''
    returnType: struct x86_emulate_ops
    signature: "struct x86_emulate_ops *shadow_init_emulation(\n    struct sh_emulate_ctxt
      *sh_ctxt, struct cpu_user_regs *regs,\n    unsigned int pte_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:364,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:364,1
    - Dst: hvm_translate_virtual_addr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:375,1
    - Dst: hvm_copy_from_guest_linear
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sh_ctxt
    - regs
    argTypes:
    - struct sh_emulate_ctxt*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 384
    functionName: shadow_continue_emulation
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached:
    - hvm_translate_virtual_addr
    - is_hvm_vcpu
    - ASSERT
    - hvm_copy_from_guest_linear
    linkageType: ''
    returnType: void
    signature: "void shadow_continue_emulation(struct sh_emulate_ctxt *sh_ctxt,\n
      \                              struct cpu_user_regs *regs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: paging_get_hostmode
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:406,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:407,1
    - Dst: x86_emul_pagefault
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:409,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:411,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:415,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:415,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:417,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:422,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:426,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:427,1
    - Dst: p2m_is_discard_write
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:429,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:431,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:432,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:434,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:436,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:437,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:439,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:440,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:440,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:442,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - v
    - vaddr
    - sh_ctxt
    argTypes:
    - struct vcpu*
    - unsigned long
    - struct sh_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 445
    functionName: emulate_gva_to_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - paging_locked_by_me
    - _mfn
    - p2m_is_ram
    - mfn_valid
    - sh_mfn_is_a_page_table
    - gfn_x
    - ASSERT
    - p2m_is_discard_write
    - x86_emul_pagefault
    - put_page
    - paging_get_hostmode
    - get_page_from_gfn
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t emulate_gva_to_mfn(struct vcpu *v, unsigned long vaddr,\n                                struct
      sh_emulate_ctxt *sh_ctxt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hvm_get_cpl
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:461,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:463,1
    - Dst: emulate_gva_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:469,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:470,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:472,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:482,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:484,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:488,1
    - Dst: emulate_gva_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:493,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:495,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:497,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:497,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:498,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:507,1
    - Dst: vmap
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:509,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:512,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:512,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:513,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:513,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 4
    argNames:
    - v
    - vaddr
    - bytes
    - sh_ctxt
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - struct sh_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 528
    functionName: sh_emulate_map_dest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 2
    functionsReached:
    - emulate_gva_to_mfn
    - gdprintk
    - map_domain_page
    - mfn_to_page
    - hvm_get_cpl
    - mfn_x
    - mfn_valid
    - likely
    - vmap
    - put_page
    - sh_remove_shadows
    linkageType: ''
    returnType: void
    signature: "void *sh_emulate_map_dest(struct vcpu *v, unsigned long vaddr,\n                                 unsigned
      int bytes,\n                                 struct sh_emulate_ctxt *sh_ctxt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:555,1
    - Dst: sh_mfn_is_a_page_table
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:556,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:558,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:561,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:562,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:563,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - v
    - gmfn
    argTypes:
    - struct vcpu*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 567
    functionName: check_for_early_unshadow
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - mfn_to_page
    - mfn_x
    - sh_mfn_is_a_page_table
    - sh_remove_shadows
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: void
    signature: void check_for_early_unshadow(struct vcpu *v, mfn_t gmfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:576,1
    - Dst: paging_locked_by_me
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:576,1
    - Dst: sh_validate_guest_entry
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:578,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:582,1
    - Dst: sh_remove_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:593,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - v
    - gmfn
    - entry
    - size
    argTypes:
    - struct vcpu*
    - mfn_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: validate_guest_pt_write
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - guest_flush_tlb_mask
    - paging_locked_by_me
    - ASSERT
    - sh_validate_guest_entry
    - sh_remove_shadows
    linkageType: ''
    returnType: void
    signature: "void validate_guest_pt_write(struct vcpu *v, mfn_t gmfn,\n                                    void
      *entry, unsigned int size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:607,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:607,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:610,1
    - Dst: check_for_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:613,1
    - Dst: sh_reset_early_unshadow
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:620,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:628,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:649,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:649,1
    - Dst: paging_mark_dirty
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:650,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:655,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:655,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:660,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:662,1
    - Dst: validate_guest_pt_write
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:663,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:664,1
    - Dst: validate_guest_pt_write
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:665,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:668,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:668,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:670,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:670,1
    - Dst: put_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:672,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:672,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:673,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:676,1
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:678,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 4
    argNames:
    - v
    - addr
    - bytes
    - sh_ctxt
    argTypes:
    - struct vcpu*
    - void*
    - unsigned int
    - struct sh_emulate_ctxt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 679
    functionName: sh_emulate_unmap_dest
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 2
    functionsReached:
    - sh_reset_early_unshadow
    - unmap_domain_page
    - mfn_to_page
    - likely
    - mfn_valid
    - check_for_early_unshadow
    - vunmap
    - ASSERT
    - validate_guest_pt_write
    - atomic_inc
    - unlikely
    - put_page
    - paging_mark_dirty
    linkageType: ''
    returnType: void
    signature: "void sh_emulate_unmap_dest(struct vcpu *v, void *addr,\n                                  unsigned
      int bytes,\n                                  struct sh_emulate_ctxt *sh_ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v
    - vcpu_bitmap
    argTypes:
    - struct vcpu*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: flush_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 13
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool flush_vcpu(const struct vcpu *v, const unsigned long *vcpu_bitmap)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:690,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:696,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:700,1
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:701,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:702,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:705,1
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:706,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:707,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:708,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:711,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:713,1
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:720,1
    - Dst: paging_update_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:723,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:725,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:726,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:727,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:731,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:734,1
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:735,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:736,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - vcpu_bitmap
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 739
    functionName: shadow_flush_tlb
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_vcpu
    - spin_unlock
    - cpu_relax
    - guest_flush_tlb_mask
    - flush_vcpu
    - is_vcpu_dirty_cpu
    - vcpu_unpause
    - paging_update_cr3
    - vcpu_runnable
    - read_atomic
    - spin_trylock
    - this_cpu
    - vcpu_pause_nosync
    - __cpumask_set_cpu
    linkageType: ''
    returnType: bool
    signature: bool shadow_flush_tlb(const unsigned long *vcpu_bitmap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flush_vcpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:720,1
    - Dst: paging_update_cr3
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:723,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:725,1
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:726,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 728
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 37
    functionsReached:
    - flush_vcpu
    - is_vcpu_dirty_cpu
    - paging_update_cr3
    - read_atomic
    - __cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:747,1
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:747,1
    - Dst: shadow_prealloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:750,1
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:753,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:754,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:756,1
    - Dst: init_xen_l4_slots
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:763,1
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:775,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:776,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:777,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:778,1
    - Dst: shadow_alloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:780,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:781,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:782,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:783,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:784,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:787,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - v
    - shadow_levels
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 741
    functionDepth: 4
    functionLinenumber: 741
    functionLinenumberEnd: 790
    functionName: sh_make_monitor_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached:
    - init_xen_l4_slots
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - l4_table_offset
    - l4e_from_mfn
    - shadow_prealloc
    - ASSERT
    - shadow_alloc
    - pagetable_get_pfn
    - l3e_from_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t sh_make_monitor_table(const struct vcpu *v, unsigned int shadow_levels)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:797,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:797,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:802,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:804,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:810,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:810,1
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:811,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:812,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:813,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:813,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:814,1
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:814,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:815,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:816,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:818,1
    - Dst: shadow_free
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - v
    - mmfn
    - shadow_levels
    argTypes:
    - struct vcpu*
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 823
    functionName: sh_destroy_monitor_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 2
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - l4_table_offset
    - l4e_get_flags
    - ASSERT
    - l3e_get_flags
    - shadow_free
    - l3e_get_mfn
    - l4e_get_mfn
    linkageType: ''
    returnType: void
    signature: "void sh_destroy_monitor_table(const struct vcpu *v, mfn_t mmfn,\n
      \                             unsigned int shadow_levels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shadow_remove_all_shadows
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 847
    functionName: sh_remove_all_shadows_and_parents
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - shadow_remove_all_shadows
    linkageType: ''
    returnType: void
    signature: void sh_remove_all_shadows_and_parents(struct domain *d, mfn_t gmfn)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:853,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:854,1
    - Dst: p2m_flags_to_type
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:855,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:862,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:867,1
    - Dst: p2m_is_grant
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:867,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:868,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:881,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:886,1
    - Dst: l1e_get_intpte
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:886,1
    - Dst: sh_remove_all_shadows_and_parents
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:888,1
    - Dst: sh_remove_all_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:889,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:889,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:902,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:903,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:906,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:912,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:913,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:916,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:920,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:921,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:924,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:932,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:935,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:940,1
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:942,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:945,1
    - Dst: sh_remove_all_shadows_and_parents
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:948,1
    - Dst: sh_remove_all_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:949,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:949,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:953,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:954,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:954,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:957,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:958,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:965,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 57
    argCount: 5
    argNames:
    - d
    - gfn
    - old
    - new
    - level
    argTypes:
    - struct domain*
    - unsigned long
    - l1_pgentry_t
    - l1_pgentry_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 966
    functionName: sh_unshadow_for_p2m_change
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - l1e_get_intpte
    - _gfn
    - BUILD_BUG_ON
    - p2m_is_valid
    - map_domain_page
    - mfn_valid
    - sh_remove_all_mappings
    - p2m_is_grant
    - mfn_eq
    - l1e_get_flags
    - mfn_x
    - ASSERT
    - l1e_get_mfn
    - unmap_domain_page
    - guest_flush_tlb_mask
    - mfn_add
    - p2m_flags_to_type
    - sh_remove_all_shadows_and_parents
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void sh_unshadow_for_p2m_change(\n    struct domain *d, unsigned long
      gfn, l1_pgentry_t old, l1_pgentry_t new,\n    unsigned int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p2m
    - oflags
    argTypes:
    - struct p2m_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 985
    functionName: sh_write_p2m_entry_post
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - shadow_blow_tables
    linkageType: ''
    returnType: void
    signature: void sh_write_p2m_entry_post(struct p2m_domain *p2m, unsigned int oflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 994
    functionName: shadow_p2m_init
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void shadow_p2m_init(struct p2m_domain *p2m)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1005,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1010,1
    - Dst: p2m_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1017,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1017,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1018,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1027,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1028,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1029,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1031,1
    - Dst: vzalloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1037,1
    - Dst: shadow_blow_tables
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1053,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1055,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1058,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1064,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1066,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1068,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1071,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1078,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1087,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1092,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1096,1
    - Dst: sh_remove_all_mappings
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1113,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1114,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1123,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1125,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1128,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1129,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1134,1
    - Dst: l1e_remove_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1141,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1158,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1163,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1165,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1166,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1167,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1167,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1175,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1176,1
    - Dst: sh_remove_write_access
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1177,1
    - Dst: guest_flush_tlb_mask
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1183,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1187,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1190,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1193,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1195,1
    - Dst: paging_lock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1197,1
    - Dst: paging_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1200,1
    - Dst: vfree
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1203,1
    - Dst: p2m_unlock
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1204,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1204,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 116
    argCount: 4
    argNames:
    - d
    - begin_pfn
    - nr_frames
    - guest_dirty_bitmap
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - XEN_GUEST_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 998
    functionDepth: 4
    functionLinenumber: 998
    functionLinenumberEnd: 1206
    functionName: shadow_track_dirty_vram
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - mfn_to_page
    - _gfn
    - vzalloc
    - p2m_unlock
    - xfree
    - vfree
    - map_domain_page
    - shadow_blow_tables
    - paging_unlock
    - XFREE
    - sh_remove_all_mappings
    - get_gfn_query_unlocked
    - mfn_eq
    - copy_to_guest
    - NOW
    - l1e_get_flags
    - gdprintk
    - paging_lock
    - p2m_lock
    - l1e_remove_flags
    - sh_remove_write_access
    - memset
    - p2m_get_hostp2m
    - xmalloc_array
    - unmap_domain_page
    - guest_flush_tlb_mask
    - SECONDS
    - DIV_ROUND_UP
    - xzalloc_array
    - maddr_to_mfn
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int shadow_track_dirty_vram(struct domain *d,\n                            unsigned
      long begin_pfn,\n                            unsigned int nr_frames,\n                            XEN_GUEST_HANDLE(void)
      guest_dirty_bitmap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1215,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1215,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1219,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1222,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1222,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1224,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1224,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1229,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1233,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - mfn
    - l1f
    - sl1mfn
    - sl1e
    - d
    argTypes:
    - mfn_t
    - unsigned int
    - mfn_t
    - void*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1236
    functionName: shadow_vram_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_to_maddr
    - mfn_valid
    - SHARED_M2P
    - gfn_x
    - BUG_ON
    - ASSERT
    - PAGE_OFFSET
    - mfn_to_gfn
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: "void shadow_vram_get_mfn(mfn_t mfn, unsigned int l1f,\n                         mfn_t
      sl1mfn, const void *sl1e,\n                         const struct domain *d)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1245,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1245,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1249,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1252,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1252,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1254,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1254,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1259,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1261,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1261,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1273,1
    - Dst: NOW
      Src: /src/xen/xen/arch/x86/mm/shadow/hvm.c:1301,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - mfn
    - l1f
    - sl1mfn
    - sl1e
    - d
    argTypes:
    - mfn_t
    - unsigned int
    - mfn_t
    - void*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1304
    functionName: shadow_vram_put_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/hvm.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - mfn_to_maddr
    - mfn_valid
    - SHARED_M2P
    - gfn_x
    - BUG_ON
    - ASSERT
    - PAGE_OFFSET
    - mfn_to_gfn
    - is_hvm_domain
    - NOW
    linkageType: ''
    returnType: void
    signature: "void shadow_vram_put_mfn(mfn_t mfn, unsigned int l1f,\n                         mfn_t
      sl1mfn, const void *sl1e,\n                         const struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: shadow_l1e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l1e_get_paddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t shadow_l1e_get_paddr(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl2e
    argTypes:
    - shadow_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: shadow_l2e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l2e_get_paddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t shadow_l2e_get_paddr(shadow_l2e_t sl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl3e
    argTypes:
    - shadow_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: shadow_l3e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l3e_get_paddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t shadow_l3e_get_paddr(shadow_l3e_t sl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl4e
    argTypes:
    - shadow_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: shadow_l4e_get_paddr
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l4e_get_paddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t shadow_l4e_get_paddr(shadow_l4e_t sl4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: shadow_l1e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 6
    functionsReached:
    - l1e_get_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t shadow_l1e_get_mfn(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl2e
    argTypes:
    - shadow_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: shadow_l2e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 7
    functionsReached:
    - l2e_get_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t shadow_l2e_get_mfn(shadow_l2e_t sl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl3e
    argTypes:
    - shadow_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: shadow_l3e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached:
    - l3e_get_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t shadow_l3e_get_mfn(shadow_l3e_t sl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl4e
    argTypes:
    - shadow_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: shadow_l4e_get_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached:
    - l4e_get_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t shadow_l4e_get_mfn(shadow_l4e_t sl4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: shadow_l1e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 6
    functionsReached:
    - l1e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l1e_get_flags(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl2e
    argTypes:
    - shadow_l2e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: shadow_l2e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached:
    - l2e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l2e_get_flags(shadow_l2e_t sl2e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl3e
    argTypes:
    - shadow_l3e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: shadow_l3e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached:
    - l3e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l3e_get_flags(shadow_l3e_t sl3e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl4e
    argTypes:
    - shadow_l4e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: shadow_l4e_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached:
    - l4e_get_flags
    linkageType: ''
    returnType: u32
    signature: u32 shadow_l4e_get_flags(shadow_l4e_t sl4e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_remove_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sl1e
    - flags
    argTypes:
    - shadow_l1e_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: shadow_l1e_remove_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached:
    - l1e_remove_flags
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t shadow_l1e_remove_flags(shadow_l1e_t sl1e, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_flip_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sl1e
    - flags
    argTypes:
    - shadow_l1e_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: shadow_l1e_flip_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l1e_flip_flags
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t shadow_l1e_flip_flags(shadow_l1e_t sl1e, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: shadow_l1e_empty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached:
    - l1e_empty
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t shadow_l1e_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: shadow_l2e_empty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached:
    - l2e_empty
    linkageType: ''
    returnType: shadow_l2e_t
    signature: shadow_l2e_t shadow_l2e_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: shadow_l3e_empty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached:
    - l3e_empty
    linkageType: ''
    returnType: shadow_l3e_t
    signature: shadow_l3e_t shadow_l3e_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: shadow_l4e_empty
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached:
    - l4e_empty
    linkageType: ''
    returnType: shadow_l4e_t
    signature: shadow_l4e_t shadow_l4e_empty(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l1e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - flags
    argTypes:
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: shadow_l1e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached:
    - l1e_from_mfn
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t shadow_l1e_from_mfn(mfn_t mfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - flags
    argTypes:
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: shadow_l2e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l2e_from_mfn
    linkageType: ''
    returnType: shadow_l2e_t
    signature: shadow_l2e_t shadow_l2e_from_mfn(mfn_t mfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - flags
    argTypes:
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: shadow_l3e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 2
    functionsReached:
    - l3e_from_mfn
    linkageType: ''
    returnType: shadow_l3e_t
    signature: shadow_l3e_t shadow_l3e_from_mfn(mfn_t mfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - flags
    argTypes:
    - mfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: shadow_l4e_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached:
    - l4e_from_mfn
    linkageType: ''
    returnType: shadow_l4e_t
    signature: shadow_l4e_t shadow_l4e_from_mfn(mfn_t mfn, u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: shadow_l1_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l1_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: shadow_l2_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l2_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: shadow_l3_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l3_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: shadow_l4_table_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l4_table_offset(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: shadow_l1_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l1_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: shadow_l2_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l2_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: shadow_l3_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l3_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: shadow_l4_linear_offset
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shadow_l4_linear_offset(_a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: sh_linear_l1_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_linear_l1_table(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: sh_linear_l2_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_linear_l2_table(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: sh_linear_l3_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_linear_l3_table(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: sh_linear_l4_table
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_linear_l4_table(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - g
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: get_gfn_query
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_gfn_query(d, g, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: INTERNAL_NAME
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _MFN
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: MFN_FITS_IN_HVM_CR3
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MFN_FITS_IN_HVM_CR3(_MFN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:265,1
    - Dst: put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sl1e
    - d
    argTypes:
    - shadow_l1e_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: shadow_put_page_from_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached:
    - put_page_from_l1e
    - paging_mode_refcounts
    linkageType: ''
    returnType: void
    signature: void shadow_put_page_from_l1e(shadow_l1e_t sl1e, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: sh_have_pte_rsvd_bits
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sh_have_pte_rsvd_bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: sh_l1e_is_magic
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool sh_l1e_is_magic(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: sh_l1e_gnp_raw
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t sh_l1e_gnp_raw(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_have_pte_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:319,1
    - Dst: sh_l1e_gnp_raw
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:319,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: sh_l1e_gnp
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached:
    - sh_l1e_gnp_raw
    - sh_have_pte_rsvd_bits
    - shadow_l1e_empty
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t sh_l1e_gnp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sh_l1e_gnp_raw
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: sh_l1e_is_gnp
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 2
    functionsReached:
    - sh_l1e_gnp_raw
    linkageType: ''
    returnType: bool
    signature: bool sh_l1e_is_gnp(shadow_l1e_t sl1e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:341,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:341,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:345,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:346,1
    - Dst: sh_have_pte_rsvd_bits
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:348,1
    - Dst: is_l1tf_safe_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:350,1
    - Dst: shadow_l1e_get_paddr
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:350,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - gfn
    - gflags
    argTypes:
    - gfn_t
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 354
    functionName: sh_l1e_mmio
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached:
    - sh_have_pte_rsvd_bits
    - MASK_INSR
    - shadow_l1e_empty
    - BUILD_BUG_ON
    - gfn_x
    - shadow_l1e_get_paddr
    - is_l1tf_safe_maddr
    linkageType: ''
    returnType: shadow_l1e_t
    signature: shadow_l1e_t sh_l1e_mmio(gfn_t gfn, u32 gflags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: sh_l1e_is_mmio
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sh_l1e_is_mmio(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:363,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/x86/mm/shadow/types.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: sh_l1e_mmio_get_gfn
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 2
    functionsReached:
    - _gfn
    - MASK_EXTR
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t sh_l1e_mmio_get_gfn(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl1e
    argTypes:
    - shadow_l1e_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: sh_l1e_mmio_get_flags
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sh_l1e_mmio_get_flags(shadow_l1e_t sl1e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: sh_l1e_gnp
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_l1e_gnp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _gfn
    - ','
    - _flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: sh_l1e_mmio
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_l1e_mmio(_gfn, _flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: sh_l1e_is_magic
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/types.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sh_l1e_is_magic(_e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_unsafe
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:50,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:52,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:53,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:54,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:63,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:63,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:66,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - d
    - s
    - entries
    - mfn
    argTypes:
    - void*
    - void*
    - unsigned int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: shadow_write_entries
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - unmap_domain_page
    - map_domain_page
    - write_atomic
    - IS_ALIGNED
    - ASSERT
    - PAGE_OFFSET
    - put_unsafe
    linkageType: ''
    returnType: void
    signature: void shadow_write_entries(void *d, const void *s, unsigned int entries,
      mfn_t mfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:79,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:83,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:83,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:84,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:84,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:86,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:88,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:89,1
    - Dst: xsm_priv_mapping
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:100,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:102,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:103,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:104,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:111,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:118,1
    - Dst: get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:121,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:123,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:125,1
    - Dst: SHADOW_PRINTK
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - sl1e
    - d
    - type
    argTypes:
    - shadow_l1e_t
    - struct domain*
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 130
    functionName: shadow_get_page_from_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - unlikely
    - sh_l1e_is_magic
    - shadow_l1e_get_flags
    - shadow_l1e_get_mfn
    - mfn_to_page
    - get_page_from_l1e
    - mfn_x
    - mfn_valid
    - page_get_owner
    - ASSERT
    - paging_mode_refcounts
    - SHADOW_PRINTK
    - xsm_priv_mapping
    linkageType: ''
    returnType: int
    signature: int shadow_get_page_from_l1e(shadow_l1e_t sl1e, struct domain *d, p2m_type_t
      type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:139,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:144,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:144,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:146,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:149,1
    - Dst: sh_get_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:151,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:153,1
    - Dst: sh_type_is_pinnable
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:158,1
    - Dst: sh_pin
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:159,1
    - Dst: shadow_write_entries
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:163,1
    - Dst: flush_root_pgtbl_domain
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:164,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:168,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:171,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:173,1
    - Dst: shadow_l4e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:173,1
    - Dst: perms_strictly_increased
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:174,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:174,1
    - Dst: shadow_l4e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:175,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - d
    - sl4e
    - new_sl4e
    - sl4mfn
    argTypes:
    - struct domain*
    - shadow_l4e_t*
    - shadow_l4e_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 182
    functionName: shadow_set_l4e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 5
    functionsReached:
    - mfn_eq
    - mfn_to_maddr
    - shadow_write_entries
    - flush_root_pgtbl_domain
    - sh_get_ref
    - sh_put_ref
    - shadow_l4e_get_mfn
    - perms_strictly_increased
    - ASSERT
    - sh_pin
    - shadow_l4e_get_flags
    - PAGE_OFFSET
    - sh_type_is_pinnable
    - domain_crash
    linkageType: ''
    returnType: int
    signature: "int shadow_set_l4e(struct domain *d, shadow_l4e_t *sl4e,\n                   shadow_l4e_t
      new_sl4e, mfn_t sl4mfn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:191,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:196,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:196,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:198,1
    - Dst: sh_get_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:201,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:201,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:203,1
    - Dst: shadow_write_entries
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:209,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:212,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:215,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:217,1
    - Dst: shadow_l3e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:217,1
    - Dst: perms_strictly_increased
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:218,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:218,1
    - Dst: shadow_l3e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:219,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - d
    - sl3e
    - new_sl3e
    - sl3mfn
    argTypes:
    - struct domain*
    - shadow_l3e_t*
    - shadow_l3e_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 226
    functionName: shadow_set_l3e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 4
    functionsReached:
    - mfn_to_maddr
    - shadow_write_entries
    - sh_put_ref
    - sh_get_ref
    - shadow_l3e_get_mfn
    - shadow_l3e_get_flags
    - perms_strictly_increased
    - ASSERT
    - PAGE_OFFSET
    - mfn_eq
    - domain_crash
    linkageType: ''
    returnType: int
    signature: "int shadow_set_l3e(struct domain *d, shadow_l3e_t *sl3e,\n                   shadow_l3e_t
      new_sl3e, mfn_t sl3mfn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:251,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:256,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:256,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:258,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:260,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:261,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:261,1
    - Dst: sh_get_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:264,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:266,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:272,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:275,1
    - Dst: backpointer
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:276,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:281,1
    - Dst: mfn_is_out_of_sync
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:282,1
    - Dst: sh_resync
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:283,1
    - Dst: next_page
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:290,1
    - Dst: shadow_l2e_from_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:291,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:292,1
    - Dst: shadow_write_entries
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:297,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:301,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:304,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:306,1
    - Dst: shadow_l2e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:306,1
    - Dst: perms_strictly_increased
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:307,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:307,1
    - Dst: shadow_l2e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:308,1
    - Dst: sh_put_ref
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - d
    - sl2e
    - new_sl2e
    - sl2mfn
    - type_fl1_shadow
    argTypes:
    - struct domain*
    - shadow_l2e_t*
    - shadow_l2e_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 228
    functionDepth: 6
    functionLinenumber: 228
    functionLinenumberEnd: 315
    functionName: shadow_set_l2e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 5
    functionsReached:
    - shadow_l2e_get_mfn
    - next_page
    - mfn_to_maddr
    - mfn_to_page
    - shadow_write_entries
    - shadow_l2e_from_mfn
    - shadow_l2e_get_flags
    - sh_get_ref
    - mfn_valid
    - sh_put_ref
    - sh_resync
    - backpointer
    - ASSERT
    - perms_strictly_increased
    - mfn_is_out_of_sync
    - PAGE_OFFSET
    - mfn_eq
    - domain_crash
    linkageType: ''
    returnType: int
    signature: "int shadow_set_l2e(struct domain *d, shadow_l2e_t *sl2e,\n                   shadow_l2e_t
      new_sl2e, mfn_t sl2mfn,\n                   unsigned int type_fl1_shadow,\n
      \                  mfn_t (*next_page)(mfn_t smfn))"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:325,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:328,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:331,1
    - Dst: mfn_oos_may_write
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:331,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:332,1
    - Dst: oos_fixup_add
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:334,1
    - Dst: pgentry_ptr_to_slot
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:334,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:341,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:342,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:345,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:350,1
    - Dst: shadow_get_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:351,1
    - Dst: shadow_l1e_empty
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:356,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:359,1
    - Dst: shadow_l1e_flip_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:360,1
    - Dst: shadow_vram_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:363,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:363,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:364,1
    - Dst: shadow_write_entries
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:373,1
    - Dst: shadow_l1e_get_flags
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:376,1
    - Dst: sh_l1e_is_magic
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:377,1
    - Dst: paging_mode_refcounts
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:378,1
    - Dst: shadow_vram_put_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:388,1
    - Dst: shadow_l1e_get_mfn
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:388,1
    - Dst: shadow_put_page_from_l1e
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:390,1
    - Dst: TRACE_SHADOW_PATH_FLAG
      Src: /src/xen/xen/arch/x86/mm/shadow/set.c:391,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - d
    - sl1e
    - new_sl1e
    - new_type
    - sl1mfn
    argTypes:
    - struct domain*
    - shadow_l1e_t*
    - shadow_l1e_t
    - p2m_type_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 395
    functionName: shadow_set_l1e
    functionSourceFile: /src/xen/xen/arch/x86/mm/shadow/set.c
    functionUses: 10
    functionsReached:
    - shadow_put_page_from_l1e
    - sh_l1e_is_magic
    - shadow_get_page_from_l1e
    - shadow_l1e_get_flags
    - shadow_l1e_get_mfn
    - oos_fixup_add
    - shadow_l1e_empty
    - shadow_l1e_flip_flags
    - shadow_write_entries
    - mfn_valid
    - shadow_vram_put_mfn
    - shadow_vram_get_mfn
    - mfn_oos_may_write
    - ASSERT
    - paging_mode_refcounts
    - pgentry_ptr_to_slot
    - TRACE_SHADOW_PATH_FLAG
    linkageType: ''
    returnType: int
    signature: "int shadow_set_l1e(struct domain *d, shadow_l1e_t *sl1e,\n                   shadow_l1e_t
      new_sl1e, p2m_type_t new_type,\n                   mfn_t sl1mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sbdf
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: PCI_CONF_ADDRESS
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_CONF_ADDRESS(sbdf, reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:20,1
    - Dst: pci_conf_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:24,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sbdf
    - reg
    argTypes:
    - pci_sbdf_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: pci_conf_read8
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 2
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_read
    - pci_conf_read
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t pci_conf_read8(pci_sbdf_t sbdf, unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:33,1
    - Dst: pci_conf_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:37,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sbdf
    - reg
    argTypes:
    - pci_sbdf_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 38
    functionName: pci_conf_read16
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 14
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_read
    - pci_conf_read
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t pci_conf_read16(pci_sbdf_t sbdf, unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:46,1
    - Dst: pci_conf_read
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:50,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sbdf
    - reg
    argTypes:
    - pci_sbdf_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: pci_conf_read32
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 9
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_read
    - pci_conf_read
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t pci_conf_read32(pci_sbdf_t sbdf, unsigned int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:56,1
    - Dst: pci_conf_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:58,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sbdf
    - reg
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: pci_conf_write8
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 1
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_write
    - pci_conf_write
    linkageType: ''
    returnType: void
    signature: void pci_conf_write8(pci_sbdf_t sbdf, unsigned int reg, uint8_t data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:64,1
    - Dst: pci_conf_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:66,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sbdf
    - reg
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: pci_conf_write16
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 9
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_write
    - pci_conf_write
    linkageType: ''
    returnType: void
    signature: void pci_conf_write16(pci_sbdf_t sbdf, unsigned int reg, uint16_t data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:72,1
    - Dst: pci_conf_write
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:74,1
    - Dst: PCI_CONF_ADDRESS
      Src: /src/xen/xen/arch/x86/x86_64/pci.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sbdf
    - reg
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: pci_conf_write32
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/pci.c
    functionUses: 4
    functionsReached:
    - PCI_CONF_ADDRESS
    - pci_mmcfg_write
    - pci_conf_write
    linkageType: ''
    returnType: void
    signature: void pci_conf_write32(pci_sbdf_t sbdf, unsigned int reg, uint32_t data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - seg
    - bus
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: get_virt
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_virt(unsigned int seg, unsigned int *bus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_virt
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: pci_dev_base
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached:
    - get_virt
    linkageType: ''
    returnType: char
    signature: char *pci_dev_base(unsigned int seg, unsigned int bus, unsigned int
      devfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:64,1
    - Dst: pci_dev_base
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:69,1
    - Dst: mmio_config_readb
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:75,1
    - Dst: mmio_config_readw
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:78,1
    - Dst: mmio_config_readl
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - seg
    - bus
    - devfn
    - reg
    - len
    - value
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - int
    - int
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: pci_mmcfg_read
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 3
    functionsReached:
    - mmio_config_readl
    - mmio_config_readb
    - unlikely
    - pci_dev_base
    - mmio_config_readw
    linkageType: ''
    returnType: int
    signature: "int pci_mmcfg_read(unsigned int seg, unsigned int bus,\n              unsigned
      int devfn, int reg, int len, u32 *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:94,1
    - Dst: pci_dev_base
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:97,1
    - Dst: mmio_config_writeb
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:103,1
    - Dst: mmio_config_writew
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:106,1
    - Dst: mmio_config_writel
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - seg
    - bus
    - devfn
    - reg
    - len
    - value
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - int
    - int
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: pci_mmcfg_write
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 4
    functionsReached:
    - mmio_config_writeb
    - mmio_config_writew
    - mmio_config_writel
    - unlikely
    - pci_dev_base
    linkageType: ''
    returnType: int
    signature: "int pci_mmcfg_write(unsigned int seg, unsigned int bus,\n               unsigned
      int devfn, int reg, int len, u32 value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:127,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:128,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:128,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - cfg
    - idx
    - prot
    argTypes:
    - struct acpi_mcfg_allocation*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: mcfg_ioremap
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached:
    - map_pages_to_xen
    - maddr_to_mfn
    - mfn_add
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: "void *mcfg_ioremap(const struct acpi_mcfg_allocation *cfg,\n                                  unsigned
      long idx, unsigned int prot)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mcfg_ioremap
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:144,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:146,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:150,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:153,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:153,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:154,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:154,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:155,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: pci_mmcfg_arch_enable
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached:
    - PCI_BDF
    - rangeset_add_range
    - printk
    - mcfg_ioremap
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int pci_mmcfg_arch_enable(unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mcfg_ioremap
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:175,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: pci_mmcfg_arch_disable
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached:
    - printk
    - mcfg_ioremap
    linkageType: ''
    returnType: int
    signature: int pci_mmcfg_arch_disable(unsigned int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:190,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:190,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:192,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:192,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - mfn
    - seg
    - bdf
    argTypes:
    - unsigned long
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 201
    functionName: pci_mmcfg_decode
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 1
    functionsReached:
    - PCI_BDF
    - PFN_DOWN
    linkageType: ''
    returnType: bool
    signature: bool pci_mmcfg_decode(unsigned long mfn, unsigned int *seg, unsigned
      int *bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_decode
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:207,1
    - Dst: pci_get_ro_map
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:208,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - mfn
    - seg
    - bdf
    argTypes:
    - unsigned long
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: pci_ro_mmcfg_decode
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 1
    functionsReached:
    - pci_get_ro_map
    - test_bit
    - pci_mmcfg_decode
    linkageType: ''
    returnType: bool
    signature: bool pci_ro_mmcfg_decode(unsigned long mfn, unsigned int *seg, unsigned
      int *bdf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:219,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 233
    functionName: pci_mmcfg_arch_init
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    functionUses: 0
    functionsReached:
    - printk
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int pci_mmcfg_arch_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:38,1
    - Dst: strchr
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:40,1
    - Dst: parse_bool
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:42,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:50,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 62
    functionName: parse_mmcfg
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - strchr
    - cmdline_strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_mmcfg(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:68,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:68,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: pci_mmcfg_e7520
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - PCI_SBDF
    - xzalloc
    linkageType: ''
    returnType: char
    signature: char *__init cf_check pci_mmcfg_e7520(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:93,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:93,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 139
    functionName: pci_mmcfg_intel_945
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - pci_conf_read32
    - xzalloc
    linkageType: ''
    returnType: char
    signature: char *__init cf_check pci_mmcfg_intel_945(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rdmsr_safe
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:152,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:178,1
    - Dst: pci_add_segment
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 192
    functionName: pci_mmcfg_amd_fam10h
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - pci_add_segment
    - xmalloc_array
    - rdmsr_safe
    linkageType: ''
    returnType: char
    signature: char *__init cf_check pci_mmcfg_amd_fam10h(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:218,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:218,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:225,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:225,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:235,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:244,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:244,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:251,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:251,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:275,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 279
    functionName: pci_mmcfg_nvidia_mcp55
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - xmalloc_array
    - pci_conf_read32
    - xfree
    linkageType: ''
    returnType: char
    signature: char *__init cf_check pci_mmcfg_nvidia_mcp55(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:314,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:317,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:317,1
    - Dst: probe
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:323,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 332
    functionName: pci_mmcfg_check_hostbridge
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - PCI_SBDF
    - pci_conf_read32
    - printk
    - probe
    linkageType: ''
    returnType: int
    signature: int pci_mmcfg_check_hostbridge(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: e820_all_mapped
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:341,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:348,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - addr
    - size
    - i
    - cfg
    argTypes:
    - u64
    - u64
    - int
    - typeof*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 363
    functionName: is_mmconf_reserved
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - e820_all_mapped
    - printk
    linkageType: ''
    returnType: int
    signature: "int is_mmconf_reserved(\n    u64 addr, u64 size, int i,\n    typeof(pci_mmcfg_config[0])
      *cfg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:367,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:385,1
    - Dst: is_mmconf_reserved
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:391,1
    - Dst: pci_mmcfg_arch_enable
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:392,1
    - Dst: pci_mmcfg_arch_disable
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 400
    functionName: pci_mmcfg_reject_broken
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 0
    functionsReached:
    - pci_mmcfg_arch_enable
    - pci_mmcfg_arch_disable
    - typeof
    - printk
    - is_mmconf_reserved
    linkageType: ''
    returnType: bool
    signature: bool pci_mmcfg_reject_broken(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pci_mmcfg_check_hostbridge
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:417,1
    - Dst: pci_mmcfg_arch_init
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:420,1
    - Dst: pci_mmcfg_arch_enable
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:422,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:425,1
    - Dst: pci_mmcfg_arch_init
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:426,1
    - Dst: pci_mmcfg_reject_broken
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 437
    functionName: acpi_mmcfg_init
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 1
    functionsReached:
    - pci_mmcfg_arch_enable
    - pci_mmcfg_reject_broken
    - acpi_table_parse
    - pci_mmcfg_check_hostbridge
    - pci_mmcfg_arch_init
    linkageType: ''
    returnType: void
    signature: void acpi_mmcfg_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:455,1
    - Dst: pci_mmcfg_arch_enable
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:464,1
    - Dst: pci_mmcfg_arch_disable
      Src: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c:466,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 5
    argNames:
    - address
    - segment
    - start_bus
    - end_bus
    - flags
    argTypes:
    - uint64_t
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: pci_mmcfg_reserved
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    functionUses: 1
    functionsReached:
    - pci_mmcfg_arch_enable
    - pci_mmcfg_arch_disable
    - printk
    linkageType: ''
    returnType: int
    signature: "int pci_mmcfg_reserved(uint64_t address, unsigned int segment,\n                       unsigned
      int start_bus, unsigned int end_bus,\n                       unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:18,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - v
    argTypes:
    - void*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: runstate_area_populate
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/domain.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - XLAT_vcpu_runstate_info
    linkageType: ''
    returnType: void
    signature: void runstate_area_populate(void *map, struct vcpu *v)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:38,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:51,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:55,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:59,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:63,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:69,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:70,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:72,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:82,1
    - Dst: map_guest_area
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:85,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:90,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:101,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:105,1
    - Dst: guest_from_compat_handle
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:109,1
    - Dst: force_update_vcpu_system_time
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:111,1
    - Dst: do_vcpu_op
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:119,1
    - Dst: compat_common_vcpu_op
      Src: /src/xen/xen/arch/x86/x86_64/domain.c:123,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - cmd
    - vcpuid
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 128
    functionName: compat_vcpu_op
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/domain.c
    functionUses: 0
    functionsReached:
    - do_vcpu_op
    - domain_vcpu
    - copy_from_guest
    - compat_common_vcpu_op
    - hypercall_create_continuation
    - force_update_vcpu_system_time
    - __copy_to_guest
    - guest_from_compat_handle
    - vcpu_runstate_get
    - compat_handle_okay
    - map_guest_area
    - XLAT_vcpu_runstate_info
    linkageType: ''
    returnType: int
    signature: int compat_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: do_platform_op
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_platform_op(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: efi_runtime_call
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: efi_runtime_call(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: _XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: _XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE_PARAM(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: mmio_config_readb
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char mmio_config_readb(void __iomem *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: mmio_config_readw
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short mmio_config_readw(void __iomem *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: mmio_config_readl
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mmio_config_readl(void __iomem *pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - val
    argTypes:
    - void*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: mmio_config_writeb
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmio_config_writeb(void __iomem *pos, u8 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - val
    argTypes:
    - void*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: mmio_config_writew
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmio_config_writew(void __iomem *pos, u16 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - val
    argTypes:
    - void*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: mmio_config_writel
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconfig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmio_config_writel(void __iomem *pos, u32 val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pagetable_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:64,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:70,1
    - Dst: is_canonical_address
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:70,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:73,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:73,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:74,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:75,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:76,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:79,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:80,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:81,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:82,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:83,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:83,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:83,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:85,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:87,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:91,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:91,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:92,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:93,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:94,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:95,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:95,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:95,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:97,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:99,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:103,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:103,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:104,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:105,1
    - Dst: l1e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:106,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:107,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:107,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:107,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:111,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 112
    functionName: do_page_walk
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 2
    functionsReached:
    - l3e_get_pfn
    - PFN_DOWN
    - is_pv_vcpu
    - map_domain_page
    - l1e_get_pfn
    - l3_table_offset
    - mfn_valid
    - l3e_get_flags
    - l1_table_offset
    - is_canonical_address
    - l2e_get_pfn
    - l1e_get_flags
    - l4_table_offset
    - map_l3t_from_l4e
    - _mfn
    - l2e_get_flags
    - unmap_domain_page
    - l4e_get_flags
    - l2_table_offset
    - pagetable_get_pfn
    linkageType: ''
    returnType: void
    signature: void *do_page_walk(struct vcpu *v, unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pfn
    - info
    argTypes:
    - unsigned long
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: hotadd_mem_valid
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hotadd_mem_valid(unsigned long pfn, struct mem_hotadd_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:133,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: alloc_hotadd_mfn
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - _mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t alloc_hotadd_mfn(struct mem_hotadd_info *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:151,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:151,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:151,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:153,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:163,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:163,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - spfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 169
    functionName: m2p_mapped
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - l2e_from_l3e
    - l4_table_offset
    - l3_table_offset
    - l2_table_offset
    - l3e_from_l4e
    - l3e_get_flags
    linkageType: ''
    returnType: int
    signature: int m2p_mapped(unsigned long spfn)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:184,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:184,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:185,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:186,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:188,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:191,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:191,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:192,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:194,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:201,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:201,1
    - Dst: hotadd_mem_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:203,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:203,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:203,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:204,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:212,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:212,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:213,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:214,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:216,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:216,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:217,1
    - Dst: l2e_get_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:219,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:223,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:223,1
    - Dst: hotadd_mem_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:225,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:225,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:225,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 230
    functionName: share_hotadd_m2p_table
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - l2e_from_l3e
    - mfn_to_page
    - l4_table_offset
    - mfn_x
    - l3_table_offset
    - l2e_get_mfn
    - mfn_add
    - l2_table_offset
    - l3e_from_l4e
    - l3e_get_flags
    - hotadd_mem_valid
    - share_xen_page_with_privileged_guests
    linkageType: ''
    returnType: int
    signature: int share_hotadd_m2p_table(struct mem_hotadd_info *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:246,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:248,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:250,1
    - Dst: hotadd_mem_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:252,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:256,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:257,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 265
    functionName: destroy_compat_m2p_mapping
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - l2e_write
    - l2_table_offset
    - destroy_xen_mappings
    - hotadd_mem_valid
    - l2e_empty
    - l2e_get_pfn
    linkageType: ''
    returnType: void
    signature: void destroy_compat_m2p_mapping(struct mem_hotadd_info *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:273,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:274,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:288,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:288,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:289,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:289,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:296,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:296,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:297,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:298,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:302,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:306,1
    - Dst: hotadd_mem_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:307,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:309,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:311,1
    - Dst: l2e_empty
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:311,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:315,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:318,1
    - Dst: destroy_compat_m2p_mapping
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:320,1
    - Dst: flush_tlb_all
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 325
    functionName: destroy_m2p_mapping
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - l2e_get_flags
    - l2e_get_pfn
    - l2e_write
    - unmap_domain_page
    - map_l2t_from_l3e
    - destroy_compat_m2p_mapping
    - l4_table_offset
    - flush_tlb_all
    - map_l3t_from_l4e
    - l3_table_offset
    - l2_table_offset
    - destroy_xen_mappings
    - l3e_get_flags
    - hotadd_mem_valid
    - l2e_empty
    - UNMAP_DOMAIN_PAGE
    linkageType: ''
    returnType: void
    signature: void destroy_m2p_mapping(struct mem_hotadd_info *info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:358,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:358,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:364,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:367,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:371,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:371,1
    - Dst: alloc_hotadd_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:376,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:377,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:382,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:384,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:384,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 389
    functionName: setup_compat_m2p_table
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - ISOLATE_LSB
    - l2e_get_flags
    - l2e_write
    - _mfn
    - alloc_hotadd_mfn
    - mfn_valid
    - l2_table_offset
    - BUILD_BUG_ON
    - map_pages_to_xen
    - memset
    - l2e_from_mfn
    linkageType: ''
    returnType: int
    signature: int setup_compat_m2p_table(struct mem_hotadd_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: MFN
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MFN(x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:403,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:403,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:403,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:405,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:406,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:418,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:418,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:426,1
    - Dst: m2p_mapped
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:428,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:445,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:445,1
    - Dst: alloc_hotadd_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:449,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:451,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:458,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:461,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:461,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:461,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:465,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:465,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:467,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:467,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:472,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:479,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:479,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:480,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:485,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:485,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:485,1
    - Dst: setup_compat_m2p_table
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:493,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:495,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:496,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 498
    functionName: setup_m2p_table
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - alloc_mapped_pagetable
    - BUILD_BUG_ON
    - l2e_from_mfn
    - l2e_write
    - l3_table_offset
    - mfn_valid
    - m2p_mapped
    - map_pages_to_xen
    - setup_compat_m2p_table
    - l3e_get_flags
    - l3e_write
    - l4_table_offset
    - map_l3t_from_l4e
    - _mfn
    - ASSERT
    - memset
    - UNMAP_DOMAIN_PAGE
    - ISOLATE_LSB
    - unmap_domain_page
    - map_l2t_from_l3e
    - l4e_get_flags
    - alloc_hotadd_mfn
    - l2_table_offset
    - l3e_from_mfn
    linkageType: ''
    returnType: int
    signature: int setup_m2p_table(struct mem_hotadd_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: MFN
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MFN(x)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: __va
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:514,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:517,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:517,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:520,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:524,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:525,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:525,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:526,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:531,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:534,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:534,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:535,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:546,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:550,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:563,1
    - Dst: MFN
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:563,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:564,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:570,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:570,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:578,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:581,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:583,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:587,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:590,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:590,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:592,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:592,1
    - Dst: l3e_from_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:593,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:602,1
    - Dst: MFN
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:602,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:603,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:605,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:605,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:611,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:616,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:618,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:622,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:627,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:629,1
    - Dst: l3e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:633,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:633,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:634,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:636,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:636,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:640,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:640,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:646,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:647,1
    - Dst: alloc_xen_pagetable
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:652,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:653,1
    - Dst: map_domain_page_global
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:655,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:656,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:673,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:679,1
    - Dst: MFN
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:679,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:680,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:682,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:682,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:688,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:691,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:693,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:697,1
    - Dst: l2e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:701,1
    - Dst: l2e_from_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:701,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:709,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:709,1
    - Dst: l4e_from_paddr
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:710,1
    - Dst: __pa
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:710,1
    - Dst: panic
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:714,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 715
    functionName: paging_init
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 2
    functionsReached:
    - alloc_mapped_pagetable
    - __pa
    - BUILD_BUG_ON
    - alloc_domheap_pages
    - mfn_to_nid
    - __va
    - page_to_mfn
    - l3e_from_page
    - l2e_write
    - MFN
    - l3_table_offset
    - mfn_valid
    - MEMF_node
    - map_pages_to_xen
    - mfn_eq
    - l4e_write
    - l3e_write
    - l4_table_offset
    - panic
    - _mfn
    - map_domain_page_global
    - l4e_from_mfn
    - ASSERT
    - memset
    - UNMAP_DOMAIN_PAGE
    - l4e_from_paddr
    - l2e_from_page
    - l4e_get_flags
    - clear_page
    - alloc_xen_pagetable
    - l2_table_offset
    - l3e_from_mfn
    linkageType: ''
    returnType: void
    signature: void paging_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: MFN
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MFN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: MFN
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MFN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:719,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:719,1
    - Dst: l4e_write
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:722,1
    - Dst: l4e_empty
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:722,1
    - Dst: flush_local
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:723,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:729,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: zap_low_mappings
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached:
    - l4e_write
    - l4e_empty
    - flush_local
    - BUG_ON
    - num_online_cpus
    - map_pages_to_xen
    - maddr_to_mfn
    linkageType: ''
    returnType: void
    signature: void zap_low_mappings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_perdomain_mapping
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:735,1
    - Dst: ARG_XLAT_START
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:735,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:736,1
    - Dst: NIL
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: setup_compat_arg_xlat
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 4
    functionsReached:
    - NIL
    - ARG_XLAT_START
    - create_perdomain_mapping
    - PFN_UP
    linkageType: ''
    returnType: int
    signature: int setup_compat_arg_xlat(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_perdomain_mapping
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:742,1
    - Dst: ARG_XLAT_START
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:742,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 744
    functionName: free_compat_arg_xlat
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 5
    functionsReached:
    - PFN_UP
    - destroy_perdomain_mapping
    - ARG_XLAT_START
    linkageType: ''
    returnType: void
    signature: void free_compat_arg_xlat(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:753,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:754,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:756,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:757,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:760,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:764,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:764,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:765,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:766,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:767,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:774,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:774,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:775,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:775,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:777,1
    - Dst: hotadd_mem_valid
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:780,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:780,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:781,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:790,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:790,1
    - Dst: l1e_from_l2e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:790,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:790,1
    - Dst: flush_tlb_all
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 798
    functionName: cleanup_frame_table
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - l2e_get_flags
    - l2e_from_l3e
    - l1e_from_l2e
    - mfn_to_page
    - l4_table_offset
    - flush_tlb_all
    - _mfn
    - l3_table_offset
    - l2_table_offset
    - l3e_from_l4e
    - ASSERT
    - destroy_xen_mappings
    - l3e_get_flags
    - hotadd_mem_valid
    - memset
    - l1_table_offset
    - l2e_get_pfn
    linkageType: ''
    returnType: void
    signature: void cleanup_frame_table(struct mem_hotadd_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:808,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:809,1
    - Dst: alloc_hotadd_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:813,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:814,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - start
    - end
    - info
    argTypes:
    - void*
    - void*
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 822
    functionName: setup_frametable_chunk
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - memset
    - map_pages_to_xen
    - ASSERT
    - alloc_hotadd_mfn
    linkageType: ''
    returnType: int
    signature: "int setup_frametable_chunk(void *start, void *end,\n                                  struct
      mem_hotadd_info *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:829,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:830,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:832,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:832,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:833,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:835,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:835,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:836,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:838,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:839,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:848,1
    - Dst: setup_frametable_chunk
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:851,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:851,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:852,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:857,1
    - Dst: memset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:860,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:860,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:861,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:861,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 863
    functionName: extend_frame_table
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - find_next_zero_bit
    - mfn_to_page
    - find_next_bit
    - _mfn
    - mfn_to_pdx
    - DIV_ROUND_UP
    - ASSERT
    - memset
    - test_bit
    - pdx_to_page
    - setup_frametable_chunk
    linkageType: ''
    returnType: int
    signature: int extend_frame_table(struct mem_hotadd_info *info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:871,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:872,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:879,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:879,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:880,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:881,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:883,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:886,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:886,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:887,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:889,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:893,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:897,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:898,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:898,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:906,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:906,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:907,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:908,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:910,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:910,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:911,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:913,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:916,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:917,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:917,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:924,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:925,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:929,1
    - Dst: l4e_add_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:931,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 935
    functionName: subarch_init_memory
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached:
    - l2e_get_flags
    - l2e_from_l3e
    - mfn_to_page
    - l4_table_offset
    - l4e_get_flags
    - _mfn
    - l3_table_offset
    - l4e_add_flags
    - BUILD_BUG_ON
    - l2_table_offset
    - l3e_from_l4e
    - l3e_get_flags
    - l3e_get_pfn
    - l2e_get_pfn
    - share_xen_page_with_privileged_guests
    linkageType: ''
    returnType: void
    signature: void subarch_init_memory(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:950,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:953,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:954,1
    - Dst: l3e_from_l4e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:960,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:960,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:961,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:962,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:964,1
    - Dst: l2e_from_l3e
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:966,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:966,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:967,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:968,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:974,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:975,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:977,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:978,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:984,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:993,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1003,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1004,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1005,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1008,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1009,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1015,1
    - Dst: mem_sharing_get_nr_saved_mfns
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1021,1
    - Dst: mem_sharing_get_nr_shared_mfns
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1024,1
    - Dst: mem_paging_memop
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1028,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1028,1
    - Dst: mem_sharing_memop
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1033,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1033,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 937
    functionDepth: 13
    functionLinenumber: 937
    functionLinenumberEnd: 1042
    functionName: subarch_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached:
    - l2e_from_l3e
    - copy_from_guest
    - BUILD_BUG_ON
    - copy_to_guest_offset
    - l3e_from_l4e
    - l3e_get_pfn
    - mem_sharing_get_nr_saved_mfns
    - l3_table_offset
    - mem_sharing_get_nr_shared_mfns
    - l3e_get_flags
    - mem_sharing_memop
    - guest_handle_cast
    - l2e_get_pfn
    - l4_table_offset
    - ASSERT
    - mem_paging_memop
    - l2e_get_flags
    - l2_table_offset
    - __copy_to_guest
    linkageType: ''
    returnType: long
    signature: long subarch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_mode
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1048,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1048,1
    - Dst: HYPERVISOR_COMPAT_VIRT_START
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1051
    functionName: pagefault_by_memadd
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 1
    functionsReached:
    - is_pv_32bit_domain
    - guest_mode
    - HYPERVISOR_COMPAT_VIRT_START
    linkageType: ''
    returnType: int
    signature: int pagefault_by_memadd(unsigned long addr, struct cpu_user_regs *regs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1065,1
    - Dst: HYPERVISOR_COMPAT_VIRT_START
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1068,1
    - Dst: read_cr3
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1072,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1074,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1074,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1078,1
    - Dst: l4e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1081,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1083,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1083,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1087,1
    - Dst: l3e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1090,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1091,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1091,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1093,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1095,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1098,1
    - Dst: COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1099,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1102,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1105,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1105,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1113,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1115,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1117,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - addr
    - regs
    argTypes:
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1120
    functionName: handle_memadd_fault
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - l2e_get_flags
    - is_pv_32bit_domain
    - map_domain_page
    - unmap_domain_page
    - HYPERVISOR_COMPAT_VIRT_START
    - l4e_get_flags
    - l4e_get_pfn
    - _mfn
    - COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
    - l2_table_offset
    - l3e_get_flags
    - l3e_get_pfn
    - memcpy
    linkageType: ''
    returnType: int
    signature: int handle_memadd_fault(unsigned long addr, struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1133,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1133,1
    - Dst: init_domheap_pages
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1137,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1137,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct mem_hotadd_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1140
    functionName: transfer_pages_to_heap
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - init_domheap_pages
    - pfn_to_paddr
    - _mfn
    - mfn_to_page
    linkageType: ''
    returnType: int
    signature: int transfer_pages_to_heap(struct mem_hotadd_info *info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1145,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1151,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1157,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1161,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1163,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1167,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1170,1
    - Dst: min_t
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1185,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1191,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - spfn
    - epfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1200
    functionName: mem_hotadd_check
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 0
    functionsReached:
    - find_next_zero_bit
    - find_next_bit
    - pfn_to_pdx
    - pdx_is_region_compressible
    - pfn_to_paddr
    - min_t
    linkageType: ''
    returnType: int
    signature: int mem_hotadd_check(unsigned long spfn, unsigned long epfn)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1215,1
    - Dst: mem_hotadd_check
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1217,1
    - Dst: setup_node
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1220,1
    - Dst: valid_numa_range
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1223,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1225,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1231,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1234,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1234,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1234,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1235,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1243,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1243,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1243,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1249,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1250,1
    - Dst: node_online
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1251,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1255,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1256,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1257,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1258,1
    - Dst: node_set_online
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1259,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1263,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1264,1
    - Dst: node_end_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1265,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1266,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1266,1
    - Dst: extend_frame_table
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1273,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1281,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1285,1
    - Dst: setup_m2p_table
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1286,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1296,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1297,1
    - Dst: need_iommu_pt_sync
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1298,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1301,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1301,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1301,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1309,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1309,1
    - Dst: share_hotadd_m2p_table
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1318,1
    - Dst: transfer_pages_to_heap
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1319,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1322,1
    - Dst: destroy_m2p_mapping
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1327,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1330,1
    - Dst: cleanup_frame_table
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1332,1
    - Dst: node_set_offline
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1334,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1335,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1336,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1338,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1338,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1339,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 3
    argNames:
    - spfn
    - epfn
    - pxm
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1206
    functionDepth: 4
    functionLinenumber: 1206
    functionLinenumberEnd: 1342
    functionName: memory_add
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 5
    functionsReached:
    - node_online
    - virt_to_mfn
    - need_iommu_pt_sync
    - share_hotadd_m2p_table
    - valid_numa_range
    - iommu_use_hap_pt
    - node_set_online
    - set_pdx_range
    - _dfn
    - node_start_pfn
    - destroy_m2p_mapping
    - transfer_pages_to_heap
    - NODE_DATA
    - map_pages_to_xen
    - node_spanned_pages
    - destroy_xen_mappings
    - printk
    - dprintk
    - extend_frame_table
    - is_iommu_enabled
    - mem_hotadd_check
    - _mfn
    - node_end_pfn
    - min
    - iommu_legacy_map
    - setup_node
    - mfn_to_virt
    - setup_m2p_table
    - iommu_legacy_unmap
    - pfn_to_pdx
    - node_set_offline
    - cleanup_frame_table
    linkageType: ''
    returnType: int
    signature: int memory_add(unsigned long spfn, unsigned long epfn, unsigned int
      pxm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1348,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1353,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1353,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/x86/x86_64/mm.c:1353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - mfn
    - pfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1364
    functionName: set_gpfn_from_mfn
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mm.c
    functionUses: 18
    functionsReached:
    - page_get_owner
    - mfn_to_page
    - _mfn
    - unlikely
    linkageType: ''
    returnType: void
    signature: void set_gpfn_from_mfn(unsigned long mfn, unsigned long pfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:42,1
    - Dst: xlat_page_left_size
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - xlat_page_current
    - size
    argTypes:
    - unsigned long*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: xlat_malloc
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
    functionUses: 0
    functionsReached:
    - xlat_page_left_size
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *xlat_malloc(unsigned long *xlat_page_current, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_processor_cx
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xen_state
    - state
    argTypes:
    - xen_processor_cx_t*
    - compat_processor_cx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: copy_from_compat_state
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
    functionUses: 0
    functionsReached:
    - XLAT_processor_cx
    linkageType: ''
    returnType: int
    signature: "int copy_from_compat_state(xen_processor_cx_t *xen_state,\n                                  compat_processor_cx_t
      *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: XLAT_processor_cx_HNDL_dp
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_processor_cx_HNDL_dp(_d_, _s_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_malloc_init
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:71,1
    - Dst: xlat_malloc_array
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:73,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:75,1
    - Dst: XLAT_processor_power
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:107,1
    - Dst: set_cx_pminfo
      Src: /src/xen/xen/arch/x86/x86_64/cpu_idle.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - acpi_id
    - power
    argTypes:
    - uint32_t
    - struct compat_processor_power*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 111
    functionName: compat_set_cx_pminfo
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
    functionUses: 0
    functionsReached:
    - xlat_malloc_array
    - XLAT_processor_power
    - xlat_malloc_init
    - set_cx_pminfo
    - unlikely
    linkageType: ''
    returnType: long
    signature: "long compat_set_cx_pminfo(uint32_t acpi_id,\n                          struct
      compat_processor_power *power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: XLAT_processor_power_HNDL_states
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_processor_power_HNDL_states(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: BLANK
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLANK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sym
    - ','
    - _str
    - ','
    - _mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: OFFSET
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(_sym, _str, _mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:56,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:57,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:67,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:68,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:69,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:70,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:76,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:77,1
    - Dst: OFFSET_EF
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:79,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:80,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:112,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:113,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:114,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:115,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:120,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:127,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:132,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:137,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:141,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:147,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:166,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:167,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:173,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:174,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:180,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:184,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:187,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:188,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:191,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:191,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:192,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:193,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:196,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:198,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:199,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:200,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:201,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:203,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:204,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:205,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:206,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:207,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:208,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:209,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:210,1
    - Dst: OFFSET
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:211,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:212,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:215,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:235,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/x86/x86_64/asm-offsets.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 156
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 238
    functionName: __dummy__
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
    functionUses: 0
    functionsReached:
    - DEFINE
    - ilog2
    - OFFSET_EF
    - BLANK
    - OFFSET
    linkageType: ''
    returnType: void
    signature: void __dummy__(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sym
    - ','
    - mem
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: OFFSET_EF
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_EF(sym, mem, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: do_physdev_op_compat
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_physdev_op_compat(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: _XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: _XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE_PARAM(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: BASE_VALID
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASE_VALID(b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:48,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:55,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:55,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:64,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:69,1
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:77,1
    - Dst: max
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:78,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:86,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:86,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:92,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:92,1
    - Dst: BASE_VALID
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:123,1
    - Dst: BASE_VALID
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:126,1
    - Dst: BASE_VALID
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:132,1
    - Dst: e820_add_range
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:138,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 39
    functionDepth: 5
    functionLinenumber: 39
    functionLinenumberEnd: 140
    functionName: get_fam10h_pci_mmconf_base
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    functionUses: 0
    functionsReached:
    - max
    - BASE_VALID
    - ARRAY_SIZE
    - PCI_SBDF
    - rdmsrl
    - e820_add_range
    - pci_conf_read32
    linkageType: ''
    returnType: void
    signature: void get_fam10h_pci_mmconf_base(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rdmsrl
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:150,1
    - Dst: get_fam10h_pci_mmconf_base
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:170,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:179,1
    - Dst: wrmsrl
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 186
    functionName: fam10h_check_enable_mmcfg
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    functionUses: 1
    functionsReached:
    - get_fam10h_pci_mmconf_base
    - wrmsrl
    - rdmsrl
    - printk
    linkageType: ''
    returnType: void
    signature: void fam10h_check_enable_mmcfg(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dmi_check_system
      Src: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: check_enable_amd_mmconf_dmi
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    functionUses: 1
    functionsReached:
    - dmi_check_system
    linkageType: ''
    returnType: void
    signature: void check_enable_amd_mmconf_dmi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_malloc_init
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:39,1
    - Dst: xlat_malloc_array
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:41,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:43,1
    - Dst: XLAT_processor_performance
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:52,1
    - Dst: set_px_pminfo
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - acpi_id
    - perf
    argTypes:
    - uint32_t
    - struct compat_processor_performance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: compat_set_px_pminfo
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpufreq.c
    functionUses: 0
    functionsReached:
    - xlat_malloc_array
    - set_px_pminfo
    - xlat_malloc_init
    - unlikely
    - XLAT_processor_performance
    linkageType: ''
    returnType: int
    signature: "int compat_set_px_pminfo(uint32_t acpi_id,\n                         struct
      compat_processor_performance *perf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: XLAT_processor_performance_HNDL_states
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpufreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_processor_performance_HNDL_states(_d_, _s_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xlat_malloc_init
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:65,1
    - Dst: xlat_malloc_array
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:67,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:69,1
    - Dst: XLAT_processor_cppc
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:72,1
    - Dst: set_cppc_pminfo
      Src: /src/xen/xen/arch/x86/x86_64/cpufreq.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - acpi_id
    - cppc_data
    argTypes:
    - unsigned int
    - struct compat_processor_cppc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 75
    functionName: compat_set_cppc_pminfo
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/cpufreq.c
    functionUses: 0
    functionsReached:
    - xlat_malloc_array
    - xlat_malloc_init
    - unlikely
    - set_cppc_pminfo
    - XLAT_processor_cppc
    linkageType: ''
    returnType: int
    signature: "int compat_set_cppc_pminfo(unsigned int acpi_id,\n                           const
      struct compat_processor_cppc *cppc_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:55,1
    - Dst: dmi_get_date
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:59,1
    - Dst: printk
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - mcfg
    - cfg
    argTypes:
    - struct acpi_table_mcfg*
    - struct acpi_mcfg_allocation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: acpi_mcfg_check_entry
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c
    functionUses: 0
    functionsReached:
    - strncmp
    - dmi_get_date
    - printk
    linkageType: ''
    returnType: int
    signature: "int acpi_mcfg_check_entry(struct acpi_table_mcfg *mcfg,\n                                        struct
      acpi_mcfg_allocation *cfg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:92,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:101,1
    - Dst: acpi_mcfg_check_entry
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:105,1
    - Dst: xfree
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:106,1
    - Dst: pci_add_segment
      Src: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: acpi_parse_mcfg
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - acpi_mcfg_check_entry
    - pci_add_segment
    - xfree
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_parse_mcfg(struct acpi_table_header *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/x86_64/machine_kexec.c:17,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/x86/x86_64/machine_kexec.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: machine_kexec_get_xen
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/machine_kexec.c
    functionUses: 1
    functionsReached:
    - virt_to_maddr
    linkageType: ''
    returnType: int
    signature: int machine_kexec_get_xen(xen_kexec_range_t *range)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:28,1
    - Dst: XLAT_foreign_memory_map
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:33,1
    - Dst: arch_memory_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:36,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:36,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:47,1
    - Dst: XLAT_memory_map
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:52,1
    - Dst: arch_memory_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:55,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:55,1
    - Dst: XLAT_memory_map
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:60,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:62,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:74,1
    - Dst: XLAT_pod_target
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:77,1
    - Dst: arch_memory_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:79,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:79,1
    - Dst: hypercall_xlat_continuation
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:84,1
    - Dst: XLAT_pod_target
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:86,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:88,1
    - Dst: hypercall_cancel_continuation
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:91,1
    - Dst: MACH2PHYS_COMPAT_VIRT_START
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:102,1
    - Dst: MACH2PHYS_COMPAT_NR_ENTRIES
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:104,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:110,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:125,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:135,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:136,1
    - Dst: l2e_get_pfn
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:137,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:140,1
    - Dst: copy_to_compat_offset
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:141,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:147,1
    - Dst: mem_sharing_get_nr_saved_mfns
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:154,1
    - Dst: mem_sharing_get_nr_shared_mfns
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:157,1
    - Dst: mem_paging_memop
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:161,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:161,1
    - Dst: mem_sharing_memop
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:166,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:166,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 12
    functionDepth: 13
    functionLinenumber: 12
    functionLinenumberEnd: 175
    functionName: compat_arch_memory_op
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached:
    - arch_memory_op
    - copy_from_guest
    - copy_to_compat_offset
    - MACH2PHYS_COMPAT_VIRT_START
    - mem_sharing_get_nr_saved_mfns
    - hypercall_xlat_continuation
    - mem_sharing_get_nr_shared_mfns
    - XLAT_foreign_memory_map
    - copy_to_guest
    - guest_handle_cast
    - mem_sharing_memop
    - l2e_get_pfn
    - XLAT_pod_target
    - guest_handle_from_ptr
    - MACH2PHYS_COMPAT_NR_ENTRIES
    - ASSERT
    - mem_paging_memop
    - hypercall_cancel_continuation
    - l2e_get_flags
    - XLAT_memory_map
    - l2_table_offset
    - __copy_to_guest
    linkageType: ''
    returnType: int
    signature: int compat_arch_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: XLAT_memory_map_HNDL_buffer
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_memory_map_HNDL_buffer(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: XLAT_memory_map_HNDL_buffer
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_memory_map_HNDL_buffer(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: XLAT_memory_map_HNDL_buffer
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_memory_map_HNDL_buffer(_d_, _s_)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:186,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:187,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:188,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:190,1
    - Dst: likely
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:191,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:191,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:193,1
    - Dst: do_mmuext_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:194,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:200,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:200,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:203,1
    - Dst: min
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:211,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:217,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:217,1
    - Dst: XLAT_mmuext_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:271,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:277,1
    - Dst: do_mmuext_op
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:281,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:285,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:288,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:295,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:296,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:297,1
    - Dst: guest_handle_subtract_offset
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:298,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:302,1
    - Dst: hypercall_xlat_continuation
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:302,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:310,1
    - Dst: hypercall_xlat_continuation
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:310,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:311,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/x86/x86_64/compat/mm.c:314,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 2
    argNames:
    - count
    - foreigndom
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 180
    functionDepth: 10
    functionLinenumber: 180
    functionLinenumberEnd: 326
    functionName: compat_mmuext_op
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - __copy_from_guest
    - XLAT_mmuext_op
    - hypercall_xlat_continuation
    - guest_handle_add_offset
    - guest_handle_okay
    - likely
    - set_xen_guest_handle
    - BUILD_BUG_ON
    - BUG_ON
    - min
    - guest_handle_subtract_offset
    - guest_handle_is_null
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - guest_handle_cast
    - do_mmuext_op
    linkageType: ''
    returnType: int
    signature: "int compat_mmuext_op(\n    XEN_GUEST_HANDLE_PARAM(void) arg, unsigned
      int count,\n    XEN_GUEST_HANDLE_PARAM(uint) pdone, unsigned int foreigndom)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: XLAT_mmuext_op_HNDL_arg2_vcpumask
    functionSourceFile: /src/xen/xen/arch/x86/x86_64/compat/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_mmuext_op_HNDL_arg2_vcpumask(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct intc_hw_operations*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: register_intc_ops
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void register_intc_ops(const struct intc_hw_operations *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intc_dt_preinit
      Src: /src/xen/xen/arch/riscv/intc.c:23,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/intc.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: intc_preinit
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - panic
    - intc_dt_preinit
    linkageType: ''
    returnType: void
    signature: void intc_preinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/xen/xen/arch/riscv/intc.c:30,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/intc.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: intc_init
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - panic
    - init
    linkageType: ''
    returnType: void
    signature: void intc_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:37,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:38,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/intc.c:38,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:39,1
    - Dst: set_irq_type
      Src: /src/xen/xen/arch/riscv/intc.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - type
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: intc_set_irq_type
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - set_irq_type
    linkageType: ''
    returnType: void
    signature: void intc_set_irq_type(struct irq_desc *desc, unsigned int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:47,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/intc.c:47,1
    - Dst: set_irq_priority
      Src: /src/xen/xen/arch/riscv/intc.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: intc_set_irq_priority
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - set_irq_priority
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: void
    signature: void intc_set_irq_priority(struct irq_desc *desc, unsigned int priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_interrupt
      Src: /src/xen/xen/arch/riscv/intc.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: intc_handle_external_irqs
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - handle_interrupt
    linkageType: ''
    returnType: void
    signature: void intc_handle_external_irqs(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:60,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:61,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/intc.c:61,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/intc.c:63,1
    - Dst: intc_set_irq_type
      Src: /src/xen/xen/arch/riscv/intc.c:67,1
    - Dst: intc_set_irq_priority
      Src: /src/xen/xen/arch/riscv/intc.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: intc_route_irq_to_xen
    functionSourceFile: /src/xen/xen/arch/riscv/intc.c
    functionUses: 0
    functionsReached:
    - intc_set_irq_type
    - ASSERT
    - spin_is_locked
    - intc_set_irq_priority
    linkageType: ''
    returnType: void
    signature: void intc_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/smp.c:21,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/arch/riscv/smp.c:21,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/riscv/smp.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: smp_send_event_check_mask
    functionSourceFile: /src/xen/xen/arch/riscv/smp.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - cpumask_subset
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void smp_send_event_check_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - curr
    - new
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: irq_validate_new_type
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool irq_validate_new_type(unsigned int curr, unsigned int new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/riscv/irq.c:30,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/riscv/irq.c:33,1
    - Dst: irq_validate_new_type
      Src: /src/xen/xen/arch/riscv/irq.c:35,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/riscv/irq.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - irq
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: irq_set_type
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - irq_validate_new_type
    - irq_to_desc
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int irq_set_type(unsigned int irq, unsigned int type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_irq
      Src: /src/xen/xen/arch/riscv/irq.c:53,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/irq.c:56,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/irq.c:59,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/riscv/irq.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - device
    - index
    argTypes:
    - struct dt_device_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: platform_get_irq
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 0
    functionsReached:
    - panic
    - irq_set_type
    - dt_device_get_irq
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: int platform_get_irq(const struct dt_device_node *device, int index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/irq.c:72,1
    - Dst: dev_id::dev_id
      Src: /src/xen/xen/arch/riscv/irq.c:81,1
    - Dst: smp_wmb::smp_wmb
      Src: /src/xen/xen/arch/riscv/irq.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - desc
    - irqflags
    - new
    argTypes:
    - struct irq_desc*
    - unsigned int
    - struct irqaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: _setup_irq
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - smp_wmb::smp_wmb
    - dev_id::dev_id
    linkageType: ''
    returnType: int
    signature: "int _setup_irq(struct irq_desc *desc, unsigned int irqflags,\n                      struct
      irqaction *new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/riscv/irq.c:101,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/riscv/irq.c:104,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/riscv/irq.c:110,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/irq.c:115,1
    - Dst: _setup_irq
      Src: /src/xen/xen/arch/riscv/irq.c:119,1
    - Dst: intc_route_irq_to_xen
      Src: /src/xen/xen/arch/riscv/irq.c:127,1
    - Dst: struct irq_desc*::handler::set_affinity
      Src: /src/xen/xen/arch/riscv/irq.c:136,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/riscv/irq.c:136,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/riscv/irq.c:136,1
    - Dst: struct irq_desc*::handler::startup
      Src: /src/xen/xen/arch/riscv/irq.c:138,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/riscv/irq.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - irq
    - irqflags
    - new
    argTypes:
    - unsigned int
    - unsigned int
    - struct irqaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 148
    functionName: setup_irq
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 4
    functionsReached:
    - _setup_irq
    - irq_to_desc
    - smp_processor_id
    - spin_lock_irqsave
    - struct irq_desc*::handler::startup
    - spin_unlock_irqrestore
    - printk
    - cpumask_of
    - intc_route_irq_to_xen
    - struct irq_desc*::handler::set_affinity
    linkageType: ''
    returnType: int
    signature: int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: arch_init_one_irq_desc
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_init_one_irq_desc(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/riscv/irq.c:163,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/riscv/irq.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: init_irq_data
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 1
    functionsReached:
    - irq_to_desc
    - init_one_irq_desc
    linkageType: ''
    returnType: int
    signature: int init_irq_data(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_irq_data
      Src: /src/xen/xen/arch/riscv/irq.c:178,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/irq.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: init_IRQ
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 1
    functionsReached:
    - panic
    - init_irq_data
    linkageType: ''
    returnType: void
    signature: void init_IRQ(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/riscv/irq.c:185,1
    - Dst: irq_enter
      Src: /src/xen/xen/arch/riscv/irq.c:188,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/irq.c:190,1
    - Dst: struct irq_desc*::handler::ack
      Src: /src/xen/xen/arch/riscv/irq.c:193,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/riscv/irq.c:202,1
    - Dst: struct irqaction*::handler
      Src: /src/xen/xen/arch/riscv/irq.c:205,1
    - Dst: struct irqaction*::handler
      Src: /src/xen/xen/arch/riscv/irq.c:208,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/riscv/irq.c:213,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/riscv/irq.c:219,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/irq.c:221,1
    - Dst: irq_exit
      Src: /src/xen/xen/arch/riscv/irq.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - regs
    - irq
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 223
    functionName: do_IRQ
    functionSourceFile: /src/xen/xen/arch/riscv/irq.c
    functionUses: 2
    functionsReached:
    - struct irq_desc*::handler::ack
    - struct irq_desc*::handler::end
    - spin_unlock
    - struct irqaction*::handler
    - irq_exit
    - irq_to_desc
    - irq_enter
    - spin_unlock_irq
    - spin_lock_irq
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void do_IRQ(struct cpu_user_regs *regs, unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - guest_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: IMSIC_HART_SIZE
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMSIC_HART_SIZE(guest_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: imsic_csr_write
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imsic_csr_write(c, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: imsic_csr_set
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imsic_csr_set(c, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: imsic_csr_clear
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imsic_csr_clear(c, v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imsic_csr_write
      Src: /src/xen/xen/arch/riscv/imsic.c:63,1
    - Dst: imsic_csr_write
      Src: /src/xen/xen/arch/riscv/imsic.c:64,1
    - Dst: imsic_csr_write
      Src: /src/xen/xen/arch/riscv/imsic.c:68,1
    - Dst: imsic_csr_write
      Src: /src/xen/xen/arch/riscv/imsic.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: imsic_ids_local_delivery
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - imsic_csr_write
    linkageType: ''
    returnType: void
    signature: void imsic_ids_local_delivery(bool enable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/riscv/imsic.c:83,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/riscv/imsic.c:89,1
    - Dst: imsic_csr_set
      Src: /src/xen/xen/arch/riscv/imsic.c:94,1
    - Dst: imsic_csr_clear
      Src: /src/xen/xen/arch/riscv/imsic.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - base_id
    - num_id
    - pend
    - val
    argTypes:
    - unsigned long
    - unsigned long
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: imsic_local_eix_update
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - imsic_csr_set
    - min
    - imsic_csr_clear
    linkageType: ''
    returnType: void
    signature: "void imsic_local_eix_update(unsigned long base_id, unsigned long num_id,\n
      \                                  bool pend, bool val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/imsic.c:111,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/riscv/imsic.c:111,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/imsic.c:113,1
    - Dst: imsic_local_eix_update
      Src: /src/xen/xen/arch/riscv/imsic.c:129,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/imsic.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 131
    functionName: imsic_irq_enable
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - imsic_local_eix_update
    - ASSERT
    - spin_lock
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void imsic_irq_enable(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/imsic.c:144,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/riscv/imsic.c:144,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/imsic.c:146,1
    - Dst: imsic_local_eix_update
      Src: /src/xen/xen/arch/riscv/imsic.c:147,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/imsic.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: imsic_irq_disable
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - imsic_local_eix_update
    - ASSERT
    - spin_lock
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void imsic_irq_disable(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: imsic_get_config
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct imsic_config
    signature: struct imsic_config *imsic_get_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_parse_phandle_with_args
      Src: /src/xen/xen/arch/riscv/imsic.c:164,1
    - Dst: dt_processor_hartid
      Src: /src/xen/xen/arch/riscv/imsic.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node
    - index
    - hartid
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: imsic_get_parent_hartid
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - dt_parse_phandle_with_args
    - dt_processor_hartid
    linkageType: ''
    returnType: int
    signature: "int imsic_get_parent_hartid(const struct dt_device_node *node,\n                                          unsigned
      int index,\n                                          unsigned long *hartid)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: dt_number_of_irq
      Src: /src/xen/xen/arch/riscv/imsic.c:188,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/imsic.c:190,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/riscv/imsic.c:191,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/arch/riscv/imsic.c:193,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/imsic.c:195,1
    - Dst: dt_property_read_u32_array
      Src: /src/xen/xen/arch/riscv/imsic.c:197,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/imsic.c:199,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/riscv/imsic.c:200,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/imsic.c:206,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/riscv/imsic.c:212,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/riscv/imsic.c:217,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/imsic.c:219,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:225,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:226,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/imsic.c:231,1
    - Dst: fls
      Src: /src/xen/xen/arch/riscv/imsic.c:234,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:238,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:239,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/imsic.c:244,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:250,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:251,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/imsic.c:257,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:262,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:263,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:269,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:270,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/imsic.c:275,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:277,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:285,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/riscv/imsic.c:292,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:295,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/riscv/imsic.c:296,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/imsic.c:301,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/imsic.c:304,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/riscv/imsic.c:310,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 3
    argNames:
    - node
    - nr_parent_irqs
    - nr_mmios
    argTypes:
    - struct dt_device_node*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 313
    functionName: imsic_parse_node
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - fls
    - dt_device_get_address
    - dt_property_read_u32
    - BIT
    - dt_node_full_name
    - xvzalloc_array
    - panic
    - xvfree
    - dt_property_read_u32_array
    - dt_number_of_irq
    - printk
    - dt_node_name
    linkageType: ''
    returnType: int
    signature: "int imsic_parse_node(const struct dt_device_node *node,\n                            unsigned
      int *nr_parent_irqs,\n                            unsigned int *nr_mmios)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: imsic_parse_node
      Src: /src/xen/xen/arch/riscv/imsic.c:333,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/arch/riscv/imsic.c:342,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/arch/riscv/imsic.c:349,1
    - Dst: IMSIC_HART_SIZE
      Src: /src/xen/xen/arch/riscv/imsic.c:361,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/riscv/imsic.c:363,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:367,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/imsic.c:373,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/imsic.c:376,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:381,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:389,1
    - Dst: imsic_get_parent_hartid
      Src: /src/xen/xen/arch/riscv/imsic.c:400,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:403,1
    - Dst: hartid_to_cpuid
      Src: /src/xen/xen/arch/riscv/imsic.c:408,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:419,1
    - Dst: num_possible_cpus
      Src: /src/xen/xen/arch/riscv/imsic.c:424,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:426,1
    - Dst: IMSIC_HART_SIZE
      Src: /src/xen/xen/arch/riscv/imsic.c:432,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/riscv/imsic.c:443,1
    - Dst: IMSIC_HART_SIZE
      Src: /src/xen/xen/arch/riscv/imsic.c:444,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:449,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/imsic.c:454,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:457,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/imsic.c:470,1
    - Dst: imsic_ids_local_delivery
      Src: /src/xen/xen/arch/riscv/imsic.c:476,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/riscv/imsic.c:480,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/riscv/imsic.c:485,1
    - Dst: xvfree
      Src: /src/xen/xen/arch/riscv/imsic.c:486,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 87
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 489
    functionName: imsic_init
    functionSourceFile: /src/xen/xen/arch/riscv/imsic.c
    functionUses: 0
    functionsReached:
    - dt_device_get_address
    - ROUNDUP
    - num_possible_cpus
    - BIT
    - xvzalloc_array
    - imsic_parse_node
    - IMSIC_HART_SIZE
    - IS_ALIGNED
    - xvfree
    - printk
    - hartid_to_cpuid
    - imsic_get_parent_hartid
    - imsic_ids_local_delivery
    linkageType: ''
    returnType: int
    signature: int imsic_init(const struct dt_device_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_shutdown
      Src: /src/xen/xen/arch/riscv/shutdown.c:8,1
    - Dst: unreachable
      Src: /src/xen/xen/arch/riscv/shutdown.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 16
    functionName: machine_halt
    functionSourceFile: /src/xen/xen/arch/riscv/shutdown.c
    functionUses: 1
    functionsReached:
    - sbi_shutdown
    - unreachable
    linkageType: ''
    returnType: void
    signature: void machine_halt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: machine_halt
      Src: /src/xen/xen/arch/riscv/shutdown.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - delay_millisecs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 27
    functionName: machine_restart
    functionSourceFile: /src/xen/xen/arch/riscv/shutdown.c
    functionUses: 1
    functionsReached:
    - machine_halt
    linkageType: ''
    returnType: void
    signature: void machine_restart(unsigned int delay_millisecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/domain.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 11
    functionName: continue_new_vcpu
    functionSourceFile: /src/xen/xen/arch/riscv/domain.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void continue_new_vcpu(struct vcpu *prev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vzalloc
      Src: /src/xen/xen/arch/riscv/domain.c:16,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/riscv/domain.c:27,1
    - Dst: arch_vcpu_destroy
      Src: /src/xen/xen/arch/riscv/domain.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 44
    functionName: arch_vcpu_create
    functionSourceFile: /src/xen/xen/arch/riscv/domain.c
    functionUses: 0
    functionsReached:
    - arch_vcpu_destroy
    - vzalloc
    - is_idle_vcpu
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_create(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vfree
      Src: /src/xen/xen/arch/riscv/domain.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: arch_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/riscv/domain.c
    functionUses: 1
    functionsReached:
    - vfree
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/domain.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/riscv/domain.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - ext
    - fid
    - arg0
    - arg1
    - arg2
    - arg3
    - arg4
    - arg5
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 52
    functionName: sbi_ecall
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sbiret
    signature: "struct sbiret sbi_ecall(unsigned long ext, unsigned long fid,\n                        unsigned
      long arg0, unsigned long arg1,\n                        unsigned long arg2,
      unsigned long arg3,\n                        unsigned long arg4, unsigned long
      arg5)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: sbi_err_map_xen_errno
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sbi_err_map_xen_errno(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: sbi_console_putchar
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_ecall
    linkageType: ''
    returnType: void
    signature: void sbi_console_putchar(int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: sbi_shutdown
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 1
    functionsReached:
    - sbi_ecall
    linkageType: ''
    returnType: void
    signature: void sbi_shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/sbi.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: sbi_major_version
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sbi_major_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/sbi.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: sbi_minor_version
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sbi_minor_version(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:98,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/sbi.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fid
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 121
    functionName: sbi_ext_base_func
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - sbi_ecall
    linkageType: ''
    returnType: long
    signature: long sbi_ext_base_func(long fid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:134,1
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:141,1
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:148,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/sbi.c:153,1
    - Dst: sbi_err_map_xen_errno
      Src: /src/xen/xen/arch/riscv/sbi.c:161,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/sbi.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - fid
    - hmask
    - hbase
    - start
    - size
    - arg4
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - vaddr_t
    - size_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 167
    functionName: sbi_rfence_v02_real
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_err_map_xen_errno
    - sbi_ecall
    - printk
    linkageType: ''
    returnType: int
    signature: "int sbi_rfence_v02_real(unsigned long fid,\n                               unsigned
      long hmask, unsigned long hbase,\n                               vaddr_t start,
      size_t size,\n                               unsigned long arg4)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sbi_rfence_v02_real
      Src: /src/xen/xen/arch/riscv/sbi.c:182,1
    - Dst: cpuid_to_hartid
      Src: /src/xen/xen/arch/riscv/sbi.c:207,1
    - Dst: sbi_rfence_v02_real
      Src: /src/xen/xen/arch/riscv/sbi.c:213,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/sbi.c:235,1
    - Dst: sbi_rfence_v02_real
      Src: /src/xen/xen/arch/riscv/sbi.c:239,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 6
    argNames:
    - fid
    - cpu_mask
    - start
    - size
    - arg4
    - arg5
    argTypes:
    - unsigned long
    - cpumask_t*
    - vaddr_t
    - size_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 243
    functionName: sbi_rfence_v02
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_rfence_v02_real
    - BIT
    - cpuid_to_hartid
    linkageType: ''
    returnType: int
    signature: "int sbi_rfence_v02(unsigned long fid,\n                                   const
      cpumask_t *cpu_mask,\n                                   vaddr_t start, size_t
      size,\n                                   unsigned long arg4, unsigned long
      arg5)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_to_hartid
      Src: /src/xen/xen/arch/riscv/sbi.c:207,1
    - Dst: sbi_rfence_v02_real
      Src: /src/xen/xen/arch/riscv/sbi.c:213,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/sbi.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 236
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 9
    functionsReached:
    - sbi_rfence_v02_real
    - BIT
    - cpuid_to_hartid
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpuid, cpu_mask )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/sbi.c:255,1
    - Dst: sbi_rfence
      Src: /src/xen/xen/arch/riscv/sbi.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cpu_mask
    - start
    - size
    argTypes:
    - cpumask_t*
    - vaddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: sbi_remote_sfence_vma
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - sbi_rfence
    linkageType: ''
    returnType: int
    signature: "int sbi_remote_sfence_vma(const cpumask_t *cpu_mask, vaddr_t start,\n
      \                         size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_rfence
      Src: /src/xen/xen/arch/riscv/sbi.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cpu_mask
    - start
    - size
    argTypes:
    - cpumask_t*
    - vaddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: sbi_remote_hfence_gvma
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_rfence
    linkageType: ''
    returnType: int
    signature: "int sbi_remote_hfence_gvma(const cpumask_t *cpu_mask, vaddr_t start,\n
      \                          size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_rfence
      Src: /src/xen/xen/arch/riscv/sbi.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cpu_mask
    - start
    - size
    - vmid
    argTypes:
    - cpumask_t*
    - vaddr_t
    - size_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: sbi_remote_hfence_gvma_vmid
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_rfence
    linkageType: ''
    returnType: int
    signature: "int sbi_remote_hfence_gvma_vmid(const cpumask_t *cpu_mask, vaddr_t
      start,\n                                size_t size, unsigned long vmid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: sbi_get_spec_version
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sbi_get_spec_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: sbi_get_firmware_id
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sbi_get_firmware_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: sbi_get_firmware_version
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sbi_get_firmware_version()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/sbi.c:289,1
    - Dst: sbi_err_map_xen_errno
      Src: /src/xen/xen/arch/riscv/sbi.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extid
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: sbi_probe_extension
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_err_map_xen_errno
    - sbi_ecall
    linkageType: ''
    returnType: int
    signature: int sbi_probe_extension(long extid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: sbi_spec_is_0_1
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sbi_spec_is_0_1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: sbi_has_rfence
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sbi_has_rfence(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sbi_get_spec_version
      Src: /src/xen/xen/arch/riscv/sbi.c:309,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/sbi.c:311,1
    - Dst: sbi_major_version
      Src: /src/xen/xen/arch/riscv/sbi.c:312,1
    - Dst: sbi_minor_version
      Src: /src/xen/xen/arch/riscv/sbi.c:312,1
    - Dst: sbi_spec_is_0_1
      Src: /src/xen/xen/arch/riscv/sbi.c:314,1
    - Dst: sbi_get_firmware_id
      Src: /src/xen/xen/arch/riscv/sbi.c:316,1
    - Dst: sbi_get_firmware_version
      Src: /src/xen/xen/arch/riscv/sbi.c:317,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/sbi.c:319,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/sbi.c:321,1
    - Dst: sbi_probe_extension
      Src: /src/xen/xen/arch/riscv/sbi.c:324,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/sbi.c:327,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/sbi.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 334
    functionName: sbi_init
    functionSourceFile: /src/xen/xen/arch/riscv/sbi.c
    functionUses: 0
    functionsReached:
    - sbi_major_version
    - sbi_get_firmware_version
    - panic
    - sbi_get_spec_version
    - sbi_probe_extension
    - sbi_spec_is_0_1
    - BUG_ON
    - sbi_minor_version
    - printk
    - sbi_get_firmware_id
    linkageType: ''
    returnType: int
    signature: int sbi_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_free_page
      Src: /src/xen/xen/arch/riscv/p2m.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p2m
    - md_pg
    argTypes:
    - struct p2m_domain*
    - struct page_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: p2m_free_metadata_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_free_page
    linkageType: ''
    returnType: void
    signature: "void p2m_free_metadata_page(struct p2m_domain *p2m,\n                                          struct
      page_info **md_pg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: get_max_supported_mode
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char get_max_supported_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: P2M_GFN_LEVEL_SHIFT
      Src: /src/xen/xen/arch/riscv/p2m.c:79,1
    - Dst: P2M_TABLE_OFFSET
      Src: /src/xen/xen/arch/riscv/p2m.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p2m
    - lvl
    - gpa
    argTypes:
    - struct p2m_domain*
    - unsigned int
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: calc_offset
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - P2M_GFN_LEVEL_SHIFT
    - P2M_TABLE_OFFSET
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int calc_offset(const struct p2m_domain *p2m,\n                                       const
      unsigned int lvl,\n                                       const paddr_t gpa)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p2m
    - ','
    - var
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: P2M_BUILD_LEVEL_OFFSETS
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_BUILD_LEVEL_OFFSETS(p2m, var, addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:124,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:126,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:126,1
    - Dst: P2M_PAGETABLE_ENTRIES
      Src: /src/xen/xen/arch/riscv/p2m.c:127,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: p2m_get_root_pointer
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - P2M_ROOT_LEVEL
    - gfn_x
    - P2M_PAGETABLE_ENTRIES
    - __map_domain_page
    - P2M_LEVEL_ORDER
    linkageType: ''
    returnType: pte_t
    signature: pte_t *p2m_get_root_pointer(struct p2m_domain *p2m, gfn_t gfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/p2m.c:168,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/p2m.c:172,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/p2m.c:172,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/p2m.c:174,1
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/p2m.c:174,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/p2m.c:183,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/p2m.c:185,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/p2m.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 190
    functionName: gstage_mode_detect
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - ARRAY_SIZE
    - panic
    - csr_write
    - csr_read
    - printk
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void gstage_mode_detect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gstage_mode_detect
      Src: /src/xen/xen/arch/riscv/p2m.c:194,1
    - Dst: vmid_init
      Src: /src/xen/xen/arch/riscv/p2m.c:196,1
    - Dst: local_hfence_gvma_all
      Src: /src/xen/xen/arch/riscv/p2m.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 229
    functionName: guest_mm_init
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - local_hfence_gvma_all
    - vmid_init
    - gstage_mode_detect
    linkageType: ''
    returnType: void
    signature: void guest_mm_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:240,1
    - Dst: p2m_is_write_locked
      Src: /src/xen/xen/arch/riscv/p2m.c:240,1
    - Dst: sbi_remote_hfence_gvma
      Src: /src/xen/xen/arch/riscv/p2m.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: p2m_tlb_flush
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - sbi_remote_hfence_gvma
    - ASSERT
    - p2m_is_write_locked
    linkageType: ''
    returnType: void
    signature: void p2m_tlb_flush(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_tlb_flush
      Src: /src/xen/xen/arch/riscv/p2m.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: p2m_tlb_flush_sync
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 3
    functionsReached:
    - p2m_tlb_flush
    linkageType: ''
    returnType: void
    signature: void p2m_tlb_flush_sync(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/riscv/p2m.c:261,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/riscv/p2m.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: p2m_write_unlock
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_tlb_flush_sync
    - write_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_write_unlock(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:268,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/riscv/p2m.c:270,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/riscv/p2m.c:278,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - page
    - clean_dcache
    argTypes:
    - struct page_info*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: clear_and_clean_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - clear_page
    - unmap_domain_page
    - clean_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void clear_and_clean_page(struct page_info *page, bool clean_dcache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/p2m.c:285,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:285,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:285,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/p2m.c:286,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/p2m.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p2m
    - vmid
    argTypes:
    - struct p2m_domain*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: construct_hgatp
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - page_to_mfn
    - MASK_INSR
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long construct_hgatp(const struct p2m_domain *p2m, uint16_t
      vmid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_ret_to_domheap
      Src: /src/xen/xen/arch/riscv/p2m.c:300,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/riscv/p2m.c:309,1
    - Dst: paging_refill_from_domheap
      Src: /src/xen/xen/arch/riscv/p2m.c:317,1
    - Dst: clear_and_clean_page
      Src: /src/xen/xen/arch/riscv/p2m.c:324,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/riscv/p2m.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 332
    functionName: p2m_alloc_root_table
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - paging_refill_from_domheap
    - page_list_add
    - paging_ret_to_domheap
    - alloc_domheap_pages
    - clear_and_clean_page
    linkageType: ''
    returnType: int
    signature: int p2m_alloc_root_table(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/riscv/p2m.c:336,1
    - Dst: paging_domain_init
      Src: /src/xen/xen/arch/riscv/p2m.c:344,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/riscv/p2m.c:346,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/riscv/p2m.c:347,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/riscv/p2m.c:349,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/riscv/p2m.c:350,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/arch/riscv/p2m.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 371
    functionName: p2m_init
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 4
    functionsReached:
    - rwlock_init
    - _gfn
    - safe_strcpy
    - paging_domain_init
    - INIT_PAGE_LIST_HEAD
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/riscv/p2m.c:380,1
    - Dst: paging_freelist_adjust
      Src: /src/xen/xen/arch/riscv/p2m.c:383,1
    - Dst: p2m_alloc_root_table
      Src: /src/xen/xen/arch/riscv/p2m.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned long
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 396
    functionName: p2m_set_allocation
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_alloc_root_table
    - paging_freelist_adjust
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_set_allocation(struct domain *d, unsigned long pages, bool
      *preempted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_alloc_page
      Src: /src/xen/xen/arch/riscv/p2m.c:400,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/riscv/p2m.c:404,1
    - Dst: clear_and_clean_page
      Src: /src/xen/xen/arch/riscv/p2m.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 409
    functionName: p2m_alloc_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - paging_alloc_page
    - clear_and_clean_page
    - page_list_add
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *p2m_alloc_page(struct p2m_domain *p2m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:428,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/p2m.c:445,1
    - Dst: p2m_alloc_page
      Src: /src/xen/xen/arch/riscv/p2m.c:447,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/p2m.c:450,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/riscv/p2m.c:452,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:459,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/p2m.c:478,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:480,1
    - Dst: p2m_free_metadata_page
      Src: /src/xen/xen/arch/riscv/p2m.c:483,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - pte
    - t
    - ctx
    argTypes:
    - pte_t*
    - p2m_type_t
    - struct p2m_pte_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 484
    functionName: p2m_set_type
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - MASK_INSR
    - p2m_alloc_page
    - BUILD_BUG_ON
    - ASSERT
    - printk
    - __map_domain_page
    - domain_crash
    - p2m_free_metadata_page
    linkageType: ''
    returnType: void
    signature: "void p2m_set_type(pte_t *pte, p2m_type_t t,\n                         const
      struct p2m_pte_ctx *ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/p2m.c:494,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:498,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:506,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pte
    - ctx
    argTypes:
    - pte_t
    - struct p2m_pte_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 512
    functionName: p2m_get_type
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - ASSERT
    - unmap_domain_page
    - MASK_EXTR
    linkageType: ''
    returnType: p2m_type_t
    signature: p2m_type_t p2m_get_type(const pte_t pte, const struct p2m_pte_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:516,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/riscv/p2m.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pte
    - clean_cache
    argTypes:
    - pte_t*
    - pte_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 525
    functionName: p2m_write_pte
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - write_pte
    - clean_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void p2m_write_pte(pte_t *p, pte_t pte, bool clean_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - clean_cache
    argTypes:
    - pte_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: p2m_clean_pte
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_pte
    linkageType: ''
    returnType: void
    signature: void p2m_clean_pte(pte_t *p, bool clean_cache)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: riscv_isa_extension_available
      Src: /src/xen/xen/arch/riscv/p2m.c:571,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/riscv/p2m.c:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - e
    - t
    argTypes:
    - pte_t*
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 597
    functionName: p2m_set_permission
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - riscv_isa_extension_available
    linkageType: ''
    returnType: void
    signature: void p2m_set_permission(pte_t *e, p2m_type_t t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pte_set_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:610,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:612,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/riscv/p2m.c:612,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/p2m.c:612,1
    - Dst: p2m_set_permission
      Src: /src/xen/xen/arch/riscv/p2m.c:626,1
    - Dst: p2m_set_type
      Src: /src/xen/xen/arch/riscv/p2m.c:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - mfn
    - t
    - ctx
    argTypes:
    - mfn_t
    - p2m_type_t
    - struct p2m_pte_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 637
    functionName: p2m_pte_from_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    - pte_set_mfn
    - p2m_set_permission
    - ASSERT
    - mfn_eq
    - p2m_set_type
    linkageType: ''
    returnType: pte_t
    signature: "pte_t p2m_pte_from_mfn(mfn_t mfn, p2m_type_t t,\n                              struct
      p2m_pte_ctx *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_pte_from_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:647,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: page_to_p2m_table
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_pte_from_mfn
    - page_to_mfn
    linkageType: ''
    returnType: pte_t
    signature: pte_t page_to_p2m_table(const struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_free_metadata_page
      Src: /src/xen/xen/arch/riscv/p2m.c:655,1
    - Dst: p2m_free_page
      Src: /src/xen/xen/arch/riscv/p2m.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p2m
    - tbl_pg
    argTypes:
    - struct p2m_domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 658
    functionName: p2m_free_table
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_free_metadata_page
    - p2m_free_page
    linkageType: ''
    returnType: void
    signature: void p2m_free_table(struct p2m_domain *p2m, struct page_info *tbl_pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:665,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:665,1
    - Dst: p2m_alloc_page
      Src: /src/xen/xen/arch/riscv/p2m.c:667,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:671,1
    - Dst: page_to_p2m_table
      Src: /src/xen/xen/arch/riscv/p2m.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p2m
    - entry
    argTypes:
    - struct p2m_domain*
    - pte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 674
    functionName: p2m_create_table
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_pte
    - page_to_p2m_table
    - p2m_alloc_page
    - ASSERT
    - pte_is_valid
    linkageType: ''
    returnType: int
    signature: int p2m_create_table(struct p2m_domain *p2m, pte_t *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:704,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:708,1
    - Dst: p2m_create_table
      Src: /src/xen/xen/arch/riscv/p2m.c:715,1
    - Dst: pte_is_mapping
      Src: /src/xen/xen/arch/riscv/p2m.c:720,1
    - Dst: mfn_from_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:723,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:725,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - p2m
    - alloc_tbl
    - level
    - table
    - offset
    argTypes:
    - struct p2m_domain*
    - bool
    - unsigned int
    - pte_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 736
    functionName: p2m_next_level
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 3
    functionsReached:
    - p2m_create_table
    - mfn_from_pte
    - unmap_domain_page
    - map_domain_page
    - pte_is_mapping
    - ASSERT
    - pte_is_valid
    linkageType: ''
    returnType: int
    signature: "int p2m_next_level(struct p2m_domain *p2m, bool alloc_tbl,\n                          unsigned
      int level, pte_t **table,\n                          unsigned int offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page
      Src: /src/xen/xen/arch/riscv/p2m.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 746
    functionName: p2m_put_foreign_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - put_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_foreign_page(struct page_info *pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/riscv/p2m.c:752,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:754,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:754,1
    - Dst: p2m_put_foreign_page
      Src: /src/xen/xen/arch/riscv/p2m.c:755,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mfn
    - type
    argTypes:
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 757
    functionName: p2m_put_4k_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_valid
    - ASSERT
    - p2m_is_foreign
    - p2m_put_foreign_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_4k_page(mfn_t mfn, p2m_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/riscv/p2m.c:765,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:768,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:768,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:770,1
    - Dst: p2m_put_foreign_page
      Src: /src/xen/xen/arch/riscv/p2m.c:779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mfn
    - type
    argTypes:
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 780
    functionName: p2m_put_2m_superpage
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_valid
    - ASSERT
    - p2m_is_foreign
    - p2m_put_foreign_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_2m_superpage(mfn_t mfn, p2m_type_t type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:784,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:786,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:786,1
    - Dst: p2m_put_2m_superpage
      Src: /src/xen/xen/arch/riscv/p2m.c:798,1
    - Dst: p2m_put_4k_page
      Src: /src/xen/xen/arch/riscv/p2m.c:801,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/riscv/p2m.c:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pte
    - level
    - p2mt
    argTypes:
    - pte_t
    - unsigned int
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 807
    functionName: p2m_put_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_put_2m_superpage
    - p2m_put_4k_page
    - pte_get_mfn
    - ASSERT
    - pte_is_valid
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void p2m_put_page(const pte_t pte, unsigned int level, p2m_type_t p2mt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_list_del
      Src: /src/xen/xen/arch/riscv/p2m.c:811,1
    - Dst: paging_free_page
      Src: /src/xen/xen/arch/riscv/p2m.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p2m
    - pg
    argTypes:
    - struct p2m_domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: p2m_free_page
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 2
    functionsReached:
    - paging_free_page
    - page_list_del
    linkageType: ''
    returnType: void
    signature: void p2m_free_page(struct p2m_domain *p2m, struct page_info *pg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:833,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:836,1
    - Dst: pte_is_mapping
      Src: /src/xen/xen/arch/riscv/p2m.c:839,1
    - Dst: p2m_get_type
      Src: /src/xen/xen/arch/riscv/p2m.c:841,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/riscv/p2m.c:850,1
    - Dst: domain_has_ioreq_server
      Src: /src/xen/xen/arch/riscv/p2m.c:851,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/riscv/p2m.c:852,1
    - Dst: p2m_put_page
      Src: /src/xen/xen/arch/riscv/p2m.c:855,1
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:860,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:861,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:861,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:862,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:863,1
    - Dst: P2M_PAGETABLE_ENTRIES
      Src: /src/xen/xen/arch/riscv/p2m.c:865,1
    - Dst: p2m_free_subtree
      Src: /src/xen/xen/arch/riscv/p2m.c:874,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:877,1
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/riscv/p2m.c:885,1
    - Dst: p2m_free_table
      Src: /src/xen/xen/arch/riscv/p2m.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p2m
    - entry
    - ctx
    argTypes:
    - struct p2m_domain*
    - pte_t
    - struct p2m_pte_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 888
    functionName: p2m_free_subtree
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_get_type
    - unmap_domain_page
    - map_domain_page
    - p2m_tlb_flush_sync
    - pte_get_mfn
    - mfn_to_page
    - p2m_is_ram
    - ioreq_request_mapcache_invalidate
    - pte_is_mapping
    - p2m_put_page
    - mfn_valid
    - P2M_PAGETABLE_ENTRIES
    - ASSERT
    - p2m_free_table
    - domain_has_ioreq_server
    - pte_is_valid
    - p2m_free_subtree
    linkageType: ''
    returnType: void
    signature: "void p2m_free_subtree(struct p2m_domain *p2m,\n                             pte_t
      entry,\n                             const struct p2m_pte_ctx *ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:901,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:903,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:917,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:918,1
    - Dst: pte_is_superpage
      Src: /src/xen/xen/arch/riscv/p2m.c:918,1
    - Dst: p2m_alloc_page
      Src: /src/xen/xen/arch/riscv/p2m.c:920,1
    - Dst: memset
      Src: /src/xen/xen/arch/riscv/p2m.c:928,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:932,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/p2m.c:934,1
    - Dst: p2m_get_type
      Src: /src/xen/xen/arch/riscv/p2m.c:939,1
    - Dst: P2M_PAGETABLE_ENTRIES
      Src: /src/xen/xen/arch/riscv/p2m.c:945,1
    - Dst: pte_set_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:954,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/riscv/p2m.c:954,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/p2m.c:956,1
    - Dst: p2m_set_type
      Src: /src/xen/xen/arch/riscv/p2m.c:960,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:963,1
    - Dst: p2m_split_superpage
      Src: /src/xen/xen/arch/riscv/p2m.c:973,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/riscv/p2m.c:977,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:984,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:993,1
    - Dst: page_to_p2m_table
      Src: /src/xen/xen/arch/riscv/p2m.c:993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 6
    argNames:
    - p2m
    - entry
    - level
    - target
    - offsets
    - tbl_pg
    argTypes:
    - struct p2m_domain*
    - pte_t*
    - unsigned int
    - unsigned int
    - unsigned int*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 996
    functionName: p2m_split_superpage
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 1
    functionsReached:
    - write_pte
    - pte_get_mfn
    - pte_set_mfn
    - MASK_EXTR
    - clean_dcache_va_range
    - ASSERT
    - p2m_split_superpage
    - __map_domain_page
    - memset
    - p2m_get_type
    - p2m_write_pte
    - page_to_p2m_table
    - unmap_domain_page
    - mfn_add
    - p2m_alloc_page
    - P2M_PAGETABLE_ENTRIES
    - pte_is_superpage
    - p2m_set_type
    - P2M_LEVEL_ORDER
    linkageType: ''
    returnType: bool
    signature: "bool p2m_split_superpage(struct p2m_domain *p2m, pte_t *entry,\n                                unsigned
      int level, unsigned int target,\n                                const unsigned
      int *offsets,\n                                struct page_info *tbl_pg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/p2m.c:1014,1
    - Dst: P2M_BUILD_LEVEL_OFFSETS
      Src: /src/xen/xen/arch/riscv/p2m.c:1018,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/riscv/p2m.c:1018,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1020,1
    - Dst: p2m_is_write_locked
      Src: /src/xen/xen/arch/riscv/p2m.c:1020,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1026,1
    - Dst: p2m_get_root_pointer
      Src: /src/xen/xen/arch/riscv/p2m.c:1028,1
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:1032,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/riscv/p2m.c:1038,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1068,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1068,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1070,1
    - Dst: pte_is_superpage
      Src: /src/xen/xen/arch/riscv/p2m.c:1070,1
    - Dst: p2m_split_superpage
      Src: /src/xen/xen/arch/riscv/p2m.c:1072,1
    - Dst: p2m_free_subtree
      Src: /src/xen/xen/arch/riscv/p2m.c:1080,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:1086,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/riscv/p2m.c:1093,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1099,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1106,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1106,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1114,1
    - Dst: p2m_clean_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:1119,1
    - Dst: p2m_pte_from_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1122,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/riscv/p2m.c:1124,1
    - Dst: gfn_max
      Src: /src/xen/xen/arch/riscv/p2m.c:1126,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/riscv/p2m.c:1127,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1127,1
    - Dst: gfn_min
      Src: /src/xen/xen/arch/riscv/p2m.c:1128,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:1155,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:1156,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/p2m.c:1157,1
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1157,1
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1157,1
    - Dst: p2m_free_subtree
      Src: /src/xen/xen/arch/riscv/p2m.c:1158,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1161,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - p2m
    - gfn
    - page_order
    - mfn
    - t
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1164
    functionName: p2m_set_entry
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 24
    functionsReached:
    - p2m_get_root_pointer
    - gfn_max
    - pte_get_mfn
    - mfn_to_page
    - p2m_next_level
    - gfn_min
    - p2m_pte_from_mfn
    - mfn_eq
    - p2m_clean_pte
    - pte_is_valid
    - gfn_add
    - P2M_ROOT_LEVEL
    - ASSERT
    - p2m_split_superpage
    - p2m_write_pte
    - unmap_domain_page
    - BIT
    - p2m_is_write_locked
    - domain_page_map_to_mfn
    - gfn_to_gaddr
    - pte_is_superpage
    - P2M_BUILD_LEVEL_OFFSETS
    - p2m_free_subtree
    linkageType: ''
    returnType: int
    signature: "int p2m_set_entry(struct p2m_domain *p2m,\n                         gfn_t
      gfn,\n                         unsigned long page_order,\n                         mfn_t
      mfn,\n                         p2m_type_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/riscv/p2m.c:1172,1
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:1172,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/p2m.c:1175,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1175,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1176,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1180,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1180,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1181,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1181,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - p2m
    - gfn
    - mfn
    - nr
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1189
    functionName: p2m_mapping_order
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - P2M_ROOT_LEVEL
    - BIT
    - mfn_x
    - gfn_x
    - min
    - mfn_eq
    - P2M_LEVEL_ORDER
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long p2m_mapping_order(const struct p2m_domain *p2m, gfn_t
      gfn,\n                                       mfn_t mfn, unsigned long nr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/p2m.c:1206,1
    - Dst: p2m_mapping_order
      Src: /src/xen/xen/arch/riscv/p2m.c:1211,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/riscv/p2m.c:1213,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/riscv/p2m.c:1217,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1217,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/p2m.c:1218,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/riscv/p2m.c:1219,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1219,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - p2m
    - sgfn
    - nr
    - smfn
    - t
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1228
    functionName: p2m_set_range
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_eq
    - p2m_set_entry
    - BIT
    - mfn_add
    - unlikely
    - p2m_mapping_order
    - gfn_add
    linkageType: ''
    returnType: int
    signature: "int p2m_set_range(struct p2m_domain *p2m,\n                         gfn_t
      sgfn,\n                         unsigned long nr,\n                         mfn_t
      smfn,\n                         p2m_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/riscv/p2m.c:1236,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/riscv/p2m.c:1239,1
    - Dst: p2m_set_range
      Src: /src/xen/xen/arch/riscv/p2m.c:1240,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/riscv/p2m.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - d
    - gfn
    - nr
    - mfn
    - p2mt
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1244
    functionName: map_regions_p2mt
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_set_range
    - p2m_write_lock
    - p2m_write_unlock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int map_regions_p2mt(struct domain *d,\n                     gfn_t
      gfn,\n                     unsigned long nr,\n                     mfn_t mfn,\n
      \                    p2m_type_t p2mt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1267,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1269,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1269,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1270,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1270,1
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:1272,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1274,1
    - Dst: P2M_GFN_LEVEL_SHIFT
      Src: /src/xen/xen/arch/riscv/p2m.c:1274,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1276,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1276,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1277,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - p2m
    - gfn
    - boundary
    - is_lower
    - level_out
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - gfn_t
    - bool
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1288
    functionName: check_outside_boundary
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - P2M_GFN_LEVEL_SHIFT
    - P2M_ROOT_LEVEL
    - BIT
    - gfn_x
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: "bool check_outside_boundary(const struct p2m_domain *p2m, gfn_t gfn,\n
      \                                  gfn_t boundary, bool is_lower,\n                                   unsigned
      int *level_out)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:1305,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1307,1
    - Dst: P2M_ROOT_EXTRA_BITS
      Src: /src/xen/xen/arch/riscv/p2m.c:1307,1
    - Dst: P2M_BUILD_LEVEL_OFFSETS
      Src: /src/xen/xen/arch/riscv/p2m.c:1312,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/riscv/p2m.c:1312,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1314,1
    - Dst: p2m_is_locked
      Src: /src/xen/xen/arch/riscv/p2m.c:1314,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1318,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1318,1
    - Dst: check_outside_boundary
      Src: /src/xen/xen/arch/riscv/p2m.c:1326,1
    - Dst: check_outside_boundary
      Src: /src/xen/xen/arch/riscv/p2m.c:1330,1
    - Dst: p2m_get_root_pointer
      Src: /src/xen/xen/arch/riscv/p2m.c:1333,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/riscv/p2m.c:1341,1
    - Dst: P2M_ROOT_LEVEL
      Src: /src/xen/xen/arch/riscv/p2m.c:1345,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/riscv/p2m.c:1347,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:1357,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1360,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1360,1
    - Dst: p2m_get_type
      Src: /src/xen/xen/arch/riscv/p2m.c:1366,1
    - Dst: pte_get_mfn
      Src: /src/xen/xen/arch/riscv/p2m.c:1368,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/p2m.c:1370,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1370,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1370,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1370,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/riscv/p2m.c:1376,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/riscv/p2m.c:1377,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/p2m.c:1377,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1377,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1381,1
    - Dst: P2M_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/p2m.c:1385,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - p2m
    - gfn
    - t
    - page_order
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1388
    functionName: p2m_get_entry
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_get_root_pointer
    - check_outside_boundary
    - pte_get_mfn
    - mfn_to_page
    - p2m_next_level
    - P2M_ROOT_EXTRA_BITS
    - pte_is_valid
    - P2M_ROOT_LEVEL
    - mfn_x
    - ASSERT
    - p2m_get_type
    - ASSERT_UNREACHABLE
    - p2m_is_locked
    - unmap_domain_page
    - BIT
    - mfn_add
    - domain_page_map_to_mfn
    - gfn_x
    - gfn_to_gaddr
    - P2M_BUILD_LEVEL_OFFSETS
    - P2M_LEVEL_ORDER
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,\n                           p2m_type_t
      *t,\n                           unsigned int *page_order)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/riscv/p2m.c:1397,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/riscv/p2m.c:1398,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/riscv/p2m.c:1403,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/riscv/p2m.c:1405,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1409,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/p2m.c:1415,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/riscv/p2m.c:1415,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/riscv/p2m.c:1417,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/riscv/p2m.c:1419,1
    - Dst: likely
      Src: /src/xen/xen/arch/riscv/p2m.c:1423,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/riscv/p2m.c:1426,1
    - Dst: put_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1427,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/riscv/p2m.c:1433,1
    - Dst: get_page
      Src: /src/xen/xen/arch/riscv/p2m.c:1435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - p2m
    - gfn
    - t
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1436
    functionName: p2m_get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 3
    functionsReached:
    - unlikely
    - p2m_get_entry
    - p2m_read_unlock
    - mfn_to_page
    - page_get_owner_and_reference
    - mfn_valid
    - likely
    - get_page
    - p2m_read_lock
    - put_page
    - p2m_is_foreign
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *p2m_get_page_from_gfn(struct p2m_domain *p2m, gfn_t
      gfn,\n                                        p2m_type_t *t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/riscv/p2m.c:1444,1
    - Dst: csr_swap
      Src: /src/xen/xen/arch/riscv/p2m.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1462
    functionName: p2m_ctxt_switch_from
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - csr_swap
    - is_idle_vcpu
    linkageType: ''
    returnType: void
    signature: void p2m_ctxt_switch_from(struct vcpu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/riscv/p2m.c:1473,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/riscv/p2m.c:1475,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/p2m.c:1478,1
    - Dst: construct_hgatp
      Src: /src/xen/xen/arch/riscv/p2m.c:1478,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/p2m.c:1484,1
    - Dst: flush_tlb_guest_local
      Src: /src/xen/xen/arch/riscv/p2m.c:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1496
    functionName: p2m_ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - construct_hgatp
    - is_idle_vcpu
    - csr_write
    - flush_tlb_guest_local
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_ctxt_switch_to(struct vcpu *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/riscv/p2m.c:1501,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/p2m.c:1506,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/riscv/p2m.c:1506,1
    - Dst: vmid_handle_vmenter
      Src: /src/xen/xen/arch/riscv/p2m.c:1509,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/p2m.c:1513,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/p2m.c:1522,1
    - Dst: construct_hgatp
      Src: /src/xen/xen/arch/riscv/p2m.c:1522,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/p2m.c:1528,1
    - Dst: local_hfence_gvma_all
      Src: /src/xen/xen/arch/riscv/p2m.c:1529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1536
    functionName: p2m_handle_vmenter
    functionSourceFile: /src/xen/xen/arch/riscv/p2m.c
    functionUses: 0
    functionsReached:
    - local_hfence_gvma_all
    - construct_hgatp
    - is_idle_vcpu
    - csr_write
    - BUG_ON
    - vmid_handle_vmenter
    - printk
    - unlikely
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_handle_vmenter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ext_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: RISCV_ISA_EXT_DATA
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RISCV_ISA_EXT_DATA(ext_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/riscv/cpufeature.c:53,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:54,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/riscv/cpufeature.c:55,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/riscv/cpufeature.c:55,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/riscv/cpufeature.c:57,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:60,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/riscv/cpufeature.c:60,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/riscv/cpufeature.c:64,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/riscv/cpufeature.c:64,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:66,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/riscv/cpufeature.c:67,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/arch/riscv/cpufeature.c:77,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/riscv/cpufeature.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cpu
    - dt_cpuid
    argTypes:
    - struct dt_device_node*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 80
    functionName: dt_get_cpuid_from_node
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - dt_cells_to_size
    - dt_node_full_name
    - dt_n_size_cells
    - dt_n_addr_cells
    - dt_get_property
    - printk
    - dt_read_paddr
    linkageType: ''
    returnType: int
    signature: "int dt_get_cpuid_from_node(const struct dt_device_node *cpu,\n                                         unsigned
      long *dt_cpuid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:169,1
    - Dst: islower
      Src: /src/xen/xen/arch/riscv/cpufeature.c:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: is_lowercase_extension_name
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - islower
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool is_lowercase_extension_name(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/cpufeature.c:178,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/cpufeature.c:188,1
    - Dst: is_lowercase_extension_name
      Src: /src/xen/xen/arch/riscv/cpufeature.c:188,1
    - Dst: strlen
      Src: /src/xen/xen/arch/riscv/cpufeature.c:190,1
    - Dst: memcmp
      Src: /src/xen/xen/arch/riscv/cpufeature.c:191,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - name
    - name_end
    - bitmap
    argTypes:
    - char*
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 197
    functionName: match_isa_ext
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - memcmp
    - ARRAY_SIZE
    - ASSERT
    - strlen
    - is_lowercase_extension_name
    linkageType: ''
    returnType: void
    signature: "void match_isa_ext(const char *name, const char *name_end,\n                                 unsigned
      long *bitmap)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printk_once
      Src: /src/xen/xen/arch/riscv/cpufeature.c:243,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/cpufeature.c:252,1
    - Dst: isalnum
      Src: /src/xen/xen/arch/riscv/cpufeature.c:252,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/cpufeature.c:299,1
    - Dst: isalnum
      Src: /src/xen/xen/arch/riscv/cpufeature.c:299,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:304,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:307,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:310,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:316,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:328,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:329,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:330,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/cpufeature.c:350,1
    - Dst: isalpha
      Src: /src/xen/xen/arch/riscv/cpufeature.c:350,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:353,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:356,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:362,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:368,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/cpufeature.c:383,1
    - Dst: match_isa_ext
      Src: /src/xen/xen/arch/riscv/cpufeature.c:386,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:392,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 79
    argCount: 2
    argNames:
    - isa
    - out_bitmap
    argTypes:
    - char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 394
    functionName: riscv_isa_parse_string
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - isalnum
    - __set_bit
    - isalpha
    - printk_once
    - isdigit
    - printk
    - unlikely
    - match_isa_ext
    linkageType: ''
    returnType: int
    signature: "int riscv_isa_parse_string(const char *isa,\n                                         unsigned
      long *out_bitmap)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/arch/riscv/cpufeature.c:398,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:403,1
    - Dst: DECLARE_BITMAP
      Src: /src/xen/xen/arch/riscv/cpufeature.c:409,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/riscv/cpufeature.c:413,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/riscv/cpufeature.c:415,1
    - Dst: dt_get_cpuid_from_node
      Src: /src/xen/xen/arch/riscv/cpufeature.c:418,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:421,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:423,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:429,1
    - Dst: islower
      Src: /src/xen/xen/arch/riscv/cpufeature.c:429,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:430,1
    - Dst: riscv_isa_parse_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:432,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:433,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/arch/riscv/cpufeature.c:435,1
    - Dst: bitmap_copy
      Src: /src/xen/xen/arch/riscv/cpufeature.c:436,1
    - Dst: bitmap_and
      Src: /src/xen/xen/arch/riscv/cpufeature.c:438,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 440
    functionName: riscv_fill_hwcap_from_isa_string
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - panic
    - DECLARE_BITMAP
    - bitmap_zero
    - riscv_isa_parse_string
    - bitmap_copy
    - islower
    - dt_property_read_string
    - isdigit
    - dt_device_type_is_equal
    - bitmap_empty
    - printk
    - dt_get_cpuid_from_node
    - bitmap_and
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void riscv_fill_hwcap_from_isa_string(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DECLARE_BITMAP
      Src: /src/xen/xen/arch/riscv/cpufeature.c:409,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/riscv/cpufeature.c:413,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/riscv/cpufeature.c:415,1
    - Dst: dt_get_cpuid_from_node
      Src: /src/xen/xen/arch/riscv/cpufeature.c:418,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:421,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:423,1
    - Dst: isdigit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:429,1
    - Dst: islower
      Src: /src/xen/xen/arch/riscv/cpufeature.c:429,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:430,1
    - Dst: riscv_isa_parse_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:432,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:433,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/arch/riscv/cpufeature.c:435,1
    - Dst: bitmap_copy
      Src: /src/xen/xen/arch/riscv/cpufeature.c:436,1
    - Dst: bitmap_and
      Src: /src/xen/xen/arch/riscv/cpufeature.c:438,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 439
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - panic
    - DECLARE_BITMAP
    - bitmap_zero
    - riscv_isa_parse_string
    - bitmap_copy
    - islower
    - dt_property_read_string
    - isdigit
    - dt_device_type_is_equal
    - bitmap_and
    - dt_get_cpuid_from_node
    - printk
    - bitmap_empty
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(cpus, cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/arch/riscv/cpufeature.c:444,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:449,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/riscv/cpufeature.c:457,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: has_isa_extensions_property
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - dt_property_read_string
    - dt_find_node_by_path
    - dt_device_type_is_equal
    - printk
    linkageType: ''
    returnType: bool
    signature: bool has_isa_extensions_property(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/riscv/cpufeature.c:457,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 464
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - dt_property_read_string
    - dt_device_type_is_equal
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(cpus, cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/riscv/cpufeature.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - isa_bitmap
    - id
    argTypes:
    - unsigned long*
    - enum riscv_isa_ext_id
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 479
    functionName: riscv_isa_extension_available
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 1
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: "bool riscv_isa_extension_available(const unsigned long *isa_bitmap,\n
      \                                  enum riscv_isa_ext_id id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/cpufeature.c:484,1
    - Dst: riscv_fill_hwcap_from_isa_string
      Src: /src/xen/xen/arch/riscv/cpufeature.c:487,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/arch/riscv/cpufeature.c:489,1
    - Dst: has_isa_extensions_property
      Src: /src/xen/xen/arch/riscv/cpufeature.c:491,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:495,1
    - Dst: riscv_isa_extension_available
      Src: /src/xen/xen/arch/riscv/cpufeature.c:502,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/cpufeature.c:504,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/cpufeature.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 481
    functionDepth: 4
    functionLinenumber: 481
    functionLinenumberEnd: 512
    functionName: riscv_fill_hwcap
    functionSourceFile: /src/xen/xen/arch/riscv/cpufeature.c
    functionUses: 0
    functionsReached:
    - has_isa_extensions_property
    - ARRAY_SIZE
    - panic
    - riscv_fill_hwcap_from_isa_string
    - riscv_isa_extension_available
    - printk
    - bitmap_empty
    linkageType: ''
    returnType: void
    signature: void riscv_fill_hwcap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_processor_id
      Src: /src/xen/xen/arch/riscv/smpboot.c:16,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/riscv/smpboot.c:18,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/riscv/smpboot.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: smp_prepare_boot_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/smpboot.c
    functionUses: 1
    functionsReached:
    - cpumask_set_cpu
    - set_processor_id
    linkageType: ''
    returnType: void
    signature: void smp_prepare_boot_cpu(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/riscv/smpboot.c:35,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/riscv/smpboot.c:36,1
    - Dst: dt_read_number
      Src: /src/xen/xen/arch/riscv/smpboot.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - cpun
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 49
    functionName: dt_get_hartid
    functionSourceFile: /src/xen/xen/arch/riscv/smpboot.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - dt_n_addr_cells
    - dt_get_property
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long dt_get_hartid(const struct dt_device_node *cpun)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/arch/riscv/smpboot.c:61,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/smpboot.c:63,1
    - Dst: dt_get_hartid
      Src: /src/xen/xen/arch/riscv/smpboot.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/smpboot.c:70,1
    - Dst: dt_device_is_available
      Src: /src/xen/xen/arch/riscv/smpboot.c:74,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/smpboot.c:76,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/riscv/smpboot.c:80,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/smpboot.c:82,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/smpboot.c:88,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - node
    - hartid
    argTypes:
    - struct dt_device_node*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 94
    functionName: dt_processor_hartid
    functionSourceFile: /src/xen/xen/arch/riscv/smpboot.c
    functionUses: 1
    functionsReached:
    - dt_device_is_available
    - dt_get_hartid
    - dt_property_read_string
    - printk
    - dt_device_is_compatible
    linkageType: ''
    returnType: int
    signature: "int dt_processor_hartid(const struct dt_device_node *node,\n                        unsigned
      long *hartid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: LOAD_TO_LINK
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_TO_LINK(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:64,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/mm.c:64,1
    - Dst: GB
      Src: /src/xen/xen/arch/riscv/mm.c:64,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:65,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/mm.c:65,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:65,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:67,1
    - Dst: GB
      Src: /src/xen/xen/arch/riscv/mm.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - MB
    - IS_ALIGNED
    - GB
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - curr_lvl_num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: HANDLE_PGTBL
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_PGTBL(curr_lvl_num)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XEN_PT_LEVEL_SIZE
      Src: /src/xen/xen/arch/riscv/mm.c:112,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:114,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:115,1
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:118,1
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:119,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:121,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:123,1
    - Dst: XEN_PT_LEVEL_SIZE
      Src: /src/xen/xen/arch/riscv/mm.c:128,1
    - Dst: HANDLE_PGTBL
      Src: /src/xen/xen/arch/riscv/mm.c:135,1
    - Dst: HANDLE_PGTBL
      Src: /src/xen/xen/arch/riscv/mm.c:137,1
    - Dst: HANDLE_PGTBL
      Src: /src/xen/xen/arch/riscv/mm.c:139,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:145,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:148,1
    - Dst: is_kernel_text
      Src: /src/xen/xen/arch/riscv/mm.c:150,1
    - Dst: is_kernel_inittext
      Src: /src/xen/xen/arch/riscv/mm.c:151,1
    - Dst: is_kernel_rodata
      Src: /src/xen/xen/arch/riscv/mm.c:155,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/riscv/mm.c:158,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/mm.c:160,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:167,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - mmu_desc
    - map_start
    - map_end
    - pa_start
    argTypes:
    - struct mmu_desc*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 175
    functionName: setup_initial_mapping
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - is_kernel_inittext
    - XEN_PT_LEVEL_SIZE
    - early_printk
    - pt_index
    - die
    - virt_to_maddr
    - is_kernel_rodata
    - XEN_PT_LEVEL_MAP_MASK
    - HANDLE_PGTBL
    - is_kernel_text
    - pte_is_valid
    - paddr_to_pte
    linkageType: ''
    returnType: void
    signature: "void setup_initial_mapping(struct mmu_desc *mmu_desc,\n                                         unsigned
      long map_start,\n                                         unsigned long map_end,\n
      \                                        unsigned long pa_start)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:184,1
    - Dst: XEN_PT_LEVEL_SIZE
      Src: /src/xen/xen/arch/riscv/mm.c:187,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:192,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:196,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:199,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/riscv/mm.c:200,1
    - Dst: sfence_vma
      Src: /src/xen/xen/arch/riscv/mm.c:203,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/mm.c:204,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:205,1
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/mm.c:208,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/mm.c:211,1
    - Dst: sfence_vma
      Src: /src/xen/xen/arch/riscv/mm.c:213,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/riscv/mm.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - mmu_desc
    - load_start
    argTypes:
    - struct mmu_desc*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 219
    functionName: check_pgtbl_mode_support
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - sfence_vma
    - XEN_PT_LEVEL_SIZE
    - early_printk
    - csr_write
    - pt_index
    - die
    - csr_read
    - XEN_PT_LEVEL_MAP_MASK
    - PFN_DOWN
    - paddr_to_pte
    linkageType: ''
    returnType: bool
    signature: "bool check_pgtbl_mode_support(struct mmu_desc *mmu_desc,\n                                            unsigned
      long load_start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:226,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:228,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/mm.c:228,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:240,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/mm.c:240,1
    - Dst: LOAD_TO_LINK
      Src: /src/xen/xen/arch/riscv/mm.c:242,1
    - Dst: pte_to_paddr
      Src: /src/xen/xen/arch/riscv/mm.c:242,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:243,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/mm.c:243,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:246,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/mm.c:246,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/riscv/mm.c:248,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:248,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/mm.c:249,1
    - Dst: RISCV_FENCE
      Src: /src/xen/xen/arch/riscv/mm.c:251,1
    - Dst: sfence_vma
      Src: /src/xen/xen/arch/riscv/mm.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 258
    functionName: setup_fixmap_mappings
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - sfence_vma
    - write_pte
    - pte_to_paddr
    - RISCV_FENCE
    - FIXMAP_ADDR
    - pt_index
    - BUILD_BUG_ON
    - BUG_ON
    - virt_to_maddr
    - pte_is_valid
    - paddr_to_pte
    - LOAD_TO_LINK
    linkageType: ''
    returnType: void
    signature: void setup_fixmap_mappings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_TO_LINK
      Src: /src/xen/xen/arch/riscv/mm.c:285,1
    - Dst: LOAD_TO_LINK
      Src: /src/xen/xen/arch/riscv/mm.c:286,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:298,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:299,1
    - Dst: check_pgtbl_mode_support
      Src: /src/xen/xen/arch/riscv/mm.c:302,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/riscv/mm.c:304,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/mm.c:306,1
    - Dst: setup_initial_mapping
      Src: /src/xen/xen/arch/riscv/mm.c:312,1
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:320,1
    - Dst: setup_initial_mapping
      Src: /src/xen/xen/arch/riscv/mm.c:323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 327
    functionName: setup_initial_pagetables
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - early_printk
    - setup_initial_mapping
    - die
    - XEN_PT_LEVEL_MAP_MASK
    - check_pgtbl_mode_support
    - LOAD_TO_LINK
    linkageType: ''
    returnType: void
    signature: void setup_initial_pagetables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:335,1
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:335,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:339,1
    - Dst: pt_index
      Src: /src/xen/xen/arch/riscv/mm.c:340,1
    - Dst: LOAD_TO_LINK
      Src: /src/xen/xen/arch/riscv/mm.c:348,1
    - Dst: pte_to_paddr
      Src: /src/xen/xen/arch/riscv/mm.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 350
    functionName: remove_identity_mapping
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - pte_to_paddr
    - pt_index
    - virt_to_maddr
    - XEN_PT_LEVEL_MAP_MASK
    - LOAD_TO_LINK
    linkageType: ''
    returnType: void
    signature: void remove_identity_mapping(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: calc_phys_offset
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long __init
    signature: unsigned long __init calc_phys_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: arch_dump_shared_mem_info
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_shared_mem_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - d
    - space
    - extra
    - idx
    - gfn
    argTypes:
    - struct domain*
    - unsigned int
    - union add_to_physmap_extra
    - unsigned long
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: xenmem_add_to_physmap_one
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap_one(struct domain *d, unsigned int space,\n
      \                             union add_to_physmap_extra extra,\n                              unsigned
      long idx, gfn_t gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - page
    - d
    - flags
    argTypes:
    - struct page_info*
    - struct domain*
    - enum XENSHARE_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: share_xen_page_with_guest
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void share_xen_page_with_guest(struct page_info *page, struct domain
      *d,\n                               enum XENSHARE_flags flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:388,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:401,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/mm.c:406,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:406,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/riscv/mm.c:408,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/riscv/mm.c:408,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:409,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:412,1
    - Dst: XEN_PT_LEVEL_SIZE
      Src: /src/xen/xen/arch/riscv/mm.c:414,1
    - Dst: fdt_magic
      Src: /src/xen/xen/arch/riscv/mm.c:417,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/riscv/mm.c:420,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:424,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/riscv/mm.c:426,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:426,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/riscv/mm.c:427,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:427,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:428,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - fdt_paddr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 435
    functionName: early_fdt_map
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - MB
    - XEN_PT_LEVEL_SIZE
    - panic
    - fdt_magic
    - BUILD_BUG_ON
    - fdt_totalsize
    - map_pages_to_xen
    - maddr_to_mfn
    - XEN_PT_LEVEL_MAP_MASK
    linkageType: ''
    returnType: void
    signature: void * __init early_fdt_map(paddr_t fdt_paddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/riscv/mm.c:449,1
    - Dst: ROUNDDOWN
      Src: /src/xen/xen/arch/riscv/mm.c:450,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:451,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/riscv/mm.c:455,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:458,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/riscv/mm.c:465,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:465,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/riscv/mm.c:466,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:466,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:466,1
    - Dst: MB
      Src: /src/xen/xen/arch/riscv/mm.c:466,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/riscv/mm.c:468,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:469,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:471,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/mm.c:472,1
    - Dst: memset
      Src: /src/xen/xen/arch/riscv/mm.c:474,1
    - Dst: memset
      Src: /src/xen/xen/arch/riscv/mm.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 477
    functionName: setup_frametable_mappings
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - ROUNDDOWN
    - ROUNDUP
    - MB
    - panic
    - mfn_x
    - paddr_to_pfn
    - map_pages_to_xen
    - PFN_DOWN
    - memset
    - alloc_boot_pages
    linkageType: ''
    returnType: void
    signature: void setup_frametable_mappings(paddr_t ps, paddr_t pe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/riscv/mm.c:485,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:486,1
    - Dst: XEN_PT_LEVEL_MAP_MASK
      Src: /src/xen/xen/arch/riscv/mm.c:487,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/mm.c:491,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/mm.c:508,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:509,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/mm.c:510,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/riscv/mm.c:512,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/riscv/mm.c:512,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:515,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:516,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/riscv/mm.c:517,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/riscv/mm.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - base_mfn
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 518
    functionName: setup_directmap_mappings
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    - panic
    - mfn_x
    - _mfn
    - mfn_add
    - map_pages_to_xen
    - XEN_PT_LEVEL_MAP_MASK
    - mfn_eq
    - mfn_to_virt
    linkageType: ''
    returnType: void
    signature: "void setup_directmap_mappings(unsigned long base_mfn,\n                                            unsigned
      long nr_mfns)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/riscv/mm.c:547,1
    - Dst: populate_boot_allocator
      Src: /src/xen/xen/arch/riscv/mm.c:559,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/mm.c:562,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/riscv/mm.c:567,1
    - Dst: ROUNDDOWN
      Src: /src/xen/xen/arch/riscv/mm.c:568,1
    - Dst: min
      Src: /src/xen/xen/arch/riscv/mm.c:571,1
    - Dst: max
      Src: /src/xen/xen/arch/riscv/mm.c:572,1
    - Dst: setup_directmap_mappings
      Src: /src/xen/xen/arch/riscv/mm.c:574,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:574,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:574,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/riscv/mm.c:576,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/riscv/mm.c:576,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/riscv/mm.c:576,1
    - Dst: setup_frametable_mappings
      Src: /src/xen/xen/arch/riscv/mm.c:579,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:581,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 583
    functionName: setup_mm
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - ROUNDDOWN
    - ROUNDUP
    - max
    - populate_boot_allocator
    - panic
    - setup_frametable_mappings
    - set_pdx_range
    - paddr_to_pfn
    - bootinfo_get_mem
    - min
    - setup_directmap_mappings
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void setup_mm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: arch_vmap_virt_end
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__init arch_vmap_virt_end(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/riscv/mm.c:593,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/mm.c:593,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/riscv/mm.c:595,1
    - Dst: __vmap
      Src: /src/xen/xen/arch/riscv/mm.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pa
    - len
    - attributes
    argTypes:
    - paddr_t
    - size_t
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: ioremap_attr
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - _mfn
    - __vmap
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: "void *ioremap_attr(paddr_t pa, size_t len,\n                                  pte_attr_t
      attributes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/riscv/mm.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 607
    functionName: ioremap_cache
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap_cache(paddr_t pa, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/riscv/mm.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 612
    functionName: ioremap_wc
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap_wc(paddr_t pa, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/riscv/mm.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 617
    functionName: ioremap
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 5
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap(paddr_t pa, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/riscv/mm.c:621,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/riscv/mm.c:621,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/riscv/mm.c:623,1
    - Dst: BUG
      Src: /src/xen/xen/arch/riscv/mm.c:624,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/mm.c:626,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/riscv/mm.c:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mfn
    - sync_icache
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 630
    functionName: flush_page_to_ram
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached:
    - BUG
    - unmap_domain_page
    - map_domain_page
    - _mfn
    - invalidate_icache
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void flush_page_to_ram(unsigned long mfn, bool sync_icache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: page_is_offlinable
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool page_is_offlinable(mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/mm.c:642,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/mm.c:645,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/riscv/mm.c:645,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/mm.c:647,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/mm.c:649,1
    - Dst: free_domstatic_page
      Src: /src/xen/xen/arch/riscv/mm.c:650,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/riscv/mm.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 654
    functionName: put_page
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 81
    functionsReached:
    - free_domstatic_page
    - ASSERT
    - unlikely
    - free_domheap_page
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void put_page(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/mm.c:667,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/riscv/mm.c:669,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/riscv/mm.c:671,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/mm.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: page_get_owner_and_reference
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 9
    functionsReached:
    - page_get_owner
    - ASSERT
    - cmpxchg
    - unlikely
    linkageType: ''
    returnType: struct domain
    signature: struct domain *page_get_owner_and_reference(struct page_info *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/riscv/mm.c:679,1
    - Dst: likely
      Src: /src/xen/xen/arch/riscv/mm.c:681,1
    - Dst: put_page
      Src: /src/xen/xen/arch/riscv/mm.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - page
    - domain
    argTypes:
    - struct page_info*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 688
    functionName: get_page
    functionSourceFile: /src/xen/xen/arch/riscv/mm.c
    functionUses: 36
    functionsReached:
    - put_page
    - page_get_owner_and_reference
    - likely
    linkageType: ''
    returnType: bool
    signature: bool get_page(struct page_info *page, const struct domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: reprogram_timer
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int reprogram_timer(s_time_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: send_timer_event
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void send_timer_event(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - time_offset_seconds
    argTypes:
    - struct domain*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: domain_set_time_offset
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: arch_do_domctl
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: long
    signature: "long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \                   XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: arch_get_domain_info
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void arch_get_domain_info(const struct domain *d,\n                          struct
      xen_domctl_getdomaininfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: arch_get_info_guest
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: arch_monitor_domctl_event
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int arch_monitor_domctl_event(struct domain *d,\n                              struct
      xen_domctl_monitor_op *mop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: smp_send_call_function_mask
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void smp_send_call_function_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: irq_ack_none
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void irq_ack_none(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: smp_send_state_dump
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void smp_send_state_dump(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: context_switch
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void context_switch(struct vcpu *prev, struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - same
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: continue_running
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void continue_running(struct vcpu *same)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: sync_local_execstate
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sync_local_execstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: sync_vcpu_execstate
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sync_vcpu_execstate(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: startup_cpu_idle_loop
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void startup_cpu_idle_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: dump_pageframe_info
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void dump_pageframe_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: arch_sanitise_domain_config
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - config
    - flags
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: arch_domain_create
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int arch_domain_create(struct domain *d,\n                       struct
      xen_domctl_createdomain *config,\n                       unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: arch_domain_teardown
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: arch_domain_destroy
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: arch_domain_shutdown
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_shutdown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: arch_domain_pause
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_pause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: arch_domain_unpause
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_unpause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: arch_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_creation_finished(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: arch_set_info_guest
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: arch_initialise_vcpu
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: arch_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_reset(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int domain_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: arch_dump_domain_info
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_domain_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: arch_dump_vcpu_info
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_vcpu_info(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: vcpu_mark_events_pending
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_mark_events_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: vcpu_update_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_update_evtchn_irq(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: vcpu_block_unless_event_pending
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_block_unless_event_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: vcpu_kick
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 15
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_kick(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - format
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: hypercall_create_continuation
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 19
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hypercall_create_continuation(unsigned int op, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: parse_arch_dom0_param
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int parse_arch_dom0_param(const char *s, const char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: raw_copy_to_guest
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long raw_copy_to_guest(void *to, const void *from, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: raw_copy_from_guest
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_from_guest(void *to, const void __user *from,\n
      \                                 unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sysctl
    argTypes:
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: arch_do_sysctl
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: long
    signature: "long arch_do_sysctl(struct xen_sysctl *sysctl,\n                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)
      u_sysctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - struct xen_sysctl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: arch_do_physinfo
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: unmap_mmio_regions
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int unmap_mmio_regions(struct domain *d,\n                       gfn_t
      start_gfn,\n                       unsigned long nr,\n                       mfn_t
      mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: map_mmio_regions
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int map_mmio_regions(struct domain *d,\n                     gfn_t
      start_gfn,\n                     unsigned long nr,\n                     mfn_t
      mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - fd
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - struct domain*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: set_foreign_p2m_entry
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,\n
      \                         unsigned long gfn, mfn_t mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: guest_physmap_remove_page
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_remove_page(struct domain *d, gfn_t gfn, mfn_t mfn,\n
      \                             unsigned int page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - usecs
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: udelay
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 6
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void udelay(unsigned long usecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: raw_clear_guest
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long raw_clear_guest(void *to, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: __cpu_up
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int __cpu_up(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: __cpu_disable
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void __cpu_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: __cpu_die
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void __cpu_die(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/stubs.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: get_upper_mfn_bound
    functionSourceFile: /src/xen/xen/arch/riscv/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_upper_mfn_bound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/vm_event.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct vm_event_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: vm_event_fill_regs
    functionSourceFile: /src/xen/xen/arch/riscv/vm_event.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vm_event_fill_regs(struct vm_event_st *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/vm_event.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - struct vm_event_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: vm_event_set_registers
    functionSourceFile: /src/xen/xen/arch/riscv/vm_event.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vm_event_set_registers(struct vcpu *v, struct vm_event_st *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: vm_event_monitor_next_interrupt
    functionSourceFile: /src/xen/xen/arch/riscv/vm_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_monitor_next_interrupt(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/setup.c:43,1
    - Dst: min
      Src: /src/xen/xen/arch/riscv/setup.c:48,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/riscv/setup.c:50,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/riscv/setup.c:50,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/riscv/setup.c:51,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/riscv/setup.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dst
    - paddr
    - len
    argTypes:
    - void*
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: copy_from_paddr
    functionSourceFile: /src/xen/xen/arch/riscv/setup.c
    functionUses: 0
    functionsReached:
    - clear_fixmap
    - FIXMAP_ADDR
    - min
    - maddr_to_mfn
    - set_fixmap
    - memcpy
    linkageType: ''
    returnType: void
    signature: void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xvmalloc_array
      Src: /src/xen/xen/arch/riscv/setup.c:63,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/setup.c:66,1
    - Dst: copy_from_paddr
      Src: /src/xen/xen/arch/riscv/setup.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dtb_paddr
    - dtb_size
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: relocate_fdt
    functionSourceFile: /src/xen/xen/arch/riscv/setup.c
    functionUses: 0
    functionsReached:
    - panic
    - xvmalloc_array
    - copy_from_paddr
    linkageType: ''
    returnType: void
    signature: void * __init relocate_fdt(paddr_t dtb_paddr, size_t dtb_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remove_identity_mapping
      Src: /src/xen/xen/arch/riscv/setup.c:79,1
    - Dst: smp_prepare_boot_cpu
      Src: /src/xen/xen/arch/riscv/setup.c:81,1
    - Dst: set_cpuid_to_hartid
      Src: /src/xen/xen/arch/riscv/setup.c:83,1
    - Dst: trap_init
      Src: /src/xen/xen/arch/riscv/setup.c:85,1
    - Dst: sbi_init
      Src: /src/xen/xen/arch/riscv/setup.c:87,1
    - Dst: setup_fixmap_mappings
      Src: /src/xen/xen/arch/riscv/setup.c:89,1
    - Dst: early_fdt_map
      Src: /src/xen/xen/arch/riscv/setup.c:91,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/setup.c:93,1
    - Dst: add_boot_module
      Src: /src/xen/xen/arch/riscv/setup.c:98,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/riscv/setup.c:98,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/setup.c:100,1
    - Dst: boot_fdt_info
      Src: /src/xen/xen/arch/riscv/setup.c:102,1
    - Dst: boot_fdt_cmdline
      Src: /src/xen/xen/arch/riscv/setup.c:104,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/setup.c:105,1
    - Dst: cmdline_parse
      Src: /src/xen/xen/arch/riscv/setup.c:106,1
    - Dst: setup_mm
      Src: /src/xen/xen/arch/riscv/setup.c:108,1
    - Dst: vm_init
      Src: /src/xen/xen/arch/riscv/setup.c:110,1
    - Dst: end_boot_allocator
      Src: /src/xen/xen/arch/riscv/setup.c:112,1
    - Dst: check_vsbi_ext_ranges
      Src: /src/xen/xen/arch/riscv/setup.c:114,1
    - Dst: init_constructors
      Src: /src/xen/xen/arch/riscv/setup.c:122,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/setup.c:126,1
    - Dst: relocate_fdt
      Src: /src/xen/xen/arch/riscv/setup.c:127,1
    - Dst: dt_unflatten_host_device_tree
      Src: /src/xen/xen/arch/riscv/setup.c:128,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/setup.c:133,1
    - Dst: init_IRQ
      Src: /src/xen/xen/arch/riscv/setup.c:136,1
    - Dst: riscv_fill_hwcap
      Src: /src/xen/xen/arch/riscv/setup.c:138,1
    - Dst: preinit_xen_time
      Src: /src/xen/xen/arch/riscv/setup.c:140,1
    - Dst: intc_preinit
      Src: /src/xen/xen/arch/riscv/setup.c:142,1
    - Dst: uart_init
      Src: /src/xen/xen/arch/riscv/setup.c:144,1
    - Dst: console_init_preirq
      Src: /src/xen/xen/arch/riscv/setup.c:145,1
    - Dst: intc_init
      Src: /src/xen/xen/arch/riscv/setup.c:147,1
    - Dst: timer_init
      Src: /src/xen/xen/arch/riscv/setup.c:149,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/riscv/setup.c:151,1
    - Dst: console_init_postirq
      Src: /src/xen/xen/arch/riscv/setup.c:153,1
    - Dst: guest_mm_init
      Src: /src/xen/xen/arch/riscv/setup.c:155,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/setup.c:157,1
    - Dst: machine_halt
      Src: /src/xen/xen/arch/riscv/setup.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 2
    argNames:
    - bootcpu_id
    - dtb_addr
    argTypes:
    - unsigned long
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 160
    functionName: start_xen
    functionSourceFile: /src/xen/xen/arch/riscv/setup.c
    functionUses: 0
    functionsReached:
    - console_init_preirq
    - local_irq_enable
    - timer_init
    - machine_halt
    - init_IRQ
    - setup_fixmap_mappings
    - sbi_init
    - uart_init
    - console_init_postirq
    - intc_preinit
    - intc_init
    - early_fdt_map
    - boot_fdt_cmdline
    - printk
    - cmdline_parse
    - relocate_fdt
    - smp_prepare_boot_cpu
    - vm_init
    - end_boot_allocator
    - dt_unflatten_host_device_tree
    - remove_identity_mapping
    - panic
    - preinit_xen_time
    - setup_mm
    - init_constructors
    - add_boot_module
    - trap_init
    - boot_fdt_info
    - riscv_fill_hwcap
    - virt_to_maddr
    - guest_mm_init
    - set_cpuid_to_hartid
    - check_vsbi_ext_ranges
    linkageType: ''
    returnType: void
    signature: "void start_xen(unsigned long bootcpu_id,\n                               paddr_t
      dtb_addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/traps.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: trap_init
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 1
    functionsReached:
    - csr_write
    linkageType: ''
    returnType: void
    signature: void trap_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/traps.c:56,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/riscv/traps.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cause
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: decode_trap_cause
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - array_access_nospec
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *decode_trap_cause(unsigned long cause)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - irq_cause
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: decode_reserved_interrupt_cause
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *decode_reserved_interrupt_cause(unsigned long irq_cause)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: decode_reserved_interrupt_cause
      Src: /src/xen/xen/arch/riscv/traps.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cause
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: decode_interrupt_cause
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - decode_reserved_interrupt_cause
    linkageType: ''
    returnType: char
    signature: char *decode_interrupt_cause(unsigned long cause)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: decode_interrupt_cause
      Src: /src/xen/xen/arch/riscv/traps.c:98,1
    - Dst: decode_trap_cause
      Src: /src/xen/xen/arch/riscv/traps.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cause
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: decode_cause
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - decode_trap_cause
    - decode_interrupt_cause
    linkageType: ''
    returnType: char
    signature: char *decode_cause(unsigned long cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:108,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:108,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:109,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:109,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:110,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:110,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:111,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:111,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:112,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:112,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:113,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:113,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:114,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:114,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:115,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:115,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:116,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:116,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:117,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:117,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:118,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:118,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:119,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:119,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:120,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:120,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:121,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:121,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:122,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:122,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 126
    functionName: dump_general_regs
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - X
    linkageType: ''
    returnType: void
    signature: void dump_general_regs(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - regs
    - ','
    - name
    - ','
    - delim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: X
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(regs, name, delim)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:136,1
    - Dst: decode_cause
      Src: /src/xen/xen/arch/riscv/traps.c:136,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:138,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:138,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:139,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:139,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:140,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:147,1
    - Dst: riscv_isa_extension_available
      Src: /src/xen/xen/arch/riscv/traps.c:149,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:151,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:154,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:154,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:155,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:155,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:156,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:156,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:157,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:157,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:158,1
    - Dst: X
      Src: /src/xen/xen/arch/riscv/traps.c:159,1
    - Dst: decode_cause
      Src: /src/xen/xen/arch/riscv/traps.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: dump_csrs
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - decode_cause
    - riscv_isa_extension_available
    - X
    linkageType: ''
    returnType: void
    signature: void dump_csrs(const char *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - csr
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: X
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name, csr, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_csrs
      Src: /src/xen/xen/arch/riscv/traps.c:166,1
    - Dst: dump_general_regs
      Src: /src/xen/xen/arch/riscv/traps.c:167,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/traps.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: do_unexpected_trap
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - die
    - dump_general_regs
    - dump_csrs
    linkageType: ''
    returnType: void
    signature: void do_unexpected_trap(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_handle_vmenter
      Src: /src/xen/xen/arch/riscv/traps.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: check_for_pcpu_work
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - p2m_handle_vmenter
    linkageType: ''
    returnType: void
    signature: void check_for_pcpu_work(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/traps.c:180,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/traps.c:186,1
    - Dst: vsbi_handle_ecall
      Src: /src/xen/xen/arch/riscv/traps.c:188,1
    - Dst: do_bug_frame
      Src: /src/xen/xen/arch/riscv/traps.c:192,1
    - Dst: is_kernel_text
      Src: /src/xen/xen/arch/riscv/traps.c:194,1
    - Dst: is_kernel_inittext
      Src: /src/xen/xen/arch/riscv/traps.c:194,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/traps.c:196,1
    - Dst: die
      Src: /src/xen/xen/arch/riscv/traps.c:197,1
    - Dst: GET_INSN_LENGTH
      Src: /src/xen/xen/arch/riscv/traps.c:200,1
    - Dst: intc_handle_external_irqs
      Src: /src/xen/xen/arch/riscv/traps.c:215,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/riscv/traps.c:227,1
    - Dst: check_for_pcpu_work
      Src: /src/xen/xen/arch/riscv/traps.c:232,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - cpu_regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 233
    functionName: do_trap
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 1
    functionsReached:
    - GET_INSN_LENGTH
    - is_kernel_inittext
    - check_for_pcpu_work
    - vsbi_handle_ecall
    - intc_handle_external_irqs
    - do_bug_frame
    - csr_read
    - BUG_ON
    - die
    - printk
    - is_kernel_text
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void do_trap(struct cpu_user_regs *cpu_regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/traps.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: vcpu_show_execution_state
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_show_execution_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/traps.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: show_execution_state
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 5
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void show_execution_state(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/traps.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - res
    argTypes:
    - struct vcpu*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: arch_hypercall_tasklet_result
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_hypercall_tasklet_result(struct vcpu *v, long res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/traps.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: arch_do_multicall_call
    functionSourceFile: /src/xen/xen/arch/riscv/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: enum mc_disposition
    signature: enum mc_disposition arch_do_multicall_call(struct mc_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_console_putchar
      Src: /src/xen/xen/arch/riscv/early_printk.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: early_puts
    functionSourceFile: /src/xen/xen/arch/riscv/early_printk.c
    functionUses: 0
    functionsReached:
    - sbi_console_putchar
    linkageType: ''
    returnType: void
    signature: void early_puts(const char *s, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: early_puts
      Src: /src/xen/xen/arch/riscv/early_printk.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: early_printk
    functionSourceFile: /src/xen/xen/arch/riscv/early_printk.c
    functionUses: 3
    functionsReached:
    - early_puts
    linkageType: ''
    returnType: void
    signature: void early_printk(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/aplic.c:46,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:47,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:52,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:58,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: aplic_init_hw_interrupts
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - writel
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void aplic_init_hw_interrupts(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/aplic.c:74,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:75,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/arch/riscv/aplic.c:77,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:79,1
    - Dst: imsic_init
      Src: /src/xen/xen/arch/riscv/aplic.c:81,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:87,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/aplic.c:90,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:92,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/aplic.c:95,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/aplic.c:96,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/riscv/aplic.c:98,1
    - Dst: dt_get_range
      Src: /src/xen/xen/arch/riscv/aplic.c:99,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:101,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/aplic.c:103,1
    - Dst: KB
      Src: /src/xen/xen/arch/riscv/aplic.c:103,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:104,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/aplic.c:107,1
    - Dst: KB
      Src: /src/xen/xen/arch/riscv/aplic.c:107,1
    - Dst: KB
      Src: /src/xen/xen/arch/riscv/aplic.c:107,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:108,1
    - Dst: ioremap
      Src: /src/xen/xen/arch/riscv/aplic.c:114,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:116,1
    - Dst: aplic_init_hw_interrupts
      Src: /src/xen/xen/arch/riscv/aplic.c:119,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 122
    functionName: aplic_init
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - imsic_init
    - ioremap
    - aplic_init_hw_interrupts
    - dt_property_read_u32
    - ARRAY_SIZE
    - panic
    - IS_ALIGNED
    - dt_get_property
    - dt_find_node_by_phandle
    - dt_get_range
    - KB
    linkageType: ''
    returnType: int
    signature: int aplic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:131,1
    - Dst: readl
      Src: /src/xen/xen/arch/riscv/aplic.c:131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:133,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/aplic.c:133,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/aplic.c:135,1
    - Dst: imsic_irq_enable
      Src: /src/xen/xen/arch/riscv/aplic.c:138,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:141,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/aplic.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 144
    functionName: aplic_irq_enable
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - writel
    - spin_unlock
    - spin_is_locked
    - spin_lock
    - ASSERT
    - readl
    - imsic_irq_enable
    linkageType: ''
    returnType: void
    signature: void aplic_irq_enable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:153,1
    - Dst: readl
      Src: /src/xen/xen/arch/riscv/aplic.c:153,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:155,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/aplic.c:155,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/aplic.c:157,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:160,1
    - Dst: imsic_irq_disable
      Src: /src/xen/xen/arch/riscv/aplic.c:163,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/aplic.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: aplic_irq_disable
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - writel
    - spin_unlock
    - spin_is_locked
    - imsic_irq_disable
    - spin_lock
    - ASSERT
    - readl
    linkageType: ''
    returnType: void
    signature: void aplic_irq_disable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aplic_irq_enable
      Src: /src/xen/xen/arch/riscv/aplic.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: aplic_irq_startup
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - aplic_irq_enable
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int aplic_irq_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/riscv/aplic.c:179,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/riscv/aplic.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpumask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: aplic_get_cpu_from_mask
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - cpumask_and
    - cpumask_any
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int aplic_get_cpu_from_mask(const cpumask_t *cpumask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:196,1
    - Dst: readl
      Src: /src/xen/xen/arch/riscv/aplic.c:196,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:198,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/riscv/aplic.c:198,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:200,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/aplic.c:200,1
    - Dst: cpuid_to_hartid
      Src: /src/xen/xen/arch/riscv/aplic.c:202,1
    - Dst: aplic_get_cpu_from_mask
      Src: /src/xen/xen/arch/riscv/aplic.c:202,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/aplic.c:219,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/aplic.c:224,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:226,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/aplic.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 229
    functionName: aplic_set_irq_affinity
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - writel
    - spin_unlock
    - BIT
    - cpumask_empty
    - spin_is_locked
    - ASSERT
    - spin_lock
    - cpuid_to_hartid
    - readl
    - aplic_get_cpu_from_mask
    linkageType: ''
    returnType: void
    signature: void aplic_set_irq_affinity(struct irq_desc *desc, const cpumask_t
      *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_clear
      Src: /src/xen/xen/arch/riscv/aplic.c:234,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/aplic.c:234,1
    - Dst: csr_clear
      Src: /src/xen/xen/arch/riscv/aplic.c:237,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/aplic.c:237,1
    - Dst: do_IRQ
      Src: /src/xen/xen/arch/riscv/aplic.c:240,1
    - Dst: csr_swap
      Src: /src/xen/xen/arch/riscv/aplic.c:240,1
    - Dst: csr_set
      Src: /src/xen/xen/arch/riscv/aplic.c:243,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/aplic.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: aplic_handle_interrupt
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - BIT
    - csr_clear
    - csr_swap
    - do_IRQ
    - csr_set
    linkageType: ''
    returnType: void
    signature: void aplic_handle_interrupt(struct cpu_user_regs *regs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/aplic.c:264,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/aplic.c:264,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/aplic.c:266,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:271,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:275,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:279,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:283,1
    - Dst: writel
      Src: /src/xen/xen/arch/riscv/aplic.c:288,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/aplic.c:292,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/aplic.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - desc
    - type
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 296
    functionName: aplic_set_irq_type
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - writel
    - spin_unlock
    - panic
    - spin_is_locked
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void aplic_set_irq_type(struct irq_desc *desc,\n                                        unsigned
      int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - intspec
    - intsize
    - out_hwirq
    - out_type
    argTypes:
    - uint32_t*
    - unsigned int
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 330
    functionName: aplic_irq_xlate
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int aplic_irq_xlate(const uint32_t *intspec,\n                                    unsigned
      int intsize,\n                                    unsigned int *out_hwirq,\n
      \                                   unsigned int *out_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/aplic.c:336,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/riscv/aplic.c:341,1
    - Dst: imsic_get_config
      Src: /src/xen/xen/arch/riscv/aplic.c:346,1
    - Dst: register_intc_ops
      Src: /src/xen/xen/arch/riscv/aplic.c:350,1
    - Dst: csr_set
      Src: /src/xen/xen/arch/riscv/aplic.c:353,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/aplic.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - dat
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 356
    functionName: aplic_preinit
    functionSourceFile: /src/xen/xen/arch/riscv/aplic.c
    functionUses: 0
    functionsReached:
    - BIT
    - register_intc_ops
    - dt_get_property
    - imsic_get_config
    - printk
    - csr_set
    linkageType: ''
    returnType: int
    signature: int aplic_preinit(struct dt_device_node *node, const void *dat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cycles
      Src: /src/xen/xen/arch/riscv/time.c:15,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/riscv/time.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: get_s_time
    functionSourceFile: /src/xen/xen/arch/riscv/time.c
    functionUses: 4
    functionsReached:
    - get_cycles
    - ticks_to_ns
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t get_s_time(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/riscv/time.c:25,1
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/arch/riscv/time.c:31,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/time.c:33,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/arch/riscv/time.c:35,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/riscv/time.c:37,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/time.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: preinit_dt_xen_time
    functionSourceFile: /src/xen/xen/arch/riscv/time.c
    functionUses: 0
    functionsReached:
    - DT_MATCH_PATH
    - dt_device_set_used_by
    - dt_property_read_u32
    - dt_find_matching_node
    - panic
    linkageType: ''
    returnType: void
    signature: void preinit_dt_xen_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preinit_dt_xen_time
      Src: /src/xen/xen/arch/riscv/time.c:46,1
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/time.c:48,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/riscv/time.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: preinit_xen_time
    functionSourceFile: /src/xen/xen/arch/riscv/time.c
    functionUses: 1
    functionsReached:
    - panic
    - get_cycles
    - preinit_dt_xen_time
    linkageType: ''
    returnType: void
    signature: void preinit_xen_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/paging.c:11,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/paging.c:11,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/riscv/paging.c:14,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/riscv/paging.c:18,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/paging.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 28
    functionName: _paging_ret_to_domheap
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - page_list_remove_head
    - ASSERT
    - printk
    - free_domheap_page
    linkageType: ''
    returnType: int
    signature: int _paging_ret_to_domheap(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/paging.c:34,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/paging.c:34,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/riscv/paging.c:37,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/paging.c:40,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/riscv/paging.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: _paging_add_to_freelist
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - alloc_domheap_page
    - spin_is_locked
    - ASSERT
    - printk
    linkageType: ''
    returnType: int
    signature: int _paging_add_to_freelist(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/paging.c:52,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/paging.c:52,1
    - Dst: _paging_add_to_freelist
      Src: /src/xen/xen/arch/riscv/paging.c:59,1
    - Dst: _paging_ret_to_domheap
      Src: /src/xen/xen/arch/riscv/paging.c:61,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/riscv/paging.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned long
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 77
    functionName: paging_freelist_adjust
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 1
    functionsReached:
    - spin_is_locked
    - _paging_add_to_freelist
    - ASSERT
    - general_preempt_check
    - _paging_ret_to_domheap
    linkageType: ''
    returnType: int
    signature: "int paging_freelist_adjust(struct domain *d, unsigned long pages,\n
      \                          bool *preempted)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/paging.c:81,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/paging.c:81,1
    - Dst: _paging_add_to_freelist
      Src: /src/xen/xen/arch/riscv/paging.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - nr_pages
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: paging_refill_from_domheap
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 1
    functionsReached:
    - _paging_add_to_freelist
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: int
    signature: int paging_refill_from_domheap(struct domain *d, unsigned int nr_pages)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/paging.c:96,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/riscv/paging.c:96,1
    - Dst: _paging_ret_to_domheap
      Src: /src/xen/xen/arch/riscv/paging.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - nr_pages
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: paging_ret_to_domheap
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - spin_is_locked
    - _paging_ret_to_domheap
    linkageType: ''
    returnType: int
    signature: int paging_ret_to_domheap(struct domain *d, unsigned int nr_pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/paging.c:114,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/riscv/paging.c:115,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/paging.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - pg
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: paging_free_page
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 1
    functionsReached:
    - page_list_add_tail
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void paging_free_page(struct domain *d, struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/paging.c:124,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/riscv/paging.c:125,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/paging.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: paging_alloc_page
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - spin_unlock
    - page_list_remove_head
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *paging_alloc_page(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/riscv/paging.c:135,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/riscv/paging.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: paging_domain_init
    functionSourceFile: /src/xen/xen/arch/riscv/paging.c
    functionUses: 2
    functionsReached:
    - spin_lock_init
    - INIT_PAGE_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int paging_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/riscv/pt.c:17,1
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/pt.c:17,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/riscv/pt.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: get_root_page
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - csr_read
    - maddr_to_mfn
    - pfn_to_paddr
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t get_root_page(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:31,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/pt.c:34,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:36,1
    - Dst: pte_is_table
      Src: /src/xen/xen/arch/riscv/pt.c:41,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:43,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/pt.c:58,1
    - Dst: pte_is_mapping
      Src: /src/xen/xen/arch/riscv/pt.c:60,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:61,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/pt.c:62,1
    - Dst: mfn_from_pte
      Src: /src/xen/xen/arch/riscv/pt.c:62,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/pt.c:62,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:64,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:72,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:72,1
    - Dst: pte_is_table
      Src: /src/xen/xen/arch/riscv/pt.c:75,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:77,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:85,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - entry
    - mfn
    - flags
    argTypes:
    - pte_t
    - mfn_t
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 89
    functionName: pt_check_entry
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - pte_is_table
    - mfn_from_pte
    - mfn_x
    - pte_is_mapping
    - ASSERT
    - mfn_eq
    - pte_is_valid
    - dprintk
    linkageType: ''
    returnType: bool
    signature: bool pt_check_entry(pte_t entry, mfn_t mfn, pte_attr_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pmap_map
      Src: /src/xen/xen/arch/riscv/pt.c:98,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/riscv/pt.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: map_table
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 3
    functionsReached:
    - pmap_map
    - map_domain_page
    linkageType: ''
    returnType: pte_t
    signature: pte_t *map_table(mfn_t mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pmap_unmap
      Src: /src/xen/xen/arch/riscv/pt.c:113,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/riscv/pt.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - table
    argTypes:
    - pte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: unmap_table
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - pmap_unmap
    linkageType: ''
    returnType: void
    signature: void unmap_table(const pte_t *table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/riscv/pt.c:126,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/riscv/pt.c:131,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/riscv/pt.c:134,1
    - Dst: map_table
      Src: /src/xen/xen/arch/riscv/pt.c:136,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/riscv/pt.c:137,1
    - Dst: unmap_table
      Src: /src/xen/xen/arch/riscv/pt.c:138,1
    - Dst: pte_from_mfn
      Src: /src/xen/xen/arch/riscv/pt.c:140,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/pt.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - entry
    argTypes:
    - pte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: create_table
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 1
    functionsReached:
    - page_to_mfn
    - write_pte
    - clear_page
    - alloc_domheap_page
    - unmap_table
    - pte_from_mfn
    - alloc_boot_pages
    - map_table
    linkageType: ''
    returnType: bool
    signature: bool create_table(pte_t *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/pt.c:171,1
    - Dst: create_table
      Src: /src/xen/xen/arch/riscv/pt.c:176,1
    - Dst: pte_is_mapping
      Src: /src/xen/xen/arch/riscv/pt.c:180,1
    - Dst: mfn_from_pte
      Src: /src/xen/xen/arch/riscv/pt.c:183,1
    - Dst: unmap_table
      Src: /src/xen/xen/arch/riscv/pt.c:185,1
    - Dst: map_table
      Src: /src/xen/xen/arch/riscv/pt.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - alloc_tbl
    - table
    - offset
    argTypes:
    - bool
    - pte_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 189
    functionName: pt_next_level
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 5
    functionsReached:
    - mfn_from_pte
    - create_table
    - unmap_table
    - pte_is_mapping
    - map_table
    - pte_is_valid
    linkageType: ''
    returnType: int
    signature: int pt_next_level(bool alloc_tbl, pte_t **table, unsigned int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_root_page
      Src: /src/xen/xen/arch/riscv/pt.c:203,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/riscv/pt.c:207,1
    - Dst: map_table
      Src: /src/xen/xen/arch/riscv/pt.c:209,1
    - Dst: pt_next_level
      Src: /src/xen/xen/arch/riscv/pt.c:227,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - va
    - pte_level
    argTypes:
    - vaddr_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 239
    functionName: _pt_walk
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - pt_next_level
    - get_root_page
    - ASSERT
    - DECLARE_OFFSETS
    - map_table
    linkageType: ''
    returnType: pte_t
    signature: pte_t *_pt_walk(vaddr_t va, unsigned int *pte_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pt_walk
      Src: /src/xen/xen/arch/riscv/pt.c:243,1
    - Dst: unmap_table
      Src: /src/xen/xen/arch/riscv/pt.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - va
    - pte_level
    argTypes:
    - vaddr_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: pt_walk
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 1
    functionsReached:
    - unmap_table
    - _pt_walk
    linkageType: ''
    returnType: pte_t
    signature: pte_t pt_walk(vaddr_t va, unsigned int *pte_level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:275,1
    - Dst: _pt_walk
      Src: /src/xen/xen/arch/riscv/pt.c:279,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/riscv/pt.c:285,1
    - Dst: map_table
      Src: /src/xen/xen/arch/riscv/pt.c:287,1
    - Dst: pt_next_level
      Src: /src/xen/xen/arch/riscv/pt.c:290,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:309,1
    - Dst: pt_check_entry
      Src: /src/xen/xen/arch/riscv/pt.c:319,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:334,1
    - Dst: pte_from_mfn
      Src: /src/xen/xen/arch/riscv/pt.c:335,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/pt.c:346,1
    - Dst: unmap_table
      Src: /src/xen/xen/arch/riscv/pt.c:351,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 5
    argNames:
    - root
    - virt
    - mfn
    - target
    - flags
    argTypes:
    - mfn_t
    - vaddr_t
    - mfn_t
    - unsigned int*
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 354
    functionName: pt_update_entry
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - pt_next_level
    - write_pte
    - _pt_walk
    - pt_check_entry
    - unmap_table
    - pte_from_mfn
    - mfn_eq
    - DECLARE_OFFSETS
    - map_table
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int pt_update_entry(mfn_t root, vaddr_t virt,\n                           mfn_t
      mfn, unsigned int *target,\n                           pte_attr_t flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/pt.c:368,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:383,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/pt.c:383,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/pt.c:388,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/pt.c:388,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/pt.c:389,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/pt.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - vfn
    - mfn
    - nr
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 397
    functionName: pt_mapping_level
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - unlikely
    - BIT
    - mfn_x
    - mfn_eq
    - XEN_PT_LEVEL_ORDER
    linkageType: ''
    returnType: int
    signature: "int pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long nr,\n
      \                           pte_attr_t flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/pt.c:415,1
    - Dst: get_root_page
      Src: /src/xen/xen/arch/riscv/pt.c:417,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:428,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/pt.c:433,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/riscv/pt.c:435,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/pt.c:440,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:468,1
    - Dst: pt_mapping_level
      Src: /src/xen/xen/arch/riscv/pt.c:469,1
    - Dst: pt_update_entry
      Src: /src/xen/xen/arch/riscv/pt.c:471,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/riscv/pt.c:475,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:478,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/riscv/pt.c:479,1
    - Dst: RISCV_FENCE
      Src: /src/xen/xen/arch/riscv/pt.c:485,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/pt.c:487,1
    - Dst: flush_tlb_range_va
      Src: /src/xen/xen/arch/riscv/pt.c:501,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - vaddr_t
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 411
    functionDepth: 6
    functionLinenumber: 411
    functionLinenumberEnd: 504
    functionName: pt_update
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - mfn_eq
    - spin_unlock
    - get_root_page
    - RISCV_FENCE
    - XEN_PT_LEVEL_ORDER
    - IS_ALIGNED
    - mfn_add
    - flush_tlb_range_va
    - spin_lock
    - PFN_DOWN
    - pt_mapping_level
    - dprintk
    - pt_update_entry
    linkageType: ''
    returnType: int
    signature: "int pt_update(vaddr_t virt, mfn_t mfn,\n                     unsigned
      long nr_mfns, pte_attr_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:521,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/riscv/pt.c:521,1
    - Dst: pt_update
      Src: /src/xen/xen/arch/riscv/pt.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 7
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: map_pages_to_xen
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 20
    functionsReached:
    - ASSERT
    - pt_update
    - mfn_eq
    linkageType: ''
    returnType: int
    signature: "int map_pages_to_xen(unsigned long virt,\n                     mfn_t
      mfn,\n                     unsigned long nr_mfns,\n                     pte_attr_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:528,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/pt.c:528,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/pt.c:529,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/riscv/pt.c:529,1
    - Dst: pt_update
      Src: /src/xen/xen/arch/riscv/pt.c:531,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/pt.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 7
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: destroy_xen_mappings
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 7
    functionsReached:
    - ASSERT
    - IS_ALIGNED
    - pt_update
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mappings(unsigned long s, unsigned long e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pt_update
      Src: /src/xen/xen/arch/riscv/pt.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - virt
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 7
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: populate_pt_range
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 0
    functionsReached:
    - pt_update
    linkageType: ''
    returnType: int
    signature: int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/riscv/pt.c:542,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/pt.c:542,1
    - Dst: BUG
      Src: /src/xen/xen/arch/riscv/pt.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - map
    - mfn
    - flags
    argTypes:
    - unsigned int
    - mfn_t
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: set_fixmap
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 7
    functionsReached:
    - map_pages_to_xen
    - BUG
    - FIXMAP_ADDR
    linkageType: ''
    returnType: void
    signature: void set_fixmap(unsigned int map, mfn_t mfn, pte_attr_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/riscv/pt.c:549,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/pt.c:549,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/pt.c:550,1
    - Dst: BUG
      Src: /src/xen/xen/arch/riscv/pt.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 552
    functionName: clear_fixmap
    functionSourceFile: /src/xen/xen/arch/riscv/pt.c
    functionUses: 7
    functionsReached:
    - destroy_xen_mappings
    - BUG
    - FIXMAP_ADDR
    linkageType: ''
    returnType: void
    signature: void clear_fixmap(unsigned int map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_max_supported_mode
      Src: /src/xen/xen/arch/riscv/vmid.c:55,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/vmid.c:66,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/vmid.c:67,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/vmid.c:68,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/vmid.c:69,1
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/vmid.c:69,1
    - Dst: flsl
      Src: /src/xen/xen/arch/riscv/vmid.c:70,1
    - Dst: csr_write
      Src: /src/xen/xen/arch/riscv/vmid.c:71,1
    - Dst: _AC
      Src: /src/xen/xen/arch/riscv/vmid.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: vmidlen_detect
    functionSourceFile: /src/xen/xen/arch/riscv/vmid.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - csr_write
    - flsl
    - get_max_supported_mode
    - ASSERT
    - csr_read
    - _AC
    - MASK_EXTR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vmidlen_detect(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vmidlen_detect
      Src: /src/xen/xen/arch/riscv/vmid.c:86,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/riscv/vmid.c:87,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/vmid.c:89,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/vmid.c:89,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/vmid.c:90,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/vmid.c:92,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/vmid.c:98,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/vmid.c:101,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/riscv/vmid.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 109
    functionName: vmid_init
    functionSourceFile: /src/xen/xen/arch/riscv/vmid.c
    functionUses: 1
    functionsReached:
    - BIT
    - smp_processor_id
    - vmidlen_detect
    - BUILD_BUG_ON
    - printk
    - this_cpu
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: void vmid_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/vmid.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: vmid_flush_vcpu
    functionSourceFile: /src/xen/xen/arch/riscv/vmid.c
    functionUses: 0
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void vmid_flush_vcpu(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/riscv/vmid.c:118,1
    - Dst: likely
      Src: /src/xen/xen/arch/riscv/vmid.c:123,1
    - Dst: printk
      Src: /src/xen/xen/arch/riscv/vmid.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: vmid_flush_hart
    functionSourceFile: /src/xen/xen/arch/riscv/vmid.c
    functionUses: 0
    functionsReached:
    - likely
    - printk
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void vmid_flush_hart(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/riscv/vmid.c:137,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/vmid.c:143,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/riscv/vmid.c:147,1
    - Dst: vmid_flush_hart
      Src: /src/xen/xen/arch/riscv/vmid.c:149,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/vmid.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - vmid
    argTypes:
    - struct vcpu_vmid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 168
    functionName: vmid_handle_vmenter
    functionSourceFile: /src/xen/xen/arch/riscv/vmid.c
    functionUses: 1
    functionsReached:
    - write_atomic
    - vmid_flush_hart
    - this_cpu
    - read_atomic
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool vmid_handle_vmenter(struct vcpu_vmid *vmid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: BLANK
    functionSourceFile: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLANK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sym
    - ','
    - _str
    - ','
    - _mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: OFFSET
    functionSourceFile: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(_sym, _str, _mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE
      Src: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c:17,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c:54,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c:55,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 57
    functionName: asm_offsets
    functionSourceFile: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c
    functionUses: 0
    functionsReached:
    - DEFINE
    - BLANK
    linkageType: ''
    returnType: void
    signature: void asm_offsets(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:22,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:27,1
    - Dst: xen_major_version
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:36,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:36,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:42,1
    - Dst: sbi_ecall
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:44,1
    - Dst: vsbi_find_extension
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:63,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/riscv/vsbi/base-extension.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - eid
    - fid
    - regs
    argTypes:
    - unsigned long
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 80
    functionName: vsbi_base_ecall_handler
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/base-extension.c
    functionUses: 0
    functionsReached:
    - MASK_INSR
    - xen_minor_version
    - ASSERT
    - sbi_ecall
    - is_hardware_domain
    - domain_crash
    - vsbi_find_extension
    - xen_major_version
    linkageType: ''
    returnType: int
    signature: "int vsbi_base_ecall_handler(unsigned long eid, unsigned long fid,\n
      \                                  struct cpu_user_regs *regs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/arch/riscv/vsbi/core.c:16,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: check_vsbi_ext_ranges
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/core.c
    functionUses: 1
    functionsReached:
    - panic
    linkageType: ''
    returnType: void
    signature: void check_vsbi_ext_ranges(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - eid
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: vsbi_find_extension
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct vsbi_ext
    signature: struct vsbi_ext *vsbi_find_extension(unsigned long eid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsbi_find_extension
      Src: /src/xen/xen/arch/riscv/vsbi/core.c:37,1
    - Dst: struct vsbi_ext*::handler
      Src: /src/xen/xen/arch/riscv/vsbi/core.c:41,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/riscv/vsbi/core.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 57
    functionName: vsbi_handle_ecall
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/core.c
    functionUses: 1
    functionsReached:
    - gprintk
    - vsbi_find_extension
    - struct vsbi_ext*::handler
    linkageType: ''
    returnType: void
    signature: void vsbi_handle_ecall(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_console_printable
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:16,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:19,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:20,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:20,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:23,1
    - Dst: guest_printk
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:26,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 30
    functionName: vsbi_print_char
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ARRAY_SIZE
    - is_console_printable
    - guest_printk
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void vsbi_print_char(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vsbi_print_char
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:40,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - eid
    - fid
    - regs
    argTypes:
    - unsigned long
    - unsigned long
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 61
    functionName: vsbi_legacy_ecall_handler
    functionSourceFile: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - vsbi_print_char
    linkageType: ''
    returnType: int
    signature: "int vsbi_legacy_ecall_handler(unsigned long eid, unsigned long fid,\n
      \                                    struct cpu_user_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: SLOTN
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOTN(slot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: readb_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:40,1
    - Dst: readw_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:41,1
    - Dst: readl_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:42,1
    - Dst: readq_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:44,1
    - Dst: __bad_atomic_size
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - p
    - res
    - size
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: read_atomic_size
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - readw_cpu
    - __bad_atomic_size
    - readb_cpu
    - readl_cpu
    - readq_cpu
    linkageType: ''
    returnType: always_inline
    signature: "always_inline read_atomic_size(const volatile void *p,\n                                           void
      *res,\n                                           unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: read_atomic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_atomic(p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writeb_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:62,1
    - Dst: writew_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:63,1
    - Dst: writel_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:64,1
    - Dst: writeq_cpu
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:66,1
    - Dst: __bad_atomic_size
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - p
    - x
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: _write_atomic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - writeb_cpu
    - __bad_atomic_size
    - writew_cpu
    - writeq_cpu
    - writel_cpu
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _write_atomic(volatile void *p,\n                                        unsigned
      long x,\n                                        unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: write_atomic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_atomic(p, x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:87,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:87,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:93,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:93,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:99,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:99,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:106,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:106,1
    - Dst: __bad_atomic_size
      Src: /src/xen/xen/arch/riscv/include/asm/atomic.h:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - p
    - x
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 112
    functionName: _add_sized
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - write_atomic
    - read_atomic
    - __bad_atomic_size
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _add_sized(volatile void *p,\n                                     unsigned
      long x, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: add_sized
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_sized(p, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: __atomic_acquire_fence
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __atomic_acquire_fence()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: __atomic_release_fence
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __atomic_release_fence()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - op
    - ','
    - asm_op
    - ','
    - unary_op
    - ','
    - asm_type
    - ','
    - c_type
    - ','
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: ATOMIC_OP
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OP(op, asm_op, unary_op, asm_type, c_type, prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - asm_op
    - ','
    - unary_op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: ATOMIC_OPS
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OPS(op, asm_op, unary_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - op
    - ','
    - asm_op
    - ','
    - c_op
    - ','
    - unary_op
    - ','
    - asm_type
    - ','
    - c_type
    - ','
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: ATOMIC_OP_RETURN
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OP_RETURN(op, asm_op, c_op, unary_op, asm_type, c_type, prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - asm_op
    - ','
    - unary_op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: ATOMIC_OPS
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OPS(op, asm_op, unary_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: ATOMIC_OPS
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OPS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ext
    - ','
    - start
    - ','
    - end
    - ','
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: VSBI_EXT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/vsbi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSBI_EXT(ext, start, end, handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: hyp_mode
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hyp_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/regs.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: guest_mode
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/regs.h
    functionUses: 14
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool guest_mode(const struct cpu_user_regs *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - new
    - ','
    - ret
    - ','
    - sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: _amoswap_generic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _amoswap_generic(ptr, new, ret, sfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - new
    - ','
    - lr_sfx
    - ','
    - sc_sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: emulate_xchg_1_2
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_xchg_1_2(ptr, new, lr_sfx, sc_sfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: emulate_xchg_1_2
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:79,1
    - Dst: emulate_xchg_1_2
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:82,1
    - Dst: _amoswap_generic
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:85,1
    - Dst: ret::ret
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:85,1
    - Dst: _amoswap_generic
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:89,1
    - Dst: ret::ret
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:89,1
    - Dst: __bad_xchg
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ptr
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: __xchg
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 0
    functionsReached:
    - _amoswap_generic
    - __bad_xchg
    - ret::ret
    - emulate_xchg_1_2
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __xchg(volatile void *ptr,\n                                          unsigned
      long new,\n                                          unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: xchg
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xchg(ptr, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ptr
    - ','
    - old
    - ','
    - new
    - ','
    - lr_sfx
    - ','
    - sc_sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: _generic_cmpxchg
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _generic_cmpxchg(ptr, old, new, lr_sfx, sc_sfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ptr
    - ','
    - old
    - ','
    - new
    - ','
    - lr_sfx
    - ','
    - sc_sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: emulate_cmpxchg_1_2
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: emulate_cmpxchg_1_2(ptr, old, new, lr_sfx, sc_sfx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: emulate_cmpxchg_1_2
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:200,1
    - Dst: emulate_cmpxchg_1_2
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:204,1
    - Dst: _generic_cmpxchg
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:208,1
    - Dst: _generic_cmpxchg
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:213,1
    - Dst: __bad_cmpxchg
      Src: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 222
    functionName: __cmpxchg
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 1
    functionsReached:
    - _generic_cmpxchg
    - __bad_cmpxchg
    - emulate_cmpxchg_1_2
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __cmpxchg(volatile void *ptr,\n                                             unsigned
      long old,\n                                             unsigned long new,\n
      \                                            unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: cmpxchg
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 14
    functionName: guest_testop
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_testop(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: guest_bitop
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_bitop(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: guest_test_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: arch_lock_acquire_barrier
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_acquire_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: arch_lock_release_barrier
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_release_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: arch_lock_relax
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: arch_lock_signal
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: arch_lock_signal_wmb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - domid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: arch_hwdom_irqs
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_hwdom_irqs(domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: domain_pirq_to_irq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/irq.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_pirq_to_irq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: arch_evtchn_bind_pirq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_evtchn_bind_pirq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/irq.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: arch_move_irqs
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/irq.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_move_irqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: evaluate_nospec
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool evaluate_nospec(bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: block_speculation
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/nospec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void block_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: guest_handle_okay
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/guest_access.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_okay(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - first
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: guest_handle_subrange_okay
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_subrange_okay(hnd, first, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: __AMO
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AMO(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: __AMO
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AMO(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: __set_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __set_bit(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: __clear_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_bit(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op
    - ','
    - mod
    - ','
    - nr
    - ','
    - addr
    - ','
    - ord
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: test_and_op_bit_ord
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_op_bit_ord(op, mod, nr, addr, ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op
    - ','
    - mod
    - ','
    - nr
    - ','
    - addr
    - ','
    - ord
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: op_bit_ord
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: op_bit_ord(op, mod, nr, addr, ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - mod
    - ','
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: test_and_op_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_op_bit(op, mod, nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - mod
    - ','
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: op_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: op_bit(op, mod, nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: NOP
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: NOT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_op_bit
      Src: /src/xen/xen/arch/riscv/include/asm/bitops.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - p
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 29
    functionsReached:
    - test_and_op_bit
    linkageType: ''
    returnType: bool
    signature: bool test_and_set_bit(int nr, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_op_bit
      Src: /src/xen/xen/arch/riscv/include/asm/bitops.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - p
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 20
    functionsReached:
    - test_and_op_bit
    linkageType: ''
    returnType: bool
    signature: bool test_and_clear_bit(int nr, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_op_bit
      Src: /src/xen/xen/arch/riscv/include/asm/bitops.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - p
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached:
    - test_and_op_bit
    linkageType: ''
    returnType: bool
    signature: bool test_and_change_bit(int nr, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op_bit
      Src: /src/xen/xen/arch/riscv/include/asm/bitops.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - p
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: set_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 124
    functionsReached:
    - op_bit
    linkageType: ''
    returnType: void
    signature: void set_bit(int nr, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: op_bit
      Src: /src/xen/xen/arch/riscv/include/asm/bitops.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - p
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: clear_bit
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 67
    functionsReached:
    - op_bit
    linkageType: ''
    returnType: void
    signature: void clear_bit(int nr, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: arch_ffs
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: arch_ffsl
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: arch_fls
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fls(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: arch_flsl
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_flsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: arch_hweightl
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_hweightl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: RISCV_FENCE
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RISCV_FENCE(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: mb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: rmb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: wmb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: smp_mb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: smp_rmb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: smp_wmb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: smp_mb__before_atomic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__before_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: smp_mb__after_atomic
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__after_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/include/asm/system.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: local_save_flags
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 2
    functionsReached:
    - csr_read
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long local_save_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_set
      Src: /src/xen/xen/arch/riscv/include/asm/system.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: local_irq_enable
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 27
    functionsReached:
    - csr_set
    linkageType: ''
    returnType: void
    signature: void local_irq_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_clear
      Src: /src/xen/xen/arch/riscv/include/asm/system.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: local_irq_disable
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 21
    functionsReached:
    - csr_clear
    linkageType: ''
    returnType: void
    signature: void local_irq_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: local_irq_save
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_save(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_set
      Src: /src/xen/xen/arch/riscv/include/asm/system.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: local_irq_restore
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 35
    functionsReached:
    - csr_set
    linkageType: ''
    returnType: void
    signature: void local_irq_restore(unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/riscv/include/asm/system.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: local_irq_is_enabled
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 26
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: bool
    signature: bool local_irq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: arch_fetch_and_add
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/system.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fetch_and_add(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: paddr_to_pfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - paddr
    - permissions
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: paddr_to_pte
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 3
    functionsReached:
    - paddr_to_pfn
    linkageType: ''
    returnType: pte_t
    signature: "pte_t paddr_to_pte(paddr_t paddr,\n                                 unsigned
      int permissions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: pte_to_paddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - pfn_to_paddr
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t pte_to_paddr(pte_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: gfn_to_gaddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_to_gaddr(gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ga
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: gaddr_to_gfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gaddr_to_gfn(ga)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: mfn_to_maddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_maddr(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: maddr_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_mfn(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: vmap_to_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_page(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_directmapoff
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:43,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 6
    functionsReached:
    - ASSERT
    - maddr_to_directmapoff
    linkageType: ''
    returnType: void
    signature: void *maddr_to_virt(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: mfn_from_pte
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_from_pte(pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: vmap_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_mfn(va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _AC
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:68,1
    - Dst: directmapoff_to_maddr
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:73,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:75,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:81,1
    - Dst: is_init_section
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - va
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 85
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 24
    functionsReached:
    - directmapoff_to_maddr
    - ASSERT
    - is_init_section
    - _AC
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long virt_to_maddr(unsigned long va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_maddr(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: __virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: __mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: mfn_to_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 152
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_page(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: page_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_mfn(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: maddr_to_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_page(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: page_to_maddr
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_maddr(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:198,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:198,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: page_to_virt
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - mfn_x
    - mfn_to_virt
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: void *page_to_virt(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:206,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: virt_to_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 4
    functionsReached:
    - ASSERT
    - PFN_DOWN
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *virt_to_page(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: get_page_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_page_type(struct page_info *page, unsigned long type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    functionName: put_page_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_page_type(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page_type
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:227,1
    - Dst: put_page
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: put_page_and_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 25
    functionsReached:
    - put_page
    - put_page_type
    linkageType: ''
    returnType: void
    signature: void put_page_and_type(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: SHARED_M2P
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_M2P(_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mfn
    - ','
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: set_gpfn_from_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_gpfn_from_mfn(mfn, pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: mfn_to_gfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_gfn(d, mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: domain_get_maximum_gpfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long domain_get_maximum_gpfn(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/mm.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: arch_memory_op
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: long
    signature: long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: arch_mfns_in_directmap
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: PG_shift
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_shift(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: PG_mask
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_mask(x, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pg
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: page_state_is
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_state_is(pg, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: is_xen_heap_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: is_xen_heap_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: is_xen_fixed_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_fixed_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: page_get_owner
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_get_owner(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: page_set_owner
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_set_owner(p, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: mfn_valid
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 97
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_valid(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: PFN_ORDER
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_ORDER(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: arch_get_dma_bitsize
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_dma_bitsize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: GET_INSN_LENGTH
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_INSN_LENGTH(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: local_hfence_gvma_all
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void local_hfence_gvma_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HFENCE_VVMA
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: flush_tlb_guest_local
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 1
    functionsReached:
    - HFENCE_VVMA
    linkageType: ''
    returnType: void
    signature: void flush_tlb_guest_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: flush_tlb_one_local
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void flush_tlb_one_local(vaddr_t va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:33,1
    - Dst: sbi_has_rfence
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:33,1
    - Dst: sbi_remote_sfence_vma
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - va
    - size
    argTypes:
    - vaddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: flush_tlb_range_va
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    - sbi_has_rfence
    - sbi_remote_sfence_vma
    linkageType: ''
    returnType: void
    signature: void flush_tlb_range_va(vaddr_t va, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mask
    - page_timestamp
    argTypes:
    - cpumask_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: tlbflush_filter
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: tlbflush_current_time
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tlbflush_current_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: page_set_tlbflush_timestamp
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 2
    functionsReached:
    - tlbflush_current_time
    linkageType: ''
    returnType: void
    signature: void page_set_tlbflush_timestamp(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sbi_remote_hfence_gvma
      Src: /src/xen/xen/arch/riscv/include/asm/flushtlb.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: arch_flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
    functionUses: 0
    functionsReached:
    - sbi_remote_hfence_gvma
    linkageType: ''
    returnType: void
    signature: void arch_flush_tlb_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:19,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:19,1
    - Dst: pte_from_mfn
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:21,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:22,1
    - Dst: flush_tlb_one_local
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:24,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - slot
    - mfn
    argTypes:
    - unsigned int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: arch_pmap_map
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/pmap.h
    functionUses: 0
    functionsReached:
    - write_pte
    - flush_tlb_one_local
    - FIXMAP_ADDR
    - ASSERT
    - pte_from_mfn
    - pte_is_valid
    linkageType: ''
    returnType: void
    signature: void arch_pmap_map(unsigned int slot, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_pte
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:31,1
    - Dst: flush_tlb_one_local
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:33,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/riscv/include/asm/pmap.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: arch_pmap_unmap
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/pmap.h
    functionUses: 0
    functionsReached:
    - FIXMAP_ADDR
    - write_pte
    - flush_tlb_one_local
    linkageType: ''
    returnType: void
    signature: void arch_pmap_unmap(unsigned int slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpuid
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: cpuid_to_hartid
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/smp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long cpuid_to_hartid(unsigned long cpuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/riscv/include/asm/smp.h:24,1
    - Dst: cpuid_to_hartid
      Src: /src/xen/xen/arch/riscv/include/asm/smp.h:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hartid
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: hartid_to_cpuid
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/smp.h
    functionUses: 1
    functionsReached:
    - cpuid_to_hartid
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hartid_to_cpuid(unsigned long hartid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpuid
    - hartid
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: set_cpuid_to_hartid
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/smp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_cpuid_to_hartid(unsigned long cpuid,\n                                       unsigned
      long hartid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - vaddr
    - ','
    - asid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: HFENCE_VVMA
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/insn-defs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HFENCE_VVMA(vaddr, asid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p2m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: P2M_ROOT_LEVEL
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_ROOT_LEVEL(p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: P2M_LEVEL_ORDER
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_LEVEL_ORDER(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p2m
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: P2M_ROOT_EXTRA_BITS
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_ROOT_EXTRA_BITS(p2m, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p2m
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: P2M_PAGETABLE_ENTRIES
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_PAGETABLE_ENTRIES(p2m, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p2m
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: P2M_TABLE_OFFSET
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_TABLE_OFFSET(p2m, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: P2M_GFN_LEVEL_SHIFT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_GFN_LEVEL_SHIFT(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p2m
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: P2M_LEVEL_MASK
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_LEVEL_MASK(p2m, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: p2m_get_hostp2m
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_get_hostp2m(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: arch_dt_passthrough_p2m_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: p2m_type_t
    signature: p2m_type_t arch_dt_passthrough_p2m_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: p2m_to_mask
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_to_mask(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: p2m_is_ram
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_ram(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: p2m_is_any_ram
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_any_ram(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: p2m_is_foreign
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_foreign(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - page
    - domain
    - type
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: get_page_and_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 7
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int get_page_and_type(struct page_info *page,\n                                    struct
      domain *domain,\n                                    unsigned long type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - gfn
    - t
    - q
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 31
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_gfn(\n    struct domain *d, unsigned
      long gfn, p2m_type_t *t, p2m_query_t q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: memory_type_changed
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 9
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void memory_type_changed(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: guest_physmap_mark_populate_on_demand
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_mark_populate_on_demand(struct domain *d,\n                                                        unsigned
      long gfn,\n                                                        unsigned
      int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:202,1
    - Dst: BIT
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: __must_check::guest_physmap_add_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - map_regions_p2mt
    - BIT
    linkageType: ''
    returnType: int
    signature: "int __must_check\nguest_physmap_add_page(struct domain *d, gfn_t gfn,
      mfn_t mfn,\n                       unsigned int page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: gfn_to_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: arch_acquire_resource_check
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_acquire_resource_check(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: p2m_write_lock
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - write_lock
    linkageType: ''
    returnType: void
    signature: void p2m_write_lock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: p2m_is_write_locked
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - rw_is_write_locked
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_write_locked(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: p2m_read_lock
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - read_lock
    linkageType: ''
    returnType: void
    signature: void p2m_read_lock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_unlock
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: p2m_read_unlock
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_read_unlock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_is_locked
      Src: /src/xen/xen/arch/riscv/include/asm/p2m.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: p2m_is_locked
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - rw_is_locked
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_locked(const struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: cpu_to_core
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_core(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: cpu_to_socket
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_socket(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/riscv/include/asm/processor.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: cpu_relax
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 28
    functionsReached:
    - barrier
    linkageType: ''
    returnType: void
    signature: void cpu_relax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: wfi
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wfi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wfi
      Src: /src/xen/xen/arch/riscv/include/asm/processor.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: die
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 5
    functionsReached:
    - wfi
    linkageType: ''
    returnType: void
    signature: void die(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: sfence_vma
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sfence_vma(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: dump_execution_state
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dump_execution_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/riscv/include/asm/domain.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: alloc_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct vcpu_guest_context
    signature: struct vcpu_guest_context *alloc_vcpu_guest_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/riscv/include/asm/domain.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgc
    argTypes:
    - struct vcpu_guest_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: free_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - gmp
    argTypes:
    - struct vcpu*
    - struct guest_memory_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: update_guest_memory_policy
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_guest_memory_policy(struct vcpu *v,\n                                              struct
      guest_memory_policy *gmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: arch_vcpu_block
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_block(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: set_processor_id
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_processor_id(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/current.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: smp_processor_id
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 169
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int smp_processor_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: set_current
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_current(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: get_cpu_current
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu_current(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: guest_cpu_user_regs
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cpu_user_regs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stack
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: switch_stack_and_jump
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: switch_stack_and_jump(stack, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: get_per_cpu_offset
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_per_cpu_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/monitor.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: arch_monitor_get_capabilities
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/monitor.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t arch_monitor_get_capabilities(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: FIXMAP_ADDR
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/fixmap.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXMAP_ADDR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: fix_to_virt
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/fixmap.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fix_to_virt(slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/fixmap.h:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vaddr
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: virt_to_fix
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/fixmap.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int virt_to_fix(vaddr_t vaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/event.h:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: vcpu_event_delivery_is_enabled
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/event.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int vcpu_event_delivery_is_enabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/event.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: local_events_need_delivery
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/event.h
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int local_events_need_delivery(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/event.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: local_event_delivery_enable
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/event.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void local_event_delivery_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: arch_get_virq_type
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum virq_type
    signature: enum virq_type arch_get_virq_type(unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/time.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: force_update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/time.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void force_update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csr_read
      Src: /src/xen/xen/arch/riscv/include/asm/time.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: get_cycles
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/time.h
    functionUses: 3
    functionsReached:
    - csr_read
    linkageType: ''
    returnType: cycles_t
    signature: cycles_t get_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - uint8_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: __raw_writeb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writeb(uint8_t val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: __raw_writew
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writew(uint16_t val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: __raw_writel
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writel(uint32_t val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/io.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: __raw_writeq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void __raw_writeq(uint64_t val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: __raw_readb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t __raw_readb(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: __raw_readw
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t __raw_readw(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: __raw_readl
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t __raw_readl(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/io.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 115
    functionName: __raw_readq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __raw_readq(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: readb_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb_cpu(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: readw_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw_cpu(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: readl_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl_cpu(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: readq_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq_cpu(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: writeb_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb_cpu(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: writew_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew_cpu(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: writel_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel_cpu(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: writeq_cpu
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq_cpu(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: __io_br
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __io_br()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: __io_ar
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __io_ar()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: __io_bw
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __io_bw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: __io_aw
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __io_aw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: readb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: readw
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: readl
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: readq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: writeb
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: writew
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: writel
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: writeq
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: _UL
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _UL(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: _ULL
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ULL(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 861
    functionName: INSN_IS_16BIT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_IS_16BIT(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 864
    functionName: INSN_IS_32BIT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_IS_32BIT(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 866
    functionName: INSN_LEN
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSN_LEN(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 880
    functionName: RV_X
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RV_X(x, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 883
    functionName: RVC_LW_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_LW_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: RVC_LD_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_LD_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 888
    functionName: RVC_LWSP_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_LWSP_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 891
    functionName: RVC_LDSP_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_LDSP_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: RVC_SWSP_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_SWSP_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: RVC_SDSP_IMM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_SDSP_IMM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 896
    functionName: RVC_RS1S
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_RS1S(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 897
    functionName: RVC_RS2S
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_RS2S(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 898
    functionName: RVC_RS2
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RVC_RS2(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 901
    functionName: SHIFT_RIGHT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIFT_RIGHT(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: REG_OFFSET
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REG_OFFSET(insn, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - insn
    - ','
    - pos
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: REG_PTR
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REG_PTR(insn, pos, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 912
    functionName: GET_RM
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RM(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 914
    functionName: GET_RS1
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RS1(insn, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 915
    functionName: GET_RS2
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RS2(insn, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 916
    functionName: GET_RS1S
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RS1S(insn, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 917
    functionName: GET_RS2S
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RS2S(insn, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - insn
    - ','
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 918
    functionName: GET_RS2C
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RS2C(insn, regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: GET_SP
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SP(regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - insn
    - ','
    - regs
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 920
    functionName: SET_RD
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_RD(insn, regs, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    functionName: IMM_I
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM_I(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - insn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 923
    functionName: IMM_S
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMM_S(insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: XEN_PT_LEVEL_ORDER
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_ORDER(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: XEN_PT_LEVEL_SHIFT
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_SHIFT(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: XEN_PT_LEVEL_SIZE
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_SIZE(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: XEN_PT_LEVEL_MAP_MASK
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_MAP_MASK(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: XEN_PT_LEVEL_MASK
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_MASK(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lvl
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: pt_linear_offset
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_linear_offset(lvl, va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lvl
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: pt_index
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_index(lvl, va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - offs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: TABLE_OFFSET
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_OFFSET(offs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: l0_table_offset
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l0_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: l1_table_offset
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l1_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: l2_table_offset
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: l2_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: DECLARE_OFFSETS
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_OFFSETS(var, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:136,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:139,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - mfn
    argTypes:
    - pte_t*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: pte_set_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 2
    functionsReached:
    - mfn_x
    - MASK_INSR
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void pte_set_mfn(pte_t *p, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:144,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: pte_get_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 5
    functionsReached:
    - _mfn
    - MASK_EXTR
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t pte_get_mfn(pte_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: pte_is_valid
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pte_is_valid(pte_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: pte_is_table
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool pte_is_table(pte_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: pte_is_mapping
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 4
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool pte_is_mapping(pte_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pte_is_mapping
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - level
    argTypes:
    - pte_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: pte_is_superpage
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 2
    functionsReached:
    - pte_is_mapping
    linkageType: ''
    returnType: bool
    signature: bool pte_is_superpage(pte_t p, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: clean_and_invalidate_dcache_va_range
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int clean_and_invalidate_dcache_va_range(const void *p,\n                                                       unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: clean_dcache_va_range
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int clean_dcache_va_range(const void *p, unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: invalidate_icache
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: clear_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - sp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: copy_page
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_page(dp, sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: scrub_page_hot
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scrub_page_hot(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pte
    argTypes:
    - pte_t*
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: write_pte
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 11
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void write_pte(pte_t *p, pte_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - pte_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: read_pte
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 0
    functionsReached:
    - read_atomic
    linkageType: ''
    returnType: pte_t
    signature: pte_t read_pte(const pte_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/arch/riscv/include/asm/page.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - flags
    argTypes:
    - mfn_t
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: pte_from_mfn
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/page.h
    functionUses: 5
    functionsReached:
    - mfn_x
    linkageType: ''
    returnType: pte_t
    signature: pte_t pte_from_mfn(mfn_t mfn, pte_attr_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - csr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: csr_read
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/csr.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: csr_read(csr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - csr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    functionName: csr_swap
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/csr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: csr_swap(csr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - csr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: csr_read_set
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/csr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: csr_read_set(csr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - csr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: csr_read_clear
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/csr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: csr_read_clear(csr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: __ASM_STR
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ASM_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: __ASM_STR
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ASM_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: __REG_SEL
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __REG_SEL(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: __REG_SEL
    functionSourceFile: /src/xen/xen/arch/riscv/include/asm/asm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __REG_SEL(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: opal_cec_power_down
      Src: /src/xen/xen/arch/ppc/shutdown.c:17,1
    - Dst: opal_poll_events
      Src: /src/xen/xen/arch/ppc/shutdown.c:20,1
    - Dst: opal_poll_events
      Src: /src/xen/xen/arch/ppc/shutdown.c:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: machine_halt
    functionSourceFile: /src/xen/xen/arch/ppc/shutdown.c
    functionUses: 3
    functionsReached:
    - opal_poll_events
    - opal_cec_power_down
    linkageType: ''
    returnType: void
    signature: void machine_halt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: opal_cec_reboot
      Src: /src/xen/xen/arch/ppc/shutdown.c:38,1
    - Dst: opal_poll_events
      Src: /src/xen/xen/arch/ppc/shutdown.c:41,1
    - Dst: opal_poll_events
      Src: /src/xen/xen/arch/ppc/shutdown.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - delay_millisecs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: machine_restart
    functionSourceFile: /src/xen/xen/arch/ppc/shutdown.c
    functionUses: 1
    functionsReached:
    - opal_poll_events
    - opal_cec_reboot
    linkageType: ''
    returnType: void
    signature: void machine_restart(unsigned int delay_millisecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PPC_BITLSHIFT
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:34,1
    - Dst: PPC_BITLSHIFT
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:34,1
    - Dst: PPC_BITLSHIFT
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - set
    - is
    - pid
    - ric
    - prs
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: tlbiel_radix_set_isa300
    functionSourceFile: /src/xen/xen/arch/ppc/tlb-radix.c
    functionUses: 0
    functionsReached:
    - PPC_BITLSHIFT
    linkageType: ''
    returnType: void
    signature: "void tlbiel_radix_set_isa300(unsigned int set, unsigned int is,\n
      \                                   unsigned int pid, unsigned int ric,\n                                    unsigned
      int prs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfmsr
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:54,1
    - Dst: tlbiel_radix_set_isa300
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:57,1
    - Dst: tlbiel_radix_set_isa300
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:60,1
    - Dst: tlbiel_radix_set_isa300
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:64,1
    - Dst: tlbiel_radix_set_isa300
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - num_sets
    - is
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: tlbiel_all_isa300
    functionSourceFile: /src/xen/xen/arch/ppc/tlb-radix.c
    functionUses: 0
    functionsReached:
    - mfmsr
    - tlbiel_radix_set_isa300
    linkageType: ''
    returnType: void
    signature: void tlbiel_all_isa300(unsigned int num_sets, unsigned int is)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: die
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:85,1
    - Dst: tlbiel_all_isa300
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - action
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: radix__tlbiel_all
    functionSourceFile: /src/xen/xen/arch/ppc/tlb-radix.c
    functionUses: 0
    functionsReached:
    - die
    - tlbiel_all_isa300
    linkageType: ''
    returnType: void
    signature: void radix__tlbiel_all(unsigned int action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix__tlbiel_all
      Src: /src/xen/xen/arch/ppc/tlb-radix.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: tlbie_all
    functionSourceFile: /src/xen/xen/arch/ppc/tlb-radix.c
    functionUses: 0
    functionsReached:
    - radix__tlbiel_all
    linkageType: ''
    returnType: void
    signature: void tlbie_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: get_s_time
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t get_s_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: reprogram_timer
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int reprogram_timer(s_time_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: send_timer_event
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void send_timer_event(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/ppc/stubs.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: show_execution_state
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 5
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void show_execution_state(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - res
    argTypes:
    - struct vcpu*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: arch_hypercall_tasklet_result
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_hypercall_tasklet_result(struct vcpu *v, long res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: vcpu_show_execution_state
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_show_execution_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: vm_event_fill_regs
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vm_event_fill_regs(vm_event_request_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: vm_event_set_registers
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vm_event_set_registers(struct vcpu *v, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: vm_event_monitor_next_interrupt
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_monitor_next_interrupt(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: arch_get_domain_info
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void arch_get_domain_info(const struct domain *d,\n                          struct
      xen_domctl_getdomaininfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: arch_flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_flush_tlb_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: smp_send_event_check_mask
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void smp_send_event_check_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: smp_send_call_function_mask
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void smp_send_call_function_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: irq_ack_none
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void irq_ack_none(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: arch_init_one_irq_desc
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_init_one_irq_desc(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: smp_send_state_dump
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void smp_send_state_dump(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: context_switch
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void context_switch(struct vcpu *prev, struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - same
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: continue_running
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void continue_running(struct vcpu *same)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: sync_local_execstate
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sync_local_execstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: sync_vcpu_execstate
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sync_vcpu_execstate(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: startup_cpu_idle_loop
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void startup_cpu_idle_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: dump_pageframe_info
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void dump_pageframe_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: arch_vcpu_create
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_create(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: arch_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: arch_sanitise_domain_config
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - config
    - flags
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: arch_domain_create
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int arch_domain_create(struct domain *d,\n                       struct
      xen_domctl_createdomain *config,\n                       unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: arch_domain_teardown
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: arch_domain_destroy
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: arch_domain_shutdown
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_shutdown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: arch_domain_pause
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_pause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: arch_domain_unpause
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_unpause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: arch_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_domain_creation_finished(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: arch_set_info_guest
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_set_info_guest(struct vcpu *v, vcpu_guest_context_u c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: arch_initialise_vcpu
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: arch_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_reset(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: domain_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int domain_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: arch_dump_domain_info
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_domain_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: arch_dump_vcpu_info
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_vcpu_info(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: vcpu_mark_events_pending
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_mark_events_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: vcpu_update_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_update_evtchn_irq(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: vcpu_block_unless_event_pending
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_block_unless_event_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: vcpu_kick
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 15
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_kick(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - format
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: hypercall_create_continuation
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 19
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long hypercall_create_continuation(unsigned int op, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: parse_arch_dom0_param
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int parse_arch_dom0_param(const char *s, const char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - usecs
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: udelay
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 6
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void udelay(unsigned long usecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/stubs.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - page
    - d
    - flags
    argTypes:
    - struct page_info*
    - struct domain*
    - enum XENSHARE_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: share_xen_page_with_guest
    functionSourceFile: /src/xen/xen/arch/ppc/stubs.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: "void share_xen_page_with_guest(struct page_info *page, struct domain
      *d,\n                               enum XENSHARE_flags flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfspr
      Src: /src/xen/xen/arch/ppc/setup.c:21,1
    - Dst: mtspr
      Src: /src/xen/xen/arch/ppc/setup.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: setup_exceptions
    functionSourceFile: /src/xen/xen/arch/ppc/setup.c
    functionUses: 0
    functionsReached:
    - mfspr
    - mtspr
    linkageType: ''
    returnType: void
    signature: void setup_exceptions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_trap
      Src: /src/xen/xen/arch/ppc/setup.c:32,1
    - Dst: boot_opal_init
      Src: /src/xen/xen/arch/ppc/setup.c:37,1
    - Dst: setup_exceptions
      Src: /src/xen/xen/arch/ppc/setup.c:40,1
    - Dst: setup_initial_pagetables
      Src: /src/xen/xen/arch/ppc/setup.c:42,1
    - Dst: init_constructors
      Src: /src/xen/xen/arch/ppc/setup.c:44,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/setup.c:46,1
    - Dst: machine_halt
      Src: /src/xen/xen/arch/ppc/setup.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - r3
    - r4
    - r5
    - r6
    - r7
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: start_xen
    functionSourceFile: /src/xen/xen/arch/ppc/setup.c
    functionUses: 0
    functionsReached:
    - __builtin_trap
    - early_printk
    - setup_exceptions
    - init_constructors
    - setup_initial_pagetables
    - machine_halt
    - boot_opal_init
    linkageType: ''
    returnType: void
    signature: "void start_xen(unsigned long r3, unsigned long r4,\n                               unsigned
      long r5, unsigned long r6,\n                               unsigned long r7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: radix_dprintk
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: radix_dprintk(msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:54,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: lvl1_pd_pool_alloc
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - early_printk
    - die
    linkageType: ''
    returnType: __init
    signature: __init *lvl1_pd_pool_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:65,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: lvl2_pd_pool_alloc
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - early_printk
    - die
    linkageType: ''
    returnType: __init
    signature: __init *lvl2_pd_pool_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:74,1
    - Dst: lvl2_pd_pool_alloc
      Src: /src/xen/xen/arch/ppc/mm-radix.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: lvl3_pd_pool_alloc
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - lvl2_pd_pool_alloc
    - BUILD_BUG_ON
    linkageType: ''
    returnType: __init
    signature: __init *lvl3_pd_pool_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:83,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: lvl4_pt_pool_alloc
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - early_printk
    - die
    linkageType: ''
    returnType: __init
    signature: __init *lvl4_pt_pool_alloc(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:99,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:100,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:105,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:106,1
    - Dst: pt_entry
      Src: /src/xen/xen/arch/ppc/mm-radix.c:118,1
    - Dst: pde_is_valid
      Src: /src/xen/xen/arch/ppc/mm-radix.c:119,1
    - Dst: lvl2_pd_pool_alloc
      Src: /src/xen/xen/arch/ppc/mm-radix.c:121,1
    - Dst: paddr_to_pde
      Src: /src/xen/xen/arch/ppc/mm-radix.c:122,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:122,1
    - Dst: __va
      Src: /src/xen/xen/arch/ppc/mm-radix.c:126,1
    - Dst: pde_to_paddr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:126,1
    - Dst: pt_entry
      Src: /src/xen/xen/arch/ppc/mm-radix.c:129,1
    - Dst: pde_is_valid
      Src: /src/xen/xen/arch/ppc/mm-radix.c:130,1
    - Dst: lvl3_pd_pool_alloc
      Src: /src/xen/xen/arch/ppc/mm-radix.c:132,1
    - Dst: paddr_to_pde
      Src: /src/xen/xen/arch/ppc/mm-radix.c:133,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:133,1
    - Dst: __va
      Src: /src/xen/xen/arch/ppc/mm-radix.c:137,1
    - Dst: pde_to_paddr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:137,1
    - Dst: pt_entry
      Src: /src/xen/xen/arch/ppc/mm-radix.c:140,1
    - Dst: pde_is_valid
      Src: /src/xen/xen/arch/ppc/mm-radix.c:141,1
    - Dst: lvl4_pt_pool_alloc
      Src: /src/xen/xen/arch/ppc/mm-radix.c:143,1
    - Dst: paddr_to_pde
      Src: /src/xen/xen/arch/ppc/mm-radix.c:144,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:144,1
    - Dst: __va
      Src: /src/xen/xen/arch/ppc/mm-radix.c:148,1
    - Dst: pde_to_paddr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:148,1
    - Dst: pt_entry
      Src: /src/xen/xen/arch/ppc/mm-radix.c:151,1
    - Dst: pte_is_valid
      Src: /src/xen/xen/arch/ppc/mm-radix.c:152,1
    - Dst: radix_dprintk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:157,1
    - Dst: is_kernel_text
      Src: /src/xen/xen/arch/ppc/mm-radix.c:158,1
    - Dst: is_kernel_inittext
      Src: /src/xen/xen/arch/ppc/mm-radix.c:158,1
    - Dst: radix_dprintk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:160,1
    - Dst: is_kernel_rodata
      Src: /src/xen/xen/arch/ppc/mm-radix.c:163,1
    - Dst: radix_dprintk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:165,1
    - Dst: radix_dprintk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:170,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/ppc/mm-radix.c:174,1
    - Dst: radix_dprintk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:175,1
    - Dst: paddr_to_pte
      Src: /src/xen/xen/arch/ppc/mm-radix.c:176,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:180,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/mm-radix.c:181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - lvl1
    - map_start
    - map_end
    - phys_base
    argTypes:
    - struct lvl1_pd*
    - vaddr_t
    - vaddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 184
    functionName: setup_initial_mapping
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 1
    functionsReached:
    - __va
    - __pa
    - lvl3_pd_pool_alloc
    - pt_entry
    - early_printk
    - lvl2_pd_pool_alloc
    - paddr_to_pde
    - is_kernel_inittext
    - die
    - is_kernel_rodata
    - pde_is_valid
    - pde_to_paddr
    - lvl4_pt_pool_alloc
    - radix_dprintk
    - pte_is_valid
    - paddr_to_pte
    - is_kernel_text
    linkageType: ''
    returnType: void
    signature: "void setup_initial_mapping(struct lvl1_pd *lvl1,\n                                         vaddr_t
      map_start,\n                                         vaddr_t map_end,\n                                         paddr_t
      phys_base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:191,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:193,1
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/mm-radix.c:195,1
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/mm-radix.c:196,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:198,1
    - Dst: mtspr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct lvl1_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: setup_partition_table
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - mtspr
    - __pa
    - cpu_to_be64
    linkageType: ''
    returnType: void
    signature: void setup_partition_table(struct lvl1_pd *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:205,1
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/mm-radix.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct lvl1_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: setup_process_table
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - __pa
    - cpu_to_be64
    linkageType: ''
    returnType: void
    signature: void setup_process_table(struct lvl1_pd *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lvl1_pd_pool_alloc
      Src: /src/xen/xen/arch/ppc/mm-radix.c:212,1
    - Dst: setup_initial_mapping
      Src: /src/xen/xen/arch/ppc/mm-radix.c:215,1
    - Dst: __pa
      Src: /src/xen/xen/arch/ppc/mm-radix.c:215,1
    - Dst: mfspr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:218,1
    - Dst: mtspr
      Src: /src/xen/xen/arch/ppc/mm-radix.c:219,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:220,1
    - Dst: setup_process_table
      Src: /src/xen/xen/arch/ppc/mm-radix.c:223,1
    - Dst: setup_partition_table
      Src: /src/xen/xen/arch/ppc/mm-radix.c:226,1
    - Dst: tlbie_all
      Src: /src/xen/xen/arch/ppc/mm-radix.c:229,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/mm-radix.c:230,1
    - Dst: enable_mmu
      Src: /src/xen/xen/arch/ppc/mm-radix.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 234
    functionName: setup_initial_pagetables
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 1
    functionsReached:
    - tlbie_all
    - __pa
    - early_printk
    - mfspr
    - setup_initial_mapping
    - enable_mmu
    - mtspr
    - setup_process_table
    - lvl1_pd_pool_alloc
    - setup_partition_table
    linkageType: ''
    returnType: void
    signature: void setup_initial_pagetables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: put_page
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 83
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void put_page(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: arch_dump_shared_mem_info
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_dump_shared_mem_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - space
    - extra
    - idx
    - gfn
    argTypes:
    - struct domain*
    - unsigned int
    - union add_to_physmap_extra
    - unsigned long
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: xenmem_add_to_physmap_one
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap_one(struct domain *d,\n                              unsigned
      int space,\n                              union add_to_physmap_extra extra,\n
      \                             unsigned long idx,\n                              gfn_t
      gfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: destroy_xen_mappings
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 8
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mappings(unsigned long s, unsigned long e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: map_pages_to_xen
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 21
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int map_pages_to_xen(unsigned long virt,\n                     mfn_t
      mfn,\n                     unsigned long nr_mfns,\n                     pte_attr_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/mm-radix.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - virt
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 276
    functionName: populate_pt_range
    functionSourceFile: /src/xen/xen/arch/ppc/mm-radix.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: early_printk_init
    functionSourceFile: /src/xen/xen/arch/ppc/early_printk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void early_printk_init(void (*putchar)(char))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putchar_func
      Src: /src/xen/xen/arch/ppc/early_printk.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: early_puts
    functionSourceFile: /src/xen/xen/arch/ppc/early_printk.c
    functionUses: 1
    functionsReached:
    - putchar_func
    linkageType: ''
    returnType: void
    signature: void early_puts(const char *s, size_t nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putchar_func
      Src: /src/xen/xen/arch/ppc/early_printk.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: early_printk
    functionSourceFile: /src/xen/xen/arch/ppc/early_printk.c
    functionUses: 9
    functionsReached:
    - putchar_func
    linkageType: ''
    returnType: void
    signature: void early_printk(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/opal.c:26,1
    - Dst: opal_console_write
      Src: /src/xen/xen/arch/ppc/opal.c:27,1
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/opal.c:29,1
    - Dst: opal_console_write
      Src: /src/xen/xen/arch/ppc/opal.c:30,1
    - Dst: opal_console_flush
      Src: /src/xen/xen/arch/ppc/opal.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: opal_putchar
    functionSourceFile: /src/xen/xen/arch/ppc/opal.c
    functionUses: 0
    functionsReached:
    - opal_console_write
    - opal_console_flush
    - cpu_to_be64
    linkageType: ''
    returnType: void
    signature: void opal_putchar(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_header
      Src: /src/xen/xen/arch/ppc/opal.c:40,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/opal.c:46,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/opal.c:47,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/arch/ppc/opal.c:50,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/opal.c:53,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/opal.c:54,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/arch/ppc/opal.c:57,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/arch/ppc/opal.c:58,1
    - Dst: early_printk
      Src: /src/xen/xen/arch/ppc/opal.c:61,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/opal.c:63,1
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/opal.c:66,1
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/opal.c:67,1
    - Dst: early_printk_init
      Src: /src/xen/xen/arch/ppc/opal.c:69,1
    - Dst: opal_reinit_cpus
      Src: /src/xen/xen/arch/ppc/opal.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 74
    functionName: boot_opal_init
    functionSourceFile: /src/xen/xen/arch/ppc/opal.c
    functionUses: 1
    functionsReached:
    - be64_to_cpu
    - opal_reinit_cpus
    - fdt_getprop
    - fdt_check_header
    - early_printk
    - die
    - fdt_path_offset
    - early_printk_init
    linkageType: ''
    returnType: void
    signature: void boot_opal_init(const void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: atomic_read
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_read(const atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: _atomic_read
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _atomic_read(atomic_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: atomic_set
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: _atomic_set
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - insn
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: build_atomic_read
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_atomic_read(name, insn, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - insn
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: build_atomic_write
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_atomic_write(name, insn, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - ldinsn
    - ','
    - stinsn
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: build_add_sized
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_add_sized(name, ldinsn, stinsn, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: add_sized
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_sized(p, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: atomic_add
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_add(int a, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 198
    functionName: atomic_add_return
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_add_return(int a, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: atomic_sub
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_sub(int a, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: atomic_sub_return
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_sub_return(int a, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 241
    functionName: atomic_inc
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_inc(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: atomic_inc_return
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_inc_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: atomic_dec
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_dec(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: atomic_dec_return
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_dec_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: atomic_dec_if_positive
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_dec_if_positive(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cmpxchg
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:317,1
    - Dst: counter::counter
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - old
    - new
    - v
    argTypes:
    - atomic_t
    - atomic_t
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: atomic_compareandswap
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - __cmpxchg
    - counter::counter
    linkageType: ''
    returnType: atomic_t
    signature: "atomic_t atomic_compareandswap(atomic_t old, atomic_t new,\n                                             atomic_t
      *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: arch_cmpxchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_cmpxchg(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_cmpxchg
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - old
    - new
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 333
    functionName: atomic_cmpxchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached:
    - arch_cmpxchg
    linkageType: ''
    returnType: int
    signature: int atomic_cmpxchg(atomic_t *v, int old, int new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - insn
    - ','
    - suffix
    - ','
    - sign
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 347
    functionName: ATOMIC_OP
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_OP(op, insn, suffix, sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: atomic_sub_and_test
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_sub_and_test(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: atomic_inc_and_test
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: atomic_dec_and_test
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: atomic_add_negative
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_add_negative(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:374,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 378
    functionName: __atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_cmpxchg
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int __atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_add_unless
      Src: /src/xen/xen/arch/ppc/include/asm/atomic.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/atomic.h
    functionUses: 1
    functionsReached:
    - __atomic_add_unless
    linkageType: ''
    returnType: int
    signature: int atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: unimplemented_guest_bit_op
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unimplemented_guest_bit_op(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: guest_test_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: guest_clear_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_clear_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: guest_set_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_set_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: guest_test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_set_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: guest_test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_clear_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: guest_test_and_change_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_and_change_bit(d, nr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: arch_lock_acquire_barrier
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_acquire_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: arch_lock_release_barrier
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_release_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: arch_lock_relax
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: arch_lock_signal_wmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - domid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: arch_hwdom_irqs
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_hwdom_irqs(domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: domain_pirq_to_irq
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/irq.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_pirq_to_irq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/irq.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: arch_move_irqs
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/irq.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void arch_move_irqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/irq.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - index
    argTypes:
    - struct dt_device_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: platform_get_irq
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/irq.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int platform_get_irq(const struct dt_device_node *device, int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: evaluate_nospec
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool evaluate_nospec(bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: block_speculation
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/nospec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void block_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: raw_copy_to_guest
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_to_guest(\n    void *to,\n    const void *from,\n
      \   unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: raw_copy_to_guest_flush_dcache
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_to_guest_flush_dcache(\n    void *to,\n    const
      void *from,\n    unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: raw_copy_from_guest
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_from_guest(\n    void *to,\n    const void
      *from,\n    unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: raw_clear_guest
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long raw_clear_guest(void *to, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gpa
    - buf
    - len
    argTypes:
    - struct domain*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: copy_to_guest_phys_flush_dcache
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long copy_to_guest_phys_flush_dcache(\n    struct domain
      *d,\n    paddr_t gpa,\n    void *buf,\n    unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/guest_access.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - gpa
    - buf
    - size
    - is_write
    argTypes:
    - struct domain*
    - paddr_t
    - void*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: access_guest_memory_by_gpa
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int access_guest_memory_by_gpa(\n    struct domain *d,\n    paddr_t
      gpa,\n    void *buf,\n    uint32_t size,\n    bool is_write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: guest_handle_okay
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_okay(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - first
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: guest_handle_subrange_okay
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_subrange_okay(hnd, first, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: __set_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __set_bit(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: __clear_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_bit(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PPC_BITLSHIFT
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PPC_BITLSHIFT(be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PPC_BIT
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PPC_BIT(bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bs
    - ','
    - be
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PPC_BITMASK
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PPC_BITMASK(bs, be)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: DEFINE_BITOP
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_BITOP(fn, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: DEFINE_CLROP
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_CLROP(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bits
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:60,1
    - Dst: BITOP_MASK
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:60,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: set_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 124
    functionsReached:
    - set_bits
    - BITOP_WORD
    - BITOP_MASK
    linkageType: ''
    returnType: void
    signature: void set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bits
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:64,1
    - Dst: BITOP_MASK
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:64,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: clear_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 67
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    - clear_bits
    linkageType: ''
    returnType: void
    signature: void clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mask
    - p
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: test_and_clear_bits
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int test_and_clear_bits(\n    unsigned int mask,\n    volatile
      unsigned int *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bits
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:89,1
    - Dst: BITOP_MASK
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:90,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: test_and_clear_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 20
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    - test_and_clear_bits
    linkageType: ''
    returnType: int
    signature: "int test_and_clear_bit(unsigned int nr,\n                                     volatile
      void *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mask
    - p
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: test_and_set_bits
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int test_and_set_bits(\n    unsigned int mask,\n    volatile
      unsigned int *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bits
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:115,1
    - Dst: BITOP_MASK
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:116,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/arch/ppc/include/asm/bitops.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: test_and_set_bit
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 29
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    - test_and_set_bits
    linkageType: ''
    returnType: int
    signature: int test_and_set_bit(unsigned int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: arch_ffs
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: arch_ffsl
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: arch_fls
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fls(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: arch_flsl
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_flsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: arch_hweightl
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_hweightl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: xchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xchg(ptr,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fn
    - ','
    - type
    - ','
    - ldinsn
    - ','
    - stinsn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: build_xchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_xchg(fn, type, ldinsn, stinsn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __xchg_u8
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:59,1
    - Dst: __xchg_u16
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:61,1
    - Dst: __xchg_u32
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:63,1
    - Dst: __xchg_u64
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:65,1
    - Dst: __xchg_called_with_bad_pointer
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - x
    - size
    argTypes:
    - void*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: __xchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached:
    - __xchg_u16
    - __xchg_u64
    - __xchg_called_with_bad_pointer
    - __xchg_u8
    - __xchg_u32
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long __xchg(volatile void *ptr, unsigned long x,\n                                   int
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - old
    - new
    argTypes:
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: __cmpxchg_u32
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __cmpxchg_u32(volatile int *p, int old, int new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - old
    - new
    argTypes:
    - long*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: __cmpxchg_u64
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long __cmpxchg_u64(volatile long *p, unsigned long old,\n
      \                                         unsigned long new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:124,1
    - Dst: __cmpxchg_u32
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:126,1
    - Dst: __cmpxchg_u64
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:128,1
    - Dst: __cmpxchg_called_with_bad_pointer
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 132
    functionName: __cmpxchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 2
    functionsReached:
    - __cmpxchg_called_with_bad_pointer
    - BUG_ON
    - __cmpxchg_u32
    - __cmpxchg_u64
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __cmpxchg(\n    volatile void *ptr,\n
      \   unsigned long old,\n    unsigned long new,\n    int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: cmpxchg_user
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg_user(ptr,o,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: cmpxchg
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg(ptr,o,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: mb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 63
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: rmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: wmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: read_barrier_depends
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_barrier_depends()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: set_mb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_mb(var, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: set_wmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_wmb(var, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: smp_mb__before_atomic
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__before_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: smp_mb__after_atomic
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__after_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: smp_mb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: smp_rmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: smp_wmb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: smp_read_barrier_depends
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_read_barrier_depends()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: local_save_flags
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_save_flags(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: local_irq_restore
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_restore(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfmsr
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:192,1
    - Dst: mtmsrd
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:193,1
    - Dst: barrier
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: local_irq_disable
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 21
    functionsReached:
    - mtmsrd
    - mfmsr
    - barrier
    linkageType: ''
    returnType: void
    signature: void local_irq_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:200,1
    - Dst: mfmsr
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:201,1
    - Dst: mtmsrd
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: local_irq_enable
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 27
    functionsReached:
    - mtmsrd
    - mfmsr
    - barrier
    linkageType: ''
    returnType: void
    signature: void local_irq_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfmsr
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:208,1
    - Dst: mtmsrd
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:210,1
    - Dst: barrier
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: __do_save_and_cli
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 0
    functionsReached:
    - mtmsrd
    - mfmsr
    - barrier
    linkageType: ''
    returnType: void
    signature: void __do_save_and_cli(unsigned long *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: local_irq_save
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_save(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfmsr
      Src: /src/xen/xen/arch/ppc/include/asm/system.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: local_irq_is_enabled
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 26
    functionsReached:
    - mfmsr
    linkageType: ''
    returnType: int
    signature: int local_irq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: arch_fetch_and_add
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/system.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fetch_and_add(x, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: paddr_to_pfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: gfn_to_gaddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_to_gaddr(gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ga
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: gaddr_to_gfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gaddr_to_gfn(ga)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: mfn_to_maddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_maddr(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: maddr_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_mfn(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: vmap_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: vmap_to_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_page(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_maddr(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_virt(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: __pa
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pa(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: __va
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __va(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: __virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: __mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: virt_to_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *virt_to_page(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: PG_shift
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_shift(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: PG_mask
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_mask(x, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pg
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: page_state_is
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_state_is(pg, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: is_xen_heap_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: is_xen_heap_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: is_xen_fixed_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_fixed_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: page_get_owner
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_get_owner(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: page_set_owner
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_set_owner(_p,_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: mfn_valid
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 97
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_valid(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: PFN_ORDER
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_ORDER(pfn_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: mfn_to_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 152
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_page(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: page_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_mfn(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:177,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:177,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: page_to_virt
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - mfn_x
    - mfn_to_virt
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: void *page_to_virt(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: get_page_type
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_page_type(struct page_info *page, unsigned long type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: put_page_type
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_page_type(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - page
    - domain
    - nr
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: get_page_nr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: bool
    signature: "bool get_page_nr(struct page_info *page, const struct domain *domain,\n
      \                       unsigned long nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - nr
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: put_page_nr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void put_page_nr(struct page_info *page, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page_type
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:208,1
    - Dst: put_page
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: put_page_and_type
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 25
    functionsReached:
    - put_page
    - put_page_type
    linkageType: ''
    returnType: void
    signature: void put_page_and_type(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: SHARED_M2P
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_M2P(_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mfn
    - ','
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: set_gpfn_from_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_gpfn_from_mfn(mfn, pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: mfn_to_gfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_gfn(d, mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: domain_get_maximum_gpfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 3
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long domain_get_maximum_gpfn(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/mm.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: arch_memory_op
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: long
    signature: long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: arch_get_dma_bitsize
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_dma_bitsize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: arch_mfns_in_directmap
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: BUG
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bug.h
    functionUses: 126
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - line
    - ','
    - ptr
    - ','
    - second_frame
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BUG_FRAME
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_FRAME(type, line, ptr, second_frame, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mask
    - page_timestamp
    argTypes:
    - cpumask_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: tlbflush_filter
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/flushtlb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: tlbflush_current_time
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/flushtlb.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tlbflush_current_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/ppc/include/asm/flushtlb.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: page_set_tlbflush_timestamp
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/flushtlb.h
    functionUses: 2
    functionsReached:
    - tlbflush_current_time
    linkageType: ''
    returnType: void
    signature: void page_set_tlbflush_timestamp(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - page
    - domain
    - type
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: get_page_and_type
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 7
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int get_page_and_type(struct page_info *page,\n                                    struct
      domain *domain,\n                                    unsigned long type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - gfn
    - t
    - q
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 31
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_gfn(\n    struct domain *d, unsigned
      long gfn, p2m_type_t *t, p2m_query_t q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: memory_type_changed
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 9
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void memory_type_changed(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: guest_physmap_mark_populate_on_demand
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_mark_populate_on_demand(struct domain *d, unsigned
      long gfn,\n                                                        unsigned
      int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned long
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: guest_physmap_add_entry
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_add_entry(struct domain *d,\n                            gfn_t
      gfn,\n                            mfn_t mfn,\n                            unsigned
      long page_order,\n                            p2m_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: __must_check::guest_physmap_add_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - guest_physmap_add_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check\nguest_physmap_add_page(struct domain *d, gfn_t gfn,
      mfn_t mfn,\n                       unsigned int page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:77,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/ppc/include/asm/p2m.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: gfn_to_mfn
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    - _mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: arch_acquire_resource_check
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/p2m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_acquire_resource_check(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: LOAD_IMM64
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_IMM64(reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: LOAD_IMM32
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_IMM32(reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: LOAD_REG_ADDR
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_REG_ADDR(reg,name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: _GLOBAL_TOC
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _GLOBAL_TOC(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - end
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: REST_GPRS
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REST_GPRS(start, end, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: SAVE_GPR
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAVE_GPR(n, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: REST_GPR
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REST_GPR(n, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: SAVE_NVGPRS
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAVE_NVGPRS(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: REST_NVGPRS
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REST_NVGPRS(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PVR_VER
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_VER(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PVR_REV
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_REV(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: __is_processor
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __is_processor(pv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PVR_FAM
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_FAM(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PVR_MEM
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_MEM(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: PVR_CORE
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_CORE(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PVR_CFG
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_CFG(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PVR_MAJ
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_MAJ(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pvr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PVR_MIN
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVR_MIN(pvr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: HMT_very_low
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HMT_very_low()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: cpu_to_core
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_core(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: cpu_to_socket
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_socket(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sync
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: isync
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void isync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: mfmsr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long mfmsr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mtmsrd
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mtmsrd(unsigned long msr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spr
    - val
    argTypes:
    - uint16_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: mtspr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mtspr(uint16_t spr, unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spr
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: mfspr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long mfspr(uint16_t spr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMT_very_low
      Src: /src/xen/xen/arch/ppc/include/asm/processor.h:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: die
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 11
    functionsReached:
    - HMT_very_low
    linkageType: ''
    returnType: void
    signature: void die(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: cpu_relax
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: dump_execution_state
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dump_execution_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: guest_mode
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/domain.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/ppc/include/asm/domain.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: alloc_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct vcpu_guest_context
    signature: struct vcpu_guest_context *alloc_vcpu_guest_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/ppc/include/asm/domain.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgc
    argTypes:
    - struct vcpu_guest_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: free_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/domain.h
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - gmp
    argTypes:
    - struct vcpu*
    - struct guest_memory_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: update_guest_memory_policy
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_guest_memory_policy(struct vcpu *v,\n                                              struct
      guest_memory_policy *gmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: arch_vcpu_block
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_block(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: set_current
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_current(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: get_cpu_current
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu_current(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: get_cpu_info
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: struct cpu_info
    signature: struct cpu_info *get_cpu_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: guest_cpu_user_regs
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cpu_user_regs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: smp_processor_id
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 169
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_processor_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: get_per_cpu_offset
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_per_cpu_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/monitor.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: arch_monitor_get_capabilities
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/monitor.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t arch_monitor_get_capabilities(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 8
    functionName: vcpu_mark_events_pending
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_mark_events_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 9
    functionName: vcpu_update_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_update_evtchn_irq(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 10
    functionName: vcpu_block_unless_event_pending
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void vcpu_block_unless_event_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: vcpu_event_delivery_is_enabled
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int vcpu_event_delivery_is_enabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: arch_get_virq_type
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum virq_type
    signature: enum virq_type arch_get_virq_type(unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: local_events_need_delivery
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 4
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int local_events_need_delivery(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/event.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: local_event_delivery_enable
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/event.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void local_event_delivery_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/time.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: force_update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/time.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void force_update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfspr
      Src: /src/xen/xen/arch/ppc/include/asm/time.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: get_cycles
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/time.h
    functionUses: 3
    functionsReached:
    - mfspr
    linkageType: ''
    returnType: cycles_t
    signature: cycles_t get_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 11
    functionName: early_printk_init
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/early_printk.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void early_printk_init(void (*putchar)(char))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 12
    functionName: early_printk
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/early_printk.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void early_printk(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: readb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: readw
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: readl
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: writeb
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: writew
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: writel
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/io.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: XEN_PT_ENTRIES_LOG2_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_ENTRIES_LOG2_LVL(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: XEN_PT_SHIFT_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_SHIFT_LVL(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: XEN_PT_ENTRIES_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_ENTRIES_LVL(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: XEN_PT_SIZE_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_SIZE_LVL(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: XEN_PT_MASK_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_MASK_LVL(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lvl
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: XEN_PT_INDEX_LVL
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_INDEX_LVL(lvl, va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pt
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: pt_index
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_index(pt, va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pt
    - ','
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: pt_entry
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pt_entry(pt, va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - paddr
    - flags
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: paddr_to_pte
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 4
    functionsReached:
    - cpu_to_be64
    linkageType: ''
    returnType: pte_t
    signature: pte_t paddr_to_pte(paddr_t paddr, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be64
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - paddr
    - flags
    - nls
    argTypes:
    - paddr_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: paddr_to_pde
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 1
    functionsReached:
    - cpu_to_be64
    linkageType: ''
    returnType: pde_t
    signature: "pde_t paddr_to_pde(paddr_t paddr, unsigned long flags,\n                                 unsigned
      long nls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: pte_to_paddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 2
    functionsReached:
    - be64_to_cpu
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t pte_to_paddr(pte_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pde
    argTypes:
    - pde_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: pde_to_paddr
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 1
    functionsReached:
    - be64_to_cpu
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t pde_to_paddr(pde_t pde)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - pte_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: pte_is_valid
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 12
    functionsReached:
    - be64_to_cpu
    linkageType: ''
    returnType: bool
    signature: bool pte_is_valid(pte_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pde
    argTypes:
    - pde_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: pde_is_valid
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 1
    functionsReached:
    - be64_to_cpu
    linkageType: ''
    returnType: bool
    signature: bool pde_is_valid(pde_t pde)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: invalidate_icache
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: clear_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - sp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: copy_page
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_page(dp, sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: scrub_page_hot
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scrub_page_hot(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/ppc/include/asm/page.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - sync_icache
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: flush_page_to_ram
    functionSourceFile: /src/xen/xen/arch/ppc/include/asm/page.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void flush_page_to_ram(unsigned long mfn, bool sync_icache)
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 1
    argNames:
    - vec
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 65
    functionName: exception_name_from_vec
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *exception_name_from_vec(uint32_t vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/ppc/ppc64/exceptions.c:71,1
    - Dst: exception_name_from_vec
      Src: /src/xen/xen/arch/ppc/ppc64/exceptions.c:80,1
    - Dst: printk
      Src: /src/xen/xen/arch/ppc/ppc64/exceptions.c:89,1
    - Dst: die
      Src: /src/xen/xen/arch/ppc/ppc64/exceptions.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: exception_handler
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/exceptions.c
    functionUses: 1
    functionsReached:
    - die
    - printk
    - exception_name_from_vec
    linkageType: ''
    returnType: void
    signature: void exception_handler(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: BLANK
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLANK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sym
    - ','
    - _str
    - ','
    - _mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: OFFSET
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(_sym, _str, _mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: __L2
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L2(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: __L4
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L4(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: __L8
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L8(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: __L16
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L16(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: LOG_2
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_2(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:28,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:28,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:30,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:31,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:32,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:51,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:52,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 57
    functionName: __dummy__
    functionSourceFile: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
    functionUses: 0
    functionsReached:
    - DEFINE
    - IS_ALIGNED
    - BLANK
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void __dummy__(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PSCI_0_2_FN_NATIVE
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_0_2_FN_NATIVE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PSCI_0_2_FN_NATIVE
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_0_2_FN_NATIVE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: PSCI_RET
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_RET(res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:44,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/psci.c:44,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/psci.c:44,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: call_psci_cpu_on
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - PSCI_RET
    - cpu_logical_map
    - __pa
    - arm_smccc_smc
    linkageType: ''
    returnType: int
    signature: int call_psci_cpu_on(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:52,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:57,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/psci.c:58,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/psci.c:58,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: call_psci_cpu_off
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - PSCI_VERSION
    - panic
    - smp_processor_id
    - PSCI_RET
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void call_psci_cpu_off(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:65,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: call_psci_system_off
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - PSCI_VERSION
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void call_psci_system_off(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:71,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: call_psci_system_reset
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - PSCI_VERSION
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void call_psci_system_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:79,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:82,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - psci_func_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: psci_features
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - PSCI_VERSION
    - PSCI_RET
    - arm_smccc_smc
    linkageType: ''
    returnType: int
    signature: int psci_features(uint32_t psci_func_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/arm/psci.c:92,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:95,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/psci.c:103,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - psci
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: psci_is_smc_method
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - dt_property_read_string
    - strcmp
    - printk
    linkageType: ''
    returnType: int
    signature: int psci_is_smc_method(const struct dt_device_node *psci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: psci_features
      Src: /src/xen/xen/arch/arm/psci.c:117,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:121,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:122,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:123,1
    - Dst: SMCCC_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:126,1
    - Dst: cpus_set_cap
      Src: /src/xen/xen/arch/arm/psci.c:127,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:129,1
    - Dst: SMCCC_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/psci.c:130,1
    - Dst: SMCCC_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/psci.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: psci_init_smccc
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - SMCCC_VERSION_MINOR
    - SMCCC_VERSION_MAJOR
    - psci_features
    - PSCI_RET
    - cpus_set_cap
    - SMCCC_VERSION
    - printk
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void psci_init_smccc(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:140,1
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/psci.c:144,1
    - Dst: psci_is_smc_method
      Src: /src/xen/xen/arch/arm/psci.c:148,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/psci.c:152,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:154,1
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 161
    functionName: psci_init_0_1
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - PSCI_VERSION
    - dt_property_read_u32
    - printk
    - psci_is_smc_method
    linkageType: ''
    returnType: int
    signature: int psci_init_0_1(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/psci.c:167,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/psci.c:168,1
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/arch/arm/psci.c:178,1
    - Dst: psci_is_smc_method
      Src: /src/xen/xen/arch/arm/psci.c:182,1
    - Dst: acpi_psci_hvc_present
      Src: /src/xen/xen/arch/arm/psci.c:188,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:189,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/psci.c:194,1
    - Dst: PSCI_RET
      Src: /src/xen/xen/arch/arm/psci.c:195,1
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/psci.c:198,1
    - Dst: PSCI_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/psci.c:198,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:200,1
    - Dst: PSCI_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/psci.c:201,1
    - Dst: PSCI_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/psci.c:201,1
    - Dst: PSCI_0_2_FN_NATIVE
      Src: /src/xen/xen/arch/arm/psci.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 208
    functionName: psci_init_0_2
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - arm_smccc_smc
    - PSCI_VERSION
    - dt_find_matching_node
    - DT_MATCH_COMPATIBLE
    - PSCI_VERSION_MAJOR
    - PSCI_0_2_FN_NATIVE
    - PSCI_VERSION_MINOR
    - acpi_psci_hvc_present
    - printk
    - PSCI_RET
    - psci_is_smc_method
    linkageType: ''
    returnType: int
    signature: int psci_init_0_2(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: acpi_psci_present
      Src: /src/xen/xen/arch/arm/psci.c:214,1
    - Dst: psci_init_0_2
      Src: /src/xen/xen/arch/arm/psci.c:217,1
    - Dst: psci_init_0_1
      Src: /src/xen/xen/arch/arm/psci.c:219,1
    - Dst: psci_init_smccc
      Src: /src/xen/xen/arch/arm/psci.c:224,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/psci.c:226,1
    - Dst: PSCI_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/psci.c:227,1
    - Dst: PSCI_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/psci.c:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 230
    functionName: psci_init
    functionSourceFile: /src/xen/xen/arch/arm/psci.c
    functionUses: 0
    functionsReached:
    - acpi_psci_present
    - psci_init_0_1
    - PSCI_VERSION_MAJOR
    - psci_init_smccc
    - PSCI_VERSION_MINOR
    - printk
    - psci_init_0_2
    linkageType: ''
    returnType: int
    signature: int psci_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - regs
    - ','
    - user_gate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: ACCESS_ALLOWED
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCESS_ALLOWED(regs, user_gate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:40,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:41,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: phys_timer_expired
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void phys_timer_expired(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:51,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: virt_timer_expired
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void virt_timer_expired(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_cycles
      Src: /src/xen/xen/arch/arm/vtimer.c:57,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/vtimer.c:59,1
    - Dst: do_div
      Src: /src/xen/xen/arch/arm/vtimer.c:61,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vtimer.c:77,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:80,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:80,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:81,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:83,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:83,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:84,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:86,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:86,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:87,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:91,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:92,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:94,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:95,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vtimer.c:97,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vtimer.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_arch_domainconfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 102
    functionName: domain_vtimer_init
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - ticks_to_ns
    - timer_get_irq
    - BUG
    - get_cycles
    - do_div
    - is_hardware_domain
    - vgic_reserve_virq
    linkageType: ''
    returnType: int
    signature: int domain_vtimer_init(struct domain *d, struct xen_arch_domainconfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vtimer.c:107,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:114,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:117,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:122,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 132
    functionName: vcpu_vtimer_init
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - timer_get_irq
    - init_timer
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vcpu_vtimer_init(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:139,1
    - Dst: kill_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: vcpu_timer_destroy
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - kill_timer
    linkageType: ''
    returnType: void
    signature: void vcpu_timer_destroy(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vtimer.c:145,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/vtimer.c:145,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/vtimer.c:147,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/vtimer.c:148,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/vtimer.c:149,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:153,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/vtimer.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: virt_timer_save
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - ticks_to_ns
    - is_idle_vcpu
    - READ_SYSREG64
    - set_timer
    - ASSERT
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void virt_timer_save(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vtimer.c:161,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/vtimer.c:161,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:163,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:164,1
    - Dst: migrate_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:165,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/vtimer.c:167,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/vtimer.c:168,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/vtimer.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: virt_timer_restore
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - WRITE_SYSREG64
    - is_idle_vcpu
    - ASSERT
    - migrate_timer
    - stop_timer
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void virt_timer_restore(struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ALLOWED
      Src: /src/xen/xen/arch/arm/vtimer.c:178,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/vtimer.c:199,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:200,1
    - Dst: stop_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - regs
    - r
    - read
    argTypes:
    - struct cpu_user_regs*
    - register_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 206
    functionName: vtimer_cntp_ctl
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - set_timer
    - ticks_to_ns
    - stop_timer
    - ACCESS_ALLOWED
    linkageType: ''
    returnType: bool
    signature: "bool vtimer_cntp_ctl(struct cpu_user_regs *regs, register_t *r,\n
      \                           bool read)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ALLOWED
      Src: /src/xen/xen/arch/arm/vtimer.c:215,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/arm/vtimer.c:218,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/vtimer.c:235,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - regs
    - r
    - read
    argTypes:
    - struct cpu_user_regs*
    - register_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 240
    functionName: vtimer_cntp_tval
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - get_cycles
    - set_timer
    - ticks_to_ns
    - ACCESS_ALLOWED
    linkageType: ''
    returnType: bool
    signature: "bool vtimer_cntp_tval(struct cpu_user_regs *regs, register_t *r,\n
      \                            bool read)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ALLOWED
      Src: /src/xen/xen/arch/arm/vtimer.c:248,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/vtimer.c:266,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/arm/vtimer.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - regs
    - r
    - read
    argTypes:
    - struct cpu_user_regs*
    - uint64_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 271
    functionName: vtimer_cntp_cval
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - set_timer
    - ticks_to_ns
    - ACCESS_ALLOWED
    linkageType: ''
    returnType: bool
    signature: "bool vtimer_cntp_cval(struct cpu_user_regs *regs, uint64_t *r,\n                             bool
      read)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:278,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:280,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vtimer.c:284,1
    - Dst: vreg_emulate_cp32
      Src: /src/xen/xen/arch/arm/vtimer.c:285,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vtimer.c:287,1
    - Dst: vreg_emulate_cp32
      Src: /src/xen/xen/arch/arm/vtimer.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 293
    functionName: vtimer_emulate_cp32
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - HSR_CPREG32
    - vreg_emulate_cp32
    linkageType: ''
    returnType: bool
    signature: bool vtimer_emulate_cp32(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:300,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:302,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vtimer.c:306,1
    - Dst: vreg_emulate_cp64
      Src: /src/xen/xen/arch/arm/vtimer.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: vtimer_emulate_cp64
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - HSR_CPREG64
    - vreg_emulate_cp64
    linkageType: ''
    returnType: bool
    signature: bool vtimer_emulate_cp64(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:320,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vtimer.c:322,1
    - Dst: vreg_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vtimer.c:327,1
    - Dst: vreg_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vtimer.c:329,1
    - Dst: vreg_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vtimer.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 337
    functionName: vtimer_emulate_sysreg
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vreg_emulate_sysreg
    linkageType: ''
    returnType: bool
    signature: bool vtimer_emulate_sysreg(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtimer_emulate_cp32
      Src: /src/xen/xen/arch/arm/vtimer.c:345,1
    - Dst: vtimer_emulate_cp64
      Src: /src/xen/xen/arch/arm/vtimer.c:347,1
    - Dst: vtimer_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vtimer.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 355
    functionName: vtimer_emulate
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - vtimer_emulate_cp64
    - vtimer_emulate_cp32
    - vtimer_emulate_sysreg
    linkageType: ''
    returnType: bool
    signature: bool vtimer_emulate(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - v
    - vtimer
    - vtimer_ctl
    argTypes:
    - struct vcpu*
    - struct vtimer*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: vtimer_update_irq
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: "void vtimer_update_irq(struct vcpu *v, struct vtimer *vtimer,\n                              register_t
      vtimer_ctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtimer_update_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:399,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/vtimer.c:400,1
    - Dst: vtimer_update_irq
      Src: /src/xen/xen/arch/arm/vtimer.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 404
    functionName: vtimer_update_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vtimer.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - vtimer_update_irq
    linkageType: ''
    returnType: void
    signature: void vtimer_update_irqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/smp.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 18
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/arm/smp.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_all_guests_tlb
      Src: /src/xen/xen/arch/arm/smp.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: arch_flush_tlb_mask
    functionSourceFile: /src/xen/xen/arch/arm/smp.c
    functionUses: 0
    functionsReached:
    - flush_all_guests_tlb
    linkageType: ''
    returnType: void
    signature: void arch_flush_tlb_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI_mask
      Src: /src/xen/xen/arch/arm/smp.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: smp_send_event_check_mask
    functionSourceFile: /src/xen/xen/arch/arm/smp.c
    functionUses: 1
    functionsReached:
    - send_SGI_mask
    linkageType: ''
    returnType: void
    signature: void smp_send_event_check_mask(const cpumask_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_andnot
      Src: /src/xen/xen/arch/arm/smp.c:35,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/smp.c:35,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smp.c:35,1
    - Dst: send_SGI_mask
      Src: /src/xen/xen/arch/arm/smp.c:37,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/arch/arm/smp.c:39,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smp.c:39,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/smp.c:41,1
    - Dst: smp_call_function_interrupt
      Src: /src/xen/xen/arch/arm/smp.c:42,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/smp.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: smp_send_call_function_mask
    functionSourceFile: /src/xen/xen/arch/arm/smp.c
    functionUses: 0
    functionsReached:
    - smp_call_function_interrupt
    - local_irq_enable
    - smp_processor_id
    - send_SGI_mask
    - local_irq_disable
    - cpumask_andnot
    - cpumask_of
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void smp_send_call_function_mask(const cpumask_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: V2M_MSI_TYPER_BASE_SPI
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V2M_MSI_TYPER_BASE_SPI(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: V2M_MSI_TYPER_NUM_SPI
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V2M_MSI_TYPER_NUM_SPI(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeb_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: writeb_gicd
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writeb_relaxed
    linkageType: ''
    returnType: void
    signature: void writeb_gicd(uint8_t val, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: writel_gicd
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    linkageType: ''
    returnType: void
    signature: void writel_gicd(uint32_t val, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: readl_gicd
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t readl_gicd(unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: writel_gicc
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    linkageType: ''
    returnType: void
    signature: void writel_gicc(uint32_t val, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: readl_gicc
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t readl_gicc(unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - offset
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: writel_gich
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    linkageType: ''
    returnType: void
    signature: void writel_gich(uint32_t val, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - int unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: readl_gich
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t readl_gich(int unsigned offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/arm/gic-v2.c:157,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/arm/gic-v2.c:158,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:160,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/gic-v2.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cpumask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: gicv2_cpu_mask
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - for_each_cpu
    - cpumask_and
    - per_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv2_cpu_mask(const cpumask_t *cpumask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:176,1
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:178,1
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:179,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: gicv2_save_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_save_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:189,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:191,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:192,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: gicv2_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_restore_state(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:203,1
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:204,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: gicv2_dump_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv2_dump_state(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: gicv2_eoi_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gicc
    linkageType: ''
    returnType: void
    signature: void gicv2_eoi_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: gicv2_dir_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gicc
    linkageType: ''
    returnType: void
    signature: void gicv2_dir_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: gicv2_read_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gicc
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv2_read_irq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irqd
    - offset
    argTypes:
    - struct irq_desc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: gicv2_poke_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gicd
    linkageType: ''
    returnType: void
    signature: void gicv2_poke_irq(struct irq_desc *irqd, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - irqd
    - offset
    argTypes:
    - struct irq_desc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 243
    functionName: gicv2_peek_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gicd
    linkageType: ''
    returnType: bool
    signature: bool gicv2_peek_irq(struct irq_desc *irqd, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:254,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v2.c:254,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-v2.c:258,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:259,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-v2.c:263,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - irqd
    - active
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: gicv2_set_active_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_poke_irq
    - spin_is_locked
    - ASSERT
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: void gicv2_set_active_state(struct irq_desc *irqd, bool active)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:270,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v2.c:270,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:275,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - irqd
    - pending
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 282
    functionName: gicv2_set_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_poke_irq
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: void
    signature: void gicv2_set_pending_state(struct irq_desc *irqd, bool pending)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:289,1
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:291,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:297,1
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:299,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:302,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v2.c:305,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - desc
    - type
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 314
    functionName: gicv2_set_irq_type
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - smp_processor_id
    - writel_gicd
    - readl_gicd
    - spin_lock
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv2_set_irq_type(struct irq_desc *desc, unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:321,1
    - Dst: writeb_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:324,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: gicv2_set_irq_priority
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writeb_gicd
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void gicv2_set_irq_priority(struct irq_desc *desc,\n                                   unsigned
      int priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:337,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:342,1
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:344,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/gic-v2.c:347,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:351,1
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:354,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:358,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:362,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:366,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:371,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:372,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 377
    functionName: gicv2_dist_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - printk
    - min
    - writel_gicd
    - readl_gicd
    linkageType: ''
    returnType: void
    signature: void gicv2_dist_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-v2.c:383,1
    - Dst: readl_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:383,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:388,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:389,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:390,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:394,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:398,1
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:402,1
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:404,1
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 407
    functionName: gicv2_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gicd
    - writel_gicc
    - writel_gicd
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void gicv2_cpu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: gicv2_cpu_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gicc
    linkageType: ''
    returnType: void
    signature: void gicv2_cpu_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 422
    functionName: gicv2_hyp_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_hyp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: gicv2_hyp_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_hyp_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:431,1
    - Dst: gicv2_cpu_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:433,1
    - Dst: gicv2_hyp_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:434,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: gicv2_secondary_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - gicv2_hyp_init
    - spin_unlock
    - gicv2_cpu_init
    linkageType: ''
    returnType: int
    signature: int gicv2_secondary_cpu_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dmb
      Src: /src/xen/xen/arch/arm/gic-v2.c:451,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:456,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:459,1
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/arm/gic-v2.c:462,1
    - Dst: gicv2_cpu_mask
      Src: /src/xen/xen/arch/arm/gic-v2.c:463,1
    - Dst: writel_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:464,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v2.c:469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - sgi
    - irqmode
    - cpu_mask
    argTypes:
    - enum gic_sgi
    - enum gic_sgi_mode
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 471
    functionName: gicv2_send_SGI
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - BUG
    - writel_gicd
    - dmb
    - gicv2_cpu_mask
    - cpumask_and
    linkageType: ''
    returnType: void
    signature: "void gicv2_send_SGI(enum gic_sgi sgi, enum gic_sgi_mode irqmode,\n
      \                          const cpumask_t *cpu_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:476,1
    - Dst: gicv2_cpu_disable
      Src: /src/xen/xen/arch/arm/gic-v2.c:477,1
    - Dst: gicv2_hyp_disable
      Src: /src/xen/xen/arch/arm/gic-v2.c:478,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: gicv2_disable_interface
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_cpu_disable
    - spin_lock
    - spin_unlock
    - gicv2_hyp_disable
    linkageType: ''
    returnType: void
    signature: void gicv2_disable_interface(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v2.c:487,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v2.c:488,1
    - Dst: GIC_PRI_TO_GUEST
      Src: /src/xen/xen/arch/arm/gic-v2.c:491,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - lr
    - virq
    - priority
    - hw_irq
    - state
    argTypes:
    - int
    - unsigned int
    - uint8_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: gicv2_update_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - GIC_PRI_TO_GUEST
    - writel_gich
    linkageType: ''
    returnType: void
    signature: "void gicv2_update_lr(int lr, unsigned int virq, uint8_t priority,\n
      \                           unsigned int hw_irq, unsigned int state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: gicv2_clear_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_clear_lr(int lr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - lr
    - lr_reg
    argTypes:
    - int
    - struct gic_lr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 533
    functionName: gicv2_read_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_read_lr(int lr, struct gic_lr *lr_reg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:562,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - lr
    - lr_reg
    argTypes:
    - int
    - struct gic_lr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 567
    functionName: gicv2_write_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_write_lr(int lr, const struct gic_lr *lr_reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:571,1
    - Dst: writel_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - flag
    - status
    argTypes:
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 579
    functionName: gicv2_hcr_status
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    - writel_gich
    linkageType: ''
    returnType: void
    signature: void gicv2_hcr_status(uint32_t flag, bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 585
    functionName: gicv2_read_vmcr_priority
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv2_read_vmcr_priority(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_gich
      Src: /src/xen/xen/arch/arm/gic-v2.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - apr_reg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: gicv2_read_apr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gich
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv2_read_apr(int apr_reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_peek_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: gicv2_read_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_peek_irq
    linkageType: ''
    returnType: bool
    signature: bool gicv2_read_pending_state(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:601,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v2.c:601,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-v2.c:603,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-v2.c:604,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v2.c:605,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:607,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-v2.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 609
    functionName: gicv2_irq_enable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_poke_irq
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - ASSERT
    - dsb
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void gicv2_irq_enable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:615,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v2.c:615,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-v2.c:617,1
    - Dst: gicv2_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:619,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-v2.c:620,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-v2.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: gicv2_irq_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_poke_irq
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - ASSERT
    - set_bit
    linkageType: ''
    returnType: void
    signature: void gicv2_irq_disable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_irq_enable
      Src: /src/xen/xen/arch/arm/gic-v2.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: gicv2_irq_startup
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_irq_enable
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv2_irq_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_irq_disable
      Src: /src/xen/xen/arch/arm/gic-v2.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 634
    functionName: gicv2_irq_shutdown
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_irq_disable
    linkageType: ''
    returnType: void
    signature: void gicv2_irq_shutdown(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: gicv2_irq_ack
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv2_irq_ack(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_eoi_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:644,1
    - Dst: gicv2_dir_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: gicv2_host_irq_end
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_eoi_irq
    - gicv2_dir_irq
    linkageType: ''
    returnType: void
    signature: void gicv2_host_irq_end(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_eoi_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: gicv2_guest_irq_end
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - gicv2_eoi_irq
    linkageType: ''
    returnType: void
    signature: void gicv2_guest_irq_end(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v2.c:660,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/arm/gic-v2.c:660,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:662,1
    - Dst: gicv2_cpu_mask
      Src: /src/xen/xen/arch/arm/gic-v2.c:664,1
    - Dst: writeb_gicd
      Src: /src/xen/xen/arch/arm/gic-v2.c:667,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - cpu_mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 670
    functionName: gicv2_irq_set_affinity
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpumask_empty
    - writeb_gicd
    - ASSERT
    - spin_lock
    - gicv2_cpu_mask
    linkageType: ''
    returnType: void
    signature: void gicv2_irq_set_affinity(struct irq_desc *desc, const cpumask_t
      *cpu_mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v2.c:677,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:682,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/gic-v2.c:686,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/gic-v2.c:686,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v2.c:687,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/gic-v2.c:688,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:691,1
    - Dst: irq_set_spi_type
      Src: /src/xen/xen/arch/arm/gic-v2.c:707,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:710,1
    - Dst: route_irq_to_guest
      Src: /src/xen/xen/arch/arm/gic-v2.c:716,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:719,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/gic-v2.c:726,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 737
    functionName: gicv2_map_hwdom_extra_mappings
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - map_mmio_regions
    - irq_set_spi_type
    - gaddr_to_gfn
    - maddr_to_mfn
    - printk
    - route_irq_to_guest
    - list_for_each_entry
    - vgic_reserve_virq
    linkageType: ''
    returnType: int
    signature: int gicv2_map_hwdom_extra_mappings(struct domain *d)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-v2.c:755,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:759,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:762,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v2.c:763,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:766,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v2.c:770,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:774,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/gic-v2.c:778,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/gic-v2.c:782,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:786,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/gic-v2.c:792,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:798,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:801,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v2.c:802,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:806,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:815,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:818,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:823,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:826,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/gic-v2.c:831,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 835
    functionName: gicv2m_make_dt_node
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - FDT_ERR_XEN
    - fdt_property_string
    - dt_get_property
    - fdt_property_cell
    - fdt_property_u32
    - printk
    - fdt_property
    - fdt_end_node
    - list_empty
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int gicv2m_make_dt_node(const struct domain *d,\n                               const
      struct dt_device_node *gic,\n                               void *fdt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:846,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v2.c:849,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v2.c:850,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:853,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:862,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v2.c:865,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v2.c:866,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/arm/gic-v2.c:869,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/gic-v2.c:869,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/gic-v2.c:869,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v2.c:872,1
    - Dst: gicv2m_make_dt_node
      Src: /src/xen/xen/arch/arm/gic-v2.c:876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 879
    functionName: gicv2_make_hwdom_dt_node
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - dt_cells_to_size
    - dt_n_size_cells
    - FDT_ERR_XEN
    - dt_n_addr_cells
    - dt_get_property
    - gicv2m_make_dt_node
    - fdt_property
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int gicv2_make_hwdom_dt_node(const struct domain *d,\n                                    const
      struct dt_device_node *gic,\n                                    void *fdt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:916,1
    - Dst: readl_gicc
      Src: /src/xen/xen/arch/arm/gic-v2.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cbase
    - csize
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 920
    functionName: gicv2_is_aliased
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - readl_gicc
    linkageType: ''
    returnType: bool
    signature: bool gicv2_is_aliased(paddr_t cbase, paddr_t csize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v2.c:937,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:939,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v2.c:941,1
    - Dst: V2M_MSI_TYPER_BASE_SPI
      Src: /src/xen/xen/arch/arm/gic-v2.c:942,1
    - Dst: V2M_MSI_TYPER_NUM_SPI
      Src: /src/xen/xen/arch/arm/gic-v2.c:943,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/gic-v2.c:945,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:949,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:952,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/gic-v2.c:956,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:958,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/gic-v2.c:960,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:967,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/gic-v2.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - addr
    - size
    - spi_start
    - nr_spis
    - v2m
    argTypes:
    - paddr_t
    - paddr_t
    - u32
    - u32
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 976
    functionName: gicv2_add_v2m_frame_to_list
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - iounmap
    - xzalloc
    - panic
    - ioremap_nocache
    - readl_relaxed
    - printk
    - INIT_LIST_HEAD
    - V2M_MSI_TYPER_BASE_SPI
    - list_add_tail
    - V2M_MSI_TYPER_NUM_SPI
    linkageType: ''
    returnType: void
    signature: "void gicv2_add_v2m_frame_to_list(paddr_t addr, paddr_t size,\n                                        u32
      spi_start, u32 nr_spis,\n                                        const struct
      dt_device_node *v2m)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/arch/arm/gic-v2.c:991,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:995,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:996,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:1002,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1004,1
    - Dst: gicv2_add_v2m_frame_to_list
      Src: /src/xen/xen/arch/arm/gic-v2.c:1008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1010
    functionName: gicv2_extension_dt_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_property_read_u32
    - panic
    - gicv2_add_v2m_frame_to_list
    - printk
    - dt_device_is_compatible
    linkageType: ''
    returnType: void
    signature: void gicv2_extension_dt_init(const struct dt_device_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/arch/arm/gic-v2.c:991,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:995,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:996,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:1002,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v2.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1004,1
    - Dst: gicv2_add_v2m_frame_to_list
      Src: /src/xen/xen/arch/arm/gic-v2.c:1008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1009
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_property_read_u32
    - panic
    - gicv2_add_v2m_frame_to_list
    - printk
    - dt_device_is_compatible
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(node, v2m)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:1020,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1022,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:1024,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1026,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:1028,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1030,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v2.c:1032,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1034,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/gic-v2.c:1036,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1038,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1050,1
    - Dst: platform_has_quirk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1053,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1055,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1066,1
    - Dst: gicv2_extension_dt_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1073,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1074
    functionName: gicv2_dt_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - gicv2_extension_dt_init
    - panic
    - platform_get_irq
    - platform_has_quirk
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv2_dt_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v2.c:1082,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v2.c:1087,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/gic-v2.c:1092,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v2.c:1093,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v2.c:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1099
    functionName: gicv2_iomem_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - iomem_deny_access
    - DIV_ROUND_UP
    linkageType: ''
    returnType: int
    signature: int gicv2_iomem_deny_access(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1105
    functionName: gicv2_get_hwdom_extra_madt_size
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_get_entry_madt
      Src: /src/xen/xen/arch/arm/gic-v2.c:1114,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1117,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v2.c:1121,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/gic-v2.c:1129,1
    - Dst: vcpuid_to_vaffinity
      Src: /src/xen/xen/arch/arm/gic-v2.c:1133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - d
    - offset
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1143
    functionName: gicv2_make_hwdom_madt
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - acpi_table_get_entry_madt
    - container_of
    - vcpuid_to_vaffinity
    - printk
    - memcpy
    linkageType: ''
    returnType: int
    signature: int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v2.c:1151,1
    - Dst: BAD_MADT_GICC_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v2.c:1153,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/gic-v2.c:1166,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/gic-v2.c:1168,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1185
    functionName: gic_acpi_parse_madt_cpu
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_GICC_ENTRY
    - irq_set_type
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_madt_cpu(struct acpi_subtable_header *header,\n
      \                       const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v2.c:1192,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v2.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1200
    functionName: gic_acpi_parse_madt_distributor
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_madt_distributor(struct acpi_subtable_header *header,\n
      \                               const unsigned long end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/arm/gic-v2.c:1208,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/arm/gic-v2.c:1210,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/arch/arm/gic-v2.c:1212,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1214,1
    - Dst: acpi_parse_entries
      Src: /src/xen/xen/arch/arm/gic-v2.c:1218,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1222,1
    - Dst: acpi_parse_entries
      Src: /src/xen/xen/arch/arm/gic-v2.c:1228,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1233
    functionName: gicv2_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - panic
    - acpi_get_table
    - acpi_format_exception
    - acpi_parse_entries
    linkageType: ''
    returnType: void
    signature: void gicv2_acpi_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1235
    functionName: gicv2_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv2_acpi_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gicv2_dt_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1243,1
    - Dst: gicv2_acpi_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1245,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1247,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1258,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v2.c:1260,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1262,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v2.c:1264,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1266,1
    - Dst: gicv2_is_aliased
      Src: /src/xen/xen/arch/arm/gic-v2.c:1268,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1281,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v2.c:1285,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v2.c:1289,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v2.c:1291,1
    - Dst: vgic_v2_setup_hw
      Src: /src/xen/xen/arch/arm/gic-v2.c:1293,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1296,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v2.c:1297,1
    - Dst: gicv2_dist_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1299,1
    - Dst: gicv2_cpu_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1300,1
    - Dst: gicv2_hyp_init
      Src: /src/xen/xen/arch/arm/gic-v2.c:1301,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v2.c:1303,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1238
    functionDepth: 4
    functionLinenumber: 1238
    functionLinenumberEnd: 1306
    functionName: gicv2_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - vgic_v2_setup_hw
    - spin_unlock
    - gicv2_hyp_init
    - gicv2_is_aliased
    - panic
    - ioremap_nocache
    - spin_lock
    - gicv2_cpu_init
    - printk
    - gicv2_acpi_init
    - spin_lock_init
    - gicv2_dist_init
    - gicv2_dt_init
    linkageType: ''
    returnType: int
    signature: int gicv2_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v2.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lpi
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1312
    functionName: gicv2_do_LPI
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void gicv2_do_LPI(unsigned int lpi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_gic_ops
      Src: /src/xen/xen/arch/arm/gic-v2.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1360
    functionName: gicv2_dt_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - register_gic_ops
    linkageType: ''
    returnType: int
    signature: "int gicv2_dt_preinit(struct dt_device_node *node,\n                                   const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_gic_ops
      Src: /src/xen/xen/arch/arm/gic-v2.c:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1381
    functionName: gicv2_acpi_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic-v2.c
    functionUses: 0
    functionsReached:
    - register_gic_ops
    linkageType: ''
    returnType: int
    signature: int gicv2_acpi_preinit(const void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:88,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:91,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - plpi
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 103
    functionName: gic_get_host_lpi
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - is_lpi
    - ASSERT
    - smp_rmb
    linkageType: ''
    returnType: union host_lpi
    signature: union host_lpi *gic_get_host_lpi(uint32_t plpi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:114,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - address
    - redist_id
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: gicv3_set_redist_address
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void gicv3_set_redist_address(paddr_t address, unsigned int redist_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:126,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:126,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cpu
    - use_pta
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: gicv3_get_redist_address
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - per_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gicv3_get_redist_address(unsigned int cpu, bool use_pta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:138,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:144,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 149
    functionName: vgic_vcpu_inject_lpi
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - ACCESS_ONCE
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void vgic_vcpu_inject_lpi(struct domain *d, unsigned int virq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_enter
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:168,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:171,1
    - Dst: gic_get_host_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:174,1
    - Dst: read_u64_atomic
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:178,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:188,1
    - Dst: vgic_vcpu_inject_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:202,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:204,1
    - Dst: irq_exit
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - lpi
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 208
    functionName: gicv3_do_LPI
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - gic_get_host_lpi
    - read_u64_atomic
    - irq_exit
    - irq_enter
    - rcu_lock_domain_by_id
    - vgic_vcpu_inject_lpi
    - rcu_unlock_domain
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_do_LPI(unsigned int lpi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:215,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - host_lpi
    - domain_id
    - virt_lpi
    argTypes:
    - uint32_t
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 225
    functionName: gicv3_lpi_update_host_entry
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - write_u64_atomic
    linkageType: ''
    returnType: void
    signature: "void gicv3_lpi_update_host_entry(uint32_t host_lpi, int domain_id,\n
      \                                uint32_t virt_lpi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:232,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:241,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:241,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:242,1
    - Dst: gicv3_its_get_memflags
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:242,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:246,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:248,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:248,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:250,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:253,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 259
    functionName: gicv3_lpi_allocate_pendtable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - max
    - GENMASK
    - virt_to_maddr
    - alloc_xenheap_pages
    - per_cpu
    - free_xenheap_pages
    - memset
    - gicv3_its_get_memflags
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_allocate_pendtable(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:263,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:272,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:276,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:276,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:276,1
    - Dst: gicv3_its_get_cacheability
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:278,1
    - Dst: gicv3_its_get_shareability
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:280,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:282,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:284,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:285,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - rdist_base
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 297
    functionName: gicv3_lpi_set_pendtable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - gicv3_its_get_cacheability
    - GENMASK
    - readq_relaxed
    - gicv3_its_get_shareability
    - ASSERT
    - virt_to_maddr
    - writeq_relaxed
    - this_cpu
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_set_pendtable(void __iomem *rdist_base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_its_get_cacheability
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:308,1
    - Dst: gicv3_its_get_shareability
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:310,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:321,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:321,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:322,1
    - Dst: gicv3_its_get_memflags
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:322,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:328,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:328,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:330,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:333,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:334,1
    - Dst: fls
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:339,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:341,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:343,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:344,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - rdist_base
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 362
    functionName: gicv3_lpi_set_proptable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - gicv3_its_get_cacheability
    - get_order_from_bytes
    - fls
    - max
    - GENMASK
    - readq_relaxed
    - gicv3_its_get_shareability
    - virt_to_maddr
    - alloc_xenheap_pages
    - writeq_relaxed
    - free_xenheap_pages
    - memset
    - gicv3_its_get_memflags
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_set_proptable(void __iomem * rdist_base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_its_host_has_its
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:370,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:374,1
    - Dst: gicv3_lpi_set_pendtable
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:378,1
    - Dst: gicv3_lpi_set_proptable
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - rdist_base
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 383
    functionName: gicv3_lpi_init_rdist
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - gicv3_lpi_set_pendtable
    - readl_relaxed
    - gicv3_lpi_set_proptable
    - gicv3_its_host_has_its
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_init_rdist(void __iomem * rdist_base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_lpi_allocate_pendtable
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:394,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:396,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - notifier_from_errno
    - printk
    - gicv3_lpi_allocate_pendtable
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(struct notifier_block *nfb, unsigned long action,\n
      \                       void *hcpu)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:422,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:429,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:431,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:432,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:432,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:439,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:440,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:442,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:446,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:450,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:453,1
    - Dst: gicv3_lpi_allocate_pendtable
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:454,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:454,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:456,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - host_lpi_bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 460
    functionName: gicv3_lpi_init_host_lpis
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - max
    - BIT
    - smp_processor_id
    - warning_add
    - BUILD_BUG_ON
    - xzalloc_array
    - register_cpu_notifier
    - min
    - printk
    - gicv3_lpi_allocate_pendtable
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:467,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - start
    - index
    argTypes:
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 493
    functionName: find_unused_host_lpi
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: int
    signature: int find_unused_host_lpi(uint32_t start, uint32_t *index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:506,1
    - Dst: find_unused_host_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:508,1
    - Dst: find_unused_host_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:514,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:517,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:528,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:531,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:542,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:560,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:577,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:580,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - d
    - first_lpi
    argTypes:
    - struct domain*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 586
    functionName: gicv3_allocate_host_lpi_block
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - alloc_xenheap_page
    - spin_unlock
    - find_unused_host_lpi
    - smp_wmb
    - spin_lock
    - write_u64_atomic
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: int gicv3_allocate_host_lpi_block(struct domain *d, uint32_t *first_lpi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:594,1
    - Dst: gic_get_host_lpi
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:596,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:600,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:603,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-lpi.c:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - first_lpi
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 615
    functionName: gicv3_free_host_lpi_block
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-lpi.c
    functionUses: 0
    functionsReached:
    - gic_get_host_lpi
    - spin_unlock
    - ASSERT
    - spin_lock
    - write_u64_atomic
    linkageType: ''
    returnType: void
    signature: void gicv3_free_host_lpi_block(uint32_t first_lpi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: domain_vpci_init
    functionSourceFile: /src/xen/xen/arch/arm/vpci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int domain_vpci_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: domain_vpci_get_num_mmio_handlers
    functionSourceFile: /src/xen/xen/arch/arm/vpci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: domain_has_vuart
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_has_vuart(d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vuart.c:48,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vuart.c:48,1
    - Dst: serial_vuart_info
      Src: /src/xen/xen/arch/arm/vuart.c:50,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vuart.c:54,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vuart.c:57,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vuart.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: domain_vuart_init
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached:
    - serial_vuart_info
    - register_mmio_handler
    - xzalloc_array
    - ASSERT
    - spin_lock_init
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int domain_vuart_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_vuart
      Src: /src/xen/xen/arch/arm/vuart.c:71,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vuart.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: domain_vuart_free
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached:
    - xfree
    - domain_has_vuart
    linkageType: ''
    returnType: void
    signature: void domain_vuart_free(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_console_printable
      Src: /src/xen/xen/arch/arm/vuart.c:82,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vuart.c:85,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vuart.c:92,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vuart.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: vuart_print_char
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached:
    - printk
    - spin_lock
    - spin_unlock
    - is_console_printable
    linkageType: ''
    returnType: void
    signature: void vuart_print_char(struct vcpu *v, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vuart.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: vuart_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    linkageType: ''
    returnType: int
    signature: "int vuart_mmio_read(struct vcpu *v, mmio_info_t *info,\n                           register_t
      *r, void *priv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vuart.c:122,1
    - Dst: vuart_print_char
      Src: /src/xen/xen/arch/arm/vuart.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: vuart_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vuart.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vuart_print_char
    linkageType: ''
    returnType: int
    signature: "int vuart_mmio_write(struct vcpu *v, mmio_info_t *info,\n                            register_t
      r, void *priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: GVA_INFO
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GVA_INFO(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - domain
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: GPA_INFO
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GPA_INFO(domain)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gva
      Src: /src/xen/xen/arch/arm/guestcopy.c:39,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/guestcopy.c:42,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/guestcopy.c:42,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/guestcopy.c:47,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/guestcopy.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - info
    - addr
    - linear
    - write
    argTypes:
    - copy_info_t
    - uint64_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: translate_get_page
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 2
    functionsReached:
    - p2m_is_ram
    - paddr_to_pfn
    - get_page_from_gfn
    - put_page
    - get_page_from_gva
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *translate_get_page(copy_info_t info, uint64_t addr,\n
      \                                           bool linear, bool write)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/guestcopy.c:62,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/guestcopy.c:63,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/guestcopy.c:68,1
    - Dst: translate_get_page
      Src: /src/xen/xen/arch/arm/guestcopy.c:71,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/guestcopy.c:76,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/guestcopy.c:85,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/guestcopy.c:87,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/guestcopy.c:90,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/guestcopy.c:93,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/guestcopy.c:95,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/guestcopy.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - buf
    - addr
    - len
    - info
    - flags
    argTypes:
    - void*
    - uint64_t
    - unsigned int
    - copy_info_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 108
    functionName: copy_guest
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - clean_dcache_va_range
    - translate_get_page
    - BUILD_BUG_ON
    - min
    - memset
    - __map_domain_page
    - put_page
    - memcpy
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,\n
      \                               copy_info_t info, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:112,1
    - Dst: GVA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: raw_copy_to_guest
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 1
    functionsReached:
    - copy_guest
    - GVA_INFO
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long raw_copy_to_guest(void *to, const void *from, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:119,1
    - Dst: GVA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: raw_copy_to_guest_flush_dcache
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached:
    - copy_guest
    - GVA_INFO
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_to_guest_flush_dcache(void *to, const void
      *from,\n                                             unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:125,1
    - Dst: GVA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: raw_clear_guest
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached:
    - copy_guest
    - GVA_INFO
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long raw_clear_guest(void *to, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:132,1
    - Dst: GVA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - to
    - from
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: raw_copy_from_guest
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 1
    functionsReached:
    - copy_guest
    - GVA_INFO
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long raw_copy_from_guest(void *to, const void __user *from,\n
      \                                 unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:141,1
    - Dst: GPA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gpa
    - buf
    - len
    argTypes:
    - struct domain*
    - paddr_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: copy_to_guest_phys_flush_dcache
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached:
    - copy_guest
    - GPA_INFO
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,\n
      \                                             paddr_t gpa,\n                                              void
      *buf,\n                                              unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_guest
      Src: /src/xen/xen/arch/arm/guestcopy.c:153,1
    - Dst: GPA_INFO
      Src: /src/xen/xen/arch/arm/guestcopy.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - d
    - gpa
    - buf
    - size
    - is_write
    argTypes:
    - struct domain*
    - paddr_t
    - void*
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: access_guest_memory_by_gpa
    functionSourceFile: /src/xen/xen/arch/arm/guestcopy.c
    functionUses: 0
    functionsReached:
    - copy_guest
    - GPA_INFO
    linkageType: ''
    returnType: int
    signature: "int access_guest_memory_by_gpa(struct domain *d, paddr_t gpa, void
      *buf,\n                               uint32_t size, bool is_write)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: lr_all_full
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lr_all_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:29,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic-vgic.c:29,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:31,1
    - Dst: update_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:33,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:36,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - lr
    - p
    - state
    argTypes:
    - int
    - struct pending_irq*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: gic_set_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - update_lr
    - ASSERT
    - clear_bit
    - local_irq_is_enabled
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void gic_set_lr(int lr, struct pending_irq *p,\n                              unsigned
      int state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:45,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:45,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-vgic.c:47,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-vgic.c:50,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/gic-vgic.c:54,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/gic-vgic.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - struct vcpu*
    - struct pending_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: gic_add_to_lr_pending
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - ASSERT
    - list_empty
    - list_for_each_entry
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void gic_add_to_lr_pending(struct vcpu *v, struct pending_irq *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:63,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:63,1
    - Dst: list_del_init
      Src: /src/xen/xen/arch/arm/gic-vgic.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - struct vcpu*
    - struct pending_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: gic_remove_from_lr_pending
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_del_init
    linkageType: ''
    returnType: void
    signature: void gic_remove_from_lr_pending(struct vcpu *v, struct pending_irq
      *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:70,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/gic-vgic.c:73,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:76,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:76,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:79,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-vgic.c:82,1
    - Dst: gic_update_one_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - v
    - virtual_irq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: gic_raise_inflight_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - spin_is_locked
    - ASSERT
    - unlikely
    - gic_update_one_lr
    - test_bit
    - list_empty
    linkageType: ''
    returnType: void
    signature: void gic_raise_inflight_irq(struct vcpu *v, unsigned int virtual_irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:105,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:107,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:107,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/gic-vgic.c:109,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:109,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:111,1
    - Dst: read_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:115,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:121,1
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/gic-vgic.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - v
    - p
    - lr
    argTypes:
    - struct vcpu*
    - struct pending_irq*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: gic_find_unused_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - gic_get_nr_lrs
    - find_next_zero_bit
    - read_lr
    - spin_is_locked
    - ASSERT
    - this_cpu
    - for_each_set_bit
    - unlikely
    - test_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int gic_find_unused_lr(struct vcpu *v,\n                                       struct
      pending_irq *p,\n                                       unsigned int lr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/gic-vgic.c:130,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:133,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:133,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/gic-vgic.c:135,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-vgic.c:139,1
    - Dst: gic_find_unused_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:141,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:144,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:144,1
    - Dst: gic_set_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:145,1
    - Dst: gic_add_to_lr_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - v
    - virtual_irq
    - priority
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 151
    functionName: gic_raise_guest_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - gic_add_to_lr_pending
    - spin_is_locked
    - ASSERT
    - gic_find_unused_lr
    - this_cpu
    - gic_set_lr
    - unlikely
    - gic_get_nr_lrs
    - list_empty
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void gic_raise_guest_irq(struct vcpu *v, unsigned int virtual_irq,\n
      \       unsigned int priority)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:159,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:159,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:160,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic-vgic.c:160,1
    - Dst: read_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:162,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:164,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/gic-vgic.c:171,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:172,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:174,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/gic-vgic.c:174,1
    - Dst: clear_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:176,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:177,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:177,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:184,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:185,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:186,1
    - Dst: write_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:191,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/gic-vgic.c:194,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/gic-vgic.c:203,1
    - Dst: clear_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:210,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:212,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:212,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:215,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:216,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:217,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:219,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:220,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:221,1
    - Dst: gic_raise_guest_irq
      Src: /src/xen/xen/arch/arm/gic-vgic.c:222,1
    - Dst: list_del_init
      Src: /src/xen/xen/arch/arm/gic-vgic.c:224,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/arm/gic-vgic.c:231,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:232,1
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:234,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/gic-vgic.c:235,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/gic-vgic.c:235,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:236,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - struct vcpu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 240
    functionName: gic_update_one_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 1
    functionsReached:
    - list_del_init
    - gic_raise_guest_irq
    - clear_lr
    - test_and_clear_bit
    - spin_is_locked
    - is_lpi
    - test_bit
    - local_irq_is_enabled
    - irq_to_pending
    - gdprintk
    - smp_wmb
    - ASSERT
    - clear_bit
    - this_cpu
    - cpumask_of
    - write_lr
    - set_bit
    - irq_set_affinity
    - read_lr
    - unlikely
    - vgic_get_target_vcpu
    linkageType: ''
    returnType: void
    signature: void gic_update_one_lr(struct vcpu *v, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/gic-vgic.c:246,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:251,1
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/gic-vgic.c:254,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-vgic.c:256,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:258,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:258,1
    - Dst: gic_update_one_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:260,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-vgic.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: vgic_sync_from_lrs
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - find_next_bit
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - this_cpu
    - gic_update_one_lr
    - gic_get_nr_lrs
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_sync_from_lrs(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/gic-vgic.c:272,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:275,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic-vgic.c:275,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-vgic.c:277,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-vgic.c:279,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/gic-vgic.c:283,1
    - Dst: gic_find_unused_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:285,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:293,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:294,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:304,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:305,1
    - Dst: gic_add_to_lr_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:306,1
    - Dst: gic_set_lr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:310,1
    - Dst: list_del_init
      Src: /src/xen/xen/arch/arm/gic-vgic.c:311,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:312,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:312,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-vgic.c:321,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 322
    functionName: gic_restore_pending_irqs
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - list_del_init
    - local_irq_is_enabled
    - gic_add_to_lr_pending
    - ASSERT
    - spin_lock
    - list_for_each_entry_safe
    - gic_find_unused_lr
    - clear_bit
    - gic_set_lr
    - this_cpu
    - test_bit
    - gic_get_nr_lrs
    - list_empty
    - set_bit
    linkageType: ''
    returnType: void
    signature: void gic_restore_pending_irqs(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:293,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: list_for_each_entry_reverse
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_reverse( p_r, inflight_r, inflight )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:328,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-vgic.c:328,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/gic-vgic.c:331,1
    - Dst: gic_remove_from_lr_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: gic_clear_pending_irqs
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_for_each_entry_safe
    - gic_remove_from_lr_pending
    linkageType: ''
    returnType: void
    signature: void gic_clear_pending_irqs(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_apr
      Src: /src/xen/xen/arch/arm/gic-vgic.c:349,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:355,1
    - Dst: read_vmcr_priority
      Src: /src/xen/xen/arch/arm/gic-vgic.c:357,1
    - Dst: find_first_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:358,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-vgic.c:360,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-vgic.c:367,1
    - Dst: GIC_PRI_TO_GUEST
      Src: /src/xen/xen/arch/arm/gic-vgic.c:369,1
    - Dst: GIC_PRI_TO_GUEST
      Src: /src/xen/xen/arch/arm/gic-vgic.c:371,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:373,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-vgic.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 383
    functionName: vgic_vcpu_pending_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - read_apr
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - find_first_bit
    - GIC_PRI_TO_GUEST
    - test_bit
    - list_for_each_entry
    - read_vmcr_priority
    linkageType: ''
    returnType: int
    signature: int vgic_vcpu_pending_irq(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:387,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic-vgic.c:387,1
    - Dst: gic_restore_pending_irqs
      Src: /src/xen/xen/arch/arm/gic-vgic.c:389,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-vgic.c:391,1
    - Dst: lr_all_full
      Src: /src/xen/xen/arch/arm/gic-vgic.c:391,1
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/gic-vgic.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: vgic_sync_to_lrs
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - local_irq_is_enabled
    - lr_all_full
    - ASSERT
    - gic_restore_pending_irqs
    - list_empty
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_sync_to_lrs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-vgic.c:399,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-vgic.c:400,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-vgic.c:402,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-vgic.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 404
    functionName: gic_dump_vgic_info
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - printk
    linkageType: ''
    returnType: void
    signature: void gic_dump_vgic_info(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:411,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - d
    - v
    - virq
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 421
    functionName: vgic_get_hw_irq_desc
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - ASSERT
    linkageType: ''
    returnType: struct irq_desc
    signature: "struct irq_desc *vgic_get_hw_irq_desc(struct domain *d, struct vcpu
      *v,\n                                      unsigned int virq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/gic-vgic.c:431,1
    - Dst: vgic_rank_irq
      Src: /src/xen/xen/arch/arm/gic-vgic.c:432,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/gic-vgic.c:433,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-vgic.c:437,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/gic-vgic.c:440,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:449,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:450,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic-vgic.c:451,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/gic-vgic.c:464,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 5
    argNames:
    - d
    - v
    - virq
    - desc
    - connect
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 467
    functionName: vgic_connect_hw_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - ASSERT
    - vgic_unlock_rank
    - vgic_lock_rank
    - test_bit
    - vgic_get_target_vcpu
    - vgic_rank_irq
    linkageType: ''
    returnType: int
    signature: "int vgic_connect_hw_irq(struct domain *d, struct vcpu *v, unsigned
      int virq,\n                        struct irq_desc *desc, bool connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/gic.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct gic_hw_operations*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: register_gic_ops
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void register_gic_ops(const struct gic_hw_operations *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: clear_cpu_lr_mask
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void clear_cpu_lr_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: gic_hw_version
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum gic_version
    signature: enum gic_version gic_hw_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: gic_number_lines
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gic_number_lines(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:66,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic.c:66,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:67,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/gic.c:67,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic.c:73,1
    - Dst: save_state
      Src: /src/xen/xen/arch/arm/gic.c:74,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: gic_save_state
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - ASSERT
    - this_cpu
    - save_state
    - local_irq_is_enabled
    - isb
    linkageType: ''
    returnType: void
    signature: void gic_save_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:80,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic.c:80,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:81,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/gic.c:81,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic.c:83,1
    - Dst: restore_state
      Src: /src/xen/xen/arch/arm/gic.c:84,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: gic_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - restore_state
    - ASSERT
    - this_cpu
    - local_irq_is_enabled
    - isb
    linkageType: ''
    returnType: void
    signature: void gic_restore_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:96,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic.c:96,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:97,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic.c:97,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:98,1
    - Dst: set_irq_type
      Src: /src/xen/xen/arch/arm/gic.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - desc
    - type
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: gic_set_irq_type
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - test_bit
    - spin_is_locked
    - set_irq_type
    linkageType: ''
    returnType: void
    signature: void gic_set_irq_type(struct irq_desc *desc, unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_irq_priority
      Src: /src/xen/xen/arch/arm/gic.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: gic_set_irq_priority
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - set_irq_priority
    linkageType: ''
    returnType: void
    signature: void gic_set_irq_priority(struct irq_desc *desc, unsigned int priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:113,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:115,1
    - Dst: gic_is_valid_line
      Src: /src/xen/xen/arch/arm/gic.c:115,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:116,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic.c:116,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:117,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic.c:117,1
    - Dst: gic_set_irq_type
      Src: /src/xen/xen/arch/arm/gic.c:123,1
    - Dst: gic_set_irq_priority
      Src: /src/xen/xen/arch/arm/gic.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: gic_route_irq_to_xen
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - gic_is_valid_line
    - spin_is_locked
    - gic_set_irq_type
    - gic_set_irq_priority
    - ASSERT
    - test_bit
    linkageType: ''
    returnType: void
    signature: void gic_route_irq_to_xen(struct irq_desc *desc, unsigned int priority)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:135,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic.c:135,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:137,1
    - Dst: vgic_is_spi
      Src: /src/xen/xen/arch/arm/gic.c:137,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:138,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/gic.c:138,1
    - Dst: vgic_connect_hw_irq
      Src: /src/xen/xen/arch/arm/gic.c:140,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic.c:145,1
    - Dst: irq_type_set_by_domain
      Src: /src/xen/xen/arch/arm/gic.c:147,1
    - Dst: gic_set_irq_type
      Src: /src/xen/xen/arch/arm/gic.c:148,1
    - Dst: gic_set_irq_priority
      Src: /src/xen/xen/arch/arm/gic.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - d
    - virq
    - desc
    - priority
    argTypes:
    - struct domain*
    - unsigned int
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: gic_route_irq_to_guest
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - vgic_connect_hw_irq
    - spin_is_locked
    - irq_type_set_by_domain
    - gic_set_irq_type
    - gic_set_irq_priority
    - vgic_is_spi
    - ASSERT
    - is_lpi
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int gic_route_irq_to_guest(struct domain *d, unsigned int virq,\n
      \                          struct irq_desc *desc, unsigned int priority)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:160,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic.c:160,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:161,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic.c:161,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:162,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/gic.c:162,1
    - Dst: struct irq_desc*::handler::shutdown
      Src: /src/xen/xen/arch/arm/gic.c:171,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/gic.c:174,1
    - Dst: deactivate_irq
      Src: /src/xen/xen/arch/arm/gic.c:175,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic.c:176,1
    - Dst: vgic_connect_hw_irq
      Src: /src/xen/xen/arch/arm/gic.c:178,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - d
    - virq
    - desc
    argTypes:
    - struct domain*
    - unsigned int
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 186
    functionName: gic_remove_irq_from_guest
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - vgic_connect_hw_irq
    - spin_is_locked
    - deactivate_irq
    - ASSERT
    - clear_bit
    - struct irq_desc*::handler::shutdown
    - is_lpi
    - test_bit
    linkageType: ''
    returnType: int
    signature: "int gic_remove_irq_from_guest(struct domain *d, unsigned int virq,\n
      \                             struct irq_desc *desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - intspec
    - intsize
    - out_hwirq
    - out_type
    argTypes:
    - u32*
    - unsigned int
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: gic_irq_xlate
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gic_irq_xlate(const u32 *intspec, unsigned int intsize,\n                  unsigned
      int *out_hwirq,\n                  unsigned int *out_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_hwdom_extra_mappings
      Src: /src/xen/xen/arch/arm/gic.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: gic_map_hwdom_extra_mappings
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - map_hwdom_extra_mappings
    linkageType: ''
    returnType: int
    signature: int gic_map_hwdom_extra_mappings(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_get_entry_madt
      Src: /src/xen/xen/arch/arm/gic.c:223,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic.c:225,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic.c:227,1
    - Dst: acpi_device_init
      Src: /src/xen/xen/arch/arm/gic.c:229,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: gic_acpi_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - panic
    - acpi_device_init
    - acpi_table_get_entry_madt
    - container_of
    linkageType: ''
    returnType: void
    signature: void gic_acpi_preinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: gic_acpi_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gic_acpi_preinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: intc_dt_preinit
      Src: /src/xen/xen/arch/arm/gic.c:242,1
    - Dst: gic_acpi_preinit
      Src: /src/xen/xen/arch/arm/gic.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: gic_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - gic_acpi_preinit
    - intc_dt_preinit
    linkageType: ''
    returnType: void
    signature: void gic_preinit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init
      Src: /src/xen/xen/arch/arm/gic.c:250,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic.c:251,1
    - Dst: clear_cpu_lr_mask
      Src: /src/xen/xen/arch/arm/gic.c:253,1
    - Dst: gic_number_lines
      Src: /src/xen/xen/arch/arm/gic.c:255,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: gic_init
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - panic
    - gic_number_lines
    - printk
    - clear_cpu_lr_mask
    - init
    linkageType: ''
    returnType: void
    signature: void gic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI
      Src: /src/xen/xen/arch/arm/gic.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpumask
    - sgi
    argTypes:
    - cpumask_t*
    - enum gic_sgi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: send_SGI_mask
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 2
    functionsReached:
    - send_SGI
    linkageType: ''
    returnType: void
    signature: void send_SGI_mask(const cpumask_t *cpumask, enum gic_sgi sgi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI_mask
      Src: /src/xen/xen/arch/arm/gic.c:266,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/gic.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - sgi
    argTypes:
    - unsigned int
    - enum gic_sgi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: send_SGI_one
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - send_SGI_mask
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void send_SGI_one(unsigned int cpu, enum gic_sgi sgi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI
      Src: /src/xen/xen/arch/arm/gic.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sgi
    argTypes:
    - enum gic_sgi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: send_SGI_self
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - send_SGI
    linkageType: ''
    returnType: void
    signature: void send_SGI_self(enum gic_sgi sgi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI
      Src: /src/xen/xen/arch/arm/gic.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sgi
    argTypes:
    - enum gic_sgi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    functionName: send_SGI_allbutself
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - send_SGI
    linkageType: ''
    returnType: void
    signature: void send_SGI_allbutself(enum gic_sgi sgi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI_one
      Src: /src/xen/xen/arch/arm/gic.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: smp_send_state_dump
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - send_SGI_one
    linkageType: ''
    returnType: void
    signature: void smp_send_state_dump(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secondary_init
      Src: /src/xen/xen/arch/arm/gic.c:287,1
    - Dst: clear_cpu_lr_mask
      Src: /src/xen/xen/arch/arm/gic.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: gic_init_secondary_cpu
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - clear_cpu_lr_mask
    - secondary_init
    linkageType: ''
    returnType: void
    signature: void gic_init_secondary_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:295,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/gic.c:295,1
    - Dst: disable_interface
      Src: /src/xen/xen/arch/arm/gic.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: gic_disable_cpu
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - disable_interface
    - ASSERT
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void gic_disable_cpu(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/gic.c:302,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/gic.c:304,1
    - Dst: eoi_irq
      Src: /src/xen/xen/arch/arm/gic.c:307,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/gic.c:314,1
    - Dst: dump_execstate
      Src: /src/xen/xen/arch/arm/gic.c:322,1
    - Dst: smp_call_function_interrupt
      Src: /src/xen/xen/arch/arm/gic.c:325,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic.c:328,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic.c:328,1
    - Dst: deactivate_irq
      Src: /src/xen/xen/arch/arm/gic.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - sgi
    argTypes:
    - struct cpu_user_regs*
    - enum gic_sgi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 334
    functionName: do_static_sgi
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - smp_call_function_interrupt
    - irq_to_desc
    - panic
    - smp_processor_id
    - deactivate_irq
    - smp_rmb
    - eoi_irq
    - dump_execstate
    linkageType: ''
    returnType: void
    signature: void do_static_sgi(struct cpu_user_regs *regs, enum gic_sgi sgi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_irq
      Src: /src/xen/xen/arch/arm/gic.c:343,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/gic.c:345,1
    - Dst: is_espi
      Src: /src/xen/xen/arch/arm/gic.c:345,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic.c:347,1
    - Dst: do_IRQ
      Src: /src/xen/xen/arch/arm/gic.c:348,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/gic.c:350,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic.c:352,1
    - Dst: do_LPI
      Src: /src/xen/xen/arch/arm/gic.c:353,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/gic.c:355,1
    - Dst: do_static_sgi
      Src: /src/xen/xen/arch/arm/gic.c:357,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/gic.c:361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - is_fiq
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 365
    functionName: gic_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - unlikely
    - do_LPI
    - do_static_sgi
    - local_irq_disable
    - likely
    - is_espi
    - read_irq
    - isb
    - do_IRQ
    - is_lpi
    linkageType: ''
    returnType: void
    signature: void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/gic.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 381
    functionName: maintenance_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    linkageType: ''
    returnType: void
    signature: void maintenance_interrupt(int irq, void *dev_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic.c:385,1
    - Dst: dump_state
      Src: /src/xen/xen/arch/arm/gic.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: gic_dump_info
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - dump_state
    - printk
    linkageType: ''
    returnType: void
    signature: void gic_dump_info(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/gic.c:393,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/arm/gic.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 400
    functionName: init_maintenance_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void init_maintenance_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic.c:406,1
    - Dst: make_hwdom_dt_node
      Src: /src/xen/xen/arch/arm/gic.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: gic_make_hwdom_dt_node
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - make_hwdom_dt_node
    - ASSERT
    linkageType: ''
    returnType: int
    signature: "int gic_make_hwdom_dt_node(const struct domain *d,\n                           const
      struct dt_device_node *gic,\n                           void *fdt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_hwdom_madt
      Src: /src/xen/xen/arch/arm/gic.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - offset
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: gic_make_hwdom_madt
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - make_hwdom_madt
    linkageType: ''
    returnType: int
    signature: int gic_make_hwdom_madt(const struct domain *d, u32 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hwdom_extra_madt_size
      Src: /src/xen/xen/arch/arm/gic.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: gic_get_hwdom_madt_size
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - get_hwdom_extra_madt_size
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gic_get_hwdom_madt_size(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: gic_iomem_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - iomem_deny_access
    linkageType: ''
    returnType: int
    signature: int gic_iomem_deny_access(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: release_irq
      Src: /src/xen/xen/arch/arm/gic.c:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 450
    functionName: cpu_gic_callback
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - release_irq
    linkageType: ''
    returnType: int
    signature: "int cpu_gic_callback(struct notifier_block *nfb,\n                            unsigned
      long action,\n                            void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/gic.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: cpu_gic_notifier_init
    functionSourceFile: /src/xen/xen/arch/arm/gic.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpu_gic_notifier_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: irq_ack_none
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void irq_ack_none(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_host_irq_type::end
      Src: /src/xen/xen/arch/arm/irq.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: irq_end_none
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - gic_host_irq_type::end
    linkageType: ''
    returnType: void
    signature: void irq_end_none(struct irq_desc *irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: espi_intid_to_idx
      Src: /src/xen/xen/arch/arm/irq.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: espi_to_desc
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - espi_intid_to_idx
    linkageType: ''
    returnType: struct irq_desc
    signature: struct irq_desc *espi_to_desc(unsigned int irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:66,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/arm/irq.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 77
    functionName: init_espi_data
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - init_one_irq_desc
    linkageType: ''
    returnType: int
    signature: int init_espi_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: init_espi_data
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_espi_data(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/irq.c:91,1
    - Dst: is_espi
      Src: /src/xen/xen/arch/arm/irq.c:94,1
    - Dst: espi_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: __irq_to_desc
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - is_espi
    - espi_to_desc
    - this_cpu
    linkageType: ''
    returnType: struct irq_desc
    signature: struct irq_desc *__irq_to_desc(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: arch_init_one_irq_desc
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_init_one_irq_desc(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:114,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/arm/irq.c:115,1
    - Dst: init_espi_data
      Src: /src/xen/xen/arch/arm/irq.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: init_irq_data
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 2
    functionsReached:
    - init_espi_data
    - irq_to_desc
    - init_one_irq_desc
    linkageType: ''
    returnType: int
    signature: int init_irq_data(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/irq.c:131,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/irq.c:135,1
    - Dst: init_one_irq_desc
      Src: /src/xen/xen/arch/arm/irq.c:136,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/irq.c:140,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/irq.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 159
    functionName: init_local_irq_data
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - per_cpu
    - init_one_irq_desc
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int init_local_irq_data(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_local_irq_data
      Src: /src/xen/xen/arch/arm/irq.c:170,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:172,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/arm/irq.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - notifier_from_errno
    - init_local_irq_data
    - printk
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(struct notifier_block *nfb, unsigned long action,\n
      \                       void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/irq.c:188,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/irq.c:197,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/irq.c:199,1
    - Dst: init_local_irq_data
      Src: /src/xen/xen/arch/arm/irq.c:199,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/irq.c:199,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/irq.c:200,1
    - Dst: init_irq_data
      Src: /src/xen/xen/arch/arm/irq.c:200,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/irq.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: init_IRQ
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 2
    functionsReached:
    - init_local_irq_data
    - spin_unlock
    - smp_processor_id
    - register_cpu_notifier
    - BUG_ON
    - spin_lock
    - init_irq_data
    linkageType: ''
    returnType: void
    signature: void init_IRQ(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:207,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/irq.c:207,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:208,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:208,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: irq_get_guest_info
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - test_bit
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: struct irq_guest
    signature: struct irq_guest *irq_get_guest_info(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_get_guest_info
      Src: /src/xen/xen/arch/arm/irq.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: irq_get_domain
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - irq_get_guest_info
    linkageType: ''
    returnType: struct domain
    signature: struct domain *irq_get_domain(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct irq_desc*::handler::set_affinity
      Src: /src/xen/xen/arch/arm/irq.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: irq_set_affinity
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 3
    functionsReached:
    - struct irq_desc*::handler::set_affinity
    linkageType: ''
    returnType: void
    signature: void irq_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/arm/irq.c:243,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/arm/irq.c:252,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - irq
    - irqflags
    - devname
    - dev_id
    argTypes:
    - unsigned int
    - unsigned int
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: request_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached:
    - setup_irq
    - xmalloc
    - xfree
    linkageType: ''
    returnType: int
    signature: "int request_irq(unsigned int irq, unsigned int irqflags,\n                void
      (*handler)(int irq, void *dev_id),\n                const char *devname, void
      *dev_id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:262,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/arch/arm/irq.c:264,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/irq.c:266,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:269,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/irq.c:272,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/irq.c:274,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/irq.c:276,1
    - Dst: irq_enter
      Src: /src/xen/xen/arch/arm/irq.c:280,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/irq.c:282,1
    - Dst: struct irq_desc*::handler::ack
      Src: /src/xen/xen/arch/arm/irq.c:283,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:288,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:294,1
    - Dst: irq_get_guest_info
      Src: /src/xen/xen/arch/arm/irq.c:296,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/irq.c:298,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/arm/irq.c:299,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/irq.c:301,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:307,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/irq.c:308,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:312,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/irq.c:315,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/arch/arm/irq.c:319,1
    - Dst: struct irqaction*::handler
      Src: /src/xen/xen/arch/arm/irq.c:323,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/arch/arm/irq.c:327,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/irq.c:329,1
    - Dst: struct irq_desc*::handler::end
      Src: /src/xen/xen/arch/arm/irq.c:332,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/irq.c:334,1
    - Dst: irq_exit
      Src: /src/xen/xen/arch/arm/irq.c:335,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/arch/arm/irq.c:336,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - regs
    - irq
    - is_fiq
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 337
    functionName: do_IRQ
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 4
    functionsReached:
    - struct irqaction*::handler
    - irq_exit
    - spin_lock_irq
    - spin_lock
    - irq_get_guest_info
    - struct irq_desc*::handler::ack
    - struct irq_desc*::handler::end
    - irq_to_desc
    - irq_enter
    - printk
    - test_bit
    - set_irq_regs
    - spin_unlock
    - spin_unlock_irq
    - ASSERT
    - clear_bit
    - set_bit
    - perfc_incr
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void do_IRQ(struct cpu_user_regs *regs, unsigned int irq, int is_fiq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:345,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:347,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:355,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:356,1
    - Dst: struct irq_desc*::handler::shutdown
      Src: /src/xen/xen/arch/arm/irq.c:372,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/irq.c:373,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:376,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/irq.c:379,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:379,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 383
    functionName: release_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached:
    - smp_mb
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - printk
    - struct irq_desc*::handler::shutdown
    - clear_bit
    - test_bit
    - xfree
    linkageType: ''
    returnType: void
    signature: void release_irq(unsigned int irq, const void *dev_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:390,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:396,1
    - Dst: dev_id::dev_id
      Src: /src/xen/xen/arch/arm/irq.c:398,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/irq.c:402,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/irq.c:405,1
    - Dst: dsb::dsb
      Src: /src/xen/xen/arch/arm/irq.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - desc
    - irqflags
    - new
    argTypes:
    - struct irq_desc*
    - unsigned int
    - struct irqaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 410
    functionName: __setup_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - dev_id::dev_id
    - dsb::dsb
    - dsb
    - ASSERT
    - test_bit
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int __setup_irq(struct irq_desc *desc, unsigned int irqflags,\n                       struct
      irqaction *new)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:419,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:421,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:423,1
    - Dst: irq_get_domain
      Src: /src/xen/xen/arch/arm/irq.c:425,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:427,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:428,1
    - Dst: __setup_irq
      Src: /src/xen/xen/arch/arm/irq.c:435,1
    - Dst: gic_route_irq_to_xen
      Src: /src/xen/xen/arch/arm/irq.c:442,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/irq.c:450,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/irq.c:450,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/irq.c:450,1
    - Dst: struct irq_desc*::handler::startup
      Src: /src/xen/xen/arch/arm/irq.c:451,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - irq
    - irqflags
    - new
    argTypes:
    - unsigned int
    - unsigned int
    - struct irqaction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 458
    functionName: setup_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 7
    functionsReached:
    - irq_to_desc
    - smp_processor_id
    - spin_lock_irqsave
    - struct irq_desc*::handler::startup
    - spin_unlock_irqrestore
    - gic_route_irq_to_xen
    - __setup_irq
    - irq_get_domain
    - printk
    - cpumask_of
    - test_bit
    - irq_set_affinity
    linkageType: ''
    returnType: int
    signature: int setup_irq(unsigned int irq, unsigned int irqflags, struct irqaction
      *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_is_spi
      Src: /src/xen/xen/arch/arm/irq.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: is_assignable_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - gic_is_spi
    linkageType: ''
    returnType: bool
    signature: bool is_assignable_irq(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/irq.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: irq_type_set_by_domain
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached:
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool irq_type_set_by_domain(const struct domain *d)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: vgic_is_valid_line
      Src: /src/xen/xen/arch/arm/irq.c:490,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:492,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:500,1
    - Dst: is_assignable_irq
      Src: /src/xen/xen/arch/arm/irq.c:504,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:506,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:509,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/arm/irq.c:511,1
    - Dst: xmalloc
      Src: /src/xen/xen/arch/arm/irq.c:515,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:518,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:529,1
    - Dst: irq_type_set_by_domain
      Src: /src/xen/xen/arch/arm/irq.c:531,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:533,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:548,1
    - Dst: irq_get_domain
      Src: /src/xen/xen/arch/arm/irq.c:550,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:554,1
    - Dst: irq_get_guest_info
      Src: /src/xen/xen/arch/arm/irq.c:558,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:560,1
    - Dst: irq_get_guest_info
      Src: /src/xen/xen/arch/arm/irq.c:562,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/irq.c:568,1
    - Dst: __setup_irq
      Src: /src/xen/xen/arch/arm/irq.c:574,1
    - Dst: gic_route_irq_to_guest
      Src: /src/xen/xen/arch/arm/irq.c:578,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:580,1
    - Dst: release_irq
      Src: /src/xen/xen/arch/arm/irq.c:584,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:591,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:592,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:594,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 4
    argNames:
    - d
    - virq
    - irq
    - devname
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 597
    functionName: route_irq_to_guest
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - vgic_is_valid_line
    - irq_to_desc
    - spin_lock_irqsave
    - is_assignable_irq
    - irq_type_set_by_domain
    - spin_unlock_irqrestore
    - release_irq
    - __setup_irq
    - irq_get_guest_info
    - irq_get_domain
    - printk
    - test_bit
    - xfree
    - gic_route_irq_to_guest
    linkageType: ''
    returnType: int
    signature: "int route_irq_to_guest(struct domain *d, unsigned int virq,\n                       unsigned
      int irq, const char * devname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vgic_is_spi
      Src: /src/xen/xen/arch/arm/irq.c:607,1
    - Dst: vgic_get_hw_irq_desc
      Src: /src/xen/xen/arch/arm/irq.c:610,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:614,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/irq.c:617,1
    - Dst: irq_get_guest_info
      Src: /src/xen/xen/arch/arm/irq.c:620,1
    - Dst: gic_remove_irq_from_guest
      Src: /src/xen/xen/arch/arm/irq.c:625,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:629,1
    - Dst: release_irq
      Src: /src/xen/xen/arch/arm/irq.c:631,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/irq.c:632,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:637,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 640
    functionName: release_guest_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - vgic_get_hw_irq_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - release_irq
    - vgic_is_spi
    - irq_get_guest_info
    - gic_remove_irq_from_guest
    - test_bit
    - xfree
    linkageType: ''
    returnType: int
    signature: int release_guest_irq(struct domain *d, unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - curr
    - new
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: irq_validate_new_type
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool irq_validate_new_type(unsigned int curr, unsigned int new)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/irq.c:650,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:657,1
    - Dst: irq_validate_new_type
      Src: /src/xen/xen/arch/arm/irq.c:659,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - spi
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 669
    functionName: irq_set_spi_type
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - irq_validate_new_type
    - irq_to_desc
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int irq_set_spi_type(unsigned int spi, unsigned int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/irq.c:679,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/irq.c:681,1
    - Dst: irq_validate_new_type
      Src: /src/xen/xen/arch/arm/irq.c:685,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/arch/arm/irq.c:695,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/irq.c:697,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/irq.c:698,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/irq.c:700,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/irq.c:704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - irq
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 706
    functionName: irq_local_set_type
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - spin_unlock
    - irq_validate_new_type
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - spin_lock
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int irq_local_set_type(unsigned int irq, unsigned int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_local_set_type
      Src: /src/xen/xen/arch/arm/irq.c:714,1
    - Dst: irq_set_spi_type
      Src: /src/xen/xen/arch/arm/irq.c:716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - irq
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 719
    functionName: irq_set_type
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 2
    functionsReached:
    - irq_local_set_type
    - irq_set_spi_type
    linkageType: ''
    returnType: int
    signature: int irq_set_type(unsigned int irq, unsigned int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_irq
      Src: /src/xen/xen/arch/arm/irq.c:726,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/irq.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - device
    - index
    argTypes:
    - struct dt_device_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 736
    functionName: platform_get_irq
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 1
    functionsReached:
    - irq_set_type
    - dt_device_get_irq
    linkageType: ''
    returnType: int
    signature: int platform_get_irq(const struct dt_device_node *device, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/irq.c:742,1
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/irq.c:745,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/irq.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - np
    - name
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 750
    functionName: platform_get_irq_byname
    functionSourceFile: /src/xen/xen/arch/arm/irq.c
    functionUses: 0
    functionsReached:
    - platform_get_irq
    - dt_property_match_string
    - unlikely
    linkageType: ''
    returnType: int
    signature: int platform_get_irq_byname(const struct dt_device_node *np, const
      char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/cpuerrata.c:56,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/cpuerrata.c:58,1
    - Dst: vmap_contig
      Src: /src/xen/xen/arch/arm/cpuerrata.c:64,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/cpuerrata.c:65,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/cpuerrata.c:73,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/cpuerrata.c:76,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/arm/cpuerrata.c:77,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - slot
    - hyp_vec_start
    - hyp_vec_end
    argTypes:
    - unsigned int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: copy_hyp_vect_bpi
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - virt_to_mfn
    - clean_dcache_va_range
    - vmap_contig
    - vunmap
    - BUG_ON
    - invalidate_icache
    - memcpy
    linkageType: ''
    returnType: bool
    signature: "bool copy_hyp_vect_bpi(unsigned int slot, const char *hyp_vec_start,\n
      \                             const char *hyp_vec_end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: struct arm_cpu_capabilities*::matches
      Src: /src/xen/xen/arch/arm/cpuerrata.c:100,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/cpuerrata.c:103,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:104,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/cpuerrata.c:106,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/cpuerrata.c:125,1
    - Dst: copy_hyp_vect_bpi
      Src: /src/xen/xen/arch/arm/cpuerrata.c:128,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/cpuerrata.c:138,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/cpuerrata.c:140,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/cpuerrata.c:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - entry
    - hyp_vec_start
    - hyp_vec_end
    - desc
    argTypes:
    - struct arm_cpu_capabilities*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 146
    functionName: __maybe_unused::install_bp_hardening_vec
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - smp_processor_id
    - copy_hyp_vect_bpi
    - BUG_ON
    - spin_lock
    - printk
    - struct arm_cpu_capabilities*::matches
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: bool
    signature: "bool __maybe_unused\ninstall_bp_hardening_vec(const struct arm_cpu_capabilities
      *entry,\n                         const char *hyp_vec_start,\n                         const
      char *hyp_vec_end,\n                         const char *desc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct arm_cpu_capabilities*::matches
      Src: /src/xen/xen/arch/arm/cpuerrata.c:169,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:176,1
    - Dst: SMCCC_VERSION
      Src: /src/xen/xen/arch/arm/cpuerrata.c:179,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:182,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:188,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/cpuerrata.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 197
    functionName: enable_smccc_arch_workaround_1
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - struct arm_cpu_capabilities*::matches
    - printk_once
    - install_bp_hardening_vec
    - SMCCC_VERSION
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: int
    signature: int enable_smccc_arch_workaround_1(void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: struct arm_cpu_capabilities*::matches
      Src: /src/xen/xen/arch/arm/cpuerrata.c:218,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:221,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:224,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:227,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:228,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:234,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:235,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:240,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:241,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:246,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:247,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:252,1
    - Dst: SMCCC_VERSION
      Src: /src/xen/xen/arch/arm/cpuerrata.c:256,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:259,1
    - Dst: enable_smccc_arch_workaround_1
      Src: /src/xen/xen/arch/arm/cpuerrata.c:268,1
    - Dst: install_bp_hardening_vec
      Src: /src/xen/xen/arch/arm/cpuerrata.c:274,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/cpuerrata.c:280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 284
    functionName: enable_spectre_bhb_workaround
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - cpus_have_cap
    - enable_smccc_arch_workaround_1
    - smp_processor_id
    - struct arm_cpu_capabilities*::matches
    - printk_once
    - SMCCC_VERSION
    - install_bp_hardening_vec
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: int
    signature: int enable_spectre_bhb_workaround(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct arm_cpu_capabilities*::matches
      Src: /src/xen/xen/arch/arm/cpuerrata.c:309,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/cpuerrata.c:312,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/cpuerrata.c:313,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/cpuerrata.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - entry
    - hyp_vecs
    - desc
    argTypes:
    - struct arm_cpu_capabilities*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: __maybe_unused::install_bp_hardening_vecs
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - this_cpu
    - printk
    - struct arm_cpu_capabilities*::matches
    linkageType: ''
    returnType: void
    signature: "void __maybe_unused\ninstall_bp_hardening_vecs(const struct arm_cpu_capabilities
      *entry,\n                          const char *hyp_vecs, const char *desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: install_bp_hardening_vecs
      Src: /src/xen/xen/arch/arm/cpuerrata.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: enable_bp_inv_hardening
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - install_bp_hardening_vecs
    linkageType: ''
    returnType: int
    signature: int enable_bp_inv_hardening(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: install_bp_hardening_vecs
      Src: /src/xen/xen/arch/arm/cpuerrata.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: enable_ic_inv_hardening
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - install_bp_hardening_vecs
    linkageType: ''
    returnType: int
    signature: int enable_ic_inv_hardening(void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/arch/arm/cpuerrata.c:343,1
    - Dst: strchr
      Src: /src/xen/xen/arch/arm/cpuerrata.c:345,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/arm/cpuerrata.c:347,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/arm/cpuerrata.c:351,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/arm/cpuerrata.c:353,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/arch/arm/cpuerrata.c:355,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 367
    functionName: parse_spec_ctrl
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    - cmdline_strcmp
    linkageType: ''
    returnType: int
    signature: int parse_spec_ctrl(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/cpuerrata.c:376,1
    - Dst: get_ssbd_state
      Src: /src/xen/xen/arch/arm/cpuerrata.c:382,1
    - Dst: aarch64_insn_gen_nop
      Src: /src/xen/xen/arch/arm/cpuerrata.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - alt
    - origptr
    - updptr
    - nr_inst
    argTypes:
    - struct alt_instr*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: arm_enable_wa2_handling
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - get_ssbd_state
    - aarch64_insn_gen_nop
    linkageType: ''
    returnType: void
    signature: "void arm_enable_wa2_handling(const struct alt_instr *alt,\n                                               const
      uint32_t *origptr,\n                                               uint32_t
      *updptr, int nr_inst)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SMCCC_VERSION
      Src: /src/xen/xen/arch/arm/cpuerrata.c:398,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:401,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/cpuerrata.c:423,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/cpuerrata.c:430,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:432,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/cpuerrata.c:439,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:440,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/cpuerrata.c:446,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/cpuerrata.c:448,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/cpuerrata.c:453,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct arm_cpu_capabilities*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 458
    functionName: has_ssbd_mitigation
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - printk_once
    - SMCCC_VERSION
    - this_cpu
    - ASSERT_UNREACHABLE
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: bool
    signature: bool has_ssbd_mitigation(const struct arm_cpu_capabilities *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - model
    - ','
    - min
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: MIDR_RANGE
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_RANGE(model, min, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - model
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: MIDR_ALL_VERSIONS
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_ALL_VERSIONS(model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIDR_IS_CPU_MODEL_RANGE
      Src: /src/xen/xen/arch/arm/cpuerrata.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct arm_cpu_capabilities*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: __maybe_unused::is_affected_midr_range
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - MIDR_IS_CPU_MODEL_RANGE
    linkageType: ''
    returnType: bool
    signature: 'bool __maybe_unused

      is_affected_midr_range(const struct arm_cpu_capabilities *entry)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_cpu_capabilities
      Src: /src/xen/xen/arch/arm/cpuerrata.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 697
    functionName: check_local_cpu_errata
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - update_cpu_capabilities
    linkageType: ''
    returnType: void
    signature: void check_local_cpu_errata(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enable_cpu_capabilities
      Src: /src/xen/xen/arch/arm/cpuerrata.c:701,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:704,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpuerrata.c:705,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/cpuerrata.c:707,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/arm/cpuerrata.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 714
    functionName: enable_errata_workarounds
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - cpus_have_cap
    - enable_cpu_capabilities
    - printk_once
    - add_taint
    linkageType: ''
    returnType: void
    signature: void enable_errata_workarounds(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/cpuerrata.c:734,1
    - Dst: enable_nonboot_cpu_caps
      Src: /src/xen/xen/arch/arm/cpuerrata.c:735,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/arm/cpuerrata.c:741,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 742
    functionName: cpu_errata_callback
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - notifier_from_errno
    - ASSERT
    - enable_nonboot_cpu_caps
    linkageType: ''
    returnType: int
    signature: "int cpu_errata_callback(struct notifier_block *nfb,\n                               unsigned
      long action,\n                               void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/cpuerrata.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: cpu_errata_notifier_init
    functionSourceFile: /src/xen/xen/arch/arm/cpuerrata.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpu_errata_notifier_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_machine_is_compatible
      Src: /src/xen/xen/arch/arm/platform.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - plat
    argTypes:
    - struct platform_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: platform_is_compatible
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - dt_machine_is_compatible
    linkageType: ''
    returnType: bool
    signature: bool platform_is_compatible(const struct platform_desc *plat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/platform.c:42,1
    - Dst: platform_is_compatible
      Src: /src/xen/xen/arch/arm/platform.c:47,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platform.c:55,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platform.c:59,1
    - Dst: init
      Src: /src/xen/xen/arch/arm/platform.c:62,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/platform.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: platform_init
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - panic
    - platform_is_compatible
    - ASSERT
    - printk
    - init
    linkageType: ''
    returnType: void
    signature: void platform_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_time
      Src: /src/xen/xen/arch/arm/platform.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: platform_init_time
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - init_time
    linkageType: ''
    returnType: int
    signature: int platform_init_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: specific_mapping
      Src: /src/xen/xen/arch/arm/platform.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: platform_specific_mapping
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - specific_mapping
    linkageType: ''
    returnType: int
    signature: int platform_specific_mapping(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: call_psci_cpu_on
      Src: /src/xen/xen/arch/arm/platform.c:92,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/arm/platform.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: platform_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - cpu_up
    - call_psci_cpu_on
    linkageType: ''
    returnType: int
    signature: int platform_cpu_up(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_init
      Src: /src/xen/xen/arch/arm/platform.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: platform_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - smp_init
    linkageType: ''
    returnType: int
    signature: int platform_smp_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/xen/xen/arch/arm/platform.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: platform_reset
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void platform_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poweroff
      Src: /src/xen/xen/arch/arm/platform.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: platform_poweroff
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - poweroff
    linkageType: ''
    returnType: void
    signature: void platform_poweroff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/arm/platform.c:123,1
    - Dst: smc
      Src: /src/xen/xen/arch/arm/platform.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: platform_smc
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - smc
    - likely
    linkageType: ''
    returnType: bool
    signature: bool platform_smc(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quirks
      Src: /src/xen/xen/arch/arm/platform.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - quirk
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: platform_has_quirk
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 1
    functionsReached:
    - quirks
    linkageType: ''
    returnType: bool
    signature: bool platform_has_quirk(uint32_t quirk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/platform.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: platform_device_is_blacklisted
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached:
    - dt_match_node
    linkageType: ''
    returnType: bool
    signature: bool platform_device_is_blacklisted(const struct dt_device_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: arch_get_dma_bitsize
    functionSourceFile: /src/xen/xen/arch/arm/platform.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_dma_bitsize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:13,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/shutdown.c:15,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/shutdown.c:16,1
    - Dst: wfi
      Src: /src/xen/xen/arch/arm/shutdown.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: halt_this_cpu
    functionSourceFile: /src/xen/xen/arch/arm/shutdown.c
    functionUses: 0
    functionsReached:
    - dsb
    - local_irq_disable
    - wfi
    - isb
    linkageType: ''
    returnType: void
    signature: void halt_this_cpu(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:25,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/arm/shutdown.c:26,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/shutdown.c:27,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/arm/shutdown.c:28,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:29,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/arm/shutdown.c:32,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/shutdown.c:33,1
    - Dst: call_psci_system_off
      Src: /src/xen/xen/arch/arm/shutdown.c:36,1
    - Dst: platform_poweroff
      Src: /src/xen/xen/arch/arm/shutdown.c:39,1
    - Dst: halt_this_cpu
      Src: /src/xen/xen/arch/arm/shutdown.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: machine_halt
    functionSourceFile: /src/xen/xen/arch/arm/shutdown.c
    functionUses: 4
    functionsReached:
    - console_start_sync
    - smp_call_function
    - mdelay
    - local_irq_enable
    - platform_poweroff
    - local_irq_disable
    - num_online_cpus
    - halt_this_cpu
    - watchdog_disable
    - call_psci_system_off
    linkageType: ''
    returnType: void
    signature: void machine_halt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:48,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/arm/shutdown.c:49,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:50,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/shutdown.c:52,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/arm/shutdown.c:53,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/shutdown.c:54,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/shutdown.c:56,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/arm/shutdown.c:59,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/shutdown.c:60,1
    - Dst: call_psci_system_reset
      Src: /src/xen/xen/arch/arm/shutdown.c:63,1
    - Dst: platform_reset
      Src: /src/xen/xen/arch/arm/shutdown.c:68,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/shutdown.c:69,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/shutdown.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - delay_millisecs
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 74
    functionName: machine_restart
    functionSourceFile: /src/xen/xen/arch/arm/shutdown.c
    functionUses: 1
    functionsReached:
    - console_start_sync
    - smp_call_function
    - mdelay
    - local_irq_enable
    - platform_reset
    - spin_debug_disable
    - local_irq_disable
    - call_psci_system_reset
    - num_online_cpus
    - watchdog_disable
    - printk
    linkageType: ''
    returnType: void
    signature: void machine_restart(unsigned int delay_millisecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dabt
    - reg
    - size
    - sign
    argTypes:
    - struct hsr_dabt*
    - int
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: update_dabt
    functionSourceFile: /src/xen/xen/arch/arm/decode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_dabt(struct hsr_dabt *dabt, int reg,\n                        uint8_t
      size, bool sign)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: raw_copy_from_guest
      Src: /src/xen/xen/arch/arm/decode.c:33,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:62,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:73,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - pc
    - dabt
    - hw1
    argTypes:
    - register_t
    - struct hsr_dabt*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 76
    functionName: decode_thumb2
    functionSourceFile: /src/xen/xen/arch/arm/decode.c
    functionUses: 0
    functionsReached:
    - gprintk
    - update_dabt
    - raw_copy_from_guest
    linkageType: ''
    returnType: int
    signature: int decode_thumb2(register_t pc, struct hsr_dabt *dabt, uint16_t hw1)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: raw_copy_from_guest
      Src: /src/xen/xen/arch/arm/decode.c:84,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:86,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:102,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:109,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:116,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:129,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:134,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:138,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - pc
    - info
    argTypes:
    - register_t
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 150
    functionName: decode_arm64
    functionSourceFile: /src/xen/xen/arch/arm/decode.c
    functionUses: 0
    functionsReached:
    - gprintk
    - update_dabt
    - raw_copy_from_guest
    linkageType: ''
    returnType: int
    signature: int decode_arm64(register_t pc, mmio_info_t *info)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: raw_copy_from_guest
      Src: /src/xen/xen/arch/arm/decode.c:156,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:170,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:173,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:176,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:179,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:187,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:191,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:195,1
    - Dst: update_dabt
      Src: /src/xen/xen/arch/arm/decode.c:199,1
    - Dst: decode_thumb2
      Src: /src/xen/xen/arch/arm/decode.c:203,1
    - Dst: decode_thumb2
      Src: /src/xen/xen/arch/arm/decode.c:206,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:214,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - pc
    - dabt
    argTypes:
    - register_t
    - struct hsr_dabt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 216
    functionName: decode_thumb
    functionSourceFile: /src/xen/xen/arch/arm/decode.c
    functionUses: 0
    functionsReached:
    - decode_thumb2
    - gprintk
    - update_dabt
    - raw_copy_from_guest
    linkageType: ''
    returnType: int
    signature: int decode_thumb(register_t pc, struct hsr_dabt *dabt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/decode.c:220,1
    - Dst: decode_thumb
      Src: /src/xen/xen/arch/arm/decode.c:221,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/decode.c:223,1
    - Dst: decode_arm64
      Src: /src/xen/xen/arch/arm/decode.c:224,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/decode.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - regs
    - info
    argTypes:
    - struct cpu_user_regs*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: decode_instruction
    functionSourceFile: /src/xen/xen/arch/arm/decode.c
    functionUses: 0
    functionsReached:
    - regs_mode_is_32bit
    - decode_arm64
    - is_32bit_domain
    - gprintk
    - decode_thumb
    linkageType: ''
    returnType: int
    signature: int decode_instruction(const struct cpu_user_regs *regs, mmio_info_t
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/domain.c:40,1
    - Dst: rcu_idle_enter
      Src: /src/xen/xen/arch/arm/domain.c:42,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/arm/domain.c:44,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/domain.c:46,1
    - Dst: cpu_is_haltable
      Src: /src/xen/xen/arch/arm/domain.c:47,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/domain.c:49,1
    - Dst: wfi
      Src: /src/xen/xen/arch/arm/domain.c:50,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/domain.c:52,1
    - Dst: rcu_idle_exit
      Src: /src/xen/xen/arch/arm/domain.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 55
    functionName: do_idle
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - cpu_is_haltable
    - local_irq_enable
    - smp_processor_id
    - local_irq_disable
    - rcu_idle_exit
    - wfi
    - dsb
    - process_pending_softirqs
    - rcu_idle_enter
    linkageType: ''
    returnType: void
    signature: void do_idle(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/domain.c:59,1
    - Dst: cpu_is_offline
      Src: /src/xen/xen/arch/arm/domain.c:63,1
    - Dst: stop_cpu
      Src: /src/xen/xen/arch/arm/domain.c:64,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/domain.c:67,1
    - Dst: tasklet_work_to_do
      Src: /src/xen/xen/arch/arm/domain.c:67,1
    - Dst: do_tasklet
      Src: /src/xen/xen/arch/arm/domain.c:69,1
    - Dst: check_for_livepatch_work
      Src: /src/xen/xen/arch/arm/domain.c:71,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/arm/domain.c:78,1
    - Dst: scrub_free_pages
      Src: /src/xen/xen/arch/arm/domain.c:78,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/arm/domain.c:79,1
    - Dst: do_idle
      Src: /src/xen/xen/arch/arm/domain.c:80,1
    - Dst: do_softirq
      Src: /src/xen/xen/arch/arm/domain.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 84
    functionName: idle_loop
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 2
    functionsReached:
    - softirq_pending
    - smp_processor_id
    - tasklet_work_to_do
    - do_idle
    - cpu_is_offline
    - do_softirq
    - check_for_livepatch_work
    - unlikely
    - stop_cpu
    - scrub_free_pages
    - do_tasklet
    linkageType: ''
    returnType: void
    signature: void idle_loop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:91,1
    - Dst: p2m_save_state
      Src: /src/xen/xen/arch/arm/domain.c:94,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:97,1
    - Dst: vfp_save_state
      Src: /src/xen/xen/arch/arm/domain.c:100,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:103,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:105,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:106,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:107,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:108,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:111,1
    - Dst: virt_timer_save
      Src: /src/xen/xen/arch/arm/domain.c:112,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:115,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:116,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/domain.c:119,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:122,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:123,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:124,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:125,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:126,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:127,1
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/domain.c:128,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:130,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:131,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:132,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:133,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:135,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:136,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:141,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:142,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/domain.c:143,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:145,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:146,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:149,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:150,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:151,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:152,1
    - Dst: gic_save_state
      Src: /src/xen/xen/arch/arm/domain.c:157,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/domain.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 160
    functionName: ctxt_switch_from
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - virt_timer_save
    - p2m_save_state
    - is_idle_vcpu
    - READ_SYSREG64
    - is_32bit_domain
    - vfp_save_state
    - read_sysreg_par
    - isb
    - gic_save_state
    - READ_SYSREG
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: void ctxt_switch_from(struct vcpu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:169,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:172,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:173,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:174,1
    - Dst: gic_restore_state
      Src: /src/xen/xen/arch/arm/domain.c:177,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:183,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:184,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:185,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:187,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:188,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:191,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:192,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:193,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:194,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:197,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:198,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:199,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:200,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:208,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:209,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:210,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:212,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:213,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:214,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:215,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:217,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/domain.c:218,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/domain.c:220,1
    - Dst: p2m_restore_state
      Src: /src/xen/xen/arch/arm/domain.c:226,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:229,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:236,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:237,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:238,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:239,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:242,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/domain.c:243,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:250,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/domain.c:251,1
    - Dst: vfp_restore_state
      Src: /src/xen/xen/arch/arm/domain.c:254,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:257,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/domain.c:259,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:263,1
    - Dst: virt_timer_restore
      Src: /src/xen/xen/arch/arm/domain.c:264,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 267
    functionName: ctxt_switch_to
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - WRITE_SYSREG64
    - is_idle_vcpu
    - virt_timer_restore
    - is_32bit_domain
    - p2m_restore_state
    - gic_restore_state
    - isb
    - vfp_restore_state
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void ctxt_switch_to(struct vcpu *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain.c:271,1
    - Dst: ctxt_switch_from
      Src: /src/xen/xen/arch/arm/domain.c:273,1
    - Dst: ctxt_switch_to
      Src: /src/xen/xen/arch/arm/domain.c:275,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/domain.c:277,1
    - Dst: sched_context_switched
      Src: /src/xen/xen/arch/arm/domain.c:279,1
    - Dst: update_runstate_area
      Src: /src/xen/xen/arch/arm/domain.c:281,1
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/arm/domain.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 285
    functionName: schedule_tail
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - update_vcpu_system_time
    - ctxt_switch_from
    - local_irq_enable
    - update_runstate_area
    - ctxt_switch_to
    - sched_context_switched
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void schedule_tail(struct vcpu *prev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/domain.c:292,1
    - Dst: processor_vcpu_initialise
      Src: /src/xen/xen/arch/arm/domain.c:293,1
    - Dst: schedule_tail
      Src: /src/xen/xen/arch/arm/domain.c:295,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:297,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/arm/domain.c:298,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:299,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/arm/domain.c:301,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/arm/domain.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - prev
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 305
    functionName: continue_new_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - processor_vcpu_initialise
    - is_32bit_domain
    - reset_stack_and_jump
    - schedule_tail
    - READ_SYSREG
    linkageType: ''
    returnType: void
    signature: void continue_new_vcpu(struct vcpu *prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain.c:309,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/domain.c:309,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain.c:310,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain.c:311,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/arch/arm/domain.c:311,1
    - Dst: update_runstate_area
      Src: /src/xen/xen/arch/arm/domain.c:313,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/domain.c:315,1
    - Dst: set_current
      Src: /src/xen/xen/arch/arm/domain.c:317,1
    - Dst: __context_switch
      Src: /src/xen/xen/arch/arm/domain.c:319,1
    - Dst: schedule_tail
      Src: /src/xen/xen/arch/arm/domain.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: context_switch
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 3
    functionsReached:
    - __context_switch
    - update_runstate_area
    - local_irq_disable
    - ASSERT
    - set_current
    - vcpu_cpu_dirty
    - schedule_tail
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void context_switch(struct vcpu *prev, struct vcpu *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - same
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: continue_running
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void continue_running(struct vcpu *same)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: sync_local_execstate
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sync_local_execstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    functionName: sync_vcpu_execstate
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sync_vcpu_execstate(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: NEXT_ARG
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_ARG(fmt, args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/arch/arm/domain.c:365,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/domain.c:371,1
    - Dst: array_access_nospec
      Src: /src/xen/xen/arch/arm/domain.c:373,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/arm/domain.c:373,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/domain.c:381,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:384,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/arm/domain.c:390,1
    - Dst: NEXT_ARG
      Src: /src/xen/xen/arch/arm/domain.c:413,1
    - Dst: va_end
      Src: /src/xen/xen/arch/arm/domain.c:431,1
    - Dst: va_end
      Src: /src/xen/xen/arch/arm/domain.c:436,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/domain.c:437,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/domain.c:438,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/domain.c:439,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 2
    argNames:
    - op
    - format
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 441
    functionName: hypercall_create_continuation
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 19
    functionsReached:
    - va_start
    - guest_cpu_user_regs
    - ARRAY_SIZE
    - array_access_nospec
    - is_32bit_domain
    - gprintk
    - NEXT_ARG
    - domain_crash
    - ASSERT_UNREACHABLE
    - va_end
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long hypercall_create_continuation(\n    unsigned int op,
      const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain.c:449,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:449,1
    - Dst: reset_stack_and_jump
      Src: /src/xen/xen/arch/arm/domain.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: startup_cpu_idle_loop
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - reset_stack_and_jump
    - is_idle_vcpu
    linkageType: ''
    returnType: void
    signature: void startup_cpu_idle_loop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: dump_pageframe_info
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dump_pageframe_info(struct domain *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/domain.c:467,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/domain.c:469,1
    - Dst: MEMF_node
      Src: /src/xen/xen/arch/arm/domain.c:469,1
    - Dst: vcpu_to_node
      Src: /src/xen/xen/arch/arm/domain.c:469,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/domain.c:476,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:482,1
    - Dst: vcpuid_to_vaffinity
      Src: /src/xen/xen/arch/arm/domain.c:487,1
    - Dst: get_default_cptr_flags
      Src: /src/xen/xen/arch/arm/domain.c:489,1
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/domain.c:490,1
    - Dst: sve_context_init
      Src: /src/xen/xen/arch/arm/domain.c:492,1
    - Dst: HCPTR_CP
      Src: /src/xen/xen/arch/arm/domain.c:494,1
    - Dst: get_default_hcr_flags
      Src: /src/xen/xen/arch/arm/domain.c:497,1
    - Dst: vcpu_vgic_init
      Src: /src/xen/xen/arch/arm/domain.c:503,1
    - Dst: vcpu_vtimer_init
      Src: /src/xen/xen/arch/arm/domain.c:506,1
    - Dst: get_ssbd_state
      Src: /src/xen/xen/arch/arm/domain.c:513,1
    - Dst: arch_vcpu_destroy
      Src: /src/xen/xen/arch/arm/domain.c:519,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 521
    functionName: arch_vcpu_create
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - sve_context_init
    - get_default_hcr_flags
    - vcpu_vgic_init
    - get_default_cptr_flags
    - is_idle_vcpu
    - vcpu_vtimer_init
    - MEMF_node
    - BUILD_BUG_ON
    - vcpuid_to_vaffinity
    - get_ssbd_state
    - alloc_xenheap_pages
    - is_sve_domain
    - arch_vcpu_destroy
    - memset
    - vcpu_to_node
    - HCPTR_CP
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_create(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/domain.c:525,1
    - Dst: sve_context_free
      Src: /src/xen/xen/arch/arm/domain.c:526,1
    - Dst: vcpu_timer_destroy
      Src: /src/xen/xen/arch/arm/domain.c:527,1
    - Dst: vcpu_vgic_free
      Src: /src/xen/xen/arch/arm/domain.c:528,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/domain.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: arch_vcpu_destroy
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 2
    functionsReached:
    - sve_context_free
    - vcpu_vgic_free
    - vcpu_timer_destroy
    - is_sve_domain
    - free_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_destroy(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: vcpu_switch_to_aarch64_mode
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vcpu_switch_to_aarch64_mode(struct vcpu *v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sve_decode_vl
      Src: /src/xen/xen/arch/arm/domain.c:544,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:548,1
    - Dst: get_sys_vl_len
      Src: /src/xen/xen/arch/arm/domain.c:556,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:560,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:566,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:576,1
    - Dst: gic_hw_version
      Src: /src/xen/xen/arch/arm/domain.c:584,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/domain.c:595,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/domain.c:601,1
    - Dst: vgic_max_vcpus
      Src: /src/xen/xen/arch/arm/domain.c:601,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:605,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:611,1
    - Dst: tee_get_type
      Src: /src/xen/xen/arch/arm/domain.c:617,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:619,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain.c:625,1
    - Dst: sci_domain_sanitise_config
      Src: /src/xen/xen/arch/arm/domain.c:629,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 630
    functionName: arch_sanitise_domain_config
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - sci_domain_sanitise_config
    - sve_decode_vl
    - vgic_max_vcpus
    - get_sys_vl_len
    - tee_get_type
    - dprintk
    - min
    - ASSERT_UNREACHABLE
    - gic_hw_version
    linkageType: ''
    returnType: int
    signature: int arch_sanitise_domain_config(struct xen_domctl_createdomain *config)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/domain.c:639,1
    - Dst: ioreq_domain_init
      Src: /src/xen/xen/arch/arm/domain.c:642,1
    - Dst: iommu_domain_init
      Src: /src/xen/xen/arch/arm/domain.c:646,1
    - Dst: p2m_init
      Src: /src/xen/xen/arch/arm/domain.c:649,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/domain.c:653,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/domain.c:656,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/arch/arm/domain.c:657,1
    - Dst: virt_to_page
      Src: /src/xen/xen/arch/arm/domain.c:657,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/domain.c:670,1
    - Dst: domain_vgic_register
      Src: /src/xen/xen/arch/arm/domain.c:673,1
    - Dst: domain_vpci_get_num_mmio_handlers
      Src: /src/xen/xen/arch/arm/domain.c:676,1
    - Dst: domain_io_init
      Src: /src/xen/xen/arch/arm/domain.c:678,1
    - Dst: domain_vgic_init
      Src: /src/xen/xen/arch/arm/domain.c:681,1
    - Dst: domain_vtimer_init
      Src: /src/xen/xen/arch/arm/domain.c:684,1
    - Dst: tee_domain_init
      Src: /src/xen/xen/arch/arm/domain.c:687,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/arch/arm/domain.c:690,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/domain.c:697,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/domain.c:701,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/domain.c:702,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/domain.c:710,1
    - Dst: domain_vuart_init
      Src: /src/xen/xen/arch/arm/domain.c:710,1
    - Dst: domain_vpci_init
      Src: /src/xen/xen/arch/arm/domain.c:713,1
    - Dst: sci_domain_init
      Src: /src/xen/xen/arch/arm/domain.c:721,1
    - Dst: arch_domain_destroy
      Src: /src/xen/xen/arch/arm/domain.c:728,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 63
    argCount: 3
    argNames:
    - d
    - config
    - flags
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 731
    functionName: arch_domain_create
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 1
    functionsReached:
    - tee_domain_init
    - domain_vuart_init
    - BUILD_BUG_ON
    - domain_vpci_init
    - domain_vpci_get_num_mmio_handlers
    - domain_vgic_register
    - vgic_reserve_virq
    - BUG
    - share_xen_page_with_guest
    - ioreq_domain_init
    - domain_vgic_init
    - is_hardware_domain
    - sci_domain_init
    - arch_domain_destroy
    - domain_io_init
    - virt_to_page
    - alloc_xenheap_pages
    - iommu_domain_init
    - clear_page
    - p2m_init
    - update_domain_wallclock_time
    - domain_vtimer_init
    linkageType: ''
    returnType: int
    signature: "int arch_domain_create(struct domain *d,\n                       struct
      xen_domctl_createdomain *config,\n                       unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain.c:737,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/domain.c:754,1
    - Dst: PROGRESS
      Src: /src/xen/xen/arch/arm/domain.c:756,1
    - Dst: tee_domain_teardown
      Src: /src/xen/xen/arch/arm/domain.c:757,1
    - Dst: PROGRESS
      Src: /src/xen/xen/arch/arm/domain.c:761,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/domain.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 771
    functionName: arch_domain_teardown
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - BUG
    - tee_domain_teardown
    - PROGRESS
    - BUILD_BUG_ON
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int arch_domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: PROGRESS
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROGRESS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tee_free_domain_ctx
      Src: /src/xen/xen/arch/arm/domain.c:775,1
    - Dst: iommu_domain_destroy
      Src: /src/xen/xen/arch/arm/domain.c:779,1
    - Dst: p2m_final_teardown
      Src: /src/xen/xen/arch/arm/domain.c:780,1
    - Dst: domain_vgic_free
      Src: /src/xen/xen/arch/arm/domain.c:781,1
    - Dst: domain_vuart_free
      Src: /src/xen/xen/arch/arm/domain.c:782,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/arm/domain.c:783,1
    - Dst: sci_domain_destroy
      Src: /src/xen/xen/arch/arm/domain.c:784,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/domain.c:786,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/domain.c:787,1
    - Dst: domain_io_free
      Src: /src/xen/xen/arch/arm/domain.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 790
    functionName: arch_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 1
    functionsReached:
    - sci_domain_destroy
    - get_order_from_bytes
    - iommu_domain_destroy
    - domain_io_free
    - domain_vuart_free
    - free_xenheap_page
    - domain_vgic_free
    - free_xenheap_pages
    - p2m_final_teardown
    - tee_free_domain_ctx
    linkageType: ''
    returnType: void
    signature: void arch_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    functionName: arch_domain_shutdown
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_domain_shutdown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 798
    functionName: arch_domain_pause
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_domain_pause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: arch_domain_unpause
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_domain_unpause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_domain_creation_finished
      Src: /src/xen/xen/arch/arm/domain.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 807
    functionName: arch_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - p2m_domain_creation_finished
    linkageType: ''
    returnType: void
    signature: void arch_domain_creation_finished(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - psr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 826
    functionName: is_guest_pv32_psr
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_guest_pv32_psr(uint32_t psr)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - psr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 848
    functionName: is_guest_pv64_psr
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_guest_pv64_psr(uint64_t psr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain.c:861,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:863,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:866,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:868,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:870,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:872,1
    - Dst: is_guest_pv32_psr
      Src: /src/xen/xen/arch/arm/domain.c:874,1
    - Dst: if
      Src: /src/xen/xen/arch/arm/domain.c:880,1
    - Dst: is_guest_pv64_psr
      Src: /src/xen/xen/arch/arm/domain.c:880,1
    - Dst: is_guest_pv64_psr
      Src: /src/xen/xen/arch/arm/domain.c:883,1
    - Dst: vcpu_regs_user_to_hyp
      Src: /src/xen/xen/arch/arm/domain.c:888,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/domain.c:898,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/domain.c:900,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 903
    functionName: arch_set_info_guest
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - if
    - is_guest_pv32_psr
    - is_32bit_domain
    - vcpu_regs_user_to_hyp
    - clear_bit
    - is_guest_pv64_psr
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int arch_set_info_guest(\n    struct vcpu *v, vcpu_guest_context_u
      c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/domain.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: arch_initialise_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int arch_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_end_shutdown_deferral
      Src: /src/xen/xen/arch/arm/domain.c:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 915
    functionName: arch_vcpu_reset
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - vcpu_end_shutdown_deferral
    linkageType: ''
    returnType: int
    signature: int arch_vcpu_reset(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/arch/arm/domain.c:923,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/domain.c:928,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/domain.c:928,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/arm/domain.c:939,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/domain.c:940,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/domain.c:942,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/arch/arm/domain.c:950,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - d
    - list
    argTypes:
    - struct domain*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 952
    functionName: relinquish_memory
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - put_page_alloc_ref
    - rspin_lock
    - rspin_unlock
    - get_page
    - hypercall_preempt_check
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: int relinquish_memory(struct domain *d, struct page_list_head *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/domain.c:928,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/domain.c:928,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/arch/arm/domain.c:939,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/domain.c:940,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/domain.c:942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 947
    functionName: page_list_for_each_safe
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 4
    functionsReached:
    - put_page_alloc_ref
    - get_page
    - hypercall_preempt_check
    - unlikely
    - put_page
    linkageType: ''
    returnType: void
    signature: void page_list_for_each_safe( page, tmp, list )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_dump_info
      Src: /src/xen/xen/arch/arm/domain.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1071
    functionName: PROGRESS
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 2
    functionsReached:
    - p2m_dump_info
    linkageType: ''
    returnType: void
    signature: void PROGRESS(p2m_root)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/arm/domain.c:1079,1
    - Dst: common_vcpu_op
      Src: /src/xen/xen/arch/arm/domain.c:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cmd
    - vcpuid
    argTypes:
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1090
    functionName: do_vcpu_op
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 1
    functionsReached:
    - common_vcpu_op
    - domain_vcpu
    linkageType: ''
    returnType: long
    signature: long do_vcpu_op(int cmd, unsigned int vcpuid, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_dump_info
      Src: /src/xen/xen/arch/arm/domain.c:1094,1
    - Dst: gic_dump_vgic_info
      Src: /src/xen/xen/arch/arm/domain.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1096
    functionName: arch_dump_vcpu_info
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - gic_dump_info
    - gic_dump_vgic_info
    linkageType: ''
    returnType: void
    signature: void arch_dump_vcpu_info(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/arch/arm/domain.c:1100,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/arm/domain.c:1101,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/domain.c:1106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1107
    functionName: vcpu_mark_events_pending
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - guest_test_and_set_bit
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void vcpu_mark_events_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/arm/domain.c:1111,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/domain.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1114
    functionName: vcpu_update_evtchn_irq
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void vcpu_update_evtchn_irq(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_block
      Src: /src/xen/xen/arch/arm/domain.c:1124,1
    - Dst: local_events_need_delivery_nomask
      Src: /src/xen/xen/arch/arm/domain.c:1125,1
    - Dst: vcpu_unblock
      Src: /src/xen/xen/arch/arm/domain.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: vcpu_block_unless_event_pending
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 0
    functionsReached:
    - vcpu_block
    - vcpu_unblock
    - local_events_need_delivery_nomask
    linkageType: ''
    returnType: void
    signature: void vcpu_block_unless_event_pending(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_unblock
      Src: /src/xen/xen/arch/arm/domain.c:1133,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/domain.c:1136,1
    - Dst: smp_send_event_check_mask
      Src: /src/xen/xen/arch/arm/domain.c:1137,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/domain.c:1137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1139
    functionName: vcpu_kick
    functionSourceFile: /src/xen/xen/arch/arm/domain.c
    functionUses: 15
    functionsReached:
    - perfc_incr
    - cpumask_of
    - vcpu_unblock
    - smp_send_event_check_mask
    linkageType: ''
    returnType: void
    signature: void vcpu_kick(struct vcpu *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:22,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:28,1
    - Dst: rcu_lock_current_domain
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:34,1
    - Dst: xsm_platform_op
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:38,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:47,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:48,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:49,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:55,1
    - Dst: do_settime
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:56,1
    - Dst: SECONDS
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:58,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:68,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/platform_hypercall.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 71
    functionName: do_platform_op
    functionSourceFile: /src/xen/xen/arch/arm/platform_hypercall.c
    functionUses: 4
    functionsReached:
    - spin_unlock
    - copy_from_guest
    - SECONDS
    - rcu_lock_current_domain
    - likely
    - do_settime
    - hypercall_create_continuation
    - spin_trylock
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - xsm_platform_op
    - rcu_unlock_domain
    linkageType: ''
    returnType: long
    signature: long do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/arch/arm/domain_build.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: parse_dom0_mem
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - parse_size_and_unit
    linkageType: ''
    returnType: int
    signature: int parse_dom0_mem(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_signed_integer
      Src: /src/xen/xen/arch/arm/domain_build.c:72,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:78,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: parse_arch_dom0_param
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - panic
    - parse_signed_integer
    - printk
    linkageType: ''
    returnType: int
    signature: int parse_arch_dom0_param(const char *s, const char *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: D11PRINT
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D11PRINT(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: D11PRINT
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D11PRINT(fmt, args...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain_build.c:111,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/arch/arm/domain_build.c:112,1
    - Dst: cpupool_valid_cpus
      Src: /src/xen/xen/arch/arm/domain_build.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: dom0_max_vcpus
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - cpumask_weight
    - ASSERT
    - cpupool_valid_cpus
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dom0_max_vcpus(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:131,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/domain_build.c:137,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/domain_build.c:138,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:139,1
    - Dst: D11PRINT
      Src: /src/xen/xen/arch/arm/domain_build.c:141,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:149,1
    - Dst: D11PRINT
      Src: /src/xen/xen/arch/arm/domain_build.c:152,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/arch/arm/domain_build.c:156,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/domain_build.c:156,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/domain_build.c:156,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:158,1
    - Dst: memmove
      Src: /src/xen/xen/arch/arm/domain_build.c:197,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/arm/domain_build.c:219,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - d
    - kinfo
    - pg
    - order
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 221
    functionName: insert_11_bank
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - MB
    - page_to_mfn
    - D11PRINT
    - mfn_to_maddr
    - panic
    - _gfn
    - mfn_x
    - free_domheap_pages
    - memmove
    - pfn_to_paddr
    - guest_physmap_add_page
    - kernel_info_get_mem
    linkageType: ''
    returnType: bool
    signature: "bool insert_11_bank(struct domain *d,\n                                  struct
      kernel_info *kinfo,\n                                  struct page_info *pg,\n
      \                                 unsigned int order)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/domain_build.c:282,1
    - Dst: min_t
      Src: /src/xen/xen/arch/arm/domain_build.c:282,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:282,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/domain_build.c:283,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:283,1
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:284,1
    - Dst: get_allocation_size
      Src: /src/xen/xen/arch/arm/domain_build.c:286,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/domain_build.c:290,1
    - Dst: arch_get_dma_bitsize
      Src: /src/xen/xen/arch/arm/domain_build.c:290,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:297,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/arch/arm/domain_build.c:297,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:299,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/arm/domain_build.c:313,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/arm/domain_build.c:313,1
    - Dst: insert_11_bank
      Src: /src/xen/xen/arch/arm/domain_build.c:316,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/domain_build.c:317,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:326,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:327,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:330,1
    - Dst: get_allocation_size
      Src: /src/xen/xen/arch/arm/domain_build.c:340,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/arm/domain_build.c:343,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/arm/domain_build.c:344,1
    - Dst: D11PRINT
      Src: /src/xen/xen/arch/arm/domain_build.c:351,1
    - Dst: get_allocation_size
      Src: /src/xen/xen/arch/arm/domain_build.c:352,1
    - Dst: insert_11_bank
      Src: /src/xen/xen/arch/arm/domain_build.c:363,1
    - Dst: D11PRINT
      Src: /src/xen/xen/arch/arm/domain_build.c:371,1
    - Dst: get_allocation_size
      Src: /src/xen/xen/arch/arm/domain_build.c:372,1
    - Dst: D11PRINT
      Src: /src/xen/xen/arch/arm/domain_build.c:378,1
    - Dst: get_allocation_size
      Src: /src/xen/xen/arch/arm/domain_build.c:387,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:392,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:397,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 278
    functionDepth: 6
    functionLinenumber: 278
    functionLinenumberEnd: 404
    functionName: allocate_memory_11
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - MB
    - BUG
    - D11PRINT
    - panic
    - is_32bit_domain
    - BUG_ON
    - min
    - insert_11_bank
    - min_t
    - arch_get_dma_bitsize
    - printk
    - is_domain_direct_mapped
    - get_allocation_size
    - alloc_domheap_pages
    - kernel_info_get_mem
    - MEMF_bits
    linkageType: ''
    returnType: void
    signature: "void allocate_memory_11(struct domain *d,\n                                      struct
      kernel_info *kinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_pci_passthrough_enabled
      Src: /src/xen/xen/arch/arm/domain_build.c:423,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:426,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:429,1
    - Dst: dt_find_property
      Src: /src/xen/xen/arch/arm/domain_build.c:432,1
    - Dst: pci_get_host_bridge_segment
      Src: /src/xen/xen/arch/arm/domain_build.c:436,1
    - Dst: pci_get_new_domain_nr
      Src: /src/xen/xen/arch/arm/domain_build.c:439,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:442,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:448,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - kinfo
    - node
    argTypes:
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 453
    functionName: handle_linux_pci_domain
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - pci_get_new_domain_nr
    - fdt_property_cell
    - is_pci_passthrough_enabled
    - dt_device_type_is_equal
    - pci_get_host_bridge_segment
    - printk
    - dt_find_property
    linkageType: ''
    returnType: int
    signature: "int handle_linux_pci_domain(struct kernel_info *kinfo,\n                                          const
      struct dt_device_node *node)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/arch/arm/domain_build.c:477,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/arch/arm/domain_build.c:479,1
    - Dst: device_get_class
      Src: /src/xen/xen/arch/arm/domain_build.c:480,1
    - Dst: dt_node_path_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:501,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:503,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:504,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:505,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:506,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:507,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:508,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:509,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:510,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:511,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:512,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:515,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:521,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:530,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:534,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:543,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:546,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:549,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:553,1
    - Dst: handle_linux_pci_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:559,1
    - Dst: dt_device_for_passthrough
      Src: /src/xen/xen/arch/arm/domain_build.c:568,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:569,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:571,1
    - Dst: dt_node_path_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:577,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:583,1
    - Dst: strlen
      Src: /src/xen/xen/arch/arm/domain_build.c:584,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:596,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:600,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 65
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 607
    functionName: write_properties
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - handle_linux_pci_domain
    - dt_parse_phandle
    - device_get_class
    - dt_node_path_is_equal
    - fdt_property_string
    - strlen
    - fdt_property
    - dt_property_name_is_equal
    - dt_device_for_passthrough
    linkageType: ''
    returnType: int
    signature: "int write_properties(struct domain *d, struct kernel_info *kinfo,\n
      \                                  const struct dt_device_node *node)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_path_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:501,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:503,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:504,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:505,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:506,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:507,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:508,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:509,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:510,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:511,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:512,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:515,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:521,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:530,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:534,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:543,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:546,1
    - Dst: dt_property_name_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:549,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:553,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 557
    functionName: dt_for_each_property_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_node_path_is_equal
    - dt_property_name_is_equal
    - fdt_property
    linkageType: ''
    returnType: void
    signature: void dt_for_each_property_node (node, prop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:617,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:621,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:622,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - interrupt
    - irq
    - cpumask
    - level
    argTypes:
    - gic_interrupt_t
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 624
    functionName: set_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 4
    functionsReached:
    - BUG_ON
    - dt_set_cell
    linkageType: ''
    returnType: void
    signature: "void set_interrupt(gic_interrupt_t interrupt,\n                          unsigned
      int irq,\n                          unsigned int cpumask,\n                          unsigned
      int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:638,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - kinfo
    - intr
    - num_irq
    argTypes:
    - struct kernel_info*
    - gic_interrupt_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: fdt_property_interrupts
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 4
    functionsReached:
    - fdt_property_cell
    - fdt_property
    linkageType: ''
    returnType: int
    signature: "int fdt_property_interrupts(const struct kernel_info *kinfo,\n                                          gic_interrupt_t
      *intr,\n                                          unsigned int num_irq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:654,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:655,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s_gfn
    - e_gfn
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 688
    functionName: add_ext_regions
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - MB
    - pfn_to_paddr
    linkageType: ''
    returnType: int
    signature: "int add_ext_regions(unsigned long s_gfn, unsigned long e_gfn,\n                           void
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:699,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/domain_build.c:700,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/domain_build.c:705,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/arm/domain_build.c:706,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:706,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:706,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - dev
    - addr
    - len
    - data
    argTypes:
    - struct dt_device_node*
    - uint64_t
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 715
    functionName: handle_pci_range
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_node_full_name
    - rangeset_remove_range
    - PAGE_ALIGN
    - printk
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: "int handle_pci_range(const struct dt_device_node *dev,\n                                   uint64_t
      addr, uint64_t len, void *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:739,1
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/arm/domain_build.c:741,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/arm/domain_build.c:748,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:748,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:748,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:751,1
    - Dst: remove_shm_from_rangeset
      Src: /src/xen/xen/arch/arm/domain_build.c:757,1
    - Dst: dt_number_of_address
      Src: /src/xen/xen/arch/arm/domain_build.c:770,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:774,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:777,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/domain_build.c:778,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/domain_build.c:783,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/arm/domain_build.c:784,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:784,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:785,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:788,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:794,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:801,1
    - Dst: dt_for_each_range
      Src: /src/xen/xen/arch/arm/domain_build.c:804,1
    - Dst: rangeset_subtract
      Src: /src/xen/xen/arch/arm/domain_build.c:812,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/arm/domain_build.c:819,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:819,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:819,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/arch/arm/domain_build.c:827,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 2
    argNames:
    - kinfo
    - ext_regions
    argTypes:
    - struct kernel_info*
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 830
    functionName: find_memory_holes
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_node_full_name
    - rangeset_destroy
    - rangeset_new
    - dt_dprintk
    - dt_for_each_range
    - rangeset_remove_range
    - dt_get_property
    - rangeset_add_range
    - PAGE_ALIGN
    - remove_shm_from_rangeset
    - printk
    - PFN_DOWN
    - dt_device_type_is_equal
    - rangeset_subtract
    - rangeset_report_ranges
    - dt_number_of_address
    linkageType: ''
    returnType: int
    signature: "int find_memory_holes(const struct kernel_info *kinfo,\n                                    struct
      membanks *ext_regions)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_number_of_address
      Src: /src/xen/xen/arch/arm/domain_build.c:770,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:774,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:777,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/domain_build.c:778,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/domain_build.c:783,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/arch/arm/domain_build.c:784,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:784,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:785,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:788,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:794,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:801,1
    - Dst: dt_for_each_range
      Src: /src/xen/xen/arch/arm/domain_build.c:804,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 808
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_node_full_name
    - dt_for_each_range
    - rangeset_remove_range
    - dt_get_property
    - PAGE_ALIGN
    - dt_device_type_is_equal
    - printk
    - PFN_DOWN
    - dt_number_of_address
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node( dt_host, np )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem_const
      Src: /src/xen/xen/arch/arm/domain_build.c:838,1
    - Dst: rangeset_new
      Src: /src/xen/xen/arch/arm/domain_build.c:842,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/domain_build.c:850,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/domain_build.c:853,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:859,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/arm/domain_build.c:862,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:862,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:862,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:865,1
    - Dst: remove_shm_from_rangeset
      Src: /src/xen/xen/arch/arm/domain_build.c:872,1
    - Dst: rangeset_subtract
      Src: /src/xen/xen/arch/arm/domain_build.c:878,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/arm/domain_build.c:883,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:884,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/arch/arm/domain_build.c:892,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - kinfo
    - ext_regions
    argTypes:
    - struct kernel_info*
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 895
    functionName: find_domU_holes
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - kernel_info_get_mem_const
    - ROUNDUP
    - MB
    - rangeset_destroy
    - rangeset_new
    - min
    - rangeset_add_range
    - remove_shm_from_rangeset
    - printk
    - PFN_DOWN
    - rangeset_subtract
    - rangeset_report_ranges
    linkageType: ''
    returnType: int
    signature: "int find_domU_holes(const struct kernel_info *kinfo,\n                                  struct
      membanks *ext_regions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s_gfn
    - e_gfn
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 904
    functionName: count
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int count(unsigned long s_gfn, unsigned long e_gfn, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/arm/domain_build.c:910,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 914
    functionName: count_ranges
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - rangeset_report_ranges
    - PFN_DOWN
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int count_ranges(struct rangeset *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:920,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/domain_build.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s_gfn
    - e_gfn
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 931
    functionName: rangeset_to_membank
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - pfn_to_paddr
    linkageType: ''
    returnType: int
    signature: "int rangeset_to_membank(unsigned long s_gfn, unsigned long e_gfn,\n
      \                                     void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/domain_build.c:938,1
    - Dst: membanks_xzalloc
      Src: /src/xen/xen/arch/arm/domain_build.c:939,1
    - Dst: membanks_xzalloc
      Src: /src/xen/xen/arch/arm/domain_build.c:943,1
    - Dst: count_ranges
      Src: /src/xen/xen/arch/arm/domain_build.c:943,1
    - Dst: kernel_info_get_mem_const
      Src: /src/xen/xen/arch/arm/domain_build.c:955,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:956,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/arch/arm/domain_build.c:959,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:964,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/arch/arm/domain_build.c:974,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/domain_build.c:975,1
    - Dst: find_unallocated_memory
      Src: /src/xen/xen/arch/arm/domain_build.c:991,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/domain_build.c:991,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:995,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - kinfo
    - ext_regions
    argTypes:
    - struct kernel_info*
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 999
    functionName: find_host_extended_regions
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - kernel_info_get_mem_const
    - ARRAY_SIZE
    - membanks_xzalloc
    - dt_dprintk
    - IS_ENABLED
    - bootinfo_get_reserved_mem
    - bootinfo_get_shmem
    - count_ranges
    - rangeset_report_ranges
    - PFN_DOWN
    - find_unallocated_memory
    - xfree
    linkageType: ''
    returnType: int
    signature: "int find_host_extended_regions(const struct kernel_info *kinfo,\n
      \                                            struct membanks *ext_regions)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1015,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1023,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1026,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1031,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1037,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1040,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1042,1
    - Dst: membanks_xzalloc
      Src: /src/xen/xen/arch/arm/domain_build.c:1048,1
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/arch/arm/domain_build.c:1052,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/arm/domain_build.c:1054,1
    - Dst: find_host_extended_regions
      Src: /src/xen/xen/arch/arm/domain_build.c:1055,1
    - Dst: find_memory_holes
      Src: /src/xen/xen/arch/arm/domain_build.c:1057,1
    - Dst: find_domU_holes
      Src: /src/xen/xen/arch/arm/domain_build.c:1061,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1065,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/domain_build.c:1070,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:1073,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/domain_build.c:1079,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1087,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/domain_build.c:1090,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1093,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/arm/domain_build.c:1094,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:1096,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:1097,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:1102,1
    - Dst: set_interrupt
      Src: /src/xen/xen/arch/arm/domain_build.c:1110,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/xen/arch/arm/domain_build.c:1111,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1115,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - d
    - kinfo
    - addrcells
    - sizecells
    argTypes:
    - struct domain*
    - struct kernel_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1001
    functionDepth: 2
    functionLinenumber: 1001
    functionLinenumberEnd: 1118
    functionName: make_hypervisor_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - find_memory_holes
    - domain_use_host_layout
    - set_interrupt
    - dt_child_set_range
    - fdt_property_interrupts
    - fdt_end_node
    - xfree
    - fdt_begin_node
    - dt_cells_to_size
    - membanks_xzalloc
    - BUG_ON
    - printk
    - is_iommu_enabled
    - panic
    - fdt_property
    - find_host_extended_regions
    - dt_dprintk
    - is_32bit_domain
    - xzalloc_array
    - find_domU_holes
    linkageType: ''
    returnType: int
    signature: "int make_hypervisor_node(struct domain *d,\n                                const
      struct kernel_info *kinfo,\n                                int addrcells, int
      sizecells)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1128,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1131,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1135,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:1139,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1143,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1147,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1154
    functionName: make_psci_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - dt_dprintk
    - fdt_property_string
    - fdt_property_cell
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_psci_node(void *fdt)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/arch/arm/domain_build.c:1159,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1171,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1175,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:1187,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1189,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/domain_build.c:1190,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1198,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1205,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1209,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1213,1
    - Dst: vcpuid_to_vaffinity
      Src: /src/xen/xen/arch/arm/domain_build.c:1228,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/domain_build.c:1229,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1231,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1236,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/arm/domain_build.c:1244,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1245,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1249,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:1253,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1257,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1263,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1268,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:1270,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1275,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1280,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - d
    - fdt
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1283
    functionName: make_cpus_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - snprintf
    - dt_property_read_u32
    - dt_dprintk
    - GENMASK_ULL
    - fdt_property_string
    - dt_get_property
    - fdt_property_cell
    - vcpuid_to_vaffinity
    - dt_device_type_is_equal
    - printk
    - fdt_property
    - fdt_end_node
    - dt_find_node_by_path
    - dprintk
    - is_64bit_domain
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_cpus_node(const struct domain *d, void *fdt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:1187,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1189,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/domain_build.c:1190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1194
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_property_read_u32
    - dt_device_type_is_equal
    - dt_get_property
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(cpus, npcpu)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1300,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1304,1
    - Dst: strrchr
      Src: /src/xen/xen/arch/arm/domain_build.c:1307,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1310,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1320,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1321,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1326,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1329,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1334,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1337,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1342,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/domain_build.c:1346,1
    - Dst: gic_make_hwdom_dt_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1350,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - d
    - fdt
    - node
    argTypes:
    - struct domain*
    - void*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1357
    functionName: make_gic_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - gic_make_hwdom_dt_node
    - dt_dprintk
    - dt_get_property
    - fdt_property_cell
    - fdt_property
    - strrchr
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_gic_node(const struct domain *d, void *fdt,\n                                const
      struct dt_device_node *node)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1374,1
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1376,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1379,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/domain_build.c:1380,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1383,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1387,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:1388,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/domain_build.c:1390,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1399,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/domain_build.c:1401,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/domain_build.c:1403,1
    - Dst: timer_get_irq
      Src: /src/xen/xen/arch/arm/domain_build.c:1404,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1412,1
    - Dst: set_interrupt
      Src: /src/xen/xen/arch/arm/domain_build.c:1413,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1415,1
    - Dst: set_interrupt
      Src: /src/xen/xen/arch/arm/domain_build.c:1416,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1418,1
    - Dst: set_interrupt
      Src: /src/xen/xen/arch/arm/domain_build.c:1419,1
    - Dst: fdt_property_interrupts
      Src: /src/xen/xen/arch/arm/domain_build.c:1421,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/domain_build.c:1425,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/domain_build.c:1429,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1437
    functionName: make_timer_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - timer_get_irq
    - dt_property_read_u32
    - dt_find_matching_node
    - dt_dprintk
    - FDT_ERR_XEN
    - fdt_property_string
    - set_interrupt
    - fdt_property_cell
    - fdt_property_interrupts
    - is_hardware_domain
    - fdt_end_node
    - dprintk
    - is_64bit_domain
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_timer_node(const struct kernel_info *kinfo)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1445,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1446,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1447,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1448,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1449,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1450,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1451,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1452,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1453,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1454,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1455,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1456,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1457,1
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/arm/domain_build.c:1458,1
    - Dst: DT_MATCH_TYPE
      Src: /src/xen/xen/arch/arm/domain_build.c:1459,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/domain_build.c:1461,1
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/arm/domain_build.c:1471,1
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/arm/domain_build.c:1472,1
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/arm/domain_build.c:1473,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/domain_build.c:1482,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1484,1
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1487,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1489,1
    - Dst: platform_device_is_blacklisted
      Src: /src/xen/xen/arch/arm/domain_build.c:1492,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1494,1
    - Dst: device_get_class
      Src: /src/xen/xen/arch/arm/domain_build.c:1502,1
    - Dst: make_gic_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1503,1
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1504,1
    - Dst: make_timer_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1505,1
    - Dst: dt_device_used_by
      Src: /src/xen/xen/arch/arm/domain_build.c:1508,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1510,1
    - Dst: device_get_class
      Src: /src/xen/xen/arch/arm/domain_build.c:1518,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1520,1
    - Dst: sci_dt_handle_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1524,1
    - Dst: dt_number_of_irq
      Src: /src/xen/xen/arch/arm/domain_build.c:1531,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/domain_build.c:1535,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/domain_build.c:1540,1
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1549,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1550,1
    - Dst: handle_device
      Src: /src/xen/xen/arch/arm/domain_build.c:1554,1
    - Dst: strrchr
      Src: /src/xen/xen/arch/arm/domain_build.c:1563,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1566,1
    - Dst: write_properties
      Src: /src/xen/xen/arch/arm/domain_build.c:1570,1
    - Dst: dt_node_path_is_equal
      Src: /src/xen/xen/arch/arm/domain_build.c:1574,1
    - Dst: make_shm_resv_memory_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1581,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/domain_build.c:1581,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/domain_build.c:1582,1
    - Dst: handle_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1589,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:1596,1
    - Dst: dt_child_n_addr_cells
      Src: /src/xen/xen/arch/arm/domain_build.c:1597,1
    - Dst: dt_child_n_size_cells
      Src: /src/xen/xen/arch/arm/domain_build.c:1598,1
    - Dst: evtchn_allocate
      Src: /src/xen/xen/arch/arm/domain_build.c:1604,1
    - Dst: make_hypervisor_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1610,1
    - Dst: make_psci_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1614,1
    - Dst: make_cpus_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1618,1
    - Dst: make_memory_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1622,1
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:1623,1
    - Dst: sci_dt_finalize
      Src: /src/xen/xen/arch/arm/domain_build.c:1627,1
    - Dst: make_memory_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1637,1
    - Dst: make_resv_memory_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1644,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1650,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 4
    argNames:
    - d
    - kinfo
    - node
    - p2mt
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1439
    functionDepth: 3
    functionLinenumber: 1439
    functionLinenumberEnd: 1653
    functionName: handle_node
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - make_shm_resv_memory_node
    - device_get_class
    - dt_node_path_is_equal
    - dt_n_addr_cells
    - dt_match_node
    - dt_child_n_size_cells
    - bootinfo_get_reserved_mem
    - make_hypervisor_node
    - fdt_end_node
    - fdt_begin_node
    - handle_node
    - DT_MATCH_PATH
    - make_cpus_node
    - write_properties
    - make_resv_memory_node
    - DT_MATCH_COMPATIBLE
    - sci_dt_finalize
    - make_gic_node
    - make_memory_node
    - platform_device_is_blacklisted
    - printk
    - DT_MATCH_TYPE
    - sci_dt_handle_node
    - dt_node_full_name
    - platform_get_irq
    - dt_device_used_by
    - dt_number_of_irq
    - strrchr
    - evtchn_allocate
    - make_timer_node
    - make_psci_node
    - dt_n_size_cells
    - dt_dprintk
    - handle_device
    - kernel_info_get_mem
    - dt_child_n_addr_cells
    linkageType: ''
    returnType: int
    signature: "int handle_node(struct domain *d, struct kernel_info *kinfo,\n                              struct
      dt_device_node *node,\n                              p2m_type_t p2mt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/domain_build.c:1662,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/domain_build.c:1667,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/arm/domain_build.c:1668,1
    - Dst: fdt_create
      Src: /src/xen/xen/arch/arm/domain_build.c:1672,1
    - Dst: fdt_finish_reservemap
      Src: /src/xen/xen/arch/arm/domain_build.c:1676,1
    - Dst: handle_node
      Src: /src/xen/xen/arch/arm/domain_build.c:1680,1
    - Dst: fdt_finish
      Src: /src/xen/xen/arch/arm/domain_build.c:1684,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1691,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/domain_build.c:1692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1655
    functionDepth: 4
    functionLinenumber: 1655
    functionLinenumberEnd: 1694
    functionName: prepare_dtb_hwdom
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - fdt_finish
    - fdt_totalsize
    - xmalloc_bytes
    - ASSERT
    - fdt_finish_reservemap
    - fdt_create
    - printk
    - xfree
    - handle_node
    linkageType: ''
    returnType: int
    signature: int prepare_dtb_hwdom(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_allocate_ppi
      Src: /src/xen/xen/arch/arm/domain_build.c:1708,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1710,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1714,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/arm/domain_build.c:1718,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/arm/domain_build.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1725
    functionName: evtchn_allocate
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - panic
    - vgic_allocate_ppi
    - MASK_INSR
    - printk
    linkageType: ''
    returnType: void
    signature: void evtchn_allocate(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/domain_build.c:1737,1
    - Dst: gnttab_dom0_frames
      Src: /src/xen/xen/arch/arm/domain_build.c:1738,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:1747,1
    - Dst: GB
      Src: /src/xen/xen/arch/arm/domain_build.c:1747,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1752
    functionName: find_gnttab_region
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - __pa
    - GB
    - BUG_ON
    - gnttab_dom0_frames
    - printk
    linkageType: ''
    returnType: void
    signature: "void find_gnttab_region(struct domain *d,\n                                      struct
      kernel_info *kinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:1760,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:1761,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1767,1
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1771,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1773,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1777,1
    - Dst: vcpu_switch_to_aarch64_mode
      Src: /src/xen/xen/arch/arm/domain_build.c:1778,1
    - Dst: kernel_load
      Src: /src/xen/xen/arch/arm/domain_build.c:1786,1
    - Dst: initrd_load
      Src: /src/xen/xen/arch/arm/domain_build.c:1788,1
    - Dst: dtb_load
      Src: /src/xen/xen/arch/arm/domain_build.c:1789,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/domain_build.c:1791,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1795,1
    - Dst: vcpu_create
      Src: /src/xen/xen/arch/arm/domain_build.c:1827,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1829,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1833,1
    - Dst: vcpu_switch_to_aarch64_mode
      Src: /src/xen/xen/arch/arm/domain_build.c:1834,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/arch/arm/domain_build.c:1837,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/domain_build.c:1840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1843
    functionName: construct_domain
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 0
    functionsReached:
    - initrd_load
    - is_32bit_domain
    - dtb_load
    - kernel_load
    - BUG_ON
    - vcpu_create
    - is_sve_domain
    - printk
    - domain_update_node_affinity
    - memset
    - clear_bit
    - vcpu_switch_to_aarch64_mode
    - is_64bit_domain
    linkageType: ''
    returnType: int
    signature: int construct_domain(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/domain_build.c:1851,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/domain_build.c:1853,1
    - Dst: parse_dom0_mem
      Src: /src/xen/xen/arch/arm/domain_build.c:1857,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/arm/domain_build.c:1861,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/domain_build.c:1862,1
    - Dst: kernel_probe
      Src: /src/xen/xen/arch/arm/domain_build.c:1870,1
    - Dst: construct_hwdom
      Src: /src/xen/xen/arch/arm/domain_build.c:1874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1875
    functionName: construct_dom0
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - MB
    - warning_add
    - BUG_ON
    - construct_hwdom
    - printk
    - parse_dom0_mem
    - kernel_probe
    linkageType: ''
    returnType: int
    signature: int construct_dom0(struct domain *d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: iommu_hwdom_init
      Src: /src/xen/xen/arch/arm/domain_build.c:1883,1
    - Dst: find_gnttab_region
      Src: /src/xen/xen/arch/arm/domain_build.c:1889,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/arch/arm/domain_build.c:1890,1
    - Dst: allocate_memory_11
      Src: /src/xen/xen/arch/arm/domain_build.c:1891,1
    - Dst: allocate_memory
      Src: /src/xen/xen/arch/arm/domain_build.c:1893,1
    - Dst: process_shm
      Src: /src/xen/xen/arch/arm/domain_build.c:1897,1
    - Dst: gic_map_hwdom_extra_mappings
      Src: /src/xen/xen/arch/arm/domain_build.c:1903,1
    - Dst: platform_specific_mapping
      Src: /src/xen/xen/arch/arm/domain_build.c:1907,1
    - Dst: prepare_dtb_hwdom
      Src: /src/xen/xen/arch/arm/domain_build.c:1913,1
    - Dst: pci_host_bridge_mappings
      Src: /src/xen/xen/arch/arm/domain_build.c:1917,1
    - Dst: prepare_acpi
      Src: /src/xen/xen/arch/arm/domain_build.c:1921,1
    - Dst: construct_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1926,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - kinfo
    - node
    argTypes:
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1877
    functionDepth: 7
    functionLinenumber: 1877
    functionLinenumberEnd: 1927
    functionName: construct_hwdom
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - allocate_memory_11
    - gic_map_hwdom_extra_mappings
    - allocate_memory
    - iommu_hwdom_init
    - prepare_dtb_hwdom
    - find_gnttab_region
    - prepare_acpi
    - platform_specific_mapping
    - pci_host_bridge_mappings
    - is_domain_direct_mapped
    - process_shm
    - construct_domain
    linkageType: ''
    returnType: int
    signature: "int construct_hwdom(struct kernel_info *kinfo,\n                           const
      struct dt_device_node *node)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_dom0_frames
      Src: /src/xen/xen/arch/arm/domain_build.c:1936,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/xen/arch/arm/domain_build.c:1938,1
    - Dst: vgic_def_nr_spis
      Src: /src/xen/xen/arch/arm/domain_build.c:1946,1
    - Dst: tee_get_type
      Src: /src/xen/xen/arch/arm/domain_build.c:1947,1
    - Dst: dom0_max_vcpus
      Src: /src/xen/xen/arch/arm/domain_build.c:1948,1
    - Dst: sve_domctl_vl_param
      Src: /src/xen/xen/arch/arm/domain_build.c:1957,1
    - Dst: sve_encode_vl
      Src: /src/xen/xen/arch/arm/domain_build.c:1958,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1960,1
    - Dst: domid_alloc
      Src: /src/xen/xen/arch/arm/domain_build.c:1966,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1968,1
    - Dst: domain_create
      Src: /src/xen/xen/arch/arm/domain_build.c:1970,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/arm/domain_build.c:1971,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1972,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/arm/domain_build.c:1972,1
    - Dst: dom0_set_llc_colors
      Src: /src/xen/xen/arch/arm/domain_build.c:1974,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1975,1
    - Dst: vcpu_create
      Src: /src/xen/xen/arch/arm/domain_build.c:1977,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1978,1
    - Dst: construct_dom0
      Src: /src/xen/xen/arch/arm/domain_build.c:1980,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/domain_build.c:1982,1
    - Dst: set_xs_domain
      Src: /src/xen/xen/arch/arm/domain_build.c:1984,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1985
    functionName: create_dom0
    functionSourceFile: /src/xen/xen/arch/arm/domain_build.c
    functionUses: 1
    functionsReached:
    - domid_alloc
    - IS_ERR
    - vgic_def_nr_spis
    - panic
    - dom0_set_llc_colors
    - set_xs_domain
    - XEN_DOMCTL_GRANT_version
    - PTR_ERR
    - tee_get_type
    - gnttab_dom0_frames
    - sve_domctl_vl_param
    - vcpu_create
    - domain_create
    - sve_encode_vl
    - construct_dom0
    - dom0_max_vcpus
    linkageType: ''
    returnType: void
    signature: void create_dom0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/p2m.c:32,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: p2m_write_unlock
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_tlb_flush_sync
    - write_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_write_unlock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: memory_type_changed
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memory_type_changed(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:44,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/p2m.c:46,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/p2m.c:47,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - d
    - gfn
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - p2m_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: p2m_lookup
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_read_lock
    - p2m_get_entry
    - p2m_read_unlock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t p2m_lookup(struct domain *d, gfn_t gfn, p2m_type_t *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:56,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/p2m.c:61,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/p2m.c:62,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/arm/p2m.c:67,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/p2m.c:67,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:69,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/p2m.c:73,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/arm/p2m.c:79,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/arch/arm/p2m.c:81,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:83,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/p2m.c:89,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/p2m.c:90,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:95,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/p2m.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - d
    - gfn
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - p2m_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 98
    functionName: p2m_get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 3
    functionsReached:
    - p2m_get_entry
    - p2m_read_unlock
    - mfn_to_page
    - page_get_owner_and_reference
    - mfn_valid
    - get_page
    - p2m_is_foreign
    - p2m_read_lock
    - put_page
    - p2m_is_any_ram
    - ASSERT_UNREACHABLE
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *p2m_get_page_from_gfn(struct domain *d, gfn_t gfn,\n
      \                                       p2m_type_t *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: guest_physmap_mark_populate_on_demand
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_mark_populate_on_demand(struct domain *d,\n                                          unsigned
      long gfn,\n                                          unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gfn
    - order
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: p2m_pod_decrease_reservation
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long p2m_pod_decrease_reservation(struct domain *d, gfn_t
      gfn,\n                                           unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:116,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/p2m.c:119,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/arm/p2m.c:120,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: p2m_insert_mapping
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_unlock
    - p2m_write_lock
    - p2m_set_entry
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_insert_mapping(struct domain *d, gfn_t start_gfn, unsigned
      long nr,\n                       mfn_t mfn, p2m_type_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:131,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/p2m.c:135,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/p2m.c:147,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/p2m.c:147,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/arm/p2m.c:150,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/p2m.c:151,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/p2m.c:151,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/p2m.c:151,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:158,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/arm/p2m.c:161,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 168
    functionName: p2m_remove_mapping
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_lock
    - p2m_get_entry
    - p2m_set_entry
    - mfn_add
    - mfn_valid
    - p2m_get_hostp2m
    - gfn_x
    - p2m_write_unlock
    - mfn_eq
    - p2m_is_any_ram
    - gfn_add
    linkageType: ''
    returnType: int
    signature: "int p2m_remove_mapping(struct domain *d,\n                                     gfn_t
      start_gfn,\n                                     unsigned long nr,\n                                     mfn_t
      mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_insert_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - gfn
    - nr
    - mfn
    - p2mt
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: map_regions_p2mt
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_insert_mapping
    linkageType: ''
    returnType: int
    signature: "int map_regions_p2mt(struct domain *d,\n                     gfn_t
      gfn,\n                     unsigned long nr,\n                     mfn_t mfn,\n
      \                    p2m_type_t p2mt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_remove_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: unmap_regions_p2mt
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_remove_mapping
    linkageType: ''
    returnType: int
    signature: "int unmap_regions_p2mt(struct domain *d,\n                       gfn_t
      gfn,\n                       unsigned long nr,\n                       mfn_t
      mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_insert_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: map_mmio_regions
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_insert_mapping
    linkageType: ''
    returnType: int
    signature: "int map_mmio_regions(struct domain *d,\n                     gfn_t
      start_gfn,\n                     unsigned long nr,\n                     mfn_t
      mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_remove_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start_gfn
    - nr
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: unmap_mmio_regions
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_remove_mapping
    linkageType: ''
    returnType: int
    signature: "int unmap_mmio_regions(struct domain *d,\n                       gfn_t
      start_gfn,\n                       unsigned long nr,\n                       mfn_t
      mfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/arm/p2m.c:207,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:207,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:207,1
    - Dst: p2m_insert_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:210,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/p2m.c:213,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 219
    functionName: map_dev_mmio_page
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - iomem_access_permitted
    - mfn_x
    - p2m_insert_mapping
    - printk
    linkageType: ''
    returnType: int
    signature: int map_dev_mmio_page(struct domain *d, gfn_t gfn, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_insert_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    - t
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned long
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 228
    functionName: guest_physmap_add_entry
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_insert_mapping
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_add_entry(struct domain *d,\n                            gfn_t
      gfn,\n                            mfn_t mfn,\n                            unsigned
      long page_order,\n                            p2m_type_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_remove_mapping
      Src: /src/xen/xen/arch/arm/p2m.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: guest_physmap_remove_page
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_remove_mapping
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_remove_page(struct domain *d, gfn_t gfn, mfn_t mfn,\n
      \                             unsigned int page_order)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/p2m.c:239,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:242,1
    - Dst: arch_acquire_resource_check
      Src: /src/xen/xen/arch/arm/p2m.c:242,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/p2m.c:244,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:253,1
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/arch/arm/p2m.c:255,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/p2m.c:255,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/p2m.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - d
    - fd
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - struct domain*
    - unsigned long
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 260
    functionName: set_foreign_p2m_entry
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - _gfn
    - arch_acquire_resource_check
    - get_page
    - ASSERT
    - put_page
    - guest_physmap_add_entry
    linkageType: ''
    returnType: int
    signature: "int set_foreign_p2m_entry(struct domain *d, const struct domain *fd,\n
      \                         unsigned long gfn, mfn_t mfn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/p2m.c:277,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/arm/p2m.c:277,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/p2m.c:280,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/p2m.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 283
    functionName: p2m_vmid_allocator_init
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - BITS_TO_LONGS
    - set_bit
    - panic
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void p2m_vmid_allocator_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:287,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/p2m.c:291,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/arch/arm/p2m.c:293,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/p2m.c:300,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/p2m.c:304,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 313
    functionName: p2m_alloc_vmid
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - set_bit
    - spin_unlock
    - find_first_zero_bit
    - ASSERT
    - spin_lock
    - printk
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_alloc_vmid(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:317,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/p2m.c:318,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/p2m.c:320,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: p2m_free_vmid
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - clear_bit
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_free_vmid(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:327,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/p2m.c:343,1
    - Dst: gfn_max
      Src: /src/xen/xen/arch/arm/p2m.c:345,1
    - Dst: gfn_min
      Src: /src/xen/xen/arch/arm/p2m.c:346,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/p2m.c:346,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:350,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:350,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/arm/p2m.c:363,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/p2m.c:363,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/p2m.c:385,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/p2m.c:389,1
    - Dst: gfn_next_boundary
      Src: /src/xen/xen/arch/arm/p2m.c:390,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/p2m.c:392,1
    - Dst: p2m_is_any_ram
      Src: /src/xen/xen/arch/arm/p2m.c:392,1
    - Dst: flush_page_to_ram
      Src: /src/xen/xen/arch/arm/p2m.c:402,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:402,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/p2m.c:404,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/p2m.c:405,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/arm/p2m.c:409,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - d
    - pstart
    - end
    argTypes:
    - struct domain*
    - gfn_t*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 416
    functionName: p2m_cache_flush_range
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - mfn_eq
    - gfn_max
    - gfn_min
    - p2m_get_entry
    - p2m_read_unlock
    - smp_processor_id
    - gfn_next_boundary
    - mfn_x
    - mfn_add
    - p2m_get_hostp2m
    - flush_page_to_ram
    - gfn_x
    - invalidate_icache
    - p2m_read_lock
    - gfn_eq
    - p2m_is_any_ram
    - gfn_add
    linkageType: ''
    returnType: int
    signature: int p2m_cache_flush_range(struct domain *d, gfn_t *pstart, gfn_t end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:448,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/arm/p2m.c:450,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/p2m.c:452,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/p2m.c:454,1
    - Dst: vcpu_hcr_set_flags
      Src: /src/xen/xen/arch/arm/p2m.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 463
    functionName: p2m_set_way_flush
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - iommu_use_hap_pt
    - ASSERT
    - gprintk
    - vcpu_hcr_set_flags
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: void p2m_set_way_flush(struct vcpu *v, struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_has_cache_enabled
      Src: /src/xen/xen/arch/arm/p2m.c:467,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:470,1
    - Dst: vcpu_hcr_clear_flags
      Src: /src/xen/xen/arch/arm/p2m.c:482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - was_enabled
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 483
    functionName: p2m_toggle_cache
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vcpu_has_cache_enabled
    - vcpu_hcr_clear_flags
    linkageType: ''
    returnType: void
    signature: void p2m_toggle_cache(struct vcpu *v, bool was_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_lookup
      Src: /src/xen/xen/arch/arm/p2m.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: gfn_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_lookup
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t gfn_to_mfn(struct domain *d, gfn_t gfn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/p2m.c:494,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/p2m.c:512,1
    - Dst: gvirt_to_maddr
      Src: /src/xen/xen/arch/arm/p2m.c:513,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/p2m.c:514,1
    - Dst: p2m_mem_access_check_and_get_page
      Src: /src/xen/xen/arch/arm/p2m.c:544,1
    - Dst: guest_walk_tables
      Src: /src/xen/xen/arch/arm/p2m.c:550,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/p2m.c:552,1
    - Dst: p2m_lookup
      Src: /src/xen/xen/arch/arm/p2m.c:557,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/p2m.c:557,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/p2m.c:558,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/p2m.c:558,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/p2m.c:578,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/p2m.c:580,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/p2m.c:582,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:583,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/p2m.c:587,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/p2m.c:588,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/p2m.c:590,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/p2m.c:590,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/p2m.c:592,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/p2m.c:593,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/p2m.c:593,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - v
    - va
    - flags
    argTypes:
    - struct vcpu*
    - vaddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 598
    functionName: get_page_from_gva
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 1
    functionsReached:
    - mfn_eq
    - unlikely
    - p2m_read_unlock
    - p2m_mem_access_check_and_get_page
    - mfn_to_page
    - gvirt_to_maddr
    - mfn_x
    - p2m_is_ram
    - p2m_lookup
    - mfn_valid
    - gaddr_to_gfn
    - get_page
    - ASSERT
    - maddr_to_mfn
    - guest_walk_tables
    - p2m_read_lock
    - dprintk
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,\n
      \                                   unsigned long flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ipa_bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: p2m_restrict_ipa_bits
    functionSourceFile: /src/xen/xen/arch/arm/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_restrict_ipa_bits(unsigned int ipa_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dabt
    argTypes:
    - struct hsr_dabt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: vpl011_reg32_check_access
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vpl011_reg32_check_access(struct hsr_dabt dabt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpl011.c:47,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vpl011.c:47,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vpl011.c:64,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vpl011.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 70
    functionName: vpl011_update_interrupt_status
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void vpl011_update_interrupt_status(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: console_get_domain
      Src: /src/xen/xen/arch/arm/vpl011.c:81,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:83,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vpl011.c:90,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vpl011.c:98,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vpl011.c:110,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:123,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:125,1
    - Dst: console_put_domain
      Src: /src/xen/xen/arch/arm/vpl011.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - d
    - data
    argTypes:
    - struct domain*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 128
    functionName: vpl011_write_data_xen
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - vpl011_update_interrupt_status
    - VPL011_UNLOCK
    - VPL011_LOCK
    - printk
    - console_get_domain
    - console_put_domain
    linkageType: ''
    returnType: void
    signature: void vpl011_write_data_xen(struct domain *d, uint8_t data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:142,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/vpl011.c:147,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:155,1
    - Dst: xencons_mask
      Src: /src/xen/xen/arch/arm/vpl011.c:159,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vpl011.c:161,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:164,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:177,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:180,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 191
    functionName: vpl011_read_data_xen
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - vpl011_update_interrupt_status
    - VPL011_UNLOCK
    - VPL011_LOCK
    - xencons_queued
    - smp_rmb
    - gprintk
    - xencons_mask
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t vpl011_read_data_xen(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:201,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/vpl011.c:206,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:214,1
    - Dst: xencons_mask
      Src: /src/xen/xen/arch/arm/vpl011.c:218,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vpl011.c:220,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:223,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:236,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:239,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:247,1
    - Dst: notify_via_xen_event_channel
      Src: /src/xen/xen/arch/arm/vpl011.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 256
    functionName: vpl011_read_data
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - vpl011_update_interrupt_status
    - VPL011_UNLOCK
    - VPL011_LOCK
    - xencons_queued
    - notify_via_xen_event_channel
    - smp_rmb
    - gprintk
    - xencons_mask
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t vpl011_read_data(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpl011.c:265,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vpl011.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - vpl011
    - fifo_level
    argTypes:
    - struct vpl011*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: vpl011_update_tx_fifo_status
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void vpl011_update_tx_fifo_status(struct vpl011 *vpl011,\n                                         unsigned
      int fifo_level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:286,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vpl011.c:291,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:300,1
    - Dst: xencons_mask
      Src: /src/xen/xen/arch/arm/vpl011.c:305,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/arm/vpl011.c:307,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:310,1
    - Dst: vpl011_update_tx_fifo_status
      Src: /src/xen/xen/arch/arm/vpl011.c:325,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:327,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:330,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:334,1
    - Dst: notify_via_xen_event_channel
      Src: /src/xen/xen/arch/arm/vpl011.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - d
    - data
    argTypes:
    - struct domain*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 341
    functionName: vpl011_write_data
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - vpl011_update_interrupt_status
    - VPL011_UNLOCK
    - VPL011_LOCK
    - xencons_queued
    - notify_via_xen_event_channel
    - vpl011_update_tx_fifo_status
    - smp_wmb
    - gprintk
    - xencons_mask
    linkageType: ''
    returnType: void
    signature: void vpl011_write_data(struct domain *d, uint8_t data)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:358,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:361,1
    - Dst: vpl011_read_data
      Src: /src/xen/xen/arch/arm/vpl011.c:361,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:363,1
    - Dst: vpl011_read_data_xen
      Src: /src/xen/xen/arch/arm/vpl011.c:363,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:367,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:374,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:376,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:377,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:378,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:382,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:384,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:385,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:386,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:390,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:392,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:393,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:395,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:399,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:401,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vpl011.c:402,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:403,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:407,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:413,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vpl011.c:418,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:426,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 430
    functionName: vpl011_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - vpl011_reg32_check_access
    - VPL011_UNLOCK
    - VPL011_LOCK
    - gprintk
    - vpl011_read_data_xen
    - vreg_reg32_extract
    - vpl011_read_data
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int vpl011_mmio_read(struct vcpu *v,\n                            mmio_info_t
      *info,\n                            register_t *r,\n                            void
      *priv)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:450,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vpl011.c:452,1
    - Dst: vpl011_write_data
      Src: /src/xen/xen/arch/arm/vpl011.c:455,1
    - Dst: vpl011_write_data_xen
      Src: /src/xen/xen/arch/arm/vpl011.c:457,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:462,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:472,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:474,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vpl011.c:475,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:476,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:477,1
    - Dst: vpl011_reg32_check_access
      Src: /src/xen/xen/arch/arm/vpl011.c:481,1
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:483,1
    - Dst: vreg_reg32_clearbits
      Src: /src/xen/xen/arch/arm/vpl011.c:484,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:485,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:486,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:490,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vpl011.c:499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 503
    functionName: vpl011_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - vpl011_reg32_check_access
    - vpl011_update_interrupt_status
    - VPL011_UNLOCK
    - VPL011_LOCK
    - vreg_reg32_clearbits
    - vpl011_write_data_xen
    - gprintk
    - vpl011_write_data
    - vreg_reg32_update
    linkageType: ''
    returnType: int
    signature: "int vpl011_mmio_write(struct vcpu *v,\n                             mmio_info_t
      *info,\n                             register_t r,\n                             void
      *priv)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vpl011_update_tx_fifo_status
      Src: /src/xen/xen/arch/arm/vpl011.c:559,1
    - Dst: vpl011_update_interrupt_status
      Src: /src/xen/xen/arch/arm/vpl011.c:562,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - d
    - in_fifo_level
    - in_size
    - out_fifo_level
    - out_size
    argTypes:
    - struct domain*
    - XENCONS_RING_IDX
    - XENCONS_RING_IDX
    - XENCONS_RING_IDX
    - XENCONS_RING_IDX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 566
    functionName: vpl011_data_avail
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - vpl011_update_interrupt_status
    - vpl011_update_tx_fifo_status
    linkageType: ''
    returnType: void
    signature: "void vpl011_data_avail(struct domain *d,\n                              XENCONS_RING_IDX
      in_fifo_level,\n                              XENCONS_RING_IDX in_size,\n                              XENCONS_RING_IDX
      out_fifo_level,\n                              XENCONS_RING_IDX out_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:585,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:589,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:591,1
    - Dst: xencons_mask
      Src: /src/xen/xen/arch/arm/vpl011.c:595,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:598,1
    - Dst: vpl011_data_avail
      Src: /src/xen/xen/arch/arm/vpl011.c:602,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - d
    - c
    argTypes:
    - struct domain*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 606
    functionName: vpl011_rx_char_xen
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - VPL011_UNLOCK
    - VPL011_LOCK
    - xencons_queued
    - vpl011_data_avail
    - xencons_mask
    linkageType: ''
    returnType: int
    signature: int vpl011_rx_char_xen(struct domain *d, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VPL011_LOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:617,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/vpl011.c:624,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:626,1
    - Dst: xencons_queued
      Src: /src/xen/xen/arch/arm/vpl011.c:630,1
    - Dst: vpl011_data_avail
      Src: /src/xen/xen/arch/arm/vpl011.c:634,1
    - Dst: VPL011_UNLOCK
      Src: /src/xen/xen/arch/arm/vpl011.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - v
    - port
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 638
    functionName: vpl011_notification
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - VPL011_UNLOCK
    - VPL011_LOCK
    - xencons_queued
    - smp_rmb
    - vpl011_data_avail
    linkageType: ''
    returnType: void
    signature: void vpl011_notification(struct vcpu *v, unsigned int port)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/arch/arm/vpl011.c:654,1
    - Dst: serial_vuart_info
      Src: /src/xen/xen/arch/arm/vpl011.c:656,1
    - Dst: serial_irq
      Src: /src/xen/xen/arch/arm/vpl011.c:657,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vpl011.c:666,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vpl011.c:680,1
    - Dst: prepare_ring_for_helper
      Src: /src/xen/xen/arch/arm/vpl011.c:700,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/vpl011.c:701,1
    - Dst: alloc_unbound_xen_event_channel
      Src: /src/xen/xen/arch/arm/vpl011.c:707,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/vpl011.c:719,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/vpl011.c:727,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vpl011.c:736,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vpl011.c:738,1
    - Dst: domain_vpl011_deinit
      Src: /src/xen/xen/arch/arm/vpl011.c:744,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct vpl011_init_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 748
    functionName: domain_vpl011_init
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - serial_vuart_info
    - register_mmio_handler
    - gfn_x
    - alloc_unbound_xen_event_channel
    - prepare_ring_for_helper
    - domain_vpl011_deinit
    - printk
    - serial_irq
    - is_domain_direct_mapped
    - spin_lock_init
    - vgic_reserve_virq
    linkageType: ''
    returnType: int
    signature: int domain_vpl011_init(struct domain *d, struct vpl011_init_info *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vgic_free_virq
      Src: /src/xen/xen/arch/arm/vpl011.c:756,1
    - Dst: destroy_ring_for_helper
      Src: /src/xen/xen/arch/arm/vpl011.c:768,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/arch/arm/vpl011.c:773,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/vpl011.c:784,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 785
    functionName: domain_vpl011_deinit
    functionSourceFile: /src/xen/xen/arch/arm/vpl011.c
    functionUses: 1
    functionsReached:
    - destroy_ring_for_helper
    - XFREE
    - free_xen_event_channel
    - vgic_free_virq
    linkageType: ''
    returnType: void
    signature: void domain_vpl011_deinit(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct arm_cpu_capabilities*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: has_sb_instruction
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sb_instruction(const struct arm_cpu_capabilities *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/xen/xen/arch/arm/cpufeature.c:45,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpufeature.c:48,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/cpufeature.c:49,1
    - Dst: cpus_set_cap
      Src: /src/xen/xen/arch/arm/cpufeature.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - caps
    - info
    argTypes:
    - struct arm_cpu_capabilities*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: update_cpu_capabilities
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 1
    functionsReached:
    - cpus_have_cap
    - matches
    - printk
    - cpus_set_cap
    linkageType: ''
    returnType: void
    signature: "void update_cpu_capabilities(const struct arm_cpu_capabilities *caps,\n
      \                            const char *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpufeature.c:62,1
    - Dst: stop_machine_run
      Src: /src/xen/xen/arch/arm/cpufeature.c:75,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/cpufeature.c:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - caps
    argTypes:
    - struct arm_cpu_capabilities*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: enable_cpu_capabilities
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 1
    functionsReached:
    - cpus_have_cap
    - BUG_ON
    - stop_machine_run
    linkageType: ''
    returnType: void
    signature: void enable_cpu_capabilities(const struct arm_cpu_capabilities *caps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_cpu_capabilities
      Src: /src/xen/xen/arch/arm/cpufeature.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: check_local_cpu_features
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 0
    functionsReached:
    - update_cpu_capabilities
    linkageType: ''
    returnType: void
    signature: void check_local_cpu_features(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: enable_cpu_capabilities
      Src: /src/xen/xen/arch/arm/cpufeature.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: enable_cpu_features
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 0
    functionsReached:
    - enable_cpu_capabilities
    linkageType: ''
    returnType: void
    signature: void enable_cpu_features(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/cpufeature.c:106,1
    - Dst: struct arm_cpu_capabilities*::enable
      Src: /src/xen/xen/arch/arm/cpufeature.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - caps
    argTypes:
    - struct arm_cpu_capabilities*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 119
    functionName: enable_nonboot_cpu_caps
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 1
    functionsReached:
    - cpus_have_cap
    - struct arm_cpu_capabilities*::enable
    linkageType: ''
    returnType: int
    signature: int enable_nonboot_cpu_caps(const struct arm_cpu_capabilities *caps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:125,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:126,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:129,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:130,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:132,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:133,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:135,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:136,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:138,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:139,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:140,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:142,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:143,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:144,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:146,1
    - Dst: compute_max_zcr
      Src: /src/xen/xen/arch/arm/cpufeature.c:149,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:151,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:153,1
    - Dst: cpu_feature64_has_el0_32
      Src: /src/xen/xen/arch/arm/cpufeature.c:155,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:160,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:161,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:162,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:164,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:165,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:167,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:169,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:170,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:171,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:172,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:173,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:174,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:176,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:177,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:178,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:179,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:180,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:181,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:182,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:184,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:185,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/cpufeature.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpuinfo_arm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 190
    functionName: identify_cpu
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 3
    functionsReached:
    - compute_max_zcr
    - READ_SYSREG
    - cpu_feature64_has_el0_32
    linkageType: ''
    returnType: void
    signature: void identify_cpu(struct cpuinfo_arm *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 242
    functionName: create_domain_cpuinfo
    functionSourceFile: /src/xen/xen/arch/arm/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int create_domain_cpuinfo(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:20,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:21,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:22,1
    - Dst: CLIDR_CTYPEn_SHIFT
      Src: /src/xen/xen/arch/arm/llc-coloring.c:29,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:40,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/llc-coloring.c:41,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:43,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/llc-coloring.c:58,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/llc-coloring.c:62,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/llc-coloring.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 66
    functionName: get_llc_way_size
    functionSourceFile: /src/xen/xen/arch/arm/llc-coloring.c
    functionUses: 0
    functionsReached:
    - CLIDR_CTYPEn_SHIFT
    - printk
    - isb
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_llc_way_size(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/llc-coloring.c:76,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/llc-coloring.c:80,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/llc-coloring.c:90,1
    - Dst: GB
      Src: /src/xen/xen/arch/arm/llc-coloring.c:97,1
    - Dst: GB
      Src: /src/xen/xen/arch/arm/llc-coloring.c:98,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/llc-coloring.c:111,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/llc-coloring.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - xen_size
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 117
    functionName: get_xen_paddr
    functionSourceFile: /src/xen/xen/arch/arm/llc-coloring.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - panic
    - GB
    - bootinfo_get_mem
    - printk
    - consider_modules
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t get_xen_paddr(paddr_t xen_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/llc-coloring.c:121,1
    - Dst: get_max_nr_llc_colors
      Src: /src/xen/xen/arch/arm/llc-coloring.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: xen_colored_map_size
    functionSourceFile: /src/xen/xen/arch/arm/llc-coloring.c
    functionUses: 0
    functionsReached:
    - get_max_nr_llc_colors
    - ROUNDUP
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t xen_colored_map_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boot_module_find_by_kind
      Src: /src/xen/xen/arch/arm/llc-coloring.c:126,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/llc-coloring.c:128,1
    - Dst: xen_colored_map_size
      Src: /src/xen/xen/arch/arm/llc-coloring.c:130,1
    - Dst: get_xen_paddr
      Src: /src/xen/xen/arch/arm/llc-coloring.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: arch_llc_coloring_init
    functionSourceFile: /src/xen/xen/arch/arm/llc-coloring.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - get_xen_paddr
    - boot_module_find_by_kind
    - xen_colored_map_size
    linkageType: ''
    returnType: void
    signature: void arch_llc_coloring_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/arm/smpboot.c:89,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:89,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/arch/arm/smpboot.c:90,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:90,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:98,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:98,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/arch/arm/smpboot.c:99,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: setup_cpu_sibling_map
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - cpumask_set_cpu
    - zalloc_cpumask_var
    - per_cpu
    - cpumask_copy
    linkageType: ''
    returnType: int
    signature: int setup_cpu_sibling_map(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/arm/smpboot.c:106,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:106,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/arch/arm/smpboot.c:107,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: remove_cpu_sibling_map
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - free_cpumask_var
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void remove_cpu_sibling_map(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:112,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:113,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/smpboot.c:114,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/smpboot.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: smp_prepare_boot_cpu
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 2
    functionsReached:
    - cpumask_set_cpu
    - READ_SYSREG
    - cpu_logical_map
    linkageType: ''
    returnType: void
    signature: void smp_prepare_boot_cpu(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/arch/arm/smpboot.c:124,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:139,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/smpboot.c:151,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:154,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:155,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:156,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:156,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/smpboot.c:158,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:161,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:162,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/arm/smpboot.c:166,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:166,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:168,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:169,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/arch/arm/smpboot.c:173,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:173,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:178,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:179,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:189,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:190,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:204,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:206,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:231,1
    - Dst: arch_cpu_init
      Src: /src/xen/xen/arch/arm/smpboot.c:238,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:240,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:249,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:258,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/smpboot.c:259,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 261
    functionName: dt_smp_init_cpus
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - dt_cells_to_size
    - dt_node_full_name
    - dt_n_size_cells
    - dt_n_addr_cells
    - cpu_logical_map
    - dt_get_property
    - dt_device_type_is_equal
    - arch_cpu_init
    - printk
    - dt_read_paddr
    - cpumask_set_cpu
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void dt_smp_init_cpus(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/smpboot.c:151,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:154,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:155,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:156,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:156,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/smpboot.c:158,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:161,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:162,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/arm/smpboot.c:166,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:166,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:168,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:169,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/arch/arm/smpboot.c:173,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/smpboot.c:173,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:178,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:179,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:189,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:190,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:204,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/smpboot.c:206,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:231,1
    - Dst: arch_cpu_init
      Src: /src/xen/xen/arch/arm/smpboot.c:238,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:240,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 245
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - dt_cells_to_size
    - dt_node_full_name
    - dt_n_size_cells
    - dt_n_addr_cells
    - dt_get_property
    - dt_device_type_is_equal
    - arch_cpu_init
    - printk
    - dt_read_paddr
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node( cpus, cpu )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: psci_init
      Src: /src/xen/xen/arch/arm/smpboot.c:268,1
    - Dst: arch_smp_init
      Src: /src/xen/xen/arch/arm/smpboot.c:270,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:272,1
    - Dst: dt_smp_init_cpus
      Src: /src/xen/xen/arch/arm/smpboot.c:278,1
    - Dst: acpi_smp_init_cpus
      Src: /src/xen/xen/arch/arm/smpboot.c:280,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/arm/smpboot.c:283,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/arm/smpboot.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 290
    functionName: smp_init_cpus
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 1
    functionsReached:
    - psci_init
    - warning_add
    - acpi_smp_init_cpus
    - arch_smp_init
    - printk
    - dt_smp_init_cpus
    linkageType: ''
    returnType: void
    signature: void smp_init_cpus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_possible
      Src: /src/xen/xen/arch/arm/smpboot.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: smp_get_max_cpus
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_possible
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int smp_get_max_cpus(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_cpu_sibling_map
      Src: /src/xen/xen/arch/arm/smpboot.c:311,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/smpboot.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: smp_prepare_cpus
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 1
    functionsReached:
    - setup_cpu_sibling_map
    - panic
    linkageType: ''
    returnType: void
    signature: void smp_prepare_cpus(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/arm/smpboot.c:322,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/arm/smpboot.c:322,1
    - Dst: set_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:324,1
    - Dst: identify_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:326,1
    - Dst: processor_setup
      Src: /src/xen/xen/arch/arm/smpboot.c:327,1
    - Dst: init_traps
      Src: /src/xen/xen/arch/arm/smpboot.c:329,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:342,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:345,1
    - Dst: stop_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:347,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:351,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:354,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/arm/smpboot.c:356,1
    - Dst: read_dcache_line_bytes
      Src: /src/xen/xen/arch/arm/smpboot.c:360,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:362,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:363,1
    - Dst: read_dcache_line_bytes
      Src: /src/xen/xen/arch/arm/smpboot.c:363,1
    - Dst: stop_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:365,1
    - Dst: update_system_features
      Src: /src/xen/xen/arch/arm/smpboot.c:373,1
    - Dst: gic_init_secondary_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:375,1
    - Dst: set_current
      Src: /src/xen/xen/arch/arm/smpboot.c:377,1
    - Dst: notify_cpu_starting
      Src: /src/xen/xen/arch/arm/smpboot.c:380,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/arm/smpboot.c:385,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:388,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/smpboot.c:390,1
    - Dst: init_maintenance_interrupt
      Src: /src/xen/xen/arch/arm/smpboot.c:397,1
    - Dst: init_timer_interrupt
      Src: /src/xen/xen/arch/arm/smpboot.c:398,1
    - Dst: init_tee_secondary
      Src: /src/xen/xen/arch/arm/smpboot.c:399,1
    - Dst: local_abort_enable
      Src: /src/xen/xen/arch/arm/smpboot.c:401,1
    - Dst: check_local_cpu_errata
      Src: /src/xen/xen/arch/arm/smpboot.c:403,1
    - Dst: check_local_cpu_features
      Src: /src/xen/xen/arch/arm/smpboot.c:404,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:406,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:406,1
    - Dst: startup_cpu_idle_loop
      Src: /src/xen/xen/arch/arm/smpboot.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 409
    functionName: start_secondary
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - local_irq_enable
    - add_taint
    - local_abort_enable
    - identify_cpu
    - set_processor_id
    - smp_processor_id
    - check_local_cpu_features
    - processor_setup
    - printk
    - check_local_cpu_errata
    - init_maintenance_interrupt
    - startup_cpu_idle_loop
    - init_tee_secondary
    - gic_init_secondary_cpu
    - notify_cpu_starting
    - smp_wmb
    - init_traps
    - memset
    - stop_cpu
    - init_timer_interrupt
    - read_dcache_line_bytes
    - set_current
    - cpumask_set_cpu
    - update_system_features
    linkageType: ''
    returnType: void
    signature: void start_secondary(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/smpboot.c:414,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/smpboot.c:416,1
    - Dst: gic_disable_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:417,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/smpboot.c:419,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/smpboot.c:420,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/smpboot.c:421,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:424,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/smpboot.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 430
    functionName: __cpu_disable
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - mdelay
    - local_irq_enable
    - smp_processor_id
    - gic_disable_cpu
    - local_irq_disable
    - cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void __cpu_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/smpboot.c:434,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/smpboot.c:437,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/smpboot.c:438,1
    - Dst: call_psci_cpu_off
      Src: /src/xen/xen/arch/arm/smpboot.c:439,1
    - Dst: wfi
      Src: /src/xen/xen/arch/arm/smpboot.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: stop_cpu
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 2
    functionsReached:
    - call_psci_cpu_off
    - local_irq_disable
    - wfi
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void stop_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/smpboot.c:451,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/smpboot.c:451,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/arm/smpboot.c:453,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/smpboot.c:461,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/smpboot.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mpidr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 465
    functionName: set_smp_up_cpu
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - virt_to_mfn
    - clean_dcache_va_range
    - PAGE_OFFSET
    linkageType: ''
    returnType: void
    signature: void set_smp_up_cpu(unsigned long mpidr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_SGI_allbutself
      Src: /src/xen/xen/arch/arm/smpboot.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 475
    functionName: cpu_up_send_sgi
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - send_SGI_allbutself
    linkageType: ''
    returnType: int
    signature: int cpu_up_send_sgi(int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:483,1
    - Dst: prepare_secondary_mm
      Src: /src/xen/xen/arch/arm/smpboot.c:485,1
    - Dst: console_start_sync
      Src: /src/xen/xen/arch/arm/smpboot.c:489,1
    - Dst: set_smp_up_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:498,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/smpboot.c:498,1
    - Dst: arch_cpu_up
      Src: /src/xen/xen/arch/arm/smpboot.c:500,1
    - Dst: console_end_sync
      Src: /src/xen/xen/arch/arm/smpboot.c:502,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:506,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/smpboot.c:510,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/smpboot.c:510,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/arm/smpboot.c:512,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/smpboot.c:512,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/smpboot.c:514,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/arm/smpboot.c:515,1
    - Dst: smp_rmb
      Src: /src/xen/xen/arch/arm/smpboot.c:521,1
    - Dst: set_smp_up_cpu
      Src: /src/xen/xen/arch/arm/smpboot.c:535,1
    - Dst: arch_cpu_up_finish
      Src: /src/xen/xen/arch/arm/smpboot.c:537,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/arm/smpboot.c:539,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 546
    functionName: __cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - prepare_secondary_mm
    - console_start_sync
    - cpu_relax
    - console_end_sync
    - cpu_logical_map
    - arch_cpu_up
    - smp_rmb
    - process_pending_softirqs
    - printk
    - MILLISECS
    - arch_cpu_up_finish
    - set_smp_up_cpu
    - NOW
    linkageType: ''
    returnType: int
    signature: int __cpu_up(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/smpboot.c:555,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/smpboot.c:556,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/arch/arm/smpboot.c:557,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:559,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/smpboot.c:560,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/smpboot.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 564
    functionName: __cpu_die
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - cpu_relax
    - mdelay
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: void
    signature: void __cpu_die(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_cpu_sibling_map
      Src: /src/xen/xen/arch/arm/smpboot.c:576,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/smpboot.c:578,1
    - Dst: remove_cpu_sibling_map
      Src: /src/xen/xen/arch/arm/smpboot.c:585,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/arch/arm/smpboot.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 592
    functionName: cpu_smpboot_callback
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - setup_cpu_sibling_map
    - notifier_from_errno
    - remove_cpu_sibling_map
    - printk
    linkageType: ''
    returnType: int
    signature: "int cpu_smpboot_callback(struct notifier_block *nfb,\n                                unsigned
      long action,\n                                void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/smpboot.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: cpu_smpboot_notifier_init
    functionSourceFile: /src/xen/xen/arch/arm/smpboot.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpu_smpboot_notifier_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/io.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: unmapped_read
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - GENMASK
    linkageType: ''
    returnType: int
    signature: "int unmapped_read(struct vcpu *v, mmio_info_t *info, register_t *r,\n
      \                        void *priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: unmapped_write
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int unmapped_write(struct vcpu *v, mmio_info_t *info, register_t r,\n
      \                         void *priv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/io.c:55,1
    - Dst: struct mmio_handler*::ops::read
      Src: /src/xen/xen/arch/arm/io.c:63,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/io.c:66,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/io.c:66,1
    - Dst: sign_extend
      Src: /src/xen/xen/arch/arm/io.c:68,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/io.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - handler
    - v
    - info
    argTypes:
    - struct mmio_handler*
    - struct vcpu*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: handle_read
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - struct mmio_handler*::ops::read
    - GENMASK
    - set_user_reg
    - sign_extend
    - ASSERT
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state handle_read(const struct mmio_handler *handler,\n                                 struct
      vcpu *v,\n                                 mmio_info_t *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/io.c:80,1
    - Dst: struct mmio_handler*::ops::write
      Src: /src/xen/xen/arch/arm/io.c:83,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/io.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handler
    - v
    - info
    argTypes:
    - struct mmio_handler*
    - struct vcpu*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: handle_write
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - struct mmio_handler*::ops::write
    - guest_cpu_user_regs
    - get_user_reg
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state handle_write(const struct mmio_handler *handler,\n                                  struct
      vcpu *v,\n                                  mmio_info_t *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - elem
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: cmp_mmio_handler
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_mmio_handler(const void *key, const void *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/xen/xen/arch/arm/io.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: swap_mmio_handler
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void swap_mmio_handler(void *_a, void *_b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/io.c:117,1
    - Dst: bsearch
      Src: /src/xen/xen/arch/arm/io.c:118,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/io.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - gpa
    argTypes:
    - struct domain*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: find_mmio_handler
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - bsearch
    - read_lock
    - read_unlock
    linkageType: ''
    returnType: struct mmio_handler
    signature: "struct mmio_handler *find_mmio_handler(struct domain *d,\n                                                    paddr_t
      gpa)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_workaround_766422
      Src: /src/xen/xen/arch/arm/io.c:138,1
    - Dst: decode_instruction
      Src: /src/xen/xen/arch/arm/io.c:141,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/io.c:144,1
    - Dst: decode_instruction
      Src: /src/xen/xen/arch/arm/io.c:178,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/io.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - regs
    - info
    argTypes:
    - struct cpu_user_regs*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 184
    functionName: try_decode_instruction
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - gprintk
    - decode_instruction
    - check_workaround_766422
    linkageType: ''
    returnType: void
    signature: "void try_decode_instruction(const struct cpu_user_regs *regs,\n                            mmio_info_t
      *info)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/io.c:193,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/io.c:197,1
    - Dst: find_mmio_handler
      Src: /src/xen/xen/arch/arm/io.c:201,1
    - Dst: try_fwd_ioserv
      Src: /src/xen/xen/arch/arm/io.c:206,1
    - Dst: handle_ioserv
      Src: /src/xen/xen/arch/arm/io.c:208,1
    - Dst: handle_write
      Src: /src/xen/xen/arch/arm/io.c:231,1
    - Dst: handle_read
      Src: /src/xen/xen/arch/arm/io.c:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - regs
    - info
    argTypes:
    - struct cpu_user_regs*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 234
    functionName: try_handle_mmio
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 0
    functionsReached:
    - handle_ioserv
    - handle_write
    - ASSERT
    - handle_read
    - try_fwd_ioserv
    - ASSERT_UNREACHABLE
    - find_mmio_handler
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state try_handle_mmio(struct cpu_user_regs *regs,\n                              mmio_info_t
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/io.c:243,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/io.c:245,1
    - Dst: sort
      Src: /src/xen/xen/arch/arm/io.c:257,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/io.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - d
    - ops
    - addr
    - size
    - priv
    argTypes:
    - struct domain*
    - struct mmio_handler_ops*
    - paddr_t
    - paddr_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 261
    functionName: register_mmio_handler
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 7
    functionsReached:
    - sort
    - BUG_ON
    - write_lock
    - write_unlock
    linkageType: ''
    returnType: void
    signature: "void register_mmio_handler(struct domain *d,\n                           const
      struct mmio_handler_ops *ops,\n                           paddr_t addr, paddr_t
      size, void *priv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/arm/io.c:265,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/io.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - max_count
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: domain_io_init
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 1
    functionsReached:
    - rwlock_init
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int domain_io_init(struct domain *d, unsigned int max_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/io.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: domain_io_free
    functionSourceFile: /src/xen/xen/arch/arm/io.c
    functionUses: 1
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void domain_io_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/mm.c:34,1
    - Dst: init_pdx
      Src: /src/xen/xen/arch/arm/mm.c:40,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/mm.c:48,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/mm.c:49,1
    - Dst: populate_boot_allocator
      Src: /src/xen/xen/arch/arm/mm.c:61,1
    - Dst: setup_mm_helper
      Src: /src/xen/xen/arch/arm/mm.c:63,1
    - Dst: setup_frametable_mappings
      Src: /src/xen/xen/arch/arm/mm.c:65,1
    - Dst: init_staticmem_pages
      Src: /src/xen/xen/arch/arm/mm.c:67,1
    - Dst: init_sharedmem_pages
      Src: /src/xen/xen/arch/arm/mm.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: setup_mm
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 1
    functionsReached:
    - max
    - init_staticmem_pages
    - init_sharedmem_pages
    - populate_boot_allocator
    - setup_frametable_mappings
    - init_pdx
    - bootinfo_get_mem
    - min
    - setup_mm_helper
    linkageType: ''
    returnType: void
    signature: void setup_mm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_RO_MASK
      Src: /src/xen/xen/arch/arm/mm.c:80,1
    - Dst: PAGE_XN_MASK
      Src: /src/xen/xen/arch/arm/mm.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: flags_has_rwx
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - PAGE_XN_MASK
    - PAGE_RO_MASK
    linkageType: ''
    returnType: bool
    signature: bool flags_has_rwx(unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mm.c:89,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/mm.c:89,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/mm.c:91,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mm.c:92,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/arm/mm.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mfn
    - sync_icache
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: flush_page_to_ram
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - _mfn
    - invalidate_icache
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void flush_page_to_ram(unsigned long mfn, bool sync_icache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - page
    - memflags
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: steal_page
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int steal_page(\n    struct domain *d, struct page_info *page, unsigned
      int memflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: page_is_offlinable
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool page_is_offlinable(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mm.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: domain_get_maximum_gpfn
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 3
    functionsReached:
    - gfn_x
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long domain_get_maximum_gpfn(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/arm/mm.c:125,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/arch/arm/mm.c:128,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/arm/mm.c:144,1
    - Dst: page_set_owner
      Src: /src/xen/xen/arch/arm/mm.c:146,1
    - Dst: smp_wmb
      Src: /src/xen/xen/arch/arm/mm.c:147,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mm.c:148,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mm.c:154,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/arch/arm/mm.c:155,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/arm/mm.c:156,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/arch/arm/mm.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - page
    - d
    - flags
    argTypes:
    - struct page_info*
    - struct domain*
    - enum XENSHARE_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 160
    functionName: share_xen_page_with_guest
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 4
    functionsReached:
    - get_knownalive_domain
    - page_list_add_tail
    - MASK_INSR
    - nrspin_unlock
    - page_get_owner
    - smp_wmb
    - ASSERT
    - page_set_owner
    - nrspin_lock
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void share_xen_page_with_guest(struct page_info *page, struct domain
      *d,\n                               enum XENSHARE_flags flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_map_frame
      Src: /src/xen/xen/arch/arm/mm.c:177,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mm.c:182,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mm.c:190,1
    - Dst: get_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:199,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:205,1
    - Dst: xsm_map_gmfn_foreign
      Src: /src/xen/xen/arch/arm/mm.c:209,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:212,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/mm.c:218,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:221,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/mm.c:225,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/mm.c:229,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:230,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mm.c:234,1
    - Dst: put_pg_owner
      Src: /src/xen/xen/arch/arm/mm.c:236,1
    - Dst: map_dev_mmio_page
      Src: /src/xen/xen/arch/arm/mm.c:240,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/mm.c:240,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/mm.c:254,1
    - Dst: is_xen_heap_mfn
      Src: /src/xen/xen/arch/arm/mm.c:254,1
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/arch/arm/mm.c:255,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mm.c:258,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mm.c:260,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/mm.c:261,1
    - Dst: page_get_xenheap_gfn
      Src: /src/xen/xen/arch/arm/mm.c:261,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mm.c:261,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/arm/mm.c:263,1
    - Dst: page_set_xenheap_gfn
      Src: /src/xen/xen/arch/arm/mm.c:265,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mm.c:265,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mm.c:276,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mm.c:286,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/mm.c:287,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 5
    argNames:
    - d
    - space
    - extra
    - idx
    - gfn
    argTypes:
    - struct domain*
    - unsigned int
    - union add_to_physmap_extra
    - unsigned long
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 291
    functionName: xenmem_add_to_physmap_one
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - mfn_to_page
    - page_set_xenheap_gfn
    - map_dev_mmio_page
    - p2m_write_lock
    - page_to_mfn
    - p2m_set_entry
    - get_pg_owner
    - put_pg_owner
    - get_page_from_gfn
    - xsm_map_gmfn_foreign
    - page_get_xenheap_gfn
    - _mfn
    - p2m_write_unlock
    - ASSERT
    - p2m_get_hostp2m
    - guest_physmap_add_entry
    - p2m_is_ram
    - is_xen_heap_mfn
    - gfn_eq
    - put_page
    - gnttab_map_frame
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap_one(\n    struct domain *d,\n    unsigned
      int space,\n    union add_to_physmap_extra extra,\n    unsigned long idx,\n
      \   gfn_t gfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/mm.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: arch_memory_op
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 2
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: long
    signature: long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/mm.c:319,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mm.c:329,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/arm/mm.c:332,1
    - Dst: page_get_owner
      Src: /src/xen/xen/arch/arm/mm.c:334,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mm.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - page
    - nr
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 338
    functionName: page_get_owner_and_nr_reference
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - page_get_owner
    - ASSERT
    - ASSERT_UNREACHABLE
    - unlikely
    - cmpxchg
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *page_get_owner_and_nr_reference(struct page_info *page,\n
      \                                                     unsigned long nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner_and_nr_reference
      Src: /src/xen/xen/arch/arm/mm.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 343
    functionName: page_get_owner_and_reference
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 11
    functionsReached:
    - page_get_owner_and_nr_reference
    linkageType: ''
    returnType: struct domain
    signature: struct domain *page_get_owner_and_reference(struct page_info *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mm.c:350,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mm.c:354,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/arm/mm.c:354,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mm.c:356,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mm.c:358,1
    - Dst: free_domstatic_page
      Src: /src/xen/xen/arch/arm/mm.c:359,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/mm.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - page
    - nr
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: put_page_nr
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - free_domstatic_page
    - ASSERT
    - unlikely
    - free_domheap_page
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void put_page_nr(struct page_info *page, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page_nr
      Src: /src/xen/xen/arch/arm/mm.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: put_page
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 91
    functionsReached:
    - put_page_nr
    linkageType: ''
    returnType: void
    signature: void put_page(struct page_info *page)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner_and_nr_reference
      Src: /src/xen/xen/arch/arm/mm.c:373,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/mm.c:375,1
    - Dst: put_page_nr
      Src: /src/xen/xen/arch/arm/mm.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - page
    - domain
    - nr
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 382
    functionName: get_page_nr
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - page_get_owner_and_nr_reference
    - put_page_nr
    - likely
    linkageType: ''
    returnType: bool
    signature: "bool get_page_nr(struct page_info *page, const struct domain *domain,\n
      \                unsigned long nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_page_nr
      Src: /src/xen/xen/arch/arm/mm.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - domain
    argTypes:
    - struct page_info*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: get_page
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 42
    functionsReached:
    - get_page_nr
    linkageType: ''
    returnType: bool
    signature: bool get_page(struct page_info *page, const struct domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - type
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: get_page_type
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_page_type(struct page_info *page, unsigned long type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: put_page_type
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void put_page_type(struct page_info *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/arch/arm/mm.c:414,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mm.c:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - gpaddr
    - frame
    - flags
    - cache_flags
    argTypes:
    - uint64_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: create_grant_host_mapping
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - gaddr_to_gfn
    - guest_physmap_add_entry
    linkageType: ''
    returnType: int
    signature: "int create_grant_host_mapping(uint64_t gpaddr, mfn_t frame,\n                              unsigned
      int flags, unsigned int cache_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mm.c:426,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/arch/arm/mm.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - gpaddr
    - frame
    - new_gpaddr
    - flags
    argTypes:
    - uint64_t
    - mfn_t
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 436
    functionName: replace_grant_host_mapping
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 0
    functionsReached:
    - gaddr_to_gfn
    - guest_physmap_remove_page
    linkageType: ''
    returnType: int
    signature: "int replace_grant_host_mapping(uint64_t gpaddr, mfn_t frame,\n                               uint64_t
      new_gpaddr, unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/mm.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: is_iomem_page
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 3
    functionsReached:
    - mfn_valid
    linkageType: ''
    returnType: bool
    signature: bool is_iomem_page(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/mm.c:445,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/mm.c:447,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mm.c:448,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mm.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 450
    functionName: clear_and_clean_page
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 2
    functionsReached:
    - __map_domain_page
    - clear_page
    - unmap_domain_page
    - clean_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void clear_and_clean_page(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: get_upper_mfn_bound
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_upper_mfn_bound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/arm/mm.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pa
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: ioremap
    functionSourceFile: /src/xen/xen/arch/arm/mm.c
    functionUses: 6
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap(paddr_t pa, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: arch_get_domain_info
    functionSourceFile: /src/xen/xen/arch/arm/domctl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void arch_get_domain_info(const struct domain *d,\n                          struct
      xen_domctl_getdomaininfo *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/domctl.c:36,1
    - Dst: domain_vpl011_init
      Src: /src/xen/xen/arch/arm/domctl.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - d
    - vuart_op
    argTypes:
    - struct domain*
    - struct xen_domctl_vuart_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: handle_vuart_init
    functionSourceFile: /src/xen/xen/arch/arm/domctl.c
    functionUses: 0
    functionsReached:
    - _gfn
    - domain_vpl011_init
    linkageType: ''
    returnType: int
    signature: "int handle_vuart_init(struct domain *d, \n                             struct
      xen_domctl_vuart_op *vuart_op)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/domctl.c:59,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/domctl.c:60,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/domctl.c:66,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/domctl.c:66,1
    - Dst: p2m_cache_flush_range
      Src: /src/xen/xen/arch/arm/domctl.c:71,1
    - Dst: xsm_map_domain_irq
      Src: /src/xen/xen/arch/arm/domctl.c:102,1
    - Dst: xsm_bind_pt_irq
      Src: /src/xen/xen/arch/arm/domctl.c:106,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/arm/domctl.c:110,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/domctl.c:113,1
    - Dst: route_irq_to_guest
      Src: /src/xen/xen/arch/arm/domctl.c:116,1
    - Dst: vgic_free_virq
      Src: /src/xen/xen/arch/arm/domctl.c:118,1
    - Dst: xsm_unbind_pt_irq
      Src: /src/xen/xen/arch/arm/domctl.c:137,1
    - Dst: irq_access_permitted
      Src: /src/xen/xen/arch/arm/domctl.c:141,1
    - Dst: release_guest_irq
      Src: /src/xen/xen/arch/arm/domctl.c:144,1
    - Dst: vgic_free_virq
      Src: /src/xen/xen/arch/arm/domctl.c:148,1
    - Dst: handle_vuart_init
      Src: /src/xen/xen/arch/arm/domctl.c:167,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/arm/domctl.c:175,1
    - Dst: dt_overlay_domctl
      Src: /src/xen/xen/arch/arm/domctl.c:181,1
    - Dst: subarch_do_domctl
      Src: /src/xen/xen/arch/arm/domctl.c:183,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 185
    functionName: arch_do_domctl
    functionSourceFile: /src/xen/xen/arch/arm/domctl.c
    functionUses: 1
    functionsReached:
    - xsm_unbind_pt_irq
    - dt_overlay_domctl
    - gfn_add
    - _gfn
    - vgic_reserve_virq
    - irq_access_permitted
    - gfn_x
    - xsm_bind_pt_irq
    - release_guest_irq
    - subarch_do_domctl
    - vgic_free_virq
    - handle_vuart_init
    - copy_to_guest
    - route_irq_to_guest
    - xsm_map_domain_irq
    - p2m_cache_flush_range
    linkageType: ''
    returnType: long
    signature: "long arch_do_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \                   XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_regs_hyp_to_user
      Src: /src/xen/xen/arch/arm/domctl.c:192,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/domctl.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - struct vcpu*
    - vcpu_guest_context_u
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: arch_get_info_guest
    functionSourceFile: /src/xen/xen/arch/arm/domctl.c
    functionUses: 0
    functionsReached:
    - test_bit
    - vcpu_regs_hyp_to_user
    linkageType: ''
    returnType: void
    signature: void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/guest_atomics.c:20,1
    - Dst: MICROSECS
      Src: /src/xen/xen/arch/arm/guest_atomics.c:20,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/guest_atomics.c:40,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/guest_atomics.c:42,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/guest_atomics.c:44,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/guest_atomics.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: calibrate_safe_atomic
    functionSourceFile: /src/xen/xen/arch/arm/guest_atomics.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - MICROSECS
    - printk
    - this_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void calibrate_safe_atomic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calibrate_safe_atomic
      Src: /src/xen/xen/arch/arm/guest_atomics.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 57
    functionName: cpu_guest_safe_atomic_callback
    functionSourceFile: /src/xen/xen/arch/arm/guest_atomics.c
    functionUses: 0
    functionsReached:
    - calibrate_safe_atomic
    linkageType: ''
    returnType: int
    signature: "int cpu_guest_safe_atomic_callback(struct notifier_block *nfb,\n                                          unsigned
      long action,\n                                          void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/guest_atomics.c:65,1
    - Dst: calibrate_safe_atomic
      Src: /src/xen/xen/arch/arm/guest_atomics.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: guest_safe_atomic_init
    functionSourceFile: /src/xen/xen/arch/arm/guest_atomics.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - calibrate_safe_atomic
    linkageType: ''
    returnType: int
    signature: int guest_safe_atomic_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/vm_event.c:15,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/vm_event.c:19,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/vm_event.c:20,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/vm_event.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - req
    argTypes:
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: vm_event_fill_regs
    functionSourceFile: /src/xen/xen/arch/arm/vm_event.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - READ_SYSREG
    - READ_SYSREG64
    linkageType: ''
    returnType: void
    signature: void vm_event_fill_regs(vm_event_request_t *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vm_event.c:29,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/vm_event.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: vm_event_set_registers
    functionSourceFile: /src/xen/xen/arch/arm/vm_event.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void vm_event_set_registers(struct vcpu *v, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: vm_event_monitor_next_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/vm_event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_monitor_next_interrupt(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/ioreq.c:21,1
    - Dst: sign_extend
      Src: /src/xen/xen/arch/arm/ioreq.c:37,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/ioreq.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - regs
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: handle_ioserv
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 1
    functionsReached:
    - set_user_reg
    - GENMASK_ULL
    - sign_extend
    linkageType: ''
    returnType: enum io_state
    signature: enum io_state handle_ioserv(struct cpu_user_regs *regs, struct vcpu
      *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/ioreq.c:51,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/ioreq.c:71,1
    - Dst: ioreq_server_select
      Src: /src/xen/xen/arch/arm/ioreq.c:80,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/ioreq.c:91,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/ioreq.c:99,1
    - Dst: ioreq_send
      Src: /src/xen/xen/arch/arm/ioreq.c:104,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/arch/arm/ioreq.c:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - regs
    - v
    - info
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 113
    functionName: try_fwd_ioserv
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - ioreq_server_select
    - GENMASK_ULL
    - get_user_reg
    - ASSERT
    - ioreq_needs_completion
    - ioreq_send
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state try_fwd_ioserv(struct cpu_user_regs *regs,\n                             struct
      vcpu *v, mmio_info_t *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/ioreq.c:119,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/ioreq.c:124,1
    - Dst: handle_ioserv
      Src: /src/xen/xen/arch/arm/ioreq.c:128,1
    - Dst: finalize_instr_emulation
      Src: /src/xen/xen/arch/arm/ioreq.c:130,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/ioreq.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: arch_ioreq_complete_mmio
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - guest_cpu_user_regs
    - handle_ioserv
    - ASSERT_UNREACHABLE
    - finalize_instr_emulation
    linkageType: ''
    returnType: bool
    signature: bool arch_ioreq_complete_mmio(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: arch_ioreq_server_map_pages
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_ioreq_server_map_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: arch_ioreq_server_unmap_pages
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_unmap_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: arch_ioreq_server_enable
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_enable(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: arch_ioreq_server_disable
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_disable(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: arch_ioreq_server_destroy
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_server_destroy(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - s
    - flags
    argTypes:
    - struct domain*
    - struct ioreq_server*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: arch_ioreq_server_map_mem_type
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arch_ioreq_server_map_mem_type(struct domain *d,\n                                   struct
      ioreq_server *s,\n                                   uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - d
    - s
    - flags
    argTypes:
    - struct domain*
    - struct ioreq_server*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: arch_ioreq_server_map_mem_type_completed
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void arch_ioreq_server_map_mem_type_completed(struct domain *d,\n
      \                                             struct ioreq_server *s,\n                                              uint32_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: arch_ioreq_server_destroy_all
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_ioreq_server_destroy_all(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - d
    - p
    - type
    - addr
    argTypes:
    - struct domain*
    - ioreq_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 198
    functionName: arch_ioreq_server_get_type_addr
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arch_ioreq_server_get_type_addr(const struct domain *d,\n                                     const
      ioreq_t *p,\n                                     uint8_t *type,\n                                     uint64_t
      *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: arch_ioreq_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_ioreq_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hw_its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: gicv3_its_enable_quirk_gen4
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gicv3_its_enable_quirk_gen4(struct host_its *hw_its)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iidr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: gicv3_its_find_quirk
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct its_quirk
    signature: struct its_quirk * gicv3_its_find_quirk(uint32_t iidr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:102,1
    - Dst: gicv3_its_find_quirk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:103,1
    - Dst: struct its_quirk*::init
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:105,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - hw_its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: gicv3_its_enable_quirks
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_find_quirk
    - readl_relaxed
    - struct its_quirk*::init
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv3_its_enable_quirks(struct host_its *hw_its)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:114,1
    - Dst: list_first_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:117,1
    - Dst: gicv3_its_find_quirk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:118,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:118,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:120,1
    - Dst: gicv3_its_find_quirk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:122,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:122,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: gicv3_its_validate_quirks
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - list_first_entry
    - BUG_ON
    - readl_relaxed
    - gicv3_its_find_quirk
    - list_empty
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void gicv3_its_validate_quirks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: gicv3_its_get_cacheability
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gicv3_its_get_cacheability(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: gicv3_its_get_shareability
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gicv3_its_get_shareability(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEMF_bits
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: gicv3_its_get_memflags
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 2
    functionsReached:
    - MEMF_bits
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_its_get_memflags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: gicv3_its_host_has_its
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 1
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool gicv3_its_host_has_its(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:171,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:171,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:176,1
    - Dst: in_irq
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:176,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:178,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:181,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:182,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:194,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:195,1
    - Dst: udelay
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:196,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:197,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:198,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:202,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:203,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:204,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:208,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:210,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:213,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:216,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - hw_its
    - its_cmd
    argTypes:
    - struct host_its*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 221
    functionName: its_send_command
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpu_relax
    - readq_relaxed
    - spin_lock
    - ASSERT
    - printk_ratelimit
    - dsb
    - printk
    - in_irq
    - writeq_relaxed
    - MILLISECS
    - udelay
    - memcpy
    - clean_and_invalidate_dcache_va_range
    - NOW
    linkageType: ''
    returnType: int
    signature: int its_send_command(struct host_its *hw_its, const void *its_cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:232,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:232,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:236,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:237,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:238,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:239,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:244,1
    - Dst: udelay
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:245,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - hw_its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 249
    functionName: gicv3_its_wait_commands
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpu_relax
    - readq_relaxed
    - spin_lock
    - MILLISECS
    - udelay
    - NOW
    linkageType: ''
    returnType: int
    signature: int gicv3_its_wait_commands(struct host_its *hw_its)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:254,1
    - Dst: gicv3_get_redist_address
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hw_its
    - cpu
    - reg
    argTypes:
    - struct host_its*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: encode_rdbase
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - gicv3_get_redist_address
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t encode_rdbase(struct host_its *hw_its, unsigned int cpu,\n
      \                             uint64_t reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_rdbase
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:267,1
    - Dst: its_send_command
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - its
    - cpu
    argTypes:
    - struct host_its*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: its_send_cmd_sync
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - encode_rdbase
    - its_send_command
    linkageType: ''
    returnType: int
    signature: int its_send_cmd_sync(struct host_its *its, unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: its_send_command
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - its
    - deviceid
    - eventid
    - pintid
    - icid
    argTypes:
    - struct host_its*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: its_send_cmd_mapti
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_send_command
    linkageType: ''
    returnType: int
    signature: "int its_send_cmd_mapti(struct host_its *its,\n                              uint32_t
      deviceid, uint32_t eventid,\n                              uint32_t pintid,
      uint16_t icid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_rdbase
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:294,1
    - Dst: its_send_command
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - its
    - collection_id
    - cpu
    argTypes:
    - struct host_its*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: its_send_cmd_mapc
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - encode_rdbase
    - its_send_command
    linkageType: ''
    returnType: int
    signature: "int its_send_cmd_mapc(struct host_its *its, uint32_t collection_id,\n
      \                            unsigned int cpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:308,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:309,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:310,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:310,1
    - Dst: its_send_command
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - its
    - deviceid
    - size_bits
    - itt_addr
    - valid
    argTypes:
    - struct host_its*
    - uint32_t
    - uint8_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 323
    functionName: its_send_cmd_mapd
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - ASSERT
    - its_send_command
    linkageType: ''
    returnType: int
    signature: "int its_send_cmd_mapd(struct host_its *its, uint32_t deviceid,\n                             uint8_t
      size_bits, paddr_t itt_addr, bool valid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: its_send_command
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - its
    - deviceid
    - eventid
    argTypes:
    - struct host_its*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: its_send_cmd_inv
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_send_command
    linkageType: ''
    returnType: int
    signature: "int its_send_cmd_inv(struct host_its *its,\n                            uint32_t
      deviceid, uint32_t eventid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:344,1
    - Dst: its_send_cmd_mapc
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:346,1
    - Dst: its_send_cmd_sync
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:350,1
    - Dst: gicv3_its_wait_commands
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 360
    functionName: gicv3_its_setup_collection
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_send_cmd_mapc
    - gicv3_its_wait_commands
    - its_send_cmd_sync
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int gicv3_its_setup_collection(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:371,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vaddr
    - page_bits
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: check_baser_phys_addr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - virt_to_maddr
    linkageType: ''
    returnType: bool
    signature: bool check_baser_phys_addr(void *vaddr, unsigned int page_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:378,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - page_bits
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 385
    functionName: encode_baser_phys_addr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t encode_baser_phys_addr(paddr_t addr, unsigned int page_bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_its_get_shareability
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:394,1
    - Dst: gicv3_its_get_cacheability
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:396,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:398,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:398,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:399,1
    - Dst: gicv3_its_get_memflags
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:399,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:403,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:405,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:405,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:407,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:411,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:413,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:414,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:420,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 434
    functionName: its_map_cbaser
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_get_cacheability
    - get_order_from_bytes
    - max
    - GENMASK
    - readq_relaxed
    - gicv3_its_get_shareability
    - virt_to_maddr
    - alloc_xenheap_pages
    - writeq_relaxed
    - printk
    - free_xenheap_pages
    - memset
    - gicv3_its_get_memflags
    linkageType: ''
    returnType: void
    signature: void *its_map_cbaser(struct host_its *its)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: BASER_PAGE_BITS
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASER_PAGE_BITS(sz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GITS_BASER_ENTRY_SIZE
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:443,1
    - Dst: gicv3_its_get_shareability
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:449,1
    - Dst: gicv3_its_get_cacheability
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:451,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:459,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:460,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:460,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:462,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:462,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:464,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:464,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:464,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:464,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:465,1
    - Dst: gicv3_its_get_memflags
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:465,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:469,1
    - Dst: check_baser_phys_addr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:471,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:471,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:473,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:479,1
    - Dst: encode_baser_phys_addr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:482,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:482,1
    - Dst: BASER_PAGE_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:483,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:485,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:486,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:495,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:500,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - basereg
    - regc
    - nr_items
    argTypes:
    - void*
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 513
    functionName: its_map_baser
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_get_cacheability
    - ROUNDUP
    - max
    - encode_baser_phys_addr
    - readq_relaxed
    - gicv3_its_get_shareability
    - writeq_relaxed
    - gicv3_its_get_memflags
    - GITS_BASER_ENTRY_SIZE
    - min
    - alloc_xenheap_pages
    - memset
    - get_order_from_bytes
    - BASER_PAGE_BITS
    - BIT
    - virt_to_maddr
    - free_xenheap_pages
    - check_baser_phys_addr
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: "int its_map_baser(void __iomem *basereg, uint64_t regc,\n                         unsigned
      int nr_items)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:528,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:528,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:530,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:534,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:537,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:541,1
    - Dst: udelay
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:542,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:543,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - hw_its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 548
    functionName: gicv3_disable_its
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - writel_relaxed
    - readl_relaxed
    - printk
    - MILLISECS
    - udelay
    - NOW
    linkageType: ''
    returnType: int
    signature: int gicv3_disable_its(struct host_its *hw_its)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:555,1
    - Dst: gicv3_disable_its
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:559,1
    - Dst: gicv3_its_enable_quirks
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:563,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:565,1
    - Dst: GITS_TYPER_DEVICE_ID_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:566,1
    - Dst: GITS_TYPER_EVENT_ID_BITS
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:567,1
    - Dst: GITS_TYPER_ITT_SIZE
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:568,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:571,1
    - Dst: readq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:578,1
    - Dst: its_map_baser
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:585,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:585,1
    - Dst: its_map_baser
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:590,1
    - Dst: num_possible_cpus
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:590,1
    - Dst: its_map_baser
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:596,1
    - Dst: its_map_cbaser
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:605,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:608,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:611,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:612,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - hw_its
    argTypes:
    - struct host_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 615
    functionName: gicv3_its_init_single_its
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_map_baser
    - gicv3_disable_its
    - num_possible_cpus
    - gicv3_its_enable_quirks
    - BIT
    - its_map_cbaser
    - readq_relaxed
    - writel_relaxed
    - ioremap_nocache
    - readl_relaxed
    - writeq_relaxed
    - GITS_TYPER_EVENT_ID_BITS
    - spin_lock_init
    - GITS_TYPER_ITT_SIZE
    - GITS_TYPER_DEVICE_ID_BITS
    linkageType: ''
    returnType: int
    signature: int gicv3_its_init_single_its(struct host_its *hw_its)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: its_send_cmd_mapd
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:628,1
    - Dst: gicv3_free_host_lpi_block
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:631,1
    - Dst: gicv3_its_wait_commands
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:635,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:638,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:639,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:642,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:643,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:644,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:645,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct its_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 648
    functionName: remove_mapped_guest_device
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_wait_commands
    - its_send_cmd_mapd
    - gicv3_free_host_lpi_block
    - printk_ratelimit
    - printk
    - free_xenheap_pages
    - xfree
    linkageType: ''
    returnType: int
    signature: int remove_mapped_guest_device(struct its_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - doorbell_address
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: gicv3_its_find_by_doorbell
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct host_its
    signature: struct host_its *gicv3_its_find_by_doorbell(paddr_t doorbell_address)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - dev
    - vdoorbell
    - vdevid
    argTypes:
    - struct its_device*
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 679
    functionName: compare_its_guest_devices
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int compare_its_guest_devices(struct its_device *dev,\n                                     paddr_t
      vdoorbell, uint32_t vdevid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: its_send_cmd_mapti
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:696,1
    - Dst: its_send_cmd_inv
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:700,1
    - Dst: its_send_cmd_sync
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:707,1
    - Dst: gicv3_its_wait_commands
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - its
    - devid
    - eventid
    - lpi
    - nr_events
    argTypes:
    - struct host_its*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 686
    functionDepth: 4
    functionLinenumber: 686
    functionLinenumberEnd: 712
    functionName: gicv3_its_map_host_events
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_wait_commands
    - its_send_cmd_mapti
    - its_send_cmd_sync
    - its_send_cmd_inv
    linkageType: ''
    returnType: int
    signature: "int gicv3_its_map_host_events(struct host_its *its,\n                                     uint32_t
      devid, uint32_t eventid,\n                                     uint32_t lpi,
      uint32_t nr_events)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_its_find_by_doorbell
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:733,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:738,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:748,1
    - Dst: fls
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:748,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:751,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:755,1
    - Dst: rb_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:761,1
    - Dst: struct its_device::struct its_device
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:761,1
    - Dst: cmp::cmp
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:763,1
    - Dst: compare_its_guest_devices
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:764,1
    - Dst: rb_erase
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:768,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:770,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:774,1
    - Dst: remove_mapped_guest_device
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:779,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:794,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:794,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:795,1
    - Dst: gicv3_its_get_memflags
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:795,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:799,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:801,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:804,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:820,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:824,1
    - Dst: its_send_cmd_mapd
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:828,1
    - Dst: fls
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:828,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:829,1
    - Dst: rb_link_node
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:841,1
    - Dst: rb_insert_color
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:842,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:844,1
    - Dst: gicv3_allocate_host_lpi_block
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:852,1
    - Dst: gicv3_its_map_host_events
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:856,1
    - Dst: gicv3_free_host_lpi_block
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:868,1
    - Dst: its_send_cmd_mapd
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:876,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:884,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:889,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:890,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:893,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:894,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 7
    argNames:
    - d
    - host_doorbell
    - host_devid
    - guest_doorbell
    - guest_devid
    - nr_events
    - valid
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    - paddr_t
    - uint32_t
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 721
    functionDepth: 5
    functionLinenumber: 721
    functionLinenumberEnd: 897
    functionName: gicv3_its_map_guest_device
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - max
    - gicv3_allocate_host_lpi_block
    - spin_lock
    - rb_insert_color
    - cmp::cmp
    - xfree
    - xzalloc
    - gicv3_its_find_by_doorbell
    - gicv3_free_host_lpi_block
    - struct its_device::struct its_device
    - printk
    - gicv3_its_get_memflags
    - fls
    - spin_unlock
    - compare_its_guest_devices
    - gicv3_its_map_host_events
    - alloc_xenheap_pages
    - memset
    - get_order_from_bytes
    - remove_mapped_guest_device
    - BIT
    - rb_entry
    - its_send_cmd_mapd
    - rb_link_node
    - rb_erase
    - xzalloc_array
    - virt_to_maddr
    - free_xenheap_pages
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: "int gicv3_its_map_guest_device(struct domain *d,\n                               paddr_t
      host_doorbell, uint32_t host_devid,\n                               paddr_t
      guest_doorbell, uint32_t guest_devid,\n                               uint64_t
      nr_events, bool valid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:906,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:906,1
    - Dst: rb_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:912,1
    - Dst: compare_its_guest_devices
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - d
    - vdoorbell
    - vdevid
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 925
    functionName: get_its_device
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - rb_entry
    - compare_its_guest_devices
    linkageType: ''
    returnType: struct its_device
    signature: "struct its_device *get_its_device(struct domain *d, paddr_t vdoorbell,\n
      \                                        uint32_t vdevid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:936,1
    - Dst: get_its_device
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:937,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - d
    - vdoorbell_address
    - vdevid
    - eventid
    - host_lpi
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 948
    functionName: get_event_pending_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - get_its_device
    linkageType: ''
    returnType: struct pending_irq
    signature: "struct pending_irq *get_event_pending_irq(struct domain *d,\n                                                 paddr_t
      vdoorbell_address,\n                                                 uint32_t
      vdevid,\n                                                 uint32_t eventid,\n
      \                                                uint32_t *host_lpi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_event_pending_irq
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - vdoorbell_address
    - vdevid
    - eventid
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: gicv3_its_get_event_pending_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - get_event_pending_irq
    linkageType: ''
    returnType: struct pending_irq
    signature: "struct pending_irq *gicv3_its_get_event_pending_irq(struct domain
      *d,\n                                                    paddr_t vdoorbell_address,\n
      \                                                   uint32_t vdevid,\n                                                    uint32_t
      eventid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_event_pending_irq
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:963,1
    - Dst: gicv3_lpi_update_host_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - d
    - vdoorbell_address
    - vdevid
    - eventid
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 973
    functionName: gicv3_remove_guest_event
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_lpi_update_host_entry
    - get_event_pending_irq
    linkageType: ''
    returnType: int
    signature: "int gicv3_remove_guest_event(struct domain *d, paddr_t vdoorbell_address,\n
      \                            uint32_t vdevid, uint32_t eventid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_event_pending_irq
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:991,1
    - Dst: gicv3_lpi_update_host_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - d
    - vdoorbell_address
    - vdevid
    - eventid
    - virt_lpi
    argTypes:
    - struct domain*
    - paddr_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 1000
    functionName: gicv3_assign_guest_event
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_lpi_update_host_entry
    - get_event_pending_irq
    linkageType: ''
    returnType: struct pending_irq
    signature: "struct pending_irq *gicv3_assign_guest_event(struct domain *d,\n                                             paddr_t
      vdoorbell_address,\n                                             uint32_t vdevid,
      uint32_t eventid,\n                                             uint32_t virt_lpi)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1008,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1010,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1011,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1012,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1021
    functionName: gicv3_its_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - paddr_to_pfn
    - iomem_deny_access
    - printk
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int gicv3_its_deny_access(struct domain *d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1038,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1042,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1045,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1046,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1049,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1053,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1057,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1061,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1065,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1069,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1075,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1081,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1084,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1085,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1089,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1093,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1097
    functionName: gicv3_its_make_hwdom_dt_nodes
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - FDT_ERR_XEN
    - fdt_property_string
    - dt_get_property
    - fdt_property_cell
    - printk
    - fdt_property
    - fdt_end_node
    - list_empty
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int gicv3_its_make_hwdom_dt_nodes(const struct domain *d,\n                                  const
      struct dt_device_node *gic,\n                                  void *fdt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1105,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1107,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1113,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - size
    - node
    argTypes:
    - paddr_t
    - paddr_t
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1116
    functionName: add_to_host_its_list
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - panic
    - xzalloc
    - list_add_tail
    - printk
    linkageType: ''
    returnType: void
    signature: "void add_to_host_its_list(paddr_t addr, paddr_t size,\n                                 const
      struct dt_device_node *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1131,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1134,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1135,1
    - Dst: add_to_host_its_list
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1139
    functionName: gicv3_its_dt_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - dt_device_is_compatible
    - panic
    - dt_device_get_paddr
    - add_to_host_its_list
    linkageType: ''
    returnType: void
    signature: void gicv3_its_dt_init(const struct dt_device_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1131,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1134,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1135,1
    - Dst: add_to_host_its_list
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1127
    functionDepth: 2
    functionLinenumber: 1127
    functionLinenumberEnd: 1138
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - dt_device_is_compatible
    - panic
    - dt_device_get_paddr
    - add_to_host_its_list
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(node, its)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1148,1
    - Dst: add_to_host_its_list
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1154
    functionName: gicv3_its_acpi_probe
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_ENTRY
    - add_to_host_its_list
    linkageType: ''
    returnType: int
    signature: "int gicv3_its_acpi_probe(struct acpi_subtable_header *header,\n                                const
      unsigned long end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1161
    functionName: gicv3_its_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - acpi_table_parse_madt
    linkageType: ''
    returnType: void
    signature: void gicv3_its_acpi_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_its_count
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1171,1
    - Dst: acpi_table_get_entry_madt
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1173,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1175,1
    - Dst: vgic_v3_its_count
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - base_ptr
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1180
    functionName: gicv3_its_make_hwdom_madt
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - vgic_v3_its_count
    - memcpy
    - acpi_table_get_entry_madt
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gicv3_its_make_hwdom_madt(const struct domain *d, void
      *base_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1186
    functionName: gicv3_its_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void gicv3_its_acpi_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_its_dt_init
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1196,1
    - Dst: gicv3_its_acpi_init
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1198,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1200,1
    - Dst: gicv3_its_init_single_its
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1202,1
    - Dst: gicv3_its_validate_quirks
      Src: /src/xen/xen/arch/arm/gic-v3-its.c:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1190
    functionDepth: 4
    functionLinenumber: 1190
    functionLinenumberEnd: 1210
    functionName: gicv3_its_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3-its.c
    functionUses: 0
    functionsReached:
    - gicv3_its_dt_init
    - gicv3_its_init_single_its
    - gicv3_its_validate_quirks
    - gicv3_its_acpi_init
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int gicv3_its_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unregister_init_virtual_region
      Src: /src/xen/xen/arch/arm/setup.c:70,1
    - Dst: modify_after_init_mappings
      Src: /src/xen/xen/arch/arm/setup.c:72,1
    - Dst: free_init_memory
      Src: /src/xen/xen/arch/arm/setup.c:74,1
    - Dst: startup_cpu_idle_loop
      Src: /src/xen/xen/arch/arm/setup.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: init_done
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 0
    functionsReached:
    - unregister_init_virtual_region
    - startup_cpu_idle_loop
    - modify_after_init_mappings
    - free_init_memory
    linkageType: ''
    returnType: __used
    signature: __used init_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scheduler_init
      Src: /src/xen/xen/arch/arm/setup.c:81,1
    - Dst: set_current
      Src: /src/xen/xen/arch/arm/setup.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: init_idle_domain
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 1
    functionsReached:
    - set_current
    - scheduler_init
    linkageType: ''
    returnType: void
    signature: void init_idle_domain(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: identify_cpu
      Src: /src/xen/xen/arch/arm/setup.c:103,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/setup.c:106,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:111,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:114,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:119,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:120,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:122,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:127,1
    - Dst: boot_cpu_feature64
      Src: /src/xen/xen/arch/arm/setup.c:134,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:135,1
    - Dst: boot_cpu_feature64
      Src: /src/xen/xen/arch/arm/setup.c:137,1
    - Dst: boot_cpu_feature64
      Src: /src/xen/xen/arch/arm/setup.c:140,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:141,1
    - Dst: boot_cpu_feature64
      Src: /src/xen/xen/arch/arm/setup.c:143,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:145,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:147,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:149,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:151,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:161,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:162,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:164,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:171,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:175,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:177,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:179,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:183,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:191,1
    - Dst: processor_setup
      Src: /src/xen/xen/arch/arm/setup.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 195
    functionName: processor_id
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 188
    functionsReached:
    - ARRAY_SIZE
    - identify_cpu
    - printk
    - processor_setup
    - boot_cpu_feature64
    linkageType: ''
    returnType: void
    signature: void processor_id(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/setup.c:212,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/setup.c:217,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/setup.c:217,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/setup.c:218,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/setup.c:218,1
    - Dst: fw_unreserved_regions
      Src: /src/xen/xen/arch/arm/setup.c:221,1
    - Dst: remove_early_mappings
      Src: /src/xen/xen/arch/arm/setup.c:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 228
    functionName: discard_initial_modules
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 0
    functionsReached:
    - fw_unreserved_regions
    - mfn_valid
    - maddr_to_mfn
    - PAGE_ALIGN
    - remove_early_mappings
    linkageType: ''
    returnType: void
    signature: void discard_initial_modules(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/arm/setup.c:233,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/setup.c:236,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/setup.c:238,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/setup.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dtb_vaddr
    - dtb_size
    argTypes:
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: relocate_fdt
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 1
    functionsReached:
    - xmalloc_bytes
    - panic
    - memcpy
    - clean_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void relocate_fdt(const void **dtb_vaddr, size_t dtb_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/setup.c:246,1
    - Dst: pfn_pdx_add_region
      Src: /src/xen/xen/arch/arm/setup.c:252,1
    - Dst: pfn_pdx_compression_setup
      Src: /src/xen/xen/arch/arm/setup.c:260,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/xen/arch/arm/setup.c:266,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/setup.c:267,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/setup.c:268,1
    - Dst: pfn_pdx_compression_reset
      Src: /src/xen/xen/arch/arm/setup.c:270,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:271,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/setup.c:285,1
    - Dst: set_pdx_range
      Src: /src/xen/xen/arch/arm/setup.c:287,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/setup.c:287,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/setup.c:288,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/setup.c:291,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/arch/arm/setup.c:292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 293
    functionName: init_pdx
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 1
    functionsReached:
    - max
    - pfn_pdx_compression_setup
    - PFN_UP
    - pfn_pdx_compression_reset
    - set_pdx_range
    - pfn_to_pdx
    - paddr_to_pfn
    - pdx_is_region_compressible
    - bootinfo_get_mem
    - pfn_pdx_add_region
    - printk
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void init_pdx(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: boot_stack_chk_guard_setup
      Src: /src/xen/xen/arch/arm/setup.c:306,1
    - Dst: read_dcache_line_bytes
      Src: /src/xen/xen/arch/arm/setup.c:308,1
    - Dst: percpu_init_areas
      Src: /src/xen/xen/arch/arm/setup.c:310,1
    - Dst: set_processor_id
      Src: /src/xen/xen/arch/arm/setup.c:311,1
    - Dst: init_traps
      Src: /src/xen/xen/arch/arm/setup.c:314,1
    - Dst: smp_prepare_boot_cpu
      Src: /src/xen/xen/arch/arm/setup.c:316,1
    - Dst: early_fdt_map
      Src: /src/xen/xen/arch/arm/setup.c:318,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/setup.c:320,1
    - Dst: add_boot_module
      Src: /src/xen/xen/arch/arm/setup.c:326,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/setup.c:327,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/setup.c:329,1
    - Dst: boot_fdt_info
      Src: /src/xen/xen/arch/arm/setup.c:331,1
    - Dst: boot_fdt_cmdline
      Src: /src/xen/xen/arch/arm/setup.c:333,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:334,1
    - Dst: cmdline_parse
      Src: /src/xen/xen/arch/arm/setup.c:335,1
    - Dst: llc_coloring_init
      Src: /src/xen/xen/arch/arm/setup.c:337,1
    - Dst: setup_pagetables
      Src: /src/xen/xen/arch/arm/setup.c:343,1
    - Dst: early_fdt_map
      Src: /src/xen/xen/arch/arm/setup.c:345,1
    - Dst: setup_mm
      Src: /src/xen/xen/arch/arm/setup.c:347,1
    - Dst: vm_init
      Src: /src/xen/xen/arch/arm/setup.c:349,1
    - Dst: acpi_boot_table_init
      Src: /src/xen/xen/arch/arm/setup.c:352,1
    - Dst: end_boot_allocator
      Src: /src/xen/xen/arch/arm/setup.c:354,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:364,1
    - Dst: relocate_fdt
      Src: /src/xen/xen/arch/arm/setup.c:365,1
    - Dst: dt_unflatten_host_device_tree
      Src: /src/xen/xen/arch/arm/setup.c:366,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:370,1
    - Dst: init_IRQ
      Src: /src/xen/xen/arch/arm/setup.c:374,1
    - Dst: platform_init
      Src: /src/xen/xen/arch/arm/setup.c:376,1
    - Dst: preinit_xen_time
      Src: /src/xen/xen/arch/arm/setup.c:378,1
    - Dst: gic_preinit
      Src: /src/xen/xen/arch/arm/setup.c:380,1
    - Dst: uart_init
      Src: /src/xen/xen/arch/arm/setup.c:382,1
    - Dst: console_init_preirq
      Src: /src/xen/xen/arch/arm/setup.c:383,1
    - Dst: console_init_ring
      Src: /src/xen/xen/arch/arm/setup.c:384,1
    - Dst: processor_id
      Src: /src/xen/xen/arch/arm/setup.c:386,1
    - Dst: smp_init_cpus
      Src: /src/xen/xen/arch/arm/setup.c:388,1
    - Dst: smp_get_max_cpus
      Src: /src/xen/xen/arch/arm/setup.c:389,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:390,1
    - Dst: check_local_cpu_errata
      Src: /src/xen/xen/arch/arm/setup.c:396,1
    - Dst: check_local_cpu_features
      Src: /src/xen/xen/arch/arm/setup.c:398,1
    - Dst: init_xen_time
      Src: /src/xen/xen/arch/arm/setup.c:400,1
    - Dst: gic_init
      Src: /src/xen/xen/arch/arm/setup.c:402,1
    - Dst: tasklet_subsys_init
      Src: /src/xen/xen/arch/arm/setup.c:404,1
    - Dst: xsm_dt_init
      Src: /src/xen/xen/arch/arm/setup.c:406,1
    - Dst: warning_add
      Src: /src/xen/xen/arch/arm/setup.c:407,1
    - Dst: init_maintenance_interrupt
      Src: /src/xen/xen/arch/arm/setup.c:412,1
    - Dst: init_timer_interrupt
      Src: /src/xen/xen/arch/arm/setup.c:413,1
    - Dst: timer_init
      Src: /src/xen/xen/arch/arm/setup.c:415,1
    - Dst: init_idle_domain
      Src: /src/xen/xen/arch/arm/setup.c:417,1
    - Dst: rcu_init
      Src: /src/xen/xen/arch/arm/setup.c:419,1
    - Dst: setup_system_domains
      Src: /src/xen/xen/arch/arm/setup.c:421,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/setup.c:423,1
    - Dst: local_abort_enable
      Src: /src/xen/xen/arch/arm/setup.c:424,1
    - Dst: smp_prepare_cpus
      Src: /src/xen/xen/arch/arm/setup.c:426,1
    - Dst: initialize_keytable
      Src: /src/xen/xen/arch/arm/setup.c:428,1
    - Dst: console_init_postirq
      Src: /src/xen/xen/arch/arm/setup.c:430,1
    - Dst: do_presmp_initcalls
      Src: /src/xen/xen/arch/arm/setup.c:432,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/arm/setup.c:436,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/arm/setup.c:436,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/arm/setup.c:438,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:440,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:444,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/arm/setup.c:444,1
    - Dst: iommu_setup
      Src: /src/xen/xen/arch/arm/setup.c:455,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/setup.c:457,1
    - Dst: setup_virt_paging
      Src: /src/xen/xen/arch/arm/setup.c:459,1
    - Dst: do_initcalls
      Src: /src/xen/xen/arch/arm/setup.c:461,1
    - Dst: apply_alternatives_all
      Src: /src/xen/xen/arch/arm/setup.c:468,1
    - Dst: enable_errata_workarounds
      Src: /src/xen/xen/arch/arm/setup.c:470,1
    - Dst: enable_cpu_features
      Src: /src/xen/xen/arch/arm/setup.c:471,1
    - Dst: is_dom0less_mode
      Src: /src/xen/xen/arch/arm/setup.c:474,1
    - Dst: create_dom0
      Src: /src/xen/xen/arch/arm/setup.c:475,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:477,1
    - Dst: create_domUs
      Src: /src/xen/xen/arch/arm/setup.c:481,1
    - Dst: alloc_static_evtchn
      Src: /src/xen/xen/arch/arm/setup.c:482,1
    - Dst: discard_initial_modules
      Src: /src/xen/xen/arch/arm/setup.c:489,1
    - Dst: heap_init_late
      Src: /src/xen/xen/arch/arm/setup.c:491,1
    - Dst: init_constructors
      Src: /src/xen/xen/arch/arm/setup.c:493,1
    - Dst: console_endboot
      Src: /src/xen/xen/arch/arm/setup.c:495,1
    - Dst: serial_endboot
      Src: /src/xen/xen/arch/arm/setup.c:498,1
    - Dst: xsm_set_system_active
      Src: /src/xen/xen/arch/arm/setup.c:500,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/setup.c:501,1
    - Dst: for_each_domain
      Src: /src/xen/xen/arch/arm/setup.c:505,1
    - Dst: domain_unpause_by_systemcontroller
      Src: /src/xen/xen/arch/arm/setup.c:506,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/setup.c:510,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/arm/setup.c:510,1
    - Dst: switch_stack_and_jump
      Src: /src/xen/xen/arch/arm/setup.c:512,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 96
    argCount: 1
    argNames:
    - fdt_paddr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 513
    functionName: start_xen
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 0
    functionsReached:
    - apply_alternatives_all
    - get_cpu_info
    - console_init_preirq
    - smp_prepare_cpus
    - rcu_init
    - local_irq_enable
    - enable_errata_workarounds
    - timer_init
    - acpi_boot_table_init
    - local_abort_enable
    - init_IRQ
    - llc_coloring_init
    - processor_id
    - tasklet_subsys_init
    - set_processor_id
    - uart_init
    - domain_unpause_by_systemcontroller
    - console_init_postirq
    - gic_preinit
    - check_local_cpu_features
    - warning_add
    - init_idle_domain
    - create_dom0
    - BUG_ON
    - num_online_cpus
    - early_fdt_map
    - boot_fdt_cmdline
    - printk
    - cmdline_parse
    - relocate_fdt
    - check_local_cpu_errata
    - smp_prepare_boot_cpu
    - init_maintenance_interrupt
    - vm_init
    - percpu_init_areas
    - cpu_online
    - end_boot_allocator
    - dt_unflatten_host_device_tree
    - xsm_dt_init
    - console_endboot
    - heap_init_late
    - serial_endboot
    - panic
    - platform_init
    - iommu_setup
    - setup_mm
    - create_domUs
    - init_constructors
    - add_boot_module
    - discard_initial_modules
    - for_each_domain
    - init_traps
    - enable_cpu_features
    - switch_stack_and_jump
    - setup_virt_paging
    - smp_get_max_cpus
    - init_xen_time
    - init_timer_interrupt
    - boot_fdt_info
    - is_dom0less_mode
    - alloc_static_evtchn
    - cpu_up
    - smp_init_cpus
    - setup_system_domains
    - do_initcalls
    - gic_init
    - xsm_set_system_active
    - read_dcache_line_bytes
    - do_presmp_initcalls
    - boot_stack_chk_guard_setup
    - virt_to_maddr
    - console_init_ring
    - setup_pagetables
    - initialize_keytable
    - preinit_xen_time
    - memcpy
    linkageType: ''
    returnType: void
    signature: void start_xen(unsigned long fdt_paddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_online_cpus
      Src: /src/xen/xen/arch/arm/setup.c:436,1
    - Dst: cpu_online
      Src: /src/xen/xen/arch/arm/setup.c:436,1
    - Dst: cpu_up
      Src: /src/xen/xen/arch/arm/setup.c:438,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/setup.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 442
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 2
    functionsReached:
    - cpu_online
    - num_online_cpus
    - cpu_up
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( i )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_strcat
      Src: /src/xen/xen/arch/arm/setup.c:520,1
    - Dst: safe_strcat
      Src: /src/xen/xen/arch/arm/setup.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 526
    functionName: init_xen_cap_info
    functionSourceFile: /src/xen/xen/arch/arm/setup.c
    functionUses: 0
    functionsReached:
    - safe_strcat
    linkageType: ''
    returnType: int
    signature: int init_xen_cap_info(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/guest_walk.c:30,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:34,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:45,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:59,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/guest_walk.c:81,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/guest_walk.c:84,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/guest_walk.c:88,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/guest_walk.c:104,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/guest_walk.c:113,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - v
    - gva
    - ipa
    - perms
    argTypes:
    - struct vcpu*
    - vaddr_t
    - paddr_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 173
    functionName: guest_walk_sd
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - GENMASK_ULL
    - READ_SYSREG64
    - access_guest_memory_by_gpa
    - READ_SYSREG
    linkageType: ''
    returnType: bool
    signature: "bool guest_walk_sd(const struct vcpu *v,\n                          vaddr_t
      gva, paddr_t *ipa,\n                          unsigned int *perms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/guest_walk.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - tcr
    - output_size
    argTypes:
    - struct domain*
    - register_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 216
    functionName: get_ipa_output_size
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - is_64bit_domain
    linkageType: ''
    returnType: int
    signature: "int get_ipa_output_size(struct domain *d, register_t tcr,\n                               unsigned
      int *output_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:269,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - ttbr
    - gran
    - tcr
    - ttbrx
    argTypes:
    - uint64_t*
    - unsigned int*
    - register_t
    - enum active_ttbr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 308
    functionName: get_ttbr_and_gran_64bit
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG64
    linkageType: ''
    returnType: bool
    signature: "bool get_ttbr_and_gran_64bit(uint64_t *ttbr, unsigned int *gran,\n
      \                                   register_t tcr, enum active_ttbr ttbrx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/guest_walk.c:322,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/guest_walk.c:326,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/guest_walk.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - d
    - gva
    - tcr
    argTypes:
    - struct domain*
    - vaddr_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: get_top_bit
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - is_32bit_domain
    - BIT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_top_bit(struct domain *d, vaddr_t gva, register_t
      tcr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - output_size
    - base
    argTypes:
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: check_base_size
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - GENMASK_ULL
    linkageType: ''
    returnType: bool
    signature: bool check_base_size(unsigned int output_size, uint64_t base)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/guest_walk.c:367,1
    - Dst: get_top_bit
      Src: /src/xen/xen/arch/arm/guest_walk.c:380,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/guest_walk.c:382,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/guest_walk.c:386,1
    - Dst: get_ttbr_and_gran_64bit
      Src: /src/xen/xen/arch/arm/guest_walk.c:391,1
    - Dst: get_ttbr_and_gran_64bit
      Src: /src/xen/xen/arch/arm/guest_walk.c:398,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:422,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:429,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:439,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/guest_walk.c:446,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/guest_walk.c:460,1
    - Dst: get_ipa_output_size
      Src: /src/xen/xen/arch/arm/guest_walk.c:463,1
    - Dst: check_base_size
      Src: /src/xen/xen/arch/arm/guest_walk.c:468,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:476,1
    - Dst: LPAE_TABLE_INDEX_GS
      Src: /src/xen/xen/arch/arm/guest_walk.c:485,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/guest_walk.c:488,1
    - Dst: check_base_size
      Src: /src/xen/xen/arch/arm/guest_walk.c:493,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/guest_walk.c:493,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/guest_walk.c:513,1
    - Dst: lpae_is_superpage
      Src: /src/xen/xen/arch/arm/guest_walk.c:513,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/guest_walk.c:521,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:524,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/guest_walk.c:525,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/guest_walk.c:533,1
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/guest_walk.c:533,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/guest_walk.c:537,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/guest_walk.c:538,1
    - Dst: LEVEL_SIZE_GS
      Src: /src/xen/xen/arch/arm/guest_walk.c:539,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 4
    argNames:
    - v
    - gva
    - ipa
    - perms
    argTypes:
    - struct vcpu*
    - vaddr_t
    - paddr_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 552
    functionName: guest_walk_ld
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 0
    functionsReached:
    - get_ttbr_and_gran_64bit
    - get_top_bit
    - BIT
    - GENMASK_ULL
    - READ_SYSREG64
    - lpae_is_mapping
    - DIV_ROUND_UP
    - LEVEL_SIZE_GS
    - lpae_is_superpage
    - lpae_is_valid
    - get_ipa_output_size
    - pfn_to_paddr
    - check_base_size
    - access_guest_memory_by_gpa
    - READ_SYSREG
    - LPAE_TABLE_INDEX_GS
    - is_64bit_domain
    linkageType: ''
    returnType: bool
    signature: "bool guest_walk_ld(const struct vcpu *v,\n                          vaddr_t
      gva, paddr_t *ipa,\n                          unsigned int *perms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/guest_walk.c:557,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/guest_walk.c:558,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/guest_walk.c:590,1
    - Dst: guest_walk_sd
      Src: /src/xen/xen/arch/arm/guest_walk.c:591,1
    - Dst: guest_walk_ld
      Src: /src/xen/xen/arch/arm/guest_walk.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - v
    - gva
    - ipa
    - perms
    argTypes:
    - struct vcpu*
    - vaddr_t
    - paddr_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 594
    functionName: guest_walk_tables
    functionSourceFile: /src/xen/xen/arch/arm/guest_walk.c
    functionUses: 3
    functionsReached:
    - guest_walk_sd
    - READ_SYSREG
    - is_32bit_domain
    - guest_walk_ld
    linkageType: ''
    returnType: bool
    signature: "bool guest_walk_tables(const struct vcpu *v, vaddr_t gva,\n                       paddr_t
      *ipa, unsigned int *perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sz
    - ','
    - val
    - ','
    - sysreg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: WRITE_SYSREG_SZ
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_SZ(sz, val, sysreg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - sz
    - ','
    - val
    - ','
    - sysreg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: WRITE_SYSREG_SZ
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_SZ(sz, val, sysreg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - sz
    - ','
    - func
    - ','
    - reg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: TVM_REG
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG(sz, func, reg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - regname
    - ','
    - xreg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: TVM_REG32
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG32(regname, xreg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - regname
    - ','
    - xreg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: TVM_REG64
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG64(regname, xreg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lowreg
    - ','
    - hireg
    - ','
    - xreg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: TVM_REG32_COMBINED
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG32_COMBINED(lowreg, hireg, xreg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lowreg
    - ','
    - hireg
    - ','
    - xreg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: TVM_REG32_COMBINED
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG32_COMBINED(lowreg, hireg, xreg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: GENERATE_CASE
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_CASE(reg, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - field
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: GENERATE_TID3_INFO
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_TID3_INFO(reg, field, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - REG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: HSR_CPREG32_TID3_CASES
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_CPREG32_TID3_CASES(REG)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:192,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:194,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:206,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:207,1
    - Dst: vtimer_emulate
      Src: /src/xen/xen/arch/arm/vcpreg.c:208,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:209,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:218,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/vcpreg.c:219,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:220,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vcpreg.c:222,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:231,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:232,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:233,1
    - Dst: p2m_set_way_flush
      Src: /src/xen/xen/arch/arm/vcpreg.c:235,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:243,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:244,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:245,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:246,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:247,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:248,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:249,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:250,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:251,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:252,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:253,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:254,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:256,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:258,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:259,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:260,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:261,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:289,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/vcpreg.c:291,1
    - Dst: handle_ro_raz
      Src: /src/xen/xen/arch/arm/vcpreg.c:292,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:294,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:295,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:296,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:298,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:299,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:300,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:301,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:302,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:303,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:304,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:305,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:306,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:307,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:308,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:309,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:310,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:315,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:323,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:324,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:325,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:326,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:327,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:328,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:329,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:330,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:331,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:332,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:333,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:334,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:335,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:336,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:337,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:338,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:339,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:340,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:341,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:353,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:354,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:355,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:356,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:357,1
    - Dst: HSR_CPREG32_TID3_CASES
      Src: /src/xen/xen/arch/arm/vcpreg.c:358,1
    - Dst: HSR_CPREG32_TID3_CASES
      Src: /src/xen/xen/arch/arm/vcpreg.c:359,1
    - Dst: HSR_CPREG32_TID3_CASES
      Src: /src/xen/xen/arch/arm/vcpreg.c:360,1
    - Dst: HSR_CPREG32_TID3_CASES
      Src: /src/xen/xen/arch/arm/vcpreg.c:361,1
    - Dst: handle_ro_raz
      Src: /src/xen/xen/arch/arm/vcpreg.c:362,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:394,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:398,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:400,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:403,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 92
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 404
    functionName: do_cp15_32
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - handle_ro_raz
    - gdprintk
    - handle_raz_wi
    - HSR_CPREG32
    - set_user_reg
    - check_conditional_instr
    - GENERATE_CASE
    - GENERATE_TID3_INFO
    - vtimer_emulate
    - regs_mode_is_user
    - inject_undef_exception
    - p2m_set_way_flush
    - HSR_CPREG32_TID3_CASES
    linkageType: ''
    returnType: void
    signature: void do_cp15_32(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:408,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:410,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vcpreg.c:422,1
    - Dst: vtimer_emulate
      Src: /src/xen/xen/arch/arm/vcpreg.c:423,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:424,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vcpreg.c:432,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vcpreg.c:433,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vcpreg.c:434,1
    - Dst: vgic_emulate
      Src: /src/xen/xen/arch/arm/vcpreg.c:435,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:436,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:439,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/vcpreg.c:440,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:463,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:467,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:470,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 475
    functionName: do_cp15_64
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - gdprintk
    - vgic_emulate
    - GENERATE_CASE
    - check_conditional_instr
    - vtimer_emulate
    - HSR_CPREG64
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: void do_cp15_64(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:482,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:484,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:499,1
    - Dst: handle_wo_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:500,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:501,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/vcpreg.c:502,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:503,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:504,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:526,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:535,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vcpreg.c:546,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:559,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/vcpreg.c:570,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:573,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:578,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:581,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:590,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:592,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:593,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:594,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:595,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:596,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:597,1
    - Dst: HSR_CPREG32
      Src: /src/xen/xen/arch/arm/vcpreg.c:598,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/vcpreg.c:599,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:624,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:628,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:632,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:634,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 635
    functionName: do_cp14_32
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - gdprintk
    - handle_wo_wi
    - handle_raz_wi
    - HSR_CPREG32
    - set_user_reg
    - check_conditional_instr
    - handle_ro_read_val
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: void do_cp14_32(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:641,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:643,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:666,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:670,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 673
    functionName: do_cp14_64
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - inject_undef_exception
    - check_conditional_instr
    - gdprintk
    linkageType: ''
    returnType: void
    signature: void do_cp14_64(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:679,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:681,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:694,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:698,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 702
    functionName: do_cp14_dbg
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - inject_undef_exception
    - check_conditional_instr
    - gdprintk
    linkageType: ''
    returnType: void
    signature: void do_cp14_dbg(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:709,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:711,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:723,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:724,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/vcpreg.c:725,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:728,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:732,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:734,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vcpreg.c:743,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/vcpreg.c:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 745
    functionName: do_cp10
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - gdprintk
    - check_conditional_instr
    - GENERATE_TID3_INFO
    - inject_undef_exception
    - domain_crash
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void do_cp10(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vcpreg.c:751,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vcpreg.c:753,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vcpreg.c:757,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vcpreg.c:758,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vcpreg.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 760
    functionName: do_cp
    functionSourceFile: /src/xen/xen/arch/arm/vcpreg.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - gdprintk
    - check_conditional_instr
    - ASSERT
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: void do_cp(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: DEV_TABLE_ITT_ADDR
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEV_TABLE_ITT_ADDR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: DEV_TABLE_ITT_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEV_TABLE_ITT_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: DEV_TABLE_ENTRY
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEV_TABLE_ENTRY(addr, bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:103,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:104,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:105,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: get_baser_phys_addr
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - BIT
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t get_baser_phys_addr(uint64_t reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_baser_phys_addr
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:114,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:117,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:117,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:119,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:119,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - its
    - collid
    - vcpu_id
    argTypes:
    - struct virt_its*
    - uint16_t
    - coll_table_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: its_set_collection
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - BIT
    - spin_is_locked
    - BUILD_BUG_ON
    - ASSERT
    - get_baser_phys_addr
    - access_guest_memory_by_gpa
    linkageType: ''
    returnType: int
    signature: "int its_set_collection(struct virt_its *its, uint16_t collid,\n                              coll_table_entry_t
      vcpu_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_baser_phys_addr
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:133,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:137,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:137,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - its
    - collid
    argTypes:
    - struct virt_its*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: get_vcpu_from_collection
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - get_baser_phys_addr
    - access_guest_memory_by_gpa
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *get_vcpu_from_collection(struct virt_its *its,\n                                             uint16_t
      collid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_baser_phys_addr
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:158,1
    - Dst: DEV_TABLE_ENTRY
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:159,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - its
    - devid
    - itt_address
    - nr_bits
    argTypes:
    - struct virt_its*
    - uint32_t
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: its_set_itt_address
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - DEV_TABLE_ENTRY
    - get_baser_phys_addr
    - access_guest_memory_by_gpa
    linkageType: ''
    returnType: int
    signature: "int its_set_itt_address(struct virt_its *its, uint32_t devid,\n                               paddr_t
      itt_address, uint32_t nr_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_baser_phys_addr
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:177,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - its
    - devid
    - itt
    argTypes:
    - struct virt_its*
    - uint32_t
    - dev_table_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: its_get_itt
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - get_baser_phys_addr
    - access_guest_memory_by_gpa
    linkageType: ''
    returnType: int
    signature: "int its_get_itt(struct virt_its *its, uint32_t devid,\n                       dev_table_entry_t
      *itt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: its_get_itt
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:198,1
    - Dst: DEV_TABLE_ITT_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:202,1
    - Dst: DEV_TABLE_ITT_ADDR
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:203,1
    - Dst: DEV_TABLE_ITT_ADDR
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - its
    - devid
    - evid
    argTypes:
    - struct virt_its*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: its_get_itte_address
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - DEV_TABLE_ITT_ADDR
    - DEV_TABLE_ITT_SIZE
    - its_get_itt
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t its_get_itte_address(struct virt_its *its,\n                                    uint32_t
      devid, uint32_t evid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:223,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:223,1
    - Dst: its_get_itte_address
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:225,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:229,1
    - Dst: get_vcpu_from_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - its
    - devid
    - evid
    - vcpu_ptr
    - vlpi_ptr
    argTypes:
    - struct virt_its*
    - uint32_t
    - uint32_t
    - struct vcpu**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 239
    functionName: read_itte
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - ASSERT
    - access_guest_memory_by_gpa
    - its_get_itte_address
    - get_vcpu_from_collection
    linkageType: ''
    returnType: bool
    signature: "bool read_itte(struct virt_its *its, uint32_t devid, uint32_t evid,\n
      \                     struct vcpu **vcpu_ptr, uint32_t *vlpi_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:254,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:254,1
    - Dst: its_get_itte_address
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:256,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - its
    - devid
    - evid
    - collid
    - vlpi
    argTypes:
    - struct virt_its*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 267
    functionName: write_itte
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - access_guest_memory_by_gpa
    - its_get_itte_address
    linkageType: ''
    returnType: bool
    signature: "bool write_itte(struct virt_its *its, uint32_t devid,\n                       uint32_t
      evid, uint32_t collid, uint32_t vlpi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - its_cmd
    - word
    - shift
    - size
    argTypes:
    - uint64_t*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: its_cmd_mask_field
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t its_cmd_mask_field(uint64_t *its_cmd, unsigned int word,\n
      \                                  unsigned int shift, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: its_cmd_get_command
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_command(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: its_cmd_get_deviceid
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_deviceid(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: its_cmd_get_size
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_size(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: its_cmd_get_id
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_id(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: its_cmd_get_physical_id
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_physical_id(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: its_cmd_get_collection
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_collection(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: its_cmd_get_target_addr
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_target_addr(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: its_cmd_get_validbit
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_validbit(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: its_cmd_get_ittaddr
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: its_cmd_get_ittaddr(cmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:291,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:292,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:297,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:298,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:299,1
    - Dst: vgic_vcpu_inject_lpi
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 289
    functionDepth: 5
    functionLinenumber: 289
    functionLinenumberEnd: 309
    functionName: its_handle_int
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - its_cmd_get_id
    - vgic_vcpu_inject_lpi
    - spin_lock
    - its_cmd_get_deviceid
    - read_itte
    linkageType: ''
    returnType: int
    signature: int its_handle_int(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:313,1
    - Dst: its_cmd_mask_field
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:314,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:322,1
    - Dst: its_cmd_get_validbit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:324,1
    - Dst: its_set_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:325,1
    - Dst: its_set_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:327,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 332
    functionName: its_handle_mapc
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - its_cmd_get_validbit
    - its_set_collection
    - its_cmd_mask_field
    - spin_lock
    - its_cmd_get_collection
    linkageType: ''
    returnType: int
    signature: int its_handle_mapc(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:338,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:339,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:346,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:349,1
    - Dst: gicv3_its_get_event_pending_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:352,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:355,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:363,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:373,1
    - Dst: vgic_remove_irq_from_queues
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:374,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:376,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 383
    functionName: its_handle_clear
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_lock_irqsave
    - gicv3_its_get_event_pending_irq
    - its_cmd_get_id
    - spin_unlock_irqrestore
    - spin_lock
    - vgic_remove_irq_from_queues
    - its_cmd_get_deviceid
    - unlikely
    - test_bit
    - read_itte
    linkageType: ''
    returnType: int
    signature: int its_handle_clear(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:406,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:408,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:413,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:416,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - d
    - p
    argTypes:
    - struct domain*
    - struct pending_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 421
    functionName: update_lpi_property
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - write_atomic
    - clear_bit
    - access_guest_memory_by_gpa
    - set_bit
    linkageType: ''
    returnType: int
    signature: int update_lpi_property(struct domain *d, struct pending_irq *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:433,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:433,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:435,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:437,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:438,1
    - Dst: gic_raise_guest_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:439,1
    - Dst: gic_remove_from_lr_pending
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - struct vcpu*
    - struct pending_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: update_lpi_vgic_status
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - gic_remove_from_lr_pending
    - spin_is_locked
    - gic_raise_guest_irq
    - ASSERT
    - test_bit
    - list_empty
    linkageType: ''
    returnType: void
    signature: void update_lpi_vgic_status(struct vcpu *v, struct pending_irq *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:448,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:449,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:465,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:468,1
    - Dst: gicv3_its_get_event_pending_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:474,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:476,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:479,1
    - Dst: update_lpi_property
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:482,1
    - Dst: update_lpi_vgic_status
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:486,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:491,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 445
    functionDepth: 5
    functionLinenumber: 445
    functionLinenumberEnd: 497
    functionName: its_handle_inv
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_lock_irqsave
    - gicv3_its_get_event_pending_irq
    - its_cmd_get_id
    - spin_unlock_irqrestore
    - spin_lock
    - update_lpi_property
    - its_cmd_get_deviceid
    - unlikely
    - update_lpi_vgic_status
    - read_itte
    linkageType: ''
    returnType: int
    signature: int its_handle_inv(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:506,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:521,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:521,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:532,1
    - Dst: get_vcpu_from_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:533,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:534,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:536,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:537,1
    - Dst: radix_tree_gang_lookup
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:543,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:545,1
    - Dst: update_lpi_property
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:555,1
    - Dst: update_lpi_vgic_status
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:557,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:567,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:569,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 573
    functionName: its_handle_invall
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ARRAY_SIZE
    - read_unlock
    - spin_lock_irqsave
    - radix_tree_gang_lookup
    - spin_unlock_irqrestore
    - ASSERT
    - spin_lock
    - update_lpi_property
    - update_lpi_vgic_status
    - read_lock
    - get_vcpu_from_collection
    - is_hardware_domain
    - its_cmd_get_collection
    linkageType: ''
    returnType: int
    signature: int its_handle_invall(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:584,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:584,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:586,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:597,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:600,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:601,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:602,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:606,1
    - Dst: vgic_remove_irq_from_queues
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:612,1
    - Dst: vgic_init_pending_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:613,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:615,1
    - Dst: gicv3_remove_guest_event
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - its
    - vdevid
    - vevid
    argTypes:
    - struct virt_its*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 576
    functionDepth: 5
    functionLinenumber: 576
    functionLinenumberEnd: 620
    functionName: its_discard_event
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - radix_tree_delete
    - gicv3_remove_guest_event
    - write_unlock
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - ASSERT
    - vgic_remove_irq_from_queues
    - vgic_init_pending_irq
    - write_lock
    - read_itte
    linkageType: ''
    returnType: int
    signature: "int its_discard_event(struct virt_its *its,\n                             uint32_t
      vdevid, uint32_t vevid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:627,1
    - Dst: its_get_itt
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:629,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:638,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:638,1
    - Dst: DEV_TABLE_ITT_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:640,1
    - Dst: its_discard_event
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:642,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - its
    - devid
    argTypes:
    - struct virt_its*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 622
    functionDepth: 6
    functionLinenumber: 622
    functionLinenumberEnd: 646
    functionName: its_unmap_device
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - DEV_TABLE_ITT_SIZE
    - spin_unlock
    - ASSERT
    - spin_lock
    - its_discard_event
    - is_hardware_domain
    - its_get_itt
    linkageType: ''
    returnType: void
    signature: void its_unmap_device(struct virt_its *its, uint32_t devid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:651,1
    - Dst: its_cmd_get_size
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:652,1
    - Dst: its_cmd_get_validbit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:653,1
    - Dst: its_cmd_get_ittaddr
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:654,1
    - Dst: its_unmap_device
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:663,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:673,1
    - Dst: gicv3_its_map_guest_device
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:680,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:682,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:687,1
    - Dst: its_set_itt_address
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:690,1
    - Dst: its_set_itt_address
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:692,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:694,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 648
    functionDepth: 7
    functionLinenumber: 648
    functionLinenumberEnd: 697
    functionName: its_handle_mapd
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - its_set_itt_address
    - BIT
    - gicv3_its_map_guest_device
    - its_unmap_device
    - its_cmd_get_validbit
    - its_cmd_get_ittaddr
    - its_cmd_get_size
    - spin_lock
    - its_cmd_get_deviceid
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int its_handle_mapd(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:701,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:702,1
    - Dst: its_cmd_get_physical_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:703,1
    - Dst: its_cmd_get_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:704,1
    - Dst: its_cmd_get_command
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:709,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:712,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:718,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:721,1
    - Dst: get_vcpu_from_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:726,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:729,1
    - Dst: write_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:734,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:736,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:740,1
    - Dst: gicv3_assign_guest_event
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:747,1
    - Dst: vgic_init_pending_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:752,1
    - Dst: update_lpi_property
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:759,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:768,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:774,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:775,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:776,1
    - Dst: gicv3_remove_guest_event
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:788,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:791,1
    - Dst: write_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:792,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:793,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 699
    functionDepth: 5
    functionLinenumber: 699
    functionLinenumberEnd: 796
    functionName: its_handle_mapti
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - set_bit
    - radix_tree_insert
    - gicv3_remove_guest_event
    - write_unlock
    - its_cmd_get_command
    - its_cmd_get_id
    - gicv3_assign_guest_event
    - read_itte
    - its_cmd_get_physical_id
    - spin_lock
    - update_lpi_property
    - vgic_init_pending_irq
    - its_cmd_get_deviceid
    - write_lock
    - get_vcpu_from_collection
    - write_itte
    - its_cmd_get_collection
    linkageType: ''
    returnType: int
    signature: int its_handle_mapti(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:800,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:801,1
    - Dst: its_cmd_get_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:802,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:809,1
    - Dst: read_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:811,1
    - Dst: get_vcpu_from_collection
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:818,1
    - Dst: gicv3_its_get_event_pending_irq
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:822,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:824,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:832,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:837,1
    - Dst: write_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:850,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:856,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 798
    functionDepth: 5
    functionLinenumber: 798
    functionLinenumberEnd: 859
    functionName: its_handle_movi
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - its_cmd_get_collection
    - spin_lock_irqsave
    - its_cmd_get_id
    - gicv3_its_get_event_pending_irq
    - spin_unlock_irqrestore
    - spin_lock
    - its_cmd_get_deviceid
    - unlikely
    - get_vcpu_from_collection
    - write_itte
    - read_itte
    linkageType: ''
    returnType: int
    signature: int its_handle_movi(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: its_cmd_get_deviceid
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:863,1
    - Dst: its_cmd_get_id
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:864,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:867,1
    - Dst: its_discard_event
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:870,1
    - Dst: write_itte
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:875,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - its
    - cmdptr
    argTypes:
    - struct virt_its*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 861
    functionDepth: 6
    functionLinenumber: 861
    functionLinenumberEnd: 882
    functionName: its_handle_discard
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - its_cmd_get_id
    - spin_lock
    - its_discard_event
    - its_cmd_get_deviceid
    - write_itte
    linkageType: ''
    returnType: int
    signature: int its_handle_discard(struct virt_its *its, uint64_t *cmdptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - baser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 885
    functionName: ITS_CMD_BUFFER_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITS_CMD_BUFFER_SIZE(baser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 886
    functionName: ITS_CMD_OFFSET
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ITS_CMD_OFFSET(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:889,1
    - Dst: its_cmd_get_command
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - command
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 892
    functionName: dump_its_command
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_cmd_get_command
    - gdprintk
    linkageType: ''
    returnType: void
    signature: void dump_its_command(uint64_t *command)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:901,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:904,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:904,1
    - Dst: ITS_CMD_BUFFER_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:906,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:913,1
    - Dst: its_cmd_get_command
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:918,1
    - Dst: its_handle_clear
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:921,1
    - Dst: its_handle_discard
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:924,1
    - Dst: its_handle_int
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:927,1
    - Dst: its_handle_inv
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:930,1
    - Dst: its_handle_invall
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:933,1
    - Dst: its_handle_mapc
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:936,1
    - Dst: its_handle_mapd
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:939,1
    - Dst: its_handle_mapti
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:943,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:946,1
    - Dst: its_handle_movi
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:949,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:955,1
    - Dst: dump_its_command
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:956,1
    - Dst: write_u64_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:960,1
    - Dst: ITS_CMD_BUFFER_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:961,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:965,1
    - Dst: dump_its_command
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:968,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - d
    - its
    argTypes:
    - struct domain*
    - struct virt_its*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 899
    functionDepth: 8
    functionLinenumber: 899
    functionLinenumberEnd: 973
    functionName: vgic_its_handle_cmds
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - its_handle_inv
    - gdprintk
    - its_handle_int
    - its_handle_movi
    - GENMASK
    - its_cmd_get_command
    - dump_its_command
    - spin_is_locked
    - its_handle_clear
    - its_handle_discard
    - its_handle_invall
    - its_handle_mapti
    - ITS_CMD_BUFFER_SIZE
    - ASSERT
    - its_handle_mapc
    - write_u64_atomic
    - access_guest_memory_by_gpa
    - its_handle_mapd
    linkageType: ''
    returnType: int
    signature: int vgic_its_handle_cmds(struct domain *d, struct virt_its *its)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:990,1
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1000,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1007,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1009,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1013,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1015,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1018,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1019,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1025,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1028,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1030,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1032,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1035,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1036,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1037,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1038,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1039,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1042,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1043,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1047,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1050,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1051,1
    - Dst: read_u64_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1059,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1060,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1063,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1066,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1067,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1068,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1069,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1070,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1073,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1074,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1075,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1076,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1077,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1080,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1082,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1084,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1086,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1089,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1091,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1094,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1098,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1107,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1113,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1120,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1127,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 128
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 1131
    functionName: vgic_v3_its_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - read_u64_atomic
    - spin_unlock
    - vreg_reg64_extract
    - vgic_reg64_check_access
    - VRANGE64
    - VRANGE32
    - spin_lock
    - spin_trylock
    - VREG64
    - printk
    - vreg_reg32_extract
    - VREG32
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_its_mmio_read(struct vcpu *v, mmio_info_t *info,\n                                 register_t
      *r, void *priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - baser
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1144
    functionName: its_baser_table_size
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int its_baser_table_size(uint64_t baser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GITS_BASER_ENTRY_SIZE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1148,1
    - Dst: its_baser_table_size
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - baser
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1151
    functionName: its_baser_nr_entries
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - GITS_BASER_ENTRY_SIZE
    - its_baser_table_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int its_baser_nr_entries(uint64_t baser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1156,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1156,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1165,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1180,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - its
    - status
    argTypes:
    - struct virt_its*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1183
    functionName: vgic_v3_verify_its_status
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - is_hardware_domain
    - printk
    linkageType: ''
    returnType: bool
    signature: bool vgic_v3_verify_its_status(struct virt_its *its, bool status)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - reg
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1225
    functionName: sanitize_its_base_reg
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sanitize_its_base_reg(uint64_t *reg)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1237,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1247,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1248,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1251,1
    - Dst: vgic_v3_verify_its_status
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1254,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1256,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1257,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1261,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1264,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1267,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1269,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1271,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1274,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1275,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1277,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1281,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1282,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1288,1
    - Dst: sanitize_its_base_reg
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1289,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1293,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1297,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1298,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1300,1
    - Dst: ITS_CMD_OFFSET
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1301,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1302,1
    - Dst: ITS_CMD_OFFSET
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1303,1
    - Dst: vgic_its_handle_cmds
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1306,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1307,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1309,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1313,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1316,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1319,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1320,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1322,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1330,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1331,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1337,1
    - Dst: sanitize_its_base_reg
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1343,1
    - Dst: its_baser_nr_entries
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1347,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1348,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1349,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1355,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1358,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1359,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1361,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1368,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1369,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1374,1
    - Dst: sanitize_its_base_reg
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1379,1
    - Dst: its_baser_nr_entries
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1382,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1386,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1389,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1392,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1394,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1396,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1399,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1402,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1406,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1412,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1416,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1424,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1430,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1436,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 163
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1227
    functionDepth: 9
    functionLinenumber: 1227
    functionLinenumberEnd: 1440
    functionName: vgic_v3_its_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - gdprintk
    - vgic_v3_verify_its_status
    - vreg_reg64_update
    - BIT
    - vgic_reg64_check_access
    - VRANGE64
    - ITS_CMD_OFFSET
    - VRANGE32
    - vgic_its_handle_cmds
    - spin_lock
    - ASSERT_UNREACHABLE
    - sanitize_its_base_reg
    - VREG64
    - printk
    - VREG32
    - its_baser_nr_entries
    - vreg_reg32_update
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_its_mmio_write(struct vcpu *v, mmio_info_t *info,\n                                  register_t
      r, void *priv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1456,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1478,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1479,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1481,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1483,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1485,1
    - Dst: iommu_map
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1487,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1487,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1487,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1492,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1498,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1498,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1498,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 5
    argNames:
    - d
    - guest_addr
    - host_addr
    - devid_bits
    - evid_bits
    argTypes:
    - struct domain*
    - paddr_t
    - paddr_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1507
    functionName: vgic_v3_its_init_virtual
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - list_add_tail
    - iommu_map
    - register_mmio_handler
    - maddr_to_mfn
    - printk
    - PFN_DOWN
    - spin_lock_init
    - iommu_iotlb_flush
    - _dfn
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_its_init_virtual(struct domain *d, paddr_t guest_addr,\n
      \                                   paddr_t host_addr,\n                                    unsigned
      int devid_bits,\n                                    unsigned int evid_bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1515,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1522
    functionName: vgic_v3_its_count
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - is_hardware_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_v3_its_count(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1532,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1533,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1536,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1540,1
    - Dst: vgic_v3_its_init_virtual
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1558
    functionName: vgic_v3_its_init_domain
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    - vgic_v3_its_init_virtual
    - is_hardware_domain
    - INIT_LIST_HEAD
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int vgic_v3_its_init_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_head_is_null
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1565,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1568,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1570,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1571,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1574,1
    - Dst: RB_EMPTY_ROOT
      Src: /src/xen/xen/arch/arm/vgic-v3-its.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1575
    functionName: vgic_v3_its_free_domain
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3-its.c
    functionUses: 0
    functionsReached:
    - RB_EMPTY_ROOT
    - list_head_is_null
    - ASSERT
    - list_del
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: void
    signature: void vgic_v3_its_free_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VPCI_ECAM_BDF
      Src: /src/xen/xen/arch/arm/vpci.c:19,1
    - Dst: VPCI_ECAM_BDF
      Src: /src/xen/xen/arch/arm/vpci.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bridge
    - gpa
    - use_root
    argTypes:
    - struct pci_host_bridge*
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 27
    functionName: vpci_sbdf_from_gpa
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - VPCI_ECAM_BDF
    linkageType: ''
    returnType: pci_sbdf_t
    signature: "pci_sbdf_t vpci_sbdf_from_gpa(const struct pci_host_bridge *bridge,\n
      \                                    paddr_t gpa, bool use_root)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/vpci.c:33,1
    - Dst: vpci_ecam_read
      Src: /src/xen/xen/arch/arm/vpci.c:37,1
    - Dst: ECAM_REG_OFFSET
      Src: /src/xen/xen/arch/arm/vpci.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - v
    - info
    - r
    - sbdf
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: vpci_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - ECAM_REG_OFFSET
    - GENMASK_ULL
    - vpci_ecam_read
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_read(struct vcpu *v, mmio_info_t *info, register_t *r,\n
      \                         pci_sbdf_t sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_sbdf_from_gpa
      Src: /src/xen/xen/arch/arm/vpci.c:53,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpci.c:55,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:55,1
    - Dst: vpci_mmio_read
      Src: /src/xen/xen/arch/arm/vpci.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - info
    - r
    - p
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: vpci_mmio_read_root
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpci_sbdf_from_gpa
    - is_hardware_domain
    - vpci_mmio_read
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_read_root(struct vcpu *v, mmio_info_t *info, register_t
      *r,\n                               void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_sbdf_from_gpa
      Src: /src/xen/xen/arch/arm/vpci.c:64,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpci.c:66,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:66,1
    - Dst: vpci_mmio_read
      Src: /src/xen/xen/arch/arm/vpci.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - info
    - r
    - p
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: vpci_mmio_read_child
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpci_sbdf_from_gpa
    - is_hardware_domain
    - vpci_mmio_read
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_read_child(struct vcpu *v, mmio_info_t *info,\n                                register_t
      *r, void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_ecam_write
      Src: /src/xen/xen/arch/arm/vpci.c:74,1
    - Dst: ECAM_REG_OFFSET
      Src: /src/xen/xen/arch/arm/vpci.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - info
    - r
    - sbdf
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: vpci_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - vpci_ecam_write
    - ECAM_REG_OFFSET
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_write(struct vcpu *v, mmio_info_t *info, register_t
      r,\n                           pci_sbdf_t sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_sbdf_from_gpa
      Src: /src/xen/xen/arch/arm/vpci.c:82,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpci.c:84,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:84,1
    - Dst: vpci_mmio_write
      Src: /src/xen/xen/arch/arm/vpci.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - info
    - r
    - p
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: vpci_mmio_write_root
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpci_sbdf_from_gpa
    - is_hardware_domain
    - vpci_mmio_write
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_write_root(struct vcpu *v, mmio_info_t *info, register_t
      r,\n                                void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_sbdf_from_gpa
      Src: /src/xen/xen/arch/arm/vpci.c:93,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vpci.c:95,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:95,1
    - Dst: vpci_mmio_write
      Src: /src/xen/xen/arch/arm/vpci.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - v
    - info
    - r
    - p
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: vpci_mmio_write_child
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vpci_sbdf_from_gpa
    - is_hardware_domain
    - vpci_mmio_write
    linkageType: ''
    returnType: int
    signature: "int vpci_mmio_write_child(struct vcpu *v, mmio_info_t *info,\n                                 register_t
      r, void *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vpci.c:116,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vpci.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - d
    - bridge
    argTypes:
    - struct domain*
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: vpci_setup_mmio_handler_cb
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached:
    - register_mmio_handler
    linkageType: ''
    returnType: int
    signature: "int vpci_setup_mmio_handler_cb(struct domain *d,\n                                      struct
      pci_host_bridge *bridge)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vpci
      Src: /src/xen/xen/arch/arm/vpci.c:133,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:141,1
    - Dst: pci_host_iterate_bridges_and_count
      Src: /src/xen/xen/arch/arm/vpci.c:145,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vpci.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: domain_vpci_init
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 1
    functionsReached:
    - pci_host_iterate_bridges_and_count
    - has_vpci
    - is_hardware_domain
    - register_mmio_handler
    linkageType: ''
    returnType: int
    signature: int domain_vpci_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - bridge
    argTypes:
    - struct domain*
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: vpci_get_num_handlers_cb
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int vpci_get_num_handlers_cb(struct domain *d,\n                                    struct
      pci_host_bridge *bridge)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_vpci
      Src: /src/xen/xen/arch/arm/vpci.c:169,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vpci.c:172,1
    - Dst: pci_host_iterate_bridges_and_count
      Src: /src/xen/xen/arch/arm/vpci.c:174,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vpci.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: domain_vpci_get_num_mmio_handlers
    functionSourceFile: /src/xen/xen/arch/arm/vpci.c
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    - pci_host_iterate_bridges_and_count
    - has_vpci
    - is_hardware_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_vpci_get_num_mmio_handlers(struct domain *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vaffinity_to_vcpuid
      Src: /src/xen/xen/arch/arm/vpsci.c:23,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/arch/arm/vpsci.c:25,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/vpsci.c:29,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vpsci.c:32,1
    - Dst: alloc_vcpu_guest_context
      Src: /src/xen/xen/arch/arm/vpsci.c:35,1
    - Dst: vgic_clear_pending_irqs
      Src: /src/xen/xen/arch/arm/vpsci.c:38,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/vpsci.c:40,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/vpsci.c:51,1
    - Dst: domain_lock
      Src: /src/xen/xen/arch/arm/vpsci.c:72,1
    - Dst: arch_set_info_guest
      Src: /src/xen/xen/arch/arm/vpsci.c:73,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/arm/vpsci.c:74,1
    - Dst: free_vcpu_guest_context
      Src: /src/xen/xen/arch/arm/vpsci.c:76,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/arch/arm/vpsci.c:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - target_cpu
    - entry_point
    - context_id
    argTypes:
    - register_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 84
    functionName: do_common_cpu_on
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - vcpu_wake
    - domain_vcpu
    - vgic_clear_pending_irqs
    - domain_unlock
    - free_vcpu_guest_context
    - vaffinity_to_vcpuid
    - is_32bit_domain
    - domain_lock
    - alloc_vcpu_guest_context
    - memset
    - arch_set_info_guest
    - test_bit
    - is_64bit_domain
    linkageType: ''
    returnType: int
    signature: "int do_common_cpu_on(register_t target_cpu, register_t entry_point,\n
      \                           register_t context_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_common_cpu_on
      Src: /src/xen/xen/arch/arm/vpsci.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - vcpuid
    - entry_point
    argTypes:
    - uint32_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: do_psci_cpu_on
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - do_common_cpu_on
    linkageType: ''
    returnType: int32_t
    signature: int32_t do_psci_cpu_on(uint32_t vcpuid, register_t entry_point)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/arm/vpsci.c:105,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/arch/arm/vpsci.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - power_state
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: do_psci_cpu_off
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - vcpu_sleep_nosync
    linkageType: ''
    returnType: int32_t
    signature: int32_t do_psci_cpu_off(uint32_t power_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PSCI_VERSION
      Src: /src/xen/xen/arch/arm/vpsci.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: do_psci_0_2_version
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - PSCI_VERSION
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t do_psci_0_2_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_block_unless_event_pending
      Src: /src/xen/xen/arch/arm/vpsci.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - power_state
    - entry_point
    - context_id
    argTypes:
    - uint32_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: do_psci_0_2_cpu_suspend
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - vcpu_block_unless_event_pending
    linkageType: ''
    returnType: register_t
    signature: "register_t do_psci_0_2_cpu_suspend(uint32_t power_state,\n                                          register_t
      entry_point,\n                                          register_t context_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_psci_cpu_off
      Src: /src/xen/xen/arch/arm/vpsci.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: do_psci_0_2_cpu_off
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - do_psci_cpu_off
    linkageType: ''
    returnType: int32_t
    signature: int32_t do_psci_0_2_cpu_off(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_common_cpu_on
      Src: /src/xen/xen/arch/arm/vpsci.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target_cpu
    - entry_point
    - context_id
    argTypes:
    - register_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: do_psci_0_2_cpu_on
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - do_common_cpu_on
    linkageType: ''
    returnType: int32_t
    signature: "int32_t do_psci_0_2_cpu_on(register_t target_cpu,\n                                  register_t
      entry_point,\n                                  register_t context_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/vpsci.c:163,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vpsci.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - target_affinity
    - lowest_affinity_level
    argTypes:
    - register_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 181
    functionName: do_psci_0_2_affinity_info
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - test_bit
    - ARRAY_SIZE
    linkageType: ''
    returnType: int32_t
    signature: "int32_t do_psci_0_2_affinity_info(register_t target_affinity,\n                                         uint32_t
      lowest_affinity_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: do_psci_0_2_migrate_info_type
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t do_psci_0_2_migrate_info_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/arm/vpsci.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: do_psci_0_2_system_off
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - domain_shutdown
    linkageType: ''
    returnType: void
    signature: void do_psci_0_2_system_off( void )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_shutdown
      Src: /src/xen/xen/arch/arm/vpsci.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: do_psci_0_2_system_reset
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - domain_shutdown
    linkageType: ''
    returnType: void
    signature: void do_psci_0_2_system_reset(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - psci_func_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 222
    functionName: do_psci_1_0_features
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t do_psci_1_0_features(uint32_t psci_func_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PSCI_SET_RESULT
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_SET_RESULT(reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: PSCI_ARG
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_ARG(reg, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: PSCI_ARG32
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_ARG32(reg, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - reg
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: PSCI_ARG32
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_ARG32(reg, n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vpsci.c:239,1
    - Dst: PSCI_ARG32
      Src: /src/xen/xen/arch/arm/vpsci.c:243,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:245,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:246,1
    - Dst: do_psci_cpu_off
      Src: /src/xen/xen/arch/arm/vpsci.c:246,1
    - Dst: PSCI_ARG32
      Src: /src/xen/xen/arch/arm/vpsci.c:251,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:252,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:254,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:255,1
    - Dst: do_psci_cpu_on
      Src: /src/xen/xen/arch/arm/vpsci.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - regs
    - fid
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 261
    functionName: do_vpsci_0_1_call
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - do_psci_cpu_on
    - PSCI_ARG32
    - do_psci_cpu_off
    - get_user_reg
    - PSCI_SET_RESULT
    - PSCI_ARG
    linkageType: ''
    returnType: bool
    signature: bool do_vpsci_0_1_call(struct cpu_user_regs *regs, uint32_t fid)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:277,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:278,1
    - Dst: do_psci_0_2_version
      Src: /src/xen/xen/arch/arm/vpsci.c:278,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:282,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:283,1
    - Dst: do_psci_0_2_cpu_off
      Src: /src/xen/xen/arch/arm/vpsci.c:283,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:287,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:288,1
    - Dst: do_psci_0_2_migrate_info_type
      Src: /src/xen/xen/arch/arm/vpsci.c:288,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:292,1
    - Dst: do_psci_0_2_system_off
      Src: /src/xen/xen/arch/arm/vpsci.c:293,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:294,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:298,1
    - Dst: do_psci_0_2_system_reset
      Src: /src/xen/xen/arch/arm/vpsci.c:299,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:300,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:306,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:307,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:308,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:310,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:311,1
    - Dst: do_psci_0_2_cpu_on
      Src: /src/xen/xen/arch/arm/vpsci.c:311,1
    - Dst: PSCI_ARG32
      Src: /src/xen/xen/arch/arm/vpsci.c:318,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:319,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:320,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:322,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:323,1
    - Dst: do_psci_0_2_cpu_suspend
      Src: /src/xen/xen/arch/arm/vpsci.c:323,1
    - Dst: PSCI_ARG
      Src: /src/xen/xen/arch/arm/vpsci.c:330,1
    - Dst: PSCI_ARG32
      Src: /src/xen/xen/arch/arm/vpsci.c:331,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:333,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:334,1
    - Dst: do_psci_0_2_affinity_info
      Src: /src/xen/xen/arch/arm/vpsci.c:334,1
    - Dst: PSCI_ARG32
      Src: /src/xen/xen/arch/arm/vpsci.c:340,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vpsci.c:342,1
    - Dst: PSCI_SET_RESULT
      Src: /src/xen/xen/arch/arm/vpsci.c:343,1
    - Dst: do_psci_1_0_features
      Src: /src/xen/xen/arch/arm/vpsci.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - regs
    - fid
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 350
    functionName: do_vpsci_0_2_call
    functionSourceFile: /src/xen/xen/arch/arm/vpsci.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - do_psci_1_0_features
    - do_psci_0_2_system_off
    - PSCI_ARG32
    - do_psci_0_2_cpu_on
    - PSCI_ARG
    - PSCI_SET_RESULT
    - do_psci_0_2_system_reset
    - do_psci_0_2_cpu_off
    - do_psci_0_2_migrate_info_type
    - do_psci_0_2_version
    - do_psci_0_2_cpu_suspend
    - do_psci_0_2_affinity_info
    linkageType: ''
    returnType: bool
    signature: bool do_vpsci_0_2_call(struct cpu_user_regs *regs, uint32_t fid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/arm/alternative.c:44,1
    - Dst: ALT_REPL_PTR
      Src: /src/xen/xen/arch/arm/alternative.c:47,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/alternative.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - alt
    - pc
    argTypes:
    - struct alt_instr*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: branch_insn_requires_update
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - BUG
    - is_active_kernel_text
    - ALT_REPL_PTR
    linkageType: ''
    returnType: bool
    signature: "bool branch_insn_requires_update(const struct alt_instr *alt,\n                                        unsigned
      long pc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_cpu
      Src: /src/xen/xen/arch/arm/alternative.c:63,1
    - Dst: insn_is_branch_imm
      Src: /src/xen/xen/arch/arm/alternative.c:65,1
    - Dst: insn_get_branch_offset
      Src: /src/xen/xen/arch/arm/alternative.c:67,1
    - Dst: branch_insn_requires_update
      Src: /src/xen/xen/arch/arm/alternative.c:77,1
    - Dst: insn_set_branch_offset
      Src: /src/xen/xen/arch/arm/alternative.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - alt
    - insnptr
    - altinsnptr
    argTypes:
    - struct alt_instr*
    - u32*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: get_alt_insn
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - branch_insn_requires_update
    - le32_to_cpu
    - insn_get_branch_offset
    - insn_set_branch_offset
    - insn_is_branch_imm
    linkageType: ''
    returnType: u32
    signature: "u32 get_alt_insn(const struct alt_instr *alt,\n                        const
      u32 *insnptr, const u32 *altinsnptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALT_REPL_PTR
      Src: /src/xen/xen/arch/arm/alternative.c:94,1
    - Dst: get_alt_insn
      Src: /src/xen/xen/arch/arm/alternative.c:99,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/arch/arm/alternative.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - alt
    - origptr
    - updptr
    - nr_inst
    argTypes:
    - struct alt_instr*
    - uint32_t*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 102
    functionName: patch_alternative
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - get_alt_insn
    - ALT_REPL_PTR
    linkageType: ''
    returnType: void
    signature: "void patch_alternative(const struct alt_instr *alt,\n                              const
      uint32_t *origptr,\n                              uint32_t *updptr, int nr_inst)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/alternative.c:119,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/alternative.c:128,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:132,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:134,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/arch/arm/alternative.c:136,1
    - Dst: ALT_REPL_PTR
      Src: /src/xen/xen/arch/arm/alternative.c:144,1
    - Dst: alt_cb
      Src: /src/xen/xen/arch/arm/alternative.c:146,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/alternative.c:149,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/arm/alternative.c:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - region
    - update_offset
    argTypes:
    - struct alt_region*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 157
    functionName: __apply_alternatives
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - cpus_have_cap
    - ALT_REPL_PTR
    - alt_cb
    - BUG_ON
    - invalidate_icache
    - printk
    - clean_and_invalidate_dcache_va_range
    - ALT_ORIG_PTR
    linkageType: ''
    returnType: int
    signature: "int __apply_alternatives(const struct alt_region *region,\n                                paddr_t
      update_offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/alternative.c:168,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/alternative.c:170,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/alternative.c:171,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/alternative.c:172,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:179,1
    - Dst: __apply_alternatives
      Src: /src/xen/xen/arch/arm/alternative.c:184,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:186,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/alternative.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - xenmap
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 193
    functionName: __apply_alternatives_multi_stop
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - __apply_alternatives
    - smp_processor_id
    - write_atomic
    - BUG_ON
    - read_atomic
    - isb
    linkageType: ''
    returnType: int
    signature: int __apply_alternatives_multi_stop(void *xenmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/arch/arm/alternative.c:201,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/alternative.c:203,1
    - Dst: for_each_xen_colored_mfn
      Src: /src/xen/xen/arch/arm/alternative.c:205,1
    - Dst: vmap
      Src: /src/xen/xen/arch/arm/alternative.c:208,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/alternative.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - xen_mfn
    - xen_size
    argTypes:
    - mfn_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: xen_remap_colored
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - panic
    - for_each_xen_colored_mfn
    - vmap
    - xfree
    linkageType: ''
    returnType: void
    signature: void *xen_remap_colored(mfn_t xen_mfn, paddr_t xen_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/alternative.c:221,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/alternative.c:223,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/alternative.c:226,1
    - Dst: xen_remap_colored
      Src: /src/xen/xen/arch/arm/alternative.c:233,1
    - Dst: vmap_contig
      Src: /src/xen/xen/arch/arm/alternative.c:235,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:238,1
    - Dst: stop_machine_run
      Src: /src/xen/xen/arch/arm/alternative.c:241,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/alternative.c:244,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/arm/alternative.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 247
    functionName: apply_alternatives_all
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 1
    functionsReached:
    - get_order_from_bytes
    - virt_to_mfn
    - vmap_contig
    - xen_remap_colored
    - vunmap
    - BUG_ON
    - ASSERT
    - stop_machine_run
    linkageType: ''
    returnType: void
    signature: void apply_alternatives_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apply_alternatives
      Src: /src/xen/xen/arch/arm/alternative.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - struct alt_instr*
    - struct alt_instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: apply_alternatives
    functionSourceFile: /src/xen/xen/arch/arm/alternative.c
    functionUses: 4
    functionsReached:
    - __apply_alternatives
    linkageType: ''
    returnType: int
    signature: int apply_alternatives(const struct alt_instr *start, const struct
      alt_instr *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/arch/arm/sysctl.c:22,1
    - Dst: sve_encode_vl
      Src: /src/xen/xen/arch/arm/sysctl.c:22,1
    - Dst: get_sys_vl_len
      Src: /src/xen/xen/arch/arm/sysctl.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pi
    argTypes:
    - struct xen_sysctl_physinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: arch_do_physinfo
    functionSourceFile: /src/xen/xen/arch/arm/sysctl.c
    functionUses: 0
    functionsReached:
    - get_sys_vl_len
    - sve_encode_vl
    - MASK_INSR
    linkageType: ''
    returnType: void
    signature: void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_overlay_sysctl
      Src: /src/xen/xen/arch/arm/sysctl.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sysctl
    argTypes:
    - struct xen_sysctl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: arch_do_sysctl
    functionSourceFile: /src/xen/xen/arch/arm/sysctl.c
    functionUses: 0
    functionsReached:
    - dt_overlay_sysctl
    linkageType: ''
    returnType: long
    signature: "long arch_do_sysctl(struct xen_sysctl *sysctl,\n                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)
      u_sysctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dbase
    - nr_rdist_regions
    - regions
    - intid_bits
    argTypes:
    - paddr_t
    - unsigned int
    - struct rdist_region*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: vgic_v3_setup_hw
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vgic_v3_setup_hw(paddr_t dbase,\n                      unsigned
      int nr_rdist_regions,\n                      const struct rdist_region *regions,\n
      \                     unsigned int intid_bits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vaffinity_to_vcpuid
      Src: /src/xen/xen/arch/arm/vgic-v3.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - irouter
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: vgic_v3_irouter_to_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - vaffinity_to_vcpuid
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *vgic_v3_irouter_to_vcpu(struct domain *d, uint64_t irouter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:96,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3.c:96,1
    - Dst: vcpuid_to_vaffinity
      Src: /src/xen/xen/arch/arm/vgic-v3.c:104,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - rank
    - offset
    argTypes:
    - struct vgic_irq_rank*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: vgic_fetch_irouter
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - read_atomic
    - vcpuid_to_vaffinity
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t vgic_fetch_irouter(struct vgic_irq_rank *rank,\n                                   unsigned
      int offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:121,1
    - Dst: vgic_v3_irouter_to_vcpu
      Src: /src/xen/xen/arch/arm/vgic-v3.c:126,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:127,1
    - Dst: vgic_migrate_irq
      Src: /src/xen/xen/arch/arm/vgic-v3.c:144,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - d
    - rank
    - virq
    - irouter
    argTypes:
    - struct domain*
    - struct vgic_irq_rank*
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 147
    functionName: vgic_store_irouter
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - vgic_v3_irouter_to_vcpu
    - ASSERT
    - read_atomic
    - vgic_migrate_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_store_irouter(struct domain *d, struct vgic_irq_rank *rank,\n
      \                              unsigned int virq, uint64_t irouter)"
  - BBCount: 329
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:157,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3.c:165,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:166,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3.c:168,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:172,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:174,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:177,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:186,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:189,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:191,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:192,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:193,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:204,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:209,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:213,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:223,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:227,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:234,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:237,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:239,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:240,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:241,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:244,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:250,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:252,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:254,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:261,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:268,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:275,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:278,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:284,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:290,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:303,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:305,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:313,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:319,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:324,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:338,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:345,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:352,1
    - Dst: sanitise_fn
      Src: /src/xen/xen/arch/arm/vgic-v3.c:362,1
    - Dst: switch
      Src: /src/xen/xen/arch/arm/vgic-v3.c:370,1
    - Dst: switch
      Src: /src/xen/xen/arch/arm/vgic-v3.c:382,1
    - Dst: switch
      Src: /src/xen/xen/arch/arm/vgic-v3.c:395,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:407,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:410,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:413,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:424,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:427,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:430,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:442,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:445,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3.c:445,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vgic-v3.c:461,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vgic-v3.c:467,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:482,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:490,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3.c:491,1
    - Dst: vgic_vcpu_enable_lpis
      Src: /src/xen/xen/arch/arm/vgic-v3.c:496,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3.c:498,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:499,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:504,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:508,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:512,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:516,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:526,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:530,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:537,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:540,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:542,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:551,1
    - Dst: sanitize_propbaser
      Src: /src/xen/xen/arch/arm/vgic-v3.c:552,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:556,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:560,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:566,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3.c:568,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:573,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:574,1
    - Dst: sanitize_pendbaser
      Src: /src/xen/xen/arch/arm/vgic-v3.c:575,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:576,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3.c:579,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:587,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:594,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:601,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:608,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:614,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:627,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:636,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:641,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:647,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:659,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:665,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:682,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:685,1
    - Dst: vgic_ext_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:687,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:693,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:711,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:712,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:713,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:714,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:719,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:720,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:722,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:725,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:726,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:727,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:730,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:731,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:733,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:736,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:737,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:738,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:742,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:743,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:744,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:745,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:749,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:750,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:751,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:752,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:755,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:756,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:762,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:765,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:766,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:768,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:769,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:770,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:772,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:777,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:778,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:783,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:786,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:787,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:788,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:789,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:791,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:797,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:804,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:824,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:825,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:826,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:827,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:831,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:832,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:834,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:837,1
    - Dst: vreg_reg32_setbits
      Src: /src/xen/xen/arch/arm/vgic-v3.c:839,1
    - Dst: vgic_enable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v3.c:840,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:841,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:844,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:845,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:847,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:850,1
    - Dst: vreg_reg32_clearbits
      Src: /src/xen/xen/arch/arm/vgic-v3.c:852,1
    - Dst: vgic_disable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v3.c:853,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:854,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:857,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:858,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:860,1
    - Dst: vgic_set_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:864,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:868,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:869,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:871,1
    - Dst: vgic_check_inflight_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:875,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:879,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:880,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:883,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:892,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:901,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:902,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:904,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:908,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:913,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:914,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:919,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:922,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:923,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:924,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:925,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:926,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:927,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:928,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:932,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:935,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:936,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:943,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:946,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:947,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:948,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:948,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:950,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:955,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:962,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:980,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:981,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:982,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:983,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:984,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:985,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:986,1
    - Dst: __vgic_v3_distr_common_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:991,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:995,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:996,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:999,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1017,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1023,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1034,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1041,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1056,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1057,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1058,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1059,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1060,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1061,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1062,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1063,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1068,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1071,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1072,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1075,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1080,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1085,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1092,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1113,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1129,1
    - Dst: get_vcpu_from_rdist
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1131,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1132,1
    - Dst: __vgic_v3_rdistr_rd_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1136,1
    - Dst: vgic_v3_rdistr_sgi_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1138,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1140,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1153,1
    - Dst: get_vcpu_from_rdist
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1155,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1156,1
    - Dst: __vgic_v3_rdistr_rd_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1160,1
    - Dst: vgic_v3_rdistr_sgi_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1162,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1164,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1179,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1183,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1185,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1186,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1187,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1190,1
    - Dst: min_t
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1200,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1206,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1218,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1223,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1228,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1230,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1233,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1236,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1243,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1246,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1249,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1253,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1256,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1260,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1263,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1267,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1270,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1274,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1277,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1278,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1279,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1280,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1281,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1282,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1283,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1284,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1285,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1286,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1287,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1288,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1289,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1290,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1291,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1292,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1293,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1294,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1295,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1296,1
    - Dst: __vgic_v3_distr_common_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1301,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1303,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1304,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1308,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1312,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1316,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1320,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1323,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1324,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1329,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1330,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1333,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1334,1
    - Dst: vgic_fetch_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1335,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1336,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1338,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1342,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1343,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1346,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1349,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1353,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1356,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1359,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1364,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1370,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1384,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1391,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1406,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1410,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1416,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1418,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1425,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1430,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1434,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1438,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1441,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1445,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1448,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1451,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1455,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1458,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1462,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1465,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1469,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1472,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1476,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1479,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1480,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1481,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1482,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1483,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1484,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1485,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1486,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1487,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1488,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1489,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1490,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1491,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1492,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1493,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1494,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1495,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1496,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1497,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1498,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1501,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1504,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1505,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1509,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1513,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1518,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1523,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1526,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1527,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1532,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1533,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1536,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1537,1
    - Dst: vgic_fetch_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1538,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1539,1
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1544,1
    - Dst: vgic_store_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1545,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1546,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1550,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1551,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1554,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1557,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1561,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1565,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1570,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1577,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1590,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1596,1
    - Dst: sgi_target_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1609,1
    - Dst: ICH_SGI_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1618,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1626,1
    - Dst: vgic_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1630,1
    - Dst: vgic_v3_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1638,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1641,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1651,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1654,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1656,1
    - Dst: vreg_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1661,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1674,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1676,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1680,1
    - Dst: vreg_emulate_cp64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1681,1
    - Dst: vgic_v3_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1693,1
    - Dst: vgic_v3_emulate_cp64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1696,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1742,1
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1781,1
    - Dst: vgic_v3_max_rdist_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1791,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1793,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1800,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1801,1
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1808,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1845,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1848,1
    - Dst: vgic_v3_its_init_domain
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1863,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1868,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1880,1
    - Dst: vgic_v3_its_free_domain
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1891,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1899,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1900,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1914,1
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1915,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1916,1
    - Dst: vgic_v3_lpi_to_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1924,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1926,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1944,1
    - Dst: vgic_v3_max_rdist_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1951,1
    - Dst: vgic_v3_its_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1954,1
    - Dst: register_vgic_ops
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1956,1
    CyclomaticComplexity: 286
    EdgeCount: 286
    ICount: 1172
    argCount: 4
    argNames:
    - v
    - info
    - gicr_reg
    - r
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 1968
    functionName: __vgic_v3_rdistr_rd_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - smp_mb
    - vreg_reg32_clearbits
    - get_vcpu_from_rdist
    - vgic_disable_irqs
    - xfree
    - vgic_store_irouter
    - vgic_lock
    - vgic_common_rank_offset
    - printk
    - vreg_emulate_sysreg
    - gdprintk
    - register_vgic_ops
    - REG_RANK_INDEX
    - perfc_incr
    - vgic_reg64_check_access
    - DIV_ROUND_UP
    - unlikely
    - vgic_v3_emulate_sysreg
    - MPIDR_AFFINITY_LEVEL
    - vreg_reg64_extract
    - radix_tree_lookup
    - ACCESS_ONCE
    - sgi_target_init
    - spin_is_locked
    - dprintk
    - vgic_v3_its_init_domain
    - read_lock
    - vgic_v3_lpi_to_pending
    - vgic_rank_offset
    - min_t
    - vgic_sanitise_field
    - vreg_reg32_extract
    - VREG32
    - vgic_v3_rdistr_sgi_mmio_read
    - espi_idx_to_intid
    - vgic_v3_to_sgi
    - xzalloc_array
    - vgic_v3_its_free_domain
    - radix_tree_destroy
    - __vgic_v3_distr_common_mmio_write
    - vgic_ext_rank_offset
    - domain_use_host_layout
    - spin_unlock_irqrestore
    - vgic_unlock_rank
    - __vgic_v3_rdistr_rd_mmio_read
    - vgic_v3_emulate_cp64
    - sanitize_pendbaser
    - vgic_set_irqs_pending
    - sanitise_fn
    - sanitize_propbaser
    - vgic_v3_rdistr_sgi_mmio_write
    - vgic_v3_max_rdist_count
    - vgic_fetch_irouter
    - vreg_reg32_update
    - radix_tree_init
    - rwlock_init
    - BIT
    - vgic_get_reg_offset
    - spin_lock_irqsave
    - __vgic_v3_distr_common_mmio_read
    - vgic_to_sgi
    - vgic_unlock
    - BUILD_BUG_ON
    - vgic_vcpu_enable_lpis
    - gprintk
    - VREG64
    - HSR_CPREG64
    - switch
    - ICH_SGI_AFFINITY_LEVEL
    - vgic_enable_irqs
    - write_atomic
    - __vgic_v3_rdistr_rd_mmio_write
    - VRANGE64
    - register_mmio_handler
    - vgic_v3_its_count
    - vreg_reg64_update
    - read_unlock
    - VRANGE32
    - ASSERT
    - vreg_reg32_setbits
    - vgic_check_inflight_irqs_pending
    - vreg_emulate_cp64
    - read_atomic
    - vgic_lock_rank
    linkageType: ''
    returnType: int
    signature: "int __vgic_v3_rdistr_rd_mmio_read(struct vcpu *v, mmio_info_t *info,\n
      \                                        uint32_t gicr_reg,\n                                         register_t
      *r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:424,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:427,1
    - Dst: vgic_sanitise_field
      Src: /src/xen/xen/arch/arm/vgic-v3.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - reg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: sanitize_pendbaser
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - vgic_sanitise_field
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t sanitize_pendbaser(uint64_t reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:442,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:445,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v3.c:445,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vgic-v3.c:461,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/vgic-v3.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: vgic_vcpu_enable_lpis
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - smp_mb
    - ASSERT
    - spin_is_locked
    - BIT
    linkageType: ''
    returnType: void
    signature: void vgic_vcpu_enable_lpis(struct vcpu *v)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:482,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:490,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3.c:491,1
    - Dst: vgic_vcpu_enable_lpis
      Src: /src/xen/xen/arch/arm/vgic-v3.c:496,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3.c:498,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:499,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:504,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:508,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:512,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:516,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:526,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:530,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:537,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:540,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:542,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:551,1
    - Dst: sanitize_propbaser
      Src: /src/xen/xen/arch/arm/vgic-v3.c:552,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:556,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:560,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:566,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic-v3.c:568,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:573,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:574,1
    - Dst: sanitize_pendbaser
      Src: /src/xen/xen/arch/arm/vgic-v3.c:575,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic-v3.c:576,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic-v3.c:579,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:587,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:594,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:601,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:608,1
    - Dst: VREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:614,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:627,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:636,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:641,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:647,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:659,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:665,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 154
    argCount: 4
    argNames:
    - v
    - info
    - gicr_reg
    - r
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 669
    functionName: __vgic_v3_rdistr_rd_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - vgic_lock
    - vreg_reg64_update
    - vgic_reg64_check_access
    - spin_lock_irqsave
    - vgic_unlock
    - write_atomic
    - sanitize_propbaser
    - spin_unlock_irqrestore
    - vgic_vcpu_enable_lpis
    - read_atomic
    - VREG64
    - printk
    - VREG32
    - sanitize_pendbaser
    linkageType: ''
    returnType: int
    signature: "int __vgic_v3_rdistr_rd_mmio_write(struct vcpu *v, mmio_info_t *info,\n
      \                                         uint32_t gicr_reg,\n                                          register_t
      r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:682,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:685,1
    - Dst: vgic_ext_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - v
    - b
    - reg
    - s
    - spi_base
    - espi_base
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint32_t
    - unsigned int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 688
    functionName: vgic_common_rank_offset
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - vgic_rank_offset
    - ASSERT
    - vgic_ext_rank_offset
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_common_rank_offset(struct vcpu *v,\n                                                            unsigned
      int b,\n                                                            uint32_t
      reg,\n                                                            unsigned int
      s,\n                                                            uint32_t spi_base,\n
      \                                                           uint32_t espi_base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - reg
    - spi_base
    - espi_base
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: vgic_get_reg_offset
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vgic_get_reg_offset(uint32_t reg, uint32_t spi_base,\n                                           uint32_t
      espi_base)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:711,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:712,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:713,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:714,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:719,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:720,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:722,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:725,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:726,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:727,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:730,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:731,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:733,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:736,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:737,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:738,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:742,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:743,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:744,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:745,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:749,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:750,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:751,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:752,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:755,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:756,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:762,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:765,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:766,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:768,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:769,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:770,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:772,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:777,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:778,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:783,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:786,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:787,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:788,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:789,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:791,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:797,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:804,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 94
    argCount: 5
    argNames:
    - name
    - v
    - info
    - reg
    - r
    argTypes:
    - char*
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 811
    functionName: __vgic_v3_distr_common_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - vgic_common_rank_offset
    - vgic_get_reg_offset
    - REG_RANK_INDEX
    - VRANGE32
    - vgic_unlock_rank
    - vgic_lock_rank
    - printk
    - vreg_reg32_extract
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int __vgic_v3_distr_common_mmio_read(const char *name, struct vcpu
      *v,\n                                            mmio_info_t *info, uint32_t
      reg,\n                                            register_t *r)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:824,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:825,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:826,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:827,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:831,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:832,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:834,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:837,1
    - Dst: vreg_reg32_setbits
      Src: /src/xen/xen/arch/arm/vgic-v3.c:839,1
    - Dst: vgic_enable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v3.c:840,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:841,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:844,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:845,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:847,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:850,1
    - Dst: vreg_reg32_clearbits
      Src: /src/xen/xen/arch/arm/vgic-v3.c:852,1
    - Dst: vgic_disable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v3.c:853,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:854,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:857,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:858,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:860,1
    - Dst: vgic_set_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:864,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:868,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:869,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:871,1
    - Dst: vgic_check_inflight_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:875,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:879,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:880,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:883,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:892,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:901,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:902,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:904,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:908,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:913,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:914,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:919,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:922,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:923,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:924,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:925,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:926,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v3.c:927,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:928,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:932,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:935,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:936,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:943,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:946,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:947,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:948,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v3.c:948,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:950,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:955,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:962,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 135
    argCount: 5
    argNames:
    - name
    - v
    - info
    - reg
    - r
    argTypes:
    - char*
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 971
    functionName: __vgic_v3_distr_common_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - vgic_common_rank_offset
    - vreg_reg32_clearbits
    - vgic_enable_irqs
    - vgic_set_irqs_pending
    - vgic_check_inflight_irqs_pending
    - vgic_get_reg_offset
    - REG_RANK_INDEX
    - VRANGE32
    - vgic_unlock_rank
    - vreg_reg32_setbits
    - vgic_lock_rank
    - printk
    - VREG32
    - vgic_disable_irqs
    - ACCESS_ONCE
    - vreg_reg32_update
    linkageType: ''
    returnType: int
    signature: "int __vgic_v3_distr_common_mmio_write(const char *name, struct vcpu
      *v,\n                                             mmio_info_t *info, uint32_t
      reg,\n                                             register_t r)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:980,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:981,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:982,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:983,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:984,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:985,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:986,1
    - Dst: __vgic_v3_distr_common_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:991,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:995,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:996,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:999,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1017,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1023,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1034,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1041,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - v
    - info
    - gicr_reg
    - r
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 1047
    functionName: vgic_v3_rdistr_sgi_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - printk
    - VREG32
    - __vgic_v3_distr_common_mmio_read
    - VRANGE32
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_rdistr_sgi_mmio_read(struct vcpu *v, mmio_info_t *info,\n
      \                                       uint32_t gicr_reg, register_t *r)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1056,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1057,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1058,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1059,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1060,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1061,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1062,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1063,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1068,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1071,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1072,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1075,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1080,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1085,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1092,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - v
    - info
    - gicr_reg
    - r
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - uint32_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1049
    functionDepth: 3
    functionLinenumber: 1049
    functionLinenumberEnd: 1103
    functionName: vgic_v3_rdistr_sgi_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - VREG32
    - __vgic_v3_distr_common_mmio_write
    - printk
    - VRANGE32
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_rdistr_sgi_mmio_write(struct vcpu *v, mmio_info_t *info,\n
      \                                        uint32_t gicr_reg, register_t r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - d
    - region
    - gpa
    - offset
    argTypes:
    - struct domain*
    - struct vgic_rdist_region*
    - paddr_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1121
    functionName: get_vcpu_from_rdist
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *get_vcpu_from_rdist(struct domain *d,\n    const struct
      vgic_rdist_region *region,\n    paddr_t gpa, uint32_t *offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1129,1
    - Dst: get_vcpu_from_rdist
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1131,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1132,1
    - Dst: __vgic_v3_rdistr_rd_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1136,1
    - Dst: vgic_v3_rdistr_sgi_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1138,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1123
    functionDepth: 4
    functionLinenumber: 1123
    functionLinenumberEnd: 1145
    functionName: vgic_v3_rdistr_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - unlikely
    - get_vcpu_from_rdist
    - printk
    - __vgic_v3_rdistr_rd_mmio_read
    - vgic_v3_rdistr_sgi_mmio_read
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_rdistr_mmio_read(struct vcpu *v, mmio_info_t *info,\n
      \                                   register_t *r, void *priv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1153,1
    - Dst: get_vcpu_from_rdist
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1155,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1156,1
    - Dst: __vgic_v3_rdistr_rd_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1160,1
    - Dst: vgic_v3_rdistr_sgi_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1162,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1169
    functionName: vgic_v3_rdistr_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - __vgic_v3_rdistr_rd_mmio_write
    - get_vcpu_from_rdist
    - vgic_v3_rdistr_sgi_mmio_write
    - printk
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_rdistr_mmio_write(struct vcpu *v, mmio_info_t *info,\n
      \                                    register_t r, void *priv)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1179,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1183,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1185,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1186,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1187,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1190,1
    - Dst: min_t
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1200,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1206,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1218,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1223,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1228,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1230,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1233,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1236,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1243,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1246,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1249,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1253,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1256,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1260,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1263,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1267,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1270,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1274,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1277,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1278,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1279,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1280,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1281,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1282,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1283,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1284,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1285,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1286,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1287,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1288,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1289,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1290,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1291,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1292,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1293,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1294,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1295,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1296,1
    - Dst: __vgic_v3_distr_common_mmio_read
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1301,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1303,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1304,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1308,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1312,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1316,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1320,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1323,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1324,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1329,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1330,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1333,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1334,1
    - Dst: vgic_fetch_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1335,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1336,1
    - Dst: vreg_reg64_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1338,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1342,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1343,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1346,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1349,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1353,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1356,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1359,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1364,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1370,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1384,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1391,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 170
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1396
    functionName: vgic_v3_distr_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vgic_lock
    - vgic_common_rank_offset
    - vreg_reg64_extract
    - vgic_fetch_irouter
    - vgic_reg64_check_access
    - VRANGE64
    - vgic_unlock
    - vgic_get_reg_offset
    - DIV_ROUND_UP
    - VRANGE32
    - vgic_unlock_rank
    - min_t
    - vgic_lock_rank
    - printk
    - vreg_reg32_extract
    - VREG32
    - __vgic_v3_distr_common_mmio_read
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_distr_mmio_read(struct vcpu *v, mmio_info_t *info,\n                                   register_t
      *r, void *priv)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1406,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1410,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1416,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1418,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1425,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1430,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1434,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1438,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1441,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1445,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1448,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1451,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1455,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1458,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1462,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1465,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1469,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1472,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1476,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1479,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1480,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1481,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1482,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1483,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1484,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1485,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1486,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1487,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1488,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1489,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1490,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1491,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1492,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1493,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1494,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1495,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1496,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1497,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1498,1
    - Dst: __vgic_v3_distr_common_mmio_write
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1501,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1504,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1505,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1509,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1513,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1518,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1523,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1526,1
    - Dst: VRANGE64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1527,1
    - Dst: vgic_reg64_check_access
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1532,1
    - Dst: vgic_common_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1533,1
    - Dst: vgic_get_reg_offset
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1536,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1537,1
    - Dst: vgic_fetch_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1538,1
    - Dst: vreg_reg64_update
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1539,1
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1544,1
    - Dst: vgic_store_irouter
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1545,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1546,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1550,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1551,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1554,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1557,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1561,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1565,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1570,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1577,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1590,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1596,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 160
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1398
    functionDepth: 3
    functionLinenumber: 1398
    functionLinenumberEnd: 1600
    functionName: vgic_v3_distr_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vgic_lock
    - vgic_common_rank_offset
    - vreg_reg64_update
    - vgic_reg64_check_access
    - VRANGE64
    - vgic_unlock
    - vgic_get_reg_offset
    - espi_idx_to_intid
    - VRANGE32
    - vgic_unlock_rank
    - vgic_lock_rank
    - printk
    - vgic_fetch_irouter
    - VREG32
    - __vgic_v3_distr_common_mmio_write
    - vreg_reg32_update
    - vgic_store_irouter
    linkageType: ''
    returnType: int
    signature: "int vgic_v3_distr_mmio_write(struct vcpu *v, mmio_info_t *info,\n
      \                                   register_t r, void *priv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sgi_target_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1609,1
    - Dst: ICH_SGI_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1618,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1626,1
    - Dst: vgic_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - v
    - sgir
    argTypes:
    - struct vcpu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1631
    functionName: vgic_v3_to_sgi
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - ICH_SGI_AFFINITY_LEVEL
    - gprintk
    - vgic_to_sgi
    - sgi_target_init
    linkageType: ''
    returnType: bool
    signature: bool vgic_v3_to_sgi(struct vcpu *v, uint64_t sgir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1638,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - regs
    - r
    - read
    argTypes:
    - struct cpu_user_regs*
    - uint64_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1644
    functionName: vgic_v3_emulate_sgi1r
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v3_to_sgi
    - gdprintk
    linkageType: ''
    returnType: bool
    signature: "bool vgic_v3_emulate_sgi1r(struct cpu_user_regs *regs, uint64_t *r,\n
      \                                 bool read)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1651,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1654,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1656,1
    - Dst: vreg_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1666
    functionName: vgic_v3_emulate_sysreg
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - perfc_incr
    - ASSERT
    - vreg_emulate_sysreg
    linkageType: ''
    returnType: bool
    signature: bool vgic_v3_emulate_sysreg(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1674,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1676,1
    - Dst: HSR_CPREG64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1680,1
    - Dst: vreg_emulate_cp64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1685
    functionName: vgic_v3_emulate_cp64
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - perfc_incr
    - HSR_CPREG64
    - vreg_emulate_cp64
    linkageType: ''
    returnType: bool
    signature: bool vgic_v3_emulate_cp64(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_emulate_sysreg
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1693,1
    - Dst: vgic_v3_emulate_cp64
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1687
    functionDepth: 2
    functionLinenumber: 1687
    functionLinenumberEnd: 1700
    functionName: vgic_v3_emulate_reg
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v3_emulate_cp64
    - vgic_v3_emulate_sysreg
    linkageType: ''
    returnType: bool
    signature: bool vgic_v3_emulate_reg(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1742,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1762
    functionName: vgic_v3_vcpu_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - dprintk
    linkageType: ''
    returnType: int
    signature: int vgic_v3_vcpu_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1783
    functionName: vgic_v3_max_rdist_count
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - domain_use_host_layout
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_v3_max_rdist_count(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_max_rdist_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1791,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1793,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1800,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1801,1
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1808,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1845,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1848,1
    - Dst: vgic_v3_its_init_domain
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1863,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1868,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1785
    functionDepth: 2
    functionLinenumber: 1785
    functionLinenumberEnd: 1887
    functionName: vgic_v3_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - rwlock_init
    - domain_use_host_layout
    - register_mmio_handler
    - xzalloc_array
    - BUILD_BUG_ON
    - vgic_v3_max_rdist_count
    - vgic_v3_its_init_domain
    - radix_tree_init
    linkageType: ''
    returnType: int
    signature: int vgic_v3_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_its_free_domain
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1891,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1899,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1901
    functionName: vgic_v3_domain_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v3_its_free_domain
    - xfree
    - radix_tree_destroy
    linkageType: ''
    returnType: void
    signature: void vgic_v3_domain_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1914,1
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1915,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - lpi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1919
    functionName: vgic_v3_lpi_to_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 1
    functionsReached:
    - read_unlock
    - read_lock
    - radix_tree_lookup
    linkageType: ''
    returnType: struct pending_irq
    signature: "struct pending_irq *vgic_v3_lpi_to_pending(struct domain *d,\n                                                  unsigned
      int lpi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_lpi_to_pending
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1924,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - vlpi
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1922
    functionDepth: 2
    functionLinenumber: 1922
    functionLinenumberEnd: 1929
    functionName: vgic_v3_lpi_get_priority
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vgic_v3_lpi_to_pending
    linkageType: ''
    returnType: int
    signature: int vgic_v3_lpi_get_priority(struct domain *d, uint32_t vlpi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1944,1
    - Dst: vgic_v3_max_rdist_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1951,1
    - Dst: vgic_v3_its_count
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1954,1
    - Dst: register_vgic_ops
      Src: /src/xen/xen/arch/arm/vgic-v3.c:1956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - d
    - mmio_count
    argTypes:
    - struct domain*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 1959
    functionName: vgic_v3_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v3_max_rdist_count
    - register_vgic_ops
    - vgic_v3_its_count
    - printk
    linkageType: ''
    returnType: int
    signature: int vgic_v3_init(struct domain *d, unsigned int *mmio_count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/kernel.c:48,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/kernel.c:49,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:49,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/kernel.c:50,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/kernel.c:50,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:50,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/kernel.c:57,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:57,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:58,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/kernel.c:63,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/kernel.c:84,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:84,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/kernel.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - info
    - kernbase
    - kernend
    argTypes:
    - struct kernel_info*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 96
    functionName: place_modules
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - MB
    - ROUNDUP
    - panic
    - fdt_totalsize
    - kernel_info_get_mem
    linkageType: ''
    returnType: void
    signature: "void place_modules(struct kernel_info *info,\n                                 paddr_t
      kernbase, paddr_t kernend)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/kernel.c:100,1
    - Dst: MIN
      Src: /src/xen/xen/arch/arm/kernel.c:119,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/kernel.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 129
    functionName: kernel_zimage_place
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - MB
    - MIN
    - kernel_info_get_mem
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t kernel_zimage_place(struct kernel_info *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kernel_zimage_place
      Src: /src/xen/xen/arch/arm/kernel.c:133,1
    - Dst: place_modules
      Src: /src/xen/xen/arch/arm/kernel.c:146,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:148,1
    - Dst: ioremap_wc
      Src: /src/xen/xen/arch/arm/kernel.c:151,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/kernel.c:153,1
    - Dst: copy_to_guest_phys_flush_dcache
      Src: /src/xen/xen/arch/arm/kernel.c:155,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/kernel.c:158,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/kernel.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 161
    functionName: kernel_zimage_load
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - place_modules
    - iounmap
    - panic
    - copy_to_guest_phys_flush_dcache
    - ioremap_wc
    - kernel_zimage_place
    - printk
    linkageType: ''
    returnType: void
    signature: void kernel_zimage_load(struct kernel_info *info)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_paddr
      Src: /src/xen/xen/arch/arm/kernel.c:200,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:202,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:205,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:213,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:218,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:219,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:228,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:231,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:242,1
    - Dst: kernel_decompress
      Src: /src/xen/xen/arch/arm/kernel.c:256,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/kernel.c:281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - info
    - mod
    argTypes:
    - struct kernel_info*
    - struct boot_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 296
    functionName: kernel_uimage_probe
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - copy_from_paddr
    - kernel_decompress
    - printk
    linkageType: ''
    returnType: int
    signature: "int kernel_uimage_probe(struct kernel_info *info,\n                               struct
      boot_module *mod)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_paddr
      Src: /src/xen/xen/arch/arm/kernel.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - info
    - addr
    - size
    argTypes:
    - struct kernel_info*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 351
    functionName: kernel_zimage64_probe
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - copy_from_paddr
    linkageType: ''
    returnType: int
    signature: "int kernel_zimage64_probe(struct kernel_info *info,\n                                        paddr_t
      addr, paddr_t size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_paddr
      Src: /src/xen/xen/arch/arm/kernel.c:367,1
    - Dst: copy_from_paddr
      Src: /src/xen/xen/arch/arm/kernel.c:383,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:384,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/kernel.c:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - info
    - addr
    - size
    argTypes:
    - struct kernel_info*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 404
    functionName: kernel_zimage32_probe
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - copy_from_paddr
    linkageType: ''
    returnType: int
    signature: "int kernel_zimage32_probe(struct kernel_info *info,\n                                        paddr_t
      addr, paddr_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kernel_zimage64_probe
      Src: /src/xen/xen/arch/arm/kernel.c:412,1
    - Dst: kernel_zimage32_probe
      Src: /src/xen/xen/arch/arm/kernel.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - info
    - addr
    - size
    argTypes:
    - struct kernel_info*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: kernel_zimage_probe
    functionSourceFile: /src/xen/xen/arch/arm/kernel.c
    functionUses: 0
    functionsReached:
    - kernel_zimage64_probe
    - kernel_zimage32_probe
    linkageType: ''
    returnType: int
    signature: "int kernel_zimage_probe(struct kernel_info *info, paddr_t addr,\n
      \                              paddr_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_permit_access
      Src: /src/xen/xen/arch/arm/device.c:24,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:27,1
    - Dst: vgic_reserve_virq
      Src: /src/xen/xen/arch/arm/device.c:38,1
    - Dst: route_irq_to_guest
      Src: /src/xen/xen/arch/arm/device.c:40,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:43,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - d
    - irq
    - need_mapping
    - devname
    argTypes:
    - struct domain*
    - unsigned int
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: map_irq_to_domain
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 0
    functionsReached:
    - dt_dprintk
    - irq_permit_access
    - printk
    - route_irq_to_guest
    - vgic_reserve_virq
    linkageType: ''
    returnType: int
    signature: "int map_irq_to_domain(struct domain *d, unsigned int irq,\n                      bool
      need_mapping, const char *devname)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:61,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:62,1
    - Dst: strncasecmp
      Src: /src/xen/xen/arch/arm/device.c:71,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:71,1
    - Dst: strlen
      Src: /src/xen/xen/arch/arm/device.c:72,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/arch/arm/device.c:74,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/device.c:74,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/device.c:75,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:78,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/device.c:81,1
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/arch/arm/device.c:88,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/device.c:89,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/device.c:90,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/device.c:91,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:96,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/device.c:98,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:104,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/arch/arm/device.c:109,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/device.c:110,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/device.c:111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - dev
    - addr
    - len
    - data
    argTypes:
    - struct dt_device_node*
    - uint64_t
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 117
    functionName: map_range_to_domain
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 0
    functionsReached:
    - map_regions_p2mt
    - dt_node_full_name
    - PFN_UP
    - strncasecmp
    - dt_dprintk
    - paddr_to_pfn
    - gaddr_to_gfn
    - rangeset_add_range
    - maddr_to_mfn
    - PAGE_ALIGN
    - strlen
    - printk
    - iomem_permit_access
    linkageType: ''
    returnType: int
    signature: "int map_range_to_domain(const struct dt_device_node *dev,\n                        uint64_t
      addr, uint64_t len, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dt_number_of_irq
      Src: /src/xen/xen/arch/arm/device.c:136,1
    - Dst: dt_device_get_raw_irq
      Src: /src/xen/xen/arch/arm/device.c:141,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:144,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:145,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:155,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:156,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/device.c:160,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:163,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:164,1
    - Dst: map_irq_to_domain
      Src: /src/xen/xen/arch/arm/device.c:168,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/arm/device.c:168,1
    - Dst: rangeset_add_singleton
      Src: /src/xen/xen/arch/arm/device.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - d
    - dev
    - need_mapping
    - irq_ranges
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - bool
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 5
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: map_device_irqs_to_domain
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 0
    functionsReached:
    - rangeset_add_singleton
    - dt_node_full_name
    - dt_dprintk
    - platform_get_irq
    - dt_number_of_irq
    - printk
    - dt_device_get_raw_irq
    - dt_node_name
    - map_irq_to_domain
    linkageType: ''
    returnType: int
    signature: "int map_device_irqs_to_domain(struct domain *d,\n                              struct
      dt_device_node *dev,\n                              bool need_mapping,\n                              struct
      rangeset *irq_ranges)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:194,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/arm/device.c:194,1
    - Dst: irq_set_spi_type
      Src: /src/xen/xen/arch/arm/device.c:199,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:202,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/arm/device.c:203,1
    - Dst: map_irq_to_domain
      Src: /src/xen/xen/arch/arm/device.c:207,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/arm/device.c:207,1
    - Dst: rangeset_add_singleton
      Src: /src/xen/xen/arch/arm/device.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - dev
    - dt_irq
    - data
    argTypes:
    - struct dt_device_node*
    - struct dt_irq*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 183
    functionDepth: 5
    functionLinenumber: 183
    functionLinenumberEnd: 215
    functionName: map_dt_irq_to_domain
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 0
    functionsReached:
    - rangeset_add_singleton
    - irq_set_spi_type
    - printk
    - dt_node_name
    - map_irq_to_domain
    linkageType: ''
    returnType: int
    signature: "int map_dt_irq_to_domain(const struct dt_device_node *dev,\n                                const
      struct dt_irq *dt_irq,\n                                void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/arch/arm/device.c:225,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:229,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:230,1
    - Dst: dt_for_each_irq_map
      Src: /src/xen/xen/arch/arm/device.c:232,1
    - Dst: dt_for_each_range
      Src: /src/xen/xen/arch/arm/device.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dev
    - mr_data
    argTypes:
    - struct dt_device_node*
    - struct map_range_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: map_device_children
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 0
    functionsReached:
    - dt_node_full_name
    - dt_for_each_range
    - dt_dprintk
    - dt_for_each_irq_map
    - dt_device_type_is_equal
    linkageType: ''
    returnType: int
    signature: "int map_device_children(const struct dt_device_node *dev,\n                               struct
      map_range_data *mr_data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_for_passthrough
      Src: /src/xen/xen/arch/arm/device.c:260,1
    - Dst: has_vpci
      Src: /src/xen/xen/arch/arm/device.c:272,1
    - Dst: device_get_class
      Src: /src/xen/xen/arch/arm/device.c:273,1
    - Dst: dt_number_of_address
      Src: /src/xen/xen/arch/arm/device.c:278,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:280,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:281,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:285,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:286,1
    - Dst: iommu_add_dt_device
      Src: /src/xen/xen/arch/arm/device.c:288,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:291,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:292,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/arch/arm/device.c:296,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/device.c:298,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:298,1
    - Dst: iommu_assign_dt_device
      Src: /src/xen/xen/arch/arm/device.c:299,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:302,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:303,1
    - Dst: sci_assign_dt_device
      Src: /src/xen/xen/arch/arm/device.c:308,1
    - Dst: map_device_irqs_to_domain
      Src: /src/xen/xen/arch/arm/device.c:313,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/device.c:320,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/device.c:323,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/device.c:324,1
    - Dst: map_range_to_domain
      Src: /src/xen/xen/arch/arm/device.c:328,1
    - Dst: map_device_children
      Src: /src/xen/xen/arch/arm/device.c:333,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - d
    - dev
    - p2mt
    - iomem_ranges
    - irq_ranges
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - p2m_type_t
    - struct rangeset*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 338
    functionName: handle_device
    functionSourceFile: /src/xen/xen/arch/arm/device.c
    functionUses: 1
    functionsReached:
    - dt_device_get_paddr
    - map_range_to_domain
    - has_vpci
    - dt_node_full_name
    - map_device_children
    - device_get_class
    - dt_dprintk
    - map_device_irqs_to_domain
    - iommu_assign_dt_device
    - printk
    - dt_device_is_protected
    - iommu_add_dt_device
    - dt_number_of_address
    - dt_device_for_passthrough
    - sci_assign_dt_device
    linkageType: ''
    returnType: int
    signature: "int handle_device(struct domain *d, struct dt_device_node *dev, p2m_type_t
      p2mt,\n                  struct rangeset *iomem_ranges, struct rangeset *irq_ranges)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - d
    - param
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 46
    functionName: hvm_allow_set_param
    functionSourceFile: /src/xen/xen/arch/arm/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hvm_allow_set_param(const struct domain *d, unsigned int param)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - d
    - param
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: hvm_allow_get_param
    functionSourceFile: /src/xen/xen/arch/arm/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hvm_allow_get_param(const struct domain *d, unsigned int param)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/arch/arm/hvm.c:85,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/arch/arm/hvm.c:88,1
    - Dst: xsm_hvm_param
      Src: /src/xen/xen/arch/arm/hvm.c:92,1
    - Dst: hvm_allow_set_param
      Src: /src/xen/xen/arch/arm/hvm.c:98,1
    - Dst: hvm_allow_get_param
      Src: /src/xen/xen/arch/arm/hvm.c:106,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/arch/arm/hvm.c:111,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/hvm.c:115,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/arch/arm/hvm.c:120,1
    - Dst: monitor_guest_request
      Src: /src/xen/xen/arch/arm/hvm.c:121,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/hvm.c:128,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 135
    functionName: do_hvm_op
    functionSourceFile: /src/xen/xen/arch/arm/hvm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - hvm_allow_get_param
    - xsm_hvm_param
    - copy_from_guest
    - hvm_allow_set_param
    - monitor_guest_request
    - guest_handle_is_null
    - copy_to_guest
    - rcu_lock_domain_by_any_id
    - rcu_unlock_domain
    linkageType: ''
    returnType: long
    signature: long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:19,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:24,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:25,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:26,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:27,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:28,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:29,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:30,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:31,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:32,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:33,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:34,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:35,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mem_access.c:39,1
    - Dst: p2m_is_locked
      Src: /src/xen/xen/arch/arm/mem_access.c:39,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/mem_access.c:50,1
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/arch/arm/mem_access.c:56,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mem_access.c:56,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/mem_access.c:64,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mem_access.c:66,1
    - Dst: radix_tree_ptr_to_int
      Src: /src/xen/xen/arch/arm/mem_access.c:75,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/mem_access.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - d
    - gfn
    - access
    argTypes:
    - struct domain*
    - gfn_t
    - xenmem_access_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 83
    functionName: __p2m_get_mem_access
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 0
    functionsReached:
    - p2m_get_entry
    - ARRAY_SIZE
    - radix_tree_ptr_to_int
    - gfn_x
    - ASSERT
    - radix_tree_lookup
    - mfn_eq
    - gfn_eq
    - ACCESS
    - p2m_is_locked
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int __p2m_get_mem_access(struct domain *d, gfn_t gfn,\n                                xenmem_access_t
      *access)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:103,1
    - Dst: gva_to_ipa
      Src: /src/xen/xen/arch/arm/mem_access.c:105,1
    - Dst: guest_walk_tables
      Src: /src/xen/xen/arch/arm/mem_access.c:119,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mem_access.c:136,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/mem_access.c:138,1
    - Dst: __p2m_get_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:144,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/mem_access.c:194,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mem_access.c:195,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/mem_access.c:198,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mem_access.c:207,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mem_access.c:209,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/mem_access.c:209,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/mem_access.c:213,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 3
    argNames:
    - gva
    - flag
    - v
    argTypes:
    - vaddr_t
    - unsigned long
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 216
    functionName: p2m_mem_access_check_and_get_page
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 1
    functionsReached:
    - gva_to_ipa
    - mfn_eq
    - unlikely
    - p2m_get_entry
    - p2m_read_unlock
    - mfn_to_page
    - mfn_valid
    - gaddr_to_gfn
    - get_page
    - guest_walk_tables
    - p2m_read_lock
    - __p2m_get_mem_access
    - p2m_get_hostp2m
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\np2m_mem_access_check_and_get_page(vaddr_t gva,
      unsigned long flag,\n                                  const struct vcpu *v)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:225,1
    - Dst: p2m_get_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:231,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mem_access.c:231,1
    - Dst: p2m_set_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:274,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mem_access.c:274,1
    - Dst: p2m_set_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:280,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mem_access.c:280,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/arch/arm/mem_access.c:285,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/mem_access.c:290,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/mem_access.c:293,1
    - Dst: p2m_set_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:302,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/mem_access.c:302,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/mem_access.c:311,1
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/arm/mem_access.c:333,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/mem_access.c:334,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/mem_access.c:336,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 3
    argNames:
    - gpa
    - gla
    - npfec
    argTypes:
    - paddr_t
    - vaddr_t
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 340
    functionName: p2m_mem_access_check
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 1
    functionsReached:
    - p2m_get_mem_access
    - gdprintk
    - xzalloc
    - monitor_traps
    - gaddr_to_gfn
    - vm_event_check_ring
    - p2m_set_mem_access
    - domain_crash
    - xfree
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec
      npfec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:350,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:356,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:357,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:358,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:359,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:360,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:361,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:362,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:363,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:364,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:365,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:366,1
    - Dst: ACCESS
      Src: /src/xen/xen/arch/arm/mem_access.c:367,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/mem_access.c:373,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/mem_access.c:390,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mem_access.c:396,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/mem_access.c:398,1
    - Dst: gfn_next_boundary
      Src: /src/xen/xen/arch/arm/mem_access.c:399,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/mem_access.c:402,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mem_access.c:405,1
    - Dst: p2m_set_entry
      Src: /src/xen/xen/arch/arm/mem_access.c:408,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mem_access.c:413,1
    - Dst: gfn_next_boundary
      Src: /src/xen/xen/arch/arm/mem_access.c:413,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mem_access.c:413,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/mem_access.c:415,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mem_access.c:422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 7
    argNames:
    - d
    - gfn
    - nr
    - start
    - mask
    - access
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - uint32_t
    - uint32_t
    - uint32_t
    - xenmem_access_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 425
    functionName: p2m_set_mem_access
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 2
    functionsReached:
    - p2m_write_lock
    - p2m_get_entry
    - gfn_add
    - ARRAY_SIZE
    - p2m_set_entry
    - gfn_next_boundary
    - gfn_x
    - p2m_write_unlock
    - hypercall_preempt_check
    - mfn_eq
    - gfn_eq
    - ACCESS
    - p2m_get_hostp2m
    linkageType: ''
    returnType: long
    signature: "long p2m_set_mem_access(struct domain *d, gfn_t gfn, uint32_t nr,\n
      \                       uint32_t start, uint32_t mask, xenmem_access_t access,\n
      \                       unsigned int altp2m_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - nr
    - start
    - mask
    - altp2m_idx
    argTypes:
    - struct domain*
    - uint32_t
    - uint32_t
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 435
    functionName: p2m_set_mem_access_multi
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long p2m_set_mem_access_multi(struct domain *d,\n                              const
      XEN_GUEST_HANDLE(const_uint64) pfn_list,\n                              const
      XEN_GUEST_HANDLE(const_uint8) access_list,\n                              uint32_t
      nr, uint32_t start, uint32_t mask,\n                              unsigned int
      altp2m_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:441,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mem_access.c:444,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/mem_access.c:446,1
    - Dst: __p2m_get_mem_access
      Src: /src/xen/xen/arch/arm/mem_access.c:447,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/mem_access.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - d
    - gfn
    - access
    - altp2m_idx
    argTypes:
    - struct domain*
    - gfn_t
    - xenmem_access_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: p2m_get_mem_access
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 7
    functionsReached:
    - p2m_read_unlock
    - ASSERT
    - p2m_read_lock
    - __p2m_get_mem_access
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: "int p2m_get_mem_access(struct domain *d, gfn_t gfn,\n                       xenmem_access_t
      *access, unsigned int altp2m_idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mem_access.c:455,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/mem_access.c:455,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mem_access.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - access_required
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: arch_p2m_set_access_required
    functionSourceFile: /src/xen/xen/arch/arm/mem_access.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - atomic_read
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void arch_p2m_set_access_required(struct domain *d, bool access_required)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/arch/arm/dm.c:33,1
    - Dst: xsm_dm_op
      Src: /src/xen/xen/arch/arm/dm.c:37,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/arm/dm.c:47,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/dm.c:50,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/arch/arm/dm.c:56,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/dm.c:56,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/arch/arm/dm.c:61,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/dm.c:78,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/dm.c:104,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/dm.c:110,1
    - Dst: ioreq_server_dm_op
      Src: /src/xen/xen/arch/arm/dm.c:126,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/arch/arm/dm.c:131,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/dm.c:136,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 73
    argCount: 1
    argNames:
    - op_args
    argTypes:
    - struct dmop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 139
    functionName: dm_op
    functionSourceFile: /src/xen/xen/arch/arm/dm.c
    functionUses: 3
    functionsReached:
    - rcu_lock_remote_domain_by_id
    - array_index_nospec
    - ARRAY_SIZE
    - vgic_inject_irq
    - copy_to_guest_offset
    - copy_from_guest_offset
    - vgic_num_irqs
    - rcu_unlock_domain
    - test_bit
    - ioreq_server_dm_op
    - xsm_dm_op
    linkageType: ''
    returnType: int
    signature: int dm_op(const struct dmop_args *op_args)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:65,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:68,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:71,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:74,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:77,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:80,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:83,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:86,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:89,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:92,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:95,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:98,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:101,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:104,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:107,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:110,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 115
    functionName: gicv3_save_lrs
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - READ_SYSREG_LR
    linkageType: ''
    returnType: void
    signature: void gicv3_save_lrs(struct vcpu *v)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:127,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:130,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:133,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:136,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:139,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:142,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:145,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:148,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:151,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:154,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:157,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:160,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:163,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:166,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:169,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:172,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 177
    functionName: gicv3_restore_lrs
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - WRITE_SYSREG_LR
    linkageType: ''
    returnType: void
    signature: void gicv3_restore_lrs(const struct vcpu *v)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:183,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:184,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:185,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:186,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:187,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:188,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:189,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:190,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:191,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:192,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:193,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:194,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:195,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:196,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:197,1
    - Dst: READ_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:198,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - lr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: gicv3_ich_read_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - READ_SYSREG_LR
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gicv3_ich_read_lr(int lr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:209,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:212,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:215,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:218,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:221,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:224,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:227,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:230,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:233,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:236,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:239,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:242,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:245,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:248,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:251,1
    - Dst: WRITE_SYSREG_LR
      Src: /src/xen/xen/arch/arm/gic-v3.c:254,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:259,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - lr
    - val
    argTypes:
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 260
    functionName: gicv3_ich_write_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - WRITE_SYSREG_LR
    - isb
    linkageType: ''
    returnType: void
    signature: void gicv3_ich_write_lr(int lr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:270,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:273,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: gicv3_enable_sre
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_enable_sre(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3.c:282,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/gic-v3.c:282,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:285,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3.c:288,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/gic-v3.c:293,1
    - Dst: udelay
      Src: /src/xen/xen/arch/arm/gic-v3.c:294,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v3.c:298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - base
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: gicv3_do_wait_for_rwp
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - readl_relaxed
    - MILLISECS
    - udelay
    - dprintk
    - NOW
    linkageType: ''
    returnType: void
    signature: void gicv3_do_wait_for_rwp(void __iomem *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_do_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: gicv3_dist_wait_for_rwp
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_do_wait_for_rwp
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_wait_for_rwp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_do_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: gicv3_redist_wait_for_rwp
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_do_wait_for_rwp
    linkageType: ''
    returnType: void
    signature: void gicv3_redist_wait_for_rwp(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_redist_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:314,1
    - Dst: gicv3_dist_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: gicv3_wait_for_rwp
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_redist_wait_for_rwp
    - gicv3_dist_wait_for_rwp
    linkageType: ''
    returnType: void
    signature: void gicv3_wait_for_rwp(int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/arch/arm/gic-v3.c:324,1
    - Dst: cpumask_any
      Src: /src/xen/xen/arch/arm/gic-v3.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpumask
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: gicv3_get_cpu_from_mask
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - cpumask_and
    - cpumask_any
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_get_cpu_from_mask(const cpumask_t *cpumask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:337,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:338,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:341,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:342,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:345,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:346,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - union gic_state_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 351
    functionName: restore_aprn_regs
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void restore_aprn_regs(const union gic_state_data *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:360,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:361,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:364,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:365,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:368,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:369,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - union gic_state_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 374
    functionName: save_aprn_regs
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - READ_SYSREG
    linkageType: ''
    returnType: void
    signature: void save_aprn_regs(union gic_state_data *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3.c:390,1
    - Dst: gicv3_save_lrs
      Src: /src/xen/xen/arch/arm/gic-v3.c:391,1
    - Dst: save_aprn_regs
      Src: /src/xen/xen/arch/arm/gic-v3.c:392,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:393,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 395
    functionName: gicv3_save_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_save_lrs
    - dsb
    - save_aprn_regs
    - READ_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_save_state(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:401,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:410,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:420,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:421,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:422,1
    - Dst: restore_aprn_regs
      Src: /src/xen/xen/arch/arm/gic-v3.c:423,1
    - Dst: gicv3_restore_lrs
      Src: /src/xen/xen/arch/arm/gic-v3.c:424,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 430
    functionName: gicv3_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - restore_aprn_regs
    - gicv3_restore_lrs
    - dsb
    - isb
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_restore_state(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:439,1
    - Dst: gicv3_ich_read_lr
      Src: /src/xen/xen/arch/arm/gic-v3.c:439,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: gicv3_dump_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_ich_read_lr
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv3_dump_state(const struct vcpu *v)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: espi_intid_to_idx
      Src: /src/xen/xen/arch/arm/gic-v3.c:495,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:530,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/gic-v3.c:532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 2
    argNames:
    - irqd
    - offset
    argTypes:
    - struct irq_desc*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 535
    functionName: get_addr_by_offset
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - espi_intid_to_idx
    - printk
    linkageType: ''
    returnType: void
    signature: void *get_addr_by_offset(struct irq_desc *irqd, uint32_t offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_by_offset
      Src: /src/xen/xen/arch/arm/gic-v3.c:540,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:545,1
    - Dst: gicv3_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - irqd
    - offset
    - wait_for_rwp
    argTypes:
    - struct irq_desc*
    - u32
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 549
    functionName: gicv3_poke_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    - get_addr_by_offset
    - gicv3_wait_for_rwp
    linkageType: ''
    returnType: void
    signature: void gicv3_poke_irq(struct irq_desc *irqd, u32 offset, bool wait_for_rwp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_by_offset
      Src: /src/xen/xen/arch/arm/gic-v3.c:554,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/gic-v3.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - irqd
    - offset
    argTypes:
    - struct irq_desc*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 560
    functionName: gicv3_peek_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - get_addr_by_offset
    - readl
    linkageType: ''
    returnType: bool
    signature: bool gicv3_peek_irq(struct irq_desc *irqd, u32 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: gicv3_unmask_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_poke_irq
    linkageType: ''
    returnType: void
    signature: void gicv3_unmask_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 5
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: gicv3_mask_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_poke_irq
    linkageType: ''
    returnType: void
    signature: void gicv3_mask_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:575,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: gicv3_eoi_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_eoi_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:582,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: gicv3_dir_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_dir_irq(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:588,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 594
    functionName: gicv3_read_irq
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - dsb
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_read_irq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:605,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3.c:605,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-v3.c:609,1
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:610,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-v3.c:614,1
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - irqd
    - active
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 5
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: gicv3_set_active_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_poke_irq
    - spin_is_locked
    - ASSERT
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: void gicv3_set_active_state(struct irq_desc *irqd, bool active)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:621,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3.c:621,1
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:625,1
    - Dst: gicv3_poke_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - irqd
    - pending
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 629
    functionName: gicv3_set_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - gicv3_poke_irq
    linkageType: ''
    returnType: void
    signature: void gicv3_set_pending_state(struct irq_desc *irqd, bool pending)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:649,1
    - Dst: get_addr_by_offset
      Src: /src/xen/xen/arch/arm/gic-v3.c:651,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:655,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:657,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:665,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:667,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:670,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3.c:673,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - desc
    - type
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 681
    functionName: gicv3_set_irq_type
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - smp_processor_id
    - writel_relaxed
    - ASSERT
    - readl_relaxed
    - spin_lock
    - printk
    - get_addr_by_offset
    linkageType: ''
    returnType: void
    signature: void gicv3_set_irq_type(struct irq_desc *desc, unsigned int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_by_offset
      Src: /src/xen/xen/arch/arm/gic-v3.c:686,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:691,1
    - Dst: writeb_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:692,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - priority
    argTypes:
    - struct irq_desc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 694
    functionName: gicv3_set_irq_priority
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - get_addr_by_offset
    - spin_lock
    - writeb_relaxed
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void gicv3_set_irq_priority(struct irq_desc *desc,\n                                   unsigned
      int priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: gic_number_espis
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gic_number_espis(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/arm/gic-v3.c:706,1
    - Dst: GICD_TYPER_ESPIS_NUM
      Src: /src/xen/xen/arch/arm/gic-v3.c:706,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:712,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:716,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:719,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:724,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3.c:724,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:725,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3.c:725,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:729,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3.c:729,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 730
    functionName: gicv3_dist_espi_common_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - writel_relaxed
    - min
    - printk
    - GICD_TYPER_ESPIS_NUM
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_espi_common_init(uint32_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeq_relaxed_non_atomic
      Src: /src/xen/xen/arch/arm/gic-v3.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 738
    functionName: gicv3_dist_espi_init_aff
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - writeq_relaxed_non_atomic
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_espi_init_aff(uint64_t affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 740
    functionName: gicv3_dist_espi_common_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_espi_common_init(uint32_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 742
    functionName: gicv3_dist_espi_init_aff
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_espi_init_aff(uint64_t affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:753,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:755,1
    - Dst: gicv3_lpi_init_host_lpis
      Src: /src/xen/xen/arch/arm/gic-v3.c:759,1
    - Dst: GICD_TYPE_ID_BITS
      Src: /src/xen/xen/arch/arm/gic-v3.c:759,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/gic-v3.c:762,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:765,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:766,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:770,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:774,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:779,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:780,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:788,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3.c:788,1
    - Dst: gicv3_dist_espi_common_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:790,1
    - Dst: gicv3_dist_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:792,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:795,1
    - Dst: gicv3_mpidr_to_affinity
      Src: /src/xen/xen/arch/arm/gic-v3.c:799,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3.c:799,1
    - Dst: writeq_relaxed_non_atomic
      Src: /src/xen/xen/arch/arm/gic-v3.c:804,1
    - Dst: gicv3_dist_espi_init_aff
      Src: /src/xen/xen/arch/arm/gic-v3.c:806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 807
    functionName: gicv3_dist_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_dist_wait_for_rwp
    - GENMASK
    - GICD_TYPE_ID_BITS
    - smp_processor_id
    - gicv3_mpidr_to_affinity
    - writel_relaxed
    - min
    - readl_relaxed
    - gicv3_dist_espi_init_aff
    - printk
    - writeq_relaxed_non_atomic
    - gicv3_lpi_init_host_lpis
    - gicv3_dist_espi_common_init
    linkageType: ''
    returnType: void
    signature: void gicv3_dist_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3.c:813,1
    - Dst: MILLISECS
      Src: /src/xen/xen/arch/arm/gic-v3.c:813,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:816,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:818,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:821,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/gic-v3.c:824,1
    - Dst: cpu_relax
      Src: /src/xen/xen/arch/arm/gic-v3.c:829,1
    - Dst: udelay
      Src: /src/xen/xen/arch/arm/gic-v3.c:830,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v3.c:835,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 840
    functionName: gicv3_enable_redist
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - writel_relaxed
    - readl_relaxed
    - MILLISECS
    - udelay
    - dprintk
    - NOW
    linkageType: ''
    returnType: int
    signature: int gicv3_enable_redist(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:847,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:851,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:852,1
    - Dst: wmb
      Src: /src/xen/xen/arch/arm/gic-v3.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 858
    functionName: gicv3_enable_lpis
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    - readl_relaxed
    - wmb
    linkageType: ''
    returnType: bool
    signature: bool gicv3_enable_lpis(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_populate_rdist
      Src: /src/xen/xen/arch/arm/gic-v3.c:967,1
    - Dst: gicv3_enable_redist
      Src: /src/xen/xen/arch/arm/gic-v3.c:970,1
    - Dst: gicv3_its_host_has_its
      Src: /src/xen/xen/arch/arm/gic-v3.c:974,1
    - Dst: gicv3_enable_lpis
      Src: /src/xen/xen/arch/arm/gic-v3.c:976,1
    - Dst: gicv3_its_setup_collection
      Src: /src/xen/xen/arch/arm/gic-v3.c:978,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3.c:978,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:985,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:989,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:996,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1001,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1002,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1004,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/gic-v3.c:1004,1
    - Dst: gicv3_redist_wait_for_rwp
      Src: /src/xen/xen/arch/arm/gic-v3.c:1006,1
    - Dst: gicv3_enable_sre
      Src: /src/xen/xen/arch/arm/gic-v3.c:1009,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1012,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1015,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1018,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1021,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 962
    functionDepth: 5
    functionLinenumber: 962
    functionLinenumberEnd: 1027
    functionName: gicv3_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_its_setup_collection
    - gicv3_redist_wait_for_rwp
    - gicv3_populate_rdist
    - gicv3_enable_lpis
    - smp_processor_id
    - GENMASK
    - writel_relaxed
    - gicv3_enable_redist
    - isb
    - gicv3_enable_sre
    - gicv3_its_host_has_its
    - WRITE_SYSREG
    linkageType: ''
    returnType: int
    signature: int gicv3_cpu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1031,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: gicv3_cpu_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_cpu_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1039,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1045,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1047,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1049
    functionName: gicv3_hyp_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - panic
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_hyp_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1056,1
    - Dst: gicv3_cpu_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1058,1
    - Dst: gicv3_hyp_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1062,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1052
    functionDepth: 6
    functionLinenumber: 1052
    functionLinenumberEnd: 1068
    functionName: gicv3_secondary_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - gicv3_hyp_init
    - gicv3_cpu_init
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int gicv3_secondary_cpu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1074,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1076,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1078
    functionName: gicv3_hyp_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_hyp_disable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/gic-v3.c:1084,1
    - Dst: cpumask_next
      Src: /src/xen/xen/arch/arm/gic-v3.c:1096,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/gic-v3.c:1103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - base_cpu
    - mask
    - cluster_id
    argTypes:
    - int*
    - struct cpumask*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1113
    functionName: gicv3_compute_target_list
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - cpu_logical_map
    - cpumask_next
    linkageType: ''
    returnType: u16
    signature: "u16 gicv3_compute_target_list(int *base_cpu, const struct cpumask
      *mask,\n                                     uint64_t cluster_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/gic-v3.c:1123,1
    - Dst: gicv3_compute_target_list
      Src: /src/xen/xen/arch/arm/gic-v3.c:1127,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1135,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1137,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1139,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/gic-v3.c:1142,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sgi
    - cpumask
    argTypes:
    - enum gic_sgi
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1146
    functionName: gicv3_send_sgi_list
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - MPIDR_AFFINITY_LEVEL
    - WRITE_SYSREG64
    - cpu_logical_map
    - isb
    - gicv3_compute_target_list
    linkageType: ''
    returnType: void
    signature: void gicv3_send_sgi_list(enum gic_sgi sgi, const cpumask_t *cpumask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/gic-v3.c:1123,1
    - Dst: gicv3_compute_target_list
      Src: /src/xen/xen/arch/arm/gic-v3.c:1127,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1135,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1137,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/gic-v3.c:1139,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/gic-v3.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1143
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 11
    functionsReached:
    - cpu_logical_map
    - MPIDR_AFFINITY_LEVEL
    - WRITE_SYSREG64
    - gicv3_compute_target_list
    linkageType: ''
    returnType: void
    signature: void for_each_cpu(cpu, cpumask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1155,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/gic-v3.c:1160,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1163,1
    - Dst: gicv3_send_sgi_list
      Src: /src/xen/xen/arch/arm/gic-v3.c:1166,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/gic-v3.c:1166,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/gic-v3.c:1166,1
    - Dst: gicv3_send_sgi_list
      Src: /src/xen/xen/arch/arm/gic-v3.c:1169,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - sgi
    - mode
    - cpumask
    argTypes:
    - enum gic_sgi
    - enum gic_sgi_mode
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1174
    functionName: gicv3_send_sgi
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - WRITE_SYSREG64
    - gicv3_send_sgi_list
    - smp_processor_id
    - dsb
    - cpumask_of
    - isb
    linkageType: ''
    returnType: void
    signature: "void gicv3_send_sgi(enum gic_sgi sgi, enum gic_sgi_mode mode,\n                           const
      cpumask_t *cpumask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1179,1
    - Dst: gicv3_cpu_disable
      Src: /src/xen/xen/arch/arm/gic-v3.c:1181,1
    - Dst: gicv3_hyp_disable
      Src: /src/xen/xen/arch/arm/gic-v3.c:1182,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1177
    functionDepth: 2
    functionLinenumber: 1177
    functionLinenumberEnd: 1185
    functionName: gicv3_disable_interface
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_hyp_disable
    - spin_lock
    - gicv3_cpu_disable
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void gicv3_disable_interface(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v3.c:1192,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/gic-v3.c:1193,1
    - Dst: gicv3_ich_write_lr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - lr
    - virq
    - priority
    - hw_irq
    - state
    argTypes:
    - int
    - unsigned int
    - uint8_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1212
    functionName: gicv3_update_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - gicv3_ich_write_lr
    linkageType: ''
    returnType: void
    signature: "void gicv3_update_lr(int lr, unsigned int virq, uint8_t priority,\n
      \                           unsigned int hw_irq, unsigned int state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_ich_write_lr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1217
    functionName: gicv3_clear_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_ich_write_lr
    linkageType: ''
    returnType: void
    signature: void gicv3_clear_lr(int lr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_ich_read_lr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - lr
    - lr_reg
    argTypes:
    - int
    - struct gic_lr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1248
    functionName: gicv3_read_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_ich_read_lr
    linkageType: ''
    returnType: void
    signature: void gicv3_read_lr(int lr, struct gic_lr *lr_reg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1281,1
    - Dst: gicv3_ich_write_lr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - lr
    - lr_reg
    argTypes:
    - int
    - struct gic_lr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1250
    functionDepth: 2
    functionLinenumber: 1250
    functionLinenumberEnd: 1294
    functionName: gicv3_write_lr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - gicv3_ich_write_lr
    linkageType: ''
    returnType: void
    signature: void gicv3_write_lr(int lr, const struct gic_lr *lr_reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1300,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1302,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1304,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - flag
    - status
    argTypes:
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1306
    functionName: gicv3_hcr_status
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void gicv3_hcr_status(uint32_t flag, bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1312
    functionName: gicv3_read_vmcr_priority
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_read_vmcr_priority(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1322,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1323,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1326,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1327,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1330,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1331,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/gic-v3.c:1334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - apr_reg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1339
    functionName: gicv3_read_apr
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BUG
    - READ_SYSREG
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_read_apr(int apr_reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_peek_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: gicv3_read_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_peek_irq
    linkageType: ''
    returnType: bool
    signature: bool gicv3_read_pending_state(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1350,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3.c:1350,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-v3.c:1352,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/gic-v3.c:1353,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/gic-v3.c:1354,1
    - Dst: gicv3_unmask_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1356,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-v3.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1346
    functionDepth: 6
    functionLinenumber: 1346
    functionLinenumberEnd: 1358
    functionName: gicv3_irq_enable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - gicv3_unmask_irq
    - ASSERT
    - dsb
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void gicv3_irq_enable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1364,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/gic-v3.c:1364,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/gic-v3.c:1366,1
    - Dst: gicv3_mask_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1368,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/gic-v3.c:1369,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/gic-v3.c:1370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1360
    functionDepth: 6
    functionLinenumber: 1360
    functionLinenumberEnd: 1371
    functionName: gicv3_irq_disable
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_mask_irq
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - ASSERT
    - set_bit
    linkageType: ''
    returnType: void
    signature: void gicv3_irq_disable(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_irq_enable
      Src: /src/xen/xen/arch/arm/gic-v3.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1373
    functionDepth: 7
    functionLinenumber: 1373
    functionLinenumberEnd: 1378
    functionName: gicv3_irq_startup
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_irq_enable
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gicv3_irq_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_irq_disable
      Src: /src/xen/xen/arch/arm/gic-v3.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1380
    functionDepth: 7
    functionLinenumber: 1380
    functionLinenumberEnd: 1383
    functionName: gicv3_irq_shutdown
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_irq_disable
    linkageType: ''
    returnType: void
    signature: void gicv3_irq_shutdown(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1388
    functionName: gicv3_irq_ack
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv3_irq_ack(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_eoi_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1393,1
    - Dst: gicv3_dir_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1396
    functionName: gicv3_host_irq_end
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_eoi_irq
    - gicv3_dir_irq
    linkageType: ''
    returnType: void
    signature: void gicv3_host_irq_end(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gicv3_eoi_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1403
    functionName: gicv3_guest_irq_end
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_eoi_irq
    linkageType: ''
    returnType: void
    signature: void gicv3_guest_irq_end(struct irq_desc *desc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_addr_by_offset
      Src: /src/xen/xen/arch/arm/gic-v3.c:1414,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/gic-v3.c:1418,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/arch/arm/gic-v3.c:1418,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1420,1
    - Dst: gicv3_get_cpu_from_mask
      Src: /src/xen/xen/arch/arm/gic-v3.c:1422,1
    - Dst: gicv3_mpidr_to_affinity
      Src: /src/xen/xen/arch/arm/gic-v3.c:1423,1
    - Dst: writeq_relaxed_non_atomic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1426,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1429
    functionName: gicv3_irq_set_affinity
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpumask_empty
    - gicv3_mpidr_to_affinity
    - ASSERT
    - spin_lock
    - get_addr_by_offset
    - writeq_relaxed_non_atomic
    - gicv3_get_cpu_from_mask
    linkageType: ''
    returnType: void
    signature: void gicv3_irq_set_affinity(struct irq_desc *desc, const cpumask_t
      *mask)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v3.c:1439,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1442,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v3.c:1443,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v3.c:1446,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/gic-v3.c:1450,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/arch/arm/gic-v3.c:1455,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/arch/arm/gic-v3.c:1455,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/arch/arm/gic-v3.c:1455,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/gic-v3.c:1465,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v3.c:1467,1
    - Dst: FDT_ERR_XEN
      Src: /src/xen/xen/arch/arm/gic-v3.c:1469,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/gic-v3.c:1471,1
    - Dst: gicv3_its_make_hwdom_dt_nodes
      Src: /src/xen/xen/arch/arm/gic-v3.c:1475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1476
    functionName: gicv3_make_hwdom_dt_node
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - dt_cells_to_size
    - gicv3_its_make_hwdom_dt_nodes
    - dt_n_size_cells
    - FDT_ERR_XEN
    - dt_n_addr_cells
    - fdt_property_cell
    - dt_get_property
    - fdt_property
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int gicv3_make_hwdom_dt_node(const struct domain *d,\n                                    const
      struct dt_device_node *gic,\n                                    void *fdt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1518,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1525,1
    - Dst: vgic_v2_setup_hw
      Src: /src/xen/xen/arch/arm/gic-v3.c:1528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1529
    functionName: gicv3_init_v2
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v2_setup_hw
    - printk
    linkageType: ''
    returnType: void
    signature: void gicv3_init_v2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1531
    functionName: gicv3_init_v2
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv3_init_v2(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1537,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v3.c:1540,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dist_paddr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1543
    functionName: gicv3_ioremap_distributor
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - panic
    - ioremap_nocache
    linkageType: ''
    returnType: void
    signature: void gicv3_ioremap_distributor(paddr_t dist_paddr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1551,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1553,1
    - Dst: gicv3_ioremap_distributor
      Src: /src/xen/xen/arch/arm/gic-v3.c:1555,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v3.c:1557,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/gic-v3.c:1561,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1563,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1569,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1571,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/gic-v3.c:1577,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/gic-v3.c:1582,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1584,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1591,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/gic-v3.c:1594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1545
    functionDepth: 2
    functionLinenumber: 1545
    functionLinenumberEnd: 1596
    functionName: gicv3_dt_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - gicv3_ioremap_distributor
    - dt_property_read_u32
    - panic
    - platform_get_irq
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void gicv3_dt_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v3.c:1604,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3.c:1605,1
    - Dst: gicv3_its_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3.c:1609,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v3.c:1616,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3.c:1617,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v3.c:1625,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3.c:1626,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/gic-v3.c:1634,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/gic-v3.c:1635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1639
    functionName: gicv3_iomem_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_its_deny_access
    - iomem_deny_access
    - PFN_UP
    linkageType: ''
    returnType: int
    signature: int gicv3_iomem_deny_access(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - base
    - size
    - single_rdist
    argTypes:
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1650
    functionName: gic_acpi_add_rdist_region
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gic_acpi_add_rdist_region(paddr_t base, paddr_t size, bool single_rdist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1655
    functionName: gic_dist_supports_dvis
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: bool
    signature: bool gic_dist_supports_dvis(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_get_entry_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1666,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1669,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v3.c:1673,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/gic-v3.c:1679,1
    - Dst: vcpuid_to_vaffinity
      Src: /src/xen/xen/arch/arm/gic-v3.c:1683,1
    - Dst: gicv3_its_make_hwdom_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 2
    argNames:
    - d
    - offset
    argTypes:
    - struct domain*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1712
    functionName: gicv3_make_hwdom_madt
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - acpi_table_get_entry_madt
    - container_of
    - vcpuid_to_vaffinity
    - printk
    - gicv3_its_make_hwdom_madt
    - memcpy
    linkageType: ''
    returnType: int
    signature: int gicv3_make_hwdom_madt(const struct domain *d, u32 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_its_count
      Src: /src/xen/xen/arch/arm/gic-v3.c:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1724
    functionName: gicv3_get_hwdom_extra_madt_size
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - vgic_v3_its_count
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gicv3_get_hwdom_extra_madt_size(const struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v3.c:1732,1
    - Dst: BAD_MADT_GICC_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v3.c:1734,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/gic-v3.c:1745,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/gic-v3.c:1747,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1763
    functionName: gic_acpi_parse_madt_cpu
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_GICC_ENTRY
    - irq_set_type
    - printk
    - container_of
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_madt_cpu(struct acpi_subtable_header *header,\n
      \                       const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/gic-v3.c:1770,1
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v3.c:1772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1778
    functionName: gic_acpi_parse_madt_distributor
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_ENTRY
    - container_of
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_madt_distributor(struct acpi_subtable_header *header,\n
      \                               const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gic_dist_supports_dvis
      Src: /src/xen/xen/arch/arm/gic-v3.c:1791,1
    - Dst: gic_acpi_add_rdist_region
      Src: /src/xen/xen/arch/arm/gic-v3.c:1792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1795
    functionName: gic_acpi_parse_cpu_redistributor
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gic_acpi_add_rdist_region
    - gic_dist_supports_dvis
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_cpu_redistributor(struct acpi_subtable_header *header,\n
      \                                const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BAD_MADT_GICC_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v3.c:1804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1808
    functionName: gic_acpi_get_madt_cpu_num
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_GICC_ENTRY
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_get_madt_cpu_num(struct acpi_subtable_header *header,\n
      \                         const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BAD_MADT_ENTRY
      Src: /src/xen/xen/arch/arm/gic-v3.c:1817,1
    - Dst: gic_acpi_add_rdist_region
      Src: /src/xen/xen/arch/arm/gic-v3.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 1823
    functionName: gic_acpi_parse_madt_redistributor
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gic_acpi_add_rdist_region
    - BAD_MADT_ENTRY
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_parse_madt_redistributor(struct acpi_subtable_header
      *header,\n                                  const unsigned long end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1833
    functionName: gic_acpi_get_madt_redistributor_num
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gic_acpi_get_madt_redistributor_num(struct acpi_subtable_header
      *header,\n                                    const unsigned long end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1845,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1848,1
    - Dst: gicv3_ioremap_distributor
      Src: /src/xen/xen/arch/arm/gic-v3.c:1850,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1853,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1857,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1860,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/gic-v3.c:1865,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1867,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1873,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1877,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1880,1
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/gic-v3.c:1883,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1886,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1835
    functionDepth: 2
    functionLinenumber: 1835
    functionLinenumberEnd: 1908
    functionName: gicv3_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - panic
    - gicv3_ioremap_distributor
    - acpi_table_parse_madt
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void gicv3_acpi_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1910
    functionName: gicv3_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gicv3_acpi_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1913
    functionDepth: 0
    functionLinenumber: 1913
    functionLinenumberEnd: 1916
    functionName: gic_dist_supports_lpis
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: bool
    signature: bool gic_dist_supports_lpis(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1927,1
    - Dst: gicv3_dt_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1932,1
    - Dst: gicv3_acpi_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1934,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1936,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1938,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/gic-v3.c:1944,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1948,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1951,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1958,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/gic-v3.c:1963,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/gic-v3.c:1967,1
    - Dst: GICD_TYPE_ID_BITS
      Src: /src/xen/xen/arch/arm/gic-v3.c:1968,1
    - Dst: vgic_v3_setup_hw
      Src: /src/xen/xen/arch/arm/gic-v3.c:1970,1
    - Dst: gicv3_init_v2
      Src: /src/xen/xen/arch/arm/gic-v3.c:1971,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1973,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1975,1
    - Dst: gicv3_dist_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1977,1
    - Dst: gic_dist_supports_lpis
      Src: /src/xen/xen/arch/arm/gic-v3.c:1979,1
    - Dst: gicv3_its_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1981,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/gic-v3.c:1983,1
    - Dst: gicv3_cpu_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1986,1
    - Dst: gicv3_hyp_init
      Src: /src/xen/xen/arch/arm/gic-v3.c:1990,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/gic-v3.c:1993,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1919
    functionDepth: 6
    functionLinenumber: 1919
    functionLinenumberEnd: 1996
    functionName: gicv3_init
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - gicv3_its_init
    - spin_unlock
    - gicv3_acpi_init
    - gicv3_cpu_init
    - panic
    - GICD_TYPE_ID_BITS
    - vgic_v3_setup_hw
    - readl_relaxed
    - gicv3_dt_init
    - ioremap_nocache
    - spin_lock
    - printk
    - gicv3_init_v2
    - gicv3_dist_init
    - gic_dist_supports_lpis
    - spin_lock_init
    - gicv3_hyp_init
    - dprintk
    linkageType: ''
    returnType: int
    signature: int gicv3_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_gic_ops
      Src: /src/xen/xen/arch/arm/gic-v3.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2041
    functionName: gicv3_dt_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - register_gic_ops
    linkageType: ''
    returnType: int
    signature: int gicv3_dt_preinit(struct dt_device_node *node, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_gic_ops
      Src: /src/xen/xen/arch/arm/gic-v3.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2062
    functionName: gicv3_acpi_preinit
    functionSourceFile: /src/xen/xen/arch/arm/gic-v3.c
    functionUses: 0
    functionsReached:
    - register_gic_ops
    linkageType: ''
    returnType: int
    signature: int gicv3_acpi_preinit(const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - regs
    - uuid
    argTypes:
    - struct cpu_user_regs*
    - xen_uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 54
    functionName: fill_uid
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - set_user_reg
    linkageType: ''
    returnType: bool
    signature: bool fill_uid(struct cpu_user_regs *regs, xen_uuid_t uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:65,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - regs
    - major
    - minor
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: fill_revision
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - set_user_reg
    linkageType: ''
    returnType: bool
    signature: "bool fill_revision(struct cpu_user_regs *regs, uint32_t major,\n                         uint32_t
      minor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - cnt
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: fill_function_call_count
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - set_user_reg
    linkageType: ''
    returnType: bool
    signature: bool fill_function_call_count(struct cpu_user_regs *regs, uint32_t
      cnt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:85,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:90,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:95,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/vsmc.c:105,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/vsmc.c:106,1
    - Dst: get_ssbd_state
      Src: /src/xen/xen/arch/arm/vsmc.c:110,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/vsmc.c:127,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:132,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:144,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vsmc.c:150,1
    - Dst: get_ssbd_state
      Src: /src/xen/xen/arch/arm/vsmc.c:150,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/arm/vsmc.c:154,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/arch/arm/vsmc.c:156,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 163
    functionName: handle_arch
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - cpus_have_cap
    - get_cpu_info
    - set_user_reg
    - get_user_reg
    - get_ssbd_state
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool handle_arch(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:168,1
    - Dst: ARM_SMCCC_CALL_COUNT_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:172,1
    - Dst: fill_function_call_count
      Src: /src/xen/xen/arch/arm/vsmc.c:173,1
    - Dst: ARM_SMCCC_CALL_UID_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:174,1
    - Dst: fill_uid
      Src: /src/xen/xen/arch/arm/vsmc.c:175,1
    - Dst: ARM_SMCCC_REVISION_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:176,1
    - Dst: fill_revision
      Src: /src/xen/xen/arch/arm/vsmc.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 182
    functionName: handle_hypervisor
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - get_user_reg
    - fill_revision
    - ARM_SMCCC_CALL_UID_FID
    - fill_function_call_count
    - ARM_SMCCC_CALL_COUNT_FID
    - ARM_SMCCC_REVISION_FID
    - fill_uid
    linkageType: ''
    returnType: bool
    signature: bool handle_hypervisor(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:188,1
    - Dst: do_vpsci_0_1_call
      Src: /src/xen/xen/arch/arm/vsmc.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: handle_existing_apis
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - do_vpsci_0_1_call
    - get_user_reg
    linkageType: ''
    returnType: bool
    signature: bool handle_existing_apis(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: is_psci_fid
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_psci_fid(uint32_t fid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:203,1
    - Dst: is_psci_fid
      Src: /src/xen/xen/arch/arm/vsmc.c:205,1
    - Dst: do_vpsci_0_2_call
      Src: /src/xen/xen/arch/arm/vsmc.c:206,1
    - Dst: is_ffa_fid
      Src: /src/xen/xen/arch/arm/vsmc.c:208,1
    - Dst: tee_handle_call
      Src: /src/xen/xen/arch/arm/vsmc.c:209,1
    - Dst: ARM_SMCCC_CALL_COUNT_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:213,1
    - Dst: fill_function_call_count
      Src: /src/xen/xen/arch/arm/vsmc.c:214,1
    - Dst: ARM_SMCCC_CALL_UID_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:216,1
    - Dst: fill_uid
      Src: /src/xen/xen/arch/arm/vsmc.c:217,1
    - Dst: ARM_SMCCC_REVISION_FID
      Src: /src/xen/xen/arch/arm/vsmc.c:219,1
    - Dst: fill_revision
      Src: /src/xen/xen/arch/arm/vsmc.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: handle_sssc
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - is_psci_fid
    - get_user_reg
    - fill_revision
    - is_ffa_fid
    - tee_handle_call
    - fill_function_call_count
    - ARM_SMCCC_CALL_UID_FID
    - ARM_SMCCC_CALL_COUNT_FID
    - ARM_SMCCC_REVISION_FID
    - do_vpsci_0_2_call
    - fill_uid
    linkageType: ''
    returnType: bool
    signature: bool handle_sssc(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: platform_smc
      Src: /src/xen/xen/arch/arm/vsmc.c:232,1
    - Dst: sci_handle_call
      Src: /src/xen/xen/arch/arm/vsmc.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: handle_sip
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - sci_handle_call
    - platform_smc
    linkageType: ''
    returnType: bool
    signature: bool handle_sip(struct cpu_user_regs *regs)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:247,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/vsmc.c:273,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/vsmc.c:273,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:275,1
    - Dst: handle_existing_apis
      Src: /src/xen/xen/arch/arm/vsmc.c:287,1
    - Dst: smccc_get_owner
      Src: /src/xen/xen/arch/arm/vsmc.c:290,1
    - Dst: handle_arch
      Src: /src/xen/xen/arch/arm/vsmc.c:293,1
    - Dst: handle_hypervisor
      Src: /src/xen/xen/arch/arm/vsmc.c:296,1
    - Dst: handle_sssc
      Src: /src/xen/xen/arch/arm/vsmc.c:299,1
    - Dst: handle_sip
      Src: /src/xen/xen/arch/arm/vsmc.c:302,1
    - Dst: tee_handle_call
      Src: /src/xen/xen/arch/arm/vsmc.c:306,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vsmc.c:313,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/vsmc.c:316,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 320
    functionName: vsmccc_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - handle_sip
    - smccc_is_conv_64
    - smccc_get_owner
    - set_user_reg
    - is_32bit_domain
    - get_user_reg
    - gprintk
    - tee_handle_call
    - handle_existing_apis
    - handle_arch
    - handle_hypervisor
    - handle_sssc
    linkageType: ''
    returnType: bool
    signature: bool vsmccc_handle_call(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/vsmc.c:326,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vsmc.c:328,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/vsmc.c:333,1
    - Dst: monitor_smc
      Src: /src/xen/xen/arch/arm/vsmc.c:335,1
    - Dst: vsmccc_handle_call
      Src: /src/xen/xen/arch/arm/vsmc.c:347,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/vsmc.c:348,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vsmc.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 322
    functionDepth: 6
    functionLinenumber: 322
    functionLinenumberEnd: 351
    functionName: do_trap_smc
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - check_conditional_instr
    - IS_ENABLED
    - monitor_smc
    - inject_undef_exception
    - vsmccc_handle_call
    linkageType: ''
    returnType: void
    signature: void do_trap_smc(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsmccc_handle_call
      Src: /src/xen/xen/arch/arm/vsmc.c:361,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/vsmc.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: do_trap_hvc_smccc
    functionSourceFile: /src/xen/xen/arch/arm/vsmc.c
    functionUses: 0
    functionsReached:
    - inject_undef_exception
    - vsmccc_handle_call
    linkageType: ''
    returnType: void
    signature: void do_trap_hvc_smccc(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:63,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:64,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:65,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:66,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:68,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:69,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/traps.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: parse_vwfi
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_vwfi(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: get_default_hcr_flags
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: register_t
    signature: register_t get_default_hcr_flags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HCPTR_CP
      Src: /src/xen/xen/arch/arm/traps.c:118,1
    - Dst: HCPTR_CP
      Src: /src/xen/xen/arch/arm/traps.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: get_default_cptr_flags
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - HCPTR_CP
    linkageType: ''
    returnType: register_t
    signature: register_t get_default_cptr_flags(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/traps.c:129,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/traps.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: parse_serrors_behavior
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_serrors_behavior(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpus_set_cap
      Src: /src/xen/xen/arch/arm/traps.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: update_serrors_cpu_caps
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - cpus_set_cap
    linkageType: ''
    returnType: int
    signature: int update_serrors_cpu_caps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:155,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:158,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:162,1
    - Dst: HSTR_T
      Src: /src/xen/xen/arch/arm/traps.c:162,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:164,1
    - Dst: get_default_cptr_flags
      Src: /src/xen/xen/arch/arm/traps.c:164,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:171,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/traps.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 173
    functionName: init_traps
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - get_default_cptr_flags
    - HSTR_T
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void init_traps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:177,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/traps.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: __div0
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG
    - printk
    linkageType: ''
    returnType: void
    signature: void __div0(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:186,1
    - Dst: xen_major_version
      Src: /src/xen/xen/arch/arm/traps.c:187,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/arch/arm/traps.c:187,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/arch/arm/traps.c:187,1
    - Dst: xen_build_info
      Src: /src/xen/xen/arch/arm/traps.c:193,1
    - Dst: print_tainted
      Src: /src/xen/xen/arch/arm/traps.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: print_xen_info
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - print_tainted
    - xen_extra_version
    - xen_minor_version
    - printk
    - xen_build_info
    - xen_major_version
    linkageType: ''
    returnType: void
    signature: void print_xen_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: is_zero_register
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_zero_register(int reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: is_zero_register
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_zero_register(int reg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:222,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/arm/traps.c:222,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:235,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:235,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:235,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:238,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:238,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:238,1
    - Dst: fiq_mode
      Src: /src/xen/xen/arch/arm/traps.c:239,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:244,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:244,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:244,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:245,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:245,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:245,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:246,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:246,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:246,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:247,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:247,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:247,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:248,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:248,1
    - Dst: REGOFFS
      Src: /src/xen/xen/arch/arm/traps.c:248,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/traps.c:270,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/traps.c:275,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:283,1
    - Dst: is_zero_register
      Src: /src/xen/xen/arch/arm/traps.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 2
    argNames:
    - regs
    - reg
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 286
    functionName: select_user_reg
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG
    - fiq_mode
    - BUILD_BUG_ON
    - BUG_ON
    - REGOFFS
    - is_zero_register
    - guest_mode
    linkageType: ''
    returnType: register_t
    signature: register_t *select_user_reg(struct cpu_user_regs *regs, int reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: REGOFFS
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGOFFS(R)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero_register
      Src: /src/xen/xen/arch/arm/traps.c:290,1
    - Dst: select_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - regs
    - reg
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: get_user_reg
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 8
    functionsReached:
    - is_zero_register
    - select_user_reg
    linkageType: ''
    returnType: register_t
    signature: register_t get_user_reg(struct cpu_user_regs *regs, int reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero_register
      Src: /src/xen/xen/arch/arm/traps.c:298,1
    - Dst: select_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - regs
    - reg
    - value
    argTypes:
    - struct cpu_user_regs*
    - int
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 302
    functionName: set_user_reg
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 9
    functionsReached:
    - is_zero_register
    - select_user_reg
    linkageType: ''
    returnType: void
    signature: void set_user_reg(struct cpu_user_regs *regs, int reg, register_t value)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - fsc
    - level
    argTypes:
    - uint32_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 359
    functionName: decode_fsc
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *decode_fsc(uint32_t fsc, int *level)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - level
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 371
    functionName: fsc_level_str
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fsc_level_str(int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_fsc
      Src: /src/xen/xen/arch/arm/traps.c:380,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:382,1
    - Dst: fsc_level_str
      Src: /src/xen/xen/arch/arm/traps.c:386,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/traps.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - par
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: panic_PAR
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - decode_fsc
    - panic
    - printk
    - fsc_level_str
    linkageType: ''
    returnType: void
    signature: void panic_PAR(uint64_t par)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - regs
    - mode
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: cpsr_switch_mode
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    linkageType: ''
    returnType: void
    signature: void cpsr_switch_mode(struct cpu_user_regs *regs, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:409,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - offset
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 415
    functionName: exception_handler32
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    linkageType: ''
    returnType: vaddr_t
    signature: vaddr_t exception_handler32(vaddr_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:429,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:429,1
    - Dst: cpsr_switch_mode
      Src: /src/xen/xen/arch/arm/traps.c:432,1
    - Dst: exception_handler32
      Src: /src/xen/xen/arch/arm/traps.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 440
    functionName: inject_undef32_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - is_32bit_domain
    - cpsr_switch_mode
    - exception_handler32
    linkageType: ''
    returnType: void
    signature: void inject_undef32_exception(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:457,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:457,1
    - Dst: cpsr_switch_mode
      Src: /src/xen/xen/arch/arm/traps.c:459,1
    - Dst: exception_handler32
      Src: /src/xen/xen/arch/arm/traps.c:465,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:468,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:477,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:478,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:481,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:483,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:484,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:491,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:492,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:495,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:497,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - regs
    - prefetch
    - addr
    argTypes:
    - struct cpu_user_regs*
    - int
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 502
    functionName: inject_abt32_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - exception_handler32
    - is_32bit_domain
    - cpsr_switch_mode
    - BUG_ON
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: "void inject_abt32_exception(struct cpu_user_regs *regs,\n                                   int
      prefetch,\n                                   register_t addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inject_abt32_exception
      Src: /src/xen/xen/arch/arm/traps.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: inject_dabt32_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_abt32_exception
    linkageType: ''
    returnType: void
    signature: "void inject_dabt32_exception(struct cpu_user_regs *regs,\n                                    register_t
      addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inject_abt32_exception
      Src: /src/xen/xen/arch/arm/traps.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: inject_pabt32_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_abt32_exception
    linkageType: ''
    returnType: void
    signature: "void inject_pabt32_exception(struct cpu_user_regs *regs,\n                                    register_t
      addr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:523,1
    - Dst: usr_mode
      Src: /src/xen/xen/arch/arm/traps.c:525,1
    - Dst: psr_mode
      Src: /src/xen/xen/arch/arm/traps.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - regs
    - offset
    argTypes:
    - struct cpu_user_regs*
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 533
    functionName: exception_handler64
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - usr_mode
    - psr_mode
    linkageType: ''
    returnType: vaddr_t
    signature: vaddr_t exception_handler64(struct cpu_user_regs *regs, vaddr_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:545,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:545,1
    - Dst: exception_handler64
      Src: /src/xen/xen/arch/arm/traps.c:547,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 557
    functionName: inject_undef64_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - exception_handler64
    - is_32bit_domain
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void inject_undef64_exception(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:570,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:577,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:577,1
    - Dst: exception_handler64
      Src: /src/xen/xen/arch/arm/traps.c:579,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:588,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - regs
    - prefetch
    - addr
    argTypes:
    - struct cpu_user_regs*
    - int
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: inject_abt64_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - is_32bit_domain
    - exception_handler64
    - BUG_ON
    - regs_mode_is_user
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: "void inject_abt64_exception(struct cpu_user_regs *regs,\n                                   int
      prefetch,\n                                   register_t addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inject_abt64_exception
      Src: /src/xen/xen/arch/arm/traps.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 596
    functionName: inject_dabt64_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_abt64_exception
    linkageType: ''
    returnType: void
    signature: "void inject_dabt64_exception(struct cpu_user_regs *regs,\n                                    register_t
      addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inject_abt64_exception
      Src: /src/xen/xen/arch/arm/traps.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: inject_iabt64_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_abt64_exception
    linkageType: ''
    returnType: void
    signature: "void inject_iabt64_exception(struct cpu_user_regs *regs,\n                                    register_t
      addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:608,1
    - Dst: inject_undef32_exception
      Src: /src/xen/xen/arch/arm/traps.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 614
    functionName: inject_undef_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 10
    functionsReached:
    - inject_undef32_exception
    - is_32bit_domain
    linkageType: ''
    returnType: void
    signature: void inject_undef_exception(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:619,1
    - Dst: inject_pabt32_exception
      Src: /src/xen/xen/arch/arm/traps.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 625
    functionName: inject_iabt_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_pabt32_exception
    - is_32bit_domain
    linkageType: ''
    returnType: void
    signature: "void inject_iabt_exception(struct cpu_user_regs *regs,\n                                  register_t
      addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:630,1
    - Dst: inject_dabt32_exception
      Src: /src/xen/xen/arch/arm/traps.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - addr
    argTypes:
    - struct cpu_user_regs*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: inject_dabt_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - is_32bit_domain
    - inject_dabt32_exception
    linkageType: ''
    returnType: void
    signature: "void inject_dabt_exception(struct cpu_user_regs *regs,\n                                  register_t
      addr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/traps.c:645,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/traps.c:648,1
    - Dst: vcpu_hcr_set_flags
      Src: /src/xen/xen/arch/arm/traps.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 673
    functionName: inject_vabt_exception
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - ASSERT
    - vcpu_hcr_set_flags
    linkageType: ''
    returnType: void
    signature: void inject_vabt_exception(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inject_vabt_exception
      Src: /src/xen/xen/arch/arm/traps.c:699,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/traps.c:701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - regs
    - guest
    argTypes:
    - struct cpu_user_regs*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 702
    functionName: __do_trap_serror
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - inject_vabt_exception
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void __do_trap_serror(struct cpu_user_regs *regs, bool guest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/traps.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cpsr
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 752
    functionName: mode_string
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *mode_string(register_t cpsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:761,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:762,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:764,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:766,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:766,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:767,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:769,1
    - Dst: mode_string
      Src: /src/xen/xen/arch/arm/traps.c:770,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:771,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:773,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:775,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:786,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:788,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:790,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:792,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:794,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:796,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:798,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:804,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:807,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:811,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:812,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:813,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:814,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:815,1
    - Dst: CONFIG_ARM_64
      Src: /src/xen/xen/arch/arm/traps.c:817,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - regs
    - ctxt
    - guest_mode_on
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct reg_ctxt*
    - bool
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 828
    functionName: show_registers_32
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    - _p
    - CONFIG_ARM_64
    - mode_string
    linkageType: ''
    returnType: void
    signature: "void show_registers_32(const struct cpu_user_regs *regs,\n                              const
      struct reg_ctxt *ctxt,\n                              bool guest_mode_on,\n
      \                             const struct vcpu *v)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:837,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:839,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:841,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:841,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:842,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:843,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:846,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:847,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:851,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:853,1
    - Dst: mode_string
      Src: /src/xen/xen/arch/arm/traps.c:854,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:855,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:857,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:859,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:861,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:863,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:865,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:867,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:869,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:871,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:873,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:875,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:879,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:880,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:881,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:882,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:883,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:884,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:885,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:886,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 4
    argNames:
    - regs
    - ctxt
    - guest_mode_on
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct reg_ctxt*
    - bool
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 889
    functionName: show_registers_64
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - mode_string
    - printk
    - _p
    linkageType: ''
    returnType: void
    signature: "void show_registers_64(const struct cpu_user_regs *regs,\n                              const
      struct reg_ctxt *ctxt,\n                              bool guest_mode_on,\n
      \                             const struct vcpu *v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: print_xen_info
      Src: /src/xen/xen/arch/arm/traps.c:897,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:899,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/traps.c:899,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:903,1
    - Dst: show_registers_32
      Src: /src/xen/xen/arch/arm/traps.c:904,1
    - Dst: show_registers_64
      Src: /src/xen/xen/arch/arm/traps.c:913,1
    - Dst: show_registers_32
      Src: /src/xen/xen/arch/arm/traps.c:915,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:918,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:918,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:920,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:922,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:924,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:924,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:925,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:925,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:927,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/traps.c:927,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:929,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:930,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:931,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:931,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:934,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:934,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:935,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:935,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:937,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/traps.c:937,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - regs
    - ctxt
    - guest_mode_on
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct reg_ctxt*
    - bool
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 940
    functionName: _show_registers
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 4
    functionsReached:
    - regs_mode_is_32bit
    - smp_processor_id
    - print_xen_info
    - READ_SYSREG64
    - show_registers_32
    - printk
    - READ_SYSREG
    - show_registers_64
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: "void _show_registers(const struct cpu_user_regs *regs,\n                            const
      struct reg_ctxt *ctxt,\n                            bool guest_mode_on,\n                            const
      struct vcpu *v)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:945,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:946,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/traps.c:947,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/traps.c:948,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:950,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:951,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:952,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:953,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:955,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:956,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/arm/traps.c:957,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:957,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:958,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/traps.c:961,1
    - Dst: _show_registers
      Src: /src/xen/xen/arch/arm/traps.c:964,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/arm/traps.c:964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 965
    functionName: show_registers
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 6
    functionsReached:
    - _show_registers
    - is_32bit_domain
    - READ_SYSREG64
    - guest_mode
    - READ_SYSREG
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: void show_registers(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _show_registers
      Src: /src/xen/xen/arch/arm/traps.c:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 991
    functionName: vcpu_show_registers
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - _show_registers
    linkageType: ''
    returnType: void
    signature: void vcpu_show_registers(struct vcpu *v)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/traps.c:1001,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1014,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/traps.c:1051,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1055,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1059,1
    - Dst: get_page_from_gva
      Src: /src/xen/xen/arch/arm/traps.c:1063,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1066,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/traps.c:1070,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1080,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1081,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1081,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1085,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1086,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/traps.c:1087,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/traps.c:1088,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 2
    argNames:
    - v
    - regs
    argTypes:
    - struct vcpu*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1089
    functionName: show_guest_stack
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 3
    functionsReached:
    - BUG
    - unmap_domain_page
    - printk
    - _p
    - __map_domain_page
    - put_page
    - test_bit
    - get_page_from_gva
    linkageType: ''
    returnType: void
    signature: void show_guest_stack(struct vcpu *v, const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - regs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1092
    functionName: STACK_BEFORE_EXCEPTION
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_BEFORE_EXCEPTION(regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1109
    functionName: STACK_FRAME_BASE
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_FRAME_BASE(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1126
    functionName: STACK_FRAME_BASE
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_FRAME_BASE(fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1131,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1133,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1133,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1133,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1134,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1134,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1134,1
    - Dst: STACK_BEFORE_EXCEPTION
      Src: /src/xen/xen/arch/arm/traps.c:1137,1
    - Dst: STACK_FRAME_BASE
      Src: /src/xen/xen/arch/arm/traps.c:1150,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1154,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1154,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1154,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1160
    functionName: show_trace
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 3
    functionsReached:
    - STACK_FRAME_BASE
    - STACK_BEFORE_EXCEPTION
    - printk
    - _p
    linkageType: ''
    returnType: void
    signature: void show_trace(const struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_BEFORE_EXCEPTION
      Src: /src/xen/xen/arch/arm/traps.c:1164,1
    - Dst: guest_mode
      Src: /src/xen/xen/arch/arm/traps.c:1167,1
    - Dst: show_guest_stack
      Src: /src/xen/xen/arch/arm/traps.c:1168,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1170,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1177,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1180,1
    - Dst: _p
      Src: /src/xen/xen/arch/arm/traps.c:1180,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1183,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1184,1
    - Dst: show_trace
      Src: /src/xen/xen/arch/arm/traps.c:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1187
    functionName: show_stack
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - show_trace
    - show_guest_stack
    - guest_mode
    - printk
    - _p
    - STACK_BEFORE_EXCEPTION
    linkageType: ''
    returnType: void
    signature: void show_stack(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_registers
      Src: /src/xen/xen/arch/arm/traps.c:1191,1
    - Dst: show_stack
      Src: /src/xen/xen/arch/arm/traps.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1193
    functionName: show_execution_state
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 5
    functionsReached:
    - show_registers
    - show_stack
    linkageType: ''
    returnType: void
    signature: void show_execution_state(const struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1197,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1202,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/traps.c:1202,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/arch/arm/traps.c:1206,1
    - Dst: vcpu_show_registers
      Src: /src/xen/xen/arch/arm/traps.c:1208,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:1209,1
    - Dst: show_guest_stack
      Src: /src/xen/xen/arch/arm/traps.c:1210,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/arch/arm/traps.c:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1213
    functionName: vcpu_show_execution_state
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - show_execution_state
    - vcpu_pause
    - vcpu_show_registers
    - vcpu_unpause
    - show_guest_stack
    - regs_mode_is_user
    - printk
    linkageType: ''
    returnType: void
    signature: void vcpu_show_execution_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1217,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/traps.c:1217,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1218,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/traps.c:1219,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/traps.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - regs
    argTypes:
    - char*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1220
    functionName: do_unexpected_trap
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - panic
    - smp_processor_id
    - show_execution_state
    - printk
    linkageType: ''
    returnType: void
    signature: void do_unexpected_trap(const char *msg, const struct cpu_user_regs
      *regs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_text_region
      Src: /src/xen/xen/arch/arm/traps.c:1230,1
    - Dst: bug_loc
      Src: /src/xen/xen/arch/arm/traps.c:1240,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/traps.c:1256,1
    - Dst: bug_file
      Src: /src/xen/xen/arch/arm/traps.c:1261,1
    - Dst: is_kernel
      Src: /src/xen/xen/arch/arm/traps.c:1262,1
    - Dst: strlen
      Src: /src/xen/xen/arch/arm/traps.c:1264,1
    - Dst: bug_line
      Src: /src/xen/xen/arch/arm/traps.c:1270,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1275,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1276,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1280,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1281,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/traps.c:1282,1
    - Dst: bug_msg
      Src: /src/xen/xen/arch/arm/traps.c:1286,1
    - Dst: is_kernel
      Src: /src/xen/xen/arch/arm/traps.c:1287,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1290,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1292,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/traps.c:1293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 2
    argNames:
    - regs
    - pc
    argTypes:
    - struct cpu_user_regs*
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1298
    functionName: do_bug_frame
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - bug_line
    - show_execution_state
    - find_text_region
    - bug_loc
    - panic
    - bug_msg
    - fn
    - strlen
    - is_kernel
    - bug_file
    - printk
    linkageType: ''
    returnType: int
    signature: int do_bug_frame(const struct cpu_user_regs *regs, vaddr_t pc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hyp_mode
      Src: /src/xen/xen/arch/arm/traps.c:1307,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/traps.c:1309,1
    - Dst: do_bug_frame
      Src: /src/xen/xen/arch/arm/traps.c:1316,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/traps.c:1325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1327
    functionName: do_trap_brk
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - hyp_mode
    - domain_crash
    - do_unexpected_trap
    - do_bug_frame
    linkageType: ''
    returnType: void
    signature: void do_trap_brk(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_deprecated_hypercall
      Src: /src/xen/xen/arch/arm/traps.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - arg
    argTypes:
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1349
    functionName: dep_sched_op_compat
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - do_deprecated_hypercall
    linkageType: ''
    returnType: long
    signature: long dep_sched_op_compat(int cmd, unsigned long arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/arm/traps.c:1351,1
    - Dst: do_deprecated_hypercall
      Src: /src/xen/xen/arch/arm/traps.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1354
    functionName: dep_event_channel_op_compat
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - do_deprecated_hypercall
    - XEN_GUEST_HANDLE_PARAM
    linkageType: ''
    returnType: long
    signature: long dep_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t)
      uop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/arch/arm/traps.c:1356,1
    - Dst: do_deprecated_hypercall
      Src: /src/xen/xen/arch/arm/traps.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1359
    functionName: dep_physdev_op_compat
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - do_deprecated_hypercall
    - XEN_GUEST_HANDLE_PARAM
    linkageType: ''
    returnType: long
    signature: long dep_physdev_op_compat(XEN_GUEST_HANDLE_PARAM(physdev_op_t) uop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1371,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:1372,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1375,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1378,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:1378,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1381,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/traps.c:1382,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - regs
    - code
    argTypes:
    - struct cpu_user_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1388
    functionName: do_debug_trap
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - show_execution_state
    - get_user_reg
    - printk
    linkageType: ''
    returnType: void
    signature: void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1393
    functionName: HYPERCALL_RESULT_REG
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_RESULT_REG(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1394
    functionName: HYPERCALL_ARG1
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG1(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1395
    functionName: HYPERCALL_ARG2
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG2(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1396
    functionName: HYPERCALL_ARG3
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG3(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1397
    functionName: HYPERCALL_ARG4
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG4(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1398
    functionName: HYPERCALL_ARG5
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG5(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1400
    functionName: HYPERCALL_RESULT_REG
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_RESULT_REG(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1401
    functionName: HYPERCALL_ARG1
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG1(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1402
    functionName: HYPERCALL_ARG2
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG2(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1403
    functionName: HYPERCALL_ARG3
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG3(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1403
    functionDepth: 0
    functionLinenumber: 1403
    functionLinenumberEnd: 1404
    functionName: HYPERCALL_ARG4
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG4(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1405
    functionName: HYPERCALL_ARG5
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPERCALL_ARG5(r)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/traps.c:1416,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1417,1
    - Dst: perfc_incra
      Src: /src/xen/xen/arch/arm/traps.c:1422,1
    - Dst: call_handlers_arm
      Src: /src/xen/xen/arch/arm/traps.c:1424,1
    - Dst: HYPERCALL_RESULT_REG
      Src: /src/xen/xen/arch/arm/traps.c:1424,1
    - Dst: HYPERCALL_ARG1
      Src: /src/xen/xen/arch/arm/traps.c:1424,1
    - Dst: HYPERCALL_ARG2
      Src: /src/xen/xen/arch/arm/traps.c:1425,1
    - Dst: HYPERCALL_ARG3
      Src: /src/xen/xen/arch/arm/traps.c:1425,1
    - Dst: HYPERCALL_ARG4
      Src: /src/xen/xen/arch/arm/traps.c:1426,1
    - Dst: HYPERCALL_ARG5
      Src: /src/xen/xen/arch/arm/traps.c:1426,1
    - Dst: HYPERCALL_RESULT_REG
      Src: /src/xen/xen/arch/arm/traps.c:1429,1
    - Dst: HYPERCALL_ARG5
      Src: /src/xen/xen/arch/arm/traps.c:1434,1
    - Dst: HYPERCALL_ARG4
      Src: /src/xen/xen/arch/arm/traps.c:1437,1
    - Dst: HYPERCALL_ARG3
      Src: /src/xen/xen/arch/arm/traps.c:1440,1
    - Dst: HYPERCALL_ARG2
      Src: /src/xen/xen/arch/arm/traps.c:1443,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/traps.c:1448,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/traps.c:1466,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/arm/traps.c:1467,1
    - Dst: ioreq_signal_mapcache_invalidate
      Src: /src/xen/xen/arch/arm/traps.c:1468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - regs
    - nr
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - register_t*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1409
    functionDepth: 3
    functionLinenumber: 1409
    functionLinenumberEnd: 1470
    functionName: do_trap_hypercall
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - BUG
    - call_handlers_arm
    - HYPERCALL_ARG4
    - HYPERCALL_ARG5
    - perfc_incra
    - ioreq_signal_mapcache_invalidate
    - HYPERCALL_ARG2
    - HYPERCALL_ARG3
    - gprintk
    - HYPERCALL_RESULT_REG
    - HYPERCALL_ARG1
    - test_and_clear_bool
    - unlikely
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: "void do_trap_hypercall(struct cpu_user_regs *regs, register_t *nr,\n
      \                             const union hsr hsr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HYPERCALL_RESULT_REG
      Src: /src/xen/xen/arch/arm/traps.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - res
    argTypes:
    - struct vcpu*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1477
    functionName: arch_hypercall_tasklet_result
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - HYPERCALL_RESULT_REG
    linkageType: ''
    returnType: void
    signature: void arch_hypercall_tasklet_result(struct vcpu *v, long res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/traps.c:1485,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:1487,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/traps.c:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - multi
    argTypes:
    - struct multicall_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1495
    functionName: check_multicall_32bit_clean
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - domain_crash
    - printk
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool check_multicall_32bit_clean(struct multicall_entry *multi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/traps.c:1501,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/traps.c:1507,1
    - Dst: check_multicall_32bit_clean
      Src: /src/xen/xen/arch/arm/traps.c:1508,1
    - Dst: call_handlers_arm
      Src: /src/xen/xen/arch/arm/traps.c:1511,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/traps.c:1514,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:1514,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/traps.c:1514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mcs
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1516
    functionName: arch_do_multicall_call
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - call_handlers_arm
    - ARRAY_SIZE
    - is_32bit_domain
    - likely
    - regs_mode_is_user
    - check_multicall_32bit_clean
    linkageType: ''
    returnType: enum mc_disposition
    signature: enum mc_disposition arch_do_multicall_call(struct mc_state *mcs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:1585,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:1585,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:1601,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1605
    functionName: check_conditional_instr
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 8
    functionsReached:
    - regs_mode_is_32bit
    - BUG_ON
    - perfc_incr
    linkageType: ''
    returnType: int
    signature: int check_conditional_instr(struct cpu_user_regs *regs, const union
      hsr hsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:1610,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1642
    functionName: advance_pc
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 9
    functionsReached:
    - regs_mode_is_32bit
    linkageType: ''
    returnType: void
    signature: void advance_pc(struct cpu_user_regs *regs, const union hsr hsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/traps.c:1651,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:1653,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1654,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:1657,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:1660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - regs
    - regidx
    - read
    - hsr
    - min_el
    argTypes:
    - struct cpu_user_regs*
    - int
    - bool
    - union hsr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1661
    functionName: handle_raz_wi
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - advance_pc
    - set_user_reg
    - regs_mode_is_user
    - ASSERT
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: "void handle_raz_wi(struct cpu_user_regs *regs,\n                   int
      regidx,\n                   bool read,\n                   const union hsr hsr,\n
      \                  int min_el)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/traps.c:1670,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:1672,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1673,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1676,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:1679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - regs
    - regidx
    - read
    - hsr
    - min_el
    argTypes:
    - struct cpu_user_regs*
    - int
    - bool
    - union hsr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1664
    functionDepth: 3
    functionLinenumber: 1664
    functionLinenumberEnd: 1680
    functionName: handle_wo_wi
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - advance_pc
    - regs_mode_is_user
    - ASSERT
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: "void handle_wo_wi(struct cpu_user_regs *regs,\n                  int
      regidx,\n                  bool read,\n                  const union hsr hsr,\n
      \                 int min_el)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/traps.c:1690,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/traps.c:1692,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1693,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:1696,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/traps.c:1698,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:1700,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - regs
    - regidx
    - read
    - hsr
    - min_el
    - val
    argTypes:
    - struct cpu_user_regs*
    - int
    - bool
    - union hsr
    - int
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1683
    functionDepth: 3
    functionLinenumber: 1683
    functionLinenumberEnd: 1701
    functionName: handle_ro_read_val
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - advance_pc
    - set_user_reg
    - regs_mode_is_user
    - ASSERT
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: "void handle_ro_read_val(struct cpu_user_regs *regs,\n                        int
      regidx,\n                        bool read,\n                        const union
      hsr hsr,\n                        int min_el,\n                        register_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/traps.c:1710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - regs
    - regidx
    - read
    - hsr
    - min_el
    argTypes:
    - struct cpu_user_regs*
    - int
    - bool
    - union hsr
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1704
    functionDepth: 4
    functionLinenumber: 1704
    functionLinenumberEnd: 1711
    functionName: handle_ro_raz
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - handle_ro_read_val
    linkageType: ''
    returnType: void
    signature: "void handle_ro_raz(struct cpu_user_regs *regs,\n                   int
      regidx,\n                   bool read,\n                   const union hsr hsr,\n
      \                  int min_el)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:1725,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/traps.c:1727,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - is_data
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1733
    functionName: get_hfar
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - READ_CP32
    linkageType: ''
    returnType: vaddr_t
    signature: vaddr_t get_hfar(bool is_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - gva
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1744
    functionName: get_faulting_ipa
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t get_faulting_ipa(vaddr_t gva)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_workaround_834220
      Src: /src/xen/xen/arch/arm/traps.c:1758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - s1ptw
    - fsc
    argTypes:
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1759
    functionName: hpfar_is_valid
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - check_workaround_834220
    linkageType: ''
    returnType: bool
    signature: bool hpfar_is_valid(bool s1ptw, uint8_t fsc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/traps.c:1774,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/traps.c:1774,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/traps.c:1781,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/traps.c:1782,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/traps.c:1783,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/traps.c:1784,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/traps.c:1793,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/arch/arm/traps.c:1797,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/traps.c:1797,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/traps.c:1797,1
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/arch/arm/traps.c:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1801
    functionName: try_map_mmio
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - map_regions_p2mt
    - mfn_x
    - _mfn
    - map_mmio_regions
    - gfn_x
    - iomem_access_permitted
    - gfn_to_gaddr
    - maddr_to_mfn
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool try_map_mmio(gfn_t gfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_resolve_translation_fault
      Src: /src/xen/xen/arch/arm/traps.c:1809,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/traps.c:1809,1
    - Dst: try_map_mmio
      Src: /src/xen/xen/arch/arm/traps.c:1812,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/traps.c:1812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - is_data
    - gpa
    argTypes:
    - bool
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1803
    functionDepth: 2
    functionLinenumber: 1803
    functionLinenumberEnd: 1816
    functionName: check_p2m
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 2
    functionsReached:
    - p2m_resolve_translation_fault
    - gaddr_to_gfn
    - try_map_mmio
    linkageType: ''
    returnType: bool
    signature: bool check_p2m(bool is_data, paddr_t gpa)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: __do_trap_serror
      Src: /src/xen/xen/arch/arm/traps.c:1839,1
    - Dst: get_hfar
      Src: /src/xen/xen/arch/arm/traps.c:1841,1
    - Dst: hpfar_is_valid
      Src: /src/xen/xen/arch/arm/traps.c:1843,1
    - Dst: get_faulting_ipa
      Src: /src/xen/xen/arch/arm/traps.c:1844,1
    - Dst: flush_guest_tlb_local
      Src: /src/xen/xen/arch/arm/traps.c:1854,1
    - Dst: gva_to_ipa
      Src: /src/xen/xen/arch/arm/traps.c:1856,1
    - Dst: p2m_mem_access_check
      Src: /src/xen/xen/arch/arm/traps.c:1878,1
    - Dst: check_p2m
      Src: /src/xen/xen/arch/arm/traps.c:1897,1
    - Dst: try_decode_instruction
      Src: /src/xen/xen/arch/arm/traps.c:1909,1
    - Dst: try_handle_mmio
      Src: /src/xen/xen/arch/arm/traps.c:1918,1
    - Dst: finalize_instr_emulation
      Src: /src/xen/xen/arch/arm/traps.c:1931,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:1932,1
    - Dst: check_p2m
      Src: /src/xen/xen/arch/arm/traps.c:1947,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/traps.c:1953,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/traps.c:1960,1
    - Dst: inject_dabt_exception
      Src: /src/xen/xen/arch/arm/traps.c:1964,1
    - Dst: inject_iabt_exception
      Src: /src/xen/xen/arch/arm/traps.c:1966,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1818
    functionDepth: 5
    functionLinenumber: 1818
    functionLinenumberEnd: 1967
    functionName: do_trap_stage2_abort_guest
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - gva_to_ipa
    - advance_pc
    - get_hfar
    - gdprintk
    - p2m_mem_access_check
    - flush_guest_tlb_local
    - try_decode_instruction
    - hpfar_is_valid
    - try_handle_mmio
    - __do_trap_serror
    - gprintk
    - check_p2m
    - inject_iabt_exception
    - inject_dabt_exception
    - finalize_instr_emulation
    - get_faulting_ipa
    linkageType: ''
    returnType: void
    signature: "void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,\n                                       const
      union hsr hsr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_workaround_ssbd
      Src: /src/xen/xen/arch/arm/traps.c:1971,1
    - Dst: cpu_require_ssbd_mitigation
      Src: /src/xen/xen/arch/arm/traps.c:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1976
    functionName: needs_ssbd_flip
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - check_workaround_ssbd
    - cpu_require_ssbd_mitigation
    linkageType: ''
    returnType: bool
    signature: bool needs_ssbd_flip(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: needs_ssbd_flip
      Src: /src/xen/xen/arch/arm/traps.c:1987,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/traps.c:1988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 1989
    functionName: enter_hypervisor_from_guest_preirq
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - needs_ssbd_flip
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: void
    signature: void enter_hypervisor_from_guest_preirq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/traps.c:2007,1
    - Dst: vtimer_update_irqs
      Src: /src/xen/xen/arch/arm/traps.c:2017,1
    - Dst: vcpu_update_evtchn_irq
      Src: /src/xen/xen/arch/arm/traps.c:2018,1
    - Dst: vgic_sync_from_lrs
      Src: /src/xen/xen/arch/arm/traps.c:2021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1996
    functionDepth: 2
    functionLinenumber: 1996
    functionLinenumberEnd: 2022
    functionName: enter_hypervisor_from_guest
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - vcpu_update_evtchn_irq
    - vgic_sync_from_lrs
    - READ_SYSREG
    - vtimer_update_irqs
    linkageType: ''
    returnType: void
    signature: void enter_hypervisor_from_guest(void)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: check_conditional_instr
      Src: /src/xen/xen/arch/arm/traps.c:2037,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:2039,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2044,1
    - Dst: vcpu_yield
      Src: /src/xen/xen/arch/arm/traps.c:2045,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2048,1
    - Dst: vcpu_block_unless_event_pending
      Src: /src/xen/xen/arch/arm/traps.c:2049,1
    - Dst: advance_pc
      Src: /src/xen/xen/arch/arm/traps.c:2051,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2054,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2054,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2055,1
    - Dst: do_cp15_32
      Src: /src/xen/xen/arch/arm/traps.c:2056,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2059,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2059,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2060,1
    - Dst: do_cp15_64
      Src: /src/xen/xen/arch/arm/traps.c:2061,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2064,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2064,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2065,1
    - Dst: do_cp14_32
      Src: /src/xen/xen/arch/arm/traps.c:2066,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2069,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2069,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2070,1
    - Dst: do_cp14_64
      Src: /src/xen/xen/arch/arm/traps.c:2071,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2074,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2074,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2075,1
    - Dst: do_cp14_dbg
      Src: /src/xen/xen/arch/arm/traps.c:2076,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2079,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2079,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2080,1
    - Dst: do_cp10
      Src: /src/xen/xen/arch/arm/traps.c:2081,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2084,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2084,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2085,1
    - Dst: do_cp
      Src: /src/xen/xen/arch/arm/traps.c:2086,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2095,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2095,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2096,1
    - Dst: do_trap_smc
      Src: /src/xen/xen/arch/arm/traps.c:2097,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2103,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2103,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2104,1
    - Dst: do_debug_trap
      Src: /src/xen/xen/arch/arm/traps.c:2107,1
    - Dst: do_trap_hvc_smccc
      Src: /src/xen/xen/arch/arm/traps.c:2110,1
    - Dst: do_trap_hypercall
      Src: /src/xen/xen/arch/arm/traps.c:2112,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2118,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2118,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2119,1
    - Dst: do_debug_trap
      Src: /src/xen/xen/arch/arm/traps.c:2122,1
    - Dst: do_trap_hvc_smccc
      Src: /src/xen/xen/arch/arm/traps.c:2125,1
    - Dst: do_trap_hypercall
      Src: /src/xen/xen/arch/arm/traps.c:2126,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2134,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2134,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2135,1
    - Dst: do_trap_smc
      Src: /src/xen/xen/arch/arm/traps.c:2136,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2139,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2139,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2140,1
    - Dst: do_sysreg
      Src: /src/xen/xen/arch/arm/traps.c:2141,1
    - Dst: GUEST_BUG_ON
      Src: /src/xen/xen/arch/arm/traps.c:2144,1
    - Dst: regs_mode_is_32bit
      Src: /src/xen/xen/arch/arm/traps.c:2144,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/traps.c:2145,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:2146,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2151,1
    - Dst: do_trap_stage2_abort_guest
      Src: /src/xen/xen/arch/arm/traps.c:2152,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/traps.c:2155,1
    - Dst: do_trap_stage2_abort_guest
      Src: /src/xen/xen/arch/arm/traps.c:2156,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/traps.c:2160,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/traps.c:2163,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 105
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2024
    functionDepth: 7
    functionLinenumber: 2024
    functionLinenumberEnd: 2166
    functionName: do_trap_guest_sync
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - advance_pc
    - do_cp14_dbg
    - do_trap_smc
    - do_cp
    - do_cp10
    - do_trap_stage2_abort_guest
    - gprintk
    - do_cp15_32
    - do_trap_hypercall
    - vcpu_yield
    - do_trap_hvc_smccc
    - check_conditional_instr
    - GUEST_BUG_ON
    - regs_mode_is_32bit
    - do_sysreg
    - do_cp15_64
    - do_cp14_32
    - perfc_incr
    - do_cp14_64
    - do_debug_trap
    - vcpu_block_unless_event_pending
    - inject_undef_exception
    linkageType: ''
    returnType: void
    signature: void do_trap_guest_sync(struct cpu_user_regs *regs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: do_trap_brk
      Src: /src/xen/xen/arch/arm/traps.c:2176,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/traps.c:2180,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/traps.c:2181,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:2190,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:2196,1
    - Dst: dump_hyp_walk
      Src: /src/xen/xen/arch/arm/traps.c:2198,1
    - Dst: get_hfar
      Src: /src/xen/xen/arch/arm/traps.c:2198,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/traps.c:2200,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/traps.c:2201,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/traps.c:2205,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/traps.c:2207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2168
    functionDepth: 2
    functionLinenumber: 2168
    functionLinenumberEnd: 2209
    functionName: do_trap_hyp_sync
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - get_hfar
    - dump_hyp_walk
    - printk
    - do_trap_brk
    - ASSERT_UNREACHABLE
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void do_trap_hyp_sync(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __do_trap_serror
      Src: /src/xen/xen/arch/arm/traps.c:2213,1
    - Dst: VABORT_GEN_BY_GUEST
      Src: /src/xen/xen/arch/arm/traps.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2211
    functionDepth: 3
    functionLinenumber: 2211
    functionLinenumberEnd: 2214
    functionName: do_trap_hyp_serror
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - __do_trap_serror
    - VABORT_GEN_BY_GUEST
    linkageType: ''
    returnType: void
    signature: void do_trap_hyp_serror(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __do_trap_serror
      Src: /src/xen/xen/arch/arm/traps.c:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2216
    functionDepth: 3
    functionLinenumber: 2216
    functionLinenumberEnd: 2219
    functionName: do_trap_guest_serror
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - __do_trap_serror
    linkageType: ''
    returnType: void
    signature: void do_trap_guest_serror(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_interrupt
      Src: /src/xen/xen/arch/arm/traps.c:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2221
    functionDepth: 3
    functionLinenumber: 2221
    functionLinenumberEnd: 2224
    functionName: do_trap_irq
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - gic_interrupt
    linkageType: ''
    returnType: void
    signature: void do_trap_irq(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_interrupt
      Src: /src/xen/xen/arch/arm/traps.c:2228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2226
    functionDepth: 3
    functionLinenumber: 2226
    functionLinenumberEnd: 2229
    functionName: do_trap_fiq
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - gic_interrupt
    linkageType: ''
    returnType: void
    signature: void do_trap_fiq(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/traps.c:2233,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/traps.c:2233,1
    - Dst: softirq_pending
      Src: /src/xen/xen/arch/arm/traps.c:2235,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/traps.c:2235,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/traps.c:2237,1
    - Dst: do_softirq
      Src: /src/xen/xen/arch/arm/traps.c:2238,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/traps.c:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2241
    functionName: check_for_pcpu_work
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 1
    functionsReached:
    - softirq_pending
    - local_irq_enable
    - smp_processor_id
    - local_irq_disable
    - do_softirq
    - ASSERT
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void check_for_pcpu_work(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: has_vpci
      Src: /src/xen/xen/arch/arm/traps.c:2251,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/traps.c:2255,1
    - Dst: vpci_process_pending
      Src: /src/xen/xen/arch/arm/traps.c:2256,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/traps.c:2257,1
    - Dst: domain_has_ioreq_server
      Src: /src/xen/xen/arch/arm/traps.c:2264,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/traps.c:2268,1
    - Dst: vcpu_ioreq_handle_completion
      Src: /src/xen/xen/arch/arm/traps.c:2269,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/traps.c:2270,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/traps.c:2277,1
    - Dst: check_for_pcpu_work
      Src: /src/xen/xen/arch/arm/traps.c:2284,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/arch/arm/traps.c:2286,1
    - Dst: p2m_flush_vm
      Src: /src/xen/xen/arch/arm/traps.c:2287,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/traps.c:2288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2247
    functionDepth: 1
    functionLinenumber: 2247
    functionLinenumberEnd: 2291
    functionName: check_for_vcpu_work
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - has_vpci
    - vpci_process_pending
    - local_irq_enable
    - check_for_pcpu_work
    - local_irq_disable
    - likely
    - vcpu_ioreq_handle_completion
    - p2m_flush_vm
    - domain_has_ioreq_server
    linkageType: ''
    returnType: bool
    signature: bool check_for_vcpu_work(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/traps.c:2301,1
    - Dst: check_for_vcpu_work
      Src: /src/xen/xen/arch/arm/traps.c:2308,1
    - Dst: check_for_pcpu_work
      Src: /src/xen/xen/arch/arm/traps.c:2309,1
    - Dst: check_for_pcpu_work
      Src: /src/xen/xen/arch/arm/traps.c:2310,1
    - Dst: vgic_sync_to_lrs
      Src: /src/xen/xen/arch/arm/traps.c:2312,1
    - Dst: SYNCHRONIZE_SERROR
      Src: /src/xen/xen/arch/arm/traps.c:2324,1
    - Dst: needs_ssbd_flip
      Src: /src/xen/xen/arch/arm/traps.c:2330,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/traps.c:2331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2299
    functionDepth: 2
    functionLinenumber: 2299
    functionLinenumberEnd: 2332
    functionName: leave_hypervisor_to_guest
    functionSourceFile: /src/xen/xen/arch/arm/traps.c
    functionUses: 0
    functionsReached:
    - vgic_sync_to_lrs
    - SYNCHRONIZE_SERROR
    - check_for_vcpu_work
    - check_for_pcpu_work
    - local_irq_disable
    - needs_ssbd_flip
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: void
    signature: void leave_hypervisor_to_guest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_processor_type
      Src: /src/xen/xen/arch/arm/processor.c:18,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/processor.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: processor_setup
    functionSourceFile: /src/xen/xen/arch/arm/processor.c
    functionUses: 2
    functionsReached:
    - lookup_processor_type
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void processor_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/processor.c:27,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/processor.c:27,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/processor.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: processor_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/arm/processor.c
    functionUses: 1
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void processor_vcpu_initialise(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/monitor.c:28,1
    - Dst: domain_pause
      Src: /src/xen/xen/arch/arm/monitor.c:31,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/arm/monitor.c:33,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/monitor.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 47
    functionName: arch_monitor_domctl_event
    functionSourceFile: /src/xen/xen/arch/arm/monitor.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - ASSERT_UNREACHABLE
    - domain_pause
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int arch_monitor_domctl_event(struct domain *d,\n                              struct
      xen_domctl_monitor_op *mop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monitor_traps
      Src: /src/xen/xen/arch/arm/monitor.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: monitor_smc
    functionSourceFile: /src/xen/xen/arch/arm/monitor.c
    functionUses: 1
    functionsReached:
    - monitor_traps
    linkageType: ''
    returnType: int
    signature: int monitor_smc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: early_putch
      Src: /src/xen/xen/arch/arm/early_printk.c:22,1
    - Dst: early_putch
      Src: /src/xen/xen/arch/arm/early_printk.c:23,1
    - Dst: early_flush
      Src: /src/xen/xen/arch/arm/early_printk.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: early_puts
    functionSourceFile: /src/xen/xen/arch/arm/early_printk.c
    functionUses: 1
    functionsReached:
    - early_flush
    - early_putch
    linkageType: ''
    returnType: void
    signature: void early_puts(const char *s, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: domain_vuart_init
    functionSourceFile: /src/xen/xen/arch/arm/vuart.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int domain_vuart_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:30,1
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic.c:31,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - idx
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: idx_to_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_num_irqs
    - espi_idx_to_intid
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int idx_to_virq(struct domain *d, unsigned int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic.c:40,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: vgic_is_valid_line
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_num_irqs
    - espi_idx_to_intid
    linkageType: ''
    returnType: bool
    signature: bool vgic_is_valid_line(struct domain *d, unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXT_RANK_NUM2IDX
      Src: /src/xen/xen/arch/arm/vgic.c:56,1
    - Dst: DOMAIN_NR_EXT_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - rank
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: is_valid_espi_rank
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - DOMAIN_NR_EXT_RANKS
    - EXT_RANK_NUM2IDX
    linkageType: ''
    returnType: bool
    signature: bool is_valid_espi_rank(struct domain *d, unsigned int rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXT_RANK_NUM2IDX
      Src: /src/xen/xen/arch/arm/vgic.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - rank
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: vgic_get_espi_rank
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - EXT_RANK_NUM2IDX
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,\n                                                       unsigned
      int rank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - rank
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: is_valid_espi_rank
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid_espi_rank(struct domain *d, unsigned int rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vgic.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - rank
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: vgic_get_espi_rank
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_get_espi_rank(struct vcpu *v,\n                                                       unsigned
      int rank)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DOMAIN_NR_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:88,1
    - Dst: is_valid_espi_rank
      Src: /src/xen/xen/arch/arm/vgic.c:90,1
    - Dst: vgic_get_espi_rank
      Src: /src/xen/xen/arch/arm/vgic.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - v
    - rank
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: vgic_get_rank
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_get_espi_rank
    - is_valid_espi_rank
    - DOMAIN_NR_RANKS
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_get_rank(struct vcpu *v,\n                                                  unsigned
      int rank)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REG_RANK_NR
      Src: /src/xen/xen/arch/arm/vgic.c:103,1
    - Dst: vgic_get_rank
      Src: /src/xen/xen/arch/arm/vgic.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - b
    - n
    - s
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: vgic_rank_offset
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - vgic_get_rank
    - REG_RANK_NR
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_rank_offset(struct vcpu *v, unsigned int
      b,\n                                       unsigned int n, unsigned int s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_rank
      Src: /src/xen/xen/arch/arm/vgic.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - irq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: vgic_rank_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_get_rank
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: struct vgic_irq_rank *vgic_rank_irq(struct vcpu *v, unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic.c:118,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/vgic.c:118,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/vgic.c:120,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic.c:121,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - p
    - virq
    argTypes:
    - struct pending_irq*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: vgic_init_pending_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - memset
    - INIT_LIST_HEAD
    - BIT
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void vgic_init_pending_irq(struct pending_irq *p, unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic.c:137,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic.c:139,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rank
    - index
    - vcpu
    argTypes:
    - struct vgic_irq_rank*
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: vgic_rank_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - spin_lock_init
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void vgic_rank_init(struct vgic_irq_rank *rank, uint8_t index,\n                           unsigned
      int vcpu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v3_init
      Src: /src/xen/xen/arch/arm/vgic.c:153,1
    - Dst: vgic_v2_init
      Src: /src/xen/xen/arch/arm/vgic.c:159,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - d
    - mmio_count
    argTypes:
    - struct domain*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 170
    functionName: domain_vgic_register
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_v3_init
    - vgic_v2_init
    - printk
    linkageType: ''
    returnType: int
    signature: int domain_vgic_register(struct domain *d, unsigned int *mmio_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REG_RANK_NR
      Src: /src/xen/xen/arch/arm/vgic.c:180,1
    - Dst: vgic_get_rank
      Src: /src/xen/xen/arch/arm/vgic.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - b
    - n
    - s
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: vgic_ext_rank_offset
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - vgic_get_rank
    - REG_RANK_NR
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned
      int b,\n                                           unsigned int n, unsigned
      int s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: vgic_num_spi_lines
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_num_spi_lines(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic.c:198,1
    - Dst: DOMAIN_NR_EXT_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:198,1
    - Dst: vgic_num_spi_lines
      Src: /src/xen/xen/arch/arm/vgic.c:203,1
    - Dst: vgic_init_pending_irq
      Src: /src/xen/xen/arch/arm/vgic.c:204,1
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic.c:205,1
    - Dst: DOMAIN_NR_EXT_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:207,1
    - Dst: vgic_rank_init
      Src: /src/xen/xen/arch/arm/vgic.c:208,1
    - Dst: EXT_RANK_IDX2NUM
      Src: /src/xen/xen/arch/arm/vgic.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 212
    functionName: init_vgic_espi
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - espi_idx_to_intid
    - xzalloc_array
    - DOMAIN_NR_EXT_RANKS
    - vgic_rank_init
    - vgic_init_pending_irq
    - EXT_RANK_IDX2NUM
    - vgic_num_spi_lines
    linkageType: ''
    returnType: int
    signature: int init_vgic_espi(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: init_vgic_espi
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_vgic_espi(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: vgic_num_spi_lines
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_num_spi_lines(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - b
    - n
    - s
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: vgic_ext_rank_offset
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct vgic_irq_rank
    signature: "struct vgic_irq_rank *vgic_ext_rank_offset(struct vcpu *v, unsigned
      int b,\n                                           unsigned int n, unsigned
      int s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_spi_lines
      Src: /src/xen/xen/arch/arm/vgic.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: vgic_num_alloc_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_num_spi_lines
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_num_alloc_irqs(struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/vgic.c:254,1
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/vgic.c:270,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/vgic.c:275,1
    - Dst: gic_number_espis
      Src: /src/xen/xen/arch/arm/vgic.c:278,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic.c:294,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic.c:297,1
    - Dst: DOMAIN_NR_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:297,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic.c:302,1
    - Dst: vgic_num_spi_lines
      Src: /src/xen/xen/arch/arm/vgic.c:302,1
    - Dst: vgic_init_pending_irq
      Src: /src/xen/xen/arch/arm/vgic.c:307,1
    - Dst: DOMAIN_NR_RANKS
      Src: /src/xen/xen/arch/arm/vgic.c:310,1
    - Dst: vgic_rank_init
      Src: /src/xen/xen/arch/arm/vgic.c:311,1
    - Dst: init_vgic_espi
      Src: /src/xen/xen/arch/arm/vgic.c:313,1
    - Dst: struct domain*::arch::vgic::handler::domain_init
      Src: /src/xen/xen/arch/arm/vgic.c:317,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic.c:322,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/arm/vgic.c:322,1
    - Dst: vgic_num_alloc_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:322,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - d
    - nr_spis
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 331
    functionName: domain_vgic_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - ROUNDUP
    - init_vgic_espi
    - struct domain*::arch::vgic::handler::domain_init
    - vgic_num_alloc_irqs
    - gic_number_espis
    - espi_idx_to_intid
    - xzalloc_array
    - vgic_rank_init
    - min
    - DOMAIN_NR_RANKS
    - vgic_init_pending_irq
    - BITS_TO_LONGS
    - vgic_num_spi_lines
    - spin_lock_init
    - set_bit
    linkageType: ''
    returnType: int
    signature: int domain_vgic_init(struct domain *d, unsigned int nr_spis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - ops
    argTypes:
    - struct domain*
    - struct vgic_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: register_vgic_ops
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void register_vgic_ops(struct domain *d, const struct vgic_ops *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_alloc_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:343,1
    - Dst: idx_to_virq
      Src: /src/xen/xen/arch/arm/vgic.c:346,1
    - Dst: spi_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:348,1
    - Dst: release_guest_irq
      Src: /src/xen/xen/arch/arm/vgic.c:352,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/vgic.c:354,1
    - Dst: struct domain*::arch::vgic::handler::domain_free
      Src: /src/xen/xen/arch/arm/vgic.c:360,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic.c:361,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic.c:363,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic.c:365,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 367
    functionName: domain_vgic_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_num_alloc_irqs
    - xfree
    - spi_to_pending
    - release_guest_irq
    - idx_to_virq
    - struct domain*::arch::vgic::handler::domain_free
    - dprintk
    linkageType: ''
    returnType: void
    signature: void domain_vgic_free(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/vgic.c:373,1
    - Dst: vgic_rank_init
      Src: /src/xen/xen/arch/arm/vgic.c:378,1
    - Dst: struct vcpu*::domain::arch::vgic::handler::vcpu_init
      Src: /src/xen/xen/arch/arm/vgic.c:380,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/vgic.c:382,1
    - Dst: vgic_init_pending_irq
      Src: /src/xen/xen/arch/arm/vgic.c:384,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic.c:386,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic.c:387,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic.c:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 391
    functionName: vcpu_vgic_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - spin_lock_init
    - vgic_rank_init
    - vgic_init_pending_irq
    - struct vcpu*::domain::arch::vgic::handler::vcpu_init
    - memset
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int vcpu_vgic_init(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/vgic.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: vcpu_vgic_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void vcpu_vgic_free(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_rank_irq
      Src: /src/xen/xen/arch/arm/vgic.c:400,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - virq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 4
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: vgic_get_target_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - read_atomic
    - vgic_rank_irq
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *vgic_get_target_vcpu(struct vcpu *v, unsigned int virq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:410,1
    - Dst: struct vcpu*::domain::arch::vgic::handler::lpi_get_priority
      Src: /src/xen/xen/arch/arm/vgic.c:411,1
    - Dst: vgic_rank_irq
      Src: /src/xen/xen/arch/arm/vgic.c:413,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - virq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 415
    functionName: vgic_get_virq_priority
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - struct vcpu*::domain::arch::vgic::handler::lpi_get_priority
    - is_lpi
    - ACCESS_ONCE
    - vgic_rank_irq
    linkageType: ''
    returnType: int
    signature: int vgic_get_virq_priority(struct vcpu *v, unsigned int virq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:423,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:423,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:425,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:427,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:432,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic.c:437,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic.c:439,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:440,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic.c:444,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:446,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic.c:448,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic.c:448,1
    - Dst: processor::processor
      Src: /src/xen/xen/arch/arm/vgic.c:448,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:449,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:453,1
    - Dst: vgic_remove_irq_from_queues
      Src: /src/xen/xen/arch/arm/vgic.c:455,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic.c:456,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic.c:456,1
    - Dst: processor::processor
      Src: /src/xen/xen/arch/arm/vgic.c:456,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:457,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:458,1
    - Dst: irq::irq
      Src: /src/xen/xen/arch/arm/vgic.c:458,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:463,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:464,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - old
    - new
    - irq
    argTypes:
    - struct vcpu*
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 468
    functionName: vgic_migrate_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - perfc_incr
    - irq_to_pending
    - irq::irq
    - irq_set_affinity
    - processor::processor
    - vgic_inject_irq
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - gprintk
    - vgic_remove_irq_from_queues
    - cpumask_of
    - is_lpi
    - test_bit
    - list_empty
    - set_bit
    linkageType: ''
    returnType: bool
    signature: bool vgic_migrate_irq(struct vcpu *old, struct vcpu *new, unsigned
      int irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic.c:472,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:487,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:487,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:487,1
    - Dst: vgic_num_alloc_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:489,1
    - Dst: idx_to_virq
      Src: /src/xen/xen/arch/arm/vgic.c:491,1
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:493,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:494,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic.c:496,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic.c:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 499
    functionName: arch_move_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - vgic_num_alloc_irqs
    - irq_set_affinity
    - ASSERT
    - idx_to_virq
    - cpumask_of
    - vgic_num_irqs
    - is_lpi
    - test_bit
    - vgic_get_target_vcpu
    linkageType: ''
    returnType: void
    signature: void arch_move_irqs(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:512,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:512,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/arm/vgic.c:514,1
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:516,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:518,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:519,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic.c:520,1
    - Dst: gic_remove_from_lr_pending
      Src: /src/xen/xen/arch/arm/vgic.c:521,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:523,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:527,1
    - Dst: struct irq_desc*::handler::disable
      Src: /src/xen/xen/arch/arm/vgic.c:528,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - v
    - r
    - n
    argTypes:
    - struct vcpu*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 501
    functionDepth: 5
    functionLinenumber: 501
    functionLinenumberEnd: 533
    functionName: vgic_disable_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - irq_to_pending
    - gic_remove_from_lr_pending
    - find_next_bit
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - struct irq_desc*::handler::disable
    - clear_bit
    - is_lpi
    - vgic_get_target_vcpu
    linkageType: ''
    returnType: void
    signature: void vgic_disable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: VGIC_ICFG_MASK
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VGIC_ICFG_MASK(intr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_rank
      Src: /src/xen/xen/arch/arm/vgic.c:542,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:545,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic.c:545,1
    - Dst: VGIC_ICFG_MASK
      Src: /src/xen/xen/arch/arm/vgic.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - v
    - n
    - index
    argTypes:
    - struct vcpu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 551
    functionName: vgic_get_virq_type
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vgic_get_rank
    - spin_is_locked
    - VGIC_ICFG_MASK
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int vgic_get_virq_type(struct vcpu *v,\n                                              unsigned
      int n,\n                                              unsigned int index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:564,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:564,1
    - Dst: find_next_bit
      Src: /src/xen/xen/arch/arm/vgic.c:566,1
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:568,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:569,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:570,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:571,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:572,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic.c:572,1
    - Dst: gic_raise_guest_irq
      Src: /src/xen/xen/arch/arm/vgic.c:573,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:574,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic.c:577,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic.c:577,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:578,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:583,1
    - Dst: irq_type_set_by_domain
      Src: /src/xen/xen/arch/arm/vgic.c:584,1
    - Dst: gic_set_irq_type
      Src: /src/xen/xen/arch/arm/vgic.c:585,1
    - Dst: vgic_get_virq_type
      Src: /src/xen/xen/arch/arm/vgic.c:585,1
    - Dst: struct pending_irq*::desc::handler::enable
      Src: /src/xen/xen/arch/arm/vgic.c:586,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - v
    - r
    - n
    argTypes:
    - struct vcpu*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 591
    functionName: vgic_enable_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - irq_to_pending
    - irq_set_affinity
    - find_next_bit
    - spin_lock_irqsave
    - irq_type_set_by_domain
    - gic_set_irq_type
    - gic_raise_guest_irq
    - spin_unlock_irqrestore
    - vgic_get_virq_type
    - struct pending_irq*::desc::handler::enable
    - ASSERT
    - cpumask_of
    - is_lpi
    - test_bit
    - list_empty
    - vgic_get_target_vcpu
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vgic_enable_irqs(struct vcpu *v, uint32_t r, unsigned int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:599,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:599,1
    - Dst: spi_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:607,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:622,1
    - Dst: gic_set_pending_state
      Src: /src/xen/xen/arch/arm/vgic.c:623,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:624,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - v
    - r
    - rank
    argTypes:
    - struct vcpu*
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 636
    functionName: vgic_set_irqs_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spi_to_pending
    - ASSERT
    - is_lpi
    - gic_set_pending_state
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void vgic_set_irqs_pending(struct vcpu *v, uint32_t r, unsigned int
      rank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spi_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:607,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:622,1
    - Dst: gic_set_pending_state
      Src: /src/xen/xen/arch/arm/vgic.c:623,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:624,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 635
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 19
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spi_to_pending
    - gic_set_pending_state
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, r )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:644,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic.c:649,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:653,1
    - Dst: is_vcpu_online
      Src: /src/xen/xen/arch/arm/vgic.c:658,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic.c:660,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:665,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic.c:669,1
    - Dst: is_vcpu_online
      Src: /src/xen/xen/arch/arm/vgic.c:673,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:674,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic.c:678,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/vgic.c:679,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic.c:682,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - v
    - sgir
    - irqmode
    - virq
    - target
    argTypes:
    - struct vcpu*
    - register_t
    - enum gic_sgi_mode
    - int
    - struct sgi_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 689
    functionName: vgic_to_sgi
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - perfc_incr
    - ASSERT
    - gprintk
    - for_each_set_bit
    - is_vcpu_online
    - vgic_inject_irq
    linkageType: ''
    returnType: bool
    signature: "bool vgic_to_sgi(struct vcpu *v, register_t sgir, enum gic_sgi_mode
      irqmode,\n                 int virq, const struct sgi_target *target)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:704,1
    - Dst: struct vcpu*::domain::arch::vgic::handler::lpi_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:705,1
    - Dst: spi_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - v
    - irq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 709
    functionName: irq_to_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 10
    functionsReached:
    - is_lpi
    - struct vcpu*::domain::arch::vgic::handler::lpi_to_pending
    - spi_to_pending
    linkageType: ''
    returnType: struct pending_irq
    signature: struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:715,1
    - Dst: is_espi
      Src: /src/xen/xen/arch/arm/vgic.c:717,1
    - Dst: espi_intid_to_idx
      Src: /src/xen/xen/arch/arm/vgic.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 729
    functionName: spi_to_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 4
    functionsReached:
    - is_espi
    - ASSERT
    - espi_intid_to_idx
    linkageType: ''
    returnType: struct pending_irq
    signature: struct pending_irq *spi_to_pending(struct domain *d, unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:736,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/vgic.c:737,1
    - Dst: list_del_init
      Src: /src/xen/xen/arch/arm/vgic.c:738,1
    - Dst: gic_clear_pending_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:739,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 741
    functionName: vgic_clear_pending_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - list_del_init
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_for_each_entry_safe
    - gic_clear_pending_irqs
    linkageType: ''
    returnType: void
    signature: void vgic_clear_pending_irqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:745,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic.c:745,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic.c:747,1
    - Dst: list_del_init
      Src: /src/xen/xen/arch/arm/vgic.c:748,1
    - Dst: gic_remove_from_lr_pending
      Src: /src/xen/xen/arch/arm/vgic.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - struct vcpu*
    - struct pending_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 750
    functionName: vgic_remove_irq_from_queues
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 3
    functionsReached:
    - list_del_init
    - gic_remove_from_lr_pending
    - spin_is_locked
    - ASSERT
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void vgic_remove_irq_from_queues(struct vcpu *v, struct pending_irq
      *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:769,1
    - Dst: vgic_is_spi
      Src: /src/xen/xen/arch/arm/vgic.c:769,1
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:771,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:774,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:776,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic.c:778,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:780,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic.c:785,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:787,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:791,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:793,1
    - Dst: gic_raise_inflight_irq
      Src: /src/xen/xen/arch/arm/vgic.c:795,1
    - Dst: vgic_get_virq_priority
      Src: /src/xen/xen/arch/arm/vgic.c:799,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic.c:803,1
    - Dst: gic_raise_guest_irq
      Src: /src/xen/xen/arch/arm/vgic.c:804,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic.c:806,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/vgic.c:810,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/vgic.c:814,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:816,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/arm/vgic.c:819,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - d
    - v
    - virq
    - level
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 822
    functionName: vgic_inject_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 13
    functionsReached:
    - irq_to_pending
    - gic_raise_inflight_irq
    - vgic_get_virq_priority
    - list_for_each_entry
    - vcpu_kick
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - gic_raise_guest_irq
    - vgic_is_spi
    - ASSERT
    - unlikely
    - test_bit
    - list_empty
    - vgic_get_target_vcpu
    - list_add_tail
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void vgic_inject_irq(struct domain *d, struct vcpu *v, unsigned int
      virq,\n                     bool level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:828,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:830,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic.c:830,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 833
    functionName: vgic_evtchn_irq_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_pending
    - ASSERT
    - is_lpi
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool vgic_evtchn_irq_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic.c:839,1
    - Dst: struct vcpu*::domain::arch::vgic::handler::emulate_reg
      Src: /src/xen/xen/arch/arm/vgic.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 842
    functionName: vgic_emulate
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - struct vcpu*::domain::arch::vgic::handler::emulate_reg
    linkageType: ''
    returnType: bool
    signature: bool vgic_emulate(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_is_valid_line
      Src: /src/xen/xen/arch/arm/vgic.c:848,1
    - Dst: is_espi
      Src: /src/xen/xen/arch/arm/vgic.c:851,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:853,1
    - Dst: espi_intid_to_idx
      Src: /src/xen/xen/arch/arm/vgic.c:855,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 859
    functionName: vgic_reserve_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 6
    functionsReached:
    - vgic_is_valid_line
    - test_and_set_bit
    - is_espi
    - vgic_num_irqs
    - espi_intid_to_idx
    linkageType: ''
    returnType: bool
    signature: bool vgic_reserve_virq(struct domain *d, unsigned int virq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_alloc_irqs
      Src: /src/xen/xen/arch/arm/vgic.c:875,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/arm/vgic.c:884,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/arm/vgic.c:888,1
    - Dst: idx_to_virq
      Src: /src/xen/xen/arch/arm/vgic.c:890,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - d
    - spi
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 891
    functionName: vgic_allocate_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - idx_to_virq
    - vgic_num_alloc_irqs
    - find_next_zero_bit
    linkageType: ''
    returnType: int
    signature: int vgic_allocate_virq(struct domain *d, bool spi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 896
    functionName: vgic_free_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void vgic_free_virq(struct domain *d, unsigned int virq)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - domctl_vgic_version
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 913
    functionName: vgic_max_vcpus
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_max_vcpus(unsigned int domctl_vgic_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:924,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:926,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:928,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:930,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic.c:931,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - v
    - rank
    - r
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 915
    functionDepth: 5
    functionLinenumber: 915
    functionLinenumberEnd: 937
    functionName: vgic_check_inflight_irqs_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 2
    functionsReached:
    - irq_to_pending
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - vgic_get_target_vcpu
    - printk
    - list_empty
    linkageType: ''
    returnType: void
    signature: void vgic_check_inflight_irqs_pending(struct vcpu *v, unsigned int
      rank, uint32_t r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_target_vcpu
      Src: /src/xen/xen/arch/arm/vgic.c:924,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic.c:926,1
    - Dst: irq_to_pending
      Src: /src/xen/xen/arch/arm/vgic.c:928,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic.c:930,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic.c:931,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 917
    functionDepth: 5
    functionLinenumber: 917
    functionLinenumberEnd: 936
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic.c
    functionUses: 20
    functionsReached:
    - irq_to_pending
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - vgic_get_target_vcpu
    - printk
    - list_empty
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, r )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/time.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ppi
    argTypes:
    - enum timer_ppi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: timer_get_irq
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 3
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int timer_get_irq(enum timer_ppi ppi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: acpi_get_timer_irq_type
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 acpi_get_timer_irq_type(u32 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/time.c:64,1
    - Dst: acpi_get_timer_irq_type
      Src: /src/xen/xen/arch/arm/time.c:67,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/time.c:68,1
    - Dst: acpi_get_timer_irq_type
      Src: /src/xen/xen/arch/arm/time.c:71,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/time.c:72,1
    - Dst: acpi_get_timer_irq_type
      Src: /src/xen/xen/arch/arm/time.c:75,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/time.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 80
    functionName: arch_timer_acpi_init
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - irq_set_type
    - acpi_get_timer_irq_type
    - container_of
    linkageType: ''
    returnType: int
    signature: int arch_timer_acpi_init(struct acpi_table_header *header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/arm/time.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: preinit_acpi_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - acpi_table_parse
    linkageType: ''
    returnType: void
    signature: void preinit_acpi_xen_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: preinit_acpi_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void preinit_acpi_xen_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/arch/arm/time.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: validate_timer_frequency
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - panic
    linkageType: ''
    returnType: void
    signature: void validate_timer_frequency(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/arch/arm/time.c:112,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/time.c:114,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/arch/arm/time.c:116,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/time.c:118,1
    - Dst: validate_timer_frequency
      Src: /src/xen/xen/arch/arm/time.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: preinit_dt_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 1
    functionsReached:
    - dt_device_set_used_by
    - dt_property_read_u32
    - dt_find_matching_node
    - panic
    - validate_timer_frequency
    linkageType: ''
    returnType: void
    signature: void preinit_dt_xen_time(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: preinit_dt_xen_time
      Src: /src/xen/xen/arch/arm/time.c:133,1
    - Dst: preinit_acpi_xen_time
      Src: /src/xen/xen/arch/arm/time.c:135,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:139,1
    - Dst: validate_timer_frequency
      Src: /src/xen/xen/arch/arm/time.c:140,1
    - Dst: platform_init_time
      Src: /src/xen/xen/arch/arm/time.c:143,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/time.c:145,1
    - Dst: get_cycles
      Src: /src/xen/xen/arch/arm/time.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 148
    functionName: preinit_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached:
    - preinit_acpi_xen_time
    - platform_init_time
    - panic
    - validate_timer_frequency
    - get_cycles
    - READ_SYSREG
    - preinit_dt_xen_time
    linkageType: ''
    returnType: void
    signature: void preinit_xen_time(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/arch/arm/time.c:163,1
    - Dst: platform_get_irq_byname
      Src: /src/xen/xen/arch/arm/time.c:169,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/arch/arm/time.c:171,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/time.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: init_dt_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached:
    - panic
    - platform_get_irq
    - platform_get_irq_byname
    - dt_property_read_bool
    linkageType: ''
    returnType: void
    signature: void init_dt_xen_time(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_dt_xen_time
      Src: /src/xen/xen/arch/arm/time.c:188,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/time.c:192,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/time.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: init_xen_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 3
    functionsReached:
    - panic
    - init_dt_xen_time
    - printk
    linkageType: ''
    returnType: int
    signature: int init_xen_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cycles
      Src: /src/xen/xen/arch/arm/time.c:206,1
    - Dst: ticks_to_ns
      Src: /src/xen/xen/arch/arm/time.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: get_s_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 4
    functionsReached:
    - get_cycles
    - ticks_to_ns
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t get_s_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:219,1
    - Dst: ns_to_ticks
      Src: /src/xen/xen/arch/arm/time.c:223,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/time.c:224,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:225,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/time.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 231
    functionName: reprogram_timer
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached:
    - ns_to_ticks
    - WRITE_SYSREG64
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: int
    signature: int reprogram_timer(s_time_t timeout)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/time.c:236,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:236,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/time.c:239,1
    - Dst: raise_softirq
      Src: /src/xen/xen/arch/arm/time.c:242,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: htimer_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - raise_softirq
    - unlikely
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void htimer_interrupt(int irq, void *dev_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/time.c:260,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/time.c:260,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/time.c:263,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:265,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:266,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/time.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 268
    functionName: vtimer_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - is_idle_vcpu
    - unlikely
    - READ_SYSREG
    - vgic_inject_irq
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void vtimer_interrupt(int irq, void *dev_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/time.c:283,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/time.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - irq
    - which
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: check_timer_irq_cfg
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - printk
    - irq_to_desc
    linkageType: ''
    returnType: void
    signature: void check_timer_irq_cfg(unsigned int irq, const char *which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/time.c:302,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/time.c:303,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/time.c:306,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:308,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:309,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:310,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/time.c:311,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/arm/time.c:317,1
    - Dst: setup_irq
      Src: /src/xen/xen/arch/arm/time.c:323,1
    - Dst: check_timer_irq_cfg
      Src: /src/xen/xen/arch/arm/time.c:325,1
    - Dst: check_timer_irq_cfg
      Src: /src/xen/xen/arch/arm/time.c:326,1
    - Dst: check_timer_irq_cfg
      Src: /src/xen/xen/arch/arm/time.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: init_timer_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached:
    - WRITE_SYSREG64
    - this_cpu
    - check_timer_irq_cfg
    - isb
    - setup_irq
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void init_timer_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:336,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/time.c:337,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/time.c:338,1
    - Dst: release_irq
      Src: /src/xen/xen/arch/arm/time.c:340,1
    - Dst: release_irq
      Src: /src/xen/xen/arch/arm/time.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: deinit_timer_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - release_irq
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void deinit_timer_interrupt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_s_time
      Src: /src/xen/xen/arch/arm/time.c:347,1
    - Dst: get_s_time
      Src: /src/xen/xen/arch/arm/time.c:348,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/time.c:350,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/time.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - usecs
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 352
    functionName: udelay
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 11
    functionsReached:
    - dsb
    - isb
    - get_s_time
    linkageType: ''
    returnType: void
    signature: void udelay(unsigned long usecs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/arch/arm/time.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: send_timer_event
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - send_guest_vcpu_virq
    linkageType: ''
    returnType: void
    signature: void send_timer_event(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_vcpu_system_time
      Src: /src/xen/xen/arch/arm/time.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: force_update_vcpu_system_time
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached:
    - update_vcpu_system_time
    linkageType: ''
    returnType: void
    signature: void force_update_vcpu_system_time(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - time_offset_seconds
    argTypes:
    - struct domain*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: domain_set_time_offset
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_set_time_offset(struct domain *d, int64_t time_offset_seconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: deinit_timer_interrupt
      Src: /src/xen/xen/arch/arm/time.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: cpu_time_callback
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - deinit_timer_interrupt
    linkageType: ''
    returnType: int
    signature: "int cpu_time_callback(struct notifier_block *nfb,\n                             unsigned
      long action,\n                             void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/time.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: cpu_time_notifier_init
    functionSourceFile: /src/xen/xen/arch/arm/time.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpu_time_notifier_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: domain_fdt_begin_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:38,1
    - Dst: vgic_dist_base
      Src: /src/xen/xen/arch/arm/dom0less-build.c:39,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:43,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:47,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:51,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/dom0less-build.c:55,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/dom0less-build.c:60,1
    - Dst: vgic_dist_base
      Src: /src/xen/xen/arch/arm/dom0less-build.c:61,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/dom0less-build.c:62,1
    - Dst: vgic_cpu_base
      Src: /src/xen/xen/arch/arm/dom0less-build.c:63,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:65,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:69,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:73,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 80
    functionName: make_gicv2_domU_node
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - domain_fdt_begin_node
    - fdt_property_string
    - vgic_cpu_base
    - fdt_property_cell
    - dt_child_set_range
    - fdt_property
    - vgic_dist_base
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: int make_gicv2_domU_node(struct kernel_info *kinfo)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: domain_fdt_begin_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:92,1
    - Dst: vgic_dist_base
      Src: /src/xen/xen/arch/arm/dom0less-build.c:93,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:97,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:101,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:105,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/dom0less-build.c:109,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:113,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/arm/dom0less-build.c:121,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/dom0less-build.c:126,1
    - Dst: vgic_dist_base
      Src: /src/xen/xen/arch/arm/dom0less-build.c:127,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/dom0less-build.c:130,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:135,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/dom0less-build.c:136,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:140,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:144,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:148,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 151
    functionName: make_gicv3_domU_node
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - domain_fdt_begin_node
    - fdt_property_string
    - fdt_property_cell
    - xmalloc_bytes
    - dt_child_set_range
    - fdt_property
    - vgic_dist_base
    - xfree
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: int make_gicv3_domU_node(struct kernel_info *kinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_gicv3_domU_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:160,1
    - Dst: make_gicv2_domU_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:164,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: make_intc_domU_node
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - panic
    - make_gicv2_domU_node
    - make_gicv3_domU_node
    linkageType: ''
    returnType: int
    signature: int make_intc_domU_node(struct kernel_info *kinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: domain_fdt_begin_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:181,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/arch/arm/dom0less-build.c:185,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/arch/arm/dom0less-build.c:190,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:194,1
    - Dst: set_interrupt
      Src: /src/xen/xen/arch/arm/dom0less-build.c:198,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:200,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/dom0less-build.c:204,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/dom0less-build.c:210,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 217
    functionName: make_vpl011_uart_node
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 1
    functionsReached:
    - domain_fdt_begin_node
    - set_interrupt
    - fdt_property_string
    - fdt_property_cell
    - fdt_property_u32
    - dt_child_set_range
    - fdt_property
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: int make_vpl011_uart_node(struct kernel_info *kinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_psci_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:224,1
    - Dst: make_vpl011_uart_node
      Src: /src/xen/xen/arch/arm/dom0less-build.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 238
    functionName: make_arch_nodes
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - make_psci_node
    - make_vpl011_uart_node
    linkageType: ''
    returnType: int
    signature: int make_arch_nodes(struct kernel_info *kinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: set_domain_type
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_domain_type(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: set_domain_type
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_domain_type(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/arch/arm/dom0less-build.c:259,1
    - Dst: domain_vpl011_init
      Src: /src/xen/xen/arch/arm/dom0less-build.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 274
    functionName: init_vuart
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - dt_property_read_bool
    - domain_vpl011_init
    linkageType: ''
    returnType: int
    signature: "int init_vuart(struct domain *d, struct kernel_info *kinfo,\n                      const
      struct dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sci_assign_dt_device
      Src: /src/xen/xen/arch/arm/dom0less-build.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kinfo
    - node
    argTypes:
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: arch_handle_passthrough_prop
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - sci_assign_dt_device
    linkageType: ''
    returnType: int
    signature: "int arch_handle_passthrough_prop(struct kernel_info *kinfo,\n                                        struct
      dt_device_node *node)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/dom0less-build.c:290,1
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/arch/arm/dom0less-build.c:291,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/arch/arm/dom0less-build.c:294,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/dom0less-build.c:298,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/dom0less-build.c:300,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/dom0less-build.c:304,1
    - Dst: dt_node_name
      Src: /src/xen/xen/arch/arm/dom0less-build.c:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - node
    - d_cfg
    argTypes:
    - struct dt_device_node*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 310
    functionName: domu_dt_sci_parse
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - dt_property_read_bool
    - dt_node_name
    - IS_ENABLED
    - dt_property_read_string
    - printk
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int domu_dt_sci_parse(struct dt_device_node *node,\n                                    struct
      xen_domctl_createdomain *d_cfg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: domu_dt_sci_parse
      Src: /src/xen/xen/arch/arm/dom0less-build.c:322,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:323,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/dom0less-build.c:325,1
    - Dst: vgic_def_nr_spis
      Src: /src/xen/xen/arch/arm/dom0less-build.c:329,1
    - Dst: serial_irq
      Src: /src/xen/xen/arch/arm/dom0less-build.c:343,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:345,1
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/arch/arm/dom0less-build.c:353,1
    - Dst: MAX
      Src: /src/xen/xen/arch/arm/dom0less-build.c:354,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:358,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/dom0less-build.c:360,1
    - Dst: sve_domctl_vl_param
      Src: /src/xen/xen/arch/arm/dom0less-build.c:369,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/dom0less-build.c:373,1
    - Dst: sve_domctl_vl_param
      Src: /src/xen/xen/arch/arm/dom0less-build.c:374,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:376,1
    - Dst: sve_encode_vl
      Src: /src/xen/xen/arch/arm/dom0less-build.c:380,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:382,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:384,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/dom0less-build.c:390,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/dom0less-build.c:393,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - node
    - bd
    argTypes:
    - struct dt_device_node*
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 399
    functionName: arch_parse_dom0less_node
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - dt_property_read_bool
    - dt_property_read_u32
    - panic
    - vgic_def_nr_spis
    - dt_get_property
    - sve_domctl_vl_param
    - serial_irq
    - sve_encode_vl
    - domu_dt_sci_parse
    - MAX
    linkageType: ''
    returnType: int
    signature: "int arch_parse_dom0less_node(struct dt_device_node *node,\n                                    struct
      boot_domain *bd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/arch/arm/dom0less-build.c:404,1
    - Dst: fdt_get_phandle
      Src: /src/xen/xen/arch/arm/dom0less-build.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - kinfo
    - name
    - node_next
    - pfdt
    argTypes:
    - struct kernel_info*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 415
    functionName: init_intc_phandle
    functionSourceFile: /src/xen/xen/arch/arm/dom0less-build.c
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    - fdt_get_phandle
    linkageType: ''
    returnType: int
    signature: "int init_intc_phandle(struct kernel_info *kinfo, const char *name,\n
      \                            const int node_next, const void *pfdt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: arch_livepatch_safety_check
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_safety_check(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/livepatch.c:35,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/livepatch.c:36,1
    - Dst: vmap_contig
      Src: /src/xen/xen/arch/arm/livepatch.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: arch_livepatch_quiesce
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - vmap_contig
    - get_order_from_bytes
    - virt_to_mfn
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_quiesce(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_icache
      Src: /src/xen/xen/arch/arm/livepatch.c:60,1
    - Dst: vunmap
      Src: /src/xen/xen/arch/arm/livepatch.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: arch_livepatch_revive
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - vunmap
    - invalidate_icache
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_revive(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - func
    argTypes:
    - struct livepatch_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: arch_livepatch_verify_func
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_verify_func(const struct livepatch_func *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_insn_len
      Src: /src/xen/xen/arch/arm/livepatch.c:89,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/livepatch.c:90,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/livepatch.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: arch_livepatch_revert
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - livepatch_insn_len
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: "void arch_livepatch_revert(const struct livepatch_func *func,\n                           struct
      livepatch_fstate *state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isb
      Src: /src/xen/xen/arch/arm/livepatch.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: arch_livepatch_post_action
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - isb
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_post_action(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_abort_disable
      Src: /src/xen/xen/arch/arm/livepatch.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: arch_livepatch_mask
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - local_abort_disable
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_abort_enable
      Src: /src/xen/xen/arch/arm/livepatch.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: arch_livepatch_unmask
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - local_abort_enable
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_unmask(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/arch/arm/livepatch.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: arch_livepatch_symbol_ok
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool arch_livepatch_symbol_ok(const struct livepatch_elf *elf,\n                              const
      struct livepatch_elf_sym *sym)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/livepatch.c:150,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/livepatch.c:151,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/arm/livepatch.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - va
    - pages
    - type
    argTypes:
    - void*
    - unsigned int
    - enum va_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 172
    functionName: arch_livepatch_secure
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - modify_xen_mappings
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_secure(const void *va, unsigned int pages, enum
      va_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_init_type
      Src: /src/xen/xen/arch/arm/livepatch.c:181,1
    - Dst: cpus_set_cap
      Src: /src/xen/xen/arch/arm/livepatch.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: arch_livepatch_init
    functionSourceFile: /src/xen/xen/arch/arm/livepatch.c
    functionUses: 0
    functionsReached:
    - vm_init_type
    - cpus_set_cap
    linkageType: ''
    returnType: void
    signature: void arch_livepatch_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - dbase
    - cbase
    - csize
    - vbase
    - aliased_offset
    argTypes:
    - paddr_t
    - paddr_t
    - paddr_t
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: vgic_v2_setup_hw
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vgic_v2_setup_hw(paddr_t dbase, paddr_t cbase, paddr_t csize,\n
      \                     paddr_t vbase, uint32_t aliased_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v2.c:67,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v2.c:67,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v2.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rank
    - offset
    argTypes:
    - struct vgic_irq_rank*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: vgic_fetch_itargetsr
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - read_atomic
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vgic_fetch_itargetsr(struct vgic_irq_rank *rank,\n                                     unsigned
      int offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v2.c:90,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic-v2.c:90,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v2.c:98,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic-v2.c:99,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v2.c:115,1
    - Dst: ffs
      Src: /src/xen/xen/arch/arm/vgic-v2.c:126,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:137,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/vgic-v2.c:146,1
    - Dst: vgic_migrate_irq
      Src: /src/xen/xen/arch/arm/vgic-v2.c:151,1
    - Dst: write_atomic
      Src: /src/xen/xen/arch/arm/vgic-v2.c:154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - d
    - rank
    - offset
    - itargetsr
    argTypes:
    - struct domain*
    - struct vgic_irq_rank*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 157
    functionName: vgic_store_itargetsr
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - spin_is_locked
    - BUILD_BUG_ON
    - ASSERT
    - ffs
    - gprintk
    - read_atomic
    - vgic_migrate_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_store_itargetsr(struct domain *d, struct vgic_irq_rank *rank,\n
      \                                unsigned int offset, uint32_t itargetsr)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v2.c:171,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:175,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:177,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:178,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:179,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:182,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:188,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/vgic-v2.c:190,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:191,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:193,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:198,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:204,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:207,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:210,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:213,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:216,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:220,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:222,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:224,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:225,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:226,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:229,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:231,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:233,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:234,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:235,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:239,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:240,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:244,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:245,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:248,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:254,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v2.c:256,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:258,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v2.c:259,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:260,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:261,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:266,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:269,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:274,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:276,1
    - Dst: vgic_fetch_itargetsr
      Src: /src/xen/xen/arch/arm/vgic-v2.c:277,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:278,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:279,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:284,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:287,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:292,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:294,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v2.c:295,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:296,1
    - Dst: vreg_reg32_extract
      Src: /src/xen/xen/arch/arm/vgic-v2.c:298,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:303,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:306,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:310,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:316,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:320,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:321,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:324,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:327,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:330,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:332,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:335,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:339,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:345,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:356,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:363,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 181
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 368
    functionName: vgic_v2_distr_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - vgic_lock
    - REG_RANK_INDEX
    - vgic_fetch_itargetsr
    - vgic_unlock
    - DIV_ROUND_UP
    - VRANGE32
    - vgic_rank_offset
    - vgic_unlock_rank
    - vgic_lock_rank
    - printk
    - vreg_reg32_extract
    - VREG32
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int vgic_v2_distr_mmio_read(struct vcpu *v, mmio_info_t *info,\n                                   register_t
      *r, void *priv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sgi_target_init
      Src: /src/xen/xen/arch/arm/vgic-v2.c:378,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:396,1
    - Dst: vgic_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v2.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - v
    - sgir
    argTypes:
    - struct vcpu*
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 403
    functionName: vgic_v2_to_sgi
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - vgic_to_sgi
    - printk
    - sgi_target_init
    linkageType: ''
    returnType: bool
    signature: bool vgic_v2_to_sgi(struct vcpu *v, register_t sgir)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/vgic-v2.c:418,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:422,1
    - Dst: vgic_lock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:425,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v2.c:426,1
    - Dst: vgic_unlock
      Src: /src/xen/xen/arch/arm/vgic-v2.c:428,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:433,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:434,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:437,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:440,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:443,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:446,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:450,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:452,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:454,1
    - Dst: vreg_reg32_setbits
      Src: /src/xen/xen/arch/arm/vgic-v2.c:456,1
    - Dst: vgic_enable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v2.c:457,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:458,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:461,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:463,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:465,1
    - Dst: vreg_reg32_clearbits
      Src: /src/xen/xen/arch/arm/vgic-v2.c:467,1
    - Dst: vgic_disable_irqs
      Src: /src/xen/xen/arch/arm/vgic-v2.c:468,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:469,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:472,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:474,1
    - Dst: vgic_set_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v2.c:477,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:481,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:483,1
    - Dst: vgic_check_inflight_irqs_pending
      Src: /src/xen/xen/arch/arm/vgic-v2.c:486,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:490,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:494,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:499,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:500,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:505,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:510,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:512,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v2.c:513,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v2.c:516,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v2.c:517,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/vgic-v2.c:518,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:520,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:524,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:527,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:531,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:536,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:538,1
    - Dst: vgic_fetch_itargetsr
      Src: /src/xen/xen/arch/arm/vgic-v2.c:539,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v2.c:540,1
    - Dst: vgic_store_itargetsr
      Src: /src/xen/xen/arch/arm/vgic-v2.c:541,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:543,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:547,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:550,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:553,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:557,1
    - Dst: vgic_rank_offset
      Src: /src/xen/xen/arch/arm/vgic-v2.c:559,1
    - Dst: vgic_lock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:561,1
    - Dst: vreg_reg32_update
      Src: /src/xen/xen/arch/arm/vgic-v2.c:562,1
    - Dst: REG_RANK_INDEX
      Src: /src/xen/xen/arch/arm/vgic-v2.c:562,1
    - Dst: vgic_unlock_rank
      Src: /src/xen/xen/arch/arm/vgic-v2.c:565,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:568,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:571,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:575,1
    - Dst: vgic_v2_to_sgi
      Src: /src/xen/xen/arch/arm/vgic-v2.c:577,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:579,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:582,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:584,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:589,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:591,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:596,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:599,1
    - Dst: VREG32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:604,1
    - Dst: VRANGE32
      Src: /src/xen/xen/arch/arm/vgic-v2.c:607,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:611,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:618,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:629,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:635,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 208
    argCount: 4
    argNames:
    - v
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 405
    functionDepth: 6
    functionLinenumber: 405
    functionLinenumberEnd: 639
    functionName: vgic_v2_distr_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - vreg_reg32_clearbits
    - vgic_unlock
    - vgic_unlock_rank
    - vgic_disable_irqs
    - ACCESS_ONCE
    - vgic_lock
    - vgic_enable_irqs
    - vgic_fetch_itargetsr
    - printk
    - vgic_store_itargetsr
    - vgic_set_irqs_pending
    - REG_RANK_INDEX
    - VRANGE32
    - vgic_rank_offset
    - vreg_reg32_setbits
    - VREG32
    - vreg_reg32_update
    - perfc_incr
    - vgic_check_inflight_irqs_pending
    - vgic_lock_rank
    - vgic_v2_to_sgi
    linkageType: ''
    returnType: int
    signature: "int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info,\n
      \                                   register_t r, void *priv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: vgic_v2_vcpu_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vgic_v2_vcpu_init(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic-v2.c:663,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/arch/arm/vgic-v2.c:677,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic-v2.c:702,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic-v2.c:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 714
    functionName: vgic_v2_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    - is_hardware_domain
    - register_mmio_handler
    - is_domain_direct_mapped
    linkageType: ''
    returnType: int
    signature: int vgic_v2_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: vgic_v2_domain_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vgic_v2_domain_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vgic-v2.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - vlpi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: vgic_v2_lpi_to_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: struct pending_irq
    signature: "struct pending_irq *vgic_v2_lpi_to_pending(struct domain *d,\n                                                  unsigned
      int vlpi)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vgic-v2.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - vlpi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: vgic_v2_lpi_get_priority
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int vgic_v2_lpi_get_priority(struct domain *d, unsigned int vlpi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic-v2.c:746,1
    - Dst: register_vgic_ops
      Src: /src/xen/xen/arch/arm/vgic-v2.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - mmio_count
    argTypes:
    - struct domain*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: vgic_v2_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic-v2.c
    functionUses: 1
    functionsReached:
    - register_vgic_ops
    - printk
    linkageType: ''
    returnType: int
    signature: int vgic_v2_init(struct domain *d, unsigned int *mmio_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_physdev_op
      Src: /src/xen/xen/arch/arm/physdev.c:18,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/physdev.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: do_arm_physdev_op
    functionSourceFile: /src/xen/xen/arch/arm/physdev.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - pci_physdev_op
    linkageType: ''
    returnType: int
    signature: int do_arm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/domain-page.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: map_domain_page_global
    functionSourceFile: /src/xen/xen/arch/arm/mpu/domain-page.c
    functionUses: 15
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void *map_domain_page_global(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmap_contig
      Src: /src/xen/xen/arch/arm/mpu/domain-page.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: map_domain_page
    functionSourceFile: /src/xen/xen/arch/arm/mpu/domain-page.c
    functionUses: 157
    functionsReached:
    - vmap_contig
    linkageType: ''
    returnType: void
    signature: void *map_domain_page(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vunmap
      Src: /src/xen/xen/arch/arm/mpu/domain-page.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: unmap_domain_page
    functionSourceFile: /src/xen/xen/arch/arm/mpu/domain-page.c
    functionUses: 145
    functionsReached:
    - vunmap
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/domain-page.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: domain_page_map_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mpu/domain-page.c
    functionUses: 10
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t domain_page_map_to_mfn(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/domain-page.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: unmap_domain_page_global
    functionSourceFile: /src/xen/xen/arch/arm/mpu/domain-page.c
    functionUses: 7
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page_global(const void *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - p2m
    - sgfn
    - nr
    - smfn
    - t
    - a
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: p2m_set_entry
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 29
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int p2m_set_entry(struct p2m_domain *p2m, gfn_t sgfn, unsigned long
      nr,\n                  mfn_t smfn, p2m_type_t t, p2m_access_t a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - p2m
    - gfn
    - t
    - a
    - page_order
    - valid
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - unsigned int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: p2m_get_entry
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 8
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn, p2m_type_t
      *t,\n                    p2m_access_t *a, unsigned int *page_order, bool *valid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: p2m_dump_info
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void p2m_dump_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: p2m_init
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 5
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int p2m_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: p2m_save_state
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void p2m_save_state(struct vcpu *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: p2m_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void p2m_restore_state(struct vcpu *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: p2m_final_teardown
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void p2m_final_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/p2m.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: p2m_resolve_translation_fault
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: p2m_flush_vm
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_flush_vm(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: relinquish_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int relinquish_p2m_mapping(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: p2m_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_domain_creation_finished(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: p2m_teardown
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int p2m_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: p2m_teardown_allocation
    functionSourceFile: /src/xen/xen/arch/arm/mpu/p2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int p2m_teardown_allocation(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/mm.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_AI_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:52,1
    - Dst: PAGE_XN_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:63,1
    - Dst: PAGE_RO_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:65,1
    - Dst: pr_set_base
      Src: /src/xen/xen/arch/arm/mpu/mm.c:116,1
    - Dst: pr_set_limit
      Src: /src/xen/xen/arch/arm/mpu/mm.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - base
    - limit
    - flags
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 120
    functionName: pr_of_addr
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - PAGE_XN_MASK
    - pr_set_base
    - pr_set_limit
    - PAGE_RO_MASK
    - PAGE_AI_MASK
    linkageType: ''
    returnType: pr_t
    signature: pr_t pr_of_addr(paddr_t base, paddr_t limit, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:125,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:133,1
    - Dst: pr_get_base
      Src: /src/xen/xen/arch/arm/mpu/mm.c:143,1
    - Dst: pr_get_limit
      Src: /src/xen/xen/arch/arm/mpu/mm.c:144,1
    - Dst: region_is_valid
      Src: /src/xen/xen/arch/arm/mpu/mm.c:147,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - table
    - nr_regions
    - base
    - limit
    - index
    argTypes:
    - pr_t*
    - uint8_t
    - paddr_t
    - paddr_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 175
    functionName: mpumap_contains_region
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - pr_get_limit
    - pr_get_base
    - ASSERT
    - printk
    - region_is_valid
    linkageType: ''
    returnType: int
    signature: "int mpumap_contains_region(pr_t *table, uint8_t nr_regions, paddr_t
      base,\n                           paddr_t limit, uint8_t *index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_XN_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:179,1
    - Dst: PAGE_RO_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:180,1
    - Dst: PAGE_AI_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - region
    - attributes
    argTypes:
    - pr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: is_mm_attr_match
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - PAGE_XN_MASK
    - PAGE_RO_MASK
    - PAGE_AI_MASK
    linkageType: ''
    returnType: int
    signature: int is_mm_attr_match(pr_t *region, unsigned int attributes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/mpu/mm.c:193,1
    - Dst: ROUNDDOWN
      Src: /src/xen/xen/arch/arm/mpu/mm.c:194,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/mpu/mm.c:196,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mpu/mm.c:196,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mpu/mm.c:196,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/mpu/mm.c:197,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mpu/mm.c:197,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/mm.c:204,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/mm.c:205,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:208,1
    - Dst: paddr_to_pdx
      Src: /src/xen/xen/arch/arm/mpu/mm.c:211,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/mpu/mm.c:212,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/arm/mpu/mm.c:214,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/arm/mpu/mm.c:215,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mpu/mm.c:215,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mpu/mm.c:217,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mpu/mm.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 220
    functionName: setup_frametable_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 2
    functionsReached:
    - ROUNDDOWN
    - ROUNDUP
    - panic
    - mfn_x
    - mfn_add
    - mfn_to_pdx
    - BUILD_BUG_ON
    - maddr_to_mfn
    - memset
    - alloc_boot_pages
    - mfn_to_virt
    - paddr_to_pdx
    linkageType: ''
    returnType: void
    signature: void setup_frametable_mappings(paddr_t ps, paddr_t pe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:229,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/mpu/mm.c:229,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/arch/arm/mpu/mm.c:231,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:234,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/mpu/mm.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: xen_mpumap_alloc_entry
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - find_first_zero_bit
    - spin_is_locked
    - ASSERT
    - printk
    - set_bit
    linkageType: ''
    returnType: int
    signature: int xen_mpumap_alloc_entry(uint8_t *idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:250,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/mpu/mm.c:250,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:251,1
    - Dst: region_is_valid
      Src: /src/xen/xen/arch/arm/mpu/mm.c:253,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:255,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mpu/mm.c:261,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/mpu/mm.c:262,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/mm.c:271,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/mm.c:273,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - index
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: disable_mpu_region_from_index
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - write_protection_region
    - ASSERT
    - printk
    - region_is_valid
    - memset
    - clear_bit
    - READ_SYSREG
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void disable_mpu_region_from_index(uint8_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:289,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/mpu/mm.c:289,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:290,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:291,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:307,1
    - Dst: disable_mpu_region_from_index
      Src: /src/xen/xen/arch/arm/mpu/mm.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - idx
    - region_found_type
    argTypes:
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: xen_mpumap_free_entry
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - disable_mpu_region_from_index
    - ASSERT
    - spin_is_locked
    - printk
    linkageType: ''
    returnType: int
    signature: int xen_mpumap_free_entry(uint8_t idx, int region_found_type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:332,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/mpu/mm.c:332,1
    - Dst: mpumap_contains_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:334,1
    - Dst: is_mm_attr_match
      Src: /src/xen/xen/arch/arm/mpu/mm.c:347,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:352,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:365,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:372,1
    - Dst: PAGE_RO_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:378,1
    - Dst: PAGE_XN_MASK
      Src: /src/xen/xen/arch/arm/mpu/mm.c:379,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:381,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:388,1
    - Dst: xen_mpumap_alloc_entry
      Src: /src/xen/xen/arch/arm/mpu/mm.c:397,1
    - Dst: pr_of_addr
      Src: /src/xen/xen/arch/arm/mpu/mm.c:401,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:403,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:411,1
    - Dst: xen_mpumap_free_entry
      Src: /src/xen/xen/arch/arm/mpu/mm.c:415,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - base
    - limit
    - flags
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 419
    functionName: xen_mpumap_update_entry
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - is_mm_attr_match
    - xen_mpumap_alloc_entry
    - PAGE_XN_MASK
    - mpumap_contains_region
    - pr_of_addr
    - spin_is_locked
    - PAGE_RO_MASK
    - write_protection_region
    - ASSERT
    - xen_mpumap_free_entry
    - printk
    linkageType: ''
    returnType: int
    signature: "int xen_mpumap_update_entry(paddr_t base, paddr_t limit,\n                                   unsigned
      int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flags_has_rwx
      Src: /src/xen/xen/arch/arm/mpu/mm.c:425,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:427,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:433,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mpu/mm.c:438,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mpu/mm.c:438,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:440,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:445,1
    - Dst: xen_mpumap_update_entry
      Src: /src/xen/xen/arch/arm/mpu/mm.c:447,1
    - Dst: context_sync_mpu
      Src: /src/xen/xen/arch/arm/mpu/mm.c:449,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - base
    - limit
    - flags
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 454
    functionName: xen_mpumap_update
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - IS_ALIGNED
    - xen_mpumap_update_entry
    - spin_lock
    - printk
    - context_sync_mpu
    - flags_has_rwx
    linkageType: ''
    returnType: int
    signature: int xen_mpumap_update(paddr_t base, paddr_t limit, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:458,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mpu/mm.c:458,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:459,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mpu/mm.c:459,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:460,1
    - Dst: xen_mpumap_update
      Src: /src/xen/xen/arch/arm/mpu/mm.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 463
    functionName: destroy_xen_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 8
    functionsReached:
    - ASSERT
    - IS_ALIGNED
    - xen_mpumap_update
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mappings(unsigned long s, unsigned long e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/mm.c:470,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mpu/mm.c:470,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:472,1
    - Dst: mpumap_contains_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:474,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mpu/mm.c:483,1
    - Dst: xen_mpumap_free_entry
      Src: /src/xen/xen/arch/arm/mpu/mm.c:489,1
    - Dst: context_sync_mpu
      Src: /src/xen/xen/arch/arm/mpu/mm.c:491,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 465
    functionDepth: 3
    functionLinenumber: 465
    functionLinenumberEnd: 496
    functionName: destroy_xen_mapping_containing
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - mpumap_contains_region
    - IS_ALIGNED
    - ASSERT
    - spin_lock
    - xen_mpumap_free_entry
    - printk
    - context_sync_mpu
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mapping_containing(paddr_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_mpumap_update
      Src: /src/xen/xen/arch/arm/mpu/mm.c:502,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/mpu/mm.c:502,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mpu/mm.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: map_pages_to_xen
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 21
    functionsReached:
    - xen_mpumap_update
    - mfn_add
    - mfn_to_maddr
    linkageType: ''
    returnType: int
    signature: "int map_pages_to_xen(unsigned long virt, mfn_t mfn, unsigned long
      nr_mfns,\n                     unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/mpu/mm.c:511,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/arm/mpu/mm.c:518,1
    - Dst: round_pgdown
      Src: /src/xen/xen/arch/arm/mpu/mm.c:519,1
    - Dst: xen_mpumap_update
      Src: /src/xen/xen/arch/arm/mpu/mm.c:523,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:524,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 509
    functionDepth: 5
    functionLinenumber: 509
    functionLinenumberEnd: 532
    functionName: setup_mm_helper
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 1
    functionsReached:
    - panic
    - bootinfo_get_reserved_mem
    - round_pgdown
    - round_pgup
    - xen_mpumap_update
    linkageType: ''
    returnType: void
    signature: void setup_mm_helper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_mpumap_update
      Src: /src/xen/xen/arch/arm/mpu/mm.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - e
    - nf
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 537
    functionName: modify_xen_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 5
    functionsReached:
    - xen_mpumap_update
    linkageType: ''
    returnType: int
    signature: int modify_xen_mappings(unsigned long s, unsigned long e, unsigned
      int nf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/mm.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: dump_hyp_walk
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void dump_hyp_walk(vaddr_t addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/arm/mpu/mm.c:553,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:556,1
    - Dst: invalidate_icache_local
      Src: /src/xen/xen/arch/arm/mpu/mm.c:562,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mpu/mm.c:568,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mpu/mm.c:570,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:572,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:578,1
    - Dst: mpumap_contains_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:580,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/mm.c:585,1
    - Dst: pr_set_base
      Src: /src/xen/xen/arch/arm/mpu/mm.c:588,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/mm.c:590,1
    - Dst: context_sync_mpu
      Src: /src/xen/xen/arch/arm/mpu/mm.c:591,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mpu/mm.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 594
    functionName: free_init_memory
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - panic
    - invalidate_icache_local
    - mpumap_contains_region
    - pr_set_base
    - write_protection_region
    - destroy_xen_mappings
    - spin_lock
    - modify_xen_mappings
    - memset
    - context_sync_mpu
    linkageType: ''
    returnType: void
    signature: void free_init_memory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: round_pgdown
      Src: /src/xen/xen/arch/arm/mpu/mm.c:598,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/arm/mpu/mm.c:599,1
    - Dst: xen_mpumap_update
      Src: /src/xen/xen/arch/arm/mpu/mm.c:601,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/arm/mpu/mm.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - start
    - len
    - flags
    argTypes:
    - paddr_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 5
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: ioremap_attr
    functionSourceFile: /src/xen/xen/arch/arm/mpu/mm.c
    functionUses: 4
    functionsReached:
    - maddr_to_virt
    - round_pgdown
    - xen_mpumap_update
    - round_pgup
    linkageType: ''
    returnType: void
    signature: void *ioremap_attr(paddr_t start, size_t len, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:11,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:13,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: vmap_contig
    functionSourceFile: /src/xen/xen/arch/arm/mpu/vmap.c
    functionUses: 5
    functionsReached:
    - map_pages_to_xen
    - maddr_to_virt
    - mfn_to_maddr
    linkageType: ''
    returnType: void
    signature: void *vmap_contig(mfn_t mfn, unsigned int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:21,1
    - Dst: destroy_xen_mapping_containing
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:23,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/vmap.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: vunmap
    functionSourceFile: /src/xen/xen/arch/arm/mpu/vmap.c
    functionUses: 8
    functionsReached:
    - panic
    - destroy_xen_mapping_containing
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: void vunmap(const void *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: setup_pagetables
    functionSourceFile: /src/xen/xen/arch/arm/mpu/setup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setup_pagetables(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: round_pgdown
      Src: /src/xen/xen/arch/arm/mpu/setup.c:24,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/arm/mpu/setup.c:25,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mpu/setup.c:39,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mpu/setup.c:50,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mpu/setup.c:54,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mpu/setup.c:54,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:56,1
    - Dst: fdt_magic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:61,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/mpu/setup.c:64,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/arm/mpu/setup.c:68,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mpu/setup.c:73,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:75,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mpu/setup.c:79,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mpu/setup.c:79,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - fdt_paddr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 87
    functionName: early_fdt_map
    functionSourceFile: /src/xen/xen/arch/arm/mpu/setup.c
    functionUses: 2
    functionsReached:
    - panic
    - fdt_magic
    - BUILD_BUG_ON
    - fdt_totalsize
    - round_pgdown
    - ASSERT
    - map_pages_to_xen
    - maddr_to_mfn
    - destroy_xen_mappings
    - round_pgup
    linkageType: ''
    returnType: void
    signature: void * __init early_fdt_map(paddr_t fdt_paddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_pgdown
      Src: /src/xen/xen/arch/arm/mpu/setup.c:97,1
    - Dst: round_pgup
      Src: /src/xen/xen/arch/arm/mpu/setup.c:98,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mpu/setup.c:100,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mpu/setup.c:102,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:103,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/mpu/setup.c:105,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/arch/arm/mpu/setup.c:105,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mpu/setup.c:106,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mpu/setup.c:108,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - paddr
    - len
    argTypes:
    - void*
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: copy_from_paddr
    functionSourceFile: /src/xen/xen/arch/arm/mpu/setup.c
    functionUses: 4
    functionsReached:
    - clean_dcache_va_range
    - panic
    - round_pgdown
    - map_pages_to_xen
    - maddr_to_mfn
    - destroy_xen_mappings
    - round_pgup
    - memcpy
    - maddr_to_virt
    linkageType: ''
    returnType: void
    signature: void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mpu/setup.c:118,1
    - Dst: mpumap_contains_region
      Src: /src/xen/xen/arch/arm/mpu/setup.c:120,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:126,1
    - Dst: mpumap_contains_region
      Src: /src/xen/xen/arch/arm/mpu/setup.c:128,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:134,1
    - Dst: pr_set_base
      Src: /src/xen/xen/arch/arm/mpu/setup.c:137,1
    - Dst: pr_set_limit
      Src: /src/xen/xen/arch/arm/mpu/setup.c:140,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/setup.c:142,1
    - Dst: write_protection_region
      Src: /src/xen/xen/arch/arm/mpu/setup.c:143,1
    - Dst: context_sync_mpu
      Src: /src/xen/xen/arch/arm/mpu/setup.c:144,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mpu/setup.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 147
    functionName: modify_after_init_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mpu/setup.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - panic
    - mpumap_contains_region
    - pr_set_limit
    - pr_set_base
    - write_protection_region
    - spin_lock
    - context_sync_mpu
    linkageType: ''
    returnType: void
    signature: void modify_after_init_mappings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mpu/setup.c:151,1
    - Dst: round_pgdown
      Src: /src/xen/xen/arch/arm/mpu/setup.c:151,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mpu/setup.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: remove_early_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mpu/setup.c
    functionUses: 1
    functionsReached:
    - round_pgdown
    - destroy_xen_mappings
    - panic
    linkageType: ''
    returnType: void
    signature: void remove_early_mappings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: GENERATE_WRITE_PR_REG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_WRITE_PR_REG_CASE(num, pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: GENERATE_WRITE_PR_REG_OTHERS
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_WRITE_PR_REG_OTHERS(num, pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: GENERATE_READ_PR_REG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_READ_PR_REG_CASE(num, pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: GENERATE_READ_PR_REG_OTHERS
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_READ_PR_REG_OTHERS(num, pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:58,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:62,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sel
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: prepare_selector
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void prepare_selector(uint8_t *sel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_selector
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:69,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:73,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:74,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:75,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:76,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:77,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:78,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:79,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:80,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:81,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:82,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:83,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:84,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:85,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:86,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:87,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:88,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:89,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:90,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:91,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:92,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:93,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:94,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:95,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:96,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:97,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:98,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:99,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:100,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:101,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:102,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:103,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:104,1
    - Dst: GENERATE_READ_PR_REG_OTHERS
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:105,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 2
    argNames:
    - pr_read
    - sel
    argTypes:
    - pr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 110
    functionName: read_protection_region
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 0
    functionsReached:
    - prepare_selector
    - BUG
    - GENERATE_READ_PR_REG_CASE
    - GENERATE_READ_PR_REG_OTHERS
    linkageType: ''
    returnType: void
    signature: void read_protection_region(pr_t *pr_read, uint8_t sel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_selector
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:114,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:118,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:119,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:120,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:121,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:122,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:123,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:124,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:125,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:126,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:127,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:128,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:129,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:130,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:131,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:132,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:133,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:134,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:135,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:136,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:137,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:138,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:139,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:140,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:141,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:142,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:143,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:144,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:145,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:146,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:147,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:148,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:149,1
    - Dst: GENERATE_WRITE_PR_REG_OTHERS
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:150,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/mpu/arm32/mm.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 2
    argNames:
    - pr_write
    - sel
    argTypes:
    - pr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 155
    functionName: write_protection_region
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm32/mm.c
    functionUses: 4
    functionsReached:
    - GENERATE_WRITE_PR_REG_OTHERS
    - prepare_selector
    - BUG
    - GENERATE_WRITE_PR_REG_CASE
    linkageType: ''
    returnType: void
    signature: void write_protection_region(const pr_t *pr_write, uint8_t sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PRBAR_EL2_
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRBAR_EL2_(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PRLAR_EL2_
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRLAR_EL2_(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: GENERATE_WRITE_PR_REG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_WRITE_PR_REG_CASE(num, pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: GENERATE_READ_PR_REG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_READ_PR_REG_CASE(num, pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:59,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:61,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sel
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: prepare_selector
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 2
    functionsReached:
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void prepare_selector(uint8_t *sel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_selector
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:69,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:73,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:74,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:75,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:76,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:77,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:78,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:79,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:80,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:81,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:82,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:83,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:84,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:85,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:86,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:87,1
    - Dst: GENERATE_READ_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:88,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - pr_read
    - sel
    argTypes:
    - pr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: read_protection_region
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 0
    functionsReached:
    - prepare_selector
    - BUG
    - GENERATE_READ_PR_REG_CASE
    linkageType: ''
    returnType: void
    signature: void read_protection_region(pr_t *pr_read, uint8_t sel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prepare_selector
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:97,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:101,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:102,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:103,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:104,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:105,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:106,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:107,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:108,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:109,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:110,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:111,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:112,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:113,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:114,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:115,1
    - Dst: GENERATE_WRITE_PR_REG_CASE
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:116,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/mpu/arm64/mm.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - pr_write
    - sel
    argTypes:
    - pr_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: write_protection_region
    functionSourceFile: /src/xen/xen/arch/arm/mpu/arm64/mm.c
    functionUses: 4
    functionsReached:
    - prepare_selector
    - BUG
    - GENERATE_WRITE_PR_REG_CASE
    linkageType: ''
    returnType: void
    signature: void write_protection_region(const pr_t *pr_write, uint8_t sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tx_addr
    - rx_addr
    - page_count
    argTypes:
    - paddr_t
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: ffa_rxtx_map
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_rxtx_map(paddr_t tx_addr, paddr_t rx_addr,\n                            uint32_t
      page_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: ffa_rxtx_unmap
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_rxtx_unmap(uint16_t id)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:72,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:74,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:86,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:92,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:93,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:96,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:97,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:106,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:106,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:106,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:114,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:114,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:114,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:122,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:129,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:141,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:147,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:147,1
    - Dst: ffa_rxtx_spmc_tx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:152,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:163,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:165,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:176,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:186,1
    - Dst: ffa_rxtx_map
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:190,1
    - Dst: ffa_rxtx_spmc_tx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:192,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:205,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:206,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:211,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:213,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:215,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:217,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:219,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:220,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 101
    argCount: 4
    argNames:
    - fid
    - tx_addr
    - rx_addr
    - page_count
    argTypes:
    - uint32_t
    - register_t
    - register_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 223
    functionName: ffa_handle_rxtx_map
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - BUILD_BUG_ON
    - spin_lock
    - ffa_get_vm_id
    - gaddr_to_gfn
    - ffa_rxtx_map
    - get_page_from_gfn
    - gdprintk
    - spin_unlock
    - smccc_is_conv_64
    - unmap_domain_page_global
    - page_to_maddr
    - __map_domain_page_global
    - ffa_rxtx_spmc_tx_release
    - IS_ALIGNED
    - gfn_x
    - ffa_fw_supports_fid
    - ffa_rxtx_spmc_tx_acquire
    - put_page
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_handle_rxtx_map(uint32_t fid, register_t tx_addr,\n\t\t\t
      \    register_t rx_addr, uint32_t page_count)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:230,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:231,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:243,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:248,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:251,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:258,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:265,1
    - Dst: ffa_rxtx_unmap
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:267,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:267,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:272,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:273,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:274,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:275,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:284,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - d
    - teardown
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 288
    functionName: rxtx_unmap
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - spin_unlock
    - unmap_domain_page_global
    - ffa_rxtx_unmap
    - spin_lock
    - ffa_fw_supports_fid
    - put_page
    - ffa_simple_call
    - ffa_get_vm_id
    linkageType: ''
    returnType: int32_t
    signature: int32_t rxtx_unmap(struct domain *d, bool teardown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rxtx_unmap
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: ffa_handle_rxtx_unmap
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - rxtx_unmap
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_rxtx_unmap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:299,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:304,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:311,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:312,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:316,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:318,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:321,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - buf
    - buf_size
    argTypes:
    - struct ffa_ctx*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 332
    functionName: ffa_rx_acquire
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - spin_unlock
    - spin_lock
    - ffa_fw_supports_fid
    - printk_ratelimit
    - ffa_simple_call
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_rx_acquire(struct ffa_ctx *ctx, void **buf, size_t *buf_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:338,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:343,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:345,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ffa_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 355
    functionName: ffa_rx_release
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    - spin_lock
    - ffa_fw_supports_fid
    - spin_unlock
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_rx_release(struct ffa_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:361,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:363,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:369,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:375,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - buf
    - buf_size
    argTypes:
    - struct ffa_ctx*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 387
    functionName: ffa_tx_acquire
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - spin_trylock
    - spin_unlock
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_tx_acquire(struct ffa_ctx *ctx, const void **buf, size_t
      *buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:391,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:391,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ffa_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: ffa_tx_release
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - spin_unlock
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_tx_release(struct ffa_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:401,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 411
    functionName: ffa_rxtx_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_rxtx_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rxtx_unmap
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: ffa_rxtx_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - rxtx_unmap
    linkageType: ''
    returnType: void
    signature: void ffa_rxtx_domain_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 426
    functionName: ffa_rxtx_spmc_rx_acquire
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void *ffa_rxtx_spmc_rx_acquire(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:432,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:432,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:437,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - notify_fw
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 444
    functionName: ffa_rxtx_spmc_rx_release
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    - ASSERT
    - spin_is_locked
    - spin_unlock
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_rxtx_spmc_rx_release(bool notify_fw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: ffa_rxtx_spmc_tx_acquire
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 1
    functionsReached:
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void *ffa_rxtx_spmc_tx_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:458,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:458,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: ffa_rxtx_spmc_tx_release
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - spin_is_locked
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void ffa_rxtx_spmc_tx_release(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:467,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:468,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:473,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:478,1
    - Dst: ffa_rxtx_unmap
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:483,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:485,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 487
    functionName: ffa_rxtx_spmc_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - ffa_rxtx_unmap
    - spin_lock
    - spin_unlock
    - free_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void ffa_rxtx_spmc_destroy(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:495,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:498,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:499,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:501,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:502,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:506,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:507,1
    - Dst: ffa_rxtx_map
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:511,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:511,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:511,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:519,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:520,1
    - Dst: ffa_rxtx_spmc_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa_rxtx.c:523,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 526
    functionName: ffa_rxtx_spmc_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - __pa
    - get_order_from_pages
    - ffa_rxtx_spmc_destroy
    - spin_lock
    - ffa_fw_supports_fid
    - alloc_xenheap_pages
    - ffa_rxtx_map
    linkageType: ''
    returnType: bool
    signature: bool ffa_rxtx_spmc_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:105,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:115,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - tot_len
    - handle
    argTypes:
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 125
    functionName: ffa_spmc_share
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - regpair_to_uint64
    - arm_smccc_1_2_smc
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_spmc_share(uint32_t tot_len, uint64_t *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:132,1
    - Dst: uint64_to_regpair
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:135,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - shm
    - flags
    argTypes:
    - struct ffa_shm_mem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: ffa_spmc_reclaim
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - uint64_to_regpair
    - ffa_simple_call
    - ffa_fw_supports_fid
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_spmc_reclaim(struct ffa_shm_mem *shm, uint32_t flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:160,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:161,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:163,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:165,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:175,1
    - Dst: ffa_safe_addr_add
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:181,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:183,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:190,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:191,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:191,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:195,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:203,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - d
    - shm
    - range
    - range_count
    argTypes:
    - struct domain*
    - struct ffa_shm_mem*
    - struct ffa_address_range*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 222
    functionName: get_shm_pages
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - IS_ALIGNED
    - gaddr_to_gfn
    - gfn_x
    - ffa_safe_addr_add
    - ACCESS_ONCE
    - get_page_from_gfn
    linkageType: ''
    returnType: int32_t
    signature: "int32_t get_shm_pages(struct domain *d, struct ffa_shm_mem *shm,\n
      \                        const struct ffa_address_range *range,\n                         uint32_t
      range_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - shm
    argTypes:
    - struct ffa_shm_mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: put_shm_pages
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - put_page
    linkageType: ''
    returnType: void
    signature: void put_shm_pages(struct ffa_shm_mem *shm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:239,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:249,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - ctx
    argTypes:
    - struct domain*
    - struct ffa_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 258
    functionName: inc_ctx_shm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - get_knownalive_domain
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: bool
    signature: bool inc_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:264,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:266,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:275,1
    - Dst: put_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - ctx
    argTypes:
    - struct domain*
    - struct ffa_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 279
    functionName: dec_ctx_shm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_lock
    - put_domain
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void dec_ctx_shm_count(struct domain *d, struct ffa_ctx *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inc_ctx_shm_count
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:289,1
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:292,1
    - Dst: dec_ctx_shm_count
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - page_count
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: alloc_ffa_shm_mem
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - dec_ctx_shm_count
    - inc_ctx_shm_count
    - xzalloc_flex_struct
    linkageType: ''
    returnType: struct ffa_shm_mem
    signature: "struct ffa_shm_mem *alloc_ffa_shm_mem(struct domain *d,\n                                             unsigned
      int page_count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_ctx_shm_count
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:308,1
    - Dst: put_shm_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:309,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - shm
    argTypes:
    - struct domain*
    - struct ffa_shm_mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 311
    functionName: free_ffa_shm_mem
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - dec_ctx_shm_count
    - put_shm_pages
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_ffa_shm_mem(struct domain *d, struct ffa_shm_mem *shm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - addr_range
    - pa
    argTypes:
    - struct ffa_address_range*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: init_range
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void init_range(struct ffa_address_range *addr_range,\n                       paddr_t
      pa)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:344,1
    - Dst: ffa_rxtx_spmc_tx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:346,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:352,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:369,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:373,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:379,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:386,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:390,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:393,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:409,1
    - Dst: init_range
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:410,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:413,1
    - Dst: init_range
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:421,1
    - Dst: ffa_spmc_share
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:424,1
    - Dst: ffa_rxtx_spmc_tx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:427,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 67
    argCount: 2
    argNames:
    - shm
    - ffa_vers
    argTypes:
    - struct ffa_shm_mem*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 430
    functionName: share_shm
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - ffa_spmc_share
    - ffa_rxtx_spmc_tx_release
    - ASSERT
    - init_range
    - memset
    - ffa_rxtx_spmc_tx_acquire
    - page_to_maddr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int share_shm(struct ffa_shm_mem *shm, uint32_t ffa_vers)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:481,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - ffa_vers
    - buf
    - blen
    - trans
    argTypes:
    - uint32_t
    - void*
    - size_t
    - struct ffa_mem_transaction_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 510
    functionName: read_mem_transaction
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - barrier
    linkageType: ''
    returnType: int
    signature: "int read_mem_transaction(uint32_t ffa_vers, const void *buf, size_t
      blen,\n                                struct ffa_mem_transaction_int *trans)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:514,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:515,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:516,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:517,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:536,1
    - Dst: ffa_tx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:566,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:573,1
    - Dst: read_mem_transaction
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:574,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:597,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:614,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:615,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:616,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:625,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:632,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:651,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:652,1
    - Dst: alloc_ffa_shm_mem
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:660,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:668,1
    - Dst: get_shm_pages
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:680,1
    - Dst: share_shm
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:684,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:688,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:689,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:690,1
    - Dst: uint64_to_regpair
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:692,1
    - Dst: free_ffa_shm_mem
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:696,1
    - Dst: ffa_tx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:698,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:702,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:704,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 131
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 705
    functionName: ffa_handle_mem_share
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - free_ffa_shm_mem
    - ACCESS_ONCE
    - ffa_get_vm_id
    - uint64_to_regpair
    - ffa_set_regs_success
    - read_mem_transaction
    - get_user_reg
    - get_shm_pages
    - share_shm
    - spin_unlock
    - alloc_ffa_shm_mem
    - FFA_ID_IS_SECURE
    - ffa_tx_release
    - ffa_tx_acquire
    - ffa_set_regs_error
    - ffa_fw_supports_fid
    - memcpy
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void ffa_handle_mem_share(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - handle
    argTypes:
    - struct ffa_ctx*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 717
    functionName: find_shm_mem
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct ffa_shm_mem
    signature: struct ffa_shm_mem *find_shm_mem(struct ffa_ctx *ctx, uint64_t handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:726,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:729,1
    - Dst: find_shm_mem
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:730,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:732,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:733,1
    - Dst: ffa_spmc_reclaim
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:737,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:741,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:742,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:743,1
    - Dst: free_ffa_shm_mem
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - handle
    - flags
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 751
    functionName: ffa_handle_mem_reclaim
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - find_shm_mem
    - spin_lock
    - ffa_fw_supports_fid
    - list_del
    - free_ffa_shm_mem
    - ffa_spmc_reclaim
    - list_add_tail
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_mem_reclaim(uint64_t handle, uint32_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:759,1
    - Dst: ffa_spmc_reclaim
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:761,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:764,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:766,1
    - Dst: free_ffa_shm_mem
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:767,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:774,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:775,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:789,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:799,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/ffa_shm.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 806
    functionName: ffa_shm_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_shm.c
    functionUses: 0
    functionsReached:
    - printk_ratelimit
    - free_ffa_shm_mem
    - list_del
    - list_for_each_entry_safe
    - printk
    - ffa_spmc_reclaim
    - xfree
    linkageType: ''
    returnType: bool
    signature: bool ffa_shm_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - abi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: FW_ABI
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FW_ABI(abi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa.c:130,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa.c:131,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - vers
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: ffa_get_version
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - GENMASK_ULL
    - arm_smccc_1_2_smc
    linkageType: ''
    returnType: bool
    signature: bool ffa_get_version(uint32_t *vers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: ffa_abi_supported
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    linkageType: ''
    returnType: bool
    signature: bool ffa_abi_supported(uint32_t id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:149,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:150,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:153,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:156,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/tee/ffa.c:173,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:182,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa.c:184,1
    - Dst: inc_ffa_vm_count
      Src: /src/xen/xen/arch/arm/tee/ffa.c:187,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:188,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/ffa.c:189,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:190,1
    - Dst: FFA_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:207,1
    - Dst: FFA_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:217,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:223,1
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa.c:225,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:227,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 234
    functionName: ffa_negotiate_version
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - write_unlock
    - get_user_reg
    - IS_ENABLED
    - FFA_VERSION_MAJOR
    - FFA_VERSION_MINOR
    - spin_lock
    - ffa_set_regs_error
    - ffa_set_regs
    - write_lock
    - ACCESS_ONCE
    - is_64bit_domain
    - list_add_tail
    - inc_ffa_vm_count
    linkageType: ''
    returnType: bool
    signature: bool ffa_negotiate_version(struct cpu_user_regs *regs)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:238,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/tee/ffa.c:247,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa.c:247,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:250,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:260,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:273,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:278,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:279,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:281,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa.c:288,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:289,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:290,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:291,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:293,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:296,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:297,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:299,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:303,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:308,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:310,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:317,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:326,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:332,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:333,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:335,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:339,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:342,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:351,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:354,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 357
    functionName: handle_features
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - ffa_set_regs_success
    - smccc_is_conv_64
    - get_user_reg
    - IS_ENABLED
    - BUILD_BUG_ON
    - ffa_fw_supports_fid
    - ACCESS_ONCE
    - is_64bit_domain
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void handle_features(struct cpu_user_regs *regs)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:361,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/tee/ffa.c:369,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa.c:369,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:372,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:377,1
    - Dst: ffa_negotiate_version
      Src: /src/xen/xen/arch/arm/tee/ffa.c:379,1
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa.c:386,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:389,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa.c:389,1
    - Dst: handle_features
      Src: /src/xen/xen/arch/arm/tee/ffa.c:392,1
    - Dst: ffa_handle_rxtx_map
      Src: /src/xen/xen/arch/arm/tee/ffa.c:396,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:396,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:397,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:397,1
    - Dst: ffa_handle_rxtx_unmap
      Src: /src/xen/xen/arch/arm/tee/ffa.c:400,1
    - Dst: ffa_handle_partition_info_get
      Src: /src/xen/xen/arch/arm/tee/ffa.c:403,1
    - Dst: ffa_rx_release
      Src: /src/xen/xen/arch/arm/tee/ffa.c:406,1
    - Dst: ffa_handle_msg_send_direct_req
      Src: /src/xen/xen/arch/arm/tee/ffa.c:410,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:413,1
    - Dst: ffa_handle_msg_send_direct_req
      Src: /src/xen/xen/arch/arm/tee/ffa.c:415,1
    - Dst: ffa_handle_run
      Src: /src/xen/xen/arch/arm/tee/ffa.c:421,1
    - Dst: ffa_handle_msg_send2
      Src: /src/xen/xen/arch/arm/tee/ffa.c:424,1
    - Dst: ffa_handle_mem_share
      Src: /src/xen/xen/arch/arm/tee/ffa.c:428,1
    - Dst: ffa_handle_mem_reclaim
      Src: /src/xen/xen/arch/arm/tee/ffa.c:431,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/ffa.c:431,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:431,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:432,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa.c:433,1
    - Dst: ffa_handle_notification_bind
      Src: /src/xen/xen/arch/arm/tee/ffa.c:436,1
    - Dst: ffa_handle_notification_unbind
      Src: /src/xen/xen/arch/arm/tee/ffa.c:439,1
    - Dst: ffa_handle_notification_info_get
      Src: /src/xen/xen/arch/arm/tee/ffa.c:443,1
    - Dst: ffa_handle_notification_get
      Src: /src/xen/xen/arch/arm/tee/ffa.c:446,1
    - Dst: ffa_handle_notification_set
      Src: /src/xen/xen/arch/arm/tee/ffa.c:449,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:453,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa.c:459,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa.c:461,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 83
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 463
    functionName: ffa_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - ffa_handle_notification_get
    - ffa_handle_run
    - ffa_set_regs
    - ffa_handle_partition_info_get
    - ACCESS_ONCE
    - ffa_get_vm_id
    - ffa_set_regs_success
    - handle_features
    - ffa_handle_notification_bind
    - get_user_reg
    - ffa_negotiate_version
    - ffa_handle_notification_unbind
    - gdprintk
    - smccc_is_conv_64
    - ffa_handle_rxtx_map
    - ffa_rx_release
    - is_64bit_domain
    - ffa_set_regs_error
    - ffa_handle_msg_send_direct_req
    - ffa_handle_mem_share
    - ffa_handle_mem_reclaim
    - ffa_handle_notification_set
    - ffa_handle_msg_send2
    - ffa_handle_rxtx_unmap
    - ffa_handle_notification_info_get
    - regpair_to_uint64
    linkageType: ''
    returnType: bool
    signature: bool ffa_handle_call(struct cpu_user_regs *regs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/arch/arm/tee/ffa.c:486,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/tee/ffa.c:492,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:497,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/tee/ffa.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - endpoint_id
    - d_out
    - ctx_out
    argTypes:
    - uint16_t
    - struct domain**
    - struct ffa_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 508
    functionName: ffa_endpoint_domain_lookup
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - rcu_unlock_domain
    - rcu_lock_live_remote_domain_by_id
    - ACCESS_ONCE
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_endpoint_domain_lookup(uint16_t endpoint_id, struct domain
      **d_out,\n                                   struct ffa_ctx **ctx_out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa.c:515,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:523,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:524,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/tee/ffa.c:524,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/tee/ffa.c:529,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/tee/ffa.c:535,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:536,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:537,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/tee/ffa.c:540,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa.c:542,1
    - Dst: ffa_partinfo_domain_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:550,1
    - Dst: ffa_rxtx_domain_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:554,1
    - Dst: ffa_notif_domain_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 559
    functionName: ffa_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - BIT
    - spin_lock_init
    - BUILD_BUG_ON
    - IS_ENABLED
    - ffa_rxtx_domain_init
    - ffa_notif_domain_init
    - INIT_LIST_HEAD
    - ffa_partinfo_domain_init
    - ffa_get_vm_id
    linkageType: ''
    returnType: int
    signature: int ffa_domain_init(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ffa_partinfo_domain_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa.c:566,1
    - Dst: ffa_shm_domain_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa.c:568,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:573,1
    - Dst: NOW
      Src: /src/xen/xen/arch/arm/tee/ffa.c:576,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:578,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/ffa.c:579,1
    - Dst: list_first_entry
      Src: /src/xen/xen/arch/arm/tee/ffa.c:581,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:583,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:590,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/arch/arm/tee/ffa.c:591,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:593,1
    - Dst: set_timer
      Src: /src/xen/xen/arch/arm/tee/ffa.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - first_time
    argTypes:
    - struct ffa_ctx*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 599
    functionName: ffa_domain_teardown_continue
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - list_first_entry
    - ffa_shm_domain_destroy
    - spin_unlock
    - set_timer
    - spin_lock
    - printk
    - ffa_partinfo_domain_destroy
    - list_first_entry_or_null
    - list_add_tail
    - NOW
    linkageType: ''
    returnType: void
    signature: void ffa_domain_teardown_continue(struct ffa_ctx *ctx, bool first_time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:605,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/arch/arm/tee/ffa.c:606,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/ffa.c:609,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:610,1
    - Dst: ffa_domain_teardown_continue
      Src: /src/xen/xen/arch/arm/tee/ffa.c:613,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 601
    functionDepth: 5
    functionLinenumber: 601
    functionLinenumberEnd: 616
    functionName: ffa_teardown_timer_callback
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ffa_domain_teardown_continue
    - spin_lock
    - list_del
    - printk
    - list_first_entry_or_null
    linkageType: ''
    returnType: void
    signature: void ffa_teardown_timer_callback(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa.c:626,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:626,1
    - Dst: dec_ffa_vm_count
      Src: /src/xen/xen/arch/arm/tee/ffa.c:628,1
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:629,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/ffa.c:630,1
    - Dst: write_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa.c:631,1
    - Dst: ffa_rxtx_domain_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa.c:634,1
    - Dst: ffa_notif_domain_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa.c:635,1
    - Dst: ffa_domain_teardown_continue
      Src: /src/xen/xen/arch/arm/tee/ffa.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 640
    functionName: ffa_domain_teardown
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - write_unlock
    - ffa_domain_teardown_continue
    - dec_ffa_vm_count
    - IS_ENABLED
    - ffa_rxtx_domain_destroy
    - list_del
    - ffa_notif_domain_destroy
    - write_lock
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int ffa_domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: ffa_free_domain_ctx
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void ffa_free_domain_ctx(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    functionName: ffa_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ffa_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_notif_init_interrupt
      Src: /src/xen/xen/arch/arm/tee/ffa.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: ffa_init_secondary
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - ffa_notif_init_interrupt
    linkageType: ''
    returnType: void
    signature: void ffa_init_secondary(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:669,1
    - Dst: ffa_get_version
      Src: /src/xen/xen/arch/arm/tee/ffa.c:675,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:677,1
    - Dst: FFA_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:681,1
    - Dst: FFA_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:682,1
    - Dst: FFA_VERSION_MINOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:685,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:687,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:692,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/tee/ffa.c:709,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa.c:711,1
    - Dst: FFA_ABI_BITNUM
      Src: /src/xen/xen/arch/arm/tee/ffa.c:711,1
    - Dst: ffa_abi_supported
      Src: /src/xen/xen/arch/arm/tee/ffa.c:713,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/tee/ffa.c:714,1
    - Dst: FFA_ABI_BITNUM
      Src: /src/xen/xen/arch/arm/tee/ffa.c:714,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:717,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:725,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa.c:726,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:728,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:730,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/tee/ffa.c:732,1
    - Dst: FFA_ABI_BITNUM
      Src: /src/xen/xen/arch/arm/tee/ffa.c:732,1
    - Dst: ffa_rxtx_spmc_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:735,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:737,1
    - Dst: ffa_partinfo_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:741,1
    - Dst: ffa_notif_init
      Src: /src/xen/xen/arch/arm/tee/ffa.c:744,1
    - Dst: ffa_rxtx_spmc_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa.c:749,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/arm/tee/ffa.c:752,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:753,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 756
    functionName: ffa_probe_fw
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - set_bit
    - ARRAY_SIZE
    - ffa_rxtx_spmc_destroy
    - bitmap_zero
    - FFA_VERSION_MINOR
    - FFA_VERSION_MAJOR
    - ffa_abi_supported
    - ASSERT
    - ffa_fw_supports_fid
    - FFA_ABI_BITNUM
    - ffa_rxtx_spmc_init
    - printk
    - ffa_partinfo_init
    - ffa_notif_init
    - ffa_get_version
    linkageType: ''
    returnType: bool
    signature: bool ffa_probe_fw(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa.c:760,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:770,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/arm/tee/ffa.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: ffa_probe_vm_to_vm
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - add_taint
    - printk
    - IS_ENABLED
    linkageType: ''
    returnType: bool
    signature: bool ffa_probe_vm_to_vm(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:787,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:790,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa.c:791,1
    - Dst: FFA_VERSION_MAJOR
      Src: /src/xen/xen/arch/arm/tee/ffa.c:791,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:794,1
    - Dst: ffa_probe_fw
      Src: /src/xen/xen/arch/arm/tee/ffa.c:797,1
    - Dst: ffa_probe_vm_to_vm
      Src: /src/xen/xen/arch/arm/tee/ffa.c:797,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa.c:801,1
    - Dst: init_timer
      Src: /src/xen/xen/arch/arm/tee/ffa.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 776
    functionDepth: 5
    functionLinenumber: 776
    functionLinenumberEnd: 806
    functionName: ffa_probe
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa.c
    functionUses: 0
    functionsReached:
    - FFA_VERSION_MAJOR
    - BUILD_BUG_ON
    - ffa_probe_fw
    - printk
    - ffa_probe_vm_to_vm
    - init_timer
    linkageType: ''
    returnType: bool
    signature: bool ffa_probe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: MAKE_FFA_VERSION
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_FFA_VERSION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vers
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: FFA_VERSION_MAJOR
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_VERSION_MAJOR(vers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vers
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FFA_VERSION_MINOR
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_VERSION_MINOR(vers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: FFA_ID_IS_SECURE
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_ID_IS_SECURE(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: FFA_ABI_ID
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_ABI_ID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: FFA_ABI_CONV
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_ABI_CONV(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: FFA_ABI_BITNUM
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFA_ABI_BITNUM(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 492
    functionName: ffa_raise_rx_buffer_full
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ffa_raise_rx_buffer_full(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: get_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_ffa_vm_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: inc_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached:
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void inc_ffa_vm_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:512,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:512,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 514
    functionName: dec_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached:
    - ASSERT
    - atomic_read
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void dec_ffa_vm_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: get_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_ffa_vm_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: inc_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inc_ffa_vm_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: dec_ffa_vm_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dec_ffa_vm_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: ffa_get_vm_id
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ffa_get_vm_id(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:530,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vm_id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: ffa_rcu_lock_domain_by_vm_id
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - rcu_lock_domain_by_id
    linkageType: ''
    returnType: struct domain
    signature: struct domain *ffa_rcu_lock_domain_by_vm_id(uint16_t vm_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:545,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:546,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:547,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:548,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:549,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:550,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:551,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:552,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:554,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:555,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 9
    argNames:
    - regs
    - v0
    - v1
    - v2
    - v3
    - v4
    - v5
    - v6
    - v7
    argTypes:
    - struct cpu_user_regs*
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 560
    functionName: ffa_set_regs
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 2
    functionsReached:
    - set_user_reg
    - ACCESS_ONCE
    - is_64bit_domain
    linkageType: ''
    returnType: void
    signature: "void ffa_set_regs(struct cpu_user_regs *regs, register_t v0,\n                                register_t
      v1, register_t v2, register_t v3,\n                                register_t
      v4, register_t v5, register_t v6,\n                                register_t
      v7)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:565,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - error_code
    argTypes:
    - struct cpu_user_regs*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: ffa_set_regs_error
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 4
    functionsReached:
    - GENMASK_ULL
    - ffa_set_regs
    linkageType: ''
    returnType: void
    signature: "void ffa_set_regs_error(struct cpu_user_regs *regs,\n                                      int32_t
      error_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - regs
    - w2
    - w3
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 573
    functionName: ffa_set_regs_success
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 3
    functionsReached:
    - ffa_set_regs
    linkageType: ''
    returnType: void
    signature: "void ffa_set_regs_success(struct cpu_user_regs *regs,\n                                        uint32_t
      w2, uint32_t w3)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - resp
    argTypes:
    - struct arm_smccc_1_2_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 590
    functionName: ffa_get_ret_code
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached:
    - GENMASK_ULL
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_get_ret_code(const struct arm_smccc_1_2_regs *resp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:605,1
    - Dst: ffa_get_ret_code
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fid
    - a1
    - a2
    - a3
    - a4
    argTypes:
    - uint32_t
    - register_t
    - register_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 608
    functionName: ffa_simple_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 8
    functionsReached:
    - ffa_get_ret_code
    - arm_smccc_1_2_smc
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_simple_call(uint32_t fid, register_t a1,\n                                      register_t
      a2, register_t a3,\n                                      register_t a4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:612,1
    - Dst: FFA_ABI_BITNUM
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:614,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:616,1
    - Dst: FFA_ABI_BITNUM
      Src: /src/xen/xen/arch/arm/tee/ffa_private.h:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 617
    functionName: ffa_fw_supports_fid
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 10
    functionsReached:
    - test_bit
    - FFA_ABI_BITNUM
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool ffa_fw_supports_fid(uint32_t fid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct ffa_uuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 622
    functionName: ffa_uuid_is_nil
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ffa_uuid_is_nil(struct ffa_uuid id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - id1
    - id2
    argTypes:
    - struct ffa_uuid
    - struct ffa_uuid
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: ffa_uuid_equal
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ffa_uuid_equal(struct ffa_uuid id1, struct ffa_uuid id2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - id
    - val0
    - val1
    - val2
    - val3
    argTypes:
    - struct ffa_uuid*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: ffa_uuid_set
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ffa_uuid_set(struct ffa_uuid *id, uint32_t val0,\n                                uint32_t
      val1, uint32_t val2, uint32_t val3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - pages
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: ffa_safe_addr_add
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ffa_safe_addr_add(uint64_t addr, uint64_t pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - domain
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: OPTEE_CLIENT_ID
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_CLIENT_ID(domain)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/tee/optee.c:176,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:181,1
    - Dst: ARM_SMCCC_CALL_UID_FID
      Src: /src/xen/xen/arch/arm/tee/optee.c:181,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:190,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/optee.c:194,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/optee.c:200,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 217
    functionName: optee_probe
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - printk
    - ARM_SMCCC_CALL_UID_FID
    - arm_smccc_smc
    linkageType: ''
    returnType: bool
    signature: bool optee_probe(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/tee/optee.c:233,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:246,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:246,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/optee.c:250,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:253,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/tee/optee.c:258,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/tee/optee.c:259,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/tee/optee.c:260,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/arm/tee/optee.c:261,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/arm/tee/optee.c:262,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/arm/tee/optee.c:263,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/tee/optee.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 269
    functionName: optee_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - xzalloc
    - spin_lock_init
    - OPTEE_CLIENT_ID
    - printk
    - INIT_LIST_HEAD
    - xfree
    - arm_smccc_smc
    linkageType: ''
    returnType: int
    signature: int optee_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: optee_domain_teardown
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int optee_domain_teardown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:281,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/tee/optee.c:281,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - gfn
    argTypes:
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: get_domain_ram_page
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - put_page
    - get_page_from_gfn
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *get_domain_ram_page(gfn_t gfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_unless
      Src: /src/xen/xen/arch/arm/tee/optee.c:303,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:305,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/tee/optee.c:307,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/arm/tee/optee.c:310,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:311,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:318,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/optee.c:319,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct optee_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 323
    functionName: allocate_std_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_unlock
    - ERR_PTR
    - atomic_add_unless
    - spin_lock
    - list_add_tail
    - atomic_dec
    linkageType: ''
    returnType: struct optee_std_call
    signature: struct optee_std_call *allocate_std_call(struct optee_domain *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/arm/tee/optee.c:328,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:330,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/optee.c:331,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:332,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:334,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:335,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:338,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - call
    argTypes:
    - struct optee_domain*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 341
    functionName: free_std_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - ASSERT
    - spin_lock
    - list_del
    - free_domheap_page
    - xfree
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: "void free_std_call(struct optee_domain *ctx,\n                          struct
      optee_std_call *call)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:345,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: map_xen_arg
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void map_xen_arg(struct optee_std_call *call)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: unmap_xen_arg
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void unmap_xen_arg(struct optee_std_call *call)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:364,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:365,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:371,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:376,1
    - Dst: map_xen_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:377,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - thread_id
    argTypes:
    - struct optee_domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 387
    functionName: get_std_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - map_xen_arg
    - gdprintk
    - spin_unlock
    - spin_lock
    - list_for_each_entry
    linkageType: ''
    returnType: struct optee_std_call
    signature: "struct optee_std_call *get_std_call(struct optee_domain *ctx,\n                                           int
      thread_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:391,1
    - Dst: unmap_xen_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:392,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:393,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - call
    argTypes:
    - struct optee_domain*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: put_std_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - unmap_xen_arg
    - ASSERT
    - spin_unlock
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void put_std_call(struct optee_domain *ctx, struct optee_std_call *call)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/tee/optee.c:403,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:405,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:407,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:410,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:411,1
    - Dst: get_domain_ram_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:415,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:422,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:424,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:428,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:429,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/optee.c:436,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:437,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:442,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:445,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:446,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - gfn
    - cookie
    argTypes:
    - struct optee_domain*
    - gfn_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 449
    functionName: allocate_and_pin_shm_rpc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_unlock
    - gdprintk
    - get_domain_ram_page
    - ERR_PTR
    - alloc_domheap_page
    - spin_lock
    - put_page
    - free_domheap_page
    - xfree
    - list_for_each_entry
    - list_add_tail
    linkageType: ''
    returnType: struct shm_rpc
    signature: "struct shm_rpc *allocate_and_pin_shm_rpc(struct optee_domain *ctx,\n
      \                                               gfn_t gfn, uint64_t cookie)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:456,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:458,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/optee.c:463,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:467,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:472,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:474,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:475,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - cookie
    argTypes:
    - struct optee_domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 478
    functionName: free_shm_rpc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_lock
    - ASSERT
    - list_del
    - put_page
    - free_domheap_page
    - xfree
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void free_shm_rpc(struct optee_domain *ctx, uint64_t cookie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:484,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:485,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:489,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - cookie
    argTypes:
    - struct optee_domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: find_shm_rpc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct shm_rpc
    signature: struct shm_rpc *find_shm_rpc(struct optee_domain *ctx, uint64_t cookie)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_unless
      Src: /src/xen/xen/arch/arm/tee/optee.c:509,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:512,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/tee/optee.c:516,1
    - Dst: old::old
      Src: /src/xen/xen/arch/arm/tee/optee.c:517,1
    - Dst: MAX_TOTAL_SMH_BUF_PG::MAX_TOTAL_SMH_BUF_PG
      Src: /src/xen/xen/arch/arm/tee/optee.c:518,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/tee/optee.c:524,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/arch/arm/tee/optee.c:524,1
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/arch/arm/tee/optee.c:527,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:538,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:540,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:544,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:545,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/tee/optee.c:553,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:554,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:559,1
    - Dst: atomic_sub
      Src: /src/xen/xen/arch/arm/tee/optee.c:560,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/arm/tee/optee.c:562,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/tee/optee.c:564,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 5
    argNames:
    - ctx
    - cookie
    - pages_cnt
    - pg_list
    - pg_list_order
    argTypes:
    - struct optee_domain*
    - uint64_t
    - unsigned int
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 565
    functionName: allocate_optee_shm_buf
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - atomic_cmpxchg
    - spin_unlock
    - gdprintk
    - ERR_PTR
    - MAX_TOTAL_SMH_BUF_PG::MAX_TOTAL_SMH_BUF_PG
    - list_add_tail
    - atomic_sub
    - old::old
    - atomic_add_unless
    - xzalloc_flex_struct
    - spin_lock
    - unlikely
    - xfree
    - list_for_each_entry
    - atomic_read
    - atomic_dec
    linkageType: ''
    returnType: struct optee_shm_buf
    signature: "struct optee_shm_buf *allocate_optee_shm_buf(struct optee_domain *ctx,\n
      \                                                   uint64_t cookie,\n                                                    unsigned
      int pages_cnt,\n                                                    struct page_info
      *pg_list,\n                                                    unsigned int
      pg_list_order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/arm/tee/optee.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - optee_shm_buf
    argTypes:
    - struct optee_shm_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 575
    functionName: free_pg_list
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - free_domheap_pages
    linkageType: ''
    returnType: void
    signature: void free_pg_list(struct optee_shm_buf *optee_shm_buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:583,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:584,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/tee/optee.c:589,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:593,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:600,1
    - Dst: free_pg_list
      Src: /src/xen/xen/arch/arm/tee/optee.c:602,1
    - Dst: atomic_sub
      Src: /src/xen/xen/arch/arm/tee/optee.c:604,1
    - Dst: atomic_dec
      Src: /src/xen/xen/arch/arm/tee/optee.c:605,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/tee/optee.c:607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - cookie
    argTypes:
    - struct optee_domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 608
    functionName: free_optee_shm_buf
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - atomic_sub
    - spin_unlock
    - free_pg_list
    - spin_lock
    - list_del
    - put_page
    - xfree
    - list_for_each_entry
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void free_optee_shm_buf(struct optee_domain *ctx, uint64_t cookie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/tee/optee.c:616,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/optee.c:617,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/tee/optee.c:625,1
    - Dst: free_pg_list
      Src: /src/xen/xen/arch/arm/tee/optee.c:628,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - cookie
    argTypes:
    - struct optee_domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 633
    functionName: free_optee_shm_buf_pg_list
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - spin_unlock
    - free_pg_list
    - spin_lock
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void free_optee_shm_buf_pg_list(struct optee_domain *ctx,\n                                       uint64_t
      cookie)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/tee/optee.c:651,1
    - Dst: free_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:652,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/tee/optee.c:654,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/tee/optee.c:661,1
    - Dst: free_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:662,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/tee/optee.c:664,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/tee/optee.c:667,1
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:670,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/tee/optee.c:673,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:684,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:684,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:687,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/tee/optee.c:687,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:688,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/tee/optee.c:688,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:689,1
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/tee/optee.c:689,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/optee.c:690,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/tee/optee.c:690,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/tee/optee.c:692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 695
    functionName: optee_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - XFREE
    - atomic_read
    - free_optee_shm_buf
    - free_shm_rpc
    - list_for_each_entry_safe
    - hypercall_preempt_check
    - OPTEE_CLIENT_ID
    - ASSERT
    - free_std_call
    - list_empty
    - arm_smccc_smc
    linkageType: ''
    returnType: int
    signature: int optee_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/tee/optee.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num_entries
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: get_pages_list_size
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    linkageType: ''
    returnType: size_t
    signature: size_t get_pages_list_size(size_t num_entries)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/tee/optee.c:744,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/arch/arm/tee/optee.c:746,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/tee/optee.c:750,1
    - Dst: get_pages_list_size
      Src: /src/xen/xen/arch/arm/tee/optee.c:750,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/arm/tee/optee.c:771,1
    - Dst: allocate_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:775,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:777,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/arm/tee/optee.c:779,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:780,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:783,1
    - Dst: get_domain_ram_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:805,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:809,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:810,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/optee.c:814,1
    - Dst: get_domain_ram_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:815,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:815,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:820,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:826,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:829,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:831,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:832,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:833,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:842,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:843,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:844,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:846,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:851,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:852,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:853,1
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:855,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 3
    argNames:
    - ctx
    - call
    - param
    argTypes:
    - struct optee_domain*
    - struct optee_std_call*
    - struct optee_msg_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 858
    functionName: translate_noncontig
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - ROUNDUP
    - IS_ERR
    - allocate_optee_shm_buf
    - get_domain_ram_page
    - unmap_domain_page
    - free_domheap_pages
    - DIV_ROUND_UP
    - PTR_ERR
    - gaddr_to_gfn
    - BUILD_BUG_ON
    - free_optee_shm_buf
    - __map_domain_page
    - put_page
    - alloc_domheap_pages
    - page_to_maddr
    - get_pages_list_size
    linkageType: ''
    returnType: int
    signature: "int translate_noncontig(struct optee_domain *ctx,\n                               struct
      optee_std_call *call,\n                               struct optee_msg_param
      *param)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: translate_noncontig
      Src: /src/xen/xen/arch/arm/tee/optee.c:878,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:886,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - ctx
    - call
    argTypes:
    - struct optee_domain*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 914
    functionName: translate_params
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - translate_noncontig
    - gdprintk
    linkageType: ''
    returnType: int
    signature: "int translate_params(struct optee_domain *ctx,\n                            struct
      optee_std_call *call)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:924,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:924,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:925,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:933,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/optee.c:937,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:939,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:942,1
    - Dst: map_xen_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:946,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/tee/optee.c:948,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - regs
    - call
    argTypes:
    - struct cpu_user_regs*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 957
    functionName: copy_std_request
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - map_xen_arg
    - set_user_reg
    - alloc_domheap_page
    - get_user_reg
    - BUILD_BUG_ON
    - access_guest_memory_by_gpa
    - regpair_to_uint64
    linkageType: ''
    returnType: bool
    signature: "bool copy_std_request(struct cpu_user_regs *regs,\n                             struct
      optee_std_call *call)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_domain_ram_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:979,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:979,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:990,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:995,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1033,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - ctx
    - regs
    - call
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 1035
    functionName: copy_std_request_back
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - get_domain_ram_page
    - set_user_reg
    - gaddr_to_gfn
    - __map_domain_page
    - put_page
    linkageType: ''
    returnType: void
    signature: "void copy_std_request_back(struct optee_domain *ctx,\n                                  struct
      cpu_user_regs *regs,\n                                  struct optee_std_call
      *call)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - struct optee_domain*
    - struct optee_msg_arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1038
    functionDepth: 3
    functionLinenumber: 1038
    functionLinenumberEnd: 1056
    functionName: free_shm_buffers
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - free_optee_shm_buf
    linkageType: ''
    returnType: void
    signature: "void free_shm_buffers(struct optee_domain *ctx,\n                             struct
      optee_msg_arg *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OPTEE_SMC_RETURN_GET_RPC_FUNC
      Src: /src/xen/xen/arch/arm/tee/optee.c:1066,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1071,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1072,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1073,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1074,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1079,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1079,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1080,1
    - Dst: find_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1081,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:1095,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1101,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/tee/optee.c:1103,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1104,1
    - Dst: OPTEE_MSG_GET_ARG_SIZE
      Src: /src/xen/xen/arch/arm/tee/optee.c:1106,1
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:1128,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1131,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1135,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1135,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1136,1
    - Dst: free_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - ctx
    - res
    - regs
    - call
    argTypes:
    - struct optee_domain*
    - struct arm_smccc_res*
    - struct cpu_user_regs*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1059
    functionDepth: 3
    functionLinenumber: 1059
    functionLinenumberEnd: 1142
    functionName: handle_rpc_return
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - set_user_reg
    - OPTEE_MSG_GET_ARG_SIZE
    - find_shm_rpc
    - get_user_reg
    - gfn_to_gaddr
    - gprintk
    - free_optee_shm_buf
    - free_shm_rpc
    - access_guest_memory_by_gpa
    - __map_domain_page
    - regpair_to_uint64
    - OPTEE_SMC_RETURN_GET_RPC_FUNC
    linkageType: ''
    returnType: int
    signature: "int handle_rpc_return(struct optee_domain *ctx,\n                             struct
      arm_smccc_res *res,\n                             struct cpu_user_regs *regs,\n
      \                            struct optee_std_call *call)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1167,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1167,1
    - Dst: OPTEE_SMC_RETURN_IS_RPC
      Src: /src/xen/xen/arch/arm/tee/optee.c:1170,1
    - Dst: handle_rpc_return
      Src: /src/xen/xen/arch/arm/tee/optee.c:1172,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1174,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1175,1
    - Dst: OPTEE_SMC_RETURN_IS_RPC
      Src: /src/xen/xen/arch/arm/tee/optee.c:1177,1
    - Dst: put_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1182,1
    - Dst: copy_std_request_back
      Src: /src/xen/xen/arch/arm/tee/optee.c:1187,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1188,1
    - Dst: free_optee_shm_buf_pg_list
      Src: /src/xen/xen/arch/arm/tee/optee.c:1195,1
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:1199,1
    - Dst: free_optee_shm_buf
      Src: /src/xen/xen/arch/arm/tee/optee.c:1204,1
    - Dst: free_shm_buffers
      Src: /src/xen/xen/arch/arm/tee/optee.c:1208,1
    - Dst: put_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1212,1
    - Dst: free_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1213,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 9
    argNames:
    - ctx
    - call
    - regs
    - a0
    - a1
    - a2
    - a3
    - a4
    - a5
    argTypes:
    - struct optee_domain*
    - struct optee_std_call*
    - struct cpu_user_regs*
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1159
    functionDepth: 4
    functionLinenumber: 1159
    functionLinenumberEnd: 1214
    functionName: do_call_with_arg
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - set_user_reg
    - copy_std_request_back
    - free_shm_buffers
    - OPTEE_SMC_RETURN_IS_RPC
    - handle_rpc_return
    - free_optee_shm_buf_pg_list
    - free_optee_shm_buf
    - put_std_call
    - OPTEE_CLIENT_ID
    - free_std_call
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: "void do_call_with_arg(struct optee_domain *ctx,\n                             struct
      optee_std_call *call,\n                             struct cpu_user_regs *regs,\n
      \                            register_t a0, register_t a1, register_t a2,\n
      \                            register_t a3, register_t a4, register_t a5)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: allocate_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1237,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:1239,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:1241,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1242,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1244,1
    - Dst: copy_std_request
      Src: /src/xen/xen/arch/arm/tee/optee.c:1249,1
    - Dst: OPTEE_MSG_GET_ARG_SIZE
      Src: /src/xen/xen/arch/arm/tee/optee.c:1252,1
    - Dst: copy_std_request_back
      Src: /src/xen/xen/arch/arm/tee/optee.c:1260,1
    - Dst: translate_params
      Src: /src/xen/xen/arch/arm/tee/optee.c:1273,1
    - Dst: copy_std_request_back
      Src: /src/xen/xen/arch/arm/tee/optee.c:1280,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1281,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1285,1
    - Dst: uint64_to_regpair
      Src: /src/xen/xen/arch/arm/tee/optee.c:1286,1
    - Dst: do_call_with_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1288,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1292,1
    - Dst: put_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1297,1
    - Dst: free_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - ctx
    - regs
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1231
    functionDepth: 5
    functionLinenumber: 1231
    functionLinenumberEnd: 1301
    functionName: handle_std_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - uint64_to_regpair
    - allocate_std_call
    - IS_ERR
    - set_user_reg
    - OPTEE_MSG_GET_ARG_SIZE
    - translate_params
    - do_call_with_arg
    - PTR_ERR
    - copy_std_request
    - put_std_call
    - free_std_call
    - page_to_maddr
    - copy_std_request_back
    linkageType: ''
    returnType: void
    signature: "void handle_std_call(struct optee_domain *ctx,\n                            struct
      cpu_user_regs *regs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/tee/optee.c:1327,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1328,1
    - Dst: OPTEE_MSG_GET_ARG_SIZE
      Src: /src/xen/xen/arch/arm/tee/optee.c:1330,1
    - Dst: uint64_to_regpair
      Src: /src/xen/xen/arch/arm/tee/optee.c:1348,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1354,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1356,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1357,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 5
    argNames:
    - ctx
    - regs
    - call
    - shm_rpc
    - cookie
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    - struct shm_rpc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1361
    functionName: issue_rpc_cmd_free
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - uint64_to_regpair
    - set_user_reg
    - OPTEE_MSG_GET_ARG_SIZE
    - get_user_reg
    - gfn_to_gaddr
    - access_guest_memory_by_gpa
    linkageType: ''
    returnType: bool
    signature: "bool issue_rpc_cmd_free(struct optee_domain *ctx,\n                               struct
      cpu_user_regs *regs,\n                               struct optee_std_call *call,\n
      \                              struct shm_rpc *shm_rpc,\n                               uint64_t
      cookie)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/tee/optee.c:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - regs
    - call
    - shm_rpc
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    - struct shm_rpc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1387
    functionName: handle_xen_rpc_return
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - domain_crash
    linkageType: ''
    returnType: void
    signature: "void handle_xen_rpc_return(struct optee_domain *ctx,\n                                  struct
      cpu_user_regs *regs,\n                                  struct optee_std_call
      *call,\n                                  struct shm_rpc *shm_rpc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:1409,1
    - Dst: free_optee_shm_buf_pg_list
      Src: /src/xen/xen/arch/arm/tee/optee.c:1417,1
    - Dst: translate_noncontig
      Src: /src/xen/xen/arch/arm/tee/optee.c:1419,1
    - Dst: issue_rpc_cmd_free
      Src: /src/xen/xen/arch/arm/tee/optee.c:1431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ctx
    - regs
    - call
    - shm_rpc
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    - struct shm_rpc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1398
    functionDepth: 4
    functionLinenumber: 1398
    functionLinenumberEnd: 1436
    functionName: handle_rpc_cmd_alloc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - free_optee_shm_buf_pg_list
    - gdprintk
    - issue_rpc_cmd_free
    - translate_noncontig
    linkageType: ''
    returnType: bool
    signature: "bool handle_rpc_cmd_alloc(struct optee_domain *ctx,\n                                 struct
      cpu_user_regs *regs,\n                                 struct optee_std_call
      *call,\n                                 struct shm_rpc *shm_rpc)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1445,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1445,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1446,1
    - Dst: find_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1448,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:1452,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1457,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/tee/optee.c:1460,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1461,1
    - Dst: OPTEE_MSG_GET_ARG_SIZE
      Src: /src/xen/xen/arch/arm/tee/optee.c:1470,1
    - Dst: access_guest_memory_by_gpa
      Src: /src/xen/xen/arch/arm/tee/optee.c:1478,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1478,1
    - Dst: handle_rpc_cmd_alloc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1494,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1497,1
    - Dst: put_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1498,1
    - Dst: handle_xen_rpc_return
      Src: /src/xen/xen/arch/arm/tee/optee.c:1511,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/tee/optee.c:1515,1
    - Dst: do_call_with_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1517,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 3
    argNames:
    - ctx
    - regs
    - call
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1520
    functionName: handle_rpc_cmd
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - unmap_domain_page
    - OPTEE_MSG_GET_ARG_SIZE
    - find_shm_rpc
    - do_call_with_arg
    - get_user_reg
    - handle_rpc_cmd_alloc
    - gfn_to_gaddr
    - put_std_call
    - access_guest_memory_by_gpa
    - __map_domain_page
    - regpair_to_uint64
    - handle_xen_rpc_return
    linkageType: ''
    returnType: void
    signature: "void handle_rpc_cmd(struct optee_domain *ctx, struct cpu_user_regs
      *regs,\n                           struct optee_std_call *call)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1528,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1528,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1529,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1530,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1530,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1531,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:1535,1
    - Dst: allocate_and_pin_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1545,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/tee/optee.c:1545,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:1546,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/optee.c:1548,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/arch/arm/tee/optee.c:1549,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/arch/arm/tee/optee.c:1553,1
    - Dst: uint64_to_regpair
      Src: /src/xen/xen/arch/arm/tee/optee.c:1556,1
    - Dst: do_call_with_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1558,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1559,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1560,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - regs
    - call
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    - struct optee_std_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1522
    functionDepth: 5
    functionLinenumber: 1522
    functionLinenumberEnd: 1562
    functionName: handle_rpc_func_alloc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - uint64_to_regpair
    - gdprintk
    - IS_ERR
    - do_call_with_arg
    - allocate_and_pin_shm_rpc
    - get_user_reg
    - PTR_ERR
    - gaddr_to_gfn
    - regpair_to_uint64
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: "void handle_rpc_func_alloc(struct optee_domain *ctx,\n                                  struct
      cpu_user_regs *regs,\n                                  struct optee_std_call
      *call)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1567,1
    - Dst: get_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1569,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1573,1
    - Dst: handle_rpc_func_alloc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1587,1
    - Dst: handle_rpc_cmd
      Src: /src/xen/xen/arch/arm/tee/optee.c:1592,1
    - Dst: do_call_with_arg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - regs
    argTypes:
    - struct optee_domain*
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1564
    functionDepth: 6
    functionLinenumber: 1564
    functionLinenumberEnd: 1600
    functionName: handle_rpc
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - set_user_reg
    - handle_rpc_cmd
    - get_std_call
    - handle_rpc_func_alloc
    - do_call_with_arg
    - get_user_reg
    linkageType: ''
    returnType: void
    signature: void handle_rpc(struct optee_domain *ctx, struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1608,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1611,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1612,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1614,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1629,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1633,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1635
    functionName: handle_exchange_capabilities
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - OPTEE_CLIENT_ID
    - arm_smccc_smc
    - set_user_reg
    - get_user_reg
    linkageType: ''
    returnType: void
    signature: void handle_exchange_capabilities(struct cpu_user_regs *regs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1649,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1652,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1656,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1657,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1658,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1659,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1660,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1661,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1665,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1666,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1667,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1668,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1672,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1673,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1674,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1675,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1676,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1677,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1681,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1682,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1683,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1684,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1688,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1689,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1690,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1694,1
    - Dst: OPTEE_CLIENT_ID
      Src: /src/xen/xen/arch/arm/tee/optee.c:1695,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1696,1
    - Dst: free_shm_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1698,1
    - Dst: regpair_to_uint64
      Src: /src/xen/xen/arch/arm/tee/optee.c:1698,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1699,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1700,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/optee.c:1706,1
    - Dst: handle_exchange_capabilities
      Src: /src/xen/xen/arch/arm/tee/optee.c:1710,1
    - Dst: handle_std_call
      Src: /src/xen/xen/arch/arm/tee/optee.c:1714,1
    - Dst: handle_rpc
      Src: /src/xen/xen/arch/arm/tee/optee.c:1718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1637
    functionDepth: 7
    functionLinenumber: 1637
    functionLinenumberEnd: 1724
    functionName: optee_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/optee.c
    functionUses: 0
    functionsReached:
    - handle_exchange_capabilities
    - handle_std_call
    - handle_rpc
    - set_user_reg
    - get_user_reg
    - free_shm_rpc
    - OPTEE_CLIENT_ID
    - regpair_to_uint64
    - arm_smccc_smc
    linkageType: ''
    returnType: bool
    signature: bool optee_handle_call(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/tee/tee.c:40,1
    - Dst: ops::handle_call
      Src: /src/xen/xen/arch/arm/tee/tee.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: tee_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 2
    functionsReached:
    - ops::handle_call
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool tee_handle_call(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ops::domain_init
      Src: /src/xen/xen/arch/arm/tee/tee.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - d
    - tee_type
    argTypes:
    - struct domain*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: tee_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 1
    functionsReached:
    - ops::domain_init
    linkageType: ''
    returnType: int
    signature: int tee_domain_init(struct domain *d, uint16_t tee_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ops::domain_teardown
      Src: /src/xen/xen/arch/arm/tee/tee.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: tee_domain_teardown
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 1
    functionsReached:
    - ops::domain_teardown
    linkageType: ''
    returnType: int
    signature: int tee_domain_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ops::relinquish_resources
      Src: /src/xen/xen/arch/arm/tee/tee.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: tee_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 0
    functionsReached:
    - ops::relinquish_resources
    linkageType: ''
    returnType: int
    signature: int tee_relinquish_resources(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: tee_get_type
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t tee_get_type(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/tee/tee.c:88,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/tee.c:91,1
    - Dst: strncmp
      Src: /src/xen/xen/arch/arm/tee/tee.c:102,1
    - Dst: struct tee_mediator_desc*::ops::probe
      Src: /src/xen/xen/arch/arm/tee/tee.c:105,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/tee.c:107,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/tee/tee.c:113,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/tee/tee.c:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 127
    functionName: tee_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 0
    functionsReached:
    - struct tee_mediator_desc*::ops::probe
    - panic
    - strncmp
    - printk
    - strcmp
    linkageType: ''
    returnType: int
    signature: int tee_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ops::init_secondary
      Src: /src/xen/xen/arch/arm/tee/tee.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: init_tee_secondary
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 1
    functionsReached:
    - ops::init_secondary
    linkageType: ''
    returnType: void
    signature: void init_tee_secondary(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ops::free_domain_ctx
      Src: /src/xen/xen/arch/arm/tee/tee.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: tee_free_domain_ctx
    functionSourceFile: /src/xen/xen/arch/arm/tee/tee.c
    functionUses: 1
    functionsReached:
    - ops::free_domain_ctx
    linkageType: ''
    returnType: void
    signature: void tee_free_domain_ctx(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:46,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:47,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:48,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:49,1
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:51,1
    - Dst: ffa_get_ret_code
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - uuid
    - flags
    - count
    - fpi_size
    argTypes:
    - struct ffa_uuid
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: ffa_partition_info_get
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - ffa_get_ret_code
    - arm_smccc_1_2_smc
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_partition_info_get(struct ffa_uuid uuid, uint32_t flags,\n
      \                                     uint32_t *count, uint32_t *fpi_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:72,1
    - Dst: MIN
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:72,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - dst_end
    - src
    - dst_size
    - src_size
    argTypes:
    - void**
    - void*
    - void*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 80
    functionName: ffa_copy_info
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - memset
    - MIN
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_copy_info(void **dst, void *dst_end, const void *src,\n
      \                            uint32_t dst_size, uint32_t src_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_partition_info_get
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uuid
    - sp_count
    argTypes:
    - struct ffa_uuid
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: ffa_get_sp_count
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - ffa_partition_info_get
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_get_sp_count(struct ffa_uuid uuid, uint32_t *sp_count)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ffa_rxtx_spmc_rx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:102,1
    - Dst: ffa_partition_info_get
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:106,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:140,1
    - Dst: ffa_copy_info
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:150,1
    - Dst: ffa_rxtx_spmc_rx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:163,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:165,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 5
    argNames:
    - uuid
    - sp_count
    - dst_buf
    - end_buf
    - dst_size
    argTypes:
    - struct ffa_uuid
    - uint32_t*
    - void**
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 168
    functionName: ffa_get_sp_partinfo
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - ffa_rxtx_spmc_rx_acquire
    - FFA_ID_IS_SECURE
    - ffa_partition_info_get
    - gprintk
    - ffa_rxtx_spmc_rx_release
    - ffa_copy_info
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_get_sp_partinfo(struct ffa_uuid uuid, uint32_t *sp_count,\n
      \                                  void **dst_buf, void *end_buf,\n                                   uint32_t
      dst_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ffa_uuid_is_nil
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:189,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:202,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:208,1
    - Dst: ffa_copy_info
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:211,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:218,1
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:227,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:228,1
    - Dst: ffa_copy_info
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:240,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:244,1
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - uuid
    - vm_count
    - dst_buf
    - end_buf
    - dst_size
    argTypes:
    - struct ffa_uuid
    - uint32_t*
    - void**
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 256
    functionName: ffa_get_vm_partinfo
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - ffa_uuid_is_nil
    - list_for_each_entry
    - read_unlock
    - IS_ENABLED
    - read_lock
    - ACCESS_ONCE
    - is_64bit_domain
    - ffa_copy_info
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_get_vm_partinfo(struct ffa_uuid uuid, uint32_t *vm_count,\n
      \                                  void **dst_buf, void *end_buf,\n                                   uint32_t
      dst_size)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:263,1
    - Dst: ffa_uuid_set
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:270,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:271,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:272,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:273,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:274,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:281,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:293,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:300,1
    - Dst: ffa_get_sp_count
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:302,1
    - Dst: ffa_uuid_is_nil
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:311,1
    - Dst: get_ffa_vm_count
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:313,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:322,1
    - Dst: ffa_rx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:330,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:337,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:349,1
    - Dst: ffa_get_sp_partinfo
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:351,1
    - Dst: ffa_get_vm_partinfo
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:358,1
    - Dst: ffa_rx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:363,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:366,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:370,1
    - Dst: ffa_set_regs_success
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:373,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 375
    functionName: ffa_handle_partition_info_get
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 1
    functionsReached:
    - ffa_uuid_is_nil
    - ffa_get_sp_partinfo
    - ffa_rx_acquire
    - ffa_uuid_set
    - ffa_rx_release
    - ffa_set_regs_success
    - ffa_get_sp_count
    - ffa_get_vm_partinfo
    - get_user_reg
    - BUILD_BUG_ON
    - ffa_fw_supports_fid
    - get_ffa_vm_count
    - ACCESS_ONCE
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void ffa_handle_partition_info_get(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - sp_id
    - vm_id
    - msg
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 427
    functionName: ffa_direct_req_send_vm
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - arm_smccc_1_2_smc
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_direct_req_send_vm(uint16_t sp_id, uint16_t vm_id,\n                                      uint8_t
      msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:433,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: uninit_subscribers
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void uninit_subscribers(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:446,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:462,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:464,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:466,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:480,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:482,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:487,1
    - Dst: uninit_subscribers
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:488,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:496,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - buf
    - count
    - fpi_size
    argTypes:
    - void*
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 506
    functionName: init_subscribers
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 1
    functionsReached:
    - FFA_ID_IS_SECURE
    - xzalloc_array
    - printk_once
    - uninit_subscribers
    - printk
    linkageType: ''
    returnType: bool
    signature: bool init_subscribers(void *buf, uint16_t count, uint32_t fpi_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:520,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:521,1
    - Dst: ffa_rxtx_spmc_rx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:524,1
    - Dst: ffa_partition_info_get
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:528,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:531,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:538,1
    - Dst: init_subscribers
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:543,1
    - Dst: ffa_rxtx_spmc_rx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:546,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:548,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 550
    functionName: ffa_partinfo_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 1
    functionsReached:
    - ffa_rxtx_spmc_rx_acquire
    - ffa_fw_supports_fid
    - ffa_partition_info_get
    - printk
    - ffa_rxtx_spmc_rx_release
    - init_subscribers
    linkageType: ''
    returnType: bool
    signature: bool ffa_partinfo_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - subscr
    - start
    - end
    - sp_id
    argTypes:
    - uint16_t*
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 564
    functionName: is_in_subscr_list
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool is_in_subscr_list(const uint16_t *subscr, uint16_t start,\n                              uint16_t
      end, uint16_t sp_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_in_subscr_list
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:578,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - create_signal_count
    argTypes:
    - struct ffa_ctx*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 585
    functionName: vm_destroy_bitmap_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 0
    functionsReached:
    - is_in_subscr_list
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void vm_destroy_bitmap_init(struct ffa_ctx *ctx,\n                                   unsigned
      int create_signal_count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:589,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:594,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:597,1
    - Dst: ffa_direct_req_send_vm
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:603,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:603,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:607,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:608,1
    - Dst: vm_destroy_bitmap_init
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 618
    functionName: ffa_partinfo_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 1
    functionsReached:
    - vm_destroy_bitmap_init
    - xzalloc_array
    - ffa_fw_supports_fid
    - printk
    - BITS_TO_LONGS
    - ffa_get_vm_id
    - ffa_direct_req_send_vm
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_partinfo_domain_init(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:631,1
    - Dst: ffa_direct_req_send_vm
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:634,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:634,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:637,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:638,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:640,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:649,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:652,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/tee/ffa_partinfo.c:653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 656
    functionName: ffa_partinfo_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    functionUses: 1
    functionsReached:
    - XFREE
    - bitmap_empty
    - printk_ratelimit
    - printk
    - clear_bit
    - test_bit
    - ffa_get_vm_id
    - ffa_direct_req_send_vm
    linkageType: ''
    returnType: bool
    signature: bool ffa_partinfo_domain_destroy(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:41,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:58,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:59,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:60,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:61,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:62,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:63,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:64,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:65,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:66,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:67,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:68,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:69,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:70,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:71,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:72,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:73,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:74,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:75,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:79,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:83,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:84,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:86,1
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - regs
    - req
    argTypes:
    - struct cpu_user_regs*
    - struct arm_smccc_1_2_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 91
    functionName: ffa_finish_direct_req_run
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_msg.c
    functionUses: 0
    functionsReached:
    - smccc_is_conv_64
    - set_user_reg
    - GENMASK_ULL
    - arm_smccc_1_2_smc
    - ffa_set_regs
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: "void ffa_finish_direct_req_run(struct cpu_user_regs *regs,\n                                      struct
      arm_smccc_1_2_regs *req)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:101,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:104,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:108,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:109,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:110,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:110,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:113,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:120,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:120,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:123,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:125,1
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:129,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:130,1
    - Dst: GENMASK_ULL
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:132,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:135,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:136,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:137,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:138,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:139,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:140,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:145,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:146,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:147,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:148,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:149,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:150,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:151,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:152,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:153,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:154,1
    - Dst: ffa_finish_direct_req_run
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:157,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 2
    argNames:
    - regs
    - fid
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 93
    functionDepth: 6
    functionLinenumber: 93
    functionLinenumberEnd: 162
    functionName: ffa_handle_msg_send_direct_req
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_msg.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - smccc_is_conv_64
    - FFA_ID_IS_SECURE
    - GENMASK
    - GENMASK_ULL
    - get_user_reg
    - ffa_fw_supports_fid
    - ffa_finish_direct_req_run
    - ffa_get_vm_id
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void ffa_handle_msg_send_direct_req(struct cpu_user_regs *regs, uint32_t
      fid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ffa_endpoint_domain_lookup
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:175,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:178,1
    - Dst: ffa_rx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:185,1
    - Dst: ffa_rx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:193,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:209,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:221,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:222,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:225,1
    - Dst: ffa_raise_rx_buffer_full
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:227,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - dst_id
    - src_buf
    - src_msg
    argTypes:
    - uint16_t
    - void*
    - struct ffa_part_msg_rxtx_1_2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 230
    functionName: ffa_msg_send2_vm
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_msg.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - ffa_rx_acquire
    - ffa_rx_release
    - printk_ratelimit
    - ffa_raise_rx_buffer_full
    - ffa_endpoint_domain_lookup
    - memcpy
    - rcu_unlock_domain
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_msg_send2_vm(uint16_t dst_id, const void *src_buf,\n                                struct
      ffa_part_msg_rxtx_1_2 *src_msg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:247,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:248,1
    - Dst: ffa_tx_acquire
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:250,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:253,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:259,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:262,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:264,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:265,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:268,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:274,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:279,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:291,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:302,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:308,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:311,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:314,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:322,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:325,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:330,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:331,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:333,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:335,1
    - Dst: ffa_msg_send2_vm
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:338,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:343,1
    - Dst: ffa_tx_release
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:348,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 350
    functionName: ffa_handle_msg_send2
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_msg.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - FFA_ID_IS_SECURE
    - GENMASK
    - ffa_msg_send2_vm
    - BUILD_BUG_ON
    - IS_ENABLED
    - ffa_fw_supports_fid
    - ffa_tx_release
    - ffa_simple_call
    - ffa_get_vm_id
    - ACCESS_ONCE
    - ffa_tx_acquire
    - memcpy
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_msg_send2(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:355,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:358,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:361,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:370,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:373,1
    - Dst: ffa_finish_direct_req_run
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:379,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_msg.c:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - regs
    - fid
    argTypes:
    - struct cpu_user_regs*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 385
    functionName: ffa_handle_run
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_msg.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - FFA_ID_IS_SECURE
    - get_user_reg
    - ffa_fw_supports_fid
    - ffa_finish_direct_req_run
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void ffa_handle_run(struct cpu_user_regs *regs, uint32_t fid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:25,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:26,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:27,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:28,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:30,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:30,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:36,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: ffa_handle_notification_bind
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - FFA_ID_IS_SECURE
    - GENMASK
    - get_user_reg
    - ffa_simple_call
    - ffa_get_vm_id
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_notification_bind(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:46,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:47,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:48,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:50,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:50,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:53,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: ffa_handle_notification_unbind
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - FFA_ID_IS_SECURE
    - GENMASK
    - get_user_reg
    - ffa_simple_call
    - ffa_get_vm_id
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_notification_unbind(struct cpu_user_regs *regs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:66,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:68,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:72,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:73,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:74,1
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:79,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:80,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: ffa_handle_notification_info_get
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - IS_ENABLED
    - test_and_clear_bool
    - ffa_set_regs
    - ffa_get_vm_id
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void ffa_handle_notification_info_get(struct cpu_user_regs *regs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:94,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:95,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:103,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:105,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:109,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:109,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:111,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:134,1
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:136,1
    - Dst: ffa_get_ret_code
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:137,1
    - Dst: ffa_set_regs_error
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:140,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:154,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:156,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:158,1
    - Dst: ffa_set_regs
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:162,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 163
    functionName: ffa_handle_notification_get
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - GENMASK
    - get_user_reg
    - IS_ENABLED
    - arm_smccc_1_2_smc
    - test_and_clear_bool
    - ffa_get_ret_code
    - ffa_set_regs
    - ACCESS_ONCE
    - ffa_get_vm_id
    - ffa_set_regs_error
    linkageType: ''
    returnType: void
    signature: void ffa_handle_notification_get(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:168,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:169,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:170,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:171,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:173,1
    - Dst: FFA_ID_IS_SECURE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:176,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:176,1
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: ffa_handle_notification_set
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - FFA_ID_IS_SECURE
    - GENMASK
    - get_user_reg
    - ffa_simple_call
    - ffa_get_vm_id
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_handle_notification_set(struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:191,1
    - Dst: test_and_set_bool
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:192,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: ffa_raise_rx_buffer_full
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - vgic_inject_irq
    - ACCESS_ONCE
    - test_and_set_bool
    linkageType: ''
    returnType: void
    signature: void ffa_raise_rx_buffer_full(struct domain *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: smccc_is_conv_64
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:211,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - resp
    - n
    argTypes:
    - struct arm_smccc_1_2_regs*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 235
    functionName: get_id_from_resp
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - smccc_is_conv_64
    linkageType: ''
    returnType: uint16_t
    signature: "uint16_t get_id_from_resp(struct arm_smccc_1_2_regs *resp,\n                                 unsigned
      int n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ffa_rcu_lock_domain_by_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:255,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:279,1
    - Dst: is_vcpu_online
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:288,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:290,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:295,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:296,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - vm_id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 301
    functionName: notif_vm_pend_intr
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - printk_ratelimit
    - is_vcpu_online
    - printk
    - ffa_rcu_lock_domain_by_vm_id
    - ACCESS_ONCE
    - vgic_inject_irq
    - rcu_unlock_domain
    linkageType: ''
    returnType: void
    signature: void notif_vm_pend_intr(uint16_t vm_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_vcpu_online
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:288,1
    - Dst: vgic_inject_irq
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 294
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 37
    functionsReached:
    - is_vcpu_online
    - vgic_inject_irq
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu(d, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:316,1
    - Dst: ffa_get_ret_code
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:317,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:320,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:321,1
    - Dst: get_id_from_resp
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:334,1
    - Dst: notif_vm_pend_intr
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 342
    functionName: notif_sri_action
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - arm_smccc_1_2_smc
    - printk_ratelimit
    - notif_vm_pend_intr
    - printk
    - ffa_get_ret_code
    - get_id_from_resp
    linkageType: ''
    returnType: void
    signature: void notif_sri_action(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_schedule
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: notif_irq_handler
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    linkageType: ''
    returnType: void
    signature: void notif_irq_handler(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vm_id
    - vcpu_count
    argTypes:
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: ffa_notification_bitmap_create
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    linkageType: ''
    returnType: int32_t
    signature: "int32_t ffa_notification_bitmap_create(uint16_t vm_id,\n                                              uint32_t
      vcpu_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffa_simple_call
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vm_id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: ffa_notification_bitmap_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 0
    functionsReached:
    - ffa_simple_call
    linkageType: ''
    returnType: int32_t
    signature: int32_t ffa_notification_bitmap_destroy(uint16_t vm_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: request_irq
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:379,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 385
    functionName: ffa_notif_init_interrupt
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - request_irq
    - printk
    linkageType: ''
    returnType: void
    signature: void ffa_notif_init_interrupt(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:398,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:399,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:400,1
    - Dst: ffa_fw_supports_fid
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:401,1
    - Dst: arm_smccc_1_2_smc
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:403,1
    - Dst: irq_set_type
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:410,1
    - Dst: request_irq
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:411,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 420
    functionName: ffa_notif_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - arm_smccc_1_2_smc
    - ffa_fw_supports_fid
    - printk
    - irq_set_type
    - request_irq
    linkageType: ''
    returnType: void
    signature: void ffa_notif_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ffa_notification_bitmap_create
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:429,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 435
    functionName: ffa_notif_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - ffa_notification_bitmap_create
    - ffa_get_vm_id
    linkageType: ''
    returnType: int
    signature: int ffa_notif_domain_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffa_notification_bitmap_destroy
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:444,1
    - Dst: ffa_get_vm_id
      Src: /src/xen/xen/arch/arm/tee/ffa_notif.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 445
    functionName: ffa_notif_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/tee/ffa_notif.c
    functionUses: 1
    functionsReached:
    - ffa_notification_bitmap_destroy
    - ffa_get_vm_id
    linkageType: ''
    returnType: void
    signature: void ffa_notif_domain_destroy(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:69,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:72,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:78,1
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:81,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:86,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:86,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:88,1
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:91,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:96,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:96,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:102,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:105,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - fdt
    - addr_cells
    - size_cells
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 111
    functionName: setup_chosen_node
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - fdt32_to_cpu
    - fdt_subnode_offset
    - fdt_add_subnode
    - fdt_setprop
    - get_unaligned_t
    - fdt_setprop_u32
    linkageType: ''
    returnType: int
    signature: int setup_chosen_node(void *fdt, int *addr_cells, int *size_cells)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_set_cell
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:135,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:136,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 6
    argNames:
    - fdt
    - node
    - addr_cells
    - size_cells
    - addr
    - len
    argTypes:
    - void*
    - int
    - int
    - int
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 139
    functionName: fdt_set_reg
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_setprop
    - dt_set_cell
    linkageType: ''
    returnType: int
    signature: "int fdt_set_reg(void *fdt, int node, int addr_cells,\n                              int
      size_cells, uint64_t addr, uint64_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_guid
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sys_table
    argTypes:
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: lookup_fdt_config_table
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - match_guid
    linkageType: ''
    returnType: void
    signature: void *lookup_fdt_config_table(EFI_SYSTEM_TABLE *sys_table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_reserved_regions_overlap
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mem
    - desc
    argTypes:
    - struct membanks*
    - EFI_MEMORY_DESCRIPTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 192
    functionName: meminfo_add_bank
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - check_reserved_regions_overlap
    linkageType: ''
    returnType: bool
    signature: "bool meminfo_add_bank(struct membanks *mem,\n                                    EFI_MEMORY_DESCRIPTOR
      *desc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: meminfo_add_bank
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:213,1
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:213,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:215,1
    - Dst: __stringify
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:215,1
    - Dst: meminfo_add_bank
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:223,1
    - Dst: bootinfo_get_acpi
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:223,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:225,1
    - Dst: __stringify
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:225,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 15
    argCount: 3
    argNames:
    - map
    - mmap_size
    - desc_size
    argTypes:
    - void*
    - UINTN
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 234
    functionName: efi_process_memory_map_bootinfo
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PrintStr
    - meminfo_add_bank
    - __stringify
    - bootinfo_get_mem
    - bootinfo_get_acpi
    linkageType: ''
    returnType: EFI_STATUS
    signature: "EFI_STATUS efi_process_memory_map_bootinfo(void *map,\n                                                UINTN
      mmap_size,\n                                                UINTN desc_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:256,1
    - Dst: fdt_del_mem_rsv
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:258,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:261,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:264,1
    - Dst: fdt_setprop_u64
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:272,1
    - Dst: fdt_setprop_u64
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:277,1
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:282,1
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:287,1
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:292,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 6
    argNames:
    - sys_table
    - fdt
    - memory_map
    - map_size
    - desc_size
    - desc_ver
    argTypes:
    - EFI_SYSTEM_TABLE*
    - void*
    - EFI_MEMORY_DESCRIPTOR*
    - UINTN
    - UINTN
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 304
    functionName: fdt_add_uefi_nodes
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_subnode_offset
    - fdt_add_subnode
    - fdt_num_mem_rsv
    - fdt_del_mem_rsv
    - fdt_setprop_u32
    - fdt_setprop_u64
    linkageType: ''
    returnType: EFI_STATUS
    signature: "EFI_STATUS fdt_add_uefi_nodes(EFI_SYSTEM_TABLE *sys_table,\n                                            void
      *fdt,\n                                            EFI_MEMORY_DESCRIPTOR *memory_map,\n
      \                                           UINTN map_size,\n                                            UINTN
      desc_size,\n                                            UINT32 desc_ver)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:321,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:325,1
    - Dst: AllocatePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:326,1
    - Dst: fdt_open_into
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:336,1
    - Dst: FreePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:338,1
    - Dst: fdt_create_empty_tree
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:351,1
    - Dst: FreePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:353,1
    - Dst: FreePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:365,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - fdtfile
    - add_size
    argTypes:
    - struct file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 372
    functionName: fdt_increase_size
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_create_empty_tree
    - PFN_UP
    - AllocatePages
    - fdt_open_into
    - fdt_totalsize
    - FreePages
    linkageType: ''
    returnType: void
    signature: void *fdt_increase_size(struct file *fdtfile, int add_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - delta
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: efi_arch_relocate_image
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_relocate_image(unsigned long delta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: efi_process_memory_map_bootinfo
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:386,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:387,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:388,1
    - Dst: fdt_add_uefi_nodes
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:390,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:392,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - SystemTable
    - map
    - map_size
    - desc_size
    - desc_ver
    argTypes:
    - EFI_SYSTEM_TABLE*
    - void*
    - UINTN
    - UINTN
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: efi_arch_process_memory_map
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - EFI_ERROR
    - blexit
    - efi_process_memory_map_bootinfo
    - fdt_add_uefi_nodes
    - PrintErrMesg
    linkageType: ''
    returnType: void
    signature: "void efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,\n
      \                                              void *map,\n                                               UINTN
      map_size,\n                                               UINTN desc_size,\n
      \                                              UINT32 desc_ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: efi_arch_pre_exit_boot
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_pre_exit_boot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: efi_xen_start
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:402,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: efi_arch_post_exit_boot
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - efi_xen_start
    - fdt_totalsize
    linkageType: ''
    returnType: void
    signature: void efi_arch_post_exit_boot(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_section
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:417,1
    - Dst: get_value
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:419,1
    - Dst: split_string
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:422,1
    - Dst: read_file
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:423,1
    - Dst: s2w
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:423,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:424,1
    - Dst: fdt_increase_size
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:427,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - image
    - dir_handle
    - section
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 430
    functionName: efi_arch_cfg_file_early
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - read_file
    - s2w
    - read_section
    - fdt_increase_size
    - get_value
    - blexit
    - split_string
    - FreePool
    linkageType: ''
    returnType: void
    signature: "void efi_arch_cfg_file_early(const EFI_LOADED_IMAGE *image,\n                                           EFI_FILE_HANDLE
      dir_handle,\n                                           const char *section)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - dir_handle
    - section
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: efi_arch_cfg_file_late
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void efi_arch_cfg_file_late(const EFI_LOADED_IMAGE *image,\n                                          EFI_FILE_HANDLE
      dir_handle,\n                                          const char *section)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AllocatePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - map_size
    argTypes:
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: efi_arch_allocate_mmap_buffer
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - AllocatePool
    linkageType: ''
    returnType: void
    signature: void *__init efi_arch_allocate_mmap_buffer(UINTN map_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: efi_arch_edd
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_edd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - gop_handle
    argTypes:
    - EFI_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: efi_arch_edid
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_edid(EFI_HANDLE gop_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: efi_arch_memory_setup
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_memory_setup(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:471,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:473,1
    - Dst: AllocatePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:475,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:476,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:477,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:481,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:482,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:485,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:490,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:494,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:495,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:498,1
    - Dst: w2s
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:505,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:512,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:515,1
    - Dst: fdt_setprop_string
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:518,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:519,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:521,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - cmdline_options
    - cfgfile_options
    argTypes:
    - CHAR16*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 522
    functionName: efi_arch_handle_cmdline
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - snprintf
    - fdt_setprop_string
    - EFI_ERROR
    - FreePool
    - PrintStr
    - fdt_getprop
    - fdt_subnode_offset
    - w2s
    - blexit
    - AllocatePool
    - PrintErrMesg
    linkageType: ''
    returnType: void
    signature: "void efi_arch_handle_cmdline(CHAR16 *cmdline_options,\n                                           const
      char *cfgfile_options)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: setup_chosen_node
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:534,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:536,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:543,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:545,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:546,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:548,1
    - Dst: fdt_set_reg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:549,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:551,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:558,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:560,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:561,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:563,1
    - Dst: fdt_set_reg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:564,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:566,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:573,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:575,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:576,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:578,1
    - Dst: fdt_setprop_string
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:579,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:580,1
    - Dst: fdt_set_reg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:581,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:583,1
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:590,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 3
    argNames:
    - file
    - name
    - options
    argTypes:
    - struct file*
    - CHAR16*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 599
    functionName: efi_arch_handle_module
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_setprop_string
    - setup_chosen_node
    - fdt_set_reg
    - fdt_add_subnode
    - blexit
    - fdt_setprop
    linkageType: ''
    returnType: void
    signature: "void efi_arch_handle_module(const struct file *file,\n                                          const
      CHAR16 *name,\n                                          const char *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - name
    - name_len
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 623
    functionName: get_module_file_index
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int get_module_file_index(const char *name,\n                                        unsigned
      int name_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:646,1
    - Dst: AllocatePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:656,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:659,1
    - Dst: strlcpy
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:664,1
    - Dst: get_parent_handle
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:669,1
    - Dst: read_file
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:672,1
    - Dst: s2w
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:672,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - loaded_image
    - dir_handle
    - name
    - name_len
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 684
    functionName: allocate_module_file
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - read_file
    - get_parent_handle
    - s2w
    - PrintStr
    - AllocatePool
    - strlcpy
    - FreePool
    linkageType: ''
    returnType: int
    signature: "int allocate_module_file(const EFI_LOADED_IMAGE *loaded_image,\n                                       EFI_FILE_HANDLE
      *dir_handle,\n                                       const char *name,\n                                       unsigned
      int name_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:705,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:716,1
    - Dst: get_module_file_index
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:723,1
    - Dst: allocate_module_file
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:726,1
    - Dst: snprintf
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:734,1
    - Dst: fdt_set_name
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:737,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:739,1
    - Dst: fdt_set_reg
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:743,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:746,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:752,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:762,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:770,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:773,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:777,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:780,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 6
    argNames:
    - loaded_image
    - dir_handle
    - module_node_offset
    - reg_addr_cells
    - reg_size_cells
    - is_domu_module
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE*
    - int
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 786
    functionName: handle_module_node
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - snprintf
    - fdt_getprop
    - get_module_file_index
    - PrintStr
    - fdt_set_reg
    - allocate_module_file
    - fdt_node_check_compatible
    - fdt_set_name
    linkageType: ''
    returnType: int
    signature: "int handle_module_node(const EFI_LOADED_IMAGE *loaded_image,\n                                     EFI_FILE_HANDLE
      *dir_handle,\n                                     int module_node_offset,\n
      \                                    int reg_addr_cells,\n                                     int
      reg_size_cells,\n                                     bool is_domu_module)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:803,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:806,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:810,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:810,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:812,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:815,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:819,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:819,1
    - Dst: fdt_first_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:822,1
    - Dst: fdt_next_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:824,1
    - Dst: handle_module_node
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - loaded_image
    - dir_handle
    - domain_node
    argTypes:
    - EFI_LOADED_IMAGE*
    - EFI_FILE_HANDLE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 835
    functionName: handle_dom0less_domain_node
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - fdt32_to_cpu
    - fdt_first_subnode
    - PrintStr
    - fdt_next_subnode
    - handle_module_node
    - get_unaligned_t
    linkageType: ''
    returnType: int
    signature: "int handle_dom0less_domain_node(const EFI_LOADED_IMAGE *loaded_image,\n
      \                                             EFI_FILE_HANDLE *dir_handle,\n
      \                                             int domain_node)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setup_chosen_node
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:850,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:853,1
    - Dst: fdt_first_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:858,1
    - Dst: fdt_next_subnode
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:860,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:865,1
    - Dst: handle_dom0less_domain_node
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:868,1
    - Dst: handle_module_node
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:875,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:885,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - loaded_image
    argTypes:
    - EFI_LOADED_IMAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 895
    functionName: efi_check_dt_boot
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - setup_chosen_node
    - PrintStr
    - handle_dom0less_domain_node
    - fdt_node_check_compatible
    - EFI_FILE_HANDLE::Close
    - fdt_next_subnode
    - handle_module_node
    - FreePool
    - fdt_first_subnode
    linkageType: ''
    returnType: int
    signature: int efi_check_dt_boot(const EFI_LOADED_IMAGE *loaded_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    functionName: efi_arch_cpu
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_cpu(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FreePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:906,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:906,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:911,1
    - Dst: FreePages
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:913,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:914,1
    - Dst: FreePool
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:917,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 918
    functionName: efi_arch_blexit
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PFN_UP
    - FreePool
    - FreePages
    linkageType: ''
    returnType: void
    signature: void efi_arch_blexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stop_cpu
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 923
    functionName: efi_arch_halt
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - stop_cpu
    linkageType: ''
    returnType: void
    signature: void efi_arch_halt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blexit
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - loaded_image
    argTypes:
    - EFI_LOADED_IMAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: efi_arch_load_addr_check
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - blexit
    linkageType: ''
    returnType: void
    signature: void efi_arch_load_addr_check(const EFI_LOADED_IMAGE *loaded_image)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lookup_fdt_config_table
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:941,1
    - Dst: fdt_node_offset_by_compatible
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:946,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:949,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:956,1
    - Dst: PrintStr
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:971,1
    - Dst: fdt_increase_size
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - SystemTable
    argTypes:
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 976
    functionName: efi_arch_use_config_file
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - PrintStr
    - fdt_getprop
    - lookup_fdt_config_table
    - fdt_subnode_offset
    - fdt_increase_size
    - fdt_node_offset_by_compatible
    linkageType: ''
    returnType: bool
    signature: bool efi_arch_use_config_file(EFI_SYSTEM_TABLE *SystemTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cols
    - rows
    argTypes:
    - UINTN
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: efi_arch_console_init
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_arch_console_init(UINTN cols, UINTN rows)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - gop
    - info_size
    - mode_info
    argTypes:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*
    - UINTN
    - EFI_GRAPHICS_OUTPUT_MODE_INFORMATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 986
    functionName: efi_arch_video_init
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void efi_arch_video_init(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,\n                                       UINTN
      info_size,\n                                       EFI_GRAPHICS_OUTPUT_MODE_INFORMATION
      *mode_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __flush_dcache_area
      Src: /src/xen/xen/arch/arm/efi/efi-boot.h:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vaddr
    - size
    argTypes:
    - void*
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 991
    functionName: efi_arch_flush_dcache_area
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-boot.h
    functionUses: 0
    functionsReached:
    - __flush_dcache_area
    linkageType: ''
    returnType: void
    signature: void efi_arch_flush_dcache_area(const void *vaddr, UINTN size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_acpi
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:47,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:49,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mem_nr_banks
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: estimate_efi_size
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-dom0.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - bootinfo_get_acpi
    linkageType: ''
    returnType: size_t
    signature: size_t estimate_efi_size(unsigned int mem_nr_banks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:65,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:69,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:80,1
    - Dst: xz_crc32_init
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:89,1
    - Dst: xz_crc32
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 95
    functionName: acpi_create_efi_system_table
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-dom0.c
    functionUses: 0
    functionsReached:
    - memcpy
    - xz_crc32_init
    - xz_crc32
    - acpi_get_table_offset
    linkageType: ''
    returnType: void
    signature: "void acpi_create_efi_system_table(struct domain *d,\n                                         struct
      membank tbl_add[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:104,1
    - Dst: EFI_SIZE_TO_PAGES
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - desc
    - type
    - start
    - size
    argTypes:
    - EFI_MEMORY_DESCRIPTOR*
    - UINT32
    - EFI_PHYSICAL_ADDRESS
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: fill_efi_memory_descriptor
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-dom0.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - EFI_SIZE_TO_PAGES
    linkageType: ''
    returnType: void
    signature: "void fill_efi_memory_descriptor(EFI_MEMORY_DESCRIPTOR *desc,\n                                              UINT32
      type,\n                                              EFI_PHYSICAL_ADDRESS start,\n
      \                                             UINT64 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_acpi
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:113,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:119,1
    - Dst: fill_efi_memory_descriptor
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:123,1
    - Dst: fill_efi_memory_descriptor
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:127,1
    - Dst: fill_efi_memory_descriptor
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:131,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - d
    - mem
    - tbl_add
    argTypes:
    - struct domain*
    - struct membanks*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: acpi_create_efi_mmap_table
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-dom0.c
    functionUses: 0
    functionsReached:
    - bootinfo_get_acpi
    - acpi_get_table_offset
    - fill_efi_memory_descriptor
    linkageType: ''
    returnType: void
    signature: "void acpi_create_efi_mmap_table(struct domain *d,\n                                       const
      struct membanks *mem,\n                                       struct membank
      tbl_add[])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:145,1
    - Dst: fdt_property_u64
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:149,1
    - Dst: fdt_property_u64
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:154,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:159,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:164,1
    - Dst: fdt_property_u32
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:169,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/efi/efi-dom0.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fdt
    - tbl_add
    argTypes:
    - void*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 176
    functionName: acpi_make_efi_nodes
    functionSourceFile: /src/xen/xen/arch/arm/efi/efi-dom0.c
    functionUses: 0
    functionsReached:
    - fdt_property_u32
    - fdt_property_u64
    - fdt_begin_node
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: int acpi_make_efi_nodes(void *fdt, struct membank tbl_add[])
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: vgic_mmio_read_v2_misc
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_v2_misc(struct vcpu *vcpu,\n                                            paddr_t
      addr, unsigned int len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:60,1
    - Dst: domain_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:71,1
    - Dst: vgic_kick_vcpus
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: vgic_mmio_write_v2_misc
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - domain_lock
    - vgic_kick_vcpus
    - domain_unlock
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_v2_misc(struct vcpu *vcpu,\n                                    paddr_t
      addr, unsigned int len,\n                                    unsigned long val)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:96,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:97,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:100,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:114,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:117,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:122,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - source_vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 125
    functionName: vgic_mmio_write_sgir
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - vgic_get_irq
    - vgic_put_irq
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_sgir(struct vcpu *source_vcpu,\n                                 paddr_t
      addr, unsigned int len,\n                                 unsigned long val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:114,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:117,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:122,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 20
    functionsReached:
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - vgic_put_irq
    - vgic_get_irq
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( vcpu_id, targets )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:130,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:136,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 144
    functionName: vgic_mmio_read_target
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_target(struct vcpu *vcpu,\n                                           paddr_t
      addr, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:150,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:151,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:161,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:163,1
    - Dst: ffs
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:168,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:171,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:173,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:173,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:179,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 182
    functionName: vgic_mmio_write_target
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - GENMASK
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ffs
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - cpumask_of
    - vgic_put_irq
    - irq_set_affinity
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_target(struct vcpu *vcpu,\n                                   paddr_t
      addr, unsigned int len,\n                                   unsigned long val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:187,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:191,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:195,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: vgic_mmio_read_sgipend
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - ASSERT
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_sgipend(struct vcpu *vcpu,\n                                            paddr_t
      addr, unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:209,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:213,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:217,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:219,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:225,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: vgic_mmio_write_sgipendc
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_sgipendc(struct vcpu *vcpu,\n                                     paddr_t
      addr, unsigned int len,\n                                     unsigned long
      val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:234,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:238,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:242,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:244,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:251,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:255,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 259
    functionName: vgic_mmio_write_sgipends
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_sgipends(struct vcpu *vcpu,\n                                     paddr_t
      addr, unsigned int len,\n                                     unsigned long
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct vgic_io_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 312
    functionName: vgic_v2_init_dist_iodev
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_v2_init_dist_iodev(struct vgic_io_device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:63,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:64,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:74,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:75,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:80,1
    - Dst: vgic_irq_is_sgi
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 93
    functionName: vgic_vcpu_early_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - INIT_LIST_HEAD
    - spin_lock_init
    - vgic_irq_is_sgi
    linkageType: ''
    returnType: void
    signature: void vgic_vcpu_early_init(struct vcpu *vcpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - d
    - mmio_count
    argTypes:
    - struct domain*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: domain_vgic_register
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 1
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int domain_vgic_register(struct domain *d, unsigned int *mmio_count)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:136,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:143,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:160,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:161,1
    - Dst: atomic_set
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:164,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:171,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:172,1
    - Dst: vgic_v2_map_resources
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:175,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:184,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:184,1
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:184,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - d
    - nr_spis
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 193
    functionName: domain_vgic_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 1
    functionsReached:
    - atomic_set
    - ROUNDUP
    - vgic_v2_map_resources
    - xzalloc_array
    - INIT_LIST_HEAD
    - BITS_TO_LONGS
    - vgic_num_irqs
    - spin_lock_init
    - set_bit
    linkageType: ''
    returnType: int
    signature: int domain_vgic_init(struct domain *d, unsigned int nr_spis)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:206,1
    - Dst: vgic_vcpu_early_init
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:210,1
    - Dst: gic_hw_version
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:212,1
    - Dst: vgic_v2_enable
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: vcpu_vgic_init
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 1
    functionsReached:
    - vgic_vcpu_early_init
    - gic_hw_version
    - vgic_v2_enable
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int vcpu_vgic_init(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:227,1
    - Dst: release_guest_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:232,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:234,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:242,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: domain_vgic_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 1
    functionsReached:
    - dprintk
    - release_guest_irq
    - vgic_get_irq
    - xfree
    linkageType: ''
    returnType: void
    signature: void domain_vgic_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:251,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/vgic/vgic-init.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: vcpu_vgic_free
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-init.c
    functionUses: 1
    functionsReached:
    - INIT_LIST_HEAD
    - XFREE
    linkageType: ''
    returnType: void
    signature: void vcpu_vgic_free(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: VGIC_ADDR_IRQ_MASK
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VGIC_ADDR_IRQ_MASK(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: VGIC_ADDR_TO_INTID
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VGIC_ADDR_TO_INTID(addr, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - 'off'
    - ','
    - rd
    - ','
    - wr
    - ','
    - bpi
    - ','
    - acc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: REGISTER_DESC_WITH_BITS_PER_IRQ
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DESC_WITH_BITS_PER_IRQ(off, rd, wr, bpi, acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - 'off'
    - ','
    - rd
    - ','
    - wr
    - ','
    - length
    - ','
    - acc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: REGISTER_DESC_WITH_LENGTH
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_DESC_WITH_LENGTH(off, rd, wr, length, acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: IS_VGIC_ADDR_UNDEF
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_VGIC_ADDR_UNDEF(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - intid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: vgic_irq_is_sgi
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_irq_is_sgi(intid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: irq_is_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool irq_is_pending(struct vgic_irq *irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: vgic_irq_is_mapped_level
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vgic_irq_is_mapped_level(struct vgic_irq *irq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/arch/arm/vgic/vgic.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: vgic_get_irq_kref
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.h
    functionUses: 0
    functionsReached:
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void vgic_get_irq_kref(struct vgic_irq *irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: vgic_mmio_read_raz
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_raz(struct vcpu *vcpu,\n                                 paddr_t
      addr, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: vgic_mmio_read_rao
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_rao(struct vcpu *vcpu,\n                                 paddr_t
      addr, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: vgic_mmio_write_wi
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_wi(struct vcpu *vcpu, paddr_t addr,\n                        unsigned
      int len, unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:51,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:58,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: vgic_mmio_read_enable
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_enable(struct vcpu *vcpu,\n                                    paddr_t
      addr, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:73,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:77,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:81,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:85,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:86,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:97,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:99,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:104,1
    - Dst: vgic_sync_hardware_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:107,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 111
    functionName: vgic_mmio_write_senable
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_sync_hardware_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_senable(struct vcpu *vcpu,\n                             paddr_t
      addr, unsigned int len,\n                             unsigned long val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:77,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:81,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:85,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:86,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:97,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:99,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:104,1
    - Dst: vgic_sync_hardware_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:107,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 110
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - irq_to_desc
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - vgic_get_irq
    - vgic_sync_hardware_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:117,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:125,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:126,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:130,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:143,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:145,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:150,1
    - Dst: vgic_sync_hardware_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:153,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 157
    functionName: vgic_mmio_write_cenable
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_sync_hardware_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_cenable(struct vcpu *vcpu,\n                             paddr_t
      addr, unsigned int len,\n                             unsigned long val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:125,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:126,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:130,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:131,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:143,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:145,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:150,1
    - Dst: vgic_sync_hardware_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:153,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 156
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - vgic_get_irq
    - vgic_sync_hardware_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:162,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:169,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:171,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: vgic_mmio_read_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - irq_is_pending
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_pending(struct vcpu *vcpu,\n                                     paddr_t
      addr, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:184,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:190,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:192,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:197,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:201,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:211,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:212,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:215,1
    - Dst: gic_set_active_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:217,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:219,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:220,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 225
    functionName: vgic_mmio_write_spending
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - gic_set_active_state
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - ASSERT
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_spending(struct vcpu *vcpu,\n                              paddr_t
      addr, unsigned int len,\n                              unsigned long val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:190,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:192,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:197,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:201,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:211,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:212,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:215,1
    - Dst: gic_set_active_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:217,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:219,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:220,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 224
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - gic_set_active_state
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - ASSERT
    - vgic_get_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:231,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:237,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:239,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:244,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:248,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:263,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:264,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:267,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:270,1
    - Dst: gic_set_pending_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:272,1
    - Dst: gic_set_active_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:274,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:277,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:278,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 284
    functionName: vgic_mmio_write_cpending
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - gic_set_active_state
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - ASSERT
    - irq_is_pending
    - vgic_put_irq
    - gic_set_pending_state
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_cpending(struct vcpu *vcpu,\n                              paddr_t
      addr, unsigned int len,\n                              unsigned long val)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:237,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:239,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:244,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:248,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:263,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:264,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:267,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:270,1
    - Dst: gic_set_pending_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:272,1
    - Dst: gic_set_active_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:274,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:277,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:278,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 283
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - spin_unlock
    - irq_to_desc
    - gic_set_active_state
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - ASSERT
    - vgic_get_irq
    - irq_is_pending
    - vgic_put_irq
    - gic_set_pending_state
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:297,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:304,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 313
    functionName: vgic_mmio_read_active
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_active(struct vcpu *vcpu,\n                                    paddr_t
      addr, unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:326,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:330,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:338,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: vgic_mmio_write_cactive
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - printk
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_cactive(struct vcpu *vcpu,\n                             paddr_t
      addr, unsigned int len,\n                             unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:330,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:338,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 343
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - vgic_put_irq
    - vgic_get_irq
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:355,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:359,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:367,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 373
    functionName: vgic_mmio_write_sactive
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - printk
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_sactive(struct vcpu *vcpu,\n                             paddr_t
      addr, unsigned int len,\n                             unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:359,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:367,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 372
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 20
    functionsReached:
    - vgic_put_irq
    - vgic_get_irq
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, val )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:378,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:384,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 392
    functionName: vgic_mmio_read_priority
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_priority(struct vcpu *vcpu,\n                                      paddr_t
      addr, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:405,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:411,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:413,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:415,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:416,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: vgic_mmio_write_priority
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - GENMASK
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_put_irq
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_priority(struct vcpu *vcpu,\n                              paddr_t
      addr, unsigned int len,\n                              unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:425,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:431,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - vcpu
    - addr
    - len
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 440
    functionName: vgic_mmio_read_config
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - vgic_put_irq
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long vgic_mmio_read_config(struct vcpu *vcpu,\n                                    paddr_t
      addr, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:446,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:463,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:464,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:466,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:471,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - vcpu
    - addr
    - len
    - val
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 474
    functionName: vgic_mmio_write_config
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - VGIC_ADDR_TO_INTID
    - vgic_get_irq
    - vgic_put_irq
    - test_bit
    linkageType: ''
    returnType: void
    signature: "void vgic_mmio_write_config(struct vcpu *vcpu,\n                            paddr_t
      addr, unsigned int len,\n                            unsigned long val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - elt
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 488
    functionName: match_region
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int match_region(const void *key, const void *elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - regions
    - nr_regions
    - offset
    argTypes:
    - struct vgic_register_region*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: vgic_find_mmio_region
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: struct vgic_register_region
    signature: "struct vgic_register_region *\nvgic_find_mmio_region(const struct
      vgic_register_region *regions,\n                      int nr_regions, unsigned
      int offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:519,1
    - Dst: VGIC_ADDR_TO_INTID
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - d
    - region
    - addr
    - len
    argTypes:
    - struct domain*
    - struct vgic_register_region*
    - paddr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: check_region
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - IS_ALIGNED
    - VGIC_ADDR_TO_INTID
    linkageType: ''
    returnType: bool
    signature: "bool check_region(const struct domain *d,\n                         const
      struct vgic_register_region *region,\n                         paddr_t addr,
      int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_find_mmio_region
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:537,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:538,1
    - Dst: check_region
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - vcpu
    - iodev
    - addr
    - len
    argTypes:
    - struct vcpu*
    - struct vgic_io_device*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: vgic_get_mmio_region
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - gfn_to_gaddr
    - vgic_find_mmio_region
    - check_region
    linkageType: ''
    returnType: struct vgic_register_region
    signature: "struct vgic_register_region *\nvgic_get_mmio_region(struct vcpu *vcpu,
      struct vgic_io_device *iodev,\n                     paddr_t addr, unsigned int
      len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_mmio_region
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:554,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:557,1
    - Dst: struct vgic_register_region*::read
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:564,1
    - Dst: struct vgic_register_region*::read
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:567,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - vcpu
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 574
    functionName: dispatch_mmio_read
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - memset
    - vgic_get_mmio_region
    - struct vgic_register_region*::read
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int dispatch_mmio_read(struct vcpu *vcpu, mmio_info_t *info,\n                              register_t
      *r, void *priv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_mmio_region
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:585,1
    - Dst: struct vgic_register_region*::write
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:596,1
    - Dst: struct vgic_register_region*::write
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - vcpu
    - info
    - r
    - priv
    argTypes:
    - struct vcpu*
    - mmio_info_t*
    - register_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 604
    functionName: dispatch_mmio_write
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - struct vgic_register_region*::write
    - vgic_get_mmio_region
    linkageType: ''
    returnType: int
    signature: "int dispatch_mmio_write(struct vcpu *vcpu, mmio_info_t *info,\n                               register_t
      r, void *priv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v2_init_dist_iodev
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:620,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:623,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:630,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/vgic/vgic-mmio.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - d
    - dist_base_fn
    - type
    argTypes:
    - struct domain*
    - gfn_t
    - enum vgic_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 634
    functionName: vgic_register_dist_iodev
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
    functionUses: 0
    functionsReached:
    - gfn_to_gaddr
    - vgic_v2_init_dist_iodev
    - BUG
    - register_mmio_handler
    linkageType: ''
    returnType: int
    signature: "int vgic_register_dist_iodev(struct domain *d, gfn_t dist_base_fn,\n
      \                            enum vgic_type type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:65,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:67,1
    - Dst: vgic_get_irq_kref
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:76,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - d
    - intid
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 85
    functionName: vgic_get_lpi
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - vgic_get_irq_kref
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct vgic_irq
    signature: struct vgic_irq *vgic_get_lpi(struct domain *d, uint32_t intid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_lpi
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:113,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - d
    - vcpu
    - intid
    argTypes:
    - struct domain*
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: vgic_get_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 27
    functionsReached:
    - vgic_get_lpi
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct vgic_irq
    signature: "struct vgic_irq *vgic_get_irq(struct domain *d, struct vcpu *vcpu,\n
      \                             uint32_t intid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:140,1
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:141,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:143,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:147,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:149,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - d
    - irq
    argTypes:
    - struct domain*
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: vgic_put_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 26
    functionsReached:
    - spin_unlock
    - spin_lock
    - atomic_dec_and_test
    - list_del
    - xfree
    linkageType: ''
    returnType: void
    signature: void vgic_put_irq(struct domain *d, struct vgic_irq *irq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:169,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:169,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:181,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 195
    functionName: vgic_target_oracle
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - irq_is_pending
    - ASSERT
    - spin_is_locked
    - unlikely
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *vgic_target_oracle(struct vgic_irq *irq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:214,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:215,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:219,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:220,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:228,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:229,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:240,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - priv
    - a
    - b
    argTypes:
    - void*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 243
    functionName: vgic_irq_cmp
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - irq_is_pending
    - spin_unlock
    - container_of
    linkageType: ''
    returnType: int
    signature: int vgic_irq_cmp(void *priv, struct list_head *a, struct list_head
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:250,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:250,1
    - Dst: list_sort
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: vgic_sort_ap_list
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_sort
    linkageType: ''
    returnType: void
    signature: void vgic_sort_ap_list(struct vcpu *vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - irq
    - level
    argTypes:
    - struct vgic_irq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: vgic_validate_injection
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vgic_validate_injection(struct vgic_irq *irq, bool level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:286,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:286,1
    - Dst: vgic_target_oracle
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:289,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:301,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:313,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:322,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:326,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:327,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:341,1
    - Dst: vgic_target_oracle
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:341,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:343,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:344,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:346,1
    - Dst: vgic_get_irq_kref
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:354,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:355,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:358,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:359,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - d
    - irq
    - flags
    argTypes:
    - struct domain*
    - struct vgic_irq*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 364
    functionName: vgic_queue_irq_unlock
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 7
    functionsReached:
    - spin_unlock
    - vgic_target_oracle
    - vcpu_kick
    - spin_lock_irqsave
    - spin_is_locked
    - spin_unlock_irqrestore
    - ASSERT
    - spin_lock
    - unlikely
    - vgic_get_irq_kref
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void vgic_queue_irq_unlock(struct domain *d, struct vgic_irq *irq,\n
      \                          unsigned long flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:387,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:391,1
    - Dst: vgic_validate_injection
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:393,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:396,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:397,1
    - Dst: vgic_queue_irq_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:406,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - d
    - vcpu
    - intid
    - level
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 410
    functionName: vgic_inject_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 17
    functionsReached:
    - vgic_queue_irq_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - vgic_get_irq
    - vgic_put_irq
    - vgic_validate_injection
    linkageType: ''
    returnType: void
    signature: "void vgic_inject_irq(struct domain *d, struct vcpu *vcpu, unsigned
      int intid,\n                     bool level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:430,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:432,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:436,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:438,1
    - Dst: vgic_target_oracle
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:440,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:448,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:450,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:459,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:466,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:472,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:473,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:490,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:491,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:492,1
    - Dst: vgic_target_oracle
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:503,1
    - Dst: list_del
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:507,1
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:509,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:512,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:513,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:514,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 519
    functionName: vgic_prune_ap_list
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vgic_target_oracle
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - BUG_ON
    - spin_lock
    - list_for_each_entry_safe
    - list_del
    - vgic_put_irq
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void vgic_prune_ap_list(struct vcpu *vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_v2_fold_lr_state
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: vgic_fold_lr_state
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_v2_fold_lr_state
    linkageType: ''
    returnType: void
    signature: void vgic_fold_lr_state(struct vcpu *vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:530,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:530,1
    - Dst: vgic_v2_populate_lr
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vcpu
    - irq
    - lr
    argTypes:
    - struct vcpu*
    - struct vgic_irq*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: vgic_populate_lr
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_v2_populate_lr
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: void
    signature: "void vgic_populate_lr(struct vcpu *vcpu,\n                             struct
      vgic_irq *irq, int lr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:537,1
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: vgic_set_underflow
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_set_underflow(struct vcpu *vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:549,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:549,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 555
    functionName: compute_ap_list_depth
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int compute_ap_list_depth(struct vcpu *vcpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:564,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:564,1
    - Dst: compute_ap_list_depth
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:566,1
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:566,1
    - Dst: vgic_sort_ap_list
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:567,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:569,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:571,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:573,1
    - Dst: vgic_target_oracle
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:573,1
    - Dst: vgic_populate_lr
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:574,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:576,1
    - Dst: gic_get_nr_lrs
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:578,1
    - Dst: list_is_last
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:580,1
    - Dst: vgic_set_underflow
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 587
    functionName: vgic_flush_lr_state
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - compute_ap_list_depth
    - vgic_target_oracle
    - spin_unlock
    - list_is_last
    - spin_is_locked
    - likely
    - ASSERT
    - spin_lock
    - vgic_populate_lr
    - vgic_sort_ap_list
    - gic_get_nr_lrs
    - list_for_each_entry
    - vgic_set_underflow
    linkageType: ''
    returnType: void
    signature: void vgic_flush_lr_state(struct vcpu *vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:603,1
    - Dst: vgic_fold_lr_state
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:606,1
    - Dst: vgic_prune_ap_list
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 609
    functionName: vgic_sync_from_lrs
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_fold_lr_state
    - vgic_prune_ap_list
    - list_empty
    linkageType: ''
    returnType: void
    signature: void vgic_sync_from_lrs(struct vcpu *vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:631,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:634,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:634,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:636,1
    - Dst: vgic_flush_lr_state
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:637,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:638,1
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 641
    functionName: vgic_sync_to_lrs
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - local_irq_is_enabled
    - ASSERT
    - spin_lock
    - list_empty
    - vgic_flush_lr_state
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_sync_to_lrs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:663,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:665,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:667,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:668,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:669,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 678
    functionName: vgic_vcpu_pending_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - irq_is_pending
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int vgic_vcpu_pending_irq(struct vcpu *vcpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_vcpu_pending_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:690,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 693
    functionName: vgic_kick_vcpus
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - vgic_vcpu_pending_irq
    - vcpu_kick
    linkageType: ''
    returnType: void
    signature: void vgic_kick_vcpus(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_vcpu_pending_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:690,1
    - Dst: vcpu_kick
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 37
    functionsReached:
    - vgic_vcpu_pending_irq
    - vcpu_kick
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu( d, vcpu )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:702,1
    - Dst: is_lpi
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:702,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:704,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:705,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:706,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:707,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 695
    functionDepth: 3
    functionLinenumber: 695
    functionLinenumberEnd: 711
    functionName: vgic_evtchn_irq_pending
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - irq_is_pending
    - vgic_get_irq
    - is_lpi
    - vgic_put_irq
    linkageType: ''
    returnType: bool
    signature: bool vgic_evtchn_irq_pending(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:715,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 719
    functionName: vgic_reserve_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 6
    functionsReached:
    - vgic_num_irqs
    - test_and_set_bit
    linkageType: ''
    returnType: bool
    signature: bool vgic_reserve_virq(struct domain *d, unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: vgic_is_valid_line
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 2
    functionsReached:
    - vgic_num_irqs
    linkageType: ''
    returnType: bool
    signature: bool vgic_is_valid_line(struct domain *d, unsigned int virq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:740,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:749,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - d
    - spi
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 755
    functionName: vgic_allocate_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - vgic_num_irqs
    - test_and_set_bit
    - find_next_zero_bit
    linkageType: ''
    returnType: int
    signature: int vgic_allocate_virq(struct domain *d, bool spi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: vgic_free_virq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 2
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void vgic_free_virq(struct domain *d, unsigned int virq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:768,1
    - Dst: list_empty
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:770,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:771,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:773,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:775,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:776,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:779,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:781,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 785
    functionName: gic_dump_vgic_info
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - spin_lock
    - irq_is_pending
    - printk
    - list_empty
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void gic_dump_vgic_info(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: vgic_clear_pending_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vgic_clear_pending_irqs(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:813,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:819,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:824,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:826,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:826,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:829,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 832
    functionName: arch_move_irqs
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached:
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - vgic_get_irq
    - cpumask_of
    - vgic_put_irq
    - irq_set_affinity
    linkageType: ''
    returnType: void
    signature: void arch_move_irqs(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:838,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:844,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:847,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:848,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:850,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - d
    - v
    - virq
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 855
    functionName: vgic_get_hw_irq_desc
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - ASSERT
    - vgic_get_irq
    - vgic_put_irq
    linkageType: ''
    returnType: struct irq_desc
    signature: "struct irq_desc *vgic_get_hw_irq_desc(struct domain *d, struct vcpu
      *v,\n                                      unsigned int virq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: vgic_emulate
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool vgic_emulate(struct cpu_user_regs *regs, union hsr hsr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:873,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:880,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:909,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:910,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - d
    - vcpu
    - virt_irq
    - desc
    - connect
    argTypes:
    - struct domain*
    - struct vcpu*
    - unsigned int
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 913
    functionName: vgic_connect_hw_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 2
    functionsReached:
    - vgic_put_irq
    - spin_lock_irqsave
    - vgic_get_irq
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: "int vgic_connect_hw_irq(struct domain *d, struct vcpu *vcpu,\n                        unsigned
      int virt_irq, struct irq_desc *desc,\n                        bool connect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_level
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: translate_irq_type
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int translate_irq_type(bool is_level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:925,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:926,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:932,1
    - Dst: irq_type_set_by_domain
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:940,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:941,1
    - Dst: gic_set_irq_type
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:942,1
    - Dst: translate_irq_type
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:942,1
    - Dst: irq_set_affinity
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:945,1
    - Dst: cpumask_of
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:945,1
    - Dst: irq_desc_t*::handler::enable
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:946,1
    - Dst: irq_desc_t*::handler::disable
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:949,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:951,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - d
    - desc
    - irq
    argTypes:
    - struct domain*
    - irq_desc_t*
    - struct vgic_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 953
    functionName: vgic_sync_hardware_irq
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 4
    functionsReached:
    - spin_unlock
    - irq_desc_t*::handler::disable
    - irq_desc_t*::handler::enable
    - spin_lock_irqsave
    - irq_type_set_by_domain
    - gic_set_irq_type
    - spin_unlock_irqrestore
    - ASSERT
    - spin_lock
    - cpumask_of
    - test_bit
    - translate_irq_type
    - irq_set_affinity
    linkageType: ''
    returnType: void
    signature: "void vgic_sync_hardware_irq(struct domain *d,\n                            irq_desc_t
      *desc, struct vgic_irq *irq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - domctl_vgic_version
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 965
    functionName: vgic_max_vcpus
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_max_vcpus(unsigned int domctl_vgic_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/arch/arm/vgic/vgic.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dbase
    - nr_rdist_regions
    - regions
    - intid_bits
    argTypes:
    - paddr_t
    - unsigned int
    - struct rdist_region*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 975
    functionName: vgic_v3_setup_hw
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic.c
    functionUses: 1
    functionsReached:
    - panic
    linkageType: ''
    returnType: void
    signature: "void vgic_v3_setup_hw(paddr_t dbase,\n                      unsigned
      int nr_rdist_regions,\n                      const struct rdist_region *regions,\n
      \                     unsigned int intid_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - dbase
    - cbase
    - csize
    - vbase
    - aliased_offset
    argTypes:
    - paddr_t
    - paddr_t
    - paddr_t
    - paddr_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: vgic_v2_setup_hw
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    functionUses: 2
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: "void vgic_v2_setup_hw(paddr_t dbase, paddr_t cbase, paddr_t csize,\n
      \                     paddr_t vbase, uint32_t aliased_offset)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:67,1
    - Dst: read_lr
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:76,1
    - Dst: clear_lr
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:89,1
    - Dst: vgic_get_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:92,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:94,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:107,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:108,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:111,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:121,1
    - Dst: vgic_irq_is_sgi
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:131,1
    - Dst: vgic_irq_is_mapped_level
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:152,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:154,1
    - Dst: gic_read_pending_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:156,1
    - Dst: gic_set_active_state
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:159,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:162,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:164,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:165,1
    - Dst: vgic_put_irq
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:167,1
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:170,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 172
    functionName: vgic_v2_fold_lr_state
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    functionUses: 1
    functionsReached:
    - clear_lr
    - spin_unlock
    - vgic_irq_is_sgi
    - irq_to_desc
    - read_lr
    - gic_set_active_state
    - spin_lock
    - ASSERT
    - vgic_get_irq
    - gic_read_pending_state
    - clear_bit
    - local_irq_restore
    - local_irq_save
    - vgic_put_irq
    - vgic_irq_is_mapped_level
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_v2_fold_lr_state(struct vcpu *vcpu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:198,1
    - Dst: vgic_irq_is_sgi
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:205,1
    - Dst: ffs
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:207,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:209,1
    - Dst: irq_is_pending
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:228,1
    - Dst: vgic_irq_is_mapped_level
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:243,1
    - Dst: write_lr
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:249,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - vcpu
    - irq
    - lr
    argTypes:
    - struct vcpu*
    - struct vgic_irq*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 250
    functionName: vgic_v2_populate_lr
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    functionUses: 1
    functionsReached:
    - vgic_irq_is_sgi
    - BUG_ON
    - ffs
    - irq_is_pending
    - write_lr
    - vgic_irq_is_mapped_level
    linkageType: ''
    returnType: void
    signature: void vgic_v2_populate_lr(struct vcpu *vcpu, struct vgic_irq *irq, int
      lr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_hcr_status
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vcpu
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: vgic_v2_enable
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    functionUses: 1
    functionsReached:
    - update_hcr_status
    linkageType: ''
    returnType: void
    signature: void vgic_v2_enable(struct vcpu *vcpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:271,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:285,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:310,1
    - Dst: vgic_register_dist_iodev
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:317,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:317,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/vgic/vgic-v2.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 329
    functionName: vgic_v2_map_resources
    functionSourceFile: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - vgic_register_dist_iodev
    - BUILD_BUG_ON
    - gaddr_to_gfn
    - is_domain_direct_mapped
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vgic_v2_map_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iomem_permit_access
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:39,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:44,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:47,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:51,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:57,1
    - Dst: gic_iomem_deny_access
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 62
    functionName: acpi_iomem_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - ACPI_SUCCESS
    - gic_iomem_deny_access
    - acpi_get_table
    - iomem_deny_access
    - printk
    - iomem_permit_access
    linkageType: ''
    returnType: int
    signature: int acpi_iomem_deny_access(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_num_irqs
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:73,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:79,1
    - Dst: map_irq_to_domain
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 90
    functionName: acpi_route_spis
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - vgic_num_irqs
    - irq_to_desc
    - map_irq_to_domain
    linkageType: ''
    returnType: int
    signature: int acpi_route_spis(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:102,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:105,1
    - Dst: fdt_property
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:110,1
    - Dst: acpi_make_efi_nodes
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:114,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - kinfo
    - tbl_add
    argTypes:
    - struct kernel_info*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: acpi_make_hypervisor_node
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - dt_dprintk
    - fdt_property
    - fdt_end_node
    - acpi_make_efi_nodes
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int acpi_make_hypervisor_node(const struct kernel_info *kinfo,\n                                            struct
      membank tbl_add[])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:133,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:137,1
    - Dst: fdt_create
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:143,1
    - Dst: fdt_finish_reservemap
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:147,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:151,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:155,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:159,1
    - Dst: make_chosen_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:164,1
    - Dst: acpi_make_hypervisor_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:168,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:172,1
    - Dst: fdt_finish
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:176,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:183,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:184,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - kinfo
    - tbl_add
    argTypes:
    - struct kernel_info*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 186
    functionName: create_acpi_dtb
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - fdt_finish
    - dt_dprintk
    - xfree
    - fdt_property_cell
    - xmalloc_bytes
    - fdt_finish_reservemap
    - fdt_create
    - printk
    - make_chosen_node
    - fdt_end_node
    - acpi_make_hypervisor_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int create_acpi_dtb(struct kernel_info *kinfo,\n                                  struct
      membank tbl_add[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:199,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:200,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:201,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:202,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:206,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: acpi_map_other_tables
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - map_regions_p2mt
    - PFN_UP
    - panic
    - gaddr_to_gfn
    - maddr_to_mfn
    - PAGE_ALIGN
    linkageType: ''
    returnType: void
    signature: void acpi_map_other_tables(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:222,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:225,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:228,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:230,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:231,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:232,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:237,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:237,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 245
    functionName: acpi_create_rsdp
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - acpi_os_get_root_pointer
    - acpi_os_map_memory
    - acpi_tb_checksum
    - acpi_os_unmap_memory
    - acpi_get_table_offset
    - printk
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_create_rsdp(struct domain *d, struct membank tbl_add[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:257,1
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:258,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:261,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - entry
    - entry_count
    - signature
    - addr
    argTypes:
    - u64[]
    - unsigned long
    - char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: acpi_xsdt_modify_entry
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - acpi_os_unmap_memory
    - ACPI_COMPARE_NAME
    linkageType: ''
    returnType: void
    signature: "void acpi_xsdt_modify_entry(u64 entry[],\n                                          unsigned
      long entry_count,\n                                          const char *signature,
      u64 addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:278,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:281,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:284,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:285,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:293,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:294,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:295,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:296,1
    - Dst: acpi_xsdt_modify_entry
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:299,1
    - Dst: acpi_xsdt_modify_entry
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:301,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:306,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:306,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 314
    functionName: acpi_create_xsdt
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - acpi_os_get_root_pointer
    - acpi_os_map_memory
    - acpi_tb_checksum
    - acpi_os_unmap_memory
    - acpi_xsdt_modify_entry
    - acpi_get_table_offset
    - printk
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_create_xsdt(struct domain *d, struct membank tbl_add[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:321,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:326,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:328,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:330,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:332,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:337,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:340,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:344,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 351
    functionName: acpi_create_stao
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - acpi_tb_checksum
    - acpi_get_table
    - acpi_format_exception
    - acpi_get_table_offset
    - printk
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_create_stao(struct domain *d, struct membank tbl_add[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:360,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:365,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:367,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:369,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:371,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:376,1
    - Dst: acpi_table_get_entry_madt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:379,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:382,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:385,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:386,1
    - Dst: gic_make_hwdom_madt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:391,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:394,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:401,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: acpi_create_madt
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - acpi_table_get_entry_madt
    - container_of
    - acpi_tb_checksum
    - acpi_get_table
    - acpi_format_exception
    - gic_make_hwdom_madt
    - acpi_get_table_offset
    - printk
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_create_madt(struct domain *d, struct membank tbl_add[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:419,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:421,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:423,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:425,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:431,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:432,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:437,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:437,1
    - Dst: acpi_get_table_offset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - d
    - tbl_add
    argTypes:
    - struct domain*
    - struct membank[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 445
    functionName: acpi_create_fadt
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - acpi_tb_checksum
    - acpi_get_table
    - acpi_format_exception
    - acpi_get_table_offset
    - printk
    - ACPI_CAST_PTR
    - memcpy
    linkageType: ''
    returnType: int
    signature: int acpi_create_fadt(struct domain *d, struct membank tbl_add[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: estimate_efi_size
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:455,1
    - Dst: kernel_info_get_mem_const
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:455,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:457,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:458,1
    - Dst: gic_get_hwdom_madt_size
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:460,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:461,1
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:463,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:466,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:470,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:473,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:477,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:479,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:482,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:487,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:488,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:490,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:491,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:491,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 495
    functionName: estimate_acpi_efi_size
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 0
    functionsReached:
    - kernel_info_get_mem_const
    - acpi_os_get_root_pointer
    - ROUNDUP
    - acpi_os_map_memory
    - acpi_os_unmap_memory
    - PAGE_ALIGN
    - printk
    - gic_get_hwdom_madt_size
    - estimate_efi_size
    linkageType: ''
    returnType: int
    signature: "int estimate_acpi_efi_size(struct domain *d,\n                                         const
      struct kernel_info *kinfo)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: estimate_acpi_efi_size
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:503,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:507,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:508,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:511,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:514,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:524,1
    - Dst: acpi_create_fadt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:528,1
    - Dst: acpi_create_madt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:532,1
    - Dst: acpi_create_stao
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:536,1
    - Dst: acpi_create_xsdt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:540,1
    - Dst: acpi_create_rsdp
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:544,1
    - Dst: acpi_map_other_tables
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:548,1
    - Dst: acpi_create_efi_system_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:549,1
    - Dst: acpi_create_efi_mmap_table
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:550,1
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:550,1
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:553,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:554,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:555,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:556,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:560,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:563,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:572,1
    - Dst: create_acpi_dtb
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:575,1
    - Dst: acpi_route_spis
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:579,1
    - Dst: acpi_iomem_deny_access
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:583,1
    - Dst: evtchn_allocate
      Src: /src/xen/xen/arch/arm/acpi/domain_build.c:591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 497
    functionDepth: 6
    functionLinenumber: 497
    functionLinenumberEnd: 594
    functionName: prepare_acpi
    functionSourceFile: /src/xen/xen/arch/arm/acpi/domain_build.c
    functionUses: 2
    functionsReached:
    - acpi_create_efi_mmap_table
    - virt_to_mfn
    - PFN_UP
    - create_acpi_dtb
    - acpi_map_other_tables
    - map_regions_p2mt
    - acpi_create_rsdp
    - gaddr_to_gfn
    - acpi_create_stao
    - acpi_create_fadt
    - printk
    - acpi_create_xsdt
    - acpi_create_efi_system_table
    - acpi_iomem_deny_access
    - acpi_create_madt
    - alloc_xenheap_pages
    - PAGE_ALIGN
    - memset
    - evtchn_allocate
    - get_order_from_bytes
    - acpi_route_spis
    - estimate_acpi_efi_size
    - kernel_info_get_mem
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: int
    signature: int prepare_acpi(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:43,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:46,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/acpi/lib.c:56,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/arm/acpi/lib.c:60,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/acpi/lib.c:61,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/acpi/lib.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - phys
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 67
    functionName: __acpi_map_table
    functionSourceFile: /src/xen/xen/arch/arm/acpi/lib.c
    functionUses: 1
    functionsReached:
    - mfn_add
    - FIXMAP_ADDR
    - min
    - maddr_to_mfn
    - set_fixmap
    linkageType: ''
    returnType: char
    signature: char *__acpi_map_table(paddr_t phys, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:75,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:76,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/acpi/lib.c:84,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:84,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/acpi/lib.c:87,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:87,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/acpi/lib.c:88,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/acpi/lib.c:92,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/arm/acpi/lib.c:97,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/acpi/lib.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 103
    functionName: __acpi_unmap_table
    functionSourceFile: /src/xen/xen/arch/arm/acpi/lib.c
    functionUses: 0
    functionsReached:
    - min
    - ASSERT
    - clear_fixmap
    - FIXMAP_ADDR
    linkageType: ''
    returnType: bool
    signature: bool __acpi_unmap_table(const void *ptr, unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: acpi_psci_present
    functionSourceFile: /src/xen/xen/arch/arm/acpi/lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool acpi_psci_present(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: acpi_psci_hvc_present
    functionSourceFile: /src/xen/xen/arch/arm/acpi/lib.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool acpi_psci_hvc_present(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/acpi/lib.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tbl_add
    - index
    argTypes:
    - struct membank[]
    - EFI_MEM_RES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: acpi_get_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/acpi/lib.c
    functionUses: 7
    functionsReached:
    - ROUNDUP
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t acpi_get_table_offset(struct membank tbl_add[],\n                                     EFI_MEM_RES
      index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:60,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:73,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/acpi/boot.c:79,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:83,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/acpi/boot.c:98,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:100,1
    - Dst: acpi_psci_present
      Src: /src/xen/xen/arch/arm/acpi/boot.c:106,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:108,1
    - Dst: arch_cpu_init
      Src: /src/xen/xen/arch/arm/acpi/boot.c:113,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:115,1
    - Dst: cpu_logical_map
      Src: /src/xen/xen/arch/arm/acpi/boot.c:121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - processor
    argTypes:
    - struct acpi_madt_generic_interrupt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 124
    functionName: acpi_map_gic_cpu_interface
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 0
    functionsReached:
    - acpi_psci_present
    - cpu_logical_map
    - arch_cpu_init
    - printk
    linkageType: ''
    returnType: void
    signature: void acpi_map_gic_cpu_interface(struct acpi_madt_generic_interrupt
      *processor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/acpi/boot.c:131,1
    - Dst: BAD_MADT_GICC_ENTRY
      Src: /src/xen/xen/arch/arm/acpi/boot.c:133,1
    - Dst: acpi_table_print_madt_entry
      Src: /src/xen/xen/arch/arm/acpi/boot.c:136,1
    - Dst: acpi_map_gic_cpu_interface
      Src: /src/xen/xen/arch/arm/acpi/boot.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: acpi_parse_gic_cpu_interface
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 0
    functionsReached:
    - BAD_MADT_GICC_ENTRY
    - acpi_table_print_madt_entry
    - acpi_map_gic_cpu_interface
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_gic_cpu_interface(struct acpi_subtable_header *header,\n
      \                            const unsigned long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_madt
      Src: /src/xen/xen/arch/arm/acpi/boot.c:151,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:156,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:162,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/arch/arm/acpi/boot.c:167,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: acpi_smp_init_cpus
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 1
    functionsReached:
    - cpumask_set_cpu
    - acpi_table_parse_madt
    - printk
    linkageType: ''
    returnType: void
    signature: void acpi_smp_init_cpus(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: acpi_parse_fadt
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int acpi_parse_fadt(struct acpi_table_header *table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/arch/arm/acpi/boot.c:202,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/acpi/boot.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: parse_acpi_param
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_acpi_param(const char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/acpi/boot.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - fdt
    - node
    - uname
    - depth
    - address_cells
    - size_cells
    - data
    argTypes:
    - void*
    - int
    - char*
    - int
    - u32
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: dt_scan_depth1_nodes
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int dt_scan_depth1_nodes(const void *fdt, int node,\n                                       const
      char *uname, int depth,\n                                       u32 address_cells,
      u32 size_cells,\n                                       void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_for_each_node
      Src: /src/xen/xen/arch/arm/acpi/boot.c:252,1
    - Dst: enable_acpi
      Src: /src/xen/xen/arch/arm/acpi/boot.c:260,1
    - Dst: acpi_table_init
      Src: /src/xen/xen/arch/arm/acpi/boot.c:263,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:266,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/arch/arm/acpi/boot.c:271,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/acpi/boot.c:274,1
    - Dst: disable_acpi
      Src: /src/xen/xen/arch/arm/acpi/boot.c:281,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 284
    functionName: acpi_boot_table_init
    functionSourceFile: /src/xen/xen/arch/arm/acpi/boot.c
    functionUses: 2
    functionsReached:
    - device_tree_for_each_node
    - enable_acpi
    - acpi_table_parse
    - disable_acpi
    - printk
    - acpi_table_init
    linkageType: ''
    returnType: int
    signature: int acpi_boot_table_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: ASM_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_REG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: ASM_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_REG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - section
    - ','
    - label
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: RODATA_SECT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/asm_defns.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RODATA_SECT(section, label, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: GLOBAL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: watchdog_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/config.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: watchdog_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/config.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - width
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: build_atomic_read
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_atomic_read(name, size, width, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - width
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: build_atomic_write
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_atomic_write(name, size, width, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - width
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: build_add_sized
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: build_add_sized(name, size, width, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: BYTE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: WORD
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: DWORD
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWORD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: BYTE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: WORD
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: DWORD
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWORD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: atomic_read
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int atomic_read(const atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: _atomic_read
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _atomic_read(atomic_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: atomic_set
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: _atomic_set
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: atomic_sub_and_test
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_sub_and_test(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: atomic_inc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 24
    functionsReached:
    - atomic_add
    linkageType: ''
    returnType: void
    signature: void atomic_inc(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: atomic_inc_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    functionName: atomic_inc_and_test
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: atomic_dec
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 19
    functionsReached:
    - atomic_sub
    linkageType: ''
    returnType: void
    signature: void atomic_dec(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: atomic_dec_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: atomic_dec_and_test
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 2
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: atomic_add_negative
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_add_negative(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_add_unless
      Src: /src/xen/xen/arch/arm/include/asm/atomic.h:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 4
    functionsReached:
    - __atomic_add_unless
    linkageType: ''
    returnType: int
    signature: int atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - new
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: atomic_xchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: atomic_xchg(v, new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - psr
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: psr_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: psr_mode(psr,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: regs_mode_is_32bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool regs_mode_is_32bit(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: usr_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usr_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: fiq_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fiq_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: irq_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: svc_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: svc_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: mon_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mon_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: abt_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: abt_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: und_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: und_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: sys_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sys_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: hyp_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hyp_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: regs_mode_is_user
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regs_mode_is_user(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: hyp_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hyp_mode(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: regs_mode_is_user
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: regs_mode_is_user(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/include/asm/regs.h:51,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/regs.h:53,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/regs.h:55,1
    - Dst: hyp_mode
      Src: /src/xen/xen/arch/arm/include/asm/regs.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: guest_mode
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 17
    functionsReached:
    - hyp_mode
    - guest_cpu_user_regs
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool guest_mode(const struct cpu_user_regs *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg0
    - reg1
    argTypes:
    - register_t
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: regpair_to_uint64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t regpair_to_uint64(register_t reg0, register_t reg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - reg0
    - reg1
    - val
    argTypes:
    - register_t*
    - register_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: uint64_to_regpair
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/regs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void uint64_to_regpair(register_t *reg0, register_t *reg1,\n                                     uint64_t
      val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pcidev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: pci_to_dev
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pci_to_dev(pcidev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: is_pci_passthrough_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pci_passthrough_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: pci_sanitize_bar_memory
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pci_sanitize_bar_memory(struct rangeset *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: arch_pci_init_pdev
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_pci_init_pdev(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/pci.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - node
    - segment
    argTypes:
    - struct dt_device_node*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: pci_get_host_bridge_segment
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int pci_get_host_bridge_segment(const struct dt_device_node *node,\n
      \                                             uint16_t *segment)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/pci.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: pci_get_new_domain_nr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pci.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int pci_get_new_domain_nr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: guest_bitop
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_bitop(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 60
    functionName: guest_testop
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_testop(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - nr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: guest_test_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_test_bit(d, nr, p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:79,1
    - Dst: clear_mask16_timeout
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:81,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:81,1
    - Dst: domain_pause_nosync
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:84,1
    - Dst: clear_mask16
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:85,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - d
    - mask
    - p
    argTypes:
    - struct domain*
    - uint16_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: guest_clear_mask16
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached:
    - perfc_incr
    - domain_unpause
    - clear_mask16_timeout
    - domain_pause_nosync
    - clear_mask16
    - this_cpu
    linkageType: ''
    returnType: void
    signature: "void guest_clear_mask16(struct domain *d, uint16_t mask,\n                                      volatile
      uint16_t *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:97,1
    - Dst: __cmpxchg_timeout
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:99,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:99,1
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:100,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:103,1
    - Dst: domain_pause_nosync
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:105,1
    - Dst: __cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:106,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:106,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - d
    - ptr
    - old
    - new
    - size
    argTypes:
    - struct domain*
    - void*
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: __guest_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached:
    - perfc_incr
    - domain_unpause
    - __cmpxchg
    - size::size
    - domain_pause_nosync
    - this_cpu
    - __cmpxchg_timeout
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __guest_cmpxchg(struct domain *d,\n                                                   volatile
      void *ptr,\n                                                   unsigned long
      old,\n                                                   unsigned long new,\n
      \                                                  unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: guest_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cmpxchg(d, ptr, o, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:125,1
    - Dst: __cmpxchg64_timeout
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:127,1
    - Dst: this_cpu::this_cpu
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:127,1
    - Dst: perfc_incr
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:131,1
    - Dst: domain_pause_nosync
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:133,1
    - Dst: cmpxchg64
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:134,1
    - Dst: domain_unpause
      Src: /src/xen/xen/arch/arm/include/asm/guest_atomics.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - d
    - ptr
    - old
    - new
    argTypes:
    - struct domain*
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: guest_cmpxchg64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
    functionUses: 0
    functionsReached:
    - perfc_incr
    - domain_unpause
    - this_cpu::this_cpu
    - __cmpxchg64_timeout
    - domain_pause_nosync
    - cmpxchg64
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t guest_cmpxchg64(struct domain *d,\n                                       volatile
      uint64_t *ptr,\n                                       uint64_t old,\n                                       uint64_t
      new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: arch_lock_acquire_barrier
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_acquire_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: arch_lock_release_barrier
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_release_barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: arch_lock_relax
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: arch_lock_signal
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: arch_lock_signal_wmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_lock_signal_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - entry
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: BAD_MADT_GICC_ENTRY
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/acpi.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD_MADT_GICC_ENTRY(entry, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: disable_acpi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/acpi.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_acpi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: enable_acpi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_acpi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sgi_target
    argTypes:
    - struct sgi_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: sgi_target_init
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sgi_target_init(struct sgi_target *sgi_target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: DOMAIN_NR_RANKS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOMAIN_NR_RANKS(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: DOMAIN_NR_EXT_RANKS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOMAIN_NR_EXT_RANKS(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: EXT_RANK_NUM2IDX
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_RANK_NUM2IDX(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: EXT_RANK_IDX2NUM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_RANK_IDX2NUM(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: vgic_lock
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_lock(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: vgic_unlock
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_unlock(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - r
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: vgic_lock_rank
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_lock_rank(v, r, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - r
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: vgic_unlock_rank
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_unlock_rank(v, r, flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 296
    functionName: REG_RANK_NR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int REG_RANK_NR(unsigned int b, unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgic
    argTypes:
    - struct vgic_dist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: vgic_cpu_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgic
    argTypes:
    - struct vgic_dist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: vgic_dist_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vgic_dist_base(const struct vgic_dist *vgic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: REG_RANK_INDEX
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REG_RANK_INDEX(b, n, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: vgic_num_irqs
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vgic_num_irqs(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gic_number_espis
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:376,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:377,1
    - Dst: gic_number_espis
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 381
    functionName: vgic_def_nr_spis
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 2
    functionsReached:
    - min
    - gic_number_espis
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_def_nr_spis(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_is_valid_line
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: vgic_is_spi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 3
    functionsReached:
    - vgic_is_valid_line
    linkageType: ''
    returnType: bool
    signature: bool vgic_is_spi(struct domain *d, unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_allocate_virq
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: vgic_allocate_ppi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 1
    functionsReached:
    - vgic_allocate_virq
    linkageType: ''
    returnType: int
    signature: int vgic_allocate_ppi(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vgic_allocate_virq
      Src: /src/xen/xen/arch/arm/include/asm/vgic.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: vgic_allocate_spi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic.h
    functionUses: 0
    functionsReached:
    - vgic_allocate_virq
    linkageType: ''
    returnType: int
    signature: int vgic_allocate_spi(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: irq_to_desc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_to_desc(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: is_lpi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_lpi(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/irq.h:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: is_espi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 4
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool is_espi(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/irq.h:85,1
    - Dst: is_espi
      Src: /src/xen/xen/arch/arm/include/asm/irq.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - intid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: espi_intid_to_idx
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 4
    functionsReached:
    - is_espi
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int espi_intid_to_idx(unsigned int intid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/irq.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: espi_idx_to_intid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 6
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int espi_idx_to_intid(unsigned int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: domain_pirq_to_irq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_pirq_to_irq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: arch_evtchn_bind_pirq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_evtchn_bind_pirq(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: VREG32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VREG32(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: VREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VREG64(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: VRANGE32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VRANGE32(start, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: VRANGE64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VRANGE64(start, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dabt
    argTypes:
    - struct hsr_dabt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: vgic_reg64_check_access
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vgic_reg64_check_access(struct hsr_dabt dabt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: evaluate_nospec
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool evaluate_nospec(bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: block_speculation
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/nospec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void block_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - espi_range
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: GICD_TYPER_ESPI_RANGE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GICD_TYPER_ESPI_RANGE(espi_range)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: GICD_TYPER_ESPIS_NUM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GICD_TYPER_ESPIS_NUM(typer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: GICD_TYPE_ID_BITS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GICD_TYPE_ID_BITS(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: ICH_SGI_AFFINITY_LEVEL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICH_SGI_AFFINITY_LEVEL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: VPL011_LOCK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vpl011.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPL011_LOCK(d,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: VPL011_UNLOCK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vpl011.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPL011_UNLOCK(d,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct vpl011_init_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: domain_vpl011_init
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vpl011.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int domain_vpl011_init(struct domain *d,\n                                     struct
      vpl011_init_info *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: domain_vpl011_deinit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vpl011.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_vpl011_deinit(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: guest_handle_okay
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_access.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_okay(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - first
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: guest_handle_subrange_okay
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_subrange_okay(hnd, first, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: P2M_CLEAR_PERM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2M_CLEAR_PERM(pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - lpae_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: lpae_is_valid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lpae_is_valid(lpae_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: lpae_is_table
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lpae_is_table(lpae_t pte, unsigned int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: lpae_is_mapping
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lpae_is_mapping(lpae_t pte, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/include/asm/lpae.h:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: lpae_is_superpage
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached:
    - lpae_is_mapping
    linkageType: ''
    returnType: bool
    signature: bool lpae_is_superpage(lpae_t pte, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pte
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: lpae_get_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lpae_get_mfn(pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pte
    - ','
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: lpae_set_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lpae_set_mfn(pte, mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: DECLARE_OFFSETS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_OFFSETS(var, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: LPAE_SHIFT_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPAE_SHIFT_GS(gs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: LPAE_ENTRIES_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPAE_ENTRIES_GS(gs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: LPAE_ENTRY_MASK_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPAE_ENTRY_MASK_GS(gs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gs
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: LEVEL_ORDER_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVEL_ORDER_GS(gs, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gs
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: LEVEL_SHIFT_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVEL_SHIFT_GS(gs, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gs
    - ','
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: LEVEL_SIZE_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEVEL_SIZE_GS(gs, lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gs
    - ','
    - lvl
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: LPAE_TABLE_INDEX_GS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LPAE_TABLE_INDEX_GS(gs, lvl, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: XEN_PT_LEVEL_SHIFT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_SHIFT(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: XEN_PT_LEVEL_ORDER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_ORDER(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: XEN_PT_LEVEL_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_SIZE(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: XEN_PT_LEVEL_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_PT_LEVEL_MASK(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: zeroeth_linear_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zeroeth_linear_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: first_linear_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: first_linear_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: second_linear_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: second_linear_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: third_linear_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: third_linear_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - offs
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: TABLE_OFFSET
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_OFFSET(offs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: first_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: first_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: second_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: second_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: third_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: third_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    functionName: zeroeth_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zeroeth_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: zeroeth_table_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zeroeth_table_offset(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: DEFINE_BOOT_PAGE_TABLES
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_BOOT_PAGE_TABLES(name, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: DEFINE_BOOT_PAGE_TABLE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_BOOT_PAGE_TABLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: DEFINE_PAGE_TABLES
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PAGE_TABLES(name, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: DEFINE_PAGE_TABLE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/lpae.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PAGE_TABLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: irq_is_ppi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_is_ppi(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: irq_is_spi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_is_spi(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: VGIC_V3_LR_INDEX
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VGIC_V3_LR_INDEX(lr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgic
    argTypes:
    - struct vgic_dist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: vgic_cpu_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vgic_cpu_base(const struct vgic_dist *vgic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgic
    argTypes:
    - struct vgic_dist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: vgic_dist_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vgic_dist_base(const struct vgic_dist *vgic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: __set_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __set_bit(n,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: __clear_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_bit(n,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: arch_ffs
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: arch_ffsl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_ffsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: arch_fls
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fls(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: arch_flsl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_flsl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: sev
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sev()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: wfe
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wfe()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: wfi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wfi()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: isb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - scope
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: dsb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dsb(scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - scope
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: dmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmb(scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: mb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: rmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: rmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: wmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: smp_mb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: smp_rmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: smp_rmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: smp_wmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: smp_mb__before_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__before_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: smp_mb__after_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_mb__after_atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __asmeq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __asmeq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/arm/include/asm/system.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: local_abort_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 0
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_abort_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: arch_fetch_and_add
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/system.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_fetch_and_add(x, v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:25,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:27,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - regs
    - hsr
    - fn
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    - vreg_reg_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 33
    functionName: vreg_emulate_cp32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vreg.h
    functionUses: 1
    functionsReached:
    - set_user_reg
    - fn
    - get_user_reg
    linkageType: ''
    returnType: bool
    signature: "bool vreg_emulate_cp32(struct cpu_user_regs *regs, union hsr hsr,\n
      \                                    vreg_reg_fn_t fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:49,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:50,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:55,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:59,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - regs
    - hsr
    - fn
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    - vreg_reg64_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: vreg_emulate_cp64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vreg.h
    functionUses: 3
    functionsReached:
    - set_user_reg
    - fn
    - get_user_reg
    linkageType: ''
    returnType: bool
    signature: "bool vreg_emulate_cp64(struct cpu_user_regs *regs, union hsr hsr,\n
      \                                    vreg_reg64_fn_t fn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:75,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:77,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/include/asm/vreg.h:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - regs
    - hsr
    - fn
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    - vreg_reg_fn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: vreg_emulate_sysreg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vreg.h
    functionUses: 3
    functionsReached:
    - set_user_reg
    - fn
    - get_user_reg
    linkageType: ''
    returnType: bool
    signature: "bool vreg_emulate_sysreg(struct cpu_user_regs *regs, union hsr hsr,\n
      \                                        vreg_reg_fn_t fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: VREG_REG_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vreg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VREG_REG_MASK(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - offmask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 142
    functionName: VREG_REG_HELPERS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/vreg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VREG_REG_HELPERS(sz, offmask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: guest_bug_on_failed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/traps.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_bug_on_failed(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: GUEST_BUG_ON
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/traps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GUEST_BUG_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: VABORT_GEN_BY_GUEST
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/traps.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool VABORT_GEN_BY_GUEST(const struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/include/asm/traps.h:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - dabt
    - r
    argTypes:
    - struct hsr_dabt
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 117
    functionName: sign_extend
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/traps.h
    functionUses: 2
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: register_t
    signature: register_t sign_extend(const struct hsr_dabt dabt, register_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PFN_ORDER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_ORDER(_pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: PG_shift
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_shift(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: PG_mask
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PG_mask(x, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pg
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: page_state_is
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_state_is(pg, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: is_xen_heap_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: is_xen_heap_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: is_xen_fixed_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_fixed_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: page_get_owner
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_get_owner(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _p
    - ','
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: page_set_owner
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_set_owner(_p,_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: maddr_get_owner
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_get_owner(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: ioremap_nocache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 5
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap_nocache(paddr_t start, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: ioremap_cache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap_cache(paddr_t start, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_attr
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: ioremap_wc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - ioremap_attr
    linkageType: ''
    returnType: void
    signature: void *ioremap_wc(paddr_t start, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: mfn_valid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_valid(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: mfn_to_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_page(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: page_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_mfn(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: maddr_to_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_page(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: page_to_maddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_maddr(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: pfn_to_paddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_paddr(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: paddr_to_pfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: gfn_to_gaddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gfn_to_gaddr(gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ga
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: gaddr_to_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gaddr_to_gfn(ga)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: mfn_to_maddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_maddr(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: maddr_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_mfn(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: vmap_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: vmap_to_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vmap_to_page(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - paddr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: paddr_to_pfn_aligned
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pfn_aligned(paddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gva_to_ma_par
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - va
    - pa
    - flags
    argTypes:
    - vaddr_t
    - paddr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: gvirt_to_maddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - gva_to_ma_par
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t gvirt_to_maddr(vaddr_t va, paddr_t *pa,\n                                      unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: __pa
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pa(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: __va
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __va(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: __virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: __mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_virt
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:291,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:291,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: page_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 2
    functionsReached:
    - mfn_x
    - mfn_to_virt
    - page_to_mfn
    linkageType: ''
    returnType: void
    signature: void *page_to_virt(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: SHARED_M2P
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_M2P(_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mfn
    - ','
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: set_gpfn_from_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_gpfn_from_mfn(mfn, pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: mfn_to_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_gfn(d, mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page_type
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:327,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: put_page_and_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 25
    functionsReached:
    - put_page
    - put_page_type
    linkageType: ''
    returnType: void
    signature: void put_page_and_type(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:343,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:343,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:345,1
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:345,1
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: page_get_xenheap_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - _gfn
    - ASSERT
    - is_xen_heap_page
    - gfn_eq
    - ACCESS_ONCE
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t page_get_xenheap_gfn(const struct page_info *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:352,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:355,1
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:355,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:359,1
    - Dst: cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/mm.h:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - gfn
    argTypes:
    - struct page_info*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 361
    functionName: page_set_xenheap_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mm.h
    functionUses: 1
    functionsReached:
    - gfn_x
    - ASSERT
    - is_xen_heap_page
    - gfn_eq
    - cmpxchg
    linkageType: ''
    returnType: void
    signature: void page_set_xenheap_gfn(struct page_info *p, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: bug_loc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_loc(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: bug_file
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_file(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: bug_line
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_line(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: bug_msg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_msg(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - line
    - ','
    - file
    - ','
    - has_msg
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: BUG_FRAME
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_FRAME(type, line, file, has_msg, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: run_in_exception_handler
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: run_in_exception_handler(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: WARN
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: BUG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 153
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: assert_failed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_failed(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mask
    - page_timestamp
    argTypes:
    - cpumask_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 11
    functionName: tlbflush_filter
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/flushtlb.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tlbflush_filter(cpumask_t *mask, uint32_t page_timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: tlbflush_current_time
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/flushtlb.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tlbflush_current_time()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: page_set_tlbflush_timestamp
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/flushtlb.h
    functionUses: 2
    functionsReached:
    - tlbflush_current_time
    linkageType: ''
    returnType: void
    signature: void page_set_tlbflush_timestamp(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:41,1
    - Dst: __flush_xen_tlb_one_local
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:44,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:47,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - va
    - size
    argTypes:
    - vaddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: flush_xen_tlb_range_va_local
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/flushtlb.h
    functionUses: 0
    functionsReached:
    - __flush_xen_tlb_one_local
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: "void flush_xen_tlb_range_va_local(vaddr_t va,\n                                                unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:61,1
    - Dst: __flush_xen_tlb_one
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:64,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:67,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/flushtlb.h:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - va
    - size
    argTypes:
    - vaddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: flush_xen_tlb_range_va
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/flushtlb.h
    functionUses: 0
    functionsReached:
    - dsb
    - __flush_xen_tlb_one
    - isb
    linkageType: ''
    returnType: void
    signature: "void flush_xen_tlb_range_va(vaddr_t va,\n                                          unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: cpu_feature64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_feature64(c, feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: boot_cpu_feature64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boot_cpu_feature64(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: boot_dbg_feature64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boot_dbg_feature64(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: cpu_feature64_has_el0_32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_feature64_has_el0_32(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: cpu_feature32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_feature32(c, feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: boot_cpu_feature32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boot_cpu_feature32(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: boot_dbg_feature32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boot_dbg_feature32(feat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/include/asm/cpufeature.h:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: cpus_have_cap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 7
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool cpus_have_cap(unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: cpus_have_const_cap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpus_have_const_cap(num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/include/asm/cpufeature.h:116,1
    - Dst: __set_bit
      Src: /src/xen/xen/arch/arm/include/asm/cpufeature.h:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: cpus_set_cap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 4
    functionsReached:
    - __set_bit
    - printk
    linkageType: ''
    returnType: void
    signature: void cpus_set_cap(unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cpuinfo
    argTypes:
    - struct cpuinfo_arm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: update_system_features
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void update_system_features(const struct cpuinfo_arm *cpuinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/sysregs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: read_sysreg_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/sysregs.h
    functionUses: 1
    functionsReached:
    - READ_SYSREG64
    linkageType: ''
    returnType: register_t
    signature: register_t read_sysreg_par(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:13,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:13,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:15,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:17,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - slot
    - mfn
    argTypes:
    - unsigned int
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 23
    functionName: arch_pmap_map
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pmap.h
    functionUses: 0
    functionsReached:
    - mfn_to_xen_entry
    - write_pte
    - ASSERT
    - lpae_is_valid
    - isb
    linkageType: ''
    returnType: void
    signature: void arch_pmap_map(unsigned int slot, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:29,1
    - Dst: flush_xen_tlb_range_va_local
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:31,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/include/asm/pmap.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: arch_pmap_unmap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/pmap.h
    functionUses: 0
    functionsReached:
    - flush_xen_tlb_range_va_local
    - write_pte
    - FIXMAP_ADDR
    linkageType: ''
    returnType: void
    signature: void arch_pmap_unmap(unsigned int slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: __ALT_PTR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ALT_PTR(a,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ALT_ORIG_PTR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_ORIG_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: ALT_REPL_PTR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_REPL_PTR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - feature
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ALTINSTR_ENTRY
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTINSTR_ENTRY(feature, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - ','
    - cfg_enabled
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: __ALTERNATIVE_CFG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oldinstr
    - ','
    - newinstr
    - ','
    - feature
    - ','
    - cfg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: _ALTERNATIVE_CFG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oldinstr
    - ','
    - cb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: ALTERNATIVE_CB
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/alternative.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALTERNATIVE_CB(oldinstr, cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cp
    - ','
    - op1
    - ','
    - crn
    - ','
    - crm
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: _HSR_CPREG32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HSR_CPREG32(cp,op1,crn,crm,op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - op1
    - ','
    - crm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: _HSR_CPREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _HSR_CPREG64(cp,op1,crm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - X
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: HSR_CPREG32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_CPREG32(X...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - X
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: HSR_CPREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_CPREG64(X...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: __AP0Rx
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AP0Rx(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: __AP1Rx
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AP1Rx(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: __LR0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LR0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: __LR8
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LR8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: __LRC0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LRC0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: __LRC8
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LRC8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: cpu_physical_id
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smp.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_physical_id(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 56
    functionName: __do_div_asm
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/div64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __do_div_asm(n, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: do_div
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/div64.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_div(n, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - struct vm_event_st*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: p2m_mem_access_emulate_check
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mem_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool p2m_mem_access_emulate_check(struct vcpu *v,\n                                  const
      struct vm_event_st *rsp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: p2m_mem_access_sanity_check
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mem_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_mem_access_sanity_check(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gpa
    - gla
    - npfec
    argTypes:
    - paddr_t
    - vaddr_t
    - struct npfec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: p2m_mem_access_check
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mem_access.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec
      npfec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gva
    - flag
    - v
    argTypes:
    - vaddr_t
    - unsigned long
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: p2m_mem_access_check_and_get_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mem_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\np2m_mem_access_check_and_get_page(vaddr_t gva,
      unsigned long flag,\n                                  const struct vcpu *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: arch_dt_passthrough_p2m_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: p2m_type_t
    signature: p2m_type_t arch_dt_passthrough_p2m_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: p2m_to_mask
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_to_mask(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: p2m_is_ram
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_ram(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: p2m_is_foreign
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_foreign(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: p2m_is_any_ram
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_is_any_ram(_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: arch_acquire_resource_check
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_acquire_resource_check(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: p2m_write_lock
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 5
    functionsReached:
    - write_lock
    linkageType: ''
    returnType: void
    signature: void p2m_write_lock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: p2m_read_lock
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 8
    functionsReached:
    - read_lock
    linkageType: ''
    returnType: void
    signature: void p2m_read_lock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_unlock
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: p2m_read_unlock
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 8
    functionsReached:
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void p2m_read_unlock(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_is_locked
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: p2m_is_locked
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - rw_is_locked
    linkageType: ''
    returnType: int
    signature: int p2m_is_locked(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: p2m_is_write_locked
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - rw_is_write_locked
    linkageType: ''
    returnType: int
    signature: int p2m_is_write_locked(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - page_order
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: __must_check::guest_physmap_add_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - guest_physmap_add_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check\nguest_physmap_add_page(struct domain *d, gfn_t gfn,
      mfn_t mfn,\n                       unsigned int page_order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_insert_mapping
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - gfn
    - mfn
    - nr_pages
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: guest_physmap_add_pages
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 0
    functionsReached:
    - p2m_insert_mapping
    linkageType: ''
    returnType: int
    signature: "int guest_physmap_add_pages(struct domain *d,\n                                          gfn_t
      gfn,\n                                          mfn_t mfn,\n                                          unsigned
      int nr_pages)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:369,1
    - Dst: p2m_get_page_from_gfn
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:370,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:370,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:381,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:382,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:384,1
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - d
    - gfn
    - t
    - q
    argTypes:
    - struct domain*
    - unsigned long
    - p2m_type_t*
    - p2m_query_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 393
    functionName: get_page_from_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 37
    functionsReached:
    - mfn_to_page
    - _gfn
    - _mfn
    - p2m_get_page_from_gfn
    - likely
    - mfn_valid
    - get_page
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_page_from_gfn(\n    struct domain *d, unsigned
      long gfn, p2m_type_t *t, p2m_query_t q)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_page
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:401,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:403,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:403,1
    - Dst: get_page_type
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:403,1
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - page
    - domain
    - type
    argTypes:
    - struct page_info*
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 410
    functionName: get_page_and_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 7
    functionsReached:
    - get_page_type
    - likely
    - get_page
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: "int get_page_and_type(struct page_info *page,\n                                    struct
      domain *domain,\n                                    unsigned long type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: p2m_get_hostp2m
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_get_hostp2m(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: p2m_vm_event_sanity_check
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_vm_event_sanity_check(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:431,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:431,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - gfn
    - order
    argTypes:
    - gfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 434
    functionName: gfn_next_boundary
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 2
    functionsReached:
    - gfn_x
    - _gfn
    - gfn_add
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t gfn_next_boundary(gfn_t gfn, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:445,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/include/asm/p2m.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 448
    functionName: vcpu_has_cache_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/p2m.h
    functionUses: 1
    functionsReached:
    - READ_SYSREG
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool vcpu_has_cache_enabled(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: CLIDR_CTYPEn_SHIFT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLIDR_CTYPEn_SHIFT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MIDR_RESIVION
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_RESIVION(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: MIDR_PARTNUM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_PARTNUM(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: MIDR_ARCHITECTURE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_ARCHITECTURE(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: MIDR_VARIANT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_VARIANT(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - midr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: MIDR_IMPLEMENTOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_IMPLEMENTOR(midr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - imp
    - ','
    - partnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: MIDR_CPU_MODEL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_CPU_MODEL(imp, partnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - midr
    - ','
    - model
    - ','
    - rv_min
    - ','
    - rv_max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: MIDR_IS_CPU_MODEL_RANGE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIDR_IS_CPU_MODEL_RANGE(midr, model, rv_min, rv_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: MPIDR_LEVEL_SHIFT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPIDR_LEVEL_SHIFT(level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mpidr
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: MPIDR_AFFINITY_LEVEL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPIDR_AFFINITY_LEVEL(mpidr, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: AFFINITY_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AFFINITY_MASK(level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: TCR_T0SZ
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCR_T0SZ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: TCR_PS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TCR_PS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: VTCR_T0SZ
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTCR_T0SZ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: VTCR_SL0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTCR_SL0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: VTCR_PS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTCR_PS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: HCPTR_CP
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCPTR_CP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: HSTR_T
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSTR_T(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: cpu_logical_map
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_logical_map(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 583
    functionName: dump_execution_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dump_execution_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 585
    functionName: cpu_relax
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_relax()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: cpu_to_core
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_core(_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 589
    functionName: cpu_to_socket
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_socket(_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 616
    functionName: SYNCHRONIZE_SERROR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYNCHRONIZE_SERROR(feat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: vcpu_hcr_clear_flags
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_hcr_clear_flags(v, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 634
    functionName: vcpu_hcr_set_flags
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/processor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_hcr_set_flags(v, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: is_32bit_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_32bit_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: is_64bit_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_64bit_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: is_32bit_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_32bit_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: is_64bit_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_64bit_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: domain_use_host_layout
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_use_host_layout(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:270,1
    - Dst: MPIDR_AFFINITY_LEVEL
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - vaff
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: vaffinity_to_vcpuid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 2
    functionsReached:
    - MPIDR_AFFINITY_LEVEL
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vaffinity_to_vcpuid(register_t vaff)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:285,1
    - Dst: MPIDR_LEVEL_SHIFT
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:287,1
    - Dst: MPIDR_LEVEL_SHIFT
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - vcpuid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: vcpuid_to_vaffinity
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 5
    functionsReached:
    - MPIDR_LEVEL_SHIFT
    - BUILD_BUG_ON
    linkageType: ''
    returnType: register_t
    signature: register_t vcpuid_to_vaffinity(unsigned int vcpuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: alloc_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 1
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct vcpu_guest_context
    signature: struct vcpu_guest_context *alloc_vcpu_guest_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/include/asm/domain.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vgc
    argTypes:
    - struct vcpu_guest_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: free_vcpu_guest_context
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 1
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: arch_vcpu_block
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_vcpu_block(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: arch_vm_assist_valid_mask
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vm_assist_valid_mask(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: has_vpci
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_vpci(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - gmp
    argTypes:
    - struct vcpu*
    - struct guest_memory_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: update_guest_memory_policy
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/domain.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_guest_memory_policy(struct vcpu *v,\n                                              struct
      guest_memory_policy *gmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vcpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: set_current
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_current(vcpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: get_cpu_current
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu_current(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: get_cpu_info
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: struct cpu_info
    signature: struct cpu_info *get_cpu_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: guest_cpu_user_regs
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_cpu_user_regs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stack
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: switch_stack_and_jump
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: switch_stack_and_jump(stack, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: reset_stack_and_jump
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: reset_stack_and_jump(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: smp_processor_id
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 194
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_processor_id()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: set_processor_id
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_processor_id(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: get_per_cpu_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/current.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_per_cpu_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _namestr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: PLATFORM_START
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/platform.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PLATFORM_START(_name, _namestr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - erratum
    - ','
    - feature
    - ','
    - arch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 27
    functionName: CHECK_WORKAROUND_HELPER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_WORKAROUND_HELPER(erratum, feature, arch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: get_ssbd_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: enum ssbd_state
    signature: enum ssbd_state get_ssbd_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/include/asm/cpuerrata.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: cpu_require_ssbd_mitigation
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    functionUses: 1
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool cpu_require_ssbd_mitigation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: cpu_require_ssbd_mitigation
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cpu_require_ssbd_mitigation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: get_ssbd_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: enum ssbd_state
    signature: enum ssbd_state get_ssbd_state(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - regs
    - v
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: handle_ioserv
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/ioreq.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state handle_ioserv(struct cpu_user_regs *regs,\n                                          struct
      vcpu *v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - regs
    - v
    - info
    argTypes:
    - struct cpu_user_regs*
    - struct vcpu*
    - mmio_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: try_fwd_ioserv
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/ioreq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum io_state
    signature: "enum io_state try_fwd_ioserv(struct cpu_user_regs *regs,\n                                           struct
      vcpu *v, mmio_info_t *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/ioreq.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - port
    - size
    - dir
    argTypes:
    - uint16_t
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: handle_pio
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/ioreq.h
    functionUses: 2
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool handle_pio(uint16_t port, unsigned int size, int dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: msix_write_completion
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/ioreq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void msix_write_completion(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: PSCI_0_2_FN32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/psci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_0_2_FN32(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: PSCI_0_2_FN64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/psci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_0_2_FN64(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: PSCI_VERSION_MAJOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/psci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_VERSION_MAJOR(ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: PSCI_VERSION_MINOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/psci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_VERSION_MINOR(ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: PSCI_VERSION
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/psci.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PSCI_VERSION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_clear_mask16
      Src: /src/xen/xen/arch/arm/include/asm/grant_table.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - mask
    - addr
    argTypes:
    - struct domain*
    - unsigned int
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: gnttab_clear_flags
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached:
    - guest_clear_mask16
    linkageType: ''
    returnType: void
    signature: "void gnttab_clear_flags(struct domain *d,\n                                      unsigned
      int mask, uint16_t *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/include/asm/grant_table.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - mfn
    argTypes:
    - struct domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: gnttab_mark_dirty
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached:
    - printk_once
    linkageType: ''
    returnType: void
    signature: void gnttab_mark_dirty(struct domain *d, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ro
    - ld
    - rd
    argTypes:
    - bool
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: gnttab_host_mapping_get_page_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool gnttab_host_mapping_get_page_type(bool ro,\n                                                     const
      struct domain *ld,\n                                                     const
      struct domain *rd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: gnttab_release_host_mappings
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gnttab_release_host_mappings(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: gnttab_dom0_frames
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_dom0_frames()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - gt
    - ','
    - st
    - ','
    - idx
    - ','
    - gfn
    - ','
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: gnttab_set_frame_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_set_frame_gfn(gt, st, idx, gfn, mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - gt
    - ','
    - st
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: gnttab_get_frame_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_get_frame_gfn(gt, st, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: gnttab_shared_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_shared_page(t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: gnttab_status_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_status_page(t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: gnttab_shared_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_shared_gfn(d, t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - t
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: gnttab_status_gfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_status_gfn(d, t, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: gnttab_need_iommu_mapping
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gnttab_need_iommu_mapping(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: SMCCC_VERSION_MAJOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMCCC_VERSION_MAJOR(ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: SMCCC_VERSION_MINOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMCCC_VERSION_MINOR(ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: SMCCC_VERSION
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SMCCC_VERSION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcid
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: smccc_is_fast_call
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool smccc_is_fast_call(register_t funcid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcid
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: smccc_is_conv_64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool smccc_is_conv_64(register_t funcid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcid
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: smccc_get_fn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t smccc_get_fn(register_t funcid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcid
    argTypes:
    - register_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: smccc_get_owner
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t smccc_get_owner(register_t funcid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - _0
    - ','
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ___count_args
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___count_args(_0, _1, _2, _3, _4, _5, _6, _7, _8, x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: __count_args
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __count_args(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: __declare_arg_0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_0(a0, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: __declare_arg_1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_1(a0, a1, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: __declare_arg_2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_2(a0, a1, a2, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: __declare_arg_3
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_3(a0, a1, a2, a3, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: __declare_arg_4
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_4(a0, a1, a2, a3, a4, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: __declare_arg_5
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_5(a0, a1, a2, a3, a4, a5, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: __declare_arg_6
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_6(a0, a1, a2, a3, a4, a5, a6, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: __declare_arg_7
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_arg_7(a0, a1, a2, a3, a4, a5, a6, a7, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: ___declare_args
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___declare_args(count, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: __declare_args
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __declare_args(count, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: ___constraints
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___constraints(count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: __constraints
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __constraints(count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: arm_smccc_1_1_smc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arm_smccc_1_1_smc(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: arm_smccc_1_0_smc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arm_smccc_1_0_smc(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: arm_smccc_smc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arm_smccc_smc(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: __arm_smccc_1_0_smc_7
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_7(a0, a1, a2, a3, a4, a5, a6, a7, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: __arm_smccc_1_0_smc_6
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_6(a0, a1, a2, a3, a4, a5, a6, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: __arm_smccc_1_0_smc_5
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_5(a0, a1, a2, a3, a4, a5, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: __arm_smccc_1_0_smc_4
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_4(a0, a1, a2, a3, a4, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: __arm_smccc_1_0_smc_3
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_3(a0, a1, a2, a3, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: __arm_smccc_1_0_smc_2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_2(a0, a1, a2, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: __arm_smccc_1_0_smc_1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_1(a0, a1, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: __arm_smccc_1_0_smc_0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_0(a0, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: ___arm_smccc_1_0_smc_count
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___arm_smccc_1_0_smc_count(count, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - count
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: __arm_smccc_1_0_smc_count
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __arm_smccc_1_0_smc_count(count, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: arm_smccc_1_0_smc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arm_smccc_1_0_smc(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: arm_smccc_smc
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arm_smccc_smc(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - calling_convention
    - ','
    - owner
    - ','
    - func_num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: ARM_SMCCC_CALL_VAL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMCCC_CALL_VAL(type, calling_convention, owner, func_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: ARM_SMCCC_CALL_COUNT_FID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMCCC_CALL_COUNT_FID(owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: ARM_SMCCC_CALL_UID_FID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMCCC_CALL_UID_FID(owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: ARM_SMCCC_REVISION_FID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/smccc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMCCC_REVISION_FID(owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: arch_monitor_get_capabilities
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t arch_monitor_get_capabilities(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: GITS_TYPER_DEVICE_ID_BITS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GITS_TYPER_DEVICE_ID_BITS(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: GITS_TYPER_EVENT_ID_BITS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GITS_TYPER_EVENT_ID_BITS(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: GITS_TYPER_ITT_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GITS_TYPER_ITT_SIZE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: GITS_BASER_ENTRY_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GITS_BASER_ENTRY_SIZE(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - base_ptr
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: gicv3_its_make_hwdom_madt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long gicv3_its_make_hwdom_madt(const struct domain *d,\n
      \                                                     void *base_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: gicv3_its_deny_access
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gicv3_its_deny_access(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: gicv3_its_host_has_its
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gicv3_its_host_has_its(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: vgic_v3_its_count
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vgic_v3_its_count(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lpi
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: gicv3_do_LPI
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void gicv3_do_LPI(unsigned int lpi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rdist_base
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: gicv3_lpi_init_rdist
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_init_rdist(void __iomem * rdist_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - host_lpi_bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: gicv3_lpi_init_host_lpis
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: gicv3_its_init
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gicv3_its_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - address
    - redist_id
    argTypes:
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: gicv3_set_redist_address
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void gicv3_set_redist_address(paddr_t address,\n                                            unsigned
      int redist_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: vgic_v3_its_init_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vgic_v3_its_init_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: vgic_v3_its_free_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vgic_v3_its_free_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - gic
    - fdt
    argTypes:
    - struct domain*
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: gicv3_its_make_hwdom_dt_nodes
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gicv3_its_make_hwdom_dt_nodes(const struct domain *d,\n                                                const
      struct dt_device_node *gic,\n                                                void
      *fdt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: fix_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/fixmap.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fix_to_virt(slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/include/asm/fixmap.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - vaddr
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: virt_to_fix
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/fixmap.h
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int virt_to_fix(vaddr_t vaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: vcpu_event_delivery_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vcpu_event_delivery_is_enabled(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vgic_vcpu_pending_irq
      Src: /src/xen/xen/arch/arm/include/asm/event.h:26,1
    - Dst: vcpu_info
      Src: /src/xen/xen/arch/arm/include/asm/event.h:29,1
    - Dst: vgic_evtchn_irq_pending
      Src: /src/xen/xen/arch/arm/include/asm/event.h:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: local_events_need_delivery_nomask
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/event.h
    functionUses: 1
    functionsReached:
    - vgic_vcpu_pending_irq
    - vcpu_info
    - vgic_evtchn_irq_pending
    linkageType: ''
    returnType: int
    signature: int local_events_need_delivery_nomask(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_event_delivery_is_enabled
      Src: /src/xen/xen/arch/arm/include/asm/event.h:37,1
    - Dst: local_events_need_delivery_nomask
      Src: /src/xen/xen/arch/arm/include/asm/event.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: local_events_need_delivery
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/event.h
    functionUses: 4
    functionsReached:
    - vcpu_event_delivery_is_enabled
    - local_events_need_delivery_nomask
    linkageType: ''
    returnType: int
    signature: int local_events_need_delivery(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/include/asm/event.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: local_event_delivery_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/event.h
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    linkageType: ''
    returnType: void
    signature: void local_event_delivery_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: arch_get_virq_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum virq_type
    signature: enum virq_type arch_get_virq_type(unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: dev_iommu_fwspec_get
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/iommu_fwspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct iommu_fwspec
    signature: struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - fwspec
    argTypes:
    - struct device*
    - struct iommu_fwspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: dev_iommu_fwspec_set
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/iommu_fwspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dev_iommu_fwspec_set(struct device *dev,\n                                        struct
      iommu_fwspec *fwspec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: read_cntpct_enforce_ordering
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_cntpct_enforce_ordering(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: read_cntpct_enforce_ordering
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_cntpct_enforce_ordering(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_workaround_858921
      Src: /src/xen/xen/arch/arm/include/asm/time.h:38,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/time.h:39,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/time.h:50,1
    - Dst: READ_SYSREG64::READ_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/time.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: read_cntpct_stable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/time.h
    functionUses: 0
    functionsReached:
    - READ_SYSREG64::READ_SYSREG64
    - check_workaround_858921
    - READ_SYSREG64
    linkageType: ''
    returnType: cycles_t
    signature: cycles_t read_cntpct_stable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/time.h:60,1
    - Dst: read_cntpct_stable
      Src: /src/xen/xen/arch/arm/include/asm/time.h:61,1
    - Dst: read_cntpct_enforce_ordering
      Src: /src/xen/xen/arch/arm/include/asm/time.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: get_cycles
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/time.h
    functionUses: 7
    functionsReached:
    - read_cntpct_stable
    - read_cntpct_enforce_ordering
    - isb
    linkageType: ''
    returnType: cycles_t
    signature: cycles_t get_cycles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - base
    argTypes:
    - pr_t*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: pr_set_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pr_set_base(pr_t *pr, paddr_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pr
    - limit
    argTypes:
    - pr_t*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: pr_set_limit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pr_set_limit(pr_t *pr, paddr_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pr
    argTypes:
    - pr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: pr_get_base
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t pr_get_base(const pr_t *pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pr
    argTypes:
    - pr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pr_get_limit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t pr_get_limit(const pr_t *pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pr
    argTypes:
    - pr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: region_is_valid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool region_is_valid(const pr_t *pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pri
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: GIC_PRI_TO_GUEST
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GIC_PRI_TO_GUEST(pri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: espi_idx_to_intid
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:315,1
    - Dst: gic_number_espis
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: gic_is_valid_espi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 0
    functionsReached:
    - espi_idx_to_intid
    - gic_number_espis
    linkageType: ''
    returnType: bool
    signature: bool gic_is_valid_espi(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: gic_is_valid_espi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gic_is_valid_espi(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_number_lines
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:326,1
    - Dst: gic_is_valid_espi
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: gic_is_valid_line
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 4
    functionsReached:
    - gic_is_valid_espi
    - gic_number_lines
    linkageType: ''
    returnType: bool
    signature: bool gic_is_valid_line(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gic_is_valid_line
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: gic_is_spi
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 4
    functionsReached:
    - gic_is_valid_line
    linkageType: ''
    returnType: bool
    signature: bool gic_is_spi(unsigned int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: gic_get_nr_lrs
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gic_get_nr_lrs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:446,1
    - Dst: test_bit
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:446,1
    - Dst: set_active_state
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - irqd
    - state
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: gic_set_active_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 5
    functionsReached:
    - ASSERT
    - test_bit
    - set_active_state
    linkageType: ''
    returnType: void
    signature: void gic_set_active_state(struct irq_desc *irqd, bool state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_pending_state
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irqd
    - state
    argTypes:
    - struct irq_desc*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: gic_set_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 4
    functionsReached:
    - set_pending_state
    linkageType: ''
    returnType: void
    signature: void gic_set_pending_state(struct irq_desc *irqd, bool state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_pending_state
      Src: /src/xen/xen/arch/arm/include/asm/gic.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irqd
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: gic_read_pending_state
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/gic.h
    functionUses: 1
    functionsReached:
    - read_pending_state
    linkageType: ''
    returnType: bool
    signature: bool gic_read_pending_state(struct irq_desc *irqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attr
    - ','
    - mt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: _MAIR0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MAIR0(attr, mt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attr
    - ','
    - mt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: _MAIR1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _MAIR1(attr, mt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: PAGE_AI_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_AI_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: PAGE_XN_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_XN_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: PAGE_RO_MASK
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_RO_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dp
    - ','
    - sp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: copy_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_page(dp, sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: scrub_page_hot
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scrub_page_hot(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/include/asm/page.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: read_dcache_line_bytes
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 2
    functionsReached:
    - READ_SYSREG
    linkageType: ''
    returnType: size_t
    signature: size_t read_dcache_line_bytes(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/page.h:177,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:179,1
    - Dst: asm_inline
      Src: /src/xen/xen/arch/arm/include/asm/page.h:195,1
    - Dst: __clean_and_invalidate_dcache_one
      Src: /src/xen/xen/arch/arm/include/asm/page.h:196,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 201
    functionName: invalidate_dcache_va_range
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 11
    functionsReached:
    - ASSERT
    - __clean_and_invalidate_dcache_one
    - asm_inline
    - dsb
    linkageType: ''
    returnType: int
    signature: int invalidate_dcache_va_range(const void *p, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/page.h:212,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:214,1
    - Dst: asm_inline
      Src: /src/xen/xen/arch/arm/include/asm/page.h:220,1
    - Dst: __clean_dcache_one
      Src: /src/xen/xen/arch/arm/include/asm/page.h:220,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: clean_dcache_va_range
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 9
    functionsReached:
    - ASSERT
    - __clean_dcache_one
    - asm_inline
    - dsb
    linkageType: ''
    returnType: int
    signature: int clean_dcache_va_range(const void *p, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/page.h:236,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:238,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/page.h:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: clean_and_invalidate_dcache_va_range
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 11
    functionsReached:
    - ASSERT
    - dsb
    linkageType: ''
    returnType: int
    signature: "int clean_and_invalidate_dcache_va_range\n    (const void *p, unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: clean_dcache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clean_dcache(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: clean_and_invalidate_dcache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clean_and_invalidate_dcache(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __va_to_par
      Src: /src/xen/xen/arch/arm/include/asm/page.h:301,1
    - Dst: dump_hyp_walk
      Src: /src/xen/xen/arch/arm/include/asm/page.h:305,1
    - Dst: panic_PAR
      Src: /src/xen/xen/arch/arm/include/asm/page.h:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - va
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: va_to_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 1
    functionsReached:
    - dump_hyp_walk
    - panic_PAR
    - __va_to_par
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t va_to_par(vaddr_t va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gva_to_ipa_par
      Src: /src/xen/xen/arch/arm/include/asm/page.h:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - va
    - paddr
    - flags
    argTypes:
    - vaddr_t
    - paddr_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: gva_to_ipa
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/page.h
    functionUses: 2
    functionsReached:
    - gva_to_ipa_par
    linkageType: ''
    returnType: int
    signature: int gva_to_ipa(vaddr_t va, paddr_t *paddr, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_maddr(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
    functionUses: 9
    functionsReached:
    - _p
    linkageType: ''
    returnType: void
    signature: void *maddr_to_virt(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:39,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:39,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:41,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:41,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: virt_to_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
    functionUses: 5
    functionsReached:
    - virt_to_mfn
    - mfn_to_page
    - _mfn
    - mfn_valid
    - ASSERT
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *virt_to_page(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:54,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/mpu/mm.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: context_sync_mpu
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
    functionUses: 4
    functionsReached:
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void context_sync_mpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 8
    functionName: p2m_clear_root_pages
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/p2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_clear_root_pages(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 10
    functionName: p2m_tlb_flush_sync
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mpu/p2m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p2m_tlb_flush_sync(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _name
    - ','
    - _namestr
    - ','
    - _type
    - ','
    - _ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: REGISTER_TEE_MEDIATOR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TEE_MEDIATOR(_name, _namestr, _type, _ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: tee_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tee_handle_call(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/arch/arm/include/asm/tee/tee.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - tee_type
    argTypes:
    - struct domain*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: tee_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 1
    functionsReached:
    - likely
    linkageType: ''
    returnType: int
    signature: int tee_domain_init(struct domain *d, uint16_t tee_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: tee_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tee_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: tee_domain_teardown
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tee_domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: tee_get_type
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t tee_get_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: init_tee_secondary
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_tee_secondary(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: tee_free_domain_ctx
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tee_free_domain_ctx(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: OPTEE_SMC_STD_CALL_VAL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_SMC_STD_CALL_VAL(func_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: OPTEE_SMC_FAST_CALL_VAL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_SMC_FAST_CALL_VAL(func_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: OPTEE_SMC_RETURN_GET_RPC_FUNC
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_SMC_RETURN_GET_RPC_FUNC(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: OPTEE_SMC_RPC_VAL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_SMC_RPC_VAL(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: OPTEE_SMC_RETURN_IS_RPC
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_SMC_RETURN_IS_RPC(ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: is_ffa_fid
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ffa_fid(uint32_t fid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num_params
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: OPTEE_MSG_GET_ARG_SIZE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTEE_MSG_GET_ARG_SIZE(num_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: sci_domain_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sci_domain_is_enabled(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: sci_domain_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sci_domain_is_enabled(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: sci_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sci_domain_init(struct domain *d,\n                                  struct
      xen_domctl_createdomain *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: sci_domain_sanitise_config
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: sci_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sci_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sci_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sci_relinquish_resources(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: sci_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sci_handle_call(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - node
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: sci_dt_handle_node
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool sci_dt_handle_node(struct domain *d,\n                                      struct
      dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - fdt
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: sci_dt_finalize
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sci_dt_finalize(struct domain *d, void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: sci_assign_dt_device
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sci_assign_dt_device(struct domain *d,\n                                       struct
      dt_device_node *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: atomic_add
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 1
    functionsReached:
    - prefetchw
    linkageType: ''
    returnType: void
    signature: void atomic_add(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:41,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:42,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: atomic_add_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 6
    functionsReached:
    - smp_mb
    - prefetchw
    linkageType: ''
    returnType: int
    signature: int atomic_add_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: atomic_sub
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 3
    functionsReached:
    - prefetchw
    linkageType: ''
    returnType: void
    signature: void atomic_sub(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:81,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:82,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 97
    functionName: atomic_sub_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 6
    functionsReached:
    - smp_mb
    - prefetchw
    linkageType: ''
    returnType: int
    signature: int atomic_sub_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - m
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: atomic_and
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 0
    functionsReached:
    - prefetchw
    linkageType: ''
    returnType: void
    signature: void atomic_and(int m, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:121,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:122,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - v
    - old
    - new
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: atomic_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 3
    functionsReached:
    - smp_mb
    - prefetchw
    linkageType: ''
    returnType: int
    signature: int atomic_cmpxchg(atomic_t *v, int old, int new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:145,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:146,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: __atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
    functionUses: 2
    functionsReached:
    - smp_mb
    - prefetchw
    linkageType: ''
    returnType: int
    signature: int __atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:14,1
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:15,1
    - Dst: __bad_xchg
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:39,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - x
    - ptr
    - size
    argTypes:
    - unsigned long
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 45
    functionName: __xchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 0
    functionsReached:
    - smp_mb
    - __bad_xchg
    - prefetchw
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: xchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xchg(ptr,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sz
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: __CMPXCHG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __CMPXCHG_CASE(sz, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ptr
    - old
    - new
    - timeout
    - max_try
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 120
    functionName: __cmpxchg_case_8
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool __cmpxchg_case_8(volatile uint64_t *ptr,\n\t\t\t \t    uint64_t
      *old,\n\t\t\t \t    uint64_t new,\n\t\t\t \t    bool timeout,\n\t\t\t\t    unsigned
      int max_try)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:126,1
    - Dst: __cmpxchg_case_1
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:130,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:130,1
    - Dst: __cmpxchg_case_2
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:132,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:132,1
    - Dst: __cmpxchg_case_4
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:134,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:134,1
    - Dst: __bad_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:136,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - ptr
    - old
    - new
    - size
    - timeout
    - max_try
    argTypes:
    - void*
    - unsigned long*
    - unsigned long
    - int
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: __int_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 0
    functionsReached:
    - __cmpxchg_case_2
    - __cmpxchg_case_4
    - __bad_cmpxchg
    - __cmpxchg_case_1
    - timeout::timeout
    - ASSERT_UNREACHABLE
    - prefetchw
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __int_cmpxchg(volatile void *ptr, unsigned long *old,\n\t\t\t\t\tunsigned
      long new, int size,\n\t\t\t\t\tbool timeout, unsigned int max_try)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:147,1
    - Dst: __int_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:148,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:148,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:149,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: __cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 3
    functionsReached:
    - smp_mb
    - __int_cmpxchg
    - ASSERT_UNREACHABLE
    - size::size
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __cmpxchg(volatile void *ptr,\n\t\t\t\t\t
      \    unsigned long old,\n\t\t\t\t\t     unsigned long new,\n\t\t\t\t\t     int
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:173,1
    - Dst: __int_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:174,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:174,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ptr
    - old
    - new
    - size
    - max_try
    argTypes:
    - void*
    - unsigned long*
    - unsigned long
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: __cmpxchg_timeout
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 1
    functionsReached:
    - smp_mb
    - __int_cmpxchg
    - size::size
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __cmpxchg_timeout(volatile void *ptr,\n\t\t\t\t\t    unsigned
      long *old,\n\t\t\t\t\t    unsigned long new,\n\t\t\t\t\t    int size,\n\t\t\t\t\t
      \   unsigned int max_try)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:197,1
    - Dst: __cmpxchg_case_8
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:198,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - max_try
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 202
    functionName: __cmpxchg64_timeout
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 1
    functionsReached:
    - smp_mb
    - __cmpxchg_case_8
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __cmpxchg64_timeout(volatile uint64_t *ptr,\n\t\t\t\t\t
      \     uint64_t *old,\n\t\t\t\t\t      uint64_t new,\n\t\t\t\t\t      unsigned
      int max_try)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg(ptr,o,n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:214,1
    - Dst: __cmpxchg_case_8
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:215,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:216,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - old
    - new
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: cmpxchg64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
    functionUses: 1
    functionsReached:
    - smp_mb
    - ASSERT_UNREACHABLE
    - __cmpxchg_case_8
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t cmpxchg64(volatile uint64_t *ptr,\n\t\t\t\t uint64_t old,\n\t\t\t\t
      uint64_t new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - idx
    - sz
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 20
    functionName: array_index_mask_nospec
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long array_index_mask_nospec(unsigned long idx,\n                                                    unsigned
      long sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: PRINT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: PRINT_ID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_ID(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: find_first_zero_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_zero_bit(p,sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - sz
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: find_next_zero_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_zero_bit(p,sz,off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: find_first_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_bit(p,sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - sz
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: find_next_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_bit(p,sz,off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: find_first_zero_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_zero_bit(p,sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - sz
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: find_next_zero_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_zero_bit(p,sz,off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: find_first_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_bit(p,sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - sz
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: find_next_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_next_bit(p,sz,off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: local_irq_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: local_irq_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: local_save_flags
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_save_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: local_irq_save
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_save(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: local_irq_restore
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_restore(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/arm/include/asm/arm32/system.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: local_irq_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 36
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_irq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: local_fiq_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_fiq_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: local_fiq_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_fiq_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: local_abort_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_abort_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: local_abort_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_abort_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/arm/include/asm/arm32/system.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: local_fiq_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/system.h
    functionUses: 0
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_fiq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: arch_mfns_in_directmap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: arch_setup_page_tables
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_setup_page_tables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - tlbop
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: TLB_HELPER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLB_HELPER(name, tlbop, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - coproc
    - ','
    - opc1
    - ','
    - crn
    - ','
    - crm
    - ','
    - opc2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: __CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __CP32(r, coproc, opc1, crn, crm, opc2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - r1
    - ','
    - r2
    - ','
    - coproc
    - ','
    - opc
    - ','
    - crm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: __CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __CP64(r1, r2, coproc, opc, crm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CP32(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CP64(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: LOAD_CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_CP32(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: STORE_CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_CP32(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: LOAD_CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_CP64(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - r
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: STORE_CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_CP64(r, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: CMD_CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_CP32(name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: WRITE_SYSREG_ASM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_ASM(v, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: READ_CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_CP32(name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - v
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: WRITE_CP32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CP32(v, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: READ_CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_CP64(name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - v
    - ','
    - name
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: WRITE_CP64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CP64(v, name...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: READ_SYSREG32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG32(R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - V
    - ','
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: WRITE_SYSREG32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG32(V, R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: READ_SYSREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG64(R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - V
    - ','
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: WRITE_SYSREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG64(V, R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: READ_SYSREG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG(R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - V
    - ','
    - R
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: WRITE_SYSREG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG(V, R...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: ICH_LR_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICH_LR_REG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: ICH_LRC_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICH_LRC_REG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: READ_SYSREG_LR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG_LR(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: WRITE_SYSREG_LR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_LR(v, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - insn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: insn_is_branch_imm
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/insn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool insn_is_branch_imm(uint32_t insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch32_get_branch_offset
      Src: /src/xen/xen/arch/arm/include/asm/arm32/insn.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - insn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: insn_get_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/insn.h
    functionUses: 1
    functionsReached:
    - aarch32_get_branch_offset
    linkageType: ''
    returnType: int32_t
    signature: int32_t insn_get_branch_offset(uint32_t insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch32_set_branch_offset
      Src: /src/xen/xen/arch/arm/include/asm/arm32/insn.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - insn
    - offset
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: insn_set_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/insn.h
    functionUses: 1
    functionsReached:
    - aarch32_set_branch_offset
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t insn_set_branch_offset(uint32_t insn, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u8
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: __raw_writeb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writeb(u8 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u16
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: __raw_writew
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writew(u16 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: __raw_writel
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writel(u32 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: __raw_readb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: u8 __raw_readb(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: __raw_readw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: u16 __raw_readw(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: __raw_readl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 __raw_readl(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: __iormb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __iormb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: __iowmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __iowmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: readb_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: readw_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: readl_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/include/asm/arm32/io.h:91,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/arch/arm/include/asm/arm32/io.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: readq_relaxed_non_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: u64
    signature: u64 readq_relaxed_non_atomic(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: writeb_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: writew_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: writel_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/include/asm/arm32/io.h:105,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/arch/arm/include/asm/arm32/io.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: writeq_relaxed_non_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 3
    functionsReached:
    - writel_relaxed
    linkageType: ''
    returnType: void
    signature: void writeq_relaxed_non_atomic(u64 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: readb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: readw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: readl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: writeb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: writew
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: writel
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/io.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: __invalidate_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __invalidate_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: __clean_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clean_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: __clean_and_invalidate_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clean_and_invalidate_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:28,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: invalidate_icache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 6
    functionsReached:
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:44,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: invalidate_icache_local
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached:
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void invalidate_icache_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:52,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:53,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:54,1
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:55,1
    - Dst: WRITE_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - va
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: __va_to_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - WRITE_CP64
    - isb
    - READ_CP64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __va_to_par(vaddr_t va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:64,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:66,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:68,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:69,1
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:70,1
    - Dst: WRITE_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - va
    - flags
    argTypes:
    - vaddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: gva_to_ma_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - WRITE_CP64
    - isb
    - READ_CP64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gva_to_ma_par(vaddr_t va, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:77,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:79,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:81,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:82,1
    - Dst: READ_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:83,1
    - Dst: WRITE_CP64
      Src: /src/xen/xen/arch/arm/include/asm/arm32/page.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - va
    - flags
    argTypes:
    - vaddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: gva_to_ipa_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - WRITE_CP64
    - isb
    - READ_CP64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: clear_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm32/page.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: atomic_add
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_add(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: atomic_add_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 6
    functionsReached:
    - smp_mb
    linkageType: ''
    returnType: int
    signature: int atomic_add_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: atomic_sub
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_sub(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: atomic_sub_return
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 6
    functionsReached:
    - smp_mb
    linkageType: ''
    returnType: int
    signature: int atomic_sub_return(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: atomic_and
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void atomic_and(int m, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:113,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - old
    - new
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 128
    functionName: atomic_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 3
    functionsReached:
    - smp_mb
    linkageType: ''
    returnType: int
    signature: int atomic_cmpxchg(atomic_t *v, int old, int new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:134,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - v
    - a
    - u
    argTypes:
    - atomic_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: __atomic_add_unless
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
    functionUses: 2
    functionsReached:
    - atomic_cmpxchg
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int __atomic_add_unless(atomic_t *v, int a, int u)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __bad_xchg
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:50,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - x
    - ptr
    - size
    argTypes:
    - unsigned long
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 56
    functionName: __xchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 0
    functionsReached:
    - smp_mb
    - __bad_xchg
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: xchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 65
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xchg(ptr,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - w
    - ','
    - sz
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 99
    functionName: __CMPXCHG_CASE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __CMPXCHG_CASE(w, sz, name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cmpxchg_case_1
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:111,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:111,1
    - Dst: __cmpxchg_case_2
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:113,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:113,1
    - Dst: __cmpxchg_case_4
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:115,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:115,1
    - Dst: __cmpxchg_case_8
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:117,1
    - Dst: timeout::timeout
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:117,1
    - Dst: __bad_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:119,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - ptr
    - old
    - new
    - size
    - timeout
    - max_try
    argTypes:
    - void*
    - unsigned long*
    - unsigned long
    - int
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: __int_cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 2
    functionsReached:
    - __cmpxchg_case_2
    - __cmpxchg_case_4
    - __bad_cmpxchg
    - __cmpxchg_case_1
    - __cmpxchg_case_8
    - timeout::timeout
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __int_cmpxchg(volatile void *ptr, unsigned long *old,\n\t\t\t\t\tunsigned
      long new, int size,\n\t\t\t\t\tbool timeout, unsigned int max_try)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:130,1
    - Dst: __int_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:131,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:131,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:132,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - old
    - new
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: __cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 3
    functionsReached:
    - smp_mb
    - __int_cmpxchg
    - ASSERT_UNREACHABLE
    - size::size
    linkageType: ''
    returnType: always_inline unsigned long
    signature: "always_inline unsigned long __cmpxchg(volatile void *ptr,\n\t\t\t\t\t
      \    unsigned long old,\n\t\t\t\t\t     unsigned long new,\n\t\t\t\t\t     int
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:156,1
    - Dst: __int_cmpxchg
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:157,1
    - Dst: size::size
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:157,1
    - Dst: smp_mb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - ptr
    - old
    - new
    - size
    - max_try
    argTypes:
    - void*
    - unsigned long*
    - unsigned long
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 161
    functionName: __cmpxchg_timeout
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 1
    functionsReached:
    - smp_mb
    - __int_cmpxchg
    - size::size
    linkageType: ''
    returnType: always_inline
    signature: "always_inline __cmpxchg_timeout(volatile void *ptr,\n\t\t\t\t\t    unsigned
      long *old,\n\t\t\t\t\t    unsigned long new,\n\t\t\t\t\t    int size,\n\t\t\t\t\t
      \   unsigned int max_try)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: cmpxchg
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: cmpxchg64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchg64(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - old
    - ','
    - new
    - ','
    - max_try
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: __cmpxchg64_timeout
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __cmpxchg64_timeout(ptr, old, new, max_try)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: EFIERR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFIERR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: EFIERR_OEM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFIERR_OEM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: BREAKPOINT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BREAKPOINT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Value
    - ','
    - Adjustment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: ALIGN_VARIABLE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_VARIABLE(Value ,Adjustment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: EFI_SIGNATURE_16
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_16(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: EFI_SIGNATURE_32
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_32(A,B,C,D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - ','
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: EFI_SIGNATURE_64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIGNATURE_64(A,B,C,D,E,F,G,H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: RUNTIME_CODE
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUNTIME_CODE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: BEGIN_RUNTIME_DATA
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BEGIN_RUNTIME_DATA()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: END_RUNTIME_DATA
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END_RUNTIME_DATA()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - InitFunction
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: EFI_DRIVER_ENTRY_POINT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_DRIVER_ENTRY_POINT(InitFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _if
    - ','
    - type
    - ','
    - name
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: LOAD_INTERNAL_DRIVER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_INTERNAL_DRIVER(_if, type, name, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: INTERFACE_DECL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERFACE_DECL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: INTERFACE_DECL
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERFACE_DECL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: csdb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/nospec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: csdb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csdb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/nospec.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - sz
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: array_index_mask_nospec
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/nospec.h
    functionUses: 0
    functionsReached:
    - csdb
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long array_index_mask_nospec(unsigned long idx,\n                                                    unsigned
      long sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sve_vl
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: sve_decode_vl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sve_decode_vl(unsigned int sve_vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sve_vl_bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: sve_encode_vl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sve_encode_vl(unsigned int sve_vl_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: is_sve_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sve_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: is_sve_domain
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sve_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: get_sys_vl_len
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_sys_vl_len(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - op0
    - ','
    - op1
    - ','
    - crn
    - ','
    - crm
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: HSR_SYSREG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG(op0,op1,crn,crm,op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HSR_SYSREG_DBGBVRn_EL1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG_DBGBVRn_EL1(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: HSR_SYSREG_DBGBCRn_EL1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG_DBGBCRn_EL1(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: HSR_SYSREG_DBGWVRn_EL1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG_DBGWVRn_EL1(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: HSR_SYSREG_DBGWCRn_EL1
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG_DBGWCRn_EL1(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - REG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 75
    functionName: HSR_SYSREG_DBG_CASES
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HSR_SYSREG_DBG_CASES(REG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PRINT
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - string
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: PRINT_ID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_ID(string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: find_first_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/bitops.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_bit(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: find_first_zero_bit
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: find_first_zero_bit(addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: local_fiq_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_fiq_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: local_fiq_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_fiq_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: local_irq_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: local_irq_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: local_abort_disable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_abort_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: local_abort_enable
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_abort_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: local_save_flags
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_save_flags(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: local_irq_save
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_save(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: local_irq_restore
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_restore(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/arm/include/asm/arm64/system.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: local_irq_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 36
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_irq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_save_flags
      Src: /src/xen/xen/arch/arm/include/asm/arm64/system.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: local_fiq_is_enabled
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/system.h
    functionUses: 0
    functionsReached:
    - local_save_flags
    linkageType: ''
    returnType: int
    signature: int local_fiq_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: arch_mfns_in_directmap
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - tlbop
    - ','
    - sh
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: TLB_HELPER
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLB_HELPER(name, tlbop, sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - tlbop
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: TLB_HELPER_VA
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/flushtlb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLB_HELPER_VA(name, tlbop)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - config
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: FTR_VISIBLE_IF_IS_ENABLED
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTR_VISIBLE_IF_IS_ENABLED(config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - features
    - field
    - width
    argTypes:
    - u64
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: cpuid_feature_extract_signed_field_width
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpuid_feature_extract_signed_field_width(u64 features, int field,
      int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_feature_extract_signed_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - features
    - field
    argTypes:
    - u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: cpuid_feature_extract_signed_field
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - cpuid_feature_extract_signed_field_width
    linkageType: ''
    returnType: int
    signature: int cpuid_feature_extract_signed_field(u64 features, int field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - features
    - field
    - width
    argTypes:
    - u64
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: cpuid_feature_extract_unsigned_field_width
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpuid_feature_extract_unsigned_field_width(u64 features,
      int field, int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_feature_extract_unsigned_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - features
    - field
    argTypes:
    - u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: cpuid_feature_extract_unsigned_field
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - cpuid_feature_extract_unsigned_field_width
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpuid_feature_extract_unsigned_field(u64 features, int
      field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ftrp
    argTypes:
    - struct arm64_ftr_bits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: arm64_ftr_mask
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - GENMASK
    linkageType: ''
    returnType: u64
    signature: u64 arm64_ftr_mask(const struct arm64_ftr_bits *ftrp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_feature_extract_signed_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:82,1
    - Dst: cpuid_feature_extract_unsigned_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - features
    - field
    - width
    - sign
    argTypes:
    - u64
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: cpuid_feature_extract_field_width
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - cpuid_feature_extract_signed_field_width
    - cpuid_feature_extract_unsigned_field_width
    linkageType: ''
    returnType: int
    signature: int cpuid_feature_extract_field_width(u64 features, int field, int
      width, bool sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_feature_extract_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - features
    - field
    - sign
    argTypes:
    - u64
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: cpuid_feature_extract_field
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - cpuid_feature_extract_field_width
    linkageType: ''
    returnType: int
    signature: int cpuid_feature_extract_field(u64 features, int field, bool sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpuid_feature_extract_field_width
      Src: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ftrp
    - val
    argTypes:
    - struct arm64_ftr_bits*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: arm64_ftr_value
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    functionUses: 0
    functionsReached:
    - cpuid_feature_extract_field_width
    linkageType: ''
    returnType: s64
    signature: s64 arm64_ftr_value(const struct arm64_ftr_bits *ftrp, u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: __LR0_EL2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LR0_EL2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: __LR8_EL2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __LR8_EL2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: __AP0Rx_EL2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AP0Rx_EL2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: __AP1Rx_EL2
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AP1Rx_EL2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: WRITE_SYSREG_ASM
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_ASM(v, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: WRITE_SYSREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG64(v, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: READ_SYSREG64
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG64(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: READ_SYSREG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: WRITE_SYSREG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG(v, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: ICH_LR_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ICH_LR_REG(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: WRITE_SYSREG_LR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_SYSREG_LR(v, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: READ_SYSREG_LR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_SYSREG_LR(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n64
    - ','
    - n32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: __DECL_REG
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG(n64, n32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - abbr
    - ','
    - mask
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: __AARCH64_INSN_FUNCS
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AARCH64_INSN_FUNCS(abbr, mask, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_is_branch_imm
      Src: /src/xen/xen/arch/arm/include/asm/arm64/insn.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - insn
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: insn_is_branch_imm
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    functionUses: 2
    functionsReached:
    - aarch64_insn_is_branch_imm
    linkageType: ''
    returnType: bool
    signature: bool insn_is_branch_imm(u32 insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_get_branch_offset
      Src: /src/xen/xen/arch/arm/include/asm/arm64/insn.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - insn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: insn_get_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    functionUses: 1
    functionsReached:
    - aarch64_get_branch_offset
    linkageType: ''
    returnType: int32_t
    signature: int32_t insn_get_branch_offset(uint32_t insn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_set_branch_offset
      Src: /src/xen/xen/arch/arm/include/asm/arm64/insn.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - insn
    - offset
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: insn_set_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    functionUses: 1
    functionsReached:
    - aarch64_set_branch_offset
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t insn_set_branch_offset(uint32_t insn, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u8
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: __raw_writeb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writeb(u8 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u16
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: __raw_writew
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writew(u16 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: __raw_writel
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writel(u32 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - addr
    argTypes:
    - u64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: __raw_writeq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __raw_writeq(u64 val, volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: __raw_readb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: u8 __raw_readb(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: __raw_readw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: u16 __raw_readw(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: __raw_readl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 __raw_readl(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: __raw_readq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 __raw_readq(const volatile void __iomem *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: __iormb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __iormb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: __iowmb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __iowmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: mmiowb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mmiowb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: readb_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: readw_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: readl_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: readq_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq_relaxed(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: readq_relaxed_non_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq_relaxed_non_atomic(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: writeb_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: writew_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: writel_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: writeq_relaxed
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq_relaxed(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: writeq_relaxed_non_atomic
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq_relaxed_non_atomic(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: readb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: readw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: readl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: readq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readq(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: writeb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeb(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: writew
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writew(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: writel
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writel(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: writeq
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: writeq(v,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/include/asm/arm64/io.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: emulate_read
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int emulate_read(u64 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/include/asm/arm64/io.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: emulate_write
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void emulate_write(u64 addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: inb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: inw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: inl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: outb
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: outb(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: outw
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: outw(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: outl
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/io.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: outl(v, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: __invalidate_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __invalidate_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: __clean_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clean_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: __clean_and_invalidate_dcache_one
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clean_and_invalidate_dcache_one(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:25,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: invalidate_icache
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 6
    functionsReached:
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void invalidate_icache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:33,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: invalidate_icache_local
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached:
    - dsb
    - isb
    linkageType: ''
    returnType: void
    signature: void invalidate_icache_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:40,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:43,1
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:44,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - va
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: __va_to_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached:
    - read_sysreg_par
    - WRITE_SYSREG64
    - isb
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __va_to_par(vaddr_t va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:52,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:58,1
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:59,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - va
    - flags
    argTypes:
    - vaddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: gva_to_ma_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached:
    - read_sysreg_par
    - WRITE_SYSREG64
    - isb
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gva_to_ma_par(vaddr_t va, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:66,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:72,1
    - Dst: read_sysreg_par
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:73,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/include/asm/arm64/page.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - va
    - flags
    argTypes:
    - vaddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: gva_to_ipa_par
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/arm64/page.h
    functionUses: 1
    functionsReached:
    - read_sysreg_par
    - WRITE_SYSREG64
    - isb
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t gva_to_ipa_par(vaddr_t va, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: SLOT0
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT0(slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: XEN_NR_ENTRIES
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_NR_ENTRIES(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: FIXMAP_ADDR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIXMAP_ADDR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: TEMPORARY_AREA_ADDR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPORARY_AREA_ADDR(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: TEMPORARY_FIXMAP_ADDR
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMPORARY_FIXMAP_ADDR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: virt_to_maddr
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_maddr(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: is_xen_heap_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_page(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: is_xen_heap_mfn
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xen_heap_mfn(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:52,1
    - Dst: is_xen_heap_mfn
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:52,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:52,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 9
    functionsReached:
    - ASSERT
    - maddr_to_mfn
    - is_xen_heap_mfn
    - mfn_to_maddr
    linkageType: ''
    returnType: void
    signature: void *maddr_to_virt(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:72,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:72,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:72,1
    - Dst: maddr_to_directmapoff
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: maddr_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 9
    functionsReached:
    - ASSERT
    - maddr_to_mfn
    - maddr_to_directmapoff
    - mfn_to_pdx
    linkageType: ''
    returnType: void
    signature: void *maddr_to_virt(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:86,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:87,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/include/asm/mmu/mm.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: virt_to_page
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/mmu/mm.h
    functionUses: 5
    functionsReached:
    - ASSERT
    - mfn_to_pdx
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *virt_to_page(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: EEMI_FID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/platforms/xilinx-zynqmp-eemi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EEMI_FID(fid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: IPI_MAILBOX_FID
    functionSourceFile: /src/xen/xen/arch/arm/include/asm/platforms/xilinx-zynqmp-eemi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IPI_MAILBOX_FID(fid)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct sci_mediator_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 30
    functionName: sci_register
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sci_register(const struct sci_mediator_ops *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/firmware/sci.c:34,1
    - Dst: handle_call
      Src: /src/xen/xen/arch/arm/firmware/sci.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: sci_handle_call
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - handle_call
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool sci_handle_call(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_init
      Src: /src/xen/xen/arch/arm/firmware/sci.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: sci_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - domain_init
    linkageType: ''
    returnType: int
    signature: int sci_domain_init(struct domain *d, struct xen_domctl_createdomain
      *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_sanitise_config
      Src: /src/xen/xen/arch/arm/firmware/sci.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: sci_domain_sanitise_config
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - domain_sanitise_config
    linkageType: ''
    returnType: int
    signature: int sci_domain_sanitise_config(struct xen_domctl_createdomain *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_destroy
      Src: /src/xen/xen/arch/arm/firmware/sci.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: sci_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - domain_destroy
    linkageType: ''
    returnType: void
    signature: void sci_domain_destroy(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: relinquish_resources
      Src: /src/xen/xen/arch/arm/firmware/sci.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: sci_relinquish_resources
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 0
    functionsReached:
    - relinquish_resources
    linkageType: ''
    returnType: int
    signature: int sci_relinquish_resources(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom0_dt_handle_node
      Src: /src/xen/xen/arch/arm/firmware/sci.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - node
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: sci_dt_handle_node
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - dom0_dt_handle_node
    linkageType: ''
    returnType: bool
    signature: bool sci_dt_handle_node(struct domain *d, struct dt_device_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom0_dt_finalize
      Src: /src/xen/xen/arch/arm/firmware/sci.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - fdt
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: sci_dt_finalize
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - dom0_dt_finalize
    linkageType: ''
    returnType: int
    signature: int sci_dt_finalize(struct domain *d, void *fdt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_parse_phandle_with_args
      Src: /src/xen/xen/arch/arm/firmware/sci.c:112,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/sci.c:116,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/firmware/sci.c:117,1
    - Dst: assign_dt_device
      Src: /src/xen/xen/arch/arm/firmware/sci.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 127
    functionName: sci_assign_dt_device
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 2
    functionsReached:
    - assign_dt_device
    - dt_parse_phandle_with_args
    - dt_node_full_name
    - printk
    linkageType: ''
    returnType: int
    signature: int sci_assign_dt_device(struct domain *d, struct dt_device_node *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/arch/arm/firmware/sci.c:137,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/sci.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: sci_init
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 1
    functionsReached:
    - device_init
    - printk
    linkageType: ''
    returnType: int
    signature: int sci_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/arch/arm/firmware/sci.c:137,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/sci.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/arch/arm/firmware/sci.c
    functionUses: 0
    functionsReached:
    - device_init
    - printk
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node(dt_host, np)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: scmi_is_valid_smc_id
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool scmi_is_valid_smc_id(uint32_t fid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:52,1
    - Dst: scmi_is_valid_smc_id
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:55,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:61,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:66,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:67,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:68,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:69,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:70,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:71,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:72,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:73,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:76,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:77,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:78,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 82
    functionName: scmi_handle_smc
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - scmi_is_valid_smc_id
    - set_user_reg
    - get_user_reg
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: bool
    signature: bool scmi_handle_smc(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: scmi_smc_domain_sanitise_config
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scmi_smc_domain_sanitise_config(struct xen_domctl_createdomain
      *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:102,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:116,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 126
    functionName: scmi_smc_domain_init
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - is_hardware_domain
    - printk
    linkageType: ''
    returnType: int
    signature: "int scmi_smc_domain_init(struct domain *d,\n                                struct
      xen_domctl_createdomain *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: scmi_smc_domain_destroy
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void scmi_smc_domain_destroy(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:152,1
    - Dst: DT_MATCH_PATH
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:156,1
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:161,1
    - Dst: sci_domain_is_enabled
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:161,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:163,1
    - Dst: dt_match_node
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:171,1
    - Dst: sci_domain_is_enabled
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:171,1
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:179,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:183,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:183,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:187,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:191,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:191,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:192,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:194,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - d
    - node
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 202
    functionName: scmi_smc_dt_handle_node
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - DT_MATCH_PATH
    - sci_domain_is_enabled
    - be32_to_cpu
    - dt_device_get_address
    - DT_MATCH_COMPATIBLE
    - dt_dprintk
    - dt_match_node
    - dt_get_property
    - dt_find_node_by_phandle
    - paddr_to_pfn
    - printk
    - iomem_permit_access
    linkageType: ''
    returnType: bool
    signature: "bool scmi_smc_dt_handle_node(struct domain *d,\n                                    struct
      dt_device_node *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: scmi_check_smccc_ver
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int scmi_check_smccc_ver(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:231,1
    - Dst: scmi_check_smccc_ver
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:235,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:239,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:242,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:243,1
    - Dst: sci_register
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:247,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:250,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/firmware/scmi-smc.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 258
    functionName: scmi_dom0_init
    functionSourceFile: /src/xen/xen/arch/arm/firmware/scmi-smc.c
    functionUses: 0
    functionsReached:
    - scmi_check_smccc_ver
    - dt_property_read_u32
    - dt_node_full_name
    - sci_register
    - printk
    linkageType: ''
    returnType: int
    signature: int scmi_dom0_init(struct dt_device_node *dev, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - insn
    - offset
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: branch_insn_encode_immediate
    functionSourceFile: /src/xen/xen/arch/arm/arm32/insn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t branch_insn_encode_immediate(uint32_t insn, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm32/insn.c:62,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/arm32/insn.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - insn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: aarch32_get_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/arm32/insn.c
    functionUses: 1
    functionsReached:
    - GENMASK
    - BIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t aarch32_get_branch_offset(uint32_t insn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/insn.c:77,1
    - Dst: branch_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm32/insn.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - insn
    - offset
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: aarch32_set_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/arm32/insn.c
    functionUses: 1
    functionsReached:
    - printk
    - branch_insn_encode_immediate
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t aarch32_set_branch_offset(uint32_t insn, int32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vcpu
    - regs
    argTypes:
    - struct vcpu*
    - struct vcpu_guest_core_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: vcpu_regs_hyp_to_user
    functionSourceFile: /src/xen/xen/arch/arm/arm32/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vcpu_regs_hyp_to_user(const struct vcpu *vcpu,\n                           struct
      vcpu_guest_core_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hyp
    - ','
    - user
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: C
    functionSourceFile: /src/xen/xen/arch/arm/arm32/domain.c
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(hyp,user)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vcpu
    - regs
    argTypes:
    - struct vcpu*
    - struct vcpu_guest_core_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: vcpu_regs_user_to_hyp
    functionSourceFile: /src/xen/xen/arch/arm/arm32/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vcpu_regs_user_to_hyp(struct vcpu *vcpu,\n                           const
      struct vcpu_guest_core_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hyp
    - ','
    - user
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: C
    functionSourceFile: /src/xen/xen/arch/arm/arm32/domain.c
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(hyp,user)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: caxx_vcpu_initialise
    functionSourceFile: /src/xen/xen/arch/arm/arm32/proc-caxx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void caxx_vcpu_initialise(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: platform_smp_init
      Src: /src/xen/xen/arch/arm/arm32/smpboot.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: arch_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/arm32/smpboot.c
    functionUses: 1
    functionsReached:
    - platform_smp_init
    linkageType: ''
    returnType: int
    signature: int arch_smp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - dn
    argTypes:
    - int
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 17
    functionName: arch_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/arm32/smpboot.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_cpu_init(int cpu, struct dt_device_node *dn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: platform_cpu_up
      Src: /src/xen/xen/arch/arm/arm32/smpboot.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: arch_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/arm32/smpboot.c
    functionUses: 1
    functionsReached:
    - platform_cpu_up
    linkageType: ''
    returnType: int
    signature: int arch_cpu_up(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: arch_cpu_up_finish
    functionSourceFile: /src/xen/xen/arch/arm/arm32/smpboot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_cpu_up_finish(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: subarch_do_domctl
    functionSourceFile: /src/xen/xen/arch/arm/arm32/domctl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long subarch_do_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \              XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: BLANK
    functionSourceFile: /src/xen/xen/arch/arm/arm32/asm-offsets.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLANK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sym
    - ','
    - _str
    - ','
    - _mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: OFFSET
    functionSourceFile: /src/xen/xen/arch/arm/arm32/asm-offsets.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(_sym, _str, _mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:62,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:64,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:65,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:68,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:70,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:74,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:77,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:80,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:81,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:82,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:82,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:83,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm32/asm-offsets.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 86
    functionName: __dummy__
    functionSourceFile: /src/xen/xen/arch/arm/arm32/asm-offsets.c
    functionUses: 0
    functionsReached:
    - DEFINE
    - ilog2
    - BLANK
    linkageType: ''
    returnType: void
    signature: void __dummy__(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/arm32/traps.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: do_trap_reset
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 0
    functionsReached:
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void do_trap_reset(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_active_kernel_text
      Src: /src/xen/xen/arch/arm/arm32/traps.c:39,1
    - Dst: do_bug_frame
      Src: /src/xen/xen/arch/arm/arm32/traps.c:50,1
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/arm32/traps.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: do_trap_undefined_instruction
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 0
    functionsReached:
    - is_active_kernel_text
    - do_unexpected_trap
    - do_bug_frame
    linkageType: ''
    returnType: void
    signature: void do_trap_undefined_instruction(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/arm32/traps.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: do_trap_hypervisor_call
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 0
    functionsReached:
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void do_trap_hypervisor_call(struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_unexpected_trap
      Src: /src/xen/xen/arch/arm/arm32/traps.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: do_trap_prefetch_abort
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 0
    functionsReached:
    - do_unexpected_trap
    linkageType: ''
    returnType: void
    signature: void do_trap_prefetch_abort(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VABORT_GEN_BY_GUEST
      Src: /src/xen/xen/arch/arm/arm32/traps.c:80,1
    - Dst: do_trap_guest_serror
      Src: /src/xen/xen/arch/arm/arm32/traps.c:81,1
    - Dst: do_trap_hyp_sync
      Src: /src/xen/xen/arch/arm/arm32/traps.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: do_trap_data_abort
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 0
    functionsReached:
    - do_trap_guest_serror
    - VABORT_GEN_BY_GUEST
    - do_trap_hyp_sync
    linkageType: ''
    returnType: void
    signature: void do_trap_data_abort(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/arm32/traps.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - instr
    argTypes:
    - struct instr_details*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: finalize_instr_emulation
    functionSourceFile: /src/xen/xen/arch/arm/arm32/traps.c
    functionUses: 2
    functionsReached:
    - domain_crash
    linkageType: ''
    returnType: void
    signature: void finalize_instr_emulation(const struct instr_details *instr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:8,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:10,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:12,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:16,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:19,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:21,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:29,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 37
    functionName: vfp_save_state
    functionSourceFile: /src/xen/xen/arch/arm/arm32/vfp.c
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: void vfp_save_state(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:42,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:42,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:49,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:56,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:58,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:61,1
    - Dst: WRITE_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 64
    functionName: vfp_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/arm32/vfp.c
    functionUses: 1
    functionsReached:
    - WRITE_CP32
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: void vfp_restore_state(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:71,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:73,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/vfp.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: vfp_init
    functionSourceFile: /src/xen/xen/arch/arm/arm32/vfp.c
    functionUses: 0
    functionsReached:
    - printk
    - panic
    - READ_CP32
    linkageType: ''
    returnType: __init
    signature: __init vfp_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:21,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:22,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:24,1
    - Dst: livepatch_insn_len
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:26,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:31,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:47,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:75,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 77
    functionName: arch_livepatch_apply
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    - ASSERT
    - livepatch_insn_len
    - memcpy
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: "void arch_livepatch_apply(const struct livepatch_func *func,\n                          struct
      livepatch_fstate *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: arch_livepatch_verify_elf
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_verify_elf(const struct livepatch_elf *elf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: arch_livepatch_symbol_deny
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arch_livepatch_symbol_deny(const struct livepatch_elf *elf,\n
      \                               const struct livepatch_elf_sym *sym)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - type
    - dest
    argTypes:
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 150
    functionName: get_addend
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t get_addend(unsigned char type, void *dest)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - type
    - dest
    - val
    - addend
    argTypes:
    - unsigned char
    - void*
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 222
    functionName: perform_rel
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int perform_rel(unsigned char type, void *dest, uint32_t val,\n                       int32_t
      addend)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ELF32_R_SYM
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:244,1
    - Dst: ELF32_R_TYPE
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:245,1
    - Dst: ELF32_R_SYM
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:253,1
    - Dst: ELF32_R_TYPE
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:254,1
    - Dst: get_addend
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:256,1
    - Dst: perform_rel
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:287,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:291,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:296,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 4
    argNames:
    - elf
    - base
    - rela
    - use_rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 306
    functionName: arch_livepatch_perform
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached:
    - ELF32_R_TYPE
    - ELF32_R_SYM
    - get_addend
    - printk
    - perform_rel
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform(struct livepatch_elf *elf,\n                           const
      struct livepatch_elf_sec *base,\n                           const struct livepatch_elf_sec
      *rela,\n                           bool use_rela)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_livepatch_perform
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: arch_livepatch_perform_rel
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_perform
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rel(struct livepatch_elf *elf,\n                               const
      struct livepatch_elf_sec *base,\n                               const struct
      livepatch_elf_sec *rela)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_livepatch_perform
      Src: /src/xen/xen/arch/arm/arm32/livepatch.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: arch_livepatch_perform_rela
    functionSourceFile: /src/xen/xen/arch/arm/arm32/livepatch.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_perform
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rela(struct livepatch_elf *elf,\n                                const
      struct livepatch_elf_sec *base,\n                                const struct
      livepatch_elf_sec *rela)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm32/mpu/p2m.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: setup_virt_paging
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void setup_virt_paging(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm32/mpu/smpboot.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: prepare_secondary_mm
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mpu/smpboot.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int prepare_secondary_mm(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm32/mpu/smpboot.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: update_boot_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mpu/smpboot.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void update_boot_mapping(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: bitop
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitop(name, instr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 120
    functionName: testop
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testop(name, instr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prefetchw
      Src: /src/xen/xen/arch/arm/arm32/lib/bitops.c:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - mask
    - p
    - timeout
    - max_try
    argTypes:
    - uint16_t
    - uint16_t*
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 150
    functionName: int_clear_mask16
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/bitops.c
    functionUses: 0
    functionsReached:
    - prefetchw
    linkageType: ''
    returnType: always_inline
    signature: "always_inline int_clear_mask16(uint16_t mask, volatile uint16_t *p,\n
      \                                          bool timeout, unsigned int max_try)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_clear_mask16
      Src: /src/xen/xen/arch/arm/arm32/lib/bitops.c:154,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/arm32/lib/bitops.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mask
    - p
    argTypes:
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: clear_mask16
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/bitops.c
    functionUses: 3
    functionsReached:
    - ASSERT_UNREACHABLE
    - int_clear_mask16
    linkageType: ''
    returnType: void
    signature: void clear_mask16(uint16_t mask, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_clear_mask16
      Src: /src/xen/xen/arch/arm/arm32/lib/bitops.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - p
    - max_try
    argTypes:
    - uint16_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: clear_mask16_timeout
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/bitops.c
    functionUses: 1
    functionsReached:
    - int_clear_mask16
    linkageType: ''
    returnType: bool
    signature: "bool clear_mask16_timeout(uint16_t mask, volatile void *p,\n                          unsigned
      int max_try)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: W
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W(instr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - instr
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: ARM
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM(instr...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - code
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: UNWIND
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNWIND(code...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - code
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PLD
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PLD(code...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - code
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: CALGN
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALGN(code...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - instr
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: ALT_SMP
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_SMP(instr...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - instr
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: ALT_UP
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_UP(instr...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: ALT_UP_B
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_UP_B(label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - instr
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: ALT_UP
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_UP(instr...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: ALT_UP_B
    functionSourceFile: /src/xen/xen/arch/arm/arm32/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALT_UP_B(label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:26,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:26,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - base_mfn
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: setup_directmap_mappings
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mmu/mm.c
    functionUses: 1
    functionsReached:
    - panic
    - map_pages_to_xen
    - _mfn
    linkageType: ''
    returnType: void
    signature: "void setup_directmap_mappings(unsigned long base_mfn,\n                                            unsigned
      long nr_mfns)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:42,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - uint32_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: fit_xenheap_in_static_heap
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mmu/mm.c
    functionUses: 0
    functionsReached:
    - bootinfo_get_reserved_mem
    - max
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t fit_xenheap_in_static_heap(uint32_t size, paddr_t align)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:76,1
    - Dst: READ_CP32
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:80,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:83,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:87,1
    - Dst: init_pdx
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:89,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:97,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:98,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:105,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:140,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:141,1
    - Dst: fit_xenheap_in_static_heap
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:147,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:147,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:147,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:148,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:149,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:158,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:162,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:163,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:165,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:174,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:175,1
    - Dst: populate_boot_allocator
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:177,1
    - Dst: setup_directmap_mappings
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:179,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:179,1
    - Dst: setup_frametable_mappings
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:182,1
    - Dst: init_domheap_mappings
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:188,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:188,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:189,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:190,1
    - Dst: init_xenheap_pages
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:193,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:193,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:194,1
    - Dst: init_staticmem_pages
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:196,1
    - Dst: init_sharedmem_pages
      Src: /src/xen/xen/arch/arm/arm32/mmu/mm.c:197,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 198
    functionName: setup_mm
    functionSourceFile: /src/xen/xen/arch/arm/arm32/mmu/mm.c
    functionUses: 2
    functionsReached:
    - max
    - init_sharedmem_pages
    - mfn_to_maddr
    - populate_boot_allocator
    - setup_frametable_mappings
    - bootinfo_get_reserved_mem
    - setup_directmap_mappings
    - MB
    - init_staticmem_pages
    - smp_processor_id
    - printk
    - consider_modules
    - fit_xenheap_in_static_heap
    - panic
    - mfn_x
    - _mfn
    - bootinfo_get_mem
    - min
    - init_domheap_mappings
    - init_xenheap_pages
    - init_pdx
    - mfn_add
    - pfn_to_paddr
    - READ_CP32
    linkageType: ''
    returnType: void
    signature: void setup_mm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: pr_err
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pr_err(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_is_b
      Src: /src/xen/xen/arch/arm/arm64/insn.c:35,1
    - Dst: aarch64_insn_is_bl
      Src: /src/xen/xen/arch/arm/arm64/insn.c:35,1
    - Dst: aarch64_insn_is_tbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:36,1
    - Dst: aarch64_insn_is_tbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:36,1
    - Dst: aarch64_insn_is_cbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:37,1
    - Dst: aarch64_insn_is_cbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:37,1
    - Dst: aarch64_insn_is_bcond
      Src: /src/xen/xen/arch/arm/arm64/insn.c:38,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - insn
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: aarch64_insn_is_branch_imm
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 1
    functionsReached:
    - aarch64_insn_is_bl
    - aarch64_insn_is_b
    - aarch64_insn_is_tbz
    - aarch64_insn_is_cbz
    - aarch64_insn_is_cbnz
    - aarch64_insn_is_bcond
    - aarch64_insn_is_tbnz
    linkageType: ''
    returnType: bool
    signature: bool aarch64_insn_is_branch_imm(u32 insn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:49,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:53,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:57,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:61,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:65,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:69,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:73,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:78,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/insn.c:82,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - type
    - maskp
    - shiftp
    argTypes:
    - enum aarch64_insn_imm_type
    - u32*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 93
    functionName: aarch64_get_imm_shift_mask
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - BIT
    linkageType: ''
    returnType: int
    signature: "int aarch64_get_imm_shift_mask(enum aarch64_insn_imm_type type,\n\t\t\t\t\t\tu32
      *maskp, int *shiftp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_get_imm_shift_mask
      Src: /src/xen/xen/arch/arm/arm64/insn.c:116,1
    - Dst: pr_err
      Src: /src/xen/xen/arch/arm/arm64/insn.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - type
    - insn
    argTypes:
    - enum aarch64_insn_imm_type
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: aarch64_insn_decode_immediate
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - aarch64_get_imm_shift_mask
    - pr_err
    linkageType: ''
    returnType: u64
    signature: u64 aarch64_insn_decode_immediate(enum aarch64_insn_imm_type type,
      u32 insn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_get_imm_shift_mask
      Src: /src/xen/xen/arch/arm/arm64/insn.c:146,1
    - Dst: pr_err
      Src: /src/xen/xen/arch/arm/arm64/insn.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - type
    - insn
    - imm
    argTypes:
    - enum aarch64_insn_imm_type
    - u32
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 158
    functionName: aarch64_insn_encode_immediate
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - aarch64_get_imm_shift_mask
    - pr_err
    linkageType: ''
    returnType: u32
    signature: "u32 aarch64_insn_encode_immediate(enum aarch64_insn_imm_type type,\n\t\t\t\t
      \ u32 insn, u64 imm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pr_err
      Src: /src/xen/xen/arch/arm/arm64/insn.c:166,1
    - Dst: pr_err
      Src: /src/xen/xen/arch/arm/arm64/insn.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pc
    - addr
    - range
    argTypes:
    - unsigned long
    - unsigned long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 178
    functionName: branch_imm_common
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - pr_err
    linkageType: ''
    returnType: long
    signature: "long branch_imm_common(unsigned long pc, unsigned long addr,\n\t\t\t\t
      \    long range)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: branch_imm_common
      Src: /src/xen/xen/arch/arm/arm64/insn.c:191,1
    - Dst: aarch64_insn_get_bl_value
      Src: /src/xen/xen/arch/arm/arm64/insn.c:197,1
    - Dst: aarch64_insn_get_b_value
      Src: /src/xen/xen/arch/arm/arm64/insn.c:200,1
    - Dst: pr_err
      Src: /src/xen/xen/arch/arm/arm64/insn.c:203,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pc
    - addr
    - type
    argTypes:
    - unsigned long
    - unsigned long
    - enum aarch64_insn_branch_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 209
    functionName: aarch64_insn_gen_branch_imm
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - aarch64_insn_get_bl_value
    - aarch64_insn_get_b_value
    - aarch64_insn_encode_immediate
    - pr_err
    - branch_imm_common
    linkageType: ''
    returnType: u32
    signature: "u32 aarch64_insn_gen_branch_imm(unsigned long pc, unsigned long addr,\n\t\t\t\t\t
      \ enum aarch64_insn_branch_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_get_hint_value
      Src: /src/xen/xen/arch/arm/arm64/insn.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - enum aarch64_insn_hint_op
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: aarch64_insn_gen_hint
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 0
    functionsReached:
    - aarch64_insn_get_hint_value
    linkageType: ''
    returnType: u32
    signature: u32 aarch64_insn_gen_hint(enum aarch64_insn_hint_op op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_gen_hint
      Src: /src/xen/xen/arch/arm/arm64/insn.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: aarch64_insn_gen_nop
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 1
    functionsReached:
    - aarch64_insn_gen_hint
    linkageType: ''
    returnType: u32
    signature: u32 aarch64_insn_gen_nop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_is_b
      Src: /src/xen/xen/arch/arm/arm64/insn.c:230,1
    - Dst: aarch64_insn_is_bl
      Src: /src/xen/xen/arch/arm/arm64/insn.c:230,1
    - Dst: aarch64_insn_decode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:231,1
    - Dst: aarch64_insn_is_cbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:235,1
    - Dst: aarch64_insn_is_cbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:235,1
    - Dst: aarch64_insn_is_bcond
      Src: /src/xen/xen/arch/arm/arm64/insn.c:236,1
    - Dst: aarch64_insn_decode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:237,1
    - Dst: aarch64_insn_is_tbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:241,1
    - Dst: aarch64_insn_is_tbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:241,1
    - Dst: aarch64_insn_decode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:242,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/arm64/insn.c:247,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - insn
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: aarch64_get_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 1
    functionsReached:
    - BUG
    - aarch64_insn_decode_immediate
    - aarch64_insn_is_b
    - aarch64_insn_is_tbz
    - aarch64_insn_is_cbz
    - aarch64_insn_is_cbnz
    - aarch64_insn_is_bcond
    - aarch64_insn_is_bl
    - aarch64_insn_is_tbnz
    linkageType: ''
    returnType: int32_t
    signature: int32_t aarch64_get_branch_offset(uint32_t insn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aarch64_insn_is_b
      Src: /src/xen/xen/arch/arm/arm64/insn.c:256,1
    - Dst: aarch64_insn_is_bl
      Src: /src/xen/xen/arch/arm/arm64/insn.c:256,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:257,1
    - Dst: aarch64_insn_is_cbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:260,1
    - Dst: aarch64_insn_is_cbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:260,1
    - Dst: aarch64_insn_is_bcond
      Src: /src/xen/xen/arch/arm/arm64/insn.c:261,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:262,1
    - Dst: aarch64_insn_is_tbz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:265,1
    - Dst: aarch64_insn_is_tbnz
      Src: /src/xen/xen/arch/arm/arm64/insn.c:265,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/insn.c:266,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/arm64/insn.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 8
    argCount: 2
    argNames:
    - insn
    - offset
    argTypes:
    - uint32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: aarch64_set_branch_offset
    functionSourceFile: /src/xen/xen/arch/arm/arm64/insn.c
    functionUses: 1
    functionsReached:
    - BUG
    - aarch64_insn_is_bl
    - aarch64_insn_is_b
    - aarch64_insn_is_tbz
    - aarch64_insn_is_cbz
    - aarch64_insn_is_cbnz
    - aarch64_insn_is_bcond
    - aarch64_insn_encode_immediate
    - aarch64_insn_is_tbnz
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t aarch64_set_branch_offset(uint32_t insn, int32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/arm64/domain.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vcpu
    - regs
    argTypes:
    - struct vcpu*
    - struct vcpu_guest_core_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: vcpu_regs_hyp_to_user
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domain.c
    functionUses: 1
    functionsReached:
    - is_32bit_domain
    linkageType: ''
    returnType: void
    signature: "void vcpu_regs_hyp_to_user(const struct vcpu *vcpu,\n                           struct
      vcpu_guest_core_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hyp
    - ','
    - user
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: C
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domain.c
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(hyp,user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/arm64/domain.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vcpu
    - regs
    argTypes:
    - struct vcpu*
    - struct vcpu_guest_core_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: vcpu_regs_user_to_hyp
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domain.c
    functionUses: 1
    functionsReached:
    - is_32bit_domain
    linkageType: ''
    returnType: void
    signature: "void vcpu_regs_user_to_hyp(struct vcpu *vcpu,\n                           const
      struct vcpu_guest_core_regs *regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hyp
    - ','
    - user
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: C
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domain.c
    functionUses: 323
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(hyp,user)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - SIGNED
    - ','
    - VISIBLE
    - ','
    - STRICT
    - ','
    - TYPE
    - ','
    - SHIFT
    - ','
    - WIDTH
    - ','
    - SAFE_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: __ARM64_FTR_BITS
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ARM64_FTR_BITS(SIGNED, VISIBLE, STRICT, TYPE, SHIFT, WIDTH, SAFE_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - VISIBLE
    - ','
    - STRICT
    - ','
    - TYPE
    - ','
    - SHIFT
    - ','
    - WIDTH
    - ','
    - SAFE_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: ARM64_FTR_BITS
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM64_FTR_BITS(VISIBLE, STRICT, TYPE, SHIFT, WIDTH, SAFE_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - VISIBLE
    - ','
    - STRICT
    - ','
    - TYPE
    - ','
    - SHIFT
    - ','
    - WIDTH
    - ','
    - SAFE_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: S_ARM64_FTR_BITS
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ARM64_FTR_BITS(VISIBLE, STRICT, TYPE, SHIFT, WIDTH, SAFE_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm64_ftr_mask
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ftrp
    - reg
    - ftr_val
    argTypes:
    - struct arm64_ftr_bits*
    - s64
    - s64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 495
    functionName: arm64_ftr_set_value
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached:
    - arm64_ftr_mask
    linkageType: ''
    returnType: u64
    signature: "u64 arm64_ftr_set_value(const struct arm64_ftr_bits *ftrp, s64 reg,\n\t\t\t
      \      s64 ftr_val)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:507,1
    - Dst: cur::cur
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:507,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:514,1
    - Dst: cur::cur
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:514,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - ftrp
    - new
    - cur
    argTypes:
    - struct arm64_ftr_bits*
    - s64
    - s64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 521
    functionName: arm64_ftr_safe_value
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached:
    - cur::cur
    - min
    - max
    - BUG
    linkageType: ''
    returnType: s64
    signature: "s64 arm64_ftr_safe_value(const struct arm64_ftr_bits *ftrp, s64 new,\n\t\t\t\ts64
      cur)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: arm64_ftr_value
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:535,1
    - Dst: arm64_ftr_value
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:536,1
    - Dst: arm64_ftr_set_value
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:544,1
    - Dst: arm64_ftr_safe_value
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:545,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:549,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:552,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:557,1
    - Dst: add_taint
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - cur_reg
    - new_reg
    - reg_name
    - ftrp
    argTypes:
    - u64*
    - u64
    - char*
    - struct arm64_ftr_bits*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 561
    functionName: sanitize_reg
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 0
    functionsReached:
    - add_taint
    - arm64_ftr_set_value
    - arm64_ftr_safe_value
    - printk
    - arm64_ftr_value
    linkageType: ''
    returnType: void
    signature: "void sanitize_reg(u64 *cur_reg, u64 new_reg, const char *reg_name,\n\t\t\t\t\t\tconst
      struct arm64_ftr_bits *ftrp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:587,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:588,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:590,1
    - Dst: SANITIZE_RAZ_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:591,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:593,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:594,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:595,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:597,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:598,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:599,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:601,1
    - Dst: SANITIZE_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:604,1
    - Dst: SANITIZE_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:615,1
    - Dst: SANITIZE_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:617,1
    - Dst: cpu_feature64_has_el0_32
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:619,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:621,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:622,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:623,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:625,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:626,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:628,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:629,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:630,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:631,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:632,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:633,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:635,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:636,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:637,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:638,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:639,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:640,1
    - Dst: SANITIZE_ID_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:641,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:643,1
    - Dst: SANITIZE_GENERIC_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:644,1
    - Dst: SANITIZE_REG
      Src: /src/xen/xen/arch/arm/arm64/cpufeature.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - new
    argTypes:
    - struct cpuinfo_arm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 649
    functionName: update_system_features
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 1
    functionsReached:
    - SANITIZE_ID_REG
    - SANITIZE_REG
    - SANITIZE_GENERIC_REG
    - SANITIZE_RAZ_REG
    - cpu_feature64_has_el0_32
    linkageType: ''
    returnType: void
    signature: void update_system_features(const struct cpuinfo_arm *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - field
    - ','
    - num
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: SANITIZE_REG
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SANITIZE_REG(field, num, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - field
    - ','
    - num
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: SANITIZE_ID_REG
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SANITIZE_ID_REG(field, num, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - field
    - ','
    - num
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 582
    functionName: SANITIZE_RAZ_REG
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SANITIZE_RAZ_REG(field, num, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - field
    - ','
    - num
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 586
    functionName: SANITIZE_GENERIC_REG
    functionSourceFile: /src/xen/xen/arch/arm/arm64/cpufeature.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SANITIZE_GENERIC_REG(field, num, reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:26,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:30,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:33,1
    - Dst: writeq
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:37,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:37,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:39,1
    - Dst: sev
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 44
    functionName: smp_spin_table_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 0
    functionsReached:
    - iounmap
    - __pa
    - sev
    - writeq
    - ioremap_nocache
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: int smp_spin_table_cpu_up(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u64
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:48,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cpu
    - dn
    argTypes:
    - int
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: smp_spin_table_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 0
    functionsReached:
    - printk
    - dt_property_read_u64
    linkageType: ''
    returnType: void
    signature: void smp_spin_table_init(int cpu, struct dt_device_node *dn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: smp_psci_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int smp_psci_init(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: arch_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_smp_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:79,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:82,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:86,1
    - Dst: smp_spin_table_init
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:87,1
    - Dst: strcmp
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:88,1
    - Dst: smp_psci_init
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:89,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - cpu
    - dn
    argTypes:
    - int
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: dt_arch_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 0
    functionsReached:
    - smp_psci_init
    - smp_spin_table_init
    - dt_get_property
    - printk
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dt_arch_cpu_init(int cpu, struct dt_device_node *dn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_arch_cpu_init
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:102,1
    - Dst: smp_psci_init
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cpu
    - dn
    argTypes:
    - int
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: arch_cpu_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 4
    functionsReached:
    - smp_psci_init
    - dt_arch_cpu_init
    linkageType: ''
    returnType: int
    signature: int arch_cpu_init(int cpu, struct dt_device_node *dn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: update_boot_mapping
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:115,1
    - Dst: prepare_cpu
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:117,1
    - Dst: update_boot_mapping
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: arch_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 1
    functionsReached:
    - prepare_cpu
    - update_boot_mapping
    linkageType: ''
    returnType: int
    signature: int arch_cpu_up(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_boot_mapping
      Src: /src/xen/xen/arch/arm/arm64/smpboot.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: arch_cpu_up_finish
    functionSourceFile: /src/xen/xen/arch/arm/arm64/smpboot.c
    functionUses: 1
    functionsReached:
    - update_boot_mapping
    linkageType: ''
    returnType: void
    signature: void arch_cpu_up_finish(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_tot_pages
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:22,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:29,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:30,1
    - Dst: vcpu_switch_to_aarch64_mode
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - d
    - type
    argTypes:
    - struct domain*
    - enum domain_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: switch_mode
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domctl.c
    functionUses: 2
    functionsReached:
    - for_each_vcpu
    - vcpu_switch_to_aarch64_mode
    - is_64bit_domain
    - domain_tot_pages
    linkageType: ''
    returnType: long
    signature: long switch_mode(struct domain *d, enum domain_type type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:44,1
    - Dst: switch_mode
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:46,1
    - Dst: switch_mode
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - address_size
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: set_address_size
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domctl.c
    functionUses: 0
    functionsReached:
    - is_sve_domain
    - switch_mode
    linkageType: ''
    returnType: long
    signature: long set_address_size(struct domain *d, uint32_t address_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_address_size
      Src: /src/xen/xen/arch/arm/arm64/domctl.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: subarch_do_domctl
    functionSourceFile: /src/xen/xen/arch/arm/arm64/domctl.c
    functionUses: 1
    functionsReached:
    - set_address_size
    linkageType: ''
    returnType: long
    signature: "long subarch_do_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \                      XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/arm64/sve.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vl
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: vl_to_zcr
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: register_t
    signature: register_t vl_to_zcr(unsigned int vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vl
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 54
    functionName: sve_zreg_ctx_size
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sve_zreg_ctx_size(unsigned int vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vl
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: sve_ffrreg_ctx_size
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sve_ffrreg_ctx_size(unsigned int vl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_default_cptr_flags
      Src: /src/xen/xen/arch/arm/arm64/sve.c:64,1
    - Dst: vl_to_zcr
      Src: /src/xen/xen/arch/arm/arm64/sve.c:65,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:69,1
    - Dst: HCPTR_CP
      Src: /src/xen/xen/arch/arm/arm64/sve.c:69,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/arm64/sve.c:70,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:76,1
    - Dst: sve_get_hw_vl
      Src: /src/xen/xen/arch/arm/arm64/sve.c:82,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:85,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/arm64/sve.c:86,1
    - Dst: vl_to_zcr
      Src: /src/xen/xen/arch/arm/arm64/sve.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 89
    functionName: compute_max_zcr
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 1
    functionsReached:
    - get_default_cptr_flags
    - sve_get_hw_vl
    - WRITE_SYSREG
    - isb
    - vl_to_zcr
    - HCPTR_CP
    linkageType: ''
    returnType: register_t
    signature: register_t compute_max_zcr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: get_sys_vl_len
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_sys_vl_len(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sve_decode_vl
      Src: /src/xen/xen/arch/arm/arm64/sve.c:104,1
    - Dst: _xzalloc
      Src: /src/xen/xen/arch/arm/arm64/sve.c:105,1
    - Dst: sve_zreg_ctx_size
      Src: /src/xen/xen/arch/arm/arm64/sve.c:105,1
    - Dst: sve_ffrreg_ctx_size
      Src: /src/xen/xen/arch/arm/arm64/sve.c:106,1
    - Dst: sve_zreg_ctx_size
      Src: /src/xen/xen/arch/arm/arm64/sve.c:117,1
    - Dst: vl_to_zcr
      Src: /src/xen/xen/arch/arm/arm64/sve.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 122
    functionName: sve_context_init
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 1
    functionsReached:
    - sve_decode_vl
    - _xzalloc
    - sve_zreg_ctx_size
    - sve_ffrreg_ctx_size
    - vl_to_zcr
    linkageType: ''
    returnType: int
    signature: int sve_context_init(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sve_decode_vl
      Src: /src/xen/xen/arch/arm/arm64/sve.c:131,1
    - Dst: sve_zreg_ctx_size
      Src: /src/xen/xen/arch/arm/arm64/sve.c:138,1
    - Dst: XFREE
      Src: /src/xen/xen/arch/arm/arm64/sve.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: sve_context_free
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 1
    functionsReached:
    - sve_decode_vl
    - XFREE
    - sve_zreg_ctx_size
    linkageType: ''
    returnType: void
    signature: void sve_context_free(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:145,1
    - Dst: sve_save_ctx
      Src: /src/xen/xen/arch/arm/arm64/sve.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: sve_save_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 0
    functionsReached:
    - READ_SYSREG
    - sve_save_ctx
    linkageType: ''
    returnType: void
    signature: void sve_save_state(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:152,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/sve.c:153,1
    - Dst: sve_load_ctx
      Src: /src/xen/xen/arch/arm/arm64/sve.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: sve_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 0
    functionsReached:
    - sve_load_ctx
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void sve_restore_state(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sys_vl_len
      Src: /src/xen/xen/arch/arm/arm64/sve.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - val
    - out
    argTypes:
    - int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: sve_domctl_vl_param
    functionSourceFile: /src/xen/xen/arch/arm/arm64/sve.c
    functionUses: 2
    functionsReached:
    - get_sys_vl_len
    linkageType: ''
    returnType: bool
    signature: bool sve_domctl_vl_param(int val, unsigned int *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: BLANK
    functionSourceFile: /src/xen/xen/arch/arm/arm64/asm-offsets.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLANK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _sym
    - ','
    - _str
    - ','
    - _mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: OFFSET
    functionSourceFile: /src/xen/xen/arch/arm/arm64/asm-offsets.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(_sym, _str, _mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:48,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:50,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:52,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:55,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:58,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:71,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:74,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:75,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:76,1
    - Dst: ilog2
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:76,1
    - Dst: DEFINE
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:77,1
    - Dst: BLANK
      Src: /src/xen/xen/arch/arm/arm64/asm-offsets.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 80
    functionName: __dummy__
    functionSourceFile: /src/xen/xen/arch/arm/arm64/asm-offsets.c
    functionUses: 0
    functionsReached:
    - DEFINE
    - ilog2
    - BLANK
    linkageType: ''
    returnType: void
    signature: void __dummy__(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: TVM_REG
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vsysreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TVM_REG(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: GENERATE_CASE
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vsysreg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_CASE(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - reg
    - ','
    - field
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: GENERATE_TID3_INFO
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vsysreg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENERATE_TID3_INFO(reg, field, offset)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:97,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:98,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:100,1
    - Dst: p2m_set_way_flush
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:112,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:120,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:121,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:122,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:123,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:124,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:125,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:126,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:127,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:128,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:129,1
    - Dst: GENERATE_CASE
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:130,1
    - Dst: handle_ro_raz
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:138,1
    - Dst: handle_wo_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:149,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:151,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:153,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:171,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:192,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:206,1
    - Dst: HSR_SYSREG_DBG_CASES
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:208,1
    - Dst: HSR_SYSREG_DBG_CASES
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:209,1
    - Dst: HSR_SYSREG_DBG_CASES
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:210,1
    - Dst: HSR_SYSREG_DBG_CASES
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:211,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:212,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:236,1
    - Dst: regs_mode_is_user
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:239,1
    - Dst: handle_ro_raz
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:240,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:242,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:259,1
    - Dst: vtimer_emulate
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:269,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:270,1
    - Dst: vgic_emulate
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:282,1
    - Dst: inject_undef64_exception
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:283,1
    - Dst: handle_raz_wi
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:298,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:306,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:307,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:308,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:309,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:310,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:311,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:312,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:313,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:314,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:315,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:316,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:317,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:318,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:319,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:320,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:321,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:322,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:323,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:324,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:325,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:326,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:327,1
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:333,1
    - Dst: GENMASK
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:336,1
    - Dst: cpuid_feature_extract_unsigned_field_width
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:339,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:346,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:350,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:351,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:352,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:353,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:354,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:355,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:356,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:357,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:358,1
    - Dst: GENERATE_TID3_INFO
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:359,1
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:369,1
    - Dst: handle_ro_read_val
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:372,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:385,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:386,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:387,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:388,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:389,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:390,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:391,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:392,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:393,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:394,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:395,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:396,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:397,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:398,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:399,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:400,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:401,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:402,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:403,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:404,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:405,1
    - Dst: HSR_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:406,1
    - Dst: handle_ro_raz
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:407,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:432,1
    - Dst: gdprintk
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:440,1
    - Dst: inject_undef_exception
      Src: /src/xen/xen/arch/arm/arm64/vsysreg.c:443,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 156
    argCount: 2
    argNames:
    - regs
    - hsr
    argTypes:
    - struct cpu_user_regs*
    - union hsr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 444
    functionName: do_sysreg
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vsysreg.c
    functionUses: 1
    functionsReached:
    - vgic_emulate
    - handle_raz_wi
    - p2m_set_way_flush
    - handle_ro_raz
    - GENERATE_CASE
    - inject_undef64_exception
    - gdprintk
    - GENMASK
    - vtimer_emulate
    - regs_mode_is_user
    - is_sve_domain
    - HSR_SYSREG_DBG_CASES
    - handle_wo_wi
    - set_user_reg
    - GENERATE_TID3_INFO
    - HSR_SYSREG
    - handle_ro_read_val
    - inject_undef_exception
    - cpuid_feature_extract_unsigned_field_width
    linkageType: ''
    returnType: void
    signature: "void do_sysreg(struct cpu_user_regs *regs,\n               const union
      hsr hsr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/traps.c:40,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/traps.c:41,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/arch/arm/arm64/traps.c:44,1
    - Dst: show_execution_state
      Src: /src/xen/xen/arch/arm/arm64/traps.c:45,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/traps.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - regs
    - reason
    argTypes:
    - struct cpu_user_regs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: do_bad_mode
    functionSourceFile: /src/xen/xen/arch/arm/arm64/traps.c
    functionUses: 0
    functionsReached:
    - panic
    - show_execution_state
    - local_irq_disable
    - printk
    linkageType: ''
    returnType: void
    signature: void do_bad_mode(struct cpu_user_regs *regs, int reason)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/arch/arm/arm64/traps.c:51,1
    - Dst: domain_crash
      Src: /src/xen/xen/arch/arm/arm64/traps.c:80,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/arm64/traps.c:85,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/arm64/traps.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - instr
    argTypes:
    - struct instr_details*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 98
    functionName: finalize_instr_emulation
    functionSourceFile: /src/xen/xen/arch/arm/arm64/traps.c
    functionUses: 2
    functionsReached:
    - set_user_reg
    - guest_cpu_user_regs
    - domain_crash
    - get_user_reg
    linkageType: ''
    returnType: void
    signature: void finalize_instr_emulation(const struct instr_details *instr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fpregs
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 26
    functionName: save_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vfp.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void save_state(uint64_t *fpregs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fpregs
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: restore_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vfp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void restore_state(const uint64_t *fpregs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:54,1
    - Dst: sve_save_state
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:55,1
    - Dst: save_state
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:57,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:59,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:60,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:61,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: vfp_save_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vfp.c
    functionUses: 1
    functionsReached:
    - READ_SYSREG
    - is_32bit_domain
    - is_sve_domain
    - sve_save_state
    - save_state
    linkageType: ''
    returnType: void
    signature: void vfp_save_state(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_sve_domain
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:70,1
    - Dst: sve_restore_state
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:71,1
    - Dst: restore_state
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:73,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:75,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:76,1
    - Dst: is_32bit_domain
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:77,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/arm64/vfp.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: vfp_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/arm64/vfp.c
    functionUses: 1
    functionsReached:
    - sve_restore_state
    - is_32bit_domain
    - restore_state
    - is_sve_domain
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void vfp_restore_state(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:25,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:26,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:28,1
    - Dst: livepatch_insn_len
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:30,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:35,1
    - Dst: aarch64_insn_gen_branch_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:38,1
    - Dst: aarch64_insn_gen_nop
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:42,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:45,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:62,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 64
    functionName: arch_livepatch_apply
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - aarch64_insn_gen_nop
    - BUILD_BUG_ON
    - ASSERT
    - livepatch_insn_len
    - aarch64_insn_gen_branch_imm
    - memcpy
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: "void arch_livepatch_apply(const struct livepatch_func *func,\n                          struct
      livepatch_fstate *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: arch_livepatch_verify_elf
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_livepatch_verify_elf(const struct livepatch_elf *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: arch_livepatch_symbol_deny
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arch_livepatch_symbol_deny(const struct livepatch_elf *elf,\n
      \                               const struct livepatch_elf_sym *sym)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - reloc_op
    - place
    - val
    argTypes:
    - enum aarch64_reloc_op
    - void*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 118
    functionName: do_reloc
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - dprintk
    linkageType: ''
    returnType: u64
    signature: u64 do_reloc(enum aarch64_reloc_op reloc_op, void *place, u64 val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: do_reloc
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:122,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - op
    - place
    - val
    - len
    argTypes:
    - enum aarch64_reloc_op
    - void*
    - u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 148
    functionName: reloc_data
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - do_reloc
    - dprintk
    linkageType: ''
    returnType: int
    signature: int reloc_data(enum aarch64_reloc_op op, void *place, u64 val, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: do_reloc
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:162,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - op
    - dest
    - val
    - lsb
    - imm_type
    argTypes:
    - enum aarch64_reloc_op
    - void*
    - u64
    - int
    - enum aarch64_insn_movw_imm_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 198
    functionName: reloc_insn_movw
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - aarch64_insn_encode_immediate
    - do_reloc
    linkageType: ''
    returnType: int
    signature: "int reloc_insn_movw(enum aarch64_reloc_op op, void *dest, u64 val,\n
      \                          int lsb, enum aarch64_insn_movw_imm_type imm_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_reloc
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:208,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:212,1
    - Dst: aarch64_insn_encode_immediate
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - op
    - dest
    - val
    - lsb
    - len
    - imm_type
    argTypes:
    - enum aarch64_reloc_op
    - void*
    - u64
    - int
    - int
    - enum aarch64_insn_imm_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 232
    functionName: reloc_insn_imm
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - aarch64_insn_encode_immediate
    - do_reloc
    - BIT
    linkageType: ''
    returnType: int
    signature: "int reloc_insn_imm(enum aarch64_reloc_op op, void *dest, u64 val,\n
      \                         int lsb, int len, enum aarch64_insn_imm_type imm_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: arch_livepatch_perform_rel
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rel(struct livepatch_elf *elf,\n                               const
      struct livepatch_elf_sec *base,\n                               const struct
      livepatch_elf_sec *rela)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: ELF64_R_SYM
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:250,1
    - Dst: ELF64_R_TYPE
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:289,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:296,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:300,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:304,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:311,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:315,1
    - Dst: reloc_data
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:319,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:328,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:337,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:346,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:353,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:358,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:363,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:368,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:374,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:379,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:385,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:390,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:396,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:401,1
    - Dst: reloc_insn_movw
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:408,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:414,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:422,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:431,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:437,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:443,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:449,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:455,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:460,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:465,1
    - Dst: reloc_insn_imm
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:471,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:476,1
    - Dst: ELF64_R_TYPE
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:477,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/arm64/livepatch.c:491,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 155
    argCount: 3
    argNames:
    - elf
    - base
    - rela
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 241
    functionDepth: 4
    functionLinenumber: 241
    functionLinenumberEnd: 494
    functionName: arch_livepatch_perform_rela
    functionSourceFile: /src/xen/xen/arch/arm/arm64/livepatch.c
    functionUses: 0
    functionsReached:
    - ELF64_R_TYPE
    - reloc_data
    - ELF64_R_SYM
    - printk
    - reloc_insn_imm
    - reloc_insn_movw
    linkageType: ''
    returnType: int
    signature: "int arch_livepatch_perform_rela(struct livepatch_elf *elf,\n                                const
      struct livepatch_elf_sec *base,\n                                const struct
      livepatch_elf_sec *rela)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/mpu/p2m.c:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: setup_virt_paging
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mpu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void setup_virt_paging(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/mpu/smpboot.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: prepare_secondary_mm
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mpu/smpboot.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int prepare_secondary_mm(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/mpu/smpboot.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: update_boot_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mpu/smpboot.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void update_boot_mapping(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: bitop
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitop(name, instr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - instr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 114
    functionName: testop
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testop(name, instr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - mask
    - p
    - timeout
    - max_try
    argTypes:
    - uint16_t
    - uint16_t*
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: int_clear_mask16
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/bitops.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: "always_inline int_clear_mask16(uint16_t mask, volatile uint16_t *p,\n
      \                                          bool timeout, unsigned int max_try)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int_clear_mask16
      Src: /src/xen/xen/arch/arm/arm64/lib/bitops.c:146,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/arm64/lib/bitops.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - mask
    - p
    argTypes:
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: clear_mask16
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/bitops.c
    functionUses: 5
    functionsReached:
    - ASSERT_UNREACHABLE
    - int_clear_mask16
    linkageType: ''
    returnType: void
    signature: void clear_mask16(uint16_t mask, volatile void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_clear_mask16
      Src: /src/xen/xen/arch/arm/arm64/lib/bitops.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - p
    - max_try
    argTypes:
    - uint16_t
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: clear_mask16_timeout
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/bitops.c
    functionUses: 1
    functionsReached:
    - int_clear_mask16
    linkageType: ''
    returnType: bool
    signature: "bool clear_mask16_timeout(uint16_t mask, volatile void *p,\n                          unsigned
      int max_try)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: CPU_LE
    functionSourceFile: /src/xen/xen/arch/arm/arm64/lib/assembler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPU_LE(x...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:32,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:34,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:41,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:42,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:43,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:46,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:50,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:50,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:54,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:57,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:57,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:61,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:64,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:64,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 71
    functionName: prepare_boot_identity_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - mfn_to_xen_entry
    - write_pte
    - virt_to_mfn
    - panic
    - clear_page
    - virt_to_maddr
    - DECLARE_OFFSETS
    linkageType: ''
    returnType: void
    signature: void prepare_boot_identity_mapping(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:75,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:77,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:80,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:84,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:88,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:91,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:95,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:98,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 105
    functionName: prepare_runtime_identity_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - pte_of_xenaddr
    - write_pte
    - panic
    - virt_to_maddr
    - DECLARE_OFFSETS
    linkageType: ''
    returnType: void
    signature: void prepare_runtime_identity_mapping(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prepare_boot_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:109,1
    - Dst: prepare_runtime_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: arch_setup_page_tables
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - prepare_runtime_identity_mapping
    - prepare_boot_identity_mapping
    linkageType: ''
    returnType: void
    signature: void arch_setup_page_tables(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:122,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:126,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:126,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:129,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: update_identity_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - map_pages_to_xen
    - virt_to_maddr
    - maddr_to_mfn
    - BUG_ON
    - destroy_xen_mappings
    linkageType: ''
    returnType: void
    signature: void update_identity_mapping(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: update_boot_mapping
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 2
    functionsReached:
    - update_identity_mapping
    linkageType: ''
    returnType: void
    signature: void update_boot_mapping(bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:148,1
    - Dst: update_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:153,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:156,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:160,1
    - Dst: third_table_offset
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:160,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:163,1
    - Dst: update_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ttbr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 171
    functionName: relocate_and_switch_ttbr
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - pte_of_xenaddr
    - write_pte
    - update_identity_mapping
    - third_table_offset
    - virt_to_maddr
    - fn
    linkageType: ''
    returnType: void
    signature: void relocate_and_switch_ttbr(uint64_t ttbr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:176,1
    - Dst: update_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:181,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:184,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:188,1
    - Dst: third_table_offset
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:188,1
    - Dst: fn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:191,1
    - Dst: update_identity_mapping
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ttbr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 199
    functionName: switch_ttbr
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 0
    functionsReached:
    - pte_of_xenaddr
    - write_pte
    - update_identity_mapping
    - third_table_offset
    - virt_to_maddr
    - fn
    linkageType: ''
    returnType: void
    signature: void switch_ttbr(uint64_t ttbr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:208,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:212,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:213,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:213,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:227,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:230,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:231,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:232,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:234,1
    - Dst: __mfn_to_virt
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:234,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:235,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - base_mfn
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 239
    functionName: setup_directmap_mappings
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 2
    functionsReached:
    - panic
    - mfn_x
    - _mfn
    - mfn_to_pdx
    - map_pages_to_xen
    - __mfn_to_virt
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: "void setup_directmap_mappings(unsigned long base_mfn,\n                                            unsigned
      long nr_mfns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:243,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:253,1
    - Dst: max
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:254,1
    - Dst: setup_directmap_mappings
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:256,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:256,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:257,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:261,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/arm64/mmu/mm.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 263
    functionName: setup_mm_helper
    functionSourceFile: /src/xen/xen/arch/arm/arm64/mmu/mm.c
    functionUses: 1
    functionsReached:
    - max
    - bootinfo_get_mem
    - min
    - maddr_to_mfn
    - setup_directmap_mappings
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void setup_mm_helper(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vmid
    - root_mfn
    argTypes:
    - uint16_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: generate_vttbr
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_maddr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t generate_vttbr(uint16_t vmid, mfn_t root_mfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:33,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:35,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:37,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:41,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:42,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 47
    functionName: p2m_alloc_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 3
    functionsReached:
    - spin_unlock
    - alloc_domheap_page
    - page_list_remove_head
    - spin_lock
    - printk
    - is_hardware_domain
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *p2m_alloc_page(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:51,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:52,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:55,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:56,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - d
    - pg
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: p2m_free_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - page_list_add_tail
    - spin_unlock
    - spin_lock
    - free_domheap_page
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void p2m_free_page(struct domain *d, struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: arch_get_paging_mempool_size
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:77,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:77,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:84,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:87,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:90,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:92,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:97,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:100,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:102,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:106,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - d
    - pages
    - preempted
    argTypes:
    - struct domain*
    - unsigned long
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 123
    functionName: p2m_set_allocation
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - alloc_domheap_page
    - spin_is_locked
    - page_list_remove_head
    - ASSERT
    - printk
    - free_domheap_page
    - ACCESS_ONCE
    - general_preempt_check
    linkageType: ''
    returnType: int
    signature: int p2m_set_allocation(struct domain *d, unsigned long pages, bool
      *preempted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:135,1
    - Dst: p2m_set_allocation
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:136,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:137,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: arch_set_paging_mempool_size
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_lock
    - p2m_set_allocation
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:149,1
    - Dst: p2m_set_allocation
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:152,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:155,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:158,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: p2m_teardown_allocation
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_lock
    - p2m_set_allocation
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int p2m_teardown_allocation(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:167,1
    - Dst: p2m_read_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:169,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:170,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:172,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:173,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:175,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:177,1
    - Dst: p2m_read_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: p2m_dump_info
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_read_unlock
    - BUG_ON
    - printk
    - p2m_read_lock
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_dump_info(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:188,1
    - Dst: cpus_have_const_cap
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:190,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:192,1
    - Dst: generate_vttbr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:192,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: p2m_save_state
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - WRITE_SYSREG64
    - cpus_have_const_cap
    - isb
    - READ_SYSREG
    - generate_vttbr
    linkageType: ''
    returnType: void
    signature: void p2m_save_state(struct vcpu *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:204,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:207,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:210,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:211,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:220,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:222,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:231,1
    - Dst: flush_guest_tlb_local
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 241
    functionName: p2m_restore_state
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - WRITE_SYSREG64
    - is_idle_vcpu
    - smp_processor_id
    - flush_guest_tlb_local
    - p2m_get_hostp2m
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void p2m_restore_state(struct vcpu *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:253,1
    - Dst: p2m_is_write_locked
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:253,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:259,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:264,1
    - Dst: cpus_have_const_cap
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:272,1
    - Dst: generate_vttbr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:275,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:277,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:280,1
    - Dst: flush_guest_tlb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:283,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:285,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:287,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:289,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 294
    functionName: p2m_force_tlb_flush_sync
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - flush_guest_tlb
    - WRITE_SYSREG64
    - p2m_is_write_locked
    - READ_SYSREG64
    - cpus_have_const_cap
    - ASSERT
    - isb
    - local_irq_restore
    - local_irq_save
    - generate_vttbr
    linkageType: ''
    returnType: void
    signature: void p2m_force_tlb_flush_sync(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_force_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: p2m_tlb_flush_sync
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 6
    functionsReached:
    - p2m_force_tlb_flush_sync
    linkageType: ''
    returnType: void
    signature: void p2m_tlb_flush_sync(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:319,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:319,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: p2m_get_root_pointer
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - gfn_x
    - XEN_PT_LEVEL_ORDER
    - __map_domain_page
    linkageType: ''
    returnType: lpae_t
    signature: "lpae_t *p2m_get_root_pointer(struct p2m_domain *p2m,\n                                    gfn_t
      gfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:339,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:339,1
    - Dst: radix_tree_ptr_to_int
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p2m
    - gfn
    argTypes:
    - struct p2m_domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: p2m_mem_access_radix_get
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - gfn_x
    - radix_tree_ptr_to_int
    - radix_tree_lookup
    linkageType: ''
    returnType: p2m_access_t
    signature: p2m_access_t p2m_mem_access_radix_get(struct p2m_domain *p2m, gfn_t
      gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pte
    argTypes:
    - lpae_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: p2m_is_valid
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_valid(lpae_t pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:361,1
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: p2m_is_mapping
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_is_valid
    - lpae_is_mapping
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_mapping(lpae_t pte, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:366,1
    - Dst: lpae_is_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: p2m_is_superpage
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - lpae_is_superpage
    - p2m_is_valid
    linkageType: ''
    returnType: bool
    signature: bool p2m_is_superpage(lpae_t pte, unsigned int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:400,1
    - Dst: p2m_create_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:405,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:411,1
    - Dst: p2m_is_mapping
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:412,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:415,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:417,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:418,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - p2m
    - read_only
    - level
    - table
    - offset
    argTypes:
    - struct p2m_domain*
    - bool
    - unsigned int
    - lpae_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 421
    functionName: p2m_next_level
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 5
    functionsReached:
    - p2m_is_mapping
    - p2m_create_table
    - lpae_get_mfn
    - unmap_domain_page
    - map_domain_page
    - ASSERT
    - p2m_is_valid
    linkageType: ''
    returnType: int
    signature: "int p2m_next_level(struct p2m_domain *p2m, bool read_only,\n                          unsigned
      int level, lpae_t **table,\n                          unsigned int offset)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:441,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:447,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:449,1
    - Dst: p2m_is_locked
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:449,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:450,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:463,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:463,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:466,1
    - Dst: XEN_PT_LEVEL_MASK
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:466,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:467,1
    - Dst: p2m_get_root_pointer
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:473,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:481,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:488,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:497,1
    - Dst: p2m_mem_access_radix_get
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:502,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:504,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:509,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:510,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:510,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:513,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:517,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:521,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 6
    argNames:
    - p2m
    - gfn
    - t
    - a
    - page_order
    - valid
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_type_t*
    - p2m_access_t*
    - unsigned int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 524
    functionName: p2m_get_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 8
    functionsReached:
    - lpae_get_mfn
    - p2m_get_root_pointer
    - unmap_domain_page
    - p2m_mem_access_radix_get
    - p2m_next_level
    - mfn_add
    - BUILD_BUG_ON
    - gfn_x
    - ASSERT
    - gfn_to_gaddr
    - p2m_is_valid
    - lpae_is_valid
    - DECLARE_OFFSETS
    - ASSERT_UNREACHABLE
    - XEN_PT_LEVEL_ORDER
    - p2m_is_locked
    - XEN_PT_LEVEL_MASK
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t p2m_get_entry(struct p2m_domain *p2m, gfn_t gfn,\n                    p2m_type_t
      *t, p2m_access_t *a,\n                    unsigned int *page_order,\n                    bool
      *valid)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:560,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - e
    - t
    - a
    argTypes:
    - lpae_t*
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 598
    functionName: p2m_set_permission
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - BUG
    linkageType: ''
    returnType: void
    signature: void p2m_set_permission(lpae_t *e, p2m_type_t t, p2m_access_t a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:614,1
    - Dst: p2m_set_permission
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:652,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:654,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:654,1
    - Dst: lpae_set_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - mfn
    - t
    - a
    argTypes:
    - mfn_t
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 659
    functionName: mfn_to_p2m_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - lpae_set_mfn
    - mfn_to_maddr
    - BUILD_BUG_ON
    - ASSERT
    - p2m_set_permission
    linkageType: ''
    returnType: lpae_t
    signature: lpae_t mfn_to_p2m_entry(mfn_t mfn, p2m_type_t t, p2m_access_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_p2m_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:671,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: page_to_p2m_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - mfn_to_p2m_entry
    - page_to_mfn
    linkageType: ''
    returnType: lpae_t
    signature: lpae_t page_to_p2m_table(struct page_info *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:676,1
    - Dst: clean_dcache
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pte
    - clean_pte
    argTypes:
    - lpae_t*
    - lpae_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: p2m_write_pte
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 4
    functionsReached:
    - clean_dcache
    - write_pte
    linkageType: ''
    returnType: void
    signature: void p2m_write_pte(lpae_t *p, lpae_t pte, bool clean_pte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:685,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - clean_pte
    argTypes:
    - lpae_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: p2m_remove_pte
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - memset
    - p2m_write_pte
    linkageType: ''
    returnType: void
    signature: void p2m_remove_pte(lpae_t *p, bool clean_pte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:695,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:695,1
    - Dst: p2m_alloc_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:697,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:701,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:703,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:704,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:707,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:709,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:711,1
    - Dst: page_to_p2m_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p2m
    - entry
    argTypes:
    - struct p2m_domain*
    - lpae_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 714
    functionName: p2m_create_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_write_pte
    - page_to_p2m_table
    - unmap_domain_page
    - clean_dcache_va_range
    - clear_page
    - page_list_add
    - p2m_alloc_page
    - ASSERT
    - p2m_is_valid
    - __map_domain_page
    linkageType: ''
    returnType: int
    signature: int p2m_create_table(struct p2m_domain *p2m, lpae_t *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_delete
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:726,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:726,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:730,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:730,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:731,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:735,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:736,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:737,1
    - Dst: radix_tree_int_to_ptr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p2m
    - gfn
    - a
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 743
    functionName: p2m_mem_access_radix_set
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - radix_tree_delete
    - radix_tree_replace_slot
    - radix_tree_int_to_ptr
    - gfn_x
    - radix_tree_lookup_slot
    - radix_tree_insert
    linkageType: ''
    returnType: int
    signature: "int p2m_mem_access_radix_set(struct p2m_domain *p2m, gfn_t gfn,\n
      \                                   p2m_access_t a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 753
    functionName: p2m_put_foreign_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - put_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_foreign_page(struct page_info *pg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:759,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:761,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:761,1
    - Dst: p2m_put_foreign_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:762,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:762,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:765,1
    - Dst: is_xen_heap_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:765,1
    - Dst: page_set_xenheap_gfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:766,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mfn
    - type
    argTypes:
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 767
    functionName: p2m_put_l3_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - p2m_is_ram
    - mfn_valid
    - is_xen_heap_mfn
    - ASSERT
    - page_set_xenheap_gfn
    - p2m_is_foreign
    - p2m_put_foreign_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_l3_page(mfn_t mfn, p2m_type_t type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:780,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:783,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:783,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:785,1
    - Dst: p2m_put_foreign_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - mfn
    - type
    argTypes:
    - mfn_t
    - p2m_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 789
    functionName: p2m_put_l2_superpage
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - mfn_valid
    - ASSERT
    - p2m_is_foreign
    - p2m_put_foreign_page
    linkageType: ''
    returnType: void
    signature: void p2m_put_l2_superpage(mfn_t mfn, p2m_type_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:794,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:796,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:796,1
    - Dst: p2m_put_l2_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:806,1
    - Dst: p2m_put_l3_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pte
    - level
    argTypes:
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: p2m_put_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - lpae_get_mfn
    - p2m_put_l3_page
    - ASSERT
    - p2m_put_l2_superpage
    - p2m_is_valid
    linkageType: ''
    returnType: void
    signature: void p2m_put_page(const lpae_t pte, unsigned int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:821,1
    - Dst: p2m_is_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:824,1
    - Dst: p2m_is_ram
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:833,1
    - Dst: domain_has_ioreq_server
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:834,1
    - Dst: ioreq_request_mapcache_invalidate
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:835,1
    - Dst: p2m_put_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:840,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:845,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:845,1
    - Dst: p2m_free_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:847,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:849,1
    - Dst: p2m_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:857,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:859,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:860,1
    - Dst: mfn_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:860,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:862,1
    - Dst: page_list_del
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:864,1
    - Dst: p2m_free_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - p2m
    - entry
    - level
    argTypes:
    - struct p2m_domain*
    - lpae_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 866
    functionName: p2m_free_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 3
    functionsReached:
    - lpae_get_mfn
    - unmap_domain_page
    - map_domain_page
    - p2m_tlb_flush_sync
    - p2m_is_superpage
    - mfn_to_page
    - p2m_free_page
    - p2m_is_ram
    - ioreq_request_mapcache_invalidate
    - mfn_valid
    - p2m_put_page
    - ASSERT
    - p2m_free_entry
    - p2m_is_valid
    - domain_has_ioreq_server
    - page_list_del
    linkageType: ''
    returnType: void
    signature: "void p2m_free_entry(struct p2m_domain *p2m,\n                           lpae_t
      entry, unsigned int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:878,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:880,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:886,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:887,1
    - Dst: p2m_is_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:887,1
    - Dst: p2m_alloc_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:889,1
    - Dst: page_list_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:893,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:894,1
    - Dst: lpae_set_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:909,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:909,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:917,1
    - Dst: p2m_split_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:932,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:936,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:938,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:944,1
    - Dst: page_to_p2m_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - p2m
    - entry
    - level
    - target
    - offsets
    argTypes:
    - struct p2m_domain*
    - lpae_t*
    - unsigned int
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 947
    functionName: p2m_split_superpage
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 3
    functionsReached:
    - lpae_get_mfn
    - lpae_set_mfn
    - unmap_domain_page
    - p2m_write_pte
    - write_pte
    - page_to_p2m_table
    - p2m_is_superpage
    - clean_dcache_va_range
    - mfn_add
    - page_list_add
    - p2m_alloc_page
    - ASSERT
    - p2m_split_superpage
    - __map_domain_page
    - XEN_PT_LEVEL_ORDER
    linkageType: ''
    returnType: bool
    signature: "bool p2m_split_superpage(struct p2m_domain *p2m, lpae_t *entry,\n
      \                               unsigned int level, unsigned int target,\n                                const
      unsigned int *offsets)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:965,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:966,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:966,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:968,1
    - Dst: p2m_is_write_locked
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:968,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:974,1
    - Dst: p2m_get_root_pointer
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:976,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:986,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1015,1
    - Dst: p2m_is_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1015,1
    - Dst: p2m_split_superpage
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1017,1
    - Dst: p2m_free_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1026,1
    - Dst: p2m_remove_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1036,1
    - Dst: p2m_force_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1037,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1039,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1044,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1050,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1061,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1069,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1075,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1075,1
    - Dst: p2m_mem_access_radix_set
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1080,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1089,1
    - Dst: p2m_remove_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1090,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1094,1
    - Dst: mfn_to_p2m_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1097,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1109,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1111,1
    - Dst: P2M_CLEAR_PERM
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1112,1
    - Dst: P2M_CLEAR_PERM
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1112,1
    - Dst: p2m_force_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1113,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1117,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1120,1
    - Dst: gfn_max
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1122,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1123,1
    - Dst: gfn_min
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1124,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1127,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1128,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1128,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1132,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1134,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1137,1
    - Dst: _dfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1137,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1137,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1147,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1148,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1148,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1148,1
    - Dst: p2m_free_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1149,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1152,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 75
    argCount: 6
    argNames:
    - p2m
    - sgfn
    - page_order
    - smfn
    - t
    - a
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned int
    - mfn_t
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 1155
    functionName: __p2m_set_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_get_root_pointer
    - P2M_CLEAR_PERM
    - gfn_max
    - p2m_remove_pte
    - p2m_force_tlb_flush_sync
    - p2m_next_level
    - likely
    - lpae_is_valid
    - p2m_is_valid
    - DECLARE_OFFSETS
    - _dfn
    - lpae_get_mfn
    - gfn_min
    - mfn_to_p2m_entry
    - p2m_free_entry
    - mfn_eq
    - is_iommu_enabled
    - gfn_add
    - ASSERT
    - p2m_split_superpage
    - iommu_iotlb_flush
    - p2m_write_pte
    - unmap_domain_page
    - p2m_mem_access_radix_set
    - p2m_is_superpage
    - p2m_is_write_locked
    - gfn_x
    - gfn_to_gaddr
    linkageType: ''
    returnType: int
    signature: "int __p2m_set_entry(struct p2m_domain *p2m,\n                           gfn_t
      sgfn,\n                           unsigned int page_order,\n                           mfn_t
      smfn,\n                           p2m_type_t t,\n                           p2m_access_t
      a)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1172,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1187,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1187,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1188,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1191,1
    - Dst: __p2m_set_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1200,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1204,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1205,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 6
    argNames:
    - p2m
    - sgfn
    - nr
    - smfn
    - t
    - a
    argTypes:
    - struct p2m_domain*
    - gfn_t
    - unsigned long
    - mfn_t
    - p2m_type_t
    - p2m_access_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1157
    functionDepth: 4
    functionLinenumber: 1157
    functionLinenumberEnd: 1212
    functionName: p2m_set_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 30
    functionsReached:
    - unlikely
    - __p2m_set_entry
    - mfn_x
    - mfn_add
    - gfn_x
    - mfn_eq
    - gfn_add
    linkageType: ''
    returnType: int
    signature: "int p2m_set_entry(struct p2m_domain *p2m,\n                  gfn_t
      sgfn,\n                  unsigned long nr,\n                  mfn_t smfn,\n
      \                 p2m_type_t t,\n                  p2m_access_t a)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1220,1
    - Dst: p2m_is_write_locked
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1220,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1222,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1238,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p2m
    - mfn
    argTypes:
    - struct p2m_domain*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1244
    functionName: p2m_invalidate_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_pte
    - unmap_domain_page
    - map_domain_page
    - p2m_is_write_locked
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void p2m_invalidate_table(struct p2m_domain *p2m, mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1256,1
    - Dst: clear_and_clean_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1259,1
    - Dst: p2m_force_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1261,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1264
    functionName: p2m_clear_root_pages
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_unlock
    - p2m_write_lock
    - clear_and_clean_page
    - p2m_force_tlb_flush_sync
    linkageType: ''
    returnType: void
    signature: void p2m_clear_root_pages(struct p2m_domain *p2m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1277,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1277,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1279,1
    - Dst: p2m_invalidate_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1282,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1282,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p2m
    argTypes:
    - struct p2m_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1273
    functionDepth: 1
    functionLinenumber: 1273
    functionLinenumberEnd: 1285
    functionName: p2m_invalidate_root
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - p2m_write_lock
    - page_to_mfn
    - p2m_invalidate_table
    - iommu_use_hap_pt
    - p2m_write_unlock
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void p2m_invalidate_root(struct p2m_domain *p2m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1297,1
    - Dst: p2m_invalidate_root
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1298,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1299
    functionName: p2m_domain_creation_finished
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - p2m_invalidate_root
    - p2m_get_hostp2m
    - iommu_use_hap_pt
    linkageType: ''
    returnType: void
    signature: void p2m_domain_creation_finished(struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1307,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1313,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1313,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1315,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1318,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1318,1
    - Dst: p2m_get_root_pointer
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1321,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1328,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1346,1
    - Dst: p2m_next_level
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1349,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1360,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1370,1
    - Dst: lpae_is_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1383,1
    - Dst: p2m_invalidate_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1384,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1384,1
    - Dst: p2m_write_pte
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1393,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1401,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1404,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1407
    functionName: p2m_resolve_translation_fault
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - lpae_get_mfn
    - p2m_get_root_pointer
    - p2m_write_lock
    - p2m_write_pte
    - unmap_domain_page
    - p2m_next_level
    - p2m_invalidate_table
    - gfn_x
    - p2m_write_unlock
    - gfn_to_gaddr
    - lpae_is_valid
    - p2m_is_valid
    - DECLARE_OFFSETS
    - ASSERT_UNREACHABLE
    - lpae_is_table
    - p2m_get_hostp2m
    linkageType: ''
    returnType: bool
    signature: bool p2m_resolve_translation_fault(struct domain *d, gfn_t gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1414,1
    - Dst: clear_and_clean_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1423
    functionName: p2m_allocate_root
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - alloc_domheap_pages
    - clear_and_clean_page
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *p2m_allocate_root(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1427,1
    - Dst: p2m_allocate_root
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1429,1
    - Dst: generate_vttbr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1433,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1433,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1439,1
    - Dst: p2m_force_tlb_flush_sync
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1440,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1425
    functionDepth: 2
    functionLinenumber: 1425
    functionLinenumberEnd: 1444
    functionName: p2m_alloc_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_write_lock
    - page_to_mfn
    - p2m_force_tlb_flush_sync
    - p2m_allocate_root
    - p2m_write_unlock
    - generate_vttbr
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_alloc_table(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1448,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1453,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1455,1
    - Dst: p2m_free_page
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1457,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1460,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1470
    functionName: p2m_teardown
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 5
    functionsReached:
    - p2m_write_lock
    - p2m_free_page
    - page_list_remove_head
    - p2m_write_unlock
    - hypercall_preempt_check
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_teardown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1474,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1486,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1486,1
    - Dst: p2m_teardown_allocation
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1488,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1490,1
    - Dst: page_list_empty
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1490,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1493,1
    - Dst: p2m_free_vmid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1497,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1502
    functionName: p2m_final_teardown
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 2
    functionsReached:
    - p2m_teardown_allocation
    - free_domheap_pages
    - p2m_free_vmid
    - ASSERT
    - page_list_empty
    - radix_tree_destroy
    - p2m_get_hostp2m
    linkageType: ''
    returnType: void
    signature: void p2m_final_teardown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1506,1
    - Dst: rwlock_init
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1510,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1511,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1512,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1513,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1516,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1517,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1521,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1528,1
    - Dst: iommu_has_feature
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1529,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1536,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1537,1
    - Dst: for_each_possible_cpu
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1539,1
    - Dst: p2m_alloc_vmid
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1548,1
    - Dst: p2m_alloc_table
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1557
    functionName: p2m_init
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 5
    functionsReached:
    - for_each_possible_cpu
    - rwlock_init
    - _gfn
    - iommu_has_feature
    - is_iommu_enabled
    - p2m_alloc_table
    - BUILD_BUG_ON
    - p2m_alloc_vmid
    - INIT_PAGE_LIST_HEAD
    - spin_lock_init
    - radix_tree_init
    - p2m_get_hostp2m
    linkageType: ''
    returnType: int
    signature: int p2m_init(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1567,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1574,1
    - Dst: p2m_write_lock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1576,1
    - Dst: gfn_add
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1579,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1581,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1581,1
    - Dst: gfn_next_boundary
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1582,1
    - Dst: p2m_get_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1584,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1592,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1592,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1593,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1603,1
    - Dst: __p2m_set_entry
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1609,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1611,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1613,1
    - Dst: gfn_x
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1613,1
    - Dst: p2m_write_unlock
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1565
    functionDepth: 4
    functionLinenumber: 1565
    functionLinenumberEnd: 1628
    functionName: relinquish_p2m_mapping
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - unlikely
    - p2m_write_lock
    - p2m_get_entry
    - __p2m_set_entry
    - gfn_next_boundary
    - p2m_get_hostp2m
    - gfn_x
    - BUG_ON
    - p2m_write_unlock
    - hypercall_preempt_check
    - printk
    - mfn_eq
    - p2m_is_foreign
    - XEN_PT_LEVEL_ORDER
    - gfn_add
    linkageType: ''
    returnType: int
    signature: int relinquish_p2m_mapping(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1638,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1640,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1642,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1643,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1643,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1644,1
    - Dst: p2m_cache_flush_range
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1648,1
    - Dst: _gfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1648,1
    - Dst: do_softirq
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1650,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1654,1
    - Dst: p2m_invalidate_root
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1636
    functionDepth: 2
    functionLinenumber: 1636
    functionLinenumberEnd: 1665
    functionName: p2m_flush_vm
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - _gfn
    - p2m_invalidate_root
    - p2m_get_hostp2m
    - do_softirq
    - ASSERT
    - gprintk
    - local_irq_is_enabled
    - p2m_cache_flush_range
    linkageType: ''
    returnType: void
    signature: void p2m_flush_vm(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1672,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1682,1
    - Dst: WRITE_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1684,1
    - Dst: generate_vttbr
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1684,1
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1685,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1685,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1686,1
    - Dst: flush_all_guests_tlb_local
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1690
    functionName: setup_virt_paging_one
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - cpus_have_cap
    - WRITE_SYSREG64
    - flush_all_guests_tlb_local
    - isb
    - READ_SYSREG
    - generate_vttbr
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void setup_virt_paging_one(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1752,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1762,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1763,1
    - Dst: VTCR_PS
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1766,1
    - Dst: VTCR_SL0
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1774,1
    - Dst: VTCR_T0SZ
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1775,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1787,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1792,1
    - Dst: p2m_vmid_allocator_init
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1795,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1798,1
    - Dst: cpus_have_cap
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1805,1
    - Dst: p2m_allocate_root
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1809,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1811,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1813,1
    - Dst: setup_virt_paging_one
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1816,1
    - Dst: smp_call_function
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1817,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1692
    functionDepth: 2
    functionLinenumber: 1692
    functionLinenumberEnd: 1818
    functionName: setup_virt_paging
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 1
    functionsReached:
    - cpus_have_cap
    - page_to_mfn
    - p2m_vmid_allocator_init
    - VTCR_T0SZ
    - ARRAY_SIZE
    - smp_call_function
    - panic
    - VTCR_PS
    - p2m_allocate_root
    - BUG_ON
    - VTCR_SL0
    - printk
    - setup_virt_paging_one
    linkageType: ''
    returnType: void
    signature: void setup_virt_paging(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1827,1
    - Dst: setup_virt_paging_one
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1820
    functionDepth: 2
    functionLinenumber: 1820
    functionLinenumberEnd: 1835
    functionName: cpu_virt_paging_callback
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - setup_virt_paging_one
    linkageType: ''
    returnType: int
    signature: "int cpu_virt_paging_callback(struct notifier_block *nfb,\n                                    unsigned
      long action,\n                                    void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/arch/arm/mmu/p2m.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1846
    functionName: cpu_virt_paging_init
    functionSourceFile: /src/xen/xen/arch/arm/mmu/p2m.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpu_virt_paging_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:56,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - table
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: clear_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 0
    functionsReached:
    - clear_page
    - clean_and_invalidate_dcache_va_range
    linkageType: ''
    returnType: void
    signature: void clear_table(void *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_table
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:66,1
    - Dst: clear_table
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:68,1
    - Dst: clear_table
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:69,1
    - Dst: clear_table
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:71,1
    - Dst: clear_table
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: clear_boot_pagetables
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 0
    functionsReached:
    - clear_table
    linkageType: ''
    returnType: void
    signature: void clear_boot_pagetables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:81,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:81,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:83,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:85,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:91,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - root
    argTypes:
    - lpae_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 94
    functionName: set_init_ttbr
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - virt_to_mfn
    - clean_dcache_va_range
    - virt_to_maddr
    - PAGE_OFFSET
    linkageType: ''
    returnType: void
    signature: void set_init_ttbr(lpae_t *root)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_boot_pagetables
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:99,1
    - Dst: set_init_ttbr
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: prepare_secondary_mm
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 1
    functionsReached:
    - clear_boot_pagetables
    - set_init_ttbr
    linkageType: ''
    returnType: int
    signature: int prepare_secondary_mm(int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:112,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:116,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:121,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:121,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:122,1
    - Dst: init_domheap_mappings
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:124,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:126,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:127,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:128,1
    - Dst: clear_boot_pagetables
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:132,1
    - Dst: set_init_ttbr
      Src: /src/xen/xen/arch/arm/mmu/smpboot.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 138
    functionName: prepare_secondary_mm
    functionSourceFile: /src/xen/xen/arch/arm/mmu/smpboot.c
    functionUses: 1
    functionsReached:
    - alloc_xenheap_page
    - init_domheap_mappings
    - clear_boot_pagetables
    - free_xenheap_page
    - per_cpu
    - printk
    - set_init_ttbr
    - memcpy
    linkageType: ''
    returnType: int
    signature: int prepare_secondary_mm(int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/mmu/mm.c:14,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/mm.c:14,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/mm.c:14,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/mmu/mm.c:15,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/mm.c:15,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/mmu/mm.c:18,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/mmu/mm.c:18,1
    - Dst: MB
      Src: /src/xen/xen/arch/arm/mmu/mm.c:19,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/mm.c:26,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/mm.c:27,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/mm.c:30,1
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/arch/arm/mmu/mm.c:33,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/mm.c:33,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/arch/arm/mmu/mm.c:35,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/arm/mmu/mm.c:36,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mmu/mm.c:38,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/mm.c:42,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/mm.c:44,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/mm.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 47
    functionName: setup_frametable_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/mm.c
    functionUses: 3
    functionsReached:
    - MB
    - ROUNDUP
    - panic
    - mfn_add
    - mfn_to_pdx
    - BUILD_BUG_ON
    - map_pages_to_xen
    - maddr_to_mfn
    - memset
    - alloc_boot_pages
    linkageType: ''
    returnType: void
    signature: void setup_frametable_mappings(paddr_t ps, paddr_t pe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: mfn_to_virt
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_virt(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - virt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: virt_to_reloc_virt
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_reloc_virt(virt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:74,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:75,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/setup.c:75,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:76,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:79,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:81,1
    - Dst: CHECK_OVERLAP_WITH_IDMAP
      Src: /src/xen/xen/arch/arm/mmu/setup.c:93,1
    - Dst: CHECK_OVERLAP_WITH_IDMAP
      Src: /src/xen/xen/arch/arm/mmu/setup.c:94,1
    - Dst: CHECK_OVERLAP_WITH_IDMAP
      Src: /src/xen/xen/arch/arm/mmu/setup.c:95,1
    - Dst: CHECK_OVERLAP_WITH_IDMAP
      Src: /src/xen/xen/arch/arm/mmu/setup.c:96,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:99,1
    - Dst: first_table_offset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:99,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:101,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:115,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/setup.c:115,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:116,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:118,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/setup.c:118,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:119,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:126,1
    - Dst: CHECK_DIFFERENT_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:127,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:128,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:130,1
    - Dst: CHECK_SAME_SLOT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:131,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 142
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 0
    functionsReached:
    - CHECK_SAME_SLOT
    - first_table_offset
    - FIXMAP_ADDR
    - BUILD_BUG_ON
    - CHECK_DIFFERENT_SLOT
    - CHECK_OVERLAP_WITH_IDMAP
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - virt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: CHECK_OVERLAP_WITH_IDMAP
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OVERLAP_WITH_IDMAP(virt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - level
    - ','
    - virt1
    - ','
    - virt2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: CHECK_SAME_SLOT
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SAME_SLOT(level, virt1, virt2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - level
    - ','
    - virt1
    - ','
    - virt2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: CHECK_DIFFERENT_SLOT
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DIFFERENT_SLOT(level, virt1, virt2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_reloc_virt
      Src: /src/xen/xen/arch/arm/mmu/setup.c:147,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/setup.c:149,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: pte_of_xenaddr
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 3
    functionsReached:
    - mfn_to_xen_entry
    - virt_to_mfn
    - virt_to_reloc_virt
    linkageType: ''
    returnType: lpae_t
    signature: lpae_t pte_of_xenaddr(vaddr_t va)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:168,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:173,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mmu/setup.c:175,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:175,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:179,1
    - Dst: fdt_magic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:185,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/arch/arm/mmu/setup.c:188,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mmu/setup.c:194,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:195,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - fdt_paddr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 203
    functionName: early_fdt_map
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 2
    functionsReached:
    - panic
    - fdt_magic
    - BUILD_BUG_ON
    - fdt_totalsize
    - map_pages_to_xen
    - maddr_to_mfn
    linkageType: ''
    returnType: void
    signature: void * __init early_fdt_map(paddr_t fdt_paddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/arm/mmu/setup.c:210,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/setup.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: remove_early_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - modify_xen_mappings
    linkageType: ''
    returnType: void
    signature: void remove_early_mappings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/arm/mmu/setup.c:222,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: modify_after_init_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached:
    - panic
    - modify_xen_mappings
    linkageType: ''
    returnType: void
    signature: void modify_after_init_mappings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/setup.c:239,1
    - Dst: READ_SYSREG
      Src: /src/xen/xen/arch/arm/mmu/setup.c:239,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/setup.c:244,1
    - Dst: flush_xen_tlb_local
      Src: /src/xen/xen/arch/arm/mmu/setup.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: xen_pt_enforce_wnx
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 0
    functionsReached:
    - flush_xen_tlb_local
    - READ_SYSREG
    - isb
    - WRITE_SYSREG
    linkageType: ''
    returnType: void
    signature: void xen_pt_enforce_wnx(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/arch/arm/mmu/setup.c:260,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/arch/arm/mmu/setup.c:262,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:282,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:286,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:306,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:310,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:330,1
    - Dst: consider_modules
      Src: /src/xen/xen/arch/arm/mmu/setup.c:334,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 5
    argNames:
    - s
    - e
    - size
    - align
    - first_mod
    argTypes:
    - paddr_t
    - paddr_t
    - uint32_t
    - paddr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 340
    functionName: consider_modules
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 5
    functionsReached:
    - bootinfo_get_reserved_mem
    - consider_modules
    - bootinfo_get_shmem
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t consider_modules(paddr_t s, paddr_t e,\n                                uint32_t
      size, paddr_t align,\n                                int first_mod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: boot_module_find_by_kind
      Src: /src/xen/xen/arch/arm/mmu/setup.c:346,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:347,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/setup.c:351,1
    - Dst: XEN_NR_ENTRIES
      Src: /src/xen/xen/arch/arm/mmu/setup.c:356,1
    - Dst: XEN_PT_LEVEL_SHIFT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:358,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/setup.c:360,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:360,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/setup.c:364,1
    - Dst: second_table_offset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 366
    functionName: create_llc_coloring_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 0
    functionsReached:
    - mfn_to_xen_entry
    - write_pte
    - virt_to_mfn
    - boot_module_find_by_kind
    - maddr_to_mfn
    - XEN_PT_LEVEL_SHIFT
    - second_table_offset
    - XEN_NR_ENTRIES
    linkageType: ''
    returnType: void
    signature: void create_llc_coloring_mappings(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/setup.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: for_each_xen_colored_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached:
    - mfn_to_xen_entry
    linkageType: ''
    returnType: void
    signature: void for_each_xen_colored_mfn ( start_mfn, mfn, i )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_llc_coloring_mappings
      Src: /src/xen/xen/arch/arm/mmu/setup.c:384,1
    - Dst: arch_setup_page_tables
      Src: /src/xen/xen/arch/arm/mmu/setup.c:386,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:389,1
    - Dst: zeroeth_table_offset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:392,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:400,1
    - Dst: XEN_NR_ENTRIES
      Src: /src/xen/xen/arch/arm/mmu/setup.c:405,1
    - Dst: is_kernel
      Src: /src/xen/xen/arch/arm/mmu/setup.c:409,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:411,1
    - Dst: XEN_NR_ENTRIES
      Src: /src/xen/xen/arch/arm/mmu/setup.c:419,1
    - Dst: XEN_PT_LEVEL_SHIFT
      Src: /src/xen/xen/arch/arm/mmu/setup.c:421,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:423,1
    - Dst: second_table_offset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:425,1
    - Dst: pte_of_xenaddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:429,1
    - Dst: second_table_offset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:431,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/setup.c:431,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/setup.c:434,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:439,1
    - Dst: virt_to_reloc_virt
      Src: /src/xen/xen/arch/arm/mmu/setup.c:439,1
    - Dst: relocate_and_switch_ttbr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:440,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:444,1
    - Dst: switch_ttbr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:445,1
    - Dst: XEN_NR_ENTRIES
      Src: /src/xen/xen/arch/arm/mmu/setup.c:449,1
    - Dst: is_kernel
      Src: /src/xen/xen/arch/arm/mmu/setup.c:454,1
    - Dst: read_atomic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:457,1
    - Dst: is_kernel_text
      Src: /src/xen/xen/arch/arm/mmu/setup.c:459,1
    - Dst: is_kernel_inittext
      Src: /src/xen/xen/arch/arm/mmu/setup.c:459,1
    - Dst: is_kernel_rodata
      Src: /src/xen/xen/arch/arm/mmu/setup.c:464,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/setup.c:475,1
    - Dst: flush_xen_tlb_local
      Src: /src/xen/xen/arch/arm/mmu/setup.c:482,1
    - Dst: xen_pt_enforce_wnx
      Src: /src/xen/xen/arch/arm/mmu/setup.c:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 485
    functionName: setup_pagetables
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached:
    - create_llc_coloring_mappings
    - write_pte
    - is_kernel_inittext
    - relocate_and_switch_ttbr
    - virt_to_reloc_virt
    - arch_setup_page_tables
    - FIXMAP_ADDR
    - is_kernel_rodata
    - pte_of_xenaddr
    - xen_pt_enforce_wnx
    - switch_ttbr
    - XEN_PT_LEVEL_SHIFT
    - is_kernel
    - flush_xen_tlb_local
    - XEN_NR_ENTRIES
    - zeroeth_table_offset
    - virt_to_maddr
    - read_atomic
    - per_cpu
    - second_table_offset
    - is_kernel_text
    linkageType: ''
    returnType: void
    signature: void setup_pagetables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: arch_vmap_virt_end
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__init arch_vmap_virt_end(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/setup.c:495,1
    - Dst: modify_xen_mappings
      Src: /src/xen/xen/arch/arm/mmu/setup.c:499,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:502,1
    - Dst: invalidate_icache_local
      Src: /src/xen/xen/arch/arm/mmu/setup.c:508,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/setup.c:511,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mmu/setup.c:513,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/mmu/setup.c:516,1
    - Dst: init_domheap_pages
      Src: /src/xen/xen/arch/arm/mmu/setup.c:520,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/setup.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 524
    functionName: free_init_memory
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 1
    functionsReached:
    - panic
    - invalidate_icache_local
    - destroy_xen_mappings
    - virt_to_maddr
    - printk
    - modify_xen_mappings
    - memset
    - init_domheap_pages
    linkageType: ''
    returnType: void
    signature: void free_init_memory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/setup.c:534,1
    - Dst: min
      Src: /src/xen/xen/arch/arm/mmu/setup.c:540,1
    - Dst: set_fixmap
      Src: /src/xen/xen/arch/arm/mmu/setup.c:542,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/setup.c:542,1
    - Dst: memcpy
      Src: /src/xen/xen/arch/arm/mmu/setup.c:543,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/arch/arm/mmu/setup.c:544,1
    - Dst: clear_fixmap
      Src: /src/xen/xen/arch/arm/mmu/setup.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - paddr
    - len
    argTypes:
    - void*
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 551
    functionName: copy_from_paddr
    functionSourceFile: /src/xen/xen/arch/arm/mmu/setup.c
    functionUses: 4
    functionsReached:
    - clean_dcache_va_range
    - clear_fixmap
    - FIXMAP_ADDR
    - min
    - maddr_to_mfn
    - set_fixmap
    - memcpy
    linkageType: ''
    returnType: void
    signature: void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - va
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: virt_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: virt_to_mfn(va)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_pages
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:30,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:31,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:36,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:37,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:37,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:46,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:52,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:58,1
    - Dst: first_table_offset
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:59,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:62,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:62,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:64,1
    - Dst: per_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 70
    functionName: init_domheap_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 2
    functionsReached:
    - mfn_to_xen_entry
    - write_pte
    - virt_to_mfn
    - get_order_from_pages
    - first_table_offset
    - mfn_add
    - ASSERT
    - alloc_xenheap_pages
    - per_cpu
    - memset
    linkageType: ''
    returnType: bool
    signature: bool init_domheap_mappings(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmap
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: map_domain_page_global
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 17
    functionsReached:
    - vmap
    linkageType: ''
    returnType: void
    signature: void *map_domain_page_global(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vunmap
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: unmap_domain_page_global
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 9
    functionsReached:
    - vunmap
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page_global(const void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:86,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:87,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:92,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:113,1
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:113,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:115,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:121,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:130,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:136,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:140,1
    - Dst: flush_xen_tlb_range_va_local
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 149
    functionName: map_domain_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 173
    functionsReached:
    - mfn_to_xen_entry
    - write_pte
    - mfn_x
    - _mfn
    - BUG_ON
    - flush_xen_tlb_range_va_local
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - dprintk
    linkageType: ''
    returnType: void
    signature: void *map_domain_page(mfn_t mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:155,1
    - Dst: local_irq_save
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:161,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:163,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:164,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 169
    functionName: unmap_domain_page
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 159
    functionsReached:
    - local_irq_restore
    - local_irq_save
    - ASSERT
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page(const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:174,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:179,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:181,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:182,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:184,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/domain_page.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: domain_page_map_to_mfn
    functionSourceFile: /src/xen/xen/arch/arm/mmu/domain_page.c
    functionUses: 10
    functionsReached:
    - lpae_get_mfn
    - virt_to_mfn
    - mfn_add
    - ASSERT
    - this_cpu
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t domain_page_map_to_mfn(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __format__
      Src: /src/xen/xen/arch/arm/mmu/pt.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: mm_printk
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - __format__
    linkageType: ''
    returnType: void
    signature: void mm_printk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: mm_printk
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mm_printk(fmt, args...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pmap_map
      Src: /src/xen/xen/arch/arm/mmu/pt.c:43,1
    - Dst: map_domain_page
      Src: /src/xen/xen/arch/arm/mmu/pt.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: xen_map_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - pmap_map
    - map_domain_page
    linkageType: ''
    returnType: lpae_t
    signature: lpae_t *xen_map_table(mfn_t mfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pmap_unmap
      Src: /src/xen/xen/arch/arm/mmu/pt.c:55,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/arch/arm/mmu/pt.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - lpae_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: xen_unmap_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - pmap_unmap
    linkageType: ''
    returnType: void
    signature: void xen_unmap_table(const lpae_t *table)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:65,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/mmu/pt.c:66,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:71,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:73,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:82,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:84,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:87,1
    - Dst: xen_map_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:94,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/pt.c:94,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:103,1
    - Dst: xen_unmap_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:110,1
    - Dst: xen_map_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:111,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:111,1
    - Dst: xen_unmap_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - ttbr
    - addr
    - root_level
    - nr_root_tables
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 115
    functionName: dump_pt_walk
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - lpae_get_mfn
    - xen_map_table
    - mfn_add
    - BUG_ON
    - xen_unmap_table
    - maddr_to_mfn
    - printk
    - DECLARE_OFFSETS
    linkageType: ''
    returnType: void
    signature: "void dump_pt_walk(paddr_t ttbr, paddr_t addr,\n                  unsigned
      int root_level,\n                  unsigned int nr_root_tables)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/pt.c:119,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:121,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/arch/arm/mmu/pt.c:123,1
    - Dst: dump_pt_walk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - vaddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: dump_hyp_walk
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 2
    functionsReached:
    - smp_processor_id
    - READ_SYSREG64
    - printk
    - dump_pt_walk
    linkageType: ''
    returnType: void
    signature: void dump_hyp_walk(vaddr_t addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:184,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/mmu/pt.c:184,1
    - Dst: lpae_set_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - mfn
    - attr
    argTypes:
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 189
    functionName: mfn_to_xen_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 7
    functionsReached:
    - lpae_set_mfn
    - ASSERT
    - mfn_to_maddr
    linkageType: ''
    returnType: lpae_t
    signature: lpae_t mfn_to_xen_entry(mfn_t mfn, unsigned int attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/arch/arm/mmu/pt.c:196,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/pt.c:196,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - map
    - mfn
    - flags
    argTypes:
    - unsigned int
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: set_fixmap
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 9
    functionsReached:
    - map_pages_to_xen
    - BUG_ON
    - FIXMAP_ADDR
    linkageType: ''
    returnType: void
    signature: void set_fixmap(unsigned int map, mfn_t mfn, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/arch/arm/mmu/pt.c:205,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/pt.c:205,1
    - Dst: FIXMAP_ADDR
      Src: /src/xen/xen/arch/arm/mmu/pt.c:205,1
    - Dst: BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - map
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: clear_fixmap
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 9
    functionsReached:
    - destroy_xen_mappings
    - BUG_ON
    - FIXMAP_ADDR
    linkageType: ''
    returnType: void
    signature: void clear_fixmap(unsigned int map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:215,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/arch/arm/mmu/pt.c:215,1
    - Dst: PFN_UP
      Src: /src/xen/xen/arch/arm/mmu/pt.c:217,1
    - Dst: __vmap
      Src: /src/xen/xen/arch/arm/mmu/pt.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - start
    - len
    - attributes
    argTypes:
    - paddr_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: ioremap_attr
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 7
    functionsReached:
    - PFN_UP
    - _mfn
    - __vmap
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void *ioremap_attr(paddr_t start, size_t len, unsigned int attributes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/arch/arm/mmu/pt.c:234,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:239,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/arch/arm/mmu/pt.c:242,1
    - Dst: xen_map_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:244,1
    - Dst: clear_page
      Src: /src/xen/xen/arch/arm/mmu/pt.c:245,1
    - Dst: xen_unmap_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:246,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/pt.c:248,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/pt.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - lpae_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 258
    functionName: create_xen_table
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - mfn_to_xen_entry
    - write_pte
    - clear_page
    - alloc_domheap_page
    - xen_map_table
    - xen_unmap_table
    - alloc_boot_pages
    linkageType: ''
    returnType: int
    signature: int create_xen_table(lpae_t *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/pt.c:286,1
    - Dst: create_xen_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:291,1
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/mmu/pt.c:297,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:300,1
    - Dst: xen_unmap_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:302,1
    - Dst: xen_map_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - read_only
    - level
    - table
    - offset
    argTypes:
    - bool
    - unsigned int
    - lpae_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 306
    functionName: xen_pt_next_level
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - lpae_get_mfn
    - xen_map_table
    - lpae_is_mapping
    - lpae_is_valid
    - xen_unmap_table
    - create_xen_table
    linkageType: ''
    returnType: int
    signature: "int xen_pt_next_level(bool read_only, unsigned int level,\n                             lpae_t
      **table, unsigned int offset)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:313,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/pt.c:316,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:318,1
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/mmu/pt.c:323,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:325,1
    - Dst: PAGE_AI_MASK
      Src: /src/xen/xen/arch/arm/mmu/pt.c:330,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:332,1
    - Dst: PAGE_AI_MASK
      Src: /src/xen/xen/arch/arm/mmu/pt.c:333,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:340,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:348,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:348,1
    - Dst: lpae_is_valid
      Src: /src/xen/xen/arch/arm/mmu/pt.c:357,1
    - Dst: lpae_is_mapping
      Src: /src/xen/xen/arch/arm/mmu/pt.c:359,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:360,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/pt.c:361,1
    - Dst: lpae_get_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:361,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/pt.c:361,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:363,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:371,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:371,1
    - Dst: lpae_is_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:374,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:376,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:383,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:390,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:392,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:392,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - entry
    - mfn
    - level
    - flags
    argTypes:
    - lpae_t
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 396
    functionName: xen_pt_check_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - lpae_get_mfn
    - mfn_x
    - lpae_is_mapping
    - lpae_is_valid
    - ASSERT
    - mm_printk
    - PAGE_AI_MASK
    - mfn_eq
    - lpae_is_table
    linkageType: ''
    returnType: bool
    signature: "bool xen_pt_check_entry(lpae_t entry, mfn_t mfn, unsigned int level,\n
      \                              unsigned int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:411,1
    - Dst: DECLARE_OFFSETS
      Src: /src/xen/xen/arch/arm/mmu/pt.c:415,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:418,1
    - Dst: xen_map_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:420,1
    - Dst: xen_pt_next_level
      Src: /src/xen/xen/arch/arm/mmu/pt.c:423,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:435,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:451,1
    - Dst: xen_pt_check_entry
      Src: /src/xen/xen/arch/arm/mmu/pt.c:459,1
    - Dst: memset
      Src: /src/xen/xen/arch/arm/mmu/pt.c:469,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:473,1
    - Dst: mfn_to_xen_entry
      Src: /src/xen/xen/arch/arm/mmu/pt.c:475,1
    - Dst: PAGE_AI_MASK
      Src: /src/xen/xen/arch/arm/mmu/pt.c:475,1
    - Dst: PAGE_RO_MASK
      Src: /src/xen/xen/arch/arm/mmu/pt.c:487,1
    - Dst: PAGE_XN_MASK
      Src: /src/xen/xen/arch/arm/mmu/pt.c:488,1
    - Dst: write_pte
      Src: /src/xen/xen/arch/arm/mmu/pt.c:493,1
    - Dst: xen_unmap_table
      Src: /src/xen/xen/arch/arm/mmu/pt.c:502,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - root
    - virt
    - mfn
    - target
    - flags
    argTypes:
    - mfn_t
    - unsigned long
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 505
    functionName: xen_pt_update_entry
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - xen_pt_next_level
    - mfn_to_xen_entry
    - write_pte
    - PAGE_XN_MASK
    - xen_pt_check_entry
    - xen_map_table
    - PAGE_RO_MASK
    - ASSERT
    - xen_unmap_table
    - mm_printk
    - PAGE_AI_MASK
    - mfn_eq
    - memset
    - DECLARE_OFFSETS
    linkageType: ''
    returnType: int
    signature: "int xen_pt_update_entry(mfn_t root, unsigned long virt,\n                               mfn_t
      mfn, unsigned int target,\n                               unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:526,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/pt.c:526,1
    - Dst: likely
      Src: /src/xen/xen/arch/arm/mmu/pt.c:533,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:535,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:536,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:538,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - vfn
    - mfn
    - nr
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 545
    functionName: xen_pt_mapping_level
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - likely
    - BIT
    - mfn_eq
    linkageType: ''
    returnType: int
    signature: "int xen_pt_mapping_level(unsigned long vfn, mfn_t mfn, unsigned long
      nr,\n                                unsigned int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:570,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/mmu/pt.c:577,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:584,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/pt.c:584,1
    - Dst: mfn_x
      Src: /src/xen/xen/arch/arm/mmu/pt.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - vfn
    - mfn
    - level
    - left
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned int
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 590
    functionName: xen_pt_check_contig
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - BIT
    - mfn_x
    - BUILD_BUG_ON
    - mfn_eq
    - XEN_PT_LEVEL_ORDER
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int xen_pt_check_contig(unsigned long vfn, mfn_t mfn,\n                                        unsigned
      int level, unsigned long left,\n                                        unsigned
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/mmu/pt.c:611,1
    - Dst: READ_SYSREG64
      Src: /src/xen/xen/arch/arm/mmu/pt.c:611,1
    - Dst: flags_has_rwx
      Src: /src/xen/xen/arch/arm/mmu/pt.c:613,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:615,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:621,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mmu/pt.c:625,1
    - Dst: mm_printk
      Src: /src/xen/xen/arch/arm/mmu/pt.c:627,1
    - Dst: spin_lock
      Src: /src/xen/xen/arch/arm/mmu/pt.c:631,1
    - Dst: xen_pt_mapping_level
      Src: /src/xen/xen/arch/arm/mmu/pt.c:637,1
    - Dst: XEN_PT_LEVEL_ORDER
      Src: /src/xen/xen/arch/arm/mmu/pt.c:638,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:640,1
    - Dst: BIT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:640,1
    - Dst: xen_pt_check_contig
      Src: /src/xen/xen/arch/arm/mmu/pt.c:646,1
    - Dst: xen_pt_update_entry
      Src: /src/xen/xen/arch/arm/mmu/pt.c:651,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:657,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/mmu/pt.c:658,1
    - Dst: mfn_eq
      Src: /src/xen/xen/arch/arm/mmu/pt.c:679,1
    - Dst: flush_xen_tlb_range_va
      Src: /src/xen/xen/arch/arm/mmu/pt.c:680,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/mmu/pt.c:682,1
    - Dst: spin_unlock
      Src: /src/xen/xen/arch/arm/mmu/pt.c:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 687
    functionName: xen_pt_update
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - BIT
    - IS_ALIGNED
    - READ_SYSREG64
    - xen_pt_check_contig
    - mfn_add
    - xen_pt_update_entry
    - spin_lock
    - maddr_to_mfn
    - mm_printk
    - ASSERT
    - xen_pt_mapping_level
    - mfn_eq
    - isb
    - flush_xen_tlb_range_va
    - XEN_PT_LEVEL_ORDER
    - flags_has_rwx
    linkageType: ''
    returnType: int
    signature: "int xen_pt_update(unsigned long virt,\n                         mfn_t
      mfn,\n                         /* const on purpose as it is used for TLB flush
      */\n                         const unsigned long nr_mfns,\n                         unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_pt_update
      Src: /src/xen/xen/arch/arm/mmu/pt.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - virt
    - mfn
    - nr_mfns
    - flags
    argTypes:
    - unsigned long
    - mfn_t
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 689
    functionDepth: 6
    functionLinenumber: 689
    functionLinenumberEnd: 695
    functionName: map_pages_to_xen
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 30
    functionsReached:
    - xen_pt_update
    linkageType: ''
    returnType: int
    signature: "int map_pages_to_xen(unsigned long virt,\n                     mfn_t
      mfn,\n                     unsigned long nr_mfns,\n                     pte_attr_t
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_pt_update
      Src: /src/xen/xen/arch/arm/mmu/pt.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - virt
    - nr_mfns
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 6
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: populate_pt_range
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 0
    functionsReached:
    - xen_pt_update
    linkageType: ''
    returnType: int
    signature: int populate_pt_range(unsigned long virt, unsigned long nr_mfns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:704,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mmu/pt.c:704,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:705,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mmu/pt.c:705,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:706,1
    - Dst: xen_pt_update
      Src: /src/xen/xen/arch/arm/mmu/pt.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 708
    functionName: destroy_xen_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 15
    functionsReached:
    - ASSERT
    - IS_ALIGNED
    - xen_pt_update
    linkageType: ''
    returnType: int
    signature: int destroy_xen_mappings(unsigned long s, unsigned long e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:712,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mmu/pt.c:712,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:713,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/mmu/pt.c:713,1
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/mmu/pt.c:714,1
    - Dst: xen_pt_update
      Src: /src/xen/xen/arch/arm/mmu/pt.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - s
    - e
    - nf
    argTypes:
    - unsigned long
    - unsigned long
    - pte_attr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 710
    functionDepth: 6
    functionLinenumber: 710
    functionLinenumberEnd: 716
    functionName: modify_xen_mappings
    functionSourceFile: /src/xen/xen/arch/arm/mmu/pt.c
    functionUses: 9
    functionsReached:
    - ASSERT
    - IS_ALIGNED
    - xen_pt_update
    linkageType: ''
    returnType: int
    signature: int modify_xen_mappings(unsigned long s, unsigned long e, pte_attr_t
      nf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: arch_pci_clean_pirqs
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_pci_clean_pirqs(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/arch/arm/pci/pci.c:33,1
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/pci/pci.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: dev_to_pci
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - container_of
    linkageType: ''
    returnType: struct pci_dev
    signature: struct pci_dev *dev_to_pci(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_to_dev
      Src: /src/xen/xen/arch/arm/pci/pci.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: arch_pci_init_pdev
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached:
    - pci_to_dev
    linkageType: ''
    returnType: void
    signature: void arch_pci_init_pdev(struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/arch/arm/pci/pci.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: dt_pci_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached:
    - device_init
    linkageType: ''
    returnType: int
    signature: int dt_pci_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/arch/arm/pci/pci.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached:
    - device_init
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node(dt_host, np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: acpi_pci_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int acpi_pci_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: acpi_pci_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_pci_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: arch_pci_device_physdevop
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_pci_device_physdevop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_pci_passthrough_enabled
      Src: /src/xen/xen/arch/arm/pci/pci.c:100,1
    - Dst: arch_pci_device_physdevop
      Src: /src/xen/xen/arch/arm/pci/pci.c:100,1
    - Dst: pci_add_segment
      Src: /src/xen/xen/arch/arm/pci/pci.c:103,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/pci/pci.c:104,1
    - Dst: dt_pci_init
      Src: /src/xen/xen/arch/arm/pci/pci.c:107,1
    - Dst: acpi_pci_init
      Src: /src/xen/xen/arch/arm/pci/pci.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: pci_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci.c
    functionUses: 8
    functionsReached:
    - panic
    - acpi_pci_init
    - pci_add_segment
    - dt_pci_init
    - is_pci_passthrough_enabled
    - arch_pci_device_physdevop
    linkageType: ''
    returnType: int
    signature: int pci_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - paddr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pci_remap_cfgspace
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - ioremap_nocache
    linkageType: ''
    returnType: void
    signature: void *pci_remap_cfgspace(paddr_t start, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:55,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct pci_config_window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: pci_ecam_free
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - iounmap
    - xfree
    linkageType: ''
    returnType: void
    signature: void pci_ecam_free(struct pci_config_window *cfg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u32_array
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:67,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:68,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:72,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dev
    - bridge
    - cfg
    argTypes:
    - struct dt_device_node*
    - struct pci_host_bridge*
    - struct pci_config_window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: pci_generic_init_bus_range
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - printk
    - dt_node_full_name
    - dt_property_read_u32_array
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void pci_generic_init_bus_range(struct dt_device_node *dev,\n                                       struct
      pci_host_bridge *bridge,\n                                       struct pci_config_window
      *cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dev
    - bridge
    - cfg
    argTypes:
    - struct dt_device_node*
    - struct pci_host_bridge*
    - struct pci_config_window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: pci_generic_init_bus_range_child
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: "void pci_generic_init_bus_range_child(struct dt_device_node *dev,\n
      \                                            struct pci_host_bridge *bridge,\n
      \                                            struct pci_config_window *cfg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:102,1
    - Dst: struct pci_ecam_ops*::pci_ops::init_bus_range
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:108,1
    - Dst: struct pci_ecam_ops*::cfg_reg_index
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:112,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:120,1
    - Dst: pci_remap_cfgspace
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:136,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:139,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:142,1
    - Dst: struct pci_ecam_ops*::init
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:148,1
    - Dst: pci_ecam_free
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:156,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - dev
    - bridge
    - ops
    argTypes:
    - struct dt_device_node*
    - struct pci_host_bridge*
    - struct pci_ecam_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 159
    functionName: gen_pci_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - struct pci_ecam_ops*::cfg_reg_index
    - xzalloc
    - dt_device_get_paddr
    - struct pci_ecam_ops*::pci_ops::init_bus_range
    - struct pci_ecam_ops*::init
    - pci_ecam_free
    - printk
    - pci_remap_cfgspace
    linkageType: ''
    returnType: struct pci_config_window
    signature: "struct pci_config_window *__init\ngen_pci_init(struct dt_device_node
      *dev, struct pci_host_bridge *bridge,\n             const struct pci_ecam_ops
      *ops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:163,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: pci_alloc_host_bridge
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: struct pci_host_bridge
    signature: struct pci_host_bridge *pci_alloc_host_bridge(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: pci_add_host_bridge
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void pci_add_host_bridge(struct pci_host_bridge *bridge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc_return
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: pci_get_new_domain_nr
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 1
    functionsReached:
    - atomic_inc_return
    linkageType: ''
    returnType: int
    signature: int pci_get_new_domain_nr(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_pci_domain_nr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:190,1
    - Dst: pci_get_new_domain_nr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 233
    functionName: pci_bus_find_domain_nr
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - pci_get_new_domain_nr
    - dt_get_pci_domain_nr
    linkageType: ''
    returnType: int
    signature: int pci_bus_find_domain_nr(struct dt_device_node *dev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_for_passthrough
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:245,1
    - Dst: pci_alloc_host_bridge
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:248,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:250,1
    - Dst: gen_pci_init
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:253,1
    - Dst: pci_bus_find_domain_nr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:264,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:267,1
    - Dst: BUG
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:268,1
    - Dst: gen_pci_init
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:275,1
    - Dst: pci_add_host_bridge
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:286,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:291,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:294,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 3
    argNames:
    - dev
    - ops
    - child_ops
    argTypes:
    - struct dt_device_node*
    - struct pci_ecam_ops*
    - struct pci_ecam_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 297
    functionName: pci_host_common_probe
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - BUG
    - ERR_PTR
    - xfree
    - pci_bus_find_domain_nr
    - printk
    - pci_alloc_host_bridge
    - pci_add_host_bridge
    - dt_device_for_passthrough
    - gen_pci_init
    linkageType: ''
    returnType: struct pci_host_bridge
    signature: "struct pci_host_bridge *\npci_host_common_probe(struct dt_device_node
      *dev,\n                      const struct pci_ecam_ops *ops,\n                      const
      struct pci_ecam_ops *child_ops)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_host_bridge
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:307,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:308,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 314
    functionName: pci_find_host_bridge_node
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - unlikely
    - printk
    - pci_find_host_bridge
    linkageType: ''
    returnType: struct dt_device_node
    signature: 'struct dt_device_node *

      pci_find_host_bridge_node(const struct pci_dev *pdev)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - segment
    - bus
    argTypes:
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 336
    functionName: pci_find_host_bridge
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct pci_host_bridge
    signature: struct pci_host_bridge *pci_find_host_bridge(uint16_t segment, uint8_t
      bus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - node
    - segment
    argTypes:
    - struct dt_device_node*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: pci_get_host_bridge_segment
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int pci_get_host_bridge_segment(const struct dt_device_node *node,\n
      \                               uint16_t *segment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:365,1
    - Dst: cb
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 375
    functionName: pci_host_iterate_bridges_and_count
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 2
    functionsReached:
    - cb
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int pci_host_iterate_bridges_and_count(struct domain *d,\n                                       int
      (*cb)(struct domain *d,\n                                                 struct
      pci_host_bridge *bridge))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:394,1
    - Dst: dt_number_of_address
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:400,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:405,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:408,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:410,1
    - Dst: struct pci_host_bridge*::ops::need_p2m_hwdom_mapping
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:414,1
    - Dst: struct pci_host_bridge*::child_ops::need_p2m_hwdom_mapping
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:417,1
    - Dst: map_range_to_domain
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:420,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 428
    functionName: pci_host_bridge_mappings
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 1
    functionsReached:
    - dt_device_get_paddr
    - map_range_to_domain
    - dt_node_full_name
    - printk
    - struct pci_host_bridge*::child_ops::need_p2m_hwdom_mapping
    - struct pci_host_bridge*::ops::need_p2m_hwdom_mapping
    - dt_number_of_address
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int pci_host_bridge_mappings(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - dev
    - addr
    - len
    - data
    argTypes:
    - struct dt_device_node*
    - uint64_t
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 446
    functionName: is_bar_valid
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int is_bar_valid(const struct dt_device_node *dev,\n                        uint64_t
      addr, uint64_t len, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:457,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:458,1
    - Dst: mfn_add
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:458,1
    - Dst: pci_find_host_bridge_node
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:468,1
    - Dst: dt_for_each_range
      Src: /src/xen/xen/arch/arm/pci/pci-host-common.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pdev
    - start
    - end
    argTypes:
    - struct pci_dev*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 477
    functionName: pci_check_bar
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-common.c
    functionUses: 0
    functionsReached:
    - dt_for_each_range
    - pci_find_host_bridge_node
    - mfn_add
    - mfn_to_maddr
    linkageType: ''
    returnType: bool
    signature: bool pci_check_bar(const struct pci_dev *pdev, mfn_t start, mfn_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: upper_32_bits
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: upper_32_bits(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: lower_32_bits
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lower_32_bits(n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:32,1
    - Dst: readb
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:41,1
    - Dst: readw
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:44,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:47,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - addr
    - len
    - val
    argTypes:
    - void*
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 55
    functionName: dw_pcie_read
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - readw
    - IS_ALIGNED
    - readl
    - readb
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int dw_pcie_read(void __iomem *addr, unsigned int len, uint32_t *val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:59,1
    - Dst: writeb
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:65,1
    - Dst: writew
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:68,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:71,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - addr
    - len
    - val
    argTypes:
    - void*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: dw_pcie_write
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - writel
    - writew
    - writeb
    - IS_ALIGNED
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int dw_pcie_write(void __iomem *addr, unsigned int len, uint32_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_read
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:88,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - bridge
    - reg
    - size
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: dw_pcie_read_dbi
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_read
    - printk
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t dw_pcie_read_dbi(struct pci_host_bridge *bridge, uint32_t
      reg,\n                                 size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_write
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:101,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bridge
    - reg
    - size
    - val
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: dw_pcie_write_dbi
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - printk
    - dw_pcie_write
    linkageType: ''
    returnType: void
    signature: "void dw_pcie_write_dbi(struct pci_host_bridge *bridge, uint32_t reg,\n
      \                             size_t size, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_read_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bridge
    - reg
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: dw_pcie_readl_dbi
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_read_dbi
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dw_pcie_readl_dbi(struct pci_host_bridge *bridge, uint32_t
      reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_write_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pci
    - reg
    - val
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: dw_pcie_writel_dbi
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_write_dbi
    linkageType: ''
    returnType: void
    signature: "void dw_pcie_writel_dbi(struct pci_host_bridge *pci, uint32_t reg,\n
      \                              uint32_t val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_readl_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:122,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:126,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: dw_pcie_read_iatu_unroll_enabled
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - printk
    - dt_node_full_name
    - dw_pcie_readl_dbi
    linkageType: ''
    returnType: void
    signature: void dw_pcie_read_iatu_unroll_enabled(struct pci_host_bridge *bridge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_read
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:137,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pci
    - reg
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: dw_pcie_readl_atu
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_read
    - printk
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dw_pcie_readl_atu(struct pci_host_bridge *pci, uint32_t reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_write
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:150,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pci
    - reg
    - val
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: dw_pcie_writel_atu
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - printk
    - dw_pcie_write
    linkageType: ''
    returnType: void
    signature: "void dw_pcie_writel_atu(struct pci_host_bridge *pci, uint32_t reg,\n
      \                              uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCIE_GET_ATU_OUTB_UNR_REG_OFFSET
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:158,1
    - Dst: dw_pcie_readl_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pci
    - index
    - reg
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: dw_pcie_readl_ob_unroll
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_readl_atu
    - PCIE_GET_ATU_OUTB_UNR_REG_OFFSET
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t dw_pcie_readl_ob_unroll(struct pci_host_bridge *pci,\n                                        uint32_t
      index, uint32_t reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCIE_GET_ATU_OUTB_UNR_REG_OFFSET
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:166,1
    - Dst: dw_pcie_writel_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pci
    - index
    - reg
    - val
    argTypes:
    - struct pci_host_bridge*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: dw_pcie_writel_ob_unroll
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_writel_atu
    - PCIE_GET_ATU_OUTB_UNR_REG_OFFSET
    linkageType: ''
    returnType: void
    signature: "void dw_pcie_writel_ob_unroll(struct pci_host_bridge *pci,\n                                     uint32_t
      index, uint32_t reg, uint32_t val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:179,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:180,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:181,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:182,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:183,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:184,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:185,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:186,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:187,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:188,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:189,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:190,1
    - Dst: PCIE_ATU_FUNC_NUM
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:191,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:192,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:193,1
    - Dst: dw_pcie_writel_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:194,1
    - Dst: dw_pcie_readl_ob_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:203,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:207,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 7
    argNames:
    - pci
    - func_no
    - index
    - type
    - cpu_addr
    - pci_addr
    - size
    argTypes:
    - struct pci_host_bridge*
    - uint8_t
    - int
    - int
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 171
    functionDepth: 4
    functionLinenumber: 171
    functionLinenumberEnd: 212
    functionName: dw_pcie_prog_outbound_atu_unroll
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - mdelay
    - PCIE_ATU_FUNC_NUM
    - printk
    - upper_32_bits
    - dw_pcie_writel_ob_unroll
    - lower_32_bits
    - dw_pcie_readl_ob_unroll
    linkageType: ''
    returnType: int
    signature: "int dw_pcie_prog_outbound_atu_unroll(struct pci_host_bridge *pci,\n
      \                                           uint8_t func_no, int index,\n                                            int
      type, uint64_t cpu_addr,\n                                            uint64_t
      pci_addr, uint64_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_prog_outbound_atu_unroll
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:223,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:226,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:228,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:228,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:229,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:229,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:230,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:230,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:232,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:233,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:234,1
    - Dst: lower_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:234,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:235,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:235,1
    - Dst: PCIE_ATU_FUNC_NUM
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:236,1
    - Dst: upper_32_bits
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:237,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:240,1
    - Dst: dw_pcie_writel_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:241,1
    - Dst: dw_pcie_readl_dbi
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:249,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:253,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - pci
    - func_no
    - index
    - type
    - cpu_addr
    - pci_addr
    - size
    argTypes:
    - struct pci_host_bridge*
    - uint8_t
    - int
    - int
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 214
    functionDepth: 5
    functionLinenumber: 214
    functionLinenumberEnd: 258
    functionName: __dw_pcie_prog_outbound_atu
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_writel_dbi
    - dw_pcie_prog_outbound_atu_unroll
    - mdelay
    - PCIE_ATU_FUNC_NUM
    - dw_pcie_readl_dbi
    - printk
    - upper_32_bits
    - lower_32_bits
    linkageType: ''
    returnType: int
    signature: "int __dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci,\n                                       uint8_t
      func_no, int index, int type,\n                                       uint64_t
      cpu_addr, uint64_t pci_addr,\n                                       uint64_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dw_pcie_prog_outbound_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - pci
    - index
    - type
    - cpu_addr
    - pci_addr
    - size
    argTypes:
    - struct pci_host_bridge*
    - int
    - int
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 6
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: dw_pcie_prog_outbound_atu
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 1
    functionsReached:
    - __dw_pcie_prog_outbound_atu
    linkageType: ''
    returnType: int
    signature: "int dw_pcie_prog_outbound_atu(struct pci_host_bridge *pci, int index,\n
      \                                    int type, uint64_t cpu_addr,\n                                     uint64_t
      pci_addr, uint64_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bridge
    - version
    argTypes:
    - struct pci_host_bridge*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: dw_pcie_set_version
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dw_pcie_set_version(struct pci_host_bridge *bridge, unsigned int
      version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCIE_ATU_BUS
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:281,1
    - Dst: PCIE_ATU_DEV
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:281,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:281,1
    - Dst: PCIE_ATU_FUNC
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:282,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:282,1
    - Dst: dw_pcie_prog_outbound_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - bridge
    - sbdf
    - where
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 7
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: dw_pcie_child_map_bus
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - PCIE_ATU_BUS
    - PCIE_ATU_DEV
    - PCI_FUNC
    - PCI_SLOT
    - dw_pcie_prog_outbound_atu
    - PCIE_ATU_FUNC
    linkageType: ''
    returnType: void
    signature: "void *dw_pcie_child_map_bus(struct pci_host_bridge *bridge,\n                                    pci_sbdf_t
      sbdf, uint32_t where)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:308,1
    - Dst: dw_pcie_read_iatu_unroll_enabled
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:310,1
    - Dst: pci_generic_config_read
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:314,1
    - Dst: dw_pcie_prog_outbound_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - bridge
    - sbdf
    - reg
    - len
    - value
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 295
    functionDepth: 7
    functionLinenumber: 295
    functionLinenumberEnd: 322
    functionName: dw_pcie_child_config_read
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - pci_generic_config_read
    - dw_pcie_prog_outbound_atu
    - dw_pcie_read_iatu_unroll_enabled
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int dw_pcie_child_config_read(struct pci_host_bridge *bridge, pci_sbdf_t
      sbdf,\n                              uint32_t reg, uint32_t len, uint32_t *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_generic_config_write
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:330,1
    - Dst: dw_pcie_prog_outbound_atu
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - bridge
    - sbdf
    - reg
    - len
    - value
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 7
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: dw_pcie_child_config_write
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - dw_pcie_prog_outbound_atu
    - pci_generic_config_write
    linkageType: ''
    returnType: int
    signature: "int dw_pcie_child_config_write(struct pci_host_bridge *bridge, pci_sbdf_t
      sbdf,\n                               uint32_t reg, uint32_t len, uint32_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - bridge
    - addr
    argTypes:
    - struct domain*
    - struct pci_host_bridge*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 350
    functionName: dw_pcie_child_need_p2m_hwdom_mapping
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool dw_pcie_child_need_p2m_hwdom_mapping(struct domain *d,\n                                                 struct
      pci_host_bridge *bridge,\n                                                 uint64_t
      addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pci_host_common_probe
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:364,1
    - Dst: IS_ERR
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:365,1
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:368,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:370,1
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:374,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:377,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:378,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:380,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:383,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:384,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:386,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:388,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:391,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:392,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:395,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:403,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/arch/arm/pci/pci-designware.c:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - dev
    - data
    - ops
    - child_ops
    argTypes:
    - struct dt_device_node*
    - void*
    - struct pci_ecam_ops*
    - struct pci_ecam_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 407
    functionName: dw_pcie_host_probe
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dt_device_get_address
    - IS_ERR
    - ERR_PTR
    - dt_property_read_u32
    - dt_property_match_string
    - dt_node_full_name
    - ioremap_nocache
    - printk
    - pci_host_common_probe
    linkageType: ''
    returnType: struct pci_host_bridge
    signature: "struct pci_host_bridge *__init\ndw_pcie_host_probe(struct dt_device_node
      *dev, const void *data,\n                   const struct pci_ecam_ops *ops,\n
      \                  const struct pci_ecam_ops *child_ops)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: dw_pcie_get_priv
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *dw_pcie_get_priv(struct pci_host_bridge *bridge)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bridge
    - other
    argTypes:
    - struct pci_host_bridge*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: dw_pcie_set_priv
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dw_pcie_set_priv(struct pci_host_bridge *bridge, void *other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTR_RET
      Src: /src/xen/xen/arch/arm/pci/pci-host-generic.c:32,1
    - Dst: pci_host_common_probe
      Src: /src/xen/xen/arch/arm/pci/pci-host-generic.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: pci_host_generic_probe
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-generic.c
    functionUses: 0
    functionsReached:
    - pci_host_common_probe
    - PTR_RET
    linkageType: ''
    returnType: int
    signature: "int pci_host_generic_probe(struct dt_device_node *dev,\n                                         const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _mask
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: FIELD_PREP
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_PREP(_mask, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PCIE_ATU_BUS
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCIE_ATU_BUS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: PCIE_ATU_DEV
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCIE_ATU_DEV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: PCIE_ATU_FUNC
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCIE_ATU_FUNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - region
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: PCIE_GET_ATU_OUTB_UNR_REG_OFFSET
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: PCIE_ATU_FUNC_NUM
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-designware.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCIE_ATU_FUNC_NUM(pf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/arch/arm/pci/ecam.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - bridge
    - sbdf
    - where
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: pci_ecam_map_bus
    functionSourceFile: /src/xen/xen/arch/arm/pci/ecam.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: void
    signature: "void *pci_ecam_map_bus(struct pci_host_bridge *bridge,\n                               pci_sbdf_t
      sbdf, uint32_t where)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - bridge
    - addr
    argTypes:
    - struct domain*
    - struct pci_host_bridge*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: pci_ecam_need_p2m_hwdom_mapping
    functionSourceFile: /src/xen/xen/arch/arm/pci/ecam.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool pci_ecam_need_p2m_hwdom_mapping(struct domain *d,\n                                            struct
      pci_host_bridge *bridge,\n                                            uint64_t
      addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/pci/pci-host-zynqmp.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: nwl_cfg_reg_index
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-zynqmp.c
    functionUses: 0
    functionsReached:
    - dt_property_match_string
    linkageType: ''
    returnType: int
    signature: int nwl_cfg_reg_index(struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PTR_RET
      Src: /src/xen/xen/arch/arm/pci/pci-host-zynqmp.c:51,1
    - Dst: pci_host_common_probe
      Src: /src/xen/xen/arch/arm/pci/pci-host-zynqmp.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: pci_host_generic_probe
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-zynqmp.c
    functionUses: 0
    functionsReached:
    - pci_host_common_probe
    - PTR_RET
    linkageType: ''
    returnType: int
    signature: "int pci_host_generic_probe(struct dt_device_node *dev,\n                                         const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: CNVID
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CNVID(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: CNVIDMSK
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CNVIDMSK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: rcar4_cfg_reg_index
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - dt_property_match_string
    linkageType: ''
    returnType: int
    signature: int rcar4_cfg_reg_index(struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: rcar4_child_cfg_reg_index
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - dt_property_match_string
    linkageType: ''
    returnType: int
    signature: int rcar4_child_cfg_reg_index(struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pci
    - reg
    - val
    argTypes:
    - struct rcar4_pcie_priv*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: rcar4_pcie_writel_app
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: "void rcar4_pcie_writel_app(struct rcar4_pcie_priv *pci, uint32_t reg,\n
      \                                 uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pci
    - reg
    argTypes:
    - struct rcar4_pcie_priv*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: rcar4_pcie_readl_app
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rcar4_pcie_readl_app(struct rcar4_pcie_priv *pci, uint32_t
      reg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:107,1
    - Dst: rcar4_pcie_readl_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:108,1
    - Dst: rcar4_pcie_writel_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:116,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:117,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: rcar4_pcie_osid_regs_init
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - bitmap_zero
    - rcar4_pcie_writel_app
    - dw_pcie_get_priv
    - printk
    - rcar4_pcie_readl_app
    linkageType: ''
    returnType: int
    signature: int rcar4_pcie_osid_regs_init(struct pci_host_bridge *bridge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:127,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:130,1
    - Dst: set_bit
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bridge
    argTypes:
    - struct pci_host_bridge*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: rcar4_pcie_osid_reg_alloc
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - find_first_zero_bit
    - dw_pcie_get_priv
    - set_bit
    linkageType: ''
    returnType: int
    signature: int rcar4_pcie_osid_reg_alloc(struct pci_host_bridge *bridge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:142,1
    - Dst: clear_bit
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bridge
    - reg_id
    argTypes:
    - struct pci_host_bridge*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: rcar4_pcie_osid_reg_free
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - dw_pcie_get_priv
    - clear_bit
    linkageType: ''
    returnType: void
    signature: "void rcar4_pcie_osid_reg_free(struct pci_host_bridge *bridge,\n                              unsigned
      int reg_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:150,1
    - Dst: rcar4_pcie_readl_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:151,1
    - Dst: CNVID
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:151,1
    - Dst: rcar4_pcie_writel_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:156,1
    - Dst: CNVID
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - bridge
    - reg_id
    - osid
    - bdf
    argTypes:
    - struct pci_host_bridge*
    - unsigned int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: rcar4_pcie_osid_bdf_set
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - rcar4_pcie_writel_app
    - dw_pcie_get_priv
    - rcar4_pcie_readl_app
    - CNVID
    linkageType: ''
    returnType: void
    signature: "void rcar4_pcie_osid_bdf_set(struct pci_host_bridge *bridge,\n                             unsigned
      int reg_id, uint32_t osid, uint32_t bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:162,1
    - Dst: rcar4_pcie_readl_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:163,1
    - Dst: CNVID
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:163,1
    - Dst: rcar4_pcie_writel_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:166,1
    - Dst: CNVID
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bridge
    - reg_id
    argTypes:
    - struct pci_host_bridge*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: rcar4_pcie_osid_bdf_clear
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - rcar4_pcie_writel_app
    - dw_pcie_get_priv
    - rcar4_pcie_readl_app
    - CNVID
    linkageType: ''
    returnType: void
    signature: "void rcar4_pcie_osid_bdf_clear(struct pci_host_bridge *bridge,\n                               unsigned
      int reg_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_pcie_get_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:172,1
    - Dst: rcar4_pcie_readl_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:174,1
    - Dst: CNVIDMSK
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:174,1
    - Dst: rcar4_pcie_writel_app
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:178,1
    - Dst: CNVIDMSK
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bridge
    - reg_id
    - data
    argTypes:
    - struct pci_host_bridge*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: rcar4_pcie_bdf_msk_set
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - CNVIDMSK
    - rcar4_pcie_writel_app
    - dw_pcie_get_priv
    - rcar4_pcie_readl_app
    linkageType: ''
    returnType: void
    signature: "void rcar4_pcie_bdf_msk_set(struct pci_host_bridge *bridge, unsigned
      int reg_id,\n                            uint32_t data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:189,1
    - Dst: dw_pcie_host_probe
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:193,1
    - Dst: dt_property_match_string
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:196,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:199,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:203,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:206,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:210,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:213,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:217,1
    - Dst: dw_pcie_set_priv
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:220,1
    - Dst: dw_pcie_set_version
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:221,1
    - Dst: xfree
      Src: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 227
    functionName: pci_host_rcar4_probe
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-host-rcar4.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dt_device_get_address
    - dw_pcie_host_probe
    - dw_pcie_set_version
    - dt_property_match_string
    - ioremap_nocache
    - printk
    - dw_pcie_set_priv
    - xfree
    linkageType: ''
    returnType: int
    signature: "int pci_host_rcar4_probe(struct dt_device_node *dev,\n                                       const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PCI_ERR_VALUE
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_ERR_VALUE(len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - bridge
    - sbdf
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: get_ops
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct pci_ops
    signature: "struct pci_ops *get_ops(struct pci_host_bridge *bridge,\n                                     pci_sbdf_t
      sbdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ops
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:37,1
    - Dst: struct pci_ops*::map_bus
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bridge
    - sbdf
    - reg
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: map_bus
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 1
    functionsReached:
    - struct pci_ops*::map_bus
    - get_ops
    linkageType: ''
    returnType: void
    signature: "void *map_bus(struct pci_host_bridge *bridge,\n                                    pci_sbdf_t
      sbdf, uint32_t reg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: map_bus
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:45,1
    - Dst: readb
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:56,1
    - Dst: readw
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:59,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:62,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:65,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - bridge
    - sbdf
    - reg
    - len
    - value
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: pci_generic_config_read
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 1
    functionsReached:
    - readw
    - map_bus
    - readl
    - readb
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int pci_generic_config_read(struct pci_host_bridge *bridge, pci_sbdf_t
      sbdf,\n                            uint32_t reg, uint32_t len, uint32_t *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: map_bus
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:75,1
    - Dst: writeb
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:83,1
    - Dst: writew
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:86,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:89,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - bridge
    - sbdf
    - reg
    - len
    - value
    argTypes:
    - struct pci_host_bridge*
    - pci_sbdf_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: pci_generic_config_write
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 1
    functionsReached:
    - writel
    - writew
    - writeb
    - map_bus
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int pci_generic_config_write(struct pci_host_bridge *bridge, pci_sbdf_t
      sbdf,\n                             uint32_t reg, uint32_t len, uint32_t value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCI_ERR_VALUE
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:102,1
    - Dst: pci_find_host_bridge
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:103,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:106,1
    - Dst: get_ops
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:109,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:110,1
    - Dst: struct pci_ops*::read
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sbdf
    - reg
    - len
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 116
    functionName: pci_config_read
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached:
    - PCI_ERR_VALUE
    - pci_find_host_bridge
    - unlikely
    - get_ops
    - struct pci_ops*::read
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t pci_config_read(pci_sbdf_t sbdf, unsigned int reg,\n                                unsigned
      int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_host_bridge
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:121,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:124,1
    - Dst: get_ops
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:127,1
    - Dst: unlikely
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:128,1
    - Dst: struct pci_ops*::write
      Src: /src/xen/xen/arch/arm/pci/pci-access.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - sbdf
    - reg
    - len
    - val
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: pci_config_write
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached:
    - unlikely
    - struct pci_ops*::write
    - get_ops
    - pci_find_host_bridge
    linkageType: ''
    returnType: void
    signature: "void pci_config_write(pci_sbdf_t sbdf, unsigned int reg,\n                             unsigned
      int len, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: PCI_OP_WRITE
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_OP_WRITE(size, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: PCI_OP_READ
    functionSourceFile: /src/xen/xen/arch/arm/pci/pci-access.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_OP_READ(size, type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:33,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:36,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:41,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:41,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:42,1
    - Dst: sev
      Src: /src/xen/xen/arch/arm/platforms/rcar2.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: rcar2_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/rcar2.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - __pa
    - sev
    - ioremap_nocache
    - dprintk
    linkageType: ''
    returnType: int
    signature: int rcar2_smp_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:63,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:67,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:70,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:74,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 82
    functionName: rpi4_map_watchdog
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - ioremap_nocache
    - dt_device_get_paddr
    - printk
    linkageType: ''
    returnType: void
    signature: void *rpi4_map_watchdog(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rpi4_map_watchdog
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:87,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:93,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:94,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:97,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 101
    functionName: rpi4_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm-raspberry-pi.c
    functionUses: 0
    functionsReached:
    - writel
    - rpi4_map_watchdog
    - mdelay
    - readl
    linkageType: ''
    returnType: void
    signature: void rpi4_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: IMX_SIP_FID
    functionSourceFile: /src/xen/xen/arch/arm/platforms/imx8qm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMX_SIP_FID(fid)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - subfunction_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: imx8qm_is_sip_time_call_ok
    functionSourceFile: /src/xen/xen/arch/arm/platforms/imx8qm.c
    functionUses: 0
    functionsReached:
    - gprintk
    linkageType: ''
    returnType: bool
    signature: bool imx8qm_is_sip_time_call_ok(uint32_t subfunction_id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:68,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:69,1
    - Dst: cpus_have_const_cap
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:72,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:74,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:81,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:83,1
    - Dst: IMX_SIP_FID
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:89,1
    - Dst: IMX_SIP_FID
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:92,1
    - Dst: imx8qm_is_sip_time_call_ok
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:93,1
    - Dst: IMX_SIP_FID
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:97,1
    - Dst: IMX_SIP_FID
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:99,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:103,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:109,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:111,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:112,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:113,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:114,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:115,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:116,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:119,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:120,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:121,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/imx8qm.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 125
    functionName: imx8qm_smc
    functionSourceFile: /src/xen/xen/arch/arm/platforms/imx8qm.c
    functionUses: 0
    functionsReached:
    - IMX_SIP_FID
    - set_user_reg
    - get_user_reg
    - printk_once
    - cpus_have_const_cap
    - gprintk
    - is_hardware_domain
    - arm_smccc_1_1_smc
    - imx8qm_is_sip_time_call_ok
    linkageType: ''
    returnType: bool
    signature: bool imx8qm_smc(struct cpu_user_regs *regs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpus_have_const_cap
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp.c:36,1
    - Dst: printk_once
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp.c:38,1
    - Dst: zynqmp_eemi
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: zynqmp_smc
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp.c
    functionUses: 0
    functionsReached:
    - printk_once
    - cpus_have_const_cap
    - zynqmp_eemi
    linkageType: ''
    returnType: bool
    signature: bool zynqmp_smc(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:46,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:49,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:53,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - compat_str
    - dn
    - reg_base
    argTypes:
    - char*
    - struct dt_device_node**
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: brcm_get_dt_node
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - dprintk
    - dt_device_get_paddr
    linkageType: ''
    returnType: __init
    signature: "__init brcm_get_dt_node(const char *compat_str,\n                                   const
      struct dt_device_node **dn,\n                                   u32 *reg_base)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: brcm_get_dt_node
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:76,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:80,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:82,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:87,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:89,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:94,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:96,1
    - Dst: brcm_get_dt_node
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:101,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:107,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:109,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:111,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 117
    functionName: brcm_populate_plat_regs
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - dprintk
    - dt_property_read_u32
    - brcm_get_dt_node
    linkageType: ''
    returnType: __init
    signature: __init brcm_populate_plat_regs(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:128,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:130,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:135,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:141,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:143,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:150,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:157,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:158,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:161,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 170
    functionName: brcm_cpu_power_on
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - mdelay
    - ioremap_nocache
    - readl
    - dprintk
    linkageType: ''
    returnType: int
    signature: int brcm_cpu_power_on(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:177,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:179,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:182,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:188,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:190,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 195
    functionName: brcm_cpu_release
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - ioremap_nocache
    - readl
    - dprintk
    linkageType: ''
    returnType: int
    signature: int brcm_cpu_release(u32 cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:200,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:202,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:206,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:211,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:212,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - cpu
    - pc
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 217
    functionName: brcm_set_boot_continuation
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ioremap_nocache
    - writel
    - dprintk
    linkageType: ''
    returnType: int
    signature: int brcm_set_boot_continuation(u32 cpu, u32 pc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: brcm_cpu_power_on
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:223,1
    - Dst: brcm_set_boot_continuation
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:227,1
    - Dst: brcm_cpu_release
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: brcm_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - brcm_cpu_release
    - brcm_set_boot_continuation
    - brcm_cpu_power_on
    linkageType: ''
    returnType: int
    signature: int brcm_cpu_up(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:239,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:243,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:256,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:258,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:259,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:261,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 267
    functionName: brcm_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - __pa
    - ioremap_nocache
    - readl
    - dprintk
    linkageType: ''
    returnType: int
    signature: int brcm_smp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: brcm_populate_plat_regs
      Src: /src/xen/xen/arch/arm/platforms/brcm.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: brcm_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/brcm.c
    functionUses: 0
    functionsReached:
    - brcm_populate_plat_regs
    linkageType: ''
    returnType: __init
    signature: __init brcm_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/platforms/seattle.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: seattle_system_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/seattle.c
    functionUses: 0
    functionsReached:
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void seattle_system_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/platforms/seattle.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: seattle_system_off
    functionSourceFile: /src/xen/xen/arch/arm/platforms/seattle.c
    functionUses: 0
    functionsReached:
    - arm_smccc_smc
    linkageType: ''
    returnType: void
    signature: void seattle_system_off(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: EXYNOS_ARM_CORE_CONFIG
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXYNOS_ARM_CORE_CONFIG(_nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: EXYNOS_ARM_CORE_STATUS
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXYNOS_ARM_CORE_STATUS(_nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:48,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:51,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:55,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:58,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:62,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:65,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:68,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:73,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:74,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 79
    functionName: exynos5_init_time
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - dt_device_get_paddr
    - writel
    - iounmap
    - ioremap_nocache
    - readl
    - dprintk
    linkageType: ''
    returnType: int
    signature: int exynos5_init_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:85,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:85,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:86,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:89,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:89,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: exynos5250_specific_mapping
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - gaddr_to_gfn
    - maddr_to_mfn
    - map_mmio_regions
    linkageType: ''
    returnType: int
    signature: int exynos5250_specific_mapping(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:105,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:112,1
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:121,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:124,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:128,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:131,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:134,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:137,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:140,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:144,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:145,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:146,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:146,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 151
    functionName: exynos5_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - dt_device_get_paddr
    - writel
    - iounmap
    - __pa
    - ioremap_nocache
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: int exynos5_smp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __raw_readl
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:155,1
    - Dst: EXYNOS_ARM_CORE_STATUS
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - power
    - cpu
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: exynos_cpu_power_state
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - __raw_readl
    - EXYNOS_ARM_CORE_STATUS
    linkageType: ''
    returnType: int
    signature: int exynos_cpu_power_state(void __iomem *power, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __raw_writel
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:161,1
    - Dst: EXYNOS_ARM_CORE_CONFIG
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - power
    - cpu
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: exynos_cpu_power_up
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - __raw_writel
    - EXYNOS_ARM_CORE_CONFIG
    linkageType: ''
    returnType: void
    signature: void exynos_cpu_power_up(void __iomem *power, int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exynos_cpu_power_state
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:169,1
    - Dst: exynos_cpu_power_up
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:171,1
    - Dst: exynos_cpu_power_state
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:175,1
    - Dst: mdelay
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:177,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - power
    - cpu
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: exynos5_cpu_power_up
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - exynos_cpu_power_up
    - dprintk
    - exynos_cpu_power_state
    - mdelay
    linkageType: ''
    returnType: int
    signature: int exynos5_cpu_power_up(void __iomem *power, int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:198,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:199,1
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:200,1
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:204,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:207,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:211,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:214,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - power_base_addr
    - size
    argTypes:
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 222
    functionName: exynos5_get_pmu_baseandsize
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - dt_find_matching_node
    - DT_MATCH_COMPATIBLE
    - dprintk
    - dt_device_get_paddr
    linkageType: ''
    returnType: int
    signature: int exynos5_get_pmu_baseandsize(paddr_t *power_base_addr, paddr_t *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: exynos5_get_pmu_baseandsize
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:231,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:235,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:238,1
    - Dst: exynos5_cpu_power_up
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:242,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:245,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:249,1
    - Dst: arm_smccc_smc
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:252,1
    - Dst: cpu_up_send_sgi
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 255
    functionName: exynos5_cpu_up
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - exynos5_get_pmu_baseandsize
    - iounmap
    - exynos5_cpu_power_up
    - ioremap_nocache
    - cpu_up_send_sgi
    - dprintk
    - arm_smccc_smc
    linkageType: ''
    returnType: int
    signature: int exynos5_cpu_up(int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: exynos5_get_pmu_baseandsize
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:264,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:268,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:271,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:275,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/exynos5.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: exynos5_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/exynos5.c
    functionUses: 0
    functionsReached:
    - exynos5_get_pmu_baseandsize
    - writel
    - iounmap
    - ioremap_nocache
    - dprintk
    linkageType: ''
    returnType: void
    signature: void exynos5_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - nodeid
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: domain_has_node_access
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c
    functionUses: 0
    functionsReached:
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool domain_has_node_access(struct domain *d, uint32_t nodeid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - rst
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: domain_has_reset_access
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c
    functionUses: 0
    functionsReached:
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool domain_has_reset_access(struct domain *d, uint32_t rst)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:55,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:56,1
    - Dst: ARM_SMCCC_CALL_COUNT_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:63,1
    - Dst: ARM_SMCCC_CALL_UID_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:64,1
    - Dst: ARM_SMCCC_REVISION_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:65,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:72,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:76,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:78,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:79,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:80,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:81,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:82,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:84,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:85,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:86,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:87,1
    - Dst: domain_has_node_access
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:88,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:90,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:97,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:98,1
    - Dst: domain_has_reset_access
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:99,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:101,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:109,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:110,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:111,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:115,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:116,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:117,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:123,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:124,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:125,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:126,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:127,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:128,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:129,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:130,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:131,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:132,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:133,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:134,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:135,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:136,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:137,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:138,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:139,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:140,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:141,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:142,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:143,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:144,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:145,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:146,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:148,1
    - Dst: EEMI_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:155,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:159,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:160,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:161,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:162,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:163,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:164,1
    - Dst: IPI_MAILBOX_FID
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:165,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:166,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:168,1
    - Dst: gprintk
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:175,1
    - Dst: arm_smccc_1_1_smc
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:190,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:190,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:191,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:192,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:193,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:194,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:195,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:196,1
    - Dst: get_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:197,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:200,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:201,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:202,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:203,1
    - Dst: set_user_reg
      Src: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c:207,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 116
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 209
    functionName: zynqmp_eemi
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xilinx-zynqmp-eemi.c
    functionUses: 1
    functionsReached:
    - domain_has_node_access
    - EEMI_FID
    - domain_has_reset_access
    - set_user_reg
    - get_user_reg
    - gprintk
    - ARM_SMCCC_CALL_UID_FID
    - ARM_SMCCC_REVISION_FID
    - ARM_SMCCC_CALL_COUNT_FID
    - IPI_MAILBOX_FID
    - is_hardware_domain
    - arm_smccc_1_1_smc
    linkageType: ''
    returnType: bool
    signature: bool zynqmp_eemi(struct cpu_user_regs *regs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:53,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:56,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:60,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:63,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:65,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:68,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:72,1
    - Dst: readl
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:80,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:87,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:88,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 94
    functionName: omap5_init_time
    functionSourceFile: /src/xen/xen/arch/arm/platforms/omap5.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - ioremap_nocache
    - readl
    - dprintk
    linkageType: ''
    returnType: int
    signature: int omap5_init_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:100,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:100,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:101,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:104,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:104,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:105,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:108,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:108,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:109,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:112,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:112,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: omap5_specific_mapping
    functionSourceFile: /src/xen/xen/arch/arm/platforms/omap5.c
    functionUses: 0
    functionsReached:
    - gaddr_to_gfn
    - maddr_to_mfn
    - map_mmio_regions
    linkageType: ''
    returnType: int
    signature: int omap5_specific_mapping(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:122,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:125,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:129,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:130,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:131,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:131,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:133,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:134,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/omap5.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: omap5_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/omap5.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - __pa
    - ioremap_nocache
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: int omap5_smp_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/arch/arm/platforms/midway.c:30,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/midway.c:33,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/midway.c:36,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/midway.c:40,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/midway.c:41,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/midway.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: midway_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/midway.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - BUILD_BUG_ON
    - ioremap_nocache
    - dprintk
    linkageType: ''
    returnType: void
    signature: void midway_reset(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:41,1
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:45,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:49,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:53,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:56,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:60,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - new_wdt
    argTypes:
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 71
    functionName: sunxi_map_watchdog
    functionSourceFile: /src/xen/xen/arch/arm/platforms/sunxi.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - ioremap_nocache
    - dprintk
    - dt_device_get_paddr
    linkageType: ''
    returnType: void
    signature: void *sunxi_map_watchdog(bool *new_wdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: sunxi_old_wdt_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/sunxi.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: void sunxi_old_wdt_reset(void __iomem *wdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:82,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: sunxi_new_wdt_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/sunxi.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: void sunxi_new_wdt_reset(void __iomem *wdt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sunxi_map_watchdog
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:91,1
    - Dst: sunxi_new_wdt_reset
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:96,1
    - Dst: sunxi_old_wdt_reset
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:98,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:100,1
    - Dst: wfi
      Src: /src/xen/xen/arch/arm/platforms/sunxi.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: sunxi_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/sunxi.c
    functionUses: 0
    functionsReached:
    - sunxi_old_wdt_reset
    - iounmap
    - sunxi_map_watchdog
    - sunxi_new_wdt_reset
    - wfi
    linkageType: ''
    returnType: void
    signature: void sunxi_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:50,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - syscfg
    - write
    - function
    - device
    argTypes:
    - uint32_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 60
    functionName: vexpress_ctrl_start
    functionSourceFile: /src/xen/xen/arch/arm/platforms/vexpress.c
    functionUses: 0
    functionsReached:
    - dsb
    - printk
    linkageType: ''
    returnType: int
    signature: "int vexpress_ctrl_start(uint32_t *syscfg, int write,\n                                      int
      function, int device)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:71,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:75,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:80,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:81,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:81,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:83,1
    - Dst: dsb
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:84,1
    - Dst: isb
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:84,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: vexpress_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/vexpress.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - ioremap_nocache
    - dsb
    - isb
    - dprintk
    linkageType: ''
    returnType: void
    signature: void vexpress_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:95,1
    - Dst: dprintk
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:98,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:102,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:103,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:104,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:105,1
    - Dst: __pa
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:105,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/vexpress.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 110
    functionName: vexpress_smp_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/vexpress.c
    functionUses: 0
    functionsReached:
    - iounmap
    - writel
    - __pa
    - ioremap_nocache
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: int vexpress_smp_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DT_MATCH_COMPATIBLE
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:45,1
    - Dst: dt_find_interrupt_controller
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:49,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:51,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:53,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:55,1
    - Dst: panic
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: xgene_check_pirq_eoi
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xgene-storm.c
    functionUses: 0
    functionsReached:
    - panic
    - DT_MATCH_COMPATIBLE
    - dt_find_interrupt_controller
    - dt_device_get_paddr
    linkageType: ''
    returnType: void
    signature: void xgene_check_pirq_eoi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: xgene_storm_quirks
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xgene-storm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xgene_storm_quirks(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:79,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:83,1
    - Dst: printk
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:87,1
    - Dst: writel
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:92,1
    - Dst: iounmap
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: xgene_storm_reset
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xgene-storm.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ioremap_nocache
    - writel
    - printk
    linkageType: ''
    returnType: void
    signature: void xgene_storm_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xgene_check_pirq_eoi
      Src: /src/xen/xen/arch/arm/platforms/xgene-storm.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: xgene_storm_init
    functionSourceFile: /src/xen/xen/arch/arm/platforms/xgene-storm.c
    functionUses: 0
    functionsReached:
    - xgene_check_pirq_eoi
    linkageType: ''
    returnType: int
    signature: int xgene_storm_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: GETU32
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 723
    functionName: PUTU32
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:735,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:736,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:737,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:738,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:757,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:758,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:779,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:780,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 3
    argNames:
    - rk
    - cipherKey
    - keyBits
    argTypes:
    - u32[]
    - u8[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 809
    functionName: rijndaelKeySetupEnc
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - GETU32
    linkageType: ''
    returnType: int
    signature: int rijndaelKeySetupEnc(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[],
      int keyBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelKeySetupEnc
      Src: /src/xen/xen/crypto/rijndael.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - rk
    - cipherKey
    - keyBits
    argTypes:
    - u32[]
    - u8[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 859
    functionName: rijndaelKeySetupDec
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelKeySetupEnc
    linkageType: ''
    returnType: int
    signature: int rijndaelKeySetupDec(u32 rk[/*4*(Nr + 1)*/], const u8 cipherKey[],
      int keyBits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:876,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:877,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:878,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:879,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1023,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1030,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1037,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 85
    argCount: 4
    argNames:
    - rk
    - Nr
    - pt
    - ct
    argTypes:
    - u32[]
    - int
    - u8[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 1045
    functionName: rijndaelEncrypt
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - PUTU32
    - GETU32
    linkageType: ''
    returnType: void
    signature: "void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8
      pt[16],\n    u8 ct[16])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:1062,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:1063,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:1064,1
    - Dst: GETU32
      Src: /src/xen/xen/crypto/rijndael.c:1065,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1209,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1216,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1223,1
    - Dst: PUTU32
      Src: /src/xen/xen/crypto/rijndael.c:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 85
    argCount: 4
    argNames:
    - rk
    - Nr
    - ct
    - pt
    argTypes:
    - u32[]
    - int
    - u8[]
    - u8[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1231
    functionName: rijndaelDecrypt
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - PUTU32
    - GETU32
    linkageType: ''
    returnType: void
    signature: "void rijndaelDecrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8
      ct[16],\n    u8 pt[16])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelKeySetupEnc
      Src: /src/xen/xen/crypto/rijndael.c:1243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - key
    - bits
    argTypes:
    - rijndael_ctx*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1251
    functionName: rijndael_set_key_enc_only
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelKeySetupEnc
    linkageType: ''
    returnType: int
    signature: int rijndael_set_key_enc_only(rijndael_ctx *ctx, const unsigned char
      *key, int bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelKeySetupEnc
      Src: /src/xen/xen/crypto/rijndael.c:1259,1
    - Dst: rijndaelKeySetupDec
      Src: /src/xen/xen/crypto/rijndael.c:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - key
    - bits
    argTypes:
    - rijndael_ctx*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1254
    functionDepth: 3
    functionLinenumber: 1254
    functionLinenumberEnd: 1269
    functionName: rijndael_set_key
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelKeySetupDec
    - rijndaelKeySetupEnc
    linkageType: ''
    returnType: int
    signature: int rijndael_set_key(rijndael_ctx *ctx, const unsigned char *key, int
      bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelDecrypt
      Src: /src/xen/xen/crypto/rijndael.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - src
    - dst
    argTypes:
    - rijndael_ctx*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1275
    functionName: rijndael_decrypt
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelDecrypt
    linkageType: ''
    returnType: void
    signature: void rijndael_decrypt(rijndael_ctx *ctx, const unsigned char *src,
      unsigned char *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rijndaelEncrypt
      Src: /src/xen/xen/crypto/rijndael.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - src
    - dst
    argTypes:
    - rijndael_ctx*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: rijndael_encrypt
    functionSourceFile: /src/xen/xen/crypto/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndaelEncrypt
    linkageType: ''
    returnType: void
    signature: void rijndael_encrypt(rijndael_ctx *ctx, const unsigned char *src,
      unsigned char *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: UINT64_C
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_C(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - ih
    - ','
    - il
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: ADD128
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD128(rh,rl,ih,il)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: MUL64
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL64(rh,rl,i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - ih
    - ','
    - il
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: ADD128
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD128(rh,rl,ih,il)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: MUL64
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL64(rh,rl,i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: MUL64
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL64(rh,rl,i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - ih
    - ','
    - il
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: ADD128
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD128(rh,rl,ih,il)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: MUL32
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL32(i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: ALIGN
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: ALIGN
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - ih
    - ','
    - il
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: ADD128
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD128(rh,rl,ih,il)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: MUL32
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL32(i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: PMUL64
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PMUL64(rh,rl,i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - rh
    - ','
    - rl
    - ','
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: MUL64
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL64(rh,rl,i1,i2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: get64BE
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get64BE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: get64LE
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get64LE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: get64BE
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get64BE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: get64LE
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get64LE(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mp
    - ','
    - kp
    - ','
    - nw
    - ','
    - rh
    - ','
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: nh_16
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nh_16(mp, kp, nw, rh, rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - mp
    - ','
    - kp
    - ','
    - nw
    - ','
    - rh
    - ','
    - rl
    - ','
    - rh1
    - ','
    - rl1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 221
    functionName: nh_16_2
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nh_16_2(mp, kp, nw, rh, rl, rh1, rl1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mp
    - ','
    - kp
    - ','
    - nw
    - ','
    - rh
    - ','
    - rl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: nh_vmac_nhbytes
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nh_vmac_nhbytes(mp, kp, nw, rh, rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - mp
    - ','
    - kp
    - ','
    - nw
    - ','
    - rh
    - ','
    - rl
    - ','
    - rh1
    - ','
    - rl1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: nh_vmac_nhbytes_2
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nh_vmac_nhbytes_2(mp, kp, nw, rh, rl, rh1, rl1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - ah
    - ','
    - al
    - ','
    - kh
    - ','
    - kl
    - ','
    - mh
    - ','
    - ml
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: poly_step
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poly_step(ah, al, kh, kl, mh, ml)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: GNU_AS2
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GNU_AS2(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: GNU_AS3
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GNU_AS3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: GNU_ASL
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GNU_ASL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: GNU_ASJ
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GNU_ASJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: AS2
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS2(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: AS3
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: ASS
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASS(x, y, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: ASL
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: ASJ
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: AS2
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS2(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: AS3
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: ASS
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASS(x, y, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: ASL
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: ASJ
    functionSourceFile: /src/xen/xen/crypto/vmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASJ(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:22,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:29,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 35
    functionName: apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:41,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:48,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:60,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:66,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:69,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_nofunc.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_hello_world.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_hello_world.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void apply_hook(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_hello_world.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_hello_world.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void revert_hook(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_hello_world.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: hi_func
    functionSourceFile: /src/xen/xen/test/livepatch/xen_hello_world.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void hi_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_hello_world.c:36,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_hello_world.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: check_fnc
    functionSourceFile: /src/xen/xen/test/livepatch/xen_hello_world.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void check_fnc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: xen_bye_world
    functionSourceFile: /src/xen/xen/test/livepatch/xen_bye_world_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_bye_world(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative
      Src: /src/xen/xen/test/livepatch/xen_hello_world_func.c:24,1
    - Dst: get_unsafe
      Src: /src/xen/xen/test/livepatch/xen_hello_world_func.c:29,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_hello_world_func.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: xen_hello_world
    functionSourceFile: /src/xen/xen/test/livepatch/xen_hello_world_func.c
    functionUses: 0
    functionsReached:
    - alternative
    - get_unsafe
    - BUG_ON
    linkageType: ''
    returnType: char
    signature: char *xen_hello_world(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:24,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:31,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:32,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: pre_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:44,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:51,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 57
    functionName: apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:63,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:70,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:71,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:72,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: post_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:82,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:89,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:90,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: pre_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:102,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:109,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:110,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 114
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_noapply.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:24,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:31,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:32,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 38
    functionName: pre_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:44,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:51,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:52,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: post_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:62,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:69,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:70,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: pre_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:82,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:89,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 95
    functionName: revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:101,1
    - Dst: local_irq_save
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:103,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:104,1
    - Dst: revert_payload
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:104,1
    - Dst: revert_payload_tail
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:105,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:106,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_norevert.c
    functionUses: 0
    functionsReached:
    - revert_payload
    - revert_payload_tail
    - BUG_ON
    - printk
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:23,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:29,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: pre_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:39,1
    - Dst: BUG
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:40,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: unreachable_pre_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c
    functionUses: 0
    functionsReached:
    - BUG
    - printk
    linkageType: ''
    returnType: int
    signature: int unreachable_pre_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:48,1
    - Dst: BUG
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:49,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: unreachable_post_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks_fail.c
    functionUses: 0
    functionsReached:
    - BUG
    - printk
    linkageType: ''
    returnType: void
    signature: void unreachable_post_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:22,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:29,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:30,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 36
    functionName: pre_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:42,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:49,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:50,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: post_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:60,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:67,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:68,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: pre_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:80,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:87,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:88,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks_marker.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 12
    functionName: xen_replace_world
    functionSourceFile: /src/xen/xen/test/livepatch/xen_replace_world_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_replace_world(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:25,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:35,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:47,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:57,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 63
    functionName: revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:69,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:75,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:78,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_action_hooks.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_action_hooks.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:29,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:36,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 42
    functionName: pre_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:48,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:55,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: post_apply_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void post_apply_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:65,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:72,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: pre_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int pre_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:85,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:92,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:95,1
    - Dst: BUG_ON
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:96,1
    - Dst: printk
      Src: /src/xen/xen/test/livepatch/xen_prepost_hooks.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - payload
    argTypes:
    - livepatch_payload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: post_revert_hook
    functionSourceFile: /src/xen/xen/test/livepatch/xen_prepost_hooks.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void post_revert_hook(livepatch_payload_t *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/fixdep.c:104,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: usage
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 36
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/fixdep.c:118,1
    - Dst: vprintf
      Src: /src/xen/xen/tools/fixdep.c:119,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:121,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:122,1
    - Dst: va_end
      Src: /src/xen/xen/tools/fixdep.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: xprintf
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 6
    functionsReached:
    - va_start
    - vprintf
    - exit
    - va_end
    - perror
    linkageType: ''
    returnType: void
    signature: void xprintf(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putchar
      Src: /src/xen/xen/tools/fixdep.c:131,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:133,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 136
    functionName: xputchar
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - exit
    - putchar
    - perror
    linkageType: ''
    returnType: void
    signature: void xputchar(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:145,1
    - Dst: tolower
      Src: /src/xen/xen/tools/fixdep.c:151,1
    - Dst: xputchar
      Src: /src/xen/xen/tools/fixdep.c:153,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - m
    - slen
    - dir
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: print_dep
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - xputchar
    - xprintf
    - tolower
    linkageType: ''
    returnType: void
    signature: void print_dep(const char *m, int slen, const char *dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - str
    - sz
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: strhash
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strhash(const char *str, unsigned int sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/tools/fixdep.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - name
    - len
    - hash
    argTypes:
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: is_defined_config
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int is_defined_config(const char *name, int len, unsigned int hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/tools/fixdep.c:199,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:202,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:203,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/fixdep.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - name
    - len
    - hash
    argTypes:
    - char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: define_config
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - exit
    - memcpy
    - malloc
    - perror
    linkageType: ''
    returnType: void
    signature: void define_config(const char *name, int len, unsigned int hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strhash
      Src: /src/xen/xen/tools/fixdep.c:217,1
    - Dst: is_defined_config
      Src: /src/xen/xen/tools/fixdep.c:219,1
    - Dst: define_config
      Src: /src/xen/xen/tools/fixdep.c:222,1
    - Dst: print_dep
      Src: /src/xen/xen/tools/fixdep.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - m
    - slen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: use_config
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - strhash
    - print_dep
    - define_config
    - is_defined_config
    linkageType: ''
    returnType: void
    signature: void use_config(const char *m, int slen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/fixdep.c:229,1
    - Dst: memcmp
      Src: /src/xen/xen/tools/fixdep.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - slen
    - sub
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: str_ends_with
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int str_ends_with(const char *s, int slen, const char *sub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/xen/xen/tools/fixdep.c:242,1
    - Dst: isalnum
      Src: /src/xen/xen/tools/fixdep.c:243,1
    - Dst: isalnum
      Src: /src/xen/xen/tools/fixdep.c:249,1
    - Dst: str_ends_with
      Src: /src/xen/xen/tools/fixdep.c:251,1
    - Dst: use_config
      Src: /src/xen/xen/tools/fixdep.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: parse_config_file
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - strstr
    - isalnum
    - str_ends_with
    - use_config
    linkageType: ''
    returnType: void
    signature: void parse_config_file(const char *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/xen/tools/fixdep.c:267,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/fixdep.c:269,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:270,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:271,1
    - Dst: fstat
      Src: /src/xen/xen/tools/fixdep.c:273,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/fixdep.c:274,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:275,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:276,1
    - Dst: malloc
      Src: /src/xen/xen/tools/fixdep.c:278,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:280,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:281,1
    - Dst: read
      Src: /src/xen/xen/tools/fixdep.c:283,1
    - Dst: perror
      Src: /src/xen/xen/tools/fixdep.c:284,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:285,1
    - Dst: close
      Src: /src/xen/xen/tools/fixdep.c:288,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 291
    functionName: read_file
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 4
    functionsReached:
    - open
    - read
    - malloc
    - close
    - fprintf
    - exit
    - fstat
    - perror
    linkageType: ''
    returnType: void
    signature: void *read_file(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_ends_with
      Src: /src/xen/xen/tools/fixdep.c:296,1
    - Dst: str_ends_with
      Src: /src/xen/xen/tools/fixdep.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: is_ignored_file
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - str_ends_with
    linkageType: ''
    returnType: int
    signature: int is_ignored_file(const char *s, int len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_ignored_file
      Src: /src/xen/xen/tools/fixdep.c:332,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:352,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:354,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:358,1
    - Dst: read_file
      Src: /src/xen/xen/tools/fixdep.c:361,1
    - Dst: parse_config_file
      Src: /src/xen/xen/tools/fixdep.c:362,1
    - Dst: free
      Src: /src/xen/xen/tools/fixdep.c:363,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/fixdep.c:377,1
    - Dst: exit
      Src: /src/xen/xen/tools/fixdep.c:378,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:381,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:382,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 2
    argNames:
    - m
    - target
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 383
    functionName: parse_dep_file
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 0
    functionsReached:
    - is_ignored_file
    - read_file
    - xprintf
    - free
    - fprintf
    - exit
    - parse_config_file
    linkageType: ''
    returnType: void
    signature: void parse_dep_file(char *m, const char *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/xen/xen/tools/fixdep.c:391,1
    - Dst: xprintf
      Src: /src/xen/xen/tools/fixdep.c:397,1
    - Dst: read_file
      Src: /src/xen/xen/tools/fixdep.c:399,1
    - Dst: parse_dep_file
      Src: /src/xen/xen/tools/fixdep.c:400,1
    - Dst: free
      Src: /src/xen/xen/tools/fixdep.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 385
    functionDepth: 6
    functionLinenumber: 385
    functionLinenumberEnd: 404
    functionName: main
    functionSourceFile: /src/xen/xen/tools/fixdep.c
    functionUses: 498
    functionsReached:
    - read_file
    - xprintf
    - parse_dep_file
    - free
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SYMBOL_NAME
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYMBOL_NAME(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/symbols.c:72,1
    - Dst: exit
      Src: /src/xen/xen/tools/symbols.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: usage
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 37
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/tools/symbols.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: is_arm_mapping_symbol
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int is_arm_mapping_symbol(const char *str)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fscanf
      Src: /src/xen/xen/tools/symbols.c:97,1
    - Dst: fscanf
      Src: /src/xen/xen/tools/symbols.c:100,1
    - Dst: fscanf
      Src: /src/xen/xen/tools/symbols.c:102,1
    - Dst: fscanf
      Src: /src/xen/xen/tools/symbols.c:105,1
    - Dst: fscanf
      Src: /src/xen/xen/tools/symbols.c:107,1
    - Dst: fgets
      Src: /src/xen/xen/tools/symbols.c:115,1
    - Dst: strrchr
      Src: /src/xen/xen/tools/symbols.c:121,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/symbols.c:122,1
    - Dst: strchr
      Src: /src/xen/xen/tools/symbols.c:128,1
    - Dst: free
      Src: /src/xen/xen/tools/symbols.c:129,1
    - Dst: strdup
      Src: /src/xen/xen/tools/symbols.c:130,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:142,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:144,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:146,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:148,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:150,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:152,1
    - Dst: toupper
      Src: /src/xen/xen/tools/symbols.c:154,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:157,1
    - Dst: toupper
      Src: /src/xen/xen/tools/symbols.c:160,1
    - Dst: toupper
      Src: /src/xen/xen/tools/symbols.c:161,1
    - Dst: is_arm_mapping_symbol
      Src: /src/xen/xen/tools/symbols.c:162,1
    - Dst: toupper
      Src: /src/xen/xen/tools/symbols.c:169,1
    - Dst: strlen
      Src: /src/xen/xen/tools/symbols.c:174,1
    - Dst: islower
      Src: /src/xen/xen/tools/symbols.c:175,1
    - Dst: strlen
      Src: /src/xen/xen/tools/symbols.c:176,1
    - Dst: malloc
      Src: /src/xen/xen/tools/symbols.c:177,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:178,1
    - Dst: islower
      Src: /src/xen/xen/tools/symbols.c:179,1
    - Dst: stpcpy
      Src: /src/xen/xen/tools/symbols.c:180,1
    - Dst: strcpy
      Src: /src/xen/xen/tools/symbols.c:183,1
    - Dst: strdup
      Src: /src/xen/xen/tools/symbols.c:185,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:185,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:188,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:189,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:190,1
    - Dst: fgets
      Src: /src/xen/xen/tools/symbols.c:194,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 82
    argCount: 2
    argNames:
    - in
    - s
    argTypes:
    - FILE*
    - struct sym_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 198
    functionName: read_symbol
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - SYMBOL_NAME
    - free
    - is_arm_mapping_symbol
    - malloc
    - strrchr
    - strchr
    - islower
    - strcpy
    - strcasecmp
    - strdup
    - toupper
    - fscanf
    - strlen
    - fgets
    - strcmp
    - stpcpy
    linkageType: ''
    returnType: int
    signature: int read_symbol(FILE *in, struct sym_entry *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:221,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:222,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:223,1
    - Dst: strstr
      Src: /src/xen/xen/tools/symbols.c:228,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sym_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 242
    functionName: symbol_valid
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - strstr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int symbol_valid(struct sym_entry *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/xen/xen/tools/symbols.c:246,1
    - Dst: realloc
      Src: /src/xen/xen/tools/symbols.c:249,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/symbols.c:251,1
    - Dst: exit
      Src: /src/xen/xen/tools/symbols.c:252,1
    - Dst: read_symbol
      Src: /src/xen/xen/tools/symbols.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: read_map
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - feof
    - fprintf
    - read_symbol
    - exit
    - realloc
    linkageType: ''
    returnType: void
    signature: void read_map(FILE *in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:268,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:269,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:277,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:278,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:280,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - label
    - align
    - keep
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 283
    functionName: output_label
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void output_label(const char *label, const char *align, bool keep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_symbol
      Src: /src/xen/xen/tools/symbols.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - data
    - len
    - result
    argTypes:
    - unsigned char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 310
    functionName: expand_symbol
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 1
    functionsReached:
    - expand_symbol
    linkageType: ''
    returnType: int
    signature: int expand_symbol(unsigned char *data, int len, char *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 325
    functionName: compare_name_orig
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_name_orig(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: want_symbol_end
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool want_symbol_end(unsigned int idx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:345,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:350,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:351,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:352,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:353,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:354,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:355,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:356,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:357,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:359,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:361,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:362,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:363,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:364,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:365,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:366,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:368,1
    - Dst: want_symbol_end
      Src: /src/xen/xen/tools/symbols.c:372,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:386,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:390,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:391,1
    - Dst: malloc
      Src: /src/xen/xen/tools/symbols.c:395,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:397,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:402,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:404,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:405,1
    - Dst: want_symbol_end
      Src: /src/xen/xen/tools/symbols.c:410,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:418,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:422,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:424,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:426,1
    - Dst: expand_symbol
      Src: /src/xen/xen/tools/symbols.c:430,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:431,1
    - Dst: strlen
      Src: /src/xen/xen/tools/symbols.c:432,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:435,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:437,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:440,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:441,1
    - Dst: qsort
      Src: /src/xen/xen/tools/symbols.c:444,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:449,1
    - Dst: printf
      Src: /src/xen/xen/tools/symbols.c:451,1
    - Dst: output_label
      Src: /src/xen/xen/tools/symbols.c:454,1
    - Dst: free
      Src: /src/xen/xen/tools/symbols.c:455,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 456
    functionName: write_src
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - output_label
    - free
    - expand_symbol
    - malloc
    - qsort
    - want_symbol_end
    - strlen
    - printf
    linkageType: ''
    returnType: void
    signature: void write_src(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - symbol
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 468
    functionName: learn_symbol
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void learn_symbol(unsigned char *symbol, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - symbol
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: forget_symbol
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void forget_symbol(unsigned char *symbol, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symbol_valid
      Src: /src/xen/xen/tools/symbols.c:486,1
    - Dst: learn_symbol
      Src: /src/xen/xen/tools/symbols.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 494
    functionName: build_initial_tok_table
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - learn_symbol
    - symbol_valid
    linkageType: ''
    returnType: void
    signature: void build_initial_tok_table(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/tools/symbols.c:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - h
    - hlen
    - n
    - nlen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: memmem_pvt
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: void
    signature: void *memmem_pvt(void *h, size_t hlen, void *n, size_t nlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmem_pvt
      Src: /src/xen/xen/tools/symbols.c:517,1
    - Dst: forget_symbol
      Src: /src/xen/xen/tools/symbols.c:521,1
    - Dst: memmove
      Src: /src/xen/xen/tools/symbols.c:529,1
    - Dst: memmem_pvt
      Src: /src/xen/xen/tools/symbols.c:536,1
    - Dst: learn_symbol
      Src: /src/xen/xen/tools/symbols.c:543,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - str
    - idx
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 545
    functionName: compress_symbols
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - memmove
    - forget_symbol
    - learn_symbol
    - memmem_pvt
    linkageType: ''
    returnType: void
    signature: void compress_symbols(unsigned char *str, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 562
    functionName: find_best_token
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_best_token(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_best_token
      Src: /src/xen/xen/tools/symbols.c:578,1
    - Dst: compress_symbols
      Src: /src/xen/xen/tools/symbols.c:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 591
    functionName: optimize_result
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - find_best_token
    - compress_symbols
    linkageType: ''
    returnType: void
    signature: void optimize_result(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/tools/symbols.c:598,1
    - Dst: memset
      Src: /src/xen/xen/tools/symbols.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 608
    functionName: insert_real_symbols_in_table
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void insert_real_symbols_in_table(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: build_initial_tok_table
      Src: /src/xen/xen/tools/symbols.c:612,1
    - Dst: insert_real_symbols_in_table
      Src: /src/xen/xen/tools/symbols.c:614,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/symbols.c:618,1
    - Dst: exit
      Src: /src/xen/xen/tools/symbols.c:619,1
    - Dst: optimize_result
      Src: /src/xen/xen/tools/symbols.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 623
    functionName: optimize_token_table
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - build_initial_tok_table
    - optimize_result
    - fprintf
    - exit
    - insert_real_symbols_in_table
    linkageType: ''
    returnType: void
    signature: void optimize_token_table(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isupper
      Src: /src/xen/xen/tools/symbols.c:642,1
    - Dst: isupper
      Src: /src/xen/xen/tools/symbols.c:644,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 651
    functionName: compare_value
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - isupper
    linkageType: ''
    returnType: int
    signature: int compare_value(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:658,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:658,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 659
    functionName: compare_name
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 0
    functionsReached:
    - strcmp
    - SYMBOL_NAME
    linkageType: ''
    returnType: int
    signature: int compare_name(const void *p1, const void *p2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:668,1
    - Dst: strncmp
      Src: /src/xen/xen/tools/symbols.c:670,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:676,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:678,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:680,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:682,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:684,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:686,1
    - Dst: write_src
      Src: /src/xen/xen/tools/symbols.c:687,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:689,1
    - Dst: usage
      Src: /src/xen/xen/tools/symbols.c:692,1
    - Dst: usage
      Src: /src/xen/xen/tools/symbols.c:695,1
    - Dst: read_map
      Src: /src/xen/xen/tools/symbols.c:697,1
    - Dst: qsort
      Src: /src/xen/xen/tools/symbols.c:700,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/symbols.c:702,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:702,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:703,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/symbols.c:705,1
    - Dst: SYMBOL_NAME
      Src: /src/xen/xen/tools/symbols.c:707,1
    - Dst: exit
      Src: /src/xen/xen/tools/symbols.c:715,1
    - Dst: qsort
      Src: /src/xen/xen/tools/symbols.c:718,1
    - Dst: optimize_token_table
      Src: /src/xen/xen/tools/symbols.c:720,1
    - Dst: write_src
      Src: /src/xen/xen/tools/symbols.c:721,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 724
    functionName: main
    functionSourceFile: /src/xen/xen/tools/symbols.c
    functionUses: 498
    functionsReached:
    - write_src
    - SYMBOL_NAME
    - optimize_token_table
    - qsort
    - read_map
    - strncmp
    - fprintf
    - exit
    - strcmp
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - MEMBER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: offsetof
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(TYPE, MEMBER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: container_of
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: LIST_HEAD
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: list_entry
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: list_empty
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(const struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _new
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: __list_add
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_add(struct list_head *_new,\n\t\t\t      struct list_head
      *prev,\n\t\t\t      struct list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_add
      Src: /src/xen/xen/tools/kconfig/list.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: list_add_tail
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 50
    functionsReached:
    - __list_add
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list_head *_new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: __list_del
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __list_del(struct list_head *prev, struct list_head *next)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/xen/tools/kconfig/list.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: list_del
    functionSourceFile: /src/xen/xen/tools/kconfig/list.h
    functionUses: 61
    functionsReached:
    - __list_del
    linkageType: ''
    returnType: void
    signature: void list_del(struct list_head *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:301,1
    - Dst: set_dialog_backtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:305,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - config_filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 310
    functionName: set_config_filename
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - snprintf
    - set_dialog_backtitle
    linkageType: ''
    returnType: void
    signature: void set_config_filename(const char *config_filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/mconf.c:326,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/tools/kconfig/mconf.c:330,1
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/mconf.c:333,1
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/mconf.c:336,1
    - Dst: set_dialog_subtitles
      Src: /src/xen/xen/tools/kconfig/mconf.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 343
    functionName: set_subtitle
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - free
    - xcalloc
    - list_for_each_entry
    - set_dialog_subtitles
    linkageType: ''
    returnType: void
    signature: void set_subtitle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/mconf.c:351,1
    - Dst: set_dialog_subtitles
      Src: /src/xen/xen/tools/kconfig/mconf.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: reset_subtitle
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - free
    - set_dialog_subtitles
    linkageType: ''
    returnType: void
    signature: void reset_subtitle(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/tools/kconfig/mconf.c:369,1
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:376,1
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:381,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/mconf.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - buf
    - start
    - end
    - _data
    argTypes:
    - char*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 388
    functionName: update_text
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sprintf
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void update_text(char *buf, size_t start, size_t end, void *_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/mconf.c:401,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/mconf.c:402,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:406,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:407,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/mconf.c:408,1
    - Dst: show_helptext
      Src: /src/xen/xen/tools/kconfig/mconf.c:414,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/mconf.c:417,1
    - Dst: strncasecmp
      Src: /src/xen/xen/tools/kconfig/mconf.c:423,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/mconf.c:423,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/mconf.c:424,1
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/mconf.c:426,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/mconf.c:427,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/mconf.c:428,1
    - Dst: list_add_tail
      Src: /src/xen/xen/tools/kconfig/mconf.c:429,1
    - Dst: sym_re_search
      Src: /src/xen/xen/tools/kconfig/mconf.c:431,1
    - Dst: LIST_HEAD
      Src: /src/xen/xen/tools/kconfig/mconf.c:433,1
    - Dst: get_relations_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:443,1
    - Dst: set_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:444,1
    - Dst: show_textbox_ext
      Src: /src/xen/xen/tools/kconfig/mconf.c:445,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/mconf.c:446,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:452,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/mconf.c:455,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/tools/kconfig/mconf.c:456,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/mconf.c:457,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/mconf.c:459,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/mconf.c:460,1
    - Dst: list_del
      Src: /src/xen/xen/tools/kconfig/mconf.c:461,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/mconf.c:462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 463
    functionName: search_conf
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - LIST_HEAD
    - show_textbox_ext
    - dialog_inputbox
    - str_free
    - dialog_clear
    - str_new
    - strlen
    - conf
    - free
    - set_subtitle
    - list_for_each_entry_safe
    - list_del
    - sym_re_search
    - str_get
    - strncasecmp
    - str_printf
    - show_helptext
    - get_relations_str
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void search_conf(void)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/mconf.c:479,1
    - Dst: menu_has_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:480,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:489,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:494,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:498,1
    - Dst: menu_is_empty
      Src: /src/xen/xen/tools/kconfig/mconf.c:500,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:501,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:502,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:509,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:510,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:511,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:517,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:518,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:519,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/mconf.c:527,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/mconf.c:528,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:529,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/mconf.c:534,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:538,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/mconf.c:539,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:542,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:550,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:553,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:554,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:556,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:557,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:558,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:561,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:561,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:564,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:564,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:565,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:568,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:576,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:576,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:577,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:578,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:582,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:583,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:584,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:585,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:586,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/mconf.c:590,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:591,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:593,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:594,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:595,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/mconf.c:603,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:605,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:607,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:609,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:610,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:611,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/mconf.c:614,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:614,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:615,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:615,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:619,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:619,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:620,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/mconf.c:620,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:622,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:623,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:627,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:627,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:628,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/mconf.c:628,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/mconf.c:631,1
    - Dst: menu_is_empty
      Src: /src/xen/xen/tools/kconfig/mconf.c:631,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:639,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 161
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 641
    functionName: build_conf
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - item_make
    - sym_has_value
    - menu_has_prompt
    - menu_is_visible
    - menu_get_prompt
    - item_set_data
    - sym_is_choice
    - sym_is_changeable
    - sym_get_string_value
    - sym_get_type
    - item_add_str
    - build_conf
    - item_set_tag
    - menu_is_empty
    - strlen
    - sym_is_choice_value
    - sym_get_tristate_value
    - sym_get_choice_value
    linkageType: ''
    returnType: void
    signature: void build_conf(struct menu *menu)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:646,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:653,1
    - Dst: list_add_tail
      Src: /src/xen/xen/tools/kconfig/mconf.c:656,1
    - Dst: item_reset
      Src: /src/xen/xen/tools/kconfig/mconf.c:659,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:661,1
    - Dst: set_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:664,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:665,1
    - Dst: dialog_menu
      Src: /src/xen/xen/tools/kconfig/mconf.c:666,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/mconf.c:671,1
    - Dst: item_activate_selected
      Src: /src/xen/xen/tools/kconfig/mconf.c:672,1
    - Dst: item_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:674,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:677,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:678,1
    - Dst: item_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:686,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:691,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/mconf.c:694,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:694,1
    - Dst: conf_choice
      Src: /src/xen/xen/tools/kconfig/mconf.c:695,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:697,1
    - Dst: conf_string
      Src: /src/xen/xen/tools/kconfig/mconf.c:700,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/mconf.c:706,1
    - Dst: reset_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:708,1
    - Dst: show_helptext
      Src: /src/xen/xen/tools/kconfig/mconf.c:709,1
    - Dst: reset_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:713,1
    - Dst: conf_save
      Src: /src/xen/xen/tools/kconfig/mconf.c:714,1
    - Dst: reset_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:717,1
    - Dst: conf_load
      Src: /src/xen/xen/tools/kconfig/mconf.c:718,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:721,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:722,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:724,1
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:725,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:729,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:730,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:733,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:734,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:737,1
    - Dst: sym_toggle_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:738,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:739,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:740,1
    - Dst: search_conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:743,1
    - Dst: list_del
      Src: /src/xen/xen/tools/kconfig/mconf.c:751,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 92
    argCount: 2
    argNames:
    - menu
    - active_menu
    argTypes:
    - struct menu*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 752
    functionName: conf
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 8
    functionsReached:
    - conf_string
    - sym_toggle_tristate_value
    - item_activate_selected
    - dialog_clear
    - conf
    - show_help
    - menu_get_prompt
    - item_data
    - item_reset
    - set_subtitle
    - build_conf
    - list_del
    - sym_set_tristate_value
    - conf_choice
    - conf_load
    - item_is_tag
    - search_conf
    - reset_subtitle
    - dialog_menu
    - sym_get_tristate_value
    - item_tag
    - show_helptext
    - list_add_tail
    - sym_is_choice
    - show_textbox
    - conf_save
    - item_count
    linkageType: ''
    returnType: void
    signature: void conf(struct menu *menu, struct menu *active_menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:758,1
    - Dst: dialog_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - title
    - text
    - r
    - c
    - keys
    - vscroll
    - hscroll
    - update_text
    - data
    argTypes:
    - char*
    - char*
    - int
    - int
    - int*
    - int*
    - int*
    - update_text_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 761
    functionName: show_textbox_ext
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - dialog_clear
    - dialog_textbox
    linkageType: ''
    returnType: int
    signature: "int show_textbox_ext(const char *title, char *text, int r, int c,
      int\n\t\t\t    *keys, int *vscroll, int *hscroll, update_text_fn\n\t\t\t    update_text,
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_textbox_ext
      Src: /src/xen/xen/tools/kconfig/mconf.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - title
    - text
    - r
    - c
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 767
    functionName: show_textbox
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - show_textbox_ext
    linkageType: ''
    returnType: void
    signature: void show_textbox(const char *title, const char *text, int r, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - title
    - text
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 3
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: show_helptext
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 2
    functionsReached:
    - show_textbox
    linkageType: ''
    returnType: void
    signature: void show_helptext(const char *title, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/mconf.c:778,1
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 3
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: conf_message_callback
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - show_textbox
    - printf
    linkageType: ''
    returnType: void
    signature: void conf_message_callback(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/mconf.c:786,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/mconf.c:788,1
    - Dst: menu_get_ext_help
      Src: /src/xen/xen/tools/kconfig/mconf.c:789,1
    - Dst: show_helptext
      Src: /src/xen/xen/tools/kconfig/mconf.c:791,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:791,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/mconf.c:791,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/mconf.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 793
    functionName: show_help
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 21
    functionsReached:
    - menu_get_prompt
    - str_get
    - str_free
    - menu_get_ext_help
    - str_new
    - getmaxx
    - show_helptext
    linkageType: ''
    returnType: void
    signature: void show_help(struct menu *menu)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:797,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:801,1
    - Dst: item_reset
      Src: /src/xen/xen/tools/kconfig/mconf.c:805,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/mconf.c:809,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:812,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:812,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/mconf.c:814,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:814,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:815,1
    - Dst: item_set_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:817,1
    - Dst: item_set_selected
      Src: /src/xen/xen/tools/kconfig/mconf.c:819,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:820,1
    - Dst: item_set_tag
      Src: /src/xen/xen/tools/kconfig/mconf.c:821,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:823,1
    - Dst: dialog_checklist
      Src: /src/xen/xen/tools/kconfig/mconf.c:824,1
    - Dst: item_activate_selected
      Src: /src/xen/xen/tools/kconfig/mconf.c:829,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:833,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:837,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/mconf.c:842,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/mconf.c:843,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/mconf.c:846,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 854
    functionName: conf_choice
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - item_make
    - menu_get_prompt
    - menu_is_visible
    - item_set_data
    - item_data
    - item_reset
    - item_activate_selected
    - item_set_tag
    - dialog_clear
    - sym_set_tristate_value
    - dialog_checklist
    - sym_get_choice_value
    - item_set_selected
    - show_help
    linkageType: ''
    returnType: void
    signature: void conf_choice(struct menu *menu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/mconf.c:858,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/mconf.c:864,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:877,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:878,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:880,1
    - Dst: sym_set_string_value
      Src: /src/xen/xen/tools/kconfig/mconf.c:883,1
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:885,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/mconf.c:888,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 894
    functionName: conf_string
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - menu_get_prompt
    - sym_set_string_value
    - sym_get_string_value
    - sym_get_type
    - dialog_inputbox
    - dialog_clear
    - show_textbox
    - show_help
    linkageType: ''
    returnType: void
    signature: void conf_string(struct menu *menu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:901,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:902,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/mconf.c:908,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/mconf.c:909,1
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/mconf.c:910,1
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:913,1
    - Dst: show_helptext
      Src: /src/xen/xen/tools/kconfig/mconf.c:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 922
    functionName: conf_load
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - sym_set_change_count
    - conf_read
    - dialog_inputbox
    - set_config_filename
    - dialog_clear
    - show_textbox
    - show_helptext
    linkageType: ''
    returnType: void
    signature: void conf_load(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:928,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:929,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/mconf.c:935,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/mconf.c:936,1
    - Dst: show_textbox
      Src: /src/xen/xen/tools/kconfig/mconf.c:939,1
    - Dst: show_helptext
      Src: /src/xen/xen/tools/kconfig/mconf.c:942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 924
    functionDepth: 4
    functionLinenumber: 924
    functionLinenumberEnd: 948
    functionName: conf_save
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 1
    functionsReached:
    - conf_write
    - dialog_inputbox
    - set_config_filename
    - dialog_clear
    - show_textbox
    - show_helptext
    linkageType: ''
    returnType: void
    signature: void conf_save(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: reset_subtitle
      Src: /src/xen/xen/tools/kconfig/mconf.c:955,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/mconf.c:956,1
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/mconf.c:957,1
    - Dst: dialog_yesno
      Src: /src/xen/xen/tools/kconfig/mconf.c:958,1
    - Dst: end_dialog
      Src: /src/xen/xen/tools/kconfig/mconf.c:965,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/mconf.c:969,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:970,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/mconf.c:976,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/mconf.c:980,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:988,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 996
    functionName: handle_exit
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - conf_write
    - reset_subtitle
    - conf_get_changed
    - dialog_clear
    - end_dialog
    - fprintf
    - conf_write_autoconf
    - printf
    - dialog_yesno
    linkageType: ''
    returnType: int
    signature: int handle_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/mconf.c:1000,1
    - Dst: handle_exit
      Src: /src/xen/xen/tools/kconfig/mconf.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 998
    functionDepth: 3
    functionLinenumber: 998
    functionLinenumberEnd: 1001
    functionName: sig_handler
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 0
    functionsReached:
    - exit
    - handle_exit
    linkageType: ''
    returnType: void
    signature: void sig_handler(int signo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/xen/xen/tools/kconfig/mconf.c:1008,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/mconf.c:1010,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/mconf.c:1013,1
    - Dst: conf_parse
      Src: /src/xen/xen/tools/kconfig/mconf.c:1016,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/mconf.c:1017,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/mconf.c:1019,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/kconfig/mconf.c:1021,1
    - Dst: init_dialog
      Src: /src/xen/xen/tools/kconfig/mconf.c:1025,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:1026,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/mconf.c:1027,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/mconf.c:1031,1
    - Dst: conf_get_configname
      Src: /src/xen/xen/tools/kconfig/mconf.c:1031,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/mconf.c:1032,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/mconf.c:1034,1
    - Dst: handle_exit
      Src: /src/xen/xen/tools/kconfig/mconf.c:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1003
    functionDepth: 3
    functionLinenumber: 1003
    functionLinenumberEnd: 1039
    functionName: main
    functionSourceFile: /src/xen/xen/tools/kconfig/mconf.c
    functionUses: 498
    functionsReached:
    - getenv
    - handle_exit
    - conf_read
    - signal
    - set_config_filename
    - conf_parse
    - init_dialog
    - fprintf
    - strcasecmp
    - conf_get_configname
    - conf
    - strcmp
    - conf_set_message_callback
    linkageType: ''
    returnType: int
    signature: int main(int ac, char **av)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: sym_get_type
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - sym_is_choice_value
    linkageType: ''
    returnType: enum symbol_type
    signature: enum symbol_type sym_get_type(struct symbol *sym)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum symbol_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: sym_type_name
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sym_type_name(enum symbol_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_choices
      Src: /src/xen/xen/tools/kconfig/symbol.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: sym_get_choice_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - for_all_choices
    linkageType: ''
    returnType: struct property
    signature: struct property *sym_get_choice_prop(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: sym_get_default_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    linkageType: ''
    returnType: struct property
    signature: struct property *sym_get_default_prop(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: for_all_defaults
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    linkageType: ''
    returnType: void
    signature: void for_all_defaults(sym, prop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: sym_get_range_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    linkageType: ''
    returnType: struct property
    signature: struct property *sym_get_range_prop(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: for_all_properties
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    linkageType: ''
    returnType: void
    signature: void for_all_properties(sym, prop, P_RANGE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:103,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/symbol.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sym
    - base
    argTypes:
    - struct symbol*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: sym_get_range_val
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_calc_value
    - strtoll
    linkageType: ''
    returnType: long long
    signature: long long sym_get_range_val(struct symbol *sym, int base)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_range_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:134,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/symbol.c:137,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:138,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:140,1
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:145,1
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:147,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/symbol.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 149
    functionName: sym_validate_range
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - sprintf
    - sym_get_range_val
    - strtoll
    - sym_get_range_prop
    linkageType: ''
    returnType: void
    signature: void sym_validate_range(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: sym_set_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sym_set_changed(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_symbols
      Src: /src/xen/xen/tools/kconfig/symbol.c:167,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 169
    functionName: sym_set_all_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_set_changed
    - for_all_symbols
    linkageType: ''
    returnType: void
    signature: void sym_set_all_changed(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:180,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:181,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:181,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:184,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/symbol.c:194,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:200,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:202,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:207,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:208,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:212,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:216,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:217,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:221,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:225,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:226,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:230,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 44
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 232
    functionName: sym_calc_visibility
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_get_choice_prop
    - sym_get_type
    - sym_set_changed
    - EXPR_OR
    - sym_is_choice_value
    - expr_calc_value
    - prop_get_symbol
    linkageType: ''
    returnType: void
    signature: void sym_calc_visibility(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:184,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/symbol.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: for_all_prompts
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    - EXPR_OR
    linkageType: ''
    returnType: void
    signature: void for_all_prompts(sym, prop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:248,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:251,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:257,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: sym_choice_default
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    - prop_get_symbol
    - sym_get_choice_prop
    - expr_list_for_each_sym
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_choice_default(struct symbol *sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:248,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: for_all_defaults
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_calc_value
    - prop_get_symbol
    linkageType: ''
    returnType: void
    signature: void for_all_defaults(sym, prop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:275,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:276,1
    - Dst: sym_calc_visibility
      Src: /src/xen/xen/tools/kconfig/symbol.c:277,1
    - Dst: sym_choice_default
      Src: /src/xen/xen/tools/kconfig/symbol.c:289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 296
    functionName: sym_calc_choice
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_get_choice_prop
    - sym_calc_visibility
    - expr_list_for_each_sym
    - sym_choice_default
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_calc_choice(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/symbol.c:300,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/symbol.c:302,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/symbol.c:305,1
    - Dst: expr_gstr_print
      Src: /src/xen/xen/tools/kconfig/symbol.c:308,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/symbol.c:309,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/symbol.c:311,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/symbol.c:313,1
    - Dst: fputs
      Src: /src/xen/xen/tools/kconfig/symbol.c:316,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/symbol.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 317
    functionName: sym_warn_unmet_dep
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - expr_gstr_print
    - fputs
    - str_get
    - str_printf
    - expr_gstr_print_revdep
    - str_new
    linkageType: ''
    returnType: void
    signature: void sym_warn_unmet_dep(struct symbol *sym)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:331,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:334,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:335,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:335,1
    - Dst: sym_calc_visibility
      Src: /src/xen/xen/tools/kconfig/symbol.c:359,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:367,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:370,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:371,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:372,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:378,1
    - Dst: EXPR_AND
      Src: /src/xen/xen/tools/kconfig/symbol.c:379,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:386,1
    - Dst: sym_get_default_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:387,1
    - Dst: EXPR_AND
      Src: /src/xen/xen/tools/kconfig/symbol.c:389,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:389,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/symbol.c:396,1
    - Dst: sym_warn_unmet_dep
      Src: /src/xen/xen/tools/kconfig/symbol.c:401,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/symbol.c:402,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:405,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:411,1
    - Dst: sym_get_default_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:415,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:417,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:420,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:430,1
    - Dst: sym_calc_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:431,1
    - Dst: sym_validate_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:432,1
    - Dst: memcmp
      Src: /src/xen/xen/tools/kconfig/symbol.c:434,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:435,1
    - Dst: sym_set_all_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:437,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:442,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:445,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:446,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:451,1
    - Dst: set_all_choice_values
      Src: /src/xen/xen/tools/kconfig/symbol.c:459,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 112
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 460
    functionName: sym_calc_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - set_all_choice_values
    - sym_get_default_prop
    - memcmp
    - sym_get_choice_prop
    - sym_get_type
    - sym_set_all_changed
    - EXPR_AND
    - EXPR_OR
    - sym_calc_value
    - expr_list_for_each_sym
    - sym_validate_range
    - sym_set_changed
    - sym_has_value
    - sym_is_choice
    - sym_calc_choice
    - sym_warn_unmet_dep
    - sym_is_choice_value
    - expr_calc_value
    - prop_get_symbol
    - sym_calc_visibility
    linkageType: ''
    returnType: void
    signature: void sym_calc_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_symbols
      Src: /src/xen/xen/tools/kconfig/symbol.c:467,1
    - Dst: sym_add_change_count
      Src: /src/xen/xen/tools/kconfig/symbol.c:469,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 462
    functionDepth: 5
    functionLinenumber: 462
    functionLinenumberEnd: 471
    functionName: sym_clear_all_valid
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_calc_value
    - sym_add_change_count
    - for_all_symbols
    linkageType: ''
    returnType: void
    signature: void sym_clear_all_valid(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/symbol.c:475,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:489,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 2
    argNames:
    - sym
    - val
    argTypes:
    - struct symbol*
    - tristate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 492
    functionName: sym_tristate_within_range
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_get_type
    - sym_is_choice_value
    linkageType: ''
    returnType: bool
    signature: bool sym_tristate_within_range(struct symbol *sym, tristate val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:496,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:498,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:503,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:509,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:510,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:510,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:516,1
    - Dst: sym_clear_all_valid
      Src: /src/xen/xen/tools/kconfig/symbol.c:525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - sym
    - val
    argTypes:
    - struct symbol*
    - tristate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 494
    functionDepth: 6
    functionLinenumber: 494
    functionLinenumberEnd: 528
    functionName: sym_set_tristate_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - sym_get_choice_prop
    - sym_tristate_within_range
    - sym_clear_all_valid
    - sym_set_changed
    - sym_is_choice_value
    - prop_get_symbol
    - sym_get_tristate_value
    linkageType: ''
    returnType: bool
    signature: bool sym_set_tristate_value(struct symbol *sym, tristate val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:534,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:547,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 530
    functionDepth: 7
    functionLinenumber: 530
    functionLinenumberEnd: 551
    functionName: sym_toggle_tristate_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached:
    - sym_set_tristate_value
    - sym_get_tristate_value
    linkageType: ''
    returnType: tristate
    signature: tristate sym_toggle_tristate_value(struct symbol *sym)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/tools/kconfig/symbol.c:564,1
    - Dst: isdigit
      Src: /src/xen/xen/tools/kconfig/symbol.c:569,1
    - Dst: isxdigit
      Src: /src/xen/xen/tools/kconfig/symbol.c:578,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - sym
    - str
    argTypes:
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 594
    functionName: sym_string_valid
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - isdigit
    - isxdigit
    linkageType: ''
    returnType: bool
    signature: bool sym_string_valid(struct symbol *sym, const char *str)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sym_string_valid
      Src: /src/xen/xen/tools/kconfig/symbol.c:603,1
    - Dst: sym_string_valid
      Src: /src/xen/xen/tools/kconfig/symbol.c:605,1
    - Dst: sym_get_range_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:607,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/symbol.c:610,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:611,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:612,1
    - Dst: sym_string_valid
      Src: /src/xen/xen/tools/kconfig/symbol.c:614,1
    - Dst: sym_get_range_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:616,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/symbol.c:619,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:620,1
    - Dst: sym_get_range_val
      Src: /src/xen/xen/tools/kconfig/symbol.c:621,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:626,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:628,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - sym
    - str
    argTypes:
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 636
    functionName: sym_string_within_range
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_tristate_within_range
    - sym_get_range_val
    - sym_string_valid
    - strtoll
    - sym_get_range_prop
    linkageType: ''
    returnType: bool
    signature: bool sym_string_within_range(struct symbol *sym, const char *str)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:649,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:651,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:653,1
    - Dst: sym_string_within_range
      Src: /src/xen/xen/tools/kconfig/symbol.c:660,1
    - Dst: sym_set_changed
      Src: /src/xen/xen/tools/kconfig/symbol.c:665,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:669,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:672,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/symbol.c:675,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:676,1
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/symbol.c:680,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/symbol.c:681,1
    - Dst: sym_clear_all_valid
      Src: /src/xen/xen/tools/kconfig/symbol.c:682,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - sym
    - newval
    argTypes:
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 638
    functionDepth: 7
    functionLinenumber: 638
    functionLinenumberEnd: 685
    functionName: sym_set_string_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - free
    - sym_string_within_range
    - sym_clear_all_valid
    - sym_set_changed
    - strcpy
    - strlen
    - sym_set_tristate_value
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool sym_set_string_value(struct symbol *sym, const char *newval)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_visibility
      Src: /src/xen/xen/tools/kconfig/symbol.c:701,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:702,1
    - Dst: sym_get_default_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:707,1
    - Dst: EXPR_AND
      Src: /src/xen/xen/tools/kconfig/symbol.c:713,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:713,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:721,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:723,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/symbol.c:730,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:734,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 694
    functionDepth: 5
    functionLinenumber: 694
    functionLinenumberEnd: 762
    functionName: sym_get_string_default
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - EXPR_AND
    - sym_get_default_prop
    - sym_calc_value
    - EXPR_OR
    - sym_is_choice_value
    - expr_calc_value
    - prop_get_symbol
    - sym_calc_visibility
    linkageType: ''
    returnType: char
    signature: char *sym_get_string_default(struct symbol *sym)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:771,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 786
    functionName: sym_get_string_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - sym_calc_value
    - sym_get_tristate_value
    linkageType: ''
    returnType: char
    signature: char *sym_get_string_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 791
    functionName: sym_is_changeable
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sym_is_changeable(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 800
    functionName: strhash
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned strhash(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strhash
      Src: /src/xen/xen/tools/kconfig/symbol.c:816,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/symbol.c:820,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/symbol.c:825,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:831,1
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/symbol.c:832,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - name
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 841
    functionName: sym_lookup
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xmalloc
    - strhash
    - memset
    - strcmp
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_lookup(const char *name, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strhash
      Src: /src/xen/xen/tools/kconfig/symbol.c:858,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/symbol.c:862,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 868
    functionName: sym_find
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - strhash
    - strcmp
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_find(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:877,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:877,1
    - Dst: strcspn
      Src: /src/xen/xen/tools/kconfig/symbol.c:881,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:891,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/symbol.c:894,1
    - Dst: strcspn
      Src: /src/xen/xen/tools/kconfig/symbol.c:898,1
    - Dst: strncat
      Src: /src/xen/xen/tools/kconfig/symbol.c:899,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/symbol.c:905,1
    - Dst: strncat
      Src: /src/xen/xen/tools/kconfig/symbol.c:906,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/symbol.c:909,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 911
    functionName: sym_escape_string_value
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - strcspn
    - strncat
    - strlen
    - strcat
    linkageType: ''
    returnType: char
    signature: char *sym_escape_string_value(const char *in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:937,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:938,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/symbol.c:945,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - sym1
    - sym2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 946
    functionName: sym_rel_comp
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int sym_rel_comp(const void *sym1, const void *sym2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/symbol.c:958,1
    - Dst: regcomp
      Src: /src/xen/xen/tools/kconfig/symbol.c:960,1
    - Dst: regexec
      Src: /src/xen/xen/tools/kconfig/symbol.c:966,1
    - Dst: realloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:971,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:976,1
    - Dst: qsort
      Src: /src/xen/xen/tools/kconfig/symbol.c:985,1
    - Dst: malloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:986,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/symbol.c:995,1
    - Dst: regfree
      Src: /src/xen/xen/tools/kconfig/symbol.c:996,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 948
    functionDepth: 5
    functionLinenumber: 948
    functionLinenumberEnd: 999
    functionName: sym_re_search
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached:
    - regcomp
    - free
    - sym_calc_value
    - qsort
    - malloc
    - regexec
    - strlen
    - realloc
    - regfree
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol **sym_re_search(const char *pattern)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: regexec
      Src: /src/xen/xen/tools/kconfig/symbol.c:966,1
    - Dst: realloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:971,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:976,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 963
    functionDepth: 5
    functionLinenumber: 963
    functionLinenumberEnd: 983
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - realloc
    - regexec
    - sym_calc_value
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/symbol.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - stack
    - sym
    argTypes:
    - struct dep_stack*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1022
    functionName: dep_stack_insert
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void dep_stack_insert(struct dep_stack *stack, struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1029
    functionName: dep_stack_remove
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dep_stack_remove(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:1044,1
    - Dst: dep_stack_insert
      Src: /src/xen/xen/tools/kconfig/symbol.c:1045,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:1046,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:1046,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1053,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:1065,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:1065,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1073,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:1076,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1077,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:1081,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1082,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1087,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1092,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1097,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1102,1
    - Dst: prop_get_type_name
      Src: /src/xen/xen/tools/kconfig/symbol.c:1105,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1108,1
    - Dst: prop_get_type_name
      Src: /src/xen/xen/tools/kconfig/symbol.c:1111,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1116,1
    - Dst: dep_stack_remove
      Src: /src/xen/xen/tools/kconfig/symbol.c:1122,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 1
    argNames:
    - last_sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1123
    functionName: sym_check_print_recursive
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_is_choice
    - dep_stack_remove
    - dep_stack_insert
    - sym_get_choice_prop
    - fprintf
    - prop_get_type_name
    - sym_is_choice_value
    - prop_get_symbol
    linkageType: ''
    returnType: void
    signature: void sym_check_print_recursive(struct symbol *last_sym)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1134,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1137,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1139,1
    - Dst: sym_check_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1146,1
    - Dst: sym_check_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1149,1
    - Dst: sym_check_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1151,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/symbol.c:1155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1157
    functionName: sym_check_expr_deps
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached:
    - sym_check_deps
    - fprintf
    - sym_check_expr_deps
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_check_expr_deps(struct expr *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dep_stack_insert
      Src: /src/xen/xen/tools/kconfig/symbol.c:1166,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1169,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1174,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1179,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1190,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:1193,1
    - Dst: sym_check_expr_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1196,1
    - Dst: dep_stack_remove
      Src: /src/xen/xen/tools/kconfig/symbol.c:1203,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1206
    functionName: sym_check_sym_deps
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - sym_is_choice
    - dep_stack_remove
    - dep_stack_insert
    - sym_check_expr_deps
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_check_sym_deps(struct symbol *sym)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dep_stack_insert
      Src: /src/xen/xen/tools/kconfig/symbol.c:1215,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:1217,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:1218,1
    - Dst: sym_check_sym_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1222,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:1227,1
    - Dst: sym_check_sym_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1228,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/symbol.c:1233,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:1236,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:1237,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:1237,1
    - Dst: dep_stack_remove
      Src: /src/xen/xen/tools/kconfig/symbol.c:1240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - choice
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1208
    functionDepth: 3
    functionLinenumber: 1208
    functionLinenumberEnd: 1243
    functionName: sym_check_choice_deps
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - dep_stack_remove
    - dep_stack_insert
    - sym_get_choice_prop
    - expr_list_for_each_sym
    - sym_is_choice_value
    - prop_get_symbol
    - sym_check_sym_deps
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_check_choice_deps(struct symbol *choice)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym_check_print_recursive
      Src: /src/xen/xen/tools/kconfig/symbol.c:1251,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/symbol.c:1257,1
    - Dst: dep_stack_insert
      Src: /src/xen/xen/tools/kconfig/symbol.c:1261,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/symbol.c:1262,1
    - Dst: sym_check_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1263,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/symbol.c:1263,1
    - Dst: dep_stack_remove
      Src: /src/xen/xen/tools/kconfig/symbol.c:1264,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/symbol.c:1265,1
    - Dst: sym_check_choice_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1266,1
    - Dst: sym_check_sym_deps
      Src: /src/xen/xen/tools/kconfig/symbol.c:1269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1245
    functionDepth: 4
    functionLinenumber: 1245
    functionLinenumberEnd: 1274
    functionName: sym_check_deps
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 2
    functionsReached:
    - sym_check_choice_deps
    - sym_is_choice
    - dep_stack_remove
    - dep_stack_insert
    - sym_get_choice_prop
    - sym_check_print_recursive
    - sym_check_deps
    - sym_is_choice_value
    - prop_get_symbol
    - sym_check_sym_deps
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_check_deps(struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/symbol.c:1281,1
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/symbol.c:1282,1
    - Dst: zconf_lineno
      Src: /src/xen/xen/tools/kconfig/symbol.c:1286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - type
    - sym
    argTypes:
    - enum prop_type
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1296
    functionName: prop_alloc
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 0
    functionsReached:
    - memset
    - zconf_lineno
    - xmalloc
    linkageType: ''
    returnType: struct property
    signature: struct property *prop_alloc(enum prop_type type, struct symbol *sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - prop
    argTypes:
    - struct property*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1304
    functionName: prop_get_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *prop_get_symbol(struct property *prop)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum prop_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1331
    functionName: prop_get_type_name
    functionSourceFile: /src/xen/xen/tools/kconfig/symbol.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *prop_get_type_name(enum prop_type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: QString::fromLocal8Bit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: qgettext
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - QString::fromLocal8Bit
    linkageType: ''
    returnType: QString
    signature: QString qgettext(const char* str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ConfigSettings::ConfigSettings
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigSettings::ConfigSettings()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/xen/xen/tools/kconfig/qconf.cc:60,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:62,1
    - Dst: QStringList::begin
      Src: /src/xen/xen/tools/kconfig/qconf.cc:65,1
    - Dst: QStringList::end
      Src: /src/xen/xen/tools/kconfig/qconf.cc:65,1
    - Dst: QList::push_back
      Src: /src/xen/xen/tools/kconfig/qconf.cc:66,1
    - Dst: toInt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ok
    argTypes:
    - QString
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 74
    functionName: ConfigSettings::readSizes
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - value
    - contains
    - QStringList::end
    - QList::push_back
    - QStringList::begin
    - toInt
    linkageType: ''
    returnType: QList<int>
    signature: QList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/xen/xen/tools/kconfig/qconf.cc:84,1
    - Dst: end
      Src: /src/xen/xen/tools/kconfig/qconf.cc:84,1
    - Dst: QStringList::push_back
      Src: /src/xen/xen/tools/kconfig/qconf.cc:85,1
    - Dst: libxl__device_disk_dev_number
      Src: /src/xen/xen/tools/kconfig/qconf.cc:85,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' value'
    argTypes:
    - QString
    - QList<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: ConfigSettings::writeSizes
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - begin
    - libxl__device_disk_dev_number
    - end
    - QStringList::push_back
    - setValue
    linkageType: ''
    returnType: bool
    signature: bool ConfigSettings::writeSizes(const QString& key, const QList<int>&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - col
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: ConfigItem::okRename
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigItem::okRename(int col)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::listView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:112,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:114,1
    - Dst: qgettext
      Src: /src/xen/xen/tools/kconfig/qconf.cc:121,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:121,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:131,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:135,1
    - Dst: QIcon
      Src: /src/xen/xen/tools/kconfig/qconf.cc:135,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:139,1
    - Dst: QIcon
      Src: /src/xen/xen/tools/kconfig/qconf.cc:139,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:147,1
    - Dst: QString::fromLocal8Bit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:147,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/qconf.cc:149,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:155,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:156,1
    - Dst: QIcon
      Src: /src/xen/xen/tools/kconfig/qconf.cc:156,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:157,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:158,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:159,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:162,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:165,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:166,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:168,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:169,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:173,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:174,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:178,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:179,1
    - Dst: ConfigItem::setPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:181,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:182,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:187,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/qconf.cc:187,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:189,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/qconf.cc:189,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:191,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/qconf.cc:191,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:193,1
    - Dst: QChar
      Src: /src/xen/xen/tools/kconfig/qconf.cc:193,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:200,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:202,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:204,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:206,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:209,1
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:212,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 103
    functionDepth: 6
    functionLinenumber: 103
    functionLinenumberEnd: 213
    functionName: ConfigItem::updateMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - sym_has_value
    - ConfigItem::listView
    - menu_get_prompt
    - QIcon
    - QChar
    - ConfigItem::setPixmap
    - QString
    - sym_is_changeable
    - sym_get_string_value
    - sym_tristate_within_range
    - sym_get_type
    - qgettext
    - sym_is_choice_value
    - sym_get_tristate_value
    - QString::fromLocal8Bit
    - ConfigItem::setText
    linkageType: ''
    returnType: void
    signature: void ConfigItem::updateMenu(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:223,1
    - Dst: ConfigItem*::updateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:228,1
    - Dst: ConfigItem::listView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:229,1
    - Dst: ConfigItem::updateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: ConfigItem::testUpdateMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigItem::updateMenu
    - ConfigItem*::updateMenu
    - sym_calc_value
    - ConfigItem::listView
    linkageType: ''
    returnType: void
    signature: void ConfigItem::testUpdateMenu(bool v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::listView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:240,1
    - Dst: setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:245,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:246,1
    - Dst: ConfigItem::updateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 7
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: ConfigItem::init
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigItem::updateMenu
    - ConfigItem::listView
    - setExpanded
    - sym_calc_value
    linkageType: ''
    returnType: void
    signature: void ConfigItem::init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: ConfigItem::~ConfigItem(void)
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigItem::~ConfigItem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:270,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:270,1
    - Dst: editingFinished
      Src: /src/xen/xen/tools/kconfig/qconf.cc:270,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:270,1
    - Dst: hide
      Src: /src/xen/xen/tools/kconfig/qconf.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - ConfigView*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: ConfigLineEdit::ConfigLineEdit
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - SLOT
    - editingFinished
    - connect
    - SIGNAL
    - hide
    linkageType: ''
    returnType: void
    signature: void ConfigLineEdit::ConfigLineEdit(ConfigView* parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:276,1
    - Dst: setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:277,1
    - Dst: QString::fromLocal8Bit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:277,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:277,1
    - Dst: setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:279,1
    - Dst: psr_cmt_show
      Src: /src/xen/xen/tools/kconfig/qconf.cc:280,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - ConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 273
    functionDepth: 6
    functionLinenumber: 273
    functionLinenumberEnd: 282
    functionName: ConfigLineEdit::show
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - sym_get_string_value
    - setFocus
    - setText
    - psr_cmt_show
    - QString::fromLocal8Bit
    linkageType: ''
    returnType: void
    signature: void ConfigLineEdit::show(ConfigItem* i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: QKeyEvent*::key
      Src: /src/xen/xen/tools/kconfig/qconf.cc:286,1
    - Dst: sym_set_string_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:291,1
    - Dst: text
      Src: /src/xen/xen/tools/kconfig/qconf.cc:291,1
    - Dst: ConfigLineEdit::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:292,1
    - Dst: ConfigLineEdit::keyPressEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:295,1
    - Dst: QKeyEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:298,1
    - Dst: ConfigLineEdit::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:299,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:299,1
    - Dst: hide
      Src: /src/xen/xen/tools/kconfig/qconf.cc:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - e
    argTypes:
    - QKeyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 8
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: ConfigLineEdit::keyPressEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - sym_set_string_value
    - hide
    - setFocus
    - ConfigLineEdit::keyPressEvent
    - ConfigLineEdit::parent
    - text
    - QKeyEvent*::accept
    - QKeyEvent*::key
    linkageType: ''
    returnType: void
    signature: void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setObjectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:314,1
    - Dst: setSortingEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:315,1
    - Dst: setRootIsDecorated
      Src: /src/xen/xen/tools/kconfig/qconf.cc:316,1
    - Dst: setVerticalScrollMode
      Src: /src/xen/xen/tools/kconfig/qconf.cc:318,1
    - Dst: setHorizontalScrollMode
      Src: /src/xen/xen/tools/kconfig/qconf.cc:319,1
    - Dst: setHeaderLabels
      Src: /src/xen/xen/tools/kconfig/qconf.cc:321,1
    - Dst: QStringList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:321,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:327,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:328,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:329,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:330,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:331,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:332,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:333,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:333,1
    - Dst: aboutToQuit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:333,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:333,1
    - Dst: ConfigList::saveSettings
      Src: /src/xen/xen/tools/kconfig/qconf.cc:333,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:336,1
    - Dst: ConfigList::reinit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - p
    - name
    argTypes:
    - ConfigView*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 339
    functionName: ConfigList::ConfigList
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigList::reinit
    - aboutToQuit
    - beginGroup
    - value
    - SLOT
    - connect
    - setSortingEnabled
    - endGroup
    - setHorizontalScrollMode
    - QStringList
    - setVerticalScrollMode
    - ConfigList::saveSettings
    - SIGNAL
    - setHeaderLabels
    - ConfigList::addColumn
    - setObjectName
    - setRootIsDecorated
    linkageType: ''
    returnType: void
    signature: void ConfigList::ConfigList(ConfigView* p, const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/qconf.cc:343,1
    - Dst: menu_has_prompt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: ConfigList::menuSkip
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - menu_has_prompt
    - menu_is_visible
    linkageType: ''
    returnType: bool
    signature: bool ConfigList::menuSkip(struct menu *menu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::removeColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:354,1
    - Dst: ConfigList::removeColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:355,1
    - Dst: ConfigList::removeColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:356,1
    - Dst: ConfigList::removeColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:357,1
    - Dst: ConfigList::removeColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:358,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:361,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:363,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:364,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:365,1
    - Dst: ConfigList::addColumn
      Src: /src/xen/xen/tools/kconfig/qconf.cc:368,1
    - Dst: ConfigList::updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 371
    functionName: ConfigList::reinit
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigList::removeColumn
    - ConfigList::updateListAll
    - ConfigList::addColumn
    linkageType: ''
    returnType: void
    signature: void ConfigList::reinit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:375,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:376,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:376,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:377,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:378,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:379,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:380,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: ConfigList::saveSettings
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - objectName
    - ConfigList::setValue
    - endGroup
    - beginGroup
    linkageType: ''
    returnType: void
    signature: void ConfigList::saveSettings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem*::listView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: ConfigList::findConfigItem
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigItem*::listView
    linkageType: ''
    returnType: ConfigItem
    signature: ConfigItem * ConfigList::findConfigItem(struct menu *menu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: selectedItems
      Src: /src/xen/xen/tools/kconfig/qconf.cc:402,1
    - Dst: selectedItems
      Src: /src/xen/xen/tools/kconfig/qconf.cc:405,1
    - Dst: menuSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 416
    functionName: ConfigList::updateSelection
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - selectedItems
    - menuSelected
    linkageType: ''
    returnType: void
    signature: void ConfigList::updateSelection(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem*::testUpdateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:432,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/qconf.cc:432,1
    - Dst: topLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:441,1
    - Dst: ConfigItem::ConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:443,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:448,1
    - Dst: ConfigList::firstChild
      Src: /src/xen/xen/tools/kconfig/qconf.cc:448,1
    - Dst: ConfigItem::ConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:450,1
    - Dst: ConfigItem*::testUpdateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:452,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:454,1
    - Dst: update
      Src: /src/xen/xen/tools/kconfig/qconf.cc:455,1
    - Dst: resizeColumnToContents
      Src: /src/xen/xen/tools/kconfig/qconf.cc:456,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:460,1
    - Dst: update
      Src: /src/xen/xen/tools/kconfig/qconf.cc:461,1
    - Dst: resizeColumnToContents
      Src: /src/xen/xen/tools/kconfig/qconf.cc:462,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - item
    argTypes:
    - ConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 463
    functionName: ConfigList::updateList
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - menu_is_visible
    - topLevelItem
    - update
    - ConfigItem*::nextSibling
    - ConfigItem*::testUpdateMenu
    - ConfigList::firstChild
    - resizeColumnToContents
    - ConfigList::updateMenuList
    - ConfigItem::ConfigItem
    linkageType: ''
    returnType: void
    signature: void ConfigList::updateList(ConfigItem* item)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/qconf.cc:475,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:479,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:481,1
    - Dst: ConfigItem*::setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:484,1
    - Dst: ConfigList::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - item
    - val
    argTypes:
    - ConfigItem*
    - tristate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 465
    functionDepth: 7
    functionLinenumber: 465
    functionLinenumberEnd: 488
    functionName: ConfigList::setValue
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigItem*::setExpanded
    - sym_get_type
    - sym_set_tristate_value
    - ConfigList::parent
    - sym_get_tristate_value
    linkageType: ''
    returnType: void
    signature: void ConfigList::setValue(ConfigItem* item, tristate val)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem*::setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:502,1
    - Dst: ConfigItem*::isExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:502,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/qconf.cc:506,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:510,1
    - Dst: sym_toggle_tristate_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:511,1
    - Dst: ConfigItem*::setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:514,1
    - Dst: ConfigItem*::isExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:514,1
    - Dst: ConfigItem*::setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:516,1
    - Dst: ConfigList::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:519,1
    - Dst: ConfigList::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:524,1
    - Dst: show
      Src: /src/xen/xen/tools/kconfig/qconf.cc:524,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - item
    argTypes:
    - ConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 490
    functionDepth: 8
    functionLinenumber: 490
    functionLinenumberEnd: 527
    functionName: ConfigList::changeValue
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigItem*::setExpanded
    - sym_toggle_tristate_value
    - sym_get_type
    - show
    - ConfigList::parent
    - sym_get_tristate_value
    - ConfigItem*::isExpanded
    linkageType: ''
    returnType: void
    signature: void ConfigList::changeValue(ConfigItem* item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:538,1
    - Dst: ConfigList::updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:540,1
    - Dst: currentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:541,1
    - Dst: currentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:542,1
    - Dst: hasFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:542,1
    - Dst: scrollToItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:543,1
    - Dst: currentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 545
    functionName: ConfigList::setRootMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - currentItem
    - ConfigList::updateListAll
    - scrollToItem
    - ConfigList::updateMenuList
    - hasFocus
    linkageType: ''
    returnType: void
    signature: void ConfigList::setRootMenu(struct menu *menu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:555,1
    - Dst: menu_get_parent_menu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:555,1
    - Dst: setCurrentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:561,1
    - Dst: scrollToItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 568
    functionName: ConfigList::setParentMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - setCurrentItem
    - menu_get_parent_menu
    - scrollToItem
    - ConfigList::setRootMenu
    linkageType: ''
    returnType: void
    signature: void ConfigList::setParentMenu(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem*::childCount
      Src: /src/xen/xen/tools/kconfig/qconf.cc:586,1
    - Dst: ConfigItem*::takeChild
      Src: /src/xen/xen/tools/kconfig/qconf.cc:588,1
    - Dst: ConfigItem*::firstChild
      Src: /src/xen/xen/tools/kconfig/qconf.cc:594,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:598,1
    - Dst: ConfigItem*::firstChild
      Src: /src/xen/xen/tools/kconfig/qconf.cc:598,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/qconf.cc:614,1
    - Dst: ConfigList::menuSkip
      Src: /src/xen/xen/tools/kconfig/qconf.cc:615,1
    - Dst: ConfigItem::ConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:619,1
    - Dst: ConfigItem*::testUpdateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:621,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:624,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:626,1
    - Dst: ConfigItem*::firstChild
      Src: /src/xen/xen/tools/kconfig/qconf.cc:632,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:635,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:636,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 51
    argCount: 2
    argNames:
    - parent
    - menu
    argTypes:
    - ConfigItem*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 640
    functionName: ConfigList::updateMenuList
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 3
    functionsReached:
    - menu_is_visible
    - ConfigItem*::takeChild
    - ConfigItem*::nextSibling
    - ConfigItem*::testUpdateMenu
    - ConfigItem*::childCount
    - ConfigList::menuSkip
    - ConfigList::updateMenuList
    - ConfigItem*::firstChild
    - ConfigItem::ConfigItem
    linkageType: ''
    returnType: void
    signature: void ConfigList::updateMenuList(ConfigItem *parent, struct menu* menu)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList*::topLevelItemCount
      Src: /src/xen/xen/tools/kconfig/qconf.cc:651,1
    - Dst: ConfigList*::takeTopLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:653,1
    - Dst: ConfigList*::topLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:659,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:663,1
    - Dst: ConfigList*::topLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:663,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/qconf.cc:679,1
    - Dst: ConfigList::menuSkip
      Src: /src/xen/xen/tools/kconfig/qconf.cc:680,1
    - Dst: ConfigItem::ConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:684,1
    - Dst: ConfigItem*::testUpdateMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:686,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:689,1
    - Dst: ConfigList::updateMenuList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:691,1
    - Dst: ConfigList*::topLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:697,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:700,1
    - Dst: ConfigItem*::nextSibling
      Src: /src/xen/xen/tools/kconfig/qconf.cc:701,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 51
    argCount: 2
    argNames:
    - parent
    - menu
    argTypes:
    - ConfigList*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 705
    functionName: ConfigList::updateMenuList
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 4
    functionsReached:
    - menu_is_visible
    - ConfigList*::topLevelItem
    - ConfigItem*::nextSibling
    - ConfigItem*::testUpdateMenu
    - ConfigList*::topLevelItemCount
    - ConfigList::menuSkip
    - ConfigList*::takeTopLevelItem
    - ConfigList::updateMenuList
    - ConfigItem::ConfigItem
    linkageType: ''
    returnType: void
    signature: void ConfigList::updateMenuList(ConfigList *parent, struct menu* menu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: currentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:709,1
    - Dst: QKeyEvent*::key
      Src: /src/xen/xen/tools/kconfig/qconf.cc:714,1
    - Dst: QKeyEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:716,1
    - Dst: ConfigLineEdit::keyPressEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:721,1
    - Dst: QKeyEvent*::key
      Src: /src/xen/xen/tools/kconfig/qconf.cc:726,1
    - Dst: ConfigList::changeValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:743,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:746,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:749,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:752,1
    - Dst: ConfigLineEdit::keyPressEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:755,1
    - Dst: QKeyEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:758,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 1
    argNames:
    - ev
    argTypes:
    - QKeyEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 707
    functionDepth: 9
    functionLinenumber: 707
    functionLinenumberEnd: 759
    functionName: ConfigList::keyPressEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigList::setValue
    - currentItem
    - ConfigLineEdit::keyPressEvent
    - ConfigList::changeValue
    - QKeyEvent*::accept
    - QKeyEvent*::key
    linkageType: ''
    returnType: void
    signature: void ConfigList::keyPressEvent(QKeyEvent* ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::mousePressEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - QMouseEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: ConfigList::mousePressEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigList::mousePressEvent
    linkageType: ''
    returnType: void
    signature: void ConfigList::mousePressEvent(QMouseEvent* e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: QMouseEvent*::pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:770,1
    - Dst: itemAt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:771,1
    - Dst: header
      Src: /src/xen/xen/tools/kconfig/qconf.cc:781,1
    - Dst: QPoint::x
      Src: /src/xen/xen/tools/kconfig/qconf.cc:781,1
    - Dst: header
      Src: /src/xen/xen/tools/kconfig/qconf.cc:782,1
    - Dst: ConfigItem*::pixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:785,1
    - Dst: QIcon::isNull
      Src: /src/xen/xen/tools/kconfig/qconf.cc:786,1
    - Dst: header
      Src: /src/xen/xen/tools/kconfig/qconf.cc:787,1
    - Dst: visualRect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:787,1
    - Dst: indexAt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:787,1
    - Dst: QIcon::availableSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:788,1
    - Dst: menuSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:797,1
    - Dst: ConfigList::changeValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:799,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:804,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:807,1
    - Dst: ConfigList::setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:810,1
    - Dst: ConfigList::changeValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:813,1
    - Dst: ConfigList::mouseReleaseEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:819,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - e
    argTypes:
    - QMouseEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 768
    functionDepth: 9
    functionLinenumber: 768
    functionLinenumberEnd: 820
    functionName: ConfigList::mouseReleaseEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigList::setValue
    - header
    - menuSelected
    - QIcon::isNull
    - QIcon::availableSizes
    - ConfigItem*::pixmap
    - itemAt
    - ConfigList::changeValue
    - indexAt
    - ConfigList::mouseReleaseEvent
    - QPoint::x
    - QMouseEvent*::pos
    - visualRect
    linkageType: ''
    returnType: void
    signature: void ConfigList::mouseReleaseEvent(QMouseEvent* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::mouseMoveEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - QMouseEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: ConfigList::mouseMoveEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigList::mouseMoveEvent
    linkageType: ''
    returnType: void
    signature: void ConfigList::mouseMoveEvent(QMouseEvent* e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QMouseEvent*::pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:831,1
    - Dst: itemAt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:832,1
    - Dst: menuSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:847,1
    - Dst: ConfigList::changeValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:849,1
    - Dst: ConfigList::mouseDoubleClickEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:853,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - QMouseEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 829
    functionDepth: 9
    functionLinenumber: 829
    functionLinenumberEnd: 854
    functionName: ConfigList::mouseDoubleClickEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - menuSelected
    - itemAt
    - ConfigList::mouseDoubleClickEvent
    - ConfigList::changeValue
    - QMouseEvent*::pos
    linkageType: ''
    returnType: void
    signature: void ConfigList::mouseDoubleClickEvent(QMouseEvent* e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::focusInEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:860,1
    - Dst: currentItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:862,1
    - Dst: ConfigItem*::setSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - e
    argTypes:
    - QFocusEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 868
    functionName: ConfigList::focusInEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigItem*::setSelected
    - currentItem
    - ConfigList::focusInEvent
    linkageType: ''
    returnType: void
    signature: void ConfigList::focusInEvent(QFocusEvent *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QContextMenuEvent*::y
      Src: /src/xen/xen/tools/kconfig/qconf.cc:872,1
    - Dst: header
      Src: /src/xen/xen/tools/kconfig/qconf.cc:872,1
    - Dst: QMenu::QMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:876,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:877,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:878,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:883,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:884,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:885,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:886,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:891,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:892,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:893,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:894,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:899,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:900,1
    - Dst: exec
      Src: /src/xen/xen/tools/kconfig/qconf.cc:902,1
    - Dst: QContextMenuEvent*::globalPos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:902,1
    - Dst: QContextMenuEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:903,1
    - Dst: QContextMenuEvent*::ignore
      Src: /src/xen/xen/tools/kconfig/qconf.cc:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - e
    argTypes:
    - QContextMenuEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 906
    functionName: ConfigList::contextMenuEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - QAction*::setChecked
    - QContextMenuEvent*::globalPos
    - header
    - QContextMenuEvent*::ignore
    - addAction
    - QMenu::QMenu
    - QAction*::setCheckable
    - QContextMenuEvent*::y
    - QAction::QAction
    - QContextMenuEvent*::accept
    - exec
    linkageType: ''
    returnType: void
    signature: void ConfigList::contextMenuEvent(QContextMenuEvent *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setObjectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:916,1
    - Dst: QVBoxLayout::QVBoxLayout
      Src: /src/xen/xen/tools/kconfig/qconf.cc:917,1
    - Dst: QVBoxLayout*::setContentsMargins
      Src: /src/xen/xen/tools/kconfig/qconf.cc:918,1
    - Dst: ConfigList::ConfigList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:920,1
    - Dst: QVBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:921,1
    - Dst: ConfigLineEdit::ConfigLineEdit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:922,1
    - Dst: hide
      Src: /src/xen/xen/tools/kconfig/qconf.cc:923,1
    - Dst: QVBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - QWidget*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 913
    functionDepth: 2
    functionLinenumber: 913
    functionLinenumberEnd: 928
    functionName: ConfigView::ConfigView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigList::ConfigList
    - QVBoxLayout*::setContentsMargins
    - ConfigLineEdit::ConfigLineEdit
    - QVBoxLayout::QVBoxLayout
    - hide
    - setObjectName
    - QVBoxLayout*::addWidget
    linkageType: ''
    returnType: void
    signature: void ConfigView::ConfigView(QWidget* parent, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 940
    functionName: ConfigView::~ConfigView(void)
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigView::~ConfigView(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ConfigView::updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - act
    argTypes:
    - QAction*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: ConfigView::setOptionMode
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigView::updateListAll
    linkageType: ''
    returnType: void
    signature: void ConfigView::setOptionMode(QAction *act)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 961
    functionName: ConfigView::setShowName
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - reinit
    linkageType: ''
    returnType: void
    signature: void ConfigView::setShowName(bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 970
    functionName: ConfigView::setShowRange
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - reinit
    linkageType: ''
    returnType: void
    signature: void ConfigView::setShowRange(bool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 979
    functionName: ConfigView::setShowData
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - reinit
    linkageType: ''
    returnType: void
    signature: void ConfigView::setShowData(bool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setExpanded
      Src: /src/xen/xen/tools/kconfig/qconf.cc:986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - open
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 990
    functionName: ConfigList::setAllOpen
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - setExpanded
    linkageType: ''
    returnType: void
    signature: void ConfigList::setAllOpen(bool open)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigView*::list::updateList
      Src: /src/xen/xen/tools/kconfig/qconf.cc:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - ConfigItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 998
    functionName: ConfigView::updateList
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigView*::list::updateList
    linkageType: ''
    returnType: void
    signature: void ConfigView::updateList(ConfigItem* item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigView*::list::updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1006
    functionName: ConfigView::updateListAll
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigView*::list::updateListAll
    linkageType: ''
    returnType: void
    signature: void ConfigView::updateListAll(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setObjectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1011,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1014,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1015,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1015,1
    - Dst: ConfigInfoView::setShowDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1016,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1016,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1017,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1018,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1018,1
    - Dst: aboutToQuit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1018,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1018,1
    - Dst: ConfigInfoView::saveSettings
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - QWidget*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1020
    functionName: ConfigInfoView::ConfigInfoView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - aboutToQuit
    - ConfigInfoView::saveSettings
    - value
    - beginGroup
    - SLOT
    - connect
    - endGroup
    - objectName
    - SIGNAL
    - ConfigInfoView::setShowDebug
    - setObjectName
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1024,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1025,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1025,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1026,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1026,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1029
    functionName: ConfigInfoView::saveSettings
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - beginGroup
    - endGroup
    - objectName
    - ConfigInfoView::showDebug
    - setValue
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::saveSettings(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ConfigInfoView::menuInfo
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1036,1
    - Dst: ConfigInfoView::symbolInfo
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1041
    functionName: ConfigInfoView::setShowDebug
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - ConfigInfoView::menuInfo
    - ConfigInfoView::symbolInfo
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::setShowDebug(bool b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1050,1
    - Dst: ConfigInfoView::menuInfo
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1053
    functionName: ConfigInfoView::setInfo
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigInfoView::menuInfo
    - clear
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::setInfo(struct menu *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1060,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1062,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1062,1
    - Dst: ConfigInfoView::debug_info
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1066,1
    - Dst: setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1055
    functionDepth: 6
    functionLinenumber: 1055
    functionLinenumberEnd: 1069
    functionName: ConfigInfoView::symbolInfo
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setText
    - ConfigInfoView::debug_info
    - ConfigInfoView::print_filter
    - sym_get_string_value
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::symbolInfo(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1080,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1084,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1085,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1086,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1087,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1093,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1094,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1095,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1096,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1102,1
    - Dst: ConfigInfoView::debug_info
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1103,1
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1105,1
    - Dst: menu_get_ext_help
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1106,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1107,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1107,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1108,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1111,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1113,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1116,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1121,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1122,1
    - Dst: setText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1124,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1125
    functionName: ConfigInfoView::menuInfo
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 2
    functionsReached:
    - QString
    - str_get
    - str_free
    - menu_get_ext_help
    - str_new
    - ConfigInfoView::print_filter
    - setText
    - ConfigInfoView::debug_info
    - ConfigInfoView::showDebug
    - expr_print
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::menuInfo(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1132,1
    - Dst: sym_type_name
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1132,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1133,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1138,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1145,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1146,1
    - Dst: prop_get_type_name
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1152,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1154,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1158,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1160,1
    - Dst: prop_get_type_name
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1166,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1178
    functionName: ConfigInfoView::debug_info
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 2
    functionsReached:
    - sym_is_choice
    - QString
    - prop_get_type_name
    - ConfigInfoView::print_filter
    - expr_print
    - sym_type_name
    linkageType: ''
    returnType: QString
    signature: QString ConfigInfoView::debug_info(struct symbol *sym)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QString::indexOf
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1184,1
    - Dst: toLatin1
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1185,1
    - Dst: QString::replace
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1187,1
    - Dst: QString::replace
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1191,1
    - Dst: QString::replace
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1195,1
    - Dst: QString::replace
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1199,1
    - Dst: QString::replace
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - str
    argTypes:
    - QString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1209
    functionName: ConfigInfoView::print_filter
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 3
    functionsReached:
    - toLatin1
    - QString::replace
    - QString::indexOf
    linkageType: ''
    returnType: QString
    signature: QString ConfigInfoView::print_filter(const QString &str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<QString*>
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1213,1
    - Dst: ConfigInfoView::print_filter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1214,1
    - Dst: QString
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - data
    - sym
    - str
    argTypes:
    - void*
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1222
    functionName: ConfigInfoView::expr_print_help
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<QString*>
    - ConfigInfoView::print_filter
    - QString
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::expr_print_help(void *data, struct symbol *sym,
      const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigInfoView::createStandardContextMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1226,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1227,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1228,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1231,1
    - Dst: ConfigInfoView::showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1231,1
    - Dst: QMenu*::addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1232,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - QPoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1235
    functionName: ConfigInfoView::createStandardContextMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - QAction*::setChecked
    - QMenu*::addSeparator
    - ConfigInfoView::createStandardContextMenu
    - QAction*::setCheckable
    - QAction::QAction
    - QMenu*::addAction
    - ConfigInfoView::showDebug
    linkageType: ''
    returnType: QMenu
    signature: QMenu * ConfigInfoView::createStandardContextMenu(const QPoint & pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::contextMenuEvent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - QContextMenuEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: ConfigInfoView::contextMenuEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigList::contextMenuEvent
    linkageType: ''
    returnType: void
    signature: void ConfigInfoView::contextMenuEvent(QContextMenuEvent *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setObjectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1245,1
    - Dst: setWindowTitle
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1246,1
    - Dst: QVBoxLayout::QVBoxLayout
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1248,1
    - Dst: QVBoxLayout*::setContentsMargins
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1249,1
    - Dst: QVBoxLayout*::setSpacing
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1250,1
    - Dst: QHBoxLayout::QHBoxLayout
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1251,1
    - Dst: QHBoxLayout*::setContentsMargins
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1252,1
    - Dst: QHBoxLayout*::setSpacing
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1253,1
    - Dst: QHBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1254,1
    - Dst: QLabel::QLabel
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1254,1
    - Dst: QLineEdit::QLineEdit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1255,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1256,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1256,1
    - Dst: returnPressed
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1256,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1256,1
    - Dst: search
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1256,1
    - Dst: QHBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1257,1
    - Dst: QPushButton::QPushButton
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1258,1
    - Dst: setAutoDefault
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1259,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1260,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1260,1
    - Dst: clicked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1260,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1260,1
    - Dst: search
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1260,1
    - Dst: QHBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1261,1
    - Dst: QVBoxLayout*::addLayout
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1262,1
    - Dst: QSplitter::QSplitter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1264,1
    - Dst: setOrientation
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1265,1
    - Dst: ConfigView::ConfigView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1266,1
    - Dst: ConfigInfoView::ConfigInfoView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1268,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1269,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1269,1
    - Dst: menuChanged
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1269,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1270,1
    - Dst: setInfo
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1270,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1271,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1271,1
    - Dst: menuChanged
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1271,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1272,1
    - Dst: setMenuLink
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1272,1
    - Dst: QVBoxLayout*::addWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1274,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1281,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1282,1
    - Dst: ConfigMainWindow*::width
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1282,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1283,1
    - Dst: ConfigMainWindow*::height
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1283,1
    - Dst: resize
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1284,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1285,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1286,1
    - Dst: QVariant::isValid
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1287,1
    - Dst: isValid
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1287,1
    - Dst: move
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1288,1
    - Dst: QVariant::toInt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1288,1
    - Dst: toInt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1288,1
    - Dst: readSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1289,1
    - Dst: setSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1291,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1292,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1293,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1293,1
    - Dst: aboutToQuit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1293,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1293,1
    - Dst: saveSettings
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1293,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1299,1
    - Dst: objectName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1300,1
    - Dst: pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1301,1
    - Dst: pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1302,1
    - Dst: size
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1303,1
    - Dst: size
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1304,1
    - Dst: sizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1305,1
    - Dst: list::clear
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1317,1
    - Dst: clear
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1318,1
    - Dst: sym_re_search
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1320,1
    - Dst: text
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1320,1
    - Dst: for_all_prompts
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1324,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1326,1
    - Dst: ConfigItem::ConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 2
    argNames:
    - parent
    - name
    argTypes:
    - ConfigMainWindow*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1242
    functionDepth: 6
    functionLinenumber: 1242
    functionLinenumberEnd: 1328
    functionName: ConfigSearchWindow::ConfigSearchWindow
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - menu_is_visible
    - pos
    - setAutoDefault
    - QHBoxLayout*::setSpacing
    - isValid
    - size
    - objectName
    - QHBoxLayout*::addWidget
    - readSizes
    - QVBoxLayout*::setSpacing
    - QVariant::isValid
    - search
    - QLineEdit::QLineEdit
    - ConfigItem::ConfigItem
    - QHBoxLayout::QHBoxLayout
    - aboutToQuit
    - beginGroup
    - connect
    - endGroup
    - QVBoxLayout*::addLayout
    - returnPressed
    - setOrientation
    - for_all_prompts
    - ConfigMainWindow*::width
    - setMenuLink
    - resize
    - text
    - QSplitter::QSplitter
    - ConfigMainWindow*::height
    - toInt
    - sym_re_search
    - setObjectName
    - clear
    - QLabel::QLabel
    - SLOT
    - move
    - setSizes
    - ConfigInfoView::ConfigInfoView
    - clicked
    - SIGNAL
    - ConfigView::ConfigView
    - QHBoxLayout*::setContentsMargins
    - QVBoxLayout*::addWidget
    - saveSettings
    - QVBoxLayout*::setContentsMargins
    - value
    - list::clear
    - QPushButton::QPushButton
    - setInfo
    - QVariant::toInt
    - sizes
    - menuChanged
    - setWindowTitle
    - QVBoxLayout::QVBoxLayout
    linkageType: ''
    returnType: void
    signature: void ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent,
      const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: desktop
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1342,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1343,1
    - Dst: setWindowTitle
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1347,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1349,1
    - Dst: QDesktopWidget*::width
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1349,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1350,1
    - Dst: QDesktopWidget*::height
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1350,1
    - Dst: resize
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1351,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1352,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1353,1
    - Dst: QVariant::isValid
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1354,1
    - Dst: isValid
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1354,1
    - Dst: move
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1355,1
    - Dst: QVariant::toInt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1355,1
    - Dst: toInt
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1355,1
    - Dst: QSplitter::QSplitter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1357,1
    - Dst: setOrientation
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1358,1
    - Dst: setCentralWidget
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1359,1
    - Dst: ConfigView::ConfigView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1361,1
    - Dst: QSplitter::QSplitter
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1364,1
    - Dst: setOrientation
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1365,1
    - Dst: ConfigView::ConfigView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1368,1
    - Dst: ConfigInfoView::ConfigInfoView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1371,1
    - Dst: setTabOrder
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1373,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1374,1
    - Dst: menuBar
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1376,1
    - Dst: QToolBar::QToolBar
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1377,1
    - Dst: addToolBar
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1378,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1380,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1380,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1382,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1383,1
    - Dst: QAction*::setShortcut
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1384,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1386,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1386,1
    - Dst: QAction*::setShortcut
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1387,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1389,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1389,1
    - Dst: setShortcut
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1390,1
    - Dst: conf_set_changed_callback
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1392,1
    - Dst: ConfigMainWindow::conf_changed
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1394,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1395,1
    - Dst: conf_get_configname
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1395,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1397,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1399,1
    - Dst: QAction*::setShortcut
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1400,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1402,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1402,1
    - Dst: setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1403,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1405,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1405,1
    - Dst: setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1406,1
    - Dst: QPixmap
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1408,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1408,1
    - Dst: setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1409,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1412,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1413,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1415,1
    - Dst: showName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1415,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1416,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1417,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1419,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1420,1
    - Dst: QActionGroup::QActionGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1423,1
    - Dst: QActionGroup*::setExclusive
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1424,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1430,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1431,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1432,1
    - Dst: showNormalAction::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1433,1
    - Dst: showAllAction::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1434,1
    - Dst: showPromptAction::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1435,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1437,1
    - Dst: QAction*::setCheckable
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1438,1
    - Dst: QAction*::setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1440,1
    - Dst: showDebug
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1440,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1442,1
    - Dst: QAction::QAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1444,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1448,1
    - Dst: addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1449,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1450,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1451,1
    - Dst: addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1452,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1453,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1454,1
    - Dst: addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1455,1
    - Dst: QMenuBar*::addMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1458,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1459,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1460,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1461,1
    - Dst: QMenu*::addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1462,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1463,1
    - Dst: QMenuBar*::addMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1466,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1467,1
    - Dst: QMenuBar*::addMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1470,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1471,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1472,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1473,1
    - Dst: QMenu*::addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1474,1
    - Dst: QMenu*::addActions
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1475,1
    - Dst: QActionGroup*::actions
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1475,1
    - Dst: QMenu*::addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1476,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1477,1
    - Dst: QMenuBar*::addSeparator
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1480,1
    - Dst: QMenuBar*::addMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1481,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1482,1
    - Dst: QMenu*::addAction
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1483,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1489,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1489,1
    - Dst: parentSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1489,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1490,1
    - Dst: ConfigMainWindow::goBack
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1490,1
    - Dst: value
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1505,1
    - Dst: ConfigMainWindow::showSingleView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1507,1
    - Dst: ConfigMainWindow::showFullView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1509,1
    - Dst: ConfigMainWindow::showSplitView
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1511,1
    - Dst: readSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1514,1
    - Dst: setSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1516,1
    - Dst: readSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1518,1
    - Dst: setSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1521
    functionName: ConfigMainWindow::ConfigMainWindow
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - snprintf
    - showNormalAction::setCheckable
    - setShortcut
    - isValid
    - ConfigMainWindow::showFullView
    - addAction
    - conf_get_configname
    - ConfigMainWindow::goBack
    - QDesktopWidget*::width
    - showDebug
    - setTabOrder
    - readSizes
    - menuBar
    - QVariant::isValid
    - QToolBar::QToolBar
    - addToolBar
    - QMenuBar*::addSeparator
    - xstrdup
    - QActionGroup::QActionGroup
    - QActionGroup*::actions
    - ConfigMainWindow::conf_changed
    - setCheckable
    - connect
    - QActionGroup*::setExclusive
    - setFocus
    - setOrientation
    - parentSelected
    - resize
    - QAction*::setCheckable
    - setCentralWidget
    - QSplitter::QSplitter
    - toInt
    - QMenu*::addActions
    - setEnabled
    - QPixmap
    - QDesktopWidget*::height
    - move
    - SLOT
    - ConfigInfoView::ConfigInfoView
    - setSizes
    - showAllAction::setCheckable
    - desktop
    - QMenuBar*::addMenu
    - QMenu*::addAction
    - ConfigView::ConfigView
    - SIGNAL
    - conf_set_changed_callback
    - QAction*::setChecked
    - ConfigMainWindow::showSingleView
    - ConfigMainWindow::showSplitView
    - value
    - addSeparator
    - QMenu*::addSeparator
    - showPromptAction::setCheckable
    - QAction*::setShortcut
    - QVariant::toInt
    - QAction::QAction
    - showName
    - setWindowTitle
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::ConfigMainWindow(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QFileDialog::getOpenFileName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1529,1
    - Dst: QString::isNull
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1530,1
    - Dst: QString::toLocal8Bit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1533,1
    - Dst: QByteArray::data
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1534,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1536,1
    - Dst: write_all_vcpu_information
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1537,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1539,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1540,1
    - Dst: ConfigView::updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1523
    functionDepth: 4
    functionLinenumber: 1523
    functionLinenumberEnd: 1543
    functionName: ConfigMainWindow::loadConfig
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - xstrdup
    - QByteArray::data
    - free
    - conf_read
    - ConfigView::updateListAll
    - write_all_vcpu_information
    - QFileDialog::getOpenFileName
    - QString::toLocal8Bit
    - QString::isNull
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::loadConfig(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1547,1
    - Dst: write_all_vcpu_information
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1548,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1545
    functionDepth: 4
    functionLinenumber: 1545
    functionLinenumberEnd: 1554
    functionName: ConfigMainWindow::saveConfig
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - conf_write
    - conf_write_autoconf
    - write_all_vcpu_information
    linkageType: ''
    returnType: bool
    signature: bool ConfigMainWindow::saveConfig(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QFileDialog::getSaveFileName
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1562,1
    - Dst: QString::isNull
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1563,1
    - Dst: QString::toLocal8Bit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1566,1
    - Dst: QByteArray::data
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1567,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1569,1
    - Dst: write_all_vcpu_information
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1570,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1572,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1574,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1556
    functionDepth: 4
    functionLinenumber: 1556
    functionLinenumberEnd: 1576
    functionName: ConfigMainWindow::saveConfigAs
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - xstrdup
    - conf_write
    - QByteArray::data
    - QFileDialog::getSaveFileName
    - free
    - write_all_vcpu_information
    - conf_write_autoconf
    - QString::toLocal8Bit
    - QString::isNull
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::saveConfigAs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ConfigSearchWindow::ConfigSearchWindow
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1581,1
    - Dst: show
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1578
    functionDepth: 7
    functionLinenumber: 1578
    functionLinenumberEnd: 1583
    functionName: ConfigMainWindow::searchConfig
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - ConfigSearchWindow::ConfigSearchWindow
    - show
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::searchConfig(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1587,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1589,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1592
    functionName: ConfigMainWindow::changeMenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - setEnabled
    - setRootMenu
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::changeMenu(struct menu *menu)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: menuSkip
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1600,1
    - Dst: menu_get_parent_menu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1606,1
    - Dst: ConfigList*::setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1609,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1613,1
    - Dst: clearSelection
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1614,1
    - Dst: menu_get_parent_menu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1618,1
    - Dst: findConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1621,1
    - Dst: ConfigItem*::setSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1623,1
    - Dst: scrollToItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1624,1
    - Dst: ConfigList*::setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1626,1
    - Dst: ConfigList*::findConfigItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1637,1
    - Dst: ConfigItem*::setSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1639,1
    - Dst: ConfigList*::scrollToItem
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1640,1
    - Dst: ConfigList*::setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1641,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1644
    functionName: ConfigMainWindow::setMenuLink
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - menuSkip
    - ConfigList*::setFocus
    - menu_get_parent_menu
    - findConfigItem
    - ConfigList*::scrollToItem
    - ConfigList*::setRootMenu
    - scrollToItem
    - ConfigList*::findConfigItem
    - setRootMenu
    - clearSelection
    - ConfigItem*::setSelected
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::setMenuLink(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clearSelection
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1646
    functionDepth: 0
    functionLinenumber: 1646
    functionLinenumberEnd: 1650
    functionName: ConfigMainWindow::listFocusChanged
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - clearSelection
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::listFocusChanged(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setParentMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1656,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1658,1
    - Dst: selectedItems
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1660,1
    - Dst: selectedItems
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1663,1
    - Dst: setSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1667,1
    - Dst: ConfigItem*::setSelected
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1668,1
    - Dst: ConfigItem*::parent
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1671,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1652
    functionDepth: 0
    functionLinenumber: 1652
    functionLinenumberEnd: 1673
    functionName: ConfigMainWindow::goBack
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setEnabled
    - ConfigItem*::parent
    - selectedItems
    - setParentMenu
    - setSelected
    - ConfigItem*::setSelected
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::goBack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1677,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1678,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1679,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1680,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1681,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1682,1
    - Dst: hide
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1684,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1685,1
    - Dst: updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1688,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1690,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1692
    functionName: ConfigMainWindow::showSingleView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setEnabled
    - setChecked
    - setFocus
    - updateListAll
    - setRootMenu
    - hide
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::showSingleView(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1696,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1697,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1698,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1699,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1700,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1701,1
    - Dst: updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1705,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1707,1
    - Dst: setAllOpen
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1708,1
    - Dst: processEvents
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1709,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1711,1
    - Dst: setAllOpen
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1712,1
    - Dst: show
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1713,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1715
    functionName: ConfigMainWindow::showSplitView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setEnabled
    - setAllOpen
    - setChecked
    - setFocus
    - updateListAll
    - setRootMenu
    - show
    - processEvents
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::showSplitView(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1719,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1720,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1721,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1722,1
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1723,1
    - Dst: setChecked
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1724,1
    - Dst: hide
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1726,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1727,1
    - Dst: updateListAll
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1730,1
    - Dst: setRootMenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1732,1
    - Dst: setFocus
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1734
    functionName: ConfigMainWindow::showFullView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setEnabled
    - setChecked
    - setFocus
    - updateListAll
    - setRootMenu
    - hide
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::showFullView(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1742,1
    - Dst: QCloseEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1743,1
    - Dst: QMessageBox::setButtonText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1748,1
    - Dst: QMessageBox::setButtonText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1749,1
    - Dst: QMessageBox::setButtonText
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1750,1
    - Dst: QMessageBox::exec
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1751,1
    - Dst: ConfigMainWindow::saveConfig
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1753,1
    - Dst: QCloseEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1754,1
    - Dst: QCloseEvent*::ignore
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1756,1
    - Dst: QCloseEvent*::accept
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1759,1
    - Dst: QCloseEvent*::ignore
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - e
    argTypes:
    - QCloseEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1740
    functionDepth: 5
    functionLinenumber: 1740
    functionLinenumberEnd: 1765
    functionName: ConfigMainWindow::closeEvent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - QMessageBox::exec
    - conf_get_changed
    - QCloseEvent*::ignore
    - ConfigMainWindow::saveConfig
    - QCloseEvent*::accept
    - QMessageBox::setButtonText
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::closeEvent(QCloseEvent* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_all_vcpu_information
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1767
    functionDepth: 4
    functionLinenumber: 1767
    functionLinenumberEnd: 1782
    functionName: ConfigMainWindow::showIntro
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - write_all_vcpu_information
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::showIntro(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_all_vcpu_information
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1784
    functionDepth: 4
    functionLinenumber: 1784
    functionLinenumberEnd: 1791
    functionName: ConfigMainWindow::showAbout
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - write_all_vcpu_information
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::showAbout(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1795,1
    - Dst: pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1795,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1796,1
    - Dst: pos
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1796,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1797,1
    - Dst: size
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1797,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1798,1
    - Dst: size
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1798,1
    - Dst: setValue
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1817,1
    - Dst: writeSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1819,1
    - Dst: sizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1819,1
    - Dst: writeSizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1820,1
    - Dst: sizes
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1793
    functionDepth: 0
    functionLinenumber: 1793
    functionLinenumberEnd: 1821
    functionName: ConfigMainWindow::saveSettings
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 0
    functionsReached:
    - pos
    - writeSizes
    - size
    - sizes
    - setValue
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::saveSettings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setEnabled
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1826,1
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1823
    functionDepth: 1
    functionLinenumber: 1823
    functionLinenumberEnd: 1827
    functionName: ConfigMainWindow::conf_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - setEnabled
    - conf_get_changed
    linkageType: ''
    returnType: void
    signature: void ConfigMainWindow::conf_changed(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1838,1
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1843
    functionName: fixup_rootmenu
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 1
    functionsReached:
    - fixup_rootmenu
    linkageType: ''
    returnType: void
    signature: void fixup_rootmenu(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1849,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1851
    functionName: usage
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 38
    functionsReached:
    - exit
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QApplication::QApplication
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1859,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1863,1
    - Dst: usage
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1867,1
    - Dst: usage
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1873,1
    - Dst: conf_parse
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1875,1
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1876,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1877,1
    - Dst: ConfigSettings::ConfigSettings
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1880,1
    - Dst: beginGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1881,1
    - Dst: ConfigMainWindow::ConfigMainWindow
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1882,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1885,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1885,1
    - Dst: lastWindowClosed
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1885,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1885,1
    - Dst: quit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1885,1
    - Dst: connect
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1886,1
    - Dst: SIGNAL
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1886,1
    - Dst: aboutToQuit
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1886,1
    - Dst: SLOT
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1886,1
    - Dst: saveSettings
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1886,1
    - Dst: ConfigMainWindow*::show
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1887,1
    - Dst: exec
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1888,1
    - Dst: endGroup
      Src: /src/xen/xen/tools/kconfig/qconf.cc:1890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1853
    functionDepth: 4
    functionLinenumber: 1853
    functionLinenumberEnd: 1896
    functionName: main
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.cc
    functionUses: 498
    functionsReached:
    - ConfigSettings::ConfigSettings
    - lastWindowClosed
    - aboutToQuit
    - beginGroup
    - connect
    - endGroup
    - SLOT
    - conf_read
    - quit
    - QApplication::QApplication
    - SIGNAL
    - ConfigMainWindow::ConfigMainWindow
    - conf_set_message_callback
    - exec
    - saveSettings
    - fixup_rootmenu
    - ConfigMainWindow*::show
    - conf_parse
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int ac, char** av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/expr.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: expr_alloc_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_symbol(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/expr.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - type
    - ce
    argTypes:
    - enum expr_type
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: expr_alloc_one
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/expr.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - e1
    - e2
    argTypes:
    - enum expr_type
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: expr_alloc_two
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct
      expr *e2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xcalloc
      Src: /src/xen/xen/tools/kconfig/expr.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - s1
    - s2
    argTypes:
    - enum expr_type
    - struct symbol*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: expr_alloc_comp
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - xcalloc
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1,
      struct symbol *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: expr_alloc_and
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - expr_alloc_two
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_and(struct expr *e1, struct expr *e2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: expr_alloc_or
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - expr_alloc_two
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_alloc_or(struct expr *e1, struct expr *e2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/expr.c:74,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/expr.c:75,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:81,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:95,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:96,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/expr.c:99,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - org
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 106
    functionName: expr_copy
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - xmalloc
    - free
    - expr_copy
    - fprintf
    - memcpy
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_copy(const struct expr *org)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:117,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:128,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:129,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/expr.c:132,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: expr_free
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - free
    - fprintf
    - expr_free
    linkageType: ''
    returnType: void
    signature: void expr_free(struct expr *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:156,1
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:157,1
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:161,1
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:162,1
    - Dst: expr_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:172,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:178,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:178,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:181,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:182,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:185,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:186,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - type
    - ep1
    - ep2
    argTypes:
    - enum expr_type
    - struct expr**
    - struct expr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: __expr_eliminate_eq
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - __expr_eliminate_eq
    - expr_alloc_symbol
    - expr_eq
    - expr_free
    linkageType: ''
    returnType: void
    signature: void __expr_eliminate_eq(enum expr_type type, struct expr **ep1, struct
      expr **ep2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:229,1
    - Dst: __expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:236,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:240,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ep1
    - ep2
    argTypes:
    - struct expr**
    - struct expr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 242
    functionName: expr_eliminate_eq
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 2
    functionsReached:
    - __expr_eliminate_eq
    - expr_eliminate_yn
    linkageType: ''
    returnType: void
    signature: void expr_eliminate_eq(struct expr **ep1, struct expr **ep2)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: expr_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:270,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:273,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:274,1
    - Dst: expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:276,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:279,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:280,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:290,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:291,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:292,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 297
    functionName: expr_eq
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 2
    functionsReached:
    - expr_eliminate_eq
    - expr_eq
    - expr_copy
    - expr_fprint
    - printf
    - expr_free
    linkageType: ''
    returnType: int
    signature: int expr_eq(struct expr *e1, struct expr *e2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:316,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:317,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:320,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:321,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:327,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:330,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:336,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:337,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:343,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:346,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:352,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:353,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:356,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:359,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:362,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:363,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:372,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:375,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:378,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:379,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 391
    functionName: expr_eliminate_yn
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 2
    functionsReached:
    - free
    - expr_eliminate_yn
    - expr_free
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_eliminate_yn(struct expr *e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: expr_trans_bool
      Src: /src/xen/xen/tools/kconfig/expr.c:404,1
    - Dst: expr_trans_bool
      Src: /src/xen/xen/tools/kconfig/expr.c:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 420
    functionName: expr_trans_bool
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_trans_bool
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_trans_bool(struct expr *e)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: expr_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:430,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:431,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:458,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:464,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:470,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:476,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:480,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:481,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:482,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:483,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:484,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 47
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 487
    functionName: expr_join_or
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - expr_eq
    - expr_copy
    - expr_alloc_symbol
    - printf
    - expr_fprint
    - expr_alloc_comp
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_join_or(struct expr *e1, struct expr *e2)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: expr_eq
      Src: /src/xen/xen/tools/kconfig/expr.c:494,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:495,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:521,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:526,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:531,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:538,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:539,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:545,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:546,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:552,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:558,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:564,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:574,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:575,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:576,1
    - Dst: expr_fprint
      Src: /src/xen/xen/tools/kconfig/expr.c:577,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:578,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 58
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 581
    functionName: expr_join_and
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - expr_eq
    - expr_copy
    - expr_alloc_symbol
    - printf
    - expr_fprint
    - expr_alloc_comp
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_join_and(struct expr *e1, struct expr *e2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:599,1
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:600,1
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:604,1
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:605,1
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:616,1
    - Dst: expr_join_or
      Src: /src/xen/xen/tools/kconfig/expr.c:623,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:625,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:625,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:626,1
    - Dst: expr_join_and
      Src: /src/xen/xen/tools/kconfig/expr.c:632,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:634,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/expr.c:634,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:635,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - type
    - ep1
    - ep2
    argTypes:
    - enum expr_type
    - struct expr**
    - struct expr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 590
    functionDepth: 6
    functionLinenumber: 590
    functionLinenumberEnd: 645
    functionName: expr_eliminate_dups1
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_eliminate_dups1
    - expr_join_or
    - expr_join_and
    - expr_alloc_symbol
    - expr_free
    linkageType: ''
    returnType: void
    signature: void expr_eliminate_dups1(enum expr_type type, struct expr **ep1, struct
      expr **ep2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: expr_eliminate_dups1
      Src: /src/xen/xen/tools/kconfig/expr.c:669,1
    - Dst: expr_eliminate_yn
      Src: /src/xen/xen/tools/kconfig/expr.c:676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 658
    functionDepth: 7
    functionLinenumber: 658
    functionLinenumberEnd: 680
    functionName: expr_eliminate_dups
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - expr_eliminate_yn
    - expr_eliminate_dups1
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_eliminate_dups(struct expr *e)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/expr.c:705,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/expr.c:706,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:715,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:720,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:741,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:749,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:759,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:760,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/expr.c:762,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:768,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:776,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:784,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:792,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/expr.c:795,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:801,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/expr.c:804,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:810,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:819,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/expr.c:828,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 142
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 843
    functionName: expr_transform
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_transform
    - free
    - expr_alloc_one
    - expr_alloc_symbol
    - printf
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_transform(struct expr *e)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: expr_contains_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:853,1
    - Dst: expr_contains_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:854,1
    - Dst: expr_contains_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - dep
    - sym
    argTypes:
    - struct expr*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 871
    functionName: expr_contains_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_contains_symbol
    linkageType: ''
    returnType: int
    signature: int expr_contains_symbol(struct expr *dep, struct symbol *sym)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: expr_depends_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:880,1
    - Dst: expr_depends_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:881,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - dep
    - sym
    argTypes:
    - struct expr*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 900
    functionName: expr_depends_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_depends_symbol
    linkageType: ''
    returnType: bool
    signature: bool expr_depends_symbol(struct expr *dep, struct symbol *sym)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:921,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:923,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/expr.c:928,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/expr.c:929,1
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:931,1
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:933,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:935,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/expr.c:938,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/expr.c:939,1
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:941,1
    - Dst: expr_alloc_two
      Src: /src/xen/xen/tools/kconfig/expr.c:943,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:945,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/expr.c:948,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:957,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:959,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:961,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:961,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/expr.c:964,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:964,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/expr.c:966,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/expr.c:968,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/expr.c:972,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - e
    - type
    - sym
    argTypes:
    - struct expr*
    - enum expr_type
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 979
    functionName: expr_trans_compare
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_copy
    - expr_alloc_one
    - expr_alloc_symbol
    - expr_alloc_two
    - expr_alloc_comp
    - expr_trans_compare
    linkageType: ''
    returnType: struct expr
    signature: struct expr *expr_trans_compare(struct expr *e, enum expr_type type,
      struct symbol *sym)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/expr.c:1003,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/expr.c:1004,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/expr.c:1005,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/expr.c:1008,1
    - Dst: strtoull
      Src: /src/xen/xen/tools/kconfig/expr.c:1012,1
    - Dst: strtoll
      Src: /src/xen/xen/tools/kconfig/expr.c:1016,1
    - Dst: isxdigit
      Src: /src/xen/xen/tools/kconfig/expr.c:1020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - str
    - type
    - val
    argTypes:
    - char*
    - enum symbol_type
    - union string_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1022
    functionName: expr_parse_string
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - strtoull
    - strcmp
    - strtoll
    - isxdigit
    linkageType: ''
    returnType: enum string_value_kind
    signature: "enum string_value_kind expr_parse_string(const char *str,\n\t\t\t\t\t\tenum
      symbol_type type,\n\t\t\t\t\t\tunion string_value *val)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1037,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1040,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1041,1
    - Dst: EXPR_AND
      Src: /src/xen/xen/tools/kconfig/expr.c:1042,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1044,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1045,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/expr.c:1046,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1048,1
    - Dst: EXPR_NOT
      Src: /src/xen/xen/tools/kconfig/expr.c:1049,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:1058,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1062,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1063,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1064,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1065,1
    - Dst: expr_parse_string
      Src: /src/xen/xen/tools/kconfig/expr.c:1068,1
    - Dst: expr_parse_string
      Src: /src/xen/xen/tools/kconfig/expr.c:1069,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/expr.c:1073,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:1093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1024
    functionDepth: 6
    functionLinenumber: 1024
    functionLinenumberEnd: 1096
    functionName: expr_calc_value
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 11
    functionsReached:
    - EXPR_AND
    - sym_get_string_value
    - sym_calc_value
    - strcmp
    - expr_parse_string
    - EXPR_OR
    - printf
    - expr_calc_value
    - EXPR_NOT
    linkageType: ''
    returnType: tristate
    signature: tristate expr_calc_value(struct expr *e)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/expr.c:1128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - enum expr_type
    - enum expr_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1130
    functionName: expr_compare_type
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int expr_compare_type(enum expr_type t1, enum expr_type t2)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1137,1
    - Dst: expr_compare_type
      Src: /src/xen/xen/tools/kconfig/expr.c:1141,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1142,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1146,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1148,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1151,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1152,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1156,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1158,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1159,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1160,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1165,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1167,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1168,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1169,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1174,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1176,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1177,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1178,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1182,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1184,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1185,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1186,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1189,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1190,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1191,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1194,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1195,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1196,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1199,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1201,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1202,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1206,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1207,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1208,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1209,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1210,1
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/expr.c:1215,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1216,1
    - Dst: expr_compare_type
      Src: /src/xen/xen/tools/kconfig/expr.c:1220,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1221,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 3
    argNames:
    - e
    - data
    - prevtoken
    argTypes:
    - struct expr*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1222
    functionName: expr_print
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 3
    functionsReached:
    - fn
    - sprintf
    - expr_compare_type
    - expr_print
    linkageType: ''
    returnType: void
    signature: "void expr_print(struct expr *e,\n\t\tvoid (*fn)(void *, struct symbol
      *, const char *),\n\t\tvoid *data, int prevtoken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfwrite
      Src: /src/xen/xen/tools/kconfig/expr.c:1226,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/expr.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - sym
    - str
    argTypes:
    - void*
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1227
    functionName: expr_print_file_helper
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - xfwrite
    - strlen
    linkageType: ''
    returnType: void
    signature: void expr_print_file_helper(void *data, struct symbol *sym, const char
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - out
    argTypes:
    - struct expr*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1232
    functionName: expr_fprint
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 3
    functionsReached:
    - expr_print
    linkageType: ''
    returnType: void
    signature: void expr_fprint(struct expr *e, FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1240,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/expr.c:1243,1
    - Dst: strrchr
      Src: /src/xen/xen/tools/kconfig/expr.c:1244,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/expr.c:1248,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/expr.c:1253,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/expr.c:1256,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/expr.c:1259,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/expr.c:1261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - data
    - sym
    - str
    argTypes:
    - void*
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1234
    functionDepth: 6
    functionLinenumber: 1234
    functionLinenumberEnd: 1262
    functionName: expr_print_gstr_helper
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 0
    functionsReached:
    - sym_get_string_value
    - str_printf
    - strlen
    - strrchr
    - str_append
    linkageType: ''
    returnType: void
    signature: void expr_print_gstr_helper(void *data, struct symbol *sym, const char
      *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - e
    - gs
    argTypes:
    - struct expr*
    - struct gstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1267
    functionName: expr_gstr_print
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_print
    linkageType: ''
    returnType: void
    signature: void expr_gstr_print(struct expr *e, struct gstr *gs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expr_print_revdep
      Src: /src/xen/xen/tools/kconfig/expr.c:1279,1
    - Dst: expr_print_revdep
      Src: /src/xen/xen/tools/kconfig/expr.c:1280,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/expr.c:1281,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1283,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1287,1
    - Dst: expr_print
      Src: /src/xen/xen/tools/kconfig/expr.c:1288,1
    - Dst: fn
      Src: /src/xen/xen/tools/kconfig/expr.c:1289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - e
    - data
    - pr_type
    - title
    argTypes:
    - struct expr*
    - void*
    - tristate
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1274
    functionDepth: 7
    functionLinenumber: 1274
    functionLinenumberEnd: 1291
    functionName: expr_print_revdep
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_calc_value
    - fn
    - expr_print_revdep
    - expr_print
    linkageType: ''
    returnType: void
    signature: "void expr_print_revdep(struct expr *e,\n\t\t\t      void (*fn)(void
      *, struct symbol *, const char *),\n\t\t\t      void *data, tristate pr_type,
      const char **title)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_print_revdep
      Src: /src/xen/xen/tools/kconfig/expr.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - e
    - gs
    - pr_type
    - title
    argTypes:
    - struct expr*
    - struct gstr*
    - tristate
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 8
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: expr_gstr_print_revdep
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.c
    functionUses: 1
    functionsReached:
    - expr_print_revdep
    linkageType: ''
    returnType: void
    signature: "void expr_gstr_print_revdep(struct expr *e, struct gstr *gs,\n\t\t\t
      \   tristate pr_type, const char *title)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/menu.c:24,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:25,1
    - Dst: vfprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:26,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:27,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/menu.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - menu
    - fmt
    argTypes:
    - struct menu*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: menu_warn
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void menu_warn(struct menu *menu, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/menu.c:34,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:35,1
    - Dst: vfprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:36,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/menu.c:37,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/menu.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - prop
    - fmt
    argTypes:
    - struct property*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: prop_warn
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void prop_warn(struct property *prop, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: _menu_init
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _menu_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/menu.c:51,1
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/menu.c:52,1
    - Dst: zconf_lineno
      Src: /src/xen/xen/tools/kconfig/menu.c:56,1
    - Dst: menu_add_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 63
    functionName: menu_add_entry
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - memset
    - zconf_lineno
    - xmalloc
    - menu_add_symbol
    linkageType: ''
    returnType: void
    signature: void menu_add_entry(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: menu_add_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct menu
    signature: struct menu *menu_add_menu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: menu_end_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void menu_end_menu(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rewrite_m
      Src: /src/xen/xen/tools/kconfig/menu.c:88,1
    - Dst: rewrite_m
      Src: /src/xen/xen/tools/kconfig/menu.c:92,1
    - Dst: rewrite_m
      Src: /src/xen/xen/tools/kconfig/menu.c:93,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:98,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 104
    functionName: rewrite_m
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - expr_alloc_and
    - expr_alloc_symbol
    - rewrite_m
    linkageType: ''
    returnType: struct expr
    signature: struct expr *rewrite_m(struct expr *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dep
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: menu_add_dep
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - expr_alloc_and
    linkageType: ''
    returnType: void
    signature: void menu_add_dep(struct expr *dep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: menu_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:121,1
    - Dst: sym_type_name
      Src: /src/xen/xen/tools/kconfig/menu.c:124,1
    - Dst: sym_type_name
      Src: /src/xen/xen/tools/kconfig/menu.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: menu_set_type
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - menu_warn
    - sym_type_name
    linkageType: ''
    returnType: void
    signature: void menu_set_type(int type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prop_alloc
      Src: /src/xen/xen/tools/kconfig/menu.c:129,1
    - Dst: isspace
      Src: /src/xen/xen/tools/kconfig/menu.c:136,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:137,1
    - Dst: isspace
      Src: /src/xen/xen/tools/kconfig/menu.c:138,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:142,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:162,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - type
    - prompt
    - expr
    - dep
    argTypes:
    - enum prop_type
    - char*
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 175
    functionName: menu_add_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - isspace
    - prop_alloc
    - expr_copy
    - prop_warn
    - expr_alloc_and
    linkageType: ''
    returnType: struct property
    signature: struct property *menu_add_prop(enum prop_type type, char *prompt, struct
      expr *expr, struct expr *dep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: menu_add_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - prompt
    - dep
    argTypes:
    - enum prop_type
    - char*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: menu_add_prompt
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - menu_add_prop
    linkageType: ''
    returnType: struct property
    signature: struct property *menu_add_prompt(enum prop_type type, char *prompt,
      struct expr *dep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: menu_add_visibility
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - expr_alloc_and
    linkageType: ''
    returnType: void
    signature: void menu_add_visibility(struct expr *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: menu_add_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - expr
    - dep
    argTypes:
    - enum prop_type
    - struct expr*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: menu_add_expr
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - menu_add_prop
    linkageType: ''
    returnType: void
    signature: void menu_add_expr(enum prop_type type, struct expr *expr, struct expr
      *dep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: menu_add_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:195,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - sym
    - dep
    argTypes:
    - enum prop_type
    - struct symbol*
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: menu_add_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - menu_add_prop
    - expr_alloc_symbol
    linkageType: ''
    returnType: void
    signature: void menu_add_symbol(enum prop_type type, struct symbol *sym, struct
      expr *dep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: zconf_error
      Src: /src/xen/xen/tools/kconfig/menu.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: menu_add_option_modules
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - zconf_error
    linkageType: ''
    returnType: void
    signature: void menu_add_option_modules(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: zconf_error
      Src: /src/xen/xen/tools/kconfig/menu.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: menu_add_option_defconfig_list
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - zconf_error
    linkageType: ''
    returnType: void
    signature: void menu_add_option_defconfig_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    functionName: menu_add_option_allnoconfig_y
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void menu_add_option_allnoconfig_y(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_string_valid
      Src: /src/xen/xen/tools/kconfig/menu.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - sym
    - sym2
    argTypes:
    - struct symbol*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: menu_validate_number
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - sym_string_valid
    linkageType: ''
    returnType: int
    signature: int menu_validate_number(struct symbol *sym, struct symbol *sym2)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:237,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:242,1
    - Dst: menu_validate_number
      Src: /src/xen/xen/tools/kconfig/menu.c:244,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:245,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/menu.c:249,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:251,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:254,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:255,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:263,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:265,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:271,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:278,1
    - Dst: menu_validate_number
      Src: /src/xen/xen/tools/kconfig/menu.c:280,1
    - Dst: menu_validate_number
      Src: /src/xen/xen/tools/kconfig/menu.c:281,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:282,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 37
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 288
    functionName: sym_check_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - menu_validate_number
    - sym_is_choice
    - sym_get_choice_prop
    - prop_warn
    - prop_get_symbol
    linkageType: ''
    returnType: void
    signature: void sym_check_prop(struct symbol *sym)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/menu.c:304,1
    - Dst: menu_set_type
      Src: /src/xen/xen/tools/kconfig/menu.c:310,1
    - Dst: menu_set_type
      Src: /src/xen/xen/tools/kconfig/menu.c:319,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:328,1
    - Dst: rewrite_m
      Src: /src/xen/xen/tools/kconfig/menu.c:342,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/menu.c:343,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:344,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:344,1
    - Dst: expr_eliminate_dups
      Src: /src/xen/xen/tools/kconfig/menu.c:345,1
    - Dst: rewrite_m
      Src: /src/xen/xen/tools/kconfig/menu.c:386,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/menu.c:387,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:388,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:388,1
    - Dst: expr_eliminate_dups
      Src: /src/xen/xen/tools/kconfig/menu.c:389,1
    - Dst: expr_trans_bool
      Src: /src/xen/xen/tools/kconfig/menu.c:391,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:399,1
    - Dst: expr_alloc_or
      Src: /src/xen/xen/tools/kconfig/menu.c:400,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:401,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:401,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:401,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:403,1
    - Dst: expr_alloc_or
      Src: /src/xen/xen/tools/kconfig/menu.c:404,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:405,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:405,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:405,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/menu.c:410,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/menu.c:411,1
    - Dst: menu_finalize
      Src: /src/xen/xen/tools/kconfig/menu.c:418,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/menu.c:443,1
    - Dst: expr_eliminate_dups
      Src: /src/xen/xen/tools/kconfig/menu.c:444,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/menu.c:444,1
    - Dst: expr_contains_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:450,1
    - Dst: expr_depends_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:453,1
    - Dst: expr_trans_compare
      Src: /src/xen/xen/tools/kconfig/menu.c:466,1
    - Dst: expr_eliminate_dups
      Src: /src/xen/xen/tools/kconfig/menu.c:467,1
    - Dst: expr_transform
      Src: /src/xen/xen/tools/kconfig/menu.c:467,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:468,1
    - Dst: expr_eliminate_eq
      Src: /src/xen/xen/tools/kconfig/menu.c:469,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/menu.c:470,1
    - Dst: expr_is_yes
      Src: /src/xen/xen/tools/kconfig/menu.c:471,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/menu.c:473,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/menu.c:477,1
    - Dst: menu_finalize
      Src: /src/xen/xen/tools/kconfig/menu.c:479,1
    - Dst: expr_free
      Src: /src/xen/xen/tools/kconfig/menu.c:483,1
    - Dst: expr_alloc_or
      Src: /src/xen/xen/tools/kconfig/menu.c:490,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/menu.c:493,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/menu.c:494,1
    - Dst: menu_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:498,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:501,1
    - Dst: prop_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:507,1
    - Dst: expr_alloc_comp
      Src: /src/xen/xen/tools/kconfig/menu.c:516,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:517,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:521,1
    - Dst: expr_copy
      Src: /src/xen/xen/tools/kconfig/menu.c:521,1
    - Dst: menu_add_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:525,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:526,1
    - Dst: expr_alloc_one
      Src: /src/xen/xen/tools/kconfig/menu.c:529,1
    - Dst: menu_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:575,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/menu.c:577,1
    - Dst: menu_warn
      Src: /src/xen/xen/tools/kconfig/menu.c:578,1
    - Dst: sym_check_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:581,1
    - Dst: sym_is_optional
      Src: /src/xen/xen/tools/kconfig/menu.c:594,1
    - Dst: expr_alloc_or
      Src: /src/xen/xen/tools/kconfig/menu.c:595,1
    - Dst: expr_alloc_and
      Src: /src/xen/xen/tools/kconfig/menu.c:596,1
    - Dst: expr_alloc_symbol
      Src: /src/xen/xen/tools/kconfig/menu.c:597,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 143
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 290
    functionDepth: 8
    functionLinenumber: 290
    functionLinenumberEnd: 599
    functionName: menu_finalize
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - sym_get_choice_prop
    - expr_alloc_symbol
    - sym_is_optional
    - expr_eliminate_dups
    - expr_free
    - expr_alloc_or
    - prop_warn
    - menu_add_symbol
    - expr_trans_compare
    - expr_eliminate_eq
    - sym_check_prop
    - menu_warn
    - expr_alloc_one
    - expr_trans_bool
    - menu_finalize
    - expr_depends_symbol
    - expr_alloc_comp
    - expr_transform
    - sym_is_choice
    - expr_contains_symbol
    - expr_copy
    - rewrite_m
    - menu_set_type
    - expr_alloc_and
    - sym_is_choice_value
    - prop_get_symbol
    - expr_is_yes
    linkageType: ''
    returnType: void
    signature: void menu_finalize(struct menu *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: menu_has_prompt
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool menu_has_prompt(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/menu.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 622
    functionName: menu_is_empty
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - menu_is_visible
    linkageType: ''
    returnType: bool
    signature: bool menu_is_empty(struct menu *menu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/menu.c:634,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/menu.c:640,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/menu.c:643,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/menu.c:648,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/menu.c:652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 624
    functionDepth: 7
    functionLinenumber: 624
    functionLinenumberEnd: 660
    functionName: menu_is_visible
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 9
    functionsReached:
    - expr_calc_value
    - sym_calc_value
    - sym_get_tristate_value
    - menu_is_visible
    linkageType: ''
    returnType: bool
    signature: bool menu_is_visible(struct menu *menu)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: menu_get_prompt
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *menu_get_prompt(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: menu_get_root_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct menu
    signature: struct menu *menu_get_root_menu(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: menu_get_parent_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct menu
    signature: struct menu *menu_get_parent_menu(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: menu_has_help
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool menu_has_help(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 699
    functionName: menu_get_help
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *menu_get_help(struct menu *menu)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:708,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/menu.c:711,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/menu.c:718,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/menu.c:720,1
    - Dst: list_empty
      Src: /src/xen/xen/tools/kconfig/menu.c:731,1
    - Dst: list_entry
      Src: /src/xen/xen/tools/kconfig/menu.c:734,1
    - Dst: list_add_tail
      Src: /src/xen/xen/tools/kconfig/menu.c:737,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:741,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/menu.c:745,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:746,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/menu.c:747,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:749,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/menu.c:751,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:753,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - r
    - prop
    - head
    argTypes:
    - struct gstr*
    - struct property*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 701
    functionDepth: 8
    functionLinenumber: 701
    functionLinenumberEnd: 756
    functionName: get_prompt_str
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - menu_is_visible
    - menu_get_prompt
    - xmalloc
    - sym_get_string_value
    - str_printf
    - list_entry
    - str_append
    - strlen
    - list_empty
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void get_prompt_str(struct gstr *r, struct property *prop,\n\t\t\t
      \  struct list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_all_properties
      Src: /src/xen/xen/tools/kconfig/menu.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 768
    functionName: get_symbol_prop
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - for_all_properties
    linkageType: ''
    returnType: struct property
    signature: struct property *get_symbol_prop(struct symbol *sym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:778,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:781,1
    - Dst: expr_gstr_print
      Src: /src/xen/xen/tools/kconfig/menu.c:782,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - r
    - sym
    - tok
    - prefix
    argTypes:
    - struct gstr*
    - struct symbol*
    - enum prop_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 786
    functionName: get_symbol_props_str
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - expr_gstr_print
    - str_printf
    - str_append
    linkageType: ''
    returnType: void
    signature: "void get_symbol_props_str(struct gstr *r, struct symbol *sym,\n\t\t\t\t
      enum prop_type tok, const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:778,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:781,1
    - Dst: expr_gstr_print
      Src: /src/xen/xen/tools/kconfig/menu.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 783
    functionName: for_all_properties
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - expr_gstr_print
    - str_printf
    - str_append
    linkageType: ''
    returnType: void
    signature: void for_all_properties(sym, prop, tok)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:797,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/menu.c:798,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:799,1
    - Dst: sym_type_name
      Src: /src/xen/xen/tools/kconfig/menu.c:799,1
    - Dst: sym_get_range_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:801,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:803,1
    - Dst: expr_gstr_print
      Src: /src/xen/xen/tools/kconfig/menu.c:804,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:805,1
    - Dst: for_all_prompts
      Src: /src/xen/xen/tools/kconfig/menu.c:809,1
    - Dst: get_prompt_str
      Src: /src/xen/xen/tools/kconfig/menu.c:810,1
    - Dst: get_symbol_prop
      Src: /src/xen/xen/tools/kconfig/menu.c:812,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:814,1
    - Dst: expr_is_yes
      Src: /src/xen/xen/tools/kconfig/menu.c:816,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:817,1
    - Dst: expr_gstr_print
      Src: /src/xen/xen/tools/kconfig/menu.c:818,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:819,1
    - Dst: get_symbol_props_str
      Src: /src/xen/xen/tools/kconfig/menu.c:823,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:825,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:826,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:827,1
    - Dst: get_symbol_props_str
      Src: /src/xen/xen/tools/kconfig/menu.c:830,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:832,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:833,1
    - Dst: expr_gstr_print_revdep
      Src: /src/xen/xen/tools/kconfig/menu.c:834,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:837,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - r
    - sym
    - head
    argTypes:
    - struct gstr*
    - struct symbol*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 791
    functionDepth: 9
    functionLinenumber: 791
    functionLinenumberEnd: 838
    functionName: get_symbol_str
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 0
    functionsReached:
    - expr_gstr_print
    - sym_get_string_value
    - str_printf
    - get_prompt_str
    - get_symbol_prop
    - expr_gstr_print_revdep
    - for_all_prompts
    - get_symbol_props_str
    - expr_is_yes
    - sym_type_name
    - str_append
    - sym_get_range_prop
    linkageType: ''
    returnType: void
    signature: "void get_symbol_str(struct gstr *r, struct symbol *sym,\n\t\t    struct
      list_head *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/menu.c:843,1
    - Dst: get_symbol_str
      Src: /src/xen/xen/tools/kconfig/menu.c:847,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/menu.c:849,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sym_arr
    - head
    argTypes:
    - struct symbol**
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 840
    functionDepth: 10
    functionLinenumber: 840
    functionLinenumberEnd: 851
    functionName: get_relations_str
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 1
    functionsReached:
    - str_new
    - str_append
    - get_symbol_str
    linkageType: ''
    returnType: struct gstr
    signature: struct gstr get_relations_str(struct symbol **sym_arr, struct list_head
      *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: menu_has_help
      Src: /src/xen/xen/tools/kconfig/menu.c:859,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:861,1
    - Dst: menu_get_help
      Src: /src/xen/xen/tools/kconfig/menu.c:862,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/menu.c:864,1
    - Dst: get_symbol_str
      Src: /src/xen/xen/tools/kconfig/menu.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - menu
    - help
    argTypes:
    - struct menu*
    - struct gstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 854
    functionDepth: 10
    functionLinenumber: 854
    functionLinenumberEnd: 867
    functionName: menu_get_ext_help
    functionSourceFile: /src/xen/xen/tools/kconfig/menu.c
    functionUses: 2
    functionsReached:
    - menu_has_help
    - str_printf
    - menu_get_help
    - get_symbol_str
    linkageType: ''
    returnType: void
    signature: void menu_get_ext_help(struct menu *menu, struct gstr *help)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:25,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:26,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:29,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:31,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:32,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:33,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:34,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:36,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:37,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:38,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:40,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:41,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:42,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:43,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:45,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:46,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:47,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:48,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:50,1
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 52
    functionName: set_normal_colors
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - init_pair
    linkageType: ''
    returnType: void
    signature: void set_normal_colors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:73,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:74,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:76,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:77,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:78,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:79,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:80,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:82,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:83,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:84,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:86,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:87,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:88,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:89,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:91,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:92,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:93,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:94,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:96,1
    - Dst: mkattr
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 98
    functionName: normal_color_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - mkattr
    linkageType: ''
    returnType: void
    signature: void normal_color_theme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: mkattr
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkattr(name, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:105,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:106,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:108,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:109,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:110,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:111,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:112,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:114,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:115,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:116,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:118,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:119,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:120,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:121,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:123,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:124,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:125,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:126,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:128,1
    - Dst: mkattrn
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: no_colors_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - mkattrn
    linkageType: ''
    returnType: void
    signature: void no_colors_theme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: mkattrn
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkattrn(name, attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: start_color
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:134,1
    - Dst: use_default_colors
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:135,1
    - Dst: set_normal_colors
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:136,1
    - Dst: has_colors
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:137,1
    - Dst: normal_color_theme
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:138,1
    - Dst: no_colors_theme
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: set_colors
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - start_color
    - no_colors_theme
    - use_default_colors
    - set_normal_colors
    - normal_color_theme
    - has_colors
    linkageType: ''
    returnType: void
    signature: void set_colors(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:159,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:167,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:170,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:171,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - win
    - starty
    - startx
    - width
    - string
    - color
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    - char*
    - chtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: print_in_middle
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - wattrset
    - getyx
    - mvwprintw
    - strlen
    - refresh
    linkageType: ''
    returnType: void
    signature: "void print_in_middle(WINDOW *win,\n\t\tint starty,\n\t\tint startx,\n\t\tint
      width,\n\t\tconst char *string,\n\t\tchtype color)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: get_line_no
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_line_no(const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - text
    - line_no
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: get_line
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_line(const char *text, int line_no)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: get_line_length
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_line_length(const char *line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_line_no
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:217,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:220,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:222,1
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:225,1
    - Dst: get_line_length
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:226,1
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:227,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:227,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - win
    - text
    argTypes:
    - WINDOW*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: fill_window
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - get_line
    - get_line_no
    - mvwprintw
    - strncpy
    - min
    - get_line_length
    - getmaxyx
    linkageType: ''
    returnType: void
    signature: void fill_window(WINDOW *win, const char *text)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:259,1
    - Dst: va_arg
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:261,1
    - Dst: new_item
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:262,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:263,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:265,1
    - Dst: get_line_no
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:269,1
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:271,1
    - Dst: get_line_length
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:272,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:277,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:279,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:280,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:289,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:290,1
    - Dst: derwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:291,1
    - Dst: new_menu
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:293,1
    - Dst: derwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:294,1
    - Dst: set_menu_fore
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:297,1
    - Dst: set_menu_back
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:298,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:300,1
    - Dst: box
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:301,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:304,1
    - Dst: fill_window
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:305,1
    - Dst: set_menu_win
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:307,1
    - Dst: set_menu_sub
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:308,1
    - Dst: set_menu_format
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:309,1
    - Dst: menu_opts_off
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:310,1
    - Dst: menu_opts_off
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:311,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:312,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:313,1
    - Dst: set_menu_mark
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:314,1
    - Dst: post_menu
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:315,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:318,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:319,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:320,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:323,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:326,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:331,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:332,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:335,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:336,1
    - Dst: item_index
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:339,1
    - Dst: current_item
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:339,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:341,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:342,1
    - Dst: unpost_menu
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:348,1
    - Dst: free_menu
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:349,1
    - Dst: free_item
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:351,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:353,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 74
    argCount: 3
    argNames:
    - main_window
    - msg
    - btn_num
    argTypes:
    - WINDOW*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 355
    functionName: btn_dialog
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - menu_opts_off
    - max
    - set_menu_sub
    - touchwin
    - delwin
    - va_arg
    - current_item
    - unpost_menu
    - strlen
    - new_item
    - get_line
    - wattrset
    - newwin
    - new_menu
    - get_line_no
    - set_menu_win
    - derwin
    - fill_window
    - set_menu_format
    - item_index
    - getmaxy
    - menu_opts_on
    - free_menu
    - box
    - set_menu_fore
    - get_line_length
    - getmaxx
    - KEY_F
    - va_start
    - post_menu
    - set_menu_back
    - refresh_all_windows
    - keypad
    - set_menu_mark
    - menu_driver
    - wgetch
    - va_end
    - free_item
    linkageType: ''
    returnType: int
    signature: int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:369,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:373,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:375,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:376,1
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:377,1
    - Dst: get_line_no
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:381,1
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:383,1
    - Dst: get_line_length
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:384,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:385,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:389,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:389,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:391,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:392,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:393,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:394,1
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:400,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:403,1
    - Dst: derwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:404,1
    - Dst: derwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:405,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:406,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:408,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:410,1
    - Dst: box
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:411,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:412,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:414,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:417,1
    - Dst: fill_window
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:418,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:420,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:421,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:422,1
    - Dst: new_panel
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:426,1
    - Dst: curs_set
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:429,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:431,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:432,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:433,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:434,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:438,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:439,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:440,1
    - Dst: memmove
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:446,1
    - Dst: memmove
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:456,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:482,1
    - Dst: isgraph
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:485,1
    - Dst: isspace
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:485,1
    - Dst: realloc
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:489,1
    - Dst: memmove
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:493,1
    - Dst: mvprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:501,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:510,1
    - Dst: wclrtoeol
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:511,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:512,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:513,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:515,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:516,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:517,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:522,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:523,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:526,1
    - Dst: curs_set
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:533,1
    - Dst: del_panel
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:534,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:535,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:536,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:537,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 130
    argCount: 6
    argNames:
    - main_window
    - title
    - prompt
    - init
    - resultp
    - result_len
    argTypes:
    - WINDOW*
    - char*
    - char*
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 539
    functionName: dialog_inputbox
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 4
    functionsReached:
    - max
    - curs_set
    - touchwin
    - isspace
    - delwin
    - strlen
    - getmaxyx
    - get_line
    - wattrset
    - newwin
    - get_line_no
    - isgraph
    - xrealloc
    - mvprintw
    - derwin
    - fill_window
    - new_panel
    - del_panel
    - wclrtoeol
    - box
    - memmove
    - min
    - get_line_length
    - KEY_F
    - wmove
    - mvwprintw
    - strncpy
    - keypad
    - refresh_all_windows
    - wgetch
    - realloc
    linkageType: ''
    returnType: int
    signature: "int dialog_inputbox(WINDOW *main_window,\n\t\tconst char *title, const
      char *prompt,\n\t\tconst char *init, char **resultp, int *result_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_panels
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:544,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:545,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - main_window
    argTypes:
    - WINDOW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: refresh_all_windows
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 2
    functionsReached:
    - refresh
    - update_panels
    - touchwin
    linkageType: ''
    returnType: void
    signature: void refresh_all_windows(WINDOW *main_window)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: get_line_no
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:555,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:567,1
    - Dst: get_line_no
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:570,1
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:572,1
    - Dst: get_line_length
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:573,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:574,1
    - Dst: newpad
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:578,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:579,1
    - Dst: fill_window
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:580,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:582,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:583,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:584,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:585,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:591,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:592,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:594,1
    - Dst: box
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:595,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:596,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:597,1
    - Dst: new_panel
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:598,1
    - Dst: copywin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:603,1
    - Dst: print_in_middle
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:605,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:611,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:613,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:648,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:648,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:649,1
    - Dst: del_panel
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:661,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:662,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.gui.c:663,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - main_window
    - title
    - text
    argTypes:
    - WINDOW*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 664
    functionName: show_scroll_win
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.gui.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - max
    - delwin
    - getmaxyx
    - print_in_middle
    - get_line
    - wattrset
    - newwin
    - get_line_no
    - fill_window
    - new_panel
    - del_panel
    - box
    - min
    - get_line_length
    - KEY_F
    - newpad
    - copywin
    - mvwprintw
    - refresh_all_windows
    - keypad
    - wgetch
    linkageType: ''
    returnType: void
    signature: "void show_scroll_win(WINDOW *main_window,\n\t\tconst char *title,\n\t\tconst
      char *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/util.c:18,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/util.c:23,1
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/util.c:24,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/util.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 29
    functionName: file_lookup
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - xmalloc
    - xstrdup
    linkageType: ''
    returnType: struct file
    signature: struct file *file_lookup(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/util.c:35,1
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/util.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: str_new
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 5
    functionsReached:
    - xmalloc
    - strcpy
    linkageType: ''
    returnType: struct gstr
    signature: struct gstr str_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/util.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct gstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: str_free
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void str_free(struct gstr *gs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/util.c:56,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/util.c:56,1
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/util.c:58,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/util.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - gs
    - s
    argTypes:
    - struct gstr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: str_append
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 6
    functionsReached:
    - xrealloc
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: void str_append(struct gstr *gs, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/util.c:70,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/util.c:71,1
    - Dst: str_append
      Src: /src/xen/xen/tools/kconfig/util.c:72,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/util.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - gs
    - fmt
    argTypes:
    - struct gstr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: str_printf
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 8
    functionsReached:
    - va_start
    - vsnprintf
    - va_end
    - str_append
    linkageType: ''
    returnType: void
    signature: void str_printf(struct gstr *gs, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gs
    argTypes:
    - struct gstr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: str_get
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *str_get(struct gstr *gs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/tools/kconfig/util.c:84,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/util.c:87,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/util.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: xmalloc
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 29
    functionsReached:
    - exit
    - malloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *xmalloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/xen/tools/kconfig/util.c:93,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/util.c:96,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/util.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: xcalloc
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 9
    functionsReached:
    - exit
    - fprintf
    - calloc
    linkageType: ''
    returnType: void
    signature: void *xcalloc(size_t nmemb, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/xen/tools/kconfig/util.c:102,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/util.c:105,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/util.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: xrealloc
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 6
    functionsReached:
    - exit
    - realloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *xrealloc(void *p, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/xen/xen/tools/kconfig/util.c:113,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/util.c:116,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/util.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: xstrdup
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 10
    functionsReached:
    - exit
    - fprintf
    - strdup
    linkageType: ''
    returnType: char
    signature: char *xstrdup(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strndup
      Src: /src/xen/xen/tools/kconfig/util.c:124,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/util.c:127,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/util.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: xstrndup
    functionSourceFile: /src/xen/xen/tools/kconfig/util.c
    functionUses: 0
    functionsReached:
    - exit
    - strndup
    - fprintf
    linkageType: ''
    returnType: char
    signature: char *xstrndup(const char *s, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: ARRAY_SIZE
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 271
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:24,1
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/preprocess.c:25,1
    - Dst: vfprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:26,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/preprocess.c:27,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:28,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/preprocess.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: pperror
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - exit
    - va_end
    linkageType: ''
    returnType: void
    signature: void pperror(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:48,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:49,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:50,1
    - Dst: list_add_tail
      Src: /src/xen/xen/tools/kconfig/preprocess.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: env_add
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xmalloc
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void env_add(const char *name, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/tools/kconfig/preprocess.c:57,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:58,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:59,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct env*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: env_del
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - free
    - list_del
    linkageType: ''
    returnType: void
    signature: void env_del(struct env *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/tools/kconfig/preprocess.c:72,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/preprocess.c:73,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:74,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/preprocess.c:77,1
    - Dst: env_add
      Src: /src/xen/xen/tools/kconfig/preprocess.c:85,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 88
    functionName: env_expand
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - getenv
    - env_add
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: char
    signature: char *env_expand(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/tools/kconfig/preprocess.c:94,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:95,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:96,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:97,1
    - Dst: env_del
      Src: /src/xen/xen/tools/kconfig/preprocess.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - f
    - autoconfig_name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: env_write_dep
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - env_del
    - list_for_each_entry_safe
    - fprintf
    linkageType: ''
    returnType: void
    signature: void env_write_dep(FILE *f, const char *autoconfig_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/preprocess.c:114,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: do_error_if
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pperror
    linkageType: ''
    returnType: char
    signature: char *do_error_if(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: do_filename
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    linkageType: ''
    returnType: char
    signature: char *do_filename(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:127,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: do_info
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - printf
    linkageType: ''
    returnType: char
    signature: char *do_info(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:136,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: do_lineno
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - sprintf
    linkageType: ''
    returnType: char
    signature: char *do_lineno(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: popen
      Src: /src/xen/xen/tools/kconfig/preprocess.c:151,1
    - Dst: perror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:153,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/preprocess.c:154,1
    - Dst: fread
      Src: /src/xen/xen/tools/kconfig/preprocess.c:157,1
    - Dst: pclose
      Src: /src/xen/xen/tools/kconfig/preprocess.c:173,1
    - Dst: perror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:174,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/preprocess.c:175,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:178,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 179
    functionName: do_shell
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - popen
    - pclose
    - xstrdup
    - fread
    - exit
    - perror
    linkageType: ''
    returnType: char
    signature: char *do_shell(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/preprocess.c:183,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/preprocess.c:184,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: do_warning_if
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - strcmp
    - fprintf
    linkageType: ''
    returnType: char
    signature: char *do_warning_if(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/tools/kconfig/preprocess.c:207,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/preprocess.c:209,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:213,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:217,1
    - Dst: struct function*::func
      Src: /src/xen/xen/tools/kconfig/preprocess.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - name
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 224
    functionName: function_expand
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - struct function*::func
    - strcmp
    - pperror
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *function_expand(const char *name, int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/tools/kconfig/preprocess.c:243,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/preprocess.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: variable_lookup
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct variable
    signature: struct variable *variable_lookup(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: variable_lookup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:256,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:261,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:265,1
    - Dst: expand_string_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:270,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - name
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 277
    functionName: variable_expand
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - pperror
    - expand_string_with_args
    - variable_lookup
    linkageType: ''
    returnType: char
    signature: char *variable_expand(const char *name, int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: variable_lookup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:286,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:293,1
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:300,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:301,1
    - Dst: list_add_tail
      Src: /src/xen/xen/tools/kconfig/preprocess.c:303,1
    - Dst: expand_string
      Src: /src/xen/xen/tools/kconfig/preprocess.c:309,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:311,1
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:314,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/preprocess.c:315,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/preprocess.c:315,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/preprocess.c:316,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/preprocess.c:317,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - name
    - value
    - flavor
    argTypes:
    - char*
    - char*
    - enum variable_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 322
    functionName: variable_add
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - xmalloc
    - expand_string
    - free
    - xrealloc
    - variable_lookup
    - strlen
    - strcat
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void variable_add(const char *name, const char *value,\n\t\t  enum
      variable_flavor flavor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/tools/kconfig/preprocess.c:326,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:327,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:328,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct variable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: variable_del
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - free
    - list_del
    linkageType: ''
    returnType: void
    signature: void variable_del(struct variable *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/tools/kconfig/preprocess.c:336,1
    - Dst: variable_del
      Src: /src/xen/xen/tools/kconfig/preprocess.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: variable_all_del
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - variable_del
    - list_for_each_entry_safe
    linkageType: ''
    returnType: void
    signature: void variable_all_del(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xstrndup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:355,1
    - Dst: strtoul
      Src: /src/xen/xen/tools/kconfig/preprocess.c:362,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:364,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:388,1
    - Dst: expand_string_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:407,1
    - Dst: expand_string_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:410,1
    - Dst: variable_expand
      Src: /src/xen/xen/tools/kconfig/preprocess.c:414,1
    - Dst: function_expand
      Src: /src/xen/xen/tools/kconfig/preprocess.c:419,1
    - Dst: env_expand
      Src: /src/xen/xen/tools/kconfig/preprocess.c:425,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:430,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:433,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:434,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:436,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - str
    - len
    - argc
    - argv
    argTypes:
    - char*
    - size_t
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 439
    functionName: eval_clause
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - expand_string_with_args
    - free
    - xstrndup
    - function_expand
    - env_expand
    - variable_expand
    - pperror
    - strtoul
    linkageType: ''
    returnType: char
    signature: char *eval_clause(const char *str, size_t len, int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/preprocess.c:466,1
    - Dst: pperror
      Src: /src/xen/xen/tools/kconfig/preprocess.c:482,1
    - Dst: eval_clause
      Src: /src/xen/xen/tools/kconfig/preprocess.c:487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - str
    - argc
    - argv
    argTypes:
    - char**
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 488
    functionName: expand_dollar_with_args
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - pperror
    - eval_clause
    linkageType: ''
    returnType: char
    signature: char *expand_dollar_with_args(const char **str, int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand_dollar_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: expand_dollar
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - expand_dollar_with_args
    linkageType: ''
    returnType: char
    signature: char *expand_dollar(const char **str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:502,1
    - Dst: expand_dollar_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:512,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/preprocess.c:513,1
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:514,1
    - Dst: strncat
      Src: /src/xen/xen/tools/kconfig/preprocess.c:515,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/preprocess.c:516,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/preprocess.c:517,1
    - Dst: is_end
      Src: /src/xen/xen/tools/kconfig/preprocess.c:522,1
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/preprocess.c:530,1
    - Dst: strncat
      Src: /src/xen/xen/tools/kconfig/preprocess.c:531,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - str
    - argc
    - argv
    argTypes:
    - char**
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 495
    functionDepth: 4
    functionLinenumber: 495
    functionLinenumberEnd: 537
    functionName: __expand_string
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - free
    - xrealloc
    - strncat
    - is_end
    - strlen
    - strcat
    - expand_dollar_with_args
    linkageType: ''
    returnType: char
    signature: "char *__expand_string(const char **str, bool (*is_end)(char c),\n\t\t\t
      \    int argc, char *argv[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: is_end_of_str
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end_of_str(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __expand_string
      Src: /src/xen/xen/tools/kconfig/preprocess.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - argc
    - argv
    argTypes:
    - char*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: expand_string_with_args
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 2
    functionsReached:
    - __expand_string
    linkageType: ''
    returnType: char
    signature: char *expand_string_with_args(const char *in, int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand_string_with_args
      Src: /src/xen/xen/tools/kconfig/preprocess.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 6
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: expand_string
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 2
    functionsReached:
    - expand_string_with_args
    linkageType: ''
    returnType: char
    signature: char *expand_string(const char *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/xen/xen/tools/kconfig/preprocess.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: is_end_of_token
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: bool
    signature: bool is_end_of_token(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __expand_string
      Src: /src/xen/xen/tools/kconfig/preprocess.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 5
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: expand_one_token
    functionSourceFile: /src/xen/xen/tools/kconfig/preprocess.c
    functionUses: 0
    functionsReached:
    - __expand_string
    linkageType: ''
    returnType: char
    signature: char *expand_one_token(const char **str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/nconf.c:369,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:372,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.c:373,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:376,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:377,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.c:378,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:381,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 384
    functionName: print_function_line
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - getmaxy
    - wattrset
    - mvwprintw
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_function_line(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: handle_f1
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - show_scroll_win
    linkageType: ''
    returnType: void
    signature: void handle_f1(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: handle_f2
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - show_help
    linkageType: ''
    returnType: void
    signature: void handle_f2(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: handle_f3
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - show_scroll_win
    linkageType: ''
    returnType: void
    signature: void handle_f3(int *key, struct menu *current_item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: handle_f4
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - btn_dialog
    linkageType: ''
    returnType: void
    signature: void handle_f4(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: handle_f5
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handle_f5(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conf_save
      Src: /src/xen/xen/tools/kconfig/nconf.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: handle_f6
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - conf_save
    linkageType: ''
    returnType: void
    signature: void handle_f6(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conf_load
      Src: /src/xen/xen/tools/kconfig/nconf.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: handle_f7
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - conf_load
    linkageType: ''
    returnType: void
    signature: void handle_f7(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: search_conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: handle_f8
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - search_conf
    linkageType: ''
    returnType: void
    signature: void handle_f8(int *key, struct menu *current_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_exit
      Src: /src/xen/xen/tools/kconfig/nconf.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - current_item
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 459
    functionName: handle_f9
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - do_exit
    linkageType: ''
    returnType: void
    signature: void handle_f9(int *key, struct menu *current_item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:467,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.c:472,1
    - Dst: handler
      Src: /src/xen/xen/tools/kconfig/nconf.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - key
    - menu
    argTypes:
    - int*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 480
    functionName: process_special_keys
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - handler
    - setup_windows
    - KEY_F
    linkageType: ''
    returnType: int
    signature: int process_special_keys(int *key, struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:486,1
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/nconf.c:487,1
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/nconf.c:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 490
    functionName: clean_items
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - bzero
    - free_item
    linkageType: ''
    returnType: void
    signature: void clean_items(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: item_index
      Src: /src/xen/xen/tools/kconfig/nconf.c:498,1
    - Dst: current_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:498,1
    - Dst: strcasestr
      Src: /src/xen/xen/tools/kconfig/nconf.c:510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - match_str
    - flag
    argTypes:
    - char*
    - match_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 521
    functionName: get_mext_match
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - current_item
    - item_index
    - strcasestr
    linkageType: ''
    returnType: int
    signature: int get_mext_match(const char *match_str, match_f flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/nconf.c:531,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:536,1
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/nconf.c:540,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/nconf.c:541,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/nconf.c:544,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/nconf.c:547,1
    - Dst: new_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:549,1
    - Dst: set_item_userptr
      Src: /src/xen/xen/tools/kconfig/nconf.c:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - menu
    - tag
    - fmt
    argTypes:
    - struct menu*
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 524
    functionDepth: 8
    functionLinenumber: 524
    functionLinenumberEnd: 561
    functionName: item_make
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - va_start
    - menu_is_visible
    - vsnprintf
    - set_item_userptr
    - new_item
    - va_end
    - memcpy
    - bzero
    linkageType: ''
    returnType: void
    signature: void item_make(struct menu *menu, char tag, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/nconf.c:574,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/nconf.c:575,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/nconf.c:576,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/nconf.c:577,1
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/nconf.c:579,1
    - Dst: free_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:583,1
    - Dst: new_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:584,1
    - Dst: set_item_userptr
      Src: /src/xen/xen/tools/kconfig/nconf.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 589
    functionName: item_add_str
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 1
    functionsReached:
    - snprintf
    - va_start
    - strncpy
    - vsnprintf
    - set_item_userptr
    - new_item
    - va_end
    - free_item
    linkageType: ''
    returnType: void
    signature: void item_add_str(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:597,1
    - Dst: item_userptr
      Src: /src/xen/xen/tools/kconfig/nconf.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 602
    functionName: item_tag
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 1
    functionsReached:
    - current_item
    - item_userptr
    linkageType: ''
    returnType: char
    signature: char item_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_index
      Src: /src/xen/xen/tools/kconfig/nconf.c:606,1
    - Dst: current_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 607
    functionName: curses_item_index
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - current_item
    - item_index
    linkageType: ''
    returnType: int
    signature: int curses_item_index(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:614,1
    - Dst: item_userptr
      Src: /src/xen/xen/tools/kconfig/nconf.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: item_data
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - current_item
    - item_userptr
    linkageType: ''
    returnType: void
    signature: void *item_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: item_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 625
    functionName: item_is_tag
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 1
    functionsReached:
    - item_tag
    linkageType: ''
    returnType: int
    signature: int item_is_tag(char tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/nconf.c:633,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/nconf.c:638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - config_filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 642
    functionName: set_config_filename
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 3
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *set_config_filename(const char *config_filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/nconf.c:650,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:654,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/nconf.c:668,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:670,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/nconf.c:676,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 688
    functionName: do_exit
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 1
    functionsReached:
    - conf_get_changed
    - conf_write
    - btn_dialog
    - conf_write_autoconf
    linkageType: ''
    returnType: int
    signature: int do_exit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/nconf.c:699,1
    - Dst: str_printf
      Src: /src/xen/xen/tools/kconfig/nconf.c:700,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/nconf.c:704,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/nconf.c:706,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:712,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/nconf.c:716,1
    - Dst: strncasecmp
      Src: /src/xen/xen/tools/kconfig/nconf.c:722,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:722,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:723,1
    - Dst: sym_re_search
      Src: /src/xen/xen/tools/kconfig/nconf.c:725,1
    - Dst: get_relations_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:726,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/nconf.c:727,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:728,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/nconf.c:729,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/nconf.c:730,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/nconf.c:731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 691
    functionDepth: 11
    functionLinenumber: 691
    functionLinenumberEnd: 732
    functionName: search_conf
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - str_get
    - strncasecmp
    - free
    - str_printf
    - dialog_inputbox
    - str_free
    - get_relations_str
    - show_scroll_win
    - str_new
    - strlen
    - sym_re_search
    linkageType: ''
    returnType: void
    signature: void search_conf(void)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:744,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:751,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:759,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:764,1
    - Dst: menu_is_empty
      Src: /src/xen/xen/tools/kconfig/nconf.c:767,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:775,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:784,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/nconf.c:794,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/nconf.c:795,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:796,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:801,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:805,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/nconf.c:806,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:809,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:824,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:828,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:831,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:832,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:835,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:836,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:837,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:840,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:848,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:850,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:854,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:855,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:856,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/nconf.c:860,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:861,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:864,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/nconf.c:879,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:881,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:884,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:887,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:890,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:890,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:891,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:892,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:896,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:897,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:898,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/nconf.c:899,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:904,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:905,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:906,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/nconf.c:906,1
    - Dst: item_add_str
      Src: /src/xen/xen/tools/kconfig/nconf.c:909,1
    - Dst: menu_is_empty
      Src: /src/xen/xen/tools/kconfig/nconf.c:909,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:917,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 140
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 735
    functionDepth: 8
    functionLinenumber: 735
    functionLinenumberEnd: 919
    functionName: build_conf
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 3
    functionsReached:
    - item_make
    - sym_has_value
    - menu_is_visible
    - menu_get_prompt
    - sym_is_choice
    - sym_is_changeable
    - sym_get_string_value
    - sym_get_type
    - item_add_str
    - build_conf
    - menu_is_empty
    - strlen
    - sym_is_choice_value
    - sym_get_tristate_value
    - sym_get_choice_value
    linkageType: ''
    returnType: void
    signature: void build_conf(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpost_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:923,1
    - Dst: clean_items
      Src: /src/xen/xen/tools/kconfig/nconf.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: reset_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - clean_items
    - unpost_menu
    linkageType: ''
    returnType: void
    signature: void reset_menu(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_top_row
      Src: /src/xen/xen/tools/kconfig/nconf.c:933,1
    - Dst: top_row
      Src: /src/xen/xen/tools/kconfig/nconf.c:934,1
    - Dst: max
      Src: /src/xen/xen/tools/kconfig/nconf.c:937,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/nconf.c:938,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/nconf.c:939,1
    - Dst: set_top_row
      Src: /src/xen/xen/tools/kconfig/nconf.c:940,1
    - Dst: set_current_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:942,1
    - Dst: post_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:945,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:946,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - selected_index
    - last_top_row
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 947
    functionName: center_item
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - max
    - set_current_item
    - post_menu
    - refresh_all_windows
    - top_row
    - set_top_row
    - item_count
    linkageType: ''
    returnType: void
    signature: void center_item(int selected_index, int *last_top_row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/xen/xen/tools/kconfig/nconf.c:958,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:959,1
    - Dst: print_in_middle
      Src: /src/xen/xen/tools/kconfig/nconf.c:960,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/nconf.c:960,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:964,1
    - Dst: box
      Src: /src/xen/xen/tools/kconfig/nconf.c:965,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:966,1
    - Dst: mvwprintw
      Src: /src/xen/xen/tools/kconfig/nconf.c:967,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/nconf.c:968,1
    - Dst: set_menu_items
      Src: /src/xen/xen/tools/kconfig/nconf.c:970,1
    - Dst: scale_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:973,1
    - Dst: min
      Src: /src/xen/xen/tools/kconfig/nconf.c:974,1
    - Dst: derwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:976,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.c:981,1
    - Dst: set_menu_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:982,1
    - Dst: set_menu_sub
      Src: /src/xen/xen/tools/kconfig/nconf.c:983,1
    - Dst: set_menu_format
      Src: /src/xen/xen/tools/kconfig/nconf.c:988,1
    - Dst: center_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:989,1
    - Dst: set_menu_format
      Src: /src/xen/xen/tools/kconfig/nconf.c:990,1
    - Dst: print_function_line
      Src: /src/xen/xen/tools/kconfig/nconf.c:992,1
    - Dst: post_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:995,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 4
    argNames:
    - prompt
    - instructions
    - selected_index
    - last_top_row
    argTypes:
    - char*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 997
    functionName: show_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - wattrset
    - set_menu_sub
    - set_menu_win
    - post_menu
    - print_function_line
    - derwin
    - scale_menu
    - mvwprintw
    - box
    - keypad
    - min
    - refresh_all_windows
    - set_menu_items
    - set_menu_format
    - center_item
    - getmaxx
    - print_in_middle
    - clear
    linkageType: ''
    returnType: void
    signature: "void show_menu(const char *prompt, const char *instructions,\n\t\tint
      selected_index, int *last_top_row)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - match_direction
    argTypes:
    - match_f*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1008
    functionName: adj_match_dir
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adj_match_dir(match_f *match_direction)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: move
      Src: /src/xen/xen/tools/kconfig/nconf.c:1027,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/nconf.c:1028,1
    - Dst: clrtoeol
      Src: /src/xen/xen/tools/kconfig/nconf.c:1029,1
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/nconf.c:1031,1
    - Dst: isalnum
      Src: /src/xen/xen/tools/kconfig/nconf.c:1037,1
    - Dst: isgraph
      Src: /src/xen/xen/tools/kconfig/nconf.c:1037,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:1038,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:1039,1
    - Dst: adj_match_dir
      Src: /src/xen/xen/tools/kconfig/nconf.c:1040,1
    - Dst: get_mext_match
      Src: /src/xen/xen/tools/kconfig/nconf.c:1041,1
    - Dst: get_mext_match
      Src: /src/xen/xen/tools/kconfig/nconf.c:1045,1
    - Dst: get_mext_match
      Src: /src/xen/xen/tools/kconfig/nconf.c:1049,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/nconf.c:1052,1
    - Dst: adj_match_dir
      Src: /src/xen/xen/tools/kconfig/nconf.c:1053,1
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/nconf.c:1059,1
    - Dst: move
      Src: /src/xen/xen/tools/kconfig/nconf.c:1060,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/nconf.c:1061,1
    - Dst: clrtoeol
      Src: /src/xen/xen/tools/kconfig/nconf.c:1062,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - key
    - state
    - ans
    argTypes:
    - int
    - struct match_state*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1066
    functionName: do_match
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - isalnum
    - adj_match_dir
    - clrtoeol
    - isgraph
    - move
    - strlen
    - get_mext_match
    - refresh
    - bzero
    linkageType: ''
    returnType: int
    signature: int do_match(int key, struct match_state *state, int *ans)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1071,1
    - Dst: reset_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1083,1
    - Dst: build_conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1085,1
    - Dst: show_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1089,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.c:1092,1
    - Dst: menu_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1092,1
    - Dst: mvprintw
      Src: /src/xen/xen/tools/kconfig/nconf.c:1095,1
    - Dst: clrtoeol
      Src: /src/xen/xen/tools/kconfig/nconf.c:1097,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1099,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/nconf.c:1100,1
    - Dst: menu_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1100,1
    - Dst: do_match
      Src: /src/xen/xen/tools/kconfig/nconf.c:1103,1
    - Dst: center_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:1105,1
    - Dst: process_special_keys
      Src: /src/xen/xen/tools/kconfig/nconf.c:1109,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1110,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1114,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1117,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1120,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1123,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1126,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1129,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:1133,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1133,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1141,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1144,1
    - Dst: top_row
      Src: /src/xen/xen/tools/kconfig/nconf.c:1150,1
    - Dst: curses_item_index
      Src: /src/xen/xen/tools/kconfig/nconf.c:1151,1
    - Dst: item_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1153,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1156,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:1157,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1163,1
    - Dst: sym_toggle_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1164,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1165,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1166,1
    - Dst: item_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1170,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1176,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/nconf.c:1179,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1180,1
    - Dst: conf_choice
      Src: /src/xen/xen/tools/kconfig/nconf.c:1181,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1184,1
    - Dst: sym_toggle_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1186,1
    - Dst: conf_string
      Src: /src/xen/xen/tools/kconfig/nconf.c:1189,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1194,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1195,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1197,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:1198,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1202,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1203,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/nconf.c:1206,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1207,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 110
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1068
    functionDepth: 8
    functionLinenumber: 1068
    functionLinenumberEnd: 1211
    functionName: conf
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 16
    functionsReached:
    - reset_menu
    - process_special_keys
    - menu_is_visible
    - conf_string
    - btn_dialog
    - sym_toggle_tristate_value
    - do_match
    - conf
    - show_help
    - show_menu
    - menu_get_prompt
    - mvprintw
    - item_data
    - menu_win
    - curses_item_index
    - build_conf
    - sym_set_tristate_value
    - clrtoeol
    - item_is_tag
    - conf_choice
    - center_item
    - item_tag
    - sym_get_tristate_value
    - sym_is_choice
    - refresh_all_windows
    - keypad
    - top_row
    - menu_driver
    - wgetch
    linkageType: ''
    returnType: void
    signature: void conf(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1216
    functionName: conf_message_callback
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 0
    functionsReached:
    - btn_dialog
    linkageType: ''
    returnType: void
    signature: void conf_message_callback(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/nconf.c:1225,1
    - Dst: menu_get_ext_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:1226,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1227,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1227,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/nconf.c:1227,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/nconf.c:1228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1218
    functionDepth: 11
    functionLinenumber: 1218
    functionLinenumberEnd: 1229
    functionName: show_help
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 25
    functionsReached:
    - menu_get_prompt
    - str_get
    - str_free
    - menu_get_ext_help
    - str_new
    - show_scroll_win
    linkageType: ''
    returnType: void
    signature: void show_help(struct menu *menu)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1233,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1245,1
    - Dst: reset_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1248,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:1251,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1254,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:1255,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1256,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:1258,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1259,1
    - Dst: item_make
      Src: /src/xen/xen/tools/kconfig/nconf.c:1261,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1262,1
    - Dst: top_row
      Src: /src/xen/xen/tools/kconfig/nconf.c:1265,1
    - Dst: show_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1270,1
    - Dst: mvprintw
      Src: /src/xen/xen/tools/kconfig/nconf.c:1276,1
    - Dst: clrtoeol
      Src: /src/xen/xen/tools/kconfig/nconf.c:1278,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1280,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/nconf.c:1281,1
    - Dst: menu_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1281,1
    - Dst: do_match
      Src: /src/xen/xen/tools/kconfig/nconf.c:1284,1
    - Dst: center_item
      Src: /src/xen/xen/tools/kconfig/nconf.c:1286,1
    - Dst: process_special_keys
      Src: /src/xen/xen/tools/kconfig/nconf.c:1290,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1292,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1296,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1299,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1302,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1305,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1308,1
    - Dst: menu_driver
      Src: /src/xen/xen/tools/kconfig/nconf.c:1311,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:1315,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1315,1
    - Dst: refresh_all_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1322,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/nconf.c:1328,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/nconf.c:1329,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1335,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:1339,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 84
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1231
    functionDepth: 8
    functionLinenumber: 1231
    functionLinenumberEnd: 1346
    functionName: conf_choice
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - item_make
    - reset_menu
    - menu_is_visible
    - process_special_keys
    - do_match
    - show_help
    - show_menu
    - menu_get_prompt
    - mvprintw
    - item_data
    - menu_win
    - sym_set_tristate_value
    - sym_get_choice_value
    - clrtoeol
    - center_item
    - refresh_all_windows
    - top_row
    - menu_driver
    - wgetch
    linkageType: ''
    returnType: void
    signature: void conf_choice(struct menu *menu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/nconf.c:1350,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/nconf.c:1356,1
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/nconf.c:1369,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1372,1
    - Dst: sym_set_string_value
      Src: /src/xen/xen/tools/kconfig/nconf.c:1377,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:1380,1
    - Dst: show_help
      Src: /src/xen/xen/tools/kconfig/nconf.c:1384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1348
    functionDepth: 8
    functionLinenumber: 1348
    functionLinenumberEnd: 1390
    functionName: conf_string
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - menu_get_prompt
    - sym_set_string_value
    - btn_dialog
    - sym_get_string_value
    - sym_get_type
    - dialog_inputbox
    - show_help
    linkageType: ''
    returnType: void
    signature: void conf_string(struct menu *menu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/nconf.c:1396,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/nconf.c:1405,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/nconf.c:1406,1
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/nconf.c:1407,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:1410,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1413,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1392
    functionDepth: 3
    functionLinenumber: 1392
    functionLinenumberEnd: 1421
    functionName: conf_load
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - btn_dialog
    - sym_set_change_count
    - conf_read
    - dialog_inputbox
    - set_config_filename
    - show_scroll_win
    linkageType: ''
    returnType: void
    signature: void conf_load(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dialog_inputbox
      Src: /src/xen/xen/tools/kconfig/nconf.c:1427,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/nconf.c:1436,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/nconf.c:1438,1
    - Dst: btn_dialog
      Src: /src/xen/xen/tools/kconfig/nconf.c:1441,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1423
    functionDepth: 3
    functionLinenumber: 1423
    functionLinenumberEnd: 1453
    functionName: conf_save
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 2
    functionsReached:
    - conf_write
    - btn_dialog
    - dialog_inputbox
    - set_config_filename
    - show_scroll_win
    linkageType: ''
    returnType: void
    signature: void conf_save(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/nconf.c:1459,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:1462,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:1465,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.c:1466,1
    - Dst: new_panel
      Src: /src/xen/xen/tools/kconfig/nconf.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1472
    functionName: setup_windows
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 1
    functionsReached:
    - newwin
    - delwin
    - keypad
    - new_panel
    - getmaxyx
    linkageType: ''
    returnType: void
    signature: void setup_windows(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/nconf.c:1479,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/nconf.c:1481,1
    - Dst: conf_parse
      Src: /src/xen/xen/tools/kconfig/nconf.c:1484,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/nconf.c:1485,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/nconf.c:1487,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/kconfig/nconf.c:1489,1
    - Dst: initscr
      Src: /src/xen/xen/tools/kconfig/nconf.c:1494,1
    - Dst: set_colors
      Src: /src/xen/xen/tools/kconfig/nconf.c:1496,1
    - Dst: cbreak
      Src: /src/xen/xen/tools/kconfig/nconf.c:1498,1
    - Dst: noecho
      Src: /src/xen/xen/tools/kconfig/nconf.c:1499,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/nconf.c:1500,1
    - Dst: curs_set
      Src: /src/xen/xen/tools/kconfig/nconf.c:1501,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/nconf.c:1503,1
    - Dst: endwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:1505,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1506,1
    - Dst: notimeout
      Src: /src/xen/xen/tools/kconfig/nconf.c:1511,1
    - Dst: set_escdelay
      Src: /src/xen/xen/tools/kconfig/nconf.c:1513,1
    - Dst: new_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1519,1
    - Dst: menu_opts_off
      Src: /src/xen/xen/tools/kconfig/nconf.c:1520,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.c:1521,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.c:1522,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.c:1523,1
    - Dst: menu_opts_on
      Src: /src/xen/xen/tools/kconfig/nconf.c:1524,1
    - Dst: set_menu_mark
      Src: /src/xen/xen/tools/kconfig/nconf.c:1525,1
    - Dst: set_menu_fore
      Src: /src/xen/xen/tools/kconfig/nconf.c:1526,1
    - Dst: set_menu_back
      Src: /src/xen/xen/tools/kconfig/nconf.c:1527,1
    - Dst: set_menu_grey
      Src: /src/xen/xen/tools/kconfig/nconf.c:1528,1
    - Dst: set_config_filename
      Src: /src/xen/xen/tools/kconfig/nconf.c:1530,1
    - Dst: conf_get_configname
      Src: /src/xen/xen/tools/kconfig/nconf.c:1530,1
    - Dst: setup_windows
      Src: /src/xen/xen/tools/kconfig/nconf.c:1531,1
    - Dst: has_key
      Src: /src/xen/xen/tools/kconfig/nconf.c:1534,1
    - Dst: KEY_F
      Src: /src/xen/xen/tools/kconfig/nconf.c:1534,1
    - Dst: show_scroll_win
      Src: /src/xen/xen/tools/kconfig/nconf.c:1535,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/nconf.c:1540,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/nconf.c:1543,1
    - Dst: do_exit
      Src: /src/xen/xen/tools/kconfig/nconf.c:1544,1
    - Dst: unpost_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1548,1
    - Dst: free_menu
      Src: /src/xen/xen/tools/kconfig/nconf.c:1549,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:1550,1
    - Dst: clear
      Src: /src/xen/xen/tools/kconfig/nconf.c:1551,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/nconf.c:1552,1
    - Dst: endwin
      Src: /src/xen/xen/tools/kconfig/nconf.c:1553,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1474
    functionDepth: 4
    functionLinenumber: 1474
    functionLinenumberEnd: 1555
    functionName: main
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.c
    functionUses: 498
    functionsReached:
    - menu_opts_off
    - cbreak
    - curs_set
    - do_exit
    - delwin
    - set_colors
    - conf_get_configname
    - unpost_menu
    - strcasecmp
    - conf
    - getmaxyx
    - strcmp
    - initscr
    - getenv
    - new_menu
    - set_escdelay
    - set_menu_grey
    - set_config_filename
    - has_key
    - clear
    - menu_opts_on
    - setup_windows
    - conf_read
    - free_menu
    - set_menu_fore
    - show_scroll_win
    - printf
    - conf_set_message_callback
    - KEY_F
    - noecho
    - notimeout
    - set_menu_back
    - keypad
    - conf_parse
    - endwin
    - set_menu_mark
    - refresh
    linkageType: ''
    returnType: int
    signature: int main(int ac, char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/conf.c:48,1
    - Dst: menu_get_ext_help
      Src: /src/xen/xen/tools/kconfig/conf.c:50,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:52,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/conf.c:52,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/conf.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 11
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: print_help
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - str_get
    - str_free
    - menu_get_ext_help
    - str_new
    - printf
    linkageType: ''
    returnType: void
    signature: void print_help(struct menu *menu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/xen/tools/kconfig/conf.c:61,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/conf.c:63,1
    - Dst: memmove
      Src: /src/xen/xen/tools/kconfig/conf.c:65,1
    - Dst: isspace
      Src: /src/xen/xen/tools/kconfig/conf.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: strip
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - memmove
    - isspace
    - strlen
    linkageType: ''
    returnType: void
    signature: void strip(char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/xen/xen/tools/kconfig/conf.c:76,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:77,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - str
    - size
    - in
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: xfgets
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - fgets
    - fprintf
    - printf
    linkageType: ''
    returnType: void
    signature: void xfgets(char *str, int size, FILE *in)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/conf.c:85,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/conf.c:87,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:88,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/conf.c:93,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:94,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/conf.c:103,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:104,1
    - Dst: fflush
      Src: /src/xen/xen/tools/kconfig/conf.c:109,1
    - Dst: xfgets
      Src: /src/xen/xen/tools/kconfig/conf.c:110,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:120,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - sym
    - def
    argTypes:
    - struct symbol*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 127
    functionName: conf_askvalue
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - sym_has_value
    - sym_is_changeable
    - sym_get_type
    - fflush
    - printf
    - xfgets
    linkageType: ''
    returnType: int
    signature: int conf_askvalue(struct symbol *sym, const char *def)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:135,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:136,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:137,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:138,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:139,1
    - Dst: conf_askvalue
      Src: /src/xen/xen/tools/kconfig/conf.c:140,1
    - Dst: print_help
      Src: /src/xen/xen/tools/kconfig/conf.c:148,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/conf.c:154,1
    - Dst: sym_set_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 129
    functionDepth: 12
    functionLinenumber: 129
    functionLinenumberEnd: 160
    functionName: conf_string
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 2
    functionsReached:
    - sym_set_string_value
    - print_help
    - sym_get_string_value
    - conf_askvalue
    - strlen
    - printf
    linkageType: ''
    returnType: int
    signature: int conf_string(struct menu *menu)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:168,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:170,1
    - Dst: putchar
      Src: /src/xen/xen/tools/kconfig/conf.c:171,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/conf.c:172,1
    - Dst: putchar
      Src: /src/xen/xen/tools/kconfig/conf.c:175,1
    - Dst: putchar
      Src: /src/xen/xen/tools/kconfig/conf.c:178,1
    - Dst: putchar
      Src: /src/xen/xen/tools/kconfig/conf.c:181,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/conf.c:184,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:185,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/conf.c:186,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:187,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/conf.c:188,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:189,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:190,1
    - Dst: conf_askvalue
      Src: /src/xen/xen/tools/kconfig/conf.c:191,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:191,1
    - Dst: strip
      Src: /src/xen/xen/tools/kconfig/conf.c:193,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/conf.c:199,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/conf.c:211,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/conf.c:222,1
    - Dst: print_help
      Src: /src/xen/xen/tools/kconfig/conf.c:225,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 162
    functionDepth: 12
    functionLinenumber: 162
    functionLinenumberEnd: 227
    functionName: conf_sym
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - sym_get_string_value
    - print_help
    - sym_tristate_within_range
    - strcmp
    - conf_askvalue
    - printf
    - sym_set_tristate_value
    - strip
    - sym_get_tristate_value
    - putchar
    linkageType: ''
    returnType: int
    signature: int conf_sym(struct menu *menu)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/conf.c:236,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/conf.c:237,1
    - Dst: conf_sym
      Src: /src/xen/xen/tools/kconfig/conf.c:238,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/conf.c:239,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/conf.c:240,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/conf.c:249,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:253,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/conf.c:253,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:263,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/conf.c:263,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/conf.c:264,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/conf.c:268,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:271,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/conf.c:271,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:277,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:279,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:280,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/conf.c:280,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:282,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/conf.c:283,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:284,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:285,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:287,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:289,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:292,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:298,1
    - Dst: fflush
      Src: /src/xen/xen/tools/kconfig/conf.c:303,1
    - Dst: xfgets
      Src: /src/xen/xen/tools/kconfig/conf.c:304,1
    - Dst: strip
      Src: /src/xen/xen/tools/kconfig/conf.c:305,1
    - Dst: print_help
      Src: /src/xen/xen/tools/kconfig/conf.c:307,1
    - Dst: isdigit
      Src: /src/xen/xen/tools/kconfig/conf.c:312,1
    - Dst: atoi
      Src: /src/xen/xen/tools/kconfig/conf.c:313,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/conf.c:323,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/conf.c:330,1
    - Dst: print_help
      Src: /src/xen/xen/tools/kconfig/conf.c:331,1
    - Dst: sym_set_choice_value
      Src: /src/xen/xen/tools/kconfig/conf.c:334,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/conf.c:337,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 104
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 229
    functionDepth: 13
    functionLinenumber: 229
    functionLinenumberEnd: 342
    functionName: conf_choice
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 2
    functionsReached:
    - sym_has_value
    - menu_get_prompt
    - menu_is_visible
    - atoi
    - sym_is_changeable
    - print_help
    - sym_calc_value
    - conf_sym
    - fflush
    - isdigit
    - sym_set_choice_value
    - strlen
    - printf
    - conf
    - strip
    - sym_get_tristate_value
    - sym_get_choice_value
    - xfgets
    linkageType: ''
    returnType: int
    signature: int conf_choice(struct menu *menu)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/conf.c:350,1
    - Dst: check_conf
      Src: /src/xen/xen/tools/kconfig/conf.c:365,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/conf.c:370,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:372,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/conf.c:384,1
    - Dst: conf_choice
      Src: /src/xen/xen/tools/kconfig/conf.c:385,1
    - Dst: conf_string
      Src: /src/xen/xen/tools/kconfig/conf.c:395,1
    - Dst: conf_sym
      Src: /src/xen/xen/tools/kconfig/conf.c:398,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/conf.c:406,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 344
    functionDepth: 13
    functionLinenumber: 344
    functionLinenumberEnd: 409
    functionName: conf
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 19
    functionsReached:
    - conf_string
    - menu_is_visible
    - sym_is_choice
    - menu_get_prompt
    - conf_choice
    - conf_sym
    - check_conf
    - conf
    - printf
    linkageType: ''
    returnType: void
    signature: void conf(struct menu *menu)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/conf.c:416,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/conf.c:420,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/conf.c:421,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/conf.c:422,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/conf.c:422,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:428,1
    - Dst: sym_escape_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:429,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:430,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/conf.c:431,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/conf.c:433,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:434,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:439,1
    - Dst: menu_get_parent_menu
      Src: /src/xen/xen/tools/kconfig/conf.c:440,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/conf.c:441,1
    - Dst: check_conf
      Src: /src/xen/xen/tools/kconfig/conf.c:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 411
    functionDepth: 8
    functionLinenumber: 411
    functionLinenumberEnd: 448
    functionName: check_conf
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 2
    functionsReached:
    - sym_has_value
    - menu_is_visible
    - sym_is_choice
    - sym_is_changeable
    - sym_get_string_value
    - free
    - menu_get_parent_menu
    - check_conf
    - conf
    - printf
    - sym_escape_string_value
    - sym_get_tristate_value
    linkageType: ''
    returnType: void
    signature: void check_conf(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:469,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:470,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:471,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:472,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:473,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:474,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:476,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:477,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:478,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:479,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:480,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:481,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:482,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/conf.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 484
    functionName: conf_usage
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void conf_usage(const char *progname)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/xen/xen/tools/kconfig/conf.c:493,1
    - Dst: isatty
      Src: /src/xen/xen/tools/kconfig/conf.c:493,1
    - Dst: getopt_long
      Src: /src/xen/xen/tools/kconfig/conf.c:495,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/conf.c:497,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/conf.c:507,1
    - Dst: gettimeofday
      Src: /src/xen/xen/tools/kconfig/conf.c:524,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/conf.c:527,1
    - Dst: strtol
      Src: /src/xen/xen/tools/kconfig/conf.c:530,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:535,1
    - Dst: srand
      Src: /src/xen/xen/tools/kconfig/conf.c:536,1
    - Dst: conf_usage
      Src: /src/xen/xen/tools/kconfig/conf.c:549,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:550,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:555,1
    - Dst: conf_usage
      Src: /src/xen/xen/tools/kconfig/conf.c:556,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:557,1
    - Dst: conf_parse
      Src: /src/xen/xen/tools/kconfig/conf.c:560,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/conf.c:565,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:566,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:571,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/conf.c:580,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/conf.c:587,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/conf.c:590,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/conf.c:590,1
    - Dst: conf_read_simple
      Src: /src/xen/xen/tools/kconfig/conf.c:591,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:592,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:595,1
    - Dst: conf_read_simple
      Src: /src/xen/xen/tools/kconfig/conf.c:607,1
    - Dst: conf_read_simple
      Src: /src/xen/xen/tools/kconfig/conf.c:608,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:609,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:612,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/conf.c:620,1
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/conf.c:622,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:623,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:633,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:636,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:639,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:642,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:646,1
    - Dst: conf_set_all_new_symbols
      Src: /src/xen/xen/tools/kconfig/conf.c:649,1
    - Dst: conf
      Src: /src/xen/xen/tools/kconfig/conf.c:655,1
    - Dst: check_conf
      Src: /src/xen/xen/tools/kconfig/conf.c:664,1
    - Dst: conf_write_defconfig
      Src: /src/xen/xen/tools/kconfig/conf.c:673,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:674,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/conf.c:679,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:680,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/conf.c:681,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/conf.c:693,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/conf.c:694,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 174
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 486
    functionDepth: 9
    functionLinenumber: 486
    functionLinenumberEnd: 700
    functionName: main
    functionSourceFile: /src/xen/xen/tools/kconfig/conf.c
    functionUses: 498
    functionsReached:
    - srand
    - conf_get_changed
    - conf
    - strcmp
    - getenv
    - conf_set_all_new_symbols
    - conf_read_simple
    - conf_read
    - getopt_long
    - fprintf
    - strtol
    - exit
    - conf_write_defconfig
    - conf_set_message_callback
    - isatty
    - conf_write
    - conf_usage
    - check_conf
    - conf_parse
    - conf_write_autoconf
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int main(int ac, char **av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/xen/xen/tools/kconfig/confdata.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: is_present
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached:
    - stat
    linkageType: ''
    returnType: bool
    signature: bool is_present(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/xen/xen/tools/kconfig/confdata.c:34,1
    - Dst: S_ISDIR
      Src: /src/xen/xen/tools/kconfig/confdata.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: is_dir
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - stat
    - S_ISDIR
    linkageType: ''
    returnType: bool
    signature: bool is_dir(const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/xen/xen/tools/kconfig/confdata.c:48,1
    - Dst: open
      Src: /src/xen/xen/tools/kconfig/confdata.c:52,1
    - Dst: fstat
      Src: /src/xen/xen/tools/kconfig/confdata.c:56,1
    - Dst: fstat
      Src: /src/xen/xen/tools/kconfig/confdata.c:59,1
    - Dst: mmap
      Src: /src/xen/xen/tools/kconfig/confdata.c:66,1
    - Dst: mmap
      Src: /src/xen/xen/tools/kconfig/confdata.c:70,1
    - Dst: bcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:74,1
    - Dst: close
      Src: /src/xen/xen/tools/kconfig/confdata.c:79,1
    - Dst: close
      Src: /src/xen/xen/tools/kconfig/confdata.c:81,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - file1
    - file2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 84
    functionName: is_same
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - open
    - close
    - mmap
    - bcmp
    - fstat
    linkageType: ''
    returnType: bool
    signature: bool is_same(const char *file1, const char *file2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/confdata.c:96,1
    - Dst: strrchr
      Src: /src/xen/xen/tools/kconfig/confdata.c:100,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/confdata.c:110,1
    - Dst: is_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:114,1
    - Dst: mkdir
      Src: /src/xen/xen/tools/kconfig/confdata.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: make_parent_dir
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - mkdir
    - strncpy
    - strchr
    - is_dir
    - strrchr
    linkageType: ''
    returnType: int
    signature: int make_parent_dir(const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:136,1
    - Dst: tolower
      Src: /src/xen/xen/tools/kconfig/confdata.c:143,1
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/confdata.c:144,1
    - Dst: open
      Src: /src/xen/xen/tools/kconfig/confdata.c:147,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:152,1
    - Dst: open
      Src: /src/xen/xen/tools/kconfig/confdata.c:157,1
    - Dst: close
      Src: /src/xen/xen/tools/kconfig/confdata.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 164
    functionName: conf_touch_dep
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - open
    - tolower
    - close
    - make_parent_dir
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int conf_touch_dep(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/confdata.c:183,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:184,1
    - Dst: vfprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:185,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:186,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/confdata.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: conf_warning
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - va_start
    - vfprintf
    - fprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void conf_warning(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/confdata.c:193,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/confdata.c:194,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/confdata.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: conf_default_message_callback
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void conf_default_message_callback(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: conf_set_message_callback
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conf_set_message_callback(void (*fn)(const char *s))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/confdata.c:213,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:215,1
    - Dst: conf_message_callback
      Src: /src/xen/xen/tools/kconfig/confdata.c:216,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/confdata.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: conf_message
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - conf_message_callback
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void conf_message(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: conf_get_configname
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *conf_get_configname(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: conf_get_autoconfig_name
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *conf_get_autoconfig_name(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:258,1
    - Dst: strpbrk
      Src: /src/xen/xen/tools/kconfig/confdata.c:264,1
    - Dst: memmove
      Src: /src/xen/xen/tools/kconfig/confdata.c:269,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:269,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:273,1
    - Dst: sym_string_valid
      Src: /src/xen/xen/tools/kconfig/confdata.c:279,1
    - Dst: xstrdup
      Src: /src/xen/xen/tools/kconfig/confdata.c:280,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:284,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - sym
    - def
    - def_flags
    - p
    argTypes:
    - struct symbol*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 293
    functionName: conf_set_sym_val
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - xstrdup
    - strpbrk
    - conf_warning
    - memmove
    - strlen
    - sym_string_valid
    linkageType: ''
    returnType: int
    signature: int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xrealloc
      Src: /src/xen/xen/tools/kconfig/confdata.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - c
    - lineptr
    - slen
    - n
    argTypes:
    - int
    - char**
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 314
    functionName: add_byte
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - xrealloc
    linkageType: ''
    returnType: int
    signature: int add_byte(int c, char **lineptr, size_t slen, size_t *n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/xen/xen/tools/kconfig/confdata.c:322,1
    - Dst: add_byte
      Src: /src/xen/xen/tools/kconfig/confdata.c:326,1
    - Dst: add_byte
      Src: /src/xen/xen/tools/kconfig/confdata.c:331,1
    - Dst: add_byte
      Src: /src/xen/xen/tools/kconfig/confdata.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - lineptr
    - n
    - stream
    argTypes:
    - char**
    - size_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 348
    functionName: compat_getline
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - add_byte
    - getc
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t compat_getline(char **lineptr, size_t *n, FILE *stream)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: zconf_fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:360,1
    - Dst: conf_get_configname
      Src: /src/xen/xen/tools/kconfig/confdata.c:364,1
    - Dst: zconf_fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:365,1
    - Dst: sym_add_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:368,1
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:373,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:376,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:377,1
    - Dst: zconf_fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:378,1
    - Dst: conf_message
      Src: /src/xen/xen/tools/kconfig/confdata.c:380,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:398,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/confdata.c:405,1
    - Dst: compat_getline
      Src: /src/xen/xen/tools/kconfig/confdata.c:413,1
    - Dst: memcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:417,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:417,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/confdata.c:419,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:419,1
    - Dst: strncmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:423,1
    - Dst: sym_find
      Src: /src/xen/xen/tools/kconfig/confdata.c:426,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:426,1
    - Dst: sym_add_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:428,1
    - Dst: sym_lookup
      Src: /src/xen/xen/tools/kconfig/confdata.c:432,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:432,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:437,1
    - Dst: memcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:448,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:448,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/confdata.c:449,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:449,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/confdata.c:453,1
    - Dst: sym_find
      Src: /src/xen/xen/tools/kconfig/confdata.c:460,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:460,1
    - Dst: conf_touch_dep
      Src: /src/xen/xen/tools/kconfig/confdata.c:469,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:469,1
    - Dst: sym_add_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:471,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:476,1
    - Dst: conf_set_sym_val
      Src: /src/xen/xen/tools/kconfig/confdata.c:478,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:482,1
    - Dst: strcspn
      Src: /src/xen/xen/tools/kconfig/confdata.c:483,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:488,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:489,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/confdata.c:489,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:495,1
    - Dst: conf_warning
      Src: /src/xen/xen/tools/kconfig/confdata.c:501,1
    - Dst: EXPR_OR
      Src: /src/xen/xen/tools/kconfig/confdata.c:505,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/confdata.c:508,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:509,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 133
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 350
    functionDepth: 7
    functionLinenumber: 350
    functionLinenumberEnd: 511
    functionName: conf_read_simple
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached:
    - sym_add_change_count
    - memcmp
    - strcspn
    - sym_get_choice_prop
    - compat_getline
    - conf_get_configname
    - strchr
    - conf_set_sym_val
    - strlen
    - sym_lookup
    - free
    - EXPR_OR
    - conf_message
    - conf_touch_dep
    - sym_get_string_value
    - sym_calc_value
    - conf_warning
    - sym_is_choice
    - zconf_fopen
    - fclose
    - strncmp
    - sym_find
    - sym_is_choice_value
    - expr_calc_value
    - prop_get_symbol
    linkageType: ''
    returnType: int
    signature: int conf_read_simple(const char *name, int def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: expr_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:373,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:376,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:377,1
    - Dst: zconf_fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:378,1
    - Dst: conf_message
      Src: /src/xen/xen/tools/kconfig/confdata.c:380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 7
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: for_all_defaults
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - conf_message
    - zconf_fopen
    - sym_get_string_value
    - sym_calc_value
    - expr_calc_value
    linkageType: ''
    returnType: void
    signature: void for_all_defaults(sym_defconfig_list, prop)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:398,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/confdata.c:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 411
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 2
    functionsReached:
    - free
    - sym_is_choice
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:519,1
    - Dst: conf_read_simple
      Src: /src/xen/xen/tools/kconfig/confdata.c:521,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:522,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:526,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:529,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:530,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:532,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:537,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:541,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:545,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:553,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:553,1
    - Dst: sym_string_within_range
      Src: /src/xen/xen/tools/kconfig/confdata.c:566,1
    - Dst: sym_add_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:577,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 46
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 513
    functionDepth: 8
    functionLinenumber: 513
    functionLinenumberEnd: 580
    functionName: conf_read
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 12
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - sym_add_change_count
    - conf_read_simple
    - sym_set_change_count
    - sym_calc_value
    - strcmp
    - sym_string_within_range
    - sym_is_choice_value
    - sym_get_tristate_value
    linkageType: ''
    returnType: int
    signature: int conf_read(const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:529,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:530,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:532,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:537,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:541,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:545,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 528
    functionDepth: 5
    functionLinenumber: 528
    functionLinenumberEnd: 550
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 2
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - sym_calc_value
    - sym_get_tristate_value
    - strcmp
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:553,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:553,1
    - Dst: sym_string_within_range
      Src: /src/xen/xen/tools/kconfig/confdata.c:566,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 2
    functionsReached:
    - sym_has_value
    - sym_string_within_range
    - sym_is_choice_value
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:601,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - fp
    - sym
    - value
    - arg
    argTypes:
    - FILE*
    - struct symbol*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: kconfig_print_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void kconfig_print_symbol(FILE *fp, struct symbol *sym, const char
      *value, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/xen/xen/tools/kconfig/confdata.c:620,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:621,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:623,1
    - Dst: xfwrite
      Src: /src/xen/xen/tools/kconfig/confdata.c:624,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - fp
    - value
    - arg
    argTypes:
    - FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 631
    functionName: kconfig_print_comment
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - strcspn
    - fprintf
    - xfwrite
    linkageType: ''
    returnType: void
    signature: void kconfig_print_comment(FILE *fp, const char *value, void *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:660,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:670,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - fp
    - sym
    - value
    - arg
    argTypes:
    - FILE*
    - struct symbol*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 683
    functionName: header_print_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void header_print_symbol(FILE *fp, struct symbol *sym, const char *value,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:691,1
    - Dst: strcspn
      Src: /src/xen/xen/tools/kconfig/confdata.c:693,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:694,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:696,1
    - Dst: xfwrite
      Src: /src/xen/xen/tools/kconfig/confdata.c:697,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:700,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fp
    - value
    - arg
    argTypes:
    - FILE*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 705
    functionName: header_print_comment
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - strcspn
    - fprintf
    - xfwrite
    linkageType: ''
    returnType: void
    signature: void header_print_comment(FILE *fp, const char *value, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:723,1
    - Dst: toupper
      Src: /src/xen/xen/tools/kconfig/confdata.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - fp
    - sym
    - value
    - arg
    argTypes:
    - FILE*
    - struct symbol*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 724
    functionName: tristate_print_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - fprintf
    - toupper
    linkageType: ''
    returnType: void
    signature: void tristate_print_symbol(FILE *fp, struct symbol *sym, const char
      *value, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:741,1
    - Dst: sym_escape_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:742,1
    - Dst: struct conf_printer*::print_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:743,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/confdata.c:744,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:747,1
    - Dst: struct conf_printer*::print_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - fp
    - sym
    - printer
    - printer_arg
    argTypes:
    - FILE*
    - struct symbol*
    - struct conf_printer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 732
    functionDepth: 6
    functionLinenumber: 732
    functionLinenumberEnd: 750
    functionName: conf_write_symbol
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - free
    - sym_escape_string_value
    - struct conf_printer*::print_symbol
    - sym_get_string_value
    linkageType: ''
    returnType: void
    signature: "void conf_write_symbol(FILE *fp, struct symbol *sym,\n\t\t\t      struct
      conf_printer *printer, void *printer_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:757,1
    - Dst: struct conf_printer*::print_comment
      Src: /src/xen/xen/tools/kconfig/confdata.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fp
    - printer
    - printer_arg
    argTypes:
    - FILE*
    - struct conf_printer*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 764
    functionName: conf_write_heading
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - snprintf
    - struct conf_printer*::print_comment
    linkageType: ''
    returnType: void
    signature: void conf_write_heading(FILE *fp, struct conf_printer *printer, void
      *printer_arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:776,1
    - Dst: sym_clear_all_valid
      Src: /src/xen/xen/tools/kconfig/confdata.c:780,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/confdata.c:789,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:791,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:792,1
    - Dst: sym_is_changeable
      Src: /src/xen/xen/tools/kconfig/confdata.c:797,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:800,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:800,1
    - Dst: sym_get_string_default
      Src: /src/xen/xen/tools/kconfig/confdata.c:800,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:810,1
    - Dst: prop_get_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:814,1
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/confdata.c:814,1
    - Dst: sym_choice_default
      Src: /src/xen/xen/tools/kconfig/confdata.c:815,1
    - Dst: sym_is_optional
      Src: /src/xen/xen/tools/kconfig/confdata.c:816,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:818,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:822,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:839,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 770
    functionDepth: 8
    functionLinenumber: 770
    functionLinenumberEnd: 841
    functionName: conf_write_defconfig
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached:
    - fopen
    - menu_is_visible
    - sym_is_choice
    - sym_is_changeable
    - sym_get_string_value
    - sym_get_choice_prop
    - sym_calc_value
    - conf_write_symbol
    - sym_get_tristate_value
    - fclose
    - sym_clear_all_valid
    - sym_get_string_default
    - sym_is_choice_value
    - prop_get_symbol
    - sym_is_optional
    - strcmp
    - sym_choice_default
    linkageType: ''
    returnType: int
    signature: int conf_write_defconfig(const char *filename)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_configname
      Src: /src/xen/xen/tools/kconfig/confdata.c:855,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:858,1
    - Dst: is_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:862,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:863,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:867,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:870,1
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:873,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:875,1
    - Dst: getpid
      Src: /src/xen/xen/tools/kconfig/confdata.c:876,1
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:877,1
    - Dst: conf_write_heading
      Src: /src/xen/xen/tools/kconfig/confdata.c:882,1
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/confdata.c:884,1
    - Dst: sym_clear_all_valid
      Src: /src/xen/xen/tools/kconfig/confdata.c:885,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/confdata.c:891,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/confdata.c:893,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:894,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:901,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:905,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:909,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/confdata.c:920,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/confdata.c:922,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:923,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:932,1
    - Dst: for_all_symbols
      Src: /src/xen/xen/tools/kconfig/confdata.c:934,1
    - Dst: is_same
      Src: /src/xen/xen/tools/kconfig/confdata.c:938,1
    - Dst: conf_message
      Src: /src/xen/xen/tools/kconfig/confdata.c:939,1
    - Dst: unlink
      Src: /src/xen/xen/tools/kconfig/confdata.c:940,1
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:941,1
    - Dst: snprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:945,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:946,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:947,1
    - Dst: conf_message
      Src: /src/xen/xen/tools/kconfig/confdata.c:951,1
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:953,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 843
    functionDepth: 8
    functionLinenumber: 843
    functionLinenumberEnd: 956
    functionName: conf_write
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 11
    functionsReached:
    - snprintf
    - menu_is_visible
    - rename
    - conf_get_changed
    - conf_get_configname
    - getpid
    - getenv
    - menu_get_prompt
    - unlink
    - conf_write_symbol
    - sym_clear_all_valid
    - fopen
    - conf_message
    - sym_set_change_count
    - conf_write_heading
    - sym_calc_value
    - fprintf
    - for_all_symbols
    - make_parent_dir
    - is_dir
    - fclose
    - is_same
    linkageType: ''
    returnType: int
    signature: int conf_write(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:964,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:967,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:970,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:972,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:974,1
    - Dst: conf_get_autoconfig_name
      Src: /src/xen/xen/tools/kconfig/confdata.c:975,1
    - Dst: env_write_dep
      Src: /src/xen/xen/tools/kconfig/confdata.c:977,1
    - Dst: conf_get_autoconfig_name
      Src: /src/xen/xen/tools/kconfig/confdata.c:977,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/confdata.c:979,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:980,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:982,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 959
    functionDepth: 3
    functionLinenumber: 959
    functionLinenumberEnd: 986
    functionName: conf_write_dep
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - fopen
    - rename
    - conf_get_autoconfig_name
    - fclose
    - make_parent_dir
    - fprintf
    - env_write_dep
    linkageType: ''
    returnType: int
    signature: int conf_write_dep(const char *name)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/confdata.c:994,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/confdata.c:995,1
    - Dst: conf_get_autoconfig_name
      Src: /src/xen/xen/tools/kconfig/confdata.c:997,1
    - Dst: conf_read_simple
      Src: /src/xen/xen/tools/kconfig/confdata.c:998,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:999,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1002,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1014,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:1021,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1021,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1036,1
    - Dst: conf_touch_dep
      Src: /src/xen/xen/tools/kconfig/confdata.c:1052,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 988
    functionDepth: 8
    functionLinenumber: 988
    functionLinenumberEnd: 1058
    functionName: conf_touch_deps
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - conf_get_autoconfig_name
    - conf_touch_dep
    - conf_read_simple
    - sym_get_string_value
    - sym_calc_value
    - strcmp
    - strcpy
    - strlen
    - sym_get_tristate_value
    linkageType: ''
    returnType: int
    signature: int conf_touch_deps(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1002,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1014,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/confdata.c:1021,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1021,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1036,1
    - Dst: conf_touch_dep
      Src: /src/xen/xen/tools/kconfig/confdata.c:1052,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1001
    functionDepth: 6
    functionLinenumber: 1001
    functionLinenumberEnd: 1055
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - conf_touch_dep
    - sym_get_string_value
    - sym_calc_value
    - strcmp
    - sym_get_tristate_value
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_autoconfig_name
      Src: /src/xen/xen/tools/kconfig/confdata.c:1064,1
    - Dst: is_present
      Src: /src/xen/xen/tools/kconfig/confdata.c:1068,1
    - Dst: conf_write_dep
      Src: /src/xen/xen/tools/kconfig/confdata.c:1071,1
    - Dst: conf_touch_deps
      Src: /src/xen/xen/tools/kconfig/confdata.c:1073,1
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:1076,1
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:1080,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1082,1
    - Dst: fopen
      Src: /src/xen/xen/tools/kconfig/confdata.c:1086,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1088,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1089,1
    - Dst: conf_write_heading
      Src: /src/xen/xen/tools/kconfig/confdata.c:1093,1
    - Dst: conf_write_heading
      Src: /src/xen/xen/tools/kconfig/confdata.c:1095,1
    - Dst: conf_write_heading
      Src: /src/xen/xen/tools/kconfig/confdata.c:1097,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1100,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1105,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1107,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1109,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1111,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1112,1
    - Dst: fclose
      Src: /src/xen/xen/tools/kconfig/confdata.c:1113,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:1115,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:1118,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:1120,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:1123,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:1126,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:1128,1
    - Dst: make_parent_dir
      Src: /src/xen/xen/tools/kconfig/confdata.c:1131,1
    - Dst: rename
      Src: /src/xen/xen/tools/kconfig/confdata.c:1137,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - overwrite
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1060
    functionDepth: 9
    functionLinenumber: 1060
    functionLinenumberEnd: 1141
    functionName: conf_write_autoconf
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 5
    functionsReached:
    - fopen
    - rename
    - conf_get_autoconfig_name
    - conf_write_heading
    - sym_calc_value
    - conf_write_symbol
    - fclose
    - is_present
    - make_parent_dir
    - conf_touch_deps
    - getenv
    - conf_write_dep
    linkageType: ''
    returnType: int
    signature: int conf_write_autoconf(int overwrite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1100,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1105,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1107,1
    - Dst: conf_write_symbol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1099
    functionDepth: 7
    functionLinenumber: 1099
    functionLinenumberEnd: 1110
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - sym_calc_value
    - conf_write_symbol
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conf_changed_callback
      Src: /src/xen/xen/tools/kconfig/confdata.c:1152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1153
    functionName: sym_set_change_count
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 4
    functionsReached:
    - conf_changed_callback
    linkageType: ''
    returnType: void
    signature: void sym_set_change_count(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_set_change_count
      Src: /src/xen/xen/tools/kconfig/confdata.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1158
    functionName: sym_add_change_count
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - sym_set_change_count
    linkageType: ''
    returnType: void
    signature: void sym_add_change_count(int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1163
    functionName: conf_get_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool conf_get_changed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1168
    functionName: conf_set_changed_callback
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conf_set_changed_callback(void (*fn)(void))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/confdata.c:1185,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/confdata.c:1189,1
    - Dst: rand
      Src: /src/xen/xen/tools/kconfig/confdata.c:1196,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/confdata.c:1199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - csym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1216
    functionName: randomize_choice_values
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 0
    functionsReached:
    - sym_get_choice_prop
    - rand
    - expr_list_for_each_sym
    linkageType: ''
    returnType: bool
    signature: bool randomize_choice_values(struct symbol *csym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_choice_prop
      Src: /src/xen/xen/tools/kconfig/confdata.c:1224,1
    - Dst: expr_list_for_each_sym
      Src: /src/xen/xen/tools/kconfig/confdata.c:1229,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - csym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1236
    functionName: set_all_choice_values
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached:
    - sym_get_choice_prop
    - sym_has_value
    - expr_list_for_each_sym
    linkageType: ''
    returnType: void
    signature: void set_all_choice_values(struct symbol *csym)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/confdata.c:1252,1
    - Dst: strtol
      Src: /src/xen/xen/tools/kconfig/confdata.c:1256,1
    - Dst: perror
      Src: /src/xen/xen/tools/kconfig/confdata.c:1261,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/confdata.c:1262,1
    - Dst: perror
      Src: /src/xen/xen/tools/kconfig/confdata.c:1283,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/confdata.c:1284,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1289,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/confdata.c:1291,1
    - Dst: rand
      Src: /src/xen/xen/tools/kconfig/confdata.c:1310,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1322,1
    - Dst: sym_clear_all_valid
      Src: /src/xen/xen/tools/kconfig/confdata.c:1331,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1344,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1344,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1345,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1351,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1351,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1354,1
    - Dst: randomize_choice_values
      Src: /src/xen/xen/tools/kconfig/confdata.c:1356,1
    - Dst: set_all_choice_values
      Src: /src/xen/xen/tools/kconfig/confdata.c:1358,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 97
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum conf_def_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1238
    functionDepth: 6
    functionLinenumber: 1238
    functionLinenumberEnd: 1364
    functionName: conf_set_all_new_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 1
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - set_all_choice_values
    - sym_calc_value
    - rand
    - randomize_choice_values
    - sym_get_type
    - sym_clear_all_valid
    - strtol
    - sym_is_choice_value
    - exit
    - getenv
    - perror
    linkageType: ''
    returnType: bool
    signature: bool conf_set_all_new_symbols(enum conf_def_mode mode)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1289,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/confdata.c:1291,1
    - Dst: rand
      Src: /src/xen/xen/tools/kconfig/confdata.c:1310,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1322,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1288
    functionDepth: 2
    functionLinenumber: 1288
    functionLinenumberEnd: 1329
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - rand
    - sym_get_type
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, sym)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1344,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1344,1
    - Dst: sym_is_choice_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1347
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - sym_is_choice_value
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, csym)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1351,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/confdata.c:1351,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/confdata.c:1354,1
    - Dst: randomize_choice_values
      Src: /src/xen/xen/tools/kconfig/confdata.c:1356,1
    - Dst: set_all_choice_values
      Src: /src/xen/xen/tools/kconfig/confdata.c:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1350
    functionDepth: 5
    functionLinenumber: 1350
    functionLinenumberEnd: 1361
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/confdata.c
    functionUses: 3
    functionsReached:
    - sym_has_value
    - sym_is_choice
    - set_all_choice_values
    - sym_calc_value
    - randomize_choice_values
    linkageType: ''
    returnType: void
    signature: void for_all_symbols(i, csym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/lkc.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: CONFIG_prefix
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: char *CONFIG_prefix(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/xen/tools/kconfig/lkc.h:60,1
    - Dst: fwrite
      Src: /src/xen/xen/tools/kconfig/lkc.h:62,1
    - Dst: fprintf
      Src: /src/xen/xen/tools/kconfig/lkc.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - str
    - len
    - count
    - out
    argTypes:
    - void*
    - size_t
    - size_t
    - FILE*
    assertStmts:
    - condition: (len != 0)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/xen/xen/tools/kconfig/lkc.h
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: xfwrite
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 3
    functionsReached:
    - fwrite
    - assert
    - fprintf
    linkageType: ''
    returnType: void
    signature: void xfwrite(const void *str, size_t len, size_t count, FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: sym_get_tristate_value
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: tristate
    signature: tristate sym_get_tristate_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: sym_get_choice_value
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct symbol
    signature: struct symbol *sym_get_choice_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/lkc.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ch
    - chval
    argTypes:
    - struct symbol*
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 7
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: sym_set_choice_value
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 1
    functionsReached:
    - sym_set_tristate_value
    linkageType: ''
    returnType: bool
    signature: bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: sym_is_choice
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sym_is_choice(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: sym_is_choice_value
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sym_is_choice_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: sym_is_optional
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sym_is_optional(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sym
    argTypes:
    - struct symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: sym_has_value
    functionSourceFile: /src/xen/xen/tools/kconfig/lkc.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool sym_has_value(struct symbol *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dep1
    - ','
    - dep2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: EXPR_OR
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPR_OR(dep1, dep2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dep1
    - ','
    - dep2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: EXPR_AND
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPR_AND(dep1, dep2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dep
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: EXPR_NOT
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPR_NOT(dep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - e
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: expr_list_for_each_sym
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: expr_list_for_each_sym(l, e, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: for_all_symbols
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_all_symbols(i, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sym
    - ','
    - st
    - ','
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: for_all_properties
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_all_properties(sym, st, tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sym
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: for_all_defaults
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_all_defaults(sym, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sym
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: for_all_choices
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_all_choices(sym, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sym
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: for_all_prompts
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_all_prompts(sym, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: expr_is_yes
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int expr_is_yes(struct expr *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: expr_is_no
    functionSourceFile: /src/xen/xen/tools/kconfig/expr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int expr_is_no(struct expr *e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: max
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: min
    functionSourceFile: /src/xen/xen/tools/kconfig/nconf.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/gconf.c:83,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:86,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:88,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:90,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:92,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:94,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:96,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:98,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:100,1
    - Dst: strcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:102,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/gconf.c:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 107
    functionName: dbg_sym_flags
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - strcat
    - bzero
    - strlen
    linkageType: ''
    returnType: char
    signature: char *dbg_sym_flags(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdk_pixmap_create_from_xpm_d
      Src: /src/xen/xen/tools/kconfig/gconf.c:118,1
    - Dst: GTK_TOOL_BUTTON
      Src: /src/xen/xen/tools/kconfig/gconf.c:122,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:122,1
    - Dst: gtk_image_new_from_pixmap
      Src: /src/xen/xen/tools/kconfig/gconf.c:123,1
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:124,1
    - Dst: gtk_tool_button_set_icon_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - xml
    - window
    - style
    - btn_name
    - xpm
    argTypes:
    - GladeXML*
    - GdkDrawable*
    - GtkStyle*
    - gchar*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 126
    functionName: replace_button_icon
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_image_new_from_pixmap
    - gtk_widget_show
    - glade_xml_get_widget
    - gtk_tool_button_set_icon_widget
    - gdk_pixmap_create_from_xpm_d
    - GTK_TOOL_BUTTON
    linkageType: ''
    returnType: void
    signature: "void replace_button_icon(GladeXML *xml, GdkDrawable *window,\n\t\t\t\tGtkStyle
      *style, gchar *btn_name, gchar **xpm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: glade_xml_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:136,1
    - Dst: g_error
      Src: /src/xen/xen/tools/kconfig/gconf.c:138,1
    - Dst: glade_xml_signal_autoconnect
      Src: /src/xen/xen/tools/kconfig/gconf.c:139,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:141,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:142,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:143,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:144,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:145,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:146,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:148,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:149,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:151,1
    - Dst: gtk_check_menu_item_set_active
      Src: /src/xen/xen/tools/kconfig/gconf.c:152,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:155,1
    - Dst: gtk_check_menu_item_set_active
      Src: /src/xen/xen/tools/kconfig/gconf.c:156,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:159,1
    - Dst: gtk_check_menu_item_set_active
      Src: /src/xen/xen/tools/kconfig/gconf.c:160,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:163,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:164,1
    - Dst: conf_set_changed_callback
      Src: /src/xen/xen/tools/kconfig/gconf.c:165,1
    - Dst: gtk_widget_get_style
      Src: /src/xen/xen/tools/kconfig/gconf.c:167,1
    - Dst: glade_xml_get_widget
      Src: /src/xen/xen/tools/kconfig/gconf.c:168,1
    - Dst: replace_button_icon
      Src: /src/xen/xen/tools/kconfig/gconf.c:170,1
    - Dst: replace_button_icon
      Src: /src/xen/xen/tools/kconfig/gconf.c:172,1
    - Dst: replace_button_icon
      Src: /src/xen/xen/tools/kconfig/gconf.c:174,1
    - Dst: gtk_text_view_get_buffer
      Src: /src/xen/xen/tools/kconfig/gconf.c:177,1
    - Dst: GTK_TEXT_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:177,1
    - Dst: gtk_text_buffer_create_tag
      Src: /src/xen/xen/tools/kconfig/gconf.c:178,1
    - Dst: gtk_text_buffer_create_tag
      Src: /src/xen/xen/tools/kconfig/gconf.c:182,1
    - Dst: gtk_window_set_title
      Src: /src/xen/xen/tools/kconfig/gconf.c:186,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:186,1
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - glade_file
    argTypes:
    - gchar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 189
    functionName: init_main_window
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - g_error
    - glade_xml_signal_autoconnect
    - gtk_text_buffer_create_tag
    - GTK_WINDOW
    - replace_button_icon
    - gtk_check_menu_item_set_active
    - GTK_TEXT_VIEW
    - glade_xml_new
    - gtk_widget_show
    - gtk_widget_set_sensitive
    - glade_xml_get_widget
    - gtk_window_set_title
    - conf_set_changed_callback
    - gtk_text_view_get_buffer
    - gtk_widget_get_style
    linkageType: ''
    returnType: void
    signature: void init_main_window(const gchar *glade_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:195,1
    - Dst: GTK_TREE_MODEL
      Src: /src/xen/xen/tools/kconfig/gconf.c:204,1
    - Dst: g_malloc
      Src: /src/xen/xen/tools/kconfig/gconf.c:207,1
    - Dst: gtk_tree_store_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:209,1
    - Dst: GTK_TREE_MODEL
      Src: /src/xen/xen/tools/kconfig/gconf.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 219
    functionName: init_tree_model
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_tree_store_new
    - g_malloc
    - GTK_TREE_MODEL
    linkageType: ''
    returnType: void
    signature: void init_tree_model(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:223,1
    - Dst: gtk_tree_view_set_model
      Src: /src/xen/xen/tools/kconfig/gconf.c:228,1
    - Dst: gtk_tree_view_set_headers_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:229,1
    - Dst: gtk_tree_view_set_rules_hint
      Src: /src/xen/xen/tools/kconfig/gconf.c:230,1
    - Dst: gtk_tree_view_column_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:232,1
    - Dst: gtk_tree_view_append_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:233,1
    - Dst: gtk_tree_view_column_set_title
      Src: /src/xen/xen/tools/kconfig/gconf.c:234,1
    - Dst: gtk_cell_renderer_toggle_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:236,1
    - Dst: gtk_tree_view_column_pack_start
      Src: /src/xen/xen/tools/kconfig/gconf.c:237,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:237,1
    - Dst: gtk_tree_view_column_set_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:239,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:239,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:245,1
    - Dst: gtk_tree_view_column_pack_start
      Src: /src/xen/xen/tools/kconfig/gconf.c:246,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:246,1
    - Dst: gtk_tree_view_column_set_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:248,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:248,1
    - Dst: gtk_tree_view_get_selection
      Src: /src/xen/xen/tools/kconfig/gconf.c:254,1
    - Dst: gtk_tree_selection_set_mode
      Src: /src/xen/xen/tools/kconfig/gconf.c:255,1
    - Dst: gtk_widget_realize
      Src: /src/xen/xen/tools/kconfig/gconf.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 257
    functionName: init_left_tree
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_cell_renderer_text_new
    - gtk_cell_renderer_toggle_new
    - gtk_tree_view_get_selection
    - gtk_widget_realize
    - GTK_TREE_VIEW
    - gtk_tree_view_append_column
    - gtk_tree_view_column_set_attributes
    - GTK_TREE_VIEW_COLUMN
    - gtk_tree_selection_set_mode
    - gtk_tree_view_column_new
    - gtk_tree_view_set_rules_hint
    - gtk_tree_view_set_headers_visible
    - gtk_tree_view_column_pack_start
    - gtk_tree_view_set_model
    - gtk_tree_view_column_set_title
    linkageType: ''
    returnType: void
    signature: void init_left_tree(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:265,1
    - Dst: gtk_tree_view_set_model
      Src: /src/xen/xen/tools/kconfig/gconf.c:271,1
    - Dst: gtk_tree_view_set_headers_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:272,1
    - Dst: gtk_tree_view_set_rules_hint
      Src: /src/xen/xen/tools/kconfig/gconf.c:273,1
    - Dst: gtk_tree_view_column_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:275,1
    - Dst: gtk_tree_view_append_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:276,1
    - Dst: gtk_tree_view_column_set_title
      Src: /src/xen/xen/tools/kconfig/gconf.c:277,1
    - Dst: gtk_cell_renderer_pixbuf_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:279,1
    - Dst: gtk_tree_view_column_pack_start
      Src: /src/xen/xen/tools/kconfig/gconf.c:280,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:280,1
    - Dst: gtk_tree_view_column_set_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:282,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:282,1
    - Dst: gtk_cell_renderer_toggle_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:286,1
    - Dst: gtk_tree_view_column_pack_start
      Src: /src/xen/xen/tools/kconfig/gconf.c:287,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:287,1
    - Dst: gtk_tree_view_column_set_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:289,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:289,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:295,1
    - Dst: gtk_tree_view_column_pack_start
      Src: /src/xen/xen/tools/kconfig/gconf.c:296,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:296,1
    - Dst: gtk_tree_view_column_set_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:298,1
    - Dst: GTK_TREE_VIEW_COLUMN
      Src: /src/xen/xen/tools/kconfig/gconf.c:298,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:304,1
    - Dst: gtk_tree_view_insert_column_with_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:305,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:310,1
    - Dst: gtk_tree_view_insert_column_with_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:311,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:316,1
    - Dst: gtk_tree_view_insert_column_with_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:317,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:322,1
    - Dst: gtk_tree_view_insert_column_with_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:323,1
    - Dst: gtk_cell_renderer_text_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:328,1
    - Dst: gtk_tree_view_insert_column_with_attributes
      Src: /src/xen/xen/tools/kconfig/gconf.c:329,1
    - Dst: g_signal_connect
      Src: /src/xen/xen/tools/kconfig/gconf.c:336,1
    - Dst: G_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:336,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:337,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:339,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:340,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:341,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:342,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:343,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:344,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:345,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:346,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:347,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:348,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:352,1
    - Dst: gtk_tree_view_column_set_resizable
      Src: /src/xen/xen/tools/kconfig/gconf.c:353,1
    - Dst: gtk_tree_view_get_selection
      Src: /src/xen/xen/tools/kconfig/gconf.c:357,1
    - Dst: gtk_tree_selection_set_mode
      Src: /src/xen/xen/tools/kconfig/gconf.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 359
    functionName: init_right_tree
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - G_OBJECT
    - GTK_TREE_VIEW
    - gtk_tree_view_column_set_attributes
    - GTK_TREE_VIEW_COLUMN
    - gtk_tree_view_column_set_visible
    - g_signal_connect
    - gtk_tree_view_insert_column_with_attributes
    - gtk_tree_view_append_column
    - gtk_tree_selection_set_mode
    - gtk_tree_view_column_set_resizable
    - gtk_tree_view_set_model
    - gtk_cell_renderer_pixbuf_new
    - gtk_cell_renderer_text_new
    - gtk_tree_view_get_column
    - gtk_tree_view_column_new
    - gtk_tree_view_set_rules_hint
    - gtk_tree_view_set_headers_visible
    - gtk_tree_view_column_pack_start
    - gtk_tree_view_get_selection
    - gtk_cell_renderer_toggle_new
    - gtk_tree_view_column_set_title
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void init_right_tree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:369,1
    - Dst: str_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:370,1
    - Dst: menu_get_ext_help
      Src: /src/xen/xen/tools/kconfig/gconf.c:372,1
    - Dst: gtk_text_view_get_buffer
      Src: /src/xen/xen/tools/kconfig/gconf.c:374,1
    - Dst: GTK_TEXT_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:374,1
    - Dst: gtk_text_buffer_get_bounds
      Src: /src/xen/xen/tools/kconfig/gconf.c:375,1
    - Dst: gtk_text_buffer_delete
      Src: /src/xen/xen/tools/kconfig/gconf.c:376,1
    - Dst: gtk_text_view_set_left_margin
      Src: /src/xen/xen/tools/kconfig/gconf.c:377,1
    - Dst: GTK_TEXT_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:377,1
    - Dst: gtk_text_buffer_get_end_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:379,1
    - Dst: gtk_text_buffer_insert_with_tags
      Src: /src/xen/xen/tools/kconfig/gconf.c:380,1
    - Dst: gtk_text_buffer_insert_at_cursor
      Src: /src/xen/xen/tools/kconfig/gconf.c:382,1
    - Dst: gtk_text_buffer_get_end_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:383,1
    - Dst: gtk_text_buffer_insert_with_tags
      Src: /src/xen/xen/tools/kconfig/gconf.c:384,1
    - Dst: str_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:384,1
    - Dst: str_free
      Src: /src/xen/xen/tools/kconfig/gconf.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 365
    functionDepth: 11
    functionLinenumber: 365
    functionLinenumberEnd: 387
    functionName: text_insert_help
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - menu_get_prompt
    - gtk_text_buffer_delete
    - str_get
    - gtk_text_buffer_get_bounds
    - GTK_TEXT_VIEW
    - str_free
    - menu_get_ext_help
    - gtk_text_buffer_get_end_iter
    - str_new
    - gtk_text_buffer_insert_at_cursor
    - gtk_text_buffer_insert_with_tags
    - gtk_text_view_get_buffer
    - gtk_text_view_set_left_margin
    linkageType: ''
    returnType: void
    signature: void text_insert_help(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_text_view_get_buffer
      Src: /src/xen/xen/tools/kconfig/gconf.c:396,1
    - Dst: GTK_TEXT_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:396,1
    - Dst: gtk_text_buffer_get_bounds
      Src: /src/xen/xen/tools/kconfig/gconf.c:397,1
    - Dst: gtk_text_buffer_delete
      Src: /src/xen/xen/tools/kconfig/gconf.c:398,1
    - Dst: gtk_text_view_set_left_margin
      Src: /src/xen/xen/tools/kconfig/gconf.c:399,1
    - Dst: GTK_TEXT_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:399,1
    - Dst: gtk_text_buffer_get_end_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:401,1
    - Dst: gtk_text_buffer_insert_with_tags
      Src: /src/xen/xen/tools/kconfig/gconf.c:402,1
    - Dst: gtk_text_buffer_insert_at_cursor
      Src: /src/xen/xen/tools/kconfig/gconf.c:404,1
    - Dst: gtk_text_buffer_get_end_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:405,1
    - Dst: gtk_text_buffer_insert_with_tags
      Src: /src/xen/xen/tools/kconfig/gconf.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - title
    - message
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 408
    functionName: text_insert_msg
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_text_buffer_delete
    - gtk_text_buffer_get_bounds
    - GTK_TEXT_VIEW
    - gtk_text_buffer_get_end_iter
    - gtk_text_buffer_insert_at_cursor
    - gtk_text_buffer_insert_with_tags
    - gtk_text_view_get_buffer
    - gtk_text_view_set_left_margin
    linkageType: ''
    returnType: void
    signature: void text_insert_msg(const char *title, const char *message)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/gconf.c:420,1
    - Dst: gtk_dialog_new_with_buttons
      Src: /src/xen/xen/tools/kconfig/gconf.c:423,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:424,1
    - Dst: gtk_dialog_set_default_response
      Src: /src/xen/xen/tools/kconfig/gconf.c:434,1
    - Dst: GTK_DIALOG
      Src: /src/xen/xen/tools/kconfig/gconf.c:434,1
    - Dst: gtk_label_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:437,1
    - Dst: gtk_container_add
      Src: /src/xen/xen/tools/kconfig/gconf.c:438,1
    - Dst: GTK_CONTAINER
      Src: /src/xen/xen/tools/kconfig/gconf.c:438,1
    - Dst: GTK_DIALOG
      Src: /src/xen/xen/tools/kconfig/gconf.c:438,1
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:439,1
    - Dst: gtk_dialog_run
      Src: /src/xen/xen/tools/kconfig/gconf.c:441,1
    - Dst: GTK_DIALOG
      Src: /src/xen/xen/tools/kconfig/gconf.c:441,1
    - Dst: on_save_activate
      Src: /src/xen/xen/tools/kconfig/gconf.c:444,1
    - Dst: gtk_widget_destroy
      Src: /src/xen/xen/tools/kconfig/gconf.c:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - widget
    - event
    - user_data
    argTypes:
    - GtkWidget*
    - GdkEvent*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 456
    functionName: on_window1_delete_event
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - gtk_dialog_new_with_buttons
    - gtk_dialog_run
    - on_save_activate
    - gtk_widget_show
    - GTK_CONTAINER
    - conf_get_changed
    - gtk_label_new
    - gtk_widget_destroy
    - gtk_dialog_set_default_response
    - gtk_container_add
    - GTK_DIALOG
    linkageType: ''
    returnType: gboolean
    signature: "gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,\n\t\t\t\t
      gpointer user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_main_quit
      Src: /src/xen/xen/tools/kconfig/gconf.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - user_data
    argTypes:
    - GtkObject*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 462
    functionName: on_window1_destroy
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_main_quit
    linkageType: ''
    returnType: void
    signature: void on_window1_destroy(GtkObject * object, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gtk_window_get_default_size
      Src: /src/xen/xen/tools/kconfig/gconf.c:473,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:473,1
    - Dst: gdk_window_get_size
      Src: /src/xen/xen/tools/kconfig/gconf.c:475,1
    - Dst: gtk_paned_set_position
      Src: /src/xen/xen/tools/kconfig/gconf.c:481,1
    - Dst: GTK_PANED
      Src: /src/xen/xen/tools/kconfig/gconf.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - widget
    - requisition
    - user_data
    argTypes:
    - GtkWidget*
    - GtkRequisition*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 482
    functionName: on_window1_size_request
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - gtk_paned_set_position
    - gdk_window_get_size
    - gtk_window_get_default_size
    - GTK_PANED
    linkageType: ''
    returnType: void
    signature: "void on_window1_size_request(GtkWidget * widget,\n\t\t\tGtkRequisition
      * requisition, gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_file_selection_get_filename
      Src: /src/xen/xen/tools/kconfig/gconf.c:493,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:493,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/gconf.c:496,1
    - Dst: text_insert_msg
      Src: /src/xen/xen/tools/kconfig/gconf.c:497,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - file_selector
    - user_data
    argTypes:
    - GtkFileSelection*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 9
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: load_filename
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_FILE_SELECTION
    - text_insert_msg
    - conf_read
    - display_tree
    - gtk_file_selection_get_filename
    linkageType: ''
    returnType: void
    signature: void load_filename(GtkFileSelection * file_selector, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_file_selection_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:506,1
    - Dst: g_signal_connect
      Src: /src/xen/xen/tools/kconfig/gconf.c:507,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:507,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:507,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:509,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:510,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:510,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:511,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:512,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:514,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:514,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:515,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:516,1
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: on_load1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_FILE_SELECTION
    - g_signal_connect_swapped
    - GTK_OBJECT
    - gtk_widget_show
    - g_signal_connect
    - G_CALLBACK
    - gtk_file_selection_new
    linkageType: ''
    returnType: void
    signature: void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/gconf.c:524,1
    - Dst: text_insert_msg
      Src: /src/xen/xen/tools/kconfig/gconf.c:525,1
    - Dst: conf_write_autoconf
      Src: /src/xen/xen/tools/kconfig/gconf.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 10
    functionLinenumber: 522
    functionLinenumberEnd: 527
    functionName: on_save_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 1
    functionsReached:
    - conf_write
    - conf_write_autoconf
    - text_insert_msg
    linkageType: ''
    returnType: void
    signature: void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_file_selection_get_filename
      Src: /src/xen/xen/tools/kconfig/gconf.c:535,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:535,1
    - Dst: conf_write
      Src: /src/xen/xen/tools/kconfig/gconf.c:538,1
    - Dst: text_insert_msg
      Src: /src/xen/xen/tools/kconfig/gconf.c:539,1
    - Dst: gtk_widget_destroy
      Src: /src/xen/xen/tools/kconfig/gconf.c:541,1
    - Dst: GTK_WIDGET
      Src: /src/xen/xen/tools/kconfig/gconf.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - file_selector
    - user_data
    argTypes:
    - GtkFileSelection*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 530
    functionDepth: 9
    functionLinenumber: 530
    functionLinenumberEnd: 542
    functionName: store_filename
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_FILE_SELECTION
    - conf_write
    - text_insert_msg
    - GTK_WIDGET
    - gtk_widget_destroy
    - gtk_file_selection_get_filename
    linkageType: ''
    returnType: void
    signature: void store_filename(GtkFileSelection * file_selector, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_file_selection_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:548,1
    - Dst: g_signal_connect
      Src: /src/xen/xen/tools/kconfig/gconf.c:549,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:549,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:549,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:551,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:552,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:552,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:553,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:554,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:556,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:556,1
    - Dst: GTK_FILE_SELECTION
      Src: /src/xen/xen/tools/kconfig/gconf.c:557,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:558,1
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 561
    functionName: on_save_as1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_FILE_SELECTION
    - g_signal_connect_swapped
    - GTK_OBJECT
    - gtk_widget_show
    - g_signal_connect
    - G_CALLBACK
    - gtk_file_selection_new
    linkageType: ''
    returnType: void
    signature: void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: on_window1_delete_event
      Src: /src/xen/xen/tools/kconfig/gconf.c:566,1
    - Dst: gtk_widget_destroy
      Src: /src/xen/xen/tools/kconfig/gconf.c:567,1
    - Dst: GTK_WIDGET
      Src: /src/xen/xen/tools/kconfig/gconf.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 568
    functionName: on_quit1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WIDGET
    - gtk_widget_destroy
    - on_window1_delete_event
    linkageType: ''
    returnType: void
    signature: void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTK_CHECK_MENU_ITEM
      Src: /src/xen/xen/tools/kconfig/gconf.c:575,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:576,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:576,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 579
    functionName: on_show_name1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_get_column
    - gtk_tree_view_column_set_visible
    - GTK_CHECK_MENU_ITEM
    linkageType: ''
    returnType: void
    signature: void on_show_name1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GTK_CHECK_MENU_ITEM
      Src: /src/xen/xen/tools/kconfig/gconf.c:586,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:587,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:587,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:589,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:590,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:590,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:592,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:593,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:593,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 597
    functionName: on_show_range1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_get_column
    - gtk_tree_view_column_set_visible
    - GTK_CHECK_MENU_ITEM
    linkageType: ''
    returnType: void
    signature: void on_show_range1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTK_CHECK_MENU_ITEM
      Src: /src/xen/xen/tools/kconfig/gconf.c:604,1
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:605,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:605,1
    - Dst: gtk_tree_view_column_set_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 608
    functionName: on_show_data1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_get_column
    - gtk_tree_view_column_set_visible
    - GTK_CHECK_MENU_ITEM
    linkageType: ''
    returnType: void
    signature: void on_show_data1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:615,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 617
    functionName: on_set_option_mode1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - display_tree
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void on_set_option_mode1_activate(GtkMenuItem *menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:624,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: on_set_option_mode2_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - display_tree
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void on_set_option_mode2_activate(GtkMenuItem *menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:633,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: on_set_option_mode3_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - display_tree
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void on_set_option_mode3_activate(GtkMenuItem *menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_message_dialog_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:658,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:658,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:662,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:662,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:663,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:664,1
    - Dst: gtk_widget_show_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 666
    functionName: on_introduction1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - g_signal_connect_swapped
    - GTK_OBJECT
    - gtk_message_dialog_new
    - gtk_widget_show_all
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void on_introduction1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_message_dialog_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:676,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:676,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:680,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:680,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:681,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:682,1
    - Dst: gtk_widget_show_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 684
    functionName: on_about1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - g_signal_connect_swapped
    - GTK_OBJECT
    - gtk_message_dialog_new
    - gtk_widget_show_all
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void on_about1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_message_dialog_new
      Src: /src/xen/xen/tools/kconfig/gconf.c:695,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:695,1
    - Dst: g_signal_connect_swapped
      Src: /src/xen/xen/tools/kconfig/gconf.c:699,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:699,1
    - Dst: G_CALLBACK
      Src: /src/xen/xen/tools/kconfig/gconf.c:700,1
    - Dst: GTK_OBJECT
      Src: /src/xen/xen/tools/kconfig/gconf.c:701,1
    - Dst: gtk_widget_show_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - menuitem
    - user_data
    argTypes:
    - GtkMenuItem*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 703
    functionName: on_license1_activate
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - g_signal_connect_swapped
    - GTK_OBJECT
    - gtk_message_dialog_new
    - gtk_widget_show_all
    - G_CALLBACK
    linkageType: ''
    returnType: void
    signature: void on_license1_activate(GtkMenuItem * menuitem, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:714,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 718
    functionName: on_back_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_widget_set_sensitive
    - display_tree_part
    linkageType: ''
    returnType: void
    signature: void on_back_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_load1_activate
      Src: /src/xen/xen/tools/kconfig/gconf.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 724
    functionName: on_load_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - on_load1_activate
    linkageType: ''
    returnType: void
    signature: void on_load_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_widget_hide
      Src: /src/xen/xen/tools/kconfig/gconf.c:730,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: on_single_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - display_tree_part
    - gtk_widget_hide
    linkageType: ''
    returnType: void
    signature: void on_single_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_widget_show
      Src: /src/xen/xen/tools/kconfig/gconf.c:740,1
    - Dst: gtk_window_get_default_size
      Src: /src/xen/xen/tools/kconfig/gconf.c:741,1
    - Dst: GTK_WINDOW
      Src: /src/xen/xen/tools/kconfig/gconf.c:741,1
    - Dst: gtk_paned_set_position
      Src: /src/xen/xen/tools/kconfig/gconf.c:742,1
    - Dst: GTK_PANED
      Src: /src/xen/xen/tools/kconfig/gconf.c:742,1
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:744,1
    - Dst: display_list
      Src: /src/xen/xen/tools/kconfig/gconf.c:745,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 749
    functionName: on_split_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_WINDOW
    - gtk_paned_set_position
    - gtk_widget_show
    - gtk_window_get_default_size
    - gtk_tree_store_clear
    - gtk_widget_set_sensitive
    - GTK_PANED
    - display_list
    linkageType: ''
    returnType: void
    signature: void on_split_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_widget_hide
      Src: /src/xen/xen/tools/kconfig/gconf.c:755,1
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:757,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:758,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    functionName: on_full_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_widget_set_sensitive
    - display_tree
    - gtk_widget_hide
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void on_full_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_view_collapse_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:765,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 766
    functionName: on_collapse_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_collapse_all
    linkageType: ''
    returnType: void
    signature: void on_collapse_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_view_expand_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:771,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - button
    - user_data
    argTypes:
    - GtkButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 772
    functionName: on_expand_clicked
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_expand_all
    linkageType: ''
    returnType: void
    signature: void on_expand_clicked(GtkButton * button, gpointer user_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_path_new_from_string
      Src: /src/xen/xen/tools/kconfig/gconf.c:782,1
    - Dst: gtk_tree_model_get_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:788,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:791,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:794,1
    - Dst: sym_set_string_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:797,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:799,1
    - Dst: gtk_tree_path_free
      Src: /src/xen/xen/tools/kconfig/gconf.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - cell
    - path_string
    - new_text
    - user_data
    argTypes:
    - GtkCellRendererText*
    - gchar*
    - gchar*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 778
    functionDepth: 8
    functionLinenumber: 778
    functionLinenumberEnd: 802
    functionName: renderer_edited
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_tree_path_new_from_string
    - sym_set_string_value
    - gtk_tree_model_get
    - update_tree
    - gtk_tree_model_get_iter
    - gtk_tree_path_free
    linkageType: ''
    returnType: void
    signature: "void renderer_edited(GtkCellRendererText * cell,\n\t\t\t    const
      gchar * path_string,\n\t\t\t    const gchar * new_text, gpointer user_data)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/gconf.c:822,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/gconf.c:825,1
    - Dst: sym_set_tristate_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:827,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:829,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:831,1
    - Dst: display_list
      Src: /src/xen/xen/tools/kconfig/gconf.c:832,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:835,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - menu
    - col
    argTypes:
    - struct menu*
    - gint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 805
    functionDepth: 7
    functionLinenumber: 805
    functionLinenumberEnd: 843
    functionName: change_sym_value
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - display_tree_part
    - sym_tristate_within_range
    - sym_get_type
    - update_tree
    - sym_set_tristate_value
    - display_list
    linkageType: ''
    returnType: void
    signature: void change_sym_value(struct menu *menu, gint col)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sym_toggle_tristate_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:850,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:852,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:854,1
    - Dst: display_list
      Src: /src/xen/xen/tools/kconfig/gconf.c:855,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 845
    functionDepth: 8
    functionLinenumber: 845
    functionLinenumberEnd: 859
    functionName: toggle_sym_value
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - sym_toggle_tristate_value
    - update_tree
    - display_list
    - display_tree_part
    linkageType: ''
    returnType: void
    signature: void toggle_sym_value(struct menu *menu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_view_get_column
      Src: /src/xen/xen/tools/kconfig/gconf.c:868,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - column
    argTypes:
    - GtkTreeViewColumn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 874
    functionName: column2index
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - GTK_TREE_VIEW
    - gtk_tree_view_get_column
    linkageType: ''
    returnType: gint
    signature: gint column2index(GtkTreeViewColumn * column)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:882,1
    - Dst: GTK_CHECK_VERSION
      Src: /src/xen/xen/tools/kconfig/gconf.c:889,1
    - Dst: gtk_tree_view_get_path_at_pos
      Src: /src/xen/xen/tools/kconfig/gconf.c:894,1
    - Dst: gtk_tree_view_get_cursor
      Src: /src/xen/xen/tools/kconfig/gconf.c:897,1
    - Dst: gtk_tree_model_get_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:902,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:904,1
    - Dst: column2index
      Src: /src/xen/xen/tools/kconfig/gconf.c:906,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:914,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:915,1
    - Dst: toggle_sym_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:917,1
    - Dst: gtk_tree_view_expand_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:918,1
    - Dst: toggle_sym_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:922,1
    - Dst: gtk_tree_view_expand_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:923,1
    - Dst: change_sym_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:926,1
    - Dst: gtk_tree_view_expand_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:927,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - widget
    - event
    - user_data
    argTypes:
    - GtkWidget*
    - GdkEventButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 878
    functionDepth: 9
    functionLinenumber: 878
    functionLinenumberEnd: 932
    functionName: on_treeview2_button_press_event
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_tree_view_get_path_at_pos
    - gtk_tree_view_get_cursor
    - display_tree_part
    - toggle_sym_value
    - column2index
    - gtk_tree_model_get
    - change_sym_value
    - gtk_widget_set_sensitive
    - GTK_TREE_VIEW
    - GTK_CHECK_VERSION
    - gtk_tree_model_get_iter
    - gtk_tree_view_expand_row
    linkageType: ''
    returnType: gboolean
    signature: "gboolean on_treeview2_button_press_event(GtkWidget * widget,\n\t\t\t\tGdkEventButton
      * event, gpointer user_data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:939,1
    - Dst: gtk_tree_view_get_cursor
      Src: /src/xen/xen/tools/kconfig/gconf.c:946,1
    - Dst: gtk_tree_view_row_expanded
      Src: /src/xen/xen/tools/kconfig/gconf.c:951,1
    - Dst: gtk_tree_view_collapse_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:952,1
    - Dst: gtk_tree_view_expand_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:954,1
    - Dst: gtk_tree_model_get_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:962,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:963,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/kconfig/gconf.c:965,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/kconfig/gconf.c:967,1
    - Dst: strcasecmp
      Src: /src/xen/xen/tools/kconfig/gconf.c:969,1
    - Dst: change_sym_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:973,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - widget
    - event
    - user_data
    argTypes:
    - GtkWidget*
    - GdkEventKey*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 935
    functionDepth: 8
    functionLinenumber: 935
    functionLinenumberEnd: 976
    functionName: on_treeview2_key_press_event
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_tree_view_get_cursor
    - gtk_tree_view_row_expanded
    - gtk_tree_model_get
    - change_sym_value
    - gtk_tree_view_collapse_row
    - GTK_TREE_VIEW
    - strcasecmp
    - gtk_tree_view_expand_row
    - gtk_tree_model_get_iter
    linkageType: ''
    returnType: gboolean
    signature: "gboolean on_treeview2_key_press_event(GtkWidget * widget,\n\t\t\t
      \    GdkEventKey * event, gpointer user_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_view_get_selection
      Src: /src/xen/xen/tools/kconfig/gconf.c:987,1
    - Dst: gtk_tree_selection_get_selected
      Src: /src/xen/xen/tools/kconfig/gconf.c:988,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:989,1
    - Dst: text_insert_help
      Src: /src/xen/xen/tools/kconfig/gconf.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - treeview
    - user_data
    argTypes:
    - GtkTreeView*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 980
    functionDepth: 12
    functionLinenumber: 980
    functionLinenumberEnd: 992
    functionName: on_treeview2_cursor_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - text_insert_help
    - gtk_tree_selection_get_selected
    - gtk_tree_view_get_selection
    - gtk_tree_model_get
    linkageType: ''
    returnType: void
    signature: void on_treeview2_cursor_changed(GtkTreeView * treeview, gpointer user_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:1000,1
    - Dst: gtk_tree_view_get_path_at_pos
      Src: /src/xen/xen/tools/kconfig/gconf.c:1010,1
    - Dst: gtk_tree_model_get_iter
      Src: /src/xen/xen/tools/kconfig/gconf.c:1015,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:1016,1
    - Dst: toggle_sym_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1019,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:1021,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:1024,1
    - Dst: gtk_widget_realize
      Src: /src/xen/xen/tools/kconfig/gconf.c:1027,1
    - Dst: gtk_tree_view_set_cursor
      Src: /src/xen/xen/tools/kconfig/gconf.c:1028,1
    - Dst: gtk_widget_grab_focus
      Src: /src/xen/xen/tools/kconfig/gconf.c:1029,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - widget
    - event
    - user_data
    argTypes:
    - GtkWidget*
    - GdkEventButton*
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 996
    functionDepth: 9
    functionLinenumber: 996
    functionLinenumberEnd: 1032
    functionName: on_treeview1_button_press_event
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - gtk_tree_view_get_path_at_pos
    - display_tree_part
    - toggle_sym_value
    - gtk_widget_realize
    - gtk_tree_model_get
    - GTK_TREE_VIEW
    - gtk_tree_view_set_cursor
    - gtk_tree_model_get_iter
    - gtk_widget_grab_focus
    linkageType: ''
    returnType: gboolean
    signature: "gboolean on_treeview1_button_press_event(GtkWidget * widget,\n\t\t\t\tGdkEventButton
      * event, gpointer user_data)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: g_free
      Src: /src/xen/xen/tools/kconfig/gconf.c:1047,1
    - Dst: bzero
      Src: /src/xen/xen/tools/kconfig/gconf.c:1048,1
    - Dst: g_strdup_printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1051,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1051,1
    - Dst: sym_has_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1052,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:1054,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1055,1
    - Dst: menu_has_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1057,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:1057,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1058,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1060,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1067,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1068,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1072,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1073,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1077,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1078,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1084,1
    - Dst: sym_calc_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1086,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/gconf.c:1089,1
    - Dst: sym_get_choice_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1091,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1094,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:1097,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1104,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1104,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1107,1
    - Dst: sym_get_type
      Src: /src/xen/xen/tools/kconfig/gconf.c:1109,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1112,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1113,1
    - Dst: sym_is_choice
      Src: /src/xen/xen/tools/kconfig/gconf.c:1114,1
    - Dst: sym_get_tristate_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1118,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1121,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1122,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1123,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1124,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1127,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1128,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1129,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1132,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1133,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1134,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1135,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/gconf.c:1139,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1140,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/gconf.c:1141,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1142,1
    - Dst: sym_tristate_within_range
      Src: /src/xen/xen/tools/kconfig/gconf.c:1143,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1144,1
    - Dst: sym_get_string_value
      Src: /src/xen/xen/tools/kconfig/gconf.c:1149,1
    - Dst: g_strdup
      Src: /src/xen/xen/tools/kconfig/gconf.c:1150,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1151,1
    - Dst: GINT_TO_POINTER
      Src: /src/xen/xen/tools/kconfig/gconf.c:1152,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1036
    functionDepth: 8
    functionLinenumber: 1036
    functionLinenumberEnd: 1157
    functionName: fill_row
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - sym_has_value
    - GPOINTER_TO_INT
    - menu_get_prompt
    - menu_is_visible
    - g_strdup
    - menu_has_prompt
    - sym_is_choice
    - sym_get_string_value
    - sym_calc_value
    - sym_tristate_within_range
    - GINT_TO_POINTER
    - sym_get_type
    - g_free
    - g_strdup_printf
    - sym_get_tristate_value
    - sym_get_choice_value
    - bzero
    linkageType: ''
    returnType: gchar
    signature: gchar **fill_row(struct menu *menu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdk_pixbuf_new_from_xpm_data
      Src: /src/xen/xen/tools/kconfig/gconf.c:1167,1
    - Dst: gdk_color_parse
      Src: /src/xen/xen/tools/kconfig/gconf.c:1170,1
    - Dst: gdk_colormap_alloc_colors
      Src: /src/xen/xen/tools/kconfig/gconf.c:1171,1
    - Dst: gdk_colormap_get_system
      Src: /src/xen/xen/tools/kconfig/gconf.c:1171,1
    - Dst: gtk_tree_store_set
      Src: /src/xen/xen/tools/kconfig/gconf.c:1174,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1183,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1185,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1186,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1187,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1188,1
    - Dst: GPOINTER_TO_INT
      Src: /src/xen/xen/tools/kconfig/gconf.c:1189,1
    - Dst: g_object_unref
      Src: /src/xen/xen/tools/kconfig/gconf.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - node
    - menu
    - row
    argTypes:
    - GtkTreeIter*
    - struct menu*
    - gchar**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1193
    functionName: set_node
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 2
    functionsReached:
    - GPOINTER_TO_INT
    - gdk_color_parse
    - gdk_colormap_alloc_colors
    - gtk_tree_store_set
    - g_object_unref
    - gdk_pixbuf_new_from_xpm_data
    - gdk_colormap_get_system
    linkageType: ''
    returnType: void
    signature: void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_append
      Src: /src/xen/xen/tools/kconfig/gconf.c:1202,1
    - Dst: set_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - menu
    - row
    argTypes:
    - struct menu*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1197
    functionDepth: 1
    functionLinenumber: 1197
    functionLinenumberEnd: 1204
    functionName: place_node
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 0
    functionsReached:
    - set_node
    - gtk_tree_store_append
    linkageType: ''
    returnType: void
    signature: void place_node(struct menu *menu, char **row)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_model_iter_children
      Src: /src/xen/xen/tools/kconfig/gconf.c:1221,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:1225,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/gconf.c:1228,1
    - Dst: gtktree_iter_find_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1232,1
    - Dst: gtk_tree_model_iter_next
      Src: /src/xen/xen/tools/kconfig/gconf.c:1236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - parent
    - tofind
    argTypes:
    - GtkTreeIter*
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1240
    functionName: gtktree_iter_find_node
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 1
    functionsReached:
    - gtktree_iter_find_node
    - gtk_tree_model_get
    - gtk_tree_model_iter_children
    - gtk_tree_model_iter_next
    - memcpy
    linkageType: ''
    returnType: GtkTreeIter
    signature: "GtkTreeIter *gtktree_iter_find_node(GtkTreeIter *parent,\n\t\t\t\t\t
      \  struct menu *tofind)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_model_iter_children
      Src: /src/xen/xen/tools/kconfig/gconf.c:1260,1
    - Dst: gtk_tree_model_get
      Src: /src/xen/xen/tools/kconfig/gconf.c:1268,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1274,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1275,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1276,1
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:1279,1
    - Dst: menu_has_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1280,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1281,1
    - Dst: gtktree_iter_find_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1284,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/gconf.c:1285,1
    - Dst: gtk_tree_model_iter_next
      Src: /src/xen/xen/tools/kconfig/gconf.c:1286,1
    - Dst: gtk_tree_store_remove
      Src: /src/xen/xen/tools/kconfig/gconf.c:1288,1
    - Dst: gtktree_iter_find_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1298,1
    - Dst: gtk_tree_store_insert_before
      Src: /src/xen/xen/tools/kconfig/gconf.c:1303,1
    - Dst: set_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1306,1
    - Dst: fill_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:1306,1
    - Dst: memcpy
      Src: /src/xen/xen/tools/kconfig/gconf.c:1310,1
    - Dst: gtk_tree_model_iter_next
      Src: /src/xen/xen/tools/kconfig/gconf.c:1311,1
    - Dst: gtk_tree_store_remove
      Src: /src/xen/xen/tools/kconfig/gconf.c:1313,1
    - Dst: set_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1320,1
    - Dst: fill_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:1320,1
    - Dst: update_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1324,1
    - Dst: gtk_tree_model_iter_next
      Src: /src/xen/xen/tools/kconfig/gconf.c:1327,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct menu*
    - GtkTreeIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1247
    functionDepth: 9
    functionLinenumber: 1247
    functionLinenumberEnd: 1329
    functionName: update_tree
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 4
    functionsReached:
    - gtktree_iter_find_node
    - gtk_tree_store_remove
    - menu_get_prompt
    - menu_is_visible
    - menu_has_prompt
    - set_node
    - gtk_tree_model_get
    - gtk_tree_model_iter_children
    - update_tree
    - gtk_tree_model_iter_next
    - gtk_tree_store_insert_before
    - fill_row
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void update_tree(struct menu *src, GtkTreeIter * dst)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: menu_is_visible
      Src: /src/xen/xen/tools/kconfig/gconf.c:1361,1
    - Dst: menu_has_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1362,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1363,1
    - Dst: place_node
      Src: /src/xen/xen/tools/kconfig/gconf.c:1364,1
    - Dst: fill_row
      Src: /src/xen/xen/tools/kconfig/gconf.c:1364,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1366,1
    - Dst: menu_get_prompt
      Src: /src/xen/xen/tools/kconfig/gconf.c:1366,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1367,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1368,1
    - Dst: prop_get_type_name
      Src: /src/xen/xen/tools/kconfig/gconf.c:1368,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1369,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1371,1
    - Dst: sym_type_name
      Src: /src/xen/xen/tools/kconfig/gconf.c:1371,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1372,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1373,1
    - Dst: dbg_sym_flags
      Src: /src/xen/xen/tools/kconfig/gconf.c:1373,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1374,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1376,1
    - Dst: gtk_paned_set_position
      Src: /src/xen/xen/tools/kconfig/gconf.c:1388,1
    - Dst: GTK_PANED
      Src: /src/xen/xen/tools/kconfig/gconf.c:1388,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1395,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 39
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1333
    functionDepth: 9
    functionLinenumber: 1333
    functionLinenumberEnd: 1399
    functionName: display_tree
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 6
    functionsReached:
    - menu_has_prompt
    - menu_is_visible
    - menu_get_prompt
    - gtk_paned_set_position
    - place_node
    - dbg_sym_flags
    - display_tree
    - GTK_PANED
    - fill_row
    - prop_get_type_name
    - printf
    - sym_type_name
    linkageType: ''
    returnType: void
    signature: void display_tree(struct menu *menu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:1405,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1407,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1409,1
    - Dst: gtk_tree_view_expand_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:1410,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:1410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1402
    functionDepth: 10
    functionLinenumber: 1402
    functionLinenumberEnd: 1411
    functionName: display_tree_part
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 6
    functionsReached:
    - display_tree
    - GTK_TREE_VIEW
    - gtk_tree_view_expand_all
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void display_tree_part(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gtk_tree_store_clear
      Src: /src/xen/xen/tools/kconfig/gconf.c:1417,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1420,1
    - Dst: gtk_tree_view_expand_all
      Src: /src/xen/xen/tools/kconfig/gconf.c:1421,1
    - Dst: GTK_TREE_VIEW
      Src: /src/xen/xen/tools/kconfig/gconf.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1414
    functionDepth: 10
    functionLinenumber: 1414
    functionLinenumberEnd: 1423
    functionName: display_list
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 3
    functionsReached:
    - display_tree
    - GTK_TREE_VIEW
    - gtk_tree_view_expand_all
    - gtk_tree_store_clear
    linkageType: ''
    returnType: void
    signature: void display_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/gconf.c:1434,1
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/gconf.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - menu
    argTypes:
    - struct menu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1439
    functionName: fixup_rootmenu
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 3
    functionsReached:
    - fixup_rootmenu
    linkageType: ''
    returnType: void
    signature: void fixup_rootmenu(struct menu *menu)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gtk_set_locale
      Src: /src/xen/xen/tools/kconfig/gconf.c:1450,1
    - Dst: gtk_init
      Src: /src/xen/xen/tools/kconfig/gconf.c:1451,1
    - Dst: glade_init
      Src: /src/xen/xen/tools/kconfig/gconf.c:1452,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/gconf.c:1458,1
    - Dst: g_strconcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:1460,1
    - Dst: g_strconcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:1462,1
    - Dst: g_strconcat
      Src: /src/xen/xen/tools/kconfig/gconf.c:1464,1
    - Dst: g_get_current_dir
      Src: /src/xen/xen/tools/kconfig/gconf.c:1464,1
    - Dst: conf_set_message_callback
      Src: /src/xen/xen/tools/kconfig/gconf.c:1473,1
    - Dst: printf
      Src: /src/xen/xen/tools/kconfig/gconf.c:1477,1
    - Dst: exit
      Src: /src/xen/xen/tools/kconfig/gconf.c:1478,1
    - Dst: conf_parse
      Src: /src/xen/xen/tools/kconfig/gconf.c:1484,1
    - Dst: fixup_rootmenu
      Src: /src/xen/xen/tools/kconfig/gconf.c:1485,1
    - Dst: conf_read
      Src: /src/xen/xen/tools/kconfig/gconf.c:1486,1
    - Dst: init_main_window
      Src: /src/xen/xen/tools/kconfig/gconf.c:1489,1
    - Dst: init_tree_model
      Src: /src/xen/xen/tools/kconfig/gconf.c:1490,1
    - Dst: init_left_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1491,1
    - Dst: init_right_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1492,1
    - Dst: display_tree_part
      Src: /src/xen/xen/tools/kconfig/gconf.c:1496,1
    - Dst: display_list
      Src: /src/xen/xen/tools/kconfig/gconf.c:1499,1
    - Dst: display_tree
      Src: /src/xen/xen/tools/kconfig/gconf.c:1502,1
    - Dst: gtk_main
      Src: /src/xen/xen/tools/kconfig/gconf.c:1506,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - ac
    - av
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1443
    functionDepth: 11
    functionLinenumber: 1443
    functionLinenumberEnd: 1509
    functionName: main
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 499
    functionsReached:
    - init_main_window
    - gtk_main
    - display_list
    - getenv
    - init_tree_model
    - display_tree_part
    - g_strconcat
    - g_get_current_dir
    - display_tree
    - init_left_tree
    - gtk_set_locale
    - conf_read
    - glade_init
    - printf
    - exit
    - conf_set_message_callback
    - fixup_rootmenu
    - gtk_init
    - conf_parse
    - init_right_tree
    linkageType: ''
    returnType: int
    signature: int main(int ac, char *av[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conf_get_changed
      Src: /src/xen/xen/tools/kconfig/gconf.c:1513,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:1514,1
    - Dst: gtk_widget_set_sensitive
      Src: /src/xen/xen/tools/kconfig/gconf.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1516
    functionName: conf_changed
    functionSourceFile: /src/xen/xen/tools/kconfig/gconf.c
    functionUses: 1
    functionsReached:
    - conf_get_changed
    - gtk_widget_set_sensitive
    linkageType: ''
    returnType: void
    signature: void conf_changed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_parent
      Src: /src/xen/xen/tools/kconfig/qconf.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ConfigList::parent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 2
    functionsReached:
    - talloc_parent
    linkageType: ''
    returnType: ConfigView
    signature: ConfigView * parent(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigList::updateList
      Src: /src/xen/xen/tools/kconfig/qconf.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: ConfigList::updateListAll
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 2
    functionsReached:
    - ConfigList::updateList
    linkageType: ''
    returnType: void
    signature: void updateListAll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ConfigList::listView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConfigList
    signature: ConfigList * listView()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: children
      Src: /src/xen/xen/tools/kconfig/qconf.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: ConfigList::firstChild
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 1
    functionsReached:
    - children
    linkageType: ''
    returnType: ConfigItem
    signature: ConfigItem * firstChild() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: showColumn
      Src: /src/xen/xen/tools/kconfig/qconf.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - colIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: ConfigList::addColumn
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 2
    functionsReached:
    - showColumn
    linkageType: ''
    returnType: void
    signature: void addColumn(colIdx idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hideColumn
      Src: /src/xen/xen/tools/kconfig/qconf.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - colIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ConfigList::removeColumn
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 1
    functionsReached:
    - hideColumn
    linkageType: ''
    returnType: void
    signature: void removeColumn(colIdx idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::init
      Src: /src/xen/xen/tools/kconfig/qconf.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parent
    - after
    - m
    - v
    argTypes:
    - ConfigList*
    - ConfigItem*
    - struct menu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 8
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: ConfigItem::ConfigItem
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 4
    functionsReached:
    - ConfigItem::init
    linkageType: ''
    returnType: void
    signature: void ConfigItem(ConfigList *parent, ConfigItem *after, struct menu
      *m, bool v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::init
      Src: /src/xen/xen/tools/kconfig/qconf.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parent
    - after
    - m
    - v
    argTypes:
    - ConfigItem*
    - ConfigItem*
    - struct menu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: ConfigItem::ConfigItem
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 4
    functionsReached:
    - ConfigItem::init
    linkageType: ''
    returnType: void
    signature: void ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu
      *m, bool v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::init
      Src: /src/xen/xen/tools/kconfig/qconf.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - parent
    - after
    - v
    argTypes:
    - ConfigList*
    - ConfigItem*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 8
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: ConfigItem::ConfigItem
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 4
    functionsReached:
    - ConfigItem::init
    linkageType: ''
    returnType: void
    signature: void ConfigItem(ConfigList *parent, ConfigItem *after, bool v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parent::treeWidget
      Src: /src/xen/xen/tools/kconfig/qconf.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: ConfigItem::listView
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 3
    functionsReached:
    - Parent::treeWidget
    linkageType: ''
    returnType: ConfigList
    signature: ConfigList * listView() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill_device_model_uid_child
      Src: /src/xen/xen/tools/kconfig/qconf.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: ConfigItem::firstChild
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached:
    - kill_device_model_uid_child
    linkageType: ''
    returnType: ConfigItem
    signature: ConfigItem * firstChild() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parent
      Src: /src/xen/xen/tools/kconfig/qconf.h:157,1
    - Dst: ConfigItem*::child
      Src: /src/xen/xen/tools/kconfig/qconf.h:160,1
    - Dst: ConfigItem*::indexOfChild
      Src: /src/xen/xen/tools/kconfig/qconf.h:160,1
    - Dst: treeWidget
      Src: /src/xen/xen/tools/kconfig/qconf.h:162,1
    - Dst: QTreeWidget*::topLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.h:163,1
    - Dst: QTreeWidget*::indexOfTopLevelItem
      Src: /src/xen/xen/tools/kconfig/qconf.h:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: ConfigItem::nextSibling
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached:
    - ConfigItem*::indexOfChild
    - treeWidget
    - ConfigItem*::child
    - QTreeWidget*::indexOfTopLevelItem
    - parent
    - QTreeWidget*::topLevelItem
    linkageType: ''
    returnType: ConfigItem
    signature: ConfigItem * nextSibling()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ConfigItem::setText
      Src: /src/xen/xen/tools/kconfig/qconf.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - ' text'
    argTypes:
    - colIdx
    - QString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ConfigItem::setText
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 2
    functionsReached:
    - ConfigItem::setText
    linkageType: ''
    returnType: void
    signature: void setText(colIdx idx, const QString& text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libxl_flask_sid_to_context
      Src: /src/xen/xen/tools/kconfig/qconf.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - colIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: ConfigItem::text
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached:
    - libxl_flask_sid_to_context
    linkageType: ''
    returnType: QString
    signature: QString text(colIdx idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Parent::setIcon
      Src: /src/xen/xen/tools/kconfig/qconf.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - icon
    argTypes:
    - colIdx
    - QIcon
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: ConfigItem::setPixmap
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 1
    functionsReached:
    - Parent::setIcon
    linkageType: ''
    returnType: void
    signature: void setPixmap(colIdx idx, const QIcon &icon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: icon
      Src: /src/xen/xen/tools/kconfig/qconf.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - colIdx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: ConfigItem::pixmap
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached:
    - icon
    linkageType: ''
    returnType: QIcon
    signature: QIcon pixmap(colIdx idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: talloc_parent
      Src: /src/xen/xen/tools/kconfig/qconf.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: ConfigLineEdit::parent
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 1
    functionsReached:
    - talloc_parent
    linkageType: ''
    returnType: ConfigView
    signature: ConfigView * parent(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: ConfigView::showName
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool showName(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: ConfigView::showRange
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool showRange(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: ConfigView::showData
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool showData(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    functionName: ConfigInfoView::showDebug
    functionSourceFile: /src/xen/xen/tools/kconfig/qconf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool showDebug(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:21,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:22,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:24,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dialog
    - height
    - width
    - selected
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: print_buttons
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - print_button
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_buttons(WINDOW * dialog, int height, int width, int selected)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:43,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:46,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:48,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:52,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:53,1
    - Dst: draw_shadow
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:55,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:57,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:58,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:60,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:62,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:63,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:65,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:66,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:67,1
    - Dst: print_title
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:69,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:71,1
    - Dst: print_autowrap
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:72,1
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:76,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:79,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:82,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:85,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:86,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:88,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:95,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:99,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:102,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:104,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:107,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:119,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:134,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:137,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:140,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:142,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:143,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:149,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:152,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:155,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:158,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:160,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:168,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:171,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:174,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:177,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:179,1
    - Dst: isprint
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:185,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:187,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:205,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:208,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:211,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:213,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:214,1
    - Dst: flash
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:216,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:224,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:228,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:235,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:239,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:240,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:241,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:245,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:255,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:259,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:263,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:264,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:265,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:271,1
    - Dst: on_key_esc
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:278,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:281,1
    - Dst: on_key_resize
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:282,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c:287,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 227
    argCount: 5
    argNames:
    - title
    - prompt
    - height
    - width
    - init
    argTypes:
    - char*
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 289
    functionName: dialog_inputbox
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/inputbox.c
    functionUses: 8
    functionsReached:
    - wrefresh
    - delwin
    - print_title
    - waddstr
    - on_key_esc
    - strlen
    - on_key_resize
    - wattrset
    - newwin
    - draw_shadow
    - isprint
    - strcpy
    - getmaxy
    - waddch
    - flash
    - getmaxx
    - mvwaddch
    - wmove
    - draw_box
    - getyx
    - keypad
    - print_autowrap
    - print_buttons
    - wgetch
    linkageType: ''
    returnType: int
    signature: "int dialog_inputbox(const char *title, const char *prompt, int height,
      int width,\n\t\t    const char *init)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_page
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:30,1
    - Dst: print_position
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:31,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:32,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - dialog
    - box
    - boxh
    - boxw
    - cur_y
    - cur_x
    - update_text
    - data
    argTypes:
    - WINDOW*
    - WINDOW*
    - int
    - int
    - int
    - int
    - update_text_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: refresh_text_box
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - wmove
    - print_position
    - print_page
    linkageType: ''
    returnType: void
    signature: "void refresh_text_box(WINDOW *dialog, WINDOW *box, int boxh, int boxw,\n\t\t\t
      \    int cur_y, int cur_x, update_text_fn update_text,\n\t\t\t     void *data)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:63,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:69,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:88,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:89,1
    - Dst: draw_shadow
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:91,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:93,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:94,1
    - Dst: subwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:99,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:100,1
    - Dst: wbkgdset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:101,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:103,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:106,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:109,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:110,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:112,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:113,1
    - Dst: wbkgdset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:114,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:115,1
    - Dst: print_title
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:117,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:119,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:120,1
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:121,1
    - Dst: attr_clear
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:124,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:125,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:129,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:144,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:154,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:155,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:156,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:165,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:166,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:175,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:176,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:185,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:186,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:196,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:211,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:212,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:222,1
    - Dst: refresh_text_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:223,1
    - Dst: on_key_esc
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:227,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:231,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:232,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:233,1
    - Dst: on_key_resize
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:234,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:245,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:246,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:252,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:253,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 168
    argCount: 9
    argNames:
    - title
    - tbuf
    - initial_height
    - initial_width
    - keys
    - _vscroll
    - _hscroll
    - update_text
    - data
    argTypes:
    - char*
    - char*
    - int
    - int
    - int*
    - int*
    - int*
    - update_text_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 261
    functionName: dialog_textbox
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 1
    functionsReached:
    - delwin
    - print_title
    - wbkgdset
    - strchr
    - on_key_esc
    - strlen
    - getmaxyx
    - on_key_resize
    - subwin
    - get_line
    - wattrset
    - newwin
    - draw_shadow
    - refresh_text_box
    - getmaxy
    - back_lines
    - waddch
    - wnoutrefresh
    - print_button
    - getmaxx
    - mvwaddch
    - draw_box
    - getyx
    - keypad
    - attr_clear
    - wgetch
    linkageType: ''
    returnType: int
    signature: "int dialog_textbox(const char *title, char *tbuf, int initial_height,\n\t\t
      \  int initial_width, int *keys, int *_vscroll, int *_hscroll,\n\t\t   update_text_fn
      update_text, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 294
    functionName: back_lines
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void back_lines(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:308,1
    - Dst: back_lines
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:310,1
    - Dst: update_text
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:311,1
    - Dst: print_line
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:316,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - win
    - height
    - width
    - update_text
    - data
    argTypes:
    - WINDOW*
    - int
    - int
    - update_text_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 323
    functionName: print_page
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 1
    functionsReached:
    - get_line
    - update_text
    - back_lines
    - wnoutrefresh
    - print_line
    linkageType: ''
    returnType: void
    signature: "void print_page(WINDOW *win, int height, int width, update_text_fn\n\t\t
      \      update_text, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_line
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:332,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:333,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:333,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:334,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:335,1
    - Dst: waddnstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:336,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:336,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:336,1
    - Dst: getcurx
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:341,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:344,1
    - Dst: wclrtoeol
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - win
    - row
    - width
    argTypes:
    - WINDOW*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 349
    functionName: print_line
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 1
    functionsReached:
    - get_line
    - getcurx
    - wclrtoeol
    - waddch
    - waddnstr
    - strlen
    - MIN
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_line(WINDOW * win, int row, int width)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 381
    functionName: get_line
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_line(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:390,1
    - Dst: wbkgdset
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:391,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:392,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:393,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:393,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:393,1
    - Dst: wprintw
      Src: /src/xen/xen/tools/kconfig/lxdialog/textbox.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - win
    argTypes:
    - WINDOW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: print_position
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/textbox.c
    functionUses: 1
    functionsReached:
    - getmaxy
    - wattrset
    - wbkgdset
    - wprintw
    - strlen
    - getmaxx
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_position(WINDOW * win)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 49
    functionName: set_mono_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_mono_theme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dialog
    - ','
    - f
    - ','
    - b
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: DLG_COLOR
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLG_COLOR(dialog, f, b, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:60,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:61,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:62,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:63,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:64,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:65,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:66,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:67,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:68,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:69,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:70,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:71,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:72,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:73,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:74,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:75,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:76,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:77,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:78,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:79,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:80,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:81,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:82,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:83,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:84,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:85,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:86,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:87,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: set_classic_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - DLG_COLOR
    linkageType: ''
    returnType: void
    signature: void set_classic_theme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:93,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:94,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:95,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:96,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:97,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:99,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:100,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:101,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:102,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:103,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:104,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:106,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:107,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:109,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:110,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:111,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:113,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:115,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:116,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:118,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:119,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:121,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:122,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:123,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:124,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:126,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:127,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:129,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: set_blackbg_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - DLG_COLOR
    linkageType: ''
    returnType: void
    signature: void set_blackbg_theme(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_classic_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:135,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:136,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:137,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:138,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:139,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:140,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:141,1
    - Dst: DLG_COLOR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: set_bluetitle_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - set_classic_theme
    - DLG_COLOR
    linkageType: ''
    returnType: void
    signature: void set_bluetitle_theme(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_bluetitle_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:153,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:154,1
    - Dst: set_classic_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:155,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:156,1
    - Dst: set_bluetitle_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:157,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:158,1
    - Dst: set_blackbg_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:159,1
    - Dst: strcmp
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - theme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 164
    functionName: set_theme
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - set_bluetitle_theme
    - strcmp
    - set_classic_theme
    - set_blackbg_theme
    linkageType: ''
    returnType: int
    signature: int set_theme(const char *theme)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_pair
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:171,1
    - Dst: COLOR_PAIR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:173,1
    - Dst: COLOR_PAIR
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - color
    argTypes:
    - struct dialog_color*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: init_one_color
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - init_pair
    - COLOR_PAIR
    linkageType: ''
    returnType: void
    signature: void init_one_color(struct dialog_color *color)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:180,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:181,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:182,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:183,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:184,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:185,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:186,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:187,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:188,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:189,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:190,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:191,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:192,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:193,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:194,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:195,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:196,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:197,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:198,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:199,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:200,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:201,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:202,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:203,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:204,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:205,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:206,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:207,1
    - Dst: init_one_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 209
    functionName: init_dialog_colors
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - init_one_color
    linkageType: ''
    returnType: void
    signature: void init_dialog_colors(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:218,1
    - Dst: has_colors
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:219,1
    - Dst: start_color
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:220,1
    - Dst: init_dialog_colors
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:221,1
    - Dst: set_mono_theme
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - theme
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 4
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: color_setup
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - set_theme
    - init_dialog_colors
    - start_color
    - set_mono_theme
    - has_colors
    linkageType: ''
    returnType: void
    signature: void color_setup(const char *theme)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:233,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:235,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:237,1
    - Dst: touchwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - win
    - height
    - width
    - attr
    argTypes:
    - WINDOW*
    - int
    - int
    - chtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: attr_clear
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached:
    - waddch
    - wattrset
    - touchwin
    - wmove
    linkageType: ''
    returnType: void
    signature: void attr_clear(WINDOW * win, int height, int width, chtype attr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:246,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:247,1
    - Dst: attr_clear
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:249,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:255,1
    - Dst: mvwaddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:256,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:260,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:263,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:266,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:267,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:272,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:277,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:281,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:282,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:285,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:288,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:294,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 297
    functionName: dialog_clear
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 8
    functionsReached:
    - getmaxy
    - wattrset
    - attr_clear
    - mvwaddstr
    - waddstr
    - waddch
    - wnoutrefresh
    - strlen
    - getmaxx
    - wmove
    linkageType: ''
    returnType: void
    signature: void dialog_clear(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initscr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:306,1
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:309,1
    - Dst: getmaxyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:311,1
    - Dst: endwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:313,1
    - Dst: color_setup
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:318,1
    - Dst: getenv
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:318,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:320,1
    - Dst: cbreak
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:321,1
    - Dst: noecho
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:322,1
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - backtitle
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 326
    functionName: init_dialog
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached:
    - noecho
    - cbreak
    - getyx
    - color_setup
    - keypad
    - endwin
    - dialog_clear
    - getmaxyx
    - getenv
    - initscr
    linkageType: ''
    returnType: int
    signature: int init_dialog(const char *backtitle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - backtitle
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: set_dialog_backtitle
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dialog_backtitle(const char *backtitle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subtitles
    argTypes:
    - struct subtitle_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 336
    functionName: set_dialog_subtitles
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dialog_subtitles(struct subtitle_list *subtitles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: move
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:344,1
    - Dst: refresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:345,1
    - Dst: endwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: end_dialog
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached:
    - refresh
    - move
    - endwin
    linkageType: ''
    returnType: void
    signature: void end_dialog(int x, int y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:355,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:355,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:356,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:357,1
    - Dst: mvwaddnstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:358,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dialog
    - title
    - width
    argTypes:
    - WINDOW*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 361
    functionName: print_title
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - mvwaddnstr
    - wattrset
    - waddch
    - strlen
    - MIN
    - mvwaddch
    linkageType: ''
    returnType: void
    signature: void print_title(WINDOW *dialog, const char *title, int width)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:375,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:377,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:380,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:381,1
    - Dst: strpbrk
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:388,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:399,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:402,1
    - Dst: strpbrk
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:403,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:408,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:409,1
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:410,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 5
    argNames:
    - win
    - prompt
    - width
    - y
    - x
    argTypes:
    - WINDOW*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 429
    functionName: print_autowrap
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached:
    - getyx
    - strpbrk
    - waddstr
    - strcpy
    - strlen
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_autowrap(WINDOW * win, const char *prompt, int width, int
      y, int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:438,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:439,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:441,1
    - Dst: strspn
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:442,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:444,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:447,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:448,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:450,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:451,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:453,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:454,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:456,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - win
    - label
    - y
    - x
    - selected
    argTypes:
    - WINDOW*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 458
    functionName: print_button
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - wattrset
    - strspn
    - waddstr
    - waddch
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_button(WINDOW * win, const char *label, int y, int x, int
      selected)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:469,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:471,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:474,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:476,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:478,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:480,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:482,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:484,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:486,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:488,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:490,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 7
    argNames:
    - win
    - y
    - x
    - height
    - width
    - box
    - border
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    - int
    - chtype
    - chtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 492
    functionName: draw_box
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - waddch
    - wattrset
    - wmove
    linkageType: ''
    returnType: void
    signature: "void draw_box(WINDOW * win, int y, int x, int height, int width,\n\t
      chtype box, chtype border)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_colors
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:502,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:503,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:504,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:506,1
    - Dst: winch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:506,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:508,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:509,1
    - Dst: winch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:509,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:510,1
    - Dst: winch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:510,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - win
    - y
    - x
    - height
    - width
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 514
    functionName: draw_shadow
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - wattrset
    - waddch
    - wnoutrefresh
    - winch
    - has_colors
    - wmove
    linkageType: ''
    returnType: void
    signature: void draw_shadow(WINDOW * win, int y, int x, int height, int width)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:523,1
    - Dst: tolower
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:524,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:526,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:528,1
    - Dst: isalpha
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:531,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - string
    - exempt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: first_alpha
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - strchr
    - isalpha
    - tolower
    - strlen
    linkageType: ''
    returnType: int
    signature: int first_alpha(const char *string, const char *exempt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodelay
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:553,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:554,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:555,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:556,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:558,1
    - Dst: nodelay
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:560,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:561,1
    - Dst: ungetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:565,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - win
    argTypes:
    - WINDOW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 568
    functionName: on_key_esc
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - keypad
    - wgetch
    - ungetch
    - nodelay
    linkageType: ''
    returnType: int
    signature: int on_key_esc(WINDOW *win)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dialog_clear
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: on_key_resize
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - dialog_clear
    linkageType: ''
    returnType: int
    signature: int on_key_resize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: item_reset
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void item_reset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:596,1
    - Dst: memset
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:603,1
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:605,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:606,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 608
    functionName: item_make
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 4
    functionsReached:
    - va_start
    - malloc
    - vsnprintf
    - memset
    - va_end
    linkageType: ''
    returnType: void
    signature: void item_make(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:615,1
    - Dst: va_start
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:617,1
    - Dst: vsnprintf
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:618,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:618,1
    - Dst: va_end
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 622
    functionName: item_add_str
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - va_start
    - va_end
    - vsnprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void item_add_str(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: item_set_tag
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item_set_tag(char tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 631
    functionName: item_set_data
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item_set_data(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: item_set_selected
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void item_set_selected(int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: item_foreach
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:640,1
    - Dst: item_is_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: item_activate_selected
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached:
    - item_is_selected
    - item_foreach
    linkageType: ''
    returnType: int
    signature: int item_activate_selected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: item_data
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *item_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: item_tag
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char item_tag(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 664
    functionName: item_count
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: item_foreach
      Src: /src/xen/xen/tools/kconfig/lxdialog/util.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: item_set
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached:
    - item_foreach
    linkageType: ''
    returnType: void
    signature: void item_set(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: item_n
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_n(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: item_str
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *item_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: item_is_selected
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_is_selected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 700
    functionName: item_is_tag
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int item_is_tag(char tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:19,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:20,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:22,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dialog
    - height
    - width
    - selected
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 24
    functionName: print_buttons
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/yesno.c
    functionUses: 1
    functionsReached:
    - wrefresh
    - print_button
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_buttons(WINDOW * dialog, int height, int width, int selected)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:35,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:37,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:41,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:42,1
    - Dst: draw_shadow
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:44,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:46,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:47,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:49,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:51,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:52,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:54,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:55,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:56,1
    - Dst: print_title
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:58,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:60,1
    - Dst: print_autowrap
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:61,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:63,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:66,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:70,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:74,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:82,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:83,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:87,1
    - Dst: on_key_esc
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:90,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:93,1
    - Dst: on_key_resize
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:94,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/yesno.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 4
    argNames:
    - title
    - prompt
    - height
    - width
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 101
    functionName: dialog_yesno
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/yesno.c
    functionUses: 1
    functionsReached:
    - getmaxy
    - wrefresh
    - wattrset
    - newwin
    - draw_shadow
    - delwin
    - draw_box
    - print_title
    - keypad
    - waddch
    - on_key_esc
    - print_autowrap
    - print_buttons
    - getmaxx
    - wgetch
    - on_key_resize
    - mvwaddch
    linkageType: ''
    returnType: int
    signature: int dialog_yesno(const char *title, const char *prompt, int height,
      int width)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:21,1
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:23,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:23,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:27,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:28,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:30,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:32,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:33,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:35,1
    - Dst: wprintw
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:36,1
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:36,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:38,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:39,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:40,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:41,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:43,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:44,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - win
    - choice
    - selected
    argTypes:
    - WINDOW*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 47
    functionName: print_item
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/checklist.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - wattrset
    - item_str
    - item_is_tag
    - free
    - malloc
    - strncpy
    - waddch
    - waddstr
    - wprintw
    - mvwaddch
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_item(WINDOW * win, int choice, int selected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:55,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:58,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:59,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:60,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:62,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:63,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:64,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:65,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:66,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:70,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:73,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:74,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:75,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:77,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:78,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:79,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:80,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 7
    argNames:
    - win
    - choice
    - item_no
    - scroll
    - y
    - x
    - height
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 83
    functionName: print_arrows
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/checklist.c
    functionUses: 0
    functionsReached:
    - waddstr
    - waddch
    - wattrset
    - wmove
    linkageType: ''
    returnType: void
    signature: "void print_arrows(WINDOW * win, int choice, int item_no, int scroll,\n\t
      \    int y, int x, int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:93,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:94,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:96,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dialog
    - height
    - width
    - selected
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: print_buttons
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/checklist.c
    functionUses: 2
    functionsReached:
    - wrefresh
    - print_button
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_buttons(WINDOW * dialog, int height, int width, int selected)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:113,1
    - Dst: item_n
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:114,1
    - Dst: item_is_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:115,1
    - Dst: item_n
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:116,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:122,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:124,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:127,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:127,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:130,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:131,1
    - Dst: draw_shadow
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:133,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:135,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:136,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:138,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:140,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:141,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:143,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:144,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:145,1
    - Dst: print_title
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:147,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:149,1
    - Dst: print_autowrap
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:150,1
    - Dst: subwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:157,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:160,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:163,1
    - Dst: item_foreach
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:168,1
    - Dst: MAX
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:169,1
    - Dst: strlen
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:169,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:169,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:170,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:182,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:183,1
    - Dst: print_arrows
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:186,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:186,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:189,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:191,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:192,1
    - Dst: doupdate
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:193,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:196,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:199,1
    - Dst: toupper
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:200,1
    - Dst: toupper
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:200,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:200,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:213,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:214,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:215,1
    - Dst: wscrl
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:216,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:217,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:220,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:221,1
    - Dst: print_arrows
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:222,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:222,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:225,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:226,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:233,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:238,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:239,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:242,1
    - Dst: wscrl
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:243,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:244,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:247,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:248,1
    - Dst: print_arrows
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:250,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:250,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:253,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:254,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:262,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:263,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:266,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:267,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:268,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:269,1
    - Dst: item_foreach
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:283,1
    - Dst: item_set_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:284,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:285,1
    - Dst: item_set_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:286,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:287,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:288,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:296,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:297,1
    - Dst: on_key_esc
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:304,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:307,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:308,1
    - Dst: on_key_resize
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:309,1
    - Dst: doupdate
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:314,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:316,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:317,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 157
    argCount: 5
    argNames:
    - title
    - prompt
    - height
    - width
    - list_height
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 319
    functionName: dialog_checklist
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/checklist.c
    functionUses: 1
    functionsReached:
    - wrefresh
    - delwin
    - print_title
    - print_arrows
    - item_foreach
    - on_key_esc
    - strlen
    - on_key_resize
    - subwin
    - wattrset
    - newwin
    - draw_shadow
    - wscrl
    - scrollok
    - MAX
    - getmaxy
    - item_is_tag
    - item_is_selected
    - waddch
    - wnoutrefresh
    - doupdate
    - toupper
    - getmaxx
    - MIN
    - mvwaddch
    - item_n
    - print_item
    - item_str
    - draw_box
    - item_set
    - keypad
    - print_autowrap
    - print_buttons
    - wgetch
    - item_set_selected
    - item_count
    linkageType: ''
    returnType: int
    signature: "int dialog_checklist(const char *title, const char *prompt, int height,\n\t\t
      \    int width, int list_height)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: item_is_tag
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:113,1
    - Dst: item_n
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:114,1
    - Dst: item_is_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:115,1
    - Dst: item_n
      Src: /src/xen/xen/tools/kconfig/lxdialog/checklist.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: item_foreach
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/checklist.c
    functionUses: 3
    functionsReached:
    - item_is_tag
    - item_is_selected
    - item_n
    linkageType: ''
    returnType: void
    signature: void item_foreach()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:57,1
    - Dst: strncpy
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:59,1
    - Dst: first_alpha
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:61,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:64,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:65,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:70,1
    - Dst: wclrtoeol
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:73,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:75,1
    - Dst: mvwaddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:76,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:78,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:80,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:83,1
    - Dst: free
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:85,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - win
    - item
    - line_y
    - selected
    - hotkey
    argTypes:
    - WINDOW*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 87
    functionName: do_print_item
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 0
    functionsReached:
    - wrefresh
    - wattrset
    - wclrtoeol
    - free
    - mvwaddstr
    - malloc
    - strncpy
    - first_alpha
    - waddch
    - mvwaddch
    - wmove
    linkageType: ''
    returnType: void
    signature: "void do_print_item(WINDOW * win, const char *item, int line_y,\n\t\t\t
      \ int selected, int hotkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - index
    - ','
    - choice
    - ','
    - selected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: print_item
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: print_item(index, choice, selected)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getyx
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:103,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:105,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:108,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:109,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:110,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:112,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:113,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:114,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:115,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:116,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:120,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:121,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:124,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:125,1
    - Dst: waddstr
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:126,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:128,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:129,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:130,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:131,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:132,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:135,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 6
    argNames:
    - win
    - item_no
    - scroll
    - y
    - x
    - height
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 137
    functionName: print_arrows
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 1
    functionsReached:
    - wrefresh
    - wattrset
    - getyx
    - waddstr
    - waddch
    - wmove
    linkageType: ''
    returnType: void
    signature: "void print_arrows(WINDOW * win, int item_no, int scroll, int y, int
      x,\n\t\t\t int height)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:147,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:148,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:149,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:150,1
    - Dst: print_button
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:151,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:153,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - win
    - height
    - width
    - selected
    argTypes:
    - WINDOW*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: print_buttons
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 3
    functionsReached:
    - wrefresh
    - print_button
    - wmove
    linkageType: ''
    returnType: void
    signature: void print_buttons(WINDOW * win, int height, int width, int selected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:161,1
    - Dst: wscrl
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:162,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:163,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - win
    - scroll
    - n
    argTypes:
    - WINDOW*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: do_scroll
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 0
    functionsReached:
    - wscrl
    - wrefresh
    - scrollok
    linkageType: ''
    returnType: void
    signature: void do_scroll(WINDOW *win, int *scroll, int n)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:181,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:182,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:190,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:190,1
    - Dst: getmaxx
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:193,1
    - Dst: getmaxy
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:194,1
    - Dst: draw_shadow
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:196,1
    - Dst: newwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:198,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:199,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:201,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:203,1
    - Dst: mvwaddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:204,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:206,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:207,1
    - Dst: wbkgdset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:208,1
    - Dst: waddch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:209,1
    - Dst: print_title
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:211,1
    - Dst: wattrset
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:213,1
    - Dst: print_autowrap
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:214,1
    - Dst: subwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:221,1
    - Dst: keypad
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:223,1
    - Dst: draw_box
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:226,1
    - Dst: item_foreach
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:235,1
    - Dst: item_data
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:236,1
    - Dst: item_n
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:237,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:241,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:248,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:249,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:257,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:260,1
    - Dst: print_arrows
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:262,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:262,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:265,1
    - Dst: wmove
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:266,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:267,1
    - Dst: wgetch
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:270,1
    - Dst: isalpha
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:272,1
    - Dst: tolower
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:273,1
    - Dst: strchr
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:275,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:279,1
    - Dst: first_alpha
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:280,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:280,1
    - Dst: tolower
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:281,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:281,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:286,1
    - Dst: first_alpha
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:287,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:287,1
    - Dst: tolower
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:288,1
    - Dst: item_str
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:288,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:293,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:299,1
    - Dst: do_scroll
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:304,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:306,1
    - Dst: MAX
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:308,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:311,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:314,1
    - Dst: do_scroll
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:316,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:318,1
    - Dst: MIN
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:321,1
    - Dst: scrollok
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:324,1
    - Dst: do_scroll
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:327,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:328,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:337,1
    - Dst: do_scroll
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:338,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:339,1
    - Dst: print_item
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:349,1
    - Dst: print_arrows
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:351,1
    - Dst: item_count
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:351,1
    - Dst: wnoutrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:354,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:355,1
    - Dst: print_buttons
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:367,1
    - Dst: wrefresh
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:368,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:382,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:383,1
    - Dst: item_set
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:384,1
    - Dst: item_set_selected
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:385,1
    - Dst: on_key_esc
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:412,1
    - Dst: on_key_resize
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:415,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:416,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:417,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:421,1
    - Dst: delwin
      Src: /src/xen/xen/tools/kconfig/lxdialog/menubox.c:422,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 189
    argCount: 4
    argNames:
    - title
    - prompt
    - selected
    - s_scroll
    argTypes:
    - char*
    - char*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 424
    functionName: dialog_menu
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/menubox.c
    functionUses: 1
    functionsReached:
    - wrefresh
    - delwin
    - print_title
    - wbkgdset
    - print_arrows
    - strchr
    - item_foreach
    - on_key_esc
    - do_scroll
    - on_key_resize
    - subwin
    - wattrset
    - isalpha
    - newwin
    - draw_shadow
    - item_data
    - scrollok
    - MAX
    - getmaxy
    - tolower
    - waddch
    - wnoutrefresh
    - first_alpha
    - getmaxx
    - MIN
    - item_n
    - mvwaddch
    - print_item
    - wmove
    - item_str
    - draw_box
    - item_set
    - keypad
    - print_autowrap
    - print_buttons
    - wgetch
    - item_set_selected
    - item_count
    linkageType: ''
    returnType: int
    signature: "int dialog_menu(const char *title, const char *prompt,\n\t\tconst
      void *selected, int *s_scroll)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - params
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: TR
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/dialog.h
    functionUses: 100
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TR(params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MIN
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/dialog.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MAX
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/dialog.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: item_foreach
    functionSourceFile: /src/xen/xen/tools/kconfig/lxdialog/dialog.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: item_foreach()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: UINT64_C
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_C(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: UINT64_C
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_C(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - out
    - ','
    - int_key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: aes_encryption
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes_encryption(in,out,int_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - int_key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: aes_key_setup
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes_key_setup(key,int_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - in
    - ','
    - out
    - ','
    - int_key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: aes_encryption
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes_encryption(in,out,int_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - user_key
    - ','
    - int_key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: aes_key_setup
    functionSourceFile: /src/xen/xen/include/crypto/vmac.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: aes_key_setup(user_key,int_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - physid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: xen_vcpu_physid_to_x86_apicid
    functionSourceFile: /src/xen/xen/include/public/vcpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_vcpu_physid_to_x86_apicid(physid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - physid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: xen_vcpu_physid_to_x86_acpiid
    functionSourceFile: /src/xen/xen/include/public/vcpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_vcpu_physid_to_x86_acpiid(physid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: __xen_mk_uint
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __xen_mk_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: __xen_mk_ulong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __xen_mk_ulong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: __xen_mk_ullong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __xen_mk_ullong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: xen_mk_uint
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: xen_mk_ulong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_ulong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: xen_mk_ullong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_ullong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: xen_mk_uint
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_uint(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: xen_mk_ulong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_ulong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: xen_mk_ullong
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mk_ullong(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e1
    - ','
    - e2
    - ','
    - e3
    - ','
    - e4
    - ','
    - e5
    - ','
    - e6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1005
    functionName: XEN_DEFINE_UUID_
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DEFINE_UUID_(a, b, c, d, e1, e2, e3, e4, e5, e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e1
    - ','
    - e2
    - ','
    - e3
    - ','
    - e4
    - ','
    - e5
    - ','
    - e6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1009
    functionName: XEN_DEFINE_UUID
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e1
    - ','
    - e2
    - ','
    - e3
    - ','
    - e4
    - ','
    - e5
    - ','
    - e6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1012
    functionName: XEN_DEFINE_UUID
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DEFINE_UUID(a, b, c, d, e1, e2, e3, e4, e5, e6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: XEN_GUEST_HANDLE_64
    functionSourceFile: /src/xen/xen/include/public/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_64(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: __DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: __XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_PARAM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: set_xen_guest_handle_raw
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_raw(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: set_xen_guest_handle
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n64
    - ','
    - n32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: __DECL_REG
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG(n64, n32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n64
    - ','
    - n32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: __DECL_REG
    functionSourceFile: /src/xen/xen/include/public/arch-arm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG(n64, n32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: XEN_DOMCTL_GRANT_version
    functionSourceFile: /src/xen/xen/include/public/domctl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DOMCTL_GRANT_version(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: XEN_DOMCTL_ALTP2M_mode
    functionSourceFile: /src/xen/xen/include/public/domctl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DOMCTL_ALTP2M_mode(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: __DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: __XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_PARAM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: set_xen_guest_handle_raw
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_raw(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: set_xen_guest_handle
    functionSourceFile: /src/xen/xen/include/public/arch-riscv.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: XENMEMF_address_bits
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEMF_address_bits(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: XENMEMF_get_address_bits
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEMF_get_address_bits(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XENMEMF_node
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEMF_node(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: XENMEMF_get_node
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEMF_get_node(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: XENMEMF_exact_node
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEMF_exact_node(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: XENMEM_SHARING_OP_FIELD_MAKE_GREF
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEM_SHARING_OP_FIELD_MAKE_GREF(field, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: XENMEM_SHARING_OP_FIELD_IS_GREF
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEM_SHARING_OP_FIELD_IS_GREF(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: XENMEM_SHARING_OP_FIELD_GET_GREF
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEM_SHARING_OP_FIELD_GET_GREF(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: XENMEM_resource_ioreq_server_frame_ioreq
    functionSourceFile: /src/xen/xen/include/public/memory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENMEM_resource_ioreq_server_frame_ioreq(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: __DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: __XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_PARAM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: set_xen_guest_handle_raw
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_raw(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: set_xen_guest_handle
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - hnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: get_xen_guest_handle
    functionSourceFile: /src/xen/xen/include/public/arch-ppc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_xen_guest_handle(val, hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: TRC_HD_TO_EVENT
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_HD_TO_EVENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: TRC_HD_INCLUDES_CYCLE_COUNT
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_HD_INCLUDES_CYCLE_COUNT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: TRC_HD_EXTRA
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_HD_EXTRA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: TRC_SCHED_CLASS_EVT
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_SCHED_CLASS_EVT(_c, _e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: TRC_PV_HYPERCALL_V2_ARG_32
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_PV_HYPERCALL_V2_ARG_32(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: TRC_PV_HYPERCALL_V2_ARG_64
    functionSourceFile: /src/xen/xen/include/public/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRC_PV_HYPERCALL_V2_ARG_64(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XEN_ERRNO
    functionSourceFile: /src/xen/xen/include/public/errno.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_ERRNO(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: XEN_ERRNO
    functionSourceFile: /src/xen/xen/include/public/errno.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_ERRNO(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: XEN_VSCSIIF_RSLT_STATUS
    functionSourceFile: /src/xen/xen/include/public/io/vscsiif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_VSCSIIF_RSLT_STATUS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: XEN_VSCSIIF_RSLT_HOST
    functionSourceFile: /src/xen/xen/include/public/io/vscsiif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_VSCSIIF_RSLT_HOST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: XENKBD_IN_RING
    functionSourceFile: /src/xen/xen/include/public/io/kbdif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENKBD_IN_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: XENKBD_IN_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/kbdif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENKBD_IN_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: XENKBD_OUT_RING
    functionSourceFile: /src/xen/xen/include/public/io/kbdif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENKBD_OUT_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: XENKBD_OUT_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/kbdif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENKBD_OUT_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: xen_mb
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: xen_rmb
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: xen_wmb
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: __RD2
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RD2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: __RD4
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RD4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: __RD8
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RD8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: __RD16
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RD16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: __RD32
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RD32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: __CONST_RING_SIZE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __CONST_RING_SIZE(_s, _sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _s
    - ','
    - _sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: __RING_SIZE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RING_SIZE(_s, _sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __name
    - ','
    - __req_t
    - ','
    - __rsp_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: DEFINE_RING_TYPES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RING_TYPES(__name, __req_t, __rsp_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: _sring
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __name
    signature: struct __name _sring
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: _front_ring
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __name
    signature: struct __name _front_ring
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: _back_ring
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __name
    signature: struct __name _back_ring
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: SHARED_RING_INIT
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_RING_INIT(_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _r
    - ','
    - _s
    - ','
    - _i
    - ','
    - __size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: FRONT_RING_ATTACH
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRONT_RING_ATTACH(_r, _s, _i, __size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _r
    - ','
    - _s
    - ','
    - __size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: FRONT_RING_INIT
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRONT_RING_INIT(_r, _s, __size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - s
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: XEN_FRONT_RING_INIT
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_FRONT_RING_INIT(r, s, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _r
    - ','
    - _s
    - ','
    - _i
    - ','
    - __size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: BACK_RING_ATTACH
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACK_RING_ATTACH(_r, _s, _i, __size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _r
    - ','
    - _s
    - ','
    - __size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: BACK_RING_INIT
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BACK_RING_INIT(_r, _s, __size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: RING_SIZE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_SIZE(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: RING_FREE_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_FREE_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: RING_FULL
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_FULL(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: XEN_RING_NR_UNCONSUMED_RESPONSES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_RING_NR_UNCONSUMED_RESPONSES(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: XEN_RING_NR_UNCONSUMED_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_RING_NR_UNCONSUMED_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: XEN_RING_NR_UNCONSUMED_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_RING_NR_UNCONSUMED_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: RING_HAS_UNCONSUMED_RESPONSES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_HAS_UNCONSUMED_RESPONSES(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: RING_HAS_UNCONSUMED_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_HAS_UNCONSUMED_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: RING_HAS_UNCONSUMED_RESPONSES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_HAS_UNCONSUMED_RESPONSES(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: RING_HAS_UNCONSUMED_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_HAS_UNCONSUMED_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: RING_GET_REQUEST
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_GET_REQUEST(_r, _idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: RING_GET_RESPONSE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_GET_RESPONSE(_r, _idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - r
    - ','
    - idx
    - ','
    - dest
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: RING_COPY_
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_COPY_(type, r, idx, dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - idx
    - ','
    - req
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: RING_COPY_REQUEST
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_COPY_REQUEST(r, idx, req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - r
    - ','
    - idx
    - ','
    - rsp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: RING_COPY_RESPONSE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_COPY_RESPONSE(r, idx, rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _cons
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: RING_REQUEST_CONS_OVERFLOW
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_REQUEST_CONS_OVERFLOW(_r, _cons)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _prod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: RING_REQUEST_PROD_OVERFLOW
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_REQUEST_PROD_OVERFLOW(_r, _prod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _prod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: RING_RESPONSE_PROD_OVERFLOW
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_RESPONSE_PROD_OVERFLOW(_r, _prod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: RING_PUSH_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_PUSH_REQUESTS(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: RING_PUSH_RESPONSES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_PUSH_RESPONSES(_r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _notify
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: RING_PUSH_REQUESTS_AND_CHECK_NOTIFY
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(_r, _notify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _notify
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: RING_PUSH_RESPONSES_AND_CHECK_NOTIFY
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(_r, _notify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _work_to_do
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: RING_FINAL_CHECK_FOR_REQUESTS
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_FINAL_CHECK_FOR_REQUESTS(_r, _work_to_do)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _r
    - ','
    - _work_to_do
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: RING_FINAL_CHECK_FOR_RESPONSES
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RING_FINAL_CHECK_FOR_RESPONSES(_r, _work_to_do)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: XEN_FLEX_RING_SIZE
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_FLEX_RING_SIZE(order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 475
    functionName: DEFINE_XEN_FLEX_RING
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_FLEX_RING(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: DEFINE_XEN_FLEX_RING_AND_INTF
    functionSourceFile: /src/xen/xen/include/public/io/ring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_FLEX_RING_AND_INTF(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: XSD_ERROR
    functionSourceFile: /src/xen/xen/include/public/io/xs_wire.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSD_ERROR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: MASK_XENSTORE_IDX
    functionSourceFile: /src/xen/xen/include/public/io/xs_wire.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_XENSTORE_IDX(idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - key
    - keylen
    - buf
    - buflen
    argTypes:
    - uint8_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 338
    functionName: xen_netif_toeplitz_hash
    functionSourceFile: /src/xen/xen/include/public/io/netif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t xen_netif_toeplitz_hash(const uint8_t *key,\n                                        unsigned
      int keylen,\n                                        const uint8_t *buf,\n                                        unsigned
      int buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1342
    functionDepth: 0
    functionLinenumber: 1342
    functionLinenumberEnd: 1344
    functionName: XENCAMERA_IN_RING
    functionSourceFile: /src/xen/xen/include/public/io/cameraif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENCAMERA_IN_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1346
    functionName: XENCAMERA_IN_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/cameraif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENCAMERA_IN_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - idx
    - ','
    - ring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: MASK_XENCONS_IDX
    functionSourceFile: /src/xen/xen/include/public/io/console.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_XENCONS_IDX(idx, ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    functionName: XENSND_IN_RING
    functionSourceFile: /src/xen/xen/include/public/io/sndif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENSND_IN_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: XENSND_IN_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/sndif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENSND_IN_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: XENDISPL_IN_RING
    functionSourceFile: /src/xen/xen/include/public/io/displif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENDISPL_IN_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: XENDISPL_IN_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/displif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENDISPL_IN_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: XENFB_IN_RING
    functionSourceFile: /src/xen/xen/include/public/io/fbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENFB_IN_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: XENFB_IN_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/fbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENFB_IN_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - page
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: XENFB_OUT_RING
    functionSourceFile: /src/xen/xen/include/public/io/fbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENFB_OUT_RING(page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - page
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: XENFB_OUT_RING_REF
    functionSourceFile: /src/xen/xen/include/public/io/fbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XENFB_OUT_RING_REF(page, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: usbif_pipeportnum
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeportnum(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pipe
    - ','
    - portnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: usbif_setportnum_pipe
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_setportnum_pipe(pipe, portnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: usbif_pipeunlink
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeunlink(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: usbif_pipesubmit
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipesubmit(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: usbif_setunlink_pipe
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_setunlink_pipe(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: usbif_pipein
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipein(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: usbif_pipeout
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeout(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: usbif_pipedevice
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipedevice(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: usbif_pipeendpoint
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeendpoint(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: usbif_pipetype
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipetype(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: usbif_pipeisoc
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeisoc(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: usbif_pipeint
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipeint(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: usbif_pipectrl
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipectrl(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pipe
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: usbif_pipebulk
    functionSourceFile: /src/xen/xen/include/public/io/usbif.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: usbif_pipebulk(pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EACH
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PVDRIVERS_PRODUCT_LIST
    functionSourceFile: /src/xen/xen/include/public/hvm/pvdrivers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PVDRIVERS_PRODUCT_LIST(EACH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: XEN_DMOP_PCI_SBDF
    functionSourceFile: /src/xen/xen/include/public/hvm/dm_op.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_DMOP_PCI_SBDF(s,b,d,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _x
    - ','
    - _code
    - ','
    - _type
    - ','
    - _ctype
    - ','
    - _fix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: DECLARE_HVM_SAVE_TYPE_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HVM_SAVE_TYPE_COMPAT(_x, _code, _type, _ctype, _fix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _code
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: DECLARE_HVM_SAVE_TYPE
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HVM_SAVE_TYPE(_x, _code, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _x
    - ','
    - _code
    - ','
    - _type
    - ','
    - _ctype
    - ','
    - _fix
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: DECLARE_HVM_SAVE_TYPE_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HVM_SAVE_TYPE_COMPAT(_x, _code, _type, _ctype, _fix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _code
    - ','
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: DECLARE_HVM_SAVE_TYPE
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_HVM_SAVE_TYPE(_x, _code, _type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: HVM_SAVE_TYPE
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_TYPE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: HVM_SAVE_LENGTH
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_LENGTH(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: HVM_SAVE_CODE
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_CODE(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: HVM_SAVE_TYPE_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_TYPE_COMPAT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: HVM_SAVE_LENGTH_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_LENGTH_COMPAT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HVM_SAVE_HAS_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_HAS_COMPAT(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _x
    - ','
    - _dst
    - ','
    - _size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: HVM_SAVE_FIX_COMPAT
    functionSourceFile: /src/xen/xen/include/public/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HVM_SAVE_FIX_COMPAT(_x, _dst, _size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: XEN_CPUFEATURE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/cpufeatureset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_CPUFEATURE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: x86_mcinfo_nentries
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-mca.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcinfo_nentries(mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mi
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: x86_mcinfo_first
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-mca.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcinfo_first(mi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mic
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: x86_mcinfo_next
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-mca.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcinfo_next(mic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - mi
    - ','
    - mc_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: x86_mcinfo_lookup
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-mca.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86_mcinfo_lookup(ret, mi, mc_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: __DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: __XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_PARAM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: set_xen_guest_handle_raw
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_raw(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: set_xen_guest_handle
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: TI_GET_DPL
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI_GET_DPL(_ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: TI_GET_IF
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI_GET_IF(_ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ti
    - ','
    - _dpl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: TI_SET_DPL
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI_SET_DPL(_ti,_dpl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ti
    - ','
    - _if
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: TI_SET_IF
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI_SET_IF(_ti,_if)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: ___DEFINE_XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___DEFINE_XEN_GUEST_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: set_xen_guest_handle_raw
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_xen_guest_handle_raw(hnd, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: __XEN_GUEST_HANDLE_64
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __XEN_GUEST_HANDLE_64(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: XEN_GUEST_HANDLE_64
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_GUEST_HANDLE_64(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: __DECL_REG_LO8
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO8(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: __DECL_REG_LO16
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO16(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: __DECL_REG_LO8
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO8(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: __DECL_REG_LO16
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO16(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: xen_pfn_to_cr3
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_pfn_to_cr3(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cr3
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: xen_cr3_to_pfn
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_32.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_cr3_to_pfn(cr3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: XEN_CPUID_LEAF
    functionSourceFile: /src/xen/xen/include/public/arch-x86/cpuid.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_CPUID_LEAF(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: __DECL_REG_LOHI
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LOHI(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: __DECL_REG_LO8
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO8(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: __DECL_REG_LO16
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LO16(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: __DECL_REG_HI
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_HI(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: __DECL_REG
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: __DECL_REG
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: __DECL_REG_LOHI
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_LOHI(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: __DECL_REG_HI
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_REG_HI(num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: xen_pfn_to_cr3
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_pfn_to_cr3(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cr3
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: xen_cr3_to_pfn
    functionSourceFile: /src/xen/xen/include/public/arch-x86/xen-x86_64.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_cr3_to_pfn(cr3)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - h
    - size
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 285
    functionName: _hvm_hw_fix_cpu
    functionSourceFile: /src/xen/xen/include/public/arch-x86/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _hvm_hw_fix_cpu(void *h, uint32_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - cnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 376
    functionName: XEN_HVM_VIOAPIC
    functionSourceFile: /src/xen/xen/include/public/arch-x86/hvm/save.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_HVM_VIOAPIC(name, cnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: alternative_call
    functionSourceFile: /src/xen/xen/include/xen/alternative-call.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_call(func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: alternative_vcall
    functionSourceFile: /src/xen/xen/include/xen/alternative-call.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alternative_vcall(func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LIST_HEAD_INIT
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: LIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: LIST_HEAD_READ_MOSTLY
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_READ_MOSTLY(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: LIST_HEAD_RO_AFTER_INIT
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_HEAD_RO_AFTER_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: INIT_LIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void INIT_LIST_HEAD(struct list_head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: list_head_is_null
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool list_head_is_null(const struct list_head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - new
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: __list_add
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_add(struct list_head *new,\n                              struct
      list_head *prev,\n                              struct list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: list_add
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: list_add_tail
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_tail(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:113,1
    - Dst: prev::prev
      Src: /src/xen/xen/include/xen/list.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - new
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: __list_add_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    - prev::prev
    linkageType: ''
    returnType: void
    signature: "void __list_add_rcu(struct list_head *new,\n                                  struct
      list_head *prev,\n                                  struct list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: list_add_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_add_rcu(struct list_head *new, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - new
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: list_add_tail_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void list_add_tail_rcu(struct list_head *new,\n                                     struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - prev
    - next
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: __list_del
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_del(struct list_head *prev,\n                              struct
      list_head *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/list.h:183,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/list.h:184,1
    - Dst: __list_del
      Src: /src/xen/xen/include/xen/list.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: list_del
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 66
    functionsReached:
    - __list_del
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void list_del(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/xen/include/xen/list.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: list_del_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 3
    functionsReached:
    - __list_del
    linkageType: ''
    returnType: void
    signature: void list_del_rcu(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: next::next
      Src: /src/xen/xen/include/xen/list.h:230,1
    - Dst: prev::prev
      Src: /src/xen/xen/include/xen/list.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: list_replace
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - prev::prev
    - next::next
    linkageType: ''
    returnType: void
    signature: "void list_replace(struct list_head *old,\n                                struct
      list_head *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/include/xen/list.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: list_replace_init
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: "void list_replace_init(struct list_head *old,\n                                     struct
      list_head *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:255,1
    - Dst: next::next
      Src: /src/xen/xen/include/xen/list.h:256,1
    - Dst: prev::prev
      Src: /src/xen/xen/include/xen/list.h:257,1
    - Dst: old::old
      Src: /src/xen/xen/include/xen/list.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: list_replace_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    - prev::prev
    - old::old
    - next::next
    linkageType: ''
    returnType: void
    signature: "void list_replace_rcu(struct list_head *old,\n                                    struct
      list_head *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/xen/include/xen/list.h:267,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/include/xen/list.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: list_del_init
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 5
    functionsReached:
    - __list_del
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void list_del_init(struct list_head *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/xen/include/xen/list.h:278,1
    - Dst: list_add
      Src: /src/xen/xen/include/xen/list.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: list_move
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 3
    functionsReached:
    - __list_del
    - list_add
    linkageType: ''
    returnType: void
    signature: void list_move(struct list_head *list, struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __list_del
      Src: /src/xen/xen/include/xen/list.h:290,1
    - Dst: list_add_tail
      Src: /src/xen/xen/include/xen/list.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: list_move_tail
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - __list_del
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void list_move_tail(struct list_head *list,\n                                  struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: list_is_last
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int list_is_last(const struct list_head *list,\n                               const
      struct list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: list_empty
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty(const struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/include/xen/list.h:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: list_is_singular
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int list_is_singular(const struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: list_empty_careful
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int list_empty_careful(const struct list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 354
    functionName: __list_splice
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __list_splice(struct list_head *list,\n                                 struct
      list_head *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/include/xen/list.h:363,1
    - Dst: __list_splice
      Src: /src/xen/xen/include/xen/list.h:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: list_splice
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 5
    functionsReached:
    - list_empty
    - __list_splice
    linkageType: ''
    returnType: void
    signature: void list_splice(struct list_head *list, struct list_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/include/xen/list.h:377,1
    - Dst: __list_splice
      Src: /src/xen/xen/include/xen/list.h:378,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/include/xen/list.h:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    functionName: list_splice_init
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - list_empty
    - __list_splice
    linkageType: ''
    returnType: void
    signature: "void list_splice_init(struct list_head *list,\n                                    struct
      list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: list_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: list_first_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_first_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: list_last_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_last_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: list_first_entry_or_null
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_first_entry_or_null(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: list_last_entry_or_null
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_last_entry_or_null(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: list_next_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_next_entry(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: list_prev_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_prev_entry(pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: list_for_each_prev
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_prev(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: list_for_each_safe
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: list_for_each_backwards_safe
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_backwards_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: list_for_each_entry_reverse
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_reverse(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: list_prepare_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_prepare_entry(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: list_for_each_entry_continue
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_continue(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 550
    functionName: list_for_each_entry_from
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_from(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 564
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: list_for_each_entry_safe_continue
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_continue(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: list_for_each_entry_safe_from
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_from(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: list_for_each_entry_safe_reverse
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_safe_reverse(pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: list_for_each_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_rcu(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: __list_for_each_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __list_for_each_rcu(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: list_for_each_safe_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_safe_rcu(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: list_for_each_entry_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_entry_rcu(pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: list_for_each_continue_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: list_for_each_continue_rcu(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 696
    functionName: HLIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 697
    functionName: INIT_HLIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_HLIST_HEAD(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: INIT_HLIST_NODE
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void INIT_HLIST_NODE(struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: hlist_unhashed
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlist_unhashed(const struct hlist_node *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 711
    functionName: hlist_empty
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hlist_empty(const struct hlist_head *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 720
    functionName: __hlist_del
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __hlist_del(struct hlist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hlist_del
      Src: /src/xen/xen/include/xen/list.h:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 727
    functionName: hlist_del
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 1
    functionsReached:
    - __hlist_del
    linkageType: ''
    returnType: void
    signature: void hlist_del(struct hlist_node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __hlist_del
      Src: /src/xen/xen/include/xen/list.h:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: hlist_del_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - __hlist_del
    linkageType: ''
    returnType: void
    signature: void hlist_del_rcu(struct hlist_node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlist_unhashed
      Src: /src/xen/xen/include/xen/list.h:756,1
    - Dst: __hlist_del
      Src: /src/xen/xen/include/xen/list.h:757,1
    - Dst: INIT_HLIST_NODE
      Src: /src/xen/xen/include/xen/list.h:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 760
    functionName: hlist_del_init
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - INIT_HLIST_NODE
    - __hlist_del
    - hlist_unhashed
    linkageType: ''
    returnType: void
    signature: void hlist_del_init(struct hlist_node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:776,1
    - Dst: next::next
      Src: /src/xen/xen/include/xen/list.h:778,1
    - Dst: next::next
      Src: /src/xen/xen/include/xen/list.h:778,1
    - Dst: pprev::pprev
      Src: /src/xen/xen/include/xen/list.h:779,1
    - Dst: old::old
      Src: /src/xen/xen/include/xen/list.h:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 781
    functionName: hlist_replace_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    - old::old
    - pprev::pprev
    - next::next
    linkageType: ''
    returnType: void
    signature: "void hlist_replace_rcu(struct hlist_node *old,\n                                     struct
      hlist_node *new)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - h
    argTypes:
    - struct hlist_node*
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 791
    functionName: hlist_add_head
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - n
    - h
    argTypes:
    - struct hlist_node*
    - struct hlist_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 822
    functionName: hlist_add_head_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: "void hlist_add_head_rcu(struct hlist_node *n,\n                                      struct
      hlist_head *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - n
    - next
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 832
    functionName: hlist_add_before
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hlist_add_before(struct hlist_node *n,\n                    struct
      hlist_node *next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - next
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 843
    functionName: hlist_add_after
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hlist_add_after(struct hlist_node *n,\n                    struct
      hlist_node *next)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - n
    - next
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 871
    functionName: hlist_add_before_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: "void hlist_add_before_rcu(struct hlist_node *n,\n                                        struct
      hlist_node *next)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/list.h:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - prev
    - n
    argTypes:
    - struct hlist_node*
    - struct hlist_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 900
    functionName: hlist_add_after_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached:
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: "void hlist_add_after_rcu(struct hlist_node *prev,\n                                       struct
      hlist_node *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 903
    functionName: hlist_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 906
    functionName: hlist_for_each
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - n
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 910
    functionName: hlist_for_each_safe
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_safe(pos, n, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tpos
    - ','
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 923
    functionName: hlist_for_each_entry
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry(tpos, pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tpos
    - ','
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 936
    functionName: hlist_for_each_entry_continue
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_continue(tpos, pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tpos
    - ','
    - pos
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: hlist_for_each_entry_from
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_from(tpos, pos, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - tpos
    - ','
    - pos
    - ','
    - n
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 963
    functionName: hlist_for_each_entry_safe
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_safe(tpos, pos, n, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tpos
    - ','
    - pos
    - ','
    - head
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: hlist_for_each_entry_rcu
    functionSourceFile: /src/xen/xen/include/xen/list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hlist_for_each_entry_rcu(tpos, pos, head, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _kb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: KB
    functionSourceFile: /src/xen/xen/include/xen/config.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KB(_kb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: MB
    functionSourceFile: /src/xen/xen/include/xen/config.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MB(_mb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _gb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: GB
    functionSourceFile: /src/xen/xen/include/xen/config.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GB(_gb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: DECL_SECTION
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_SECTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: DECL_SECTION
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_SECTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: DECL_SECTION
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_SECTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: DECL_DEBUG
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_DEBUG(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: DECL_DEBUG2
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_DEBUG2(x, y, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: DECL_DEBUG
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_DEBUG(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: DECL_DEBUG2
    functionSourceFile: /src/xen/xen/include/xen/xen.lds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_DEBUG2(x, y, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: LIVEPATCH_LOAD_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_LOAD_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: LIVEPATCH_UNLOAD_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_UNLOAD_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: LIVEPATCH_PREAPPLY_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_PREAPPLY_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: LIVEPATCH_POSTAPPLY_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_POSTAPPLY_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: LIVEPATCH_PREREVERT_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_PREREVERT_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: LIVEPATCH_POSTREVERT_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_POSTREVERT_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: LIVEPATCH_APPLY_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_APPLY_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: LIVEPATCH_REVERT_HOOK
    functionSourceFile: /src/xen/xen/include/xen/livepatch_payload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_REVERT_HOOK(_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ved
    argTypes:
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: vm_event_check_ring
    functionSourceFile: /src/xen/xen/include/xen/vm_event.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vm_event_check_ring(struct vm_event_domain *ved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vm_event_claim_slot
      Src: /src/xen/xen/include/xen/vm_event.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: vm_event_claim_slot
    functionSourceFile: /src/xen/xen/include/xen/vm_event.h
    functionUses: 4
    functionsReached:
    - __vm_event_claim_slot
    linkageType: ''
    returnType: int
    signature: "int vm_event_claim_slot(struct domain *d,\n                                      struct
      vm_event_domain *ved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vm_event_claim_slot
      Src: /src/xen/xen/include/xen/vm_event.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: vm_event_claim_slot_nosleep
    functionSourceFile: /src/xen/xen/include/xen/vm_event.h
    functionUses: 0
    functionsReached:
    - __vm_event_claim_slot
    linkageType: ''
    returnType: int
    signature: "int vm_event_claim_slot_nosleep(struct domain *d,\n                                              struct
      vm_event_domain *ved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: vm_event_cleanup
    functionSourceFile: /src/xen/xen/include/xen/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_cleanup(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - vec
    argTypes:
    - struct domain*
    - struct xen_domctl_vm_event_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: vm_event_domctl
    functionSourceFile: /src/xen/xen/include/xen/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int vm_event_domctl(struct domain *d,\n                                  struct
      xen_domctl_vm_event_op *vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: resource_size
    functionSourceFile: /src/xen/xen/include/xen/resource.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: resource_size(res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ATOMIC_INIT
    functionSourceFile: /src/xen/xen/include/xen/atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATOMIC_INIT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/include/xen/fdt-domain-build.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: get_allocation_size
    functionSourceFile: /src/xen/xen/include/xen/fdt-domain-build.h
    functionUses: 1
    functionsReached:
    - get_order_from_bytes
    linkageType: ''
    returnType: int
    signature: int get_allocation_size(paddr_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/include/xen/cper.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - u1
    - u2
    argTypes:
    - uuid_le
    - uuid_le
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: uuid_le_cmp
    functionSourceFile: /src/xen/xen/include/xen/cper.h
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sec
      Src: /src/xen/xen/include/xen/cper.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: cper_next_record_id
    functionSourceFile: /src/xen/xen/include/xen/cper.h
    functionUses: 1
    functionsReached:
    - get_sec
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cper_next_record_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d0
    - ','
    - d1
    - ','
    - d2
    - ','
    - d3
    - ','
    - d4
    - ','
    - d5
    - ','
    - d6
    - ','
    - d7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: UUID_LE
    functionSourceFile: /src/xen/xen/include/xen/cper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/include/xen/softirq.h:38,1
    - Dst: softirq_pending
      Src: /src/xen/xen/include/xen/softirq.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - cpu
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: arch_set_softirq
    functionSourceFile: /src/xen/xen/include/xen/softirq.h
    functionUses: 0
    functionsReached:
    - softirq_pending
    - test_and_set_bit
    linkageType: ''
    returnType: always_inline
    signature: always_inline arch_set_softirq(unsigned int nr, unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: DEFINE_WAITQUEUE_HEAD
    functionSourceFile: /src/xen/xen/include/xen/wait.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_WAITQUEUE_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - wq
    - ','
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: wait_event
    functionSourceFile: /src/xen/xen/include/xen/wait.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wait_event(wq, condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: init_waitqueue_vcpu
    functionSourceFile: /src/xen/xen/include/xen/wait.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int init_waitqueue_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: destroy_waitqueue_vcpu
    functionSourceFile: /src/xen/xen/include/xen/wait.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void destroy_waitqueue_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: check_wakeup_from_wait
    functionSourceFile: /src/xen/xen/include/xen/wait.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_wakeup_from_wait(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vunmap
      Src: /src/xen/xen/include/xen/vmap.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: iounmap
    functionSourceFile: /src/xen/xen/include/xen/vmap.h
    functionUses: 24
    functionsReached:
    - vunmap
    linkageType: ''
    returnType: void
    signature: void iounmap(void __iomem *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_init_type
      Src: /src/xen/xen/include/xen/vmap.h:146,1
    - Dst: arch_vmap_virt_end
      Src: /src/xen/xen/include/xen/vmap.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: vm_init
    functionSourceFile: /src/xen/xen/include/xen/vmap.h
    functionUses: 3
    functionsReached:
    - arch_vmap_virt_end
    - vm_init_type
    linkageType: ''
    returnType: void
    signature: void vm_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sbdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PCI_SEG
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SEG(sbdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: PCI_BUS
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_BUS(bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PCI_SLOT
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SLOT(bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PCI_FUNC
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_FUNC(bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - df
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PCI_DEVFN1_
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_DEVFN1_(df)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PCI_DEVFN2_
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_DEVFN2_(d, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - d
    - ','
    - f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PCI_SBDF4_
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SBDF4_(s, b, d, f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - bdf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: PCI_SBDF2_
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SBDF2_(s, bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - what
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: PCI__
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI__(what, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - what
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PCI_
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_(what, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - d
    - ','
    - f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: PCI_DEVFN
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_DEVFN(d, f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - b
    - ','
    - d
    - ','
    - f
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: PCI_BDF
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_BDF(b, d, f...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - s
    - ','
    - b
    - ','
    - d
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: PCI_SBDF
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SBDF(s, b, d...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ECAM_REG_OFFSET
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECAM_REG_OFFSET(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: is_pci_passthrough_enabled
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pci_passthrough_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: arch_pci_device_physdevop
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_pci_device_physdevop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - domain
    - ','
    - pdev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_pdev(domain, pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: has_arch_pdevs
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_arch_pdevs(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock_unsafe
      Src: /src/xen/xen/include/xen/pci.h:196,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/pci.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: pcidevs_lock
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 7
    functionsReached:
    - pcidevs_lock_unsafe
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline pcidevs_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_evaluate_nospec
      Src: /src/xen/xen/include/xen/pci.h:204,1
    - Dst: pcidevs_trylock_unsafe
      Src: /src/xen/xen/include/xen/pci.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: pcidevs_trylock
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 1
    functionsReached:
    - pcidevs_trylock_unsafe
    - lock_evaluate_nospec
    linkageType: ''
    returnType: always_inline
    signature: always_inline pcidevs_trylock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: ASSERT_PDEV_LIST_IS_READ_LOCKED
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_PDEV_LIST_IS_READ_LOCKED(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: ASSERT_PDEV_LIST_IS_READ_LOCKED
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_PDEV_LIST_IS_READ_LOCKED(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: arch_pci_clean_pirqs
    functionSourceFile: /src/xen/xen/include/xen/pci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_pci_clean_pirqs(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: check_lock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_lock(l, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: lock_enter
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lock_enter(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: lock_exit
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lock_exit(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: spin_debug_enable
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_debug_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: spin_debug_disable
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_debug_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lockname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: LOCK_PROFILE_
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_(lockname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lockname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: RLOCK_PROFILE_
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RLOCK_PROFILE_(lockname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: LOCK_PROFILE_PTR_
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_PTR_(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: SPIN_LOCK_UNLOCKED_
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPIN_LOCK_UNLOCKED_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: RSPIN_LOCK_UNLOCKED_
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSPIN_LOCK_UNLOCKED_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: DEFINE_SPINLOCK
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPINLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: DEFINE_RSPINLOCK
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RSPINLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - s
    - ','
    - l
    - ','
    - lockptr
    - ','
    - locktype
    - ','
    - isr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: spin_lock_init_prof__
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init_prof__(s, l, lockptr, locktype, isr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: spin_lock_init_prof
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init_prof(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: rspin_lock_init_prof
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_lock_init_prof(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - ptr
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: lock_profile_register_struct
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lock_profile_register_struct(type, ptr, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: lock_profile_deregister_struct
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lock_profile_deregister_struct(type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: DEFINE_SPINLOCK
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPINLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: DEFINE_RSPINLOCK
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RSPINLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: spin_lock_init_prof
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init_prof(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: rspin_lock_init_prof
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_lock_init_prof(s, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: spin_lock_init
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: rspin_lock_init
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_lock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock
      Src: /src/xen/xen/include/xen/spinlock.h:243,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: spin_lock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 239
    functionsReached:
    - block_lock_speculation
    - _spin_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline spin_lock(spinlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock_cb
      Src: /src/xen/xen/include/xen/spinlock.h:250,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - l
    - d
    argTypes:
    - spinlock_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: spin_lock_cb
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 1
    functionsReached:
    - _spin_lock_cb
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: "always_inline spin_lock_cb(spinlock_t *l, void (*c)(void *data),\n
      \                                      void *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock_irq
      Src: /src/xen/xen/include/xen/spinlock.h:256,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: spin_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 13
    functionsReached:
    - _spin_lock_irq
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline spin_lock_irq(spinlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: spin_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_irqsave(l, f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock
      Src: /src/xen/xen/include/xen/spinlock.h:271,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - condition
    - l
    argTypes:
    - bool
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: spin_lock_if
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 5
    functionsReached:
    - block_lock_speculation
    - _spin_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline spin_lock_if(bool condition, spinlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: spin_unlock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 253
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: spin_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock_irq(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: spin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 112
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_unlock_irqrestore(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: spin_is_locked
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 86
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_is_locked(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: spin_trylock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_trylock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lock
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: spin_trylock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_trylock_irqsave(lock, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: spin_lock_kick
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_kick(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: spin_barrier
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_barrier(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rspin_lock
      Src: /src/xen/xen/include/xen/spinlock.h:314,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: rspin_lock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 18
    functionsReached:
    - _rspin_lock
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline rspin_lock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rspin_lock_irqsave
      Src: /src/xen/xen/include/xen/spinlock.h:320,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 324
    functionName: rspin_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 1
    functionsReached:
    - _rspin_lock_irqsave
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline unsigned long
    signature: always_inline unsigned long rspin_lock_irqsave(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: rspin_trylock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_trylock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 328
    functionName: rspin_unlock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: rspin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_unlock_irqrestore(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: rspin_barrier
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_barrier(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: rspin_is_locked
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rspin_is_locked(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: nrspin_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nrspin_lock_irqsave(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _nrspin_lock
      Src: /src/xen/xen/include/xen/spinlock.h:348,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: nrspin_lock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 12
    functionsReached:
    - block_lock_speculation
    - _nrspin_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline nrspin_lock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _nrspin_lock_irq
      Src: /src/xen/xen/include/xen/spinlock.h:354,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/spinlock.h:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: nrspin_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 1
    functionsReached:
    - _nrspin_lock_irq
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline nrspin_lock_irq(rspinlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: nrspin_trylock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nrspin_trylock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: nrspin_unlock
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nrspin_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: nrspin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nrspin_unlock_irqrestore(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: nrspin_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/spinlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nrspin_unlock_irq(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: ACPI_MADT_GET_
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MADT_GET_(fld, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - inti
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ACPI_MADT_GET_POLARITY
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MADT_GET_POLARITY(inti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - inti
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: ACPI_MADT_GET_TRIGGER
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MADT_GET_TRIGGER(inti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - entry
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: BAD_MADT_ENTRY
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD_MADT_ENTRY(entry, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: acpi_boot_init
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_boot_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: acpi_boot_table_init
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_boot_table_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: acpi_get_cstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acpi_get_cstate_limit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: acpi_set_cstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_set_cstate_limit(unsigned int new_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: acpi_get_csubstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acpi_get_csubstate_limit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: acpi_set_csubstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_set_csubstate_limit(unsigned int new_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    functionName: acpi_get_cstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acpi_get_cstate_limit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: acpi_set_cstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_set_cstate_limit(unsigned int new_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: acpi_get_csubstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int acpi_get_csubstate_limit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: acpi_set_csubstate_limit
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_set_csubstate_limit(unsigned int new_limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: acpi_dmar_init
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_dmar_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: acpi_dmar_zap
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_dmar_zap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: acpi_dmar_reinstate
    functionSourceFile: /src/xen/xen/include/xen/acpi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_dmar_reinstate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 6
    functionName: DECLARE_PER_CPU
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PER_CPU(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - attr
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 9
    functionName: __DEFINE_PER_CPU
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_PER_CPU(attr, type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: DEFINE_PER_CPU
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: DEFINE_PER_CPU_PAGE_ALIGNED
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU_PAGE_ALIGNED(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: DEFINE_PER_CPU_READ_MOSTLY
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU_READ_MOSTLY(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: get_per_cpu_var
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_per_cpu_var(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: per_cpu(var, cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 208
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: this_cpu(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: per_cpu_ptr
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: per_cpu_ptr(var, cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: this_cpu_ptr
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: this_cpu_ptr(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: get_cpu_var
    functionSourceFile: /src/xen/xen/include/xen/percpu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_cpu_var(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: PAGE_OFFSET
    functionSourceFile: /src/xen/xen/include/xen/page-size.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_OFFSET(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PAGE_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/page-size.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - att
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: __param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __param(att)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __TEMP_NAME
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __TEMP_NAME(base, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _TEMP_NAME
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TEMP_NAME(base, line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: TEMP_NAME
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEMP_NAME(base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: custom_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: custom_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: boolean_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boolean_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: integer_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: integer_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: size_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: size_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: string_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: string_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: ignore_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ignore_param(_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - parfs
    - ','
    - var
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: custom_runtime_set_var_sz
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: custom_runtime_set_var_sz(parfs, var, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parfs
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: custom_runtime_set_var
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: custom_runtime_set_var(parfs, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - par
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: param_2_parfs
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: param_2_parfs(par)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - nam
    - ','
    - variable
    - ','
    - initfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: custom_runtime_only_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: custom_runtime_only_param(nam, variable, initfunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nam
    - ','
    - variable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: boolean_runtime_only_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boolean_runtime_only_param(nam, variable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nam
    - ','
    - variable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: integer_runtime_only_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: integer_runtime_only_param(nam, variable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nam
    - ','
    - variable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: size_runtime_only_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: size_runtime_only_param(nam, variable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nam
    - ','
    - variable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: string_runtime_only_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: string_runtime_only_param(nam, variable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _name
    - ','
    - _var
    - ','
    - initfunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: custom_runtime_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: custom_runtime_param(_name, _var, initfunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: boolean_runtime_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: boolean_runtime_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: integer_runtime_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: integer_runtime_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: size_runtime_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: size_runtime_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _name
    - ','
    - _var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: string_runtime_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: string_runtime_param(_name, _var)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/param.h:193,1
    - Dst: strlen
      Src: /src/xen/xen/include/xen/param.h:193,1
    - Dst: printk
      Src: /src/xen/xen/include/xen/param.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - cfg
    - param
    - s
    - e
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: no_config_param
    functionSourceFile: /src/xen/xen/include/xen/param.h
    functionUses: 3
    functionsReached:
    - ASSERT
    - strlen
    - printk
    linkageType: ''
    returnType: void
    signature: "void no_config_param(const char *cfg, const char *param,\n                                   const
      char *s, const char *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: VPCI_ECAM_BDF
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VPCI_ECAM_BDF(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msix
    - entry
    argTypes:
    - struct vpci_msix*
    - struct vpci_msix_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: vmsix_entry_nr
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int vmsix_entry_nr(const struct vpci_msix *msix,\n                                          const
      struct vpci_msix_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    functionName: vpci_assign_device
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vpci_assign_device(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: vpci_deassign_device
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpci_deassign_device(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: vpci_dump_msi
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vpci_dump_msi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/vpci.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sbdf
    - reg
    - size
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: vpci_read
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg,\n                                 unsigned
      int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/vpci.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sbdf
    - reg
    - size
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: vpci_write
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void vpci_write(pci_sbdf_t sbdf, unsigned int reg,\n                              unsigned
      int size, uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/vpci.h:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: __must_check::vpci_process_pending
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool __must_check vpci_process_pending(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/include/xen/vpci.h:236,1
    - Dst: vpci_assign_device
      Src: /src/xen/xen/include/xen/vpci.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: __must_check::vpci_reset_device
    functionSourceFile: /src/xen/xen/include/xen/vpci.h
    functionUses: 0
    functionsReached:
    - vpci_assign_device
    - vpci_deassign_device
    linkageType: ''
    returnType: int
    signature: int __must_check vpci_reset_device(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: ASSERT_ALLOC_CONTEXT
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_ALLOC_CONTEXT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: irq_to_desc
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 66
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_to_desc(irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: irq_desc_initialized
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_desc_initialized(desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/irq.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: get_irq_regs
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 3
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: struct cpu_user_regs
    signature: struct cpu_user_regs *get_irq_regs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/irq.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - new_regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: set_irq_regs
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 2
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: struct cpu_user_regs
    signature: "struct cpu_user_regs *set_irq_regs(\n    const struct cpu_user_regs
      *new_regs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: pirq_info
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_info(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - p
    - ','
    - f
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: pirq_field
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_field(d, p, f, def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: pirq_to_evtchn
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_to_evtchn(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: pirq_masked
    functionSourceFile: /src/xen/xen/include/xen/irq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_masked(d, pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: vesa_init
    functionSourceFile: /src/xen/xen/include/xen/vga.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vesa_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/xen/xen/include/xen/bsearch.h:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - key
    - base
    - num
    - size
    argTypes:
    - void*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 48
    functionName: bsearch
    functionSourceFile: /src/xen/xen/include/xen/bsearch.h
    functionUses: 6
    functionsReached:
    - cmp
    linkageType: ''
    returnType: void
    signature: "void *bsearch(const void *key, const void *base, size_t num, size_t
      size,\n              int (*cmp)(const void *key, const void *elt))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPTIMIZER_HIDE_VAR
      Src: /src/xen/xen/include/xen/nospec.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - index
    - size
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: array_index_mask_nospec
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 0
    functionsReached:
    - OPTIMIZER_HIDE_VAR
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long array_index_mask_nospec(unsigned long index,\n                                                    unsigned
      long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: array_index_nospec
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_index_nospec(index, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: array_index_nospec
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_index_nospec(index, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - array
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: array_access_nospec
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_access_nospec(array, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_block_lock_speculation
      Src: /src/xen/xen/include/xen/nospec.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: block_lock_speculation
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 13
    functionsReached:
    - arch_block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline block_lock_speculation(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_lock_evaluate_nospec
      Src: /src/xen/xen/include/xen/nospec.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - condition
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: lock_evaluate_nospec
    functionSourceFile: /src/xen/xen/include/xen/nospec.h
    functionUses: 2
    functionsReached:
    - arch_lock_evaluate_nospec
    linkageType: ''
    returnType: always_inline
    signature: always_inline lock_evaluate_nospec(bool condition)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - func
    - state
    argTypes:
    - struct livepatch_func*
    - struct livepatch_fstate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: livepatch_insn_len
    functionSourceFile: /src/xen/xen/include/xen/livepatch.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int livepatch_insn_len(const struct livepatch_func *func,\n
      \                               const struct livepatch_fstate *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - func
    argTypes:
    - struct livepatch_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: livepatch_verify_distance
    functionSourceFile: /src/xen/xen/include/xen/livepatch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int livepatch_verify_distance(const struct livepatch_func *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_livepatch_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: livepatch_op
    functionSourceFile: /src/xen/xen/include/xen/livepatch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int livepatch_op(struct xen_sysctl_livepatch_op *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: check_for_livepatch_work
    functionSourceFile: /src/xen/xen/include/xen/livepatch.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_for_livepatch_work(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: is_patch
    functionSourceFile: /src/xen/xen/include/xen/livepatch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_patch(const void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: __DT_MATCH_PATH
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DT_MATCH_PATH(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: __DT_MATCH_TYPE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DT_MATCH_TYPE(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - compat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: __DT_MATCH_COMPATIBLE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DT_MATCH_COMPATIBLE(compat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: __DT_MATCH_NOT_AVAILABLE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DT_MATCH_NOT_AVAILABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: __DT_MATCH_PROP
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DT_MATCH_PROP(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: DT_MATCH_PATH
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_MATCH_PATH(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typ
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: DT_MATCH_TYPE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_MATCH_TYPE(typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - compat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: DT_MATCH_COMPATIBLE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_MATCH_COMPATIBLE(compat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: DT_MATCH_NOT_AVAILABLE
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_MATCH_NOT_AVAILABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: DT_MATCH_PROP
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_MATCH_PROP(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dt_node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: dt_to_dev
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_to_dev(dt_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/device_tree.h:121,1
    - Dst: container_of
      Src: /src/xen/xen/include/xen/device_tree.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: dev_to_dt
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - container_of
    linkageType: ''
    returnType: struct dt_device_node
    signature: struct dt_device_node *dev_to_dt(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - struct dt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: dt_irq_is_level_triggered
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dt_irq_is_level_triggered(const struct dt_irq *irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: dt_prop_cmp
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_prop_cmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: dt_node_cmp
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_node_cmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: dt_compat_cmp
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_compat_cmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dn
    - ','
    - pp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: dt_for_each_property_node
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_for_each_property_node(dn, pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dt
    - ','
    - dn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_for_each_device_node(dt, dn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dt
    - ','
    - dn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_for_each_child_node(dt, dn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: dt_cells_to_size
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dt_cells_to_size(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: dt_size_to_cells
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dt_size_to_cells(int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: dt_node_full_name
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *dt_node_full_name(const struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: dt_node_name
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *dt_node_name(const struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/include/xen/device_tree.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - np
    - name
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: dt_node_name_is_equal
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    linkageType: ''
    returnType: bool
    signature: "bool dt_node_name_is_equal(const struct dt_device_node *np,\n                                         const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/include/xen/device_tree.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - np
    - path
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: dt_node_path_is_equal
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 3
    functionsReached:
    - dt_node_cmp
    linkageType: ''
    returnType: bool
    signature: "bool dt_node_path_is_equal(const struct dt_device_node *np,\n                                         const
      char *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/include/xen/device_tree.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - type
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: dt_device_type_is_equal
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 12
    functionsReached:
    - dt_node_cmp
    linkageType: ''
    returnType: bool
    signature: "bool dt_device_type_is_equal(const struct dt_device_node *device,\n
      \                       const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - device
    - used_by
    argTypes:
    - struct dt_device_node*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: dt_device_set_used_by
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dt_device_set_used_by(struct dt_device_node *device,\n                                         domid_t
      used_by)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: dt_device_used_by
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: domid_t
    signature: domid_t dt_device_used_by(const struct dt_device_node *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: dt_device_set_protected
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dt_device_set_protected(struct dt_device_node *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: dt_device_is_protected
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dt_device_is_protected(const struct dt_device_node *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_prop_cmp
      Src: /src/xen/xen/include/xen/device_tree.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - name
    argTypes:
    - struct dt_property*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: dt_property_name_is_equal
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 2
    functionsReached:
    - dt_prop_cmp
    linkageType: ''
    returnType: bool
    signature: "bool dt_property_name_is_equal(const struct dt_property *pp,\n                                             const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: dt_device_set_static_evtchn_created
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dt_device_set_static_evtchn_created(struct dt_device_node *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: dt_device_static_evtchn_created
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dt_device_static_evtchn_created(const struct dt_device_node *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_variable_u32_array
      Src: /src/xen/xen/include/xen/device_tree.h:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - np
    - propname
    - out_values
    - sz
    argTypes:
    - struct dt_device_node*
    - char*
    - u32*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 436
    functionName: dt_property_read_u32_array
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 2
    functionsReached:
    - dt_property_read_variable_u32_array
    linkageType: ''
    returnType: int
    signature: "int dt_property_read_u32_array(const struct dt_device_node *np,\n
      \                                            const char *propname,\n                                             u32
      *out_values, size_t sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/include/xen/device_tree.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - np
    - name
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: dt_property_read_bool
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 4
    functionsReached:
    - dt_find_property
    linkageType: ''
    returnType: bool
    signature: "bool dt_property_read_bool(const struct dt_device_node *np,\n                                         const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path_from
      Src: /src/xen/xen/include/xen/device_tree.h:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: dt_find_node_by_path
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 4
    functionsReached:
    - dt_find_node_by_path_from
    linkageType: ''
    returnType: struct dt_device_node
    signature: struct dt_device_node *dt_find_node_by_path(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 922
    functionName: dt_dprintk
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dt_dprintk(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __format__
      Src: /src/xen/xen/include/xen/device_tree.h:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 925
    functionName: dt_dprintk
    functionSourceFile: /src/xen/xen/include/xen/device_tree.h
    functionUses: 16
    functionsReached:
    - __format__
    linkageType: ''
    returnType: void
    signature: void dt_dprintk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feature
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: efi_enabled
    functionSourceFile: /src/xen/xen/include/xen/efi.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool efi_enabled(unsigned int feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: lzo1x_worst_compress
    functionSourceFile: /src/xen/xen/include/xen/lzo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lzo1x_worst_compress(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: strcmp
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 233
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: strncmp
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 61
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: strcasecmp
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcasecmp(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: strncasecmp
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strncasecmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: strchr
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strchr(s1, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: strrchr
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strrchr(s1, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: strstr
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strstr(s1, s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: strlen
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 281
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strlen(s1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: strcspn
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcspn(s, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: memset
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 371
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memset(s, c, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: memcpy
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 302
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcpy(d, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: memmove
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(d, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: memcmp
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: memchr
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memchr(s, c, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: is_char_array
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_char_array(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: safe_strcpy
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_strcpy(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: safe_strcat
    functionSourceFile: /src/xen/xen/include/xen/string.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_strcat(d, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: __shared_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __shared_info(d, s, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - i
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: __vcpu_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __vcpu_info(v, i, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: __shared_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __shared_info(d, s, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - i
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: __vcpu_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __vcpu_info(v, i, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: shared_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shared_info(d, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: vcpu_info
    functionSourceFile: /src/xen/xen/include/xen/shared.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_info(v, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: llc_coloring_init
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void llc_coloring_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: dump_llc_coloring_info
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dump_llc_coloring_info(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: domain_dump_llc_colors
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_dump_llc_colors(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: domain_llc_coloring_init
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_llc_coloring_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: domain_llc_coloring_free
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_llc_coloring_free(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start_mfn
    - ','
    - mfn
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: for_each_xen_colored_mfn
    functionSourceFile: /src/xen/xen/include/xen/llc-coloring.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_xen_colored_mfn(start_mfn, mfn, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/xen/include/xen/bootfdt.h:27,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/include/xen/bootfdt.h:34,1
    - Dst: printk
      Src: /src/xen/xen/include/xen/bootfdt.h:38,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/bootfdt.h:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cell
    - size
    argTypes:
    - __be32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: dt_read_number
    functionSourceFile: /src/xen/xen/include/xen/bootfdt.h
    functionUses: 1
    functionsReached:
    - be32_to_cpu
    - ASSERT_UNREACHABLE
    - printk
    linkageType: ''
    returnType: u64
    signature: u64 dt_read_number(const __be32 *cell, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_read_number
      Src: /src/xen/xen/include/xen/bootfdt.h:56,1
    - Dst: printk
      Src: /src/xen/xen/include/xen/bootfdt.h:60,1
    - Dst: WARN
      Src: /src/xen/xen/include/xen/bootfdt.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cell
    - size
    argTypes:
    - __be32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: dt_read_paddr
    functionSourceFile: /src/xen/xen/include/xen/bootfdt.h
    functionUses: 3
    functionsReached:
    - dt_read_number
    - WARN
    - printk
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t dt_read_paddr(const __be32 *cell, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_read_number
      Src: /src/xen/xen/include/xen/bootfdt.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - cellp
    argTypes:
    - int
    - __be32**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: dt_next_cell
    functionSourceFile: /src/xen/xen/include/xen/bootfdt.h
    functionUses: 0
    functionsReached:
    - dt_read_number
    linkageType: ''
    returnType: u64
    signature: u64 dt_next_cell(int s, const __be32 **cellp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/bootinfo.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: bootinfo_get_reserved_mem
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 6
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *bootinfo_get_reserved_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/bootinfo.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: bootinfo_get_mem
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 7
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *bootinfo_get_mem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/bootinfo.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: bootinfo_get_acpi
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 3
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *bootinfo_get_acpi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/bootinfo.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: bootinfo_get_shmem
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 2
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *bootinfo_get_shmem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: bootinfo_get_shmem_extra
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct shmem_membank_extra
    signature: struct shmem_membank_extra *bootinfo_get_shmem_extra(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/include/xen/bootinfo.h:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nr
    - type
    argTypes:
    - unsigned int
    - enum region_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: membanks_xzalloc
    functionSourceFile: /src/xen/xen/include/xen/bootinfo.h
    functionUses: 2
    functionsReached:
    - xzalloc_flex_struct
    linkageType: ''
    returnType: struct membanks
    signature: "struct membanks *membanks_xzalloc(unsigned int nr,\n                                                enum
      region_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: __ffs
    functionSourceFile: /src/xen/xen/include/xen/linux-compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ffs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - realpointer
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: ELF_REALPTR2PTRVAL
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_REALPTR2PTRVAL(realpointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - structname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: ELF_HANDLE_DECL
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_HANDLE_DECL(structname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - structname
    - ','
    - ptrval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: ELF_MAKE_HANDLE
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_MAKE_HANDLE(structname, ptrval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: ELF_IMAGE_BASE
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_IMAGE_BASE(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handleval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: ELF_HANDLE_PTRVAL
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_HANDLE_PTRVAL(handleval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptrval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: ELF_UNSAFE_PTR
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_UNSAFE_PTR(ptrval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - structname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: ELF_INVALID_HANDLE
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_INVALID_HANDLE(structname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptrval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: ELF_PTRVAL_VALID
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_PTRVAL_VALID(ptrval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handleval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: ELF_HANDLE_VALID
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_HANDLE_VALID(handleval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptrval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: ELF_PTRVAL_INVALID
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF_PTRVAL_INVALID(ptrval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handleval
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: ELF__HANDLE_FIELD_TYPE
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF__HANDLE_FIELD_TYPE(handleval, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handleval
    - ','
    - elm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: ELF__HANDLE_FIELD_OFFSET
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF__HANDLE_FIELD_OFFSET(handleval, elm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: elf_32bit
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_32bit(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: elf_64bit
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_64bit(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: elf_msb
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_msb(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: elf_lsb
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_lsb(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - elf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: elf_swap
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_swap(elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elf
    - ','
    - handle
    - ','
    - elem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: elf_uval_3264
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_uval_3264(elf, handle, elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elf
    - ','
    - handle
    - ','
    - elem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: elf_uval
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_uval(elf, handle, elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elf
    - ','
    - handle_or_handletype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: elf_size
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_size(elf, handle_or_handletype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - elf
    - ','
    - type
    - ','
    - ptr
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: elf_store_val
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_store_val(elf, type, ptr, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - elf
    - ','
    - hdr
    - ','
    - elm
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: elf_store_field
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_store_field(elf, hdr, elm, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - v
    argTypes:
    - struct elf_binary*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: elf_set_vcpu
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elf_set_vcpu(struct elf_binary *elf, struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: elf_xen_feature_set
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elf_xen_feature_set(unsigned int nr, uint32_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: elf_xen_feature_get
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool elf_xen_feature_get(unsigned int nr, const uint32_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/include/xen/libelf.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: elf_memcpy_unchecked
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *elf_memcpy_unchecked(void *dest, const void *src, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/xen/include/xen/libelf.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: elf_memmove_unchecked
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void *elf_memmove_unchecked(void *dest, const void *src, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/include/xen/libelf.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    functionName: elf_memset_unchecked
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void *elf_memset_unchecked(void *s, int c, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elf_mark_broken
      Src: /src/xen/xen/include/xen/libelf.h:487,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/include/xen/libelf.h:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - elf
    - amount
    argTypes:
    - struct elf_binary*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 499
    functionName: ELF_ADVANCE_DEST
    functionSourceFile: /src/xen/xen/include/xen/libelf.h
    functionUses: 0
    functionsReached:
    - elf_mark_broken
    linkageType: ''
    returnType: void
    signature: void ELF_ADVANCE_DEST(struct elf_binary *elf, uint64_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: guest_handle_is_null
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_is_null(hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: guest_handle_add_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_add_offset(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: guest_handle_subtract_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_subtract_offset(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: guest_handle_cast
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_cast(hnd, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: guest_handle_const_cast
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_const_cast(hnd, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: guest_handle_to_param
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_to_param(hnd, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - type
    - ','
    - fld
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: guest_handle_for_field
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_for_field(hnd, type, fld)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: guest_handle_from_ptr
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_handle_from_ptr(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: const_guest_handle_from_ptr
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: const_guest_handle_from_ptr(ptr, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: copy_to_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_guest_offset(hnd, off, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: clear_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_guest_offset(hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: copy_from_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_from_guest_offset(ptr, hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: copy_field_to_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_field_to_guest(hnd, ptr, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: copy_field_from_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_field_from_guest(ptr, hnd, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: copy_to_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_guest(hnd, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: copy_from_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_from_guest(ptr, hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: clear_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clear_guest(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: __copy_to_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_to_guest_offset(hnd, off, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: __clear_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_guest_offset(hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: __copy_from_guest_offset
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_from_guest_offset(ptr, hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: __copy_field_to_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_field_to_guest(hnd, ptr, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: __copy_field_from_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_field_from_guest(ptr, hnd, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: __copy_to_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_to_guest(hnd, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: __copy_from_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_from_guest(ptr, hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: __clear_guest
    functionSourceFile: /src/xen/xen/include/xen/guest_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __clear_guest(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: preempt_count
    functionSourceFile: /src/xen/xen/include/xen/preempt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: preempt_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: preempt_disable
    functionSourceFile: /src/xen/xen/include/xen/preempt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: preempt_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: preempt_enable
    functionSourceFile: /src/xen/xen/include/xen/preempt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: preempt_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ASSERT_NOT_IN_ATOMIC
    functionSourceFile: /src/xen/xen/include/xen/preempt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_NOT_IN_ATOMIC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: CPUMASK_PR
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPUMASK_PR(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/cpumask.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: cpumask_check
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpumask_check(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/include/xen/cpumask.h:89,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - dstp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: cpumask_set_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 35
    functionsReached:
    - cpumask_check
    - set_bit
    linkageType: ''
    returnType: void
    signature: void cpumask_set_cpu(int cpu, volatile cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/include/xen/cpumask.h:94,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - dstp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: __cpumask_set_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 8
    functionsReached:
    - cpumask_check
    - __set_bit
    linkageType: ''
    returnType: void
    signature: void __cpumask_set_cpu(int cpu, cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/include/xen/cpumask.h:99,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - dstp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: cpumask_clear_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 28
    functionsReached:
    - cpumask_check
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void cpumask_clear_cpu(int cpu, volatile cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __clear_bit
      Src: /src/xen/xen/include/xen/cpumask.h:104,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - dstp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: __cpumask_clear_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 6
    functionsReached:
    - cpumask_check
    - __clear_bit
    linkageType: ''
    returnType: void
    signature: void __cpumask_clear_cpu(int cpu, cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_fill
      Src: /src/xen/xen/include/xen/cpumask.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dstp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: cpumask_setall
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 9
    functionsReached:
    - bitmap_fill
    linkageType: ''
    returnType: void
    signature: void cpumask_setall(cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_zero
      Src: /src/xen/xen/include/xen/cpumask.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dstp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: cpumask_clear
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 13
    functionsReached:
    - bitmap_zero
    linkageType: ''
    returnType: void
    signature: void cpumask_clear(cpumask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/include/xen/cpumask.h:119,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - src
    argTypes:
    - unsigned int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: cpumask_test_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 20
    functionsReached:
    - cpumask_check
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool cpumask_test_cpu(unsigned int cpu, const cpumask_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/include/xen/cpumask.h:124,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - addr
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: cpumask_test_and_set_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached:
    - test_and_set_bit
    - cpumask_check
    linkageType: ''
    returnType: int
    signature: int cpumask_test_and_set_cpu(int cpu, volatile cpumask_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/include/xen/cpumask.h:129,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - addr
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: __cpumask_test_and_set_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - __test_and_set_bit
    - cpumask_check
    linkageType: ''
    returnType: int
    signature: int __cpumask_test_and_set_cpu(int cpu, cpumask_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/include/xen/cpumask.h:134,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - addr
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: cpumask_test_and_clear_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 4
    functionsReached:
    - test_and_clear_bit
    - cpumask_check
    linkageType: ''
    returnType: int
    signature: int cpumask_test_and_clear_cpu(int cpu, volatile cpumask_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/include/xen/cpumask.h:139,1
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - addr
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: __cpumask_test_and_clear_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached:
    - cpumask_check
    - __test_and_clear_bit
    linkageType: ''
    returnType: int
    signature: int __cpumask_test_and_clear_cpu(int cpu, cpumask_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_and
      Src: /src/xen/xen/include/xen/cpumask.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstp
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: cpumask_and
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 19
    functionsReached:
    - bitmap_and
    linkageType: ''
    returnType: void
    signature: "void cpumask_and(cpumask_t *dstp, const cpumask_t *src1p,\n\t\t\t
      \      const cpumask_t *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_or
      Src: /src/xen/xen/include/xen/cpumask.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstp
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: cpumask_or
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached:
    - bitmap_or
    linkageType: ''
    returnType: void
    signature: "void cpumask_or(cpumask_t *dstp, const cpumask_t *src1p,\n\t\t\t      const
      cpumask_t *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_xor
      Src: /src/xen/xen/include/xen/cpumask.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstp
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: cpumask_xor
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - bitmap_xor
    linkageType: ''
    returnType: void
    signature: "void cpumask_xor(cpumask_t *dstp, const cpumask_t *src1p,\n\t\t\t
      \      const cpumask_t *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_andnot
      Src: /src/xen/xen/include/xen/cpumask.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstp
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: cpumask_andnot
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 7
    functionsReached:
    - bitmap_andnot
    linkageType: ''
    returnType: void
    signature: "void cpumask_andnot(cpumask_t *dstp, const cpumask_t *src1p,\n\t\t\t\t
      \ const cpumask_t *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_complement
      Src: /src/xen/xen/include/xen/cpumask.h:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstp
    - srcp
    argTypes:
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: cpumask_complement
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached:
    - bitmap_complement
    linkageType: ''
    returnType: void
    signature: void cpumask_complement(cpumask_t *dstp, const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_equal
      Src: /src/xen/xen/include/xen/cpumask.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: cpumask_equal
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 5
    functionsReached:
    - bitmap_equal
    linkageType: ''
    returnType: int
    signature: "int cpumask_equal(const cpumask_t *src1p,\n\t\t\t\tconst cpumask_t
      *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_intersects
      Src: /src/xen/xen/include/xen/cpumask.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: cpumask_intersects
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 12
    functionsReached:
    - bitmap_intersects
    linkageType: ''
    returnType: int
    signature: "int cpumask_intersects(const cpumask_t *src1p,\n\t\t\t\t     const
      cpumask_t *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_subset
      Src: /src/xen/xen/include/xen/cpumask.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src1p
    - src2p
    argTypes:
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: cpumask_subset
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 4
    functionsReached:
    - bitmap_subset
    linkageType: ''
    returnType: int
    signature: "int cpumask_subset(const cpumask_t *src1p,\n\t\t\t\t const cpumask_t
      *src2p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_empty
      Src: /src/xen/xen/include/xen/cpumask.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: cpumask_empty
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 28
    functionsReached:
    - bitmap_empty
    linkageType: ''
    returnType: int
    signature: int cpumask_empty(const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_full
      Src: /src/xen/xen/include/xen/cpumask.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: cpumask_full
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - bitmap_full
    linkageType: ''
    returnType: int
    signature: int cpumask_full(const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_weight
      Src: /src/xen/xen/include/xen/cpumask.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: cpumask_weight
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 18
    functionsReached:
    - bitmap_weight
    linkageType: ''
    returnType: int
    signature: int cpumask_weight(const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_copy
      Src: /src/xen/xen/include/xen/cpumask.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstp
    - srcp
    argTypes:
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: cpumask_copy
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 22
    functionsReached:
    - bitmap_copy
    linkageType: ''
    returnType: void
    signature: void cpumask_copy(cpumask_t *dstp, const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/include/xen/cpumask.h:211,1
    - Dst: find_first_bit
      Src: /src/xen/xen/include/xen/cpumask.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 212
    functionName: cpumask_first
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 11
    functionsReached:
    - min_t
    - find_first_bit
    linkageType: ''
    returnType: int
    signature: int cpumask_first(const cpumask_t *srcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:218,1
    - Dst: min_t
      Src: /src/xen/xen/include/xen/cpumask.h:220,1
    - Dst: find_next_bit
      Src: /src/xen/xen/include/xen/cpumask.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - srcp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: cpumask_next
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 4
    functionsReached:
    - find_next_bit
    - cpumask_check
    - min_t
    linkageType: ''
    returnType: int
    signature: int cpumask_next(int n, const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_first
      Src: /src/xen/xen/include/xen/cpumask.h:228,1
    - Dst: cpumask_next
      Src: /src/xen/xen/include/xen/cpumask.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: cpumask_last
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached:
    - cpumask_next
    - cpumask_first
    linkageType: ''
    returnType: int
    signature: int cpumask_last(const cpumask_t *srcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_next
      Src: /src/xen/xen/include/xen/cpumask.h:237,1
    - Dst: cpumask_first
      Src: /src/xen/xen/include/xen/cpumask.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - srcp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: cpumask_cycle
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - cpumask_next
    - cpumask_first
    linkageType: ''
    returnType: int
    signature: int cpumask_cycle(int n, const cpumask_t *srcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/include/xen/cpumask.h:246,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/include/xen/cpumask.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - srcp
    argTypes:
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: cpumask_test_or_cycle
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached:
    - cpumask_cycle
    - cpumask_test_cpu
    linkageType: ''
    returnType: int
    signature: int cpumask_test_or_cycle(int n, const cpumask_t *srcp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_first
      Src: /src/xen/xen/include/xen/cpumask.h:254,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/include/xen/cpumask.h:255,1
    - Dst: get_random
      Src: /src/xen/xen/include/xen/cpumask.h:258,1
    - Dst: cpumask_next
      Src: /src/xen/xen/include/xen/cpumask.h:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - srcp
    argTypes:
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 268
    functionName: cpumask_any
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 7
    functionsReached:
    - cpumask_weight
    - cpumask_next
    - cpumask_first
    - get_random
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpumask_any(const cpumask_t *srcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_check
      Src: /src/xen/xen/include/xen/cpumask.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: cpumask_of
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 64
    functionsReached:
    - cpumask_check
    linkageType: ''
    returnType: cpumask_t
    signature: cpumask_t *cpumask_of(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maskp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: cpumask_bits
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpumask_bits(maskp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: DEFINE_PER_CPU_CPUMASK_VAR
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU_CPUMASK_VAR(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xmalloc
      Src: /src/xen/xen/include/xen/cpumask.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: alloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 10
    functionsReached:
    - _xmalloc
    linkageType: ''
    returnType: bool
    signature: bool alloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xmalloc
      Src: /src/xen/xen/include/xen/cpumask.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: cond_alloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached:
    - _xmalloc
    linkageType: ''
    returnType: bool
    signature: bool cond_alloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xzalloc
      Src: /src/xen/xen/include/xen/cpumask.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: zalloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 9
    functionsReached:
    - _xzalloc
    linkageType: ''
    returnType: bool
    signature: bool zalloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xzalloc
      Src: /src/xen/xen/include/xen/cpumask.h:338,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/include/xen/cpumask.h:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: cond_zalloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached:
    - _xzalloc
    - cpumask_clear
    linkageType: ''
    returnType: bool
    signature: bool cond_zalloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/include/xen/cpumask.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: free_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 10
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_cpumask_var(cpumask_var_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: FREE_CPUMASK_VAR
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_CPUMASK_VAR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: DEFINE_PER_CPU_CPUMASK_VAR
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PER_CPU_CPUMASK_VAR(sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: alloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool alloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear
      Src: /src/xen/xen/include/xen/cpumask.h:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: zalloc_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 9
    functionsReached:
    - cpumask_clear
    linkageType: ''
    returnType: bool
    signature: bool zalloc_cpumask_var(cpumask_var_t *mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mask
    argTypes:
    - cpumask_var_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: free_cpumask_var
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void free_cpumask_var(cpumask_var_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: FREE_CPUMASK_VAR
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_CPUMASK_VAR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cpu
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_cpu(cpu, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cpu
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_cpu(cpu, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 449
    functionName: num_online_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_online_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: num_possible_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_possible_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: num_present_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_present_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: cpu_online
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_online(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: cpu_possible
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_possible(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: cpu_present
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_present(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: num_online_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_online_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: num_possible_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_possible_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: num_present_cpus
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_present_cpus()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    functionName: cpu_online
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_online(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 460
    functionName: cpu_possible
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_possible(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 461
    functionName: cpu_present
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_present(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: for_each_possible_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_possible_cpu(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_online_cpu(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/include/xen/cpumask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_present_cpu(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/static-shmem.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: kernel_info_get_shm_mem
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: 'struct membanks *

      kernel_info_get_shm_mem(struct kernel_info *kinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/static-shmem.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: kernel_info_get_shm_mem_const
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: 'struct membanks *

      kernel_info_get_shm_mem_const(const struct kernel_info *kinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - kinfo
    - addrcells
    - sizecells
    argTypes:
    - struct kernel_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: make_resv_memory_node
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int make_resv_memory_node(const struct kernel_info *kinfo,\n                                        int
      addrcells, int sizecells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: process_shm
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int process_shm(struct domain *d, struct kernel_info *kinfo,\n                              const
      struct dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kinfo
    - rangeset
    argTypes:
    - struct kernel_info*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: remove_shm_from_rangeset
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int remove_shm_from_rangeset(const struct kernel_info *kinfo,\n                                           struct
      rangeset *rangeset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - kinfo
    - addrcells
    - sizecells
    argTypes:
    - struct kernel_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: make_shm_resv_memory_node
    functionSourceFile: /src/xen/xen/include/xen/static-shmem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int make_shm_resv_memory_node(const struct kernel_info *kinfo,\n                                            int
      addrcells, int sizecells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 5
    functionName: ROUNDUP
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: ROUNDDOWN
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDDOWN(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: IS_ALIGNED
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALIGNED(val, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: DIV_ROUND
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUND(n, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: DIV_ROUND_UP
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIV_ROUND_UP(n, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: ISOLATE_LSB
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISOLATE_LSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: MASK_EXTR
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_EXTR(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: MASK_INSR
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_INSR(v, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - dot
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - x
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: count_args_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: count_args_(dot, a1, a2, a3, a4, a5, a6, a7, a8, x, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: count_args
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: count_args(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - y
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: ARG1_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG1_(x, y...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - y
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: ARG2_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG2_(x, y...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - y
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ARG3_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG3_(x, y...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - y
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ARG4_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG4_(x, y...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ARG__
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG__(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ARG_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - x
    - ','
    - y
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: LASTARG
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LASTARG(x, y...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PASTE_
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PASTE_(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: PASTE
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PASTE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: __STR
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __STR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: STR
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: BUILD_BUG_ON
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 182
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: BUILD_BUG_ON_ZERO
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_BUG_ON_ZERO(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: BUILD_ERROR
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUILD_ERROR(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: HIDE
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIDE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: ABS
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: SWAP
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: ARRAY_SIZE
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 272
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: typeof_field
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typeof_field(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: sizeof_field
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_field(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: endof_field
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: endof_field(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: container_of
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 65
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: _p
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _p(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: min
    functionSourceFile: /src/xen/xen/include/xen/macros.h
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: sysctl_cov_op
    functionSourceFile: /src/xen/xen/include/xen/coverage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sysctl_cov_op(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - descr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: PERFCOUNTER
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFCOUNTER( name, descr )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - descr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: PERFCOUNTER_ARRAY
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFCOUNTER_ARRAY( name, descr, size )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: perfc_value
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_value(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: perfc_valuea
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_valuea(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: perfc_set
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_set(x,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: perfc_seta
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_seta(x,y,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: perfc_incr
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: perfc_decr
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_decr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: perfc_incra
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incra(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: perfc_add
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_add(x,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: perfc_adda
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_adda(x,y,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: perfc_incr_histo
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incr_histo(x,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: perfc_incr_histo
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incr_histo(x,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: perfc_value
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_value(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: perfc_valuea
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_valuea(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: perfc_set
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_set(x,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: perfc_seta
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_seta(x,y,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: perfc_incr
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: perfc_decr
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_decr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: perfc_incra
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incra(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: perfc_decra
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_decra(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: perfc_add
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_add(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: perfc_adda
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_adda(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: perfc_incr_histo
    functionSourceFile: /src/xen/xen/include/xen/perfc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: perfc_incr_histo(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: PFN_DOWN
    functionSourceFile: /src/xen/xen/include/xen/pfn.h
    functionUses: 69
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_DOWN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: PFN_UP
    functionSourceFile: /src/xen/xen/include/xen/pfn.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_UP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: round_pgup
    functionSourceFile: /src/xen/xen/include/xen/pfn.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_pgup(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: round_pgdown
    functionSourceFile: /src/xen/xen/include/xen/pfn.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: round_pgdown(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: prefetch
    functionSourceFile: /src/xen/xen/include/xen/prefetch.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prefetch(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: prefetchw
    functionSourceFile: /src/xen/xen/include/xen/prefetch.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prefetchw(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: spin_lock_prefetch
    functionSourceFile: /src/xen/xen/include/xen/prefetch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spin_lock_prefetch(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: vcpu_to_node
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vcpu_to_node(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: domain_to_node
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_to_node(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: cpu_to_node
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_node(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: parent_node
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parent_node(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: node_to_cpumask
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_to_cpumask(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/include/xen/numa.h:63,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/include/xen/numa.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: clear_node_cpumask
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached:
    - cpumask_clear_cpu
    - cpu_to_node
    linkageType: ''
    returnType: void
    signature: void clear_node_cpumask(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_pdx
      Src: /src/xen/xen/include/xen/numa.h:96,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/numa.h:98,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/numa.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: mfn_to_nid
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 1
    functionsReached:
    - ASSERT
    - mfn_to_pdx
    linkageType: ''
    returnType: nodeid_t
    signature: nodeid_t mfn_to_nid(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: NODE_DATA
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE_DATA(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: node_start_pfn
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_start_pfn(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: node_spanned_pages
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_spanned_pages(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: node_present_pages
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_present_pages(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: node_end_pfn
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_end_pfn(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: cpu_to_node
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_node(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: node_to_cpumask
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_to_cpumask(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: arch_want_default_dmazone
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_want_default_dmazone()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: node_spanned_pages
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_spanned_pages(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: node_present_pages
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_present_pages(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: node_start_pfn
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_start_pfn(nid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: __node_distance
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __node_distance(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mfn_to_nid
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: nodeid_t
    signature: nodeid_t mfn_to_nid(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: page_to_nid
    functionSourceFile: /src/xen/xen/include/xen/numa.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_nid(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: BITOP_MASK
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITOP_MASK(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: BITOP_WORD
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITOP_WORD(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: bitop_bad_size
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitop_bad_size(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: GENMASK
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENMASK(h, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: GENMASK_ULL
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GENMASK_ULL(h, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITOP_MASK
      Src: /src/xen/xen/include/xen/bitops.h:56,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/include/xen/bitops.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: generic__test_and_set_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    linkageType: ''
    returnType: always_inline
    signature: always_inline generic__test_and_set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITOP_MASK
      Src: /src/xen/xen/include/xen/bitops.h:76,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/include/xen/bitops.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    functionName: generic__test_and_clear_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    linkageType: ''
    returnType: always_inline
    signature: always_inline generic__test_and_clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITOP_MASK
      Src: /src/xen/xen/include/xen/bitops.h:96,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/include/xen/bitops.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: generic__test_and_change_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    linkageType: ''
    returnType: always_inline
    signature: always_inline generic__test_and_change_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITOP_MASK
      Src: /src/xen/xen/include/xen/bitops.h:115,1
    - Dst: BITOP_WORD
      Src: /src/xen/xen/include/xen/bitops.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: generic_test_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - BITOP_MASK
    - BITOP_WORD
    linkageType: ''
    returnType: always_inline
    signature: always_inline generic_test_bit(int nr, const volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch__test_and_set_bit
      Src: /src/xen/xen/include/xen/bitops.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: __test_and_set_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 11
    functionsReached:
    - arch__test_and_set_bit
    linkageType: ''
    returnType: always_inline
    signature: always_inline __test_and_set_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: __test_and_set_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __test_and_set_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch__test_and_clear_bit
      Src: /src/xen/xen/include/xen/bitops.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: __test_and_clear_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 7
    functionsReached:
    - arch__test_and_clear_bit
    linkageType: ''
    returnType: always_inline
    signature: always_inline __test_and_clear_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: __test_and_clear_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __test_and_clear_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch__test_and_change_bit
      Src: /src/xen/xen/include/xen/bitops.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: __test_and_change_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 1
    functionsReached:
    - arch__test_and_change_bit
    linkageType: ''
    returnType: always_inline
    signature: always_inline __test_and_change_bit(int nr, volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: __test_and_change_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __test_and_change_bit(nr, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_test_bit
      Src: /src/xen/xen/include/xen/bitops.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nr
    - addr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: test_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 109
    functionsReached:
    - arch_test_bit
    linkageType: ''
    returnType: always_inline
    signature: always_inline test_bit(int nr, const volatile void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: test_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_bit(nr, addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitops.h:217,1
    - Dst: __builtin_ffs
      Src: /src/xen/xen/include/xen/bitops.h:218,1
    - Dst: arch_ffs
      Src: /src/xen/xen/include/xen/bitops.h:221,1
    - Dst: generic_ffsl
      Src: /src/xen/xen/include/xen/bitops.h:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 225
    functionName: ffs
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 6
    functionsReached:
    - __builtin_ffs
    - generic_ffsl
    - arch_ffs
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline
    signature: always_inline ffs(unsigned int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitops.h:229,1
    - Dst: __builtin_ffsl
      Src: /src/xen/xen/include/xen/bitops.h:230,1
    - Dst: arch_ffsl
      Src: /src/xen/xen/include/xen/bitops.h:233,1
    - Dst: generic_ffsl
      Src: /src/xen/xen/include/xen/bitops.h:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: ffsl
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 7
    functionsReached:
    - __builtin_ffsl
    - generic_ffsl
    - arch_ffsl
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline
    signature: always_inline ffsl(unsigned long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffsl
      Src: /src/xen/xen/include/xen/bitops.h:242,1
    - Dst: ffs
      Src: /src/xen/xen/include/xen/bitops.h:244,1
    - Dst: ffs
      Src: /src/xen/xen/include/xen/bitops.h:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: ffs64
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 1
    functionsReached:
    - ffs
    - ffsl
    linkageType: ''
    returnType: always_inline
    signature: always_inline ffs64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: ffs_g
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ffs_g(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitops.h:259,1
    - Dst: __builtin_clz
      Src: /src/xen/xen/include/xen/bitops.h:260,1
    - Dst: arch_fls
      Src: /src/xen/xen/include/xen/bitops.h:263,1
    - Dst: generic_flsl
      Src: /src/xen/xen/include/xen/bitops.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: fls
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 11
    functionsReached:
    - generic_flsl
    - __builtin_clz
    - arch_fls
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline
    signature: always_inline fls(unsigned int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitops.h:271,1
    - Dst: __builtin_clzl
      Src: /src/xen/xen/include/xen/bitops.h:272,1
    - Dst: arch_flsl
      Src: /src/xen/xen/include/xen/bitops.h:275,1
    - Dst: generic_flsl
      Src: /src/xen/xen/include/xen/bitops.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: flsl
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 7
    functionsReached:
    - arch_flsl
    - __builtin_clzl
    - generic_flsl
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline
    signature: always_inline flsl(unsigned long x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsl
      Src: /src/xen/xen/include/xen/bitops.h:284,1
    - Dst: fls
      Src: /src/xen/xen/include/xen/bitops.h:289,1
    - Dst: fls
      Src: /src/xen/xen/include/xen/bitops.h:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 291
    functionName: fls64
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - fls
    - flsl
    linkageType: ''
    returnType: always_inline
    signature: always_inline fls64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - iter
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_set_bit(iter, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: multiple_bits_set
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: multiple_bits_set(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitops.h:319,1
    - Dst: __builtin_popcountl
      Src: /src/xen/xen/include/xen/bitops.h:320,1
    - Dst: arch_hweightl
      Src: /src/xen/xen/include/xen/bitops.h:323,1
    - Dst: generic_hweightl
      Src: /src/xen/xen/include/xen/bitops.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 327
    functionName: hweightl
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 1
    functionsReached:
    - arch_hweightl
    - __builtin_popcountl
    - generic_hweightl
    - __builtin_constant_p
    linkageType: ''
    returnType: always_inline
    signature: always_inline hweightl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hweightl
      Src: /src/xen/xen/include/xen/bitops.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: hweight32
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - hweightl
    linkageType: ''
    returnType: always_inline
    signature: always_inline hweight32(uint32_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hweightl
      Src: /src/xen/xen/include/xen/bitops.h:337,1
    - Dst: hweight32
      Src: /src/xen/xen/include/xen/bitops.h:339,1
    - Dst: hweight32
      Src: /src/xen/xen/include/xen/bitops.h:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: hweight64
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 2
    functionsReached:
    - hweight32
    - hweightl
    linkageType: ''
    returnType: always_inline
    signature: always_inline hweight64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fls
      Src: /src/xen/xen/include/xen/bitops.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: get_bitmask_order
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached:
    - fls
    linkageType: ''
    returnType: int
    signature: int get_bitmask_order(unsigned int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fls
      Src: /src/xen/xen/include/xen/bitops.h:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 408
    functionName: get_count_order
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 4
    functionsReached:
    - fls
    linkageType: ''
    returnType: int
    signature: int get_count_order(unsigned int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - word
    - shift
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: rol32
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rol32(uint32_t word, unsigned int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - value
    - shift
    argTypes:
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 425
    functionName: ror8
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ror8(uint8_t value, unsigned int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - word
    - shift
    argTypes:
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: ror32
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ror32(uint32_t word, unsigned int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 440
    functionName: __L2
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: __L4
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: __L8
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: __L16
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __L16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: ilog2
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ilog2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: BIT_WORD
    functionSourceFile: /src/xen/xen/include/xen/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT_WORD(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: bswap16
    functionSourceFile: /src/xen/xen/include/xen/byteswap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: bswap32
    functionSourceFile: /src/xen/xen/include/xen/byteswap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: bswap64
    functionSourceFile: /src/xen/xen/include/xen/byteswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: bswapl
    functionSourceFile: /src/xen/xen/include/xen/byteswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswapl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: bswapl
    functionSourceFile: /src/xen/xen/include/xen/byteswap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswapl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: DMI_MATCH
    functionSourceFile: /src/xen/xen/include/xen/dmi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMI_MATCH(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - m1
    - ','
    - m2
    - ','
    - m3
    - ','
    - m4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: DMI_MATCH4
    functionSourceFile: /src/xen/xen/include/xen/dmi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMI_MATCH4(m1, m2, m3, m4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m1
    - ','
    - m2
    - ','
    - m3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: DMI_MATCH3
    functionSourceFile: /src/xen/xen/include/xen/dmi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMI_MATCH3(m1, m2, m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: DMI_MATCH2
    functionSourceFile: /src/xen/xen/include/xen/dmi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMI_MATCH2(m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: DMI_MATCH1
    functionSourceFile: /src/xen/xen/include/xen/dmi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMI_MATCH1(m1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: VMCOREINFO_PAGESIZE
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_PAGESIZE(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: VMCOREINFO_SYMBOL
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_SYMBOL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - alias
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: VMCOREINFO_SYMBOL_ALIAS
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_SYMBOL_ALIAS(alias, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: VMCOREINFO_STRUCT_SIZE
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_STRUCT_SIZE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: VMCOREINFO_OFFSET
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_OFFSET(name, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - sub
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: VMCOREINFO_OFFSET_SUB
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMCOREINFO_OFFSET_SUB(name, sub, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: kexec_early_calculations
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kexec_early_calculations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyhandler_crash_action
      Src: /src/xen/xen/include/xen/kexec.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum crash_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: kexec_crash
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 0
    functionsReached:
    - keyhandler_crash_action
    linkageType: ''
    returnType: void
    signature: void kexec_crash(enum crash_reason reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: kexec_crash_save_cpu
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kexec_crash_save_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - system_ram
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: set_kexec_crash_area_size
    functionSourceFile: /src/xen/xen/include/xen/kexec.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_kexec_crash_area_size(u64 system_ram)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: __DEFINE_COMPAT_HANDLE
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DEFINE_COMPAT_HANDLE(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: DEFINE_COMPAT_HANDLE
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_COMPAT_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: COMPAT_HANDLE
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPAT_HANDLE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: compat_handle_is_null
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_is_null(hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: compat_handle_add_offset
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_add_offset(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - chnd
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: compat_handle_cast
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_cast(chnd, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ghnd
    - ','
    - chnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: guest_from_compat_handle
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guest_from_compat_handle(ghnd, chnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: copy_to_compat_offset
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_compat_offset(hnd, off, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: copy_from_compat_offset
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_from_compat_offset(ptr, hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: copy_to_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_to_compat(hnd, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: copy_from_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_from_compat(ptr, hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: copy_field_to_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_field_to_compat(hnd, ptr, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: copy_field_from_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: copy_field_from_compat(ptr, hnd, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: compat_handle_okay
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_okay(hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hnd
    - ','
    - 'off'
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: __copy_to_compat_offset
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_to_compat_offset(hnd, off, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - 'off'
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: __copy_from_compat_offset
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_from_compat_offset(ptr, hnd, off, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: __copy_to_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_to_compat(hnd, ptr, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: __copy_from_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_from_compat(ptr, hnd, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hnd
    - ','
    - ptr
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: __copy_field_to_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_field_to_compat(hnd, ptr, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - hnd
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: __copy_field_from_compat
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __copy_field_from_compat(ptr, hnd, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: CHECK_NAME
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NAME(name, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - k
    - ','
    - n
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: CHECK_NAME_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NAME_(k, n, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: CHECK_TYPE
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TYPE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: CHECK_TYPE_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TYPE_(k, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: CHECK_SIZE
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - k
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: CHECK_SIZE_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE_(k, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: CHECK_FIELD_COMMON
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FIELD_COMMON(name, t, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - k
    - ','
    - name
    - ','
    - n
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: CHECK_FIELD_COMMON_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FIELD_COMMON_(k, name, n, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: CHECK_FIELD
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FIELD(t, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - k
    - ','
    - n
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: CHECK_FIELD_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FIELD_(k, n, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - f1
    - ','
    - f2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: CHECK_SUBFIELD_1
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SUBFIELD_1(t, f1, f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - k
    - ','
    - n
    - ','
    - f1
    - ','
    - f2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: CHECK_SUBFIELD_1_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SUBFIELD_1_(k, n, f1, f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - t
    - ','
    - f1
    - ','
    - f2
    - ','
    - f3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: CHECK_SUBFIELD_2
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SUBFIELD_2(t, f1, f2, f3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - k
    - ','
    - n
    - ','
    - f1
    - ','
    - f2
    - ','
    - f3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: CHECK_SUBFIELD_2_
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SUBFIELD_2_(k, n, f1, f2, f3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: compat_handle_is_null
    functionSourceFile: /src/xen/xen/include/xen/compat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compat_handle_is_null(hnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: HYPFS_DIR_INIT_FUNC
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_DIR_INIT_FUNC(var, nam, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: HYPFS_DIR_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_DIR_INIT(var, nam)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - var
    - ','
    - typ
    - ','
    - nam
    - ','
    - msz
    - ','
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: HYPFS_VARSIZE_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_VARSIZE_INIT(var, typ, nam, msz, fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - nam
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: HYPFS_STRING_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_STRING_INIT(var, nam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/include/xen/hypfs.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - leaf
    - str
    argTypes:
    - struct hypfs_entry_leaf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: hypfs_string_set_reference
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: "void hypfs_string_set_reference(struct hypfs_entry_leaf *leaf,\n                                              const
      char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - var
    - ','
    - typ
    - ','
    - nam
    - ','
    - contvar
    - ','
    - fn
    - ','
    - wr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: HYPFS_FIXEDSIZE_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_FIXEDSIZE_INIT(var, typ, nam, contvar, fn, wr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: HYPFS_UINT_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_UINT_INIT(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: HYPFS_UINT_INIT_WRITABLE
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_UINT_INIT_WRITABLE(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: HYPFS_INT_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_INT_INIT(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: HYPFS_INT_INIT_WRITABLE
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_INT_INIT_WRITABLE(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: HYPFS_BOOL_INIT
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_BOOL_INIT(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - nam
    - ','
    - contvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 163
    functionName: HYPFS_BOOL_INIT_WRITABLE
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HYPFS_BOOL_INIT_WRITABLE(var, nam, contvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: hypfs_alloc_dyndata
    functionSourceFile: /src/xen/xen/include/xen/hypfs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hypfs_alloc_dyndata(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - TAG
    - ','
    - NAME
    - ','
    - ATTRS
    - ','
    - MEMBERS
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: __struct_group
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __struct_group(TAG, NAME, ATTRS, MEMBERS...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: typecheck
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: typecheck(type,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: is_kernel
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_kernel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: is_kernel_text
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_kernel_text(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: is_kernel_rodata
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_kernel_rodata(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: is_kernel_inittext
    functionSourceFile: /src/xen/xen/include/xen/kernel.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_kernel_inittext(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: rb_parent
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rb_parent(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: rb_entry
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rb_entry(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: RB_EMPTY_ROOT
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY_ROOT(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: RB_EMPTY_NODE
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_EMPTY_NODE(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: RB_CLEAR_NODE
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RB_CLEAR_NODE(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - parent
    - rb_link
    argTypes:
    - struct rb_node*
    - struct rb_node*
    - struct rb_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: rb_link_node
    functionSourceFile: /src/xen/xen/include/xen/rbtree.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rb_link_node(struct rb_node * node, struct rb_node * parent,\n\t\t\t\tstruct
      rb_node ** rb_link)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: get_unaligned_t
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unaligned_t(type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - val
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: put_unaligned_t
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unaligned_t(type, val, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: get_unaligned
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unaligned(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: put_unaligned
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_unaligned(val, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be16_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:29,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: get_unaligned_be16
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - get_unaligned_t
    - be16_to_cpu
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_unaligned_be16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:34,1
    - Dst: cpu_to_be16
      Src: /src/xen/xen/include/xen/unaligned.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: put_unaligned_be16
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - put_unaligned_t
    - cpu_to_be16
    linkageType: ''
    returnType: void
    signature: void put_unaligned_be16(uint16_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:39,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: get_unaligned_be32
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - get_unaligned_t
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_unaligned_be32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:44,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/include/xen/unaligned.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: put_unaligned_be32
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - put_unaligned_t
    - cpu_to_be32
    linkageType: ''
    returnType: void
    signature: void put_unaligned_be32(uint32_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:49,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: get_unaligned_be64
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - be64_to_cpu
    - get_unaligned_t
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_unaligned_be64(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:54,1
    - Dst: cpu_to_be64
      Src: /src/xen/xen/include/xen/unaligned.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: put_unaligned_be64
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - put_unaligned_t
    - cpu_to_be64
    linkageType: ''
    returnType: void
    signature: void put_unaligned_be64(uint64_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le16_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:59,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: get_unaligned_le16
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - le16_to_cpu
    - get_unaligned_t
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_unaligned_le16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:64,1
    - Dst: cpu_to_le16
      Src: /src/xen/xen/include/xen/unaligned.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint16_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: put_unaligned_le16
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - put_unaligned_t
    - cpu_to_le16
    linkageType: ''
    returnType: void
    signature: void put_unaligned_le16(uint16_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:69,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: get_unaligned_le32
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 6
    functionsReached:
    - le32_to_cpu
    - get_unaligned_t
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_unaligned_le32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:74,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/include/xen/unaligned.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: put_unaligned_le32
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - put_unaligned_t
    - cpu_to_le32
    linkageType: ''
    returnType: void
    signature: void put_unaligned_le32(uint32_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le64_to_cpu
      Src: /src/xen/xen/include/xen/unaligned.h:79,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: get_unaligned_le64
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - get_unaligned_t
    - le64_to_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_unaligned_le64(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_t
      Src: /src/xen/xen/include/xen/unaligned.h:84,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/include/xen/unaligned.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: put_unaligned_le64
    functionSourceFile: /src/xen/xen/include/xen/unaligned.h
    functionUses: 0
    functionsReached:
    - cpu_to_le64
    - put_unaligned_t
    linkageType: ''
    returnType: void
    signature: void put_unaligned_le64(uint64_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: argo_init
    functionSourceFile: /src/xen/xen/include/xen/argo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int argo_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: argo_destroy
    functionSourceFile: /src/xen/xen/include/xen/argo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void argo_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: argo_soft_reset
    functionSourceFile: /src/xen/xen/include/xen/argo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void argo_soft_reset(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: __map_domain_page
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __map_domain_page(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page_global
      Src: /src/xen/xen/include/xen/domain_page.h:51,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/include/xen/domain_page.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: __map_domain_page_global
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 8
    functionsReached:
    - page_to_mfn
    - map_domain_page_global
    linkageType: ''
    returnType: void
    signature: void *__map_domain_page_global(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: map_domain_page
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 175
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: map_domain_page(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: __map_domain_page
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __map_domain_page(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: unmap_domain_page
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 160
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unmap_domain_page(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: domain_page_map_to_mfn
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_page_map_to_mfn(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __mfn_to_virt
      Src: /src/xen/xen/include/xen/domain_page.h:63,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/domain_page.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: map_domain_page_global
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 18
    functionsReached:
    - mfn_x
    - __mfn_to_virt
    linkageType: ''
    returnType: void
    signature: void *map_domain_page_global(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_to_virt
      Src: /src/xen/xen/include/xen/domain_page.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: __map_domain_page_global
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 8
    functionsReached:
    - page_to_virt
    linkageType: ''
    returnType: void
    signature: void *__map_domain_page_global(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: UNMAP_DOMAIN_PAGE
    functionSourceFile: /src/xen/xen/include/xen/domain_page.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNMAP_DOMAIN_PAGE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: alloc_xenheap_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloc_xenheap_page()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: free_xenheap_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_xenheap_page(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: FREE_XENHEAP_PAGES
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_XENHEAP_PAGES(p, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: FREE_XENHEAP_PAGE
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_XENHEAP_PAGE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: alloc_domheap_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alloc_domheap_page(d,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: free_domheap_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_domheap_page(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: FREE_DOMHEAP_PAGES
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_DOMHEAP_PAGES(p, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: FREE_DOMHEAP_PAGE
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_DOMHEAP_PAGE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: MEMF_node
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMF_node(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: MEMF_get_node
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMF_get_node(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: MEMF_bits
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEMF_bits(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/include/xen/mm.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: is_special_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 14
    functionsReached:
    - is_xen_heap_page
    linkageType: ''
    returnType: bool
    signature: bool is_special_page(const struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: PAGE_LIST_HEAD_INIT
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_LIST_HEAD_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: PAGE_LIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_LIST_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: INIT_PAGE_LIST_HEAD
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_PAGE_LIST_HEAD(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: INIT_PAGE_LIST_ENTRY
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_PAGE_LIST_ENTRY(ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: page_list_empty
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool page_list_empty(const struct page_list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: page_list_first
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_first(const struct page_list_head *head)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: page_list_last
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_last(const struct page_list_head *head)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: page_list_next
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached:
    - pdx_to_page
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\npage_list_next(const struct page_info *page,\n
      \              const struct page_list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: page_list_prev
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached:
    - pdx_to_page
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\npage_list_prev(const struct page_info *page,\n
      \              const struct page_list_head *head)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:307,1
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: page_list_add
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 10
    functionsReached:
    - page_to_pdx
    linkageType: ''
    returnType: void
    signature: void page_list_add(struct page_info *page, struct page_list_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:324,1
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 333
    functionName: page_list_add_tail
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 21
    functionsReached:
    - page_to_pdx
    linkageType: ''
    returnType: void
    signature: void page_list_add_tail(struct page_info *page, struct page_list_head
      *head)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - page
    - head
    - next
    - prev
    argTypes:
    - struct page_info*
    - struct page_list_head*
    - struct page_info*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 358
    functionName: __page_list_del_head
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool __page_list_del_head(struct page_info *page, struct page_list_head
      *head,\n                     struct page_info *next, struct page_info *prev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:362,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:363,1
    - Dst: __page_list_del_head
      Src: /src/xen/xen/include/xen/mm.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: page_list_del
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 10
    functionsReached:
    - __page_list_del_head
    - pdx_to_page
    linkageType: ''
    returnType: void
    signature: void page_list_del(struct page_info *page, struct page_list_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:375,1
    - Dst: pdx_to_page
      Src: /src/xen/xen/include/xen/mm.h:376,1
    - Dst: __page_list_del_head
      Src: /src/xen/xen/include/xen/mm.h:378,1
    - Dst: __page_list_del_head
      Src: /src/xen/xen/include/xen/mm.h:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - page
    - head1
    - head2
    argTypes:
    - struct page_info*
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 384
    functionName: page_list_del2
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached:
    - __page_list_del_head
    - pdx_to_page
    linkageType: ''
    returnType: void
    signature: "void page_list_del2(struct page_info *page, struct page_list_head
      *head1,\n               struct page_list_head *head2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_list_del
      Src: /src/xen/xen/include/xen/mm.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: page_list_remove_head
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 17
    functionsReached:
    - page_list_del
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_remove_head(struct page_list_head *head)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_list_empty
      Src: /src/xen/xen/include/xen/mm.h:398,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/include/xen/mm.h:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: page_list_move
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached:
    - page_list_empty
    - INIT_PAGE_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void page_list_move(struct page_list_head *dst, struct page_list_head
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_list_empty
      Src: /src/xen/xen/include/xen/mm.h:409,1
    - Dst: page_list_empty
      Src: /src/xen/xen/include/xen/mm.h:412,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/mm.h:423,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/mm.h:424,1
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:427,1
    - Dst: page_to_pdx
      Src: /src/xen/xen/include/xen/mm.h:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 429
    functionName: page_list_splice
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached:
    - page_list_empty
    - page_to_pdx
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void page_list_splice(struct page_list_head *list, struct page_list_head
      *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: page_list_for_each
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - tmp
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: page_list_for_each_safe
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each_safe(pos, tmp, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - tmp
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: page_list_for_each_safe_reverse
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each_safe_reverse(pos, tmp, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/include/xen/mm.h:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: page_list_empty
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 10
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool page_list_empty(const struct page_list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_first_entry
      Src: /src/xen/xen/include/xen/mm.h:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: page_list_first
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached:
    - list_first_entry
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_first(const struct page_list_head *head)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_last_entry
      Src: /src/xen/xen/include/xen/mm.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: page_list_last
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached:
    - list_last_entry
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_last(const struct page_list_head *head)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/include/xen/mm.h:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: page_list_next
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\npage_list_next(const struct page_info *page,\n
      \              const struct page_list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/include/xen/mm.h:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: page_list_prev
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *\npage_list_prev(const struct page_info *page,\n
      \              const struct page_list_head *head)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add
      Src: /src/xen/xen/include/xen/mm.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: page_list_add
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 10
    functionsReached:
    - list_add
    linkageType: ''
    returnType: void
    signature: void page_list_add(struct page_info *page, struct page_list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/include/xen/mm.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: page_list_add_tail
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 21
    functionsReached:
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void page_list_add_tail(struct page_info *page, struct page_list_head
      *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/include/xen/mm.h:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - head
    argTypes:
    - struct page_info*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: page_list_del
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 11
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: void page_list_del(struct page_info *page, struct page_list_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/include/xen/mm.h:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - page
    - head1
    - head2
    argTypes:
    - struct page_info*
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: page_list_del2
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: "void page_list_del2(struct page_info *page, struct page_list_head
      *head1,\n               struct page_list_head *head2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_list_empty
      Src: /src/xen/xen/include/xen/mm.h:501,1
    - Dst: page_list_first
      Src: /src/xen/xen/include/xen/mm.h:504,1
    - Dst: list_del
      Src: /src/xen/xen/include/xen/mm.h:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: page_list_remove_head
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 17
    functionsReached:
    - page_list_empty
    - list_del
    - page_list_first
    linkageType: ''
    returnType: struct page_info
    signature: 'struct page_info *

      page_list_remove_head(struct page_list_head *head)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/include/xen/mm.h:511,1
    - Dst: list_replace_init
      Src: /src/xen/xen/include/xen/mm.h:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: page_list_move
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 1
    functionsReached:
    - list_replace_init
    - list_empty
    linkageType: ''
    returnType: void
    signature: void page_list_move(struct page_list_head *dst, struct page_list_head
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_splice
      Src: /src/xen/xen/include/xen/mm.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - head
    argTypes:
    - struct page_list_head*
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 518
    functionName: page_list_splice
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached:
    - list_splice
    linkageType: ''
    returnType: void
    signature: void page_list_splice(struct page_list_head *list, struct page_list_head
      *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: page_list_for_each
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each(pos, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - tmp
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: page_list_for_each_safe
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each_safe(pos, tmp, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pos
    - ','
    - tmp
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: page_list_for_each_safe_reverse
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_list_for_each_safe_reverse(pos, tmp, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 536
    functionName: get_order_from_bytes
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_order_from_bytes(paddr_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nr_pages
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: get_order_from_pages
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_order_from_pages(unsigned long nr_pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: arch_free_heap_page
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_free_heap_page(d, pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tlbflush_current_time
      Src: /src/xen/xen/include/xen/mm.h:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - need_tlbflush
    - page
    - tlbflush_timestamp
    argTypes:
    - bool*
    - struct page_info*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 606
    functionName: accumulate_tlbflush
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached:
    - tlbflush_current_time
    linkageType: ''
    returnType: void
    signature: "void accumulate_tlbflush(bool *need_tlbflush,\n                                       const
      struct page_info *page,\n                                       uint32_t *tlbflush_timestamp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_copy
      Src: /src/xen/xen/include/xen/mm.h:612,1
    - Dst: tlbflush_filter
      Src: /src/xen/xen/include/xen/mm.h:613,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/include/xen/mm.h:614,1
    - Dst: perfc_incr
      Src: /src/xen/xen/include/xen/mm.h:616,1
    - Dst: arch_flush_tlb_mask
      Src: /src/xen/xen/include/xen/mm.h:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tlbflush_timestamp
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 619
    functionName: filtered_flush_tlb_mask
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached:
    - perfc_incr
    - cpumask_empty
    - arch_flush_tlb_mask
    - tlbflush_filter
    - cpumask_copy
    linkageType: ''
    returnType: void
    signature: void filtered_flush_tlb_mask(uint32_t tlbflush_timestamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/include/xen/mm.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - page
    - flags
    argTypes:
    - struct page_info*
    - enum XENSHARE_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: share_xen_page_with_privileged_guests
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 2
    functionsReached:
    - share_xen_page_with_guest
    linkageType: ''
    returnType: void
    signature: "void share_xen_page_with_privileged_guests(\n    struct page_info
      *page, enum XENSHARE_flags flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/include/xen/mm.h:647,1
    - Dst: BUG_ON
      Src: /src/xen/xen/include/xen/mm.h:649,1
    - Dst: put_page
      Src: /src/xen/xen/include/xen/mm.h:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 652
    functionName: put_page_alloc_ref
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 11
    functionsReached:
    - test_and_clear_bit
    - BUG_ON
    - put_page
    linkageType: ''
    returnType: void
    signature: void put_page_alloc_ref(struct page_info *page)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: domain_clamp_alloc_bitsize
    functionSourceFile: /src/xen/xen/include/xen/mm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_clamp_alloc_bitsize(d, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xxh64
      Src: /src/xen/xen/include/xen/xxhash.h:127,1
    - Dst: xxh32
      Src: /src/xen/xen/include/xen/xxhash.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input
    - length
    - seed
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: xxhash
    functionSourceFile: /src/xen/xen/include/xen/xxhash.h
    functionUses: 0
    functionsReached:
    - xxh32
    - xxh64
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long xxhash(const void *input, size_t length,\n\t\t\t\t   uint64_t
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: NOTIFIER_HEAD
    functionSourceFile: /src/xen/xen/include/xen/notifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOTIFIER_HEAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: notifier_from_errno
    functionSourceFile: /src/xen/xen/include/xen/notifier.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int notifier_from_errno(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: notifier_to_errno
    functionSourceFile: /src/xen/xen/include/xen/notifier.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int notifier_to_errno(int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: barrier
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: barrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: likely
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 373
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: unlikely
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 315
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: unreachable
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unreachable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: __section
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __section(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: __section
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __section(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: __used_section
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __used_section(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: __text_section
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __text_section(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: __aligned
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __aligned(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: __nonnull
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __nonnull(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: offsetof
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: __must_be_array
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __must_be_array(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: OPTIMIZER_HIDE_VAR
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIMIZER_HIDE_VAR(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: RELOC_HIDE
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELOC_HIDE(ptr, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: gcc11_wrap
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gcc11_wrap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: gcc11_wrap
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gcc11_wrap(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'yes'
    - ','
    - 'no'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: ASM_FLAG_OUT
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_FLAG_OUT(yes, no)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - 'yes'
    - ','
    - 'no'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: ASM_FLAG_OUT
    functionSourceFile: /src/xen/xen/include/xen/compiler.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_FLAG_OUT(yes, no)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/include/xen/iocap.h:18,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/include/xen/iocap.h:19,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/include/xen/iocap.h:21,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/include/xen/iocap.h:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - d
    - s
    - e
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 30
    functionName: iomem_permit_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 5
    functionsReached:
    - memory_type_changed
    - rangeset_add_range
    - cache_flush_permitted
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int iomem_permit_access(struct domain *d, unsigned long s,\n                                      unsigned
      long e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/include/xen/iocap.h:35,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/include/xen/iocap.h:37,1
    - Dst: cache_flush_permitted
      Src: /src/xen/xen/include/xen/iocap.h:37,1
    - Dst: memory_type_changed
      Src: /src/xen/xen/include/xen/iocap.h:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - d
    - s
    - e
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: iomem_deny_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 9
    functionsReached:
    - cache_flush_permitted
    - memory_type_changed
    - is_iommu_enabled
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: "int iomem_deny_access(struct domain *d, unsigned long s,\n                                    unsigned
      long e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: iomem_access_permitted
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iomem_access_permitted(d, s, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: irq_permit_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_permit_access(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: irq_deny_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_deny_access(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: irqs_permit_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irqs_permit_access(d, s, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: irqs_deny_access
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irqs_deny_access(d, s, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: irq_access_permitted
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_access_permitted(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: pirq_access_permitted
    functionSourceFile: /src/xen/xen/include/xen/iocap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_access_permitted(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: bug_loc
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_loc(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: bug_ptr
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_ptr(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: bug_line
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_line(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: bug_msg
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bug_msg(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: BUG_CHECK_LINE_WIDTH
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_CHECK_LINE_WIDTH(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: BUG_CHECK_LINE_WIDTH
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_CHECK_LINE_WIDTH(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - second_frame
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: _ASM_BUGFRAME_TEXT
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_BUGFRAME_TEXT(second_frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - line
    - ','
    - ptr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: _ASM_BUGFRAME_INFO
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ASM_BUGFRAME_INFO(type, line, ptr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - line
    - ','
    - ptr
    - ','
    - second_frame
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: BUG_FRAME
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_FRAME(type, line, ptr, second_frame, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_FRAME
      Src: /src/xen/xen/include/xen/bug.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - bug_fn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: always_inline::run_in_exception_handler
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached:
    - BUG_FRAME
    linkageType: ''
    returnType: void
    signature: void always_inline run_in_exception_handler(bug_fn_t *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: WARN
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: BUG
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 161
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: assert_failed
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_failed(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: BUG_ON
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 580
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: WARN_ON
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN_ON(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: ASSERT
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 972
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: ASSERT_UNREACHABLE
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 223
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: ASSERT
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 972
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: ASSERT_UNREACHABLE
    functionSourceFile: /src/xen/xen/include/xen/bug.h
    functionUses: 223
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: L1_CACHE_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/cache.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L1_CACHE_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: cpu_is_offline
    functionSourceFile: /src/xen/xen/include/xen/smp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_is_offline(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: smp_send_event_check_cpu
    functionSourceFile: /src/xen/xen/include/xen/smp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smp_send_event_check_cpu(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: on_selected_cpus
      Src: /src/xen/xen/include/xen/smp.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - wait
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: on_each_cpu
    functionSourceFile: /src/xen/xen/include/xen/smp.h
    functionUses: 5
    functionsReached:
    - on_selected_cpus
    linkageType: ''
    returnType: void
    signature: "void on_each_cpu(\n    void (*func) (void *info),\n    void *info,\n
      \   int wait)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: __stringify_1
    functionSourceFile: /src/xen/xen/include/xen/stringify.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __stringify_1(x...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: __stringify
    functionSourceFile: /src/xen/xen/include/xen/stringify.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __stringify(x...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: mem_access_memop
    functionSourceFile: /src/xen/xen/include/xen/mem_access.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mem_access_memop(unsigned long cmd,\n                     XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t)
      arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: __ismask
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ismask(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: isalnum
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalnum(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: isalpha
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isalpha(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: iscntrl
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iscntrl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: isdigit
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: isgraph
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isgraph(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: islower
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: islower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: isprint
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isprint(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: ispunct
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ispunct(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: isspace
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isspace(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: isupper
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: isxdigit
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isxdigit(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: isascii
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isascii(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: toascii
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toascii(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isupper
      Src: /src/xen/xen/include/xen/ctype.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: __tolower
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached:
    - isupper
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char __tolower(unsigned char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: islower
      Src: /src/xen/xen/include/xen/ctype.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: __toupper
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 0
    functionsReached:
    - islower
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char __toupper(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: tolower
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tolower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: toupper
    functionSourceFile: /src/xen/xen/include/xen/ctype.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: consoled_is_enabled
    functionSourceFile: /src/xen/xen/include/xen/consoled.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: consoled_is_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cpu
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: __IRQ_STAT
    functionSourceFile: /src/xen/xen/include/xen/irq_cpustat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __IRQ_STAT(cpu, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: softirq_pending
    functionSourceFile: /src/xen/xen/include/xen/irq_cpustat.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: softirq_pending(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: local_irq_count
    functionSourceFile: /src/xen/xen/include/xen/irq_cpustat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: local_irq_count(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: create_domUs
    functionSourceFile: /src/xen/xen/include/xen/dom0less-build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void create_domUs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: is_dom0less_mode
    functionSourceFile: /src/xen/xen/include/xen/dom0less-build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_dom0less_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: set_xs_domain
    functionSourceFile: /src/xen/xen/include/xen/dom0less-build.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_xs_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: pv_console_init
    functionSourceFile: /src/xen/xen/include/xen/pv_console.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_console_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - serial_rx_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: pv_console_set_rx_handler
    functionSourceFile: /src/xen/xen/include/xen/pv_console.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_console_set_rx_handler(serial_rx_fn fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: pv_console_init_postirq
    functionSourceFile: /src/xen/xen/include/xen/pv_console.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_console_init_postirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: pv_console_puts
    functionSourceFile: /src/xen/xen/include/xen/pv_console.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_console_puts(const char *buf, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: pv_console_rx
    functionSourceFile: /src/xen/xen/include/xen/pv_console.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pv_console_rx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: DEFINE_RWLOCK
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RWLOCK(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: rwlock_init
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rwlock_init(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/include/xen/rwlock.h:39,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/include/xen/rwlock.h:40,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/include/xen/rwlock.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cnts
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: _is_write_locked_by_me
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool _is_write_locked_by_me(unsigned int cnts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _is_write_locked_by_me
      Src: /src/xen/xen/include/xen/rwlock.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cnts
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: _can_read_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - _is_write_locked_by_me
    linkageType: ''
    returnType: bool
    signature: bool _can_read_lock(unsigned int cnts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rwlock.h:65,1
    - Dst: check_lock
      Src: /src/xen/xen/include/xen/rwlock.h:66,1
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/rwlock.h:67,1
    - Dst: likely
      Src: /src/xen/xen/include/xen/rwlock.h:68,1
    - Dst: _can_read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:68,1
    - Dst: atomic_add_return
      Src: /src/xen/xen/include/xen/rwlock.h:70,1
    - Dst: likely
      Src: /src/xen/xen/include/xen/rwlock.h:75,1
    - Dst: _can_read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:75,1
    - Dst: lock_enter
      Src: /src/xen/xen/include/xen/rwlock.h:77,1
    - Dst: atomic_sub
      Src: /src/xen/xen/include/xen/rwlock.h:80,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rwlock.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: _read_trylock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 2
    functionsReached:
    - atomic_sub
    - lock_enter
    - _can_read_lock
    - likely
    - check_lock
    - atomic_add_return
    - preempt_enable
    - preempt_disable
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int _read_trylock(rwlock_t *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rwlock.h:94,1
    - Dst: atomic_add_return
      Src: /src/xen/xen/include/xen/rwlock.h:95,1
    - Dst: likely
      Src: /src/xen/xen/include/xen/rwlock.h:100,1
    - Dst: _can_read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:100,1
    - Dst: check_lock
      Src: /src/xen/xen/include/xen/rwlock.h:103,1
    - Dst: lock_enter
      Src: /src/xen/xen/include/xen/rwlock.h:104,1
    - Dst: queue_read_lock_slowpath
      Src: /src/xen/xen/include/xen/rwlock.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: _read_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 27
    functionsReached:
    - lock_enter
    - likely
    - atomic_add_return
    - check_lock
    - _can_read_lock
    - queue_read_lock_slowpath
    - preempt_disable
    linkageType: ''
    returnType: void
    signature: void _read_lock(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:118,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/include/xen/rwlock.h:118,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/include/xen/rwlock.h:119,1
    - Dst: _read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: _read_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - _read_lock
    - local_irq_disable
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void _read_lock_irq(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/include/xen/rwlock.h:126,1
    - Dst: _read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: _read_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - local_irq_save
    - _read_lock
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _read_lock_irqsave(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lock_exit
      Src: /src/xen/xen/include/xen/rwlock.h:137,1
    - Dst: arch_lock_release_barrier
      Src: /src/xen/xen/include/xen/rwlock.h:139,1
    - Dst: atomic_sub
      Src: /src/xen/xen/include/xen/rwlock.h:143,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rwlock.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: _read_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 26
    functionsReached:
    - lock_exit
    - atomic_sub
    - arch_lock_release_barrier
    - preempt_enable
    linkageType: ''
    returnType: void
    signature: void _read_unlock(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _read_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:149,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/include/xen/rwlock.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: _read_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - _read_unlock
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void _read_unlock_irq(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _read_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:155,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/include/xen/rwlock.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - flags
    argTypes:
    - rwlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: _read_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - _read_unlock
    linkageType: ''
    returnType: void
    signature: void _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/rwlock.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: _rw_is_locked
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int _rw_is_locked(const rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/include/xen/rwlock.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: _write_lock_val
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - smp_processor_id
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _write_lock_val(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rwlock.h:175,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/include/xen/rwlock.h:182,1
    - Dst: _write_lock_val
      Src: /src/xen/xen/include/xen/rwlock.h:182,1
    - Dst: check_lock
      Src: /src/xen/xen/include/xen/rwlock.h:185,1
    - Dst: lock_enter
      Src: /src/xen/xen/include/xen/rwlock.h:186,1
    - Dst: queue_write_lock_slowpath
      Src: /src/xen/xen/include/xen/rwlock.h:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 195
    functionName: _write_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 13
    functionsReached:
    - atomic_cmpxchg
    - lock_enter
    - queue_write_lock_slowpath
    - check_lock
    - _write_lock_val
    - preempt_disable
    linkageType: ''
    returnType: void
    signature: void _write_lock(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:199,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/include/xen/rwlock.h:199,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/include/xen/rwlock.h:200,1
    - Dst: _write_lock
      Src: /src/xen/xen/include/xen/rwlock.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: _write_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - ASSERT
    - _write_lock
    - local_irq_disable
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void _write_lock_irq(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/include/xen/rwlock.h:208,1
    - Dst: _write_lock
      Src: /src/xen/xen/include/xen/rwlock.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: _write_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - local_irq_save
    - _write_lock
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _write_lock_irqsave(rwlock_t *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rwlock.h:222,1
    - Dst: check_lock
      Src: /src/xen/xen/include/xen/rwlock.h:223,1
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/rwlock.h:224,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/rwlock.h:225,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/rwlock.h:226,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/include/xen/rwlock.h:226,1
    - Dst: _write_lock_val
      Src: /src/xen/xen/include/xen/rwlock.h:226,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rwlock.h:228,1
    - Dst: lock_enter
      Src: /src/xen/xen/include/xen/rwlock.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: _write_trylock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - atomic_cmpxchg
    - lock_enter
    - check_lock
    - preempt_enable
    - _write_lock_val
    - preempt_disable
    - unlikely
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int _write_trylock(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:243,1
    - Dst: _is_write_locked_by_me
      Src: /src/xen/xen/include/xen/rwlock.h:243,1
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/rwlock.h:243,1
    - Dst: lock_exit
      Src: /src/xen/xen/include/xen/rwlock.h:245,1
    - Dst: arch_lock_release_barrier
      Src: /src/xen/xen/include/xen/rwlock.h:247,1
    - Dst: atomic_and
      Src: /src/xen/xen/include/xen/rwlock.h:248,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rwlock.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: _write_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 14
    functionsReached:
    - _is_write_locked_by_me
    - lock_exit
    - atomic_and
    - preempt_enable
    - arch_lock_release_barrier
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void _write_unlock(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:254,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/include/xen/rwlock.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: _write_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - _write_unlock
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void _write_unlock_irq(rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:260,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/include/xen/rwlock.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - flags
    argTypes:
    - rwlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: _write_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - _write_unlock
    linkageType: ''
    returnType: void
    signature: void _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/rwlock.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: _rw_is_write_locked
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int _rw_is_write_locked(const rwlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:271,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/rwlock.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: read_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 44
    functionsReached:
    - _read_lock
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline read_lock(rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _read_lock_irq
      Src: /src/xen/xen/include/xen/rwlock.h:277,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/rwlock.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: read_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached:
    - _read_lock_irq
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline read_lock_irq(rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: read_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_lock_irqsave(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: read_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: read_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock_irq(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: read_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_unlock_irqrestore(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: read_trylock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: read_trylock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_lock
      Src: /src/xen/xen/include/xen/rwlock.h:295,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/rwlock.h:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: write_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 47
    functionsReached:
    - _write_lock
    - block_lock_speculation
    linkageType: ''
    returnType: always_inline
    signature: always_inline write_lock(rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _write_lock_irq
      Src: /src/xen/xen/include/xen/rwlock.h:301,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/rwlock.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: write_lock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached:
    - block_lock_speculation
    - _write_lock_irq
    linkageType: ''
    returnType: always_inline
    signature: always_inline write_lock_irq(rwlock_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: write_lock_irqsave
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_lock_irqsave(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: write_trylock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_trylock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: write_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_unlock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: write_unlock_irq
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_unlock_irq(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: write_unlock_irqrestore
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: write_unlock_irqrestore(l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: rw_is_locked
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rw_is_locked(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: rw_is_write_locked
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rw_is_write_locked(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: rw_is_write_locked_by_me
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rw_is_write_locked_by_me(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: PERCPU_RW_LOCK_UNLOCKED
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERCPU_RW_LOCK_UNLOCKED(owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - per_cpudata
    - percpu_rwlock
    argTypes:
    - percpu_rwlock_t**
    - percpu_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: _percpu_rwlock_owner_check
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void _percpu_rwlock_owner_check(percpu_rwlock_t **per_cpudata,\n                                         percpu_rwlock_t
      *percpu_rwlock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: PERCPU_RW_LOCK_UNLOCKED
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERCPU_RW_LOCK_UNLOCKED(owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: _percpu_rwlock_owner_check
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _percpu_rwlock_owner_check(data, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 347
    functionName: DEFINE_PERCPU_RWLOCK_RESOURCE
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PERCPU_RWLOCK_RESOURCE(l, owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - owner
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: percpu_rwlock_resource_init
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_rwlock_resource_init(l, owner)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _percpu_rwlock_owner_check
      Src: /src/xen/xen/include/xen/rwlock.h:354,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:357,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:357,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/rwlock.h:362,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:362,1
    - Dst: read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:364,1
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rwlock.h:369,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:370,1
    - Dst: smp_mb
      Src: /src/xen/xen/include/xen/rwlock.h:371,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/rwlock.h:373,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:376,1
    - Dst: read_lock
      Src: /src/xen/xen/include/xen/rwlock.h:378,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:380,1
    - Dst: read_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:382,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/include/xen/rwlock.h:387,1
    - Dst: check_lock
      Src: /src/xen/xen/include/xen/rwlock.h:389,1
    - Dst: lock_enter
      Src: /src/xen/xen/include/xen/rwlock.h:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - per_cpudata
    - percpu_rwlock
    argTypes:
    - percpu_rwlock_t**
    - percpu_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: _percpu_read_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - smp_mb
    - lock_enter
    - read_unlock
    - block_lock_speculation
    - check_lock
    - _percpu_rwlock_owner_check
    - ASSERT
    - preempt_disable
    - unlikely
    - read_lock
    - this_cpu_ptr
    linkageType: ''
    returnType: always_inline
    signature: "always_inline _percpu_read_lock(percpu_rwlock_t **per_cpudata,\n                                            percpu_rwlock_t
      *percpu_rwlock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _percpu_rwlock_owner_check
      Src: /src/xen/xen/include/xen/rwlock.h:399,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:402,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:402,1
    - Dst: lock_exit
      Src: /src/xen/xen/include/xen/rwlock.h:404,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/rwlock.h:410,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:410,1
    - Dst: read_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:412,1
    - Dst: this_cpu_ptr
      Src: /src/xen/xen/include/xen/rwlock.h:415,1
    - Dst: smp_wmb
      Src: /src/xen/xen/include/xen/rwlock.h:416,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rwlock.h:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - per_cpudata
    - percpu_rwlock
    argTypes:
    - percpu_rwlock_t**
    - percpu_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 418
    functionName: _percpu_read_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - read_unlock
    - lock_exit
    - preempt_enable
    - smp_wmb
    - _percpu_rwlock_owner_check
    - ASSERT
    - unlikely
    - this_cpu_ptr
    linkageType: ''
    returnType: void
    signature: "void _percpu_read_unlock(percpu_rwlock_t **per_cpudata,\n                percpu_rwlock_t
      *percpu_rwlock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _percpu_rwlock_owner_check
      Src: /src/xen/xen/include/xen/rwlock.h:428,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rwlock.h:430,1
    - Dst: lock_exit
      Src: /src/xen/xen/include/xen/rwlock.h:433,1
    - Dst: write_unlock
      Src: /src/xen/xen/include/xen/rwlock.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - per_cpudata
    - percpu_rwlock
    argTypes:
    - percpu_rwlock_t**
    - percpu_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: _percpu_write_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached:
    - lock_exit
    - _percpu_rwlock_owner_check
    - ASSERT
    - write_unlock
    linkageType: ''
    returnType: void
    signature: "void _percpu_write_unlock(percpu_rwlock_t **per_cpudata,\n                percpu_rwlock_t
      *percpu_rwlock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: percpu_rw_is_write_locked
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_rw_is_write_locked(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - percpu
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: percpu_read_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_read_lock(percpu, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - percpu
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: percpu_read_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_read_unlock(percpu, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - percpu
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: percpu_write_lock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_write_lock(percpu, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - percpu
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: percpu_write_unlock
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: percpu_write_unlock(percpu, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: DEFINE_PERCPU_RWLOCK_GLOBAL
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_PERCPU_RWLOCK_GLOBAL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: DECLARE_PERCPU_RWLOCK_GLOBAL
    functionSourceFile: /src/xen/xen/include/xen/rwlock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_PERCPU_RWLOCK_GLOBAL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: xhci_dbc_uart_init
    functionSourceFile: /src/xen/xen/include/xen/serial.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_dbc_uart_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SCHED_STAT_CRANK
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_STAT_CRANK(_X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: BITS_PER_EVTCHN_WORD
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_PER_EVTCHN_WORD(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: BITS_PER_EVTCHN_WORD
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_PER_EVTCHN_WORD(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: __RDU2
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RDU2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: __RDU4
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RDU4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: __RDU8
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RDU8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: __RDU16
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RDU16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: __RDU32
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __RDU32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: next_power_of_2
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_power_of_2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: runstate_guest
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: runstate_guest(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: runstate_guest
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: runstate_guest(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - u
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_sched_unit(d, u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - u
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_sched_unit_vcpu(u, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: domain_lock
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_lock(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: domain_unlock
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_unlock(d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/include/xen/sched.h:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - d
    - pg
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 687
    functionName: page_to_list
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached:
    - is_xen_heap_page
    linkageType: ''
    returnType: struct page_list_head
    signature: "struct page_list_head *page_to_list(\n    struct domain *d, const
      struct page_info *pg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/sched.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: domain_tot_pages
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 13
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_tot_pages(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 703
    functionName: is_idle_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_idle_domain(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 704
    functionName: is_idle_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_idle_vcpu(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: is_system_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_system_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: put_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_domain(_d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/sched.h:720,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/sched.h:724,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/include/xen/sched.h:726,1
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/sched.h:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 730
    functionName: get_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 7
    functionsReached:
    - atomic_cmpxchg
    - atomic_read
    - unlikely
    linkageType: ''
    returnType: always_inline
    signature: always_inline get_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/include/xen/sched.h:738,1
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/sched.h:739,1
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/sched.h:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: get_knownalive_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached:
    - ASSERT
    - atomic_inc
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void get_knownalive_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_update_node_aff
      Src: /src/xen/xen/include/xen/sched.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 750
    functionName: domain_update_node_affinity
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 2
    functionsReached:
    - domain_update_node_aff
    linkageType: ''
    returnType: void
    signature: void domain_update_node_affinity(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    functionName: arch_init_idle_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_init_idle_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/include/xen/sched.h:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: rcu_unlock_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 25
    functionsReached:
    - rcu_read_unlock
    linkageType: ''
    returnType: void
    signature: void rcu_unlock_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/include/xen/sched.h:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 808
    functionName: rcu_lock_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 1
    functionsReached:
    - rcu_read_lock
    linkageType: ''
    returnType: struct domain
    signature: struct domain *rcu_lock_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 813
    functionName: rcu_lock_current_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct domain
    signature: struct domain *rcu_lock_current_domain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/include/xen/sched.h:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg_owner
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 826
    functionName: put_pg_owner
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 5
    functionsReached:
    - rcu_unlock_domain
    linkageType: ''
    returnType: void
    signature: void put_pg_owner(struct domain *pg_owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 858
    functionName: domain_crash
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 103
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_crash(d, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: hypercall_cancel_continuation
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hypercall_cancel_continuation(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 955
    functionName: hypercall_preempt_check
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hypercall_preempt_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: general_preempt_check
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: general_preempt_check()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/include/xen/sched.h:972,1
    - Dst: rcu_dereference
      Src: /src/xen/xen/include/xen/sched.h:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 975
    functionName: first_domain_in_cpupool
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached:
    - rcu_dereference
    linkageType: ''
    returnType: struct domain
    signature: struct domain *first_domain_in_cpupool(const struct cpupool *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/include/xen/sched.h:979,1
    - Dst: rcu_dereference
      Src: /src/xen/xen/include/xen/sched.h:980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - d
    - c
    argTypes:
    - struct domain*
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 982
    functionName: next_domain_in_cpupool
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached:
    - rcu_dereference
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *next_domain_in_cpupool(\n    struct domain *d, const
      struct cpupool *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 989
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_domain(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d
    - ','
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 993
    functionName: for_each_domain_in_cpupool
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_domain_in_cpupool(_d,_c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d
    - ','
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_vcpu(_d,_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/sched.h:1033,1
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/sched.h:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1035
    functionName: vcpu_runnable
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 14
    functionsReached:
    - atomic_read
    linkageType: ''
    returnType: bool
    signature: bool vcpu_runnable(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/include/xen/sched.h:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    functionName: is_vcpu_dirty_cpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 7
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool is_vcpu_dirty_cpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_vcpu_dirty_cpu
      Src: /src/xen/xen/include/xen/sched.h:1045,1
    - Dst: read_atomic
      Src: /src/xen/xen/include/xen/sched.h:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1046
    functionName: vcpu_cpu_dirty
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 6
    functionsReached:
    - is_vcpu_dirty_cpu
    - read_atomic
    linkageType: ''
    returnType: bool
    signature: bool vcpu_cpu_dirty(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_index_nospec
      Src: /src/xen/xen/include/xen/sched.h:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - vcpu_id
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1094
    functionName: domain_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 12
    functionsReached:
    - array_index_nospec
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *domain_vcpu(const struct domain *d,\n                                       unsigned
      int vcpu_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/include/xen/sched.h:1109,1
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/sched.h:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1110
    functionName: sched_has_urgent_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 2
    functionsReached:
    - atomic_read
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool sched_has_urgent_vcpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1141
    functionName: cpu_is_haltable
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_is_haltable(cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/include/xen/sched.h:1153,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1157
    functionName: is_hardware_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 74
    functionsReached:
    - evaluate_nospec
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_hardware_domain(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/include/xen/sched.h:1162,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1166
    functionName: is_control_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 3
    functionsReached:
    - evaluate_nospec
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_control_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1169
    functionName: VM_ASSIST
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VM_ASSIST(d, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/include/xen/sched.h:1172,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1174
    functionName: is_pv_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 44
    functionsReached:
    - evaluate_nospec
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/include/xen/sched.h:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1179
    functionName: is_pv_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 26
    functionsReached:
    - is_pv_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_vcpu(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/include/xen/sched.h:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1188
    functionName: is_pv_32bit_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 51
    functionsReached:
    - is_pv_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_32bit_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/include/xen/sched.h:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 3
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    functionName: is_pv_32bit_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 21
    functionsReached:
    - is_pv_32bit_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_32bit_vcpu(const struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/include/xen/sched.h:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1205
    functionName: is_pv_64bit_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached:
    - is_pv_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_64bit_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_64bit_domain
      Src: /src/xen/xen/include/xen/sched.h:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1210
    functionName: is_pv_64bit_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached:
    - is_pv_64bit_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_pv_64bit_vcpu(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/include/xen/sched.h:1214,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1216
    functionName: is_hvm_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 101
    functionsReached:
    - evaluate_nospec
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_hvm_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/include/xen/sched.h:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1221
    functionName: is_hvm_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 23
    functionsReached:
    - is_hvm_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_hvm_vcpu(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/include/xen/sched.h:1226,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1228
    functionName: hap_enabled
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 26
    functionsReached:
    - evaluate_nospec
    - IS_ENABLED
    linkageType: ''
    returnType: always_inline
    signature: always_inline hap_enabled(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/include/xen/sched.h:1232,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/include/xen/sched.h:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1234
    functionName: is_hwdom_pinned_vcpu
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 3
    functionsReached:
    - cpumask_weight
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool is_hwdom_pinned_vcpu(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/include/xen/sched.h:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1239
    functionName: is_vcpu_online
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool is_vcpu_online(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1241
    functionDepth: 0
    functionLinenumber: 1241
    functionLinenumberEnd: 1244
    functionName: is_xenstore_domain
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_xenstore_domain(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xen/sched.h:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1249
    functionName: is_iommu_enabled
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 30
    functionsReached:
    - evaluate_nospec
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_iommu_enabled(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1253
    functionName: mem_paging_enabled
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mem_paging_enabled(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1255
    functionName: mem_paging_enabled
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mem_paging_enabled(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/include/xen/sched.h:1276,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/include/xen/sched.h:1276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1278
    functionName: is_cpufreq_controller
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 4
    functionsReached:
    - is_pv_domain
    - is_hardware_domain
    linkageType: ''
    returnType: always_inline
    signature: always_inline is_cpufreq_controller(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_create_pool
      Src: /src/xen/xen/include/xen/sched.h:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1314
    functionName: btcpupools_allocate_pools
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached:
    - cpupool_create_pool
    linkageType: ''
    returnType: void
    signature: void btcpupools_allocate_pools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1315
    functionName: btcpupools_dtb_parse
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void btcpupools_dtb_parse(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1319
    functionName: btcpupools_get_cpupool_id
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int btcpupools_get_cpupool_id(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1327
    functionName: btcpupools_get_domain_pool_id
    functionSourceFile: /src/xen/xen/include/xen/sched.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int btcpupools_get_domain_pool_id(const struct dt_device_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: is_domain_direct_mapped
    functionSourceFile: /src/xen/xen/include/xen/domain.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_domain_direct_mapped(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: is_domain_using_staticmem
    functionSourceFile: /src/xen/xen/include/xen/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_domain_using_staticmem(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: arch_get_paging_mempool_size
    functionSourceFile: /src/xen/xen/include/xen/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_get_paging_mempool_size(struct domain *d, uint64_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - size
    argTypes:
    - struct domain*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: arch_set_paging_mempool_size
    functionSourceFile: /src/xen/xen/include/xen/domain.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_set_paging_mempool_size(struct domain *d, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/domain.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vnuma
    argTypes:
    - struct vnuma_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    functionName: vnuma_destroy
    functionSourceFile: /src/xen/xen/include/xen/domain.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void vnuma_destroy(struct vnuma_info *vnuma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: va_copy
    functionSourceFile: /src/xen/xen/include/xen/stdarg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_copy(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: va_start
    functionSourceFile: /src/xen/xen/include/xen/stdarg.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_start(ap, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: va_end
    functionSourceFile: /src/xen/xen/include/xen/stdarg.h
    functionUses: 69
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_end(ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - func
    - ','
    - data
    - ','
    - softirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: _DECLARE_TASKLET
    functionSourceFile: /src/xen/xen/include/xen/tasklet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DECLARE_TASKLET(name, func, data, softirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - func
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: DECLARE_TASKLET
    functionSourceFile: /src/xen/xen/include/xen/tasklet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_TASKLET(name, func, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - func
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: DECLARE_SOFTIRQ_TASKLET
    functionSourceFile: /src/xen/xen/include/xen/tasklet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_SOFTIRQ_TASKLET(name, func, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/include/xen/tasklet.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: tasklet_work_to_do
    functionSourceFile: /src/xen/xen/include/xen/tasklet.h
    functionUses: 2
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: bool
    signature: bool tasklet_work_to_do(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: tasklet_is_scheduled
    functionSourceFile: /src/xen/xen/include/xen/tasklet.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool tasklet_is_scheduled(const struct tasklet *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: page_to_pdx
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_pdx(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pdx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: pdx_to_page
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pdx_to_page(pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: mfn_to_pdx
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_pdx(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pdx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: pdx_to_mfn
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pdx_to_mfn(pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pa
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: paddr_to_pdx
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paddr_to_pdx(pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - px
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: pdx_to_paddr
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pdx_to_paddr(px)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: pfn_to_pdx_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pfn_to_pdx_xlate(unsigned long pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdx
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: pdx_to_pfn_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pdx_to_pfn_xlate(unsigned long pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: maddr_to_directmapoff_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long maddr_to_directmapoff_xlate(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: directmapoff_to_maddr_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: PFN_TBL_IDX
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PFN_TBL_IDX(pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pdx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: PDX_TBL_IDX
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDX_TBL_IDX(pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ma
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: MADDR_TBL_IDX
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MADDR_TBL_IDX(ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: DMAPOFF_TBL_IDX
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMAPOFF_TBL_IDX(off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/include/xen/pdx.h:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: pfn_to_pdx_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached:
    - PFN_TBL_IDX
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pfn_to_pdx_xlate(unsigned long pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDX_TBL_IDX
      Src: /src/xen/xen/include/xen/pdx.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdx
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: pdx_to_pfn_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached:
    - PDX_TBL_IDX
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pdx_to_pfn_xlate(unsigned long pdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MADDR_TBL_IDX
      Src: /src/xen/xen/include/xen/pdx.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ma
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: maddr_to_directmapoff_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached:
    - MADDR_TBL_IDX
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long maddr_to_directmapoff_xlate(paddr_t ma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DMAPOFF_TBL_IDX
      Src: /src/xen/xen/include/xen/pdx.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: directmapoff_to_maddr_xlate
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 1
    functionsReached:
    - DMAPOFF_TBL_IDX
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t directmapoff_to_maddr_xlate(unsigned long offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: pdx_to_pfn
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pdx_to_pfn(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: pfn_to_pdx
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pfn_to_pdx(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: maddr_to_directmapoff
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maddr_to_directmapoff(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: directmapoff_to_maddr
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: directmapoff_to_maddr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - npages
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: pdx_is_region_compressible
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool pdx_is_region_compressible(paddr_t base,\n                                              unsigned
      long npages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - base
    - size
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: pfn_pdx_add_region
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pfn_pdx_add_region(paddr_t base, paddr_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: pfn_pdx_compression_setup
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pfn_pdx_compression_setup(paddr_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: pfn_pdx_compression_reset
    functionSourceFile: /src/xen/xen/include/xen/pdx.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pfn_pdx_compression_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ehdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: IS_ELF
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ELF(ehdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: ELF32_ST_BIND
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_ST_BIND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: ELF32_ST_TYPE
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_ST_TYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: ELF32_ST_INFO
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_ST_INFO(b,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: ELF64_ST_BIND
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_ST_BIND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: ELF64_ST_TYPE
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_ST_TYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: ELF64_ST_INFO
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_ST_INFO(b,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: ELF32_R_SYM
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_R_SYM(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ELF32_R_TYPE
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_R_TYPE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: ELF32_R_INFO
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF32_R_INFO(s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: ELF64_R_SYM
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_R_SYM(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - info
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: ELF64_R_TYPE
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_R_TYPE(info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: ELF64_R_INFO
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELF64_R_INFO(s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 557
    functionName: CONCAT
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCAT(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 558
    functionName: ELFNAME
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNAME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: ELFNAME2
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNAME2(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 560
    functionName: ELFNAMEEND
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNAMEEND(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 561
    functionName: ELFDEFNNAME
    functionSourceFile: /src/xen/xen/include/xen/elfstructs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFDEFNNAME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: IS_ERR_VALUE
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ERR_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: __must_check::ERR_PTR
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__must_check ERR_PTR(long error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: PTR_ERR
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: long __must_check
    signature: long __must_check PTR_ERR(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_VALUE
      Src: /src/xen/xen/include/xen/err.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: IS_ERR
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 27
    functionsReached:
    - IS_ERR_VALUE
    linkageType: ''
    returnType: long __must_check
    signature: long __must_check IS_ERR(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR_VALUE
      Src: /src/xen/xen/include/xen/err.h:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: IS_ERR_OR_NULL
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 6
    functionsReached:
    - IS_ERR_VALUE
    linkageType: ''
    returnType: long __must_check
    signature: long __must_check IS_ERR_OR_NULL(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ERR
      Src: /src/xen/xen/include/xen/err.h:43,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/include/xen/err.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: __must_check::PTR_RET
    functionSourceFile: /src/xen/xen/include/xen/err.h
    functionUses: 0
    functionsReached:
    - IS_ERR
    - PTR_ERR
    linkageType: ''
    returnType: int
    signature: int __must_check PTR_RET(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lvl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: __init_call
    functionSourceFile: /src/xen/xen/include/xen/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __init_call(lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: presmp_initcall
    functionSourceFile: /src/xen/xen/include/xen/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: presmp_initcall(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: __initcall
    functionSourceFile: /src/xen/xen/include/xen/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __initcall(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: __exitcall
    functionSourceFile: /src/xen/xen/include/xen/init.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __exitcall(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: __ACCESS_ONCE
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ACCESS_ONCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: ACCESS_ONCE
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCESS_ONCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: debugtrace_dump
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void debugtrace_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/xen/include/xen/lib.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: debugtrace_printk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: void
    signature: void debugtrace_printk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: printk_once
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printk_once(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - lvl
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: gprintk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gprintk(lvl, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __format__
      Src: /src/xen/xen/include/xen/lib.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lvl
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: dprintk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 270
    functionsReached:
    - __format__
    linkageType: ''
    returnType: void
    signature: void dprintk(const char *lvl, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __format__
      Src: /src/xen/xen/include/xen/lib.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lvl
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: gdprintk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 175
    functionsReached:
    - __format__
    linkageType: ''
    returnType: void
    signature: void gdprintk(const char *lvl, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - lvl
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: dprintk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 270
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dprintk(lvl, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - lvl
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: gdprintk
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 175
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gdprintk(lvl, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - o
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: cmpxchgptr
    functionSourceFile: /src/xen/xen/include/xen/lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cmpxchgptr(ptr, o, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/include/xen/mm-frame.h:25,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - i
    argTypes:
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: __must_check::mfn_add
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 0
    functionsReached:
    - mfn_x
    - _mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t __must_check mfn_add(mfn_t mfn, unsigned long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/include/xen/mm-frame.h:30,1
    - Dst: max
      Src: /src/xen/xen/include/xen/mm-frame.h:30,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:30,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: mfn_max
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 0
    functionsReached:
    - max
    - mfn_x
    - _mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t mfn_max(mfn_t x, mfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/include/xen/mm-frame.h:35,1
    - Dst: min
      Src: /src/xen/xen/include/xen/mm-frame.h:35,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:35,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: mfn_min
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 0
    functionsReached:
    - mfn_x
    - min
    - _mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t mfn_min(mfn_t x, mfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:40,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: mfn_eq
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 139
    functionsReached:
    - mfn_x
    linkageType: ''
    returnType: bool
    signature: bool mfn_eq(mfn_t x, mfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/include/xen/mm-frame.h:61,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gfn
    - i
    argTypes:
    - gfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: __must_check::gfn_add
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 0
    functionsReached:
    - gfn_x
    - _gfn
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t __must_check gfn_add(gfn_t gfn, unsigned long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/include/xen/mm-frame.h:66,1
    - Dst: max
      Src: /src/xen/xen/include/xen/mm-frame.h:66,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:66,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gfn_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: gfn_max
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 4
    functionsReached:
    - gfn_x
    - _gfn
    - max
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t gfn_max(gfn_t x, gfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gfn
      Src: /src/xen/xen/include/xen/mm-frame.h:71,1
    - Dst: min
      Src: /src/xen/xen/include/xen/mm-frame.h:71,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:71,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gfn_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: gfn_min
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 3
    functionsReached:
    - gfn_x
    - _gfn
    - min
    linkageType: ''
    returnType: gfn_t
    signature: gfn_t gfn_min(gfn_t x, gfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:76,1
    - Dst: gfn_x
      Src: /src/xen/xen/include/xen/mm-frame.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gfn_t
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: gfn_eq
    functionSourceFile: /src/xen/xen/include/xen/mm-frame.h
    functionUses: 27
    functionsReached:
    - gfn_x
    linkageType: ''
    returnType: bool
    signature: bool gfn_eq(gfn_t x, gfn_t y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/include/xen/static-memory.h:14,1
    - Dst: PFN_UP
      Src: /src/xen/xen/include/xen/static-memory.h:14,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/include/xen/static-memory.h:15,1
    - Dst: mfn_add
      Src: /src/xen/xen/include/xen/static-memory.h:16,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/static-memory.h:18,1
    - Dst: mfn_x
      Src: /src/xen/xen/include/xen/static-memory.h:18,1
    - Dst: unprepare_staticmem_pages
      Src: /src/xen/xen/include/xen/static-memory.h:21,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/include/xen/static-memory.h:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bank
    argTypes:
    - struct membank*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: init_staticmem_bank
    functionSourceFile: /src/xen/xen/include/xen/static-memory.h
    functionUses: 0
    functionsReached:
    - PFN_UP
    - mfn_to_page
    - mfn_x
    - _mfn
    - mfn_add
    - unprepare_staticmem_pages
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void init_staticmem_bank(const struct membank *bank)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/static-memory.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: allocate_static_memory
    functionSourceFile: /src/xen/xen/include/xen/static-memory.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void allocate_static_memory(struct domain *d,\n                                          struct
      kernel_info *kinfo,\n                                          const struct
      dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/static-memory.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: assign_static_memory_11
    functionSourceFile: /src/xen/xen/include/xen/static-memory.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void assign_static_memory_11(struct domain *d,\n                                           struct
      kernel_info *kinfo,\n                                           const struct
      dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: IS_ENABLED
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ENABLED(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: STATIC_IF
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_IF(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: STATIC_IF_NOT
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_IF_NOT(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cfg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: config_enabled
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: config_enabled(cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: _config_enabled
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _config_enabled(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg1_or_junk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: __config_enabled
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __config_enabled(arg1_or_junk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - __ignored
    - ','
    - val
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: ___config_enabled
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___config_enabled(__ignored, val, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: IS_ENABLED
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ENABLED(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: static_if
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_if(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg1_or_junk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: _static_if
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _static_if(arg1_or_junk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: STATIC_IF
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_IF(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: static_if_not
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_if_not(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg1_or_junk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: _static_if_not
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _static_if_not(arg1_or_junk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - option
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: STATIC_IF_NOT
    functionSourceFile: /src/xen/xen/include/xen/kconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATIC_IF_NOT(option)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: watchdog_setup
    functionSourceFile: /src/xen/xen/include/xen/watchdog.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_setup()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: watchdog_enable
    functionSourceFile: /src/xen/xen/include/xen/watchdog.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_enable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: watchdog_disable
    functionSourceFile: /src/xen/xen/include/xen/watchdog.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_disable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: watchdog_enabled
    functionSourceFile: /src/xen/xen/include/xen/watchdog.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: watchdog_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: ELFNOTE_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/elf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNOTE_ALIGN(_n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ELFNOTE_NAME
    functionSourceFile: /src/xen/xen/include/xen/elf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNOTE_NAME(_n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ELFNOTE_DESC
    functionSourceFile: /src/xen/xen/include/xen/elf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNOTE_DESC(_n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _n_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: ELFNOTE_NEXT
    functionSourceFile: /src/xen/xen/include/xen/elf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ELFNOTE_NEXT(_n_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sec
    argTypes:
    - Elf_Shdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: livepatch_elf_ignore_section
    functionSourceFile: /src/xen/xen/include/xen/livepatch_elf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool livepatch_elf_ignore_section(const Elf_Shdr *sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dfn
      Src: /src/xen/xen/include/xen/iommu.h:44,1
    - Dst: dfn_x
      Src: /src/xen/xen/include/xen/iommu.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dfn
    - i
    argTypes:
    - dfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: __must_check::dfn_add
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached:
    - dfn_x
    - _dfn
    linkageType: ''
    returnType: dfn_t
    signature: dfn_t __must_check dfn_add(dfn_t dfn, unsigned long i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dfn_x
      Src: /src/xen/xen/include/xen/iommu.h:49,1
    - Dst: dfn_x
      Src: /src/xen/xen/include/xen/iommu.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - dfn_t
    - dfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: dfn_eq
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached:
    - dfn_x
    linkageType: ''
    returnType: bool
    signature: bool dfn_eq(dfn_t x, dfn_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/iommu.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: clear_iommu_hap_pt_share
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 1
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void clear_iommu_hap_pt_share(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: iommu_setup
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iommu_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - opts
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: iommu_domain_init
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iommu_domain_init(struct domain *d, unsigned int opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: iommu_hwdom_init
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iommu_hwdom_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: iommu_domain_destroy
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iommu_domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: IOMMUF_order
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOMMUF_order(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: iommu_assign_dt_device
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int iommu_assign_dt_device(struct domain *d,\n                                         struct
      dt_device_node *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: iommu_add_dt_device
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iommu_add_dt_device(struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: iommu_release_dt_devices
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iommu_release_dt_devices(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: iommu_add_dt_pci_sideband_ids
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - ops
    - ','
    - fn
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: iommu_call
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_call(ops, fn, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: dom_iommu
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dom_iommu(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: iommu_set_feature
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_set_feature(d, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: iommu_clear_feature
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_clear_feature(d, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: iommu_use_hap_pt
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_use_hap_pt(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: need_iommu_pt_sync
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: need_iommu_pt_sync(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: iommu_use_hap_pt
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_use_hap_pt(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: need_iommu_pt_sync
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: need_iommu_pt_sync(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: iommu_do_domctl
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int iommu_do_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \                                 XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_call
      Src: /src/xen/xen/include/xen/iommu.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msi_desc
    - msg
    argTypes:
    - struct msi_desc*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: iommu_update_ire_from_msi
    functionSourceFile: /src/xen/xen/include/xen/iommu.h
    functionUses: 6
    functionsReached:
    - iommu_call
    linkageType: ''
    returnType: int
    signature: "int iommu_update_ire_from_msi(\n    struct msi_desc *msi_desc, struct
      msi_msg *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/xen/xen/include/xen/console.h:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: is_console_printable
    functionSourceFile: /src/xen/xen/include/xen/console.h
    functionUses: 3
    functionsReached:
    - isprint
    linkageType: ''
    returnType: bool
    signature: bool is_console_printable(unsigned char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/xen/xen/include/xen/sort.h:38,1
    - Dst: cmp
      Src: /src/xen/xen/include/xen/sort.h:40,1
    - Dst: swap
      Src: /src/xen/xen/include/xen/sort.h:42,1
    - Dst: swap
      Src: /src/xen/xen/include/xen/sort.h:50,1
    - Dst: cmp
      Src: /src/xen/xen/include/xen/sort.h:54,1
    - Dst: cmp
      Src: /src/xen/xen/include/xen/sort.h:56,1
    - Dst: swap
      Src: /src/xen/xen/include/xen/sort.h:58,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 3
    argNames:
    - base
    - num
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 61
    functionName: sort
    functionSourceFile: /src/xen/xen/include/xen/sort.h
    functionUses: 12
    functionsReached:
    - swap
    - cmp
    linkageType: ''
    returnType: void
    signature: "void sort(void *base, size_t num, size_t size,\n          int (*cmp)(const
      void *a, const void *b),\n          void (*swap)(void *a, void *b))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/ioreq.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: ioreq_mmio_first_byte
    functionSourceFile: /src/xen/xen/include/xen/ioreq.h
    functionUses: 2
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t ioreq_mmio_first_byte(const ioreq_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/ioreq.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: ioreq_mmio_last_byte
    functionSourceFile: /src/xen/xen/include/xen/ioreq.h
    functionUses: 2
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t ioreq_mmio_last_byte(const ioreq_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - ioreq
    argTypes:
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: ioreq_needs_completion
    functionSourceFile: /src/xen/xen/include/xen/ioreq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ioreq_needs_completion(const ioreq_t *ioreq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: HANDLE_BUFIOREQ
    functionSourceFile: /src/xen/xen/include/xen/ioreq.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_BUFIOREQ(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/ioreq.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - completion
    argTypes:
    - enum vio_completion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: arch_vcpu_ioreq_completion
    functionSourceFile: /src/xen/xen/include/xen/ioreq.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool arch_vcpu_ioreq_completion(enum vio_completion completion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: NODEMASK_PR
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODEMASK_PR(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: nodemask_bits
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodemask_bits(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: node_set
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_set(node, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/include/xen/nodemask.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - dstp
    argTypes:
    - int
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: __node_set
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - set_bit
    linkageType: ''
    returnType: void
    signature: void __node_set(int node, volatile nodemask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: node_clear
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_clear(node, dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/include/xen/nodemask.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - dstp
    argTypes:
    - int
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: __node_clear
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void __node_clear(int node, volatile nodemask_t *dstp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: nodes_setall
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_setall(dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_fill
      Src: /src/xen/xen/include/xen/nodemask.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: __nodes_setall
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_fill
    linkageType: ''
    returnType: void
    signature: void __nodes_setall(nodemask_t *dstp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: nodes_clear
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_clear(dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_zero
      Src: /src/xen/xen/include/xen/nodemask.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: __nodes_clear
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_zero
    linkageType: ''
    returnType: void
    signature: void __nodes_clear(nodemask_t *dstp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/include/xen/nodemask.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - dst
    argTypes:
    - unsigned int
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: nodemask_test
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool nodemask_test(unsigned int node, const nodemask_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - nodemask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: node_test_and_set
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_test_and_set(node, nodemask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/include/xen/nodemask.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - addr
    argTypes:
    - int
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: __node_test_and_set
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    linkageType: ''
    returnType: int
    signature: int __node_test_and_set(int node, nodemask_t *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: nodes_and
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_and(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_and
      Src: /src/xen/xen/include/xen/nodemask.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dstp
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: __nodes_and
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_and
    linkageType: ''
    returnType: void
    signature: "void __nodes_and(nodemask_t *dstp, const nodemask_t *src1p,\n\t\t\t\t\tconst
      nodemask_t *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: nodes_or
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_or(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_or
      Src: /src/xen/xen/include/xen/nodemask.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dstp
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: __nodes_or
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_or
    linkageType: ''
    returnType: void
    signature: "void __nodes_or(nodemask_t *dstp, const nodemask_t *src1p,\n\t\t\t\t\tconst
      nodemask_t *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: nodes_xor
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_xor(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_xor
      Src: /src/xen/xen/include/xen/nodemask.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dstp
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: __nodes_xor
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_xor
    linkageType: ''
    returnType: void
    signature: "void __nodes_xor(nodemask_t *dstp, const nodemask_t *src1p,\n\t\t\t\t\tconst
      nodemask_t *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: nodes_andnot
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_andnot(dst, src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_andnot
      Src: /src/xen/xen/include/xen/nodemask.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dstp
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: __nodes_andnot
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_andnot
    linkageType: ''
    returnType: void
    signature: "void __nodes_andnot(nodemask_t *dstp, const nodemask_t *src1p,\n\t\t\t\t\tconst
      nodemask_t *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: nodes_complement
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_complement(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_complement
      Src: /src/xen/xen/include/xen/nodemask.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dstp
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: __nodes_complement
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_complement
    linkageType: ''
    returnType: void
    signature: "void __nodes_complement(nodemask_t *dstp,\n\t\t\t\t\tconst nodemask_t
      *srcp, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: nodes_equal
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_equal(src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_equal
      Src: /src/xen/xen/include/xen/nodemask.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: __nodes_equal
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_equal
    linkageType: ''
    returnType: int
    signature: "int __nodes_equal(const nodemask_t *src1p,\n\t\t\t\t\tconst nodemask_t
      *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: nodes_intersects
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_intersects(src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_intersects
      Src: /src/xen/xen/include/xen/nodemask.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: __nodes_intersects
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_intersects
    linkageType: ''
    returnType: int
    signature: "int __nodes_intersects(const nodemask_t *src1p,\n\t\t\t\t\tconst nodemask_t
      *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src1
    - ','
    - src2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: nodes_subset
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_subset(src1, src2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_subset
      Src: /src/xen/xen/include/xen/nodemask.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1p
    - src2p
    - nbits
    argTypes:
    - nodemask_t*
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: __nodes_subset
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_subset
    linkageType: ''
    returnType: int
    signature: "int __nodes_subset(const nodemask_t *src1p,\n\t\t\t\t\tconst nodemask_t
      *src2p, int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: nodes_empty
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_empty(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_empty
      Src: /src/xen/xen/include/xen/nodemask.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: __nodes_empty
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_empty
    linkageType: ''
    returnType: int
    signature: int __nodes_empty(const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nodemask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: nodes_full
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_full(nodemask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_full
      Src: /src/xen/xen/include/xen/nodemask.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: __nodes_full
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_full
    linkageType: ''
    returnType: int
    signature: int __nodes_full(const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nodemask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: nodes_weight
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodes_weight(nodemask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_weight
      Src: /src/xen/xen/include/xen/nodemask.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: __nodes_weight
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - bitmap_weight
    linkageType: ''
    returnType: int
    signature: int __nodes_weight(const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: first_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: first_node(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/include/xen/nodemask.h:193,1
    - Dst: find_first_bit
      Src: /src/xen/xen/include/xen/nodemask.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: __first_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - min_t
    - find_first_bit
    linkageType: ''
    returnType: int
    signature: int __first_node(const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: next_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_node(n, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/include/xen/nodemask.h:199,1
    - Dst: find_next_bit
      Src: /src/xen/xen/include/xen/nodemask.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - n
    - srcp
    - nbits
    argTypes:
    - int
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: __next_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - find_next_bit
    - min_t
    linkageType: ''
    returnType: int
    signature: int __next_node(int n, const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: last_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: last_node(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __first_node
      Src: /src/xen/xen/include/xen/nodemask.h:206,1
    - Dst: __next_node
      Src: /src/xen/xen/include/xen/nodemask.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - srcp
    - nbits
    argTypes:
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: __last_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - __first_node
    - __next_node
    linkageType: ''
    returnType: int
    signature: int __last_node(const nodemask_t *srcp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: nodemask_of_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nodemask_of_node(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: cycle_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cycle_node(n, src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __next_node
      Src: /src/xen/xen/include/xen/nodemask.h:228,1
    - Dst: __first_node
      Src: /src/xen/xen/include/xen/nodemask.h:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - n
    - maskp
    - nbits
    argTypes:
    - int
    - nodemask_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: __cycle_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached:
    - __first_node
    - __next_node
    linkageType: ''
    returnType: int
    signature: int __cycle_node(int n, const nodemask_t *maskp, int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: for_each_node_mask
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_node_mask(node, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: for_each_node_mask
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_node_mask(node, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: num_online_nodes
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_online_nodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: node_online
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_online(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: num_online_nodes
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: num_online_nodes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: node_online
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_online(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: node_set_online
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_set_online(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: node_set_offline
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: node_set_offline(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/include/xen/nodemask.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_online_node(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: BITS_TO_LONGS
    functionSourceFile: /src/xen/xen/include/xen/types.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_LONGS(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: DECLARE_BITMAP
    functionSourceFile: /src/xen/xen/include/xen/types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_BITMAP(name,bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: test_and_set_bool
    functionSourceFile: /src/xen/xen/include/xen/types.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_set_bool(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: test_and_clear_bool
    functionSourceFile: /src/xen/xen/include/xen/types.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: test_and_clear_bool(b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - d
    - max_grant_frames
    - max_maptrack_frames
    - options
    argTypes:
    - struct domain*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: grant_table_init
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int grant_table_init(struct domain *d,\n                                   int
      max_grant_frames,\n                                   int max_maptrack_frames,\n
      \                                  unsigned int options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: grant_table_destroy
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grant_table_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: grant_table_init_vcpu
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grant_table_init_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: grant_table_warn_active_grants
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void grant_table_warn_active_grants(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: gnttab_release_mappings
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gnttab_release_mappings(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - gt
    - ref
    - gfn
    - status
    argTypes:
    - struct grant_table*
    - grant_ref_t
    - gfn_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: mem_sharing_gref_to_gfn
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_gref_to_gfn(struct grant_table *gt,\n                                          grant_ref_t
      ref,\n                                          gfn_t *gfn, uint16_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - idx
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - unsigned long
    - gfn_t
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: gnttab_map_frame
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gnttab_map_frame(struct domain *d, unsigned long idx,\n                                   gfn_t
      gfn, mfn_t *mfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: gnttab_resource_max_frames
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int gnttab_resource_max_frames(\n    const struct domain
      *d, unsigned int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - d
    - id
    - frame
    - nr_frames
    - mfn_list
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    - xen_pfn_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: gnttab_acquire_resource
    functionSourceFile: /src/xen/xen/include/xen/grant_table.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int gnttab_acquire_resource(\n    struct domain *d, unsigned int id,
      unsigned int frame,\n    unsigned int nr_frames, xen_pfn_t mfn_list[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: BITMAP_LAST_WORD_MASK
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_LAST_WORD_MASK(nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: bitmap_bytes
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitmap_bytes(nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - nbits
    - ','
    - zero
    - ','
    - small
    - ','
    - large
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: bitmap_switch
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitmap_switch(nbits, zero, small, large)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:115,1
    - Dst: memset
      Src: /src/xen/xen/include/xen/bitmap.h:117,1
    - Dst: bitmap_bytes
      Src: /src/xen/xen/include/xen/bitmap.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: bitmap_zero
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 10
    functionsReached:
    - memset
    - bitmap_switch
    - bitmap_bytes
    linkageType: ''
    returnType: void
    signature: void bitmap_zero(unsigned long *dst, unsigned int nbits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/include/xen/bitmap.h:122,1
    - Dst: memset
      Src: /src/xen/xen/include/xen/bitmap.h:128,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dst
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: bitmap_fill
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 5
    functionsReached:
    - memset
    - BITMAP_LAST_WORD_MASK
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: void bitmap_fill(unsigned long *dst, unsigned int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:139,1
    - Dst: memcpy
      Src: /src/xen/xen/include/xen/bitmap.h:141,1
    - Dst: bitmap_bytes
      Src: /src/xen/xen/include/xen/bitmap.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: bitmap_copy
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 9
    functionsReached:
    - bitmap_bytes
    - memcpy
    - bitmap_switch
    linkageType: ''
    returnType: void
    signature: "void bitmap_copy(unsigned long *dst, const unsigned long *src,\n\t\t\tunsigned
      int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:147,1
    - Dst: __bitmap_and
      Src: /src/xen/xen/include/xen/bitmap.h:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: bitmap_and
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 7
    functionsReached:
    - __bitmap_and
    - bitmap_switch
    linkageType: ''
    returnType: void
    signature: "void bitmap_and(unsigned long *dst, const unsigned long *src1,\n\t\t\tconst
      unsigned long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:155,1
    - Dst: __bitmap_or
      Src: /src/xen/xen/include/xen/bitmap.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: bitmap_or
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 6
    functionsReached:
    - __bitmap_or
    - bitmap_switch
    linkageType: ''
    returnType: void
    signature: "void bitmap_or(unsigned long *dst, const unsigned long *src1,\n\t\t\tconst
      unsigned long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:163,1
    - Dst: __bitmap_xor
      Src: /src/xen/xen/include/xen/bitmap.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: bitmap_xor
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - __bitmap_xor
    - bitmap_switch
    linkageType: ''
    returnType: void
    signature: "void bitmap_xor(unsigned long *dst, const unsigned long *src1,\n\t\t\tconst
      unsigned long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:171,1
    - Dst: __bitmap_andnot
      Src: /src/xen/xen/include/xen/bitmap.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: bitmap_andnot
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - bitmap_switch
    - __bitmap_andnot
    linkageType: ''
    returnType: void
    signature: "void bitmap_andnot(unsigned long *dst, const unsigned long *src1,\n\t\t\tconst
      unsigned long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:179,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:180,1
    - Dst: __bitmap_complement
      Src: /src/xen/xen/include/xen/bitmap.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - src
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: bitmap_complement
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - __bitmap_complement
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    linkageType: ''
    returnType: void
    signature: "void bitmap_complement(unsigned long *dst, const unsigned long *src,\n\t\t\tunsigned
      int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:187,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:189,1
    - Dst: __bitmap_equal
      Src: /src/xen/xen/include/xen/bitmap.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: bitmap_equal
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 5
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    - __bitmap_equal
    linkageType: ''
    returnType: int
    signature: "int bitmap_equal(const unsigned long *src1,\n\t\t\tconst unsigned
      long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:196,1
    - Dst: return
      Src: /src/xen/xen/include/xen/bitmap.h:198,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:198,1
    - Dst: __bitmap_intersects
      Src: /src/xen/xen/include/xen/bitmap.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: bitmap_intersects
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - return
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    - __bitmap_intersects
    linkageType: ''
    returnType: int
    signature: "int bitmap_intersects(const unsigned long *src1,\n\t\t\tconst unsigned
      long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:205,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:207,1
    - Dst: __bitmap_subset
      Src: /src/xen/xen/include/xen/bitmap.h:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src1
    - src2
    - nbits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: bitmap_subset
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - __bitmap_subset
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    linkageType: ''
    returnType: int
    signature: "int bitmap_subset(const unsigned long *src1,\n\t\t\tconst unsigned
      long *src2, unsigned int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:213,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:215,1
    - Dst: __bitmap_empty
      Src: /src/xen/xen/include/xen/bitmap.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: bitmap_empty
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 8
    functionsReached:
    - __bitmap_empty
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    linkageType: ''
    returnType: int
    signature: int bitmap_empty(const unsigned long *src, unsigned int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_switch
      Src: /src/xen/xen/include/xen/bitmap.h:221,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/include/xen/bitmap.h:223,1
    - Dst: __bitmap_full
      Src: /src/xen/xen/include/xen/bitmap.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: bitmap_full
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - __bitmap_full
    - BITMAP_LAST_WORD_MASK
    - bitmap_switch
    linkageType: ''
    returnType: int
    signature: int bitmap_full(const unsigned long *src, unsigned int nbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bitmap_weight
      Src: /src/xen/xen/include/xen/bitmap.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: bitmap_weight
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 4
    functionsReached:
    - __bitmap_weight
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int bitmap_weight(const unsigned long *src,\n                                         unsigned
      int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - start
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: BITMAP_FIRST_WORD_MASK
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMAP_FIRST_WORD_MASK(start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:246,1
    - Dst: __set_bit
      Src: /src/xen/xen/include/xen/bitmap.h:247,1
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:248,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/include/xen/bitmap.h:249,1
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:250,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/include/xen/bitmap.h:251,1
    - Dst: memset
      Src: /src/xen/xen/include/xen/bitmap.h:252,1
    - Dst: __bitmap_set
      Src: /src/xen/xen/include/xen/bitmap.h:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - map
    - start
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: bitmap_set
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 26
    functionsReached:
    - __set_bit
    - __builtin_constant_p
    - IS_ALIGNED
    - __bitmap_set
    - memset
    linkageType: ''
    returnType: void
    signature: "void bitmap_set(unsigned long *map, unsigned int start,\n\t\tunsigned
      int nbits)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:260,1
    - Dst: __clear_bit
      Src: /src/xen/xen/include/xen/bitmap.h:261,1
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:262,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/include/xen/bitmap.h:263,1
    - Dst: __builtin_constant_p
      Src: /src/xen/xen/include/xen/bitmap.h:264,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/include/xen/bitmap.h:265,1
    - Dst: memset
      Src: /src/xen/xen/include/xen/bitmap.h:266,1
    - Dst: __bitmap_clear
      Src: /src/xen/xen/include/xen/bitmap.h:268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - map
    - start
    - nbits
    argTypes:
    - unsigned long*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: bitmap_clear
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 3
    functionsReached:
    - __clear_bit
    - __builtin_constant_p
    - IS_ALIGNED
    - __bitmap_clear
    - memset
    linkageType: ''
    returnType: void
    signature: "void bitmap_clear(unsigned long *map, unsigned int start,\n\t\tunsigned
      int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - bit
    - ','
    - addr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: bitmap_for_each
    functionSourceFile: /src/xen/xen/include/xen/bitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bitmap_for_each(bit, addr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_muldiv64
      Src: /src/xen/xen/include/xen/muldiv64.h:20,1
    - Dst: generic_muldiv64
      Src: /src/xen/xen/include/xen/muldiv64.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: muldiv64
    functionSourceFile: /src/xen/xen/include/xen/muldiv64.h
    functionUses: 4
    functionsReached:
    - arch_muldiv64
    - generic_muldiv64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: monitor_domctl
    functionSourceFile: /src/xen/xen/include/xen/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int monitor_domctl(struct domain *d,\n                                 struct
      xen_domctl_monitor_op *mop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: monitor_guest_request
    functionSourceFile: /src/xen/xen/include/xen/monitor.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void monitor_guest_request(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - val
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: COMPILE_CHECK
    functionSourceFile: /src/xen/xen/include/xen/self-tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPILE_CHECK(fn, val, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - val
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: RUNTIME_CHECK
    functionSourceFile: /src/xen/xen/include/xen/self-tests.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUNTIME_CHECK(fn, val, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - val
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: CHECK
    functionSourceFile: /src/xen/xen/include/xen/self-tests.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(fn, val, res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cycles
      Src: /src/xen/xen/include/xen/stack-protector.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 39
    functionName: boot_stack_chk_guard_setup
    functionSourceFile: /src/xen/xen/include/xen/stack-protector.h
    functionUses: 1
    functionsReached:
    - get_cycles
    linkageType: ''
    returnType: always_inline
    signature: always_inline boot_stack_chk_guard_setup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: xvmalloc
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvmalloc(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: xvzalloc
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvzalloc(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: xvmemdup
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvmemdup(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: DIM_MUL1
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIM_MUL1(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n1
    - ','
    - n2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: DIM_MUL2
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIM_MUL2(n1, n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - n
    - ','
    - nums
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: DIM_MUL_
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIM_MUL_(n, nums...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - n
    - ','
    - nums
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: DIM_MUL
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIM_MUL(n, nums...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - type
    - ','
    - num
    - ','
    - nums
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: xvmalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvmalloc_array(type, num, nums...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - type
    - ','
    - num
    - ','
    - nums
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: xvzalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvzalloc_array(type, num, nums...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: xvzalloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvzalloc_flex_struct(type, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: xvmalloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvmalloc_flex_struct(type, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: xvrealloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xvrealloc_flex_struct(ptr, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: XVFREE
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XVFREE(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xvmalloc
      Src: /src/xen/xen/include/xen/xvmalloc.h:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - size
    - align
    - num
    argTypes:
    - size_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: _xvmalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached:
    - _xvmalloc
    linkageType: ''
    returnType: void
    signature: "void *_xvmalloc_array(\n    size_t size, unsigned int align, unsigned
      long num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xvzalloc
      Src: /src/xen/xen/include/xen/xvmalloc.h:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - size
    - align
    - num
    argTypes:
    - size_t
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: _xvzalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xvmalloc.h
    functionUses: 0
    functionsReached:
    - _xvzalloc
    linkageType: ''
    returnType: void
    signature: "void *_xvzalloc_array(\n    size_t size, unsigned int align, unsigned
      long num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/include/xen/rcupdate.h:46,1
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/rcupdate.h:47,1
    - Dst: barrier
      Src: /src/xen/xen/include/xen/rcupdate.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: rcu_quiesce_disable
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 0
    functionsReached:
    - barrier
    - preempt_disable
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_quiesce_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/include/xen/rcupdate.h:53,1
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/rcupdate.h:54,1
    - Dst: preempt_enable
      Src: /src/xen/xen/include/xen/rcupdate.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rcu_quiesce_enable
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 0
    functionsReached:
    - this_cpu
    - preempt_enable
    - barrier
    linkageType: ''
    returnType: void
    signature: void rcu_quiesce_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/include/xen/rcupdate.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: rcu_quiesce_allowed
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: bool
    signature: bool rcu_quiesce_allowed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: RCU_HEAD
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCU_HEAD(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: INIT_RCU_HEAD
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_RCU_HEAD(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: DEFINE_RCU_READ_LOCK
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_RCU_READ_LOCK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_quiesce_disable
      Src: /src/xen/xen/include/xen/rcupdate.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rcu_read_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rcu_read_lock
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 15
    functionsReached:
    - rcu_quiesce_disable
    linkageType: ''
    returnType: void
    signature: void rcu_read_lock(rcu_read_lock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/rcupdate.h:131,1
    - Dst: rcu_quiesce_allowed
      Src: /src/xen/xen/include/xen/rcupdate.h:131,1
    - Dst: rcu_quiesce_enable
      Src: /src/xen/xen/include/xen/rcupdate.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rcu_read_lock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: rcu_read_unlock
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 15
    functionsReached:
    - ASSERT
    - rcu_quiesce_enable
    - rcu_quiesce_allowed
    linkageType: ''
    returnType: void
    signature: void rcu_read_unlock(rcu_read_lock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: rcu_dereference
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rcu_dereference(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: rcu_assign_pointer
    functionSourceFile: /src/xen/xen/include/xen/rcupdate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rcu_assign_pointer(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: group_from_port
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: group_from_port(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: bucket_from_port
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bucket_from_port(d, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/include/xen/event.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: evtchn_read_lock
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached:
    - read_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline evtchn_read_lock(struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_trylock
      Src: /src/xen/xen/include/xen/event.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: evtchn_read_trylock
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 2
    functionsReached:
    - read_trylock
    linkageType: ''
    returnType: always_inline
    signature: always_inline evtchn_read_trylock(struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_unlock
      Src: /src/xen/xen/include/xen/event.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: evtchn_read_unlock
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 2
    functionsReached:
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void evtchn_read_unlock(struct evtchn *evtchn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/include/xen/event.h:148,1
    - Dst: smp_rmb
      Src: /src/xen/xen/include/xen/event.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - p
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: port_is_valid
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 6
    functionsReached:
    - read_atomic
    - smp_rmb
    linkageType: ''
    returnType: bool
    signature: bool port_is_valid(const struct domain *d, evtchn_port_t p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_index_nospec
      Src: /src/xen/xen/include/xen/event.h:165,1
    - Dst: bucket_from_port
      Src: /src/xen/xen/include/xen/event.h:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - p
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: evtchn_from_port
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 7
    functionsReached:
    - array_index_nospec
    - bucket_from_port
    linkageType: ''
    returnType: struct evtchn
    signature: "struct evtchn *evtchn_from_port(const struct domain *d,\n                                              evtchn_port_t
      p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arch_evtchn_is_special
      Src: /src/xen/xen/include/xen/event.h:179,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/include/xen/event.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: evtchn_usable
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached:
    - arch_evtchn_is_special
    - BUILD_BUG_ON
    linkageType: ''
    returnType: bool
    signature: bool evtchn_usable(const struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - port
    - ','
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: wait_on_xen_event_channel
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: wait_on_xen_event_channel(port, condition)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct domain*::evtchn_port_ops::init
      Src: /src/xen/xen/include/xen/event.h:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: evtchn_port_init
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached:
    - struct domain*::evtchn_port_ops::init
    linkageType: ''
    returnType: void
    signature: void evtchn_port_init(struct domain *d, struct evtchn *evtchn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/include/xen/event.h:252,1
    - Dst: struct domain*::evtchn_port_ops::set_pending
      Src: /src/xen/xen/include/xen/event.h:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - d
    - vcpu_id
    - evtchn
    argTypes:
    - struct domain*
    - unsigned int
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: evtchn_port_set_pending
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 1
    functionsReached:
    - struct domain*::evtchn_port_ops::set_pending
    - evtchn_usable
    linkageType: ''
    returnType: void
    signature: "void evtchn_port_set_pending(struct domain *d,\n                                           unsigned
      int vcpu_id,\n                                           struct evtchn *evtchn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/include/xen/event.h:259,1
    - Dst: struct domain*::evtchn_port_ops::clear_pending
      Src: /src/xen/xen/include/xen/event.h:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: evtchn_port_clear_pending
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached:
    - struct domain*::evtchn_port_ops::clear_pending
    - evtchn_usable
    linkageType: ''
    returnType: void
    signature: "void evtchn_port_clear_pending(struct domain *d,\n                                             struct
      evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/include/xen/event.h:266,1
    - Dst: struct domain*::evtchn_port_ops::is_pending
      Src: /src/xen/xen/include/xen/event.h:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: evtchn_is_pending
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 1
    functionsReached:
    - evtchn_usable
    - struct domain*::evtchn_port_ops::is_pending
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_is_pending(const struct domain *d,\n                                     const
      struct evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/include/xen/event.h:272,1
    - Dst: struct domain*::evtchn_port_ops::is_masked
      Src: /src/xen/xen/include/xen/event.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: evtchn_is_masked
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 1
    functionsReached:
    - struct domain*::evtchn_port_ops::is_masked
    - evtchn_usable
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_is_masked(const struct domain *d,\n                                    const
      struct evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_from_port
      Src: /src/xen/xen/include/xen/event.h:277,1
    - Dst: evtchn_read_lock
      Src: /src/xen/xen/include/xen/event.h:280,1
    - Dst: evtchn_is_masked
      Src: /src/xen/xen/include/xen/event.h:282,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/include/xen/event.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: evtchn_port_is_masked
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 1
    functionsReached:
    - evtchn_read_unlock
    - evtchn_is_masked
    - evtchn_from_port
    - evtchn_read_lock
    linkageType: ''
    returnType: bool
    signature: bool evtchn_port_is_masked(struct domain *d, evtchn_port_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/include/xen/event.h:294,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/include/xen/event.h:296,1
    - Dst: evtchn_read_lock
      Src: /src/xen/xen/include/xen/event.h:298,1
    - Dst: evtchn_usable
      Src: /src/xen/xen/include/xen/event.h:300,1
    - Dst: evtchn_is_pending
      Src: /src/xen/xen/include/xen/event.h:301,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/include/xen/event.h:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: evtchn_port_poll
    functionSourceFile: /src/xen/xen/include/xen/event.h
    functionUses: 0
    functionsReached:
    - port_is_valid
    - evtchn_is_pending
    - evtchn_read_lock
    - evtchn_read_unlock
    - evtchn_from_port
    - evtchn_usable
    linkageType: ''
    returnType: int
    signature: int evtchn_port_poll(struct domain *d, evtchn_port_t port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - pdev
    argTypes:
    - struct domain*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: pdev_msix_assign
    functionSourceFile: /src/xen/xen/include/xen/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pdev_msix_assign(struct domain *d, struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: pdev_msi_init
    functionSourceFile: /src/xen/xen/include/xen/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pdev_msi_init(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: pdev_msi_deinit
    functionSourceFile: /src/xen/xen/include/xen/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pdev_msi_deinit(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: pci_cleanup_msi
    functionSourceFile: /src/xen/xen/include/xen/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pci_cleanup_msi(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: pdev_dump_msi
    functionSourceFile: /src/xen/xen/include/xen/msi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pdev_dump_msi(const struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: is_init_section
    functionSourceFile: /src/xen/xen/include/xen/sections.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_init_section(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: NOW
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOW()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: DAYS
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DAYS(_d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: SECONDS
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECONDS(_s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ms
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MILLISECS
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MILLISECS(_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _us
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MICROSECS
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MICROSECS(_us)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: version_update_begin
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: version_update_begin(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: version_update_end
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: version_update_end(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: muldiv64
      Src: /src/xen/xen/include/xen/time.h:81,1
    - Dst: MILLISECS
      Src: /src/xen/xen/include/xen/time.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ticks_to_ns
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 7
    functionsReached:
    - MILLISECS
    - muldiv64
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t ticks_to_ns(uint64_t ticks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: muldiv64
      Src: /src/xen/xen/include/xen/time.h:86,1
    - Dst: MILLISECS
      Src: /src/xen/xen/include/xen/time.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ns_to_ticks
    functionSourceFile: /src/xen/xen/include/xen/time.h
    functionUses: 1
    functionsReached:
    - MILLISECS
    - muldiv64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ns_to_ticks(s_time_t ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gran
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: PAGE_SIZE_GRAN
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_SIZE_GRAN(gran)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gran
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: PAGE_MASK_GRAN
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_MASK_GRAN(gran)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gran
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 9
    functionName: PAGE_ALIGN_GRAN
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_GRAN(gran, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: PAGE_ALIGN_4K
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_4K(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: PAGE_ALIGN_16K
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_16K(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PAGE_ALIGN_64K
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_64K(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PAGE_ALIGN_2M
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_2M(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PAGE_ALIGN_1G
    functionSourceFile: /src/xen/xen/include/xen/page-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_ALIGN_1G(addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: TYPE_SAFE
    functionSourceFile: /src/xen/xen/include/xen/typesafe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_SAFE(_type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: TYPE_SAFE
    functionSourceFile: /src/xen/xen/include/xen/typesafe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE_SAFE(_type, _name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: _AC
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _AC(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: _AT
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _AT(T,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: __AC
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __AC(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: _AC
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _AC(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: _AT
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _AT(T,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pos
    - ','
    - sfx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: BIT
    functionSourceFile: /src/xen/xen/include/xen/const.h
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT(pos, sfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 371
    functionName: PCI_X_CMD_VERSION
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_X_CMD_VERSION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: PCI_EXT_CAP_ID
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_EXT_CAP_ID(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    functionName: PCI_EXT_CAP_VER
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_EXT_CAP_VER(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: PCI_EXT_CAP_NEXT
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_EXT_CAP_NEXT(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: PCI_ERR_CAP_FEP
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_ERR_CAP_FEP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: PCI_PWR_DATA_BASE
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_BASE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: PCI_PWR_DATA_SCALE
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_SCALE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: PCI_PWR_DATA_PM_SUB
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_PM_SUB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: PCI_PWR_DATA_PM_STATE
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_PM_STATE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: PCI_PWR_DATA_TYPE
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_TYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: PCI_PWR_DATA_RAIL
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_DATA_RAIL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 541
    functionName: PCI_PWR_CAP_BUDGET
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_PWR_CAP_BUDGET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: PCI_VNDR_HEADER_ID
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_VNDR_HEADER_ID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: PCI_VNDR_HEADER_REV
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_VNDR_HEADER_REV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 547
    functionName: PCI_VNDR_HEADER_LEN
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_VNDR_HEADER_LEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: PCI_REBAR_CAP
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_REBAR_CAP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: PCI_REBAR_CTRL
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_REBAR_CTRL(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    functionName: PCI_REBAR_CTRL_SIZE
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_REBAR_CTRL_SIZE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 609
    functionName: PCI_SRIOV_CAP_INTR
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SRIOV_CAP_INTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 630
    functionName: PCI_SRIOV_VFM_BIR
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SRIOV_VFM_BIR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 631
    functionName: PCI_SRIOV_VFM_OFFSET
    functionSourceFile: /src/xen/xen/include/xen/pci_regs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCI_SRIOV_VFM_OFFSET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udelay
      Src: /src/xen/xen/include/xen/delay.h:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - msec
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: mdelay
    functionSourceFile: /src/xen/xen/include/xen/delay.h
    functionUses: 21
    functionsReached:
    - udelay
    linkageType: ''
    returnType: void
    signature: void mdelay(unsigned long msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: cpu_to_le64
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: le64_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: cpu_to_le32
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: le32_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: cpu_to_le16
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: le16_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: cpu_to_be64
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: be64_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: cpu_to_be32
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: be32_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: cpu_to_be16
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: be16_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: cpu_to_le64
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: le64_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: cpu_to_le32
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: le32_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: cpu_to_le16
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: le16_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: cpu_to_be64
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: be64_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: cpu_to_be32
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: be32_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: cpu_to_be16
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_be16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: be16_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/byteorder.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: timer_is_expired
    functionSourceFile: /src/xen/xen/include/xen/timer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_is_expired(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/timer.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: timer_is_active
    functionSourceFile: /src/xen/xen/include/xen/timer.h
    functionUses: 1
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: bool timer_is_active(const struct timer *timer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: readb
      Src: /src/xen/xen/include/xen/io.h:20,1
    - Dst: readw
      Src: /src/xen/xen/include/xen/io.h:23,1
    - Dst: readl
      Src: /src/xen/xen/include/xen/io.h:26,1
    - Dst: readq
      Src: /src/xen/xen/include/xen/io.h:30,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/io.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - mem
    - size
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 37
    functionName: read_mmio
    functionSourceFile: /src/xen/xen/include/xen/io.h
    functionUses: 2
    functionsReached:
    - readw
    - readq
    - readl
    - readb
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long read_mmio(const volatile void __iomem *mem,\n                                      unsigned
      int size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writeb
      Src: /src/xen/xen/include/xen/io.h:45,1
    - Dst: writew
      Src: /src/xen/xen/include/xen/io.h:49,1
    - Dst: writel
      Src: /src/xen/xen/include/xen/io.h:53,1
    - Dst: writeq
      Src: /src/xen/xen/include/xen/io.h:58,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xen/io.h:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - mem
    - data
    - size
    argTypes:
    - void*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: write_mmio
    functionSourceFile: /src/xen/xen/include/xen/io.h
    functionUses: 2
    functionsReached:
    - writel
    - writew
    - writeb
    - writeq
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: "bool write_mmio(volatile void __iomem *mem, unsigned long data,\n
      \                             unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_dt_overlay*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: dt_overlay_sysctl
    functionSourceFile: /src/xen/xen/include/xen/dt-overlay.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long dt_overlay_sysctl(struct xen_sysctl_dt_overlay *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - struct xen_domctl_dt_overlay*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: dt_overlay_domctl
    functionSourceFile: /src/xen/xen/include/xen/dt-overlay.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: "long dt_overlay_domctl(struct domain *d,\n                                     struct
      xen_domctl_dt_overlay *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: radix_tree_is_indirect_ptr
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int radix_tree_is_indirect_ptr(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: RADIX_TREE_INIT
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RADIX_TREE_INIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: RADIX_TREE
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RADIX_TREE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/include/xen/radix-tree.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pslot
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: radix_tree_deref_slot
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached:
    - rcu_dereference
    linkageType: ''
    returnType: void
    signature: void *radix_tree_deref_slot(void **pslot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/include/xen/radix-tree.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: radix_tree_deref_retry
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: int
    signature: int radix_tree_deref_retry(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/include/xen/radix-tree.h:160,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/include/xen/radix-tree.h:160,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/include/xen/radix-tree.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pslot
    - item
    argTypes:
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: radix_tree_replace_slot
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 5
    functionsReached:
    - BUG_ON
    - radix_tree_is_indirect_ptr
    - rcu_assign_pointer
    linkageType: ''
    returnType: void
    signature: void radix_tree_replace_slot(void **pslot, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/radix-tree.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: radix_tree_int_to_ptr
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 6
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void *radix_tree_int_to_ptr(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/radix-tree.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: radix_tree_ptr_to_int
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 2
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int radix_tree_ptr_to_int(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/radix-tree.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: radix_tree_ulong_to_ptr
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void *radix_tree_ulong_to_ptr(unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xen/radix-tree.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: radix_tree_ptr_to_ulong
    functionSourceFile: /src/xen/xen/include/xen/radix-tree.h
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long radix_tree_ptr_to_ulong(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tbc
    argTypes:
    - struct xen_sysctl_tbuf_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: tb_control
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tb_control(struct xen_sysctl_tbuf_op *tbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: trace_will_trace_event
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int trace_will_trace_event(uint32_t event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - event
    - extra
    - extra_data
    argTypes:
    - uint32_t
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: trace
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void trace(\n    uint32_t event, unsigned int extra, const void *extra_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - event
    - op
    - args
    argTypes:
    - uint32_t
    - unsigned long
    - xen_ulong_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: __trace_hypercall
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __trace_hypercall(uint32_t event, unsigned long op,\n                                     const
      xen_ulong_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace
      Src: /src/xen/xen/include/xen/trace.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - event
    - extra
    - extra_data
    argTypes:
    - uint32_t
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: trace_time
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 6
    functionsReached:
    - trace
    linkageType: ''
    returnType: void
    signature: "void trace_time(\n    uint32_t event, unsigned int extra, const void
      *extra_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _e
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: TRACE
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(_e, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _e
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: TRACE_TIME
    functionSourceFile: /src/xen/xen/include/xen/trace.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_TIME(_e, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: SYM_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYM_ALIGN(align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: SYM_L_GLOBAL
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYM_L_GLOBAL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: SYM_L_WEAK
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYM_L_WEAK(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 10
    argNames:
    - (
    - name
    - ','
    - typ
    - ','
    - linkage
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: SYM
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYM(name, typ, linkage, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: END
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: END(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: count_args_exp
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: count_args_exp(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: DO_CODE_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CODE_ALIGN(align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: DO_CODE_ALIGN
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_CODE_ALIGN(align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: FUNC
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: LABEL
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: DATA
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: FUNC_LOCAL
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_LOCAL(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: LABEL_LOCAL
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LABEL_LOCAL(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - name
    - ','
    - align
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: DATA_LOCAL
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_LOCAL(name, align...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: ASM_INT
    functionSourceFile: /src/xen/xen/include/xen/linkage.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASM_INT(label, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - isize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: lz4_compressbound
    functionSourceFile: /src/xen/xen/include/xen/lz4.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t lz4_compressbound(size_t isize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: XEN_ERRNO
    functionSourceFile: /src/xen/xen/include/xen/errno.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_ERRNO(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: XEN_ERRNO
    functionSourceFile: /src/xen/xen/include/xen/errno.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XEN_ERRNO(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/fdt-kernel.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: kernel_info_get_mem
    functionSourceFile: /src/xen/xen/include/xen/fdt-kernel.h
    functionUses: 6
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *kernel_info_get_mem(struct kernel_info *kinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/include/xen/fdt-kernel.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: kernel_info_get_mem_const
    functionSourceFile: /src/xen/xen/include/xen/fdt-kernel.h
    functionUses: 3
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: 'struct membanks *

      kernel_info_get_mem_const(const struct kernel_info *kinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: xmalloc
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: xzalloc
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xzalloc(_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: xmemdup
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmemdup(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: xmalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc_array(_type, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _type
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: xzalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xzalloc_array(_type, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _ptr
    - ','
    - _num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: xrealloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xrealloc_array(_ptr, _num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: xzalloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xzalloc_flex_struct(type, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: xmalloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc_flex_struct(type, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - field
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: xrealloc_flex_struct
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xrealloc_flex_struct(ptr, field, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: xmalloc_bytes
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmalloc_bytes(_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: xzalloc_bytes
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xzalloc_bytes(_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _src
    - ','
    - _nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: xmemdup_bytes
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xmemdup_bytes(_src, _nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: XFREE
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XFREE(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xmalloc
      Src: /src/xen/xen/include/xen/xmalloc.h:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - size
    - align
    - num
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: _xmalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 0
    functionsReached:
    - _xmalloc
    linkageType: ''
    returnType: void
    signature: "void *_xmalloc_array(\n    unsigned long size, unsigned long align,
      unsigned long num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xzalloc
      Src: /src/xen/xen/include/xen/xmalloc.h:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - size
    - align
    - num
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: _xzalloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 0
    functionsReached:
    - _xzalloc
    linkageType: ''
    returnType: void
    signature: "void *_xzalloc_array(\n    unsigned long size, unsigned long align,
      unsigned long num)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xrealloc
      Src: /src/xen/xen/include/xen/xmalloc.h:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - size
    - align
    - num
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: _xrealloc_array
    functionSourceFile: /src/xen/xen/include/xen/xmalloc.h
    functionUses: 0
    functionsReached:
    - _xrealloc
    linkageType: ''
    returnType: void
    signature: "void *_xrealloc_array(\n    void *ptr, unsigned long size, unsigned
      long align, unsigned long num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: video_init
    functionSourceFile: /src/xen/xen/include/xen/video.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: video_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - str
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: video_puts
    functionSourceFile: /src/xen/xen/include/xen/video.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void video_puts(const char *str, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: video_endboot
    functionSourceFile: /src/xen/xen/include/xen/video.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: video_endboot()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_mem_rsv
      Src: /src/xen/xen/include/xen/libfdt/libfdt-xen.h:24,1
    - Dst: printk
      Src: /src/xen/xen/include/xen/libfdt/libfdt-xen.h:30,1
    - Dst: printk
      Src: /src/xen/xen/include/xen/libfdt/libfdt-xen.h:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fdt
    - n
    - address
    - size
    argTypes:
    - void*
    - int
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 44
    functionName: fdt_get_mem_rsv_paddr
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt-xen.h
    functionUses: 0
    functionsReached:
    - fdt_get_mem_rsv
    - printk
    linkageType: ''
    returnType: int
    signature: "int fdt_get_mem_rsv_paddr(const void *fdt, int n,\n                                        paddr_t
      *address,\n                                        paddr_t *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: EXTRACT_BYTE
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRACT_BYTE(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: CPU_TO_FDT16
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPU_TO_FDT16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: CPU_TO_FDT32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPU_TO_FDT32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: CPU_TO_FDT64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CPU_TO_FDT64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: FDT_ERR_XEN
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_ERR_XEN(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT16
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - fdt16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: fdt16_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached:
    - CPU_TO_FDT16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t fdt16_to_cpu(fdt16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT16
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: cpu_to_fdt16
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached:
    - CPU_TO_FDT16
    linkageType: ''
    returnType: fdt16_t
    signature: fdt16_t cpu_to_fdt16(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT32
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - fdt32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: fdt32_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 3
    functionsReached:
    - CPU_TO_FDT32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt32_to_cpu(fdt32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT32
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: cpu_to_fdt32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 3
    functionsReached:
    - CPU_TO_FDT32
    linkageType: ''
    returnType: fdt32_t
    signature: fdt32_t cpu_to_fdt32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT64
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - fdt64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: fdt64_to_cpu
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached:
    - CPU_TO_FDT64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fdt64_to_cpu(fdt64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CPU_TO_FDT64
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: cpu_to_fdt64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 1
    functionsReached:
    - CPU_TO_FDT64
    linkageType: ''
    returnType: fdt64_t
    signature: fdt64_t cpu_to_fdt64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/xen/xen/include/xen/libfdt/libfdt_env.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - max_count
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: fdt_strnlen
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt_env.h
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: size_t
    signature: size_t fdt_strnlen(const char *string, size_t max_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_offset_ptr
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - offset
    - checklen
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: fdt_offset_ptr_w
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_offset_ptr
    linkageType: ''
    returnType: void
    signature: void *fdt_offset_ptr_w(void *fdt, int offset, int checklen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - fdt32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: fdt32_ld
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt32_ld(const fdt32_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - property
    - value
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: fdt32_st
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fdt32_st(void *property, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - fdt64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: fdt64_ld
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fdt64_ld(const fdt64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - property
    - value
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: fdt64_st
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fdt64_st(void *property, uint64_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - node
    - ','
    - fdt
    - ','
    - parent
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_for_each_subnode(node, fdt, parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fdt
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: fdt_get_header
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_get_header(fdt, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: fdt_magic
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_magic(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: fdt_totalsize
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_totalsize(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: fdt_off_dt_struct
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_off_dt_struct(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: fdt_off_dt_strings
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_off_dt_strings(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: fdt_off_mem_rsvmap
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_off_mem_rsvmap(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: fdt_version
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_version(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: fdt_last_comp_version
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_last_comp_version(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: fdt_boot_cpuid_phys
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_boot_cpuid_phys(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: fdt_size_dt_strings
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_size_dt_strings(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: fdt_size_dt_struct
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_size_dt_struct(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 259
    functionName: fdt_set_hdr_
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_set_hdr_(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_find_max_phandle
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 401
    functionName: fdt_get_max_phandle
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_find_max_phandle
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt_get_max_phandle(const void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - property
    - ','
    - fdt
    - ','
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 625
    functionName: fdt_for_each_property_offset
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_for_each_property_offset(property, fdt, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: fdt_get_property_w
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_get_property
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,\n\t\t\t\t\t\t
      \     const char *name,\n\t\t\t\t\t\t      int *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_namelen
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - namelen
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: fdt_getprop_namelen_w
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_getprop_namelen
    linkageType: ''
    returnType: void
    signature: "void *fdt_getprop_namelen_w(void *fdt, int nodeoffset,\n\t\t\t\t\t
      \ const char *name, int namelen,\n\t\t\t\t\t  int *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: fdt_getprop_w
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_getprop
    linkageType: ''
    returnType: void
    signature: "void *fdt_getprop_w(void *fdt, int nodeoffset,\n\t\t\t\t  const char
      *name, int *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1313,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1310
    functionDepth: 2
    functionLinenumber: 1310
    functionLinenumberEnd: 1315
    functionName: fdt_setprop_inplace_u32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - cpu_to_fdt32
    - fdt_setprop_inplace
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_inplace_u32(void *fdt, int nodeoffset,\n\t\t\t\t\t
      \ const char *name, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1348,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1350
    functionName: fdt_setprop_inplace_u64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - cpu_to_fdt64
    - fdt_setprop_inplace
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_inplace_u64(void *fdt, int nodeoffset,\n\t\t\t\t\t
      \ const char *name, uint64_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_setprop_inplace_u32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1362
    functionDepth: 3
    functionLinenumber: 1362
    functionLinenumberEnd: 1366
    functionName: fdt_setprop_inplace_cell
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_setprop_inplace_u32
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_inplace_cell(void *fdt, int nodeoffset,\n\t\t\t\t\t
      \  const char *name, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1468,1
    - Dst: fdt_property
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - name
    - val
    argTypes:
    - void*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1466
    functionDepth: 2
    functionLinenumber: 1466
    functionLinenumberEnd: 1470
    functionName: fdt_property_u32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 5
    functionsReached:
    - cpu_to_fdt32
    - fdt_property
    linkageType: ''
    returnType: int
    signature: int fdt_property_u32(void *fdt, const char *name, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1473,1
    - Dst: fdt_property
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - name
    - val
    argTypes:
    - void*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1471
    functionDepth: 2
    functionLinenumber: 1471
    functionLinenumberEnd: 1475
    functionName: fdt_property_u64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 1
    functionsReached:
    - cpu_to_fdt64
    - fdt_property
    linkageType: ''
    returnType: int
    signature: int fdt_property_u64(void *fdt, const char *name, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_property_u32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - name
    - val
    argTypes:
    - void*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1481
    functionName: fdt_property_cell
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 22
    functionsReached:
    - fdt_property_u32
    linkageType: ''
    returnType: int
    signature: int fdt_property_cell(void *fdt, const char *name, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fdt
    - ','
    - name
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1501
    functionName: fdt_property_string
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_property_string(fdt, name, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1680,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1682
    functionName: fdt_setprop_u32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 2
    functionsReached:
    - fdt_setprop
    - cpu_to_fdt32
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_u32(void *fdt, int nodeoffset, const char *name,\n\t\t\t\t
      \ uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1715,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1717
    functionName: fdt_setprop_u64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 1
    functionsReached:
    - fdt_setprop
    - cpu_to_fdt64
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_u64(void *fdt, int nodeoffset, const char *name,\n\t\t\t\t
      \ uint64_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_setprop_u32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1734
    functionName: fdt_setprop_cell
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_setprop_u32
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_cell(void *fdt, int nodeoffset, const char *name,\n\t\t\t\t
      \  uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fdt
    - ','
    - nodeoffset
    - ','
    - name
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1766
    functionName: fdt_setprop_string
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_setprop_string(fdt, nodeoffset, name, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fdt
    - ','
    - nodeoffset
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1796
    functionName: fdt_setprop_empty
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_setprop_empty(fdt, nodeoffset, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1858,1
    - Dst: fdt_appendprop
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1860
    functionName: fdt_appendprop_u32
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_appendprop
    - cpu_to_fdt32
    linkageType: ''
    returnType: int
    signature: "int fdt_appendprop_u32(void *fdt, int nodeoffset,\n\t\t\t\t     const
      char *name, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1893,1
    - Dst: fdt_appendprop
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1890
    functionDepth: 2
    functionLinenumber: 1890
    functionLinenumberEnd: 1895
    functionName: fdt_appendprop_u64
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_appendprop
    - cpu_to_fdt64
    linkageType: ''
    returnType: int
    signature: "int fdt_appendprop_u64(void *fdt, int nodeoffset,\n\t\t\t\t     const
      char *name, uint64_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_appendprop_u32
      Src: /src/xen/xen/include/xen/libfdt/libfdt.h:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 3
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    functionName: fdt_appendprop_cell
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached:
    - fdt_appendprop_u32
    linkageType: ''
    returnType: int
    signature: "int fdt_appendprop_cell(void *fdt, int nodeoffset,\n\t\t\t\t      const
      char *name, uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fdt
    - ','
    - nodeoffset
    - ','
    - name
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1941
    functionDepth: 0
    functionLinenumber: 1941
    functionLinenumberEnd: 1943
    functionName: fdt_appendprop_string
    functionSourceFile: /src/xen/xen/include/xen/libfdt/libfdt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fdt_appendprop_string(fdt, nodeoffset, name, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - leaf
    - l
    argTypes:
    - uint32_t
    - struct cpuid_leaf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: cpuid_leaf
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpuid_leaf(uint32_t leaf, struct cpuid_leaf *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - leaf
    - subleaf
    - l
    argTypes:
    - uint32_t
    - uint32_t
    - struct cpuid_leaf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: cpuid_count_leaf
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cpuid_count_leaf(\n    uint32_t leaf, uint32_t subleaf, struct
      cpuid_leaf *l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: DECL_BITFIELD
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_BITFIELD(word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: _DECL_BITFIELD
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _DECL_BITFIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: __DECL_BITFIELD
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __DECL_BITFIELD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: cpu_policy_xcr0_max
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cpu_policy_xcr0_max(const struct cpu_policy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct cpu_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: cpu_policy_xstates
    functionSourceFile: /src/xen/xen/include/xen/lib/x86/cpu-policy.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t cpu_policy_xstates(const struct cpu_policy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: DP_IS_END_SUBTYPE
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DP_IS_END_SUBTYPE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: DevicePathType
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DevicePathType(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: DevicePathSubType
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DevicePathSubType(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: DevicePathNodeLength
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DevicePathNodeLength(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: NextDevicePathNode
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NextDevicePathNode(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: IsDevicePathEndType
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsDevicePathEndType(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: IsDevicePathEndSubType
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsDevicePathEndSubType(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: IsDevicePathEnd
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsDevicePathEnd(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: IsDevicePathUnpacked
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsDevicePathUnpacked(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: SetDevicePathNodeLength
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDevicePathNodeLength(a,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: SetDevicePathEndNode
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDevicePathEndNode(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _Name
    - ','
    - _Num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: EISA_ID
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EISA_ID(_Name, _Num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _PNPId
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: EISA_PNP_ID
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EISA_PNP_ID(_PNPId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: EISA_ID_TO_NUM
    functionSourceFile: /src/xen/xen/include/efi/efidevp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EISA_ID_TO_NUM(_Id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: EFIWARN
    functionSourceFile: /src/xen/xen/include/efi/efierr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFIWARN(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: EFI_ERROR
    functionSourceFile: /src/xen/xen/include/efi/efierr.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_ERROR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: EFI_SIZE_TO_PAGES
    functionSourceFile: /src/xen/xen/include/efi/efidef.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_SIZE_TO_PAGES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: EFI_TEXT_ATTR
    functionSourceFile: /src/xen/xen/include/efi/eficon.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_TEXT_ATTR(f,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _bus
    - ','
    - _dev
    - ','
    - _func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: EFI_PCI_ADDRESS
    functionSourceFile: /src/xen/xen/include/efi/efiprot.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_PCI_ADDRESS(_bus,_dev,_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Ptr
    - ','
    - Size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: NextMemoryDescriptor
    functionSourceFile: /src/xen/xen/include/efi/efiapi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NextMemoryDescriptor(Ptr,Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: ACPI_FADT_OFFSET
    functionSourceFile: /src/xen/xen/include/acpi/actbl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FADT_OFFSET(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: ACPI_DEBUG_LEVEL
    functionSourceFile: /src/xen/xen/include/acpi/acoutput.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_LEVEL(dl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: ACPI_LOWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_LOWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: ACPI_HIWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HIWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: ACPI_LOBYTE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_LOBYTE(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: ACPI_HIBYTE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HIBYTE(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - target
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ACPI_SET_BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET_BIT(target,bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - target
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ACPI_CLEAR_BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_CLEAR_BIT(target,bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: ACPI_MIN
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MIN(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ACPI_MAX
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: ACPI_ARRAY_LENGTH
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: ACPI_LODWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_LODWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ACPI_HIDWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HIDWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: ACPI_LODWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_LODWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: ACPI_HIDWORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HIDWORD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: ACPI_FORMAT_UINT64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FORMAT_UINT64(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ACPI_GET8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET8(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: ACPI_GET16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET16(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ACPI_GET32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET32(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: ACPI_GET64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET64(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ACPI_SET8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET8(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: ACPI_SET16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET16(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: ACPI_SET32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET32(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ACPI_SET64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET64(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: ACPI_CAST_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_CAST_PTR(t, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: ACPI_CAST_INDIRECT_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_CAST_INDIRECT_PTR(t, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: ACPI_ADD_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ADD_PTR(t,a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: ACPI_PTR_DIFF
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_PTR_DIFF(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: ACPI_TO_POINTER
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_TO_POINTER(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: ACPI_TO_INTEGER
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_TO_INTEGER(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: ACPI_OFFSET
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_OFFSET(d,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: ACPI_PHYSADDR_TO_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_PHYSADDR_TO_PTR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: ACPI_PTR_TO_PHYSADDR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_PTR_TO_PHYSADDR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: ACPI_COMPARE_NAME
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_COMPARE_NAME(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: ACPI_COMPARE_NAME
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_COMPARE_NAME(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ACPI_ACCESS_BIT_WIDTH
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ACCESS_BIT_WIDTH(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: ACPI_ACCESS_BYTE_WIDTH
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ACCESS_BYTE_WIDTH(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf_len
    - ','
    - buf_offset
    - ','
    - byte_gran
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: ACPI_BUFFER_INDEX
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_BUFFER_INDEX(buf_len,buf_offset,byte_gran)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: ACPI_MOVE_16_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: ACPI_MOVE_16_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: ACPI_MOVE_16_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: ACPI_MOVE_32_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: ACPI_MOVE_32_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: ACPI_MOVE_32_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: ACPI_MOVE_64_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: ACPI_MOVE_64_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: ACPI_MOVE_64_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf_len
    - ','
    - buf_offset
    - ','
    - byte_gran
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: ACPI_BUFFER_INDEX
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_BUFFER_INDEX(buf_len,buf_offset,byte_gran)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: ACPI_MOVE_16_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: ACPI_MOVE_16_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: ACPI_MOVE_16_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: ACPI_MOVE_32_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: ACPI_MOVE_32_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: ACPI_MOVE_32_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: ACPI_MOVE_64_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: ACPI_MOVE_64_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: ACPI_MOVE_64_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ACPI_MOVE_16_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: ACPI_MOVE_16_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: ACPI_MOVE_16_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_16_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: ACPI_MOVE_32_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: ACPI_MOVE_32_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: ACPI_MOVE_32_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_32_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: ACPI_MOVE_64_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: ACPI_MOVE_64_TO_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_32(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: ACPI_MOVE_64_TO_64
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_64_TO_64(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: ACPI_MOVE_SIZE_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_SIZE_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: ACPI_MOVE_SIZE_TO_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOVE_SIZE_TO_16(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - power_of2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: _ACPI_DIV
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ACPI_DIV(value,power_of2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - power_of2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: _ACPI_MUL
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ACPI_MUL(value,power_of2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - divisor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: _ACPI_MOD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _ACPI_MOD(value,divisor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 284
    functionName: ACPI_DIV_2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: ACPI_MUL_2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MUL_2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: ACPI_MOD_2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOD_2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: ACPI_DIV_4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_4(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: ACPI_MUL_4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MUL_4(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: ACPI_MOD_4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOD_4(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 292
    functionName: ACPI_DIV_8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_8(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: ACPI_MUL_8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MUL_8(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: ACPI_MOD_8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOD_8(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: ACPI_DIV_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_16(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: ACPI_MUL_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MUL_16(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: ACPI_MOD_16
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOD_16(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: ACPI_DIV_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DIV_32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: ACPI_MUL_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MUL_32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: ACPI_MOD_32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MOD_32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - boundary
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: ACPI_ROUND_DOWN
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_DOWN(value,boundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - boundary
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: ACPI_ROUND_UP
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP(value,boundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: ACPI_ROUND_DOWN_TO_32BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_DOWN_TO_32BIT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: ACPI_ROUND_DOWN_TO_64BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_DOWN_TO_64BIT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: ACPI_ROUND_DOWN_TO_NATIVE_WORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_DOWN_TO_NATIVE_WORD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: ACPI_ROUND_UP_TO_32BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP_TO_32BIT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: ACPI_ROUND_UP_TO_64BIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP_TO_64BIT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: ACPI_ROUND_UP_TO_NATIVE_WORD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP_TO_NATIVE_WORD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: ACPI_ROUND_BITS_UP_TO_BYTES
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_BITS_UP_TO_BYTES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: ACPI_ROUND_BITS_DOWN_TO_BYTES
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_BITS_DOWN_TO_BYTES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: ACPI_ROUND_UP_TO_1K
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP_TO_1K(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - boundary
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: ACPI_ROUND_UP_TO
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ROUND_UP_TO(value,boundary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: ACPI_IS_MISALIGNED
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_MISALIGNED(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - position
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 341
    functionName: ACPI_MASK_BITS_ABOVE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MASK_BITS_ABOVE(position)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - position
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: ACPI_MASK_BITS_BELOW
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MASK_BITS_BELOW(position)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: ACPI_IS_OCTAL_DIGIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_OCTAL_DIGIT(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val
    - ','
    - pos
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: ACPI_REGISTER_PREPARE_BITS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_REGISTER_PREPARE_BITS(val, pos, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - reg
    - ','
    - pos
    - ','
    - mask
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ACPI_REGISTER_INSERT_VALUE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - target
    - ','
    - mask
    - ','
    - source
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: ACPI_INSERT_BITS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_INSERT_BITS(target, mask, source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d0
    - ','
    - d1
    - ','
    - d2
    - ','
    - d3
    - ','
    - d4
    - ','
    - d5
    - ','
    - d6
    - ','
    - d7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 359
    functionName: ACPI_INIT_UUID
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: ACPI_GET_DESCRIPTOR_TYPE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET_DESCRIPTOR_TYPE(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: ACPI_SET_DESCRIPTOR_TYPE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SET_DESCRIPTOR_TYPE(d,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: ACPI_GET_OBJECT_TYPE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_GET_OBJECT_TYPE(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    functionName: ACPI_IS_SINGLE_TABLE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_SINGLE_TABLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - Pargs
    - ','
    - Iargs
    - ','
    - obj_type
    - ','
    - class
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 383
    functionName: ACPI_OP
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_OP(name,Pargs,Iargs,obj_type,class,type,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - Pargs
    - ','
    - Iargs
    - ','
    - obj_type
    - ','
    - class
    - ','
    - type
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: ACPI_OP
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_OP(name,Pargs,Iargs,obj_type,class,type,flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: ACPI_DISASM_ONLY_MEMBERS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DISASM_ONLY_MEMBERS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 395
    functionName: ARG_1
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: ARG_2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: ARG_3
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_3(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    functionName: ARG_4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: ARG_5
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_5(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 400
    functionName: ARG_6
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARG_6(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: ARGI_LIST1
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: ARGI_LIST2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST2(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    functionName: ARGI_LIST3
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST3(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: ARGI_LIST4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST4(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: ARGI_LIST5
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST5(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: ARGI_LIST6
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGI_LIST6(a,b,c,d,e,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    functionName: ARGP_LIST1
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 410
    functionName: ARGP_LIST2
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST2(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: ARGP_LIST3
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST3(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: ARGP_LIST4
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST4(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: ARGP_LIST5
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST5(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: ARGP_LIST6
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGP_LIST6(a,b,c,d,e,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 416
    functionName: GET_CURRENT_ARG_TYPE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CURRENT_ARG_TYPE(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 417
    functionName: INCREMENT_ARG_LIST
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INCREMENT_ARG_LIST(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: ACPI_MODULE_NAME
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MODULE_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - plist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: ACPI_INFO
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_INFO(plist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - plist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: ACPI_WARNING
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_WARNING(plist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - plist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: ACPI_ERROR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ERROR(plist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    functionName: ACPI_ERROR_NAMESPACE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ERROR_NAMESPACE(s,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - n
    - ','
    - p
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: ACPI_ERROR_METHOD
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ERROR_METHOD(s,n,p,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    functionName: ACPI_FUNCTION_NAME
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: ACPI_FUNCTION_TRACE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    functionName: ACPI_FUNCTION_TRACE_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_PTR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: ACPI_FUNCTION_TRACE_U32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_U32(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 505
    functionName: ACPI_FUNCTION_TRACE_STR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_STR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: ACPI_FUNCTION_ENTRY
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_ENTRY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: ACPI_DO_WHILE0
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DO_WHILE0(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: ACPI_DO_WHILE0
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DO_WHILE0(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: return_ACPI_STATUS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_ACPI_STATUS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: return_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: return_VALUE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_VALUE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: return_UINT8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT8(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: return_UINT32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT32(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: return_ACPI_STATUS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_ACPI_STATUS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: return_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: return_VALUE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_VALUE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 570
    functionName: return_UINT8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT8(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 571
    functionName: return_UINT32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT32(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: return_ACPI_STATUS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_ACPI_STATUS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 589
    functionName: return_VALUE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_VALUE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    functionName: return_UINT8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT8(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 591
    functionName: return_UINT32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT32(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 592
    functionName: return_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: ACPI_DEBUG_EXEC
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_EXEC(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 601
    functionName: ACPI_DEBUG_DEFINE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_DEFINE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 602
    functionName: ACPI_DEBUG_ONLY_MEMBERS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_ONLY_MEMBERS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - plist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 611
    functionName: ACPI_DEBUG_PRINT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_PRINT(plist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - plist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 612
    functionName: ACPI_DEBUG_PRINT_RAW
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_PRINT_RAW(plist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 620
    functionName: ACPI_NORMAL_EXEC
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_NORMAL_EXEC(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: ACPI_DEBUG_DEFINE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_DEFINE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 623
    functionName: ACPI_DEBUG_ONLY_MEMBERS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_ONLY_MEMBERS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 624
    functionName: ACPI_FUNCTION_NAME
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_NAME(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: ACPI_FUNCTION_TRACE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: ACPI_FUNCTION_TRACE_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_PTR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    functionName: ACPI_FUNCTION_TRACE_U32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_U32(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: ACPI_FUNCTION_TRACE_STR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_TRACE_STR(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 630
    functionName: ACPI_FUNCTION_STATUS_EXIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_STATUS_EXIT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 631
    functionName: ACPI_FUNCTION_VALUE_EXIT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_VALUE_EXIT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 632
    functionName: ACPI_FUNCTION_ENTRY
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FUNCTION_ENTRY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 633
    functionName: ACPI_DEBUG_PRINT
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_PRINT(pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: ACPI_DEBUG_PRINT_RAW
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEBUG_PRINT_RAW(pl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 637
    functionName: return_ACPI_STATUS
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_ACPI_STATUS(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: return_VALUE
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_VALUE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 639
    functionName: return_UINT8
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT8(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 640
    functionName: return_UINT32
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_UINT32(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 641
    functionName: return_PTR
    functionSourceFile: /src/xen/xen/include/acpi/acmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: return_PTR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ACPI_INIT_GLOBAL
    functionSourceFile: /src/xen/xen/include/acpi/acglobal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_INIT_GLOBAL(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ACPI_INIT_GLOBAL
    functionSourceFile: /src/xen/xen/include/acpi/acglobal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_INIT_GLOBAL(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bus
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: ACPI_HEST_BUS
    functionSourceFile: /src/xen/xen/include/acpi/actbl1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HEST_BUS(bus)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bus
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: ACPI_HEST_SEGMENT
    functionSourceFile: /src/xen/xen/include/acpi/actbl1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_HEST_SEGMENT(bus)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: ACPI_IS_DIGIT
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_DIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: ACPI_IS_SPACE
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_SPACE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: ACPI_IS_XDIGIT
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_XDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: ACPI_IS_UPPER
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_UPPER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: ACPI_IS_LOWER
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_LOWER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: ACPI_IS_PRINT
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_PRINT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: ACPI_IS_ALPHA
    functionSourceFile: /src/xen/xen/include/acpi/acutils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_ALPHA(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: ACPI_SUCCESS
    functionSourceFile: /src/xen/xen/include/acpi/acexcep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_SUCCESS(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ACPI_FAILURE
    functionSourceFile: /src/xen/xen/include/acpi/acexcep.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FAILURE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - cpu
    - from
    - to
    argTypes:
    - unsigned int
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: cpufreq_statistic_update
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/processor_perf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cpufreq_statistic_update(unsigned int cpu, uint8_t from,\n                                            uint8_t
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: cpufreq_statistic_init
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/processor_perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpufreq_statistic_init(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: cpufreq_statistic_exit
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/processor_perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpufreq_statistic_exit(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct cpufreq_policy*::governor::governor
      Src: /src/xen/xen/include/acpi/cpufreq/cpufreq.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: __cpufreq_governor
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/cpufreq.h
    functionUses: 0
    functionsReached:
    - struct cpufreq_policy*::governor::governor
    linkageType: ''
    returnType: int
    signature: int __cpufreq_governor(struct cpufreq_policy *policy, unsigned int
      event)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - policy
    - min
    - max
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 331
    functionName: cpufreq_verify_within_limits
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/cpufreq.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cpufreq_verify_within_limits(struct cpufreq_policy *policy,\n
      \                                 unsigned int min, unsigned int max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 404
    functionName: hwp_active
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/cpufreq.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hwp_active(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hwp_active
      Src: /src/xen/xen/include/acpi/cpufreq/cpufreq.h:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: cpufreq_is_governorless
    functionSourceFile: /src/xen/xen/include/acpi/cpufreq/cpufreq.h
    functionUses: 0
    functionsReached:
    - hwp_active
    linkageType: ''
    returnType: bool
    signature: bool cpufreq_is_governorless(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: ACPI_IS_ASCII
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_ASCII(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: ACPI_STRSTR
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRSTR(s1,s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: ACPI_STRCHR
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCHR(s1,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: ACPI_STRLEN
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRLEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: ACPI_STRCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCPY(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: ACPI_STRNCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCPY(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: ACPI_STRNCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCMP(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: ACPI_STRCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCMP(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: ACPI_STRCAT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCAT(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: ACPI_STRNCAT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCAT(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: ACPI_STRTOUL
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRTOUL(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: ACPI_MEMCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMCMP(s1,s2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 243
    functionName: ACPI_MEMCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMCPY(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: ACPI_MEMSET
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMSET(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: ACPI_TOUPPER
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_TOUPPER(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: ACPI_TOLOWER
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_TOLOWER(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: ACPI_IS_XDIGIT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_XDIGIT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: ACPI_IS_DIGIT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_DIGIT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: ACPI_IS_SPACE
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_SPACE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: ACPI_IS_UPPER
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_UPPER(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: ACPI_IS_PRINT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_PRINT(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: ACPI_IS_ALPHA
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_IS_ALPHA(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - bnd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: _bnd
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _bnd(X, bnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 287
    functionName: va_arg
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_arg(ap, T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: va_end
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 69
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_end(ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ap
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: va_start
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: va_start(ap, A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - s2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: ACPI_STRSTR
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRSTR(s1,s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s1
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: ACPI_STRCHR
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCHR(s1,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: ACPI_STRLEN
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRLEN(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: ACPI_STRCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCPY(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: ACPI_STRNCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCPY(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: ACPI_STRNCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCMP(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: ACPI_STRCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCMP(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: ACPI_STRCAT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRCAT(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: ACPI_STRNCAT
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRNCAT(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: ACPI_STRTOUL
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_STRTOUL(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: ACPI_MEMCMP
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMCMP(s1,s2,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: ACPI_MEMCPY
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMCPY(d,s,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: ACPI_MEMSET
    functionSourceFile: /src/xen/xen/include/acpi/platform/acenv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_MEMSET(d,v,n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ACPI_PRINTF_LIKE
    functionSourceFile: /src/xen/xen/include/acpi/platform/acgcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_PRINTF_LIKE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - symbol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ACPI_EXPORT_SYMBOL
    functionSourceFile: /src/xen/xen/include/acpi/platform/aclinux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_EXPORT_SYMBOL(symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ACPI_ALLOCATE
    functionSourceFile: /src/xen/xen/include/acpi/platform/aclinux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ALLOCATE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: ACPI_ALLOCATE_ZEROED
    functionSourceFile: /src/xen/xen/include/acpi/platform/aclinux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_ALLOCATE_ZEROED(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: ACPI_FREE
    functionSourceFile: /src/xen/xen/include/acpi/platform/aclinux.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_FREE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: LINKER_BUG_ON
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LINKER_BUG_ON(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/include/xsm/dummy.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: __xsm_action_mismatch_detected
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void __xsm_action_mismatch_detected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: XSM_ASSERT_ACTION
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSM_ASSERT_ACTION(def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: XSM_ASSERT_ACTION
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XSM_ASSERT_ACTION(def)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xsm/dummy.h:85,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xsm/dummy.h:90,1
    - Dst: is_xenstore_domain
      Src: /src/xen/xen/include/xsm/dummy.h:90,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xsm/dummy.h:94,1
    - Dst: is_control_domain
      Src: /src/xen/xen/include/xsm/dummy.h:98,1
    - Dst: LINKER_BUG_ON
      Src: /src/xen/xen/include/xsm/dummy.h:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - action
    - src
    - target
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: xsm_default_action
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - LINKER_BUG_ON
    - is_control_domain
    - evaluate_nospec
    - is_xenstore_domain
    linkageType: ''
    returnType: always_inline
    signature: "always_inline xsm_default_action(\n    xsm_default_t action, struct
      domain *src, struct domain *target)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/include/xsm/dummy.h:111,1
    - Dst: printk
      Src: /src/xen/xen/include/xsm/dummy.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: xsm_set_system_active
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - ASSERT
    - printk
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_set_system_active(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: xsm_security_domaininfo
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_security_domaininfo(\n    struct domain *d, struct
      xen_domctl_getdomaininfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:133,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - ssidref
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: xsm_domain_create
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_domain_create(\n    XSM_DEFAULT_ARG struct domain *d,
      uint32_t ssidref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:140,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: xsm_getdomaininfo
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_getdomaininfo(\n    XSM_DEFAULT_ARG struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:147,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - cmd
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: xsm_domctl_scheduler_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_domctl_scheduler_op(\n    XSM_DEFAULT_ARG struct domain
      *d, int cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:153,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: xsm_sysctl_scheduler_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_sysctl_scheduler_op(XSM_DEFAULT_ARG int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:160,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - e
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: xsm_set_target
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_set_target(\n    XSM_DEFAULT_ARG struct domain *d,
      struct domain *e)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:167,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:174,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:177,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - d
    - cmd
    - ssidref
    argTypes:
    - XSM_DEFAULT_ARG*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 181
    functionName: xsm_domctl
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_domctl(\n    XSM_DEFAULT_ARG struct domain *d, unsigned
      int cmd, uint32_t ssidref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:185,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: xsm_sysctl
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_sysctl(XSM_DEFAULT_ARG int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:191,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uint32_t
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: xsm_readconsole
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_readconsole(XSM_DEFAULT_ARG uint32_t clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: xsm_alloc_security_domain
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_alloc_security_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: xsm_free_security_domain
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_free_security_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:208,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d1
    - d2
    - flags
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: xsm_grant_mapref
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_mapref(\n    XSM_DEFAULT_ARG struct domain *d1,
      struct domain *d2, uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:215,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: xsm_grant_unmapref
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_unmapref(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:222,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: xsm_grant_setup
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_setup(\n    XSM_DEFAULT_ARG struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:229,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: xsm_grant_transfer
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_transfer(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:236,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: xsm_grant_copy
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_copy(\n    XSM_DEFAULT_ARG struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:243,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: xsm_grant_query_size
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_grant_query_size(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:250,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: xsm_memory_exchange
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_memory_exchange(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:257,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: xsm_memory_adjust_reservation
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_memory_adjust_reservation(\n    XSM_DEFAULT_ARG struct
      domain *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:264,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: xsm_memory_stat_reservation
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_memory_stat_reservation(\n    XSM_DEFAULT_ARG struct
      domain *d1, struct domain *d2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:271,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:273,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:276,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - cmd
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: xsm_console_io
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_console_io(\n    XSM_DEFAULT_ARG struct domain *d,
      int cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:283,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: xsm_kexec
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_kexec(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:290,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: xsm_schedop_shutdown
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_schedop_shutdown(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:298,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d1
    - d2
    - page
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: xsm_memory_pin_page
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_memory_pin_page(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2,\n    struct page_info *page)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:304,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: xsm_claim_pages
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_claim_pages(XSM_DEFAULT_ARG struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:311,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - chn
    - id2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct evtchn*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 3
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: xsm_evtchn_unbound
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_evtchn_unbound(\n    XSM_DEFAULT_ARG struct domain
      *d, struct evtchn *chn, domid_t id2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:319,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d1
    - chan1
    - d2
    - chan2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct evtchn*
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: xsm_evtchn_interdomain
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_evtchn_interdomain(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct evtchn *chan1, struct domain *d2,\n    struct evtchn *chan2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: xsm_evtchn_close_post
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_evtchn_close_post(struct evtchn *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:331,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: xsm_evtchn_send
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_evtchn_send(\n    XSM_DEFAULT_ARG struct domain *d,
      struct evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:338,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: xsm_evtchn_status
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_evtchn_status(\n    XSM_DEFAULT_ARG struct domain *d,
      struct evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:345,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: xsm_evtchn_reset
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_evtchn_reset(\n    XSM_DEFAULT_ARG struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: xsm_alloc_security_evtchns
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_alloc_security_evtchns(\n    struct evtchn chn[], unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: xsm_free_security_evtchns
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_free_security_evtchns(\n    struct evtchn chn[], unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: xsm_show_security_evtchn
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE *cf_check xsm_show_security_evtchn(\n    struct domain
      *d, const struct evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:370,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: xsm_init_hardware_domain
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_init_hardware_domain(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:377,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: xsm_get_pod_target
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_get_pod_target(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:384,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 386
    functionName: xsm_set_pod_target
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_set_pod_target(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:391,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: xsm_get_vnumainfo
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_get_vnumainfo(\n    XSM_DEFAULT_ARG struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:399,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: xsm_get_device_group
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_get_device_group(\n    XSM_DEFAULT_ARG uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:406,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: xsm_assign_device
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_assign_device(\n    XSM_DEFAULT_ARG struct domain *d,
      uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:413,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 415
    functionName: xsm_deassign_device
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_deassign_device(\n    XSM_DEFAULT_ARG struct domain
      *d, uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:423,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - dtpath
    argTypes:
    - XSM_DEFAULT_ARG*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: xsm_assign_dtdevice
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_assign_dtdevice(\n    XSM_DEFAULT_ARG struct domain
      *d, const char *dtpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:430,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - dtpath
    argTypes:
    - XSM_DEFAULT_ARG*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: xsm_deassign_dtdevice
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_deassign_dtdevice(\n    XSM_DEFAULT_ARG struct domain
      *d, const char *dtpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:438,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: xsm_resource_plug_core
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_resource_plug_core(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:444,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: xsm_resource_unplug_core
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_resource_unplug_core(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:451,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 453
    functionName: xsm_resource_plug_pci
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_resource_plug_pci(\n    XSM_DEFAULT_ARG uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:458,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: xsm_resource_unplug_pci
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_resource_unplug_pci(\n    XSM_DEFAULT_ARG uint32_t
      machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:465,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: xsm_resource_setup_pci
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_resource_setup_pci(\n    XSM_DEFAULT_ARG uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:471,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 473
    functionName: xsm_resource_setup_gsi
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_resource_setup_gsi(XSM_DEFAULT_ARG int gsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:477,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: xsm_resource_setup_misc
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_resource_setup_misc(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:483,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uint32_t
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: xsm_page_offline
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_page_offline(XSM_DEFAULT_ARG uint32_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:489,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: xsm_hypfs_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_hypfs_op(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 496
    functionName: xsm_do_xsm_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE long
    signature: XSM_INLINE long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: xsm_do_compat_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 508
    functionName: xsm_show_irq_sid
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE *cf_check xsm_show_irq_sid(int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:513,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: xsm_map_domain_pirq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_map_domain_pirq(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:520,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - irq
    - data
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: xsm_map_domain_irq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_map_domain_irq(\n    XSM_DEFAULT_ARG struct domain
      *d, int irq, const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:527,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 529
    functionName: xsm_unmap_domain_pirq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_unmap_domain_pirq(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:534,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - bind
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: xsm_bind_pt_irq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_bind_pt_irq(\n    XSM_DEFAULT_ARG struct domain *d,
      struct xen_domctl_bind_pt_irq *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:541,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - bind
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: xsm_unbind_pt_irq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_unbind_pt_irq(\n    XSM_DEFAULT_ARG struct domain *d,
      struct xen_domctl_bind_pt_irq *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:548,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - irq
    - data
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: xsm_unmap_domain_irq
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_unmap_domain_irq(\n    XSM_DEFAULT_ARG struct domain
      *d, int irq, const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:555,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - pirq
    - allow
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 557
    functionName: xsm_irq_permission
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_irq_permission(\n    XSM_DEFAULT_ARG struct domain
      *d, int pirq, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:562,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - s
    - e
    - allow
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 564
    functionName: xsm_iomem_permission
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_iomem_permission(\n    XSM_DEFAULT_ARG struct domain
      *d, uint64_t s, uint64_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:569,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - s
    - e
    - allow
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 571
    functionName: xsm_iomem_mapping
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_iomem_mapping(\n    XSM_DEFAULT_ARG struct domain *d,
      uint64_t s, uint64_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:577,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - d
    - machine_bdf
    - start
    - end
    - access
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 579
    functionName: xsm_pci_config_permission
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_pci_config_permission(\n    XSM_DEFAULT_ARG struct
      domain *d, uint32_t machine_bdf, uint16_t start,\n    uint16_t end, uint8_t
      access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:584,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 586
    functionName: xsm_add_to_physmap
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_add_to_physmap(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:591,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: xsm_remove_from_physmap
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_remove_from_physmap(\n    XSM_DEFAULT_ARG struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:598,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: xsm_map_gmfn_foreign
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_map_gmfn_foreign(\n    XSM_DEFAULT_ARG struct domain
      *d, struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:605,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: xsm_hvm_param
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 5
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_hvm_param(\n    XSM_DEFAULT_ARG struct domain *d, unsigned
      long op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:612,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: xsm_hvm_param_altp2mhvm
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_hvm_param_altp2mhvm(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:619,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:624,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:626,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:629,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - d
    - mode
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 634
    functionName: xsm_hvm_altp2mhvm_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_hvm_altp2mhvm_op(\n    XSM_DEFAULT_ARG struct domain
      *d, uint64_t mode, uint32_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:640,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - mode
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: xsm_vm_event_control
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_vm_event_control(\n    XSM_DEFAULT_ARG struct domain
      *d, int mode, int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:646,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: xsm_mem_access
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_mem_access(XSM_DEFAULT_ARG struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:654,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: xsm_mem_paging
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_mem_paging(XSM_DEFAULT_ARG struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:662,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: xsm_mem_sharing
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_mem_sharing(XSM_DEFAULT_ARG struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:669,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uint32_t
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 671
    functionName: xsm_platform_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_platform_op(XSM_DEFAULT_ARG uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:676,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: xsm_do_mca
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_do_mca(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:683,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: xsm_shadow_control
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_shadow_control(\n    XSM_DEFAULT_ARG struct domain
      *d, uint32_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:690,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - cd
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: xsm_mem_sharing_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_mem_sharing_op(\n    XSM_DEFAULT_ARG struct domain
      *d, struct domain *cd, int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:697,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - cmd
    argTypes:
    - XSM_DEFAULT_ARG*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: xsm_apic
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_apic(\n    XSM_DEFAULT_ARG struct domain *d, int cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:703,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: xsm_machine_memory_map
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_machine_memory_map(XSM_DEFAULT_VOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:710,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 712
    functionName: xsm_domain_memory_map
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_domain_memory_map(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:719,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:721,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/include/xsm/dummy.h:722,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - d
    - t
    - f
    - flags
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 714
    functionDepth: 3
    functionLinenumber: 714
    functionLinenumberEnd: 725
    functionName: xsm_mmu_update
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    - evaluate_nospec
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_mmu_update(\n    XSM_DEFAULT_ARG struct domain *d,
      struct domain *t, struct domain *f,\n    uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:730,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - f
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: xsm_mmuext_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_mmuext_op(\n    XSM_DEFAULT_ARG struct domain *d, struct
      domain *f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:737,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - d
    - f
    - pte
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: xsm_update_va_mapping
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_update_va_mapping(\n    XSM_DEFAULT_ARG struct domain
      *d, struct domain *f, l1_pgentry_t pte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:744,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - XSM_DEFAULT_ARG*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 746
    functionName: xsm_priv_mapping
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_priv_mapping(\n    XSM_DEFAULT_ARG struct domain *d,
      struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:751,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - s
    - e
    - allow
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: xsm_ioport_permission
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_ioport_permission(\n    XSM_DEFAULT_ARG struct domain
      *d, uint32_t s, uint32_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:758,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - d
    - s
    - e
    - allow
    argTypes:
    - XSM_DEFAULT_ARG*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: xsm_ioport_mapping
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_ioport_mapping(\n    XSM_DEFAULT_ARG struct domain
      *d, uint32_t s, uint32_t e, uint8_t allow)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:765,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:772,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - XSM_DEFAULT_ARG*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 776
    functionName: xsm_pmu_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 1
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_pmu_op(\n    XSM_DEFAULT_ARG struct domain *d, unsigned
      int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:782,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 784
    functionName: xsm_dm_op
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 2
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_dm_op(XSM_DEFAULT_ARG struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: xsm_argo_enable
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_argo_enable(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: xsm_argo_register_single_source
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_argo_register_single_source(\n    const struct domain
      *d, const struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: xsm_argo_register_any_source
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_argo_register_any_source(\n    const struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: xsm_argo_send
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_argo_send(\n    const struct domain *d, const struct
      domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:815,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 817
    functionName: xsm_get_domain_state
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_get_domain_state(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:822,1
    - Dst: block_speculation
      Src: /src/xen/xen/include/xsm/dummy.h:829,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:841,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - uint32_t
    argTypes:
    - XSM_DEFAULT_ARG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 845
    functionName: xsm_xen_version
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - xsm_default_action
    - XSM_ASSERT_ACTION
    - block_speculation
    linkageType: ''
    returnType: XSM_INLINE
    signature: XSM_INLINE xsm_xen_version(XSM_DEFAULT_ARG uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XSM_ASSERT_ACTION
      Src: /src/xen/xen/include/xsm/dummy.h:850,1
    - Dst: xsm_default_action
      Src: /src/xen/xen/include/xsm/dummy.h:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - XSM_DEFAULT_ARG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 852
    functionName: xsm_domain_resource_map
    functionSourceFile: /src/xen/xen/include/xsm/dummy.h
    functionUses: 0
    functionsReached:
    - XSM_ASSERT_ACTION
    - xsm_default_action
    linkageType: ''
    returnType: XSM_INLINE
    signature: "XSM_INLINE xsm_domain_resource_map(\n    XSM_DEFAULT_ARG struct domain
      *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: xsm_set_system_active
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_set_system_active(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/include/xsm/xsm.h:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: xsm_security_domaininfo
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: "void xsm_security_domaininfo(\n    struct domain *d, struct xen_domctl_getdomaininfo
      *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - ssidref
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: xsm_domain_create
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_domain_create(\n    xsm_default_t def, struct domain *d, uint32_t
      ssidref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: xsm_getdomaininfo
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_getdomaininfo(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: xsm_get_domain_state
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_get_domain_state(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - cmd
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: xsm_domctl_scheduler_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_domctl_scheduler_op(\n    xsm_default_t def, struct domain
      *d, int cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - cmd
    argTypes:
    - xsm_default_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: xsm_sysctl_scheduler_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_sysctl_scheduler_op(xsm_default_t def, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - e
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: xsm_set_target
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_set_target(\n    xsm_default_t def, struct domain *d, struct
      domain *e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - cmd
    - ssidref
    argTypes:
    - xsm_default_t
    - struct domain*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: xsm_domctl
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_domctl(xsm_default_t def, struct domain *d,\n                             unsigned
      int cmd, uint32_t ssidref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - def
    - cmd
    argTypes:
    - xsm_default_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: xsm_sysctl
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_sysctl(xsm_default_t def, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - def
    - clear
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: xsm_readconsole
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_readconsole(xsm_default_t def, uint32_t clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d1
    - chn
    - id2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct evtchn*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: xsm_evtchn_unbound
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_evtchn_unbound(\n    xsm_default_t def, struct domain *d1,
      struct evtchn *chn, domid_t id2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d1
    - chan1
    - d2
    - chan2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct evtchn*
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: xsm_evtchn_interdomain
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_evtchn_interdomain(\n    xsm_default_t def, struct domain
      *d1, struct evtchn *chan1,\n    struct domain *d2, struct evtchn *chan2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/include/xsm/xsm.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: xsm_evtchn_close_post
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void xsm_evtchn_close_post(struct evtchn *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - chn
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: xsm_evtchn_send
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_evtchn_send(\n    xsm_default_t def, struct domain *d, struct
      evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - chn
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: xsm_evtchn_status
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_evtchn_status(\n    xsm_default_t def, struct domain *d, struct
      evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: xsm_evtchn_reset
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_evtchn_reset(\n    xsm_default_t def, struct domain *d1, struct
      domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d1
    - d2
    - flags
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: xsm_grant_mapref
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_mapref(\n    xsm_default_t def, struct domain *d1, struct
      domain *d2, uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: xsm_grant_unmapref
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_unmapref(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: xsm_grant_setup
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_setup(\n    xsm_default_t def, struct domain *d1, struct
      domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: xsm_grant_transfer
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_transfer(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: xsm_grant_copy
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_copy(\n    xsm_default_t def, struct domain *d1, struct
      domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: xsm_grant_query_size
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_grant_query_size(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: xsm_alloc_security_domain
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_alloc_security_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/include/xsm/xsm.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: xsm_free_security_domain
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: void xsm_free_security_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: xsm_alloc_security_evtchns
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_alloc_security_evtchns(\n    struct evtchn *chn, unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_vcall
      Src: /src/xen/xen/include/xsm/xsm.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: xsm_free_security_evtchns
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_vcall
    linkageType: ''
    returnType: void
    signature: "void xsm_free_security_evtchns(\n    struct evtchn *chn, unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 382
    functionName: xsm_show_security_evtchn
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: char
    signature: "char *xsm_show_security_evtchn(\n    struct domain *d, const struct
      evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: xsm_init_hardware_domain
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_init_hardware_domain(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: xsm_get_pod_target
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_get_pod_target(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: xsm_set_pod_target
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_set_pod_target(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: xsm_memory_exchange
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_memory_exchange(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: xsm_memory_adjust_reservation
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_memory_adjust_reservation(\n    xsm_default_t def, struct
      domain *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: xsm_memory_stat_reservation
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_memory_stat_reservation(\n    xsm_default_t def, struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d1
    - d2
    - page
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: xsm_memory_pin_page
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_memory_pin_page(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2,\n    struct page_info *page)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: xsm_add_to_physmap
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_add_to_physmap(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: xsm_remove_from_physmap
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_remove_from_physmap(\n    xsm_default_t def, struct domain
      *d1, struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - t
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: xsm_map_gmfn_foreign
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_map_gmfn_foreign(\n    xsm_default_t def, struct domain *d,
      struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: xsm_claim_pages
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_claim_pages(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - cmd
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: xsm_console_io
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_console_io(xsm_default_t def, struct domain *d, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: xsm_kexec
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_kexec(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d1
    - d2
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: xsm_schedop_shutdown
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_schedop_shutdown(\n    xsm_default_t def, struct domain *d1,
      struct domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: xsm_show_irq_sid
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: char
    signature: char *xsm_show_irq_sid(int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: xsm_map_domain_pirq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_map_domain_pirq(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - irq
    - data
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: xsm_map_domain_irq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_map_domain_irq(\n    xsm_default_t def, struct domain *d,
      int irq, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: xsm_unmap_domain_pirq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_unmap_domain_pirq(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - irq
    - data
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: xsm_unmap_domain_irq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_unmap_domain_irq(\n    xsm_default_t def, struct domain *d,
      int irq, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - bind
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: xsm_bind_pt_irq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_bind_pt_irq(\n    xsm_default_t def, struct domain *d, struct
      xen_domctl_bind_pt_irq *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - bind
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: xsm_unbind_pt_irq
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_unbind_pt_irq(\n    xsm_default_t def, struct domain *d, struct
      xen_domctl_bind_pt_irq *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - pirq
    - allow
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: xsm_irq_permission
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_irq_permission(\n    xsm_default_t def, struct domain *d,
      int pirq, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d
    - s
    - e
    - allow
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: xsm_iomem_permission
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_iomem_permission(\n    xsm_default_t def, struct domain *d,
      uint64_t s, uint64_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d
    - s
    - e
    - allow
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: xsm_iomem_mapping
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_iomem_mapping(\n    xsm_default_t def, struct domain *d, uint64_t
      s, uint64_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - def
    - d
    - machine_bdf
    - start
    - end
    - access
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: xsm_pci_config_permission
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_pci_config_permission(\n    xsm_default_t def, struct domain
      *d, uint32_t machine_bdf, uint16_t start,\n    uint16_t end, uint8_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - machine_bdf
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: xsm_get_device_group
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_get_device_group(xsm_default_t def, uint32_t machine_bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - machine_bdf
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: xsm_assign_device
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_assign_device(\n    xsm_default_t def, struct domain *d, uint32_t
      machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - machine_bdf
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: xsm_deassign_device
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_deassign_device(\n    xsm_default_t def, struct domain *d,
      uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - dtpath
    argTypes:
    - xsm_default_t
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: xsm_assign_dtdevice
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_assign_dtdevice(\n    xsm_default_t def, struct domain *d,
      const char *dtpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - dtpath
    argTypes:
    - xsm_default_t
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: xsm_deassign_dtdevice
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_deassign_dtdevice(\n    xsm_default_t def, struct domain *d,
      const char *dtpath)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - machine_bdf
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    functionName: xsm_resource_plug_pci
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_resource_plug_pci(xsm_default_t def, uint32_t machine_bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - machine_bdf
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: xsm_resource_unplug_pci
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_resource_unplug_pci(\n    xsm_default_t def, uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: xsm_resource_plug_core
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_resource_plug_core(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: xsm_resource_unplug_core
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_resource_unplug_core(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - machine_bdf
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 585
    functionName: xsm_resource_setup_pci
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_resource_setup_pci(\n    xsm_default_t def, uint32_t machine_bdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - gsi
    argTypes:
    - xsm_default_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: xsm_resource_setup_gsi
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_resource_setup_gsi(xsm_default_t def, int gsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: xsm_resource_setup_misc
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_resource_setup_misc(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - def
    - cmd
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: xsm_page_offline
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_page_offline(xsm_default_t def, uint32_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: xsm_hypfs_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_hypfs_op(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: xsm_do_xsm_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: long
    signature: long xsm_do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 620
    functionName: xsm_do_compat_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_do_compat_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: xsm_hvm_param
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 5
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_hvm_param(\n    xsm_default_t def, struct domain *d, unsigned
      long op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 632
    functionName: xsm_hvm_param_altp2mhvm
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_hvm_param_altp2mhvm(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - mode
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: xsm_hvm_altp2mhvm_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_hvm_altp2mhvm_op(\n    xsm_default_t def, struct domain *d,
      uint64_t mode, uint32_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: xsm_get_vnumainfo
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_get_vnumainfo(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - mode
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 650
    functionName: xsm_vm_event_control
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_vm_event_control(\n    xsm_default_t def, struct domain *d,
      int mode, int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 655
    functionName: xsm_mem_access
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_mem_access(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: xsm_mem_paging
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_mem_paging(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: xsm_mem_sharing
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_mem_sharing(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - op
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 675
    functionName: xsm_platform_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_platform_op(xsm_default_t def, uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: xsm_do_mca
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_do_mca(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    functionName: xsm_shadow_control
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_shadow_control(\n    xsm_default_t def, struct domain *d,
      uint32_t op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - cd
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: xsm_mem_sharing_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_mem_sharing_op(\n    xsm_default_t def, struct domain *d,
      struct domain *cd, int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - cmd
    argTypes:
    - xsm_default_t
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: xsm_apic
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_apic(xsm_default_t def, struct domain *d, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - xsm_default_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: xsm_machine_memory_map
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_machine_memory_map(xsm_default_t def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 708
    functionName: xsm_domain_memory_map
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_domain_memory_map(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d
    - t
    - f
    - flags
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 715
    functionName: xsm_mmu_update
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_mmu_update(\n    xsm_default_t def, struct domain *d, struct
      domain *t, struct domain *f,\n    uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - f
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 721
    functionName: xsm_mmuext_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_mmuext_op(\n    xsm_default_t def, struct domain *d, struct
      domain *f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - def
    - d
    - f
    - pte
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 727
    functionName: xsm_update_va_mapping
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_update_va_mapping(\n    xsm_default_t def, struct domain *d,
      struct domain *f, l1_pgentry_t pte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - t
    argTypes:
    - xsm_default_t
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: xsm_priv_mapping
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_priv_mapping(\n    xsm_default_t def, struct domain *d, struct
      domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d
    - s
    - e
    - allow
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: xsm_ioport_permission
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_ioport_permission(\n    xsm_default_t def, struct domain *d,
      uint32_t s, uint32_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - def
    - d
    - s
    - e
    - allow
    argTypes:
    - xsm_default_t
    - struct domain*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: xsm_ioport_mapping
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_ioport_mapping(\n    xsm_default_t def, struct domain *d,
      uint32_t s, uint32_t e, uint8_t allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - def
    - d
    - op
    argTypes:
    - xsm_default_t
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 751
    functionName: xsm_pmu_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_pmu_op(\n    xsm_default_t def, struct domain *d, unsigned
      int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 758
    functionName: xsm_dm_op
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 2
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_dm_op(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - op
    argTypes:
    - xsm_default_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 763
    functionName: xsm_xen_version
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_xen_version(xsm_default_t def, uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - def
    - d
    argTypes:
    - xsm_default_t
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 768
    functionName: xsm_domain_resource_map
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_domain_resource_map(xsm_default_t def, struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 774
    functionName: xsm_argo_enable
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_argo_enable(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: xsm_argo_register_single_source
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: "int xsm_argo_register_single_source(\n    const struct domain *d,
      const struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 785
    functionName: xsm_argo_register_any_source
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_argo_register_any_source(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/include/xsm/xsm.h:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: xsm_argo_send
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached:
    - alternative_call
    linkageType: ''
    returnType: int
    signature: int xsm_argo_send(const struct domain *d, const struct domain *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - policy_buffer
    - policy_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 824
    functionName: flask_init
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xsm_ops
    signature: "struct xsm_ops *flask_init(const void *policy_buffer,\n                                               size_t
      policy_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 838
    functionName: silo_init
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct xsm_ops
    signature: struct xsm_ops *silo_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bi
    argTypes:
    - struct boot_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: xsm_multiboot_init
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xsm_multiboot_init(struct boot_info *bi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 857
    functionName: xsm_dt_init
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xsm_dt_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 862
    functionName: has_xsm_magic
    functionSourceFile: /src/xen/xen/include/xsm/xsm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_xsm_magic(paddr_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: vm_event_init_domain
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vm_event_init_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/include/asm-generic/vm_event.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: vm_event_cleanup_domain
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void vm_event_cleanup_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - d
    - v
    - rsp
    argTypes:
    - struct domain*
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: vm_event_toggle_singlestep
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vm_event_toggle_singlestep(struct domain *d, struct vcpu *v,\n
      \                                             vm_event_response_t *rsp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: vm_event_register_write_resume
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_register_write_resume(struct vcpu *v, vm_event_response_t
      *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - rsp
    argTypes:
    - struct vcpu*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: vm_event_emulate_check
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_emulate_check(struct vcpu *v, vm_event_response_t *rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: vm_event_sync_event
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_sync_event(struct vcpu *v, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: vm_event_reset_vmtrace
    functionSourceFile: /src/xen/xen/include/asm-generic/vm_event.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vm_event_reset_vmtrace(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: arch_skip_send_event_check
    functionSourceFile: /src/xen/xen/include/asm-generic/softirq.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_skip_send_event_check(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: atomic_read
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 55
    functionsReached:
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int atomic_read(const atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: _atomic_read
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _atomic_read(atomic_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: atomic_set
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 12
    functionsReached:
    - ACCESS_ONCE
    linkageType: ''
    returnType: void
    signature: void atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - i
    argTypes:
    - atomic_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: _atomic_set
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _atomic_set(atomic_t *v, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: atomic_sub_and_test
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_sub_and_test(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: atomic_inc_and_test
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: atomic_inc
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 25
    functionsReached:
    - atomic_add
    linkageType: ''
    returnType: void
    signature: void atomic_inc(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: atomic_inc_return
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 1
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_inc_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: atomic_dec
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 19
    functionsReached:
    - atomic_sub
    linkageType: ''
    returnType: void
    signature: void atomic_dec(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: atomic_dec_return
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 0
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_return(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: atomic_dec_and_test
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 2
    functionsReached:
    - atomic_sub_return
    linkageType: ''
    returnType: int
    signature: int atomic_dec_and_test(atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_add_return
      Src: /src/xen/xen/include/asm-generic/atomic-ops.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - int
    - atomic_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: atomic_add_negative
    functionSourceFile: /src/xen/xen/include/asm-generic/atomic-ops.h
    functionUses: 0
    functionsReached:
    - atomic_add_return
    linkageType: ''
    returnType: int
    signature: int atomic_add_negative(int i, atomic_t *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: in_irq
    functionSourceFile: /src/xen/xen/include/asm-generic/hardirq.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: in_irq()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: irq_enter
    functionSourceFile: /src/xen/xen/include/asm-generic/hardirq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_enter()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: irq_exit
    functionSourceFile: /src/xen/xen/include/asm-generic/hardirq.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: irq_exit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 8
    functionName: arch_get_random
    functionSourceFile: /src/xen/xen/include/asm-generic/random.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int arch_get_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: has_arch_io_resources
    functionSourceFile: /src/xen/xen/include/asm-generic/iocap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: has_arch_io_resources(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - divisor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: do_div
    functionSourceFile: /src/xen/xen/include/asm-generic/div64.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_div(n, divisor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: altp2m_active
    functionSourceFile: /src/xen/xen/include/asm-generic/altp2m.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool altp2m_active(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/include/asm-generic/altp2m.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: altp2m_vcpu_idx
    functionSourceFile: /src/xen/xen/include/asm-generic/altp2m.h
    functionUses: 2
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int altp2m_vcpu_idx(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - allow_userspace
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: arch_monitor_allow_userspace
    functionSourceFile: /src/xen/xen/include/asm-generic/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_monitor_allow_userspace(struct domain *d, bool allow_userspace)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: arch_monitor_domctl_op
    functionSourceFile: /src/xen/xen/include/asm-generic/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_monitor_domctl_op(struct domain *d, struct xen_domctl_monitor_op
      *mop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/include/asm-generic/monitor.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: arch_monitor_domctl_event
    functionSourceFile: /src/xen/xen/include/asm-generic/monitor.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int arch_monitor_domctl_event(struct domain *d,\n                              struct
      xen_domctl_monitor_op *mop)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: arch_monitor_init_domain
    functionSourceFile: /src/xen/xen/include/asm-generic/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arch_monitor_init_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: arch_monitor_cleanup_domain
    functionSourceFile: /src/xen/xen/include/asm-generic/monitor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_monitor_cleanup_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: dev_is_dt
    functionSourceFile: /src/xen/xen/include/asm-generic/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_is_dt(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev_name
    - ','
    - ident
    - ','
    - cls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: DT_DEVICE_START
    functionSourceFile: /src/xen/xen/include/asm-generic/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_DEVICE_START(dev_name, ident, cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: dev_is_dt
    functionSourceFile: /src/xen/xen/include/asm-generic/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_is_dt(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: dev_is_pci
    functionSourceFile: /src/xen/xen/include/asm-generic/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_is_pci(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev_name
    - ','
    - ident
    - ','
    - cls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: ACPI_DEVICE_START
    functionSourceFile: /src/xen/xen/include/asm-generic/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACPI_DEVICE_START(dev_name, ident, cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: paging_mode_translate
    functionSourceFile: /src/xen/xen/include/asm-generic/paging.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_translate(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: paging_mode_external
    functionSourceFile: /src/xen/xen/include/asm-generic/paging.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: paging_mode_external(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p1
    - ','
    - p2
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: memeq
    functionSourceFile: /src/xen/xen/common/unxz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memeq(p1, p2, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: memzero
    functionSourceFile: /src/xen/xen/common/unxz.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memzero(p, sz)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: xz_crc32_init
      Src: /src/xen/xen/common/unxz.c:171,1
    - Dst: xz_dec_init
      Src: /src/xen/xen/common/unxz.c:177,1
    - Dst: xz_dec_init
      Src: /src/xen/xen/common/unxz.c:179,1
    - Dst: malloc
      Src: /src/xen/xen/common/unxz.c:189,1
    - Dst: malloc
      Src: /src/xen/xen/common/unxz.c:196,1
    - Dst: xz_dec_run
      Src: /src/xen/xen/common/unxz.c:207,1
    - Dst: fill
      Src: /src/xen/xen/common/unxz.c:216,1
    - Dst: xz_dec_run
      Src: /src/xen/xen/common/unxz.c:230,1
    - Dst: flush
      Src: /src/xen/xen/common/unxz.c:239,1
    - Dst: free
      Src: /src/xen/xen/common/unxz.c:247,1
    - Dst: free
      Src: /src/xen/xen/common/unxz.c:250,1
    - Dst: xz_dec_end
      Src: /src/xen/xen/common/unxz.c:256,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:264,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:268,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:272,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:278,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:282,1
    - Dst: free
      Src: /src/xen/xen/common/unxz.c:290,1
    - Dst: xz_dec_end
      Src: /src/xen/xen/common/unxz.c:293,1
    - Dst: error
      Src: /src/xen/xen/common/unxz.c:296,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 93
    argCount: 4
    argNames:
    - in
    - in_size
    - out
    - in_used
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 298
    functionName: unxz
    functionSourceFile: /src/xen/xen/common/unxz.c
    functionUses: 0
    functionsReached:
    - xz_dec_run
    - xz_dec_end
    - free
    - error
    - malloc
    - xz_dec_init
    - xz_crc32_init
    - flush
    - fill
    linkageType: ''
    returnType: int
    signature: "int unxz(unsigned char *in, unsigned int in_size,\n\t\tint (*fill)(void
      *dest, unsigned int size),\n\t\tint (*flush)(void *src, unsigned int size),\n\t\tunsigned
      char *out, unsigned int *in_used,\n\t\tvoid (*error)(const char *x))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_set
      Src: /src/xen/xen/common/stop_machine.c:59,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/stop_machine.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum stopmachine_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: stopmachine_set_state
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: void stopmachine_set_state(enum stopmachine_state state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/common/stop_machine.c:66,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/stop_machine.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: stopmachine_wait_state
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void stopmachine_wait_state(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/stop_machine.c:79,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/stop_machine.c:82,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/stop_machine.c:82,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/stop_machine.c:83,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/stop_machine.c:83,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/common/stop_machine.c:86,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/stop_machine.c:89,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/stop_machine.c:90,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/stop_machine.c:94,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/stop_machine.c:96,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/stop_machine.c:105,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/stop_machine.c:108,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/stop_machine.c:110,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/stop_machine.c:112,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/stop_machine.c:112,1
    - Dst: stopmachine_set_state
      Src: /src/xen/xen/common/stop_machine.c:114,1
    - Dst: stopmachine_wait_state
      Src: /src/xen/xen/common/stop_machine.c:115,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/stop_machine.c:117,1
    - Dst: stopmachine_set_state
      Src: /src/xen/xen/common/stop_machine.c:118,1
    - Dst: stopmachine_wait_state
      Src: /src/xen/xen/common/stop_machine.c:119,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/common/stop_machine.c:120,1
    - Dst: stopmachine_set_state
      Src: /src/xen/xen/common/stop_machine.c:122,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/stop_machine.c:127,1
    - Dst: stopmachine_wait_state
      Src: /src/xen/xen/common/stop_machine.c:129,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/common/stop_machine.c:132,1
    - Dst: stopmachine_set_state
      Src: /src/xen/xen/common/stop_machine.c:133,1
    - Dst: stopmachine_wait_state
      Src: /src/xen/xen/common/stop_machine.c:134,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/stop_machine.c:135,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/stop_machine.c:137,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/stop_machine.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 2
    argNames:
    - data
    - cpu
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 142
    functionName: stop_machine_run
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 3
    functionsReached:
    - atomic_set
    - is_idle_vcpu
    - local_irq_enable
    - spin_debug_enable
    - local_irq_disable
    - smp_processor_id
    - write_atomic
    - BUG_ON
    - num_online_cpus
    - put_cpu_maps
    - local_irq_is_enabled
    - cpu_online
    - spin_unlock
    - tasklet_schedule_on_cpu
    - stopmachine_set_state
    - spin_debug_disable
    - smp_wmb
    - for_each_online_cpu
    - stopmachine_wait_state
    - spin_trylock
    - per_cpu
    - get_cpu_maps
    linkageType: ''
    returnType: int
    signature: int stop_machine_run(int (*fn)(void *data), void *data, unsigned int
      cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/stop_machine.c:149,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/stop_machine.c:149,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/stop_machine.c:151,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/stop_machine.c:156,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/stop_machine.c:162,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/stop_machine.c:165,1
    - Dst: fn
      Src: /src/xen/xen/common/stop_machine.c:168,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/stop_machine.c:171,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/stop_machine.c:178,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/stop_machine.c:179,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/stop_machine.c:182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: stopmachine_action
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - cpu_relax
    - local_irq_enable
    - smp_processor_id
    - write_atomic
    - local_irq_disable
    - BUG_ON
    - fn
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void stopmachine_action(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_init
      Src: /src/xen/xen/common/stop_machine.c:191,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/stop_machine.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 0
    functionsReached:
    - tasklet_init
    - per_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_callback
      Src: /src/xen/xen/common/stop_machine.c:207,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/stop_machine.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: cpu_stopmachine_init
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - cpu_callback
    linkageType: ''
    returnType: int
    signature: int cpu_stopmachine_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_callback
      Src: /src/xen/xen/common/stop_machine.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/stop_machine.c
    functionUses: 7
    functionsReached:
    - cpu_callback
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/smp.c:42,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/smp.c:43,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/smp.c:43,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/common/smp.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - info
    - wait
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: smp_call_function
    functionSourceFile: /src/xen/xen/common/smp.c
    functionUses: 8
    functionsReached:
    - cpumask_andnot
    - smp_processor_id
    - on_selected_cpus
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: "void smp_call_function(\n    void (*func) (void *info),\n    void
      *info,\n    int wait)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/smp.c:53,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/smp.c:53,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/smp.c:54,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/smp.c:54,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/smp.c:56,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/smp.c:58,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/smp.c:60,1
    - Dst: smp_send_call_function_mask
      Src: /src/xen/xen/common/smp.c:67,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/smp.c:69,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/smp.c:70,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/smp.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - selected
    - info
    - wait
    argTypes:
    - cpumask_t*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: on_selected_cpus
    functionSourceFile: /src/xen/xen/common/smp.c
    functionUses: 36
    functionsReached:
    - spin_unlock
    - cpu_relax
    - cpumask_empty
    - smp_send_call_function_mask
    - ASSERT
    - spin_lock
    - cpumask_copy
    - cpumask_subset
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: "void on_selected_cpus(\n    const cpumask_t *selected,\n    void (*func)
      (void *info),\n    void *info,\n    int wait)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/smp.c:80,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/smp.c:82,1
    - Dst: irq_enter
      Src: /src/xen/xen/common/smp.c:85,1
    - Dst: unlikely
      Src: /src/xen/xen/common/smp.c:87,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/smp.c:89,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/smp.c:94,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/smp.c:95,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/smp.c:99,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/smp.c:100,1
    - Dst: irq_exit
      Src: /src/xen/xen/common/smp.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: smp_call_function_interrupt
    functionSourceFile: /src/xen/xen/common/smp.c
    functionUses: 4
    functionsReached:
    - smp_mb
    - irq_exit
    - irq_enter
    - smp_processor_id
    - unlikely
    - cpumask_clear_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void smp_call_function_interrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/rangeset.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: find_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct range
    signature: "struct range *find_range(\n    struct rangeset *r, unsigned long s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/rangeset.c:64,1
    - Dst: list_entry
      Src: /src/xen/xen/common/rangeset.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: first_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_empty
    - list_entry
    linkageType: ''
    returnType: struct range
    signature: "struct range *first_range(\n    struct rangeset *r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/rangeset.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - r
    - x
    argTypes:
    - struct rangeset*
    - struct range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: next_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct range
    signature: "struct range *next_range(\n    struct rangeset *r, struct range *x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add
      Src: /src/xen/xen/common/rangeset.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - r
    - x
    - y
    argTypes:
    - struct rangeset*
    - struct range*
    - struct range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: insert_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_add
    linkageType: ''
    returnType: void
    signature: "void insert_range(\n    struct rangeset *r, struct range *x, struct
      range *y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/common/rangeset.c:91,1
    - Dst: xfree
      Src: /src/xen/xen/common/rangeset.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - r
    - x
    argTypes:
    - struct rangeset*
    - struct range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: destroy_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_del
    - xfree
    linkageType: ''
    returnType: void
    signature: "void destroy_range(\n    struct rangeset *r, struct range *x)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/common/rangeset.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: alloc_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - xmalloc
    linkageType: ''
    returnType: struct range
    signature: "struct range *alloc_range(\n    struct rangeset *r)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rangeset.c:121,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:123,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:125,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:126,1
    - Dst: alloc_range
      Src: /src/xen/xen/common/rangeset.c:132,1
    - Dst: insert_range
      Src: /src/xen/xen/common/rangeset.c:142,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:151,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:156,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:164,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:167,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:171,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:175,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:179,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 3
    argNames:
    - r
    - s
    - e
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 181
    functionName: rangeset_add_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 11
    functionsReached:
    - alloc_range
    - write_unlock
    - first_range
    - ASSERT
    - next_range
    - find_range
    - write_lock
    - insert_range
    - destroy_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_add_range(\n    struct rangeset *r, unsigned long s,
      unsigned long e)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rangeset.c:189,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:191,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:193,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:194,1
    - Dst: alloc_range
      Src: /src/xen/xen/common/rangeset.c:203,1
    - Dst: insert_range
      Src: /src/xen/xen/common/rangeset.c:214,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:217,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:226,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:232,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:238,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:239,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:244,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:248,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - r
    - s
    - e
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 250
    functionName: rangeset_remove_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 11
    functionsReached:
    - alloc_range
    - write_unlock
    - first_range
    - ASSERT
    - next_range
    - find_range
    - write_lock
    - insert_range
    - destroy_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_remove_range(\n    struct rangeset *r, unsigned long
      s, unsigned long e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rangeset.c:258,1
    - Dst: read_lock
      Src: /src/xen/xen/common/rangeset.c:263,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:264,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/rangeset.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - s
    - e
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: rangeset_contains_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - find_range
    - read_lock
    - read_unlock
    linkageType: ''
    returnType: bool
    signature: "bool rangeset_contains_range(\n    struct rangeset *r, unsigned long
      s, unsigned long e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rangeset.c:277,1
    - Dst: read_lock
      Src: /src/xen/xen/common/rangeset.c:282,1
    - Dst: find_range
      Src: /src/xen/xen/common/rangeset.c:283,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/rangeset.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - r
    - s
    - e
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 288
    functionName: rangeset_overlaps_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 5
    functionsReached:
    - ASSERT
    - find_range
    - read_lock
    - read_unlock
    linkageType: ''
    returnType: bool
    signature: "bool rangeset_overlaps_range(\n    struct rangeset *r, unsigned long
      s, unsigned long e)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/common/rangeset.c:297,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:299,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:299,1
    - Dst: cb
      Src: /src/xen/xen/common/rangeset.c:301,1
    - Dst: max
      Src: /src/xen/xen/common/rangeset.c:301,1
    - Dst: min
      Src: /src/xen/xen/common/rangeset.c:301,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/rangeset.c:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - r
    - s
    - e
    - ctxt
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 306
    functionName: rangeset_report_ranges
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 9
    functionsReached:
    - cb
    - max
    - read_unlock
    - first_range
    - next_range
    - min
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int rangeset_report_ranges(\n    struct rangeset *r, unsigned long
      s, unsigned long e,\n    int (*cb)(unsigned long s, unsigned long e, void *data),
      void *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:314,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:316,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:318,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:333,1
    - Dst: unlikely
      Src: /src/xen/xen/common/rangeset.c:337,1
    - Dst: alloc_range
      Src: /src/xen/xen/common/rangeset.c:339,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:342,1
    - Dst: insert_range
      Src: /src/xen/xen/common/rangeset.c:348,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:353,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - r
    - size
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 358
    functionName: rangeset_claim_range
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 1
    functionsReached:
    - alloc_range
    - write_unlock
    - first_range
    - next_range
    - unlikely
    - write_lock
    - insert_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_claim_range(struct rangeset *r, unsigned long size,\n
      \                        unsigned long *s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:367,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/common/rangeset.c:368,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:371,1
    - Dst: cb
      Src: /src/xen/xen/common/rangeset.c:373,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/rangeset.c:375,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:378,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - r
    - ctxt
    argTypes:
    - struct rangeset*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 386
    functionName: rangeset_consume_ranges
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - cb
    - write_unlock
    - first_range
    - ASSERT
    - rangeset_is_empty
    - write_lock
    - destroy_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_consume_ranges(struct rangeset *r,\n                            int
      (*cb)(unsigned long s, unsigned long e,\n                                      void
      *ctxt, unsigned long *c),\n                            void *ctxt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_add_range
      Src: /src/xen/xen/common/rangeset.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: merge
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 2
    functionsReached:
    - rangeset_add_range
    linkageType: ''
    returnType: int
    signature: int merge(unsigned long s, unsigned long e, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/common/rangeset.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - struct rangeset*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: rangeset_merge
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 1
    functionsReached:
    - rangeset_report_ranges
    linkageType: ''
    returnType: int
    signature: int rangeset_merge(struct rangeset *r1, struct rangeset *r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/common/rangeset.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: subtract
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 2
    functionsReached:
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: int subtract(unsigned long s, unsigned long e, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/common/rangeset.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - struct rangeset*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: rangeset_subtract
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 2
    functionsReached:
    - rangeset_report_ranges
    linkageType: ''
    returnType: int
    signature: int rangeset_subtract(struct rangeset *r1, struct rangeset *r2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_add_range
      Src: /src/xen/xen/common/rangeset.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: rangeset_add_singleton
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 4
    functionsReached:
    - rangeset_add_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_add_singleton(\n    struct rangeset *r, unsigned long
      s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/common/rangeset.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: rangeset_remove_singleton
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: "int rangeset_remove_singleton(\n    struct rangeset *r, unsigned long
      s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/rangeset.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: rangeset_contains_singleton
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 10
    functionsReached:
    - rangeset_contains_range
    linkageType: ''
    returnType: bool
    signature: "bool rangeset_contains_singleton(\n    struct rangeset *r, unsigned
      long s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/rangeset.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: rangeset_is_empty
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 2
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: bool
    signature: "bool rangeset_is_empty(\n    const struct rangeset *r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/common/rangeset.c:441,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/rangeset.c:445,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/rangeset.c:446,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/rangeset.c:449,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/rangeset.c:452,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/rangeset.c:456,1
    - Dst: list_add
      Src: /src/xen/xen/common/rangeset.c:457,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rangeset.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - d
    - name
    - flags
    argTypes:
    - struct domain*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 462
    functionName: rangeset_new
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 7
    functionsReached:
    - rwlock_init
    - spin_unlock
    - xmalloc
    - safe_strcpy
    - BUG_ON
    - spin_lock
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: struct rangeset
    signature: "struct rangeset *rangeset_new(\n    struct domain *d, const char *name,
      unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:471,1
    - Dst: destroy_range
      Src: /src/xen/xen/common/rangeset.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: rangeset_purge
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 1
    functionsReached:
    - first_range
    - destroy_range
    linkageType: ''
    returnType: void
    signature: void rangeset_purge(struct rangeset *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/rangeset.c:483,1
    - Dst: list_del
      Src: /src/xen/xen/common/rangeset.c:484,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rangeset.c:485,1
    - Dst: rangeset_purge
      Src: /src/xen/xen/common/rangeset.c:488,1
    - Dst: xfree
      Src: /src/xen/xen/common/rangeset.c:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 491
    functionName: rangeset_destroy
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 3
    functionsReached:
    - spin_unlock
    - spin_lock
    - list_del
    - rangeset_purge
    - xfree
    linkageType: ''
    returnType: void
    signature: "void rangeset_destroy(\n    struct rangeset *r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - limit
    argTypes:
    - struct rangeset*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: rangeset_limit
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rangeset_limit(\n    struct rangeset *r, unsigned int limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/rangeset.c:502,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/rangeset.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 504
    functionName: rangeset_domain_initialise
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: "void rangeset_domain_initialise(\n    struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_head_is_null
      Src: /src/xen/xen/common/rangeset.c:511,1
    - Dst: list_empty
      Src: /src/xen/xen/common/rangeset.c:514,1
    - Dst: list_entry
      Src: /src/xen/xen/common/rangeset.c:516,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/rangeset.c:518,1
    - Dst: list_del
      Src: /src/xen/xen/common/rangeset.c:520,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/rangeset.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 524
    functionName: rangeset_domain_destroy
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - rangeset_destroy
    - list_entry
    - list_head_is_null
    - BUG_ON
    - list_del
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void rangeset_domain_destroy(\n    struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/rangeset.c:528,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:532,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:533,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:537,1
    - Dst: write_lock
      Src: /src/xen/xen/common/rangeset.c:538,1
    - Dst: list_splice_init
      Src: /src/xen/xen/common/rangeset.c:541,1
    - Dst: list_splice_init
      Src: /src/xen/xen/common/rangeset.c:542,1
    - Dst: list_splice
      Src: /src/xen/xen/common/rangeset.c:543,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:545,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/rangeset.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct rangeset*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 547
    functionName: rangeset_swap
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - list_splice
    - LIST_HEAD
    - write_unlock
    - write_lock
    - list_splice_init
    linkageType: ''
    returnType: void
    signature: void rangeset_swap(struct rangeset *a, struct rangeset *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - s
    argTypes:
    - struct rangeset*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: print_limit
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_limit(struct rangeset *r, unsigned long s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/common/rangeset.c:563,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:565,1
    - Dst: first_range
      Src: /src/xen/xen/common/rangeset.c:567,1
    - Dst: next_range
      Src: /src/xen/xen/common/rangeset.c:567,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:570,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:571,1
    - Dst: print_limit
      Src: /src/xen/xen/common/rangeset.c:572,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:575,1
    - Dst: print_limit
      Src: /src/xen/xen/common/rangeset.c:576,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:580,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/rangeset.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 583
    functionName: rangeset_printk
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - print_limit
    - first_range
    - next_range
    - printk
    - read_lock
    linkageType: ''
    returnType: void
    signature: void rangeset_printk(struct rangeset *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:590,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/rangeset.c:592,1
    - Dst: list_empty
      Src: /src/xen/xen/common/rangeset.c:594,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:595,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/rangeset.c:597,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:602,1
    - Dst: rangeset_printk
      Src: /src/xen/xen/common/rangeset.c:603,1
    - Dst: printk
      Src: /src/xen/xen/common/rangeset.c:604,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rangeset.c:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 608
    functionName: rangeset_domain_printk
    functionSourceFile: /src/xen/xen/common/rangeset.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_lock
    - printk
    - rangeset_printk
    - list_empty
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void rangeset_domain_printk(\n    struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/common/grant_table.c:115,1
    - Dst: custom_runtime_set_var_sz
      Src: /src/xen/xen/common/grant_table.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - val
    - par
    - parval
    argTypes:
    - unsigned int
    - struct param_hypfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: update_gnttab_par
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - snprintf
    - custom_runtime_set_var_sz
    linkageType: ''
    returnType: void
    signature: "void update_gnttab_par(unsigned int val, struct param_hypfs *par,\n
      \                             char *parval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_gnttab_par
      Src: /src/xen/xen/common/grant_table.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: gnttab_max_frames_init
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - update_gnttab_par
    linkageType: ''
    returnType: void
    signature: void gnttab_max_frames_init(struct param_hypfs *par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_gnttab_par
      Src: /src/xen/xen/common/grant_table.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: max_maptrack_frames_init
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - update_gnttab_par
    linkageType: ''
    returnType: void
    signature: void max_maptrack_frames_init(struct param_hypfs *par)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - unused1
    - ','
    - unused2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: update_gnttab_par
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: update_gnttab_par(v, unused1, unused2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - v
    - ','
    - unused1
    - ','
    - unused2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: parse_gnttab_limit
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_gnttab_limit(a, v, unused1, unused2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - val
    - par
    - parval
    argTypes:
    - unsigned int
    - struct param_hypfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: update_gnttab_par
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void update_gnttab_par(unsigned int val, struct param_hypfs *par,\n
      \                             char *parval)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/grant_table.c:145,1
    - Dst: update_gnttab_par
      Src: /src/xen/xen/common/grant_table.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - arg
    - valp
    - par
    - parval
    argTypes:
    - char*
    - unsigned int*
    - struct param_hypfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 156
    functionName: parse_gnttab_limit
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - update_gnttab_par
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_gnttab_limit(const char *arg, unsigned int *valp,\n                              struct
      param_hypfs *par, char *parval)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_gnttab_limit
      Src: /src/xen/xen/common/grant_table.c:164,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/common/grant_table.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: parse_gnttab_max_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - param_2_parfs
    - parse_gnttab_limit
    linkageType: ''
    returnType: int
    signature: int parse_gnttab_max_frames(const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_gnttab_limit
      Src: /src/xen/xen/common/grant_table.c:176,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/common/grant_table.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: parse_gnttab_max_maptrack_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - param_2_parfs
    - parse_gnttab_limit
    linkageType: ''
    returnType: int
    signature: int parse_gnttab_max_maptrack_frames(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/grant_table.c:199,1
    - Dst: strchr
      Src: /src/xen/xen/common/grant_table.c:201,1
    - Dst: strncmp
      Src: /src/xen/xen/common/grant_table.c:203,1
    - Dst: strncmp
      Src: /src/xen/xen/common/grant_table.c:204,1
    - Dst: simple_strtol
      Src: /src/xen/xen/common/grant_table.c:206,1
    - Dst: parse_boolean
      Src: /src/xen/xen/common/grant_table.c:213,1
    - Dst: parse_boolean
      Src: /src/xen/xen/common/grant_table.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 226
    functionName: parse_gnttab
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - strchr
    - simple_strtol
    - strncmp
    - parse_boolean
    linkageType: ''
    returnType: int
    signature: int parse_gnttab(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: nr_grant_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nr_grant_frames(const struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: nr_status_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nr_status_frames(const struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: maptrack_entry
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maptrack_entry(t, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: nr_maptrack_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nr_maptrack_frames(struct grant_table *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: shared_entry_v1
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shared_entry_v1(t, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: shared_entry_v2
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: shared_entry_v2(t, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: status_entry
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: status_entry(t, e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:326,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:327,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:331,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:332,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:335,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ref
    argTypes:
    - struct grant_table*
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 339
    functionName: shared_entry_header
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - shared_entry_v1
    - shared_entry_v2
    - block_speculation
    linkageType: ''
    returnType: grant_entry_header_t
    signature: 'grant_entry_header_t *

      shared_entry_header(struct grant_table *t, grant_ref_t ref)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 375
    functionName: GNTPIN_incr2oflow_mask
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GNTPIN_incr2oflow_mask(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: _active_entry
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _active_entry(t, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - act
    - gfn
    argTypes:
    - struct active_grant_entry*
    - gfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: act_set_gfn
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void act_set_gfn(struct active_grant_entry *act, gfn_t gfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_read_lock
      Src: /src/xen/xen/common/grant_table.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: grant_read_lock
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - percpu_read_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline grant_read_lock(struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_read_unlock
      Src: /src/xen/xen/common/grant_table.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: grant_read_unlock
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - percpu_read_unlock
    linkageType: ''
    returnType: void
    signature: void grant_read_unlock(struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_write_lock
      Src: /src/xen/xen/common/grant_table.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: grant_write_lock
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - percpu_write_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline grant_write_lock(struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: percpu_write_unlock
      Src: /src/xen/xen/common/grant_table.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: grant_write_unlock
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - percpu_write_unlock
    linkageType: ''
    returnType: void
    signature: void grant_write_unlock(struct grant_table *gt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_external
      Src: /src/xen/xen/common/grant_table.c:428,1
    - Dst: arch_flush_tlb_mask
      Src: /src/xen/xen/common/grant_table.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: gnttab_flush_tlb
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - paging_mode_external
    - arch_flush_tlb_mask
    linkageType: ''
    returnType: void
    signature: void gnttab_flush_tlb(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/grant_table.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: num_act_frames_from_sha_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int num_act_frames_from_sha_frames(const unsigned int num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: max_nr_active_grant_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max_nr_active_grant_frames(gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_act_frames_from_sha_frames
      Src: /src/xen/xen/common/grant_table.c:450,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: nr_active_grant_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - num_act_frames_from_sha_frames
    - nr_grant_frames
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nr_active_grant_frames(struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _active_entry
      Src: /src/xen/xen/common/grant_table.c:466,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - e
    argTypes:
    - struct grant_table*
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: active_entry_acquire
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - _active_entry
    linkageType: ''
    returnType: always_inline
    signature: 'always_inline *

      active_entry_acquire(struct grant_table *t, grant_ref_t e)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - act
    argTypes:
    - struct active_grant_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: active_entry_release
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void active_entry_release(struct active_grant_entry *act)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/grant_table.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - grant_frames
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: grant_to_status_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int grant_to_status_frames(unsigned int grant_frames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/grant_table.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status_frames
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: status_to_grant_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int status_to_grant_frames(unsigned int status_frames)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/common/grant_table.c:501,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:501,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:511,1
    - Dst: p2m_is_foreign
      Src: /src/xen/xen/common/grant_table.c:518,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:520,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/grant_table.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - gfn
    - mfn
    - page
    - readonly
    - rd
    argTypes:
    - unsigned long
    - mfn_t*
    - struct page_info**
    - bool
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 529
    functionName: get_paged_frame
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - check_get_page_from_gfn
    - _gfn
    - put_page
    - p2m_is_foreign
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int get_paged_frame(unsigned long gfn, mfn_t *mfn,\n                           struct
      page_info **page, bool readonly,\n                           struct domain *rd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:538,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:542,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:544,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:552,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:553,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - t
    - v
    argTypes:
    - struct grant_table*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 561
    functionName: _get_maptrack_handle
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - maptrack_entry
    - spin_unlock
    - unlikely
    linkageType: ''
    returnType: grant_handle_t
    signature: grant_handle_t _get_maptrack_handle(struct grant_table *t, struct vcpu
      *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_random
      Src: /src/xen/xen/common/grant_table.c:580,1
    - Dst: _get_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:587,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - t
    - curr
    argTypes:
    - struct grant_table*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 602
    functionName: steal_maptrack_handle
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - maptrack_entry
    - _get_maptrack_handle
    - get_random
    linkageType: ''
    returnType: grant_handle_t
    signature: "grant_handle_t steal_maptrack_handle(struct grant_table *t,\n                                            const
      struct vcpu *curr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:613,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:616,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:618,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:624,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - t
    - handle
    argTypes:
    - struct grant_table*
    - grant_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 627
    functionName: put_maptrack_handle
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - maptrack_entry
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void put_maptrack_handle(\n    struct grant_table *t, grant_handle_t
      handle)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _get_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:638,1
    - Dst: likely
      Src: /src/xen/xen/common/grant_table.c:639,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:642,1
    - Dst: nr_maptrack_frames
      Src: /src/xen/xen/common/grant_table.c:650,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:651,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:655,1
    - Dst: steal_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:663,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:666,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:667,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:671,1
    - Dst: steal_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:673,1
    - Dst: clear_page
      Src: /src/xen/xen/common/grant_table.c:676,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/grant_table.c:686,1
    - Dst: nr_maptrack_frames
      Src: /src/xen/xen/common/grant_table.c:695,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/grant_table.c:696,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:699,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/grant_table.c:701,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/grant_table.c:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - lgt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 707
    functionName: get_maptrack_handle
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached:
    - alloc_xenheap_page
    - spin_unlock
    - nr_maptrack_frames
    - steal_maptrack_handle
    - clear_page
    - maptrack_entry
    - likely
    - _get_maptrack_handle
    - BUILD_BUG_ON
    - smp_wmb
    - spin_lock
    linkageType: ''
    returnType: grant_handle_t
    signature: "grant_handle_t get_maptrack_handle(\n    struct grant_table *lgt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/grant_table.c:716,1
    - Dst: f2e
      Src: /src/xen/xen/common/grant_table.c:716,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:720,1
    - Dst: f2e
      Src: /src/xen/xen/common/grant_table.c:721,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:721,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/grant_table.c:724,1
    - Dst: f2e
      Src: /src/xen/xen/common/grant_table.c:724,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:728,1
    - Dst: f2e
      Src: /src/xen/xen/common/grant_table.c:729,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:729,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:733,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - gt
    argTypes:
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 737
    functionName: nr_grant_entries
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - nr_grant_frames
    - BUILD_BUG_ON
    - block_speculation
    - f2e
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nr_grant_entries(struct grant_table *gt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nr
    - ','
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 715
    functionName: f2e
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: f2e(nr, ver)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/common/grant_table.c:766,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:782,1
    - Dst: scombo::scombo
      Src: /src/xen/xen/common/grant_table.c:789,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:795,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:797,1
    - Dst: guest_cmpxchg
      Src: /src/xen/xen/common/grant_table.c:804,1
    - Dst: raw::raw
      Src: /src/xen/xen/common/grant_table.c:804,1
    - Dst: likely
      Src: /src/xen/xen/common/grant_table.c:805,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:810,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 6
    argNames:
    - shah
    - rd
    - act
    - readonly
    - mapflag
    - ldomid
    argTypes:
    - grant_entry_header_t*
    - struct domain*
    - struct active_grant_entry*
    - int
    - int
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 820
    functionName: _set_status_v1
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - guest_cmpxchg
    - gdprintk
    - scombo::scombo
    - likely
    - raw::raw
    - unlikely
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int _set_status_v1(const grant_entry_header_t *shah,\n                          struct
      domain *rd,\n                          struct active_grant_entry *act,\n                          int
      readonly,\n                          int mapflag,\n                          domid_t
      \ ldomid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/common/grant_table.c:835,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:848,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:861,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:863,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/grant_table.c:873,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/common/grant_table.c:875,1
    - Dst: gnttab_clear_flags
      Src: /src/xen/xen/common/grant_table.c:884,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:885,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:894,1
    - Dst: gnttab_clear_flags
      Src: /src/xen/xen/common/grant_table.c:896,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:897,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 43
    argCount: 7
    argNames:
    - shah
    - status
    - rd
    - act
    - readonly
    - mapflag
    - ldomid
    argTypes:
    - grant_entry_header_t*
    - grant_status_t*
    - struct domain*
    - struct active_grant_entry*
    - int
    - int
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 905
    functionName: _set_status_v2
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - gdprintk
    - gnttab_clear_flags
    - unlikely
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int _set_status_v2(const grant_entry_header_t *shah,\n                          grant_status_t
      *status,\n                          struct domain *rd,\n                          struct
      active_grant_entry *act,\n                          int readonly,\n                          int
      mapflag,\n                          domid_t  ldomid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:918,1
    - Dst: _set_status_v1
      Src: /src/xen/xen/common/grant_table.c:919,1
    - Dst: _set_status_v2
      Src: /src/xen/xen/common/grant_table.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 8
    argNames:
    - shah
    - status
    - rd
    - rgt_version
    - act
    - readonly
    - mapflag
    - ldomid
    argTypes:
    - grant_entry_header_t*
    - grant_status_t*
    - struct domain*
    - unsigned int
    - struct active_grant_entry*
    - int
    - int
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 922
    functionName: _set_status
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - _set_status_v2
    - evaluate_nospec
    - _set_status_v1
    linkageType: ''
    returnType: int
    signature: "int _set_status(const grant_entry_header_t *shah,\n                       grant_status_t
      *status,\n                       struct domain *rd,\n                       unsigned
      int rgt_version,\n                       struct active_grant_entry *act,\n                       int
      readonly,\n                       int mapflag,\n                       domid_t
      ldomid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_clear_flags
      Src: /src/xen/xen/common/grant_table.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - rd
    - act
    - status
    - readonly
    argTypes:
    - struct domain*
    - struct active_grant_entry*
    - uint16_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 941
    functionName: reduce_status_for_pin
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - gnttab_clear_flags
    linkageType: ''
    returnType: void
    signature: "void reduce_status_for_pin(struct domain *rd,\n                                  const
      struct active_grant_entry *act,\n                                  uint16_t
      *status, bool readonly)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/grant_table.c:959,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:960,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:963,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/grant_table.c:966,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:968,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:971,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/grant_table.c:977,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - ld
    - rgt
    - mfn
    - cur_ref
    argTypes:
    - struct domain*
    - struct grant_table*
    - mfn_t
    - grant_ref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 978
    functionName: grant_map_exists
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - nr_grant_entries
    - min
    - active_entry_acquire
    - mfn_eq
    - active_entry_release
    linkageType: ''
    returnType: struct active_grant_entry
    signature: "struct active_grant_entry *grant_map_exists(const struct domain *ld,\n
      \                                                  struct grant_table *rgt,\n
      \                                                  mfn_t mfn,\n                                                   grant_ref_t
      *cur_ref)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1023,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1025,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1030,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/common/grant_table.c:1030,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1034,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1039,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/grant_table.c:1039,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1041,1
    - Dst: xsm_grant_mapref
      Src: /src/xen/xen/common/grant_table.c:1046,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1049,1
    - Dst: get_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:1055,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1056,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1058,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1059,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:1065,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1069,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:1069,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1071,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:1078,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:1079,1
    - Dst: GNTPIN_incr2oflow_mask
      Src: /src/xen/xen/common/grant_table.c:1084,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1087,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:1095,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:1096,1
    - Dst: _set_status
      Src: /src/xen/xen/common/grant_table.c:1102,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:1109,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:1110,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:1111,1
    - Dst: get_paged_frame
      Src: /src/xen/xen/common/grant_table.c:1113,1
    - Dst: act_set_gfn
      Src: /src/xen/xen/common/grant_table.c:1117,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:1117,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:1134,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:1135,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/grant_table.c:1140,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:1140,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/common/grant_table.c:1142,1
    - Dst: page_get_owner
      Src: /src/xen/xen/common/grant_table.c:1145,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:1155,1
    - Dst: paging_mode_external
      Src: /src/xen/xen/common/grant_table.c:1159,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1161,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/common/grant_table.c:1166,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1166,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1166,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1168,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1170,1
    - Dst: create_grant_host_mapping
      Src: /src/xen/xen/common/grant_table.c:1177,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/grant_table.c:1190,1
    - Dst: get_page
      Src: /src/xen/xen/common/grant_table.c:1203,1
    - Dst: gnttab_host_mapping_get_page_type
      Src: /src/xen/xen/common/grant_table.c:1208,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/grant_table.c:1212,1
    - Dst: create_grant_host_mapping
      Src: /src/xen/xen/common/grant_table.c:1217,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1228,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1229,1
    - Dst: gnttab_need_iommu_mapping
      Src: /src/xen/xen/common/grant_table.c:1241,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:1251,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/common/grant_table.c:1253,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1253,1
    - Dst: radix_tree_ulong_to_ptr
      Src: /src/xen/xen/common/grant_table.c:1254,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/common/grant_table.c:1257,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1257,1
    - Dst: likely
      Src: /src/xen/xen/common/grant_table.c:1258,1
    - Dst: radix_tree_ptr_to_ulong
      Src: /src/xen/xen/common/grant_table.c:1260,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/common/grant_table.c:1267,1
    - Dst: radix_tree_ulong_to_ptr
      Src: /src/xen/xen/common/grant_table.c:1268,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:1273,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/common/grant_table.c:1288,1
    - Dst: _dfn
      Src: /src/xen/xen/common/grant_table.c:1288,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1288,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/common/grant_table.c:1296,1
    - Dst: radix_tree_ulong_to_ptr
      Src: /src/xen/xen/common/grant_table.c:1297,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/common/grant_table.c:1300,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1300,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:1306,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/grant_table.c:1312,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:1318,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/grant_table.c:1321,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/grant_table.c:1322,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/grant_table.c:1324,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1328,1
    - Dst: replace_grant_host_mapping
      Src: /src/xen/xen/common/grant_table.c:1334,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:1335,1
    - Dst: put_page_type
      Src: /src/xen/xen/common/grant_table.c:1339,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:1342,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:1344,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:1346,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:1350,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:1353,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:1356,1
    - Dst: put_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:1358,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1359,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 216
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct gnttab_map_grant_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1360
    functionName: map_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 4
    functionsReached:
    - TRACE_TIME
    - mfn_to_page
    - mfn_to_maddr
    - _gfn
    - likely
    - replace_grant_host_mapping
    - _dfn
    - radix_tree_ulong_to_ptr
    - get_page_type
    - grant_write_lock
    - write_atomic
    - maptrack_entry
    - mfn_valid
    - nr_grant_entries
    - iomem_access_permitted
    - get_page
    - radix_tree_ptr_to_ulong
    - rcu_unlock_domain
    - shared_entry_v2
    - evaluate_nospec
    - create_grant_host_mapping
    - radix_tree_delete
    - gdprintk
    - radix_tree_replace_slot
    - _set_status
    - rcu_lock_domain_by_id
    - mfn_x
    - put_page_type
    - grant_read_unlock
    - radix_tree_lookup_slot
    - get_maptrack_handle
    - grant_read_lock
    - status_entry
    - iommu_legacy_map
    - active_entry_acquire
    - gnttab_host_mapping_get_page_type
    - smp_wmb
    - ASSERT_UNREACHABLE
    - gnttab_need_iommu_mapping
    - shared_entry_v1
    - get_paged_frame
    - act_set_gfn
    - shared_entry_header
    - put_maptrack_handle
    - paging_mode_external
    - xsm_grant_mapref
    - page_get_owner_and_reference
    - reduce_status_for_pin
    - GNTPIN_incr2oflow_mask
    - gnttab_flush_tlb
    - page_get_owner
    - grant_write_unlock
    - unlikely
    - put_page
    - radix_tree_insert
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: "void map_grant_ref(\n    struct gnttab_map_grant_ref *op)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:1364,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:1371,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1374,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/grant_table.c:1374,1
    - Dst: map_grant_ref
      Src: /src/xen/xen/common/grant_table.c:1377,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1379,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/grant_table.c:1379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1362
    functionDepth: 5
    functionLinenumber: 1362
    functionLinenumberEnd: 1384
    functionName: gnttab_map_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 4
    functionsReached:
    - __copy_to_guest_offset
    - map_grant_ref
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - __copy_from_guest_offset
    linkageType: ''
    returnType: long
    signature: "long gnttab_map_grant_ref(\n    XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t)
      uop, unsigned int count)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1403,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1405,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/grant_table.c:1411,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:1412,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1414,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/grant_table.c:1414,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1416,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1423,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/grant_table.c:1423,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1426,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/grant_table.c:1427,1
    - Dst: xsm_grant_unmapref
      Src: /src/xen/xen/common/grant_table.c:1431,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1434,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/grant_table.c:1439,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:1443,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/grant_table.c:1456,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1457,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:1457,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1459,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:1467,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:1469,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/grant_table.c:1479,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/grant_table.c:1480,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1481,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1481,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1482,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1484,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1492,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/grant_table.c:1492,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1494,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/grant_table.c:1496,1
    - Dst: replace_grant_host_mapping
      Src: /src/xen/xen/common/grant_table.c:1503,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:1525,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:1527,1
    - Dst: put_maptrack_handle
      Src: /src/xen/xen/common/grant_table.c:1530,1
    - Dst: gnttab_need_iommu_mapping
      Src: /src/xen/xen/common/grant_table.c:1540,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:1546,1
    - Dst: radix_tree_lookup_slot
      Src: /src/xen/xen/common/grant_table.c:1547,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1547,1
    - Dst: likely
      Src: /src/xen/xen/common/grant_table.c:1548,1
    - Dst: radix_tree_ptr_to_ulong
      Src: /src/xen/xen/common/grant_table.c:1548,1
    - Dst: BUG
      Src: /src/xen/xen/common/grant_table.c:1553,1
    - Dst: iommu_legacy_unmap
      Src: /src/xen/xen/common/grant_table.c:1556,1
    - Dst: _dfn
      Src: /src/xen/xen/common/grant_table.c:1556,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1556,1
    - Dst: iommu_legacy_map
      Src: /src/xen/xen/common/grant_table.c:1558,1
    - Dst: _dfn
      Src: /src/xen/xen/common/grant_table.c:1558,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1558,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/common/grant_table.c:1564,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:1564,1
    - Dst: radix_tree_replace_slot
      Src: /src/xen/xen/common/grant_table.c:1566,1
    - Dst: radix_tree_ulong_to_ptr
      Src: /src/xen/xen/common/grant_table.c:1567,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:1569,1
    - Dst: gnttab_mark_dirty
      Src: /src/xen/xen/common/grant_table.c:1577,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1580,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 104
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct gnttab_unmap_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1581
    functionName: unmap_common
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - mfn_to_maddr
    - likely
    - replace_grant_host_mapping
    - _dfn
    - radix_tree_ulong_to_ptr
    - BUG
    - grant_write_lock
    - maptrack_entry
    - nr_grant_entries
    - radix_tree_ptr_to_ulong
    - rcu_unlock_domain
    - domain_crash
    - radix_tree_delete
    - gdprintk
    - radix_tree_replace_slot
    - rcu_lock_domain_by_id
    - mfn_x
    - xsm_grant_unmapref
    - grant_read_unlock
    - radix_tree_lookup_slot
    - grant_read_lock
    - iommu_legacy_map
    - active_entry_acquire
    - gnttab_mark_dirty
    - gnttab_need_iommu_mapping
    - iommu_legacy_unmap
    - put_maptrack_handle
    - smp_rmb
    - grant_write_unlock
    - read_atomic
    - block_speculation
    - unlikely
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: "void unmap_common(\n    struct gnttab_unmap_common *op)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:1593,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/grant_table.c:1601,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:1604,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:1606,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:1607,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:1609,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:1612,1
    - Dst: is_iomem_page
      Src: /src/xen/xen/common/grant_table.c:1614,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:1614,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:1621,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/grant_table.c:1623,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:1626,1
    - Dst: gnttab_host_mapping_get_page_type
      Src: /src/xen/xen/common/grant_table.c:1637,1
    - Dst: put_page_type
      Src: /src/xen/xen/common/grant_table.c:1639,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:1640,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:1643,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:1650,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:1652,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:1653,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:1655,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct gnttab_unmap_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1583
    functionDepth: 2
    functionLinenumber: 1583
    functionLinenumberEnd: 1656
    functionName: unmap_common_complete
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - rcu_lock_domain
    - shared_entry_header
    - mfn_to_page
    - is_iomem_page
    - put_page_type
    - reduce_status_for_pin
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - ASSERT
    - active_entry_acquire
    - gnttab_host_mapping_get_page_type
    - rcu_unlock_domain
    - put_page
    - evaluate_nospec
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: void unmap_common_complete(struct gnttab_unmap_common *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmap_common
      Src: /src/xen/xen/common/grant_table.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - op
    - common
    argTypes:
    - struct gnttab_unmap_grant_ref*
    - struct gnttab_unmap_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1675
    functionName: unmap_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - unmap_common
    linkageType: ''
    returnType: void
    signature: "void unmap_grant_ref(\n    struct gnttab_unmap_grant_ref *op,\n    struct
      gnttab_unmap_common *common)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:1680,1
    - Dst: min
      Src: /src/xen/xen/common/grant_table.c:1688,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1693,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:1693,1
    - Dst: unmap_grant_ref
      Src: /src/xen/xen/common/grant_table.c:1695,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1697,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:1697,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:1699,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:1702,1
    - Dst: unmap_common_complete
      Src: /src/xen/xen/common/grant_table.c:1705,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:1710,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:1717,1
    - Dst: unmap_common_complete
      Src: /src/xen/xen/common/grant_table.c:1720,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1722
    functionName: gnttab_unmap_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - guest_handle_add_offset
    - gnttab_flush_tlb
    - unmap_grant_ref
    - min
    - XEN_GUEST_HANDLE_PARAM
    - hypercall_preempt_check
    - unlikely
    - unmap_common_complete
    - __copy_field_to_guest
    linkageType: ''
    returnType: long
    signature: "long gnttab_unmap_grant_ref(\n    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t)
      uop, unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmap_common
      Src: /src/xen/xen/common/grant_table.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - op
    - common
    argTypes:
    - struct gnttab_unmap_and_replace*
    - struct gnttab_unmap_common*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1724
    functionDepth: 3
    functionLinenumber: 1724
    functionLinenumberEnd: 1741
    functionName: unmap_and_replace
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - unmap_common
    linkageType: ''
    returnType: void
    signature: "void unmap_and_replace(\n    struct gnttab_unmap_and_replace *op,\n
      \   struct gnttab_unmap_common *common)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:1745,1
    - Dst: min
      Src: /src/xen/xen/common/grant_table.c:1753,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1758,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:1758,1
    - Dst: unmap_and_replace
      Src: /src/xen/xen/common/grant_table.c:1760,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:1762,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:1762,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:1764,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:1767,1
    - Dst: unmap_common_complete
      Src: /src/xen/xen/common/grant_table.c:1770,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:1775,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:1782,1
    - Dst: unmap_common_complete
      Src: /src/xen/xen/common/grant_table.c:1785,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1743
    functionDepth: 4
    functionLinenumber: 1743
    functionLinenumberEnd: 1787
    functionName: gnttab_unmap_and_replace
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - guest_handle_add_offset
    - __copy_field_to_guest
    - gnttab_flush_tlb
    - min
    - XEN_GUEST_HANDLE_PARAM
    - hypercall_preempt_check
    - unlikely
    - unmap_common_complete
    - unmap_and_replace
    linkageType: ''
    returnType: long
    signature: "long gnttab_unmap_and_replace(\n    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t)
      uop, unsigned int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: grant_to_status_frames
      Src: /src/xen/xen/common/grant_table.c:1796,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:1799,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:1801,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1803,1
    - Dst: clear_page
      Src: /src/xen/xen/common/grant_table.c:1805,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:1808,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/common/grant_table.c:1809,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/grant_table.c:1809,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:1816,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1818,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - d
    - gt
    - req_nr_frames
    argTypes:
    - struct domain*
    - struct grant_table*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1789
    functionDepth: 2
    functionLinenumber: 1789
    functionLinenumberEnd: 1822
    functionName: gnttab_populate_status_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - nr_status_frames
    - alloc_xenheap_page
    - share_xen_page_with_guest
    - clear_page
    - grant_to_status_frames
    - virt_to_page
    - block_speculation
    - free_xenheap_page
    linkageType: ''
    returnType: int
    signature: "int gnttab_populate_status_frames(struct domain *d, struct grant_table
      *gt,\n                              unsigned int req_nr_frames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:1830,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:1832,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/grant_table.c:1834,1
    - Dst: gnttab_get_frame_gfn
      Src: /src/xen/xen/common/grant_table.c:1835,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/grant_table.c:1843,1
    - Dst: gfn_eq
      Src: /src/xen/xen/common/grant_table.c:1845,1
    - Dst: gnttab_set_frame_gfn
      Src: /src/xen/xen/common/grant_table.c:1847,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/grant_table.c:1848,1
    - Dst: gprintk
      Src: /src/xen/xen/common/grant_table.c:1852,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/grant_table.c:1854,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/grant_table.c:1855,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:1860,1
    - Dst: page_get_owner
      Src: /src/xen/xen/common/grant_table.c:1860,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/grant_table.c:1861,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/grant_table.c:1865,1
    - Dst: gprintk
      Src: /src/xen/xen/common/grant_table.c:1867,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/grant_table.c:1869,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/grant_table.c:1870,1
    - Dst: get_page
      Src: /src/xen/xen/common/grant_table.c:1874,1
    - Dst: set_bit
      Src: /src/xen/xen/common/grant_table.c:1875,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/common/grant_table.c:1877,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/grant_table.c:1877,1
    - Dst: page_set_owner
      Src: /src/xen/xen/common/grant_table.c:1883,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:1886,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1888,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - d
    - gt
    argTypes:
    - struct domain*
    - struct grant_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1894
    functionName: gnttab_unpopulate_status_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - nr_status_frames
    - gprintk
    - page_to_mfn
    - share_xen_page_with_guest
    - get_page
    - BUG_ON
    - page_set_owner
    - domain_crash
    - virt_to_page
    - gnttab_set_frame_gfn
    - set_bit
    - put_page_alloc_ref
    - gnttab_get_frame_gfn
    - gfn_x
    - paging_mode_translate
    - page_get_owner
    - block_speculation
    - free_xenheap_page
    - gfn_eq
    linkageType: ''
    returnType: int
    signature: int gnttab_unpopulate_status_frames(struct domain *d, struct grant_table
      *gt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:1908,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1911,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1913,1
    - Dst: nr_active_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1916,1
    - Dst: num_act_frames_from_sha_frames
      Src: /src/xen/xen/common/grant_table.c:1917,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1919,1
    - Dst: clear_page
      Src: /src/xen/xen/common/grant_table.c:1921,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/grant_table.c:1923,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1927,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1929,1
    - Dst: clear_page
      Src: /src/xen/xen/common/grant_table.c:1931,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:1935,1
    - Dst: gnttab_populate_status_frames
      Src: /src/xen/xen/common/grant_table.c:1937,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1942,1
    - Dst: share_xen_page_with_guest
      Src: /src/xen/xen/common/grant_table.c:1943,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/grant_table.c:1943,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1949,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1951,1
    - Dst: nr_active_grant_frames
      Src: /src/xen/xen/common/grant_table.c:1955,1
    - Dst: num_act_frames_from_sha_frames
      Src: /src/xen/xen/common/grant_table.c:1956,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:1958,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:1961,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - d
    - req_nr_frames
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1900
    functionDepth: 3
    functionLinenumber: 1900
    functionLinenumberEnd: 1965
    functionName: gnttab_grow_table
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - gnttab_populate_status_frames
    - gdprintk
    - alloc_xenheap_page
    - nr_grant_frames
    - share_xen_page_with_guest
    - nr_active_grant_frames
    - clear_page
    - virt_to_page
    - ASSERT
    - num_act_frames_from_sha_frames
    - free_xenheap_page
    - spin_lock_init
    - evaluate_nospec
    linkageType: ''
    returnType: int
    signature: int gnttab_grow_table(struct domain *d, unsigned int req_nr_frames)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/common/grant_table.c:1976,1
    - Dst: dprintk
      Src: /src/xen/xen/common/grant_table.c:1982,1
    - Dst: dprintk
      Src: /src/xen/xen/common/grant_table.c:1996,1
    - Dst: xvzalloc
      Src: /src/xen/xen/common/grant_table.c:2000,1
    - Dst: percpu_rwlock_resource_init
      Src: /src/xen/xen/common/grant_table.c:2004,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/grant_table.c:2005,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/grant_table.c:2017,1
    - Dst: max_nr_active_grant_frames
      Src: /src/xen/xen/common/grant_table.c:2018,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/grant_table.c:2025,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/common/grant_table.c:2030,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/grant_table.c:2034,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/grant_table.c:2039,1
    - Dst: grant_to_status_frames
      Src: /src/xen/xen/common/grant_table.c:2040,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:2044,1
    - Dst: gnttab_grow_table
      Src: /src/xen/xen/common/grant_table.c:2047,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:2049,1
    - Dst: grant_table_destroy
      Src: /src/xen/xen/common/grant_table.c:2053,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 4
    argNames:
    - d
    - max_grant_frames
    - max_maptrack_frames
    - options
    argTypes:
    - struct domain*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2056
      start: 1967
    functionDepth: 4
    functionLinenumber: 1967
    functionLinenumberEnd: 2056
    functionName: grant_table_init
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - xvzalloc_array
    - max_nr_active_grant_frames
    - grant_write_lock
    - grant_to_status_frames
    - grant_write_unlock
    - gnttab_grow_table
    - xvzalloc
    - spin_lock_init
    - percpu_rwlock_resource_init
    - dprintk
    - grant_table_destroy
    - radix_tree_init
    linkageType: ''
    returnType: int
    signature: "int grant_table_init(struct domain *d, int max_grant_frames,\n                     int
      max_maptrack_frames, unsigned int options)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:2060,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2072,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:2072,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:2075,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/grant_table.c:2078,1
    - Dst: xsm_grant_setup
      Src: /src/xen/xen/common/grant_table.c:2085,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:2092,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2094,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2096,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2101,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2103,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:2109,1
    - Dst: grant_to_status_frames
      Src: /src/xen/xen/common/grant_table.c:2111,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:2111,1
    - Dst: gnttab_grow_table
      Src: /src/xen/xen/common/grant_table.c:2112,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2114,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:2116,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/grant_table.c:2125,1
    - Dst: gnttab_shared_gfn
      Src: /src/xen/xen/common/grant_table.c:2125,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:2128,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/common/grant_table.c:2128,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/grant_table.c:2130,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:2138,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2141,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2143,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:2143,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 2
    argNames:
    - count
    - limit_max
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2058
    functionDepth: 4
    functionLinenumber: 2058
    functionLinenumberEnd: 2147
    functionName: gnttab_setup_table
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - nr_status_frames
    - nr_grant_frames
    - copy_from_guest
    - SHARED_M2P
    - gnttab_grow_table
    - __copy_to_guest_offset
    - gnttab_shared_gfn
    - grant_write_lock
    - grant_to_status_frames
    - BUG_ON
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - gdprintk
    - __copy_field_to_guest
    - xsm_grant_setup
    - gfn_x
    - grant_write_unlock
    - unlikely
    - guest_handle_okay
    - rcu_lock_domain_by_any_id
    linkageType: ''
    returnType: long
    signature: "long gnttab_setup_table(\n    XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t)
      uop, unsigned int count,\n    unsigned int limit_max)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:2151,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2160,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:2160,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/grant_table.c:2163,1
    - Dst: xsm_grant_query_size
      Src: /src/xen/xen/common/grant_table.c:2170,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2178,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:2180,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2184,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2188,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2190,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/grant_table.c:2190,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2149
    functionDepth: 2
    functionLinenumber: 2149
    functionLinenumberEnd: 2194
    functionName: gnttab_query_size
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - nr_grant_frames
    - copy_from_guest
    - xsm_grant_query_size
    - grant_read_unlock
    - grant_read_lock
    - __copy_to_guest
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - rcu_lock_domain_by_any_id
    - rcu_unlock_domain
    linkageType: ''
    returnType: long
    signature: "long gnttab_query_size(\n    XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t)
      uop, unsigned int count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2209,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2211,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:2211,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2213,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:2220,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/common/grant_table.c:2221,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2227,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2228,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2230,1
    - Dst: scombo::scombo
      Src: /src/xen/xen/common/grant_table.c:2236,1
    - Dst: guest_cmpxchg
      Src: /src/xen/xen/common/grant_table.c:2239,1
    - Dst: raw::raw
      Src: /src/xen/xen/common/grant_table.c:2239,1
    - Dst: likely
      Src: /src/xen/xen/common/grant_table.c:2240,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2245,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2252,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - rd
    - ld
    - ref
    argTypes:
    - struct domain*
    - struct domain*
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2258
    functionName: gnttab_prepare_for_transfer
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - guest_cmpxchg
    - gdprintk
    - shared_entry_header
    - scombo::scombo
    - likely
    - nr_grant_entries
    - raw::raw
    - grant_read_lock
    - grant_read_unlock
    - unlikely
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: "int gnttab_prepare_for_transfer(\n    struct domain *rd, struct domain
      *ld, grant_ref_t ref)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:2262,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:2281,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2285,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:2285,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2287,1
    - Dst: get_gfn_unshare
      Src: /src/xen/xen/common/grant_table.c:2296,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/common/grant_table.c:2297,1
    - Dst: p2m_is_valid
      Src: /src/xen/xen/common/grant_table.c:2297,1
    - Dst: gfn_to_mfn
      Src: /src/xen/xen/common/grant_table.c:2301,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2301,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2305,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/grant_table.c:2305,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/grant_table.c:2308,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2310,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:2315,1
    - Dst: steal_page
      Src: /src/xen/xen/common/grant_table.c:2316,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/grant_table.c:2319,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/common/grant_table.c:2325,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2325,1
    - Dst: gnttab_flush_tlb
      Src: /src/xen/xen/common/grant_table.c:2326,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2329,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:2331,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2337,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/grant_table.c:2337,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2339,1
    - Dst: xsm_grant_transfer
      Src: /src/xen/xen/common/grant_table.c:2344,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2348,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/grant_table.c:2354,1
    - Dst: domain_clamp_alloc_bitsize
      Src: /src/xen/xen/common/grant_table.c:2358,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/grant_table.c:2359,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:2362,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/grant_table.c:2366,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/grant_table.c:2367,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/common/grant_table.c:2374,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/grant_table.c:2374,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/grant_table.c:2377,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/grant_table.c:2379,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/grant_table.c:2382,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2389,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2390,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/grant_table.c:2390,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2391,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/grant_table.c:2393,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2396,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2399,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/grant_table.c:2401,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2408,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/grant_table.c:2408,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/common/grant_table.c:2409,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/grant_table.c:2417,1
    - Dst: gnttab_prepare_for_transfer
      Src: /src/xen/xen/common/grant_table.c:2418,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2424,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:2424,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2425,1
    - Dst: assign_pages
      Src: /src/xen/xen/common/grant_table.c:2425,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/grant_table.c:2433,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/grant_table.c:2434,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/grant_table.c:2435,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2438,1
    - Dst: put_domain
      Src: /src/xen/xen/common/grant_table.c:2442,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/grant_table.c:2448,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/grant_table.c:2451,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2454,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:2455,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:2457,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:2459,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/grant_table.c:2461,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2461,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/grant_table.c:2462,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:2463,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:2467,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/grant_table.c:2469,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2469,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/grant_table.c:2470,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:2471,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/grant_table.c:2473,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:2474,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2477,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2478,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2480,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2485,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:2485,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2487,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:2490,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 121
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2260
    functionDepth: 5
    functionLinenumber: 2260
    functionLinenumberEnd: 2494
    functionName: gnttab_transfer
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - mfn_to_page
    - guest_handle_add_offset
    - _gfn
    - alloc_domheap_page
    - nrspin_unlock
    - guest_physmap_remove_page
    - p2m_is_valid
    - xsm_grant_transfer
    - domain_adjust_tot_pages
    - page_to_mfn
    - put_gfn
    - gnttab_prepare_for_transfer
    - mfn_valid
    - put_domain
    - active_entry_release
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - shared_entry_v2
    - evaluate_nospec
    - MEMF_bits
    - gdprintk
    - copy_domain_page
    - mfn_x
    - rcu_lock_domain_by_id
    - smp_wmb
    - grant_read_unlock
    - grant_read_lock
    - p2m_is_shared
    - hypercall_preempt_check
    - gfn_to_mfn
    - active_entry_acquire
    - free_domheap_page
    - __copy_field_to_guest
    - get_knownalive_domain
    - shared_entry_v1
    - __copy_from_guest
    - get_gfn_unshare
    - shared_entry_header
    - gnttab_flush_tlb
    - domain_tot_pages
    - paging_mode_translate
    - guest_physmap_add_page
    - nrspin_lock
    - unlikely
    - assign_pages
    - domain_clamp_alloc_bitsize
    - steal_page
    linkageType: ''
    returnType: long
    signature: "long gnttab_transfer(\n    XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t)
      uop, unsigned int count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2512,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:2514,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:2515,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:2518,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:2526,1
    - Dst: knownalive_domain_from_domid
      Src: /src/xen/xen/common/grant_table.c:2528,1
    - Dst: gnttab_mark_dirty
      Src: /src/xen/xen/common/grant_table.c:2538,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:2543,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2545,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2546,1
    - Dst: release_grant_for_copy
      Src: /src/xen/xen/common/grant_table.c:2554,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - rd
    - gref
    - readonly
    argTypes:
    - struct domain*
    - grant_ref_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2500
    functionDepth: 2
    functionLinenumber: 2500
    functionLinenumberEnd: 2558
    functionName: release_grant_for_copy
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - shared_entry_header
    - reduce_status_for_pin
    - knownalive_domain_from_domid
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - release_grant_for_copy
    - active_entry_acquire
    - rcu_unlock_domain
    - gnttab_mark_dirty
    - evaluate_nospec
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: "void release_grant_for_copy(\n    struct domain *rd, grant_ref_t gref,
      bool readonly)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2590,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:2592,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:2592,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2594,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:2600,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:2601,1
    - Dst: GNTPIN_incr2oflow_mask
      Src: /src/xen/xen/common/grant_table.c:2606,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2608,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:2615,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:2622,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:2623,1
    - Dst: _set_status_v2
      Src: /src/xen/xen/common/grant_table.c:2631,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2637,1
    - Dst: barrier
      Src: /src/xen/xen/common/grant_table.c:2645,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2649,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/grant_table.c:2664,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2667,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2678,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2679,1
    - Dst: acquire_grant_for_copy
      Src: /src/xen/xen/common/grant_table.c:2681,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2686,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:2687,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2691,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:2692,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2693,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2694,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/grant_table.c:2706,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2720,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2721,1
    - Dst: release_grant_for_copy
      Src: /src/xen/xen/common/grant_table.c:2723,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2724,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:2726,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:2727,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:2728,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2729,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2730,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:2732,1
    - Dst: act_set_gfn
      Src: /src/xen/xen/common/grant_table.c:2745,1
    - Dst: _set_status
      Src: /src/xen/xen/common/grant_table.c:2757,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:2765,1
    - Dst: get_paged_frame
      Src: /src/xen/xen/common/grant_table.c:2767,1
    - Dst: act_set_gfn
      Src: /src/xen/xen/common/grant_table.c:2770,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2770,1
    - Dst: get_paged_frame
      Src: /src/xen/xen/common/grant_table.c:2777,1
    - Dst: act_set_gfn
      Src: /src/xen/xen/common/grant_table.c:2781,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2781,1
    - Dst: get_paged_frame
      Src: /src/xen/xen/common/grant_table.c:2788,1
    - Dst: act_set_gfn
      Src: /src/xen/xen/common/grant_table.c:2792,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:2792,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:2811,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/grant_table.c:2811,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:2812,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/common/grant_table.c:2813,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:2825,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2838,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2839,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:2843,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:2846,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:2849,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 162
    argCount: 9
    argNames:
    - rd
    - gref
    - ldom
    - readonly
    - mfn
    - page
    - page_off
    - length
    - allow_transitive
    argTypes:
    - struct domain*
    - grant_ref_t
    - domid_t
    - bool
    - mfn_t*
    - struct page_info**
    - uint16_t*
    - uint16_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2566
    functionDepth: 3
    functionLinenumber: 2566
    functionLinenumberEnd: 2852
    functionName: acquire_grant_for_copy
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - mfn_to_page
    - _gfn
    - release_grant_for_copy
    - mfn_valid
    - nr_grant_entries
    - mfn_eq
    - rcu_unlock_domain
    - shared_entry_v2
    - evaluate_nospec
    - gdprintk
    - _set_status
    - rcu_lock_domain_by_id
    - _set_status_v2
    - acquire_grant_for_copy
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - ASSERT
    - active_entry_acquire
    - unlikely
    - shared_entry_v1
    - get_paged_frame
    - act_set_gfn
    - shared_entry_header
    - page_get_owner_and_reference
    - reduce_status_for_pin
    - GNTPIN_incr2oflow_mask
    - barrier
    - put_page
    - active_entry_release
    linkageType: ''
    returnType: int
    signature: "int acquire_grant_for_copy(\n    struct domain *rd, grant_ref_t gref,
      domid_t ldom, bool readonly,\n    mfn_t *mfn, struct page_info **page, uint16_t
      *page_off,\n    uint16_t *length, bool allow_transitive)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/grant_table.c:2876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - domid
    - is_gref
    - buf
    argTypes:
    - domid_t
    - bool
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2869
    functionDepth: 1
    functionLinenumber: 2869
    functionLinenumberEnd: 2884
    functionName: gnttab_copy_lock_domain
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - rcu_lock_domain_by_any_id
    linkageType: ''
    returnType: int
    signature: "int gnttab_copy_lock_domain(domid_t domid, bool is_gref,\n                                   struct
      gnttab_copy_buf *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2891,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:2896,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - struct gnttab_copy_buf*
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2886
    functionDepth: 2
    functionLinenumber: 2886
    functionLinenumberEnd: 2899
    functionName: gnttab_copy_unlock_domains
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - rcu_unlock_domain
    linkageType: ''
    returnType: void
    signature: "void gnttab_copy_unlock_domains(struct gnttab_copy_buf *src,\n                                       struct
      gnttab_copy_buf *dest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_copy_lock_domain
      Src: /src/xen/xen/common/grant_table.c:2907,1
    - Dst: gnttab_copy_lock_domain
      Src: /src/xen/xen/common/grant_table.c:2911,1
    - Dst: xsm_grant_copy
      Src: /src/xen/xen/common/grant_table.c:2916,1
    - Dst: gnttab_copy_unlock_domains
      Src: /src/xen/xen/common/grant_table.c:2925,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - op
    - src
    - dest
    argTypes:
    - struct gnttab_copy*
    - struct gnttab_copy_buf*
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2901
    functionDepth: 3
    functionLinenumber: 2901
    functionLinenumberEnd: 2927
    functionName: gnttab_copy_lock_domains
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - xsm_grant_copy
    - gnttab_copy_unlock_domains
    - gnttab_copy_lock_domain
    linkageType: ''
    returnType: int
    signature: "int gnttab_copy_lock_domains(const struct gnttab_copy *op,\n                                    struct
      gnttab_copy_buf *src,\n                                    struct gnttab_copy_buf
      *dest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/grant_table.c:2933,1
    - Dst: release_grant_for_copy
      Src: /src/xen/xen/common/grant_table.c:2938,1
    - Dst: put_page_type
      Src: /src/xen/xen/common/grant_table.c:2943,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:2948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2929
    functionDepth: 3
    functionLinenumber: 2929
    functionLinenumberEnd: 2951
    functionName: gnttab_copy_release_buf
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - put_page
    - unmap_domain_page
    - put_page_type
    - release_grant_for_copy
    linkageType: ''
    returnType: void
    signature: void gnttab_copy_release_buf(struct gnttab_copy_buf *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: acquire_grant_for_copy
      Src: /src/xen/xen/common/grant_table.c:2964,1
    - Dst: get_paged_frame
      Src: /src/xen/xen/common/grant_table.c:2977,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2981,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/grant_table.c:2993,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:2996,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:2998,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/grant_table.c:3005,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - op
    - ptr
    - buf
    - gref_flag
    argTypes:
    - struct gnttab_copy*
    - struct gnttab_copy_ptr*
    - struct gnttab_copy_buf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2953
    functionDepth: 4
    functionLinenumber: 2953
    functionLinenumberEnd: 3010
    functionName: gnttab_copy_claim_buf
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - get_paged_frame
    - gdprintk
    - map_domain_page
    - get_page_type
    - mfn_x
    - acquire_grant_for_copy
    linkageType: ''
    returnType: int
    signature: "int gnttab_copy_claim_buf(const struct gnttab_copy *op,\n                                 const
      struct gnttab_copy_ptr *ptr,\n                                 struct gnttab_copy_buf
      *buf,\n                                 unsigned int gref_flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - p
    - b
    - has_gref
    argTypes:
    - struct gnttab_copy_ptr*
    - struct gnttab_copy_buf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3012
    functionDepth: 0
    functionLinenumber: 3012
    functionLinenumberEnd: 3021
    functionName: gnttab_copy_buf_valid
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool gnttab_copy_buf_valid(\n    const struct gnttab_copy_ptr *p,
      const struct gnttab_copy_buf *b,\n    bool has_gref)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3030,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3037,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3046,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:3052,1
    - Dst: memcpy
      Src: /src/xen/xen/common/grant_table.c:3054,1
    - Dst: gnttab_mark_dirty
      Src: /src/xen/xen/common/grant_table.c:3056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - op
    - dest
    - src
    argTypes:
    - struct gnttab_copy*
    - struct gnttab_copy_buf*
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3023
    functionDepth: 1
    functionLinenumber: 3023
    functionLinenumberEnd: 3059
    functionName: gnttab_copy_buf
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - block_speculation
    - memcpy
    - gnttab_mark_dirty
    linkageType: ''
    returnType: int
    signature: "int gnttab_copy_buf(const struct gnttab_copy *op,\n                           struct
      gnttab_copy_buf *dest,\n                           const struct gnttab_copy_buf
      *src)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3067,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3073,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3074,1
    - Dst: gnttab_copy_unlock_domains
      Src: /src/xen/xen/common/grant_table.c:3075,1
    - Dst: gnttab_copy_lock_domains
      Src: /src/xen/xen/common/grant_table.c:3077,1
    - Dst: gnttab_copy_buf_valid
      Src: /src/xen/xen/common/grant_table.c:3083,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3086,1
    - Dst: gnttab_copy_claim_buf
      Src: /src/xen/xen/common/grant_table.c:3087,1
    - Dst: gnttab_copy_buf_valid
      Src: /src/xen/xen/common/grant_table.c:3093,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3096,1
    - Dst: gnttab_copy_claim_buf
      Src: /src/xen/xen/common/grant_table.c:3097,1
    - Dst: gnttab_copy_buf
      Src: /src/xen/xen/common/grant_table.c:3102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - op
    - dest
    - src
    argTypes:
    - struct gnttab_copy*
    - struct gnttab_copy_buf*
    - struct gnttab_copy_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3061
    functionDepth: 5
    functionLinenumber: 3061
    functionLinenumberEnd: 3105
    functionName: gnttab_copy_one
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - gnttab_copy_buf
    - gnttab_copy_lock_domains
    - gnttab_copy_unlock_domains
    - gnttab_copy_buf_valid
    - unlikely
    - gnttab_copy_release_buf
    - gnttab_copy_claim_buf
    linkageType: ''
    returnType: int
    signature: "int gnttab_copy_one(const struct gnttab_copy *op,\n                           struct
      gnttab_copy_buf *dest,\n                           struct gnttab_copy_buf *src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3116,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:3126,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3132,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3132,1
    - Dst: gnttab_copy_one
      Src: /src/xen/xen/common/grant_table.c:3138,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3146,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3147,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3152,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:3152,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3157,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3160,1
    - Dst: gnttab_copy_release_buf
      Src: /src/xen/xen/common/grant_table.c:3161,1
    - Dst: gnttab_copy_unlock_domains
      Src: /src/xen/xen/common/grant_table.c:3162,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3115
    functionDepth: 6
    functionLinenumber: 3115
    functionLinenumberEnd: 3165
    functionName: gnttab_copy
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - guest_handle_add_offset
    - gnttab_copy_unlock_domains
    - gnttab_copy_one
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - gnttab_copy_release_buf
    - __copy_field_to_guest
    linkageType: ''
    returnType: long
    signature: "long gnttab_copy(\n    XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop,
      unsigned int count)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3168,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3177,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:3192,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:3199,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/grant_table.c:3202,1
    - Dst: _active_entry
      Src: /src/xen/xen/common/grant_table.c:3202,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3204,1
    - Dst: gnttab_populate_status_frames
      Src: /src/xen/xen/common/grant_table.c:3216,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:3216,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3223,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3226,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3230,1
    - Dst: memcpy
      Src: /src/xen/xen/common/grant_table.c:3243,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3243,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3249,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3254,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3255,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3256,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3259,1
    - Dst: memset
      Src: /src/xen/xen/common/grant_table.c:3264,1
    - Dst: gnttab_unpopulate_status_frames
      Src: /src/xen/xen/common/grant_table.c:3272,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:3276,1
    - Dst: clear_page
      Src: /src/xen/xen/common/grant_table.c:3277,1
    - Dst: memcpy
      Src: /src/xen/xen/common/grant_table.c:3285,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3285,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3290,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3292,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3294,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3296,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:3306,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/grant_table.c:3311,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 98
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3167
    functionDepth: 3
    functionLinenumber: 3167
    functionLinenumberEnd: 3315
    functionName: gnttab_set_version
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - gnttab_populate_status_frames
    - shared_entry_v1
    - gdprintk
    - nr_grant_frames
    - copy_from_guest
    - clear_page
    - grant_write_lock
    - _active_entry
    - nr_grant_entries
    - status_entry
    - gnttab_unpopulate_status_frames
    - read_atomic
    - grant_write_unlock
    - __copy_to_guest
    - XEN_GUEST_HANDLE_PARAM
    - memset
    - shared_entry_v2
    - memcpy
    linkageType: ''
    returnType: long
    signature: long gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t)
      uop)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3318,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3331,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3331,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3333,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3338,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/grant_table.c:3341,1
    - Dst: xsm_grant_setup
      Src: /src/xen/xen/common/grant_table.c:3347,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:3358,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3360,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:3360,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3362,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:3364,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/grant_table.c:3371,1
    - Dst: gnttab_status_gfn
      Src: /src/xen/xen/common/grant_table.c:3371,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/grant_table.c:3372,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:3380,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3382,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3384,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:3384,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3317
    functionDepth: 2
    functionLinenumber: 3317
    functionLinenumberEnd: 3388
    functionName: gnttab_get_status_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - nr_status_frames
    - gdprintk
    - __copy_to_guest_offset
    - xsm_grant_setup
    - copy_from_guest
    - __copy_field_to_guest
    - gfn_x
    - grant_read_unlock
    - grant_read_lock
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - guest_handle_okay
    - rcu_lock_domain_by_any_id
    - gnttab_status_gfn
    - rcu_unlock_domain
    linkageType: ''
    returnType: long
    signature: "long gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t)
      uop,\n                         unsigned int count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3391,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3397,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/grant_table.c:3400,1
    - Dst: xsm_grant_query_size
      Src: /src/xen/xen/common/grant_table.c:3404,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3407,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3413,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:3415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3390
    functionDepth: 2
    functionLinenumber: 3390
    functionLinenumberEnd: 3419
    functionName: gnttab_get_version
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached:
    - copy_from_guest
    - __copy_field_to_guest
    - xsm_grant_query_size
    - XEN_GUEST_HANDLE_PARAM
    - rcu_lock_domain_by_any_id
    - rcu_unlock_domain
    linkageType: ''
    returnType: long
    signature: long gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t)
      uop)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_current_domain
      Src: /src/xen/xen/common/grant_table.c:3424,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:3430,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3433,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:3433,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3435,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3439,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:3439,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3441,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:3447,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:3453,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3456,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:3461,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3464,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:3469,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3473,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3474,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3474,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:3475,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3482,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3483,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3485,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3485,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3486,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3486,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:3488,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3489,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3494,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3496,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:3497,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - ref_a
    - ref_b
    argTypes:
    - grant_ref_t
    - grant_ref_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3502
      start: 3421
    functionDepth: 2
    functionLinenumber: 3421
    functionLinenumberEnd: 3502
    functionName: swap_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - shared_entry_v1
    - gdprintk
    - grant_write_lock
    - rcu_lock_current_domain
    - nr_grant_entries
    - status_entry
    - grant_write_unlock
    - block_speculation
    - active_entry_acquire
    - unlikely
    - rcu_unlock_domain
    - shared_entry_v2
    - evaluate_nospec
    - active_entry_release
    linkageType: ''
    returnType: int16_t
    signature: int16_t swap_grant_ref(grant_ref_t ref_a, grant_ref_t ref_b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3505,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:3513,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3515,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3515,1
    - Dst: swap_grant_ref
      Src: /src/xen/xen/common/grant_table.c:3517,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3518,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/grant_table.c:3518,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3520,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3504
    functionDepth: 3
    functionLinenumber: 3504
    functionLinenumberEnd: 3523
    functionName: gnttab_swap_grant_ref
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - guest_handle_add_offset
    - swap_grant_ref
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - __copy_field_to_guest
    linkageType: ''
    returnType: long
    signature: "long gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t)
      uop,\n                      unsigned int count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_current_domain
      Src: /src/xen/xen/common/grant_table.c:3548,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/grant_table.c:3549,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/grant_table.c:3551,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3553,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:3557,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/common/grant_table.c:3558,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3561,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:3567,1
    - Dst: grant_map_exists
      Src: /src/xen/xen/common/grant_table.c:3569,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/common/grant_table.c:3570,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:3572,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3573,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:3574,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/grant_table.c:3575,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/grant_table.c:3579,1
    - Dst: clean_and_invalidate_dcache_va_range
      Src: /src/xen/xen/common/grant_table.c:3583,1
    - Dst: invalidate_dcache_va_range
      Src: /src/xen/xen/common/grant_table.c:3585,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/common/grant_table.c:3587,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3593,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:3594,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/grant_table.c:3597,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:3598,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3599,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 2
    argNames:
    - cflush
    - cur_ref
    argTypes:
    - gnttab_cache_flush_t*
    - grant_ref_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3526
    functionDepth: 3
    functionLinenumber: 3526
    functionLinenumberEnd: 3602
    functionName: _cache_flush
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - clean_dcache_va_range
    - page_get_owner_and_reference
    - rcu_lock_current_domain
    - mfn_valid
    - PTR_ERR
    - IS_ERR_OR_NULL
    - grant_read_unlock
    - invalidate_dcache_va_range
    - grant_read_lock
    - maddr_to_mfn
    - grant_map_exists
    - put_page
    - rcu_unlock_domain
    - clean_and_invalidate_dcache_va_range
    - active_entry_release
    linkageType: ''
    returnType: int
    signature: int _cache_flush(const gnttab_cache_flush_t *cflush, grant_ref_t *cur_ref)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3605,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:3614,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3616,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/grant_table.c:3616,1
    - Dst: _cache_flush
      Src: /src/xen/xen/common/grant_table.c:3620,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:3626,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - cur_ref
    - count
    argTypes:
    - grant_ref_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3604
    functionDepth: 4
    functionLinenumber: 3604
    functionLinenumberEnd: 3636
    functionName: gnttab_cache_flush
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __copy_from_guest
    - guest_handle_add_offset
    - _cache_flush
    - hypercall_preempt_check
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    linkageType: ''
    returnType: long
    signature: "long gnttab_cache_flush(XEN_GUEST_HANDLE_PARAM(gnttab_cache_flush_t)
      uop,\n                      grant_ref_t *cur_ref,\n                      unsigned
      int count)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3646,1
    - Dst: pv_shim_grant_table_op
      Src: /src/xen/xen/common/grant_table.c:3647,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3661,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3662,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3664,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3664,1
    - Dst: gnttab_map_grant_ref
      Src: /src/xen/xen/common/grant_table.c:3666,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3669,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3670,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3677,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3678,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3680,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3680,1
    - Dst: gnttab_unmap_grant_ref
      Src: /src/xen/xen/common/grant_table.c:3682,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3685,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3686,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3693,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3694,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3696,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3696,1
    - Dst: gnttab_unmap_and_replace
      Src: /src/xen/xen/common/grant_table.c:3698,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3701,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3702,1
    - Dst: gnttab_setup_table
      Src: /src/xen/xen/common/grant_table.c:3708,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3709,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:3710,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3715,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3716,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3718,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3718,1
    - Dst: gnttab_transfer
      Src: /src/xen/xen/common/grant_table.c:3720,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3723,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3724,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3731,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3732,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3734,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3734,1
    - Dst: gnttab_copy
      Src: /src/xen/xen/common/grant_table.c:3736,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3739,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3740,1
    - Dst: gnttab_query_size
      Src: /src/xen/xen/common/grant_table.c:3746,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3747,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:3748,1
    - Dst: gnttab_set_version
      Src: /src/xen/xen/common/grant_table.c:3752,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3752,1
    - Dst: gnttab_get_status_frames
      Src: /src/xen/xen/common/grant_table.c:3756,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3757,1
    - Dst: gnttab_get_version
      Src: /src/xen/xen/common/grant_table.c:3761,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3761,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3766,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3767,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3769,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3769,1
    - Dst: gnttab_swap_grant_ref
      Src: /src/xen/xen/common/grant_table.c:3771,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3774,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3775,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/grant_table.c:3783,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3784,1
    - Dst: unlikely
      Src: /src/xen/xen/common/grant_table.c:3786,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/grant_table.c:3786,1
    - Dst: gnttab_cache_flush
      Src: /src/xen/xen/common/grant_table.c:3788,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/grant_table.c:3791,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/grant_table.c:3792,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:3810,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:3811,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/grant_table.c:3812,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 126
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3639
    functionDepth: 7
    functionLinenumber: 3639
    functionLinenumberEnd: 3817
    functionName: do_grant_table_op
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - guest_handle_add_offset
    - gnttab_get_status_frames
    - gnttab_unmap_grant_ref
    - gnttab_query_size
    - pv_shim_grant_table_op
    - hypercall_create_continuation
    - gnttab_cache_flush
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_cast
    - ASSERT
    - gnttab_transfer
    - gnttab_swap_grant_ref
    - gnttab_unmap_and_replace
    - gnttab_get_version
    - gnttab_setup_table
    - unlikely
    - guest_handle_okay
    - gnttab_set_version
    - gnttab_copy
    - gnttab_map_grant_ref
    linkageType: ''
    returnType: long
    signature: "long do_grant_table_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      uop, unsigned int count)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:3835,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/common/grant_table.c:3857,1
    - Dst: nr_maptrack_frames
      Src: /src/xen/xen/common/grant_table.c:3857,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/grant_table.c:3859,1
    - Dst: maptrack_entry
      Src: /src/xen/xen/common/grant_table.c:3865,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/grant_table.c:3871,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/grant_table.c:3874,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:3883,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:3885,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:3886,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:3890,1
    - Dst: is_iomem_page
      Src: /src/xen/xen/common/grant_table.c:3892,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:3892,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:3898,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:3901,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:3906,1
    - Dst: gnttab_release_host_mappings
      Src: /src/xen/xen/common/grant_table.c:3908,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:3909,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:3916,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/grant_table.c:3919,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/grant_table.c:3924,1
    - Dst: gnttab_release_host_mappings
      Src: /src/xen/xen/common/grant_table.c:3926,1
    - Dst: gnttab_host_mapping_get_page_type
      Src: /src/xen/xen/common/grant_table.c:3928,1
    - Dst: put_page_type
      Src: /src/xen/xen/common/grant_table.c:3929,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:3930,1
    - Dst: reduce_status_for_pin
      Src: /src/xen/xen/common/grant_table.c:3935,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3939,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:3940,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/grant_table.c:3942,1
    - Dst: radix_tree_delete
      Src: /src/xen/xen/common/grant_table.c:3954,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:3954,1
    - Dst: FREE_XENHEAP_PAGE
      Src: /src/xen/xen/common/grant_table.c:3958,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/common/grant_table.c:3960,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3823
    functionDepth: 2
    functionLinenumber: 3823
    functionLinenumberEnd: 3963
    functionName: gnttab_release_mappings
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - mfn_to_page
    - maptrack_entry
    - BUG_ON
    - rcu_unlock_domain
    - gnttab_release_host_mappings
    - radix_tree_delete
    - gdprintk
    - nr_maptrack_frames
    - rcu_lock_domain_by_id
    - mfn_x
    - is_iomem_page
    - put_page_type
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - hypercall_preempt_check
    - active_entry_acquire
    - gnttab_host_mapping_get_page_type
    - FREE_XENHEAP_PAGE
    - shared_entry_header
    - reduce_status_for_pin
    - put_page
    - radix_tree_destroy
    - active_entry_release
    linkageType: ''
    returnType: int
    signature: int gnttab_release_mappings(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:3975,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:3977,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:3980,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3983,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:3989,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/grant_table.c:3996,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:3998,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:3999,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4003,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:4006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3966
    functionDepth: 2
    functionLinenumber: 3966
    functionLinenumberEnd: 4009
    functionName: grant_table_warn_active_grants
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - nr_grant_entries
    - gfn_x
    - grant_read_lock
    - grant_read_unlock
    - printk
    - active_entry_acquire
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: void grant_table_warn_active_grants(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4024,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:4025,1
    - Dst: xvfree
      Src: /src/xen/xen/common/grant_table.c:4026,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:4028,1
    - Dst: xvfree
      Src: /src/xen/xen/common/grant_table.c:4029,1
    - Dst: nr_active_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4031,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:4032,1
    - Dst: xvfree
      Src: /src/xen/xen/common/grant_table.c:4033,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:4035,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/grant_table.c:4036,1
    - Dst: xvfree
      Src: /src/xen/xen/common/grant_table.c:4037,1
    - Dst: xvfree
      Src: /src/xen/xen/common/grant_table.c:4039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4040
      start: 4012
    functionDepth: 3
    functionLinenumber: 4012
    functionLinenumberEnd: 4040
    functionName: grant_table_destroy
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 1
    functionsReached:
    - nr_status_frames
    - nr_grant_frames
    - nr_active_grant_frames
    - xvfree
    - ASSERT
    - free_xenheap_page
    linkageType: ''
    returnType: void
    signature: "void grant_table_destroy(\n    struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/grant_table.c:4044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4047
      start: 4042
    functionDepth: 0
    functionLinenumber: 4042
    functionLinenumberEnd: 4047
    functionName: grant_table_init_vcpu
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: void grant_table_init_vcpu(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:4056,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:4060,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:4062,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:4064,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:4067,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:4071,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:4075,1
    - Dst: _gfn
      Src: /src/xen/xen/common/grant_table.c:4077,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:4084,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:4087,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:4090,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - gt
    - ref
    - gfn
    - status
    argTypes:
    - struct grant_table*
    - grant_ref_t
    - gfn_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4093
      start: 4050
    functionDepth: 2
    functionLinenumber: 4050
    functionLinenumberEnd: 4093
    functionName: mem_sharing_gref_to_gfn
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached:
    - shared_entry_v1
    - _gfn
    - nr_grant_entries
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - shared_entry_v2
    - evaluate_nospec
    linkageType: ''
    returnType: int
    signature: "int mem_sharing_gref_to_gfn(struct grant_table *gt, grant_ref_t ref,\n
      \                           gfn_t *gfn, uint16_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:4102,1
    - Dst: block_speculation
      Src: /src/xen/xen/common/grant_table.c:4105,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:4107,1
    - Dst: status_to_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4117,1
    - Dst: grant_to_status_frames
      Src: /src/xen/xen/common/grant_table.c:4119,1
    - Dst: gnttab_grow_table
      Src: /src/xen/xen/common/grant_table.c:4123,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:4126,1
    - Dst: _mfn
      Src: /src/xen/xen/common/grant_table.c:4131,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/grant_table.c:4131,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/grant_table.c:4132,1
    - Dst: nr_status_frames
      Src: /src/xen/xen/common/grant_table.c:4132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - d
    - idx
    - mfn
    argTypes:
    - struct domain*
    - unsigned int
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4097
    functionDepth: 4
    functionLinenumber: 4097
    functionLinenumberEnd: 4134
    functionName: gnttab_get_status_frame_mfn
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - nr_status_frames
    - status_to_grant_frames
    - array_index_nospec
    - virt_to_mfn
    - _mfn
    - grant_to_status_frames
    - ASSERT
    - block_speculation
    - gnttab_grow_table
    linkageType: ''
    returnType: int
    signature: "int gnttab_get_status_frame_mfn(struct domain *d,\n                                       unsigned
      int idx, mfn_t *mfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:4142,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4144,1
    - Dst: gnttab_grow_table
      Src: /src/xen/xen/common/grant_table.c:4154,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4157,1
    - Dst: _mfn
      Src: /src/xen/xen/common/grant_table.c:4162,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/grant_table.c:4162,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/grant_table.c:4163,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - d
    - idx
    - mfn
    argTypes:
    - struct domain*
    - unsigned int
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4165
      start: 4137
    functionDepth: 4
    functionLinenumber: 4137
    functionLinenumberEnd: 4165
    functionName: gnttab_get_shared_frame_mfn
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - nr_grant_frames
    - virt_to_mfn
    - _mfn
    - ASSERT
    - gnttab_grow_table
    linkageType: ''
    returnType: int
    signature: "int gnttab_get_shared_frame_mfn(struct domain *d,\n                                       unsigned
      int idx, mfn_t *mfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: grant_to_status_frames
      Src: /src/xen/xen/common/grant_table.c:4183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4167
    functionDepth: 2
    functionLinenumber: 4167
    functionLinenumberEnd: 4188
    functionName: gnttab_resource_max_frames
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - grant_to_status_frames
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int gnttab_resource_max_frames(const struct domain *d, unsigned
      int id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:4206,1
    - Dst: gnttab_get_shared_frame_mfn
      Src: /src/xen/xen/common/grant_table.c:4211,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/grant_table.c:4219,1
    - Dst: __builtin_types_compatible_p
      Src: /src/xen/xen/common/grant_table.c:4219,1
    - Dst: typeof
      Src: /src/xen/xen/common/grant_table.c:4220,1
    - Dst: gnttab_get_status_frame_mfn
      Src: /src/xen/xen/common/grant_table.c:4222,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:4233,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/grant_table.c:4242,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:4248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 5
    argNames:
    - d
    - id
    - frame
    - nr_frames
    - mfn_list
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    - xen_pfn_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4251
      start: 4190
    functionDepth: 5
    functionLinenumber: 4190
    functionLinenumberEnd: 4251
    functionName: gnttab_acquire_resource
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - __builtin_types_compatible_p
    - virt_to_mfn
    - gnttab_get_status_frame_mfn
    - grant_write_lock
    - typeof
    - BUILD_BUG_ON
    - grant_write_unlock
    - gnttab_get_shared_frame_mfn
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int gnttab_acquire_resource(\n    struct domain *d, unsigned int id,
      unsigned int frame,\n    unsigned int nr_frames, xen_pfn_t mfn_list[])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/common/grant_table.c:4259,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/grant_table.c:4261,1
    - Dst: grant_write_lock
      Src: /src/xen/xen/common/grant_table.c:4265,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/grant_table.c:4267,1
    - Dst: gnttab_get_status_frame_mfn
      Src: /src/xen/xen/common/grant_table.c:4272,1
    - Dst: gnttab_get_shared_frame_mfn
      Src: /src/xen/xen/common/grant_table.c:4275,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/grant_table.c:4279,1
    - Dst: get_page
      Src: /src/xen/xen/common/grant_table.c:4285,1
    - Dst: gnttab_set_frame_gfn
      Src: /src/xen/xen/common/grant_table.c:4287,1
    - Dst: put_page
      Src: /src/xen/xen/common/grant_table.c:4288,1
    - Dst: grant_write_unlock
      Src: /src/xen/xen/common/grant_table.c:4291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - d
    - idx
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - unsigned long
    - gfn_t
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4294
      start: 4253
    functionDepth: 5
    functionLinenumber: 4253
    functionLinenumberEnd: 4294
    functionName: gnttab_map_frame
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 2
    functionsReached:
    - gnttab_get_status_frame_mfn
    - mfn_to_page
    - grant_write_lock
    - get_page
    - gnttab_set_frame_gfn
    - grant_write_unlock
    - gfn_eq
    - put_page
    - gnttab_get_shared_frame_mfn
    - ASSERT_UNREACHABLE
    - evaluate_nospec
    linkageType: ''
    returnType: int
    signature: int gnttab_map_frame(struct domain *d, unsigned long idx, gfn_t gfn,
      mfn_t *mfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4303,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4304,1
    - Dst: grant_read_lock
      Src: /src/xen/xen/common/grant_table.c:4306,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4308,1
    - Dst: nr_grant_frames
      Src: /src/xen/xen/common/grant_table.c:4311,1
    - Dst: nr_maptrack_frames
      Src: /src/xen/xen/common/grant_table.c:4312,1
    - Dst: nr_grant_entries
      Src: /src/xen/xen/common/grant_table.c:4314,1
    - Dst: active_entry_acquire
      Src: /src/xen/xen/common/grant_table.c:4322,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:4325,1
    - Dst: shared_entry_header
      Src: /src/xen/xen/common/grant_table.c:4329,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:4334,1
    - Dst: shared_entry_v2
      Src: /src/xen/xen/common/grant_table.c:4338,1
    - Dst: status_entry
      Src: /src/xen/xen/common/grant_table.c:4339,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4345,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/grant_table.c:4346,1
    - Dst: active_entry_release
      Src: /src/xen/xen/common/grant_table.c:4348,1
    - Dst: grant_read_unlock
      Src: /src/xen/xen/common/grant_table.c:4351,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - rd
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4296
    functionDepth: 2
    functionLinenumber: 4296
    functionLinenumberEnd: 4355
    functionName: gnttab_usage_print
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - shared_entry_v1
    - nr_grant_frames
    - nr_maptrack_frames
    - shared_entry_header
    - mfn_x
    - nr_grant_entries
    - grant_read_unlock
    - grant_read_lock
    - status_entry
    - printk
    - active_entry_acquire
    - shared_entry_v2
    - active_entry_release
    linkageType: ''
    returnType: void
    signature: void gnttab_usage_print(struct domain *rd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:4363,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/grant_table.c:4364,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:4365,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:4366,1
    - Dst: shared_entry_v1
      Src: /src/xen/xen/common/grant_table.c:4367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - d
    - idx
    - be_domid
    - frame
    argTypes:
    - struct domain*
    - unsigned int
    - domid_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4358
    functionDepth: 1
    functionLinenumber: 4358
    functionLinenumberEnd: 4368
    functionName: gnttab_seed_entry
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - shared_entry_v1
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void gnttab_seed_entry(const struct domain *d, unsigned int idx,\n
      \                             domid_t be_domid, uint32_t frame)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4375,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/grant_table.c:4377,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/grant_table.c:4379,1
    - Dst: gnttab_usage_print
      Src: /src/xen/xen/common/grant_table.c:4380,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/grant_table.c:4382,1
    - Dst: printk
      Src: /src/xen/xen/common/grant_table.c:4384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4385
      start: 4371
    functionDepth: 3
    functionLinenumber: 4371
    functionLinenumberEnd: 4385
    functionName: gnttab_usage_print_all
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - for_each_domain
    - gnttab_usage_print
    - printk
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void gnttab_usage_print_all(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/grant_table.c:4389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4392
      start: 4387
    functionDepth: 1
    functionLinenumber: 4387
    functionLinenumberEnd: 4392
    functionName: gnttab_usage_init
    functionSourceFile: /src/xen/xen/common/grant_table.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int gnttab_usage_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_2l.c:32,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:32,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_2l.c:35,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:35,1
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_2l.c:36,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:36,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/event_2l.c:37,1
    - Dst: vcpu_mark_events_pending
      Src: /src/xen/xen/common/event_2l.c:39,1
    - Dst: evtchn_check_pollers
      Src: /src/xen/xen/common/event_2l.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - v
    - evtchn
    argTypes:
    - struct vcpu*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: evtchn_2l_set_pending
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - guest_test_bit
    - BITS_PER_EVTCHN_WORD
    - shared_info
    - evtchn_check_pollers
    - guest_test_and_set_bit
    - vcpu_mark_events_pending
    linkageType: ''
    returnType: void
    signature: "void evtchn_2l_set_pending(\n    struct vcpu *v, struct evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_clear_bit
      Src: /src/xen/xen/common/event_2l.c:48,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: evtchn_2l_clear_pending
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - shared_info
    - guest_clear_bit
    linkageType: ''
    returnType: void
    signature: "void evtchn_2l_clear_pending(\n    struct domain *d, struct evtchn
      *evtchn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_test_and_clear_bit
      Src: /src/xen/xen/common/event_2l.c:61,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:61,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_2l.c:62,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:62,1
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_2l.c:63,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:63,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/event_2l.c:64,1
    - Dst: vcpu_mark_events_pending
      Src: /src/xen/xen/common/event_2l.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: evtchn_2l_unmask
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - guest_test_bit
    - guest_test_and_clear_bit
    - BITS_PER_EVTCHN_WORD
    - shared_info
    - guest_test_and_set_bit
    - vcpu_mark_events_pending
    linkageType: ''
    returnType: void
    signature: "void evtchn_2l_unmask(\n    struct domain *d, struct evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:74,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:74,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_2l.c:76,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_2l.c:78,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: evtchn_2l_is_pending
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - BITS_PER_EVTCHN_WORD
    - ASSERT
    - guest_test_bit
    - shared_info
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_2l_is_pending(\n    const struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:85,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:85,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_2l.c:87,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_2l.c:89,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_2l.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: evtchn_2l_is_masked
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - BITS_PER_EVTCHN_WORD
    - ASSERT
    - guest_test_bit
    - shared_info
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_2l_is_masked(\n    const struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/event_2l.c:97,1
    - Dst: test_bit
      Src: /src/xen/xen/common/event_2l.c:97,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_2l.c:97,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/event_2l.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: evtchn_2l_print_state
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached:
    - BITS_PER_EVTCHN_WORD
    - test_bit
    - vcpu_info
    - printk
    linkageType: ''
    returnType: void
    signature: "void evtchn_2l_print_state(\n    struct domain *d, const struct evtchn
      *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: evtchn_2l_init
    functionSourceFile: /src/xen/xen/common/event_2l.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evtchn_2l_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/common/vsprintf.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: skip_atoi
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int skip_atoi(const char **s)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vsprintf.c:54,1
    - Dst: do_div
      Src: /src/xen/xen/common/vsprintf.c:88,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 7
    argNames:
    - buf
    - end
    - num
    - base
    - size
    - precision
    - type
    argTypes:
    - char*
    - char*
    - unsigned long long
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 137
    functionName: number
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 24
    functionsReached:
    - do_div
    - ASSERT
    linkageType: ''
    returnType: char
    signature: "char *number(\n    char *buf, const char *end, unsigned long long
      num,\n    int base, int size, int precision, int type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/vsprintf.c:142,1
    - Dst: strnlen
      Src: /src/xen/xen/common/vsprintf.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - str
    - end
    - s
    - field_width
    - precision
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: string
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 274
    functionsReached:
    - strnlen
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *string(char *str, const char *end, const char *s,\n                    int
      field_width, int precision, int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_first_bit
      Src: /src/xen/xen/common/vsprintf.c:174,1
    - Dst: find_next_bit
      Src: /src/xen/xen/common/vsprintf.c:178,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:191,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - str
    - end
    - bitmap
    - nr_bits
    argTypes:
    - char*
    - char*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 205
    functionName: print_bitmap_list
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - find_next_bit
    - number
    - find_first_bit
    linkageType: ''
    returnType: char
    signature: "char *print_bitmap_list(char *str, const char *end,\n                               const
      unsigned long *bitmap,\n                               unsigned int nr_bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/vsprintf.c:226,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:241,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/vsprintf.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - str
    - end
    - bitmap
    - nr_bits
    argTypes:
    - char*
    - char*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 247
    functionName: print_bitmap_string
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    - ROUNDUP
    - number
    linkageType: ''
    returnType: char
    signature: "char *print_bitmap_string(char *str, const char *end,\n                                 const
      unsigned long *bitmap,\n                                 unsigned int nr_bits)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/vsprintf.c:255,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:256,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:275,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - str
    - end
    - d
    argTypes:
    - char*
    - char*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 278
    functionName: print_domain
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - string
    - number
    - unlikely
    linkageType: ''
    returnType: char
    signature: char *print_domain(char *str, const char *end, const struct domain
      *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/vsprintf.c:284,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:285,1
    - Dst: print_domain
      Src: /src/xen/xen/common/vsprintf.c:287,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - str
    - end
    - v
    argTypes:
    - char*
    - char*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 293
    functionName: print_vcpu
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - print_domain
    - string
    - number
    - unlikely
    linkageType: ''
    returnType: char
    signature: char *print_vcpu(char *str, const char *end, const struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:297,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:300,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:303,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - end
    - sbdf
    argTypes:
    - char*
    - char*
    - pci_sbdf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: print_pci_addr
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - number
    linkageType: ''
    returnType: char
    signature: char *print_pci_addr(char *str, const char *end, const pci_sbdf_t *sbdf)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: print_bitmap_list
      Src: /src/xen/xen/common/vsprintf.c:328,1
    - Dst: print_bitmap_string
      Src: /src/xen/xen/common/vsprintf.c:331,1
    - Dst: print_domain
      Src: /src/xen/xen/common/vsprintf.c:335,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:377,1
    - Dst: print_pci_addr
      Src: /src/xen/xen/common/vsprintf.c:395,1
    - Dst: symbols_lookup
      Src: /src/xen/xen/common/vsprintf.c:406,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:413,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:418,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:422,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:431,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:432,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:433,1
    - Dst: print_vcpu
      Src: /src/xen/xen/common/vsprintf.c:441,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:450,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 7
    argNames:
    - str
    - end
    - fmt_ptr
    - arg
    - field_width
    - precision
    - flags
    argTypes:
    - char*
    - char*
    - char**
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 452
    functionName: pointer
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 49
    functionsReached:
    - print_vcpu
    - print_domain
    - string
    - print_bitmap_string
    - number
    - print_pci_addr
    - symbols_lookup
    - print_bitmap_list
    linkageType: ''
    returnType: char
    signature: "char *pointer(char *str, const char *end, const char **fmt_ptr,\n
      \                    const void *arg, int field_width, int precision,\n                     int
      flags)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/vsprintf.c:489,1
    - Dst: isdigit
      Src: /src/xen/xen/common/vsprintf.c:521,1
    - Dst: skip_atoi
      Src: /src/xen/xen/common/vsprintf.c:522,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:526,1
    - Dst: isdigit
      Src: /src/xen/xen/common/vsprintf.c:537,1
    - Dst: skip_atoi
      Src: /src/xen/xen/common/vsprintf.c:538,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:542,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:572,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:584,1
    - Dst: string
      Src: /src/xen/xen/common/vsprintf.c:588,1
    - Dst: pointer
      Src: /src/xen/xen/common/vsprintf.c:593,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:593,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:600,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:603,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:606,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:650,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:652,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:656,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:658,1
    - Dst: va_arg
      Src: /src/xen/xen/common/vsprintf.c:662,1
    - Dst: number
      Src: /src/xen/xen/common/vsprintf.c:667,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 172
    argCount: 4
    argNames:
    - buf
    - size
    - fmt
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 472
    functionDepth: 5
    functionLinenumber: 472
    functionLinenumberEnd: 682
    functionName: vsnprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 22
    functionsReached:
    - string
    - number
    - va_arg
    - pointer
    - BUG_ON
    - isdigit
    - skip_atoi
    linkageType: ''
    returnType: int
    signature: int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprintf
      Src: /src/xen/xen/common/vsprintf.c:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - size
    - fmt
    - args
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: vscnprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/common/vsprintf.c:729,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/vsprintf.c:730,1
    - Dst: va_end
      Src: /src/xen/xen/common/vsprintf.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - size
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 724
    functionDepth: 6
    functionLinenumber: 724
    functionLinenumberEnd: 733
    functionName: snprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 144
    functionsReached:
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int snprintf(char * buf, size_t size, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/common/vsprintf.c:754,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/vsprintf.c:755,1
    - Dst: va_end
      Src: /src/xen/xen/common/vsprintf.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - size
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 6
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: scnprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 0
    functionsReached:
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int scnprintf(char * buf, size_t size, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/xen/xen/common/vsprintf.c:781,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/vsprintf.c:782,1
    - Dst: va_end
      Src: /src/xen/xen/common/vsprintf.c:783,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/vsprintf.c:785,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/vsprintf.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - bufp
    - fmt
    - args
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 775
    functionDepth: 6
    functionLinenumber: 775
    functionLinenumberEnd: 793
    functionName: xvasprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - va_copy
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int xvasprintf(char **bufp, const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/common/vsprintf.c:811,1
    - Dst: xvasprintf
      Src: /src/xen/xen/common/vsprintf.c:812,1
    - Dst: va_end
      Src: /src/xen/xen/common/vsprintf.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bufp
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 816
    functionName: xasprintf
    functionSourceFile: /src/xen/xen/common/vsprintf.c
    functionUses: 10
    functionsReached:
    - va_start
    - va_end
    - xvasprintf
    linkageType: ''
    returnType: int
    signature: int xasprintf(char **bufp, const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/guestcopy.c:15,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/guestcopy.c:18,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/guestcopy.c:20,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/guestcopy.c:22,1
    - Dst: xfree
      Src: /src/xen/xen/common/guestcopy.c:24,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/guestcopy.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - size
    - max_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 30
    functionName: safe_copy_string_from_guest
    functionSourceFile: /src/xen/xen/common/guestcopy.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - ERR_PTR
    - xfree
    - copy_from_guest
    linkageType: ''
    returnType: char
    signature: "char *safe_copy_string_from_guest(XEN_GUEST_HANDLE(char) u_buf,\n
      \                                 size_t size, size_t max_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/common/warning.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - warning
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: warning_add
    functionSourceFile: /src/xen/xen/common/warning.c
    functionUses: 9
    functionsReached:
    - panic
    linkageType: ''
    returnType: void
    signature: void warning_add(const char *warning)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/warning.c:27,1
    - Dst: printk
      Src: /src/xen/xen/common/warning.c:31,1
    - Dst: printk
      Src: /src/xen/xen/common/warning.c:32,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/warning.c:33,1
    - Dst: printk
      Src: /src/xen/xen/common/warning.c:38,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/warning.c:41,1
    - Dst: mdelay
      Src: /src/xen/xen/common/warning.c:42,1
    - Dst: printk
      Src: /src/xen/xen/common/warning.c:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 46
    functionName: warning_print
    functionSourceFile: /src/xen/xen/common/warning.c
    functionUses: 0
    functionsReached:
    - process_pending_softirqs
    - mdelay
    - printk
    linkageType: ''
    returnType: void
    signature: void warning_print(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: irq_desc_initialized
      Src: /src/xen/xen/common/irq.c:23,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/irq.c:26,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/irq.c:31,1
    - Dst: cpumask_setall
      Src: /src/xen/xen/common/irq.c:32,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/irq.c:33,1
    - Dst: arch_init_one_irq_desc
      Src: /src/xen/xen/common/irq.c:35,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/irq.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: init_one_irq_desc
    functionSourceFile: /src/xen/xen/common/irq.c
    functionUses: 7
    functionsReached:
    - free_cpumask_var
    - irq_desc_initialized
    - alloc_cpumask_var
    - cpumask_setall
    - INIT_LIST_HEAD
    - arch_init_one_irq_desc
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int init_one_irq_desc(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - cpl
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: no_action
    functionSourceFile: /src/xen/xen/common/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void no_action(int cpl, void *dev_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: irq_actor_none
    functionSourceFile: /src/xen/xen/common/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void irq_actor_none(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: irq_startup_none
    functionSourceFile: /src/xen/xen/common/irq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int irq_startup_none(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: MASK_DECLARE_1
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_DECLARE_1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MASK_DECLARE_2
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_DECLARE_2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: MASK_DECLARE_4
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_DECLARE_4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: MASK_DECLARE_8
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASK_DECLARE_8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_trylock
      Src: /src/xen/xen/common/cpu.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: get_cpu_maps
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 5
    functionsReached:
    - read_trylock
    linkageType: ''
    returnType: bool
    signature: bool get_cpu_maps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_unlock
      Src: /src/xen/xen/common/cpu.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: put_cpu_maps
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 5
    functionsReached:
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void put_cpu_maps(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_barrier
      Src: /src/xen/xen/common/cpu.c:63,1
    - Dst: write_lock
      Src: /src/xen/xen/common/cpu.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: cpu_hotplug_begin
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - rcu_barrier
    - write_lock
    linkageType: ''
    returnType: void
    signature: void cpu_hotplug_begin(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_unlock
      Src: /src/xen/xen/common/cpu.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: cpu_hotplug_done
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - write_unlock
    linkageType: ''
    returnType: void
    signature: void cpu_hotplug_done(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rw_is_write_locked_by_me
      Src: /src/xen/xen/common/cpu.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: cpu_in_hotplug_context
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - rw_is_write_locked_by_me
    linkageType: ''
    returnType: bool
    signature: bool cpu_in_hotplug_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/cpu.c:81,1
    - Dst: notifier_chain_register
      Src: /src/xen/xen/common/cpu.c:82,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/cpu.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - nb
    argTypes:
    - struct notifier_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: register_cpu_notifier
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 18
    functionsReached:
    - write_lock
    - notifier_chain_register
    - write_unlock
    linkageType: ''
    returnType: void
    signature: void register_cpu_notifier(struct notifier_block *nb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:90,1
    - Dst: notifier_to_errno
      Src: /src/xen/xen/common/cpu.c:91,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - cpu
    - action
    - nb
    - nofail
    argTypes:
    - unsigned int
    - unsigned long
    - struct notifier_block**
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: cpu_notifier_call_chain
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached:
    - notifier_call_chain
    - notifier_to_errno
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: "int cpu_notifier_call_chain(unsigned int cpu, unsigned long action,\n
      \                                  struct notifier_block **nb, bool nofail)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:100,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/cpu.c:100,1
    - Dst: __cpu_disable
      Src: /src/xen/xen/common/cpu.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: _take_cpu_down
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - __cpu_disable
    - cpu_notifier_call_chain
    linkageType: ''
    returnType: void
    signature: void _take_cpu_down(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _take_cpu_down
      Src: /src/xen/xen/common/cpu.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: take_cpu_down
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - _take_cpu_down
    linkageType: ''
    returnType: int
    signature: int take_cpu_down(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_hotplug_begin
      Src: /src/xen/xen/common/cpu.c:115,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/cpu.c:122,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:125,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/common/cpu.c:130,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/cpu.c:130,1
    - Dst: stop_machine_run
      Src: /src/xen/xen/common/cpu.c:131,1
    - Dst: __cpu_die
      Src: /src/xen/xen/common/cpu.c:134,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/cpu.c:135,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:136,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:138,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/cpu.c:140,1
    - Dst: cpu_hotplug_done
      Src: /src/xen/xen/common/cpu.c:141,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:145,1
    - Dst: cpu_hotplug_done
      Src: /src/xen/xen/common/cpu.c:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 149
    functionName: cpu_down
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 9
    functionsReached:
    - cpu_online
    - on_selected_cpus
    - cpu_notifier_call_chain
    - cpu_hotplug_begin
    - send_global_virq
    - BUG_ON
    - cpu_hotplug_done
    - cpumask_of
    - __cpu_die
    - stop_machine_run
    linkageType: ''
    returnType: int
    signature: int cpu_down(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_hotplug_begin
      Src: /src/xen/xen/common/cpu.c:156,1
    - Dst: cpu_present
      Src: /src/xen/xen/common/cpu.c:159,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/cpu.c:163,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:166,1
    - Dst: __cpu_up
      Src: /src/xen/xen/common/cpu.c:170,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:174,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/cpu.c:176,1
    - Dst: cpu_hotplug_done
      Src: /src/xen/xen/common/cpu.c:178,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:182,1
    - Dst: cpu_hotplug_done
      Src: /src/xen/xen/common/cpu.c:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 186
    functionName: cpu_up
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 15
    functionsReached:
    - cpu_online
    - cpu_notifier_call_chain
    - cpu_hotplug_begin
    - send_global_virq
    - cpu_hotplug_done
    - cpu_present
    - __cpu_up
    linkageType: ''
    returnType: int
    signature: int cpu_up(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: notify_cpu_starting
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 2
    functionsReached:
    - cpu_notifier_call_chain
    linkageType: ''
    returnType: void
    signature: void notify_cpu_starting(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:199,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/cpu.c:199,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/cpu.c:201,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:203,1
    - Dst: cpu_down
      Src: /src/xen/xen/common/cpu.c:210,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:212,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:213,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/cpu.c:217,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:220,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/cpu.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: disable_nonboot_cpus
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - cpumask_clear
    - smp_processor_id
    - BUG_ON
    - num_online_cpus
    - printk
    - cpu_down
    - __cpumask_set_cpu
    linkageType: ''
    returnType: int
    signature: int disable_nonboot_cpus(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_down
      Src: /src/xen/xen/common/cpu.c:210,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:212,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:213,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/cpu.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 7
    functionsReached:
    - BUG_ON
    - cpu_down
    - __cpumask_set_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:228,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/cpu.c:232,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/cpu.c:233,1
    - Dst: cpu_up
      Src: /src/xen/xen/common/cpu.c:235,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:237,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:238,1
    - Dst: __cpumask_test_and_clear_cpu
      Src: /src/xen/xen/common/cpu.c:240,1
    - Dst: cpu_down
      Src: /src/xen/xen/common/cpu.c:241,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:242,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/cpu.c:245,1
    - Dst: cpu_notifier_call_chain
      Src: /src/xen/xen/common/cpu.c:246,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/cpu.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 249
    functionName: enable_nonboot_cpus
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 1
    functionsReached:
    - cpu_up
    - cpumask_clear
    - for_each_cpu
    - smp_processor_id
    - cpu_notifier_call_chain
    - BUG_ON
    - __cpumask_test_and_clear_cpu
    - printk
    - cpu_down
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void enable_nonboot_cpus(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/cpu.c:232,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/cpu.c:233,1
    - Dst: cpu_up
      Src: /src/xen/xen/common/cpu.c:235,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:237,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/cpu.c:238,1
    - Dst: __cpumask_test_and_clear_cpu
      Src: /src/xen/xen/common/cpu.c:240,1
    - Dst: cpu_down
      Src: /src/xen/xen/common/cpu.c:241,1
    - Dst: printk
      Src: /src/xen/xen/common/cpu.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: for_each_present_cpu
    functionSourceFile: /src/xen/xen/common/cpu.c
    functionUses: 2
    functionsReached:
    - cpu_up
    - smp_processor_id
    - BUG_ON
    - __cpumask_test_and_clear_cpu
    - printk
    - cpu_down
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_present_cpu ( cpu )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:26,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:27,1
    - Dst: in_irq
      Src: /src/xen/xen/common/pmap.c:27,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/common/pmap.c:29,1
    - Dst: panic
      Src: /src/xen/xen/common/pmap.c:31,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/pmap.c:33,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:36,1
    - Dst: arch_pmap_map
      Src: /src/xen/xen/common/pmap.c:45,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/common/pmap.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: pmap_map
    functionSourceFile: /src/xen/xen/common/pmap.c
    functionUses: 3
    functionsReached:
    - __set_bit
    - panic
    - find_first_zero_bit
    - fix_to_virt
    - ASSERT
    - arch_pmap_map
    - in_irq
    linkageType: ''
    returnType: void
    signature: void *__init pmap_map(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_fix
      Src: /src/xen/xen/common/pmap.c:53,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:55,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:56,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pmap.c:57,1
    - Dst: in_irq
      Src: /src/xen/xen/common/pmap.c:57,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/pmap.c:61,1
    - Dst: arch_pmap_unmap
      Src: /src/xen/xen/common/pmap.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: pmap_unmap
    functionSourceFile: /src/xen/xen/common/pmap.c
    functionUses: 3
    functionsReached:
    - __clear_bit
    - ASSERT
    - arch_pmap_unmap
    - in_irq
    - virt_to_fix
    linkageType: ''
    returnType: void
    signature: void pmap_unmap(const void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/wait.c:44,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/wait.c:49,1
    - Dst: xfree
      Src: /src/xen/xen/common/wait.c:52,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/wait.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: init_waitqueue_vcpu
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - alloc_xenheap_page
    - xfree
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int init_waitqueue_vcpu(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/wait.c:73,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:73,1
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/wait.c:75,1
    - Dst: xfree
      Src: /src/xen/xen/common/wait.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: destroy_waitqueue_vcpu
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - free_xenheap_page
    - list_empty
    - xfree
    linkageType: ''
    returnType: void
    signature: void destroy_waitqueue_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/wait.c:84,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/wait.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wq
    argTypes:
    - struct waitqueue_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: init_waitqueue_head
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void init_waitqueue_head(struct waitqueue_head *wq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wake_up_nr
      Src: /src/xen/xen/common/wait.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wq
    argTypes:
    - struct waitqueue_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: destroy_waitqueue_head
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - wake_up_nr
    linkageType: ''
    returnType: void
    signature: void destroy_waitqueue_head(struct waitqueue_head *wq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/wait.c:97,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:99,1
    - Dst: list_entry
      Src: /src/xen/xen/common/wait.c:101,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/wait.c:102,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/wait.c:103,1
    - Dst: put_domain
      Src: /src/xen/xen/common/wait.c:104,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/wait.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - wq
    - nr
    argTypes:
    - struct waitqueue_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: wake_up_nr
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - list_del_init
    - vcpu_unpause
    - list_entry
    - spin_lock
    - put_domain
    - list_empty
    linkageType: ''
    returnType: void
    signature: void wake_up_nr(struct waitqueue_head *wq, unsigned int nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_info
      Src: /src/xen/xen/common/wait.c:114,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/wait.c:123,1
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/wait.c:126,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/wait.c:126,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/wait.c:128,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/wait.c:129,1
    - Dst: do_softirq
      Src: /src/xen/xen/common/wait.c:132,1
    - Dst: unlikely
      Src: /src/xen/xen/common/wait.c:169,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/wait.c:171,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/wait.c:172,1
    - Dst: do_softirq
      Src: /src/xen/xen/common/wait.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - wqv
    argTypes:
    - struct waitqueue_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 178
    functionName: __prepare_to_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - get_cpu_info
    - gdprintk
    - smp_processor_id
    - do_softirq
    - ASSERT
    - unlikely
    - domain_crash
    - vcpu_temporary_affinity
    linkageType: ''
    returnType: void
    signature: void __prepare_to_wait(struct waitqueue_vcpu *wqv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/wait.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wqv
    argTypes:
    - struct waitqueue_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: __finish_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached:
    - vcpu_temporary_affinity
    linkageType: ''
    returnType: void
    signature: void __finish_wait(struct waitqueue_vcpu *wqv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/wait.c:191,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:191,1
    - Dst: likely
      Src: /src/xen/xen/common/wait.c:193,1
    - Dst: unlikely
      Src: /src/xen/xen/common/wait.c:197,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/wait.c:199,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/wait.c:200,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/wait.c:203,1
    - Dst: do_softirq
      Src: /src/xen/xen/common/wait.c:205,1
    - Dst: get_cpu_info
      Src: /src/xen/xen/common/wait.c:247,1
    - Dst: unreachable
      Src: /src/xen/xen/common/wait.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 250
    functionName: check_wakeup_from_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 1
    functionsReached:
    - unreachable
    - get_cpu_info
    - gdprintk
    - raise_softirq
    - likely
    - do_softirq
    - ASSERT
    - unlikely
    - domain_crash
    - list_empty
    linkageType: ''
    returnType: void
    signature: void check_wakeup_from_wait(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - wqv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: __prepare_to_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __prepare_to_wait(wqv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - wqv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: __finish_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __finish_wait(wqv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NOT_IN_ATOMIC
      Src: /src/xen/xen/common/wait.c:264,1
    - Dst: __prepare_to_wait
      Src: /src/xen/xen/common/wait.c:265,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/wait.c:267,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:267,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/wait.c:268,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/wait.c:269,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/wait.c:270,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/common/wait.c:271,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/wait.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - wq
    argTypes:
    - struct waitqueue_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: prepare_to_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 1
    functionsReached:
    - get_knownalive_domain
    - spin_unlock
    - spin_lock
    - ASSERT
    - ASSERT_NOT_IN_ATOMIC
    - vcpu_pause_nosync
    - __prepare_to_wait
    - list_empty
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void prepare_to_wait(struct waitqueue_head *wq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __finish_wait
      Src: /src/xen/xen/common/wait.c:280,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:282,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/wait.c:285,1
    - Dst: list_empty
      Src: /src/xen/xen/common/wait.c:286,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/wait.c:288,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/wait.c:289,1
    - Dst: put_domain
      Src: /src/xen/xen/common/wait.c:290,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/wait.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - wq
    argTypes:
    - struct waitqueue_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: finish_wait
    functionSourceFile: /src/xen/xen/common/wait.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - list_del_init
    - vcpu_unpause
    - __finish_wait
    - spin_lock
    - put_domain
    - list_empty
    linkageType: ''
    returnType: void
    signature: void finish_wait(struct waitqueue_head *wq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_keypress
      Src: /src/xen/xen/common/keyhandler.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: keypress_action
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - handle_keypress
    linkageType: ''
    returnType: void
    signature: void keypress_action(void *unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:87,1
    - Dst: in_irq
      Src: /src/xen/xen/common/keyhandler.c:90,1
    - Dst: console_start_log_everything
      Src: /src/xen/xen/common/keyhandler.c:92,1
    - Dst: struct keyhandler*::irq_fn
      Src: /src/xen/xen/common/keyhandler.c:93,1
    - Dst: struct keyhandler*::fn
      Src: /src/xen/xen/common/keyhandler.c:93,1
    - Dst: console_end_log_everything
      Src: /src/xen/xen/common/keyhandler.c:94,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/common/keyhandler.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - key
    - need_context
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: handle_keypress
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 1
    functionsReached:
    - tasklet_schedule
    - console_end_log_everything
    - console_start_log_everything
    - ARRAY_SIZE
    - struct keyhandler*::irq_fn
    - in_irq
    - struct keyhandler*::fn
    linkageType: ''
    returnType: void
    signature: void handle_keypress(unsigned char key, bool need_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/keyhandler.c:106,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:106,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/keyhandler.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - key
    - fn
    - desc
    - diagnostic
    argTypes:
    - unsigned char
    - keyhandler_fn_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: register_keyhandler
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 13
    functionsReached:
    - BUG_ON
    - ASSERT
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void register_keyhandler(unsigned char key, keyhandler_fn_t *fn,\n
      \                               const char *desc, bool diagnostic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/keyhandler.c:118,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:118,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/keyhandler.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - key
    - fn
    - desc
    - diagnostic
    argTypes:
    - unsigned char
    - irq_keyhandler_fn_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 125
    functionName: register_irq_keyhandler
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - ASSERT
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: "void register_irq_keyhandler(unsigned char key, irq_keyhandler_fn_t
      *fn,\n                                    const char *desc, bool diagnostic)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:131,1
    - Dst: print_version
      Src: /src/xen/xen/common/keyhandler.c:133,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:135,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:137,1
    - Dst: isprint
      Src: /src/xen/xen/common/keyhandler.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: show_handlers
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - isprint
    - ARRAY_SIZE
    - printk
    - print_version
    linkageType: ''
    returnType: void
    signature: void show_handlers(unsigned char key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:145,1
    - Dst: guest_mode
      Src: /src/xen/xen/common/keyhandler.c:147,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:149,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/keyhandler.c:150,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/keyhandler.c:153,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:155,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:156,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/keyhandler.c:157,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/common/keyhandler.c:157,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:158,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/keyhandler.c:161,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/keyhandler.c:165,1
    - Dst: smp_send_state_dump
      Src: /src/xen/xen/common/keyhandler.c:168,1
    - Dst: console_end_sync
      Src: /src/xen/xen/common/keyhandler.c:172,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/common/keyhandler.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 174
    functionName: dump_execstate
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 2
    functionsReached:
    - guest_cpu_user_regs
    - show_execution_state
    - is_idle_vcpu
    - smp_processor_id
    - console_end_sync
    - cpumask_cycle
    - guest_mode
    - smp_send_state_dump
    - printk
    - cpumask_clear_cpu
    - watchdog_enable
    linkageType: ''
    returnType: void
    signature: void dump_execstate(const struct cpu_user_regs *regs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/keyhandler.c:182,1
    - Dst: console_start_sync
      Src: /src/xen/xen/common/keyhandler.c:183,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:185,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/keyhandler.c:187,1
    - Dst: dump_execstate
      Src: /src/xen/xen/common/keyhandler.c:191,1
    - Dst: get_irq_regs
      Src: /src/xen/xen/common/keyhandler.c:191,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/common/keyhandler.c:191,1
    - Dst: run_in_exception_handler
      Src: /src/xen/xen/common/keyhandler.c:193,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/keyhandler.c:200,1
    - Dst: smp_send_state_dump
      Src: /src/xen/xen/common/keyhandler.c:202,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/keyhandler.c:203,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/keyhandler.c:204,1
    - Dst: console_end_sync
      Src: /src/xen/xen/common/keyhandler.c:207,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/common/keyhandler.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - key
    - need_context
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 176
    functionDepth: 4
    functionLinenumber: 176
    functionLinenumberEnd: 209
    functionName: dump_registers
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - guest_cpu_user_regs
    - for_each_cpu
    - console_start_sync
    - cpu_relax
    - cpumask_copy
    - run_in_exception_handler
    - console_end_sync
    - get_irq_regs
    - smp_send_state_dump
    - printk
    - watchdog_disable
    - dump_execstate
    - watchdog_enable
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: "void dump_registers(\n    unsigned char key, bool need_context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_show_execution_state
      Src: /src/xen/xen/common/keyhandler.c:219,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/keyhandler.c:222,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:222,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/keyhandler.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: dump_hwdom_action
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - smp_processor_id
    - vcpu_show_execution_state
    - tasklet_schedule_on_cpu
    linkageType: ''
    returnType: void
    signature: void dump_hwdom_action(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:238,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/keyhandler.c:242,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:242,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/common/keyhandler.c:244,1
    - Dst: tasklet_init
      Src: /src/xen/xen/common/keyhandler.c:245,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/keyhandler.c:246,1
    - Dst: vcpu_show_execution_state
      Src: /src/xen/xen/common/keyhandler.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: dump_hwdom_registers
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - tasklet_kill
    - tasklet_schedule_on_cpu
    - smp_processor_id
    - tasklet_init
    - vcpu_show_execution_state
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_hwdom_registers(unsigned char key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: softirq_pending
      Src: /src/xen/xen/common/keyhandler.c:242,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:242,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/common/keyhandler.c:244,1
    - Dst: tasklet_init
      Src: /src/xen/xen/common/keyhandler.c:245,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/keyhandler.c:246,1
    - Dst: vcpu_show_execution_state
      Src: /src/xen/xen/common/keyhandler.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 38
    functionsReached:
    - softirq_pending
    - tasklet_kill
    - tasklet_schedule_on_cpu
    - smp_processor_id
    - tasklet_init
    - vcpu_show_execution_state
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( hardware_domain, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:255,1
    - Dst: machine_restart
      Src: /src/xen/xen/common/keyhandler.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - unused
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: reboot_machine
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - machine_restart
    - printk
    linkageType: ''
    returnType: void
    signature: void reboot_machine(unsigned char key, bool unused)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/keyhandler.c:264,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:266,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/keyhandler.c:269,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:275,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:277,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:278,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:279,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:280,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:281,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/keyhandler.c:289,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:291,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:294,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:296,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:297,1
    - Dst: test_bit
      Src: /src/xen/xen/common/keyhandler.c:305,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:306,1
    - Dst: NOW
      Src: /src/xen/xen/common/keyhandler.c:307,1
    - Dst: arch_dump_domain_info
      Src: /src/xen/xen/common/keyhandler.c:309,1
    - Dst: domain_dump_llc_colors
      Src: /src/xen/xen/common/keyhandler.c:311,1
    - Dst: rangeset_domain_printk
      Src: /src/xen/xen/common/keyhandler.c:313,1
    - Dst: dump_pageframe_info
      Src: /src/xen/xen/common/keyhandler.c:315,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:317,1
    - Dst: NODEMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:318,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:320,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:325,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:326,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:327,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:332,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:334,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:338,1
    - Dst: vcpu_event_delivery_is_enabled
      Src: /src/xen/xen/common/keyhandler.c:339,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/common/keyhandler.c:340,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:342,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:343,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:344,1
    - Dst: arch_dump_vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:345,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:348,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:350,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:362,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:364,1
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/common/keyhandler.c:367,1
    - Dst: arch_dump_shared_mem_info
      Src: /src/xen/xen/common/keyhandler.c:372,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/keyhandler.c:375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 376
    functionName: dump_domains
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - arch_dump_vcpu_info
    - arch_dump_domain_info
    - vcpu_cpu_dirty
    - rangeset_domain_printk
    - send_guest_vcpu_virq
    - rcu_read_unlock
    - printk
    - test_bit
    - domain_dump_llc_colors
    - NOW
    - CPUMASK_PR
    - process_pending_softirqs
    - dump_pageframe_info
    - arch_dump_shared_mem_info
    - NODEMASK_PR
    - rcu_read_lock
    - vcpu_info
    - vcpu_event_delivery_is_enabled
    - domain_tot_pages
    - read_atomic
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void dump_domains(unsigned char key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:275,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:277,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:278,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:279,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:280,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:281,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/keyhandler.c:289,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:291,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:294,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:296,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:297,1
    - Dst: test_bit
      Src: /src/xen/xen/common/keyhandler.c:305,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:306,1
    - Dst: NOW
      Src: /src/xen/xen/common/keyhandler.c:307,1
    - Dst: arch_dump_domain_info
      Src: /src/xen/xen/common/keyhandler.c:309,1
    - Dst: domain_dump_llc_colors
      Src: /src/xen/xen/common/keyhandler.c:311,1
    - Dst: rangeset_domain_printk
      Src: /src/xen/xen/common/keyhandler.c:313,1
    - Dst: dump_pageframe_info
      Src: /src/xen/xen/common/keyhandler.c:315,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:317,1
    - Dst: NODEMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:318,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:320,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:325,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:326,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:327,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:332,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:334,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:338,1
    - Dst: vcpu_event_delivery_is_enabled
      Src: /src/xen/xen/common/keyhandler.c:339,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/common/keyhandler.c:340,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:342,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:343,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:344,1
    - Dst: arch_dump_vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:345,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:348,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 355
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 5
    functionsReached:
    - vcpu_info
    - arch_dump_vcpu_info
    - domain_dump_llc_colors
    - vcpu_event_delivery_is_enabled
    - arch_dump_domain_info
    - CPUMASK_PR
    - domain_tot_pages
    - process_pending_softirqs
    - dump_pageframe_info
    - printk
    - vcpu_cpu_dirty
    - rangeset_domain_printk
    - NODEMASK_PR
    - read_atomic
    - test_bit
    - atomic_read
    - NOW
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:325,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:326,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/keyhandler.c:327,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:332,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:334,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:338,1
    - Dst: vcpu_event_delivery_is_enabled
      Src: /src/xen/xen/common/keyhandler.c:339,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/common/keyhandler.c:340,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:342,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:343,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:344,1
    - Dst: arch_dump_vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:345,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:348,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 354
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - arch_dump_vcpu_info
    - vcpu_event_delivery_is_enabled
    - CPUMASK_PR
    - process_pending_softirqs
    - read_atomic
    - printk
    - vcpu_cpu_dirty
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:332,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:334,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:338,1
    - Dst: vcpu_event_delivery_is_enabled
      Src: /src/xen/xen/common/keyhandler.c:339,1
    - Dst: vcpu_cpu_dirty
      Src: /src/xen/xen/common/keyhandler.c:340,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/keyhandler.c:341,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:342,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:343,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/keyhandler.c:344,1
    - Dst: arch_dump_vcpu_info
      Src: /src/xen/xen/common/keyhandler.c:345,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:348,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 353
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - vcpu_info
    - arch_dump_vcpu_info
    - vcpu_event_delivery_is_enabled
    - process_pending_softirqs
    - read_atomic
    - vcpu_cpu_dirty
    - printk
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:362,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:364,1
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/common/keyhandler.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 5
    functionsReached:
    - send_guest_vcpu_virq
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:362,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:364,1
    - Dst: send_guest_vcpu_virq
      Src: /src/xen/xen/common/keyhandler.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 368
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 38
    functionsReached:
    - send_guest_vcpu_virq
    - process_pending_softirqs
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:384,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/keyhandler.c:385,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/keyhandler.c:386,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/keyhandler.c:387,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:388,1
    - Dst: NOW
      Src: /src/xen/xen/common/keyhandler.c:388,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:389,1
    - Dst: get_cycles
      Src: /src/xen/xen/common/keyhandler.c:389,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/keyhandler.c:390,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/keyhandler.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 392
    functionName: read_clocks_slave
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - local_irq_enable
    - smp_processor_id
    - local_irq_disable
    - cpumask_clear_cpu
    - per_cpu
    - get_cycles
    - cpumask_test_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void read_clocks_slave(void *unused)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/keyhandler.c:396,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/keyhandler.c:405,1
    - Dst: smp_call_function
      Src: /src/xen/xen/common/keyhandler.c:407,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/keyhandler.c:409,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/keyhandler.c:410,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/keyhandler.c:410,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:411,1
    - Dst: NOW
      Src: /src/xen/xen/common/keyhandler.c:411,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:412,1
    - Dst: get_cycles
      Src: /src/xen/xen/common/keyhandler.c:412,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/keyhandler.c:413,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/keyhandler.c:415,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/keyhandler.c:416,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:421,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:422,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:424,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:425,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:427,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:428,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:430,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:431,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:435,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:436,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:437,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:438,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/keyhandler.c:440,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:451,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 457
    functionName: read_clocks
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - smp_call_function
    - cpu_relax
    - local_irq_enable
    - cpumask_empty
    - smp_processor_id
    - local_irq_disable
    - cpumask_andnot
    - spin_lock
    - per_cpu
    - printk
    - cpumask_of
    - get_cycles
    - NOW
    linkageType: ''
    returnType: void
    signature: void read_clocks(unsigned char key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:421,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:422,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:424,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:425,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:427,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:428,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:430,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/keyhandler.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 7
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: console_start_log_everything
      Src: /src/xen/xen/common/keyhandler.c:465,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:467,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/keyhandler.c:469,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:473,1
    - Dst: struct keyhandler*::fn
      Src: /src/xen/xen/common/keyhandler.c:474,1
    - Dst: console_end_log_everything
      Src: /src/xen/xen/common/keyhandler.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: run_all_nonirq_keyhandlers
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - console_end_log_everything
    - ARRAY_SIZE
    - console_start_log_everything
    - process_pending_softirqs
    - printk
    - struct keyhandler*::fn
    linkageType: ''
    returnType: void
    signature: void run_all_nonirq_keyhandlers(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/keyhandler.c:488,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:490,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:493,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:498,1
    - Dst: struct keyhandler*::irq_fn
      Src: /src/xen/xen/common/keyhandler.c:499,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/common/keyhandler.c:502,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/common/keyhandler.c:505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - key
    - need_context
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 506
    functionName: run_all_keyhandlers
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    - ARRAY_SIZE
    - struct keyhandler*::irq_fn
    - printk
    - watchdog_disable
    - watchdog_enable
    linkageType: ''
    returnType: void
    signature: void run_all_keyhandlers(unsigned char key, bool need_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - unused
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 513
    functionName: do_toggle_alt_key
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void do_toggle_alt_key(unsigned char key, bool unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_present_cpus
      Src: /src/xen/xen/common/keyhandler.c:517,1
    - Dst: printk
      Src: /src/xen/xen/common/keyhandler.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: initialize_keytable
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 2
    functionsReached:
    - printk
    - num_present_cpus
    linkageType: ''
    returnType: void
    signature: void initialize_keytable(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/keyhandler.c:557,1
    - Dst: mdelay
      Src: /src/xen/xen/common/keyhandler.c:571,1
    - Dst: handle_keypress
      Src: /src/xen/xen/common/keyhandler.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum crash_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 576
    functionName: keyhandler_crash_action
    functionSourceFile: /src/xen/xen/common/keyhandler.c
    functionUses: 1
    functionsReached:
    - handle_keypress
    - mdelay
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void keyhandler_crash_action(enum crash_reason reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/unlzo.c:43,1
    - Dst: be16_to_cpu
      Src: /src/xen/xen/common/unlzo.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: get_unaligned_be16
    functionSourceFile: /src/xen/xen/common/unlzo.c
    functionUses: 0
    functionsReached:
    - memcpy
    - be16_to_cpu
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_unaligned_be16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/unlzo.c:52,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/unlzo.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: get_unaligned_be32
    functionSourceFile: /src/xen/xen/common/unlzo.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_unaligned_be32(const void *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be16
      Src: /src/xen/xen/common/unlzo.c:91,1
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/unlzo.c:95,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - input
    - skip
    - in_len
    argTypes:
    - u8*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 122
    functionName: parse_header
    functionSourceFile: /src/xen/xen/common/unlzo.c
    functionUses: 0
    functionsReached:
    - get_unaligned_be16
    - get_unaligned_be32
    linkageType: ''
    returnType: int
    signature: int parse_header(u8 *input, int *skip, int in_len)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:140,1
    - Dst: malloc
      Src: /src/xen/xen/common/unlzo.c:143,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:145,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:151,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:156,1
    - Dst: malloc
      Src: /src/xen/xen/common/unlzo.c:159,1
    - Dst: lzo1x_worst_compress
      Src: /src/xen/xen/common/unlzo.c:159,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:161,1
    - Dst: fill
      Src: /src/xen/xen/common/unlzo.c:171,1
    - Dst: lzo1x_worst_compress
      Src: /src/xen/xen/common/unlzo.c:171,1
    - Dst: parse_header
      Src: /src/xen/xen/common/unlzo.c:173,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:174,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:186,1
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/unlzo.c:189,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:201,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:207,1
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/unlzo.c:210,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:215,1
    - Dst: unlikely
      Src: /src/xen/xen/common/unlzo.c:225,1
    - Dst: memcpy
      Src: /src/xen/xen/common/unlzo.c:226,1
    - Dst: lzo1x_decompress_safe
      Src: /src/xen/xen/common/unlzo.c:228,1
    - Dst: error
      Src: /src/xen/xen/common/unlzo.c:232,1
    - Dst: flush
      Src: /src/xen/xen/common/unlzo.c:237,1
    - Dst: fill
      Src: /src/xen/xen/common/unlzo.c:245,1
    - Dst: lzo1x_worst_compress
      Src: /src/xen/xen/common/unlzo.c:245,1
    - Dst: free
      Src: /src/xen/xen/common/unlzo.c:255,1
    - Dst: free
      Src: /src/xen/xen/common/unlzo.c:258,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 119
    argCount: 4
    argNames:
    - input
    - in_len
    - output
    - posp
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 261
    functionName: unlzo
    functionSourceFile: /src/xen/xen/common/unlzo.c
    functionUses: 0
    functionsReached:
    - lzo1x_decompress_safe
    - free
    - error
    - malloc
    - flush
    - unlikely
    - get_unaligned_be32
    - memcpy
    - lzo1x_worst_compress
    - fill
    - parse_header
    linkageType: ''
    returnType: int
    signature: "int unlzo(unsigned char *input, unsigned int in_len,\n\t\t int (*fill)
      (void *, unsigned int),\n\t\t int (*flush) (void *, unsigned int),\n\t\t unsigned
      char *output, unsigned int *posp,\n\t\t void (*error) (const char *x))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/random.c:13,1
    - Dst: arch_get_random
      Src: /src/xen/xen/common/random.c:13,1
    - Dst: unlikely
      Src: /src/xen/xen/common/random.c:15,1
    - Dst: NOW
      Src: /src/xen/xen/common/random.c:16,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/random.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 32
    functionName: get_random
    functionSourceFile: /src/xen/xen/common/random.c
    functionUses: 4
    functionsReached:
    - arch_get_random
    - unlikely
    - NOW
    - this_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_random
      Src: /src/xen/xen/common/random.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: init_boot_random
    functionSourceFile: /src/xen/xen/common/random.c
    functionUses: 0
    functionsReached:
    - get_random
    linkageType: ''
    returnType: int
    signature: int init_boot_random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rwlock.c:16,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/rwlock.c:17,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rwlock.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lock
    - cnts
    argTypes:
    - rwlock_t*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: rspin_until_writer_unlock
    functionSourceFile: /src/xen/xen/common/rwlock.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - atomic_read
    - smp_rmb
    linkageType: ''
    returnType: void
    signature: void rspin_until_writer_unlock(rwlock_t *lock, u32 cnts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_sub
      Src: /src/xen/xen/common/rwlock.c:33,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/rwlock.c:41,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rwlock.c:50,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rwlock.c:51,1
    - Dst: atomic_add_return
      Src: /src/xen/xen/common/rwlock.c:53,1
    - Dst: rspin_until_writer_unlock
      Src: /src/xen/xen/common/rwlock.c:54,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rwlock.c:59,1
    - Dst: lock_enter
      Src: /src/xen/xen/common/rwlock.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 62
    functionName: queue_read_lock_slowpath
    functionSourceFile: /src/xen/xen/common/rwlock.c
    functionUses: 1
    functionsReached:
    - atomic_sub
    - spin_unlock
    - cpu_relax
    - lock_enter
    - _spin_lock
    - atomic_add_return
    - rspin_until_writer_unlock
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void queue_read_lock_slowpath(rwlock_t *lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock
      Src: /src/xen/xen/common/rwlock.c:78,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rwlock.c:81,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/common/rwlock.c:82,1
    - Dst: _write_lock_val
      Src: /src/xen/xen/common/rwlock.c:82,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rwlock.c:91,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/common/rwlock.c:93,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rwlock.c:97,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rwlock.c:103,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/common/rwlock.c:105,1
    - Dst: _write_lock_val
      Src: /src/xen/xen/common/rwlock.c:106,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rwlock.c:109,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rwlock.c:112,1
    - Dst: lock_enter
      Src: /src/xen/xen/common/rwlock.c:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 115
    functionName: queue_write_lock_slowpath
    functionSourceFile: /src/xen/xen/common/rwlock.c
    functionUses: 1
    functionsReached:
    - atomic_cmpxchg
    - spin_unlock
    - cpu_relax
    - lock_enter
    - _spin_lock
    - _write_lock_val
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void queue_write_lock_slowpath(rwlock_t *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/rwlock.c:124,1
    - Dst: _percpu_rwlock_owner_check
      Src: /src/xen/xen/common/rwlock.c:127,1
    - Dst: _write_lock
      Src: /src/xen/xen/common/rwlock.c:137,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/rwlock.c:141,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/rwlock.c:144,1
    - Dst: in_irq
      Src: /src/xen/xen/common/rwlock.c:144,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/rwlock.c:145,1
    - Dst: per_cpu_ptr
      Src: /src/xen/xen/common/rwlock.c:156,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/rwlock.c:157,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/rwlock.c:160,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rwlock.c:163,1
    - Dst: lock_enter
      Src: /src/xen/xen/common/rwlock.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - per_cpudata
    - percpu_rwlock
    argTypes:
    - percpu_rwlock_t**
    - percpu_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 167
    functionName: _percpu_write_lock
    functionSourceFile: /src/xen/xen/common/rwlock.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - lock_enter
    - cpu_relax
    - cpumask_copy
    - cpumask_empty
    - __cpumask_clear_cpu
    - _percpu_rwlock_owner_check
    - ASSERT
    - this_cpu
    - per_cpu_ptr
    - in_irq
    - _write_lock
    linkageType: ''
    returnType: void
    signature: "void _percpu_write_lock(percpu_rwlock_t **per_cpudata,\n                percpu_rwlock_t
      *percpu_rwlock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu_ptr
      Src: /src/xen/xen/common/rwlock.c:156,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/rwlock.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/common/rwlock.c
    functionUses: 13
    functionsReached:
    - per_cpu_ptr
    - __cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu(cpu, rwlock_readers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:22,1
    - Dst: machine_halt
      Src: /src/xen/xen/common/shutdown.c:23,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:27,1
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/shutdown.c:28,1
    - Dst: machine_restart
      Src: /src/xen/xen/common/shutdown.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: reboot_or_halt
    functionSourceFile: /src/xen/xen/common/shutdown.c
    functionUses: 0
    functionsReached:
    - machine_restart
    - machine_halt
    - printk
    - watchdog_disable
    linkageType: ''
    returnType: void
    signature: void reboot_or_halt(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:38,1
    - Dst: machine_halt
      Src: /src/xen/xen/common/shutdown.c:40,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:43,1
    - Dst: kexec_crash
      Src: /src/xen/xen/common/shutdown.c:44,1
    - Dst: reboot_or_halt
      Src: /src/xen/xen/common/shutdown.c:45,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:48,1
    - Dst: machine_restart
      Src: /src/xen/xen/common/shutdown.c:50,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:53,1
    - Dst: kexec_crash
      Src: /src/xen/xen/common/shutdown.c:55,1
    - Dst: machine_restart
      Src: /src/xen/xen/common/shutdown.c:56,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:59,1
    - Dst: machine_restart
      Src: /src/xen/xen/common/shutdown.c:61,1
    - Dst: printk
      Src: /src/xen/xen/common/shutdown.c:64,1
    - Dst: reboot_or_halt
      Src: /src/xen/xen/common/shutdown.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - reason
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: hwdom_shutdown
    functionSourceFile: /src/xen/xen/common/shutdown.c
    functionUses: 0
    functionsReached:
    - kexec_crash
    - machine_halt
    - printk
    - reboot_or_halt
    - machine_restart
    linkageType: ''
    returnType: void
    signature: void hwdom_shutdown(unsigned char reason)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:39,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:40,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/tasklet.c:41,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/tasklet.c:43,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:47,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/tasklet.c:48,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:48,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/tasklet.c:49,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/tasklet.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: tasklet_enqueue
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 0
    functionsReached:
    - cpu_raise_softirq
    - test_and_set_bit
    - per_cpu
    - list_empty
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void tasklet_enqueue(struct tasklet *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/tasklet.c:58,1
    - Dst: list_del
      Src: /src/xen/xen/common/tasklet.c:65,1
    - Dst: tasklet_enqueue
      Src: /src/xen/xen/common/tasklet.c:66,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/tasklet.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - t
    - cpu
    argTypes:
    - struct tasklet*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: tasklet_schedule_on_cpu
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 4
    functionsReached:
    - tasklet_enqueue
    - spin_lock_irqsave
    - list_del
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void tasklet_schedule_on_cpu(struct tasklet *t, unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/tasklet.c:75,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/tasklet.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: tasklet_schedule
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 7
    functionsReached:
    - tasklet_schedule_on_cpu
    - smp_processor_id
    linkageType: ''
    returnType: void
    signature: void tasklet_schedule(struct tasklet *t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/tasklet.c:82,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:82,1
    - Dst: cpu_is_offline
      Src: /src/xen/xen/common/tasklet.c:82,1
    - Dst: list_entry
      Src: /src/xen/xen/common/tasklet.c:85,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/tasklet.c:86,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/tasklet.c:88,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/tasklet.c:92,1
    - Dst: sync_local_execstate
      Src: /src/xen/xen/common/tasklet.c:93,1
    - Dst: struct tasklet*::func
      Src: /src/xen/xen/common/tasklet.c:94,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/tasklet.c:95,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/tasklet.c:101,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:101,1
    - Dst: tasklet_enqueue
      Src: /src/xen/xen/common/tasklet.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - cpu
    - list
    argTypes:
    - unsigned int
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 104
    functionName: do_tasklet_work
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 0
    functionsReached:
    - list_del_init
    - struct tasklet*::func
    - sync_local_execstate
    - list_entry
    - cpu_is_offline
    - spin_unlock_irq
    - BUG_ON
    - spin_lock_irq
    - unlikely
    - tasklet_enqueue
    - list_empty
    linkageType: ''
    returnType: void
    signature: void do_tasklet_work(unsigned int cpu, struct list_head *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/tasklet.c:109,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:110,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:111,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/tasklet.c:122,1
    - Dst: tasklet_work_to_do
      Src: /src/xen/xen/common/tasklet.c:122,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/tasklet.c:124,1
    - Dst: do_tasklet_work
      Src: /src/xen/xen/common/tasklet.c:126,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:128,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/tasklet.c:130,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/tasklet.c:131,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/tasklet.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: do_tasklet
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 2
    functionsReached:
    - raise_softirq
    - smp_processor_id
    - tasklet_work_to_do
    - spin_unlock_irq
    - spin_lock_irq
    - ASSERT
    - per_cpu
    - do_tasklet_work
    - clear_bit
    - list_empty
    linkageType: ''
    returnType: void
    signature: void do_tasklet(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/tasklet.c:140,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:141,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/tasklet.c:143,1
    - Dst: do_tasklet_work
      Src: /src/xen/xen/common/tasklet.c:145,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:147,1
    - Dst: cpu_is_offline
      Src: /src/xen/xen/common/tasklet.c:147,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/tasklet.c:148,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/tasklet.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: tasklet_softirq_action
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - smp_processor_id
    - cpu_is_offline
    - spin_lock_irq
    - spin_unlock_irq
    - per_cpu
    - do_tasklet_work
    - list_empty
    linkageType: ''
    returnType: void
    signature: void tasklet_softirq_action(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/tasklet.c:157,1
    - Dst: list_head_is_null
      Src: /src/xen/xen/common/tasklet.c:160,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:163,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/tasklet.c:165,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/tasklet.c:166,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/tasklet.c:174,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/tasklet.c:175,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/tasklet.c:176,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/tasklet.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 181
    functionName: tasklet_kill
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 5
    functionsReached:
    - list_del_init
    - cpu_relax
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_head_is_null
    - BUG_ON
    - list_empty
    linkageType: ''
    returnType: void
    signature: void tasklet_kill(struct tasklet *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/tasklet.c:188,1
    - Dst: list_empty
      Src: /src/xen/xen/common/tasklet.c:190,1
    - Dst: list_entry
      Src: /src/xen/xen/common/tasklet.c:192,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/tasklet.c:193,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/tasklet.c:194,1
    - Dst: list_del
      Src: /src/xen/xen/common/tasklet.c:195,1
    - Dst: tasklet_enqueue
      Src: /src/xen/xen/common/tasklet.c:196,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/tasklet.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cpu
    - list
    argTypes:
    - unsigned int
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: migrate_tasklets_from_cpu
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - spin_lock_irqsave
    - list_entry
    - spin_unlock_irqrestore
    - BUG_ON
    - list_del
    - tasklet_enqueue
    - list_empty
    linkageType: ''
    returnType: void
    signature: void migrate_tasklets_from_cpu(unsigned int cpu, struct list_head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/tasklet.c:204,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/tasklet.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - t
    - data
    argTypes:
    - struct tasklet*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: tasklet_init
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 6
    functionsReached:
    - memset
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void tasklet_init(struct tasklet *t, void (*func)(void *data), void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_init
      Src: /src/xen/xen/common/tasklet.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - data
    argTypes:
    - struct tasklet*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: softirq_tasklet_init
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 1
    functionsReached:
    - tasklet_init
    linkageType: ''
    returnType: void
    signature: "void softirq_tasklet_init(struct tasklet *t,\n                          void
      (*func)(void *data), void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/tasklet.c:226,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:226,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/tasklet.c:227,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:227,1
    - Dst: migrate_tasklets_from_cpu
      Src: /src/xen/xen/common/tasklet.c:231,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:231,1
    - Dst: migrate_tasklets_from_cpu
      Src: /src/xen/xen/common/tasklet.c:232,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/tasklet.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 2
    functionsReached:
    - INIT_LIST_HEAD
    - per_cpu
    - migrate_tasklets_from_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/tasklet.c:248,1
    - Dst: cpu_callback
      Src: /src/xen/xen/common/tasklet.c:249,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/tasklet.c:250,1
    - Dst: open_softirq
      Src: /src/xen/xen/common/tasklet.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: tasklet_subsys_init
    functionSourceFile: /src/xen/xen/common/tasklet.c
    functionUses: 2
    functionsReached:
    - register_cpu_notifier
    - smp_processor_id
    - cpu_callback
    - open_softirq
    linkageType: ''
    returnType: void
    signature: void tasklet_subsys_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: DOMAIN_HASH
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOMAIN_HASH(_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:76,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/domain.c:84,1
    - Dst: DOMAIN_HASH
      Src: /src/xen/xen/common/domain.c:86,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/domain.c:88,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: domlist_insert
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - DOMAIN_HASH
    - spin_lock
    - rcu_assign_pointer
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void domlist_insert(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:103,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/domain.c:109,1
    - Dst: DOMAIN_HASH
      Src: /src/xen/xen/common/domain.c:111,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/domain.c:115,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: domlist_remove
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - DOMAIN_HASH
    - spin_lock
    - rcu_assign_pointer
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void domlist_remove(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:150,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:151,1
    - Dst: rw_is_write_locked_by_me
      Src: /src/xen/xen/common/domain.c:151,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/domain.c:153,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/domain.c:154,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:158,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/domain.c:160,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/domain.c:161,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: domain_init_states
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - rcu_read_unlock
    - xvzalloc_array
    - rw_is_write_locked_by_me
    - for_each_domain
    - ASSERT
    - BITS_TO_LONGS
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: int domain_init_states(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:170,1
    - Dst: rw_is_write_locked_by_me
      Src: /src/xen/xen/common/domain.c:170,1
    - Dst: XVFREE
      Src: /src/xen/xen/common/domain.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: domain_deinit_states
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - XVFREE
    - ASSERT
    - rw_is_write_locked_by_me
    linkageType: ''
    returnType: void
    signature: void domain_deinit_states(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lock_dom_exc_handler
      Src: /src/xen/xen/common/domain.c:179,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domain.c:180,1
    - Dst: set_bit
      Src: /src/xen/xen/common/domain.c:184,1
    - Dst: unlock_dom_exc_handler
      Src: /src/xen/xen/common/domain.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: domain_changed_state
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - lock_dom_exc_handler
    - set_bit
    - unlock_dom_exc_handler
    - unlikely
    linkageType: ''
    returnType: void
    signature: void domain_changed_state(const struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_control_domain
      Src: /src/xen/xen/common/domain.c:201,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/domain.c:203,1
    - Dst: is_xenstore_domain
      Src: /src/xen/xen/common/domain.c:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - info
    - d
    argTypes:
    - struct xen_domctl_get_domain_state*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: set_domain_state_info
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - is_control_domain
    - is_hardware_domain
    - is_xenstore_domain
    linkageType: ''
    returnType: void
    signature: "void set_domain_state_info(struct xen_domctl_get_domain_state *info,\n
      \                                 const struct domain *d)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsm_get_domain_state
      Src: /src/xen/xen/common/domain.c:222,1
    - Dst: set_domain_state_info
      Src: /src/xen/xen/common/domain.c:226,1
    - Dst: lock_dom_exc_handler
      Src: /src/xen/xen/common/domain.c:231,1
    - Dst: find_next_bit
      Src: /src/xen/xen/common/domain.c:245,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/domain.c:249,1
    - Dst: xsm_get_domain_state
      Src: /src/xen/xen/common/domain.c:250,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/domain.c:251,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domain.c:254,1
    - Dst: set_domain_state_info
      Src: /src/xen/xen/common/domain.c:262,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domain.c:263,1
    - Dst: memset
      Src: /src/xen/xen/common/domain.c:266,1
    - Dst: unlock_dom_exc_handler
      Src: /src/xen/xen/common/domain.c:273,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - info
    - d
    - domid
    argTypes:
    - struct xen_domctl_get_domain_state*
    - struct domain*
    - domid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 276
    functionName: get_domain_state
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - xsm_get_domain_state
    - lock_dom_exc_handler
    - find_next_bit
    - rcu_lock_domain_by_id
    - test_and_clear_bit
    - unlock_dom_exc_handler
    - memset
    - rcu_unlock_domain
    - set_domain_state_info
    linkageType: ''
    returnType: int
    signature: "int get_domain_state(struct xen_domctl_get_domain_state *info, struct
      domain *d,\n                     domid_t *domid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:282,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/domain.c:282,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:287,1
    - Dst: domain_changed_state
      Src: /src/xen/xen/common/domain.c:292,1
    - Dst: evtchn_send
      Src: /src/xen/xen/common/domain.c:294,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/domain.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 297
    functionName: __domain_finalise_shutdown
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - domain_changed_state
    - spin_is_locked
    - send_global_virq
    - BUG_ON
    - evtchn_send
    linkageType: ''
    returnType: void
    signature: void __domain_finalise_shutdown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:303,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/domain.c:308,1
    - Dst: __domain_finalise_shutdown
      Src: /src/xen/xen/common/domain.c:311,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: vcpu_check_shutdown
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - vcpu_pause_nosync
    - __domain_finalise_shutdown
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void vcpu_check_shutdown(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shared_info
      Src: /src/xen/xen/common/domain.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 325
    functionName: vcpu_info_reset
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - shared_info
    linkageType: ''
    returnType: void
    signature: void vcpu_info_reset(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/domain.c:333,1
    - Dst: arch_domain_struct_memflags
      Src: /src/xen/xen/common/domain.c:333,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domain.c:335,1
    - Dst: clear_page
      Src: /src/xen/xen/common/domain.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: alloc_domain_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - arch_domain_struct_memflags
    - clear_page
    - alloc_xenheap_pages
    - BUILD_BUG_ON
    linkageType: ''
    returnType: struct domain
    signature: struct domain *alloc_domain_struct(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: arch_domain_struct_memflags
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_domain_struct_memflags()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/domain.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: free_domain_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - free_xenheap_page
    linkageType: ''
    returnType: void
    signature: void free_domain_struct(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domain.c:355,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/domain.c:356,1
    - Dst: arch_vcpu_struct_memflags
      Src: /src/xen/xen/common/domain.c:356,1
    - Dst: clear_page
      Src: /src/xen/xen/common/domain.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 361
    functionName: alloc_vcpu_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - clear_page
    - alloc_xenheap_pages
    - arch_vcpu_struct_memflags
    - BUILD_BUG_ON
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *alloc_vcpu_struct(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: arch_vcpu_struct_memflags
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arch_vcpu_struct_memflags(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/domain.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: free_vcpu_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - free_xenheap_page
    linkageType: ''
    returnType: void
    signature: void free_vcpu_struct(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/domain.c:382,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/domain.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: vmtrace_free_buffer
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - put_page_alloc_ref
    linkageType: ''
    returnType: void
    signature: void vmtrace_free_buffer(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/domain.c:398,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/domain.c:398,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domain.c:404,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/common/domain.c:404,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/domain.c:427,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/domain.c:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 435
    functionName: vmtrace_alloc_buffer
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - put_page_and_type
    - put_page_alloc_ref
    - unlikely
    - alloc_domheap_pages
    - get_page_and_type
    linkageType: ''
    returnType: int
    signature: int vmtrace_alloc_buffer(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmtrace_free_buffer
      Src: /src/xen/xen/common/domain.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: vcpu_teardown
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 4
    functionsReached:
    - vmtrace_free_buffer
    linkageType: ''
    returnType: int
    signature: int vcpu_teardown(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_vcpu_struct
      Src: /src/xen/xen/common/domain.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: vcpu_destroy
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 9
    functionsReached:
    - free_vcpu_struct
    linkageType: ''
    returnType: void
    signature: void vcpu_destroy(struct vcpu *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/domain.c:472,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/domain.c:474,1
    - Dst: alloc_vcpu_struct
      Src: /src/xen/xen/common/domain.c:478,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/domain.c:485,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/domain.c:492,1
    - Dst: tasklet_init
      Src: /src/xen/xen/common/domain.c:494,1
    - Dst: grant_table_init_vcpu
      Src: /src/xen/xen/common/domain.c:496,1
    - Dst: NOW
      Src: /src/xen/xen/common/domain.c:499,1
    - Dst: set_bit
      Src: /src/xen/xen/common/domain.c:500,1
    - Dst: vcpu_info_reset
      Src: /src/xen/xen/common/domain.c:501,1
    - Dst: init_waitqueue_vcpu
      Src: /src/xen/xen/common/domain.c:502,1
    - Dst: sched_init_vcpu
      Src: /src/xen/xen/common/domain.c:505,1
    - Dst: vmtrace_alloc_buffer
      Src: /src/xen/xen/common/domain.c:508,1
    - Dst: arch_vcpu_create
      Src: /src/xen/xen/common/domain.c:511,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:520,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/domain.c:526,1
    - Dst: vcpu_check_shutdown
      Src: /src/xen/xen/common/domain.c:527,1
    - Dst: sched_destroy_vcpu
      Src: /src/xen/xen/common/domain.c:532,1
    - Dst: destroy_waitqueue_vcpu
      Src: /src/xen/xen/common/domain.c:534,1
    - Dst: vcpu_teardown
      Src: /src/xen/xen/common/domain.c:537,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/domain.c:538,1
    - Dst: vcpu_destroy
      Src: /src/xen/xen/common/domain.c:540,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 2
    argNames:
    - d
    - vcpu_id
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 543
    functionName: vcpu_create
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 7
    functionsReached:
    - grant_table_init_vcpu
    - is_idle_domain
    - init_waitqueue_vcpu
    - alloc_vcpu_struct
    - BUG_ON
    - tasklet_init
    - vcpu_check_shutdown
    - vcpu_teardown
    - NOW
    - vcpu_destroy
    - sched_init_vcpu
    - sched_destroy_vcpu
    - ASSERT_UNREACHABLE
    - arch_vcpu_create
    - set_bit
    - vcpu_info_reset
    - rwlock_init
    - vmtrace_alloc_buffer
    - destroy_waitqueue_vcpu
    linkageType: ''
    returnType: struct vcpu
    signature: struct vcpu *vcpu_create(struct domain *d, unsigned int vcpu_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsm_init_hardware_domain
      Src: /src/xen/xen/common/domain.c:554,1
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:558,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/domain.c:560,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:561,1
    - Dst: rangeset_swap
      Src: /src/xen/xen/common/domain.c:574,1
    - Dst: rangeset_swap
      Src: /src/xen/xen/common/domain.c:575,1
    - Dst: rangeset_swap
      Src: /src/xen/xen/common/domain.c:577,1
    - Dst: setup_io_bitmap
      Src: /src/xen/xen/common/domain.c:578,1
    - Dst: setup_io_bitmap
      Src: /src/xen/xen/common/domain.c:579,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domain.c:582,1
    - Dst: iommu_hwdom_init
      Src: /src/xen/xen/common/domain.c:584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 590
    functionName: late_hwdom_init
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - setup_io_bitmap
    - iommu_hwdom_init
    - rcu_lock_domain_by_id
    - xsm_init_hardware_domain
    - ASSERT
    - printk
    - rcu_unlock_domain
    - rangeset_swap
    linkageType: ''
    returnType: int
    signature: int late_hwdom_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/common/domain.c:600,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/domain.c:601,1
    - Dst: isdigit
      Src: /src/xen/xen/common/domain.c:602,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/domain.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 606
    functionName: parse_extra_guest_irqs
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - isdigit
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_extra_guest_irqs(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/domain.c:619,1
    - Dst: strchr
      Src: /src/xen/xen/common/domain.c:621,1
    - Dst: parse_arch_dom0_param
      Src: /src/xen/xen/common/domain.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 631
    functionName: parse_dom0_param
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_arch_dom0_param
    linkageType: ''
    returnType: int
    signature: int parse_dom0_param(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/domain.c:636,1
    - Dst: FREE_DOMHEAP_PAGES
      Src: /src/xen/xen/common/domain.c:639,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/domain.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: domain_pending_scrub_free
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - FREE_DOMHEAP_PAGES
    linkageType: ''
    returnType: void
    signature: void domain_pending_scrub_free(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:661,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domain.c:703,1
    - Dst: domain_llc_coloring_free
      Src: /src/xen/xen/common/domain.c:706,1
    - Dst: domain_pending_scrub_free
      Src: /src/xen/xen/common/domain.c:707,1
    - Dst: PROGRESS
      Src: /src/xen/xen/common/domain.c:709,1
    - Dst: gnttab_release_mappings
      Src: /src/xen/xen/common/domain.c:710,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:714,1
    - Dst: PROGRESS_VCPU
      Src: /src/xen/xen/common/domain.c:717,1
    - Dst: vcpu_teardown
      Src: /src/xen/xen/common/domain.c:719,1
    - Dst: PROGRESS
      Src: /src/xen/xen/common/domain.c:724,1
    - Dst: arch_domain_teardown
      Src: /src/xen/xen/common/domain.c:725,1
    - Dst: PROGRESS
      Src: /src/xen/xen/common/domain.c:729,1
    - Dst: BUG
      Src: /src/xen/xen/common/domain.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 740
    functionName: domain_teardown
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - domain_llc_coloring_free
    - for_each_vcpu
    - BUG
    - PROGRESS
    - BUILD_BUG_ON
    - domain_pending_scrub_free
    - BUG_ON
    - PROGRESS_VCPU
    - gnttab_release_mappings
    - arch_domain_teardown
    - vcpu_teardown
    linkageType: ''
    returnType: int
    signature: int domain_teardown(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: PROGRESS
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROGRESS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: PROGRESS_VCPU
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROGRESS_VCPU(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:749,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:750,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/domain.c:750,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:751,1
    - Dst: XVFREE
      Src: /src/xen/xen/common/domain.c:753,1
    - Dst: argo_destroy
      Src: /src/xen/xen/common/domain.c:755,1
    - Dst: rangeset_domain_destroy
      Src: /src/xen/xen/common/domain.c:757,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/domain.c:759,1
    - Dst: xsm_free_security_domain
      Src: /src/xen/xen/common/domain.c:761,1
    - Dst: lock_profile_deregister_struct
      Src: /src/xen/xen/common/domain.c:763,1
    - Dst: domid_free
      Src: /src/xen/xen/common/domain.c:765,1
    - Dst: free_domain_struct
      Src: /src/xen/xen/common/domain.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 747
    functionDepth: 4
    functionLinenumber: 747
    functionLinenumberEnd: 768
    functionName: _domain_destroy
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 29
    functionsReached:
    - free_cpumask_var
    - XVFREE
    - rangeset_domain_destroy
    - xsm_free_security_domain
    - lock_profile_deregister_struct
    - domid_free
    - free_domain_struct
    - BUG_ON
    - ASSERT
    - atomic_read
    - argo_destroy
    linkageType: ''
    returnType: void
    signature: void _domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:776,1
    - Dst: NOW
      Src: /src/xen/xen/common/domain.c:778,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 794
    functionName: get_unique_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - NOW
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_unique_id(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:810,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:816,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:822,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:828,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:836,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:843,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:851,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:859,1
    - Dst: dprintk
      Src: /src/xen/xen/common/domain.c:865,1
    - Dst: arch_sanitise_domain_config
      Src: /src/xen/xen/common/domain.c:869,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - config
    argTypes:
    - struct xen_domctl_createdomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 870
    functionName: sanitise_domain_config
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - dprintk
    - arch_sanitise_domain_config
    linkageType: ''
    returnType: int
    signature: int sanitise_domain_config(struct xen_domctl_createdomain *config)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: sanitise_domain_config
      Src: /src/xen/xen/common/domain.c:881,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domain.c:882,1
    - Dst: alloc_domain_struct
      Src: /src/xen/xen/common/domain.c:884,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domain.c:885,1
    - Dst: get_unique_id
      Src: /src/xen/xen/common/domain.c:889,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:892,1
    - Dst: is_system_domain
      Src: /src/xen/xen/common/domain.c:892,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:900,1
    - Dst: panic
      Src: /src/xen/xen/common/domain.c:915,1
    - Dst: free_domain_struct
      Src: /src/xen/xen/common/domain.c:920,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domain.c:921,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/domain.c:934,1
    - Dst: lock_profile_register_struct
      Src: /src/xen/xen/common/domain.c:936,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/domain.c:938,1
    - Dst: RCU_READ_LOCK_INIT
      Src: /src/xen/xen/common/domain.c:939,1
    - Dst: rspin_lock_init_prof
      Src: /src/xen/xen/common/domain.c:940,1
    - Dst: rspin_lock_init_prof
      Src: /src/xen/xen/common/domain.c:941,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/domain.c:942,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/domain.c:943,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/domain.c:944,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/domain.c:945,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/domain.c:947,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/domain.c:951,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/domain.c:955,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/domain.c:958,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/domain.c:961,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/domain.c:962,1
    - Dst: domain_llc_coloring_init
      Src: /src/xen/xen/common/domain.c:969,1
    - Dst: is_system_domain
      Src: /src/xen/xen/common/domain.c:977,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/domain.c:980,1
    - Dst: xsm_alloc_security_domain
      Src: /src/xen/xen/common/domain.c:987,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/domain.c:991,1
    - Dst: rangeset_domain_initialise
      Src: /src/xen/xen/common/domain.c:994,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/domain.c:996,1
    - Dst: arch_init_idle_domain
      Src: /src/xen/xen/common/domain.c:997,1
    - Dst: is_system_domain
      Src: /src/xen/xen/common/domain.c:1000,1
    - Dst: xvzalloc
      Src: /src/xen/xen/common/domain.c:1004,1
    - Dst: typeof
      Src: /src/xen/xen/common/domain.c:1004,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/domain.c:1008,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/domain.c:1009,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:1016,1
    - Dst: memcpy
      Src: /src/xen/xen/common/domain.c:1018,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/domain.c:1021,1
    - Dst: arch_hwdom_irqs
      Src: /src/xen/xen/common/domain.c:1025,1
    - Dst: min
      Src: /src/xen/xen/common/domain.c:1026,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/common/domain.c:1028,1
    - Dst: arch_domain_create
      Src: /src/xen/xen/common/domain.c:1031,1
    - Dst: watchdog_domain_init
      Src: /src/xen/xen/common/domain.c:1035,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/domain.c:1039,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/domain.c:1040,1
    - Dst: xsm_domain_create
      Src: /src/xen/xen/common/domain.c:1044,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/domain.c:1048,1
    - Dst: evtchn_init
      Src: /src/xen/xen/common/domain.c:1050,1
    - Dst: grant_table_init
      Src: /src/xen/xen/common/domain.c:1054,1
    - Dst: argo_init
      Src: /src/xen/xen/common/domain.c:1060,1
    - Dst: sched_init_domain
      Src: /src/xen/xen/common/domain.c:1063,1
    - Dst: late_hwdom_init
      Src: /src/xen/xen/common/domain.c:1066,1
    - Dst: domlist_insert
      Src: /src/xen/xen/common/domain.c:1073,1
    - Dst: domain_changed_state
      Src: /src/xen/xen/common/domain.c:1075,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:1080,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/domain.c:1090,1
    - Dst: sched_destroy_domain
      Src: /src/xen/xen/common/domain.c:1092,1
    - Dst: XFREE
      Src: /src/xen/xen/common/domain.c:1097,1
    - Dst: arch_domain_destroy
      Src: /src/xen/xen/common/domain.c:1100,1
    - Dst: grant_table_destroy
      Src: /src/xen/xen/common/domain.c:1102,1
    - Dst: evtchn_destroy
      Src: /src/xen/xen/common/domain.c:1105,1
    - Dst: evtchn_destroy_final
      Src: /src/xen/xen/common/domain.c:1106,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/common/domain.c:1108,1
    - Dst: watchdog_domain_destroy
      Src: /src/xen/xen/common/domain.c:1112,1
    - Dst: domain_teardown
      Src: /src/xen/xen/common/domain.c:1115,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/domain.c:1116,1
    - Dst: _domain_destroy
      Src: /src/xen/xen/common/domain.c:1118,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domain.c:1120,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 151
    argCount: 3
    argNames:
    - domid
    - config
    - flags
    argTypes:
    - domid_t
    - struct xen_domctl_createdomain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 872
    functionDepth: 5
    functionLinenumber: 872
    functionLinenumberEnd: 1121
    functionName: domain_create
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 17
    functionsReached:
    - atomic_set
    - watchdog_domain_init
    - TRACE_TIME
    - lock_profile_register_struct
    - evtchn_destroy_final
    - xsm_domain_create
    - typeof
    - evtchn_init
    - xvzalloc
    - get_unique_id
    - is_idle_domain
    - arch_domain_create
    - sanitise_domain_config
    - domain_changed_state
    - rangeset_domain_initialise
    - XFREE
    - radix_tree_destroy
    - grant_table_init
    - zalloc_cpumask_var
    - sched_destroy_domain
    - INIT_PAGE_LIST_HEAD
    - sched_init_domain
    - arch_hwdom_irqs
    - is_system_domain
    - domain_llc_coloring_init
    - evtchn_destroy
    - is_hardware_domain
    - grant_table_destroy
    - panic
    - _domain_destroy
    - arch_domain_destroy
    - domlist_insert
    - ASSERT
    - INIT_LIST_HEAD
    - min
    - atomic_inc
    - arch_init_idle_domain
    - ASSERT_UNREACHABLE
    - radix_tree_init
    - alloc_domain_struct
    - rwlock_init
    - rspin_lock_init_prof
    - watchdog_domain_destroy
    - ERR_PTR
    - rangeset_new
    - domain_teardown
    - xsm_alloc_security_domain
    - xzalloc_array
    - free_domain_struct
    - argo_init
    - RCU_READ_LOCK_INIT
    - spin_lock_init
    - late_hwdom_init
    - memcpy
    linkageType: ''
    returnType: struct domain
    signature: "struct domain *domain_create(domid_t domid,\n                             struct
      xen_domctl_createdomain *config,\n                             unsigned int
      flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: domain_create
      Src: /src/xen/xen/common/domain.c:1132,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domain.c:1133,1
    - Dst: panic
      Src: /src/xen/xen/common/domain.c:1134,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/domain.c:1134,1
    - Dst: max
      Src: /src/xen/xen/common/domain.c:1139,1
    - Dst: arch_hwdom_irqs
      Src: /src/xen/xen/common/domain.c:1139,1
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:1144,1
    - Dst: max
      Src: /src/xen/xen/common/domain.c:1147,1
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:1150,1
    - Dst: domain_create
      Src: /src/xen/xen/common/domain.c:1164,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domain.c:1165,1
    - Dst: panic
      Src: /src/xen/xen/common/domain.c:1166,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/domain.c:1166,1
    - Dst: domain_create
      Src: /src/xen/xen/common/domain.c:1173,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domain.c:1174,1
    - Dst: panic
      Src: /src/xen/xen/common/domain.c:1175,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/domain.c:1175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1177
    functionName: setup_system_domains
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 2
    functionsReached:
    - IS_ERR
    - max
    - panic
    - PTR_ERR
    - printk
    - domain_create
    - arch_hwdom_irqs
    linkageType: ''
    returnType: void
    signature: void setup_system_domains(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodes_intersects
      Src: /src/xen/xen/common/domain.c:1182,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:1185,1
    - Dst: nodes_full
      Src: /src/xen/xen/common/domain.c:1191,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1201,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/common/domain.c:1203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - d
    - affinity
    argTypes:
    - struct domain*
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1206
    functionName: domain_set_node_affinity
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - nodes_intersects
    - spin_lock
    - nodes_full
    - domain_update_node_affinity
    linkageType: ''
    returnType: int
    signature: int domain_set_node_affinity(struct domain *d, const nodemask_t *affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/domain.c:1213,1
    - Dst: DOMAIN_HASH
      Src: /src/xen/xen/common/domain.c:1213,1
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/domain.c:1215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dom
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1222
    functionName: domid_to_domain
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - rcu_dereference
    - DOMAIN_HASH
    linkageType: ''
    returnType: struct domain
    signature: struct domain *domid_to_domain(domid_t dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:1228,1
    - Dst: domid_to_domain
      Src: /src/xen/xen/common/domain.c:1230,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domain.c:1231,1
    - Dst: get_domain
      Src: /src/xen/xen/common/domain.c:1231,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dom
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1237
    functionName: get_domain_by_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - domid_to_domain
    - unlikely
    - get_domain
    - rcu_read_lock
    linkageType: ''
    returnType: struct domain
    signature: struct domain *get_domain_by_id(domid_t dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:1244,1
    - Dst: domid_to_domain
      Src: /src/xen/xen/common/domain.c:1246,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/domain.c:1248,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dom
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1253
    functionName: rcu_lock_domain_by_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 15
    functionsReached:
    - domid_to_domain
    - rcu_read_unlock
    - rcu_read_lock
    - rcu_lock_domain
    linkageType: ''
    returnType: struct domain
    signature: struct domain *rcu_lock_domain_by_id(domid_t dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:1259,1
    - Dst: domid_to_domain
      Src: /src/xen/xen/common/domain.c:1261,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dom
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1266
    functionName: knownalive_domain_from_domid
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - domid_to_domain
    - rcu_read_unlock
    - rcu_read_lock
    linkageType: ''
    returnType: struct domain
    signature: struct domain *knownalive_domain_from_domid(domid_t dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_current_domain
      Src: /src/xen/xen/common/domain.c:1271,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/domain.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dom
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1273
    functionName: rcu_lock_domain_by_any_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 14
    functionsReached:
    - rcu_lock_domain_by_id
    - rcu_lock_current_domain
    linkageType: ''
    returnType: struct domain
    signature: struct domain *rcu_lock_domain_by_any_id(domid_t dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/domain.c:1277,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domain.c:1282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dom
    - d
    argTypes:
    - domid_t
    - struct domain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1275
    functionDepth: 4
    functionLinenumber: 1275
    functionLinenumberEnd: 1287
    functionName: rcu_lock_remote_domain_by_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - rcu_unlock_domain
    - rcu_lock_domain_by_id
    linkageType: ''
    returnType: int
    signature: int rcu_lock_remote_domain_by_id(domid_t dom, struct domain **d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/common/domain.c:1292,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domain.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dom
    - d
    argTypes:
    - domid_t
    - struct domain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1289
    functionDepth: 5
    functionLinenumber: 1289
    functionLinenumberEnd: 1302
    functionName: rcu_lock_live_remote_domain_by_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - rcu_unlock_domain
    - rcu_lock_remote_domain_by_id
    linkageType: ''
    returnType: int
    signature: int rcu_lock_live_remote_domain_by_id(domid_t dom, struct domain **d)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/common/domain.c:1316,1
    - Dst: rspin_barrier
      Src: /src/xen/xen/common/domain.c:1318,1
    - Dst: argo_destroy
      Src: /src/xen/xen/common/domain.c:1319,1
    - Dst: vnuma_destroy
      Src: /src/xen/xen/common/domain.c:1320,1
    - Dst: domain_set_outstanding_pages
      Src: /src/xen/xen/common/domain.c:1321,1
    - Dst: domain_teardown
      Src: /src/xen/xen/common/domain.c:1324,1
    - Dst: evtchn_destroy
      Src: /src/xen/xen/common/domain.c:1327,1
    - Dst: domain_relinquish_resources
      Src: /src/xen/xen/common/domain.c:1330,1
    - Dst: cpupool_move_domain
      Src: /src/xen/xen/common/domain.c:1333,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1335,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1337,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1338,1
    - Dst: vm_event_cleanup
      Src: /src/xen/xen/common/domain.c:1343,1
    - Dst: domain_changed_state
      Src: /src/xen/xen/common/domain.c:1344,1
    - Dst: put_domain
      Src: /src/xen/xen/common/domain.c:1345,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/domain.c:1346,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1304
    functionDepth: 4
    functionLinenumber: 1304
    functionLinenumberEnd: 1353
    functionName: domain_kill
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - for_each_vcpu
    - domain_pause
    - domain_relinquish_resources
    - unmap_guest_area
    - domain_changed_state
    - vm_event_cleanup
    - domain_teardown
    - cpupool_move_domain
    - send_global_virq
    - domain_set_outstanding_pages
    - put_domain
    - vnuma_destroy
    - rspin_barrier
    - evtchn_destroy
    - argo_destroy
    linkageType: ''
    returnType: int
    signature: int domain_kill(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:1364,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/domain.c:1365,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/domain.c:1366,1
    - Dst: guest_cpu_user_regs
      Src: /src/xen/xen/common/domain.c:1366,1
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:1370,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/domain.c:1371,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/common/domain.c:1374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1356
    functionDepth: 1
    functionLinenumber: 1356
    functionLinenumberEnd: 1375
    functionName: __domain_crash
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - guest_cpu_user_regs
    - show_execution_state
    - smp_processor_id
    - printk
    - domain_shutdown
    linkageType: ''
    returnType: void
    signature: void __domain_crash(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_shutdown
      Src: /src/xen/xen/common/domain.c:1384,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:1387,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/domain.c:1393,1
    - Dst: hwdom_shutdown
      Src: /src/xen/xen/common/domain.c:1394,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1398,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/domain.c:1404,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/domain.c:1412,1
    - Dst: arch_domain_shutdown
      Src: /src/xen/xen/common/domain.c:1416,1
    - Dst: __domain_finalise_shutdown
      Src: /src/xen/xen/common/domain.c:1418,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - d
    - reason
    argTypes:
    - struct domain*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1423
    functionName: domain_shutdown
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 14
    functionsReached:
    - smp_mb
    - spin_unlock
    - arch_domain_shutdown
    - hwdom_shutdown
    - spin_lock
    - pv_shim_shutdown
    - vcpu_pause_nosync
    - is_hardware_domain
    - __domain_finalise_shutdown
    linkageType: ''
    returnType: int
    signature: int domain_shutdown(struct domain *d, u8 reason)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/domain.c:1412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1414
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 41
    functionsReached:
    - vcpu_pause_nosync
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_pause
      Src: /src/xen/xen/common/domain.c:1433,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:1435,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1443,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1447,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domain.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1450
    functionName: domain_resume
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 10
    functionsReached:
    - domain_unpause
    - spin_unlock
    - domain_pause
    - vcpu_unpause
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void domain_resume(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1445
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 41
    functionsReached:
    - vcpu_unpause
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/common/domain.c:1458,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domain.c:1459,1
    - Dst: vcpu_check_shutdown
      Src: /src/xen/xen/common/domain.c:1460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1452
    functionDepth: 4
    functionLinenumber: 1452
    functionLinenumberEnd: 1463
    functionName: vcpu_start_shutdown_deferral
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - vcpu_check_shutdown
    - unlikely
    linkageType: ''
    returnType: int
    signature: int vcpu_start_shutdown_deferral(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/common/domain.c:1468,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domain.c:1469,1
    - Dst: vcpu_check_shutdown
      Src: /src/xen/xen/common/domain.c:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1465
    functionDepth: 4
    functionLinenumber: 1465
    functionLinenumberEnd: 1471
    functionName: vcpu_end_shutdown_deferral
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 2
    functionsReached:
    - smp_mb
    - vcpu_check_shutdown
    - unlikely
    linkageType: ''
    returnType: void
    signature: void vcpu_end_shutdown_deferral(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/domain.c:1476,1
    - Dst: sync_local_execstate
      Src: /src/xen/xen/common/domain.c:1486,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/common/domain.c:1496,1
    - Dst: arch_vcpu_destroy
      Src: /src/xen/xen/common/domain.c:1497,1
    - Dst: sched_destroy_vcpu
      Src: /src/xen/xen/common/domain.c:1498,1
    - Dst: destroy_waitqueue_vcpu
      Src: /src/xen/xen/common/domain.c:1499,1
    - Dst: grant_table_destroy
      Src: /src/xen/xen/common/domain.c:1502,1
    - Dst: arch_domain_destroy
      Src: /src/xen/xen/common/domain.c:1504,1
    - Dst: watchdog_domain_destroy
      Src: /src/xen/xen/common/domain.c:1506,1
    - Dst: sched_destroy_domain
      Src: /src/xen/xen/common/domain.c:1508,1
    - Dst: xfree
      Src: /src/xen/xen/common/domain.c:1511,1
    - Dst: xfree
      Src: /src/xen/xen/common/domain.c:1513,1
    - Dst: xfree
      Src: /src/xen/xen/common/domain.c:1515,1
    - Dst: vcpu_destroy
      Src: /src/xen/xen/common/domain.c:1520,1
    - Dst: put_domain
      Src: /src/xen/xen/common/domain.c:1523,1
    - Dst: evtchn_destroy_final
      Src: /src/xen/xen/common/domain.c:1525,1
    - Dst: radix_tree_destroy
      Src: /src/xen/xen/common/domain.c:1528,1
    - Dst: xfree
      Src: /src/xen/xen/common/domain.c:1531,1
    - Dst: domain_changed_state
      Src: /src/xen/xen/common/domain.c:1533,1
    - Dst: _domain_destroy
      Src: /src/xen/xen/common/domain.c:1535,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/domain.c:1537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1474
    functionDepth: 5
    functionLinenumber: 1474
    functionLinenumberEnd: 1538
    functionName: complete_domain_destroy
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - watchdog_domain_destroy
    - vcpu_destroy
    - tasklet_kill
    - container_of
    - evtchn_destroy_final
    - radix_tree_destroy
    - sync_local_execstate
    - arch_domain_destroy
    - domain_changed_state
    - _domain_destroy
    - send_global_virq
    - sched_destroy_domain
    - sched_destroy_vcpu
    - put_domain
    - destroy_waitqueue_vcpu
    - arch_vcpu_destroy
    - xfree
    - grant_table_destroy
    linkageType: ''
    returnType: void
    signature: void complete_domain_destroy(struct rcu_head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:1543,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/common/domain.c:1546,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/domain.c:1549,1
    - Dst: domlist_remove
      Src: /src/xen/xen/common/domain.c:1552,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/domain.c:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1556
    functionName: domain_destroy
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 32
    functionsReached:
    - atomic_cmpxchg
    - TRACE_TIME
    - call_rcu
    - BUG_ON
    - domlist_remove
    linkageType: ''
    returnType: void
    signature: void domain_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:1560,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/domain.c:1561,1
    - Dst: vcpu_sleep_sync
      Src: /src/xen/xen/common/domain.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1563
    functionName: vcpu_pause
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 13
    functionsReached:
    - vcpu_sleep_sync
    - ASSERT
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void vcpu_pause(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/common/domain.c:1567,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/common/domain.c:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1569
    functionName: vcpu_pause_nosync
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 7
    functionsReached:
    - atomic_inc
    - vcpu_sleep_nosync
    linkageType: ''
    returnType: void
    signature: void vcpu_pause_nosync(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/common/domain.c:1573,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/domain.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1575
    functionName: vcpu_unpause
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 17
    functionsReached:
    - vcpu_wake
    - atomic_dec_and_test
    linkageType: ''
    returnType: void
    signature: void vcpu_unpause(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/common/domain.c:1584,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/domain.c:1589,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/common/domain.c:1592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1595
    functionName: vcpu_pause_by_systemcontroller
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 2
    functionsReached:
    - vcpu_pause
    - cmpxchg
    - old::old
    linkageType: ''
    returnType: int
    signature: int vcpu_pause_by_systemcontroller(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/common/domain.c:1604,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/domain.c:1609,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1615
    functionName: vcpu_unpause_by_systemcontroller
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - vcpu_unpause
    - cmpxchg
    - old::old
    linkageType: ''
    returnType: int
    signature: int vcpu_unpause_by_systemcontroller(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/common/domain.c:1621,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1624,1
    - Dst: vcpu_sleep_sync
      Src: /src/xen/xen/common/domain.c:1625,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/common/domain.c:1628,1
    - Dst: arch_domain_pause
      Src: /src/xen/xen/common/domain.c:1630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - d
    - sync
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1617
    functionDepth: 1
    functionLinenumber: 1617
    functionLinenumberEnd: 1631
    functionName: _domain_pause
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 13
    functionsReached:
    - for_each_vcpu
    - atomic_inc
    - vcpu_sleep_sync
    - vcpu_sleep_nosync
    - arch_domain_pause
    linkageType: ''
    returnType: void
    signature: void _domain_pause(struct domain *d, bool sync)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:1635,1
    - Dst: _domain_pause
      Src: /src/xen/xen/common/domain.c:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1637
    functionName: domain_pause
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 35
    functionsReached:
    - ASSERT
    - _domain_pause
    linkageType: ''
    returnType: void
    signature: void domain_pause(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _domain_pause
      Src: /src/xen/xen/common/domain.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1642
    functionName: domain_pause_nosync
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 4
    functionsReached:
    - _domain_pause
    linkageType: ''
    returnType: void
    signature: void domain_pause_nosync(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arch_domain_unpause
      Src: /src/xen/xen/common/domain.c:1648,1
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/common/domain.c:1650,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1651,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/domain.c:1652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1653
    functionName: domain_unpause
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 42
    functionsReached:
    - vcpu_wake
    - for_each_vcpu
    - atomic_dec_and_test
    - arch_domain_unpause
    linkageType: ''
    returnType: void
    signature: void domain_unpause(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/common/domain.c:1662,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/domain.c:1671,1
    - Dst: _domain_pause
      Src: /src/xen/xen/common/domain.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - sync
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1655
    functionDepth: 2
    functionLinenumber: 1655
    functionLinenumberEnd: 1677
    functionName: _domain_pause_by_systemcontroller
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - _domain_pause
    - cmpxchg
    - old::old
    linkageType: ''
    returnType: int
    signature: int _domain_pause_by_systemcontroller(struct domain *d, bool sync)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _domain_pause_by_systemcontroller
      Src: /src/xen/xen/common/domain.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1679
    functionDepth: 3
    functionLinenumber: 1679
    functionLinenumberEnd: 1682
    functionName: domain_pause_by_systemcontroller
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - _domain_pause_by_systemcontroller
    linkageType: ''
    returnType: int
    signature: int domain_pause_by_systemcontroller(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _domain_pause_by_systemcontroller
      Src: /src/xen/xen/common/domain.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1684
    functionDepth: 3
    functionLinenumber: 1684
    functionLinenumberEnd: 1687
    functionName: domain_pause_by_systemcontroller_nosync
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - _domain_pause_by_systemcontroller
    linkageType: ''
    returnType: int
    signature: int domain_pause_by_systemcontroller_nosync(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/common/domain.c:1696,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/domain.c:1701,1
    - Dst: printk
      Src: /src/xen/xen/common/domain.c:1719,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/domain.c:1722,1
    - Dst: domain_pending_scrub_free
      Src: /src/xen/xen/common/domain.c:1723,1
    - Dst: arch_domain_creation_finished
      Src: /src/xen/xen/common/domain.c:1727,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domain.c:1730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1689
    functionDepth: 3
    functionLinenumber: 1689
    functionLinenumberEnd: 1733
    functionName: domain_unpause_by_systemcontroller
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 2
    functionsReached:
    - domain_unpause
    - old::old
    - domain_pending_scrub_free
    - printk
    - arch_domain_creation_finished
    - domain_crash
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int domain_unpause_by_systemcontroller(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/common/domain.c:1742,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1744,1
    - Dst: likely
      Src: /src/xen/xen/common/domain.c:1745,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/common/domain.c:1746,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1747,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domain.c:1750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1735
    functionDepth: 3
    functionLinenumber: 1735
    functionLinenumberEnd: 1753
    functionName: domain_pause_except_self
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - for_each_vcpu
    - spin_unlock
    - vcpu_pause
    - domain_pause
    - likely
    - spin_trylock
    linkageType: ''
    returnType: int
    signature: int domain_pause_except_self(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1761,1
    - Dst: likely
      Src: /src/xen/xen/common/domain.c:1762,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1763,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domain.c:1766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1767
    functionName: domain_unpause_except_self
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - domain_unpause
    - for_each_vcpu
    - vcpu_unpause
    - likely
    linkageType: ''
    returnType: void
    signature: void domain_unpause_except_self(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domain.c:1775,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:1776,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1779,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1782,1
    - Dst: evtchn_reset
      Src: /src/xen/xen/common/domain.c:1784,1
    - Dst: grant_table_warn_active_grants
      Src: /src/xen/xen/common/domain.c:1788,1
    - Dst: argo_soft_reset
      Src: /src/xen/xen/common/domain.c:1790,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/domain.c:1794,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:1794,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1795,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1796,1
    - Dst: arch_domain_soft_reset
      Src: /src/xen/xen/common/domain.c:1799,1
    - Dst: domain_resume
      Src: /src/xen/xen/common/domain.c:1801,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/domain.c:1803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - d
    - resuming
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1770
    functionDepth: 4
    functionLinenumber: 1770
    functionLinenumberEnd: 1806
    functionName: domain_soft_reset
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 4
    functionsReached:
    - for_each_vcpu
    - spin_unlock
    - runstate_guest
    - unmap_guest_area
    - set_xen_guest_handle
    - grant_table_warn_active_grants
    - spin_lock
    - evtchn_reset
    - argo_soft_reset
    - arch_domain_soft_reset
    - domain_crash
    - domain_resume
    linkageType: ''
    returnType: int
    signature: int domain_soft_reset(struct domain *d, bool resuming)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/domain.c:1794,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:1794,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1795,1
    - Dst: unmap_guest_area
      Src: /src/xen/xen/common/domain.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1797
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 46
    functionsReached:
    - runstate_guest
    - unmap_guest_area
    - set_xen_guest_handle
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_pause
      Src: /src/xen/xen/common/domain.c:1814,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/domain.c:1815,1
    - Dst: set_bit
      Src: /src/xen/xen/common/domain.c:1817,1
    - Dst: arch_vcpu_reset
      Src: /src/xen/xen/common/domain.c:1818,1
    - Dst: set_bit
      Src: /src/xen/xen/common/domain.c:1822,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/domain.c:1824,1
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/domain.c:1831,1
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/domain.c:1833,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/domain.c:1834,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/domain.c:1835,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/domain.c:1838,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1809
    functionDepth: 2
    functionLinenumber: 1809
    functionLinenumberEnd: 1842
    functionName: vcpu_reset
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 8
    functionsReached:
    - vcpu_pause
    - domain_unlock
    - vcpu_unpause
    - domain_lock
    - arch_vcpu_reset
    - clear_bit
    - vcpu_temporary_affinity
    - set_bit
    linkageType: ''
    returnType: int
    signature: int vcpu_reset(struct vcpu *v)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/domain.c:1855,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/domain.c:1859,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/common/domain.c:1863,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/domain.c:1868,1
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/common/domain.c:1871,1
    - Dst: _gfn
      Src: /src/xen/xen/common/domain.c:1871,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/domain.c:1875,1
    - Dst: put_page
      Src: /src/xen/xen/common/domain.c:1877,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/common/domain.c:1881,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/domain.c:1884,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/common/domain.c:1887,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/domain.c:1892,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/common/domain.c:1898,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domain.c:1900,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/domain.c:1903,1
    - Dst: populate
      Src: /src/xen/xen/common/domain.c:1909,1
    - Dst: SWAP
      Src: /src/xen/xen/common/domain.c:1911,1
    - Dst: SWAP
      Src: /src/xen/xen/common/domain.c:1912,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/domain.c:1917,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/common/domain.c:1927,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domain.c:1932,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/domain.c:1933,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/domain.c:1937,1
    - Dst: vcpu_info
      Src: /src/xen/xen/common/domain.c:1937,1
    - Dst: vcpu_mark_events_pending
      Src: /src/xen/xen/common/domain.c:1938,1
    - Dst: force_update_vcpu_system_time
      Src: /src/xen/xen/common/domain.c:1940,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:1944,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/domain.c:1949,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/domain.c:1950,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - v
    - gaddr
    - size
    - area
    argTypes:
    - struct vcpu*
    - paddr_t
    - unsigned int
    - struct guest_area*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1844
    functionDepth: 2
    functionLinenumber: 1844
    functionLinenumberEnd: 1954
    functionName: map_guest_area
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 12
    functionsReached:
    - put_page_and_type
    - domain_unlock
    - _gfn
    - BUILD_BUG_ON
    - force_update_vcpu_system_time
    - PFN_DOWN
    - vcpu_mark_events_pending
    - get_page_type
    - write_atomic
    - domain_lock
    - spin_unlock
    - check_get_page_from_gfn
    - unmap_domain_page_global
    - vcpu_unpause
    - has_32bit_shinfo
    - __map_domain_page_global
    - vcpu_info
    - vcpu_pause
    - IS_ALIGNED
    - PAGE_OFFSET
    - spin_trylock
    - SWAP
    - put_page
    - populate
    linkageType: ''
    returnType: int
    signature: "int map_guest_area(struct vcpu *v, paddr_t gaddr, unsigned int size,\n
      \                  struct guest_area *area,\n                   void (*populate)(void
      *dst, struct vcpu *v))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domain.c:1968,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/domain.c:1968,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/domain.c:1968,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/domain.c:1970,1
    - Dst: vcpu_info_reset
      Src: /src/xen/xen/common/domain.c:1973,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/domain.c:1978,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/domain.c:1982,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/domain.c:1983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - v
    - area
    argTypes:
    - struct vcpu*
    - struct guest_area*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1961
    functionDepth: 2
    functionLinenumber: 1961
    functionLinenumberEnd: 1985
    functionName: unmap_guest_area
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 9
    functionsReached:
    - vcpu_info_reset
    - put_page_and_type
    - domain_unlock
    - unmap_domain_page_global
    - domain_lock
    - ASSERT
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void unmap_guest_area(struct vcpu *v, struct guest_area *area)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_vcpu_guest_context
      Src: /src/xen/xen/common/domain.c:1993,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:1996,1
    - Dst: free_vcpu_guest_context
      Src: /src/xen/xen/common/domain.c:1998,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/domain.c:2002,1
    - Dst: arch_set_info_guest
      Src: /src/xen/xen/common/domain.c:2003,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/domain.c:2004,1
    - Dst: free_vcpu_guest_context
      Src: /src/xen/xen/common/domain.c:2006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2009
    functionName: default_initialise_vcpu
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - domain_unlock
    - copy_from_guest
    - domain_lock
    - alloc_vcpu_guest_context
    - free_vcpu_guest_context
    - arch_set_info_guest
    linkageType: ''
    returnType: int
    signature: int default_initialise_vcpu(struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/common/domain.c:2041,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/domain.c:2042,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/common/domain.c:2046,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/domain.c:2051,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/domain.c:2053,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/domain.c:2058,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:2058,1
    - Dst: update_guest_memory_policy
      Src: /src/xen/xen/common/domain.c:2061,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/common/domain.c:2063,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/common/domain.c:2066,1
    - Dst: __raw_copy_to_guest
      Src: /src/xen/xen/common/domain.c:2074,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/domain.c:2076,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/common/domain.c:2080,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/common/domain.c:2084,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/domain.c:2085,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/domain.c:2090,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:2090,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/domain.c:2096,1
    - Dst: __raw_copy_to_guest
      Src: /src/xen/xen/common/domain.c:2097,1
    - Dst: update_guest_memory_policy
      Src: /src/xen/xen/common/domain.c:2101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2104
    functionName: update_runstate_area
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 5
    functionsReached:
    - runstate_guest
    - has_32bit_shinfo
    - write_atomic
    - smp_wmb
    - __copy_to_guest
    - guest_handle_is_null
    - update_guest_memory_policy
    - VM_ASSIST
    - XLAT_vcpu_runstate_info
    - __raw_copy_to_guest
    linkageType: ''
    returnType: bool
    signature: bool update_runstate_area(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/domain.c:2118,1
    - Dst: __vcpu_info
      Src: /src/xen/xen/common/domain.c:2120,1
    - Dst: memcpy
      Src: /src/xen/xen/common/domain.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - map
    - v
    argTypes:
    - void*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2125
    functionName: vcpu_info_populate
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - __vcpu_info
    linkageType: ''
    returnType: void
    signature: void vcpu_info_populate(void *map, struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/common/domain.c:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - v
    argTypes:
    - void*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2127
    functionDepth: 3
    functionLinenumber: 2127
    functionLinenumberEnd: 2145
    functionName: runstate_area_populate
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    linkageType: ''
    returnType: void
    signature: void runstate_area_populate(void *map, struct vcpu *v)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/common/domain.c:2156,1
    - Dst: arch_initialise_vcpu
      Src: /src/xen/xen/common/domain.c:2159,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domain.c:2161,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/common/domain.c:2169,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/domain.c:2175,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/domain.c:2179,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/domain.c:2180,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/domain.c:2182,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/domain.c:2188,1
    - Dst: test_bit
      Src: /src/xen/xen/common/domain.c:2189,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/common/domain.c:2197,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/common/domain.c:2206,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/domain.c:2209,1
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/common/domain.c:2210,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/domain.c:2221,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/domain.c:2222,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:2231,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/domain.c:2234,1
    - Dst: vcpu_set_periodic_timer
      Src: /src/xen/xen/common/domain.c:2240,1
    - Dst: vcpu_set_periodic_timer
      Src: /src/xen/xen/common/domain.c:2246,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:2256,1
    - Dst: NOW
      Src: /src/xen/xen/common/domain.c:2259,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/domain.c:2265,1
    - Dst: send_timer_event
      Src: /src/xen/xen/common/domain.c:2266,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/domain.c:2270,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/domain.c:2270,1
    - Dst: set_timer
      Src: /src/xen/xen/common/domain.c:2271,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/domain.c:2280,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:2290,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/common/domain.c:2294,1
    - Dst: _gfn
      Src: /src/xen/xen/common/domain.c:2294,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/domain.c:2296,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/domain.c:2296,1
    - Dst: map_guest_area
      Src: /src/xen/xen/common/domain.c:2305,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domain.c:2308,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:2320,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/domain.c:2323,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:2327,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/domain.c:2331,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:2331,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/domain.c:2335,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/domain.c:2336,1
    - Dst: runstate_guest
      Src: /src/xen/xen/common/domain.c:2336,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domain.c:2351,1
    - Dst: map_guest_area
      Src: /src/xen/xen/common/domain.c:2354,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domain.c:2359,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 128
    argCount: 2
    argNames:
    - cmd
    - v
    argTypes:
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2147
    functionDepth: 4
    functionLinenumber: 2147
    functionLinenumberEnd: 2371
    functionName: common_vcpu_op
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - for_each_vcpu
    - domain_unlock
    - copy_from_guest
    - test_and_set_bit
    - _gfn
    - stop_timer
    - vcpu_runstate_get
    - vcpu_wake
    - test_and_clear_bit
    - smp_processor_id
    - gaddr_to_gfn
    - hypercall_create_continuation
    - domain_lock
    - copy_to_guest
    - test_bit
    - NOW
    - vcpu_sleep_nosync
    - migrate_timer
    - send_timer_event
    - domain_shutdown
    - map_guest_area
    - runstate_guest
    - vcpu_set_periodic_timer
    - set_timer
    - arch_initialise_vcpu
    - is_pv_domain
    - gfn_to_gaddr
    - gfn_x
    - continue_hypercall_on_cpu
    - __copy_to_guest
    - guest_handle_okay
    - MILLISECS
    linkageType: ''
    returnType: long
    signature: long common_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arch_vm_assist_valid_mask
      Src: /src/xen/xen/common/domain.c:2377,1
    - Dst: test_bit
      Src: /src/xen/xen/common/domain.c:2379,1
    - Dst: set_bit
      Src: /src/xen/xen/common/domain.c:2385,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/domain.c:2389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cmd
    - type
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2374
    functionDepth: 0
    functionLinenumber: 2374
    functionLinenumberEnd: 2394
    functionName: do_vm_assist
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - test_bit
    - arch_vm_assist_valid_mask
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: long
    signature: long do_vm_assist(unsigned int cmd, unsigned int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/common/domain.c:2401,1
    - Dst: alloc_pirq_struct
      Src: /src/xen/xen/common/domain.c:2403,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/common/domain.c:2406,1
    - Dst: free_pirq_struct
      Src: /src/xen/xen/common/domain.c:2408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2399
    functionDepth: 2
    functionLinenumber: 2399
    functionLinenumberEnd: 2414
    functionName: pirq_get_info
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 5
    functionsReached:
    - pirq_info
    - free_pirq_struct
    - radix_tree_insert
    - alloc_pirq_struct
    linkageType: ''
    returnType: struct pirq
    signature: struct pirq *pirq_get_info(struct domain *d, int pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2416
    functionDepth: 0
    functionLinenumber: 2416
    functionLinenumberEnd: 2419
    functionName: _free_pirq_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _free_pirq_struct(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_rcu
      Src: /src/xen/xen/common/domain.c:2425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2421
    functionDepth: 1
    functionLinenumber: 2421
    functionLinenumberEnd: 2426
    functionName: free_pirq_struct
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 2
    functionsReached:
    - call_rcu
    linkageType: ''
    returnType: void
    signature: void free_pirq_struct(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_sleep_sync
      Src: /src/xen/xen/common/domain.c:2447,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/domain.c:2449,1
    - Dst: likely
      Src: /src/xen/xen/common/domain.c:2451,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/domain.c:2451,1
    - Dst: struct migrate_info*::func
      Src: /src/xen/xen/common/domain.c:2452,1
    - Dst: arch_hypercall_tasklet_result
      Src: /src/xen/xen/common/domain.c:2454,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/domain.c:2456,1
    - Dst: xfree
      Src: /src/xen/xen/common/domain.c:2460,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domain.c:2461,1
    - Dst: put_domain
      Src: /src/xen/xen/common/domain.c:2462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2440
    functionDepth: 2
    functionLinenumber: 2440
    functionLinenumberEnd: 2464
    functionName: continue_hypercall_tasklet_handler
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 0
    functionsReached:
    - struct migrate_info*::func
    - smp_processor_id
    - vcpu_unpause
    - likely
    - put_domain
    - this_cpu
    - vcpu_sleep_sync
    - xfree
    - arch_hypercall_tasklet_result
    linkageType: ''
    returnType: void
    signature: void continue_hypercall_tasklet_handler(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/common/domain.c:2471,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/domain.c:2474,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/domain.c:2479,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/common/domain.c:2486,1
    - Dst: tasklet_init
      Src: /src/xen/xen/common/domain.c:2487,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/common/domain.c:2490,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/domain.c:2491,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domain.c:2495,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/domain.c:2503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - cpu
    - data
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2466
    functionDepth: 3
    functionLinenumber: 2466
    functionLinenumberEnd: 2507
    functionName: continue_hypercall_on_cpu
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 5
    functionsReached:
    - cpu_online
    - get_knownalive_domain
    - xmalloc
    - tasklet_kill
    - tasklet_schedule_on_cpu
    - BUG_ON
    - tasklet_init
    - this_cpu
    - vcpu_pause_nosync
    linkageType: ''
    returnType: int
    signature: "int continue_hypercall_on_cpu(\n    unsigned int cpu, long (*func)(void
      *data), void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pv_shim_get_initial_domain_id
      Src: /src/xen/xen/common/domain.c:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2509
    functionDepth: 0
    functionLinenumber: 2509
    functionLinenumberEnd: 2516
    functionName: get_initial_domain_id
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 3
    functionsReached:
    - pv_shim_get_initial_domain_id
    linkageType: ''
    returnType: domid_t
    signature: domid_t get_initial_domain_id(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:2524,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/domain.c:2530,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domain.c:2531,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2520
    functionDepth: 3
    functionLinenumber: 2520
    functionLinenumberEnd: 2533
    functionName: freeze_domains
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - rcu_read_lock
    - domain_pause
    - for_each_domain
    linkageType: ''
    returnType: void
    signature: void freeze_domains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/domain.c:2539,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/domain.c:2540,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domain.c:2541,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/domain.c:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2535
    functionDepth: 3
    functionLinenumber: 2535
    functionLinenumberEnd: 2543
    functionName: thaw_domains
    functionSourceFile: /src/xen/xen/common/domain.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - rcu_read_unlock
    - rcu_read_lock
    - for_each_domain
    linkageType: ''
    returnType: void
    signature: void thaw_domains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PERFCOUNTER
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFCOUNTER( var, name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: PERFCOUNTER_ARRAY
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFCOUNTER_ARRAY( var, name, size )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PERFSTATUS
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFSTATUS( var, name )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - name
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: PERFSTATUS_ARRAY
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERFSTATUS_ARRAY( var, name, size )
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/perfc.c:33,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:35,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:42,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/perfc.c:47,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:48,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:51,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:58,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:59,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:59,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:69,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:76,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/perfc.c:83,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:84,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:88,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:89,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:95,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:104,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:105,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:113,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 114
    functionName: perfc_printall
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached:
    - for_each_online_cpu
    - per_cpu
    - printk
    - NOW
    linkageType: ''
    returnType: void
    signature: void perfc_printall(unsigned char key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:58,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:59,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 8
    functionsReached:
    - per_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:95,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:104,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 8
    functionsReached:
    - per_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/perfc.c:120,1
    - Dst: printk
      Src: /src/xen/xen/common/perfc.c:123,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/perfc.c:134,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:135,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/perfc.c:141,1
    - Dst: memset
      Src: /src/xen/xen/common/perfc.c:142,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/perfc.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 150
    functionName: perfc_reset
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 1
    functionsReached:
    - for_each_online_cpu
    - per_cpu
    - printk
    - memset
    - NOW
    linkageType: ''
    returnType: void
    signature: void perfc_reset(unsigned char key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/perfc.c:244,1
    - Dst: perfc_copy_info
      Src: /src/xen/xen/common/perfc.c:249,1
    - Dst: perfc_reset
      Src: /src/xen/xen/common/perfc.c:250,1
    - Dst: perfc_copy_info
      Src: /src/xen/xen/common/perfc.c:254,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/perfc.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pc
    argTypes:
    - struct xen_sysctl_perfc_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 268
    functionName: perfc_control
    functionSourceFile: /src/xen/xen/common/perfc.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - perfc_reset
    - perfc_copy_info
    linkageType: ''
    returnType: int
    signature: int perfc_control(struct xen_sysctl_perfc_op *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: percpu_init_areas
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void percpu_init_areas(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/percpu.c:31,1
    - Dst: MEMF_node
      Src: /src/xen/xen/common/percpu.c:32,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/percpu.c:40,1
    - Dst: memset
      Src: /src/xen/xen/common/percpu.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 47
    functionName: init_percpu_area
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 0
    functionsReached:
    - memset
    - cpu_to_node
    - alloc_xenheap_pages
    - MEMF_node
    linkageType: ''
    returnType: int
    signature: int init_percpu_area(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/percpu.c:57,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/common/percpu.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: _free_percpu_area
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 0
    functionsReached:
    - free_xenheap_pages
    - container_of
    linkageType: ''
    returnType: void
    signature: void _free_percpu_area(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/percpu.c:67,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/percpu.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: free_percpu_area
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 0
    functionsReached:
    - call_rcu
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void free_percpu_area(unsigned int cpu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: init_percpu_area
      Src: /src/xen/xen/common/percpu.c:82,1
    - Dst: free_percpu_area
      Src: /src/xen/xen/common/percpu.c:89,1
    - Dst: free_percpu_area
      Src: /src/xen/xen/common/percpu.c:94,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/common/percpu.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: cpu_percpu_callback
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 0
    functionsReached:
    - notifier_from_errno
    - free_percpu_area
    - init_percpu_area
    linkageType: ''
    returnType: int
    signature: "int cpu_percpu_callback(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/percpu.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: percpu_presmp_init
    functionSourceFile: /src/xen/xen/common/percpu.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int percpu_presmp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_channel.h:11,1
    - Dst: BITS_PER_EVTCHN_WORD
      Src: /src/xen/xen/common/event_channel.h:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: max_evtchns
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached:
    - BITS_PER_EVTCHN_WORD
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int max_evtchns(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct domain*::evtchn_port_ops::is_busy
      Src: /src/xen/xen/common/event_channel.h:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: evtchn_is_busy
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached:
    - struct domain*::evtchn_port_ops::is_busy
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_is_busy(const struct domain *d,\n                                  const
      struct evtchn *evtchn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/common/event_channel.h:24,1
    - Dst: struct domain*::evtchn_port_ops::unmask
      Src: /src/xen/xen/common/event_channel.h:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: evtchn_port_unmask
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached:
    - evtchn_usable
    - struct domain*::evtchn_port_ops::unmask
    linkageType: ''
    returnType: void
    signature: "void evtchn_port_unmask(struct domain *d,\n                                      struct
      evtchn *evtchn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_usable
      Src: /src/xen/xen/common/event_channel.h:34,1
    - Dst: struct domain*::evtchn_port_ops::set_priority
      Src: /src/xen/xen/common/event_channel.h:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - d
    - evtchn
    - priority
    argTypes:
    - struct domain*
    - struct evtchn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: evtchn_port_set_priority
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached:
    - evtchn_usable
    - struct domain*::evtchn_port_ops::set_priority
    linkageType: ''
    returnType: int
    signature: "int evtchn_port_set_priority(struct domain *d,\n                                           struct
      evtchn *evtchn,\n                                           unsigned int priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct domain*::evtchn_port_ops::print_state
      Src: /src/xen/xen/common/event_channel.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: evtchn_port_print_state
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached:
    - struct domain*::evtchn_port_ops::print_state
    linkageType: ''
    returnType: void
    signature: "void evtchn_port_print_state(struct domain *d,\n                                           const
      struct evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - init_control
    argTypes:
    - struct evtchn_init_control*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: evtchn_fifo_init_control
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evtchn_fifo_init_control(struct evtchn_init_control *init_control)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expand_array
    argTypes:
    - struct evtchn_expand_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: evtchn_fifo_expand_array
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int evtchn_fifo_expand_array(const struct evtchn_expand_array *expand_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: evtchn_fifo_destroy
    functionSourceFile: /src/xen/xen/common/event_channel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void evtchn_fifo_destroy(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preempt_count
      Src: /src/xen/xen/common/preempt.c:30,1
    - Dst: in_irq
      Src: /src/xen/xen/common/preempt.c:30,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/preempt.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: in_atomic
    functionSourceFile: /src/xen/xen/common/preempt.c
    functionUses: 1
    functionsReached:
    - preempt_count
    - local_irq_is_enabled
    - in_irq
    linkageType: ''
    returnType: bool
    signature: bool in_atomic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/preempt.c:36,1
    - Dst: preempt_count
      Src: /src/xen/xen/common/preempt.c:36,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/preempt.c:37,1
    - Dst: in_irq
      Src: /src/xen/xen/common/preempt.c:37,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/preempt.c:38,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/preempt.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: ASSERT_NOT_IN_ATOMIC
    functionSourceFile: /src/xen/xen/common/preempt.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - local_irq_is_enabled
    - preempt_count
    - in_irq
    linkageType: ''
    returnType: void
    signature: void ASSERT_NOT_IN_ATOMIC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mfn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: mfn_to_color
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mfn_to_color(mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mfn
    - ','
    - color
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: get_mfn_with_color
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_mfn_with_color(mfn, color)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/llc-coloring.c:69,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/llc-coloring.c:74,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - buf
    - colors
    - max_num_colors
    - num_colors
    argTypes:
    - char*
    - unsigned int[]
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 94
    functionName: parse_color_config
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: "int parse_color_config(const char *buf, unsigned int colors[],\n                                     unsigned
      int max_num_colors,\n                                     unsigned int *num_colors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_color_config
      Src: /src/xen/xen/common/llc-coloring.c:98,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/llc-coloring.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: parse_dom0_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - parse_color_config
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int parse_dom0_colors(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_color_config
      Src: /src/xen/xen/common/llc-coloring.c:105,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/llc-coloring.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: parse_xen_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - parse_color_config
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int parse_xen_colors(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:114,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:119,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:125,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:128,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - colors
    - num_colors
    argTypes:
    - unsigned int[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: print_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_colors(const unsigned int colors[], unsigned int num_colors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - colors
    - num_colors
    argTypes:
    - unsigned int[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: check_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: bool check_colors(const unsigned int colors[], unsigned int num_colors)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_llc_way_size
      Src: /src/xen/xen/common/llc-coloring.c:164,1
    - Dst: panic
      Src: /src/xen/xen/common/llc-coloring.c:166,1
    - Dst: panic
      Src: /src/xen/xen/common/llc-coloring.c:170,1
    - Dst: panic
      Src: /src/xen/xen/common/llc-coloring.c:179,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:183,1
    - Dst: panic
      Src: /src/xen/xen/common/llc-coloring.c:189,1
    - Dst: MIN
      Src: /src/xen/xen/common/llc-coloring.c:198,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:200,1
    - Dst: check_colors
      Src: /src/xen/xen/common/llc-coloring.c:207,1
    - Dst: panic
      Src: /src/xen/xen/common/llc-coloring.c:208,1
    - Dst: arch_llc_coloring_init
      Src: /src/xen/xen/common/llc-coloring.c:210,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 211
    functionName: llc_coloring_init
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 3
    functionsReached:
    - check_colors
    - get_llc_way_size
    - panic
    - arch_llc_coloring_init
    - printk
    - MIN
    linkageType: ''
    returnType: void
    signature: void llc_coloring_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:218,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:219,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:220,1
    - Dst: print_colors
      Src: /src/xen/xen/common/llc-coloring.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: dump_llc_coloring_info
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - print_colors
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_llc_coloring_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:229,1
    - Dst: print_colors
      Src: /src/xen/xen/common/llc-coloring.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: domain_dump_llc_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 2
    functionsReached:
    - print_colors
    - printk
    linkageType: ''
    returnType: void
    signature: void domain_dump_llc_colors(const struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/common/llc-coloring.c:235,1
    - Dst: check_colors
      Src: /src/xen/xen/common/llc-coloring.c:241,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:243,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/llc-coloring.c:247,1
    - Dst: typeof
      Src: /src/xen/xen/common/llc-coloring.c:247,1
    - Dst: memcpy
      Src: /src/xen/xen/common/llc-coloring.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 256
    functionName: dom0_set_llc_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached:
    - check_colors
    - xmalloc_array
    - typeof
    - printk
    - memcpy
    linkageType: ''
    returnType: int
    signature: int dom0_set_llc_colors(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/llc-coloring.c:272,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/llc-coloring.c:276,1
    - Dst: xfree
      Src: /src/xen/xen/common/llc-coloring.c:278,1
    - Dst: check_colors
      Src: /src/xen/xen/common/llc-coloring.c:282,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:284,1
    - Dst: xfree
      Src: /src/xen/xen/common/llc-coloring.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - d
    - config
    argTypes:
    - struct domain*
    - struct xen_domctl_set_llc_colors*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 293
    functionName: domain_set_llc_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached:
    - check_colors
    - xmalloc_array
    - copy_from_guest
    - printk
    - xfree
    linkageType: ''
    returnType: int
    signature: "int domain_set_llc_colors(struct domain *d,\n                          const
      struct xen_domctl_set_llc_colors *config)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: domain_llc_coloring_init
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain_llc_coloring_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/common/llc-coloring.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: domain_llc_coloring_free
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void domain_llc_coloring_free(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/llc-coloring.c:324,1
    - Dst: parse_color_config
      Src: /src/xen/xen/common/llc-coloring.c:328,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:331,1
    - Dst: xfree
      Src: /src/xen/xen/common/llc-coloring.c:332,1
    - Dst: check_colors
      Src: /src/xen/xen/common/llc-coloring.c:336,1
    - Dst: printk
      Src: /src/xen/xen/common/llc-coloring.c:338,1
    - Dst: xfree
      Src: /src/xen/xen/common/llc-coloring.c:339,1
    - Dst: xrealloc_array
      Src: /src/xen/xen/common/llc-coloring.c:344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - d
    - str
    argTypes:
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 351
    functionName: domain_set_llc_colors_from_str
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - check_colors
    - xmalloc_array
    - printk
    - xfree
    - parse_color_config
    - xrealloc_array
    linkageType: ''
    returnType: int
    signature: int domain_set_llc_colors_from_str(struct domain *d, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_color
      Src: /src/xen/xen/common/llc-coloring.c:355,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/llc-coloring.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: page_to_llc_color
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - mfn_to_color
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int page_to_llc_color(const struct page_info *pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: get_max_nr_llc_colors
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_max_nr_llc_colors(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_color
      Src: /src/xen/xen/common/llc-coloring.c:365,1
    - Dst: get_mfn_with_color
      Src: /src/xen/xen/common/llc-coloring.c:372,1
    - Dst: get_mfn_with_color
      Src: /src/xen/xen/common/llc-coloring.c:376,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/llc-coloring.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: xen_colored_mfn
    functionSourceFile: /src/xen/xen/common/llc-coloring.c
    functionUses: 1
    functionsReached:
    - get_mfn_with_color
    - mfn_to_color
    - mfn_add
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t xen_colored_mfn(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: DIRENTRY_SIZE
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIRENTRY_SIZE(name_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:83,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:83,1
    - Dst: read_lock
      Src: /src/xen/xen/common/hypfs.c:85,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hypfs_read_lock
    argTypes:
    - void
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: HYPFS_DIR_INIT
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - read_lock
    - this_cpu
    linkageType: ''
    returnType: void
    signature: 'void HYPFS_DIR_INIT(hypfs_root, "");


      static void hypfs_read_lock(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:91,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:91,1
    - Dst: write_lock
      Src: /src/xen/xen/common/hypfs.c:93,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: hypfs_write_lock
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - write_lock
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hypfs_write_lock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:99,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:101,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/hypfs.c:106,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/hypfs.c:109,1
    - Dst: BUG
      Src: /src/xen/xen/common/hypfs.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: hypfs_unlock
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - BUG
    - write_unlock
    - read_unlock
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hypfs_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: hypfs_node_enter
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check hypfs_node_enter(\n    const struct hypfs_entry
      *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: hypfs_node_exit
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hypfs_node_exit(const struct hypfs_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:128,1
    - Dst: struct hypfs_entry*::funcs::enter
      Src: /src/xen/xen/common/hypfs.c:130,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/hypfs.c:131,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/hypfs.c:132,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:134,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: node_enter
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - PTR_ERR
    - ASSERT
    - this_cpu
    - struct hypfs_entry*::funcs::enter
    linkageType: ''
    returnType: int
    signature: int node_enter(const struct hypfs_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:144,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:146,1
    - Dst: struct hypfs_entry*::funcs::exit
      Src: /src/xen/xen/common/hypfs.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: node_exit
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - struct hypfs_entry*::funcs::exit
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void node_exit(const struct hypfs_entry *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:154,1
    - Dst: node_exit
      Src: /src/xen/xen/common/hypfs.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: node_exit_all
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - node_exit
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void node_exit_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/hypfs.c:163,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/hypfs.c:164,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:166,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/hypfs.c:166,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:167,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/hypfs.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: hypfs_alloc_dyndata
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - ASSERT
    - per_cpu
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: void *hypfs_alloc_dyndata(unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:176,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: hypfs_get_dyndata
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void *hypfs_get_dyndata(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:185,1
    - Dst: XFREE
      Src: /src/xen/xen/common/hypfs.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: hypfs_free_dyndata
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - XFREE
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void hypfs_free_dyndata(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:195,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:196,1
    - Dst: funcs::funcs
      Src: /src/xen/xen/common/hypfs.c:196,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:197,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:198,1
    - Dst: funcs::funcs
      Src: /src/xen/xen/common/hypfs.c:198,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:199,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:200,1
    - Dst: funcs::funcs
      Src: /src/xen/xen/common/hypfs.c:200,1
    - Dst: hypfs_write_lock
      Src: /src/xen/xen/common/hypfs.c:202,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/hypfs.c:204,1
    - Dst: strcmp
      Src: /src/xen/xen/common/hypfs.c:206,1
    - Dst: name::name
      Src: /src/xen/xen/common/hypfs.c:206,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/hypfs.c:211,1
    - Dst: list::list
      Src: /src/xen/xen/common/hypfs.c:211,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/hypfs.c:224,1
    - Dst: list::list
      Src: /src/xen/xen/common/hypfs.c:224,1
    - Dst: strlen
      Src: /src/xen/xen/common/hypfs.c:229,1
    - Dst: name::name
      Src: /src/xen/xen/common/hypfs.c:229,1
    - Dst: DIRENTRY_SIZE
      Src: /src/xen/xen/common/hypfs.c:231,1
    - Dst: hypfs_unlock
      Src: /src/xen/xen/common/hypfs.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - parent
    - new
    argTypes:
    - struct hypfs_entry_dir*
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 238
    functionName: add_entry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 5
    functionsReached:
    - funcs::funcs
    - hypfs_write_lock
    - DIRENTRY_SIZE
    - ASSERT
    - name::name
    - strlen
    - hypfs_unlock
    - list::list
    - strcmp
    - list_for_each_entry
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: int add_entry(struct hypfs_entry_dir *parent, struct hypfs_entry *new)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_entry
      Src: /src/xen/xen/common/hypfs.c:245,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/hypfs.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parent
    - dir
    - nofault
    argTypes:
    - struct hypfs_entry_dir*
    - struct hypfs_entry_dir*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: hypfs_add_dir
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - add_entry
    linkageType: ''
    returnType: int
    signature: "int hypfs_add_dir(struct hypfs_entry_dir *parent,\n                  struct
      hypfs_entry_dir *dir, bool nofault)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct hypfs_entry_dir*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: hypfs_add_dyndir
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void hypfs_add_dyndir(struct hypfs_entry_dir *parent,\n                      struct
      hypfs_entry_dir *template)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_entry
      Src: /src/xen/xen/common/hypfs.c:271,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/hypfs.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - parent
    - leaf
    - nofault
    argTypes:
    - struct hypfs_entry_dir*
    - struct hypfs_entry_leaf*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 275
    functionName: hypfs_add_leaf
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - add_entry
    linkageType: ''
    returnType: int
    signature: "int hypfs_add_leaf(struct hypfs_entry_dir *parent,\n                   struct
      hypfs_entry_leaf *leaf, bool nofault)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/hypfs.c:284,1
    - Dst: memchr
      Src: /src/xen/xen/common/hypfs.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - ulen
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 291
    functionName: hypfs_get_path_user
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - memchr
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: "int hypfs_get_path_user(char *buf,\n                               XEN_GUEST_HANDLE_PARAM(const_char)
      uaddr,\n                               unsigned long ulen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dir
    - name
    - name_len
    argTypes:
    - struct hypfs_entry_dir*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: hypfs_leaf_findentry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check hypfs_leaf_findentry(\n    const struct
      hypfs_entry_dir *dir, const char *name, unsigned int name_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/hypfs.c:304,1
    - Dst: strncmp
      Src: /src/xen/xen/common/hypfs.c:306,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:309,1
    - Dst: strlen
      Src: /src/xen/xen/common/hypfs.c:311,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dir
    - name
    - name_len
    argTypes:
    - struct hypfs_entry_dir*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: hypfs_dir_findentry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ERR_PTR
    - list_for_each_entry
    - strlen
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check hypfs_dir_findentry(\n    const struct
      hypfs_entry_dir *dir, const char *name, unsigned int name_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:329,1
    - Dst: strchr
      Src: /src/xen/xen/common/hypfs.c:334,1
    - Dst: strchr
      Src: /src/xen/xen/common/hypfs.c:336,1
    - Dst: node_enter
      Src: /src/xen/xen/common/hypfs.c:339,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:341,1
    - Dst: struct hypfs_entry_dir*::e::funcs::findentry
      Src: /src/xen/xen/common/hypfs.c:343,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/hypfs.c:344,1
    - Dst: container_of
      Src: /src/xen/xen/common/hypfs.c:348,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - dir
    - path
    argTypes:
    - struct hypfs_entry_dir*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 352
    functionName: hypfs_get_entry_rel
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - node_enter
    - ERR_PTR
    - IS_ERR
    - container_of
    - strchr
    - struct hypfs_entry_dir*::e::funcs::findentry
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *hypfs_get_entry_rel(struct hypfs_entry_dir *dir,\n
      \                                              const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/hypfs.c:357,1
    - Dst: hypfs_get_entry_rel
      Src: /src/xen/xen/common/hypfs.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: hypfs_get_entry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - hypfs_get_entry_rel
    linkageType: ''
    returnType: struct hypfs_entry
    signature: struct hypfs_entry *hypfs_get_entry(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: hypfs_getsize
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hypfs_getsize(const struct hypfs_entry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/common/hypfs.c:379,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/hypfs.c:382,1
    - Dst: DIRENTRY_SIZE
      Src: /src/xen/xen/common/hypfs.c:385,1
    - Dst: struct xen_hypfs_dirlistentry::e::content_len::e::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - id
    - is_last
    - uaddr
    argTypes:
    - unsigned int
    - bool
    - XEN_GUEST_HANDLE_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 401
    functionName: hypfs_read_dyndir_id_entry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - struct xen_hypfs_dirlistentry::e::content_len::e::funcs::getsize
    - ASSERT_UNREACHABLE
    - DIRENTRY_SIZE
    linkageType: ''
    returnType: int
    signature: "int hypfs_read_dyndir_id_entry(const struct hypfs_entry_dir *template,\n
      \                              unsigned int id, bool is_last,\n                               XEN_GUEST_HANDLE_PARAM(void)
      *uaddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/hypfs.c:408,1
    - Dst: struct hypfs_dyndir_id*::e::funcs::enter
      Src: /src/xen/xen/common/hypfs.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 412
    functionName: hypfs_dyndir_enter
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - hypfs_get_dyndata
    - struct hypfs_dyndir_id*::e::funcs::enter
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check hypfs_dyndir_enter(\n    const struct
      hypfs_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/hypfs.c:419,1
    - Dst: struct hypfs_dyndir_id*::e::funcs::findentry
      Src: /src/xen/xen/common/hypfs.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dir
    - name
    - name_len
    argTypes:
    - struct hypfs_entry_dir*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 423
    functionName: hypfs_dyndir_findentry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - struct hypfs_dyndir_id*::e::funcs::findentry
    - hypfs_get_dyndata
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check hypfs_dyndir_findentry(\n    const struct
      hypfs_entry_dir *dir, const char *name, unsigned int name_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/hypfs.c:430,1
    - Dst: struct hypfs_dyndir_id*::e::funcs::read
      Src: /src/xen/xen/common/hypfs.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 434
    functionName: hypfs_read_dyndir
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - hypfs_get_dyndata
    - struct hypfs_dyndir_id*::e::funcs::read
    linkageType: ''
    returnType: int
    signature: "int hypfs_read_dyndir(\n    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void)
      uaddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/hypfs.c:447,1
    - Dst: snprintf
      Src: /src/xen/xen/common/hypfs.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - id
    - data
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 462
    functionName: hypfs_gen_dyndir_id_entry
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - hypfs_get_dyndata
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *hypfs_gen_dyndir_id_entry(\n    const struct hypfs_entry_dir
      *template, unsigned int id, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIRENTRY_SIZE
      Src: /src/xen/xen/common/hypfs.c:467,1
    - Dst: snprintf
      Src: /src/xen/xen/common/hypfs.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: hypfs_dynid_entry_size
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - snprintf
    - DIRENTRY_SIZE
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int hypfs_dynid_entry_size(const struct hypfs_entry *template,\n
      \                                   unsigned int id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct hypfs_entry*::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:475,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:478,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:478,1
    - Dst: container_of
      Src: /src/xen/xen/common/hypfs.c:480,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/hypfs.c:482,1
    - Dst: strlen
      Src: /src/xen/xen/common/hypfs.c:485,1
    - Dst: DIRENTRY_SIZE
      Src: /src/xen/xen/common/hypfs.c:486,1
    - Dst: node_enter
      Src: /src/xen/xen/common/hypfs.c:488,1
    - Dst: struct hypfs_entry*::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:495,1
    - Dst: list_is_last
      Src: /src/xen/xen/common/hypfs.c:497,1
    - Dst: node_exit
      Src: /src/xen/xen/common/hypfs.c:499,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/hypfs.c:501,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/hypfs.c:504,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/hypfs.c:508,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 515
    functionName: hypfs_read_dir
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - node_enter
    - container_of
    - list_is_last
    - node_exit
    - guest_handle_add_offset
    - DIRENTRY_SIZE
    - copy_to_guest_offset
    - copy_to_guest
    - ASSERT
    - strlen
    - struct hypfs_entry*::funcs::getsize
    - this_cpu
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int hypfs_read_dir(const struct hypfs_entry *entry,\n                            XEN_GUEST_HANDLE_PARAM(void)
      uaddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct hypfs_entry*::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:521,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:523,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:523,1
    - Dst: container_of
      Src: /src/xen/xen/common/hypfs.c:525,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/hypfs.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: hypfs_read_leaf
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - container_of
    - ASSERT
    - this_cpu
    - struct hypfs_entry*::funcs::getsize
    - copy_to_guest
    linkageType: ''
    returnType: int
    signature: "int hypfs_read_leaf(\n    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void)
      uaddr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct hypfs_entry*::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:534,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/hypfs.c:547,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/hypfs.c:554,1
    - Dst: struct hypfs_entry*::funcs::read
      Src: /src/xen/xen/common/hypfs.c:556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - entry
    - ulen
    argTypes:
    - struct hypfs_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 560
    functionName: hypfs_read
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 1
    functionsReached:
    - guest_handle_add_offset
    - struct hypfs_entry*::funcs::read
    - struct hypfs_entry*::funcs::getsize
    - copy_to_guest
    linkageType: ''
    returnType: int
    signature: "int hypfs_read(const struct hypfs_entry *entry,\n                      XEN_GUEST_HANDLE_PARAM(void)
      uaddr, unsigned long ulen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:570,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:570,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:571,1
    - Dst: struct hypfs_entry*::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:577,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/hypfs.c:580,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/hypfs.c:585,1
    - Dst: memchr
      Src: /src/xen/xen/common/hypfs.c:591,1
    - Dst: memcpy
      Src: /src/xen/xen/common/hypfs.c:595,1
    - Dst: xfree
      Src: /src/xen/xen/common/hypfs.c:599,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - leaf
    - ulen
    argTypes:
    - struct hypfs_entry_leaf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 601
    functionName: hypfs_write_leaf
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - copy_from_guest
    - ASSERT
    - memchr
    - struct hypfs_entry*::funcs::getsize
    - this_cpu
    - xfree
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int hypfs_write_leaf(\n    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n    unsigned int ulen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:609,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:609,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:610,1
    - Dst: struct hypfs_entry_leaf*::e::funcs::getsize
      Src: /src/xen/xen/common/hypfs.c:611,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/hypfs.c:617,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - leaf
    - ulen
    argTypes:
    - struct hypfs_entry_leaf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 623
    functionName: hypfs_write_bool
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - ASSERT
    - struct hypfs_entry_leaf*::e::funcs::getsize
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int hypfs_write_bool(\n    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n    unsigned int ulen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:633,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/hypfs.c:633,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/hypfs.c:634,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/hypfs.c:640,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/hypfs.c:645,1
    - Dst: memchr
      Src: /src/xen/xen/common/hypfs.c:649,1
    - Dst: container_of
      Src: /src/xen/xen/common/hypfs.c:652,1
    - Dst: struct param_hypfs*::func
      Src: /src/xen/xen/common/hypfs.c:653,1
    - Dst: xfree
      Src: /src/xen/xen/common/hypfs.c:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - leaf
    - ulen
    argTypes:
    - struct hypfs_entry_leaf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 658
    functionName: hypfs_write_custom
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - container_of
    - xzalloc_array
    - ASSERT
    - memchr
    - struct param_hypfs*::func
    - this_cpu
    - xfree
    linkageType: ''
    returnType: int
    signature: "int hypfs_write_custom(\n    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n    unsigned int ulen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - leaf
    - ulen
    argTypes:
    - struct hypfs_entry_leaf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 665
    functionName: hypfs_write_deny
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int hypfs_write_deny(\n    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n    unsigned int ulen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/hypfs.c:673,1
    - Dst: struct hypfs_entry*::funcs::write
      Src: /src/xen/xen/common/hypfs.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - entry
    - ulen
    argTypes:
    - struct hypfs_entry*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 676
    functionName: hypfs_write
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 2
    functionsReached:
    - struct hypfs_entry*::funcs::write
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hypfs_write(struct hypfs_entry *entry,\n                       XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n                       unsigned long ulen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xsm_hypfs_op
      Src: /src/xen/xen/common/hypfs.c:686,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/hypfs.c:691,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/hypfs.c:692,1
    - Dst: hypfs_write_lock
      Src: /src/xen/xen/common/hypfs.c:699,1
    - Dst: hypfs_read_lock
      Src: /src/xen/xen/common/hypfs.c:701,1
    - Dst: hypfs_get_path_user
      Src: /src/xen/xen/common/hypfs.c:703,1
    - Dst: hypfs_get_entry
      Src: /src/xen/xen/common/hypfs.c:707,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/hypfs.c:708,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/hypfs.c:710,1
    - Dst: node_enter
      Src: /src/xen/xen/common/hypfs.c:714,1
    - Dst: hypfs_read
      Src: /src/xen/xen/common/hypfs.c:721,1
    - Dst: hypfs_write
      Src: /src/xen/xen/common/hypfs.c:725,1
    - Dst: guest_handle_const_cast
      Src: /src/xen/xen/common/hypfs.c:725,1
    - Dst: node_exit_all
      Src: /src/xen/xen/common/hypfs.c:734,1
    - Dst: hypfs_unlock
      Src: /src/xen/xen/common/hypfs.c:736,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - cmd
    - arg1
    - arg2
    - arg4
    argTypes:
    - unsigned int
    - XEN_GUEST_HANDLE_PARAM
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 739
    functionName: do_hypfs_op
    functionSourceFile: /src/xen/xen/common/hypfs.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - node_enter
    - guest_handle_const_cast
    - hypfs_read_lock
    - hypfs_write_lock
    - PTR_ERR
    - node_exit_all
    - hypfs_get_path_user
    - hypfs_get_entry
    - guest_handle_is_null
    - hypfs_read
    - hypfs_unlock
    - xsm_hypfs_op
    - hypfs_write
    linkageType: ''
    returnType: long
    signature: "long do_hypfs_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(const_char)
      arg1,\n    unsigned long arg2, XEN_GUEST_HANDLE_PARAM(void) arg3, unsigned long
      arg4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:10,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:11,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:12,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:13,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:14,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:15,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:18,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:19,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:20,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:21,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:22,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:24,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:26,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:27,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:36,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:37,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:38,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:39,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:40,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:42,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:43,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 45
    functionName: test_ffs
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: void
    signature: void test_ffs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:50,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:51,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:52,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:53,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:54,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:55,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:58,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:59,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:60,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:61,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:62,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:64,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:66,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:67,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:76,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:77,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:78,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:79,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:80,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:82,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:83,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 85
    functionName: test_fls
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: void
    signature: void test_fls(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:93,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/common/bitops.c:94,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:98,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:100,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/common/bitops.c:101,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:105,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:107,1
    - Dst: for_each_set_bit
      Src: /src/xen/xen/common/bitops.c:108,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:112,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:115,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 128
    functionName: test_for_each_set_bit
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - panic
    - for_each_set_bit
    - HIDE
    linkageType: ''
    returnType: void
    signature: void test_for_each_set_bit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: for_each_set_bit
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit ( i, ui )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: fls_g
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fls_g(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - iter
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: for_each_set_bit_reverse
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_set_bit_reverse(iter, val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:166,1
    - Dst: for_each_set_bit_reverse
      Src: /src/xen/xen/common/bitops.c:167,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:171,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:173,1
    - Dst: for_each_set_bit_reverse
      Src: /src/xen/xen/common/bitops.c:174,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:178,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:180,1
    - Dst: for_each_set_bit_reverse
      Src: /src/xen/xen/common/bitops.c:181,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:185,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:188,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 201
    functionName: test_for_each_set_bit_reverse
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - for_each_set_bit_reverse
    - panic
    - HIDE
    linkageType: ''
    returnType: void
    signature: void test_for_each_set_bit_reverse(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: for_each_set_bit_reverse
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_set_bit_reverse ( i, ui )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:210,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:211,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:212,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:213,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:215,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:217,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:220,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: test_multiple_bits_set
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: void
    signature: void test_multiple_bits_set(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:227,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:228,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:229,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:230,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:231,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:233,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:234,1
    - Dst: CHECK
      Src: /src/xen/xen/common/bitops.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: test_hweight
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - CHECK
    linkageType: ''
    returnType: void
    signature: void test_hweight(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffs
      Src: /src/xen/xen/common/bitops.c:242,1
    - Dst: test_fls
      Src: /src/xen/xen/common/bitops.c:243,1
    - Dst: test_for_each_set_bit
      Src: /src/xen/xen/common/bitops.c:244,1
    - Dst: test_for_each_set_bit_reverse
      Src: /src/xen/xen/common/bitops.c:245,1
    - Dst: test_multiple_bits_set
      Src: /src/xen/xen/common/bitops.c:247,1
    - Dst: test_hweight
      Src: /src/xen/xen/common/bitops.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: test_bitops
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - test_for_each_set_bit_reverse
    - test_for_each_set_bit
    - test_hweight
    - test_fls
    - test_multiple_bits_set
    - test_ffs
    linkageType: ''
    returnType: void
    signature: void test_bitops(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: muldiv64
      Src: /src/xen/xen/common/bitops.c:256,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:257,1
    - Dst: HIDE
      Src: /src/xen/xen/common/bitops.c:258,1
    - Dst: panic
      Src: /src/xen/xen/common/bitops.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: test_muldiv64
    functionSourceFile: /src/xen/xen/common/bitops.c
    functionUses: 0
    functionsReached:
    - panic
    - muldiv64
    - HIDE
    linkageType: ''
    returnType: void
    signature: void test_muldiv64(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct bunzip_data*::fill
      Src: /src/xen/xen/common/bunzip2.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - bd
    - bits_wanted
    argTypes:
    - struct bunzip_data*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 143
    functionName: get_bits
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached:
    - struct bunzip_data*::fill
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_bits(struct bunzip_data *bd, char bits_wanted)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:164,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:165,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:166,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:174,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:176,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:184,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:188,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:195,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:203,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:210,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:236,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:253,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:377,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 180
    argCount: 1
    argNames:
    - bd
    argTypes:
    - struct bunzip_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 509
    functionName: get_next_block
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached:
    - get_bits
    linkageType: ''
    returnType: int
    signature: int get_next_block(struct bunzip_data *bd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_next_block
      Src: /src/xen/xen/common/bunzip2.c:605,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 3
    argNames:
    - bd
    - outbuf
    - len
    argTypes:
    - struct bunzip_data*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 614
    functionName: read_bunzip
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached:
    - get_next_block
    linkageType: ''
    returnType: int
    signature: int read_bunzip(struct bunzip_data *bd, unsigned char *outbuf, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: nofill
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nofill(void *buf, unsigned int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/bunzip2.c:637,1
    - Dst: memset
      Src: /src/xen/xen/common/bunzip2.c:640,1
    - Dst: get_bits
      Src: /src/xen/xen/common/bunzip2.c:658,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/bunzip2.c:666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - bdp
    - inbuf
    - len
    argTypes:
    - struct bunzip_data**
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 670
    functionName: start_bunzip
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached:
    - memset
    - malloc
    - large_malloc
    - get_bits
    linkageType: ''
    returnType: int
    signature: "int start_bunzip(struct bunzip_data **bdp, void *inbuf, int len,\n\t\t\t
      \      int (*fill)(void*, unsigned int))"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/bunzip2.c:685,1
    - Dst: error
      Src: /src/xen/xen/common/bunzip2.c:688,1
    - Dst: malloc
      Src: /src/xen/xen/common/bunzip2.c:694,1
    - Dst: error
      Src: /src/xen/xen/common/bunzip2.c:696,1
    - Dst: start_bunzip
      Src: /src/xen/xen/common/bunzip2.c:700,1
    - Dst: read_bunzip
      Src: /src/xen/xen/common/bunzip2.c:703,1
    - Dst: flush
      Src: /src/xen/xen/common/bunzip2.c:709,1
    - Dst: error
      Src: /src/xen/xen/common/bunzip2.c:718,1
    - Dst: error
      Src: /src/xen/xen/common/bunzip2.c:722,1
    - Dst: large_free
      Src: /src/xen/xen/common/bunzip2.c:727,1
    - Dst: free
      Src: /src/xen/xen/common/bunzip2.c:730,1
    - Dst: free
      Src: /src/xen/xen/common/bunzip2.c:733,1
    - Dst: free
      Src: /src/xen/xen/common/bunzip2.c:736,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 4
    argNames:
    - buf
    - len
    - outbuf
    - pos
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 738
    functionName: bunzip2
    functionSourceFile: /src/xen/xen/common/bunzip2.c
    functionUses: 0
    functionsReached:
    - free
    - large_free
    - error
    - malloc
    - read_bunzip
    - flush
    - start_bunzip
    linkageType: ''
    returnType: int
    signature: "int bunzip2(unsigned char *buf, unsigned int len,\n\t\t   int(*fill)(void*,
      unsigned int),\n\t\t   int(*flush)(void*, unsigned int),\n\t\t   unsigned char
      *outbuf, unsigned int *pos,\n\t\t   void(*error)(const char *x))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_execution_state
      Src: /src/xen/xen/common/stack-protector.c:21,1
    - Dst: panic
      Src: /src/xen/xen/common/stack-protector.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: __stack_chk_fail
    functionSourceFile: /src/xen/xen/common/stack-protector.c
    functionUses: 0
    functionsReached:
    - dump_execution_state
    - panic
    linkageType: ''
    returnType: void
    signature: void __stack_chk_fail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: vm_bitmap
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vm_bitmap(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:27,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/vmap.c:30,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/vmap.c:31,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/vmap.c:32,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:35,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/common/vmap.c:41,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/vmap.c:44,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/vmap.c:46,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/vmap.c:47,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/common/vmap.c:49,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/vmap.c:50,1
    - Dst: clear_page
      Src: /src/xen/xen/common/vmap.c:52,1
    - Dst: bitmap_fill
      Src: /src/xen/xen/common/vmap.c:54,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:54,1
    - Dst: populate_pt_range
      Src: /src/xen/xen/common/vmap.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - type
    - start
    - end
    argTypes:
    - enum vmap_region
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 58
    functionName: vm_init_type
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 3
    functionsReached:
    - page_to_mfn
    - PFN_UP
    - clear_page
    - alloc_domheap_page
    - populate_pt_range
    - vm_bitmap
    - BUG_ON
    - ASSERT
    - map_pages_to_xen
    - bitmap_fill
    - PFN_DOWN
    - alloc_boot_pages
    linkageType: ''
    returnType: void
    signature: void vm_init_type(enum vmap_region type, void *start, void *end)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/common/vmap.c:68,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:70,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vmap.c:74,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:79,1
    - Dst: test_bit
      Src: /src/xen/xen/common/vmap.c:79,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:79,1
    - Dst: find_next_bit
      Src: /src/xen/xen/common/vmap.c:82,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:82,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/common/vmap.c:94,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:94,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vmap.c:107,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/common/vmap.c:113,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/vmap.c:116,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/vmap.c:120,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vmap.c:123,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:127,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/common/vmap.c:129,1
    - Dst: clear_page
      Src: /src/xen/xen/common/vmap.c:131,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/common/vmap.c:140,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/vmap.c:140,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/vmap.c:140,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/vmap.c:142,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/vmap.c:142,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vmap.c:146,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/vmap.c:152,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:152,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:154,1
    - Dst: test_bit
      Src: /src/xen/xen/common/vmap.c:154,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:154,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:156,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vmap.c:159,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 3
    argNames:
    - nr
    - align
    - t
    argTypes:
    - unsigned int
    - unsigned int
    - enum vmap_region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 162
    functionName: vm_alloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - ISOLATE_LSB
    - spin_unlock
    - page_to_mfn
    - __set_bit
    - init_boot_pages
    - find_next_zero_bit
    - mfn_to_maddr
    - mfn_to_page
    - find_next_bit
    - alloc_domheap_page
    - clear_page
    - vm_bitmap
    - map_pages_to_xen
    - ASSERT
    - spin_lock
    - free_domheap_page
    - alloc_boot_pages
    - test_bit
    linkageType: ''
    returnType: void
    signature: "void *vm_alloc(unsigned int nr, unsigned int align,\n                      enum
      vmap_region t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/vmap.c:177,1
    - Dst: test_bit
      Src: /src/xen/xen/common/vmap.c:178,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:178,1
    - Dst: test_bit
      Src: /src/xen/xen/common/vmap.c:179,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - va
    - type
    argTypes:
    - void*
    - enum vmap_region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: vm_index
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - test_bit
    - vm_bitmap
    - PFN_DOWN
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vm_index(const void *va, enum vmap_region type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_index
      Src: /src/xen/xen/common/vmap.c:184,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/common/vmap.c:189,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:189,1
    - Dst: min
      Src: /src/xen/xen/common/vmap.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - va
    - type
    argTypes:
    - void*
    - enum vmap_region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 192
    functionName: vm_size
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - min
    - vm_index
    - vm_bitmap
    - find_next_zero_bit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vm_size(const void *va, enum vmap_region type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vm_index
      Src: /src/xen/xen/common/vmap.c:197,1
    - Dst: vm_index
      Src: /src/xen/xen/common/vmap.c:202,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/vmap.c:207,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vmap.c:211,1
    - Dst: test_bit
      Src: /src/xen/xen/common/vmap.c:215,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:215,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/vmap.c:218,1
    - Dst: vm_bitmap
      Src: /src/xen/xen/common/vmap.c:218,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vmap.c:221,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 222
    functionName: vm_free
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vm_index
    - vm_bitmap
    - spin_lock
    - __test_and_clear_bit
    - test_bit
    - WARN_ON
    linkageType: ''
    returnType: void
    signature: void vm_free(const void *va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_alloc
      Src: /src/xen/xen/common/vmap.c:228,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/common/vmap.c:233,1
    - Dst: vunmap
      Src: /src/xen/xen/common/vmap.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - mfn
    - granularity
    - nr
    - align
    - flags
    - type
    argTypes:
    - mfn_t*
    - unsigned int
    - unsigned int
    - unsigned int
    - pte_attr_t
    - enum vmap_region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 241
    functionName: __vmap
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 5
    functionsReached:
    - vm_alloc
    - map_pages_to_xen
    - vunmap
    linkageType: ''
    returnType: void
    signature: "void *__vmap(const mfn_t *mfn, unsigned int granularity,\n             unsigned
      int nr, unsigned int align, pte_attr_t flags,\n             enum vmap_region
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmap
      Src: /src/xen/xen/common/vmap.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - mfn_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: vmap
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 11
    functionsReached:
    - __vmap
    linkageType: ''
    returnType: void
    signature: void *vmap(const mfn_t *mfn, unsigned int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __vmap
      Src: /src/xen/xen/common/vmap.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mfn
    - nr
    argTypes:
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: vmap_contig
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 5
    functionsReached:
    - __vmap
    linkageType: ''
    returnType: void
    signature: void *vmap_contig(mfn_t mfn, unsigned int nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_size
      Src: /src/xen/xen/common/vmap.c:255,1
    - Dst: vm_size
      Src: /src/xen/xen/common/vmap.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: vmap_size
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - vm_size
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vmap_size(const void *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmap_size
      Src: /src/xen/xen/common/vmap.c:266,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/common/vmap.c:269,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/common/vmap.c:271,1
    - Dst: vm_free
      Src: /src/xen/xen/common/vmap.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: vunmap
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 11
    functionsReached:
    - vmap_size
    - map_pages_to_xen
    - vm_free
    - destroy_xen_mappings
    linkageType: ''
    returnType: void
    signature: void vunmap(const void *va)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/common/vmap.c:279,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:283,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/vmap.c:285,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/vmap.c:288,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/vmap.c:294,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/vmap.c:297,1
    - Dst: __vmap
      Src: /src/xen/xen/common/vmap.c:300,1
    - Dst: xfree
      Src: /src/xen/xen/common/vmap.c:304,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/vmap.c:309,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/vmap.c:309,1
    - Dst: xfree
      Src: /src/xen/xen/common/vmap.c:310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - size
    - type
    argTypes:
    - size_t
    - enum vmap_region
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 312
    functionName: vmalloc_type
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - page_to_mfn
    - PFN_UP
    - mfn_to_page
    - alloc_domheap_page
    - ASSERT
    - __vmap
    - PFN_DOWN
    - free_domheap_page
    - xfree
    linkageType: ''
    returnType: void
    signature: void *vmalloc_type(size_t size, enum vmap_region type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmalloc_type
      Src: /src/xen/xen/common/vmap.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: vmalloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 3
    functionsReached:
    - vmalloc_type
    linkageType: ''
    returnType: void
    signature: void *vmalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmalloc_type
      Src: /src/xen/xen/common/vmap.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 4
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: vmalloc_xen
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - vmalloc_type
    linkageType: ''
    returnType: void
    signature: void *vmalloc_xen(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vmalloc_type
      Src: /src/xen/xen/common/vmap.c:326,1
    - Dst: clear_page
      Src: /src/xen/xen/common/vmap.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 336
    functionName: vzalloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 7
    functionsReached:
    - clear_page
    - vmalloc_type
    linkageType: ''
    returnType: void
    signature: void *vzalloc(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_LIST_HEAD
      Src: /src/xen/xen/common/vmap.c:342,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:344,1
    - Dst: vmap_to_page
      Src: /src/xen/xen/common/vmap.c:348,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:349,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/vmap.c:350,1
    - Dst: vunmap
      Src: /src/xen/xen/common/vmap.c:352,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/vmap.c:354,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/vmap.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - va
    - pages
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 356
    functionName: _vfree
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - vmap_to_page
    - page_list_add
    - page_list_remove_head
    - vunmap
    - ASSERT
    - free_domheap_page
    - PAGE_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void _vfree(const void *va, unsigned int pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _vfree
      Src: /src/xen/xen/common/vmap.c:363,1
    - Dst: vmap_size
      Src: /src/xen/xen/common/vmap.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: vfree
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 11
    functionsReached:
    - vmap_size
    - _vfree
    linkageType: ''
    returnType: void
    signature: void vfree(void *va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_size
      Src: /src/xen/xen/common/vmap.c:368,1
    - Dst: _vfree
      Src: /src/xen/xen/common/vmap.c:371,1
    - Dst: xfree
      Src: /src/xen/xen/common/vmap.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: xvfree
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 5
    functionsReached:
    - vm_size
    - xfree
    - _vfree
    linkageType: ''
    returnType: void
    signature: void xvfree(void *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:378,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/vmap.c:379,1
    - Dst: vmalloc
      Src: /src/xen/xen/common/vmap.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: _xvmalloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - vmalloc
    - _xmalloc
    linkageType: ''
    returnType: void
    signature: void *_xvmalloc(size_t size, unsigned int align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:384,1
    - Dst: _xzalloc
      Src: /src/xen/xen/common/vmap.c:385,1
    - Dst: vzalloc
      Src: /src/xen/xen/common/vmap.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: _xvzalloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 2
    functionsReached:
    - _xzalloc
    - ASSERT
    - vzalloc
    linkageType: ''
    returnType: void
    signature: void *_xvzalloc(size_t size, unsigned int align)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vm_size
      Src: /src/xen/xen/common/vmap.c:390,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vmap.c:393,1
    - Dst: _xrealloc
      Src: /src/xen/xen/common/vmap.c:398,1
    - Dst: vmalloc
      Src: /src/xen/xen/common/vmap.c:400,1
    - Dst: memcpy
      Src: /src/xen/xen/common/vmap.c:409,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/common/vmap.c:409,1
    - Dst: xfree
      Src: /src/xen/xen/common/vmap.c:410,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/vmap.c:413,1
    - Dst: _xvmalloc
      Src: /src/xen/xen/common/vmap.c:417,1
    - Dst: memcpy
      Src: /src/xen/xen/common/vmap.c:420,1
    - Dst: min
      Src: /src/xen/xen/common/vmap.c:420,1
    - Dst: vfree
      Src: /src/xen/xen/common/vmap.c:421,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/vmap.c:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - va
    - size
    - align
    argTypes:
    - void*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 388
    functionDepth: 6
    functionLinenumber: 388
    functionLinenumberEnd: 428
    functionName: _xvrealloc
    functionSourceFile: /src/xen/xen/common/vmap.c
    functionUses: 0
    functionsReached:
    - vfree
    - PFN_UP
    - vm_size
    - _xrealloc
    - _xvmalloc
    - vmalloc
    - ASSERT
    - min
    - PAGE_OFFSET
    - xfree
    - memcpy
    linkageType: ''
    returnType: void
    signature: void *_xvrealloc(void *va, size_t size, unsigned int align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_to_xenctl_bitmap
      Src: /src/xen/xen/common/domctl.c:43,1
    - Dst: nodemask_bits
      Src: /src/xen/xen/common/domctl.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xenctl_nodemap
    - nodemask
    argTypes:
    - struct xenctl_bitmap*
    - nodemask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: nodemask_to_xenctl_bitmap
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - bitmap_to_xenctl_bitmap
    - nodemask_bits
    linkageType: ''
    returnType: int
    signature: "int nodemask_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_nodemap,\n
      \                                    const nodemask_t *nodemask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenctl_bitmap_to_bitmap
      Src: /src/xen/xen/common/domctl.c:50,1
    - Dst: nodemask_bits
      Src: /src/xen/xen/common/domctl.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nodemask
    - xenctl_nodemap
    argTypes:
    - nodemask_t*
    - struct xenctl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: xenctl_bitmap_to_nodemask
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - nodemask_bits
    - xenctl_bitmap_to_bitmap
    linkageType: ''
    returnType: int
    signature: "int xenctl_bitmap_to_nodemask(nodemask_t *nodemask,\n                                     const
      struct xenctl_bitmap *xenctl_nodemap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/domctl.c:61,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/domctl.c:72,1
    - Dst: is_xenstore_domain
      Src: /src/xen/xen/common/domctl.c:92,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/domctl.c:93,1
    - Dst: xsm_security_domaininfo
      Src: /src/xen/xen/common/domctl.c:96,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/domctl.c:98,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/domctl.c:102,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/domctl.c:105,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/domctl.c:108,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/common/domctl.c:108,1
    - Dst: _mfn
      Src: /src/xen/xen/common/domctl.c:108,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/domctl.c:108,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/domctl.c:109,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/common/domctl.c:109,1
    - Dst: cpupool_get_id
      Src: /src/xen/xen/common/domctl.c:111,1
    - Dst: memcpy
      Src: /src/xen/xen/common/domctl.c:113,1
    - Dst: arch_get_domain_info
      Src: /src/xen/xen/common/domctl.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 116
    functionName: getdomaininfo
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - _mfn
    - SHARED_M2P
    - atomic_read
    - domain_tot_pages
    - gfn_x
    - BUG_ON
    - cpupool_get_id
    - arch_get_domain_info
    - xsm_security_domaininfo
    - vcpu_runstate_get
    - memset
    - mfn_to_gfn
    - memcpy
    - is_hvm_domain
    - is_xenstore_domain
    linkageType: ''
    returnType: void
    signature: void getdomaininfo(struct domain *d, struct xen_domctl_getdomaininfo
      *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/domctl.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 47
    functionsReached:
    - vcpu_runstate_get
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/common/domctl.c:124,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/domctl.c:132,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domctl.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: domctl_lock_acquire
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - spin_trylock
    linkageType: ''
    returnType: bool
    signature: bool domctl_lock_acquire(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domctl.c:141,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domctl.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: domctl_lock_release
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void domctl_lock_release(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/domctl.c:149,1
    - Dst: xfree
      Src: /src/xen/xen/common/domctl.c:150,1
    - Dst: xvfree
      Src: /src/xen/xen/common/domctl.c:151,1
    - Dst: xfree
      Src: /src/xen/xen/common/domctl.c:152,1
    - Dst: xfree
      Src: /src/xen/xen/common/domctl.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vnuma
    argTypes:
    - struct vnuma_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: vnuma_destroy
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 1
    functionsReached:
    - xvfree
    - xfree
    linkageType: ''
    returnType: void
    signature: void vnuma_destroy(struct vnuma_info *vnuma)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domctl.c:178,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/domctl.c:184,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domctl.c:186,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/domctl.c:188,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/domctl.c:189,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/domctl.c:190,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/domctl.c:191,1
    - Dst: vnuma_destroy
      Src: /src/xen/xen/common/domctl.c:196,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domctl.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - nr_vnodes
    - nr_ranges
    - nr_vcpus
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 201
    functionName: vnuma_alloc
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - xmalloc_array
    - xmalloc
    - ERR_PTR
    - vnuma_destroy
    linkageType: ''
    returnType: struct vnuma_info
    signature: "struct vnuma_info *vnuma_alloc(unsigned int nr_vnodes,\n                                      unsigned
      int nr_ranges,\n                                      unsigned int nr_vcpus)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domctl.c:216,1
    - Dst: vnuma_alloc
      Src: /src/xen/xen/common/domctl.c:218,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domctl.c:219,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:224,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:228,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:232,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/domctl.c:246,1
    - Dst: vnuma_destroy
      Src: /src/xen/xen/common/domctl.c:266,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/domctl.c:267,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 2
    argNames:
    - uinfo
    - d
    argTypes:
    - struct xen_domctl_vnuma*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 268
    functionName: vnuma_init
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - ERR_PTR
    - copy_from_guest
    - vnuma_destroy
    - copy_from_guest_offset
    - vnuma_alloc
    linkageType: ''
    returnType: struct vnuma_info
    signature: "struct vnuma_info *vnuma_init(const struct xen_domctl_vnuma *uinfo,\n
      \                                    const struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: is_stable_domctl
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_stable_domctl(uint32_t cmd)
  - BBCount: 115
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/domctl.c:275,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:282,1
    - Dst: is_stable_domctl
      Src: /src/xen/xen/common/domctl.c:286,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/domctl.c:315,1
    - Dst: xsm_domctl
      Src: /src/xen/xen/common/domctl.c:321,1
    - Dst: domctl_lock_acquire
      Src: /src/xen/xen/common/domctl.c:327,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domctl.c:330,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:331,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/domctl.c:349,1
    - Dst: vcpu_reset
      Src: /src/xen/xen/common/domctl.c:351,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:353,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domctl.c:359,1
    - Dst: alloc_vcpu_guest_context
      Src: /src/xen/xen/common/domctl.c:363,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/common/domctl.c:367,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:368,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:370,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/domctl.c:371,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/domctl.c:374,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domctl.c:380,1
    - Dst: arch_set_info_guest
      Src: /src/xen/xen/common/domctl.c:381,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domctl.c:382,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:385,1
    - Dst: free_vcpu_guest_context
      Src: /src/xen/xen/common/domctl.c:389,1
    - Dst: domain_pause_by_systemcontroller
      Src: /src/xen/xen/common/domctl.c:396,1
    - Dst: domain_unpause_by_systemcontroller
      Src: /src/xen/xen/common/domctl.c:400,1
    - Dst: domain_resume
      Src: /src/xen/xen/common/domctl.c:407,1
    - Dst: domid_alloc
      Src: /src/xen/xen/common/domctl.c:413,1
    - Dst: domain_create
      Src: /src/xen/xen/common/domctl.c:421,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domctl.c:422,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/domctl.c:424,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domctl.c:446,1
    - Dst: vcpu_create
      Src: /src/xen/xen/common/domctl.c:455,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/common/domctl.c:459,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domctl.c:463,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/domctl.c:469,1
    - Dst: domain_soft_reset
      Src: /src/xen/xen/common/domctl.c:480,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/domctl.c:484,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:485,1
    - Dst: domain_kill
      Src: /src/xen/xen/common/domctl.c:493,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:495,1
    - Dst: xenctl_bitmap_to_nodemask
      Src: /src/xen/xen/common/domctl.c:503,1
    - Dst: domain_set_node_affinity
      Src: /src/xen/xen/common/domctl.c:506,1
    - Dst: nodemask_to_xenctl_bitmap
      Src: /src/xen/xen/common/domctl.c:511,1
    - Dst: vcpu_affinity_domctl
      Src: /src/xen/xen/common/domctl.c:517,1
    - Dst: sched_adjust
      Src: /src/xen/xen/common/domctl.c:521,1
    - Dst: xsm_getdomaininfo
      Src: /src/xen/xen/common/domctl.c:526,1
    - Dst: getdomaininfo
      Src: /src/xen/xen/common/domctl.c:530,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domctl.c:552,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/domctl.c:556,1
    - Dst: vcpu_pause
      Src: /src/xen/xen/common/domctl.c:559,1
    - Dst: arch_get_info_guest
      Src: /src/xen/xen/common/domctl.c:561,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/domctl.c:564,1
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/common/domctl.c:567,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/domctl.c:568,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/domctl.c:570,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/domctl.c:570,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/domctl.c:573,1
    - Dst: xfree
      Src: /src/xen/xen/common/domctl.c:581,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/domctl.c:598,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/domctl.c:614,1
    - Dst: min
      Src: /src/xen/xen/common/domctl.c:620,1
    - Dst: typeof
      Src: /src/xen/xen/common/domctl.c:620,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/domctl.c:621,1
    - Dst: memcpy
      Src: /src/xen/xen/common/domctl.c:626,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domctl.c:631,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domctl.c:635,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domctl.c:637,1
    - Dst: pirq_access_permitted
      Src: /src/xen/xen/common/domctl.c:652,1
    - Dst: xsm_irq_permission
      Src: /src/xen/xen/common/domctl.c:653,1
    - Dst: irq_permit_access
      Src: /src/xen/xen/common/domctl.c:656,1
    - Dst: irq_deny_access
      Src: /src/xen/xen/common/domctl.c:658,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/common/domctl.c:673,1
    - Dst: xsm_iomem_permission
      Src: /src/xen/xen/common/domctl.c:675,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/common/domctl.c:678,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/common/domctl.c:680,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/common/domctl.c:706,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/common/domctl.c:707,1
    - Dst: xsm_iomem_mapping
      Src: /src/xen/xen/common/domctl.c:710,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/domctl.c:714,1
    - Dst: printk
      Src: /src/xen/xen/common/domctl.c:719,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/common/domctl.c:723,1
    - Dst: _gfn
      Src: /src/xen/xen/common/domctl.c:723,1
    - Dst: _mfn
      Src: /src/xen/xen/common/domctl.c:723,1
    - Dst: printk
      Src: /src/xen/xen/common/domctl.c:725,1
    - Dst: printk
      Src: /src/xen/xen/common/domctl.c:731,1
    - Dst: unmap_mmio_regions
      Src: /src/xen/xen/common/domctl.c:735,1
    - Dst: _gfn
      Src: /src/xen/xen/common/domctl.c:735,1
    - Dst: _mfn
      Src: /src/xen/xen/common/domctl.c:735,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/domctl.c:736,1
    - Dst: printk
      Src: /src/xen/xen/common/domctl.c:737,1
    - Dst: domain_set_time_offset
      Src: /src/xen/xen/common/domctl.c:745,1
    - Dst: get_domain_by_id
      Src: /src/xen/xen/common/domctl.c:753,1
    - Dst: put_domain
      Src: /src/xen/xen/common/domctl.c:760,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/domctl.c:765,1
    - Dst: xsm_set_target
      Src: /src/xen/xen/common/domctl.c:766,1
    - Dst: put_domain
      Src: /src/xen/xen/common/domctl.c:769,1
    - Dst: vm_event_domctl
      Src: /src/xen/xen/common/domctl.c:783,1
    - Dst: unlikely
      Src: /src/xen/xen/common/domctl.c:790,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/domctl.c:794,1
    - Dst: arch_p2m_set_access_required
      Src: /src/xen/xen/common/domctl.c:795,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/domctl.c:797,1
    - Dst: set_global_virq_handler
      Src: /src/xen/xen/common/domctl.c:803,1
    - Dst: vnuma_init
      Src: /src/xen/xen/common/domctl.c:810,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/domctl.c:811,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/domctl.c:813,1
    - Dst: write_lock
      Src: /src/xen/xen/common/domctl.c:818,1
    - Dst: vnuma_destroy
      Src: /src/xen/xen/common/domctl.c:819,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/domctl.c:821,1
    - Dst: monitor_domctl
      Src: /src/xen/xen/common/domctl.c:827,1
    - Dst: iommu_do_domctl
      Src: /src/xen/xen/common/domctl.c:836,1
    - Dst: arch_get_paging_mempool_size
      Src: /src/xen/xen/common/domctl.c:840,1
    - Dst: arch_set_paging_mempool_size
      Src: /src/xen/xen/common/domctl.c:846,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/domctl.c:849,1
    - Dst: domain_set_llc_colors
      Src: /src/xen/xen/common/domctl.c:857,1
    - Dst: get_domain_state
      Src: /src/xen/xen/common/domctl.c:863,1
    - Dst: arch_do_domctl
      Src: /src/xen/xen/common/domctl.c:869,1
    - Dst: domctl_lock_release
      Src: /src/xen/xen/common/domctl.c:873,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/domctl.c:877,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/domctl.c:879,1
    CyclomaticComplexity: 152
    EdgeCount: 152
    ICount: 384
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 275
    functionDepth: 5
    functionLinenumber: 275
    functionLinenumberEnd: 883
    functionName: do_domctl
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 109
    functionsReached:
    - domctl_lock_acquire
    - typeof
    - IS_ENABLED
    - alloc_vcpu_guest_context
    - domctl_lock_release
    - xfree
    - xsm_domctl
    - is_pv_32bit_domain
    - irq_deny_access
    - xsm_iomem_mapping
    - arch_do_domctl
    - iomem_access_permitted
    - domain_pause_by_systemcontroller
    - printk
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_cast
    - rcu_unlock_domain
    - arch_get_info_guest
    - rcu_lock_domain_by_id
    - vnuma_init
    - write_lock
    - xsm_set_target
    - PTR_ERR
    - unlikely
    - copy_from_guest
    - domain_set_node_affinity
    - vm_event_domctl
    - nrspin_unlock
    - arch_set_paging_mempool_size
    - hypercall_create_continuation
    - domain_soft_reset
    - put_domain
    - vcpu_reset
    - is_hardware_domain
    - domain_unpause
    - write_unlock
    - vcpu_unpause
    - iomem_permit_access
    - get_domain_by_id
    - xsm_irq_permission
    - monitor_domctl
    - arch_set_info_guest
    - memcpy
    - _gfn
    - sched_adjust
    - xsm_iomem_permission
    - nodemask_to_xenctl_bitmap
    - guest_handle_is_null
    - is_stable_domctl
    - map_mmio_regions
    - min
    - vcpu_create
    - set_global_virq_handler
    - vnuma_destroy
    - domid_alloc
    - IS_ERR
    - vcpu_pause
    - paging_mode_translate
    - vcpu_affinity_domctl
    - domain_update_node_affinity
    - xenctl_bitmap_to_nodemask
    - get_domain_state
    - arch_p2m_set_access_required
    - domain_kill
    - BUILD_BUG_ON
    - vcpu_runstate_get
    - domain_create
    - is_hvm_domain
    - iommu_do_domctl
    - xzalloc
    - domain_unpause_by_systemcontroller
    - arch_get_paging_mempool_size
    - copy_to_guest
    - domain_resume
    - unmap_mmio_regions
    - _mfn
    - xsm_getdomaininfo
    - getdomaininfo
    - free_vcpu_guest_context
    - __copy_field_to_guest
    - domain_pause
    - pirq_access_permitted
    - irq_permit_access
    - iomem_deny_access
    - __copy_to_guest
    - nrspin_lock
    - domain_set_llc_colors
    - domain_set_time_offset
    linkageType: ''
    returnType: long
    signature: long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domctl.c:889,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/domctl.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 891
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/common/domctl.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/common/debugtrace.c:46,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/debugtrace.c:51,1
    - Dst: MAX
      Src: /src/xen/xen/common/debugtrace.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 63
    functionName: debugtrace_parse_param
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - strncmp
    - MAX
    - parse_size_and_unit
    linkageType: ''
    returnType: int
    signature: int debugtrace_parse_param(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:72,1
    - Dst: console_serial_puts
      Src: /src/xen/xen/common/debugtrace.c:76,1
    - Dst: console_serial_puts
      Src: /src/xen/xen/common/debugtrace.c:81,1
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:82,1
    - Dst: memset
      Src: /src/xen/xen/common/debugtrace.c:84,1
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - which
    argTypes:
    - struct debugtrace_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: debugtrace_dump_buffer
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - memset
    - console_serial_puts
    - printk
    linkageType: ''
    returnType: void
    signature: "void debugtrace_dump_buffer(struct debugtrace_data *data,\n                                   const
      char *which)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: debugtrace_dump_buffer
      Src: /src/xen/xen/common/debugtrace.c:97,1
    - Dst: snprintf
      Src: /src/xen/xen/common/debugtrace.c:103,1
    - Dst: debugtrace_dump_buffer
      Src: /src/xen/xen/common/debugtrace.c:104,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/debugtrace.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: debugtrace_dump_worker
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - snprintf
    - debugtrace_dump_buffer
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void debugtrace_dump_worker(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/common/debugtrace.c:103,1
    - Dst: debugtrace_dump_buffer
      Src: /src/xen/xen/common/debugtrace.c:104,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/debugtrace.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 9
    functionsReached:
    - snprintf
    - debugtrace_dump_buffer
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/debugtrace.c:114,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/debugtrace.c:115,1
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:121,1
    - Dst: debugtrace_dump_worker
      Src: /src/xen/xen/common/debugtrace.c:124,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/debugtrace.c:128,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/common/debugtrace.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 130
    functionName: debugtrace_toggle
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - printk
    - watchdog_disable
    - watchdog_enable
    - debugtrace_dump_worker
    linkageType: ''
    returnType: void
    signature: void debugtrace_toggle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/debugtrace.c:136,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/debugtrace.c:137,1
    - Dst: debugtrace_dump_worker
      Src: /src/xen/xen/common/debugtrace.c:139,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/debugtrace.c:141,1
    - Dst: watchdog_enable
      Src: /src/xen/xen/common/debugtrace.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: debugtrace_dump
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - watchdog_disable
    - watchdog_enable
    - debugtrace_dump_worker
    linkageType: ''
    returnType: void
    signature: void debugtrace_dump(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/debugtrace.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: debugtrace_add_to_buf
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void debugtrace_add_to_buf(char *buf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/debugtrace.c:172,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/debugtrace.c:178,1
    - Dst: va_start
      Src: /src/xen/xen/common/debugtrace.c:180,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/debugtrace.c:181,1
    - Dst: va_end
      Src: /src/xen/xen/common/debugtrace.c:182,1
    - Dst: scnprintf
      Src: /src/xen/xen/common/debugtrace.c:196,1
    - Dst: console_serial_puts
      Src: /src/xen/xen/common/debugtrace.c:197,1
    - Dst: scnprintf
      Src: /src/xen/xen/common/debugtrace.c:200,1
    - Dst: console_serial_puts
      Src: /src/xen/xen/common/debugtrace.c:201,1
    - Dst: console_serial_puts
      Src: /src/xen/xen/common/debugtrace.c:202,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/debugtrace.c:206,1
    - Dst: strcmp
      Src: /src/xen/xen/common/debugtrace.c:209,1
    - Dst: snprintf
      Src: /src/xen/xen/common/debugtrace.c:213,1
    - Dst: debugtrace_add_to_buf
      Src: /src/xen/xen/common/debugtrace.c:215,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/debugtrace.c:222,1
    - Dst: snprintf
      Src: /src/xen/xen/common/debugtrace.c:223,1
    - Dst: snprintf
      Src: /src/xen/xen/common/debugtrace.c:228,1
    - Dst: debugtrace_add_to_buf
      Src: /src/xen/xen/common/debugtrace.c:230,1
    - Dst: debugtrace_add_to_buf
      Src: /src/xen/xen/common/debugtrace.c:231,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/debugtrace.c:234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 160
    functionDepth: 7
    functionLinenumber: 160
    functionLinenumberEnd: 235
    functionName: debugtrace_printk
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - snprintf
    - va_start
    - scnprintf
    - smp_processor_id
    - spin_lock_irqsave
    - strcmp
    - debugtrace_add_to_buf
    - safe_strcpy
    - spin_unlock_irqrestore
    - vsnprintf
    - this_cpu
    - console_serial_puts
    - va_end
    linkageType: ''
    returnType: void
    signature: void debugtrace_printk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debugtrace_toggle
      Src: /src/xen/xen/common/debugtrace.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: debugtrace_key
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - debugtrace_toggle
    linkageType: ''
    returnType: void
    signature: void debugtrace_key(unsigned char key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/debugtrace.c:251,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/debugtrace.c:252,1
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:256,1
    - Dst: printk
      Src: /src/xen/xen/common/debugtrace.c:258,1
    - Dst: memset
      Src: /src/xen/xen/common/debugtrace.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - cpu
    argTypes:
    - struct debugtrace_data**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: debugtrace_alloc_buffer
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - memset
    - get_order_from_bytes
    - alloc_xenheap_pages
    - printk
    linkageType: ''
    returnType: void
    signature: "void debugtrace_alloc_buffer(struct debugtrace_data **ptr,\n                                    unsigned
      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: debugtrace_alloc_buffer
      Src: /src/xen/xen/common/debugtrace.c:274,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/debugtrace.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: debugtrace_cpu_callback
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - debugtrace_alloc_buffer
    - per_cpu
    linkageType: ''
    returnType: int
    signature: "int debugtrace_cpu_callback(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/debugtrace.c:290,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/debugtrace.c:297,1
    - Dst: debugtrace_alloc_buffer
      Src: /src/xen/xen/common/debugtrace.c:298,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/debugtrace.c:298,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/debugtrace.c:299,1
    - Dst: debugtrace_alloc_buffer
      Src: /src/xen/xen/common/debugtrace.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 305
    functionName: debugtrace_init
    functionSourceFile: /src/xen/xen/common/debugtrace.c
    functionUses: 0
    functionsReached:
    - for_each_online_cpu
    - debugtrace_alloc_buffer
    - register_cpu_notifier
    - per_cpu
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int debugtrace_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: xen_mb
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_mb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: xen_rmb
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_rmb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: xen_wmb
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_wmb()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/vm_event.c:67,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/vm_event.c:72,1
    - Dst: init_waitqueue_head
      Src: /src/xen/xen/common/vm_event.c:73,1
    - Dst: vm_event_init_domain
      Src: /src/xen/xen/common/vm_event.c:76,1
    - Dst: prepare_ring_for_helper
      Src: /src/xen/xen/common/vm_event.c:80,1
    - Dst: FRONT_RING_INIT
      Src: /src/xen/xen/common/vm_event.c:85,1
    - Dst: alloc_unbound_xen_event_channel
      Src: /src/xen/xen/common/vm_event.c:89,1
    - Dst: destroy_ring_for_helper
      Src: /src/xen/xen/common/vm_event.c:102,1
    - Dst: xfree
      Src: /src/xen/xen/common/vm_event.c:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - d
    - vec
    - p_ved
    - pause_flag
    - param
    - notification_fn
    argTypes:
    - struct domain*
    - struct xen_domctl_vm_event_op*
    - struct vm_event_domain**
    - int
    - int
    - xen_event_channel_notification_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 106
    functionName: vm_event_enable
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 1
    functionsReached:
    - init_waitqueue_head
    - xzalloc
    - destroy_ring_for_helper
    - FRONT_RING_INIT
    - alloc_unbound_xen_event_channel
    - prepare_ring_for_helper
    - vm_event_init_domain
    - spin_lock_init
    - xfree
    linkageType: ''
    returnType: int
    signature: "int vm_event_enable(\n    struct domain *d,\n    struct xen_domctl_vm_event_op
      *vec,\n    struct vm_event_domain **p_ved,\n    int pause_flag,\n    int param,\n
      \   xen_event_channel_notification_t notification_fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RING_FREE_REQUESTS
      Src: /src/xen/xen/common/vm_event.c:110,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/vm_event.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ved
    argTypes:
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: vm_event_ring_available
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - RING_FREE_REQUESTS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int vm_event_ring_available(struct vm_event_domain *ved)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_ring_available
      Src: /src/xen/xen/common/vm_event.c:129,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/vm_event.c:146,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/vm_event.c:148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: vm_event_wake_blocked
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - vm_event_ring_available
    - vcpu_unpause
    linkageType: ''
    returnType: void
    signature: void vm_event_wake_blocked(struct domain *d, struct vm_event_domain
      *ved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_ring_available
      Src: /src/xen/xen/common/vm_event.c:163,1
    - Dst: wake_up_nr
      Src: /src/xen/xen/common/vm_event.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: vm_event_wake_queued
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - wake_up_nr
    - vm_event_ring_available
    linkageType: ''
    returnType: void
    signature: void vm_event_wake_queued(struct domain *d, struct vm_event_domain
      *ved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/vm_event.c:178,1
    - Dst: vm_event_wake_queued
      Src: /src/xen/xen/common/vm_event.c:179,1
    - Dst: vm_event_wake_blocked
      Src: /src/xen/xen/common/vm_event.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: vm_event_wake
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_wake_queued
    - list_empty
    - vm_event_wake_blocked
    linkageType: ''
    returnType: void
    signature: void vm_event_wake(struct domain *d, struct vm_event_domain *ved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:188,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vm_event.c:192,1
    - Dst: list_empty
      Src: /src/xen/xen/common/vm_event.c:194,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:196,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/vm_event.c:201,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/vm_event.c:206,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/vm_event.c:208,1
    - Dst: destroy_ring_for_helper
      Src: /src/xen/xen/common/vm_event.c:213,1
    - Dst: vm_event_cleanup_domain
      Src: /src/xen/xen/common/vm_event.c:215,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:217,1
    - Dst: xfree
      Src: /src/xen/xen/common/vm_event.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - d
    - p_ved
    argTypes:
    - struct domain*
    - struct vm_event_domain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 224
    functionName: vm_event_disable
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - free_xen_event_channel
    - vm_event_cleanup_domain
    - test_and_clear_bit
    - destroy_ring_for_helper
    - vcpu_unpause
    - vm_event_check_ring
    - spin_lock
    - xfree
    - list_empty
    linkageType: ''
    returnType: int
    signature: int vm_event_disable(struct domain *d, struct vm_event_domain **p_ved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/vm_event.c:206,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/vm_event.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 47
    functionsReached:
    - test_and_clear_bit
    - vcpu_unpause
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_wake
      Src: /src/xen/xen/common/vm_event.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 4
    functionLinenumber: 226
    functionLinenumberEnd: 237
    functionName: vm_event_release_slot
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_wake
    linkageType: ''
    returnType: void
    signature: "void vm_event_release_slot(struct domain *d,\n                                  struct
      vm_event_domain *ved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/vm_event.c:245,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/vm_event.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - ved
    argTypes:
    - struct vcpu*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: vm_event_mark_and_pause
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - vcpu_pause_nosync
    linkageType: ''
    returnType: void
    signature: void vm_event_mark_and_pause(struct vcpu *v, struct vm_event_domain
      *ved)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:268,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/vm_event.c:276,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vm_event.c:282,1
    - Dst: RING_FREE_REQUESTS
      Src: /src/xen/xen/common/vm_event.c:286,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/vm_event.c:287,1
    - Dst: memcpy
      Src: /src/xen/xen/common/vm_event.c:291,1
    - Dst: RING_GET_REQUEST
      Src: /src/xen/xen/common/vm_event.c:291,1
    - Dst: RING_PUSH_REQUESTS
      Src: /src/xen/xen/common/vm_event.c:296,1
    - Dst: vm_event_release_slot
      Src: /src/xen/xen/common/vm_event.c:299,1
    - Dst: vm_event_ring_available
      Src: /src/xen/xen/common/vm_event.c:304,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/vm_event.c:306,1
    - Dst: vm_event_mark_and_pause
      Src: /src/xen/xen/common/vm_event.c:307,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:309,1
    - Dst: notify_via_xen_event_channel
      Src: /src/xen/xen/common/vm_event.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - d
    - ved
    - req
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 312
    functionName: vm_event_put_request
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 3
    functionsReached:
    - gdprintk
    - vm_event_ring_available
    - spin_unlock
    - vm_event_release_slot
    - RING_GET_REQUEST
    - vm_event_mark_and_pause
    - RING_FREE_REQUESTS
    - notify_via_xen_event_channel
    - vm_event_check_ring
    - RING_PUSH_REQUESTS
    - ASSERT
    - spin_lock
    - memcpy
    - atomic_read
    linkageType: ''
    returnType: void
    signature: "void vm_event_put_request(struct domain *d,\n                          struct
      vm_event_domain *ved,\n                          vm_event_request_t *req)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/vm_event.c:321,1
    - Dst: RING_HAS_UNCONSUMED_RESPONSES
      Src: /src/xen/xen/common/vm_event.c:326,1
    - Dst: memcpy
      Src: /src/xen/xen/common/vm_event.c:330,1
    - Dst: RING_GET_RESPONSE
      Src: /src/xen/xen/common/vm_event.c:330,1
    - Dst: vm_event_wake
      Src: /src/xen/xen/common/vm_event.c:339,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - d
    - ved
    - rsp
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    - vm_event_response_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 347
    functionName: vm_event_get_response
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_wake
    - spin_unlock
    - RING_HAS_UNCONSUMED_RESPONSES
    - spin_lock
    - memcpy
    - RING_GET_RESPONSE
    linkageType: ''
    returnType: int
    signature: "int vm_event_get_response(struct domain *d, struct vm_event_domain
      *ved,\n                                 vm_event_response_t *rsp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vm_event.c:369,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:371,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:371,1
    - Dst: vm_event_get_response
      Src: /src/xen/xen/common/vm_event.c:375,1
    - Dst: printk
      Src: /src/xen/xen/common/vm_event.c:381,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/vm_event.c:386,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/vm_event.c:396,1
    - Dst: p2m_mem_paging_resume
      Src: /src/xen/xen/common/vm_event.c:400,1
    - Dst: mem_sharing_is_fork
      Src: /src/xen/xen/common/vm_event.c:403,1
    - Dst: mem_sharing_fork_reset
      Src: /src/xen/xen/common/vm_event.c:409,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/vm_event.c:410,1
    - Dst: vm_event_emulate_check
      Src: /src/xen/xen/common/vm_event.c:419,1
    - Dst: vm_event_register_write_resume
      Src: /src/xen/xen/common/vm_event.c:425,1
    - Dst: vm_event_toggle_singlestep
      Src: /src/xen/xen/common/vm_event.c:431,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/vm_event.c:434,1
    - Dst: p2m_altp2m_check
      Src: /src/xen/xen/common/vm_event.c:436,1
    - Dst: vm_event_set_registers
      Src: /src/xen/xen/common/vm_event.c:439,1
    - Dst: vm_event_monitor_next_interrupt
      Src: /src/xen/xen/common/vm_event.c:442,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/vm_event.c:444,1
    - Dst: vm_event_reset_vmtrace
      Src: /src/xen/xen/common/vm_event.c:446,1
    - Dst: vm_event_vcpu_unpause
      Src: /src/xen/xen/common/vm_event.c:449,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 35
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 357
    functionDepth: 5
    functionLinenumber: 357
    functionLinenumberEnd: 454
    functionName: vm_event_resume
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - p2m_mem_paging_resume
    - IS_ENABLED
    - vm_event_check_ring
    - mem_sharing_fork_reset
    - vm_event_emulate_check
    - vm_event_monitor_next_interrupt
    - printk
    - vm_event_vcpu_unpause
    - vm_event_toggle_singlestep
    - vm_event_get_response
    - p2m_altp2m_check
    - atomic_read
    - ASSERT
    - mem_sharing_is_fork
    - ASSERT_UNREACHABLE
    - domain_vcpu
    - vm_event_reset_vmtrace
    - unlikely
    - vm_event_register_write_resume
    - vm_event_set_registers
    linkageType: ''
    returnType: int
    signature: int vm_event_resume(struct domain *d, struct vm_event_domain *ved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:458,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/vm_event.c:461,1
    - Dst: vm_event_release_slot
      Src: /src/xen/xen/common/vm_event.c:462,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ved
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 5
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: vm_event_cancel_slot
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 1
    functionsReached:
    - vm_event_check_ring
    - spin_lock
    - spin_unlock
    - vm_event_release_slot
    linkageType: ''
    returnType: void
    signature: void vm_event_cancel_slot(struct domain *d, struct vm_event_domain
      *ved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/vm_event.c:474,1
    - Dst: vm_event_ring_available
      Src: /src/xen/xen/common/vm_event.c:476,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/vm_event.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ved
    - foreign
    argTypes:
    - struct vm_event_domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 493
    functionName: vm_event_grab_slot
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - vm_event_ring_available
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int vm_event_grab_slot(struct vm_event_domain *ved, int foreign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_grab_slot
      Src: /src/xen/xen/common/vm_event.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ved
    - rc
    argTypes:
    - struct vm_event_domain*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: vm_event_wait_try_grab
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_grab_slot
    linkageType: ''
    returnType: int
    signature: int vm_event_wait_try_grab(struct vm_event_domain *ved, int *rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wait_event
      Src: /src/xen/xen/common/vm_event.c:508,1
    - Dst: vm_event_wait_try_grab
      Src: /src/xen/xen/common/vm_event.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ved
    argTypes:
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 511
    functionName: vm_event_wait_slot
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - wait_event
    - vm_event_wait_try_grab
    linkageType: ''
    returnType: int
    signature: int vm_event_wait_slot(struct vm_event_domain *ved)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ved
    argTypes:
    - struct vm_event_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: vm_event_check_ring
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vm_event_check_ring(struct vm_event_domain *ved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:533,1
    - Dst: vm_event_wait_slot
      Src: /src/xen/xen/common/vm_event.c:537,1
    - Dst: vm_event_grab_slot
      Src: /src/xen/xen/common/vm_event.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - d
    - ved
    - allow_sleep
    argTypes:
    - struct domain*
    - struct vm_event_domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 530
    functionDepth: 5
    functionLinenumber: 530
    functionLinenumberEnd: 540
    functionName: __vm_event_claim_slot
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 3
    functionsReached:
    - vm_event_check_ring
    - vm_event_wait_slot
    - vm_event_grab_slot
    linkageType: ''
    returnType: int
    signature: "int __vm_event_claim_slot(struct domain *d, struct vm_event_domain
      *ved,\n                          bool allow_sleep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - port
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 6
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: mem_paging_notification
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_resume
    linkageType: ''
    returnType: void
    signature: void mem_paging_notification(struct vcpu *v, unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - port
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 551
    functionDepth: 6
    functionLinenumber: 551
    functionLinenumberEnd: 554
    functionName: monitor_notification
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_resume
    linkageType: ''
    returnType: void
    signature: void monitor_notification(struct vcpu *v, unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - port
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 6
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: mem_sharing_notification
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 0
    functionsReached:
    - vm_event_resume
    linkageType: ''
    returnType: void
    signature: void mem_sharing_notification(struct vcpu *v, unsigned int port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:568,1
    - Dst: destroy_waitqueue_head
      Src: /src/xen/xen/common/vm_event.c:577,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:578,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:581,1
    - Dst: destroy_waitqueue_head
      Src: /src/xen/xen/common/vm_event.c:583,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:584,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:587,1
    - Dst: destroy_waitqueue_head
      Src: /src/xen/xen/common/vm_event.c:589,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 593
    functionName: vm_event_cleanup
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 1
    functionsReached:
    - vm_event_check_ring
    - destroy_waitqueue_head
    - vm_event_disable
    linkageType: ''
    returnType: void
    signature: void vm_event_cleanup(struct domain *d)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:606,1
    - Dst: xsm_vm_event_control
      Src: /src/xen/xen/common/vm_event.c:609,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:613,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/vm_event.c:615,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:619,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/vm_event.c:621,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:626,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:626,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/vm_event.c:628,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/vm_event.c:649,1
    - Dst: hap_enabled
      Src: /src/xen/xen/common/vm_event.c:654,1
    - Dst: unlikely
      Src: /src/xen/xen/common/vm_event.c:659,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/common/vm_event.c:659,1
    - Dst: p2m_pod_active
      Src: /src/xen/xen/common/vm_event.c:664,1
    - Dst: vm_event_enable
      Src: /src/xen/xen/common/vm_event.c:668,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:675,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/vm_event.c:677,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:678,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/vm_event.c:679,1
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:684,1
    - Dst: arch_monitor_init_domain
      Src: /src/xen/xen/common/vm_event.c:703,1
    - Dst: vm_event_enable
      Src: /src/xen/xen/common/vm_event.c:706,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:712,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/vm_event.c:714,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:715,1
    - Dst: arch_monitor_cleanup_domain
      Src: /src/xen/xen/common/vm_event.c:716,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/vm_event.c:717,1
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:722,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/vm_event.c:742,1
    - Dst: hap_enabled
      Src: /src/xen/xen/common/vm_event.c:747,1
    - Dst: vm_event_enable
      Src: /src/xen/xen/common/vm_event.c:751,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/vm_event.c:757,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/vm_event.c:759,1
    - Dst: vm_event_disable
      Src: /src/xen/xen/common/vm_event.c:760,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/vm_event.c:761,1
    - Dst: vm_event_resume
      Src: /src/xen/xen/common/vm_event.c:766,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 118
    argCount: 2
    argNames:
    - d
    - vec
    argTypes:
    - struct domain*
    - struct xen_domctl_vm_event_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 595
    functionDepth: 6
    functionLinenumber: 595
    functionLinenumberEnd: 783
    functionName: vm_event_domctl
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - gdprintk
    - vm_event_enable
    - domain_pause
    - vm_event_disable
    - arch_monitor_init_domain
    - arch_monitor_cleanup_domain
    - is_iommu_enabled
    - vm_event_check_ring
    - xsm_vm_event_control
    - unlikely
    - vm_event_resume
    - p2m_pod_active
    - hap_enabled
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op
      *vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/vm_event.c:787,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/vm_event.c:789,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/vm_event.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 791
    functionName: vm_event_vcpu_pause
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - atomic_inc
    - vcpu_pause_nosync
    linkageType: ''
    returnType: void
    signature: void vm_event_vcpu_pause(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: old::old
      Src: /src/xen/xen/common/vm_event.c:804,1
    - Dst: printk
      Src: /src/xen/xen/common/vm_event.c:808,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/vm_event.c:813,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/vm_event.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 817
    functionName: vm_event_vcpu_unpause
    functionSourceFile: /src/xen/xen/common/vm_event.c
    functionUses: 1
    functionsReached:
    - vcpu_unpause
    - cmpxchg
    - old::old
    - printk
    linkageType: ''
    returnType: void
    signature: void vm_event_vcpu_unpause(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/timer.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - heap
    argTypes:
    - struct timer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: heap_metadata
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: struct heap_metadata
    signature: struct heap_metadata *heap_metadata(struct timer **heap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - heap
    - pos
    argTypes:
    - struct timer**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: down_heap
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - heap_metadata
    linkageType: ''
    returnType: void
    signature: void down_heap(struct timer **heap, unsigned int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - pos
    argTypes:
    - struct timer**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 101
    functionName: up_heap
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void up_heap(struct timer **heap, unsigned int pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:107,1
    - Dst: unlikely
      Src: /src/xen/xen/common/timer.c:110,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:112,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:119,1
    - Dst: up_heap
      Src: /src/xen/xen/common/timer.c:122,1
    - Dst: down_heap
      Src: /src/xen/xen/common/timer.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - heap
    - t
    argTypes:
    - struct timer**
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 128
    functionName: remove_from_heap
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - down_heap
    - up_heap
    - heap_metadata
    - unlikely
    linkageType: ''
    returnType: int
    signature: int remove_from_heap(struct timer **heap, struct timer *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:134,1
    - Dst: unlikely
      Src: /src/xen/xen/common/timer.c:137,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:137,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:140,1
    - Dst: up_heap
      Src: /src/xen/xen/common/timer.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - heap
    - t
    argTypes:
    - struct timer**
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: add_to_heap
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - up_heap
    - heap_metadata
    - unlikely
    linkageType: ''
    returnType: int
    signature: int add_to_heap(struct timer **heap, struct timer *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pprev
    - t
    argTypes:
    - struct timer**
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: remove_from_list
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int remove_from_list(struct timer **pprev, struct timer *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pprev
    - t
    argTypes:
    - struct timer**
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: add_to_list
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int add_to_list(struct timer **pprev, struct timer *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:185,1
    - Dst: remove_from_heap
      Src: /src/xen/xen/common/timer.c:191,1
    - Dst: remove_from_list
      Src: /src/xen/xen/common/timer.c:194,1
    - Dst: BUG
      Src: /src/xen/xen/common/timer.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 203
    functionName: remove_entry
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 3
    functionsReached:
    - BUG
    - remove_from_list
    - remove_from_heap
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int remove_entry(struct timer *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:207,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:210,1
    - Dst: add_to_heap
      Src: /src/xen/xen/common/timer.c:215,1
    - Dst: add_to_list
      Src: /src/xen/xen/common/timer.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: add_entry
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 7
    functionsReached:
    - add_to_heap
    - ASSERT
    - per_cpu
    - add_to_list
    linkageType: ''
    returnType: int
    signature: int add_entry(struct timer *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:226,1
    - Dst: list_del
      Src: /src/xen/xen/common/timer.c:228,1
    - Dst: add_entry
      Src: /src/xen/xen/common/timer.c:230,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/timer.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: activate_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - add_entry
    - list_del
    - cpu_raise_softirq
    linkageType: ''
    returnType: void
    signature: void activate_timer(struct timer *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove_entry
      Src: /src/xen/xen/common/timer.c:236,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/timer.c:237,1
    - Dst: list_add
      Src: /src/xen/xen/common/timer.c:240,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: deactivate_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - per_cpu
    - remove_entry
    - list_add
    - cpu_raise_softirq
    linkageType: ''
    returnType: void
    signature: void deactivate_timer(struct timer *timer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/timer.c:247,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/timer.c:251,1
    - Dst: unlikely
      Src: /src/xen/xen/common/timer.c:252,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/timer.c:254,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/timer.c:258,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:258,1
    - Dst: likely
      Src: /src/xen/xen/common/timer.c:259,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/timer.c:261,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:261,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/timer.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 266
    functionName: timer_lock_unsafe
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - rcu_read_unlock
    - _spin_lock
    - likely
    - read_atomic
    - per_cpu
    - unlikely
    - rcu_read_lock
    linkageType: ''
    returnType: bool
    signature: bool timer_lock_unsafe(struct timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: timer_lock_irqsave
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_lock_irqsave(t, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/common/timer.c:279,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: timer_unlock
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void timer_unlock(struct timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: timer_unlock_irqrestore
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: timer_unlock_irqrestore(t, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:290,1
    - Dst: timer_is_active
      Src: /src/xen/xen/common/timer.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: active_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - timer_is_active
    linkageType: ''
    returnType: bool
    signature: bool active_timer(const struct timer *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/timer.c:302,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/timer.c:305,1
    - Dst: timer_lock_irqsave
      Src: /src/xen/xen/common/timer.c:307,1
    - Dst: BUG
      Src: /src/xen/xen/common/timer.c:308,1
    - Dst: list_add
      Src: /src/xen/xen/common/timer.c:309,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:309,1
    - Dst: timer_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - timer
    - data
    - cpu
    argTypes:
    - struct timer*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 311
    functionName: init_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 14
    functionsReached:
    - timer_lock_irqsave
    - BUG
    - write_atomic
    - timer_unlock_irqrestore
    - per_cpu
    - memset
    - list_add
    linkageType: ''
    returnType: void
    signature: "void init_timer(\n    struct timer *timer,\n    void        (*function)(void
      *data),\n    void         *data,\n    unsigned int  cpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_lock_irqsave
      Src: /src/xen/xen/common/timer.c:318,1
    - Dst: active_timer
      Src: /src/xen/xen/common/timer.c:321,1
    - Dst: deactivate_timer
      Src: /src/xen/xen/common/timer.c:322,1
    - Dst: activate_timer
      Src: /src/xen/xen/common/timer.c:326,1
    - Dst: timer_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - timer
    - expires
    argTypes:
    - struct timer*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 329
    functionName: set_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 30
    functionsReached:
    - deactivate_timer
    - timer_lock_irqsave
    - active_timer
    - timer_unlock_irqrestore
    - activate_timer
    linkageType: ''
    returnType: void
    signature: void set_timer(struct timer *timer, s_time_t expires)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: timer_lock_irqsave
      Src: /src/xen/xen/common/timer.c:336,1
    - Dst: active_timer
      Src: /src/xen/xen/common/timer.c:339,1
    - Dst: deactivate_timer
      Src: /src/xen/xen/common/timer.c:340,1
    - Dst: timer_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 5
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: stop_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 14
    functionsReached:
    - deactivate_timer
    - timer_lock_irqsave
    - timer_unlock_irqrestore
    - active_timer
    linkageType: ''
    returnType: void
    signature: void stop_timer(struct timer *timer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timer_lock_irqsave
      Src: /src/xen/xen/common/timer.c:350,1
    - Dst: active_timer
      Src: /src/xen/xen/common/timer.c:353,1
    - Dst: timer_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - timer
    - t
    argTypes:
    - struct timer*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 358
    functionName: timer_expires_before
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - timer_lock_irqsave
    - timer_unlock_irqrestore
    - active_timer
    linkageType: ''
    returnType: bool
    signature: bool timer_expires_before(struct timer *timer, s_time_t t)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/timer.c:367,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/timer.c:371,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/timer.c:374,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/timer.c:380,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:380,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/timer.c:381,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:381,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/timer.c:385,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:385,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/timer.c:386,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:386,1
    - Dst: likely
      Src: /src/xen/xen/common/timer.c:389,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/timer.c:392,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:392,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:393,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:393,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/timer.c:396,1
    - Dst: active_timer
      Src: /src/xen/xen/common/timer.c:398,1
    - Dst: deactivate_timer
      Src: /src/xen/xen/common/timer.c:400,1
    - Dst: list_del
      Src: /src/xen/xen/common/timer.c:402,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/timer.c:403,1
    - Dst: list_add
      Src: /src/xen/xen/common/timer.c:404,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:404,1
    - Dst: activate_timer
      Src: /src/xen/xen/common/timer.c:407,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/timer.c:409,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:409,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:410,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:410,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/timer.c:412,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/timer.c:414,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - timer
    - new_cpu
    argTypes:
    - struct timer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 416
    functionName: migrate_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 7
    functionsReached:
    - deactivate_timer
    - spin_unlock
    - rcu_read_unlock
    - active_timer
    - spin_lock_irqsave
    - write_atomic
    - WARN_ON
    - likely
    - spin_unlock_irqrestore
    - spin_lock
    - activate_timer
    - read_atomic
    - per_cpu
    - list_del
    - rcu_read_lock
    - list_add
    linkageType: ''
    returnType: void
    signature: void migrate_timer(struct timer *timer, unsigned int new_cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/timer.c:424,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/timer.c:424,1
    - Dst: timer_lock_irqsave
      Src: /src/xen/xen/common/timer.c:426,1
    - Dst: active_timer
      Src: /src/xen/xen/common/timer.c:429,1
    - Dst: deactivate_timer
      Src: /src/xen/xen/common/timer.c:430,1
    - Dst: list_del
      Src: /src/xen/xen/common/timer.c:432,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/timer.c:435,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:437,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:437,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/timer.c:439,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:440,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/timer.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 419
    functionDepth: 5
    functionLinenumber: 419
    functionLinenumberEnd: 442
    functionName: kill_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 10
    functionsReached:
    - deactivate_timer
    - timer_lock_irqsave
    - for_each_online_cpu
    - cpu_relax
    - active_timer
    - write_atomic
    - spin_unlock_irqrestore
    - BUG_ON
    - list_del
    - per_cpu
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void kill_timer(struct timer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add
      Src: /src/xen/xen/common/timer.c:451,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/timer.c:454,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/timer.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ts
    - t
    argTypes:
    - struct timers*
    - struct timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 458
    functionName: execute_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - spin_lock_irq
    - list_add
    - spin_unlock_irq
    linkageType: ''
    returnType: void
    signature: void execute_timer(struct timers *ts, struct timer *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/timer.c:467,1
    - Dst: unlikely
      Src: /src/xen/xen/common/timer.c:471,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:474,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/timer.c:481,1
    - Dst: printk_once
      Src: /src/xen/xen/common/timer.c:483,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/timer.c:484,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/timer.c:487,1
    - Dst: memcpy
      Src: /src/xen/xen/common/timer.c:488,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:489,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/timer.c:491,1
    - Dst: xfree
      Src: /src/xen/xen/common/timer.c:493,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/timer.c:498,1
    - Dst: NOW
      Src: /src/xen/xen/common/timer.c:500,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:503,1
    - Dst: remove_from_heap
      Src: /src/xen/xen/common/timer.c:506,1
    - Dst: execute_timer
      Src: /src/xen/xen/common/timer.c:507,1
    - Dst: execute_timer
      Src: /src/xen/xen/common/timer.c:514,1
    - Dst: unlikely
      Src: /src/xen/xen/common/timer.c:520,1
    - Dst: add_entry
      Src: /src/xen/xen/common/timer.c:524,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:529,1
    - Dst: NOW
      Src: /src/xen/xen/common/timer.c:533,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/timer.c:534,1
    - Dst: MAX
      Src: /src/xen/xen/common/timer.c:535,1
    - Dst: reprogram_timer
      Src: /src/xen/xen/common/timer.c:537,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/timer.c:537,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/timer.c:538,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/timer.c:540,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 541
    functionName: timer_softirq_action
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - heap_metadata
    - reprogram_timer
    - raise_softirq
    - smp_processor_id
    - execute_timer
    - spin_unlock_irq
    - spin_lock_irq
    - printk_once
    - this_cpu
    - remove_from_heap
    - add_entry
    - unlikely
    - MAX
    - xfree
    - memcpy
    - NOW
    linkageType: ''
    returnType: void
    signature: void timer_softirq_action(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - firsttick
    - period
    argTypes:
    - s_time_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: align_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t align_timer(s_time_t firsttick, uint64_t period)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/timer.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - now
    argTypes:
    - struct timer*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: dump_timer
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_timer(struct timer *t, s_time_t now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/timer.c:562,1
    - Dst: printk
      Src: /src/xen/xen/common/timer.c:565,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:569,1
    - Dst: printk
      Src: /src/xen/xen/common/timer.c:571,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/timer.c:572,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:573,1
    - Dst: dump_timer
      Src: /src/xen/xen/common/timer.c:574,1
    - Dst: dump_timer
      Src: /src/xen/xen/common/timer.c:576,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 579
    functionName: dump_timerq
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - dump_timer
    - heap_metadata
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - per_cpu
    - printk
    - NOW
    linkageType: ''
    returnType: void
    signature: void dump_timerq(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:569,1
    - Dst: printk
      Src: /src/xen/xen/common/timer.c:571,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/timer.c:572,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:573,1
    - Dst: dump_timer
      Src: /src/xen/xen/common/timer.c:574,1
    - Dst: dump_timer
      Src: /src/xen/xen/common/timer.c:576,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/timer.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 578
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 11
    functionsReached:
    - dump_timer
    - heap_metadata
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - per_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu( i )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_any
      Src: /src/xen/xen/common/timer.c:583,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:588,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/timer.c:588,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/timer.c:588,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:590,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:591,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/timer.c:595,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/timer.c:596,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/timer.c:600,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/timer.c:601,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:604,1
    - Dst: remove_entry
      Src: /src/xen/xen/common/timer.c:607,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/timer.c:608,1
    - Dst: add_entry
      Src: /src/xen/xen/common/timer.c:609,1
    - Dst: list_empty
      Src: /src/xen/xen/common/timer.c:612,1
    - Dst: list_entry
      Src: /src/xen/xen/common/timer.c:614,1
    - Dst: list_del
      Src: /src/xen/xen/common/timer.c:615,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/timer.c:616,1
    - Dst: list_add
      Src: /src/xen/xen/common/timer.c:617,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/timer.c:620,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/timer.c:621,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/timer.c:624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - old_cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 581
    functionDepth: 4
    functionLinenumber: 581
    functionLinenumberEnd: 625
    functionName: migrate_timers_from_cpu
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - spin_unlock
    - cpu_raise_softirq
    - heap_metadata
    - write_atomic
    - list_entry
    - spin_unlock_irq
    - spin_lock_irq
    - ASSERT
    - spin_lock
    - add_entry
    - per_cpu
    - list_del
    - list_add
    - remove_entry
    - list_empty
    - cpumask_any
    linkageType: ''
    returnType: void
    signature: void migrate_timers_from_cpu(unsigned int old_cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:636,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:638,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:638,1
    - Dst: heap_metadata
      Src: /src/xen/xen/common/timer.c:639,1
    - Dst: xfree
      Src: /src/xen/xen/common/timer.c:641,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/timer.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: free_percpu_timers
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - xfree
    - per_cpu
    - heap_metadata
    linkageType: ''
    returnType: void
    signature: void free_percpu_timers(unsigned int cpu)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/timer.c:652,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/timer.c:660,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/timer.c:661,1
    - Dst: migrate_timers_from_cpu
      Src: /src/xen/xen/common/timer.c:669,1
    - Dst: free_percpu_timers
      Src: /src/xen/xen/common/timer.c:672,1
    - Dst: free_percpu_timers
      Src: /src/xen/xen/common/timer.c:677,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 685
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 3
    functionsReached:
    - spin_lock_init
    - migrate_timers_from_cpu
    - per_cpu
    - INIT_LIST_HEAD
    - free_percpu_timers
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/timer.c:694,1
    - Dst: open_softirq
      Src: /src/xen/xen/common/timer.c:696,1
    - Dst: cpu_callback
      Src: /src/xen/xen/common/timer.c:698,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/timer.c:699,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/timer.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 702
    functionName: timer_init
    functionSourceFile: /src/xen/xen/common/timer.c
    functionUses: 9
    functionsReached:
    - smp_processor_id
    - register_cpu_notifier
    - cpu_callback
    - open_softirq
    - register_keyhandler
    linkageType: ''
    returnType: void
    signature: void timer_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/ioreq.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: ioreq_request_mapcache_invalidate
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 8
    functionsReached:
    - for_each_vcpu
    linkageType: ''
    returnType: void
    signature: void ioreq_request_mapcache_invalidate(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_broadcast
      Src: /src/xen/xen/common/ioreq.c:57,1
    - Dst: gprintk
      Src: /src/xen/xen/common/ioreq.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: ioreq_signal_mapcache_invalidate
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ioreq_broadcast
    - gprintk
    linkageType: ''
    returnType: void
    signature: void ioreq_signal_mapcache_invalidate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:64,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - id
    - s
    argTypes:
    - struct domain*
    - unsigned int
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: set_ioreq_server
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void set_ioreq_server(struct domain *d, unsigned int id,\n                             struct
      ioreq_server *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: GET_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IOREQ_SERVER(d, id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_IOREQ_SERVER
      Src: /src/xen/xen/common/ioreq.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: get_ioreq_server
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - GET_IOREQ_SERVER
    linkageType: ''
    returnType: struct ioreq_server
    signature: "struct ioreq_server *get_ioreq_server(const struct domain *d,\n                                             unsigned
      int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - id
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:100,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/ioreq.c:100,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - struct ioreq_server*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: get_ioreq
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - vcpu_runnable
    linkageType: ''
    returnType: ioreq_t
    signature: ioreq_t *get_ioreq(struct ioreq_server *s, struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_IOREQ_SERVER
      Src: /src/xen/xen/common/ioreq.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: domain_has_ioreq_server
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 3
    functionsReached:
    - FOR_EACH_IOREQ_SERVER
    linkageType: ''
    returnType: bool
    signature: bool domain_has_ioreq_server(const struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/ioreq.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - srvp
    argTypes:
    - struct vcpu*
    - struct ioreq_server**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 147
    functionName: get_pending_vcpu
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct ioreq_vcpu
    signature: "struct ioreq_vcpu *get_pending_vcpu(const struct vcpu *v,\n                                           struct
      ioreq_server **srvp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/ioreq.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 144
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_pending_vcpu
      Src: /src/xen/xen/common/ioreq.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: vcpu_ioreq_pending
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - get_pending_vcpu
    linkageType: ''
    returnType: bool
    signature: bool vcpu_ioreq_pending(struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_rmb
      Src: /src/xen/xen/common/ioreq.c:160,1
    - Dst: likely
      Src: /src/xen/xen/common/ioreq.c:166,1
    - Dst: unlikely
      Src: /src/xen/xen/common/ioreq.c:168,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/ioreq.c:170,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/ioreq.c:173,1
    - Dst: wait_on_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:186,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/ioreq.c:188,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/ioreq.c:193,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/ioreq.c:195,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/common/ioreq.c:203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - sv
    - p
    argTypes:
    - struct ioreq_vcpu*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 209
    functionName: wait_for_io
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - likely
    - smp_rmb
    - wait_on_xen_event_channel
    - unlikely
    - ioreq_needs_completion
    - domain_crash
    linkageType: ''
    returnType: bool
    signature: bool wait_for_io(struct ioreq_vcpu *sv, ioreq_t *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_pending_vcpu
      Src: /src/xen/xen/common/ioreq.c:219,1
    - Dst: wait_for_io
      Src: /src/xen/xen/common/ioreq.c:220,1
    - Dst: get_ioreq
      Src: /src/xen/xen/common/ioreq.c:220,1
    - Dst: ioreq_needs_completion
      Src: /src/xen/xen/common/ioreq.c:223,1
    - Dst: msix_write_completion
      Src: /src/xen/xen/common/ioreq.c:226,1
    - Dst: vcpu_end_shutdown_deferral
      Src: /src/xen/xen/common/ioreq.c:227,1
    - Dst: arch_ioreq_complete_mmio
      Src: /src/xen/xen/common/ioreq.c:238,1
    - Dst: handle_pio
      Src: /src/xen/xen/common/ioreq.c:242,1
    - Dst: arch_vcpu_ioreq_completion
      Src: /src/xen/xen/common/ioreq.c:247,1
    - Dst: unlikely
      Src: /src/xen/xen/common/ioreq.c:251,1
    - Dst: ioreq_signal_mapcache_invalidate
      Src: /src/xen/xen/common/ioreq.c:254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 259
    functionName: vcpu_ioreq_handle_completion
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - msix_write_completion
    - vcpu_end_shutdown_deferral
    - arch_ioreq_complete_mmio
    - get_ioreq
    - arch_vcpu_ioreq_completion
    - handle_pio
    - wait_for_io
    - ioreq_signal_mapcache_invalidate
    - get_pending_vcpu
    - ioreq_needs_completion
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool vcpu_ioreq_handle_completion(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gfn_eq
      Src: /src/xen/xen/common/ioreq.c:273,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/ioreq.c:279,1
    - Dst: get_page_and_type
      Src: /src/xen/xen/common/ioreq.c:284,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/ioreq.c:290,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/common/ioreq.c:294,1
    - Dst: clear_page
      Src: /src/xen/xen/common/ioreq.c:299,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/ioreq.c:303,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/ioreq.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 307
    functionName: ioreq_server_alloc_mfn
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - put_page_alloc_ref
    - clear_page
    - alloc_domheap_page
    - gfn_eq
    - domain_crash
    - __map_domain_page_global
    - get_page_and_type
    linkageType: ''
    returnType: int
    signature: int ioreq_server_alloc_mfn(struct ioreq_server *s, bool buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/ioreq.c:319,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/ioreq.c:322,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/ioreq.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct ioreq_server*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: ioreq_server_free_mfn
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page_global
    - put_page_and_type
    - put_page_alloc_ref
    linkageType: ''
    returnType: void
    signature: void ioreq_server_free_mfn(struct ioreq_server *s, bool buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:332,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - d
    - page
    argTypes:
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 346
    functionName: is_ioreq_server_page
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - rspin_lock
    - rspin_unlock
    linkageType: ''
    returnType: bool
    signature: bool is_ioreq_server_page(struct domain *d, const struct page_info
      *page)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:351,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/ioreq.c:351,1
    - Dst: get_ioreq
      Src: /src/xen/xen/common/ioreq.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - sv
    argTypes:
    - struct ioreq_server*
    - struct ioreq_vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: ioreq_server_update_evtchn
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - get_ioreq
    linkageType: ''
    returnType: void
    signature: "void ioreq_server_update_evtchn(struct ioreq_server *s,\n                                       struct
      ioreq_vcpu *sv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/ioreq.c:367,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:373,1
    - Dst: alloc_unbound_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:375,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/common/ioreq.c:382,1
    - Dst: alloc_unbound_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:384,1
    - Dst: list_add
      Src: /src/xen/xen/common/ioreq.c:394,1
    - Dst: ioreq_server_update_evtchn
      Src: /src/xen/xen/common/ioreq.c:397,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:399,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:403,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:406,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - struct ioreq_server*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 411
    functionName: ioreq_server_add_vcpu
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_unlock
    - free_xen_event_channel
    - HANDLE_BUFIOREQ
    - ioreq_server_update_evtchn
    - alloc_unbound_xen_event_channel
    - spin_lock
    - xfree
    - list_add
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_add_vcpu(struct ioreq_server *s,\n                                 struct
      vcpu *v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:418,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/ioreq.c:420,1
    - Dst: list_del
      Src: /src/xen/xen/common/ioreq.c:427,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/common/ioreq.c:429,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:430,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:432,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:434,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - s
    - v
    argTypes:
    - struct ioreq_server*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 439
    functionName: ioreq_server_remove_vcpu
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - free_xen_event_channel
    - HANDLE_BUFIOREQ
    - spin_lock
    - list_del
    - xfree
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: "void ioreq_server_remove_vcpu(struct ioreq_server *s,\n                                     struct
      vcpu *v)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:445,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/common/ioreq.c:447,1
    - Dst: list_del
      Src: /src/xen/xen/common/ioreq.c:454,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/common/ioreq.c:456,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:457,1
    - Dst: free_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:459,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:461,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 465
    functionName: ioreq_server_remove_all_vcpus
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - free_xen_event_channel
    - HANDLE_BUFIOREQ
    - spin_lock
    - list_del
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: void
    signature: void ioreq_server_remove_all_vcpus(struct ioreq_server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_alloc_mfn
      Src: /src/xen/xen/common/ioreq.c:471,1
    - Dst: ioreq_server_alloc_mfn
      Src: /src/xen/xen/common/ioreq.c:474,1
    - Dst: ioreq_server_free_mfn
      Src: /src/xen/xen/common/ioreq.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 480
    functionName: ioreq_server_alloc_pages
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ioreq_server_alloc_mfn
    - ioreq_server_free_mfn
    linkageType: ''
    returnType: int
    signature: int ioreq_server_alloc_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_free_mfn
      Src: /src/xen/xen/common/ioreq.c:484,1
    - Dst: ioreq_server_free_mfn
      Src: /src/xen/xen/common/ioreq.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: ioreq_server_free_pages
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ioreq_server_free_mfn
    linkageType: ''
    returnType: void
    signature: void ioreq_server_free_pages(struct ioreq_server *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/ioreq.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 494
    functionName: ioreq_server_free_rangesets
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - rangeset_destroy
    linkageType: ''
    returnType: void
    signature: void ioreq_server_free_rangesets(struct ioreq_server *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xasprintf
      Src: /src/xen/xen/common/ioreq.c:515,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/ioreq.c:519,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:522,1
    - Dst: rangeset_limit
      Src: /src/xen/xen/common/ioreq.c:528,1
    - Dst: ioreq_server_free_rangesets
      Src: /src/xen/xen/common/ioreq.c:534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - s
    - id
    argTypes:
    - struct ioreq_server*
    - ioservid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 496
    functionDepth: 4
    functionLinenumber: 496
    functionLinenumberEnd: 537
    functionName: ioreq_server_alloc_rangesets
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - xasprintf
    - rangeset_new
    - ioreq_server_free_rangesets
    - rangeset_limit
    - xfree
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_alloc_rangesets(struct ioreq_server *s,\n                                        ioservid_t
      id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:543,1
    - Dst: arch_ioreq_server_enable
      Src: /src/xen/xen/common/ioreq.c:548,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/ioreq.c:552,1
    - Dst: ioreq_server_update_evtchn
      Src: /src/xen/xen/common/ioreq.c:555,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 559
    functionName: ioreq_server_enable
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - ioreq_server_update_evtchn
    - arch_ioreq_server_enable
    - spin_lock
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void ioreq_server_enable(struct ioreq_server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:563,1
    - Dst: arch_ioreq_server_disable
      Src: /src/xen/xen/common/ioreq.c:568,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 574
    functionName: ioreq_server_disable
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - arch_ioreq_server_disable
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void ioreq_server_disable(struct ioreq_server *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/common/ioreq.c:586,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/ioreq.c:589,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/ioreq.c:590,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/ioreq.c:591,1
    - Dst: ioreq_server_alloc_rangesets
      Src: /src/xen/xen/common/ioreq.c:596,1
    - Dst: ioreq_server_add_vcpu
      Src: /src/xen/xen/common/ioreq.c:604,1
    - Dst: ioreq_server_remove_all_vcpus
      Src: /src/xen/xen/common/ioreq.c:612,1
    - Dst: arch_ioreq_server_unmap_pages
      Src: /src/xen/xen/common/ioreq.c:613,1
    - Dst: ioreq_server_free_rangesets
      Src: /src/xen/xen/common/ioreq.c:615,1
    - Dst: put_domain
      Src: /src/xen/xen/common/ioreq.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - s
    - d
    - bufioreq_handling
    - id
    argTypes:
    - struct ioreq_server*
    - struct domain*
    - int
    - ioservid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 576
    functionDepth: 5
    functionLinenumber: 576
    functionLinenumberEnd: 619
    functionName: ioreq_server_init
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - get_knownalive_domain
    - ioreq_server_remove_all_vcpus
    - ioreq_server_add_vcpu
    - ioreq_server_free_rangesets
    - INIT_LIST_HEAD
    - put_domain
    - ioreq_server_alloc_rangesets
    - arch_ioreq_server_unmap_pages
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_init(struct ioreq_server *s,\n                             struct
      domain *d, int bufioreq_handling,\n                             ioservid_t id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_add_vcpu
      Src: /src/xen/xen/common/ioreq.c:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 48
    functionsReached:
    - ioreq_server_add_vcpu
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:623,1
    - Dst: ioreq_server_remove_all_vcpus
      Src: /src/xen/xen/common/ioreq.c:624,1
    - Dst: arch_ioreq_server_unmap_pages
      Src: /src/xen/xen/common/ioreq.c:635,1
    - Dst: ioreq_server_free_pages
      Src: /src/xen/xen/common/ioreq.c:636,1
    - Dst: ioreq_server_free_rangesets
      Src: /src/xen/xen/common/ioreq.c:638,1
    - Dst: put_domain
      Src: /src/xen/xen/common/ioreq.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ioreq_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 641
    functionName: ioreq_server_deinit
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ioreq_server_remove_all_vcpus
    - ioreq_server_free_rangesets
    - ioreq_server_free_pages
    - ASSERT
    - put_domain
    - arch_ioreq_server_unmap_pages
    linkageType: ''
    returnType: void
    signature: void ioreq_server_deinit(struct ioreq_server *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/ioreq.c:650,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/ioreq.c:656,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/ioreq.c:660,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:661,1
    - Dst: GET_IOREQ_SERVER
      Src: /src/xen/xen/common/ioreq.c:665,1
    - Dst: set_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:677,1
    - Dst: ioreq_server_init
      Src: /src/xen/xen/common/ioreq.c:679,1
    - Dst: set_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:682,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:689,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/ioreq.c:690,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:695,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/ioreq.c:696,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:698,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - d
    - bufioreq_handling
    - id
    argTypes:
    - struct domain*
    - int
    - ioservid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 643
    functionDepth: 6
    functionLinenumber: 643
    functionLinenumberEnd: 700
    functionName: ioreq_server_create
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - xzalloc
    - domain_pause
    - rspin_lock
    - set_ioreq_server
    - ioreq_server_init
    - rspin_unlock
    - IS_ENABLED
    - xfree
    - GET_IOREQ_SERVER
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_create(struct domain *d, int bufioreq_handling,\n
      \                              ioservid_t *id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:707,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:709,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/ioreq.c:719,1
    - Dst: arch_ioreq_server_destroy
      Src: /src/xen/xen/common/ioreq.c:721,1
    - Dst: ioreq_server_disable
      Src: /src/xen/xen/common/ioreq.c:723,1
    - Dst: ioreq_server_deinit
      Src: /src/xen/xen/common/ioreq.c:729,1
    - Dst: set_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:730,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/ioreq.c:732,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:734,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - ioservid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 742
    functionName: ioreq_server_destroy
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - domain_pause
    - rspin_lock
    - set_ioreq_server
    - rspin_unlock
    - ioreq_server_disable
    - ioreq_server_deinit
    - arch_ioreq_server_destroy
    - xfree
    - get_ioreq_server
    linkageType: ''
    returnType: int
    signature: int ioreq_server_destroy(struct domain *d, ioservid_t id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:752,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:754,1
    - Dst: arch_ioreq_server_map_pages
      Src: /src/xen/xen/common/ioreq.c:766,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/ioreq.c:772,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/common/ioreq.c:774,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/ioreq.c:777,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:786,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - d
    - id
    - ioreq_gfn
    - bufioreq_gfn
    - bufioreq_port
    argTypes:
    - struct domain*
    - ioservid_t
    - unsigned long*
    - unsigned long*
    - evtchn_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 789
    functionName: ioreq_server_get_info
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - arch_ioreq_server_map_pages
    - HANDLE_BUFIOREQ
    - rspin_lock
    - rspin_unlock
    - gfn_x
    - get_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_get_info(struct domain *d, ioservid_t id,\n                                 unsigned
      long *ioreq_gfn,\n                                 unsigned long *bufioreq_gfn,\n
      \                                evtchn_port_t *bufioreq_port)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:797,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/ioreq.c:797,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:799,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:801,1
    - Dst: ioreq_server_alloc_pages
      Src: /src/xen/xen/common/ioreq.c:811,1
    - Dst: HANDLE_BUFIOREQ
      Src: /src/xen/xen/common/ioreq.c:819,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/ioreq.c:822,1
    - Dst: XENMEM_resource_ioreq_server_frame_ioreq
      Src: /src/xen/xen/common/ioreq.c:826,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/ioreq.c:827,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:837,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - d
    - id
    - idx
    - mfn
    argTypes:
    - struct domain*
    - ioservid_t
    - unsigned int
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 840
    functionName: ioreq_server_get_frame
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - ioreq_server_alloc_pages
    - page_to_mfn
    - HANDLE_BUFIOREQ
    - rspin_lock
    - rspin_unlock
    - XENMEM_resource_ioreq_server_frame_ioreq
    - ASSERT
    - get_ioreq_server
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_get_frame(struct domain *d, ioservid_t id,\n                           unsigned
      int idx, mfn_t *mfn)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:853,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:855,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/common/ioreq.c:883,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/common/ioreq.c:886,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:889,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - d
    - id
    - type
    - start
    - end
    argTypes:
    - struct domain*
    - ioservid_t
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 892
    functionName: ioreq_server_map_io_range
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - rangeset_add_range
    - rangeset_overlaps_range
    - get_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_map_io_range(struct domain *d, ioservid_t id,\n                                     uint32_t
      type, uint64_t start,\n                                     uint64_t end)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:905,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:907,1
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/ioreq.c:935,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/common/ioreq.c:938,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:941,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - d
    - id
    - type
    - start
    - end
    argTypes:
    - struct domain*
    - ioservid_t
    - uint32_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 944
    functionName: ioreq_server_unmap_io_range
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - rangeset_remove_range
    - get_ioreq_server
    - rangeset_contains_range
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_unmap_io_range(struct domain *d, ioservid_t id,\n
      \                                      uint32_t type, uint64_t start,\n                                       uint64_t
      end)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:966,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:968,1
    - Dst: arch_ioreq_server_map_mem_type
      Src: /src/xen/xen/common/ioreq.c:978,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:981,1
    - Dst: arch_ioreq_server_map_mem_type_completed
      Src: /src/xen/xen/common/ioreq.c:984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - d
    - id
    - type
    - flags
    argTypes:
    - struct domain*
    - ioservid_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 987
    functionName: ioreq_server_map_mem_type
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - arch_ioreq_server_map_mem_type_completed
    - get_ioreq_server
    - arch_ioreq_server_map_mem_type
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_map_mem_type(struct domain *d, ioservid_t id,\n                              uint32_t
      type, uint32_t flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:995,1
    - Dst: get_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:997,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/ioreq.c:1007,1
    - Dst: ioreq_server_enable
      Src: /src/xen/xen/common/ioreq.c:1010,1
    - Dst: ioreq_server_disable
      Src: /src/xen/xen/common/ioreq.c:1012,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/ioreq.c:1014,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:1019,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - d
    - id
    - enabled
    argTypes:
    - struct domain*
    - ioservid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 989
    functionDepth: 4
    functionLinenumber: 989
    functionLinenumberEnd: 1021
    functionName: ioreq_server_set_state
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - domain_unpause
    - domain_pause
    - rspin_lock
    - rspin_unlock
    - ioreq_server_enable
    - ioreq_server_disable
    - get_ioreq_server
    linkageType: ''
    returnType: int
    signature: "int ioreq_server_set_state(struct domain *d, ioservid_t id,\n                                  bool
      enabled)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:1029,1
    - Dst: ioreq_server_add_vcpu
      Src: /src/xen/xen/common/ioreq.c:1033,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:1038,1
    - Dst: GET_IOREQ_SERVER
      Src: /src/xen/xen/common/ioreq.c:1045,1
    - Dst: ioreq_server_remove_vcpu
      Src: /src/xen/xen/common/ioreq.c:1050,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:1053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - d
    - v
    argTypes:
    - struct domain*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1023
    functionDepth: 4
    functionLinenumber: 1023
    functionLinenumberEnd: 1056
    functionName: ioreq_server_add_vcpu_all
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - ioreq_server_add_vcpu
    - rspin_lock
    - rspin_unlock
    - ioreq_server_remove_vcpu
    - GET_IOREQ_SERVER
    linkageType: ''
    returnType: int
    signature: int ioreq_server_add_vcpu_all(struct domain *d, struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_add_vcpu
      Src: /src/xen/xen/common/ioreq.c:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - ioreq_server_add_vcpu
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:1063,1
    - Dst: FOR_EACH_IOREQ_SERVER
      Src: /src/xen/xen/common/ioreq.c:1065,1
    - Dst: ioreq_server_remove_vcpu
      Src: /src/xen/xen/common/ioreq.c:1066,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - v
    argTypes:
    - struct domain*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1069
    functionName: ioreq_server_remove_vcpu_all
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 1
    functionsReached:
    - rspin_lock
    - ioreq_server_remove_vcpu
    - rspin_unlock
    - FOR_EACH_IOREQ_SERVER
    linkageType: ''
    returnType: void
    signature: void ioreq_server_remove_vcpu_all(struct domain *d, struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arch_ioreq_server_destroy_all
      Src: /src/xen/xen/common/ioreq.c:1076,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/ioreq.c:1079,1
    - Dst: ioreq_server_disable
      Src: /src/xen/xen/common/ioreq.c:1085,1
    - Dst: ioreq_server_deinit
      Src: /src/xen/xen/common/ioreq.c:1091,1
    - Dst: set_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:1092,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:1094,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/ioreq.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1071
    functionDepth: 5
    functionLinenumber: 1071
    functionLinenumberEnd: 1098
    functionName: ioreq_server_destroy_all
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - arch_ioreq_server_destroy_all
    - rspin_lock
    - set_ioreq_server
    - rspin_unlock
    - ioreq_server_disable
    - ioreq_server_deinit
    - xfree
    linkageType: ''
    returnType: void
    signature: void ioreq_server_destroy_all(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_disable
      Src: /src/xen/xen/common/ioreq.c:1085,1
    - Dst: ioreq_server_deinit
      Src: /src/xen/xen/common/ioreq.c:1091,1
    - Dst: set_ioreq_server
      Src: /src/xen/xen/common/ioreq.c:1092,1
    - Dst: xfree
      Src: /src/xen/xen/common/ioreq.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1083
    functionDepth: 5
    functionLinenumber: 1083
    functionLinenumberEnd: 1095
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - set_ioreq_server
    - ioreq_server_disable
    - xfree
    - ioreq_server_deinit
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: arch_ioreq_server_get_type_addr
      Src: /src/xen/xen/common/ioreq.c:1108,1
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/ioreq.c:1127,1
    - Dst: ioreq_mmio_first_byte
      Src: /src/xen/xen/common/ioreq.c:1133,1
    - Dst: ioreq_mmio_last_byte
      Src: /src/xen/xen/common/ioreq.c:1134,1
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/ioreq.c:1136,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/common/ioreq.c:1142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - d
    - p
    argTypes:
    - struct domain*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1100
    functionDepth: 3
    functionLinenumber: 1100
    functionLinenumberEnd: 1154
    functionName: ioreq_server_select
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 3
    functionsReached:
    - arch_ioreq_server_get_type_addr
    - rangeset_contains_singleton
    - ioreq_mmio_first_byte
    - ioreq_mmio_last_byte
    - rangeset_contains_range
    linkageType: ''
    returnType: struct ioreq_server
    signature: "struct ioreq_server *ioreq_server_select(struct domain *d,\n                                         ioreq_t
      *p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/ioreq.c:1127,1
    - Dst: ioreq_mmio_first_byte
      Src: /src/xen/xen/common/ioreq.c:1133,1
    - Dst: ioreq_mmio_last_byte
      Src: /src/xen/xen/common/ioreq.c:1134,1
    - Dst: rangeset_contains_range
      Src: /src/xen/xen/common/ioreq.c:1136,1
    - Dst: rangeset_contains_singleton
      Src: /src/xen/xen/common/ioreq.c:1142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1151
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ioreq_mmio_first_byte
    - ioreq_mmio_last_byte
    - rangeset_contains_range
    - rangeset_contains_singleton
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/ioreq.c:1169,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/ioreq.c:1204,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/ioreq.c:1208,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:1214,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/ioreq.c:1227,1
    - Dst: guest_cmpxchg64
      Src: /src/xen/xen/common/ioreq.c:1240,1
    - Dst: full::full
      Src: /src/xen/xen/common/ioreq.c:1240,1
    - Dst: notify_via_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:1243,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/ioreq.c:1244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - s
    - p
    argTypes:
    - struct ioreq_server*
    - ioreq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1247
    functionName: ioreq_send_buffered
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - spin_unlock
    - notify_via_xen_event_channel
    - BUILD_BUG_ON
    - smp_wmb
    - spin_lock
    - guest_cmpxchg64
    - full::full
    linkageType: ''
    returnType: int
    signature: int ioreq_send_buffered(struct ioreq_server *s, ioreq_t *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/ioreq.c:1257,1
    - Dst: ioreq_send_buffered
      Src: /src/xen/xen/common/ioreq.c:1260,1
    - Dst: unlikely
      Src: /src/xen/xen/common/ioreq.c:1262,1
    - Dst: vcpu_start_shutdown_deferral
      Src: /src/xen/xen/common/ioreq.c:1262,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/ioreq.c:1268,1
    - Dst: get_ioreq
      Src: /src/xen/xen/common/ioreq.c:1275,1
    - Dst: unlikely
      Src: /src/xen/xen/common/ioreq.c:1277,1
    - Dst: gprintk
      Src: /src/xen/xen/common/ioreq.c:1279,1
    - Dst: unlikely
      Src: /src/xen/xen/common/ioreq.c:1284,1
    - Dst: gprintk
      Src: /src/xen/xen/common/ioreq.c:1286,1
    - Dst: prepare_wait_on_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:1295,1
    - Dst: notify_via_xen_event_channel
      Src: /src/xen/xen/common/ioreq.c:1303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - s
    - proto_p
    - buffered
    argTypes:
    - struct ioreq_server*
    - ioreq_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1249
    functionDepth: 5
    functionLinenumber: 1249
    functionLinenumberEnd: 1311
    functionName: ioreq_send
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 3
    functionsReached:
    - ioreq_send_buffered
    - get_ioreq
    - notify_via_xen_event_channel
    - vcpu_start_shutdown_deferral
    - ASSERT
    - gprintk
    - unlikely
    - list_for_each_entry
    - prepare_wait_on_xen_event_channel
    linkageType: ''
    returnType: int
    signature: "int ioreq_send(struct ioreq_server *s, ioreq_t *proto_p,\n               bool
      buffered)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_send
      Src: /src/xen/xen/common/ioreq.c:1325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - p
    - buffered
    argTypes:
    - ioreq_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1313
    functionDepth: 6
    functionLinenumber: 1313
    functionLinenumberEnd: 1330
    functionName: ioreq_broadcast
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ioreq_send
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ioreq_broadcast(ioreq_t *p, bool buffered)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_send
      Src: /src/xen/xen/common/ioreq.c:1325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1319
    functionDepth: 6
    functionLinenumber: 1319
    functionLinenumberEnd: 1327
    functionName: FOR_EACH_IOREQ_SERVER
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ioreq_send
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_IOREQ_SERVER(d, id, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock_init
      Src: /src/xen/xen/common/ioreq.c:1334,1
    - Dst: arch_ioreq_domain_init
      Src: /src/xen/xen/common/ioreq.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1337
    functionName: ioreq_domain_init
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 3
    functionsReached:
    - rspin_lock_init
    - arch_ioreq_domain_init
    linkageType: ''
    returnType: void
    signature: void ioreq_domain_init(struct domain *d)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ioreq_server_create
      Src: /src/xen/xen/common/ioreq.c:1356,1
    - Dst: ioreq_server_get_info
      Src: /src/xen/xen/common/ioreq.c:1373,1
    - Dst: ioreq_server_map_io_range
      Src: /src/xen/xen/common/ioreq.c:1391,1
    - Dst: ioreq_server_unmap_io_range
      Src: /src/xen/xen/common/ioreq.c:1405,1
    - Dst: ioreq_server_set_state
      Src: /src/xen/xen/common/ioreq.c:1419,1
    - Dst: ioreq_server_destroy
      Src: /src/xen/xen/common/ioreq.c:1432,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - op
    - d
    - const_op
    argTypes:
    - struct xen_dm_op*
    - struct domain*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1339
    functionDepth: 7
    functionLinenumber: 1339
    functionLinenumberEnd: 1442
    functionName: ioreq_server_dm_op
    functionSourceFile: /src/xen/xen/common/ioreq.c
    functionUses: 2
    functionsReached:
    - ioreq_server_map_io_range
    - ioreq_server_set_state
    - ioreq_server_unmap_io_range
    - ioreq_server_destroy
    - ioreq_server_create
    - ioreq_server_get_info
    linkageType: ''
    returnType: int
    signature: int ioreq_server_dm_op(struct xen_dm_op *op, struct domain *d, bool
      *const_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: ROUNDUP_MESSAGE
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP_MESSAGE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ring_len
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: NPAGES_RING
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NPAGES_RING(ring_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/argo.c:91,1
    - Dst: strchr
      Src: /src/xen/xen/common/argo.c:93,1
    - Dst: parse_bool
      Src: /src/xen/xen/common/argo.c:95,1
    - Dst: parse_boolean
      Src: /src/xen/xen/common/argo.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: parse_argo
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_argo(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: LOCKING_Write_rings_L2
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKING_Write_rings_L2(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 308
    functionName: LOCKING_Read_rings_L2
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKING_Read_rings_L2(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: LOCKING_L3
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKING_L3(d, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: LOCKING_send_L2
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCKING_send_L2(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: argo_dprintk
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: argo_dprintk(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - id
    argTypes:
    - struct argo_ring_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 354
    functionName: hash_index
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash_index(const struct argo_ring_id *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:362,1
    - Dst: LOCKING_Read_rings_L2
      Src: /src/xen/xen/common/argo.c:362,1
    - Dst: hash_index
      Src: /src/xen/xen/common/argo.c:365,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:375,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - struct argo_ring_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 384
    functionName: find_ring_info
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_Read_rings_L2
    - ASSERT
    - argo_dprintk
    - hash_index
    linkageType: ''
    returnType: struct argo_ring_info
    signature: 'struct argo_ring_info *

      find_ring_info(const struct domain *d, const struct argo_ring_id *id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 81
    functionsReached:
    - argo_dprintk
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(ring_info, bucket, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:393,1
    - Dst: LOCKING_Read_rings_L2
      Src: /src/xen/xen/common/argo.c:393,1
    - Dst: find_ring_info
      Src: /src/xen/xen/common/argo.c:399,1
    - Dst: find_ring_info
      Src: /src/xen/xen/common/argo.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - d
    - aport
    - partner_id
    argTypes:
    - struct domain*
    - xen_argo_port_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: find_ring_info_by_match
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_Read_rings_L2
    - ASSERT
    - find_ring_info
    linkageType: ''
    returnType: struct argo_ring_info
    signature: "struct argo_ring_info *\nfind_ring_info_by_match(const struct domain
      *d, xen_argo_port_t aport,\n                        domid_t partner_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:414,1
    - Dst: LOCKING_send_L2
      Src: /src/xen/xen/common/argo.c:414,1
    - Dst: hash_index
      Src: /src/xen/xen/common/argo.c:417,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:427,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - id
    argTypes:
    - struct domain*
    - struct argo_ring_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 436
    functionName: find_send_info
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - argo_dprintk
    - LOCKING_send_L2
    - hash_index
    linkageType: ''
    returnType: struct argo_send_info
    signature: 'struct argo_send_info *

      find_send_info(const struct domain *d, const struct argo_ring_id *id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 81
    functionsReached:
    - argo_dprintk
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry(send_info, bucket, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:441,1
    - Dst: send_guest_domain_virq
      Src: /src/xen/xen/common/argo.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: signal_domain
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - send_guest_domain_virq
    - argo_dprintk
    linkageType: ''
    returnType: void
    signature: void signal_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:449,1
    - Dst: signal_domain
      Src: /src/xen/xen/common/argo.c:454,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - domain_id
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 456
    functionName: signal_domid
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - rcu_unlock_domain
    - rcu_lock_domain_by_id
    - signal_domain
    linkageType: ''
    returnType: void
    signature: void signal_domid(domid_t domain_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:463,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:463,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:468,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:475,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/argo.c:475,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:476,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/argo.c:477,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/argo.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - d
    - ring_info
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 482
    functionName: ring_unmap
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - mfn_x
    - unmap_domain_page_global
    - argo_dprintk
    - ASSERT
    - mfn_eq
    linkageType: ''
    returnType: void
    signature: void ring_unmap(const struct domain *d, struct argo_ring_info *ring_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:488,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:488,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:500,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/argo.c:506,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/argo.c:510,1
    - Dst: map_domain_page_global
      Src: /src/xen/xen/common/argo.c:517,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:520,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:526,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/argo.c:527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - d
    - ring_info
    - i
    - out_ptr
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - unsigned int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 534
    functionName: ring_map_page
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - array_index_nospec
    - mfn_x
    - argo_dprintk
    - map_domain_page_global
    - ASSERT
    - gprintk
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int ring_map_page(const struct domain *d, struct argo_ring_info *ring_info,\n
      \             unsigned int i, void **out_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:542,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:542,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:543,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/argo.c:548,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/argo.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - d
    - ring_info
    - tx_ptr
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: update_tx_ptr
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - ASSERT
    - write_atomic
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: "void update_tx_ptr(const struct domain *d, struct argo_ring_info *ring_info,\n
      \             uint32_t tx_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:563,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:563,1
    - Dst: ring_map_page
      Src: /src/xen/xen/common/argo.c:575,1
    - Dst: memcpy
      Src: /src/xen/xen/common/argo.c:581,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:586,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/argo.c:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - d
    - ring_info
    - offset
    - src
    - len
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - unsigned int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 598
    functionName: memcpy_to_guest_ring
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - copy_from_guest
    - guest_handle_add_offset
    - ring_map_page
    - ASSERT
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int memcpy_to_guest_ring(const struct domain *d, struct argo_ring_info
      *ring_info,\n                     unsigned int offset,\n                     const
      void *src, XEN_GUEST_HANDLE(uint8) src_hnd,\n                     unsigned int
      len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:612,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:612,1
    - Dst: NPAGES_RING
      Src: /src/xen/xen/common/argo.c:614,1
    - Dst: ring_map_page
      Src: /src/xen/xen/common/argo.c:617,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/argo.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - d
    - ring_info
    - rx_ptr
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: get_rx_ptr
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - ring_map_page
    - ASSERT
    - read_atomic
    - NPAGES_RING
    linkageType: ''
    returnType: int
    signature: "int get_rx_ptr(const struct domain *d, struct argo_ring_info *ring_info,\n
      \          uint32_t *rx_ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:641,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:641,1
    - Dst: get_rx_ptr
      Src: /src/xen/xen/common/argo.c:643,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - d
    - ring
    - ring_info
    argTypes:
    - struct domain*
    - xen_argo_ring_t*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 634
    functionDepth: 3
    functionLinenumber: 634
    functionLinenumberEnd: 656
    functionName: get_sanitized_ring
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - ASSERT
    - get_rx_ptr
    - ROUNDUP_MESSAGE
    linkageType: ''
    returnType: int
    signature: "int get_sanitized_ring(const struct domain *d, xen_argo_ring_t *ring,\n
      \                  struct argo_ring_info *ring_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:665,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:665,1
    - Dst: get_sanitized_ring
      Src: /src/xen/xen/common/argo.c:671,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:674,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - d
    - ring_info
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 658
    functionDepth: 4
    functionLinenumber: 658
    functionLinenumberEnd: 716
    functionName: ringbuf_payload_space
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - argo_dprintk
    - ROUNDUP_MESSAGE
    - ASSERT
    - get_sanitized_ring
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ringbuf_payload_space(const struct domain *d, struct argo_ring_info
      *ring_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:737,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:744,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - piov
    - niov
    - count
    argTypes:
    - xen_argo_iov_t*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 765
    functionName: iov_count
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - argo_dprintk
    linkageType: ''
    returnType: int
    signature: "int iov_count(const xen_argo_iov_t *piov, unsigned int niov,\n          unsigned
      int *count)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/argo.c:776,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:778,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:778,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:792,1
    - Dst: get_sanitized_ring
      Src: /src/xen/xen/common/argo.c:795,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:799,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:816,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:819,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/argo.c:832,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:833,1
    - Dst: memcpy_to_guest_ring
      Src: /src/xen/xen/common/argo.c:840,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:845,1
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/argo.c:859,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:865,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:873,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/argo.c:873,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:875,1
    - Dst: memcpy_to_guest_ring
      Src: /src/xen/xen/common/argo.c:897,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:902,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/argo.c:913,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:915,1
    - Dst: memcpy_to_guest_ring
      Src: /src/xen/xen/common/argo.c:941,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:946,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:964,1
    - Dst: update_tx_ptr
      Src: /src/xen/xen/common/argo.c:969,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 7
    argNames:
    - d
    - ring_info
    - src_id
    - iovs
    - niov
    - message_type
    - len
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - struct argo_ring_id*
    - xen_argo_iov_t*
    - unsigned int
    - uint32_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 982
    functionName: ringbuf_insert
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - guest_handle_add_offset
    - argo_dprintk
    - update_tx_ptr
    - XEN_GUEST_HANDLE
    - ROUNDUP_MESSAGE
    - BUILD_BUG_ON
    - ASSERT
    - memcpy_to_guest_ring
    - gprintk
    - get_sanitized_ring
    - unlikely
    - guest_handle_okay
    linkageType: ''
    returnType: int
    signature: "int ringbuf_insert(const struct domain *d, struct argo_ring_info *ring_info,\n
      \              const struct argo_ring_id *src_id, xen_argo_iov_t *iovs,\n               unsigned
      int niov, uint32_t message_type, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:987,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:992,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:996,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:997,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:998,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - domain_id
    - ent
    argTypes:
    - domid_t
    - struct pending_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 984
    functionDepth: 4
    functionLinenumber: 984
    functionLinenumberEnd: 1001
    functionName: wildcard_pending_list_remove
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - rcu_lock_domain_by_id
    - ASSERT
    - spin_lock
    - list_del
    - rcu_unlock_domain
    linkageType: ''
    returnType: void
    signature: void wildcard_pending_list_remove(domid_t domain_id, struct pending_ent
      *ent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:1006,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1011,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1015,1
    - Dst: list_add
      Src: /src/xen/xen/common/argo.c:1016,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1017,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1019,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - domain_id
    - ent
    argTypes:
    - domid_t
    - struct pending_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1020
    functionName: wildcard_pending_list_insert
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - rcu_lock_domain_by_id
    - ASSERT
    - spin_lock
    - rcu_unlock_domain
    - list_add
    linkageType: ''
    returnType: void
    signature: void wildcard_pending_list_insert(domid_t domain_id, struct pending_ent
      *ent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1027,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:1027,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/common/argo.c:1030,1
    - Dst: wildcard_pending_list_remove
      Src: /src/xen/xen/common/argo.c:1035,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1036,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - d
    - ring_info
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1022
    functionDepth: 5
    functionLinenumber: 1022
    functionLinenumberEnd: 1040
    functionName: pending_remove_all
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - wildcard_pending_list_remove
    - ASSERT
    - list_del
    - list_first_entry_or_null
    - xfree
    linkageType: ''
    returnType: void
    signature: void pending_remove_all(const struct domain *d, struct argo_ring_info
      *ring_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1047,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/common/argo.c:1050,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1053,1
    - Dst: signal_domid
      Src: /src/xen/xen/common/argo.c:1054,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - to_notify
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1042
    functionDepth: 5
    functionLinenumber: 1042
    functionLinenumberEnd: 1057
    functionName: pending_notify
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - signal_domid
    - list_del
    - list_first_entry_or_null
    - xfree
    linkageType: ''
    returnType: void
    signature: void pending_notify(struct list_head *to_notify)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1065,1
    - Dst: LOCKING_Read_rings_L2
      Src: /src/xen/xen/common/argo.c:1065,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1081,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/common/argo.c:1084,1
    - Dst: wildcard_pending_list_remove
      Src: /src/xen/xen/common/argo.c:1089,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1091,1
    - Dst: list_add
      Src: /src/xen/xen/common/argo.c:1093,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - d
    - ring_info
    - payload_space
    - to_notify
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - unsigned int
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1059
    functionDepth: 5
    functionLinenumber: 1059
    functionLinenumberEnd: 1098
    functionName: pending_find
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - wildcard_pending_list_remove
    - LOCKING_Read_rings_L2
    - spin_unlock
    - ASSERT
    - spin_lock
    - list_for_each_entry_safe
    - list_del
    - list_add
    linkageType: ''
    returnType: void
    signature: "void pending_find(const struct domain *d, struct argo_ring_info *ring_info,\n
      \            unsigned int payload_space, struct list_head *to_notify)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1106,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:1106,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/argo.c:1111,1
    - Dst: wildcard_pending_list_insert
      Src: /src/xen/xen/common/argo.c:1120,1
    - Dst: list_add
      Src: /src/xen/xen/common/argo.c:1121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - d
    - ring_info
    - src_id
    - len
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1100
    functionDepth: 5
    functionLinenumber: 1100
    functionLinenumberEnd: 1125
    functionName: pending_queue
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - xmalloc
    - ASSERT
    - wildcard_pending_list_insert
    - list_add
    linkageType: ''
    returnType: int
    signature: "int pending_queue(const struct domain *d, struct argo_ring_info *ring_info,\n
      \             domid_t src_id, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1133,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:1133,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/argo.c:1136,1
    - Dst: pending_queue
      Src: /src/xen/xen/common/argo.c:1157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - d
    - ring_info
    - src_id
    - len
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1127
    functionDepth: 6
    functionLinenumber: 1127
    functionLinenumberEnd: 1158
    functionName: pending_requeue
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - ASSERT
    - list_for_each_entry
    - pending_queue
    linkageType: ''
    returnType: int
    signature: "int pending_requeue(const struct domain *d, struct argo_ring_info
      *ring_info,\n                domid_t src_id, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1166,1
    - Dst: LOCKING_L3
      Src: /src/xen/xen/common/argo.c:1166,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/common/argo.c:1169,1
    - Dst: wildcard_pending_list_remove
      Src: /src/xen/xen/common/argo.c:1175,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1176,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - d
    - ring_info
    - src_id
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1160
    functionDepth: 5
    functionLinenumber: 1160
    functionLinenumberEnd: 1181
    functionName: pending_cancel
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_L3
    - wildcard_pending_list_remove
    - ASSERT
    - list_del
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: void
    signature: "void pending_cancel(const struct domain *d, struct argo_ring_info
      *ring_info,\n               domid_t src_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1188,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/common/argo.c:1191,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1201,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1202,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1205
    functionName: wildcard_rings_pending_remove
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - list_del
    - xfree
    - list_first_entry_or_null
    linkageType: ''
    returnType: void
    signature: void wildcard_rings_pending_remove(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1212,1
    - Dst: LOCKING_Write_rings_L2
      Src: /src/xen/xen/common/argo.c:1212,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/argo.c:1219,1
    - Dst: ring_unmap
      Src: /src/xen/xen/common/argo.c:1223,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/argo.c:1226,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/argo.c:1227,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/argo.c:1227,1
    - Dst: XFREE
      Src: /src/xen/xen/common/argo.c:1230,1
    - Dst: XFREE
      Src: /src/xen/xen/common/argo.c:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - d
    - ring_info
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1232
    functionName: ring_remove_mfns
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - put_page_and_type
    - mfn_to_page
    - XFREE
    - LOCKING_Write_rings_L2
    - ASSERT
    - mfn_eq
    - ring_unmap
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void ring_remove_mfns(const struct domain *d, struct argo_ring_info
      *ring_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1237,1
    - Dst: LOCKING_Write_rings_L2
      Src: /src/xen/xen/common/argo.c:1237,1
    - Dst: pending_remove_all
      Src: /src/xen/xen/common/argo.c:1239,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1240,1
    - Dst: ring_remove_mfns
      Src: /src/xen/xen/common/argo.c:1241,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - d
    - ring_info
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1234
    functionDepth: 6
    functionLinenumber: 1234
    functionLinenumberEnd: 1243
    functionName: ring_remove_info
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - pending_remove_all
    - LOCKING_Write_rings_L2
    - ASSERT
    - list_del
    - ring_remove_mfns
    - xfree
    linkageType: ''
    returnType: void
    signature: void ring_remove_info(const struct domain *d, struct argo_ring_info
      *ring_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1250,1
    - Dst: LOCKING_Write_rings_L2
      Src: /src/xen/xen/common/argo.c:1250,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/common/argo.c:1257,1
    - Dst: ring_remove_info
      Src: /src/xen/xen/common/argo.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1245
    functionDepth: 7
    functionLinenumber: 1245
    functionLinenumberEnd: 1263
    functionName: domain_rings_remove_all
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ring_remove_info
    - list_first_entry_or_null
    - LOCKING_Write_rings_L2
    linkageType: ''
    returnType: void
    signature: void domain_rings_remove_all(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1275,1
    - Dst: list_first_entry_or_null
      Src: /src/xen/xen/common/argo.c:1283,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:1287,1
    - Dst: find_ring_info
      Src: /src/xen/xen/common/argo.c:1292,1
    - Dst: ring_remove_info
      Src: /src/xen/xen/common/argo.c:1296,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/argo.c:1300,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1303,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1307,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1309,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - src_d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1270
    functionDepth: 7
    functionLinenumber: 1270
    functionLinenumberEnd: 1313
    functionName: partner_rings_remove
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - rcu_lock_domain_by_id
    - argo_dprintk
    - xfree
    - find_ring_info
    - ASSERT
    - list_del
    - ring_remove_info
    - rcu_unlock_domain
    - list_first_entry_or_null
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void partner_rings_remove(struct domain *src_d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1324,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1325,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/argo.c:1327,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1330,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:1335,1
    - Dst: xsm_argo_send
      Src: /src/xen/xen/common/argo.c:1343,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:1347,1
    - Dst: find_ring_info_by_match
      Src: /src/xen/xen/common/argo.c:1349,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1357,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1361,1
    - Dst: ringbuf_payload_space
      Src: /src/xen/xen/common/argo.c:1366,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1368,1
    - Dst: pending_cancel
      Src: /src/xen/xen/common/argo.c:1377,1
    - Dst: pending_requeue
      Src: /src/xen/xen/common/argo.c:1382,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1397,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1403,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1407,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/argo.c:1409,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/argo.c:1410,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - currd
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1315
    functionDepth: 7
    functionLinenumber: 1315
    functionLinenumberEnd: 1414
    functionName: fill_ring_data
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - __copy_from_guest
    - pending_cancel
    - read_unlock
    - ringbuf_payload_space
    - pending_requeue
    - xsm_argo_send
    - rcu_lock_domain_by_id
    - argo_dprintk
    - ROUNDUP_MESSAGE
    - ASSERT
    - spin_lock
    - find_ring_info_by_match
    - rcu_unlock_domain
    - read_lock
    - __copy_field_to_guest
    linkageType: ''
    returnType: int
    signature: "int fill_ring_data(const struct domain *currd,\n               XEN_GUEST_HANDLE(xen_argo_ring_data_ent_t)
      data_ent_hnd)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/common/argo.c:1423,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1424,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/argo.c:1427,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/argo.c:1432,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1447,1
    - Dst: put_page
      Src: /src/xen/xen/common/argo.c:1448,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - d
    - gfn
    - mfn
    argTypes:
    - struct domain*
    - gfn_t
    - mfn_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1451
    functionName: find_ring_mfn
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - get_page_type
    - check_get_page_from_gfn
    - unlikely
    - put_page
    linkageType: ''
    returnType: int
    signature: int find_ring_mfn(struct domain *d, gfn_t gfn, mfn_t *mfn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1464,1
    - Dst: LOCKING_Write_rings_L2
      Src: /src/xen/xen/common/argo.c:1464,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1469,1
    - Dst: ring_remove_mfns
      Src: /src/xen/xen/common/argo.c:1474,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1475,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/argo.c:1478,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/argo.c:1485,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1488,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/argo.c:1500,1
    - Dst: find_ring_mfn
      Src: /src/xen/xen/common/argo.c:1504,1
    - Dst: _gfn
      Src: /src/xen/xen/common/argo.c:1504,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1507,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/argo.c:1509,1
    - Dst: _gfn
      Src: /src/xen/xen/common/argo.c:1509,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1517,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/argo.c:1518,1
    - Dst: _gfn
      Src: /src/xen/xen/common/argo.c:1518,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/argo.c:1518,1
    - Dst: ring_remove_mfns
      Src: /src/xen/xen/common/argo.c:1524,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1527,1
    - Dst: NPAGES_RING
      Src: /src/xen/xen/common/argo.c:1527,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1529,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - d
    - ring_info
    - npage
    - len
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1453
    functionDepth: 3
    functionLinenumber: 1453
    functionLinenumberEnd: 1537
    functionName: find_ring_mfns
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - _gfn
    - mfn_x
    - argo_dprintk
    - LOCKING_Write_rings_L2
    - xzalloc_array
    - gfn_x
    - ASSERT
    - gprintk
    - ring_remove_mfns
    - NPAGES_RING
    - __copy_from_guest_offset
    - xfree
    - find_ring_mfn
    linkageType: ''
    returnType: int
    signature: "int find_ring_mfns(struct domain *d, struct argo_ring_info *ring_info,\n
      \              const unsigned int npage,\n               XEN_GUEST_HANDLE_PARAM(xen_argo_gfn_t)
      gfn_hnd,\n               const unsigned int len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1549,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:1551,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:1561,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1563,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1565,1
    - Dst: write_lock
      Src: /src/xen/xen/common/argo.c:1569,1
    - Dst: find_ring_info
      Src: /src/xen/xen/common/argo.c:1571,1
    - Dst: ring_remove_info
      Src: /src/xen/xen/common/argo.c:1575,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:1581,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/argo.c:1584,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1588,1
    - Dst: find_send_info
      Src: /src/xen/xen/common/argo.c:1590,1
    - Dst: list_del
      Src: /src/xen/xen/common/argo.c:1592,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/argo.c:1594,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1596,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/argo.c:1599,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1601,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1604,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1606,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1610,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - currd
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1539
    functionDepth: 7
    functionLinenumber: 1539
    functionLinenumberEnd: 1616
    functionName: unregister_ring
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - read_unlock
    - copy_from_guest
    - write_unlock
    - rcu_lock_domain_by_id
    - argo_dprintk
    - xfree
    - find_ring_info
    - ASSERT
    - spin_lock
    - find_send_info
    - list_del
    - ring_remove_info
    - unlikely
    - rcu_unlock_domain
    - write_lock
    - ASSERT_UNREACHABLE
    - read_lock
    linkageType: ''
    returnType: long
    signature: "long unregister_ring(struct domain *currd,\n                XEN_GUEST_HANDLE_PARAM(xen_argo_unregister_ring_t)
      unreg_hnd)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1634,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1637,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:1640,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1655,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1655,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1657,1
    - Dst: NPAGES_RING
      Src: /src/xen/xen/common/argo.c:1658,1
    - Dst: xsm_argo_register_any_source
      Src: /src/xen/xen/common/argo.c:1668,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:1675,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1678,1
    - Dst: xsm_argo_register_single_source
      Src: /src/xen/xen/common/argo.c:1682,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/argo.c:1686,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/argo.c:1699,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:1706,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1716,1
    - Dst: write_lock
      Src: /src/xen/xen/common/argo.c:1721,1
    - Dst: find_ring_info
      Src: /src/xen/xen/common/argo.c:1729,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/argo.c:1735,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/argo.c:1738,1
    - Dst: list_add
      Src: /src/xen/xen/common/argo.c:1740,1
    - Dst: hash_index
      Src: /src/xen/xen/common/argo.c:1741,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1743,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1755,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1771,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1783,1
    - Dst: find_ring_mfns
      Src: /src/xen/xen/common/argo.c:1788,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1791,1
    - Dst: ring_remove_info
      Src: /src/xen/xen/common/argo.c:1796,1
    - Dst: ring_map_page
      Src: /src/xen/xen/common/argo.c:1804,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1807,1
    - Dst: ring_remove_info
      Src: /src/xen/xen/common/argo.c:1812,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/argo.c:1817,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1820,1
    - Dst: ROUNDUP_MESSAGE
      Src: /src/xen/xen/common/argo.c:1827,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/argo.c:1827,1
    - Dst: update_tx_ptr
      Src: /src/xen/xen/common/argo.c:1832,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1841,1
    - Dst: list_add
      Src: /src/xen/xen/common/argo.c:1843,1
    - Dst: hash_index
      Src: /src/xen/xen/common/argo.c:1844,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1846,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/argo.c:1850,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1853,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:1857,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1860,1
    - Dst: xfree
      Src: /src/xen/xen/common/argo.c:1862,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 126
    argCount: 3
    argNames:
    - currd
    - npage
    - flags
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1618
    functionDepth: 7
    functionLinenumber: 1618
    functionLinenumberEnd: 1865
    functionName: register_ring
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - update_tx_ptr
    - spin_lock
    - gprintk
    - xsm_argo_register_single_source
    - xfree
    - xzalloc
    - spin_lock_init
    - argo_dprintk
    - ROUNDUP_MESSAGE
    - xsm_argo_register_any_source
    - NPAGES_RING
    - rcu_unlock_domain
    - read_lock
    - spin_unlock
    - read_unlock
    - write_unlock
    - rcu_lock_domain_by_id
    - ring_map_page
    - ASSERT
    - ring_remove_info
    - write_lock
    - find_ring_mfns
    - find_ring_info
    - read_atomic
    - unlikely
    - INIT_LIST_HEAD
    - list_add
    - hash_index
    linkageType: ''
    returnType: long
    signature: "long register_ring(struct domain *currd,\n              XEN_GUEST_HANDLE_PARAM(xen_argo_register_ring_t)
      reg_hnd,\n              XEN_GUEST_HANDLE_PARAM(xen_argo_gfn_t) gfn_hnd,\n              unsigned
      int npage, unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1873,1
    - Dst: LOCKING_Read_rings_L2
      Src: /src/xen/xen/common/argo.c:1873,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:1875,1
    - Dst: ringbuf_payload_space
      Src: /src/xen/xen/common/argo.c:1878,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:1882,1
    - Dst: pending_find
      Src: /src/xen/xen/common/argo.c:1885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - ring_info
    - to_notify
    argTypes:
    - struct domain*
    - struct argo_ring_info*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1867
    functionDepth: 6
    functionLinenumber: 1867
    functionLinenumberEnd: 1886
    functionName: notify_ring
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LOCKING_Read_rings_L2
    - spin_unlock
    - ringbuf_payload_space
    - pending_find
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void notify_ring(const struct domain *d, struct argo_ring_info *ring_info,\n
      \           struct list_head *to_notify)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/argo.c:1892,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1894,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:1896,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/common/argo.c:1904,1
    - Dst: notify_ring
      Src: /src/xen/xen/common/argo.c:1905,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1908,1
    - Dst: list_empty
      Src: /src/xen/xen/common/argo.c:1910,1
    - Dst: pending_notify
      Src: /src/xen/xen/common/argo.c:1911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1888
    functionDepth: 7
    functionLinenumber: 1888
    functionLinenumberEnd: 1912
    functionName: notify_check_pending
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - LIST_HEAD
    - read_unlock
    - ASSERT
    - list_for_each_entry_safe
    - notify_ring
    - pending_notify
    - list_empty
    - read_lock
    linkageType: ''
    returnType: void
    signature: void notify_check_pending(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/argo.c:1918,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/argo.c:1922,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:1924,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1928,1
    - Dst: notify_check_pending
      Src: /src/xen/xen/common/argo.c:1933,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/argo.c:1935,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:1938,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:1944,1
    - Dst: guest_handle_for_field
      Src: /src/xen/xen/common/argo.c:1950,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1952,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/argo.c:1952,1
    - Dst: fill_ring_data
      Src: /src/xen/xen/common/argo.c:1960,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/argo.c:1961,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:1965,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - currd
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1914
    functionDepth: 8
    functionLinenumber: 1914
    functionLinenumberEnd: 1968
    functionName: notify
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 30
    functionsReached:
    - guest_handle_for_field
    - read_unlock
    - copy_from_guest
    - guest_handle_add_offset
    - argo_dprintk
    - XEN_GUEST_HANDLE
    - ASSERT
    - gprintk
    - guest_handle_is_null
    - fill_ring_data
    - unlikely
    - guest_handle_okay
    - read_lock
    - notify_check_pending
    linkageType: ''
    returnType: long
    signature: "long notify(struct domain *currd,\n       XEN_GUEST_HANDLE_PARAM(xen_argo_ring_data_t)
      ring_data_hnd)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:1981,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1986,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:1993,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/argo.c:2000,1
    - Dst: xsm_argo_send
      Src: /src/xen/xen/common/argo.c:2004,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:2007,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:2010,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:2015,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2025,1
    - Dst: read_lock
      Src: /src/xen/xen/common/argo.c:2030,1
    - Dst: find_ring_info_by_match
      Src: /src/xen/xen/common/argo.c:2032,1
    - Dst: gprintk
      Src: /src/xen/xen/common/argo.c:2036,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/argo.c:2045,1
    - Dst: iov_count
      Src: /src/xen/xen/common/argo.c:2051,1
    - Dst: ringbuf_insert
      Src: /src/xen/xen/common/argo.c:2054,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2060,1
    - Dst: pending_requeue
      Src: /src/xen/xen/common/argo.c:2062,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/argo.c:2068,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:2071,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/argo.c:2074,1
    - Dst: signal_domain
      Src: /src/xen/xen/common/argo.c:2077,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/argo.c:2080,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 6
    argNames:
    - src_d
    - src_addr
    - dst_addr
    - iovs
    - niov
    - message_type
    argTypes:
    - struct domain*
    - xen_argo_addr_t*
    - xen_argo_addr_t*
    - xen_argo_iov_t*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 1970
    functionDepth: 7
    functionLinenumber: 1970
    functionLinenumberEnd: 2083
    functionName: sendv
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - ringbuf_insert
    - spin_unlock
    - signal_domain
    - read_unlock
    - pending_requeue
    - xsm_argo_send
    - rcu_lock_domain_by_id
    - argo_dprintk
    - iov_count
    - spin_lock
    - gprintk
    - find_ring_info_by_match
    - unlikely
    - rcu_unlock_domain
    - read_lock
    linkageType: ''
    returnType: long
    signature: "long sendv(struct domain *src_d, xen_argo_addr_t *src_addr,\n      const
      xen_argo_addr_t *dst_addr, xen_argo_iov_t *iovs, unsigned int niov,\n      uint32_t
      message_type)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2094,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2101,1
    - Dst: xsm_argo_enable
      Src: /src/xen/xen/common/argo.c:2104,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2112,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2113,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2114,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2115,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/argo.c:2118,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/argo.c:2118,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2120,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2127,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/argo.c:2127,1
    - Dst: register_ring
      Src: /src/xen/xen/common/argo.c:2133,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2139,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2140,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2142,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/argo.c:2142,1
    - Dst: unregister_ring
      Src: /src/xen/xen/common/argo.c:2148,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2158,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2159,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2160,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2161,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/argo.c:2166,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:2168,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2179,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/argo.c:2184,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:2186,1
    - Dst: sendv
      Src: /src/xen/xen/common/argo.c:2193,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2199,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2200,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2202,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/argo.c:2202,1
    - Dst: notify
      Src: /src/xen/xen/common/argo.c:2208,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2217,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 3
    argNames:
    - cmd
    - raw_arg3
    - raw_arg4
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2085
    functionDepth: 9
    functionLinenumber: 2085
    functionLinenumberEnd: 2220
    functionName: do_argo_op
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - unlikely
    - register_ring
    - array_index_nospec
    - notify
    - copy_from_guest
    - IS_ALIGNED
    - argo_dprintk
    - xsm_argo_enable
    - guest_handle_okay
    - BUILD_BUG_ON
    - unregister_ring
    - sendv
    - guest_handle_is_null
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_cast
    linkageType: ''
    returnType: long
    signature: "long do_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg1,\n
      \          XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long raw_arg3,\n           unsigned
      long raw_arg4)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/argo.c:2234,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/argo.c:2237,1
    - Dst: do_argo_op
      Src: /src/xen/xen/common/argo.c:2241,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2243,1
    - Dst: xsm_argo_enable
      Src: /src/xen/xen/common/argo.c:2246,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2250,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/argo.c:2253,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:2256,1
    - Dst: unlikely
      Src: /src/xen/xen/common/argo.c:2260,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/argo.c:2265,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/argo.c:2267,1
    - Dst: XLAT_argo_iov
      Src: /src/xen/xen/common/argo.c:2276,1
    - Dst: sendv
      Src: /src/xen/xen/common/argo.c:2281,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - cmd
    - arg3
    - arg4
    argTypes:
    - unsigned int
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2223
    functionDepth: 10
    functionLinenumber: 2223
    functionLinenumberEnd: 2286
    functionName: compat_argo_op
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - copy_from_guest
    - do_argo_op
    - argo_dprintk
    - xsm_argo_enable
    - XLAT_argo_iov
    - BUILD_BUG_ON
    - sendv
    - XEN_GUEST_HANDLE_PARAM
    - unlikely
    - guest_handle_cast
    linkageType: ''
    returnType: int
    signature: "int compat_argo_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg1,\n               XEN_GUEST_HANDLE_PARAM(void) arg2, unsigned long arg3,\n
      \              unsigned long arg4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2273
    functionDepth: 0
    functionLinenumber: 2273
    functionLinenumberEnd: 2275
    functionName: XLAT_argo_iov_HNDL_iov_hnd
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_argo_iov_HNDL_iov_hnd(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rwlock_init
      Src: /src/xen/xen/common/argo.c:2294,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/argo.c:2295,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/argo.c:2296,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/argo.c:2300,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/argo.c:2301,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/argo.c:2303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - argo
    argTypes:
    - struct argo_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2304
    functionName: argo_domain_init
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 0
    functionsReached:
    - rwlock_init
    - spin_lock_init
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void argo_domain_init(struct argo_domain *argo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xsm_argo_enable
      Src: /src/xen/xen/common/argo.c:2311,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2313,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2317,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/argo.c:2319,1
    - Dst: argo_domain_init
      Src: /src/xen/xen/common/argo.c:2323,1
    - Dst: write_lock
      Src: /src/xen/xen/common/argo.c:2325,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/argo.c:2329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2332
    functionName: argo_init
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - write_unlock
    - argo_dprintk
    - xsm_argo_enable
    - argo_domain_init
    - write_lock
    linkageType: ''
    returnType: int
    signature: int argo_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/argo.c:2337,1
    - Dst: write_lock
      Src: /src/xen/xen/common/argo.c:2339,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2341,1
    - Dst: domain_rings_remove_all
      Src: /src/xen/xen/common/argo.c:2345,1
    - Dst: partner_rings_remove
      Src: /src/xen/xen/common/argo.c:2346,1
    - Dst: wildcard_rings_pending_remove
      Src: /src/xen/xen/common/argo.c:2347,1
    - Dst: XFREE
      Src: /src/xen/xen/common/argo.c:2348,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/argo.c:2351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2334
    functionDepth: 8
    functionLinenumber: 2334
    functionLinenumberEnd: 2352
    functionName: argo_destroy
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 2
    functionsReached:
    - write_unlock
    - wildcard_rings_pending_remove
    - XFREE
    - argo_dprintk
    - BUG_ON
    - domain_rings_remove_all
    - write_lock
    - partner_rings_remove
    linkageType: ''
    returnType: void
    signature: void argo_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/argo.c:2358,1
    - Dst: argo_dprintk
      Src: /src/xen/xen/common/argo.c:2360,1
    - Dst: domain_rings_remove_all
      Src: /src/xen/xen/common/argo.c:2364,1
    - Dst: partner_rings_remove
      Src: /src/xen/xen/common/argo.c:2365,1
    - Dst: wildcard_rings_pending_remove
      Src: /src/xen/xen/common/argo.c:2366,1
    - Dst: argo_domain_init
      Src: /src/xen/xen/common/argo.c:2373,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/argo.c:2376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2355
    functionDepth: 8
    functionLinenumber: 2355
    functionLinenumberEnd: 2377
    functionName: argo_soft_reset
    functionSourceFile: /src/xen/xen/common/argo.c
    functionUses: 1
    functionsReached:
    - write_unlock
    - wildcard_rings_pending_remove
    - argo_dprintk
    - argo_domain_init
    - domain_rings_remove_all
    - write_lock
    - partner_rings_remove
    linkageType: ''
    returnType: void
    signature: void argo_soft_reset(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: COPY4
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY4(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dst
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: COPY8
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8(dst, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: get_unaligned_le16
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_unaligned_le16(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: HAVE_IP
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_IP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: HAVE_OP
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_OP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: NEED_IP
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEED_IP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: NEED_OP
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEED_OP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m_pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: TEST_LB
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_LB(m_pos)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:123,1
    - Dst: likely
      Src: /src/xen/xen/common/lzo.c:137,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:138,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:142,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:144,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:147,1
    - Dst: likely
      Src: /src/xen/xen/common/lzo.c:156,1
    - Dst: HAVE_IP
      Src: /src/xen/xen/common/lzo.c:156,1
    - Dst: HAVE_OP
      Src: /src/xen/xen/common/lzo.c:156,1
    - Dst: COPY8
      Src: /src/xen/xen/common/lzo.c:160,1
    - Dst: COPY8
      Src: /src/xen/xen/common/lzo.c:163,1
    - Dst: NEED_OP
      Src: /src/xen/xen/common/lzo.c:172,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:173,1
    - Dst: TEST_LB
      Src: /src/xen/xen/common/lzo.c:185,1
    - Dst: NEED_OP
      Src: /src/xen/xen/common/lzo.c:186,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:206,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:210,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:212,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:215,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:220,1
    - Dst: get_unaligned_le16
      Src: /src/xen/xen/common/lzo.c:223,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:231,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:235,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:237,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lzo.c:240,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:245,1
    - Dst: get_unaligned_le16
      Src: /src/xen/xen/common/lzo.c:247,1
    - Dst: TEST_LB
      Src: /src/xen/xen/common/lzo.c:255,1
    - Dst: likely
      Src: /src/xen/xen/common/lzo.c:259,1
    - Dst: HAVE_OP
      Src: /src/xen/xen/common/lzo.c:259,1
    - Dst: COPY8
      Src: /src/xen/xen/common/lzo.c:261,1
    - Dst: COPY8
      Src: /src/xen/xen/common/lzo.c:264,1
    - Dst: HAVE_IP
      Src: /src/xen/xen/common/lzo.c:269,1
    - Dst: COPY4
      Src: /src/xen/xen/common/lzo.c:271,1
    - Dst: NEED_OP
      Src: /src/xen/xen/common/lzo.c:277,1
    - Dst: NEED_OP
      Src: /src/xen/xen/common/lzo.c:286,1
    - Dst: likely
      Src: /src/xen/xen/common/lzo.c:299,1
    - Dst: HAVE_IP
      Src: /src/xen/xen/common/lzo.c:299,1
    - Dst: HAVE_OP
      Src: /src/xen/xen/common/lzo.c:299,1
    - Dst: COPY4
      Src: /src/xen/xen/common/lzo.c:300,1
    - Dst: NEED_IP
      Src: /src/xen/xen/common/lzo.c:306,1
    - Dst: NEED_OP
      Src: /src/xen/xen/common/lzo.c:307,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 195
    argCount: 4
    argNames:
    - in
    - in_len
    - out
    - out_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 332
    functionName: lzo1x_decompress_safe
    functionSourceFile: /src/xen/xen/common/lzo.c
    functionUses: 2
    functionsReached:
    - NEED_IP
    - COPY8
    - HAVE_OP
    - likely
    - unlikely
    - NEED_OP
    - HAVE_IP
    - TEST_LB
    - COPY4
    - get_unaligned_le16
    linkageType: ''
    returnType: int
    signature: "int lzo1x_decompress_safe(const unsigned char *in, size_t in_len,\n
      \                                unsigned char *out, size_t *out_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __trace_hypercall
      Src: /src/xen/xen/common/multicall.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - call
    argTypes:
    - multicall_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: __trace_multicall_call
    functionSourceFile: /src/xen/xen/common/multicall.c
    functionUses: 0
    functionsReached:
    - __trace_hypercall
    linkageType: ''
    returnType: void
    signature: void __trace_multicall_call(multicall_entry_t *call)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __trace_multicall_call
      Src: /src/xen/xen/common/multicall.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - call
    argTypes:
    - multicall_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: trace_multicall_call
    functionSourceFile: /src/xen/xen/common/multicall.c
    functionUses: 1
    functionsReached:
    - __trace_multicall_call
    linkageType: ''
    returnType: void
    signature: void trace_multicall_call(multicall_entry_t *call)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/multicall.c:37,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:45,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/common/multicall.c:45,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/multicall.c:47,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:51,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/multicall.c:51,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/multicall.c:56,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:59,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/multicall.c:59,1
    - Dst: trace_multicall_call
      Src: /src/xen/xen/common/multicall.c:65,1
    - Dst: arch_do_multicall_call
      Src: /src/xen/xen/common/multicall.c:67,1
    - Dst: ASSERT_NOT_IN_ATOMIC
      Src: /src/xen/xen/common/multicall.c:74,1
    - Dst: memset
      Src: /src/xen/xen/common/multicall.c:83,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/multicall.c:84,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:88,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/multicall.c:90,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:94,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/multicall.c:94,1
    - Dst: xlat_multicall_entry
      Src: /src/xen/xen/common/multicall.c:100,1
    - Dst: likely
      Src: /src/xen/xen/common/multicall.c:103,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/multicall.c:103,1
    - Dst: hypercall_cancel_continuation
      Src: /src/xen/xen/common/multicall.c:106,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/multicall.c:110,1
    - Dst: unlikely
      Src: /src/xen/xen/common/multicall.c:113,1
    - Dst: perfc_add
      Src: /src/xen/xen/common/multicall.c:116,1
    - Dst: perfc_add
      Src: /src/xen/xen/common/multicall.c:121,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/multicall.c:123,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - nr_calls
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 125
    functionName: do_multicall
    functionSourceFile: /src/xen/xen/common/multicall.c
    functionUses: 0
    functionsReached:
    - guest_handle_add_offset
    - likely
    - arch_do_multicall_call
    - perfc_add
    - hypercall_create_continuation
    - XEN_GUEST_HANDLE_PARAM
    - __test_and_set_bit
    - gdprintk
    - hypercall_preempt_check
    - memset
    - hypercall_cancel_continuation
    - __copy_field_to_guest
    - unlikely
    - __copy_from_guest
    - trace_multicall_call
    - __copy_to_guest
    - ASSERT_NOT_IN_ATOMIC
    - guest_handle_okay
    - xlat_multicall_entry
    linkageType: ''
    returnType: ret_t
    signature: "ret_t do_multicall(\n    XEN_GUEST_HANDLE_PARAM(multicall_entry_t)
      call_list, unsigned long nr_calls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: symbols_address
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: symbols_address(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: symbols_address
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: symbols_address(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - 'off'
    - result
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: symbols_expand_symbol
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int symbols_expand_symbol(unsigned int off, char *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pos
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 100
    functionName: get_symbol_offset
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_symbol_offset(unsigned long pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_text_region
      Src: /src/xen/xen/common/symbols.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: is_active_kernel_text
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 5
    functionsReached:
    - find_text_region
    linkageType: ''
    returnType: bool
    signature: bool is_active_kernel_text(unsigned long addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: find_text_region
      Src: /src/xen/xen/common/symbols.c:119,1
    - Dst: struct virtual_region*::symbols_lookup
      Src: /src/xen/xen/common/symbols.c:124,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:132,1
    - Dst: get_symbol_offset
      Src: /src/xen/xen/common/symbols.c:137,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/symbols.c:138,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:139,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:145,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:145,1
    - Dst: symbols_expand_symbol
      Src: /src/xen/xen/common/symbols.c:149,1
    - Dst: get_symbol_offset
      Src: /src/xen/xen/common/symbols.c:149,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:154,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:154,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:155,1
    - Dst: is_kernel_inittext
      Src: /src/xen/xen/common/symbols.c:163,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:166,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - addr
    - symbolsize
    - offset
    - namebuf
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 169
    functionName: symbols_lookup
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 2
    functionsReached:
    - get_symbol_offset
    - is_kernel_inittext
    - ASSERT
    - struct virtual_region*::symbols_lookup
    - find_text_region
    - symbols_expand_symbol
    - symbols_address
    linkageType: ''
    returnType: char
    signature: "char *symbols_lookup(unsigned long addr,\n                           unsigned
      long *symbolsize,\n                           unsigned long *offset,\n                           char
      *namebuf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - 'off'
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 182
    functionName: symbols_get_symbol_type
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char symbols_get_symbol_type(unsigned int off)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/symbols.c:205,1
    - Dst: get_symbol_offset
      Src: /src/xen/xen/common/symbols.c:211,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/symbols.c:223,1
    - Dst: symbols_get_symbol_type
      Src: /src/xen/xen/common/symbols.c:228,1
    - Dst: symbols_expand_symbol
      Src: /src/xen/xen/common/symbols.c:229,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:230,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/symbols.c:243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - symnum
    - type
    - address
    - name
    argTypes:
    - uint32_t*
    - char*
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 246
    functionName: xensyms_read
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 1
    functionsReached:
    - get_symbol_offset
    - spin_unlock
    - symbols_get_symbol_type
    - spin_lock
    - symbols_expand_symbol
    - symbols_address
    linkageType: ''
    returnType: int
    signature: "int xensyms_read(uint32_t *symnum, char *type,\n                 unsigned
      long *address, char *name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: symbols_expand_symbol
      Src: /src/xen/xen/common/symbols.c:273,1
    - Dst: strcmp
      Src: /src/xen/xen/common/symbols.c:275,1
    - Dst: symbols_address
      Src: /src/xen/xen/common/symbols.c:281,1
    - Dst: xensyms_read
      Src: /src/xen/xen/common/symbols.c:285,1
    - Dst: strcmp
      Src: /src/xen/xen/common/symbols.c:289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - symname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 296
    functionName: symbols_lookup_by_name
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached:
    - symbols_expand_symbol
    - strcmp
    - xensyms_read
    - symbols_address
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long symbols_lookup_by_name(const char *symname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: symbols_lookup
      Src: /src/xen/xen/common/symbols.c:306,1
    - Dst: panic
      Src: /src/xen/xen/common/symbols.c:308,1
    - Dst: panic
      Src: /src/xen/xen/common/symbols.c:310,1
    - Dst: strchr
      Src: /src/xen/xen/common/symbols.c:313,1
    - Dst: strcmp
      Src: /src/xen/xen/common/symbols.c:315,1
    - Dst: panic
      Src: /src/xen/xen/common/symbols.c:316,1
    - Dst: symbols_lookup_by_name
      Src: /src/xen/xen/common/symbols.c:318,1
    - Dst: panic
      Src: /src/xen/xen/common/symbols.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - addr
    - expected
    argTypes:
    - unsigned long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 322
    functionName: test_lookup
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached:
    - panic
    - strchr
    - symbols_lookup
    - symbols_lookup_by_name
    - strcmp
    linkageType: ''
    returnType: void
    signature: void test_lookup(unsigned long addr, const char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_lookup
      Src: /src/xen/xen/common/symbols.c:327,1
    - Dst: test_lookup
      Src: /src/xen/xen/common/symbols.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: test_symbols
    functionSourceFile: /src/xen/xen/common/symbols.c
    functionUses: 0
    functionsReached:
    - test_lookup
    linkageType: ''
    returnType: void
    signature: void test_symbols(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/core_parking.c:46,1
    - Dst: strcmp
      Src: /src/xen/xen/common/core_parking.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: setup_core_parking_option
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int setup_core_parking_option(const char *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/core_parking.c:68,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/core_parking.c:69,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/core_parking.c:71,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/core_parking.c:76,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/core_parking.c:76,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/core_parking.c:80,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/core_parking.c:80,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/core_parking.c:83,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/core_parking.c:86,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/core_parking.c:88,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/core_parking.c:88,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/core_parking.c:92,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/core_parking.c:92,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/core_parking.c:95,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/core_parking.c:98,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/core_parking.c:103,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/core_parking.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - event
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 113
    functionName: core_parking_performance
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - spin_unlock
    - spin_lock
    - cpumask_first
    - per_cpu
    - cpumask_copy
    - cpumask_weight
    - cpumask_of
    - __cpumask_set_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int core_parking_performance(unsigned int event)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/core_parking.c:126,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/core_parking.c:127,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/core_parking.c:129,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/core_parking.c:134,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/core_parking.c:134,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/core_parking.c:138,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/core_parking.c:138,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/core_parking.c:141,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/core_parking.c:144,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/core_parking.c:146,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/core_parking.c:146,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/core_parking.c:150,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/core_parking.c:150,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/core_parking.c:153,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/core_parking.c:156,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/core_parking.c:161,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/core_parking.c:163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - event
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 171
    functionName: core_parking_power
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - spin_unlock
    - spin_lock
    - cpumask_first
    - per_cpu
    - cpumask_copy
    - cpumask_weight
    - cpumask_of
    - __cpumask_set_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int core_parking_power(unsigned int event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: alternative_call
      Src: /src/xen/xen/common/core_parking.c:184,1
    - Dst: cpu_down
      Src: /src/xen/xen/common/core_parking.c:186,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/core_parking.c:190,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/core_parking.c:191,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/core_parking.c:191,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/core_parking.c:193,1
    - Dst: alternative_call
      Src: /src/xen/xen/common/core_parking.c:198,1
    - Dst: cpu_up
      Src: /src/xen/xen/common/core_parking.c:200,1
    - Dst: core_parking_remove
      Src: /src/xen/xen/common/core_parking.c:204,1
    - Dst: cpu_down
      Src: /src/xen/xen/common/core_parking.c:206,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 215
    functionName: core_parking_helper
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached:
    - cpu_up
    - spin_unlock
    - ARRAY_SIZE
    - core_parking_remove
    - BUG_ON
    - alternative_call
    - spin_lock
    - cpu_down
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check core_parking_helper(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/core_parking.c:222,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/core_parking.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: core_parking_remove
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 3
    functionsReached:
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: bool
    signature: bool core_parking_remove(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: get_cur_idle_nums
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_cur_idle_nums(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - policy
    argTypes:
    - struct cp_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 262
    functionName: register_core_parking_policy
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int register_core_parking_policy(const struct cp_policy *policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_core_parking_policy
      Src: /src/xen/xen/common/core_parking.c:269,1
    - Dst: register_core_parking_policy
      Src: /src/xen/xen/common/core_parking.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: core_parking_init
    functionSourceFile: /src/xen/xen/common/core_parking.c
    functionUses: 0
    functionsReached:
    - register_core_parking_policy
    linkageType: ''
    returnType: int
    signature: int core_parking_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - bitmap
    - bits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: __bitmap_empty
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: int
    signature: int __bitmap_empty(const unsigned long *bitmap, unsigned int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - bitmap
    - bits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: __bitmap_full
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: int
    signature: int __bitmap_full(const unsigned long *bitmap, unsigned int bits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: __bitmap_equal
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: int
    signature: "int __bitmap_equal(const unsigned long *bitmap1,\n                   const
      unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - src
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: __bitmap_complement
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: void
    signature: void __bitmap_complement(unsigned long *dst, const unsigned long *src,
      unsigned int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/bitmap.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: __bitmap_and
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void __bitmap_and(unsigned long *dst, const unsigned long *bitmap1,\n
      \                 const unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/bitmap.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: __bitmap_or
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void __bitmap_or(unsigned long *dst, const unsigned long *bitmap1,\n
      \                const unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/bitmap.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: __bitmap_xor
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void __bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,\n
      \                 const unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/bitmap.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: __bitmap_andnot
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void __bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,\n
      \                    const unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: __bitmap_intersects
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: int
    signature: "int __bitmap_intersects(const unsigned long *bitmap1,\n                        const
      unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - bitmap1
    - bitmap2
    - bits
    argTypes:
    - unsigned long*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: __bitmap_subset
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: int
    signature: "int __bitmap_subset(const unsigned long *bitmap1,\n                    const
      unsigned long *bitmap2, unsigned int bits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hweightl
      Src: /src/xen/xen/common/bitmap.c:178,1
    - Dst: hweightl
      Src: /src/xen/xen/common/bitmap.c:181,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bitmap
    - bits
    argTypes:
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: __bitmap_weight
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_LAST_WORD_MASK
    - hweightl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __bitmap_weight(const unsigned long *bitmap, unsigned
      int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/common/bitmap.c:189,1
    - Dst: BITMAP_FIRST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:192,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - map
    - start
    - len
    argTypes:
    - unsigned long*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 205
    functionName: __bitmap_set
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_FIRST_WORD_MASK
    - BIT_WORD
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: void
    signature: void __bitmap_set(unsigned long *map, unsigned int start, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/common/bitmap.c:209,1
    - Dst: BITMAP_FIRST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:212,1
    - Dst: BITMAP_LAST_WORD_MASK
      Src: /src/xen/xen/common/bitmap.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - map
    - start
    - len
    argTypes:
    - unsigned long*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: __bitmap_clear
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - BITMAP_FIRST_WORD_MASK
    - BIT_WORD
    - BITMAP_LAST_WORD_MASK
    linkageType: ''
    returnType: void
    signature: void __bitmap_clear(unsigned long *map, unsigned int start, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - bitmap
    - bits
    - order
    argTypes:
    - unsigned long*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 266
    functionName: bitmap_find_free_region
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bitmap_find_free_region(unsigned long *bitmap, int bits, int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitmap
    - pos
    - order
    argTypes:
    - unsigned long*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: bitmap_release_region
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bitmap_release_region(unsigned long *bitmap, int pos, int order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/bitmap.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bitmap
    - pos
    - order
    argTypes:
    - unsigned long*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: bitmap_allocate_region
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int bitmap_allocate_region(unsigned long *bitmap, int pos, int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - lp
    - nbits
    argTypes:
    - uint8_t*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: bitmap_long_to_byte
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bitmap_long_to_byte(uint8_t *bp, const unsigned long *lp,\n\t\t\t\tunsigned
      int nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - lp
    - bp
    - nbits
    argTypes:
    - unsigned long*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: bitmap_byte_to_long
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,\n\t\t\t\tunsigned
      int nbits)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/bitmap.c:356,1
    - Dst: memcpy
      Src: /src/xen/xen/common/bitmap.c:357,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/bitmap.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - lp
    - bp
    - nbits
    argTypes:
    - unsigned long*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: bitmap_byte_to_long
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DIV_ROUND_UP
    - BITS_TO_LONGS
    linkageType: ''
    returnType: void
    signature: "void bitmap_byte_to_long(unsigned long *lp, const uint8_t *bp,\n\t\t\t\tunsigned
      int nbits)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/bitmap.c:368,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/bitmap.c:375,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/bitmap.c:377,1
    - Dst: bitmap_long_to_byte
      Src: /src/xen/xen/common/bitmap.c:381,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/bitmap.c:388,1
    - Dst: min
      Src: /src/xen/xen/common/bitmap.c:389,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/bitmap.c:392,1
    - Dst: xfree
      Src: /src/xen/xen/common/bitmap.c:406,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/bitmap.c:409,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/bitmap.c:413,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - xenctl_bitmap
    - bitmap
    - nbits
    argTypes:
    - struct xenctl_bitmap*
    - unsigned long*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 417
    functionName: bitmap_to_xenctl_bitmap
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - DIV_ROUND_UP
    - IS_ENABLED
    - copy_to_guest_offset
    - min
    - copy_to_guest
    - xfree
    - bitmap_long_to_byte
    linkageType: ''
    returnType: int
    signature: "int bitmap_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_bitmap,\n
      \                           const unsigned long *bitmap, unsigned int nbits)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/bitmap.c:425,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/bitmap.c:426,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/bitmap.c:431,1
    - Dst: min
      Src: /src/xen/xen/common/bitmap.c:432,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/bitmap.c:436,1
    - Dst: bitmap_byte_to_long
      Src: /src/xen/xen/common/bitmap.c:443,1
    - Dst: xfree
      Src: /src/xen/xen/common/bitmap.c:445,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - bitmap
    - xenctl_bitmap
    - nbits
    argTypes:
    - unsigned long*
    - struct xenctl_bitmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 448
    functionName: xenctl_bitmap_to_bitmap
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - DIV_ROUND_UP
    - xzalloc_array
    - min
    - bitmap_byte_to_long
    - xfree
    linkageType: ''
    returnType: int
    signature: "int xenctl_bitmap_to_bitmap(unsigned long *bitmap,\n                            const
      struct xenctl_bitmap *xenctl_bitmap,\n                            unsigned int
      nbits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitmap_to_xenctl_bitmap
      Src: /src/xen/xen/common/bitmap.c:453,1
    - Dst: cpumask_bits
      Src: /src/xen/xen/common/bitmap.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - xenctl_cpumap
    - cpumask
    argTypes:
    - struct xenctl_bitmap*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: cpumask_to_xenctl_bitmap
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 1
    functionsReached:
    - bitmap_to_xenctl_bitmap
    - cpumask_bits
    linkageType: ''
    returnType: int
    signature: "int cpumask_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_cpumap,\n
      \                            const cpumask_t *cpumask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/bitmap.c:462,1
    - Dst: xenctl_bitmap_to_bitmap
      Src: /src/xen/xen/common/bitmap.c:464,1
    - Dst: cpumask_bits
      Src: /src/xen/xen/common/bitmap.c:464,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/bitmap.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cpumask
    - xenctl_cpumap
    argTypes:
    - cpumask_var_t*
    - struct xenctl_bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 474
    functionName: xenctl_bitmap_to_cpumask
    functionSourceFile: /src/xen/xen/common/bitmap.c
    functionUses: 2
    functionsReached:
    - alloc_cpumask_var
    - free_cpumask_var
    - cpumask_bits
    - xenctl_bitmap_to_bitmap
    linkageType: ''
    returnType: int
    signature: "int xenctl_bitmap_to_cpumask(cpumask_var_t *cpumask,\n                             const
      struct xenctl_bitmap *xenctl_cpumap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: read_int
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long long __init
    signature: long long __init read_int(unsigned char *ptr, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: ENDIAN_CONVERT
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENDIAN_CONVERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - len
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: nofill
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nofill(void *buffer, unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct rc*::fill
      Src: /src/xen/xen/common/unlzma.c:87,1
    - Dst: struct rc*::error
      Src: /src/xen/xen/common/unlzma.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: rc_read
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - struct rc*::fill
    - struct rc*::error
    linkageType: ''
    returnType: void
    signature: void rc_read(struct rc *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - rc
    - buffer
    - buffer_size
    argTypes:
    - struct rc*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: rc_init
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rc_init(struct rc *rc,\n\t\t\t\t  int (*fill)(void*, unsigned
      int),\n\t\t\t\t  unsigned char *buffer, int buffer_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_read
      Src: /src/xen/xen/common/unlzma.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: rc_init_code
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_read
    linkageType: ''
    returnType: void
    signature: void rc_init_code(struct rc *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_read
      Src: /src/xen/xen/common/unlzma.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: rc_do_normalize
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_read
    linkageType: ''
    returnType: void
    signature: void rc_do_normalize(struct rc *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_do_normalize
      Src: /src/xen/xen/common/unlzma.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: rc_normalize
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_do_normalize
    linkageType: ''
    returnType: void
    signature: void rc_normalize(struct rc *rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc_normalize
      Src: /src/xen/xen/common/unlzma.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rc
    - p
    argTypes:
    - struct rc*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: rc_is_bit_0_helper
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_normalize
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rc_is_bit_0_helper(struct rc *rc, uint16_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc_is_bit_0_helper
      Src: /src/xen/xen/common/unlzma.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rc
    - p
    argTypes:
    - struct rc*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: rc_is_bit_0
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_is_bit_0_helper
    linkageType: ''
    returnType: int
    signature: int rc_is_bit_0(struct rc *rc, uint16_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rc
    - p
    argTypes:
    - struct rc*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: rc_update_bit_0
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rc_update_bit_0(struct rc *rc, uint16_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - rc
    - p
    argTypes:
    - struct rc*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: rc_update_bit_1
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rc_update_bit_1(struct rc *rc, uint16_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:170,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:171,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - rc
    - p
    - symbol
    argTypes:
    - struct rc*
    - uint16_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: rc_get_bit
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_update_bit_0
    - rc_is_bit_0
    - rc_update_bit_1
    linkageType: ''
    returnType: int
    signature: int rc_get_bit(struct rc *rc, uint16_t *p, int *symbol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_normalize
      Src: /src/xen/xen/common/unlzma.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: rc_direct_bit
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_normalize
    linkageType: ''
    returnType: int
    signature: int rc_direct_bit(struct rc *rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc_get_bit
      Src: /src/xen/xen/common/unlzma.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rc
    - p
    - num_levels
    - symbol
    argTypes:
    - struct rc*
    - uint16_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: rc_bit_tree_decode
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - rc_get_bit
    linkageType: ''
    returnType: void
    signature: void rc_bit_tree_decode(struct rc *rc, uint16_t *p, int num_levels,
      int *symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wr
    argTypes:
    - struct writer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: get_pos
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_pos(struct writer *wr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - wr
    - offs
    argTypes:
    - struct writer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: peek_old_byte
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t peek_old_byte(struct writer *wr,\n\t\t\t\t\t   uint32_t offs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct writer*::flush
      Src: /src/xen/xen/common/unlzma.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - wr
    - byte
    argTypes:
    - struct writer*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: write_byte
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 7
    functionsReached:
    - struct writer*::flush
    linkageType: ''
    returnType: int
    signature: int write_byte(struct writer *wr, uint8_t byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_byte
      Src: /src/xen/xen/common/unlzma.c:326,1
    - Dst: peek_old_byte
      Src: /src/xen/xen/common/unlzma.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wr
    - offs
    argTypes:
    - struct writer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: copy_byte
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - write_byte
    - peek_old_byte
    linkageType: ''
    returnType: int
    signature: int copy_byte(struct writer *wr, uint32_t offs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_byte
      Src: /src/xen/xen/common/unlzma.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - wr
    - rep0
    - len
    argTypes:
    - struct writer*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 339
    functionName: copy_bytes
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - copy_byte
    linkageType: ''
    returnType: int
    signature: "int copy_bytes(struct writer *wr,\n\t\t\t\t    uint32_t rep0, int
      len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:346,1
    - Dst: get_pos
      Src: /src/xen/xen/common/unlzma.c:349,1
    - Dst: peek_old_byte
      Src: /src/xen/xen/common/unlzma.c:354,1
    - Dst: rc_get_bit
      Src: /src/xen/xen/common/unlzma.c:362,1
    - Dst: rc_get_bit
      Src: /src/xen/xen/common/unlzma.c:373,1
    - Dst: write_byte
      Src: /src/xen/xen/common/unlzma.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 8
    argNames:
    - wr
    - rc
    - cst
    - p
    - pos_state
    - prob
    - lc
    - literal_pos_mask
    argTypes:
    - struct writer*
    - struct rc*
    - struct cstate*
    - uint16_t*
    - int
    - uint16_t*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 383
    functionName: process_bit0
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - get_pos
    - write_byte
    - rc_update_bit_0
    - peek_old_byte
    - rc_get_bit
    linkageType: ''
    returnType: int
    signature: "int process_bit0(struct writer *wr, struct rc *rc,\n\t\t\t\t      struct
      cstate *cst, uint16_t *p,\n\t\t\t\t      int pos_state, uint16_t *prob,\n\t\t\t\t
      \     int lc, uint32_t literal_pos_mask)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:393,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:395,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:396,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:403,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:405,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:406,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:411,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:412,1
    - Dst: copy_byte
      Src: /src/xen/xen/common/unlzma.c:416,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:418,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:423,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:425,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:426,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:429,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:431,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:432,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:435,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:449,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:450,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:457,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:459,1
    - Dst: rc_update_bit_0
      Src: /src/xen/xen/common/unlzma.c:460,1
    - Dst: rc_update_bit_1
      Src: /src/xen/xen/common/unlzma.c:467,1
    - Dst: rc_bit_tree_decode
      Src: /src/xen/xen/common/unlzma.c:475,1
    - Dst: rc_bit_tree_decode
      Src: /src/xen/xen/common/unlzma.c:488,1
    - Dst: rc_direct_bit
      Src: /src/xen/xen/common/unlzma.c:503,1
    - Dst: rc_get_bit
      Src: /src/xen/xen/common/unlzma.c:511,1
    - Dst: get_pos
      Src: /src/xen/xen/common/unlzma.c:520,1
    - Dst: copy_bytes
      Src: /src/xen/xen/common/unlzma.c:526,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 105
    argCount: 6
    argNames:
    - wr
    - rc
    - cst
    - p
    - pos_state
    - prob
    argTypes:
    - struct writer*
    - struct rc*
    - struct cstate*
    - uint16_t*
    - int
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 527
    functionName: process_bit1
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - get_pos
    - rc_direct_bit
    - rc_update_bit_1
    - rc_update_bit_0
    - rc_get_bit
    - copy_bytes
    - copy_byte
    - rc_is_bit_0
    - rc_bit_tree_decode
    linkageType: ''
    returnType: int
    signature: "int process_bit1(struct writer *wr, struct rc *rc,\n\t\t\t\t      struct
      cstate *cst, uint16_t *p,\n\t\t\t\t      int pos_state, uint16_t *prob)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/unlzma.c:555,1
    - Dst: error
      Src: /src/xen/xen/common/unlzma.c:557,1
    - Dst: rc_init
      Src: /src/xen/xen/common/unlzma.c:570,1
    - Dst: rc_read
      Src: /src/xen/xen/common/unlzma.c:574,1
    - Dst: error
      Src: /src/xen/xen/common/unlzma.c:579,1
    - Dst: ENDIAN_CONVERT
      Src: /src/xen/xen/common/unlzma.c:598,1
    - Dst: ENDIAN_CONVERT
      Src: /src/xen/xen/common/unlzma.c:599,1
    - Dst: MIN
      Src: /src/xen/xen/common/unlzma.c:607,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unlzma.c:608,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unlzma.c:614,1
    - Dst: rc_init_code
      Src: /src/xen/xen/common/unlzma.c:621,1
    - Dst: get_pos
      Src: /src/xen/xen/common/unlzma.c:623,1
    - Dst: get_pos
      Src: /src/xen/xen/common/unlzma.c:624,1
    - Dst: rc_is_bit_0
      Src: /src/xen/xen/common/unlzma.c:627,1
    - Dst: process_bit0
      Src: /src/xen/xen/common/unlzma.c:628,1
    - Dst: error
      Src: /src/xen/xen/common/unlzma.c:630,1
    - Dst: process_bit1
      Src: /src/xen/xen/common/unlzma.c:634,1
    - Dst: error
      Src: /src/xen/xen/common/unlzma.c:635,1
    - Dst: struct writer::flush
      Src: /src/xen/xen/common/unlzma.c:647,1
    - Dst: large_free
      Src: /src/xen/xen/common/unlzma.c:650,1
    - Dst: large_free
      Src: /src/xen/xen/common/unlzma.c:653,1
    - Dst: free
      Src: /src/xen/xen/common/unlzma.c:656,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 4
    argNames:
    - buf
    - in_len
    - output
    - posp
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 659
    functionName: unlzma
    functionSourceFile: /src/xen/xen/common/unlzma.c
    functionUses: 0
    functionsReached:
    - get_pos
    - rc_init_code
    - large_malloc
    - process_bit0
    - process_bit1
    - struct writer::flush
    - error
    - malloc
    - large_free
    - rc_read
    - free
    - ENDIAN_CONVERT
    - rc_init
    - MIN
    - rc_is_bit_0
    linkageType: ''
    returnType: int
    signature: "int unlzma(unsigned char *buf, unsigned int in_len,\n\t\t  int(*fill)(void*,
      unsigned int),\n\t\t  int(*flush)(void*, unsigned int),\n\t\t  unsigned char
      *output, unsigned int *posp,\n\t\t  void(*error)(const char *x))"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: find_text_region
      Src: /src/xen/xen/common/bug.c:22,1
    - Dst: bug_loc
      Src: /src/xen/xen/common/bug.c:33,1
    - Dst: bug_ptr
      Src: /src/xen/xen/common/bug.c:47,1
    - Dst: fn
      Src: /src/xen/xen/common/bug.c:49,1
    - Dst: bug_ptr
      Src: /src/xen/xen/common/bug.c:55,1
    - Dst: is_kernel
      Src: /src/xen/xen/common/bug.c:56,1
    - Dst: is_patch
      Src: /src/xen/xen/common/bug.c:56,1
    - Dst: strlen
      Src: /src/xen/xen/common/bug.c:58,1
    - Dst: bug_line
      Src: /src/xen/xen/common/bug.c:64,1
    - Dst: printk
      Src: /src/xen/xen/common/bug.c:69,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/bug.c:70,1
    - Dst: printk
      Src: /src/xen/xen/common/bug.c:75,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/bug.c:76,1
    - Dst: panic
      Src: /src/xen/xen/common/bug.c:77,1
    - Dst: bug_msg
      Src: /src/xen/xen/common/bug.c:81,1
    - Dst: is_kernel
      Src: /src/xen/xen/common/bug.c:82,1
    - Dst: is_patch
      Src: /src/xen/xen/common/bug.c:82,1
    - Dst: printk
      Src: /src/xen/xen/common/bug.c:85,1
    - Dst: show_execution_state
      Src: /src/xen/xen/common/bug.c:87,1
    - Dst: panic
      Src: /src/xen/xen/common/bug.c:88,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - regs
    - pc
    argTypes:
    - struct cpu_user_regs*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 93
    functionName: do_bug_frame
    functionSourceFile: /src/xen/xen/common/bug.c
    functionUses: 4
    functionsReached:
    - is_patch
    - bug_line
    - show_execution_state
    - bug_loc
    - bug_ptr
    - panic
    - bug_msg
    - fn
    - strlen
    - is_kernel
    - find_text_region
    - printk
    linkageType: ''
    returnType: int
    signature: int do_bug_frame(const struct cpu_user_regs *regs, unsigned long pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: p2m_pod_offline_or_broken_hit
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_pod_offline_or_broken_hit(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: p2m_pod_offline_or_broken_replace
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: p2m_pod_offline_or_broken_replace(pg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/common/page_alloc.c:219,1
    - Dst: strcmp
      Src: /src/xen/xen/common/page_alloc.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 238
    functionName: parse_bootscrub_param
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_bootscrub_param(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:309,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:310,1
    - Dst: memmove
      Src: /src/xen/xen/common/page_alloc.c:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 316
    functionName: bootmem_region_add
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - memmove
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void bootmem_region_add(unsigned long s, unsigned long e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:331,1
    - Dst: bootmem_region_add
      Src: /src/xen/xen/common/page_alloc.c:341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: bootmem_region_zap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - min
    - bootmem_region_add
    linkageType: ''
    returnType: void
    signature: void bootmem_region_zap(unsigned long s, unsigned long e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:354,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:357,1
    - Dst: round_pgup
      Src: /src/xen/xen/common/page_alloc.c:359,1
    - Dst: round_pgdown
      Src: /src/xen/xen/common/page_alloc.c:360,1
    - Dst: mfn_min
      Src: /src/xen/xen/common/page_alloc.c:364,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:364,1
    - Dst: bootmem_region_add
      Src: /src/xen/xen/common/page_alloc.c:366,1
    - Dst: get_platform_badpages
      Src: /src/xen/xen/common/page_alloc.c:375,1
    - Dst: bootmem_region_zap
      Src: /src/xen/xen/common/page_alloc.c:380,1
    - Dst: pv_shim_reserved_pages
      Src: /src/xen/xen/common/page_alloc.c:388,1
    - Dst: bootmem_region_zap
      Src: /src/xen/xen/common/page_alloc.c:393,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/page_alloc.c:405,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/page_alloc.c:411,1
    - Dst: bootmem_region_zap
      Src: /src/xen/xen/common/page_alloc.c:421,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 423
    functionName: init_boot_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - pv_shim_reserved_pages
    - mfn_min
    - BUILD_BUG_ON
    - round_pgdown
    - maddr_to_mfn
    - get_platform_badpages
    - round_pgup
    - bootmem_region_zap
    - bootmem_region_add
    - simple_strtoul
    linkageType: ''
    returnType: void
    signature: void init_boot_pages(paddr_t ps, paddr_t pe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:430,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/page_alloc.c:448,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/page_alloc.c:451,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:454,1
    - Dst: bootmem_region_add
      Src: /src/xen/xen/common/page_alloc.c:460,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:461,1
    - Dst: BUG
      Src: /src/xen/xen/common/page_alloc.c:464,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - nr_pfns
    - pfn_align
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 465
    functionName: alloc_boot_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 10
    functionsReached:
    - BUG
    - _mfn
    - BUG_ON
    - PFN_DOWN
    - bootmem_region_add
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t alloc_boot_pages(unsigned long nr_pfns, unsigned long pfn_align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    functionName: bits_to_zone
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bits_to_zone(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: page_to_zone
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: page_to_zone(pg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - node
    - ','
    - zone
    - ','
    - order
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: heap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: heap(node, zone, order)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - zone_lo
    - zone_hi
    - node
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 511
    functionName: avail_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long avail_heap_pages(\n    unsigned int zone_lo, unsigned
      int zone_hi, unsigned int node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_online_node(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:515,1
    - Dst: rspin_is_locked
      Src: /src/xen/xen/common/page_alloc.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - pages
    argTypes:
    - struct domain*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 519
    functionName: domain_adjust_tot_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 4
    functionsReached:
    - ASSERT
    - rspin_is_locked
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long domain_adjust_tot_pages(struct domain *d, long pages)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/page_alloc.c:532,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:533,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:552,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:567,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:577,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - d
    - pages
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 580
    functionName: domain_set_outstanding_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - nrspin_unlock
    - domain_tot_pages
    - spin_lock
    - nrspin_lock
    linkageType: ''
    returnType: int
    signature: int domain_set_outstanding_pages(struct domain *d, unsigned long pages)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:585,1
    - Dst: avail_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:587,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - free_pages
    - outstanding_pages
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: get_outstanding_claims
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - avail_heap_pages
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void get_outstanding_claims(uint64_t *free_pages, uint64_t *outstanding_pages)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arch_mfns_in_directmap
      Src: /src/xen/xen/common/page_alloc.c:618,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/page_alloc.c:622,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/page_alloc.c:623,1
    - Dst: arch_mfns_in_directmap
      Src: /src/xen/xen/common/page_alloc.c:627,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/page_alloc.c:631,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/page_alloc.c:632,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/page_alloc.c:636,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/page_alloc.c:637,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/page_alloc.c:639,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/page_alloc.c:639,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:640,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/page_alloc.c:647,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/page_alloc.c:648,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:649,1
    - Dst: memset
      Src: /src/xen/xen/common/page_alloc.c:653,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/page_alloc.c:657,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 4
    argNames:
    - node
    - mfn
    - nr
    - use_tail
    argTypes:
    - int
    - unsigned long
    - unsigned long
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 660
    functionName: init_node_heap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - xmalloc_array
    - xmalloc
    - get_order_from_pages
    - heap
    - BUG_ON
    - alloc_xenheap_pages
    - INIT_PAGE_LIST_HEAD
    - memset
    - mfn_to_virt
    - arch_mfns_in_directmap
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long init_node_heap(int node, unsigned long mfn,\n                                    unsigned
      long nr, bool *use_tail)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:701,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:705,1
    - Dst: max
      Src: /src/xen/xen/common/page_alloc.c:714,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/page_alloc.c:720,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 730
    functionName: setup_low_mem_virq
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - min
    - max
    - printk
    - get_order_from_pages
    linkageType: ''
    returnType: void
    signature: void setup_low_mem_virq(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:736,1
    - Dst: send_global_virq
      Src: /src/xen/xen/common/page_alloc.c:738,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 763
    functionName: check_low_mem_virq
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - send_global_virq
    - unlikely
    linkageType: ''
    returnType: void
    signature: void check_low_mem_virq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/page_alloc.c:770,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:776,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:777,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:777,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/page_alloc.c:780,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - pg
    - node
    - zone
    - order
    - first_dirty
    argTypes:
    - struct page_info*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 781
    functionName: page_list_add_scrub
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - page_list_add
    - PFN_ORDER
    - heap
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void page_list_add_scrub(struct page_info *pg, unsigned int node,\n
      \                               unsigned int zone, unsigned int order,\n                                unsigned
      int first_dirty)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:799,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/page_alloc.c:802,1
    - Dst: scrub_page_cold
      Src: /src/xen/xen/common/page_alloc.c:804,1
    - Dst: scrub_page_hot
      Src: /src/xen/xen/common/page_alloc.c:806,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/page_alloc.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pg
    - cold
    argTypes:
    - struct page_info*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 808
    functionName: scrub_one_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - scrub_page_cold
    - scrub_page_hot
    - unlikely
    - __map_domain_page
    linkageType: ''
    returnType: void
    signature: void scrub_one_page(const struct page_info *pg, bool cold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/page_alloc.c:818,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/page_alloc.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 822
    functionName: poison_one_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void poison_one_page(struct page_info *pg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/page_alloc.c:833,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:835,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/page_alloc.c:836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 838
    functionName: check_one_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - BUG_ON
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void check_one_page(struct page_info *pg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/common/page_alloc.c:844,1
    - Dst: spin_lock_kick
      Src: /src/xen/xen/common/page_alloc.c:847,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/common/page_alloc.c:851,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/page_alloc.c:854,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 857
    functionName: check_and_stop_scrub
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - spin_lock_kick
    - ACCESS_ONCE
    - typeof
    linkageType: ''
    returnType: void
    signature: void check_and_stop_scrub(struct page_info *head)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: MEMF_get_node
      Src: /src/xen/xen/common/page_alloc.c:864,1
    - Dst: nodes_intersects
      Src: /src/xen/xen/common/page_alloc.c:880,1
    - Dst: nodes_and
      Src: /src/xen/xen/common/page_alloc.c:881,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/page_alloc.c:883,1
    - Dst: cycle_node
      Src: /src/xen/xen/common/page_alloc.c:889,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/page_alloc.c:892,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:892,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:894,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/page_alloc.c:896,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/page_alloc.c:917,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:917,1
    - Dst: check_and_stop_scrub
      Src: /src/xen/xen/common/page_alloc.c:928,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:932,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:932,1
    - Dst: nodemask_test
      Src: /src/xen/xen/common/page_alloc.c:941,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:944,1
    - Dst: first_node
      Src: /src/xen/xen/common/page_alloc.c:945,1
    - Dst: next_node
      Src: /src/xen/xen/common/page_alloc.c:949,1
    - Dst: first_node
      Src: /src/xen/xen/common/page_alloc.c:950,1
    - Dst: nodes_andnot
      Src: /src/xen/xen/common/page_alloc.c:956,1
    - Dst: first_node
      Src: /src/xen/xen/common/page_alloc.c:957,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 53
    argCount: 5
    argNames:
    - zone_lo
    - zone_hi
    - order
    - memflags
    - d
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 962
    functionName: get_free_buddy
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - next_node
    - unlikely
    - cpu_to_node
    - MEMF_get_node
    - page_list_add_tail
    - cycle_node
    - nodes_andnot
    - smp_processor_id
    - page_list_remove_head
    - heap
    - nodes_intersects
    - ASSERT
    - nodemask_test
    - nodes_and
    - first_node
    - check_and_stop_scrub
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_free_buddy(unsigned int zone_lo,\n                                        unsigned
      int zone_hi,\n                                        unsigned int order, unsigned
      int memflags,\n                                        const struct domain *d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_set_owner
      Src: /src/xen/xen/common/page_alloc.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 969
    functionName: init_free_page_fields
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_set_owner
    linkageType: ''
    returnType: void
    signature: void init_free_page_fields(struct page_info *pg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:987,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:989,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:990,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:992,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:995,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1005,1
    - Dst: get_free_buddy
      Src: /src/xen/xen/common/page_alloc.c:1009,1
    - Dst: get_free_buddy
      Src: /src/xen/xen/common/page_alloc.c:1012,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1017,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1021,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1022,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/page_alloc.c:1023,1
    - Dst: page_list_add_scrub
      Src: /src/xen/xen/common/page_alloc.c:1031,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1046,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1049,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:1068,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:1070,1
    - Dst: check_low_mem_virq
      Src: /src/xen/xen/common/page_alloc.c:1075,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:1085,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1087,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1087,1
    - Dst: BUG
      Src: /src/xen/xen/common/page_alloc.c:1090,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1094,1
    - Dst: accumulate_tlbflush
      Src: /src/xen/xen/common/page_alloc.c:1100,1
    - Dst: init_free_page_fields
      Src: /src/xen/xen/common/page_alloc.c:1103,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1106,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/page_alloc.c:1115,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/page_alloc.c:1118,1
    - Dst: check_one_page
      Src: /src/xen/xen/common/page_alloc.c:1123,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1128,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1130,1
    - Dst: filtered_flush_tlb_mask
      Src: /src/xen/xen/common/page_alloc.c:1135,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1141,1
    - Dst: flush_page_to_ram
      Src: /src/xen/xen/common/page_alloc.c:1143,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1143,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 78
    argCount: 5
    argNames:
    - zone_lo
    - zone_hi
    - order
    - memflags
    - d
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 1146
    functionName: alloc_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - get_free_buddy
    - BUILD_BUG_ON
    - spin_lock
    - page_to_nid
    - BUG
    - page_to_mfn
    - scrub_one_page
    - test_and_clear_bit
    - init_free_page_fields
    - PFN_ORDER
    - BUG_ON
    - printk
    - spin_unlock
    - filtered_flush_tlb_mask
    - mfn_x
    - check_low_mem_virq
    - flush_page_to_ram
    - ASSERT
    - min
    - accumulate_tlbflush
    - page_to_zone
    - page_list_add_scrub
    - check_one_page
    - unlikely
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *alloc_heap_pages(\n    unsigned int zone_lo, unsigned
      int zone_hi,\n    unsigned int order, unsigned int memflags,\n    struct domain
      *d)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1151,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1152,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/page_alloc.c:1152,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1156,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/page_alloc.c:1156,1
    - Dst: check_and_stop_scrub
      Src: /src/xen/xen/common/page_alloc.c:1160,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:1169,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1169,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1176,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1196,1
    - Dst: page_list_add_scrub
      Src: /src/xen/xen/common/page_alloc.c:1207,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1228,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1233,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:1235,1
    - Dst: test_bit
      Src: /src/xen/xen/common/page_alloc.c:1236,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1243
    functionName: reserve_offlined_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_to_nid
    - page_list_add_tail
    - page_state_is
    - page_list_add_scrub
    - check_and_stop_scrub
    - spin_is_locked
    - PFN_ORDER
    - heap
    - ASSERT
    - test_bit
    - page_to_zone
    - page_list_del
    linkageType: ''
    returnType: int
    signature: int reserve_offlined_page(struct page_info *head)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/page_alloc.c:1256,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:1256,1
    - Dst: node_test_and_set
      Src: /src/xen/xen/common/page_alloc.c:1264,1
    - Dst: cycle_node
      Src: /src/xen/xen/common/page_alloc.c:1275,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:1276,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:1276,1
    - Dst: __node_distance
      Src: /src/xen/xen/common/page_alloc.c:1295,1
    - Dst: node_test_and_set
      Src: /src/xen/xen/common/page_alloc.c:1306,1
    - Dst: node_clear
      Src: /src/xen/xen/common/page_alloc.c:1309,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 1
    argNames:
    - get_node
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1317
    functionName: node_to_scrub
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - __node_distance
    - cpu_to_node
    - cycle_node
    - node_clear
    - cpumask_empty
    - smp_processor_id
    - node_to_cpumask
    - node_test_and_set
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int node_to_scrub(bool get_node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/common/page_alloc.c:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1340
    functionName: scrub_continue
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: void scrub_continue(void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:1346,1
    - Dst: node_to_scrub
      Src: /src/xen/xen/common/page_alloc.c:1351,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1355,1
    - Dst: page_list_empty
      Src: /src/xen/xen/common/page_alloc.c:1362,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1362,1
    - Dst: page_list_last
      Src: /src/xen/xen/common/page_alloc.c:1368,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1368,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1372,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1375,1
    - Dst: test_bit
      Src: /src/xen/xen/common/page_alloc.c:1381,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/page_alloc.c:1383,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/page_alloc.c:1402,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1405,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1407,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/page_alloc.c:1419,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/page_alloc.c:1419,1
    - Dst: spin_lock_cb
      Src: /src/xen/xen/common/page_alloc.c:1436,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:1445,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1445,1
    - Dst: page_list_add_scrub
      Src: /src/xen/xen/common/page_alloc.c:1446,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1460,1
    - Dst: node_clear
      Src: /src/xen/xen/common/page_alloc.c:1463,1
    - Dst: node_to_scrub
      Src: /src/xen/xen/common/page_alloc.c:1464,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1342
    functionDepth: 3
    functionLinenumber: 1342
    functionLinenumberEnd: 1465
    functionName: scrub_free_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - cpu_online
    - softirq_pending
    - spin_unlock
    - scrub_one_page
    - page_list_add_scrub
    - page_list_last
    - node_clear
    - node_to_scrub
    - smp_processor_id
    - spin_lock_cb
    - heap
    - smp_wmb
    - spin_lock
    - ASSERT
    - page_list_empty
    - test_bit
    - page_list_del
    linkageType: ''
    returnType: bool
    signature: bool scrub_free_pages(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1471,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1471,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1471,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1471,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:1487,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:1498,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1500,1
    - Dst: BUG
      Src: /src/xen/xen/common/page_alloc.c:1503,1
    - Dst: page_get_owner
      Src: /src/xen/xen/common/page_alloc.c:1507,1
    - Dst: page_set_tlbflush_timestamp
      Src: /src/xen/xen/common/page_alloc.c:1509,1
    - Dst: page_set_owner
      Src: /src/xen/xen/common/page_alloc.c:1512,1
    - Dst: set_gpfn_from_mfn
      Src: /src/xen/xen/common/page_alloc.c:1513,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pg
    - mfn
    argTypes:
    - struct page_info*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1516
    functionName: mark_page_free
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - BUG
    - page_to_mfn
    - set_gpfn_from_mfn
    - page_set_tlbflush_timestamp
    - mfn_x
    - page_get_owner
    - BUG_ON
    - ASSERT
    - page_set_owner
    - printk
    linkageType: ''
    returnType: bool
    signature: bool mark_page_free(struct page_info *pg, mfn_t mfn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1525,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1526,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1527,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1530,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1532,1
    - Dst: mark_page_free
      Src: /src/xen/xen/common/page_alloc.c:1536,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/page_alloc.c:1536,1
    - Dst: poison_one_page
      Src: /src/xen/xen/common/page_alloc.c:1542,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1547,1
    - Dst: free_color_heap_page
      Src: /src/xen/xen/common/page_alloc.c:1549,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1550,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1570,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1570,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:1575,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1575,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1576,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/page_alloc.c:1578,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1579,1
    - Dst: check_and_stop_scrub
      Src: /src/xen/xen/common/page_alloc.c:1582,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:1584,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1584,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:1599,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1599,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1600,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/page_alloc.c:1602,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1603,1
    - Dst: check_and_stop_scrub
      Src: /src/xen/xen/common/page_alloc.c:1606,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:1614,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1614,1
    - Dst: page_list_add_scrub
      Src: /src/xen/xen/common/page_alloc.c:1620,1
    - Dst: reserve_offlined_page
      Src: /src/xen/xen/common/page_alloc.c:1623,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1625,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 3
    argNames:
    - pg
    - order
    - need_scrub
    argTypes:
    - struct page_info*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1521
    functionDepth: 4
    functionLinenumber: 1521
    functionLinenumberEnd: 1626
    functionName: free_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - page_list_del
    - mfn_to_nid
    - page_to_nid
    - page_to_mfn
    - mfn_valid
    - PFN_ORDER
    - heap
    - spin_unlock
    - page_state_is
    - poison_one_page
    - mfn_x
    - ASSERT
    - page_to_zone
    - page_list_add_scrub
    - mfn_add
    - free_color_heap_page
    - mark_page_free
    - reserve_offlined_page
    - check_and_stop_scrub
    linkageType: ''
    returnType: void
    signature: "void free_heap_pages(\n    struct page_info *pg, unsigned int order,
      bool need_scrub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1639,1
    - Dst: page_is_offlinable
      Src: /src/xen/xen/common/page_alloc.c:1639,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1639,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:1640,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/page_alloc.c:1640,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/page_alloc.c:1658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pg
    - broken
    argTypes:
    - struct page_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1661
    functionName: mark_page_offline
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - page_to_mfn
    - spin_is_locked
    - ASSERT
    - page_is_offlinable
    - cmpxchg
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long mark_page_offline(struct page_info *pg, int broken)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1666,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1667,1
    - Dst: page_list_empty
      Src: /src/xen/xen/common/page_alloc.c:1673,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1673,1
    - Dst: page_list_for_each_safe
      Src: /src/xen/xen/common/page_alloc.c:1676,1
    - Dst: heap
      Src: /src/xen/xen/common/page_alloc.c:1676,1
    - Dst: reserve_offlined_page
      Src: /src/xen/xen/common/page_alloc.c:1680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - pg
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1663
    functionDepth: 4
    functionLinenumber: 1663
    functionLinenumberEnd: 1686
    functionName: reserve_heap_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_to_nid
    - page_list_for_each_safe
    - heap
    - reserve_offlined_page
    - page_list_empty
    - page_to_zone
    linkageType: ''
    returnType: int
    signature: int reserve_heap_page(struct page_info *pg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:1694,1
    - Dst: dprintk
      Src: /src/xen/xen/common/page_alloc.c:1696,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1697,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:1702,1
    - Dst: is_xen_fixed_mfn
      Src: /src/xen/xen/common/page_alloc.c:1704,1
    - Dst: page_is_offlinable
      Src: /src/xen/xen/common/page_alloc.c:1715,1
    - Dst: page_get_owner
      Src: /src/xen/xen/common/page_alloc.c:1727,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/page_alloc.c:1730,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1734,1
    - Dst: mark_page_offline
      Src: /src/xen/xen/common/page_alloc.c:1736,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1738,1
    - Dst: reserve_heap_page
      Src: /src/xen/xen/common/page_alloc.c:1740,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1742,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1749,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/common/page_alloc.c:1751,1
    - Dst: p2m_pod_offline_or_broken_hit
      Src: /src/xen/xen/common/page_alloc.c:1753,1
    - Dst: put_page
      Src: /src/xen/xen/common/page_alloc.c:1755,1
    - Dst: p2m_pod_offline_or_broken_replace
      Src: /src/xen/xen/common/page_alloc.c:1756,1
    - Dst: put_page
      Src: /src/xen/xen/common/page_alloc.c:1764,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - mfn
    - broken
    - status
    argTypes:
    - mfn_t
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1688
    functionDepth: 5
    functionLinenumber: 1688
    functionLinenumberEnd: 1790
    functionName: offline_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - p2m_pod_offline_or_broken_hit
    - mark_page_offline
    - page_state_is
    - spin_unlock
    - p2m_pod_offline_or_broken_replace
    - mfn_to_page
    - page_get_owner_and_reference
    - mfn_x
    - mfn_valid
    - page_get_owner
    - dprintk
    - spin_lock
    - page_is_offlinable
    - reserve_heap_page
    - put_page
    - domain_crash
    - is_xen_fixed_mfn
    linkageType: ''
    returnType: int
    signature: int offline_page(mfn_t mfn, int broken, uint32_t *status)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:1804,1
    - Dst: dprintk
      Src: /src/xen/xen/common/page_alloc.c:1806,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:1810,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1812,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:1827,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/page_alloc.c:1841,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1843,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:1846,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - mfn
    - status
    argTypes:
    - mfn_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1798
    functionDepth: 5
    functionLinenumber: 1798
    functionLinenumberEnd: 1849
    functionName: online_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - mfn_to_page
    - mfn_valid
    - spin_lock
    - dprintk
    - cmpxchg
    - page_list_del
    - free_heap_pages
    linkageType: ''
    returnType: int
    signature: int online_page(mfn_t mfn, uint32_t *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:1855,1
    - Dst: page_is_offlinable
      Src: /src/xen/xen/common/page_alloc.c:1855,1
    - Dst: dprintk
      Src: /src/xen/xen/common/page_alloc.c:1857,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1862,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:1864,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1866,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:1870,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - mfn
    - status
    argTypes:
    - mfn_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1876
    functionName: query_page_offline
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - page_state_is
    - mfn_to_page
    - mfn_valid
    - spin_lock
    - page_is_offlinable
    - dprintk
    linkageType: ''
    returnType: int
    signature: int query_page_offline(mfn_t mfn, uint32_t *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1888,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1890,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1890,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1891,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/page_alloc.c:1891,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1891,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:1892,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/page_alloc.c:1894,1
    - Dst: ffsl
      Src: /src/xen/xen/common/page_alloc.c:1895,1
    - Dst: ffsl
      Src: /src/xen/xen/common/page_alloc.c:1895,1
    - Dst: init_node_heap
      Src: /src/xen/xen/common/page_alloc.c:1898,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:1899,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:1918,1
    - Dst: flsl
      Src: /src/xen/xen/common/page_alloc.c:1918,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:1921,1
    - Dst: ffsl
      Src: /src/xen/xen/common/page_alloc.c:1921,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:1922,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:1922,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:1922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pg
    - nr_pages
    - need_scrub
    argTypes:
    - struct page_info*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1883
    functionDepth: 5
    functionLinenumber: 1883
    functionLinenumberEnd: 1925
    functionName: _init_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_to_nid
    - page_to_mfn
    - ffsl
    - mfn_to_page
    - mfn_x
    - IS_ALIGNED
    - mfn_add
    - init_node_heap
    - _mfn
    - flsl
    - BUG_ON
    - min
    - unlikely
    - free_heap_pages
    linkageType: ''
    returnType: void
    signature: "void _init_heap_pages(const struct page_info *pg,\n                             unsigned
      long nr_pages,\n                             bool need_scrub)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:1937,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1937,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:1951,1
    - Dst: mfn_min
      Src: /src/xen/xen/common/page_alloc.c:1952,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:1952,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:1953,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1961,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1963,1
    - Dst: page_to_zone
      Src: /src/xen/xen/common/page_alloc.c:1983,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/page_alloc.c:1987,1
    - Dst: _init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:1991,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pg
    - nr_pages
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1927
    functionDepth: 6
    functionLinenumber: 1927
    functionLinenumberEnd: 1996
    functionName: init_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - page_to_nid
    - spin_unlock
    - page_to_mfn
    - _init_heap_pages
    - mfn_x
    - mfn_min
    - spin_lock
    - page_to_zone
    linkageType: ''
    returnType: void
    signature: "void init_heap_pages(\n    struct page_info *pg, unsigned long nr_pages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - color
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2008
    functionName: color_heap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: color_heap(color)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 2012
    functionDepth: 0
    functionLinenumber: 2012
    functionLinenumberEnd: 2013
    functionName: domain_num_llc_colors
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_num_llc_colors(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2014
    functionName: domain_llc_color
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_llc_color(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2023
    functionName: domain_num_llc_colors
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int domain_num_llc_colors(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2024
    functionDepth: 0
    functionLinenumber: 2024
    functionLinenumberEnd: 2025
    functionName: domain_llc_color
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: domain_llc_color(d, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_to_llc_color
      Src: /src/xen/xen/common/page_alloc.c:2031,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/page_alloc.c:2037,1
    - Dst: color_heap
      Src: /src/xen/xen/common/page_alloc.c:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pg
    - need_scrub
    argTypes:
    - struct page_info*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2027
    functionDepth: 2
    functionLinenumber: 2027
    functionLinenumberEnd: 2038
    functionName: free_color_heap_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - color_heap
    - page_list_add
    - page_to_llc_color
    linkageType: ''
    returnType: void
    signature: void free_color_heap_page(struct page_info *pg, bool need_scrub)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2054,1
    - Dst: domain_num_llc_colors
      Src: /src/xen/xen/common/page_alloc.c:2056,1
    - Dst: domain_llc_color
      Src: /src/xen/xen/common/page_alloc.c:2058,1
    - Dst: domain_llc_color
      Src: /src/xen/xen/common/page_alloc.c:2062,1
    - Dst: page_list_first
      Src: /src/xen/xen/common/page_alloc.c:2063,1
    - Dst: color_heap
      Src: /src/xen/xen/common/page_alloc.c:2063,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2070,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/page_alloc.c:2077,1
    - Dst: color_heap
      Src: /src/xen/xen/common/page_alloc.c:2077,1
    - Dst: accumulate_tlbflush
      Src: /src/xen/xen/common/page_alloc.c:2080,1
    - Dst: init_free_page_fields
      Src: /src/xen/xen/common/page_alloc.c:2082,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2084,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/page_alloc.c:2089,1
    - Dst: check_one_page
      Src: /src/xen/xen/common/page_alloc.c:2091,1
    - Dst: filtered_flush_tlb_mask
      Src: /src/xen/xen/common/page_alloc.c:2095,1
    - Dst: flush_page_to_ram
      Src: /src/xen/xen/common/page_alloc.c:2097,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2097,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2097,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - memflags
    - d
    argTypes:
    - unsigned int
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2040
    functionDepth: 3
    functionLinenumber: 2040
    functionLinenumberEnd: 2101
    functionName: alloc_color_heap_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - scrub_one_page
    - page_to_mfn
    - check_one_page
    - filtered_flush_tlb_mask
    - color_heap
    - init_free_page_fields
    - mfn_x
    - flush_page_to_ram
    - domain_num_llc_colors
    - spin_lock
    - accumulate_tlbflush
    - page_list_del
    - domain_llc_color
    - page_list_first
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *alloc_color_heap_page(unsigned int memflags,\n                                               const
      struct domain *d)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:2112,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/page_alloc.c:2112,1
    - Dst: init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2114,1
    - Dst: get_max_nr_llc_colors
      Src: /src/xen/xen/common/page_alloc.c:2123,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/page_alloc.c:2125,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/page_alloc.c:2126,1
    - Dst: panic
      Src: /src/xen/xen/common/page_alloc.c:2128,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/page_alloc.c:2131,1
    - Dst: color_heap
      Src: /src/xen/xen/common/page_alloc.c:2131,1
    - Dst: free_color_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pg
    - nr_pages
    argTypes:
    - struct page_info*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2103
    functionDepth: 7
    functionLinenumber: 2103
    functionLinenumberEnd: 2139
    functionName: init_color_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - xvmalloc_array
    - xvzalloc_array
    - get_max_nr_llc_colors
    - panic
    - color_heap
    - free_color_heap_page
    - min
    - INIT_PAGE_LIST_HEAD
    - PFN_DOWN
    - init_heap_pages
    linkageType: ''
    returnType: void
    signature: "void init_color_heap_pages(struct page_info *pg,\n                                         unsigned
      long nr_pages)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2145,1
    - Dst: get_max_nr_llc_colors
      Src: /src/xen/xen/common/page_alloc.c:2146,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2150
    functionName: dump_color_heap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - get_max_nr_llc_colors
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_color_heap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/page_alloc.c:2161,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2161,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/page_alloc.c:2161,1
    - Dst: init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2163,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:2163,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2163,1
    - Dst: init_color_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2176,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:2176,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2176,1
    - Dst: init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2178,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:2178,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2178,1
    - Dst: arch_want_default_dmazone
      Src: /src/xen/xen/common/page_alloc.c:2182,1
    - Dst: arch_get_dma_bitsize
      Src: /src/xen/xen/common/page_alloc.c:2183,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2185,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2187,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2152
    functionDepth: 8
    functionLinenumber: 2152
    functionLinenumberEnd: 2189
    functionName: end_boot_allocator
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 3
    functionsReached:
    - mfn_to_nid
    - cpu_to_node
    - mfn_to_page
    - _mfn
    - arch_want_default_dmazone
    - arch_get_dma_bitsize
    - init_color_heap_pages
    - printk
    - init_heap_pages
    linkageType: ''
    returnType: void
    signature: void end_boot_allocator(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:2198,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/page_alloc.c:2204,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/page_alloc.c:2211,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/page_alloc.c:2226,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:2234,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2234,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:2237,1
    - Dst: _mfn
      Src: /src/xen/xen/common/page_alloc.c:2237,1
    - Dst: page_state_is
      Src: /src/xen/xen/common/page_alloc.c:2237,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/page_alloc.c:2240,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2191
    functionDepth: 2
    functionLinenumber: 2191
    functionLinenumberEnd: 2242
    functionName: smp_scrub_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - for_each_cpu
    - page_state_is
    - scrub_one_page
    - mfn_to_page
    - smp_processor_id
    - _mfn
    - mfn_valid
    - cpumask_weight
    linkageType: ''
    returnType: void
    signature: void smp_scrub_heap_pages(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/common/page_alloc.c:2249,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2249,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/page_alloc.c:2250,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/page_alloc.c:2251,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/page_alloc.c:2253,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/page_alloc.c:2253,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/page_alloc.c:2255,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/page_alloc.c:2255,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/page_alloc.c:2256,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/page_alloc.c:2258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - node
    - dest
    argTypes:
    - unsigned int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2244
    functionDepth: 2
    functionLinenumber: 2244
    functionLinenumberEnd: 2259
    functionName: find_non_smt
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - node_to_cpumask
    - cpumask_first
    - per_cpu
    - cpumask_weight
    - __cpumask_set_cpu
    - cpumask_and
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int find_non_smt(unsigned int node, cpumask_t *dest)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/page_alloc.c:2275,1
    - Dst: MB
      Src: /src/xen/xen/common/page_alloc.c:2279,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/page_alloc.c:2284,1
    - Dst: max
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: max
      Src: /src/xen/xen/common/page_alloc.c:2290,1
    - Dst: find_non_smt
      Src: /src/xen/xen/common/page_alloc.c:2292,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/page_alloc.c:2293,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/page_alloc.c:2309,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2312,1
    - Dst: num_online_nodes
      Src: /src/xen/xen/common/page_alloc.c:2312,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/page_alloc.c:2313,1
    - Dst: for_each_online_node
      Src: /src/xen/xen/common/page_alloc.c:2318,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/page_alloc.c:2321,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2323,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/common/page_alloc.c:2324,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2325,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2327,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2336,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:2338,1
    - Dst: first_node
      Src: /src/xen/xen/common/page_alloc.c:2342,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: __node_distance
      Src: /src/xen/xen/common/page_alloc.c:2351,1
    - Dst: find_non_smt
      Src: /src/xen/xen/common/page_alloc.c:2362,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/page_alloc.c:2365,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:2365,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/page_alloc.c:2372,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/page_alloc.c:2378,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2380,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/common/page_alloc.c:2381,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2382,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2384,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2388,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2265
    functionDepth: 3
    functionLinenumber: 2265
    functionLinenumberEnd: 2393
    functionName: scrub_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - max
    - on_selected_cpus
    - spin_lock
    - num_online_nodes
    - for_each_online_node
    - node_start_pfn
    - __node_distance
    - MB
    - smp_processor_id
    - node_spanned_pages
    - printk
    - first_node
    - cpumask_or
    - cpumask_clear
    - spin_unlock
    - mfn_x
    - node_to_cpumask
    - min
    - process_pending_softirqs
    - cpumask_copy
    - cpumask_weight
    - find_non_smt
    - cpumask_empty
    - __cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void scrub_heap_pages(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/page_alloc.c:2284,1
    - Dst: max
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2287,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/page_alloc.c:2288,1
    - Dst: max
      Src: /src/xen/xen/common/page_alloc.c:2290,1
    - Dst: find_non_smt
      Src: /src/xen/xen/common/page_alloc.c:2292,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/page_alloc.c:2293,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/page_alloc.c:2309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2282
    functionDepth: 3
    functionLinenumber: 2282
    functionLinenumberEnd: 2310
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - node_start_pfn
    - max
    - mfn_x
    - node_spanned_pages
    - min
    - cpumask_or
    - cpumask_copy
    - find_non_smt
    linkageType: ''
    returnType: void
    signature: void for_each_online_node ( i )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2336,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:2338,1
    - Dst: first_node
      Src: /src/xen/xen/common/page_alloc.c:2342,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: __node_distance
      Src: /src/xen/xen/common/page_alloc.c:2351,1
    - Dst: find_non_smt
      Src: /src/xen/xen/common/page_alloc.c:2362,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/page_alloc.c:2365,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/page_alloc.c:2365,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/page_alloc.c:2372,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/page_alloc.c:2378,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2380,1
    - Dst: on_selected_cpus
      Src: /src/xen/xen/common/page_alloc.c:2381,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2382,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2334
    functionDepth: 3
    functionLinenumber: 2334
    functionLinenumberEnd: 2386
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - __node_distance
    - spin_unlock
    - cpumask_empty
    - smp_processor_id
    - on_selected_cpus
    - node_to_cpumask
    - spin_lock
    - process_pending_softirqs
    - printk
    - cpumask_copy
    - first_node
    - __cpumask_set_cpu
    - find_non_smt
    linkageType: ''
    returnType: void
    signature: void for_each_online_node ( i )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/page_alloc.c:2348,1
    - Dst: __node_distance
      Src: /src/xen/xen/common/page_alloc.c:2351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2344
    functionDepth: 2
    functionLinenumber: 2344
    functionLinenumberEnd: 2357
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - cpumask_empty
    - __node_distance
    - node_to_cpumask
    linkageType: ''
    returnType: void
    signature: void for_each_online_node ( j )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setup_low_mem_virq
      Src: /src/xen/xen/common/page_alloc.c:2401,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/page_alloc.c:2406,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2410,1
    - Dst: scrub_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2420
    functionName: heap_init_late
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - scrub_heap_pages
    - ASSERT_UNREACHABLE
    - setup_low_mem_virq
    - printk
    linkageType: ''
    returnType: void
    signature: void heap_init_late(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: round_pgup
      Src: /src/xen/xen/common/page_alloc.c:2431,1
    - Dst: round_pgdown
      Src: /src/xen/xen/common/page_alloc.c:2432,1
    - Dst: is_xen_heap_mfn
      Src: /src/xen/xen/common/page_alloc.c:2440,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/page_alloc.c:2440,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2440,1
    - Dst: is_xen_heap_mfn
      Src: /src/xen/xen/common/page_alloc.c:2442,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2442,1
    - Dst: init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2445,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/common/page_alloc.c:2445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2429
    functionDepth: 7
    functionLinenumber: 2429
    functionLinenumberEnd: 2446
    functionName: init_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - is_xen_heap_mfn
    - mfn_add
    - maddr_to_page
    - round_pgdown
    - maddr_to_mfn
    - round_pgup
    - init_heap_pages
    linkageType: ''
    returnType: void
    signature: void init_xenheap_pages(paddr_t ps, paddr_t pe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2453,1
    - Dst: alloc_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2455,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2457,1
    - Dst: page_to_virt
      Src: /src/xen/xen/common/page_alloc.c:2460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - order
    - memflags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2449
    functionDepth: 5
    functionLinenumber: 2449
    functionLinenumberEnd: 2461
    functionName: alloc_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 25
    functionsReached:
    - ASSERT_ALLOC_CONTEXT
    - page_to_virt
    - alloc_heap_pages
    - unlikely
    linkageType: ''
    returnType: void
    signature: void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2466,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2471,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/page_alloc.c:2471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - order
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2472
      start: 2464
    functionDepth: 5
    functionLinenumber: 2464
    functionLinenumberEnd: 2472
    functionName: free_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 16
    functionsReached:
    - ASSERT_ALLOC_CONTEXT
    - free_heap_pages
    - virt_to_page
    linkageType: ''
    returnType: void
    signature: void free_xenheap_pages(void *v, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2478,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2479,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/page_alloc.c:2480,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:2481,1
    - Dst: flsl
      Src: /src/xen/xen/common/page_alloc.c:2481,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2476
    functionDepth: 1
    functionLinenumber: 2476
    functionLinenumberEnd: 2483
    functionName: xenheap_max_mfn
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - flsl
    - BUILD_BUG_ON
    - ASSERT
    - min
    - printk
    linkageType: ''
    returnType: void
    signature: void xenheap_max_mfn(unsigned long mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_domheap_pages
      Src: /src/xen/xen/common/page_alloc.c:2487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2488
    functionName: init_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - init_domheap_pages
    linkageType: ''
    returnType: void
    signature: void init_xenheap_pages(paddr_t ps, paddr_t pe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2495,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/page_alloc.c:2498,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/page_alloc.c:2500,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/page_alloc.c:2502,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2503,1
    - Dst: page_to_virt
      Src: /src/xen/xen/common/page_alloc.c:2509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - order
    - memflags
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2510
    functionName: alloc_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 25
    functionsReached:
    - page_to_virt
    - ASSERT_ALLOC_CONTEXT
    - unlikely
    - alloc_domheap_pages
    - MEMF_bits
    linkageType: ''
    returnType: void
    signature: void *alloc_xenheap_pages(unsigned int order, unsigned int memflags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2517,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/page_alloc.c:2522,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - v
    - order
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2512
    functionDepth: 5
    functionLinenumber: 2512
    functionLinenumberEnd: 2528
    functionName: free_xenheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 16
    functionsReached:
    - ASSERT_ALLOC_CONTEXT
    - free_heap_pages
    - virt_to_page
    linkageType: ''
    returnType: void
    signature: void free_xenheap_pages(void *v, unsigned int order)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2542,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2544,1
    - Dst: round_pgup
      Src: /src/xen/xen/common/page_alloc.c:2544,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2545,1
    - Dst: round_pgdown
      Src: /src/xen/xen/common/page_alloc.c:2545,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2547,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2547,1
    - Dst: init_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2550,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:2550,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2550,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ps
    - pe
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2538
    functionDepth: 7
    functionLinenumber: 2538
    functionLinenumberEnd: 2551
    functionName: init_domheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 5
    functionsReached:
    - mfn_to_page
    - mfn_x
    - round_pgdown
    - maddr_to_mfn
    - ASSERT_ALLOC_CONTEXT
    - round_pgup
    - init_heap_pages
    linkageType: ''
    returnType: void
    signature: void init_domheap_pages(paddr_t ps, paddr_t pe)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/page_alloc.c:2563,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2565,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/page_alloc.c:2567,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2579,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2584,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:2597,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2599,1
    - Dst: gprintk
      Src: /src/xen/xen/common/page_alloc.c:2601,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2607,1
    - Dst: gprintk
      Src: /src/xen/xen/common/page_alloc.c:2609,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2618,1
    - Dst: gprintk
      Src: /src/xen/xen/common/page_alloc.c:2620,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2629,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:2629,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/common/page_alloc.c:2630,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2635,1
    - Dst: page_get_owner
      Src: /src/xen/xen/common/page_alloc.c:2635,1
    - Dst: page_set_owner
      Src: /src/xen/xen/common/page_alloc.c:2636,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/page_alloc.c:2637,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:2641,1
    - Dst: page_to_list
      Src: /src/xen/xen/common/page_alloc.c:2641,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2645,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - pg
    - nr
    - d
    - memflags
    argTypes:
    - struct page_info*
    - unsigned int
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2554
    functionDepth: 2
    functionLinenumber: 2554
    functionLinenumberEnd: 2647
    functionName: assign_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - get_knownalive_domain
    - page_list_add_tail
    - gdprintk
    - page_to_list
    - nrspin_unlock
    - domain_tot_pages
    - page_get_owner
    - smp_wmb
    - ASSERT
    - gprintk
    - page_set_owner
    - nrspin_lock
    - unlikely
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: int
    signature: "int assign_pages(\n    struct page_info *pg,\n    unsigned int nr,\n
      \   struct domain *d,\n    unsigned int memflags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign_pages
      Src: /src/xen/xen/common/page_alloc.c:2652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pg
    - order
    - d
    - memflags
    argTypes:
    - struct page_info*
    - unsigned int
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2649
    functionDepth: 3
    functionLinenumber: 2649
    functionLinenumberEnd: 2653
    functionName: assign_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - assign_pages
    linkageType: ''
    returnType: int
    signature: "int assign_page(struct page_info *pg, unsigned int order, struct domain
      *d,\n                unsigned int memflags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2662,1
    - Dst: domain_clamp_alloc_bitsize
      Src: /src/xen/xen/common/page_alloc.c:2664,1
    - Dst: min
      Src: /src/xen/xen/common/page_alloc.c:2667,1
    - Dst: bits_to_zone
      Src: /src/xen/xen/common/page_alloc.c:2667,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2668,1
    - Dst: alloc_color_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2677,1
    - Dst: bits_to_zone
      Src: /src/xen/xen/common/page_alloc.c:2682,1
    - Dst: alloc_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2683,1
    - Dst: alloc_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2687,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2699,1
    - Dst: assign_page
      Src: /src/xen/xen/common/page_alloc.c:2703,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2705,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - d
    - order
    - memflags
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2655
    functionDepth: 5
    functionLinenumber: 2655
    functionLinenumberEnd: 2711
    functionName: alloc_domheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 13
    functionsReached:
    - bits_to_zone
    - alloc_color_heap_page
    - assign_page
    - alloc_heap_pages
    - ASSERT
    - min
    - ASSERT_ALLOC_CONTEXT
    - free_heap_pages
    - domain_clamp_alloc_bitsize
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *alloc_domheap_pages(\n    struct domain *d, unsigned
      int order, unsigned int memflags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/common/page_alloc.c:2715,1
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2719,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2721,1
    - Dst: is_xen_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2721,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/page_alloc.c:2724,1
    - Dst: arch_free_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2727,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2732,1
    - Dst: likely
      Src: /src/xen/xen/common/page_alloc.c:2738,1
    - Dst: likely
      Src: /src/xen/xen/common/page_alloc.c:2738,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/page_alloc.c:2741,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2747,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2749,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2749,1
    - Dst: BUG
      Src: /src/xen/xen/common/page_alloc.c:2752,1
    - Dst: arch_free_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2754,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2757,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:2762,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2764,1
    - Dst: mem_paging_enabled
      Src: /src/xen/xen/common/page_alloc.c:2773,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:2785,1
    - Dst: free_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2790,1
    - Dst: put_domain
      Src: /src/xen/xen/common/page_alloc.c:2794,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - pg
    - order
    argTypes:
    - struct page_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2713
    functionDepth: 5
    functionLinenumber: 2713
    functionLinenumberEnd: 2795
    functionName: free_domheap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 8
    functionsReached:
    - BUG
    - arch_free_heap_page
    - page_to_mfn
    - mem_paging_enabled
    - rspin_lock
    - rspin_unlock
    - mfn_x
    - likely
    - page_get_owner
    - ASSERT
    - put_domain
    - ASSERT_ALLOC_CONTEXT
    - is_xen_heap_page
    - unlikely
    - printk
    - free_heap_pages
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: void
    signature: void free_domheap_pages(struct page_info *pg, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bits_to_zone
      Src: /src/xen/xen/common/page_alloc.c:2802,1
    - Dst: max_t
      Src: /src/xen/xen/common/page_alloc.c:2803,1
    - Dst: min_t
      Src: /src/xen/xen/common/page_alloc.c:2803,1
    - Dst: bits_to_zone
      Src: /src/xen/xen/common/page_alloc.c:2805,1
    - Dst: max_t
      Src: /src/xen/xen/common/page_alloc.c:2806,1
    - Dst: min_t
      Src: /src/xen/xen/common/page_alloc.c:2806,1
    - Dst: avail_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - node
    - min_width
    - max_width
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2797
    functionDepth: 1
    functionLinenumber: 2797
    functionLinenumberEnd: 2809
    functionName: avail_domheap_pages_region
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - avail_heap_pages
    - bits_to_zone
    - min_t
    - max_t
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long avail_domheap_pages_region(\n    unsigned int node,
      unsigned int min_width, unsigned int max_width)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avail_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nodeid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2814
    functionName: avail_node_heap_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - avail_heap_pages
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long avail_node_heap_pages(unsigned int nodeid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2822,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2823,1
    - Dst: avail_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2824,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2830,1
    - Dst: avail_heap_pages
      Src: /src/xen/xen/common/page_alloc.c:2834,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2837,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2841,1
    - Dst: dump_llc_coloring_info
      Src: /src/xen/xen/common/page_alloc.c:2843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2817
    functionDepth: 1
    functionLinenumber: 2817
    functionLinenumberEnd: 2844
    functionName: pagealloc_info
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - avail_heap_pages
    - dump_llc_coloring_info
    - printk
    linkageType: ''
    returnType: void
    signature: void pagealloc_info(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/page_alloc.c:2848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2850
    functionName: pagealloc_keyhandler_init
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: __init
    signature: __init pagealloc_keyhandler_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/page_alloc.c:2855,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2858,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2866,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2874,1
    - Dst: dump_color_heap
      Src: /src/xen/xen/common/page_alloc.c:2878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2853
    functionDepth: 2
    functionLinenumber: 2853
    functionLinenumberEnd: 2879
    functionName: dump_heap
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - dump_color_heap
    - printk
    - NOW
    linkageType: ''
    returnType: void
    signature: void dump_heap(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/page_alloc.c:2883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2881
    functionDepth: 1
    functionLinenumber: 2881
    functionLinenumberEnd: 2885
    functionName: register_heap_trigger
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: __init
    signature: __init register_heap_trigger(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2892,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/page_alloc.c:2894,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/page_alloc.c:2901,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/page_alloc.c:2905,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/page_alloc.c:2909,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/page_alloc.c:2910,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2888
    functionDepth: 5
    functionLinenumber: 2888
    functionLinenumberEnd: 2916
    functionName: get_pg_owner
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 5
    functionsReached:
    - rcu_lock_domain_by_any_id
    - gdprintk
    - rcu_lock_domain
    - unlikely
    linkageType: ''
    returnType: struct domain
    signature: struct domain *get_pg_owner(domid_t domid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2926,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2929,1
    - Dst: mark_page_free
      Src: /src/xen/xen/common/page_alloc.c:2933,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/page_alloc.c:2933,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/page_alloc.c:2938,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pg
    - nr_mfns
    - need_scrub
    argTypes:
    - struct page_info*
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2923
    functionDepth: 2
    functionLinenumber: 2923
    functionLinenumberEnd: 2945
    functionName: unprepare_staticmem_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 1
    functionsReached:
    - scrub_one_page
    - page_to_mfn
    - spin_unlock
    - mfn_add
    - mark_page_free
    - spin_lock
    linkageType: ''
    returnType: void
    signature: "void unprepare_staticmem_pages(struct page_info *pg, unsigned long
      nr_mfns,\n                               bool need_scrub)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: page_get_owner
      Src: /src/xen/xen/common/page_alloc.c:2949,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:2952,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2954,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2956,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2956,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/page_alloc.c:2957,1
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:2961,1
    - Dst: rspin_lock
      Src: /src/xen/xen/common/page_alloc.c:2964,1
    - Dst: arch_free_heap_page
      Src: /src/xen/xen/common/page_alloc.c:2966,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/page_alloc.c:2968,1
    - Dst: unprepare_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:2970,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:2973,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:2975,1
    - Dst: put_domain
      Src: /src/xen/xen/common/page_alloc.c:2978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - page
    argTypes:
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2947
    functionDepth: 3
    functionLinenumber: 2947
    functionLinenumberEnd: 2979
    functionName: free_domstatic_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - page_list_add_tail
    - page_to_mfn
    - arch_free_heap_page
    - rspin_lock
    - mfn_x
    - unprepare_staticmem_pages
    - rspin_unlock
    - page_get_owner
    - put_domain
    - ASSERT_ALLOC_CONTEXT
    - printk
    - unlikely
    - ASSERT_UNREACHABLE
    - domain_adjust_tot_pages
    linkageType: ''
    returnType: void
    signature: void free_domstatic_page(struct page_info *page)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/page_alloc.c:2988,1
    - Dst: printk
      Src: /src/xen/xen/common/page_alloc.c:2995,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:2997,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:2997,1
    - Dst: accumulate_tlbflush
      Src: /src/xen/xen/common/page_alloc.c:3003,1
    - Dst: init_free_page_fields
      Src: /src/xen/xen/common/page_alloc.c:3011,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:3014,1
    - Dst: filtered_flush_tlb_mask
      Src: /src/xen/xen/common/page_alloc.c:3017,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/page_alloc.c:3025,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - pg
    - nr_mfns
    - memflags
    argTypes:
    - struct page_info*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 2981
    functionDepth: 3
    functionLinenumber: 2981
    functionLinenumberEnd: 3028
    functionName: prepare_staticmem_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - page_to_mfn
    - filtered_flush_tlb_mask
    - init_free_page_fields
    - mfn_x
    - spin_lock
    - accumulate_tlbflush
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool prepare_staticmem_pages(struct page_info *pg, unsigned long nr_mfns,\n
      \                                   unsigned int memflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/page_alloc.c:3042,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/page_alloc.c:3044,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/page_alloc.c:3044,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/page_alloc.c:3047,1
    - Dst: prepare_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:3048,1
    - Dst: flush_page_to_ram
      Src: /src/xen/xen/common/page_alloc.c:3056,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/page_alloc.c:3056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - smfn
    - nr_mfns
    - memflags
    argTypes:
    - mfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 3035
    functionDepth: 4
    functionLinenumber: 3035
    functionLinenumberEnd: 3059
    functionName: acquire_staticmem_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - prepare_staticmem_pages
    - mfn_x
    - mfn_add
    - mfn_valid
    - flush_page_to_ram
    - ASSERT
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info * __init acquire_staticmem_pages(mfn_t smfn,\n                                                         unsigned
      long nr_mfns,\n                                                         unsigned
      int memflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/page_alloc.c:3070,1
    - Dst: assign_pages
      Src: /src/xen/xen/common/page_alloc.c:3074,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - d
    - pg
    - nr_mfns
    - memflags
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3061
    functionDepth: 3
    functionLinenumber: 3061
    functionLinenumberEnd: 3078
    functionName: assign_domstatic_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - assign_pages
    linkageType: ''
    returnType: int
    signature: "int assign_domstatic_pages(struct domain *d, struct page_info *pg,\n
      \                                 unsigned int nr_mfns, unsigned int memflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:3089,1
    - Dst: acquire_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:3091,1
    - Dst: assign_domstatic_pages
      Src: /src/xen/xen/common/page_alloc.c:3095,1
    - Dst: unprepare_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:3097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - d
    - smfn
    - nr_mfns
    - memflags
    argTypes:
    - struct domain*
    - mfn_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3102
      start: 3084
    functionDepth: 5
    functionLinenumber: 3084
    functionLinenumberEnd: 3102
    functionName: acquire_domstatic_pages
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - acquire_staticmem_pages
    - assign_domstatic_pages
    - ASSERT_ALLOC_CONTEXT
    - unprepare_staticmem_pages
    linkageType: ''
    returnType: int
    signature: "int acquire_domstatic_pages(struct domain *d, mfn_t smfn,\n                                   unsigned
      int nr_mfns, unsigned int memflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/page_alloc.c:3112,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/page_alloc.c:3115,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/page_alloc.c:3116,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:3117,1
    - Dst: unlikely
      Src: /src/xen/xen/common/page_alloc.c:3118,1
    - Dst: prepare_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:3121,1
    - Dst: assign_domstatic_pages
      Src: /src/xen/xen/common/page_alloc.c:3124,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/page_alloc.c:3127,1
    - Dst: unprepare_staticmem_pages
      Src: /src/xen/xen/common/page_alloc.c:3134,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/page_alloc.c:3136,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/common/page_alloc.c:3137,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/page_alloc.c:3138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - d
    - memflags
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3108
    functionDepth: 4
    functionLinenumber: 3108
    functionLinenumberEnd: 3140
    functionName: acquire_reserved_page
    functionSourceFile: /src/xen/xen/common/page_alloc.c
    functionUses: 0
    functionsReached:
    - page_list_add_tail
    - page_to_mfn
    - prepare_staticmem_pages
    - unprepare_staticmem_pages
    - nrspin_unlock
    - page_list_remove_head
    - ASSERT_ALLOC_CONTEXT
    - nrspin_lock
    - unlikely
    - assign_domstatic_pages
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t acquire_reserved_page(struct domain *d, unsigned int memflags)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/sysctl.c:32,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sysctl.c:39,1
    - Dst: xsm_sysctl
      Src: /src/xen/xen/common/sysctl.c:45,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/sysctl.c:54,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/sysctl.c:55,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/sysctl.c:56,1
    - Dst: xsm_readconsole
      Src: /src/xen/xen/common/sysctl.c:62,1
    - Dst: read_console_ring
      Src: /src/xen/xen/common/sysctl.c:66,1
    - Dst: tb_control
      Src: /src/xen/xen/common/sysctl.c:70,1
    - Dst: scheduler_id
      Src: /src/xen/xen/common/sysctl.c:74,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sysctl.c:83,1
    - Dst: xsm_getdomaininfo
      Src: /src/xen/xen/common/sysctl.c:92,1
    - Dst: getdomaininfo
      Src: /src/xen/xen/common/sysctl.c:95,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:97,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sysctl.c:107,1
    - Dst: perfc_control
      Src: /src/xen/xen/common/sysctl.c:118,1
    - Dst: spinlock_profile_control
      Src: /src/xen/xen/common/sysctl.c:124,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/sysctl.c:135,1
    - Dst: handle_keypress
      Src: /src/xen/xen/common/sysctl.c:137,1
    - Dst: min
      Src: /src/xen/xen/common/sysctl.c:149,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/common/sysctl.c:154,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:156,1
    - Dst: avail_domheap_pages_region
      Src: /src/xen/xen/common/sysctl.c:166,1
    - Dst: do_get_pm_info
      Src: /src/xen/xen/common/sysctl.c:175,1
    - Dst: do_pm_op
      Src: /src/xen/xen/common/sysctl.c:181,1
    - Dst: xsm_page_offline
      Src: /src/xen/xen/common/sysctl.c:196,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/sysctl.c:200,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sysctl.c:205,1
    - Dst: memset
      Src: /src/xen/xen/common/sysctl.c:210,1
    - Dst: _mfn
      Src: /src/xen/xen/common/sysctl.c:213,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/sysctl.c:214,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/sysctl.c:215,1
    - Dst: offline_page
      Src: /src/xen/xen/common/sysctl.c:221,1
    - Dst: online_page
      Src: /src/xen/xen/common/sysctl.c:224,1
    - Dst: query_page_offline
      Src: /src/xen/xen/common/sysctl.c:227,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/sysctl.c:238,1
    - Dst: xfree
      Src: /src/xen/xen/common/sysctl.c:243,1
    - Dst: cpupool_do_sysctl
      Src: /src/xen/xen/common/sysctl.c:249,1
    - Dst: sched_adjust_global
      Src: /src/xen/xen/common/sysctl.c:253,1
    - Dst: memset
      Src: /src/xen/xen/common/sysctl.c:260,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sysctl.c:262,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sysctl.c:262,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sysctl.c:264,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sysctl.c:264,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/sysctl.c:265,1
    - Dst: num_online_nodes
      Src: /src/xen/xen/common/sysctl.c:266,1
    - Dst: get_outstanding_claims
      Src: /src/xen/xen/common/sysctl.c:271,1
    - Dst: get_upper_mfn_bound
      Src: /src/xen/xen/common/sysctl.c:274,1
    - Dst: arch_do_physinfo
      Src: /src/xen/xen/common/sysctl.c:275,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/sysctl.c:293,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sysctl.c:302,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sysctl.c:303,1
    - Dst: last_node
      Src: /src/xen/xen/common/sysctl.c:305,1
    - Dst: node_online
      Src: /src/xen/xen/common/sysctl.c:319,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/sysctl.c:321,1
    - Dst: avail_node_heap_pages
      Src: /src/xen/xen/common/sysctl.c:322,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:327,1
    - Dst: __node_distance
      Src: /src/xen/xen/common/sysctl.c:338,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:343,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/sysctl.c:358,1
    - Dst: cpumask_last
      Src: /src/xen/xen/common/sysctl.c:373,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sysctl.c:374,1
    - Dst: cpu_present
      Src: /src/xen/xen/common/sysctl.c:382,1
    - Dst: cpu_to_core
      Src: /src/xen/xen/common/sysctl.c:384,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/common/sysctl.c:385,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sysctl.c:386,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:397,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/sysctl.c:410,1
    - Dst: sysctl_cov_op
      Src: /src/xen/xen/common/sysctl.c:421,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sysctl.c:431,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sysctl.c:432,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/sysctl.c:444,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/common/sysctl.c:450,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/common/sysctl.c:451,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/common/sysctl.c:451,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/common/sysctl.c:458,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:460,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/sysctl.c:466,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/sysctl.c:473,1
    - Dst: livepatch_op
      Src: /src/xen/xen/common/sysctl.c:481,1
    - Dst: arch_do_sysctl
      Src: /src/xen/xen/common/sysctl.c:487,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sysctl.c:493,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/sysctl.c:496,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 288
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 500
    functionName: do_sysctl
    functionSourceFile: /src/xen/xen/common/sysctl.c
    functionUses: 41
    functionsReached:
    - sched_adjust_global
    - node_online
    - copy_from_guest
    - cpupool_do_sysctl
    - get_cpu_idle_time
    - cpumask_last
    - arch_do_physinfo
    - copy_to_guest_offset
    - num_online_nodes
    - do_get_pm_info
    - xfree
    - __node_distance
    - cpu_to_core
    - livepatch_op
    - rcu_read_unlock
    - PCI_SBDF
    - perfc_control
    - hypercall_create_continuation
    - avail_domheap_pages_region
    - num_online_cpus
    - read_console_ring
    - guest_handle_is_null
    - node_spanned_pages
    - XEN_GUEST_HANDLE_PARAM
    - copy_to_guest
    - handle_keypress
    - dprintk
    - tb_control
    - pcidevs_lock
    - spin_unlock
    - spinlock_profile_control
    - xsm_sysctl
    - xsm_page_offline
    - scheduler_id
    - mfn_x
    - _mfn
    - last_node
    - avail_node_heap_pages
    - xsm_getdomaininfo
    - getdomaininfo
    - min
    - cpu_present
    - hypercall_preempt_check
    - get_outstanding_claims
    - memset
    - cpumask_weight
    - rcu_read_lock
    - do_pm_op
    - __copy_field_to_guest
    - xmalloc_array
    - cpu_to_node
    - arch_do_sysctl
    - sysctl_cov_op
    - online_page
    - mfn_add
    - cpu_to_socket
    - query_page_offline
    - pcidevs_unlock
    - __copy_to_guest
    - spin_trylock
    - xsm_readconsole
    - copy_from_guest_offset
    - per_cpu
    - pci_get_pdev
    - offline_page
    - get_upper_mfn_bound
    linkageType: ''
    returnType: long
    signature: long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xsm_getdomaininfo
      Src: /src/xen/xen/common/sysctl.c:92,1
    - Dst: getdomaininfo
      Src: /src/xen/xen/common/sysctl.c:95,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sysctl.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 105
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/common/sysctl.c
    functionUses: 8
    functionsReached:
    - copy_to_guest_offset
    - getdomaininfo
    - xsm_getdomaininfo
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/common/rcupdate.c:182,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/rcupdate.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: rcu_barrier_callback
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void rcu_barrier_callback(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_rcu
      Src: /src/xen/xen/common/rcupdate.c:195,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rcupdate.c:197,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/rcupdate.c:199,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rcupdate.c:200,1
    - Dst: smp_mb__before_atomic
      Src: /src/xen/xen/common/rcupdate.c:203,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/rcupdate.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: rcu_barrier_action
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - smp_mb__before_atomic
    - call_rcu
    - process_pending_softirqs
    - atomic_read
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void rcu_barrier_action(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rcupdate.c:211,1
    - Dst: in_irq
      Src: /src/xen/xen/common/rcupdate.c:211,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/rcupdate.c:211,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rcupdate.c:215,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/common/rcupdate.c:215,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/rcupdate.c:217,1
    - Dst: atomic_cmpxchg
      Src: /src/xen/xen/common/rcupdate.c:219,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/rcupdate.c:222,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/rcupdate.c:225,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rcupdate.c:226,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/rcupdate.c:229,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/common/rcupdate.c:230,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rcupdate.c:232,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/rcupdate.c:234,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/rcupdate.c:235,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/rcupdate.c:238,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/rcupdate.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: rcu_barrier
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 1
    functionsReached:
    - atomic_set
    - atomic_cmpxchg
    - cpu_relax
    - put_cpu_maps
    - local_irq_is_enabled
    - ASSERT
    - num_online_cpus
    - process_pending_softirqs
    - in_irq
    - cpumask_raise_softirq
    - get_cpu_maps
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void rcu_barrier(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: rcu_batch_before
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rcu_batch_before(long a, long b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raise_softirq
      Src: /src/xen/xen/common/rcupdate.c:253,1
    - Dst: unlikely
      Src: /src/xen/xen/common/rcupdate.c:254,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/rcupdate.c:260,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/rcupdate.c:260,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/common/rcupdate.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - rdp
    - rcp
    argTypes:
    - struct rcu_data*
    - struct rcu_ctrlblk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: force_quiescent_state
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - unlikely
    - raise_softirq
    - cpumask_andnot
    - cpumask_of
    - cpumask_raise_softirq
    linkageType: ''
    returnType: void
    signature: "void force_quiescent_state(struct rcu_data *rdp,\n                                  struct
      rcu_ctrlblk *rcp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/common/rcupdate.c:284,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:285,1
    - Dst: unlikely
      Src: /src/xen/xen/common/rcupdate.c:288,1
    - Dst: force_quiescent_state
      Src: /src/xen/xen/common/rcupdate.c:290,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/rcupdate.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: call_rcu
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 7
    functionsReached:
    - force_quiescent_state
    - this_cpu
    - unlikely
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: "void call_rcu(struct rcu_head *head,\n              void (*func)(struct
      rcu_head *rcu))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/xen/common/rcupdate.c:307,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/rcupdate.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rdp
    argTypes:
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 322
    functionName: rcu_do_batch
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - func
    - raise_softirq
    linkageType: ''
    returnType: void
    signature: void rcu_do_batch(struct rcu_data *rdp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/common/rcupdate.c:356,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/rcupdate.c:367,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/rcupdate.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - rcp
    argTypes:
    - struct rcu_ctrlblk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 370
    functionName: rcu_start_batch
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - smp_mb
    - cpumask_andnot
    linkageType: ''
    returnType: void
    signature: void rcu_start_batch(struct rcu_ctrlblk *rcp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/rcupdate.c:379,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/rcupdate.c:380,1
    - Dst: rcu_start_batch
      Src: /src/xen/xen/common/rcupdate.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cpu
    - rcp
    argTypes:
    - int
    - struct rcu_ctrlblk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 385
    functionName: cpu_quiet
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - cpumask_clear_cpu
    - cpumask_empty
    - rcu_start_batch
    linkageType: ''
    returnType: void
    signature: void cpu_quiet(int cpu, struct rcu_ctrlblk *rcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/rcupdate.c:411,1
    - Dst: likely
      Src: /src/xen/xen/common/rcupdate.c:416,1
    - Dst: cpu_quiet
      Src: /src/xen/xen/common/rcupdate.c:417,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rcupdate.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - rcp
    - rdp
    argTypes:
    - struct rcu_ctrlblk*
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 420
    functionName: rcu_check_quiescent_state
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - likely
    - cpu_quiet
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void rcu_check_quiescent_state(struct rcu_ctrlblk *rcp,\n                                      struct
      rcu_data *rdp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rcu_batch_before
      Src: /src/xen/xen/common/rcupdate.c:429,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/rcupdate.c:436,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/rcupdate.c:442,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/rcupdate.c:453,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/rcupdate.c:457,1
    - Dst: rcu_start_batch
      Src: /src/xen/xen/common/rcupdate.c:459,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rcupdate.c:460,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/rcupdate.c:463,1
    - Dst: rcu_check_quiescent_state
      Src: /src/xen/xen/common/rcupdate.c:465,1
    - Dst: rcu_do_batch
      Src: /src/xen/xen/common/rcupdate.c:467,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - rcp
    - rdp
    argTypes:
    - struct rcu_ctrlblk*
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 468
    functionName: __rcu_process_callbacks
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - rcu_do_batch
    - spin_unlock
    - local_irq_enable
    - local_irq_disable
    - smp_rmb
    - spin_lock
    - rcu_batch_before
    - rcu_check_quiescent_state
    - rcu_start_batch
    linkageType: ''
    returnType: void
    signature: "void __rcu_process_callbacks(struct rcu_ctrlblk *rcp,\n                                    struct
      rcu_data *rdp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:472,1
    - Dst: __rcu_process_callbacks
      Src: /src/xen/xen/common/rcupdate.c:477,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/rcupdate.c:480,1
    - Dst: rcu_barrier_action
      Src: /src/xen/xen/common/rcupdate.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 470
    functionDepth: 6
    functionLinenumber: 470
    functionLinenumberEnd: 486
    functionName: rcu_process_callbacks
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 1
    functionsReached:
    - rcu_barrier_action
    - __rcu_process_callbacks
    - atomic_read
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_process_callbacks(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rcu_batch_before
      Src: /src/xen/xen/common/rcupdate.c:493,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - rcp
    - rdp
    argTypes:
    - struct rcu_ctrlblk*
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 510
    functionName: __rcu_pending
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - rcu_batch_before
    linkageType: ''
    returnType: int
    signature: int __rcu_pending(struct rcu_ctrlblk *rcp, struct rcu_data *rdp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __rcu_pending
      Src: /src/xen/xen/common/rcupdate.c:514,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/rcupdate.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: rcu_pending
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 1
    functionsReached:
    - __rcu_pending
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int rcu_pending(int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/rcupdate.c:525,1
    - Dst: rcu_pending
      Src: /src/xen/xen/common/rcupdate.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: rcu_needs_cpu
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - per_cpu
    - rcu_pending
    linkageType: ''
    returnType: int
    signature: int rcu_needs_cpu(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:537,1
    - Dst: likely
      Src: /src/xen/xen/common/rcupdate.c:544,1
    - Dst: set_timer
      Src: /src/xen/xen/common/rcupdate.c:547,1
    - Dst: NOW
      Src: /src/xen/xen/common/rcupdate.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 549
    functionName: rcu_idle_timer_start
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - set_timer
    - NOW
    - likely
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_idle_timer_start(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:553,1
    - Dst: likely
      Src: /src/xen/xen/common/rcupdate.c:555,1
    - Dst: timer_is_expired
      Src: /src/xen/xen/common/rcupdate.c:575,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/rcupdate.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 551
    functionDepth: 6
    functionLinenumber: 551
    functionLinenumberEnd: 577
    functionName: rcu_idle_timer_stop
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - timer_is_expired
    - stop_timer
    - likely
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_idle_timer_stop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: perfc_incr
      Src: /src/xen/xen/common/rcupdate.c:581,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/rcupdate.c:583,1
    - Dst: min
      Src: /src/xen/xen/common/rcupdate.c:584,1
    - Dst: max
      Src: /src/xen/xen/common/rcupdate.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: rcu_idle_timer_handler
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - min
    - max
    - cpumask_empty
    linkageType: ''
    returnType: void
    signature: void rcu_idle_timer_handler(void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:593,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/rcupdate.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: rcu_check_callbacks
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_check_callbacks(int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/rcupdate.c:602,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/rcupdate.c:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - this_rdp
    - list
    - tail
    argTypes:
    - struct rcu_data*
    - struct rcu_head*
    - struct rcu_head**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: rcu_move_batch
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - local_irq_disable
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: "void rcu_move_batch(struct rcu_data *this_rdp, struct rcu_head *list,\n
      \                          struct rcu_head **tail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill_timer
      Src: /src/xen/xen/common/rcupdate.c:612,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/rcupdate.c:617,1
    - Dst: cpu_quiet
      Src: /src/xen/xen/common/rcupdate.c:619,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/rcupdate.c:620,1
    - Dst: rcu_move_batch
      Src: /src/xen/xen/common/rcupdate.c:622,1
    - Dst: rcu_move_batch
      Src: /src/xen/xen/common/rcupdate.c:623,1
    - Dst: rcu_move_batch
      Src: /src/xen/xen/common/rcupdate.c:624,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/rcupdate.c:626,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/rcupdate.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - this_rdp
    - rcp
    - rdp
    argTypes:
    - struct rcu_data*
    - struct rcu_ctrlblk*
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 629
    functionName: rcu_offline_cpu
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - local_irq_enable
    - local_irq_disable
    - kill_timer
    - spin_lock
    - rcu_move_batch
    - cpu_quiet
    linkageType: ''
    returnType: void
    signature: "void rcu_offline_cpu(struct rcu_data *this_rdp,\n                            struct
      rcu_ctrlblk *rcp, struct rcu_data *rdp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/rcupdate.c:634,1
    - Dst: init_timer
      Src: /src/xen/xen/common/rcupdate.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - cpu
    - rcp
    - rdp
    argTypes:
    - int
    - struct rcu_ctrlblk*
    - struct rcu_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 643
    functionName: rcu_init_percpu_data
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 0
    functionsReached:
    - memset
    - init_timer
    linkageType: ''
    returnType: void
    signature: "void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,\n                                 struct
      rcu_data *rdp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/rcupdate.c:649,1
    - Dst: rcu_init_percpu_data
      Src: /src/xen/xen/common/rcupdate.c:654,1
    - Dst: rcu_offline_cpu
      Src: /src/xen/xen/common/rcupdate.c:658,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/rcupdate.c:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 645
    functionDepth: 7
    functionLinenumber: 645
    functionLinenumberEnd: 665
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 4
    functionsReached:
    - rcu_init_percpu_data
    - rcu_offline_cpu
    - per_cpu
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/rcupdate.c:673,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/rcupdate.c:675,1
    - Dst: integer_param
      Src: /src/xen/xen/common/rcupdate.c:676,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/rcupdate.c:680,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/rcupdate.c:682,1
    - Dst: printk
      Src: /src/xen/xen/common/rcupdate.c:683,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/rcupdate.c:685,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/rcupdate.c:687,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/rcupdate.c:689,1
    - Dst: cpu_callback
      Src: /src/xen/xen/common/rcupdate.c:690,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/rcupdate.c:691,1
    - Dst: open_softirq
      Src: /src/xen/xen/common/rcupdate.c:692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 693
    functionName: rcu_init
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 2
    functionsReached:
    - cpumask_clear
    - smp_processor_id
    - integer_param
    - register_cpu_notifier
    - cpu_callback
    - open_softirq
    - printk
    - MILLISECS
    linkageType: ''
    returnType: void
    signature: void rcu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/rcupdate.c:701,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/rcupdate.c:701,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/rcupdate.c:702,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/rcupdate.c:711,1
    - Dst: rcu_idle_timer_start
      Src: /src/xen/xen/common/rcupdate.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 699
    functionDepth: 7
    functionLinenumber: 699
    functionLinenumberEnd: 714
    functionName: rcu_idle_enter
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 3
    functionsReached:
    - smp_mb
    - ASSERT
    - rcu_idle_timer_start
    - cpumask_set_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void rcu_idle_enter(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_idle_timer_stop
      Src: /src/xen/xen/common/rcupdate.c:718,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/rcupdate.c:719,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/rcupdate.c:719,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/rcupdate.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 7
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: rcu_idle_exit
    functionSourceFile: /src/xen/xen/common/rcupdate.c
    functionUses: 3
    functionsReached:
    - cpumask_clear_cpu
    - ASSERT
    - cpumask_test_cpu
    - rcu_idle_timer_stop
    linkageType: ''
    returnType: void
    signature: void rcu_idle_exit(unsigned int cpu)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/common/kernel.c:64,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - param
    - val
    argTypes:
    - struct kernel_param*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 68
    functionName: assign_integer_param
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: int
    signature: int assign_integer_param(const struct kernel_param *param, uint64_t
      val)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/kernel.c:99,1
    - Dst: strpbrk
      Src: /src/xen/xen/common/kernel.c:103,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:113,1
    - Dst: strcmp
      Src: /src/xen/xen/common/kernel.c:124,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:127,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:128,1
    - Dst: struct kernel_param*::par::func
      Src: /src/xen/xen/common/kernel.c:132,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/kernel.c:145,1
    - Dst: assign_integer_param
      Src: /src/xen/xen/common/kernel.c:148,1
    - Dst: simple_strtoll
      Src: /src/xen/xen/common/kernel.c:150,1
    - Dst: parse_bool
      Src: /src/xen/xen/common/kernel.c:155,1
    - Dst: assign_integer_param
      Src: /src/xen/xen/common/kernel.c:161,1
    - Dst: assign_integer_param
      Src: /src/xen/xen/common/kernel.c:164,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kernel.c:166,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:176,1
    - Dst: struct kernel_param*::par::func
      Src: /src/xen/xen/common/kernel.c:179,1
    - Dst: BUG
      Src: /src/xen/xen/common/kernel.c:184,1
    - Dst: printk
      Src: /src/xen/xen/common/kernel.c:194,1
    - Dst: printk
      Src: /src/xen/xen/common/kernel.c:200,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 93
    argCount: 3
    argNames:
    - cmdline
    - start
    - end
    argTypes:
    - char*
    - struct kernel_param*
    - struct kernel_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 206
    functionName: parse_params
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 0
    functionsReached:
    - parse_size_and_unit
    - BUG
    - assign_integer_param
    - strpbrk
    - safe_strcpy
    - strchr
    - strncmp
    - strlcpy
    - strlen
    - struct kernel_param*::par::func
    - simple_strtoll
    - printk
    - parse_bool
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int parse_params(\n    const char *cmdline, const struct kernel_param
      *start,\n    const struct kernel_param *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_params
      Src: /src/xen/xen/common/kernel.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: _cmdline_parse
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 0
    functionsReached:
    - parse_params
    linkageType: ''
    returnType: void
    signature: void _cmdline_parse(const char *cmdline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/kernel.c:222,1
    - Dst: _cmdline_parse
      Src: /src/xen/xen/common/kernel.c:223,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:230,1
    - Dst: _cmdline_parse
      Src: /src/xen/xen/common/kernel.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 233
    functionName: cmdline_parse
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 4
    functionsReached:
    - _cmdline_parse
    - safe_strcpy
    - printk
    linkageType: ''
    returnType: void
    signature: void cmdline_parse(const char *cmdline)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/kernel.c:237,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:237,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:249,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:251,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:256,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:258,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:263,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:268,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:273,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:278,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 284
    functionName: parse_bool
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 19
    functionsReached:
    - ASSERT
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int parse_bool(const char *s, const char *e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:289,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/kernel.c:294,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:294,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:295,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:298,1
    - Dst: parse_bool
      Src: /src/xen/xen/common/kernel.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - name
    - s
    - e
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 323
    functionName: parse_boolean
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 17
    functionsReached:
    - ASSERT
    - strncmp
    - strlen
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_boolean(const char *name, const char *s, const char *e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/kernel.c:332,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:332,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:333,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kernel.c:339,1
    - Dst: simple_strtoll
      Src: /src/xen/xen/common/kernel.c:342,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - name
    - s
    - e
    - val
    argTypes:
    - char*
    - char*
    - char*
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 351
    functionName: parse_signed_integer
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - strlen
    - strncmp
    - simple_strtoll
    linkageType: ''
    returnType: int
    signature: "int parse_signed_integer(const char *name, const char *s, const char
      *e,\n                                long long *val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 2
    argNames:
    - frag
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 372
    functionName: cmdline_strcmp
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmdline_strcmp(const char *frag, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/common/kernel.c:392,1
    - Dst: snprintf
      Src: /src/xen/xen/common/kernel.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 406
    functionName: print_tainted
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 2
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: char *print_tainted(char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - taint
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: add_taint
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_taint(unsigned int taint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: do_presmp_initcalls
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_presmp_initcalls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: do_initcalls
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_initcalls(void)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: xen_major_version
      Src: /src/xen/xen/common/kernel.c:467,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/common/kernel.c:468,1
    - Dst: hypfs_add_dir
      Src: /src/xen/xen/common/kernel.c:469,1
    - Dst: hypfs_string_set_reference
      Src: /src/xen/xen/common/kernel.c:470,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/common/kernel.c:470,1
    - Dst: hypfs_add_leaf
      Src: /src/xen/xen/common/kernel.c:471,1
    - Dst: hypfs_add_leaf
      Src: /src/xen/xen/common/kernel.c:472,1
    - Dst: hypfs_add_leaf
      Src: /src/xen/xen/common/kernel.c:473,1
    - Dst: hypfs_add_leaf
      Src: /src/xen/xen/common/kernel.c:479,1
    - Dst: __initcall
      Src: /src/xen/xen/common/kernel.c:484,1
    - Dst: HYPFS_DIR_INIT
      Src: /src/xen/xen/common/kernel.c:486,1
    - Dst: param_init
      Src: /src/xen/xen/common/kernel.c:488,1
    - Dst: hypfs_add_dir
      Src: /src/xen/xen/common/kernel.c:492,1
    - Dst: if
      Src: /src/xen/xen/common/kernel.c:496,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:499,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/common/kernel.c:524,1
    - Dst: xen_changeset
      Src: /src/xen/xen/common/kernel.c:528,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/kernel.c:540,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:544,1
    - Dst: have_len
      Src: /src/xen/xen/common/kernel.c:546,1
    - Dst: KB
      Src: /src/xen/xen/common/kernel.c:547,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/kernel.c:550,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kernel.c:553,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/kernel.c:559,1
    - Dst: xsm_xen_version
      Src: /src/xen/xen/common/kernel.c:568,1
    - Dst: xen_major_version
      Src: /src/xen/xen/common/kernel.c:573,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/common/kernel.c:573,1
    - Dst: memset
      Src: /src/xen/xen/common/kernel.c:579,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:580,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:580,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/common/kernel.c:580,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:581,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:581,1
    - Dst: memset
      Src: /src/xen/xen/common/kernel.c:590,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:591,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:591,1
    - Dst: xen_compiler
      Src: /src/xen/xen/common/kernel.c:591,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:592,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:592,1
    - Dst: xen_compile_by
      Src: /src/xen/xen/common/kernel.c:592,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:593,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:593,1
    - Dst: xen_compile_domain
      Src: /src/xen/xen/common/kernel.c:593,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:594,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:594,1
    - Dst: xen_compile_date
      Src: /src/xen/xen/common/kernel.c:594,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:595,1
    - Dst: memset
      Src: /src/xen/xen/common/kernel.c:604,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:606,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:608,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:608,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/common/kernel.c:621,1
    - Dst: HYPERVISOR_COMPAT_VIRT_START
      Src: /src/xen/xen/common/kernel.c:622,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:626,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/kernel.c:641,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/common/kernel.c:641,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:646,1
    - Dst: memset
      Src: /src/xen/xen/common/kernel.c:657,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/kernel.c:658,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:658,1
    - Dst: xen_changeset
      Src: /src/xen/xen/common/kernel.c:658,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:659,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:659,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kernel.c:669,1
    - Dst: CONFIG_X86
      Src: /src/xen/xen/common/kernel.c:676,1
    - Dst: VM_ASSIST
      Src: /src/xen/xen/common/kernel.c:680,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/kernel.c:682,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/kernel.c:686,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/common/kernel.c:692,1
    - Dst: has_pirq
      Src: /src/xen/xen/common/kernel.c:699,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/kernel.c:702,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/kernel.c:702,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/kernel.c:711,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/kernel.c:719,1
    - Dst: memset
      Src: /src/xen/xen/common/kernel.c:726,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:726,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/kernel.c:728,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:728,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:728,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:730,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:731,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kernel.c:738,1
    - Dst: strlen
      Src: /src/xen/xen/common/kernel.c:741,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:741,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/kernel.c:743,1
    - Dst: xen_deny
      Src: /src/xen/xen/common/kernel.c:743,1
    - Dst: xenver_varbuf_op
      Src: /src/xen/xen/common/kernel.c:755,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 103
    argCount: 1
    argNames:
    - HYPFS_DIR_INIT
    argTypes:
    - buildinfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 759
    functionName: HYPFS_DIR_INIT
    functionSourceFile: /src/xen/xen/common/kernel.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - xen_extra_version
    - hypfs_add_leaf
    - IS_ENABLED
    - copy_to_guest_offset
    - BUILD_BUG_ON
    - KB
    - strlen
    - xen_deny
    - hypfs_add_dir
    - is_pv_vcpu
    - __initcall
    - ARRAY_SIZE
    - HYPERVISOR_COMPAT_VIRT_START
    - xen_compile_date
    - if
    - xsm_xen_version
    - xen_compile_by
    - safe_strcpy
    - HYPFS_DIR_INIT
    - hypfs_string_set_reference
    - CONFIG_X86
    - guest_handle_is_null
    - copy_to_guest
    - has_pirq
    - is_domain_direct_mapped
    - xen_compile_domain
    - have_len
    - VM_ASSIST
    - is_hardware_domain
    - xenver_varbuf_op
    - param_init
    - memset
    - xen_compiler
    - ASSERT_UNREACHABLE
    - xen_major_version
    - xen_changeset
    - xen_minor_version
    - paging_mode_translate
    - is_pv_domain
    - __copy_to_guest
    linkageType: ''
    returnType: void
    signature: "void HYPFS_DIR_INIT(buildinfo, \"buildinfo\");\nstatic HYPFS_DIR_INIT(compileinfo,
      \"compileinfo\");\nstatic HYPFS_DIR_INIT(version, \"version\");\nstatic HYPFS_UINT_INIT(major,
      \"major\", major_version);\nstatic HYPFS_UINT_INIT(minor, \"minor\", minor_version);\nstatic
      HYPFS_STRING_INIT(changeset, \"changeset\");\nstatic HYPFS_STRING_INIT(compiler,
      \"compiler\");\nstatic HYPFS_STRING_INIT(compile_by, \"compile_by\");\nstatic
      HYPFS_STRING_INIT(compile_date, \"compile_date\");\nstatic HYPFS_STRING_INIT(compile_domain,
      \"compile_domain\");\nstatic HYPFS_STRING_INIT(extra, \"extra\");\n\n#ifdef
      CONFIG_HYPFS_CONFIG\nstatic HYPFS_STRING_INIT(config, \"config\");\n#endif\n\nstatic
      int __init cf_check buildinfo_init(void)\n{\n    hypfs_add_dir(&hypfs_root,
      &buildinfo, true);\n\n    hypfs_string_set_reference(&changeset, xen_changeset());\n
      \   hypfs_add_leaf(&buildinfo, &changeset, true);\n\n    hypfs_add_dir(&buildinfo,
      &compileinfo, true);\n    hypfs_string_set_reference(&compiler, xen_compiler());\n
      \   hypfs_string_set_reference(&compile_by, xen_compile_by());\n    hypfs_string_set_reference(&compile_date,
      xen_compile_date());\n    hypfs_string_set_reference(&compile_domain, xen_compile_domain());\n
      \   hypfs_add_leaf(&compileinfo, &compiler, true);\n    hypfs_add_leaf(&compileinfo,
      &compile_by, true);\n    hypfs_add_leaf(&compileinfo, &compile_date, true);\n
      \   hypfs_add_leaf(&compileinfo, &compile_domain, true);\n\n    major_version
      = xen_major_version();\n    minor_version = xen_minor_version();\n    hypfs_add_dir(&buildinfo,
      &version, true);\n    hypfs_string_set_reference(&extra, xen_extra_version());\n
      \   hypfs_add_leaf(&version, &extra, true);\n    hypfs_add_leaf(&version, &major,
      true);\n    hypfs_add_leaf(&version, &minor, true);\n\n#ifdef CONFIG_HYPFS_CONFIG\n
      \   config.e.encoding = XEN_HYPFS_ENC_GZIP;\n    config.e.size = xen_config_data_size;\n
      \   config.u.content = xen_config_data;\n    hypfs_add_leaf(&buildinfo, &config,
      true);\n#endif\n\n    return 0;\n}\n__initcall(buildinfo_init);\n\nstatic HYPFS_DIR_INIT(params_dir,
      \"params\");\n\nstatic int __init cf_check param_init(void)\n{\n    struct param_hypfs
      *param;\n\n    hypfs_add_dir(&hypfs_root, &params_dir, true);\n\n    for ( param
      = __paramhypfs_start; param < __paramhypfs_end; param++ )\n    {\n        if
      ( param->init_leaf )\n            param->init_leaf(param);\n        else if
      ( param->hypfs.e.type == XEN_HYPFS_TYPE_STRING )\n            param->hypfs.e.size
      = strlen(param->hypfs.u.content) + 1;\n        hypfs_add_leaf(&params_dir, &param->hypfs,
      true);\n    }\n\n    return 0;\n}\n__initcall(param_init);\n#endif\n\nstatic
      long xenver_varbuf_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)\n{\n    struct
      xen_varbuf user_str;\n    const char *str = NULL;\n    size_t sz;\n\n    switch
      ( cmd )\n    {\n    case XENVER_build_id:\n        str = xen_build_id;\n        sz
      \ = xen_build_id_len;\n        if ( !sz )\n            return -ENODATA;\n        goto
      have_len;\n\n    case XENVER_extraversion2:\n        str = xen_extra_version();\n
      \       break;\n\n    case XENVER_changeset2:\n        str = xen_changeset();\n
      \       break;\n\n    case XENVER_commandline2:\n        str = saved_cmdline;\n
      \       break;\n\n    case XENVER_capabilities2:\n        str = xen_cap_info;\n
      \       break;\n\n    default:\n        ASSERT_UNREACHABLE();\n        return
      -ENODATA;\n    }\n\n    sz = strlen(str);\n\n have_len:\n    if ( sz > KB(64)
      ) /* Arbitrary limit.  Avoid long-running operations. */\n        return -E2BIG;\n\n
      \   if ( guest_handle_is_null(arg) ) /* Length request */\n        return sz;\n\n
      \   if ( copy_from_guest(&user_str, arg, 1) )\n        return -EFAULT;\n\n    if
      ( sz > user_str.len )\n        return -ENOBUFS;\n\n    if ( copy_to_guest_offset(arg,
      offsetof(struct xen_varbuf, buf),\n                              str, sz) )\n
      \       return -EFAULT;\n\n    return sz;\n}\n\nlong do_xen_version(int cmd,
      XEN_GUEST_HANDLE_PARAM(void) arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device.c:23,1
    - Dst: dt_device_is_available
      Src: /src/xen/xen/common/device.c:25,1
    - Dst: dt_device_for_passthrough
      Src: /src/xen/xen/common/device.c:25,1
    - Dst: dt_match_node
      Src: /src/xen/xen/common/device.c:33,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device.c:35,1
    - Dst: struct device_desc*::init
      Src: /src/xen/xen/common/device.c:37,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - dev
    - class
    - data
    argTypes:
    - struct dt_device_node*
    - enum device_class
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: device_init
    functionSourceFile: /src/xen/xen/common/device.c
    functionUses: 6
    functionsReached:
    - dt_device_is_available
    - struct device_desc*::init
    - dt_match_node
    - ASSERT
    - dt_device_for_passthrough
    linkageType: ''
    returnType: int
    signature: "int device_init(struct dt_device_node *dev, enum device_class class,\n
      \                      const void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device.c:48,1
    - Dst: dt_match_node
      Src: /src/xen/xen/common/device.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: device_get_class
    functionSourceFile: /src/xen/xen/common/device.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - dt_match_node
    linkageType: ''
    returnType: enum device_class
    signature: enum device_class device_get_class(const struct dt_device_node *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device.c:74,1
    - Dst: struct acpi_device_desc*::init
      Src: /src/xen/xen/common/device.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - class
    - data
    - class_type
    argTypes:
    - enum device_class
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: acpi_device_init
    functionSourceFile: /src/xen/xen/common/device.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - struct acpi_device_desc*::init
    linkageType: ''
    returnType: int
    signature: int acpi_device_init(enum device_class class, const void *data, int
      class_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/domid.c:34,1
    - Dst: __test_and_set_bit
      Src: /src/xen/xen/common/domid.c:39,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/common/domid.c:52,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/common/domid.c:56,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domid.c:59,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/domid.c:62,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domid.c:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 72
    functionName: domid_alloc
    functionSourceFile: /src/xen/xen/common/domid.c
    functionUses: 4
    functionsReached:
    - spin_unlock
    - __set_bit
    - find_next_zero_bit
    - ASSERT
    - spin_lock
    - __test_and_set_bit
    linkageType: ''
    returnType: domid_t
    signature: domid_t domid_alloc(domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/domid.c:78,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/domid.c:80,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/domid.c:81,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/domid.c:82,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/domid.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - domid
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: domid_free
    functionSourceFile: /src/xen/xen/common/domid.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - spin_unlock
    - __test_and_clear_bit
    - spin_lock
    linkageType: ''
    returnType: void
    signature: void domid_free(domid_t domid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LIST_ENTRY_HEAD
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY_HEAD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: LIST_ENTRY_CORE
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY_CORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: LIST_ENTRY_INIT
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY_INIT()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/virtual_region.c:83,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/common/virtual_region.c:84,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/virtual_region.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 96
    functionName: find_text_region
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 5
    functionsReached:
    - rcu_read_unlock
    - list_for_each_entry_rcu
    - rcu_read_lock
    linkageType: ''
    returnType: struct virtual_region
    signature: struct virtual_region *find_text_region(unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/virtual_region.c:106,1
    - Dst: list_del_rcu
      Src: /src/xen/xen/common/virtual_region.c:107,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/virtual_region.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct virtual_region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: remove_virtual_region
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - list_del_rcu
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void remove_virtual_region(struct virtual_region *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/virtual_region.c:116,1
    - Dst: list_add_tail_rcu
      Src: /src/xen/xen/common/virtual_region.c:117,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/virtual_region.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct virtual_region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: register_virtual_region
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - list_add_tail_rcu
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void register_virtual_region(struct virtual_region *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: remove_virtual_region
      Src: /src/xen/xen/common/virtual_region.c:123,1
    - Dst: rcu_barrier
      Src: /src/xen/xen/common/virtual_region.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct virtual_region*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: unregister_virtual_region
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 0
    functionsReached:
    - remove_virtual_region
    - rcu_barrier
    linkageType: ''
    returnType: void
    signature: void unregister_virtual_region(struct virtual_region *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/virtual_region.c:134,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/common/virtual_region.c:135,1
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/common/virtual_region.c:137,1
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/common/virtual_region.c:141,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/virtual_region.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: relax_virtual_region_perms
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - modify_xen_mappings_lite
    - list_for_each_entry_rcu
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void relax_virtual_region_perms(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/virtual_region.c:152,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/common/virtual_region.c:153,1
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/common/virtual_region.c:155,1
    - Dst: modify_xen_mappings_lite
      Src: /src/xen/xen/common/virtual_region.c:159,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/virtual_region.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: tighten_virtual_region_perms
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - modify_xen_mappings_lite
    - list_for_each_entry_rcu
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void tighten_virtual_region_perms(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/virtual_region.c:170,1
    - Dst: remove_virtual_region
      Src: /src/xen/xen/common/virtual_region.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: unregister_init_virtual_region
    functionSourceFile: /src/xen/xen/common/virtual_region.c
    functionUses: 2
    functionsReached:
    - remove_virtual_region
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void unregister_init_virtual_region(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/mem_access.c:39,1
    - Dst: rcu_lock_live_remote_domain_by_id
      Src: /src/xen/xen/common/mem_access.c:42,1
    - Dst: p2m_mem_access_sanity_check
      Src: /src/xen/xen/common/mem_access.c:47,1
    - Dst: xsm_mem_access
      Src: /src/xen/xen/common/mem_access.c:50,1
    - Dst: unlikely
      Src: /src/xen/xen/common/mem_access.c:55,1
    - Dst: vm_event_check_ring
      Src: /src/xen/xen/common/mem_access.c:55,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/common/mem_access.c:66,1
    - Dst: p2m_set_mem_access
      Src: /src/xen/xen/common/mem_access.c:69,1
    - Dst: _gfn
      Src: /src/xen/xen/common/mem_access.c:69,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/mem_access.c:73,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/mem_access.c:74,1
    - Dst: p2m_set_mem_access_multi
      Src: /src/xen/xen/common/mem_access.c:80,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/mem_access.c:84,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/mem_access.c:85,1
    - Dst: unlikely
      Src: /src/xen/xen/common/mem_access.c:95,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/common/mem_access.c:99,1
    - Dst: p2m_get_mem_access
      Src: /src/xen/xen/common/mem_access.c:102,1
    - Dst: _gfn
      Src: /src/xen/xen/common/mem_access.c:102,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/mem_access.c:107,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/mem_access.c:118,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 120
    functionName: mem_access_memop
    functionSourceFile: /src/xen/xen/common/mem_access.c
    functionUses: 0
    functionsReached:
    - p2m_get_mem_access
    - p2m_mem_access_sanity_check
    - copy_from_guest
    - domain_get_maximum_gpfn
    - _gfn
    - vm_event_check_ring
    - p2m_set_mem_access
    - ASSERT
    - hypercall_create_continuation
    - p2m_set_mem_access_multi
    - unlikely
    - rcu_unlock_domain
    - xsm_mem_access
    - rcu_lock_live_remote_domain_by_id
    - __copy_field_to_guest
    linkageType: ''
    returnType: int
    signature: "int mem_access_memop(unsigned long cmd,\n                     XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t)
      arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/dm.c:29,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/dm.c:33,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/dm.c:33,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/dm.c:35,1
    - Dst: dm_op
      Src: /src/xen/xen/common/dm.c:38,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/dm.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - domid
    - nr_bufs
    argTypes:
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: do_dm_op
    functionSourceFile: /src/xen/xen/common/dm.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - ARRAY_SIZE
    - hypercall_create_continuation
    - dm_op
    - copy_from_guest_offset
    linkageType: ''
    returnType: long
    signature: "long do_dm_op(\n    domid_t domid, unsigned int nr_bufs,\n    XEN_GUEST_HANDLE_PARAM(xen_dm_op_buf_t)
      bufs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_rmb
      Src: /src/xen/xen/common/event_fifo.c:63,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_fifo.c:65,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/event_fifo.c:72,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/event_fifo.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: evtchn_fifo_word_from_port
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - smp_rmb
    - unlikely
    linkageType: ''
    returnType: event_word_t
    signature: "event_word_t *evtchn_fifo_word_from_port(const struct domain *d,\n
      \                                                      unsigned int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:91,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:92,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_fifo.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: evtchn_fifo_init
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - gdprintk
    - guest_test_bit
    linkageType: ''
    returnType: void
    signature: void evtchn_fifo_init(struct domain *d, struct evtchn *evtchn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: link::link
      Src: /src/xen/xen/common/event_fifo.c:105,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/event_fifo.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - word
    - w
    - link
    argTypes:
    - event_word_t*
    - event_word_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: try_set_link
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - link::link
    - cmpxchg
    linkageType: ''
    returnType: int
    signature: int try_set_link(event_word_t *word, event_word_t *w, uint32_t link)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_fifo.c:134,1
    - Dst: try_set_link
      Src: /src/xen/xen/common/event_fifo.c:136,1
    - Dst: guest_set_bit
      Src: /src/xen/xen/common/event_fifo.c:141,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_fifo.c:143,1
    - Dst: try_set_link
      Src: /src/xen/xen/common/event_fifo.c:147,1
    - Dst: guest_clear_bit
      Src: /src/xen/xen/common/event_fifo.c:151,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_fifo.c:155,1
    - Dst: guest_clear_bit
      Src: /src/xen/xen/common/event_fifo.c:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - d
    - word
    - link
    argTypes:
    - struct domain*
    - event_word_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 159
    functionName: evtchn_fifo_set_link
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - guest_set_bit
    - gdprintk
    - read_atomic
    - try_set_link
    - guest_clear_bit
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_fifo_set_link(struct domain *d, event_word_t *word,\n
      \                                uint32_t link)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:174,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_fifo.c:180,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_fifo.c:199,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/event_fifo.c:206,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/event_fifo.c:209,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/event_fifo.c:210,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/event_fifo.c:214,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/event_fifo.c:215,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_fifo.c:218,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/event_fifo.c:225,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/event_fifo.c:226,1
    - Dst: gprintk
      Src: /src/xen/xen/common/event_fifo.c:232,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_fifo.c:243,1
    - Dst: printk
      Src: /src/xen/xen/common/event_fifo.c:245,1
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_fifo.c:250,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:255,1
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_fifo.c:260,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_fifo.c:277,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/event_fifo.c:279,1
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:298,1
    - Dst: evtchn_fifo_set_link
      Src: /src/xen/xen/common/event_fifo.c:299,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_fifo.c:302,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/event_fifo.c:308,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/event_fifo.c:309,1
    - Dst: guest_test_and_set_bit
      Src: /src/xen/xen/common/event_fifo.c:313,1
    - Dst: vcpu_mark_events_pending
      Src: /src/xen/xen/common/event_fifo.c:315,1
    - Dst: evtchn_check_pollers
      Src: /src/xen/xen/common/event_fifo.c:318,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - v
    - evtchn
    argTypes:
    - struct vcpu*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 319
    functionName: evtchn_fifo_set_pending
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - guest_test_bit
    - spin_lock_irqsave
    - write_atomic
    - spin_unlock_irqrestore
    - vcpu_mark_events_pending
    - evtchn_fifo_word_from_port
    - spin_lock
    - read_atomic
    - gprintk
    - printk
    - unlikely
    - guest_test_and_set_bit
    - evtchn_fifo_set_link
    - evtchn_check_pollers
    linkageType: ''
    returnType: void
    signature: "void evtchn_fifo_set_pending(\n    struct vcpu *v, struct evtchn *evtchn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:326,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_fifo.c:327,1
    - Dst: guest_clear_bit
      Src: /src/xen/xen/common/event_fifo.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: evtchn_fifo_clear_pending
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - guest_clear_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void evtchn_fifo_clear_pending(\n    struct domain *d, struct evtchn
      *evtchn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:344,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_fifo.c:345,1
    - Dst: guest_clear_bit
      Src: /src/xen/xen/common/event_fifo.c:348,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:351,1
    - Dst: evtchn_fifo_set_pending
      Src: /src/xen/xen/common/event_fifo.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 353
    functionName: evtchn_fifo_unmask
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - guest_test_bit
    - guest_clear_bit
    - evtchn_fifo_word_from_port
    - unlikely
    - evtchn_fifo_set_pending
    linkageType: ''
    returnType: void
    signature: void evtchn_fifo_unmask(struct domain *d, struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:358,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: evtchn_fifo_is_pending
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - guest_test_bit
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_fifo_is_pending(\n    const struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:366,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: evtchn_fifo_is_masked
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - guest_test_bit
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_fifo_is_masked(\n    const struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:374,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: evtchn_fifo_is_busy
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - guest_test_bit
    linkageType: ''
    returnType: bool
    signature: "bool evtchn_fifo_is_busy(\n    const struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - d
    - evtchn
    - priority
    argTypes:
    - struct domain*
    - struct evtchn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: evtchn_fifo_set_priority
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int evtchn_fifo_set_priority(\n    struct domain *d, struct evtchn
      *evtchn, unsigned int priority)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_fifo_word_from_port
      Src: /src/xen/xen/common/event_fifo.c:400,1
    - Dst: printk
      Src: /src/xen/xen/common/event_fifo.c:402,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:403,1
    - Dst: printk
      Src: /src/xen/xen/common/event_fifo.c:404,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:404,1
    - Dst: printk
      Src: /src/xen/xen/common/event_fifo.c:407,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - d
    - evtchn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: evtchn_fifo_print_state
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - evtchn_fifo_word_from_port
    - guest_test_bit
    - printk
    linkageType: ''
    returnType: void
    signature: "void evtchn_fifo_print_state(\n    struct domain *d, const struct
      evtchn *evtchn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/common/event_fifo.c:427,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/event_fifo.c:431,1
    - Dst: put_page
      Src: /src/xen/xen/common/event_fifo.c:433,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/common/event_fifo.c:437,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/event_fifo.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - d
    - gfn
    - virt
    argTypes:
    - struct domain*
    - uint64_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 444
    functionName: map_guest_page
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 6
    functionsReached:
    - put_page_and_type
    - get_page_type
    - put_page
    - __map_domain_page_global
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: int map_guest_page(struct domain *d, uint64_t gfn, void **virt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/event_fifo.c:454,1
    - Dst: domain_page_map_to_mfn
      Src: /src/xen/xen/common/event_fifo.c:454,1
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/event_fifo.c:456,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/event_fifo.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - virt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: unmap_guest_page
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 4
    functionsReached:
    - unmap_domain_page_global
    - put_page_and_type
    - domain_page_map_to_mfn
    - mfn_to_page
    linkageType: ''
    returnType: void
    signature: void unmap_guest_page(void *virt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/event_fifo.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - q
    - i
    argTypes:
    - struct vcpu*
    - struct evtchn_fifo_queue*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: init_queue
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    linkageType: ''
    returnType: void
    signature: "void init_queue(struct vcpu *v, struct evtchn_fifo_queue *q,\n                       unsigned
      int i)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/event_fifo.c:472,1
    - Dst: init_queue
      Src: /src/xen/xen/common/event_fifo.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: setup_control_block
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - init_queue
    - xzalloc
    linkageType: ''
    returnType: int
    signature: int setup_control_block(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_guest_page
      Src: /src/xen/xen/common/event_fifo.c:494,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/event_fifo.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - v
    - gfn
    - offset
    argTypes:
    - struct vcpu*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 509
    functionName: map_control_block
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - map_guest_page
    - smp_wmb
    linkageType: ''
    returnType: int
    signature: int map_control_block(struct vcpu *v, uint64_t gfn, uint32_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_guest_page
      Src: /src/xen/xen/common/event_fifo.c:516,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_fifo.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: cleanup_control_block
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - unmap_guest_page
    - xfree
    linkageType: ''
    returnType: void
    signature: void cleanup_control_block(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/event_fifo.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 531
    functionName: setup_event_array
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: int
    signature: int setup_event_array(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_guest_page
      Src: /src/xen/xen/common/event_fifo.c:541,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_fifo.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: cleanup_event_array
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - unmap_guest_page
    - xfree
    linkageType: ''
    returnType: void
    signature: void cleanup_event_array(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_fifo.c:560,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_fifo.c:563,1
    - Dst: guest_test_bit
      Src: /src/xen/xen/common/event_fifo.c:565,1
    - Dst: shared_info
      Src: /src/xen/xen/common/event_fifo.c:565,1
    - Dst: evtchn_fifo_set_priority
      Src: /src/xen/xen/common/event_fifo.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - d
    - prev_evtchns
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 570
    functionName: setup_ports
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - guest_test_bit
    - port_is_valid
    - shared_info
    - evtchn_fifo_set_priority
    - evtchn_from_port
    linkageType: ''
    returnType: void
    signature: void setup_ports(struct domain *d, unsigned int prev_evtchns)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/event_fifo.c:587,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/event_fifo.c:598,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_fifo.c:605,1
    - Dst: max_evtchns
      Src: /src/xen/xen/common/event_fifo.c:615,1
    - Dst: setup_control_block
      Src: /src/xen/xen/common/event_fifo.c:618,1
    - Dst: setup_event_array
      Src: /src/xen/xen/common/event_fifo.c:623,1
    - Dst: map_control_block
      Src: /src/xen/xen/common/event_fifo.c:631,1
    - Dst: setup_ports
      Src: /src/xen/xen/common/event_fifo.c:636,1
    - Dst: map_control_block
      Src: /src/xen/xen/common/event_fifo.c:639,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_fifo.c:641,1
    - Dst: evtchn_fifo_destroy
      Src: /src/xen/xen/common/event_fifo.c:646,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_fifo.c:647,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - init_control
    argTypes:
    - struct evtchn_init_control*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 572
    functionDepth: 3
    functionLinenumber: 572
    functionLinenumberEnd: 649
    functionName: evtchn_fifo_init_control
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - array_index_nospec
    - domain_vcpu
    - max_evtchns
    - write_unlock
    - setup_event_array
    - evtchn_fifo_destroy
    - map_control_block
    - setup_control_block
    - write_lock
    - setup_ports
    linkageType: ''
    returnType: int
    signature: int evtchn_fifo_init_control(struct evtchn_init_control *init_control)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_control_block
      Src: /src/xen/xen/common/event_fifo.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 48
    functionsReached:
    - setup_control_block
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, vcb )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: map_guest_page
      Src: /src/xen/xen/common/event_fifo.c:662,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/event_fifo.c:669,1
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_fifo.c:681,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_fifo.c:684,1
    - Dst: evtchn_fifo_set_pending
      Src: /src/xen/xen/common/event_fifo.c:686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - d
    - gfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 690
    functionName: add_page_to_event_array
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - map_guest_page
    - port_is_valid
    - smp_wmb
    - evtchn_from_port
    - evtchn_fifo_set_pending
    linkageType: ''
    returnType: int
    signature: int add_page_to_event_array(struct domain *d, unsigned long gfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/event_fifo.c:700,1
    - Dst: add_page_to_event_array
      Src: /src/xen/xen/common/event_fifo.c:701,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_fifo.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expand_array
    argTypes:
    - struct evtchn_expand_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: evtchn_fifo_expand_array
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 0
    functionsReached:
    - add_page_to_event_array
    - write_lock
    - write_unlock
    linkageType: ''
    returnType: int
    signature: int evtchn_fifo_expand_array(const struct evtchn_expand_array *expand_array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/event_fifo.c:711,1
    - Dst: cleanup_control_block
      Src: /src/xen/xen/common/event_fifo.c:712,1
    - Dst: cleanup_event_array
      Src: /src/xen/xen/common/event_fifo.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: evtchn_fifo_destroy
    functionSourceFile: /src/xen/xen/common/event_fifo.c
    functionUses: 1
    functionsReached:
    - for_each_vcpu
    - cleanup_event_array
    - cleanup_control_block
    linkageType: ''
    returnType: void
    signature: void evtchn_fifo_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/kimage.c:75,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/common/kimage.c:79,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/kimage.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - memflags
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: kimage_alloc_zeroed_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - alloc_domheap_page
    - page_to_mfn
    - clear_domain_page
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *kimage_alloc_zeroed_page(unsigned memflags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/kimage.c:94,1
    - Dst: typeof
      Src: /src/xen/xen/common/kimage.c:94,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/kimage.c:105,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/kimage.c:106,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/kimage.c:107,1
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/common/kimage.c:174,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/kimage.c:174,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kimage.c:177,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:178,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:179,1
    - Dst: kimage_alloc_control_page
      Src: /src/xen/xen/common/kimage.c:185,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kimage.c:188,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:188,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:189,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:193,1
    - Dst: kimage_free
      Src: /src/xen/xen/common/kimage.c:202,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 5
    argNames:
    - rimage
    - entry
    - nr_segments
    - segments
    - type
    argTypes:
    - struct kexec_image**
    - paddr_t
    - unsigned long
    - xen_kexec_segment_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 207
    functionName: do_kimage_alloc
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - machine_kexec_add_page
    - kimage_free
    - typeof
    - INIT_PAGE_LIST_HEAD
    - kimage_alloc_control_page
    - page_to_maddr
    - MEMF_bits
    linkageType: ''
    returnType: int
    signature: "int do_kimage_alloc(struct kexec_image **rimage, paddr_t entry,\n
      \                          unsigned long nr_segments,\n                           xen_kexec_segment_t
      *segments, uint8_t type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kimage_alloc
      Src: /src/xen/xen/common/kimage.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rimage
    - entry
    - nr_segments
    - segments
    argTypes:
    - struct kexec_image**
    - paddr_t
    - unsigned long
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: kimage_normal_alloc
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - do_kimage_alloc
    linkageType: ''
    returnType: int
    signature: "int kimage_normal_alloc(struct kexec_image **rimage, paddr_t entry,\n
      \                              unsigned long nr_segments,\n                               xen_kexec_segment_t
      *segments)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/kimage.c:241,1
    - Dst: do_kimage_alloc
      Src: /src/xen/xen/common/kimage.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - rimage
    - entry
    - nr_segments
    - segments
    argTypes:
    - struct kexec_image**
    - paddr_t
    - unsigned long
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 255
    functionName: kimage_crash_alloc
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - do_kimage_alloc
    - guest_handle_is_null
    linkageType: ''
    returnType: int
    signature: "int kimage_crash_alloc(struct kexec_image **rimage, paddr_t entry,\n
      \                             unsigned long nr_segments,\n                              xen_kexec_segment_t
      *segments)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - image
    - start
    - end
    argTypes:
    - struct kexec_image*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: kimage_is_destination_range
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int kimage_is_destination_range(struct kexec_image *image,\n                                       paddr_t
      start,\n                                       paddr_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_list_del
      Src: /src/xen/xen/common/kimage.c:282,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/kimage.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct page_list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: kimage_free_page_list
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - free_domheap_page
    - page_list_del
    linkageType: ''
    returnType: void
    signature: void kimage_free_page_list(struct page_list_head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: page_list_del
      Src: /src/xen/xen/common/kimage.c:282,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/kimage.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: page_list_for_each_safe
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 5
    functionsReached:
    - free_domheap_page
    - page_list_del
    linkageType: ''
    returnType: void
    signature: void page_list_for_each_safe(page, next, list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/common/kimage.c:306,1
    - Dst: kimage_alloc_zeroed_page
      Src: /src/xen/xen/common/kimage.c:315,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:318,1
    - Dst: kimage_is_destination_range
      Src: /src/xen/xen/common/kimage.c:320,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/kimage.c:322,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/kimage.c:330,1
    - Dst: kimage_free_page_list
      Src: /src/xen/xen/common/kimage.c:347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - image
    - memflags
    argTypes:
    - struct kexec_image*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 350
    functionName: kimage_alloc_normal_control_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_is_destination_range
    - kimage_alloc_zeroed_page
    - page_list_add
    - INIT_PAGE_LIST_HEAD
    - kimage_free_page_list
    - page_to_maddr
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *kimage_alloc_normal_control_page(\n    struct kexec_image
      *image, unsigned memflags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/kimage.c:377,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/kimage.c:393,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/common/kimage.c:401,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/common/kimage.c:408,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/kimage.c:408,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 412
    functionName: kimage_alloc_crash_control_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - PAGE_ALIGN
    - clear_domain_page
    - maddr_to_page
    linkageType: ''
    returnType: struct page_info
    signature: struct page_info *kimage_alloc_crash_control_page(struct kexec_image
      *image)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kimage_alloc_normal_control_page
      Src: /src/xen/xen/common/kimage.c:423,1
    - Dst: kimage_alloc_crash_control_page
      Src: /src/xen/xen/common/kimage.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - image
    - memflags
    argTypes:
    - struct kexec_image*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 415
    functionDepth: 4
    functionLinenumber: 415
    functionLinenumberEnd: 430
    functionName: kimage_alloc_control_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 2
    functionsReached:
    - kimage_alloc_crash_control_page
    - kimage_alloc_normal_control_page
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *kimage_alloc_control_page(struct kexec_image *image,\n
      \                                           unsigned memflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kimage_alloc_page
      Src: /src/xen/xen/common/kimage.c:440,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/kimage.c:444,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:445,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:446,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/kimage.c:452,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - image
    - entry
    argTypes:
    - struct kexec_image*
    - kimage_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 458
    functionName: kimage_add_entry
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - unmap_domain_page
    - page_to_maddr
    - kimage_alloc_page
    linkageType: ''
    returnType: int
    signature: int kimage_add_entry(struct kexec_image *image, kimage_entry_t entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kimage_add_entry
      Src: /src/xen/xen/common/kimage.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - struct kexec_image*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: kimage_set_destination
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_add_entry
    linkageType: ''
    returnType: int
    signature: "int kimage_set_destination(struct kexec_image *image,\n                                  paddr_t
      destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kimage_add_entry
      Src: /src/xen/xen/common/kimage.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - image
    - maddr
    argTypes:
    - struct kexec_image*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 470
    functionName: kimage_add_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_add_entry
    linkageType: ''
    returnType: int
    signature: int kimage_add_page(struct kexec_image *image, paddr_t maddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kimage_free_page_list
      Src: /src/xen/xen/common/kimage.c:475,1
    - Dst: kimage_free_page_list
      Src: /src/xen/xen/common/kimage.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: kimage_free_extra_pages
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_free_page_list
    linkageType: ''
    returnType: void
    signature: void kimage_free_extra_pages(struct kexec_image *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/kimage.c:483,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: kimage_terminate
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - __map_domain_page
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void kimage_terminate(struct kexec_image *image)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - image
    - ','
    - ptr
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: for_each_kimage_entry
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_kimage_entry(image, ptr, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_page
      Src: /src/xen/xen/common/kimage.c:504,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/kimage.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - kimage_entry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: kimage_free_entry
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - free_domheap_page
    - maddr_to_page
    linkageType: ''
    returnType: void
    signature: void kimage_free_entry(kimage_entry_t entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kimage_free_entry
      Src: /src/xen/xen/common/kimage.c:522,1
    - Dst: kimage_free_entry
      Src: /src/xen/xen/common/kimage.c:527,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:529,1
    - Dst: kimage_free_entry
      Src: /src/xen/xen/common/kimage.c:533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 508
    functionDepth: 2
    functionLinenumber: 508
    functionLinenumberEnd: 534
    functionName: kimage_free_all_entries
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_free_entry
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void kimage_free_all_entries(struct kexec_image *image)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kimage_free_entry
      Src: /src/xen/xen/common/kimage.c:522,1
    - Dst: kimage_free_entry
      Src: /src/xen/xen/common/kimage.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 528
    functionName: for_each_kimage_entry
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_free_entry
    linkageType: ''
    returnType: void
    signature: void for_each_kimage_entry(image, ptr, entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kimage_free_extra_pages
      Src: /src/xen/xen/common/kimage.c:541,1
    - Dst: kimage_free_all_entries
      Src: /src/xen/xen/common/kimage.c:542,1
    - Dst: kimage_free_page_list
      Src: /src/xen/xen/common/kimage.c:543,1
    - Dst: xfree
      Src: /src/xen/xen/common/kimage.c:544,1
    - Dst: xfree
      Src: /src/xen/xen/common/kimage.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 546
    functionName: kimage_free
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 1
    functionsReached:
    - kimage_free_page_list
    - xfree
    - kimage_free_all_entries
    - kimage_free_extra_pages
    linkageType: ''
    returnType: void
    signature: void kimage_free(struct kexec_image *image)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - image
    - maddr
    argTypes:
    - struct kexec_image*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 568
    functionName: kimage_dst_used
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    linkageType: ''
    returnType: kimage_entry_t
    signature: "kimage_entry_t *kimage_dst_used(struct kexec_image *image,\n                                       paddr_t
      maddr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 564
    functionName: for_each_kimage_entry
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_kimage_entry(image, ptr, entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: page_list_for_each
      Src: /src/xen/xen/common/kimage.c:598,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:600,1
    - Dst: page_list_del
      Src: /src/xen/xen/common/kimage.c:603,1
    - Dst: kimage_alloc_zeroed_page
      Src: /src/xen/xen/common/kimage.c:613,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:616,1
    - Dst: kimage_is_destination_range
      Src: /src/xen/xen/common/kimage.c:623,1
    - Dst: kimage_dst_used
      Src: /src/xen/xen/common/kimage.c:632,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/kimage.c:636,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/kimage.c:637,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/common/kimage.c:639,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/common/kimage.c:640,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:642,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/kimage.c:644,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/kimage.c:653,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kimage.c:657,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:657,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:658,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/kimage.c:661,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - struct kexec_image*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 665
    functionName: kimage_alloc_page
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 1
    functionsReached:
    - copy_domain_page
    - unmap_domain_page
    - clear_domain_page
    - mfn_to_page
    - kimage_is_destination_range
    - machine_kexec_add_page
    - kimage_alloc_zeroed_page
    - page_list_add
    - page_list_for_each
    - maddr_to_mfn
    - free_domheap_page
    - page_to_maddr
    - page_list_del
    - kimage_dst_used
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *kimage_alloc_page(struct kexec_image *image,\n                                           paddr_t
      destination)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kimage_set_destination
      Src: /src/xen/xen/common/kimage.c:679,1
    - Dst: min_t
      Src: /src/xen/xen/common/kimage.c:692,1
    - Dst: kimage_alloc_page
      Src: /src/xen/xen/common/kimage.c:694,1
    - Dst: kimage_add_page
      Src: /src/xen/xen/common/kimage.c:697,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:697,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/common/kimage.c:701,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/kimage.c:702,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:703,1
    - Dst: kimage_add_entry
      Src: /src/xen/xen/common/kimage.c:715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - image
    - segment
    argTypes:
    - struct kexec_image*
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 718
    functionName: kimage_load_normal_segment
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - kimage_add_entry
    - kimage_alloc_page
    - kimage_add_page
    - kimage_set_destination
    - min_t
    - copy_from_guest_offset
    - __map_domain_page
    - page_to_maddr
    linkageType: ''
    returnType: int
    signature: "int kimage_load_normal_segment(struct kexec_image *image,\n                                      xen_kexec_segment_t
      *segment)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/kimage.c:745,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/kimage.c:747,1
    - Dst: _mfn
      Src: /src/xen/xen/common/kimage.c:747,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/kimage.c:751,1
    - Dst: memset
      Src: /src/xen/xen/common/kimage.c:752,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - image
    - segment
    argTypes:
    - struct kexec_image*
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 765
    functionName: kimage_load_crash_segment
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - map_domain_page
    - _mfn
    - min
    - copy_from_guest_offset
    - memset
    linkageType: ''
    returnType: int
    signature: "int kimage_load_crash_segment(struct kexec_image *image,\n                                     xen_kexec_segment_t
      *segment)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/kimage.c:772,1
    - Dst: kimage_load_normal_segment
      Src: /src/xen/xen/common/kimage.c:777,1
    - Dst: kimage_load_crash_segment
      Src: /src/xen/xen/common/kimage.c:780,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kimage.c:788,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - image
    - segment
    argTypes:
    - struct kexec_image*
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 794
    functionName: kimage_load_segment
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - machine_kexec_add_page
    - kimage_load_normal_segment
    - guest_handle_is_null
    - kimage_load_crash_segment
    linkageType: ''
    returnType: int
    signature: int kimage_load_segment(struct kexec_image *image, xen_kexec_segment_t
      *segment)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kimage_normal_alloc
      Src: /src/xen/xen/common/kimage.c:805,1
    - Dst: kimage_crash_alloc
      Src: /src/xen/xen/common/kimage.c:808,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - rimage
    - type
    - arch
    - entry_maddr
    - nr_segments
    - segment
    argTypes:
    - struct kexec_image**
    - uint8_t
    - uint16_t
    - uint64_t
    - uint32_t
    - xen_kexec_segment_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 820
    functionName: kimage_alloc
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 2
    functionsReached:
    - kimage_crash_alloc
    - kimage_normal_alloc
    linkageType: ''
    returnType: int
    signature: "int kimage_alloc(struct kexec_image **rimage, uint8_t type, uint16_t
      arch,\n                 uint64_t entry_maddr,\n                 uint32_t nr_segments,
      xen_kexec_segment_t *segment)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kimage_load_segment
      Src: /src/xen/xen/common/kimage.c:828,1
    - Dst: kimage_terminate
      Src: /src/xen/xen/common/kimage.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 822
    functionDepth: 5
    functionLinenumber: 822
    functionLinenumberEnd: 834
    functionName: kimage_load_segments
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - kimage_terminate
    - kimage_load_segment
    linkageType: ''
    returnType: int
    signature: int kimage_load_segments(struct kexec_image *image)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - compat
    argTypes:
    - kimage_entry_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 841
    functionName: kimage_entry_next
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kimage_entry_t
    signature: kimage_entry_t *kimage_entry_next(kimage_entry_t *entry, bool compat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/kimage.c:846,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/kimage.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - compat
    argTypes:
    - kimage_entry_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 848
    functionName: kimage_entry_mfn
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - maddr_to_mfn
    linkageType: ''
    returnType: mfn_t
    signature: mfn_t kimage_entry_mfn(kimage_entry_t *entry, bool compat)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - entry
    - compat
    argTypes:
    - kimage_entry_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 855
    functionName: kimage_entry_ind
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long kimage_entry_ind(kimage_entry_t *entry, bool compat)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/common/kimage.c:865,1
    - Dst: kimage_entry_ind
      Src: /src/xen/xen/common/kimage.c:878,1
    - Dst: kimage_entry_mfn
      Src: /src/xen/xen/common/kimage.c:879,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/kimage.c:884,1
    - Dst: kimage_set_destination
      Src: /src/xen/xen/common/kimage.c:885,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:890,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/kimage.c:891,1
    - Dst: kimage_terminate
      Src: /src/xen/xen/common/kimage.c:895,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/kimage.c:901,1
    - Dst: get_page
      Src: /src/xen/xen/common/kimage.c:902,1
    - Dst: kimage_alloc_page
      Src: /src/xen/xen/common/kimage.c:908,1
    - Dst: put_page
      Src: /src/xen/xen/common/kimage.c:911,1
    - Dst: copy_domain_page
      Src: /src/xen/xen/common/kimage.c:916,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/kimage.c:916,1
    - Dst: put_page
      Src: /src/xen/xen/common/kimage.c:917,1
    - Dst: kimage_add_page
      Src: /src/xen/xen/common/kimage.c:919,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/kimage.c:919,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kimage.c:923,1
    - Dst: kimage_entry_next
      Src: /src/xen/xen/common/kimage.c:934,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kimage.c:937,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 3
    argNames:
    - image
    - ind_mfn
    - compat
    argTypes:
    - struct kexec_image*
    - mfn_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 939
    functionName: kimage_build_ind
    functionSourceFile: /src/xen/xen/common/kimage.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - kimage_entry_ind
    - map_domain_page
    - copy_domain_page
    - kimage_set_destination
    - mfn_to_maddr
    - kimage_entry_mfn
    - mfn_to_page
    - kimage_alloc_page
    - page_to_mfn
    - kimage_add_page
    - machine_kexec_add_page
    - get_page
    - kimage_entry_next
    - put_page
    - page_to_maddr
    - kimage_terminate
    linkageType: ''
    returnType: int
    signature: "int kimage_build_ind(struct kexec_image *image, mfn_t ind_mfn,\n                     bool
      compat)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/memory.c:73,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/memory.c:75,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/memory.c:77,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/memory.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: parse_max_order
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_max_order(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_arch_io_resources
      Src: /src/xen/xen/common/memory.c:92,1
    - Dst: is_control_domain
      Src: /src/xen/xen/common/memory.c:96,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/memory.c:99,1
    - Dst: min
      Src: /src/xen/xen/common/memory.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: max_order
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - min
    - is_control_domain
    - has_arch_io_resources
    - is_hardware_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int max_order(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/memory.c:107,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/memory.c:110,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/memory.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - 'off'
    - mfn
    argTypes:
    - size_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 113
    functionName: __copy_mfn_to_guest_offset
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - __copy_to_guest_offset
    - XEN_GUEST_HANDLE
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long __copy_mfn_to_guest_offset(XEN_GUEST_HANDLE(xen_pfn_t)
      hnd,\n                                         size_t off, mfn_t mfn)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/memory.c:121,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:122,1
    - Dst: max_order
      Src: /src/xen/xen/common/memory.c:126,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:131,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/memory.c:137,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:138,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:140,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:148,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/memory.c:149,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:151,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:153,1
    - Dst: __copy_mfn_to_guest_offset
      Src: /src/xen/xen/common/memory.c:153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct memop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 115
    functionDepth: 6
    functionLinenumber: 115
    functionLinenumberEnd: 160
    functionName: increase_reservation
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - gdprintk
    - page_to_mfn
    - __copy_mfn_to_guest_offset
    - guest_handle_subrange_okay
    - paging_mode_translate
    - guest_handle_is_null
    - hypercall_preempt_check
    - unlikely
    - max_order
    - alloc_domheap_pages
    linkageType: ''
    returnType: void
    signature: void increase_reservation(struct memop_args *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/memory.c:173,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/common/memory.c:180,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/memory.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - d
    - page
    - order
    - scrub_index
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: stash_allocation
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - free_domheap_pages
    linkageType: ''
    returnType: void
    signature: "void stash_allocation(struct domain *d, struct page_info *page,\n
      \                            unsigned int order, unsigned int scrub_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock
      Src: /src/xen/xen/common/memory.c:198,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/memory.c:207,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/common/memory.c:213,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/common/memory.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - d
    - order
    - node
    - scrub_index
    argTypes:
    - struct domain*
    - unsigned int
    - nodeid_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 227
    functionName: get_stashed_allocation
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - free_domheap_pages
    - page_to_nid
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *get_stashed_allocation(struct domain *d,\n                                                unsigned
      int order,\n                                                nodeid_t node,\n
      \                                               unsigned int *scrub_index)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:238,1
    - Dst: max_order
      Src: /src/xen/xen/common/memory.c:243,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:246,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:271,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:277,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:277,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/memory.c:286,1
    - Dst: guest_physmap_mark_populate_on_demand
      Src: /src/xen/xen/common/memory.c:287,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/memory.c:293,1
    - Dst: _mfn
      Src: /src/xen/xen/common/memory.c:295,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/memory.c:298,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/memory.c:300,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:302,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/memory.c:303,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/memory.c:307,1
    - Dst: get_page
      Src: /src/xen/xen/common/memory.c:308,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:310,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/memory.c:312,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:315,1
    - Dst: _mfn
      Src: /src/xen/xen/common/memory.c:318,1
    - Dst: is_domain_using_staticmem
      Src: /src/xen/xen/common/memory.c:320,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:328,1
    - Dst: acquire_reserved_page
      Src: /src/xen/xen/common/memory.c:334,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/memory.c:335,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:337,1
    - Dst: MEMF_get_node
      Src: /src/xen/xen/common/memory.c:350,1
    - Dst: get_stashed_allocation
      Src: /src/xen/xen/common/memory.c:353,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/memory.c:357,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:359,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:361,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/memory.c:375,1
    - Dst: scrub_one_page
      Src: /src/xen/xen/common/memory.c:379,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:383,1
    - Dst: stash_allocation
      Src: /src/xen/xen/common/memory.c:386,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:392,1
    - Dst: accumulate_tlbflush
      Src: /src/xen/xen/common/memory.c:395,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:399,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/memory.c:402,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:402,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:405,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:407,1
    - Dst: __copy_mfn_to_guest_offset
      Src: /src/xen/xen/common/memory.c:407,1
    - Dst: filtered_flush_tlb_mask
      Src: /src/xen/xen/common/memory.c:414,1
    - Dst: invalidate_icache
      Src: /src/xen/xen/common/memory.c:417,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 99
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct memop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 229
    functionDepth: 7
    functionLinenumber: 229
    functionLinenumberEnd: 420
    functionName: populate_physmap
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 5
    functionsReached:
    - mfn_to_page
    - _gfn
    - acquire_reserved_page
    - alloc_domheap_pages
    - is_hvm_domain
    - guest_physmap_mark_populate_on_demand
    - scrub_one_page
    - get_stashed_allocation
    - page_to_mfn
    - __copy_mfn_to_guest_offset
    - test_and_clear_bit
    - mfn_valid
    - get_page
    - mfn_eq
    - is_domain_direct_mapped
    - __copy_from_guest_offset
    - gdprintk
    - filtered_flush_tlb_mask
    - mfn_x
    - _mfn
    - accumulate_tlbflush
    - hypercall_preempt_check
    - is_domain_using_staticmem
    - MEMF_get_node
    - guest_handle_subrange_okay
    - stash_allocation
    - mfn_add
    - paging_mode_translate
    - invalidate_icache
    - guest_physmap_add_page
    - unlikely
    - max_order
    - put_page
    linkageType: ''
    returnType: void
    signature: void populate_physmap(struct memop_args *a)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_gfn_query
      Src: /src/xen/xen/common/memory.c:435,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:436,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:436,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:438,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:443,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/common/memory.c:443,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/memory.c:451,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/memory.c:451,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/common/memory.c:455,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:455,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:459,1
    - Dst: p2m_mem_paging_drop_page
      Src: /src/xen/xen/common/memory.c:461,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:461,1
    - Dst: gfn_to_mfn
      Src: /src/xen/xen/common/memory.c:471,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:471,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:473,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/memory.c:473,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:476,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:478,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/common/memory.c:485,1
    - Dst: mem_sharing_unshare_page
      Src: /src/xen/xen/common/memory.c:492,1
    - Dst: mem_sharing_notify_enomem
      Src: /src/xen/xen/common/memory.c:495,1
    - Dst: get_gfn_query_unlocked
      Src: /src/xen/xen/common/memory.c:499,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/memory.c:500,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/common/memory.c:500,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/memory.c:505,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:506,1
    - Dst: get_page
      Src: /src/xen/xen/common/memory.c:506,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:509,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/common/memory.c:510,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/memory.c:512,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/memory.c:523,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/common/memory.c:528,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:528,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/memory.c:542,1
    - Dst: put_page_alloc_ref
      Src: /src/xen/xen/common/memory.c:543,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:545,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:549,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - d
    - gmfn
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 557
    functionName: guest_remove_page
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 2
    functionsReached:
    - mfn_to_page
    - _gfn
    - guest_physmap_remove_page
    - p2m_mem_paging_drop_page
    - put_gfn
    - mfn_valid
    - get_page
    - get_gfn_query_unlocked
    - is_domain_direct_mapped
    - gdprintk
    - mem_sharing_notify_enomem
    - ASSERT
    - gfn_to_mfn
    - p2m_is_shared
    - this_cpu
    - p2m_is_paging
    - mem_sharing_unshare_page
    - put_page_alloc_ref
    - unlikely
    - put_page
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int guest_remove_page(struct domain *d, unsigned long gmfn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:564,1
    - Dst: max_order
      Src: /src/xen/xen/common/memory.c:566,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:573,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:579,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:579,1
    - Dst: trace
      Src: /src/xen/xen/common/memory.c:593,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/memory.c:597,1
    - Dst: p2m_pod_decrease_reservation
      Src: /src/xen/xen/common/memory.c:598,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:598,1
    - Dst: guest_remove_page
      Src: /src/xen/xen/common/memory.c:611,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct memop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 628
    functionName: decrease_reservation
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 3
    functionsReached:
    - guest_handle_subrange_okay
    - trace
    - _gfn
    - hypercall_preempt_check
    - unlikely
    - max_order
    - __copy_from_guest_offset
    - p2m_pod_decrease_reservation
    - is_hvm_domain
    - guest_remove_page
    linkageType: ''
    returnType: void
    signature: void decrease_reservation(struct memop_args *a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/memory.c:634,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/xen/common/memory.c:634,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/memory.c:635,1
    - Dst: MEMF_get_node
      Src: /src/xen/xen/common/memory.c:635,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/xen/common/memory.c:637,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/memory.c:640,1
    - Dst: is_control_domain
      Src: /src/xen/xen/common/memory.c:640,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/xen/common/memory.c:642,1
    - Dst: MEMF_node
      Src: /src/xen/xen/common/memory.c:645,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/xen/common/memory.c:645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - xmf
    - memflags
    argTypes:
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 653
    functionName: propagate_node
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - XENMEMF_get_node
    - MEMF_get_node
    - BUILD_BUG_ON
    - MEMF_node
    - is_control_domain
    - is_hardware_domain
    linkageType: ''
    returnType: bool
    signature: bool propagate_node(unsigned int xmf, unsigned int *memflags)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/memory.c:655,1
    - Dst: PAGE_LIST_HEAD
      Src: /src/xen/xen/common/memory.c:658,1
    - Dst: PAGE_LIST_HEAD
      Src: /src/xen/xen/common/memory.c:659,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:669,1
    - Dst: max
      Src: /src/xen/xen/common/memory.c:672,1
    - Dst: max_order
      Src: /src/xen/xen/common/memory.c:673,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:697,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:709,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:722,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:731,1
    - Dst: propagate_node
      Src: /src/xen/xen/common/memory.c:731,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:737,1
    - Dst: xsm_memory_exchange
      Src: /src/xen/xen/common/memory.c:744,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:747,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/memory.c:751,1
    - Dst: domain_clamp_alloc_bitsize
      Src: /src/xen/xen/common/memory.c:751,1
    - Dst: XENMEMF_get_address_bits
      Src: /src/xen/xen/common/memory.c:753,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:761,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:764,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/memory.c:765,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/memory.c:767,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:774,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:774,1
    - Dst: get_gfn_unshare
      Src: /src/xen/xen/common/memory.c:787,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/common/memory.c:788,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:790,1
    - Dst: gfn_to_mfn
      Src: /src/xen/xen/common/memory.c:795,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:795,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:797,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/memory.c:797,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:800,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/memory.c:806,1
    - Dst: steal_page
      Src: /src/xen/xen/common/memory.c:808,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:809,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:812,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/memory.c:817,1
    - Dst: put_gfn
      Src: /src/xen/xen/common/memory.c:819,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/memory.c:827,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:829,1
    - Dst: page_list_add
      Src: /src/xen/xen/common/memory.c:835,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/memory.c:847,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:851,1
    - Dst: mfn_to_gfn
      Src: /src/xen/xen/common/memory.c:852,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/memory.c:854,1
    - Dst: SHARED_M2P
      Src: /src/xen/xen/common/memory.c:854,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/memory.c:854,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/common/memory.c:855,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/memory.c:856,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/memory.c:857,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/memory.c:861,1
    - Dst: assign_page
      Src: /src/xen/xen/common/memory.c:863,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/memory.c:880,1
    - Dst: domain_adjust_tot_pages
      Src: /src/xen/xen/common/memory.c:882,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/memory.c:883,1
    - Dst: put_domain
      Src: /src/xen/xen/common/memory.c:886,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/common/memory.c:888,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:892,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:899,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/memory.c:900,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:900,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:903,1
    - Dst: __copy_mfn_to_guest_offset
      Src: /src/xen/xen/common/memory.c:904,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/memory.c:909,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/memory.c:916,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:918,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/memory.c:931,1
    - Dst: assign_pages
      Src: /src/xen/xen/common/memory.c:932,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/memory.c:934,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/memory.c:935,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:939,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/common/memory.c:941,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/common/memory.c:942,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/memory.c:947,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 163
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 950
    functionName: memory_exchange
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - max
    - copy_from_guest
    - mfn_to_page
    - _gfn
    - free_domheap_pages
    - SHARED_M2P
    - page_list_remove_head
    - nrspin_unlock
    - guest_physmap_remove_page
    - alloc_domheap_pages
    - xsm_memory_exchange
    - PAGE_LIST_HEAD
    - domain_adjust_tot_pages
    - page_to_mfn
    - propagate_node
    - __copy_mfn_to_guest_offset
    - assign_page
    - put_gfn
    - mfn_valid
    - XENMEMF_get_address_bits
    - page_list_add
    - hypercall_create_continuation
    - BUG_ON
    - put_domain
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - mfn_to_gfn
    - __copy_from_guest_offset
    - domain_crash
    - MEMF_bits
    - p2m_is_shared
    - hypercall_preempt_check
    - gfn_to_mfn
    - free_domheap_page
    - __copy_field_to_guest
    - get_gfn_unshare
    - guest_handle_subrange_okay
    - gfn_x
    - paging_mode_translate
    - guest_physmap_add_page
    - nrspin_lock
    - unlikely
    - max_order
    - rcu_lock_domain_by_any_id
    - assign_pages
    - domain_clamp_alloc_bitsize
    - steal_page
    linkageType: ''
    returnType: long
    signature: long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t)
      arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:960,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/memory.c:962,1
    - Dst: gfn_eq
      Src: /src/xen/xen/common/memory.c:966,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:966,1
    - Dst: xenmem_add_to_physmap_one
      Src: /src/xen/xen/common/memory.c:973,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:974,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/memory.c:987,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/common/memory.c:996,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/memory.c:998,1
    - Dst: xenmem_add_to_physmap_one
      Src: /src/xen/xen/common/memory.c:1005,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:1006,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/memory.c:1018,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:1019,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/common/memory.c:1027,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/common/memory.c:1034,1
    - Dst: _dfn
      Src: /src/xen/xen/common/memory.c:1034,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1036,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:1046,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/common/memory.c:1048,1
    - Dst: _dfn
      Src: /src/xen/xen/common/memory.c:1048,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1050,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 3
    argNames:
    - d
    - xatp
    - start
    argTypes:
    - struct domain*
    - struct xen_add_to_physmap*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 1056
    functionName: xenmem_add_to_physmap
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - unlikely
    - ARRAY_SIZE
    - _gfn
    - xenmem_add_to_physmap_one
    - BUILD_BUG_ON
    - iommu_iotlb_flush
    - paging_mode_translate
    - hypercall_preempt_check
    - this_cpu
    - gfn_eq
    - put_page
    - ASSERT_UNREACHABLE
    - _dfn
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap(struct domain *d, struct xen_add_to_physmap
      *xatp,\n                          unsigned int start)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1032
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 243
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void this_cpu(iommu_dont_flush_iotlb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:1069,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/memory.c:1071,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1075,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1078,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:1081,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:1082,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/memory.c:1083,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1105,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:1105,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1107,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/memory.c:1107,1
    - Dst: gfn_eq
      Src: /src/xen/xen/common/memory.c:1111,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:1111,1
    - Dst: xenmem_add_to_physmap_one
      Src: /src/xen/xen/common/memory.c:1114,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:1115,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1117,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/memory.c:1117,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:1121,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - d
    - xatpb
    - extent
    argTypes:
    - struct domain*
    - struct xen_add_to_physmap_batch*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1126
    functionName: xenmem_add_to_physmap_batch
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - __copy_to_guest_offset
    - guest_handle_subrange_okay
    - _gfn
    - xenmem_add_to_physmap_one
    - paging_mode_translate
    - hypercall_preempt_check
    - unlikely
    - gfn_eq
    - __copy_from_guest_offset
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int xenmem_add_to_physmap_batch(struct domain *d,\n                                       struct
      xen_add_to_physmap_batch *xatpb,\n                                       unsigned
      int extent)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XENMEMF_get_address_bits
      Src: /src/xen/xen/common/memory.c:1139,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/memory.c:1141,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/memory.c:1145,1
    - Dst: read_lock
      Src: /src/xen/xen/common/memory.c:1153,1
    - Dst: XENMEMF_get_node
      Src: /src/xen/xen/common/memory.c:1156,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1159,1
    - Dst: MEMF_node
      Src: /src/xen/xen/common/memory.c:1166,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1171,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1173,1
    - Dst: propagate_node
      Src: /src/xen/xen/common/memory.c:1173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - struct xen_memory_reservation*
    - struct memop_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1177
    functionName: construct_memop_from_reservation
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - XENMEMF_get_node
    - propagate_node
    - read_unlock
    - get_order_from_pages
    - XENMEMF_get_address_bits
    - MEMF_node
    - unlikely
    - read_lock
    - MEMF_bits
    linkageType: ''
    returnType: int
    signature: "int construct_memop_from_reservation(\n               const struct
      xen_memory_reservation *r,\n               struct memop_args *a)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SBDF
      Src: /src/xen/xen/common/memory.c:1189,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/memory.c:1204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - start
    - nr
    - id
    - ctxt
    argTypes:
    - xen_pfn_t
    - xen_ulong_t
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1212
    functionName: get_reserved_device_memory
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - __copy_to_guest_offset
    - PCI_SBDF
    linkageType: ''
    returnType: int
    signature: "int get_reserved_device_memory(\n    xen_pfn_t start, xen_ulong_t
      nr, u32 id, void *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:1217,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/memory.c:1225,1
    - Dst: xsm_add_to_physmap
      Src: /src/xen/xen/common/memory.c:1228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - d
    - space
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1229
    functionName: xatp_permission_check
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - paging_mode_translate
    - xsm_add_to_physmap
    - is_hardware_domain
    linkageType: ''
    returnType: long
    signature: long xatp_permission_check(struct domain *d, unsigned int space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/memory.c:1236,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/memory.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1242
    functionName: ioreq_server_max_frames
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    - is_hvm_domain
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ioreq_server_max_frames(const struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_resource_max_frames
      Src: /src/xen/xen/common/memory.c:1257,1
    - Dst: ioreq_server_max_frames
      Src: /src/xen/xen/common/memory.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - d
    - type
    - id
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1251
    functionDepth: 3
    functionLinenumber: 1251
    functionLinenumberEnd: 1270
    functionName: resource_max_frames
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - gnttab_resource_max_frames
    - ioreq_server_max_frames
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int resource_max_frames(const struct domain *d,\n                                        unsigned
      int type, unsigned int id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/memory.c:1283,1
    - Dst: ioreq_server_get_frame
      Src: /src/xen/xen/common/memory.c:1293,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/memory.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - d
    - id
    - frame
    - nr_frames
    - mfn_list
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    - xen_pfn_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1305
    functionName: acquire_ioreq_server
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - ioreq_server_get_frame
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: "int acquire_ioreq_server(struct domain *d,\n                                unsigned
      int id,\n                                unsigned int frame,\n                                unsigned
      int nr_frames,\n                                xen_pfn_t mfn_list[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/memory.c:1312,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:1323,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/memory.c:1326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - d
    - id
    - frame
    - nr_frames
    - mfn_list
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    - xen_pfn_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1329
    functionName: acquire_vmtrace_buf
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 0
    functionsReached:
    - mfn_x
    - page_to_mfn
    - domain_vcpu
    linkageType: ''
    returnType: int
    signature: "int acquire_vmtrace_buf(\n    struct domain *d, unsigned int id, unsigned
      int frame,\n    unsigned int nr_frames, xen_pfn_t mfn_list[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gnttab_acquire_resource
      Src: /src/xen/xen/common/memory.c:1344,1
    - Dst: acquire_ioreq_server
      Src: /src/xen/xen/common/memory.c:1347,1
    - Dst: acquire_vmtrace_buf
      Src: /src/xen/xen/common/memory.c:1351,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/memory.c:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - d
    - type
    - id
    - frame
    - nr_frames
    - mfn_list
    argTypes:
    - struct domain*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - xen_pfn_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1337
    functionDepth: 5
    functionLinenumber: 1337
    functionLinenumberEnd: 1358
    functionName: _acquire_resource
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - gnttab_acquire_resource
    - ASSERT_UNREACHABLE
    - acquire_ioreq_server
    - acquire_vmtrace_buf
    linkageType: ''
    returnType: int
    signature: "int _acquire_resource(\n    struct domain *d, unsigned int type, unsigned
      int id, unsigned int frame,\n    unsigned int nr_frames, xen_pfn_t mfn_list[])"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/memory.c:1361,1
    - Dst: arch_acquire_resource_check
      Src: /src/xen/xen/common/memory.c:1369,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1372,1
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/common/memory.c:1391,1
    - Dst: xsm_domain_resource_map
      Src: /src/xen/xen/common/memory.c:1395,1
    - Dst: resource_max_frames
      Src: /src/xen/xen/common/memory.c:1399,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/memory.c:1405,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/memory.c:1411,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/memory.c:1428,1
    - Dst: MIN
      Src: /src/xen/xen/common/memory.c:1436,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/memory.c:1436,1
    - Dst: _acquire_resource
      Src: /src/xen/xen/common/memory.c:1438,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/memory.c:1447,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:1453,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/memory.c:1455,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/memory.c:1460,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1463,1
    - Dst: set_foreign_p2m_entry
      Src: /src/xen/xen/common/memory.c:1468,1
    - Dst: _mfn
      Src: /src/xen/xen/common/memory.c:1469,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/memory.c:1481,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/memory.c:1489,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/memory.c:1491,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1503,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 1
    argNames:
    - start_extent
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1360
    functionDepth: 6
    functionLinenumber: 1360
    functionLinenumberEnd: 1506
    functionName: acquire_resource
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 2
    functionsReached:
    - rcu_lock_remote_domain_by_id
    - copy_from_guest
    - guest_handle_add_offset
    - arch_acquire_resource_check
    - ARRAY_SIZE
    - _acquire_resource
    - hypercall_create_continuation
    - guest_handle_is_null
    - copy_to_guest
    - XEN_GUEST_HANDLE_PARAM
    - rcu_unlock_domain
    - xsm_domain_resource_map
    - set_foreign_p2m_entry
    - _mfn
    - hypercall_preempt_check
    - resource_max_frames
    - MIN
    - ASSERT_UNREACHABLE
    - __copy_field_to_guest
    - paging_mode_translate
    linkageType: ''
    returnType: int
    signature: "int acquire_resource(\n    XEN_GUEST_HANDLE_PARAM(xen_mem_acquire_resource_t)
      arg,\n    unsigned long start_extent)"
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1522,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1529,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1532,1
    - Dst: construct_memop_from_reservation
      Src: /src/xen/xen/common/memory.c:1537,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1539,1
    - Dst: xsm_memory_adjust_reservation
      Src: /src/xen/xen/common/memory.c:1550,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1552,1
    - Dst: pv_shim_online_memory
      Src: /src/xen/xen/common/memory.c:1559,1
    - Dst: increase_reservation
      Src: /src/xen/xen/common/memory.c:1565,1
    - Dst: decrease_reservation
      Src: /src/xen/xen/common/memory.c:1568,1
    - Dst: populate_physmap
      Src: /src/xen/xen/common/memory.c:1571,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1575,1
    - Dst: pv_shim_offline_memory
      Src: /src/xen/xen/common/memory.c:1581,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/memory.c:1586,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1593,1
    - Dst: memory_exchange
      Src: /src/xen/xen/common/memory.c:1596,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/memory.c:1596,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1600,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1612,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1615,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1618,1
    - Dst: xsm_memory_stat_reservation
      Src: /src/xen/xen/common/memory.c:1622,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1625,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/memory.c:1632,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/memory.c:1638,1
    - Dst: domain_get_maximum_gpfn
      Src: /src/xen/xen/common/memory.c:1639,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1643,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/memory.c:1652,1
    - Dst: typeof
      Src: /src/xen/xen/common/memory.c:1652,1
    - Dst: typeof
      Src: /src/xen/xen/common/memory.c:1655,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1658,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1665,1
    - Dst: xatp_permission_check
      Src: /src/xen/xen/common/memory.c:1669,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1672,1
    - Dst: xenmem_add_to_physmap
      Src: /src/xen/xen/common/memory.c:1676,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1678,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/memory.c:1681,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/memory.c:1692,1
    - Dst: typeof
      Src: /src/xen/xen/common/memory.c:1692,1
    - Dst: typeof
      Src: /src/xen/xen/common/memory.c:1696,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1699,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1706,1
    - Dst: xatp_permission_check
      Src: /src/xen/xen/common/memory.c:1710,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1713,1
    - Dst: xenmem_add_to_physmap_batch
      Src: /src/xen/xen/common/memory.c:1717,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1719,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/memory.c:1722,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1734,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1737,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1740,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/memory.c:1744,1
    - Dst: xsm_remove_from_physmap
      Src: /src/xen/xen/common/memory.c:1745,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1749,1
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/common/memory.c:1753,1
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/common/memory.c:1756,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:1756,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/memory.c:1757,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:1758,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1763,1
    - Dst: mem_access_memop
      Src: /src/xen/xen/common/memory.c:1769,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/memory.c:1769,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1776,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1779,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/memory.c:1782,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/memory.c:1791,1
    - Dst: xsm_claim_pages
      Src: /src/xen/xen/common/memory.c:1795,1
    - Dst: domain_set_outstanding_pages
      Src: /src/xen/xen/common/memory.c:1801,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1803,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1813,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1820,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/memory.c:1826,1
    - Dst: xsm_get_vnumainfo
      Src: /src/xen/xen/common/memory.c:1829,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1832,1
    - Dst: read_lock
      Src: /src/xen/xen/common/memory.c:1836,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1840,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1841,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1858,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1859,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/memory.c:1866,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1869,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/memory.c:1871,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/memory.c:1872,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/memory.c:1873,1
    - Dst: read_lock
      Src: /src/xen/xen/common/memory.c:1887,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1893,1
    - Dst: memcpy
      Src: /src/xen/xen/common/memory.c:1902,1
    - Dst: memcpy
      Src: /src/xen/xen/common/memory.c:1904,1
    - Dst: memcpy
      Src: /src/xen/xen/common/memory.c:1906,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/memory.c:1909,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/memory.c:1913,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/memory.c:1917,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/memory.c:1921,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/memory.c:1929,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/memory.c:1932,1
    - Dst: xvfree
      Src: /src/xen/xen/common/memory.c:1934,1
    - Dst: xfree
      Src: /src/xen/xen/common/memory.c:1935,1
    - Dst: xfree
      Src: /src/xen/xen/common/memory.c:1936,1
    - Dst: unlikely
      Src: /src/xen/xen/common/memory.c:1945,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/memory.c:1948,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/memory.c:1949,1
    - Dst: iommu_get_reserved_device_memory
      Src: /src/xen/xen/common/memory.c:1956,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/memory.c:1962,1
    - Dst: acquire_resource
      Src: /src/xen/xen/common/memory.c:1970,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/memory.c:1971,1
    - Dst: arch_memory_op
      Src: /src/xen/xen/common/memory.c:1976,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 279
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1508
    functionDepth: 8
    functionLinenumber: 1508
    functionLinenumberEnd: 1981
    functionName: do_memory_op
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 1
    functionsReached:
    - arch_memory_op
    - acquire_resource
    - copy_from_guest
    - xsm_get_vnumainfo
    - _gfn
    - typeof
    - mem_access_memop
    - BUILD_BUG_ON
    - xenmem_add_to_physmap
    - domain_set_outstanding_pages
    - increase_reservation
    - guest_physmap_remove_page
    - pv_shim_offline_memory
    - construct_memop_from_reservation
    - xfree
    - xenmem_add_to_physmap_batch
    - memory_exchange
    - page_to_mfn
    - guest_handle_okay
    - decrease_reservation
    - hypercall_create_continuation
    - xsm_memory_stat_reservation
    - guest_handle_is_null
    - copy_to_guest
    - guest_handle_cast
    - rcu_unlock_domain
    - get_page_from_gfn
    - read_lock
    - iommu_get_reserved_device_memory
    - xsm_memory_adjust_reservation
    - xatp_permission_check
    - xvmalloc_array
    - populate_physmap
    - read_unlock
    - rcu_lock_domain_by_id
    - ASSERT
    - put_page
    - pv_shim_online_memory
    - xmalloc_array
    - domain_get_maximum_gpfn
    - xvfree
    - domain_tot_pages
    - paging_mode_translate
    - xsm_remove_from_physmap
    - __copy_to_guest
    - unlikely
    - xsm_claim_pages
    - rcu_lock_domain_by_any_id
    - memcpy
    linkageType: ''
    returnType: long
    signature: long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/common/memory.c:1985,1
    - Dst: clear_page
      Src: /src/xen/xen/common/memory.c:1987,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/memory.c:1988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1989
    functionName: clear_domain_page
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 19
    functionsReached:
    - clear_page
    - unmap_domain_page
    - map_domain_page
    linkageType: ''
    returnType: void
    signature: void clear_domain_page(mfn_t mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/common/memory.c:1993,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/memory.c:1994,1
    - Dst: copy_page
      Src: /src/xen/xen/common/memory.c:1996,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/memory.c:1997,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/memory.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 1999
    functionName: copy_domain_page
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 9
    functionsReached:
    - copy_page
    - unmap_domain_page
    - map_domain_page
    linkageType: ''
    returnType: void
    signature: void copy_domain_page(mfn_t dest, mfn_t source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page_global
      Src: /src/xen/xen/common/memory.c:2008,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/memory.c:2009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - _va
    - page
    argTypes:
    - void**
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2012
    functionName: destroy_ring_for_helper
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 4
    functionsReached:
    - unmap_domain_page_global
    - put_page_and_type
    linkageType: ''
    returnType: void
    signature: "void destroy_ring_for_helper(\n    void **_va, struct page_info *page)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_page_from_gfn
      Src: /src/xen/xen/common/memory.c:2031,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/memory.c:2031,1
    - Dst: p2m_is_paging
      Src: /src/xen/xen/common/memory.c:2034,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:2037,1
    - Dst: p2m_mem_paging_populate
      Src: /src/xen/xen/common/memory.c:2039,1
    - Dst: p2m_is_shared
      Src: /src/xen/xen/common/memory.c:2044,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:2047,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:2056,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - d
    - gfn
    - readonly
    - p2mt_p
    - page_p
    argTypes:
    - struct domain*
    - gfn_t
    - bool
    - p2m_type_t*
    - struct page_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2068
    functionName: check_get_page_from_gfn
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 6
    functionsReached:
    - p2m_mem_paging_populate
    - gfn_x
    - p2m_is_shared
    - put_page
    - p2m_is_paging
    - get_page_from_gfn
    linkageType: ''
    returnType: int
    signature: "int check_get_page_from_gfn(struct domain *d, gfn_t gfn, bool readonly,\n
      \                           p2m_type_t *p2mt_p, struct page_info **page_p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_get_page_from_gfn
      Src: /src/xen/xen/common/memory.c:2079,1
    - Dst: _gfn
      Src: /src/xen/xen/common/memory.c:2079,1
    - Dst: get_page_type
      Src: /src/xen/xen/common/memory.c:2083,1
    - Dst: put_page
      Src: /src/xen/xen/common/memory.c:2085,1
    - Dst: __map_domain_page_global
      Src: /src/xen/xen/common/memory.c:2089,1
    - Dst: put_page_and_type
      Src: /src/xen/xen/common/memory.c:2092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - d
    - gmfn
    - _page
    - _va
    argTypes:
    - struct domain*
    - unsigned long
    - struct page_info**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2070
    functionDepth: 3
    functionLinenumber: 2070
    functionLinenumberEnd: 2100
    functionName: prepare_ring_for_helper
    functionSourceFile: /src/xen/xen/common/memory.c
    functionUses: 3
    functionsReached:
    - put_page_and_type
    - get_page_type
    - check_get_page_from_gfn
    - _gfn
    - put_page
    - __map_domain_page_global
    linkageType: ''
    returnType: int
    signature: "int prepare_ring_for_helper(\n    struct domain *d, unsigned long
      gmfn, struct page_info **_page,\n    void **_va)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/monitor.c:36,1
    - Dst: xsm_vm_event_control
      Src: /src/xen/xen/common/monitor.c:39,1
    - Dst: unlikely
      Src: /src/xen/xen/common/monitor.c:40,1
    - Dst: unlikely
      Src: /src/xen/xen/common/monitor.c:50,1
    - Dst: unlikely
      Src: /src/xen/xen/common/monitor.c:53,1
    - Dst: arch_monitor_get_capabilities
      Src: /src/xen/xen/common/monitor.c:53,1
    - Dst: arch_monitor_get_capabilities
      Src: /src/xen/xen/common/monitor.c:58,1
    - Dst: arch_monitor_domctl_op
      Src: /src/xen/xen/common/monitor.c:63,1
    - Dst: unlikely
      Src: /src/xen/xen/common/monitor.c:72,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/monitor.c:75,1
    - Dst: arch_monitor_allow_userspace
      Src: /src/xen/xen/common/monitor.c:78,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/monitor.c:79,1
    - Dst: arch_monitor_domctl_event
      Src: /src/xen/xen/common/monitor.c:85,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - d
    - mop
    argTypes:
    - struct domain*
    - struct xen_domctl_monitor_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 89
    functionName: monitor_domctl
    functionSourceFile: /src/xen/xen/common/monitor.c
    functionUses: 1
    functionsReached:
    - domain_unpause
    - arch_monitor_allow_userspace
    - domain_pause
    - arch_monitor_get_capabilities
    - arch_monitor_domctl_event
    - xsm_vm_event_control
    - arch_monitor_domctl_op
    - unlikely
    linkageType: ''
    returnType: int
    signature: int monitor_domctl(struct domain *d, struct xen_domctl_monitor_op *mop)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vm_event_claim_slot
      Src: /src/xen/xen/common/monitor.c:96,1
    - Dst: vm_event_sync_event
      Src: /src/xen/xen/common/monitor.c:116,1
    - Dst: vm_event_vcpu_pause
      Src: /src/xen/xen/common/monitor.c:117,1
    - Dst: altp2m_active
      Src: /src/xen/xen/common/monitor.c:121,1
    - Dst: altp2m_vcpu_idx
      Src: /src/xen/xen/common/monitor.c:124,1
    - Dst: vm_event_fill_regs
      Src: /src/xen/xen/common/monitor.c:127,1
    - Dst: vm_event_put_request
      Src: /src/xen/xen/common/monitor.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - v
    - sync
    - req
    argTypes:
    - struct vcpu*
    - bool
    - vm_event_request_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: monitor_traps
    functionSourceFile: /src/xen/xen/common/monitor.c
    functionUses: 13
    functionsReached:
    - vm_event_claim_slot
    - altp2m_vcpu_idx
    - altp2m_active
    - vm_event_sync_event
    - vm_event_put_request
    - vm_event_vcpu_pause
    - vm_event_fill_regs
    linkageType: ''
    returnType: int
    signature: int monitor_traps(struct vcpu *v, bool sync, vm_event_request_t *req)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: monitor_traps
      Src: /src/xen/xen/common/monitor.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 133
    functionDepth: 7
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: monitor_guest_request
    functionSourceFile: /src/xen/xen/common/monitor.c
    functionUses: 2
    functionsReached:
    - monitor_traps
    linkageType: ''
    returnType: void
    signature: void monitor_guest_request(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:44,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:45,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/spinlock.c:45,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:47,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:48,1
    - Dst: XFREE
      Src: /src/xen/xen/common/spinlock.c:55,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 63
    functionName: cpu_lockdebug_callback
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - XFREE
    - per_cpu
    - printk
    - xzalloc_array
    linkageType: ''
    returnType: void
    signature: "void cpu_lockdebug_callback(struct notifier_block *nfb,\n                                           unsigned
      long action,\n                                           void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/spinlock.c:73,1
    - Dst: cpu_lockdebug_callback
      Src: /src/xen/xen/common/spinlock.c:74,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: lockdebug_init
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - smp_processor_id
    - cpu_lockdebug_callback
    linkageType: ''
    returnType: int
    signature: int lockdebug_init(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/spinlock.c:84,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:85,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:86,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:87,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:90,1
    - Dst: unlikely
      Src: /src/xen/xen/common/spinlock.c:92,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/spinlock.c:92,1
    - Dst: unlikely
      Src: /src/xen/xen/common/spinlock.c:122,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/spinlock.c:127,1
    - Dst: val::val
      Src: /src/xen/xen/common/spinlock.c:127,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:131,1
    - Dst: BUG
      Src: /src/xen/xen/common/spinlock.c:133,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:143,1
    - Dst: BUG
      Src: /src/xen/xen/common/spinlock.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - debug
    - try
    argTypes:
    - union lock_debug*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 146
    functionName: check_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 5
    functionsReached:
    - BUG
    - smp_processor_id
    - BUILD_BUG_ON
    - per_cpu
    - printk
    - unlikely
    - val::val
    - cmpxchg
    - local_irq_is_enabled
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void check_lock(union lock_debug *debug, bool try)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/spinlock.c:150,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/spinlock.c:150,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/spinlock.c:164,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/spinlock.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - debug
    argTypes:
    - union lock_debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: check_barrier
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - local_irq_is_enabled
    - atomic_read
    - unlikely
    linkageType: ''
    returnType: void
    signature: void check_barrier(union lock_debug *debug)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:169,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:170,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:171,1
    - Dst: local_irq_save
      Src: /src/xen/xen/common/spinlock.c:177,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:184,1
    - Dst: WARN
      Src: /src/xen/xen/common/spinlock.c:185,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - debug
    argTypes:
    - union lock_debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 189
    functionName: lock_enter
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 8
    functionsReached:
    - smp_processor_id
    - WARN
    - per_cpu
    - printk
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void lock_enter(const union lock_debug *debug)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:193,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:194,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/spinlock.c:195,1
    - Dst: local_irq_save
      Src: /src/xen/xen/common/spinlock.c:202,1
    - Dst: memmove
      Src: /src/xen/xen/common/spinlock.c:208,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:213,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:221,1
    - Dst: WARN
      Src: /src/xen/xen/common/spinlock.c:222,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - debug
    argTypes:
    - union lock_debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: lock_exit
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 4
    functionsReached:
    - smp_processor_id
    - WARN
    - memmove
    - per_cpu
    - printk
    - local_irq_restore
    - local_irq_save
    linkageType: ''
    returnType: void
    signature: void lock_exit(const union lock_debug *debug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:230,1
    - Dst: lock_enter
      Src: /src/xen/xen/common/spinlock.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - debug
    argTypes:
    - union lock_debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: got_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - lock_enter
    linkageType: ''
    returnType: void
    signature: void got_lock(union lock_debug *debug)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/common/spinlock.c:237,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/spinlock.c:238,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:238,1
    - Dst: lock_exit
      Src: /src/xen/xen/common/spinlock.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - debug
    argTypes:
    - union lock_debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: rel_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - lock_exit
    - BUG_ON
    - atomic_read
    - smp_processor_id
    linkageType: ''
    returnType: void
    signature: void rel_lock(union lock_debug *debug)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/common/spinlock.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: spin_debug_enable
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 5
    functionsReached:
    - atomic_inc
    linkageType: ''
    returnType: void
    signature: void spin_debug_enable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec
      Src: /src/xen/xen/common/spinlock.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: spin_debug_disable
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 5
    functionsReached:
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void spin_debug_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: check_barrier
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_barrier(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: got_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: got_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: rel_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rel_lock(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: LOCK_PROFILE_VAR
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_VAR(var, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: LOCK_PROFILE_BLOCK
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_BLOCK(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tst
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: LOCK_PROFILE_BLKACC
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_BLKACC(tst, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: LOCK_PROFILE_GOT
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_PROFILE_GOT(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_rmb
      Src: /src/xen/xen/common/spinlock.c:302,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/spinlock.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - spinlock_tickets_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: spinlock_tickets_t::observe_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - read_atomic
    - smp_rmb
    linkageType: ''
    returnType: always_inline
    signature: always_inline spinlock_tickets_t observe_lock(spinlock_tickets_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_rmb
      Src: /src/xen/xen/common/spinlock.c:309,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/spinlock.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - spinlock_tickets_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: observe_head
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - read_atomic
    - smp_rmb
    linkageType: ''
    returnType: always_inline
    signature: always_inline observe_head(const spinlock_tickets_t *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_PROFILE_VAR
      Src: /src/xen/xen/common/spinlock.c:319,1
    - Dst: check_lock
      Src: /src/xen/xen/common/spinlock.c:321,1
    - Dst: preempt_disable
      Src: /src/xen/xen/common/spinlock.c:322,1
    - Dst: arch_fetch_and_add
      Src: /src/xen/xen/common/spinlock.c:323,1
    - Dst: observe_head
      Src: /src/xen/xen/common/spinlock.c:324,1
    - Dst: LOCK_PROFILE_BLOCK
      Src: /src/xen/xen/common/spinlock.c:326,1
    - Dst: cb
      Src: /src/xen/xen/common/spinlock.c:328,1
    - Dst: arch_lock_relax
      Src: /src/xen/xen/common/spinlock.c:329,1
    - Dst: arch_lock_acquire_barrier
      Src: /src/xen/xen/common/spinlock.c:331,1
    - Dst: got_lock
      Src: /src/xen/xen/common/spinlock.c:332,1
    - Dst: LOCK_PROFILE_GOT
      Src: /src/xen/xen/common/spinlock.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - t
    - debug
    - profile
    - data
    argTypes:
    - spinlock_tickets_t*
    - union lock_debug*
    - struct lock_profile*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 334
    functionName: always_inline::spin_lock_common
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - LOCK_PROFILE_VAR
    - cb
    - arch_lock_acquire_barrier
    - observe_head
    - LOCK_PROFILE_BLOCK
    - check_lock
    - LOCK_PROFILE_GOT
    - preempt_disable
    - arch_fetch_and_add
    - arch_lock_relax
    - got_lock
    linkageType: ''
    returnType: void
    signature: "void always_inline spin_lock_common(spinlock_tickets_t *t,\n                                           union
      lock_debug *debug,\n                                           struct lock_profile
      *profile,\n                                           void (*cb)(void *data),
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_common
      Src: /src/xen/xen/common/spinlock.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: _spin_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 6
    functionsReached:
    - spin_lock_common
    linkageType: ''
    returnType: void
    signature: void _spin_lock(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_common
      Src: /src/xen/xen/common/spinlock.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock
    - data
    argTypes:
    - spinlock_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: _spin_lock_cb
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - spin_lock_common
    linkageType: ''
    returnType: void
    signature: void _spin_lock_cb(spinlock_t *lock, void (*cb)(void *data), void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/spinlock.c:349,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/spinlock.c:349,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/spinlock.c:350,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/spinlock.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: _spin_lock_irq
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - local_irq_disable
    - local_irq_is_enabled
    - _spin_lock
    linkageType: ''
    returnType: void
    signature: void _spin_lock_irq(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/common/spinlock.c:358,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/spinlock.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: _spin_lock_irqsave
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - local_irq_save
    - _spin_lock
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _spin_lock_irqsave(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rel_lock
      Src: /src/xen/xen/common/spinlock.c:368,1
    - Dst: arch_lock_release_barrier
      Src: /src/xen/xen/common/spinlock.c:369,1
    - Dst: add_sized
      Src: /src/xen/xen/common/spinlock.c:370,1
    - Dst: arch_lock_signal
      Src: /src/xen/xen/common/spinlock.c:371,1
    - Dst: preempt_enable
      Src: /src/xen/xen/common/spinlock.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - t
    - debug
    - profile
    argTypes:
    - spinlock_tickets_t*
    - union lock_debug*
    - struct lock_profile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: always_inline::spin_unlock_common
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - add_sized
    - arch_lock_signal
    - preempt_enable
    - arch_lock_release_barrier
    - rel_lock
    linkageType: ''
    returnType: void
    signature: "void always_inline spin_unlock_common(spinlock_tickets_t *t,\n                                             union
      lock_debug *debug,\n                                             struct lock_profile
      *profile)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock_common
      Src: /src/xen/xen/common/spinlock.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: _spin_unlock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - spin_unlock_common
    linkageType: ''
    returnType: void
    signature: void _spin_unlock(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spin_unlock
      Src: /src/xen/xen/common/spinlock.c:382,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/spinlock.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: _spin_unlock_irq
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - _spin_unlock
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void _spin_unlock_irq(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _spin_unlock
      Src: /src/xen/xen/common/spinlock.c:388,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - flags
    argTypes:
    - spinlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: _spin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - _spin_unlock
    linkageType: ''
    returnType: void
    signature: void _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - spinlock_tickets_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: always_inline::spin_is_locked_common
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool always_inline spin_is_locked_common(const spinlock_tickets_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_is_locked_common
      Src: /src/xen/xen/common/spinlock.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: _spin_is_locked
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_is_locked_common
    linkageType: ''
    returnType: bool
    signature: bool _spin_is_locked(const spinlock_t *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: preempt_disable
      Src: /src/xen/xen/common/spinlock.c:412,1
    - Dst: check_lock
      Src: /src/xen/xen/common/spinlock.c:413,1
    - Dst: observe_lock
      Src: /src/xen/xen/common/spinlock.c:414,1
    - Dst: preempt_enable
      Src: /src/xen/xen/common/spinlock.c:417,1
    - Dst: old::old
      Src: /src/xen/xen/common/spinlock.c:420,1
    - Dst: tail::tail
      Src: /src/xen/xen/common/spinlock.c:421,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/spinlock.c:422,1
    - Dst: head_tail::head_tail
      Src: /src/xen/xen/common/spinlock.c:422,1
    - Dst: preempt_enable
      Src: /src/xen/xen/common/spinlock.c:424,1
    - Dst: got_lock
      Src: /src/xen/xen/common/spinlock.c:431,1
    - Dst: LOCK_PROFILE_GOT
      Src: /src/xen/xen/common/spinlock.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - t
    - debug
    - profile
    argTypes:
    - spinlock_tickets_t*
    - union lock_debug*
    - struct lock_profile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 435
    functionName: always_inline::spin_trylock_common
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - head_tail::head_tail
    - old::old
    - preempt_enable
    - check_lock
    - observe_lock
    - LOCK_PROFILE_GOT
    - preempt_disable
    - tail::tail
    - cmpxchg
    - got_lock
    linkageType: ''
    returnType: bool
    signature: "bool always_inline spin_trylock_common(spinlock_tickets_t *t,\n                                              union
      lock_debug *debug,\n                                              struct lock_profile
      *profile)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock_common
      Src: /src/xen/xen/common/spinlock.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: _spin_trylock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_trylock_common
    linkageType: ''
    returnType: bool
    signature: bool _spin_trylock(spinlock_t *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_PROFILE_VAR
      Src: /src/xen/xen/common/spinlock.c:447,1
    - Dst: NOW
      Src: /src/xen/xen/common/spinlock.c:447,1
    - Dst: check_barrier
      Src: /src/xen/xen/common/spinlock.c:449,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/spinlock.c:450,1
    - Dst: observe_lock
      Src: /src/xen/xen/common/spinlock.c:451,1
    - Dst: observe_head
      Src: /src/xen/xen/common/spinlock.c:454,1
    - Dst: arch_lock_relax
      Src: /src/xen/xen/common/spinlock.c:455,1
    - Dst: LOCK_PROFILE_BLKACC
      Src: /src/xen/xen/common/spinlock.c:456,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/spinlock.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - t
    - debug
    - profile
    argTypes:
    - spinlock_tickets_t*
    - union lock_debug*
    - struct lock_profile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 459
    functionName: always_inline::spin_barrier_common
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - LOCK_PROFILE_VAR
    - smp_mb
    - LOCK_PROFILE_BLKACC
    - observe_head
    - observe_lock
    - check_barrier
    - arch_lock_relax
    - NOW
    linkageType: ''
    returnType: void
    signature: "void always_inline spin_barrier_common(spinlock_tickets_t *t,\n                                              union
      lock_debug *debug,\n                                              struct lock_profile
      *profile)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_barrier_common
      Src: /src/xen/xen/common/spinlock.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - spinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: _spin_barrier
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_barrier_common
    linkageType: ''
    returnType: void
    signature: void _spin_barrier(spinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_is_locked_common
      Src: /src/xen/xen/common/spinlock.c:474,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 476
    functionName: _rspin_is_locked
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - spin_is_locked_common
    linkageType: ''
    returnType: bool
    signature: bool _rspin_is_locked(const rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_barrier_common
      Src: /src/xen/xen/common/spinlock.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: _rspin_barrier
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_barrier_common
    linkageType: ''
    returnType: void
    signature: void _rspin_barrier(rspinlock_t *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:485,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:488,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:489,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:490,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:491,1
    - Dst: check_lock
      Src: /src/xen/xen/common/spinlock.c:493,1
    - Dst: likely
      Src: /src/xen/xen/common/spinlock.c:495,1
    - Dst: spin_trylock_common
      Src: /src/xen/xen/common/spinlock.c:497,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/spinlock.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 508
    functionName: _rspin_trylock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - likely
    - check_lock
    - BUILD_BUG_ON
    - ASSERT
    - spin_trylock_common
    linkageType: ''
    returnType: bool
    signature: bool _rspin_trylock(rspinlock_t *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/spinlock.c:512,1
    - Dst: likely
      Src: /src/xen/xen/common/spinlock.c:514,1
    - Dst: spin_lock_common
      Src: /src/xen/xen/common/spinlock.c:516,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/spinlock.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: _rspin_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - spin_lock_common
    - smp_processor_id
    - ASSERT
    - likely
    linkageType: ''
    returnType: void
    signature: void _rspin_lock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/common/spinlock.c:530,1
    - Dst: _rspin_lock
      Src: /src/xen/xen/common/spinlock.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 534
    functionName: _rspin_lock_irqsave
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - _rspin_lock
    - local_irq_save
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _rspin_lock_irqsave(rspinlock_t *lock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/spinlock.c:538,1
    - Dst: spin_unlock_common
      Src: /src/xen/xen/common/spinlock.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: _rspin_unlock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_unlock_common
    - likely
    linkageType: ''
    returnType: void
    signature: void _rspin_unlock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rspin_unlock
      Src: /src/xen/xen/common/spinlock.c:547,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - flags
    argTypes:
    - rspinlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: _rspin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - _rspin_unlock
    linkageType: ''
    returnType: void
    signature: void _rspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_lock
      Src: /src/xen/xen/common/spinlock.c:553,1
    - Dst: unlikely
      Src: /src/xen/xen/common/spinlock.c:555,1
    - Dst: spin_trylock_common
      Src: /src/xen/xen/common/spinlock.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: _nrspin_trylock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - spin_trylock_common
    - check_lock
    linkageType: ''
    returnType: bool
    signature: bool _nrspin_trylock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_common
      Src: /src/xen/xen/common/spinlock.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: _nrspin_lock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - spin_lock_common
    linkageType: ''
    returnType: void
    signature: void _nrspin_lock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock_common
      Src: /src/xen/xen/common/spinlock.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: _nrspin_unlock
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_unlock_common
    linkageType: ''
    returnType: void
    signature: void _nrspin_unlock(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/spinlock.c:574,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/spinlock.c:574,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/common/spinlock.c:575,1
    - Dst: _nrspin_lock
      Src: /src/xen/xen/common/spinlock.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: _nrspin_lock_irq
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - local_irq_disable
    - local_irq_is_enabled
    - _nrspin_lock
    linkageType: ''
    returnType: void
    signature: void _nrspin_lock_irq(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _nrspin_unlock
      Src: /src/xen/xen/common/spinlock.c:581,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/common/spinlock.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: _nrspin_unlock_irq
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - _nrspin_unlock
    - local_irq_enable
    linkageType: ''
    returnType: void
    signature: void _nrspin_unlock_irq(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/common/spinlock.c:589,1
    - Dst: _nrspin_lock
      Src: /src/xen/xen/common/spinlock.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - rspinlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 593
    functionName: _nrspin_lock_irqsave
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - local_irq_save
    - _nrspin_lock
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _nrspin_lock_irqsave(rspinlock_t *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _nrspin_unlock
      Src: /src/xen/xen/common/spinlock.c:597,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/spinlock.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lock
    - flags
    argTypes:
    - rspinlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 599
    functionName: _nrspin_unlock_irqrestore
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - local_irq_restore
    - _nrspin_unlock
    linkageType: ''
    returnType: void
    signature: void _nrspin_unlock_irqrestore(rspinlock_t *lock, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/spinlock.c:625,1
    - Dst: sub
      Src: /src/xen/xen/common/spinlock.c:629,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/spinlock.c:630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - sub
    - par
    argTypes:
    - lock_profile_subfunc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: spinlock_profile_iterate
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - sub
    linkageType: ''
    returnType: void
    signature: void spinlock_profile_iterate(lock_profile_subfunc *sub, void *par)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:650,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:652,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:653,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:655,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:657,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - data
    - type
    - idx
    - par
    argTypes:
    - struct lock_profile*
    - int32_t
    - int32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 661
    functionName: spinlock_profile_print_elem
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: "void spinlock_profile_print_elem(struct lock_profile *data,\n    int32_t
      type, int32_t idx, void *par)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/spinlock.c:665,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 672
    functionName: spinlock_profile_printall
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - printk
    - NOW
    linkageType: ''
    returnType: void
    signature: void spinlock_profile_printall(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - data
    - type
    - idx
    - par
    argTypes:
    - struct lock_profile*
    - int32_t
    - int32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 681
    functionName: spinlock_profile_reset_elem
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void spinlock_profile_reset_elem(struct lock_profile *data,\n    int32_t
      type, int32_t idx, void *par)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/spinlock.c:685,1
    - Dst: printk
      Src: /src/xen/xen/common/spinlock.c:688,1
    - Dst: spinlock_profile_iterate
      Src: /src/xen/xen/common/spinlock.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 691
    functionName: spinlock_profile_reset
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spinlock_profile_iterate
    - printk
    - NOW
    linkageType: ''
    returnType: void
    signature: void spinlock_profile_reset(unsigned char key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/spinlock.c:710,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/spinlock.c:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - data
    - type
    - idx
    - par
    argTypes:
    - struct lock_profile*
    - int32_t
    - int32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 723
    functionName: spinlock_profile_ucopy_elem
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - copy_to_guest_offset
    - safe_strcpy
    linkageType: ''
    returnType: void
    signature: "void spinlock_profile_ucopy_elem(struct lock_profile *data,\n    int32_t
      type, int32_t idx, void *par)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spinlock_profile_reset
      Src: /src/xen/xen/common/spinlock.c:734,1
    - Dst: spinlock_profile_iterate
      Src: /src/xen/xen/common/spinlock.c:741,1
    - Dst: NOW
      Src: /src/xen/xen/common/spinlock.c:742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - pc
    argTypes:
    - struct xen_sysctl_lockprof_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 752
    functionName: spinlock_profile_control
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 1
    functionsReached:
    - NOW
    - spinlock_profile_iterate
    - spinlock_profile_reset
    linkageType: ''
    returnType: int
    signature: int spinlock_profile_control(struct xen_sysctl_lockprof_op *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/spinlock.c:759,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/spinlock.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - type
    - qhead
    - idx
    argTypes:
    - int32_t
    - struct lock_profile_qhead*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 763
    functionName: _lock_profile_register_struct
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void _lock_profile_register_struct(\n    int32_t type, struct lock_profile_qhead
      *qhead, int32_t idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/spinlock.c:770,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/spinlock.c:779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - type
    - qhead
    argTypes:
    - int32_t
    - struct lock_profile_qhead*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 780
    functionName: _lock_profile_deregister_struct
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: "void _lock_profile_deregister_struct(\n    int32_t type, struct lock_profile_qhead
      *qhead)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/spinlock.c:789,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/spinlock.c:789,1
    - Dst: _lock_profile_register_struct
      Src: /src/xen/xen/common/spinlock.c:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 806
    functionName: lock_prof_init
    functionSourceFile: /src/xen/xen/common/spinlock.c
    functionUses: 0
    functionsReached:
    - _lock_profile_register_struct
    - ARRAY_SIZE
    - BUILD_BUG_ON
    linkageType: ''
    returnType: int
    signature: int lock_prof_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/livepatch_elf.c:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - elf
    - name
    argTypes:
    - struct livepatch_elf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: livepatch_elf_sec_by_name
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct livepatch_elf_sec
    signature: "struct livepatch_elf_sec *\nlivepatch_elf_sec_by_name(const struct
      livepatch_elf *elf,\n                          const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sec
    argTypes:
    - struct livepatch_elf_sec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: elf_verify_strtab
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int elf_verify_strtab(const struct livepatch_elf_sec *sec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/livepatch_elf.c:55,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:67,1
    - Dst: elf_verify_strtab
      Src: /src/xen/xen/common/livepatch_elf.c:160,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - elf
    - data
    argTypes:
    - struct livepatch_elf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 168
    functionName: elf_resolve_sections
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - elf_verify_strtab
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int elf_resolve_sections(struct livepatch_elf *elf, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elf_verify_strtab
      Src: /src/xen/xen/common/livepatch_elf.c:185,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - elf
    - data
    argTypes:
    - struct livepatch_elf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: elf_resolve_section_names
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - elf_verify_strtab
    linkageType: ''
    returnType: int
    signature: int elf_resolve_section_names(struct livepatch_elf *elf, const void
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:232,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:233,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:236,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/livepatch_elf.c:241,1
    - Dst: arch_livepatch_symbol_deny
      Src: /src/xen/xen/common/livepatch_elf.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - elf
    - data
    argTypes:
    - struct livepatch_elf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 277
    functionName: elf_get_sym
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_symbol_deny
    - ASSERT
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int elf_get_sym(struct livepatch_elf *elf, const void *data)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:284,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch_elf.c:295,1
    - Dst: symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch_elf.c:301,1
    - Dst: livepatch_symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch_elf.c:304,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch_elf.c:313,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch_elf.c:318,1
    - Dst: livepatch_elf_ignore_section
      Src: /src/xen/xen/common/livepatch_elf.c:336,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch_elf.c:338,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch_elf.c:347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 360
    functionName: livepatch_elf_resolve_symbols
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - livepatch_symbols_lookup_by_name
    - livepatch_elf_ignore_section
    - ASSERT
    - printk
    - symbols_lookup_by_name
    - dprintk
    linkageType: ''
    returnType: int
    signature: int livepatch_elf_resolve_symbols(struct livepatch_elf *elf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch_elf.c:369,1
    - Dst: arch_livepatch_perform_rela
      Src: /src/xen/xen/common/livepatch_elf.c:414,1
    - Dst: arch_livepatch_perform_rel
      Src: /src/xen/xen/common/livepatch_elf.c:416,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 33
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 423
    functionName: livepatch_elf_perform_relocs
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_perform_rel
    - ASSERT
    - arch_livepatch_perform_rela
    linkageType: ''
    returnType: int
    signature: int livepatch_elf_perform_relocs(struct livepatch_elf *elf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_ELF
      Src: /src/xen/xen/common/livepatch_elf.c:437,1
    - Dst: arch_livepatch_verify_elf
      Src: /src/xen/xen/common/livepatch_elf.c:456,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 505
    functionName: livepatch_header_check
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_verify_elf
    - IS_ELF
    linkageType: ''
    returnType: int
    signature: int livepatch_header_check(const struct livepatch_elf *elf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_header_check
      Src: /src/xen/xen/common/livepatch_elf.c:513,1
    - Dst: elf_resolve_sections
      Src: /src/xen/xen/common/livepatch_elf.c:517,1
    - Dst: elf_resolve_section_names
      Src: /src/xen/xen/common/livepatch_elf.c:521,1
    - Dst: elf_get_sym
      Src: /src/xen/xen/common/livepatch_elf.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - elf
    - data
    argTypes:
    - struct livepatch_elf*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 530
    functionName: livepatch_elf_load
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - elf_resolve_sections
    - livepatch_header_check
    - elf_resolve_section_names
    - elf_get_sym
    linkageType: ''
    returnType: int
    signature: int livepatch_elf_load(struct livepatch_elf *elf, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch_elf.c:534,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch_elf.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: livepatch_elf_free
    functionSourceFile: /src/xen/xen/common/livepatch_elf.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void livepatch_elf_free(struct livepatch_elf *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_numa_disabled
      Src: /src/xen/xen/common/numa.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: numa_disabled
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 5
    functionsReached:
    - arch_numa_disabled
    linkageType: ''
    returnType: bool
    signature: bool numa_disabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: node_set
      Src: /src/xen/xen/common/numa.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: numa_set_processor_nodes_parsed
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 2
    functionsReached:
    - node_set
    linkageType: ''
    returnType: void
    signature: void numa_set_processor_nodes_parsed(nodeid_t node)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - start
    - end
    - node
    argTypes:
    - paddr_t
    - paddr_t
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: valid_numa_range
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_numa_range(paddr_t start, paddr_t end, nodeid_t node)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 6
    argNames:
    - nid
    - start
    - end
    - nd_start
    - nd_end
    - mblkid
    argTypes:
    - nodeid_t
    - paddr_t
    - paddr_t
    - paddr_t
    - paddr_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 117
    functionName: conflicting_memblks
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum conflicts
    signature: "enum conflicts conflicting_memblks(\n    nodeid_t nid, paddr_t start,
      paddr_t end, paddr_t nd_start,\n    paddr_t nd_end, unsigned int *mblkid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - i
    - start
    - end
    argTypes:
    - nodeid_t
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: cutoff_node
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cutoff_node(nodeid_t i, paddr_t start, paddr_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: numa_memblks_available
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool numa_memblks_available(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: conflicting_memblks
      Src: /src/xen/xen/common/numa.c:182,1
    - Dst: test_bit
      Src: /src/xen/xen/common/numa.c:187,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:189,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:198,1
    - Dst: numa_node_to_arch_nid
      Src: /src/xen/xen/common/numa.c:201,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:206,1
    - Dst: numa_node_to_arch_nid
      Src: /src/xen/xen/common/numa.c:209,1
    - Dst: node_set
      Src: /src/xen/xen/common/numa.c:219,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:224,1
    - Dst: memmove
      Src: /src/xen/xen/common/numa.c:235,1
    - Dst: memmove
      Src: /src/xen/xen/common/numa.c:240,1
    - Dst: test_bit
      Src: /src/xen/xen/common/numa.c:255,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/numa.c:257,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/numa.c:259,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 5
    argNames:
    - node
    - arch_nid
    - start
    - size
    - hotplug
    argTypes:
    - nodeid_t
    - unsigned int
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 265
    functionName: numa_update_node_memblks
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached:
    - __set_bit
    - __clear_bit
    - node_set
    - conflicting_memblks
    - memmove
    - printk
    - test_bit
    - numa_node_to_arch_nid
    linkageType: ''
    returnType: bool
    signature: "bool numa_update_node_memblks(nodeid_t node, unsigned int arch_nid,\n
      \                                    paddr_t start, paddr_t size, bool hotplug)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: arch_get_ram_range
      Src: /src/xen/xen/common/numa.c:283,1
    - Dst: for_each_node_mask
      Src: /src/xen/xen/common/numa.c:295,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 321
    functionName: nodes_cover_memory
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - for_each_node_mask
    - printk
    - arch_get_ram_range
    linkageType: ''
    returnType: bool
    signature: bool nodes_cover_memory(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cutoff_node
      Src: /src/xen/xen/common/numa.c:332,1
    - Dst: arch_numa_unavailable
      Src: /src/xen/xen/common/numa.c:335,1
    - Dst: nodes_cover_memory
      Src: /src/xen/xen/common/numa.c:338,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/common/numa.c:340,1
    - Dst: compute_hash_shift
      Src: /src/xen/xen/common/numa.c:344,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:348,1
    - Dst: numa_fw_bad
      Src: /src/xen/xen/common/numa.c:350,1
    - Dst: nodes_or
      Src: /src/xen/xen/common/numa.c:355,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:361,1
    - Dst: setup_node_bootmem
      Src: /src/xen/xen/common/numa.c:363,1
    - Dst: nodemask_test
      Src: /src/xen/xen/common/numa.c:370,1
    - Dst: numa_set_node
      Src: /src/xen/xen/common/numa.c:371,1
    - Dst: numa_init_array
      Src: /src/xen/xen/common/numa.c:374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 377
    functionName: numa_process_nodes
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - numa_set_node
    - cutoff_node
    - compute_hash_shift
    - arch_numa_unavailable
    - nodes_cover_memory
    - numa_fw_bad
    - nodemask_test
    - printk
    - setup_node_bootmem
    - nodes_or
    - numa_init_array
    linkageType: ''
    returnType: bool
    signature: bool numa_process_nodes(paddr_t start, paddr_t end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:361,1
    - Dst: setup_node_bootmem
      Src: /src/xen/xen/common/numa.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: for_each_node_mask
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 3
    functionsReached:
    - setup_node_bootmem
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_node_mask ( i, all_nodes_parsed )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/numa.c:393,1
    - Dst: paddr_to_pdx
      Src: /src/xen/xen/common/numa.c:397,1
    - Dst: paddr_to_pdx
      Src: /src/xen/xen/common/numa.c:398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 4
    argNames:
    - nodes
    - numnodes
    - shift
    - nodeids
    argTypes:
    - struct node*
    - unsigned int
    - unsigned int
    - nodeid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 423
    functionName: populate_memnodemap
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - memset
    - paddr_to_pdx
    linkageType: ''
    returnType: int
    signature: "int populate_memnodemap(const struct node *nodes,\n                                      unsigned
      int numnodes, unsigned int shift,\n                                      const
      nodeid_t *nodeids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/common/numa.c:427,1
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/common/numa.c:428,1
    - Dst: vmap_contig
      Src: /src/xen/xen/common/numa.c:430,1
    - Dst: panic
      Src: /src/xen/xen/common/numa.c:432,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:434,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/numa.c:435,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/numa.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 439
    functionName: allocate_cachealigned_memnodemap
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - vmap_contig
    - panic
    - mfn_to_maddr
    - printk
    - alloc_boot_pages
    linkageType: ''
    returnType: int
    signature: int allocate_cachealigned_memnodemap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pdx
      Src: /src/xen/xen/common/numa.c:454,1
    - Dst: paddr_to_pdx
      Src: /src/xen/xen/common/numa.c:455,1
    - Dst: min
      Src: /src/xen/xen/common/numa.c:471,1
    - Dst: find_first_bit
      Src: /src/xen/xen/common/numa.c:473,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 3
    argNames:
    - nodes
    - numnodes
    - nodeids
    argTypes:
    - struct node*
    - nodeid_t
    - nodeid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 478
    functionName: extract_lsb_from_nodes
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - min
    - paddr_to_pdx
    - find_first_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int extract_lsb_from_nodes(const struct node *nodes,\n                                                  nodeid_t
      numnodes,\n                                                  const nodeid_t
      *nodeids)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extract_lsb_from_nodes
      Src: /src/xen/xen/common/numa.c:483,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/numa.c:485,1
    - Dst: allocate_cachealigned_memnodemap
      Src: /src/xen/xen/common/numa.c:487,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:490,1
    - Dst: populate_memnodemap
      Src: /src/xen/xen/common/numa.c:492,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - nodes
    - numnodes
    - nodeids
    argTypes:
    - struct node*
    - unsigned int
    - nodeid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 501
    functionName: compute_hash_shift
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - allocate_cachealigned_memnodemap
    - populate_memnodemap
    - extract_lsb_from_nodes
    - printk
    linkageType: ''
    returnType: int
    signature: "int compute_hash_shift(const struct node *nodes,\n                              unsigned
      int numnodes, const nodeid_t *nodeids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/common/numa.c:519,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/common/numa.c:520,1
    - Dst: NODE_DATA
      Src: /src/xen/xen/common/numa.c:521,1
    - Dst: arch_get_ram_range
      Src: /src/xen/xen/common/numa.c:533,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/numa.c:535,1
    - Dst: min
      Src: /src/xen/xen/common/numa.c:535,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/numa.c:536,1
    - Dst: max
      Src: /src/xen/xen/common/numa.c:536,1
    - Dst: node_set_online
      Src: /src/xen/xen/common/numa.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - nodeid
    - start
    - end
    argTypes:
    - nodeid_t
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 540
    functionName: setup_node_bootmem
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 2
    functionsReached:
    - max
    - PFN_UP
    - NODE_DATA
    - paddr_to_pfn
    - arch_get_ram_range
    - min
    - node_set_online
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void setup_node_bootmem(nodeid_t nodeid, paddr_t start, paddr_t end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first_node
      Src: /src/xen/xen/common/numa.c:554,1
    - Dst: numa_set_node
      Src: /src/xen/xen/common/numa.c:559,1
    - Dst: cycle_node
      Src: /src/xen/xen/common/numa.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 562
    functionName: numa_init_array
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached:
    - numa_set_node
    - first_node
    - cycle_node
    linkageType: ''
    returnType: void
    signature: void numa_init_array(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/numa.c:574,1
    - Dst: multiple_bits_set
      Src: /src/xen/xen/common/numa.c:577,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:584,1
    - Dst: memset
      Src: /src/xen/xen/common/numa.c:588,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/numa.c:591,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/numa.c:594,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:597,1
    - Dst: node_set_online
      Src: /src/xen/xen/common/numa.c:600,1
    - Dst: compute_hash_shift
      Src: /src/xen/xen/common/numa.c:603,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:606,1
    - Dst: for_each_online_node
      Src: /src/xen/xen/common/numa.c:611,1
    - Dst: setup_node_bootmem
      Src: /src/xen/xen/common/numa.c:612,1
    - Dst: numa_init_array
      Src: /src/xen/xen/common/numa.c:614,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - start_pfn
    - end_pfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 617
    functionName: numa_emulation
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - compute_hash_shift
    - multiple_bits_set
    - pfn_to_paddr
    - node_set_online
    - printk
    - memset
    - setup_node_bootmem
    - numa_init_array
    - for_each_online_node
    linkageType: ''
    returnType: int
    signature: "int numa_emulation(unsigned long start_pfn,\n                                 unsigned
      long end_pfn)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/numa.c:623,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/numa.c:624,1
    - Dst: numa_emulation
      Src: /src/xen/xen/common/numa.c:627,1
    - Dst: numa_process_nodes
      Src: /src/xen/xen/common/numa.c:632,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:636,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:639,1
    - Dst: nodes_clear
      Src: /src/xen/xen/common/numa.c:650,1
    - Dst: node_set_online
      Src: /src/xen/xen/common/numa.c:651,1
    - Dst: numa_set_node
      Src: /src/xen/xen/common/numa.c:653,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/numa.c:655,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/numa.c:655,1
    - Dst: setup_node_bootmem
      Src: /src/xen/xen/common/numa.c:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - start_pfn
    - end_pfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 657
    functionName: numa_initmem_init
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 1
    functionsReached:
    - setup_node_bootmem
    - cpumask_copy
    - numa_emulation
    - nodes_clear
    - numa_process_nodes
    - pfn_to_paddr
    - printk
    - node_set_online
    - numa_set_node
    - cpumask_of
    linkageType: ''
    returnType: void
    signature: void numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/numa.c:661,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/numa.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 662
    functionName: numa_add_cpu
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 3
    functionsReached:
    - cpumask_set_cpu
    - cpu_to_node
    linkageType: ''
    returnType: void
    signature: void numa_add_cpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - node
    argTypes:
    - unsigned int
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: numa_set_node
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void numa_set_node(unsigned int cpu, nodeid_t node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/common/numa.c:672,1
    - Dst: strncmp
      Src: /src/xen/xen/common/numa.c:674,1
    - Dst: strncmp
      Src: /src/xen/xen/common/numa.c:677,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/numa.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - opt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 689
    functionName: numa_setup
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - strncmp
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int numa_setup(const char *opt)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/numa.c:694,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:698,1
    - Dst: _mfn
      Src: /src/xen/xen/common/numa.c:703,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/numa.c:703,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:705,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/numa.c:706,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/numa.c:706,1
    - Dst: avail_node_heap_pages
      Src: /src/xen/xen/common/numa.c:707,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/numa.c:709,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/numa.c:709,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:710,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/numa.c:711,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/numa.c:711,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/numa.c:714,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:721,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:723,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:731,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:733,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/numa.c:735,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:737,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/numa.c:744,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:746,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/numa.c:746,1
    - Dst: memset
      Src: /src/xen/xen/common/numa.c:748,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/numa.c:750,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/common/numa.c:751,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/numa.c:753,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/numa.c:756,1
    - Dst: for_each_online_node
      Src: /src/xen/xen/common/numa.c:758,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:759,1
    - Dst: read_trylock
      Src: /src/xen/xen/common/numa.c:761,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/numa.c:766,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:771,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:778,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:780,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:782,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/numa.c:787,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:793,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:800,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:802,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:808,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:810,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:815,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/numa.c:821,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/numa.c:824,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 73
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 825
    functionName: dump_numa
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - nrspin_unlock
    - for_each_online_node
    - node_start_pfn
    - mfn_to_nid
    - page_to_nid
    - rcu_read_unlock
    - page_list_for_each
    - node_spanned_pages
    - printk
    - read_trylock
    - NOW
    - read_unlock
    - avail_node_heap_pages
    - mfn_x
    - _mfn
    - cpumask_first
    - process_pending_softirqs
    - memset
    - rcu_read_lock
    - domain_tot_pages
    - nrspin_lock
    linkageType: ''
    returnType: void
    signature: void dump_numa(unsigned char key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/common/numa.c:703,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/numa.c:703,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:705,1
    - Dst: node_start_pfn
      Src: /src/xen/xen/common/numa.c:706,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/numa.c:706,1
    - Dst: avail_node_heap_pages
      Src: /src/xen/xen/common/numa.c:707,1
    - Dst: node_spanned_pages
      Src: /src/xen/xen/common/numa.c:709,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/numa.c:709,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:710,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/numa.c:711,1
    - Dst: mfn_to_nid
      Src: /src/xen/xen/common/numa.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 712
    functionName: for_each_online_node
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 4
    functionsReached:
    - node_start_pfn
    - mfn_to_nid
    - avail_node_heap_pages
    - mfn_x
    - _mfn
    - node_spanned_pages
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_node ( i )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:721,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 729
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 11
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( i )
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/numa.c:744,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:746,1
    - Dst: domain_tot_pages
      Src: /src/xen/xen/common/numa.c:746,1
    - Dst: memset
      Src: /src/xen/xen/common/numa.c:748,1
    - Dst: nrspin_lock
      Src: /src/xen/xen/common/numa.c:750,1
    - Dst: page_list_for_each
      Src: /src/xen/xen/common/numa.c:751,1
    - Dst: page_to_nid
      Src: /src/xen/xen/common/numa.c:753,1
    - Dst: nrspin_unlock
      Src: /src/xen/xen/common/numa.c:756,1
    - Dst: for_each_online_node
      Src: /src/xen/xen/common/numa.c:758,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:759,1
    - Dst: read_trylock
      Src: /src/xen/xen/common/numa.c:761,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/numa.c:766,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:771,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:778,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:780,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:782,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/numa.c:787,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:793,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:800,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:802,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:808,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:810,1
    - Dst: printk
      Src: /src/xen/xen/common/numa.c:815,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/numa.c:821,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 822
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 8
    functionsReached:
    - page_to_nid
    - read_unlock
    - nrspin_unlock
    - domain_tot_pages
    - page_list_for_each
    - process_pending_softirqs
    - nrspin_lock
    - printk
    - memset
    - read_trylock
    - for_each_online_node
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/numa.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 831
    functionName: register_numa_trigger
    functionSourceFile: /src/xen/xen/common/numa.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int register_numa_trigger(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/decompress.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: error
    functionSourceFile: /src/xen/xen/common/decompress.c
    functionUses: 321
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void error(const char *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:15,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:15,1
    - Dst: gunzip
      Src: /src/xen/xen/common/decompress.c:16,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:19,1
    - Dst: bunzip2
      Src: /src/xen/xen/common/decompress.c:20,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:22,1
    - Dst: unxz
      Src: /src/xen/xen/common/decompress.c:23,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:25,1
    - Dst: unlzma
      Src: /src/xen/xen/common/decompress.c:26,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:28,1
    - Dst: unlzo
      Src: /src/xen/xen/common/decompress.c:29,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:31,1
    - Dst: unlz4
      Src: /src/xen/xen/common/decompress.c:32,1
    - Dst: memcmp
      Src: /src/xen/xen/common/decompress.c:34,1
    - Dst: unzstd
      Src: /src/xen/xen/common/decompress.c:35,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 3
    argNames:
    - inbuf
    - len
    - outbuf
    argTypes:
    - void*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: decompress
    functionSourceFile: /src/xen/xen/common/decompress.c
    functionUses: 3
    functionsReached:
    - unlz4
    - unlzo
    - gunzip
    - memcmp
    - unlzma
    - unxz
    - bunzip2
    - unzstd
    linkageType: ''
    returnType: int
    signature: int decompress(void *inbuf, unsigned int len, void *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - year
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: __isleap
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __isleap(year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __isleap
      Src: /src/xen/xen/common/time.c:75,1
    - Dst: __isleap
      Src: /src/xen/xen/common/time.c:83,1
    - Dst: __isleap
      Src: /src/xen/xen/common/time.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - t
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 96
    functionName: gmtime
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 6
    functionsReached:
    - __isleap
    linkageType: ''
    returnType: struct tm
    signature: struct tm gmtime(unsigned long t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/time.c:103,1
    - Dst: shared_info
      Src: /src/xen/xen/common/time.c:105,1
    - Dst: version_update_begin
      Src: /src/xen/xen/common/time.c:106,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/time.c:107,1
    - Dst: shared_info
      Src: /src/xen/xen/common/time.c:110,1
    - Dst: shared_info
      Src: /src/xen/xen/common/time.c:111,1
    - Dst: likely
      Src: /src/xen/xen/common/time.c:113,1
    - Dst: has_32bit_shinfo
      Src: /src/xen/xen/common/time.c:113,1
    - Dst: shared_info
      Src: /src/xen/xen/common/time.c:118,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/time.c:121,1
    - Dst: version_update_end
      Src: /src/xen/xen/common/time.c:122,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/time.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 125
    functionName: update_domain_wallclock_time
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 8
    functionsReached:
    - spin_unlock
    - shared_info
    - version_update_begin
    - version_update_end
    - likely
    - smp_wmb
    - spin_lock
    - has_32bit_shinfo
    linkageType: ''
    returnType: void
    signature: void update_domain_wallclock_time(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECONDS
      Src: /src/xen/xen/common/time.c:134,1
    - Dst: do_div
      Src: /src/xen/xen/common/time.c:135,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/time.c:137,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/time.c:140,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/time.c:142,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/time.c:143,1
    - Dst: update_domain_wallclock_time
      Src: /src/xen/xen/common/time.c:144,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/time.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - secs
    - nsecs
    - system_time_base
    argTypes:
    - u64
    - unsigned int
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: do_settime
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 4
    functionsReached:
    - spin_unlock
    - rcu_read_unlock
    - SECONDS
    - for_each_domain
    - update_domain_wallclock_time
    - spin_lock
    - do_div
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void do_settime(u64 secs, unsigned int nsecs, u64 system_time_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/time.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: get_localtime
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 6
    functionsReached:
    - NOW
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_localtime(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECONDS
      Src: /src/xen/xen/common/time.c:158,1
    - Dst: NOW
      Src: /src/xen/xen/common/time.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: get_localtime_us
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 3
    functionsReached:
    - SECONDS
    - NOW
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_localtime_us(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/time.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: get_sec
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 2
    functionsReached:
    - NOW
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_sec(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/time.c:174,1
    - Dst: SECONDS
      Src: /src/xen/xen/common/time.c:174,1
    - Dst: do_div
      Src: /src/xen/xen/common/time.c:175,1
    - Dst: gmtime
      Src: /src/xen/xen/common/time.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ns
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: wallclock_time
    functionSourceFile: /src/xen/xen/common/time.c
    functionUses: 12
    functionsReached:
    - SECONDS
    - do_div
    - gmtime
    - NOW
    linkageType: ''
    returnType: struct tm
    signature: struct tm wallclock_time(uint64_t *ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hook
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: is_hook_enabled
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_hook_enabled(hook)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/livepatch.c:84,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - name
    - n
    argTypes:
    - struct xen_livepatch_name*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: get_name
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 11
    functionsReached:
    - copy_from_guest
    linkageType: ''
    returnType: void
    signature: void get_name(const struct xen_livepatch_name *name, char *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/xen/xen/common/livepatch.c:95,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/livepatch.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - upload
    - n
    argTypes:
    - struct xen_sysctl_livepatch_upload*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 108
    functionName: verify_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - guest_handle_okay
    - get_name
    linkageType: ''
    returnType: int
    signature: int verify_payload(const struct xen_sysctl_livepatch_upload *upload,
      char *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/livepatch.c:115,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/common/livepatch.c:116,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/livepatch.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: is_patch
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - list_for_each_entry_rcu
    - rcu_read_lock
    linkageType: ''
    returnType: bool
    signature: bool is_patch(const void *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:139,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/livepatch.c:139,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:140,1
    - Dst: strcmp
      Src: /src/xen/xen/common/livepatch.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - symname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: livepatch_symbols_lookup_by_name
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - spin_is_locked
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long livepatch_symbols_lookup_by_name(const char *symname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/livepatch.c:166,1
    - Dst: list_for_each_entry_rcu
      Src: /src/xen/xen/common/livepatch.c:167,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/livepatch.c:191,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/livepatch.c:196,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 4
    argNames:
    - addr
    - symbolsize
    - offset
    - namebuf
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 199
    functionName: livepatch_symbols_lookup
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - strlcpy
    - list_for_each_entry_rcu
    - rcu_read_lock
    linkageType: ''
    returnType: char
    signature: "char *cf_check livepatch_symbols_lookup(\n    unsigned long addr,
      unsigned long *symbolsize, unsigned long *offset,\n    char *namebuf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch.c:208,1
    - Dst: livepatch_symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch.c:211,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - f
    - elf
    argTypes:
    - struct livepatch_func*
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 223
    functionName: resolve_old_address
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - symbols_lookup_by_name
    - dprintk
    - livepatch_symbols_lookup_by_name
    linkageType: ''
    returnType: int
    signature: "int resolve_old_address(struct livepatch_func *f,\n                               const
      struct livepatch_elf *elf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:229,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/livepatch.c:229,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:230,1
    - Dst: strcmp
      Src: /src/xen/xen/common/livepatch.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: find_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct payload
    signature: struct payload *find_payload(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vfree
      Src: /src/xen/xen/common/livepatch.c:253,1
    - Dst: XFREE
      Src: /src/xen/xen/common/livepatch.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - payload
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 5
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: free_payload_data
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - vfree
    - XFREE
    linkageType: ''
    returnType: void
    signature: void free_payload_data(struct payload *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/livepatch.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sec
    - size
    - offset
    argTypes:
    - struct livepatch_elf_sec*
    - size_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: calc_section
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    linkageType: ''
    returnType: void
    signature: "void calc_section(const struct livepatch_elf_sec *sec, size_t *size,\n
      \                        unsigned int *offset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/livepatch.c:287,1
    - Dst: livepatch_elf_ignore_section
      Src: /src/xen/xen/common/livepatch.c:300,1
    - Dst: calc_section
      Src: /src/xen/xen/common/livepatch.c:304,1
    - Dst: calc_section
      Src: /src/xen/xen/common/livepatch.c:307,1
    - Dst: calc_section
      Src: /src/xen/xen/common/livepatch.c:310,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:313,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/livepatch.c:326,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/livepatch.c:326,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/livepatch.c:329,1
    - Dst: vmalloc_xen
      Src: /src/xen/xen/common/livepatch.c:330,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/livepatch.c:338,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/livepatch.c:339,1
    - Dst: livepatch_elf_ignore_section
      Src: /src/xen/xen/common/livepatch.c:348,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:372,1
    - Dst: memcpy
      Src: /src/xen/xen/common/livepatch.c:379,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:381,1
    - Dst: memset
      Src: /src/xen/xen/common/livepatch.c:385,1
    - Dst: strcmp
      Src: /src/xen/xen/common/livepatch.c:397,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:400,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - payload
    - elf
    argTypes:
    - struct payload*
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 279
    functionDepth: 5
    functionLinenumber: 279
    functionLinenumberEnd: 403
    functionName: move_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - calc_section
    - xmalloc_array
    - PFN_UP
    - vmalloc_xen
    - xfree
    - livepatch_elf_ignore_section
    - ASSERT
    - PAGE_ALIGN
    - memset
    - strcmp
    - dprintk
    - memcpy
    linkageType: ''
    returnType: int
    signature: int move_payload(struct payload *payload, struct livepatch_elf *elf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PFN_UP
      Src: /src/xen/xen/common/livepatch.c:410,1
    - Dst: arch_livepatch_secure
      Src: /src/xen/xen/common/livepatch.c:414,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/livepatch.c:418,1
    - Dst: arch_livepatch_secure
      Src: /src/xen/xen/common/livepatch.c:421,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/livepatch.c:426,1
    - Dst: arch_livepatch_secure
      Src: /src/xen/xen/common/livepatch.c:428,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - payload
    - elf
    argTypes:
    - struct payload*
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 433
    functionName: secure_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - arch_livepatch_secure
    - PFN_UP
    linkageType: ''
    returnType: int
    signature: int secure_payload(struct payload *payload, struct livepatch_elf *elf)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - elf
    - sec
    - sz
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sec*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: section_ok
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool section_ok(const struct livepatch_elf *elf,\n                       const
      struct livepatch_elf_sec *sec, size_t sz)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:459,1
    - Dst: xen_build_id_check
      Src: /src/xen/xen/common/livepatch.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - sec
    - id
    argTypes:
    - struct livepatch_elf_sec*
    - struct livepatch_build_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 474
    functionName: parse_buildid
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - xen_build_id_check
    linkageType: ''
    returnType: int
    signature: "int parse_buildid(const struct livepatch_elf_sec *sec,\n                         struct
      livepatch_build_id *id)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:482,1
    - Dst: parse_buildid
      Src: /src/xen/xen/common/livepatch.c:492,1
    - Dst: memcmp
      Src: /src/xen/xen/common/livepatch.c:509,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 519
    functionName: check_xen_buildid
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - parse_buildid
    - memcmp
    - livepatch_elf_sec_by_name
    linkageType: ''
    returnType: int
    signature: int check_xen_buildid(const struct livepatch_elf *elf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/livepatch.c:527,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 548
    functionName: check_special_sections
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - livepatch_elf_sec_by_name
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int check_special_sections(const struct livepatch_elf *elf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/livepatch.c:570,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:574,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 601
    functionName: check_patching_sections
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - livepatch_elf_sec_by_name
    - dprintk
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int check_patching_sections(const struct livepatch_elf *elf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/common/livepatch.c:625,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - func
    argTypes:
    - struct livepatch_func*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 633
    functionName: livepatch_verify_expectation_fn
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int livepatch_verify_expectation_fn(const struct livepatch_func *func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_verify_expectation_fn
      Src: /src/xen/xen/common/livepatch.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - payload
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 656
    functionName: livepatch_check_expectations
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - livepatch_verify_expectation_fn
    linkageType: ''
    returnType: int
    signature: int livepatch_check_expectations(const struct payload *payload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - elf
    - ','
    - hook
    - ','
    - section_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 671
    functionName: LIVEPATCH_ASSIGN_SINGLE_HOOK
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_ASSIGN_SINGLE_HOOK(elf, hook, section_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - elf
    - ','
    - hook
    - ','
    - nhooks
    - ','
    - section_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 686
    functionName: LIVEPATCH_ASSIGN_MULTI_HOOK
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIVEPATCH_ASSIGN_MULTI_HOOK(elf, hook, nhooks, section_name)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:698,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:701,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/livepatch.c:707,1
    - Dst: typeof
      Src: /src/xen/xen/common/livepatch.c:707,1
    - Dst: resolve_old_address
      Src: /src/xen/xen/common/livepatch.c:731,1
    - Dst: arch_livepatch_verify_func
      Src: /src/xen/xen/common/livepatch.c:735,1
    - Dst: livepatch_verify_distance
      Src: /src/xen/xen/common/livepatch.c:739,1
    - Dst: LIVEPATCH_ASSIGN_MULTI_HOOK
      Src: /src/xen/xen/common/livepatch.c:745,1
    - Dst: LIVEPATCH_ASSIGN_MULTI_HOOK
      Src: /src/xen/xen/common/livepatch.c:746,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:748,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:749,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:750,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:752,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:753,1
    - Dst: LIVEPATCH_ASSIGN_SINGLE_HOOK
      Src: /src/xen/xen/common/livepatch.c:754,1
    - Dst: parse_buildid
      Src: /src/xen/xen/common/livepatch.c:756,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:756,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:762,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:765,1
    - Dst: memcmp
      Src: /src/xen/xen/common/livepatch.c:767,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:769,1
    - Dst: parse_buildid
      Src: /src/xen/xen/common/livepatch.c:775,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:775,1
    - Dst: snprintf
      Src: /src/xen/xen/common/livepatch.c:798,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:799,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:803,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:810,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:831,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:847,1
    - Dst: ALT_ORIG_PTR
      Src: /src/xen/xen/common/livepatch.c:860,1
    - Dst: ALT_REPL_PTR
      Src: /src/xen/xen/common/livepatch.c:861,1
    - Dst: apply_alternatives
      Src: /src/xen/xen/common/livepatch.c:891,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:907,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:913,1
    - Dst: ALT_CALL_PTR
      Src: /src/xen/xen/common/livepatch.c:933,1
    - Dst: ALT_CALL_LEN
      Src: /src/xen/xen/common/livepatch.c:934,1
    - Dst: livepatch_apply_alt_calls
      Src: /src/xen/xen/common/livepatch.c:949,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:965,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:971,1
    - Dst: sort_exception_table
      Src: /src/xen/xen/common/livepatch.c:977,1
    - Dst: livepatch_elf_sec_by_name
      Src: /src/xen/xen/common/livepatch.c:988,1
    - Dst: section_ok
      Src: /src/xen/xen/common/livepatch.c:991,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 163
    argCount: 2
    argNames:
    - payload
    - elf
    argTypes:
    - struct payload*
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 1006
    functionName: prepare_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - snprintf
    - memcmp
    - typeof
    - ALT_CALL_LEN
    - apply_alternatives
    - livepatch_verify_distance
    - parse_buildid
    - resolve_old_address
    - dprintk
    - ALT_ORIG_PTR
    - LIVEPATCH_ASSIGN_MULTI_HOOK
    - section_ok
    - LIVEPATCH_ASSIGN_SINGLE_HOOK
    - ALT_REPL_PTR
    - ASSERT
    - sort_exception_table
    - ALT_CALL_PTR
    - arch_livepatch_verify_func
    - list_for_each_entry
    - livepatch_elf_sec_by_name
    - livepatch_apply_alt_calls
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: "int prepare_payload(struct payload *payload,\n                           struct
      livepatch_elf *elf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/common/livepatch.c:1038,1
    - Dst: arch_livepatch_symbol_ok
      Src: /src/xen/xen/common/livepatch.c:1041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - elf
    - sym
    argTypes:
    - struct livepatch_elf*
    - struct livepatch_elf_sym*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1042
    functionName: is_payload_symbol
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - strncmp
    - arch_livepatch_symbol_ok
    linkageType: ''
    returnType: bool
    signature: "bool is_payload_symbol(const struct livepatch_elf *elf,\n                              const
      struct livepatch_elf_sym *sym)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_payload_symbol
      Src: /src/xen/xen/common/livepatch.c:1055,1
    - Dst: strlen
      Src: /src/xen/xen/common/livepatch.c:1058,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/livepatch.c:1062,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/livepatch.c:1063,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1067,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1068,1
    - Dst: is_payload_symbol
      Src: /src/xen/xen/common/livepatch.c:1076,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/livepatch.c:1082,1
    - Dst: symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch.c:1103,1
    - Dst: livepatch_symbols_lookup_by_name
      Src: /src/xen/xen/common/livepatch.c:1104,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1108,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1109,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:1113,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:1119,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - payload
    - elf
    argTypes:
    - struct payload*
    - struct livepatch_elf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1129
    functionName: build_symbol_table
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - is_payload_symbol
    - livepatch_symbols_lookup_by_name
    - xzalloc_array
    - strlcpy
    - dprintk
    - strlen
    - symbols_lookup_by_name
    - xfree
    linkageType: ''
    returnType: int
    signature: "int build_symbol_table(struct payload *payload,\n                              const
      struct livepatch_elf *elf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1133,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/livepatch.c:1133,1
    - Dst: unregister_virtual_region
      Src: /src/xen/xen/common/livepatch.c:1134,1
    - Dst: list_del_rcu
      Src: /src/xen/xen/common/livepatch.c:1135,1
    - Dst: rcu_barrier
      Src: /src/xen/xen/common/livepatch.c:1136,1
    - Dst: free_payload_data
      Src: /src/xen/xen/common/livepatch.c:1139,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1140,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1141,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1131
    functionDepth: 6
    functionLinenumber: 1131
    functionLinenumberEnd: 1143
    functionName: free_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - unregister_virtual_region
    - spin_is_locked
    - free_payload_data
    - rcu_barrier
    - ASSERT
    - xfree
    - list_del_rcu
    linkageType: ''
    returnType: void
    signature: void free_payload(struct payload *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_elf_load
      Src: /src/xen/xen/common/livepatch.c:1150,1
    - Dst: check_xen_buildid
      Src: /src/xen/xen/common/livepatch.c:1154,1
    - Dst: move_payload
      Src: /src/xen/xen/common/livepatch.c:1158,1
    - Dst: livepatch_elf_resolve_symbols
      Src: /src/xen/xen/common/livepatch.c:1162,1
    - Dst: livepatch_elf_perform_relocs
      Src: /src/xen/xen/common/livepatch.c:1166,1
    - Dst: check_special_sections
      Src: /src/xen/xen/common/livepatch.c:1170,1
    - Dst: check_patching_sections
      Src: /src/xen/xen/common/livepatch.c:1174,1
    - Dst: prepare_payload
      Src: /src/xen/xen/common/livepatch.c:1178,1
    - Dst: build_symbol_table
      Src: /src/xen/xen/common/livepatch.c:1182,1
    - Dst: secure_payload
      Src: /src/xen/xen/common/livepatch.c:1186,1
    - Dst: free_payload_data
      Src: /src/xen/xen/common/livepatch.c:1190,1
    - Dst: livepatch_elf_free
      Src: /src/xen/xen/common/livepatch.c:1193,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 3
    argNames:
    - payload
    - raw
    - len
    argTypes:
    - struct payload*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1145
    functionDepth: 6
    functionLinenumber: 1145
    functionLinenumberEnd: 1196
    functionName: load_payload_data
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - livepatch_elf_load
    - livepatch_elf_resolve_symbols
    - check_special_sections
    - livepatch_elf_free
    - free_payload_data
    - secure_payload
    - check_patching_sections
    - check_xen_buildid
    - livepatch_elf_perform_relocs
    - build_symbol_table
    - move_payload
    - prepare_payload
    linkageType: ''
    returnType: int
    signature: int load_payload_data(struct payload *payload, void *raw, size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: verify_payload
      Src: /src/xen/xen/common/livepatch.c:1205,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/livepatch.c:1209,1
    - Dst: vmalloc
      Src: /src/xen/xen/common/livepatch.c:1210,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/livepatch.c:1212,1
    - Dst: find_payload
      Src: /src/xen/xen/common/livepatch.c:1214,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/livepatch.c:1215,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/livepatch.c:1216,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/livepatch.c:1221,1
    - Dst: memcpy
      Src: /src/xen/xen/common/livepatch.c:1225,1
    - Dst: strlen
      Src: /src/xen/xen/common/livepatch.c:1225,1
    - Dst: load_payload_data
      Src: /src/xen/xen/common/livepatch.c:1227,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/livepatch.c:1232,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/livepatch.c:1233,1
    - Dst: register_virtual_region
      Src: /src/xen/xen/common/livepatch.c:1235,1
    - Dst: list_add_tail_rcu
      Src: /src/xen/xen/common/livepatch.c:1236,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:1242,1
    - Dst: vfree
      Src: /src/xen/xen/common/livepatch.c:1244,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1248,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1249,1
    - Dst: xfree
      Src: /src/xen/xen/common/livepatch.c:1250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - upload
    argTypes:
    - struct xen_sysctl_livepatch_upload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1198
    functionDepth: 7
    functionLinenumber: 1198
    functionLinenumberEnd: 1254
    functionName: livepatch_upload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - register_virtual_region
    - xzalloc
    - list_add_tail_rcu
    - IS_ERR
    - __copy_from_guest
    - spin_unlock
    - vfree
    - load_payload_data
    - vmalloc
    - PTR_ERR
    - spin_lock
    - find_payload
    - verify_payload
    - strlen
    - INIT_LIST_HEAD
    - xfree
    - memcpy
    linkageType: ''
    returnType: int
    signature: int livepatch_upload(struct xen_sysctl_livepatch_upload *upload)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/xen/xen/common/livepatch.c:1262,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/livepatch.c:1266,1
    - Dst: find_payload
      Src: /src/xen/xen/common/livepatch.c:1268,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/common/livepatch.c:1269,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:1271,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/livepatch.c:1276,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:1282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - get
    argTypes:
    - struct xen_sysctl_livepatch_get*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1285
    functionName: livepatch_get
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - PTR_ERR
    - IS_ERR_OR_NULL
    - spin_lock
    - find_payload
    - get_name
    linkageType: ''
    returnType: int
    signature: int livepatch_get(struct xen_sysctl_livepatch_get *get)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/livepatch.c:1301,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/livepatch.c:1302,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/livepatch.c:1303,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/livepatch.c:1306,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:1309,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:1318,1
    - Dst: strlen
      Src: /src/xen/xen/common/livepatch.c:1328,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/livepatch.c:1339,1
    - Dst: guest_handle_subrange_okay
      Src: /src/xen/xen/common/livepatch.c:1341,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/livepatch.c:1349,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/livepatch.c:1351,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/livepatch.c:1352,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/livepatch.c:1353,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/livepatch.c:1355,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/livepatch.c:1368,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:1380,1
    - Dst: strlen
      Src: /src/xen/xen/common/livepatch.c:1382,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:1388,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct xen_sysctl_livepatch_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1392
    functionName: livepatch_list
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - __copy_to_guest_offset
    - guest_handle_subrange_okay
    - spin_lock
    - strlen
    - hypercall_preempt_check
    - guest_handle_okay
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int livepatch_list(struct xen_sysctl_livepatch_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/livepatch.c:1407,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:1408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - metadata
    argTypes:
    - struct livepatch_metadata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1411
    functionName: livepatch_display_metadata
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - strlen
    - printk
    linkageType: ''
    returnType: void
    signature: void livepatch_display_metadata(const struct livepatch_metadata *metadata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: arch_livepatch_safety_check
      Src: /src/xen/xen/common/livepatch.c:1418,1
    - Dst: arch_livepatch_quiesce
      Src: /src/xen/xen/common/livepatch.c:1429,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/common/livepatch.c:1441,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/common/livepatch.c:1444,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1446,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/livepatch.c:1446,1
    - Dst: arch_livepatch_apply
      Src: /src/xen/xen/common/livepatch.c:1462,1
    - Dst: arch_livepatch_revive
      Src: /src/xen/xen/common/livepatch.c:1466,1
    - Dst: livepatch_display_metadata
      Src: /src/xen/xen/common/livepatch.c:1468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1471
    functionName: apply_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - arch_livepatch_quiesce
    - arch_livepatch_revive
    - spin_debug_enable
    - spin_debug_disable
    - livepatch_display_metadata
    - arch_livepatch_apply
    - ASSERT
    - arch_livepatch_safety_check
    - local_irq_is_enabled
    linkageType: ''
    returnType: int
    signature: int apply_payload(struct payload *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/common/livepatch.c:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1478
    functionName: apply_payload_tail
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void apply_payload_tail(struct payload *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arch_livepatch_quiesce
      Src: /src/xen/xen/common/livepatch.c:1487,1
    - Dst: arch_livepatch_revert
      Src: /src/xen/xen/common/livepatch.c:1511,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/common/livepatch.c:1520,1
    - Dst: spin_debug_enable
      Src: /src/xen/xen/common/livepatch.c:1523,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1525,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/livepatch.c:1525,1
    - Dst: arch_livepatch_revive
      Src: /src/xen/xen/common/livepatch.c:1527,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1529
    functionName: revert_payload
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - arch_livepatch_quiesce
    - spin_debug_enable
    - spin_debug_disable
    - ASSERT
    - arch_livepatch_revive
    - arch_livepatch_revert
    - local_irq_is_enabled
    linkageType: ''
    returnType: int
    signature: int revert_payload(struct payload *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/common/livepatch.c:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1537
    functionName: revert_payload_tail
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: void revert_payload_tail(struct payload *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - data
    - expected_state
    argTypes:
    - struct payload*
    - livepatch_func_state_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1542
    functionDepth: 0
    functionLinenumber: 1542
    functionLinenumberEnd: 1561
    functionName: was_action_consistent
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool was_action_consistent(const struct payload *data, livepatch_func_state_t
      expected_state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1580,1
    - Dst: apply_payload
      Src: /src/xen/xen/common/livepatch.c:1587,1
    - Dst: was_action_consistent
      Src: /src/xen/xen/common/livepatch.c:1589,1
    - Dst: panic
      Src: /src/xen/xen/common/livepatch.c:1590,1
    - Dst: apply_payload_tail
      Src: /src/xen/xen/common/livepatch.c:1593,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1597,1
    - Dst: revert_payload
      Src: /src/xen/xen/common/livepatch.c:1604,1
    - Dst: was_action_consistent
      Src: /src/xen/xen/common/livepatch.c:1606,1
    - Dst: panic
      Src: /src/xen/xen/common/livepatch.c:1607,1
    - Dst: revert_payload_tail
      Src: /src/xen/xen/common/livepatch.c:1610,1
    - Dst: list_for_each_entry_safe_reverse
      Src: /src/xen/xen/common/livepatch.c:1619,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1621,1
    - Dst: revert_payload
      Src: /src/xen/xen/common/livepatch.c:1628,1
    - Dst: was_action_consistent
      Src: /src/xen/xen/common/livepatch.c:1630,1
    - Dst: panic
      Src: /src/xen/xen/common/livepatch.c:1633,1
    - Dst: revert_payload_tail
      Src: /src/xen/xen/common/livepatch.c:1636,1
    - Dst: livepatch_check_expectations
      Src: /src/xen/xen/common/livepatch.c:1652,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1660,1
    - Dst: apply_payload
      Src: /src/xen/xen/common/livepatch.c:1667,1
    - Dst: was_action_consistent
      Src: /src/xen/xen/common/livepatch.c:1669,1
    - Dst: panic
      Src: /src/xen/xen/common/livepatch.c:1670,1
    - Dst: apply_payload_tail
      Src: /src/xen/xen/common/livepatch.c:1673,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/livepatch.c:1679,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1567
    functionDepth: 3
    functionLinenumber: 1567
    functionLinenumberEnd: 1685
    functionName: livepatch_do_action
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - apply_payload
    - is_hook_enabled
    - panic
    - revert_payload
    - was_action_consistent
    - revert_payload_tail
    - apply_payload_tail
    - livepatch_check_expectations
    - list_for_each_entry_safe_reverse
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void livepatch_do_action(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1689,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/livepatch.c:1689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1692
    functionName: is_work_scheduled
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    linkageType: ''
    returnType: bool
    signature: bool is_work_scheduled(const struct payload *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1704,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1705,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1706,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - payload
    argTypes:
    - struct payload*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1708
    functionName: has_payload_any_vetoing_hooks
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - is_hook_enabled
    linkageType: ''
    returnType: bool
    signature: bool has_payload_any_vetoing_hooks(const struct payload *payload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:1718,1
    - Dst: has_payload_any_vetoing_hooks
      Src: /src/xen/xen/common/livepatch.c:1720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1725
    functionName: livepatch_applied_have_vetoing_hooks
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - has_payload_any_vetoing_hooks
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: bool livepatch_applied_have_vetoing_hooks(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1729,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/livepatch.c:1729,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/common/livepatch.c:1735,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/livepatch.c:1744,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:1746,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/livepatch.c:1749,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/livepatch.c:1753,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/livepatch.c:1756,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/livepatch.c:1756,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/livepatch.c:1756,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/livepatch.c:1758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - data
    - cmd
    - timeout
    argTypes:
    - struct payload*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1727
    functionDepth: 3
    functionLinenumber: 1727
    functionLinenumberEnd: 1761
    functionName: schedule_work
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - put_cpu_maps
    - tasklet_schedule_on_cpu
    - smp_processor_id
    - spin_is_locked
    - smp_wmb
    - ASSERT
    - this_cpu
    - MILLISECS
    - dprintk
    - get_cpu_maps
    linkageType: ''
    returnType: int
    signature: int schedule_work(struct payload *data, uint32_t cmd, uint32_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/livepatch.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1766
    functionName: tasklet_fn
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void tasklet_fn(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_read
      Src: /src/xen/xen/common/livepatch.c:1773,1
    - Dst: NOW
      Src: /src/xen/xen/common/livepatch.c:1773,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/livepatch.c:1774,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/livepatch.c:1777,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/livepatch.c:1780,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/livepatch.c:1783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - counter
    - timeout
    - cpus
    - s
    argTypes:
    - atomic_t*
    - s_time_t
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1788
    functionName: livepatch_spin
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    - cpu_relax
    - atomic_read
    - NOW
    linkageType: ''
    returnType: int
    signature: "int livepatch_spin(atomic_t *counter, s_time_t timeout,\n                          unsigned
      int cpus, const char *s)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ACTION
      Src: /src/xen/xen/common/livepatch.c:1798,1
    - Dst: ACTION
      Src: /src/xen/xen/common/livepatch.c:1799,1
    - Dst: ACTION
      Src: /src/xen/xen/common/livepatch.c:1800,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/livepatch.c:1803,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/livepatch.c:1809,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/livepatch.c:1812,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1820,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/livepatch.c:1820,1
    - Dst: atomic_inc_and_test
      Src: /src/xen/xen/common/livepatch.c:1823,1
    - Dst: get_cpu_maps
      Src: /src/xen/xen/common/livepatch.c:1830,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/livepatch.c:1836,1
    - Dst: arch_livepatch_mask
      Src: /src/xen/xen/common/livepatch.c:1847,1
    - Dst: barrier
      Src: /src/xen/xen/common/livepatch.c:1849,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/livepatch.c:1850,1
    - Dst: dprintk
      Src: /src/xen/xen/common/livepatch.c:1854,1
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/common/livepatch.c:1856,1
    - Dst: tasklet_schedule_on_cpu
      Src: /src/xen/xen/common/livepatch.c:1858,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/livepatch.c:1858,1
    - Dst: NOW
      Src: /src/xen/xen/common/livepatch.c:1861,1
    - Dst: livepatch_spin
      Src: /src/xen/xen/common/livepatch.c:1862,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/livepatch.c:1866,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/livepatch.c:1872,1
    - Dst: livepatch_spin
      Src: /src/xen/xen/common/livepatch.c:1875,1
    - Dst: local_irq_save
      Src: /src/xen/xen/common/livepatch.c:1877,1
    - Dst: livepatch_do_action
      Src: /src/xen/xen/common/livepatch.c:1879,1
    - Dst: arch_livepatch_post_action
      Src: /src/xen/xen/common/livepatch.c:1881,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/livepatch.c:1883,1
    - Dst: arch_livepatch_unmask
      Src: /src/xen/xen/common/livepatch.c:1887,1
    - Dst: put_cpu_maps
      Src: /src/xen/xen/common/livepatch.c:1893,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1900,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:1910,1
    - Dst: has_payload_any_vetoing_hooks
      Src: /src/xen/xen/common/livepatch.c:1920,1
    - Dst: panic
      Src: /src/xen/xen/common/livepatch.c:1923,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/livepatch.c:1925,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/livepatch.c:1938,1
    - Dst: local_irq_save
      Src: /src/xen/xen/common/livepatch.c:1941,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/livepatch.c:1946,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/livepatch.c:1950,1
    - Dst: arch_livepatch_post_action
      Src: /src/xen/xen/common/livepatch.c:1953,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/common/livepatch.c:1954,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1794
    functionDepth: 4
    functionLinenumber: 1794
    functionLinenumberEnd: 1958
    functionName: do_livepatch_work
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - cpu_relax
    - is_hook_enabled
    - livepatch_do_action
    - arch_livepatch_mask
    - ACTION
    - is_idle_domain
    - smp_processor_id
    - num_online_cpus
    - put_cpu_maps
    - has_payload_any_vetoing_hooks
    - atomic_inc_and_test
    - dprintk
    - local_irq_is_enabled
    - NOW
    - tasklet_schedule_on_cpu
    - panic
    - smp_wmb
    - ASSERT
    - atomic_inc
    - local_irq_restore
    - local_irq_save
    - ASSERT_UNREACHABLE
    - for_each_online_cpu
    - smp_rmb
    - arch_livepatch_unmask
    - livepatch_spin
    - per_cpu
    - barrier
    - arch_livepatch_post_action
    - get_cpu_maps
    linkageType: ''
    returnType: void
    signature: void do_livepatch_work(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1797
    functionName: ACTION
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 84
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACTION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1816
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(work_to_do, cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1834
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(work_to_do, cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1889
    functionDepth: 0
    functionLinenumber: 1889
    functionLinenumberEnd: 1889
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(work_to_do, cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1956
    functionDepth: 0
    functionLinenumber: 1956
    functionLinenumberEnd: 1956
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(work_to_do, cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/livepatch.c:1962,1
    - Dst: likely
      Src: /src/xen/xen/common/livepatch.c:1965,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/livepatch.c:1965,1
    - Dst: do_livepatch_work
      Src: /src/xen/xen/common/livepatch.c:1968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1960
    functionDepth: 5
    functionLinenumber: 1960
    functionLinenumberEnd: 1969
    functionName: check_for_livepatch_work
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 2
    functionsReached:
    - smp_processor_id
    - per_cpu
    - likely
    - do_livepatch_work
    linkageType: ''
    returnType: void
    signature: void check_for_livepatch_work(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:1987,1
    - Dst: list_last_entry
      Src: /src/xen/xen/common/livepatch.c:2002,1
    - Dst: memcmp
      Src: /src/xen/xen/common/livepatch.c:2010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - payload
    - internal
    argTypes:
    - struct payload*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 2018
    functionName: build_id_dep
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - list_last_entry
    - ASSERT
    - memcmp
    linkageType: ''
    returnType: int
    signature: int build_id_dep(struct payload *payload, bool internal)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: get_name
      Src: /src/xen/xen/common/livepatch.c:2029,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/livepatch.c:2033,1
    - Dst: find_payload
      Src: /src/xen/xen/common/livepatch.c:2035,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/common/livepatch.c:2036,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:2038,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/livepatch.c:2043,1
    - Dst: is_work_scheduled
      Src: /src/xen/xen/common/livepatch.c:2046,1
    - Dst: free_payload
      Src: /src/xen/xen/common/livepatch.c:2057,1
    - Dst: list_last_entry
      Src: /src/xen/xen/common/livepatch.c:2070,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/livepatch.c:2071,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:2081,1
    - Dst: schedule_work
      Src: /src/xen/xen/common/livepatch.c:2096,1
    - Dst: build_id_dep
      Src: /src/xen/xen/common/livepatch.c:2123,1
    - Dst: list_empty
      Src: /src/xen/xen/common/livepatch.c:2123,1
    - Dst: livepatch_check_expectations
      Src: /src/xen/xen/common/livepatch.c:2129,1
    - Dst: is_hook_enabled
      Src: /src/xen/xen/common/livepatch.c:2133,1
    - Dst: schedule_work
      Src: /src/xen/xen/common/livepatch.c:2148,1
    - Dst: build_id_dep
      Src: /src/xen/xen/common/livepatch.c:2155,1
    - Dst: has_payload_any_vetoing_hooks
      Src: /src/xen/xen/common/livepatch.c:2174,1
    - Dst: livepatch_applied_have_vetoing_hooks
      Src: /src/xen/xen/common/livepatch.c:2174,1
    - Dst: schedule_work
      Src: /src/xen/xen/common/livepatch.c:2183,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:2193,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 99
    argCount: 1
    argNames:
    - action
    argTypes:
    - struct xen_sysctl_livepatch_action*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2020
    functionDepth: 7
    functionLinenumber: 2020
    functionLinenumberEnd: 2196
    functionName: livepatch_action
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 4
    functionsReached:
    - schedule_work
    - spin_unlock
    - list_last_entry
    - is_work_scheduled
    - is_hook_enabled
    - PTR_ERR
    - IS_ERR_OR_NULL
    - build_id_dep
    - spin_lock
    - find_payload
    - ASSERT
    - get_name
    - livepatch_applied_have_vetoing_hooks
    - free_payload
    - livepatch_check_expectations
    - has_payload_any_vetoing_hooks
    - list_empty
    linkageType: ''
    returnType: int
    signature: int livepatch_action(struct xen_sysctl_livepatch_action *action)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: livepatch_upload
      Src: /src/xen/xen/common/livepatch.c:2209,1
    - Dst: livepatch_get
      Src: /src/xen/xen/common/livepatch.c:2213,1
    - Dst: livepatch_list
      Src: /src/xen/xen/common/livepatch.c:2217,1
    - Dst: livepatch_action
      Src: /src/xen/xen/common/livepatch.c:2221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_livepatch_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2198
    functionDepth: 8
    functionLinenumber: 2198
    functionLinenumberEnd: 2230
    functionName: livepatch_op
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - livepatch_upload
    - livepatch_list
    - livepatch_get
    - livepatch_action
    linkageType: ''
    returnType: int
    signature: int livepatch_op(struct xen_sysctl_livepatch_op *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE
      Src: /src/xen/xen/common/livepatch.c:2236,1
    - Dst: STATE
      Src: /src/xen/xen/common/livepatch.c:2237,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/livepatch.c:2241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2232
    functionDepth: 0
    functionLinenumber: 2232
    functionLinenumberEnd: 2245
    functionName: state2str
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - STATE
    linkageType: ''
    returnType: char
    signature: char *state2str(unsigned int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2234
    functionDepth: 0
    functionLinenumber: 2234
    functionLinenumberEnd: 2235
    functionName: STATE
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2252,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2255,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/livepatch.c:2257,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2259,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/livepatch.c:2263,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2265,1
    - Dst: state2str
      Src: /src/xen/xen/common/livepatch.c:2266,1
    - Dst: livepatch_display_metadata
      Src: /src/xen/xen/common/livepatch.c:2269,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2275,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:2280,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/livepatch.c:2281,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/livepatch.c:2282,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2284,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2290,1
    - Dst: printk
      Src: /src/xen/xen/common/livepatch.c:2293,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/livepatch.c:2296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2247
    functionDepth: 2
    functionLinenumber: 2247
    functionLinenumberEnd: 2297
    functionName: livepatch_printall
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - livepatch_display_metadata
    - state2str
    - process_pending_softirqs
    - spin_trylock
    - printk
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void livepatch_printall(unsigned char key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_init
      Src: /src/xen/xen/common/livepatch.c:2305,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/livepatch.c:2305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2308
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 5
    functionsReached:
    - tasklet_init
    - per_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_callback
      Src: /src/xen/xen/common/livepatch.c:2322,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/livepatch.c:2325,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/livepatch.c:2327,1
    - Dst: arch_livepatch_init
      Src: /src/xen/xen/common/livepatch.c:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2331
    functionName: livepatch_init
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 1
    functionsReached:
    - register_cpu_notifier
    - arch_livepatch_init
    - cpu_callback
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int livepatch_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_callback
      Src: /src/xen/xen/common/livepatch.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2323
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/livepatch.c
    functionUses: 12
    functionsReached:
    - cpu_callback
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/common/unlz4.c:39,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:47,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unlz4.c:50,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:52,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:58,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:63,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unlz4.c:66,1
    - Dst: lz4_compressbound
      Src: /src/xen/xen/common/unlz4.c:66,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:68,1
    - Dst: fill
      Src: /src/xen/xen/common/unlz4.c:78,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/common/unlz4.c:80,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:85,1
    - Dst: fill
      Src: /src/xen/xen/common/unlz4.c:95,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/common/unlz4.c:97,1
    - Dst: lz4_compressbound
      Src: /src/xen/xen/common/unlz4.c:112,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:113,1
    - Dst: fill
      Src: /src/xen/xen/common/unlz4.c:116,1
    - Dst: lz4_decompress
      Src: /src/xen/xen/common/unlz4.c:124,1
    - Dst: lz4_decompress_unknownoutputsize
      Src: /src/xen/xen/common/unlz4.c:127,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:131,1
    - Dst: flush
      Src: /src/xen/xen/common/unlz4.c:136,1
    - Dst: error
      Src: /src/xen/xen/common/unlz4.c:148,1
    - Dst: large_free
      Src: /src/xen/xen/common/unlz4.c:160,1
    - Dst: large_free
      Src: /src/xen/xen/common/unlz4.c:163,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 4
    argNames:
    - input
    - in_len
    - output
    - posp
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 166
    functionName: unlz4
    functionSourceFile: /src/xen/xen/common/unlz4.c
    functionUses: 1
    functionsReached:
    - get_unaligned_le32
    - lz4_decompress
    - large_malloc
    - lz4_decompress_unknownoutputsize
    - error
    - lz4_compressbound
    - large_free
    - flush
    - fill
    linkageType: ''
    returnType: int
    signature: "int unlz4(unsigned char *input, unsigned int in_len,\n\t\t int (*fill)(void
      *, unsigned int),\n\t\t int (*flush)(void *, unsigned int),\n\t\t unsigned char
      *output, unsigned int *posp,\n\t\t void (*error)(const char *x))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: ptr_to_indirect
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *ptr_to_indirect(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: indirect_to_ptr
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *indirect_to_ptr(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/radix-tree.c:59,1
    - Dst: xfree
      Src: /src/xen/xen/common/radix-tree.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: _rcu_node_free
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - xfree
    - container_of
    linkageType: ''
    returnType: void
    signature: void _rcu_node_free(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/radix-tree.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: radix_tree_node_alloc
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: struct radix_tree_node
    signature: struct radix_tree_node *radix_tree_node_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/radix-tree.c:72,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/radix-tree.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct radix_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: radix_tree_node_free
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - call_rcu
    - container_of
    linkageType: ''
    returnType: void
    signature: void radix_tree_node_free(struct radix_tree_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - height
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: radix_tree_maxindex
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long radix_tree_maxindex(unsigned int height)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:96,1
    - Dst: radix_tree_node_alloc
      Src: /src/xen/xen/common/radix-tree.c:106,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:110,1
    - Dst: ptr_to_indirect
      Src: /src/xen/xen/common/radix-tree.c:115,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/radix-tree.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - root
    - index
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 121
    functionName: radix_tree_extend
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - indirect_to_ptr
    - radix_tree_node_alloc
    - rcu_assign_pointer
    - ptr_to_indirect
    - radix_tree_maxindex
    linkageType: ''
    returnType: int
    signature: int radix_tree_extend(struct radix_tree_root *root, unsigned long index)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/radix-tree.c:139,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:139,1
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:142,1
    - Dst: radix_tree_extend
      Src: /src/xen/xen/common/radix-tree.c:143,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:148,1
    - Dst: radix_tree_node_alloc
      Src: /src/xen/xen/common/radix-tree.c:157,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/radix-tree.c:161,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/radix-tree.c:164,1
    - Dst: ptr_to_indirect
      Src: /src/xen/xen/common/radix-tree.c:164,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/radix-tree.c:180,1
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/radix-tree.c:182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - root
    - index
    - item
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 186
    functionName: radix_tree_insert
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 6
    functionsReached:
    - indirect_to_ptr
    - radix_tree_node_alloc
    - rcu_assign_pointer
    - ptr_to_indirect
    - BUG_ON
    - radix_tree_is_indirect_ptr
    - radix_tree_maxindex
    - radix_tree_extend
    linkageType: ''
    returnType: int
    signature: "int radix_tree_insert(struct radix_tree_root *root,\n\t\t\tunsigned
      long index, void *item)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:199,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:203,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:208,1
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:211,1
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:219,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - root
    - index
    - is_slot
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 228
    functionName: radix_tree_lookup_element
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - indirect_to_ptr
    - radix_tree_maxindex
    - radix_tree_is_indirect_ptr
    - rcu_dereference
    linkageType: ''
    returnType: void
    signature: "void *radix_tree_lookup_element(struct radix_tree_root *root,\n\t\t\t\tunsigned
      long index, int is_slot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup_element
      Src: /src/xen/xen/common/radix-tree.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: radix_tree_lookup_slot
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 7
    functionsReached:
    - radix_tree_lookup_element
    linkageType: ''
    returnType: void
    signature: void **radix_tree_lookup_slot(struct radix_tree_root *root, unsigned
      long index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup_element
      Src: /src/xen/xen/common/radix-tree.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - index
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: radix_tree_lookup
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 4
    functionsReached:
    - radix_tree_lookup_element
    linkageType: ''
    returnType: void
    signature: void *radix_tree_lookup(struct radix_tree_root *root, unsigned long
      index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/common/radix-tree.c:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - root
    - index
    - max_scan
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 301
    functionName: radix_tree_next_hole
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - radix_tree_lookup
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long radix_tree_next_hole(struct radix_tree_root *root,\n\t\t\t\tunsigned
      long index, unsigned long max_scan)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/common/radix-tree.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - root
    - index
    - max_scan
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 338
    functionName: radix_tree_prev_hole
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - radix_tree_lookup
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long radix_tree_prev_hole(struct radix_tree_root *root,\n\t\t\t\t
      \  unsigned long index, unsigned long max_scan)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:369,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 5
    argNames:
    - slot
    - results
    - index
    - max_items
    - next_index
    argTypes:
    - struct radix_tree_node*
    - void***
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 386
    functionName: __lookup
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - rcu_dereference
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int __lookup(struct radix_tree_node *slot, void ***results,
      unsigned long index,\n\tunsigned int max_items, unsigned long *next_index)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:416,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:420,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:426,1
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:428,1
    - Dst: __lookup
      Src: /src/xen/xen/common/radix-tree.c:437,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:446,1
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:446,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - root
    - results
    - first_index
    - max_items
    argTypes:
    - struct radix_tree_root*
    - void**
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 456
    functionName: radix_tree_gang_lookup
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 2
    functionsReached:
    - indirect_to_ptr
    - radix_tree_maxindex
    - radix_tree_is_indirect_ptr
    - __lookup
    - rcu_dereference
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int radix_tree_gang_lookup(struct radix_tree_root *root,
      void **results,\n\t\t\tunsigned long first_index, unsigned int max_items)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/radix-tree.c:485,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:489,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:495,1
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:497,1
    - Dst: __lookup
      Src: /src/xen/xen/common/radix-tree.c:506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - root
    - results
    - first_index
    - max_items
    argTypes:
    - struct radix_tree_root*
    - void***
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 515
    functionName: radix_tree_gang_lookup_slot
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - indirect_to_ptr
    - radix_tree_maxindex
    - radix_tree_is_indirect_ptr
    - __lookup
    - rcu_dereference
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int radix_tree_gang_lookup_slot(struct radix_tree_root *root,
      void ***results,\n\t\t\tunsigned long first_index, unsigned int max_items)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/radix-tree.c:529,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:529,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:530,1
    - Dst: ptr_to_indirect
      Src: /src/xen/xen/common/radix-tree.c:550,1
    - Dst: radix_tree_node_free
      Src: /src/xen/xen/common/radix-tree.c:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct radix_tree_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 578
    functionName: radix_tree_shrink
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - indirect_to_ptr
    - radix_tree_node_free
    - ptr_to_indirect
    - BUG_ON
    - radix_tree_is_indirect_ptr
    linkageType: ''
    returnType: void
    signature: void radix_tree_shrink(struct radix_tree_root *root)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_maxindex
      Src: /src/xen/xen/common/radix-tree.c:602,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:610,1
    - Dst: radix_tree_node_free
      Src: /src/xen/xen/common/radix-tree.c:641,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:644,1
    - Dst: radix_tree_shrink
      Src: /src/xen/xen/common/radix-tree.c:645,1
    - Dst: radix_tree_node_free
      Src: /src/xen/xen/common/radix-tree.c:657,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - root
    - index
    argTypes:
    - struct radix_tree_root*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 589
    functionDepth: 6
    functionLinenumber: 589
    functionLinenumberEnd: 661
    functionName: radix_tree_delete
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 9
    functionsReached:
    - indirect_to_ptr
    - radix_tree_maxindex
    - radix_tree_shrink
    - radix_tree_node_free
    linkageType: ''
    returnType: void
    signature: void *radix_tree_delete(struct radix_tree_root *root, unsigned long
      index)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/radix-tree.c:673,1
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:673,1
    - Dst: slot_free
      Src: /src/xen/xen/common/radix-tree.c:678,1
    - Dst: radix_tree_node_destroy
      Src: /src/xen/xen/common/radix-tree.c:680,1
    - Dst: radix_tree_node_free
      Src: /src/xen/xen/common/radix-tree.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - root
    - node
    argTypes:
    - struct radix_tree_root*
    - struct radix_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 685
    functionName: radix_tree_node_destroy
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 1
    functionsReached:
    - radix_tree_node_free
    - radix_tree_node_destroy
    - BUG_ON
    - radix_tree_is_indirect_ptr
    - slot_free
    linkageType: ''
    returnType: void
    signature: "void radix_tree_node_destroy(\n\tstruct radix_tree_root *root, struct
      radix_tree_node *node,\n\tvoid (*slot_free)(void *))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_is_indirect_ptr
      Src: /src/xen/xen/common/radix-tree.c:694,1
    - Dst: slot_free
      Src: /src/xen/xen/common/radix-tree.c:696,1
    - Dst: indirect_to_ptr
      Src: /src/xen/xen/common/radix-tree.c:698,1
    - Dst: radix_tree_node_destroy
      Src: /src/xen/xen/common/radix-tree.c:699,1
    - Dst: radix_tree_init
      Src: /src/xen/xen/common/radix-tree.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct radix_tree_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 687
    functionDepth: 6
    functionLinenumber: 687
    functionLinenumberEnd: 702
    functionName: radix_tree_destroy
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 7
    functionsReached:
    - indirect_to_ptr
    - radix_tree_node_destroy
    - radix_tree_is_indirect_ptr
    - slot_free
    - radix_tree_init
    linkageType: ''
    returnType: void
    signature: "void radix_tree_destroy(\n\tstruct radix_tree_root *root,\n\tvoid
      (*slot_free)(void *))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RADIX_TREE_INIT
      Src: /src/xen/xen/common/radix-tree.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct radix_tree_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 707
    functionName: radix_tree_init
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 7
    functionsReached:
    - RADIX_TREE_INIT
    linkageType: ''
    returnType: void
    signature: void radix_tree_init(struct radix_tree_root *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - height
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: __maxindex
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __init unsigned long
    signature: __init unsigned long __maxindex(unsigned int height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/radix-tree.c:725,1
    - Dst: __maxindex
      Src: /src/xen/xen/common/radix-tree.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 729
    functionName: radix_tree_init_maxindex
    functionSourceFile: /src/xen/xen/common/radix-tree.c
    functionUses: 0
    functionsReached:
    - __maxindex
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int radix_tree_init_maxindex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:46,1
    - Dst: unlikely
      Src: /src/xen/xen/common/pdx.c:52,1
    - Dst: evaluate_nospec
      Src: /src/xen/xen/common/pdx.c:52,1
    - Dst: test_bit
      Src: /src/xen/xen/common/pdx.c:55,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/pdx.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: __mfn_valid
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached:
    - PFN_TBL_IDX
    - pfn_to_pdx
    - unlikely
    - test_bit
    - evaluate_nospec
    linkageType: ''
    returnType: bool
    signature: bool __mfn_valid(unsigned long mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/pdx.c:62,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/pdx.c:63,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/pdx.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - smfn
    - emfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: set_pdx_range
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 4
    functionsReached:
    - __set_bit
    - pfn_to_pdx
    linkageType: ''
    returnType: void
    signature: void set_pdx_range(unsigned long smfn, unsigned long emfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/pdx.c:107,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/pdx.c:109,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/pdx.c:114,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/pdx.c:115,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/pdx.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - base
    - size
    argTypes:
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 116
    functionName: pfn_pdx_add_region
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 3
    functionsReached:
    - PFN_UP
    - ASSERT
    - ARRAY_SIZE
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void pfn_pdx_add_region(paddr_t base, paddr_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mask
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: __init_or_mask_compr::fill_mask
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __init_or_mask_compr fill_mask(uint64_t mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __init_or_mask_compr::fill_mask
      Src: /src/xen/xen/common/pdx.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - base
    - len
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: __init_or_mask_compr::pdx_region_mask
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached:
    - __init_or_mask_compr::fill_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t __init_or_mask_compr pdx_region_mask(uint64_t base, uint64_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill_mask
      Src: /src/xen/xen/common/pdx.c:172,1
    - Dst: max
      Src: /src/xen/xen/common/pdx.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - base_addr
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: pdx_init_mask
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached:
    - max
    - fill_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t pdx_init_mask(uint64_t base_addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/common/pdx.c:232,1
    - Dst: pdx_region_mask
      Src: /src/xen/xen/common/pdx.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - base
    - npages
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: pdx_is_region_compressible
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 4
    functionsReached:
    - pdx_region_mask
    - paddr_to_pfn
    linkageType: ''
    returnType: bool
    signature: bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pdx_init_mask
      Src: /src/xen/xen/common/pdx.c:239,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:243,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/pdx.c:248,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:250,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/pdx.c:252,1
    - Dst: pdx_region_mask
      Src: /src/xen/xen/common/pdx.c:258,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/common/pdx.c:271,1
    - Dst: find_next_bit
      Src: /src/xen/xen/common/pdx.c:274,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - base
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 297
    functionName: pfn_pdx_compression_setup
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 3
    functionsReached:
    - find_next_zero_bit
    - ARRAY_SIZE
    - pdx_init_mask
    - find_next_bit
    - pdx_region_mask
    - printk
    linkageType: ''
    returnType: bool
    signature: bool pfn_pdx_compression_setup(paddr_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: pfn_pdx_compression_reset
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pfn_pdx_compression_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/pdx.c:323,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - base
    - npages
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: pdx_is_region_compressible
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 4
    functionsReached:
    - PFN_TBL_IDX
    - PFN_DOWN
    linkageType: ''
    returnType: bool
    signature: bool pdx_is_region_compressible(paddr_t base, unsigned long npages)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: cmp_node
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_node(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/xen/xen/common/pdx.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: swp_node
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void swp_node(void *a, void *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/pdx.c:351,1
    - Dst: pdx_init_mask
      Src: /src/xen/xen/common/pdx.c:351,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:357,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/pdx.c:362,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:364,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/pdx.c:366,1
    - Dst: sort
      Src: /src/xen/xen/common/pdx.c:371,1
    - Dst: pdx_region_mask
      Src: /src/xen/xen/common/pdx.c:395,1
    - Dst: memmove
      Src: /src/xen/xen/common/pdx.c:403,1
    - Dst: pdx_region_mask
      Src: /src/xen/xen/common/pdx.c:406,1
    - Dst: flsl
      Src: /src/xen/xen/common/pdx.c:423,1
    - Dst: flsl
      Src: /src/xen/xen/common/pdx.c:424,1
    - Dst: ffsl
      Src: /src/xen/xen/common/pdx.c:424,1
    - Dst: ffsl
      Src: /src/xen/xen/common/pdx.c:426,1
    - Dst: flsl
      Src: /src/xen/xen/common/pdx.c:430,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:431,1
    - Dst: flsl
      Src: /src/xen/xen/common/pdx.c:433,1
    - Dst: ffsl
      Src: /src/xen/xen/common/pdx.c:433,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:446,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:447,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:449,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/pdx.c:450,1
    - Dst: pfn_pdx_compression_reset
      Src: /src/xen/xen/common/pdx.c:451,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:456,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:457,1
    - Dst: memmove
      Src: /src/xen/xen/common/pdx.c:464,1
    - Dst: max
      Src: /src/xen/xen/common/pdx.c:476,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/pdx.c:479,1
    - Dst: pdx_init_mask
      Src: /src/xen/xen/common/pdx.c:479,1
    - Dst: flsl
      Src: /src/xen/xen/common/pdx.c:480,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:485,1
    - Dst: pfn_pdx_compression_reset
      Src: /src/xen/xen/common/pdx.c:487,1
    - Dst: memset
      Src: /src/xen/xen/common/pdx.c:495,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:499,1
    - Dst: PFN_TBL_IDX
      Src: /src/xen/xen/common/pdx.c:505,1
    - Dst: printk
      Src: /src/xen/xen/common/pdx.c:511,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 1
    argNames:
    - base
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 518
    functionName: pfn_pdx_compression_setup
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 3
    functionsReached:
    - sort
    - max
    - ARRAY_SIZE
    - pdx_init_mask
    - ffsl
    - PFN_TBL_IDX
    - pfn_pdx_compression_reset
    - flsl
    - memmove
    - memset
    - printk
    - PFN_DOWN
    - pdx_region_mask
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: bool pfn_pdx_compression_setup(paddr_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/pdx.c:522,1
    - Dst: memset
      Src: /src/xen/xen/common/pdx.c:523,1
    - Dst: memset
      Src: /src/xen/xen/common/pdx.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: pfn_pdx_compression_reset
    functionSourceFile: /src/xen/xen/common/pdx.c
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void pfn_pdx_compression_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: GET_NEXT_BLOCK
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_NEXT_BLOCK(addr, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: ROUNDUP_SIZE
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP_SIZE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: ROUNDDOWN_SIZE
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDDOWN_SIZE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: ROUNDUP_PAGE
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP_PAGE(r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flsl
      Src: /src/xen/xen/common/xmalloc_tlsf.c:139,1
    - Dst: flsl
      Src: /src/xen/xen/common/xmalloc_tlsf.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - r
    - fl
    - sl
    argTypes:
    - unsigned long*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: MAPPING_SEARCH
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - flsl
    linkageType: ''
    returnType: void
    signature: void MAPPING_SEARCH(unsigned long *r, int *fl, int *sl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flsl
      Src: /src/xen/xen/common/xmalloc_tlsf.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - r
    - fl
    - sl
    argTypes:
    - unsigned long
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: MAPPING_INSERT
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - flsl
    linkageType: ''
    returnType: void
    signature: void MAPPING_INSERT(unsigned long r, int *fl, int *sl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ffs
      Src: /src/xen/xen/common/xmalloc_tlsf.c:190,1
    - Dst: ffs
      Src: /src/xen/xen/common/xmalloc_tlsf.c:195,1
    - Dst: likely
      Src: /src/xen/xen/common/xmalloc_tlsf.c:196,1
    - Dst: ffs
      Src: /src/xen/xen/common/xmalloc_tlsf.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - p
    - fl
    - sl
    argTypes:
    - struct xmem_pool*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 204
    functionName: FIND_SUITABLE_BLOCK
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ffs
    - likely
    linkageType: ''
    returnType: struct bhdr
    signature: "struct bhdr *FIND_SUITABLE_BLOCK(struct xmem_pool *p, int *fl,\n                                               int
      *sl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:219,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - b
    - p
    - fl
    - sl
    argTypes:
    - struct bhdr*
    - struct xmem_pool*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 224
    functionName: EXTRACT_BLOCK_HDR
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: "void EXTRACT_BLOCK_HDR(struct bhdr *b, struct xmem_pool *p, int fl,\n
      \                                    int sl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:245,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:247,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/xmalloc_tlsf.c:252,1
    - Dst: memchr_inv
      Src: /src/xen/xen/common/xmalloc_tlsf.c:254,1
    - Dst: printk
      Src: /src/xen/xen/common/xmalloc_tlsf.c:257,1
    - Dst: BUG
      Src: /src/xen/xen/common/xmalloc_tlsf.c:258,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - b
    - p
    - fl
    - sl
    argTypes:
    - struct bhdr*
    - struct xmem_pool*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 260
    functionName: EXTRACT_BLOCK
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - BUG
    - memchr_inv
    - IS_ENABLED
    - printk
    - clear_bit
    linkageType: ''
    returnType: void
    signature: "void EXTRACT_BLOCK(struct bhdr *b, struct xmem_pool *p, int fl,\n
      \                                int sl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/xmalloc_tlsf.c:267,1
    - Dst: memset
      Src: /src/xen/xen/common/xmalloc_tlsf.c:269,1
    - Dst: set_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:276,1
    - Dst: set_bit
      Src: /src/xen/xen/common/xmalloc_tlsf.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - b
    - p
    - fl
    - sl
    argTypes:
    - struct bhdr*
    - struct xmem_pool*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 278
    functionName: INSERT_BLOCK
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - memset
    - set_bit
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void INSERT_BLOCK(struct bhdr *b, struct xmem_pool *p, int fl, int
      sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDDOWN_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:292,1
    - Dst: MAPPING_INSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:294,1
    - Dst: INSERT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:295,1
    - Dst: GET_NEXT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - region
    - region_size
    - pool
    argTypes:
    - void*
    - unsigned long
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 302
    functionName: ADD_REGION
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ROUNDDOWN_SIZE
    - GET_NEXT_BLOCK
    - INSERT_BLOCK
    - MAPPING_INSERT
    linkageType: ''
    returnType: void
    signature: "void ADD_REGION(void *region, unsigned long region_size,\n                              struct
      xmem_pool *pool)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/xmalloc_tlsf.c:318,1
    - Dst: ROUNDUP_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:320,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/xmalloc_tlsf.c:321,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:323,1
    - Dst: memset
      Src: /src/xen/xen/common/xmalloc_tlsf.c:326,1
    - Dst: ROUNDUP_PAGE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:329,1
    - Dst: ROUNDUP_PAGE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:330,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/xmalloc_tlsf.c:339,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/xmalloc_tlsf.c:341,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:343,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/xmalloc_tlsf.c:344,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - name
    - get_mem
    - put_mem
    - max_size
    - grow_size
    argTypes:
    - char*
    - xmem_pool_get_memory
    - xmem_pool_put_memory
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 348
    functionName: xmem_pool_create
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - spin_unlock
    - BUG_ON
    - strlcpy
    - alloc_xenheap_pages
    - spin_lock
    - ROUNDUP_PAGE
    - memset
    - spin_lock_init
    - list_add_tail
    - ROUNDUP_SIZE
    linkageType: ''
    returnType: struct xmem_pool
    signature: "struct xmem_pool *xmem_pool_create(\n    const char *name,\n    xmem_pool_get_memory
      get_mem,\n    xmem_pool_put_memory put_mem,\n    unsigned long max_size,\n    unsigned
      long grow_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: xmem_pool_get_used_size
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long xmem_pool_get_used_size(struct xmem_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: xmem_pool_get_total_size
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ROUNDUP_SIZE
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long xmem_pool_get_total_size(struct xmem_pool *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmem_pool_get_used_size
      Src: /src/xen/xen/common/xmalloc_tlsf.c:371,1
    - Dst: printk
      Src: /src/xen/xen/common/xmalloc_tlsf.c:372,1
    - Dst: xmem_pool_get_used_size
      Src: /src/xen/xen/common/xmalloc_tlsf.c:374,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:376,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/xmalloc_tlsf.c:377,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:378,1
    - Dst: ROUNDUP_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:380,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/xmalloc_tlsf.c:381,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 383
    functionName: xmem_pool_destroy
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - xmem_pool_get_used_size
    - spin_unlock
    - list_del_init
    - get_order_from_bytes
    - spin_lock
    - printk
    - free_xenheap_pages
    - ROUNDUP_SIZE
    linkageType: ''
    returnType: void
    signature: void xmem_pool_destroy(struct xmem_pool *pool)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:391,1
    - Dst: ROUNDUP_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:397,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:406,1
    - Dst: MAPPING_SEARCH
      Src: /src/xen/xen/common/xmalloc_tlsf.c:408,1
    - Dst: FIND_SUITABLE_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:411,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:419,1
    - Dst: struct xmem_pool*::get_mem
      Src: /src/xen/xen/common/xmalloc_tlsf.c:420,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:422,1
    - Dst: ADD_REGION
      Src: /src/xen/xen/common/xmalloc_tlsf.c:423,1
    - Dst: EXTRACT_BLOCK_HDR
      Src: /src/xen/xen/common/xmalloc_tlsf.c:426,1
    - Dst: GET_NEXT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:429,1
    - Dst: GET_NEXT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:435,1
    - Dst: MAPPING_INSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:442,1
    - Dst: INSERT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:443,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:455,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:460,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 2
    argNames:
    - size
    - pool
    argTypes:
    - unsigned long
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 464
    functionName: xmem_pool_alloc
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ADD_REGION
    - spin_unlock
    - struct xmem_pool*::get_mem
    - MAPPING_INSERT
    - FIND_SUITABLE_BLOCK
    - MAPPING_SEARCH
    - spin_lock
    - EXTRACT_BLOCK_HDR
    - ASSERT_ALLOC_CONTEXT
    - GET_NEXT_BLOCK
    - INSERT_BLOCK
    - ROUNDUP_SIZE
    linkageType: ''
    returnType: void
    signature: void *xmem_pool_alloc(unsigned long size, struct xmem_pool *pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:471,1
    - Dst: unlikely
      Src: /src/xen/xen/common/xmalloc_tlsf.c:473,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:478,1
    - Dst: GET_NEXT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:482,1
    - Dst: MAPPING_INSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:485,1
    - Dst: EXTRACT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:486,1
    - Dst: MAPPING_INSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:492,1
    - Dst: EXTRACT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:493,1
    - Dst: GET_NEXT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:497,1
    - Dst: MAPPING_INSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:500,1
    - Dst: struct xmem_pool*::put_mem
      Src: /src/xen/xen/common/xmalloc_tlsf.c:504,1
    - Dst: INSERT_BLOCK
      Src: /src/xen/xen/common/xmalloc_tlsf.c:510,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/xmalloc_tlsf.c:515,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - ptr
    - pool
    argTypes:
    - void*
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 516
    functionName: xmem_pool_free
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - EXTRACT_BLOCK
    - MAPPING_INSERT
    - spin_lock
    - GET_NEXT_BLOCK
    - ASSERT_ALLOC_CONTEXT
    - INSERT_BLOCK
    - unlikely
    - struct xmem_pool*::put_mem
    linkageType: ''
    returnType: void
    signature: void xmem_pool_free(void *ptr, struct xmem_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct xmem_pool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: xmem_pool_maxalloc
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xmem_pool_maxalloc(struct xmem_pool *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:531,1
    - Dst: alloc_xenheap_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: xmalloc_pool_get
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - alloc_xenheap_page
    linkageType: ''
    returnType: void
    signature: void *cf_check xmalloc_pool_get(unsigned long size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xenheap_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: xmalloc_pool_put
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - free_xenheap_page
    linkageType: ''
    returnType: void
    signature: void xmalloc_pool_put(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/xmalloc_tlsf.c:545,1
    - Dst: max
      Src: /src/xen/xen/common/xmalloc_tlsf.c:545,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:547,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/xmalloc_tlsf.c:551,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:554,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/xmalloc_tlsf.c:558,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:558,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/xmalloc_tlsf.c:558,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:560,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/xmalloc_tlsf.c:560,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:560,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/xmalloc_tlsf.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 540
    functionDepth: 6
    functionLinenumber: 540
    functionLinenumberEnd: 563
    functionName: xmalloc_whole_pages
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - max
    - PFN_UP
    - PFN_ORDER
    - virt_to_page
    - ASSERT
    - alloc_xenheap_pages
    - PAGE_ALIGN
    - free_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void *xmalloc_whole_pages(unsigned long size, unsigned long align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmem_pool_create
      Src: /src/xen/xen/common/xmalloc_tlsf.c:567,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/xmalloc_tlsf.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 7
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: tlsf_init
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - xmem_pool_create
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void tlsf_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: strip_padding
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void *strip_padding(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - align
    argTypes:
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: add_padding
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void *add_padding(void *p, unsigned long align)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:611,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:616,1
    - Dst: tlsf_init
      Src: /src/xen/xen/common/xmalloc_tlsf.c:626,1
    - Dst: xmem_pool_alloc
      Src: /src/xen/xen/common/xmalloc_tlsf.c:629,1
    - Dst: xmalloc_whole_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:631,1
    - Dst: add_padding
      Src: /src/xen/xen/common/xmalloc_tlsf.c:634,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 607
    functionDepth: 8
    functionLinenumber: 607
    functionLinenumberEnd: 638
    functionName: _xmalloc
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 6
    functionsReached:
    - add_padding
    - xmalloc_whole_pages
    - ASSERT
    - ASSERT_ALLOC_CONTEXT
    - xmem_pool_alloc
    - tlsf_init
    linkageType: ''
    returnType: void
    signature: void *_xmalloc(unsigned long size, unsigned long align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xmalloc
      Src: /src/xen/xen/common/xmalloc_tlsf.c:642,1
    - Dst: memset
      Src: /src/xen/xen/common/xmalloc_tlsf.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: _xzalloc
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 8
    functionsReached:
    - memset
    - _xmalloc
    linkageType: ''
    returnType: void
    signature: void *_xzalloc(unsigned long size, unsigned long align)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/xmalloc_tlsf.c:654,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/xmalloc_tlsf.c:659,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:661,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/xmalloc_tlsf.c:667,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:667,1
    - Dst: ROUNDUP_SIZE
      Src: /src/xen/xen/common/xmalloc_tlsf.c:683,1
    - Dst: strip_padding
      Src: /src/xen/xen/common/xmalloc_tlsf.c:686,1
    - Dst: add_padding
      Src: /src/xen/xen/common/xmalloc_tlsf.c:694,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:696,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/xmalloc_tlsf.c:702,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xmalloc_tlsf.c:705,1
    - Dst: min
      Src: /src/xen/xen/common/xmalloc_tlsf.c:705,1
    - Dst: xfree
      Src: /src/xen/xen/common/xmalloc_tlsf.c:706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - ptr
    - size
    - align
    argTypes:
    - void*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 710
    functionName: _xrealloc
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 2
    functionsReached:
    - add_padding
    - _xmalloc
    - virt_to_page
    - PFN_ORDER
    - ASSERT
    - min
    - memcpy
    - xfree
    - strip_padding
    - ROUNDUP_SIZE
    linkageType: ''
    returnType: void
    signature: void *_xrealloc(void *ptr, unsigned long size, unsigned long align)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_ALLOC_CONTEXT
      Src: /src/xen/xen/common/xmalloc_tlsf.c:714,1
    - Dst: PFN_ORDER
      Src: /src/xen/xen/common/xmalloc_tlsf.c:721,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/xmalloc_tlsf.c:721,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:722,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/xmalloc_tlsf.c:724,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/common/xmalloc_tlsf.c:731,1
    - Dst: strip_padding
      Src: /src/xen/xen/common/xmalloc_tlsf.c:738,1
    - Dst: xmem_pool_free
      Src: /src/xen/xen/common/xmalloc_tlsf.c:740,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 712
    functionDepth: 6
    functionLinenumber: 712
    functionLinenumberEnd: 741
    functionName: xfree
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 159
    functionsReached:
    - xmem_pool_free
    - get_order_from_pages
    - virt_to_page
    - PFN_ORDER
    - BUG_ON
    - ASSERT_ALLOC_CONTEXT
    - free_xenheap_pages
    - strip_padding
    linkageType: ''
    returnType: void
    signature: void xfree(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 725
    functionName: PFN_ORDER
    functionSourceFile: /src/xen/xen/common/xmalloc_tlsf.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PFN_ORDER(virt_to_page(p))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/softirq.c:34,1
    - Dst: rcu_quiesce_allowed
      Src: /src/xen/xen/common/softirq.c:34,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/softirq.c:42,1
    - Dst: rcu_pending
      Src: /src/xen/xen/common/softirq.c:44,1
    - Dst: rcu_check_callbacks
      Src: /src/xen/xen/common/softirq.c:45,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/softirq.c:47,1
    - Dst: cpu_is_offline
      Src: /src/xen/xen/common/softirq.c:48,1
    - Dst: ffsl
      Src: /src/xen/xen/common/softirq.c:51,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/softirq.c:52,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/softirq.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 1
    argNames:
    - ignore_mask
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 55
    functionName: __do_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 0
    functionsReached:
    - softirq_pending
    - ffsl
    - smp_processor_id
    - cpu_is_offline
    - ASSERT
    - rcu_quiesce_allowed
    - clear_bit
    - rcu_check_callbacks
    - rcu_pending
    linkageType: ''
    returnType: void
    signature: void __do_softirq(unsigned long ignore_mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_quiesce_allowed
      Src: /src/xen/xen/common/softirq.c:64,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/softirq.c:67,1
    - Dst: in_irq
      Src: /src/xen/xen/common/softirq.c:67,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/softirq.c:67,1
    - Dst: __do_softirq
      Src: /src/xen/xen/common/softirq.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: process_pending_softirqs
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 49
    functionsReached:
    - ASSERT
    - rcu_quiesce_allowed
    - in_irq
    - local_irq_is_enabled
    - __do_softirq
    linkageType: ''
    returnType: void
    signature: void process_pending_softirqs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NOT_IN_ATOMIC
      Src: /src/xen/xen/common/softirq.c:73,1
    - Dst: __do_softirq
      Src: /src/xen/xen/common/softirq.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: do_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 9
    functionsReached:
    - __do_softirq
    - ASSERT_NOT_IN_ATOMIC
    linkageType: ''
    returnType: void
    signature: void do_softirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/softirq.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nr
    - handler
    argTypes:
    - int
    - softirq_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: open_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 8
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void open_softirq(int nr, softirq_handler handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/softirq.c:85,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:88,1
    - Dst: in_irq
      Src: /src/xen/xen/common/softirq.c:88,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/softirq.c:90,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:94,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/softirq.c:96,1
    - Dst: arch_set_softirq
      Src: /src/xen/xen/common/softirq.c:97,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/softirq.c:98,1
    - Dst: smp_send_event_check_mask
      Src: /src/xen/xen/common/softirq.c:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - mask
    - nr
    argTypes:
    - cpumask_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 102
    functionName: cpumask_raise_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 4
    functionsReached:
    - cpumask_clear
    - for_each_cpu
    - smp_processor_id
    - smp_send_event_check_mask
    - per_cpu
    - in_irq
    - __cpumask_set_cpu
    - arch_set_softirq
    linkageType: ''
    returnType: void
    signature: void cpumask_raise_softirq(const cpumask_t *mask, unsigned int nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/softirq.c:106,1
    - Dst: arch_set_softirq
      Src: /src/xen/xen/common/softirq.c:108,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:111,1
    - Dst: in_irq
      Src: /src/xen/xen/common/softirq.c:111,1
    - Dst: smp_send_event_check_cpu
      Src: /src/xen/xen/common/softirq.c:112,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/softirq.c:114,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - cpu
    - nr
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: cpu_raise_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 5
    functionsReached:
    - arch_set_softirq
    - smp_processor_id
    - per_cpu
    - in_irq
    - __cpumask_set_cpu
    - smp_send_event_check_cpu
    linkageType: ''
    returnType: void
    signature: void cpu_raise_softirq(unsigned int cpu, unsigned int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/softirq.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: cpu_raise_softirq_batch_begin
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 2
    functionsReached:
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void cpu_raise_softirq_batch_begin(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/softirq.c:124,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:125,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/softirq.c:127,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:127,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/softirq.c:128,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/softirq.c:129,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/softirq.c:130,1
    - Dst: smp_send_event_check_mask
      Src: /src/xen/xen/common/softirq.c:131,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/softirq.c:132,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/softirq.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: cpu_raise_softirq_batch_finish
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 2
    functionsReached:
    - softirq_pending
    - cpumask_clear
    - for_each_cpu
    - smp_processor_id
    - __cpumask_clear_cpu
    - ASSERT
    - per_cpu
    - smp_send_event_check_mask
    linkageType: ''
    returnType: void
    signature: void cpu_raise_softirq_batch_finish(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/softirq.c:138,1
    - Dst: set_bit
      Src: /src/xen/xen/common/softirq.c:140,1
    - Dst: softirq_pending
      Src: /src/xen/xen/common/softirq.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nr
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: raise_softirq
    functionSourceFile: /src/xen/xen/common/softirq.c
    functionUses: 28
    functionsReached:
    - softirq_pending
    - smp_processor_id
    - set_bit
    linkageType: ''
    returnType: void
    signature: void raise_softirq(unsigned int nr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getErrorCode
      Src: /src/xen/xen/common/unzstd.c:76,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/unzstd.c:78,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:83,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:86,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:91,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ret
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 98
    functionName: handle_zstd_error
    functionSourceFile: /src/xen/xen/common/unzstd.c
    functionUses: 0
    functionsReached:
    - error
    - ZSTD_getErrorCode
    - ZSTD_isError
    linkageType: ''
    returnType: int
    signature: int handle_zstd_error(size_t ret, void (*error)(const char *x))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtxWorkspaceBound
      Src: /src/xen/xen/common/unzstd.c:109,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unzstd.c:110,1
    - Dst: ZSTD_initDCtx
      Src: /src/xen/xen/common/unzstd.c:111,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:116,1
    - Dst: ZSTD_findFrameCompressedSize
      Src: /src/xen/xen/common/unzstd.c:124,1
    - Dst: handle_zstd_error
      Src: /src/xen/xen/common/unzstd.c:125,1
    - Dst: ZSTD_decompressDCtx
      Src: /src/xen/xen/common/unzstd.c:130,1
    - Dst: handle_zstd_error
      Src: /src/xen/xen/common/unzstd.c:131,1
    - Dst: large_free
      Src: /src/xen/xen/common/unzstd.c:141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - in_buf
    - in_len
    - out_buf
    - out_len
    - in_pos
    argTypes:
    - u8*
    - long
    - u8*
    - long
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 143
    functionName: decompress_single
    functionSourceFile: /src/xen/xen/common/unzstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_findFrameCompressedSize
    - large_malloc
    - ZSTD_decompressDCtx
    - large_free
    - error
    - ZSTD_initDCtx
    - handle_zstd_error
    - ZSTD_DCtxWorkspaceBound
    linkageType: ''
    returnType: int
    signature: "int decompress_single(const u8 *in_buf, long in_len, u8 *out_buf,\n\t\t\t\t
      \   long out_len, unsigned int *in_pos,\n\t\t\t\t    void (*error)(const char
      *x))"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: decompress_single
      Src: /src/xen/xen/common/unzstd.c:173,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unzstd.c:182,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:184,1
    - Dst: fill
      Src: /src/xen/xen/common/unzstd.c:193,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:195,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unzstd.c:205,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:207,1
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/unzstd.c:226,1
    - Dst: handle_zstd_error
      Src: /src/xen/xen/common/unzstd.c:227,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:231,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:236,1
    - Dst: ZSTD_DStreamWorkspaceBound
      Src: /src/xen/xen/common/unzstd.c:245,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/unzstd.c:246,1
    - Dst: ZSTD_initDStream
      Src: /src/xen/xen/common/unzstd.c:247,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:249,1
    - Dst: fill
      Src: /src/xen/xen/common/unzstd.c:270,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:272,1
    - Dst: ZSTD_decompressStream
      Src: /src/xen/xen/common/unzstd.c:280,1
    - Dst: handle_zstd_error
      Src: /src/xen/xen/common/unzstd.c:281,1
    - Dst: flush
      Src: /src/xen/xen/common/unzstd.c:286,1
    - Dst: error
      Src: /src/xen/xen/common/unzstd.c:287,1
    - Dst: large_free
      Src: /src/xen/xen/common/unzstd.c:301,1
    - Dst: large_free
      Src: /src/xen/xen/common/unzstd.c:303,1
    - Dst: large_free
      Src: /src/xen/xen/common/unzstd.c:305,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 108
    argCount: 4
    argNames:
    - in_buf
    - in_len
    - out_buf
    - in_pos
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 307
    functionName: unzstd
    functionSourceFile: /src/xen/xen/common/unzstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_decompressStream
    - ZSTD_getFrameParams
    - large_malloc
    - large_free
    - error
    - handle_zstd_error
    - flush
    - decompress_single
    - ZSTD_initDStream
    - fill
    - ZSTD_DStreamWorkspaceBound
    linkageType: ''
    returnType: int
    signature: "int unzstd(unsigned char *in_buf, unsigned int in_len,\n\t\t  int
      (*fill)(void*, unsigned int),\n\t\t  int (*flush)(void*, unsigned int),\n\t\t
      \ unsigned char *out_buf, unsigned int *in_pos,\n\t\t  void (*error)(const char
      *x))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: xen_compile_date
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compile_date(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: xen_compile_time
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compile_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: xen_compile_by
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compile_by(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: xen_compile_domain
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compile_domain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: xen_compile_host
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compile_host(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: xen_compiler
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_compiler(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: xen_major_version
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xen_major_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: xen_minor_version
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xen_minor_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: xen_extra_version
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_extra_version(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: xen_changeset
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_changeset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: xen_banner
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_banner(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: xen_deny
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_deny(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: xen_build_info
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *xen_build_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/version.c:102,1
    - Dst: xen_major_version
      Src: /src/xen/xen/common/version.c:103,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/common/version.c:103,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/common/version.c:103,1
    - Dst: xen_compile_by
      Src: /src/xen/xen/common/version.c:104,1
    - Dst: xen_compile_domain
      Src: /src/xen/xen/common/version.c:104,1
    - Dst: xen_compiler
      Src: /src/xen/xen/common/version.c:104,1
    - Dst: xen_build_info
      Src: /src/xen/xen/common/version.c:105,1
    - Dst: xen_compile_date
      Src: /src/xen/xen/common/version.c:105,1
    - Dst: printk
      Src: /src/xen/xen/common/version.c:107,1
    - Dst: xen_changeset
      Src: /src/xen/xen/common/version.c:107,1
    - Dst: printk
      Src: /src/xen/xen/common/version.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: print_version
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached:
    - xen_extra_version
    - xen_compile_by
    - xen_compile_date
    - xen_changeset
    - xen_minor_version
    - printk
    - xen_build_info
    - xen_compiler
    - xen_compile_domain
    - xen_major_version
    linkageType: ''
    returnType: void
    signature: void print_version(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/version.c:121,1
    - Dst: strncmp
      Src: /src/xen/xen/common/version.c:136,1
    - Dst: ELFNOTE_NAME
      Src: /src/xen/xen/common/version.c:136,1
    - Dst: ELFNOTE_DESC
      Src: /src/xen/xen/common/version.c:142,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - n
    - n_sz
    - p
    - len
    argTypes:
    - Elf_Note*
    - unsigned int
    - void**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 145
    functionName: xen_build_id_check
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 1
    functionsReached:
    - ELFNOTE_DESC
    - ASSERT
    - strncmp
    - ELFNOTE_NAME
    linkageType: ''
    returnType: int
    signature: "int xen_build_id_check(const Elf_Note *n, unsigned int n_sz,\n                       const
      void **p, unsigned int *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xen_build_id_check
      Src: /src/xen/xen/common/version.c:185,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/version.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 218
    functionName: xen_build_init
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 0
    functionsReached:
    - xen_build_id_check
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void xen_build_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/version.c:235,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/version.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/common/version.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/trace.c:84,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 87
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 7
    functionsReached:
    - spin_lock_init
    - per_cpu
    linkageType: ''
    returnType: void
    signature: "void cpu_callback(\n    struct notifier_block *nfb, unsigned long
      action, void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/trace.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: calc_tinfo_first_offset
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t calc_tinfo_first_offset(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/common/trace.c:109,1
    - Dst: typeof
      Src: /src/xen/xen/common/trace.c:111,1
    - Dst: typeof
      Src: /src/xen/xen/common/trace.c:112,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:141,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/trace.c:152,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - pages
    - t_info_first_offset
    argTypes:
    - unsigned int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 157
    functionName: calculate_tbuf_size
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - typeof
    - printk
    - PFN_UP
    linkageType: ''
    returnType: int
    signature: int calculate_tbuf_size(unsigned int pages, uint16_t t_info_first_offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calc_tinfo_first_offset
      Src: /src/xen/xen/common/trace.c:184,1
    - Dst: calculate_tbuf_size
      Src: /src/xen/xen/common/trace.c:186,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/trace.c:188,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/common/trace.c:188,1
    - Dst: memset
      Src: /src/xen/xen/common/trace.c:192,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/trace.c:209,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/trace.c:209,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:212,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/trace.c:217,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/trace.c:228,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:228,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:233,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/trace.c:233,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:236,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/common/trace.c:241,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/trace.c:242,1
    - Dst: _mfn
      Src: /src/xen/xen/common/trace.c:242,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/common/trace.c:247,1
    - Dst: virt_to_page
      Src: /src/xen/xen/common/trace.c:248,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:254,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/trace.c:255,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:271,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/trace.c:271,1
    - Dst: _mfn
      Src: /src/xen/xen/common/trace.c:271,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/common/trace.c:272,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/trace.c:272,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - pages
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 274
    functionName: alloc_trace_bufs
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - virt_to_mfn
    - get_order_from_pages
    - mfn_to_page
    - mfn_to_virt
    - _mfn
    - free_xenheap_pages
    - virt_to_page
    - smp_wmb
    - MEMF_bits
    - ASSERT
    - alloc_xenheap_pages
    - per_cpu
    - printk
    - calc_tinfo_first_offset
    - memset
    - spin_lock_init
    - share_xen_page_with_privileged_guests
    - calculate_tbuf_size
    linkageType: ''
    returnType: int
    signature: int alloc_trace_bufs(unsigned int pages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/trace.c:209,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/trace.c:209,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:212,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/trace.c:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 12
    functionsReached:
    - alloc_xenheap_pages
    - virt_to_mfn
    - printk
    - MEMF_bits
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/trace.c:228,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:228,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:233,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/trace.c:233,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:236,1
    - Dst: share_xen_page_with_privileged_guests
      Src: /src/xen/xen/common/trace.c:241,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/trace.c:242,1
    - Dst: _mfn
      Src: /src/xen/xen/common/trace.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 243
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 12
    functionsReached:
    - mfn_to_page
    - spin_lock_init
    - _mfn
    - per_cpu
    - printk
    - mfn_to_virt
    - share_xen_page_with_privileged_guests
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu(cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:297,1
    - Dst: alloc_trace_bufs
      Src: /src/xen/xen/common/trace.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pages
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 7
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: tb_set_size
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - alloc_trace_bufs
    - printk
    linkageType: ''
    returnType: int
    signature: int tb_set_size(unsigned int pages)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/trace.c:326,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/trace.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - event
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 330
    functionName: trace_will_trace_event
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 2
    functionsReached:
    - smp_processor_id
    - cpumask_test_cpu
    linkageType: ''
    returnType: int
    signature: int trace_will_trace_event(u32 event)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_setall
      Src: /src/xen/xen/common/trace.c:343,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/trace.c:344,1
    - Dst: alloc_trace_bufs
      Src: /src/xen/xen/common/trace.c:348,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:350,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 7
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: init_trace_bufs
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - alloc_trace_bufs
    - printk
    - cpumask_setall
    linkageType: ''
    returnType: void
    signature: void init_trace_bufs(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/trace.c:373,1
    - Dst: virt_to_mfn
      Src: /src/xen/xen/common/trace.c:379,1
    - Dst: xenctl_bitmap_to_cpumask
      Src: /src/xen/xen/common/trace.c:386,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/trace.c:389,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/trace.c:390,1
    - Dst: tb_set_size
      Src: /src/xen/xen/common/trace.c:398,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/trace.c:416,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/trace.c:423,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:423,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/trace.c:425,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:425,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/trace.c:434,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - tbc
    argTypes:
    - struct xen_sysctl_tbuf_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 368
    functionDepth: 8
    functionLinenumber: 368
    functionLinenumberEnd: 437
    functionName: tb_control
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - free_cpumask_var
    - virt_to_mfn
    - spin_lock_irqsave
    - xenctl_bitmap_to_cpumask
    - spin_unlock_irqrestore
    - smp_wmb
    - spin_lock
    - per_cpu
    - cpumask_copy
    - tb_set_size
    linkageType: ''
    returnType: int
    signature: int tb_control(struct xen_sysctl_tbuf_op *tbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/trace.c:423,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:423,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/trace.c:425,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/trace.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 12
    functionsReached:
    - spin_lock_irqsave
    - per_cpu
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 424
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 164
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(lost_records, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cycles
    - extra
    argTypes:
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: calc_rec_size
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int calc_rec_size(bool cycles, unsigned int extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:451,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:451,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:452,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:452,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:455,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/trace.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - prod
    - cons
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: bogus
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - printk
    - unlikely
    linkageType: ''
    returnType: bool
    signature: bool bogus(u32 prod, u32 cons)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/common/trace.c:467,1
    - Dst: bogus
      Src: /src/xen/xen/common/trace.c:468,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:475,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct t_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 479
    functionName: calc_unconsumed_bytes
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - bogus
    - ASSERT
    - barrier
    linkageType: ''
    returnType: u32
    signature: u32 calc_unconsumed_bytes(const struct t_buf *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/common/trace.c:486,1
    - Dst: bogus
      Src: /src/xen/xen/common/trace.c:487,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:494,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct t_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 498
    functionName: calc_bytes_to_wrap
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - bogus
    - ASSERT
    - barrier
    linkageType: ''
    returnType: u32
    signature: u32 calc_bytes_to_wrap(const struct t_buf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calc_unconsumed_bytes
      Src: /src/xen/xen/common/trace.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct t_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 503
    functionName: calc_bytes_avail
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - calc_unconsumed_bytes
    linkageType: ''
    returnType: u32
    signature: u32 calc_bytes_avail(const struct t_buf *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: barrier
      Src: /src/xen/xen/common/trace.c:516,1
    - Dst: bogus
      Src: /src/xen/xen/common/trace.c:518,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:524,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/trace.c:532,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/trace.c:535,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/trace.c:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - buf
    - next
    - next_page
    - offset_in_page
    argTypes:
    - struct t_buf*
    - uint32_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 547
    functionName: next_record
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - bogus
    - ASSERT
    - barrier
    - mfn_to_virt
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *next_record(const struct t_buf *buf, uint32_t *next,\n
      \                                unsigned char **next_page,\n                                 uint32_t
      *offset_in_page)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calc_rec_size
      Src: /src/xen/xen/common/trace.c:560,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/trace.c:565,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/trace.c:566,1
    - Dst: next_record
      Src: /src/xen/xen/common/trace.c:568,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:574,1
    - Dst: printk
      Src: /src/xen/xen/common/trace.c:579,1
    - Dst: get_cycles
      Src: /src/xen/xen/common/trace.c:594,1
    - Dst: memcpy
      Src: /src/xen/xen/common/trace.c:601,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:603,1
    - Dst: memcpy
      Src: /src/xen/xen/common/trace.c:605,1
    - Dst: memcpy
      Src: /src/xen/xen/common/trace.c:606,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/trace.c:609,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 6
    argNames:
    - buf
    - event
    - extra
    - cycles
    - rec_size
    - extra_data
    argTypes:
    - struct t_buf*
    - unsigned long
    - unsigned int
    - bool
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 616
    functionName: __insert_record
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - unlikely
    - next_record
    - smp_wmb
    - BUG_ON
    - ASSERT
    - printk
    - calc_rec_size
    - get_cycles
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void __insert_record(struct t_buf *buf,\n                                   unsigned
      long event,\n                                   unsigned int extra,\n                                   bool
      cycles,\n                                   unsigned int rec_size,\n                                   const
      void *extra_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_bytes_to_wrap
      Src: /src/xen/xen/common/trace.c:621,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/trace.c:625,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/trace.c:632,1
    - Dst: __insert_record
      Src: /src/xen/xen/common/trace.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - struct t_buf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 637
    functionName: insert_wrap_record
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - ASSERT
    - __insert_record
    - calc_bytes_to_wrap
    linkageType: ''
    returnType: void
    signature: "void insert_wrap_record(struct t_buf *buf,\n                                      unsigned
      int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:651,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:652,1
    - Dst: __insert_record
      Src: /src/xen/xen/common/trace.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct t_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 658
    functionName: insert_lost_records
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - __insert_record
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void insert_lost_records(struct t_buf *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    functionName: this_cpu
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 247
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void this_cpu(lost_records)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_global_virq
      Src: /src/xen/xen/common/trace.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 667
    functionName: trace_notify_dom0
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 0
    functionsReached:
    - send_global_virq
    linkageType: ''
    returnType: void
    signature: void trace_notify_dom0(void *unused)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printk_once
      Src: /src/xen/xen/common/trace.c:698,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/trace.c:714,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/trace.c:714,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/trace.c:717,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:717,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:719,1
    - Dst: unlikely
      Src: /src/xen/xen/common/trace.c:721,1
    - Dst: calc_unconsumed_bytes
      Src: /src/xen/xen/common/trace.c:728,1
    - Dst: calc_rec_size
      Src: /src/xen/xen/common/trace.c:731,1
    - Dst: calc_bytes_avail
      Src: /src/xen/xen/common/trace.c:734,1
    - Dst: calc_bytes_to_wrap
      Src: /src/xen/xen/common/trace.c:737,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:747,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:771,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:772,1
    - Dst: get_cycles
      Src: /src/xen/xen/common/trace.c:772,1
    - Dst: calc_bytes_to_wrap
      Src: /src/xen/xen/common/trace.c:780,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:782,1
    - Dst: insert_wrap_record
      Src: /src/xen/xen/common/trace.c:786,1
    - Dst: insert_lost_records
      Src: /src/xen/xen/common/trace.c:789,1
    - Dst: insert_wrap_record
      Src: /src/xen/xen/common/trace.c:798,1
    - Dst: __insert_record
      Src: /src/xen/xen/common/trace.c:801,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/trace.c:804,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/trace.c:804,1
    - Dst: likely
      Src: /src/xen/xen/common/trace.c:807,1
    - Dst: calc_unconsumed_bytes
      Src: /src/xen/xen/common/trace.c:809,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/common/trace.c:810,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 3
    argNames:
    - event
    - extra
    - extra_data
    argTypes:
    - uint32_t
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 679
    functionDepth: 5
    functionLinenumber: 679
    functionLinenumberEnd: 811
    functionName: trace
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 31
    functionsReached:
    - tasklet_schedule
    - unlikely
    - smp_processor_id
    - spin_lock_irqsave
    - insert_wrap_record
    - __insert_record
    - likely
    - calc_unconsumed_bytes
    - spin_unlock_irqrestore
    - printk_once
    - get_cycles
    - insert_lost_records
    - calc_bytes_to_wrap
    - calc_rec_size
    - this_cpu
    - calc_bytes_avail
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void trace(uint32_t event, unsigned int extra, const void *extra_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/trace.c:826,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/trace.c:840,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:847,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:850,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:853,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:854,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:857,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:858,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:861,1
    - Dst: APPEND_ARG32
      Src: /src/xen/xen/common/trace.c:864,1
    - Dst: trace_time
      Src: /src/xen/xen/common/trace.c:868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - event
    - op
    - args
    argTypes:
    - uint32_t
    - unsigned long
    - xen_ulong_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 869
    functionName: __trace_hypercall
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 2
    functionsReached:
    - APPEND_ARG32
    - WARN_ON
    - trace_time
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void __trace_hypercall(uint32_t event, unsigned long op,\n                       const
      xen_ulong_t *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 834
    functionName: APPEND_ARG32
    functionSourceFile: /src/xen/xen/common/trace.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_ARG32(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/notifier.c:29,1
    - Dst: list_add
      Src: /src/xen/xen/common/notifier.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nh
    - n
    argTypes:
    - struct notifier_head*
    - struct notifier_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: notifier_chain_register
    functionSourceFile: /src/xen/xen/common/notifier.c
    functionUses: 1
    functionsReached:
    - list_add
    - list_entry
    linkageType: ''
    returnType: void
    signature: "void notifier_chain_register(\n    struct notifier_head *nh, struct
      notifier_block *n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/common/notifier.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nh
    - n
    argTypes:
    - struct notifier_head*
    - struct notifier_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: notifier_chain_unregister
    functionSourceFile: /src/xen/xen/common/notifier.c
    functionUses: 0
    functionsReached:
    - list_del
    linkageType: ''
    returnType: void
    signature: "void notifier_chain_unregister(\n    struct notifier_head *nh, struct
      notifier_block *n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/notifier.c:83,1
    - Dst: struct notifier_block*::notifier_call
      Src: /src/xen/xen/common/notifier.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - nh
    - val
    - v
    - pcursor
    argTypes:
    - struct notifier_head*
    - unsigned long
    - void*
    - struct notifier_block**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: notifier_call_chain
    functionSourceFile: /src/xen/xen/common/notifier.c
    functionUses: 6
    functionsReached:
    - struct notifier_block*::notifier_call
    - list_entry
    linkageType: ''
    returnType: int
    signature: "int notifier_call_chain(\n    struct notifier_head *nh, unsigned long
      val, void *v,\n    struct notifier_block **pcursor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: consumer_is_xen
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: consumer_is_xen(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: evtchn_write_lock
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - write_lock
    linkageType: ''
    returnType: always_inline
    signature: always_inline evtchn_write_lock(struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: old_state
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int old_state(const struct evtchn *evtchn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:71,1
    - Dst: old_state
      Src: /src/xen/xen/common/event_channel.c:71,1
    - Dst: old_state
      Src: /src/xen/xen/common/event_channel.c:71,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - evtchn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: evtchn_write_unlock
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - write_unlock
    - old_state
    linkageType: ''
    returnType: void
    signature: void evtchn_write_unlock(struct evtchn *evtchn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/event_channel.c:92,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/event_channel.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v
    - port
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: default_xen_notification_fn
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - vcpu_wake
    linkageType: ''
    returnType: void
    signature: "void default_xen_notification_fn(\n    struct vcpu *v, unsigned int
      port)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/event_channel.c:107,1
    - Dst: cmpxchgptr
      Src: /src/xen/xen/common/event_channel.c:111,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:116,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/event_channel.c:116,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - fn
    argTypes:
    - xen_event_channel_notification_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: get_xen_consumer
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - cmpxchgptr
    - ARRAY_SIZE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_xen_consumer(xen_event_channel_notification_t fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: xen_notification_fn
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xen_notification_fn(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 128
    functionName: get_global_virq_handler
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct domain
    signature: struct domain *get_global_virq_handler(unsigned int virq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: arch_get_virq_type
      Src: /src/xen/xen/common/event_channel.c:144,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - virq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 149
    functionName: get_virq_type
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - arch_get_virq_type
    linkageType: ''
    returnType: enum virq_type
    signature: enum virq_type get_virq_type(unsigned int virq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_channel.c:154,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: _evtchn_from_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_from_port
    - port_is_valid
    linkageType: ''
    returnType: struct evtchn
    signature: "struct evtchn *_evtchn_from_port(const struct domain *d,\n                                        evtchn_port_t
      port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xsm_free_security_evtchns
      Src: /src/xen/xen/common/event_channel.c:162,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_channel.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - bucket
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 164
    functionName: free_evtchn_bucket
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - xfree
    - xsm_free_security_evtchns
    linkageType: ''
    returnType: void
    signature: void free_evtchn_bucket(struct domain *d, struct evtchn *bucket)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/event_channel.c:171,1
    - Dst: xsm_alloc_security_evtchns
      Src: /src/xen/xen/common/event_channel.c:175,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/event_channel.c:181,1
    - Dst: free_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: alloc_evtchn_bucket
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - xsm_alloc_security_evtchns
    - rwlock_init
    - free_evtchn_bucket
    - xzalloc_array
    linkageType: ''
    returnType: struct evtchn
    signature: struct evtchn *alloc_evtchn_bucket(struct domain *d, unsigned int port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: max_evtchns
      Src: /src/xen/xen/common/event_channel.c:202,1
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_channel.c:205,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:207,1
    - Dst: evtchn_is_busy
      Src: /src/xen/xen/common/event_channel.c:209,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:214,1
    - Dst: group_from_port
      Src: /src/xen/xen/common/event_channel.c:221,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/event_channel.c:223,1
    - Dst: group_from_port
      Src: /src/xen/xen/common/event_channel.c:226,1
    - Dst: alloc_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:229,1
    - Dst: bucket_from_port
      Src: /src/xen/xen/common/event_channel.c:232,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/event_channel.c:240,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:242,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 249
    functionName: evtchn_allocate_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - port_is_valid
    - max_evtchns
    - group_from_port
    - write_atomic
    - xzalloc_array
    - smp_wmb
    - evtchn_from_port
    - read_atomic
    - alloc_evtchn_bucket
    - bucket_from_port
    - evtchn_is_busy
    linkageType: ''
    returnType: int
    signature: int evtchn_allocate_port(struct domain *d, evtchn_port_t port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_allocate_port
      Src: /src/xen/xen/common/event_channel.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 269
    functionName: get_free_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_allocate_port
    linkageType: ''
    returnType: int
    signature: int get_free_port(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_channel.c:277,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:278,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: check_free_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - write_atomic
    - evtchn_from_port
    - port_is_valid
    linkageType: ''
    returnType: void
    signature: void check_free_port(struct domain *d, evtchn_port_t port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_port_clear_pending
      Src: /src/xen/xen/common/event_channel.c:285,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:287,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:289,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/event_channel.c:291,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:293,1
    - Dst: xsm_evtchn_close_post
      Src: /src/xen/xen/common/event_channel.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 301
    functionName: evtchn_free
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - write_atomic
    - smp_wmb
    - consumer_is_xen
    - xsm_evtchn_close_post
    - evtchn_port_clear_pending
    linkageType: ''
    returnType: void
    signature: void evtchn_free(struct domain *d, struct evtchn *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_allocate_port
      Src: /src/xen/xen/common/event_channel.c:308,1
    - Dst: get_free_port
      Src: /src/xen/xen/common/event_channel.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: evtchn_get_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_allocate_port
    - get_free_port
    linkageType: ''
    returnType: int
    signature: int evtchn_get_port(struct domain *d, evtchn_port_t port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/event_channel.c:326,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:330,1
    - Dst: evtchn_get_port
      Src: /src/xen/xen/common/event_channel.c:332,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:335,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:339,1
    - Dst: xsm_evtchn_unbound
      Src: /src/xen/xen/common/event_channel.c:341,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:345,1
    - Dst: evtchn_port_init
      Src: /src/xen/xen/common/event_channel.c:350,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:352,1
    - Dst: check_free_port
      Src: /src/xen/xen/common/event_channel.c:357,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:358,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - alloc
    - port
    argTypes:
    - evtchn_alloc_unbound_t*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 319
    functionDepth: 5
    functionLinenumber: 319
    functionLinenumberEnd: 362
    functionName: evtchn_alloc_unbound
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 5
    functionsReached:
    - gdprintk
    - evtchn_get_port
    - write_unlock
    - evtchn_port_init
    - evtchn_write_unlock
    - evtchn_from_port
    - check_free_port
    - evtchn_write_lock
    - rcu_unlock_domain
    - rcu_lock_domain_by_any_id
    - write_lock
    - xsm_evtchn_unbound
    linkageType: ''
    returnType: int
    signature: int evtchn_alloc_unbound(evtchn_alloc_unbound_t *alloc, evtchn_port_t
      port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:367,1
    - Dst: SWAP
      Src: /src/xen/xen/common/event_channel.c:370,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:372,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lchn
    - rchn
    argTypes:
    - struct evtchn*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: double_evtchn_lock
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - evtchn_write_lock
    - SWAP
    linkageType: ''
    returnType: always_inline
    signature: "always_inline double_evtchn_lock(struct evtchn *lchn,\n                                             struct
      evtchn *rchn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:378,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lchn
    - rchn
    argTypes:
    - struct evtchn*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: double_evtchn_unlock
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_write_unlock
    linkageType: ''
    returnType: void
    signature: void double_evtchn_unlock(struct evtchn *lchn, struct evtchn *rchn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/event_channel.c:395,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:401,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:402,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:407,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:408,1
    - Dst: evtchn_get_port
      Src: /src/xen/xen/common/event_channel.c:411,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:414,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:420,1
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:422,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:426,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:434,1
    - Dst: xsm_evtchn_interdomain
      Src: /src/xen/xen/common/event_channel.c:438,1
    - Dst: double_evtchn_lock
      Src: /src/xen/xen/common/event_channel.c:442,1
    - Dst: evtchn_port_init
      Src: /src/xen/xen/common/event_channel.c:447,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:457,1
    - Dst: double_evtchn_unlock
      Src: /src/xen/xen/common/event_channel.c:459,1
    - Dst: check_free_port
      Src: /src/xen/xen/common/event_channel.c:464,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:465,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:467,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:469,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 3
    argNames:
    - bind
    - ld
    - lport
    argTypes:
    - evtchn_bind_interdomain_t*
    - struct domain*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 472
    functionName: evtchn_bind_interdomain
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 11
    functionsReached:
    - gdprintk
    - evtchn_get_port
    - write_unlock
    - evtchn_port_init
    - _evtchn_from_port
    - xsm_evtchn_interdomain
    - double_evtchn_unlock
    - evtchn_from_port
    - double_evtchn_lock
    - check_free_port
    - evtchn_port_set_pending
    - rcu_lock_domain_by_any_id
    - write_lock
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: "int evtchn_bind_interdomain(evtchn_bind_interdomain_t *bind, struct
      domain *ld,\n                            evtchn_port_t lport)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/event_channel.c:484,1
    - Dst: array_index_nospec
      Src: /src/xen/xen/common/event_channel.c:491,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/event_channel.c:491,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:492,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/event_channel.c:497,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:500,1
    - Dst: get_global_virq_handler
      Src: /src/xen/xen/common/event_channel.c:502,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:508,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:511,1
    - Dst: domain_init_states
      Src: /src/xen/xen/common/event_channel.c:517,1
    - Dst: evtchn_get_port
      Src: /src/xen/xen/common/event_channel.c:522,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:525,1
    - Dst: domain_deinit_states
      Src: /src/xen/xen/common/event_channel.c:526,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:532,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:534,1
    - Dst: evtchn_port_init
      Src: /src/xen/xen/common/event_channel.c:539,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:541,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:551,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:554,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - bind
    - port
    argTypes:
    - evtchn_bind_virq_t*
    - evtchn_port_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 557
    functionName: evtchn_bind_virq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 8
    functionsReached:
    - get_virq_type
    - array_index_nospec
    - gdprintk
    - domain_vcpu
    - evtchn_get_port
    - ARRAY_SIZE
    - write_unlock
    - domain_init_states
    - evtchn_port_init
    - domain_deinit_states
    - write_atomic
    - evtchn_write_unlock
    - evtchn_from_port
    - read_atomic
    - evtchn_write_lock
    - write_lock
    - get_global_virq_handler
    linkageType: ''
    returnType: int
    signature: int evtchn_bind_virq(evtchn_bind_virq_t *bind, evtchn_port_t port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/event_channel.c:567,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:570,1
    - Dst: get_free_port
      Src: /src/xen/xen/common/event_channel.c:572,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:575,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:579,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:581,1
    - Dst: evtchn_port_init
      Src: /src/xen/xen/common/event_channel.c:585,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:587,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - bind
    argTypes:
    - evtchn_bind_ipi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 595
    functionName: evtchn_bind_ipi
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - get_free_port
    - gdprintk
    - domain_vcpu
    - write_unlock
    - evtchn_port_init
    - evtchn_write_unlock
    - evtchn_from_port
    - evtchn_write_lock
    - write_lock
    linkageType: ''
    returnType: int
    signature: int evtchn_bind_ipi(evtchn_bind_ipi_t *bind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - port
    - chn
    - v
    argTypes:
    - int
    - struct evtchn*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: link_pirq_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_from_port
    linkageType: ''
    returnType: void
    signature: void link_pirq_port(int port, struct evtchn *chn, struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:614,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - chn
    - v
    argTypes:
    - struct evtchn*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 621
    functionName: unlink_pirq_port
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_from_port
    linkageType: ''
    returnType: void
    signature: void unlink_pirq_port(struct evtchn *chn, struct vcpu *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/event_channel.c:638,1
    - Dst: pirq_access_permitted
      Src: /src/xen/xen/common/event_channel.c:638,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:641,1
    - Dst: pirq_to_evtchn
      Src: /src/xen/xen/common/event_channel.c:643,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:646,1
    - Dst: get_free_port
      Src: /src/xen/xen/common/event_channel.c:650,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:653,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:657,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/common/event_channel.c:659,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/event_channel.c:663,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/event_channel.c:668,1
    - Dst: pirq_guest_bind
      Src: /src/xen/xen/common/event_channel.c:669,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/common/event_channel.c:675,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:679,1
    - Dst: link_pirq_port
      Src: /src/xen/xen/common/event_channel.c:683,1
    - Dst: evtchn_port_init
      Src: /src/xen/xen/common/event_channel.c:684,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:686,1
    - Dst: arch_evtchn_bind_pirq
      Src: /src/xen/xen/common/event_channel.c:690,1
    - Dst: check_free_port
      Src: /src/xen/xen/common/event_channel.c:693,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:694,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - bind
    argTypes:
    - evtchn_bind_pirq_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 700
    functionName: evtchn_bind_pirq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - get_free_port
    - gdprintk
    - pirq_to_evtchn
    - pirq_guest_bind
    - pirq_cleanup_check
    - write_unlock
    - evtchn_port_init
    - link_pirq_port
    - pirq_access_permitted
    - arch_evtchn_bind_pirq
    - evtchn_write_unlock
    - evtchn_from_port
    - check_free_port
    - evtchn_write_lock
    - pirq_get_info
    - write_lock
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int evtchn_bind_pirq(evtchn_bind_pirq_t *bind)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:706,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:713,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:716,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:716,1
    - Dst: pirq_info
      Src: /src/xen/xen/common/event_channel.c:734,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/event_channel.c:738,1
    - Dst: pirq_guest_unbind
      Src: /src/xen/xen/common/event_channel.c:739,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/event_channel.c:741,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/common/event_channel.c:742,1
    - Dst: unmap_domain_pirq_emuirq
      Src: /src/xen/xen/common/event_channel.c:743,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/common/event_channel.c:750,1
    - Dst: unlink_pirq_port
      Src: /src/xen/xen/common/event_channel.c:753,1
    - Dst: domain_deinit_states
      Src: /src/xen/xen/common/event_channel.c:763,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:765,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/event_channel.c:768,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:769,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:769,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:770,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/event_channel.c:771,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/event_channel.c:785,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:788,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:791,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:792,1
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:809,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:810,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:811,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:812,1
    - Dst: double_evtchn_lock
      Src: /src/xen/xen/common/event_channel.c:814,1
    - Dst: evtchn_free
      Src: /src/xen/xen/common/event_channel.c:816,1
    - Dst: double_evtchn_unlock
      Src: /src/xen/xen/common/event_channel.c:821,1
    - Dst: BUG
      Src: /src/xen/xen/common/event_channel.c:826,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:829,1
    - Dst: evtchn_free
      Src: /src/xen/xen/common/event_channel.c:830,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:831,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:837,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:838,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:841,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 3
    argNames:
    - d1
    - port1
    - guest
    argTypes:
    - struct domain*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 844
    functionName: evtchn_close
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 20
    functionsReached:
    - domain_pirq_to_irq
    - _evtchn_from_port
    - pirq_info
    - consumer_is_xen
    - double_evtchn_lock
    - is_hvm_domain
    - BUG
    - write_atomic
    - write_lock_irqsave
    - unlink_pirq_port
    - BUG_ON
    - rcu_unlock_domain
    - evtchn_write_unlock
    - get_virq_type
    - pirq_cleanup_check
    - write_unlock
    - unmap_domain_pirq_emuirq
    - domain_deinit_states
    - evtchn_free
    - ASSERT
    - write_lock
    - pirq_guest_unbind
    - rcu_lock_domain
    - write_unlock_irqrestore
    - read_atomic
    - evtchn_write_lock
    - unlikely
    - double_evtchn_unlock
    linkageType: ''
    returnType: int
    signature: int evtchn_close(struct domain *d1, int port1, bool guest)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:848,1
    - Dst: evtchn_read_lock
      Src: /src/xen/xen/common/event_channel.c:855,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:858,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:858,1
    - Dst: xsm_evtchn_send
      Src: /src/xen/xen/common/event_channel.c:864,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:873,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:874,1
    - Dst: xen_notification_fn
      Src: /src/xen/xen/common/event_channel.c:877,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/common/event_channel.c:880,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:881,1
    - Dst: fn
      Src: /src/xen/xen/common/event_channel.c:882,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:883,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:886,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:889,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:900,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - ld
    - lport
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 903
    functionName: evtchn_send
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - evtchn_read_lock
    - rcu_lock_domain
    - evtchn_read_unlock
    - _evtchn_from_port
    - xen_notification_fn
    - consumer_is_xen
    - evtchn_from_port
    - xsm_evtchn_send
    - fn
    - evtchn_port_set_pending
    - unlikely
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: int evtchn_send(struct domain *ld, unsigned int lport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:910,1
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/event_channel.c:911,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - v
    - virq
    argTypes:
    - struct vcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 914
    functionName: evtchn_virq_enabled
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - get_virq_type
    - read_atomic
    - domain_vcpu
    linkageType: ''
    returnType: bool
    signature: bool evtchn_virq_enabled(const struct vcpu *v, unsigned int virq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:923,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:923,1
    - Dst: read_lock_irqsave
      Src: /src/xen/xen/common/event_channel.c:925,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:927,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:928,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:932,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/common/event_channel.c:933,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:935,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:936,1
    - Dst: read_unlock_irqrestore
      Src: /src/xen/xen/common/event_channel.c:940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - virq
    argTypes:
    - struct vcpu*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 941
    functionName: send_guest_vcpu_virq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 6
    functionsReached:
    - get_virq_type
    - read_lock_irqsave
    - evtchn_read_unlock
    - evtchn_read_trylock
    - ASSERT
    - evtchn_from_port
    - read_atomic
    - evtchn_port_set_pending
    - unlikely
    - read_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void send_guest_vcpu_virq(struct vcpu *v, uint32_t virq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:950,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:950,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:952,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:952,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:956,1
    - Dst: read_lock_irqsave
      Src: /src/xen/xen/common/event_channel.c:959,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:961,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:962,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:965,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/common/event_channel.c:966,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:968,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:969,1
    - Dst: read_unlock_irqrestore
      Src: /src/xen/xen/common/event_channel.c:973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 943
    functionDepth: 3
    functionLinenumber: 943
    functionLinenumberEnd: 974
    functionName: send_guest_domain_virq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - get_virq_type
    - read_lock_irqsave
    - evtchn_read_unlock
    - evtchn_read_trylock
    - ASSERT
    - evtchn_from_port
    - read_atomic
    - evtchn_port_set_pending
    - unlikely
    - read_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void send_guest_domain_virq(struct domain *d, uint32_t virq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:990,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/common/event_channel.c:990,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:994,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/common/event_channel.c:995,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:997,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:998,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 1000
    functionName: send_guest_pirq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 4
    functionsReached:
    - evtchn_read_unlock
    - evtchn_read_trylock
    - BUG_ON
    - evtchn_from_port
    - evtchn_port_set_pending
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void send_guest_pirq(struct domain *d, const struct pirq *pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:1007,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:1007,1
    - Dst: send_guest_domain_virq
      Src: /src/xen/xen/common/event_channel.c:1009,1
    - Dst: get_global_virq_handler
      Src: /src/xen/xen/common/event_channel.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - virq
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1005
    functionDepth: 4
    functionLinenumber: 1005
    functionLinenumberEnd: 1010
    functionName: send_global_virq
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 13
    functionsReached:
    - get_virq_type
    - ASSERT
    - send_guest_domain_virq
    - get_global_virq_handler
    linkageType: ''
    returnType: void
    signature: void send_global_virq(uint32_t virq)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:1020,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1026,1
    - Dst: get_domain
      Src: /src/xen/xen/common/event_channel.c:1026,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/event_channel.c:1029,1
    - Dst: get_global_virq_handler
      Src: /src/xen/xen/common/event_channel.c:1047,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1052,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:1055,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1063,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/event_channel.c:1067,1
    - Dst: put_domain
      Src: /src/xen/xen/common/event_channel.c:1070,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - d
    - virq
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1073
    functionName: set_global_virq_handler
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - get_virq_type
    - spin_unlock
    - read_unlock
    - spin_lock
    - put_domain
    - read_atomic
    - unlikely
    - get_domain
    - read_lock
    - get_global_virq_handler
    linkageType: ''
    returnType: int
    signature: int set_global_virq_handler(struct domain *d, uint32_t virq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/event_channel.c:1080,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/event_channel.c:1091,1
    - Dst: put_domain
      Src: /src/xen/xen/common/event_channel.c:1095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1098
    functionName: clear_global_virq_handlers
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - put_domain
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void clear_global_virq_handlers(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_global_virq_handler
      Src: /src/xen/xen/common/event_channel.c:1104,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1105,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1105,1
    - Dst: get_domain
      Src: /src/xen/xen/common/event_channel.c:1105,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1111
    functionName: lock_dom_exc_handler
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - unlikely
    - get_domain
    - read_lock
    - get_global_virq_handler
    linkageType: ''
    returnType: struct domain
    signature: struct domain *lock_dom_exc_handler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/event_channel.c:1115,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1118,1
    - Dst: put_domain
      Src: /src/xen/xen/common/event_channel.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1113
    functionDepth: 1
    functionLinenumber: 1113
    functionLinenumberEnd: 1121
    functionName: unlock_dom_exc_handler
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - put_domain
    - likely
    - read_unlock
    linkageType: ''
    returnType: void
    signature: void unlock_dom_exc_handler(struct domain *d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/event_channel.c:1131,1
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1135,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:1138,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1142,1
    - Dst: xsm_evtchn_status
      Src: /src/xen/xen/common/event_channel.c:1144,1
    - Dst: BUG
      Src: /src/xen/xen/common/event_channel.c:1176,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1182,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:1183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - status
    argTypes:
    - evtchn_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1123
    functionDepth: 5
    functionLinenumber: 1123
    functionLinenumberEnd: 1186
    functionName: evtchn_status
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 5
    functionsReached:
    - BUG
    - read_unlock
    - xsm_evtchn_status
    - _evtchn_from_port
    - rcu_lock_domain_by_any_id
    - read_lock
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: int evtchn_status(evtchn_status_t *status)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: domain_vcpu
      Src: /src/xen/xen/common/event_channel.c:1197,1
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1200,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:1204,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1207,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:1207,1
    - Dst: get_virq_type
      Src: /src/xen/xen/common/event_channel.c:1216,1
    - Dst: unlink_pirq_port
      Src: /src/xen/xen/common/event_channel.c:1230,1
    - Dst: pirq_set_affinity
      Src: /src/xen/xen/common/event_channel.c:1232,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/event_channel.c:1233,1
    - Dst: link_pirq_port
      Src: /src/xen/xen/common/event_channel.c:1234,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:1244,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - port
    - vcpu_id
    argTypes:
    - evtchn_port_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1247
    functionName: evtchn_bind_vcpu
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - get_virq_type
    - domain_vcpu
    - pirq_set_affinity
    - write_unlock
    - _evtchn_from_port
    - link_pirq_port
    - unlink_pirq_port
    - consumer_is_xen
    - unlikely
    - cpumask_of
    - write_lock
    linkageType: ''
    returnType: int
    signature: int evtchn_bind_vcpu(evtchn_port_t port, unsigned int vcpu_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1253,1
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1255,1
    - Dst: evtchn_read_lock
      Src: /src/xen/xen/common/event_channel.c:1258,1
    - Dst: evtchn_port_unmask
      Src: /src/xen/xen/common/event_channel.c:1260,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:1262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1250
    functionDepth: 3
    functionLinenumber: 1250
    functionLinenumberEnd: 1265
    functionName: evtchn_unmask
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 20
    functionsReached:
    - evtchn_read_unlock
    - evtchn_read_lock
    - _evtchn_from_port
    - unlikely
    - evtchn_port_unmask
    linkageType: ''
    returnType: int
    signature: int evtchn_unmask(unsigned int port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:1269,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/event_channel.c:1275,1
    - Dst: read_atomic
      Src: /src/xen/xen/common/event_channel.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: has_active_evtchns
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - read_atomic
    - smp_rmb
    linkageType: ''
    returnType: bool
    signature: bool has_active_evtchns(const struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:1288,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:1299,1
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_channel.c:1304,1
    - Dst: has_active_evtchns
      Src: /src/xen/xen/common/event_channel.c:1304,1
    - Dst: evtchn_close
      Src: /src/xen/xen/common/event_channel.c:1306,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/event_channel.c:1309,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:1311,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:1313,1
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:1318,1
    - Dst: evtchn_fifo_destroy
      Src: /src/xen/xen/common/event_channel.c:1327,1
    - Dst: evtchn_2l_init
      Src: /src/xen/xen/common/event_channel.c:1328,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:1331,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - d
    - resuming
    argTypes:
    - struct domain*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1280
    functionDepth: 5
    functionLinenumber: 1280
    functionLinenumberEnd: 1334
    functionName: evtchn_reset
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 3
    functionsReached:
    - has_active_evtchns
    - port_is_valid
    - write_unlock
    - evtchn_fifo_destroy
    - evtchn_close
    - hypercall_preempt_check
    - evtchn_2l_init
    - write_lock
    linkageType: ''
    returnType: int
    signature: int evtchn_reset(struct domain *d, bool resuming)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1339,1
    - Dst: evtchn_read_lock
      Src: /src/xen/xen/common/event_channel.c:1345,1
    - Dst: evtchn_port_set_priority
      Src: /src/xen/xen/common/event_channel.c:1347,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - set_priority
    argTypes:
    - struct evtchn_set_priority*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1352
    functionName: evtchn_set_priority
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_read_unlock
    - _evtchn_from_port
    - evtchn_read_lock
    - evtchn_port_set_priority
    linkageType: ''
    returnType: int
    signature: int evtchn_set_priority(const struct evtchn_set_priority *set_priority)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/event_channel.c:1359,1
    - Dst: pv_shim_event_channel_op
      Src: /src/xen/xen/common/event_channel.c:1360,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1367,1
    - Dst: evtchn_alloc_unbound
      Src: /src/xen/xen/common/event_channel.c:1369,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1370,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1377,1
    - Dst: evtchn_bind_interdomain
      Src: /src/xen/xen/common/event_channel.c:1379,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1380,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1387,1
    - Dst: evtchn_bind_virq
      Src: /src/xen/xen/common/event_channel.c:1389,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1390,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1397,1
    - Dst: evtchn_bind_ipi
      Src: /src/xen/xen/common/event_channel.c:1399,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1400,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1407,1
    - Dst: evtchn_bind_pirq
      Src: /src/xen/xen/common/event_channel.c:1409,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1410,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1417,1
    - Dst: evtchn_close
      Src: /src/xen/xen/common/event_channel.c:1419,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1425,1
    - Dst: evtchn_send
      Src: /src/xen/xen/common/event_channel.c:1427,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1433,1
    - Dst: evtchn_status
      Src: /src/xen/xen/common/event_channel.c:1435,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1436,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1443,1
    - Dst: evtchn_bind_vcpu
      Src: /src/xen/xen/common/event_channel.c:1445,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1451,1
    - Dst: evtchn_unmask
      Src: /src/xen/xen/common/event_channel.c:1453,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1462,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/common/event_channel.c:1465,1
    - Dst: xsm_evtchn_reset
      Src: /src/xen/xen/common/event_channel.c:1469,1
    - Dst: evtchn_reset
      Src: /src/xen/xen/common/event_channel.c:1471,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/event_channel.c:1473,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/event_channel.c:1476,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1483,1
    - Dst: evtchn_fifo_init_control
      Src: /src/xen/xen/common/event_channel.c:1485,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/event_channel.c:1486,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1493,1
    - Dst: evtchn_fifo_expand_array
      Src: /src/xen/xen/common/event_channel.c:1495,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/event_channel.c:1501,1
    - Dst: evtchn_set_priority
      Src: /src/xen/xen/common/event_channel.c:1503,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 116
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1354
    functionDepth: 6
    functionLinenumber: 1354
    functionLinenumberEnd: 1513
    functionName: do_event_channel_op
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - evtchn_close
    - evtchn_bind_interdomain
    - evtchn_bind_virq
    - hypercall_create_continuation
    - evtchn_unmask
    - rcu_unlock_domain
    - evtchn_fifo_init_control
    - evtchn_status
    - evtchn_bind_pirq
    - pv_shim_event_channel_op
    - evtchn_fifo_expand_array
    - evtchn_bind_ipi
    - unlikely
    - evtchn_alloc_unbound
    - evtchn_reset
    - __copy_to_guest
    - evtchn_bind_vcpu
    - evtchn_send
    - xsm_evtchn_reset
    - rcu_lock_domain_by_any_id
    - evtchn_set_priority
    linkageType: ''
    returnType: long
    signature: long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/event_channel.c:1523,1
    - Dst: get_free_port
      Src: /src/xen/xen/common/event_channel.c:1525,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1528,1
    - Dst: xsm_evtchn_unbound
      Src: /src/xen/xen/common/event_channel.c:1530,1
    - Dst: evtchn_write_lock
      Src: /src/xen/xen/common/event_channel.c:1534,1
    - Dst: get_xen_consumer
      Src: /src/xen/xen/common/event_channel.c:1537,1
    - Dst: evtchn_write_unlock
      Src: /src/xen/xen/common/event_channel.c:1541,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:1547,1
    - Dst: check_free_port
      Src: /src/xen/xen/common/event_channel.c:1550,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/event_channel.c:1551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - ld
    - lvcpu
    - remote_domid
    - notification_fn
    argTypes:
    - struct domain*
    - unsigned int
    - domid_t
    - xen_event_channel_notification_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1516
    functionDepth: 4
    functionLinenumber: 1516
    functionLinenumberEnd: 1554
    functionName: alloc_unbound_xen_event_channel
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 3
    functionsReached:
    - get_free_port
    - write_unlock
    - write_atomic
    - get_xen_consumer
    - evtchn_write_unlock
    - evtchn_from_port
    - check_free_port
    - evtchn_write_lock
    - write_lock
    - xsm_evtchn_unbound
    linkageType: ''
    returnType: int
    signature: "int alloc_unbound_xen_event_channel(\n    struct domain *ld, unsigned
      int lvcpu, domid_t remote_domid,\n    xen_event_channel_notification_t notification_fn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: port_is_valid
      Src: /src/xen/xen/common/event_channel.c:1558,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/event_channel.c:1564,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:1565,1
    - Dst: evtchn_close
      Src: /src/xen/xen/common/event_channel.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1556
    functionDepth: 5
    functionLinenumber: 1556
    functionLinenumberEnd: 1570
    functionName: free_xen_event_channel
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 5
    functionsReached:
    - BUG_ON
    - port_is_valid
    - evtchn_close
    - smp_rmb
    linkageType: ''
    returnType: void
    signature: void free_xen_event_channel(struct domain *d, int port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1575,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/event_channel.c:1584,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:1585,1
    - Dst: evtchn_read_trylock
      Src: /src/xen/xen/common/event_channel.c:1589,1
    - Dst: likely
      Src: /src/xen/xen/common/event_channel.c:1592,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:1594,1
    - Dst: consumer_is_xen
      Src: /src/xen/xen/common/event_channel.c:1594,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1596,1
    - Dst: evtchn_port_set_pending
      Src: /src/xen/xen/common/event_channel.c:1597,1
    - Dst: evtchn_read_unlock
      Src: /src/xen/xen/common/event_channel.c:1600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ld
    - lport
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1601
    functionName: notify_via_xen_event_channel
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 5
    functionsReached:
    - evtchn_read_unlock
    - _evtchn_from_port
    - evtchn_read_trylock
    - likely
    - smp_rmb
    - consumer_is_xen
    - ASSERT
    - evtchn_from_port
    - evtchn_port_set_pending
    linkageType: ''
    returnType: void
    signature: void notify_via_xen_event_channel(struct domain *ld, int lport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/event_channel.c:1609,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/common/event_channel.c:1609,1
    - Dst: bitmap_for_each
      Src: /src/xen/xen/common/event_channel.c:1613,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/event_channel.c:1617,1
    - Dst: vcpu_unblock
      Src: /src/xen/xen/common/event_channel.c:1620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - d
    - port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1603
    functionDepth: 2
    functionLinenumber: 1603
    functionLinenumberEnd: 1623
    functionName: evtchn_check_pollers
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - bitmap_for_each
    - test_and_clear_bit
    - likely
    - vcpu_unblock
    - bitmap_empty
    linkageType: ''
    returnType: void
    signature: void evtchn_check_pollers(struct domain *d, unsigned int port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_2l_init
      Src: /src/xen/xen/common/event_channel.c:1627,1
    - Dst: min_t
      Src: /src/xen/xen/common/event_channel.c:1628,1
    - Dst: alloc_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:1630,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/event_channel.c:1635,1
    - Dst: get_free_port
      Src: /src/xen/xen/common/event_channel.c:1637,1
    - Dst: free_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:1639,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1642,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:1643,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/event_channel.c:1646,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/common/event_channel.c:1646,1
    - Dst: free_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:1649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - d
    - max_port
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1625
    functionDepth: 4
    functionLinenumber: 1625
    functionLinenumberEnd: 1655
    functionName: evtchn_init
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 4
    functionsReached:
    - rwlock_init
    - get_free_port
    - free_evtchn_bucket
    - write_atomic
    - xzalloc_array
    - evtchn_from_port
    - min_t
    - evtchn_2l_init
    - alloc_evtchn_bucket
    - BITS_TO_LONGS
    linkageType: ''
    returnType: int
    signature: int evtchn_init(struct domain *d, unsigned int max_port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/event_channel.c:1662,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1663,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1664,1
    - Dst: evtchn_close
      Src: /src/xen/xen/common/event_channel.c:1669,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/event_channel.c:1676,1
    - Dst: write_atomic
      Src: /src/xen/xen/common/event_channel.c:1678,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/event_channel.c:1683,1
    - Dst: clear_global_virq_handlers
      Src: /src/xen/xen/common/event_channel.c:1685,1
    - Dst: evtchn_fifo_destroy
      Src: /src/xen/xen/common/event_channel.c:1687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1657
    functionDepth: 5
    functionLinenumber: 1657
    functionLinenumberEnd: 1690
    functionName: evtchn_destroy
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - read_unlock
    - write_atomic
    - clear_global_virq_handlers
    - BUG_ON
    - ASSERT
    - evtchn_fifo_destroy
    - hypercall_preempt_check
    - evtchn_close
    - read_lock
    linkageType: ''
    returnType: int
    signature: int evtchn_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:1703,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_channel.c:1704,1
    - Dst: free_evtchn_bucket
      Src: /src/xen/xen/common/event_channel.c:1706,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_channel.c:1709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1712
    functionName: evtchn_destroy_final
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 2
    functionsReached:
    - xfree
    - free_evtchn_bucket
    linkageType: ''
    returnType: void
    signature: void evtchn_destroy_final(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_of
      Src: /src/xen/xen/common/event_channel.c:1718,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1722,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1725,1
    - Dst: pirq_set_affinity
      Src: /src/xen/xen/common/event_channel.c:1726,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1715
    functionDepth: 2
    functionLinenumber: 1715
    functionLinenumberEnd: 1729
    functionName: evtchn_move_pirqs
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - read_unlock
    - pirq_set_affinity
    - evtchn_from_port
    - cpumask_of
    - read_lock
    linkageType: ''
    returnType: void
    signature: void evtchn_move_pirqs(struct vcpu *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1737,1
    - Dst: read_lock
      Src: /src/xen/xen/common/event_channel.c:1741,1
    - Dst: _evtchn_from_port
      Src: /src/xen/xen/common/event_channel.c:1745,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1754,1
    - Dst: evtchn_is_pending
      Src: /src/xen/xen/common/event_channel.c:1756,1
    - Dst: evtchn_is_masked
      Src: /src/xen/xen/common/event_channel.c:1757,1
    - Dst: evtchn_port_print_state
      Src: /src/xen/xen/common/event_channel.c:1758,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1759,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1765,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1768,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/common/event_channel.c:1773,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1774,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1777,1
    - Dst: xsm_show_security_evtchn
      Src: /src/xen/xen/common/event_channel.c:1781,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1783,1
    - Dst: xfree
      Src: /src/xen/xen/common/event_channel.c:1784,1
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1786,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/event_channel.c:1790,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1791
    functionName: domain_dump_evtchn_info
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - evtchn_is_masked
    - domain_pirq_to_irq
    - evtchn_is_pending
    - read_unlock
    - _evtchn_from_port
    - xsm_show_security_evtchn
    - evtchn_port_print_state
    - printk
    - xfree
    - read_lock
    linkageType: ''
    returnType: void
    signature: void domain_dump_evtchn_info(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/event_channel.c:1797,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/event_channel.c:1799,1
    - Dst: for_each_domain
      Src: /src/xen/xen/common/event_channel.c:1801,1
    - Dst: domain_dump_evtchn_info
      Src: /src/xen/xen/common/event_channel.c:1802,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/event_channel.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1793
    functionDepth: 5
    functionLinenumber: 1793
    functionLinenumberEnd: 1805
    functionName: dump_evtchn_info
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - domain_dump_evtchn_info
    - for_each_domain
    - printk
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void dump_evtchn_info(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/event_channel.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1811
    functionName: dump_evtchn_info_key_init
    functionSourceFile: /src/xen/xen/common/event_channel.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int dump_evtchn_info_key_init(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/kexec.c:112,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kexec.c:117,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:119,1
    - Dst: strpbrk
      Src: /src/xen/xen/common/kexec.c:121,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:126,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:132,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:139,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:144,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:154,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:159,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kexec.c:165,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:169,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:173,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:175,1
    - Dst: strncmp
      Src: /src/xen/xen/common/kexec.c:176,1
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:177,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:180,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:186,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 191
    functionName: parse_crashkernel
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - parse_size_and_unit
    - ARRAY_SIZE
    - strpbrk
    - strchr
    - strncmp
    - printk
    linkageType: ''
    returnType: int
    signature: int parse_crashkernel(const char *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/kexec.c:207,1
    - Dst: strcmp
      Src: /src/xen/xen/common/kexec.c:210,1
    - Dst: strcmp
      Src: /src/xen/xen/common/kexec.c:212,1
    - Dst: strcmp
      Src: /src/xen/xen/common/kexec.c:214,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 224
    functionName: parse_low_crashinfo
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - printk
    linkageType: ''
    returnType: int
    signature: int parse_low_crashinfo(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_size_and_unit
      Src: /src/xen/xen/common/kexec.c:242,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 252
    functionName: parse_crashinfo_maxaddr
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - parse_size_and_unit
    - printk
    linkageType: ''
    returnType: int
    signature: int parse_crashinfo_maxaddr(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/kexec.c:259,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:266,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 1
    argNames:
    - system_ram
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: set_kexec_crash_area_size
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - printk
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void set_kexec_crash_area_size(u64 system_ram)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/kexec.c:287,1
    - Dst: cmpxchg
      Src: /src/xen/xen/common/kexec.c:289,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:294,1
    - Dst: halt
      Src: /src/xen/xen/common/kexec.c:303,1
    - Dst: set_bit
      Src: /src/xen/xen/common/kexec.c:306,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 310
    functionName: one_cpu_only
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - halt
    - smp_processor_id
    - printk
    - cmpxchg
    - set_bit
    linkageType: ''
    returnType: int
    signature: int one_cpu_only(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/kexec.c:315,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/kexec.c:320,1
    - Dst: cpumask_test_and_set_cpu
      Src: /src/xen/xen/common/kexec.c:322,1
    - Dst: ELFNOTE_DESC
      Src: /src/xen/xen/common/kexec.c:327,1
    - Dst: ELFNOTE_NEXT
      Src: /src/xen/xen/common/kexec.c:329,1
    - Dst: ELFNOTE_DESC
      Src: /src/xen/xen/common/kexec.c:330,1
    - Dst: elf_core_save_regs
      Src: /src/xen/xen/common/kexec.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 333
    functionName: kexec_crash_save_cpu
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - cpumask_test_and_set_cpu
    - ELFNOTE_NEXT
    - smp_processor_id
    - BUG_ON
    - ELFNOTE_DESC
    - elf_core_save_regs
    linkageType: ''
    returnType: void
    signature: void kexec_crash_save_cpu(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/kexec.c:338,1
    - Dst: ELFNOTE_DESC
      Src: /src/xen/xen/common/kexec.c:340,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/kexec.c:342,1
    - Dst: cpumask_test_and_set_cpu
      Src: /src/xen/xen/common/kexec.c:342,1
    - Dst: memset
      Src: /src/xen/xen/common/kexec.c:344,1
    - Dst: xen_major_version
      Src: /src/xen/xen/common/kexec.c:345,1
    - Dst: xen_minor_version
      Src: /src/xen/xen/common/kexec.c:346,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:347,1
    - Dst: xen_extra_version
      Src: /src/xen/xen/common/kexec.c:347,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:348,1
    - Dst: xen_changeset
      Src: /src/xen/xen/common/kexec.c:348,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:349,1
    - Dst: xen_compiler
      Src: /src/xen/xen/common/kexec.c:349,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:350,1
    - Dst: xen_compile_date
      Src: /src/xen/xen/common/kexec.c:350,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:351,1
    - Dst: xen_compile_time
      Src: /src/xen/xen/common/kexec.c:351,1
    - Dst: memcpy
      Src: /src/xen/xen/common/kexec.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: kexec_crash_save_info
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - cpumask_test_and_set_cpu
    - __pa
    - xen_compiler
    - xen_extra_version
    - smp_processor_id
    - xen_compile_date
    - xen_changeset
    - BUG_ON
    - xen_minor_version
    - memset
    - memcpy
    - ELFNOTE_DESC
    - xen_major_version
    - xen_compile_time
    linkageType: ''
    returnType: crash_xen_info_t
    signature: crash_xen_info_t *kexec_crash_save_info(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: one_cpu_only
      Src: /src/xen/xen/common/kexec.c:364,1
    - Dst: watchdog_disable
      Src: /src/xen/xen/common/kexec.c:368,1
    - Dst: console_start_sync
      Src: /src/xen/xen/common/kexec.c:369,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/common/kexec.c:370,1
    - Dst: acpi_dmar_reinstate
      Src: /src/xen/xen/common/kexec.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: kexec_common_shutdown
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - console_start_sync
    - one_cpu_only
    - spin_debug_disable
    - watchdog_disable
    - acpi_dmar_reinstate
    linkageType: ''
    returnType: int
    signature: int kexec_common_shutdown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: keyhandler_crash_action
      Src: /src/xen/xen/common/kexec.c:380,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:382,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:383,1
    - Dst: kexec_common_shutdown
      Src: /src/xen/xen/common/kexec.c:388,1
    - Dst: kexec_crash_save_cpu
      Src: /src/xen/xen/common/kexec.c:391,1
    - Dst: machine_crash_shutdown
      Src: /src/xen/xen/common/kexec.c:392,1
    - Dst: machine_kexec
      Src: /src/xen/xen/common/kexec.c:393,1
    - Dst: BUG
      Src: /src/xen/xen/common/kexec.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - reason
    argTypes:
    - enum crash_reason
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 8
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: kexec_crash
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - keyhandler_crash_action
    - BUG
    - kexec_common_shutdown
    - kexec_crash_save_cpu
    - machine_kexec
    - machine_crash_shutdown
    - test_bit
    linkageType: ''
    returnType: void
    signature: void kexec_crash(enum crash_reason reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kexec_common_shutdown
      Src: /src/xen/xen/common/kexec.c:404,1
    - Dst: machine_reboot_kexec
      Src: /src/xen/xen/common/kexec.c:405,1
    - Dst: BUG
      Src: /src/xen/xen/common/kexec.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _image
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 409
    functionName: kexec_reboot
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - BUG
    - kexec_common_shutdown
    - machine_reboot_kexec
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check kexec_reboot(void *_image)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:413,1
    - Dst: kexec_crash
      Src: /src/xen/xen/common/kexec.c:414,1
    - Dst: printk
      Src: /src/xen/xen/common/kexec.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 416
    functionName: do_crashdump_trigger
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_crash
    - printk
    linkageType: ''
    returnType: void
    signature: void do_crashdump_trigger(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/kexec.c:420,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/kexec.c:421,1
    - Dst: ELFNOTE_NAME
      Src: /src/xen/xen/common/kexec.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - n
    - name
    - type
    - descsz
    argTypes:
    - Elf_Note*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: setup_note
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - strlen
    - ELFNOTE_NAME
    linkageType: ''
    returnType: void
    signature: void setup_note(Elf_Note *n, const char *name, int type, int descsz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELFNOTE_ALIGN
      Src: /src/xen/xen/common/kexec.c:430,1
    - Dst: strlen
      Src: /src/xen/xen/common/kexec.c:430,1
    - Dst: ELFNOTE_ALIGN
      Src: /src/xen/xen/common/kexec.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - descsz
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: sizeof_note
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - ELFNOTE_ALIGN
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t sizeof_note(const char *name, int descsz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_note
      Src: /src/xen/xen/common/kexec.c:438,1
    - Dst: sizeof_note
      Src: /src/xen/xen/common/kexec.c:439,1
    - Dst: sizeof_note
      Src: /src/xen/xen/common/kexec.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: sizeof_cpu_notes
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - sizeof_note
    linkageType: ''
    returnType: size_t
    signature: size_t sizeof_cpu_notes(const unsigned long cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: alloc_from_crash_heap
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * alloc_from_crash_heap(const size_t bytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/kexec.c:470,1
    - Dst: sizeof_cpu_notes
      Src: /src/xen/xen/common/kexec.c:476,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/common/kexec.c:480,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/kexec.c:484,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/kexec.c:490,1
    - Dst: xfree
      Src: /src/xen/xen/common/kexec.c:493,1
    - Dst: alloc_from_crash_heap
      Src: /src/xen/xen/common/kexec.c:500,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/kexec.c:504,1
    - Dst: setup_note
      Src: /src/xen/xen/common/kexec.c:514,1
    - Dst: ELFNOTE_NEXT
      Src: /src/xen/xen/common/kexec.c:515,1
    - Dst: setup_note
      Src: /src/xen/xen/common/kexec.c:518,1
    - Dst: ELFNOTE_NEXT
      Src: /src/xen/xen/common/kexec.c:524,1
    - Dst: setup_note
      Src: /src/xen/xen/common/kexec.c:525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 464
    functionDepth: 3
    functionLinenumber: 464
    functionLinenumberEnd: 532
    functionName: kexec_init_cpu_notes
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - xzalloc_bytes
    - spin_unlock
    - ELFNOTE_NEXT
    - alloc_from_crash_heap
    - setup_note
    - BUG_ON
    - spin_lock
    - sizeof_cpu_notes
    - xfree
    linkageType: ''
    returnType: int
    signature: int kexec_init_cpu_notes(const unsigned long cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kexec_init_cpu_notes
      Src: /src/xen/xen/common/kexec.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 555
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 7
    functionsReached:
    - kexec_init_cpu_notes
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fls64
      Src: /src/xen/xen/common/kexec.c:570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 3
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: kexec_early_calculations
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - fls64
    linkageType: ''
    returnType: void
    signature: void kexec_early_calculations(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/kexec.c:575,1
    - Dst: sizeof_cpu_notes
      Src: /src/xen/xen/common/kexec.c:587,1
    - Dst: sizeof_cpu_notes
      Src: /src/xen/xen/common/kexec.c:588,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/kexec.c:589,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/common/kexec.c:591,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/kexec.c:592,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/kexec.c:593,1
    - Dst: memset
      Src: /src/xen/xen/common/kexec.c:598,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/kexec.c:606,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/common/kexec.c:610,1
    - Dst: cpu_callback
      Src: /src/xen/xen/common/kexec.c:612,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/kexec.c:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 573
    functionDepth: 6
    functionLinenumber: 573
    functionLinenumberEnd: 615
    functionName: kexec_init
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - smp_processor_id
    - xzalloc_array
    - register_cpu_notifier
    - cpu_callback
    - alloc_xenheap_pages
    - PAGE_ALIGN
    - sizeof_cpu_notes
    - register_keyhandler
    - memset
    - MEMF_bits
    linkageType: ''
    returnType: int
    signature: int kexec_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: kexec_get_reserve
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kexec_get_reserve(xen_kexec_range_t *range)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: kexec_init_cpu_notes
      Src: /src/xen/xen/common/kexec.c:646,1
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 659
    functionName: kexec_get_cpu
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_init_cpu_notes
    - __pa
    linkageType: ''
    returnType: int
    signature: int kexec_get_cpu(xen_kexec_range_t *range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __pa
      Src: /src/xen/xen/common/kexec.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 666
    functionName: kexec_get_vmcoreinfo
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - __pa
    linkageType: ''
    returnType: int
    signature: int kexec_get_vmcoreinfo(xen_kexec_range_t *range)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kexec_get_reserve
      Src: /src/xen/xen/common/kexec.c:675,1
    - Dst: kexec_get_cpu
      Src: /src/xen/xen/common/kexec.c:678,1
    - Dst: kexec_get_vmcoreinfo
      Src: /src/xen/xen/common/kexec.c:681,1
    - Dst: machine_kexec_get
      Src: /src/xen/xen/common/kexec.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - range
    argTypes:
    - xen_kexec_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 668
    functionDepth: 5
    functionLinenumber: 668
    functionLinenumberEnd: 689
    functionName: kexec_get_range_internal
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_get_cpu
    - kexec_get_reserve
    - kexec_get_vmcoreinfo
    - machine_kexec_get
    linkageType: ''
    returnType: int
    signature: int kexec_get_range_internal(xen_kexec_range_t *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:696,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:696,1
    - Dst: kexec_get_range_internal
      Src: /src/xen/xen/common/kexec.c:699,1
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:701,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/kexec.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 691
    functionDepth: 6
    functionLinenumber: 691
    functionLinenumberEnd: 705
    functionName: kexec_get_range
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - __copy_to_guest
    - kexec_get_range_internal
    - unlikely
    linkageType: ''
    returnType: int
    signature: int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:714,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:714,1
    - Dst: XLAT_kexec_range
      Src: /src/xen/xen/common/kexec.c:717,1
    - Dst: kexec_get_range_internal
      Src: /src/xen/xen/common/kexec.c:719,1
    - Dst: XLAT_kexec_range
      Src: /src/xen/xen/common/kexec.c:727,1
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:728,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/kexec.c:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 707
    functionDepth: 6
    functionLinenumber: 707
    functionLinenumberEnd: 736
    functionName: kexec_get_range_compat
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - __copy_to_guest
    - unlikely
    - XLAT_kexec_range
    - kexec_get_range_internal
    linkageType: ''
    returnType: int
    signature: int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - base
    - bit
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 754
    functionName: kexec_load_get_bits
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int kexec_load_get_bits(int type, int *base, int *bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ELFNOTE_ALIGN
      Src: /src/xen/xen/common/kexec.c:761,1
    - Dst: strlen
      Src: /src/xen/xen/common/kexec.c:761,1
    - Dst: va_start
      Src: /src/xen/xen/common/kexec.c:766,1
    - Dst: vsnprintf
      Src: /src/xen/xen/common/kexec.c:767,1
    - Dst: va_end
      Src: /src/xen/xen/common/kexec.c:768,1
    - Dst: memcpy
      Src: /src/xen/xen/common/kexec.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 773
    functionName: vmcoreinfo_append_str
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - va_start
    - vsnprintf
    - strlen
    - ELFNOTE_ALIGN
    - memcpy
    - va_end
    linkageType: ''
    returnType: void
    signature: void vmcoreinfo_append_str(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ELFNOTE_ALIGN
      Src: /src/xen/xen/common/kexec.c:782,1
    - Dst: strlen
      Src: /src/xen/xen/common/kexec.c:782,1
    - Dst: setup_note
      Src: /src/xen/xen/common/kexec.c:783,1
    - Dst: VMCOREINFO_PAGESIZE
      Src: /src/xen/xen/common/kexec.c:785,1
    - Dst: VMCOREINFO_SYMBOL
      Src: /src/xen/xen/common/kexec.c:787,1
    - Dst: VMCOREINFO_SYMBOL
      Src: /src/xen/xen/common/kexec.c:789,1
    - Dst: VMCOREINFO_SYMBOL_ALIAS
      Src: /src/xen/xen/common/kexec.c:793,1
    - Dst: VMCOREINFO_SYMBOL
      Src: /src/xen/xen/common/kexec.c:796,1
    - Dst: VMCOREINFO_STRUCT_SIZE
      Src: /src/xen/xen/common/kexec.c:798,1
    - Dst: VMCOREINFO_STRUCT_SIZE
      Src: /src/xen/xen/common/kexec.c:799,1
    - Dst: VMCOREINFO_OFFSET
      Src: /src/xen/xen/common/kexec.c:801,1
    - Dst: VMCOREINFO_OFFSET_SUB
      Src: /src/xen/xen/common/kexec.c:802,1
    - Dst: VMCOREINFO_OFFSET
      Src: /src/xen/xen/common/kexec.c:803,1
    - Dst: VMCOREINFO_OFFSET
      Src: /src/xen/xen/common/kexec.c:804,1
    - Dst: arch_crash_save_vmcoreinfo
      Src: /src/xen/xen/common/kexec.c:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 809
    functionName: crash_save_vmcoreinfo
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - VMCOREINFO_SYMBOL
    - VMCOREINFO_SYMBOL_ALIAS
    - setup_note
    - VMCOREINFO_STRUCT_SIZE
    - arch_crash_save_vmcoreinfo
    - strlen
    - VMCOREINFO_OFFSET
    - VMCOREINFO_PAGESIZE
    - ELFNOTE_ALIGN
    - VMCOREINFO_OFFSET_SUB
    linkageType: ''
    returnType: void
    signature: void crash_save_vmcoreinfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: machine_kexec_unload
      Src: /src/xen/xen/common/kexec.c:816,1
    - Dst: kimage_free
      Src: /src/xen/xen/common/kexec.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 811
    functionDepth: 5
    functionLinenumber: 811
    functionLinenumberEnd: 818
    functionName: kexec_unload_image
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kimage_free
    - machine_kexec_unload
    linkageType: ''
    returnType: void
    signature: void kexec_unload_image(struct kexec_image *image)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:826,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:826,1
    - Dst: kexec_load_get_bits
      Src: /src/xen/xen/common/kexec.c:829,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:832,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:835,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/common/kexec.c:842,1
    - Dst: kexec_crash
      Src: /src/xen/xen/common/kexec.c:845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 850
    functionName: kexec_exec
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_crash
    - copy_from_guest
    - kexec_load_get_bits
    - continue_hypercall_on_cpu
    - unlikely
    - test_bit
    linkageType: ''
    returnType: int
    signature: int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:860,1
    - Dst: kexec_load_get_bits
      Src: /src/xen/xen/common/kexec.c:863,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/kexec.c:866,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:866,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:868,1
    - Dst: set_bit
      Src: /src/xen/xen/common/kexec.c:874,1
    - Dst: change_bit
      Src: /src/xen/xen/common/kexec.c:875,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/kexec.c:877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - type
    - new
    - old
    argTypes:
    - int
    - struct kexec_image*
    - struct kexec_image**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 881
    functionName: kexec_swap_images
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - change_bit
    - ASSERT
    - kexec_load_get_bits
    - clear_bit
    - test_bit
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int kexec_swap_images(int type, struct kexec_image *new,\n                             struct
      kexec_image **old)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: machine_kexec_load
      Src: /src/xen/xen/common/kexec.c:888,1
    - Dst: crash_save_vmcoreinfo
      Src: /src/xen/xen/common/kexec.c:892,1
    - Dst: kexec_swap_images
      Src: /src/xen/xen/common/kexec.c:894,1
    - Dst: kexec_unload_image
      Src: /src/xen/xen/common/kexec.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - kimage
    argTypes:
    - struct kexec_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 883
    functionDepth: 6
    functionLinenumber: 883
    functionLinenumberEnd: 901
    functionName: kexec_load_slot
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - machine_kexec_load
    - crash_save_vmcoreinfo
    - kexec_unload_image
    - kexec_swap_images
    linkageType: ''
    returnType: int
    signature: int kexec_load_slot(struct kexec_image *kimage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_32bit_domain
      Src: /src/xen/xen/common/kexec.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 910
    functionName: kexec_load_v1_arch
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - is_pv_32bit_domain
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t kexec_load_v1_arch(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/kexec.c:916,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/kexec.c:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - nr_segments
    - segments
    - mfn
    argTypes:
    - unsigned int*
    - xen_kexec_segment_t*
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 935
    functionName: kexec_segments_add_segment
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - set_xen_guest_handle
    - mfn_to_maddr
    linkageType: ''
    returnType: int
    signature: "int kexec_segments_add_segment(unsigned int *nr_segments,\n                                      xen_kexec_segment_t
      *segments,\n                                      mfn_t mfn)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/common/kexec.c:946,1
    - Dst: kimage_entry_ind
      Src: /src/xen/xen/common/kexec.c:956,1
    - Dst: kimage_entry_mfn
      Src: /src/xen/xen/common/kexec.c:957,1
    - Dst: kexec_segments_add_segment
      Src: /src/xen/xen/common/kexec.c:962,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kexec.c:967,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/kexec.c:968,1
    - Dst: kimage_entry_next
      Src: /src/xen/xen/common/kexec.c:984,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/kexec.c:987,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - mfn
    - nr_segments
    - segments
    - compat
    argTypes:
    - mfn_t
    - unsigned int*
    - xen_kexec_segment_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 989
    functionName: kexec_segments_from_ind_page
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - kimage_entry_ind
    - map_domain_page
    - kimage_entry_next
    - kimage_entry_mfn
    - kexec_segments_add_segment
    linkageType: ''
    returnType: int
    signature: "int kexec_segments_from_ind_page(mfn_t mfn,\n                                        unsigned
      int *nr_segments,\n                                        xen_kexec_segment_t
      *segments,\n                                        bool compat)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/kexec.c:997,1
    - Dst: kexec_load_v1_arch
      Src: /src/xen/xen/common/kexec.c:1000,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/kexec.c:1004,1
    - Dst: kexec_segments_from_ind_page
      Src: /src/xen/xen/common/kexec.c:1016,1
    - Dst: kimage_alloc
      Src: /src/xen/xen/common/kexec.c:1020,1
    - Dst: kimage_build_ind
      Src: /src/xen/xen/common/kexec.c:1033,1
    - Dst: MB
      Src: /src/xen/xen/common/kexec.c:1047,1
    - Dst: machine_kexec_add_page
      Src: /src/xen/xen/common/kexec.c:1049,1
    - Dst: kexec_load_slot
      Src: /src/xen/xen/common/kexec.c:1055,1
    - Dst: xfree
      Src: /src/xen/xen/common/kexec.c:1063,1
    - Dst: kimage_free
      Src: /src/xen/xen/common/kexec.c:1064,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - load
    - compat
    argTypes:
    - xen_kexec_load_v1_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 991
    functionDepth: 7
    functionLinenumber: 991
    functionLinenumberEnd: 1066
    functionName: kexec_do_load_v1
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - MB
    - kexec_load_v1_arch
    - machine_kexec_add_page
    - kimage_free
    - kexec_load_slot
    - kexec_segments_from_ind_page
    - xfree
    - maddr_to_mfn
    - kimage_build_ind
    - kimage_alloc
    linkageType: ''
    returnType: int
    signature: int kexec_do_load_v1(xen_kexec_load_v1_t *load, int compat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:1072,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1072,1
    - Dst: kexec_do_load_v1
      Src: /src/xen/xen/common/kexec.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1068
    functionDepth: 8
    functionLinenumber: 1068
    functionLinenumberEnd: 1076
    functionName: kexec_load_v1
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - kexec_do_load_v1
    - unlikely
    linkageType: ''
    returnType: int
    signature: int kexec_load_v1(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:1084,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1084,1
    - Dst: XLAT_kexec_image
      Src: /src/xen/xen/common/kexec.c:1095,1
    - Dst: kexec_do_load_v1
      Src: /src/xen/xen/common/kexec.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1078
    functionDepth: 8
    functionLinenumber: 1078
    functionLinenumberEnd: 1101
    functionName: kexec_load_v1_compat
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - kexec_do_load_v1
    - XLAT_kexec_image
    - unlikely
    linkageType: ''
    returnType: int
    signature: int kexec_load_v1_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1110,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/kexec.c:1116,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1120,1
    - Dst: kimage_alloc
      Src: /src/xen/xen/common/kexec.c:1126,1
    - Dst: kimage_load_segments
      Src: /src/xen/xen/common/kexec.c:1131,1
    - Dst: kexec_load_slot
      Src: /src/xen/xen/common/kexec.c:1135,1
    - Dst: xfree
      Src: /src/xen/xen/common/kexec.c:1143,1
    - Dst: kimage_free
      Src: /src/xen/xen/common/kexec.c:1144,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1103
    functionDepth: 7
    functionLinenumber: 1103
    functionLinenumberEnd: 1146
    functionName: kexec_load
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - copy_from_guest
    - kimage_free
    - kexec_load_slot
    - kimage_load_segments
    - xfree
    - kimage_alloc
    linkageType: ''
    returnType: int
    signature: int kexec_load(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kexec_swap_images
      Src: /src/xen/xen/common/kexec.c:1153,1
    - Dst: kexec_unload_image
      Src: /src/xen/xen/common/kexec.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unload
    argTypes:
    - xen_kexec_unload_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1148
    functionDepth: 6
    functionLinenumber: 1148
    functionLinenumberEnd: 1160
    functionName: kexec_do_unload
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_unload_image
    - kexec_swap_images
    linkageType: ''
    returnType: int
    signature: int kexec_do_unload(xen_kexec_unload_t *unload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1167,1
    - Dst: kexec_do_unload
      Src: /src/xen/xen/common/kexec.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1162
    functionDepth: 7
    functionLinenumber: 1162
    functionLinenumberEnd: 1172
    functionName: kexec_unload_v1
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_do_unload
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: int kexec_unload_v1(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1180,1
    - Dst: kexec_do_unload
      Src: /src/xen/xen/common/kexec.c:1184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1174
    functionDepth: 7
    functionLinenumber: 1174
    functionLinenumberEnd: 1188
    functionName: kexec_unload_v1_compat
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_do_unload
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: int kexec_unload_v1_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:1194,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1194,1
    - Dst: kexec_do_unload
      Src: /src/xen/xen/common/kexec.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1190
    functionDepth: 7
    functionLinenumber: 1190
    functionLinenumberEnd: 1198
    functionName: kexec_unload
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - kexec_do_unload
    - unlikely
    linkageType: ''
    returnType: int
    signature: int kexec_unload(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/kexec.c:1205,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/kexec.c:1205,1
    - Dst: kexec_load_get_bits
      Src: /src/xen/xen/common/kexec.c:1210,1
    - Dst: test_bit
      Src: /src/xen/xen/common/kexec.c:1213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1214
    functionName: kexec_status
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - test_bit
    - kexec_load_get_bits
    - unlikely
    linkageType: ''
    returnType: int
    signature: int kexec_status(XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xsm_kexec
      Src: /src/xen/xen/common/kexec.c:1222,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/kexec.c:1226,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/kexec.c:1227,1
    - Dst: kexec_get_range_compat
      Src: /src/xen/xen/common/kexec.c:1233,1
    - Dst: kexec_get_range
      Src: /src/xen/xen/common/kexec.c:1235,1
    - Dst: kexec_load_v1_compat
      Src: /src/xen/xen/common/kexec.c:1239,1
    - Dst: kexec_load_v1
      Src: /src/xen/xen/common/kexec.c:1241,1
    - Dst: kexec_unload_v1_compat
      Src: /src/xen/xen/common/kexec.c:1245,1
    - Dst: kexec_unload_v1
      Src: /src/xen/xen/common/kexec.c:1247,1
    - Dst: kexec_exec
      Src: /src/xen/xen/common/kexec.c:1250,1
    - Dst: kexec_load
      Src: /src/xen/xen/common/kexec.c:1253,1
    - Dst: kexec_unload
      Src: /src/xen/xen/common/kexec.c:1256,1
    - Dst: kexec_status
      Src: /src/xen/xen/common/kexec.c:1259,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/kexec.c:1267,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - op
    - compat
    argTypes:
    - unsigned long
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1216
    functionDepth: 9
    functionLinenumber: 1216
    functionLinenumberEnd: 1270
    functionName: do_kexec_op_internal
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - kexec_get_range_compat
    - kexec_unload_v1_compat
    - kexec_load_v1
    - kexec_unload
    - test_and_set_bit
    - kexec_load
    - kexec_exec
    - kexec_status
    - kexec_get_range
    - hypercall_create_continuation
    - xsm_kexec
    - kexec_load_v1_compat
    - kexec_unload_v1
    - clear_bit
    linkageType: ''
    returnType: int
    signature: "int do_kexec_op_internal(unsigned long op,\n                                XEN_GUEST_HANDLE_PARAM(void)
      uarg,\n                                bool compat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kexec_op_internal
      Src: /src/xen/xen/common/kexec.c:1274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1272
    functionDepth: 10
    functionLinenumber: 1272
    functionLinenumberEnd: 1275
    functionName: do_kexec_op
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - do_kexec_op_internal
    linkageType: ''
    returnType: long
    signature: long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_kexec_op_internal
      Src: /src/xen/xen/common/kexec.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 10
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    functionName: compat_kexec_op
    functionSourceFile: /src/xen/xen/common/kexec.c
    functionUses: 0
    functionsReached:
    - do_kexec_op_internal
    linkageType: ''
    returnType: int
    signature: int compat_kexec_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(void) uarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - elf
    - msg
    argTypes:
    - struct elf_binary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: elf_mark_broken
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elf_mark_broken(struct elf_binary *elf, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: elf_check_broken
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *elf_check_broken(const struct elf_binary *elf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 4
    argNames:
    - ptrval
    - size
    - region
    - regionsize
    argTypes:
    - elf_ptrval
    - uint64_t
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: elf_ptrval_in_range
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool elf_ptrval_in_range(elf_ptrval ptrval, uint64_t size,\n                               const
      void *region, uint64_t regionsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: elf_ptrval_in_range
      Src: /src/xen/xen/common/libelf/libelf-tools.c:58,1
    - Dst: elf_ptrval_in_range
      Src: /src/xen/xen/common/libelf/libelf-tools.c:60,1
    - Dst: elf_ptrval_in_range
      Src: /src/xen/xen/common/libelf/libelf-tools.c:62,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-tools.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - elf
    - ptrval
    - size
    argTypes:
    - struct elf_binary*
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: elf_access_ok
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_ptrval_in_range
    - elf_mark_broken
    linkageType: ''
    returnType: bool
    signature: "bool elf_access_ok(struct elf_binary * elf,\n                  uint64_t
      ptrval, size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:71,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:72,1
    - Dst: elf_memmove_unchecked
      Src: /src/xen/xen/common/libelf/libelf-tools.c:77,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-tools.c:77,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-tools.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - elf
    - dst
    - src
    - size
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    - elf_ptrval
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: elf_memcpy_safe
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_access_ok
    - elf_memmove_unchecked
    - ELF_UNSAFE_PTR
    linkageType: ''
    returnType: void
    signature: "void elf_memcpy_safe(struct elf_binary *elf, elf_ptrval dst,\n                     elf_ptrval
      src, size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:83,1
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-tools.c:85,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-tools.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - elf
    - dst
    - c
    - size
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: elf_memset_safe
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - ELF_UNSAFE_PTR
    - elf_access_ok
    - elf_memset_unchecked
    linkageType: ''
    returnType: void
    signature: void elf_memset_safe(struct elf_binary *elf, elf_ptrval dst, int c,
      size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: elf_swap
      Src: /src/xen/xen/common/libelf/libelf-tools.c:93,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:99,1
    - Dst: bswap_16
      Src: /src/xen/xen/common/libelf/libelf-tools.c:109,1
    - Dst: bswap_32
      Src: /src/xen/xen/common/libelf/libelf-tools.c:112,1
    - Dst: bswap_64
      Src: /src/xen/xen/common/libelf/libelf-tools.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - elf
    - base
    - moreoffset
    - size
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 119
    functionName: elf_access_unsigned
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - bswap_64
    - bswap_32
    - elf_access_ok
    - elf_swap
    - bswap_16
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t elf_access_unsigned(struct elf_binary * elf, elf_ptrval base,\n
      \                            uint64_t moreoffset, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_64bit
      Src: /src/xen/xen/common/libelf/libelf-tools.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - addr
    argTypes:
    - struct elf_binary*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: elf_round_up
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_64bit
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t elf_round_up(struct elf_binary *elf, uint64_t addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:132,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-tools.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: elf_shdr_count
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_uval
    - elf_mark_broken
    linkageType: ''
    returnType: unsigned
    signature: unsigned elf_shdr_count(struct elf_binary *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: elf_phdr_count
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_uval
    linkageType: ''
    returnType: unsigned
    signature: unsigned elf_phdr_count(struct elf_binary *elf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: elf_shdr_count
      Src: /src/xen/xen/common/libelf/libelf-tools.c:152,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:153,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-tools.c:158,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:159,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:159,1
    - Dst: elf_section_name
      Src: /src/xen/xen/common/libelf/libelf-tools.c:162,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-tools.c:163,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - elf
    - name
    argTypes:
    - struct elf_binary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: elf_shdr_by_name
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_shdr_count
    - elf_access_ok
    - ELF_HANDLE_DECL
    - ELF_INVALID_HANDLE
    - ELF_HANDLE_PTRVAL
    - strcmp
    - elf_section_name
    - elf_shdr_by_index
    linkageType: ''
    returnType: void
    signature: void elf_shdr_by_name(struct elf_binary *elf, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_shdr_count
      Src: /src/xen/xen/common/libelf/libelf-tools.c:171,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:175,1
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:177,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:178,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:179,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - elf
    - index
    argTypes:
    - struct elf_binary*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 181
    functionName: elf_shdr_by_index
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 2
    functionsReached:
    - elf_shdr_count
    - ELF_IMAGE_BASE
    - ELF_INVALID_HANDLE
    - ELF_MAKE_HANDLE
    - elf_uval
    linkageType: ''
    returnType: void
    signature: void elf_shdr_by_index(struct elf_binary *elf, unsigned index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_phdr_count
      Src: /src/xen/xen/common/libelf/libelf-tools.c:185,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:189,1
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:191,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:192,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:193,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - elf
    - index
    argTypes:
    - struct elf_binary*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: elf_phdr_by_index
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_IMAGE_BASE
    - ELF_INVALID_HANDLE
    - elf_phdr_count
    - ELF_MAKE_HANDLE
    - elf_uval
    linkageType: ''
    returnType: void
    signature: void elf_phdr_by_index(struct elf_binary *elf, unsigned index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ELF_PTRVAL_INVALID
      Src: /src/xen/xen/common/libelf/libelf-tools.c:201,1
    - Dst: elf_strval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:204,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: elf_section_name
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_PTRVAL_INVALID
    - elf_uval
    - elf_strval
    linkageType: ''
    returnType: char
    signature: "char *elf_section_name(struct elf_binary *elf,\n                             ELF_HANDLE_DECL(elf_shdr)
      shdr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:212,1
    - Dst: elf_access_unsigned
      Src: /src/xen/xen/common/libelf/libelf-tools.c:214,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-tools.c:216,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-tools.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - elf
    - start
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: elf_strval
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_mark_broken
    - elf_access_unsigned
    - elf_access_ok
    - ELF_UNSAFE_PTR
    linkageType: ''
    returnType: char
    signature: char *elf_strval(struct elf_binary *elf, elf_ptrval start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_strval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - elf
    - start
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: elf_strfmt
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 2
    functionsReached:
    - elf_strval
    linkageType: ''
    returnType: char
    signature: char *elf_strfmt(struct elf_binary *elf, elf_ptrval start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:236,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: elf_section_start
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_IMAGE_BASE
    - elf_uval
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_section_start(struct elf_binary *elf, ELF_HANDLE_DECL(elf_shdr)
      shdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:241,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:242,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: elf_section_end
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_IMAGE_BASE
    - elf_uval
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_section_end(struct elf_binary *elf, ELF_HANDLE_DECL(elf_shdr)
      shdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:247,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: elf_segment_start
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_IMAGE_BASE
    - elf_uval
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_segment_start(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr)
      phdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:253,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:254,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: elf_segment_end
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_IMAGE_BASE
    - elf_uval
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_segment_end(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr)
      phdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-tools.c:259,1
    - Dst: elf_section_end
      Src: /src/xen/xen/common/libelf/libelf-tools.c:260,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:261,1
    - Dst: elf_size
      Src: /src/xen/xen/common/libelf/libelf-tools.c:265,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:267,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:268,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:269,1
    - Dst: ELF32_ST_BIND
      Src: /src/xen/xen/common/libelf/libelf-tools.c:270,1
    - Dst: elf_strval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:272,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:274,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-tools.c:275,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - elf
    - symbol
    argTypes:
    - struct elf_binary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 280
    functionName: elf_sym_by_name
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_size
    - elf_section_start
    - ELF_HANDLE_DECL
    - elf_section_end
    - elf_strval
    - ELF_INVALID_HANDLE
    - ELF_MAKE_HANDLE
    - strcmp
    - elf_uval
    - ELF32_ST_BIND
    linkageType: ''
    returnType: void
    signature: void elf_sym_by_name(struct elf_binary *elf, const char *symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-tools.c:284,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:285,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:287,1
    - Dst: elf_size
      Src: /src/xen/xen/common/libelf/libelf-tools.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - elf
    - index
    argTypes:
    - struct elf_binary*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: elf_sym_by_index
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - ELF_MAKE_HANDLE
    - elf_size
    - elf_section_start
    - ELF_HANDLE_DECL
    linkageType: ''
    returnType: void
    signature: void elf_sym_by_index(struct elf_binary *elf, unsigned index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_strval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:293,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:293,1
    - Dst: elf_size
      Src: /src/xen/xen/common/libelf/libelf-tools.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: elf_note_name
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - ELF_HANDLE_PTRVAL
    - elf_size
    - elf_strval
    linkageType: ''
    returnType: char
    signature: char *elf_note_name(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      note)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:298,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:300,1
    - Dst: elf_size
      Src: /src/xen/xen/common/libelf/libelf-tools.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: elf_note_desc
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 2
    functionsReached:
    - elf_size
    - ELF_HANDLE_PTRVAL
    - elf_uval
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_note_desc(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      note)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: elf_note_desc
      Src: /src/xen/xen/common/libelf/libelf-tools.c:305,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:306,1
    - Dst: elf_access_unsigned
      Src: /src/xen/xen/common/libelf/libelf-tools.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 318
    functionName: elf_note_numeric
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_access_unsigned
    - elf_uval
    - elf_note_desc
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t elf_note_numeric(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      note)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: elf_note_desc
      Src: /src/xen/xen/common/libelf/libelf-tools.c:323,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:324,1
    - Dst: elf_access_unsigned
      Src: /src/xen/xen/common/libelf/libelf-tools.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - elf
    - unitsz
    - idx
    argTypes:
    - struct elf_binary*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 3
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: elf_note_numeric_array
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_access_unsigned
    - elf_uval
    - elf_note_desc
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t elf_note_numeric_array(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      note,\n                                unsigned int unitsz, unsigned int idx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:342,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:343,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:345,1
    - Dst: elf_size
      Src: /src/xen/xen/common/libelf/libelf-tools.c:346,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:348,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-tools.c:349,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:349,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-tools.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: elf_note_next
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 1
    functionsReached:
    - elf_size
    - elf_access_ok
    - ELF_HANDLE_PTRVAL
    - ELF_MAKE_HANDLE
    - elf_uval
    linkageType: ''
    returnType: void
    signature: void elf_note_next(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note)
      note)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ELF
      Src: /src/xen/xen/common/libelf/libelf-tools.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - image_start
    - image_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: elf_is_elfbinary
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 4
    functionsReached:
    - IS_ELF
    linkageType: ''
    returnType: bool
    signature: bool elf_is_elfbinary(const void *image_start, size_t image_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:369,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-tools.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: elf_phdr_is_loadable
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_uval
    linkageType: ''
    returnType: bool
    signature: bool elf_phdr_is_loadable(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr)
      phdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_memset_safe
      Src: /src/xen/xen/common/libelf/libelf-tools.c:380,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-tools.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - elf
    - addr
    - size
    argTypes:
    - struct elf_binary*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: elf_set_xdest
    functionSourceFile: /src/xen/xen/common/libelf/libelf-tools.c
    functionUses: 0
    functionsReached:
    - elf_memset_safe
    - ELF_REALPTR2PTRVAL
    linkageType: ''
    returnType: void
    signature: void elf_set_xdest(struct elf_binary *elf, void *addr, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - elf
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: elf_msg
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_msg(elf, fmt, args ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - elf
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: elf_err
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_err(elf, fmt, args ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - end
    - ','
    - base
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: strtoull
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strtoull(str, end, base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: bswap_16
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: bswap_32
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: bswap_64
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: bswap_16
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: bswap_32
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: bswap_64
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: bswap_16
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: bswap_32
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: bswap_64
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: bswap_16
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: bswap_32
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: bswap_64
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: bswap_16
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: bswap_32
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: bswap_64
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bswap_64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - elf
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: elf_msg
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_msg(elf, fmt, args ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - elf
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: elf_err
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_err(elf, fmt, args ... )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: safe_strcpy
    functionSourceFile: /src/xen/xen/common/libelf/libelf-private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_strcpy(d,s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:38,1
    - Dst: elf_is_elfbinary
      Src: /src/xen/xen/common/libelf/libelf-loader.c:42,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-loader.c:44,1
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-loader.c:48,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:51,1
    - Dst: elf_uval_3264
      Src: /src/xen/xen/common/libelf/libelf-loader.c:52,1
    - Dst: elf_uval_3264
      Src: /src/xen/xen/common/libelf/libelf-loader.c:53,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:56,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:57,1
    - Dst: elf_phdr_count
      Src: /src/xen/xen/common/libelf/libelf-loader.c:57,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-loader.c:60,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:66,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:67,1
    - Dst: elf_shdr_count
      Src: /src/xen/xen/common/libelf/libelf-loader.c:67,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-loader.c:70,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:76,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:77,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/xen/common/libelf/libelf-loader.c:78,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-loader.c:79,1
    - Dst: elf_shdr_count
      Src: /src/xen/xen/common/libelf/libelf-loader.c:82,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:85,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-loader.c:86,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:86,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:89,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:92,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:98,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/xen/common/libelf/libelf-loader.c:99,1
    - Dst: ELF_INVALID_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:101,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-loader.c:104,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - elf
    - image_input
    - size
    argTypes:
    - struct elf_binary*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 109
    functionName: elf_init
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 8
    functionsReached:
    - elf_shdr_count
    - ELF_HANDLE_VALID
    - elf_err
    - elf_section_start
    - elf_access_ok
    - elf_memset_unchecked
    - ELF_HANDLE_DECL
    - ELF_INVALID_HANDLE
    - ELF_HANDLE_PTRVAL
    - elf_phdr_count
    - ELF_MAKE_HANDLE
    - elf_is_elfbinary
    - elf_uval
    - elf_shdr_by_index
    - elf_uval_3264
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus elf_init(struct elf_binary *elf, const char *image_input,
      size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/common/libelf/libelf-loader.c:121,1
    - Dst: struct elf_binary*::log_callback
      Src: /src/xen/xen/common/libelf/libelf-loader.c:122,1
    - Dst: va_end
      Src: /src/xen/xen/common/libelf/libelf-loader.c:123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - elf
    - iserr
    - fmt
    argTypes:
    - struct elf_binary*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: elf_call_log_callback
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - va_start
    - struct elf_binary*::log_callback
    - va_end
    linkageType: ''
    returnType: void
    signature: "void elf_call_log_callback(struct elf_binary *elf, bool iserr,\n                           const
      char *fmt,...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - elf
    - log_callback
    - log_caller_data
    - verbose
    argTypes:
    - struct elf_binary*
    - elf_log_callback*
    - void*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: elf_set_log
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void elf_set_log(struct elf_binary *elf, elf_log_callback *log_callback,\n
      \                void *log_caller_data, bool verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elf_memcpy_safe
      Src: /src/xen/xen/common/libelf/libelf-loader.c:138,1
    - Dst: elf_memset_safe
      Src: /src/xen/xen/common/libelf/libelf-loader.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - elf
    - dst
    - src
    - filesz
    - memsz
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    - elf_ptrval
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: elf_load_image
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - elf_memcpy_safe
    - elf_memset_safe
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_load_image(struct elf_binary *elf,\n                          elf_ptrval
      dst, elf_ptrval src,\n                          uint64_t filesz, uint64_t memsz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: elf_set_verbose
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void elf_set_verbose(struct elf_binary *elf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/common/libelf/libelf-loader.c:155,1
    - Dst: hvm_copy_to_guest_phys
      Src: /src/xen/xen/common/libelf/libelf-loader.c:159,1
    - Dst: raw_copy_to_guest
      Src: /src/xen/xen/common/libelf/libelf-loader.c:164,1
    - Dst: raw_clear_guest
      Src: /src/xen/xen/common/libelf/libelf-loader.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - v
    - dst
    - src
    - size
    argTypes:
    - struct vcpu*
    - void*
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 168
    functionName: elf_memcpy
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - is_hvm_vcpu
    - raw_clear_guest
    - raw_copy_to_guest
    - hvm_copy_to_guest_phys
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_memcpy(struct vcpu *v, void *dst, void *src,\n
      \                                 uint64_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: elf_memcpy
      Src: /src/xen/xen/common/libelf/libelf-loader.c:177,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-loader.c:177,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-loader.c:177,1
    - Dst: elf_memcpy
      Src: /src/xen/xen/common/libelf/libelf-loader.c:181,1
    - Dst: ELF_UNSAFE_PTR
      Src: /src/xen/xen/common/libelf/libelf-loader.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - elf
    - dst
    - src
    - filesz
    - memsz
    argTypes:
    - struct elf_binary*
    - elf_ptrval
    - elf_ptrval
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 6
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: elf_load_image
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - elf_memcpy
    - ELF_UNSAFE_PTR
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus elf_load_image(struct elf_binary *elf, elf_ptrval dst,
      elf_ptrval src, uint64_t filesz, uint64_t memsz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:193,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/xen/common/libelf/libelf-loader.c:195,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:197,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:201,1
    - Dst: elf_64bit
      Src: /src/xen/xen/common/libelf/libelf-loader.c:208,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:210,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:218,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:218,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:220,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:220,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-loader.c:222,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:222,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:226,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:230,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - elf
    - pstart
    argTypes:
    - struct elf_binary*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 234
    functionName: elf_parse_bsdsyms
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - ELF_HANDLE_VALID
    - elf_64bit
    - elf_access_ok
    - ELF_HANDLE_DECL
    - ELF_HANDLE_PTRVAL
    - elf_round_up
    - elf_uval
    - elf_shdr_by_index
    - elf_mark_broken
    linkageType: ''
    returnType: void
    signature: void elf_parse_bsdsyms(struct elf_binary *elf, uint64_t pstart)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:287,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:289,1
    - Dst: elf_set_xdest
      Src: /src/xen/xen/common/libelf/libelf-loader.c:311,1
    - Dst: elf_get_ptr
      Src: /src/xen/xen/common/libelf/libelf-loader.c:320,1
    - Dst: elf_get_ptr
      Src: /src/xen/xen/common/libelf/libelf-loader.c:321,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:323,1
    - Dst: elf_64bit
      Src: /src/xen/xen/common/libelf/libelf-loader.c:329,1
    - Dst: elf_64bit
      Src: /src/xen/xen/common/libelf/libelf-loader.c:331,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:335,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:336,1
    - Dst: elf_memcpy_safe
      Src: /src/xen/xen/common/libelf/libelf-loader.c:337,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:337,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:338,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:344,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:345,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:346,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:349,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:353,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:356,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:357,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:358,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:359,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:368,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:369,1
    - Dst: elf_memcpy_safe
      Src: /src/xen/xen/common/libelf/libelf-loader.c:371,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:371,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:372,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:376,1
    - Dst: elf_load_image
      Src: /src/xen/xen/common/libelf/libelf-loader.c:379,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-loader.c:380,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:381,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:382,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:385,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:390,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:392,1
    - Dst: elf_round_up
      Src: /src/xen/xen/common/libelf/libelf-loader.c:396,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:397,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:400,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:401,1
    - Dst: elf_memcpy_safe
      Src: /src/xen/xen/common/libelf/libelf-loader.c:402,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:402,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:403,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:403,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:406,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:408,1
    - Dst: elf_load_image
      Src: /src/xen/xen/common/libelf/libelf-loader.c:413,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-loader.c:414,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:415,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:416,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:419,1
    - Dst: elf_store_field_bitness
      Src: /src/xen/xen/common/libelf/libelf-loader.c:423,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:427,1
    - Dst: elf_load_image
      Src: /src/xen/xen/common/libelf/libelf-loader.c:432,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:432,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:436,1
    - Dst: elf_load_image
      Src: /src/xen/xen/common/libelf/libelf-loader.c:448,1
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:449,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:453,1
    - Dst: elf_set_xdest
      Src: /src/xen/xen/common/libelf/libelf-loader.c:460,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 62
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 465
    functionName: elf_load_bsdsyms
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - elf_load_image
    - elf_64bit
    - ELF_REALPTR2PTRVAL
    - elf_shdr_by_index
    - elf_memcpy_safe
    - elf_section_start
    - ELF_HANDLE_DECL
    - elf_mark_broken
    - ELF_HANDLE_PTRVAL
    - elf_round_up
    - ELF_MAKE_HANDLE
    - elf_uval
    - elf_set_xdest
    - elf_store_field_bitness
    - elf_get_ptr
    linkageType: ''
    returnType: void
    signature: void elf_load_bsdsyms(struct elf_binary *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - _elf
    - ','
    - _hdr
    - ','
    - _elm
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: elf_store_field_bitness
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: elf_store_field_bitness(_elf, _hdr, _elm, _val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:469,1
    - Dst: elf_phdr_count
      Src: /src/xen/xen/common/libelf/libelf-loader.c:474,1
    - Dst: elf_phdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:477,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-loader.c:478,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:478,1
    - Dst: elf_phdr_is_loadable
      Src: /src/xen/xen/common/libelf/libelf-loader.c:481,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:483,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:484,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:485,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-loader.c:486,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-loader.c:498,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 500
    functionName: elf_parse_binary
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 7
    functionsReached:
    - elf_phdr_by_index
    - elf_access_ok
    - ELF_HANDLE_DECL
    - elf_msg
    - ELF_HANDLE_PTRVAL
    - elf_phdr_count
    - elf_uval
    - elf_phdr_is_loadable
    linkageType: ''
    returnType: void
    signature: void elf_parse_binary(struct elf_binary *elf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:504,1
    - Dst: elf_phdr_count
      Src: /src/xen/xen/common/libelf/libelf-loader.c:515,1
    - Dst: elf_phdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-loader.c:518,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-loader.c:519,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:519,1
    - Dst: elf_phdr_is_loadable
      Src: /src/xen/xen/common/libelf/libelf-loader.c:522,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:524,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:525,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:526,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:527,1
    - Dst: elf_get_ptr
      Src: /src/xen/xen/common/libelf/libelf-loader.c:528,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-loader.c:537,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-loader.c:543,1
    - Dst: elf_load_image
      Src: /src/xen/xen/common/libelf/libelf-loader.c:546,1
    - Dst: ELF_IMAGE_BASE
      Src: /src/xen/xen/common/libelf/libelf-loader.c:546,1
    - Dst: elf_load_bsdsyms
      Src: /src/xen/xen/common/libelf/libelf-loader.c:550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - elf
    argTypes:
    - struct elf_binary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 502
    functionDepth: 5
    functionLinenumber: 502
    functionLinenumberEnd: 552
    functionName: elf_load_binary
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 4
    functionsReached:
    - elf_phdr_by_index
    - elf_load_image
    - elf_load_bsdsyms
    - ELF_IMAGE_BASE
    - elf_access_ok
    - ELF_HANDLE_DECL
    - elf_msg
    - elf_mark_broken
    - ELF_HANDLE_PTRVAL
    - elf_phdr_count
    - elf_uval
    - elf_phdr_is_loadable
    - elf_get_ptr
    linkageType: ''
    returnType: elf_errorstatus
    signature: elf_errorstatus elf_load_binary(struct elf_binary *elf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ELF_REALPTR2PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - elf
    - addr
    argTypes:
    - struct elf_binary*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: elf_get_ptr
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 2
    functionsReached:
    - ELF_REALPTR2PTRVAL
    linkageType: ''
    returnType: elf_ptrval
    signature: elf_ptrval elf_get_ptr(struct elf_binary *elf, unsigned long addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-loader.c:561,1
    - Dst: elf_sym_by_name
      Src: /src/xen/xen/common/libelf/libelf-loader.c:564,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/xen/common/libelf/libelf-loader.c:565,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-loader.c:567,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-loader.c:571,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-loader.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - elf
    - symbol
    argTypes:
    - struct elf_binary*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 575
    functionName: elf_lookup_addr
    functionSourceFile: /src/xen/xen/common/libelf/libelf-loader.c
    functionUses: 0
    functionsReached:
    - ELF_HANDLE_VALID
    - elf_sym_by_name
    - elf_err
    - ELF_HANDLE_DECL
    - elf_msg
    - elf_uval
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t elf_lookup_addr(struct elf_binary * elf, const char *symbol)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:55,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:77,1
    - Dst: elf_xen_feature_set
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:79,1
    - Dst: elf_xen_feature_set
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:81,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:88,1
    - Dst: elf_xen_feature_set
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:90,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 37
    argCount: 3
    argNames:
    - features
    - supported
    - required
    argTypes:
    - char*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 100
    functionName: elf_xen_parse_features
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 1
    functionsReached:
    - elf_xen_feature_set
    - strcmp
    - elf_memset_unchecked
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_parse_features(const char *features,\n                           uint32_t
      *supported,\n                           uint32_t *required)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:143,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:144,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:149,1
    - Dst: elf_strval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:156,1
    - Dst: elf_note_desc
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:156,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:160,1
    - Dst: elf_note_numeric
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:166,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:167,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:174,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:182,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:185,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:188,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:191,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:194,1
    - Dst: strstr
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:196,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:200,1
    - Dst: elf_xen_parse_features
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:227,1
    - Dst: elf_note_numeric_array
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:234,1
    - Dst: elf_note_numeric_array
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:247,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:248,1
    - Dst: elf_note_numeric_array
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:252,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:253,1
    - Dst: elf_note_numeric_array
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:257,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:258,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:265,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 99
    argCount: 2
    argNames:
    - elf
    - parms
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 268
    functionName: elf_xen_parse_note
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 0
    functionsReached:
    - elf_note_numeric
    - safe_strcpy
    - elf_note_desc
    - elf_msg
    - elf_strval
    - strstr
    - strcmp
    - elf_uval
    - elf_note_numeric_array
    - elf_xen_parse_features
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_parse_note(struct elf_binary *elf,\n                       struct
      elf_dom_parms *parms,\n                       ELF_HANDLE_DECL(elf_note) note)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:279,1
    - Dst: ELF_MAKE_HANDLE
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:284,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:285,1
    - Dst: elf_note_next
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:286,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:289,1
    - Dst: elf_mark_broken
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:294,1
    - Dst: elf_note_name
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:298,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:301,1
    - Dst: elf_xen_parse_note
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - elf
    - parms
    - start
    - end
    - total_note_count
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    - elf_ptrval
    - elf_ptrval
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 308
    functionName: elf_xen_parse_notes
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 0
    functionsReached:
    - elf_note_name
    - ELF_HANDLE_DECL
    - ELF_HANDLE_PTRVAL
    - process_pending_softirqs
    - elf_note_next
    - ELF_MAKE_HANDLE
    - strcmp
    - elf_xen_parse_note
    - elf_mark_broken
    linkageType: ''
    returnType: unsigned
    signature: "unsigned elf_xen_parse_notes(struct elf_binary *elf,\n                               struct
      elf_dom_parms *parms,\n                               elf_ptrval start,\n                               elf_ptrval
      end,\n                               unsigned *total_note_count)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:323,1
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:325,1
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:326,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:331,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:333,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:338,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:345,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:347,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:352,1
    - Dst: STAR
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:356,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:358,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:361,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:362,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:363,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:364,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:365,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:366,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:367,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:368,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:369,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:371,1
    - Dst: strncmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:373,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:376,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:380,1
    - Dst: strtoull
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:381,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:382,1
    - Dst: strtoull
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:383,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:384,1
    - Dst: strtoull
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:385,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:386,1
    - Dst: strtoull
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:387,1
    - Dst: strcmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:390,1
    - Dst: elf_xen_parse_features
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:391,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 65
    argCount: 2
    argNames:
    - elf
    - parms
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 404
    functionName: elf_xen_parse_guest_info
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 0
    functionsReached:
    - STAR
    - safe_strcpy
    - elf_memset_unchecked
    - elf_msg
    - strncmp
    - strcmp
    - strtoull
    - elf_xen_parse_features
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_parse_guest_info(struct elf_binary *elf,\n
      \                            struct elf_dom_parms *parms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: STAR
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAR(h)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ELF_PTRVAL_INVALID
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:412,1
    - Dst: ELF_PTRVAL_INVALID
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:413,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:415,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:418,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:425,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:427,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:434,1
    - Dst: strlen
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:439,1
    - Dst: strncmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:440,1
    - Dst: strlen
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:441,1
    - Dst: strncmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:442,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:444,1
    - Dst: strlen
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:452,1
    - Dst: strncmp
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:453,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:455,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - elf
    - parms
    - hvm
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 461
    functionName: elf_xen_note_check
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 0
    functionsReached:
    - elf_err
    - elf_msg
    - strncmp
    - strlen
    - ELF_PTRVAL_INVALID
    - elf_uval
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_note_check(struct elf_binary *elf,\n                              struct
      elf_dom_parms *parms, bool hvm)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:472,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:484,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:505,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:518,1
    - Dst: elf_parse_bsdsyms
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:523,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:528,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:529,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:530,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:531,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:532,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:533,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:534,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:535,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:542,1
    - Dst: elf_err
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:550,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 47
    argCount: 3
    argNames:
    - elf
    - parms
    - hvm
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 555
    functionName: elf_xen_addr_calc_check
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 0
    functionsReached:
    - elf_err
    - elf_msg
    - elf_uval
    - elf_parse_bsdsyms
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_addr_calc_check(struct elf_binary *elf,\n
      \                                  struct elf_dom_parms *parms, bool hvm)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:563,1
    - Dst: ELF_HANDLE_DECL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:564,1
    - Dst: elf_memset_unchecked
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:569,1
    - Dst: elf_phdr_count
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:583,1
    - Dst: elf_phdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:586,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:587,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:587,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:590,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:597,1
    - Dst: elf_xen_parse_notes
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:600,1
    - Dst: elf_segment_start
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:601,1
    - Dst: elf_segment_end
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:602,1
    - Dst: elf_shdr_count
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:616,1
    - Dst: elf_shdr_by_index
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:619,1
    - Dst: elf_access_ok
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:620,1
    - Dst: ELF_HANDLE_PTRVAL
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:620,1
    - Dst: elf_uval
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:624,1
    - Dst: elf_xen_parse_notes
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:627,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:628,1
    - Dst: elf_section_end
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:629,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:636,1
    - Dst: elf_shdr_by_name
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:646,1
    - Dst: ELF_HANDLE_VALID
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:647,1
    - Dst: elf_section_start
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:649,1
    - Dst: elf_msg
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:652,1
    - Dst: elf_strfmt
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:653,1
    - Dst: elf_xen_parse_guest_info
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:654,1
    - Dst: elf_xen_note_check
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:658,1
    - Dst: elf_xen_addr_calc_check
      Src: /src/xen/xen/common/libelf/libelf-dominfo.c:660,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 3
    argNames:
    - elf
    - parms
    - hvm
    argTypes:
    - struct elf_binary*
    - struct elf_dom_parms*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 560
    functionDepth: 6
    functionLinenumber: 560
    functionLinenumberEnd: 663
    functionName: elf_xen_parse
    functionSourceFile: /src/xen/xen/common/libelf/libelf-dominfo.c
    functionUses: 6
    functionsReached:
    - elf_shdr_by_name
    - elf_phdr_by_index
    - ELF_HANDLE_PTRVAL
    - elf_phdr_count
    - elf_uval
    - elf_shdr_by_index
    - elf_shdr_count
    - elf_xen_parse_notes
    - elf_segment_end
    - ELF_HANDLE_VALID
    - elf_xen_note_check
    - elf_xen_parse_guest_info
    - elf_section_start
    - elf_section_end
    - elf_msg
    - elf_access_ok
    - elf_segment_start
    - elf_memset_unchecked
    - ELF_HANDLE_DECL
    - elf_xen_addr_calc_check
    - elf_strfmt
    linkageType: ''
    returnType: elf_errorstatus
    signature: "elf_errorstatus elf_xen_parse(struct elf_binary *elf,\n                  struct
      elf_dom_parms *parms, bool hvm)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:17,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:23,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - fdt
    - offset
    - s
    - len
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 32
    functionName: fdt_nodename_eq_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memchr
    - fdt_get_name
    linkageType: ''
    returnType: int
    signature: "int fdt_nodename_eq_(const void *fdt, int offset,\n\t\t\t    const
      char *s, int len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:42,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:43,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:46,1
    - Dst: fdt_ro_probe_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:49,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:55,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:60,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:63,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:63,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:64,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:66,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:67,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:69,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:73,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:83,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - fdt
    - stroffset
    - lenp
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 98
    functionName: fdt_get_string
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_magic
    - fdt_off_dt_strings
    - fdt_ro_probe_
    - memchr
    - strlen
    - fdt_size_dt_strings
    - fdt_version
    linkageType: ''
    returnType: char
    signature: char *fdt_get_string(const void *fdt, int stroffset, int *lenp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_string
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - stroffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: fdt_string
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_get_string
    linkageType: ''
    returnType: char
    signature: char *fdt_string(const void *fdt, int stroffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_string
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:109,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - stroffset
    - s
    - len
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: fdt_string_eq_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_string
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int fdt_string_eq_(const void *fdt, int stroffset,\n\t\t\t  const
      char *s, int len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:122,1
    - Dst: fdt_get_phandle
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - fdt
    - phandle
    argTypes:
    - void*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: fdt_find_max_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_get_phandle
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_find_max_phandle(const void *fdt, uint32_t *phandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_find_max_phandle
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fdt
    - phandle
    argTypes:
    - void*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: fdt_generate_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_find_max_phandle
    linkageType: ''
    returnType: int
    signature: int fdt_generate_phandle(const void *fdt, uint32_t *phandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:163,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:165,1
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:166,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:168,1
    - Dst: fdt_mem_rsv_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fdt
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: fdt_mem_rsv
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_totalsize
    - fdt_mem_rsv_
    - can_assume
    - fdt_off_mem_rsvmap
    linkageType: ''
    returnType: struct fdt_reserve_entry
    signature: struct fdt_reserve_entry *fdt_mem_rsv(const void *fdt, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:179,1
    - Dst: fdt_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:180,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:181,1
    - Dst: fdt64_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:184,1
    - Dst: fdt64_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - fdt
    - n
    - address
    - size
    argTypes:
    - void*
    - int
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: fdt_get_mem_rsv
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt64_ld_
    - fdt_mem_rsv
    - FDT_RO_PROBE
    - can_assume
    linkageType: ''
    returnType: int
    signature: int fdt_get_mem_rsv(const void *fdt, int n, uint64_t *address, uint64_t
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:194,1
    - Dst: fdt64_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: fdt_num_mem_rsv
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_mem_rsv
    - fdt64_ld_
    linkageType: ''
    returnType: int
    signature: int fdt_num_mem_rsv(const void *fdt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 223
    functionName: nextprop_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_next_tag
    linkageType: ''
    returnType: int
    signature: int nextprop_(const void *fdt, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:230,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:234,1
    - Dst: fdt_nodename_eq_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - fdt
    - offset
    - name
    - namelen
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: fdt_subnode_offset_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - FDT_RO_PROBE
    - fdt_nodename_eq_
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: "int fdt_subnode_offset_namelen(const void *fdt, int offset,\n\t\t\t
      \      const char *name, int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_subnode_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:247,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - parentoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: fdt_subnode_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 4
    functionsReached:
    - fdt_subnode_offset_namelen
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fdt_subnode_offset(const void *fdt, int parentoffset,\n\t\t       const
      char *name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:256,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:260,1
    - Dst: fdt_get_alias_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:265,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:268,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:281,1
    - Dst: fdt_subnode_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:285,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - fdt
    - path
    - namelen
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 293
    functionName: fdt_path_offset_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_alias_namelen
    - FDT_RO_PROBE
    - memchr
    - fdt_path_offset
    - fdt_subnode_offset_namelen
    linkageType: ''
    returnType: int
    signature: int fdt_path_offset_namelen(const void *fdt, const char *path, int
      namelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:297,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - path
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 4
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: fdt_path_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 6
    functionsReached:
    - fdt_path_offset_namelen
    - strlen
    linkageType: ''
    returnType: int
    signature: int fdt_path_offset(const void *fdt, const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_offset_ptr_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:302,1
    - Dst: fdt_ro_probe_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:306,1
    - Dst: fdt_check_node_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:307,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:312,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:312,1
    - Dst: strrchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:319,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - len
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 336
    functionName: fdt_get_name
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 3
    functionsReached:
    - fdt_offset_ptr_
    - can_assume
    - fdt_ro_probe_
    - strlen
    - strrchr
    - fdt_version
    - fdt_check_node_offset_
    linkageType: ''
    returnType: char
    signature: char *fdt_get_name(const void *fdt, int nodeoffset, int *len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_node_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:342,1
    - Dst: nextprop_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: fdt_first_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - nextprop_
    - fdt_check_node_offset_
    linkageType: ''
    returnType: int
    signature: int fdt_first_property_offset(const void *fdt, int nodeoffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_prop_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:350,1
    - Dst: nextprop_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: fdt_next_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_check_prop_offset_
    - nextprop_
    linkageType: ''
    returnType: int
    signature: int fdt_next_property_offset(const void *fdt, int offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:363,1
    - Dst: fdt_check_prop_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:364,1
    - Dst: fdt_offset_ptr_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:370,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fdt
    - offset
    - lenp
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 376
    functionName: fdt_get_property_by_offset_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_offset_ptr_
    - fdt_check_prop_offset_
    - can_assume
    - fdt32_ld_
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property_by_offset_(const void *fdt,\n\t\t\t\t\t\t
      \             int offset,\n\t\t\t\t\t\t              int *lenp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:385,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:385,1
    - Dst: fdt_get_property_by_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - fdt
    - offset
    - lenp
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 392
    functionName: fdt_get_property_by_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_get_property_by_offset_
    - fdt_version
    - can_assume
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property_by_offset(const void *fdt,\n\t\t\t\t\t\t
      \     int offset,\n\t\t\t\t\t\t      int *lenp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_first_property_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:401,1
    - Dst: fdt_next_property_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:403,1
    - Dst: fdt_get_property_by_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:406,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:407,1
    - Dst: fdt_string_eq_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:411,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 6
    argNames:
    - fdt
    - offset
    - name
    - namelen
    - lenp
    - poffset
    argTypes:
    - void*
    - int
    - char*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 422
    functionName: fdt_get_property_namelen_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_property_by_offset_
    - can_assume
    - fdt_first_property_offset
    - fdt_next_property_offset
    - fdt_string_eq_
    - fdt32_ld_
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property_namelen_(const void *fdt,\n\t\t\t\t\t\t
      \           int offset,\n\t\t\t\t\t\t            const char *name,\n\t\t\t\t\t\t
      \           int namelen,\n\t\t\t\t\t\t\t    int *lenp,\n\t\t\t\t\t\t\t    int
      *poffset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:432,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:432,1
    - Dst: fdt_get_property_namelen_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - fdt
    - offset
    - name
    - namelen
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 440
    functionName: fdt_get_property_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_property_namelen_
    - fdt_version
    - can_assume
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property_namelen(const void *fdt,\n\t\t\t\t\t\t
      \   int offset,\n\t\t\t\t\t\t    const char *name,\n\t\t\t\t\t\t    int namelen,
      int *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:447,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 5
    functionLinenumber: 443
    functionLinenumberEnd: 449
    functionName: fdt_get_property
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 3
    functionsReached:
    - fdt_get_property_namelen
    - strlen
    linkageType: ''
    returnType: struct fdt_property
    signature: "struct fdt_property *fdt_get_property(const void *fdt,\n\t\t\t\t\t
      \   int nodeoffset,\n\t\t\t\t\t    const char *name, int *lenp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property_namelen_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:457,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:463,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:463,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - namelen
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 451
    functionDepth: 4
    functionLinenumber: 451
    functionLinenumberEnd: 467
    functionName: fdt_getprop_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_get_property_namelen_
    - fdt_version
    - can_assume
    - fdt32_ld_
    linkageType: ''
    returnType: void
    signature: "void *fdt_getprop_namelen(const void *fdt, int nodeoffset,\n\t\t\t\tconst
      char *name, int namelen, int *lenp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property_by_offset_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:474,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:481,1
    - Dst: fdt_get_string
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:482,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:482,1
    - Dst: fdt_string
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:491,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:491,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:496,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:496,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:497,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - fdt
    - offset
    - namep
    - lenp
    argTypes:
    - void*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 500
    functionName: fdt_getprop_by_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_property_by_offset_
    - fdt_get_string
    - can_assume
    - fdt_string
    - fdt32_ld_
    - fdt_version
    linkageType: ''
    returnType: void
    signature: "void *fdt_getprop_by_offset(const void *fdt, int offset,\n\t\t\t\t
      \ const char **namep, int *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:505,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - name
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 502
    functionDepth: 5
    functionLinenumber: 502
    functionLinenumberEnd: 506
    functionName: fdt_getprop
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 5
    functionsReached:
    - fdt_getprop_namelen
    - strlen
    linkageType: ''
    returnType: void
    signature: "void *fdt_getprop(const void *fdt, int nodeoffset,\n\t\t\tconst char
      *name, int *lenp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:515,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:517,1
    - Dst: fdt32_ld_
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 508
    functionDepth: 6
    functionLinenumber: 508
    functionLinenumberEnd: 523
    functionName: fdt_get_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 2
    functionsReached:
    - fdt32_ld_
    - fdt_getprop
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:530,1
    - Dst: fdt_getprop_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fdt
    - name
    - namelen
    argTypes:
    - void*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 535
    functionName: fdt_get_alias_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - fdt_path_offset
    - fdt_getprop_namelen
    linkageType: ''
    returnType: char
    signature: "char *fdt_get_alias_namelen(const void *fdt,\n\t\t\t\t  const char
      *name, int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_alias_namelen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:539,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: fdt_get_alias
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_alias_namelen
    - strlen
    linkageType: ''
    returnType: char
    signature: char *fdt_get_alias(const void *fdt, const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:548,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:555,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:564,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - buf
    - buflen
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 592
    functionName: fdt_get_path
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_name
    - FDT_RO_PROBE
    - memcpy
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:600,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:607,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:622,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - supernodedepth
    - nodedepth
    argTypes:
    - void*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 630
    functionName: fdt_supernode_atdepth_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - FDT_RO_PROBE
    - can_assume
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: "int fdt_supernode_atdepth_offset(const void *fdt, int nodeoffset,\n\t\t\t\t
      int supernodedepth, int *nodedepth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_supernode_atdepth_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:637,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: fdt_node_depth
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_supernode_atdepth_offset
    - can_assume
    linkageType: ''
    returnType: int
    signature: int fdt_node_depth(const void *fdt, int nodeoffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_node_depth
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:646,1
    - Dst: fdt_supernode_atdepth_offset
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: fdt_parent_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_supernode_atdepth_offset
    - fdt_node_depth
    linkageType: ''
    returnType: int
    signature: int fdt_parent_offset(const void *fdt, int nodeoffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:662,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:669,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:671,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:672,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - fdt
    - startoffset
    - propname
    - propval
    - proplen
    argTypes:
    - void*
    - int
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 654
    functionDepth: 6
    functionLinenumber: 654
    functionLinenumberEnd: 679
    functionName: fdt_node_offset_by_prop_value
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - memcmp
    - FDT_RO_PROBE
    - fdt_next_node
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int fdt_node_offset_by_prop_value(const void *fdt, int startoffset,\n\t\t\t\t
      \ const char *propname,\n\t\t\t\t  const void *propval, int proplen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:688,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:696,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:698,1
    - Dst: fdt_get_phandle
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - fdt
    - phandle
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 681
    functionDepth: 7
    functionLinenumber: 681
    functionLinenumberEnd: 704
    functionName: fdt_node_offset_by_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - fdt_get_phandle
    - FDT_RO_PROBE
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:708,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:712,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - strlist
    - listlen
    - str
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 721
    functionName: fdt_stringlist_contains
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - memchr
    - strlen
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fdt_stringlist_contains(const char *strlist, int listlen, const
      char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:728,1
    - Dst: strnlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - property
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 723
    functionDepth: 6
    functionLinenumber: 723
    functionLinenumberEnd: 746
    functionName: fdt_stringlist_count
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - strnlen
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: int fdt_stringlist_count(const void *fdt, int nodeoffset, const char
      *property)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:754,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:758,1
    - Dst: strnlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:762,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - fdt
    - nodeoffset
    - property
    - string
    argTypes:
    - void*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 748
    functionDepth: 6
    functionLinenumber: 748
    functionLinenumberEnd: 776
    functionName: fdt_stringlist_search
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - strnlen
    - strlen
    - memcmp
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int fdt_stringlist_search(const void *fdt, int nodeoffset, const char
      *property,\n\t\t\t  const char *string)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:785,1
    - Dst: strnlen
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:796,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - property
    - idx
    - lenp
    argTypes:
    - void*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 821
    functionName: fdt_stringlist_get
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 0
    functionsReached:
    - strnlen
    - fdt_getprop
    linkageType: ''
    returnType: char
    signature: "char *fdt_stringlist_get(const void *fdt, int nodeoffset,\n\t\t\t
      \      const char *property, int idx,\n\t\t\t       int *lenp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:829,1
    - Dst: fdt_stringlist_contains
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - compatible
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 823
    functionDepth: 6
    functionLinenumber: 823
    functionLinenumberEnd: 834
    functionName: fdt_node_check_compatible
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 2
    functionsReached:
    - fdt_stringlist_contains
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int fdt_node_check_compatible(const void *fdt, int nodeoffset,\n\t\t\t
      \     const char *compatible)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:841,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:848,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:850,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/libfdt/fdt_ro.c:851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - fdt
    - startoffset
    - compatible
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 836
    functionDepth: 7
    functionLinenumber: 836
    functionLinenumberEnd: 859
    functionName: fdt_node_offset_by_compatible
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_ro.c
    functionUses: 1
    functionsReached:
    - FDT_RO_PROBE
    - fdt_next_node
    - fdt_node_check_compatible
    linkageType: ''
    returnType: int
    signature: "int fdt_node_offset_by_compatible(const void *fdt, int startoffset,\n\t\t\t\t
      \ const char *compatible)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fdt_header_size
      Src: /src/xen/xen/common/libfdt/fdt_check.c:26,1
    - Dst: fdt_check_header
      Src: /src/xen/xen/common/libfdt/fdt_check.c:28,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_check.c:31,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_check.c:34,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_check.c:40,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_check.c:68,1
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_check.c:83,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 2
    argNames:
    - fdt
    - bufsize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 93
    functionName: fdt_check_full
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_check.c
    functionUses: 0
    functionsReached:
    - fdt_next_tag
    - fdt_check_header
    - fdt_totalsize
    - fdt_num_mem_rsv
    - fdt_header_size
    - fdt_get_name
    - fdt_getprop_by_offset
    linkageType: ''
    returnType: int
    signature: int fdt_check_full(const void *fdt, size_t bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:16,1
    - Dst: FDT_ALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:16,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:17,1
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:18,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:19,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:20,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:21,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:22,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - mem_rsv_size
    - struct_size
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: fdt_blocks_misordered_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_ALIGN
    - fdt_off_mem_rsvmap
    - fdt_totalsize
    - fdt_off_dt_strings
    - fdt_off_dt_struct
    - fdt_size_dt_strings
    linkageType: ''
    returnType: int
    signature: "int fdt_blocks_misordered_(const void *fdt,\n\t\t\t\t  int mem_rsv_size,
      int struct_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:27,1
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:29,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:31,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:31,1
    - Dst: fdt_blocks_misordered_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:33,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:34,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:36,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:36,1
    - Dst: fdt_set_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:37,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: fdt_rw_probe_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_set_version
    - FDT_RO_PROBE
    - fdt_blocks_misordered_
    - fdt_version
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_rw_probe_(void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: FDT_RW_PROBE
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_RW_PROBE(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:51,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: fdt_data_size_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_off_dt_strings
    - fdt_size_dt_strings
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fdt_data_size_(void *fdt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_data_size_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:57,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:64,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - fdt
    - splicepoint
    - oldlen
    - newlen
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: fdt_splice_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_totalsize
    - memmove
    - fdt_data_size_
    linkageType: ''
    returnType: int
    signature: int fdt_splice_(void *fdt, void *splicepoint, int oldlen, int newlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_splice_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:75,1
    - Dst: fdt_set_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:78,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:78,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:79,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - fdt
    - p
    - oldn
    - newn
    argTypes:
    - void*
    - struct fdt_reserve_entry*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: fdt_splice_mem_rsv_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_splice_
    - fdt_set_off_dt_strings
    - fdt_off_dt_strings
    - fdt_off_dt_struct
    - fdt_set_off_dt_struct
    linkageType: ''
    returnType: int
    signature: "int fdt_splice_mem_rsv_(void *fdt, struct fdt_reserve_entry *p,\n\t\t\t
      \      int oldn, int newn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_splice_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:89,1
    - Dst: fdt_set_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:92,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:92,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:93,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fdt
    - p
    - oldlen
    - newlen
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: fdt_splice_struct_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_set_size_dt_struct
    - fdt_splice_
    - fdt_set_off_dt_strings
    - fdt_off_dt_strings
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: "int fdt_splice_struct_(void *fdt, void *p,\n\t\t\t      int oldlen,
      int newlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:100,1
    - Dst: fdt_set_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:102,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - s
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: fdt_del_last_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_set_size_dt_strings
    - strlen
    - fdt_size_dt_strings
    linkageType: ''
    returnType: void
    signature: void fdt_del_last_string_(void *fdt, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:108,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:108,1
    - Dst: fdt_splice_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:111,1
    - Dst: fdt_set_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:114,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - newlen
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: fdt_splice_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_off_dt_strings
    - fdt_splice_
    - fdt_set_size_dt_strings
    - fdt_size_dt_strings
    linkageType: ''
    returnType: int
    signature: int fdt_splice_string_(void *fdt, int newlen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:129,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:132,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:135,1
    - Dst: fdt_find_string_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:138,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:138,1
    - Dst: strtab::strtab
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:143,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:143,1
    - Dst: fdt_splice_string_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:144,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:148,1
    - Dst: strtab::strtab
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fdt
    - s
    - allocated
    argTypes:
    - void*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: fdt_find_add_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_off_dt_strings
    - strtab::strtab
    - fdt_find_string_
    - strlen
    - fdt_size_dt_strings
    - fdt_splice_string_
    linkageType: ''
    returnType: int
    signature: int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:160,1
    - Dst: fdt_mem_rsv_w_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:162,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:162,1
    - Dst: fdt_splice_mem_rsv_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:163,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:167,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fdt
    - address
    - size
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 4
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: fdt_add_mem_rsv
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_RW_PROBE
    - fdt_splice_mem_rsv_
    - fdt_num_mem_rsv
    - fdt_mem_rsv_w_
    - cpu_to_fdt64
    linkageType: ''
    returnType: int
    signature: int fdt_add_mem_rsv(void *fdt, uint64_t address, uint64_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_mem_rsv_w_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:174,1
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:176,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:178,1
    - Dst: fdt_splice_mem_rsv_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 4
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: fdt_del_mem_rsv
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 1
    functionsReached:
    - FDT_RW_PROBE
    - fdt_num_mem_rsv
    - fdt_splice_mem_rsv_
    - fdt_mem_rsv_w_
    linkageType: ''
    returnType: int
    signature: int fdt_del_mem_rsv(void *fdt, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property_w
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:190,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:194,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:194,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:195,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - len
    - prop
    argTypes:
    - void*
    - int
    - char*
    - int
    - struct fdt_property**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: fdt_resize_property_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_get_property_w
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - cpu_to_fdt32
    linkageType: ''
    returnType: int
    signature: "int fdt_resize_property_(void *fdt, int nodeoffset, const char *name,\n\t\t\t\tint
      len, struct fdt_property **prop)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_node_offset_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:211,1
    - Dst: fdt_find_add_string_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:214,1
    - Dst: fdt_offset_ptr_w_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:218,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:219,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:221,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:224,1
    - Dst: fdt_del_last_string_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:225,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:229,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:230,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - len
    - prop
    argTypes:
    - void*
    - int
    - char*
    - int
    - struct fdt_property**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: fdt_add_property_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - can_assume
    - cpu_to_fdt32
    - fdt_offset_ptr_w_
    - fdt_del_last_string_
    - fdt_find_add_string_
    - fdt_check_node_offset_
    linkageType: ''
    returnType: int
    signature: "int fdt_add_property_(void *fdt, int nodeoffset, const char *name,\n\t\t\t
      \    int len, struct fdt_property **prop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:241,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:243,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:247,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:249,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:249,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:250,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 235
    functionDepth: 4
    functionLinenumber: 235
    functionLinenumberEnd: 256
    functionName: fdt_set_name
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 1
    functionsReached:
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - FDT_RW_PROBE
    - strlen
    - fdt_get_name
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fdt_set_name(void *fdt, int nodeoffset, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:264,1
    - Dst: fdt_resize_property_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:266,1
    - Dst: fdt_add_property_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - len
    - prop_data
    argTypes:
    - void*
    - int
    - char*
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 274
    functionName: fdt_setprop_placeholder
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_RW_PROBE
    - fdt_add_property_
    - fdt_resize_property_
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_placeholder(void *fdt, int nodeoffset, const char
      *name,\n\t\t\t    int len, void **prop_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_setprop_placeholder
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:282,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    - len
    argTypes:
    - void*
    - int
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 276
    functionDepth: 6
    functionLinenumber: 276
    functionLinenumberEnd: 289
    functionName: fdt_setprop
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 6
    functionsReached:
    - fdt_setprop_placeholder
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop(void *fdt, int nodeoffset, const char *name,\n\t\tconst
      void *val, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:297,1
    - Dst: fdt_get_property_w
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:299,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:302,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:303,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:304,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:307,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:308,1
    - Dst: fdt_add_property_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:310,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    - len
    argTypes:
    - void*
    - int
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 316
    functionName: fdt_appendprop
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 2
    functionsReached:
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - fdt_get_property_w
    - cpu_to_fdt32
    - FDT_RW_PROBE
    - fdt_add_property_
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fdt_appendprop(void *fdt, int nodeoffset, const char *name,\n\t\t
      \  const void *val, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:323,1
    - Dst: fdt_get_property_w
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:325,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:329,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: fdt_delprop
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_RW_PROBE
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - fdt_get_property_w
    linkageType: ''
    returnType: int
    signature: int fdt_delprop(void *fdt, int nodeoffset, const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:343,1
    - Dst: fdt_subnode_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:345,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:352,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:354,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:358,1
    - Dst: fdt_offset_ptr_w_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:361,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:362,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:364,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:368,1
    - Dst: memset
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:369,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:369,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:370,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - fdt
    - parentoffset
    - name
    - namelen
    argTypes:
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 375
    functionName: fdt_add_subnode_namelen
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_TAGALIGN
    - fdt_splice_struct_
    - can_assume
    - fdt_next_tag
    - cpu_to_fdt32
    - FDT_RW_PROBE
    - fdt_offset_ptr_w_
    - memset
    - fdt_subnode_offset_namelen
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fdt_add_subnode_namelen(void *fdt, int parentoffset,\n\t\t\t    const
      char *name, int namelen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_add_subnode_namelen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:379,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fdt
    - parentoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 5
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: fdt_add_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 3
    functionsReached:
    - fdt_add_subnode_namelen
    - strlen
    linkageType: ''
    returnType: int
    signature: int fdt_add_subnode(void *fdt, int parentoffset, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:386,1
    - Dst: fdt_node_end_offset_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:388,1
    - Dst: fdt_splice_struct_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:392,1
    - Dst: fdt_offset_ptr_w_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: fdt_del_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_offset_ptr_w_
    - FDT_RW_PROBE
    - fdt_splice_struct_
    - fdt_node_end_offset_
    linkageType: ''
    returnType: int
    signature: int fdt_del_node(void *fdt, int nodeoffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDT_ALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:403,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:407,1
    - Dst: mem_rsv_off::mem_rsv_off
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:407,1
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:407,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:410,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:410,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:414,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - old
    - new
    - mem_rsv_size
    - struct_size
    - strings_size
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 417
    functionName: fdt_packblocks_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - FDT_ALIGN
    - fdt_off_mem_rsvmap
    - fdt_off_dt_strings
    - memmove
    - fdt_off_dt_struct
    - mem_rsv_off::mem_rsv_off
    linkageType: ''
    returnType: void
    signature: "void fdt_packblocks_(const char *old, char *new,\n\t\t\t    int mem_rsv_size,\n\t\t\t
      \   int struct_size,\n\t\t\t    int strings_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:425,1
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:428,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:430,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:433,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:433,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:434,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:435,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:437,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:445,1
    - Dst: fdt_blocks_misordered_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:446,1
    - Dst: fdt_move
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:448,1
    - Dst: fdt_set_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:451,1
    - Dst: fdt_set_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:452,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:453,1
    - Dst: FDT_ALIGN
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:458,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:459,1
    - Dst: fdt_packblocks_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:474,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:475,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:476,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:478,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:479,1
    - Dst: fdt_set_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:480,1
    - Dst: fdt_set_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:481,1
    - Dst: fdt_set_boot_cpuid_phys
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:482,1
    - Dst: fdt_boot_cpuid_phys
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:482,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - fdt
    - buf
    - bufsize
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 485
    functionName: fdt_open_into
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 1
    functionsReached:
    - fdt_set_version
    - fdt_totalsize
    - fdt_size_dt_strings
    - fdt_move
    - fdt_version
    - fdt_size_dt_struct
    - fdt_set_size_dt_struct
    - fdt_set_boot_cpuid_phys
    - fdt_set_last_comp_version
    - fdt_next_tag
    - fdt_packblocks_
    - fdt_num_mem_rsv
    - can_assume
    - fdt_set_totalsize
    - memmove
    - fdt_blocks_misordered_
    - fdt_set_magic
    - FDT_ALIGN
    - FDT_RO_PROBE
    - fdt_boot_cpuid_phys
    linkageType: ''
    returnType: int
    signature: int fdt_open_into(const void *fdt, void *buf, int bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:491,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:493,1
    - Dst: fdt_packblocks_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:495,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:495,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:496,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:497,1
    - Dst: fdt_data_size_
      Src: /src/xen/xen/common/libfdt/fdt_rw.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 500
    functionName: fdt_pack
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_rw.c
    functionUses: 0
    functionsReached:
    - fdt_data_size_
    - fdt_set_totalsize
    - FDT_RW_PROBE
    - fdt_packblocks_
    - fdt_num_mem_rsv
    - fdt_size_dt_strings
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_pack(void *fdt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:20,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: fdt_cells
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_addresses.c
    functionUses: 0
    functionsReached:
    - fdt32_to_cpu
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: int fdt_cells(const void *fdt, int nodeoffset, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_cells
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 7
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: fdt_address_cells
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_addresses.c
    functionUses: 0
    functionsReached:
    - fdt_cells
    linkageType: ''
    returnType: int
    signature: int fdt_address_cells(const void *fdt, int nodeoffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_cells
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: fdt_size_cells
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_addresses.c
    functionUses: 0
    functionsReached:
    - fdt_cells
    linkageType: ''
    returnType: int
    signature: int fdt_size_cells(const void *fdt, int nodeoffset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fdt_address_cells
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:63,1
    - Dst: fdt_size_cells
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:68,1
    - Dst: fdt32_st
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:79,1
    - Dst: fdt64_st
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:81,1
    - Dst: fdt32_st
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:92,1
    - Dst: fdt64_st
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:94,1
    - Dst: fdt_appendprop
      Src: /src/xen/xen/common/libfdt/fdt_addresses.c:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 6
    argNames:
    - fdt
    - parent
    - nodeoffset
    - name
    - addr
    - size
    argTypes:
    - void*
    - int
    - int
    - char*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: fdt_appendprop_addrrange
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_addresses.c
    functionUses: 0
    functionsReached:
    - fdt32_st
    - fdt_address_cells
    - fdt_appendprop
    - fdt64_st
    - fdt_size_cells
    linkageType: ''
    returnType: int
    signature: "int fdt_appendprop_addrrange(void *fdt, int parent, int nodeoffset,\n\t\t\t
      \    const char *name, uint64_t addr, uint64_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:15,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:16,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: fdt_sw_probe_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_magic
    - can_assume
    linkageType: ''
    returnType: int
    signature: int fdt_sw_probe_(void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: FDT_SW_PROBE
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_SW_PROBE(fdt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_sw_probe_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:40,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:44,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: fdt_sw_probe_memrsv_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_off_dt_strings
    - fdt_sw_probe_
    linkageType: ''
    returnType: int
    signature: int fdt_sw_probe_memrsv_(void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: FDT_SW_PROBE_MEMRSV
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_SW_PROBE_MEMRSV(fdt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_sw_probe_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:66,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:70,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:71,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: fdt_sw_probe_struct_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_off_dt_strings
    - fdt_sw_probe_
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int fdt_sw_probe_struct_(void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: FDT_SW_PROBE_STRUCT
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_SW_PROBE_STRUCT(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: sw_flags
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_last_comp_version
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sw_flags(void *fdt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:96,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:99,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:99,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:100,1
    - Dst: fdt_set_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:105,1
    - Dst: fdt_offset_ptr_w_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fdt
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: fdt_grab_space_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_set_size_dt_struct
    - fdt_totalsize
    - fdt_offset_ptr_w_
    - fdt_off_dt_struct
    - fdt_size_dt_strings
    - fdt_size_dt_struct
    linkageType: ''
    returnType: void
    signature: void *fdt_grab_space_(void *fdt, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FDT_ALIGN
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:111,1
    - Dst: memset
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:121,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:130,1
    - Dst: fdt_set_version
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:131,1
    - Dst: fdt_set_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:132,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:134,1
    - Dst: fdt_set_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:136,1
    - Dst: fdt_set_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:137,1
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:137,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - bufsize
    - flags
    argTypes:
    - void*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: fdt_create_with_flags
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_set_off_mem_rsvmap
    - fdt_set_last_comp_version
    - FDT_ALIGN
    - fdt_off_mem_rsvmap
    - fdt_set_version
    - fdt_set_totalsize
    - fdt_set_off_dt_strings
    - memset
    - fdt_set_magic
    - fdt_set_off_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_create_with_flags(void *buf, int bufsize, uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_create_with_flags
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: fdt_create
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 3
    functionsReached:
    - fdt_create_with_flags
    linkageType: ''
    returnType: int
    signature: int fdt_create(void *buf, int bufsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:153,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:158,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:158,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:159,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:161,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:162,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:168,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:174,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:175,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:177,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:178,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:181,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:182,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - fdt
    - buf
    - bufsize
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 186
    functionName: fdt_resize
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - can_assume
    - fdt_set_totalsize
    - fdt_set_off_dt_strings
    - FDT_SW_PROBE
    - fdt_totalsize
    - fdt_off_dt_strings
    - memmove
    - fdt_off_dt_struct
    - fdt_size_dt_strings
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_resize(void *fdt, void *buf, int bufsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE_MEMRSV
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:193,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:195,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:196,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:200,1
    - Dst: cpu_to_fdt64
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:201,1
    - Dst: fdt_set_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fdt
    - addr
    - size
    argTypes:
    - void*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: fdt_add_reservemap_entry
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_totalsize
    - fdt_off_dt_struct
    - FDT_SW_PROBE_MEMRSV
    - cpu_to_fdt64
    - fdt_set_off_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_add_reservemap_entry(void *fdt, uint64_t addr, uint64_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_add_reservemap_entry
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:210,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:215,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: fdt_finish_reservemap
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 3
    functionsReached:
    - fdt_totalsize
    - fdt_add_reservemap_entry
    - fdt_set_off_dt_strings
    linkageType: ''
    returnType: int
    signature: int fdt_finish_reservemap(void *fdt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE_STRUCT
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:224,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:226,1
    - Dst: fdt_grab_space_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:227,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:227,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:231,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fdt
    - name
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: fdt_begin_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 31
    functionsReached:
    - FDT_TAGALIGN
    - cpu_to_fdt32
    - strlen
    - FDT_SW_PROBE_STRUCT
    - fdt_grab_space_
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fdt_begin_node(void *fdt, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE_STRUCT
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:240,1
    - Dst: fdt_grab_space_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:242,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: fdt_end_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 32
    functionsReached:
    - cpu_to_fdt32
    - FDT_SW_PROBE_STRUCT
    - fdt_grab_space_
    linkageType: ''
    returnType: int
    signature: int fdt_end_node(void *fdt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:252,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:253,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:254,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:258,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:258,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:259,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:262,1
    - Dst: fdt_set_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fdt
    - s
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: fdt_add_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - fdt_set_size_dt_strings
    - fdt_totalsize
    - fdt_off_dt_struct
    - strlen
    - fdt_size_dt_strings
    - memcpy
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_add_string_(void *fdt, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:270,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:271,1
    - Dst: fdt_set_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - s
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: fdt_del_last_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 1
    functionsReached:
    - fdt_set_size_dt_strings
    - strlen
    - fdt_size_dt_strings
    linkageType: ''
    returnType: void
    signature: void fdt_del_last_string_(void *fdt, const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:278,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:279,1
    - Dst: fdt_find_string_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:284,1
    - Dst: fdt_add_string_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fdt
    - s
    - allocated
    argTypes:
    - void*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: fdt_find_add_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 1
    functionsReached:
    - fdt_size_dt_strings
    - fdt_find_string_
    - fdt_add_string_
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int fdt_find_add_string_(void *fdt, const char *s, int *allocated)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE_STRUCT
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:299,1
    - Dst: sw_flags
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:302,1
    - Dst: fdt_add_string_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:304,1
    - Dst: fdt_find_add_string_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:306,1
    - Dst: fdt_grab_space_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:311,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:311,1
    - Dst: fdt_del_last_string_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:314,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:318,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:319,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - fdt
    - name
    - len
    - valp
    argTypes:
    - void*
    - char*
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 323
    functionName: fdt_property_placeholder
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 0
    functionsReached:
    - FDT_TAGALIGN
    - cpu_to_fdt32
    - fdt_add_string_
    - sw_flags
    - FDT_SW_PROBE_STRUCT
    - fdt_grab_space_
    - fdt_del_last_string_
    - fdt_find_add_string_
    linkageType: ''
    returnType: int
    signature: int fdt_property_placeholder(void *fdt, const char *name, int len,
      void **valp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_property_placeholder
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:330,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - fdt
    - name
    - val
    - len
    argTypes:
    - void*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: fdt_property
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 30
    functionsReached:
    - fdt_property_placeholder
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fdt_property(void *fdt, const char *name, const void *val, int
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FDT_SW_PROBE_STRUCT
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:345,1
    - Dst: fdt_grab_space_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:348,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:351,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:354,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:354,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:355,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:355,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:356,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:356,1
    - Dst: fdt_set_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:357,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:361,1
    - Dst: fdt_offset_ptr_w_
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:364,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:367,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:368,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:369,1
    - Dst: fdt_set_totalsize
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:377,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:377,1
    - Dst: fdt_set_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:380,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_sw.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 384
    functionName: fdt_finish
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_sw.c
    functionUses: 3
    functionsReached:
    - fdt_set_last_comp_version
    - fdt32_to_cpu
    - cpu_to_fdt32
    - fdt_next_tag
    - fdt_set_totalsize
    - fdt_set_off_dt_strings
    - fdt_totalsize
    - fdt_offset_ptr_w_
    - memmove
    - fdt_off_dt_struct
    - fdt_grab_space_
    - FDT_SW_PROBE_STRUCT
    - fdt_size_dt_strings
    - fdt_size_dt_struct
    - fdt_set_magic
    linkageType: ''
    returnType: int
    signature: int fdt_finish(void *fdt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:34,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:38,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - fdto
    - fragment
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: overlay_get_target_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt32_to_cpu
    - fdt_getprop
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: overlay_get_target_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:52,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:59,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:61,1
    - Dst: fdt_node_offset_by_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - fdt
    - fdto
    - fragment_offset
    - pathp
    argTypes:
    - void*
    - void*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 44
    functionDepth: 8
    functionLinenumber: 44
    functionLinenumberEnd: 86
    functionName: fdt_overlay_target_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_path_offset
    - overlay_get_target_phandle
    - fdt_node_offset_by_phandle
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int fdt_overlay_target_offset(const void *fdt, const void *fdto,\n\t\t\t
      \     int fragment_offset, char const **pathp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:109,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:116,1
    - Dst: fdt_setprop_inplace_u32
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - fdt
    - node
    - name
    - delta
    argTypes:
    - void*
    - int
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 6
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: overlay_phandle_add_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_setprop_inplace_u32
    - fdt32_to_cpu
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int overlay_phandle_add_offset(void *fdt, int node,\n\t\t\t\t      const
      char *name, uint32_t delta)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: overlay_phandle_add_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:148,1
    - Dst: overlay_phandle_add_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:152,1
    - Dst: overlay_adjust_node_phandles
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - fdto
    - node
    - delta
    argTypes:
    - void*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 142
    functionDepth: 7
    functionLinenumber: 142
    functionLinenumberEnd: 163
    functionName: overlay_adjust_node_phandles
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 1
    functionsReached:
    - overlay_adjust_node_phandles
    - overlay_phandle_add_offset
    linkageType: ''
    returnType: int
    signature: "int overlay_adjust_node_phandles(void *fdto, int node,\n\t\t\t\t\tuint32_t
      delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: overlay_adjust_node_phandles
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 8
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_adjust_node_phandles
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_subnode(child, fdto, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: overlay_adjust_node_phandles
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdto
    - delta
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 8
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: overlay_adjust_local_phandles
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_adjust_node_phandles
    linkageType: ''
    returnType: int
    signature: int overlay_adjust_local_phandles(void *fdto, uint32_t delta)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:223,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:232,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:244,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:252,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:254,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:254,1
    - Dst: fdt_setprop_inplace_namelen_partial
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:256,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:259,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:272,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:276,1
    - Dst: overlay_update_local_node_references
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - fdto
    - tree_node
    - fixup_node
    - delta
    argTypes:
    - void*
    - int
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 206
    functionDepth: 6
    functionLinenumber: 206
    functionLinenumberEnd: 292
    functionName: overlay_update_local_node_references
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 1
    functionsReached:
    - fdt32_to_cpu
    - cpu_to_fdt32
    - fdt_getprop
    - overlay_update_local_node_references
    - fdt_subnode_offset
    - strlen
    - fdt_get_name
    - fdt_setprop_inplace_namelen_partial
    - fdt_getprop_by_offset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int overlay_update_local_node_references(void *fdto,\n\t\t\t\t\t\tint
      tree_node,\n\t\t\t\t\t\tint fixup_node,\n\t\t\t\t\t\tuint32_t delta)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:223,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:232,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:244,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:252,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:254,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:254,1
    - Dst: fdt_setprop_inplace_namelen_partial
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:256,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 269
    functionName: fdt_for_each_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt32_to_cpu
    - cpu_to_fdt32
    - fdt_getprop
    - strlen
    - fdt_setprop_inplace_namelen_partial
    - fdt_getprop_by_offset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_property_offset(fixup_prop, fdto, fixup_node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:272,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:276,1
    - Dst: overlay_update_local_node_references
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 271
    functionDepth: 7
    functionLinenumber: 271
    functionLinenumberEnd: 289
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_update_local_node_references
    - fdt_subnode_offset
    - fdt_get_name
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_subnode(fixup_child, fdto, fixup_node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:315,1
    - Dst: overlay_update_local_node_references
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fdto
    - delta
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: overlay_update_local_references
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_path_offset
    - overlay_update_local_node_references
    linkageType: ''
    returnType: int
    signature: int overlay_update_local_references(void *fdto, uint32_t delta)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:369,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:374,1
    - Dst: fdt_get_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:378,1
    - Dst: fdt_path_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:382,1
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:388,1
    - Dst: fdt_setprop_inplace_namelen_partial
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 9
    argNames:
    - fdt
    - fdto
    - symbols_off
    - path
    - path_len
    - name
    - name_len
    - poffset
    - label
    argTypes:
    - void*
    - void*
    - int
    - char*
    - uint32_t
    - char*
    - uint32_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 393
    functionName: overlay_fixup_one_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_path_offset_namelen
    - cpu_to_fdt32
    - fdt_getprop
    - fdt_setprop_inplace_namelen_partial
    - fdt_path_offset
    - fdt_get_phandle
    linkageType: ''
    returnType: int
    signature: "int overlay_fixup_one_phandle(void *fdt, void *fdto,\n\t\t\t\t     int
      symbols_off,\n\t\t\t\t     const char *path, uint32_t path_len,\n\t\t\t\t     const
      char *name, uint32_t name_len,\n\t\t\t\t     int poffset, const char *label)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:421,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:439,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:448,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:458,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:466,1
    - Dst: overlay_fixup_one_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:470,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - fdt
    - fdto
    - symbols_off
    - property
    argTypes:
    - void*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 414
    functionDepth: 8
    functionLinenumber: 414
    functionLinenumberEnd: 478
    functionName: overlay_fixup_phandle
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_fixup_one_phandle
    - fdt_getprop_by_offset
    - memchr
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: "int overlay_fixup_phandle(void *fdt, void *fdto, int symbols_off,\n\t\t\t\t
      int property)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:503,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:510,1
    - Dst: overlay_fixup_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - fdt
    - fdto
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 497
    functionDepth: 9
    functionLinenumber: 497
    functionLinenumberEnd: 523
    functionName: overlay_fixup_phandles
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_path_offset
    - overlay_fixup_phandle
    linkageType: ''
    returnType: int
    signature: int overlay_fixup_phandles(void *fdt, void *fdto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: overlay_fixup_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 9
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: fdt_for_each_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_fixup_phandle
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_property_offset(property, fdto, fixups_off)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:556,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:563,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:569,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:573,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:575,1
    - Dst: overlay_apply_node
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - fdt
    - target
    - fdto
    - node
    argTypes:
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 544
    functionDepth: 7
    functionLinenumber: 544
    functionLinenumberEnd: 589
    functionName: overlay_apply_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 1
    functionsReached:
    - fdt_subnode_offset
    - fdt_add_subnode
    - fdt_setprop
    - fdt_get_name
    - overlay_apply_node
    - fdt_getprop_by_offset
    linkageType: ''
    returnType: int
    signature: "int overlay_apply_node(void *fdt, int target,\n\t\t\t      void *fdto,
      int node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:556,1
    - Dst: fdt_setprop
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 550
    functionDepth: 7
    functionLinenumber: 550
    functionLinenumberEnd: 566
    functionName: fdt_for_each_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_setprop
    - fdt_getprop_by_offset
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_property_offset(property, fdto, node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:569,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:573,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:575,1
    - Dst: overlay_apply_node
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 568
    functionDepth: 8
    functionLinenumber: 568
    functionLinenumberEnd: 586
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_apply_node
    - fdt_subnode_offset
    - fdt_add_subnode
    - fdt_get_name
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_subnode(subnode, fdto, node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_for_each_subnode
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:610,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:619,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:626,1
    - Dst: overlay_apply_node
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - fdt
    - fdto
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 606
    functionDepth: 9
    functionLinenumber: 606
    functionLinenumberEnd: 636
    functionName: overlay_merge
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_apply_node
    - fdt_overlay_target_offset
    - fdt_subnode_offset
    - fdt_for_each_subnode
    linkageType: ''
    returnType: int
    signature: int overlay_merge(void *fdt, void *fdto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:643,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:646,1
    - Dst: fdt_parent_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:654,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 664
    functionName: get_path_len
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - fdt_parent_offset
    - FDT_RO_PROBE
    - fdt_get_name
    linkageType: ''
    returnType: int
    signature: int get_path_len(const void *fdt, int nodeoffset)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:695,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:701,1
    - Dst: fdt_add_subnode
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:705,1
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:713,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:718,1
    - Dst: strchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:728,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:740,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:745,1
    - Dst: fdt_subnode_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:756,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:764,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:769,1
    - Dst: get_path_len
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:776,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:781,1
    - Dst: fdt_setprop_placeholder
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:784,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:791,1
    - Dst: fdt_get_path
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:800,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:804,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:810,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 2
    argNames:
    - fdt
    - fdto
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 682
    functionDepth: 9
    functionLinenumber: 682
    functionLinenumberEnd: 815
    functionName: overlay_symbol_update
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - get_path_len
    - memcmp
    - fdt_get_path
    - fdt_setprop_placeholder
    - fdt_subnode_offset
    - fdt_add_subnode
    - strchr
    - fdt_overlay_target_offset
    - memchr
    - strlen
    - fdt_getprop_by_offset
    - memcpy
    - fdt_subnode_offset_namelen
    linkageType: ''
    returnType: int
    signature: int overlay_symbol_update(void *fdt, void *fdto)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_by_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:713,1
    - Dst: memchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:718,1
    - Dst: strchr
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:728,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:740,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:745,1
    - Dst: fdt_subnode_offset_namelen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:756,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:764,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:769,1
    - Dst: get_path_len
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:776,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:781,1
    - Dst: fdt_setprop_placeholder
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:784,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:791,1
    - Dst: fdt_get_path
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:800,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:804,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:810,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 712
    functionDepth: 9
    functionLinenumber: 712
    functionLinenumberEnd: 812
    functionName: fdt_for_each_property_offset
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - get_path_len
    - memcmp
    - fdt_get_path
    - fdt_setprop_placeholder
    - fdt_subnode_offset
    - strchr
    - fdt_overlay_target_offset
    - memchr
    - strlen
    - fdt_getprop_by_offset
    - memcpy
    - fdt_subnode_offset_namelen
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_property_offset(prop, fdto, ov_sym)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:822,1
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:823,1
    - Dst: fdt_find_max_phandle
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:825,1
    - Dst: overlay_adjust_local_phandles
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:829,1
    - Dst: overlay_update_local_references
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:833,1
    - Dst: overlay_fixup_phandles
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:837,1
    - Dst: overlay_merge
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:841,1
    - Dst: overlay_symbol_update
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:845,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:852,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:860,1
    - Dst: fdt_set_magic
      Src: /src/xen/xen/common/libfdt/fdt_overlay.c:866,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - fdt
    - fdto
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 817
    functionDepth: 10
    functionLinenumber: 817
    functionLinenumberEnd: 869
    functionName: fdt_overlay_apply
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_overlay.c
    functionUses: 0
    functionsReached:
    - overlay_adjust_local_phandles
    - fdt_find_max_phandle
    - overlay_symbol_update
    - FDT_RO_PROBE
    - overlay_fixup_phandles
    - overlay_merge
    - fdt_set_magic
    - overlay_update_local_references
    linkageType: ''
    returnType: int
    signature: int fdt_overlay_apply(void *fdt, void *fdto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: FDT_ALIGN
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_ALIGN(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: FDT_TAGALIGN
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_TAGALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fdt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: FDT_RO_PROBE
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_RO_PROBE(fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: fdt_offset_ptr_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 2
    functionsReached:
    - fdt_off_dt_struct
    linkageType: ''
    returnType: void
    signature: void *fdt_offset_ptr_(const void *fdt, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_offset_ptr_
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: fdt_offset_ptr_w_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 5
    functionsReached:
    - fdt_offset_ptr_
    linkageType: ''
    returnType: void
    signature: void *fdt_offset_ptr_w_(void *fdt, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: fdt_mem_rsv_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 1
    functionsReached:
    - fdt_off_mem_rsvmap
    linkageType: ''
    returnType: struct fdt_reserve_entry
    signature: struct fdt_reserve_entry *fdt_mem_rsv_(const void *fdt, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_mem_rsv_
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fdt
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: fdt_mem_rsv_w_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 2
    functionsReached:
    - fdt_mem_rsv_
    linkageType: ''
    returnType: struct fdt_reserve_entry
    signature: struct fdt_reserve_entry *fdt_mem_rsv_w_(void *fdt, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - fdt32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: fdt32_ld_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 5
    functionsReached:
    - fdt32_to_cpu
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt32_ld_(const fdt32_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt64_to_cpu
      Src: /src/xen/xen/common/libfdt/libfdt_internal.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - fdt64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: fdt64_ld_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 2
    functionsReached:
    - fdt64_to_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t fdt64_ld_(const fdt64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: can_assume_
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool can_assume_(int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _assume
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: can_assume
    functionSourceFile: /src/xen/xen/common/libfdt/libfdt_internal.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: can_assume(_assume)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:20,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:22,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt.c:29,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:31,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:32,1
    - Dst: fdt_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt.c:34,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt.c:38,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:40,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:40,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: fdt_ro_probe_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 2
    functionsReached:
    - fdt_last_comp_version
    - can_assume
    - fdt_magic
    - fdt_totalsize
    - fdt_version
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int32_t
    signature: int32_t fdt_ro_probe_(const void *fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - hdrsize
    - totalsize
    - 'off'
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: check_off_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_off_(uint32_t hdrsize, uint32_t totalsize, uint32_t off)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_off_
      Src: /src/xen/xen/common/libfdt/fdt.c:60,1
    - Dst: check_off_
      Src: /src/xen/xen/common/libfdt/fdt.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - hdrsize
    - totalsize
    - base
    - size
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: check_block_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 0
    functionsReached:
    - check_off_
    linkageType: ''
    returnType: int
    signature: "int check_block_(uint32_t hdrsize, uint32_t totalsize,\n\t\t\tuint32_t
      base, uint32_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: fdt_header_size_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t fdt_header_size_(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:85,1
    - Dst: fdt_header_size_
      Src: /src/xen/xen/common/libfdt/fdt.c:86,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: fdt_header_size
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 1
    functionsReached:
    - fdt_version
    - fdt_header_size_
    - can_assume
    linkageType: ''
    returnType: size_t
    signature: size_t fdt_header_size(const void *fdt)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fdt_magic
      Src: /src/xen/xen/common/libfdt/fdt.c:97,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:99,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:100,1
    - Dst: fdt_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt.c:101,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:104,1
    - Dst: fdt_last_comp_version
      Src: /src/xen/xen/common/libfdt/fdt.c:104,1
    - Dst: fdt_header_size
      Src: /src/xen/xen/common/libfdt/fdt.c:107,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:108,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:110,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:111,1
    - Dst: check_off_
      Src: /src/xen/xen/common/libfdt/fdt.c:115,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:115,1
    - Dst: fdt_off_mem_rsvmap
      Src: /src/xen/xen/common/libfdt/fdt.c:116,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:120,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:122,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:122,1
    - Dst: check_off_
      Src: /src/xen/xen/common/libfdt/fdt.c:123,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:123,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:124,1
    - Dst: check_block_
      Src: /src/xen/xen/common/libfdt/fdt.c:127,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:127,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:128,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:129,1
    - Dst: check_block_
      Src: /src/xen/xen/common/libfdt/fdt.c:134,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:134,1
    - Dst: fdt_off_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt.c:135,1
    - Dst: fdt_size_dt_strings
      Src: /src/xen/xen/common/libfdt/fdt.c:136,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 141
    functionName: fdt_check_header
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 4
    functionsReached:
    - fdt_last_comp_version
    - can_assume
    - fdt_off_mem_rsvmap
    - check_off_
    - fdt_magic
    - check_block_
    - fdt_totalsize
    - fdt_off_dt_strings
    - fdt_off_dt_struct
    - fdt_header_size
    - fdt_size_dt_strings
    - fdt_version
    - fdt_size_dt_struct
    linkageType: ''
    returnType: int
    signature: int fdt_check_header(const void *fdt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:146,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:151,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:154,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:157,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:157,1
    - Dst: fdt_size_dt_struct
      Src: /src/xen/xen/common/libfdt/fdt.c:159,1
    - Dst: fdt_offset_ptr_
      Src: /src/xen/xen/common/libfdt/fdt.c:162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 10
    argCount: 3
    argNames:
    - fdt
    - offset
    - len
    argTypes:
    - void*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 163
    functionName: fdt_offset_ptr
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 1
    functionsReached:
    - fdt_offset_ptr_
    - can_assume
    - fdt_totalsize
    - fdt_off_dt_struct
    - fdt_version
    - fdt_size_dt_struct
    linkageType: ''
    returnType: void
    signature: void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fdt_offset_ptr
      Src: /src/xen/xen/common/libfdt/fdt.c:173,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:174,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt.c:176,1
    - Dst: fdt_offset_ptr
      Src: /src/xen/xen/common/libfdt/fdt.c:184,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:186,1
    - Dst: fdt_offset_ptr
      Src: /src/xen/xen/common/libfdt/fdt.c:191,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:192,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt.c:196,1
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:197,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/libfdt/fdt.c:198,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt.c:198,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/libfdt/fdt.c:199,1
    - Dst: fdt_offset_ptr
      Src: /src/xen/xen/common/libfdt/fdt.c:212,1
    - Dst: FDT_TAGALIGN
      Src: /src/xen/xen/common/libfdt/fdt.c:215,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 3
    argNames:
    - fdt
    - startoffset
    - nextoffset
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 217
    functionName: fdt_next_tag
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 5
    functionsReached:
    - FDT_TAGALIGN
    - fdt32_to_cpu
    - can_assume
    - fdt_offset_ptr
    - fdt_version
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:221,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: fdt_check_node_offset_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 3
    functionsReached:
    - can_assume
    - fdt_next_tag
    linkageType: ''
    returnType: int
    signature: int fdt_check_node_offset_(const void *fdt, int offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:233,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: fdt_check_prop_offset_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 2
    functionsReached:
    - can_assume
    - fdt_next_tag
    linkageType: ''
    returnType: int
    signature: int fdt_check_prop_offset_(const void *fdt, int offset)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_node_offset_
      Src: /src/xen/xen/common/libfdt/fdt.c:249,1
    - Dst: fdt_next_tag
      Src: /src/xen/xen/common/libfdt/fdt.c:254,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - fdt
    - offset
    - depth
    argTypes:
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 243
    functionDepth: 5
    functionLinenumber: 243
    functionLinenumberEnd: 281
    functionName: fdt_next_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 9
    functionsReached:
    - fdt_next_tag
    - fdt_check_node_offset_
    linkageType: ''
    returnType: int
    signature: int fdt_next_node(const void *fdt, int offset, int *depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: fdt_first_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 3
    functionsReached:
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_first_subnode(const void *fdt, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 294
    functionDepth: 6
    functionLinenumber: 294
    functionLinenumberEnd: 309
    functionName: fdt_next_subnode
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 3
    functionsReached:
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_next_subnode(const void *fdt, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt.c:313,1
    - Dst: memcmp
      Src: /src/xen/xen/common/libfdt/fdt.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - strtab
    - tabsize
    - s
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 321
    functionName: fdt_find_string_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 2
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *fdt_find_string_(const char *strtab, int tabsize, const char
      *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: can_assume
      Src: /src/xen/xen/common/libfdt/fdt.c:325,1
    - Dst: FDT_RO_PROBE
      Src: /src/xen/xen/common/libfdt/fdt.c:328,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:330,1
    - Dst: memmove
      Src: /src/xen/xen/common/libfdt/fdt.c:333,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/libfdt/fdt.c:333,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fdt
    - buf
    - bufsize
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: fdt_move
    functionSourceFile: /src/xen/xen/common/libfdt/fdt.c
    functionUses: 1
    functionsReached:
    - memmove
    - FDT_RO_PROBE
    - can_assume
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int fdt_move(const void *fdt, void *buf, int bufsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_create
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:17,1
    - Dst: fdt_finish_reservemap
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:21,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:25,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:29,1
    - Dst: fdt_finish
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:33,1
    - Dst: fdt_open_into
      Src: /src/xen/xen/common/libfdt/fdt_empty_tree.c:37,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - bufsize
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 38
    functionName: fdt_create_empty_tree
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_empty_tree.c
    functionUses: 1
    functionsReached:
    - fdt_finish
    - fdt_open_into
    - fdt_finish_reservemap
    - fdt_create
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int fdt_create_empty_tree(void *buf, int bufsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop_namelen_w
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:21,1
    - Dst: memcpy
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - fdt
    - nodeoffset
    - name
    - namelen
    - idx
    - val
    - len
    argTypes:
    - void*
    - int
    - char*
    - int
    - uint32_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: fdt_setprop_inplace_namelen_partial
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 3
    functionsReached:
    - fdt_getprop_namelen_w
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset,\n\t\t\t\t\tconst
      char *name, int namelen,\n\t\t\t\t\tuint32_t idx, const void *val,\n\t\t\t\t\tint
      len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:39,1
    - Dst: fdt_setprop_inplace_namelen_partial
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:46,1
    - Dst: strlen
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - fdt
    - nodeoffset
    - name
    - val
    - len
    argTypes:
    - void*
    - int
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: fdt_setprop_inplace
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 4
    functionsReached:
    - fdt_setprop_inplace_namelen_partial
    - strlen
    - fdt_getprop
    linkageType: ''
    returnType: int
    signature: "int fdt_setprop_inplace(void *fdt, int nodeoffset, const char *name,\n\t\t\tconst
      void *val, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - start
    - len
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: fdt_nop_region_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 0
    functionsReached:
    - cpu_to_fdt32
    linkageType: ''
    returnType: void
    signature: void fdt_nop_region_(void *start, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property_w
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:64,1
    - Dst: fdt_nop_region_
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fdt
    - nodeoffset
    - name
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: fdt_nop_property
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 0
    functionsReached:
    - fdt_get_property_w
    - fdt_nop_region_
    linkageType: ''
    returnType: int
    signature: int fdt_nop_property(void *fdt, int nodeoffset, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - fdt
    - offset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: fdt_node_end_offset_
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 1
    functionsReached:
    - fdt_next_node
    linkageType: ''
    returnType: int
    signature: int fdt_node_end_offset_(void *fdt, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_node_end_offset_
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:87,1
    - Dst: fdt_nop_region_
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:91,1
    - Dst: fdt_offset_ptr_w
      Src: /src/xen/xen/common/libfdt/fdt_wip.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fdt
    - nodeoffset
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 7
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: fdt_nop_node
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_wip.c
    functionUses: 1
    functionsReached:
    - fdt_offset_ptr_w
    - fdt_node_end_offset_
    - fdt_nop_region_
    linkageType: ''
    returnType: int
    signature: int fdt_nop_node(void *fdt, int nodeoffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: FDT_ERRTABENT
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_strerror.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FDT_ERRTABENT(val)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - errval
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: fdt_strerror
    functionSourceFile: /src/xen/xen/common/libfdt/fdt_strerror.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fdt_strerror(int errval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: pr_err
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pr_err(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/ubsan/ubsan.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - location
    argTypes:
    - struct source_location*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: was_reported
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    linkageType: ''
    returnType: bool
    signature: bool was_reported(struct source_location *location)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prefix
    - loc
    argTypes:
    - char*
    - struct source_location*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: print_source_location
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - pr_err
    linkageType: ''
    returnType: void
    signature: "void print_source_location(const char *prefix,\n\t\t\t\tstruct source_location
      *loc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: was_reported
      Src: /src/xen/xen/common/ubsan/ubsan.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - loc
    argTypes:
    - struct source_location*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: suppress_report
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - was_reported
    linkageType: ''
    returnType: bool
    signature: bool suppress_report(struct source_location *loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct type_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: type_is_int
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool type_is_int(struct type_descriptor *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN_ON
      Src: /src/xen/xen/common/ubsan/ubsan.c:81,1
    - Dst: type_is_int
      Src: /src/xen/xen/common/ubsan/ubsan.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct type_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: type_is_signed
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - type_is_int
    - WARN_ON
    linkageType: ''
    returnType: bool
    signature: bool type_is_signed(struct type_descriptor *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct type_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: type_bit_width
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned type_bit_width(struct type_descriptor *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:93,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/ubsan/ubsan.c:95,1
    - Dst: type_is_int
      Src: /src/xen/xen/common/ubsan/ubsan.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct type_descriptor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: is_inline_int
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - type_is_int
    - type_bit_width
    - WARN_ON
    linkageType: ''
    returnType: bool
    signature: bool is_inline_int(struct type_descriptor *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_inline_int
      Src: /src/xen/xen/common/ubsan/ubsan.c:102,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:103,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - val
    argTypes:
    - struct type_descriptor*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: get_signed_val
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - is_inline_int
    - type_bit_width
    linkageType: ''
    returnType: s_max
    signature: s_max get_signed_val(struct type_descriptor *type, unsigned long val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_is_signed
      Src: /src/xen/xen/common/ubsan/ubsan.c:115,1
    - Dst: get_signed_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - type
    - val
    argTypes:
    - struct type_descriptor*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: val_is_negative
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - get_signed_val
    - type_is_signed
    linkageType: ''
    returnType: bool
    signature: bool val_is_negative(struct type_descriptor *type, unsigned long val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_inline_int
      Src: /src/xen/xen/common/ubsan/ubsan.c:120,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - type
    - val
    argTypes:
    - struct type_descriptor*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: get_unsigned_val
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - is_inline_int
    - type_bit_width
    linkageType: ''
    returnType: u_max
    signature: u_max get_unsigned_val(struct type_descriptor *type, unsigned long
      val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type_is_int
      Src: /src/xen/xen/common/ubsan/ubsan.c:132,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:133,1
    - Dst: get_unsigned_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:135,1
    - Dst: scnprintf
      Src: /src/xen/xen/common/ubsan/ubsan.c:137,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/ubsan/ubsan.c:143,1
    - Dst: type_is_signed
      Src: /src/xen/xen/common/ubsan/ubsan.c:145,1
    - Dst: scnprintf
      Src: /src/xen/xen/common/ubsan/ubsan.c:146,1
    - Dst: get_signed_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:147,1
    - Dst: scnprintf
      Src: /src/xen/xen/common/ubsan/ubsan.c:149,1
    - Dst: get_unsigned_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - str
    - size
    - type
    - value
    argTypes:
    - char*
    - size_t
    - struct type_descriptor*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 129
    functionDepth: 7
    functionLinenumber: 129
    functionLinenumberEnd: 154
    functionName: val_to_string
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - scnprintf
    - type_is_int
    - get_signed_val
    - type_is_signed
    - get_unsigned_val
    - type_bit_width
    - WARN_ON
    linkageType: ''
    returnType: void
    signature: "void val_to_string(char *str, size_t size, struct type_descriptor
      *type,\n\tunsigned long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loc
    argTypes:
    - struct source_location*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: location_is_valid
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool location_is_valid(struct source_location *loc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/ubsan/ubsan.c:167,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:169,1
    - Dst: print_source_location
      Src: /src/xen/xen/common/ubsan/ubsan.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - location
    - flags
    argTypes:
    - struct source_location*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: ubsan_prologue
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - pr_err
    - print_source_location
    linkageType: ''
    returnType: void
    signature: "void ubsan_prologue(struct source_location *location,\n\t\t\tunsigned
      long *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dump_stack
      Src: /src/xen/xen/common/ubsan/ubsan.c:176,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:177,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/ubsan/ubsan.c:179,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/ubsan/ubsan.c:182,1
    - Dst: panic
      Src: /src/xen/xen/common/ubsan/ubsan.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: ubsan_epilogue
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - dump_stack
    - panic
    - spin_unlock_irqrestore
    - IS_ENABLED
    - pr_err
    linkageType: ''
    returnType: void
    signature: void ubsan_epilogue(unsigned long *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:195,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:198,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:200,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:201,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:202,1
    - Dst: type_is_signed
      Src: /src/xen/xen/common/ubsan/ubsan.c:203,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:204,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - data
    - lhs
    - rhs
    - op
    argTypes:
    - struct overflow_data*
    - unsigned long
    - unsigned long
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 186
    functionDepth: 8
    functionLinenumber: 186
    functionLinenumberEnd: 211
    functionName: handle_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - type_is_signed
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void handle_overflow(struct overflow_data *data, unsigned long lhs,\n\t\t\tunsigned
      long rhs, char op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_overflow
      Src: /src/xen/xen/common/ubsan/ubsan.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - lhs
    - rhs
    argTypes:
    - struct overflow_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 9
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: __ubsan_handle_add_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - handle_overflow
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_add_overflow(struct overflow_data *data,\n\t\t\t\tunsigned
      long lhs,\n\t\t\t\tunsigned long rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_overflow
      Src: /src/xen/xen/common/ubsan/ubsan.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - lhs
    - rhs
    argTypes:
    - struct overflow_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: __ubsan_handle_sub_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - handle_overflow
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_sub_overflow(struct overflow_data *data,\n\t\t\t\tunsigned
      long lhs,\n\t\t\t\tunsigned long rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_overflow
      Src: /src/xen/xen/common/ubsan/ubsan.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - lhs
    - rhs
    argTypes:
    - struct overflow_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: __ubsan_handle_mul_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - handle_overflow
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_mul_overflow(struct overflow_data *data,\n\t\t\t\tunsigned
      long lhs,\n\t\t\t\tunsigned long rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:244,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:247,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:249,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:251,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - old_val
    argTypes:
    - struct overflow_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 238
    functionDepth: 8
    functionLinenumber: 238
    functionLinenumberEnd: 255
    functionName: __ubsan_handle_negate_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_negate_overflow(struct overflow_data *data,\n\t\t\t\tunsigned
      long old_val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:266,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:269,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:271,1
    - Dst: type_is_signed
      Src: /src/xen/xen/common/ubsan/ubsan.c:273,1
    - Dst: get_signed_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:273,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:274,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:277,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - data
    - lhs
    - rhs
    argTypes:
    - struct overflow_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 8
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: __ubsan_handle_divrem_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - get_signed_val
    - type_is_signed
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_divrem_overflow(struct overflow_data *data,\n\t\t\t\tunsigned
      long lhs,\n\t\t\t\tunsigned long rhs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:287,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:290,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:292,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct type_mismatch_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 297
    functionName: handle_null_ptr_deref
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - suppress_report
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: void handle_null_ptr_deref(struct type_mismatch_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:304,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:307,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:309,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:312,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct type_mismatch_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 315
    functionName: handle_missaligned_access
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - suppress_report
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void handle_missaligned_access(struct type_mismatch_data *data,\n\t\t\t\tunsigned
      long ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:322,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:325,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:326,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:329,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct type_mismatch_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: handle_object_size_mismatch
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - suppress_report
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void handle_object_size_mismatch(struct type_mismatch_data *data,\n\t\t\t\t\tunsigned
      long ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: handle_null_ptr_deref
      Src: /src/xen/xen/common/ubsan/ubsan.c:338,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/ubsan/ubsan.c:339,1
    - Dst: handle_missaligned_access
      Src: /src/xen/xen/common/ubsan/ubsan.c:340,1
    - Dst: handle_object_size_mismatch
      Src: /src/xen/xen/common/ubsan/ubsan.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct type_mismatch_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: __ubsan_handle_type_mismatch
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - handle_null_ptr_deref
    - IS_ALIGNED
    - handle_object_size_mismatch
    - handle_missaligned_access
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,\n\t\t\t\tunsigned
      long ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:360,1
    - Dst: __ubsan_handle_type_mismatch
      Src: /src/xen/xen/common/ubsan/ubsan.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - ptr
    argTypes:
    - struct type_mismatch_data_v1*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: __ubsan_handle_type_mismatch_v1
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - __ubsan_handle_type_mismatch
    - suppress_report
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_type_mismatch_v1(struct type_mismatch_data_v1
      *data,\n\t\t\t\tunsigned long ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:370,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:373,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:375,1
    - Dst: location_is_valid
      Src: /src/xen/xen/common/ubsan/ubsan.c:378,1
    - Dst: print_source_location
      Src: /src/xen/xen/common/ubsan/ubsan.c:379,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct nonnull_arg_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: __ubsan_handle_nonnull_arg
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - location_is_valid
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - print_source_location
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: void __ubsan_handle_nonnull_arg(struct nonnull_arg_data *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:389,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:392,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:394,1
    - Dst: location_is_valid
      Src: /src/xen/xen/common/ubsan/ubsan.c:396,1
    - Dst: print_source_location
      Src: /src/xen/xen/common/ubsan/ubsan.c:397,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct nonnull_return_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 401
    functionName: __ubsan_handle_nonnull_return
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - location_is_valid
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - print_source_location
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: void __ubsan_handle_nonnull_return(struct nonnull_return_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:410,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:413,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:415,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:416,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - bound
    argTypes:
    - struct vla_bound_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 8
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: __ubsan_handle_vla_bound_not_positive
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_vla_bound_not_positive(struct vla_bound_data *data,\n\t\t\t\t\tunsigned
      long bound)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:428,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:431,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:433,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:434,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - index
    argTypes:
    - struct out_of_bounds_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 422
    functionDepth: 8
    functionLinenumber: 422
    functionLinenumberEnd: 437
    functionName: __ubsan_handle_out_of_bounds
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_out_of_bounds(struct out_of_bounds_data *data,\n\t\t\t\tunsigned
      long index)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:449,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:452,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:454,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:455,1
    - Dst: val_is_negative
      Src: /src/xen/xen/common/ubsan/ubsan.c:457,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:458,1
    - Dst: get_unsigned_val
      Src: /src/xen/xen/common/ubsan/ubsan.c:460,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:461,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:462,1
    - Dst: type_bit_width
      Src: /src/xen/xen/common/ubsan/ubsan.c:464,1
    - Dst: val_is_negative
      Src: /src/xen/xen/common/ubsan/ubsan.c:466,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:467,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:470,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - lhs
    - rhs
    argTypes:
    - struct shift_out_of_bounds_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 440
    functionDepth: 8
    functionLinenumber: 440
    functionLinenumberEnd: 476
    functionName: __ubsan_handle_shift_out_of_bounds
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - val_is_negative
    - ubsan_epilogue
    - get_unsigned_val
    - suppress_report
    - pr_err
    - type_bit_width
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data
      *data,\n\t\t\t\t\tunsigned long lhs, unsigned long rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:485,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:486,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:487,1
    - Dst: panic
      Src: /src/xen/xen/common/ubsan/ubsan.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct unreachable_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 489
    functionName: __ubsan_handle_builtin_unreachable
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - panic
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: void __ubsan_handle_builtin_unreachable(struct unreachable_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:498,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:501,1
    - Dst: val_to_string
      Src: /src/xen/xen/common/ubsan/ubsan.c:503,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:505,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - val
    argTypes:
    - struct invalid_value_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 492
    functionDepth: 8
    functionLinenumber: 492
    functionLinenumberEnd: 509
    functionName: __ubsan_handle_load_invalid_value
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - val_to_string
    - ubsan_epilogue
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_load_invalid_value(struct invalid_value_data *data,\n\t\t\t\tunsigned
      long val)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:517,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:520,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:523,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:525,1
    - Dst: _p
      Src: /src/xen/xen/common/ubsan/ubsan.c:526,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:528,1
    - Dst: _p
      Src: /src/xen/xen/common/ubsan/ubsan.c:529,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:531,1
    - Dst: _p
      Src: /src/xen/xen/common/ubsan/ubsan.c:533,1
    - Dst: _p
      Src: /src/xen/xen/common/ubsan/ubsan.c:533,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:535,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - data
    - base
    - result
    argTypes:
    - struct pointer_overflow_data*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 536
    functionName: __ubsan_handle_pointer_overflow
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - ubsan_epilogue
    - _p
    - suppress_report
    - pr_err
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_pointer_overflow(struct pointer_overflow_data
      *data,\n\t\t\t\tunsigned long base, unsigned long result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:543,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:546,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:554,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:556,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct invalid_builtin_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 559
    functionName: __ubsan_handle_invalid_builtin
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - suppress_report
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: void __ubsan_handle_invalid_builtin(struct invalid_builtin_data *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: suppress_report
      Src: /src/xen/xen/common/ubsan/ubsan.c:566,1
    - Dst: ubsan_prologue
      Src: /src/xen/xen/common/ubsan/ubsan.c:569,1
    - Dst: pr_err
      Src: /src/xen/xen/common/ubsan/ubsan.c:571,1
    - Dst: ubsan_epilogue
      Src: /src/xen/xen/common/ubsan/ubsan.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - val
    argTypes:
    - struct function_type_mismatch_data*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 575
    functionName: __ubsan_handle_function_type_mismatch
    functionSourceFile: /src/xen/xen/common/ubsan/ubsan.c
    functionUses: 0
    functionsReached:
    - suppress_report
    - pr_err
    - ubsan_epilogue
    - ubsan_prologue
    linkageType: ''
    returnType: void
    signature: "void __ubsan_handle_function_type_mismatch(\n\tstruct function_type_mismatch_data
      *data, unsigned long val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/efi/ebmalloc.c:32,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/ebmalloc.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: ebmalloc
    functionSourceFile: /src/xen/xen/common/efi/ebmalloc.c
    functionUses: 2
    functionsReached:
    - ROUNDUP
    - blexit
    linkageType: ''
    returnType: void
    signature: void *ebmalloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/efi/ebmalloc.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: efi_boot_mem_unused
    functionSourceFile: /src/xen/xen/common/efi/ebmalloc.c
    functionUses: 3
    functionsReached:
    - PAGE_ALIGN
    linkageType: ''
    returnType: bool
    signature: bool efi_boot_mem_unused(unsigned long *start, unsigned long *end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_boot_mem_unused
      Src: /src/xen/xen/common/efi/ebmalloc.c:59,1
    - Dst: destroy_xen_mappings
      Src: /src/xen/xen/common/efi/ebmalloc.c:62,1
    - Dst: init_xenheap_pages
      Src: /src/xen/xen/common/efi/ebmalloc.c:70,1
    - Dst: __pa
      Src: /src/xen/xen/common/efi/ebmalloc.c:70,1
    - Dst: __pa
      Src: /src/xen/xen/common/efi/ebmalloc.c:70,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/ebmalloc.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: free_ebmalloc_unused_mem
    functionSourceFile: /src/xen/xen/common/efi/ebmalloc.c
    functionUses: 0
    functionsReached:
    - __pa
    - efi_boot_mem_unused
    - init_xenheap_pages
    - destroy_xen_mappings
    - printk
    linkageType: ''
    returnType: void
    signature: void free_ebmalloc_unused_mem(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - sect
    - name
    argTypes:
    - struct section_header*
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 53
    functionName: pe_name_compare
    functionSourceFile: /src/xen/xen/common/efi/pe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool pe_name_compare(const struct section_header *sect,\n                                   const
      CHAR16 *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pe_name_compare
      Src: /src/xen/xen/common/efi/pe.c:86,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/pe.c:93,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - image
    - image_size
    - section_name
    - size_out
    argTypes:
    - void*
    - UINTN
    - CHAR16*
    - UINTN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 102
    functionName: pe_find_section
    functionSourceFile: /src/xen/xen/common/efi/pe.c
    functionUses: 0
    functionsReached:
    - blexit
    - pe_name_compare
    linkageType: ''
    returnType: void
    signature: "void *__init pe_find_section(const void *image, const UINTN image_size,\n
      \                                  const CHAR16 *section_name, UINTN *size_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/common/efi/runtime.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feature
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: efi_enabled
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 15
    functionsReached:
    - test_bit
    linkageType: ''
    returnType: bool
    signature: bool efi_enabled(unsigned int feature)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/common/efi/runtime.c:93,1
    - Dst: read_cr3
      Src: /src/xen/xen/common/efi/runtime.c:96,1
    - Dst: save_fpu_enable
      Src: /src/xen/xen/common/efi/runtime.c:97,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/efi/runtime.c:101,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/efi/runtime.c:103,1
    - Dst: irq_enter
      Src: /src/xen/xen/common/efi/runtime.c:106,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/common/efi/runtime.c:108,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/efi/runtime.c:108,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/efi/runtime.c:112,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/efi/runtime.c:112,1
    - Dst: lgdt
      Src: /src/xen/xen/common/efi/runtime.c:116,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/common/efi/runtime.c:119,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/efi/runtime.c:119,1
    - Dst: read_cr4
      Src: /src/xen/xen/common/efi/runtime.c:119,1
    - Dst: rdmsrl
      Src: /src/xen/xen/common/efi/runtime.c:130,1
    - Dst: wrmsrl
      Src: /src/xen/xen/common/efi/runtime.c:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 135
    functionName: efi_rs_enter
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached:
    - read_cr3
    - is_pv_vcpu
    - switch_cr3_cr4
    - is_idle_vcpu
    - irq_enter
    - mfn_to_maddr
    - smp_processor_id
    - read_cr4
    - rdmsrl
    - spin_lock
    - lgdt
    - wrmsrl
    - per_cpu
    - mfn_eq
    - save_fpu_enable
    linkageType: ''
    returnType: struct efi_rs_state
    signature: struct efi_rs_state efi_rs_enter(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wrmsrl
      Src: /src/xen/xen/common/efi/runtime.c:145,1
    - Dst: switch_cr3_cr4
      Src: /src/xen/xen/common/efi/runtime.c:147,1
    - Dst: read_cr4
      Src: /src/xen/xen/common/efi/runtime.c:147,1
    - Dst: is_pv_vcpu
      Src: /src/xen/xen/common/efi/runtime.c:148,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/efi/runtime.c:148,1
    - Dst: GDT_VIRT_START
      Src: /src/xen/xen/common/efi/runtime.c:152,1
    - Dst: lgdt
      Src: /src/xen/xen/common/efi/runtime.c:155,1
    - Dst: irq_exit
      Src: /src/xen/xen/common/efi/runtime.c:157,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/efi/runtime.c:159,1
    - Dst: vcpu_restore_fpu_nonlazy
      Src: /src/xen/xen/common/efi/runtime.c:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct efi_rs_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 137
    functionDepth: 5
    functionLinenumber: 137
    functionLinenumberEnd: 161
    functionName: efi_rs_leave
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached:
    - is_pv_vcpu
    - spin_unlock
    - irq_exit
    - switch_cr3_cr4
    - is_idle_vcpu
    - read_cr4
    - lgdt
    - wrmsrl
    - vcpu_restore_fpu_nonlazy
    - GDT_VIRT_START
    linkageType: ''
    returnType: void
    signature: void efi_rs_leave(struct efi_rs_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mfn_eq
      Src: /src/xen/xen/common/efi/runtime.c:165,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/efi/runtime.c:166,1
    - Dst: read_cr3
      Src: /src/xen/xen/common/efi/runtime.c:167,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/efi/runtime.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: efi_rs_using_pgtables
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 1
    functionsReached:
    - smp_processor_id
    - mfn_to_maddr
    - read_cr3
    - mfn_eq
    linkageType: ''
    returnType: bool
    signature: bool efi_rs_using_pgtables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:174,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/efi/runtime.c:179,1
    - Dst: GetTime
      Src: /src/xen/xen/common/efi/runtime.c:180,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/efi/runtime.c:181,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:182,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/runtime.c:184,1
    - Dst: mktime
      Src: /src/xen/xen/common/efi/runtime.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: efi_get_time
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 2
    functionsReached:
    - EFI_ERROR
    - efi_rs_enter
    - efi_rs_leave
    - spin_lock_irqsave
    - GetTime
    - spin_unlock_irqrestore
    - mktime
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long efi_get_time(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:194,1
    - Dst: ResetSystem
      Src: /src/xen/xen/common/efi/runtime.c:198,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:200,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/runtime.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - warm
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 7
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: efi_reset_system
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 1
    functionsReached:
    - ResetSystem
    - efi_rs_leave
    - printk
    - efi_rs_enter
    linkageType: ''
    returnType: void
    signature: void efi_reset_system(bool warm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - CHAR16*
    - CHAR16
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: wmemchr
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *wmemchr(const CHAR16 *s, CHAR16 c, UINTN n)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:224,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:234,1
    - Dst: __pa
      Src: /src/xen/xen/common/efi/runtime.c:240,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/efi/runtime.c:246,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/efi/runtime.c:247,1
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/efi/runtime.c:254,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/common/efi/runtime.c:259,1
    - Dst: __pa
      Src: /src/xen/xen/common/efi/runtime.c:298,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 2
    argNames:
    - idx
    - info
    argTypes:
    - uint32_t
    - union xenpf_efi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 317
    functionName: efi_get_info
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 1
    functionsReached:
    - __copy_to_guest_offset
    - __pa
    - efi_enabled
    - guest_handle_okay
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_cast
    linkageType: ''
    returnType: int
    signature: int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/efi/runtime.c:319,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/efi/runtime.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: gwstrlen
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached:
    - copy_from_guest_offset
    - XEN_GUEST_HANDLE_PARAM
    linkageType: ''
    returnType: long
    signature: long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:341,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:342,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:343,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:344,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:345,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:346,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:347,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:348,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - time
    argTypes:
    - struct xenpf_efi_time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 352
    functionName: cast_time
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached:
    - chk_fld
    linkageType: ''
    returnType: EFI_TIME
    signature: EFI_TIME *cast_time(struct xenpf_efi_time *time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - F
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 341
    functionName: chk_fld
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_fld(F, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:360,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:361,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:362,1
    - Dst: chk_fld
      Src: /src/xen/xen/common/efi/runtime.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - guid
    argTypes:
    - struct xenpf_efi_guid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: cast_guid
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 0
    functionsReached:
    - chk_fld
    linkageType: ''
    returnType: EFI_GUID
    signature: EFI_GUID *cast_guid(struct xenpf_efi_guid *guid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: chk_fld
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: chk_fld(n)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:375,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:378,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:390,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/efi/runtime.c:393,1
    - Dst: GetTime
      Src: /src/xen/xen/common/efi/runtime.c:394,1
    - Dst: cast_time
      Src: /src/xen/xen/common/efi/runtime.c:394,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/efi/runtime.c:395,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:396,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/runtime.c:398,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:412,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/efi/runtime.c:415,1
    - Dst: SetTime
      Src: /src/xen/xen/common/efi/runtime.c:416,1
    - Dst: cast_time
      Src: /src/xen/xen/common/efi/runtime.c:416,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/efi/runtime.c:417,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:418,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:428,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/efi/runtime.c:431,1
    - Dst: GetWakeupTime
      Src: /src/xen/xen/common/efi/runtime.c:432,1
    - Dst: cast_time
      Src: /src/xen/xen/common/efi/runtime.c:433,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/efi/runtime.c:434,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:435,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/runtime.c:437,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:452,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/efi/runtime.c:455,1
    - Dst: SetWakeupTime
      Src: /src/xen/xen/common/efi/runtime.c:456,1
    - Dst: cast_time
      Src: /src/xen/xen/common/efi/runtime.c:461,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/efi/runtime.c:462,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:463,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:472,1
    - Dst: GetNextHighMonotonicCount
      Src: /src/xen/xen/common/efi/runtime.c:474,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:477,1
    - Dst: gwstrlen
      Src: /src/xen/xen/common/efi/runtime.c:490,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/efi/runtime.c:490,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/efi/runtime.c:493,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/efi/runtime.c:496,1
    - Dst: wmemchr
      Src: /src/xen/xen/common/efi/runtime.c:497,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:499,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/efi/runtime.c:506,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:509,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:516,1
    - Dst: GetVariable
      Src: /src/xen/xen/common/efi/runtime.c:519,1
    - Dst: cast_guid
      Src: /src/xen/xen/common/efi/runtime.c:520,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:522,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/runtime.c:524,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/efi/runtime.c:525,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:532,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:533,1
    - Dst: gwstrlen
      Src: /src/xen/xen/common/efi/runtime.c:543,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/efi/runtime.c:543,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/efi/runtime.c:546,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/efi/runtime.c:549,1
    - Dst: wmemchr
      Src: /src/xen/xen/common/efi/runtime.c:550,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:552,1
    - Dst: xvmalloc_array
      Src: /src/xen/xen/common/efi/runtime.c:556,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/efi/runtime.c:559,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:564,1
    - Dst: SetVariable
      Src: /src/xen/xen/common/efi/runtime.c:566,1
    - Dst: cast_guid
      Src: /src/xen/xen/common/efi/runtime.c:567,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:571,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:574,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:575,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/common/efi/runtime.c:591,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/efi/runtime.c:594,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:597,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:601,1
    - Dst: GetNextVariableName
      Src: /src/xen/xen/common/efi/runtime.c:604,1
    - Dst: cast_guid
      Src: /src/xen/xen/common/efi/runtime.c:606,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:607,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/runtime.c:613,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/efi/runtime.c:614,1
    - Dst: xvfree
      Src: /src/xen/xen/common/efi/runtime.c:622,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:667,1
    - Dst: efi_rs_enter
      Src: /src/xen/xen/common/efi/runtime.c:670,1
    - Dst: QueryVariableInfo
      Src: /src/xen/xen/common/efi/runtime.c:673,1
    - Dst: efi_rs_leave
      Src: /src/xen/xen/common/efi/runtime.c:676,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/runtime.c:690,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 200
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xenpf_efi_runtime_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 368
    functionDepth: 7
    functionLinenumber: 368
    functionLinenumberEnd: 704
    functionName: efi_runtime_call
    functionSourceFile: /src/xen/xen/common/efi/runtime.c
    functionUses: 1
    functionsReached:
    - efi_rs_enter
    - copy_from_guest
    - xvzalloc_array
    - spin_unlock_irqrestore
    - gwstrlen
    - GetNextVariableName
    - SetTime
    - efi_enabled
    - GetTime
    - cast_guid
    - SetVariable
    - copy_to_guest
    - guest_handle_cast
    - xvmalloc_array
    - EFI_ERROR
    - wmemchr
    - GetVariable
    - GetWakeupTime
    - GetNextHighMonotonicCount
    - __copy_from_guest
    - cast_time
    - spin_lock_irqsave
    - efi_rs_leave
    - xvfree
    - __copy_to_guest
    - SetWakeupTime
    - QueryVariableInfo
    linkageType: ''
    returnType: int
    signature: int efi_runtime_call(struct xenpf_efi_runtime_call *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - feature
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 8
    functionName: efi_enabled
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool efi_enabled(unsigned int feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: efi_rs_using_pgtables
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool efi_rs_using_pgtables(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/common/efi/common-stub.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: efi_get_time
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 2
    functionsReached:
    - BUG
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long efi_get_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - warm
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: efi_reset_system
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void efi_reset_system(bool warm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - idx
    - info
    argTypes:
    - uint32_t
    - union xenpf_efi_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: efi_get_info
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xenpf_efi_runtime_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: efi_runtime_call
    functionSourceFile: /src/xen/xen/common/efi/common-stub.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int efi_runtime_call(struct xenpf_efi_runtime_call *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - major
    - ','
    - minor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: EFI_REVISION
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EFI_REVISION(major, minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OutputString
      Src: /src/xen/xen/common/efi/boot.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: PrintStr
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 8
    functionsReached:
    - OutputString
    linkageType: ''
    returnType: void
    signature: void PrintStr(const CHAR16 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OutputString
      Src: /src/xen/xen/common/efi/boot.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: PrintErr
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 2
    functionsReached:
    - OutputString
    linkageType: ''
    returnType: void
    signature: void PrintErr(const CHAR16 *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatDec
      Src: /src/xen/xen/common/efi/boot.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - Val
    - Buffer
    argTypes:
    - UINT64
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: FormatDec
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - FormatDec
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *__init FormatDec(UINT64 Val, CHAR16 *Buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatHex
      Src: /src/xen/xen/common/efi/boot.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - Val
    - Width
    - Buffer
    argTypes:
    - UINT64
    - UINTN
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: FormatHex
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - FormatHex
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *__init FormatHex(UINT64 Val, UINTN Width, CHAR16 *Buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatDec
      Src: /src/xen/xen/common/efi/boot.c:207,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:210,1
    - Dst: FormatHex
      Src: /src/xen/xen/common/efi/boot.c:211,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - Val
    - Width
    argTypes:
    - UINT64
    - INTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: DisplayUint
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - FormatDec
    - FormatHex
    - PrintStr
    linkageType: ''
    returnType: void
    signature: void DisplayUint(UINT64 Val, INTN Width)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: wstrlen
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t wstrlen(const CHAR16 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - CHAR16*
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: wstrcpy
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *__init wstrcpy(CHAR16 *d, const CHAR16 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - CHAR16*
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: wstrcmp
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wstrcmp(const CHAR16 *s1, const CHAR16 *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - CHAR16*
    - CHAR16*
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: wstrncmp
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int wstrncmp(const CHAR16 *s1, const CHAR16 *s2, UINTN n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:262,1
    - Dst: strlen
      Src: /src/xen/xen/common/efi/boot.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - union string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: s2w
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 3
    functionsReached:
    - strlen
    - AllocatePool
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *__init s2w(union string *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - union string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: w2s
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *__init w2s(const union string *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/common/efi/boot.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - guid1
    - guid2
    argTypes:
    - EFI_GUID*
    - EFI_GUID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: match_guid
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:300,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:301,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:345,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:346,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - mesg
    - ErrCode
    argTypes:
    - CHAR16*
    - EFI_STATUS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 351
    functionName: PrintErrMesg
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 3
    functionsReached:
    - PrintErr
    - DisplayUint
    - blexit
    linkageType: ''
    returnType: void
    signature: void PrintErrMesg(const CHAR16 *mesg, EFI_STATUS ErrCode)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: wmemchr
      Src: /src/xen/xen/common/efi/boot.c:369,1
    - Dst: wmemchr
      Src: /src/xen/xen/common/efi/boot.c:387,1
    - Dst: wstrcmp
      Src: /src/xen/xen/common/efi/boot.c:425,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 6
    argNames:
    - argc
    - argv
    - data
    - size
    - offset
    - options
    argTypes:
    - unsigned int
    - CHAR16**
    - VOID*
    - UINTN
    - UINTN*
    - CHAR16**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 444
    functionName: get_argv
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - wmemchr
    - wstrcmp
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int get_argv(unsigned int argc, CHAR16 **argv,\n                                    VOID
      *data, UINTN size, UINTN *offset,\n                                    CHAR16
      **options)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:464,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/common/efi/boot.c:472,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:474,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:475,1
    - Dst: EFI_FILE_IO_INTERFACE*::OpenVolume
      Src: /src/xen/xen/common/efi/boot.c:477,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:480,1
    - Dst: DevicePathType
      Src: /src/xen/xen/common/efi/boot.c:484,1
    - Dst: DevicePathNodeLength
      Src: /src/xen/xen/common/efi/boot.c:485,1
    - Dst: DevicePathType
      Src: /src/xen/xen/common/efi/boot.c:489,1
    - Dst: DevicePathSubType
      Src: /src/xen/xen/common/efi/boot.c:490,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:497,1
    - Dst: EFI_FILE_HANDLE::Open
      Src: /src/xen/xen/common/efi/boot.c:505,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:509,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:510,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/common/efi/boot.c:512,1
    - Dst: DevicePathNodeLength
      Src: /src/xen/xen/common/efi/boot.c:516,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:518,1
    - Dst: memcpy
      Src: /src/xen/xen/common/efi/boot.c:519,1
    - Dst: DevicePathNodeLength
      Src: /src/xen/xen/common/efi/boot.c:519,1
    - Dst: DevicePathNodeLength
      Src: /src/xen/xen/common/efi/boot.c:520,1
    - Dst: EFI_FILE_HANDLE::Open
      Src: /src/xen/xen/common/efi/boot.c:533,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:536,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:537,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/common/efi/boot.c:539,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - loaded_image
    - leaf
    argTypes:
    - EFI_LOADED_IMAGE*
    - CHAR16**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 548
    functionName: get_parent_handle
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_FILE_IO_INTERFACE*::OpenVolume
    - EFI_ERROR
    - PrintStr
    - PrintErr
    - DevicePathNodeLength
    - EFI_FILE_HANDLE::Open
    - blexit
    - EFI_FILE_HANDLE::Close
    - DevicePathType
    - DevicePathSubType
    - memcpy
    - PrintErrMesg
    - HandleProtocol
    linkageType: ''
    returnType: EFI_FILE_HANDLE
    signature: "EFI_FILE_HANDLE get_parent_handle(const EFI_LOADED_IMAGE *loaded_image,\n
      \                                               CHAR16 **leaf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fn
    argTypes:
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 565
    functionName: point_tail
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CHAR16
    signature: CHAR16 *__init point_tail(CHAR16 *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/xen/xen/common/efi/boot.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: split_string
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 2
    functionsReached:
    - isspace
    linkageType: ''
    returnType: char
    signature: char * __init split_string(char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/efi/boot.c:588,1
    - Dst: strlen
      Src: /src/xen/xen/common/efi/boot.c:588,1
    - Dst: strncmp
      Src: /src/xen/xen/common/efi/boot.c:602,1
    - Dst: strncmp
      Src: /src/xen/xen/common/efi/boot.c:605,1
    - Dst: isspace
      Src: /src/xen/xen/common/efi/boot.c:609,1
    - Dst: strlen
      Src: /src/xen/xen/common/efi/boot.c:615,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 3
    argNames:
    - file
    - section
    - item
    argTypes:
    - struct file*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 618
    functionName: get_value
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 4
    functionsReached:
    - strncmp
    - strlen
    - isspace
    linkageType: ''
    returnType: char
    signature: "char *__init get_value(const struct file *file, const char *section,\n
      \                             const char *item)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/xen/xen/common/efi/boot.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - mask
    - bpp
    - pos
    - sz
    argTypes:
    - uint32_t
    - int
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 634
    functionName: set_color
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - max
    linkageType: ''
    returnType: int
    signature: "int set_color(uint32_t mask, int bpp,\n                                           uint8_t
      *pos, uint8_t *sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loaded_image
    argTypes:
    - EFI_LOADED_IMAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 640
    functionName: efi_check_dt_boot
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int efi_check_dt_boot(const EFI_LOADED_IMAGE *loaded_image)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - desc
    argTypes:
    - EFI_MEMORY_DESCRIPTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 680
    functionName: get_esrt_size
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_esrt_size(const EFI_MEMORY_DESCRIPTOR *desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetMemoryMap
      Src: /src/xen/xen/common/efi/boot.c:694,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:702,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:704,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:707,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:710,1
    - Dst: get_esrt_size
      Src: /src/xen/xen/common/efi/boot.c:723,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:730,1
    - Dst: memcpy
      Src: /src/xen/xen/common/efi/boot.c:734,1
    - Dst: InstallConfigurationTable
      Src: /src/xen/xen/common/efi/boot.c:735,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:738,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:739,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:743,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:747,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 1
    argNames:
    - SystemTable
    argTypes:
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 748
    functionName: efi_relocate_esrt
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - PrintErr
    - get_esrt_size
    - AllocatePool
    - GetMemoryMap
    - InstallConfigurationTable
    - FreePool
    - memcpy
    linkageType: ''
    returnType: void
    signature: void efi_relocate_esrt(EFI_SYSTEM_TABLE *SystemTable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:759,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:760,1
    - Dst: efi_arch_halt
      Src: /src/xen/xen/common/efi/boot.c:763,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:766,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:766,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:768,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:768,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:770,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:770,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:772,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:772,1
    - Dst: efi_arch_blexit
      Src: /src/xen/xen/common/efi/boot.c:774,1
    - Dst: Exit
      Src: /src/xen/xen/common/efi/boot.c:776,1
    - Dst: unreachable
      Src: /src/xen/xen/common/efi/boot.c:777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - CHAR16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 778
    functionName: blexit
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 15
    functionsReached:
    - unreachable
    - PFN_UP
    - PrintStr
    - efi_arch_blexit
    - Exit
    - efi_arch_halt
    - FreePages
    linkageType: ''
    returnType: void
    signature: void blexit(const CHAR16 *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:786,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:787,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:788,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:789,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:790,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:791,1
    - Dst: efi_arch_handle_module
      Src: /src/xen/xen/common/efi/boot.c:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - name
    - file
    - options
    argTypes:
    - CHAR16*
    - struct file*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 794
    functionName: handle_file_info
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - DisplayUint
    - efi_arch_handle_module
    - PrintStr
    linkageType: ''
    returnType: void
    signature: "void handle_file_info(const CHAR16 *name,\n                                    const
      struct file *file, const char *options)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:805,1
    - Dst: EFI_FILE_HANDLE::Open
      Src: /src/xen/xen/common/efi/boot.c:809,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:815,1
    - Dst: EFI_FILE_HANDLE::SetPosition
      Src: /src/xen/xen/common/efi/boot.c:819,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:820,1
    - Dst: EFI_FILE_HANDLE::GetPosition
      Src: /src/xen/xen/common/efi/boot.c:824,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:825,1
    - Dst: EFI_FILE_HANDLE::SetPosition
      Src: /src/xen/xen/common/efi/boot.c:829,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:830,1
    - Dst: min
      Src: /src/xen/xen/common/efi/boot.c:834,1
    - Dst: AllocatePages
      Src: /src/xen/xen/common/efi/boot.c:836,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:837,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:838,1
    - Dst: handle_file_info
      Src: /src/xen/xen/common/efi/boot.c:843,1
    - Dst: EFI_FILE_HANDLE::Read
      Src: /src/xen/xen/common/efi/boot.c:846,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:847,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:849,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/common/efi/boot.c:852,1
    - Dst: efi_arch_flush_dcache_area
      Src: /src/xen/xen/common/efi/boot.c:854,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/common/efi/boot.c:860,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:862,1
    - Dst: PrintErr
      Src: /src/xen/xen/common/efi/boot.c:863,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:864,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - dir_handle
    - name
    - file
    - options
    argTypes:
    - EFI_FILE_HANDLE
    - CHAR16*
    - struct file*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 867
    functionName: read_file
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 6
    functionsReached:
    - EFI_FILE_HANDLE::Read
    - EFI_ERROR
    - handle_file_info
    - PFN_UP
    - PrintErr
    - EFI_FILE_HANDLE::Open
    - AllocatePages
    - EFI_FILE_HANDLE::Close
    - efi_arch_flush_dcache_area
    - min
    - EFI_FILE_HANDLE::SetPosition
    - PrintErrMesg
    - EFI_FILE_HANDLE::GetPosition
    linkageType: ''
    returnType: bool
    signature: "bool read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,\n                             struct
      file *file, const char *options)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pe_find_section
      Src: /src/xen/xen/common/efi/boot.c:873,1
    - Dst: handle_file_info
      Src: /src/xen/xen/common/efi/boot.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - image
    - name
    - file
    - options
    argTypes:
    - EFI_LOADED_IMAGE*
    - CHAR16*
    - struct file*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 869
    functionDepth: 4
    functionLinenumber: 869
    functionLinenumberEnd: 884
    functionName: read_section
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 2
    functionsReached:
    - pe_find_section
    - handle_file_info
    linkageType: ''
    returnType: bool
    signature: "bool read_section(const EFI_LOADED_IMAGE *image,\n                                const
      CHAR16 *name, struct file *file,\n                                const char
      *options)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iscntrl
      Src: /src/xen/xen/common/efi/boot.c:893,1
    - Dst: isspace
      Src: /src/xen/xen/common/efi/boot.c:899,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:910,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 1
    argNames:
    - file
    argTypes:
    - struct file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 912
    functionName: pre_parse
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - iscntrl
    - isspace
    - PrintStr
    linkageType: ''
    returnType: void
    signature: void pre_parse(const struct file *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetVariable
      Src: /src/xen/xen/common/efi/boot.c:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 935
    functionName: init_secure_boot_mode
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - GetVariable
    linkageType: ''
    returnType: void
    signature: void init_secure_boot_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_secure_boot_mode
      Src: /src/xen/xen/common/efi/boot.c:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - ImageHandle
    - SystemTable
    argTypes:
    - EFI_HANDLE
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 953
    functionName: efi_init
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - init_secure_boot_mode
    linkageType: ''
    returnType: void
    signature: void efi_init(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QueryMode
      Src: /src/xen/xen/common/efi/boot.c:963,1
    - Dst: SetMode
      Src: /src/xen/xen/common/efi/boot.c:971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 972
    functionName: efi_console_set_mode
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - QueryMode
    - SetMode
    linkageType: ''
    returnType: void
    signature: void efi_console_set_mode(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LocateHandle
      Src: /src/xen/xen/common/efi/boot.c:984,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:986,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:987,1
    - Dst: LocateHandle
      Src: /src/xen/xen/common/efi/boot.c:988,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:990,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/common/efi/boot.c:994,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:995,1
    - Dst: EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
      Src: /src/xen/xen/common/efi/boot.c:997,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:998,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1005,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1006,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - gop_handle
    argTypes:
    - EFI_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1010
    functionName: efi_get_gop
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
    - EFI_ERROR
    - AllocatePool
    - LocateHandle
    - FreePool
    - HandleProtocol
    linkageType: ''
    returnType: EFI_GRAPHICS_OUTPUT_PROTOCOL
    signature: EFI_GRAPHICS_OUTPUT_PROTOCOL *efi_get_gop(EFI_HANDLE *gop_handle)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
      Src: /src/xen/xen/common/efi/boot.c:1024,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1025,1
    - Dst: hweight32
      Src: /src/xen/xen/common/efi/boot.c:1030,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 4
    argNames:
    - gop
    - cols
    - rows
    - depth
    argTypes:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*
    - UINTN
    - UINTN
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1059
    functionName: efi_find_gop_mode
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
    - hweight32
    - EFI_ERROR
    linkageType: ''
    returnType: UINTN
    signature: "UINTN efi_find_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,\n                                      UINTN
      cols, UINTN rows, UINTN depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1072,1
    - Dst: LocateProtocol
      Src: /src/xen/xen/common/efi/boot.c:1072,1
    - Dst: SHIM_IMAGE_LOADER*::LoadImage
      Src: /src/xen/xen/common/efi/boot.c:1075,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1078,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1087,1
    - Dst: SHIM_IMAGE_LOADER*::UnloadImage
      Src: /src/xen/xen/common/efi/boot.c:1088,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1093,1
    - Dst: LocateProtocol
      Src: /src/xen/xen/common/efi/boot.c:1093,1
    - Dst: EFI_SHIM_LOCK_PROTOCOL*::Verify
      Src: /src/xen/xen/common/efi/boot.c:1095,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1100,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 1
    argNames:
    - ImageHandle
    argTypes:
    - EFI_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1105
    functionName: efi_verify_kernel
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - EFI_ERROR
    - EFI_SHIM_LOCK_PROTOCOL*::Verify
    - PrintStr
    - blexit
    - SHIM_IMAGE_LOADER*::LoadImage
    - LocateProtocol
    - SHIM_IMAGE_LOADER*::UnloadImage
    linkageType: ''
    returnType: void
    signature: void efi_verify_kernel(EFI_HANDLE ImageHandle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1120,1
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1122,1
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1124,1
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1126,1
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1128,1
    - Dst: match_guid
      Src: /src/xen/xen/common/efi/boot.c:1130,1
    - Dst: dmi_efi_get_table
      Src: /src/xen/xen/common/efi/boot.c:1135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1140
    functionName: efi_tables
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - match_guid
    - dmi_efi_get_table
    linkageType: ''
    returnType: void
    signature: void efi_tables(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LocateHandle
      Src: /src/xen/xen/common/efi/boot.c:1150,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:1153,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1154,1
    - Dst: LocateHandle
      Src: /src/xen/xen/common/efi/boot.c:1156,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1157,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/common/efi/boot.c:1168,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1169,1
    - Dst: EFI_PCI_IO*::Attributes
      Src: /src/xen/xen/common/efi/boot.c:1172,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1174,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1176,1
    - Dst: EFI_PCI_IO*::GetLocation
      Src: /src/xen/xen/common/efi/boot.c:1176,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1180,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1181,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1182,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1183,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1184,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1185,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1186,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1187,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1188,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1189,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1190,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1191,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:1194,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1196,1
    - Dst: EFI_PCI_IO*::Pci::Read
      Src: /src/xen/xen/common/efi/boot.c:1202,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1204,1
    - Dst: EFI_PCI_IO*::Pci::Read
      Src: /src/xen/xen/common/efi/boot.c:1205,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1207,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1209,1
    - Dst: memcpy
      Src: /src/xen/xen/common/efi/boot.c:1216,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1226,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1227
    functionName: setup_efi_pci
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_ERROR
    - PrintStr
    - EFI_PCI_IO*::Attributes
    - AllocatePool
    - LocateHandle
    - DisplayUint
    - EFI_PCI_IO*::Pci::Read
    - memcpy
    - EFI_PCI_IO*::GetLocation
    - FreePool
    - HandleProtocol
    linkageType: ''
    returnType: void
    signature: void setup_efi_pci(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QueryVariableInfo
      Src: /src/xen/xen/common/efi/boot.c:1234,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1241,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1246,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1247,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1250
    functionName: efi_variables
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - DisplayUint
    - EFI_ERROR
    - QueryVariableInfo
    - PrintStr
    linkageType: ''
    returnType: void
    signature: void efi_variables(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LocateProtocol
      Src: /src/xen/xen/common/efi/boot.c:1260,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1265,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1266,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1267,1
    - Dst: EFI_APPLE_PROPERTIES*::GetAll
      Src: /src/xen/xen/common/efi/boot.c:1271,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:1273,1
    - Dst: EFI_APPLE_PROPERTIES*::GetAll
      Src: /src/xen/xen/common/efi/boot.c:1277,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1285,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1286,1
    - Dst: DisplayUint
      Src: /src/xen/xen/common/efi/boot.c:1287,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1290
    functionName: efi_get_apple_properties
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - PrintStr
    - AllocatePool
    - EFI_APPLE_PROPERTIES*::GetAll
    - LocateProtocol
    - DisplayUint
    - FreePool
    linkageType: ''
    returnType: void
    signature: void efi_get_apple_properties(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/boot.c:1303,1
    - Dst: EFI_GRAPHICS_OUTPUT_PROTOCOL*::SetMode
      Src: /src/xen/xen/common/efi/boot.c:1304,1
    - Dst: EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
      Src: /src/xen/xen/common/efi/boot.c:1307,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1308,1
    - Dst: efi_arch_video_init
      Src: /src/xen/xen/common/efi/boot.c:1309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - gop
    - gop_mode
    argTypes:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*
    - UINTN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1310
    functionName: efi_set_gop_mode
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*::QueryMode
    - EFI_ERROR
    - efi_enabled
    - efi_arch_video_init
    - EFI_GRAPHICS_OUTPUT_PROTOCOL*::SetMode
    linkageType: ''
    returnType: void
    signature: void efi_set_gop_mode(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop, UINTN gop_mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetMemoryMap
      Src: /src/xen/xen/common/efi/boot.c:1324,1
    - Dst: efi_arch_allocate_mmap_buffer
      Src: /src/xen/xen/common/efi/boot.c:1327,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1329,1
    - Dst: EFI_SYSTEM_TABLE*::BootServices::GetMemoryMap
      Src: /src/xen/xen/common/efi/boot.c:1334,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1338,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:1339,1
    - Dst: efi_arch_process_memory_map
      Src: /src/xen/xen/common/efi/boot.c:1341,1
    - Dst: efi_arch_pre_exit_boot
      Src: /src/xen/xen/common/efi/boot.c:1344,1
    - Dst: EFI_SYSTEM_TABLE*::BootServices::ExitBootServices
      Src: /src/xen/xen/common/efi/boot.c:1346,1
    - Dst: EFI_ERROR
      Src: /src/xen/xen/common/efi/boot.c:1353,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:1354,1
    - Dst: SetVirtualAddressMap
      Src: /src/xen/xen/common/efi/boot.c:1372,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1376,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/efi/boot.c:1378,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - ImageHandle
    - SystemTable
    argTypes:
    - EFI_HANDLE
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1315
    functionDepth: 4
    functionLinenumber: 1315
    functionLinenumberEnd: 1387
    functionName: efi_exit_boot
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - EFI_ERROR
    - __clear_bit
    - EFI_SYSTEM_TABLE*::BootServices::ExitBootServices
    - efi_arch_process_memory_map
    - EFI_SYSTEM_TABLE*::BootServices::GetMemoryMap
    - blexit
    - efi_arch_allocate_mmap_buffer
    - SetVirtualAddressMap
    - GetMemoryMap
    - printk
    - PrintErrMesg
    - efi_arch_pre_exit_boot
    linkageType: ''
    returnType: void
    signature: void efi_exit_boot(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: __set_bit
      Src: /src/xen/xen/common/efi/boot.c:1407,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/efi/boot.c:1408,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/efi/boot.c:1411,1
    - Dst: efi_init
      Src: /src/xen/xen/common/efi/boot.c:1414,1
    - Dst: efi_arch_use_config_file
      Src: /src/xen/xen/common/efi/boot.c:1416,1
    - Dst: HandleProtocol
      Src: /src/xen/xen/common/efi/boot.c:1418,1
    - Dst: PrintErrMesg
      Src: /src/xen/xen/common/efi/boot.c:1421,1
    - Dst: efi_arch_load_addr_check
      Src: /src/xen/xen/common/efi/boot.c:1423,1
    - Dst: get_argv
      Src: /src/xen/xen/common/efi/boot.c:1431,1
    - Dst: AllocatePool
      Src: /src/xen/xen/common/efi/boot.c:1434,1
    - Dst: get_argv
      Src: /src/xen/xen/common/efi/boot.c:1438,1
    - Dst: wstrcmp
      Src: /src/xen/xen/common/efi/boot.c:1450,1
    - Dst: wstrcmp
      Src: /src/xen/xen/common/efi/boot.c:1452,1
    - Dst: wstrncmp
      Src: /src/xen/xen/common/efi/boot.c:1454,1
    - Dst: wstrcmp
      Src: /src/xen/xen/common/efi/boot.c:1456,1
    - Dst: wstrcmp
      Src: /src/xen/xen/common/efi/boot.c:1458,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1461,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1462,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1463,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1464,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1465,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1466,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1470,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1471,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1472,1
    - Dst: efi_console_set_mode
      Src: /src/xen/xen/common/efi/boot.c:1480,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1483,1
    - Dst: efi_arch_relocate_image
      Src: /src/xen/xen/common/efi/boot.c:1486,1
    - Dst: QueryMode
      Src: /src/xen/xen/common/efi/boot.c:1496,1
    - Dst: efi_arch_console_init
      Src: /src/xen/xen/common/efi/boot.c:1498,1
    - Dst: efi_get_gop
      Src: /src/xen/xen/common/efi/boot.c:1500,1
    - Dst: get_parent_handle
      Src: /src/xen/xen/common/efi/boot.c:1503,1
    - Dst: read_section
      Src: /src/xen/xen/common/efi/boot.c:1506,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1507,1
    - Dst: point_tail
      Src: /src/xen/xen/common/efi/boot.c:1512,1
    - Dst: wstrcpy
      Src: /src/xen/xen/common/efi/boot.c:1514,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1515,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1520,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1521,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1522,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1523,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1525,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1526,1
    - Dst: pre_parse
      Src: /src/xen/xen/common/efi/boot.c:1527,1
    - Dst: w2s
      Src: /src/xen/xen/common/efi/boot.c:1530,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1532,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1536,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1539,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:1544,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:1544,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1547,1
    - Dst: s2w
      Src: /src/xen/xen/common/efi/boot.c:1547,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1549,1
    - Dst: PrintStr
      Src: /src/xen/xen/common/efi/boot.c:1550,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1551,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1552,1
    - Dst: pre_parse
      Src: /src/xen/xen/common/efi/boot.c:1554,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1555,1
    - Dst: efi_arch_cfg_file_early
      Src: /src/xen/xen/common/efi/boot.c:1558,1
    - Dst: split_string
      Src: /src/xen/xen/common/efi/boot.c:1560,1
    - Dst: read_section
      Src: /src/xen/xen/common/efi/boot.c:1562,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1565,1
    - Dst: s2w
      Src: /src/xen/xen/common/efi/boot.c:1565,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1566,1
    - Dst: read_section
      Src: /src/xen/xen/common/efi/boot.c:1574,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1576,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1579,1
    - Dst: s2w
      Src: /src/xen/xen/common/efi/boot.c:1579,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1580,1
    - Dst: read_section
      Src: /src/xen/xen/common/efi/boot.c:1584,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1586,1
    - Dst: read_file
      Src: /src/xen/xen/common/efi/boot.c:1589,1
    - Dst: s2w
      Src: /src/xen/xen/common/efi/boot.c:1589,1
    - Dst: FreePool
      Src: /src/xen/xen/common/efi/boot.c:1590,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1594,1
    - Dst: efi_arch_handle_cmdline
      Src: /src/xen/xen/common/efi/boot.c:1595,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1599,1
    - Dst: get_value
      Src: /src/xen/xen/common/efi/boot.c:1601,1
    - Dst: strncmp
      Src: /src/xen/xen/common/efi/boot.c:1602,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/efi/boot.c:1604,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/efi/boot.c:1606,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/efi/boot.c:1608,1
    - Dst: efi_arch_cfg_file_late
      Src: /src/xen/xen/common/efi/boot.c:1614,1
    - Dst: FreePages
      Src: /src/xen/xen/common/efi/boot.c:1618,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:1618,1
    - Dst: EFI_FILE_HANDLE::Close
      Src: /src/xen/xen/common/efi/boot.c:1623,1
    - Dst: efi_find_gop_mode
      Src: /src/xen/xen/common/efi/boot.c:1627,1
    - Dst: efi_arch_edid
      Src: /src/xen/xen/common/efi/boot.c:1629,1
    - Dst: efi_check_dt_boot
      Src: /src/xen/xen/common/efi/boot.c:1634,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1638,1
    - Dst: blexit
      Src: /src/xen/xen/common/efi/boot.c:1642,1
    - Dst: efi_verify_kernel
      Src: /src/xen/xen/common/efi/boot.c:1650,1
    - Dst: efi_arch_edd
      Src: /src/xen/xen/common/efi/boot.c:1652,1
    - Dst: efi_arch_cpu
      Src: /src/xen/xen/common/efi/boot.c:1654,1
    - Dst: efi_tables
      Src: /src/xen/xen/common/efi/boot.c:1656,1
    - Dst: setup_efi_pci
      Src: /src/xen/xen/common/efi/boot.c:1659,1
    - Dst: efi_variables
      Src: /src/xen/xen/common/efi/boot.c:1662,1
    - Dst: efi_get_apple_properties
      Src: /src/xen/xen/common/efi/boot.c:1665,1
    - Dst: efi_arch_memory_setup
      Src: /src/xen/xen/common/efi/boot.c:1667,1
    - Dst: efi_set_gop_mode
      Src: /src/xen/xen/common/efi/boot.c:1670,1
    - Dst: efi_relocate_esrt
      Src: /src/xen/xen/common/efi/boot.c:1672,1
    - Dst: efi_exit_boot
      Src: /src/xen/xen/common/efi/boot.c:1674,1
    - Dst: efi_arch_post_exit_boot
      Src: /src/xen/xen/common/efi/boot.c:1676,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 163
    argCount: 2
    argNames:
    - ImageHandle
    - SystemTable
    argTypes:
    - EFI_HANDLE
    - EFI_SYSTEM_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1390
    functionDepth: 5
    functionLinenumber: 1390
    functionLinenumberEnd: 1677
    functionName: efi_start
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - efi_init
    - efi_arch_edd
    - efi_variables
    - efi_arch_use_config_file
    - PFN_UP
    - efi_arch_cfg_file_early
    - w2s
    - wstrcpy
    - efi_set_gop_mode
    - blexit
    - EFI_FILE_HANDLE::Close
    - AllocatePool
    - split_string
    - efi_arch_handle_cmdline
    - FreePool
    - efi_arch_post_exit_boot
    - simple_strtoul
    - efi_verify_kernel
    - __set_bit
    - read_file
    - efi_arch_edid
    - QueryMode
    - efi_arch_memory_setup
    - wstrncmp
    - efi_arch_load_addr_check
    - get_argv
    - efi_arch_relocate_image
    - HandleProtocol
    - FreePages
    - efi_check_dt_boot
    - PrintStr
    - read_section
    - efi_console_set_mode
    - efi_exit_boot
    - efi_relocate_esrt
    - efi_arch_console_init
    - efi_arch_cfg_file_late
    - efi_find_gop_mode
    - efi_get_gop
    - get_parent_handle
    - s2w
    - wstrcmp
    - efi_arch_cpu
    - get_value
    - setup_efi_pci
    - point_tail
    - strncmp
    - efi_get_apple_properties
    - efi_tables
    - PrintErrMesg
    - pre_parse
    linkageType: ''
    returnType: void
    signature: "void efi_start(EFI_HANDLE ImageHandle,\n                                      EFI_SYSTEM_TABLE
      *SystemTable)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/common/efi/boot.c:1691,1
    - Dst: strchr
      Src: /src/xen/xen/common/efi/boot.c:1693,1
    - Dst: parse_boolean
      Src: /src/xen/xen/common/efi/boot.c:1695,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/efi/boot.c:1698,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/efi/boot.c:1700,1
    - Dst: memcmp
      Src: /src/xen/xen/common/efi/boot.c:1702,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/common/efi/boot.c:1704,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/common/efi/boot.c:1706,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1718
    functionName: parse_efi_param
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - parse_boolean
    - __clear_bit
    - memcmp
    - cmdline_strcmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int parse_efi_param(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1731,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/efi/boot.c:1732,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/common/efi/boot.c:1735,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/common/efi/boot.c:1737,1
    - Dst: is_valid
      Src: /src/xen/xen/common/efi/boot.c:1739,1
    - Dst: min
      Src: /src/xen/xen/common/efi/boot.c:1739,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1744,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/common/efi/boot.c:1748,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1749,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1750,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/common/efi/boot.c:1751,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/common/efi/boot.c:1754,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/common/efi/boot.c:1757,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1757,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1758,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1758,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/efi/boot.c:1761,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/efi/boot.c:1762,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - mfn
    - end
    - efi_l4t
    argTypes:
    - unsigned long
    - unsigned long
    - l4_pgentry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1721
    functionDepth: 3
    functionLinenumber: 1721
    functionLinenumberEnd: 1763
    functionName: copy_mapping
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - alloc_mapped_pagetable
    - l4_table_offset
    - l4e_get_flags
    - map_l3t_from_l4e
    - l3_table_offset
    - l4e_from_mfn
    - is_valid
    - min
    - BUG_ON
    - mfn_to_virt
    - UNMAP_DOMAIN_PAGE
    linkageType: ''
    returnType: __init
    signature: "__init copy_mapping(unsigned long mfn, unsigned long end,\n                                bool
      (*is_valid)(unsigned long smfn,\n                                                 unsigned
      long emfn),\n                                l4_pgentry_t *efi_l4t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/efi/boot.c:1767,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/efi/boot.c:1769,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/xen/common/efi/boot.c:1771,1
    - Dst: find_next_bit
      Src: /src/xen/xen/common/efi/boot.c:1772,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/efi/boot.c:1773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - smfn
    - emfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1765
    functionDepth: 0
    functionLinenumber: 1765
    functionLinenumberEnd: 1774
    functionName: ram_range_valid
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached:
    - pdx_is_region_compressible
    - find_next_bit
    - pfn_to_paddr
    - pfn_to_pdx
    linkageType: ''
    returnType: bool
    signature: bool ram_range_valid(unsigned long smfn, unsigned long emfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - smfn
    - emfn
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1779
    functionName: rt_range_valid
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rt_range_valid(unsigned long smfn, unsigned long emfn)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: free_ebmalloc_unused_mem
      Src: /src/xen/xen/common/efi/boot.c:1792,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/boot.c:1794,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1797,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1808,1
    - Dst: EFI_REVISION
      Src: /src/xen/xen/common/efi/boot.c:1814,1
    - Dst: max
      Src: /src/xen/xen/common/efi/boot.c:1819,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/efi/boot.c:1820,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/boot.c:1823,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1839,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/efi/boot.c:1855,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:1856,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/efi/boot.c:1858,1
    - Dst: EFI_REVISION
      Src: /src/xen/xen/common/efi/boot.c:1869,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1874,1
    - Dst: EFI_REVISION
      Src: /src/xen/xen/common/efi/boot.c:1881,1
    - Dst: pfn_to_pdx
      Src: /src/xen/xen/common/efi/boot.c:1887,1
    - Dst: pdx_is_region_compressible
      Src: /src/xen/xen/common/efi/boot.c:1888,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/efi/boot.c:1890,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/common/efi/boot.c:1892,1
    - Dst: mfn_to_virt
      Src: /src/xen/xen/common/efi/boot.c:1892,1
    - Dst: _mfn
      Src: /src/xen/xen/common/efi/boot.c:1893,1
    - Dst: maddr_to_virt
      Src: /src/xen/xen/common/efi/boot.c:1895,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1897,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/efi/boot.c:1901,1
    - Dst: printk
      Src: /src/xen/xen/common/efi/boot.c:1912,1
    - Dst: efi_enabled
      Src: /src/xen/xen/common/efi/boot.c:1917,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/common/efi/boot.c:1927,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1928,1
    - Dst: copy_mapping
      Src: /src/xen/xen/common/efi/boot.c:1930,1
    - Dst: copy_mapping
      Src: /src/xen/xen/common/efi/boot.c:1943,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/efi/boot.c:1943,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/efi/boot.c:1944,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1953,1
    - Dst: l4e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1958,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/common/efi/boot.c:1962,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1963,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1964,1
    - Dst: l4e_from_mfn
      Src: /src/xen/xen/common/efi/boot.c:1965,1
    - Dst: map_l3t_from_l4e
      Src: /src/xen/xen/common/efi/boot.c:1968,1
    - Dst: l3_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1969,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1970,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/common/efi/boot.c:1974,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1975,1
    - Dst: l3e_from_mfn
      Src: /src/xen/xen/common/efi/boot.c:1976,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1980,1
    - Dst: l3e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1980,1
    - Dst: map_l2t_from_l3e
      Src: /src/xen/xen/common/efi/boot.c:1981,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/common/efi/boot.c:1983,1
    - Dst: l2_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1984,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1985,1
    - Dst: alloc_mapped_pagetable
      Src: /src/xen/xen/common/efi/boot.c:1989,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1990,1
    - Dst: l2e_from_mfn
      Src: /src/xen/xen/common/efi/boot.c:1991,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/efi/boot.c:1995,1
    - Dst: l2e_get_flags
      Src: /src/xen/xen/common/efi/boot.c:1995,1
    - Dst: map_l1t_from_l2e
      Src: /src/xen/xen/common/efi/boot.c:1996,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/common/efi/boot.c:1998,1
    - Dst: l1_table_offset
      Src: /src/xen/xen/common/efi/boot.c:1999,1
    - Dst: l1e_from_pfn
      Src: /src/xen/xen/common/efi/boot.c:2002,1
    - Dst: UNMAP_DOMAIN_PAGE
      Src: /src/xen/xen/common/efi/boot.c:2003,1
    - Dst: xfree
      Src: /src/xen/xen/common/efi/boot.c:2008,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:2013,1
    - Dst: l4_table_offset
      Src: /src/xen/xen/common/efi/boot.c:2014,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/efi/boot.c:2017,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1782
    functionDepth: 9
    functionLinenumber: 1782
    functionLinenumberEnd: 2018
    functionName: efi_init_memory
    functionSourceFile: /src/xen/xen/common/efi/boot.c
    functionUses: 1
    functionsReached:
    - ROUNDUP
    - max
    - xmalloc
    - alloc_mapped_pagetable
    - PFN_UP
    - l3e_from_mfn
    - free_ebmalloc_unused_mem
    - l1e_from_pfn
    - PFN_DOWN
    - xfree
    - l2e_from_mfn
    - efi_enabled
    - l3_table_offset
    - map_pages_to_xen
    - BUG_ON
    - l3e_get_flags
    - printk
    - l1_table_offset
    - l4_table_offset
    - map_l3t_from_l4e
    - _mfn
    - l4e_from_mfn
    - pdx_is_region_compressible
    - mfn_to_virt
    - UNMAP_DOMAIN_PAGE
    - copy_mapping
    - l2e_get_flags
    - unmap_domain_page
    - map_l2t_from_l3e
    - EFI_REVISION
    - map_l1t_from_l2e
    - l4e_get_flags
    - pfn_to_pdx
    - l2_table_offset
    - pfn_to_paddr
    - maddr_to_virt
    linkageType: ''
    returnType: void
    signature: void efi_init_memory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/coverage/llvm.c:137,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/coverage/llvm.c:138,1
    - Dst: memset
      Src: /src/xen/xen/common/coverage/llvm.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: reset_counters
    functionSourceFile: /src/xen/xen/common/coverage/llvm.c
    functionUses: 0
    functionsReached:
    - memset
    - IS_ENABLED
    linkageType: ''
    returnType: void
    signature: void reset_counters(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/coverage/llvm.c:144,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/coverage/llvm.c:146,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/coverage/llvm.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: get_size
    functionSourceFile: /src/xen/xen/common/coverage/llvm.c
    functionUses: 7
    functionsReached:
    - ROUNDUP
    - IS_ENABLED
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/coverage/llvm.c:157,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/coverage/llvm.c:158,1
    - Dst: APPEND_TO_BUFFER
      Src: /src/xen/xen/common/coverage/llvm.c:181,1
    - Dst: APPEND_TO_BUFFER
      Src: /src/xen/xen/common/coverage/llvm.c:182,1
    - Dst: APPEND_TO_BUFFER
      Src: /src/xen/xen/common/coverage/llvm.c:183,1
    - Dst: APPEND_TO_BUFFER
      Src: /src/xen/xen/common/coverage/llvm.c:185,1
    - Dst: APPEND_TO_BUFFER
      Src: /src/xen/xen/common/coverage/llvm.c:187,1
    - Dst: clear_guest_offset
      Src: /src/xen/xen/common/coverage/llvm.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buf_size
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 193
    functionName: dump
    functionSourceFile: /src/xen/xen/common/coverage/llvm.c
    functionUses: 26
    functionsReached:
    - APPEND_TO_BUFFER
    - clear_guest_offset
    - DIV_ROUND_UP
    linkageType: ''
    returnType: int
    signature: "int dump(\n    XEN_GUEST_HANDLE_PARAM(char) buffer, uint32_t *buf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - src
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: APPEND_TO_BUFFER
    functionSourceFile: /src/xen/xen/common/coverage/llvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_TO_BUFFER(src, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - struct gcov_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: counter_active
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int counter_active(const struct gcov_info *info, unsigned int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: gcov_info_link
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gcov_info_link(struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: gcov_info_next
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct gcov_info
    signature: struct gcov_info *gcov_info_next(const struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: counter_active
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:145,1
    - Dst: memset
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: gcov_info_reset
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached:
    - memset
    - counter_active
    linkageType: ''
    returnType: void
    signature: void gcov_info_reset(struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: gcov_info_filename
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gcov_info_filename(const struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:177,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:178,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:179,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:183,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:191,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:192,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:193,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:194,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:195,1
    - Dst: counter_active
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:201,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:205,1
    - Dst: GCOV_TAG_FOR_COUNTER
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:206,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:207,1
    - Dst: gcov_store_uint64
      Src: /src/xen/xen/common/coverage/gcc_4_7.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - buffer
    - info
    argTypes:
    - char*
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 217
    functionName: gcov_info_to_gcda
    functionSourceFile: /src/xen/xen/common/coverage/gcc_4_7.c
    functionUses: 0
    functionsReached:
    - gcov_store_uint64
    - counter_active
    - GCOV_TAG_FOR_COUNTER
    - gcov_store_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t gcov_info_to_gcda(char *buffer, const struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buffer
    - 'off'
    - v
    argTypes:
    - void*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: gcov_store_uint32
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t gcov_store_uint32(void *buffer, size_t off, uint32_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buffer
    - 'off'
    - v
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: gcov_store_uint64
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t gcov_store_uint64(void *buffer, size_t off, uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcov_info_to_gcda
      Src: /src/xen/xen/common/coverage/gcov.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: gcov_info_payload_size
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - gcov_info_to_gcda
    linkageType: ''
    returnType: size_t
    signature: size_t gcov_info_payload_size(const struct gcov_info *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gcov_info_payload_size
      Src: /src/xen/xen/common/coverage/gcov.c:98,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/common/coverage/gcov.c:99,1
    - Dst: gcov_info_to_gcda
      Src: /src/xen/xen/common/coverage/gcov.c:107,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/coverage/gcov.c:109,1
    - Dst: xfree
      Src: /src/xen/xen/common/coverage/gcov.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - info
    - 'off'
    argTypes:
    - struct gcov_info*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 121
    functionName: gcov_info_dump_payload
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - gcov_info_payload_size
    - copy_to_guest_offset
    - gcov_info_to_gcda
    - xfree
    linkageType: ''
    returnType: int
    signature: "int gcov_info_dump_payload(const struct gcov_info *info,\n                                  XEN_GUEST_HANDLE_PARAM(char)
      buffer,\n                                  uint32_t *off)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcov_info_next
      Src: /src/xen/xen/common/coverage/gcov.c:128,1
    - Dst: strlen
      Src: /src/xen/xen/common/coverage/gcov.c:131,1
    - Dst: gcov_info_filename
      Src: /src/xen/xen/common/coverage/gcov.c:131,1
    - Dst: gcov_info_payload_size
      Src: /src/xen/xen/common/coverage/gcov.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: gcov_get_size
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - gcov_info_payload_size
    - gcov_info_filename
    - gcov_info_next
    - strlen
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t gcov_get_size(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcov_info_next
      Src: /src/xen/xen/common/coverage/gcov.c:147,1
    - Dst: gcov_info_reset
      Src: /src/xen/xen/common/coverage/gcov.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: gcov_reset_all_counters
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - gcov_info_next
    - gcov_info_reset
    linkageType: ''
    returnType: void
    signature: void gcov_reset_all_counters(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/coverage/gcov.c:159,1
    - Dst: gcov_info_filename
      Src: /src/xen/xen/common/coverage/gcov.c:159,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/coverage/gcov.c:160,1
    - Dst: gcov_info_filename
      Src: /src/xen/xen/common/coverage/gcov.c:160,1
    - Dst: gcov_info_payload_size
      Src: /src/xen/xen/common/coverage/gcov.c:164,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/coverage/gcov.c:166,1
    - Dst: gcov_info_dump_payload
      Src: /src/xen/xen/common/coverage/gcov.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - info
    - 'off'
    argTypes:
    - struct gcov_info*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: gcov_dump_one_record
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - copy_to_guest_offset
    - gcov_info_dump_payload
    - gcov_info_filename
    - gcov_info_payload_size
    - strlen
    linkageType: ''
    returnType: int
    signature: "int gcov_dump_one_record(const struct gcov_info *info,\n                                XEN_GUEST_HANDLE_PARAM(char)
      buffer,\n                                uint32_t *off)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gcov_get_size
      Src: /src/xen/xen/common/coverage/gcov.c:183,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/coverage/gcov.c:192,1
    - Dst: gcov_info_next
      Src: /src/xen/xen/common/coverage/gcov.c:199,1
    - Dst: gcov_dump_one_record
      Src: /src/xen/xen/common/coverage/gcov.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - buffer_size
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 211
    functionName: gcov_dump_all
    functionSourceFile: /src/xen/xen/common/coverage/gcov.c
    functionUses: 0
    functionsReached:
    - copy_to_guest_offset
    - gcov_info_next
    - gcov_get_size
    - gcov_dump_one_record
    linkageType: ''
    returnType: int
    signature: "int gcov_dump_all(\n    XEN_GUEST_HANDLE_PARAM(char) buffer, uint32_t
      *buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: GCOV_TAG_FOR_COUNTER
    functionSourceFile: /src/xen/xen/common/coverage/gcov.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GCOV_TAG_FOR_COUNTER(count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_size
      Src: /src/xen/xen/common/coverage/coverage.c:35,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/coverage/coverage.c:44,1
    - Dst: dump
      Src: /src/xen/xen/common/coverage/coverage.c:46,1
    - Dst: reset_counters
      Src: /src/xen/xen/common/coverage/coverage.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_coverage_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 63
    functionName: sysctl_cov_op
    functionSourceFile: /src/xen/xen/common/coverage/coverage.c
    functionUses: 1
    functionsReached:
    - guest_handle_cast
    - dump
    - get_size
    - reset_counters
    linkageType: ''
    returnType: int
    signature: int sysctl_cov_op(struct xen_sysctl_coverage_op *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gcov_info_link
      Src: /src/xen/xen/common/coverage/gcov_base.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: __gcov_init
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached:
    - gcov_info_link
    linkageType: ''
    returnType: void
    signature: void __gcov_init(struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: __gcov_exit
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_exit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: __gcov_flush
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_flush(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - counters
    - n_counters
    argTypes:
    - gcov_type*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: __gcov_merge_add
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_add(gcov_type *counters, unsigned int n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - counters
    - n_counters
    argTypes:
    - gcov_type*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: __gcov_merge_single
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_single(gcov_type *counters, unsigned int n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - counters
    - n_counters
    argTypes:
    - gcov_type*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: __gcov_merge_delta
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_delta(gcov_type *counters, unsigned int n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - counters
    - n_counters
    argTypes:
    - gcov_type*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: __gcov_merge_ior
    functionSourceFile: /src/xen/xen/common/coverage/gcov_base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __gcov_merge_ior(gcov_type *counters, unsigned int n_counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - type
    argTypes:
    - struct gcov_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: counter_active
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int counter_active(const struct gcov_info *info, unsigned int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: counter_active
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: num_counter_active
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - counter_active
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int num_counter_active(const struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: gcov_info_link
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gcov_info_link(struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: gcov_info_next
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct gcov_info
    signature: struct gcov_info *gcov_info_next(const struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: gcov_info_filename
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *gcov_info_filename(const struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_counter_active
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:188,1
    - Dst: memset
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: gcov_info_reset
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 1
    functionsReached:
    - memset
    - num_counter_active
    linkageType: ''
    returnType: void
    signature: void gcov_info_reset(struct gcov_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: num_counter_active
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:200,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: get_fn_size
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - num_counter_active
    linkageType: ''
    returnType: size_t
    signature: size_t get_fn_size(const struct gcov_info *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fn_size
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - info
    - fn
    argTypes:
    - struct gcov_info*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: get_fn_info
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - get_fn_size
    linkageType: ''
    returnType: struct gcov_fn_info
    signature: "struct gcov_fn_info *get_fn_info(const struct gcov_info *info,\n                                        unsigned
      int fn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_fn_info
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct gcov_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: get_func
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - get_fn_info
    linkageType: ''
    returnType: struct gcov_fn_info
    signature: struct gcov_fn_info *get_func(struct gcov_iterator *iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct gcov_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: get_type
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: struct type_info
    signature: struct type_info *get_type(struct gcov_iterator *iter)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_func
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:248,1
    - Dst: get_type
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - iter
    argTypes:
    - struct gcov_iterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 280
    functionName: gcov_iter_next
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - get_func
    - get_type
    linkageType: ''
    returnType: int
    signature: int gcov_iter_next(struct gcov_iterator *iter)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:298,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:301,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:304,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:307,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:310,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:313,1
    - Dst: get_func
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:313,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:316,1
    - Dst: get_func
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:316,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:319,1
    - Dst: GCOV_TAG_FOR_COUNTER
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:320,1
    - Dst: get_type
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:320,1
    - Dst: gcov_store_uint32
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:323,1
    - Dst: get_func
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:324,1
    - Dst: gcov_store_uint64
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:327,1
    - Dst: get_type
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:328,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - iter
    - buf
    - pos
    argTypes:
    - struct gcov_iterator*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 333
    functionName: gcov_iter_write
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 0
    functionsReached:
    - gcov_store_uint64
    - get_func
    - gcov_store_uint32
    - GCOV_TAG_FOR_COUNTER
    - get_type
    linkageType: ''
    returnType: size_t
    signature: "size_t gcov_iter_write(struct gcov_iterator *iter, char *buf,\n                              size_t
      pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: counter_active
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:344,1
    - Dst: gcov_iter_write
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:353,1
    - Dst: gcov_iter_next
      Src: /src/xen/xen/common/coverage/gcc_3_4.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - info
    argTypes:
    - char*
    - struct gcov_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 357
    functionName: gcov_info_to_gcda
    functionSourceFile: /src/xen/xen/common/coverage/gcc_3_4.c
    functionUses: 2
    functionsReached:
    - gcov_iter_next
    - counter_active
    - gcov_iter_write
    linkageType: ''
    returnType: size_t
    signature: size_t gcov_info_to_gcda(char *buffer, const struct gcov_info *info)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:71,1
    - Dst: pv_shim_grant_table_op
      Src: /src/xen/xen/common/compat/grant_table.c:72,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/compat/grant_table.c:75,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:93,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:97,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:101,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:105,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:109,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:113,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:117,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:121,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:125,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:129,1
    - Dst: CASE
      Src: /src/xen/xen/common/compat/grant_table.c:133,1
    - Dst: do_grant_table_op
      Src: /src/xen/xen/common/compat/grant_table.c:138,1
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/compat/grant_table.c:161,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:165,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:167,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/compat/grant_table.c:167,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:169,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/grant_table.c:169,1
    - Dst: XLAT_gnttab_setup_table
      Src: /src/xen/xen/common/compat/grant_table.c:179,1
    - Dst: gnttab_setup_table
      Src: /src/xen/xen/common/compat/grant_table.c:181,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:181,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/grant_table.c:185,1
    - Dst: XLAT_gnttab_setup_table
      Src: /src/xen/xen/common/compat/grant_table.c:210,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:212,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/compat/grant_table.c:212,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:222,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/compat/grant_table.c:222,1
    - Dst: XLAT_gnttab_transfer
      Src: /src/xen/xen/common/compat/grant_table.c:226,1
    - Dst: gnttab_transfer
      Src: /src/xen/xen/common/compat/grant_table.c:230,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:230,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/grant_table.c:233,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/compat/grant_table.c:239,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:241,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/compat/grant_table.c:242,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:243,1
    - Dst: guest_handle_subtract_offset
      Src: /src/xen/xen/common/compat/grant_table.c:246,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/compat/grant_table.c:247,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:256,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/compat/grant_table.c:256,1
    - Dst: XLAT_gnttab_copy
      Src: /src/xen/xen/common/compat/grant_table.c:271,1
    - Dst: gnttab_copy
      Src: /src/xen/xen/common/compat/grant_table.c:275,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:275,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/grant_table.c:278,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/compat/grant_table.c:284,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:286,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/common/compat/grant_table.c:287,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:288,1
    - Dst: guest_handle_subtract_offset
      Src: /src/xen/xen/common/compat/grant_table.c:291,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/compat/grant_table.c:292,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:304,1
    - Dst: __copy_from_guest
      Src: /src/xen/xen/common/compat/grant_table.c:304,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/grant_table.c:305,1
    - Dst: XLAT_gnttab_get_status_frames
      Src: /src/xen/xen/common/compat/grant_table.c:314,1
    - Dst: gnttab_get_status_frames
      Src: /src/xen/xen/common/compat/grant_table.c:317,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:318,1
    - Dst: XEN_GUEST_HANDLE_PARAM
      Src: /src/xen/xen/common/compat/grant_table.c:321,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/grant_table.c:322,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/grant_table.c:325,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/compat/grant_table.c:325,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/compat/grant_table.c:334,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/grant_table.c:341,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/grant_table.c:342,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/compat/grant_table.c:342,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/compat/grant_table.c:343,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 133
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 63
    functionDepth: 7
    functionLinenumber: 63
    functionLinenumberEnd: 348
    functionName: compat_grant_table_op
    functionSourceFile: /src/xen/xen/common/compat/grant_table.c
    functionUses: 1
    functionsReached:
    - XLAT_gnttab_copy
    - guest_handle_add_offset
    - gnttab_get_status_frames
    - set_xen_guest_handle
    - pv_shim_grant_table_op
    - hypercall_create_continuation
    - guest_handle_is_null
    - XEN_GUEST_HANDLE_PARAM
    - guest_handle_cast
    - domain_crash
    - compat_handle_okay
    - __copy_from_guest_offset
    - XLAT_gnttab_transfer
    - XLAT_gnttab_setup_table
    - XLAT_gnttab_get_status_frames
    - ASSERT
    - gnttab_transfer
    - guest_handle_subtract_offset
    - CASE
    - __copy_field_to_guest
    - __copy_from_guest
    - do_grant_table_op
    - gnttab_setup_table
    - __copy_to_guest
    - unlikely
    - gnttab_copy
    linkageType: ''
    returnType: int
    signature: "int compat_grant_table_op(\n    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      uop, unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: CASE
    functionSourceFile: /src/xen/xen/common/compat/grant_table.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: XLAT_gnttab_setup_table_HNDL_frame_list
    functionSourceFile: /src/xen/xen/common/compat/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_gnttab_setup_table_HNDL_frame_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 210
    functionName: XLAT_gnttab_setup_table_HNDL_frame_list
    functionSourceFile: /src/xen/xen/common/compat/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_gnttab_setup_table_HNDL_frame_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: XLAT_gnttab_get_status_frames_HNDL_frame_list
    functionSourceFile: /src/xen/xen/common/compat/grant_table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_gnttab_get_status_frames_HNDL_frame_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/compat/xlat.c:17,1
    - Dst: XLAT_start_info
      Src: /src/xen/xen/common/compat/xlat.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - native
    - console
    argTypes:
    - struct start_info*
    - enum XLAT_start_info_console
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: xlat_start_info
    functionSourceFile: /src/xen/xen/common/compat/xlat.c
    functionUses: 2
    functionsReached:
    - XLAT_start_info
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: "void xlat_start_info(struct start_info *native,\n                     enum
      XLAT_start_info_console console)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/compat/xlat.c:25,1
    - Dst: XLAT_vcpu_runstate_info
      Src: /src/xen/xen/common/compat/xlat.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - native
    argTypes:
    - struct vcpu_runstate_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: xlat_vcpu_runstate_info
    functionSourceFile: /src/xen/xen/common/compat/xlat.c
    functionUses: 0
    functionsReached:
    - XLAT_vcpu_runstate_info
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void xlat_vcpu_runstate_info(struct vcpu_runstate_info *native)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: is_pv_domain
      Src: /src/xen/xen/common/compat/domain.c:52,1
    - Dst: is_hvm_vcpu
      Src: /src/xen/xen/common/compat/domain.c:56,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/domain.c:60,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/compat/domain.c:63,1
    - Dst: arch_set_info_hvm_guest
      Src: /src/xen/xen/common/compat/domain.c:64,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/compat/domain.c:65,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/compat/domain.c:72,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/domain.c:75,1
    - Dst: xfree
      Src: /src/xen/xen/common/compat/domain.c:77,1
    - Dst: domain_lock
      Src: /src/xen/xen/common/compat/domain.c:81,1
    - Dst: arch_set_info_guest
      Src: /src/xen/xen/common/compat/domain.c:82,1
    - Dst: domain_unlock
      Src: /src/xen/xen/common/compat/domain.c:83,1
    - Dst: xfree
      Src: /src/xen/xen/common/compat/domain.c:85,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/compat/domain.c:89,1
    - Dst: common_vcpu_op
      Src: /src/xen/xen/common/compat/domain.c:102,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/compat/domain.c:112,1
    - Dst: xlat_vcpu_runstate_info
      Src: /src/xen/xen/common/compat/domain.c:113,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/compat/domain.c:114,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/domain.c:124,1
    - Dst: XLAT_vcpu_set_singleshot_timer
      Src: /src/xen/xen/common/compat/domain.c:127,1
    - Dst: do_vcpu_op
      Src: /src/xen/xen/common/compat/domain.c:128,1
    - Dst: guest_handle_from_ptr
      Src: /src/xen/xen/common/compat/domain.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 2
    argNames:
    - cmd
    - v
    argTypes:
    - int
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 138
    functionName: compat_common_vcpu_op
    functionSourceFile: /src/xen/xen/common/compat/domain.c
    functionUses: 1
    functionsReached:
    - is_hvm_vcpu
    - do_vcpu_op
    - xmalloc
    - domain_unlock
    - arch_set_info_hvm_guest
    - copy_from_guest
    - xlat_vcpu_runstate_info
    - guest_handle_from_ptr
    - XLAT_vcpu_set_singleshot_timer
    - domain_lock
    - hypercall_create_continuation
    - is_pv_domain
    - common_vcpu_op
    - vcpu_runstate_get
    - copy_to_guest
    - arch_set_info_guest
    - xfree
    linkageType: ''
    returnType: int
    signature: "int compat_common_vcpu_op(int cmd, struct vcpu *v,\n                          XEN_GUEST_HANDLE_PARAM(void)
      arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/common/compat/multicall.c:18,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/compat/multicall.c:18,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/compat/multicall.c:20,1
    - Dst: memcpy
      Src: /src/xen/xen/common/compat/multicall.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mcs
    argTypes:
    - struct mc_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 24
    functionName: xlat_multicall_entry
    functionSourceFile: /src/xen/xen/common/compat/multicall.c
    functionUses: 1
    functionsReached:
    - memcpy
    - typeof
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void xlat_multicall_entry(struct mc_state *mcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: do_multicall
    functionSourceFile: /src/xen/xen/common/compat/multicall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: do_multicall(l, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: _XEN_GUEST_HANDLE
    functionSourceFile: /src/xen/xen/common/compat/multicall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: _XEN_GUEST_HANDLE_PARAM
    functionSourceFile: /src/xen/xen/common/compat/multicall.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _XEN_GUEST_HANDLE_PARAM(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/compat/multicall.c:36,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/compat/multicall.c:39,1
    - Dst: __trace_hypercall
      Src: /src/xen/xen/common/compat/multicall.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - call
    argTypes:
    - multicall_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: __trace_multicall_call
    functionSourceFile: /src/xen/xen/common/compat/multicall.c
    functionUses: 1
    functionsReached:
    - __trace_hypercall
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void __trace_multicall_call(multicall_entry_t *call)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SBDF
      Src: /src/xen/xen/common/compat/memory.c:31,1
    - Dst: __copy_to_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - start
    - nr
    - id
    - ctxt
    argTypes:
    - xen_pfn_t
    - xen_ulong_t
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: get_reserved_device_memory
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 1
    functionsReached:
    - PCI_SBDF
    - __copy_to_compat_offset
    linkageType: ''
    returnType: int
    signature: "int get_reserved_device_memory(\n    xen_pfn_t start, xen_ulong_t
      nr, u32 id, void *ctxt)"
  - BBCount: 95
    BranchProfiles: []
    Callsites:
    - Dst: set_xen_guest_handle
      Src: /src/xen/xen/common/compat/memory.c:90,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:99,1
    - Dst: compat_handle_is_null
      Src: /src/xen/xen/common/compat/memory.c:106,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:107,1
    - Dst: XLAT_memory_reservation
      Src: /src/xen/xen/common/compat/memory.c:143,1
    - Dst: pv_shim_online_memory
      Src: /src/xen/xen/common/compat/memory.c:153,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:161,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:181,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:183,1
    - Dst: ABS
      Src: /src/xen/xen/common/compat/memory.c:189,1
    - Dst: printk
      Src: /src/xen/xen/common/compat/memory.c:193,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:205,1
    - Dst: XLAT_memory_exchange
      Src: /src/xen/xen/common/compat/memory.c:229,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:253,1
    - Dst: typeof
      Src: /src/xen/xen/common/compat/memory.c:253,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:256,1
    - Dst: XLAT_add_to_physmap
      Src: /src/xen/xen/common/compat/memory.c:259,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:279,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:282,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:283,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:284,1
    - Dst: __copy_from_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:299,1
    - Dst: __copy_from_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:300,1
    - Dst: XLAT_add_to_physmap_batch
      Src: /src/xen/xen/common/compat/memory.c:313,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:330,1
    - Dst: XLAT_remove_from_physmap
      Src: /src/xen/xen/common/compat/memory.c:333,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:339,1
    - Dst: XLAT_mem_access_op
      Src: /src/xen/xen/common/compat/memory.c:347,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:363,1
    - Dst: XLAT_vnuma_topology_info
      Src: /src/xen/xen/common/compat/memory.c:373,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/memory.c:386,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:389,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:390,1
    - Dst: iommu_get_reserved_device_memory
      Src: /src/xen/xen/common/compat/memory.c:397,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/compat/memory.c:403,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/compat/memory.c:414,1
    - Dst: compat_handle_is_null
      Src: /src/xen/xen/common/compat/memory.c:418,1
    - Dst: XLAT_mem_acquire_resource
      Src: /src/xen/xen/common/compat/memory.c:424,1
    - Dst: min
      Src: /src/xen/xen/common/compat/memory.c:450,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/compat/memory.c:456,1
    - Dst: compat_handle_okay
      Src: /src/xen/xen/common/compat/memory.c:460,1
    - Dst: __copy_from_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:462,1
    - Dst: compat_arch_memory_op
      Src: /src/xen/xen/common/compat/memory.c:478,1
    - Dst: do_memory_op
      Src: /src/xen/xen/common/compat/memory.c:481,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/compat/memory.c:489,1
    - Dst: hypercall_xlat_continuation
      Src: /src/xen/xen/common/compat/memory.c:496,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:498,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:499,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/compat/memory.c:510,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:516,1
    - Dst: __copy_to_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:517,1
    - Dst: DEFINE_XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/compat/memory.c:547,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:550,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:551,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:558,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:571,1
    - Dst: __copy_to_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:572,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/compat/memory.c:581,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/memory.c:581,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/compat/memory.c:590,1
    - Dst: __copy_to_guest
      Src: /src/xen/xen/common/compat/memory.c:613,1
    - Dst: DEFINE_XEN_GUEST_HANDLE
      Src: /src/xen/xen/common/compat/memory.c:619,1
    - Dst: compat_handle_is_null
      Src: /src/xen/xen/common/compat/memory.c:622,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/memory.c:624,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/common/compat/memory.c:625,1
    - Dst: guest_handle_cast
      Src: /src/xen/xen/common/compat/memory.c:626,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/memory.c:636,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/memory.c:642,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/compat/memory.c:646,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/common/compat/memory.c:652,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/compat/memory.c:661,1
    - Dst: __copy_to_compat_offset
      Src: /src/xen/xen/common/compat/memory.c:677,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/compat/memory.c:686,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/compat/memory.c:688,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/compat/memory.c:713,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/compat/memory.c:721,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/compat/memory.c:722,1
    - Dst: domain_crash
      Src: /src/xen/xen/common/compat/memory.c:728,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/compat/memory.c:734,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/common/compat/memory.c:735,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/memory.c:739,1
    - Dst: unlikely
      Src: /src/xen/xen/common/compat/memory.c:742,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 306
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 57
    functionDepth: 14
    functionLinenumber: 57
    functionLinenumberEnd: 746
    functionName: compat_memory_op
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 1
    functionsReached:
    - XLAT_vnuma_topology_info
    - copy_from_guest
    - typeof
    - BUILD_BUG_ON
    - compat_handle_is_null
    - XLAT_remove_from_physmap
    - do_memory_op
    - __copy_to_compat_offset
    - __copy_from_compat_offset
    - XLAT_mem_acquire_resource
    - hypercall_xlat_continuation
    - compat_arch_memory_op
    - set_xen_guest_handle
    - BUG_ON
    - hypercall_create_continuation
    - guest_handle_is_null
    - printk
    - ABS
    - guest_handle_cast
    - domain_crash
    - compat_handle_okay
    - iommu_get_reserved_device_memory
    - gdprintk
    - XLAT_add_to_physmap_batch
    - DEFINE_XEN_GUEST_HANDLE
    - min
    - ASSERT
    - XLAT_memory_exchange
    - hypercall_preempt_check
    - ASSERT_UNREACHABLE
    - XLAT_mem_access_op
    - pv_shim_online_memory
    - __copy_field_to_guest
    - XLAT_add_to_physmap
    - XLAT_memory_reservation
    - paging_mode_translate
    - __copy_to_guest
    - unlikely
    linkageType: ''
    returnType: int
    signature: int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void)
      arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: XLAT_memory_reservation_HNDL_extent_start
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_memory_reservation_HNDL_extent_start(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 229
    functionName: XLAT_memory_reservation_HNDL_extent_start
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_memory_reservation_HNDL_extent_start(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: XLAT_add_to_physmap_batch_HNDL_idxs
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_add_to_physmap_batch_HNDL_idxs(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: XLAT_add_to_physmap_batch_HNDL_gpfns
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_add_to_physmap_batch_HNDL_gpfns(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: XLAT_add_to_physmap_batch_HNDL_errs
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_add_to_physmap_batch_HNDL_errs(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: XLAT_mem_access_op_HNDL_pfn_list
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_mem_access_op_HNDL_pfn_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: XLAT_mem_access_op_HNDL_access_list
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_mem_access_op_HNDL_access_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 368
    functionName: XLAT_vnuma_topology_info_HNDL_vdistance_h
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_vnuma_topology_info_HNDL_vdistance_h(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: XLAT_vnuma_topology_info_HNDL_vcpu_to_vnode_h
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_vnuma_topology_info_HNDL_vcpu_to_vnode_h(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: XLAT_vnuma_topology_info_HNDL_vmemrange_h
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_vnuma_topology_info_HNDL_vmemrange_h(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: XLAT_mem_acquire_resource_HNDL_frame_list
    functionSourceFile: /src/xen/xen/common/compat/memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_mem_acquire_resource_HNDL_frame_list(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: xz_crc32_init
    functionSourceFile: /src/xen/xen/common/xz/crc32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_crc32_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - size
    - crc
    argTypes:
    - uint8_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: xz_crc32
    functionSourceFile: /src/xen/xen/common/xz/crc32.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_crc32(const uint8_t *buf, size_t size, uint32_t crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/private.h:22,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/common/xz/private.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: get_unaligned_le32
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 7
    functionsReached:
    - le32_to_cpu
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_unaligned_le32(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/xen/xen/common/xz/private.h:29,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/private.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - p
    argTypes:
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: put_unaligned_le32
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached:
    - memcpy
    - cpu_to_le32
    linkageType: ''
    returnType: void
    signature: void put_unaligned_le32(uint32_t val, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: get_le32
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_le32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: DEC_IS_SINGLE
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_SINGLE(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: DEC_IS_SINGLE
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_SINGLE(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: DEC_IS_PREALLOC
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_PREALLOC(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: DEC_IS_PREALLOC
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_PREALLOC(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: DEC_IS_DYNALLOC
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_DYNALLOC(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: DEC_IS_DYNALLOC
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_DYNALLOC(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: DEC_IS_MULTI
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_MULTI(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: DEC_IS_MULTI
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_MULTI(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: DEC_IS_MULTI
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEC_IS_MULTI(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: xz_dec_bcj_end
    functionSourceFile: /src/xen/xen/common/xz/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xz_dec_bcj_end(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum lzma_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: lzma_state_literal
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzma_state_literal(enum lzma_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum lzma_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: lzma_state_match
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzma_state_match(enum lzma_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum lzma_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: lzma_state_long_rep
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzma_state_long_rep(enum lzma_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum lzma_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: lzma_state_short_rep
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lzma_state_short_rep(enum lzma_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum lzma_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: lzma_state_is_literal
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lzma_state_is_literal(enum lzma_state state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: lzma_get_dist_state
    functionSourceFile: /src/xen/xen/common/xz/lzma2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t lzma_get_dist_state(uint32_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEC_IS_SINGLE
      Src: /src/xen/xen/common/xz/dec_lzma2.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dict
    - b
    argTypes:
    - struct dictionary*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 297
    functionName: dict_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - DEC_IS_SINGLE
    linkageType: ''
    returnType: void
    signature: void dict_reset(struct dictionary *dict, struct xz_buf *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dict
    - out_max
    argTypes:
    - struct dictionary*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 306
    functionName: dict_limit
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dict_limit(struct dictionary *dict, size_t out_max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - struct dictionary*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: dict_has_space
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dict_has_space(const struct dictionary *dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dict
    - dist
    argTypes:
    - struct dictionary*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 328
    functionName: dict_get
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_get(const struct dictionary *dict, uint32_t dist)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dict
    - byte
    argTypes:
    - struct dictionary*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 339
    functionName: dict_put
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dict_put(struct dictionary *dict, uint8_t byte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/common/xz/dec_lzma2.c:354,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - dict
    - len
    - dist
    argTypes:
    - struct dictionary*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 371
    functionName: dict_repeat
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - min_t
    linkageType: ''
    returnType: bool
    signature: bool dict_repeat(struct dictionary *dict, uint32_t *len, uint32_t dist)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/xz/dec_lzma2.c:381,1
    - Dst: memmove
      Src: /src/xen/xen/common/xz/dec_lzma2.c:397,1
    - Dst: DEC_IS_MULTI
      Src: /src/xen/xen/common/xz/dec_lzma2.c:403,1
    - Dst: memmove
      Src: /src/xen/xen/common/xz/dec_lzma2.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - dict
    - b
    - left
    argTypes:
    - struct dictionary*
    - struct xz_buf*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 420
    functionName: dict_uncompressed
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - memmove
    - min
    - DEC_IS_MULTI
    linkageType: ''
    returnType: void
    signature: "void dict_uncompressed(struct dictionary *dict, struct xz_buf *b,\n\t\t\t\t
      \    uint32_t *left)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEC_IS_MULTI
      Src: /src/xen/xen/common/xz/dec_lzma2.c:431,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_lzma2.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dict
    - b
    argTypes:
    - struct dictionary*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 448
    functionName: dict_flush
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - memcpy
    - DEC_IS_MULTI
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_flush(struct dictionary *dict, struct xz_buf *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: rc_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rc_reset(struct rc_dec *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - rc
    - b
    argTypes:
    - struct rc_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 477
    functionName: rc_read_init
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rc_read_init(struct rc_dec *rc, struct xz_buf *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: rc_limit_exceeded
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rc_limit_exceeded(const struct rc_dec *rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: rc_is_finished
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rc_is_finished(const struct rc_dec *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rc
    argTypes:
    - struct rc_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 501
    functionName: rc_normalize
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: always_inline
    signature: always_inline rc_normalize(struct rc_dec *rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_normalize
      Src: /src/xen/xen/common/xz/dec_lzma2.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - rc
    - prob
    argTypes:
    - struct rc_dec*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 533
    functionName: rc_bit
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_normalize
    linkageType: ''
    returnType: always_inline
    signature: always_inline rc_bit(struct rc_dec *rc, uint16_t *prob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - rc
    - probs
    - limit
    argTypes:
    - struct rc_dec*
    - uint16_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 549
    functionName: rc_bittree
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_bit
    linkageType: ''
    returnType: always_inline
    signature: "always_inline rc_bittree(struct rc_dec *rc,\n\t\t\t\t\t uint16_t *probs,
      uint32_t limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - rc
    - probs
    - dest
    - limit
    argTypes:
    - struct rc_dec*
    - uint16_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: rc_bittree_reverse
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_bit
    linkageType: ''
    returnType: always_inline
    signature: "always_inline rc_bittree_reverse(struct rc_dec *rc,\n\t\t\t\t\t     uint16_t
      *probs,\n\t\t\t\t\t     uint32_t *dest, uint32_t limit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc_normalize
      Src: /src/xen/xen/common/xz/dec_lzma2.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rc
    - dest
    - limit
    argTypes:
    - struct rc_dec*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 582
    functionName: rc_direct
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_normalize
    linkageType: ''
    returnType: void
    signature: void rc_direct(struct rc_dec *rc, uint32_t *dest, uint32_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_get
      Src: /src/xen/xen/common/xz/dec_lzma2.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec_lzma2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 595
    functionName: lzma_literal_probs
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - dict_get
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t *__init lzma_literal_probs(struct xz_dec_lzma2 *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lzma_literal_probs
      Src: /src/xen/xen/common/xz/dec_lzma2.c:607,1
    - Dst: lzma_state_is_literal
      Src: /src/xen/xen/common/xz/dec_lzma2.c:609,1
    - Dst: rc_bittree
      Src: /src/xen/xen/common/xz/dec_lzma2.c:610,1
    - Dst: dict_get
      Src: /src/xen/xen/common/xz/dec_lzma2.c:613,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:621,1
    - Dst: dict_put
      Src: /src/xen/xen/common/xz/dec_lzma2.c:631,1
    - Dst: lzma_state_literal
      Src: /src/xen/xen/common/xz/dec_lzma2.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec_lzma2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 633
    functionName: lzma_literal
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - lzma_state_literal
    - dict_get
    - lzma_state_is_literal
    - rc_bittree
    - dict_put
    - rc_bit
    - lzma_literal_probs
    linkageType: ''
    returnType: void
    signature: void lzma_literal(struct xz_dec_lzma2 *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:642,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:647,1
    - Dst: rc_bittree
      Src: /src/xen/xen/common/xz/dec_lzma2.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - s
    - l
    - pos_state
    argTypes:
    - struct xz_dec_lzma2*
    - struct lzma_len_dec*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 660
    functionName: lzma_len
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_bittree
    - rc_bit
    linkageType: ''
    returnType: void
    signature: "void lzma_len(struct xz_dec_lzma2 *s, struct lzma_len_dec *l,\n\t\t\t
      \   uint32_t pos_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lzma_state_match
      Src: /src/xen/xen/common/xz/dec_lzma2.c:669,1
    - Dst: lzma_len
      Src: /src/xen/xen/common/xz/dec_lzma2.c:675,1
    - Dst: lzma_get_dist_state
      Src: /src/xen/xen/common/xz/dec_lzma2.c:677,1
    - Dst: rc_bittree
      Src: /src/xen/xen/common/xz/dec_lzma2.c:678,1
    - Dst: rc_bittree_reverse
      Src: /src/xen/xen/common/xz/dec_lzma2.c:690,1
    - Dst: rc_direct
      Src: /src/xen/xen/common/xz/dec_lzma2.c:693,1
    - Dst: rc_bittree_reverse
      Src: /src/xen/xen/common/xz/dec_lzma2.c:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - s
    - pos_state
    argTypes:
    - struct xz_dec_lzma2*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 699
    functionName: lzma_match
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_bittree_reverse
    - lzma_state_match
    - lzma_len
    - rc_bittree
    - rc_direct
    - lzma_get_dist_state
    linkageType: ''
    returnType: void
    signature: void lzma_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:709,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:710,1
    - Dst: lzma_state_short_rep
      Src: /src/xen/xen/common/xz/dec_lzma2.c:712,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:717,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:720,1
    - Dst: lzma_state_long_rep
      Src: /src/xen/xen/common/xz/dec_lzma2.c:734,1
    - Dst: lzma_len
      Src: /src/xen/xen/common/xz/dec_lzma2.c:735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - s
    - pos_state
    argTypes:
    - struct xz_dec_lzma2*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 736
    functionName: lzma_rep_match
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - lzma_state_short_rep
    - lzma_state_long_rep
    - lzma_len
    - rc_bit
    linkageType: ''
    returnType: void
    signature: void lzma_rep_match(struct xz_dec_lzma2 *s, uint32_t pos_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dict_has_space
      Src: /src/xen/xen/common/xz/dec_lzma2.c:747,1
    - Dst: dict_repeat
      Src: /src/xen/xen/common/xz/dec_lzma2.c:748,1
    - Dst: dict_has_space
      Src: /src/xen/xen/common/xz/dec_lzma2.c:754,1
    - Dst: rc_limit_exceeded
      Src: /src/xen/xen/common/xz/dec_lzma2.c:754,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:757,1
    - Dst: lzma_literal
      Src: /src/xen/xen/common/xz/dec_lzma2.c:759,1
    - Dst: rc_bit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:761,1
    - Dst: lzma_rep_match
      Src: /src/xen/xen/common/xz/dec_lzma2.c:762,1
    - Dst: lzma_match
      Src: /src/xen/xen/common/xz/dec_lzma2.c:764,1
    - Dst: dict_repeat
      Src: /src/xen/xen/common/xz/dec_lzma2.c:766,1
    - Dst: rc_normalize
      Src: /src/xen/xen/common/xz/dec_lzma2.c:775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec_lzma2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 778
    functionName: lzma_main
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_limit_exceeded
    - dict_repeat
    - lzma_literal
    - lzma_match
    - rc_bit
    - rc_normalize
    - lzma_rep_match
    - dict_has_space
    linkageType: ''
    returnType: bool
    signature: bool lzma_main(struct xz_dec_lzma2 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rc_reset
      Src: /src/xen/xen/common/xz/dec_lzma2.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec_lzma2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 810
    functionName: lzma_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - rc_reset
    linkageType: ''
    returnType: void
    signature: void lzma_reset(struct xz_dec_lzma2 *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lzma_reset
      Src: /src/xen/xen/common/xz/dec_lzma2.c:843,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - s
    - props
    argTypes:
    - struct xz_dec_lzma2*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 846
    functionName: lzma_props
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - lzma_reset
    linkageType: ''
    returnType: bool
    signature: bool lzma_props(struct xz_dec_lzma2 *s, uint8_t props)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_lzma2.c:877,1
    - Dst: memzero
      Src: /src/xen/xen/common/xz/dec_lzma2.c:880,1
    - Dst: lzma_main
      Src: /src/xen/xen/common/xz/dec_lzma2.c:895,1
    - Dst: memmove
      Src: /src/xen/xen/common/xz/dec_lzma2.c:902,1
    - Dst: lzma_main
      Src: /src/xen/xen/common/xz/dec_lzma2.c:921,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_lzma2.c:937,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec_lzma2*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 864
    functionDepth: 5
    functionLinenumber: 864
    functionLinenumberEnd: 943
    functionName: lzma2_lzma
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - memmove
    - memzero
    - memcpy
    - lzma_main
    linkageType: ''
    returnType: bool
    signature: bool lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: dict_reset
      Src: /src/xen/xen/common/xz/dec_lzma2.c:996,1
    - Dst: lzma_reset
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1022,1
    - Dst: lzma_props
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1059,1
    - Dst: rc_read_init
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1070,1
    - Dst: dict_limit
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1088,1
    - Dst: min_t
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1088,1
    - Dst: lzma2_lzma
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1091,1
    - Dst: dict_flush
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1094,1
    - Dst: rc_is_finished
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1098,1
    - Dst: rc_reset
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1101,1
    - Dst: dict_uncompressed
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1114,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 87
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec_lzma2*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 949
    functionDepth: 6
    functionLinenumber: 949
    functionLinenumberEnd: 1124
    functionName: xz_dec_lzma2_run
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - dict_flush
    - rc_reset
    - lzma2_lzma
    - lzma_props
    - dict_limit
    - rc_read_init
    - dict_reset
    - lzma_reset
    - min_t
    - dict_uncompressed
    - rc_is_finished
    linkageType: ''
    returnType: XZ_EXTERN
    signature: "XZ_EXTERN xz_dec_lzma2_run(struct xz_dec_lzma2 *s,\n\t\t\t\t\t      struct
      xz_buf *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1129,1
    - Dst: DEC_IS_PREALLOC
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1136,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1137,1
    - Dst: free
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1139,1
    - Dst: DEC_IS_DYNALLOC
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mode
    - dict_max
    argTypes:
    - enum xz_mode
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1148
    functionName: xz_dec_lzma2_create
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - large_malloc
    - free
    - DEC_IS_DYNALLOC
    - malloc
    - DEC_IS_PREALLOC
    linkageType: ''
    returnType: XZ_EXTERN
    signature: "XZ_EXTERN *__init xz_dec_lzma2_create(enum xz_mode mode,\n\t\t\t\t\t\t\t
      \ uint32_t dict_max)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEC_IS_MULTI
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1159,1
    - Dst: DEC_IS_DYNALLOC
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1165,1
    - Dst: large_free
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1168,1
    - Dst: large_malloc
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - s
    - props
    argTypes:
    - struct xz_dec_lzma2*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1184
    functionName: xz_dec_lzma2_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - DEC_IS_DYNALLOC
    - large_free
    - large_malloc
    - DEC_IS_MULTI
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, uint8_t props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEC_IS_MULTI
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1188,1
    - Dst: large_free
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1189,1
    - Dst: free
      Src: /src/xen/xen/common/xz/dec_lzma2.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec_lzma2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1192
    functionName: xz_dec_lzma2_end
    functionSourceFile: /src/xen/xen/common/xz/dec_lzma2.c
    functionUses: 0
    functionsReached:
    - free
    - large_free
    - DEC_IS_MULTI
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_lzma2_end(struct xz_dec_lzma2 *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: bcj_x86_test_msbyte
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bcj_x86_test_msbyte(uint8_t b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bcj_x86_test_msbyte
      Src: /src/xen/xen/common/xz/dec_bcj.c:119,1
    - Dst: bcj_x86_test_msbyte
      Src: /src/xen/xen/common/xz/dec_bcj.c:129,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/common/xz/dec_bcj.c:130,1
    - Dst: bcj_x86_test_msbyte
      Src: /src/xen/xen/common/xz/dec_bcj.c:138,1
    - Dst: put_unaligned_le32
      Src: /src/xen/xen/common/xz/dec_bcj.c:146,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 156
    functionName: bcj_x86
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - put_unaligned_le32
    - bcj_x86_test_msbyte
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_x86(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/xz/dec_bcj.c:166,1
    - Dst: put_unaligned_be32
      Src: /src/xen/xen/common/xz/dec_bcj.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: bcj_powerpc
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - get_unaligned_be32
    - put_unaligned_be32
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_powerpc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 261
    functionName: bcj_ia64
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_ia64(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 284
    functionName: bcj_arm
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_arm(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 312
    functionName: bcj_armthumb
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_armthumb(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/xz/dec_bcj.c:322,1
    - Dst: put_unaligned_be32
      Src: /src/xen/xen/common/xz/dec_bcj.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - s
    - buf
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: bcj_sparc
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - get_unaligned_be32
    - put_unaligned_be32
    linkageType: ''
    returnType: size_t
    signature: size_t bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bcj_x86
      Src: /src/xen/xen/common/xz/dec_bcj.c:356,1
    - Dst: bcj_powerpc
      Src: /src/xen/xen/common/xz/dec_bcj.c:361,1
    - Dst: bcj_ia64
      Src: /src/xen/xen/common/xz/dec_bcj.c:366,1
    - Dst: bcj_arm
      Src: /src/xen/xen/common/xz/dec_bcj.c:371,1
    - Dst: bcj_armthumb
      Src: /src/xen/xen/common/xz/dec_bcj.c:376,1
    - Dst: bcj_sparc
      Src: /src/xen/xen/common/xz/dec_bcj.c:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - s
    - buf
    - pos
    - size
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 392
    functionName: bcj_apply
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - bcj_powerpc
    - bcj_ia64
    - bcj_x86
    - bcj_armthumb
    - bcj_sparc
    - bcj_arm
    linkageType: ''
    returnType: void
    signature: "void bcj_apply(struct xz_dec_bcj *s,\n\t\t\t     uint8_t *buf, size_t
      *pos, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/common/xz/dec_bcj.c:403,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_bcj.c:404,1
    - Dst: memmove
      Src: /src/xen/xen/common/xz/dec_bcj.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec_bcj*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: bcj_flush
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - memmove
    - min_t
    - memcpy
    linkageType: ''
    returnType: void
    signature: void bcj_flush(struct xz_dec_bcj *s, struct xz_buf *b)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: bcj_flush
      Src: /src/xen/xen/common/xz/dec_bcj.c:429,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_bcj.c:451,1
    - Dst: xz_dec_lzma2_run
      Src: /src/xen/xen/common/xz/dec_bcj.c:454,1
    - Dst: bcj_apply
      Src: /src/xen/xen/common/xz/dec_bcj.c:459,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_bcj.c:471,1
    - Dst: xz_dec_lzma2_run
      Src: /src/xen/xen/common/xz/dec_bcj.c:499,1
    - Dst: bcj_apply
      Src: /src/xen/xen/common/xz/dec_bcj.c:509,1
    - Dst: bcj_flush
      Src: /src/xen/xen/common/xz/dec_bcj.c:519,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - s
    - lzma2
    - b
    argTypes:
    - struct xz_dec_bcj*
    - struct xz_dec_lzma2*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 417
    functionDepth: 7
    functionLinenumber: 417
    functionLinenumberEnd: 525
    functionName: xz_dec_bcj_run
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - bcj_flush
    - xz_dec_lzma2_run
    - bcj_apply
    - memcpy
    linkageType: ''
    returnType: XZ_EXTERN
    signature: "XZ_EXTERN xz_dec_bcj_run(struct xz_dec_bcj *s,\n\t\t\t\t\t    struct
      xz_dec_lzma2 *lzma2,\n\t\t\t\t\t    struct xz_buf *b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/xz/dec_bcj.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - single_call
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: xz_dec_bcj_create
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN *__init xz_dec_bcj_create(bool single_call)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - s
    - id
    argTypes:
    - struct xz_dec_bcj*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 572
    functionName: xz_dec_bcj_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_bcj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/common/xz/dec_stream.c:159,1
    - Dst: memcpy
      Src: /src/xen/xen/common/xz/dec_stream.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: fill_temp
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - min_t
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool fill_temp(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - s
    - in
    - in_pos
    - in_size
    argTypes:
    - struct xz_dec*
    - uint8_t*
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 204
    functionName: dec_vli
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum xz_ret
    signature: "enum xz_ret dec_vli(struct xz_dec *s, const uint8_t *in,\n\t\t\t\t
      \ size_t *in_pos, size_t in_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xz_dec_bcj_run
      Src: /src/xen/xen/common/xz/dec_stream.c:227,1
    - Dst: xz_dec_lzma2_run
      Src: /src/xen/xen/common/xz/dec_stream.c:230,1
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:245,1
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 218
    functionDepth: 8
    functionLinenumber: 218
    functionLinenumberEnd: 278
    functionName: dec_block
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - xz_crc32
    - xz_dec_lzma2_run
    - xz_dec_bcj_run
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret dec_block(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: index_update
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - xz_crc32
    linkageType: ''
    returnType: void
    signature: void index_update(struct xz_dec *s, const struct xz_buf *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dec_vli
      Src: /src/xen/xen/common/xz/dec_stream.c:301,1
    - Dst: index_update
      Src: /src/xen/xen/common/xz/dec_stream.c:303,1
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 340
    functionName: dec_index
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - xz_crc32
    - index_update
    - dec_vli
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret dec_index(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 363
    functionName: crc32_validate
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret crc32_validate(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 383
    functionName: check_skip
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_skip(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memeq
      Src: /src/xen/xen/common/xz/dec_stream.c:389,1
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:392,1
    - Dst: get_le32
      Src: /src/xen/xen/common/xz/dec_stream.c:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 419
    functionName: dec_stream_header
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - memeq
    - xz_crc32
    - get_le32
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret dec_stream_header(struct xz_dec *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memeq
      Src: /src/xen/xen/common/xz/dec_stream.c:424,1
    - Dst: xz_crc32
      Src: /src/xen/xen/common/xz/dec_stream.c:427,1
    - Dst: get_le32
      Src: /src/xen/xen/common/xz/dec_stream.c:427,1
    - Dst: get_le32
      Src: /src/xen/xen/common/xz/dec_stream.c:435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 446
    functionName: dec_stream_footer
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - memeq
    - xz_crc32
    - get_le32
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret dec_stream_footer(struct xz_dec *s)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fill_temp
      Src: /src/xen/xen/common/xz/dec_stream.c:570,1
    - Dst: dec_stream_header
      Src: /src/xen/xen/common/xz/dec_stream.c:582,1
    - Dst: fill_temp
      Src: /src/xen/xen/common/xz/dec_stream.c:614,1
    - Dst: dec_block_header
      Src: /src/xen/xen/common/xz/dec_stream.c:617,1
    - Dst: dec_block
      Src: /src/xen/xen/common/xz/dec_stream.c:626,1
    - Dst: crc32_validate
      Src: /src/xen/xen/common/xz/dec_stream.c:658,1
    - Dst: check_skip
      Src: /src/xen/xen/common/xz/dec_stream.c:663,1
    - Dst: dec_index
      Src: /src/xen/xen/common/xz/dec_stream.c:672,1
    - Dst: index_update
      Src: /src/xen/xen/common/xz/dec_stream.c:684,1
    - Dst: index_update
      Src: /src/xen/xen/common/xz/dec_stream.c:693,1
    - Dst: memeq
      Src: /src/xen/xen/common/xz/dec_stream.c:696,1
    - Dst: crc32_validate
      Src: /src/xen/xen/common/xz/dec_stream.c:705,1
    - Dst: fill_temp
      Src: /src/xen/xen/common/xz/dec_stream.c:715,1
    - Dst: dec_stream_footer
      Src: /src/xen/xen/common/xz/dec_stream.c:718,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 549
    functionDepth: 9
    functionLinenumber: 549
    functionLinenumberEnd: 723
    functionName: dec_main
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - memeq
    - dec_block_header
    - fill_temp
    - index_update
    - check_skip
    - dec_block
    - dec_stream_header
    - dec_index
    - dec_stream_footer
    - crc32_validate
    linkageType: ''
    returnType: enum xz_ret
    signature: enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memzero
      Src: /src/xen/xen/common/xz/dec_stream.c:731,1
    - Dst: memzero
      Src: /src/xen/xen/common/xz/dec_stream.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: xz_dec_reset
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 0
    functionsReached:
    - memzero
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_reset(struct xz_dec *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEC_IS_SINGLE
      Src: /src/xen/xen/common/xz/dec_stream.c:768,1
    - Dst: xz_dec_reset
      Src: /src/xen/xen/common/xz/dec_stream.c:769,1
    - Dst: dec_main
      Src: /src/xen/xen/common/xz/dec_stream.c:773,1
    - Dst: DEC_IS_SINGLE
      Src: /src/xen/xen/common/xz/dec_stream.c:775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - struct xz_dec*
    - struct xz_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 762
    functionDepth: 10
    functionLinenumber: 762
    functionLinenumberEnd: 796
    functionName: xz_dec_run
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 1
    functionsReached:
    - DEC_IS_SINGLE
    - dec_main
    - xz_dec_reset
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_run(struct xz_dec *s, struct xz_buf *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/xen/common/xz/dec_stream.c:800,1
    - Dst: xz_dec_bcj_create
      Src: /src/xen/xen/common/xz/dec_stream.c:807,1
    - Dst: DEC_IS_SINGLE
      Src: /src/xen/xen/common/xz/dec_stream.c:807,1
    - Dst: xz_dec_lzma2_create
      Src: /src/xen/xen/common/xz/dec_stream.c:812,1
    - Dst: xz_dec_reset
      Src: /src/xen/xen/common/xz/dec_stream.c:816,1
    - Dst: free
      Src: /src/xen/xen/common/xz/dec_stream.c:824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - mode
    - dict_max
    argTypes:
    - enum xz_mode
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 826
    functionName: xz_dec_init
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 1
    functionsReached:
    - xz_dec_reset
    - free
    - malloc
    - DEC_IS_SINGLE
    - xz_dec_lzma2_create
    - xz_dec_bcj_create
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN *__init xz_dec_init(enum xz_mode mode, uint32_t dict_max)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xz_dec_lzma2_end
      Src: /src/xen/xen/common/xz/dec_stream.c:831,1
    - Dst: xz_dec_bcj_end
      Src: /src/xen/xen/common/xz/dec_stream.c:833,1
    - Dst: free
      Src: /src/xen/xen/common/xz/dec_stream.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct xz_dec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 837
    functionName: xz_dec_end
    functionSourceFile: /src/xen/xen/common/xz/dec_stream.c
    functionUses: 1
    functionsReached:
    - xz_dec_lzma2_end
    - free
    - xz_dec_bcj_end
    linkageType: ''
    returnType: XZ_EXTERN
    signature: XZ_EXTERN xz_dec_end(struct xz_dec *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: malloc
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 262
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: malloc(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: free
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 925
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: memzero
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memzero(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Assert
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assert(cond, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: Trace
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Trace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Tracev
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracev(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: Tracevv
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracevv(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Tracec
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracec(c, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: Tracecv
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracecv(c, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/common/gzip/gunzip.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: error
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 325
    functionsReached:
    - panic
    linkageType: ''
    returnType: __init
    signature: __init error(const char *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/xen/xen/common/gzip/gunzip.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: get_byte
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached:
    - error
    linkageType: ''
    returnType: __init
    signature: __init get_byte(struct gunzip_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: flush_window
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __init
    signature: __init flush_window(struct gunzip_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: gzip_check
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __init
    signature: __init gzip_check(char *image, unsigned long image_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gzip_check
      Src: /src/xen/xen/common/gzip/gunzip.c:114,1
    - Dst: malloc
      Src: /src/xen/xen/common/gzip/gunzip.c:117,1
    - Dst: makecrc
      Src: /src/xen/xen/common/gzip/gunzip.c:127,1
    - Dst: gunzip
      Src: /src/xen/xen/common/gzip/gunzip.c:129,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/gunzip.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - output
    - image
    - image_len
    argTypes:
    - char*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 141
    functionName: perform_gunzip
    functionSourceFile: /src/xen/xen/common/gzip/gunzip.c
    functionUses: 1
    functionsReached:
    - gunzip
    - free
    - malloc
    - makecrc
    - gzip_check
    linkageType: ''
    returnType: __init
    signature: __init perform_gunzip(char *output, char *image, unsigned long image_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: NEXTBYTE
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXTBYTE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: NEEDBITS
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: DUMPBITS
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMPBITS(n)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:307,1
    - Dst: malloc
      Src: /src/xen/xen/common/gzip/inflate.c:309,1
    - Dst: memzero
      Src: /src/xen/xen/common/gzip/inflate.c:319,1
    - Dst: Tracecv
      Src: /src/xen/xen/common/gzip/inflate.c:322,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:335,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:353,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:367,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:376,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:386,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:396,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:401,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:405,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:410,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:418,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:429,1
    - Dst: malloc
      Src: /src/xen/xen/common/gzip/inflate.c:433,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:437,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:441,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:446,1
    - Dst: DEBG1
      Src: /src/xen/xen/common/gzip/inflate.c:457,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:459,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:476,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:494,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:496,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:499,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:505,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 154
    argCount: 7
    argNames:
    - b
    - n
    - s
    - d
    - e
    - t
    - m
    argTypes:
    - unsigned*
    - unsigned
    - unsigned
    - ush*
    - ush*
    - struct huft**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 507
    functionName: huft_build
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - Tracecv
    - free
    - DEBG1
    - malloc
    - DEBG
    - memzero
    - huft_free
    linkageType: ''
    returnType: int
    signature: "int huft_build(\n    unsigned *b, unsigned n, unsigned s, const ush
      *d, const ush *e,\n    struct huft **t, int *m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct huft*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 529
    functionName: huft_free
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int huft_free(struct huft *t)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:562,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:567,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:569,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:571,1
    - Dst: Tracevv
      Src: /src/xen/xen/common/gzip/inflate.c:575,1
    - Dst: flush_window
      Src: /src/xen/xen/common/gzip/inflate.c:579,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:590,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:592,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:595,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:600,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:602,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:604,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:605,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:607,1
    - Dst: Tracevv
      Src: /src/xen/xen/common/gzip/inflate.c:608,1
    - Dst: memcpy
      Src: /src/xen/xen/common/gzip/inflate.c:615,1
    - Dst: Tracevv
      Src: /src/xen/xen/common/gzip/inflate.c:622,1
    - Dst: flush_window
      Src: /src/xen/xen/common/gzip/inflate.c:627,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 5
    argNames:
    - s
    - tl
    - td
    - bl
    - bd
    argTypes:
    - struct gunzip_state*
    - struct huft*
    - struct huft*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 644
    functionName: inflate_codes
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - Tracevv
    - NEEDBITS
    - flush_window
    - DUMPBITS
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int inflate_codes(\n    struct gunzip_state *s, struct huft *tl, struct
      huft *td, int bl, int bd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:654,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:664,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:668,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:670,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:671,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:674,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:679,1
    - Dst: flush_window
      Src: /src/xen/xen/common/gzip/inflate.c:684,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:687,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 700
    functionName: inflate_stored
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - DEBG
    - NEEDBITS
    - flush_window
    - DUMPBITS
    linkageType: ''
    returnType: int
    signature: int inflate_stored(struct gunzip_state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:721,1
    - Dst: malloc
      Src: /src/xen/xen/common/gzip/inflate.c:723,1
    - Dst: huft_build
      Src: /src/xen/xen/common/gzip/inflate.c:737,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:738,1
    - Dst: huft_build
      Src: /src/xen/xen/common/gzip/inflate.c:746,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:748,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:749,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:751,1
    - Dst: inflate_codes
      Src: /src/xen/xen/common/gzip/inflate.c:756,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:759,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:760,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:761,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 764
    functionName: inflate_fixed
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - free
    - huft_build
    - malloc
    - DEBG
    - huft_free
    - inflate_codes
    linkageType: ''
    returnType: int
    signature: int inflate_fixed(struct gunzip_state *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:790,1
    - Dst: malloc
      Src: /src/xen/xen/common/gzip/inflate.c:792,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:802,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:804,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:805,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:807,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:808,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:810,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:817,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:822,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:824,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:829,1
    - Dst: huft_build
      Src: /src/xen/xen/common/gzip/inflate.c:833,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:836,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:841,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:849,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:851,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:857,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:859,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:869,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:871,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:882,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:884,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:895,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:898,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:900,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:906,1
    - Dst: huft_build
      Src: /src/xen/xen/common/gzip/inflate.c:910,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:912,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:914,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:915,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:920,1
    - Dst: huft_build
      Src: /src/xen/xen/common/gzip/inflate.c:922,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:924,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:926,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:927,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:929,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:934,1
    - Dst: inflate_codes
      Src: /src/xen/xen/common/gzip/inflate.c:937,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:940,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:943,1
    - Dst: huft_free
      Src: /src/xen/xen/common/gzip/inflate.c:944,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:947,1
    - Dst: free
      Src: /src/xen/xen/common/gzip/inflate.c:949,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 134
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 955
    functionName: inflate_dynamic
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - NEEDBITS
    - free
    - huft_build
    - error
    - malloc
    - DEBG
    - DUMPBITS
    - huft_free
    - inflate_codes
    linkageType: ''
    returnType: int
    signature: int inflate_dynamic(struct gunzip_state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:968,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:975,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:977,1
    - Dst: NEEDBITS
      Src: /src/xen/xen/common/gzip/inflate.c:980,1
    - Dst: DUMPBITS
      Src: /src/xen/xen/common/gzip/inflate.c:982,1
    - Dst: inflate_dynamic
      Src: /src/xen/xen/common/gzip/inflate.c:990,1
    - Dst: inflate_stored
      Src: /src/xen/xen/common/gzip/inflate.c:992,1
    - Dst: inflate_fixed
      Src: /src/xen/xen/common/gzip/inflate.c:994,1
    - Dst: DEBG
      Src: /src/xen/xen/common/gzip/inflate.c:996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - struct gunzip_state*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 1003
    functionName: inflate_block
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 0
    functionsReached:
    - inflate_stored
    - NEEDBITS
    - inflate_fixed
    - inflate_dynamic
    - DEBG
    - DUMPBITS
    linkageType: ''
    returnType: int
    signature: int inflate_block(struct gunzip_state *s, int *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflate_block
      Src: /src/xen/xen/common/gzip/inflate.c:1018,1
    - Dst: flush_window
      Src: /src/xen/xen/common/gzip/inflate.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1006
    functionDepth: 4
    functionLinenumber: 1006
    functionLinenumberEnd: 1036
    functionName: inflate
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 4
    functionsReached:
    - inflate_block
    - flush_window
    linkageType: ''
    returnType: int
    signature: int inflate(struct gunzip_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1081
    functionName: makecrc
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void makecrc(struct gunzip_state *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1104,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1105,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1106,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1110,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1116,1
    - Dst: get_byte
      Src: /src/xen/xen/common/gzip/inflate.c:1120,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1122,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1126,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1130,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1133,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1134,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1135,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1136,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1138,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1139,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1142,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1144,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1147,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1153,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1159,1
    - Dst: inflate
      Src: /src/xen/xen/common/gzip/inflate.c:1164,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1168,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1171,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1174,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1177,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1180,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1189,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1190,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1191,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1192,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1194,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1195,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1196,1
    - Dst: NEXTBYTE
      Src: /src/xen/xen/common/gzip/inflate.c:1197,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1202,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1208,1
    - Dst: error
      Src: /src/xen/xen/common/gzip/inflate.c:1214,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct gunzip_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1095
    functionDepth: 5
    functionLinenumber: 1095
    functionLinenumberEnd: 1216
    functionName: gunzip
    functionSourceFile: /src/xen/xen/common/gzip/inflate.c
    functionUses: 8
    functionsReached:
    - get_byte
    - NEXTBYTE
    - error
    - inflate
    linkageType: ''
    returnType: int
    signature: int gunzip(struct gunzip_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: ALIGN
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: PTR_ALIGN
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_ALIGN(p, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: MIN
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: MAX
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: CHECK_F
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_F(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: CHECK_E
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_E(f, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: ZSTD_STATIC_ASSERT
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_memcpy
      Src: /src/xen/xen/common/zstd/zstd_internal.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: ZSTD_copy8
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached:
    - __builtin_memcpy
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_copy8(void *dst, const void *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/zstd_internal.h:258,1
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/zstd_internal.h:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - dst
    - src
    - length
    argTypes:
    - void*
    - void*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 265
    functionName: ZSTD_wildcopy
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached:
    - ZSTD_copy8
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_wildcopy(void *dst, const void *src, ptrdiff_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ZSTD_ALIGN
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: ZSTD_PTR_ALIGN
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_PTR_ALIGN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/xen/xen/common/zstd/zstd_internal.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    functionName: ZSTD_highbit32
    functionSourceFile: /src/xen/xen/common/zstd/zstd_internal.h
    functionUses: 0
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_highbit32(U32 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stack
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: stack_push
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stack_push(stack, size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_PTR_ALIGN
      Src: /src/xen/xen/common/zstd/zstd_common.c:39,1
    - Dst: stack_push
      Src: /src/xen/xen/common/zstd/zstd_common.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 48
    functionName: ZSTD_initStack
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached:
    - stack_push
    - ZSTD_PTR_ALIGN
    linkageType: ''
    returnType: ZSTD_customMem
    signature: ZSTD_customMem ZSTD_initStack(void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_PTR_ALIGN
      Src: /src/xen/xen/common/zstd/zstd_common.c:53,1
    - Dst: stack_push
      Src: /src/xen/xen/common/zstd/zstd_common.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - size
    argTypes:
    - void*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: ZSTD_stackAllocAll
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached:
    - stack_push
    - ZSTD_PTR_ALIGN
    linkageType: ''
    returnType: void
    signature: void *__init ZSTD_stackAllocAll(void *opaque, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_push
      Src: /src/xen/xen/common/zstd/zstd_common.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: ZSTD_stackAlloc
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached:
    - stack_push
    linkageType: ''
    returnType: void
    signature: void *__init cf_check ZSTD_stackAlloc(void *opaque, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: ZSTD_stackFree
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_stackFree(void *opaque, void *address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMem::customAlloc
      Src: /src/xen/xen/common/zstd/zstd_common.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - customMem
    argTypes:
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ZSTD_malloc
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMem::customAlloc
    linkageType: ''
    returnType: void
    signature: void *__init ZSTD_malloc(size_t size, ZSTD_customMem customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMem::customFree
      Src: /src/xen/xen/common/zstd/zstd_common.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - customMem
    argTypes:
    - void*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: ZSTD_free
    functionSourceFile: /src/xen/xen/common/zstd/zstd_common.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMem::customFree
    linkageType: ''
    returnType: void
    signature: void ZSTD_free(void *ptr, ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: HUF_BLOCKBOUND
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_BLOCKBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: HUF_COMPRESSBOUND
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_COMPRESSBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: HUF_CREATE_STATIC_CTABLE
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: HUF_DTABLE_SIZE
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DTABLE_SIZE(maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DTable
    - ','
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: HUF_CREATE_STATIC_DTABLEX2
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DTable
    - ','
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: HUF_CREATE_STATIC_DTABLEX4
    functionSourceFile: /src/xen/xen/common/zstd/huf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_DTABLEX4(DTable, maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: FSE_versionNumber
    functionSourceFile: /src/xen/xen/common/zstd/entropy_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init FSE_versionNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/xen/xen/common/zstd/entropy_common.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: FSE_isError
    functionSourceFile: /src/xen/xen/common/zstd/entropy_common.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init FSE_isError(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/xen/xen/common/zstd/entropy_common.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: HUF_isError
    functionSourceFile: /src/xen/xen/common/zstd/entropy_common.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init HUF_isError(size_t code)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:73,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/entropy_common.c:74,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:77,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/entropy_common.c:92,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:106,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/entropy_common.c:112,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/entropy_common.c:147,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:151,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:153,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 78
    argCount: 5
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 158
    functionName: FSE_readNCount
    functionSourceFile: /src/xen/xen/common/zstd/entropy_common.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_readLE32
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_readNCount(short *normalizedCounter, unsigned *maxSVPtr,
      unsigned *tableLogPtr, const void *headerBuffer, size_t hbSize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:175,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:183,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:185,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:196,1
    - Dst: FSE_decompress_wksp
      Src: /src/xen/xen/common/zstd/entropy_common.c:197,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/entropy_common.c:198,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/entropy_common.c:203,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:209,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:215,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/entropy_common.c:219,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:221,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/entropy_common.c:227,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/entropy_common.c:228,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:230,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/entropy_common.c:238,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 9
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    - workspace
    - workspaceSize
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 243
    functionName: HUF_readStats_wksp
    functionSourceFile: /src/xen/xen/common/zstd/entropy_common.c
    functionUses: 0
    functionsReached:
    - ERROR
    - BIT_highbit32
    - FSE_isError
    - FSE_decompress_wksp
    - memset
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_readStats_wksp(BYTE *huffWeight, size_t hwSize, U32 *rankStats,
      U32 *nbSymbolsPtr, U32 *tableLogPtr, const void *src, size_t srcSize, void *workspace,
      size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/xen/xen/common/zstd/bitstream.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: BIT_highbit32
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 1
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned BIT_highbit32(register U32 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/bitstream.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bitC
    - startPtr
    - dstCapacity
    argTypes:
    - BIT_CStream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 172
    functionName: BIT_initCStream
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_initCStream(BIT_CStream_t *bitC, void *startPtr, size_t
      dstCapacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitC
    - value
    - nbBits
    argTypes:
    - BIT_CStream_t*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: BIT_addBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_addBits(BIT_CStream_t *bitC, size_t value, unsigned
      nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitC
    - value
    - nbBits
    argTypes:
    - BIT_CStream_t*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: BIT_addBitsFast
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_addBitsFast(BIT_CStream_t *bitC, size_t value, unsigned
      nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_writeLEST
      Src: /src/xen/xen/common/zstd/bitstream.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: BIT_flushBitsFast
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - ZSTD_writeLEST
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_flushBitsFast(BIT_CStream_t *bitC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_writeLEST
      Src: /src/xen/xen/common/zstd/bitstream.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 214
    functionName: BIT_flushBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - ZSTD_writeLEST
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_flushBits(BIT_CStream_t *bitC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBitsFast
      Src: /src/xen/xen/common/zstd/bitstream.h:221,1
    - Dst: BIT_flushBits
      Src: /src/xen/xen/common/zstd/bitstream.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: BIT_closeCStream
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - BIT_addBitsFast
    - BIT_flushBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_closeCStream(BIT_CStream_t *bitC)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/common/zstd/bitstream.h:242,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/bitstream.h:243,1
    - Dst: ZSTD_readLEST
      Src: /src/xen/xen/common/zstd/bitstream.h:249,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/bitstream.h:252,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/bitstream.h:254,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/bitstream.h:277,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/bitstream.h:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - bitD
    - srcBuffer
    - srcSize
    argTypes:
    - BIT_DStream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 285
    functionName: BIT_initDStream
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - memset
    - ERROR
    - ZSTD_readLEST
    - BIT_highbit32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_initDStream(BIT_DStream_t *bitD, const void *srcBuffer,
      size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitContainer
    - start
    argTypes:
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 287
    functionName: BIT_getUpperBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_getUpperBits(size_t bitContainer, U32 const start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bitContainer
    - start
    - nbBits
    argTypes:
    - size_t
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: BIT_getMiddleBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_getMiddleBits(size_t bitContainer, U32 const start,
      U32 const nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitContainer
    - nbBits
    argTypes:
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: BIT_getLowerBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_getLowerBits(size_t bitContainer, U32 const nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: BIT_lookBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_lookBits(const BIT_DStream_t *bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: BIT_lookBitsFast
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_lookBitsFast(const BIT_DStream_t *bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    functionName: BIT_skipBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_skipBits(BIT_DStream_t *bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBits
      Src: /src/xen/xen/common/zstd/bitstream.h:323,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/bitstream.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: BIT_readBits
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - BIT_lookBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_readBits(BIT_DStream_t *bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/xen/xen/common/zstd/bitstream.h:332,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/bitstream.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: BIT_readBitsFast
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - BIT_lookBitsFast
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_readBitsFast(BIT_DStream_t *bitD, U32 nbBits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLEST
      Src: /src/xen/xen/common/zstd/bitstream.h:350,1
    - Dst: ZSTD_readLEST
      Src: /src/xen/xen/common/zstd/bitstream.h:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - bitD
    argTypes:
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 370
    functionName: BIT_DStream_status::BIT_reloadDStream
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached:
    - ZSTD_readLEST
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t *bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - DStream
    argTypes:
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 378
    functionName: BIT_endOfDStream
    functionSourceFile: /src/xen/xen/common/zstd/bitstream.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t *DStream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: HUF_STATIC_ASSERT
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - table
    argTypes:
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: HUF_getDTableDesc
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: DTableDesc
    signature: DTableDesc HUF_getDTableDesc(const HUF_DTable *table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN
      Src: /src/xen/xen/common/zstd/huf_decompress.c:102,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:105,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/huf_decompress.c:109,1
    - Dst: HUF_readStats_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:112,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:113,1
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:118,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:120,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 5
    argNames:
    - DTable
    - src
    - srcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 153
    functionName: HUF_readDTableX2_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ERROR
    - HUF_readStats_wksp
    - HUF_STATIC_ASSERT
    - HUF_isError
    - memcpy
    - ALIGN
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_readDTableX2_wksp(HUF_DTable *DTable, const void *src, size_t
      srcSize, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/xen/xen/common/zstd/huf_decompress.c:157,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/huf_decompress.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Dstream
    - dt
    - dtLog
    argTypes:
    - BIT_DStream_t*
    - HUF_DEltX2*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: HUF_decodeSymbolX2
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - BIT_lookBitsFast
    linkageType: ''
    returnType: BYTE
    signature: BYTE HUF_decodeSymbolX2(BIT_DStream_t *Dstream, const HUF_DEltX2 *dt,
      const U32 dtLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: HUF_DECODE_SYMBOLX2_0
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: HUF_DECODE_SYMBOLX2_1
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: HUF_DECODE_SYMBOLX2_2
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:178,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:179,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:180,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:181,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:182,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:186,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:187,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - p
    - bitDPtr
    - pEnd
    - dt
    - dtLog
    argTypes:
    - BYTE*
    - BIT_DStream_t*
    - BYTE*
    - HUF_DEltX2*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 194
    functionName: HUF_decodeStreamX2
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_DECODE_SYMBOLX2_0
    - HUF_DECODE_SYMBOLX2_1
    - HUF_DECODE_SYMBOLX2_2
    - BIT_reloadDStream
    linkageType: ''
    returnType: FORCE_INLINE
    signature: FORCE_INLINE HUF_decodeStreamX2(BYTE *p, BIT_DStream_t *const bitDPtr,
      BYTE *const pEnd, const HUF_DEltX2 *const dt, const U32 dtLog)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:203,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:207,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:208,1
    - Dst: HUF_decodeStreamX2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:212,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:215,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 219
    functionName: HUF_decompress1X2_usingDTable_internal
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_initDStream
    - ERROR
    - BIT_endOfDStream
    - HUF_decodeStreamX2
    - HUF_isError
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X2_usingDTable_internal(void *dst, size_t dstSize,
      const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:223,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:225,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: HUF_decompress1X2_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ERROR
    - HUF_decompress1X2_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X2_usingDTable(void *dst, size_t dstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX2_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:233,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:234,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:237,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - DCtx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: HUF_decompress1X2_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HUF_isError
    - HUF_readDTableX2_wksp
    - HUF_decompress1X2_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable *DCtx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:248,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:262,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:263,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:264,1
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:279,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:283,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:285,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:286,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:290,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:291,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:295,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:296,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:300,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:301,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:306,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:306,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:306,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:306,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:308,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:309,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:310,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:311,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:312,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:313,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:314,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:315,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:316,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:317,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:318,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:319,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:320,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:321,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:322,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:323,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:324,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:324,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:324,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:324,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:329,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:331,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:333,1
    - Dst: HUF_decodeStreamX2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:337,1
    - Dst: HUF_decodeStreamX2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:338,1
    - Dst: HUF_decodeStreamX2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:339,1
    - Dst: HUF_decodeStreamX2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:340,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:343,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:343,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:343,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:343,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:345,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 350
    functionName: HUF_decompress4X2_usingDTable_internal
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_initDStream
    - HUF_DECODE_SYMBOLX2_1
    - HUF_DECODE_SYMBOLX2_2
    - ERROR
    - BIT_reloadDStream
    - HUF_decodeStreamX2
    - HUF_DECODE_SYMBOLX2_0
    - BIT_endOfDStream
    - HUF_isError
    - ZSTD_readLE16
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X2_usingDTable_internal(void *dst, size_t dstSize,
      const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:354,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:356,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: HUF_decompress4X2_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal
    - HUF_getDTableDesc
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X2_usingDTable(void *dst, size_t dstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX2_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:364,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:365,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:368,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 373
    functionName: HUF_decompress4X2_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal
    - ERROR
    - HUF_isError
    - HUF_readDTableX2_wksp
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:398,1
    - Dst: ZSTD_writeLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:403,1
    - Dst: ZSTD_writeLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 9
    argNames:
    - DTable
    - sizeLog
    - consumed
    - rankValOrigin
    - minWeight
    - sortedSymbols
    - sortedListSize
    - nbBitsBaseline
    - baseSeq
    argTypes:
    - HUF_DEltX4*
    - U32
    - U32
    - U32*
    - int
    - sortedSymbol_t*
    - U32
    - U32
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 432
    functionName: HUF_fillDTableX4Level2
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_writeLE16
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void HUF_fillDTableX4Level2(HUF_DEltX4 *DTable, U32 sizeLog, const
      U32 consumed, const U32 *rankValOrigin, const int minWeight,\n\t\t\t\t\tconst
      sortedSymbol_t *sortedSymbols, const U32 sortedListSize, U32 nbBitsBaseline,
      U16 baseSeq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:446,1
    - Dst: HUF_fillDTableX4Level2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:462,1
    - Dst: ZSTD_writeLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - DTable
    - targetLog
    - sortedList
    - sortedListSize
    - rankStart
    - rankValOrigin
    - maxWeight
    - nbBitsBaseline
    argTypes:
    - HUF_DEltX4*
    - U32
    - sortedSymbol_t*
    - U32
    - U32*
    - rankVal_t
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 478
    functionName: HUF_fillDTableX4
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_writeLE16
    - HUF_fillDTableX4Level2
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void HUF_fillDTableX4(HUF_DEltX4 *DTable, const U32 targetLog, const
      sortedSymbol_t *sortedList,\n\t\t\t\t  const U32 sortedListSize, const U32 *rankStart,\n\t\t\t
      \         rankVal_t rankValOrigin, const U32 maxWeight, const U32 nbBitsBaseline)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:483,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/huf_decompress.c:497,1
    - Dst: ALIGN
      Src: /src/xen/xen/common/zstd/huf_decompress.c:506,1
    - Dst: ALIGN
      Src: /src/xen/xen/common/zstd/huf_decompress.c:508,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:511,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/huf_decompress.c:516,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/huf_decompress.c:518,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:520,1
    - Dst: HUF_readStats_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:523,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:524,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:529,1
    - Dst: HUF_fillDTableX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:585,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:589,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 5
    argNames:
    - DTable
    - src
    - srcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 591
    functionName: HUF_readDTableX4_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ERROR
    - HUF_readStats_wksp
    - memset
    - HUF_fillDTableX4
    - HUF_STATIC_ASSERT
    - HUF_isError
    - memcpy
    - ALIGN
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_readDTableX4_wksp(HUF_DTable *DTable, const void *src, size_t
      srcSize, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/xen/xen/common/zstd/huf_decompress.c:595,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:596,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/huf_decompress.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - op
    - DStream
    - dt
    - dtLog
    argTypes:
    - void*
    - BIT_DStream_t*
    - HUF_DEltX4*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: HUF_decodeSymbolX4
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - memcpy
    - BIT_lookBitsFast
    linkageType: ''
    returnType: U32
    signature: U32 HUF_decodeSymbolX4(void *op, BIT_DStream_t *DStream, const HUF_DEltX4
      *dt, const U32 dtLog)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/xen/xen/common/zstd/huf_decompress.c:603,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:604,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/huf_decompress.c:606,1
    - Dst: BIT_skipBits
      Src: /src/xen/xen/common/zstd/huf_decompress.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - op
    - DStream
    - dt
    - dtLog
    argTypes:
    - void*
    - BIT_DStream_t*
    - HUF_DEltX4*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 616
    functionName: HUF_decodeLastSymbolX4
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - memcpy
    - BIT_lookBitsFast
    linkageType: ''
    returnType: U32
    signature: U32 HUF_decodeLastSymbolX4(void *op, BIT_DStream_t *DStream, const
      HUF_DEltX4 *dt, const U32 dtLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: HUF_DECODE_SYMBOLX4_0
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX4_0(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: HUF_DECODE_SYMBOLX4_1
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX4_1(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 627
    functionName: HUF_DECODE_SYMBOLX4_2
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX4_2(ptr, DStreamPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:633,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:634,1
    - Dst: HUF_DECODE_SYMBOLX4_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:635,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:636,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:637,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:641,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:642,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:645,1
    - Dst: HUF_decodeLastSymbolX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:648,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - p
    - bitDPtr
    - pEnd
    - dt
    - dtLog
    argTypes:
    - BYTE*
    - BIT_DStream_t*
    - BYTE*
    - HUF_DEltX4*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 651
    functionName: HUF_decodeStreamX4
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_DECODE_SYMBOLX4_0
    - HUF_DECODE_SYMBOLX4_2
    - BIT_reloadDStream
    - HUF_decodeLastSymbolX4
    - HUF_DECODE_SYMBOLX4_1
    linkageType: ''
    returnType: FORCE_INLINE
    signature: FORCE_INLINE HUF_decodeStreamX4(BYTE *p, BIT_DStream_t *bitDPtr, BYTE
      *const pEnd, const HUF_DEltX4 *const dt, const U32 dtLog)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:659,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:660,1
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:670,1
    - Dst: HUF_decodeStreamX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:671,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:675,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 680
    functionName: HUF_decompress1X4_usingDTable_internal
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_initDStream
    - ERROR
    - BIT_endOfDStream
    - HUF_isError
    - HUF_decodeStreamX4
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X4_usingDTable_internal(void *dst, size_t dstSize,
      const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:684,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:686,1
    - Dst: HUF_decompress1X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 688
    functionName: HUF_decompress1X4_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ERROR
    - HUF_decompress1X4_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X4_usingDTable(void *dst, size_t dstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX4_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:694,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:695,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:698,1
    - Dst: HUF_decompress1X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - DCtx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 703
    functionName: HUF_decompress1X4_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_isError
    - ERROR
    - HUF_readDTableX4_wksp
    - HUF_decompress1X4_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X4_DCtx_wksp(HUF_DTable *DCtx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:708,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:722,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:723,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/huf_decompress.c:724,1
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:739,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:743,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:745,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:746,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:750,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:751,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:755,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:756,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:760,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:761,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:766,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:766,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:766,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:766,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:768,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:769,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:770,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:771,1
    - Dst: HUF_DECODE_SYMBOLX4_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:772,1
    - Dst: HUF_DECODE_SYMBOLX4_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:773,1
    - Dst: HUF_DECODE_SYMBOLX4_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:774,1
    - Dst: HUF_DECODE_SYMBOLX4_1
      Src: /src/xen/xen/common/zstd/huf_decompress.c:775,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:776,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:777,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:778,1
    - Dst: HUF_DECODE_SYMBOLX4_2
      Src: /src/xen/xen/common/zstd/huf_decompress.c:779,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:780,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:781,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:782,1
    - Dst: HUF_DECODE_SYMBOLX4_0
      Src: /src/xen/xen/common/zstd/huf_decompress.c:783,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:785,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:785,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:785,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:785,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:790,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:792,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:794,1
    - Dst: HUF_decodeStreamX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:798,1
    - Dst: HUF_decodeStreamX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:799,1
    - Dst: HUF_decodeStreamX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:800,1
    - Dst: HUF_decodeStreamX4
      Src: /src/xen/xen/common/zstd/huf_decompress.c:801,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:805,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:805,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:805,1
    - Dst: BIT_endOfDStream
      Src: /src/xen/xen/common/zstd/huf_decompress.c:805,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:807,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 813
    functionName: HUF_decompress4X4_usingDTable_internal
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_initDStream
    - ERROR
    - HUF_DECODE_SYMBOLX4_0
    - HUF_DECODE_SYMBOLX4_2
    - BIT_reloadDStream
    - BIT_endOfDStream
    - HUF_isError
    - HUF_DECODE_SYMBOLX4_1
    - ZSTD_readLE16
    - HUF_decodeStreamX4
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X4_usingDTable_internal(void *dst, size_t dstSize,
      const void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:817,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:819,1
    - Dst: HUF_decompress4X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 821
    functionName: HUF_decompress4X4_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ERROR
    - HUF_decompress4X4_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X4_usingDTable(void *dst, size_t dstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX4_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:827,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/huf_decompress.c:828,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:831,1
    - Dst: HUF_decompress4X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 823
    functionDepth: 4
    functionLinenumber: 823
    functionLinenumberEnd: 836
    functionName: HUF_decompress4X4_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X4_usingDTable_internal
    - HUF_isError
    - ERROR
    - HUF_readDTableX4_wksp
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X4_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:844,1
    - Dst: HUF_decompress1X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:845,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: HUF_decompress1X_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - HUF_decompress1X2_usingDTable_internal
    - HUF_decompress1X4_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X_usingDTable(void *dst, size_t maxDstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/xen/xen/common/zstd/huf_decompress.c:851,1
    - Dst: HUF_decompress4X4_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:852,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/xen/xen/common/zstd/huf_decompress.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: HUF_decompress4X_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal
    - HUF_getDTableDesc
    - HUF_decompress4X4_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X_usingDTable(void *dst, size_t maxDstSize, const
      void *cSrc, size_t cSrcSize, const HUF_DTable *DTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dstSize
    - cSrcSize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 895
    functionName: HUF_selectDecoder
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 HUF_selectDecoder(size_t dstSize, size_t cSrcSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:903,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:905,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:907,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/huf_decompress.c:911,1
    - Dst: HUF_selectDecoder
      Src: /src/xen/xen/common/zstd/huf_decompress.c:916,1
    - Dst: HUF_decompress4X4_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:917,1
    - Dst: HUF_decompress4X2_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:918,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 920
    functionName: HUF_decompress4X_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_DCtx_wksp
    - HUF_decompress4X4_DCtx_wksp
    - ERROR
    - HUF_selectDecoder
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:926,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:928,1
    - Dst: HUF_selectDecoder
      Src: /src/xen/xen/common/zstd/huf_decompress.c:931,1
    - Dst: HUF_decompress4X4_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:932,1
    - Dst: HUF_decompress4X2_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 922
    functionDepth: 5
    functionLinenumber: 922
    functionLinenumberEnd: 935
    functionName: HUF_decompress4X_hufOnly_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HUF_decompress4X2_DCtx_wksp
    - HUF_decompress4X4_DCtx_wksp
    - HUF_selectDecoder
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable *dctx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:941,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/huf_decompress.c:943,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/huf_decompress.c:945,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/huf_decompress.c:949,1
    - Dst: HUF_selectDecoder
      Src: /src/xen/xen/common/zstd/huf_decompress.c:954,1
    - Dst: HUF_decompress1X4_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:955,1
    - Dst: HUF_decompress1X2_DCtx_wksp
      Src: /src/xen/xen/common/zstd/huf_decompress.c:956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workspace
    - workspaceSize
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: HUF_decompress1X_DCtx_wksp
    functionSourceFile: /src/xen/xen/common/zstd/huf_decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress1X4_DCtx_wksp
    - ERROR
    - HUF_decompress1X2_DCtx_wksp
    - HUF_selectDecoder
    - memset
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X_DCtx_wksp(HUF_DTable *dctx, void *dst, size_t
      dstSize, const void *cSrc, size_t cSrcSize, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: FSE_STATIC_ASSERT
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: FSE_CAT
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CAT(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: FSE_FUNCTION_NAME
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_FUNCTION_NAME(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: FSE_TYPE_NAME
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_TYPE_NAME(X, Y)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:97,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:99,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:101,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/fse_decompress.c:122,1
    - Dst: FSE_TABLESTEP
      Src: /src/xen/xen/common/zstd/fse_decompress.c:128,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:140,1
    - Dst: BIT_highbit32
      Src: /src/xen/xen/common/zstd/fse_decompress.c:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 6
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    - workspace
    - workspaceSize
    argTypes:
    - FSE_DTable*
    - short*
    - unsigned
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 155
    functionName: FSE_buildDTable_wksp
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached:
    - BIT_highbit32
    - ERROR
    - FSE_TABLESTEP
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildDTable_wksp(FSE_DTable *dt, const short *normalizedCounter,
      unsigned maxSymbolValue, unsigned tableLog, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dt
    - symbolValue
    argTypes:
    - FSE_DTable*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: FSE_buildDTable_rle
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildDTable_rle(FSE_DTable *dt, BYTE symbolValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dt
    - nbBits
    argTypes:
    - FSE_DTable*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 202
    functionName: FSE_buildDTable_raw
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildDTable_raw(FSE_DTable *dt, unsigned nbBits)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/fse_decompress.c:217,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:217,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/fse_decompress.c:219,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/fse_decompress.c:220,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:225,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:226,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:229,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:231,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:235,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:241,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:244,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:246,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:253,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:254,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:255,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:256,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:261,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:262,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse_decompress.c:263,1
    - Dst: FSE_GETSYMBOL
      Src: /src/xen/xen/common/zstd/fse_decompress.c:264,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 6
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - dt
    - fast
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - FSE_DTable*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 270
    functionName: FSE_decompress_usingDTable_generic
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached:
    - FSE_initDState
    - FSE_GETSYMBOL
    - BIT_initDStream
    - ERROR
    - CHECK_F
    - BIT_reloadDStream
    linkageType: ''
    returnType: FORCE_INLINE
    signature: "FORCE_INLINE FSE_decompress_usingDTable_generic(void *dst, size_t
      maxDstSize, const void *cSrc, size_t cSrcSize, const FSE_DTable *dt,\n\t\t\t\t\t\t
      \      const unsigned fast)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statePtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: FSE_GETSYMBOL
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_GETSYMBOL(statePtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSE_decompress_usingDTable_generic
      Src: /src/xen/xen/common/zstd/fse_decompress.c:280,1
    - Dst: FSE_decompress_usingDTable_generic
      Src: /src/xen/xen/common/zstd/fse_decompress.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - originalSize
    - cSrc
    - cSrcSize
    - dt
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - FSE_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: FSE_decompress_usingDTable
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 0
    functionsReached:
    - FSE_decompress_usingDTable_generic
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_decompress_usingDTable(void *dst, size_t originalSize, const
      void *cSrc, size_t cSrcSize, const FSE_DTable *dt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FSE_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/fse_decompress.c:296,1
    - Dst: FSE_DTABLE_SIZE_U32
      Src: /src/xen/xen/common/zstd/fse_decompress.c:299,1
    - Dst: ALIGN
      Src: /src/xen/xen/common/zstd/fse_decompress.c:301,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:304,1
    - Dst: FSE_readNCount
      Src: /src/xen/xen/common/zstd/fse_decompress.c:309,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/fse_decompress.c:310,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/fse_decompress.c:315,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/fse_decompress.c:319,1
    - Dst: FSE_buildDTable_wksp
      Src: /src/xen/xen/common/zstd/fse_decompress.c:319,1
    - Dst: FSE_decompress_usingDTable
      Src: /src/xen/xen/common/zstd/fse_decompress.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - dst
    - dstCapacity
    - cSrc
    - cSrcSize
    - maxLog
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 322
    functionName: FSE_decompress_wksp
    functionSourceFile: /src/xen/xen/common/zstd/fse_decompress.c
    functionUses: 1
    functionsReached:
    - FSE_STATIC_ASSERT
    - FSE_decompress_usingDTable
    - ERROR
    - FSE_DTABLE_SIZE_U32
    - FSE_isError
    - FSE_buildDTable_wksp
    - CHECK_F
    - FSE_readNCount
    - ALIGN
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_decompress_wksp(void *dst, size_t dstCapacity, const void
      *cSrc, size_t cSrcSize, unsigned maxLog, void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ZSTD_PREFETCH
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ZSTD_copy4
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ZSTD_copy4(void *dst, const void *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:103,1
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: ZSTD_DCtxWorkspaceBound
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_ALIGN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtxWorkspaceBound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/decompress.c:117,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 124
    functionName: ZSTD_decompressBegin
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_STATIC_ASSERT
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBegin(ZSTD_DCtx *dctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:133,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:136,1
    - Dst: ZSTD_decompressBegin
      Src: /src/xen/xen/common/zstd/decompress.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: ZSTD_createDCtx_advanced
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_malloc
    - memcpy
    - ZSTD_decompressBegin
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx *__init ZSTD_createDCtx_advanced(ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_initStack
      Src: /src/xen/xen/common/zstd/decompress.c:143,1
    - Dst: ZSTD_createDCtx_advanced
      Src: /src/xen/xen/common/zstd/decompress.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: ZSTD_initDCtx
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_createDCtx_advanced
    - ZSTD_initStack
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx *__init ZSTD_initDCtx(void *workspace, size_t workspaceSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: ZSTD_freeDCtx
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_free
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDCtx(ZSTD_DCtx *dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstDCtx
    - srcDCtx
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: ZSTD_copyDCtx
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ZSTD_copyDCtx(ZSTD_DCtx *dstDCtx, const ZSTD_DCtx *srcDCtx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 191
    functionName: ZSTD_isFrame
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_readLE32
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init ZSTD_isFrame(const void *buffer, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 208
    functionName: ZSTD_frameHeaderSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_frameHeaderSize(const void *src, size_t srcSize)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:221,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:222,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:225,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:226,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:230,1
    - Dst: ZSTD_frameHeaderSize
      Src: /src/xen/xen/common/zstd/decompress.c:235,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:252,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:257,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/decompress.c:270,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:274,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/decompress.c:284,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:285,1
    - Dst: ZSTD_readLE64
      Src: /src/xen/xen/common/zstd/decompress.c:286,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:291,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 3
    argNames:
    - fparamsPtr
    - src
    - srcSize
    argTypes:
    - ZSTD_frameParams*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 298
    functionName: ZSTD_getFrameParams
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ERROR
    - ZSTD_readLE64
    - ZSTD_readLE32
    - ZSTD_frameHeaderSize
    - memset
    - ZSTD_readLE16
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void
      *src, size_t srcSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/zstd/decompress.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: ZSTD_getFrameContentSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_getFrameParams
    linkageType: ''
    returnType: unsigned long long __init
    signature: unsigned long long __init ZSTD_getFrameContentSize(const void *src,
      size_t srcSize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:333,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:338,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:339,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/xen/xen/common/zstd/decompress.c:350,1
    - Dst: ZSTD_findFrameCompressedSize
      Src: /src/xen/xen/common/zstd/decompress.c:360,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:361,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 376
    functionName: ZSTD_findDecompressedSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_findFrameCompressedSize
    - ERROR
    - ZSTD_readLE32
    - ZSTD_getFrameContentSize
    - ZSTD_isError
    linkageType: ''
    returnType: unsigned long long __init
    signature: unsigned long long __init ZSTD_findDecompressedSize(const void *src,
      size_t srcSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/zstd/decompress.c:384,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:385,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:388,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:390,1
    - Dst: xxh64_reset
      Src: /src/xen/xen/common/zstd/decompress.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - dctx
    - src
    - headerSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: ZSTD_decodeFrameHeader
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - xxh64_reset
    - ERROR
    - ZSTD_isError
    - ZSTD_getFrameParams
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodeFrameHeader(ZSTD_DCtx *dctx, const void *src, size_t
      headerSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:407,1
    - Dst: ZSTD_readLE24
      Src: /src/xen/xen/common/zstd/decompress.c:409,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - src
    - srcSize
    - bpPtr
    argTypes:
    - void*
    - size_t
    - blockProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 420
    functionName: ZSTD_getcBlockSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_readLE24
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getcBlockSize(const void *src, size_t srcSize, blockProperties_t
      *bpPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:425,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: ZSTD_copyRawBlock
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_copyRawBlock(void *dst, size_t dstCapacity, const void
      *src, size_t srcSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:433,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:435,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - regenSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: ZSTD_setRleBlock
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - memset
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_setRleBlock(void *dst, size_t dstCapacity, const void *src,
      size_t srcSize, size_t regenSize)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:445,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:454,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:458,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:463,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:488,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:490,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/decompress.c:492,1
    - Dst: HUF_decompress1X_usingDTable
      Src: /src/xen/xen/common/zstd/decompress.c:494,1
    - Dst: HUF_decompress4X_usingDTable
      Src: /src/xen/xen/common/zstd/decompress.c:495,1
    - Dst: HUF_decompress1X2_DCtx_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:497,1
    - Dst: HUF_decompress4X_hufOnly_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:499,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:501,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:508,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/decompress.c:524,1
    - Dst: ZSTD_readLE24
      Src: /src/xen/xen/common/zstd/decompress.c:528,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:534,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:535,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:538,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/decompress.c:559,1
    - Dst: ZSTD_readLE24
      Src: /src/xen/xen/common/zstd/decompress.c:563,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:565,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:569,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:570,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:576,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 104
    argCount: 3
    argNames:
    - dctx
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 442
    functionDepth: 6
    functionLinenumber: 442
    functionLinenumberEnd: 579
    functionName: ZSTD_decodeLiteralsBlock
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X_hufOnly_wksp
    - ERROR
    - HUF_decompress1X_usingDTable
    - HUF_decompress1X2_DCtx_wksp
    - ZSTD_readLE32
    - HUF_decompress4X_usingDTable
    - ZSTD_readLE24
    - memset
    - HUF_isError
    - memcpy
    - ZSTD_readLE16
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx *dctx, const void *src, size_t
      srcSize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:771,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:773,1
    - Dst: FSE_buildDTable_rle
      Src: /src/xen/xen/common/zstd/decompress.c:774,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:780,1
    - Dst: ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:786,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:789,1
    - Dst: FSE_readNCount
      Src: /src/xen/xen/common/zstd/decompress.c:793,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/decompress.c:794,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:795,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:797,1
    - Dst: FSE_buildDTable_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 11
    argNames:
    - DTableSpace
    - DTablePtr
    - type
    - max
    - maxLog
    - src
    - srcSize
    - defaultTable
    - flagRepeatTable
    - workspace
    - workspaceSize
    argTypes:
    - FSE_DTable*
    - FSE_DTable**
    - symbolEncodingType_e
    - U32
    - U32
    - void*
    - size_t
    - FSE_decode_t4*
    - U32
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 804
    functionName: ZSTD_buildSeqTable
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FSE_isError
    - FSE_buildDTable_wksp
    - FSE_readNCount
    - FSE_buildDTable_rle
    - ALIGN
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildSeqTable(FSE_DTable *DTableSpace, const FSE_DTable
      **DTablePtr,\n\t\t\t\t\tsymbolEncodingType_e type, U32 max, U32 maxLog, const
      void *src,\n\t\t\t\t\tsize_t srcSize, const FSE_decode_t4 *defaultTable,\n\t\t\t\t\tU32
      flagRepeatTable, void *workspace, size_t workspaceSize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:814,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:826,1
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/decompress.c:827,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:830,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:839,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/xen/xen/common/zstd/decompress.c:848,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:850,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:851,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/xen/xen/common/zstd/decompress.c:855,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:857,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:858,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/xen/xen/common/zstd/decompress.c:862,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:864,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:865,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - dctx
    - nbSeqPtr
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 871
    functionName: ZSTD_decodeSeqHeaders
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_buildSeqTable
    - ZSTD_readLE16
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx *dctx, int *nbSeqPtr, const
      void *src, size_t srcSize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:904,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:906,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:908,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:912,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:923,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:926,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:932,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 8
    argNames:
    - op
    - oend
    - sequence
    - litPtr
    - litLimit
    - base
    - vBase
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 941
    functionName: ZSTD_execSequenceLast7
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - memmove
    - ZSTD_wildcopy
    - ERROR
    linkageType: ''
    returnType: FORCE_NOINLINE
    signature: "FORCE_NOINLINE ZSTD_execSequenceLast7(BYTE *op, BYTE *const oend,
      seq_t sequence, const BYTE **litPtr, const BYTE *const litLimit, const BYTE
      *const base,\n\t\t\t      const BYTE *const vBase, const BYTE *const dictEnd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:947,1
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:948,1
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:949,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:973,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:974,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:975,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:998,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:999,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1000,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1002,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1003,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1004,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1007,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1008,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1009,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1010,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1011,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - seqState
    argTypes:
    - seqState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 1016
    functionName: ZSTD_decodeSequence
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - BIT_readBitsFast
    - ZSTD_32bits
    - FSE_updateState
    - BIT_reloadDStream
    - FSE_peekSymbol
    linkageType: ''
    returnType: seq_t
    signature: seq_t ZSTD_decodeSequence(seqState_t *seqState)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1031,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1033,1
    - Dst: ZSTD_execSequenceLast7
      Src: /src/xen/xen/common/zstd/decompress.c:1035,1
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/decompress.c:1038,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1040,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1049,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:1052,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:1058,1
    - Dst: ZSTD_copy4
      Src: /src/xen/xen/common/zstd/decompress.c:1083,1
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/decompress.c:1086,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1093,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1100,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 8
    argNames:
    - op
    - oend
    - sequence
    - litPtr
    - litLimit
    - base
    - vBase
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1018
    functionDepth: 3
    functionLinenumber: 1018
    functionLinenumberEnd: 1103
    functionName: ZSTD_execSequence
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_copy8
    - memmove
    - ZSTD_execSequenceLast7
    - ZSTD_copy4
    - ZSTD_wildcopy
    linkageType: ''
    returnType: FORCE_INLINE
    signature: "FORCE_INLINE ZSTD_execSequence(BYTE *op, BYTE *const oend, seq_t sequence,
      const BYTE **litPtr, const BYTE *const litLimit, const BYTE *const base,\n\t\t\t
      const BYTE *const vBase, const BYTE *const dictEnd)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decodeSeqHeaders
      Src: /src/xen/xen/common/zstd/decompress.c:1121,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1122,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1136,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1136,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1137,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1138,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1139,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1141,1
    - Dst: ZSTD_decodeSequence
      Src: /src/xen/xen/common/zstd/decompress.c:1144,1
    - Dst: ZSTD_execSequence
      Src: /src/xen/xen/common/zstd/decompress.c:1145,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1146,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1154,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1167,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1105
    functionDepth: 4
    functionLinenumber: 1105
    functionLinenumberEnd: 1173
    functionName: ZSTD_decompressSequences
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - CHECK_E
    - ZSTD_decodeSeqHeaders
    - FSE_initDState
    - BIT_initDStream
    - ERROR
    - ZSTD_execSequence
    - BIT_reloadDStream
    - ZSTD_decodeSequence
    - memcpy
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressSequences(ZSTD_DCtx *dctx, void *dst, size_t
      maxDstSize, const void *seqStart, size_t seqSize)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:1179,1
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:1180,1
    - Dst: FSE_peekSymbol
      Src: /src/xen/xen/common/zstd/decompress.c:1181,1
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:1206,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1207,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1208,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1209,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1211,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1213,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1214,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1215,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1239,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1240,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1241,1
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/decompress.c:1243,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1244,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1245,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1256,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1257,1
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/decompress.c:1258,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1259,1
    - Dst: FSE_updateState
      Src: /src/xen/xen/common/zstd/decompress.c:1260,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - seqState
    - longOffsets
    argTypes:
    - seqState_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1263
    functionName: ZSTD_decodeSequenceLong_generic
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - BIT_readBitsFast
    - ZSTD_32bits
    - FSE_updateState
    - BIT_reloadDStream
    - FSE_peekSymbol
    - MIN
    linkageType: ''
    returnType: FORCE_INLINE
    signature: FORCE_INLINE ZSTD_decodeSequenceLong_generic(seqState_t *seqState,
      int const longOffsets)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/xen/xen/common/zstd/decompress.c:1267,1
    - Dst: ZSTD_decodeSequenceLong_generic
      Src: /src/xen/xen/common/zstd/decompress.c:1268,1
    - Dst: ZSTD_decodeSequenceLong_generic
      Src: /src/xen/xen/common/zstd/decompress.c:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - seqState
    - windowSize
    argTypes:
    - seqState_t*
    - unsigned const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1265
    functionDepth: 3
    functionLinenumber: 1265
    functionLinenumberEnd: 1272
    functionName: ZSTD_decodeSequenceLong
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_decodeSequenceLong_generic
    - ZSTD_highbit32
    linkageType: ''
    returnType: seq_t
    signature: seq_t ZSTD_decodeSequenceLong(seqState_t *seqState, unsigned const
      windowSize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1288,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1290,1
    - Dst: ZSTD_execSequenceLast7
      Src: /src/xen/xen/common/zstd/decompress.c:1292,1
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/decompress.c:1295,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1297,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1306,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:1308,1
    - Dst: memmove
      Src: /src/xen/xen/common/zstd/decompress.c:1314,1
    - Dst: ZSTD_copy4
      Src: /src/xen/xen/common/zstd/decompress.c:1339,1
    - Dst: ZSTD_copy8
      Src: /src/xen/xen/common/zstd/decompress.c:1342,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1349,1
    - Dst: ZSTD_wildcopy
      Src: /src/xen/xen/common/zstd/decompress.c:1356,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 8
    argNames:
    - op
    - oend
    - sequence
    - litPtr
    - litLimit
    - base
    - vBase
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1359
    functionName: ZSTD_execSequenceLong
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_copy8
    - memmove
    - ZSTD_execSequenceLast7
    - ZSTD_copy4
    - ZSTD_wildcopy
    linkageType: ''
    returnType: FORCE_INLINE
    signature: "FORCE_INLINE ZSTD_execSequenceLong(BYTE *op, BYTE *const oend, seq_t
      sequence, const BYTE **litPtr,\n\t\t\t\t    const BYTE *const litLimit, const
      BYTE *const base,\n\t\t\t\t    const BYTE *const vBase, const BYTE *const dictEnd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decodeSeqHeaders
      Src: /src/xen/xen/common/zstd/decompress.c:1378,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1379,1
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:1390,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/xen/xen/common/zstd/decompress.c:1393,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1403,1
    - Dst: BIT_initDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1403,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1404,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1405,1
    - Dst: FSE_initDState
      Src: /src/xen/xen/common/zstd/decompress.c:1406,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1409,1
    - Dst: ZSTD_decodeSequenceLong
      Src: /src/xen/xen/common/zstd/decompress.c:1410,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1413,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/decompress.c:1416,1
    - Dst: ZSTD_decodeSequenceLong
      Src: /src/xen/xen/common/zstd/decompress.c:1417,1
    - Dst: ZSTD_execSequenceLong
      Src: /src/xen/xen/common/zstd/decompress.c:1419,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1420,1
    - Dst: ZSTD_PREFETCH
      Src: /src/xen/xen/common/zstd/decompress.c:1422,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1427,1
    - Dst: ZSTD_execSequenceLong
      Src: /src/xen/xen/common/zstd/decompress.c:1432,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1433,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1450,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1451,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1361
    functionDepth: 4
    functionLinenumber: 1361
    functionLinenumberEnd: 1456
    functionName: ZSTD_decompressSequencesLong
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - CHECK_E
    - ZSTD_decodeSeqHeaders
    - FSE_initDState
    - BIT_initDStream
    - ZSTD_decodeSequenceLong
    - ZSTD_PREFETCH
    - ERROR
    - ZSTD_STATIC_ASSERT
    - BIT_reloadDStream
    - memcpy
    - MIN
    - ZSTD_execSequenceLong
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressSequencesLong(ZSTD_DCtx *dctx, void *dst, size_t
      maxDstSize, const void *seqStart, size_t seqSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1463,1
    - Dst: ZSTD_decodeLiteralsBlock
      Src: /src/xen/xen/common/zstd/decompress.c:1467,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1468,1
    - Dst: ZSTD_decompressSequencesLong
      Src: /src/xen/xen/common/zstd/decompress.c:1478,1
    - Dst: ZSTD_decompressSequences
      Src: /src/xen/xen/common/zstd/decompress.c:1479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1458
    functionDepth: 7
    functionLinenumber: 1458
    functionLinenumberEnd: 1480
    functionName: ZSTD_decompressBlock_internal
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences
    - ZSTD_decompressSequencesLong
    - ERROR
    - ZSTD_decodeLiteralsBlock
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBlock_internal(ZSTD_DCtx *dctx, void *dst, size_t
      dstCapacity, const void *src, size_t srcSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dctx
    - dst
    argTypes:
    - ZSTD_DCtx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1490
    functionName: ZSTD_checkContinuity
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_checkContinuity(ZSTD_DCtx *dctx, const void *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_checkContinuity
      Src: /src/xen/xen/common/zstd/decompress.c:1496,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/xen/xen/common/zstd/decompress.c:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1493
    functionDepth: 8
    functionLinenumber: 1493
    functionLinenumberEnd: 1500
    functionName: ZSTD_decompressBlock
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkContinuity
    - ZSTD_decompressBlock_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBlock(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity,
      const void *src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_checkContinuity
      Src: /src/xen/xen/common/zstd/decompress.c:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dctx
    - blockStart
    - blockSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1509
    functionName: ZSTD_insertBlock
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkContinuity
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_insertBlock(ZSTD_DCtx *dctx, const void *blockStart, size_t
      blockSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1515,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:1516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - byte
    - length
    argTypes:
    - void*
    - size_t
    - BYTE
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1518
    functionName: ZSTD_generateNxBytes
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - memset
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_generateNxBytes(void *dst, size_t dstCapacity, BYTE byte,
      size_t length)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1527,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1528,1
    - Dst: ZSTD_frameHeaderSize
      Src: /src/xen/xen/common/zstd/decompress.c:1535,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1536,1
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/zstd/decompress.c:1541,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1542,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1545,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/xen/xen/common/zstd/decompress.c:1554,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1555,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1559,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1570,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1525
    functionDepth: 2
    functionLinenumber: 1525
    functionLinenumberEnd: 1577
    functionName: ZSTD_findFrameCompressedSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 2
    functionsReached:
    - ZSTD_getFrameParams
    - ERROR
    - ZSTD_readLE32
    - ZSTD_getcBlockSize
    - ZSTD_frameHeaderSize
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1591,1
    - Dst: ZSTD_frameHeaderSize
      Src: /src/xen/xen/common/zstd/decompress.c:1595,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1596,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1599,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:1600,1
    - Dst: ZSTD_decodeFrameHeader
      Src: /src/xen/xen/common/zstd/decompress.c:1600,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/xen/xen/common/zstd/decompress.c:1609,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1610,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1616,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/xen/xen/common/zstd/decompress.c:1619,1
    - Dst: ZSTD_copyRawBlock
      Src: /src/xen/xen/common/zstd/decompress.c:1620,1
    - Dst: ZSTD_generateNxBytes
      Src: /src/xen/xen/common/zstd/decompress.c:1621,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1623,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1626,1
    - Dst: xxh64_update
      Src: /src/xen/xen/common/zstd/decompress.c:1629,1
    - Dst: xxh64_digest
      Src: /src/xen/xen/common/zstd/decompress.c:1638,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1641,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1642,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1644,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - srcPtr
    - srcSizePtr
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1581
    functionDepth: 8
    functionLinenumber: 1581
    functionLinenumberEnd: 1653
    functionName: ZSTD_decompressFrame
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_copyRawBlock
    - ZSTD_generateNxBytes
    - ERROR
    - ZSTD_decodeFrameHeader
    - ZSTD_readLE32
    - ZSTD_getcBlockSize
    - xxh64_digest
    - ZSTD_frameHeaderSize
    - CHECK_F
    - xxh64_update
    - ZSTD_decompressBlock_internal
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressFrame(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity,
      const void **srcPtr, size_t *srcSizePtr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1666,1
    - Dst: ZSTD_DDictDictContent
      Src: /src/xen/xen/common/zstd/decompress.c:1669,1
    - Dst: ZSTD_DDictDictSize
      Src: /src/xen/xen/common/zstd/decompress.c:1670,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1676,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1681,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1682,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1684,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1691,1
    - Dst: ZSTD_refDDict
      Src: /src/xen/xen/common/zstd/decompress.c:1697,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:1701,1
    - Dst: ZSTD_decompressBegin_usingDict
      Src: /src/xen/xen/common/zstd/decompress.c:1701,1
    - Dst: ZSTD_checkContinuity
      Src: /src/xen/xen/common/zstd/decompress.c:1703,1
    - Dst: ZSTD_decompressFrame
      Src: /src/xen/xen/common/zstd/decompress.c:1706,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1707,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1658
    functionDepth: 9
    functionLinenumber: 1658
    functionLinenumberEnd: 1720
    functionName: ZSTD_decompressMultiFrame
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_DDictDictContent
    - ZSTD_checkContinuity
    - ERROR
    - ZSTD_readLE32
    - ZSTD_decompressBegin_usingDict
    - ZSTD_refDDict
    - ZSTD_DDictDictSize
    - CHECK_F
    - ZSTD_decompressFrame
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressMultiFrame(ZSTD_DCtx *dctx, void *dst, size_t
      dstCapacity, const void *src, size_t srcSize, const void *dict, size_t dictSize,\n\t\t\t\t\tconst
      ZSTD_DDict *ddict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressMultiFrame
      Src: /src/xen/xen/common/zstd/decompress.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1722
    functionDepth: 10
    functionLinenumber: 1722
    functionLinenumberEnd: 1725
    functionName: ZSTD_decompress_usingDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressMultiFrame
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompress_usingDict(ZSTD_DCtx *dctx, void *dst, size_t
      dstCapacity, const void *src, size_t srcSize, const void *dict, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompress_usingDict
      Src: /src/xen/xen/common/zstd/decompress.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1727
    functionDepth: 11
    functionLinenumber: 1727
    functionLinenumberEnd: 1730
    functionName: ZSTD_decompressDCtx
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_decompress_usingDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressDCtx(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity,
      const void *src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1736
    functionDepth: 0
    functionLinenumber: 1736
    functionLinenumberEnd: 1739
    functionName: ZSTD_nextSrcSizeToDecompress
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx *dctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1741
    functionDepth: 0
    functionLinenumber: 1741
    functionLinenumberEnd: 1754
    functionName: ZSTD_nextInputType
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_nextInputType_e
    signature: ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx *dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1756
    functionName: ZSTD_isSkipFrame
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_isSkipFrame(ZSTD_DCtx *dctx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1765,1
    - Dst: ZSTD_checkContinuity
      Src: /src/xen/xen/common/zstd/decompress.c:1767,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1772,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1773,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1774,1
    - Dst: ZSTD_frameHeaderSize
      Src: /src/xen/xen/common/zstd/decompress.c:1779,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1780,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1782,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1792,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:1793,1
    - Dst: ZSTD_decodeFrameHeader
      Src: /src/xen/xen/common/zstd/decompress.c:1793,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/xen/xen/common/zstd/decompress.c:1800,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1801,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/xen/xen/common/zstd/decompress.c:1829,1
    - Dst: ZSTD_copyRawBlock
      Src: /src/xen/xen/common/zstd/decompress.c:1830,1
    - Dst: ZSTD_setRleBlock
      Src: /src/xen/xen/common/zstd/decompress.c:1831,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1833,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1835,1
    - Dst: xxh64_update
      Src: /src/xen/xen/common/zstd/decompress.c:1838,1
    - Dst: xxh64_digest
      Src: /src/xen/xen/common/zstd/decompress.c:1856,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1857,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1859,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:1865,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1866,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1876,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 111
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1761
    functionDepth: 8
    functionLinenumber: 1761
    functionLinenumberEnd: 1878
    functionName: ZSTD_decompressContinue
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkContinuity
    - ZSTD_copyRawBlock
    - ERROR
    - ZSTD_decodeFrameHeader
    - ZSTD_readLE32
    - ZSTD_getcBlockSize
    - xxh64_digest
    - ZSTD_frameHeaderSize
    - CHECK_F
    - ZSTD_setRleBlock
    - xxh64_update
    - memcpy
    - ZSTD_decompressBlock_internal
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressContinue(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity,
      const void *src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1887
    functionName: ZSTD_refDictContent
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_refDictContent(ZSTD_DCtx *dctx, const void *dict, size_t
      dictSize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1898,1
    - Dst: HUF_readDTableX4_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:1902,1
    - Dst: HUF_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1903,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1904,1
    - Dst: FSE_readNCount
      Src: /src/xen/xen/common/zstd/decompress.c:1911,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1912,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1913,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1915,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1916,1
    - Dst: FSE_buildDTable_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:1916,1
    - Dst: FSE_readNCount
      Src: /src/xen/xen/common/zstd/decompress.c:1923,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1924,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1925,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1927,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1928,1
    - Dst: FSE_buildDTable_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:1928,1
    - Dst: FSE_readNCount
      Src: /src/xen/xen/common/zstd/decompress.c:1935,1
    - Dst: FSE_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1936,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1937,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1939,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1940,1
    - Dst: FSE_buildDTable_wksp
      Src: /src/xen/xen/common/zstd/decompress.c:1940,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1945,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1950,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1953,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - entropy
    - dict
    - dictSize
    argTypes:
    - ZSTD_entropyTables_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1892
    functionDepth: 4
    functionLinenumber: 1892
    functionLinenumberEnd: 1959
    functionName: ZSTD_loadEntropy
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - CHECK_E
    - HUF_readDTableX4_wksp
    - ERROR
    - ZSTD_readLE32
    - FSE_isError
    - FSE_buildDTable_wksp
    - HUF_isError
    - FSE_readNCount
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_loadEntropy(ZSTD_entropyTables_t *entropy, const void *const
      dict, size_t const dictSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_refDictContent
      Src: /src/xen/xen/common/zstd/decompress.c:1964,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1966,1
    - Dst: ZSTD_refDictContent
      Src: /src/xen/xen/common/zstd/decompress.c:1968,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:1971,1
    - Dst: ZSTD_loadEntropy
      Src: /src/xen/xen/common/zstd/decompress.c:1975,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:1976,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:1977,1
    - Dst: ZSTD_refDictContent
      Src: /src/xen/xen/common/zstd/decompress.c:1984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1961
    functionDepth: 5
    functionLinenumber: 1961
    functionLinenumberEnd: 1985
    functionName: ZSTD_decompress_insertDictionary
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_loadEntropy
    - ERROR
    - ZSTD_readLE32
    - ZSTD_refDictContent
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx *dctx, const void
      *dict, size_t dictSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:1989,1
    - Dst: ZSTD_decompressBegin
      Src: /src/xen/xen/common/zstd/decompress.c:1989,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:1991,1
    - Dst: ZSTD_decompress_insertDictionary
      Src: /src/xen/xen/common/zstd/decompress.c:1991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1987
    functionDepth: 6
    functionLinenumber: 1987
    functionLinenumberEnd: 1993
    functionName: ZSTD_decompressBegin_usingDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - CHECK_E
    - ZSTD_decompress_insertDictionary
    - CHECK_F
    - ZSTD_decompressBegin
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx *dctx, const void *dict,
      size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:2008,1
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2008
    functionName: ZSTD_DDictWorkspaceBound
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_ALIGN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictWorkspaceBound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2011
    functionDepth: 0
    functionLinenumber: 2011
    functionLinenumberEnd: 2011
    functionName: ZSTD_DDictDictContent
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *__init ZSTD_DDictDictContent(const ZSTD_DDict *ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2013
    functionName: ZSTD_DDictDictSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictDictSize(const ZSTD_DDict *ddict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressBegin
      Src: /src/xen/xen/common/zstd/decompress.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - dstDCtx
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2039
    functionName: ZSTD_refDDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_decompressBegin
    linkageType: ''
    returnType: void
    signature: void ZSTD_refDDict(ZSTD_DCtx *dstDCtx, const ZSTD_DDict *ddict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:2049,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:2053,1
    - Dst: CHECK_E
      Src: /src/xen/xen/common/zstd/decompress.c:2056,1
    - Dst: ZSTD_loadEntropy
      Src: /src/xen/xen/common/zstd/decompress.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2042
    functionDepth: 5
    functionLinenumber: 2042
    functionLinenumberEnd: 2059
    functionName: ZSTD_loadEntropy_inDDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - CHECK_E
    - ZSTD_loadEntropy
    - ZSTD_readLE32
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_loadEntropy_inDDict(ZSTD_DDict *ddict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:2067,1
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:2076,1
    - Dst: ZSTD_freeDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2078,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:2081,1
    - Dst: ZSTD_loadEntropy_inDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2089,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2090,1
    - Dst: ZSTD_freeDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2091,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - dict
    - dictSize
    - byReference
    - customMem
    argTypes:
    - void*
    - size_t
    - unsigned
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2061
    functionDepth: 6
    functionLinenumber: 2061
    functionLinenumberEnd: 2098
    functionName: ZSTD_createDDict_advanced
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_malloc
    - ZSTD_freeDDict
    - ZSTD_loadEntropy_inDDict
    - memcpy
    - ZSTD_isError
    linkageType: ''
    returnType: ZSTD_DDict
    signature: ZSTD_DDict *__init ZSTD_createDDict_advanced(const void *dict, size_t
      dictSize, unsigned byReference, ZSTD_customMem customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:2117,1
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:2118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2121
    functionName: ZSTD_freeDDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_free
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDDict(ZSTD_DDict *ddict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:2132,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/decompress.c:2134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dict
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2135
    functionName: ZSTD_getDictID_fromDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_readLE32
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init ZSTD_getDictID_fromDict(const void *dict, size_t dictSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getDictID_fromDict
      Src: /src/xen/xen/common/zstd/decompress.c:2145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2141
    functionDepth: 2
    functionLinenumber: 2141
    functionLinenumberEnd: 2146
    functionName: ZSTD_getDictID_fromDDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_getDictID_fromDict
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init ZSTD_getDictID_fromDDict(const ZSTD_DDict *ddict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/zstd/decompress.c:2161,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2165
    functionName: ZSTD_getDictID_fromFrame
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getFrameParams
    linkageType: ''
    returnType: unsigned __init
    signature: unsigned __init ZSTD_getDictID_fromFrame(const void *src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressMultiFrame
      Src: /src/xen/xen/common/zstd/decompress.c:2174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2171
    functionDepth: 10
    functionLinenumber: 2171
    functionLinenumberEnd: 2175
    functionName: ZSTD_decompress_usingDDict
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressMultiFrame
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompress_usingDDict(ZSTD_DCtx *dctx, void *dst, size_t
      dstCapacity, const void *src, size_t srcSize, const ZSTD_DDict *ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:2210,1
    - Dst: ZSTD_DCtxWorkspaceBound
      Src: /src/xen/xen/common/zstd/decompress.c:2213,1
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:2213,1
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:2213,1
    - Dst: ZSTD_ALIGN
      Src: /src/xen/xen/common/zstd/decompress.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maxWindowSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2214
    functionName: ZSTD_DStreamWorkspaceBound
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - MIN
    - ZSTD_ALIGN
    - ZSTD_DCtxWorkspaceBound
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DStreamWorkspaceBound(size_t maxWindowSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:2223,1
    - Dst: memset
      Src: /src/xen/xen/common/zstd/decompress.c:2226,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:2227,1
    - Dst: ZSTD_createDCtx_advanced
      Src: /src/xen/xen/common/zstd/decompress.c:2228,1
    - Dst: ZSTD_freeDStream
      Src: /src/xen/xen/common/zstd/decompress.c:2230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2216
    functionDepth: 3
    functionLinenumber: 2216
    functionLinenumberEnd: 2236
    functionName: ZSTD_createDStream_advanced
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - ZSTD_malloc
    - ZSTD_freeDStream
    - memset
    - ZSTD_createDCtx_advanced
    - memcpy
    linkageType: ''
    returnType: ZSTD_DStream
    signature: ZSTD_DStream *__init ZSTD_createDStream_advanced(ZSTD_customMem customMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_initStack
      Src: /src/xen/xen/common/zstd/decompress.c:2240,1
    - Dst: ZSTD_createDStream_advanced
      Src: /src/xen/xen/common/zstd/decompress.c:2241,1
    - Dst: ZSTD_freeDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2249,1
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:2256,1
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:2259,1
    - Dst: ZSTD_malloc
      Src: /src/xen/xen/common/zstd/decompress.c:2261,1
    - Dst: ZSTD_freeDStream
      Src: /src/xen/xen/common/zstd/decompress.c:2264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - maxWindowSize
    - workspace
    - workspaceSize
    argTypes:
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2238
    functionDepth: 4
    functionLinenumber: 2238
    functionLinenumberEnd: 2269
    functionName: ZSTD_initDStream
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - ZSTD_malloc
    - ZSTD_freeDDict
    - ZSTD_createDStream_advanced
    - ZSTD_freeDStream
    - ZSTD_initStack
    - MIN
    linkageType: ''
    returnType: ZSTD_DStream
    signature: ZSTD_DStream *__init ZSTD_initDStream(size_t maxWindowSize, void *workspace,
      size_t workspaceSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeDCtx
      Src: /src/xen/xen/common/zstd/decompress.c:2288,1
    - Dst: ZSTD_freeDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2290,1
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:2292,1
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:2294,1
    - Dst: ZSTD_free
      Src: /src/xen/xen/common/zstd/decompress.c:2296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - zds
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2282
    functionDepth: 2
    functionLinenumber: 2282
    functionLinenumberEnd: 2299
    functionName: ZSTD_freeDStream
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 2
    functionsReached:
    - ZSTD_freeDDict
    - ZSTD_free
    - ZSTD_freeDCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDStream(ZSTD_DStream *zds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2304
    functionDepth: 0
    functionLinenumber: 2304
    functionLinenumberEnd: 2304
    functionName: ZSTD_DStreamInSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DStreamInSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2305
    functionDepth: 0
    functionLinenumber: 2305
    functionLinenumberEnd: 2305
    functionName: ZSTD_DStreamOutSize
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DStreamOutSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - zds
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2308
    functionDepth: 0
    functionLinenumber: 2308
    functionLinenumberEnd: 2315
    functionName: ZSTD_resetDStream
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_resetDStream(ZSTD_DStream *zds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:2321,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2319
    functionDepth: 0
    functionLinenumber: 2319
    functionLinenumberEnd: 2324
    functionName: ZSTD_limitCopy
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 0
    functionsReached:
    - MIN
    - memcpy
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_limitCopy(void *dst, size_t dstCapacity, const void
      *src, size_t srcSize)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_resetDStream
      Src: /src/xen/xen/common/zstd/decompress.c:2339,1
    - Dst: ZSTD_getFrameParams
      Src: /src/xen/xen/common/zstd/decompress.c:2343,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2344,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:2349,1
    - Dst: MAX
      Src: /src/xen/xen/common/zstd/decompress.c:2352,1
    - Dst: memcpy
      Src: /src/xen/xen/common/zstd/decompress.c:2355,1
    - Dst: ZSTD_findFrameCompressedSize
      Src: /src/xen/xen/common/zstd/decompress.c:2364,1
    - Dst: ZSTD_decompress_usingDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2366,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2367,1
    - Dst: ZSTD_refDDict
      Src: /src/xen/xen/common/zstd/decompress.c:2379,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/xen/xen/common/zstd/decompress.c:2381,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:2382,1
    - Dst: ZSTD_decompressContinue
      Src: /src/xen/xen/common/zstd/decompress.c:2382,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/xen/xen/common/zstd/decompress.c:2384,1
    - Dst: CHECK_F
      Src: /src/xen/xen/common/zstd/decompress.c:2385,1
    - Dst: ZSTD_decompressContinue
      Src: /src/xen/xen/common/zstd/decompress.c:2385,1
    - Dst: MAX
      Src: /src/xen/xen/common/zstd/decompress.c:2389,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2391,1
    - Dst: MIN
      Src: /src/xen/xen/common/zstd/decompress.c:2395,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2398,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2401,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/xen/xen/common/zstd/decompress.c:2410,1
    - Dst: ZSTD_isSkipFrame
      Src: /src/xen/xen/common/zstd/decompress.c:2417,1
    - Dst: ZSTD_decompressContinue
      Src: /src/xen/xen/common/zstd/decompress.c:2418,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2420,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/xen/xen/common/zstd/decompress.c:2439,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2443,1
    - Dst: ZSTD_limitCopy
      Src: /src/xen/xen/common/zstd/decompress.c:2444,1
    - Dst: ZSTD_isSkipFrame
      Src: /src/xen/xen/common/zstd/decompress.c:2454,1
    - Dst: ZSTD_decompressContinue
      Src: /src/xen/xen/common/zstd/decompress.c:2455,1
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/decompress.c:2457,1
    - Dst: ZSTD_limitCopy
      Src: /src/xen/xen/common/zstd/decompress.c:2473,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2487,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/xen/xen/common/zstd/decompress.c:2495,1
    - Dst: ZSTD_nextInputType
      Src: /src/xen/xen/common/zstd/decompress.c:2513,1
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/decompress.c:2515,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 134
    argCount: 3
    argNames:
    - zds
    - output
    - input
    argTypes:
    - ZSTD_DStream*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2326
    functionDepth: 11
    functionLinenumber: 2326
    functionLinenumberEnd: 2519
    functionName: ZSTD_decompressStream
    functionSourceFile: /src/xen/xen/common/zstd/decompress.c
    functionUses: 1
    functionsReached:
    - MIN
    - ZSTD_nextInputType
    - ZSTD_getFrameParams
    - ZSTD_findFrameCompressedSize
    - ERROR
    - ZSTD_decompressContinue
    - ZSTD_nextSrcSizeToDecompress
    - ZSTD_limitCopy
    - ZSTD_isSkipFrame
    - ZSTD_refDDict
    - ZSTD_decompress_usingDDict
    - CHECK_F
    - ZSTD_resetDStream
    - MAX
    - memcpy
    - ZSTD_isError
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer *output,
      ZSTD_inBuffer *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ZSTD_32bits
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned ZSTD_32bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ZSTD_64bits
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned ZSTD_64bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ZSTD_isLittleEndian
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned ZSTD_isLittleEndian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ZSTD_read16
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_read16(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ZSTD_read32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_read32(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: ZSTD_read64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_read64(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ZSTD_readST
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readST(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ZSTD_write16
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_write16(void *memPtr, U16 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: ZSTD_write32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_write32(void *memPtr, U32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned
      Src: /src/xen/xen/common/zstd/mem.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ZSTD_write64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_write64(void *memPtr, U64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_le16
      Src: /src/xen/xen/common/zstd/mem.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ZSTD_readLE16
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 5
    functionsReached:
    - get_unaligned_le16
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readLE16(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_le16
      Src: /src/xen/xen/common/zstd/mem.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: ZSTD_writeLE16
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 2
    functionsReached:
    - put_unaligned_le16
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeLE16(void *memPtr, U16 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_readLE16
      Src: /src/xen/xen/common/zstd/mem.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: ZSTD_readLE24
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 2
    functionsReached:
    - ZSTD_readLE16
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readLE24(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_writeLE16
      Src: /src/xen/xen/common/zstd/mem.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: ZSTD_writeLE24
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - ZSTD_writeLE16
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeLE24(void *memPtr, U32 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/common/zstd/mem.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: ZSTD_readLE32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 13
    functionsReached:
    - get_unaligned_le32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readLE32(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_le32
      Src: /src/xen/xen/common/zstd/mem.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - val32
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: ZSTD_writeLE32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned_le32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeLE32(void *memPtr, U32 val32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/common/zstd/mem.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: ZSTD_readLE64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 1
    functionsReached:
    - get_unaligned_le64
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readLE64(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_le64
      Src: /src/xen/xen/common/zstd/mem.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - val64
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: ZSTD_writeLE64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned_le64
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeLE64(void *memPtr, U64 val64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/mem.h:99,1
    - Dst: ZSTD_readLE32
      Src: /src/xen/xen/common/zstd/mem.h:100,1
    - Dst: ZSTD_readLE64
      Src: /src/xen/xen/common/zstd/mem.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ZSTD_readLEST
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 2
    functionsReached:
    - ZSTD_32bits
    - ZSTD_readLE64
    - ZSTD_readLE32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readLEST(const void *memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/mem.h:107,1
    - Dst: ZSTD_writeLE32
      Src: /src/xen/xen/common/zstd/mem.h:108,1
    - Dst: ZSTD_writeLE64
      Src: /src/xen/xen/common/zstd/mem.h:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: ZSTD_writeLEST
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 2
    functionsReached:
    - ZSTD_writeLE32
    - ZSTD_32bits
    - ZSTD_writeLE64
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeLEST(void *memPtr, size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/common/zstd/mem.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: ZSTD_readBE32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned_be32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readBE32(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_be32
      Src: /src/xen/xen/common/zstd/mem.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - val32
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ZSTD_writeBE32
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned_be32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeBE32(void *memPtr, U32 val32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be64
      Src: /src/xen/xen/common/zstd/mem.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: ZSTD_readBE64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - get_unaligned_be64
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readBE64(const void *memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_unaligned_be64
      Src: /src/xen/xen/common/zstd/mem.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - val64
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: ZSTD_writeBE64
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - put_unaligned_be64
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeBE64(void *memPtr, U64 val64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/mem.h:125,1
    - Dst: ZSTD_readBE32
      Src: /src/xen/xen/common/zstd/mem.h:126,1
    - Dst: ZSTD_readBE64
      Src: /src/xen/xen/common/zstd/mem.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: ZSTD_readBEST
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - ZSTD_32bits
    - ZSTD_readBE64
    - ZSTD_readBE32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readBEST(const void *memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_32bits
      Src: /src/xen/xen/common/zstd/mem.h:133,1
    - Dst: ZSTD_writeBE32
      Src: /src/xen/xen/common/zstd/mem.h:134,1
    - Dst: ZSTD_writeBE64
      Src: /src/xen/xen/common/zstd/mem.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: ZSTD_writeBEST
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - ZSTD_32bits
    - ZSTD_writeBE64
    - ZSTD_writeBE32
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_writeBEST(void *memPtr, size_t val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_read32
      Src: /src/xen/xen/common/zstd/mem.h:144,1
    - Dst: ZSTD_isLittleEndian
      Src: /src/xen/xen/common/zstd/mem.h:146,1
    - Dst: ZSTD_read32
      Src: /src/xen/xen/common/zstd/mem.h:147,1
    - Dst: ZSTD_read32
      Src: /src/xen/xen/common/zstd/mem.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - memPtr
    - length
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: ZSTD_readMINMATCH
    functionSourceFile: /src/xen/xen/common/zstd/mem.h
    functionUses: 0
    functionsReached:
    - ZSTD_read32
    - ZSTD_isLittleEndian
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC ZSTD_readMINMATCH(const void *memPtr, U32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PREFIX
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFIX(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: ERROR
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 297
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/xen/xen/common/zstd/error_private.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ERR_isError
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 2
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: ERR_STATIC unsigned
    signature: ERR_STATIC unsigned ERR_isError(size_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/xen/xen/common/zstd/error_private.h:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: ERR_getErrorCode
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: ERR_STATIC
    signature: ERR_STATIC ERR_getErrorCode(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ZSTD_isError
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ZSTD_isError(size_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isError
      Src: /src/xen/xen/common/zstd/error_private.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - functionResult
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: ZSTD_getErrorCode
    functionSourceFile: /src/xen/xen/common/zstd/error_private.h
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    linkageType: ''
    returnType: ZSTD_ErrorCode
    signature: "ZSTD_ErrorCode ZSTD_getErrorCode(\n\tsize_t functionResult)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: FSE_QUOTE
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: FSE_EXPAND_AND_QUOTE
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_EXPAND_AND_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: FSE_BLOCKBOUND
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_BLOCKBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: FSE_COMPRESSBOUND
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_COMPRESSBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: FSE_CTABLE_SIZE_U32
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: FSE_DTABLE_SIZE_U32
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_DTABLE_SIZE_U32(maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_read16
      Src: /src/xen/xen/common/zstd/fse.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - statePtr
    - ct
    argTypes:
    - FSE_CState_t*
    - FSE_CTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: FSE_initCState
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - ZSTD_read16
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_initCState(FSE_CState_t *statePtr, const FSE_CTable
      *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_initCState
      Src: /src/xen/xen/common/zstd/fse.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - statePtr
    - ct
    - symbol
    argTypes:
    - FSE_CState_t*
    - FSE_CTable*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 446
    functionName: FSE_initCState2
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - FSE_initCState
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_initCState2(FSE_CState_t *statePtr, const FSE_CTable
      *ct, U32 symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBits
      Src: /src/xen/xen/common/zstd/fse.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitC
    - statePtr
    - symbol
    argTypes:
    - BIT_CStream_t*
    - FSE_CState_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: FSE_encodeSymbol
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - BIT_addBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_encodeSymbol(BIT_CStream_t *bitC, FSE_CState_t *statePtr,
      U32 symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBits
      Src: /src/xen/xen/common/zstd/fse.h:459,1
    - Dst: BIT_flushBits
      Src: /src/xen/xen/common/zstd/fse.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitC
    - statePtr
    argTypes:
    - BIT_CStream_t*
    - FSE_CState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: FSE_flushCState
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - BIT_addBits
    - BIT_flushBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_flushCState(BIT_CStream_t *bitC, const FSE_CState_t
      *statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/xen/xen/common/zstd/fse.h:480,1
    - Dst: BIT_reloadDStream
      Src: /src/xen/xen/common/zstd/fse.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - DStatePtr
    - bitD
    - dt
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    - FSE_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: FSE_initDState
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 3
    functionsReached:
    - BIT_readBits
    - BIT_reloadDStream
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_initDState(FSE_DState_t *DStatePtr, BIT_DStream_t *bitD,
      const FSE_DTable *dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - DStatePtr
    argTypes:
    - FSE_DState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: FSE_peekSymbol
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_peekSymbol(const FSE_DState_t *DStatePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/xen/xen/common/zstd/fse.h:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 497
    functionName: FSE_updateState
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 2
    functionsReached:
    - BIT_readBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_updateState(FSE_DState_t *DStatePtr, BIT_DStream_t
      *bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/xen/xen/common/zstd/fse.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 508
    functionName: FSE_decodeSymbol
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - BIT_readBits
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_decodeSymbol(FSE_DState_t *DStatePtr, BIT_DStream_t
      *bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBitsFast
      Src: /src/xen/xen/common/zstd/fse.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: FSE_decodeSymbolFast
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached:
    - BIT_readBitsFast
    linkageType: ''
    returnType: ZSTD_STATIC
    signature: ZSTD_STATIC FSE_decodeSymbolFast(FSE_DState_t *DStatePtr, BIT_DStream_t
      *bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - DStatePtr
    argTypes:
    - FSE_DState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: FSE_endOfDState
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_STATIC unsigned
    signature: ZSTD_STATIC unsigned FSE_endOfDState(const FSE_DState_t *DStatePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tableSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: FSE_TABLESTEP
    functionSourceFile: /src/xen/xen/common/zstd/fse.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_TABLESTEP(tableSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/intc.c:14,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/intc.c:17,1
    - Dst: device_init
      Src: /src/xen/xen/common/device-tree/intc.c:20,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/intc.c:29,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/common/device-tree/intc.c:33,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 7
    functionDepth: 2
    functionLinenumber: 7
    functionLinenumberEnd: 34
    functionName: intc_dt_preinit
    functionSourceFile: /src/xen/xen/common/device-tree/intc.c
    functionUses: 2
    functionsReached:
    - dt_device_set_used_by
    - panic
    - device_init
    - dt_get_property
    - dt_get_parent
    linkageType: ''
    returnType: void
    signature: void intc_dt_preinit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/intc.c:14,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/intc.c:17,1
    - Dst: device_init
      Src: /src/xen/xen/common/device-tree/intc.c:20,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/common/device-tree/intc.c
    functionUses: 0
    functionsReached:
    - device_init
    - dt_get_parent
    - dt_get_property
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node( dt_host, node )
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:25,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:33,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:36,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:39,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:47,1
    - Dst: gnttab_dom0_frames
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:51,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:65,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:68,1
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:73,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:76,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:77,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:82,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:83,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:84,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:86,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:89,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:91,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:97,1
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:99,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:102,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:111,1
    - Dst: btcpupools_get_domain_pool_id
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:114,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:116,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:121,1
    - Dst: XEN_DOMCTL_GRANT_version
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:122,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:124,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:127,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:131,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:134,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:139,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:141,1
    - Dst: arch_parse_dom0less_node
      Src: /src/xen/xen/common/device-tree/dom0less-bindings.c:144,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 2
    argNames:
    - node
    - bd
    argTypes:
    - struct dt_device_node*
    - struct boot_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 145
    functionName: parse_dom0less_node
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-bindings.c
    functionUses: 1
    functionsReached:
    - dt_find_compatible_node
    - dt_parse_phandle
    - dt_property_read_bool
    - dt_property_read_u32
    - dt_node_name
    - panic
    - arch_parse_dom0less_node
    - strcmp
    - XEN_DOMCTL_GRANT_version
    - dt_property_read_string
    - gnttab_dom0_frames
    - btcpupools_get_domain_pool_id
    - dt_device_is_compatible
    - dt_find_property
    linkageType: ''
    returnType: int
    signature: "int parse_dom0less_node(struct dt_device_node *node,\n                               struct
      boot_domain *bd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/device-tree/static-shmem.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: get_shmem_heap_banks
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct membanks
    signature: struct membanks *get_shmem_heap_banks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - shmem
    - shm_id
    argTypes:
    - struct membanks*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: find_shm_bank_by_id
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct membank
    signature: 'struct membank *

      find_shm_bank_by_id(const struct membanks *shmem, const char *shm_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: maddr_to_page
      Src: /src/xen/xen/common/device-tree/static-shmem.c:69,1
    - Dst: page_get_owner_and_reference
      Src: /src/xen/xen/common/device-tree/static-shmem.c:70,1
    - Dst: put_page
      Src: /src/xen/xen/common/device-tree/static-shmem.c:73,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pbase
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: is_shm_allocated_to_domio
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - page_get_owner_and_reference
    - put_page
    - printk
    - maddr_to_page
    linkageType: ''
    returnType: bool
    signature: bool is_shm_allocated_to_domio(paddr_t pbase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:98,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:101,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:107,1
    - Dst: assign_pages
      Src: /src/xen/xen/common/device-tree/static-shmem.c:113,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/common/device-tree/static-shmem.c:113,1
    - Dst: acquire_domstatic_pages
      Src: /src/xen/xen/common/device-tree/static-shmem.c:115,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - d
    - pbase
    - psize
    - bank_from_heap
    argTypes:
    - struct domain*
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 129
    functionName: acquire_shared_memory_bank
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - PFN_DOWN
    - acquire_domstatic_pages
    - maddr_to_mfn
    - assign_pages
    - maddr_to_page
    - printk
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t acquire_shared_memory_bank(struct domain *d,\n                                               paddr_t
      pbase, paddr_t psize,\n                                               bool bank_from_heap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acquire_shared_memory_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:145,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/device-tree/static-shmem.c:146,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:153,1
    - Dst: guest_physmap_add_pages
      Src: /src/xen/xen/common/device-tree/static-shmem.c:156,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:156,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:157,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:160,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/common/device-tree/static-shmem.c:173,1
    - Dst: get_page_nr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:176,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:178,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/device-tree/static-shmem.c:180,1
    - Dst: put_page_nr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - d
    - gbase
    - bank_from_heap
    - shm_bank
    argTypes:
    - struct domain*
    - paddr_t
    - bool
    - struct membank*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 131
    functionDepth: 7
    functionLinenumber: 131
    functionLinenumberEnd: 191
    functionName: assign_shared_memory
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - mfn_eq
    - guest_physmap_add_pages
    - mfn_to_page
    - get_page_nr
    - acquire_shared_memory_bank
    - mfn_x
    - gaddr_to_gfn
    - printk
    - PFN_DOWN
    - put_page_nr
    linkageType: ''
    returnType: int
    signature: "int assign_shared_memory(struct domain *d, paddr_t gbase,\n                                       bool
      bank_from_heap,\n                                       const struct membank
      *shm_bank)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_shm_mem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:197,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/device-tree/static-shmem.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - kinfo
    - start
    - size
    - shm_id
    argTypes:
    - struct kernel_info*
    - paddr_t
    - paddr_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 212
    functionName: append_shm_bank_to_domain
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - kernel_info_get_shm_mem
    - safe_strcpy
    linkageType: ''
    returnType: int
    signature: "int append_shm_bank_to_domain(struct kernel_info *kinfo, paddr_t start,\n
      \                         paddr_t size, const char *shm_id)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_shm_allocated_to_domio
      Src: /src/xen/xen/common/device-tree/static-shmem.c:238,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:239,1
    - Dst: assign_shared_memory
      Src: /src/xen/xen/common/device-tree/static-shmem.c:245,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:251,1
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/common/device-tree/static-shmem.c:254,1
    - Dst: _gfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:254,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/device-tree/static-shmem.c:254,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:254,1
    - Dst: _mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:255,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/device-tree/static-shmem.c:255,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 5
    argNames:
    - d
    - gbase
    - role_str
    - bank_from_heap
    - shm_bank
    argTypes:
    - struct domain*
    - paddr_t
    - char*
    - bool
    - struct membank*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 214
    functionDepth: 8
    functionLinenumber: 214
    functionLinenumberEnd: 261
    functionName: handle_shared_mem_bank
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - map_regions_p2mt
    - PFN_UP
    - _gfn
    - is_shm_allocated_to_domio
    - _mfn
    - assign_shared_memory
    - PFN_DOWN
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int handle_shared_mem_bank(struct domain *d, paddr_t gbase,\n                                         const
      char *role_str,\n                                         bool bank_from_heap,\n
      \                                        const struct membank *shm_bank)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:270,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:274,1
    - Dst: handle_shared_mem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:279,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - d
    - pg
    - order
    - extra
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 263
    functionDepth: 9
    functionLinenumber: 263
    functionLinenumberEnd: 294
    functionName: save_map_heap_pages
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - handle_shared_mem_bank
    - BUG_ON
    - page_to_maddr
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool save_map_heap_pages(struct domain *d, struct page_info *pg,\n
      \                                      unsigned int order, void *extra)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/static-shmem.c:304,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:305,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/static-shmem.c:320,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/static-shmem.c:323,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:325,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: find_shm_bank_by_id
      Src: /src/xen/xen/common/device-tree/static-shmem.c:330,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:330,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:333,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/static-shmem.c:341,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/static-shmem.c:348,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:349,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:350,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:356,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/static-shmem.c:358,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:360,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:365,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:368,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: handle_shared_mem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:374,1
    - Dst: find_shm_bank_by_id
      Src: /src/xen/xen/common/device-tree/static-shmem.c:387,1
    - Dst: get_shmem_heap_banks
      Src: /src/xen/xen/common/device-tree/static-shmem.c:387,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/static-shmem.c:389,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:391,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:397,1
    - Dst: allocate_domheap_memory
      Src: /src/xen/xen/common/device-tree/static-shmem.c:405,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:408,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:431,1
    - Dst: handle_shared_mem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:434,1
    - Dst: append_shm_bank_to_domain
      Src: /src/xen/xen/common/device-tree/static-shmem.c:449,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 296
    functionDepth: 9
    functionLinenumber: 296
    functionLinenumberEnd: 455
    functionName: process_shm
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 1
    functionsReached:
    - allocate_domheap_memory
    - dt_n_addr_cells
    - find_shm_bank_by_id
    - strlen
    - PFN_DOWN
    - strcmp
    - get_shmem_heap_banks
    - append_shm_bank_to_domain
    - mfn_valid
    - BUG_ON
    - printk
    - is_domain_direct_mapped
    - dt_device_is_compatible
    - dt_find_property
    - mfn_x
    - handle_shared_mem_bank
    - mfn_add
    - dt_property_read_string
    - maddr_to_mfn
    - bootinfo_get_shmem
    - dt_read_paddr
    - dt_find_node_by_path
    linkageType: ''
    returnType: int
    signature: "int process_shm(struct domain *d, struct kernel_info *kinfo,\n                       const
      struct dt_device_node *node)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/static-shmem.c:320,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/static-shmem.c:323,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:325,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/static-shmem.c:328,1
    - Dst: find_shm_bank_by_id
      Src: /src/xen/xen/common/device-tree/static-shmem.c:330,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:330,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:333,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/static-shmem.c:341,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/static-shmem.c:348,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:349,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:350,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:356,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/static-shmem.c:358,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:360,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:365,1
    - Dst: mfn_valid
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:366,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:368,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-shmem.c:369,1
    - Dst: handle_shared_mem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:374,1
    - Dst: find_shm_bank_by_id
      Src: /src/xen/xen/common/device-tree/static-shmem.c:387,1
    - Dst: get_shmem_heap_banks
      Src: /src/xen/xen/common/device-tree/static-shmem.c:387,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/static-shmem.c:389,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:391,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/static-shmem.c:397,1
    - Dst: allocate_domheap_memory
      Src: /src/xen/xen/common/device-tree/static-shmem.c:405,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:408,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:431,1
    - Dst: handle_shared_mem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:434,1
    - Dst: append_shm_bank_to_domain
      Src: /src/xen/xen/common/device-tree/static-shmem.c:449,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 308
    functionDepth: 9
    functionLinenumber: 308
    functionLinenumberEnd: 452
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - allocate_domheap_memory
    - dt_n_addr_cells
    - find_shm_bank_by_id
    - strlen
    - PFN_DOWN
    - strcmp
    - get_shmem_heap_banks
    - append_shm_bank_to_domain
    - mfn_valid
    - BUG_ON
    - printk
    - is_domain_direct_mapped
    - dt_device_is_compatible
    - dt_find_property
    - mfn_x
    - handle_shared_mem_bank
    - mfn_add
    - dt_property_read_string
    - maddr_to_mfn
    - bootinfo_get_shmem
    - dt_read_paddr
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(node, shm_node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_shm_mem_const
      Src: /src/xen/xen/common/device-tree/static-shmem.c:460,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:473,1
    - Dst: domain_fdt_begin_node
      Src: /src/xen/xen/common/device-tree/static-shmem.c:485,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:489,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/common/device-tree/static-shmem.c:494,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:496,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:500,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/common/device-tree/static-shmem.c:503,1
    - Dst: fdt_property_u64
      Src: /src/xen/xen/common/device-tree/static-shmem.c:514,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/static-shmem.c:518,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - kinfo
    - addrcells
    - sizecells
    argTypes:
    - struct kernel_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 457
    functionDepth: 4
    functionLinenumber: 457
    functionLinenumberEnd: 524
    functionName: make_shm_resv_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 1
    functionsReached:
    - domain_fdt_begin_node
    - dt_dprintk
    - fdt_property_string
    - fdt_property_u64
    - dt_child_set_range
    - kernel_info_get_shm_mem_const
    - fdt_property
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: "int make_shm_resv_memory_node(const struct kernel_info *kinfo,\n                                     int
      addrcells, int sizecells)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:533,1
    - Dst: bootinfo_get_shmem_extra
      Src: /src/xen/xen/common/device-tree/static-shmem.c:534,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:542,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:550,1
    - Dst: strnlen
      Src: /src/xen/xen/common/device-tree/static-shmem.c:554,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:556,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:565,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:568,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:570,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:572,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:583,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/common/device-tree/static-shmem.c:588,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/common/device-tree/static-shmem.c:590,1
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/static-shmem.c:591,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:595,1
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/static-shmem.c:601,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/static-shmem.c:603,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/device-tree/static-shmem.c:605,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:607,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:615,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/device-tree/static-shmem.c:620,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:622,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:629,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/device-tree/static-shmem.c:633,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:635,1
    - Dst: strncmp
      Src: /src/xen/xen/common/device-tree/static-shmem.c:652,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:673,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:696,1
    - Dst: check_reserved_regions_overlap
      Src: /src/xen/xen/common/device-tree/static-shmem.c:707,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/device-tree/static-shmem.c:711,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:719,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 4
    argNames:
    - fdt
    - node
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 731
    functionName: process_shm_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - dt_next_cell
    - bootinfo_get_shmem_extra
    - fdt_get_property
    - dt_cells_to_size
    - check_reserved_regions_overlap
    - IS_ALIGNED
    - safe_strcpy
    - strnlen
    - strncmp
    - bootinfo_get_shmem
    - printk
    - strcmp
    - device_tree_get_reg
    linkageType: ''
    returnType: int
    signature: "int process_shm_node(const void *fdt, int node, uint32_t address_cells,\n
      \                           uint32_t size_cells)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_shm_mem_const
      Src: /src/xen/xen/common/device-tree/static-shmem.c:736,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:746,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/device-tree/static-shmem.c:748,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/static-shmem.c:752,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/common/device-tree/static-shmem.c:756,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/common/device-tree/static-shmem.c:760,1
    - Dst: make_shm_resv_memory_node
      Src: /src/xen/xen/common/device-tree/static-shmem.c:764,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/static-shmem.c:768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - kinfo
    - addrcells
    - sizecells
    argTypes:
    - struct kernel_info*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 771
    functionName: make_resv_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 1
    functionsReached:
    - make_shm_resv_memory_node
    - dt_dprintk
    - fdt_property_cell
    - kernel_info_get_shm_mem_const
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int make_resv_memory_node(const struct kernel_info *kinfo, int addrcells,\n
      \                                int sizecells)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:775,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: early_print_info_shmem
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - bootinfo_get_shmem
    - printk
    linkageType: ''
    returnType: void
    signature: void early_print_info_shmem(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/static-shmem.c:788,1
    - Dst: init_staticmem_bank
      Src: /src/xen/xen/common/device-tree/static-shmem.c:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: init_sharedmem_pages
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 2
    functionsReached:
    - init_staticmem_bank
    - bootinfo_get_shmem
    linkageType: ''
    returnType: void
    signature: void init_sharedmem_pages(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_shm_mem_const
      Src: /src/xen/xen/common/device-tree/static-shmem.c:799,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/common/device-tree/static-shmem.c:810,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:810,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-shmem.c:811,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-shmem.c:814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - kinfo
    - rangeset
    argTypes:
    - struct kernel_info*
    - struct rangeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 822
    functionName: remove_shm_from_rangeset
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 2
    functionsReached:
    - printk
    - rangeset_remove_range
    - kernel_info_get_shm_mem_const
    - PFN_DOWN
    linkageType: ''
    returnType: int
    signature: "int remove_shm_from_rangeset(const struct kernel_info *kinfo,\n                                    struct
      rangeset *rangeset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_shm_mem_const
      Src: /src/xen/xen/common/device-tree/static-shmem.c:828,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:832,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-shmem.c:841,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/common/device-tree/static-shmem.c:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - kinfo
    - reg
    - nr_cells
    - addrcells
    - sizecells
    argTypes:
    - struct kernel_info*
    - __be32*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 844
    functionName: shm_mem_node_fill_reg_range
    functionSourceFile: /src/xen/xen/common/device-tree/static-shmem.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - dt_child_set_range
    - kernel_info_get_shm_mem_const
    linkageType: ''
    returnType: void
    signature: "void shm_mem_node_fill_reg_range(const struct kernel_info *kinfo,\n
      \                                       __be32 *reg, int *nr_cells,\n                                        int
      addrcells, int sizecells)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:16,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:19,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:23,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:25,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:29,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - np
    - port
    - phandle
    argTypes:
    - struct dt_device_node*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 10
    functionDepth: 3
    functionLinenumber: 10
    functionLinenumberEnd: 33
    functionName: get_evtchn_dt_property
    functionSourceFile: /src/xen/xen/common/device-tree/static-evtchn.c
    functionUses: 0
    functionsReached:
    - printk
    - dt_cells_to_size
    - dt_get_property
    - dt_next_cell
    linkageType: ''
    returnType: int
    signature: "int get_evtchn_dt_property(const struct dt_device_node *np,\n                                         uint32_t
      *port, uint32_t *phandle)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:45,1
    - Dst: dt_device_static_evtchn_created
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:52,1
    - Dst: get_evtchn_dt_property
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:55,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:59,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:62,1
    - Dst: get_evtchn_dt_property
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:67,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:73,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:77,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:80,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:84,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:87,1
    - Dst: get_domain_by_id
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:91,1
    - Dst: get_domain_by_id
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:92,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:96,1
    - Dst: evtchn_alloc_unbound
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:103,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:106,1
    - Dst: evtchn_bind_interdomain
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:114,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:117,1
    - Dst: dt_device_set_static_evtchn_created
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:122,1
    - Dst: dt_device_set_static_evtchn_created
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 35
    functionDepth: 6
    functionLinenumber: 35
    functionLinenumberEnd: 126
    functionName: alloc_domain_evtchn
    functionSourceFile: /src/xen/xen/common/device-tree/static-evtchn.c
    functionUses: 0
    functionsReached:
    - get_domain_by_id
    - dt_device_static_evtchn_created
    - get_evtchn_dt_property
    - evtchn_bind_interdomain
    - dt_find_node_by_phandle
    - evtchn_alloc_unbound
    - dt_device_set_static_evtchn_created
    - printk
    - dt_device_is_compatible
    - dt_get_parent
    linkageType: ''
    returnType: int
    signature: int alloc_domain_evtchn(struct dt_device_node *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:131,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:133,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:136,1
    - Dst: alloc_domain_evtchn
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:142,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:143,1
    - Dst: alloc_domain_evtchn
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:148,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 7
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: alloc_static_evtchn
    functionSourceFile: /src/xen/xen/common/device-tree/static-evtchn.c
    functionUses: 1
    functionsReached:
    - dt_device_set_used_by
    - panic
    - alloc_domain_evtchn
    - BUG_ON
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void alloc_static_evtchn(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domain_evtchn
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:142,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:143,1
    - Dst: alloc_domain_evtchn
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:148,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 7
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-evtchn.c
    functionUses: 0
    functionsReached:
    - panic
    - alloc_domain_evtchn
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(chosen, node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domain_evtchn
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:148,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-evtchn.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 7
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/static-evtchn.c
    functionUses: 0
    functionsReached:
    - panic
    - alloc_domain_evtchn
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(node, evtchn_node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-memory.c:14,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/static-memory.c:22,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/static-memory.c:23,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/static-memory.c:25,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/static-memory.c:25,1
    - Dst: guest_physmap_add_pages
      Src: /src/xen/xen/common/device-tree/static-memory.c:27,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/static-memory.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - d
    - bank
    - smfn
    - size
    argTypes:
    - struct domain*
    - struct membank*
    - mfn_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 37
    functionName: append_static_memory_to_bank
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 0
    functionsReached:
    - guest_physmap_add_pages
    - mfn_to_maddr
    - gaddr_to_gfn
    - is_domain_direct_mapped
    - PFN_DOWN
    - dprintk
    linkageType: ''
    returnType: bool
    signature: "bool append_static_memory_to_bank(struct domain *d,\n                                                struct
      membank *bank,\n                                                mfn_t smfn,\n
      \                                               paddr_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/static-memory.c:47,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/static-memory.c:48,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/device-tree/static-memory.c:48,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/common/device-tree/static-memory.c:48,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-memory.c:49,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:51,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/static-memory.c:56,1
    - Dst: acquire_domstatic_pages
      Src: /src/xen/xen/common/device-tree/static-memory.c:57,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/static-memory.c:57,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - d
    - cell
    - addr_cells
    - size_cells
    - pbase
    - psize
    argTypes:
    - struct domain*
    - __be32**
    - u32
    - u32
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: acquire_static_memory_bank
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 0
    functionsReached:
    - IS_ALIGNED
    - ASSERT
    - maddr_to_mfn
    - acquire_domstatic_pages
    - printk
    - PFN_DOWN
    - device_tree_get_reg
    linkageType: ''
    returnType: mfn_t
    signature: "mfn_t acquire_static_memory_bank(struct domain *d,\n                                               const
      __be32 **cell,\n                                               u32 addr_cells,
      u32 size_cells,\n                                               paddr_t *pbase,
      paddr_t *psize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/static-memory.c:74,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/static-memory.c:76,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/static-memory.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - node
    - addr_cells
    - size_cells
    - length
    - cell
    argTypes:
    - struct dt_device_node*
    - u32*
    - u32*
    - int*
    - __be32**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: parse_static_mem_prop
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 0
    functionsReached:
    - dt_n_addr_cells
    - dt_find_property
    - dt_n_size_cells
    linkageType: ''
    returnType: int
    signature: "int parse_static_mem_prop(const struct dt_device_node *node,\n                                        u32
      *addr_cells, u32 *size_cells,\n                                        int *length,
      const __be32 **cell)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/common/device-tree/static-memory.c:89,1
    - Dst: parse_static_mem_prop
      Src: /src/xen/xen/common/device-tree/static-memory.c:100,1
    - Dst: acquire_static_memory_bank
      Src: /src/xen/xen/common/device-tree/static-memory.c:116,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/device-tree/static-memory.c:118,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:123,1
    - Dst: append_static_memory_to_bank
      Src: /src/xen/xen/common/device-tree/static-memory.c:129,1
    - Dst: min
      Src: /src/xen/xen/common/device-tree/static-memory.c:130,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:150,1
    - Dst: mfn_add
      Src: /src/xen/xen/common/device-tree/static-memory.c:156,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:176,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-memory.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 185
    functionName: allocate_static_memory
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 0
    functionsReached:
    - append_static_memory_to_bank
    - parse_static_mem_prop
    - panic
    - mfn_add
    - acquire_static_memory_bank
    - min
    - printk
    - mfn_eq
    - kernel_info_get_mem
    linkageType: ''
    returnType: void
    signature: "void allocate_static_memory(struct domain *d, struct kernel_info *kinfo,\n
      \                                  const struct dt_device_node *node)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/common/device-tree/static-memory.c:195,1
    - Dst: parse_static_mem_prop
      Src: /src/xen/xen/common/device-tree/static-memory.c:203,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:205,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:214,1
    - Dst: acquire_static_memory_bank
      Src: /src/xen/xen/common/device-tree/static-memory.c:221,1
    - Dst: mfn_eq
      Src: /src/xen/xen/common/device-tree/static-memory.c:223,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:226,1
    - Dst: append_static_memory_to_bank
      Src: /src/xen/xen/common/device-tree/static-memory.c:231,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/static-memory.c:248,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/static-memory.c:256,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - d
    - kinfo
    - node
    argTypes:
    - struct domain*
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 192
    functionDepth: 7
    functionLinenumber: 192
    functionLinenumberEnd: 258
    functionName: assign_static_memory_11
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 0
    functionsReached:
    - append_static_memory_to_bank
    - parse_static_mem_prop
    - panic
    - acquire_static_memory_bank
    - printk
    - mfn_eq
    - kernel_info_get_mem
    linkageType: ''
    returnType: void
    signature: "void assign_static_memory_11(struct domain *d, struct kernel_info
      *kinfo,\n                                    const struct dt_device_node *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/static-memory.c:263,1
    - Dst: init_staticmem_bank
      Src: /src/xen/xen/common/device-tree/static-memory.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: init_staticmem_pages
    functionSourceFile: /src/xen/xen/common/device-tree/static-memory.c
    functionUses: 2
    functionsReached:
    - bootinfo_get_reserved_mem
    - init_staticmem_bank
    linkageType: ''
    returnType: void
    signature: void init_staticmem_pages(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BUG
      Src: /src/xen/xen/common/device-tree/bootinfo.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - kind
    argTypes:
    - boot_module_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: boot_module_kind_as_string
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - BUG
    linkageType: ''
    returnType: char
    signature: char * __init boot_module_kind_as_string(boot_module_kind kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:44,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:46,1
    - Dst: dt_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:62,1
    - Dst: dt_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:63,1
    - Dst: dt_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:89,1
    - Dst: dt_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:90,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/bootinfo.c:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - s
    - e
    - first
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 97
    functionName: dt_unreserved_regions
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 1
    functionsReached:
    - bootinfo_get_reserved_mem
    - cb
    - dt_unreserved_regions
    - bootinfo_get_shmem
    linkageType: ''
    returnType: void
    signature: "void dt_unreserved_regions(paddr_t s, paddr_t e,\n                                         void
      (*cb)(paddr_t ps, paddr_t pe),\n                                         unsigned
      int first)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo.c:134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 4
    argNames:
    - mem
    - region_start
    - region_size
    - allow_memreserve_overlap
    argTypes:
    - struct membanks*
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 140
    functionName: meminfo_overlap_check
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool meminfo_overlap_check(const struct membanks *mem,\n                                         paddr_t
      region_start,\n                                         paddr_t region_size,\n
      \                                        bool allow_memreserve_overlap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - boot_modules
    - region_start
    - region_size
    argTypes:
    - struct boot_modules*
    - paddr_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: boot_modules_overlap_check
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: bool
    signature: "bool boot_modules_overlap_check(struct boot_modules *boot_modules,\n
      \                                             paddr_t region_start,\n                                              paddr_t
      region_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:177,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/bootinfo.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - e
    - first
    argTypes:
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: fw_unreserved_regions
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 1
    functionsReached:
    - dt_unreserved_regions
    - cb
    linkageType: ''
    returnType: void
    signature: "void fw_unreserved_regions(paddr_t s, paddr_t e,\n                                  void
      (*cb)(paddr_t ps, paddr_t pe),\n                                  unsigned int
      first)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:193,1
    - Dst: bootinfo_get_acpi
      Src: /src/xen/xen/common/device-tree/bootinfo.c:195,1
    - Dst: bootinfo_get_shmem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:198,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/bootinfo.c:208,1
    - Dst: meminfo_overlap_check
      Src: /src/xen/xen/common/device-tree/bootinfo.c:209,1
    - Dst: boot_modules_overlap_check
      Src: /src/xen/xen/common/device-tree/bootinfo.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - region_start
    - region_size
    - allow_memreserve_overlap
    argTypes:
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: check_reserved_regions_overlap
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - bootinfo_get_reserved_mem
    - meminfo_overlap_check
    - bootinfo_get_acpi
    - bootinfo_get_shmem
    - boot_modules_overlap_check
    linkageType: ''
    returnType: bool
    signature: "bool check_reserved_regions_overlap(paddr_t region_start,\n                                           paddr_t
      region_size,\n                                           bool allow_memreserve_overlap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo.c:231,1
    - Dst: boot_module_kind_as_string
      Src: /src/xen/xen/common/device-tree/bootinfo.c:232,1
    - Dst: check_reserved_regions_overlap
      Src: /src/xen/xen/common/device-tree/bootinfo.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - kind
    - start
    - size
    - domU
    argTypes:
    - boot_module_kind
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: add_boot_module
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 2
    functionsReached:
    - boot_module_kind_as_string
    - check_reserved_regions_overlap
    - printk
    linkageType: ''
    returnType: struct boot_module
    signature: "struct boot_module *add_boot_module(boot_module_kind kind,\n                                           paddr_t
      start, paddr_t size,\n                                           bool domU)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - kind
    argTypes:
    - boot_module_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: boot_module_find_by_kind
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: struct boot_module
    signature: struct boot_module * __init boot_module_find_by_kind(boot_module_kind
      kind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo.c:291,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/bootinfo.c:300,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/bootinfo.c:300,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/device-tree/bootinfo.c:301,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/bootinfo.c:303,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo.c:304,1
    - Dst: safe_strcpy
      Src: /src/xen/xen/common/device-tree/bootinfo.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - name
    - cmdline
    - kind
    - start
    - domU
    argTypes:
    - char*
    - char*
    - boot_module_kind
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 306
    functionName: add_boot_cmdline
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - panic
    - safe_strcpy
    - ASSERT
    - strlen
    - printk
    linkageType: ''
    returnType: void
    signature: "void add_boot_cmdline(const char *name, const char *cmdline,\n                             boot_module_kind
      kind, paddr_t start, bool domU)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - kind
    argTypes:
    - boot_module_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: boot_cmdline_find_by_kind
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct bootcmdline
    signature: struct bootcmdline * __init boot_cmdline_find_by_kind(boot_module_kind
      kind)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/bootinfo.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 341
    functionName: boot_cmdline_find_by_name
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct bootcmdline
    signature: struct bootcmdline * __init boot_cmdline_find_by_name(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - kind
    - start
    argTypes:
    - boot_module_kind
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 357
    functionName: boot_module_find_by_addr_and_kind
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct boot_module
    signature: "struct boot_module * __init boot_module_find_by_addr_and_kind(\n    boot_module_kind
      kind, paddr_t start)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/xen/xen/common/device-tree/bootinfo.c:388,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - paddr_t
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: next_module
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t next_module(paddr_t s, paddr_t *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:407,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo.c:408,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:422,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:423,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/common/device-tree/bootinfo.c:425,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:425,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/common/device-tree/bootinfo.c:426,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:426,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/common/device-tree/bootinfo.c:430,1
    - Dst: next_module
      Src: /src/xen/xen/common/device-tree/bootinfo.c:446,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:460,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:461,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:463,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/bootinfo.c:464,1
    - Dst: fw_unreserved_regions
      Src: /src/xen/xen/common/device-tree/bootinfo.c:468,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 472
    functionName: populate_boot_allocator
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo.c
    functionUses: 3
    functionsReached:
    - init_boot_pages
    - mfn_to_maddr
    - fw_unreserved_regions
    - bootinfo_get_reserved_mem
    - bootinfo_get_mem
    - next_module
    linkageType: ''
    returnType: void
    signature: void populate_boot_allocator(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:10,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:11,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:13,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:14,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:16,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:18,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootfdt.c:20,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - fdt
    - node
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 7
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: fdt_node_to_kind
    functionSourceFile: /src/xen/xen/common/device-tree/bootfdt.c
    functionUses: 0
    functionsReached:
    - fdt_node_check_compatible
    linkageType: ''
    returnType: boot_module_kind
    signature: boot_module_kind fdt_node_to_kind(const void *fdt, int node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/bootfdt.c:36,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/bootfdt.c:37,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootfdt.c:41,1
    - Dst: WARN
      Src: /src/xen/xen/common/device-tree/bootfdt.c:42,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootfdt.c:47,1
    - Dst: WARN
      Src: /src/xen/xen/common/device-tree/bootfdt.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - cell
    - address_cells
    - size_cells
    - start
    - size
    argTypes:
    - __be32**
    - uint32_t
    - uint32_t
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 57
    functionName: device_tree_get_reg
    functionSourceFile: /src/xen/xen/common/device-tree/bootfdt.c
    functionUses: 2
    functionsReached:
    - dt_next_cell
    - WARN
    - printk
    linkageType: ''
    returnType: void
    signature: "void device_tree_get_reg(const __be32 **cell, uint32_t address_cells,\n
      \                               uint32_t size_cells, paddr_t *start,\n                                paddr_t
      *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootfdt.c:64,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/device-tree/bootfdt.c:68,1
    - Dst: get_unaligned_t
      Src: /src/xen/xen/common/device-tree/bootfdt.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - fdt
    - node
    - prop_name
    - dflt
    argTypes:
    - void*
    - int
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 6
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: device_tree_get_u32
    functionSourceFile: /src/xen/xen/common/device-tree/bootfdt.c
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - fdt32_to_cpu
    - get_unaligned_t
    linkageType: ''
    returnType: u32
    signature: "u32 device_tree_get_u32(const void *fdt, int node,\n                               const
      char *prop_name, u32 dflt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/bootfdt.c:86,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootfdt.c:91,1
    - Dst: device_tree_get_u32
      Src: /src/xen/xen/common/device-tree/bootfdt.c:99,1
    - Dst: device_tree_get_u32
      Src: /src/xen/xen/common/device-tree/bootfdt.c:101,1
    - Dst: func
      Src: /src/xen/xen/common/device-tree/bootfdt.c:107,1
    - Dst: fdt_next_node
      Src: /src/xen/xen/common/device-tree/bootfdt.c:112,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - fdt
    - node
    - func
    - data
    argTypes:
    - void*
    - int
    - device_tree_node_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 116
    functionName: device_tree_for_each_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootfdt.c
    functionUses: 1
    functionsReached:
    - fdt_next_node
    - device_tree_get_u32
    - printk
    - fdt_get_name
    - func
    linkageType: ''
    returnType: int
    signature: "int device_tree_for_each_node(const void *fdt, int node,\n                                     device_tree_node_func
      func,\n                                     void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:27,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: build_assertions
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void build_assertions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:38,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:44,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - fdt
    - node
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: device_tree_node_is_available
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fdt_getprop
    linkageType: ''
    returnType: bool
    signature: bool device_tree_node_is_available(const void *fdt, int node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:57,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:58,1
    - Dst: strncmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - fdt
    - node
    - match
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: device_tree_node_matches
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - fdt_get_name
    linkageType: ''
    returnType: bool
    signature: "bool device_tree_node_matches(const void *fdt, int node,\n                                            const
      char *match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:72,1
    - Dst: dt_compat_cmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:77,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - fdt
    - node
    - match
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: device_tree_node_compatible
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - dt_compat_cmp
    - strlen
    - fdt_getprop
    linkageType: ''
    returnType: bool
    signature: "bool device_tree_node_compatible(const void *fdt, int node,\n                                               const
      char *match)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_node_matches
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:100,1
    - Dst: fdt_getprop
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:103,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:107,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - fdt
    - node
    - depth
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 6
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: device_tree_is_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - device_tree_node_matches
    - strcmp
    - strlen
    - fdt_getprop
    linkageType: ''
    returnType: bool
    signature: "bool device_tree_is_memory_node(const void *fdt, int node,\n                                              int
      depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_node_is_available
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:125,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:130,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:135,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:140,1
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:144,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:152,1
    - Dst: check_reserved_regions_overlap
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:153,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:166,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 7
    argNames:
    - fdt
    - node
    - prop_name
    - address_cells
    - size_cells
    - mem
    - type
    argTypes:
    - void*
    - int
    - char*
    - u32
    - u32
    - struct membanks*
    - enum membank_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 113
    functionDepth: 7
    functionLinenumber: 113
    functionLinenumberEnd: 171
    functionName: device_tree_get_meminfo
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - fdt32_to_cpu
    - check_reserved_regions_overlap
    - bootinfo_get_reserved_mem
    - device_tree_node_is_available
    - printk
    - device_tree_get_reg
    linkageType: ''
    returnType: int
    signature: "int device_tree_get_meminfo(const void *fdt, int node,\n                                          const
      char *prop_name,\n                                          u32 address_cells,
      u32 size_cells,\n                                          struct membanks *mem,\n
      \                                         enum membank_type type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_get_meminfo
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fdt
    - node
    - name
    - depth
    - address_cells
    - size_cells
    - mem
    argTypes:
    - void*
    - int
    - char*
    - int
    - u32
    - u32
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 8
    functionLinenumber: 173
    functionLinenumberEnd: 180
    functionName: process_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - device_tree_get_meminfo
    linkageType: ''
    returnType: int
    signature: "int process_memory_node(const void *fdt, int node,\n                                      const
      char *name, int depth,\n                                      u32 address_cells,
      u32 size_cells,\n                                      struct membanks *mem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_memory_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:188,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - fdt
    - node
    - name
    - depth
    - address_cells
    - size_cells
    - data
    argTypes:
    - void*
    - int
    - char*
    - int
    - u32
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 9
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: process_reserved_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - panic
    - process_memory_node
    linkageType: ''
    returnType: int
    signature: "int process_reserved_memory_node(const void *fdt, int node,\n                                               const
      char *name, int depth,\n                                               u32 address_cells,\n
      \                                              u32 size_cells,\n                                               void
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: device_tree_for_each_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:202,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fdt
    - node
    - name
    - depth
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - char*
    - int
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: process_reserved_memory
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - bootinfo_get_reserved_mem
    - device_tree_for_each_node
    linkageType: ''
    returnType: int
    signature: "int process_reserved_memory(const void *fdt, int node,\n                                          const
      char *name, int depth,\n                                          u32 address_cells,
      u32 size_cells)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fdt_parent_offset
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:222,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:223,1
    - Dst: fdt_get_path
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:226,1
    - Dst: strncmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:227,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:230,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:232,1
    - Dst: dt_cells_to_size
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:234,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:235,1
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:239,1
    - Dst: fdt_node_to_kind
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:240,1
    - Dst: has_xsm_magic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:261,1
    - Dst: fdt_node_check_compatible
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:265,1
    - Dst: add_boot_module
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:266,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:268,1
    - Dst: add_boot_cmdline
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:271,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 5
    argNames:
    - fdt
    - node
    - name
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - char*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 207
    functionDepth: 8
    functionLinenumber: 207
    functionLinenumberEnd: 273
    functionName: process_multiboot_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - dt_cells_to_size
    - add_boot_cmdline
    - fdt_get_path
    - panic
    - has_xsm_magic
    - fdt_node_to_kind
    - fdt_node_check_compatible
    - add_boot_module
    - fdt_parent_offset
    - ASSERT
    - strncmp
    - fdt_get_name
    - device_tree_get_reg
    linkageType: ''
    returnType: void
    signature: "void process_multiboot_node(const void *fdt, int node,\n                                          const
      char *name,\n                                          u32 address_cells, u32
      size_cells)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:283,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:287,1
    - Dst: device_tree_get_meminfo
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:289,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:291,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:299,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:301,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:307,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:310,1
    - Dst: dt_size_to_cells
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:310,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:312,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:315,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:320,1
    - Dst: dt_read_paddr
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:323,1
    - Dst: dt_size_to_cells
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:323,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:327,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:332,1
    - Dst: add_boot_module
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - fdt
    - node
    - name
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - char*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 275
    functionDepth: 8
    functionLinenumber: 275
    functionLinenumberEnd: 337
    functionName: process_chosen_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - fdt_get_property
    - device_tree_get_meminfo
    - dt_size_to_cells
    - add_boot_module
    - bootinfo_get_reserved_mem
    - printk
    - dt_read_paddr
    linkageType: ''
    returnType: int
    signature: "int process_chosen_node(const void *fdt, int node,\n                                      const
      char *name,\n                                      u32 address_cells, u32 size_cells)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:345,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:347,1
    - Dst: device_tree_get_meminfo
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:352,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - fdt
    - node
    - name
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - char*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 8
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: process_domain_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - bootinfo_get_reserved_mem
    - fdt_get_property
    - device_tree_get_meminfo
    - printk
    linkageType: ''
    returnType: int
    signature: "int process_domain_node(const void *fdt, int node,\n                                      const
      char *name,\n                                      u32 address_cells, u32 size_cells)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fdt
    - node
    - address_cells
    - size_cells
    argTypes:
    - void*
    - int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 364
    functionName: process_shm_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int process_shm_node(const void *fdt, int node,\n                                   uint32_t
      address_cells, uint32_t size_cells)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:378,1
    - Dst: device_tree_is_memory_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:379,1
    - Dst: process_memory_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:380,1
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:381,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:382,1
    - Dst: process_reserved_memory
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:383,1
    - Dst: device_tree_node_compatible
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:385,1
    - Dst: device_tree_node_compatible
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:386,1
    - Dst: process_multiboot_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:387,1
    - Dst: device_tree_node_matches
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:388,1
    - Dst: process_chosen_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:389,1
    - Dst: device_tree_node_compatible
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:390,1
    - Dst: process_domain_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:391,1
    - Dst: device_tree_node_compatible
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:392,1
    - Dst: process_shm_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:393,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:396,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 16
    argCount: 7
    argNames:
    - fdt
    - node
    - name
    - depth
    - address_cells
    - size_cells
    - data
    argTypes:
    - void*
    - int
    - char*
    - int
    - u32
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 367
    functionDepth: 9
    functionLinenumber: 367
    functionLinenumberEnd: 398
    functionName: early_scan_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    - efi_enabled
    - process_reserved_memory
    - process_multiboot_node
    - device_tree_node_matches
    - device_tree_is_memory_node
    - process_domain_node
    - bootinfo_get_mem
    - device_tree_node_compatible
    - process_memory_node
    - process_shm_node
    - printk
    - process_chosen_node
    linkageType: ''
    returnType: int
    signature: "int early_scan_node(const void *fdt,\n                                  int
      node, const char *name, int depth,\n                                  u32 address_cells,
      u32 size_cells,\n                                  void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:402,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:403,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:409,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:412,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:414,1
    - Dst: boot_module_kind_as_string
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:418,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:422,1
    - Dst: early_print_info_shmem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:427,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:429,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:431,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 435
    functionName: early_print_info
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - early_print_info_shmem
    - boot_module_kind_as_string
    - bootinfo_get_reserved_mem
    - bootinfo_get_mem
    - printk
    linkageType: ''
    returnType: void
    signature: void early_print_info(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - elem
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 450
    functionName: cmp_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmp_memory_node(const void *key, const void *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _a
    - _b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: swap_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: void
    signature: void swap_memory_node(void *_a, void *_b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:467,1
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:468,1
    - Dst: fdt_check_header
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:473,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:475,1
    - Dst: add_boot_module
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:477,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:477,1
    - Dst: fdt_num_mem_rsv
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:479,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:481,1
    - Dst: fdt_get_mem_rsv_paddr
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:488,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:500,1
    - Dst: device_tree_for_each_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:503,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:505,1
    - Dst: sort
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:512,1
    - Dst: early_print_info
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:515,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - fdt
    - paddr
    argTypes:
    - void*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 465
    functionDepth: 8
    functionLinenumber: 465
    functionLinenumberEnd: 518
    functionName: boot_fdt_info
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 2
    functionsReached:
    - sort
    - device_tree_for_each_node
    - early_print_info
    - panic
    - fdt_check_header
    - add_boot_module
    - bootinfo_get_reserved_mem
    - bootinfo_get_mem
    - fdt_totalsize
    - fdt_num_mem_rsv
    - fdt_get_mem_rsv_paddr
    linkageType: ''
    returnType: size_t
    signature: size_t boot_fdt_info(const void *fdt, paddr_t paddr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:525,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:529,1
    - Dst: boot_cmdline_find_by_kind
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:533,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:535,1
    - Dst: fdt_get_property
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 520
    functionDepth: 6
    functionLinenumber: 520
    functionLinenumberEnd: 543
    functionName: boot_fdt_cmdline
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 2
    functionsReached:
    - boot_cmdline_find_by_kind
    - fdt_path_offset
    - fdt_get_property
    linkageType: ''
    returnType: __init
    signature: __init *boot_fdt_cmdline(const void *fdt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:563,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:567,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/device-tree/bootinfo-fdt.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fdt
    - name
    - unit
    argTypes:
    - void*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 575
    functionName: domain_fdt_begin_node
    functionSourceFile: /src/xen/xen/common/device-tree/bootinfo-fdt.c
    functionUses: 4
    functionsReached:
    - snprintf
    - printk
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int domain_fdt_begin_node(void *fdt, const char *name, uint64_t unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:60,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:62,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:62,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - s
    - addr
    - na
    argTypes:
    - char*
    - __be32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: dt_dump_addr
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_dprintk
    linkageType: ''
    returnType: void
    signature: void dt_dump_addr(const char *s, const __be32 *addr, int na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - s
    - addr
    - na
    argTypes:
    - char*
    - __be32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: dt_dump_addr
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dt_dump_addr(const char *s, const __be32 *addr, int na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - na
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: DT_CHECK_ADDR_COUNT
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_CHECK_ADDR_COUNT(na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - na
    - ','
    - ns
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: DT_CHECK_COUNTS
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DT_CHECK_COUNTS(na, ns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:92,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:92,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:93,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cellp
    - np
    - address
    - size
    argTypes:
    - __be32**
    - struct dt_device_node*
    - u64*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: dt_get_range
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_next_cell
    - dt_n_addr_cells
    - dt_n_size_cells
    linkageType: ''
    returnType: void
    signature: "void dt_get_range(const __be32 **cellp, const struct dt_device_node
      *np,\n                  u64 *address, u64 *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_fdt32
      Src: /src/xen/xen/common/device-tree/device-tree.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cellp
    - size
    - val
    argTypes:
    - __be32**
    - int
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: dt_set_cell
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 2
    functionsReached:
    - cpu_to_fdt32
    linkageType: ''
    returnType: void
    signature: void dt_set_cell(__be32 **cellp, int size, u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:112,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:112,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:113,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cellp
    - np
    - address
    - size
    argTypes:
    - __be32**
    - struct dt_device_node*
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: dt_set_range
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_set_cell
    - dt_n_addr_cells
    - dt_n_size_cells
    linkageType: ''
    returnType: void
    signature: "void dt_set_range(__be32 **cellp, const struct dt_device_node *np,\n
      \                 u64 address, u64 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:119,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/device-tree.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cellp
    - addrcells
    - sizecells
    - address
    - size
    argTypes:
    - __be32**
    - int
    - int
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: dt_child_set_range
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 6
    functionsReached:
    - dt_set_cell
    linkageType: ''
    returnType: void
    signature: "void dt_child_set_range(__be32 **cellp, int addrcells, int sizecells,\n
      \                       u64 address, u64 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/device-tree/device-tree.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mem
    - size
    - align
    argTypes:
    - unsigned long*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: unflatten_dt_alloc
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    linkageType: ''
    returnType: void
    signature: "void *unflatten_dt_alloc(unsigned long *mem, unsigned long size,\n
      \                               unsigned long align)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_prop_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - np
    - name
    - lenp
    argTypes:
    - struct dt_device_node*
    - char*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: dt_find_property
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 6
    functionsReached:
    - dt_prop_cmp
    linkageType: ''
    returnType: struct dt_property
    signature: "struct dt_property *dt_find_property(const struct dt_device_node *np,\n
      \                                          const char *name, u32 *lenp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - np
    - name
    - lenp
    argTypes:
    - struct dt_device_node*
    - char*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: dt_get_property
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 31
    functionsReached:
    - dt_find_property
    linkageType: ''
    returnType: void
    signature: "void *dt_get_property(const struct dt_device_node *np,\n                            const
      char *name, u32 *lenp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:171,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - np
    - name
    - out_value
    argTypes:
    - struct dt_device_node*
    - char*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: dt_property_read_u32
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 16
    functionsReached:
    - be32_to_cpu
    - dt_get_property
    linkageType: ''
    returnType: bool
    signature: "bool dt_property_read_u32(const struct dt_device_node *np,\n                          const
      char *name, u32 *out_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:187,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - np
    - name
    - out_value
    argTypes:
    - struct dt_device_node*
    - char*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: dt_property_read_u64
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_read_number
    - dt_get_property
    linkageType: ''
    returnType: bool
    signature: "bool dt_property_read_u64(const struct dt_device_node *np,\n                          const
      char *name, u64 *out_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:198,1
    - Dst: strnlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - np
    - propname
    - out_string
    argTypes:
    - struct dt_device_node*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: dt_property_read_string
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 10
    functionsReached:
    - strnlen
    - dt_find_property
    linkageType: ''
    returnType: int
    signature: "int dt_property_read_string(const struct dt_device_node *np,\n                            const
      char *propname, const char **out_string)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:231,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/device-tree/device-tree.c:234,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/device-tree/device-tree.c:236,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/device-tree/device-tree.c:238,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/device-tree/device-tree.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - np
    - propname
    - min
    - max
    - len
    argTypes:
    - struct dt_device_node*
    - char*
    - u32
    - u32
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: dt_find_property_value_of_size
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_find_property
    - ERR_PTR
    linkageType: ''
    returnType: void
    signature: "void *dt_find_property_value_of_size(const struct dt_device_node *np,\n
      \                                           const char *propname, u32 min,\n
      \                                           u32 max, size_t *len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property_value_of_size
      Src: /src/xen/xen/common/device-tree/device-tree.c:253,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/device-tree/device-tree.c:258,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/device-tree/device-tree.c:259,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - np
    - propname
    - out_values
    - sz_min
    - sz_max
    argTypes:
    - struct dt_device_node*
    - char*
    - u32*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: dt_property_read_variable_u32_array
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - be32_to_cpu
    - dt_find_property_value_of_size
    - IS_ERR
    - PTR_ERR
    linkageType: ''
    returnType: int
    signature: "int dt_property_read_variable_u32_array(const struct dt_device_node
      *np,\n                                        const char *propname, u32 *out_values,\n
      \                                       size_t sz_min, size_t sz_max)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:276,1
    - Dst: strnlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:291,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - np
    - propname
    - string
    argTypes:
    - struct dt_device_node*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 298
    functionName: dt_property_match_string
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 6
    functionsReached:
    - strnlen
    - dt_find_property
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int dt_property_match_string(const struct dt_device_node *np,\n                             const
      char *propname, const char *string)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:306,1
    - Dst: dt_compat_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:311,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - device
    - compat
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: dt_device_is_compatible
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 9
    functionsReached:
    - dt_compat_cmp
    - strlen
    - dt_get_property
    linkageType: ''
    returnType: bool
    signature: "bool dt_device_is_compatible(const struct dt_device_node *device,\n
      \                            const char *compat)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/device-tree.c:326,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/device-tree.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - compat
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: dt_machine_is_compatible
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_device_is_compatible
    - dt_find_node_by_path
    linkageType: ''
    returnType: bool
    signature: bool dt_machine_is_compatible(const char *compat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:341,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - from
    - name
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: dt_find_node_by_name
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    - dt_for_each_device_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *dt_find_node_by_name(struct dt_device_node
      *from,\n                                            const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:355,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - from
    - type
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: dt_find_node_by_type
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    - dt_for_each_device_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *dt_find_node_by_type(struct dt_device_node
      *from,\n                                            const char *type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:367,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - from
    - path
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    functionName: dt_find_node_by_path_from
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_node_cmp
    - dt_for_each_device_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *dt_find_node_by_path_from(struct dt_device_node
      *from,\n                                                 const char *path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_copy_string_from_guest
      Src: /src/xen/xen/common/device-tree/device-tree.c:379,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/device-tree/device-tree.c:380,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/device-tree/device-tree.c:381,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/device-tree.c:383,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/device-tree.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - u_plen
    - node
    argTypes:
    - uint32_t
    - struct dt_device_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: dt_find_node_by_gpath
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - PTR_ERR
    - safe_copy_string_from_guest
    - dt_find_node_by_path
    - xfree
    linkageType: ''
    returnType: int
    signature: "int dt_find_node_by_gpath(XEN_GUEST_HANDLE(char) u_path, uint32_t
      u_plen,\n                          struct dt_device_node **node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/device-tree/device-tree.c:394,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - alias
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 401
    functionName: dt_find_node_by_alias
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - strcmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct dt_device_node
    signature: struct dt_device_node *dt_find_node_by_alias(const char *alias)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_path_is_equal
      Src: /src/xen/xen/common/device-tree/device-tree.c:416,1
    - Dst: dt_device_type_is_equal
      Src: /src/xen/xen/common/device-tree/device-tree.c:419,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/device-tree.c:422,1
    - Dst: dt_device_is_available
      Src: /src/xen/xen/common/device-tree/device-tree.c:425,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - matches
    - node
    argTypes:
    - struct dt_device_match*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 403
    functionDepth: 4
    functionLinenumber: 403
    functionLinenumberEnd: 436
    functionName: dt_match_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 5
    functionsReached:
    - dt_device_is_available
    - dt_node_path_is_equal
    - dt_device_type_is_equal
    - dt_device_is_compatible
    - dt_find_property
    linkageType: ''
    returnType: struct dt_device_match
    signature: "struct dt_device_match *\ndt_match_node(const struct dt_device_match
      *matches,\n              const struct dt_device_node *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: dt_get_parent
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct dt_device_node
    signature: struct dt_device_node *dt_get_parent(const struct dt_device_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:458,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/device-tree.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - from
    - type
    - compatible
    argTypes:
    - struct dt_device_node*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 446
    functionDepth: 4
    functionLinenumber: 446
    functionLinenumberEnd: 465
    functionName: dt_find_compatible_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 8
    functionsReached:
    - dt_device_is_compatible
    - dt_node_cmp
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *\ndt_find_compatible_node(struct dt_device_node
      *from,\n                        const char *type,\n                        const
      char *compatible)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:458,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/device-tree.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached:
    - dt_device_is_compatible
    - dt_node_cmp
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node(dt, np)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_match_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from
    - matches
    argTypes:
    - struct dt_device_node*
    - struct dt_device_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 482
    functionName: dt_find_matching_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 5
    functionsReached:
    - dt_match_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *\ndt_find_matching_node(struct dt_device_node
      *from,\n                      const struct dt_device_match *matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_match_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached:
    - dt_match_node
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node(dt, np)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:493,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - np
    - parent
    argTypes:
    - struct dt_device_node*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: __dt_n_addr_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_get_property
    linkageType: ''
    returnType: int
    signature: int __dt_n_addr_cells(const struct dt_device_node *np, bool parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:510,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - np
    - parent
    argTypes:
    - struct dt_device_node*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: __dt_n_size_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_get_property
    linkageType: ''
    returnType: int
    signature: int __dt_n_size_cells(const struct dt_device_node *np, bool parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: dt_n_addr_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 13
    functionsReached:
    - __dt_n_addr_cells
    linkageType: ''
    returnType: int
    signature: int dt_n_addr_cells(const struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: dt_n_size_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 10
    functionsReached:
    - __dt_n_size_cells
    linkageType: ''
    returnType: int
    signature: int dt_n_size_cells(const struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: dt_child_n_addr_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - __dt_n_addr_cells
    linkageType: ''
    returnType: int
    signature: int dt_child_n_addr_cells(const struct dt_device_node *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parent
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: dt_child_n_size_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - __dt_n_size_cells
    linkageType: ''
    returnType: int
    signature: int dt_child_n_size_cells(const struct dt_device_node *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: dt_bus_default_match
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_get_property
    linkageType: ''
    returnType: bool
    signature: bool dt_bus_default_match(const struct dt_device_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:557,1
    - Dst: dt_n_size_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dev
    - addrc
    - sizec
    argTypes:
    - struct dt_device_node*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 560
    functionName: dt_bus_default_count_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_n_addr_cells
    - dt_n_size_cells
    linkageType: ''
    returnType: void
    signature: "void dt_bus_default_count_cells(\n    const struct dt_device_node
      *dev, int *addrc, int *sizec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:567,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:568,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:569,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:571,1
    - Dst: memcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - addr
    - range
    - na
    - ns
    - pna
    argTypes:
    - __be32*
    - __be32*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: dt_bus_default_map
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - dt_dprintk
    - memcmp
    linkageType: ''
    returnType: u64
    signature: "u64 dt_bus_default_map(__be32 *addr, const __be32 *range,\n                                       int
      na, int ns, int pna)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:590,1
    - Dst: memset
      Src: /src/xen/xen/common/device-tree/device-tree.c:592,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:595,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - offset
    - na
    argTypes:
    - __be32*
    - u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: dt_bus_default_translate
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - memset
    - cpu_to_be32
    linkageType: ''
    returnType: int
    signature: int dt_bus_default_translate(__be32 *addr, u64 offset, int na)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - __be32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 603
    functionName: dt_bus_default_get_flags
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dt_bus_default_get_flags(const __be32 *addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:611,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:611,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 617
    functionName: dt_node_is_pci
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printk
    linkageType: ''
    returnType: bool
    signature: bool dt_node_is_pci(const struct dt_device_node *np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:628,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:628,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:629,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:629,1
    - Dst: dt_node_is_pci
      Src: /src/xen/xen/common/device-tree/device-tree.c:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 631
    functionName: dt_bus_pci_match
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - strcmp
    - dt_node_is_pci
    linkageType: ''
    returnType: bool
    signature: bool dt_bus_pci_match(const struct dt_device_node *np)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - np
    - addrc
    - sizec
    argTypes:
    - struct dt_device_node*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 640
    functionName: dt_bus_pci_count_cells
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void dt_bus_pci_count_cells(const struct dt_device_node *np,\n\t\t\t\t
      \                                   int *addrc, int *sizec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - addr
    argTypes:
    - __be32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 659
    functionName: dt_bus_pci_get_flags
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dt_bus_pci_get_flags(const __be32 *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_bus_pci_get_flags
      Src: /src/xen/xen/common/device-tree/device-tree.c:667,1
    - Dst: dt_bus_pci_get_flags
      Src: /src/xen/xen/common/device-tree/device-tree.c:668,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:675,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:676,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:677,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - addr
    - range
    - na
    - ns
    - pna
    argTypes:
    - __be32*
    - __be32*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 686
    functionName: dt_bus_pci_map
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - dt_bus_pci_get_flags
    - dt_dprintk
    linkageType: ''
    returnType: u64
    signature: "u64 dt_bus_pci_map(__be32 *addr, const __be32 *range,\n                                   int
      na, int ns, int pna)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_bus_default_translate
      Src: /src/xen/xen/common/device-tree/device-tree.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - addr
    - offset
    - na
    argTypes:
    - __be32*
    - u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: dt_bus_pci_translate
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_bus_default_translate
    linkageType: ''
    returnType: int
    signature: int dt_bus_pci_translate(__be32 *addr, u64 offset, int na)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/device-tree.c:724,1
    - Dst: match
      Src: /src/xen/xen/common/device-tree/device-tree.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 729
    functionName: dt_match_bus
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - match
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct dt_bus
    signature: struct dt_bus *dt_match_bus(const struct dt_device_node *np)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:742,1
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:746,1
    - Dst: struct dt_bus*::count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:749,1
    - Dst: DT_CHECK_ADDR_COUNT
      Src: /src/xen/xen/common/device-tree/device-tree.c:751,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:755,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:766,1
    - Dst: struct dt_bus*::get_flags
      Src: /src/xen/xen/common/device-tree/device-tree.c:768,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - dev
    - index
    - size
    - flags
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - u64*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 773
    functionName: dt_get_address
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - struct dt_bus*::get_flags
    - dt_match_bus
    - dt_get_property
    - struct dt_bus*::count_cells
    - DT_CHECK_ADDR_COUNT
    - dt_get_parent
    linkageType: ''
    returnType: __be32
    signature: "__be32 *dt_get_address(const struct dt_device_node *dev,\n                                    unsigned
      int index, u64 *size,\n                                    unsigned int *flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:786,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:789,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:794,1
    - Dst: memset
      Src: /src/xen/xen/common/device-tree/device-tree.c:795,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:796,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:800,1
    - Dst: struct dt_bus*::map
      Src: /src/xen/xen/common/device-tree/device-tree.c:807,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:813,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:816,1
    - Dst: dt_dump_addr
      Src: /src/xen/xen/common/device-tree/device-tree.c:819,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:820,1
    - Dst: struct dt_bus*::translate
      Src: /src/xen/xen/common/device-tree/device-tree.c:823,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - parent
    - bus
    - pbus
    - addr
    - na
    - ns
    - pna
    - rprop
    argTypes:
    - struct dt_device_node*
    - struct dt_bus*
    - struct dt_bus*
    - __be32*
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 824
    functionName: dt_translate_one
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - struct dt_bus*::map
    - dt_dprintk
    - dt_get_property
    - printk
    - dt_dump_addr
    - memset
    - memcpy
    - struct dt_bus*::translate
    linkageType: ''
    returnType: int
    signature: "int dt_translate_one(const struct dt_device_node *parent,\n                            const
      struct dt_bus *bus,\n                            const struct dt_bus *pbus,\n
      \                           __be32 *addr, int na, int ns,\n                            int
      pna, const char *rprop)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:845,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:848,1
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:851,1
    - Dst: struct dt_bus*::count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:856,1
    - Dst: DT_CHECK_COUNTS
      Src: /src/xen/xen/common/device-tree/device-tree.c:857,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:859,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:863,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:865,1
    - Dst: dt_dump_addr
      Src: /src/xen/xen/common/device-tree/device-tree.c:867,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:874,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:879,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:880,1
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:885,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:888,1
    - Dst: count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:891,1
    - Dst: DT_CHECK_COUNTS
      Src: /src/xen/xen/common/device-tree/device-tree.c:892,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:894,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:899,1
    - Dst: dt_translate_one
      Src: /src/xen/xen/common/device-tree/device-tree.c:903,1
    - Dst: dt_dump_addr
      Src: /src/xen/xen/common/device-tree/device-tree.c:911,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 3
    argNames:
    - dev
    - in_addr
    - rprop
    argTypes:
    - struct dt_device_node*
    - __be32*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 916
    functionName: __dt_translate_address
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - dt_translate_one
    - dt_match_bus
    - dt_dprintk
    - struct dt_bus*::count_cells
    - DT_CHECK_COUNTS
    - printk
    - dt_dump_addr
    - count_cells
    - dt_get_parent
    - memcpy
    linkageType: ''
    returnType: u64
    signature: "u64 __dt_translate_address(const struct dt_device_node *dev,\n                                  const
      __be32 *in_addr, const char *rprop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_address
      Src: /src/xen/xen/common/device-tree/device-tree.c:925,1
    - Dst: __dt_translate_address
      Src: /src/xen/xen/common/device-tree/device-tree.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - dev
    - index
    - addr
    - size
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - u64*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 919
    functionDepth: 5
    functionLinenumber: 919
    functionLinenumberEnd: 938
    functionName: dt_device_get_address
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 5
    functionsReached:
    - dt_get_address
    - __dt_translate_address
    linkageType: ''
    returnType: int
    signature: "int dt_device_get_address(const struct dt_device_node *dev, unsigned
      int index,\n                          u64 *addr, u64 *size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_address
      Src: /src/xen/xen/common/device-tree/device-tree.c:946,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:955,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - dev
    - index
    - addr
    - size
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - paddr_t*
    - paddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 940
    functionDepth: 6
    functionLinenumber: 940
    functionLinenumberEnd: 975
    functionName: dt_device_get_paddr
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 18
    functionsReached:
    - dt_device_get_address
    - printk
    linkageType: ''
    returnType: int
    signature: "int dt_device_get_paddr(const struct dt_device_node *dev, unsigned
      int index,\n                        paddr_t *addr, paddr_t *size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:990,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:994,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:998,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1001,1
    - Dst: struct dt_bus*::count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:1008,1
    - Dst: DT_CHECK_COUNTS
      Src: /src/xen/xen/common/device-tree/device-tree.c:1009,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1011,1
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:1016,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1019,1
    - Dst: count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:1023,1
    - Dst: DT_CHECK_COUNTS
      Src: /src/xen/xen/common/device-tree/device-tree.c:1024,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1026,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1035,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/device-tree.c:1037,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/device-tree.c:1038,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:1045,1
    - Dst: __dt_translate_address
      Src: /src/xen/xen/common/device-tree/device-tree.c:1047,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:1048,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/device-tree.c:1050,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 977
    functionDepth: 5
    functionLinenumber: 977
    functionLinenumberEnd: 1060
    functionName: dt_for_each_range
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 4
    functionsReached:
    - dt_read_number
    - cb
    - dt_match_bus
    - dt_dprintk
    - dt_get_property
    - struct dt_bus*::count_cells
    - DT_CHECK_COUNTS
    - printk
    - __dt_translate_address
    - count_cells
    - dt_node_name
    - dt_get_parent
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int dt_for_each_range(const struct dt_device_node *dev,\n                      int
      (*cb)(const struct dt_device_node *dev,\n                                uint64_t
      addr, uint64_t length,\n                                void *data),\n                      void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - dt_phandle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1077
    functionName: dt_find_node_by_phandle
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached:
    - dt_for_each_device_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: struct dt_device_node *dt_find_node_by_phandle(dt_phandle handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1094,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1096,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/device-tree.c:1098,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1098,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - child
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1086
    functionDepth: 3
    functionLinenumber: 1086
    functionLinenumberEnd: 1103
    functionName: dt_irq_find_parent
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_get_parent
    - dt_get_property
    - dt_find_node_by_phandle
    linkageType: ''
    returnType: struct dt_device_node
    signature: 'struct dt_device_node *

      dt_irq_find_parent(const struct dt_device_node *child)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1112,1
    - Dst: dt_count_phandle_with_args
      Src: /src/xen/xen/common/device-tree/device-tree.c:1115,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1119,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1120,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1125,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1130,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1131,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1131,1
    - Dst: dt_irq_find_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1134,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1139,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1142,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1105
    functionDepth: 4
    functionLinenumber: 1105
    functionLinenumberEnd: 1147
    functionName: dt_number_of_irq
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached:
    - be32_to_cpu
    - dt_dprintk
    - dt_get_property
    - dt_irq_find_parent
    - dt_count_phandle_with_args
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dt_number_of_irq(const struct dt_device_node *device)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1158,1
    - Dst: dt_match_bus
      Src: /src/xen/xen/common/device-tree/device-tree.c:1162,1
    - Dst: struct dt_bus*::count_cells
      Src: /src/xen/xen/common/device-tree/device-tree.c:1165,1
    - Dst: DT_CHECK_COUNTS
      Src: /src/xen/xen/common/device-tree/device-tree.c:1167,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1179
    functionName: dt_number_of_address
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 4
    functionsReached:
    - dt_match_bus
    - dt_get_property
    - struct dt_bus*::count_cells
    - DT_CHECK_COUNTS
    - dt_get_parent
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dt_number_of_address(const struct dt_device_node *dev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1196,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1206,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1209,1
    - Dst: dt_irq_find_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1213,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1217,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1221,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1225,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1234,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1235,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1240,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1242,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1245,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1249,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/device-tree.c:1262,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1262,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1269,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1273,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/device-tree.c:1273,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1278,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1281,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1284,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1285,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1286,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1288,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1293,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:1307,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1322,1
    - Dst: dt_irq_translate
      Src: /src/xen/xen/common/device-tree/device-tree.c:1326,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1329,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/device-tree.c:1333,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1336,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1343,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 98
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1181
    functionDepth: 4
    functionLinenumber: 1181
    functionLinenumberEnd: 1350
    functionName: dt_for_each_irq_map
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_read_number
    - be32_to_cpu
    - cb
    - dt_dprintk
    - dt_get_property
    - dt_find_node_by_phandle
    - dt_irq_translate
    - dt_irq_find_parent
    - dt_node_name
    - dt_get_parent
    linkageType: ''
    returnType: int
    signature: "int dt_for_each_irq_map(const struct dt_device_node *dev,\n                        int
      (*cb)(const struct dt_device_node *dev,\n                                  const
      struct dt_irq *dt_irq,\n                                  void *data),\n                        void
      *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1378,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1379,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1380,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1389,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1392,1
    - Dst: dt_irq_find_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1396,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1400,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1404,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1414,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1415,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1420,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1422,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1430,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1432,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1435,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/device-tree.c:1440,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1447,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1451,1
    - Dst: dt_irq_find_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1452,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1458,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1466,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:1478,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:1483,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1489,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/device-tree.c:1492,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1492,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1499,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1506,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1509,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1512,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1513,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1514,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1516,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1526,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1539,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/common/device-tree/device-tree.c:1539,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 111
    argCount: 5
    argNames:
    - parent
    - intspec
    - ointsize
    - addr
    - oirq
    argTypes:
    - struct dt_device_node*
    - __be32*
    - u32
    - __be32*
    - struct dt_raw_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1367
    functionDepth: 4
    functionLinenumber: 1367
    functionLinenumberEnd: 1545
    functionName: dt_irq_map_raw
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - be32_to_cpu
    - cpu_to_be32
    - dt_node_full_name
    - dt_dprintk
    - dt_get_property
    - dt_find_node_by_phandle
    - dt_irq_find_parent
    - dt_get_parent
    linkageType: ''
    returnType: int
    signature: "int dt_irq_map_raw(const struct dt_device_node *parent,\n                          const
      __be32 *intspec, u32 ointsize,\n                          const __be32 *addr,\n
      \                         struct dt_raw_irq *oirq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1558,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1562,1
    - Dst: dt_parse_phandle_with_args
      Src: /src/xen/xen/common/device-tree/device-tree.c:1565,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1569,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1570,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:1573,1
    - Dst: dt_irq_map_raw
      Src: /src/xen/xen/common/device-tree/device-tree.c:1575,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1580,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1585,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1586,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1586,1
    - Dst: dt_irq_find_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:1589,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1594,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1597,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1599,1
    - Dst: dt_irq_map_raw
      Src: /src/xen/xen/common/device-tree/device-tree.c:1606,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - device
    - index
    - out_irq
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - struct dt_raw_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1547
    functionDepth: 5
    functionLinenumber: 1547
    functionLinenumberEnd: 1612
    functionName: dt_device_get_raw_irq
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - be32_to_cpu
    - cpu_to_be32
    - dt_dprintk
    - dt_get_property
    - dt_irq_map_raw
    - dt_irq_find_parent
    - dt_parse_phandle_with_args
    linkageType: ''
    returnType: int
    signature: "int dt_device_get_raw_irq(const struct dt_device_node *device,\n                          unsigned
      int index,\n                          struct dt_raw_irq *out_irq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/device-tree.c:1617,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/device-tree.c:1618,1
    - Dst: dt_irq_xlate
      Src: /src/xen/xen/common/device-tree/device-tree.c:1627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - raw
    - out_irq
    argTypes:
    - struct dt_raw_irq*
    - struct dt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1629
    functionName: dt_irq_translate
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_irq_xlate
    - ASSERT
    linkageType: ''
    returnType: int
    signature: "int dt_irq_translate(const struct dt_raw_irq *raw,\n                     struct
      dt_irq *out_irq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_raw_irq
      Src: /src/xen/xen/common/device-tree/device-tree.c:1637,1
    - Dst: dt_irq_translate
      Src: /src/xen/xen/common/device-tree/device-tree.c:1642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - device
    - index
    - out_irq
    argTypes:
    - struct dt_device_node*
    - unsigned int
    - struct dt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1631
    functionDepth: 6
    functionLinenumber: 1631
    functionLinenumberEnd: 1643
    functionName: dt_device_get_irq
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 2
    functionsReached:
    - dt_device_get_raw_irq
    - dt_irq_translate
    linkageType: ''
    returnType: int
    signature: "int dt_device_get_irq(const struct dt_device_node *device, unsigned
      int index,\n                      struct dt_irq *out_irq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1650,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1656,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1661
    functionName: dt_device_is_available
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 3
    functionsReached:
    - strcmp
    - dt_get_property
    linkageType: ''
    returnType: bool
    signature: bool dt_device_is_available(const struct dt_device_node *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    functionName: dt_device_for_passthrough
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 4
    functionsReached:
    - dt_find_property
    linkageType: ''
    returnType: bool
    signature: bool dt_device_for_passthrough(const struct dt_device_node *device)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:1682,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1697,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/device-tree.c:1711,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1714,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/device-tree.c:1722,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1724,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1738,1
    - Dst: WARN_ON
      Src: /src/xen/xen/common/device-tree/device-tree.c:1760,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1766,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 6
    argNames:
    - np
    - list_name
    - cells_name
    - cell_count
    - index
    - out_args
    argTypes:
    - struct dt_device_node*
    - char*
    - char*
    - int
    - int
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1669
    functionDepth: 4
    functionLinenumber: 1669
    functionLinenumberEnd: 1787
    functionName: __dt_parse_phandle_with_args
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_property_read_u32
    - dt_get_property
    - dt_find_node_by_phandle
    - printk
    - WARN_ON
    linkageType: ''
    returnType: int
    signature: "int __dt_parse_phandle_with_args(const struct dt_device_node *np,\n
      \                                       const char *list_name,\n                                        const
      char *cells_name,\n                                        int cell_count, int
      index,\n                                        struct dt_phandle_args *out_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __dt_parse_phandle_with_args
      Src: /src/xen/xen/common/device-tree/device-tree.c:1797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - np
    - phandle_name
    - index
    argTypes:
    - struct dt_device_node*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1789
    functionDepth: 5
    functionLinenumber: 1789
    functionLinenumberEnd: 1802
    functionName: dt_parse_phandle
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 2
    functionsReached:
    - __dt_parse_phandle_with_args
    linkageType: ''
    returnType: struct dt_device_node
    signature: "struct dt_device_node *dt_parse_phandle(const struct dt_device_node
      *np,\n                                        const char *phandle_name, int
      index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __dt_parse_phandle_with_args
      Src: /src/xen/xen/common/device-tree/device-tree.c:1812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - np
    - list_name
    - cells_name
    - index
    - out_args
    argTypes:
    - struct dt_device_node*
    - char*
    - char*
    - int
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1805
    functionDepth: 5
    functionLinenumber: 1805
    functionLinenumberEnd: 1814
    functionName: dt_parse_phandle_with_args
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 5
    functionsReached:
    - __dt_parse_phandle_with_args
    linkageType: ''
    returnType: int
    signature: "int dt_parse_phandle_with_args(const struct dt_device_node *np,\n
      \                              const char *list_name,\n                               const
      char *cells_name, int index,\n                               struct dt_phandle_args
      *out_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __dt_parse_phandle_with_args
      Src: /src/xen/xen/common/device-tree/device-tree.c:1820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - np
    - list_name
    - cells_name
    argTypes:
    - struct dt_device_node*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1816
    functionDepth: 5
    functionLinenumber: 1816
    functionLinenumberEnd: 1821
    functionName: dt_count_phandle_with_args
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - __dt_parse_phandle_with_args
    linkageType: ''
    returnType: int
    signature: "int dt_count_phandle_with_args(const struct dt_device_node *np,\n
      \                              const char *list_name,\n                               const
      char *cells_name)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1847,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1850,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:1855,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/device-tree/device-tree.c:1856,1
    - Dst: unflatten_dt_alloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:1886,1
    - Dst: memset
      Src: /src/xen/xen/common/device-tree/device-tree.c:1890,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/device-tree/device-tree.c:1896,1
    - Dst: strlcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:1904,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:1906,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1908,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:1909,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:1913,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:1916,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:1919,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1940,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1949,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1950,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/device-tree/device-tree.c:1952,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/device-tree/device-tree.c:1953,1
    - Dst: fdt_string
      Src: /src/xen/xen/common/device-tree/device-tree.c:1955,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:1958,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1961,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:1963,1
    - Dst: unflatten_dt_alloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:1964,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1973,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1974,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1977,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:1982,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:1983,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/common/device-tree/device-tree.c:1990,1
    - Dst: unflatten_dt_alloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:2011,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:2029,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2031,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:2043,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:2044,1
    - Dst: unflatten_dt_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:2056,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2057,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2061,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 135
    argCount: 6
    argNames:
    - fdt
    - mem
    - p
    - dad
    - allnextpp
    - fpsize
    argTypes:
    - void*
    - unsigned long
    - unsigned long*
    - struct dt_device_node*
    - struct dt_device_node***
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 1832
    functionDepth: 3
    functionLinenumber: 1832
    functionLinenumberEnd: 2067
    functionName: unflatten_dt_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - be32_to_cpu
    - ROUNDUP
    - fdt_string
    - dt_dprintk
    - dt_get_property
    - unflatten_dt_node
    - unflatten_dt_alloc
    - strlcpy
    - strlen
    - printk
    - memset
    - fdt_version
    - INIT_LIST_HEAD
    - strcmp
    - memcpy
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long unflatten_dt_node(const void *fdt,\n                                       unsigned
      long mem,\n                                       unsigned long *p,\n                                       struct
      dt_device_node *dad,\n                                       struct dt_device_node
      ***allnextpp,\n                                       unsigned long fpsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2074,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2076,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2077,1
    - Dst: fdt_magic
      Src: /src/xen/xen/common/device-tree/device-tree.c:2077,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2078,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/device-tree.c:2078,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2079,1
    - Dst: fdt_version
      Src: /src/xen/xen/common/device-tree/device-tree.c:2079,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/device-tree/device-tree.c:2082,1
    - Dst: unflatten_dt_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:2083,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2089,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:2092,1
    - Dst: cpu_to_be32
      Src: /src/xen/xen/common/device-tree/device-tree.c:2096,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2098,1
    - Dst: fdt_off_dt_struct
      Src: /src/xen/xen/common/device-tree/device-tree.c:2101,1
    - Dst: unflatten_dt_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:2102,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2103,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2105,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/device-tree.c:2107,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2111,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2113,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2114,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/device-tree.c:2115,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - fdt
    - mynodes
    argTypes:
    - void*
    - struct dt_device_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2069
    functionDepth: 4
    functionLinenumber: 2069
    functionLinenumberEnd: 2124
    functionName: unflatten_device_tree
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - cpu_to_be32
    - dt_dprintk
    - fdt_magic
    - _xmalloc
    - fdt_totalsize
    - unflatten_dt_node
    - fdt_off_dt_struct
    - printk
    - fdt_version
    - xfree
    linkageType: ''
    returnType: int
    signature: int unflatten_device_tree(const void *fdt, struct dt_device_node **mynodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/xen/xen/common/device-tree/device-tree.c:2132,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/device-tree/device-tree.c:2133,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2134,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/common/device-tree/device-tree.c:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ap
    - np
    - id
    - stem
    - stem_len
    argTypes:
    - struct dt_alias_prop*
    - struct dt_device_node*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2126
    functionDepth: 1
    functionLinenumber: 2126
    functionLinenumberEnd: 2136
    functionName: dt_alias_add
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - dt_node_full_name
    - dt_dprintk
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void dt_alias_add(struct dt_alias_prop *ap,\n                         struct
      dt_device_node *np,\n                         int id, const char *stem, int
      stem_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/device-tree.c:2150,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:2157,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2163,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2164,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2165,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/device-tree.c:2168,1
    - Dst: isdigit
      Src: /src/xen/xen/common/device-tree/device-tree.c:2174,1
    - Dst: simple_strtoll
      Src: /src/xen/xen/common/device-tree/device-tree.c:2178,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:2181,1
    - Dst: dt_alias_add
      Src: /src/xen/xen/common/device-tree/device-tree.c:2185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2145
    functionDepth: 2
    functionLinenumber: 2145
    functionLinenumberEnd: 2187
    functionName: dt_alias_scan
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_alias_add
    - strcmp
    - _xmalloc
    - isdigit
    - strlen
    - simple_strtoll
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void dt_alias_scan(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/device-tree.c:2157,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2163,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2164,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/device-tree.c:2165,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/device-tree.c:2168,1
    - Dst: isdigit
      Src: /src/xen/xen/common/device-tree/device-tree.c:2174,1
    - Dst: simple_strtoll
      Src: /src/xen/xen/common/device-tree/device-tree.c:2178,1
    - Dst: _xmalloc
      Src: /src/xen/xen/common/device-tree/device-tree.c:2181,1
    - Dst: dt_alias_add
      Src: /src/xen/xen/common/device-tree/device-tree.c:2185,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2154
    functionDepth: 2
    functionLinenumber: 2154
    functionLinenumberEnd: 2186
    functionName: dt_for_each_property_node
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - dt_alias_add
    - _xmalloc
    - dt_find_node_by_path
    - isdigit
    - strlen
    - simple_strtoll
    - strcmp
    linkageType: ''
    returnType: void
    signature: void dt_for_each_property_node( aliases, pp )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_matching_node
      Src: /src/xen/xen/common/device-tree/device-tree.c:2194,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:2196,1
    - Dst: dt_get_parent
      Src: /src/xen/xen/common/device-tree/device-tree.c:2199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - matches
    argTypes:
    - struct dt_device_match*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2189
    functionDepth: 6
    functionLinenumber: 2189
    functionLinenumberEnd: 2204
    functionName: dt_find_interrupt_controller
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_find_matching_node
    - dt_find_property
    - dt_get_parent
    linkageType: ''
    returnType: struct dt_device_node
    signature: 'struct dt_device_node * __init

      dt_find_interrupt_controller(const struct dt_device_match *matches)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unflatten_device_tree
      Src: /src/xen/xen/common/device-tree/device-tree.c:2208,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/device-tree.c:2211,1
    - Dst: dt_alias_scan
      Src: /src/xen/xen/common/device-tree/device-tree.c:2213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2206
    functionDepth: 5
    functionLinenumber: 2206
    functionLinenumberEnd: 2214
    functionName: dt_unflatten_host_device_tree
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 2
    functionsReached:
    - panic
    - dt_alias_scan
    - unflatten_device_tree
    linkageType: ''
    returnType: void
    signature: void dt_unflatten_host_device_tree(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/device-tree.c:2221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2216
    functionDepth: 4
    functionLinenumber: 2216
    functionLinenumberEnd: 2226
    functionName: dt_get_pci_domain_nr
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 1
    functionsReached:
    - dt_property_read_u32
    linkageType: ''
    returnType: int
    signature: int dt_get_pci_domain_nr(struct dt_device_node *node)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/device-tree.c:2238,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2251,1
    - Dst: GENMASK
      Src: /src/xen/xen/common/device-tree/device-tree.c:2257,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/device-tree.c:2264,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2270,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2271,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2272,1
    - Dst: be32_to_cpu
      Src: /src/xen/xen/common/device-tree/device-tree.c:2273,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2277,1
    - Dst: dt_find_node_by_phandle
      Src: /src/xen/xen/common/device-tree/device-tree.c:2286,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2302,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/device-tree.c:2308,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 6
    argNames:
    - np
    - id
    - map_name
    - map_mask_name
    - target
    - id_out
    argTypes:
    - struct dt_device_node*
    - uint32_t
    - char*
    - char*
    - struct dt_device_node**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2228
    functionDepth: 4
    functionLinenumber: 2228
    functionLinenumberEnd: 2316
    functionName: dt_map_id
    functionSourceFile: /src/xen/xen/common/device-tree/device-tree.c
    functionUses: 0
    functionsReached:
    - be32_to_cpu
    - dt_property_read_u32
    - GENMASK
    - dt_get_property
    - dt_find_node_by_phandle
    - printk
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int dt_map_id(const struct dt_device_node *np, uint32_t id,\n              const
      char *map_name, const char *map_mask_name,\n              struct dt_device_node
      **target, uint32_t *id_out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_allocation_size
      Src: /src/xen/xen/common/device-tree/domain-build.c:24,1
    - Dst: min
      Src: /src/xen/xen/common/device-tree/domain-build.c:27,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/device-tree/domain-build.c:29,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/domain-build.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - d
    - tot_size
    - cb
    - extra
    argTypes:
    - struct domain*
    - paddr_t
    - alloc_domheap_mem_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 55
    functionName: allocate_domheap_memory
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 2
    functionsReached:
    - get_allocation_size
    - min
    - alloc_domheap_pages
    - cb
    linkageType: ''
    returnType: bool
    signature: "bool allocate_domheap_memory(struct domain *d, paddr_t tot_size,\n
      \                                   alloc_domheap_mem_cb cb, void *extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/domain-build.c:63,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/device-tree/domain-build.c:64,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/device-tree/domain-build.c:64,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/domain-build.c:67,1
    - Dst: gfn_add
      Src: /src/xen/xen/common/device-tree/domain-build.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - d
    - pg
    - order
    - extra
    argTypes:
    - struct domain*
    - struct page_info*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 74
    functionName: guest_map_pages
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 0
    functionsReached:
    - page_to_mfn
    - BUG_ON
    - guest_physmap_add_page
    - dprintk
    - gfn_add
    linkageType: ''
    returnType: bool
    signature: "bool guest_map_pages(struct domain *d, struct page_info *pg,\n                                   unsigned
      int order, void *extra)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/common/device-tree/domain-build.c:79,1
    - Dst: gfn_to_gaddr
      Src: /src/xen/xen/common/device-tree/domain-build.c:92,1
    - Dst: allocate_domheap_memory
      Src: /src/xen/xen/common/device-tree/domain-build.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - kinfo
    - sgfn
    - tot_size
    argTypes:
    - struct kernel_info*
    - gfn_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 7
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: allocate_bank_memory
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 0
    functionsReached:
    - gfn_to_gaddr
    - kernel_info_get_mem
    - allocate_domheap_memory
    linkageType: ''
    returnType: bool
    signature: "bool allocate_bank_memory(struct kernel_info *kinfo, gfn_t sgfn,\n
      \                                paddr_t tot_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/device-tree/domain-build.c:114,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/common/device-tree/domain-build.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - s_gfn
    - e_gfn
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 153
    functionName: add_hwdom_free_regions
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 0
    functionsReached:
    - pfn_to_paddr
    linkageType: ''
    returnType: int
    signature: "int add_hwdom_free_regions(unsigned long s_gfn,\n                                         unsigned
      long e_gfn, void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: bootinfo_get_mem
      Src: /src/xen/xen/common/device-tree/domain-build.c:168,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/domain-build.c:174,1
    - Dst: domain_use_host_layout
      Src: /src/xen/xen/common/device-tree/domain-build.c:174,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/device-tree/domain-build.c:176,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/common/device-tree/domain-build.c:185,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:185,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:186,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:189,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/common/device-tree/domain-build.c:210,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:210,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:211,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:214,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/common/device-tree/domain-build.c:224,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:224,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/domain-build.c:224,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/domain-build.c:232,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - kinfo
    - mem_banks
    - nr_mem_banks
    - free_regions
    argTypes:
    - struct kernel_info*
    - struct membanks*[]
    - unsigned int
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 235
    functionName: find_unallocated_memory
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 1
    functionsReached:
    - domain_use_host_layout
    - rangeset_destroy
    - rangeset_new
    - rangeset_remove_range
    - bootinfo_get_mem
    - ASSERT
    - rangeset_add_range
    - printk
    - PFN_DOWN
    - rangeset_report_ranges
    linkageType: ''
    returnType: int
    signature: "int find_unallocated_memory(const struct kernel_info *kinfo,\n                                   const
      struct membanks *mem_banks[],\n                                   unsigned int
      nr_mem_banks,\n                                   struct membanks *free_regions,\n
      \                                  int (*cb)(unsigned long s_gfn,\n                                             unsigned
      long e_gfn,\n                                             void *data))"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/common/device-tree/domain-build.c:239,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:243,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/device-tree/domain-build.c:252,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/device-tree/domain-build.c:255,1
    - Dst: membanks_xzalloc
      Src: /src/xen/xen/common/device-tree/domain-build.c:256,1
    - Dst: bootinfo_get_reserved_mem
      Src: /src/xen/xen/common/device-tree/domain-build.c:264,1
    - Dst: membanks_xzalloc
      Src: /src/xen/xen/common/device-tree/domain-build.c:277,1
    - Dst: find_unallocated_memory
      Src: /src/xen/xen/common/device-tree/domain-build.c:281,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/domain-build.c:281,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/domain-build.c:286,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/device-tree/domain-build.c:293,1
    - Dst: MIN
      Src: /src/xen/xen/common/device-tree/domain-build.c:310,1
    - Dst: allocate_bank_memory
      Src: /src/xen/xen/common/device-tree/domain-build.c:311,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/domain-build.c:311,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:320,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/domain-build.c:329,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:333,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 237
    functionDepth: 8
    functionLinenumber: 237
    functionLinenumberEnd: 337
    functionName: allocate_memory
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - membanks_xzalloc
    - panic
    - xfree
    - IS_ENABLED
    - bootinfo_get_reserved_mem
    - gaddr_to_gfn
    - allocate_bank_memory
    - printk
    - find_unallocated_memory
    - MIN
    - kernel_info_get_mem
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void allocate_memory(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:344,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/domain-build.c:346,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/domain-build.c:348,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/domain-build.c:350,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:353,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/domain-build.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - kinfo
    - cb
    argTypes:
    - struct kernel_info*
    - copy_to_guest_phys_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 356
    functionName: dtb_load
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 1
    functionsReached:
    - cb
    - panic
    - fdt_totalsize
    - printk
    - xfree
    linkageType: ''
    returnType: void
    signature: "void dtb_load(struct kernel_info *kinfo,\n                     copy_to_guest_phys_cb
      cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/domain-build.c:376,1
    - Dst: fdt_path_offset
      Src: /src/xen/xen/common/device-tree/domain-build.c:380,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:382,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/domain-build.c:385,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/domain-build.c:385,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/xen/common/device-tree/domain-build.c:386,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:389,1
    - Dst: dt_set_cell
      Src: /src/xen/xen/common/device-tree/domain-build.c:392,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/domain-build.c:392,1
    - Dst: fdt_setprop_inplace
      Src: /src/xen/xen/common/device-tree/domain-build.c:393,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:396,1
    - Dst: ioremap_wc
      Src: /src/xen/xen/common/device-tree/domain-build.c:398,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:400,1
    - Dst: cb
      Src: /src/xen/xen/common/device-tree/domain-build.c:402,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/domain-build.c:404,1
    - Dst: iounmap
      Src: /src/xen/xen/common/device-tree/domain-build.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - kinfo
    - cb
    argTypes:
    - struct kernel_info*
    - copy_to_guest_phys_cb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 358
    functionDepth: 7
    functionLinenumber: 358
    functionLinenumberEnd: 407
    functionName: initrd_load
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 1
    functionsReached:
    - cb
    - iounmap
    - ARRAY_SIZE
    - panic
    - dt_set_cell
    - ioremap_wc
    - printk
    - fdt_setprop_inplace
    - fdt_path_offset
    linkageType: ''
    returnType: void
    signature: "void initrd_load(struct kernel_info *kinfo,\n                        copy_to_guest_phys_cb
      cb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/domain-build.c:421,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/device-tree/domain-build.c:422,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/domain-build.c:429,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/domain-build.c:429,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/domain-build.c:441,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/domain-build.c:445,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/domain-build.c:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 453
    functionName: make_chosen_node
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 2
    functionsReached:
    - dt_dprintk
    - strlen
    - fdt_property
    - fdt_end_node
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: int make_chosen_node(const struct kernel_info *kinfo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/domain-build.c:476,1
    - Dst: domain_fdt_begin_node
      Src: /src/xen/xen/common/device-tree/domain-build.c:478,1
    - Dst: fdt_property_string
      Src: /src/xen/xen/common/device-tree/domain-build.c:482,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/domain-build.c:497,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/device-tree/domain-build.c:497,1
    - Dst: dt_child_set_range
      Src: /src/xen/xen/common/device-tree/domain-build.c:498,1
    - Dst: kernel_info_get_mem_const
      Src: /src/xen/xen/common/device-tree/domain-build.c:505,1
    - Dst: shm_mem_node_fill_reg_range
      Src: /src/xen/xen/common/device-tree/domain-build.c:506,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/domain-build.c:511,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/device-tree/domain-build.c:512,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/domain-build.c:514,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/domain-build.c:518,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/domain-build.c:520,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/domain-build.c:524,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - kinfo
    - addrcells
    - sizecells
    - mem
    argTypes:
    - struct kernel_info*
    - int
    - int
    - struct membanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 527
    functionName: make_memory_node
    functionSourceFile: /src/xen/xen/common/device-tree/domain-build.c
    functionUses: 1
    functionsReached:
    - kernel_info_get_mem_const
    - dt_read_number
    - domain_fdt_begin_node
    - ARRAY_SIZE
    - dt_dprintk
    - fdt_property_string
    - BUG_ON
    - dt_child_set_range
    - fdt_property
    - shm_mem_node_fill_reg_range
    - fdt_end_node
    linkageType: ''
    returnType: int
    signature: "int make_memory_node(const struct kernel_info *kinfo, int addrcells,\n
      \                           int sizecells, const struct membanks *mem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/kernel.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: output_length
    functionSourceFile: /src/xen/xen/common/device-tree/kernel.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t output_length(char *image, unsigned long image_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_paddr
      Src: /src/xen/xen/common/device-tree/kernel.c:55,1
    - Dst: gzip_check
      Src: /src/xen/xen/common/device-tree/kernel.c:58,1
    - Dst: ioremap_cache
      Src: /src/xen/xen/common/device-tree/kernel.c:61,1
    - Dst: output_length
      Src: /src/xen/xen/common/device-tree/kernel.c:65,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/common/device-tree/kernel.c:66,1
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/common/device-tree/kernel.c:67,1
    - Dst: iounmap
      Src: /src/xen/xen/common/device-tree/kernel.c:70,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/device-tree/kernel.c:73,1
    - Dst: vmap_contig
      Src: /src/xen/xen/common/device-tree/kernel.c:74,1
    - Dst: perform_gunzip
      Src: /src/xen/xen/common/device-tree/kernel.c:76,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/common/device-tree/kernel.c:77,1
    - Dst: iounmap
      Src: /src/xen/xen/common/device-tree/kernel.c:78,1
    - Dst: vunmap
      Src: /src/xen/xen/common/device-tree/kernel.c:79,1
    - Dst: free_domheap_pages
      Src: /src/xen/xen/common/device-tree/kernel.c:83,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/common/device-tree/kernel.c:87,1
    - Dst: PFN_UP
      Src: /src/xen/xen/common/device-tree/kernel.c:94,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/device-tree/kernel.c:96,1
    - Dst: fw_unreserved_regions
      Src: /src/xen/xen/common/device-tree/kernel.c:117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - mod
    - offset
    argTypes:
    - struct boot_module*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 120
    functionName: kernel_decompress
    functionSourceFile: /src/xen/xen/common/device-tree/kernel.c
    functionUses: 1
    functionsReached:
    - get_order_from_bytes
    - iounmap
    - alloc_domheap_pages
    - page_to_mfn
    - ioremap_cache
    - clean_dcache_va_range
    - vmap_contig
    - PFN_UP
    - fw_unreserved_regions
    - copy_from_paddr
    - free_domheap_pages
    - vunmap
    - output_length
    - perform_gunzip
    - free_domheap_page
    - gzip_check
    - page_to_maddr
    linkageType: ''
    returnType: int
    signature: int kernel_decompress(struct boot_module *mod, uint32_t offset)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/kernel.c:143,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/device-tree/kernel.c:143,1
    - Dst: boot_module_find_by_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:145,1
    - Dst: boot_module_find_by_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:148,1
    - Dst: boot_cmdline_find_by_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:150,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:160,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:165,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:166,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:167,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:171,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:176,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:177,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:178,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:181,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:186,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:189,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:190,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/kernel.c:196,1
    - Dst: boot_cmdline_find_by_name
      Src: /src/xen/xen/common/device-tree/kernel.c:197,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/kernel.c:203,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/kernel.c:207,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/kernel.c:210,1
    - Dst: kernel_uimage_probe
      Src: /src/xen/xen/common/device-tree/kernel.c:224,1
    - Dst: kernel_decompress
      Src: /src/xen/xen/common/device-tree/kernel.c:234,1
    - Dst: kernel_zimage_probe
      Src: /src/xen/xen/common/device-tree/kernel.c:238,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - info
    - domain
    argTypes:
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 122
    functionDepth: 7
    functionLinenumber: 122
    functionLinenumberEnd: 241
    functionName: kernel_probe
    functionSourceFile: /src/xen/xen/common/device-tree/kernel.c
    functionUses: 1
    functionsReached:
    - boot_module_find_by_addr_and_kind
    - kernel_decompress
    - kernel_zimage_probe
    - kernel_uimage_probe
    - boot_module_find_by_kind
    - dt_get_property
    - dt_get_range
    - ASSERT
    - boot_cmdline_find_by_name
    - printk
    - boot_cmdline_find_by_kind
    - dt_node_name
    - is_hardware_domain
    - dt_device_is_compatible
    linkageType: ''
    returnType: int
    signature: "int kernel_probe(struct kernel_info *info,\n                        const
      struct dt_device_node *domain)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:160,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:165,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:166,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:167,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:171,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:176,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:177,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:178,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/kernel.c:181,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/kernel.c:186,1
    - Dst: dt_get_range
      Src: /src/xen/xen/common/device-tree/kernel.c:189,1
    - Dst: boot_module_find_by_addr_and_kind
      Src: /src/xen/xen/common/device-tree/kernel.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 195
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/kernel.c
    functionUses: 0
    functionsReached:
    - dt_device_is_compatible
    - boot_module_find_by_addr_and_kind
    - dt_get_property
    - dt_get_range
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(domain, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/kernel.c:245,1
    - Dst: struct kernel_info*::load
      Src: /src/xen/xen/common/device-tree/kernel.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: kernel_load
    functionSourceFile: /src/xen/xen/common/device-tree/kernel.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - struct kernel_info*::load
    linkageType: ''
    returnType: void
    signature: void kernel_load(struct kernel_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - device_node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 37
    functionName: find_last_descendants_node
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 1
    functionsReached:
    - find_last_descendants_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: 'struct dt_device_node *

      find_last_descendants_node(const struct dt_device_node *device_node)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:48,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dt
    - node
    argTypes:
    - struct dt_device_node*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: dt_find_next_node
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - find_last_descendants_node
    - dt_for_each_device_node
    linkageType: ''
    returnType: struct dt_device_node
    signature: 'struct dt_device_node *

      dt_find_next_node(struct dt_device_node *dt, const struct dt_device_node *node)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:69,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:77,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:82,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:97,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:108,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:114,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - device_node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 133
    functionName: dt_overlay_remove_node
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - dt_node_cmp
    - dt_dprintk
    - find_last_descendants_node
    linkageType: ''
    returnType: int
    signature: int dt_overlay_remove_node(struct dt_device_node *device_node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:141,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:145,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:172,1
    - Dst: find_last_descendants_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - device_node
    - parent_node_path
    argTypes:
    - struct dt_device_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 205
    functionName: dt_overlay_add_node
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - find_last_descendants_node
    - dt_dprintk
    - dt_find_node_by_path
    linkageType: ''
    returnType: int
    signature: "int dt_overlay_add_node(struct dt_device_node *device_node,\n                               const
      char *parent_node_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:210,1
    - Dst: fdt_check_header
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:211,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - overlay_fdt
    - overlay_fdt_size
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: check_overlay_fdt
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 2
    functionsReached:
    - fdt_check_header
    - printk
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int check_overlay_fdt(const void *overlay_fdt, uint32_t overlay_fdt_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: irq_deny_access
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:231,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - s
    - e
    - dom
    - c
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    functionName: irq_remove_cb
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - irq_deny_access
    - printk
    linkageType: ''
    returnType: int
    signature: "int irq_remove_cb(unsigned long s, unsigned long e, void *dom,\n                         unsigned
      long *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iomem_deny_access
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:253,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - s
    - e
    - dom
    - c
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 263
    functionName: iomem_remove_cb
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - iomem_deny_access
    - printk
    linkageType: ''
    returnType: int
    signature: "int iomem_remove_cb(unsigned long s, unsigned long e, void *dom,\n
      \                          unsigned long *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fdt_for_each_subnode
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:271,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - overlay_fdt
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: overlay_node_count
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - fdt_subnode_offset
    - fdt_for_each_subnode
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int overlay_node_count(const void *overlay_fdt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_subnode(subnode, overlay_fdt, overlay)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fdt_for_each_subnode
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:299,1
    - Dst: fdt_subnode_offset
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:306,1
    - Dst: fdt_overlay_target_offset
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:310,1
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:322,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:326,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:340,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:345,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - fdto
    - nodes_full_path
    argTypes:
    - void*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 294
    functionDepth: 9
    functionLinenumber: 294
    functionLinenumberEnd: 361
    functionName: overlay_get_nodes_info
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - fdt_subnode_offset
    - fdt_for_each_subnode
    - xmalloc_bytes
    - fdt_overlay_target_offset
    - strlen
    - fdt_get_name
    - memcpy
    linkageType: ''
    returnType: int
    signature: int overlay_get_nodes_info(const void *fdto, char **nodes_full_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:322,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:326,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:340,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:345,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 357
    functionName: fdt_for_each_subnode
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 3
    functionsReached:
    - xmalloc_bytes
    - memcpy
    - strlen
    - fdt_get_name
    linkageType: ''
    returnType: void
    signature: void fdt_for_each_subnode(subnode, fdto, overlay)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:371,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:371,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:380,1
    - Dst: memcmp
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:382,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - overlay_fdt
    - overlay_fdt_size
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 397
    functionName: find_track_entry_from_tracker
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - memcmp
    - spin_is_locked
    - ASSERT
    - list_for_each_entry_safe
    - printk
    linkageType: ''
    returnType: struct overlay_track
    signature: "struct overlay_track *\nfind_track_entry_from_tracker(const void *overlay_fdt,\n
      \                             uint32_t overlay_fdt_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_used_by
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:406,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:408,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:414,1
    - Dst: dt_get_property
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:420,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:422,1
    - Dst: iommu_remove_dt_device
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:424,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - device_node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 431
    functionName: remove_node_resources
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - dt_dprintk
    - dt_device_used_by
    - dt_get_property
    - printk
    - dt_device_is_protected
    - iommu_remove_dt_device
    linkageType: ''
    returnType: int
    signature: int remove_node_resources(struct dt_device_node *device_node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remove_descendant_nodes_resources
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:445,1
    - Dst: remove_node_resources
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - device_node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 456
    functionName: remove_descendant_nodes_resources
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 1
    functionsReached:
    - remove_node_resources
    - remove_descendant_nodes_resources
    linkageType: ''
    returnType: int
    signature: int remove_descendant_nodes_resources(const struct dt_device_node *device_node)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:472,1
    - Dst: remove_descendant_nodes_resources
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:474,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:477,1
    - Dst: remove_node_resources
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:481,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:484,1
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:488,1
    - Dst: dt_overlay_remove_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:490,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:493,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:497,1
    - Dst: rangeset_consume_ranges
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:503,1
    - Dst: rangeset_consume_ranges
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:511,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - struct overlay_track*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 517
    functionName: remove_nodes
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - write_unlock
    - rangeset_consume_ranges
    - dt_dprintk
    - remove_descendant_nodes_resources
    - dt_overlay_remove_node
    - remove_node_resources
    - write_lock
    linkageType: ''
    returnType: int
    signature: int remove_nodes(const struct overlay_track *tracker)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_overlay_fdt
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:530,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:534,1
    - Dst: find_track_entry_from_tracker
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:536,1
    - Dst: remove_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:544,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:547,1
    - Dst: list_del
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:551,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:553,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:554,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:555,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:557,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:559,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:560,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:562,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - overlay_fdt
    - overlay_fdt_size
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 524
    functionDepth: 6
    functionLinenumber: 524
    functionLinenumberEnd: 567
    functionName: handle_remove_overlay_nodes
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - remove_nodes
    - rangeset_destroy
    - spin_lock
    - list_del
    - printk
    - check_overlay_fdt
    - find_track_entry_from_tracker
    - xfree
    linkageType: ''
    returnType: long
    signature: "long handle_remove_overlay_nodes(const void *overlay_fdt,\n                                        uint32_t
      overlay_fdt_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:578,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - num_nodes
    - nodes_full_path
    argTypes:
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: free_nodes_full_path
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_nodes_full_path(unsigned int num_nodes, char **nodes_full_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_dprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:595,1
    - Dst: dt_find_node_by_path_from
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:598,1
    - Dst: dt_for_each_device_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:611,1
    - Dst: dt_find_next_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:615,1
    - Dst: write_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:617,1
    - Dst: dt_overlay_add_node
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:620,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:623,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:631,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:635,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - tr
    - nodes_full_path
    argTypes:
    - struct overlay_track*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 646
    functionName: add_nodes
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - dt_find_node_by_path_from
    - dt_find_next_node
    - write_unlock
    - dt_dprintk
    - dt_find_node_by_path
    - dt_overlay_add_node
    - ASSERT_UNREACHABLE
    - write_lock
    - dt_for_each_device_node
    linkageType: ''
    returnType: long
    signature: long add_nodes(struct overlay_track *tr, char **nodes_full_path)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:661,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:665,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:666,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:668,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:671,1
    - Dst: overlay_node_count
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:675,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:678,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:679,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:683,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:686,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:687,1
    - Dst: check_overlay_fdt
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:691,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:694,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:695,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:696,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:704,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:707,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:708,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:709,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:713,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:715,1
    - Dst: memcpy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:717,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:718,1
    - Dst: fdt_open_into
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:721,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:724,1
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:729,1
    - Dst: overlay_get_nodes_info
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:741,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:744,1
    - Dst: fdt_overlay_apply
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:749,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:752,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:762,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:765,1
    - Dst: unflatten_device_tree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:776,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:779,1
    - Dst: add_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:783,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:786,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:790,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:791,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:793,1
    - Dst: free_nodes_full_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:795,1
    - Dst: remove_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:805,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:818,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:819,1
    - Dst: free_nodes_full_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:821,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:827,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:830,1
    - Dst: free_nodes_full_path
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:832,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:834,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:835,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:836,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:838,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 110
    argCount: 2
    argNames:
    - overlay_fdt
    - overlay_fdt_size
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 651
    functionDepth: 11
    functionLinenumber: 651
    functionLinenumberEnd: 841
    functionName: handle_add_overlay_nodes
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - remove_nodes
    - fdt_totalsize
    - spin_lock
    - overlay_get_nodes_info
    - free_nodes_full_path
    - fdt_overlay_apply
    - xfree
    - xzalloc
    - xzalloc_bytes
    - add_nodes
    - overlay_node_count
    - fdt_open_into
    - printk
    - spin_unlock
    - unflatten_device_tree
    - check_overlay_fdt
    - INIT_LIST_HEAD
    - dt_find_node_by_path
    - memcpy
    - list_add_tail
    linkageType: ''
    returnType: long
    signature: "long handle_add_overlay_nodes(void *overlay_fdt,\n                                     uint32_t
      overlay_fdt_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: check_overlay_fdt
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:851,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:855,1
    - Dst: find_track_entry_from_tracker
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:857,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:864,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:868,1
    - Dst: rangeset_new
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:872,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:877,1
    - Dst: write_lock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:892,1
    - Dst: handle_device
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:893,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:895,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:898,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:903,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:908,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:912,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:913,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - d
    - overlay_fdt
    - overlay_fdt_size
    argTypes:
    - struct domain*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 843
    functionDepth: 7
    functionLinenumber: 843
    functionLinenumberEnd: 917
    functionName: handle_attach_overlay_nodes
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - write_unlock
    - rangeset_destroy
    - rangeset_new
    - spin_lock
    - handle_device
    - printk
    - check_overlay_fdt
    - find_track_entry_from_tracker
    - write_lock
    linkageType: ''
    returnType: long
    signature: "long handle_attach_overlay_nodes(struct domain *d,\n                                        const
      void *overlay_fdt,\n                                        uint32_t overlay_fdt_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:935,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:940,1
    - Dst: gprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:943,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:944,1
    - Dst: handle_remove_overlay_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:950,1
    - Dst: handle_add_overlay_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:952,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:954,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_dt_overlay*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 919
    functionDepth: 12
    functionLinenumber: 919
    functionLinenumberEnd: 957
    functionName: dt_overlay_sysctl
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 1
    functionsReached:
    - handle_remove_overlay_nodes
    - copy_from_guest
    - xmalloc_bytes
    - gprintk
    - xfree
    - handle_add_overlay_nodes
    linkageType: ''
    returnType: long
    signature: long dt_overlay_sysctl(struct xen_sysctl_dt_overlay *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:975,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:978,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:983,1
    - Dst: gprintk
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:986,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:987,1
    - Dst: handle_attach_overlay_nodes
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:993,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dt-overlay.c:997,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - struct xen_domctl_dt_overlay*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 959
    functionDepth: 8
    functionLinenumber: 959
    functionLinenumberEnd: 1000
    functionName: dt_overlay_domctl
    functionSourceFile: /src/xen/xen/common/device-tree/dt-overlay.c
    functionUses: 1
    functionsReached:
    - copy_from_guest
    - handle_attach_overlay_nodes
    - xmalloc_bytes
    - gprintk
    - is_domain_direct_mapped
    - xfree
    linkageType: ''
    returnType: long
    signature: long dt_overlay_domctl(struct domain *d, struct xen_domctl_dt_overlay
      *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:42,1
    - Dst: set_global_virq_handler
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: set_xs_domain
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached:
    - panic
    - set_global_virq_handler
    linkageType: ''
    returnType: void
    signature: void set_xs_domain(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: is_dom0less_mode
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_dom0less_mode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_alloc_unbound
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:87,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 80
    functionDepth: 6
    functionLinenumber: 80
    functionLinenumberEnd: 97
    functionName: alloc_xenstore_evtchn
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - evtchn_alloc_unbound
    - printk
    linkageType: ''
    returnType: int
    signature: int alloc_xenstore_evtchn(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_xenstore_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:114,1
    - Dst: alloc_xenstore_evtchn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:117,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:119,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:121,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:123,1
    - Dst: gnttab_seed_entry
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 99
    functionDepth: 7
    functionLinenumber: 99
    functionLinenumberEnd: 127
    functionName: initialize_domU_xenstore
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - panic
    - alloc_xenstore_evtchn
    - IS_ENABLED
    - ASSERT
    - gnttab_seed_entry
    - is_xenstore_domain
    linkageType: ''
    returnType: void
    signature: void initialize_domU_xenstore(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_xenstore_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:114,1
    - Dst: alloc_xenstore_evtchn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:117,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:119,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:121,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:123,1
    - Dst: gnttab_seed_entry
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 7
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 10
    functionsReached:
    - panic
    - alloc_xenstore_evtchn
    - IS_ENABLED
    - ASSERT
    - gnttab_seed_entry
    - is_xenstore_domain
    linkageType: ''
    returnType: void
    signature: void for_each_domain( d )
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_new
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:149,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:157,1
    - Dst: device_tree_get_reg
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:162,1
    - Dst: dt_next_cell
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:164,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:168,1
    - Dst: iomem_permit_access
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:173,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:173,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:174,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:174,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:177,1
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:180,1
    - Dst: map_regions_p2mt
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:184,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:185,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:186,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:187,1
    - Dst: arch_dt_passthrough_p2m_type
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:188,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:191,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:197,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:197,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:198,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:215,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:218,1
    - Dst: map_device_irqs_to_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:223,1
    - Dst: iommu_add_dt_device
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:227,1
    - Dst: arch_handle_passthrough_prop
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:231,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:236,1
    - Dst: iommu_assign_dt_device
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:239,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 6
    argNames:
    - kinfo
    - xen_reg
    - xen_path
    - xen_force
    - address_cells
    - size_cells
    argTypes:
    - struct kernel_info*
    - struct fdt_property*
    - struct fdt_property*
    - bool
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 134
    functionDepth: 6
    functionLinenumber: 134
    functionLinenumberEnd: 240
    functionName: handle_passthrough_prop
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached:
    - paddr_to_pfn
    - PFN_DOWN
    - device_tree_get_reg
    - map_regions_p2mt
    - gaddr_to_gfn
    - printk
    - iommu_add_dt_device
    - fdt32_to_cpu
    - arch_dt_passthrough_p2m_type
    - rangeset_add_range
    - PAGE_ALIGN
    - dt_device_is_protected
    - iomem_permit_access
    - dt_next_cell
    - rangeset_new
    - maddr_to_mfn
    - arch_handle_passthrough_prop
    - map_device_irqs_to_domain
    - iommu_assign_dt_device
    - dt_find_node_by_path
    linkageType: ''
    returnType: int
    signature: "int handle_passthrough_prop(struct kernel_info *kinfo,\n                                          const
      struct fdt_property *xen_reg,\n                                          const
      struct fdt_property *xen_path,\n                                          bool
      xen_force,\n                                          uint32_t address_cells,\n
      \                                         uint32_t size_cells)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fdt_first_property_offset
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:253,1
    - Dst: fdt_next_property_offset
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:255,1
    - Dst: fdt_get_property_by_offset
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:257,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:261,1
    - Dst: fdt_string
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:262,1
    - Dst: dt_prop_cmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:266,1
    - Dst: dt_prop_cmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:271,1
    - Dst: dt_prop_cmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:276,1
    - Dst: fdt_property
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:290,1
    - Dst: fdt32_to_cpu
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:290,1
    - Dst: handle_passthrough_prop
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:302,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:306,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:312,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 6
    argNames:
    - kinfo
    - pfdt
    - nodeoff
    - address_cells
    - size_cells
    - scan_passthrough_prop
    argTypes:
    - struct kernel_info*
    - void*
    - int
    - uint32_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 319
    functionName: handle_prop_pfdt
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - fdt32_to_cpu
    - fdt_first_property_offset
    - fdt_string
    - fdt_get_property_by_offset
    - fdt_next_property_offset
    - printk
    - fdt_property
    - dt_prop_cmp
    - handle_passthrough_prop
    linkageType: ''
    returnType: int
    signature: "int handle_prop_pfdt(struct kernel_info *kinfo,\n                                   const
      void *pfdt, int nodeoff,\n                                   uint32_t address_cells,
      uint32_t size_cells,\n                                   bool scan_passthrough_prop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:330,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:330,1
    - Dst: handle_prop_pfdt
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:334,1
    - Dst: device_tree_get_u32
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:339,1
    - Dst: device_tree_get_u32
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:341,1
    - Dst: fdt_first_subnode
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:344,1
    - Dst: scan_pfdt_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:347,1
    - Dst: fdt_next_subnode
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:352,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - kinfo
    - pfdt
    - nodeoff
    - address_cells
    - size_cells
    - scan_passthrough_prop
    argTypes:
    - struct kernel_info*
    - void*
    - int
    - uint32_t
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 321
    functionDepth: 8
    functionLinenumber: 321
    functionLinenumberEnd: 356
    functionName: scan_pfdt_node
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached:
    - device_tree_get_u32
    - handle_prop_pfdt
    - scan_pfdt_node
    - fdt_get_name
    - fdt_next_subnode
    - fdt_end_node
    - fdt_first_subnode
    - fdt_begin_node
    linkageType: ''
    returnType: int
    signature: "int scan_pfdt_node(struct kernel_info *kinfo, const void *pfdt,\n
      \                                int nodeoff,\n                                 uint32_t
      address_cells, uint32_t size_cells,\n                                 bool scan_passthrough_prop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fdt_check_header
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:362,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:365,1
    - Dst: fdt_totalsize
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:369,1
    - Dst: dprintk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pfdt
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 376
    functionName: check_partial_fdt
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached:
    - fdt_check_header
    - dprintk
    - fdt_totalsize
    linkageType: ''
    returnType: int
    signature: int check_partial_fdt(void *pfdt, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_cache
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:384,1
    - Dst: check_partial_fdt
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:388,1
    - Dst: fdt_first_subnode
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:392,1
    - Dst: fdt_next_subnode
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:394,1
    - Dst: fdt_get_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:396,1
    - Dst: init_intc_phandle
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:409,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:412,1
    - Dst: scan_pfdt_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:414,1
    - Dst: dt_node_cmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:422,1
    - Dst: scan_pfdt_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:424,1
    - Dst: iounmap
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:435,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 378
    functionDepth: 9
    functionLinenumber: 378
    functionLinenumberEnd: 438
    functionName: domain_handle_dtb_boot_module
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ioremap_cache
    - dt_node_cmp
    - init_intc_phandle
    - scan_pfdt_node
    - fdt_get_name
    - fdt_next_subnode
    - check_partial_fdt
    - fdt_first_subnode
    linkageType: ''
    returnType: int
    signature: "int domain_handle_dtb_boot_module(struct domain *d,\n                                                struct
      kernel_info *kinfo)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:459,1
    - Dst: min
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:476,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:478,1
    - Dst: fdt_create
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:482,1
    - Dst: fdt_finish_reservemap
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:486,1
    - Dst: fdt_begin_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:490,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:494,1
    - Dst: fdt_property_cell
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:498,1
    - Dst: make_chosen_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:502,1
    - Dst: make_cpus_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:506,1
    - Dst: make_memory_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:510,1
    - Dst: kernel_info_get_mem
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:511,1
    - Dst: make_resv_memory_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:515,1
    - Dst: domain_handle_dtb_boot_module
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:526,1
    - Dst: make_intc_domU_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:531,1
    - Dst: make_timer_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:535,1
    - Dst: make_hypervisor_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:541,1
    - Dst: make_arch_nodes
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:546,1
    - Dst: fdt_end_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:550,1
    - Dst: fdt_finish
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:554,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:561,1
    - Dst: xfree
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:562,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 87
    argCount: 2
    argNames:
    - d
    - kinfo
    argTypes:
    - struct domain*
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 454
    functionDepth: 10
    functionLinenumber: 454
    functionLinenumberEnd: 565
    functionName: prepare_dtb_domU
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - BUILD_BUG_ON
    - make_hypervisor_node
    - make_arch_nodes
    - fdt_end_node
    - xfree
    - domain_handle_dtb_boot_module
    - fdt_begin_node
    - make_cpus_node
    - make_resv_memory_node
    - fdt_finish
    - fdt_property_cell
    - make_memory_node
    - printk
    - xmalloc_bytes
    - make_intc_domU_node
    - min
    - fdt_finish_reservemap
    - make_chosen_node
    - make_timer_node
    - fdt_create
    - kernel_info_get_mem
    linkageType: ''
    returnType: int
    signature: int prepare_dtb_domU(struct domain *d, struct kernel_info *kinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:578,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:584,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:584,1
    - Dst: is_64bit_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:585,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:586,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:590,1
    - Dst: mfn_x
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:591,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:594,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:595,1
    - Dst: gaddr_to_gfn
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:598,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:598,1
    - Dst: guest_physmap_add_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:600,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:603,1
    - Dst: gfn_x
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:608,1
    - Dst: map_domain_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:610,1
    - Dst: clear_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:611,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:613,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 616
    functionName: alloc_xenstore_page
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - unmap_domain_page
    - page_to_mfn
    - map_domain_page
    - mfn_to_maddr
    - clear_page
    - alloc_domheap_page
    - mfn_x
    - gaddr_to_gfn
    - gfn_x
    - guest_physmap_add_page
    - printk
    - is_domain_direct_mapped
    - free_domheap_page
    - is_64bit_domain
    - MEMF_bits
    linkageType: ''
    returnType: int
    signature: int alloc_xenstore_page(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenstore_page
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - kinfo
    argTypes:
    - struct kernel_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 618
    functionDepth: 6
    functionLinenumber: 618
    functionLinenumberEnd: 637
    functionName: alloc_xenstore_params
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - alloc_xenstore_page
    linkageType: ''
    returnType: int
    signature: int alloc_xenstore_params(struct kernel_info *kinfo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:652,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:655,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:656,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:656,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:659,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:660,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:663,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:667,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:672,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:677,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:683,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:683,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:686,1
    - Dst: vcpu_set_hard_affinity
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:694,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:696,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:697,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - d
    - node
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 699
    functionName: domain_vcpu_affinity
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - dt_property_read_u32
    - panic
    - vcpu_set_hard_affinity
    - dt_property_read_string
    - cpumask_set_cpu
    - dt_device_is_compatible
    - dt_node_name
    - simple_strtoul
    linkageType: ''
    returnType: void
    signature: "void domain_vcpu_affinity(struct domain *d,\n                                        const
      struct dt_device_node *node)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:652,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:655,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:656,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:656,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:659,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:660,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:663,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:667,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:672,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:677,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:683,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:683,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:686,1
    - Dst: vcpu_set_hard_affinity
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:694,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:696,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:697,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 698
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - dt_property_read_u32
    - panic
    - vcpu_set_hard_affinity
    - dt_property_read_string
    - cpumask_set_cpu
    - dt_device_is_compatible
    - dt_node_name
    - simple_strtoul
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(node, np)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:712,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - maxmem_kb
    - smp_cpus
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: domain_p2m_pages
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - DIV_ROUND_UP
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned long __init
    signature: "unsigned long __init domain_p2m_pages(unsigned long maxmem_kb,\n                                             unsigned
      int smp_cpus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:724,1
    - Dst: domain_p2m_pages
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:728,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:730,1
    - Dst: p2m_set_allocation
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:731,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - d
    - mem
    - node
    argTypes:
    - struct domain*
    - uint64_t
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 735
    functionName: domain_p2m_set_allocation
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - dt_property_read_u32
    - domain_p2m_pages
    - spin_lock
    - p2m_set_allocation
    linkageType: ''
    returnType: int
    signature: "int domain_p2m_set_allocation(struct domain *d, uint64_t mem,\n                                            const
      struct dt_device_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - mem
    - node
    argTypes:
    - struct domain*
    - uint64_t
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: domain_p2m_set_allocation
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int domain_p2m_set_allocation(\n    struct domain *d, uint64_t mem,
      const struct dt_device_node *node)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u64
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:752,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:755,1
    - Dst: domain_p2m_set_allocation
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:760,1
    - Dst: printk
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:764,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:767,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:770,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:775,1
    - Dst: strcmp
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:780,1
    - Dst: vcpu_create
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:783,1
    - Dst: kernel_probe
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:788,1
    - Dst: set_domain_type
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:792,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:794,1
    - Dst: construct_hwdom
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:796,1
    - Dst: dt_find_property
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:802,1
    - Dst: allocate_memory
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:803,1
    - Dst: is_domain_direct_mapped
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:804,1
    - Dst: allocate_static_memory
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:805,1
    - Dst: assign_static_memory_11
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:807,1
    - Dst: process_shm
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:809,1
    - Dst: init_vuart
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:813,1
    - Dst: prepare_dtb_domU
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:817,1
    - Dst: construct_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:821,1
    - Dst: domain_vcpu_affinity
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:826,1
    - Dst: alloc_xenstore_params
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:828,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:830,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - kinfo
    - node
    argTypes:
    - struct kernel_info*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 744
    functionDepth: 11
    functionLinenumber: 744
    functionLinenumberEnd: 833
    functionName: construct_domU
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - construct_hwdom
    - strcmp
    - kernel_probe
    - construct_domain
    - dt_property_read_u64
    - domain_p2m_set_allocation
    - allocate_static_memory
    - prepare_dtb_domU
    - domain_vcpu_affinity
    - assign_static_memory_11
    - printk
    - is_domain_direct_mapped
    - dt_find_property
    - set_domain_type
    - is_hardware_domain
    - vcpu_create
    - init_vuart
    - allocate_memory
    - rangeset_destroy
    - alloc_xenstore_params
    - dt_property_read_string
    - process_shm
    linkageType: ''
    returnType: int
    signature: "int construct_domU(struct kernel_info *kinfo,\n                          const
      struct dt_device_node *node)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:838,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:840,1
    - Dst: parse_dom0less_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:844,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:850,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:850,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:853,1
    - Dst: domid_alloc
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:855,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:857,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:857,1
    - Dst: max
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:859,1
    - Dst: domain_create
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:861,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:862,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:863,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:864,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:864,1
    - Dst: domain_set_llc_colors_from_str
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:868,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:870,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:871,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:875,1
    - Dst: construct_domU
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:877,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:879,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:880,1
    - Dst: set_xs_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:883,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:887,1
    - Dst: initialize_domU_xenstore
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:889,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 835
    functionDepth: 12
    functionLinenumber: 835
    functionLinenumberEnd: 890
    functionName: create_domUs
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 1
    functionsReached:
    - domid_alloc
    - max
    - IS_ERR
    - parse_dom0less_node
    - dt_device_set_used_by
    - dt_node_name
    - panic
    - set_xs_domain
    - PTR_ERR
    - construct_domU
    - BUG_ON
    - initialize_domU_xenstore
    - domain_set_llc_colors_from_str
    - domain_create
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void create_domUs(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_dom0less_node
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:844,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:850,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:850,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:853,1
    - Dst: domid_alloc
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:855,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:857,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:857,1
    - Dst: max
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:859,1
    - Dst: domain_create
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:861,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:862,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:863,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:864,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:864,1
    - Dst: domain_set_llc_colors_from_str
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:868,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:870,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:871,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:875,1
    - Dst: construct_domU
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:877,1
    - Dst: panic
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:879,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:880,1
    - Dst: set_xs_domain
      Src: /src/xen/xen/common/device-tree/dom0less-build.c:883,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 841
    functionDepth: 12
    functionLinenumber: 841
    functionLinenumberEnd: 884
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/device-tree/dom0less-build.c
    functionUses: 0
    functionsReached:
    - domid_alloc
    - max
    - IS_ERR
    - parse_dom0less_node
    - dt_device_set_used_by
    - panic
    - set_xs_domain
    - PTR_ERR
    - construct_domU
    - domain_set_llc_colors_from_str
    - domain_create
    - dt_node_name
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(chosen, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: IDLETASK
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IDLETASK(cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: AUNIT
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AUNIT(unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SCHED_PRIV
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_PRIV(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/common/sched/arinc653.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - xen_domain_handle_t
    - xen_domain_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: dom_handle_cmp
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int dom_handle_cmp(const xen_domain_handle_t h1,\n                          const
      xen_domain_handle_t h2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/arinc653.c:197,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:197,1
    - Dst: dom_handle_cmp
      Src: /src/xen/xen/common/sched/arinc653.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ops
    - handle
    - unit_id
    argTypes:
    - struct scheduler*
    - xen_domain_handle_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 203
    functionName: find_unit
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - SCHED_PRIV
    - dom_handle_cmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct sched_unit
    signature: "struct sched_unit *find_unit(\n    const struct scheduler *ops,\n
      \   xen_domain_handle_t handle,\n    int unit_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:214,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:217,1
    - Dst: find_unit
      Src: /src/xen/xen/common/sched/arinc653.c:218,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:219,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: update_schedule_units
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - SCHED_PRIV
    - find_unit
    linkageType: ''
    returnType: void
    signature: void update_schedule_units(const struct scheduler *ops)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:240,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/arinc653.c:246,1
    - Dst: memcpy
      Src: /src/xen/xen/common/sched/arinc653.c:276,1
    - Dst: update_schedule_units
      Src: /src/xen/xen/common/sched/arinc653.c:284,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/arinc653.c:293,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/arinc653.c:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - ops
    - schedule
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_arinc653_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 300
    functionName: arinc653_sched_set
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - update_schedule_units
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - SCHED_PRIV
    - memcpy
    - NOW
    linkageType: ''
    returnType: int
    signature: "int arinc653_sched_set(\n    const struct scheduler *ops,\n    struct
      xen_sysctl_arinc653_schedule *schedule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:317,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/arinc653.c:321,1
    - Dst: memcpy
      Src: /src/xen/xen/common/sched/arinc653.c:327,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/arinc653.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ops
    - schedule
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_arinc653_schedule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 337
    functionName: arinc653_sched_get
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - SCHED_PRIV
    - spin_lock_irqsave
    - memcpy
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: "int arinc653_sched_get(\n    const struct scheduler *ops,\n    struct
      xen_sysctl_arinc653_schedule *schedule)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/arinc653.c:359,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/arinc653.c:368,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/arinc653.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: a653sched_init
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_lock_init
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int a653sched_init(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/arinc653.c:382,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: a653sched_deinit
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - SCHED_PRIV
    - xfree
    linkageType: ''
    returnType: void
    signature: void a653sched_deinit(struct scheduler *ops)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:398,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/sched/arinc653.c:407,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/arinc653.c:411,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/arinc653.c:441,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/arinc653.c:442,1
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:442,1
    - Dst: update_schedule_units
      Src: /src/xen/xen/common/sched/arinc653.c:443,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/arinc653.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 448
    functionName: a653sched_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - update_schedule_units
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - SCHED_PRIV
    - is_idle_unit
    - list_add
    linkageType: ''
    returnType: void
    signature: "void *cf_check\na653sched_alloc_udata(const struct scheduler *ops,
      struct sched_unit *unit,\n                      void *dd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:458,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/arinc653.c:465,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/arinc653.c:467,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/arinc653.c:468,1
    - Dst: update_schedule_units
      Src: /src/xen/xen/common/sched/arinc653.c:470,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/arinc653.c:472,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/arinc653.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 475
    functionName: a653sched_free_udata
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - update_schedule_units
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - SCHED_PRIV
    - is_idle_unit
    - list_del
    - xfree
    linkageType: ''
    returnType: void
    signature: void a653sched_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:486,1
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:487,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/arinc653.c:493,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:493,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/arinc653.c:494,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 495
    functionName: a653sched_unit_sleep
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - AUNIT
    - cpu_raise_softirq
    - sched_unit_master
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: void a653sched_unit_sleep(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:506,1
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:507,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/arinc653.c:509,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: a653sched_unit_wake
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - AUNIT
    - cpu_raise_softirq
    - sched_unit_master
    linkageType: ''
    returnType: void
    signature: void a653sched_unit_wake(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_PRIV
      Src: /src/xen/xen/common/sched/arinc653.c:527,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/arinc653.c:528,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/arinc653.c:528,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/arinc653.c:531,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/arinc653.c:533,1
    - Dst: IDLETASK
      Src: /src/xen/xen/common/sched/arinc653.c:575,1
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:579,1
    - Dst: AUNIT
      Src: /src/xen/xen/common/sched/arinc653.c:580,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/arinc653.c:581,1
    - Dst: IDLETASK
      Src: /src/xen/xen/common/sched/arinc653.c:582,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/arinc653.c:583,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/arinc653.c:589,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/arinc653.c:594,1
    - Dst: IDLETASK
      Src: /src/xen/xen/common/sched/arinc653.c:598,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/arinc653.c:601,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:602,1
    - Dst: IDLETASK
      Src: /src/xen/xen/common/sched/arinc653.c:603,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/arinc653.c:609,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - ops
    - prev
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 610
    functionName: a653sched_do_schedule
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - sched_get_resource_cpu
    - smp_processor_id
    - spin_lock_irqsave
    - unit_runnable_state
    - spin_unlock_irqrestore
    - SCHED_PRIV
    - BUG_ON
    - ASSERT
    - AUNIT
    - is_idle_unit
    - sched_unit_master
    - IDLETASK
    linkageType: ''
    returnType: void
    signature: "void a653sched_do_schedule(\n    const struct scheduler *ops,\n    struct
      sched_unit *prev,\n    s_time_t now,\n    bool tasklet_work_scheduled)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/arinc653.c:631,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/arinc653.c:633,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/arinc653.c:635,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:635,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/arinc653.c:637,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/arinc653.c:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 640
    functionName: a653sched_pick_resource
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - get_sched_res
    - sched_unit_master
    - cpumask_first
    - cpumask_test_cpu
    linkageType: ''
    returnType: struct sched_resource
    signature: "struct sched_resource *cf_check\na653sched_pick_resource(const struct
      scheduler *ops,\n                        const struct sched_unit *unit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/arinc653.c:654,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/arinc653.c:657,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/arinc653.c:657,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/arinc653.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - new_ops
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 662
    functionName: a653_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - sched_idle_unit
    - is_idle_unit
    - get_sched_res
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *cf_check\na653_switch_sched(struct scheduler *new_ops,
      unsigned int cpu,\n                  void *pdata, void *vdata)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/arinc653.c:683,1
    - Dst: arinc653_sched_set
      Src: /src/xen/xen/common/sched/arinc653.c:689,1
    - Dst: memset
      Src: /src/xen/xen/common/sched/arinc653.c:692,1
    - Dst: arinc653_sched_get
      Src: /src/xen/xen/common/sched/arinc653.c:693,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/sched/arinc653.c:697,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ops
    - sc
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 673
    functionDepth: 4
    functionLinenumber: 673
    functionLinenumberEnd: 703
    functionName: a653sched_adjust_global
    functionSourceFile: /src/xen/xen/common/sched/arinc653.c
    functionUses: 0
    functionsReached:
    - arinc653_sched_set
    - copy_from_guest
    - copy_to_guest
    - memset
    - arinc653_sched_get
    linkageType: ''
    returnType: int
    signature: "int a653sched_adjust_global(const struct scheduler *ops,\n                        struct
      xen_sysctl_scheduler_op *sc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _ops
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: CSCHED_PRIV
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED_PRIV(_ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: CSCHED_PCPU
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED_PCPU(_c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: CSCHED_UNIT
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED_UNIT(unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _dom
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: CSCHED_DOM
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED_DOM(_dom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _cpu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: RUNQ
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RUNQ(_cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: SCHED_UNIT_STATS_RESET
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STATS_RESET(_V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _V
    - ','
    - _X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: SCHED_UNIT_STAT_CRANK
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STAT_CRANK(_V, _X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _V
    - ','
    - _X
    - ','
    - _Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: SCHED_UNIT_STAT_SET
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STAT_SET(_V, _X, _Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: SCHED_UNIT_STATS_RESET
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STATS_RESET(_V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _V
    - ','
    - _X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: SCHED_UNIT_STAT_CRANK
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STAT_CRANK(_V, _X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _V
    - ','
    - _X
    - ','
    - _Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: SCHED_UNIT_STAT_SET
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHED_UNIT_STAT_SET(_V, _X, _Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: __unit_on_runq
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int __unit_on_runq(const struct csched_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: __runq_elem
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct csched_unit
    signature: 'struct csched_unit *

      __runq_elem(struct list_head *elem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:260,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit.c:260,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:260,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:262,1
    - Dst: RUNQ
      Src: /src/xen/xen/common/sched/credit.c:262,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:263,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:263,1
    - Dst: RUNQ
      Src: /src/xen/xen/common/sched/credit.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: is_runq_idle
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - get_sched_res
    - spin_is_locked
    - ASSERT
    - is_idle_unit
    - RUNQ
    - list_empty
    - __runq_elem
    linkageType: ''
    returnType: bool
    signature: bool is_runq_idle(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:269,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit.c:269,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:269,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 272
    functionName: inc_nr_runnable
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - CSCHED_PCPU
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: void inc_nr_runnable(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:277,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit.c:277,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:277,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:278,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:278,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 280
    functionName: dec_nr_runnable
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - CSCHED_PCPU
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: void dec_nr_runnable(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:285,1
    - Dst: RUNQ
      Src: /src/xen/xen/common/sched/credit.c:286,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:289,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:289,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:293,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:301,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:302,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/credit.c:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 307
    functionName: __runq_insert
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - list_add_tail
    - sched_unit_master
    - __unit_on_runq
    - BUG_ON
    - test_bit
    - RUNQ
    - __runq_elem
    linkageType: ''
    returnType: void
    signature: void __runq_insert(struct csched_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 9
    functionsReached:
    - __runq_elem
    linkageType: ''
    returnType: void
    signature: void list_for_each( iter, runq )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __runq_insert
      Src: /src/xen/xen/common/sched/credit.c:312,1
    - Dst: inc_nr_runnable
      Src: /src/xen/xen/common/sched/credit.c:313,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: runq_insert
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 1
    functionsReached:
    - sched_unit_master
    - __runq_insert
    - inc_nr_runnable
    linkageType: ''
    returnType: void
    signature: void runq_insert(struct csched_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:319,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:319,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit.c:320,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/credit.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: __runq_remove
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - list_del_init
    - clear_bit
    - __unit_on_runq
    linkageType: ''
    returnType: void
    signature: void __runq_remove(struct csched_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dec_nr_runnable
      Src: /src/xen/xen/common/sched/credit.c:331,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:331,1
    - Dst: __runq_remove
      Src: /src/xen/xen/common/sched/credit.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: runq_remove
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 1
    functionsReached:
    - sched_unit_master
    - dec_nr_runnable
    - __runq_remove
    linkageType: ''
    returnType: void
    signature: void runq_remove(struct csched_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:342,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:342,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:342,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:342,1
    - Dst: do_div
      Src: /src/xen/xen/common/sched/credit.c:348,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:348,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:350,1
    - Dst: atomic_sub
      Src: /src/xen/xen/common/sched/credit.c:351,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - svc
    - now
    argTypes:
    - struct csched_unit*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: burn_credits
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - atomic_sub
    - sched_unit_master
    - MILLISECS
    - ASSERT
    - CSCHED_UNIT
    - curr_on_cpu
    - do_div
    linkageType: ''
    returnType: void
    signature: void burn_credits(struct csched_unit *svc, s_time_t now)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:362,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/credit.c:362,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:363,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/credit.c:364,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:365,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:365,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:366,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:370,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/sched/credit.c:371,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit.c:373,1
    - Dst: sdom::sdom
      Src: /src/xen/xen/common/sched/credit.c:373,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:374,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:375,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:387,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:387,1
    - Dst: flags::flags
      Src: /src/xen/xen/common/sched/credit.c:387,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:388,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:390,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:390,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:391,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:392,1
    - Dst: pri::pri
      Src: /src/xen/xen/common/sched/credit.c:406,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:409,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:411,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:412,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit.c:425,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit.c:429,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:430,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:431,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:431,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:432,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:433,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:433,1
    - Dst: pri::pri
      Src: /src/xen/xen/common/sched/credit.c:456,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit.c:458,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:460,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:461,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:462,1
    - Dst: sched_set_pause_flags
      Src: /src/xen/xen/common/sched/credit.c:463,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:466,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:467,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:472,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:475,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:476,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:476,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:477,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:478,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:478,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/credit.c:481,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:481,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:485,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:491,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:493,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit.c:496,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit.c:497,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit.c:509,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:510,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/common/sched/credit.c:511,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:514,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 1
    argNames:
    - new
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 515
    functionName: __runq_tickle
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - cpumask_raise_softirq
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - CSCHED_PRIV
    - trace_time
    - unit::unit
    - CSCHED_UNIT
    - cpumask_clear_cpu
    - test_bit
    - cpumask_or
    - cpumask_clear
    - sdom::sdom
    - sched_unit_master
    - ASSERT
    - sched_set_pause_flags
    - curr_on_cpu
    - this_cpu
    - get_sched_res
    - cpumask_empty
    - pri::pri
    - cpumask_cycle
    - unlikely
    - SCHED_UNIT_STAT_CRANK
    - __cpumask_set_cpu
    - flags::flags
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void __runq_tickle(const struct csched_unit *new)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit.c:425,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit.c:429,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:430,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:431,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:431,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:432,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:433,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:433,1
    - Dst: pri::pri
      Src: /src/xen/xen/common/sched/credit.c:456,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit.c:458,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:460,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:461,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:462,1
    - Dst: sched_set_pause_flags
      Src: /src/xen/xen/common/sched/credit.c:463,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:466,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:467,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:472,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:475,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:476,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:476,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:477,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:478,1
    - Dst: this_cpu
      Src: /src/xen/xen/common/sched/credit.c:478,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/credit.c:481,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:481,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:485,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 487
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - SCHED_STAT_CRANK
    - has_soft_affinity
    - cpumask_empty
    - pri::pri
    - cpumask_cycle
    - sched_set_pause_flags
    - cpumask_or
    - this_cpu
    - SCHED_UNIT_STAT_CRANK
    - __cpumask_set_cpu
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( balance_step )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:520,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:529,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:529,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 532
    functionName: csched_free_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - CSCHED_PRIV
    - xfree
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void csched_free_pdata(const struct scheduler *ops, void *pcpu, int
      cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:537,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit.c:539,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:550,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:550,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:552,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:556,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:557,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit.c:560,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/credit.c:561,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:565,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/sched/credit.c:565,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:566,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit.c:567,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/credit.c:569,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/credit.c:571,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 534
    functionDepth: 6
    functionLinenumber: 534
    functionLinenumberEnd: 574
    functionName: csched_deinit_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - CSCHED_PRIV
    - cpumask_empty
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - node_to_cpumask
    - kill_timer
    - ASSERT
    - migrate_timer
    - cpumask_first
    - cpumask_clear_cpu
    - cpumask_and
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void csched_deinit_pdata(const struct scheduler *ops, void *pcpu, int
      cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit.c:582,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/credit.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 587
    functionName: csched_alloc_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ERR_PTR
    linkageType: ''
    returnType: void
    signature: 'void *cf_check

      csched_alloc_pdata(const struct scheduler *ops, int cpu)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:592,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit.c:592,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:594,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:599,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/credit.c:603,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit.c:604,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:604,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:607,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/sched/credit.c:607,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit.c:607,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:608,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit.c:609,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/credit.c:611,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit.c:612,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:612,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:612,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:614,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:619,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:619,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:619,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:620,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - prv
    - spc
    - cpu
    argTypes:
    - struct csched_private*
    - struct csched_pcpu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 589
    functionDepth: 6
    functionLinenumber: 589
    functionLinenumberEnd: 624
    functionName: init_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    - spin_is_locked
    - node_to_cpumask
    - set_timer
    - ASSERT
    - MICROSECS
    - BUG_ON
    - is_idle_unit
    - curr_on_cpu
    - cpumask_set_cpu
    - cpumask_weight
    - INIT_LIST_HEAD
    - cpumask_and
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void init_pdata(struct csched_private *prv, struct csched_pcpu *spc,
      int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:629,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/credit.c:633,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/credit.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ops
    - sr
    argTypes:
    - struct scheduler*
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 6
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: csched_move_timers
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - migrate_timer
    - CSCHED_PRIV
    linkageType: ''
    returnType: void
    signature: void csched_move_timers(const struct scheduler *ops, struct sched_resource
      *sr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:643,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:644,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:647,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:647,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:649,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:656,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/sched/credit.c:656,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit.c:657,1
    - Dst: init_pdata
      Src: /src/xen/xen/common/sched/credit.c:658,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - new_ops
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 662
    functionName: csched_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - CSCHED_PRIV
    - get_sched_res
    - init_pdata
    - ASSERT
    - is_idle_unit
    - sched_idle_unit
    - spin_lock
    - local_irq_is_enabled
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *cf_check\ncsched_switch_sched(struct scheduler *new_ops,
      unsigned int cpu,\n                    void *pdata, void *vdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:668,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:671,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:672,1
    - Dst: CSCHED_DOM
      Src: /src/xen/xen/common/sched/credit.c:672,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:675,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:675,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:676,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:680,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:680,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 684
    functionName: __csched_unit_check
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - CSCHED_DOM
    - BUG_ON
    - is_idle_unit
    - CSCHED_UNIT
    linkageType: ''
    returnType: void
    signature: void __csched_unit_check(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 686
    functionName: CSCHED_UNIT_CHECK
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED_UNIT_CHECK(unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:704,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - prv
    - svc
    argTypes:
    - struct csched_private*
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 710
    functionName: __csched_vcpu_is_cache_hot
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - NOW
    linkageType: ''
    returnType: bool
    signature: "bool __csched_vcpu_is_cache_hot(const struct csched_private *prv,\n
      \                          const struct csched_unit *svc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:717,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:725,1
    - Dst: __csched_vcpu_is_cache_hot
      Src: /src/xen/xen/common/sched/credit.c:727,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - prv
    - unit
    - dest_cpu
    - mask
    argTypes:
    - struct csched_private*
    - struct sched_unit*
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 729
    functionName: __csched_unit_is_migrateable
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - CSCHED_UNIT
    - __csched_vcpu_is_cache_hot
    - cpumask_test_cpu
    linkageType: ''
    returnType: int
    signature: "int __csched_unit_is_migrateable(const struct csched_private *prv,\n
      \                            const struct sched_unit *unit,\n                             int
      dest_cpu, const cpumask_t *mask)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:735,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit.c:737,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit.c:739,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit.c:745,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:746,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit.c:764,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:764,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:768,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:768,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:769,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:770,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:770,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:771,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:771,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:789,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:789,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:790,1
    - Dst: is_runq_idle
      Src: /src/xen/xen/common/sched/credit.c:790,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:791,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:792,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:806,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:806,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:807,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:808,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:810,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:817,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:819,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:819,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:825,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:825,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:827,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:827,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:836,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:836,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:837,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:837,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:840,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:841,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:847,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:848,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:849,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:850,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:850,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:854,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:859,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:866,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - ops
    - unit
    - commit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 869
    functionName: _csched_cpu_pick
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - TRACE_TIME
    - has_soft_affinity
    - __cpumask_clear_cpu
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - cpumask_scratch_cpu
    - CSCHED_PRIV
    - cpumask_andnot
    - is_runq_idle
    - sched_unit_master
    - ASSERT
    - CSCHED_PCPU
    - cpumask_weight
    - cpumask_empty
    - cpumask_cycle
    - per_cpu
    - __cpumask_set_cpu
    linkageType: ''
    returnType: int
    signature: "int _csched_cpu_pick(const struct scheduler *ops, const struct sched_unit
      *unit,\n                 bool commit)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit.c:745,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:746,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit.c:764,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:764,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:768,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:768,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:769,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:770,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:770,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:771,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:771,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:789,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:789,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:790,1
    - Dst: is_runq_idle
      Src: /src/xen/xen/common/sched/credit.c:790,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:791,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:792,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:806,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:806,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:807,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:808,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit.c:810,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:817,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:819,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:819,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:823,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:825,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:825,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:827,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:827,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:834,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:836,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:836,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:837,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:837,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:840,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:841,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:847,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:848,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:849,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:850,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:850,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:854,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:859,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 861
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - is_runq_idle
    - has_soft_affinity
    - cpumask_empty
    - __cpumask_clear_cpu
    - sched_unit_master
    - cpumask_andnot
    - cpumask_cycle
    - ASSERT
    - per_cpu
    - CSCHED_PCPU
    - cpumask_weight
    - __cpumask_set_cpu
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( balance_step )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:874,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/credit.c:883,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:884,1
    - Dst: _csched_cpu_pick
      Src: /src/xen/xen/common/sched/credit.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 871
    functionDepth: 4
    functionLinenumber: 871
    functionLinenumberEnd: 885
    functionName: csched_res_pick
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - _csched_cpu_pick
    - get_sched_res
    - CSCHED_UNIT
    - set_bit
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      csched_res_pick(const struct scheduler *ops, const struct sched_unit *unit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:893,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:895,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:897,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:898,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit.c:901,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:904,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit.c:906,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:910,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - prv
    - svc
    argTypes:
    - struct csched_private*
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 914
    functionName: __csched_unit_acct_start
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_add
    - SCHED_UNIT_STAT_CRANK
    - list_empty
    linkageType: ''
    returnType: void
    signature: void __csched_unit_acct_start(struct csched_private *prv, struct csched_unit
      *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:922,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:922,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:924,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:925,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:927,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit.c:929,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:931,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit.c:933,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - prv
    - svc
    argTypes:
    - struct csched_private*
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 938
    functionName: __csched_unit_acct_stop_locked
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - list_del_init
    - TRACE_TIME
    - BUG_ON
    - SCHED_UNIT_STAT_CRANK
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void __csched_unit_acct_stop_locked(struct csched_private *prv,\n
      \   struct csched_unit *svc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:944,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:945,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:948,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:948,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:949,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:950,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:950,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:960,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit.c:967,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:967,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:973,1
    - Dst: __csched_unit_acct_start
      Src: /src/xen/xen/common/sched/credit.c:975,1
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:981,1
    - Dst: _csched_cpu_pick
      Src: /src/xen/xen/common/sched/credit.c:988,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:990,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:994,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:995,1
    - Dst: sched_set_pause_flags
      Src: /src/xen/xen/common/sched/credit.c:996,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:1002,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:1002,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1002,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/credit.c:1003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - prv
    - cpu
    argTypes:
    - struct csched_private*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 1006
    functionName: csched_unit_acct
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - CSCHED_PRIV
    - cpu_raise_softirq
    - unit_schedule_unlock_irqrestore
    - CSCHED_UNIT
    - NOW
    - __csched_unit_acct_start
    - unit_schedule_lock_irqsave
    - burn_credits
    - sched_unit_master
    - ASSERT
    - sched_set_pause_flags
    - list_empty
    - _csched_cpu_pick
    - get_sched_res
    - is_idle_unit
    - SCHED_UNIT_STAT_CRANK
    linkageType: ''
    returnType: void
    signature: void csched_unit_acct(struct csched_private *prv, unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit.c:1014,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:1018,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:1019,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1022,1
    - Dst: SCHED_UNIT_STATS_RESET
      Src: /src/xen/xen/common/sched/credit.c:1024,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1027
    functionName: csched_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - SCHED_STAT_CRANK
    - SCHED_UNIT_STATS_RESET
    - is_idle_unit
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: "void *cf_check csched_alloc_udata(\n    const struct scheduler *ops,
      struct sched_unit *unit, void *dd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1035,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1035,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit.c:1038,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit.c:1040,1
    - Dst: csched_res_pick
      Src: /src/xen/xen/common/sched/credit.c:1040,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/credit.c:1042,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit.c:1044,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:1046,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit.c:1046,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit.c:1047,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/credit.c:1049,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1029
    functionDepth: 5
    functionLinenumber: 1029
    functionLinenumberEnd: 1052
    functionName: csched_unit_insert
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - csched_res_pick
    - SCHED_STAT_CRANK
    - sched_set_res
    - unit_schedule_unlock_irq
    - __unit_on_runq
    - spin_unlock_irq
    - BUG_ON
    - is_idle_unit
    - unit_schedule_lock_irq
    - unit_runnable
    - runq_insert
    linkageType: ''
    returnType: void
    signature: void csched_unit_insert(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1059,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:1059,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:1061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1062
    functionName: csched_free_udata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void csched_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1067,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1068,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1071,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:1073,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:1073,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/credit.c:1075,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1077,1
    - Dst: sched_unit_unpause
      Src: /src/xen/xen/common/sched/credit.c:1078,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/sched/credit.c:1081,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:1083,1
    - Dst: __csched_unit_acct_stop_locked
      Src: /src/xen/xen/common/sched/credit.c:1084,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/credit.c:1086,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1089
    functionName: csched_unit_remove
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - CSCHED_PRIV
    - test_and_clear_bit
    - __csched_unit_acct_stop_locked
    - __unit_on_runq
    - spin_unlock_irq
    - spin_lock_irq
    - BUG_ON
    - ASSERT
    - CSCHED_UNIT
    - sched_unit_unpause
    - list_empty
    linkageType: ''
    returnType: void
    signature: void csched_unit_remove(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1094,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:1095,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1096,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1098,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1100,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1100,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:1102,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:1109,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:1109,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1109,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/credit.c:1110,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:1112,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1114
    functionName: csched_unit_sleep
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - CSCHED_PRIV
    - cpu_raise_softirq
    - get_sched_res
    - sched_unit_master
    - __unit_on_runq
    - BUG_ON
    - is_idle_unit
    - CSCHED_UNIT
    - curr_on_cpu
    - ASSERT
    - runq_remove
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void csched_unit_sleep(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1119,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1122,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1122,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1124,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:1124,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:1124,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1126,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1129,1
    - Dst: __unit_on_runq
      Src: /src/xen/xen/common/sched/credit.c:1129,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1131,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit.c:1135,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit.c:1135,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1136,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1138,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/credit.c:1162,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:1165,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1167,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1168,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit.c:1173,1
    - Dst: __runq_tickle
      Src: /src/xen/xen/common/sched/credit.c:1174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1116
    functionDepth: 4
    functionLinenumber: 1116
    functionLinenumberEnd: 1175
    functionName: csched_unit_wake
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - test_and_clear_bit
    - likely
    - sched_unit_master
    - __unit_on_runq
    - BUG_ON
    - is_idle_unit
    - CSCHED_UNIT
    - curr_on_cpu
    - unit_runnable
    - unlikely
    - runq_insert
    - test_bit
    - __runq_tickle
    linkageType: ''
    returnType: void
    signature: void csched_unit_wake(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1180,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/credit.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1184
    functionName: csched_unit_yield
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_UNIT
    - set_bit
    linkageType: ''
    returnType: void
    signature: void csched_unit_yield(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_DOM
      Src: /src/xen/xen/common/sched/credit.c:1192,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1193,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:1199,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:1210,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:1226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - ops
    - d
    - op
    argTypes:
    - struct scheduler*
    - struct domain*
    - struct xen_domctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1229
    functionName: csched_dom_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_DOM
    - CSCHED_PRIV
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int csched_dom_cntl(\n    const struct scheduler *ops,\n    struct
      domain *d,\n    struct xen_domctl_scheduler_op *op)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1235,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit.c:1241,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/credit.c:1242,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/credit.c:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ops
    - unit
    - hard
    - soft
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: csched_aff_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - cpumask_weight
    - CSCHED_UNIT
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void csched_aff_cntl(const struct scheduler *ops, struct sched_unit
      *unit,\n                const cpumask_t *hard, const cpumask_t *soft)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - prv
    - timeslice_ms
    argTypes:
    - struct csched_private*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1257
    functionName: __csched_set_tslice
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - MILLISECS
    linkageType: ''
    returnType: void
    signature: void __csched_set_tslice(struct csched_private *prv, unsigned int timeslice_ms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1266,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1277,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:1277,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:1281,1
    - Dst: __csched_set_tslice
      Src: /src/xen/xen/common/sched/credit.c:1282,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:1284,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:1286,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1287,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1288,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:1289,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:1293,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1294,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1295,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - ops
    - sc
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1301
    functionName: csched_sys_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - __csched_set_tslice
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - MICROSECS
    - printk
    - MILLISECS
    linkageType: ''
    returnType: int
    signature: "int csched_sys_cntl(const struct scheduler *ops,\n                        struct
      xen_sysctl_scheduler_op *sc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit.c:1309,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/credit.c:1311,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:1314,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:1315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - dom
    argTypes:
    - struct scheduler*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1304
    functionDepth: 0
    functionLinenumber: 1304
    functionLinenumberEnd: 1320
    functionName: csched_alloc_domdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - INIT_LIST_HEAD
    - ERR_PTR
    linkageType: ''
    returnType: void
    signature: 'void *cf_check

      csched_alloc_domdata(const struct scheduler *ops, struct domain *dom)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1322
    functionDepth: 0
    functionLinenumber: 1322
    functionLinenumberEnd: 1326
    functionName: csched_free_domdata
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void csched_free_domdata(const struct scheduler *ops, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1338,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:1351,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:1360,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/credit.c:1367,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit.c:1368,1
    - Dst: pcpu_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:1376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - prv
    - cpu
    argTypes:
    - struct csched_private*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1335
    functionDepth: 1
    functionLinenumber: 1335
    functionLinenumberEnd: 1377
    functionName: csched_runq_sort
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - list_del
    - CSCHED_PCPU
    - pcpu_schedule_lock_irqsave
    - pcpu_schedule_unlock_irqrestore
    - list_add
    - __runq_elem
    linkageType: ''
    returnType: void
    signature: void csched_runq_sort(struct csched_private *prv, unsigned int cpu)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:1398,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1407,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1410,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:1413,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1414,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1418,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/common/sched/credit.c:1425,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit.c:1427,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1429,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/credit.c:1429,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1430,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1431,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1432,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1493,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/credit.c:1494,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit.c:1495,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/common/sched/credit.c:1506,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit.c:1508,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1509,1
    - Dst: atomic_add
      Src: /src/xen/xen/common/sched/credit.c:1512,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/sched/credit.c:1513,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/sched/credit.c:1526,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1528,1
    - Dst: sched_unit_pause_nosync
      Src: /src/xen/xen/common/sched/credit.c:1529,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1535,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/credit.c:1537,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:1545,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1552,1
    - Dst: sched_unit_unpause
      Src: /src/xen/xen/common/sched/credit.c:1553,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/credit.c:1554,1
    - Dst: __csched_unit_acct_stop_locked
      Src: /src/xen/xen/common/sched/credit.c:1560,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/credit.c:1564,1
    - Dst: SCHED_UNIT_STAT_SET
      Src: /src/xen/xen/common/sched/credit.c:1568,1
    - Dst: SCHED_UNIT_STAT_SET
      Src: /src/xen/xen/common/sched/credit.c:1569,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:1576,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit.c:1582,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:1582,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 92
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1379
    functionDepth: 6
    functionLinenumber: 1379
    functionLinenumberEnd: 1583
    functionName: csched_acct
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - __csched_unit_acct_stop_locked
    - test_and_set_bit
    - spin_unlock_irqrestore
    - list_for_each_safe
    - is_idle_domain
    - SCHED_UNIT_STAT_SET
    - SCHED_STAT_CRANK
    - BUG_ON
    - list_del
    - sched_unit_unpause
    - test_bit
    - NOW
    - sched_unit_pause_nosync
    - clear_bit
    - spin_lock_irqsave
    - atomic_add
    - list_entry
    - set_timer
    - unlikely
    - list_add
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void csched_acct(void* dummy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1588,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1589,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1590,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1597,1
    - Dst: csched_unit_acct
      Src: /src/xen/xen/common/sched/credit.c:1598,1
    - Dst: csched_runq_sort
      Src: /src/xen/xen/common/sched/credit.c:1607,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit.c:1609,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit.c:1609,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _cpu
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1585
    functionDepth: 6
    functionLinenumber: 1585
    functionLinenumberEnd: 1610
    functionName: csched_tick
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - get_sched_res
    - csched_unit_acct
    - set_timer
    - is_idle_unit
    - MICROSECS
    - CSCHED_PCPU
    - csched_runq_sort
    - NOW
    linkageType: ''
    returnType: void
    signature: void csched_tick(void *_cpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1615,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1616,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1617,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit.c:1622,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1628,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1628,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:1628,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit.c:1631,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:1633,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:1646,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1651,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1651,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit.c:1668,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit.c:1671,1
    - Dst: __csched_unit_is_migrateable
      Src: /src/xen/xen/common/sched/credit.c:1672,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1675,1
    - Dst: SCHED_UNIT_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1677,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1678,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit.c:1679,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit.c:1680,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1680,1
    - Dst: inc_nr_runnable
      Src: /src/xen/xen/common/sched/credit.c:1686,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1691,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - peer_cpu
    - cpu
    - pri
    - balance_step
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1612
    functionDepth: 3
    functionLinenumber: 1612
    functionLinenumberEnd: 1693
    functionName: csched_runq_steal
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - has_soft_affinity
    - affinity_balance_cpumask
    - list_for_each
    - SCHED_STAT_CRANK
    - CSCHED_PRIV
    - BUG_ON
    - runq_remove
    - test_bit
    - sched_set_res
    - ASSERT
    - curr_on_cpu
    - CSCHED_PCPU
    - __runq_elem
    - get_sched_res
    - inc_nr_runnable
    - is_idle_unit
    - unlikely
    - SCHED_UNIT_STAT_CRANK
    - __csched_unit_is_migrateable
    linkageType: ''
    returnType: struct csched_unit
    signature: 'struct csched_unit *

      csched_runq_steal(int peer_cpu, int cpu, int pri, int balance_step)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1707,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit.c:1712,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1714,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit.c:1714,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1717,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:1717,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1721,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1723,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1725,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:1747,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:1748,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/sched/credit.c:1748,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:1749,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:1751,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1785,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1787,1
    - Dst: pcpu_schedule_trylock
      Src: /src/xen/xen/common/sched/credit.c:1798,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1799,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1802,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1803,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1807,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:1810,1
    - Dst: csched_runq_steal
      Src: /src/xen/xen/common/sched/credit.c:1811,1
    - Dst: pcpu_schedule_unlock
      Src: /src/xen/xen/common/sched/credit.c:1812,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:1828,1
    - Dst: cycle_node
      Src: /src/xen/xen/common/sched/credit.c:1833,1
    - Dst: __runq_remove
      Src: /src/xen/xen/common/sched/credit.c:1839,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 4
    argNames:
    - prv
    - cpu
    - snext
    - stolen
    argTypes:
    - struct csched_private*
    - int
    - struct csched_unit*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1703
    functionDepth: 4
    functionLinenumber: 1703
    functionLinenumberEnd: 1841
    functionName: csched_load_balance
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - cpu_to_node
    - TRACE_TIME
    - pcpu_schedule_trylock
    - cycle_node
    - get_sched_res
    - __runq_remove
    - __cpumask_clear_cpu
    - node_to_cpumask
    - BUG_ON
    - cpumask_andnot
    - cpumask_cycle
    - CSCHED_PCPU
    - unlikely
    - csched_runq_steal
    - pcpu_schedule_unlock
    - cpumask_and
    - cpumask_test_cpu
    linkageType: ''
    returnType: struct csched_unit
    signature: "struct csched_unit *\ncsched_load_balance(struct csched_private *prv,
      int cpu,\n                    struct csched_unit *snext, bool *stolen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit.c:1747,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit.c:1748,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/sched/credit.c:1748,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:1749,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:1751,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1785,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1787,1
    - Dst: pcpu_schedule_trylock
      Src: /src/xen/xen/common/sched/credit.c:1798,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1799,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1802,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1803,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1807,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:1810,1
    - Dst: csched_runq_steal
      Src: /src/xen/xen/common/sched/credit.c:1811,1
    - Dst: pcpu_schedule_unlock
      Src: /src/xen/xen/common/sched/credit.c:1812,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit.c:1828,1
    - Dst: cycle_node
      Src: /src/xen/xen/common/sched/credit.c:1833,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1734
    functionDepth: 4
    functionLinenumber: 1734
    functionLinenumberEnd: 1835
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - cycle_node
    - __cpumask_clear_cpu
    - cpumask_test_cpu
    - node_to_cpumask
    - cpumask_andnot
    - cpumask_cycle
    - CSCHED_PCPU
    - csched_runq_steal
    - pcpu_schedule_unlock
    - cpumask_and
    - pcpu_schedule_trylock
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bstep )
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/credit.c:1851,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/credit.c:1852,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:1853,1
    - Dst: RUNQ
      Src: /src/xen/xen/common/sched/credit.c:1854,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1855,1
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:1856,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit.c:1861,1
    - Dst: CSCHED_UNIT_CHECK
      Src: /src/xen/xen/common/sched/credit.c:1862,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1864,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1872,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit.c:1875,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1882,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit.c:1885,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit.c:1915,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/credit.c:1918,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1919,1
    - Dst: perfc_incr
      Src: /src/xen/xen/common/sched/credit.c:1924,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1932,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit.c:1934,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit.c:1945,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit.c:1955,1
    - Dst: __runq_insert
      Src: /src/xen/xen/common/sched/credit.c:1956,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit.c:1959,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1959,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit.c:1959,1
    - Dst: dec_nr_runnable
      Src: /src/xen/xen/common/sched/credit.c:1961,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:1965,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit.c:1970,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:1971,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:1971,1
    - Dst: csched_load_balance
      Src: /src/xen/xen/common/sched/credit.c:1987,1
    - Dst: __runq_remove
      Src: /src/xen/xen/common/sched/credit.c:1990,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/credit.c:1992,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:2000,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit.c:2001,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit.c:2003,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit.c:2005,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2008,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2015,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2021,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2021,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/credit.c:2022,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2023,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2023,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit.c:2024,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2024,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2025,1
    - Dst: CSCHED_UNIT_CHECK
      Src: /src/xen/xen/common/sched/credit.c:2027,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 4
    argNames:
    - ops
    - unit
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 1847
    functionDepth: 6
    functionLinenumber: 1847
    functionLinenumberEnd: 2028
    functionName: csched_schedule
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - __runq_remove
    - CSCHED_UNIT_CHECK
    - MICROSECS
    - stop_timer
    - RUNQ
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - CSCHED_PRIV
    - trace_time
    - smp_processor_id
    - BUG_ON
    - CSCHED_UNIT
    - dec_nr_runnable
    - cpumask_clear_cpu
    - test_bit
    - burn_credits
    - unit_runnable
    - CSCHED_PCPU
    - list_empty
    - __runq_insert
    - __runq_elem
    - perfc_incr
    - csched_load_balance
    - sched_get_resource_cpu
    - unit_runnable_state
    - set_timer
    - is_idle_unit
    - sched_idle_unit
    - unlikely
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: "void csched_schedule(\n    const struct scheduler *ops, struct sched_unit
      *unit, s_time_t now,\n    bool tasklet_work_scheduled)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2035,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit.c:2040,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2044,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/sched/credit.c:2044,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2047,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2030
    functionDepth: 1
    functionLinenumber: 2030
    functionLinenumberEnd: 2059
    functionName: csched_dump_unit
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - sched_unit_master
    - atomic_read
    - printk
    linkageType: ''
    returnType: void
    signature: void csched_dump_unit(const struct csched_unit *svc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:2066,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:2080,1
    - Dst: pcpu_schedule_lock
      Src: /src/xen/xen/common/sched/credit.c:2081,1
    - Dst: CSCHED_PCPU
      Src: /src/xen/xen/common/sched/credit.c:2083,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2086,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit.c:2088,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:2088,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit.c:2089,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit.c:2089,1
    - Dst: CSCHED_UNIT
      Src: /src/xen/xen/common/sched/credit.c:2092,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit.c:2092,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit.c:2093,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2095,1
    - Dst: csched_dump_unit
      Src: /src/xen/xen/common/sched/credit.c:2096,1
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:2102,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2105,1
    - Dst: csched_dump_unit
      Src: /src/xen/xen/common/sched/credit.c:2106,1
    - Dst: pcpu_schedule_unlock
      Src: /src/xen/xen/common/sched/credit.c:2110,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:2111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2061
    functionDepth: 2
    functionLinenumber: 2061
    functionLinenumberEnd: 2112
    functionName: csched_dump_pcpu
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - csched_dump_unit
    - CPUMASK_PR
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - pcpu_schedule_lock
    - CSCHED_UNIT
    - curr_on_cpu
    - per_cpu
    - printk
    - CSCHED_PCPU
    - is_idle_unit
    - pcpu_schedule_unlock
    - __runq_elem
    linkageType: ''
    returnType: void
    signature: void csched_dump_pcpu(const struct scheduler *ops, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __runq_elem
      Src: /src/xen/xen/common/sched/credit.c:2102,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2105,1
    - Dst: csched_dump_unit
      Src: /src/xen/xen/common/sched/credit.c:2106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2100
    functionDepth: 2
    functionLinenumber: 2100
    functionLinenumberEnd: 2108
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 10
    functionsReached:
    - printk
    - csched_dump_unit
    - __runq_elem
    linkageType: ''
    returnType: void
    signature: void list_for_each( iter, runq )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:2118,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit.c:2122,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2124,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:2144,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2145,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2148,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2150,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit.c:2150,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2152,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit.c:2154,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit.c:2158,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit.c:2160,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit.c:2165,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit.c:2166,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2168,1
    - Dst: csched_dump_unit
      Src: /src/xen/xen/common/sched/credit.c:2169,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit.c:2171,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit.c:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2114
    functionDepth: 2
    functionLinenumber: 2114
    functionLinenumberEnd: 2176
    functionName: csched_dump
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - csched_dump_unit
    - CPUMASK_PR
    - spin_lock_irqsave
    - list_entry
    - spin_unlock_irqrestore
    - MICROSECS
    - unit_schedule_lock
    - printk
    - MILLISECS
    - unit_schedule_unlock
    - list_for_each
    linkageType: ''
    returnType: void
    signature: void csched_dump(const struct scheduler *ops)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2184,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2192,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:2192,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2193,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2200,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit.c:2208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2214
    functionName: csched_global_init
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - MILLISECS
    - MICROSECS
    - printk
    linkageType: ''
    returnType: int
    signature: int csched_global_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit.c:2221,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/common/sched/credit.c:2225,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:2228,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/credit.c:2232,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/credit.c:2233,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/credit.c:2235,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:2236,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:2237,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/credit.c:2242,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit.c:2243,1
    - Dst: __csched_set_tslice
      Src: /src/xen/xen/common/sched/credit.c:2246,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2248,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/credit.c:2248,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2251,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2253,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit.c:2255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2216
    functionDepth: 2
    functionLinenumber: 2216
    functionLinenumberEnd: 2258
    functionName: csched_init
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - free_cpumask_var
    - __csched_set_tslice
    - xzalloc_array
    - zalloc_cpumask_var
    - INIT_LIST_HEAD
    - MICROSECS
    - MILLISECS
    - spin_lock_init
    - xfree
    linkageType: ''
    returnType: int
    signature: int csched_init(struct scheduler *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CSCHED_PRIV
      Src: /src/xen/xen/common/sched/credit.c:2265,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/credit.c:2269,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/credit.c:2270,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:2271,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2260
    functionDepth: 1
    functionLinenumber: 2260
    functionLinenumberEnd: 2274
    functionName: csched_deinit
    functionSourceFile: /src/xen/xen/common/sched/credit.c
    functionUses: 0
    functionsReached:
    - CSCHED_PRIV
    - xfree
    - free_cpumask_var
    linkageType: ''
    returnType: void
    signature: void csched_deinit(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: rt_priv
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rt_private
    signature: struct rt_private *rt_priv(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: rt_unit
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rt_unit
    signature: struct rt_unit *rt_unit(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: rt_runq
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    linkageType: ''
    returnType: struct list_head
    signature: struct list_head *rt_runq(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: rt_depletedq
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    linkageType: ''
    returnType: struct list_head
    signature: struct list_head *rt_depletedq(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: rt_replq
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    linkageType: ''
    returnType: struct list_head
    signature: struct list_head *rt_replq(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: has_extratime
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_extratime(const struct rt_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: unit_on_q
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int unit_on_q(const struct rt_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/rt.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: q_elem
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 8
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct rt_unit
    signature: 'struct rt_unit *cf_check

      q_elem(struct list_head *elem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/rt.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: replq_elem
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct rt_unit
    signature: 'struct rt_unit *cf_check

      replq_elem(struct list_head *elem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: unit_on_replq
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int unit_on_replq(const struct rt_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - struct rt_unit*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 303
    functionName: compare_unit_priority
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s_time_t
    signature: s_time_t compare_unit_priority(const struct rt_unit *v1, const struct
      rt_unit *v2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:313,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:317,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/rt.c:328,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:328,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/rt.c:330,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:331,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:332,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:338,1
    - Dst: has_extratime
      Src: /src/xen/xen/common/sched/rt.c:345,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:346,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/rt.c:347,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/rt.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - svc
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 349
    functionName: rt_dump_unit
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - unit_on_q
    - CPUMASK_PR
    - sched_unit_master
    - ASSERT
    - unit_runnable
    - printk
    - has_extratime
    - cpumask_and
    linkageType: ''
    returnType: void
    signature: void rt_dump_unit(const struct scheduler *ops, const struct rt_unit
      *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:354,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:358,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:359,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:361,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/rt.c:361,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:362,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:364,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: rt_dump_pcpu
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - rt_dump_unit
    - spin_lock_irqsave
    - rt_unit
    - spin_unlock_irqrestore
    - is_idle_unit
    - curr_on_cpu
    - printk
    linkageType: ''
    returnType: void
    signature: void rt_dump_pcpu(const struct scheduler *ops, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:373,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:378,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:380,1
    - Dst: rt_runq
      Src: /src/xen/xen/common/sched/rt.c:383,1
    - Dst: rt_depletedq
      Src: /src/xen/xen/common/sched/rt.c:384,1
    - Dst: rt_replq
      Src: /src/xen/xen/common/sched/rt.c:385,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:387,1
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:390,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:391,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:394,1
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:397,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:398,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:401,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:404,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:405,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:408,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/rt.c:409,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/rt.c:413,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:414,1
    - Dst: for_each_sched_unit
      Src: /src/xen/xen/common/sched/rt.c:416,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:418,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:419,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 425
    functionName: rt_dump
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - rt_dump_unit
    - spin_lock_irqsave
    - rt_unit
    - list_entry
    - rt_runq
    - rt_replq
    - for_each_sched_unit
    - spin_unlock_irqrestore
    - rt_depletedq
    - printk
    - q_elem
    - list_empty
    - replq_elem
    - list_for_each
    linkageType: ''
    returnType: void
    signature: void rt_dump(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:390,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 12
    functionsReached:
    - q_elem
    - rt_dump_unit
    linkageType: ''
    returnType: void
    signature: void list_for_each ( iter, runq )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:397,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 12
    functionsReached:
    - q_elem
    - rt_dump_unit
    linkageType: ''
    returnType: void
    signature: void list_for_each ( iter, depletedq )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:404,1
    - Dst: rt_dump_unit
      Src: /src/xen/xen/common/sched/rt.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 12
    functionsReached:
    - rt_dump_unit
    - replq_elem
    linkageType: ''
    returnType: void
    signature: void list_for_each ( iter, replq )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:434,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:435,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:458,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/rt.c:472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - now
    - svc
    argTypes:
    - s_time_t
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 476
    functionName: rt_update_deadline
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - trace_time
    - unlikely
    linkageType: ''
    returnType: void
    signature: void rt_update_deadline(s_time_t now, struct rt_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/rt.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - queue
    - elem
    argTypes:
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 500
    functionName: deadline_queue_remove
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - list_del_init
    linkageType: ''
    returnType: bool
    signature: bool deadline_queue_remove(struct list_head *queue, struct list_head
      *elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:513,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/rt.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - (*qelem)(struct list_head *elem)
    - svc
    - elem
    - queue
    argTypes:
    - struct rt_unit*
    - struct rt_unit*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: deadline_queue_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - compare_unit_priority
    - list_add_tail
    linkageType: ''
    returnType: bool
    signature: "bool deadline_queue_insert(struct rt_unit * (*qelem)(struct list_head
      *elem),\n                      struct rt_unit *svc, struct list_head *elem,\n
      \                     struct list_head *queue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 12
    functionsReached:
    - compare_unit_priority
    linkageType: ''
    returnType: void
    signature: void list_for_each ( iter, queue )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: deadline_runq_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deadline_runq_insert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 524
    functionName: deadline_replq_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deadline_replq_insert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:528,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:528,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/rt.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 530
    functionName: q_remove
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 5
    functionsReached:
    - ASSERT
    - list_del_init
    - unit_on_q
    linkageType: ''
    returnType: void
    signature: void q_remove(struct rt_unit *svc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:535,1
    - Dst: rt_replq
      Src: /src/xen/xen/common/sched/rt.c:536,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:538,1
    - Dst: unit_on_replq
      Src: /src/xen/xen/common/sched/rt.c:538,1
    - Dst: deadline_queue_remove
      Src: /src/xen/xen/common/sched/rt.c:540,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:548,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:550,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/rt.c:551,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/rt.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ops
    - svc
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 556
    functionName: replq_remove
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - unit_on_replq
    - rt_replq
    - set_timer
    - ASSERT
    - deadline_queue_remove
    - stop_timer
    - list_empty
    - replq_elem
    linkageType: ''
    returnType: void
    signature: void replq_remove(const struct scheduler *ops, struct rt_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:566,1
    - Dst: rt_runq
      Src: /src/xen/xen/common/sched/rt.c:567,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:569,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/rt.c:569,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:570,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:570,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:571,1
    - Dst: unit_on_replq
      Src: /src/xen/xen/common/sched/rt.c:571,1
    - Dst: has_extratime
      Src: /src/xen/xen/common/sched/rt.c:575,1
    - Dst: deadline_runq_insert
      Src: /src/xen/xen/common/sched/rt.c:576,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/rt.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ops
    - svc
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 579
    functionName: runq_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 5
    functionsReached:
    - rt_priv
    - deadline_runq_insert
    - unit_on_replq
    - unit_on_q
    - spin_is_locked
    - rt_runq
    - ASSERT
    - has_extratime
    - list_add
    linkageType: ''
    returnType: void
    signature: void runq_insert(const struct scheduler *ops, struct rt_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_replq
      Src: /src/xen/xen/common/sched/rt.c:584,1
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:585,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:587,1
    - Dst: unit_on_replq
      Src: /src/xen/xen/common/sched/rt.c:587,1
    - Dst: deadline_replq_insert
      Src: /src/xen/xen/common/sched/rt.c:593,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/rt.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ops
    - svc
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: replq_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 1
    functionsReached:
    - rt_priv
    - unit_on_replq
    - deadline_replq_insert
    - rt_replq
    - set_timer
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void replq_insert(const struct scheduler *ops, struct rt_unit *svc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rt_replq
      Src: /src/xen/xen/common/sched/rt.c:606,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:610,1
    - Dst: unit_on_replq
      Src: /src/xen/xen/common/sched/rt.c:610,1
    - Dst: deadline_queue_remove
      Src: /src/xen/xen/common/sched/rt.c:621,1
    - Dst: deadline_replq_insert
      Src: /src/xen/xen/common/sched/rt.c:623,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:624,1
    - Dst: deadline_replq_insert
      Src: /src/xen/xen/common/sched/rt.c:628,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/rt.c:631,1
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - svc
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 603
    functionDepth: 6
    functionLinenumber: 603
    functionLinenumberEnd: 632
    functionName: replq_reinsert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - unit_on_replq
    - deadline_replq_insert
    - rt_replq
    - set_timer
    - ASSERT
    - deadline_queue_remove
    - replq_elem
    linkageType: ''
    returnType: void
    signature: void replq_reinsert(const struct scheduler *ops, struct rt_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/rt.c:642,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/rt.c:646,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:647,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/rt.c:649,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:649,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:650,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/rt.c:651,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:651,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:652,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/rt.c:652,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/rt.c:652,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/rt.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - unit
    - locked_cpu
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 655
    functionName: rt_res_pick_locked
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - get_sched_res
    - cpumask_empty
    - sched_unit_master
    - cpumask_cycle
    - ASSERT
    - cpumask_and
    - cpumask_test_cpu
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      rt_res_pick_locked(const struct sched_unit *unit, unsigned int locked_cpu)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt_res_pick_locked
      Src: /src/xen/xen/common/sched/rt.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 670
    functionName: rt_res_pick
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_res_pick_locked
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      rt_res_pick(const struct scheduler *ops, const struct sched_unit *unit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/rt.c:679,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:681,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/rt.c:688,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:689,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:690,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:691,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:692,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/rt.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 702
    functionName: rt_init
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 11
    functionsReached:
    - xzalloc
    - INIT_LIST_HEAD
    - printk
    - spin_lock_init
    - xfree
    linkageType: ''
    returnType: int
    signature: int rt_init(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:707,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:709,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/rt.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 714
    functionName: rt_deinit
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - ASSERT
    - xfree
    linkageType: ''
    returnType: void
    signature: void rt_deinit(struct scheduler *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:721,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:724,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:724,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:732,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/rt.c:732,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/rt.c:744,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/rt.c:745,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - new_ops
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 751
    functionName: rt_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - get_sched_res
    - ASSERT
    - is_idle_unit
    - sched_idle_unit
    - dprintk
    - init_timer
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *cf_check\nrt_switch_sched(struct scheduler *new_ops, unsigned
      int cpu,\n                void *pdata, void *vdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/rt.c:755,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/rt.c:756,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/rt.c:765,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/rt.c:766,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/rt.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - prv
    - old_cpu
    argTypes:
    - struct rt_private*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 772
    functionName: move_repl_timer
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - get_sched_res
    - kill_timer
    - cpumask_cycle
    - migrate_timer
    - dprintk
    linkageType: ''
    returnType: void
    signature: void move_repl_timer(struct rt_private *prv, unsigned int old_cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:778,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:780,1
    - Dst: move_repl_timer
      Src: /src/xen/xen/common/sched/rt.c:783,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 774
    functionDepth: 7
    functionLinenumber: 774
    functionLinenumberEnd: 786
    functionName: rt_deinit_pdata
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - move_repl_timer
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void rt_deinit_pdata(const struct scheduler *ops, void *pcpu, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:792,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:795,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/rt.c:800,1
    - Dst: move_repl_timer
      Src: /src/xen/xen/common/sched/rt.c:801,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ops
    - sr
    argTypes:
    - struct scheduler*
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 788
    functionDepth: 7
    functionLinenumber: 788
    functionLinenumberEnd: 804
    functionName: rt_move_timers
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - move_repl_timer
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void rt_move_timers(const struct scheduler *ops, struct sched_resource
      *sr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:811,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/rt.c:813,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/rt.c:815,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:817,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:821,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/rt.c:822,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ops
    - dom
    argTypes:
    - struct scheduler*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 826
    functionName: rt_alloc_domdata
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - xzalloc
    - ERR_PTR
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - INIT_LIST_HEAD
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: 'void *cf_check

      rt_alloc_domdata(const struct scheduler *ops, struct domain *dom)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:832,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:838,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/rt.c:839,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:840,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/rt.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ops
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 844
    functionName: rt_free_domdata
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - list_del_init
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - xfree
    linkageType: ''
    returnType: void
    signature: void rt_free_domdata(const struct scheduler *ops, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/rt.c:852,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:856,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:857,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:863,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:866,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 872
    functionName: rt_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - SCHED_STAT_CRANK
    - __set_bit
    - is_idle_unit
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: 'void * cf_check

      rt_alloc_udata(const struct scheduler *ops, struct sched_unit *unit, void *dd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/rt.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: rt_free_udata
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void rt_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:892,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/rt.c:895,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/rt.c:897,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:897,1
    - Dst: pcpu_schedule_lock_irq
      Src: /src/xen/xen/common/sched/rt.c:900,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/rt.c:901,1
    - Dst: rt_res_pick_locked
      Src: /src/xen/xen/common/sched/rt.c:901,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/rt.c:902,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/rt.c:904,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/rt.c:906,1
    - Dst: rt_update_deadline
      Src: /src/xen/xen/common/sched/rt.c:908,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:910,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/rt.c:910,1
    - Dst: replq_insert
      Src: /src/xen/xen/common/sched/rt.c:912,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/rt.c:915,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/rt.c:917,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:919,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 889
    functionDepth: 7
    functionLinenumber: 889
    functionLinenumberEnd: 920
    functionName: rt_unit_insert
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - replq_insert
    - SCHED_STAT_CRANK
    - pcpu_schedule_lock_irq
    - unit_on_q
    - sched_set_res
    - unit_schedule_unlock_irq
    - smp_processor_id
    - rt_unit
    - BUG_ON
    - is_idle_unit
    - pcpu_schedule_unlock_irq
    - rt_update_deadline
    - unit_schedule_lock_irq
    - unit_runnable
    - rt_res_pick_locked
    - runq_insert
    - NOW
    linkageType: ''
    returnType: void
    signature: void rt_unit_insert(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:928,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:932,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/rt.c:934,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/rt.c:936,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:937,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:938,1
    - Dst: unit_on_replq
      Src: /src/xen/xen/common/sched/rt.c:940,1
    - Dst: replq_remove
      Src: /src/xen/xen/common/sched/rt.c:941,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/rt.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 925
    functionDepth: 7
    functionLinenumber: 925
    functionLinenumberEnd: 944
    functionName: rt_unit_remove
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - unit_on_replq
    - unit_on_q
    - q_remove
    - replq_remove
    - unit_schedule_unlock_irq
    - rt_unit
    - BUG_ON
    - unit_schedule_lock_irq
    linkageType: ''
    returnType: void
    signature: void rt_unit_remove(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:955,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/rt.c:966,1
    - Dst: has_extratime
      Src: /src/xen/xen/common/sched/rt.c:977,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:985,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:989,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/rt.c:1006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ops
    - svc
    - now
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 1008
    functionName: burn_budget
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - trace_time
    - is_idle_unit
    - printk
    - unlikely
    - has_extratime
    linkageType: ''
    returnType: void
    signature: void burn_budget(const struct scheduler *ops, struct rt_unit *svc,
      s_time_t now)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rt_runq
      Src: /src/xen/xen/common/sched/rt.c:1017,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/rt.c:1021,1
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:1026,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/rt.c:1029,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:1030,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:1031,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/rt.c:1032,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:1035,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1041,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/rt.c:1053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ops
    - mask
    - cpu
    argTypes:
    - struct scheduler*
    - cpumask_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1057
    functionName: runq_pick
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - trace_time
    - cpumask_empty
    - rt_runq
    - q_elem
    - ASSERT
    - unlikely
    - cpumask_and
    linkageType: ''
    returnType: struct rt_unit
    signature: 'struct rt_unit *

      runq_pick(const struct scheduler *ops, const cpumask_t *mask, unsigned int cpu)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:1026,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/rt.c:1029,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:1030,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:1031,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/rt.c:1032,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/rt.c:1035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1024
    functionDepth: 2
    functionLinenumber: 1024
    functionLinenumberEnd: 1039
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 12
    functionsReached:
    - cpupool_domain_master_cpumask
    - cpumask_empty
    - q_elem
    - ASSERT
    - cpumask_and
    linkageType: ''
    returnType: void
    signature: void list_for_each ( iter, runq )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/rt.c:1067,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/rt.c:1068,1
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:1069,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1070,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1074,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/rt.c:1082,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1083,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/rt.c:1086,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/rt.c:1090,1
    - Dst: burn_budget
      Src: /src/xen/xen/common/sched/rt.c:1093,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/rt.c:1097,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1098,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1098,1
    - Dst: runq_pick
      Src: /src/xen/xen/common/sched/rt.c:1104,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/rt.c:1104,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1108,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1108,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/rt.c:1111,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:1114,1
    - Dst: replq_remove
      Src: /src/xen/xen/common/sched/rt.c:1115,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1119,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/rt.c:1120,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1122,1
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:1123,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1128,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/rt.c:1129,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:1130,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1134,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:1138,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:1139,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1141,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/rt.c:1143,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/rt.c:1143,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 4
    argNames:
    - ops
    - currunit
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1063
    functionDepth: 7
    functionLinenumber: 1063
    functionLinenumberEnd: 1151
    functionName: rt_schedule
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - TRACE_TIME
    - replq_remove
    - rt_unit
    - compare_unit_priority
    - cpumask_test_cpu
    - __set_bit
    - trace_time
    - smp_processor_id
    - cpumask_clear_cpu
    - q_remove
    - sched_set_res
    - sched_unit_master
    - unit_runnable
    - cpumask_of
    - burn_budget
    - sched_get_resource_cpu
    - get_sched_res
    - runq_pick
    - unit_runnable_state
    - is_idle_unit
    - sched_idle_unit
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void rt_schedule(const struct scheduler *ops, struct sched_unit *currunit,\n
      \           s_time_t now, bool tasklet_work_scheduled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1160,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/rt.c:1162,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1162,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1163,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/rt.c:1165,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1165,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/rt.c:1166,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1166,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:1167,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:1169,1
    - Dst: replq_remove
      Src: /src/xen/xen/common/sched/rt.c:1170,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/rt.c:1173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1157
    functionDepth: 7
    functionLinenumber: 1157
    functionLinenumberEnd: 1174
    functionName: rt_unit_sleep
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - cpu_raise_softirq
    - unit_on_q
    - q_remove
    - replq_remove
    - __clear_bit
    - rt_unit
    - sched_unit_master
    - BUG_ON
    - is_idle_unit
    - curr_on_cpu
    linkageType: ''
    returnType: void
    signature: void rt_unit_sleep(const struct scheduler *ops, struct sched_unit *unit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:1197,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/rt.c:1202,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/rt.c:1202,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1205,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/rt.c:1205,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/rt.c:1208,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/rt.c:1208,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/rt.c:1209,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/rt.c:1209,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/rt.c:1210,1
    - Dst: cpumask_test_or_cycle
      Src: /src/xen/xen/common/sched/rt.c:1217,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1217,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/rt.c:1217,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/rt.c:1220,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1221,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1223,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1227,1
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:1229,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/rt.c:1232,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/rt.c:1233,1
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:1238,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1240,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1241,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1246,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1249,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/rt.c:1257,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/rt.c:1260,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/rt.c:1261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - ops
    - new
    argTypes:
    - struct scheduler*
    - struct rt_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1194
    functionDepth: 4
    functionLinenumber: 1194
    functionLinenumberEnd: 1263
    functionName: runq_tickle
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 1
    functionsReached:
    - rt_priv
    - cpupool_domain_master_cpumask
    - rt_unit
    - compare_unit_priority
    - cpumask_and
    - cpumask_scratch_cpu
    - SCHED_STAT_CRANK
    - cpu_raise_softirq
    - trace_time
    - smp_processor_id
    - unit::unit
    - cpumask_andnot
    - cpumask_clear_cpu
    - sched_unit_master
    - curr_on_cpu
    - is_idle_unit
    - cpumask_test_or_cycle
    - cpumask_cycle
    - unlikely
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: void runq_tickle(const struct scheduler *ops, const struct rt_unit
      *new)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1274,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/rt.c:1278,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1278,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1280,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/rt.c:1280,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1280,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1282,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1287,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:1287,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1289,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/rt.c:1293,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/rt.c:1293,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1294,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/rt.c:1296,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/rt.c:1302,1
    - Dst: rt_update_deadline
      Src: /src/xen/xen/common/sched/rt.c:1306,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/rt.c:1314,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:1316,1
    - Dst: replq_reinsert
      Src: /src/xen/xen/common/sched/rt.c:1325,1
    - Dst: replq_insert
      Src: /src/xen/xen/common/sched/rt.c:1330,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/rt.c:1332,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/rt.c:1334,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1271
    functionDepth: 7
    functionLinenumber: 1271
    functionLinenumberEnd: 1335
    functionName: rt_unit_wake
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - replq_insert
    - __set_bit
    - unit_on_q
    - rt_unit
    - likely
    - sched_unit_master
    - BUG_ON
    - is_idle_unit
    - replq_reinsert
    - curr_on_cpu
    - unit_runnable
    - rt_update_deadline
    - unlikely
    - runq_insert
    - runq_tickle
    - NOW
    linkageType: ''
    returnType: void
    signature: void rt_unit_wake(const struct scheduler *ops, struct sched_unit *unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1344,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/rt.c:1345,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/rt.c:1347,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/rt.c:1349,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/sched/rt.c:1352,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/rt.c:1353,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/rt.c:1353,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/rt.c:1355,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/rt.c:1356,1
    - Dst: replq_remove
      Src: /src/xen/xen/common/sched/rt.c:1359,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/rt.c:1362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1341
    functionDepth: 7
    functionLinenumber: 1341
    functionLinenumberEnd: 1363
    functionName: rt_context_saved
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - __clear_bit
    - replq_remove
    - unit_schedule_unlock_irq
    - rt_unit
    - likely
    - is_idle_unit
    - unit_schedule_lock_irq
    - __test_and_clear_bit
    - unit_runnable
    - runq_insert
    - runq_tickle
    linkageType: ''
    returnType: void
    signature: void rt_context_saved(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:1374,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1387,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1388,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:1396,1
    - Dst: for_each_sched_unit
      Src: /src/xen/xen/common/sched/rt.c:1397,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1399,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1400,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1401,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:1403,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/common/sched/rt.c:1409,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:1424,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1425,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1426,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1427,1
    - Dst: has_extratime
      Src: /src/xen/xen/common/sched/rt.c:1428,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:1432,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/common/sched/rt.c:1434,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1443,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/rt.c:1444,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/rt.c:1452,1
    - Dst: rt_unit
      Src: /src/xen/xen/common/sched/rt.c:1453,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/rt.c:1457,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/rt.c:1459,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/rt.c:1460,1
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/common/sched/rt.c:1463,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 3
    argNames:
    - ops
    - d
    - op
    argTypes:
    - struct scheduler*
    - struct domain*
    - struct xen_domctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1473
    functionName: rt_dom_cntl
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - __set_bit
    - __clear_bit
    - rt_unit
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - copy_to_guest_offset
    - MICROSECS
    - hypercall_preempt_check
    - copy_from_guest_offset
    - has_extratime
    - for_each_sched_unit
    linkageType: ''
    returnType: int
    signature: "int rt_dom_cntl(\n    const struct scheduler *ops,\n    struct domain
      *d,\n    struct xen_domctl_scheduler_op *op)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rt_priv
      Src: /src/xen/xen/common/sched/rt.c:1483,1
    - Dst: rt_replq
      Src: /src/xen/xen/common/sched/rt.c:1484,1
    - Dst: rt_runq
      Src: /src/xen/xen/common/sched/rt.c:1485,1
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/sched/rt.c:1488,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/common/sched/rt.c:1490,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/rt.c:1492,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:1502,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/rt.c:1507,1
    - Dst: rt_update_deadline
      Src: /src/xen/xen/common/sched/rt.c:1508,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/rt.c:1509,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:1511,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:1513,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/rt.c:1514,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/common/sched/rt.c:1525,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:1527,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/rt.c:1529,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/rt.c:1529,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:1530,1
    - Dst: q_elem
      Src: /src/xen/xen/common/sched/rt.c:1532,1
    - Dst: compare_unit_priority
      Src: /src/xen/xen/common/sched/rt.c:1534,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/rt.c:1535,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/sched/rt.c:1537,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:1538,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/rt.c:1539,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/rt.c:1541,1
    - Dst: deadline_replq_insert
      Src: /src/xen/xen/common/sched/rt.c:1542,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/rt.c:1550,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/rt.c:1551,1
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:1551,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/rt.c:1553,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1479
    functionDepth: 6
    functionLinenumber: 1479
    functionLinenumberEnd: 1554
    functionName: repl_timer_handler
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 0
    functionsReached:
    - rt_priv
    - unit_on_q
    - LIST_HEAD
    - spin_lock_irq
    - list_for_each_safe
    - rt_update_deadline
    - runq_insert
    - compare_unit_priority
    - rt_runq
    - rt_replq
    - list_del
    - __test_and_clear_bit
    - NOW
    - q_remove
    - sched_unit_master
    - spin_unlock_irq
    - curr_on_cpu
    - runq_tickle
    - list_empty
    - deadline_replq_insert
    - set_timer
    - q_elem
    - list_add
    - replq_elem
    linkageType: ''
    returnType: void
    signature: void repl_timer_handler(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: replq_elem
      Src: /src/xen/xen/common/sched/rt.c:1502,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/rt.c:1507,1
    - Dst: rt_update_deadline
      Src: /src/xen/xen/common/sched/rt.c:1508,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/rt.c:1509,1
    - Dst: unit_on_q
      Src: /src/xen/xen/common/sched/rt.c:1511,1
    - Dst: q_remove
      Src: /src/xen/xen/common/sched/rt.c:1513,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/rt.c:1514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1516
    functionName: list_for_each_safe
    functionSourceFile: /src/xen/xen/common/sched/rt.c
    functionUses: 9
    functionsReached:
    - unit_on_q
    - q_remove
    - list_del
    - rt_update_deadline
    - runq_insert
    - list_add
    - replq_elem
    linkageType: ''
    returnType: void
    signature: void list_for_each_safe ( iter, tmp, replq )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: sched_idle_res_pick
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      sched_idle_res_pick(const struct scheduler *ops, const struct sched_unit *unit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: sched_idle_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *cf_check\nsched_idle_alloc_udata(const struct scheduler *ops,
      struct sched_unit *unit,\n                       void *dd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: sched_idle_free_udata
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sched_idle_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:125,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/core.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ops
    - unit
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: sched_idle_schedule
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - sched_idle_unit
    linkageType: ''
    returnType: void
    signature: "void sched_idle_schedule(\n    const struct scheduler *ops, struct
      sched_unit *unit, s_time_t now,\n    bool tasklet_work_scheduled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unit
    - cpu
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: unit2vcpu_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *unit2vcpu_cpu(const struct sched_unit *unit,\n                                         unsigned
      int cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - unit
    - cpu
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: sched_unit2vcpu_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - unit2vcpu_cpu
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *sched_unit2vcpu_cpu(const struct sched_unit *unit,\n
      \                                              unsigned int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:162,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:174,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: dom_scheduler
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - is_idle_domain
    - likely
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *dom_scheduler(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:182,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:197,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: unit_scheduler
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - is_idle_domain
    - likely
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *unit_scheduler(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: vcpu_scheduler
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - unit_scheduler
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *vcpu_scheduler(const struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: VCPU2ONLINE
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VCPU2ONLINE(_v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:212,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/core.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - new_state
    argTypes:
    - struct vcpu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: trace_runstate_change
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - likely
    - trace_time
    linkageType: ''
    returnType: void
    signature: void trace_runstate_change(const struct vcpu *v, int new_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:229,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/core.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 236
    functionName: trace_continue_running
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - likely
    - trace_time
    linkageType: ''
    returnType: void
    signature: void trace_continue_running(const struct vcpu *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:240,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:243,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:246,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/sched/core.c:249,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:249,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:254,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:255,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:255,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/core.c:258,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 261
    functionName: vcpu_urgent_count_update
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - per_cpu
    - atomic_inc
    - unlikely
    - test_bit
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void vcpu_urgent_count_update(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:269,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/core.c:269,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:269,1
    - Dst: vcpu_urgent_count_update
      Src: /src/xen/xen/common/sched/core.c:273,1
    - Dst: trace_runstate_change
      Src: /src/xen/xen/common/sched/core.c:275,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - v
    - new_state
    - new_entry_time
    argTypes:
    - struct vcpu*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 291
    functionName: vcpu_runstate_change
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - trace_runstate_change
    - vcpu_urgent_count_update
    - is_idle_vcpu
    - get_sched_res
    - spin_is_locked
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void vcpu_runstate_change(\n    struct vcpu *v, int new_state, s_time_t
      new_entry_time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/core.c:302,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:302,1
    - Dst: idle
      Src: /src/xen/xen/common/sched/core.c:303,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/sched/core.c:304,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: sched_guest_idle
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - per_cpu
    - idle
    - atomic_inc
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void sched_guest_idle(void (*idle) (void), unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:314,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:322,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:322,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:324,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:324,1
    - Dst: memcpy
      Src: /src/xen/xen/common/sched/core.c:325,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:326,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:330,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:331,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - v
    - runstate
    argTypes:
    - struct vcpu*
    - struct vcpu_runstate_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 334
    functionName: vcpu_runstate_get
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 6
    functionsReached:
    - rcu_read_unlock
    - is_idle_vcpu
    - get_sched_res
    - unit_schedule_unlock_irq
    - likely
    - unit_schedule_lock_irq
    - unlikely
    - rcu_read_lock
    - memcpy
    - NOW
    linkageType: ''
    returnType: void
    signature: "void vcpu_runstate_get(const struct vcpu *v,\n                       struct
      vcpu_runstate_info *runstate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/common/sched/core.c:341,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:341,1
    - Dst: vcpu_runstate_get
      Src: /src/xen/xen/common/sched/core.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: get_cpu_idle_time
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 4
    functionsReached:
    - cpu_online
    - vcpu_runstate_get
    - get_sched_res
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_cpu_idle_time(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _spin_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:361,1
    - Dst: _spin_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:365,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/sched/core.c:366,1
    - Dst: _spin_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:370,1
    - Dst: _spin_lock
      Src: /src/xen/xen/common/sched/core.c:371,1
    - Dst: block_lock_speculation
      Src: /src/xen/xen/common/sched/core.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lock1
    - lock2
    - flags
    argTypes:
    - spinlock_t*
    - spinlock_t*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: sched_spin_lock_double
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - _spin_lock_irqsave
    - block_lock_speculation
    - _spin_lock
    linkageType: ''
    returnType: always_inline
    signature: "always_inline sched_spin_lock_double(\n    spinlock_t *lock1, spinlock_t
      *lock2, unsigned long *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:380,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - lock1
    - lock2
    - flags
    argTypes:
    - spinlock_t*
    - spinlock_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: sched_spin_unlock_double
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: "void sched_spin_unlock_double(spinlock_t *lock1, spinlock_t *lock2,\n
      \                                    unsigned long flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:403,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:404,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:405,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 408
    functionName: sched_free_unit_mem
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - free_cpumask_var
    - xfree
    linkageType: ''
    returnType: void
    signature: void sched_free_unit_mem(struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 400
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, prev_unit )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/core.c:416,1
    - Dst: sched_free_unit_mem
      Src: /src/xen/xen/common/sched/core.c:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unit
    - v
    argTypes:
    - struct sched_unit*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 428
    functionName: sched_free_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_sched_unit_vcpu
    - sched_free_unit_mem
    linkageType: ''
    returnType: void
    signature: void sched_free_unit(struct sched_unit *unit, struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - unit
    - v
    argTypes:
    - struct sched_unit*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 446
    functionName: sched_unit_add_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sched_unit_add_vcpu(struct sched_unit *unit, struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/core.c:452,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:456,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:457,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:458,1
    - Dst: sched_free_unit_mem
      Src: /src/xen/xen/common/sched/core.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: sched_alloc_unit_mem
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - zalloc_cpumask_var
    - sched_free_unit_mem
    linkageType: ''
    returnType: struct sched_unit
    signature: struct sched_unit *sched_alloc_unit_mem(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - unit
    - d
    argTypes:
    - struct sched_unit*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: sched_domain_insert_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sched_domain_insert_unit(struct sched_unit *unit, struct domain
      *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/core.c:487,1
    - Dst: for_each_sched_unit
      Src: /src/xen/xen/common/sched/core.c:489,1
    - Dst: sched_unit_add_vcpu
      Src: /src/xen/xen/common/sched/core.c:495,1
    - Dst: sched_alloc_unit_mem
      Src: /src/xen/xen/common/sched/core.c:499,1
    - Dst: sched_unit_add_vcpu
      Src: /src/xen/xen/common/sched/core.c:502,1
    - Dst: sched_domain_insert_unit
      Src: /src/xen/xen/common/sched/core.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 506
    functionName: sched_alloc_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_alloc_unit_mem
    - sched_domain_insert_unit
    - sched_unit_add_vcpu
    - cpupool_get_granularity
    - for_each_sched_unit
    linkageType: ''
    returnType: struct sched_unit
    signature: struct sched_unit *sched_alloc_unit(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:514,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/core.c:515,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:517,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/sched/core.c:518,1
    - Dst: for_each_node_mask
      Src: /src/xen/xen/common/sched/core.c:519,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/core.c:520,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/common/sched/core.c:520,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:521,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/core.c:522,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:523,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/core.c:526,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:530,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:530,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/core.c:532,1
    - Dst: pcpu_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 538
    functionName: sched_select_initial_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - cpumask_scratch_cpu
    - cpumask_empty
    - smp_processor_id
    - node_to_cpumask
    - for_each_node_mask
    - cpumask_and
    - ASSERT
    - cpumask_first
    - is_idle_domain
    - cpumask_cycle
    - cpumask_copy
    - pcpu_schedule_lock_irqsave
    - pcpu_schedule_unlock_irqrestore
    - cpumask_or
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sched_select_initial_cpu(const struct vcpu *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sched_alloc_unit
      Src: /src/xen/xen/common/sched/core.c:546,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:549,1
    - Dst: sched_select_initial_cpu
      Src: /src/xen/xen/common/sched/core.c:552,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/core.c:555,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:556,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:557,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:558,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:567,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/core.c:570,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:570,1
    - Dst: sched_alloc_udata
      Src: /src/xen/xen/common/sched/core.c:572,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:572,1
    - Dst: sched_free_unit
      Src: /src/xen/xen/common/sched/core.c:575,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:576,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:580,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:583,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:583,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:592,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:592,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:592,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:600,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:600,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:615,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:617,1
    - Dst: is_idle_domain
      Src: /src/xen/xen/common/sched/core.c:624,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:626,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:627,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:630,1
    - Dst: sched_insert_unit
      Src: /src/xen/xen/common/sched/core.c:634,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:634,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:637,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 640
    functionName: sched_init_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - sched_alloc_udata
    - sched_set_res
    - get_sched_res
    - dom_scheduler
    - sched_set_affinity
    - sched_alloc_unit
    - rcu_read_lock
    - NOW
    - cpumask_of
    - sched_select_initial_cpu
    - spin_lock_init
    - sched_insert_unit
    - is_idle_domain
    - init_timer
    - sched_free_unit
    linkageType: ''
    returnType: int
    signature: int sched_init_vcpu(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arch_move_irqs
      Src: /src/xen/xen/common/sched/core.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 645
    functionName: vcpu_move_irqs
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - arch_move_irqs
    linkageType: ''
    returnType: void
    signature: void vcpu_move_irqs(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/core.c:651,1
    - Dst: vcpu_move_irqs
      Src: /src/xen/xen/common/sched/core.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: sched_move_irqs
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_sched_unit_vcpu
    - vcpu_move_irqs
    linkageType: ''
    returnType: void
    signature: void sched_move_irqs(const struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_free_udata
      Src: /src/xen/xen/common/sched/core.c:664,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:667,1
    - Dst: sched_free_domdata
      Src: /src/xen/xen/common/sched/core.c:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ops
    - units
    - domdata
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 671
    functionName: sched_move_domain_cleanup
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_free_domdata
    - sched_free_udata
    - xfree
    linkageType: ''
    returnType: void
    signature: "void sched_move_domain_cleanup(const struct scheduler *ops,\n                                      struct
      sched_unit *units,\n                                      void *domdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:708,1
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/core.c:710,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/common/sched/core.c:711,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:719,1
    - Dst: sched_alloc_domdata
      Src: /src/xen/xen/common/sched/core.c:721,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/core.c:722,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:724,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/sched/core.c:726,1
    - Dst: sched_alloc_unit_mem
      Src: /src/xen/xen/common/sched/core.c:731,1
    - Dst: sched_alloc_udata
      Src: /src/xen/xen/common/sched/core.c:738,1
    - Dst: sched_move_domain_cleanup
      Src: /src/xen/xen/common/sched/core.c:744,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:745,1
    - Dst: domain_pause
      Src: /src/xen/xen/common/sched/core.c:753,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/core.c:763,1
    - Dst: sched_remove_unit
      Src: /src/xen/xen/common/sched/core.c:768,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:770,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/core.c:771,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:771,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:772,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:788,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/core.c:795,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:803,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:804,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:805,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/core.c:806,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:809,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:811,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/core.c:813,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:813,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:819,1
    - Dst: sched_move_irqs
      Src: /src/xen/xen/common/sched/core.c:822,1
    - Dst: sched_insert_unit
      Src: /src/xen/xen/common/sched/core.c:824,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/common/sched/core.c:827,1
    - Dst: domain_unpause
      Src: /src/xen/xen/common/sched/core.c:829,1
    - Dst: sched_move_domain_cleanup
      Src: /src/xen/xen/common/sched/core.c:831,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:833,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 2
    argNames:
    - d
    - c
    argTypes:
    - struct domain*
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 700
    functionDepth: 6
    functionLinenumber: 700
    functionLinenumberEnd: 836
    functionName: sched_move_domain
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_alloc_unit_mem
    - sched_move_domain_cleanup
    - sched_move_irqs
    - rcu_read_unlock
    - unit_schedule_lock_irq
    - domain_unpause
    - sched_alloc_udata
    - sched_set_res
    - sched_alloc_domdata
    - spin_unlock_irq
    - migrate_timer
    - cpumask_first
    - cpupool_get_granularity
    - sched_insert_unit
    - rcu_read_lock
    - IS_ERR
    - domain_pause
    - sched_remove_unit
    - get_sched_res
    - dom_scheduler
    - DIV_ROUND_UP
    - PTR_ERR
    - cpumask_cycle
    - domain_update_node_affinity
    - sched_set_affinity
    linkageType: ''
    returnType: int
    signature: int sched_move_domain(struct domain *d, struct cpupool *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_remove_unit
      Src: /src/xen/xen/common/sched/core.c:768,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:770,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/core.c:771,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:771,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 773
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - sched_set_res
    - sched_remove_unit
    - get_sched_res
    - spin_unlock_irq
    - unit_schedule_lock_irq
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 791
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 49
    functionsReached:
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:803,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:804,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:805,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/core.c:806,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:809,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:811,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/core.c:813,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:813,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:819,1
    - Dst: sched_move_irqs
      Src: /src/xen/xen/common/sched/core.c:822,1
    - Dst: sched_insert_unit
      Src: /src/xen/xen/common/sched/core.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 796
    functionDepth: 6
    functionLinenumber: 796
    functionLinenumberEnd: 825
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - sched_move_irqs
    - sched_set_res
    - get_sched_res
    - spin_unlock_irq
    - cpumask_cycle
    - migrate_timer
    - unit_schedule_lock_irq
    - sched_insert_unit
    - sched_set_affinity
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:803,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:804,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:805,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/core.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 801
    functionDepth: 6
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - cpumask_cycle
    - migrate_timer
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:842,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:843,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:844,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/common/sched/core.c:845,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/sched/core.c:846,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:846,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:853,1
    - Dst: sched_remove_unit
      Src: /src/xen/xen/common/sched/core.c:855,1
    - Dst: vcpu_scheduler
      Src: /src/xen/xen/common/sched/core.c:855,1
    - Dst: sched_free_udata
      Src: /src/xen/xen/common/sched/core.c:856,1
    - Dst: vcpu_scheduler
      Src: /src/xen/xen/common/sched/core.c:856,1
    - Dst: sched_free_unit
      Src: /src/xen/xen/common/sched/core.c:857,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 838
    functionDepth: 6
    functionLinenumber: 838
    functionLinenumberEnd: 861
    functionName: sched_destroy_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - rcu_read_unlock
    - sched_remove_unit
    - vcpu_scheduler
    - sched_free_udata
    - kill_timer
    - sched_free_unit
    - per_cpu
    - test_and_clear_bool
    - rcu_read_lock
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void sched_destroy_vcpu(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:868,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:869,1
    - Dst: cpupool_add_domain
      Src: /src/xen/xen/common/sched/core.c:871,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:874,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:875,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:877,1
    - Dst: sched_alloc_domdata
      Src: /src/xen/xen/common/sched/core.c:879,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:879,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:881,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/core.c:883,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/sched/core.c:884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - d
    - poolid
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 889
    functionName: sched_init_domain
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - cpupool_add_domain
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - rcu_read_unlock
    - IS_ERR
    - sched_alloc_domdata
    - dom_scheduler
    - PTR_ERR
    - ASSERT
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: int sched_init_domain(struct domain *d, unsigned int poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:893,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:897,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:898,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:900,1
    - Dst: sched_free_domdata
      Src: /src/xen/xen/common/sched/core.c:902,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:902,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:905,1
    - Dst: cpupool_rm_domain
      Src: /src/xen/xen/common/sched/core.c:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 909
    functionName: sched_destroy_domain
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - rcu_read_unlock
    - dom_scheduler
    - sched_free_domdata
    - ASSERT
    - cpupool_rm_domain
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void sched_destroy_domain(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:915,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/core.c:915,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:915,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:917,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:917,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:920,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:920,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:923,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/core.c:923,1
    - Dst: sched_sleep
      Src: /src/xen/xen/common/sched/core.c:924,1
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:924,1
    - Dst: unit_running
      Src: /src/xen/xen/common/sched/core.c:925,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/core.c:929,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 932
    functionName: vcpu_sleep_nosync_locked
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_sleep
    - unit_running
    - cpu_raise_softirq
    - get_sched_res
    - spin_is_locked
    - likely
    - ASSERT
    - vcpu_runnable
    - unit_runnable
    - NOW
    - unit_scheduler
    - vcpu_runstate_change
    linkageType: ''
    returnType: void
    signature: void vcpu_sleep_nosync_locked(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:939,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:941,1
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:943,1
    - Dst: vcpu_sleep_nosync_locked
      Src: /src/xen/xen/common/sched/core.c:945,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:947,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 934
    functionDepth: 4
    functionLinenumber: 934
    functionLinenumberEnd: 950
    functionName: vcpu_sleep_nosync
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 6
    functionsReached:
    - TRACE_TIME
    - unit_schedule_lock_irqsave
    - rcu_read_unlock
    - unit_schedule_unlock_irqrestore
    - vcpu_sleep_nosync_locked
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void vcpu_sleep_nosync(struct vcpu *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_sleep_nosync
      Src: /src/xen/xen/common/sched/core.c:954,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:956,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/sched/core.c:957,1
    - Dst: smp_rmb
      Src: /src/xen/xen/common/sched/core.c:960,1
    - Dst: sync_vcpu_execstate
      Src: /src/xen/xen/common/sched/core.c:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 952
    functionDepth: 5
    functionLinenumber: 952
    functionLinenumberEnd: 963
    functionName: vcpu_sleep_sync
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 4
    functionsReached:
    - cpu_relax
    - smp_rmb
    - vcpu_runnable
    - sync_vcpu_execstate
    - vcpu_sleep_nosync
    linkageType: ''
    returnType: void
    signature: void vcpu_sleep_sync(struct vcpu *v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:971,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:973,1
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:975,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:977,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:977,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:980,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:980,1
    - Dst: sched_wake
      Src: /src/xen/xen/common/sched/core.c:986,1
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:986,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/core.c:990,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:996,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:996,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:999,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1001,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 1002
    functionName: vcpu_wake
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 8
    functionsReached:
    - TRACE_TIME
    - unit_schedule_lock_irqsave
    - cpu_raise_softirq
    - rcu_read_unlock
    - unit_schedule_unlock_irqrestore
    - likely
    - sched_wake
    - vcpu_runnable
    - rcu_read_lock
    - NOW
    - unit_scheduler
    - vcpu_runstate_change
    linkageType: ''
    returnType: void
    signature: void vcpu_wake(struct vcpu *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/core.c:1006,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:1010,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/core.c:1018,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:1019,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/sched/core.c:1022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1004
    functionDepth: 4
    functionLinenumber: 1004
    functionLinenumberEnd: 1023
    functionName: vcpu_unblock
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 5
    functionsReached:
    - test_and_clear_bit
    - vcpu_wake
    - clear_bit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void vcpu_unblock(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1035,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:1044,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/core.c:1046,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:1046,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/sched/core.c:1047,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:1047,1
    - Dst: sched_migrate
      Src: /src/xen/xen/common/sched/core.c:1055,1
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:1055,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - unit
    - new_cpu
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1058
    functionName: sched_unit_move_locked
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - sched_migrate
    - per_cpu
    - atomic_inc
    - unlikely
    - rcu_read_lock
    - unit_scheduler
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: "void sched_unit_move_locked(struct sched_unit *unit,\n                                   unsigned
      int new_cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:1044,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/core.c:1046,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:1046,1
    - Dst: atomic_dec
      Src: /src/xen/xen/common/sched/core.c:1047,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1049
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - per_cpu
    - atomic_dec
    - atomic_inc
    - unlikely
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:1093,1
    - Dst: vcpu_sleep_nosync_locked
      Src: /src/xen/xen/common/sched/core.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1087
    functionDepth: 4
    functionLinenumber: 1087
    functionLinenumberEnd: 1096
    functionName: sched_unit_migrate_start
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - vcpu_sleep_nosync_locked
    - set_bit
    linkageType: ''
    returnType: void
    signature: void sched_unit_migrate_start(struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:1093,1
    - Dst: vcpu_sleep_nosync_locked
      Src: /src/xen/xen/common/sched/core.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1091
    functionDepth: 4
    functionLinenumber: 1091
    functionLinenumberEnd: 1095
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - vcpu_sleep_nosync_locked
    - set_bit
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/core.c:1113,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:1114,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1125,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1126,1
    - Dst: sched_spin_lock_double
      Src: /src/xen/xen/common/sched/core.c:1128,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1131,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1138,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1139,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1140,1
    - Dst: sched_pick_resource
      Src: /src/xen/xen/common/sched/core.c:1144,1
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:1144,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1146,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1147,1
    - Dst: sched_spin_unlock_double
      Src: /src/xen/xen/common/sched/core.c:1160,1
    - Dst: sched_spin_unlock_double
      Src: /src/xen/xen/common/sched/core.c:1170,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/core.c:1175,1
    - Dst: sched_spin_unlock_double
      Src: /src/xen/xen/common/sched/core.c:1177,1
    - Dst: sched_unit_move_locked
      Src: /src/xen/xen/common/sched/core.c:1182,1
    - Dst: sched_spin_unlock_double
      Src: /src/xen/xen/common/sched/core.c:1184,1
    - Dst: sched_move_irqs
      Src: /src/xen/xen/common/sched/core.c:1187,1
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/core.c:1190,1
    - Dst: vcpu_wake
      Src: /src/xen/xen/common/sched/core.c:1191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1192
    functionName: sched_unit_migrate_finish
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_spin_unlock_double
    - sched_move_irqs
    - sched_unit_move_locked
    - vcpu_wake
    - sched_spin_lock_double
    - get_sched_res
    - test_and_clear_bit
    - for_each_sched_unit_vcpu
    - sched_pick_resource
    - test_bit
    - unit_scheduler
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void sched_unit_migrate_finish(struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/core.c:1175,1
    - Dst: sched_spin_unlock_double
      Src: /src/xen/xen/common/sched/core.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1180
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - test_and_clear_bit
    - sched_spin_unlock_double
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/core.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1194
    functionDepth: 0
    functionLinenumber: 1194
    functionLinenumberEnd: 1203
    functionName: sched_check_affinity_broken
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_sched_unit_vcpu
    linkageType: ''
    returnType: bool
    signature: bool sched_check_affinity_broken(const struct sched_unit *unit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1216,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1218,1
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:1229,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/core.c:1231,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1232,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1234,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1237,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:1242,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1245,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1248,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1251,1
    - Dst: sched_unit_migrate_start
      Src: /src/xen/xen/common/sched/core.c:1263,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1264,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:1265,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1272,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1278,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1210
    functionDepth: 5
    functionLinenumber: 1210
    functionLinenumberEnd: 1281
    functionName: cpu_disable_scheduler
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - unit_schedule_lock_irqsave
    - rcu_read_unlock
    - sched_check_affinity_broken
    - get_sched_res
    - unit_schedule_unlock_irqrestore
    - sched_unit_migrate_start
    - printk
    - sched_unit_migrate_finish
    - rcu_read_lock
    - sched_set_affinity
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int cpu_disable_scheduler(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:1229,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/core.c:1231,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1232,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1234,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1237,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:1242,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1245,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1248,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1251,1
    - Dst: sched_unit_migrate_start
      Src: /src/xen/xen/common/sched/core.c:1263,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1264,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:1265,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1222
    functionDepth: 5
    functionLinenumber: 1222
    functionLinenumberEnd: 1275
    functionName: for_each_domain_in_cpupool
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - unit_schedule_lock_irqsave
    - get_sched_res
    - unit_schedule_unlock_irqrestore
    - sched_unit_migrate_start
    - printk
    - sched_unit_migrate_finish
    - sched_check_affinity_broken
    - sched_set_affinity
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void for_each_domain_in_cpupool ( d, c )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:1229,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/core.c:1231,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1232,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1234,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1237,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:1242,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1245,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1248,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1251,1
    - Dst: sched_unit_migrate_start
      Src: /src/xen/xen/common/sched/core.c:1263,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:1264,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:1265,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1226
    functionDepth: 5
    functionLinenumber: 1226
    functionLinenumberEnd: 1274
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - unit_schedule_lock_irqsave
    - get_sched_res
    - unit_schedule_unlock_irqrestore
    - sched_unit_migrate_start
    - printk
    - sched_unit_migrate_finish
    - sched_check_affinity_broken
    - sched_set_affinity
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1289,1
    - Dst: for_each_domain_in_cpupool
      Src: /src/xen/xen/common/sched/core.c:1293,1
    - Dst: for_each_vcpu
      Src: /src/xen/xen/common/sched/core.c:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1299
    functionName: cpu_disable_scheduler_check
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_domain_in_cpupool
    - for_each_vcpu
    - get_sched_res
    linkageType: ''
    returnType: int
    signature: int cpu_disable_scheduler_check(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1312,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:1314,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:1323,1
    - Dst: sched_move_timers
      Src: /src/xen/xen/common/sched/core.c:1324,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1308
    functionDepth: 6
    functionLinenumber: 1308
    functionLinenumberEnd: 1328
    functionName: sched_migrate_timers
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - get_sched_res
    - sched_move_timers
    - migrate_timer
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void sched_migrate_timers(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1340,1
    - Dst: sched_adjust_affinity
      Src: /src/xen/xen/common/sched/core.c:1341,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:1341,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1342,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:1345,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:1347,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/core.c:1349,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/core.c:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - unit
    - hard
    - soft
    argTypes:
    - struct sched_unit*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1337
    functionDepth: 3
    functionLinenumber: 1337
    functionLinenumberEnd: 1353
    functionName: sched_set_affinity
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 6
    functionsReached:
    - rcu_read_unlock
    - dom_scheduler
    - cpumask_copy
    - cpumask_subset
    - sched_adjust_affinity
    - rcu_read_lock
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: "void sched_set_affinity(\n    struct sched_unit *unit, const cpumask_t
      *hard, const cpumask_t *soft)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1362,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:1364,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1376,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:1380,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1381,1
    - Dst: sched_unit_migrate_start
      Src: /src/xen/xen/common/sched/core.c:1383,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:1386,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/common/sched/core.c:1388,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:1390,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - v
    - affinity
    - which
    argTypes:
    - struct vcpu*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1355
    functionDepth: 5
    functionLinenumber: 1355
    functionLinenumberEnd: 1395
    functionName: vcpu_set_affinity
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - unit_schedule_unlock_irq
    - sched_unit_migrate_start
    - ASSERT
    - unit_schedule_lock_irq
    - domain_update_node_affinity
    - sched_unit_migrate_finish
    - rcu_read_lock
    - sched_set_affinity
    linkageType: ''
    returnType: int
    signature: "int vcpu_set_affinity(\n    struct vcpu *v, const cpumask_t *affinity,
      const cpumask_t *which)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VCPU2ONLINE
      Src: /src/xen/xen/common/sched/core.c:1401,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/core.c:1402,1
    - Dst: vcpu_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - affinity
    argTypes:
    - struct vcpu*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 6
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    functionName: vcpu_set_hard_affinity
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - VCPU2ONLINE
    - vcpu_set_affinity
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int vcpu_set_hard_affinity(struct vcpu *v, const cpumask_t *affinity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:1413,1
    - Dst: smp_mb__after_atomic
      Src: /src/xen/xen/common/sched/core.c:1415,1
    - Dst: arch_vcpu_block
      Src: /src/xen/xen/common/sched/core.c:1417,1
    - Dst: local_events_need_delivery
      Src: /src/xen/xen/common/sched/core.c:1420,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:1422,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:1426,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1429
    functionName: vcpu_block
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - TRACE_TIME
    - raise_softirq
    - local_events_need_delivery
    - arch_vcpu_block
    - clear_bit
    - smp_mb__after_atomic
    - set_bit
    linkageType: ''
    returnType: void
    signature: void vcpu_block(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: local_event_delivery_enable
      Src: /src/xen/xen/common/sched/core.c:1433,1
    - Dst: vcpu_block
      Src: /src/xen/xen/common/sched/core.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1435
    functionName: vcpu_block_enable_events
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - local_event_delivery_enable
    - vcpu_block
    linkageType: ''
    returnType: void
    signature: void vcpu_block_enable_events(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_okay
      Src: /src/xen/xen/common/sched/core.c:1449,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:1452,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:1454,1
    - Dst: arch_vcpu_block
      Src: /src/xen/xen/common/sched/core.c:1456,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/sched/core.c:1460,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:1469,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:1470,1
    - Dst: local_events_need_delivery
      Src: /src/xen/xen/common/sched/core.c:1475,1
    - Dst: __copy_from_guest_offset
      Src: /src/xen/xen/common/sched/core.c:1481,1
    - Dst: evtchn_port_poll
      Src: /src/xen/xen/common/sched/core.c:1484,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:1497,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:1499,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:1500,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:1506,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:1507,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - sched_poll
    argTypes:
    - struct sched_poll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1437
    functionDepth: 6
    functionLinenumber: 1437
    functionLinenumberEnd: 1509
    functionName: do_poll
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - TRACE_TIME
    - raise_softirq
    - local_events_need_delivery
    - arch_vcpu_block
    - evtchn_port_poll
    - set_timer
    - clear_bit
    - guest_handle_okay
    - test_bit
    - __copy_from_guest_offset
    - set_bit
    linkageType: ''
    returnType: long
    signature: long do_poll(const struct sched_poll *sched_poll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1517,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:1519,1
    - Dst: sched_yield
      Src: /src/xen/xen/common/sched/core.c:1520,1
    - Dst: vcpu_scheduler
      Src: /src/xen/xen/common/sched/core.c:1520,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:1521,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1523,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:1525,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:1527,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1512
    functionDepth: 3
    functionLinenumber: 1512
    functionLinenumberEnd: 1530
    functionName: vcpu_yield
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 4
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - rcu_read_unlock
    - raise_softirq
    - unit_schedule_unlock_irq
    - vcpu_scheduler
    - rcu_read_lock
    - unit_schedule_lock_irq
    - sched_yield
    linkageType: ''
    returnType: long
    signature: long vcpu_yield(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/common/sched/core.c:1538,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:1546,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/common/sched/core.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1532
    functionDepth: 4
    functionLinenumber: 1532
    functionLinenumberEnd: 1548
    functionName: domain_watchdog_timeout
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - printk
    - domain_shutdown
    - _p
    linkageType: ''
    returnType: void
    signature: void domain_watchdog_timeout(void *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/core.c:1555,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/common/sched/core.c:1561,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:1563,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:1563,1
    - Dst: SECONDS
      Src: /src/xen/xen/common/sched/core.c:1563,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:1566,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/core.c:1571,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:1573,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:1579,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:1580,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:1584,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:1584,1
    - Dst: SECONDS
      Src: /src/xen/xen/common/sched/core.c:1584,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:1587,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - d
    - id
    - timeout
    argTypes:
    - struct domain*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1550
    functionDepth: 6
    functionLinenumber: 1550
    functionLinenumberEnd: 1589
    functionName: domain_watchdog
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - SECONDS
    - test_and_set_bit
    - set_timer
    - spin_lock
    - stop_timer
    - clear_bit
    - test_bit
    - NOW
    linkageType: ''
    returnType: long
    signature: long domain_watchdog(struct domain *d, uint32_t id, uint32_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/core.c:1595,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/sched/core.c:1603,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1591
    functionDepth: 2
    functionLinenumber: 1591
    functionLinenumberEnd: 1611
    functionName: watchdog_domain_init
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - spin_lock_init
    - init_timer
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void watchdog_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:1618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1613
    functionDepth: 6
    functionLinenumber: 1613
    functionLinenumberEnd: 1619
    functionName: watchdog_domain_destroy
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - kill_timer
    linkageType: ''
    returnType: void
    signature: void watchdog_domain_destroy(struct domain *d)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:1638,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:1640,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1649,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1650,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1655,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1657,1
    - Dst: VCPU2ONLINE
      Src: /src/xen/xen/common/sched/core.c:1657,1
    - Dst: sched_check_affinity_broken
      Src: /src/xen/xen/common/sched/core.c:1659,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:1661,1
    - Dst: sched_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1663,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:1663,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:1670,1
    - Dst: sched_unit_migrate_start
      Src: /src/xen/xen/common/sched/core.c:1672,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:1674,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:1677,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:1679,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - v
    - cpu
    - reason
    argTypes:
    - struct vcpu*
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1631
    functionDepth: 5
    functionLinenumber: 1631
    functionLinenumberEnd: 1682
    functionName: vcpu_temporary_affinity
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - rcu_read_unlock
    - sched_check_affinity_broken
    - unit_schedule_unlock_irq
    - sched_unit_migrate_start
    - unit_schedule_lock_irq
    - cpumask_copy
    - cpumask_of
    - VCPU2ONLINE
    - rcu_read_lock
    - sched_set_affinity
    - cpumask_test_cpu
    - sched_unit_migrate_finish
    linkageType: ''
    returnType: int
    signature: int vcpu_temporary_affinity(struct vcpu *v, unsigned int cpu, uint8_t
      reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sched/core.c:1689,1
    - Dst: guest_handle_is_null
      Src: /src/xen/xen/common/sched/core.c:1691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - vcpuaff
    argTypes:
    - struct xen_domctl_vcpuaffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1692
    functionName: vcpuaffinity_params_invalid
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - guest_handle_is_null
    linkageType: ''
    returnType: int
    signature: int vcpuaffinity_params_invalid(const struct xen_domctl_vcpuaffinity
      *vcpuaff)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: vcpuaffinity_params_invalid
      Src: /src/xen/xen/common/sched/core.c:1707,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/core.c:1715,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1722,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:1725,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1727,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1729,1
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/sched/core.c:1735,1
    - Dst: xenctl_bitmap_to_bitmap
      Src: /src/xen/xen/common/sched/core.c:1745,1
    - Dst: cpumask_bits
      Src: /src/xen/xen/common/sched/core.c:1745,1
    - Dst: vcpu_set_hard_affinity
      Src: /src/xen/xen/common/sched/core.c:1748,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:1756,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/core.c:1757,1
    - Dst: xenctl_bitmap_to_bitmap
      Src: /src/xen/xen/common/sched/core.c:1761,1
    - Dst: cpumask_bits
      Src: /src/xen/xen/common/sched/core.c:1761,1
    - Dst: vcpu_set_affinity
      Src: /src/xen/xen/common/sched/core.c:1764,1
    - Dst: vcpu_set_hard_affinity
      Src: /src/xen/xen/common/sched/core.c:1774,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:1783,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:1784,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/core.c:1785,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1789,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1790,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/core.c:1795,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/core.c:1798,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - d
    - cmd
    - vcpuaff
    argTypes:
    - struct domain*
    - uint32_t
    - struct xen_domctl_vcpuaffinity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1694
    functionDepth: 7
    functionLinenumber: 1694
    functionLinenumberEnd: 1803
    functionName: vcpu_affinity_domctl
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - vcpuaffinity_params_invalid
    - cpupool_domain_master_cpumask
    - free_cpumask_var
    - xenctl_bitmap_to_bitmap
    - vcpu_set_hard_affinity
    - alloc_cpumask_var
    - vcpu_set_affinity
    - cpumask_and
    - cpumask_copy
    - cpumask_to_xenctl_bitmap
    - vcpu_temporary_affinity
    - cpumask_bits
    linkageType: ''
    returnType: int
    signature: "int vcpu_affinity_domctl(struct domain *d, uint32_t cmd,\n                         struct
      xen_domctl_vcpuaffinity *vcpuaff)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1807,1
    - Dst: alloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1809,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - struct affinity_masks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1816
    functionName: alloc_affinity_masks
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - alloc_cpumask_var
    - free_cpumask_var
    linkageType: ''
    returnType: bool
    signature: bool alloc_affinity_masks(struct affinity_masks *affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1820,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - affinity
    argTypes:
    - struct affinity_masks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1822
    functionName: free_affinity_masks
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - free_cpumask_var
    linkageType: ''
    returnType: void
    signature: void free_affinity_masks(struct affinity_masks *affinity)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloc_affinity_masks
      Src: /src/xen/xen/common/sched/core.c:1839,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/sched/core.c:1843,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/sched/core.c:1844,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/core.c:1846,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/core.c:1848,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/core.c:1866,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/core.c:1867,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:1870,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:1871,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/core.c:1871,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/core.c:1873,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/core.c:1879,1
    - Dst: nodes_clear
      Src: /src/xen/xen/common/sched/core.c:1882,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:1883,1
    - Dst: node_set
      Src: /src/xen/xen/common/sched/core.c:1884,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/core.c:1884,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:1887,1
    - Dst: free_affinity_masks
      Src: /src/xen/xen/common/sched/core.c:1890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - d
    - affinity
    argTypes:
    - struct domain*
    - struct affinity_masks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1824
    functionDepth: 2
    functionLinenumber: 1824
    functionLinenumberEnd: 1891
    functionName: domain_update_node_aff
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - alloc_affinity_masks
    - cpumask_clear
    - for_each_cpu
    - cpupool_domain_master_cpumask
    - cpu_to_node
    - spin_unlock
    - cpumask_empty
    - node_set
    - free_affinity_masks
    - nodes_clear
    - cpumask_and
    - spin_lock
    - ASSERT
    - cpumask_or
    linkageType: ''
    returnType: void
    signature: void domain_update_node_aff(struct domain *d, struct affinity_masks
      *affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/core.c:1866,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/core.c:1867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1868
      start: 1864
    functionDepth: 1
    functionLinenumber: 1864
    functionLinenumberEnd: 1868
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - cpumask_or
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_yield
      Src: /src/xen/xen/common/sched/core.c:1905,1
    - Dst: vcpu_block_enable_events
      Src: /src/xen/xen/common/sched/core.c:1911,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:1920,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:1923,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/common/sched/core.c:1925,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:1936,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:1939,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/core.c:1942,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:1945,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:1956,1
    - Dst: do_poll
      Src: /src/xen/xen/common/sched/core.c:1959,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:1970,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/common/sched/core.c:1974,1
    - Dst: xsm_schedop_shutdown
      Src: /src/xen/xen/common/sched/core.c:1978,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/core.c:1979,1
    - Dst: domain_shutdown
      Src: /src/xen/xen/common/sched/core.c:1980,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/sched/core.c:1982,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:1992,1
    - Dst: domain_watchdog
      Src: /src/xen/xen/common/sched/core.c:1995,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/common/sched/core.c:2006,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/core.c:2010,1
    - Dst: vcpu_temporary_affinity
      Src: /src/xen/xen/common/sched/core.c:2018,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1897
    functionDepth: 7
    functionLinenumber: 1897
    functionLinenumberEnd: 2029
    functionName: do_sched_op
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - vcpu_block_enable_events
    - TRACE_TIME
    - vcpu_yield
    - do_poll
    - copy_from_guest
    - rcu_lock_domain_by_id
    - xsm_schedop_shutdown
    - likely
    - vcpu_temporary_affinity
    - domain_watchdog
    - spin_lock
    - rcu_unlock_domain
    - domain_shutdown
    - is_hardware_domain
    linkageType: ''
    returnType: ret_t
    signature: ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2037,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:2041,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:2043,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:2044,1
    - Dst: gdprintk
      Src: /src/xen/xen/common/sched/core.c:2057,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:2059,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2059,1
    - Dst: MILLISECS
      Src: /src/xen/xen/common/sched/core.c:2059,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:2063,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2063,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:2064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2034
    functionDepth: 6
    functionLinenumber: 2034
    functionLinenumberEnd: 2068
    functionName: do_set_timer_op
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - smp_processor_id
    - set_timer
    - stop_timer
    - migrate_timer
    - unlikely
    - MILLISECS
    - NOW
    linkageType: ''
    returnType: long
    signature: long do_set_timer_op(s_time_t timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2075
    functionName: scheduler_id
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scheduler_id(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsm_domctl_scheduler_op
      Src: /src/xen/xen/common/sched/core.c:2083,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:2087,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2103,1
    - Dst: sched_adjust_dom
      Src: /src/xen/xen/common/sched/core.c:2105,1
    - Dst: dom_scheduler
      Src: /src/xen/xen/common/sched/core.c:2105,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:2106,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - struct xen_domctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2079
    functionDepth: 3
    functionLinenumber: 2079
    functionLinenumberEnd: 2111
    functionName: sched_adjust
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - TRACE_TIME
    - rcu_read_unlock
    - xsm_domctl_scheduler_op
    - dom_scheduler
    - sched_adjust_dom
    - rcu_read_lock
    linkageType: ''
    returnType: long
    signature: long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op
      *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xsm_sysctl_scheduler_op
      Src: /src/xen/xen/common/sched/core.c:2119,1
    - Dst: cpupool_get_by_id
      Src: /src/xen/xen/common/sched/core.c:2127,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2131,1
    - Dst: sched_adjust_cpupool
      Src: /src/xen/xen/common/sched/core.c:2134,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2136,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/core.c:2138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2114
    functionDepth: 3
    functionLinenumber: 2114
    functionLinenumberEnd: 2141
    functionName: sched_adjust_global
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - xsm_sysctl_scheduler_op
    - rcu_read_unlock
    - sched_adjust_cpupool
    - cpupool_get_by_id
    - cpupool_put
    - rcu_read_lock
    linkageType: ''
    returnType: long
    signature: long sched_adjust_global(struct xen_sysctl_scheduler_op *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2149,1
    - Dst: send_timer_event
      Src: /src/xen/xen/common/sched/core.c:2154,1
    - Dst: migrate_timer
      Src: /src/xen/xen/common/sched/core.c:2159,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:2160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2144
    functionDepth: 6
    functionLinenumber: 2144
    functionLinenumberEnd: 2161
    functionName: vcpu_periodic_timer_work_locked
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - set_timer
    - migrate_timer
    - send_timer_event
    - NOW
    linkageType: ''
    returnType: void
    signature: void vcpu_periodic_timer_work_locked(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/core.c:2168,1
    - Dst: vcpu_periodic_timer_work_locked
      Src: /src/xen/xen/common/sched/core.c:2170,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:2171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2163
    functionDepth: 7
    functionLinenumber: 2163
    functionLinenumberEnd: 2172
    functionName: vcpu_periodic_timer_work
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - spin_unlock
    - vcpu_periodic_timer_work_locked
    linkageType: ''
    returnType: void
    signature: void vcpu_periodic_timer_work(struct vcpu *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/core.c:2179,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:2181,1
    - Dst: vcpu_periodic_timer_work_locked
      Src: /src/xen/xen/common/sched/core.c:2185,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/core.c:2187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - struct vcpu*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2177
    functionDepth: 7
    functionLinenumber: 2177
    functionLinenumberEnd: 2188
    functionName: vcpu_set_periodic_timer
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 3
    functionsReached:
    - spin_lock
    - stop_timer
    - spin_unlock
    - vcpu_periodic_timer_work_locked
    linkageType: ''
    returnType: void
    signature: void vcpu_set_periodic_timer(struct vcpu *v, s_time_t value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:2196,1
    - Dst: unit_running
      Src: /src/xen/xen/common/sched/core.c:2196,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:2203,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:2205,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:2208,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:2211,1
    - Dst: unit_running
      Src: /src/xen/xen/common/sched/core.c:2211,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:2218,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2222,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2227,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:2234,1
    - Dst: get_cpu_current
      Src: /src/xen/xen/common/sched/core.c:2236,1
    - Dst: sched_unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2237,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2241,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:2243,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2245,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:2250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - sr
    - next
    - prev
    - now
    argTypes:
    - struct sched_resource*
    - struct sched_unit*
    - struct sched_unit*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2190
    functionDepth: 3
    functionLinenumber: 2190
    functionLinenumberEnd: 2253
    functionName: sched_switch_units
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - TRACE_TIME
    - unit_running
    - is_idle_vcpu
    - sched_unit2vcpu_cpu
    - ASSERT
    - is_idle_unit
    - vcpu_runnable
    - get_cpu_current
    - vcpu_runstate_change
    linkageType: ''
    returnType: void
    signature: "void sched_switch_units(struct sched_resource *sr,\n                               struct
      sched_unit *next, struct sched_unit *prev,\n                               s_time_t
      now)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:2257,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/core.c:2262,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/core.c:2267,1
    - Dst: BUG
      Src: /src/xen/xen/common/sched/core.c:2273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2255
    functionDepth: 0
    functionLinenumber: 2255
    functionLinenumberEnd: 2277
    functionName: sched_tasklet_check_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - BUG
    - per_cpu
    - clear_bit
    - set_bit
    linkageType: ''
    returnType: bool
    signature: bool sched_tasklet_check_cpu(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2282,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:2285,1
    - Dst: sched_tasklet_check_cpu
      Src: /src/xen/xen/common/sched/core.c:2286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2290
    functionName: sched_tasklet_check
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - sched_tasklet_check_cpu
    - get_sched_res
    linkageType: ''
    returnType: bool
    signature: bool sched_tasklet_check(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2295,1
    - Dst: struct scheduler*::do_schedule
      Src: /src/xen/xen/common/sched/core.c:2300,1
    - Dst: sched_tasklet_check
      Src: /src/xen/xen/common/sched/core.c:2300,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/core.c:2305,1
    - Dst: sched_switch_units
      Src: /src/xen/xen/common/sched/core.c:2307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - prev
    - now
    - cpu
    argTypes:
    - struct sched_unit*
    - s_time_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2292
    functionDepth: 6
    functionLinenumber: 2292
    functionLinenumberEnd: 2310
    functionName: do_schedule
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - sched_tasklet_check
    - sched_switch_units
    - get_sched_res
    - set_timer
    - struct scheduler*::do_schedule
    linkageType: ''
    returnType: struct sched_unit
    signature: "struct sched_unit *do_schedule(struct sched_unit *prev, s_time_t now,\n
      \                                     unsigned int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_wmb
      Src: /src/xen/xen/common/sched/core.c:2317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vprev
    - vnext
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2312
    functionDepth: 0
    functionLinenumber: 2312
    functionLinenumberEnd: 2321
    functionName: vcpu_context_saved
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - smp_wmb
    linkageType: ''
    returnType: void
    signature: void vcpu_context_saved(struct vcpu *vprev, struct vcpu *vnext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2331,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/sched/core.c:2335,1
    - Dst: sched_context_saved
      Src: /src/xen/xen/common/sched/core.c:2337,1
    - Dst: unit_scheduler
      Src: /src/xen/xen/common/sched/core.c:2337,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2340,1
    - Dst: sched_unit_migrate_finish
      Src: /src/xen/xen/common/sched/core.c:2341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sr
    argTypes:
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2323
    functionDepth: 5
    functionLinenumber: 2323
    functionLinenumberEnd: 2342
    functionName: unit_context_saved
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - sched_context_saved
    - is_idle_unit
    - sched_unit_migrate_finish
    - unit_scheduler
    - NOW
    linkageType: ''
    returnType: void
    signature: void unit_context_saved(struct sched_resource *sr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2360,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2362,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2362,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/sched/core.c:2364,1
    - Dst: atomic_dec_return
      Src: /src/xen/xen/common/sched/core.c:2366,1
    - Dst: vcpu_context_saved
      Src: /src/xen/xen/common/sched/core.c:2368,1
    - Dst: unit_context_saved
      Src: /src/xen/xen/common/sched/core.c:2373,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2374,1
    - Dst: atomic_read
      Src: /src/xen/xen/common/sched/core.c:2377,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/sched/core.c:2378,1
    - Dst: vcpu_context_saved
      Src: /src/xen/xen/common/sched/core.c:2382,1
    - Dst: unit_context_saved
      Src: /src/xen/xen/common/sched/core.c:2384,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:2387,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - vprev
    - vnext
    argTypes:
    - struct vcpu*
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2355
    functionDepth: 6
    functionLinenumber: 2355
    functionLinenumberEnd: 2391
    functionName: sched_context_switched
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - atomic_set
    - unit_context_saved
    - cpu_relax
    - vcpu_context_saved
    - rcu_read_unlock
    - is_idle_vcpu
    - get_sched_res
    - smp_processor_id
    - atomic_dec_return
    - rcu_read_lock
    - atomic_read
    linkageType: ''
    returnType: void
    signature: void sched_context_switched(struct vcpu *vprev, struct vcpu *vnext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:2400,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/core.c:2402,1
    - Dst: sched_context_switched
      Src: /src/xen/xen/common/sched/core.c:2406,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2416,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2416,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2418,1
    - Dst: trace_continue_running
      Src: /src/xen/xen/common/sched/core.c:2420,1
    - Dst: continue_running
      Src: /src/xen/xen/common/sched/core.c:2421,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:2424,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:2426,1
    - Dst: vcpu_move_irqs
      Src: /src/xen/xen/common/sched/core.c:2429,1
    - Dst: vcpu_periodic_timer_work
      Src: /src/xen/xen/common/sched/core.c:2431,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2433,1
    - Dst: context_switch
      Src: /src/xen/xen/common/sched/core.c:2435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - vprev
    - vnext
    - reset_idle_unit
    - now
    argTypes:
    - struct vcpu*
    - struct vcpu*
    - bool
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2397
    functionDepth: 8
    functionLinenumber: 2397
    functionLinenumberEnd: 2436
    functionName: sched_context_switch
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - TRACE_TIME
    - rcu_read_unlock
    - vcpu_periodic_timer_work
    - vcpu_move_irqs
    - get_sched_res
    - smp_processor_id
    - continue_running
    - sched_context_switched
    - stop_timer
    - unlikely
    - trace_continue_running
    - context_switch
    linkageType: ''
    returnType: void
    signature: "void sched_context_switch(struct vcpu *vprev, struct vcpu *vnext,\n
      \                                bool reset_idle_unit, s_time_t now)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:2452,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/core.c:2455,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:2457,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2459,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2460,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2462,1
    - Dst: unit_running
      Src: /src/xen/xen/common/sched/core.c:2467,1
    - Dst: vcpu_runstate_blocked
      Src: /src/xen/xen/common/sched/core.c:2470,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2471,1
    - Dst: sched_unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2472,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/core.c:2475,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2477,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2478,1
    - Dst: vcpu_runstate_change
      Src: /src/xen/xen/common/sched/core.c:2483,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - vprev
    - v
    - cpu
    - now
    argTypes:
    - struct vcpu*
    - struct vcpu*
    - unsigned int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2495
    functionName: sched_force_context_switch
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - unit_running
    - vcpu_runstate_blocked
    - is_idle_vcpu
    - get_sched_res
    - raise_softirq
    - sched_unit2vcpu_cpu
    - vcpu_runnable
    - vcpu_runstate_change
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *sched_force_context_switch(struct vcpu *vprev,\n                                               struct
      vcpu *v,\n                                               unsigned int cpu, s_time_t
      now)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2516,1
    - Dst: do_schedule
      Src: /src/xen/xen/common/sched/core.c:2521,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2522,1
    - Dst: unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2526,1
    - Dst: sched_force_context_switch
      Src: /src/xen/xen/common/sched/core.c:2533,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2539,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2541,1
    - Dst: sched_context_switch
      Src: /src/xen/xen/common/sched/core.c:2543,1
    - Dst: unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2548,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/common/sched/core.c:2561,1
    - Dst: rcu_pending
      Src: /src/xen/xen/common/sched/core.c:2563,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2564,1
    - Dst: sched_tasklet_check_cpu
      Src: /src/xen/xen/common/sched/core.c:2564,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2569,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2571,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2573,1
    - Dst: sched_context_switch
      Src: /src/xen/xen/common/sched/core.c:2574,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2579,1
    - Dst: cpu_relax
      Src: /src/xen/xen/common/sched/core.c:2581,1
    - Dst: pcpu_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:2583,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/core.c:2593,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2593,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:2595,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2595,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2596,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2598,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2599,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - prev
    - lock
    - cpu
    - now
    argTypes:
    - struct sched_unit*
    - spinlock_t**
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2510
    functionDepth: 9
    functionLinenumber: 2510
    functionLinenumberEnd: 2605
    functionName: sched_wait_rendezvous_in
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - sched_context_switch
    - sched_tasklet_check_cpu
    - cpu_relax
    - pcpu_schedule_lock_irq
    - raise_softirq
    - get_sched_res
    - rcu_read_unlock
    - unit2vcpu_cpu
    - BUILD_BUG_ON
    - is_idle_unit
    - pcpu_schedule_unlock_irq
    - ASSERT
    - unlikely
    - sched_force_context_switch
    - do_schedule
    - rcu_pending
    linkageType: ''
    returnType: struct sched_unit
    signature: "struct sched_unit *sched_wait_rendezvous_in(struct sched_unit *prev,\n
      \                                                  spinlock_t **lock, int cpu,\n
      \                                                  s_time_t now)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2614,1
    - Dst: ASSERT_NOT_IN_ATOMIC
      Src: /src/xen/xen/common/sched/core.c:2616,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2618,1
    - Dst: pcpu_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:2620,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2622,1
    - Dst: unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2624,1
    - Dst: sched_force_context_switch
      Src: /src/xen/xen/common/sched/core.c:2627,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2631,1
    - Dst: sched_context_switch
      Src: /src/xen/xen/common/sched/core.c:2633,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2643,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2645,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2649,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:2654,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2654,1
    - Dst: sched_wait_rendezvous_in
      Src: /src/xen/xen/common/sched/core.c:2656,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2660,1
    - Dst: sched_context_switch
      Src: /src/xen/xen/common/sched/core.c:2662,1
    - Dst: sched_unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2662,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2663,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2607
    functionDepth: 10
    functionLinenumber: 2607
    functionLinenumberEnd: 2664
    functionName: sched_slave
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_context_switch
    - pcpu_schedule_lock_irq
    - rcu_read_unlock
    - raise_softirq
    - get_sched_res
    - smp_processor_id
    - sched_wait_rendezvous_in
    - sched_unit2vcpu_cpu
    - unit2vcpu_cpu
    - is_idle_unit
    - pcpu_schedule_unlock_irq
    - stop_timer
    - ASSERT_NOT_IN_ATOMIC
    - sched_force_context_switch
    - rcu_read_lock
    - NOW
    linkageType: ''
    returnType: void
    signature: void sched_slave(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2678,1
    - Dst: ASSERT_NOT_IN_ATOMIC
      Src: /src/xen/xen/common/sched/core.c:2681,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:2683,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2685,1
    - Dst: pcpu_schedule_lock_irq
      Src: /src/xen/xen/common/sched/core.c:2687,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2689,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2698,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2700,1
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2702,1
    - Dst: sched_slave
      Src: /src/xen/xen/common/sched/core.c:2703,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/core.c:2706,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/core.c:2708,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/core.c:2712,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/core.c:2715,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:2715,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2716,1
    - Dst: sched_wait_rendezvous_in
      Src: /src/xen/xen/common/sched/core.c:2717,1
    - Dst: do_schedule
      Src: /src/xen/xen/common/sched/core.c:2724,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2725,1
    - Dst: pcpu_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/core.c:2728,1
    - Dst: sched_unit2vcpu_cpu
      Src: /src/xen/xen/common/sched/core.c:2730,1
    - Dst: sched_context_switch
      Src: /src/xen/xen/common/sched/core.c:2731,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2732,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/core.c:2732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2671
    functionDepth: 11
    functionLinenumber: 2671
    functionLinenumberEnd: 2733
    functionName: schedule
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 13
    functionsReached:
    - atomic_set
    - sched_context_switch
    - sched_wait_rendezvous_in
    - sched_unit2vcpu_cpu
    - stop_timer
    - cpumask_raise_softirq
    - do_schedule
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - rcu_read_unlock
    - raise_softirq
    - smp_processor_id
    - cpumask_andnot
    - pcpu_schedule_unlock_irq
    - NOW
    - cpumask_of
    - rcu_read_lock
    - pcpu_schedule_lock_irq
    - get_sched_res
    - sched_slave
    - is_idle_unit
    - ASSERT_NOT_IN_ATOMIC
    linkageType: ''
    returnType: void
    signature: void schedule(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_softirq
      Src: /src/xen/xen/common/sched/core.c:2738,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/core.c:2739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2736
    functionDepth: 2
    functionLinenumber: 2736
    functionLinenumberEnd: 2740
    functionName: s_timer_fn
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - raise_softirq
    linkageType: ''
    returnType: void
    signature: void s_timer_fn(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_periodic_timer_work
      Src: /src/xen/xen/common/sched/core.c:2746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2743
    functionDepth: 8
    functionLinenumber: 2743
    functionLinenumberEnd: 2747
    functionName: vcpu_periodic_timer_fn
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - vcpu_periodic_timer_work
    linkageType: ''
    returnType: void
    signature: void vcpu_periodic_timer_fn(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_timer_event
      Src: /src/xen/xen/common/sched/core.c:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2750
    functionDepth: 0
    functionLinenumber: 2750
    functionLinenumberEnd: 2754
    functionName: vcpu_singleshot_timer_fn
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - send_timer_event
    linkageType: ''
    returnType: void
    signature: void vcpu_singleshot_timer_fn(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/common/sched/core.c:2761,1
    - Dst: vcpu_unblock
      Src: /src/xen/xen/common/sched/core.c:2762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2757
    functionDepth: 5
    functionLinenumber: 2757
    functionLinenumberEnd: 2763
    functionName: poll_timer_fn
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - test_and_clear_bit
    - vcpu_unblock
    linkageType: ''
    returnType: void
    signature: void poll_timer_fn(void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/core.c:2769,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:2772,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:2774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2765
    functionDepth: 2
    functionLinenumber: 2765
    functionLinenumberEnd: 2778
    functionName: sched_alloc_res
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - zalloc_cpumask_var
    - xfree
    linkageType: ''
    returnType: struct sched_resource
    signature: struct sched_resource *sched_alloc_res(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/common/sched/core.c:2782,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/core.c:2784,1
    - Dst: sched_free_unit_mem
      Src: /src/xen/xen/common/sched/core.c:2786,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:2787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2780
    functionDepth: 2
    functionLinenumber: 2780
    functionLinenumberEnd: 2788
    functionName: sched_res_free
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - free_cpumask_var
    - xfree
    - sched_free_unit_mem
    - container_of
    linkageType: ''
    returnType: void
    signature: void sched_res_free(struct rcu_head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2794,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:2796,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:2798,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/core.c:2800,1
    - Dst: set_sched_res
      Src: /src/xen/xen/common/sched/core.c:2801,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/sched/core.c:2805,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2790
    functionDepth: 6
    functionLinenumber: 2790
    functionLinenumberEnd: 2808
    functionName: cpu_schedule_down
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - get_sched_res
    - call_rcu
    - set_sched_res
    - kill_timer
    - cpumask_clear_cpu
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void cpu_schedule_down(unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sched_alloc_res
      Src: /src/xen/xen/common/sched/core.c:2814,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/core.c:2819,1
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:2819,1
    - Dst: set_sched_res
      Src: /src/xen/xen/common/sched/core.c:2820,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/core.c:2823,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:2825,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:2826,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:2826,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/core.c:2831,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:2841,1
    - Dst: vcpu_create
      Src: /src/xen/xen/common/sched/core.c:2844,1
    - Dst: cpu_schedule_down
      Src: /src/xen/xen/common/sched/core.c:2850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2810
    functionDepth: 7
    functionLinenumber: 2810
    functionLinenumberEnd: 2868
    functionName: cpu_schedule_up
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - sched_alloc_res
    - cpumask_copy
    - cpu_schedule_down
    - set_sched_res
    - BUG_ON
    - vcpu_create
    - per_cpu
    - cpumask_of
    - cpumask_set_cpu
    - spin_lock_init
    - init_timer
    linkageType: ''
    returnType: int
    signature: int cpu_schedule_up(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2874,1
    - Dst: cpu_disable_scheduler
      Src: /src/xen/xen/common/sched/core.c:2875,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:2876,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2877,1
    - Dst: cpu_schedule_down
      Src: /src/xen/xen/common/sched/core.c:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2870
    functionDepth: 7
    functionLinenumber: 2870
    functionLinenumberEnd: 2879
    functionName: sched_rm_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - cpu_schedule_down
    - BUG_ON
    - cpu_disable_scheduler
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void sched_rm_cpu(unsigned int cpu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2894,1
    - Dst: cpu_schedule_up
      Src: /src/xen/xen/common/sched/core.c:2921,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:2924,1
    - Dst: cpu_disable_scheduler_check
      Src: /src/xen/xen/common/sched/core.c:2925,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2926,1
    - Dst: sched_rm_cpu
      Src: /src/xen/xen/common/sched/core.c:2929,1
    - Dst: cpu_schedule_down
      Src: /src/xen/xen/common/sched/core.c:2932,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:2938,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/common/sched/core.c:2940,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2881
    functionDepth: 8
    functionLinenumber: 2881
    functionLinenumberEnd: 2941
    functionName: cpu_schedule_callback
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - notifier_from_errno
    - cpu_disable_scheduler_check
    - cpu_schedule_down
    - sched_rm_cpu
    - rcu_read_lock
    - cpu_schedule_up
    linkageType: ''
    returnType: int
    signature: "int cpu_schedule_callback(\n    struct notifier_block *nfb, unsigned
      long action, void *hcpu)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_of
      Src: /src/xen/xen/common/sched/core.c:2954,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:2957,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:2960,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/sched/core.c:2963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - opt
    - cpu
    argTypes:
    - enum sched_gran
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2947
    functionDepth: 2
    functionLinenumber: 2947
    functionLinenumberEnd: 2968
    functionName: sched_get_opt_cpumask
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - per_cpu
    - cpumask_of
    linkageType: ''
    returnType: cpumask_t
    signature: cpumask_t *sched_get_opt_cpumask(enum sched_gran opt, unsigned int
      cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_tasklet_check_cpu
      Src: /src/xen/xen/common/sched/core.c:2972,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/core.c:2972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2973
    functionName: schedule_dummy
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - smp_processor_id
    - sched_tasklet_check_cpu
    linkageType: ''
    returnType: void
    signature: void schedule_dummy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_softirq
      Src: /src/xen/xen/common/sched/core.c:2978,1
    - Dst: open_softirq
      Src: /src/xen/xen/common/sched/core.c:2979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 2980
    functionName: scheduler_disable
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - open_softirq
    linkageType: ''
    returnType: void
    signature: void scheduler_disable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open_softirq
      Src: /src/xen/xen/common/sched/core.c:2984,1
    - Dst: open_softirq
      Src: /src/xen/xen/common/sched/core.c:2985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2982
    functionDepth: 1
    functionLinenumber: 2982
    functionLinenumberEnd: 2987
    functionName: scheduler_enable
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached:
    - open_softirq
    linkageType: ''
    returnType: void
    signature: void scheduler_enable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/common/sched/core.c:2995,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - sched_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2989
    functionDepth: 0
    functionLinenumber: 2989
    functionLinenumberEnd: 2999
    functionName: sched_get_by_name
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *__init sched_get_by_name(const char *sched_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_by_name
      Src: /src/xen/xen/common/sched/core.c:3003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sched_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3001
    functionDepth: 1
    functionLinenumber: 3001
    functionLinenumberEnd: 3006
    functionName: sched_get_id_by_name
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_get_by_name
    linkageType: ''
    returnType: int
    signature: int sched_get_id_by_name(const char *sched_name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scheduler_enable
      Src: /src/xen/xen/common/sched/core.c:3015,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3027,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3028,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3029,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3030,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3031,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3032,1
    - Dst: sched_test_func
      Src: /src/xen/xen/common/sched/core.c:3033,1
    - Dst: global_init
      Src: /src/xen/xen/common/sched/core.c:3037,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3039,1
    - Dst: sched_get_by_name
      Src: /src/xen/xen/common/sched/core.c:3045,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3048,1
    - Dst: sched_get_by_name
      Src: /src/xen/xen/common/sched/core.c:3049,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:3050,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3051,1
    - Dst: cpu_schedule_up
      Src: /src/xen/xen/common/sched/core.c:3055,1
    - Dst: BUG
      Src: /src/xen/xen/common/sched/core.c:3056,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/sched/core.c:3057,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3059,1
    - Dst: sched_init
      Src: /src/xen/xen/common/sched/core.c:3060,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/core.c:3061,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3067,1
    - Dst: domain_create
      Src: /src/xen/xen/common/sched/core.c:3080,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:3081,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/core.c:3081,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:3082,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/sched/core.c:3082,1
    - Dst: vcpu_create
      Src: /src/xen/xen/common/sched/core.c:3085,1
    - Dst: BUG
      Src: /src/xen/xen/common/sched/core.c:3086,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:3088,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3090,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3091,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:3093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 3009
    functionDepth: 8
    functionLinenumber: 3009
    functionLinenumberEnd: 3094
    functionName: scheduler_init
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - scheduler_enable
    - sched_get_by_name
    - BUG
    - IS_ERR
    - rcu_read_unlock
    - ARRAY_SIZE
    - get_sched_res
    - panic
    - sched_init
    - sched_test_func
    - register_cpu_notifier
    - BUG_ON
    - vcpu_create
    - printk
    - domain_create
    - rcu_read_lock
    - global_init
    - cpu_schedule_up
    linkageType: ''
    returnType: void
    signature: void scheduler_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3019
    functionDepth: 0
    functionLinenumber: 3019
    functionLinenumberEnd: 3026
    functionName: sched_test_func
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sched_test_func(f)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:3111,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3113,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3115,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:3115,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3116,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:3116,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3117,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3117,1
    - Dst: sched_alloc_pdata
      Src: /src/xen/xen/common/sched/core.c:3130,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/core.c:3131,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/sched/core.c:3133,1
    - Dst: sched_alloc_udata
      Src: /src/xen/xen/common/sched/core.c:3137,1
    - Dst: sched_free_pdata
      Src: /src/xen/xen/common/sched/core.c:3141,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:3157,1
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/core.c:3159,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/core.c:3174,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/core.c:3180,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:3182,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3187,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:3188,1
    - Dst: set_sched_res
      Src: /src/xen/xen/common/sched/core.c:3191,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/core.c:3192,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/sched/core.c:3194,1
    - Dst: sched_switch_sched
      Src: /src/xen/xen/common/sched/core.c:3198,1
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/core.c:3202,1
    - Dst: smp_wmb
      Src: /src/xen/xen/common/sched/core.c:3210,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:3214,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/core.c:3217,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:3220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 2
    argNames:
    - cpu
    - c
    argTypes:
    - unsigned int
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3223
      start: 3101
    functionDepth: 6
    functionLinenumber: 3101
    functionLinenumberEnd: 3223
    functionName: schedule_cpu_add
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - call_rcu
    - spin_unlock_irqrestore
    - sched_switch_sched
    - sched_alloc_pdata
    - cpumask_test_cpu
    - cpu_raise_softirq
    - rcu_read_unlock
    - cpumask_clear_cpu
    - sched_free_pdata
    - sched_alloc_udata
    - smp_wmb
    - ASSERT
    - cpupool_get_granularity
    - rcu_read_lock
    - IS_ERR
    - get_sched_res
    - sched_get_opt_cpumask
    - set_sched_res
    - PTR_ERR
    - kill_timer
    - per_cpu
    - cpumask_set_cpu
    - pcpu_schedule_lock_irqsave
    linkageType: ''
    returnType: int
    signature: int schedule_cpu_add(unsigned int cpu, struct cpupool *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/core.c:3180,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/core.c:3182,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3187,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/core.c:3188,1
    - Dst: set_sched_res
      Src: /src/xen/xen/common/sched/core.c:3191,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/core.c:3192,1
    - Dst: call_rcu
      Src: /src/xen/xen/common/sched/core.c:3194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3195
      start: 3177
    functionDepth: 6
    functionLinenumber: 3177
    functionLinenumberEnd: 3195
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 23
    functionsReached:
    - get_sched_res
    - call_rcu
    - set_sched_res
    - kill_timer
    - cpumask_set_cpu
    - per_cpu
    - cpumask_clear_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_cpu ( cpu_iter, mask )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:3241,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3243,1
    - Dst: xmalloc_flex_struct
      Src: /src/xen/xen/common/sched/core.c:3244,1
    - Dst: alloc_affinity_masks
      Src: /src/xen/xen/common/sched/core.c:3250,1
    - Dst: XFREE
      Src: /src/xen/xen/common/sched/core.c:3252,1
    - Dst: memset
      Src: /src/xen/xen/common/sched/core.c:3257,1
    - Dst: sched_alloc_res
      Src: /src/xen/xen/common/sched/core.c:3265,1
    - Dst: sched_alloc_unit_mem
      Src: /src/xen/xen/common/sched/core.c:3268,1
    - Dst: sched_res_free
      Src: /src/xen/xen/common/sched/core.c:3271,1
    - Dst: sched_res_free
      Src: /src/xen/xen/common/sched/core.c:3278,1
    - Dst: free_affinity_masks
      Src: /src/xen/xen/common/sched/core.c:3279,1
    - Dst: XFREE
      Src: /src/xen/xen/common/sched/core.c:3280,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:3293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - cpu
    - aff_alloc
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3235
    functionDepth: 3
    functionLinenumber: 3235
    functionLinenumberEnd: 3296
    functionName: alloc_cpu_rm_data
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - alloc_affinity_masks
    - rcu_read_unlock
    - sched_res_free
    - get_sched_res
    - sched_alloc_unit_mem
    - XFREE
    - free_affinity_masks
    - sched_alloc_res
    - memset
    - rcu_read_lock
    - xmalloc_flex_struct
    linkageType: ''
    returnType: struct cpu_rm_data
    signature: struct cpu_rm_data *alloc_cpu_rm_data(unsigned int cpu, bool aff_alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_free_udata
      Src: /src/xen/xen/common/sched/core.c:3300,1
    - Dst: sched_free_pdata
      Src: /src/xen/xen/common/sched/core.c:3301,1
    - Dst: free_affinity_masks
      Src: /src/xen/xen/common/sched/core.c:3302,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:3304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mem
    - cpu
    argTypes:
    - struct cpu_rm_data*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3305
      start: 3298
    functionDepth: 2
    functionLinenumber: 3298
    functionLinenumberEnd: 3305
    functionName: free_cpu_rm_data
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - sched_free_udata
    - sched_free_pdata
    - xfree
    - free_affinity_masks
    linkageType: ''
    returnType: void
    signature: void free_cpu_rm_data(struct cpu_rm_data *mem, unsigned int cpu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_cpu_rm_data
      Src: /src/xen/xen/common/sched/core.c:3324,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:3328,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3330,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3332,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3333,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3334,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:3334,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/core.c:3335,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/core.c:3335,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:3338,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:3340,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/core.c:3347,1
    - Dst: sched_unit_add_vcpu
      Src: /src/xen/xen/common/sched/core.c:3356,1
    - Dst: sched_domain_insert_unit
      Src: /src/xen/xen/common/sched/core.c:3357,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/core.c:3360,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/core.c:3361,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/core.c:3362,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/core.c:3365,1
    - Dst: set_sched_res
      Src: /src/xen/xen/common/sched/core.c:3369,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/sched/core.c:3372,1
    - Dst: smp_mb
      Src: /src/xen/xen/common/sched/core.c:3383,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:3387,1
    - Dst: sched_deinit_pdata
      Src: /src/xen/xen/common/sched/core.c:3389,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:3391,1
    - Dst: free_cpu_rm_data
      Src: /src/xen/xen/common/sched/core.c:3393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 2
    argNames:
    - cpu
    - data
    argTypes:
    - unsigned int
    - struct cpu_rm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3313
    functionDepth: 4
    functionLinenumber: 3313
    functionLinenumberEnd: 3396
    functionName: schedule_cpu_rm
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - smp_mb
    - for_each_cpu
    - sched_domain_insert_unit
    - spin_unlock_irqrestore
    - free_cpu_rm_data
    - sched_unit_add_vcpu
    - cpumask_test_cpu
    - rcu_read_unlock
    - alloc_cpu_rm_data
    - cpumask_clear_cpu
    - ASSERT
    - rcu_read_lock
    - init_timer
    - get_sched_res
    - set_sched_res
    - sched_deinit_pdata
    - cpumask_set_cpu
    - pcpu_schedule_lock_irqsave
    linkageType: ''
    returnType: int
    signature: int schedule_cpu_rm(unsigned int cpu, struct cpu_rm_data *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3342
    functionDepth: 0
    functionLinenumber: 3342
    functionLinenumberEnd: 3342
    functionName: per_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 179
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void per_cpu(sched_res_idx, cpu_iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3398
    functionDepth: 0
    functionLinenumber: 3398
    functionLinenumberEnd: 3401
    functionName: scheduler_get_default
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *scheduler_get_default(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/core.c:3412,1
    - Dst: xmalloc
      Src: /src/xen/xen/common/sched/core.c:3415,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/core.c:3416,1
    - Dst: memcpy
      Src: /src/xen/xen/common/sched/core.c:3417,1
    - Dst: sched_init
      Src: /src/xen/xen/common/sched/core.c:3418,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:3420,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/core.c:3421,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - sched_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3403
    functionDepth: 0
    functionLinenumber: 3403
    functionLinenumberEnd: 3425
    functionName: scheduler_alloc
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - ERR_PTR
    - sched_init
    - xfree
    - memcpy
    linkageType: ''
    returnType: struct scheduler
    signature: struct scheduler *scheduler_alloc(unsigned int sched_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/core.c:3429,1
    - Dst: sched_deinit
      Src: /src/xen/xen/common/sched/core.c:3430,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/core.c:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sched
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3427
    functionDepth: 1
    functionLinenumber: 3427
    functionLinenumberEnd: 3432
    functionName: scheduler_free
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - sched_deinit
    - xfree
    linkageType: ''
    returnType: void
    signature: void scheduler_free(struct scheduler *sched)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/core.c:3442,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3448,1
    - Dst: sched_dump_settings
      Src: /src/xen/xen/common/sched/core.c:3449,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3457,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3460,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:3464,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3466,1
    - Dst: get_cpu_current
      Src: /src/xen/xen/common/sched/core.c:3467,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:3469,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3471,1
    - Dst: get_cpu_current
      Src: /src/xen/xen/common/sched/core.c:3471,1
    - Dst: pcpu_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:3473,1
    - Dst: sched_dump_cpu_state
      Src: /src/xen/xen/common/sched/core.c:3475,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/core.c:3478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3479
      start: 3434
    functionDepth: 3
    functionLinenumber: 3434
    functionLinenumberEnd: 3479
    functionName: schedule_dump
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - rcu_read_unlock
    - get_sched_res
    - sched_dump_settings
    - sched_dump_cpu_state
    - printk
    - get_cpu_current
    - pcpu_schedule_lock_irqsave
    - pcpu_schedule_unlock_irqrestore
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void schedule_dump(struct cpupool *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/core.c:3460,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/core.c:3464,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3466,1
    - Dst: get_cpu_current
      Src: /src/xen/xen/common/sched/core.c:3467,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/core.c:3469,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/core.c:3471,1
    - Dst: get_cpu_current
      Src: /src/xen/xen/common/sched/core.c:3471,1
    - Dst: pcpu_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/core.c:3473,1
    - Dst: sched_dump_cpu_state
      Src: /src/xen/xen/common/sched/core.c:3475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3476
      start: 3458
    functionDepth: 1
    functionLinenumber: 3458
    functionLinenumberEnd: 3476
    functionName: for_each_cpu
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 26
    functionsReached:
    - for_each_cpu
    - get_sched_res
    - sched_dump_cpu_state
    - printk
    - get_cpu_current
    - pcpu_schedule_lock_irqsave
    - pcpu_schedule_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void for_each_cpu (i, cpus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: schedule
      Src: /src/xen/xen/common/sched/core.c:3483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3481
    functionDepth: 12
    functionLinenumber: 3481
    functionLinenumberEnd: 3484
    functionName: wait
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 29
    functionsReached:
    - schedule
    linkageType: ''
    returnType: void
    signature: void wait(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_create
      Src: /src/xen/xen/common/sched/core.c:3492,1
    - Dst: domain_update_node_affinity
      Src: /src/xen/xen/common/sched/core.c:3494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3487
    functionDepth: 2
    functionLinenumber: 3487
    functionLinenumberEnd: 3495
    functionName: sched_setup_dom0_vcpus
    functionSourceFile: /src/xen/xen/common/sched/core.c
    functionUses: 2
    functionsReached:
    - vcpu_create
    - domain_update_node_affinity
    linkageType: ''
    returnType: void
    signature: void sched_setup_dom0_vcpus(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_dereference
      Src: /src/xen/xen/common/sched/private.h:68,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/private.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: get_sched_res
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 49
    functionsReached:
    - rcu_dereference
    - per_cpu
    linkageType: ''
    returnType: struct sched_resource
    signature: struct sched_resource *get_sched_res(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rcu_assign_pointer
      Src: /src/xen/xen/common/sched/private.h:73,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/private.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpu
    - res
    argTypes:
    - unsigned int
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: set_sched_res
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 5
    functionsReached:
    - rcu_assign_pointer
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void set_sched_res(unsigned int cpu, struct sched_resource *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: curr_on_cpu
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 12
    functionsReached:
    - get_sched_res
    linkageType: ''
    returnType: struct sched_unit
    signature: struct sched_unit *curr_on_cpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/private.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: is_idle_unit
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 32
    functionsReached:
    - is_idle_vcpu
    linkageType: ''
    returnType: bool
    signature: bool is_idle_unit(const struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:91,1
    - Dst: is_vcpu_online
      Src: /src/xen/xen/common/sched/private.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: is_unit_online
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached:
    - for_each_sched_unit_vcpu
    - is_vcpu_online
    linkageType: ''
    returnType: bool
    signature: bool is_unit_online(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: unit_running
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int unit_running(const struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:108,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/private.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: unit_runnable
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 9
    functionsReached:
    - for_each_sched_unit_vcpu
    - vcpu_runnable
    linkageType: ''
    returnType: bool
    signature: bool unit_runnable(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: vcpu_runstate_blocked
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vcpu_runstate_blocked(const struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/private.h:132,1
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/private.h:137,1
    - Dst: vcpu_runstate_blocked
      Src: /src/xen/xen/common/sched/private.h:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 146
    functionName: unit_runnable_state
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - is_idle_unit
    - vcpu_runstate_blocked
    - vcpu_runnable
    linkageType: ''
    returnType: bool
    signature: bool unit_runnable_state(const struct sched_unit *unit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vcpu_runnable
      Src: /src/xen/xen/common/sched/private.h:137,1
    - Dst: vcpu_runstate_blocked
      Src: /src/xen/xen/common/sched/private.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 6
    functionsReached:
    - vcpu_runnable
    - vcpu_runstate_blocked
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/private.h:151,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/private.h:156,1
    - Dst: cpumask_next
      Src: /src/xen/xen/common/sched/private.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - unit
    - res
    argTypes:
    - struct sched_unit*
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: sched_set_res
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 8
    functionsReached:
    - ASSERT
    - cpumask_next
    - cpumask_first
    linkageType: ''
    returnType: void
    signature: "void sched_set_res(struct sched_unit *unit,\n                                 struct
      sched_resource *res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/private.h:156,1
    - Dst: cpumask_next
      Src: /src/xen/xen/common/sched/private.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: for_each_sched_unit_vcpu
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 6
    functionsReached:
    - ASSERT
    - cpumask_next
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit_vcpu ( unit, v )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: sched_unit_master
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sched_unit_master(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:176,1
    - Dst: set_bit
      Src: /src/xen/xen/common/sched/private.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unit
    - bit
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: sched_set_pause_flags
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - for_each_sched_unit_vcpu
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void sched_set_pause_flags(struct sched_unit *unit,\n                                         unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:186,1
    - Dst: clear_bit
      Src: /src/xen/xen/common/sched/private.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - unit
    - bit
    argTypes:
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: sched_clear_pause_flags
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached:
    - for_each_sched_unit_vcpu
    - clear_bit
    linkageType: ''
    returnType: void
    signature: "void sched_clear_pause_flags(struct sched_unit *unit,\n                                           unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: sched_idle_unit
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 6
    functionsReached:
    - get_sched_res
    linkageType: ''
    returnType: struct sched_unit
    signature: struct sched_unit *sched_idle_unit(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: sched_get_resource_cpu
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - get_sched_res
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sched_get_resource_cpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: cpumask_scratch_cpu
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpumask_scratch_cpu(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lock
    - ','
    - irq
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: _sched_spinlock0
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sched_spinlock0(lock, irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - lock
    - ','
    - irq
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 220
    functionName: _sched_spinlock1
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sched_spinlock1(lock, irq, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: _sched_spinlock__
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sched_spinlock__(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: _sched_spinlock_
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sched_spinlock_(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - lock
    - ','
    - irq
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: _sched_spinlock
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _sched_spinlock(lock, irq, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - kind
    - ','
    - param
    - ','
    - cpu
    - ','
    - irq
    - ','
    - arg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 243
    functionName: sched_lock
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sched_lock(kind, param, cpu, irq, arg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 12
    argNames:
    - (
    - kind
    - ','
    - param
    - ','
    - cpu
    - ','
    - irq
    - ','
    - arg
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: sched_unlock
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sched_unlock(kind, param, cpu, irq, arg...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:287,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/sched/private.h:289,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:291,1
    - Dst: init
      Src: /src/xen/xen/common/sched/private.h:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 372
    functionName: sched_lock
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached:
    - init
    - spin_trylock
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: "void sched_lock(pcpu, unsigned int cpu,     cpu, )\nsched_lock(unit,
      const struct sched_unit *i, i->res->master_cpu, )\nsched_lock(pcpu, unsigned
      int cpu,     cpu,          _irq)\nsched_lock(unit, const struct sched_unit *i,
      i->res->master_cpu, _irq)\nsched_unlock(pcpu, unsigned int cpu,     cpu, )\nsched_unlock(unit,
      const struct sched_unit *i, i->res->master_cpu, )\nsched_unlock(pcpu, unsigned
      int cpu,     cpu,          _irq)\nsched_unlock(unit, const struct sched_unit
      *i, i->res->master_cpu, _irq)\n#undef EXTRA_TYPE\n\n#define EXTRA_TYPE(arg)
      , unsigned long arg\n#define spin_unlock_irqsave spin_unlock_irqrestore\nsched_lock(pcpu,
      unsigned int cpu,     cpu,          _irqsave, *flags)\nsched_lock(unit, const
      struct sched_unit *i, i->res->master_cpu, _irqsave, *flags)\n#undef spin_unlock_irqsave\nsched_unlock(pcpu,
      unsigned int cpu,     cpu,          _irqrestore, flags)\nsched_unlock(unit,
      const struct sched_unit *i, i->res->master_cpu, _irqrestore, flags)\n#undef
      EXTRA_TYPE\n\n#undef sched_unlock\n#undef sched_lock\n\nstatic inline spinlock_t
      *pcpu_schedule_trylock(unsigned int cpu)\n{\n    spinlock_t *lock = get_sched_res(cpu)->schedule_lock;\n\n
      \   if ( !spin_trylock(lock) )\n        return NULL;\n    if ( lock == get_sched_res(cpu)->schedule_lock
      )\n        return lock;\n    spin_unlock(lock);\n    return NULL;\n}\n\nstruct
      scheduler {\n    const char *name;       /* full name for this scheduler      */\n
      \   const char *opt_name;   /* option name for this scheduler    */\n    unsigned
      int sched_id;  /* ID for this scheduler             */\n    void *sched_data;
      \      /* global data pointer               */\n    struct cpupool *cpupool;/*
      points to this scheduler's pool   */\n\n    int          (*global_init)    (void);\n\n
      \   int          (*init)           (struct scheduler *ops);\n    void         (*deinit)
      \        (struct scheduler *ops);\n\n    void         (*free_udata)     (const
      struct scheduler *ops, void *priv);\n    void *       (*alloc_udata)    (const
      struct scheduler *ops,\n                                    struct sched_unit
      *unit, void *dd);\n\n    void         (*free_pdata)     (const struct scheduler
      *ops,\n                                    void *pcpu, int cpu);\n    void *
      \      (*alloc_pdata)    (const struct scheduler *ops, int cpu);\n    void         (*deinit_pdata)
      \  (const struct scheduler *ops,\n                                    void *pcpu,
      int cpu);\n\n    /* Returns ERR_PTR(-err) for error, NULL for 'nothing needed'.
      */\n    void *       (*alloc_domdata)  (const struct scheduler *ops,\n                                    struct
      domain *dom);\n    /* Idempotent. */\n    void         (*free_domdata)   (const
      struct scheduler *ops, void *data);\n\n    spinlock_t * (*switch_sched)   (struct
      scheduler *new_ops, unsigned int cpu,\n                                    void
      *pdata, void *vdata);\n\n    /* Activate / deactivate units in a cpu pool */\n
      \   void         (*insert_unit)    (const struct scheduler *ops,\n                                    struct
      sched_unit *unit);\n    void         (*remove_unit)    (const struct scheduler
      *ops,\n                                    struct sched_unit *unit);\n\n    void
      \        (*sleep)          (const struct scheduler *ops,\n                                    struct
      sched_unit *unit);\n    void         (*wake)           (const struct scheduler
      *ops,\n                                    struct sched_unit *unit);\n    void
      \        (*yield)          (const struct scheduler *ops,\n                                    struct
      sched_unit *unit);\n    void         (*context_saved)  (const struct scheduler
      *ops,\n                                    struct sched_unit *unit);\n\n    void
      \        (*do_schedule)    (const struct scheduler *ops,\n                                    struct
      sched_unit *currunit, s_time_t now,\n                                    bool
      tasklet_work_scheduled);\n\n    struct sched_resource *(*pick_resource)(const
      struct scheduler *ops,\n                                            const struct
      sched_unit *unit);\n    void         (*migrate)        (const struct scheduler
      *ops,\n                                    struct sched_unit *unit,\n                                    unsigned
      int new_cpu);\n    int          (*adjust)         (const struct scheduler *ops,\n
      \                                   struct domain *d,\n                                    struct
      xen_domctl_scheduler_op *op);\n    void         (*adjust_affinity)(const struct
      scheduler *ops,\n                                    struct sched_unit *unit,\n
      \                                   const struct cpumask *hard,\n                                    const
      struct cpumask *soft);\n#ifdef CONFIG_SYSCTL\n    int          (*adjust_global)
      \ (const struct scheduler *ops,\n                                    struct
      xen_sysctl_scheduler_op *sc);\n#endif\n    void         (*dump_settings)  (const
      struct scheduler *ops);\n    void         (*dump_cpu_state) (const struct scheduler
      *ops, int cpu);\n    void         (*move_timers)    (const struct scheduler
      *ops,\n                                    struct sched_resource *sr);\n};\n\nstatic
      inline int sched_init(struct scheduler *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::deinit
      Src: /src/xen/xen/common/sched/private.h:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: sched_deinit
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::deinit
    linkageType: ''
    returnType: void
    signature: void sched_deinit(struct scheduler *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::switch_sched
      Src: /src/xen/xen/common/sched/private.h:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: sched_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::switch_sched
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *sched_switch_sched(struct scheduler *s,\n                                             unsigned
      int cpu,\n                                             void *pdata, void *vdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::dump_settings
      Src: /src/xen/xen/common/sched/private.h:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: sched_dump_settings
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::dump_settings
    linkageType: ''
    returnType: void
    signature: void sched_dump_settings(const struct scheduler *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::dump_cpu_state
      Src: /src/xen/xen/common/sched/private.h:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 396
    functionName: sched_dump_cpu_state
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 2
    functionsReached:
    - struct scheduler*::dump_cpu_state
    linkageType: ''
    returnType: void
    signature: void sched_dump_cpu_state(const struct scheduler *s, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::alloc_domdata
      Src: /src/xen/xen/common/sched/private.h:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - d
    argTypes:
    - struct scheduler*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: sched_alloc_domdata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 2
    functionsReached:
    - struct scheduler*::alloc_domdata
    linkageType: ''
    returnType: void
    signature: "void *sched_alloc_domdata(const struct scheduler *s,\n                                        struct
      domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/private.h:407,1
    - Dst: struct scheduler*::free_domdata
      Src: /src/xen/xen/common/sched/private.h:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: sched_free_domdata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 2
    functionsReached:
    - ASSERT
    - struct scheduler*::free_domdata
    linkageType: ''
    returnType: void
    signature: "void sched_free_domdata(const struct scheduler *s,\n                                      void
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::alloc_pdata
      Src: /src/xen/xen/common/sched/private.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: sched_alloc_pdata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::alloc_pdata
    linkageType: ''
    returnType: void
    signature: void *sched_alloc_pdata(const struct scheduler *s, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/private.h:420,1
    - Dst: struct scheduler*::free_pdata
      Src: /src/xen/xen/common/sched/private.h:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - s
    - data
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: sched_free_pdata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 2
    functionsReached:
    - struct scheduler*::free_pdata
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void sched_free_pdata(const struct scheduler *s, void *data,\n                                    int
      cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::deinit_pdata
      Src: /src/xen/xen/common/sched/private.h:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - s
    - data
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: sched_deinit_pdata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::deinit_pdata
    linkageType: ''
    returnType: void
    signature: "void sched_deinit_pdata(const struct scheduler *s, void *data,\n                                      int
      cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::alloc_udata
      Src: /src/xen/xen/common/sched/private.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - unit
    - dom_data
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: sched_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - struct scheduler*::alloc_udata
    linkageType: ''
    returnType: void
    signature: "void *sched_alloc_udata(const struct scheduler *s,\n                                      struct
      sched_unit *unit, void *dom_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::free_udata
      Src: /src/xen/xen/common/sched/private.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: sched_free_udata
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - struct scheduler*::free_udata
    linkageType: ''
    returnType: void
    signature: void sched_free_udata(const struct scheduler *s, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::insert_unit
      Src: /src/xen/xen/common/sched/private.h:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: sched_insert_unit
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - struct scheduler*::insert_unit
    linkageType: ''
    returnType: void
    signature: "void sched_insert_unit(const struct scheduler *s,\n                                     struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::remove_unit
      Src: /src/xen/xen/common/sched/private.h:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: sched_remove_unit
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 3
    functionsReached:
    - struct scheduler*::remove_unit
    linkageType: ''
    returnType: void
    signature: "void sched_remove_unit(const struct scheduler *s,\n                                     struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::sleep
      Src: /src/xen/xen/common/sched/private.h:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 462
    functionName: sched_sleep
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::sleep
    linkageType: ''
    returnType: void
    signature: "void sched_sleep(const struct scheduler *s,\n                               struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::wake
      Src: /src/xen/xen/common/sched/private.h:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: sched_wake
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::wake
    linkageType: ''
    returnType: void
    signature: "void sched_wake(const struct scheduler *s,\n                              struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::yield
      Src: /src/xen/xen/common/sched/private.h:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: sched_yield
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::yield
    linkageType: ''
    returnType: void
    signature: "void sched_yield(const struct scheduler *s,\n                               struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::context_saved
      Src: /src/xen/xen/common/sched/private.h:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: sched_context_saved
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::context_saved
    linkageType: ''
    returnType: void
    signature: "void sched_context_saved(const struct scheduler *s,\n                                       struct
      sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::migrate
      Src: /src/xen/xen/common/sched/private.h:489,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/private.h:491,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/private.h:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - unit
    - cpu
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 492
    functionName: sched_migrate
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::migrate
    - sched_set_res
    - get_sched_res
    linkageType: ''
    returnType: void
    signature: "void sched_migrate(const struct scheduler *s,\n                                 struct
      sched_unit *unit, unsigned int cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::pick_resource
      Src: /src/xen/xen/common/sched/private.h:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: sched_pick_resource
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::pick_resource
    linkageType: ''
    returnType: struct sched_resource
    signature: "struct sched_resource *sched_pick_resource(\n    const struct scheduler
      *s, const struct sched_unit *unit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::adjust_affinity
      Src: /src/xen/xen/common/sched/private.h:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - s
    - unit
    - hard
    - soft
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    functionName: sched_adjust_affinity
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::adjust_affinity
    linkageType: ''
    returnType: void
    signature: "void sched_adjust_affinity(const struct scheduler *s,\n                                         struct
      sched_unit *unit,\n                                         const cpumask_t
      *hard,\n                                         const cpumask_t *soft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::adjust
      Src: /src/xen/xen/common/sched/private.h:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - d
    - op
    argTypes:
    - struct scheduler*
    - struct domain*
    - struct xen_domctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: sched_adjust_dom
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::adjust
    linkageType: ''
    returnType: int
    signature: "int sched_adjust_dom(const struct scheduler *s, struct domain *d,\n
      \                                  struct xen_domctl_scheduler_op *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::adjust_global
      Src: /src/xen/xen/common/sched/private.h:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - op
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: sched_adjust_cpupool
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::adjust_global
    linkageType: ''
    returnType: int
    signature: "int sched_adjust_cpupool(const struct scheduler *s,\n                                       struct
      xen_sysctl_scheduler_op *op)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct scheduler*::move_timers
      Src: /src/xen/xen/common/sched/private.h:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - sr
    argTypes:
    - struct scheduler*
    - struct sched_resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 528
    functionName: sched_move_timers
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - struct scheduler*::move_timers
    linkageType: ''
    returnType: void
    signature: "void sched_move_timers(const struct scheduler *s,\n                                     struct
      sched_resource *sr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:534,1
    - Dst: vcpu_pause_nosync
      Src: /src/xen/xen/common/sched/private.h:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 536
    functionName: sched_unit_pause_nosync
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 1
    functionsReached:
    - for_each_sched_unit_vcpu
    - vcpu_pause_nosync
    linkageType: ''
    returnType: void
    signature: void sched_unit_pause_nosync(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_sched_unit_vcpu
      Src: /src/xen/xen/common/sched/private.h:542,1
    - Dst: vcpu_unpause
      Src: /src/xen/xen/common/sched/private.h:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 544
    functionName: sched_unit_unpause
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 2
    functionsReached:
    - for_each_sched_unit_vcpu
    - vcpu_unpause
    linkageType: ''
    returnType: void
    signature: void sched_unit_unpause(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: REGISTER_SCHEDULER
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_SCHEDULER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/private.h:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 572
    functionName: cpupool_domain_master_cpumask
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 10
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: cpumask_t
    signature: cpumask_t *cpupool_domain_master_cpumask(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_affinity_balance_step(step)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/private.h:613,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/private.h:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: has_soft_affinity
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 5
    functionsReached:
    - cpupool_domain_master_cpumask
    - cpumask_subset
    linkageType: ''
    returnType: bool
    signature: bool has_soft_affinity(const struct sched_unit *unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/private.h:629,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/private.h:631,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/private.h:631,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/private.h:632,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/private.h:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - unit
    - step
    - mask
    argTypes:
    - struct sched_unit*
    - int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 636
    functionName: affinity_balance_cpumask
    functionSourceFile: /src/xen/xen/common/sched/private.h
    functionUses: 5
    functionsReached:
    - cpumask_empty
    - cpumask_and
    - cpumask_copy
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void affinity_balance_cpumask(const struct sched_unit *unit, int step,\n
      \                        cpumask_t *mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_physical_id
      Src: /src/xen/xen/common/sched/boot-cpupool.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hwid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 40
    functionName: get_logical_cpu_from_hw_id
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - cpu_physical_id
    linkageType: ''
    returnType: int
    signature: int get_logical_cpu_from_hw_id(unsigned int hwid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dt_get_property
      Src: /src/xen/xen/common/sched/boot-cpupool.c:49,1
    - Dst: dt_read_number
      Src: /src/xen/xen/common/sched/boot-cpupool.c:53,1
    - Dst: dt_n_addr_cells
      Src: /src/xen/xen/common/sched/boot-cpupool.c:53,1
    - Dst: get_logical_cpu_from_hw_id
      Src: /src/xen/xen/common/sched/boot-cpupool.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cpu_node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 42
    functionDepth: 5
    functionLinenumber: 42
    functionLinenumberEnd: 60
    functionName: get_logical_cpu_from_cpu_node
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - dt_read_number
    - get_logical_cpu_from_hw_id
    - dt_n_addr_cells
    - dt_get_property
    linkageType: ''
    returnType: int
    signature: int get_logical_cpu_from_cpu_node(const struct dt_device_node *cpu_node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/sched/boot-cpupool.c:67,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/sched/boot-cpupool.c:73,1
    - Dst: get_logical_cpu_from_cpu_node
      Src: /src/xen/xen/common/sched/boot-cpupool.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: btcpupools_get_domain_pool_id
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 1
    functionsReached:
    - dt_device_is_compatible
    - dt_parse_phandle
    - get_logical_cpu_from_cpu_node
    linkageType: ''
    returnType: int
    signature: int btcpupools_get_domain_pool_id(const struct dt_device_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_id_by_name
      Src: /src/xen/xen/common/sched/boot-cpupool.c:86,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - scheduler_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: check_and_get_sched_id
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - panic
    - sched_get_id_by_name
    linkageType: ''
    returnType: int
    signature: int check_and_get_sched_id(const char* scheduler_name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/common/sched/boot-cpupool.c:101,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:103,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/sched/boot-cpupool.c:112,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/sched/boot-cpupool.c:115,1
    - Dst: check_and_get_sched_id
      Src: /src/xen/xen/common/sched/boot-cpupool.c:116,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/sched/boot-cpupool.c:118,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:120,1
    - Dst: get_logical_cpu_from_cpu_node
      Src: /src/xen/xen/common/sched/boot-cpupool.c:126,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:129,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/sched/boot-cpupool.c:130,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:133,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/sched/boot-cpupool.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 94
    functionDepth: 6
    functionLinenumber: 94
    functionLinenumberEnd: 146
    functionName: btcpupools_dtb_parse
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - dt_parse_phandle
    - dt_node_name
    - panic
    - dt_property_read_string
    - check_and_get_sched_id
    - get_logical_cpu_from_cpu_node
    - dt_device_is_compatible
    - dt_find_node_by_path
    linkageType: ''
    returnType: void
    signature: void btcpupools_dtb_parse(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/common/sched/boot-cpupool.c:112,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/common/sched/boot-cpupool.c:115,1
    - Dst: check_and_get_sched_id
      Src: /src/xen/xen/common/sched/boot-cpupool.c:116,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/sched/boot-cpupool.c:118,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:120,1
    - Dst: get_logical_cpu_from_cpu_node
      Src: /src/xen/xen/common/sched/boot-cpupool.c:126,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:129,1
    - Dst: dt_node_name
      Src: /src/xen/xen/common/sched/boot-cpupool.c:130,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:133,1
    - Dst: dt_parse_phandle
      Src: /src/xen/xen/common/sched/boot-cpupool.c:137,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 105
    functionDepth: 6
    functionLinenumber: 105
    functionLinenumberEnd: 145
    functionName: dt_for_each_child_node
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - dt_parse_phandle
    - panic
    - dt_property_read_string
    - check_and_get_sched_id
    - get_logical_cpu_from_cpu_node
    - dt_device_is_compatible
    - dt_node_name
    linkageType: ''
    returnType: void
    signature: void dt_for_each_child_node(chosen, node)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/boot-cpupool.c:164,1
    - Dst: panic
      Src: /src/xen/xen/common/sched/boot-cpupool.c:192,1
    - Dst: cpupool_create_pool
      Src: /src/xen/xen/common/sched/boot-cpupool.c:210,1
    - Dst: cpupool_create_pool
      Src: /src/xen/xen/common/sched/boot-cpupool.c:214,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 215
    functionName: btcpupools_allocate_pools
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - panic
    - cpumask_test_cpu
    - cpupool_create_pool
    linkageType: ''
    returnType: void
    signature: void btcpupools_allocate_pools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/boot-cpupool.c:219,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/boot-cpupool.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: btcpupools_get_cpupool_id
    functionSourceFile: /src/xen/xen/common/sched/boot-cpupool.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - printk
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int btcpupools_get_cpupool_id(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XLAT_sched_poll
      Src: /src/xen/xen/common/sched/compat.c:35,1
    - Dst: do_poll
      Src: /src/xen/xen/common/sched/compat.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - compat
    argTypes:
    - struct compat_sched_poll*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 7
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: compat_poll
    functionSourceFile: /src/xen/xen/common/sched/compat.c
    functionUses: 0
    functionsReached:
    - do_poll
    - XLAT_sched_poll
    linkageType: ''
    returnType: int
    signature: int compat_poll(const struct compat_sched_poll *compat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d_
    - ','
    - _s_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: XLAT_sched_poll_HNDL_ports
    functionSourceFile: /src/xen/xen/common/sched/compat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XLAT_sched_poll_HNDL_ports(_d_, _s_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_set_timer_op
      Src: /src/xen/xen/common/sched/compat.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: compat_set_timer_op
    functionSourceFile: /src/xen/xen/common/sched/compat.c
    functionUses: 0
    functionsReached:
    - do_set_timer_op
    linkageType: ''
    returnType: int
    signature: int compat_set_timer_op(uint32_t lo, uint32_t hi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/sched/cpupool.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum sched_gran
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: sched_gran_get_name
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: char *sched_gran_get_name(enum sched_gran mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:77,1
    - Dst: sched_gran_get_name
      Src: /src/xen/xen/common/sched/cpupool.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - gran
    argTypes:
    - enum sched_gran
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: sched_gran_print
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_gran_get_name
    - printk
    linkageType: ''
    returnType: void
    signature: void sched_gran_print(enum sched_gran mode, unsigned int gran)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/sched/cpupool.c:86,1
    - Dst: strcmp
      Src: /src/xen/xen/common/sched/cpupool.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - mode
    argTypes:
    - char*
    - enum sched_gran*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: sched_gran_get
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int sched_gran_get(const char *str, enum sched_gran *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_gran_get
      Src: /src/xen/xen/common/sched/cpupool.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: sched_select_granularity
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_gran_get
    linkageType: ''
    returnType: int
    signature: int sched_select_granularity(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - mode
    argTypes:
    - char*
    - enum sched_gran*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: sched_gran_get
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sched_gran_get(const char *str, enum sched_gran *mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:121,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - enum sched_gran
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: cpupool_check_granularity
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - cpumask_weight
    - sched_get_opt_cpumask
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpupool_check_granularity(enum sched_gran mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:121,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: for_each_online_cpu
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 12
    functionsReached:
    - cpumask_weight
    - sched_get_opt_cpumask
    linkageType: ''
    returnType: void
    signature: void for_each_online_cpu ( cpu )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_check_granularity
      Src: /src/xen/xen/common/sched/cpupool.c:139,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/sched/cpupool.c:156,1
    - Dst: warning_add
      Src: /src/xen/xen/common/sched/cpupool.c:163,1
    - Dst: sched_gran_print
      Src: /src/xen/xen/common/sched/cpupool.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 170
    functionName: cpupool_gran_init
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_gran_print
    - warning_add
    - ASSERT_UNREACHABLE
    - cpupool_check_granularity
    linkageType: ''
    returnType: void
    signature: void cpupool_gran_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: cpupool_get_granularity
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpupool_get_granularity(const struct cpupool *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/cpupool.c:181,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/common/sched/cpupool.c:182,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/cpupool.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: free_cpupool_struct
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - free_cpumask_var
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_cpupool_struct(struct cpupool *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/cpupool.c:189,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/cpupool.c:194,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/common/sched/cpupool.c:195,1
    - Dst: free_cpupool_struct
      Src: /src/xen/xen/common/sched/cpupool.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: alloc_cpupool_struct
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - zalloc_cpumask_var
    - free_cpupool_struct
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *alloc_cpupool_struct(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:214,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/cpupool.c:214,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - id
    - exact
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: __cpupool_find_by_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_for_each_entry
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *__cpupool_find_by_id(unsigned int id, bool exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: cpupool_find_by_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - __cpupool_find_by_id
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *cpupool_find_by_id(unsigned int poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:231,1
    - Dst: __cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:232,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/cpupool.c:234,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - poolid
    - exact
    argTypes:
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: __cpupool_get_by_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - __cpupool_find_by_id
    - atomic_inc
    - spin_unlock
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *__cpupool_get_by_id(unsigned int poolid, bool exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpupool_get_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: cpupool_get_by_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 2
    functionsReached:
    - __cpupool_get_by_id
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *cpupool_get_by_id(unsigned int poolid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpupool_get_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poolid
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: cpupool_get_next_by_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - __cpupool_get_by_id
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *cpupool_get_next_by_id(unsigned int poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/common/sched/cpupool.c:253,1
    - Dst: scheduler_free
      Src: /src/xen/xen/common/sched/cpupool.c:255,1
    - Dst: free_cpupool_struct
      Src: /src/xen/xen/common/sched/cpupool.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: cpupool_put
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - atomic_dec_and_test
    - free_cpupool_struct
    - scheduler_free
    linkageType: ''
    returnType: void
    signature: void cpupool_put(struct cpupool *pool)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: alloc_cpupool_struct
      Src: /src/xen/xen/common/sched/cpupool.c:274,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/cpupool.c:275,1
    - Dst: atomic_set
      Src: /src/xen/xen/common/sched/cpupool.c:278,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:280,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:282,1
    - Dst: __cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:294,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/cpupool.c:296,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/cpupool.c:299,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:312,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/cpupool.c:312,1
    - Dst: list_last_entry
      Src: /src/xen/xen/common/sched/cpupool.c:314,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:318,1
    - Dst: list_next_entry
      Src: /src/xen/xen/common/sched/cpupool.c:319,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/cpupool.c:323,1
    - Dst: scheduler_alloc
      Src: /src/xen/xen/common/sched/cpupool.c:328,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/cpupool.c:329,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/sched/cpupool.c:331,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:339,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:341,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/cpupool.c:347,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:351,1
    - Dst: free_cpupool_struct
      Src: /src/xen/xen/common/sched/cpupool.c:353,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/cpupool.c:355,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 2
    argNames:
    - poolid
    - sched_id
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 356
    functionName: cpupool_create
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 4
    functionsReached:
    - atomic_set
    - __cpupool_find_by_id
    - free_cpupool_struct
    - debugtrace_printk
    - spin_lock
    - list_del
    - list_last_entry
    - spin_unlock
    - ASSERT
    - scheduler_alloc
    - list_next_entry
    - list_for_each_entry
    - list_empty
    - IS_ERR
    - ERR_PTR
    - alloc_cpupool_struct
    - PTR_ERR
    - list_add
    - list_add_tail
    linkageType: ''
    returnType: struct cpupool
    signature: "struct cpupool *cpupool_create(unsigned int poolid,\n                                      unsigned
      int sched_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:367,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:369,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:371,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/cpupool.c:376,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:378,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:380,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 384
    functionName: cpupool_destroy
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 4
    functionsReached:
    - spin_unlock
    - debugtrace_printk
    - spin_lock
    - list_del
    - cpupool_put
    - cpumask_weight
    linkageType: ''
    returnType: int
    signature: int cpupool_destroy(struct cpupool *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/cpupool.c:394,1
    - Dst: sched_move_domain
      Src: /src/xen/xen/common/sched/cpupool.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - d
    - c
    argTypes:
    - struct domain*
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 390
    functionDepth: 7
    functionLinenumber: 390
    functionLinenumberEnd: 405
    functionName: cpupool_move_domain_locked
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_move_domain
    - unlikely
    linkageType: ''
    returnType: int
    signature: int cpupool_move_domain_locked(struct domain *d, struct cpupool *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:410,1
    - Dst: cpupool_move_domain_locked
      Src: /src/xen/xen/common/sched/cpupool.c:412,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - c
    argTypes:
    - struct domain*
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 8
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: cpupool_move_domain
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 2
    functionsReached:
    - spin_lock
    - cpupool_move_domain_locked
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int cpupool_move_domain(struct domain *d, struct cpupool *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloc_affinity_masks
      Src: /src/xen/xen/common/sched/cpupool.c:428,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:433,1
    - Dst: for_each_domain_in_cpupool
      Src: /src/xen/xen/common/sched/cpupool.c:435,1
    - Dst: domain_update_node_aff
      Src: /src/xen/xen/common/sched/cpupool.c:436,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:438,1
    - Dst: free_affinity_masks
      Src: /src/xen/xen/common/sched/cpupool.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - masks
    argTypes:
    - struct cpupool*
    - struct affinity_masks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 442
    functionName: cpupool_update_node_affinity
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - alloc_affinity_masks
    - rcu_read_unlock
    - domain_update_node_aff
    - free_affinity_masks
    - for_each_domain_in_cpupool
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: "void cpupool_update_node_affinity(const struct cpupool *c,\n                                         struct
      affinity_masks *masks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:453,1
    - Dst: schedule_cpu_add
      Src: /src/xen/xen/common/sched/cpupool.c:457,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/cpupool.c:457,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:461,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/cpupool.c:463,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:467,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/cpupool.c:470,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/cpupool.c:471,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:473,1
    - Dst: cpupool_update_node_affinity
      Src: /src/xen/xen/common/sched/cpupool.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - struct cpupool*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 448
    functionDepth: 7
    functionLinenumber: 448
    functionLinenumberEnd: 478
    functionName: cpupool_assign_cpu_locked
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - schedule_cpu_add
    - rcu_read_unlock
    - sched_get_opt_cpumask
    - cpupool_update_node_affinity
    - cpumask_andnot
    - cpumask_or
    - cpumask_and
    - cpumask_first
    - cpupool_put
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: int cpupool_assign_cpu_locked(struct cpupool *c, unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:491,1
    - Dst: cpu_disable_scheduler
      Src: /src/xen/xen/common/sched/cpupool.c:492,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:493,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:495,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/cpupool.c:496,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/cpupool.c:497,1
    - Dst: schedule_cpu_rm
      Src: /src/xen/xen/common/sched/cpupool.c:508,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/cpupool.c:510,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:514,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:518,1
    - Dst: cpupool_update_node_affinity
      Src: /src/xen/xen/common/sched/cpupool.c:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - c
    - mem
    argTypes:
    - struct cpupool*
    - struct cpu_rm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 480
    functionDepth: 6
    functionLinenumber: 480
    functionLinenumberEnd: 523
    functionName: cpupool_unassign_cpu_finish
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - get_sched_res
    - cpupool_update_node_affinity
    - cpumask_andnot
    - cpumask_or
    - schedule_cpu_rm
    - cpupool_put
    - cpu_disable_scheduler
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: "int cpupool_unassign_cpu_finish(struct cpupool *c,\n                                       struct
      cpu_rm_data *mem)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:531,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:533,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:538,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/cpupool.c:539,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:542,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:542,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:545,1
    - Dst: cpupool_move_domain_locked
      Src: /src/xen/xen/common/sched/cpupool.c:553,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:557,1
    - Dst: atomic_inc
      Src: /src/xen/xen/common/sched/cpupool.c:562,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/cpupool.c:564,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/cpupool.c:565,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:568,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:570,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - struct cpupool*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 525
    functionDepth: 8
    functionLinenumber: 525
    functionLinenumberEnd: 573
    functionName: cpupool_unassign_cpu_start
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - rcu_read_unlock
    - get_sched_res
    - cpumask_andnot
    - spin_lock
    - cpumask_and
    - cpupool_move_domain_locked
    - atomic_inc
    - cpumask_weight
    - rcu_read_lock
    - cpumask_test_cpu
    linkageType: ''
    returnType: int
    signature: int cpupool_unassign_cpu_start(struct cpupool *c, unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_move_domain_locked
      Src: /src/xen/xen/common/sched/cpupool.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: for_each_domain_in_cpupool
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 2
    functionsReached:
    - cpupool_move_domain_locked
    linkageType: ''
    returnType: void
    signature: void for_each_domain_in_cpupool(d, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:581,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:583,1
    - Dst: cpupool_unassign_cpu_finish
      Src: /src/xen/xen/common/sched/cpupool.c:585,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:587,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 576
    functionDepth: 7
    functionLinenumber: 576
    functionLinenumberEnd: 591
    functionName: cpupool_unassign_cpu_helper
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - debugtrace_printk
    - spin_lock
    - spin_unlock
    - cpupool_unassign_cpu_finish
    linkageType: ''
    returnType: long cf_check
    signature: long cf_check cpupool_unassign_cpu_helper(void *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:612,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/sched/cpupool.c:620,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:623,1
    - Dst: cpupool_unassign_cpu_start
      Src: /src/xen/xen/common/sched/cpupool.c:624,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:627,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:632,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/cpupool.c:632,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/cpupool.c:635,1
    - Dst: cpumask_last
      Src: /src/xen/xen/common/sched/cpupool.c:637,1
    - Dst: continue_hypercall_on_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - c
    - cpu
    argTypes:
    - struct cpupool*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 606
    functionDepth: 9
    functionLinenumber: 606
    functionLinenumberEnd: 640
    functionName: cpupool_unassign_cpu
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - sched_get_resource_cpu
    - smp_processor_id
    - cpumask_last
    - debugtrace_printk
    - cpumask_first
    - continue_hypercall_on_cpu
    - cpupool_unassign_cpu_start
    linkageType: ''
    returnType: int
    signature: int cpupool_unassign_cpu(struct cpupool *c, unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:655,1
    - Dst: cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:656,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:659,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:668,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - d
    - poolid
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 672
    functionName: cpupool_add_domain
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - cpupool_find_by_id
    - debugtrace_printk
    - spin_lock
    - cpumask_weight
    linkageType: ''
    returnType: int
    signature: int cpupool_add_domain(struct domain *d, unsigned int poolid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:684,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:689,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 693
    functionName: cpupool_rm_domain
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - debugtrace_printk
    - spin_lock
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void cpupool_rm_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:704,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:705,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:706,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:714,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/cpupool.c:715,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:717,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/cpupool.c:718,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:719,1
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/cpupool.c:719,1
    - Dst: cpupool_assign_cpu_locked
      Src: /src/xen/xen/common/sched/cpupool.c:720,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:722,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 699
    functionDepth: 8
    functionLinenumber: 699
    functionLinenumberEnd: 727
    functionName: cpupool_cpu_add
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - rcu_read_unlock
    - get_sched_res
    - cpumask_weight
    - sched_get_opt_cpumask
    - cpupool_assign_cpu_locked
    - spin_lock
    - cpumask_set_cpu
    - cpupool_get_granularity
    - cpumask_clear_cpu
    - cpumask_subset
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: int cpupool_cpu_add(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:737,1
    - Dst: is_idle_vcpu
      Src: /src/xen/xen/common/sched/cpupool.c:737,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:739,1
    - Dst: cpupool_unassign_cpu_finish
      Src: /src/xen/xen/common/sched/cpupool.c:741,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/cpupool.c:742,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cpu
    - mem
    argTypes:
    - unsigned int
    - struct cpu_rm_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 733
    functionDepth: 7
    functionLinenumber: 733
    functionLinenumberEnd: 745
    functionName: cpupool_cpu_remove
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - is_idle_vcpu
    - cpupool_unassign_cpu_finish
    - BUG_ON
    - ASSERT
    - cpumask_clear_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void cpupool_cpu_remove(unsigned int cpu, struct cpu_rm_data *mem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:759,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:761,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/cpupool.c:762,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:763,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/cpupool.c:764,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:767,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:768,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:770,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:775,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:778,1
    - Dst: cpupool_unassign_cpu_start
      Src: /src/xen/xen/common/sched/cpupool.c:780,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 753
    functionDepth: 9
    functionLinenumber: 753
    functionLinenumberEnd: 786
    functionName: cpupool_cpu_remove_prologue
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - sched_get_resource_cpu
    - rcu_read_unlock
    - get_sched_res
    - cpupool_unassign_cpu_start
    - spin_lock
    - ASSERT
    - cpumask_set_cpu
    - rcu_read_lock
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int cpupool_cpu_remove_prologue(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:799,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:801,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:803,1
    - Dst: cpupool_unassign_cpu_start
      Src: /src/xen/xen/common/sched/cpupool.c:805,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/cpupool.c:806,1
    - Dst: cpupool_unassign_cpu_finish
      Src: /src/xen/xen/common/sched/cpupool.c:807,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/cpupool.c:808,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:812,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/common/sched/cpupool.c:814,1
    - Dst: sched_rm_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:815,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 795
    functionDepth: 9
    functionLinenumber: 795
    functionLinenumberEnd: 817
    functionName: cpupool_cpu_remove_forced
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_get_resource_cpu
    - rcu_read_unlock
    - cpumask_clear_cpu
    - cpupool_unassign_cpu_finish
    - BUG_ON
    - cpupool_unassign_cpu_start
    - sched_rm_cpu
    - rcu_read_lock
    - list_for_each_entry
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void cpupool_cpu_remove_forced(unsigned int cpu)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_create
      Src: /src/xen/xen/common/sched/cpupool.c:837,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/cpupool.c:838,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/common/sched/cpupool.c:839,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:843,1
    - Dst: cpupool_get_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:850,1
    - Dst: cpupool_destroy
      Src: /src/xen/xen/common/sched/cpupool.c:854,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:855,1
    - Dst: cpupool_get_next_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:861,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/cpupool.c:868,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:869,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:879,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:882,1
    - Dst: cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:884,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:890,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:892,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/cpupool.c:893,1
    - Dst: cpu_online
      Src: /src/xen/xen/common/sched/cpupool.c:904,1
    - Dst: sched_get_opt_cpumask
      Src: /src/xen/xen/common/sched/cpupool.c:906,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/cpupool.c:907,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/cpupool.c:908,1
    - Dst: cpupool_assign_cpu_locked
      Src: /src/xen/xen/common/sched/cpupool.c:910,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:913,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:914,1
    - Dst: cpupool_get_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:924,1
    - Dst: cpumask_last
      Src: /src/xen/xen/common/sched/cpupool.c:930,1
    - Dst: cpupool_unassign_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:931,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:932,1
    - Dst: rcu_lock_remote_domain_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:940,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/sched/cpupool.c:946,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/sched/cpupool.c:952,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:955,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:958,1
    - Dst: cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:960,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/cpupool.c:961,1
    - Dst: cpupool_move_domain_locked
      Src: /src/xen/xen/common/sched/cpupool.c:962,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:964,1
    - Dst: debugtrace_printk
      Src: /src/xen/xen/common/sched/cpupool.c:965,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/common/sched/cpupool.c:967,1
    - Dst: cpumask_to_xenctl_bitmap
      Src: /src/xen/xen/common/sched/cpupool.c:973,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 118
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_cpupool_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 823
    functionDepth: 10
    functionLinenumber: 823
    functionLinenumberEnd: 984
    functionName: cpupool_do_sysctl
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - for_each_cpu
    - rcu_lock_remote_domain_by_id
    - cpupool_assign_cpu_locked
    - cpumask_last
    - debugtrace_printk
    - spin_lock
    - cpumask_to_xenctl_bitmap
    - cpumask_subset
    - cpupool_create
    - cpupool_get_by_id
    - cpupool_move_domain_locked
    - cpupool_put
    - cpupool_find_by_id
    - rcu_unlock_domain
    - cpupool_get_next_by_id
    - cpu_online
    - spin_unlock
    - cpumask_weight
    - IS_ERR
    - cpupool_destroy
    - cpupool_unassign_cpu
    - sched_get_opt_cpumask
    - PTR_ERR
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 990
    functionName: cpupool_get_id
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpupool_get_id(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct cpupool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: cpupool_valid_cpus
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: cpumask_t
    signature: cpumask_t *cpupool_valid_cpus(const struct cpupool *pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/common/sched/cpupool.c:999,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:1002,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1004,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1006,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1008,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/cpupool.c:1008,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/cpupool.c:1009,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1011,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/cpupool.c:1011,1
    - Dst: schedule_dump
      Src: /src/xen/xen/common/sched/cpupool.c:1012,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:1015,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1017,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/cpupool.c:1018,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/cpupool.c:1018,1
    - Dst: sched_gran_print
      Src: /src/xen/xen/common/sched/cpupool.c:1019,1
    - Dst: cpupool_get_granularity
      Src: /src/xen/xen/common/sched/cpupool.c:1019,1
    - Dst: schedule_dump
      Src: /src/xen/xen/common/sched/cpupool.c:1020,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1024
    functionName: dump_runq
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - cpumask_empty
    - CPUMASK_PR
    - schedule_dump
    - sched_gran_print
    - spin_lock
    - printk
    - cpupool_get_granularity
    - list_for_each_entry
    - NOW
    linkageType: ''
    returnType: void
    signature: void dump_runq(unsigned char key)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: free_cpu_rm_data
      Src: /src/xen/xen/common/sched/cpupool.c:1041,1
    - Dst: cpupool_cpu_add
      Src: /src/xen/xen/common/sched/cpupool.c:1044,1
    - Dst: cpupool_cpu_add
      Src: /src/xen/xen/common/sched/cpupool.c:1049,1
    - Dst: sched_migrate_timers
      Src: /src/xen/xen/common/sched/cpupool.c:1051,1
    - Dst: cpupool_cpu_remove_prologue
      Src: /src/xen/xen/common/sched/cpupool.c:1057,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1060,1
    - Dst: alloc_cpu_rm_data
      Src: /src/xen/xen/common/sched/cpupool.c:1061,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1070,1
    - Dst: cpupool_cpu_remove
      Src: /src/xen/xen/common/sched/cpupool.c:1071,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1077,1
    - Dst: free_cpu_rm_data
      Src: /src/xen/xen/common/sched/cpupool.c:1078,1
    - Dst: cpupool_cpu_remove_forced
      Src: /src/xen/xen/common/sched/cpupool.c:1083,1
    - Dst: notifier_from_errno
      Src: /src/xen/xen/common/sched/cpupool.c:1089,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1026
    functionDepth: 10
    functionLinenumber: 1026
    functionLinenumberEnd: 1090
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 8
    functionsReached:
    - cpupool_cpu_add
    - notifier_from_errno
    - cpupool_cpu_remove_forced
    - alloc_cpu_rm_data
    - ASSERT
    - free_cpu_rm_data
    - sched_migrate_timers
    - cpupool_cpu_remove_prologue
    - cpupool_cpu_remove
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1107,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:1109,1
    - Dst: hypfs_read_dyndir_id_entry
      Src: /src/xen/xen/common/sched/cpupool.c:1114,1
    - Dst: list_is_last
      Src: /src/xen/xen/common/sched/cpupool.c:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cpupool_dir_read
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1122
    functionName: HYPFS_DIR_INIT
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 1
    functionsReached:
    - hypfs_read_dyndir_id_entry
    - hypfs_get_dyndata
    - list_for_each_entry
    - list_is_last
    linkageType: ''
    returnType: void
    signature: "void HYPFS_DIR_INIT(cpupool_pooldir, \"%u\");\n\nstatic int cf_check
      cpupool_dir_read(\n    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void)
      uaddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/cpupool.c:1130,1
    - Dst: hypfs_dynid_entry_size
      Src: /src/xen/xen/common/sched/cpupool.c:1131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1134
    functionName: cpupool_dir_getsize
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - hypfs_dynid_entry_size
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int cpupool_dir_getsize(\n    const struct hypfs_entry *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_alloc_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1141,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/cpupool.c:1143,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1149
    functionName: cpupool_dir_enter
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - hypfs_alloc_dyndata
    - ERR_PTR
    - spin_lock
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check cpupool_dir_enter(\n    const struct
      hypfs_entry *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:1153,1
    - Dst: hypfs_free_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1156
    functionName: cpupool_dir_exit
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - hypfs_free_dyndata
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void cpupool_dir_exit(const struct hypfs_entry *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/common/sched/cpupool.c:1165,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/cpupool.c:1167,1
    - Dst: __cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:1169,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/cpupool.c:1172,1
    - Dst: hypfs_gen_dyndir_id_entry
      Src: /src/xen/xen/common/sched/cpupool.c:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dir
    - name
    - name_len
    argTypes:
    - struct hypfs_entry_dir*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1175
    functionName: cpupool_dir_findentry
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - __cpupool_find_by_id
    - hypfs_gen_dyndir_id_entry
    - ERR_PTR
    - simple_strtoul
    linkageType: ''
    returnType: struct hypfs_entry
    signature: "struct hypfs_entry *cf_check cpupool_dir_findentry(\n    const struct
      hypfs_entry_dir *dir, const char *name, unsigned int name_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1184,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1186,1
    - Dst: sched_gran_get_name
      Src: /src/xen/xen/common/sched/cpupool.c:1188,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/common/sched/cpupool.c:1193,1
    - Dst: strlen
      Src: /src/xen/xen/common/sched/cpupool.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1194
    functionName: cpupool_gran_read
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_gran_get_name
    - ASSERT
    - strlen
    - copy_to_guest
    - hypfs_get_dyndata
    linkageType: ''
    returnType: int
    signature: "int cpupool_gran_read(\n    const struct hypfs_entry *entry, XEN_GUEST_HANDLE_PARAM(void)
      uaddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1202,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1204,1
    - Dst: sched_gran_get_name
      Src: /src/xen/xen/common/sched/cpupool.c:1206,1
    - Dst: strlen
      Src: /src/xen/xen/common/sched/cpupool.c:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct hypfs_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1209
    functionName: hypfs_gran_getsize
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - sched_gran_get_name
    - ASSERT
    - hypfs_get_dyndata
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hypfs_gran_getsize(const struct hypfs_entry *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/common/sched/cpupool.c:1225,1
    - Dst: memchr
      Src: /src/xen/xen/common/sched/cpupool.c:1228,1
    - Dst: sched_gran_get
      Src: /src/xen/xen/common/sched/cpupool.c:1229,1
    - Dst: cpupool_check_granularity
      Src: /src/xen/xen/common/sched/cpupool.c:1230,1
    - Dst: hypfs_get_dyndata
      Src: /src/xen/xen/common/sched/cpupool.c:1234,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1236,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/cpupool.c:1239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - leaf
    - ulen
    argTypes:
    - struct hypfs_entry_leaf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1248
    functionName: cpupool_gran_write
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - cpumask_empty
    - sched_gran_get
    - cpupool_check_granularity
    - ASSERT
    - memchr
    - hypfs_get_dyndata
    linkageType: ''
    returnType: int
    signature: "int cpupool_gran_write(\n    struct hypfs_entry_leaf *leaf, XEN_GUEST_HANDLE_PARAM(const_void)
      uaddr,\n    unsigned int ulen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hypfs_add_dir
      Src: /src/xen/xen/common/sched/cpupool.c:1279,1
    - Dst: hypfs_add_dyndir
      Src: /src/xen/xen/common/sched/cpupool.c:1280,1
    - Dst: hypfs_string_set_reference
      Src: /src/xen/xen/common/sched/cpupool.c:1281,1
    - Dst: hypfs_add_leaf
      Src: /src/xen/xen/common/sched/cpupool.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cpupool_hypfs_init
    argTypes:
    - cpupool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1283
    functionName: HYPFS_DIR_INIT_FUNC
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - hypfs_string_set_reference
    - hypfs_add_dyndir
    - hypfs_add_leaf
    - hypfs_add_dir
    linkageType: ''
    returnType: void
    signature: 'void HYPFS_DIR_INIT_FUNC(cpupool_dir, "cpupool", &cpupool_dir_funcs);


      static void cpupool_hypfs_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1289
    functionName: cpupool_hypfs_init
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpupool_hypfs_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scheduler_get_default
      Src: /src/xen/xen/common/sched/cpupool.c:1298,1
    - Dst: cpupool_create
      Src: /src/xen/xen/common/sched/cpupool.c:1300,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/cpupool.c:1302,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/cpupool.c:1302,1
    - Dst: cpupool_put
      Src: /src/xen/xen/common/sched/cpupool.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pool_id
    - sched_id
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1293
    functionDepth: 4
    functionLinenumber: 1293
    functionLinenumberEnd: 1306
    functionName: cpupool_create_pool
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 2
    functionsReached:
    - cpupool_create
    - IS_ERR
    - BUG_ON
    - scheduler_get_default
    - cpupool_put
    linkageType: ''
    returnType: struct cpupool
    signature: struct cpupool *__init cpupool_create_pool(unsigned int pool_id, int
      sched_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpupool_gran_init
      Src: /src/xen/xen/common/sched/cpupool.c:1312,1
    - Dst: cpupool_hypfs_init
      Src: /src/xen/xen/common/sched/cpupool.c:1314,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/common/sched/cpupool.c:1316,1
    - Dst: btcpupools_dtb_parse
      Src: /src/xen/xen/common/sched/cpupool.c:1318,1
    - Dst: btcpupools_allocate_pools
      Src: /src/xen/xen/common/sched/cpupool.c:1320,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/cpupool.c:1322,1
    - Dst: cpumask_copy
      Src: /src/xen/xen/common/sched/cpupool.c:1324,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/cpupool.c:1326,1
    - Dst: btcpupools_get_cpupool_id
      Src: /src/xen/xen/common/sched/cpupool.c:1328,1
    - Dst: cpupool_find_by_id
      Src: /src/xen/xen/common/sched/cpupool.c:1329,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/cpupool.c:1331,1
    - Dst: cpupool_assign_cpu_locked
      Src: /src/xen/xen/common/sched/cpupool.c:1332,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/cpupool.c:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1308
    functionDepth: 8
    functionLinenumber: 1308
    functionLinenumberEnd: 1338
    functionName: cpupool_init
    functionSourceFile: /src/xen/xen/common/sched/cpupool.c
    functionUses: 0
    functionsReached:
    - btcpupools_dtb_parse
    - for_each_cpu
    - spin_unlock
    - cpupool_hypfs_init
    - cpupool_assign_cpu_locked
    - cpupool_gran_init
    - btcpupools_allocate_pools
    - register_cpu_notifier
    - spin_lock
    - ASSERT
    - cpumask_copy
    - btcpupools_get_cpupool_id
    - cpupool_find_by_id
    linkageType: ''
    returnType: int
    signature: int cpupool_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: cpu_nr_siblings
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpu_nr_siblings(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/common/sched/credit2.c:471,1
    - Dst: strcmp
      Src: /src/xen/xen/common/sched/credit2.c:473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: parse_credit2_runqueue
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int parse_credit2_runqueue(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 609
    functionName: csched2_priv
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct csched2_private
    signature: struct csched2_private *csched2_priv(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: csched2_pcpu
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - get_sched_res
    linkageType: ''
    returnType: struct csched2_pcpu
    signature: struct csched2_pcpu *csched2_pcpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 619
    functionName: csched2_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct csched2_unit
    signature: struct csched2_unit *csched2_unit(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 624
    functionName: csched2_dom
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct csched2_dom
    signature: struct csched2_dom *csched2_dom(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 630
    functionName: c2r
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_pcpu
    linkageType: ''
    returnType: int
    signature: int c2r(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: c2rqd
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_pcpu
    linkageType: ''
    returnType: struct csched2_runqueue_data
    signature: struct csched2_runqueue_data *c2rqd(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 642
    functionName: has_cap
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_cap(const struct csched2_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:702,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/credit2.c:704,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/credit2.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - cpu
    - idlers
    - mask
    argTypes:
    - unsigned int
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 706
    functionName: smt_idle_mask_set
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_pcpu
    - cpumask_subset
    - cpumask_or
    linkageType: ''
    returnType: void
    signature: "void smt_idle_mask_set(unsigned int cpu, const cpumask_t *idlers,\n
      \                      cpumask_t *mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:714,1
    - Dst: cpumask_subset
      Src: /src/xen/xen/common/sched/credit2.c:716,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cpu
    - mask
    argTypes:
    - unsigned int
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 718
    functionName: smt_idle_mask_clear
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpumask_andnot
    - csched2_pcpu
    - cpumask_subset
    linkageType: ''
    returnType: void
    signature: void smt_idle_mask_clear(unsigned int cpu, cpumask_t *mask)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:738,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:742,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:744,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:747,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:747,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:749,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit2.c:767,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:767,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:795,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit2.c:796,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:796,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit2.c:797,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:797,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:798,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/common/sched/credit2.c:801,1
    - Dst: cpumask_any
      Src: /src/xen/xen/common/sched/credit2.c:806,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:806,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:806,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 807
    functionName: get_fallback_cpu
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - cpumask_empty
    - likely
    - sched_unit_master
    - ASSERT
    - ASSERT_UNREACHABLE
    - cpumask_first
    - cpumask_any
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: int
    signature: int get_fallback_cpu(struct csched2_unit *svc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:742,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:744,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:747,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:747,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:748,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:749,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:755,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:762,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:765,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit2.c:767,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:767,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:795,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit2.c:796,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:796,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit2.c:797,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:797,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:798,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 800
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - cpumask_empty
    - likely
    - sched_unit_master
    - ASSERT
    - cpumask_first
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bs )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_div
      Src: /src/xen/xen/common/sched/credit2.c:822,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rqd
    - time
    - svc
    argTypes:
    - struct csched2_runqueue_data*
    - s_time_t
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 829
    functionName: t2c_update
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - do_div
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void t2c_update(const struct csched2_runqueue_data *rqd, s_time_t
      time,\n                          struct csched2_unit *svc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rqd
    - credit
    - svc
    argTypes:
    - struct csched2_runqueue_data*
    - s_time_t
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: c2t
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: s_time_t
    signature: "s_time_t c2t(const struct csched2_runqueue_data *rqd, s_time_t credit,\n
      \                   const struct csched2_unit *svc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 844
    functionName: unit_on_runq
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 6
    functionsReached:
    - list_empty
    linkageType: ''
    returnType: int
    signature: int unit_on_runq(const struct csched2_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 849
    functionName: runq_elem
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 8
    functionsReached:
    - list_entry
    linkageType: ''
    returnType: struct csched2_unit
    signature: struct csched2_unit * runq_elem(struct list_head *elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit2.c:853,1
    - Dst: cpu_to_node
      Src: /src/xen/xen/common/sched/credit2.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpua
    - cpub
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 854
    functionName: same_node
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpu_to_node
    linkageType: ''
    returnType: bool
    signature: bool same_node(unsigned int cpua, unsigned int cpub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_socket
      Src: /src/xen/xen/common/sched/credit2.c:858,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/common/sched/credit2.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cpua
    - cpub
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 859
    functionName: same_socket
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpu_to_socket
    linkageType: ''
    returnType: bool
    signature: bool same_socket(unsigned int cpua, unsigned int cpub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: same_socket
      Src: /src/xen/xen/common/sched/credit2.c:863,1
    - Dst: cpu_to_core
      Src: /src/xen/xen/common/sched/credit2.c:864,1
    - Dst: cpu_to_core
      Src: /src/xen/xen/common/sched/credit2.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - cpua
    - cpub
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: same_core
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpu_to_core
    - same_socket
    linkageType: ''
    returnType: bool
    signature: bool same_core(unsigned int cpua, unsigned int cpub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:872,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/common/sched/credit2.c:872,1
    - Dst: same_core
      Src: /src/xen/xen/common/sched/credit2.c:876,1
    - Dst: same_socket
      Src: /src/xen/xen/common/sched/credit2.c:877,1
    - Dst: same_node
      Src: /src/xen/xen/common/sched/credit2.c:878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 2
    argNames:
    - rqd
    - cpu
    argTypes:
    - struct csched2_runqueue_data*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 879
    functionName: cpu_runqueue_match
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - same_node
    - cpu_to_socket
    - BUG_ON
    - same_socket
    - same_core
    linkageType: ''
    returnType: bool
    signature: bool cpu_runqueue_match(const struct csched2_runqueue_data *rqd, unsigned
      int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_nr_siblings
      Src: /src/xen/xen/common/sched/credit2.c:892,1
    - Dst: cpumask_clear
      Src: /src/xen/xen/common/sched/credit2.c:899,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:899,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit2.c:900,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:902,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:903,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:903,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:903,1
    - Dst: cpumask_or
      Src: /src/xen/xen/common/sched/credit2.c:917,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:917,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:917,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:918,1
    - Dst: cpu_nr_siblings
      Src: /src/xen/xen/common/sched/credit2.c:919,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:926,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:926,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:926,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - rqd
    - cpu
    - max_cpus_runq
    argTypes:
    - struct csched2_runqueue_data*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 931
    functionName: cpu_runqueue_siblings_match
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpumask_clear
    - cpumask_scratch_cpu
    - for_each_cpu
    - cpu_nr_siblings
    - ASSERT
    - per_cpu
    - cpumask_or
    - cpumask_intersects
    linkageType: ''
    returnType: bool
    signature: "bool cpu_runqueue_siblings_match(const struct csched2_runqueue_data
      *rqd,\n                            unsigned int cpu, unsigned int max_cpus_runq)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:936,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit2.c:946,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/sched/credit2.c:955,1
    - Dst: num_online_cpus
      Src: /src/xen/xen/common/sched/credit2.c:956,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:958,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/credit2.c:961,1
    - Dst: cpu_runqueue_match
      Src: /src/xen/xen/common/sched/credit2.c:971,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:986,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:986,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit2.c:988,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:990,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit2.c:994,1
    - Dst: cpu_runqueue_siblings_match
      Src: /src/xen/xen/common/sched/credit2.c:1013,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/credit2.c:1038,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit2.c:1044,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:1054,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:1056,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 1059
    functionName: cpu_add_to_runqueue
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ERR_PTR
    - cpu_runqueue_match
    - csched2_priv
    - write_lock_irqsave
    - list_add
    - write_unlock_irqrestore
    - num_online_cpus
    - cpu_runqueue_siblings_match
    - per_cpu
    - printk
    - cpumask_weight
    - xfree
    - list_for_each_entry
    - cpumask_intersects
    linkageType: ''
    returnType: struct csched2_runqueue_data
    signature: 'struct csched2_runqueue_data *

      cpu_add_to_runqueue(const struct scheduler *ops, unsigned int cpu)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1074,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:1081,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:1083,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1090,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1093,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - rqd
    - new_weight
    - old_weight
    argTypes:
    - struct csched2_runqueue_data*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1104
    functionName: update_max_weight
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - trace_time
    - list_entry
    - unlikely
    - list_for_each
    linkageType: ''
    returnType: void
    signature: "void update_max_weight(struct csched2_runqueue_data *rqd, int new_weight,\n
      \                             int old_weight)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/credit2.c:1112,1
    - Dst: update_max_weight
      Src: /src/xen/xen/common/sched/credit2.c:1114,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1119,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - svc
    - rqd
    argTypes:
    - struct csched2_unit*
    - struct csched2_runqueue_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1133
    functionName: _runq_assign
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - update_max_weight
    - trace_time
    - list_add_tail
    - unlikely
    linkageType: ''
    returnType: void
    signature: void _runq_assign(struct csched2_unit *svc, struct csched2_runqueue_data
      *rqd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1140,1
    - Dst: _runq_assign
      Src: /src/xen/xen/common/sched/credit2.c:1142,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1142,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: runq_assign
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 1
    functionsReached:
    - _runq_assign
    - ASSERT
    - sched_unit_master
    - c2rqd
    linkageType: ''
    returnType: void
    signature: void runq_assign(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1150,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:1150,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1151,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit2.c:1153,1
    - Dst: update_max_weight
      Src: /src/xen/xen/common/sched/credit2.c:1154,1
    - Dst: max_t
      Src: /src/xen/xen/common/sched/credit2.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1145
    functionDepth: 2
    functionLinenumber: 1145
    functionLinenumberEnd: 1160
    functionName: _runq_deassign
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - list_del_init
    - unit_on_runq
    - update_max_weight
    - ASSERT
    - max_t
    linkageType: ''
    returnType: void
    signature: void _runq_deassign(struct csched2_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1167,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1167,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1167,1
    - Dst: _runq_deassign
      Src: /src/xen/xen/common/sched/credit2.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1162
    functionDepth: 4
    functionLinenumber: 1162
    functionLinenumberEnd: 1170
    functionName: runq_deassign
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - _runq_deassign
    - sched_unit_master
    - c2rqd
    linkageType: ''
    returnType: void
    signature: void runq_deassign(const struct sched_unit *unit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:1282,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1317,1
    - Dst: d2printk
      Src: /src/xen/xen/common/sched/credit2.c:1319,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1346,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1348,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ops
    - rqd
    - change
    - now
    argTypes:
    - struct scheduler*
    - struct csched2_runqueue_data*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1365
    functionName: update_runq_load
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - d2printk
    - trace_time
    - csched2_priv
    - ASSERT
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void update_runq_load(const struct scheduler *ops,\n                 struct
      csched2_runqueue_data *rqd, int change, s_time_t now)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:1371,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:1380,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1393,1
    - Dst: d2printk
      Src: /src/xen/xen/common/sched/credit2.c:1395,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1407,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1409,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ops
    - svc
    - change
    - now
    argTypes:
    - struct scheduler*
    - struct csched2_unit*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1424
    functionName: update_svc_load
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - d2printk
    - trace_time
    - csched2_priv
    - ASSERT
    - unit_runnable
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void update_svc_load(const struct scheduler *ops,\n                struct
      csched2_unit *svc, int change, s_time_t now)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit2.c:1431,1
    - Dst: update_runq_load
      Src: /src/xen/xen/common/sched/credit2.c:1433,1
    - Dst: update_svc_load
      Src: /src/xen/xen/common/sched/credit2.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ops
    - rqd
    - svc
    - change
    - now
    argTypes:
    - struct scheduler*
    - struct csched2_runqueue_data*
    - struct csched2_unit*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1426
    functionDepth: 3
    functionLinenumber: 1426
    functionLinenumberEnd: 1436
    functionName: update_load
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - update_svc_load
    - TRACE_TIME
    - update_runq_load
    linkageType: ''
    returnType: void
    signature: "void update_load(const struct scheduler *ops,\n            struct
      csched2_runqueue_data *rqd,\n            struct csched2_unit *svc, int change,
      s_time_t now)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1441,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1442,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1445,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:1445,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:1445,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1447,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:1447,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1448,1
    - Dst: c2r
      Src: /src/xen/xen/common/sched/credit2.c:1448,1
    - Dst: c2r
      Src: /src/xen/xen/common/sched/credit2.c:1448,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1448,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1450,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1451,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:1451,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1452,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1453,1
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:1457,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/credit2.c:1464,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1466,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1479
    functionName: runq_insert
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 10
    functionsReached:
    - unit_on_runq
    - trace_time
    - get_sched_res
    - spin_is_locked
    - c2r
    - sched_unit_master
    - runq_elem
    - ASSERT
    - is_idle_unit
    - unlikely
    - c2rqd
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void runq_insert(struct csched2_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1463
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 13
    functionsReached:
    - runq_elem
    linkageType: ''
    returnType: void
    signature: void list_for_each( iter, runq )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1483,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:1483,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit2.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1485
    functionName: runq_remove
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 5
    functionsReached:
    - ASSERT
    - list_del_init
    - unit_on_runq
    linkageType: ''
    returnType: void
    signature: void runq_remove(struct csched2_unit *svc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1493,1
    - Dst: smt_idle_mask_clear
      Src: /src/xen/xen/common/sched/credit2.c:1494,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/credit2.c:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cpu
    - rqd
    argTypes:
    - unsigned int
    - struct csched2_runqueue_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1490
    functionDepth: 4
    functionLinenumber: 1490
    functionLinenumberEnd: 1496
    functionName: tickle_cpu
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - __cpumask_set_cpu
    - cpu_raise_softirq
    - smt_idle_mask_clear
    linkageType: ''
    returnType: void
    signature: void tickle_cpu(unsigned int cpu, struct csched2_runqueue_data *rqd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - svc
    - now
    - ratelimit
    argTypes:
    - struct csched2_unit*
    - s_time_t
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1513
    functionName: is_preemptable
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: bool
    signature: "bool is_preemptable(const struct csched2_unit *svc,\n                                    s_time_t
      now, s_time_t ratelimit)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1532,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:1533,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1533,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:1534,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1542,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:1542,1
    - Dst: is_preemptable
      Src: /src/xen/xen/common/sched/credit2.c:1543,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit2.c:1543,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit2.c:1546,1
    - Dst: credit::credit
      Src: /src/xen/xen/common/sched/credit2.c:1548,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1549,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/credit2.c:1549,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1560,1
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/credit2.c:1560,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1563,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1567,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1579,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ops
    - now
    - new
    - cpu
    argTypes:
    - struct scheduler*
    - s_time_t
    - struct csched2_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1529
    functionDepth: 4
    functionLinenumber: 1529
    functionLinenumberEnd: 1583
    functionName: tickle_score
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - is_preemptable
    - credit::credit
    - burn_credits
    - trace_time
    - csched2_priv
    - sched_unit_master
    - unit::unit
    - is_idle_unit
    - MICROSECS
    - curr_on_cpu
    - unlikely
    - c2rqd
    - csched2_unit
    - cpumask_test_cpu
    linkageType: ''
    returnType: s_time_t
    signature: "s_time_t tickle_score(const struct scheduler *ops, s_time_t now,\n
      \                            const struct csched2_unit *new, unsigned int cpu)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unit::unit
      Src: /src/xen/xen/common/sched/credit2.c:1606,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1607,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1608,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:1609,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1612,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1614,1
    - Dst: credit::credit
      Src: /src/xen/xen/common/sched/credit2.c:1624,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1627,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1640,1
    - Dst: flags::flags
      Src: /src/xen/xen/common/sched/credit2.c:1640,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1641,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1642,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1644,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit2.c:1644,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1645,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:1653,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:1656,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1656,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1666,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1668,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1669,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1672,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1673,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1673,1
    - Dst: cpumask_test_or_cycle
      Src: /src/xen/xen/common/sched/credit2.c:1674,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1677,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1687,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1689,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1689,1
    - Dst: cpumask_test_or_cycle
      Src: /src/xen/xen/common/sched/credit2.c:1690,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1693,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1715,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1716,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1717,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1717,1
    - Dst: __cpumask_test_and_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1718,1
    - Dst: tickle_score
      Src: /src/xen/xen/common/sched/credit2.c:1720,1
    - Dst: cpu::cpu
      Src: /src/xen/xen/common/sched/credit2.c:1720,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1728,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1730,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1736,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1741,1
    - Dst: tickle_score
      Src: /src/xen/xen/common/sched/credit2.c:1743,1
    - Dst: i::i
      Src: /src/xen/xen/common/sched/credit2.c:1743,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1754,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1758,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:1758,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1758,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1759,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:1761,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1763,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1771,1
    - Dst: tickle_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1774,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1776,1
    - Dst: tickled_cpu::tickled_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1776,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1777,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 3
    argNames:
    - ops
    - new
    - now
    argTypes:
    - struct scheduler*
    - struct csched2_unit*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1601
    functionDepth: 5
    functionLinenumber: 1601
    functionLinenumberEnd: 1779
    functionName: runq_tickle
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 4
    functionsReached:
    - for_each_cpu
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - c2rqd
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - i::i
    - SCHED_STAT_CRANK
    - credit::credit
    - cpumask_scratch_cpu
    - trace_time
    - tickled_cpu::tickled_cpu
    - unit::unit
    - cpumask_andnot
    - BUG_ON
    - tickle_cpu
    - sched_unit_master
    - ASSERT
    - curr_on_cpu
    - cpu::cpu
    - cpumask_cycle
    - cpumask_test_or_cycle
    - __cpumask_test_and_clear_cpu
    - tickle_score
    - is_idle_unit
    - unlikely
    - flags::flags
    linkageType: ''
    returnType: void
    signature: void runq_tickle(const struct scheduler *ops, struct csched2_unit *new,
      s_time_t now)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:1653,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:1656,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1656,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1666,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1668,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1669,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1672,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1673,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1673,1
    - Dst: cpumask_test_or_cycle
      Src: /src/xen/xen/common/sched/credit2.c:1674,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1677,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:1687,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1688,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:1689,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1689,1
    - Dst: cpumask_test_or_cycle
      Src: /src/xen/xen/common/sched/credit2.c:1690,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1650
    functionDepth: 4
    functionLinenumber: 1650
    functionLinenumberEnd: 1697
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - SCHED_STAT_CRANK
    - has_soft_affinity
    - cpumask_andnot
    - cpumask_test_or_cycle
    - unlikely
    - cpumask_and
    - affinity_balance_cpumask
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bs )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:1786,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1804,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1805,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:1808,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:1814,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1815,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1817,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:1817,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1818,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1824,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit2.c:1826,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1832,1
    - Dst: tickle_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1833,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1844,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1856,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1860,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - cpu
    - now
    - snext
    argTypes:
    - int
    - s_time_t
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1784
    functionDepth: 5
    functionLinenumber: 1784
    functionLinenumberEnd: 1864
    functionName: reset_credit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - burn_credits
    - trace_time
    - list_entry
    - sched_unit_master
    - ASSERT
    - is_idle_unit
    - curr_on_cpu
    - unlikely
    - c2rqd
    - tickle_cpu
    - list_for_each
    linkageType: ''
    returnType: void
    signature: void reset_credit(int cpu, s_time_t now, struct csched2_unit *snext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1871,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:1871,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:1871,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1871,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1873,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:1873,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1875,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1881,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1883,1
    - Dst: d2printk
      Src: /src/xen/xen/common/sched/credit2.c:1884,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:1890,1
    - Dst: t2c_update
      Src: /src/xen/xen/common/sched/credit2.c:1891,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:1893,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:1899,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:1908,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:1912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - rqd
    - svc
    - now
    argTypes:
    - struct csched2_runqueue_data*
    - struct csched2_unit*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1866
    functionDepth: 3
    functionLinenumber: 1866
    functionLinenumberEnd: 1914
    functionName: burn_credits
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 4
    functionsReached:
    - SCHED_STAT_CRANK
    - d2printk
    - trace_time
    - sched_unit_master
    - has_cap
    - ASSERT
    - is_idle_unit
    - curr_on_cpu
    - t2c_update
    - unlikely
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: "void burn_credits(struct csched2_runqueue_data *rqd,\n                         struct
      csched2_unit *svc, s_time_t now)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1924,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:1924,1
    - Dst: sched_set_pause_flags
      Src: /src/xen/xen/common/sched/credit2.c:1940,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:1941,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit2.c:1943,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:1944,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:1944,1
    - Dst: list_add
      Src: /src/xen/xen/common/sched/credit2.c:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1920
    functionDepth: 4
    functionLinenumber: 1920
    functionLinenumberEnd: 1947
    functionName: park_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - unit_on_runq
    - spin_is_locked
    - update_load
    - ASSERT
    - runq_remove
    - sched_set_pause_flags
    - list_add
    - NOW
    linkageType: ''
    returnType: void
    signature: void park_unit(struct csched2_unit *svc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1952,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:1954,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:1954,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:1954,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:1960,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:1976,1
    - Dst: park_unit
      Src: /src/xen/xen/common/sched/credit2.c:1987,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:1990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - svc
    argTypes:
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1949
    functionDepth: 5
    functionLinenumber: 1949
    functionLinenumberEnd: 1993
    functionName: unit_grab_budget
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - get_sched_res
    - spin_is_locked
    - likely
    - sched_unit_master
    - spin_lock
    - ASSERT
    - park_unit
    linkageType: ''
    returnType: bool
    signature: bool unit_grab_budget(struct csched2_unit *svc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:1999,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2001,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:2001,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2001,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2002,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:2002,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:2005,1
    - Dst: list_splice_init
      Src: /src/xen/xen/common/sched/credit2.c:2031,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - svc
    - parked
    argTypes:
    - struct csched2_unit*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1995
    functionDepth: 2
    functionLinenumber: 1995
    functionLinenumberEnd: 2034
    functionName: unit_return_budget
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - get_sched_res
    - spin_is_locked
    - sched_unit_master
    - ASSERT
    - spin_lock
    - list_empty
    - list_splice_init
    linkageType: ''
    returnType: void
    signature: void unit_return_budget(struct csched2_unit *svc, struct list_head
      *parked)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:2047,1
    - Dst: sched_clear_pause_flags
      Src: /src/xen/xen/common/sched/credit2.c:2049,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2050,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2061,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:2063,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:2065,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2073,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2074,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit2.c:2075,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/credit2.c:2076,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit2.c:2078,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ops
    - units
    argTypes:
    - struct scheduler*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2036
    functionDepth: 4
    functionLinenumber: 2036
    functionLinenumberEnd: 2082
    functionName: unpark_parked_units
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - unit_schedule_lock_irqsave
    - list_del_init
    - unit_schedule_unlock_irqrestore
    - update_load
    - sched_unit_master
    - sched_clear_pause_flags
    - ASSERT
    - unit_runnable
    - unlikely
    - runq_insert
    - c2rqd
    - runq_tickle
    - NOW
    linkageType: ''
    returnType: void
    signature: void unpark_parked_units(const struct scheduler *ops, struct list_head
      *units)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unit_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:2047,1
    - Dst: sched_clear_pause_flags
      Src: /src/xen/xen/common/sched/credit2.c:2049,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2050,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2061,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2062,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:2063,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:2065,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2073,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2074,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit2.c:2075,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/credit2.c:2076,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit2.c:2078,1
    - Dst: unit_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2042
    functionDepth: 4
    functionLinenumber: 2042
    functionLinenumberEnd: 2081
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 25
    functionsReached:
    - __set_bit
    - unit_schedule_lock_irqsave
    - list_del_init
    - unit_schedule_unlock_irqrestore
    - update_load
    - sched_unit_master
    - sched_clear_pause_flags
    - ASSERT
    - unit_runnable
    - unlikely
    - runq_insert
    - c2rqd
    - runq_tickle
    - NOW
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe ( svc, tmp, units, parked_elem )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sdom
    argTypes:
    - struct csched2_dom*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    functionName: do_replenish
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_replenish(struct csched2_dom *sdom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:2095,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:2097,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2099,1
    - Dst: do_replenish
      Src: /src/xen/xen/common/sched/credit2.c:2112,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2122,1
    - Dst: do_replenish
      Src: /src/xen/xen/common/sched/credit2.c:2125,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2133,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2135,1
    - Dst: min
      Src: /src/xen/xen/common/sched/credit2.c:2140,1
    - Dst: list_splice_init
      Src: /src/xen/xen/common/sched/credit2.c:2147,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2149,1
    - Dst: unpark_parked_units
      Src: /src/xen/xen/common/sched/credit2.c:2151,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit2.c:2154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2090
    functionDepth: 6
    functionLinenumber: 2090
    functionLinenumberEnd: 2155
    functionName: replenish_domain_budget
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - list_splice_init
    - LIST_HEAD
    - spin_lock_irqsave
    - unpark_parked_units
    - do_replenish
    - spin_unlock_irqrestore
    - set_timer
    - min
    - unlikely
    - NOW
    linkageType: ''
    returnType: void
    signature: void replenish_domain_budget(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2161,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2164,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2165,1
    - Dst: csched2_dom
      Src: /src/xen/xen/common/sched/credit2.c:2165,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2168,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2168,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2169,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2173,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2173,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2176
    functionName: csched2_unit_check
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - csched2_dom
    - BUG_ON
    - is_idle_unit
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void csched2_unit_check(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2177
    functionDepth: 0
    functionLinenumber: 2177
    functionLinenumberEnd: 2178
    functionName: CSCHED2_UNIT_CHECK
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CSCHED2_UNIT_CHECK(unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit2.c:2189,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:2193,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:2194,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2200,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2202,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:2206,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2207,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2211,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:2219,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2182
    functionDepth: 2
    functionLinenumber: 2182
    functionLinenumberEnd: 2224
    functionName: csched2_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - SCHED_STAT_CRANK
    - csched2_priv
    - ASSERT
    - is_idle_unit
    - INIT_LIST_HEAD
    - NOW
    linkageType: ''
    returnType: void
    signature: "void *cf_check\ncsched2_alloc_udata(const struct scheduler *ops, struct
      sched_unit *unit,\n                    void *dd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2229,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2231,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2231,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2232,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2234,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2234,1
    - Dst: tickle_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2236,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2236,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:2238,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2240,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2240,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2240,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2241,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2241,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit2.c:2242,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:2245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2226
    functionDepth: 5
    functionLinenumber: 2226
    functionLinenumberEnd: 2246
    functionName: csched2_unit_sleep
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - __clear_bit
    - unit_on_runq
    - update_load
    - sched_unit_master
    - ASSERT
    - is_idle_unit
    - curr_on_cpu
    - runq_remove
    - tickle_cpu
    - c2rqd
    - csched2_unit
    - NOW
    linkageType: ''
    returnType: void
    signature: void csched2_unit_sleep(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2251,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2252,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2255,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:2255,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2255,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2257,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2257,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2259,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2259,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2261,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2265,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:2265,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2267,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:2271,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:2271,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2272,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2274,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2279,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:2281,1
    - Dst: runq_assign
      Src: /src/xen/xen/common/sched/credit2.c:2287,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2289,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2289,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2289,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2291,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2293,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit2.c:2296,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/credit2.c:2297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2248
    functionDepth: 5
    functionLinenumber: 2248
    functionLinenumberEnd: 2301
    functionName: csched2_unit_wake
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - likely
    - runq_insert
    - c2rqd
    - csched2_unit
    - SCHED_STAT_CRANK
    - __set_bit
    - spin_is_locked
    - NOW
    - sched_unit_master
    - ASSERT
    - runq_assign
    - curr_on_cpu
    - unit_runnable
    - runq_tickle
    - unit_on_runq
    - get_sched_res
    - update_load
    - is_idle_unit
    - unlikely
    linkageType: ''
    returnType: void
    signature: void csched2_unit_wake(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2306,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:2308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2309
    functionName: csched2_unit_yield
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void csched2_unit_yield(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2314,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit2.c:2315,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2316,1
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:2317,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2319,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2319,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2320,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2320,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:2323,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2325,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:2325,1
    - Dst: unit_return_budget
      Src: /src/xen/xen/common/sched/credit2.c:2326,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:2336,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/credit2.c:2337,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:2337,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2339,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:2339,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit2.c:2341,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/credit2.c:2342,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:2344,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2345,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/credit2.c:2347,1
    - Dst: unpark_parked_units
      Src: /src/xen/xen/common/sched/credit2.c:2349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2311
    functionDepth: 5
    functionLinenumber: 2311
    functionLinenumberEnd: 2350
    functionName: csched2_context_saved
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - LIST_HEAD
    - likely
    - unit_return_budget
    - runq_insert
    - c2rqd
    - csched2_unit
    - unit_schedule_unlock_irq
    - unpark_parked_units
    - unit_schedule_lock_irq
    - __test_and_clear_bit
    - NOW
    - sched_unit_master
    - ASSERT
    - unit_runnable
    - runq_tickle
    - unlikely
    - __clear_bit
    - unit_on_runq
    - update_load
    - is_idle_unit
    - has_cap
    linkageType: ''
    returnType: void
    signature: void csched2_context_saved(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:2356,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2357,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2358,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2363,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:2363,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2365,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2381,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:2381,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2381,1
    - Dst: read_trylock
      Src: /src/xen/xen/common/sched/credit2.c:2383,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:2386,1
    - Dst: get_fallback_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2387,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2395,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2395,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:2396,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:2402,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2404,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:2406,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:2409,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2409,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2418,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2418,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2418,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit2.c:2420,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2421,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:2440,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/credit2.c:2441,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:2453,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2453,1
    - Dst: max_t
      Src: /src/xen/xen/common/sched/credit2.c:2466,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/sched/credit2.c:2468,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2471,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2483,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2483,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:2484,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2515,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2515,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2515,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2517,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2517,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2517,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2531,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2531,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2531,1
    - Dst: get_fallback_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2540,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2541,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit2.c:2546,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2546,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:2548,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2551,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2553,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:2567,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2570,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2353
    functionDepth: 4
    functionLinenumber: 2353
    functionLinenumberEnd: 2571
    functionName: csched2_res_pick
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - c2rqd
    - cpumask_and
    - csched2_unit
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - trace_time
    - spin_is_locked
    - csched2_priv
    - BUG_ON
    - __test_and_clear_bit
    - printk
    - read_trylock
    - spin_unlock
    - read_unlock
    - get_fallback_cpu
    - sched_unit_master
    - ASSERT
    - max_t
    - list_empty
    - list_for_each_entry
    - __clear_bit
    - get_sched_res
    - cpumask_cycle
    - spin_trylock
    - unlikely
    - cpumask_intersects
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      csched2_res_pick(const struct scheduler *ops, const struct sched_unit *unit)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - st
    - push_svc
    - pull_svc
    argTypes:
    - balance_state_t*
    - struct csched2_unit*
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2583
    functionDepth: 0
    functionLinenumber: 2583
    functionLinenumberEnd: 2614
    functionName: consider
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void consider(balance_state_t *st,\n                     struct csched2_unit
      *push_svc,\n                     struct csched2_unit *pull_svc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2623,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2625,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:2637,1
    - Dst: sched_set_pause_flags
      Src: /src/xen/xen/common/sched/credit2.c:2644,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:2645,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2646,1
    - Dst: tickle_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2647,1
    - Dst: unit_on_runq
      Src: /src/xen/xen/common/sched/credit2.c:2653,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit2.c:2655,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2656,1
    - Dst: _runq_deassign
      Src: /src/xen/xen/common/sched/credit2.c:2659,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2661,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2661,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:2662,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2663,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2663,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2663,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit2.c:2665,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2666,1
    - Dst: cpumask_cycle
      Src: /src/xen/xen/common/sched/credit2.c:2666,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2667,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2668,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2669,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2669,1
    - Dst: _runq_assign
      Src: /src/xen/xen/common/sched/credit2.c:2671,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:2674,1
    - Dst: runq_insert
      Src: /src/xen/xen/common/sched/credit2.c:2675,1
    - Dst: runq_tickle
      Src: /src/xen/xen/common/sched/credit2.c:2676,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2677,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 4
    argNames:
    - ops
    - svc
    - trqd
    - now
    argTypes:
    - struct scheduler*
    - struct csched2_unit*
    - struct csched2_runqueue_data*
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2617
    functionDepth: 5
    functionLinenumber: 2617
    functionLinenumberEnd: 2682
    functionName: migrate
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - cpupool_domain_master_cpumask
    - runq_insert
    - cpumask_and
    - _runq_deassign
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - __set_bit
    - trace_time
    - runq_remove
    - _runq_assign
    - tickle_cpu
    - sched_set_res
    - sched_unit_master
    - ASSERT
    - sched_set_pause_flags
    - runq_tickle
    - unit_on_runq
    - get_sched_res
    - update_load
    - cpumask_cycle
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void migrate(const struct scheduler *ops,\n                    struct
      csched2_unit *svc,\n                    struct csched2_runqueue_data *trqd,\n
      \                   s_time_t now)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2693,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:2695,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2695,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:2696,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:2699,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - svc
    - rqd
    argTypes:
    - struct csched2_unit*
    - struct csched2_runqueue_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2689
    functionDepth: 2
    functionLinenumber: 2689
    functionLinenumberEnd: 2700
    functionName: unit_is_migrateable
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 1
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - sched_unit_master
    - cpumask_and
    - cpumask_intersects
    linkageType: ''
    returnType: bool
    signature: "bool unit_is_migrateable(const struct csched2_unit *svc,\n                                const
      struct csched2_runqueue_data *rqd)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:2704,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2718,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:2718,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2718,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2719,1
    - Dst: update_runq_load
      Src: /src/xen/xen/common/sched/credit2.c:2721,1
    - Dst: read_trylock
      Src: /src/xen/xen/common/sched/credit2.c:2725,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/credit2.c:2730,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/sched/credit2.c:2737,1
    - Dst: update_runq_load
      Src: /src/xen/xen/common/sched/credit2.c:2740,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2752,1
    - Dst: read_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2756,1
    - Dst: max
      Src: /src/xen/xen/common/sched/credit2.c:2769,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2771,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:2782,1
    - Dst: spin_trylock
      Src: /src/xen/xen/common/sched/credit2.c:2806,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2810,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:2813,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:2826,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:2829,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:2835,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:2837,1
    - Dst: update_svc_load
      Src: /src/xen/xen/common/sched/credit2.c:2839,1
    - Dst: unit_is_migrateable
      Src: /src/xen/xen/common/sched/credit2.c:2841,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:2844,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:2846,1
    - Dst: update_svc_load
      Src: /src/xen/xen/common/sched/credit2.c:2849,1
    - Dst: unit_is_migrateable
      Src: /src/xen/xen/common/sched/credit2.c:2851,1
    - Dst: consider
      Src: /src/xen/xen/common/sched/credit2.c:2854,1
    - Dst: consider
      Src: /src/xen/xen/common/sched/credit2.c:2860,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:2863,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:2865,1
    - Dst: unit_is_migrateable
      Src: /src/xen/xen/common/sched/credit2.c:2867,1
    - Dst: consider
      Src: /src/xen/xen/common/sched/credit2.c:2871,1
    - Dst: migrate
      Src: /src/xen/xen/common/sched/credit2.c:2876,1
    - Dst: migrate
      Src: /src/xen/xen/common/sched/credit2.c:2878,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2881,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 84
    argCount: 3
    argNames:
    - ops
    - cpu
    - now
    argTypes:
    - struct scheduler*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2702
    functionDepth: 6
    functionLinenumber: 2702
    functionLinenumberEnd: 2884
    functionName: balance_load
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - max
    - unit_is_migrateable
    - consider
    - c2rqd
    - list_for_each
    - SCHED_STAT_CRANK
    - trace_time
    - spin_is_locked
    - csched2_priv
    - migrate
    - read_trylock
    - spin_unlock
    - update_runq_load
    - read_unlock
    - ASSERT
    - update_svc_load
    - list_for_each_entry
    - get_sched_res
    - list_entry
    - spin_trylock
    - unlikely
    linkageType: ''
    returnType: void
    signature: void balance_load(const struct scheduler *ops, int cpu, s_time_t now)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2889,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:2891,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2893,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2893,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:2893,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2894,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:2894,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2896,1
    - Dst: migrate
      Src: /src/xen/xen/common/sched/credit2.c:2907,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit2.c:2909,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:2909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ops
    - unit
    - new_cpu
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2886
    functionDepth: 6
    functionLinenumber: 2886
    functionLinenumberEnd: 2910
    functionName: csched2_unit_migrate
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - sched_set_res
    - get_sched_res
    - csched2_priv
    - migrate
    - ASSERT
    - c2rqd
    - csched2_unit
    - cpumask_test_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: "void csched2_unit_migrate(\n    const struct scheduler *ops, struct
      sched_unit *unit, unsigned int new_cpu)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: csched2_dom
      Src: /src/xen/xen/common/sched/credit2.c:2918,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:2919,1
    - Dst: read_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:2938,1
    - Dst: read_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2941,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:2944,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2957,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:2958,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: update_max_weight
      Src: /src/xen/xen/common/sched/credit2.c:2963,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2965,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:2978,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:2982,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2985,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2995,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:2996,1
    - Dst: max
      Src: /src/xen/xen/common/sched/credit2.c:3002,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3004,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:3020,1
    - Dst: set_timer
      Src: /src/xen/xen/common/sched/credit2.c:3021,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3038,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:3039,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:3042,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:3043,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3045,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3045,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit2.c:3064,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:3064,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3065,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3066,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3066,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/credit2.c:3067,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3070,1
    - Dst: LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:3078,1
    - Dst: stop_timer
      Src: /src/xen/xen/common/sched/credit2.c:3080,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3085,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:3086,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3091,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:3101,1
    - Dst: list_splice_init
      Src: /src/xen/xen/common/sched/credit2.c:3102,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3103,1
    - Dst: unpark_parked_units
      Src: /src/xen/xen/common/sched/credit2.c:3105,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:3107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 73
    argCount: 3
    argNames:
    - ops
    - d
    - op
    argTypes:
    - struct scheduler*
    - struct domain*
    - struct xen_domctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 2912
    functionDepth: 6
    functionLinenumber: 2912
    functionLinenumberEnd: 3116
    functionName: csched2_dom_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - max
    - LIST_HEAD
    - spin_lock
    - stop_timer
    - c2rqd
    - csched2_unit
    - cpumask_test_cpu
    - read_lock_irqsave
    - cpu_raise_softirq
    - update_max_weight
    - unpark_parked_units
    - csched2_priv
    - write_lock_irqsave
    - unit_schedule_lock
    - read_unlock_irqrestore
    - NOW
    - list_splice_init
    - spin_unlock
    - burn_credits
    - sched_unit_master
    - ASSERT
    - curr_on_cpu
    - unit_schedule_unlock
    - write_unlock_irqrestore
    - csched2_dom
    - set_timer
    - __cpumask_set_cpu
    linkageType: ''
    returnType: int
    signature: "int csched2_dom_cntl(\n    const struct scheduler *ops,\n    struct
      domain *d,\n    struct xen_domctl_scheduler_op *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2957,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:2958,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:2960,1
    - Dst: update_max_weight
      Src: /src/xen/xen/common/sched/credit2.c:2963,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:2965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2955
    functionDepth: 4
    functionLinenumber: 2955
    functionLinenumberEnd: 2966
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - update_max_weight
    - sched_unit_master
    - ASSERT
    - unit_schedule_lock
    - c2rqd
    - unit_schedule_unlock
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:2995,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:2996,1
    - Dst: max
      Src: /src/xen/xen/common/sched/credit2.c:3002,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2993
    functionDepth: 1
    functionLinenumber: 2993
    functionLinenumberEnd: 3005
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - unit_schedule_lock
    - max
    - unit_schedule_unlock
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3038,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:3039,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:3042,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:3043,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3045,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3045,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit2.c:3064,1
    - Dst: NOW
      Src: /src/xen/xen/common/sched/credit2.c:3064,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3065,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3066,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3066,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/credit2.c:3067,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3036
    functionDepth: 4
    functionLinenumber: 3036
    functionLinenumberEnd: 3071
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - cpu_raise_softirq
    - burn_credits
    - sched_unit_master
    - ASSERT
    - unit_schedule_lock
    - curr_on_cpu
    - c2rqd
    - __cpumask_set_cpu
    - unit_schedule_unlock
    - csched2_unit
    - cpumask_test_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3085,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:3086,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3083
    functionDepth: 1
    functionLinenumber: 3083
    functionLinenumberEnd: 3092
    functionName: for_each_sched_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - unit_schedule_lock
    - unit_schedule_unlock
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void for_each_sched_unit ( d, unit )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3122,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit2.c:3128,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:3129,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:3131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ops
    - unit
    - hard
    - soft
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - cpumask_t*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3118
    functionDepth: 2
    functionLinenumber: 3118
    functionLinenumberEnd: 3132
    functionName: csched2_aff_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpumask_weight
    - __set_bit
    - __clear_bit
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: "void csched2_aff_cntl(const struct scheduler *ops, struct sched_unit
      *unit,\n                 const cpumask_t *hard, const cpumask_t *soft)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3139,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:3150,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3152,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3154,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:3156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - ops
    - sc
    argTypes:
    - struct scheduler*
    - struct xen_sysctl_scheduler_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3135
    functionDepth: 1
    functionLinenumber: 3135
    functionLinenumberEnd: 3165
    functionName: csched2_sys_cntl
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - printk
    - csched2_priv
    - write_lock_irqsave
    - write_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: "int csched2_sys_cntl(\n    const struct scheduler *ops, struct xen_sysctl_scheduler_op
      *sc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3171,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit2.c:3175,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/credit2.c:3177,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:3180,1
    - Dst: init_timer
      Src: /src/xen/xen/common/sched/credit2.c:3186,1
    - Dst: cpumask_any
      Src: /src/xen/xen/common/sched/credit2.c:3187,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:3187,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/credit2.c:3188,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:3189,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:3191,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/credit2.c:3193,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3193,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:3195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ops
    - dom
    argTypes:
    - struct scheduler*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3168
    functionDepth: 3
    functionLinenumber: 3168
    functionLinenumberEnd: 3198
    functionName: csched2_alloc_domdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - list_add_tail
    - cpupool_domain_master_cpumask
    - ERR_PTR
    - spin_lock_init
    - csched2_priv
    - write_lock_irqsave
    - write_unlock_irqrestore
    - INIT_LIST_HEAD
    - init_timer
    - cpumask_any
    linkageType: ''
    returnType: void
    signature: 'void *cf_check

      csched2_alloc_domdata(const struct scheduler *ops, struct domain *dom)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3204,1
    - Dst: kill_timer
      Src: /src/xen/xen/common/sched/credit2.c:3210,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:3212,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/credit2.c:3213,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:3214,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:3216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ops
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3218
      start: 3200
    functionDepth: 6
    functionLinenumber: 3200
    functionLinenumberEnd: 3218
    functionName: csched2_free_domdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - list_del_init
    - csched2_priv
    - write_lock_irqsave
    - write_unlock_irqrestore
    - kill_timer
    - xfree
    linkageType: ''
    returnType: void
    signature: void csched2_free_domdata(const struct scheduler *ops, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3227,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3227,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3228,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:3228,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3231,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit2.c:3233,1
    - Dst: csched2_res_pick
      Src: /src/xen/xen/common/sched/credit2.c:3233,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3235,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3237,1
    - Dst: runq_assign
      Src: /src/xen/xen/common/sched/credit2.c:3240,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3242,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3246,1
    - Dst: CSCHED2_UNIT_CHECK
      Src: /src/xen/xen/common/sched/credit2.c:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3220
    functionDepth: 5
    functionLinenumber: 3220
    functionLinenumberEnd: 3249
    functionName: csched2_unit_insert
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - sched_set_res
    - unit_schedule_unlock_irq
    - csched2_res_pick
    - spin_unlock_irq
    - ASSERT
    - is_idle_unit
    - runq_assign
    - unit_schedule_lock_irq
    - CSCHED2_UNIT_CHECK
    - list_empty
    linkageType: ''
    returnType: void
    signature: void csched2_unit_insert(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:3256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3251
    functionDepth: 0
    functionLinenumber: 3251
    functionLinenumberEnd: 3257
    functionName: csched2_free_udata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void csched2_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3262,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3265,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3265,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3266,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:3266,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3268,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3271,1
    - Dst: runq_deassign
      Src: /src/xen/xen/common/sched/credit2.c:3273,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/credit2.c:3275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3259
    functionDepth: 5
    functionLinenumber: 3259
    functionLinenumberEnd: 3278
    functionName: csched2_unit_remove
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - csched2_unit
    - unit_schedule_unlock_irq
    - ASSERT
    - is_idle_unit
    - runq_deassign
    - unit_schedule_lock_irq
    - list_empty
    linkageType: ''
    returnType: void
    signature: void csched2_unit_remove(const struct scheduler *ops, struct sched_unit
      *unit)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:3287,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3289,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3296,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit2.c:3312,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit2.c:3315,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:3329,1
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:3331,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3333,1
    - Dst: c2t
      Src: /src/xen/xen/common/sched/credit2.c:3353,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:3360,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3370,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3375,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - ops
    - cpu
    - snext
    - now
    - inflight_credit
    argTypes:
    - struct scheduler*
    - int
    - struct csched2_unit*
    - s_time_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3281
    functionDepth: 4
    functionLinenumber: 3281
    functionLinenumberEnd: 3379
    functionName: csched2_runtime
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - csched2_priv
    - runq_elem
    - is_idle_unit
    - MICROSECS
    - has_cap
    - c2rqd
    - c2t
    - list_empty
    linkageType: ''
    returnType: s_time_t
    signature: "s_time_t csched2_runtime(const struct scheduler *ops, int cpu,\n                struct
      csched2_unit *snext, s_time_t now, int inflight_credit)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:3390,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3392,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3395,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3395,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:3401,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/credit2.c:3412,1
    - Dst: MICROSECS
      Src: /src/xen/xen/common/sched/credit2.c:3413,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3415,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:3426,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/credit2.c:3432,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:3434,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3436,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3436,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/credit2.c:3438,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/credit2.c:3441,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:3442,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/credit2.c:3443,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/credit2.c:3466,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3469,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3469,1
    - Dst: list_for_each_safe
      Src: /src/xen/xen/common/sched/credit2.c:3472,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:3474,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3476,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:3485,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3498,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/credit2.c:3498,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3502,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3510,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3512,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:3520,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3523,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:3542,1
    - Dst: unit_grab_budget
      Src: /src/xen/xen/common/sched/credit2.c:3542,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3550,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:3563,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3566,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3567,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3574,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 56
    argCount: 4
    argNames:
    - rqd
    - scurr
    - cpu
    - now
    argTypes:
    - struct csched2_runqueue_data*
    - struct csched2_unit*
    - int
    - s_time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3577
      start: 3384
    functionDepth: 6
    functionLinenumber: 3384
    functionLinenumberEnd: 3577
    functionName: runq_candidate
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - has_cap
    - MICROSECS
    - list_for_each_safe
    - cpumask_and
    - csched2_unit
    - affinity_balance_cpumask
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - trace_time
    - csched2_priv
    - cpumask_andnot
    - __test_and_clear_bit
    - unit_grab_budget
    - sched_unit_master
    - ASSERT
    - get_sched_res
    - unit_runnable_state
    - list_entry
    - is_idle_unit
    - sched_idle_unit
    - unlikely
    - cpumask_intersects
    linkageType: ''
    returnType: struct csched2_unit
    signature: "struct csched2_unit *\nrunq_candidate(struct csched2_runqueue_data
      *rqd,\n               struct csched2_unit *scurr,\n               int cpu, s_time_t
      now)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/credit2.c:3587,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3588,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3590,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3596,1
    - Dst: CSCHED2_UNIT_CHECK
      Src: /src/xen/xen/common/sched/credit2.c:3597,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:3599,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3599,1
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3599,1
    - Dst: c2rqd
      Src: /src/xen/xen/common/sched/credit2.c:3601,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:3602,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3602,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3604,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/credit2.c:3604,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:3604,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:3606,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3606,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3609,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3612,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:3613,1
    - Dst: smt_idle_mask_set
      Src: /src/xen/xen/common/sched/credit2.c:3614,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3617,1
    - Dst: c2r
      Src: /src/xen/xen/common/sched/credit2.c:3624,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3626,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3627,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/credit2.c:3631,1
    - Dst: burn_credits
      Src: /src/xen/xen/common/sched/credit2.c:3635,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/credit2.c:3642,1
    - Dst: unit_grab_budget
      Src: /src/xen/xen/common/sched/credit2.c:3643,1
    - Dst: __clear_bit
      Src: /src/xen/xen/common/sched/credit2.c:3665,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/credit2.c:3666,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3667,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3667,1
    - Dst: runq_candidate
      Src: /src/xen/xen/common/sched/credit2.c:3670,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3675,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/credit2.c:3676,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:3677,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3680,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3687,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3688,1
    - Dst: runq_remove
      Src: /src/xen/xen/common/sched/credit2.c:3690,1
    - Dst: __set_bit
      Src: /src/xen/xen/common/sched/credit2.c:3691,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:3694,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3697,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3699,1
    - Dst: smt_idle_mask_clear
      Src: /src/xen/xen/common/sched/credit2.c:3700,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/credit2.c:3717,1
    - Dst: max
      Src: /src/xen/xen/common/sched/credit2.c:3720,1
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:3720,1
    - Dst: reset_credit
      Src: /src/xen/xen/common/sched/credit2.c:3723,1
    - Dst: balance_load
      Src: /src/xen/xen/common/sched/credit2.c:3724,1
    - Dst: test_bit
      Src: /src/xen/xen/common/sched/credit2.c:3731,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:3738,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/credit2.c:3741,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:3741,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/credit2.c:3742,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3754,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3756,1
    - Dst: smt_idle_mask_clear
      Src: /src/xen/xen/common/sched/credit2.c:3757,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3760,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3762,1
    - Dst: cpumask_andnot
      Src: /src/xen/xen/common/sched/credit2.c:3763,1
    - Dst: smt_idle_mask_set
      Src: /src/xen/xen/common/sched/credit2.c:3764,1
    - Dst: update_load
      Src: /src/xen/xen/common/sched/credit2.c:3768,1
    - Dst: csched2_runtime
      Src: /src/xen/xen/common/sched/credit2.c:3774,1
    - Dst: CSCHED2_UNIT_CHECK
      Src: /src/xen/xen/common/sched/credit2.c:3779,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 4
    argNames:
    - ops
    - currunit
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3780
      start: 3583
    functionDepth: 7
    functionLinenumber: 3583
    functionLinenumberEnd: 3780
    functionName: csched2_schedule
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - max
    - __cpumask_clear_cpu
    - csched2_runtime
    - c2rqd
    - csched2_unit
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - __set_bit
    - trace_time
    - smp_processor_id
    - spin_is_locked
    - c2r
    - csched2_priv
    - BUG_ON
    - cpumask_andnot
    - CSCHED2_UNIT_CHECK
    - runq_remove
    - test_bit
    - balance_load
    - smt_idle_mask_set
    - burn_credits
    - smt_idle_mask_clear
    - sched_set_res
    - unit_grab_budget
    - sched_unit_master
    - ASSERT
    - unit_runnable
    - list_empty
    - sched_get_resource_cpu
    - __clear_bit
    - get_sched_res
    - update_load
    - reset_credit
    - runq_elem
    - is_idle_unit
    - runq_candidate
    - sched_idle_unit
    - unlikely
    - __cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: "void csched2_schedule(\n    const struct scheduler *ops, struct sched_unit
      *currunit, s_time_t now,\n    bool tasklet_work_scheduled)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3786,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/credit2.c:3790,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3792,1
    - Dst: has_cap
      Src: /src/xen/xen/common/sched/credit2.c:3794,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3795,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3798,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - prv
    - svc
    argTypes:
    - struct csched2_private*
    - struct csched2_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3782
    functionDepth: 1
    functionLinenumber: 3782
    functionLinenumberEnd: 3802
    functionName: csched2_dump_unit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - sched_unit_master
    - printk
    - has_cap
    linkageType: ''
    returnType: void
    signature: "void csched2_dump_unit(const struct csched2_private *prv,\n                  const
      struct csched2_unit *svc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3807,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3810,1
    - Dst: c2r
      Src: /src/xen/xen/common/sched/credit2.c:3811,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3812,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3812,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3813,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3813,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3816,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3816,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:3817,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3819,1
    - Dst: csched2_dump_unit
      Src: /src/xen/xen/common/sched/credit2.c:3820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3822
      start: 3804
    functionDepth: 4
    functionLinenumber: 3804
    functionLinenumberEnd: 3822
    functionName: dump_pcpu
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_dump_unit
    - CPUMASK_PR
    - c2r
    - csched2_priv
    - is_idle_unit
    - curr_on_cpu
    - per_cpu
    - printk
    - csched2_unit
    linkageType: ''
    returnType: void
    signature: void dump_pcpu(const struct scheduler *ops, int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:3828,1
    - Dst: read_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:3837,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3839,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/credit2.c:3843,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3849,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3858,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3865,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3868,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3869,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/credit2.c:3870,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3873,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/credit2.c:3875,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/credit2.c:3880,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3882,1
    - Dst: for_each_sched_unit
      Src: /src/xen/xen/common/sched/credit2.c:3888,1
    - Dst: csched2_unit
      Src: /src/xen/xen/common/sched/credit2.c:3890,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/credit2.c:3893,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3895,1
    - Dst: csched2_dump_unit
      Src: /src/xen/xen/common/sched/credit2.c:3896,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3898,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/credit2.c:3902,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:3908,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3910,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3912,1
    - Dst: dump_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:3913,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3915,1
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:3918,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3922,1
    - Dst: csched2_dump_unit
      Src: /src/xen/xen/common/sched/credit2.c:3923,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:3926,1
    - Dst: read_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:3929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3824
    functionDepth: 5
    functionLinenumber: 3824
    functionLinenumberEnd: 3930
    functionName: csched2_dump
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_unit
    - for_each_cpu
    - read_lock_irqsave
    - spin_unlock
    - csched2_dump_unit
    - CPUMASK_PR
    - csched2_priv
    - list_entry
    - for_each_sched_unit
    - dump_pcpu
    - runq_elem
    - unit_schedule_lock
    - spin_lock
    - read_unlock_irqrestore
    - printk
    - unit_schedule_unlock
    - list_for_each_entry
    - list_for_each
    linkageType: ''
    returnType: void
    signature: void csched2_dump(const struct scheduler *ops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runq_elem
      Src: /src/xen/xen/common/sched/credit2.c:3918,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3922,1
    - Dst: csched2_dump_unit
      Src: /src/xen/xen/common/sched/credit2.c:3923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3916
    functionDepth: 2
    functionLinenumber: 3916
    functionLinenumberEnd: 3925
    functionName: list_for_each
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 16
    functionsReached:
    - runq_elem
    - csched2_dump_unit
    - printk
    linkageType: ''
    returnType: void
    signature: void list_for_each( iter, runq )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:3938,1
    - Dst: cpu_to_socket
      Src: /src/xen/xen/common/sched/credit2.c:3938,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit2.c:3940,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/credit2.c:3942,1
    - Dst: cpu_add_to_runqueue
      Src: /src/xen/xen/common/sched/credit2.c:3944,1
    - Dst: IS_ERR
      Src: /src/xen/xen/common/sched/credit2.c:3945,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:3947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3954
      start: 3932
    functionDepth: 4
    functionLinenumber: 3932
    functionLinenumberEnd: 3954
    functionName: csched2_alloc_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - IS_ERR
    - ERR_PTR
    - cpu_add_to_runqueue
    - cpu_to_socket
    - BUG_ON
    - xfree
    linkageType: ''
    returnType: void
    signature: 'void *cf_check

      csched2_alloc_pdata(const struct scheduler *ops, int cpu)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3966,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3966,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3968,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:3971,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:3973,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit2.c:3973,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:3975,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:3976,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/credit2.c:3977,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3981,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3984,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3984,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3985,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3987,1
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:3987,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3988,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3991,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3992,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3993,1
    - Dst: __cpumask_set_cpu
      Src: /src/xen/xen/common/sched/credit2.c:3994,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:3997,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit2.c:3997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - prv
    - spc
    - cpu
    - rqd
    argTypes:
    - struct csched2_private*
    - struct csched2_pcpu*
    - unsigned int
    - struct csched2_runqueue_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4001
      start: 3960
    functionDepth: 3
    functionLinenumber: 3960
    functionLinenumberEnd: 4001
    functionName: init_cpu_runqueue
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - csched2_pcpu
    - cpumask_empty
    - spin_lock_init
    - BUG_ON
    - ASSERT
    - per_cpu
    - printk
    - cpumask_weight
    - INIT_LIST_HEAD
    - __cpumask_set_cpu
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: "void init_cpu_runqueue(struct csched2_private *prv, struct csched2_pcpu
      *spc,\n                  unsigned int cpu, struct csched2_runqueue_data *rqd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4010,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/common/sched/credit2.c:4010,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4011,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4011,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4013,1
    - Dst: init_cpu_runqueue
      Src: /src/xen/xen/common/sched/credit2.c:4016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - prv
    - spc
    - cpu
    argTypes:
    - struct csched2_private*
    - struct csched2_pcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4019
      start: 4004
    functionDepth: 4
    functionLinenumber: 4004
    functionLinenumberEnd: 4019
    functionName: init_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 3
    functionsReached:
    - ASSERT
    - init_cpu_runqueue
    - cpumask_test_cpu
    - rw_is_write_locked
    linkageType: ''
    returnType: struct csched2_runqueue_data
    signature: "struct csched2_runqueue_data *\ninit_pdata(struct csched2_private
      *prv, struct csched2_pcpu *spc,\n           unsigned int cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:4026,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4030,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:4030,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4040,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/sched/credit2.c:4040,1
    - Dst: write_lock
      Src: /src/xen/xen/common/sched/credit2.c:4041,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/credit2.c:4043,1
    - Dst: init_pdata
      Src: /src/xen/xen/common/sched/credit2.c:4045,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4053,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/credit2.c:4053,1
    - Dst: write_unlock
      Src: /src/xen/xen/common/sched/credit2.c:4055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - new_ops
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4022
    functionDepth: 3
    functionLinenumber: 4022
    functionLinenumberEnd: 4058
    functionName: csched2_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - get_sched_res
    - write_unlock
    - csched2_priv
    - init_pdata
    - ASSERT
    - is_idle_unit
    - sched_idle_unit
    - write_lock
    - local_irq_is_enabled
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *cf_check\ncsched2_switch_sched(struct scheduler *new_ops,
      unsigned int cpu,\n                     void *pdata, void *vdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:4064,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:4069,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4079,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4080,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4080,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/credit2.c:4086,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4088,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4090,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4091,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4092,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4093,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4095,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4096,1
    - Dst: csched2_pcpu
      Src: /src/xen/xen/common/sched/credit2.c:4096,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4099,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/common/sched/credit2.c:4099,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4103,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/credit2.c:4105,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/credit2.c:4105,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/credit2.c:4109,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/credit2.c:4111,1
    - Dst: __cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4113,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:4115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4060
    functionDepth: 3
    functionLinenumber: 4060
    functionLinenumberEnd: 4118
    functionName: csched2_deinit_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - csched2_pcpu
    - spin_unlock
    - cpumask_empty
    - __cpumask_clear_cpu
    - csched2_priv
    - write_lock_irqsave
    - write_unlock_irqrestore
    - BUG_ON
    - ASSERT
    - spin_lock
    - cpumask_first
    - printk
    - cpumask_weight
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void csched2_deinit_pdata(const struct scheduler *ops, void *pcpu,
      int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:4123,1
    - Dst: write_lock_irqsave
      Src: /src/xen/xen/common/sched/credit2.c:4131,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4134,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4135,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/credit2.c:4135,1
    - Dst: list_del
      Src: /src/xen/xen/common/sched/credit2.c:4139,1
    - Dst: write_unlock_irqrestore
      Src: /src/xen/xen/common/sched/credit2.c:4143,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:4145,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:4146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4120
    functionDepth: 2
    functionLinenumber: 4120
    functionLinenumberEnd: 4147
    functionName: csched2_free_pdata
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - csched2_priv
    - write_lock_irqsave
    - write_unlock_irqrestore
    - ASSERT
    - list_del
    - xfree
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void csched2_free_pdata(const struct scheduler *ops, void *pcpu, int
      cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4154,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4161,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4149
    functionDepth: 1
    functionLinenumber: 4149
    functionLinenumberEnd: 4174
    functionName: csched2_global_init
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int csched2_global_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4181,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4183,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/credit2.c:4196,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/credit2.c:4205,1
    - Dst: rwlock_init
      Src: /src/xen/xen/common/sched/credit2.c:4210,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:4211,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/credit2.c:4212,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/credit2.c:4219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4176
    functionDepth: 1
    functionLinenumber: 4176
    functionLinenumberEnd: 4222
    functionName: csched2_init
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - rwlock_init
    - ASSERT
    - printk
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int csched2_init(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: csched2_priv
      Src: /src/xen/xen/common/sched/credit2.c:4229,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/credit2.c:4231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4224
    functionDepth: 1
    functionLinenumber: 4224
    functionLinenumberEnd: 4232
    functionName: csched2_deinit
    functionSourceFile: /src/xen/xen/common/sched/credit2.c
    functionUses: 0
    functionsReached:
    - xfree
    - csched2_priv
    linkageType: ''
    returnType: void
    signature: void csched2_deinit(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: null_priv
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct null_private
    signature: struct null_private *null_priv(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: null_unit
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct null_unit
    signature: struct null_unit *null_unit(const struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/null.c:126,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:126,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:127,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:127,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:127,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/null.c:128,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/null.c:130,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - unit
    - cpu
    - balance_step
    argTypes:
    - struct sched_unit*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: unit_check_affinity
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    linkageType: ''
    returnType: bool
    signature: "bool unit_check_affinity(struct sched_unit *unit,\n                                       unsigned
      int cpu,\n                                       unsigned int balance_step)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:137,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/null.c:141,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/null.c:145,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/common/sched/null.c:146,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/null.c:147,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/null.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: null_init
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_lock_init
    - INIT_LIST_HEAD
    - printk
    linkageType: ''
    returnType: int
    signature: int null_init(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/null.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: null_deinit
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void null_deinit(struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/null.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - prv
    - npc
    - cpu
    argTypes:
    - struct null_private*
    - struct null_pcpu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: init_pdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 4
    functionsReached:
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: "void init_pdata(struct null_private *prv, struct null_pcpu *npc,\n
      \                      unsigned int cpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:172,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:175,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/null.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 179
    functionName: null_deinit_pdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpumask_clear_cpu
    - null_priv
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void null_deinit_pdata(\n    const struct scheduler *ops, void *pcpu,
      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/null.c:185,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/null.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: null_alloc_pdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ERR_PTR
    linkageType: ''
    returnType: void
    signature: void *cf_check null_alloc_pdata(const struct scheduler *ops, int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/null.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ops
    - pcpu
    - cpu
    argTypes:
    - struct scheduler*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: null_free_pdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: "void null_free_pdata(\n    const struct scheduler *ops, void *pcpu,
      int cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/null.c:203,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/common/sched/null.c:207,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ops
    - unit
    - dd
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: null_alloc_udata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - INIT_LIST_HEAD
    - SCHED_STAT_CRANK
    linkageType: ''
    returnType: void
    signature: "void *cf_check null_alloc_udata(\n    const struct scheduler *ops,
      struct sched_unit *unit, void *dd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/common/sched/null.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ops
    - priv
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: null_free_udata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void null_free_udata(const struct scheduler *ops, void *priv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:225,1
    - Dst: xzalloc
      Src: /src/xen/xen/common/sched/null.c:229,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/common/sched/null.c:231,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/null.c:235,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/null.c:236,1
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:236,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/null.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ops
    - d
    argTypes:
    - struct scheduler*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 240
    functionName: null_alloc_domdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ERR_PTR
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - null_priv
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void *cf_check null_alloc_domdata(\n    const struct scheduler *ops,
      struct domain *d)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:245,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/null.c:251,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:252,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/null.c:253,1
    - Dst: xfree
      Src: /src/xen/xen/common/sched/null.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ops
    - data
    argTypes:
    - struct scheduler*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 257
    functionName: null_free_domdata
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - list_del_init
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - null_priv
    - xfree
    linkageType: ''
    returnType: void
    signature: void null_free_domdata(const struct scheduler *ops, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:277,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/null.c:278,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:279,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:281,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/common/sched/null.c:281,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:281,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:285,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/null.c:288,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:288,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:298,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/null.c:299,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:299,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/null.c:308,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:308,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:310,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:325,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:325,1
    - Dst: cpumask_any
      Src: /src/xen/xen/common/sched/null.c:326,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:326,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:329,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/null.c:340,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - prv
    - unit
    argTypes:
    - struct null_private*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 344
    functionName: pick_res
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - cpupool_domain_master_cpumask
    - trace_time
    - get_sched_res
    - has_soft_affinity
    - spin_is_locked
    - likely
    - sched_unit_master
    - ASSERT
    - cpumask_first
    - unlikely
    - cpumask_any
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *

      pick_res(const struct null_private *prv, const struct sched_unit *unit)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:285,1
    - Dst: affinity_balance_cpumask
      Src: /src/xen/xen/common/sched/null.c:288,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:288,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:289,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:298,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/null.c:299,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:299,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:306,1
    - Dst: cpumask_first
      Src: /src/xen/xen/common/sched/null.c:308,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:308,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 312
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpumask_scratch_cpu
    - has_soft_affinity
    - likely
    - cpumask_first
    - cpumask_and
    - affinity_balance_cpumask
    - cpumask_test_cpu
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bs )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:349,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:351,1
    - Dst: is_unit_online
      Src: /src/xen/xen/common/sched/null.c:351,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/null.c:354,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:354,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/common/sched/null.c:355,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/null.c:357,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:359,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/null.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - prv
    - unit
    - cpu
    argTypes:
    - struct null_private*
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: unit_assign
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - sched_set_res
    - get_sched_res
    - trace_time
    - cpumask_clear_cpu
    - ASSERT
    - unlikely
    - is_unit_online
    - dprintk
    linkageType: ''
    returnType: void
    signature: "void unit_assign(struct null_private *prv, struct sched_unit *unit,\n
      \                       unsigned int cpu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:378,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:380,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:382,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:382,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:382,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:383,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:384,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/null.c:384,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/null.c:387,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/null.c:389,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:392,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/null.c:403,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:406,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/null.c:415,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:418,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:421,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:423,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:424,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:425,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:426,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - prv
    - unit
    argTypes:
    - struct null_private*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 434
    functionName: unit_deassign
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - unit_check_affinity
    - spin_unlock
    - list_del_init
    - list_for_each_entry
    - null_unit
    - trace_time
    - get_sched_res
    - has_soft_affinity
    - cpu_raise_softirq
    - sched_unit_master
    - ASSERT
    - spin_lock
    - unit_assign
    - unlikely
    - cpumask_set_cpu
    - dprintk
    - list_empty
    - cpumask_test_cpu
    linkageType: ''
    returnType: bool
    signature: bool unit_deassign(struct null_private *prv, const struct sched_unit
      *unit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/null.c:415,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:418,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:421,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:423,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:424,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:425,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 413
    functionDepth: 4
    functionLinenumber: 413
    functionLinenumberEnd: 430
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - unit_check_affinity
    - spin_unlock
    - list_del_init
    - cpu_raise_softirq
    - has_soft_affinity
    - unit_assign
    - list_for_each_entry
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:440,1
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:441,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:444,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:444,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/null.c:446,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:453,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/common/sched/null.c:453,1
    - Dst: init_pdata
      Src: /src/xen/xen/common/sched/null.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - new_ops
    - cpu
    - pdata
    - vdata
    argTypes:
    - struct scheduler*
    - unsigned int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 458
    functionName: null_switch_sched
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - get_sched_res
    - init_pdata
    - null_priv
    - ASSERT
    - is_idle_unit
    - sched_idle_unit
    - local_irq_is_enabled
    linkageType: ''
    returnType: spinlock_t
    signature: "spinlock_t *cf_check null_switch_sched(\n    struct scheduler *new_ops,
      unsigned int cpu, void *pdata, void *vdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:463,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:464,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:469,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:469,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/null.c:471,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:473,1
    - Dst: is_unit_online
      Src: /src/xen/xen/common/sched/null.c:473,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/null.c:475,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/null.c:480,1
    - Dst: pick_res
      Src: /src/xen/xen/common/sched/null.c:480,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:481,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:482,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:484,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/null.c:486,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:488,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:488,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/null.c:489,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:492,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:498,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/common/sched/null.c:500,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:500,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:515,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/null.c:516,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/null.c:517,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:519,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/common/sched/null.c:521,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 524
    functionName: null_unit_insert
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - likely
    - null_priv
    - spin_lock
    - cpumask_and
    - cpumask_scratch_cpu
    - SCHED_STAT_CRANK
    - unit_schedule_unlock_irq
    - unit_schedule_lock
    - unit_schedule_lock_irq
    - is_unit_online
    - dprintk
    - spin_unlock
    - null_unit
    - sched_set_res
    - sched_unit_master
    - spin_unlock_irq
    - ASSERT
    - unit_assign
    - pick_res
    - get_sched_res
    - is_idle_unit
    - unlikely
    - list_add_tail
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: "void null_unit_insert(\n    const struct scheduler *ops, struct sched_unit
      *unit)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:529,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:530,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:535,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:535,1
    - Dst: unit_schedule_lock_irq
      Src: /src/xen/xen/common/sched/null.c:537,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:540,1
    - Dst: is_unit_online
      Src: /src/xen/xen/common/sched/null.c:540,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:543,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:544,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:544,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:549,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:549,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:551,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:552,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:553,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:558,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:559,1
    - Dst: unit_deassign
      Src: /src/xen/xen/common/sched/null.c:561,1
    - Dst: unit_schedule_unlock_irq
      Src: /src/xen/xen/common/sched/null.c:564,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 526
    functionDepth: 5
    functionLinenumber: 526
    functionLinenumberEnd: 567
    functionName: null_unit_remove
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - spin_unlock
    - list_del_init
    - null_unit
    - get_sched_res
    - unit_schedule_unlock_irq
    - unit_deassign
    - sched_unit_master
    - null_priv
    - ASSERT
    - is_idle_unit
    - spin_lock
    - unit_schedule_lock_irq
    - unlikely
    - is_unit_online
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void null_unit_remove(\n    const struct scheduler *ops, struct sched_unit
      *unit)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:572,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:573,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:574,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:575,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:577,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:577,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:579,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/null.c:579,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:579,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:581,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:585,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:585,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:588,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:592,1
    - Dst: unit_runnable
      Src: /src/xen/xen/common/sched/null.c:592,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:593,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:595,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:597,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:599,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:610,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:612,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:613,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:615,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:616,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:629,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/null.c:630,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:631,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:633,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:633,1
    - Dst: cpupool_domain_master_cpumask
      Src: /src/xen/xen/common/sched/null.c:634,1
    - Dst: cpumask_and
      Src: /src/xen/xen/common/sched/null.c:635,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:635,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:635,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/common/sched/null.c:638,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:638,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/null.c:639,1
    - Dst: cpumask_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:642,1
    - Dst: cpumask_scratch_cpu
      Src: /src/xen/xen/common/sched/null.c:642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 643
    functionName: null_unit_wake
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - cpupool_domain_master_cpumask
    - has_soft_affinity
    - likely
    - null_priv
    - spin_lock
    - cpumask_raise_softirq
    - cpumask_and
    - SCHED_STAT_CRANK
    - cpumask_scratch_cpu
    - cpu_raise_softirq
    - dprintk
    - spin_unlock
    - null_unit
    - sched_unit_master
    - ASSERT
    - curr_on_cpu
    - unit_runnable
    - unit_assign
    - list_empty
    - unit_check_affinity
    - get_sched_res
    - cpumask_empty
    - is_idle_unit
    - unlikely
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void null_unit_wake(\n    const struct scheduler *ops, struct sched_unit
      *unit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:648,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:649,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:650,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:653,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:653,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:659,1
    - Dst: is_unit_online
      Src: /src/xen/xen/common/sched/null.c:659,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:661,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:663,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:663,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:665,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:666,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:667,1
    - Dst: unit_deassign
      Src: /src/xen/xen/common/sched/null.c:670,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:674,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/null.c:674,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:675,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 645
    functionDepth: 5
    functionLinenumber: 645
    functionLinenumberEnd: 678
    functionName: null_unit_sleep
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - SCHED_STAT_CRANK
    - spin_unlock
    - list_del_init
    - cpu_raise_softirq
    - null_unit
    - get_sched_res
    - unit_deassign
    - likely
    - sched_unit_master
    - null_priv
    - ASSERT
    - is_idle_unit
    - spin_lock
    - curr_on_cpu
    - unlikely
    - is_unit_online
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void null_unit_sleep(\n    const struct scheduler *ops, struct sched_unit
      *unit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:683,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:683,1
    - Dst: pick_res
      Src: /src/xen/xen/common/sched/null.c:684,1
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ops
    - unit
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 4
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: null_res_pick
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - null_priv
    - ASSERT
    - pick_res
    - is_idle_unit
    linkageType: ''
    returnType: struct sched_resource
    signature: 'struct sched_resource *cf_check

      null_res_pick(const struct scheduler *ops, const struct sched_unit *unit)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:690,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:691,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:694,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:694,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:696,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:699,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:707,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/null.c:711,1
    - Dst: likely
      Src: /src/xen/xen/common/sched/null.c:719,1
    - Dst: unit_deassign
      Src: /src/xen/xen/common/sched/null.c:721,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:722,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:724,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:725,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:727,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:736,1
    - Dst: is_unit_online
      Src: /src/xen/xen/common/sched/null.c:736,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:738,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:739,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:740,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:753,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:755,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:758,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:759,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:760,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:762,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:767,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:768,1
    - Dst: list_add_tail
      Src: /src/xen/xen/common/sched/null.c:770,1
    - Dst: dprintk
      Src: /src/xen/xen/common/sched/null.c:771,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:775,1
    - Dst: sched_set_res
      Src: /src/xen/xen/common/sched/null.c:787,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - ops
    - unit
    - new_cpu
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 788
    functionName: null_unit_migrate
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - list_del_init
    - unit_deassign
    - likely
    - null_priv
    - spin_lock
    - SCHED_STAT_CRANK
    - trace_time
    - is_unit_online
    - dprintk
    - spin_unlock
    - null_unit
    - sched_set_res
    - sched_unit_master
    - ASSERT
    - unit_assign
    - list_empty
    - unit_check_affinity
    - get_sched_res
    - is_idle_unit
    - unlikely
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: "void null_unit_migrate(\n    const struct scheduler *ops, struct sched_unit
      *unit, unsigned int new_cpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:793,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/null.c:796,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/null.c:799,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:799,1
    - Dst: BUG_ON
      Src: /src/xen/xen/common/sched/null.c:801,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:801,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unit
    argTypes:
    - struct sched_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 804
    functionName: null_unit_check
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - is_idle_unit
    - SCHED_STAT_CRANK
    - null_unit
    linkageType: ''
    returnType: void
    signature: void null_unit_check(struct sched_unit *unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - unit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 806
    functionName: NULL_UNIT_CHECK
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NULL_UNIT_CHECK(unit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/common/sched/null.c:821,1
    - Dst: sched_get_resource_cpu
      Src: /src/xen/xen/common/sched/null.c:822,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:823,1
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:824,1
    - Dst: SCHED_STAT_CRANK
      Src: /src/xen/xen/common/sched/null.c:827,1
    - Dst: NULL_UNIT_CHECK
      Src: /src/xen/xen/common/sched/null.c:828,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:830,1
    - Dst: trace_time
      Src: /src/xen/xen/common/sched/null.c:850,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/common/sched/null.c:855,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/null.c:856,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:867,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:871,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:873,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/null.c:886,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:889,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:892,1
    - Dst: pcpu_schedule_trylock
      Src: /src/xen/xen/common/sched/null.c:904,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:904,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:911,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:911,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:914,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:915,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:917,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:930,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:931,1
    - Dst: cpu_raise_softirq
      Src: /src/xen/xen/common/sched/null.c:932,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:934,1
    - Dst: cpumask_test_cpu
      Src: /src/xen/xen/common/sched/null.c:937,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/common/sched/null.c:938,1
    - Dst: unlikely
      Src: /src/xen/xen/common/sched/null.c:941,1
    - Dst: unit_runnable_state
      Src: /src/xen/xen/common/sched/null.c:942,1
    - Dst: sched_idle_unit
      Src: /src/xen/xen/common/sched/null.c:943,1
    - Dst: NULL_UNIT_CHECK
      Src: /src/xen/xen/common/sched/null.c:945,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - ops
    - prev
    - now
    - tasklet_work_scheduled
    argTypes:
    - struct scheduler*
    - struct sched_unit*
    - s_time_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 816
    functionDepth: 4
    functionLinenumber: 816
    functionLinenumberEnd: 948
    functionName: null_schedule
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - TRACE_TIME
    - list_del_init
    - has_soft_affinity
    - null_priv
    - spin_lock
    - cpumask_test_cpu
    - SCHED_STAT_CRANK
    - cpu_raise_softirq
    - trace_time
    - smp_processor_id
    - pcpu_schedule_trylock
    - spin_unlock
    - sched_unit_master
    - ASSERT
    - unit_assign
    - list_for_each_entry
    - list_empty
    - unit_check_affinity
    - sched_get_resource_cpu
    - NULL_UNIT_CHECK
    - get_sched_res
    - unit_runnable_state
    - sched_idle_unit
    - unlikely
    - cpumask_set_cpu
    linkageType: ''
    returnType: void
    signature: "void null_schedule(\n    const struct scheduler *ops, struct sched_unit
      *prev, s_time_t now,\n    bool tasklet_work_scheduled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/common/sched/null.c:886,1
    - Dst: has_soft_affinity
      Src: /src/xen/xen/common/sched/null.c:889,1
    - Dst: unit_check_affinity
      Src: /src/xen/xen/common/sched/null.c:892,1
    - Dst: pcpu_schedule_trylock
      Src: /src/xen/xen/common/sched/null.c:904,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:904,1
    - Dst: ASSERT
      Src: /src/xen/xen/common/sched/null.c:911,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:911,1
    - Dst: unit_assign
      Src: /src/xen/xen/common/sched/null.c:914,1
    - Dst: list_del_init
      Src: /src/xen/xen/common/sched/null.c:915,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:917,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 884
    functionDepth: 4
    functionLinenumber: 884
    functionLinenumberEnd: 922
    functionName: for_each_affinity_balance_step
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - unit_check_affinity
    - spin_unlock
    - list_del_init
    - get_sched_res
    - has_soft_affinity
    - sched_unit_master
    - ASSERT
    - unit_assign
    - list_for_each_entry
    - pcpu_schedule_trylock
    linkageType: ''
    returnType: void
    signature: void for_each_affinity_balance_step( bs )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:953,1
    - Dst: list_empty
      Src: /src/xen/xen/common/sched/null.c:954,1
    - Dst: sched_unit_master
      Src: /src/xen/xen/common/sched/null.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prv
    - nvc
    argTypes:
    - struct null_private*
    - struct null_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: dump_unit
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 11
    functionsReached:
    - sched_unit_master
    - list_empty
    - printk
    linkageType: ''
    returnType: void
    signature: "void dump_unit(const struct null_private *prv,\n                             const
      struct null_unit *nvc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:960,1
    - Dst: get_sched_res
      Src: /src/xen/xen/common/sched/null.c:961,1
    - Dst: pcpu_schedule_lock_irqsave
      Src: /src/xen/xen/common/sched/null.c:966,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:968,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/null.c:969,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/null.c:969,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/null.c:970,1
    - Dst: per_cpu
      Src: /src/xen/xen/common/sched/null.c:970,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:972,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:973,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:976,1
    - Dst: curr_on_cpu
      Src: /src/xen/xen/common/sched/null.c:976,1
    - Dst: is_idle_unit
      Src: /src/xen/xen/common/sched/null.c:977,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:979,1
    - Dst: dump_unit
      Src: /src/xen/xen/common/sched/null.c:980,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:981,1
    - Dst: pcpu_schedule_unlock_irqrestore
      Src: /src/xen/xen/common/sched/null.c:984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ops
    - cpu
    argTypes:
    - struct scheduler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 985
    functionName: null_dump_pcpu
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - null_unit
    - get_sched_res
    - CPUMASK_PR
    - null_priv
    - is_idle_unit
    - pcpu_schedule_unlock_irqrestore
    - curr_on_cpu
    - per_cpu
    - printk
    - pcpu_schedule_lock_irqsave
    - dump_unit
    linkageType: ''
    returnType: void
    signature: void null_dump_pcpu(const struct scheduler *ops, int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_priv
      Src: /src/xen/xen/common/sched/null.c:989,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/common/sched/null.c:994,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:996,1
    - Dst: CPUMASK_PR
      Src: /src/xen/xen/common/sched/null.c:996,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:998,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/null.c:1000,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/null.c:1005,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1007,1
    - Dst: for_each_sched_unit
      Src: /src/xen/xen/common/sched/null.c:1008,1
    - Dst: null_unit
      Src: /src/xen/xen/common/sched/null.c:1010,1
    - Dst: unit_schedule_lock
      Src: /src/xen/xen/common/sched/null.c:1013,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1015,1
    - Dst: dump_unit
      Src: /src/xen/xen/common/sched/null.c:1016,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1017,1
    - Dst: unit_schedule_unlock
      Src: /src/xen/xen/common/sched/null.c:1019,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1023,1
    - Dst: spin_lock
      Src: /src/xen/xen/common/sched/null.c:1025,1
    - Dst: list_for_each
      Src: /src/xen/xen/common/sched/null.c:1026,1
    - Dst: list_entry
      Src: /src/xen/xen/common/sched/null.c:1028,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1031,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1033,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1034,1
    - Dst: printk
      Src: /src/xen/xen/common/sched/null.c:1036,1
    - Dst: spin_unlock
      Src: /src/xen/xen/common/sched/null.c:1037,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/common/sched/null.c:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct scheduler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1040
    functionName: null_dump
    functionSourceFile: /src/xen/xen/common/sched/null.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - null_unit
    - CPUMASK_PR
    - spin_lock_irqsave
    - list_entry
    - for_each_sched_unit
    - spin_unlock_irqrestore
    - null_priv
    - unit_schedule_lock
    - spin_lock
    - printk
    - dump_unit
    - unit_schedule_unlock
    - list_for_each
    linkageType: ''
    returnType: void
    signature: void null_dump(const struct scheduler *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/lz4/defs.h:22,1
    - Dst: le16_to_cpu
      Src: /src/xen/xen/common/lz4/defs.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: get_unaligned_le16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 2
    functionsReached:
    - le16_to_cpu
    - memcpy
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_unaligned_le16(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: A16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: A32
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: A64
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: PUT4
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT4(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: PUT8
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT8(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: LZ4_WRITE_LITTLEENDIAN_16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_WRITE_LITTLEENDIAN_16(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: A64
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: A32
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: A16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: A16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: PUT4
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT4(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: PUT8
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUT8(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: LZ4_WRITE_LITTLEENDIAN_16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_WRITE_LITTLEENDIAN_16(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: LZ4_HASH_VALUE
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_HASH_VALUE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: LZ4_HASH64K_VALUE
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_HASH64K_VALUE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: HASH_VALUE
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_VALUE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: LZ4_COPYSTEP
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_COPYSTEP(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: LZ4_COPYPACKET
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_COPYPACKET(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: LZ4_SECURECOPY
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_SECURECOPY(s, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: LZ4_NBCOMMONBYTES
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_NBCOMMONBYTES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: LZ4_NBCOMMONBYTES
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_NBCOMMONBYTES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: LZ4_COPYSTEP
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_COPYSTEP(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: LZ4_COPYPACKET
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_COPYPACKET(s, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: LZ4_NBCOMMONBYTES
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_NBCOMMONBYTES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: LZ4_NBCOMMONBYTES
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_NBCOMMONBYTES(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: LZ4_READ_LITTLEENDIAN_16
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_READ_LITTLEENDIAN_16(d, s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: LZ4_WILDCOPY
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_WILDCOPY(s, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - d
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: LZ4_BLINDCOPY
    functionSourceFile: /src/xen/xen/common/lz4/defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZ4_BLINDCOPY(s, d, l)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:76,1
    - Dst: memcpy
      Src: /src/xen/xen/common/lz4/decompress.c:84,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:88,1
    - Dst: LZ4_WILDCOPY
      Src: /src/xen/xen/common/lz4/decompress.c:90,1
    - Dst: LZ4_READ_LITTLEENDIAN_16
      Src: /src/xen/xen/common/lz4/decompress.c:95,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:99,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:111,1
    - Dst: PUT4
      Src: /src/xen/xen/common/lz4/decompress.c:124,1
    - Dst: LZ4_COPYSTEP
      Src: /src/xen/xen/common/lz4/decompress.c:128,1
    - Dst: LZ4_SECURECOPY
      Src: /src/xen/xen/common/lz4/decompress.c:143,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:155,1
    - Dst: LZ4_SECURECOPY
      Src: /src/xen/xen/common/lz4/decompress.c:157,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 3
    argNames:
    - source
    - dest
    - osize
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 166
    functionName: lz4_uncompress
    functionSourceFile: /src/xen/xen/common/lz4/decompress.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LZ4_WILDCOPY
    - LZ4_COPYSTEP
    - PUT4
    - LZ4_READ_LITTLEENDIAN_16
    - memcpy
    - LZ4_SECURECOPY
    linkageType: ''
    returnType: int
    signature: "int lz4_uncompress(const unsigned char *source, unsigned char *dest,\n\t\t\t\t
      int osize)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/common/lz4/decompress.c:213,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:217,1
    - Dst: LZ4_WILDCOPY
      Src: /src/xen/xen/common/lz4/decompress.c:219,1
    - Dst: LZ4_READ_LITTLEENDIAN_16
      Src: /src/xen/xen/common/lz4/decompress.c:224,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:246,1
    - Dst: PUT4
      Src: /src/xen/xen/common/lz4/decompress.c:259,1
    - Dst: LZ4_COPYSTEP
      Src: /src/xen/xen/common/lz4/decompress.c:263,1
    - Dst: LZ4_SECURECOPY
      Src: /src/xen/xen/common/lz4/decompress.c:276,1
    - Dst: unlikely
      Src: /src/xen/xen/common/lz4/decompress.c:288,1
    - Dst: LZ4_SECURECOPY
      Src: /src/xen/xen/common/lz4/decompress.c:290,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 4
    argNames:
    - source
    - dest
    - isize
    - maxoutputsize
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 299
    functionName: lz4_uncompress_unknownoutputsize
    functionSourceFile: /src/xen/xen/common/lz4/decompress.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LZ4_WILDCOPY
    - LZ4_COPYSTEP
    - PUT4
    - LZ4_READ_LITTLEENDIAN_16
    - memcpy
    - LZ4_SECURECOPY
    linkageType: ''
    returnType: int
    signature: "int lz4_uncompress_unknownoutputsize(const unsigned char *source,\n\t\t\t\tunsigned
      char *dest, int isize,\n\t\t\t\tsize_t maxoutputsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lz4_uncompress
      Src: /src/xen/xen/common/lz4/decompress.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - src
    - src_len
    - dest
    - actual_dest_len
    argTypes:
    - unsigned char*
    - size_t*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: lz4_decompress
    functionSourceFile: /src/xen/xen/common/lz4/decompress.c
    functionUses: 1
    functionsReached:
    - lz4_uncompress
    linkageType: ''
    returnType: int
    signature: "int lz4_decompress(const unsigned char *src, size_t *src_len,\n\t\t\t
      \ unsigned char *dest, size_t actual_dest_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lz4_uncompress_unknownoutputsize
      Src: /src/xen/xen/common/lz4/decompress.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - src
    - src_len
    - dest
    - dest_len
    argTypes:
    - unsigned char*
    - size_t
    - unsigned char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 338
    functionName: lz4_decompress_unknownoutputsize
    functionSourceFile: /src/xen/xen/common/lz4/decompress.c
    functionUses: 2
    functionsReached:
    - lz4_uncompress_unknownoutputsize
    linkageType: ''
    returnType: int
    signature: "int lz4_decompress_unknownoutputsize(const unsigned char *src, size_t
      src_len,\n\t\t unsigned char *dest, size_t *dest_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_control_domain
      Src: /src/xen/xen/xsm/silo.c:32,1
    - Dst: is_control_domain
      Src: /src/xen/xen/xsm/silo.c:32,1
    - Dst: is_control_domain
      Src: /src/xen/xen/xsm/silo.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ldom
    - rdom
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: silo_mode_dom_check
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - is_control_domain
    linkageType: ''
    returnType: bool
    signature: "bool silo_mode_dom_check(const struct domain *ldom,\n                                const
      struct domain *rdom)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/xsm/silo.c:40,1
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:46,1
    - Dst: xsm_evtchn_unbound
      Src: /src/xen/xen/xsm/silo.c:47,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/xsm/silo.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - d1
    - chn
    - id2
    argTypes:
    - struct domain*
    - struct evtchn*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: silo_evtchn_unbound
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - rcu_lock_domain_by_any_id
    - silo_mode_dom_check
    - rcu_unlock_domain
    - xsm_evtchn_unbound
    linkageType: ''
    returnType: int
    signature: "int silo_evtchn_unbound(\n    struct domain *d1, struct evtchn *chn,
      domid_t id2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:58,1
    - Dst: xsm_evtchn_interdomain
      Src: /src/xen/xen/xsm/silo.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - d1
    - chan1
    - d2
    - chan2
    argTypes:
    - struct domain*
    - struct evtchn*
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: silo_evtchn_interdomain
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_evtchn_interdomain
    linkageType: ''
    returnType: int
    signature: "int silo_evtchn_interdomain(\n    struct domain *d1, struct evtchn
      *chan1,\n    struct domain *d2, struct evtchn *chan2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:66,1
    - Dst: xsm_grant_mapref
      Src: /src/xen/xen/xsm/silo.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d1
    - d2
    - flags
    argTypes:
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: silo_grant_mapref
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_grant_mapref
    linkageType: ''
    returnType: int
    signature: "int silo_grant_mapref(\n    struct domain *d1, struct domain *d2,
      uint32_t flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:73,1
    - Dst: xsm_grant_transfer
      Src: /src/xen/xen/xsm/silo.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: silo_grant_transfer
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_grant_transfer
    linkageType: ''
    returnType: int
    signature: int silo_grant_transfer(struct domain *d1, struct domain *d2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:80,1
    - Dst: xsm_grant_copy
      Src: /src/xen/xen/xsm/silo.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: silo_grant_copy
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_grant_copy
    linkageType: ''
    returnType: int
    signature: int silo_grant_copy(struct domain *d1, struct domain *d2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:90,1
    - Dst: xsm_argo_register_single_source
      Src: /src/xen/xen/xsm/silo.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: silo_argo_register_single_source
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_argo_register_single_source
    linkageType: ''
    returnType: int
    signature: "int silo_argo_register_single_source(\n    const struct domain *d1,
      const struct domain *d2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: silo_mode_dom_check
      Src: /src/xen/xen/xsm/silo.c:98,1
    - Dst: xsm_argo_send
      Src: /src/xen/xen/xsm/silo.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: silo_argo_send
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - silo_mode_dom_check
    - xsm_argo_send
    linkageType: ''
    returnType: int
    signature: "int silo_argo_send(\n    const struct domain *d1, const struct domain
      *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/silo.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: silo_init
    functionSourceFile: /src/xen/xen/xsm/silo.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: struct xsm_ops
    signature: struct xsm_ops *__init silo_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/xsm_core.c:63,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/xsm_core.c:66,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/xsm_core.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: parse_xsm_param
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_xsm_param(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:94,1
    - Dst: flask_init
      Src: /src/xen/xen/xsm/xsm_core.c:106,1
    - Dst: silo_init
      Src: /src/xen/xen/xsm/xsm_core.c:110,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/xsm/xsm_core.c:114,1
    - Dst: xsm_fixup_ops
      Src: /src/xen/xen/xsm/xsm_core.c:129,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - policy_buffer
    - policy_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 140
    functionName: xsm_core_init
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 0
    functionsReached:
    - silo_init
    - xsm_fixup_ops
    - flask_init
    - printk
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int xsm_core_init(const void *policy_buffer, size_t policy_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:149,1
    - Dst: xsm_multiboot_policy_init
      Src: /src/xen/xen/xsm/xsm_core.c:153,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/xsm/xsm_core.c:156,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:157,1
    - Dst: xsm_core_init
      Src: /src/xen/xen/xsm/xsm_core.c:162,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/xsm/xsm_core.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bi
    argTypes:
    - struct boot_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: xsm_multiboot_init
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 1
    functionsReached:
    - bootstrap_unmap
    - xsm_core_init
    - printk
    - xsm_multiboot_policy_init
    linkageType: ''
    returnType: int
    signature: int xsm_multiboot_init(struct boot_info *bi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:176,1
    - Dst: xsm_dt_policy_init
      Src: /src/xen/xen/xsm/xsm_core.c:180,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_core.c:183,1
    - Dst: xsm_core_init
      Src: /src/xen/xen/xsm/xsm_core.c:188,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/xsm_core.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 193
    functionName: xsm_dt_init
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 1
    functionsReached:
    - xfree
    - xsm_core_init
    - printk
    - xsm_dt_policy_init
    linkageType: ''
    returnType: int
    signature: int xsm_dt_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_paddr
      Src: /src/xen/xen/xsm/xsm_core.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - start
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: has_xsm_magic
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 1
    functionsReached:
    - copy_from_paddr
    linkageType: ''
    returnType: bool
    signature: bool has_xsm_magic(paddr_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsm_do_xsm_op
      Src: /src/xen/xen/xsm/xsm_core.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: do_xsm_op
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 1
    functionsReached:
    - xsm_do_xsm_op
    linkageType: ''
    returnType: long
    signature: long do_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xsm_do_compat_op
      Src: /src/xen/xen/xsm/xsm_core.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: compat_xsm_op
    functionSourceFile: /src/xen/xen/xsm/xsm_core.c
    functionUses: 0
    functionsReached:
    - xsm_do_compat_op
    linkageType: ''
    returnType: int
    signature: int compat_xsm_op(XEN_GUEST_HANDLE_PARAM(void) op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/xsm/xsm_policy.c:45,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_policy.c:53,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/xsm/xsm_policy.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - bi
    - policy_buffer
    - policy_size
    argTypes:
    - struct boot_info*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: xsm_multiboot_policy_init
    functionSourceFile: /src/xen/xen/xsm/xsm_policy.c
    functionUses: 1
    functionsReached:
    - bootstrap_map_bm
    - printk
    - bootstrap_unmap
    linkageType: ''
    returnType: int
    signature: "int xsm_multiboot_policy_init(\n    struct boot_info *bi, void **policy_buffer,
      size_t *policy_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bootstrap_map_bm
      Src: /src/xen/xen/xsm/xsm_policy.c:45,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_policy.c:53,1
    - Dst: bootstrap_unmap
      Src: /src/xen/xen/xsm/xsm_policy.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: for_each_boot_module_by_type
    functionSourceFile: /src/xen/xen/xsm/xsm_policy.c
    functionUses: 0
    functionsReached:
    - bootstrap_map_bm
    - printk
    - bootstrap_unmap
    linkageType: ''
    returnType: void
    signature: void for_each_boot_module_by_type ( i, bi, BOOTMOD_UNKNOWN )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: boot_module_find_by_kind
      Src: /src/xen/xen/xsm/xsm_policy.c:71,1
    - Dst: has_xsm_magic
      Src: /src/xen/xen/xsm/xsm_policy.c:80,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_policy.c:82,1
    - Dst: printk
      Src: /src/xen/xen/xsm/xsm_policy.c:86,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/xsm/xsm_policy.c:89,1
    - Dst: copy_from_paddr
      Src: /src/xen/xen/xsm/xsm_policy.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - policy_buffer
    - policy_size
    argTypes:
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: xsm_dt_policy_init
    functionSourceFile: /src/xen/xen/xsm/xsm_policy.c
    functionUses: 1
    functionsReached:
    - has_xsm_magic
    - copy_from_paddr
    - boot_module_find_by_kind
    - xmalloc_bytes
    - printk
    linkageType: ''
    returnType: int
    signature: int xsm_dt_policy_init(void **policy_buffer, size_t *policy_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _p
      Src: /src/xen/xen/xsm/dummy.c:167,1
    - Dst: _p
      Src: /src/xen/xen/xsm/dummy.c:168,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/dummy.c:180,1
    - Dst: is_kernel_text
      Src: /src/xen/xen/xsm/dummy.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct xsm_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 185
    functionName: xsm_fixup_ops
    functionSourceFile: /src/xen/xen/xsm/dummy.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    - is_kernel_text
    - _p
    linkageType: ''
    returnType: void
    signature: void xsm_fixup_ops(struct xsm_ops *ops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: domain_sid
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t domain_sid(const struct domain *dom)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: domain_target_sid
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t domain_target_sid(\n    const struct domain *src, const struct
      domain *dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: evtchn_sid
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t evtchn_sid(const struct evtchn *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:75,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:79,1
    - Dst: domain_target_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:80,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dom1
    - dom2
    - class
    - perms
    argTypes:
    - struct domain*
    - struct domain*
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: domain_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - domain_target_sid
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: "int domain_has_perm(\n    const struct domain *dom1, const struct
      domain *dom2, uint16_t class,\n    uint32_t perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:88,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - tsid
    - class
    - perm
    - ad
    argTypes:
    - uint32_t
    - uint16_t
    - uint32_t
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: avc_current_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: "int avc_current_has_perm(\n    uint32_t tsid, uint16_t class, uint32_t
      perm, struct avc_audit_data *ad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - class
    - perms
    argTypes:
    - struct domain*
    - uint16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: current_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int current_has_perm(struct domain *d, uint16_t class, uint32_t perms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:100,1
    - Dst: evtchn_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:101,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - chn
    - perms
    argTypes:
    - struct domain*
    - struct evtchn*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: domain_has_evtchn
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - evtchn_sid
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: "int domain_has_evtchn(\n    struct domain *d, struct evtchn *chn,
      uint32_t perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:108,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - perms
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: domain_has_xen
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int domain_has_xen(struct domain *d, uint32_t perms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:119,1
    - Dst: security_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:122,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/xsm/flask/hooks.c:126,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:134,1
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:137,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - irq
    - sid
    - ad
    argTypes:
    - int
    - uint32_t*
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: get_irq_sid
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_device_sid
    - security_irq_sid
    - irq_to_desc
    linkageType: ''
    returnType: int
    signature: int get_irq_sid(int irq, uint32_t *sid, struct avc_audit_data *ad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_get_allow_unknown
      Src: /src/xen/xen/xsm/flask/hooks.c:156,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:158,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - name
    - id
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: avc_unknown_permission
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_get_allow_unknown
    - printk
    linkageType: ''
    returnType: int
    signature: int avc_unknown_permission(const char *name, int id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/hooks.c:174,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 207
    functionName: flask_domain_alloc_security
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int flask_domain_alloc_security(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/xsm/flask/hooks.c:216,1
    - Dst: ASSERT
      Src: /src/xen/xen/xsm/flask/hooks.c:217,1
    - Dst: ASSERT
      Src: /src/xen/xen/xsm/flask/hooks.c:218,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: flask_set_system_active
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - printk
    linkageType: ''
    returnType: int
    signature: int flask_set_system_active(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/hooks.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: flask_domain_free_security
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void flask_domain_free_security(struct domain *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/xsm/flask/hooks.c:256,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:260,1
    - Dst: domain_target_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:261,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:263,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:267,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:271,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/xsm/flask/hooks.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - d1
    - chn
    - id2
    argTypes:
    - struct domain*
    - struct evtchn*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 249
    functionDepth: 5
    functionLinenumber: 249
    functionLinenumberEnd: 280
    functionName: flask_evtchn_unbound
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_transition_sid
    - domain_sid
    - domain_target_sid
    - rcu_lock_domain_by_any_id
    - avc_has_perm
    - avc_current_has_perm
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: "int flask_evtchn_unbound(\n    struct domain *d1, struct evtchn *chn,
      domid_t id2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:289,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:293,1
    - Dst: domain_target_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:294,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:296,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:299,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:303,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:307,1
    - Dst: evtchn_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:314,1
    - Dst: domain_target_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:315,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:316,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - d1
    - chn1
    - d2
    - chn2
    argTypes:
    - struct domain*
    - struct evtchn*
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 323
    functionName: flask_evtchn_interdomain
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_transition_sid
    - domain_sid
    - domain_target_sid
    - printk
    - evtchn_sid
    - avc_has_perm
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_evtchn_interdomain(\n    struct domain *d1, struct evtchn
      *chn1,\n    struct domain *d2, struct evtchn *chn2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: flask_evtchn_close_post
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void flask_evtchn_close_post(struct evtchn *chn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_evtchn
      Src: /src/xen/xen/xsm/flask/hooks.c:337,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: flask_evtchn_send
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - domain_has_evtchn
    linkageType: ''
    returnType: int
    signature: int flask_evtchn_send(struct domain *d, struct evtchn *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_evtchn
      Src: /src/xen/xen/xsm/flask/hooks.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: flask_evtchn_status
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_evtchn
    linkageType: ''
    returnType: int
    signature: int flask_evtchn_status(struct domain *d, struct evtchn *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: flask_evtchn_reset
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_evtchn_reset(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 370
    functionName: flask_alloc_security_evtchns
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int flask_alloc_security_evtchns(\n    struct evtchn chn[], unsigned
      int nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - nr
    argTypes:
    - struct evtchn[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: flask_free_security_evtchns
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void flask_free_security_evtchns(\n    struct evtchn chn[], unsigned
      int nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: evtchn_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:396,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/xsm/flask/hooks.c:399,1
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:400,1
    - Dst: security_sid_to_context
      Src: /src/xen/xen/xsm/flask/hooks.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - d
    - chn
    argTypes:
    - struct domain*
    - struct evtchn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 409
    functionName: flask_show_security_evtchn
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - evtchn_sid
    - domain_pirq_to_irq
    - security_sid_to_context
    - get_irq_sid
    linkageType: ''
    returnType: char
    signature: "char *cf_check flask_show_security_evtchn(\n    struct domain *d,
      const struct evtchn *chn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: flask_init_hardware_domain
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_init_hardware_domain(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d1
    - d2
    - flags
    argTypes:
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: flask_grant_mapref
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_grant_mapref(\n    struct domain *d1, struct domain *d2,
      uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: flask_grant_unmapref
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_grant_unmapref(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: flask_grant_setup
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_grant_setup(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: flask_grant_transfer
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_grant_transfer(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: flask_grant_copy
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_grant_copy(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: flask_grant_query_size
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_grant_query_size(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 455
    functionName: flask_get_pod_target
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_get_pod_target(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 460
    functionName: flask_set_pod_target
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_set_pod_target(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: flask_memory_exchange
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_memory_exchange(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 471
    functionName: flask_memory_adjust_reservation
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_memory_adjust_reservation(\n    struct domain *d1, struct
      domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: flask_memory_stat_reservation
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_memory_stat_reservation(\n    struct domain *d1, struct
      domain *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d1
    - d2
    - page
    argTypes:
    - struct domain*
    - struct domain*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 483
    functionName: flask_memory_pin_page
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_memory_pin_page(\n    struct domain *d1, struct domain *d2,
      struct page_info *page)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: flask_claim_pages
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_claim_pages(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: flask_get_vnumainfo
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_get_vnumainfo(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:508,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - d
    - cmd
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 512
    functionName: flask_console_io
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_console_io(struct domain *d, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: flask_kexec
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_kexec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: flask_schedop_shutdown
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_schedop_shutdown(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - info
    argTypes:
    - struct domain*
    - struct xen_domctl_getdomaininfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: flask_security_domaininfo
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_sid
    linkageType: ''
    returnType: void
    signature: "void flask_security_domaininfo(\n    struct domain *d, struct xen_domctl_getdomaininfo
      *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:548,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - d
    - ssidref
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 572
    functionName: flask_domain_create
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    - security_transition_sid
    linkageType: ''
    returnType: int
    signature: int flask_domain_create(struct domain *d, uint32_t ssidref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: flask_getdomaininfo
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_getdomaininfo(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:585,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:589,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: flask_domctl_scheduler_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_domctl_scheduler_op(struct domain *d, int op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:602,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:605,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 610
    functionName: flask_sysctl_scheduler_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    - avc_unknown_permission
    linkageType: ''
    returnType: int
    signature: int flask_sysctl_scheduler_op(int op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:620,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:623,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:627,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 635
    functionName: flask_set_target
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    - security_transition_sid
    - avc_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_set_target(struct domain *d, struct domain *t)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:650,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:685,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:688,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:691,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:695,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:699,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:702,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:705,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:708,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:711,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:717,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:723,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:726,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:729,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:732,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:735,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:738,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:741,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:745,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:748,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:751,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:754,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:757,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:760,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:763,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:771,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:774,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:777,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:780,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:783,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:786,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:789,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:792,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:795,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:797,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:800,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:803,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:806,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:809,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:812,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:815,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:818,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:821,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 124
    argCount: 3
    argNames:
    - d
    - cmd
    - ssidref
    argTypes:
    - struct domain*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 826
    functionName: flask_domctl
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - current_has_perm
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_domctl(struct domain *d, unsigned int cmd,\n                                 uint32_t
      ssidref)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:844,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:847,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:850,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:853,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:856,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:859,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:862,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:865,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:868,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:871,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:878,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:881,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:884,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:888,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:892,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:896,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:899,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 905
    functionName: flask_sysctl
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    - avc_unknown_permission
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_sysctl(int cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - clear
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 915
    functionName: flask_readconsole
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_readconsole(uint32_t clear)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - access
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 924
    functionName: resource_to_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t resource_to_perm(uint8_t access)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:930,1
    - Dst: security_sid_to_context
      Src: /src/xen/xen/xsm/flask/hooks.c:934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - irq
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 938
    functionName: flask_show_irq_sid
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - get_irq_sid
    - security_sid_to_context
    linkageType: ''
    returnType: char
    signature: char *cf_check flask_show_irq_sid(int irq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: flask_map_domain_pirq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_map_domain_pirq(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:953,1
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - d
    - irq
    - data
    - sid
    - ad
    argTypes:
    - struct domain*
    - int
    - void*
    - uint32_t*
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 960
    functionName: flask_map_domain_msi
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_device_sid
    linkageType: ''
    returnType: int
    signature: "int flask_map_domain_msi (\n    struct domain *d, int irq, const void
      *data, uint32_t *sid,\n    struct avc_audit_data *ad)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/xsm/flask/hooks.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 979
    functionName: flask_iommu_resource_use_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - is_iommu_enabled
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t flask_iommu_resource_use_perm(const struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:987,1
    - Dst: flask_map_domain_msi
      Src: /src/xen/xen/xsm/flask/hooks.c:990,1
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:992,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:997,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:999,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - d
    - irq
    - data
    argTypes:
    - struct domain*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1005
    functionName: flask_map_domain_irq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - get_irq_sid
    - flask_map_domain_msi
    - domain_sid
    - avc_has_perm
    - avc_current_has_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: "int flask_map_domain_irq(\n    struct domain *d, int irq, const void
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1007
    functionDepth: 3
    functionLinenumber: 1007
    functionLinenumberEnd: 1010
    functionName: flask_unmap_domain_pirq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_unmap_domain_pirq(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1020,1
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - d
    - irq
    - data
    - sid
    - ad
    argTypes:
    - struct domain*
    - int
    - void*
    - uint32_t*
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1027
    functionName: flask_unmap_domain_msi
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_device_sid
    linkageType: ''
    returnType: int
    signature: "int flask_unmap_domain_msi (\n    struct domain *d, int irq, const
      void *data, uint32_t *sid,\n    struct avc_audit_data *ad)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flask_unmap_domain_msi
      Src: /src/xen/xen/xsm/flask/hooks.c:1037,1
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1039,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1044,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - d
    - irq
    - data
    argTypes:
    - struct domain*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1046
    functionName: flask_unmap_domain_irq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - get_irq_sid
    - flask_unmap_domain_msi
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_unmap_domain_irq(\n    struct domain *d, int irq, const
      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1055,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1057,1
    - Dst: domain_pirq_to_irq
      Src: /src/xen/xen/xsm/flask/hooks.c:1061,1
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1063,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1067,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1071,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - bind
    argTypes:
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1073
    functionName: flask_bind_pt_irq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - get_irq_sid
    - domain_pirq_to_irq
    - current_has_perm
    - domain_sid
    - avc_has_perm
    - avc_current_has_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: "int flask_bind_pt_irq(\n    struct domain *d, struct xen_domctl_bind_pt_irq
      *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - bind
    argTypes:
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1079
    functionName: flask_unbind_pt_irq
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_unbind_pt_irq(\n    struct domain *d, struct xen_domctl_bind_pt_irq
      *bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1085,1
    - Dst: resource_to_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - pirq
    - access
    argTypes:
    - struct domain*
    - int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1086
    functionName: flask_irq_permission
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - resource_to_perm
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_irq_permission(\n    struct domain *d, int pirq, uint8_t
      access)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1102,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1106,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - v
    - sid
    - start
    - end
    argTypes:
    - void*
    - uint32_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1112
    functionName: _iomem_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - avc_has_perm
    linkageType: ''
    returnType: int
    signature: "int _iomem_has_perm(\n    void *v, uint32_t sid, unsigned long start,
      unsigned long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1120,1
    - Dst: resource_to_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1121,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1130,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1131,1
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1132,1
    - Dst: security_iterate_iomem_sids
      Src: /src/xen/xen/xsm/flask/hooks.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - d
    - start
    - end
    - access
    argTypes:
    - struct domain*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1135
    functionName: flask_iomem_permission
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    - security_iterate_iomem_sids
    - domain_sid
    - resource_to_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: "int flask_iomem_permission(\n    struct domain *d, uint64_t start,
      uint64_t end, uint8_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flask_iomem_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start
    - end
    - access
    argTypes:
    - struct domain*
    - uint64_t
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1140
    functionName: flask_iomem_mapping
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - flask_iomem_permission
    linkageType: ''
    returnType: int
    signature: int flask_iomem_mapping(struct domain *d, uint64_t start, uint64_t
      end, uint8_t access)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1151,1
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1159,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1161,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1163,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - d
    - machine_bdf
    - start
    - end
    - access
    argTypes:
    - struct domain*
    - uint32_t
    - uint16_t
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1142
    functionDepth: 2
    functionLinenumber: 1142
    functionLinenumberEnd: 1166
    functionName: flask_pci_config_permission
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_device_sid
    - domain_sid
    - avc_has_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: "int flask_pci_config_permission(\n    struct domain *d, uint32_t machine_bdf,
      uint16_t start, uint16_t end,\n    uint8_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1171
    functionName: flask_resource_plug_core
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_plug_core(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1176
    functionName: flask_resource_unplug_core
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_unplug_core(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1182
    functionName: flask_resource_use_core
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_use_core(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1191,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1195,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1198
    functionName: flask_resource_plug_pci
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - AVC_AUDIT_DATA_INIT
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_plug_pci(uint32_t machine_bdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1206,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1210,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1213
    functionName: flask_resource_unplug_pci
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - AVC_AUDIT_DATA_INIT
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_unplug_pci(uint32_t machine_bdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1221,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1225,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1215
    functionDepth: 2
    functionLinenumber: 1215
    functionLinenumberEnd: 1228
    functionName: flask_resource_setup_pci
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - AVC_AUDIT_DATA_INIT
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_setup_pci(uint32_t machine_bdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_irq_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1236,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - gsi
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1241
    functionName: flask_resource_setup_gsi
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - get_irq_sid
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_setup_gsi(int gsi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1246
    functionName: flask_resource_setup_misc
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_resource_setup_misc(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flask_resource_unplug_core
      Src: /src/xen/xen/xsm/flask/hooks.c:1254,1
    - Dst: flask_resource_plug_core
      Src: /src/xen/xen/xsm/flask/hooks.c:1256,1
    - Dst: flask_resource_use_core
      Src: /src/xen/xen/xsm/flask/hooks.c:1258,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1262
    functionName: flask_page_offline
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - flask_resource_unplug_core
    - flask_resource_use_core
    - flask_resource_plug_core
    linkageType: ''
    returnType: int
    signature: int flask_page_offline(uint32_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1268
    functionName: flask_hypfs_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_hypfs_op(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1270
    functionDepth: 2
    functionLinenumber: 1270
    functionLinenumberEnd: 1273
    functionName: flask_add_to_physmap
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_add_to_physmap(struct domain *d1, struct domain *d2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1279
    functionName: flask_remove_from_physmap
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_remove_from_physmap(\n    struct domain *d1, struct domain
      *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1284
    functionName: flask_map_gmfn_foreign
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_map_gmfn_foreign(struct domain *d, struct domain *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1286
    functionDepth: 3
    functionLinenumber: 1286
    functionLinenumberEnd: 1304
    functionName: flask_hvm_param
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_hvm_param(struct domain *d, unsigned long op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1306
    functionDepth: 3
    functionLinenumber: 1306
    functionLinenumberEnd: 1309
    functionName: flask_hvm_param_altp2mhvm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_hvm_param_altp2mhvm(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - d
    - mode
    - op
    argTypes:
    - struct domain*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1333
    functionName: flask_hvm_altp2mhvm_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_hvm_altp2mhvm_op(struct domain *d, uint64_t mode, uint32_t
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - mode
    - op
    argTypes:
    - struct domain*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1339
    functionName: flask_vm_event_control
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_vm_event_control(struct domain *d, int mode, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1344
    functionName: flask_mem_access
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_mem_access(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1348
    functionDepth: 3
    functionLinenumber: 1348
    functionLinenumberEnd: 1351
    functionName: flask_mem_paging
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_mem_paging(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1358
    functionName: flask_mem_sharing
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_mem_sharing(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1367,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1362
    functionDepth: 2
    functionLinenumber: 1362
    functionLinenumberEnd: 1372
    functionName: flask_get_device_group
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_get_device_group(uint32_t machine_bdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1379,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - machine_bdf
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1374
    functionDepth: 2
    functionLinenumber: 1374
    functionLinenumberEnd: 1384
    functionName: flask_test_assign_device
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_test_assign_device(uint32_t machine_bdf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flask_test_assign_device
      Src: /src/xen/xen/xsm/flask/hooks.c:1394,1
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1396,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1398,1
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1402,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1406,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1408,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1412,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - d
    - machine_bdf
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1386
    functionDepth: 3
    functionLinenumber: 1386
    functionLinenumberEnd: 1414
    functionName: flask_assign_device
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_device_sid
    - current_has_perm
    - domain_sid
    - flask_test_assign_device
    - avc_has_perm
    - avc_current_has_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: int flask_assign_device(struct domain *d, uint32_t machine_bdf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1422,1
    - Dst: security_device_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1426,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - machine_bdf
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1416
    functionDepth: 3
    functionLinenumber: 1416
    functionLinenumberEnd: 1431
    functionName: flask_deassign_device
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_device_sid
    - current_has_perm
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_deassign_device(\n    struct domain *d, uint32_t machine_bdf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_devicetree_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1440,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dtpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1446
    functionName: flask_test_assign_dtdevice
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_devicetree_sid
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_test_assign_dtdevice(const char *dtpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: flask_test_assign_dtdevice
      Src: /src/xen/xen/xsm/flask/hooks.c:1456,1
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1458,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1460,1
    - Dst: security_devicetree_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1464,1
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1468,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1470,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1474,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - d
    - dtpath
    argTypes:
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1448
    functionDepth: 3
    functionLinenumber: 1448
    functionLinenumberEnd: 1476
    functionName: flask_assign_dtdevice
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - current_has_perm
    - security_devicetree_sid
    - domain_sid
    - flask_test_assign_dtdevice
    - avc_has_perm
    - avc_current_has_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: int flask_assign_dtdevice(struct domain *d, const char *dtpath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1484,1
    - Dst: security_devicetree_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1488,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - dtpath
    argTypes:
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1494
    functionName: flask_deassign_dtdevice
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    - security_devicetree_sid
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_deassign_dtdevice(\n    struct domain *d, const char *dtpath)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1512,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1515,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1518,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1521,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1524,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1527,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1530,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1533,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1536,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1539,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1542,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1546,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1550,1
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1553,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1557,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1557,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1561,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1561,1
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - op
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1567
    functionName: flask_platform_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_sid
    - domain_has_xen
    - avc_unknown_permission
    - avc_has_perm
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_platform_op(uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1573
    functionName: flask_do_mca
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_do_mca(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1596,1
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1575
    functionDepth: 3
    functionLinenumber: 1575
    functionLinenumberEnd: 1600
    functionName: flask_shadow_control
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_shadow_control(struct domain *d, uint32_t op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/hooks.c:1616,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1620,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - v
    - sid
    - start
    - end
    argTypes:
    - void*
    - uint32_t
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1626
    functionName: _ioport_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - avc_has_perm
    linkageType: ''
    returnType: int
    signature: "int _ioport_has_perm(\n    void *v, uint32_t sid, unsigned long start,
      unsigned long end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1634,1
    - Dst: resource_to_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1635,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1645,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1646,1
    - Dst: flask_iommu_resource_use_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1647,1
    - Dst: security_iterate_ioport_sids
      Src: /src/xen/xen/xsm/flask/hooks.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - d
    - start
    - end
    - access
    argTypes:
    - struct domain*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1628
    functionDepth: 3
    functionLinenumber: 1628
    functionLinenumberEnd: 1650
    functionName: flask_ioport_permission
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - security_iterate_ioport_sids
    - current_has_perm
    - domain_sid
    - resource_to_perm
    - flask_iommu_resource_use_perm
    linkageType: ''
    returnType: int
    signature: "int flask_ioport_permission(\n    struct domain *d, uint32_t start,
      uint32_t end, uint8_t access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flask_ioport_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - start
    - end
    - access
    argTypes:
    - struct domain*
    - uint32_t
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1652
    functionDepth: 4
    functionLinenumber: 1652
    functionLinenumberEnd: 1656
    functionName: flask_ioport_mapping
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - flask_ioport_permission
    linkageType: ''
    returnType: int
    signature: "int flask_ioport_mapping(\n    struct domain *d, uint32_t start, uint32_t
      end, uint8_t access)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1661,1
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - d
    - cd
    - op
    argTypes:
    - struct domain*
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1665
    functionName: flask_mem_sharing_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_mem_sharing_op(\n    struct domain *d, struct domain *cd,
      int op)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avc_unknown_permission
      Src: /src/xen/xen/xsm/flask/hooks.c:1681,1
    - Dst: domain_has_xen
      Src: /src/xen/xen/xsm/flask/hooks.c:1684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - cmd
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1667
    functionDepth: 2
    functionLinenumber: 1667
    functionLinenumberEnd: 1685
    functionName: flask_apic
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_unknown_permission
    - domain_has_xen
    linkageType: ''
    returnType: int
    signature: int flask_apic(struct domain *d, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1687
    functionDepth: 2
    functionLinenumber: 1687
    functionLinenumberEnd: 1690
    functionName: flask_machine_memory_map
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_machine_memory_map(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1695
    functionName: flask_domain_memory_map
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_domain_memory_map(struct domain *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1704,1
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - d
    - t
    - f
    - flags
    argTypes:
    - struct domain*
    - struct domain*
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1697
    functionDepth: 2
    functionLinenumber: 1697
    functionLinenumberEnd: 1718
    functionName: flask_mmu_update
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_mmu_update(\n    struct domain *d, struct domain *t, struct
      domain *f, uint32_t flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - f
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1723
    functionName: flask_mmuext_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_mmuext_op(struct domain *d, struct domain *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: l1e_get_flags
      Src: /src/xen/xen/xsm/flask/hooks.c:1729,1
    - Dst: l1e_get_flags
      Src: /src/xen/xen/xsm/flask/hooks.c:1731,1
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - d
    - f
    - pte
    argTypes:
    - struct domain*
    - struct domain*
    - l1_pgentry_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1735
    functionName: flask_update_va_mapping
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - l1e_get_flags
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_update_va_mapping(\n    struct domain *d, struct domain
      *f, l1_pgentry_t pte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1737
    functionDepth: 2
    functionLinenumber: 1737
    functionLinenumberEnd: 1740
    functionName: flask_priv_mapping
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_priv_mapping(struct domain *d, struct domain *t)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1744,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1752,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - d
    - op
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1763
    functionName: flask_pmu_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int flask_pmu_op(struct domain *d, unsigned int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1766
    functionDepth: 3
    functionLinenumber: 1766
    functionLinenumberEnd: 1769
    functionName: flask_dm_op
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_dm_op(struct domain *d)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1773,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1784,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1787,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1791,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1795,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1798,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1801,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1805,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1813
    functionName: flask_xen_version
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int flask_xen_version(uint32_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1815
    functionDepth: 3
    functionLinenumber: 1815
    functionLinenumberEnd: 1818
    functionName: flask_domain_resource_map
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_domain_resource_map(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1823,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1825
    functionName: flask_argo_enable
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int flask_argo_enable(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1832
    functionName: flask_argo_register_single_source
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_argo_register_single_source(\n    const struct domain *d,
      const struct domain *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1836,1
    - Dst: domain_sid
      Src: /src/xen/xen/xsm/flask/hooks.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1838
    functionName: flask_argo_register_any_source
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    - domain_sid
    linkageType: ''
    returnType: int
    signature: int flask_argo_register_any_source(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - t
    argTypes:
    - struct domain*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 1844
    functionName: flask_argo_send
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - domain_has_perm
    linkageType: ''
    returnType: int
    signature: "int flask_argo_send(\n    const struct domain *d, const struct domain
      *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_has_perm
      Src: /src/xen/xen/xsm/flask/hooks.c:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1851
    functionName: flask_get_domain_state
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 0
    functionsReached:
    - current_has_perm
    linkageType: ''
    returnType: int
    signature: int flask_get_domain_state(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:2004,1
    - Dst: panic
      Src: /src/xen/xen/xsm/flask/hooks.c:2017,1
    - Dst: avc_init
      Src: /src/xen/xen/xsm/flask/hooks.c:2021,1
    - Dst: security_load_policy
      Src: /src/xen/xen/xsm/flask/hooks.c:2024,1
    - Dst: panic
      Src: /src/xen/xen/xsm/flask/hooks.c:2027,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:2030,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:2032,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/hooks.c:2034,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - policy_buffer
    - policy_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2037
    functionName: flask_init
    functionSourceFile: /src/xen/xen/xsm/flask/hooks.c
    functionUses: 1
    functionsReached:
    - panic
    - avc_init
    - security_load_policy
    - printk
    linkageType: ''
    returnType: struct xsm_ops
    signature: "struct xsm_ops *__init flask_init(\n    const void *policy_buffer,
      size_t policy_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/flask_op.c:61,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/flask_op.c:63,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/flask_op.c:65,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/flask_op.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: parse_flask_param
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_flask_param(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/flask_op.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - perms
    argTypes:
    - struct domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: domain_has_security
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - avc_has_perm
    linkageType: ''
    returnType: int
    signature: int domain_has_security(struct domain *d, uint32_t perms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:92,1
    - Dst: security_change_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_transition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: flask_security_relabel
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    - security_change_sid
    linkageType: ''
    returnType: int
    signature: int flask_security_relabel(struct xen_flask_transition *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:105,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_transition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: flask_security_create
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    - security_transition_sid
    linkageType: ''
    returnType: int
    signature: int flask_security_create(struct xen_flask_transition *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:119,1
    - Dst: security_compute_av
      Src: /src/xen/xen/xsm/flask/flask_op.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_access*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 133
    functionName: flask_security_access
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    - security_compute_av
    linkageType: ''
    returnType: int
    signature: int flask_security_access(struct xen_flask_access *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:139,1
    - Dst: security_member_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_transition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: flask_security_member
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - security_member_sid
    - domain_has_security
    linkageType: ''
    returnType: int
    signature: int flask_security_member(struct xen_flask_transition *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:156,1
    - Dst: avc_ss_reset
      Src: /src/xen/xen/xsm/flask/flask_op.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_setenforce*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: flask_security_setenforce
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    - avc_ss_reset
    linkageType: ''
    returnType: int
    signature: int flask_security_setenforce(struct xen_flask_setenforce *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:175,1
    - Dst: safe_copy_string_from_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:179,1
    - Dst: IS_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:180,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:181,1
    - Dst: security_context_to_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:183,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_sid_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 191
    functionName: flask_security_context
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - domain_has_security
    - PTR_ERR
    - security_context_to_sid
    - safe_copy_string_from_guest
    - xfree
    linkageType: ''
    returnType: int
    signature: int flask_security_context(struct xen_flask_sid_context *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:199,1
    - Dst: security_sid_to_context
      Src: /src/xen/xen/xsm/flask/flask_op.c:203,1
    - Dst: _copy_to_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:214,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_sid_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: flask_security_sid
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - _copy_to_guest
    - domain_has_security
    - security_sid_to_context
    - xfree
    linkageType: ''
    returnType: int
    signature: int flask_security_sid(struct xen_flask_sid_context *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_setavc_threshold*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: flask_security_setavc_threshold
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    linkageType: ''
    returnType: int
    signature: "int flask_security_setavc_threshold(\n    struct xen_flask_setavc_threshold
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_copy_string_from_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:250,1
    - Dst: IS_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:251,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:252,1
    - Dst: security_find_bool
      Src: /src/xen/xen/xsm/flask/flask_op.c:254,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_boolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: flask_security_resolve_bool
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - PTR_ERR
    - security_find_bool
    - safe_copy_string_from_guest
    - xfree
    linkageType: ''
    returnType: int
    signature: int flask_security_resolve_bool(struct xen_flask_boolean *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:266,1
    - Dst: flask_security_resolve_bool
      Src: /src/xen/xen/xsm/flask/flask_op.c:270,1
    - Dst: spin_lock
      Src: /src/xen/xen/xsm/flask/flask_op.c:274,1
    - Dst: security_get_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:281,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:287,1
    - Dst: security_set_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:298,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:299,1
    - Dst: flask_security_make_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:304,1
    - Dst: security_get_bool_value
      Src: /src/xen/xen/xsm/flask/flask_op.c:312,1
    - Dst: spin_unlock
      Src: /src/xen/xen/xsm/flask/flask_op.c:318,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_boolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 320
    functionName: flask_security_set_bool
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - flask_security_resolve_bool
    - domain_has_security
    - security_get_bools
    - spin_lock
    - security_set_bools
    - flask_security_make_bools
    - xfree
    - security_get_bool_value
    linkageType: ''
    returnType: int
    signature: int flask_security_set_bool(struct xen_flask_boolean *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: flask_security_resolve_bool
      Src: /src/xen/xen/xsm/flask/flask_op.c:326,1
    - Dst: spin_lock
      Src: /src/xen/xen/xsm/flask/flask_op.c:330,1
    - Dst: security_get_bool_value
      Src: /src/xen/xen/xsm/flask/flask_op.c:332,1
    - Dst: security_get_bool_name
      Src: /src/xen/xen/xsm/flask/flask_op.c:347,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/flask_op.c:348,1
    - Dst: _copy_to_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:353,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:355,1
    - Dst: spin_unlock
      Src: /src/xen/xen/xsm/flask/flask_op.c:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_boolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 361
    functionName: flask_security_get_bool
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - _copy_to_guest
    - spin_unlock
    - flask_security_resolve_bool
    - security_get_bool_name
    - spin_lock
    - strlen
    - xfree
    - security_get_bool_value
    linkageType: ''
    returnType: int
    signature: int flask_security_get_bool(struct xen_flask_boolean *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/xsm/flask/flask_op.c:369,1
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:371,1
    - Dst: security_set_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:376,1
    - Dst: spin_unlock
      Src: /src/xen/xen/xsm/flask/flask_op.c:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: flask_security_commit_bools
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - security_set_bools
    - spin_lock
    - domain_has_security
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int flask_security_commit_bools(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:389,1
    - Dst: security_get_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: flask_security_make_bools
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 1
    functionsReached:
    - security_get_bools
    - xfree
    linkageType: ''
    returnType: int
    signature: int flask_security_make_bools(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/xsm/flask/flask_op.c:410,1
    - Dst: per_cpu
      Src: /src/xen/xen/xsm/flask/flask_op.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_cache_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 423
    functionName: flask_security_avc_cachestats
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int flask_security_avc_cachestats(struct xen_flask_cache_stats *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:434,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/xsm/flask/flask_op.c:441,1
    - Dst: _copy_from_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:445,1
    - Dst: spin_lock
      Src: /src/xen/xen/xsm/flask/flask_op.c:451,1
    - Dst: security_load_policy
      Src: /src/xen/xen/xsm/flask/flask_op.c:453,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/flask_op.c:458,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:461,1
    - Dst: spin_unlock
      Src: /src/xen/xen/xsm/flask/flask_op.c:466,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/flask_op.c:468,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - load
    argTypes:
    - struct xen_flask_load*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 470
    functionName: flask_security_load
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - domain_has_security
    - xmalloc_bytes
    - spin_lock
    - _copy_from_guest
    - printk
    - security_load_policy
    - xfree
    linkageType: ''
    returnType: int
    signature: int flask_security_load(struct xen_flask_load *load)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:479,1
    - Dst: safe_copy_string_from_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:483,1
    - Dst: IS_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:484,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/xsm/flask/flask_op.c:485,1
    - Dst: security_devicetree_setlabel
      Src: /src/xen/xen/xsm/flask/flask_op.c:488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_devicetree_label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 491
    functionName: flask_devicetree_label
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - domain_has_security
    - PTR_ERR
    - security_devicetree_setlabel
    - safe_copy_string_from_guest
    linkageType: ''
    returnType: int
    signature: int flask_devicetree_label(const struct xen_flask_devicetree_label
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:502,1
    - Dst: security_ocontext_del
      Src: /src/xen/xen/xsm/flask/flask_op.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 507
    functionName: flask_ocontext_del
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - security_ocontext_del
    - domain_has_security
    linkageType: ''
    returnType: int
    signature: int flask_ocontext_del(const struct xen_flask_ocontext *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domain_has_security
      Src: /src/xen/xen/xsm/flask/flask_op.c:516,1
    - Dst: security_ocontext_add
      Src: /src/xen/xen/xsm/flask/flask_op.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 521
    functionName: flask_ocontext_add
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - domain_has_security
    - security_ocontext_add
    linkageType: ''
    returnType: int
    signature: int flask_ocontext_add(const struct xen_flask_ocontext *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/xsm/flask/flask_op.c:531,1
    - Dst: port_is_valid
      Src: /src/xen/xen/xsm/flask/flask_op.c:533,1
    - Dst: evtchn_from_port
      Src: /src/xen/xen/xsm/flask/flask_op.c:536,1
    - Dst: read_unlock
      Src: /src/xen/xen/xsm/flask/flask_op.c:549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_peersid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 551
    functionName: flask_get_peer_sid
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - evtchn_from_port
    - port_is_valid
    - read_lock
    - read_unlock
    linkageType: ''
    returnType: int
    signature: int flask_get_peer_sid(struct xen_flask_peersid *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AVC_AUDIT_DATA_INIT
      Src: /src/xen/xen/xsm/flask/flask_op.c:560,1
    - Dst: rcu_lock_domain_by_any_id
      Src: /src/xen/xen/xsm/flask/flask_op.c:562,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/flask_op.c:572,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/flask_op.c:578,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/flask_op.c:582,1
    - Dst: avc_has_perm
      Src: /src/xen/xen/xsm/flask/flask_op.c:587,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:593,1
    - Dst: security_transition_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:598,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/xsm/flask/flask_op.c:603,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_relabel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 605
    functionName: flask_relabel_domain
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 1
    functionsReached:
    - AVC_AUDIT_DATA_INIT
    - security_transition_sid
    - rcu_lock_domain_by_any_id
    - avc_has_perm
    - rcu_unlock_domain
    linkageType: ''
    returnType: int
    signature: int flask_relabel_domain(const struct xen_flask_relabel *arg)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:614,1
    - Dst: flask_security_load
      Src: /src/xen/xen/xsm/flask/flask_op.c:623,1
    - Dst: flask_security_setenforce
      Src: /src/xen/xen/xsm/flask/flask_op.c:631,1
    - Dst: flask_security_context
      Src: /src/xen/xen/xsm/flask/flask_op.c:635,1
    - Dst: flask_security_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:639,1
    - Dst: flask_security_access
      Src: /src/xen/xen/xsm/flask/flask_op.c:643,1
    - Dst: flask_security_create
      Src: /src/xen/xen/xsm/flask/flask_op.c:647,1
    - Dst: flask_security_relabel
      Src: /src/xen/xen/xsm/flask/flask_op.c:651,1
    - Dst: flask_security_get_bool
      Src: /src/xen/xen/xsm/flask/flask_op.c:659,1
    - Dst: flask_security_set_bool
      Src: /src/xen/xen/xsm/flask/flask_op.c:663,1
    - Dst: flask_security_commit_bools
      Src: /src/xen/xen/xsm/flask/flask_op.c:667,1
    - Dst: flask_security_setavc_threshold
      Src: /src/xen/xen/xsm/flask/flask_op.c:679,1
    - Dst: avc_get_hash_stats
      Src: /src/xen/xen/xsm/flask/flask_op.c:683,1
    - Dst: flask_security_avc_cachestats
      Src: /src/xen/xen/xsm/flask/flask_op.c:688,1
    - Dst: flask_security_member
      Src: /src/xen/xen/xsm/flask/flask_op.c:693,1
    - Dst: flask_ocontext_add
      Src: /src/xen/xen/xsm/flask/flask_op.c:697,1
    - Dst: flask_ocontext_del
      Src: /src/xen/xen/xsm/flask/flask_op.c:701,1
    - Dst: flask_get_peer_sid
      Src: /src/xen/xen/xsm/flask/flask_op.c:705,1
    - Dst: flask_relabel_domain
      Src: /src/xen/xen/xsm/flask/flask_op.c:709,1
    - Dst: flask_devicetree_label
      Src: /src/xen/xen/xsm/flask/flask_op.c:713,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/xsm/flask/flask_op.c:725,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 88
    argCount: 1
    argNames:
    - u_flask_op
    argTypes:
    - XEN_GUEST_HANDLE_PARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 609
    functionDepth: 6
    functionLinenumber: 609
    functionLinenumberEnd: 731
    functionName: do_flask_op
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 0
    functionsReached:
    - copy_from_guest
    - flask_get_peer_sid
    - flask_security_access
    - flask_security_relabel
    - flask_security_avc_cachestats
    - flask_security_setenforce
    - flask_devicetree_label
    - flask_ocontext_del
    - avc_get_hash_stats
    - flask_security_commit_bools
    - copy_to_guest
    - flask_security_create
    - flask_security_sid
    - flask_security_member
    - flask_security_setavc_threshold
    - flask_security_load
    - flask_relabel_domain
    - flask_security_set_bool
    - flask_security_context
    - flask_ocontext_add
    - flask_security_get_bool
    linkageType: ''
    returnType: ret_t
    signature: ret_t do_flask_op(XEN_GUEST_HANDLE_PARAM(void) u_flask_op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ch
    - ','
    - sz
    - ','
    - mx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: safe_copy_string_from_guest
    functionSourceFile: /src/xen/xen/xsm/flask/flask_op.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_copy_string_from_guest(ch, sz, mx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: avc_cache_stats_incr
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_incr(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: avc_cache_stats_incr
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_incr(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - u32
    - u32
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: avc_hash
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avc_hash(u32 ssid, u32 tsid, u16 tclass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/xen/xsm/flask/avc.c:116,1
    - Dst: va_start
      Src: /src/xen/xen/xsm/flask/avc.c:123,1
    - Dst: vsnprintf
      Src: /src/xen/xen/xsm/flask/avc.c:124,1
    - Dst: va_end
      Src: /src/xen/xen/xsm/flask/avc.c:125,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/avc.c:134,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/avc.c:141,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/avc.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - fmt
    argTypes:
    - struct avc_dump_buf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 146
    functionName: avc_printk
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - va_start
    - vsnprintf
    - printk
    - format
    - va_end
    linkageType: ''
    returnType: void
    signature: void avc_printk(struct avc_dump_buf *buf, const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:159,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:163,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/xsm/flask/avc.c:171,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/xsm/flask/avc.c:177,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:179,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:188,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - tclass
    - av
    argTypes:
    - struct avc_dump_buf*
    - u16
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 153
    functionDepth: 7
    functionLinenumber: 153
    functionLinenumberEnd: 191
    functionName: avc_dump_av
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_printk
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void avc_dump_av(struct avc_dump_buf *buf, u16 tclass, u32 av)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: security_sid_to_context
      Src: /src/xen/xen/xsm/flask/avc.c:205,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:207,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:210,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/avc.c:211,1
    - Dst: security_sid_to_context
      Src: /src/xen/xen/xsm/flask/avc.c:214,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:216,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:219,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/avc.c:220,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - buf
    - ssid
    - tsid
    - tclass
    argTypes:
    - struct avc_dump_buf*
    - u32
    - u32
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 199
    functionDepth: 7
    functionLinenumber: 199
    functionLinenumberEnd: 224
    functionName: avc_dump_query
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_printk
    - security_sid_to_context
    - xfree
    linkageType: ''
    returnType: void
    signature: void avc_dump_query(struct avc_dump_buf *buf, u32 ssid, u32 tsid, u16
      tclass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_HLIST_HEAD
      Src: /src/xen/xen/xsm/flask/avc.c:237,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/xsm/flask/avc.c:238,1
    - Dst: atomic_set
      Src: /src/xen/xen/xsm/flask/avc.c:240,1
    - Dst: atomic_set
      Src: /src/xen/xen/xsm/flask/avc.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: avc_init
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 1
    functionsReached:
    - atomic_set
    - spin_lock_init
    - INIT_HLIST_HEAD
    linkageType: ''
    returnType: void
    signature: void avc_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/xsm/flask/avc.c:250,1
    - Dst: hlist_empty
      Src: /src/xen/xen/xsm/flask/avc.c:257,1
    - Dst: hlist_for_each_entry_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:263,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:270,1
    - Dst: atomic_read
      Src: /src/xen/xen/xsm/flask/avc.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - struct xen_flask_hash_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 278
    functionName: avc_get_hash_stats
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 1
    functionsReached:
    - hlist_empty
    - rcu_read_unlock
    - hlist_for_each_entry_rcu
    - rcu_read_lock
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int avc_get_hash_stats(struct xen_flask_hash_stats *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/xsm/flask/avc.c:282,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/avc.c:283,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rhead
    argTypes:
    - struct rcu_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: avc_node_free
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_cache_stats_incr
    - xfree
    - container_of
    linkageType: ''
    returnType: void
    signature: void avc_node_free(struct rcu_head *rhead)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlist_del_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:289,1
    - Dst: call_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:290,1
    - Dst: atomic_dec
      Src: /src/xen/xen/xsm/flask/avc.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct avc_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 4
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: avc_node_delete
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - hlist_del_rcu
    - call_rcu
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void avc_node_delete(struct avc_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/avc.c:296,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:297,1
    - Dst: atomic_dec
      Src: /src/xen/xen/xsm/flask/avc.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct avc_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: avc_node_kill
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_cache_stats_incr
    - xfree
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void avc_node_kill(struct avc_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlist_replace_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:303,1
    - Dst: list::list
      Src: /src/xen/xen/xsm/flask/avc.c:303,1
    - Dst: call_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:304,1
    - Dst: atomic_dec
      Src: /src/xen/xen/xsm/flask/avc.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - new
    - old
    argTypes:
    - struct avc_node*
    - struct avc_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 301
    functionDepth: 4
    functionLinenumber: 301
    functionLinenumberEnd: 306
    functionName: avc_node_replace
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - list::list
    - call_rcu
    - atomic_dec
    - hlist_replace_rcu
    linkageType: ''
    returnType: void
    signature: void avc_node_replace(struct avc_node *new, struct avc_node *old)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/xsm/flask/avc.c:319,1
    - Dst: atomic_read
      Src: /src/xen/xen/xsm/flask/avc.c:320,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/xsm/flask/avc.c:324,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/xsm/flask/avc.c:325,1
    - Dst: avc_node_delete
      Src: /src/xen/xen/xsm/flask/avc.c:328,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:329,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:333,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:334,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:338,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 5
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: avc_reclaim_node
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_cache_stats_incr
    - rcu_read_unlock
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - atomic_inc
    - avc_node_delete
    - rcu_read_lock
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int avc_reclaim_node(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_node_delete
      Src: /src/xen/xen/xsm/flask/avc.c:328,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:329,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:333,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 326
    functionDepth: 5
    functionLinenumber: 326
    functionLinenumberEnd: 337
    functionName: hlist_for_each_entry
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - rcu_read_unlock
    - avc_node_delete
    - avc_cache_stats_incr
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void hlist_for_each_entry(node, next, head, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/avc.c:349,1
    - Dst: INIT_RCU_HEAD
      Src: /src/xen/xen/xsm/flask/avc.c:353,1
    - Dst: INIT_HLIST_NODE
      Src: /src/xen/xen/xsm/flask/avc.c:354,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:355,1
    - Dst: atomic_inc
      Src: /src/xen/xen/xsm/flask/avc.c:357,1
    - Dst: atomic_read
      Src: /src/xen/xen/xsm/flask/avc.c:358,1
    - Dst: avc_reclaim_node
      Src: /src/xen/xen/xsm/flask/avc.c:359,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 345
    functionDepth: 6
    functionLinenumber: 345
    functionLinenumberEnd: 363
    functionName: avc_alloc_node
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - INIT_RCU_HEAD
    - avc_cache_stats_incr
    - atomic_inc
    - avc_reclaim_node
    - INIT_HLIST_NODE
    - atomic_read
    linkageType: ''
    returnType: struct avc_node
    signature: struct avc_node *avc_alloc_node(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/avc.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - node
    - ssid
    - tsid
    - tclass
    - avd
    argTypes:
    - struct avc_node*
    - u32
    - u32
    - u16
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 372
    functionName: avc_node_populate
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void avc_node_populate(struct avc_node *node, u32 ssid, u32 tsid,\n
      \                             u16 tclass, struct av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_hash
      Src: /src/xen/xen/xsm/flask/avc.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - u32
    - u32
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 395
    functionName: avc_search_node
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_hash
    linkageType: ''
    returnType: struct avc_node
    signature: struct avc_node *avc_search_node(u32 ssid, u32 tsid, u16 tclass)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: hlist_for_each_entry_rcu
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlist_for_each_entry_rcu(node, next, head, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:415,1
    - Dst: avc_search_node
      Src: /src/xen/xen/xsm/flask/avc.c:416,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:419,1
    - Dst: avc_cache_stats_incr
      Src: /src/xen/xen/xsm/flask/avc.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - u32
    - u32
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: avc_lookup
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_cache_stats_incr
    - avc_search_node
    linkageType: ''
    returnType: struct avc_node
    signature: struct avc_node *avc_lookup(u32 ssid, u32 tsid, u16 tclass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/xsm/flask/avc.c:432,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/avc.c:437,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - seqno
    - is_insert
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 450
    functionName: avc_latest_notif_update
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - printk
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int avc_latest_notif_update(int seqno, int is_insert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_latest_notif_update
      Src: /src/xen/xen/xsm/flask/avc.c:476,1
    - Dst: avc_alloc_node
      Src: /src/xen/xen/xsm/flask/avc.c:479,1
    - Dst: avc_hash
      Src: /src/xen/xen/xsm/flask/avc.c:486,1
    - Dst: avc_node_populate
      Src: /src/xen/xen/xsm/flask/avc.c:487,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/xsm/flask/avc.c:492,1
    - Dst: avc_node_replace
      Src: /src/xen/xen/xsm/flask/avc.c:499,1
    - Dst: hlist_add_head_rcu
      Src: /src/xen/xen/xsm/flask/avc.c:503,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:505,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - avd
    argTypes:
    - u32
    - u32
    - u16
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 469
    functionDepth: 7
    functionLinenumber: 469
    functionLinenumberEnd: 509
    functionName: avc_insert
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - hlist_add_head_rcu
    - avc_node_populate
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - avc_alloc_node
    - avc_hash
    - avc_latest_notif_update
    - avc_node_replace
    linkageType: ''
    returnType: struct avc_node
    signature: "struct avc_node *avc_insert(u32 ssid, u32 tsid, u16 tclass,\n                                   struct
      av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_node_replace
      Src: /src/xen/xen/xsm/flask/avc.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 493
    functionDepth: 5
    functionLinenumber: 493
    functionLinenumberEnd: 502
    functionName: hlist_for_each_entry
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_node_replace
    linkageType: ''
    returnType: void
    signature: void hlist_for_each_entry(pos, next, head, list)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/xsm/flask/avc.c:554,1
    - Dst: spin_lock
      Src: /src/xen/xen/xsm/flask/avc.c:557,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:563,1
    - Dst: avc_dump_av
      Src: /src/xen/xen/xsm/flask/avc.c:564,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:565,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:570,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:572,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:575,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:579,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:582,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:585,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:588,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:591,1
    - Dst: avc_dump_query
      Src: /src/xen/xen/xsm/flask/avc.c:595,1
    - Dst: avc_printk
      Src: /src/xen/xen/xsm/flask/avc.c:596,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/avc.c:597,1
    - Dst: spin_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:600,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/avc.c:602,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 7
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    - result
    - a
    argTypes:
    - u32
    - u32
    - u16
    - u32
    - struct av_decision*
    - int
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 530
    functionDepth: 8
    functionLinenumber: 530
    functionLinenumberEnd: 603
    functionName: avc_audit
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - avc_dump_av
    - avc_printk
    - avc_dump_query
    - xmalloc_bytes
    - spin_lock
    - printk
    - xfree
    linkageType: ''
    returnType: void
    signature: "void avc_audit(u32 ssid, u32 tsid, u16 tclass, u32 requested,\n               struct
      av_decision *avd, int result, struct avc_audit_data *a)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_alloc_node
      Src: /src/xen/xen/xsm/flask/avc.c:626,1
    - Dst: avc_hash
      Src: /src/xen/xen/xsm/flask/avc.c:633,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/xsm/flask/avc.c:638,1
    - Dst: avc_node_kill
      Src: /src/xen/xen/xsm/flask/avc.c:655,1
    - Dst: avc_node_populate
      Src: /src/xen/xen/xsm/flask/avc.c:663,1
    - Dst: avc_node_replace
      Src: /src/xen/xen/xsm/flask/avc.c:666,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:668,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - perms
    - ssid
    - tsid
    - tclass
    - seqno
    argTypes:
    - u32
    - u32
    - u32
    - u16
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 616
    functionDepth: 7
    functionLinenumber: 616
    functionLinenumberEnd: 671
    functionName: avc_update_node
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_node_populate
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - avc_alloc_node
    - avc_node_kill
    - avc_hash
    - avc_node_replace
    linkageType: ''
    returnType: int
    signature: "int avc_update_node(u32 perms, u32 ssid, u32 tsid, u16 tclass,\n                           u32
      seqno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: hlist_for_each_entry
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hlist_for_each_entry(pos, next, head, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/xsm/flask/avc.c:691,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/xsm/flask/avc.c:692,1
    - Dst: hlist_for_each_entry
      Src: /src/xen/xen/xsm/flask/avc.c:693,1
    - Dst: avc_node_delete
      Src: /src/xen/xen/xsm/flask/avc.c:694,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:695,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/xsm/flask/avc.c:696,1
    - Dst: avc_latest_notif_update
      Src: /src/xen/xen/xsm/flask/avc.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - seqno
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 677
    functionDepth: 5
    functionLinenumber: 677
    functionLinenumberEnd: 701
    functionName: avc_ss_reset
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 1
    functionsReached:
    - rcu_read_unlock
    - hlist_for_each_entry
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - avc_latest_notif_update
    - avc_node_delete
    - rcu_read_lock
    linkageType: ''
    returnType: int
    signature: int avc_ss_reset(u32 seqno)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/avc.c:730,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/xsm/flask/avc.c:732,1
    - Dst: avc_lookup
      Src: /src/xen/xen/xsm/flask/avc.c:734,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:737,1
    - Dst: security_compute_av
      Src: /src/xen/xen/xsm/flask/avc.c:744,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/xsm/flask/avc.c:747,1
    - Dst: avc_insert
      Src: /src/xen/xen/xsm/flask/avc.c:748,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/avc.c:751,1
    - Dst: avc_update_node
      Src: /src/xen/xen/xsm/flask/avc.c:760,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/xsm/flask/avc.c:765,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - in_avd
    argTypes:
    - u32
    - u32
    - u16
    - u32
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 722
    functionDepth: 8
    functionLinenumber: 722
    functionLinenumberEnd: 768
    functionName: avc_has_perm_noaudit
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 0
    functionsReached:
    - avc_update_node
    - rcu_read_unlock
    - avc_lookup
    - BUG_ON
    - memcpy
    - rcu_read_lock
    - security_compute_av
    - avc_insert
    linkageType: ''
    returnType: int
    signature: "int avc_has_perm_noaudit(u32 ssid, u32 tsid, u16 tclass, u32 requested,\n
      \                        struct av_decision *in_avd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_has_perm_noaudit
      Src: /src/xen/xen/xsm/flask/avc.c:792,1
    - Dst: avc_audit
      Src: /src/xen/xen/xsm/flask/avc.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - auditdata
    argTypes:
    - u32
    - u32
    - u16
    - u32
    - struct avc_audit_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 786
    functionDepth: 9
    functionLinenumber: 786
    functionLinenumberEnd: 795
    functionName: avc_has_perm
    functionSourceFile: /src/xen/xen/xsm/flask/avc.c
    functionUses: 21
    functionsReached:
    - avc_audit
    - avc_has_perm_noaudit
    linkageType: ''
    returnType: int
    signature: "int avc_has_perm(u32 ssid, u32 tsid, u16 tclass,\n                 u32
      requested, struct avc_audit_data *auditdata)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:117,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:121,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:126,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:151,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:154,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:157,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:159,1
    - Dst: mls_level_eq
      Src: /src/xen/xen/xsm/flask/ss/services.c:194,1
    - Dst: mls_level_eq
      Src: /src/xen/xen/xsm/flask/ss/services.c:197,1
    - Dst: mls_level_dom
      Src: /src/xen/xen/xsm/flask/ss/services.c:200,1
    - Dst: mls_level_dom
      Src: /src/xen/xen/xsm/flask/ss/services.c:203,1
    - Dst: mls_level_incomp
      Src: /src/xen/xen/xsm/flask/ss/services.c:206,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:209,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:214,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:227,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:242,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:254,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:261,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:264,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:267,1
    - Dst: BUG
      Src: /src/xen/xen/xsm/flask/ss/services.c:272,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:277,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 158
    argCount: 4
    argNames:
    - scontext
    - tcontext
    - xcontext
    - cexpr
    argTypes:
    - struct context*
    - struct context*
    - struct context*
    - struct constraint_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 279
    functionName: constraint_expr_eval
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - BUG
    - ebitmap_get_bit
    - mls_level_eq
    - mls_level_dom
    - BUG_ON
    - mls_level_incomp
    linkageType: ''
    returnType: int
    signature: "int constraint_expr_eval(struct context *scontext,\n                            struct
      context *tcontext, struct context *xcontext,\n                                                struct
      constraint_expr *cexpr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: dump_masked_av_helper
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int dump_masked_av_helper(void *k, void *d, void *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/services.c:322,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/services.c:326,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:331,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:335,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:339,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:350,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:356,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:359,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 5
    argNames:
    - scontext
    - tcontext
    - tclass
    - permissions
    - reason
    argTypes:
    - struct context*
    - struct context*
    - u16
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 363
    functionName: security_dump_masked_av
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - printk
    - xfree
    - context_struct_to_string
    linkageType: ''
    returnType: void
    signature: "void security_dump_masked_av(struct context *scontext,\n\t\t\t\t    struct
      context *tcontext,\n\t\t\t\t    u16 tclass,\n\t\t\t\t    u32 permissions,\n\t\t\t\t
      \   const char *reason)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/services.c:386,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:388,1
    - Dst: context_struct_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:391,1
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/services.c:403,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:405,1
    - Dst: context_struct_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:408,1
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/services.c:420,1
    - Dst: context_struct_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:426,1
    - Dst: security_dump_masked_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - scontext
    - tcontext
    - tclass
    - requested
    - avd
    argTypes:
    - struct context*
    - struct context*
    - u16
    - u32
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 445
    functionName: type_attribute_bounds_av
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - memset
    - context_struct_compute_av
    - memcpy
    - security_dump_masked_av
    linkageType: ''
    returnType: void
    signature: "void type_attribute_bounds_av(struct context *scontext,\n                                     struct
      context *tcontext,\n                                     u16 tclass,\n                                     u32
      requested,\n                                     struct av_decision *avd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:497,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/services.c:499,1
    - Dst: cond_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:510,1
    - Dst: constraint_expr_eval
      Src: /src/xen/xen/xsm/flask/ss/services.c:523,1
    - Dst: type_attribute_bounds_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:553,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 5
    argNames:
    - scontext
    - tcontext
    - tclass
    - requested
    - avd
    argTypes:
    - struct context*
    - struct context*
    - u16
    - u32
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 556
    functionName: context_struct_compute_av
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - cond_compute_av
    - constraint_expr_eval
    - avtab_search_node_next
    - type_attribute_bounds_av
    - avtab_search_node
    linkageType: ''
    returnType: int
    signature: "int context_struct_compute_av(struct context *scontext,\n\t\t\t\t
      \    struct context *tcontext,\n\t\t\t\t     u16 tclass,\n\t\t\t\t     u32 requested,\n\t\t\t\t
      \    struct av_decision *avd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:497,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/services.c:499,1
    - Dst: cond_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 513
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - cond_compute_av
    - avtab_search_node_next
    - avtab_search_node
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:497,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/services.c:499,1
    - Dst: cond_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 512
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - cond_compute_av
    - avtab_search_node_next
    - avtab_search_node
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:564,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:566,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:568,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:570,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:574,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:575,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - ocontext
    - ncontext
    - tcontext
    - tclass
    argTypes:
    - struct context*
    - struct context*
    - struct context*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 581
    functionName: security_validtrans_handle_fail
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - printk
    - xfree
    - context_struct_to_string
    linkageType: ''
    returnType: int
    signature: "int security_validtrans_handle_fail(struct context *ocontext,\n                struct
      context *ncontext, struct context *tcontext, u16 tclass)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:600,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:607,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:610,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:616,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:619,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:625,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:628,1
    - Dst: constraint_expr_eval
      Src: /src/xen/xen/xsm/flask/ss/services.c:637,1
    - Dst: security_validtrans_handle_fail
      Src: /src/xen/xen/xsm/flask/ss/services.c:640,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - oldsid
    - newsid
    - tasksid
    - tclass
    argTypes:
    - u32
    - u32
    - u32
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 650
    functionName: security_validate_transition
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - constraint_expr_eval
    - sidtab_search
    - security_validtrans_handle_fail
    - printk
    linkageType: ''
    returnType: int
    signature: "int security_validate_transition(u32 oldsid, u32 newsid, u32 tasksid,\n
      \                                u16 tclass)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:682,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:685,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:689,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:692,1
    - Dst: context_struct_compute_av
      Src: /src/xen/xen/xsm/flask/ss/services.c:697,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/services.c:700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    argTypes:
    - u32
    - u32
    - u16
    - u32
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 705
    functionName: security_compute_av
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached:
    - printk
    - ebitmap_get_bit
    - context_struct_compute_av
    - sidtab_search
    linkageType: ''
    returnType: int
    signature: "int security_compute_av(u32 ssid, u32 tsid, u16 tclass, u32 requested,\n
      \                       struct av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:722,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:723,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:724,1
    - Dst: mls_compute_context_len
      Src: /src/xen/xen/xsm/flask/ss/services.c:725,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:728,1
    - Dst: snprintf
      Src: /src/xen/xen/xsm/flask/ss/services.c:737,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:741,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:742,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:743,1
    - Dst: mls_sid_to_context
      Src: /src/xen/xen/xsm/flask/ss/services.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - context
    - scontext
    - scontext_len
    argTypes:
    - struct context*
    - char**
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 750
    functionName: context_struct_to_string
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached:
    - snprintf
    - mls_sid_to_context
    - xmalloc_array
    - mls_compute_context_len
    - strlen
    linkageType: ''
    returnType: int
    signature: int context_struct_to_string(struct context *context, char **scontext,
      u32 *scontext_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:775,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:776,1
    - Dst: strlcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:779,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:783,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:789,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:792,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - sid
    - scontext
    - scontext_len
    argTypes:
    - u32
    - char**
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 803
    functionName: security_sid_to_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 4
    functionsReached:
    - xmalloc_array
    - context_struct_to_string
    - strlcpy
    - strlen
    - sidtab_search
    - printk
    linkageType: ''
    returnType: int
    signature: int security_sid_to_context(u32 sid, char **scontext, u32 *scontext_len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/services.c:832,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:848,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:854,1
    - Dst: context_init
      Src: /src/xen/xen/xsm/flask/ss/services.c:857,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:877,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:893,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:905,1
    - Dst: mls_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:911,1
    - Dst: policydb_context_isvalid
      Src: /src/xen/xen/xsm/flask/ss/services.c:922,1
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:928,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:931,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:932,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 3
    argNames:
    - scontext
    - scontext_len
    - sid
    argTypes:
    - char*
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 935
    functionName: security_context_to_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - sidtab_context_to_sid
    - context_destroy
    - mls_context_to_sid
    - hashtab_search
    - policydb_context_isvalid
    - strcmp
    - xfree
    - memcpy
    - context_init
    linkageType: ''
    returnType: int
    signature: int security_context_to_sid(char *scontext, u32 scontext_len, u32 *sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:944,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:946,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:948,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:950,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:956,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:957,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:958,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - scontext
    - tcontext
    - tclass
    - newcontext
    argTypes:
    - struct context*
    - struct context*
    - u16
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 962
    functionName: compute_sid_handle_invalid_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - printk
    - xfree
    - context_struct_to_string
    linkageType: ''
    returnType: int
    signature: "int compute_sid_handle_invalid_context(\n                struct context
      *scontext, struct context *tcontext, u16 tclass,\n                                                    struct
      context *newcontext)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:993,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:996,1
    - Dst: sidtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1000,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1003,1
    - Dst: context_init
      Src: /src/xen/xen/xsm/flask/ss/services.c:1008,1
    - Dst: avtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1044,1
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:1049,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/services.c:1050,1
    - Dst: mls_compute_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1091,1
    - Dst: policydb_context_isvalid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1096,1
    - Dst: compute_sid_handle_invalid_context
      Src: /src/xen/xen/xsm/flask/ss/services.c:1098,1
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1104,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1107,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 96
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - specified
    - out_sid
    argTypes:
    - u32
    - u32
    - u16
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 1110
    functionName: security_compute_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - sidtab_context_to_sid
    - context_destroy
    - avtab_search_node_next
    - avtab_search
    - policydb_context_isvalid
    - printk
    - avtab_search_node
    - sidtab_search
    - mls_compute_sid
    - compute_sid_handle_invalid_context
    - context_init
    linkageType: ''
    returnType: int
    signature: "int security_compute_sid(u32 ssid,\n                u32 tsid,\n                u16
      tclass,\n                u32 specified,\n                u32 *out_sid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - u32
    - u32
    - u16
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1128
    functionName: security_transition_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 6
    functionsReached:
    - security_compute_sid
    linkageType: ''
    returnType: int
    signature: int security_transition_sid(u32 ssid, u32 tsid, u16 tclass, u32 *out_sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - u32
    - u32
    - u16
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1143
    functionDepth: 4
    functionLinenumber: 1143
    functionLinenumberEnd: 1146
    functionName: security_member_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - security_compute_sid
    linkageType: ''
    returnType: int
    signature: int security_member_sid(u32 ssid, u32 tsid, u16 tclass, u32 *out_sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - u32
    - u32
    - u16
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1161
    functionDepth: 4
    functionLinenumber: 1161
    functionLinenumberEnd: 1164
    functionName: security_change_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - security_compute_sid
    linkageType: ''
    returnType: int
    signature: int security_change_sid(u32 ssid, u32 tsid, u16 tclass, u32 *out_sid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1188,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/services.c:1194,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1196,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1210,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/services.c:1211,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1216,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1221,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1224,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1232,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1239
    functionName: validate_classes
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - BUG_ON
    - strcmp
    - printk
    linkageType: ''
    returnType: int
    signature: int validate_classes(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_insert
      Src: /src/xen/xen/xsm/flask/ss/services.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sid
    - context
    - arg
    argTypes:
    - u32
    - struct context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1247
    functionName: clone_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - sidtab_insert
    linkageType: ''
    returnType: int
    signature: int clone_sid(u32 sid, struct context *context, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:1260,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1261,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1265
    functionName: convert_context_handle_invalid_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - printk
    - xfree
    - context_struct_to_string
    linkageType: ''
    returnType: int
    signature: int convert_context_handle_invalid_context(struct context *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: context_cpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1292,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1299,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1307,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1315,1
    - Dst: mls_convert_context
      Src: /src/xen/xen/xsm/flask/ss/services.c:1322,1
    - Dst: policydb_context_isvalid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1327,1
    - Dst: convert_context_handle_invalid_context
      Src: /src/xen/xen/xsm/flask/ss/services.c:1329,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1334,1
    - Dst: context_struct_to_string
      Src: /src/xen/xen/xsm/flask/ss/services.c:1338,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1339,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1340,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1341,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - key
    - c
    - p
    argTypes:
    - u32
    - struct context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1343
    functionName: convert_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - context_destroy
    - context_struct_to_string
    - convert_context_handle_invalid_context
    - context_cpy
    - hashtab_search
    - policydb_context_isvalid
    - mls_convert_context
    - printk
    - xfree
    linkageType: ''
    returnType: int
    signature: int convert_context(u32 key, struct context *c, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: policydb_read
      Src: /src/xen/xen/xsm/flask/ss/services.c:1370,1
    - Dst: policydb_load_isids
      Src: /src/xen/xen/xsm/flask/ss/services.c:1375,1
    - Dst: policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1378,1
    - Dst: validate_classes
      Src: /src/xen/xen/xsm/flask/ss/services.c:1381,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1384,1
    - Dst: sidtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1386,1
    - Dst: policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1387,1
    - Dst: avc_ss_reset
      Src: /src/xen/xen/xsm/flask/ss/services.c:1393,1
    - Dst: sidtab_hash_eval
      Src: /src/xen/xen/xsm/flask/ss/services.c:1398,1
    - Dst: policydb_read
      Src: /src/xen/xen/xsm/flask/ss/services.c:1401,1
    - Dst: sidtab_init
      Src: /src/xen/xen/xsm/flask/ss/services.c:1407,1
    - Dst: validate_classes
      Src: /src/xen/xen/xsm/flask/ss/services.c:1410,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1412,1
    - Dst: security_preserve_bools
      Src: /src/xen/xen/xsm/flask/ss/services.c:1418,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1421,1
    - Dst: sidtab_shutdown
      Src: /src/xen/xen/xsm/flask/ss/services.c:1426,1
    - Dst: sidtab_map
      Src: /src/xen/xen/xsm/flask/ss/services.c:1427,1
    - Dst: sidtab_map_remove_on_error
      Src: /src/xen/xen/xsm/flask/ss/services.c:1437,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1440,1
    - Dst: sidtab_set
      Src: /src/xen/xen/xsm/flask/ss/services.c:1441,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1445,1
    - Dst: sidtab_set
      Src: /src/xen/xen/xsm/flask/ss/services.c:1446,1
    - Dst: policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1452,1
    - Dst: sidtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1453,1
    - Dst: avc_ss_reset
      Src: /src/xen/xen/xsm/flask/ss/services.c:1455,1
    - Dst: sidtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1461,1
    - Dst: policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1462,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 70
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1357
    functionDepth: 6
    functionLinenumber: 1357
    functionLinenumberEnd: 1465
    functionName: security_load_policy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached:
    - sidtab_set
    - sidtab_init
    - policydb_read
    - sidtab_map_remove_on_error
    - sidtab_destroy
    - sidtab_map
    - policydb_load_isids
    - sidtab_shutdown
    - printk
    - avc_ss_reset
    - security_preserve_bools
    - memcpy
    - sidtab_hash_eval
    - policydb_destroy
    - validate_classes
    linkageType: ''
    returnType: int
    signature: int security_load_policy(const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1470
    functionName: security_get_allow_unknown
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_get_allow_unknown(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pirq
    - out_sid
    argTypes:
    - int
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1511
    functionName: security_irq_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: int security_irq_sid(int pirq, u32 *out_sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - mfn
    - out_sid
    argTypes:
    - unsigned long
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1551
    functionName: security_iomem_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: int security_iomem_sid(unsigned long mfn, u32 *out_sid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1568,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1574,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1581,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1585,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1593,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - start
    - end
    - fn
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - security_iterate_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1598
    functionName: security_iterate_iomem_sids
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - fn
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int security_iterate_iomem_sids(unsigned long start, unsigned long
      end,\n                                security_iterate_fn fn, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - ioport
    - out_sid
    argTypes:
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1639
    functionName: security_ioport_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 0
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: int security_ioport_sid(u32 ioport, u32 *out_sid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1656,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1662,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1669,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1673,1
    - Dst: fn
      Src: /src/xen/xen/xsm/flask/ss/services.c:1681,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 4
    argNames:
    - start
    - end
    - fn
    - data
    argTypes:
    - u32
    - u32
    - security_iterate_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1686
    functionName: security_iterate_ioport_sids
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - fn
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int security_iterate_ioport_sids(u32 start, u32 end,\n                                security_iterate_fn
      fn, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - device
    - out_sid
    argTypes:
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1726
    functionName: security_device_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 11
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: int security_device_sid(u32 device, u32 *out_sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/services.c:1738,1
    - Dst: sidtab_context_to_sid
      Src: /src/xen/xen/xsm/flask/ss/services.c:1747,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - path
    - out_sid
    argTypes:
    - char*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1761
    functionName: security_devicetree_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 3
    functionsReached:
    - sidtab_context_to_sid
    - strcmp
    linkageType: ''
    returnType: int
    signature: int security_devicetree_sid(const char *path, u32 *out_sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/services.c:1769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1763
    functionDepth: 0
    functionLinenumber: 1763
    functionLinenumberEnd: 1778
    functionName: security_find_bool
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int security_find_bool(const char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:1800,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:1805,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:1811,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:1815,1
    - Dst: strlcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1818,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1831,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1832,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1834,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 4
    argNames:
    - len
    - names
    - values
    - maxstr
    argTypes:
    - int*
    - char***
    - int**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1780
    functionDepth: 1
    functionLinenumber: 1780
    functionLinenumberEnd: 1836
    functionName: security_get_bools
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached:
    - xmalloc_array
    - xzalloc_array
    - strlcpy
    - strlen
    - xfree
    linkageType: ''
    returnType: int
    signature: int security_get_bools(int *len, char ***names, int **values, size_t
      *maxstr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1854,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1866,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1867,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1870,1
    - Dst: evaluate_cond_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:1874,1
    - Dst: avc_ss_reset
      Src: /src/xen/xen/xsm/flask/ss/services.c:1885,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - len
    - values
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1839
    functionDepth: 6
    functionLinenumber: 1839
    functionLinenumberEnd: 1888
    functionName: security_set_bools
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached:
    - evaluate_cond_node
    - printk
    - avc_ss_reset
    linkageType: ''
    returnType: int
    signature: int security_set_bools(int len, int *values)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1908
    functionName: security_get_bool_value
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_get_bool_value(unsigned int b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/services.c:1923,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/services.c:1924,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/services.c:1927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1910
    functionDepth: 1
    functionLinenumber: 1910
    functionLinenumberEnd: 1931
    functionName: security_get_bool_name
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - memcpy
    - xmalloc_array
    - strlen
    linkageType: ''
    returnType: char
    signature: char *security_get_bool_name(unsigned int b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: security_get_bools
      Src: /src/xen/xen/xsm/flask/ss/services.c:1940,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/services.c:1945,1
    - Dst: evaluate_cond_node
      Src: /src/xen/xen/xsm/flask/ss/services.c:1951,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1960,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1962,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:1963,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1933
    functionDepth: 2
    functionLinenumber: 1933
    functionLinenumberEnd: 1965
    functionName: security_preserve_bools
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - hashtab_search
    - evaluate_cond_node
    - security_get_bools
    - xfree
    linkageType: ''
    returnType: int
    signature: int security_preserve_bools(struct policydb *p)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/services.c:1975,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:1997,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2029,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2062,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2093,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2113,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 105
    argCount: 4
    argNames:
    - ocon
    - low
    - high
    - sid
    argTypes:
    - u32
    - unsigned long
    - unsigned long
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 1967
    functionDepth: 1
    functionLinenumber: 1967
    functionLinenumberEnd: 2115
    functionName: security_ocontext_add
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - xfree
    - printk
    linkageType: ''
    returnType: int
    signature: "int security_ocontext_add( u32 ocon, unsigned long low, unsigned long
      high\n                            ,u32 sid )"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2134,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2140,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2146,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2160,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2166,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2172,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2186,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2192,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2198,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2211,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2217,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/services.c:2223,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 3
    argNames:
    - ocon
    - low
    - high
    argTypes:
    - u32
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2234
    functionName: security_ocontext_del
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - xfree
    - printk
    linkageType: ''
    returnType: int
    signature: int security_ocontext_del( u32 ocon, unsigned long low, unsigned long
      high )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/services.c:2245,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2248,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/services.c:2265,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2275,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2276,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2295,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/services.c:2296,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - path
    - sid
    argTypes:
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2236
    functionDepth: 0
    functionLinenumber: 2236
    functionLinenumberEnd: 2298
    functionName: security_devicetree_setlabel
    functionSourceFile: /src/xen/xen/xsm/flask/ss/services.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - strcmp
    - xfree
    linkageType: ''
    returnType: int
    signature: int security_devicetree_setlabel(char *path, u32 sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - version
    - target
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: policydb_lookup_compat
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct policydb_compat_info
    signature: "struct policydb_compat_info *policydb_lookup_compat(int version,\n
      \                                                           int target)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:177,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:189,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:189,1
    - Dst: strlcpy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:195,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:195,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:196,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:203,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 207
    functionName: roles_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - hashtab_insert
    - strlcpy
    - strlen
    - xfree
    linkageType: ''
    returnType: int
    signature: int roles_init(struct policydb *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:216,1
    - Dst: symtab_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:220,1
    - Dst: avtab_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:225,1
    - Dst: roles_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:229,1
    - Dst: cond_policydb_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:233,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:237,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:238,1
    - Dst: avtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:244,1
    - Dst: hashtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 250
    functionName: policydb_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 1
    functionsReached:
    - avtab_init
    - symtab_init
    - roles_init
    - ebitmap_init
    - hashtab_destroy
    - memset
    - cond_policydb_init
    - avtab_destroy
    linkageType: ''
    returnType: int
    signature: int policydb_init(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: common_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int common_index(void *key, void *datum, void *datap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: class_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int class_index(void *key, void *datum, void *datap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: role_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int role_index(void *key, void *datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 316
    functionName: type_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type_index(void *key, void *datum, void *datap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 332
    functionName: user_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int user_index(void *key, void *datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 351
    functionName: sens_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sens_index(void *key, void *datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: cat_index
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cat_index(void *key, void *datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:394,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:402,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 412
    functionName: policydb_index_classes
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - xmalloc_array
    linkageType: ''
    returnType: int
    signature: int policydb_index_classes(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_stat
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:424,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct symtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 429
    functionName: symtab_hash_eval
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - printk
    - hashtab_stat
    linkageType: ''
    returnType: void
    signature: void symtab_hash_eval(struct symtab *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:442,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:445,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:447,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:449,1
    - Dst: avtab_hash_eval
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:453,1
    - Dst: symtab_hash_eval
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:454,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:458,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:466,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:474,1
    - Dst: cond_init_bool_indexes
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:481,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:490,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:496,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 503
    functionName: policydb_index_others
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - symtab_hash_eval
    - printk
    - cond_init_bool_indexes
    - hashtab_map
    - avtab_hash_eval
    linkageType: ''
    returnType: int
    signature: int policydb_index_others(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:513,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: perm_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: int
    signature: int perm_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:522,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:524,1
    - Dst: hashtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:525,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: common_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - xfree
    - hashtab_destroy
    linkageType: ''
    returnType: int
    signature: int common_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:536,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:538,1
    - Dst: hashtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:539,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:546,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:549,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:553,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:562,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:565,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:569,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:572,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 575
    functionName: class_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - xfree
    - ebitmap_destroy
    - hashtab_destroy
    linkageType: ''
    returnType: int
    signature: int class_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:581,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:583,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:584,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 587
    functionName: role_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int role_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:591,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: type_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: int
    signature: int type_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:600,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:602,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:603,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:604,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:605,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 608
    functionName: user_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int user_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:614,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:616,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:617,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 620
    functionName: sens_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int sens_destroy(void *key, void *datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:624,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: cat_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: int
    signature: int cat_destroy(void *key, void *datum, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:643,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:645,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - c
    - i
    argTypes:
    - struct ocontext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 647
    functionName: ocontext_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - context_destroy
    - xfree
    linkageType: ''
    returnType: void
    signature: void ocontext_destroy(struct ocontext *c, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:662,1
    - Dst: hashtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:663,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:667,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:669,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:670,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:671,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:672,1
    - Dst: avtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:674,1
    - Dst: ocontext_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:683,1
    - Dst: cond_policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:688,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:692,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:695,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:699,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:702,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:708,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:709,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:710,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:716,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:717,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:718,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:723,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:724,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:726,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:727,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 730
    functionName: policydb_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 2
    functionsReached:
    - ocontext_destroy
    - hashtab_destroy
    - ebitmap_destroy
    - hashtab_map
    - xfree
    - cond_policydb_destroy
    - avtab_destroy
    linkageType: ''
    returnType: void
    signature: void policydb_destroy(struct policydb *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:741,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:744,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:753,1
    - Dst: sidtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:758,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:760,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - struct policydb*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 768
    functionName: policydb_load_isids
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 1
    functionsReached:
    - sidtab_init
    - printk
    - sidtab_insert
    linkageType: ''
    returnType: int
    signature: int policydb_load_isids(struct policydb *p, struct sidtab *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - class
    argTypes:
    - struct policydb*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: policydb_class_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int policydb_class_isvalid(struct policydb *p, unsigned int class)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - role
    argTypes:
    - struct policydb*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 782
    functionName: policydb_role_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int policydb_role_isvalid(struct policydb *p, unsigned int role)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - type
    argTypes:
    - struct policydb*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 789
    functionName: policydb_type_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int policydb_type_isvalid(struct policydb *p, unsigned int type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:815,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:826,1
    - Dst: mls_context_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:831,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - struct policydb*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 835
    functionName: policydb_context_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 3
    functionsReached:
    - ebitmap_get_bit
    - mls_context_isvalid
    linkageType: ''
    returnType: int
    signature: int policydb_context_isvalid(struct policydb *p, struct context *c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:847,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:851,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:852,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:854,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:858,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:861,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:864,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:866,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:870,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:873,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:879,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:882,1
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:889,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:892,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:901,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - struct mls_range*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 903
    functionName: mls_read_range_helper
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    - ARRAY_SIZE
    - next_entry
    - ebitmap_read
    - le32_to_cpu
    - printk
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int mls_read_range_helper(struct mls_range *r, void *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:915,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:918,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:921,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:922,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:923,1
    - Dst: mls_read_range_helper
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:926,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:928,1
    - Dst: policydb_context_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:935,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:937,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - c
    - p
    - fp
    argTypes:
    - struct context*
    - struct policydb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 943
    functionName: context_read_and_validate
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - context_destroy
    - next_entry
    - mls_read_range_helper
    - le32_to_cpu
    - policydb_context_isvalid
    - printk
    linkageType: ''
    returnType: int
    signature: "int context_read_and_validate(struct context *c, struct policydb *p,\n
      \                                                                   void *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:959,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:966,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:970,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:971,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:973,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:979,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:984,1
    - Dst: perm_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:990,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 992
    functionName: perm_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - perm_destroy
    - hashtab_insert
    - next_entry
    - le32_to_cpu
    linkageType: ''
    returnType: int
    signature: int perm_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1002,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1009,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1013,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1014,1
    - Dst: symtab_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1016,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1019,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1020,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1022,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1028,1
    - Dst: perm_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1035,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1040,1
    - Dst: common_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1046,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1048
    functionName: common_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - symtab_init
    - next_entry
    - perm_read
    - hashtab_insert
    - le32_to_cpu
    - common_destroy
    linkageType: ''
    returnType: int
    signature: int common_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1062,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1075,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1078,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1079,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1084,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1093,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1096,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1097,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1098,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1123,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1128,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1129,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1131,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1133,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1134,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1136,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1138,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 5
    argNames:
    - p
    - nodep
    - ncons
    - allowxtarget
    - fp
    argTypes:
    - struct policydb*
    - struct constraint_node**
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1154
    functionName: read_cons_helper
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - next_entry
    - ebitmap_read
    - le32_to_cpu
    - ebitmap_init
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: "int read_cons_helper(struct policydb *p, struct constraint_node **nodep,\n
      \                           int ncons, int allowxtarget, void *fp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1164,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1171,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1175,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1176,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1177,1
    - Dst: symtab_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1179,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1182,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1183,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1185,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1187,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1193,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1200,1
    - Dst: perm_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1206,1
    - Dst: read_cons_helper
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1211,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1218,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1221,1
    - Dst: read_cons_helper
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1222,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1229,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1237,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1243,1
    - Dst: class_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1251,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1253
    functionName: class_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - class_destroy
    - symtab_init
    - next_entry
    - perm_read
    - hashtab_insert
    - read_cons_helper
    - le32_to_cpu
    - printk
    linkageType: ''
    returnType: int
    signature: int class_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1264,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1272,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1275,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1276,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1282,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1283,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1285,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1287,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1293,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1298,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1302,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1306,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1310,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1319,1
    - Dst: role_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1325,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1327
    functionName: role_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - next_entry
    - hashtab_insert
    - ebitmap_read
    - le32_to_cpu
    - cpu_to_le32
    - printk
    - role_destroy
    - strcmp
    linkageType: ''
    returnType: int
    signature: int role_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1338,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1346,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1349,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1350,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1356,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1357,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1360,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1367,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1371,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1374,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1380,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1385,1
    - Dst: type_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1391,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1393
    functionName: type_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - next_entry
    - hashtab_insert
    - type_destroy
    - le32_to_cpu
    - cpu_to_le32
    linkageType: ''
    returnType: int
    signature: int type_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1405,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1407,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1410,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1413,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1415,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - lp
    - fp
    argTypes:
    - struct mls_level*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1424
    functionName: mls_read_level
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - next_entry
    - ebitmap_read
    - le32_to_cpu
    - printk
    - memset
    linkageType: ''
    returnType: int
    signature: int mls_read_level(struct mls_level *lp, void *fp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1435,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1443,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1446,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1447,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1453,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1454,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1456,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1458,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1464,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1469,1
    - Dst: mls_read_range_helper
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1475,1
    - Dst: mls_read_level
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1478,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1483,1
    - Dst: user_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1489,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1491
    functionName: user_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - user_destroy
    - next_entry
    - mls_read_range_helper
    - mls_read_level
    - hashtab_insert
    - ebitmap_read
    - le32_to_cpu
    - cpu_to_le32
    linkageType: ''
    returnType: int
    signature: int user_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1501,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1508,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1512,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1513,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1515,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1521,1
    - Dst: xmalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1526,1
    - Dst: mls_read_level
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1532,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1538,1
    - Dst: sens_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1544,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1546
    functionName: sens_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - xmalloc
    - next_entry
    - mls_read_level
    - hashtab_insert
    - le32_to_cpu
    - sens_destroy
    linkageType: ''
    returnType: int
    signature: int sens_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1556,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1563,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1567,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1568,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1569,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1571,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1577,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1582,1
    - Dst: cat_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1591
    functionName: cat_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - hashtab_insert
    - next_entry
    - cat_destroy
    - le32_to_cpu
    linkageType: ''
    returnType: int
    signature: int cat_read(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1620,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1627,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1629,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1644
    functionName: user_bounds_sanity_check
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    - ebitmap_for_each_positive_bit
    - printk
    linkageType: ''
    returnType: int
    signature: "int user_bounds_sanity_check(\n    void *key, void *datum, void *datap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1661,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1668,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1670,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1646
    functionDepth: 1
    functionLinenumber: 1646
    functionLinenumberEnd: 1685
    functionName: role_bounds_sanity_check
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    - ebitmap_for_each_positive_bit
    - printk
    linkageType: ''
    returnType: int
    signature: "int role_bounds_sanity_check(\n    void *key, void *datum, void *datap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1699,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1717
    functionName: type_bounds_sanity_check
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int type_bounds_sanity_check(\n    void *key, void *datum, void *datap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1726,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1731,1
    - Dst: hashtab_map
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1742
    functionName: policydb_bounds_sanity_check
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int policydb_bounds_sanity_check(struct policydb *p)
  - BBCount: 90
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1761,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1766,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1770,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1772,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1774,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1778,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1779,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1781,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1783,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1786,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1789,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1794,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1797,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1798,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1802,1
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1804,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1808,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1809,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1813,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1817,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1821,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1825,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1827,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1831,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1835,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1844,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1853,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1858,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1861,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1865,1
    - Dst: policydb_lookup_compat
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1868,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1871,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1876,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1877,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1879,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1880,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1881,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1888,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1891,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1892,1
    - Dst: avtab_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1903,1
    - Dst: cond_read_list
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1909,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1914,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1917,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1921,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1932,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1934,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1937,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1938,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1939,1
    - Dst: policydb_role_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1940,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1941,1
    - Dst: policydb_role_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1942,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1950,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1953,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1957,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1967,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1970,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1971,1
    - Dst: policydb_role_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1972,1
    - Dst: policydb_role_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1973,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1983,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1986,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1989,1
    - Dst: policydb_index_classes
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1995,1
    - Dst: policydb_index_others
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:1999,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2005,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2008,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2013,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2023,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2026,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2027,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2034,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2038,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2041,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2042,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2049,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2053,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2056,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2057,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2058,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2077,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2084,1
    - Dst: le64_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2087,1
    - Dst: le64_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2088,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2092,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2095,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2096,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2098,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2117,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2121,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2124,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2125,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2132,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2136,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2139,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2141,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2144,1
    - Dst: context_read_and_validate
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2148,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2153,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2164,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2167,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2170,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2178,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2181,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2185,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2195,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2198,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2199,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2202,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2205,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2208,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2209,1
    - Dst: policydb_class_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2210,1
    - Dst: mls_read_range_helper
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2215,1
    - Dst: mls_range_isvalid
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2218,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2220,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2227,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2233,1
    - Dst: ebitmap_read
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2236,1
    - Dst: ebitmap_set_bit
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2240,1
    - Dst: policydb_bounds_sanity_check
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2244,1
    - Dst: policydb_destroy
      Src: /src/xen/xen/xsm/flask/ss/policydb.c:2254,1
    CyclomaticComplexity: 185
    EdgeCount: 185
    ICount: 450
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - struct policydb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 1748
    functionDepth: 3
    functionLinenumber: 1748
    functionLinenumberEnd: 2256
    functionName: policydb_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.c
    functionUses: 1
    functionsReached:
    - next_entry
    - le32_to_cpu
    - strlen
    - strcmp
    - xfree
    - xzalloc
    - policydb_index_others
    - ebitmap_read
    - ebitmap_init
    - printk
    - context_read_and_validate
    - mls_read_range_helper
    - cond_read_list
    - avtab_read
    - policydb_class_isvalid
    - policydb_bounds_sanity_check
    - policydb_init
    - policydb_role_isvalid
    - policydb_lookup_compat
    - policydb_index_classes
    - xmalloc_array
    - ebitmap_set_bit
    - policydb_type_isvalid
    - mls_range_isvalid
    - policydb_destroy
    - le64_to_cpu
    linkageType: ''
    returnType: int
    signature: int policydb_read(struct policydb *p, void *fp)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - p
    - expr
    argTypes:
    - struct policydb*
    - struct cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 85
    functionName: cond_evaluate_expr
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_evaluate_expr(struct policydb *p, struct cond_expr *expr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cond_evaluate_expr
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:99,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - p
    - node
    argTypes:
    - struct policydb*
    - struct cond_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: evaluate_cond_node
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 2
    functionsReached:
    - cond_evaluate_expr
    - printk
    linkageType: ''
    returnType: int
    signature: int evaluate_cond_node(struct policydb *p, struct cond_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avtab_init
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: cond_policydb_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 1
    functionsReached:
    - avtab_init
    linkageType: ''
    returnType: int
    signature: int cond_policydb_init(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct cond_av_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: cond_av_list_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void cond_av_list_destroy(struct cond_av_list *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:154,1
    - Dst: cond_av_list_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:156,1
    - Dst: cond_av_list_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:157,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cond_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 159
    functionName: cond_node_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xfree
    - cond_av_list_destroy
    linkageType: ''
    returnType: void
    signature: void cond_node_destroy(struct cond_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct cond_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: cond_list_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - cond_node_destroy
    linkageType: ''
    returnType: void
    signature: void cond_list_destroy(struct cond_node *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:177,1
    - Dst: avtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:178,1
    - Dst: cond_list_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: cond_policydb_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 1
    functionsReached:
    - xfree
    - avtab_destroy
    - cond_list_destroy
    linkageType: ''
    returnType: void
    signature: void cond_policydb_destroy(struct policydb *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:184,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: cond_init_bool_indexes
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - xfree
    linkageType: ''
    returnType: int
    signature: int cond_init_bool_indexes(struct policydb *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:194,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: cond_destroy_bool
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: int
    signature: int cond_destroy_bool(void *key, void *datum, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 214
    functionName: cond_index_bool
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_index_bool(void *key, void *datum, void *datap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct cond_bool_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: bool_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bool_isvalid(struct cond_bool_datum *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:231,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:235,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:239,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:240,1
    - Dst: bool_isvalid
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:242,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:245,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:247,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:250,1
    - Dst: hashtab_insert
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:254,1
    - Dst: cond_destroy_bool
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - struct policydb*
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 261
    functionName: cond_read_bool
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - next_entry
    - hashtab_insert
    - bool_isvalid
    - le32_to_cpu
    - cond_destroy_bool
    linkageType: ''
    returnType: int
    signature: int cond_read_bool(struct policydb *p, struct hashtab *h, void *fp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:287,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:289,1
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:303,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:306,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:308,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:322,1
    - Dst: avtab_search
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:329,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:331,1
    - Dst: avtab_insert_nonunique
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:338,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:341,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:345,1
    - Dst: cond_av_list_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:358,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 4
    argNames:
    - a
    - k
    - d
    - ptr
    argTypes:
    - struct avtab*
    - struct avtab_key*
    - struct avtab_datum*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 361
    functionName: cond_insertf
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - avtab_search_node_next
    - cond_av_list_destroy
    - avtab_search
    - avtab_insert_nonunique
    - avtab_search_node
    - printk
    linkageType: ''
    returnType: int
    signature: "int cond_insertf(\n    struct avtab *a, struct avtab_key *k, struct
      avtab_datum *d, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:374,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:378,1
    - Dst: avtab_read_item
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - p
    - fp
    - ret_list
    - other
    argTypes:
    - struct policydb*
    - void*
    - struct cond_av_list**
    - struct cond_av_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 397
    functionName: cond_read_av_list
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - avtab_read_item
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int cond_read_av_list(struct policydb *p, void *fp, \n                    struct
      cond_av_list **ret_list, struct cond_av_list *other)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:403,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - expr
    argTypes:
    - struct policydb*
    - struct cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: expr_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int expr_isvalid(struct policydb *p, struct cond_expr *expr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:422,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:426,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:429,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:434,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:438,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:442,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:446,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:447,1
    - Dst: expr_isvalid
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:449,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:451,1
    - Dst: cond_read_av_list
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:463,1
    - Dst: cond_read_av_list
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:465,1
    - Dst: cond_node_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:469,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - p
    - node
    - fp
    argTypes:
    - struct policydb*
    - struct cond_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 471
    functionName: cond_read_node
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - next_entry
    - le32_to_cpu
    - cond_node_destroy
    - cond_read_av_list
    - expr_isvalid
    - xfree
    linkageType: ''
    returnType: int
    signature: int cond_read_node(struct policydb *p, struct cond_node *node, void
      *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:480,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:484,1
    - Dst: avtab_alloc
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:486,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:492,1
    - Dst: cond_read_node
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:496,1
    - Dst: cond_list_destroy
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - struct policydb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 511
    functionName: cond_read_list
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - next_entry
    - cond_list_destroy
    - cond_read_node
    - le32_to_cpu
    - avtab_alloc
    linkageType: ''
    returnType: int
    signature: int cond_read_list(struct policydb *p, void *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:524,1
    - Dst: avtab_search_node_next
      Src: /src/xen/xen/xsm/flask/ss/conditional.c:525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ctab
    - key
    - avd
    argTypes:
    - struct avtab*
    - struct avtab_key*
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 543
    functionName: cond_compute_av
    functionSourceFile: /src/xen/xen/xsm/flask/ss/conditional.c
    functionUses: 3
    functionsReached:
    - avtab_search_node_next
    - avtab_search_node
    linkageType: ''
    returnType: void
    signature: "void cond_compute_av(struct avtab *ctab, struct avtab_key *key,\n
      \                                                       struct av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/policydb.h:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - buf
    - fp
    - bytes
    argTypes:
    - void*
    - struct policy_file*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: next_entry
    functionSourceFile: /src/xen/xen/xsm/flask/ss/policydb.h
    functionUses: 18
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int next_entry(void *buf, struct policy_file *fp, size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:33,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct ebitmap*
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: ebitmap_cmp
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ebitmap_cmp(struct ebitmap *e1, struct ebitmap *e2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:49,1
    - Dst: xzalloc::xzalloc
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:54,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:57,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:61,1
    - Dst: maps::maps
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct ebitmap*
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 73
    functionName: ebitmap_cpy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 1
    functionsReached:
    - maps::maps
    - xzalloc::xzalloc
    - ebitmap_init
    - ebitmap_destroy
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ebitmap_cpy(struct ebitmap *dst, struct ebitmap *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - struct ebitmap*
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 106
    functionName: ebitmap_contains
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_contains(struct ebitmap *e1, struct ebitmap *e2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_node_get_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - e
    - bit
    argTypes:
    - struct ebitmap*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: ebitmap_get_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 5
    functionsReached:
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: int
    signature: int ebitmap_get_bit(struct ebitmap *e, unsigned long bit)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_node_set_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:138,1
    - Dst: ebitmap_node_clr_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:144,1
    - Dst: find_first_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:146,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:168,1
    - Dst: xzalloc::xzalloc
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:179,1
    - Dst: startbit::startbit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - e
    - bit
    - value
    argTypes:
    - struct ebitmap*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 202
    functionName: ebitmap_set_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 1
    functionsReached:
    - ebitmap_node_clr_bit
    - ebitmap_node_set_bit
    - xzalloc::xzalloc
    - startbit::startbit
    - find_first_bit
    - xfree
    linkageType: ''
    returnType: int
    signature: int ebitmap_set_bit(struct ebitmap *e, unsigned long bit, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: ebitmap_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 8
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void ebitmap_destroy(struct ebitmap *e)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:232,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:234,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:238,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:239,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:240,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:244,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:262,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:265,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:268,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:271,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:278,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:286,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:290,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:305,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:311,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:314,1
    - Dst: le64_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:317,1
    - Dst: EBITMAP_SHIFT_UNIT_SIZE
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:323,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.c:333,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 2
    argNames:
    - e
    - fp
    argTypes:
    - struct ebitmap*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 335
    functionName: ebitmap_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.c
    functionUses: 6
    functionsReached:
    - xzalloc
    - next_entry
    - le32_to_cpu
    - ebitmap_init
    - printk
    - EBITMAP_SHIFT_UNIT_SIZE
    - ebitmap_destroy
    - le64_to_cpu
    linkageType: ''
    returnType: int
    signature: int ebitmap_read(struct ebitmap *e, void *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:19,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:27,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 35
    functionName: hashtab_create
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xfree
    - xzalloc_array
    linkageType: ''
    returnType: struct hashtab
    signature: "struct hashtab *hashtab_create(u32 (*hash_value)(struct hashtab *h,\n\t\t\t\t\t\t
      const void *key),\n            int (*keycmp)(struct hashtab *h, const void *key1,\n\t\t\t
      \ const void *key2), u32 size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct hashtab*::hash_value
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:45,1
    - Dst: struct hashtab*::keycmp
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:48,1
    - Dst: struct hashtab*::keycmp
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:54,1
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:57,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - struct hashtab*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 75
    functionName: hashtab_insert
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 10
    functionsReached:
    - xzalloc
    - struct hashtab*::hash_value
    - struct hashtab*::keycmp
    linkageType: ''
    returnType: int
    signature: int hashtab_insert(struct hashtab *h, void *key, void *datum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct hashtab*::hash_value
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:85,1
    - Dst: struct hashtab*::keycmp
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:87,1
    - Dst: struct hashtab*::keycmp
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: hashtab_search
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 4
    functionsReached:
    - struct hashtab*::hash_value
    - struct hashtab*::keycmp
    linkageType: ''
    returnType: void
    signature: void *hashtab_search(struct hashtab *h, const void *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:111,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:116,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct hashtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 120
    functionName: hashtab_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 4
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void hashtab_destroy(struct hashtab *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/xen/xen/xsm/flask/ss/hashtab.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - h
    - args
    argTypes:
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: hashtab_map
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 7
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int hashtab_map(struct hashtab *h,\n        int (*apply)(void *k,
      void *d, void *args),\n        void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - h
    - info
    argTypes:
    - struct hashtab*
    - struct hashtab_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: hashtab_stat
    functionSourceFile: /src/xen/xen/xsm/flask/ss/hashtab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashtab_stat(struct hashtab *h, struct hashtab_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cmp
      Src: /src/xen/xen/xsm/flask/ss/mls_types.h:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct mls_level*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: mls_level_eq
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls_types.h
    functionUses: 1
    functionsReached:
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: int mls_level_eq(struct mls_level *l1, struct mls_level *l2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_contains
      Src: /src/xen/xen/xsm/flask/ss/mls_types.h:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct mls_level*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: mls_level_dom
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls_types.h
    functionUses: 1
    functionsReached:
    - ebitmap_contains
    linkageType: ''
    returnType: int
    signature: int mls_level_dom(struct mls_level *l1, struct mls_level *l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l1
    - ','
    - l2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: mls_level_incomp
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_level_incomp(l1, l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - l3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: mls_level_between
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_level_between(l1, l2, l3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r1
    - ','
    - r2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: mls_range_contains
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_range_contains(r1, r2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:44,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:58,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:61,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:69,1
    - Dst: mls_level_eq
      Src: /src/xen/xen/xsm/flask/ss/mls.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 82
    functionName: mls_compute_context_len
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - mls_level_eq
    - strlen
    linkageType: ''
    returnType: int
    signature: int mls_compute_context_len(struct context * context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:58,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(e, node, i)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:106,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:108,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:109,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:127,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:127,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:128,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:135,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:135,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:136,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:149,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:149,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:150,1
    - Dst: mls_level_eq
      Src: /src/xen/xen/xsm/flask/ss/mls.c:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - context
    - scontext
    argTypes:
    - struct context*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 168
    functionName: mls_sid_to_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - mls_level_eq
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void mls_sid_to_context(struct context *context, char **scontext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:127,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:127,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:128,1
    - Dst: memcpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:135,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:135,1
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/mls.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 140
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 2
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(e, node, i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:178,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:183,1
    - Dst: ebitmap_get_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - p
    - l
    argTypes:
    - struct policydb*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: mls_level_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - ebitmap_get_bit
    - ebitmap_for_each_positive_bit
    linkageType: ''
    returnType: int
    signature: int mls_level_isvalid(struct policydb *p, struct mls_level *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_isvalid
      Src: /src/xen/xen/xsm/flask/ss/mls.c:202,1
    - Dst: mls_level_isvalid
      Src: /src/xen/xen/xsm/flask/ss/mls.c:203,1
    - Dst: mls_level_dom
      Src: /src/xen/xen/xsm/flask/ss/mls.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - p
    - r
    argTypes:
    - struct policydb*
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: mls_range_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - mls_level_dom
    - mls_level_isvalid
    linkageType: ''
    returnType: int
    signature: int mls_range_isvalid(struct policydb *p, struct mls_range *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_isvalid
      Src: /src/xen/xen/xsm/flask/ss/mls.c:218,1
    - Dst: mls_range_contains
      Src: /src/xen/xen/xsm/flask/ss/mls.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - struct policydb*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 234
    functionName: mls_context_isvalid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - mls_range_contains
    - mls_range_isvalid
    linkageType: ''
    returnType: int
    signature: int mls_context_isvalid(struct policydb *p, struct context *c)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:279,1
    - Dst: strchr
      Src: /src/xen/xen/xsm/flask/ss/mls.c:301,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:307,1
    - Dst: ebitmap_set_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:314,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:324,1
    - Dst: ebitmap_set_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:339,1
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:367,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 86
    argCount: 4
    argNames:
    - oldc
    - scontext
    - context
    - s
    argTypes:
    - char
    - char**
    - struct context*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 376
    functionName: mls_context_to_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - hashtab_search
    - strchr
    - ebitmap_cpy
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int mls_context_to_sid(char oldc, char **scontext,\n                       struct
      context *context, struct sidtab *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - context
    - range
    argTypes:
    - struct context*
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 397
    functionName: mls_range_set
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_range_set(struct context *context,\n                                                    struct
      mls_range *range)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:418,1
    - Dst: ebitmap_init
      Src: /src/xen/xen/xsm/flask/ss/mls.c:425,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:426,1
    - Dst: hashtab_search
      Src: /src/xen/xen/xsm/flask/ss/mls.c:430,1
    - Dst: ebitmap_set_bit
      Src: /src/xen/xen/xsm/flask/ss/mls.c:434,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - oldp
    - newp
    - c
    argTypes:
    - struct policydb*
    - struct policydb*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 443
    functionName: mls_convert_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - ebitmap_set_bit
    - ebitmap_init
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: "int mls_convert_context(struct policydb *oldp, struct policydb *newp,\n
      \                                                           struct context *c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_set
      Src: /src/xen/xen/xsm/flask/ss/mls.c:464,1
    - Dst: mls_context_cpy
      Src: /src/xen/xen/xsm/flask/ss/mls.c:472,1
    - Dst: mls_context_cpy_low
      Src: /src/xen/xen/xsm/flask/ss/mls.c:475,1
    - Dst: mls_context_cpy_low
      Src: /src/xen/xen/xsm/flask/ss/mls.c:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - scontext
    - tcontext
    - tclass
    - specified
    - newcontext
    argTypes:
    - struct context*
    - struct context*
    - u16
    - u32
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 483
    functionName: mls_compute_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/mls.c
    functionUses: 1
    functionsReached:
    - mls_context_cpy_low
    - mls_context_cpy
    - mls_range_set
    linkageType: ''
    returnType: int
    signature: "int mls_compute_sid(struct context *scontext, struct context *tcontext,\n
      \                       u16 tclass, u32 specified, struct context *newcontext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: SIDTAB_HASH
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIDTAB_HASH(sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: INIT_SIDTAB_LOCK
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_SIDTAB_LOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: SIDTAB_LOCK
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIDTAB_LOCK(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: SIDTAB_UNLOCK
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIDTAB_UNLOCK(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:27,1
    - Dst: INIT_SIDTAB_LOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: sidtab_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 2
    functionsReached:
    - INIT_SIDTAB_LOCK
    - xmalloc_array
    linkageType: ''
    returnType: int
    signature: int sidtab_init(struct sidtab *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_HASH
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:50,1
    - Dst: xmalloc
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:65,1
    - Dst: context_cpy
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:72,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:74,1
    - Dst: smp_wmb
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:82,1
    - Dst: smp_wmb
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:88,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - s
    - sid
    - context
    argTypes:
    - struct sidtab*
    - u32
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: sidtab_insert
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 2
    functionsReached:
    - xmalloc
    - context_cpy
    - SIDTAB_HASH
    - smp_wmb
    - xfree
    linkageType: ''
    returnType: int
    signature: int sidtab_insert(struct sidtab *s, u32 sid, struct context *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_HASH
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:107,1
    - Dst: SIDTAB_HASH
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:116,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - s
    - sid
    argTypes:
    - struct sidtab*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: sidtab_search
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 4
    functionsReached:
    - SIDTAB_HASH
    linkageType: ''
    returnType: struct context
    signature: struct context *sidtab_search(struct sidtab *s, u32 sid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - struct sidtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 149
    functionName: sidtab_map
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int sidtab_map(struct sidtab *s, \n        int (*apply) (u32 sid,
      struct context *context, void *args), void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:166,1
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:180,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - struct sidtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 193
    functionName: sidtab_map_remove_on_error
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - apply
    - context_destroy
    - xfree
    linkageType: ''
    returnType: void
    signature: "void sidtab_map_remove_on_error(struct sidtab *s,\n        int (*apply)
      (u32 sid, struct context *context, void *args), void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_cmp
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - struct sidtab*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: sidtab_search_context
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 0
    functionsReached:
    - context_cmp
    linkageType: ''
    returnType: u32
    signature: "u32 sidtab_search_context(struct sidtab *s,\n                                                        struct
      context *context)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_search_context
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:222,1
    - Dst: SIDTAB_LOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:225,1
    - Dst: sidtab_search_context
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:227,1
    - Dst: sidtab_insert
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:237,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - s
    - context
    - out_sid
    argTypes:
    - struct sidtab*
    - struct context*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 249
    functionName: sidtab_context_to_sid
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 9
    functionsReached:
    - SIDTAB_LOCK
    - sidtab_search_context
    - SIDTAB_UNLOCK
    - sidtab_insert
    linkageType: ''
    returnType: int
    signature: "int sidtab_context_to_sid(struct sidtab *s, struct context *context,\n
      \                                                               u32 *out_sid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - struct sidtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 279
    functionName: sidtab_hash_eval
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void sidtab_hash_eval(struct sidtab *h, char *tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_destroy
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:296,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:297,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 305
    functionName: sidtab_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - context_destroy
    - xfree
    linkageType: ''
    returnType: void
    signature: void sidtab_destroy(struct sidtab *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_LOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:309,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct sidtab*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: sidtab_set
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - SIDTAB_LOCK
    - SIDTAB_UNLOCK
    linkageType: ''
    returnType: void
    signature: void sidtab_set(struct sidtab *dst, struct sidtab *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_LOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:319,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/xen/xen/xsm/flask/ss/sidtab.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: sidtab_shutdown
    functionSourceFile: /src/xen/xen/xsm/flask/ss/sidtab.c
    functionUses: 1
    functionsReached:
    - SIDTAB_LOCK
    - SIDTAB_UNLOCK
    linkageType: ''
    returnType: void
    signature: void sidtab_shutdown(struct sidtab *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: EBITMAP_SHIFT_UNIT_SIZE
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EBITMAP_SHIFT_UNIT_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: ebitmap_length
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_length(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ebitmap_startbit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_startbit(e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:49,1
    - Dst: ebitmap_length
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - e
    - n
    argTypes:
    - struct ebitmap*
    - struct ebitmap_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: ebitmap_start_positive
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - find_first_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ebitmap_start_positive(struct ebitmap *e,\n                                                  struct
      ebitmap_node **n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: ebitmap_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 6
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ebitmap_init(struct ebitmap *e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_next_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:67,1
    - Dst: find_first_bit
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:73,1
    - Dst: ebitmap_length
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - e
    - n
    - bit
    argTypes:
    - struct ebitmap*
    - struct ebitmap_node**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 78
    functionName: ebitmap_next_positive
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached:
    - find_next_bit
    - ebitmap_length
    - find_first_bit
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ebitmap_next_positive(struct ebitmap *e,\n                                                 struct
      ebitmap_node **n,\n                                                 unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: EBITMAP_NODE_INDEX
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EBITMAP_NODE_INDEX(node, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: EBITMAP_NODE_OFFSET
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EBITMAP_NODE_OFFSET(node, bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EBITMAP_NODE_INDEX
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:88,1
    - Dst: EBITMAP_NODE_OFFSET
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:89,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - n
    - bit
    argTypes:
    - struct ebitmap_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: ebitmap_node_get_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    - EBITMAP_NODE_INDEX
    - EBITMAP_NODE_OFFSET
    linkageType: ''
    returnType: int
    signature: "int ebitmap_node_get_bit(struct ebitmap_node *n,\n                                       unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EBITMAP_NODE_INDEX
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:100,1
    - Dst: EBITMAP_NODE_OFFSET
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:101,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - bit
    argTypes:
    - struct ebitmap_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: ebitmap_node_set_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    - EBITMAP_NODE_INDEX
    - EBITMAP_NODE_OFFSET
    linkageType: ''
    returnType: void
    signature: "void ebitmap_node_set_bit(struct ebitmap_node *n,\n                                        unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EBITMAP_NODE_INDEX
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:110,1
    - Dst: EBITMAP_NODE_OFFSET
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:111,1
    - Dst: BUG_ON
      Src: /src/xen/xen/xsm/flask/ss/ebitmap.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - n
    - bit
    argTypes:
    - struct ebitmap_node*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: ebitmap_node_clr_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 1
    functionsReached:
    - BUG_ON
    - EBITMAP_NODE_INDEX
    - EBITMAP_NODE_OFFSET
    linkageType: ''
    returnType: void
    signature: "void ebitmap_node_clr_bit(struct ebitmap_node *n,\n                                        unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - n
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/xen/xen/xsm/flask/ss/ebitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_for_each_positive_bit(e, n, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/context.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: mls_context_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mls_context_init(struct context *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/context.h:49,1
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/context.h:54,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/context.h:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct context*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 59
    functionName: mls_context_cpy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 1
    functionsReached:
    - ebitmap_cpy
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int mls_context_cpy(struct context *dst, struct context *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/context.h:72,1
    - Dst: ebitmap_cpy
      Src: /src/xen/xen/xsm/flask/ss/context.h:77,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/context.h:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct context*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: mls_context_cpy_low
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 1
    functionsReached:
    - ebitmap_cpy
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int mls_context_cpy_low(struct context *dst, struct context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cmp
      Src: /src/xen/xen/xsm/flask/ss/context.h:90,1
    - Dst: ebitmap_cmp
      Src: /src/xen/xen/xsm/flask/ss/context.h:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - struct context*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: mls_context_cmp
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 0
    functionsReached:
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: int mls_context_cmp(struct context *c1, struct context *c2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/context.h:100,1
    - Dst: ebitmap_destroy
      Src: /src/xen/xen/xsm/flask/ss/context.h:101,1
    - Dst: mls_context_init
      Src: /src/xen/xen/xsm/flask/ss/context.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: mls_context_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 0
    functionsReached:
    - mls_context_init
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void mls_context_destroy(struct context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/context.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: context_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 5
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void context_init(struct context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_cpy
      Src: /src/xen/xen/xsm/flask/ss/context.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct context*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: context_cpy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 4
    functionsReached:
    - mls_context_cpy
    linkageType: ''
    returnType: int
    signature: int context_cpy(struct context *dst, struct context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_destroy
      Src: /src/xen/xen/xsm/flask/ss/context.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: context_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 9
    functionsReached:
    - mls_context_destroy
    linkageType: ''
    returnType: void
    signature: void context_destroy(struct context *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_cmp
      Src: /src/xen/xen/xsm/flask/ss/context.h:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - struct context*
    - struct context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: context_cmp
    functionSourceFile: /src/xen/xen/xsm/flask/ss/context.h
    functionUses: 2
    functionsReached:
    - mls_context_cmp
    linkageType: ''
    returnType: int
    signature: int context_cmp(struct context *c1, struct context *c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/xsm/flask/ss/symtab.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - struct hashtab*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: symhash
    functionSourceFile: /src/xen/xen/xsm/flask/ss/symtab.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int symhash(struct hashtab *h, const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/xsm/flask/ss/symtab.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - struct hashtab*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: symcmp
    functionSourceFile: /src/xen/xen/xsm/flask/ss/symtab.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int symcmp(\n    struct hashtab *h, const void *key1, const void *key2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_create
      Src: /src/xen/xen/xsm/flask/ss/symtab.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - struct symtab*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: symtab_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/symtab.c
    functionUses: 3
    functionsReached:
    - hashtab_create
    linkageType: ''
    returnType: int
    signature: int symtab_init(struct symtab *s, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyp
    - mask
    argTypes:
    - struct avtab_key*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: avtab_hash
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avtab_hash(struct avtab_key *keyp, u16 mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - h
    - hvalue
    - prev
    - cur
    - key
    - datum
    argTypes:
    - struct avtab*
    - int
    - struct avtab_node*
    - struct avtab_node*
    - struct avtab_key*
    - struct avtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 60
    functionName: avtab_insert_node
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 0
    functionsReached:
    - xzalloc
    linkageType: ''
    returnType: struct avtab_node
    signature: "struct avtab_node * avtab_insert_node(struct avtab *h, int hvalue,\n
      \   struct avtab_node * prev, struct avtab_node * cur, struct avtab_key *key,\n
      \                                                   struct avtab_datum *datum)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:72,1
    - Dst: avtab_insert_node
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:92,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - struct avtab*
    - struct avtab_key*
    - struct avtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 97
    functionName: avtab_insert
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 0
    functionsReached:
    - avtab_hash
    - avtab_insert_node
    linkageType: ''
    returnType: int
    signature: "int avtab_insert(struct avtab *h, struct avtab_key *key,\n                                                    struct
      avtab_datum *datum)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:112,1
    - Dst: avtab_insert_node
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:131,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 16
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - struct avtab*
    - struct avtab_key*
    - struct avtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: avtab_insert_nonunique
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 1
    functionsReached:
    - avtab_hash
    - avtab_insert_node
    linkageType: ''
    returnType: struct avtab_node
    signature: "struct avtab_node * avtab_insert_nonunique(struct avtab * h,\n                            struct
      avtab_key * key, struct avtab_datum * datum)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:145,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - struct avtab*
    - struct avtab_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: avtab_search
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 2
    functionsReached:
    - avtab_hash
    linkageType: ''
    returnType: struct avtab_datum
    signature: struct avtab_datum *avtab_search(struct avtab *h, struct avtab_key
      *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:180,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - struct avtab*
    - struct avtab_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 200
    functionName: avtab_search_node
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 6
    functionsReached:
    - avtab_hash
    linkageType: ''
    returnType: struct avtab_node
    signature: struct avtab_node * avtab_search_node(struct avtab *h, struct avtab_key
      *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 2
    argNames:
    - node
    - specified
    argTypes:
    - struct avtab_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: avtab_search_node_next
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: struct avtab_node
    signature: "struct avtab_node * avtab_search_node_next(struct avtab_node *node,\n
      \                                                               int specified)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:247,1
    - Dst: xfree
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct avtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 255
    functionName: avtab_destroy
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 3
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void avtab_destroy(struct avtab *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct avtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: avtab_init
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avtab_init(struct avtab *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:287,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - h
    - nrules
    argTypes:
    - struct avtab*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 300
    functionName: avtab_alloc
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 1
    functionsReached:
    - xmalloc_array
    - printk
    linkageType: ''
    returnType: int
    signature: int avtab_alloc(struct avtab *h, u32 nrules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - struct avtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 330
    functionName: avtab_hash_eval
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 1
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void avtab_hash_eval(struct avtab *h, char *tag)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:354,1
    - Dst: memset
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:355,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:359,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:362,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:365,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:366,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:368,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:372,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:375,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:380,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:384,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:387,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:391,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:394,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:398,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:402,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:407,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:412,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:421,1
    - Dst: insertf
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:422,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:429,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:436,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:439,1
    - Dst: le16_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:444,1
    - Dst: le16_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:445,1
    - Dst: le16_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:446,1
    - Dst: le16_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:447,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:449,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:450,1
    - Dst: policydb_class_isvalid
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:451,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:453,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:458,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:465,1
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:469,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:472,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:475,1
    - Dst: policydb_type_isvalid
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:477,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:479,1
    - Dst: insertf
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:482,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 97
    argCount: 4
    argNames:
    - a
    - fp
    - pol
    - p
    argTypes:
    - struct avtab*
    - void*
    - struct policydb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 483
    functionName: avtab_read_item
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - next_entry
    - insertf
    - le32_to_cpu
    - policydb_type_isvalid
    - policydb_class_isvalid
    - le16_to_cpu
    - printk
    - memset
    linkageType: ''
    returnType: int
    signature: "int avtab_read_item(struct avtab *a, void *fp, struct policydb *pol,\n
      \                           int (*insertf)(struct avtab *a, struct avtab_key
      *k,\n                                    struct avtab_datum *d, void *p), void
      *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avtab_insert
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - k
    - d
    - p
    argTypes:
    - struct avtab*
    - struct avtab_key*
    - struct avtab_datum*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: avtab_insertf
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 0
    functionsReached:
    - avtab_insert
    linkageType: ''
    returnType: int
    signature: "int avtab_insertf(\n    struct avtab *a, struct avtab_key *k, struct
      avtab_datum *d, void *p)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:497,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:500,1
    - Dst: le32_to_cpu
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:503,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:506,1
    - Dst: avtab_alloc
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:510,1
    - Dst: avtab_read_item
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:515,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:519,1
    - Dst: printk
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:521,1
    - Dst: avtab_destroy
      Src: /src/xen/xen/xsm/flask/ss/avtab.c:533,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - a
    - fp
    - pol
    argTypes:
    - struct avtab*
    - void*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 535
    functionName: avtab_read
    functionSourceFile: /src/xen/xen/xsm/flask/ss/avtab.c
    functionUses: 1
    functionsReached:
    - next_entry
    - avtab_alloc
    - le32_to_cpu
    - printk
    - avtab_read_item
    - avtab_destroy
    linkageType: ''
    returnType: int
    signature: int avtab_read(struct avtab *a, void *fp, struct policydb *pol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _d
    - ','
    - _t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: AVC_AUDIT_DATA_INIT
    functionSourceFile: /src/xen/xen/xsm/flask/include/avc.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AVC_AUDIT_DATA_INIT(_d,_t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: '*(memchr)(const void *s, int c, size_t n)'
    functionSourceFile: /src/xen/xen/lib/memchr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(memchr)(const void *s, int c, size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/lib/strtol.c:16,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/lib/strtol.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cp
    - endp
    - base
    argTypes:
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: simple_strtol
    functionSourceFile: /src/xen/xen/lib/strtol.c
    functionUses: 2
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: long
    signature: long simple_strtol(const char *cp, const char **endp, unsigned int
      base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: __rb_parent
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __rb_parent(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: __rb_color
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __rb_color(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: __rb_is_black
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __rb_is_black(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: __rb_is_red
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __rb_is_red(pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: rb_color
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rb_color(rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: rb_is_red
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rb_is_red(rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rb
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: rb_is_black
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rb_is_black(rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rb
    argTypes:
    - struct rb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: rb_set_black
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rb_set_black(struct rb_node *rb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rb_color
      Src: /src/xen/xen/lib/rbtree.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rb
    - p
    argTypes:
    - struct rb_node*
    - struct rb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: rb_set_parent
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_color
    linkageType: ''
    returnType: void
    signature: void rb_set_parent(struct rb_node *rb, struct rb_node *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rb
    - p
    - color
    argTypes:
    - struct rb_node*
    - struct rb_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: rb_set_parent_color
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rb_set_parent_color(struct rb_node *rb,\n\t\t\t\t      struct
      rb_node *p, int color)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - red
    argTypes:
    - struct rb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: rb_red_parent
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rb_node
    signature: struct rb_node *rb_red_parent(struct rb_node *red)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - old
    - new
    - parent
    - root
    argTypes:
    - struct rb_node*
    - struct rb_node*
    - struct rb_node*
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: __rb_change_child
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __rb_change_child(struct rb_node *old, struct rb_node *new,\n\t\t
      \ struct rb_node *parent, struct rb_root *root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - old
    - new
    - root
    - color
    argTypes:
    - struct rb_node*
    - struct rb_node*
    - struct rb_root*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: __rb_rotate_set_parents
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_parent
    linkageType: ''
    returnType: void
    signature: "void __rb_rotate_set_parents(struct rb_node *old, struct rb_node *new,\n\t\t\tstruct
      rb_root *root, int color)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rb_red_parent
      Src: /src/xen/xen/lib/rbtree.c:109,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:120,1
    - Dst: rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:122,1
    - Dst: rb_red_parent
      Src: /src/xen/xen/lib/rbtree.c:125,1
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:129,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:143,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:144,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:146,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:147,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:168,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:170,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:187,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:188,1
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:192,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:194,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:195,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:197,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:198,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:208,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:210,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:219,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:220,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 2
    argNames:
    - node
    - root
    argTypes:
    - struct rb_node*
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 224
    functionName: rb_insert_color
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 1
    functionsReached:
    - rb_is_red
    - rb_parent
    - __rb_rotate_set_parents
    - rb_set_parent_color
    - rb_red_parent
    - rb_is_black
    linkageType: ''
    returnType: void
    signature: void rb_insert_color(struct rb_node *node, struct rb_root *root)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:240,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:252,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:253,1
    - Dst: rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:258,1
    - Dst: rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:260,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:276,1
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:278,1
    - Dst: rb_set_black
      Src: /src/xen/xen/lib/rbtree.c:279,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:282,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:304,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:323,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:325,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:326,1
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:331,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:335,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:336,1
    - Dst: rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:341,1
    - Dst: rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:343,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:345,1
    - Dst: rb_is_red
      Src: /src/xen/xen/lib/rbtree.c:347,1
    - Dst: rb_set_black
      Src: /src/xen/xen/lib/rbtree.c:348,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:351,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:362,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:370,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:372,1
    - Dst: __rb_rotate_set_parents
      Src: /src/xen/xen/lib/rbtree.c:373,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - parent
    - root
    argTypes:
    - struct rb_node*
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 378
    functionName: __rb_erase_color
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_is_red
    - rb_parent
    - __rb_rotate_set_parents
    - rb_set_parent_color
    - rb_set_black
    - rb_is_black
    - rb_set_parent
    linkageType: ''
    returnType: void
    signature: void __rb_erase_color(struct rb_node *parent, struct rb_root *root)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __rb_parent
      Src: /src/xen/xen/lib/rbtree.c:395,1
    - Dst: __rb_change_child
      Src: /src/xen/xen/lib/rbtree.c:396,1
    - Dst: __rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:401,1
    - Dst: __rb_parent
      Src: /src/xen/xen/lib/rbtree.c:405,1
    - Dst: __rb_change_child
      Src: /src/xen/xen/lib/rbtree.c:406,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:445,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:449,1
    - Dst: __rb_parent
      Src: /src/xen/xen/lib/rbtree.c:452,1
    - Dst: __rb_change_child
      Src: /src/xen/xen/lib/rbtree.c:453,1
    - Dst: rb_set_parent_color
      Src: /src/xen/xen/lib/rbtree.c:456,1
    - Dst: __rb_is_black
      Src: /src/xen/xen/lib/rbtree.c:461,1
    - Dst: __rb_erase_color
      Src: /src/xen/xen/lib/rbtree.c:466,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - node
    - root
    argTypes:
    - struct rb_node*
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 467
    functionName: rb_erase
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 1
    functionsReached:
    - __rb_change_child
    - __rb_is_black
    - __rb_erase_color
    - rb_set_parent_color
    - __rb_parent
    - rb_set_parent
    linkageType: ''
    returnType: void
    signature: void rb_erase(struct rb_node *node, struct rb_root *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 482
    functionName: rb_first
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rb_node
    signature: struct rb_node *rb_first(const struct rb_root *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 494
    functionName: rb_last
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct rb_node
    signature: struct rb_node *rb_last(const struct rb_root *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_EMPTY_NODE
      Src: /src/xen/xen/lib/rbtree.c:500,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct rb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 525
    functionName: rb_next
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_parent
    - RB_EMPTY_NODE
    linkageType: ''
    returnType: struct rb_node
    signature: struct rb_node *rb_next(const struct rb_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RB_EMPTY_NODE
      Src: /src/xen/xen/lib/rbtree.c:531,1
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct rb_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 553
    functionName: rb_prev
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_parent
    - RB_EMPTY_NODE
    linkageType: ''
    returnType: struct rb_node
    signature: struct rb_node *rb_prev(const struct rb_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rb_parent
      Src: /src/xen/xen/lib/rbtree.c:558,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:563,1
    - Dst: rb_set_parent
      Src: /src/xen/xen/lib/rbtree.c:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - victim
    - new
    - root
    argTypes:
    - struct rb_node*
    - struct rb_node*
    - struct rb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 569
    functionName: rb_replace_node
    functionSourceFile: /src/xen/xen/lib/rbtree.c
    functionUses: 0
    functionsReached:
    - rb_parent
    - rb_set_parent
    linkageType: ''
    returnType: void
    signature: "void rb_replace_node(struct rb_node *victim, struct rb_node *new,\n\t\t
      \    struct rb_root *root)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - s
    - accept
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 30
    functionName: strspn
    functionSourceFile: /src/xen/xen/lib/strspn.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strspn(const char *s, const char *accept)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/lib/strlcpy.c:20,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/strlcpy.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 28
    functionName: strlcpy
    functionSourceFile: /src/xen/xen/lib/strlcpy.c
    functionUses: 14
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dest, const char *src, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - cs
    - ct
    - count
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: (memcmp)(const void *cs, const void *ct, size_t count)
    functionSourceFile: /src/xen/xen/lib/memcmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (memcmp)(const void *cs, const void *ct, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: (strlen)(const char * s)
    functionSourceFile: /src/xen/xen/lib/strlen.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t (strlen)(const char * s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: __ffs
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __ffs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: ffz
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ffz(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/lib/find-next-bit.c:29,1
    - Dst: __ffs
      Src: /src/xen/xen/lib/find-next-bit.c:62,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - unsigned long*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 63
    functionName: find_next_bit
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 18
    functionsReached:
    - BIT_WORD
    - __ffs
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long find_next_bit(const unsigned long *addr, unsigned long
      size,\n\t\t\t    unsigned long offset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/lib/find-next-bit.c:75,1
    - Dst: ffz
      Src: /src/xen/xen/lib/find-next-bit.c:108,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - unsigned long*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 109
    functionName: find_next_zero_bit
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 13
    functionsReached:
    - ffz
    - BIT_WORD
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long find_next_zero_bit(const unsigned long *addr, unsigned
      long size,\n\t\t\t\t unsigned long offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/xen/xen/lib/find-next-bit.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 137
    functionName: find_first_bit
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 12
    functionsReached:
    - __ffs
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long find_first_bit(const unsigned long *addr, unsigned long
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ffz
      Src: /src/xen/xen/lib/find-next-bit.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - unsigned long*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: find_first_zero_bit
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 6
    functionsReached:
    - ffz
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long find_first_zero_bit(const unsigned long *addr, unsigned
      long size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/lib/find-next-bit.c:181,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:185,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:203,1
    - Dst: ffz
      Src: /src/xen/xen/lib/find-next-bit.c:209,1
    - Dst: ffz
      Src: /src/xen/xen/lib/find-next-bit.c:212,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - void*
    - "unsigned\n\t\tlong"
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 213
    functionName: find_next_zero_bit_le
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 0
    functionsReached:
    - ffz
    - BIT_WORD
    - bswapl
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long find_next_zero_bit_le(const void *addr, unsigned\n\t\tlong
      size, unsigned long offset)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BIT_WORD
      Src: /src/xen/xen/lib/find-next-bit.c:227,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:231,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:250,1
    - Dst: __ffs
      Src: /src/xen/xen/lib/find-next-bit.c:256,1
    - Dst: __ffs
      Src: /src/xen/xen/lib/find-next-bit.c:259,1
    - Dst: bswapl
      Src: /src/xen/xen/lib/find-next-bit.c:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - addr
    - size
    - offset
    argTypes:
    - void*
    - "unsigned\n\t\tlong"
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 260
    functionName: find_next_bit_le
    functionSourceFile: /src/xen/xen/lib/find-next-bit.c
    functionUses: 0
    functionsReached:
    - BIT_WORD
    - bswapl
    - __ffs
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long find_next_bit_le(const void *addr, unsigned\n\t\tlong
      size, unsigned long offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: '*(strchr)(const char *s, int c)'
    functionSourceFile: /src/xen/xen/lib/strchr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *(strchr)(const char *s, int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/xen/xen/lib/strsep.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - ct
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: strsep
    functionSourceFile: /src/xen/xen/lib/strsep.c
    functionUses: 1
    functionsReached:
    - strpbrk
    linkageType: ''
    returnType: char
    signature: char *strsep(char **s, const char *ct)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: memchr_inv
    functionSourceFile: /src/xen/xen/lib/memchr_inv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *memchr_inv(const void *s, int c, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/lib/ctors.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: init_constructors
    functionSourceFile: /src/xen/xen/lib/ctors.c
    functionUses: 4
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void init_constructors(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - cs
    - ct
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 24
    functionName: (strcmp)(const char *cs, const char *ct)
    functionSourceFile: /src/xen/xen/lib/strcmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (strcmp)(const char *cs, const char *ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: BCST
    functionSourceFile: /src/xen/xen/lib/generic-hweightl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BCST(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: BCST
    functionSourceFile: /src/xen/xen/lib/generic-hweightl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BCST(b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:18,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:19,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:19,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:20,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/lib/generic-hweightl.c:22,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: generic_hweightl
    functionSourceFile: /src/xen/xen/lib/generic-hweightl.c
    functionUses: 1
    functionsReached:
    - BCST
    - IS_ENABLED
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int generic_hweightl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:37,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:38,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:39,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:40,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:41,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:43,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:43,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:44,1
    - Dst: BCST
      Src: /src/xen/xen/lib/generic-hweightl.c:44,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:46,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-hweightl.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: test_generic_hweightl
    functionSourceFile: /src/xen/xen/lib/generic-hweightl.c
    functionUses: 0
    functionsReached:
    - RUNTIME_CHECK
    - BCST
    linkageType: ''
    returnType: void
    signature: void test_generic_hweightl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ALIGN
    functionSourceFile: /src/xen/xen/lib/earlycpio.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(x, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PTR_ALIGN
    functionSourceFile: /src/xen/xen/lib/earlycpio.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTR_ALIGN(p, a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/lib/earlycpio.c:74,1
    - Dst: PTR_ALIGN
      Src: /src/xen/xen/lib/earlycpio.c:118,1
    - Dst: PTR_ALIGN
      Src: /src/xen/xen/lib/earlycpio.c:119,1
    - Dst: memcmp
      Src: /src/xen/xen/lib/earlycpio.c:126,1
    - Dst: printk
      Src: /src/xen/xen/lib/earlycpio.c:128,1
    - Dst: strlcpy
      Src: /src/xen/xen/lib/earlycpio.c:132,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 3
    argNames:
    - path
    - data
    - len
    argTypes:
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 144
    functionName: find_cpio_data
    functionSourceFile: /src/xen/xen/lib/earlycpio.c
    functionUses: 2
    functionsReached:
    - memcmp
    - strlcpy
    - strlen
    - printk
    - PTR_ALIGN
    linkageType: ''
    returnType: struct cpio_data
    signature: struct cpio_data find_cpio_data(const char *path, void *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: xxh_rotl64
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xxh_rotl64(x, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash64.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct xxh64_state*
    - struct xxh64_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: xxh64_copy_state
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void xxh64_copy_state(struct xxh64_state *dst, const struct xxh64_state
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: xxh64_round
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 0
    functionsReached:
    - xxh_rotl64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xxh64_round(uint64_t acc, const uint64_t input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - val
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: xxh64_merge_round
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 0
    functionsReached:
    - xxh64_round
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xxh64_merge_round(uint64_t acc, uint64_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:110,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:110,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:112,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:112,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:114,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:114,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:116,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:116,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:120,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:120,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:121,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:121,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:122,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:123,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:124,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:125,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:134,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:134,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:137,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash64.c:142,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:143,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 160
    functionName: xxh64
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 1
    functionsReached:
    - get_unaligned_le32
    - get_unaligned_le64
    - xxh_rotl64
    - xxh64_merge_round
    - xxh64_round
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xxh64(const void *input, const size_t len, const uint64_t
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/lib/xxhash64.c:170,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash64.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - struct xxh64_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: xxh64_reset
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void xxh64_reset(struct xxh64_state *statePtr, const uint64_t seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash64.c:189,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash64.c:197,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:200,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:200,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:202,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:202,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:204,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:204,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:206,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:206,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:220,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:220,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:222,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:222,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:224,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:224,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:226,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:226,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash64.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - struct xxh64_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 242
    functionName: xxh64_update
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 2
    functionsReached:
    - xxh64_round
    - get_unaligned_le64
    - memcpy
    linkageType: ''
    returnType: int
    signature: int xxh64_update(struct xxh64_state *state, const void *input, const
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:257,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:257,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:258,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:258,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:259,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:260,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:261,1
    - Dst: xxh64_merge_round
      Src: /src/xen/xen/lib/xxhash64.c:262,1
    - Dst: xxh64_round
      Src: /src/xen/xen/lib/xxhash64.c:270,1
    - Dst: get_unaligned_le64
      Src: /src/xen/xen/lib/xxhash64.c:270,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:273,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash64.c:278,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:279,1
    - Dst: xxh_rotl64
      Src: /src/xen/xen/lib/xxhash64.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct xxh64_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 296
    functionName: xxh64_digest
    functionSourceFile: /src/xen/xen/lib/xxhash64.c
    functionUses: 2
    functionsReached:
    - get_unaligned_le32
    - get_unaligned_le64
    - xxh_rotl64
    - xxh64_merge_round
    - xxh64_round
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xxh64_digest(const struct xxh64_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/lib/strlcat.c:19,1
    - Dst: strnlen
      Src: /src/xen/xen/lib/strlcat.c:20,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: strlcat
    functionSourceFile: /src/xen/xen/lib/strlcat.c
    functionUses: 1
    functionsReached:
    - strnlen
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcat(char *dest, const char *src, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 32
    functionName: '*(memmove)(void *dest, const void *src, size_t n)'
    functionSourceFile: /src/xen/xen/lib/memmove.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(memmove)(void *dest, const void *src, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - count
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: strnlen
    functionSourceFile: /src/xen/xen/lib/strnlen.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t strnlen(const char * s, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/lib/strcspn.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - reject
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: (strcspn)(const char *s, const char *reject)
    functionSourceFile: /src/xen/xen/lib/strcspn.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: size_t
    signature: size_t (strcspn)(const char *s, const char *reject)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: xxh_rotl32
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xxh_rotl32(x, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash32.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct xxh32_state*
    - struct xxh32_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: xxh32_copy_state
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void xxh32_copy_state(struct xxh32_state *dst, const struct xxh32_state
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - input
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: xxh32_round
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached:
    - xxh_rotl32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xxh32_round(uint32_t seed, const uint32_t input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:100,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:100,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:102,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:102,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:104,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:104,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:106,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:106,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:110,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:110,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:111,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:111,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:119,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:120,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 137
    functionName: xxh32
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 1
    functionsReached:
    - get_unaligned_le32
    - xxh_rotl32
    - xxh32_round
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xxh32(const void *input, const size_t len, const uint32_t
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/lib/xxhash32.c:147,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash32.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - struct xxh32_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: xxh32_reset
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void xxh32_reset(struct xxh32_state *statePtr, const uint32_t seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash32.c:167,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash32.c:175,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:178,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:178,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:180,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:180,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:182,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:182,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:184,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:184,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:199,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:199,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:201,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:201,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:203,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:203,1
    - Dst: xxh32_round
      Src: /src/xen/xen/lib/xxhash32.c:205,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:205,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/xxhash32.c:216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - struct xxh32_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 221
    functionName: xxh32_update
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - memcpy
    - xxh32_round
    linkageType: ''
    returnType: int
    signature: int xxh32_update(struct xxh32_state *state, const void *input, const
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:231,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:231,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:232,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:232,1
    - Dst: get_unaligned_le32
      Src: /src/xen/xen/lib/xxhash32.c:240,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:241,1
    - Dst: xxh_rotl32
      Src: /src/xen/xen/lib/xxhash32.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct xxh32_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 258
    functionName: xxh32_digest
    functionSourceFile: /src/xen/xen/lib/xxhash32.c
    functionUses: 0
    functionsReached:
    - get_unaligned_le32
    - xxh_rotl32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xxh32_digest(const struct xxh32_state *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/lib/generic-ffsl.c:14,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 50
    functionName: generic_ffsl
    functionSourceFile: /src/xen/xen/lib/generic-ffsl.c
    functionUses: 2
    functionsReached:
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int generic_ffsl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:55,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:56,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:57,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:58,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:59,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:61,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:63,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-ffsl.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: test_generic_ffsl
    functionSourceFile: /src/xen/xen/lib/generic-ffsl.c
    functionUses: 0
    functionsReached:
    - RUNTIME_CHECK
    linkageType: ''
    returnType: void
    signature: void test_generic_ffsl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: HHALF
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HHALF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: LHALF
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHALF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: LHUP
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LHUP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: COMBINE
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMBINE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:115,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - len
    - sh
    argTypes:
    - digit*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: shl
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 1
    functionsReached:
    - LHALF
    linkageType: ''
    returnType: void
    signature: void shl(register digit *p, register int len, register int sh)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:172,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:173,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:174,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:175,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:177,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:178,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:179,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:180,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:196,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:198,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:200,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:204,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:205,1
    - Dst: shl
      Src: /src/xen/xen/lib/divmod.c:231,1
    - Dst: shl
      Src: /src/xen/xen/lib/divmod.c:232,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:259,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:264,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:278,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:279,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:282,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:289,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:293,1
    - Dst: HHALF
      Src: /src/xen/xen/lib/divmod.c:294,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:296,1
    - Dst: LHALF
      Src: /src/xen/xen/lib/divmod.c:310,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:313,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:314,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:318,1
    - Dst: COMBINE
      Src: /src/xen/xen/lib/divmod.c:319,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 109
    argCount: 3
    argNames:
    - uq
    - vq
    - arq
    argTypes:
    - u64
    - u64
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 321
    functionName: __qdivrem
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - LHALF
    - HHALF
    - COMBINE
    - shl
    linkageType: ''
    returnType: u64
    signature: u64 __qdivrem(u64 uq, u64 vq, u64 *arq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __qdivrem
      Src: /src/xen/xen/lib/divmod.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: __divdi3
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - __qdivrem
    linkageType: ''
    returnType: int64_t
    signature: int64_t __divdi3(int64_t a, int64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __qdivrem
      Src: /src/xen/xen/lib/divmod.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: __udivdi3
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - __qdivrem
    linkageType: ''
    returnType: u64
    signature: u64 __udivdi3(u64 a, u64 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __qdivrem
      Src: /src/xen/xen/lib/divmod.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: __umoddi3
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - __qdivrem
    linkageType: ''
    returnType: u64
    signature: u64 __umoddi3(u64 a, u64 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __qdivrem
      Src: /src/xen/xen/lib/divmod.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: __moddi3
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - __qdivrem
    linkageType: ''
    returnType: int64_t
    signature: int64_t __moddi3(int64_t a, int64_t b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ABS
      Src: /src/xen/xen/lib/divmod.c:381,1
    - Dst: ABS
      Src: /src/xen/xen/lib/divmod.c:382,1
    - Dst: __qdivrem
      Src: /src/xen/xen/lib/divmod.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - r
    argTypes:
    - int64_t
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 392
    functionName: __ldivmod_helper
    functionSourceFile: /src/xen/xen/lib/divmod.c
    functionUses: 0
    functionsReached:
    - ABS
    - __qdivrem
    linkageType: ''
    returnType: int64_t
    signature: int64_t __ldivmod_helper(int64_t a, int64_t b, int64_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: '*(memcpy)(void *dest, const void *src, size_t n)'
    functionSourceFile: /src/xen/xen/lib/memcpy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(memcpy)(void *dest, const void *src, size_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/xen/xen/lib/strncasecmp.c:30,1
    - Dst: tolower
      Src: /src/xen/xen/lib/strncasecmp.c:31,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - s1
    - s2
    - len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 37
    functionName: (strncasecmp)(const char *s1, const char *s2, size_t len)
    functionSourceFile: /src/xen/xen/lib/strncasecmp.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int (strncasecmp)(const char *s1, const char *s2, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 27
    functionName: generic_muldiv64
    functionSourceFile: /src/xen/xen/lib/muldiv64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t generic_muldiv64(uint64_t a, uint32_t b, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: choose
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t choose(uint32_t x, uint32_t y, uint32_t z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: majority
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t majority(uint32_t x, uint32_t y, uint32_t z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:25,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:25,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: e0
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - ror32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t e0(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:30,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:30,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: e1
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - ror32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t e1(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:35,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: s0
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - ror32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t s0(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:40,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha2-256.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: s1
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 2
    functionsReached:
    - ror32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t s1(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: W
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    - Dst: s1
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    - Dst: W
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    - Dst: W
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    - Dst: s0
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    - Dst: W
      Src: /src/xen/xen/lib/sha2-256.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - W
    - i
    argTypes:
    - uint32_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: blend
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 1
    functionsReached:
    - W
    - s0
    - s1
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t blend(uint32_t W[16], unsigned int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: W
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 182
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/lib/sha2-256.c:79,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:86,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:86,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:87,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:87,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:88,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:88,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:89,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:89,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:90,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:90,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:91,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:91,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:92,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:92,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:93,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:93,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:94,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:94,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:95,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:95,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:96,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:96,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:97,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:97,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:98,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:98,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:99,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:99,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:100,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:100,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:101,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:101,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:106,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:106,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:106,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:107,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:107,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:108,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:108,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:108,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:109,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:109,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:110,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:110,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:110,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:111,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:111,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:112,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:112,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:112,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:113,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:113,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:114,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:114,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:114,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:115,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:115,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:116,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:116,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:116,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:117,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:117,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:118,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:118,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:118,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:119,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:119,1
    - Dst: e1
      Src: /src/xen/xen/lib/sha2-256.c:120,1
    - Dst: choose
      Src: /src/xen/xen/lib/sha2-256.c:120,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha2-256.c:120,1
    - Dst: e0
      Src: /src/xen/xen/lib/sha2-256.c:121,1
    - Dst: majority
      Src: /src/xen/xen/lib/sha2-256.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 87
    argCount: 2
    argNames:
    - state
    - _input
    argTypes:
    - uint32_t[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 126
    functionName: sha2_256_transform
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - e0
    - choose
    - majority
    - get_unaligned_be32
    - blend
    - e1
    linkageType: ''
    returnType: void
    signature: void sha2_256_transform(uint32_t state[8], const void *_input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sha2_256_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: sha2_256_init
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha2_256_init(struct sha2_256_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/sha2-256.c:157,1
    - Dst: sha2_256_transform
      Src: /src/xen/xen/lib/sha2-256.c:161,1
    - Dst: sha2_256_transform
      Src: /src/xen/xen/lib/sha2-256.c:166,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/sha2-256.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - msg
    - len
    argTypes:
    - struct sha2_256_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 171
    functionName: sha2_256_update
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - sha2_256_transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha2_256_update(struct sha2_256_state *s, const void *msg, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/lib/sha2-256.c:184,1
    - Dst: sha2_256_transform
      Src: /src/xen/xen/lib/sha2-256.c:185,1
    - Dst: memset
      Src: /src/xen/xen/lib/sha2-256.c:189,1
    - Dst: put_unaligned_be64
      Src: /src/xen/xen/lib/sha2-256.c:192,1
    - Dst: sha2_256_transform
      Src: /src/xen/xen/lib/sha2-256.c:193,1
    - Dst: put_unaligned_be32
      Src: /src/xen/xen/lib/sha2-256.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - digest
    argTypes:
    - struct sha2_256_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: sha2_256_final
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - memset
    - sha2_256_transform
    - put_unaligned_be32
    - put_unaligned_be64
    linkageType: ''
    returnType: void
    signature: void sha2_256_final(struct sha2_256_state *s, uint8_t digest[SHA2_256_DIGEST_SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha2_256_init
      Src: /src/xen/xen/lib/sha2-256.c:205,1
    - Dst: sha2_256_update
      Src: /src/xen/xen/lib/sha2-256.c:206,1
    - Dst: sha2_256_final
      Src: /src/xen/xen/lib/sha2-256.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - digest
    - msg
    - len
    argTypes:
    - uint8_t[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: sha2_256
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 1
    functionsReached:
    - sha2_256_final
    - sha2_256_update
    - sha2_256_init
    linkageType: ''
    returnType: void
    signature: "void sha2_256(uint8_t digest[SHA2_256_DIGEST_SIZE],\n              const
      void *msg, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/lib/sha2-256.c:241,1
    - Dst: sha2_256
      Src: /src/xen/xen/lib/sha2-256.c:246,1
    - Dst: strlen
      Src: /src/xen/xen/lib/sha2-256.c:246,1
    - Dst: memcmp
      Src: /src/xen/xen/lib/sha2-256.c:248,1
    - Dst: panic
      Src: /src/xen/xen/lib/sha2-256.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 5
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: test_sha2_256
    functionSourceFile: /src/xen/xen/lib/sha2-256.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ARRAY_SIZE
    - panic
    - strlen
    - sha2_256
    linkageType: ''
    returnType: void
    signature: void test_sha2_256(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - priv
    - a
    - b
    argTypes:
    - void*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 49
    functionName: merge
    functionSourceFile: /src/xen/xen/lib/list-sort.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: struct list_head
    signature: "struct list_head *merge(void *priv,\n\t\t\t\tint (*cmp)(void *priv,
      struct list_head *a,\n\t\t\t\t\tstruct list_head *b),\n\t\t\t\tstruct list_head
      *a, struct list_head *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/lib/list-sort.c:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - priv
    - head
    - a
    - b
    argTypes:
    - void*
    - struct list_head*
    - struct list_head*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 98
    functionName: merge_and_restore_back_links
    functionSourceFile: /src/xen/xen/lib/list-sort.c
    functionUses: 0
    functionsReached:
    - unlikely
    linkageType: ''
    returnType: void
    signature: "void merge_and_restore_back_links(void *priv,\n\t\t\t\tint (*cmp)(void
      *priv, struct list_head *a,\n\t\t\t\t\tstruct list_head *b),\n\t\t\t\tstruct
      list_head *head,\n\t\t\t\tstruct list_head *a, struct list_head *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/lib/list-sort.c:124,1
    - Dst: memset
      Src: /src/xen/xen/lib/list-sort.c:127,1
    - Dst: merge
      Src: /src/xen/xen/lib/list-sort.c:138,1
    - Dst: unlikely
      Src: /src/xen/xen/lib/list-sort.c:142,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/lib/list-sort.c:142,1
    - Dst: dprintk
      Src: /src/xen/xen/lib/list-sort.c:143,1
    - Dst: merge
      Src: /src/xen/xen/lib/list-sort.c:154,1
    - Dst: merge_and_restore_back_links
      Src: /src/xen/xen/lib/list-sort.c:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - priv
    - head
    argTypes:
    - void*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 157
    functionName: list_sort
    functionSourceFile: /src/xen/xen/lib/list-sort.c
    functionUses: 1
    functionsReached:
    - merge
    - merge_and_restore_back_links
    - ARRAY_SIZE
    - unlikely
    - memset
    - dprintk
    - list_empty
    linkageType: ''
    returnType: void
    signature: "void list_sort(void *priv, struct list_head *head,\n\t\tint (*cmp)(void
      *priv, struct list_head *a,\n\t\t\tstruct list_head *b))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - cs
    - ct
    - count
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: (strncmp)(const char *cs, const char *ct, size_t count)
    functionSourceFile: /src/xen/xen/lib/strncmp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int (strncmp)(const char *cs, const char *ct, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: UPPER_MASK
    functionSourceFile: /src/xen/xen/lib/generic-flsl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPPER_MASK(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/lib/generic-flsl.c:17,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:20,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:26,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:31,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:36,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:41,1
    - Dst: UPPER_MASK
      Src: /src/xen/xen/lib/generic-flsl.c:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 53
    functionName: generic_flsl
    functionSourceFile: /src/xen/xen/lib/generic-flsl.c
    functionUses: 2
    functionsReached:
    - UPPER_MASK
    - BUILD_BUG_ON
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int generic_flsl(unsigned long x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:58,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:59,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:60,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:61,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:62,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:64,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:66,1
    - Dst: RUNTIME_CHECK
      Src: /src/xen/xen/lib/generic-flsl.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: test_generic_flsl
    functionSourceFile: /src/xen/xen/lib/generic-flsl.c
    functionUses: 0
    functionsReached:
    - RUNTIME_CHECK
    linkageType: ''
    returnType: void
    signature: void test_generic_flsl(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoull.c:26,1
    - Dst: isxdigit
      Src: /src/xen/xen/lib/strtoull.c:26,1
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoull.c:35,1
    - Dst: isxdigit
      Src: /src/xen/xen/lib/strtoull.c:39,1
    - Dst: isdigit
      Src: /src/xen/xen/lib/strtoull.c:40,1
    - Dst: islower
      Src: /src/xen/xen/lib/strtoull.c:41,1
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoull.c:41,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - cp
    - endp
    - base
    argTypes:
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 52
    functionName: simple_strtoull
    functionSourceFile: /src/xen/xen/lib/strtoull.c
    functionUses: 1
    functionsReached:
    - islower
    - isdigit
    - isxdigit
    - toupper
    linkageType: ''
    returnType: unsigned long long
    signature: "unsigned long long simple_strtoull(\n    const char *cp, const char
      **endp, unsigned int base)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoull
      Src: /src/xen/xen/lib/strtoll.c:16,1
    - Dst: simple_strtoull
      Src: /src/xen/xen/lib/strtoll.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - cp
    - endp
    - base
    argTypes:
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: simple_strtoll
    functionSourceFile: /src/xen/xen/lib/strtoll.c
    functionUses: 5
    functionsReached:
    - simple_strtoull
    linkageType: ''
    returnType: long long
    signature: long long simple_strtoll(const char *cp, const char **endp, unsigned
      int base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/lib/strrchr.c:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: '*(strrchr)(const char *s, int c)'
    functionSourceFile: /src/xen/xen/lib/strrchr.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *(strrchr)(const char *s, int c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoull
      Src: /src/xen/xen/lib/parse-size.c:8,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - s
    - ps
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 3
    functionDepth: 2
    functionLinenumber: 3
    functionLinenumberEnd: 40
    functionName: parse_size_and_unit
    functionSourceFile: /src/xen/xen/lib/parse-size.c
    functionUses: 7
    functionsReached:
    - simple_strtoull
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long parse_size_and_unit(const char *s, const char **ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cs
    - ct
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: strpbrk
    functionSourceFile: /src/xen/xen/lib/strpbrk.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strpbrk(const char * cs,const char * ct)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoul.c:26,1
    - Dst: isxdigit
      Src: /src/xen/xen/lib/strtoul.c:26,1
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoul.c:35,1
    - Dst: isxdigit
      Src: /src/xen/xen/lib/strtoul.c:39,1
    - Dst: isdigit
      Src: /src/xen/xen/lib/strtoul.c:40,1
    - Dst: toupper
      Src: /src/xen/xen/lib/strtoul.c:41,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - cp
    - endp
    - base
    argTypes:
    - char*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 51
    functionName: simple_strtoul
    functionSourceFile: /src/xen/xen/lib/strtoul.c
    functionUses: 21
    functionsReached:
    - isdigit
    - isxdigit
    - toupper
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long simple_strtoul(\n    const char *cp, const char **endp,
      unsigned int base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: W
      Src: /src/xen/xen/lib/sha1.c:23,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:23,1
    - Dst: W
      Src: /src/xen/xen/lib/sha1.c:23,1
    - Dst: W
      Src: /src/xen/xen/lib/sha1.c:23,1
    - Dst: W
      Src: /src/xen/xen/lib/sha1.c:23,1
    - Dst: W
      Src: /src/xen/xen/lib/sha1.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - i
    argTypes:
    - uint32_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: blend
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 2
    functionsReached:
    - W
    - rol32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t blend(uint32_t w[16], unsigned int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: W
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 183
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unaligned_be32
      Src: /src/xen/xen/lib/sha1.c:44,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:46,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha1.c:47,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha1.c:54,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:55,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha1.c:56,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha1.c:63,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:64,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha1.c:65,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha1.c:72,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:73,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha1.c:74,1
    - Dst: blend
      Src: /src/xen/xen/lib/sha1.c:81,1
    - Dst: rol32
      Src: /src/xen/xen/lib/sha1.c:82,1
    - Dst: ror32
      Src: /src/xen/xen/lib/sha1.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 67
    argCount: 2
    argNames:
    - state
    - _input
    argTypes:
    - uint32_t[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 92
    functionName: sha1_transform
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 0
    functionsReached:
    - get_unaligned_be32
    - ror32
    - rol32
    - blend
    linkageType: ''
    returnType: void
    signature: void sha1_transform(uint32_t state[5], const void *_input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sha1_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: sha1_init
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha1_init(struct sha1_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/lib/sha1.c:120,1
    - Dst: sha1_transform
      Src: /src/xen/xen/lib/sha1.c:124,1
    - Dst: sha1_transform
      Src: /src/xen/xen/lib/sha1.c:129,1
    - Dst: memcpy
      Src: /src/xen/xen/lib/sha1.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - msg
    - len
    argTypes:
    - struct sha1_state*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: sha1_update
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 0
    functionsReached:
    - sha1_transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha1_update(struct sha1_state *s, const void *msg, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/lib/sha1.c:147,1
    - Dst: sha1_transform
      Src: /src/xen/xen/lib/sha1.c:148,1
    - Dst: memset
      Src: /src/xen/xen/lib/sha1.c:152,1
    - Dst: put_unaligned_be64
      Src: /src/xen/xen/lib/sha1.c:155,1
    - Dst: sha1_transform
      Src: /src/xen/xen/lib/sha1.c:156,1
    - Dst: put_unaligned_be32
      Src: /src/xen/xen/lib/sha1.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - s
    - digest
    argTypes:
    - struct sha1_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 161
    functionName: sha1_final
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 0
    functionsReached:
    - memset
    - put_unaligned_be64
    - sha1_transform
    - put_unaligned_be32
    linkageType: ''
    returnType: void
    signature: void sha1_final(struct sha1_state *s, uint8_t digest[SHA1_DIGEST_SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_init
      Src: /src/xen/xen/lib/sha1.c:167,1
    - Dst: sha1_update
      Src: /src/xen/xen/lib/sha1.c:168,1
    - Dst: sha1_final
      Src: /src/xen/xen/lib/sha1.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - digest
    - msg
    - len
    argTypes:
    - uint8_t[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: sha1
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 2
    functionsReached:
    - sha1_update
    - sha1_final
    - sha1_init
    linkageType: ''
    returnType: void
    signature: void sha1(uint8_t digest[SHA1_DIGEST_SIZE], const void *msg, size_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/lib/sha1.c:199,1
    - Dst: sha1
      Src: /src/xen/xen/lib/sha1.c:204,1
    - Dst: strlen
      Src: /src/xen/xen/lib/sha1.c:204,1
    - Dst: memcmp
      Src: /src/xen/xen/lib/sha1.c:206,1
    - Dst: panic
      Src: /src/xen/xen/lib/sha1.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: test_sha1
    functionSourceFile: /src/xen/xen/lib/sha1.c
    functionUses: 0
    functionsReached:
    - memcmp
    - ARRAY_SIZE
    - panic
    - sha1
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_sha1(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/lib/strstr.c:14,1
    - Dst: strlen
      Src: /src/xen/xen/lib/strstr.c:19,1
    - Dst: memcmp
      Src: /src/xen/xen/lib/strstr.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 24
    functionName: '*(strstr)(const char *s1, const char *s2)'
    functionSourceFile: /src/xen/xen/lib/strstr.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: char
    signature: char *(strstr)(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/xen/xen/lib/strcasecmp.c:14,1
    - Dst: tolower
      Src: /src/xen/xen/lib/strcasecmp.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 19
    functionName: (strcasecmp)(const char *s1, const char *s2)
    functionSourceFile: /src/xen/xen/lib/strcasecmp.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int (strcasecmp)(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - s
    - c
    - n
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: '*(memset)(void *s, int c, size_t n)'
    functionSourceFile: /src/xen/xen/lib/memset.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *(memset)(void *s, int c, size_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/video/vesa.c:34,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/video/vesa.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: parse_font_height
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_font_height(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: lfb_base
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t lfb_base(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: max_t
      Src: /src/xen/xen/drivers/video/vesa.c:75,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/drivers/video/vesa.c:81,1
    - Dst: min
      Src: /src/xen/xen/drivers/video/vesa.c:82,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: vesa_early_init
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - min
    - max_t
    linkageType: ''
    returnType: void
    signature: void vesa_early_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_wc
      Src: /src/xen/xen/drivers/video/vesa.c:101,1
    - Dst: lfb_base
      Src: /src/xen/xen/drivers/video/vesa.c:101,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vesa.c:105,1
    - Dst: printk
      Src: /src/xen/xen/drivers/video/vesa.c:107,1
    - Dst: lfb_base
      Src: /src/xen/xen/drivers/video/vesa.c:108,1
    - Dst: printk
      Src: /src/xen/xen/drivers/video/vesa.c:110,1
    - Dst: printk
      Src: /src/xen/xen/drivers/video/vesa.c:114,1
    - Dst: lfb_init
      Src: /src/xen/xen/drivers/video/vesa.c:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 141
    functionName: vesa_init
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 1
    functionsReached:
    - lfb_base
    - lfb_init
    - ioremap_wc
    - printk
    - memset
    linkageType: ''
    returnType: void
    signature: void vesa_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: lfb_flush
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lfb_flush(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lfb_carriage_return
      Src: /src/xen/xen/drivers/video/vesa.c:153,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vesa.c:159,1
    - Dst: lfb_flush
      Src: /src/xen/xen/drivers/video/vesa.c:161,1
    - Dst: lfb_free
      Src: /src/xen/xen/drivers/video/vesa.c:162,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/video/vesa.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - keep
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: vesa_endboot
    functionSourceFile: /src/xen/xen/drivers/video/vesa.c
    functionUses: 0
    functionsReached:
    - iounmap
    - lfb_free
    - lfb_carriage_return
    - memset
    - lfb_flush
    linkageType: ''
    returnType: void
    signature: void vesa_endboot(bool keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: vga_noop_puts
    functionSourceFile: /src/xen/xen/drivers/video/vga.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vga_noop_puts(const char *s, size_t nr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/video/vga.c:62,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/video/vga.c:66,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/drivers/video/vga.c:73,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/video/vga.c:73,1
    - Dst: __va
      Src: /src/xen/xen/drivers/video/vga.c:74,1
    - Dst: outw
      Src: /src/xen/xen/drivers/video/vga.c:76,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vga.c:79,1
    - Dst: vesa_early_init
      Src: /src/xen/xen/drivers/video/vga.c:84,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vga.c:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: video_init
    functionSourceFile: /src/xen/xen/drivers/video/vga.c
    functionUses: 1
    functionsReached:
    - __va
    - paddr_to_pfn
    - strchr
    - page_is_ram_type
    - strncmp
    - outw
    - memset
    - vesa_early_init
    linkageType: ''
    returnType: void
    signature: void video_init(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/video/vga.c:97,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/video/vga.c:112,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/video/vga.c:113,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/video/vga.c:113,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/video/vga.c:114,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/video/vga.c:117,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/video/vga.c:117,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/video/vga.c:119,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/video/vga.c:119,1
    - Dst: find_upstream_bridge
      Src: /src/xen/xen/drivers/video/vga.c:125,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/video/vga.c:131,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/video/vga.c:131,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/video/vga.c:136,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/video/vga.c:136,1
    - Dst: printk
      Src: /src/xen/xen/drivers/video/vga.c:148,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/video/vga.c:149,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/video/vga.c:149,1
    - Dst: pci_hide_device
      Src: /src/xen/xen/drivers/video/vga.c:150,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vga.c:160,1
    - Dst: vesa_endboot
      Src: /src/xen/xen/drivers/video/vga.c:166,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/video/vga.c:169,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 171
    functionName: video_endboot
    functionSourceFile: /src/xen/xen/drivers/video/vga.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pci_conf_read16
    - find_upstream_bridge
    - PCI_SLOT
    - PCI_FUNC
    - pci_hide_device
    - BUG
    - vesa_endboot
    - PCI_SBDF
    - pcidevs_unlock
    - pci_get_pdev
    - printk
    - memset
    - pci_conf_read8
    linkageType: ''
    returnType: void
    signature: void video_endboot(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/xen/drivers/video/vga.c:184,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/vga.c:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: vga_text_puts
    functionSourceFile: /src/xen/xen/drivers/video/vga.c
    functionUses: 0
    functionsReached:
    - memset
    - memmove
    linkageType: ''
    returnType: void
    signature: void vga_text_puts(const char *s, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/drivers/video/vga.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ci
    argTypes:
    - struct dom0_vga_console_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: fill_console_start_info
    functionSourceFile: /src/xen/xen/drivers/video/vga.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int fill_console_start_info(struct dom0_vga_console_info *ci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/drivers/video/lfb.c:46,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/lfb.c:51,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/video/lfb.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - text_line
    - video_line
    - nr_chars
    - nr_cells
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 55
    functionName: lfb_show_line
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void lfb_show_line(\n    const unsigned char *text_line,\n    unsigned
      char *video_line,\n    unsigned int nr_chars,\n    unsigned int nr_cells)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/xen/drivers/video/lfb.c:73,1
    - Dst: memset
      Src: /src/xen/xen/drivers/video/lfb.c:75,1
    - Dst: lfb_show_line
      Src: /src/xen/xen/drivers/video/lfb.c:93,1
    - Dst: max
      Src: /src/xen/xen/drivers/video/lfb.c:95,1
    - Dst: lfbp::flush
      Src: /src/xen/xen/drivers/video/lfb.c:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 100
    functionName: lfb_redraw_puts
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 0
    functionsReached:
    - max
    - lfb_show_line
    - memmove
    - memset
    - lfbp::flush
    linkageType: ''
    returnType: void
    signature: void lfb_redraw_puts(const char *s, size_t nr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/drivers/video/lfb.c:121,1
    - Dst: lfb_show_line
      Src: /src/xen/xen/drivers/video/lfb.c:127,1
    - Dst: lfbp::flush
      Src: /src/xen/xen/drivers/video/lfb.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 141
    functionName: lfb_scroll_puts
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 0
    functionsReached:
    - lfb_show_line
    - lfbp::flush
    - memcpy
    linkageType: ''
    returnType: void
    signature: void lfb_scroll_puts(const char *s, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: lfb_carriage_return
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lfb_carriage_return(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xvmalloc_array
      Src: /src/xen/xen/drivers/video/lfb.c:152,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/drivers/video/lfb.c:153,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/drivers/video/lfb.c:155,1
    - Dst: printk
      Src: /src/xen/xen/drivers/video/lfb.c:163,1
    - Dst: lfb_free
      Src: /src/xen/xen/drivers/video/lfb.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - lfbp
    argTypes:
    - struct lfb_prop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: lfb_init
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 1
    functionsReached:
    - printk
    - xvmalloc_array
    - xvzalloc_array
    - lfb_free
    linkageType: ''
    returnType: int
    signature: int lfb_init(struct lfb_prop *lfbp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XVFREE
      Src: /src/xen/xen/drivers/video/lfb.c:171,1
    - Dst: XVFREE
      Src: /src/xen/xen/drivers/video/lfb.c:172,1
    - Dst: XVFREE
      Src: /src/xen/xen/drivers/video/lfb.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: lfb_free
    functionSourceFile: /src/xen/xen/drivers/video/lfb.c
    functionUses: 2
    functionsReached:
    - XVFREE
    linkageType: ''
    returnType: void
    signature: void lfb_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/cap.c:22,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:26,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:27,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/cap.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - vpci
    - offset
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 38
    functionName: vpci_get_previous_cap_register
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ASSERT_UNREACHABLE
    - vpci_get_register
    linkageType: ''
    returnType: struct vpci_register
    signature: "struct vpci_register *vpci_get_previous_cap_register(\n    const struct
      vpci *vpci, unsigned int offset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/vpci/cap.c:42,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/cap.c:48,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/cap.c:52,1
    - Dst: vpci_get_previous_cap_register
      Src: /src/xen/xen/drivers/vpci/cap.c:53,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:54,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:57,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/vpci/cap.c:66,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:67,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/cap.c:68,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:70,1
    - Dst: vpci_remove_registers
      Src: /src/xen/xen/drivers/vpci/cap.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pdev
    - cap
    argTypes:
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 74
    functionName: vpci_capability_hide
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - vpci_remove_registers
    - vpci_get_previous_cap_register
    - spin_unlock
    - xfree
    - pci_find_cap_offset
    - spin_lock
    - list_del
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    - vpci_get_register
    linkageType: ''
    returnType: int
    signature: int vpci_capability_hide(const struct pci_dev *pdev, unsigned int cap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/cap.c:84,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:88,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:89,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/cap.c:94,1
    - Dst: PCI_EXT_CAP_NEXT
      Src: /src/xen/xen/drivers/vpci/cap.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - vpci
    - offset
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: vpci_get_previous_ext_cap_register
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - PCI_EXT_CAP_NEXT
    - ASSERT
    - ASSERT_UNREACHABLE
    - vpci_get_register
    linkageType: ''
    returnType: struct vpci_register
    signature: "struct vpci_register *vpci_get_previous_ext_cap_register(\n    const
      struct vpci *vpci, unsigned int offset)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/vpci/cap.c:107,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/cap.c:114,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/cap.c:118,1
    - Dst: vpci_get_register
      Src: /src/xen/xen/drivers/vpci/cap.c:119,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:122,1
    - Dst: PCI_EXT_CAP_NEXT
      Src: /src/xen/xen/drivers/vpci/cap.c:129,1
    - Dst: PCI_EXT_CAP_ID
      Src: /src/xen/xen/drivers/vpci/cap.c:137,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:139,1
    - Dst: vpci_get_previous_ext_cap_register
      Src: /src/xen/xen/drivers/vpci/cap.c:143,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:146,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/vpci/cap.c:155,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/cap.c:156,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/cap.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - pdev
    - cap
    argTypes:
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 160
    functionName: vpci_ext_capability_hide
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - PCI_EXT_CAP_NEXT
    - spin_unlock
    - PCI_EXT_CAP_ID
    - vpci_get_previous_ext_cap_register
    - xfree
    - spin_lock
    - list_del
    - pci_find_ext_capability
    - ASSERT_UNREACHABLE
    - vpci_get_register
    linkageType: ''
    returnType: int
    signature: "int vpci_ext_capability_hide(\n    const struct pci_dev *pdev, unsigned
      int cap)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:166,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/cap.c:168,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/cap.c:181,1
    - Dst: pci_find_next_cap_ttl
      Src: /src/xen/xen/drivers/vpci/cap.c:183,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/cap.c:186,1
    - Dst: pci_find_next_cap_ttl
      Src: /src/xen/xen/drivers/vpci/cap.c:207,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/cap.c:213,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/cap.c:219,1
    - Dst: vpci_add_register_mask
      Src: /src/xen/xen/drivers/vpci/cap.c:235,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 242
    functionName: vpci_init_capability_list
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ARRAY_SIZE
    - vpci_add_register_mask
    - vpci_add_register
    - is_hardware_domain
    - pci_find_next_cap_ttl
    linkageType: ''
    returnType: int
    signature: int vpci_init_capability_list(struct pci_dev *pdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:251,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/cap.c:253,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/cap.c:258,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:263,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/cap.c:269,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:273,1
    - Dst: PCI_EXT_CAP_NEXT
      Src: /src/xen/xen/drivers/vpci/cap.c:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 286
    functionName: vpci_init_ext_capability_list
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - PCI_EXT_CAP_NEXT
    - pci_conf_read32
    - printk
    - vpci_add_register
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int vpci_init_ext_capability_list(const struct pci_dev *pdev)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: vpci_init_capability_list
      Src: /src/xen/xen/drivers/vpci/cap.c:292,1
    - Dst: vpci_init_ext_capability_list
      Src: /src/xen/xen/drivers/vpci/cap.c:296,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/vpci/cap.c:308,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:309,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/vpci/cap.c:310,1
    - Dst: vpci_capability_t*::init
      Src: /src/xen/xen/drivers/vpci/cap.c:315,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:320,1
    - Dst: vpci_capability_t*::cleanup
      Src: /src/xen/xen/drivers/vpci/cap.c:326,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:329,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:331,1
    - Dst: vpci_capability_hide
      Src: /src/xen/xen/drivers/vpci/cap.c:337,1
    - Dst: vpci_ext_capability_hide
      Src: /src/xen/xen/drivers/vpci/cap.c:339,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:342,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 350
    functionName: vpci_init_capabilities
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - vpci_capability_t*::init
    - vpci_init_capability_list
    - vpci_capability_hide
    - pci_find_cap_offset
    - vpci_capability_t*::cleanup
    - printk
    - is_hardware_domain
    - pci_find_ext_capability
    - vpci_init_ext_capability_list
    - vpci_ext_capability_hide
    linkageType: ''
    returnType: int
    signature: int vpci_init_capabilities(struct pci_dev *pdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/vpci/cap.c:364,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/cap.c:365,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/vpci/cap.c:366,1
    - Dst: vpci_capability_t*::cleanup
      Src: /src/xen/xen/drivers/vpci/cap.c:369,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/cap.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 377
    functionName: vpci_cleanup_capabilities
    functionSourceFile: /src/xen/xen/drivers/vpci/cap.c
    functionUses: 0
    functionsReached:
    - pci_find_cap_offset
    - vpci_capability_t*::cleanup
    - printk
    - pci_find_ext_capability
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void vpci_cleanup_capabilities(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/vpci/msi.c:31,1
    - Dst: fls
      Src: /src/xen/xen/drivers/vpci/msi.c:31,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/vpci/msi.c:32,1
    - Dst: fls
      Src: /src/xen/xen/drivers/vpci/msi.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: control_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - fls
    - MASK_INSR
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t control_read(\n    const struct pci_dev *pdev, unsigned int
      reg, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min_t
      Src: /src/xen/xen/drivers/vpci/msi.c:42,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/vpci/msi.c:43,1
    - Dst: vpci_msi_arch_disable
      Src: /src/xen/xen/drivers/vpci/msi.c:70,1
    - Dst: vpci_msi_arch_enable
      Src: /src/xen/xen/drivers/vpci/msi.c:74,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msi.c:78,1
    - Dst: pci_intx
      Src: /src/xen/xen/drivers/vpci/msi.c:80,1
    - Dst: vpci_msi_arch_disable
      Src: /src/xen/xen/drivers/vpci/msi.c:85,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/msi.c:90,1
    - Dst: control_read
      Src: /src/xen/xen/drivers/vpci/msi.c:90,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 91
    functionName: control_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - vpci_msi_arch_enable
    - vpci_msi_arch_disable
    - min_t
    - pci_intx
    - control_read
    - pci_conf_write16
    - is_hardware_domain
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: "void control_write(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vpci_msi_arch_update
      Src: /src/xen/xen/drivers/vpci/msi.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pdev
    - msi
    argTypes:
    - struct pci_dev*
    - struct vpci_msi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: update_msi
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - vpci_msi_arch_update
    linkageType: ''
    returnType: void
    signature: void update_msi(const struct pci_dev *pdev, struct vpci_msi *msi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: address_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t address_read(\n    const struct pci_dev *pdev, unsigned int
      reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_msi
      Src: /src/xen/xen/drivers/vpci/msi.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: address_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - update_msi
    linkageType: ''
    returnType: void
    signature: "void address_write(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: address_hi_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t address_hi_read(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_msi
      Src: /src/xen/xen/drivers/vpci/msi.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: address_hi_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - update_msi
    linkageType: ''
    returnType: void
    signature: "void address_hi_write(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: data_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t data_read(\n    const struct pci_dev *pdev, unsigned int
      reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_msi
      Src: /src/xen/xen/drivers/vpci/msi.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 4
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: data_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - update_msi
    linkageType: ''
    returnType: void
    signature: "void data_write(\n    const struct pci_dev *pdev, unsigned int reg,
      uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: mask_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t mask_read(\n    const struct pci_dev *pdev, unsigned int
      reg, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ffs
      Src: /src/xen/xen/drivers/vpci/msi.c:187,1
    - Dst: vpci_msi_arch_mask
      Src: /src/xen/xen/drivers/vpci/msi.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 195
    functionName: mask_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - ffs
    - vpci_msi_arch_mask
    linkageType: ''
    returnType: void
    signature: "void mask_write(\n    const struct pci_dev *pdev, unsigned int reg,
      uint32_t val, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: msi_control_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:203,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/vpci/msi.c:207,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/msi.c:213,1
    - Dst: is_64bit_address
      Src: /src/xen/xen/drivers/vpci/msi.c:214,1
    - Dst: is_mask_bit_support
      Src: /src/xen/xen/drivers/vpci/msi.c:216,1
    - Dst: msi_pending_bits_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:217,1
    - Dst: msi_mask_bits_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:223,1
    - Dst: vpci_remove_registers
      Src: /src/xen/xen/drivers/vpci/msi.c:225,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:228,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msi.c:230,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/vpci/msi.c:234,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msi.c:241,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:249,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - pdev
    - hide
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 255
    functionName: cleanup_msi
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - vpci_remove_registers
    - pci_conf_read16
    - msi_mask_bits_reg
    - msi_control_reg
    - XFREE
    - msi_pending_bits_reg
    - is_64bit_address
    - printk
    - vpci_add_register
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    - is_mask_bit_support
    linkageType: ''
    returnType: int
    signature: int cleanup_msi(const struct pci_dev *pdev, bool hide)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/vpci/msi.c:266,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:270,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:271,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/msi.c:281,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:281,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/msi.c:287,1
    - Dst: vpci_msi_arch_init
      Src: /src/xen/xen/drivers/vpci/msi.c:293,1
    - Dst: is_64bit_address
      Src: /src/xen/xen/drivers/vpci/msi.c:295,1
    - Dst: is_mask_bit_support
      Src: /src/xen/xen/drivers/vpci/msi.c:296,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:298,1
    - Dst: msi_lower_address_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:299,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:303,1
    - Dst: msi_data_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:304,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:311,1
    - Dst: msi_upper_address_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:312,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msi.c:319,1
    - Dst: msi_mask_bits_reg
      Src: /src/xen/xen/drivers/vpci/msi.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 333
    functionName: init_msi
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - pci_conf_read16
    - msi_mask_bits_reg
    - msi_upper_address_reg
    - msi_lower_address_reg
    - msi_control_reg
    - vpci_msi_arch_init
    - is_64bit_address
    - ASSERT
    - msi_data_reg
    - vpci_add_register
    - is_mask_bit_support
    linkageType: ''
    returnType: int
    signature: int init_msi(struct pci_dev *pdev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rcu_read_lock
      Src: /src/xen/xen/drivers/vpci/msi.c:340,1
    - Dst: has_vpci
      Src: /src/xen/xen/drivers/vpci/msi.c:345,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:348,1
    - Dst: read_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:350,1
    - Dst: spin_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:358,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:364,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:366,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:369,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:370,1
    - Dst: vpci_msi_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:373,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:381,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:383,1
    - Dst: vpci_msix_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:386,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:393,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:403,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:404,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/vpci/msi.c:407,1
    - Dst: read_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:408,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:410,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:414,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:419,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 336
    functionDepth: 5
    functionLinenumber: 336
    functionLinenumberEnd: 420
    functionName: vpci_dump_msi
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - has_vpci
    - rcu_read_unlock
    - read_unlock
    - vpci_msix_arch_print
    - process_pending_softirqs
    - spin_trylock
    - printk
    - read_trylock
    - vpci_msi_arch_print
    - rcu_read_lock
    linkageType: ''
    returnType: void
    signature: void vpci_dump_msi(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: has_vpci
      Src: /src/xen/xen/drivers/vpci/msi.c:345,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:348,1
    - Dst: read_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:350,1
    - Dst: spin_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:358,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:364,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:366,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:369,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:370,1
    - Dst: vpci_msi_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:373,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:381,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:383,1
    - Dst: vpci_msix_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:386,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:393,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:403,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:404,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/vpci/msi.c:407,1
    - Dst: read_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:408,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:410,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:414,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 341
    functionDepth: 5
    functionLinenumber: 341
    functionLinenumberEnd: 418
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 10
    functionsReached:
    - spin_unlock
    - has_vpci
    - read_unlock
    - vpci_msix_arch_print
    - process_pending_softirqs
    - spin_trylock
    - printk
    - read_trylock
    - vpci_msi_arch_print
    linkageType: ''
    returnType: void
    signature: void for_each_domain ( d )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:358,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:364,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:366,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:369,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:370,1
    - Dst: vpci_msi_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:373,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:381,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:383,1
    - Dst: vpci_msix_arch_print
      Src: /src/xen/xen/drivers/vpci/msi.c:386,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:393,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:403,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msi.c:404,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/vpci/msi.c:407,1
    - Dst: read_trylock
      Src: /src/xen/xen/drivers/vpci/msi.c:408,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msi.c:410,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 413
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/vpci/msi.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - read_unlock
    - vpci_msix_arch_print
    - process_pending_softirqs
    - spin_trylock
    - printk
    - read_trylock
    - vpci_msi_arch_print
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, pdev )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - vpci
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: VMSIX_ADDR_IN_RANGE
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMSIX_ADDR_IN_RANGE(addr, vpci, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - addr
    - ','
    - vpci
    - ','
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: VMSIX_ADDR_SAME_PAGE
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VMSIX_ADDR_SAME_PAGE(addr, vpci, nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: control_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t control_read(\n    const struct pci_dev *pdev, unsigned int
      reg, void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vpci_msix_arch_disable_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:51,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:56,1
    - Dst: vpci_msix_arch_enable_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:62,1
    - Dst: vmsix_table_host_base
      Src: /src/xen/xen/drivers/vpci/msix.c:63,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - entry
    - pdev
    - nr
    argTypes:
    - struct vpci_msix_entry*
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 8
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: update_entry
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 3
    functionsReached:
    - vpci_msix_arch_disable_entry
    - gprintk
    - vpci_msix_arch_enable_entry
    - vmsix_table_host_base
    linkageType: ''
    returnType: void
    signature: "void update_entry(struct vpci_msix_entry *entry,\n                         const
      struct pci_dev *pdev, unsigned int nr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: update_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:102,1
    - Dst: vpci_msix_arch_disable_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:113,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:134,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msix.c:142,1
    - Dst: pci_intx
      Src: /src/xen/xen/drivers/vpci/msix.c:144,1
    - Dst: control_read
      Src: /src/xen/xen/drivers/vpci/msix.c:151,1
    - Dst: pci_msi_conf_write_intercept
      Src: /src/xen/xen/drivers/vpci/msix.c:152,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/msix.c:153,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 154
    functionName: control_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - vpci_msix_arch_disable_entry
    - gprintk
    - pci_intx
    - update_entry
    - pci_msi_conf_write_intercept
    - control_read
    - pci_conf_write16
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: "void control_write(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_PDEV_LIST_IS_READ_LOCKED
      Src: /src/xen/xen/drivers/vpci/msix.c:160,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:162,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:167,1
    - Dst: VMSIX_ADDR_SAME_PAGE
      Src: /src/xen/xen/drivers/vpci/msix.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - d
    - addr
    argTypes:
    - struct domain*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: msix_find
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - ASSERT_PDEV_LIST_IS_READ_LOCKED
    - list_for_each_entry
    - ARRAY_SIZE
    - VMSIX_ADDR_SAME_PAGE
    linkageType: ''
    returnType: struct vpci_msix
    signature: struct vpci_msix *msix_find(const struct domain *d, unsigned long addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:180,1
    - Dst: msix_find
      Src: /src/xen/xen/drivers/vpci/msix.c:181,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - v
    - addr
    argTypes:
    - struct vcpu*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: msix_accept
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - msix_find
    - read_lock
    - read_unlock
    linkageType: ''
    returnType: int
    signature: int msix_accept(struct vcpu *v, unsigned long addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - pdev
    - addr
    - len
    argTypes:
    - struct pci_dev*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: access_allowed
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 2
    functionsReached:
    - gprintk
    linkageType: ''
    returnType: bool
    signature: "bool access_allowed(const struct pci_dev *pdev, unsigned long addr,\n
      \                          unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msix
    - addr
    argTypes:
    - struct vpci_msix*
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: get_entry
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 42
    functionsReached:
    - vmsix_table_addr
    linkageType: ''
    returnType: struct vpci_msix_entry
    signature: "struct vpci_msix_entry *get_entry(struct vpci_msix *msix,\n                                         paddr_t
      addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/msix.c:213,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/vpci/msix.c:213,1
    - Dst: likely
      Src: /src/xen/xen/drivers/vpci/msix.c:215,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:221,1
    - Dst: vmsix_table_host_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:224,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:228,1
    - Dst: vmsix_table_host_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:231,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msix.c:235,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/vpci/msix.c:239,1
    - Dst: round_pgdown
      Src: /src/xen/xen/drivers/vpci/msix.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - vpci
    - slot
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 242
    functionName: get_table
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 8
    functionsReached:
    - ioremap
    - vmsix_table_host_addr
    - spin_is_locked
    - likely
    - round_pgdown
    - ASSERT
    - vmsix_table_size
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void *get_table(const struct vpci *vpci, unsigned int slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:246,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:248,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:248,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:250,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:250,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:251,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:253,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:253,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:255,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:255,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:256,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msix.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - vpci
    - addr
    argTypes:
    - struct vpci*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: get_slot
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - vmsix_table_size
    - ASSERT_UNREACHABLE
    - vmsix_table_addr
    - PFN_DOWN
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_slot(const struct vpci *vpci, unsigned long addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VMSIX_ADDR_IN_RANGE
      Src: /src/xen/xen/drivers/vpci/msix.c:267,1
    - Dst: VMSIX_ADDR_IN_RANGE
      Src: /src/xen/xen/drivers/vpci/msix.c:270,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:273,1
    - Dst: VMSIX_ADDR_SAME_PAGE
      Src: /src/xen/xen/drivers/vpci/msix.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - msix
    - addr
    argTypes:
    - struct vpci_msix*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 278
    functionName: adjacent_handle
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - VMSIX_ADDR_IN_RANGE
    - ARRAY_SIZE
    - VMSIX_ADDR_SAME_PAGE
    linkageType: ''
    returnType: bool
    signature: bool adjacent_handle(const struct vpci_msix *msix, unsigned long addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: adjacent_handle
      Src: /src/xen/xen/drivers/vpci/msix.c:290,1
    - Dst: VMSIX_ADDR_IN_RANGE
      Src: /src/xen/xen/drivers/vpci/msix.c:293,1
    - Dst: access_allowed
      Src: /src/xen/xen/drivers/vpci/msix.c:294,1
    - Dst: get_slot
      Src: /src/xen/xen/drivers/vpci/msix.c:298,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:299,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/vpci/msix.c:302,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/drivers/vpci/msix.c:302,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:306,1
    - Dst: adjacent_read
      Src: /src/xen/xen/drivers/vpci/msix.c:321,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:333,1
    - Dst: get_table
      Src: /src/xen/xen/drivers/vpci/msix.c:334,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:337,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:338,1
    - Dst: read_mmio
      Src: /src/xen/xen/drivers/vpci/msix.c:344,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/drivers/vpci/msix.c:344,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - d
    - msix
    - addr
    - len
    - data
    argTypes:
    - struct domain*
    - struct vpci_msix*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 348
    functionName: adjacent_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - ARRAY_SIZE
    - get_table
    - IS_ALIGNED
    - adjacent_read
    - adjacent_handle
    - access_allowed
    - read_mmio
    - VMSIX_ADDR_IN_RANGE
    - gprintk
    - get_slot
    - spin_lock
    - PAGE_OFFSET
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int adjacent_read(const struct domain *d, const struct vpci_msix *msix,\n
      \                        unsigned long addr, unsigned int len,\n                         unsigned
      long *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:360,1
    - Dst: msix_find
      Src: /src/xen/xen/drivers/vpci/msix.c:362,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:365,1
    - Dst: adjacent_handle
      Src: /src/xen/xen/drivers/vpci/msix.c:369,1
    - Dst: adjacent_read
      Src: /src/xen/xen/drivers/vpci/msix.c:371,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:373,1
    - Dst: access_allowed
      Src: /src/xen/xen/drivers/vpci/msix.c:377,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:379,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:383,1
    - Dst: get_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:384,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msix.c:409,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:412,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:413,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 416
    functionName: msix_read
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - get_entry
    - read_unlock
    - adjacent_read
    - adjacent_handle
    - access_allowed
    - spin_lock
    - msix_find
    - ASSERT_UNREACHABLE
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int msix_read(\n    struct vcpu *v, unsigned long addr, unsigned int
      len, unsigned long *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: adjacent_handle
      Src: /src/xen/xen/drivers/vpci/msix.c:426,1
    - Dst: VMSIX_ADDR_IN_RANGE
      Src: /src/xen/xen/drivers/vpci/msix.c:434,1
    - Dst: access_allowed
      Src: /src/xen/xen/drivers/vpci/msix.c:435,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msix.c:435,1
    - Dst: get_slot
      Src: /src/xen/xen/drivers/vpci/msix.c:439,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:440,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/vpci/msix.c:443,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/drivers/vpci/msix.c:443,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:447,1
    - Dst: adjacent_write
      Src: /src/xen/xen/drivers/vpci/msix.c:452,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:461,1
    - Dst: get_table
      Src: /src/xen/xen/drivers/vpci/msix.c:462,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:465,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:466,1
    - Dst: write_mmio
      Src: /src/xen/xen/drivers/vpci/msix.c:472,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/drivers/vpci/msix.c:472,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:473,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - d
    - msix
    - addr
    - len
    - data
    argTypes:
    - struct domain*
    - struct vpci_msix*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 476
    functionName: adjacent_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - write_mmio
    - adjacent_write
    - ARRAY_SIZE
    - get_table
    - IS_ALIGNED
    - adjacent_handle
    - access_allowed
    - VMSIX_ADDR_IN_RANGE
    - gprintk
    - get_slot
    - spin_lock
    - PAGE_OFFSET
    - unlikely
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: "int adjacent_write(const struct domain *d, const struct vpci_msix
      *msix,\n                          unsigned long addr, unsigned int len,\n                          unsigned
      long data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:486,1
    - Dst: msix_find
      Src: /src/xen/xen/drivers/vpci/msix.c:488,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:491,1
    - Dst: adjacent_handle
      Src: /src/xen/xen/drivers/vpci/msix.c:495,1
    - Dst: adjacent_write
      Src: /src/xen/xen/drivers/vpci/msix.c:497,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:499,1
    - Dst: access_allowed
      Src: /src/xen/xen/drivers/vpci/msix.c:503,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:505,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/msix.c:509,1
    - Dst: get_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:510,1
    - Dst: update_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:570,1
    - Dst: vmsix_entry_nr
      Src: /src/xen/xen/drivers/vpci/msix.c:570,1
    - Dst: vpci_msix_arch_mask_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:573,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msix.c:579,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:582,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/msix.c:583,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - v
    - addr
    - len
    - data
    argTypes:
    - struct vcpu*
    - unsigned long
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 478
    functionDepth: 9
    functionLinenumber: 478
    functionLinenumberEnd: 586
    functionName: msix_write
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - vpci_msix_arch_mask_entry
    - adjacent_write
    - get_entry
    - read_unlock
    - adjacent_handle
    - access_allowed
    - spin_lock
    - update_entry
    - msix_find
    - vmsix_entry_nr
    - ASSERT_UNREACHABLE
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int msix_write(\n    struct vcpu *v, unsigned long addr, unsigned
      int len, unsigned long data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:603,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:605,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:605,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/msix.c:606,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/msix.c:606,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:607,1
    - Dst: vmsix_table_bar_valid
      Src: /src/xen/xen/drivers/vpci/msix.c:609,1
    - Dst: get_gfn_query
      Src: /src/xen/xen/drivers/vpci/msix.c:615,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/vpci/msix.c:623,1
    - Dst: p2m_remove_identity_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:625,1
    - Dst: put_gfn
      Src: /src/xen/xen/drivers/vpci/msix.c:630,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/msix.c:631,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/vpci/msix.c:633,1
    - Dst: put_gfn
      Src: /src/xen/xen/drivers/vpci/msix.c:636,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msix.c:640,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:650,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/msix.c:654,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/vpci/msix.c:654,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/vpci/msix.c:655,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 661
    functionName: vpci_make_msix_hole
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ARRAY_SIZE
    - put_gfn
    - mfn_x
    - spin_is_locked
    - vmsix_table_addr
    - ASSERT
    - gprintk
    - p2m_remove_identity_entry
    - PFN_DOWN
    - vmsix_table_bar_valid
    - vmsix_table_size
    - is_hardware_domain
    - get_gfn_query
    linkageType: ''
    returnType: int
    signature: int vpci_make_msix_hole(const struct pci_dev *pdev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/drivers/vpci/msix.c:671,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:672,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/vpci/msix.c:674,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/vpci/msix.c:676,1
    - Dst: vpci_remove_registers
      Src: /src/xen/xen/drivers/vpci/msix.c:682,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:682,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msix.c:685,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/msix.c:687,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/msix.c:695,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msix.c:703,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:704,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/msix.c:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - pdev
    - hide
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 710
    functionName: cleanup_msix
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 2
    functionsReached:
    - vpci_remove_registers
    - iounmap
    - ARRAY_SIZE
    - XFREE
    - msix_control_reg
    - list_del
    - printk
    - vpci_add_register
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int cleanup_msix(const struct pci_dev *pdev, bool hide)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/msix.c:724,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:724,1
    - Dst: msix_table_size
      Src: /src/xen/xen/drivers/vpci/msix.c:726,1
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/drivers/vpci/msix.c:728,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/msix.c:733,1
    - Dst: msix_table_offset_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:733,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/msix.c:735,1
    - Dst: msix_pba_offset_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:735,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:738,1
    - Dst: ROUNDUP
      Src: /src/xen/xen/drivers/vpci/msix.c:747,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/drivers/vpci/msix.c:747,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/msix.c:749,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/msix.c:755,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/msix.c:777,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/vpci/msix.c:778,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/msix.c:781,1
    - Dst: vpci_msix_arch_init_entry
      Src: /src/xen/xen/drivers/vpci/msix.c:791,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/vpci/msix.c:794,1
    - Dst: register_mmio_handler
      Src: /src/xen/xen/drivers/vpci/msix.c:795,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/vpci/msix.c:798,1
    - Dst: vpci_make_msix_hole
      Src: /src/xen/xen/drivers/vpci/msix.c:805,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 806
    functionName: init_msix
    functionSourceFile: /src/xen/xen/drivers/vpci/msix.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ROUNDUP
    - msix_table_size
    - msix_pba_offset_reg
    - ARRAY_SIZE
    - vpci_msix_arch_init_entry
    - msix_control_reg
    - msix_table_offset_reg
    - DIV_ROUND_UP
    - register_mmio_handler
    - pci_conf_read32
    - xzalloc_flex_struct
    - list_add
    - vpci_add_register
    - xfree
    - list_empty
    - vpci_make_msix_hole
    linkageType: ''
    returnType: int
    signature: int init_msix(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - cap
    - ','
    - name
    - ','
    - finit
    - ','
    - fclean
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: REGISTER_VPCI_CAPABILITY
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_VPCI_CAPABILITY(cap, name, finit, fclean, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - finit
    - ','
    - fclean
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: REGISTER_VPCI_CAP
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_VPCI_CAP(name, finit, fclean)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - finit
    - ','
    - fclean
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: REGISTER_VPCI_EXTCAP
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_VPCI_EXTCAP(name, finit, fclean)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: vmsix_table_host_base
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t vmsix_table_host_base(const struct vpci *vpci,\n                                            unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmsix_table_host_base
      Src: /src/xen/xen/drivers/vpci/private.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: vmsix_table_host_addr
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 1
    functionsReached:
    - vmsix_table_host_base
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t vmsix_table_host_addr(const struct vpci *vpci,\n                                            unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: vmsix_table_base
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vmsix_table_base(const struct vpci *vpci, unsigned int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmsix_table_base
      Src: /src/xen/xen/drivers/vpci/private.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: vmsix_table_addr
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 3
    functionsReached:
    - vmsix_table_base
    linkageType: ''
    returnType: paddr_t
    signature: paddr_t vmsix_table_addr(const struct vpci *vpci, unsigned int nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: vmsix_table_bar_valid
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool vmsix_table_bar_valid(const struct vpci *vpci,\n                                         unsigned
      int nr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/xen/xen/drivers/vpci/private.h:137,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/drivers/vpci/private.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vpci
    - nr
    argTypes:
    - struct vpci*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: vmsix_table_size
    functionSourceFile: /src/xen/xen/drivers/vpci/private.h
    functionUses: 3
    functionsReached:
    - ROUNDUP
    - DIV_ROUND_UP
    linkageType: ''
    returnType: size_t
    signature: size_t vmsix_table_size(const struct vpci *vpci, unsigned int nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:33,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/vpci.c:33,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:35,1
    - Dst: gdprintk
      Src: /src/xen/xen/drivers/vpci/vpci.c:44,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/vpci/vpci.c:48,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/vpci/vpci.c:53,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/vpci/vpci.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 66
    functionName: assign_virtual_sbdf
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - gdprintk
    - rw_is_write_locked
    - __set_bit
    - find_first_zero_bit
    - PCI_SBDF
    - ASSERT
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int assign_virtual_sbdf(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:76,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/vpci/vpci.c:76,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/vpci/vpci.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - vpci
    - offset
    - size
    argTypes:
    - struct vpci*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: vpci_get_register
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 4
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_for_each_entry
    linkageType: ''
    returnType: struct vpci_register
    signature: "struct vpci_register *vpci_get_register(const struct vpci *vpci,\n
      \                                       unsigned int offset,\n                                        unsigned
      int size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:94,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/vpci.c:94,1
    - Dst: has_vpci
      Src: /src/xen/xen/drivers/vpci/vpci.c:96,1
    - Dst: __clear_bit
      Src: /src/xen/xen/drivers/vpci/vpci.c:101,1
    - Dst: vpci_cleanup_capabilities
      Src: /src/xen/xen/drivers/vpci/vpci.c:105,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:107,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/vpci/vpci.c:108,1
    - Dst: list_first_entry
      Src: /src/xen/xen/drivers/vpci/vpci.c:110,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/vpci/vpci.c:114,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/vpci.c:115,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:117,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/vpci.c:119,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/drivers/vpci/vpci.c:120,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/vpci.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: vpci_deassign_device
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 1
    functionsReached:
    - list_first_entry
    - rw_is_write_locked
    - spin_unlock
    - __clear_bit
    - has_vpci
    - ARRAY_SIZE
    - rangeset_destroy
    - ASSERT
    - spin_lock
    - list_del
    - vpci_cleanup_capabilities
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void vpci_deassign_device(struct pci_dev *pdev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:131,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/vpci.c:131,1
    - Dst: has_vpci
      Src: /src/xen/xen/drivers/vpci/vpci.c:133,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:137,1
    - Dst: pci_get_ro_map
      Src: /src/xen/xen/drivers/vpci/vpci.c:140,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/vpci/vpci.c:141,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/vpci/vpci.c:144,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/vpci/vpci.c:148,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/vpci/vpci.c:149,1
    - Dst: assign_virtual_sbdf
      Src: /src/xen/xen/drivers/vpci/vpci.c:153,1
    - Dst: vpci_init_header
      Src: /src/xen/xen/drivers/vpci/vpci.c:158,1
    - Dst: vpci_init_capabilities
      Src: /src/xen/xen/drivers/vpci/vpci.c:162,1
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/drivers/vpci/vpci.c:166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 169
    functionName: vpci_assign_device
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 1
    functionsReached:
    - pci_get_ro_map
    - rw_is_write_locked
    - xzalloc
    - has_vpci
    - vpci_init_capabilities
    - assign_virtual_sbdf
    - vpci_init_header
    - spin_lock_init
    - vpci_deassign_device
    - ASSERT
    - INIT_LIST_HEAD
    - test_bit
    linkageType: ''
    returnType: int
    signature: int vpci_assign_device(struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:182,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:182,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:183,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/vpci/vpci.c:183,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - sbdf
    argTypes:
    - struct domain*
    - pci_sbdf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: translate_virtual_device
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - rw_is_locked
    - ASSERT
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    linkageType: ''
    returnType: struct pci_dev
    signature: "struct pci_dev *translate_virtual_device(const struct domain *d,\n
      \                                                     pci_sbdf_t *sbdf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, pdev )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - struct vpci_register*
    - struct vpci_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: vpci_register_cmp
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int vpci_register_cmp(const struct vpci_register *r1,\n                             const
      struct vpci_register *r2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: vpci_ignored_read
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_ignored_read(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 227
    functionName: vpci_ignored_write
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void vpci_ignored_write(\n    const struct pci_dev *pdev, unsigned
      int reg, uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: vpci_read_val
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read_val(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/vpci/vpci.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: vpci_hw_read8
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read8
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_hw_read8(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/vpci.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: vpci_hw_read16
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_hw_read16(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/vpci.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: vpci_hw_read32
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read32
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_hw_read32(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/vpci/vpci.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: vpci_hw_write8
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_write8
    linkageType: ''
    returnType: void
    signature: "void vpci_hw_write8(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/vpci.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: vpci_hw_write16
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_write16
    linkageType: ''
    returnType: void
    signature: "void vpci_hw_write16(\n    const struct pci_dev *pdev, unsigned int
      reg, uint32_t val, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/vpci/vpci.c:287,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:301,1
    - Dst: list_for_each
      Src: /src/xen/xen/drivers/vpci/vpci.c:304,1
    - Dst: list_entry
      Src: /src/xen/xen/drivers/vpci/vpci.c:307,1
    - Dst: vpci_register_cmp
      Src: /src/xen/xen/drivers/vpci/vpci.c:308,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:314,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/vpci.c:315,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/vpci/vpci.c:320,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:321,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 10
    argNames:
    - vpci
    - read_handler
    - write_handler
    - offset
    - size
    - data
    - ro_mask
    - rw1c_mask
    - rsvdp_mask
    - rsvdz_mask
    argTypes:
    - struct vpci*
    - vpci_read_t*
    - vpci_write_t*
    - unsigned int
    - unsigned int
    - void*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 324
    functionName: vpci_add_register_mask
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - xmalloc
    - vpci_register_cmp
    - list_entry
    - spin_lock
    - xfree
    - list_add_tail
    - list_for_each
    linkageType: ''
    returnType: int
    signature: "int vpci_add_register_mask(struct vpci *vpci, vpci_read_t *read_handler,\n
      \                          vpci_write_t *write_handler, unsigned int offset,\n
      \                          unsigned int size, void *data, uint32_t ro_mask,\n
      \                          uint32_t rw1c_mask, uint32_t rsvdp_mask,\n                           uint32_t
      rsvdz_mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpci_add_register_mask
      Src: /src/xen/xen/drivers/vpci/vpci.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - vpci
    - read_handler
    - write_handler
    - offset
    - size
    - data
    argTypes:
    - struct vpci*
    - vpci_read_t*
    - vpci_write_t*
    - unsigned int
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: vpci_add_register
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 6
    functionsReached:
    - vpci_add_register_mask
    linkageType: ''
    returnType: int
    signature: "int vpci_add_register(struct vpci *vpci, vpci_read_t *read_handler,\n
      \                     vpci_write_t *write_handler, unsigned int offset,\n                      unsigned
      int size, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:340,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/vpci/vpci.c:341,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/vpci/vpci.c:346,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/vpci/vpci.c:347,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:354,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - vpci
    - start
    - size
    argTypes:
    - struct vpci*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 364
    functionName: vpci_remove_registers
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 3
    functionsReached:
    - spin_unlock
    - spin_lock
    - list_del
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: int
    signature: "int vpci_remove_registers(struct vpci *vpci, unsigned int start,\n
      \                         unsigned int size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:373,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/vpci.c:379,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/vpci/vpci.c:389,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/vpci.c:390,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/vpci.c:394,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/vpci/vpci.c:395,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/vpci.c:400,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/vpci/vpci.c:404,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:408,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - sbdf
    - reg
    - size
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 414
    functionName: vpci_read_hw
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - pci_conf_read32
    - pci_conf_read8
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t vpci_read_hw(pci_sbdf_t sbdf, unsigned int reg,\n                             unsigned
      int size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:420,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/vpci/vpci.c:426,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/vpci/vpci.c:436,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/vpci.c:437,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/vpci.c:441,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/vpci/vpci.c:442,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/vpci.c:447,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/vpci/vpci.c:451,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - sbdf
    - reg
    - size
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: vpci_write_hw
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - pci_conf_write8
    - pci_conf_write16
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void vpci_write_hw(pci_sbdf_t sbdf, unsigned int reg, unsigned int
      size,\n                          uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask::mask
      Src: /src/xen/xen/drivers/vpci/vpci.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - new
    - size
    - offset
    argTypes:
    - uint32_t
    - uint32_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: merge_result
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - mask::mask
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t merge_result(uint32_t data, uint32_t new, unsigned int size,\n
      \                            unsigned int offset)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:485,1
    - Dst: read_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:495,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:496,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/vpci/vpci.c:498,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/vpci/vpci.c:500,1
    - Dst: translate_virtual_device
      Src: /src/xen/xen/drivers/vpci/vpci.c:503,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:507,1
    - Dst: vpci_read_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:508,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:511,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/vpci/vpci.c:514,1
    - Dst: vpci_register_cmp
      Src: /src/xen/xen/drivers/vpci/vpci.c:520,1
    - Dst: vpci_read_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:533,1
    - Dst: merge_result
      Src: /src/xen/xen/drivers/vpci/vpci.c:534,1
    - Dst: struct vpci_register*::read
      Src: /src/xen/xen/drivers/vpci/vpci.c:538,1
    - Dst: min
      Src: /src/xen/xen/drivers/vpci/vpci.c:546,1
    - Dst: max
      Src: /src/xen/xen/drivers/vpci/vpci.c:547,1
    - Dst: merge_result
      Src: /src/xen/xen/drivers/vpci/vpci.c:549,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:553,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:555,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:556,1
    - Dst: vpci_read_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:561,1
    - Dst: merge_result
      Src: /src/xen/xen/drivers/vpci/vpci.c:564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - sbdf
    - reg
    - size
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 568
    functionName: vpci_read
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 1
    functionsReached:
    - spin_unlock
    - max
    - list_for_each_entry
    - read_unlock
    - vpci_read_hw
    - vpci_register_cmp
    - struct vpci_register*::read
    - spin_lock
    - min
    - ASSERT
    - pci_get_pdev
    - is_hardware_domain
    - merge_result
    - translate_virtual_device
    - ASSERT_UNREACHABLE
    - read_lock
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t vpci_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:580,1
    - Dst: struct vpci_register*::read
      Src: /src/xen/xen/drivers/vpci/vpci.c:584,1
    - Dst: merge_result
      Src: /src/xen/xen/drivers/vpci/vpci.c:586,1
    - Dst: struct vpci_register*::write
      Src: /src/xen/xen/drivers/vpci/vpci.c:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - pdev
    - r
    - size
    - offset
    - data
    argTypes:
    - struct pci_dev*
    - struct vpci_register*
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 594
    functionName: vpci_write_helper
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 0
    functionsReached:
    - merge_result
    - struct vpci_register*::write
    - ASSERT
    - struct vpci_register*::read
    linkageType: ''
    returnType: void
    signature: "void vpci_write_helper(const struct pci_dev *pdev,\n                              const
      struct vpci_register *r, unsigned int size,\n                              unsigned
      int offset, uint32_t data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/vpci.c:606,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:619,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/vpci.c:620,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/vpci/vpci.c:622,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/vpci/vpci.c:624,1
    - Dst: translate_virtual_device
      Src: /src/xen/xen/drivers/vpci/vpci.c:627,1
    - Dst: pci_get_ro_map
      Src: /src/xen/xen/drivers/vpci/vpci.c:632,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:634,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/vpci/vpci.c:636,1
    - Dst: vpci_write_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:637,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/vpci.c:641,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/vpci/vpci.c:644,1
    - Dst: vpci_register_cmp
      Src: /src/xen/xen/drivers/vpci/vpci.c:650,1
    - Dst: vpci_write_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:661,1
    - Dst: min
      Src: /src/xen/xen/drivers/vpci/vpci.c:667,1
    - Dst: max
      Src: /src/xen/xen/drivers/vpci/vpci.c:668,1
    - Dst: vpci_write_helper
      Src: /src/xen/xen/drivers/vpci/vpci.c:669,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/vpci.c:674,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:676,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/vpci/vpci.c:677,1
    - Dst: vpci_write_hw
      Src: /src/xen/xen/drivers/vpci/vpci.c:681,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - sbdf
    - reg
    - size
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 683
    functionName: vpci_write
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 1
    functionsReached:
    - pci_get_ro_map
    - spin_unlock
    - max
    - list_for_each_entry
    - vpci_write_helper
    - write_unlock
    - vpci_register_cmp
    - spin_lock
    - min
    - ASSERT
    - pci_get_pdev
    - vpci_write_hw
    - test_bit
    - write_lock
    - translate_virtual_device
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: "void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size,\n
      \               uint32_t data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - reg
    - len
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 703
    functionName: vpci_access_allowed
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool vpci_access_allowed(unsigned int reg, unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vpci_access_allowed
      Src: /src/xen/xen/drivers/vpci/vpci.c:708,1
    - Dst: vpci_write
      Src: /src/xen/xen/drivers/vpci/vpci.c:712,1
    - Dst: min
      Src: /src/xen/xen/drivers/vpci/vpci.c:712,1
    - Dst: vpci_write
      Src: /src/xen/xen/drivers/vpci/vpci.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - sbdf
    - reg
    - len
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 719
    functionName: vpci_ecam_write
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 2
    functionsReached:
    - vpci_access_allowed
    - vpci_write
    - min
    linkageType: ''
    returnType: bool
    signature: "bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int
      len,\n                         unsigned long data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vpci_access_allowed
      Src: /src/xen/xen/drivers/vpci/vpci.c:724,1
    - Dst: vpci_read
      Src: /src/xen/xen/drivers/vpci/vpci.c:740,1
    - Dst: min
      Src: /src/xen/xen/drivers/vpci/vpci.c:740,1
    - Dst: vpci_read
      Src: /src/xen/xen/drivers/vpci/vpci.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - sbdf
    - reg
    - len
    - data
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 747
    functionName: vpci_ecam_read
    functionSourceFile: /src/xen/xen/drivers/vpci/vpci.c
    functionUses: 2
    functionsReached:
    - vpci_access_allowed
    - min
    - vpci_read
    linkageType: ''
    returnType: bool
    signature: "bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int
      len,\n                        unsigned long *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PCI_REBAR_CTRL_SIZE
      Src: /src/xen/xen/drivers/vpci/rebar.c:19,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/rebar.c:31,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/rebar.c:38,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/vpci/rebar.c:42,1
    - Dst: pci_size_mem_bar
      Src: /src/xen/xen/drivers/vpci/rebar.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 51
    functionName: rebar_ctrl_write
    functionSourceFile: /src/xen/xen/drivers/vpci/rebar.c
    functionUses: 0
    functionsReached:
    - pci_size_mem_bar
    - PCI_REBAR_CTRL_SIZE
    - gprintk
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void rebar_ctrl_write(const struct pci_dev *pdev,\n                                      unsigned
      int reg,\n                                      uint32_t val,\n                                      void
      *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vpci_remove_registers
      Src: /src/xen/xen/drivers/vpci/rebar.c:62,1
    - Dst: PCI_REBAR_CAP
      Src: /src/xen/xen/drivers/vpci/rebar.c:62,1
    - Dst: PCI_REBAR_CTRL
      Src: /src/xen/xen/drivers/vpci/rebar.c:63,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:66,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/rebar.c:68,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/rebar.c:76,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/rebar.c:86,1
    - Dst: PCI_REBAR_CTRL
      Src: /src/xen/xen/drivers/vpci/rebar.c:87,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:90,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pdev
    - hide
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 98
    functionName: cleanup_rebar
    functionSourceFile: /src/xen/xen/drivers/vpci/rebar.c
    functionUses: 0
    functionsReached:
    - vpci_remove_registers
    - PCI_REBAR_CAP
    - printk
    - PCI_REBAR_CTRL
    - vpci_add_register
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: int cleanup_rebar(const struct pci_dev *pdev, bool hide)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/vpci/rebar.c:104,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/rebar.c:110,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:112,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/rebar.c:117,1
    - Dst: PCI_REBAR_CTRL
      Src: /src/xen/xen/drivers/vpci/rebar.c:117,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/vpci/rebar.c:118,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/rebar.c:129,1
    - Dst: PCI_REBAR_CTRL
      Src: /src/xen/xen/drivers/vpci/rebar.c:129,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:133,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:141,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/rebar.c:146,1
    - Dst: PCI_REBAR_CTRL
      Src: /src/xen/xen/drivers/vpci/rebar.c:147,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/rebar.c:150,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/vpci/rebar.c:156,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/rebar.c:156,1
    - Dst: PCI_REBAR_CAP
      Src: /src/xen/xen/drivers/vpci/rebar.c:157,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/vpci/rebar.c:160,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/drivers/vpci/rebar.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 165
    functionName: init_rebar
    functionSourceFile: /src/xen/xen/drivers/vpci/rebar.c
    functionUses: 0
    functionsReached:
    - ISOLATE_LSB
    - PCI_REBAR_CAP
    - pci_conf_read32
    - pci_find_ext_capability
    - printk
    - PCI_REBAR_CTRL
    - vpci_add_register
    - is_hardware_domain
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int init_rebar(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: MAPPABLE_BAR
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPABLE_BAR(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:47,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:49,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/drivers/vpci/header.c:63,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/header.c:65,1
    - Dst: xsm_iomem_mapping
      Src: /src/xen/xen/drivers/vpci/header.c:71,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/header.c:74,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/drivers/vpci/header.c:89,1
    - Dst: _gfn
      Src: /src/xen/xen/drivers/vpci/header.c:89,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:89,1
    - Dst: unmap_mmio_regions
      Src: /src/xen/xen/drivers/vpci/header.c:90,1
    - Dst: _gfn
      Src: /src/xen/xen/drivers/vpci/header.c:90,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:90,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/header.c:98,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:104,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/drivers/vpci/header.c:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - s
    - e
    - data
    - c
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 112
    functionName: map_range
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 1
    functionsReached:
    - xsm_iomem_mapping
    - _gfn
    - map_mmio_regions
    - _mfn
    - unmap_mmio_regions
    - iomem_access_permitted
    - ASSERT
    - printk
    - PFN_DOWN
    - general_preempt_check
    linkageType: ''
    returnType: int
    signature: "int map_range(\n    unsigned long s, unsigned long e, void *data,
      unsigned long *c)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:126,1
    - Dst: MAPPABLE_BAR
      Src: /src/xen/xen/drivers/vpci/header.c:130,1
    - Dst: pci_check_bar
      Src: /src/xen/xen/drivers/vpci/header.c:140,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:140,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:140,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:141,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:141,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/vpci/header.c:144,1
    - Dst: pci_check_bar
      Src: /src/xen/xen/drivers/vpci/header.c:150,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:150,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:150,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:151,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:151,1
    - Dst: vpci_make_msix_hole
      Src: /src/xen/xen/drivers/vpci/header.c:164,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/header.c:170,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/vpci/header.c:174,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 3
    argNames:
    - pdev
    - cmd
    - rom_only
    argTypes:
    - struct pci_dev*
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 175
    functionName: modify_decoding
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - _mfn
    - MAPPABLE_BAR
    - pci_check_bar
    - vpci_make_msix_hole
    - PFN_DOWN
    - pci_conf_write16
    - ASSERT_UNREACHABLE
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void modify_decoding(const struct pci_dev *pdev, uint16_t cmd,\n                            bool
      rom_only)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/drivers/vpci/header.c:186,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:191,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:196,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:206,1
    - Dst: rangeset_consume_ranges
      Src: /src/xen/xen/drivers/vpci/header.c:209,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:213,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/header.c:219,1
    - Dst: modify_decoding
      Src: /src/xen/xen/drivers/vpci/header.c:221,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:223,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:226,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:227,1
    - Dst: rangeset_purge
      Src: /src/xen/xen/drivers/vpci/header.c:228,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:232,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/header.c:234,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/vpci/header.c:235,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/vpci/header.c:242,1
    - Dst: modify_decoding
      Src: /src/xen/xen/drivers/vpci/header.c:243,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:244,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:246,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct vcpu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 249
    functionName: vpci_process_pending
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - ARRAY_SIZE
    - read_unlock
    - rangeset_consume_ranges
    - is_hardware_domain
    - spin_lock
    - modify_decoding
    - rangeset_purge
    - rangeset_is_empty
    - domain_crash
    - read_lock
    linkageType: ''
    returnType: bool
    signature: bool vpci_process_pending(struct vcpu *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:258,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/header.c:258,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:260,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:265,1
    - Dst: rangeset_consume_ranges
      Src: /src/xen/xen/drivers/vpci/header.c:268,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/vpci/header.c:276,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/vpci/header.c:277,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/vpci/header.c:278,1
    - Dst: modify_decoding
      Src: /src/xen/xen/drivers/vpci/header.c:282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - d
    - pdev
    - cmd
    argTypes:
    - struct domain*
    - struct pci_dev*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 251
    functionDepth: 5
    functionLinenumber: 251
    functionLinenumberEnd: 285
    functionName: apply_map
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - ARRAY_SIZE
    - write_unlock
    - rangeset_consume_ranges
    - ASSERT
    - modify_decoding
    - process_pending_softirqs
    - rangeset_is_empty
    - write_lock
    linkageType: ''
    returnType: int
    signature: "int apply_map(struct domain *d, const struct pci_dev *pdev,\n                            uint16_t
      cmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise_softirq
      Src: /src/xen/xen/drivers/vpci/header.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pdev
    - cmd
    - rom_only
    argTypes:
    - struct pci_dev*
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: defer_map
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - raise_softirq
    linkageType: ''
    returnType: void
    signature: void defer_map(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:317,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/header.c:317,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:331,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:334,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:335,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:336,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:337,1
    - Dst: MAPPABLE_BAR
      Src: /src/xen/xen/drivers/vpci/header.c:342,1
    - Dst: pci_check_bar
      Src: /src/xen/xen/drivers/vpci/header.c:349,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:349,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/vpci/header.c:349,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/header.c:351,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:357,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:357,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/drivers/vpci/header.c:364,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/drivers/vpci/header.c:364,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:366,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/drivers/vpci/header.c:372,1
    - Dst: printk
      Src: /src/xen/xen/drivers/vpci/header.c:375,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:385,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/vpci/header.c:388,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:391,1
    - Dst: pci_sanitize_bar_memory
      Src: /src/xen/xen/drivers/vpci/header.c:398,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:401,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:409,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:411,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/header.c:411,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:412,1
    - Dst: vmsix_table_addr
      Src: /src/xen/xen/drivers/vpci/header.c:412,1
    - Dst: vmsix_table_size
      Src: /src/xen/xen/drivers/vpci/header.c:413,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:415,1
    - Dst: rangeset_is_empty
      Src: /src/xen/xen/drivers/vpci/header.c:419,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/vpci/header.c:422,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:425,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:459,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:462,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:463,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:469,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/drivers/vpci/header.c:473,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/vpci/header.c:484,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:487,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/header.c:496,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:512,1
    - Dst: apply_map
      Src: /src/xen/xen/drivers/vpci/header.c:513,1
    - Dst: defer_map
      Src: /src/xen/xen/drivers/vpci/header.c:516,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 76
    argCount: 3
    argNames:
    - pdev
    - cmd
    - rom_only
    argTypes:
    - struct pci_dev*
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 519
    functionName: modify_bars
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - rw_is_write_locked
    - vmsix_table_addr
    - gprintk
    - PFN_DOWN
    - defer_map
    - ARRAY_SIZE
    - rangeset_remove_range
    - rangeset_overlaps_range
    - printk
    - rangeset_is_empty
    - apply_map
    - is_hardware_domain
    - _mfn
    - MAPPABLE_BAR
    - pci_check_bar
    - ASSERT
    - rangeset_add_range
    - vmsix_table_size
    - pci_sanitize_bar_memory
    - PAGE_OFFSET
    linkageType: ''
    returnType: int
    signature: int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:459,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:462,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/vpci/header.c:463,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/vpci/header.c:469,1
    - Dst: rangeset_overlaps_range
      Src: /src/xen/xen/drivers/vpci/header.c:473,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/vpci/header.c:484,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:487,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 494
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - rangeset_remove_range
    - gprintk
    - rangeset_overlaps_range
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, tmp )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/header.c:526,1
    - Dst: modify_bars
      Src: /src/xen/xen/drivers/vpci/header.c:549,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/header.c:551,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - pdev
    - reg
    - cmd
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 521
    functionDepth: 7
    functionLinenumber: 521
    functionLinenumberEnd: 552
    functionName: cmd_write
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - modify_bars
    - pci_conf_write16
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: "void cmd_write(\n    const struct pci_dev *pdev, unsigned int reg,
      uint32_t cmd, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: guest_cmd_read
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t guest_cmd_read(\n    const struct pci_dev *pdev, unsigned
      int reg, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:568,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/header.c:568,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:572,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:587,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/vpci/header.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 612
    functionName: bar_write
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - gprintk
    - is_hardware_domain
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void bar_write(\n    const struct pci_dev *pdev, unsigned int reg,
      uint32_t val, void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:624,1
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 654
    functionName: guest_mem_bar_write
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - gprintk
    linkageType: ''
    returnType: void
    signature: "void guest_mem_bar_write(const struct pci_dev *pdev,\n                                         unsigned
      int reg, uint32_t val,\n                                         void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pdev
    - reg
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: guest_mem_bar_read
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t guest_mem_bar_read(const struct pci_dev *pdev,\n                                            unsigned
      int reg, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gprintk
      Src: /src/xen/xen/drivers/vpci/header.c:691,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/vpci/header.c:711,1
    - Dst: modify_bars
      Src: /src/xen/xen/drivers/vpci/header.c:717,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - pdev
    - reg
    - val
    - data
    argTypes:
    - struct pci_dev*
    - unsigned int
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 677
    functionDepth: 7
    functionLinenumber: 677
    functionLinenumberEnd: 733
    functionName: rom_write
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - gprintk
    - modify_bars
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void rom_write(\n    const struct pci_dev *pdev, unsigned int reg,
      uint32_t val, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/drivers/vpci/header.c:740,1
    - Dst: rangeset_new
      Src: /src/xen/xen/drivers/vpci/header.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pdev
    - bar
    - i
    argTypes:
    - struct pci_dev*
    - struct vpci_bar*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 745
    functionName: bar_add_rangeset
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 0
    functionsReached:
    - snprintf
    - rangeset_new
    linkageType: ''
    returnType: int
    signature: "int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar,\n
      \                           unsigned int i)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/vpci/header.c:755,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/vpci/header.c:757,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/vpci/header.c:757,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/vpci/header.c:759,1
    - Dst: vpci_add_register_mask
      Src: /src/xen/xen/drivers/vpci/header.c:781,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/vpci/header.c:798,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/header.c:815,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:825,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/header.c:836,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/vpci/header.c:840,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:842,1
    - Dst: bar_add_rangeset
      Src: /src/xen/xen/drivers/vpci/header.c:856,1
    - Dst: pci_size_mem_bar
      Src: /src/xen/xen/drivers/vpci/header.c:860,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:871,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:885,1
    - Dst: pci_size_mem_bar
      Src: /src/xen/xen/drivers/vpci/header.c:894,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/vpci/header.c:905,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:908,1
    - Dst: bar_add_rangeset
      Src: /src/xen/xen/drivers/vpci/header.c:914,1
    - Dst: vpci_add_register
      Src: /src/xen/xen/drivers/vpci/header.c:923,1
    - Dst: modify_bars
      Src: /src/xen/xen/drivers/vpci/header.c:929,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/vpci/header.c:932,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 103
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 747
    functionDepth: 7
    functionLinenumber: 747
    functionLinenumberEnd: 934
    functionName: vpci_init_header
    functionSourceFile: /src/xen/xen/drivers/vpci/header.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - rw_is_write_locked
    - bar_add_rangeset
    - vpci_add_register
    - pci_size_mem_bar
    - IS_ENABLED
    - ASSERT
    - pci_conf_read32
    - modify_bars
    - pci_conf_read8
    - pci_conf_write16
    - is_hardware_domain
    - vpci_add_register_mask
    linkageType: ''
    returnType: int
    signature: int vpci_init_header(struct pci_dev *pdev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/utility.c:69,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 2
    argNames:
    - policy
    - table
    argTypes:
    - struct cpufreq_policy*
    - struct cpufreq_frequency_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 81
    functionName: cpufreq_frequency_table_cpuinfo
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 2
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: "int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy,\n
      \                                   struct cpufreq_frequency_table *table)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/utility.c:90,1
    - Dst: cpufreq_verify_within_limits
      Src: /src/xen/xen/drivers/cpufreq/utility.c:93,1
    - Dst: cpufreq_verify_within_limits
      Src: /src/xen/xen/drivers/cpufreq/utility.c:109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - policy
    - table
    argTypes:
    - struct cpufreq_policy*
    - struct cpufreq_frequency_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: cpufreq_frequency_table_verify
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 2
    functionsReached:
    - cpu_online
    - cpufreq_verify_within_limits
    linkageType: ''
    returnType: int
    signature: "int cpufreq_frequency_table_verify(struct cpufreq_policy *policy,\n
      \                                  struct cpufreq_frequency_table *table)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/utility.c:140,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 5
    argNames:
    - policy
    - table
    - target_freq
    - relation
    - index
    argTypes:
    - struct cpufreq_policy*
    - struct cpufreq_frequency_table*
    - unsigned int
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 186
    functionName: cpufreq_frequency_table_target
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 2
    functionsReached:
    - cpu_online
    linkageType: ''
    returnType: int
    signature: "int cpufreq_frequency_table_target(struct cpufreq_policy *policy,\n
      \                                  struct cpufreq_frequency_table *table,\n
      \                                  unsigned int target_freq,\n                                   unsigned
      int relation,\n                                   unsigned int *index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/utility.c:199,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/utility.c:203,1
    - Dst: TRACE_TIME
      Src: /src/xen/xen/drivers/cpufreq/utility.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - policy
    - target_freq
    - relation
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: __cpufreq_driver_target
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - alternative_call
    - TRACE_TIME
    linkageType: ''
    returnType: int
    signature: "int __cpufreq_driver_target(struct cpufreq_policy *policy,\n                            unsigned
      int target_freq,\n                            unsigned int relation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/utility.c:217,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/utility.c:217,1
    - Dst: get_measured_perf
      Src: /src/xen/xen/drivers/cpufreq/utility.c:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - cpu
    - flag
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 225
    functionName: cpufreq_driver_getavg
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - per_cpu
    - get_measured_perf
    linkageType: ''
    returnType: int
    signature: int cpufreq_driver_getavg(unsigned int cpu, unsigned int flag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/utility.c:240,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/utility.c:246,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/utility.c:255,1
    - Dst: __cpufreq_governor
      Src: /src/xen/xen/drivers/cpufreq/utility.c:263,1
    - Dst: __cpufreq_governor
      Src: /src/xen/xen/drivers/cpufreq/utility.c:267,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/utility.c:268,1
    - Dst: __cpufreq_governor
      Src: /src/xen/xen/drivers/cpufreq/utility.c:274,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/utility.c:275,1
    - Dst: __cpufreq_governor
      Src: /src/xen/xen/drivers/cpufreq/utility.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - data
    - policy
    argTypes:
    - struct cpufreq_policy*
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 284
    functionName: __cpufreq_set_policy
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 0
    functionsReached:
    - printk
    - alternative_call
    - memcpy
    - __cpufreq_governor
    linkageType: ''
    returnType: int
    signature: "int __cpufreq_set_policy(struct cpufreq_policy *data,\n                                struct
      cpufreq_policy *policy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/cpufreq/utility.c:288,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/cpufreq/utility.c:291,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/cpufreq/utility.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - gov
    argTypes:
    - struct cpufreq_governor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 298
    functionName: cpufreq_policy_from_governor
    functionSourceFile: /src/xen/xen/drivers/cpufreq/utility.c
    functionUses: 1
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cpufreq_policy_from_governor(const struct cpufreq_governor
      *gov)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:35,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:36,1
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:36,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:41,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:42,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:45,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:48,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:49,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:51,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:52,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:55,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:55,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 65
    functionName: cpufreq_governor_userspace
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - __cpufreq_driver_target
    - per_cpu
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int cpufreq_governor_userspace(\n    struct cpufreq_policy *policy,
      unsigned int event)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:72,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:72,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:75,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - cpu
    - freq
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: write_userspace_scaling_setspeed
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - __cpufreq_driver_target
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int write_userspace_scaling_setspeed(unsigned int cpu, unsigned int
      freq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:89,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: cpufreq_userspace_handle_option
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - strcmp
    - simple_strtoul
    linkageType: ''
    returnType: bool
    signature: bool cpufreq_userspace_handle_option(const char *name, const char *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: cpufreq_userspace_cpu_callback
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: int
    signature: "int cpufreq_userspace_cpu_callback(\n    struct notifier_block *nfb,
      unsigned long action, void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:128,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:129,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:130,1
    - Dst: cpufreq_register_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: cpufreq_gov_userspace_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - for_each_online_cpu
    - cpufreq_register_governor
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int cpufreq_gov_userspace_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: cpufreq_governor_performance
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - __cpufreq_driver_target
    linkageType: ''
    returnType: int
    signature: "int cpufreq_governor_performance(\n    struct cpufreq_policy *policy,
      unsigned int event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: cpufreq_gov_performance_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_governor
    linkageType: ''
    returnType: int
    signature: int cpufreq_gov_performance_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: cpufreq_governor_powersave
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - __cpufreq_driver_target
    linkageType: ''
    returnType: int
    signature: "int cpufreq_governor_powersave(\n    struct cpufreq_policy *policy,
      unsigned int event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: cpufreq_gov_powersave_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_misc_governors.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_governor
    linkageType: ''
    returnType: int
    signature: int cpufreq_gov_powersave_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:63,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:64,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sampling_rate
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: write_ondemand_sampling_rate
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - MICROSECS
    linkageType: ''
    returnType: int
    signature: int write_ondemand_sampling_rate(unsigned int sampling_rate)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - up_threshold
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: write_ondemand_up_threshold
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int write_ondemand_up_threshold(unsigned int up_threshold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:90,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:91,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - sampling_rate_max
    - sampling_rate_min
    - sampling_rate
    - up_threshold
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 96
    functionName: get_cpufreq_ondemand_para
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - MICROSECS
    linkageType: ''
    returnType: int
    signature: "int get_cpufreq_ondemand_para(uint32_t *sampling_rate_max,\n                              uint32_t
      *sampling_rate_min,\n                              uint32_t *sampling_rate,\n
      \                             uint32_t *up_threshold)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:113,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:114,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:118,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:127,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:132,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:133,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:137,1
    - Dst: cpufreq_driver_getavg
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:142,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:154,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - this_dbs_info
    argTypes:
    - struct cpu_dbs_info_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 176
    functionName: dbs_check_cpu
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - for_each_cpu
    - get_cpu_idle_time
    - __cpufreq_driver_target
    - cpufreq_driver_getavg
    - per_cpu
    - unlikely
    - NOW
    linkageType: ''
    returnType: void
    signature: void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbs_check_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:185,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:187,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:187,1
    - Dst: align_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:188,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbs
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: do_dbs_timer
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - align_timer
    - set_timer
    - per_cpu
    - dbs_check_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void do_dbs_timer(void *dbs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:196,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:196,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:199,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:199,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dbs_info
    argTypes:
    - struct cpu_dbs_info_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: dbs_timer_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - set_timer
    - per_cpu
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void dbs_timer_init(struct cpu_dbs_info_s *dbs_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmpxchg
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:216,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:217,1
    - Dst: kill_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:219,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbs_info
    argTypes:
    - struct cpu_dbs_info_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 208
    functionDepth: 6
    functionLinenumber: 208
    functionLinenumberEnd: 220
    functionName: dbs_timer_exit
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - kill_timer
    - cpu_relax
    - cmpxchg
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void dbs_timer_exit(struct cpu_dbs_info_s *dbs_info)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:229,1
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:233,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:238,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:248,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:250,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:253,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:254,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:271,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:276,1
    - Dst: dbs_timer_init
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:283,1
    - Dst: dbs_timer_exit
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:292,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:300,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:305,1
    - Dst: __cpufreq_driver_target
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:308,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 2
    argNames:
    - policy
    - event
    argTypes:
    - struct cpufreq_policy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 222
    functionDepth: 7
    functionLinenumber: 222
    functionLinenumberEnd: 313
    functionName: cpufreq_governor_dbs
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - for_each_cpu
    - get_cpu_idle_time
    - dbs_timer_init
    - dbs_timer_exit
    - __cpufreq_driver_target
    - per_cpu
    - printk
    - NOW
    linkageType: ''
    returnType: int
    signature: "int cpufreq_governor_dbs(\n    struct cpufreq_policy *policy, unsigned
      int event)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:318,1
    - Dst: simple_strtoull
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:320,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:320,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:322,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:324,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:328,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:335,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:342,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:344,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 357
    functionName: cpufreq_dbs_handle_option
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - MICROSECS
    - simple_strtoull
    - printk
    - strcmp
    - simple_strtoul
    linkageType: ''
    returnType: bool
    signature: "bool cpufreq_dbs_handle_option(\n    const char *name, const char
      *val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_register_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: cpufreq_gov_dbs_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 0
    functionsReached:
    - cpufreq_register_governor
    linkageType: ''
    returnType: int
    signature: int cpufreq_gov_dbs_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:378,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:380,1
    - Dst: stop_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:382,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 384
    functionName: cpufreq_dbs_timer_suspend
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 2
    functionsReached:
    - smp_processor_id
    - stop_timer
    - per_cpu
    linkageType: ''
    returnType: void
    signature: void cpufreq_dbs_timer_suspend(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:388,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:389,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:393,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:394,1
    - Dst: cmpxchg
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:398,1
    - Dst: struct timer*::function
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:400,1
    - Dst: cmpxchg
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:401,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:404,1
    - Dst: align_timer
      Src: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 386
    functionDepth: 6
    functionLinenumber: 386
    functionLinenumberEnd: 406
    functionName: cpufreq_dbs_timer_resume
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq_ondemand.c
    functionUses: 2
    functionsReached:
    - struct timer*::function
    - smp_processor_id
    - align_timer
    - set_timer
    - per_cpu
    - cmpxchg
    - NOW
    linkageType: ''
    returnType: void
    signature: void cpufreq_dbs_timer_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - option
    argTypes:
    - enum cpufreq_xen_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: cpufreq_opts_contain
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool cpufreq_opts_contain(enum cpufreq_xen_opt option)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_opts_contain
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:90,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - option
    argTypes:
    - enum cpufreq_xen_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 113
    functionName: handle_cpufreq_cmdline
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - cpufreq_opts_contain
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: int handle_cpufreq_cmdline(enum cpufreq_xen_opt option)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:117,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:124,1
    - Dst: parse_bool
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:125,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:127,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:135,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:144,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:147,1
    - Dst: strpbrk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:149,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:151,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:153,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:156,1
    - Dst: handle_cpufreq_cmdline
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:158,1
    - Dst: cpufreq_cmdline_parse
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:160,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:162,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:163,1
    - Dst: handle_cpufreq_cmdline
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:165,1
    - Dst: hwp_cmdline_parse
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:167,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:169,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:170,1
    - Dst: handle_cpufreq_cmdline
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:172,1
    - Dst: amd_cppc_cmdline_parse
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:174,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 43
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 183
    functionName: setup_cpufreq_option
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - cmdline_strcmp
    - ARRAY_SIZE
    - handle_cpufreq_cmdline
    - strpbrk
    - hwp_cmdline_parse
    - IS_ENABLED
    - strchr
    - cpufreq_cmdline_parse
    - parse_bool
    - amd_cppc_cmdline_parse
    linkageType: ''
    returnType: int
    signature: int setup_cpufreq_option(const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:195,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - governor
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: __find_governor
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct cpufreq_governor
    signature: struct cpufreq_governor *__find_governor(const char *governor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __find_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:207,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - governor
    argTypes:
    - struct cpufreq_governor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: cpufreq_register_governor
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 5
    functionsReached:
    - list_add
    - __find_governor
    linkageType: ''
    returnType: int
    signature: int cpufreq_register_governor(struct cpufreq_governor *governor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:220,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:220,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:229,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 235
    functionName: cpufreq_limit_change
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - cpu_online
    - memcpy
    - per_cpu
    - __cpufreq_set_policy
    linkageType: ''
    returnType: int
    signature: int cpufreq_limit_change(unsigned int cpu)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - cpu
    - shared_type
    - domain_info
    argTypes:
    - unsigned int
    - unsigned int*
    - struct xen_psd_package**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: get_psd_info
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int get_psd_info(unsigned int cpu, unsigned int *shared_type,\n                        const
      struct xen_psd_package **domain_info)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:276,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:285,1
    - Dst: get_psd_info
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:288,1
    - Dst: list_for_each
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:297,1
    - Dst: list_entry
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:298,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:306,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:310,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:311,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:316,1
    - Dst: cpumask_first
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:322,1
    - Dst: get_psd_info
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:323,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:332,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:344,1
    - Dst: zalloc_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:350,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:351,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:357,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:359,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:361,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:362,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:363,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:367,1
    - Dst: cpumask_first
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:369,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:370,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:372,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:374,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:377,1
    - Dst: cpumask_set_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:378,1
    - Dst: cpufreq_statistic_init
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:380,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:384,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:387,1
    - Dst: cpufreq_cmdline_common_para
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:396,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:398,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:406,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:408,1
    - Dst: cpufreq_statistic_exit
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:418,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:420,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:421,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:422,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:424,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:425,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:426,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:427,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:430,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:431,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:432,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:433,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 121
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 437
    functionName: cpufreq_add_cpu
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 2
    functionsReached:
    - __cpufreq_set_policy
    - alternative_call
    - get_psd_info
    - list_add
    - xfree
    - list_for_each
    - cpufreq_statistic_exit
    - xzalloc
    - free_cpumask_var
    - zalloc_cpumask_var
    - list_del
    - printk
    - cpufreq_cmdline_common_para
    - cpumask_clear_cpu
    - cpu_online
    - cpufreq_statistic_init
    - cpumask_first
    - cpumask_weight
    - cpumask_empty
    - list_entry
    - per_cpu
    - cpumask_set_cpu
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cpufreq_add_cpu(unsigned int cpu)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:451,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:457,1
    - Dst: get_psd_info
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:460,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:468,1
    - Dst: list_for_each
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:470,1
    - Dst: list_entry
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:471,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:483,1
    - Dst: __cpufreq_governor
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:485,1
    - Dst: cpufreq_statistic_exit
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:487,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:488,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:489,1
    - Dst: cpumask_clear_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:490,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:492,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:493,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:494,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:495,1
    - Dst: cpumask_empty
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:500,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:501,1
    - Dst: free_cpumask_var
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:502,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:503,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:507,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 509
    functionName: cpufreq_del_cpu
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - cpufreq_statistic_exit
    - free_cpumask_var
    - cpumask_empty
    - list_entry
    - cpumask_clear_cpu
    - alternative_call
    - list_del
    - per_cpu
    - printk
    - get_psd_info
    - cpumask_weight
    - xfree
    - __cpufreq_governor
    - list_for_each
    linkageType: ''
    returnType: int
    signature: int cpufreq_del_cpu(unsigned int cpu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct xen_pct_register*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: print_PCT
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_PCT(struct xen_pct_register *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:522,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - count
    argTypes:
    - struct xen_processor_px*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 534
    functionName: print_PSS
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_PSS(struct xen_processor_px *ptr, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct xen_psd_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 542
    functionName: print_PSD
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_PSD( struct xen_psd_package *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - platform_limit
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 547
    functionName: print_PPC
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_PPC(unsigned int platform_limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - shared_type
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 558
    functionName: check_psd_pminfo
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_psd_pminfo(unsigned int shared_type)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_id
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:566,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:573,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:579,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:601,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:603,1
    - Dst: print_PCT
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:608,1
    - Dst: print_PCT
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:609,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:622,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:628,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:630,1
    - Dst: print_PSS
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:637,1
    - Dst: check_psd_pminfo
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:642,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:649,1
    - Dst: print_PSD
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:653,1
    - Dst: print_PPC
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:661,1
    - Dst: cpufreq_limit_change
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:665,1
    - Dst: cpufreq_cpu_init
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:674,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 2
    argNames:
    - acpi_id
    - perf
    argTypes:
    - uint32_t
    - struct xen_processor_performance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 680
    functionName: set_px_pminfo
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 2
    functionsReached:
    - xzalloc
    - xmalloc_array
    - print_PSS
    - print_PPC
    - copy_from_guest
    - print_PSD
    - XFREE
    - check_psd_pminfo
    - get_cpu_id
    - print_PCT
    - printk
    - cpufreq_limit_change
    - memcpy
    - cpufreq_cpu_init
    linkageType: ''
    returnType: int
    signature: int set_px_pminfo(uint32_t acpi_id, struct xen_processor_performance
      *perf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:687,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:691,1
    - Dst: arch_acpi_set_pdc_bits
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:705,1
    - Dst: __copy_to_guest_offset
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:707,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - acpi_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 711
    functionName: acpi_set_pdc_bits
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 2
    functionsReached:
    - __copy_to_guest_offset
    - arch_acpi_set_pdc_bits
    - copy_from_guest_offset
    - copy_from_guest
    linkageType: ''
    returnType: int
    signature: int acpi_set_pdc_bits(unsigned int acpi_id, XEN_GUEST_HANDLE(uint32)
      pdc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cppc_data
    argTypes:
    - struct xen_processor_cppc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 721
    functionName: print_CPPC
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void print_CPPC(const struct xen_processor_cppc *cppc_data)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_id
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:729,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:743,1
    - Dst: xvzalloc
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:749,1
    - Dst: check_psd_pminfo
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:762,1
    - Dst: printk_once
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:772,1
    - Dst: printk_once
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:796,1
    - Dst: printk_once
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:807,1
    - Dst: print_PSD
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:821,1
    - Dst: print_CPPC
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:822,1
    - Dst: cpufreq_cpu_init
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:826,1
    - Dst: printk_once
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:828,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 60
    argCount: 2
    argNames:
    - acpi_id
    - cppc_data
    argTypes:
    - unsigned int
    - struct xen_processor_cppc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 835
    functionName: set_cppc_pminfo
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 2
    functionsReached:
    - print_CPPC
    - print_PSD
    - check_psd_pminfo
    - printk_once
    - get_cpu_id
    - printk
    - xvzalloc
    - cpufreq_cpu_init
    linkageType: ''
    returnType: int
    signature: "int set_cppc_pminfo(unsigned int acpi_id,\n                    const
      struct xen_processor_cppc *cppc_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - new_policy
    argTypes:
    - struct cpufreq_policy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 843
    functionName: cpufreq_cmdline_common_para
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cpufreq_cmdline_common_para(struct cpufreq_policy *new_policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:847,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:848,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:852,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:853,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:857,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - name
    - val
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 863
    functionName: cpufreq_handle_common_option
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - strcmp
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int cpufreq_handle_common_option(const char *name, const char *val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:880,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:884,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:889,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:895,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:896,1
    - Dst: cpufreq_handle_common_option
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:908,1
    - Dst: handle_option
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:910,1
    - Dst: printk
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:912,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 921
    functionName: cpufreq_cmdline_parse
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 1
    functionsReached:
    - handle_option
    - ARRAY_SIZE
    - strchr
    - strlcpy
    - printk
    - cpufreq_handle_common_option
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cpufreq_cmdline_parse(const char *s, const char *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpufreq_add_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:932,1
    - Dst: cpufreq_del_cpu
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 942
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 8
    functionsReached:
    - cpufreq_del_cpu
    - cpufreq_add_cpu
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/drivers/cpufreq/cpufreq.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 952
    functionName: cpufreq_presmp_init
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    linkageType: ''
    returnType: int
    signature: int cpufreq_presmp_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 1
    argNames:
    - driver_data
    argTypes:
    - struct cpufreq_driver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 968
    functionName: cpufreq_register_driver
    functionSourceFile: /src/xen/xen/drivers/cpufreq/cpufreq.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpufreq_register_driver(const struct cpufreq_driver *driver_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_ENTRY
      Src: /src/xen/xen/drivers/acpi/hwregs.c:69,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - register_id
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: acpi_hw_get_bit_register_info
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 0
    functionsReached:
    - ACPI_FUNCTION_ENTRY
    - ACPI_DEBUG_PRINT
    linkageType: ''
    returnType: struct acpi_bit_register_info
    signature: 'struct acpi_bit_register_info *

      acpi_hw_get_bit_register_info(u32 register_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:100,1
    - Dst: acpi_hw_get_bit_register_info
      Src: /src/xen/xen/drivers/acpi/hwregs.c:104,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:106,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:111,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:114,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:124,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - register_id
    - return_value
    argTypes:
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: acpi_get_register
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 1
    functionsReached:
    - ACPI_SUCCESS
    - ACPI_DEBUG_PRINT
    - ACPI_FUNCTION_TRACE
    - acpi_hw_register_read
    - return_ACPI_STATUS
    - acpi_hw_get_bit_register_info
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_get_register(u32 register_id, u32 * return_value)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE_U32
      Src: /src/xen/xen/drivers/acpi/hwregs.c:151,1
    - Dst: acpi_hw_get_bit_register_info
      Src: /src/xen/xen/drivers/acpi/hwregs.c:155,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:157,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:159,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:164,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:166,1
    - Dst: ACPI_REGISTER_PREPARE_BITS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:186,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:191,1
    - Dst: ACPI_REGISTER_INSERT_VALUE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:199,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:204,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:215,1
    - Dst: ACPI_REGISTER_INSERT_VALUE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:218,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:223,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:230,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:232,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:237,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:240,1
    - Dst: ACPI_REGISTER_INSERT_VALUE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:244,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:249,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:252,1
    - Dst: acpi_hw_register_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:256,1
    - Dst: ACPI_DEBUG_EXEC
      Src: /src/xen/xen/drivers/acpi/hwregs.c:268,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:272,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - register_id
    - value
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 276
    functionName: acpi_set_register
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 3
    functionsReached:
    - ACPI_FORMAT_UINT64
    - ACPI_DEBUG_EXEC
    - ACPI_DEBUG_PRINT
    - ACPI_FAILURE
    - ACPI_FUNCTION_TRACE_U32
    - acpi_hw_register_read
    - acpi_hw_register_write
    - return_ACPI_STATUS
    - acpi_hw_get_bit_register_info
    - ACPI_REGISTER_PREPARE_BITS
    - ACPI_REGISTER_INSERT_VALUE
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_set_register(u32 register_id, u32 value)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:297,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:303,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:305,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:312,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:320,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:321,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:328,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:335,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:337,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:342,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:350,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:357,1
    - Dst: acpi_os_read_port
      Src: /src/xen/xen/drivers/acpi/hwregs.c:364,1
    - Dst: acpi_hw_low_level_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:370,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:376,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:383,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:387,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - register_id
    - return_value
    argTypes:
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 388
    functionName: acpi_hw_register_read
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 3
    functionsReached:
    - ACPI_SUCCESS
    - ACPI_DEBUG_PRINT
    - ACPI_FAILURE
    - acpi_hw_low_level_read
    - ACPI_FUNCTION_TRACE
    - acpi_os_read_port
    - return_ACPI_STATUS
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_hw_register_read(u32 register_id, u32 * return_value)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:421,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:428,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:430,1
    - Dst: ACPI_INSERT_BITS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:436,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:442,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:444,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:451,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:458,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:459,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:466,1
    - Dst: acpi_hw_register_read
      Src: /src/xen/xen/drivers/acpi/hwregs.c:474,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:476,1
    - Dst: ACPI_INSERT_BITS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:482,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:488,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/hwregs.c:490,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:495,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:502,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:509,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:516,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:523,1
    - Dst: acpi_os_write_port
      Src: /src/xen/xen/drivers/acpi/hwregs.c:532,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/hwregs.c:538,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/hwregs.c:549,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - register_id
    - value
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 550
    functionName: acpi_hw_register_write
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 2
    functionsReached:
    - ACPI_FAILURE
    - ACPI_FUNCTION_TRACE
    - acpi_hw_register_read
    - acpi_hw_low_level_write
    - ACPI_INSERT_BITS
    - return_ACPI_STATUS
    - acpi_os_write_port
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_hw_register_write(u32 register_id, u32 value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_NAME
      Src: /src/xen/xen/drivers/acpi/hwregs.c:572,1
    - Dst: ACPI_MOVE_64_TO_64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:585,1
    - Dst: acpi_os_read_memory
      Src: /src/xen/xen/drivers/acpi/hwregs.c:598,1
    - Dst: acpi_os_read_port
      Src: /src/xen/xen/drivers/acpi/hwregs.c:604,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:613,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:616,1
    - Dst: acpi_ut_get_region_name
      Src: /src/xen/xen/drivers/acpi/hwregs.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - width
    - value
    - reg
    argTypes:
    - u32
    - u32*
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 620
    functionName: acpi_hw_low_level_read
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 1
    functionsReached:
    - acpi_os_read_memory
    - ACPI_FORMAT_UINT64
    - ACPI_DEBUG_PRINT
    - acpi_ut_get_region_name
    - ACPI_MOVE_64_TO_64
    - acpi_os_read_port
    - ACPI_FUNCTION_NAME
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_hw_low_level_read(u32 width, u32 * value, struct acpi_generic_address
      *reg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_NAME
      Src: /src/xen/xen/drivers/acpi/hwregs.c:642,1
    - Dst: ACPI_MOVE_64_TO_64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:655,1
    - Dst: acpi_os_write_memory
      Src: /src/xen/xen/drivers/acpi/hwregs.c:667,1
    - Dst: acpi_os_write_port
      Src: /src/xen/xen/drivers/acpi/hwregs.c:673,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/hwregs.c:681,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/hwregs.c:684,1
    - Dst: acpi_ut_get_region_name
      Src: /src/xen/xen/drivers/acpi/hwregs.c:685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - width
    - value
    - reg
    argTypes:
    - u32
    - u32
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 688
    functionName: acpi_hw_low_level_write
    functionSourceFile: /src/xen/xen/drivers/acpi/hwregs.c
    functionUses: 1
    functionsReached:
    - ACPI_FORMAT_UINT64
    - ACPI_DEBUG_PRINT
    - acpi_ut_get_region_name
    - ACPI_MOVE_64_TO_64
    - acpi_os_write_memory
    - acpi_os_write_port
    - ACPI_FUNCTION_NAME
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_hw_low_level_write(u32 width, u32 value, struct acpi_generic_address
      * reg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:29,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/acpi/pm-op.c:43,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - cpu
    - new_state
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 49
    functionName: cpufreq_update_turbo
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 0
    functionsReached:
    - alternative_call
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int cpufreq_update_turbo(unsigned int cpu, int new_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: cpufreq_get_turbo_status
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 0
    functionsReached:
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int cpufreq_get_turbo_status(unsigned int cpu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/acpi/pm-op.c:68,1
    - Dst: scnprintf
      Src: /src/xen/xen/drivers/acpi/pm-op.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - scaling_available_governors
    - size
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 78
    functionName: read_scaling_available_governors
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - scnprintf
    linkageType: ''
    returnType: int
    signature: "int read_scaling_available_governors(char *scaling_available_governors,\n
      \                                           unsigned int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:84,1
    - Dst: hwp_active
      Src: /src/xen/xen/drivers/acpi/pm-op.c:87,1
    - Dst: get_hwp_para
      Src: /src/xen/xen/drivers/acpi/pm-op.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cpu
    - cppc_para
    argTypes:
    - unsigned int
    - struct xen_get_cppc_para*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: get_cpufreq_cppc
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 0
    functionsReached:
    - hwp_active
    - per_cpu
    - get_hwp_para
    linkageType: ''
    returnType: int
    signature: "int get_cpufreq_cppc(unsigned int cpu,\n                            struct
      xen_get_cppc_para *cppc_para)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:105,1
    - Dst: list_for_each
      Src: /src/xen/xen/drivers/acpi/pm-op.c:114,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/drivers/acpi/pm-op.c:117,1
    - Dst: cpumask_weight
      Src: /src/xen/xen/drivers/acpi/pm-op.c:121,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/acpi/pm-op.c:127,1
    - Dst: max
      Src: /src/xen/xen/drivers/acpi/pm-op.c:128,1
    - Dst: for_each_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:132,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/drivers/acpi/pm-op.c:134,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/drivers/acpi/pm-op.c:139,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pm-op.c:142,1
    - Dst: alternative_call
      Src: /src/xen/xen/drivers/acpi/pm-op.c:147,1
    - Dst: cpufreq_get_turbo_status
      Src: /src/xen/xen/drivers/acpi/pm-op.c:151,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:154,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:157,1
    - Dst: cpufreq_is_governorless
      Src: /src/xen/xen/drivers/acpi/pm-op.c:159,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/acpi/pm-op.c:162,1
    - Dst: read_scaling_available_governors
      Src: /src/xen/xen/drivers/acpi/pm-op.c:164,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pm-op.c:169,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/drivers/acpi/pm-op.c:172,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pm-op.c:175,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:184,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:187,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/acpi/pm-op.c:191,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/acpi/pm-op.c:195,1
    - Dst: get_cpufreq_ondemand_para
      Src: /src/xen/xen/drivers/acpi/pm-op.c:197,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_pm_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 93
    functionDepth: 8
    functionLinenumber: 93
    functionLinenumberEnd: 205
    functionName: get_cpufreq_para
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 1
    functionsReached:
    - for_each_cpu
    - max
    - strncasecmp
    - cpufreq_is_governorless
    - xzalloc_array
    - alternative_call
    - cpufreq_get_turbo_status
    - strlcpy
    - per_cpu
    - copy_to_guest
    - cpumask_weight
    - read_scaling_available_governors
    - get_cpufreq_ondemand_para
    - xfree
    - list_for_each
    linkageType: ''
    returnType: int
    signature: int get_cpufreq_para(struct xen_sysctl_pm_op *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:211,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:215,1
    - Dst: __find_governor
      Src: /src/xen/xen/drivers/acpi/pm-op.c:217,1
    - Dst: cpufreq_policy_from_governor
      Src: /src/xen/xen/drivers/acpi/pm-op.c:223,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/pm-op.c:226,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_pm_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 233
    functionName: set_cpufreq_gov
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 1
    functionsReached:
    - cpufreq_policy_from_governor
    - __cpufreq_set_policy
    - __find_governor
    - per_cpu
    - printk
    - memcpy
    linkageType: ''
    returnType: int
    signature: int set_cpufreq_gov(struct xen_sysctl_pm_op *op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:240,1
    - Dst: cpufreq_is_governorless
      Src: /src/xen/xen/drivers/acpi/pm-op.c:245,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:254,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:256,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:265,1
    - Dst: __cpufreq_set_policy
      Src: /src/xen/xen/drivers/acpi/pm-op.c:267,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/acpi/pm-op.c:276,1
    - Dst: write_userspace_scaling_setspeed
      Src: /src/xen/xen/drivers/acpi/pm-op.c:278,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/acpi/pm-op.c:289,1
    - Dst: write_ondemand_sampling_rate
      Src: /src/xen/xen/drivers/acpi/pm-op.c:291,1
    - Dst: strncasecmp
      Src: /src/xen/xen/drivers/acpi/pm-op.c:302,1
    - Dst: write_ondemand_up_threshold
      Src: /src/xen/xen/drivers/acpi/pm-op.c:304,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_pm_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 317
    functionName: set_cpufreq_para
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 5
    functionsReached:
    - __cpufreq_set_policy
    - strncasecmp
    - cpufreq_is_governorless
    - write_ondemand_up_threshold
    - per_cpu
    - write_ondemand_sampling_rate
    - memcpy
    - write_userspace_scaling_setspeed
    linkageType: ''
    returnType: int
    signature: int set_cpufreq_para(struct xen_sysctl_pm_op *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pm-op.c:321,1
    - Dst: hwp_active
      Src: /src/xen/xen/drivers/acpi/pm-op.c:326,1
    - Dst: set_hwp_para
      Src: /src/xen/xen/drivers/acpi/pm-op.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_pm_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: set_cpufreq_cppc
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 1
    functionsReached:
    - set_hwp_para
    - hwp_active
    - per_cpu
    linkageType: ''
    returnType: int
    signature: int set_cpufreq_cppc(struct xen_sysctl_pm_op *op)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/acpi/pm-op.c:351,1
    - Dst: acpi_get_cstate_limit
      Src: /src/xen/xen/drivers/acpi/pm-op.c:353,1
    - Dst: acpi_get_csubstate_limit
      Src: /src/xen/xen/drivers/acpi/pm-op.c:355,1
    - Dst: acpi_set_cstate_limit
      Src: /src/xen/xen/drivers/acpi/pm-op.c:362,1
    - Dst: acpi_set_csubstate_limit
      Src: /src/xen/xen/drivers/acpi/pm-op.c:364,1
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/acpi/pm-op.c:370,1
    - Dst: get_cpufreq_para
      Src: /src/xen/xen/drivers/acpi/pm-op.c:388,1
    - Dst: set_cpufreq_gov
      Src: /src/xen/xen/drivers/acpi/pm-op.c:392,1
    - Dst: set_cpufreq_para
      Src: /src/xen/xen/drivers/acpi/pm-op.c:396,1
    - Dst: get_cpufreq_cppc
      Src: /src/xen/xen/drivers/acpi/pm-op.c:400,1
    - Dst: set_cpufreq_cppc
      Src: /src/xen/xen/drivers/acpi/pm-op.c:404,1
    - Dst: cpufreq_driver_getavg
      Src: /src/xen/xen/drivers/acpi/pm-op.c:408,1
    - Dst: cpufreq_update_turbo
      Src: /src/xen/xen/drivers/acpi/pm-op.c:412,1
    - Dst: cpufreq_update_turbo
      Src: /src/xen/xen/drivers/acpi/pm-op.c:416,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/pm-op.c:420,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_pm_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 332
    functionDepth: 9
    functionLinenumber: 332
    functionLinenumberEnd: 426
    functionName: do_pm_op
    functionSourceFile: /src/xen/xen/drivers/acpi/pm-op.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - acpi_set_cstate_limit
    - cpufreq_update_turbo
    - get_cpufreq_para
    - set_cpufreq_para
    - acpi_get_csubstate_limit
    - BUILD_BUG_ON
    - get_cpufreq_cppc
    - set_cpufreq_cppc
    - cpufreq_driver_getavg
    - acpi_set_csubstate_limit
    - printk
    - set_cpufreq_gov
    - acpi_get_cstate_limit
    linkageType: ''
    returnType: int
    signature: int do_pm_op(struct xen_sysctl_pm_op *op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: efi_enabled
      Src: /src/xen/xen/drivers/acpi/osl.c:55,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/acpi/osl.c:65,1
    - Dst: acpi_find_root_pointer
      Src: /src/xen/xen/drivers/acpi/osl.c:68,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: acpi_os_get_root_pointer
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 5
    functionsReached:
    - efi_enabled
    - acpi_find_root_pointer
    - IS_ENABLED
    linkageType: ''
    returnType: acpi_physical_address
    signature: acpi_physical_address acpi_os_get_root_pointer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mfn
      Src: /src/xen/xen/drivers/acpi/osl.c:79,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/acpi/osl.c:79,1
    - Dst: PAGE_OFFSET
      Src: /src/xen/xen/drivers/acpi/osl.c:80,1
    - Dst: __acpi_map_table
      Src: /src/xen/xen/drivers/acpi/osl.c:83,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/acpi/osl.c:88,1
    - Dst: __vmap
      Src: /src/xen/xen/drivers/acpi/osl.c:91,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/acpi/osl.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - phys
    - size
    argTypes:
    - acpi_physical_address
    - acpi_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: acpi_os_map_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 7
    functionsReached:
    - PFN_UP
    - _mfn
    - PAGE_OFFSET
    - __acpi_map_table
    - unlikely
    - PFN_DOWN
    - __vmap
    linkageType: ''
    returnType: void
    signature: 'void *

      acpi_os_map_memory(acpi_physical_address phys, acpi_size size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __acpi_unmap_table
      Src: /src/xen/xen/drivers/acpi/osl.c:99,1
    - Dst: vunmap
      Src: /src/xen/xen/drivers/acpi/osl.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - virt
    - size
    argTypes:
    - void*
    - acpi_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: acpi_os_unmap_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 7
    functionsReached:
    - vunmap
    - __acpi_unmap_table
    linkageType: ''
    returnType: void
    signature: void acpi_os_unmap_memory(void __iomem * virt, acpi_size size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/drivers/acpi/osl.c:115,1
    - Dst: inw
      Src: /src/xen/xen/drivers/acpi/osl.c:117,1
    - Dst: inl
      Src: /src/xen/xen/drivers/acpi/osl.c:119,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/acpi/osl.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - port
    - value
    - width
    argTypes:
    - acpi_io_address
    - u32*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: acpi_os_read_port
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 3
    functionsReached:
    - inl
    - inb
    - BUG
    - inw
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32
      width)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/drivers/acpi/osl.c:130,1
    - Dst: outw
      Src: /src/xen/xen/drivers/acpi/osl.c:132,1
    - Dst: outl
      Src: /src/xen/xen/drivers/acpi/osl.c:134,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/acpi/osl.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - port
    - value
    - width
    argTypes:
    - acpi_io_address
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: acpi_os_write_port
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 3
    functionsReached:
    - outl
    - BUG
    - outw
    - outb
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32
      width)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:146,1
    - Dst: readb
      Src: /src/xen/xen/drivers/acpi/osl.c:156,1
    - Dst: readw
      Src: /src/xen/xen/drivers/acpi/osl.c:159,1
    - Dst: readl
      Src: /src/xen/xen/drivers/acpi/osl.c:162,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/acpi/osl.c:165,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - phys_addr
    - value
    - width
    argTypes:
    - acpi_physical_address
    - u32*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 171
    functionName: acpi_os_read_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 1
    functionsReached:
    - acpi_os_map_memory
    - BUG
    - readw
    - acpi_os_unmap_memory
    - readl
    - readb
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_os_read_memory(acpi_physical_address phys_addr, u32
      * value, u32 width)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:176,1
    - Dst: writeb
      Src: /src/xen/xen/drivers/acpi/osl.c:183,1
    - Dst: writew
      Src: /src/xen/xen/drivers/acpi/osl.c:186,1
    - Dst: writel
      Src: /src/xen/xen/drivers/acpi/osl.c:189,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/acpi/osl.c:192,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - phys_addr
    - value
    - width
    argTypes:
    - acpi_physical_address
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 198
    functionName: acpi_os_write_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 1
    functionsReached:
    - acpi_os_map_memory
    - BUG
    - writel
    - writeb
    - writew
    - acpi_os_unmap_memory
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_os_write_memory(acpi_physical_address phys_addr, u32
      value, u32 width)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: is_xmalloc_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_xmalloc_memory(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_boot_pages
      Src: /src/xen/xen/drivers/acpi/osl.c:208,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/acpi/osl.c:208,1
    - Dst: vmap_contig
      Src: /src/xen/xen/drivers/acpi/osl.c:210,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/acpi/osl.c:210,1
    - Dst: xmalloc_bytes
      Src: /src/xen/xen/drivers/acpi/osl.c:213,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/acpi/osl.c:214,1
    - Dst: is_xmalloc_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 216
    functionName: acpi_os_alloc_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - vmap_contig
    - xmalloc_bytes
    - ASSERT
    - alloc_boot_pages
    - is_xmalloc_memory
    linkageType: ''
    returnType: void
    signature: void *__init acpi_os_alloc_memory(size_t sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_bytes
      Src: /src/xen/xen/drivers/acpi/osl.c:223,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/acpi/osl.c:224,1
    - Dst: is_xmalloc_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:224,1
    - Dst: acpi_os_alloc_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:227,1
    - Dst: memset
      Src: /src/xen/xen/drivers/acpi/osl.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: acpi_os_zalloc_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 0
    functionsReached:
    - xzalloc_bytes
    - acpi_os_alloc_memory
    - ASSERT
    - memset
    - is_xmalloc_memory
    linkageType: ''
    returnType: void
    signature: void *__init acpi_os_zalloc_memory(size_t sz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_xmalloc_memory
      Src: /src/xen/xen/drivers/acpi/osl.c:233,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/osl.c:234,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/acpi/osl.c:237,1
    - Dst: vmap_to_mfn
      Src: /src/xen/xen/drivers/acpi/osl.c:237,1
    - Dst: vmap_size
      Src: /src/xen/xen/drivers/acpi/osl.c:238,1
    - Dst: vunmap
      Src: /src/xen/xen/drivers/acpi/osl.c:240,1
    - Dst: init_boot_pages
      Src: /src/xen/xen/drivers/acpi/osl.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: acpi_os_free_memory
    functionSourceFile: /src/xen/xen/drivers/acpi/osl.c
    functionUses: 0
    functionsReached:
    - vmap_to_mfn
    - init_boot_pages
    - mfn_to_maddr
    - vunmap
    - vmap_size
    - is_xmalloc_memory
    - xfree
    linkageType: ''
    returnType: void
    signature: void acpi_os_free_memory(void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/reboot.c:24,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/acpi/reboot.c:26,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/acpi/reboot.c:26,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/reboot.c:33,1
    - Dst: acpi_hw_low_level_write
      Src: /src/xen/xen/drivers/acpi/reboot.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 5
    functionDepth: 3
    functionLinenumber: 5
    functionLinenumberEnd: 37
    functionName: acpi_reboot
    functionSourceFile: /src/xen/xen/drivers/acpi/reboot.c
    functionUses: 1
    functionsReached:
    - pci_conf_write8
    - acpi_hw_low_level_write
    - PCI_SBDF
    - printk
    linkageType: ''
    returnType: void
    signature: void acpi_reboot(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:57,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/drivers/acpi/pmstat.c:59,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/acpi/pmstat.c:60,1
    - Dst: likely
      Src: /src/xen/xen/drivers/acpi/pmstat.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cpu
    - state
    argTypes:
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: cpufreq_residency_update
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 0
    functionsReached:
    - get_cpu_idle_time
    - likely
    - per_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void cpufreq_residency_update(unsigned int cpu, uint8_t state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:77,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:79,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:81,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:84,1
    - Dst: cpufreq_residency_update
      Src: /src/xen/xen/drivers/acpi/pmstat.c:92,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - cpu
    - from
    - to
    argTypes:
    - unsigned int
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: cpufreq_statistic_update
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 2
    functionsReached:
    - spin_lock
    - cpufreq_residency_update
    - per_cpu
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void cpufreq_statistic_update(unsigned int cpu, uint8_t from, uint8_t
      to)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:104,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/acpi/pmstat.c:106,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:115,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:117,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:120,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/acpi/pmstat.c:126,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:129,1
    - Dst: xvzalloc_array
      Src: /src/xen/xen/drivers/acpi/pmstat.c:133,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:136,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:137,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/acpi/pmstat.c:141,1
    - Dst: xvfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:144,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:145,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:146,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/acpi/pmstat.c:155,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/drivers/acpi/pmstat.c:156,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:158,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 163
    functionName: cpufreq_statistic_init
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 1
    functionsReached:
    - xzalloc
    - spin_unlock
    - xvzalloc_array
    - get_cpu_idle_time
    - xvfree
    - xzalloc_array
    - spin_lock
    - per_cpu
    - spin_lock_init
    - xfree
    - NOW
    linkageType: ''
    returnType: int
    signature: int cpufreq_statistic_init(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:168,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:170,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:172,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:175,1
    - Dst: xvfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:179,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:180,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/pmstat.c:181,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:182,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: cpufreq_statistic_exit
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - xvfree
    - spin_lock
    - per_cpu
    - xfree
    linkageType: ''
    returnType: void
    signature: void cpufreq_statistic_exit(unsigned int cpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:192,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:194,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:196,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:199,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/acpi/pmstat.c:214,1
    - Dst: get_cpu_idle_time
      Src: /src/xen/xen/drivers/acpi/pmstat.c:215,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - cpu
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: cpufreq_statistic_reset
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - get_cpu_idle_time
    - spin_lock
    - per_cpu
    - NOW
    linkageType: ''
    returnType: void
    signature: void cpufreq_statistic_reset(unsigned int cpu)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cpu_online
      Src: /src/xen/xen/drivers/acpi/pmstat.c:228,1
    - Dst: hwp_active
      Src: /src/xen/xen/drivers/acpi/pmstat.c:243,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:265,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:267,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/acpi/pmstat.c:269,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:272,1
    - Dst: cpufreq_residency_update
      Src: /src/xen/xen/drivers/acpi/pmstat.c:276,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/drivers/acpi/pmstat.c:285,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:287,1
    - Dst: copy_to_guest
      Src: /src/xen/xen/drivers/acpi/pmstat.c:292,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:294,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/acpi/pmstat.c:304,1
    - Dst: cpufreq_statistic_reset
      Src: /src/xen/xen/drivers/acpi/pmstat.c:311,1
    - Dst: pmstat_get_cx_nr
      Src: /src/xen/xen/drivers/acpi/pmstat.c:317,1
    - Dst: pmstat_get_cx_stat
      Src: /src/xen/xen/drivers/acpi/pmstat.c:324,1
    - Dst: pmstat_reset_cx_stat
      Src: /src/xen/xen/drivers/acpi/pmstat.c:330,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/pmstat.c:335,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_get_pmstat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 341
    functionName: do_get_pm_info
    functionSourceFile: /src/xen/xen/drivers/acpi/pmstat.c
    functionUses: 1
    functionsReached:
    - cpu_online
    - spin_unlock
    - pmstat_get_cx_nr
    - cpufreq_residency_update
    - pmstat_reset_cx_stat
    - spin_lock
    - cpufreq_statistic_reset
    - per_cpu
    - printk
    - copy_to_guest
    - pmstat_get_cx_stat
    - hwp_active
    linkageType: ''
    returnType: int
    signature: int do_get_pm_info(struct xen_sysctl_get_pmstat *op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_NAME
      Src: /src/xen/xen/drivers/acpi/numa.c:41,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/numa.c:52,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/numa.c:60,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/numa.c:74,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/numa.c:79,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/numa.c:98,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/numa.c:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_subtable_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 114
    functionName: acpi_table_print_srat_entry
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached:
    - ACPI_DEBUG_PRINT
    - ACPI_FUNCTION_NAME
    - printk
    - container_of
    linkageType: ''
    returnType: void
    signature: void acpi_table_print_srat_entry(struct acpi_subtable_header * header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_numa_slit_init
      Src: /src/xen/xen/drivers/acpi/numa.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: acpi_parse_slit
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached:
    - acpi_numa_slit_init
    linkageType: ''
    returnType: int
    signature: int acpi_parse_slit(struct acpi_table_header *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/numa.c:128,1
    - Dst: acpi_table_print_srat_entry
      Src: /src/xen/xen/drivers/acpi/numa.c:134,1
    - Dst: acpi_numa_x2apic_affinity_init
      Src: /src/xen/xen/drivers/acpi/numa.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: acpi_parse_x2apic_affinity
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached:
    - acpi_table_print_srat_entry
    - acpi_numa_x2apic_affinity_init
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_x2apic_affinity(struct acpi_subtable_header *header,\n\t\t\t
      \  const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/numa.c:147,1
    - Dst: acpi_table_print_srat_entry
      Src: /src/xen/xen/drivers/acpi/numa.c:152,1
    - Dst: acpi_numa_processor_affinity_init
      Src: /src/xen/xen/drivers/acpi/numa.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 158
    functionName: acpi_parse_processor_affinity
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached:
    - acpi_numa_processor_affinity_init
    - acpi_table_print_srat_entry
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_processor_affinity(struct acpi_subtable_header *header,\n\t\t\t
      \     const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/numa.c:165,1
    - Dst: acpi_table_print_srat_entry
      Src: /src/xen/xen/drivers/acpi/numa.c:170,1
    - Dst: acpi_numa_memory_affinity_init
      Src: /src/xen/xen/drivers/acpi/numa.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - header
    - end
    argTypes:
    - struct acpi_subtable_header*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: acpi_parse_memory_affinity
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached:
    - acpi_numa_memory_affinity_init
    - acpi_table_print_srat_entry
    - container_of
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_memory_affinity(struct acpi_subtable_header *header,\n\t\t\t
      \  const unsigned long end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: acpi_parse_srat
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int acpi_parse_srat(struct acpi_table_header *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_entries
      Src: /src/xen/xen/drivers/acpi/numa.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - handler
    - max_entries
    argTypes:
    - int
    - acpi_madt_entry_handler
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: acpi_table_parse_srat
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 1
    functionsReached:
    - acpi_table_parse_entries
    linkageType: ''
    returnType: int
    signature: "int acpi_table_parse_srat(int id, acpi_madt_entry_handler handler,\n\t\t
      \     unsigned int max_entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/acpi/numa.c:200,1
    - Dst: acpi_table_parse_srat
      Src: /src/xen/xen/drivers/acpi/numa.c:201,1
    - Dst: acpi_table_parse_srat
      Src: /src/xen/xen/drivers/acpi/numa.c:203,1
    - Dst: acpi_table_parse_srat
      Src: /src/xen/xen/drivers/acpi/numa.c:205,1
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/acpi/numa.c:211,1
    - Dst: acpi_numa_arch_fixup
      Src: /src/xen/xen/drivers/acpi/numa.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 215
    functionName: acpi_numa_init
    functionSourceFile: /src/xen/xen/drivers/acpi/numa.c
    functionUses: 1
    functionsReached:
    - acpi_numa_arch_fixup
    - acpi_table_parse_srat
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int acpi_numa_init(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:59,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:72,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:85,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:96,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/tables.c:105,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:116,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:130,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:145,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/acpi/tables.c:146,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/acpi/tables.c:147,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:161,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:172,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:185,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:197,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:211,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/tables.c:225,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/tables.c:235,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_subtable_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 240
    functionName: acpi_table_print_madt_entry
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 8
    functionsReached:
    - MASK_EXTR
    - printk
    - container_of
    linkageType: ''
    returnType: void
    signature: void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - id
    - table_size
    - table_header
    - entry_id
    - entry_index
    argTypes:
    - char*
    - unsigned long
    - struct acpi_table_header*
    - enum acpi_madt_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 281
    functionName: acpi_get_entry
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct acpi_subtable_header
    signature: "struct acpi_subtable_header * __init\nacpi_get_entry(const char *id,
      unsigned long table_size,\n\t       const struct acpi_table_header *table_header,\n\t
      \      enum acpi_madt_type entry_id, unsigned int entry_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/acpi/tables.c:290,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/tables.c:292,1
    - Dst: acpi_get_entry
      Src: /src/xen/xen/drivers/acpi/tables.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - entry_id
    - entry_index
    argTypes:
    - enum acpi_madt_type
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: acpi_table_get_entry_madt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 5
    functionsReached:
    - acpi_get_table
    - ACPI_FAILURE
    - acpi_get_entry
    linkageType: ''
    returnType: struct acpi_subtable_header
    signature: "struct acpi_subtable_header * __init\nacpi_table_get_entry_madt(enum
      acpi_madt_type entry_id,\n\t\t\t  unsigned int entry_index)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: handler
      Src: /src/xen/xen/drivers/acpi/tables.c:343,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 6
    argNames:
    - id
    - table_size
    - handler
    - table_header
    - entry_id
    - max_entries
    argTypes:
    - char*
    - unsigned long
    - acpi_table_entry_handler
    - struct acpi_table_header*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 359
    functionName: acpi_parse_entries
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 1
    functionsReached:
    - handler
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_entries(const char *id, unsigned long table_size,\n\t\t
      \  acpi_table_entry_handler handler,\n\t\t   struct acpi_table_header *table_header,\n\t\t
      \  int entry_id, unsigned int max_entries)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/acpi/tables.c:377,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/acpi/tables.c:380,1
    - Dst: acpi_parse_entries
      Src: /src/xen/xen/drivers/acpi/tables.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - id
    - table_size
    - entry_id
    - handler
    - max_entries
    argTypes:
    - char*
    - unsigned long
    - int
    - acpi_table_entry_handler
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 388
    functionName: acpi_table_parse_entries
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 1
    functionsReached:
    - strncmp
    - acpi_get_table
    - acpi_parse_entries
    linkageType: ''
    returnType: int
    signature: "int acpi_table_parse_entries(const char *id,\n\t\t\t unsigned long
      table_size,\n\t\t\t int entry_id,\n\t\t\t acpi_table_entry_handler handler,\n\t\t\t
      unsigned int max_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse_entries
      Src: /src/xen/xen/drivers/acpi/tables.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - handler
    - max_entries
    argTypes:
    - enum acpi_madt_type
    - acpi_table_entry_handler
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: acpi_table_parse_madt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 6
    functionsReached:
    - acpi_table_parse_entries
    linkageType: ''
    returnType: int
    signature: "int acpi_table_parse_madt(enum acpi_madt_type id,\n\t\t      acpi_table_entry_handler
      handler, unsigned int max_entries)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/acpi/tables.c:418,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/acpi/tables.c:419,1
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/acpi/tables.c:421,1
    - Dst: handler
      Src: /src/xen/xen/drivers/acpi/tables.c:424,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - id
    - handler
    argTypes:
    - char*
    - acpi_table_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 427
    functionName: acpi_table_parse
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 9
    functionsReached:
    - handler
    - strncmp
    - acpi_get_table
    linkageType: ''
    returnType: int
    signature: int acpi_table_parse(const char *id, acpi_table_handler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/acpi/tables.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 452
    functionName: check_multiple_madt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 0
    functionsReached:
    - acpi_get_table
    linkageType: ''
    returnType: void
    signature: void check_multiple_madt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_initialize_tables
      Src: /src/xen/xen/drivers/acpi/tables.c:467,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/tables.c:468,1
    - Dst: check_multiple_madt
      Src: /src/xen/xen/drivers/acpi/tables.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 473
    functionName: acpi_table_init
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 2
    functionsReached:
    - acpi_initialize_tables
    - ACPI_FAILURE
    - check_multiple_madt
    linkageType: ''
    returnType: int
    signature: int acpi_table_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/acpi/tables.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: acpi_parse_apic_instance
    functionSourceFile: /src/xen/xen/drivers/acpi/tables.c
    functionUses: 0
    functionsReached:
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int acpi_parse_apic_instance(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_MOVE_64_TO_64
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - generic_address
    - bit_width
    - address
    argTypes:
    - struct acpi_generic_address*
    - u8
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 147
    functionName: acpi_tb_init_generic_address
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbfadt.c
    functionUses: 0
    functionsReached:
    - ACPI_MOVE_64_TO_64
    linkageType: ''
    returnType: void
    signature: "void acpi_tb_init_generic_address(struct acpi_generic_address *generic_address,\n\t\t\t
      \    u8 bit_width, u64 address)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:178,1
    - Dst: acpi_tb_verify_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:188,1
    - Dst: acpi_tb_create_local_fadt
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:192,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:196,1
    - Dst: acpi_tb_install_table
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:200,1
    - Dst: acpi_tb_install_table
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - table_index
    - flags
    argTypes:
    - acpi_native_uint
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 210
    functionName: acpi_tb_parse_fadt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbfadt.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - acpi_tb_install_table
    - acpi_tb_create_local_fadt
    - acpi_os_unmap_memory
    - acpi_tb_verify_checksum
    linkageType: ''
    returnType: void
    signature: void acpi_tb_parse_fadt(acpi_native_uint table_index, u8 flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:237,1
    - Dst: ACPI_MEMSET
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:246,1
    - Dst: ACPI_MEMCPY
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:250,1
    - Dst: ACPI_MIN
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:251,1
    - Dst: acpi_tb_convert_fadt
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:264,1
    - Dst: acpi_tb_validate_fadt
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - table
    - length
    argTypes:
    - struct acpi_table_header*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 266
    functionName: acpi_tb_create_local_fadt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbfadt.c
    functionUses: 1
    functionsReached:
    - ACPI_MEMCPY
    - acpi_tb_convert_fadt
    - ACPI_WARNING
    - ACPI_MIN
    - acpi_tb_validate_fadt
    - ACPI_MEMSET
    linkageType: ''
    returnType: void
    signature: void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32
      length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:338,1
    - Dst: acpi_tb_init_generic_address
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:344,1
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:345,1
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:349,1
    - Dst: ACPI_DIV_2
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:366,1
    - Dst: acpi_tb_init_generic_address
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:370,1
    - Dst: acpi_tb_init_generic_address
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 390
    functionName: acpi_tb_convert_fadt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbfadt.c
    functionUses: 1
    functionsReached:
    - ACPI_ADD_PTR
    - acpi_tb_init_generic_address
    - ACPI_DIV_2
    linkageType: ''
    returnType: void
    signature: void acpi_tb_convert_fadt(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:432,1
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:435,1
    - Dst: ACPI_ADD_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:438,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:447,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:450,1
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:461,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:464,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:474,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/tables/tbfadt.c:477,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 480
    functionName: acpi_tb_validate_fadt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbfadt.c
    functionUses: 1
    functionsReached:
    - ACPI_WARNING
    - ACPI_FORMAT_UINT64
    - ACPI_ADD_PTR
    - ACPI_ERROR
    linkageType: ''
    returnType: void
    signature: void acpi_tb_validate_fadt(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:66,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:74,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:78,1
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:84,1
    - Dst: acpi_tb_verify_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:89,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - table_desc
    argTypes:
    - struct acpi_table_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 94
    functionName: acpi_tb_verify_table
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbinstal.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - ACPI_FUNCTION_TRACE
    - return_ACPI_STATUS
    - acpi_tb_verify_checksum
    - ACPI_COMPARE_NAME
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:112,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:117,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:119,1
    - Dst: ACPI_ALLOCATE_ZEROED
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:124,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:128,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:130,1
    - Dst: ACPI_MEMCPY
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:136,1
    - Dst: ACPI_FREE
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:141,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbinstal.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 150
    functionName: acpi_tb_resize_root_table_list
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbinstal.c
    functionUses: 0
    functionsReached:
    - ACPI_ALLOCATE_ZEROED
    - ACPI_FUNCTION_TRACE
    - ACPI_FREE
    - ACPI_MEMCPY
    - return_ACPI_STATUS
    - ACPI_ERROR
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_resize_root_table_list(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_ENTRY
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:68,1
    - Dst: ACPI_STRNCMP
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:76,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:86,1
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rsdp
    argTypes:
    - struct acpi_table_rsdp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 98
    functionName: acpi_tb_validate_rsdp
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxfroot.c
    functionUses: 0
    functionsReached:
    - ACPI_FUNCTION_ENTRY
    - acpi_tb_checksum
    - ACPI_STRNCMP
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:126,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:130,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:134,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:138,1
    - Dst: ACPI_MOVE_16_TO_32
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:141,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:146,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:155,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:159,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:163,1
    - Dst: acpi_tb_scan_memory_for_rsdp
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:167,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:169,1
    - Dst: ACPI_PTR_DIFF
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:176,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:179,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:186,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:191,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:196,1
    - Dst: acpi_tb_scan_memory_for_rsdp
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:200,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:201,1
    - Dst: ACPI_PTR_DIFF
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:209,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:212,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:217,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - table_address
    argTypes:
    - acpi_native_uint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 219
    functionName: acpi_find_root_pointer
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxfroot.c
    functionUses: 1
    functionsReached:
    - acpi_os_map_memory
    - ACPI_FUNCTION_TRACE
    - acpi_os_unmap_memory
    - return_ACPI_STATUS
    - ACPI_MOVE_16_TO_32
    - ACPI_ERROR
    - ACPI_PTR_DIFF
    - acpi_tb_scan_memory_for_rsdp
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_find_root_pointer(acpi_native_uint * table_address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:239,1
    - Dst: acpi_tb_validate_rsdp
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:251,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:251,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:253,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:257,1
    - Dst: return_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:260,1
    - Dst: ACPI_DEBUG_PRINT
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:268,1
    - Dst: return_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbxfroot.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - start_address
    - length
    argTypes:
    - u8*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 272
    functionName: acpi_tb_scan_memory_for_rsdp
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxfroot.c
    functionUses: 1
    functionsReached:
    - ACPI_SUCCESS
    - ACPI_DEBUG_PRINT
    - return_PTR
    - ACPI_FUNCTION_TRACE
    - acpi_tb_validate_rsdp
    - ACPI_CAST_PTR
    linkageType: ''
    returnType: u8
    signature: u8 *__init acpi_tb_scan_memory_for_rsdp(u8 * start_address, u32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_tb_resize_root_table_list
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - initial_table_count
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: acpi_allocate_root_table
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxface.c
    functionUses: 0
    functionsReached:
    - acpi_tb_resize_root_table_list
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_allocate_root_table(u32 initial_table_count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:109,1
    - Dst: acpi_allocate_root_table
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:116,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:117,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:118,1
    - Dst: ACPI_MEMSET
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:123,1
    - Dst: acpi_os_get_root_pointer
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:138,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:140,1
    - Dst: acpi_tb_parse_root_table
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:149,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - initial_table_array
    - initial_table_count
    - allow_resize
    argTypes:
    - struct acpi_table_desc*
    - u32
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: acpi_initialize_tables
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxface.c
    functionUses: 1
    functionsReached:
    - acpi_os_get_root_pointer
    - ACPI_FAILURE
    - acpi_tb_parse_root_table
    - ACPI_FUNCTION_TRACE
    - return_ACPI_STATUS
    - acpi_allocate_root_table
    - ACPI_MEMSET
    linkageType: ''
    returnType: acpi_status
    signature: "acpi_status acpi_initialize_tables(struct acpi_table_desc * initial_table_array,\n\t\t
      \      u32 initial_table_count, u8 allow_resize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:184,1
    - Dst: acpi_tb_verify_table
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:195,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - signature
    - instance
    - out_table
    argTypes:
    - char*
    - acpi_native_uint
    - struct acpi_table_header**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 206
    functionName: acpi_get_table
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxface.c
    functionUses: 10
    functionsReached:
    - ACPI_SUCCESS
    - ACPI_COMPARE_NAME
    - acpi_tb_verify_table
    linkageType: ''
    returnType: acpi_status
    signature: "acpi_status acpi_get_table(const char *signature,\n\t       acpi_native_uint
      instance, struct acpi_table_header **out_table)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:233,1
    - Dst: acpi_tb_verify_table
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:242,1
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/acpi/tables/tbxface.c:243,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 4
    argNames:
    - signature
    - instance
    - addr
    - len
    argTypes:
    - char*
    - acpi_native_uint
    - acpi_physical_address*
    - acpi_native_uint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 254
    functionName: acpi_get_table_phys
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbxface.c
    functionUses: 0
    functionsReached:
    - ACPI_SUCCESS
    - ACPI_COMPARE_NAME
    - acpi_tb_verify_table
    linkageType: ''
    returnType: acpi_status
    signature: "acpi_status acpi_get_table_phys(const char *signature, acpi_native_uint
      instance,\n\t\t     acpi_physical_address *addr, acpi_native_uint *len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:76,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:81,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:85,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:94,1
    - Dst: ACPI_MOVE_64_TO_64
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:96,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - address
    argTypes:
    - acpi_physical_address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 109
    functionName: acpi_tb_check_xsdt
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 0
    functionsReached:
    - acpi_os_map_memory
    - ACPI_MOVE_64_TO_64
    - acpi_os_unmap_memory
    - ACPI_CAST_PTR
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_check_xsdt(acpi_physical_address address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:129,1
    - Dst: ACPI_INFO
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:133,1
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:136,1
    - Dst: ACPI_INFO
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:140,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:144,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:146,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:148,1
    - Dst: ACPI_INFO
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - address
    - header
    argTypes:
    - acpi_physical_address
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 161
    functionName: acpi_tb_print_table_header
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 0
    functionsReached:
    - ACPI_INFO
    - ACPI_COMPARE_NAME
    - ACPI_CAST_PTR
    linkageType: ''
    returnType: void
    signature: "void acpi_tb_print_table_header(acpi_physical_address address,\n\t\t\t
      \  struct acpi_table_header *header)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:184,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:184,1
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - table
    - length
    argTypes:
    - struct acpi_table_header*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 201
    functionName: acpi_tb_verify_checksum
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 2
    functionsReached:
    - acpi_tb_checksum
    - ACPI_WARNING
    - ACPI_CAST_PTR
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table,
      u32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - u8*
    - acpi_native_uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: acpi_tb_checksum
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: u8 acpi_tb_checksum(u8 * buffer, acpi_native_uint length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:251,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:259,1
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:266,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:267,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:269,1
    - Dst: ACPI_MOVE_32_TO_32
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:279,1
    - Dst: acpi_tb_print_table_header
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:283,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - address
    - flags
    - signature
    - table_index
    argTypes:
    - acpi_physical_address
    - u8
    - char*
    - acpi_native_uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 287
    functionName: acpi_tb_install_table
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 1
    functionsReached:
    - acpi_os_map_memory
    - acpi_tb_print_table_header
    - ACPI_MOVE_32_TO_32
    - acpi_os_unmap_memory
    - ACPI_CAST_PTR
    - ACPI_ERROR
    - ACPI_COMPARE_NAME
    linkageType: ''
    returnType: void
    signature: "void acpi_tb_install_table(acpi_physical_address address,\n\t\t      u8
      flags, const char *signature, acpi_native_uint table_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:322,1
    - Dst: ACPI_MOVE_64_TO_64
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:328,1
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:335,1
    - Dst: ACPI_FORMAT_UINT64
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - table_entry
    - table_entry_size
    argTypes:
    - u8*
    - acpi_native_uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 342
    functionName: acpi_tb_get_root_table_entry
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 0
    functionsReached:
    - ACPI_WARNING
    - ACPI_FORMAT_UINT64
    - ACPI_MOVE_64_TO_64
    - ACPI_CAST_PTR
    linkageType: ''
    returnType: acpi_physical_address
    signature: "acpi_physical_address acpi_tb_get_root_table_entry(u8 * table_entry,\n\t\t\t
      \    acpi_native_uint table_entry_size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_TRACE
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:376,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:381,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:383,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:413,1
    - Dst: acpi_tb_check_xsdt
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:416,1
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:420,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:426,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:428,1
    - Dst: acpi_tb_print_table_header
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:431,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:436,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:439,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:441,1
    - Dst: acpi_os_map_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:444,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:446,1
    - Dst: acpi_tb_verify_checksum
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:451,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:452,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:453,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:454,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:468,1
    - Dst: acpi_tb_resize_root_table_list
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:480,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:481,1
    - Dst: ACPI_WARNING
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:482,1
    - Dst: acpi_tb_get_root_table_entry
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:495,1
    - Dst: acpi_os_unmap_memory
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:505,1
    - Dst: acpi_tb_install_table
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:512,1
    - Dst: ACPI_COMPARE_NAME
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:517,1
    - Dst: acpi_tb_parse_fadt
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:520,1
    - Dst: return_ACPI_STATUS
      Src: /src/xen/xen/drivers/acpi/tables/tbutils.c:524,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - rsdp_address
    - flags
    argTypes:
    - acpi_physical_address
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 525
    functionName: acpi_tb_parse_root_table
    functionSourceFile: /src/xen/xen/drivers/acpi/tables/tbutils.c
    functionUses: 1
    functionsReached:
    - acpi_os_map_memory
    - acpi_tb_print_table_header
    - ACPI_FAILURE
    - acpi_tb_get_root_table_entry
    - acpi_tb_install_table
    - ACPI_FUNCTION_TRACE
    - acpi_tb_resize_root_table_list
    - acpi_os_unmap_memory
    - return_ACPI_STATUS
    - ACPI_WARNING
    - acpi_tb_check_xsdt
    - acpi_tb_verify_checksum
    - ACPI_ERROR
    - ACPI_CAST_PTR
    - ACPI_COMPARE_NAME
    - acpi_tb_parse_fadt
    linkageType: ''
    returnType: acpi_status
    signature: acpi_status acpi_tb_parse_root_table(acpi_physical_address rsdp_address,
      u8 flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ctx
    - ins_table
    - instructions
    - action_table
    - entries
    argTypes:
    - struct apei_exec_context*
    - struct apei_exec_ins_type*
    - u32
    - struct acpi_whea_header*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: apei_exec_ctx_init
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int apei_exec_ctx_init(struct apei_exec_context *ctx,\n\t\t\tstruct
      apei_exec_ins_type *ins_table,\n\t\t\tu32 instructions,\n\t\t\tstruct acpi_whea_header
      *action_table,\n\t\t\tu32 entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apei_read
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - entry
    - val
    argTypes:
    - struct acpi_whea_header*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: __apei_exec_read_register
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_read
    linkageType: ''
    returnType: int
    signature: int __apei_exec_read_register(struct acpi_whea_header *entry, u64 *val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: apei_exec_read_register
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 1
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int apei_exec_read_register(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: apei_exec_read_register_value
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int apei_exec_read_register_value(\n\tstruct apei_exec_context *ctx,
      struct acpi_whea_header *entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apei_read
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:121,1
    - Dst: apei_write
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - entry
    - val
    argTypes:
    - struct acpi_whea_header*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: __apei_exec_write_register
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_write
    - apei_read
    linkageType: ''
    returnType: int
    signature: int __apei_exec_write_register(struct acpi_whea_header *entry, u64
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_write_register
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: apei_exec_write_register
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 1
    functionsReached:
    - __apei_exec_write_register
    linkageType: ''
    returnType: int
    signature: "int apei_exec_write_register(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apei_exec_write_register
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: apei_exec_write_register_value
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_exec_write_register
    linkageType: ''
    returnType: int
    signature: "int apei_exec_write_register_value(\n\tstruct apei_exec_context *ctx,
      struct acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: apei_exec_noop
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int apei_exec_noop(\n\tstruct apei_exec_context *ctx, struct acpi_whea_header
      *entry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:184,1
    - Dst: run
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - action
    - optional
    argTypes:
    - struct apei_exec_context*
    - u8
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 202
    functionName: __apei_exec_run
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - run
    - printk
    linkageType: ''
    returnType: int
    signature: "int __apei_exec_run(struct apei_exec_context *ctx, u8 action,\n\t\t
      \   bool optional)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:224,1
    - Dst: func
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - func
    - data
    - end
    argTypes:
    - struct apei_exec_context*
    - apei_exec_entry_func_t
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 234
    functionName: apei_exec_for_each_entry
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - func
    - printk
    linkageType: ''
    returnType: int
    signature: "int apei_exec_for_each_entry(struct apei_exec_context *ctx,\n\t\t\t\t\t
      \  apei_exec_entry_func_t func,\n\t\t\t\t\t   void *data,\n\t\t\t\t\t   int
      *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apei_pre_map_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - entry
    - data
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: pre_map_gar_callback
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_pre_map_gar
    linkageType: ''
    returnType: int
    signature: "int pre_map_gar_callback(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry,\n\tvoid *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apei_exec_for_each_entry
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:253,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:257,1
    - Dst: apei_exec_post_unmap_gars
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct apei_exec_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: apei_exec_pre_map_gars
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_exec_post_unmap_gars
    - apei_exec_for_each_entry
    - memcpy
    linkageType: ''
    returnType: int
    signature: int apei_exec_pre_map_gars(struct apei_exec_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: apei_post_unmap_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - entry
    - data
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: post_unmap_gar_callback
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 0
    functionsReached:
    - apei_post_unmap_gar
    linkageType: ''
    returnType: int
    signature: "int post_unmap_gar_callback(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry,\n\tvoid *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apei_exec_for_each_entry
      Src: /src/xen/xen/drivers/acpi/apei/apei-base.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct apei_exec_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: apei_exec_post_unmap_gars
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-base.c
    functionUses: 1
    functionsReached:
    - apei_exec_for_each_entry
    linkageType: ''
    returnType: int
    signature: int apei_exec_post_unmap_gars(struct apei_exec_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:71,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:79,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - hest_hdr
    argTypes:
    - struct acpi_hest_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 89
    functionName: hest_esrc_len
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/hest.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - container_of
    linkageType: ''
    returnType: int
    signature: int hest_esrc_len(const struct acpi_hest_header *hest_hdr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hest_esrc_len
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:101,1
    - Dst: func
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - func
    - data
    argTypes:
    - apei_hest_func_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 125
    functionName: apei_hest_parse
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/hest.c
    functionUses: 0
    functionsReached:
    - func
    - hest_esrc_len
    linkageType: ''
    returnType: int
    signature: int apei_hest_parse(apei_hest_func_t func, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:142,1
    - Dst: mce_disable_bank
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - hest_hdr
    - data
    argTypes:
    - struct acpi_hest_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 164
    functionName: hest_parse_cmc
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/hest.c
    functionUses: 0
    functionsReached:
    - mce_disable_bank
    - container_of
    linkageType: ''
    returnType: int
    signature: "int hest_parse_cmc(\n\tconst struct acpi_hest_header *hest_hdr, void
      *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table_phys
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:180,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:183,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:185,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:188,1
    - Dst: __va
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:188,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:188,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:189,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:189,1
    - Dst: __va
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:191,1
    - Dst: apei_hest_parse
      Src: /src/xen/xen/drivers/acpi/apei/hest.c:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 166
    functionDepth: 6
    functionLinenumber: 166
    functionLinenumberEnd: 200
    functionName: acpi_hest_init
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/hest.c
    functionUses: 1
    functionsReached:
    - apei_hest_parse
    - __va
    - ACPI_FAILURE
    - PFN_UP
    - acpi_format_exception
    - map_pages_to_xen
    - maddr_to_mfn
    - acpi_get_table_phys
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void acpi_hest_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - paddr
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: __apei_find_iomap
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct apei_iomap
    signature: "struct apei_iomap *__apei_find_iomap(paddr_t paddr,\n\t\t\t\t\t    unsigned
      long size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __apei_find_iomap
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - paddr
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: __apei_ioremap_fast
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - __apei_find_iomap
    linkageType: ''
    returnType: void
    signature: "void *__apei_ioremap_fast(paddr_t paddr,\n\t\t\t\t\t unsigned long
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:91,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - paddr
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: apei_range_map
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - set_fixmap_nocache
    - fix_to_virt
    linkageType: ''
    returnType: void
    signature: void *__init apei_range_map(paddr_t paddr, unsigned long size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:110,1
    - Dst: __apei_ioremap_fast
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:111,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:112,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:116,1
    - Dst: apei_range_map
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:120,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:122,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:126,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:132,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:133,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - paddr
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 137
    functionName: apei_pre_map
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - __apei_ioremap_fast
    - spin_lock_irqsave
    - xfree
    - spin_unlock_irqrestore
    - INIT_LIST_HEAD
    - apei_range_map
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void *__init apei_pre_map(paddr_t paddr, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:147,1
    - Dst: __apei_find_iomap
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:148,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:150,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:151,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - paddr
    - size
    argTypes:
    - paddr_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: apei_post_unmap
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_del
    - __apei_find_iomap
    - xfree
    linkageType: ''
    returnType: void
    signature: void apei_post_unmap(paddr_t paddr, unsigned long size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:165,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:168,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:175,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - reg
    - paddr
    - silent
    argTypes:
    - struct acpi_generic_address*
    - u64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 189
    functionName: apei_check_gar
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printk
    linkageType: ''
    returnType: int
    signature: "int apei_check_gar(struct acpi_generic_address *reg,\n\t\t\t  u64
      *paddr, int silent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apei_check_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:201,1
    - Dst: apei_pre_map
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - reg
    argTypes:
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: apei_pre_map_gar
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 1
    functionsReached:
    - apei_check_gar
    - apei_pre_map
    linkageType: ''
    returnType: int
    signature: int apei_pre_map_gar(struct acpi_generic_address *reg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apei_check_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:221,1
    - Dst: apei_post_unmap
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reg
    argTypes:
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: apei_post_unmap_gar
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 1
    functionsReached:
    - apei_check_gar
    - apei_post_unmap
    linkageType: ''
    returnType: int
    signature: int apei_post_unmap_gar(struct acpi_generic_address *reg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __apei_ioremap_fast
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:235,1
    - Dst: readb
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:238,1
    - Dst: readw
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:241,1
    - Dst: readl
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:244,1
    - Dst: readl
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:247,1
    - Dst: readl
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - paddr
    - val
    - width
    argTypes:
    - u64
    - u64*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 256
    functionName: apei_read_mem
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - readb
    - readw
    - __apei_ioremap_fast
    - readl
    linkageType: ''
    returnType: int
    signature: int apei_read_mem(u64 paddr, u64 *val, u32 width)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __apei_ioremap_fast
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:263,1
    - Dst: writeb
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:266,1
    - Dst: writew
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:269,1
    - Dst: writel
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:272,1
    - Dst: writel
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:276,1
    - Dst: writel
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - paddr
    - val
    - width
    argTypes:
    - u64
    - u64
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: apei_write_mem
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 0
    functionsReached:
    - writew
    - writeb
    - writel
    - __apei_ioremap_fast
    linkageType: ''
    returnType: int
    signature: int apei_write_mem(u64 paddr, u64 val, u32 width)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apei_check_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:292,1
    - Dst: apei_read_mem
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:301,1
    - Dst: acpi_os_read_port
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - val
    - reg
    argTypes:
    - u64*
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 307
    functionName: apei_read
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 2
    functionsReached:
    - apei_check_gar
    - acpi_os_read_port
    - apei_read_mem
    linkageType: ''
    returnType: int
    signature: int apei_read(u64 *val, struct acpi_generic_address *reg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: apei_check_gar
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:314,1
    - Dst: apei_write_mem
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:320,1
    - Dst: acpi_os_write_port
      Src: /src/xen/xen/drivers/acpi/apei/apei-io.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - val
    - reg
    argTypes:
    - u64
    - struct acpi_generic_address*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 326
    functionName: apei_write
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-io.c
    functionUses: 1
    functionsReached:
    - acpi_os_write_port
    - apei_check_gar
    - apei_write_mem
    linkageType: ''
    returnType: int
    signature: int apei_write(u64 val, struct acpi_generic_address *reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tab
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: ERST_TAB_ENTRY
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERST_TAB_ENTRY(tab)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - command_status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: erst_errno
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int erst_errno(int command_status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:109,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - t
    - spin_unit
    argTypes:
    - u64*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: erst_timedout
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - udelay
    - printk
    linkageType: ''
    returnType: int
    signature: int erst_timedout(u64 *t, u64 spin_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: erst_exec_load_var1
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_load_var1(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: erst_exec_load_var2
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_load_var2(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_write_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: erst_exec_store_var1
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_write_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_store_var1(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: erst_exec_add
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int erst_exec_add(\n\tstruct apei_exec_context *ctx, struct acpi_whea_header
      *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: erst_exec_subtract
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int erst_exec_subtract(\n\tstruct apei_exec_context *ctx, struct acpi_whea_header
      *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:155,1
    - Dst: __apei_exec_write_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: erst_exec_add_value
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_write_register
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_add_value(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:169,1
    - Dst: __apei_exec_write_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: erst_exec_subtract_value
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_write_register
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_subtract_value(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: udelay
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: erst_exec_stall
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - udelay
    linkageType: ''
    returnType: int
    signature: "int erst_exec_stall(\n\tstruct apei_exec_context *ctx, struct acpi_whea_header
      *entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:197,1
    - Dst: erst_timedout
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: erst_exec_stall_while_true
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - erst_timedout
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_stall_while_true(\n\tstruct apei_exec_context *ctx,
      struct acpi_whea_header *entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 223
    functionName: erst_exec_skip_next_instruction_if_true
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_skip_next_instruction_if_true(\n\tstruct apei_exec_context
      *ctx, struct acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: erst_exec_goto
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int erst_exec_goto(\n\tstruct apei_exec_context *ctx, struct acpi_whea_header
      *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: erst_exec_set_src_address_base
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_set_src_address_base(\n\tstruct apei_exec_context *ctx,
      struct acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: erst_exec_set_dst_address_base
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_set_dst_address_base(\n\tstruct apei_exec_context *ctx,
      struct acpi_whea_header *entry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: in_irq
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:252,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:253,1
    - Dst: __apei_exec_read_register
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:258,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:262,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:266,1
    - Dst: memmove
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:268,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:269,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ctx
    - entry
    argTypes:
    - struct apei_exec_context*
    - struct acpi_whea_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 276
    functionName: erst_exec_move_data
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - iounmap
    - ioremap
    - memmove
    - printk
    - in_irq
    - __apei_exec_read_register
    linkageType: ''
    returnType: int
    signature: "int erst_exec_move_data(\n\tstruct apei_exec_context *ctx, struct
      acpi_whea_header *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: apei_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:359,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:359,1
    - Dst: ERST_TAB_ENTRY
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct apei_exec_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: erst_exec_ctx_init
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_init
    - ERST_TAB_ENTRY
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void erst_exec_ctx_init(struct apei_exec_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:368,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:369,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:372,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:373,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:376,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:377,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - range
    argTypes:
    - struct erst_erange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 383
    functionName: erst_get_erange
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_get_output
    - apei_exec_run
    - erst_exec_ctx_init
    linkageType: ''
    returnType: int
    signature: int erst_get_erange(struct erst_erange *range)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:394,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:395,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 400
    functionName: __erst_get_record_count
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_get_output
    - apei_exec_run
    - erst_exec_ctx_init
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t __erst_get_record_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:410,1
    - Dst: __erst_get_record_count
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:411,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 415
    functionName: erst_get_record_count
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 2
    functionsReached:
    - spin_lock_irqsave
    - __erst_get_record_count
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t erst_get_record_count(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:422,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:423,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: __erst_get_next_record_id
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_get_output
    - apei_exec_run
    - erst_exec_ctx_init
    linkageType: ''
    returnType: int
    signature: int __erst_get_next_record_id(u64 *record_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:444,1
    - Dst: __erst_get_next_record_id
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:445,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 449
    functionName: erst_get_next_record_id
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - __erst_get_next_record_id
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int erst_get_next_record_id(u64 *record_id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:460,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:461,1
    - Dst: apei_exec_ctx_set_input
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:464,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:465,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:468,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:472,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:475,1
    - Dst: erst_timedout
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:478,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:481,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:484,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:485,1
    - Dst: erst_errno
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:489,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - offset
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 490
    functionName: __erst_write_to_storage
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_set_input
    - apei_exec_run
    - erst_exec_ctx_init
    - erst_timedout
    - apei_exec_ctx_get_output
    - erst_errno
    linkageType: ''
    returnType: int
    signature: int __erst_write_to_storage(u64 offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:501,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:502,1
    - Dst: apei_exec_ctx_set_input
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:505,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:506,1
    - Dst: apei_exec_ctx_set_input
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:509,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:510,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:513,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:517,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:520,1
    - Dst: erst_timedout
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:523,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:526,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:529,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:530,1
    - Dst: erst_errno
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:534,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - record_id
    - offset
    argTypes:
    - u64
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 535
    functionName: __erst_read_from_storage
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_set_input
    - apei_exec_run
    - erst_exec_ctx_init
    - erst_timedout
    - apei_exec_ctx_get_output
    - erst_errno
    linkageType: ''
    returnType: int
    signature: int __erst_read_from_storage(u64 record_id, u64 offset)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:544,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:545,1
    - Dst: apei_exec_ctx_set_input
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:548,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:549,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:552,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:556,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:559,1
    - Dst: erst_timedout
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:562,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:565,1
    - Dst: apei_exec_ctx_get_output
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:568,1
    - Dst: apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:569,1
    - Dst: erst_errno
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:573,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 574
    functionName: __erst_clear_from_storage
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - apei_exec_ctx_set_input
    - apei_exec_run
    - erst_exec_ctx_init
    - erst_timedout
    - apei_exec_ctx_get_output
    - erst_errno
    linkageType: ''
    returnType: int
    signature: int __erst_clear_from_storage(u64 record_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - record
    argTypes:
    - struct cper_record_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: __erst_write_to_nvram
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __erst_write_to_nvram(const struct cper_record_header *record)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record_id
    - offset
    argTypes:
    - u64
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 592
    functionName: __erst_read_to_erange_from_nvram
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int __erst_read_to_erange_from_nvram(u64 record_id, u64 *offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: __erst_clear_from_nvram
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: int
    signature: int __erst_clear_from_nvram(u64 record_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:615,1
    - Dst: spin_trylock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:619,1
    - Dst: __erst_write_to_nvram
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:621,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:622,1
    - Dst: spin_trylock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:629,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:631,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:634,1
    - Dst: __erst_write_to_storage
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:636,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:637,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - record
    argTypes:
    - struct cper_record_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 640
    functionName: erst_write
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - __erst_write_to_nvram
    - spin_trylock_irqsave
    - memcmp
    - spin_unlock_irqrestore
    - memcpy
    - __erst_write_to_storage
    linkageType: ''
    returnType: int
    signature: int erst_write(const struct cper_record_header *record)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __erst_read_to_erange_from_nvram
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:649,1
    - Dst: __erst_read_from_storage
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - record_id
    - offset
    argTypes:
    - u64
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 658
    functionName: __erst_read_to_erange
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - __erst_read_to_erange_from_nvram
    - __erst_read_from_storage
    linkageType: ''
    returnType: int
    signature: int __erst_read_to_erange(u64 record_id, u64 *offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __erst_read_to_erange
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:668,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - record_id
    - record
    - buflen
    argTypes:
    - u64
    - struct cper_record_header*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 660
    functionDepth: 4
    functionLinenumber: 660
    functionLinenumberEnd: 680
    functionName: __erst_read
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached:
    - memcpy
    - __erst_read_to_erange
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t __erst_read(u64 record_id, struct cper_record_header *record,\n\t\t\t
      \  size_t buflen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:696,1
    - Dst: __erst_read
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:697,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - record_id
    - record
    - buflen
    argTypes:
    - u64
    - struct cper_record_header*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 687
    functionDepth: 5
    functionLinenumber: 687
    functionLinenumberEnd: 700
    functionName: erst_read
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - __erst_read
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t erst_read(u64 record_id, struct cper_record_header *record,\n\t\t
      \ size_t buflen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:718,1
    - Dst: __erst_get_next_record_id
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:719,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:721,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:726,1
    - Dst: __erst_read
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:730,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - record
    - buflen
    argTypes:
    - struct cper_record_header*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 734
    functionName: erst_read_next
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - __erst_read
    - spin_lock_irqsave
    - __erst_get_next_record_id
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t erst_read_next(struct cper_record_header *record, size_t buflen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:744,1
    - Dst: __erst_clear_from_nvram
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:746,1
    - Dst: __erst_clear_from_storage
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:748,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - record_id
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 736
    functionDepth: 3
    functionLinenumber: 736
    functionLinenumberEnd: 752
    functionName: erst_clear
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - __erst_clear_from_nvram
    - __erst_clear_from_storage
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int erst_clear(u64 record_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - erst_tab
    argTypes:
    - struct acpi_table_erst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 779
    functionName: erst_check_table
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int erst_check_table(struct acpi_table_erst *erst_tab)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table_phys
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:792,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:796,1
    - Dst: acpi_format_exception
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:797,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:798,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:801,1
    - Dst: __va
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:801,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:801,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:802,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:802,1
    - Dst: __va
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:804,1
    - Dst: erst_check_table
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:806,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:808,1
    - Dst: erst_exec_ctx_init
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:812,1
    - Dst: apei_exec_pre_map_gars
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:813,1
    - Dst: erst_get_erange
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:817,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:820,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:824,1
    - Dst: apei_pre_map
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:829,1
    - Dst: printk
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:835,1
    - Dst: apei_exec_post_unmap_gars
      Src: /src/xen/xen/drivers/acpi/apei/erst.c:841,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 781
    functionDepth: 6
    functionLinenumber: 781
    functionLinenumberEnd: 843
    functionName: erst_init
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/erst.c
    functionUses: 1
    functionsReached:
    - __va
    - erst_exec_ctx_init
    - ACPI_FAILURE
    - PFN_UP
    - apei_pre_map
    - erst_get_erange
    - acpi_format_exception
    - map_pages_to_xen
    - apei_exec_pre_map_gars
    - maddr_to_mfn
    - acpi_get_table_phys
    - apei_exec_post_unmap_gars
    - printk
    - PFN_DOWN
    - erst_check_table
    linkageType: ''
    returnType: int
    signature: int erst_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - input
    argTypes:
    - struct apei_exec_context*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: apei_exec_ctx_set_input
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void apei_exec_ctx_set_input(struct apei_exec_context *ctx,\n\t\t\t\t\t
      \  u64 input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct apei_exec_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: apei_exec_ctx_get_output
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-internal.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 apei_exec_ctx_get_output(struct apei_exec_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/apei-internal.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - action
    argTypes:
    - struct apei_exec_context*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: apei_exec_run
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-internal.h
    functionUses: 7
    functionsReached:
    - __apei_exec_run
    linkageType: ''
    returnType: int
    signature: int apei_exec_run(struct apei_exec_context *ctx, u8 action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __apei_exec_run
      Src: /src/xen/xen/drivers/acpi/apei/apei-internal.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - action
    argTypes:
    - struct apei_exec_context*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: apei_exec_run_optional
    functionSourceFile: /src/xen/xen/drivers/acpi/apei/apei-internal.h
    functionUses: 0
    functionsReached:
    - __apei_exec_run
    linkageType: ''
    returnType: int
    signature: int apei_exec_run_optional(struct apei_exec_context *ctx, u8 action)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_ENTRY
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:71,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - status
    argTypes:
    - acpi_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 123
    functionName: acpi_ut_validate_exception
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utmisc.c
    functionUses: 0
    functionsReached:
    - ACPI_FUNCTION_ENTRY
    linkageType: ''
    returnType: char
    signature: char *__init acpi_ut_validate_exception(acpi_status status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:144,1
    - Dst: va_start
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:146,1
    - Dst: acpi_os_vprintf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:147,1
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:148,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module_name
    - line_number
    - format
    argTypes:
    - char*
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: acpi_ut_error
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utmisc.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - acpi_os_vprintf
    - acpi_os_printf
    linkageType: ''
    returnType: void
    signature: void acpi_ut_error(const char *module_name, u32 line_number, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:157,1
    - Dst: va_start
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:159,1
    - Dst: acpi_os_vprintf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:160,1
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:161,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:162,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - module_name
    - line_number
    - format
    argTypes:
    - char*
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 164
    functionName: acpi_ut_warning
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utmisc.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - acpi_os_vprintf
    - acpi_os_printf
    linkageType: ''
    returnType: void
    signature: void acpi_ut_warning(const char *module_name, u32 line_number, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:175,1
    - Dst: va_start
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:177,1
    - Dst: acpi_os_vprintf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:178,1
    - Dst: acpi_os_printf
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:179,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/acpi/utilities/utmisc.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - module_name
    - line_number
    - format
    argTypes:
    - char*
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: acpi_ut_info
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utmisc.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - acpi_os_vprintf
    - acpi_os_printf
    linkageType: ''
    returnType: void
    signature: void acpi_ut_info(const char *module_name, u32 line_number, const char
      *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_FUNCTION_ENTRY
      Src: /src/xen/xen/drivers/acpi/utilities/utglobal.c:73,1
    - Dst: acpi_ut_validate_exception
      Src: /src/xen/xen/drivers/acpi/utilities/utglobal.c:75,1
    - Dst: ACPI_ERROR
      Src: /src/xen/xen/drivers/acpi/utilities/utglobal.c:80,1
    - Dst: dump_execution_state
      Src: /src/xen/xen/drivers/acpi/utilities/utglobal.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - status
    argTypes:
    - acpi_status
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 88
    functionName: acpi_format_exception
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utglobal.c
    functionUses: 6
    functionsReached:
    - ACPI_FUNCTION_ENTRY
    - dump_execution_state
    - ACPI_ERROR
    - acpi_ut_validate_exception
    linkageType: ''
    returnType: char
    signature: char *__init acpi_format_exception(acpi_status status)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - space_id
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 205
    functionName: acpi_ut_get_region_name
    functionSourceFile: /src/xen/xen/drivers/acpi/utilities/utglobal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *acpi_ut_get_region_name(u8 space_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rspin_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: pcidevs_lock_unsafe
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - _rspin_lock
    linkageType: ''
    returnType: void
    signature: void pcidevs_lock_unsafe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: pcidevs_unlock
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 10
    functionsReached:
    - rspin_unlock
    linkageType: ''
    returnType: void
    signature: void pcidevs_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_is_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: pcidevs_locked
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - rspin_is_locked
    linkageType: ''
    returnType: bool
    signature: bool pcidevs_locked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rspin_trylock
      Src: /src/xen/xen/drivers/passthrough/pci.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: pcidevs_trylock_unsafe
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - _rspin_trylock
    linkageType: ''
    returnType: bool
    signature: bool pcidevs_trylock_unsafe(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_lookup
      Src: /src/xen/xen/drivers/passthrough/pci.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: get_pseg
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - radix_tree_lookup
    linkageType: ''
    returnType: struct pci_seg
    signature: struct pci_seg *get_pseg(u16 seg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: pci_known_segment
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - get_pseg
    linkageType: ''
    returnType: bool
    signature: bool pci_known_segment(u16 seg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:90,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/pci.c:95,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/pci.c:100,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/pci.c:101,1
    - Dst: radix_tree_insert
      Src: /src/xen/xen/drivers/passthrough/pci.c:103,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/pci.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - seg
    argTypes:
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: alloc_pseg
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - get_pseg
    - INIT_LIST_HEAD
    - spin_lock_init
    - radix_tree_insert
    - xfree
    linkageType: ''
    returnType: struct pci_seg
    signature: struct pci_seg *alloc_pseg(u16 seg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: radix_tree_gang_lookup
      Src: /src/xen/xen/drivers/passthrough/pci.c:121,1
    - Dst: handler
      Src: /src/xen/xen/drivers/passthrough/pci.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: pci_segments_iterate
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - handler
    - radix_tree_gang_lookup
    linkageType: ''
    returnType: int
    signature: "int pci_segments_iterate(\n    int (*handler)(struct pci_seg *pseg,
      void *arg), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: pci_add_segment
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 4
    functionsReached:
    - alloc_pseg
    linkageType: ''
    returnType: int
    signature: int pci_add_segment(u16 seg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seg
    argTypes:
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: pci_get_ro_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 5
    functionsReached:
    - get_pseg
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *pci_get_ro_map(u16 seg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/pci.c:156,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/passthrough/pci.c:159,1
    - Dst: simple_strtol
      Src: /src/xen/xen/drivers/passthrough/pci.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 181
    functionName: parse_phantom_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - simple_strtol
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int parse_phantom_dev(const char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/pci.c:197,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/pci.c:199,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/pci.c:201,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/pci.c:206,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/pci.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 231
    functionName: parse_pci_param
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - strchr
    - parse_boolean
    linkageType: ''
    returnType: int
    signature: int parse_pci_param(const char *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:244,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:246,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:247,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:250,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:252,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:256,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:261,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:263,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:265,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:268,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 280
    functionName: check_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read8
    - pci_conf_read16
    - pci_conf_write16
    - printk
    linkageType: ''
    returnType: void
    signature: void check_pdev(const struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:284,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:285,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/pci.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: apply_quirks
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void apply_quirks(struct pci_dev *pdev)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:324,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/pci.c:328,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/pci.c:337,1
    - Dst: arch_pci_init_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:339,1
    - Dst: pdev_msi_init
      Src: /src/xen/xen/drivers/passthrough/pci.c:341,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/pci.c:344,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/pci.c:348,1
    - Dst: pdev_type
      Src: /src/xen/xen/drivers/passthrough/pci.c:351,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:359,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:360,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/pci.c:362,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/pci.c:369,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:373,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/pci.c:374,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:375,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/pci.c:378,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:380,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:390,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:391,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:396,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:398,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:399,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:402,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:409,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:422,1
    - Dst: apply_quirks
      Src: /src/xen/xen/drivers/passthrough/pci.c:427,1
    - Dst: pci_check_extcfg
      Src: /src/xen/xen/drivers/passthrough/pci.c:429,1
    - Dst: check_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:431,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 3
    argNames:
    - pseg
    - bus
    - devfn
    argTypes:
    - struct pci_seg*
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 434
    functionName: alloc_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_check_extcfg
    - spin_unlock_irqrestore
    - pdev_type
    - pci_conf_read8
    - xfree
    - xzalloc
    - BUG_ON
    - printk
    - check_pdev
    - MASK_EXTR
    - pci_conf_read16
    - PCI_FUNC
    - PCI_SLOT
    - pdev_msi_init
    - arch_pci_init_pdev
    - apply_quirks
    - list_for_each_entry
    - spin_lock_irqsave
    - pci_find_cap_offset
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: struct pci_dev
    signature: struct pci_dev *alloc_pdev(struct pci_seg *pseg, u8 bus, u8 devfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:447,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:448,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/pci.c:450,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/pci.c:453,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/pci.c:460,1
    - Dst: pdev_msi_deinit
      Src: /src/xen/xen/drivers/passthrough/pci.c:461,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/pci.c:464,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/pci.c:466,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pseg
    - pdev
    argTypes:
    - struct pci_seg*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 467
    functionName: free_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - pdev_msi_deinit
    - list_del
    - pci_conf_read8
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_pdev(struct pci_seg *pseg, struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:474,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/pci.c:475,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: _pci_hide_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - write_lock
    - list_add
    - write_unlock
    linkageType: ''
    returnType: void
    signature: void _pci_hide_device(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:486,1
    - Dst: alloc_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:487,1
    - Dst: alloc_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:490,1
    - Dst: _pci_hide_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:493,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 479
    functionDepth: 5
    functionLinenumber: 479
    functionLinenumberEnd: 500
    functionName: pci_hide_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 2
    functionsReached:
    - pcidevs_lock
    - pcidevs_unlock
    - _pci_hide_device
    - alloc_pdev
    - alloc_pseg
    linkageType: ''
    returnType: int
    signature: "int pci_hide_device(unsigned int seg, unsigned int bus,\n                           unsigned
      int devfn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:504,1
    - Dst: alloc_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:509,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/pci.c:515,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:515,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/drivers/passthrough/pci.c:517,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/pci.c:517,1
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/pci.c:520,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/pci.c:523,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:523,1
    - Dst: _pci_hide_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 527
    functionName: pci_ro_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - __set_bit
    - _pci_hide_device
    - PCI_BDF
    - alloc_xenheap_pages
    - BITS_TO_LONGS
    - memset
    - alloc_pdev
    - alloc_pseg
    linkageType: ''
    returnType: int
    signature: int pci_ro_device(int seg, int bus, int devfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:534,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - sbdf
    argTypes:
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 546
    functionName: pci_get_real_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_get_pdev
    linkageType: ''
    returnType: struct pci_dev
    signature: struct pci_dev *pci_get_real_pdev(pci_sbdf_t sbdf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:552,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:552,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/pci.c:560,1
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:562,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:567,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - d
    - sbdf
    argTypes:
    - struct domain*
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 578
    functionName: pci_get_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 9
    functionsReached:
    - ASSERT
    - get_pseg
    - is_hardware_domain
    - list_for_each_entry
    - pcidevs_locked
    linkageType: ''
    returnType: struct pci_dev
    signature: struct pci_dev *pci_get_pdev(const struct domain *d, pci_sbdf_t sbdf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:589,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/pci.c:592,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:596,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:597,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 612
    functionName: pci_enable_acs
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - pci_find_ext_capability
    - pci_conf_write16
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void pci_enable_acs(struct pci_dev *pdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:622,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:629,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:630,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/pci.c:632,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:637,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:644,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/pci.c:645,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:647,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:650,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/pci.c:651,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/pci.c:655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - sbdf
    - pos
    - paddr
    - psize
    - flags
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - uint64_t*
    - uint64_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 663
    functionName: pci_size_mem_bar
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - pci_conf_read32
    - printk
    - pci_conf_write32
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pci_size_mem_bar(pci_sbdf_t sbdf, unsigned int pos,\n
      \                             uint64_t *paddr, uint64_t *psize,\n                              unsigned
      int flags)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:670,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:670,1
    - Dst: xsm_resource_plug_pci
      Src: /src/xen/xen/drivers/passthrough/pci.c:683,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:689,1
    - Dst: alloc_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:690,1
    - Dst: alloc_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:693,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:705,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:705,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:710,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:713,1
    - Dst: free_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:714,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/pci.c:726,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:730,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/pci.c:738,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:739,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/passthrough/pci.c:747,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/pci.c:747,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:753,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:758,1
    - Dst: pci_size_mem_bar
      Src: /src/xen/xen/drivers/passthrough/pci.c:764,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:769,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:774,1
    - Dst: check_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:778,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:784,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/pci.c:785,1
    - Dst: vpci_assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:791,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/pci.c:794,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:795,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:797,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:800,1
    - Dst: iommu_add_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:801,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:804,1
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:805,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/pci.c:806,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:807,1
    - Dst: iommu_enable_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:813,1
    - Dst: pci_enable_acs
      Src: /src/xen/xen/drivers/passthrough/pci.c:815,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:818,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:821,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:825,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:827,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:828,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 101
    argCount: 5
    argNames:
    - seg
    - bus
    - devfn
    - info
    - node
    argTypes:
    - u16
    - u8
    - u8
    - struct pci_dev_info*
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 665
    functionDepth: 5
    functionLinenumber: 665
    functionLinenumberEnd: 832
    functionName: pci_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - vpci_assign_device
    - pci_enable_acs
    - BUILD_BUG_ON
    - pci_conf_read32
    - iommu_add_device
    - ARRAY_SIZE
    - PCI_SBDF
    - iommu_enable_device
    - list_del
    - printk
    - check_pdev
    - pci_find_ext_capability
    - pcidevs_lock
    - pci_conf_read16
    - PCI_FUNC
    - PCI_SLOT
    - write_unlock
    - xsm_resource_plug_pci
    - ASSERT
    - write_lock
    - vpci_deassign_device
    - alloc_pseg
    - pci_size_mem_bar
    - free_pdev
    - pcidevs_unlock
    - pci_get_pdev
    - list_add
    - alloc_pdev
    linkageType: ''
    returnType: int
    signature: "int pci_add_device(u16 seg, u8 bus, u8 devfn,\n                   const
      struct pci_dev_info *info, nodeid_t node)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:836,1
    - Dst: xsm_resource_unplug_pci
      Src: /src/xen/xen/drivers/passthrough/pci.c:840,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:849,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:850,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/pci.c:853,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:862,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:867,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:877,1
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:878,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/pci.c:879,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:880,1
    - Dst: pci_cleanup_msi
      Src: /src/xen/xen/drivers/passthrough/pci.c:882,1
    - Dst: iommu_remove_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:883,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:884,1
    - Dst: free_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:885,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:889,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 834
    functionDepth: 4
    functionLinenumber: 834
    functionLinenumberEnd: 891
    functionName: pci_remove_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - pcidevs_lock
    - write_unlock
    - vpci_deassign_device
    - free_pdev
    - pcidevs_unlock
    - get_pseg
    - iommu_remove_device
    - list_del
    - xsm_resource_unplug_pci
    - printk
    - write_lock
    - list_empty
    - list_for_each_entry
    - pci_cleanup_msi
    linkageType: ''
    returnType: int
    signature: int pci_remove_device(u16 seg, u8 bus, u8 devfn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:897,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:902,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:905,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:905,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:906,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:906,1
    - Dst: iommu_quarantine_dev_init
      Src: /src/xen/xen/drivers/passthrough/pci.c:913,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:913,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:925,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:925,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:927,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:928,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:933,1
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:934,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:935,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:938,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:939,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:948,1
    - Dst: vpci_assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:950,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:951,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:955,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:956,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - d
    - seg
    - bus
    - devfn
    argTypes:
    - struct domain*
    - uint16_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 959
    functionName: deassign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 9
    functionsReached:
    - iommu_quarantine_dev_init
    - dom_iommu
    - PCI_SLOT
    - write_unlock
    - vpci_assign_device
    - vpci_deassign_device
    - PCI_SBDF
    - pci_to_dev
    - iommu_call
    - ASSERT
    - pci_get_pdev
    - printk
    - write_lock
    - is_iommu_enabled
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int deassign_device(struct domain *d, uint16_t seg, uint8_t bus,\n
      \                          uint8_t devfn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/pci.c:964,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:966,1
    - Dst: arch_pci_clean_pirqs
      Src: /src/xen/xen/drivers/passthrough/pci.c:968,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:971,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:975,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/pci.c:977,1
    - Dst: list_first_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:979,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:987,1
    - Dst: deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:988,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:989,1
    - Dst: list_move_tail
      Src: /src/xen/xen/drivers/passthrough/pci.c:1004,1
    - Dst: list_splice
      Src: /src/xen/xen/drivers/passthrough/pci.c:1013,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1014,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 1018
    functionName: pci_release_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - list_first_entry
    - pcidevs_lock
    - list_move_tail
    - list_splice
    - LIST_HEAD
    - write_unlock
    - arch_pci_clean_pirqs
    - pcidevs_unlock
    - write_lock
    - list_empty
    - deassign_device
    linkageType: ''
    returnType: int
    signature: int pci_release_devices(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_move_tail
      Src: /src/xen/xen/drivers/passthrough/pci.c:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - list_move_tail
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, tmp )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1026,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:1026,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1027,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1027,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1030,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1030,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1036,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1054
    functionName: pdev_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - PCI_FUNC
    - PCI_SLOT
    - PCI_SBDF
    - pci_find_cap_offset
    linkageType: ''
    returnType: enum pdev_type
    signature: enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1073,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:1075,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:1092,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:1111,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:1115,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1127
    functionName: pci_check_extcfg
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 2
    functionsReached:
    - pci_find_cap_offset
    - pci_conf_read32
    - printk
    linkageType: ''
    returnType: void
    signature: void pci_check_extcfg(struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:1137,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/pci.c:1151,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/pci.c:1165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - seg
    - bus
    - devfn
    - secbus
    argTypes:
    - u16
    - u8*
    - u8*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1167
    functionName: find_upstream_bridge
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - get_pseg
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int find_upstream_bridge(u16 seg, u8 *bus, u8 *devfn, u8 *secbus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/pci.c:1173,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - seg
    - bus
    - dev
    - func
    argTypes:
    - u16
    - u8
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1179
    functionName: pci_device_detect
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - pci_conf_read32
    linkageType: ''
    returnType: bool
    signature: bool pci_device_detect(u16 seg, u8 bus, u8 dev, u8 func)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/pci.c:1184,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1187,1
    - Dst: pci_get_real_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1188,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1188,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/passthrough/pci.c:1192,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1198,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1205,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1207
    functionName: pci_check_disable_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pci_conf_read16
    - PCI_SBDF
    - pcidevs_unlock
    - pci_get_real_pdev
    - MILLISECS
    - pci_conf_write16
    - NOW
    linkageType: ''
    returnType: void
    signature: void pci_check_disable_device(u16 seg, u8 bus, u8 devfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/passthrough/pci.c:1224,1
    - Dst: alloc_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1231,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/pci.c:1231,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1234,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1235,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/pci.c:1239,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1239,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - pseg
    - arg
    argTypes:
    - struct pci_seg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1213
    functionDepth: 5
    functionLinenumber: 1213
    functionLinenumberEnd: 1248
    functionName: _scan_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_device_detect
    - PCI_SBDF
    - PCI_DEVFN
    - printk
    - pci_conf_read8
    - alloc_pdev
    linkageType: ''
    returnType: int
    signature: int _scan_pci_devices(struct pci_seg *pseg, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1254,1
    - Dst: pci_segments_iterate
      Src: /src/xen/xen/drivers/passthrough/pci.c:1255,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1259
    functionName: scan_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pcidevs_unlock
    - pci_segments_iterate
    linkageType: ''
    returnType: int
    signature: int scan_pci_devices(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct setup_hwdom*::handler
      Src: /src/xen/xen/drivers/passthrough/pci.c:1273,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1276,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1283,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1283,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1285,1
    - Dst: vpci_assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1286,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1287,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ctxt
    - pdev
    argTypes:
    - struct setup_hwdom*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1291
    functionName: __hwdom_init::setup_one_hwdom_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - PCI_SLOT
    - write_unlock
    - vpci_assign_device
    - struct setup_hwdom*::handler
    - printk
    - write_lock
    linkageType: ''
    returnType: void
    signature: "void __hwdom_init setup_one_hwdom_device(const struct setup_hwdom
      *ctxt,\n                                                struct pci_dev *pdev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1303,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1304,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1312,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/pci.c:1313,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1314,1
    - Dst: setup_one_hwdom_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1315,1
    - Dst: setup_one_hwdom_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1320,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1324,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1329,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/pci.c:1330,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1331,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1337,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/pci.c:1338,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1339,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - pseg
    - arg
    argTypes:
    - struct pci_seg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1293
    functionDepth: 5
    functionLinenumber: 1293
    functionLinenumberEnd: 1344
    functionName: _setup_hwdom_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - write_unlock
    - PCI_SBDF
    - pcidevs_unlock
    - process_pending_softirqs
    - pci_get_pdev
    - printk
    - setup_one_hwdom_device
    - write_lock
    - list_add
    linkageType: ''
    returnType: int
    signature: "int _setup_hwdom_pci_devices(\n    struct pci_seg *pseg, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1351,1
    - Dst: pci_segments_iterate
      Src: /src/xen/xen/drivers/passthrough/pci.c:1352,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1346
    functionDepth: 4
    functionLinenumber: 1346
    functionLinenumberEnd: 1354
    functionName: __hwdom_init::setup_hwdom_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pcidevs_unlock
    - pci_segments_iterate
    linkageType: ''
    returnType: void
    signature: "void __hwdom_init setup_hwdom_pci_devices(\n    struct domain *d,
      int (*handler)(uint8_t devfn, struct pci_dev *pdev))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_HEST_SEGMENT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1364,1
    - Dst: ACPI_HEST_BUS
      Src: /src/xen/xen/drivers/passthrough/pci.c:1365,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1366,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/pci.c:1367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pdev
    argTypes:
    - struct acpi_hest_aer_common*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1368
    functionName: hest_match_pci
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - PCI_FUNC
    - ACPI_HEST_BUS
    - PCI_SLOT
    - ACPI_HEST_SEGMENT
    linkageType: ''
    returnType: int
    signature: "int hest_match_pci(const struct acpi_hest_aer_common *p,\n                          const
      struct pci_dev *pdev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1373,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/pci.c:1374,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1374,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/pci.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - hest_hdr
    - pdev
    argTypes:
    - struct acpi_hest_header*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1389
    functionName: hest_match_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_find_cap_offset
    - pci_conf_read16
    - MASK_EXTR
    linkageType: ''
    returnType: bool
    signature: "bool hest_match_type(const struct acpi_hest_header *hest_hdr,\n                              const
      struct pci_dev *pdev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - hest_hdr
    argTypes:
    - struct acpi_hest_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1403
    functionName: hest_source_is_pcie_aer
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hest_source_is_pcie_aer(const struct acpi_hest_header *hest_hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hest_source_is_pcie_aer
      Src: /src/xen/xen/drivers/passthrough/pci.c:1412,1
    - Dst: hest_match_type
      Src: /src/xen/xen/drivers/passthrough/pci.c:1430,1
    - Dst: hest_match_pci
      Src: /src/xen/xen/drivers/passthrough/pci.c:1431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - hest_hdr
    - data
    argTypes:
    - struct acpi_hest_header*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1405
    functionDepth: 2
    functionLinenumber: 1405
    functionLinenumberEnd: 1438
    functionName: aer_hest_parse
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - hest_match_pci
    - hest_source_is_pcie_aer
    - hest_match_type
    linkageType: ''
    returnType: int
    signature: "int aer_hest_parse(\n    const struct acpi_hest_header *hest_hdr,
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1444,1
    - Dst: apei_hest_parse
      Src: /src/xen/xen/drivers/passthrough/pci.c:1445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1440
    functionDepth: 2
    functionLinenumber: 1440
    functionLinenumberEnd: 1447
    functionName: pcie_aer_get_firmware_first
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pci_find_cap_offset
    - apei_hest_parse
    linkageType: ''
    returnType: bool
    signature: bool pcie_aer_get_firmware_first(const struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1454,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:1456,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1458,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1461,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1464,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1465,1
    - Dst: pdev_dump_msi
      Src: /src/xen/xen/drivers/passthrough/pci.c:1466,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pseg
    - arg
    argTypes:
    - struct pci_seg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1471
    functionName: _dump_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pdev_dump_msi
    - list_for_each_entry
    - printk
    linkageType: ''
    returnType: int
    signature: int _dump_pci_devices(struct pci_seg *pseg, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1475,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1476,1
    - Dst: pci_segments_iterate
      Src: /src/xen/xen/drivers/passthrough/pci.c:1477,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1473
    functionDepth: 4
    functionLinenumber: 1473
    functionLinenumberEnd: 1479
    functionName: dump_pci_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pcidevs_unlock
    - pci_segments_iterate
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_pci_devices(unsigned char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: register_keyhandler
      Src: /src/xen/xen/drivers/passthrough/pci.c:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1485
    functionName: setup_dump_pcidevs
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - register_keyhandler
    linkageType: ''
    returnType: int
    signature: int setup_dump_pcidevs(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1497,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:1497,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:1499,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:1500,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1503,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1503,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1510,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1510,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1512,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1512,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1514,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1488
    functionDepth: 2
    functionLinenumber: 1488
    functionLinenumberEnd: 1517
    functionName: iommu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - dom_iommu
    - PCI_SLOT
    - PCI_SBDF
    - pci_to_dev
    - iommu_call
    - ASSERT
    - printk
    - is_iommu_enabled
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int iommu_add_device(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1526,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:1526,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:1528,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:1529,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1533,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1534
    functionName: iommu_enable_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - dom_iommu
    - pci_to_dev
    - iommu_call
    - ASSERT
    - is_iommu_enabled
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int iommu_enable_device(struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:1544,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:1545,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1553,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1553,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1555,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1556,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1560,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1561,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1567,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1568
    functionName: iommu_remove_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - PCI_SLOT
    - dom_iommu
    - PCI_SBDF
    - pci_to_dev
    - iommu_call
    - printk
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_remove_device(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1575,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:1575,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1576,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1590
    functionName: device_assigned
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - PCI_SBDF
    - pci_get_pdev
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int device_assigned(u16 seg, u8 bus, u8 devfn)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:1595,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:1599,1
    - Dst: arch_iommu_use_permitted
      Src: /src/xen/xen/drivers/passthrough/pci.c:1602,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1606,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/pci.c:1606,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1607,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1607,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1608,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1616,1
    - Dst: vpci_deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1617,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1618,1
    - Dst: pdev_msix_assign
      Src: /src/xen/xen/drivers/passthrough/pci.c:1620,1
    - Dst: iommu_quarantine_dev_init
      Src: /src/xen/xen/drivers/passthrough/pci.c:1626,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1626,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1633,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1633,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1639,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1639,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1641,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/pci.c:1642,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1648,1
    - Dst: vpci_assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1649,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1650,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1655,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1657,1
    - Dst: deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1659,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/pci.c:1668,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/pci.c:1669,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 5
    argNames:
    - d
    - seg
    - bus
    - devfn
    - flag
    argTypes:
    - struct domain*
    - u16
    - u8
    - u8
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1677
    functionName: assign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 20
    functionsReached:
    - vpci_assign_device
    - deassign_device
    - pdev_msix_assign
    - PCI_SBDF
    - pci_to_dev
    - printk
    - domain_crash
    - is_hardware_domain
    - is_iommu_enabled
    - iommu_quarantine_dev_init
    - dom_iommu
    - PCI_SLOT
    - write_unlock
    - ASSERT
    - arch_iommu_use_permitted
    - vpci_deassign_device
    - write_lock
    - iommu_call
    - pci_get_pdev
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int assign_device(struct domain *d, u16 seg, u8 bus, u8 devfn, u32
      flag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/pci.c:1683,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/pci.c:1690,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1693,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1697,1
    - Dst: xsm_get_device_group
      Src: /src/xen/xen/drivers/passthrough/pci.c:1706,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1709,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1712,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/pci.c:1720,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1720,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1722,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1729,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 5
    argNames:
    - d
    - seg
    - bus
    - devfn
    - max_sdevs
    argTypes:
    - struct domain*
    - u16
    - u8
    - u8
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1732
    functionName: iommu_get_device_group
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - dom_iommu
    - xsm_get_device_group
    - copy_to_guest_offset
    - iommu_call
    - pcidevs_unlock
    - unlikely
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int iommu_get_device_group(\n    struct domain *d, u16 seg, u8 bus,
      u8 devfn,\n    XEN_GUEST_HANDLE_64(uint32) buf, int max_sdevs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xsm_get_device_group
      Src: /src/xen/xen/drivers/passthrough/pci.c:1706,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/pci.c:1709,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1712,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/pci.c:1720,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/drivers/passthrough/pci.c:1720,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1722,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1727
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - xsm_get_device_group
    - copy_to_guest_offset
    - iommu_call
    - pcidevs_unlock
    - unlikely
    linkageType: ''
    returnType: void
    signature: void for_each_pdev( d, pdev )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1736,1
    - Dst: disable_ats_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1738,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1740,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1743,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/passthrough/pci.c:1749,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1750,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/pci.c:1752,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/pci.c:1753,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1755,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - d
    - pdev
    argTypes:
    - struct domain*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1756
    functionName: iommu_dev_iotlb_flush_timeout
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - disable_ats_device
    - pcidevs_unlock
    - ASSERT
    - printk_ratelimit
    - printk
    - domain_crash
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void iommu_dev_iotlb_flush_timeout(struct domain *d, struct pci_dev
      *pdev)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: XEN_GUEST_HANDLE_64
      Src: /src/xen/xen/drivers/passthrough/pci.c:1774,1
    - Dst: xsm_get_device_group
      Src: /src/xen/xen/drivers/passthrough/pci.c:1776,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/pci.c:1781,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/pci.c:1782,1
    - Dst: iommu_get_device_group
      Src: /src/xen/xen/drivers/passthrough/pci.c:1786,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1789,1
    - Dst: __copy_field_to_guest
      Src: /src/xen/xen/drivers/passthrough/pci.c:1797,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/pci.c:1803,1
    - Dst: xsm_assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1826,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/pci.c:1831,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/pci.c:1832,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1834,1
    - Dst: device_assigned
      Src: /src/xen/xen/drivers/passthrough/pci.c:1835,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/pci.c:1840,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/pci.c:1841,1
    - Dst: assign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1846,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1847,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/drivers/passthrough/pci.c:1849,1
    - Dst: xsm_deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1871,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/pci.c:1876,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/pci.c:1877,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1879,1
    - Dst: deassign_device
      Src: /src/xen/xen/drivers/passthrough/pci.c:1880,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1881,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1758
    functionDepth: 4
    functionLinenumber: 1758
    functionLinenumberEnd: 1890
    functionName: iommu_do_pci_domctl
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - PCI_BUS
    - xsm_get_device_group
    - xsm_assign_device
    - PCI_SBDF
    - PCI_DEVFN
    - xsm_deassign_device
    - assign_device
    - ASSERT
    - pcidevs_unlock
    - hypercall_create_continuation
    - device_assigned
    - printk
    - XEN_GUEST_HANDLE_64
    - iommu_get_device_group
    - dprintk
    - deassign_device
    - __copy_field_to_guest
    linkageType: ''
    returnType: int
    signature: "int iommu_do_pci_domctl(\n    struct xen_domctl *domctl, struct domain
      *d,\n    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/pci.c:1903,1
    - Dst: struct segment_iter*::handler
      Src: /src/xen/xen/drivers/passthrough/pci.c:1905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pseg
    - arg
    argTypes:
    - struct pci_seg*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1912
    functionName: iterate_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 0
    functionsReached:
    - struct segment_iter*::handler
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int iterate_all(struct pci_seg *pseg, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_segments_iterate
      Src: /src/xen/xen/drivers/passthrough/pci.c:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1918
    functionDepth: 4
    functionLinenumber: 1918
    functionLinenumberEnd: 1927
    functionName: pci_iterate_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - pci_segments_iterate
    linkageType: ''
    returnType: int
    signature: "int pci_iterate_devices(int (*handler)(struct pci_dev *pdev, void
      *arg),\n                        void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pseg
      Src: /src/xen/xen/drivers/passthrough/pci.c:1934,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1943,1
    - Dst: iterate_all
      Src: /src/xen/xen/drivers/passthrough/pci.c:1945,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/pci.c:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - segment
    - arg
    argTypes:
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1930
    functionDepth: 4
    functionLinenumber: 1930
    functionLinenumberEnd: 1950
    functionName: pci_segment_iterate
    functionSourceFile: /src/xen/xen/drivers/passthrough/pci.c
    functionUses: 1
    functionsReached:
    - pcidevs_lock
    - get_pseg
    - pcidevs_unlock
    - iterate_all
    linkageType: ''
    returnType: int
    signature: "int pci_segment_iterate(unsigned int segment,\n                        int
      (*handler)(struct pci_dev *pdev, void *arg),\n                        void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:74,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:76,1
    - Dst: parse_bool
      Src: /src/xen/xen/drivers/passthrough/iommu.c:78,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:80,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:81,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:84,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/passthrough/iommu.c:86,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:89,1
    - Dst: no_config_param
      Src: /src/xen/xen/drivers/passthrough/iommu.c:93,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:95,1
    - Dst: no_config_param
      Src: /src/xen/xen/drivers/passthrough/iommu.c:99,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:102,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:105,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:108,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:112,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:116,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:120,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:123,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:129,1
    - Dst: no_config_param
      Src: /src/xen/xen/drivers/passthrough/iommu.c:133,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:135,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:137,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 150
    functionName: parse_iommu_param
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - parse_boolean
    - strchr
    - strncmp
    - no_config_param
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_iommu_param(const char *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:161,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:163,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:165,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:167,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:169,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/passthrough/iommu.c:171,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/passthrough/iommu.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 182
    functionName: parse_dom0_iommu_param
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - strchr
    - cmdline_strcmp
    - parse_boolean
    linkageType: ''
    returnType: int
    signature: int parse_dom0_iommu_param(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:187,1
    - Dst: __hwdom_init::arch_iommu_check_autotranslated_hwdom
      Src: /src/xen/xen/drivers/passthrough/iommu.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: __hwdom_init::check_hwdom_reqs
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - __hwdom_init::arch_iommu_check_autotranslated_hwdom
    - is_hvm_domain
    linkageType: ''
    returnType: void
    signature: void __hwdom_init check_hwdom_reqs(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:198,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:201,1
    - Dst: check_hwdom_reqs
      Src: /src/xen/xen/drivers/passthrough/iommu.c:202,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:204,1
    - Dst: arch_iommu_domain_init
      Src: /src/xen/xen/drivers/passthrough/iommu.c:211,1
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:215,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:216,1
    - Dst: is_system_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:217,1
    - Dst: hap_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:226,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:234,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/iommu.c:235,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:237,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - d
    - opts
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 240
    functionName: iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 3
    functionsReached:
    - arch_iommu_domain_init
    - dom_iommu
    - check_hwdom_reqs
    - iommu_get_ops
    - iommu_use_hap_pt
    - iommu_call
    - hap_enabled
    - ASSERT
    - is_system_domain
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_domain_init(struct domain *d, unsigned int opts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:246,1
    - Dst: rcu_read_lock
      Src: /src/xen/xen/drivers/passthrough/iommu.c:248,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:252,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:252,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/iommu.c:255,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:257,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:261,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:261,1
    - Dst: rcu_read_unlock
      Src: /src/xen/xen/drivers/passthrough/iommu.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: iommu_dump_page_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - iommu_vcall
    - rcu_read_unlock
    - iommu_use_hap_pt
    - ASSERT
    - printk
    - rcu_read_lock
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void iommu_dump_page_tables(unsigned char key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:252,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:252,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/iommu.c:255,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:257,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:261,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 262
    functionName: for_each_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 10
    functionsReached:
    - dom_iommu
    - iommu_vcall
    - iommu_use_hap_pt
    - printk
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void for_each_domain(d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:269,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:271,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: __hwdom_init::iommu_hwdom_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - iommu_vcall
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void __hwdom_init iommu_hwdom_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:279,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: iommu_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - iommu_vcall
    linkageType: ''
    returnType: void
    signature: void iommu_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:293,1
    - Dst: iommu_teardown
      Src: /src/xen/xen/drivers/passthrough/iommu.c:296,1
    - Dst: arch_iommu_domain_destroy
      Src: /src/xen/xen/drivers/passthrough/iommu.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 299
    functionName: iommu_domain_destroy
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 4
    functionsReached:
    - arch_iommu_domain_destroy
    - is_iommu_enabled
    - iommu_teardown
    linkageType: ''
    returnType: void
    signature: void iommu_domain_destroy(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:304,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:304,1
    - Dst: ffsl
      Src: /src/xen/xen/drivers/passthrough/iommu.c:306,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:308,1
    - Dst: ffsl
      Src: /src/xen/xen/drivers/passthrough/iommu.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - hd
    - dfn
    - mfn
    - nr
    argTypes:
    - struct domain_iommu*
    - dfn_t
    - mfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 324
    functionName: mapping_order
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - mfn_x
    - dfn_x
    - ffsl
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int mapping_order(const struct domain_iommu *hd,\n                                  dfn_t
      dfn, mfn_t mfn, unsigned long nr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:330,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:335,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:338,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/iommu.c:338,1
    - Dst: dfn_add
      Src: /src/xen/xen/drivers/passthrough/iommu.c:342,1
    - Dst: mfn_add
      Src: /src/xen/xen/drivers/passthrough/iommu.c:343,1
    - Dst: mapping_order
      Src: /src/xen/xen/drivers/passthrough/iommu.c:345,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/drivers/passthrough/iommu.c:348,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:352,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/iommu.c:353,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:355,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/passthrough/iommu.c:358,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:359,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:361,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:361,1
    - Dst: iommu_unmap
      Src: /src/xen/xen/drivers/passthrough/iommu.c:364,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:367,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/iommu.c:368,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:377,1
    - Dst: iommu_iotlb_flush_all
      Src: /src/xen/xen/drivers/passthrough/iommu.c:378,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 22
    argCount: 6
    argNames:
    - d
    - dfn0
    - mfn0
    - page_count
    - flags
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t
    - unsigned long
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 382
    functionName: iommu_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - likely
    - printk_ratelimit
    - IOMMUF_order
    - general_preempt_check
    - dfn_x
    - printk
    - mapping_order
    - iommu_iotlb_flush_all
    - domain_crash
    - is_hardware_domain
    - is_iommu_enabled
    - dom_iommu
    - mfn_x
    - iommu_unmap
    - ASSERT
    - dfn_add
    - mfn_add
    - iommu_call
    - unlikely
    linkageType: ''
    returnType: long
    signature: "long iommu_map(struct domain *d, dfn_t dfn0, mfn_t mfn0,\n               unsigned
      long page_count, unsigned int flags,\n               unsigned int *flush_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:390,1
    - Dst: iommu_map
      Src: /src/xen/xen/drivers/passthrough/iommu.c:391,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:393,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/drivers/passthrough/iommu.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - d
    - dfn
    - mfn
    - page_count
    - flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: iommu_legacy_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 7
    functionsReached:
    - ASSERT
    - iommu_map
    - iommu_iotlb_flush
    - this_cpu
    linkageType: ''
    returnType: int
    signature: "int iommu_legacy_map(struct domain *d, dfn_t dfn, mfn_t mfn,\n                     unsigned
      long page_count, unsigned int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:402,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:407,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/iommu.c:410,1
    - Dst: dfn_add
      Src: /src/xen/xen/drivers/passthrough/iommu.c:414,1
    - Dst: mapping_order
      Src: /src/xen/xen/drivers/passthrough/iommu.c:417,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/iommu.c:417,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/drivers/passthrough/iommu.c:420,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:424,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/iommu.c:425,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:427,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/passthrough/iommu.c:430,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:431,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:433,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:438,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/iommu.c:440,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:449,1
    - Dst: iommu_iotlb_flush_all
      Src: /src/xen/xen/drivers/passthrough/iommu.c:450,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 5
    argNames:
    - d
    - dfn0
    - page_count
    - flags
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 454
    functionName: iommu_unmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - dom_iommu
    - dfn_add
    - _mfn
    - likely
    - iommu_call
    - ASSERT
    - IOMMUF_order
    - printk_ratelimit
    - dfn_x
    - printk
    - unlikely
    - mapping_order
    - iommu_iotlb_flush_all
    - domain_crash
    - general_preempt_check
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: long
    signature: "long iommu_unmap(struct domain *d, dfn_t dfn0, unsigned long page_count,\n
      \                unsigned int flags, unsigned int *flush_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_unmap
      Src: /src/xen/xen/drivers/passthrough/iommu.c:459,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:461,1
    - Dst: iommu_iotlb_flush
      Src: /src/xen/xen/drivers/passthrough/iommu.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - d
    - dfn
    - page_count
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: iommu_legacy_unmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 7
    functionsReached:
    - iommu_iotlb_flush
    - iommu_unmap
    - this_cpu
    linkageType: ''
    returnType: int
    signature: int iommu_legacy_unmap(struct domain *d, dfn_t dfn, unsigned long page_count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:470,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:472,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - d
    - dfn
    - mfn
    - flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 476
    functionName: iommu_lookup_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_call
    - dom_iommu
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int iommu_lookup_page(struct domain *d, dfn_t dfn, mfn_t *mfn,\n                      unsigned
      int *flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:481,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:484,1
    - Dst: dfn_eq
      Src: /src/xen/xen/drivers/passthrough/iommu.c:488,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:491,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:493,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/passthrough/iommu.c:495,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:496,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/iommu.c:498,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:500,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/iommu.c:501,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 505
    functionName: iommu_iotlb_flush
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 6
    functionsReached:
    - dom_iommu
    - iommu_call
    - printk_ratelimit
    - dfn_x
    - printk
    - unlikely
    - domain_crash
    - dfn_eq
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int iommu_iotlb_flush(struct domain *d, dfn_t dfn, unsigned long page_count,\n
      \                     unsigned int flush_flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:509,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:512,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:516,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/iommu.c:518,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/passthrough/iommu.c:520,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:521,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/iommu.c:525,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/iommu.c:526,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - d
    - flush_flags
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 530
    functionName: iommu_iotlb_flush_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 3
    functionsReached:
    - dom_iommu
    - iommu_call
    - printk_ratelimit
    - printk
    - unlikely
    - domain_crash
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_iotlb_flush_all(struct domain *d, unsigned int flush_flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:534,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dev
    argTypes:
    - device_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: iommu_quarantine_dev_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_call
    - dom_iommu
    linkageType: ''
    returnType: int
    signature: int iommu_quarantine_dev_init(device_t *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_domain_init
      Src: /src/xen/xen/drivers/passthrough/iommu.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: iommu_quarantine_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_domain_init
    linkageType: ''
    returnType: int
    signature: int iommu_quarantine_init(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: iommu_hardware_setup
      Src: /src/xen/xen/drivers/passthrough/iommu.c:562,1
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:564,1
    - Dst: ISOLATE_LSB
      Src: /src/xen/xen/drivers/passthrough/iommu.c:565,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:567,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/iommu.c:581,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:589,1
    - Dst: iommu_quarantine_init
      Src: /src/xen/xen/drivers/passthrough/iommu.c:597,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/iommu.c:598,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:600,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:604,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/drivers/passthrough/iommu.c:607,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 612
    functionName: iommu_setup
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - ISOLATE_LSB
    - iommu_hardware_setup
    - panic
    - iommu_get_ops
    - register_keyhandler
    - printk
    - iommu_quarantine_init
    linkageType: ''
    returnType: int
    signature: int iommu_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:617,1
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: iommu_suspend
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_call
    - iommu_get_ops
    linkageType: ''
    returnType: int
    signature: int iommu_suspend(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:625,1
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: iommu_resume
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_vcall
    - iommu_get_ops
    linkageType: ''
    returnType: void
    signature: void iommu_resume(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:634,1
    - Dst: iommu_do_pci_domctl
      Src: /src/xen/xen/drivers/passthrough/iommu.c:638,1
    - Dst: iommu_do_dt_domctl
      Src: /src/xen/xen/drivers/passthrough/iommu.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 628
    functionDepth: 5
    functionLinenumber: 628
    functionLinenumberEnd: 647
    functionName: iommu_do_domctl
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_do_pci_domctl
    - iommu_do_dt_domctl
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: "int iommu_do_domctl(\n    struct xen_domctl *domctl, struct domain
      *d,\n    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:655,1
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 664
    functionName: iommu_crash_shutdown
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_vcall
    - iommu_get_ops
    linkageType: ''
    returnType: void
    signature: void iommu_crash_shutdown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:673,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/iommu.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 676
    functionName: iommu_quiesce
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_vcall
    - iommu_get_ops
    linkageType: ''
    returnType: void
    signature: void iommu_quiesce(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/iommu.c:685,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/iommu.c:689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - func
    - ctxt
    argTypes:
    - iommu_grdm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 690
    functionName: iommu_get_reserved_device_memory
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_call
    - iommu_get_ops
    linkageType: ''
    returnType: int
    signature: int iommu_get_reserved_device_memory(iommu_grdm_t *func, void *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/iommu.c:694,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/iommu.c:694,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/iommu.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - d
    - feature
    argTypes:
    - struct domain*
    - enum iommu_feature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 695
    functionName: iommu_has_feature
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 1
    functionsReached:
    - test_bit
    - dom_iommu
    - is_iommu_enabled
    linkageType: ''
    returnType: bool
    signature: bool iommu_has_feature(struct domain *d, enum iommu_feature feature)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - start
    - nr
    - sbdf
    - name
    argTypes:
    - unsigned long
    - unsigned long
    - pci_sbdf_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 725
    functionName: iommu_add_extra_reserved_device_memory
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int iommu_add_extra_reserved_device_memory(unsigned long start,\n
      \                                                 unsigned long nr,\n                                                  pci_sbdf_t
      sbdf,\n                                                  const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:736,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/iommu.c:737,1
    - Dst: reserve_e820_ram
      Src: /src/xen/xen/drivers/passthrough/iommu.c:740,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/iommu.c:742,1
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/iommu.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - func
    - ctxt
    argTypes:
    - iommu_grdm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 757
    functionName: iommu_get_extra_reserved_device_memory
    functionSourceFile: /src/xen/xen/drivers/passthrough/iommu.c
    functionUses: 0
    functionsReached:
    - pfn_to_paddr
    - reserve_e820_ram
    - printk
    - func
    linkageType: ''
    returnType: int
    signature: "int iommu_get_extra_reserved_device_memory(iommu_grdm_t *func,\n                                                  void
      *ctxt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_reset_msix_state
      Src: /src/xen/xen/drivers/passthrough/msi.c:12,1
    - Dst: msixtbl_init
      Src: /src/xen/xen/drivers/passthrough/msi.c:15,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - pdev
    argTypes:
    - struct domain*
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 19
    functionName: pdev_msix_assign
    functionSourceFile: /src/xen/xen/drivers/passthrough/msi.c
    functionUses: 1
    functionsReached:
    - pci_reset_msix_state
    - msixtbl_init
    linkageType: ''
    returnType: int
    signature: int pdev_msix_assign(struct domain *d, struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/msi.c:25,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/msi.c:27,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/msi.c:30,1
    - Dst: msi_control_reg
      Src: /src/xen/xen/drivers/passthrough/msi.c:30,1
    - Dst: multi_msi_capable
      Src: /src/xen/xen/drivers/passthrough/msi.c:33,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/msi.c:36,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/msi.c:39,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/msi.c:47,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/msi.c:49,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/passthrough/msi.c:49,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/msi.c:58,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/msi.c:64,1
    - Dst: msix_control_reg
      Src: /src/xen/xen/drivers/passthrough/msi.c:64,1
    - Dst: msix_table_size
      Src: /src/xen/xen/drivers/passthrough/msi.c:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 73
    functionName: pdev_msi_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/msi.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - xzalloc
    - msix_table_size
    - msi_control_reg
    - spin_lock_init
    - multi_msi_capable
    - msix_control_reg
    - pci_find_cap_offset
    - printk
    - INIT_LIST_HEAD
    - pci_conf_write16
    linkageType: ''
    returnType: int
    signature: int pdev_msi_init(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/drivers/passthrough/msi.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: pdev_msi_deinit
    functionSourceFile: /src/xen/xen/drivers/passthrough/msi.c
    functionUses: 1
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void pdev_msi_deinit(struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/msi.c:84,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/msi.c:87,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/msi.c:88,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/msi.c:89,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/msi.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: pdev_dump_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/msi.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - list_empty
    - printk
    linkageType: ''
    returnType: void
    signature: void pdev_dump_msi(const struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:32,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:34,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:34,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:36,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:39,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:42,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:44,1
    - Dst: struct domain_iommu*::platform_ops::assign_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:48,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:48,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:53,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:54,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: iommu_assign_dt_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 2
    functionsReached:
    - dt_device_set_used_by
    - dom_iommu
    - spin_unlock
    - dt_to_dev
    - struct domain_iommu*::platform_ops::assign_device
    - ASSERT
    - spin_lock
    - dt_device_is_protected
    - rw_is_locked
    - list_add
    - list_empty
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_assign_dt_device(struct domain *d, struct dt_device_node
      *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:64,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:67,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:67,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:69,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:72,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:75,1
    - Dst: struct domain_iommu*::platform_ops::reassign_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:77,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:77,1
    - Dst: list_del_init
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:81,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:82,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 88
    functionName: iommu_deassign_dt_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - dt_device_set_used_by
    - dom_iommu
    - list_del_init
    - spin_unlock
    - dt_to_dev
    - struct domain_iommu*::platform_ops::reassign_device
    - ASSERT
    - spin_lock
    - dt_device_is_protected
    - rw_is_locked
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_deassign_dt_device(struct domain *d, struct dt_device_node
      *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:94,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:94,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:96,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: iommu_dt_device_is_assigned_locked
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - list_empty
    - dt_device_is_protected
    linkageType: ''
    returnType: bool
    signature: bool iommu_dt_device_is_assigned_locked(const struct dt_device_node
      *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:106,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: iommu_dt_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - INIT_LIST_HEAD
    - dom_iommu
    linkageType: ''
    returnType: int
    signature: int iommu_dt_domain_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:113,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:117,1
    - Dst: read_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:120,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:122,1
    - Dst: iommu_deassign_dt_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:124,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:127,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:128,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:129,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 138
    functionName: iommu_release_dt_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - iommu_deassign_dt_device
    - dt_node_full_name
    - read_unlock
    - list_for_each_entry_safe
    - dprintk
    - read_lock
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_release_dt_devices(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_is_available
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:149,1
    - Dst: iommu_fwspec_init
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:152,1
    - Dst: struct iommu_ops*::dt_xlate
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - dev
    - iommu_spec
    - ops
    argTypes:
    - struct device*
    - struct dt_phandle_args*
    - struct iommu_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: iommu_dt_xlate
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - iommu_fwspec_init
    - struct iommu_ops*::dt_xlate
    - dt_device_is_available
    linkageType: ''
    returnType: int
    signature: "int iommu_dt_xlate(struct device *dev,\n                          const
      struct dt_phandle_args *iommu_spec,\n                          const struct
      iommu_ops *ops)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:167,1
    - Dst: pci_to_dev
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:169,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:180,1
    - Dst: pci_find_host_bridge_node
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:183,1
    - Dst: dt_map_id
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:192,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:192,1
    - Dst: iommu_dt_xlate
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:197,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:200,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:207,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:207,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 210
    functionName: iommu_add_dt_pci_sideband_ids
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 0
    functionsReached:
    - PCI_SLOT
    - pci_to_dev
    - iommu_get_ops
    - PCI_BDF
    - iommu_dt_xlate
    - dt_map_id
    - pci_find_host_bridge_node
    - dev_iommu_fwspec_get
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:215,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:216,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:219,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:219,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:227,1
    - Dst: iommu_dt_device_is_assigned_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:229,1
    - Dst: struct iommu_ops*::remove_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:245,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:249,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:249,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:250,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 256
    functionName: iommu_remove_dt_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 1
    functionsReached:
    - iommu_dt_device_is_assigned_locked
    - spin_unlock
    - dt_to_dev
    - iommu_get_ops
    - ASSERT
    - spin_lock
    - struct iommu_ops*::remove_device
    - dt_device_is_protected
    - rw_is_locked
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int iommu_remove_dt_device(struct dt_device_node *np)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:260,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:262,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:265,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:265,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:277,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:280,1
    - Dst: dt_parse_phandle_with_args
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:286,1
    - Dst: iommu_dt_xlate
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:299,1
    - Dst: struct iommu_ops*::add_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:311,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:314,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - np
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 258
    functionDepth: 6
    functionLinenumber: 258
    functionLinenumberEnd: 319
    functionName: iommu_add_dt_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 2
    functionsReached:
    - spin_unlock
    - dt_to_dev
    - iommu_get_ops
    - ASSERT
    - spin_lock
    - iommu_dt_xlate
    - rw_is_locked
    - dt_parse_phandle_with_args
    - dev_iommu_fwspec_get
    - struct iommu_ops*::add_device
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int iommu_add_dt_device(struct dt_device_node *np)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: read_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:327,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:332,1
    - Dst: dt_find_node_by_gpath
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:343,1
    - Dst: xsm_assign_dtdevice
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:349,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:349,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:355,1
    - Dst: iommu_dt_device_is_assigned_locked
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:357,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:359,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:360,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:364,1
    - Dst: iommu_add_dt_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:374,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:377,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:378,1
    - Dst: iommu_assign_dt_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:382,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:385,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:387,1
    - Dst: dt_find_node_by_gpath
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:399,1
    - Dst: xsm_deassign_dtdevice
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:405,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:405,1
    - Dst: iommu_deassign_dt_device
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:415,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:418,1
    - Dst: dt_node_full_name
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:420,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/passthrough/device_tree.c:428,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 2
    argNames:
    - domctl
    - d
    argTypes:
    - struct xen_domctl*
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 431
    functionName: iommu_do_dt_domctl
    functionSourceFile: /src/xen/xen/drivers/passthrough/device_tree.c
    functionUses: 1
    functionsReached:
    - xsm_assign_dtdevice
    - iommu_dt_device_is_assigned_locked
    - spin_unlock
    - iommu_deassign_dt_device
    - dt_node_full_name
    - read_unlock
    - ASSERT
    - dt_find_node_by_gpath
    - spin_lock
    - iommu_assign_dt_device
    - printk
    - xsm_deassign_dtdevice
    - iommu_add_dt_device
    - read_lock
    linkageType: ''
    returnType: int
    signature: "int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d,\n
      \                      XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/ats.c:27,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/ats.c:29,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/ats.c:32,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/ats.c:34,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/ats.c:39,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/ats.c:49,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/ats.c:55,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/ats.c:58,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/ats.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pdev
    - ats_list
    argTypes:
    - struct pci_dev*
    - struct list_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 66
    functionName: enable_ats_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/ats.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - BUG_ON
    - list_add
    - pci_find_ext_capability
    - pci_conf_write16
    - dprintk
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int enable_ats_device(struct pci_dev *pdev, struct list_head *ats_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/ats.c:72,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/ats.c:74,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/passthrough/ats.c:76,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/ats.c:78,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/ats.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 82
    functionName: disable_ats_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/ats.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - BUG_ON
    - list_del
    - pci_conf_write16
    - dprintk
    linkageType: ''
    returnType: void
    signature: void disable_ats_device(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/ats.h:35,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/ats.h:36,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/ats.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: pci_ats_enabled
    functionSourceFile: /src/xen/xen/drivers/passthrough/ats.h
    functionUses: 0
    functionsReached:
    - BUG_ON
    - pci_find_ext_capability
    - pci_conf_read16
    linkageType: ''
    returnType: int
    signature: int pci_ats_enabled(const struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/ats.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: pci_ats_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/ats.h
    functionUses: 0
    functionsReached:
    - pci_find_ext_capability
    linkageType: ''
    returnType: int
    signature: int pci_ats_device(const struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: IS_CTG
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CTG(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: IS_ILK
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ILK(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: IS_CPT
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CPT(id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ILK
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:75,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: is_igd_vt_enabled_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - IS_ILK
    linkageType: ''
    returnType: int
    signature: int is_igd_vt_enabled_quirk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:93,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:97,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: cantiga_b3_errata_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - pci_conf_read8
    linkageType: ''
    returnType: void
    signature: void cantiga_b3_errata_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:119,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:120,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:121,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:125,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:126,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:127,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 165
    functionName: is_azalia_tlb_enabled
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - PCI_SBDF
    - pci_conf_read32
    linkageType: ''
    returnType: bool
    signature: bool is_azalia_tlb_enabled(const struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_SNB_GFX
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:170,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: snb_errata_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    - IS_SNB_GFX
    linkageType: ''
    returnType: void
    signature: void snb_errata_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:196,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:198,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 200
    functionName: map_igd_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - ioremap
    - pci_conf_read32
    linkageType: ''
    returnType: void
    signature: void map_igd_reg(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_igd_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: cantiga_vtd_ops_preamble
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - is_igd_drhd
    linkageType: ''
    returnType: int
    signature: int cantiga_vtd_ops_preamble(struct vtd_iommu *iommu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_igd_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:244,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:253,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:256,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: snb_vtd_ops_preamble
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - is_igd_drhd
    - cpu_relax
    - NOW
    linkageType: ''
    returnType: void
    signature: void snb_vtd_ops_preamble(struct vtd_iommu *iommu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_igd_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: snb_vtd_ops_postamble
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - is_igd_drhd
    linkageType: ''
    returnType: void
    signature: void snb_vtd_ops_postamble(struct vtd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cantiga_vtd_ops_preamble
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:288,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:291,1
    - Dst: snb_vtd_ops_preamble
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: vtd_ops_preamble_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - cantiga_vtd_ops_preamble
    - spin_lock
    - snb_vtd_ops_preamble
    linkageType: ''
    returnType: void
    signature: void vtd_ops_preamble_quirk(struct vtd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snb_vtd_ops_postamble
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:305,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: vtd_ops_postamble_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - snb_vtd_ops_postamble
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void vtd_ops_postamble_quirk(struct vtd_iommu *iommu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:317,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:322,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:325,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: parse_snb_timeout
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - MILLISECS
    - strcmp
    - simple_strtoul
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_snb_timeout(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:347,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:347,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:349,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:349,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:357,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 372
    functionName: tylersburg_intremap_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - pci_conf_read8
    - pci_conf_read32
    - printk
    linkageType: ''
    returnType: void
    signature: void tylersburg_intremap_quirk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:377,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:378,1
    - Dst: cantiga_b3_errata_init
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:388,1
    - Dst: snb_errata_init
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:390,1
    - Dst: map_igd_reg
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:393,1
    - Dst: tylersburg_intremap_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 398
    functionName: platform_quirks_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - tylersburg_intremap_quirk
    - pci_conf_read32
    - snb_errata_init
    - map_igd_reg
    - cantiga_b3_errata_init
    linkageType: ''
    returnType: void
    signature: void platform_quirks_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:421,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:421,1
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:422,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:426,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:427,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:430,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - domain
    - dev
    - domid
    - pgd_maddr
    - mode
    argTypes:
    - struct domain*
    - unsigned int
    - domid_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 434
    functionName: __must_check::map_me_phantom_function
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - domain_context_mapping_one
    - PCI_SBDF
    - PCI_DEVFN
    - domain_context_unmap_one
    - pci_get_pdev
    - acpi_find_matched_drhd_unit
    linkageType: ''
    returnType: int
    signature: "int __must_check map_me_phantom_function(struct domain *domain,\n
      \                                               unsigned int dev,\n                                                domid_t
      domid,\n                                                paddr_t pgd_maddr,\n
      \                                               unsigned int mode)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:442,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:442,1
    - Dst: IS_CTG
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:443,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:446,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:446,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:450,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:450,1
    - Dst: map_me_phantom_function
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:461,1
    - Dst: IS_ILK
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:467,1
    - Dst: IS_CPT
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:467,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:470,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:470,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:474,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:474,1
    - Dst: map_me_phantom_function
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 6
    argNames:
    - domain
    - bus
    - devfn
    - domid
    - pgd_maddr
    - mode
    argTypes:
    - struct domain*
    - uint8_t
    - uint8_t
    - domid_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 495
    functionName: me_wifi_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - IS_CTG
    - pci_conf_read32
    - map_me_phantom_function
    - IS_CPT
    - IS_ILK
    linkageType: ''
    returnType: int
    signature: "int me_wifi_quirk(struct domain *domain, uint8_t bus, uint8_t devfn,\n
      \                 domid_t domid, paddr_t pgd_maddr, unsigned int mode)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:506,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:509,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:520,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:521,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:522,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:534,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:537,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:540,1
    - Dst: PCI_VNDR_HEADER_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:541,1
    - Dst: PCI_VNDR_HEADER_REV
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:541,1
    - Dst: pci_find_next_ext_capability
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:546,1
    - Dst: pcie_aer_get_firmware_first
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:552,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:555,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:559,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:560,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:565,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:567,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:575,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:576,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:578,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:591,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:592,1
    - Dst: page_is_ram_type
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:595,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:595,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:597,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:601,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:602,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:603,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:606,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/quirks.c:610,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 100
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 614
    functionName: pci_vtd_quirk
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - ioremap
    - __set_bit
    - iounmap
    - PCI_VNDR_HEADER_REV
    - pcie_aer_get_firmware_first
    - paddr_to_pfn
    - pci_find_next_ext_capability
    - page_is_ram_type
    - pci_conf_read32
    - PCI_VNDR_HEADER_ID
    - printk
    - pci_find_ext_capability
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: void pci_vtd_quirk(const struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 637
    functionName: quirk_iommu_caps
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/quirks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quirk_iommu_caps(struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:46,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:46,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:47,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:47,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:48,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: print_qi_regs
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - dmar_readq
    - printk
    linkageType: ''
    returnType: void
    signature: void print_qi_regs(const struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:53,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:59,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: qinval_next_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - dmar_readl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int qinval_next_index(struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:74,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:74,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - iommu
    - index
    argTypes:
    - struct vtd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: qinval_update_qtail
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void qinval_update_qtail(struct vtd_iommu *iommu, unsigned int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iommu
    - index
    argTypes:
    - struct vtd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: qi_map_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - map_vtd_domain_page
    linkageType: ''
    returnType: struct qinval_entry
    signature: "struct qinval_entry *qi_map_entry(const struct vtd_iommu *iommu,\n
      \                                        unsigned int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:98,1
    - Dst: qinval_next_index
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:99,1
    - Dst: qi_map_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:100,1
    - Dst: qinval_update_qtail
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:111,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:112,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:114,1
    - Dst: __must_check::invalidate_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - iommu
    - did
    - source_id
    - function_mask
    - granu
    argTypes:
    - struct vtd_iommu*
    - u16
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: __must_check::queue_invalidate_context_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - qinval_update_qtail
    - __must_check::invalidate_sync
    - qinval_next_index
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - qi_map_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check queue_invalidate_context_sync(struct vtd_iommu *iommu,\n
      \                                                     u16 did, u16 source_id,\n
      \                                                     u8 function_mask,\n                                                      u8
      granu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:128,1
    - Dst: qinval_next_index
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:129,1
    - Dst: qi_map_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:130,1
    - Dst: qinval_update_qtail
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:145,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:146,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:148,1
    - Dst: __must_check::invalidate_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 8
    argNames:
    - iommu
    - granu
    - dr
    - dw
    - did
    - am
    - ih
    - addr
    argTypes:
    - struct vtd_iommu*
    - u8
    - u8
    - u8
    - u16
    - u8
    - u8
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 151
    functionName: __must_check::queue_invalidate_iotlb_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - qinval_update_qtail
    - __must_check::invalidate_sync
    - qinval_next_index
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - qi_map_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check queue_invalidate_iotlb_sync(struct vtd_iommu *iommu,\n
      \                                                   u8 granu, u8 dr, u8 dw,\n
      \                                                   u16 did, u8 am, u8 ih,\n
      \                                                   u64 addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:161,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:163,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:164,1
    - Dst: qinval_next_index
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:165,1
    - Dst: qi_map_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:166,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:174,1
    - Dst: qinval_update_qtail
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:176,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:177,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:179,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:185,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:188,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:190,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:192,1
    - Dst: print_qi_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:198,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:201,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:205,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 5
    argNames:
    - iommu
    - iflag
    - sw
    - fn
    - flush_dev_iotlb
    argTypes:
    - struct vtd_iommu*
    - u8
    - u8
    - u8
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 214
    functionName: __must_check::queue_invalidate_wait
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - qinval_update_qtail
    - cpu_relax
    - print_qi_regs
    - qinval_next_index
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - MILLISECS
    - virt_to_maddr
    - printk
    - this_cpu
    - qi_map_entry
    - ACCESS_ONCE
    - NOW
    linkageType: ''
    returnType: int
    signature: "int __must_check queue_invalidate_wait(struct vtd_iommu *iommu,\n
      \                                             u8 iflag, u8 sw, u8 fn,\n                                              bool
      flush_dev_iotlb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:218,1
    - Dst: __must_check::queue_invalidate_wait
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: __must_check::invalidate_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 2
    functionsReached:
    - ASSERT
    - __must_check::queue_invalidate_wait
    linkageType: ''
    returnType: int
    signature: int __must_check invalidate_sync(struct vtd_iommu *iommu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:228,1
    - Dst: __must_check::queue_invalidate_wait
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:229,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:232,1
    - Dst: did_to_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:232,1
    - Dst: iommu_dev_iotlb_flush_timeout
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:241,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - iommu
    - pdev
    - did
    argTypes:
    - struct vtd_iommu*
    - struct pci_dev*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 252
    functionName: __must_check::dev_invalidate_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - rcu_lock_domain_by_id
    - ASSERT
    - did_to_domain_id
    - __must_check::queue_invalidate_wait
    - rcu_unlock_domain
    - iommu_dev_iotlb_flush_timeout
    linkageType: ''
    returnType: int
    signature: "int __must_check dev_invalidate_sync(struct vtd_iommu *iommu,\n                                            struct
      pci_dev *pdev, u16 did)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:262,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:263,1
    - Dst: qinval_next_index
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:264,1
    - Dst: qi_map_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:265,1
    - Dst: qinval_update_qtail
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:278,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:279,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:281,1
    - Dst: dev_invalidate_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 5
    argNames:
    - iommu
    - pdev
    - did
    - size
    - addr
    argTypes:
    - struct vtd_iommu*
    - struct pci_dev*
    - uint16_t
    - uint16_t
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 284
    functionName: qinval_device_iotlb_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - qinval_update_qtail
    - dev_invalidate_sync
    - qinval_next_index
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - ASSERT
    - qi_map_entry
    linkageType: ''
    returnType: int
    signature: "int qinval_device_iotlb_sync(struct vtd_iommu *iommu,\n                                    struct
      pci_dev *pdev, uint16_t did,\n                                    uint16_t size,
      paddr_t addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:294,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:296,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:300,1
    - Dst: root_present
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:301,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:304,1
    - Dst: context_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:305,1
    - Dst: context_translation_type
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:308,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:315,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - iommu
    - pdev
    - did
    argTypes:
    - struct vtd_iommu*
    - struct pci_dev*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 321
    functionName: device_in_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - map_vtd_domain_page
    - context_domain_id
    - root_present
    - context_translation_type
    - unmap_vtd_domain_page
    - unlikely
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: bool
    signature: "bool device_in_domain(const struct vtd_iommu *iommu,\n                             const
      struct pci_dev *pdev, uint16_t did)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ecap_dev_iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:330,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:333,1
    - Dst: device_in_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:341,1
    - Dst: qinval_device_iotlb_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:348,1
    - Dst: device_in_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:352,1
    - Dst: qinval_device_iotlb_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:368,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:372,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 5
    argNames:
    - iommu
    - did
    - addr
    - size_order
    - type
    argTypes:
    - struct vtd_iommu*
    - uint16_t
    - paddr_t
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 381
    functionName: dev_invalidate_iotlb
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - device_in_domain
    - ecap_dev_iotlb
    - list_for_each_entry_safe
    - dprintk
    - qinval_device_iotlb_sync
    linkageType: ''
    returnType: int
    signature: "int dev_invalidate_iotlb(struct vtd_iommu *iommu, uint16_t did,\n
      \                               paddr_t addr, unsigned int size_order,\n                                uint64_t
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:391,1
    - Dst: qinval_next_index
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:392,1
    - Dst: qi_map_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:393,1
    - Dst: qinval_update_qtail
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:403,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:404,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:406,1
    - Dst: __must_check::invalidate_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:408,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 4
    argNames:
    - iommu
    - granu
    - im
    - iidx
    argTypes:
    - struct vtd_iommu*
    - u8
    - u8
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 417
    functionName: __must_check::queue_invalidate_iec_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - qinval_update_qtail
    - __must_check::invalidate_sync
    - qinval_next_index
    - spin_lock_irqsave
    - dmar_readq
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - qi_map_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check queue_invalidate_iec_sync(struct vtd_iommu *iommu,\n
      \                                                 u8 granu, u8 im, u16 iidx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_invalidate_iec_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: iommu_flush_iec_global
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - queue_invalidate_iec_sync
    linkageType: ''
    returnType: int
    signature: int iommu_flush_iec_global(struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: queue_invalidate_iec_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - iommu
    - im
    - iidx
    argTypes:
    - struct vtd_iommu*
    - u8
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: iommu_flush_iec_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - queue_invalidate_iec_sync
    linkageType: ''
    returnType: int
    signature: int iommu_flush_iec_index(struct vtd_iommu *iommu, u8 im, u16 iidx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:433,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:443,1
    - Dst: queue_invalidate_context_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - iommu
    - did
    - sid
    - fm
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - u16
    - u16
    - u8
    - u64
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 451
    functionName: flush_context_qi
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - queue_invalidate_context_sync
    - cap_caching_mode
    linkageType: ''
    returnType: int
    signature: "int flush_context_qi(\n    struct vtd_iommu *iommu, u16 did, u16 sid,
      u8 fm, u64 type,\n    bool flush_non_present_entry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:460,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:466,1
    - Dst: cap_write_drain
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:470,1
    - Dst: cap_read_drain
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:472,1
    - Dst: queue_invalidate_iotlb_sync
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:475,1
    - Dst: dev_invalidate_iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - iommu
    - did
    - addr
    - size_order
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - u16
    - u64
    - unsigned int
    - u64
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 453
    functionDepth: 4
    functionLinenumber: 453
    functionLinenumberEnd: 488
    functionName: flush_iotlb_qi
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - cap_read_drain
    - dev_invalidate_iotlb
    - cap_write_drain
    - ASSERT
    - queue_invalidate_iotlb_sync
    - cap_caching_mode
    linkageType: ''
    returnType: int
    signature: "int flush_iotlb_qi(\n    struct vtd_iommu *iommu, u16 did, u64 addr,
      unsigned int size_order,\n    u64 type, bool flush_non_present_entry)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:495,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:499,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:514,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:515,1
    - Dst: num_present_cpus
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:515,1
    - Dst: alloc_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:525,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:525,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:539,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:549,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:552,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:555,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:556,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:559,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 564
    functionName: enable_qinval
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - spin_lock_irqsave
    - dmar_readl
    - num_present_cpus
    - BUILD_BUG_ON
    - IOMMU_WAIT_OP
    - dmar_writeq
    - spin_unlock_irqrestore
    - ecap_queued_inval
    - dmar_writel
    - PFN_DOWN
    - alloc_pgtable_maddr
    linkageType: ''
    returnType: int
    signature: int enable_qinval(struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - iommu
    - did
    - source_id
    - function_mask
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - uint16_t
    - uint16_t
    - uint8_t
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: vtd_flush_context_noop
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: int
    signature: "int vtd_flush_context_noop(\n    struct vtd_iommu *iommu, uint16_t
      did, uint16_t source_id,\n    uint8_t function_mask, uint64_t type, bool flush_non_present_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - iommu
    - did
    - addr
    - size_order
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - uint16_t
    - uint64_t
    - unsigned int
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: vtd_flush_iotlb_noop
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: int
    signature: "int vtd_flush_iotlb_noop(\n    struct vtd_iommu *iommu, uint16_t did,
      uint64_t addr,\n    unsigned int size_order, uint64_t type, bool flush_non_present_entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:587,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:590,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:591,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:595,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:598,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:601,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/qinval.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 617
    functionName: disable_qinval
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/qinval.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - IOMMU_WAIT_OP
    - dmar_readl
    - spin_unlock_irqrestore
    - ecap_queued_inval
    - dmar_writel
    - has_register_based_invalidation
    linkageType: ''
    returnType: void
    signature: void disable_qinval(struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pgd_maddr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: QUARANTINE_SKIP
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARANTINE_SKIP(d, pgd_maddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pdev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: DEVICE_DOMID
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVICE_DOMID(d, pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - pdev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: DEVICE_PGTABLE
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEVICE_PGTABLE(d, pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: domid_mapping
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool domid_mapping(const struct vtd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:87,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iommu
    - domid
    argTypes:
    - struct vtd_iommu*
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: convert_domid
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - cap_caching_mode
    - BUILD_BUG_ON
    linkageType: ''
    returnType: domid_t
    signature: domid_t convert_domid(const struct vtd_iommu *iommu, domid_t domid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: domid_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:97,1
    - Dst: convert_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:98,1
    - Dst: cap_ndoms
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:100,1
    - Dst: find_first_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:101,1
    - Dst: find_next_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:107,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - domid
    - iommu
    - warn
    argTypes:
    - domid_t
    - struct vtd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 116
    functionName: get_iommu_did
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - domid_mapping
    - convert_domid
    - find_next_bit
    - find_first_bit
    - cap_ndoms
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int get_iommu_did(domid_t domid, const struct vtd_iommu *iommu,\n
      \                        bool warn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:130,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:130,1
    - Dst: domid_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:132,1
    - Dst: cap_ndoms
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:134,1
    - Dst: find_first_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:136,1
    - Dst: find_next_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:138,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:142,1
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:149,1
    - Dst: convert_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - context
    - domid
    - iommu
    argTypes:
    - struct context_entry*
    - domid_t
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 162
    functionName: context_set_domain_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - domid_mapping
    - set_bit
    - convert_domid
    - find_next_bit
    - find_first_zero_bit
    - ASSERT
    - find_first_bit
    - cap_ndoms
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int context_set_domain_id(struct context_entry *context,\n                                 domid_t
      domid, struct vtd_iommu *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: domid_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:168,1
    - Dst: get_iommu_did
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:171,1
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - domid
    - iommu
    argTypes:
    - domid_t
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 184
    functionName: cleanup_domid_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - domid_mapping
    - clear_bit
    - get_iommu_did
    linkageType: ''
    returnType: void
    signature: void cleanup_domid_map(domid_t domid, struct vtd_iommu *iommu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - d
    - exclude
    - iommu
    argTypes:
    - struct domain*
    - struct pci_dev*
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: any_pdev_behind_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - acpi_find_matched_drhd_unit
    linkageType: ''
    returnType: bool
    signature: "bool any_pdev_behind_iommu(const struct domain *d,\n                                  const
      struct pci_dev *exclude,\n                                  const struct vtd_iommu
      *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - acpi_find_matched_drhd_unit
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, pdev )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: any_pdev_behind_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:220,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:225,1
    - Dst: any_pdev_behind_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:226,1
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:230,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:230,1
    - Dst: cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - d
    - exclude
    - iommu
    argTypes:
    - struct domain*
    - struct pci_dev*
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 211
    functionDepth: 4
    functionLinenumber: 211
    functionLinenumberEnd: 233
    functionName: check_cleanup_domid_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - clear_bit
    - cleanup_domid_map
    - is_hardware_domain
    - any_pdev_behind_iommu
    linkageType: ''
    returnType: void
    signature: "void check_cleanup_domid_map(const struct domain *d,\n                                    const
      struct pci_dev *exclude,\n                                    struct vtd_iommu
      *iommu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cap_ndoms
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:237,1
    - Dst: domid_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:240,1
    - Dst: convert_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:241,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - iommu
    - did
    argTypes:
    - struct vtd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: did_to_domain_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - domid_mapping
    - test_bit
    - cap_ndoms
    - convert_domid
    linkageType: ''
    returnType: domid_t
    signature: domid_t did_to_domain_id(const struct vtd_iommu *iommu, unsigned int
      did)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloc_domheap_pages
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:255,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:255,1
    - Dst: MEMF_node
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:256,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:263,1
    - Dst: clear_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:265,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:267,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:268,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - npages
    - node
    argTypes:
    - unsigned long
    - nodeid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 250
    functionDepth: 6
    functionLinenumber: 250
    functionLinenumberEnd: 273
    functionName: alloc_pgtable_maddr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - get_order_from_pages
    - clear_page
    - MEMF_node
    - iommu_sync_cache
    - __map_domain_page
    - alloc_domheap_pages
    - page_to_maddr
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_domheap_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:278,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - maddr
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: free_pgtable_maddr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - free_domheap_page
    - maddr_to_page
    linkageType: ''
    returnType: void
    signature: void free_pgtable_maddr(u64 maddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:287,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:287,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:288,1
    - Dst: root_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:290,1
    - Dst: alloc_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:292,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:295,1
    - Dst: set_root_value
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:298,1
    - Dst: set_root_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:299,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:300,1
    - Dst: get_context_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:302,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - iommu
    - bus
    argTypes:
    - struct vtd_iommu*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 305
    functionName: bus_to_context_maddr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - map_vtd_domain_page
    - spin_is_locked
    - set_root_value
    - root_present
    - unmap_vtd_domain_page
    - ASSERT
    - iommu_sync_cache
    - set_root_present
    - get_context_addr
    - alloc_pgtable_maddr
    linkageType: ''
    returnType: u64
    signature: u64 bus_to_context_maddr(struct vtd_iommu *iommu, u8 bus)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:322,1
    - Dst: agaw_to_width
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:323,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:325,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:329,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:329,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:330,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:340,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:343,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:347,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:350,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:353,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:354,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:354,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:366,1
    - Dst: level_to_offset_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:375,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:382,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:386,1
    - Dst: dma_set_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:387,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:389,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:391,1
    - Dst: level_to_offset_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:392,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:402,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:403,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:408,1
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:411,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:412,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:413,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:414,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:425,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:426,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:429,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 5
    argNames:
    - domain
    - addr
    - target
    - flush_flags
    - alloc
    argTypes:
    - struct domain*
    - daddr_t
    - unsigned int
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 432
    functionName: addr_to_dma_page_maddr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_alloc_pgtable
    - level_to_offset_bits
    - address_level_offset
    - dma_pte_present
    - write_atomic
    - spin_is_locked
    - iommu_sync_cache
    - dma_pte_superpage
    - dom_iommu
    - map_vtd_domain_page
    - pt_update_contig_markers
    - agaw_to_level
    - agaw_to_width
    - ASSERT
    - page_to_maddr
    - perfc_incr
    - dma_pte_addr
    - unmap_vtd_domain_page
    - dma_set_pte_addr
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t addr_to_dma_page_maddr(struct domain *domain, daddr_t addr,\n
      \                                      unsigned int target,\n                                       unsigned
      int *flush_flags, bool alloc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:437,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:440,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:440,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:444,1
    - Dst: p2m_get_pagetable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:446,1
    - Dst: p2m_get_hostp2m
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:446,1
    - Dst: pagetable_get_paddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:448,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:458,1
    - Dst: level_to_agaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:468,1
    - Dst: level_to_agaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:469,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:472,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:474,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - d
    - pgd_maddr
    - nr_pt_levels
    argTypes:
    - struct domain*
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 434
    functionDepth: 5
    functionLinenumber: 434
    functionLinenumberEnd: 481
    functionName: domain_pgd_maddr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dma_pte_addr
    - dom_iommu
    - map_vtd_domain_page
    - spin_is_locked
    - p2m_get_pagetable
    - unmap_vtd_domain_page
    - iommu_use_hap_pt
    - addr_to_dma_page_maddr
    - ASSERT
    - level_to_agaw
    - pagetable_get_paddr
    - p2m_get_hostp2m
    linkageType: ''
    returnType: paddr_t
    signature: "paddr_t domain_pgd_maddr(struct domain *d, paddr_t pgd_maddr,\n                                unsigned
      int nr_pt_levels)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cap_rwbf
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:488,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:491,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:492,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:493,1
    - Dst: IOMMU_FLUSH_WAIT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:496,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 500
    functionName: iommu_flush_write_buffer
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - IOMMU_FLUSH_WAIT
    - spin_lock_irqsave
    - dmar_readl
    - spin_unlock_irqrestore
    - cap_rwbf
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void iommu_flush_write_buffer(struct vtd_iommu *iommu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:517,1
    - Dst: DMA_CCMD_SID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:530,1
    - Dst: DMA_CCMD_FM
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:530,1
    - Dst: DMA_CCMD_DID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:533,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:537,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:541,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:542,1
    - Dst: IOMMU_FLUSH_WAIT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:545,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - iommu
    - did
    - source_id
    - function_mask
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - uint16_t
    - uint16_t
    - uint8_t
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 551
    functionName: vtd_flush_context_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - DMA_CCMD_DID
    - BUG
    - IOMMU_FLUSH_WAIT
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - dmar_writeq
    - DMA_CCMD_SID
    - DMA_CCMD_FM
    - cap_caching_mode
    linkageType: ''
    returnType: int
    signature: "int vtd_flush_context_reg(\n    struct vtd_iommu *iommu, uint16_t
      did, uint16_t source_id,\n    uint8_t function_mask, uint64_t type, bool flush_non_present_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct vtd_iommu*::flush::context
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iommu
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 558
    functionName: __must_check::iommu_flush_context_global
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - struct vtd_iommu*::flush::context
    linkageType: ''
    returnType: int
    signature: "int __must_check iommu_flush_context_global(struct vtd_iommu *iommu,\n
      \                                                  bool flush_non_present_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct vtd_iommu*::flush::context
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - iommu
    - did
    - source_id
    - function_mask
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - u16
    - u16
    - u8
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 567
    functionName: __must_check::iommu_flush_context_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - struct vtd_iommu*::flush::context
    linkageType: ''
    returnType: int
    signature: "int __must_check iommu_flush_context_device(struct vtd_iommu *iommu,\n
      \                                                  u16 did, u16 source_id,\n
      \                                                  u8 function_mask,\n                                                   bool
      flush_non_present_entry)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ecap_iotlb_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:574,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:582,1
    - Dst: DMA_TLB_DID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:593,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:597,1
    - Dst: cap_read_drain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:600,1
    - Dst: cap_write_drain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:602,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:605,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:610,1
    - Dst: DMA_TLB_IVA_ADDR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:611,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:613,1
    - Dst: IOMMU_FLUSH_WAIT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:616,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:618,1
    - Dst: DMA_TLB_IAIG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:621,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 6
    argNames:
    - iommu
    - did
    - addr
    - size_order
    - type
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - uint16_t
    - uint64_t
    - unsigned int
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 626
    functionName: vtd_flush_iotlb_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - BUG
    - DMA_TLB_DID
    - cap_read_drain
    - spin_lock_irqsave
    - DMA_TLB_IVA_ADDR
    - IOMMU_FLUSH_WAIT
    - spin_unlock_irqrestore
    - cap_write_drain
    - dmar_writeq
    - ecap_iotlb_offset
    - dprintk
    - cap_caching_mode
    - DMA_TLB_IAIG
    linkageType: ''
    returnType: int
    signature: "int vtd_flush_iotlb_reg(\n    struct vtd_iommu *iommu, uint16_t did,
      uint64_t addr,\n    unsigned int size_order, uint64_t type, bool flush_non_present_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtd_ops_preamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:634,1
    - Dst: struct vtd_iommu*::flush::iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:636,1
    - Dst: vtd_ops_postamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - iommu
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 643
    functionName: __must_check::iommu_flush_iotlb_global
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - struct vtd_iommu*::flush::iotlb
    - vtd_ops_preamble_quirk
    - vtd_ops_postamble_quirk
    linkageType: ''
    returnType: int
    signature: "int __must_check iommu_flush_iotlb_global(struct vtd_iommu *iommu,\n
      \                                                bool flush_non_present_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtd_ops_preamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:651,1
    - Dst: struct vtd_iommu*::flush::iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:653,1
    - Dst: vtd_ops_postamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - iommu
    - did
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - u16
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 660
    functionName: __must_check::iommu_flush_iotlb_dsi
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - struct vtd_iommu*::flush::iotlb
    - vtd_ops_preamble_quirk
    - vtd_ops_postamble_quirk
    linkageType: ''
    returnType: int
    signature: "int __must_check iommu_flush_iotlb_dsi(struct vtd_iommu *iommu, u16
      did,\n                                              bool flush_non_present_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cap_pgsel_inv
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:669,1
    - Dst: __must_check::iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:670,1
    - Dst: cap_max_amask_val
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:673,1
    - Dst: __must_check::iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:674,1
    - Dst: vtd_ops_preamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:677,1
    - Dst: struct vtd_iommu*::flush::iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:679,1
    - Dst: vtd_ops_postamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - iommu
    - did
    - addr
    - order
    - flush_non_present_entry
    argTypes:
    - struct vtd_iommu*
    - u16
    - u64
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 686
    functionName: __must_check::iommu_flush_iotlb_psi
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - struct vtd_iommu*::flush::iotlb
    - vtd_ops_preamble_quirk
    - cap_pgsel_inv
    - __must_check::iommu_flush_iotlb_dsi
    - vtd_ops_postamble_quirk
    - cap_max_amask_val
    linkageType: ''
    returnType: int
    signature: "int __must_check iommu_flush_iotlb_psi(struct vtd_iommu *iommu, u16
      did,\n                                              u64 addr, unsigned int order,\n
      \                                             bool flush_non_present_entry)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: flush_local
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:695,1
    - Dst: __must_check::iommu_flush_context_global
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:702,1
    - Dst: __must_check::iommu_flush_iotlb_global
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:703,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 688
    functionDepth: 4
    functionLinenumber: 688
    functionLinenumberEnd: 724
    functionName: __must_check::iommu_flush_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_flush_write_buffer
    - __must_check::iommu_flush_context_global
    - __must_check::iommu_flush_iotlb_global
    - flush_local
    linkageType: ''
    returnType: int
    signature: int __must_check iommu_flush_all(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iommu_flush_context_global
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:702,1
    - Dst: iommu_flush_iotlb_global
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:703,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 697
    functionDepth: 2
    functionLinenumber: 697
    functionLinenumberEnd: 718
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_flush_write_buffer
    - iommu_flush_iotlb_global
    - iommu_flush_context_global
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:730,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:743,1
    - Dst: dfn_eq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:743,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:744,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:757,1
    - Dst: get_iommu_did
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:760,1
    - Dst: dfn_eq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:766,1
    - Dst: iommu_flush_iotlb_psi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:768,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:769,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:770,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:774,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 780
    functionName: iommu_flush_iotlb
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - get_order_from_pages
    - iommu_flush_iotlb_dsi
    - IS_ALIGNED
    - get_iommu_did
    - dfn_to_daddr
    - ASSERT
    - dfn_x
    - dfn_eq
    - iommu_flush_write_buffer
    - test_bit
    - iommu_flush_iotlb_psi
    linkageType: ''
    returnType: int
    signature: "int iommu_flush_iotlb(struct domain *d, dfn_t dfn,\n                                                   unsigned
      long page_count,\n                                                   unsigned
      int flush_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:757,1
    - Dst: get_iommu_did
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:760,1
    - Dst: dfn_eq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: IS_ALIGNED
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:765,1
    - Dst: iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:766,1
    - Dst: iommu_flush_iotlb_psi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:768,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:769,1
    - Dst: get_order_from_pages
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:770,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:774,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 777
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - get_order_from_pages
    - iommu_flush_iotlb_dsi
    - IS_ALIGNED
    - get_iommu_did
    - dfn_to_daddr
    - dfn_x
    - dfn_eq
    - iommu_flush_write_buffer
    - test_bit
    - iommu_flush_iotlb_psi
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:786,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:790,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:790,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:791,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:791,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:791,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:794,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:797,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - hd
    - mfn
    - level
    argTypes:
    - struct domain_iommu*
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 798
    functionName: queue_free_pt
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - queue_free_pt
    - dma_pte_addr
    - dma_pte_present
    - map_domain_page
    - unmap_domain_page
    - mfn_to_page
    - iommu_queue_free_pgtable
    - maddr_to_mfn
    - dma_pte_superpage
    linkageType: ''
    returnType: void
    signature: void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int
      level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:805,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:806,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:808,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:809,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:812,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 817
    functionName: iommu_set_root_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - IOMMU_WAIT_OP
    - dmar_readl
    - spin_unlock_irqrestore
    - dmar_writeq
    - dmar_writel
    linkageType: ''
    returnType: int
    signature: int iommu_set_root_entry(struct vtd_iommu *iommu)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:833,1
    - Dst: is_igd_vt_enabled_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:837,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:842,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:844,1
    - Dst: is_azalia_tlb_enabled
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:849,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:854,1
    - Dst: vtd_ops_preamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:862,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:865,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:867,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:868,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:869,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:872,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:874,1
    - Dst: vtd_ops_postamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:877,1
    - Dst: disable_pmr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:880,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 819
    functionDepth: 3
    functionLinenumber: 819
    functionLinenumberEnd: 881
    functionName: iommu_enable_translation
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - is_igd_vt_enabled_quirk
    - panic
    - vtd_ops_preamble_quirk
    - spin_lock_irqsave
    - is_azalia_tlb_enabled
    - dmar_readl
    - IOMMU_WAIT_OP
    - spin_unlock_irqrestore
    - vtd_ops_postamble_quirk
    - dmar_writel
    - printk
    - disable_pmr
    linkageType: ''
    returnType: void
    signature: void iommu_enable_translation(struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtd_ops_preamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:889,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:891,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:892,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:893,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:896,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:898,1
    - Dst: vtd_ops_postamble_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 902
    functionName: iommu_disable_translation
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - vtd_ops_preamble_quirk
    - spin_lock_irqsave
    - IOMMU_WAIT_OP
    - dmar_readl
    - spin_unlock_irqrestore
    - vtd_ops_postamble_quirk
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void iommu_disable_translation(struct vtd_iommu *iommu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:943,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fault_reason
    - fault_type
    argTypes:
    - u8
    - enum faulttype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 958
    functionName: iommu_get_fault_reason
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: "char *iommu_get_fault_reason(u8 fault_reason,\n                                          enum
      faulttype *fault_type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_fault_reason
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:967,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:971,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:975,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:979,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:982,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:986,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:989,1
    - Dst: print_vtd_entries
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:998,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:998,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - iommu
    - type
    - fault_reason
    - source_id
    - addr
    argTypes:
    - struct vtd_iommu*
    - int
    - u8
    - u16
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 1002
    functionName: iommu_page_fault_do_one
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_get_fault_reason
    - PCI_BUS
    - PCI_SBDF
    - PCI_DEVFN
    - printk
    - print_vtd_entries
    linkageType: ''
    returnType: int
    signature: "int iommu_page_fault_do_one(struct vtd_iommu *iommu, int type,\n                                   u8
      fault_reason, u16 source_id, u64 addr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1007,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1009,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1011,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1013,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1015,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1017,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1019,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - fault_status
    argTypes:
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1020
    functionName: iommu_fault_status
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - INTEL_IOMMU_DEBUG
    linkageType: ''
    returnType: void
    signature: void iommu_fault_status(u32 fault_status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1029,1
    - Dst: iommu_fault_status
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1031,1
    - Dst: dma_fsts_fault_record_index
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1037,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1038,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1048,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1049,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1053,1
    - Dst: dma_frcd_fault_reason
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1057,1
    - Dst: dma_frcd_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1058,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1060,1
    - Dst: dma_frcd_source_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1062,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1064,1
    - Dst: dma_frcd_page_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1066,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1068,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1070,1
    - Dst: iommu_page_fault_do_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1072,1
    - Dst: pci_check_disable_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1075,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1076,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1076,1
    - Dst: cap_num_fault_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1079,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1084,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1086,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1087,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1023
    functionDepth: 4
    functionLinenumber: 1023
    functionLinenumberEnd: 1090
    functionName: __do_iommu_page_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - cap_fault_reg_offset
    - dma_frcd_source_id
    - pci_check_disable_device
    - dma_fsts_fault_record_index
    - dma_frcd_page_addr
    - PCI_BUS
    - spin_lock_irqsave
    - iommu_fault_status
    - dma_frcd_fault_reason
    - dma_frcd_type
    - dmar_readl
    - spin_unlock_irqrestore
    - dmar_readq
    - PCI_DEVFN
    - cap_num_fault_regs
    - dmar_writel
    - iommu_page_fault_do_one
    linkageType: ''
    returnType: void
    signature: void __do_iommu_page_fault(struct vtd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1096,1
    - Dst: INTEL_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1098,1
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1108,1
    - Dst: __do_iommu_page_fault
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1092
    functionDepth: 5
    functionLinenumber: 1092
    functionLinenumberEnd: 1110
    functionName: do_iommu_page_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - for_each_drhd_unit
    - INTEL_IOMMU_DEBUG
    - list_empty
    - __do_iommu_page_fault
    linkageType: ''
    returnType: void
    signature: void do_iommu_page_fault(void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1120
    functionName: iommu_page_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - tasklet_schedule
    linkageType: ''
    returnType: void
    signature: void iommu_page_fault(int irq, void *dev_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1129,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1130,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1132,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1135
    functionName: dma_msi_unmask
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - dmar_writel
    - dmar_readl
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void dma_msi_unmask(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1144,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1145,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1147,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1150
    functionName: dma_msi_mask
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - dmar_writel
    - dmar_readl
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void dma_msi_mask(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dma_msi_unmask
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1156
    functionName: dma_msi_startup
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dma_msi_unmask
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dma_msi_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_complete_move
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1160,1
    - Dst: dma_msi_mask
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1161,1
    - Dst: move_masked_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1158
    functionDepth: 6
    functionLinenumber: 1158
    functionLinenumberEnd: 1163
    functionName: dma_msi_ack
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - irq_complete_move
    - dma_msi_mask
    - move_masked_irq
    linkageType: ''
    returnType: void
    signature: void dma_msi_ack(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dma_msi_unmask
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1167,1
    - Dst: end_nonmaskable_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1165
    functionDepth: 2
    functionLinenumber: 1165
    functionLinenumberEnd: 1169
    functionName: dma_msi_end
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - end_nonmaskable_irq
    - dma_msi_unmask
    linkageType: ''
    returnType: void
    signature: void dma_msi_end(struct irq_desc *desc, u8 vector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_desc_affinity
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1179,1
    - Dst: msi_compose_msg
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1185,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1189,1
    - Dst: MSI_ADDR_DEST_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1190,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1193,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1194,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1195,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1201,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1171
    functionDepth: 5
    functionLinenumber: 1171
    functionLinenumberEnd: 1203
    functionName: dma_msi_set_affinity
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - msi_compose_msg
    - ASSERT
    - dmar_writel
    - set_desc_affinity
    - MSI_ADDR_DEST_ID
    linkageType: ''
    returnType: void
    signature: "void dma_msi_set_affinity(\n    struct irq_desc *desc, const cpumask_t
      *mask)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: drhd_to_rhsa
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1219,1
    - Dst: create_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1223,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1223,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1232,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1234,1
    - Dst: destroy_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1216
    functionDepth: 5
    functionLinenumber: 1216
    functionLinenumberEnd: 1250
    functionName: iommu_set_interrupt
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - drhd_to_rhsa
    - irq_to_desc
    - destroy_irq
    - create_irq
    - pxm_to_node
    - request_irq
    linkageType: ''
    returnType: int
    signature: int iommu_set_interrupt(struct acpi_drhd_unit *drhd)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1259,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1265,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1266,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1267,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1268,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1273,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1279,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1280,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1281,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1283,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1292,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1294,1
    - Dst: quirk_iommu_caps
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1301,1
    - Dst: cap_ndoms
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1303,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1305,1
    - Dst: cap_num_fault_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1306,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1308,1
    - Dst: ecap_iotlb_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1309,1
    - Dst: print_iommu_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1312,1
    - Dst: cap_sagaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1318,1
    - Dst: fls
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1319,1
    - Dst: print_iommu_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1323,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1338,1
    - Dst: ecap_coherent
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1342,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1345,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1348,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1349,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1350,1
    - Dst: cap_caching_mode
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1359,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1362,1
    - Dst: convert_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1375,1
    - Dst: iommu_init_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1378,1
    - Dst: iommu_free
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1386,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1388
    functionName: iommu_alloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dmar_readq
    - ecap_coherent
    - ecap_iotlb_offset
    - BITS_TO_LONGS
    - has_register_based_invalidation
    - xzalloc
    - ioremap
    - __set_bit
    - cap_num_fault_regs
    - printk
    - iommu_init_domid
    - cap_fault_reg_offset
    - fls
    - agaw_to_level
    - iommu_free
    - INIT_LIST_HEAD
    - cap_ndoms
    - cap_caching_mode
    - convert_domid
    - print_iommu_regs
    - dmar_readl
    - xzalloc_array
    - cap_sagaw
    - quirk_iommu_caps
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int iommu_alloc(struct acpi_drhd_unit *drhd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1401,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1406,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1408,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1409,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1410,1
    - Dst: destroy_irq
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1413,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1390
    functionDepth: 5
    functionLinenumber: 1390
    functionLinenumberEnd: 1415
    functionName: iommu_free
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - free_pgtable_maddr
    - iounmap
    - xfree
    - destroy_irq
    linkageType: ''
    returnType: void
    signature: void iommu_free(struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gaw
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1423
    functionName: guestwidth_to_adjustwidth
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: guestwidth_to_adjustwidth(gaw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1426,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1428,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1429,1
    - Dst: width_to_agaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1436
    functionName: intel_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - BITS_TO_LONGS
    - width_to_agaw
    - dom_iommu
    - xzalloc_array
    linkageType: ''
    returnType: int
    signature: int intel_iommu_domain_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_hwdom_pci_devices
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1442,1
    - Dst: setup_hwdom_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1443,1
    - Dst: arch_iommu_hwdom_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1445,1
    - Dst: iommu_flush_all
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1447,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1448,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1453,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1453,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1454,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1455,1
    - Dst: iommu_enable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1458
    functionName: intel_iommu_hwdom_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - setup_hwdom_rmrr
    - BUG
    - arch_iommu_hwdom_init
    - iomem_deny_access
    - iommu_flush_all
    - printk
    - PFN_DOWN
    - setup_hwdom_pci_devices
    - iommu_enable_translation
    linkageType: ''
    returnType: void
    signature: void intel_iommu_hwdom_init(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iomem_deny_access
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1453,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1453,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1454,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1455,1
    - Dst: iommu_enable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1451
    functionDepth: 4
    functionLinenumber: 1451
    functionLinenumberEnd: 1457
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - BUG
    - iomem_deny_access
    - iommu_enable_translation
    - PFN_DOWN
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1468,1
    - Dst: ecap_dev_iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1469,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1472,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1474,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1476,1
    - Dst: acpi_find_matched_atsr_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1477,1
    - Dst: pci_find_ext_capability
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - pdev
    - drhd
    argTypes:
    - struct pci_dev*
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1485
    functionName: ats_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - pci_conf_read16
    - ecap_dev_iotlb
    - pci_find_cap_offset
    - ecap_queued_inval
    - acpi_find_matched_atsr_unit
    - pci_find_ext_capability
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int ats_device(const struct pci_dev *pdev,\n                      const
      struct acpi_drhd_unit *drhd)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1502,1
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1510,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1513,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1513,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1514,1
    - Dst: bus_to_context_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1515,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1518,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1521,1
    - Dst: context_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1525,1
    - Dst: context_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1529,1
    - Dst: did_to_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1530,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1532,1
    - Dst: rcu_lock_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1534,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1537,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1538,1
    - Dst: cap_ndoms
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1541,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1546,1
    - Dst: context_set_translation_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1548,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1554,1
    - Dst: domain_pgd_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1556,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1559,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1560,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1561,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1563,1
    - Dst: context_set_address_root
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1567,1
    - Dst: ecap_dev_iotlb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1568,1
    - Dst: context_set_translation_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1569,1
    - Dst: context_set_translation_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1571,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1573,1
    - Dst: context_set_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1576,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1580,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1581,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1583,1
    - Dst: context_set_address_width
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1589,1
    - Dst: level_to_agaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1589,1
    - Dst: context_set_fault_enable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1590,1
    - Dst: context_set_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1591,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1595,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1601,1
    - Dst: context_address_width
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1601,1
    - Dst: level_to_agaw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1602,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1603,1
    - Dst: context_fault_disable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1603,1
    - Dst: cmpxchg16b
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1606,1
    - Dst: check_cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1615,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1616,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1618,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1625,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1626,1
    - Dst: iommu_flush_context_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1628,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1628,1
    - Dst: iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1630,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1640,1
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1646,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1648,1
    - Dst: me_wifi_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1651,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1662,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1664,1
    - Dst: DEVICE_DOMID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1665,1
    - Dst: DEVICE_PGTABLE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1666,1
    - Dst: check_cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1671,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1675,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 103
    argCount: 8
    argNames:
    - domain
    - iommu
    - bus
    - devfn
    - pdev
    - domid
    - pgd_maddr
    - mode
    argTypes:
    - struct domain*
    - struct vtd_iommu*
    - uint8_t
    - uint8_t
    - struct pci_dev*
    - domid_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1496
    functionDepth: 8
    functionLinenumber: 1496
    functionLinenumberEnd: 1678
    functionName: domain_context_mapping_one
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 2
    functionsReached:
    - context_set_present
    - context_set_translation_type
    - bus_to_context_maddr
    - domain_context_mapping_one
    - PCI_BDF
    - spin_lock
    - level_to_agaw
    - context_set_address_root
    - check_cleanup_domid_map
    - PCI_SBDF
    - context_address_width
    - domain_context_unmap_one
    - context_present
    - context_set_domain_id
    - printk
    - iommu_sync_cache
    - rcu_unlock_domain
    - is_hardware_domain
    - context_fault_disable
    - spin_unlock
    - dom_iommu
    - map_vtd_domain_page
    - context_domain_id
    - QUARANTINE_SKIP
    - rcu_lock_domain_by_id
    - iommu_flush_iotlb_dsi
    - ecap_dev_iotlb
    - context_set_fault_enable
    - ASSERT
    - did_to_domain_id
    - context_set_address_width
    - DEVICE_PGTABLE
    - iommu_flush_write_buffer
    - cap_ndoms
    - me_wifi_quirk
    - set_bit
    - iommu_flush_context_device
    - rcu_lock_domain
    - cmpxchg16b
    - DEVICE_DOMID
    - unmap_vtd_domain_page
    - domain_pgd_maddr
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int domain_context_mapping_one(\n    struct domain *domain,\n    struct
      vtd_iommu *iommu,\n    uint8_t bus, uint8_t devfn, const struct pci_dev *pdev,\n
      \   domid_t domid, paddr_t pgd_maddr, unsigned int mode)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1686,1
    - Dst: DEVICE_PGTABLE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1688,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1704,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1706,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1706,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1727,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1728,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1729,1
    - Dst: iommu_alloc_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1745,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1751,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1752,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1753,1
    - Dst: DEVICE_DOMID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1754,1
    - Dst: ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1758,1
    - Dst: enable_ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1759,1
    - Dst: iommu_alloc_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1770,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1776,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1777,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1779,1
    - Dst: DEVICE_DOMID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1780,1
    - Dst: find_upstream_bridge
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1786,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1810,1
    - Dst: DEVICE_DOMID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1811,1
    - Dst: pdev_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1824,1
    - Dst: domain_context_mapping_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1826,1
    - Dst: DEVICE_DOMID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1827,1
    - Dst: domain_context_unmap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1833,1
    - Dst: domain_context_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1835,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1841,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1842,1
    - Dst: pci_vtd_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1848,1
    - Dst: iommu_free_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1852,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 82
    argCount: 3
    argNames:
    - domain
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1683
    functionDepth: 9
    functionLinenumber: 1683
    functionLinenumberEnd: 1858
    functionName: domain_context_mapping
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - domain_context_mapping_one
    - pdev_type
    - enable_ats_device
    - pci_vtd_quirk
    - find_upstream_bridge
    - iommu_free_domid
    - PCI_SBDF
    - printk
    - dprintk
    - is_hardware_domain
    - dom_iommu
    - ats_device
    - domain_context_unmap
    - ASSERT
    - DEVICE_PGTABLE
    - domain_context_mapping
    - acpi_find_matched_drhd_unit
    - iommu_alloc_domid
    - DEVICE_DOMID
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int domain_context_mapping(struct domain *domain, u8 devfn,\n                                  struct
      pci_dev *pdev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1715
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device( rmrr, bdf, i )
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1869,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1869,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1870,1
    - Dst: bus_to_context_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1872,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1875,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1876,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1879,1
    - Dst: context_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1882,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1884,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1885,1
    - Dst: context_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1889,1
    - Dst: context_clear_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1891,1
    - Dst: context_clear_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1892,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1893,1
    - Dst: iommu_flush_context_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1895,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1896,1
    - Dst: iommu_flush_iotlb_dsi
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1899,1
    - Dst: iommu_flush_write_buffer
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1909,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1915,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1916,1
    - Dst: me_wifi_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1919,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1922,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1926,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1928,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1928,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1932,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 4
    argNames:
    - domain
    - iommu
    - bus
    - devfn
    argTypes:
    - struct domain*
    - struct vtd_iommu*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1860
    functionDepth: 8
    functionLinenumber: 1860
    functionLinenumberEnd: 1936
    functionName: domain_context_unmap_one
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 2
    functionsReached:
    - bus_to_context_maddr
    - PCI_BDF
    - context_clear_entry
    - spin_lock
    - context_present
    - iommu_sync_cache
    - printk
    - context_clear_present
    - domain_crash
    - is_hardware_domain
    - spin_unlock
    - map_vtd_domain_page
    - context_domain_id
    - PCI_SLOT
    - PCI_FUNC
    - iommu_flush_iotlb_dsi
    - ASSERT
    - iommu_flush_write_buffer
    - me_wifi_quirk
    - ASSERT_UNREACHABLE
    - iommu_flush_context_device
    - unmap_vtd_domain_page
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int domain_context_unmap_one(\n    struct domain *domain,\n    struct
      vtd_iommu *iommu,\n    uint8_t bus, uint8_t devfn)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1943,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1953,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1954,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1955,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1955,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1960,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1964,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1967,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1968,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1969,1
    - Dst: ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1970,1
    - Dst: disable_ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1971,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1977,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1980,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1981,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1982,1
    - Dst: find_upstream_bridge
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1988,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1995,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:1997,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2005,1
    - Dst: pdev_type
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2007,1
    - Dst: domain_context_unmap_one
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2008,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2013,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2014,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2015,1
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2019,1
    - Dst: check_cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2020,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 3
    argNames:
    - domain
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - uint8_t
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1938
    functionDepth: 9
    functionLinenumber: 1938
    functionLinenumberEnd: 2023
    functionName: domain_context_unmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - find_upstream_bridge
    - check_cleanup_domid_map
    - ERR_PTR
    - ats_device
    - QUARANTINE_SKIP
    - PCI_SBDF
    - domain_context_unmap_one
    - disable_ats_device
    - pdev_type
    - printk
    - is_hardware_domain
    - domain_crash
    - dprintk
    - acpi_find_matched_drhd_unit
    linkageType: ''
    returnType: struct acpi_drhd_unit
    signature: "struct acpi_drhd_unit *domain_context_unmap(\n    struct domain *domain,\n
      \   uint8_t devfn,\n    struct pci_dev *pdev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2027,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2029,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2032
    functionName: iommu_clear_root_pgtable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - dom_iommu
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void iommu_clear_root_pgtable(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2036,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2039,1
    - Dst: iommu_identity_map_teardown
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2042,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2044,1
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2046,1
    - Dst: cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2047,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2034
    functionDepth: 4
    functionLinenumber: 2034
    functionLinenumberEnd: 2050
    functionName: iommu_domain_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - for_each_drhd_unit
    - XFREE
    - iommu_identity_map_teardown
    - ASSERT
    - cleanup_domid_map
    - list_empty
    linkageType: ''
    returnType: void
    signature: void iommu_domain_teardown(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2055,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2057,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2057,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2062,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2062,1
    - Dst: page_list_move
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2063,1
    - Dst: iommu_free_pgtables
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2064,1
    - Dst: cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pdev
    - drhd
    argTypes:
    - struct pci_dev*
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2052
    functionDepth: 4
    functionLinenumber: 2052
    functionLinenumberEnd: 2070
    functionName: quarantine_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - iommu_free_pgtables
    - ASSERT
    - page_list_move
    - page_list_empty
    - cleanup_domid_map
    - pcidevs_locked
    linkageType: ''
    returnType: void
    signature: "void quarantine_teardown(struct pci_dev *pdev,\n                                const
      struct acpi_drhd_unit *drhd)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2076,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2079,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2082,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2082,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2086,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2090,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2093,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2103,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2107,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2107,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2111,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2115,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2116,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2116,1
    - Dst: dma_set_pte_snp
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2128,1
    - Dst: val::val
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2130,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2132,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2133,1
    - Dst: iommu_sync_cache::iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2137,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2147,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2148,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2148,1
    - Dst: level_to_offset_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2151,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2154,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2156,1
    - Dst: level_to_offset_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2158,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2161,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2161,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2163,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2165,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2166,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2166,1
    - Dst: iommu_sync_cache::iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2167,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2171,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2172,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2175,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2176,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2179,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2183,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2183,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2184,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2184,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2184,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 5
    argNames:
    - d
    - dfn
    - mfn
    - flags
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2072
    functionDepth: 5
    functionLinenumber: 2072
    functionLinenumberEnd: 2189
    functionName: intel_iommu_map_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_use_hap_pt
    - level_to_offset_bits
    - spin_lock
    - IOMMUF_order
    - address_level_offset
    - maddr_to_page
    - queue_free_pt
    - dma_pte_present
    - dma_set_pte_snp
    - BUG_ON
    - iommu_sync_cache::iommu_sync_cache
    - val::val
    - is_hardware_domain
    - dma_pte_superpage
    - spin_unlock
    - dom_iommu
    - map_vtd_domain_page
    - pt_update_contig_markers
    - dfn_to_daddr
    - addr_to_dma_page_maddr
    - ASSERT
    - perfc_incr
    - dma_pte_addr
    - unmap_vtd_domain_page
    - iommu_queue_free_pgtable
    - maddr_to_mfn
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_map_page(\n    struct domain *d, dfn_t dfn, mfn_t
      mfn, unsigned int flags,\n    unsigned int *flush_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2194,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2195,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2204,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2207,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2211,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2214,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2216,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2219,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2223,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2224,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2226,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2228,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2229,1
    - Dst: dma_clear_pte
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2234,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2235,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2237,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2238,1
    - Dst: maddr_to_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2242,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2244,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2246,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2247,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2249,1
    - Dst: address_level_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2250,1
    - Dst: dma_clear_pte
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2251,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2252,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2255,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2256,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2259,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2261,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2265,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2266,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2266,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2266,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - d
    - dfn
    - order
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2191
    functionDepth: 5
    functionLinenumber: 2191
    functionLinenumberEnd: 2270
    functionName: intel_iommu_unmap_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_use_hap_pt
    - spin_lock
    - address_level_offset
    - maddr_to_page
    - dma_clear_pte
    - queue_free_pt
    - dma_pte_present
    - BUG_ON
    - iommu_sync_cache
    - dma_pte_superpage
    - is_hardware_domain
    - spin_unlock
    - dom_iommu
    - map_vtd_domain_page
    - pt_update_contig_markers
    - dfn_to_daddr
    - addr_to_dma_page_maddr
    - ASSERT
    - perfc_incr
    - dma_pte_addr
    - unmap_vtd_domain_page
    - iommu_queue_free_pgtable
    - maddr_to_mfn
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_unmap_page(\n    struct domain *d, dfn_t dfn, unsigned
      int order, unsigned int *flush_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2275,1
    - Dst: iommu_use_hap_pt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2282,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2283,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2286,1
    - Dst: addr_to_dma_page_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2288,1
    - Dst: dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2288,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2290,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - d
    - dfn
    - mfn
    - flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2272
    functionDepth: 5
    functionLinenumber: 2272
    functionLinenumberEnd: 2300
    functionName: intel_iommu_lookup_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - dom_iommu
    - iommu_use_hap_pt
    - dfn_to_daddr
    - addr_to_dma_page_maddr
    - spin_lock
    - maddr_to_mfn
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_lookup_page(\n    struct domain *d, dfn_t dfn, mfn_t
      *mfn, unsigned int *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2306,1
    - Dst: rdmsr_safe
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2311,1
    - Dst: ept_has_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2314,1
    - Dst: cap_sps_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2315,1
    - Dst: ept_has_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2316,1
    - Dst: cap_sps_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2302
    functionDepth: 2
    functionLinenumber: 2302
    functionLinenumberEnd: 2318
    functionName: vtd_ept_page_compatible
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - cap_sps_2mb
    - ept_has_1gb
    - ept_has_2mb
    - cap_sps_1gb
    - IS_ENABLED
    - rdmsr_safe
    linkageType: ''
    returnType: bool
    signature: bool vtd_ept_page_compatible(const struct vtd_iommu *iommu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2326,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2326,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2333,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2341,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2345,1
    - Dst: domain_context_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2350,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - devfn
    - pdev
    argTypes:
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2320
    functionDepth: 10
    functionLinenumber: 2320
    functionLinenumberEnd: 2356
    functionName: intel_iommu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_identity_mapping
    - PCI_BDF
    - ASSERT
    - domain_context_mapping
    - dprintk
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int intel_iommu_add_device(u8 devfn, struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2333,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2341,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2348
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dprintk
    - PCI_BDF
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device ( rmrr, bdf, i )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2360,1
    - Dst: ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2361,1
    - Dst: pci_vtd_quirk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2363,1
    - Dst: enable_ats_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2358
    functionDepth: 4
    functionLinenumber: 2358
    functionLinenumberEnd: 2371
    functionName: intel_iommu_enable_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - ats_device
    - pci_vtd_quirk
    - acpi_find_matched_drhd_unit
    - enable_ats_device
    linkageType: ''
    returnType: int
    signature: int intel_iommu_enable_device(struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: domain_context_unmap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2383,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2384,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2385,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2389,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2396,1
    - Dst: quarantine_teardown
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2400,1
    - Dst: iommu_free_domid
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - devfn
    - pdev
    argTypes:
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2373
    functionDepth: 10
    functionLinenumber: 2373
    functionLinenumberEnd: 2410
    functionName: intel_iommu_remove_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - IS_ERR
    - iommu_free_domid
    - iommu_identity_mapping
    - quarantine_teardown
    - PCI_BDF
    - domain_context_unmap
    - PTR_ERR
    linkageType: ''
    returnType: int
    signature: int intel_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2389,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2387
    functionDepth: 1
    functionLinenumber: 2387
    functionLinenumberEnd: 2398
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - PCI_BDF
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device ( rmrr, bdf, i )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain_context_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - devfn
    - pdev
    argTypes:
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2412
    functionDepth: 10
    functionLinenumber: 2412
    functionLinenumberEnd: 2416
    functionName: setup_hwdom_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - domain_context_mapping
    linkageType: ''
    returnType: int
    signature: "int setup_hwdom_device(\n    u8 devfn, struct pci_dev *pdev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2422,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2424,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2426,1
    - Dst: cap_num_fault_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2427,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2430,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2435,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2438
    functionName: clear_fault_bits
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - cap_fault_reg_offset
    - spin_lock_irqsave
    - cap_num_fault_regs
    - dmar_readl
    - spin_unlock_irqrestore
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void clear_fault_bits(struct vtd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: drhd_to_rhsa
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2442,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2443,1
    - Dst: node_online
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2449,1
    - Dst: cpumask_intersects
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2450,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2450,1
    - Dst: node_to_cpumask
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2451,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2453,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2454,1
    - Dst: dma_msi_set_affinity
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2455,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2440
    functionDepth: 6
    functionLinenumber: 2440
    functionLinenumberEnd: 2457
    functionName: adjust_irq_affinity
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - node_online
    - drhd_to_rhsa
    - irq_to_desc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - node_to_cpumask
    - pxm_to_node
    - dma_msi_set_affinity
    - cpumask_intersects
    linkageType: ''
    returnType: void
    signature: void adjust_irq_affinity(struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2463,1
    - Dst: adjust_irq_affinity
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2459
    functionDepth: 7
    functionLinenumber: 2459
    functionLinenumberEnd: 2465
    functionName: adjust_vtd_irq_affinities
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - for_each_drhd_unit
    - adjust_irq_affinity
    linkageType: ''
    returnType: void
    signature: void adjust_vtd_irq_affinities(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: adjust_irq_affinity
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2480,1
    - Dst: clear_fault_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2484,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2492,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2493,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2500,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2501,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2503,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2504,1
    - Dst: enable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2517,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2520,1
    - Dst: ioapic_to_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2536,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2536,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2542,1
    - Dst: enable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2552,1
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2562,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2563,1
    - Dst: iommu_set_root_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2574,1
    - Dst: __must_check::iommu_flush_all
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2582,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - resume
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2467
    functionDepth: 7
    functionLinenumber: 2467
    functionLinenumberEnd: 2583
    functionName: __must_check::init_vtd_hw
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - __must_check::iommu_flush_all
    - disable_qinval
    - for_each_drhd_unit
    - spin_lock_irqsave
    - IO_APIC_ID
    - enable_intremap
    - dmar_readl
    - spin_unlock_irqrestore
    - adjust_irq_affinity
    - disable_intremap
    - clear_fault_bits
    - dmar_writel
    - enable_qinval
    - ioapic_to_iommu
    - has_register_based_invalidation
    - iommu_set_root_entry
    linkageType: ''
    returnType: int
    signature: int __must_check init_vtd_hw(bool resume)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: adjust_irq_affinity
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2480,1
    - Dst: clear_fault_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2484,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2492,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2493,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2500,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2501,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2503,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2478
    functionDepth: 7
    functionLinenumber: 2478
    functionLinenumberEnd: 2505
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - disable_qinval
    - spin_lock_irqsave
    - dmar_readl
    - spin_unlock_irqrestore
    - adjust_irq_affinity
    - disable_intremap
    - clear_fault_bits
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2517,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2510
    functionDepth: 2
    functionLinenumber: 2510
    functionLinenumberEnd: 2526
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - has_register_based_invalidation
    - enable_qinval
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2549
    functionDepth: 1
    functionLinenumber: 2549
    functionLinenumberEnd: 2560
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - enable_intremap
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_set_root_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2571
    functionDepth: 2
    functionLinenumber: 2571
    functionLinenumberEnd: 2580
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - iommu_set_root_entry
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2591,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2600,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2603,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2585
    functionDepth: 2
    functionLinenumber: 2585
    functionLinenumberEnd: 2607
    functionName: __hwdom_init::setup_hwdom_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - pcidevs_unlock
    - dprintk
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void __hwdom_init setup_hwdom_rmrr(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2600,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2605
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dprintk
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device ( rmrr, bdf, i )
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2621,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2628,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2634,1
    - Dst: platform_quirks_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2640,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2647,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2662,1
    - Dst: cap_sps_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2664,1
    - Dst: cap_sps_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2665,1
    - Dst: cap_sps_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2667,1
    - Dst: cap_sps_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2669,1
    - Dst: ecap_snp_ctl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2673,1
    - Dst: ecap_pass_thru
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2677,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2680,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2683,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2686,1
    - Dst: cap_intr_post
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2690,1
    - Dst: vtd_ept_page_compatible
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2694,1
    - Dst: clear_iommu_hap_pt_share
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2695,1
    - Dst: iommu_set_interrupt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2697,1
    - Dst: softirq_tasklet_init
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2705,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2723,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2725,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2726,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2727,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2729,1
    - Dst: P
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2731,1
    - Dst: init_vtd_hw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2734,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2738,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2741,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2613
    functionDepth: 6
    functionLinenumber: 2613
    functionLinenumberEnd: 2754
    functionName: vtd_setup
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - softirq_tasklet_init
    - ecap_queued_inval
    - register_keyhandler
    - cap_intr_post
    - ecap_pass_thru
    - has_register_based_invalidation
    - init_vtd_hw
    - platform_quirks_init
    - P
    - clear_iommu_hap_pt_share
    - ecap_snp_ctl
    - printk
    - ecap_intr_remap
    - cap_sps_1gb
    - ASSERT
    - iommu_set_interrupt
    - list_empty
    - vtd_ept_page_compatible
    - xmalloc_array
    - cap_sps_2mb
    - unlikely
    linkageType: ''
    returnType: int
    signature: int vtd_setup(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2662,1
    - Dst: cap_sps_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2664,1
    - Dst: cap_sps_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2665,1
    - Dst: cap_sps_2mb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2667,1
    - Dst: cap_sps_1gb
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2669,1
    - Dst: ecap_snp_ctl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2673,1
    - Dst: ecap_pass_thru
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2677,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2680,1
    - Dst: has_register_based_invalidation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2683,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2686,1
    - Dst: cap_intr_post
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2690,1
    - Dst: vtd_ept_page_compatible
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2694,1
    - Dst: clear_iommu_hap_pt_share
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2695,1
    - Dst: iommu_set_interrupt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2697,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2658
    functionDepth: 6
    functionLinenumber: 2658
    functionLinenumberEnd: 2703
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - vtd_ept_page_compatible
    - cap_sps_2mb
    - ecap_intr_remap
    - cap_sps_1gb
    - clear_iommu_hap_pt_share
    - ecap_snp_ctl
    - ecap_queued_inval
    - iommu_set_interrupt
    - printk
    - cap_intr_post
    - ecap_pass_thru
    - has_register_based_invalidation
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2721
    functionDepth: 0
    functionLinenumber: 2721
    functionLinenumberEnd: 2722
    functionName: P
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(p,s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2763,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2765,1
    - Dst: vmx_pi_hooks_assign
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2766,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2774,1
    - Dst: is_system_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2775,1
    - Dst: domain_context_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2779,1
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2782,1
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2784,1
    - Dst: check_cleanup_domid_map
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2787,1
    - Dst: domain_context_unmap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2794,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2795,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2795,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2799,1
    - Dst: vmx_pi_hooks_deassign
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2800,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2806,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2807,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2808,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2812,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2813,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2814,1
    - Dst: has_arch_pdevs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2817,1
    - Dst: vmx_pi_hooks_deassign
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2818,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2825,1
    - Dst: for_each_rmrr_device
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2831,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2833,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2839,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 4
    argNames:
    - source
    - target
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - struct domain*
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2756
    functionDepth: 10
    functionLinenumber: 2756
    functionLinenumberEnd: 2848
    functionName: reassign_device_ownership
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - PCI_BDF
    - check_cleanup_domid_map
    - has_arch_pdevs
    - vmx_pi_hooks_assign
    - list_del
    - is_system_domain
    - is_hardware_domain
    - vmx_pi_hooks_deassign
    - write_unlock
    - QUARANTINE_SKIP
    - domain_context_unmap
    - domain_context_mapping
    - write_lock
    - acpi_find_matched_drhd_unit
    - IS_ERR
    - iommu_identity_mapping
    - for_each_rmrr_device
    - PTR_ERR
    - list_add
    linkageType: ''
    returnType: int
    signature: "int reassign_device_ownership(\n    struct domain *source,\n    struct
      domain *target,\n    u8 devfn, struct pci_dev *pdev)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2859,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2877,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2882,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2887,1
    - Dst: reassign_device_ownership
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2894,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2899,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2901,1
    - Dst: reassign_device_ownership
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2914,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2917,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2922,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2924,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2933,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 4
    argNames:
    - d
    - devfn
    - pdev
    - flag
    argTypes:
    - struct domain*
    - u8
    - struct pci_dev*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2850
    functionDepth: 11
    functionLinenumber: 2850
    functionLinenumberEnd: 2940
    functionName: intel_iommu_assign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_identity_mapping
    - reassign_device_ownership
    - PCI_SBDF
    - PCI_BDF
    - printk
    - is_hardware_domain
    - domain_crash
    - list_empty
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_assign_device(\n    struct domain *d, u8 devfn, struct
      pci_dev *pdev, u32 flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2877,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2882,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2887,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2891
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - PCI_SBDF
    - PCI_BDF
    - printk
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device( rmrr, bdf, i )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2899,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2897
    functionDepth: 1
    functionLinenumber: 2897
    functionLinenumberEnd: 2911
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - PCI_BDF
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device( rmrr, bdf, i )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2922,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2924,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2920
    functionDepth: 1
    functionLinenumber: 2920
    functionLinenumberEnd: 2937
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - domain_crash
    - PCI_BDF
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device( rmrr, bdf, i )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_upstream_bridge
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2946,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2942
    functionDepth: 5
    functionLinenumber: 2942
    functionLinenumberEnd: 2950
    functionName: intel_iommu_group_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - find_upstream_bridge
    - PCI_BDF
    linkageType: ''
    returnType: int
    signature: int intel_iommu_group_id(u16 seg, u8 bus, u8 devfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iommu_flush_all
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2962,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2963,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2976,1
    - Dst: iommu_disable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2982,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2989,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2952
    functionDepth: 4
    functionLinenumber: 2952
    functionLinenumberEnd: 2993
    functionName: vtd_suspend
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - disable_qinval
    - iommu_disable_translation
    - dmar_readl
    - iommu_flush_all
    - unlikely
    linkageType: ''
    returnType: int
    signature: int vtd_suspend(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2976,1
    - Dst: iommu_disable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2982,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:2989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2971
    functionDepth: 4
    functionLinenumber: 2971
    functionLinenumberEnd: 2990
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - disable_qinval
    - iommu_disable_translation
    - dmar_readl
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_flush_all
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3003,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3004,1
    - Dst: iommu_disable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3010,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3011,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2995
    functionDepth: 4
    functionLinenumber: 2995
    functionLinenumberEnd: 3014
    functionName: vtd_crash_shutdown
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - disable_qinval
    - iommu_disable_translation
    - iommu_flush_all
    - disable_intremap
    - printk
    linkageType: ''
    returnType: void
    signature: void vtd_crash_shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_disable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3010,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3011,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 3007
    functionDepth: 4
    functionLinenumber: 3007
    functionLinenumberEnd: 3013
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - disable_qinval
    - disable_intremap
    - iommu_disable_translation
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3030,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3031,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3032,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3034,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3036,1
    - Dst: init_vtd_hw
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3039,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3040,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3047,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3048,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3049,1
    - Dst: iommu_enable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 3016
    functionDepth: 4
    functionLinenumber: 3016
    functionLinenumberEnd: 3053
    functionName: vtd_resume
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - panic
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - dmar_writel
    - iommu_enable_translation
    - init_vtd_hw
    linkageType: ''
    returnType: void
    signature: void vtd_resume(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3030,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3031,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3032,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3034,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3026
    functionDepth: 1
    functionLinenumber: 3026
    functionLinenumberEnd: 3037
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - spin_lock_irqsave
    - dmar_writel
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3047,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3048,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3049,1
    - Dst: iommu_enable_translation
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3042
    functionDepth: 4
    functionLinenumber: 3042
    functionLinenumberEnd: 3052
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - spin_lock_irqsave
    - iommu_enable_translation
    - dmar_writel
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3066,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3072,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3075,1
    - Dst: offset_level_address
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3078,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3079,1
    - Dst: vtd_dump_page_table_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3080,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3080,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3083,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3086,1
    - Dst: dma_pte_read
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3087,1
    - Dst: dma_pte_write
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3088,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3091,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - pt_maddr
    - level
    - gpa
    - indent
    argTypes:
    - paddr_t
    - int
    - paddr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3055
    functionDepth: 5
    functionLinenumber: 3055
    functionLinenumberEnd: 3092
    functionName: vtd_dump_page_table_level
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - dma_pte_addr
    - dma_pte_present
    - map_vtd_domain_page
    - offset_level_address
    - dma_pte_write
    - unmap_vtd_domain_page
    - process_pending_softirqs
    - dma_pte_read
    - printk
    - vtd_dump_page_table_level
    - dma_pte_superpage
    linkageType: ''
    returnType: void
    signature: "void vtd_dump_page_table_level(paddr_t pt_maddr, int level, paddr_t
      gpa,\n                                      int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3096,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3098,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3099,1
    - Dst: vtd_dump_page_table_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3100,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3102
      start: 3094
    functionDepth: 6
    functionLinenumber: 3094
    functionLinenumberEnd: 3102
    functionName: vtd_dump_page_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - agaw_to_level
    - vtd_dump_page_table_level
    - dom_iommu
    - printk
    linkageType: ''
    returnType: void
    signature: void vtd_dump_page_tables(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3107,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3115,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3124,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3133,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3133,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3134,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3135,1
    - Dst: dma_set_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3139,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3139,1
    - Dst: dma_set_pte_readable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3140,1
    - Dst: dma_set_pte_writable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3141,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3143,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3145,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3145,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3146,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - this
    - level
    - pgs
    argTypes:
    - struct dma_pte*
    - unsigned int
    - struct page_info*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3104
    functionDepth: 1
    functionLinenumber: 3104
    functionLinenumberEnd: 3152
    functionName: fill_qpt
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - dma_pte_addr
    - dma_pte_present
    - dom_iommu
    - map_vtd_domain_page
    - dma_set_pte_writable
    - iommu_alloc_pgtable
    - unmap_vtd_domain_page
    - dma_set_pte_addr
    - fill_qpt
    - dma_set_pte_readable
    - dma_pte_superpage
    - page_to_maddr
    linkageType: ''
    returnType: int
    signature: "int fill_qpt(struct dma_pte *this, unsigned int level,\n                    struct
      page_info *pgs[6])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3157,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3160,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3167,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3167,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3168,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3169,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3169,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3173,1
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3177,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3181,1
    - Dst: context_set_domain_id
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3185,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3188,1
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3199,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3203,1
    - Dst: iommu_identity_map_teardown
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3209,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3211,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3218,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3219,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3220,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3222,1
    - Dst: page_list_move
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3225,1
    - Dst: quarantine_teardown
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3228,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - pdev
    - scratch_page
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3154
    functionDepth: 5
    functionLinenumber: 3154
    functionLinenumberEnd: 3231
    functionName: intel_iommu_quarantine_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_alloc_pgtable
    - page_to_mfn
    - quarantine_teardown
    - fill_qpt
    - context_set_domain_id
    - printk
    - dom_iommu
    - map_vtd_domain_page
    - agaw_to_level
    - ASSERT
    - page_list_empty
    - page_to_maddr
    - acpi_find_matched_drhd_unit
    - clear_domain_page
    - iommu_identity_mapping
    - iommu_identity_map_teardown
    - unmap_vtd_domain_page
    - page_list_move
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_quarantine_init(struct pci_dev *pdev,\n                                                bool
      scratch_page)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3199,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3190
    functionDepth: 1
    functionLinenumber: 3190
    functionLinenumberEnd: 3207
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 1
    functionsReached:
    - printk
    - iommu_identity_mapping
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device ( rmrr, bdf, i )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3240,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3233
    functionDepth: 1
    functionLinenumber: 3233
    functionLinenumberEnd: 3249
    functionName: vtd_quiesce
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 0
    functionsReached:
    - dmar_writel
    - dmar_readl
    linkageType: ''
    returnType: void
    signature: void vtd_quiesce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3240,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.c:3247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3248
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.c
    functionUses: 4
    functionsReached:
    - dmar_writel
    - dmar_readl
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - scope
    - sec_bus
    - sub_bus
    argTypes:
    - struct dmar_scope*
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: dmar_scope_add_buses
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - set_bit
    linkageType: ''
    returnType: void
    signature: "void dmar_scope_add_buses(struct dmar_scope *scope, u16 sec_bus,\n
      \                                       u16 sub_bus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:74,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: acpi_register_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - list_add
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: int acpi_register_drhd_unit(struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rmrr
    argTypes:
    - struct acpi_rmrr_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: acpi_register_rmrr_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - list_add
    linkageType: ''
    returnType: int
    signature: int acpi_register_rmrr_unit(struct acpi_rmrr_unit *rmrr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XFREE
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - scope
    argTypes:
    - struct dmar_scope*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: scope_devices_free
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - XFREE
    linkageType: ''
    returnType: void
    signature: void scope_devices_free(struct dmar_scope *scope)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:101,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:103,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:104,1
    - Dst: iommu_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:105,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:106,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:108,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:110,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:111,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:112,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:114,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:116,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:117,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 95
    functionDepth: 6
    functionLinenumber: 95
    functionLinenumberEnd: 120
    functionName: disable_all_dmar_units
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - scope_devices_free
    - iommu_free
    - list_del
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: void
    signature: void disable_all_dmar_units(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ioapic_list
    - apic_id
    argTypes:
    - struct list_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: acpi_ioapic_device_match
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int acpi_ioapic_device_match(\n    struct list_head *ioapic_list,
      unsigned int apic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: list_for_each_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 119
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry( ioapic, ioapic_list, list )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:136,1
    - Dst: acpi_ioapic_device_match
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - apic_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: ioapic_to_drhd
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - acpi_ioapic_device_match
    - list_for_each_entry
    linkageType: ''
    returnType: struct acpi_drhd_unit
    signature: struct acpi_drhd_unit *ioapic_to_drhd(unsigned int apic_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:146,1
    - Dst: acpi_ioapic_device_match
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - apic_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: ioapic_to_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 1
    functionsReached:
    - acpi_ioapic_device_match
    - list_for_each_entry
    linkageType: ''
    returnType: struct vtd_iommu
    signature: struct vtd_iommu *ioapic_to_iommu(unsigned int apic_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - hpet_id
    argTypes:
    - struct list_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: acpi_hpet_device_match
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: bool
    signature: "bool acpi_hpet_device_match(\n    struct list_head *list, unsigned
      int hpet_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:167,1
    - Dst: acpi_hpet_device_match
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hpet_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: hpet_to_drhd
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - acpi_hpet_device_match
    - list_for_each_entry
    linkageType: ''
    returnType: struct acpi_drhd_unit
    signature: struct acpi_drhd_unit *hpet_to_drhd(unsigned int hpet_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hpet_to_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hpet_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: hpet_to_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - hpet_to_drhd
    linkageType: ''
    returnType: struct vtd_iommu
    signature: struct vtd_iommu *hpet_to_iommu(unsigned int hpet_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:187,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - atsr
    argTypes:
    - struct acpi_atsr_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: acpi_register_atsr_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - list_add
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: int acpi_register_atsr_unit(struct acpi_atsr_unit *atsr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:219,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:225,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 235
    functionName: acpi_find_matched_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 8
    functionsReached:
    - PCI_BDF
    - test_bit
    - list_for_each_entry
    linkageType: ''
    returnType: struct acpi_drhd_unit
    signature: struct acpi_drhd_unit *acpi_find_matched_drhd_unit(const struct pci_dev
      *pdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:242,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 254
    functionName: acpi_find_matched_atsr_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 1
    functionsReached:
    - test_bit
    - list_for_each_entry
    linkageType: ''
    returnType: struct acpi_atsr_unit
    signature: struct acpi_atsr_unit *acpi_find_matched_atsr_unit(const struct pci_dev
      *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 269
    functionName: drhd_to_rhsa
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: struct acpi_rhsa_unit
    signature: struct acpi_rhsa_unit *drhd_to_rhsa(const struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: is_igd_drhd
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_igd_drhd(struct acpi_drhd_unit *drhd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - start
    - end
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: scope_device_count
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scope_device_count(const void *start, const void *end)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:316,1
    - Dst: scope_device_count
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:320,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:325,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:342,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:342,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:350,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:350,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:352,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:352,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:355,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:356,1
    - Dst: dmar_scope_add_buses
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:359,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:365,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:366,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:373,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:380,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:389,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:390,1
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:392,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:394,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:394,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:406,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:407,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:412,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:419,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:428,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:434,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:445,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 90
    argCount: 5
    argNames:
    - start
    - end
    - scope
    - type
    - seg
    argTypes:
    - void*
    - void*
    - struct dmar_scope*
    - int
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 448
    functionName: acpi_parse_dev_scope
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - scope_devices_free
    - xmalloc
    - pci_device_detect
    - container_of
    - scope_device_count
    - PCI_SBDF
    - PCI_BDF
    - xzalloc_array
    - dmar_scope_add_buses
    - printk
    - pci_conf_read8
    - list_add
    linkageType: ''
    returnType: int
    signature: "int acpi_parse_dev_scope(\n    const void *start, const void *end,
      struct dmar_scope *scope,\n    int type, u16 seg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h
    - min_len
    argTypes:
    - struct acpi_dmar_header*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 458
    functionName: acpi_dmar_check_length
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int acpi_dmar_check_length(\n    const struct acpi_dmar_header *h,
      unsigned int min_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:464,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:470,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:476,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:483,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:484,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:486,1
    - Dst: iommu_alloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:488,1
    - Dst: acpi_parse_dev_scope
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:494,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:500,1
    - Dst: acpi_register_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:515,1
    - Dst: pci_known_segment
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:526,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:536,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:537,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:538,1
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:540,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:541,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:543,1
    - Dst: acpi_register_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:546,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:552,1
    - Dst: iommu_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:553,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:554,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_dmar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 460
    functionDepth: 6
    functionLinenumber: 460
    functionLinenumberEnd: 558
    functionName: acpi_parse_one_drhd
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - scope_devices_free
    - PCI_SLOT
    - acpi_register_drhd_unit
    - acpi_dmar_check_length
    - pci_known_segment
    - container_of
    - PCI_BUS
    - PCI_FUNC
    - pci_device_detect
    - PCI_SBDF
    - iommu_free
    - iommu_alloc
    - printk
    - INIT_LIST_HEAD
    - xfree
    - acpi_parse_dev_scope
    linkageType: ''
    returnType: int
    signature: int acpi_parse_one_drhd(struct acpi_dmar_header *header)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pci_known_segment
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:567,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:572,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:573,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:574,1
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:576,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:581,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:610,1
    - Dst: acpi_register_rmrr_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - rmrru
    argTypes:
    - struct acpi_rmrr_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 560
    functionDepth: 5
    functionLinenumber: 560
    functionLinenumberEnd: 616
    functionName: register_one_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - PCI_FUNC
    - PCI_SLOT
    - pci_device_detect
    - pci_known_segment
    - PCI_BUS
    - PCI_SBDF
    - dprintk
    - acpi_register_rmrr_unit
    linkageType: ''
    returnType: int
    signature: int register_one_rmrr(struct acpi_rmrr_unit *rmrru)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:622,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:628,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:631,1
    - Dst: iommu_unity_region_ok
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:641,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:641,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:642,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:645,1
    - Dst: acpi_parse_dev_scope
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:655,1
    - Dst: register_one_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:659,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:663,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:664,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_dmar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 618
    functionDepth: 6
    functionLinenumber: 618
    functionLinenumberEnd: 673
    functionName: acpi_parse_one_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - scope_devices_free
    - iommu_unity_region_ok
    - acpi_dmar_check_length
    - container_of
    - maddr_to_mfn
    - register_one_rmrr
    - acpi_parse_dev_scope
    - xfree
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int acpi_parse_one_rmrr(struct acpi_dmar_header *header)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:679,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:685,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:688,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:695,1
    - Dst: acpi_parse_dev_scope
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:700,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:706,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:720,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:721,1
    - Dst: acpi_register_atsr_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_dmar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 726
    functionName: acpi_parse_one_atsr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - scope_devices_free
    - acpi_dmar_check_length
    - acpi_register_atsr_unit
    - container_of
    - printk
    - acpi_parse_dev_scope
    - xfree
    linkageType: ''
    returnType: int
    signature: int acpi_parse_one_atsr(struct acpi_dmar_header *header)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:732,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:736,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:739,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:745,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_dmar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: acpi_parse_one_rhsa
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - acpi_dmar_check_length
    - container_of
    - printk
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: int acpi_parse_one_rhsa(struct acpi_dmar_header *header)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_known_segment
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:761,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:766,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:767,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:768,1
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:770,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:774,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:793,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:795,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - satcu
    argTypes:
    - struct acpi_satc_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 754
    functionDepth: 5
    functionLinenumber: 754
    functionLinenumberEnd: 798
    functionName: register_one_satc
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - PCI_FUNC
    - PCI_SLOT
    - pci_device_detect
    - pci_known_segment
    - PCI_BUS
    - PCI_SBDF
    - printk
    - list_add
    linkageType: ''
    returnType: int
    signature: int register_one_satc(struct acpi_satc_unit *satcu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:804,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:807,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:812,1
    - Dst: acpi_parse_dev_scope
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:821,1
    - Dst: register_one_satc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:825,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:829,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - header
    argTypes:
    - struct acpi_dmar_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 800
    functionDepth: 6
    functionLinenumber: 800
    functionLinenumberEnd: 839
    functionName: acpi_parse_one_satc
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - scope_devices_free
    - acpi_dmar_check_length
    - container_of
    - register_one_satc
    - acpi_parse_dev_scope
    - xfree
    linkageType: ''
    returnType: int
    signature: int acpi_parse_one_satc(const struct acpi_dmar_header *header)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:851,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:862,1
    - Dst: acpi_dmar_check_length
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:868,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:876,1
    - Dst: acpi_parse_one_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:877,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:881,1
    - Dst: acpi_parse_one_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:882,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:886,1
    - Dst: acpi_parse_one_atsr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:887,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:891,1
    - Dst: acpi_parse_one_rhsa
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:892,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:897,1
    - Dst: acpi_parse_one_satc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:898,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:902,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:915,1
    - Dst: disable_all_dmar_units
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:917,1
    - Dst: acpi_dmar_zap
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:922,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 841
    functionDepth: 7
    functionLinenumber: 841
    functionLinenumberEnd: 924
    functionName: acpi_parse_dmar
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - acpi_parse_one_drhd
    - acpi_dmar_check_length
    - acpi_parse_one_satc
    - ASSERT
    - acpi_parse_one_rmrr
    - dprintk
    - acpi_dmar_zap
    - printk
    - acpi_parse_one_rhsa
    - acpi_parse_one_atsr
    - disable_all_dmar_units
    linkageType: ''
    returnType: int
    signature: int acpi_parse_dmar(struct acpi_table_header *table)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:956,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:969,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:971,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:972,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:977,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:978,1
    - Dst: mfn_valid
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:990,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:990,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1003,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1007,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1010,1
    - Dst: PCI_SEG
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1018,1
    - Dst: PCI_SEG
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1020,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1025,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1026,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1031,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1033,1
    - Dst: register_one_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1036,1
    - Dst: scope_devices_free
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1041,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1042,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - base_pfn
    - end_pfn
    - dev_count
    - sbdf
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 945
    functionDepth: 6
    functionLinenumber: 945
    functionLinenumberEnd: 1046
    functionName: add_one_user_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - xmalloc_array
    - scope_devices_free
    - _mfn
    - mfn_valid
    - paddr_to_pfn
    - pfn_to_paddr
    - PCI_SEG
    - printk
    - register_one_rmrr
    - xfree
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int add_one_user_rmrr(unsigned long base_pfn,\n                                    unsigned
      long end_pfn,\n                                    unsigned int dev_count,\n
      \                                   uint32_t *sbdf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_one_user_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1048
    functionDepth: 7
    functionLinenumber: 1048
    functionLinenumberEnd: 1063
    functionName: add_user_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - add_one_user_rmrr
    linkageType: ''
    returnType: int
    signature: int add_user_rmrr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_one_user_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - start
    - nr
    - id
    - ctxt
    argTypes:
    - xen_pfn_t
    - xen_ulong_t
    - u32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1065
    functionDepth: 7
    functionLinenumber: 1065
    functionLinenumberEnd: 1070
    functionName: add_one_extra_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - add_one_user_rmrr
    linkageType: ''
    returnType: int
    signature: int add_one_extra_rmrr(xen_pfn_t start, xen_ulong_t nr, u32 id, void
      *ctxt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_extra_reserved_device_memory
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1072
    functionDepth: 4
    functionLinenumber: 1072
    functionLinenumberEnd: 1075
    functionName: add_extra_rmrr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - iommu_get_extra_reserved_device_memory
    linkageType: ''
    returnType: int
    signature: int add_extra_rmrr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1081
    functionName: parse_dmar_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: parse_dmar_table(h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ACPI_SUCCESS
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1089,1
    - Dst: acpi_get_table_phys
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1089,1
    - Dst: map_pages_to_xen
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1092,1
    - Dst: __va
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1092,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1092,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1093,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1093,1
    - Dst: __va
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1095,1
    - Dst: parse_dmar_table
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1098,1
    - Dst: drhd_to_rhsa
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1102,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1109,1
    - Dst: alloc_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1111,1
    - Dst: add_user_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1119,1
    - Dst: add_extra_rmrr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1082
    functionDepth: 8
    functionLinenumber: 1082
    functionLinenumberEnd: 1123
    functionName: acpi_dmar_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - __va
    - ACPI_SUCCESS
    - drhd_to_rhsa
    - PFN_UP
    - parse_dmar_table
    - map_pages_to_xen
    - maddr_to_mfn
    - acpi_get_table_phys
    - pxm_to_node
    - add_extra_rmrr
    - PFN_DOWN
    - add_user_rmrr
    - alloc_pgtable_maddr
    linkageType: ''
    returnType: int
    signature: int acpi_dmar_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: drhd_to_rhsa
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1102,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1109,1
    - Dst: alloc_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1100
    functionDepth: 7
    functionLinenumber: 1100
    functionLinenumberEnd: 1113
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 4
    functionsReached:
    - drhd_to_rhsa
    - pxm_to_node
    - alloc_pgtable_maddr
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1131
    functionName: acpi_dmar_reinstate
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 4
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void acpi_dmar_reinstate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1139
    functionName: acpi_dmar_zap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 2
    functionsReached:
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void acpi_dmar_zap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1146
    functionName: platform_supports_intremap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool platform_supports_intremap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1153
    functionName: platform_supports_x2apic
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool platform_supports_x2apic(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1169,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1169,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1170,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1170,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1171,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - func
    - ctxt
    argTypes:
    - iommu_grdm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1181
    functionName: intel_iommu_get_reserved_device_memory
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - PCI_SBDF
    - unlikely
    - PFN_DOWN
    - func
    linkageType: ''
    returnType: int
    signature: "int intel_iommu_get_reserved_device_memory(\n    iommu_grdm_t *func,
      void *ctxt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1169,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1169,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1170,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1170,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1171,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1178
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 1
    functionsReached:
    - PFN_UP
    - PCI_SBDF
    - unlikely
    - PFN_DOWN
    - func
    linkageType: ''
    returnType: void
    signature: void for_each_rmrr_device ( rmrr, bdf, i )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1204,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1210,1
    - Dst: parse_pci_seg
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1235,1
    - Dst: PCI_SEG
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1244,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/dmar.c:1249,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1194
    functionDepth: 2
    functionLinenumber: 1194
    functionLinenumberEnd: 1262
    functionName: parse_rmrr_param
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.c
    functionUses: 0
    functionsReached:
    - parse_pci_seg
    - PCI_SBDF
    - PCI_SEG
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_rmrr_param(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:37,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:41,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:42,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:44,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 50
    functionName: disable_pmr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - IOMMU_WAIT_OP
    - dmar_readl
    - spin_unlock_irqrestore
    - dmar_writel
    linkageType: ''
    returnType: void
    signature: void disable_pmr(struct vtd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:57,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:58,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:59,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:59,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:60,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:60,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:61,1
    - Dst: cap_num_fault_regs
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:61,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:62,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:62,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:63,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:65,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:66,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:66,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:67,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:68,1
    - Dst: cap_fault_reg_offset
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:68,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:70,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:70,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:71,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:71,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:72,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:72,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:73,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:73,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:74,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:74,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:75,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:75,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:76,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:76,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:77,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:77,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:78,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:78,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:79,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - drhd
    argTypes:
    - struct acpi_drhd_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: print_iommu_regs
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 1
    functionsReached:
    - cap_fault_reg_offset
    - dmar_readq
    - cap_num_fault_regs
    - dmar_readl
    - printk
    linkageType: ''
    returnType: void
    signature: void print_iommu_regs(struct acpi_drhd_unit *drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gmfn
    - level
    argTypes:
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: get_level_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 get_level_index(unsigned long gmfn, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:98,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:99,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:104,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:108,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:110,1
    - Dst: root_present
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:111,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:113,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:114,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:119,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:120,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:123,1
    - Dst: context_present
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:125,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:127,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:128,1
    - Dst: agaw_to_level
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:132,1
    - Dst: context_address_width
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:132,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:133,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:137,1
    - Dst: map_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:143,1
    - Dst: get_level_index
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:144,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:146,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:147,1
    - Dst: dma_pte_read
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:148,1
    - Dst: dma_pte_write
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:149,1
    - Dst: dma_pte_present
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:151,1
    - Dst: dma_pte_superpage
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:151,1
    - Dst: dma_pte_addr
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - iommu
    - bus
    - devfn
    - gmfn
    argTypes:
    - struct vtd_iommu*
    - int
    - int
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 155
    functionName: print_vtd_entries
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 1
    functionsReached:
    - dma_pte_addr
    - map_vtd_domain_page
    - dma_pte_present
    - agaw_to_level
    - dma_pte_write
    - PCI_SBDF
    - context_address_width
    - root_present
    - unmap_vtd_domain_page
    - context_present
    - dma_pte_read
    - printk
    - dma_pte_superpage
    - get_level_index
    linkageType: ''
    returnType: void
    signature: void print_vtd_entries(struct vtd_iommu *iommu, int bus, int devfn,
      u64 gmfn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:168,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:171,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:171,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:172,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:174,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:175,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:179,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:180,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:183,1
    - Dst: cap_intr_post
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:184,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:189,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:195,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:197,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:198,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:199,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:207,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:209,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:218,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:225,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:235,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:237,1
    - Dst: ioapic_to_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:252,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:257,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:260,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:262,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:266,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:272,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 281
    functionName: vtd_dump_iommu_info
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 0
    functionsReached:
    - __ioapic_read_entry
    - ecap_intr_remap
    - dmar_readq
    - GET_IREMAP_ENTRY
    - dmar_readl
    - unmap_vtd_domain_page
    - ecap_queued_inval
    - __io_apic_read
    - printk
    - ioapic_to_iommu
    - cap_intr_post
    linkageType: ''
    returnType: void
    signature: void vtd_dump_iommu_info(unsigned char key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:168,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:171,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:171,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:172,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:174,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:175,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:179,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:180,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:183,1
    - Dst: cap_intr_post
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:184,1
    - Dst: dmar_readq
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:189,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:195,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:197,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:198,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:199,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:207,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:209,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:218,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:225,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:235,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/utils.c:237,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 241
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/utils.c
    functionUses: 4
    functionsReached:
    - ecap_intr_remap
    - dmar_readq
    - GET_IREMAP_ENTRY
    - dmar_readl
    - unmap_vtd_domain_page
    - ecap_queued_inval
    - printk
    - cap_intr_post
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - drhd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_drhd_unit(drhd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - rmrr
    - ','
    - bdf
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: for_each_rmrr_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_rmrr_device(rmrr, bdf, idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - iommu
    - ','
    - offset
    - ','
    - op
    - ','
    - cond
    - ','
    - sts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: IOMMU_WAIT_OP
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOMMU_WAIT_OP(iommu, offset, op, cond, sts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - what
    - ','
    - iommu
    - ','
    - offset
    - ','
    - op
    - ','
    - cond
    - ','
    - sts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 169
    functionName: IOMMU_FLUSH_WAIT
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/dmar.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOMMU_FLUSH_WAIT(what, iommu, offset, op, cond, sts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dmar
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: dmar_readl
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmar_readl(dmar, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dmar
    - ','
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: dmar_readq
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmar_readq(dmar, reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dmar
    - ','
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: dmar_writel
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmar_writel(dmar, reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dmar
    - ','
    - reg
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: dmar_writeq
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dmar_writeq(dmar, reg, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: VER_MAJOR
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VER_MAJOR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: VER_MINOR
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VER_MINOR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: cap_intr_post
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_intr_post(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: cap_read_drain
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_read_drain(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: cap_write_drain
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_write_drain(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: cap_max_amask_val
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_max_amask_val(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: cap_num_fault_regs
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_num_fault_regs(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: cap_pgsel_inv
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_pgsel_inv(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: cap_sps_2mb
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_sps_2mb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: cap_sps_1gb
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_sps_1gb(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: cap_fault_reg_offset
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_fault_reg_offset(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: cap_isoch
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_isoch(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: cap_qos
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_qos(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: cap_mgaw
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_mgaw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: cap_sagaw
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_sagaw(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: cap_caching_mode
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_caching_mode(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: cap_phmr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_phmr(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: cap_plmr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_plmr(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: cap_rwbf
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_rwbf(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: cap_afl
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_afl(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: cap_ndoms
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cap_ndoms(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: ecap_niotlb_iunits
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_niotlb_iunits(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: ecap_iotlb_offset
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_iotlb_offset(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ecap_coherent
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_coherent(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: ecap_queued_inval
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_queued_inval(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: ecap_dev_iotlb
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_dev_iotlb(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: ecap_intr_remap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_intr_remap(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: ecap_eim
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_eim(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: ecap_cache_hints
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_cache_hints(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: ecap_pass_thru
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_pass_thru(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: ecap_snp_ctl
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ecap_snp_ctl(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: DMA_TLB_IIRG
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_TLB_IIRG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: DMA_TLB_IAIG
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_TLB_IAIG(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: DMA_TLB_DID
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_TLB_DID(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: DMA_TLB_IVA_ADDR
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_TLB_IVA_ADDR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: DMA_TLB_IVA_HINT
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_TLB_IVA_HINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: DMA_CCMD_CIRG
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_CCMD_CIRG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: DMA_CCMD_FM
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_CCMD_FM(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: DMA_CCMD_SID
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_CCMD_SID(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: DMA_CCMD_DID
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_CCMD_DID(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: DMA_CCMD_CAIG_MASK
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DMA_CCMD_CAIG_MASK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: dma_fsts_fault_record_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_fsts_fault_record_index(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: dma_frcd_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_frcd_type(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: dma_frcd_fault_reason
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_frcd_fault_reason(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: dma_frcd_source_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_frcd_source_id(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: dma_frcd_page_addr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_frcd_page_addr(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: root_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: root_present(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: set_root_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_root_present(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - root
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: get_context_addr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_context_addr(root)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - root
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: set_root_value
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: set_root_value(root, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: context_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_present(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: context_fault_disable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_fault_disable(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: context_translation_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_translation_type(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: context_address_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_address_root(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: context_address_width
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_address_width(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: context_domain_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_domain_id(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: context_set_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_set_present(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: context_clear_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_clear_present(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: context_set_fault_enable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_set_fault_enable(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: context_set_translation_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_set_translation_type(c, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: context_set_address_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_set_address_root(c, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: context_set_address_width
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_set_address_width(c, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: context_clear_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: context_clear_entry(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: level_to_agaw
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: level_to_agaw(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: agaw_to_level
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: agaw_to_level(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: agaw_to_width
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: agaw_to_width(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: width_to_agaw
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: width_to_agaw(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: level_to_offset_bits
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: level_to_offset_bits(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: address_level_offset
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: address_level_offset(addr, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - offset
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: offset_level_address
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offset_level_address(offset, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: level_mask
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: level_mask(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: level_size
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: level_size(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: align_to_level
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: align_to_level(addr, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: dma_clear_pte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_clear_pte(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: dma_set_pte_readable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_readable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: dma_set_pte_writable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_writable(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 274
    functionName: dma_set_pte_superpage
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_superpage(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: dma_set_pte_snp
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_snp(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - prot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: dma_set_pte_prot
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_prot(p, prot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: dma_pte_prot
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_prot(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: dma_pte_read
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_read(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 281
    functionName: dma_pte_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_write(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: dma_pte_addr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_addr(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: dma_set_pte_addr
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_set_pte_addr(p, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 285
    functionName: dma_pte_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_present(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: dma_pte_superpage
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dma_pte_superpage(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: iremap_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iremap_present(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: iremap_fault_disable
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iremap_fault_disable(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: iremap_set_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iremap_set_present(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: iremap_clear_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iremap_clear_present(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - maddr
    - ','
    - index
    - ','
    - entries
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 373
    functionName: GET_IREMAP_ENTRY
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IREMAP_ENTRY(maddr, index, entries, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 521
    functionName: INTEL_IOMMU_DEBUG
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTEL_IOMMU_DEBUG(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VER_MAJOR
      Src: /src/xen/xen/drivers/passthrough/vtd/iommu.h:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vtd
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 526
    functionName: has_register_based_invalidation
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/iommu.h
    functionUses: 6
    functionsReached:
    - VER_MAJOR
    linkageType: ''
    returnType: bool
    signature: bool has_register_based_invalidation(const struct vtd_iommu *vtd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:72,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:73,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:76,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 92
    functionName: init_apic_pin_2_ir_idx
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - xmalloc_array
    - xfree
    linkageType: ''
    returnType: int
    signature: int init_apic_pin_2_ir_idx(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_to_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:96,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - apic_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: apicid_to_bdf
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - ioapic_to_drhd
    linkageType: ''
    returnType: u16
    signature: u16 apicid_to_bdf(int apic_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hpet_to_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:109,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hpet_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: hpetid_to_bdf
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - hpet_to_drhd
    - list_for_each_entry
    linkageType: ''
    returnType: u16
    signature: u16 hpetid_to_bdf(unsigned int hpet_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ire
    - svt
    - sq
    - sid
    argTypes:
    - struct iremap_entry*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: set_ire_sid
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_ire_sid(struct iremap_entry *ire,\n                        unsigned
      int svt, unsigned int sq, unsigned int sid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:130,1
    - Dst: apicid_to_bdf
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apic_id
    - ire
    argTypes:
    - int
    - struct iremap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: set_ioapic_source_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - apicid_to_bdf
    - set_ire_sid
    linkageType: ''
    returnType: void
    signature: void set_ioapic_source_id(int apic_id, struct iremap_entry *ire)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:141,1
    - Dst: hpetid_to_bdf
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - ire
    argTypes:
    - unsigned int
    - struct iremap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: set_hpet_source_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - hpetid_to_bdf
    - set_ire_sid
    linkageType: ''
    returnType: void
    signature: void set_hpet_source_id(unsigned int id, struct iremap_entry *ire)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:149,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:152,1
    - Dst: ioapic_to_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:167,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:167,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:171,1
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:175,1
    - Dst: ecap_queued_inval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:176,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:177,1
    - Dst: ecap_eim
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 182
    functionName: intel_iommu_supports_eim
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - for_each_drhd_unit
    - ecap_intr_remap
    - ecap_queued_inval
    - ioapic_to_drhd
    - unlikely
    - IO_APIC_ID
    - ecap_eim
    - list_empty
    linkageType: ''
    returnType: bool
    signature: bool intel_iommu_supports_eim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:194,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:194,1
    - Dst: cmpxchg16b
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:197,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - iommu
    - entry
    - new_ire
    - atomic
    argTypes:
    - struct vtd_iommu*
    - struct iremap_entry*
    - struct iremap_entry*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: update_irte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - cmpxchg16b
    linkageType: ''
    returnType: void
    signature: "void update_irte(struct vtd_iommu *iommu, struct iremap_entry *entry,\n
      \                       const struct iremap_entry *new_ire, bool atomic)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:216,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:216,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:218,1
    - Dst: update_irte
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:221,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:222,1
    - Dst: iommu_flush_iec_index
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:223,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - iommu
    - index
    argTypes:
    - struct vtd_iommu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 227
    functionName: free_remap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - spin_is_locked
    - GET_IREMAP_ENTRY
    - unmap_vtd_domain_page
    - update_irte
    - ASSERT
    - iommu_sync_cache
    - iommu_flush_iec_index
    linkageType: ''
    returnType: void
    signature: void free_remap_entry(struct vtd_iommu *iommu, int index)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:238,1
    - Dst: spin_is_locked
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:238,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:247,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:249,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - iommu
    - nr
    argTypes:
    - struct vtd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 268
    functionName: alloc_remap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - spin_is_locked
    - GET_IREMAP_ENTRY
    - unmap_vtd_domain_page
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int alloc_remap_entry(struct vtd_iommu *iommu, unsigned int
      nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:284,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:286,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:294,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:295,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:312,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - iommu
    - index
    - old_rte
    argTypes:
    - struct vtd_iommu*
    - int
    - struct IO_APIC_route_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 316
    functionName: remap_entry_to_ioapic_rte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - GET_IREMAP_ENTRY
    - unmap_vtd_domain_page
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: "int remap_entry_to_ioapic_rte(\n    struct vtd_iommu *iommu, int index,
      struct IO_APIC_route_entry *old_rte)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:330,1
    - Dst: alloc_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:335,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:346,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:350,1
    - Dst: GET_xAPIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:358,1
    - Dst: set_ioapic_source_id
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:367,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:367,1
    - Dst: update_irte
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:387,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:388,1
    - Dst: iommu_flush_iec_index
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:389,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:391,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 5
    argNames:
    - iommu
    - apic
    - ioapic_pin
    - old_rte
    - new_rte
    argTypes:
    - struct vtd_iommu*
    - int
    - unsigned int
    - struct IO_APIC_route_entry*
    - struct IO_APIC_route_entry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 394
    functionName: ioapic_rte_to_remap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - alloc_remap_entry
    - GET_xAPIC_ID
    - set_ioapic_source_id
    - spin_lock_irqsave
    - GET_IREMAP_ENTRY
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - update_irte
    - iommu_sync_cache
    - IO_APIC_ID
    - iommu_flush_iec_index
    linkageType: ''
    returnType: int
    signature: "int ioapic_rte_to_remap_entry(struct vtd_iommu *iommu,\n    int apic,
      unsigned int ioapic_pin, struct IO_APIC_route_entry *old_rte,\n    struct IO_APIC_route_entry
      new_rte)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_to_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:403,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:403,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:407,1
    - Dst: __ioapic_read_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:409,1
    - Dst: remap_entry_to_ioapic_rte
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:411,1
    - Dst: __io_apic_read
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - apic
    - reg
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 415
    functionName: io_apic_read_remap_rte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - __ioapic_read_entry
    - remap_entry_to_ioapic_rte
    - ioapic_to_iommu
    - IO_APIC_ID
    - __io_apic_read
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int io_apic_read_remap_rte(\n    unsigned int apic, unsigned
      int reg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_to_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:421,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:421,1
    - Dst: ioapic_rte_to_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:427,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - apic
    - pin
    - rte
    argTypes:
    - unsigned int
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: io_apic_write_remap_rte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - IO_APIC_ID
    - ioapic_rte_to_remap_entry
    - __ioapic_write_entry
    - ioapic_to_iommu
    linkageType: ''
    returnType: void
    signature: "void io_apic_write_remap_rte(\n    unsigned int apic, unsigned int
      pin, uint64_t rte)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:460,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:460,1
    - Dst: find_upstream_bridge
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:466,1
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:469,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:470,1
    - Dst: pdev_type
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:474,1
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:475,1
    - Dst: set_ire_sid
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:478,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:479,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:491,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - pdev
    - ire
    argTypes:
    - struct pci_dev*
    - struct iremap_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 435
    functionDepth: 5
    functionLinenumber: 435
    functionLinenumberEnd: 497
    functionName: set_msi_source_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - find_upstream_bridge
    - set_ire_sid
    - PCI_BDF
    - pdev_type
    - dprintk
    linkageType: ''
    returnType: int
    signature: "int set_msi_source_id(const struct pci_dev *pdev,\n                             struct
      iremap_entry *ire)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: set_msi_source_id
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:512,1
    - Dst: set_hpet_source_id
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:518,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:523,1
    - Dst: free_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:530,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:533,1
    - Dst: alloc_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:539,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:554,1
    - Dst: GET_IREMAP_ENTRY
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:559,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:575,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:582,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:583,1
    - Dst: update_irte
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:601,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:604,1
    - Dst: iommu_flush_iec_index
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:605,1
    - Dst: unmap_vtd_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:607,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:608,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 4
    argNames:
    - iommu
    - pdev
    - msi_desc
    - msg
    argTypes:
    - struct vtd_iommu*
    - struct pci_dev*
    - struct msi_desc*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 499
    functionDepth: 6
    functionLinenumber: 499
    functionLinenumberEnd: 611
    functionName: msi_msg_to_remap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - alloc_remap_entry
    - set_msi_source_id
    - spin_lock_irqsave
    - GET_IREMAP_ENTRY
    - spin_unlock_irqrestore
    - unmap_vtd_domain_page
    - update_irte
    - virt_to_maddr
    - iommu_flush_iec_index
    - iommu_sync_cache
    - set_hpet_source_id
    - free_remap_entry
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int msi_msg_to_remap_entry(\n    struct vtd_iommu *iommu, struct pci_dev
      *pdev,\n    struct msi_desc *msi_desc, struct msi_msg *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_find_matched_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:619,1
    - Dst: hpet_to_drhd
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:620,1
    - Dst: msi_msg_to_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msi_desc
    - msg
    argTypes:
    - struct msi_desc*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 7
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: msi_msg_write_remap_rte
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - hpet_to_drhd
    - acpi_find_matched_drhd_unit
    - msi_msg_to_remap_entry
    linkageType: ''
    returnType: int
    signature: "int msi_msg_write_remap_rte(\n    struct msi_desc *msi_desc, struct
      msi_msg *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hpet_to_iommu
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:627,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:634,1
    - Dst: alloc_remap_entry
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:635,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - msi_desc
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 647
    functionName: intel_setup_hpet_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - alloc_remap_entry
    - spin_lock_irqsave
    - hpet_to_iommu
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: int intel_setup_hpet_msi(struct msi_desc *msi_desc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:654,1
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:654,1
    - Dst: platform_supports_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:656,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:663,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:678,1
    - Dst: alloc_pgtable_maddr
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:684,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:696,1
    - Dst: dmar_writeq
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:702,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:707,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:709,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:711,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:713,1
    - Dst: iommu_flush_iec_global
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:716,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:718,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:721,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:723,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:725,1
    - Dst: init_apic_pin_2_ir_idx
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - iommu
    - eim
    argTypes:
    - struct vtd_iommu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 649
    functionDepth: 7
    functionLinenumber: 649
    functionLinenumberEnd: 728
    functionName: enable_intremap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 2
    functionsReached:
    - iommu_flush_iec_global
    - ecap_intr_remap
    - spin_lock_irqsave
    - dmar_readl
    - IOMMU_WAIT_OP
    - spin_unlock_irqrestore
    - ASSERT
    - dmar_writeq
    - dmar_writel
    - printk
    - init_apic_pin_2_ir_idx
    - alloc_pgtable_maddr
    - platform_supports_intremap
    linkageType: ''
    returnType: int
    signature: int enable_intremap(struct vtd_iommu *iommu, int eim)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ecap_intr_remap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:736,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:739,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:740,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:744,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:746,1
    - Dst: ecap_eim
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:756,1
    - Dst: dmar_readl
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:760,1
    - Dst: dmar_writel
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:764,1
    - Dst: IOMMU_WAIT_OP
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:765,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:769,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct vtd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 770
    functionName: disable_intremap
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 4
    functionsReached:
    - ecap_intr_remap
    - spin_lock_irqsave
    - IOMMU_WAIT_OP
    - dmar_readl
    - spin_unlock_irqrestore
    - dmar_writel
    - ecap_eim
    linkageType: ''
    returnType: void
    signature: void disable_intremap(struct vtd_iommu *iommu)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: platform_supports_x2apic
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:781,1
    - Dst: clear_fault_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:789,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:795,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:796,1
    - Dst: enable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:803,1
    - Dst: enable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:815,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 776
    functionDepth: 8
    functionLinenumber: 776
    functionLinenumberEnd: 824
    functionName: intel_iommu_enable_eim
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - disable_qinval
    - enable_intremap
    - platform_supports_x2apic
    - disable_intremap
    - enable_qinval
    - clear_fault_bits
    linkageType: ''
    returnType: int
    signature: int intel_iommu_enable_eim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_fault_bits
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:789,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:795,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 797
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 5
    functionsReached:
    - disable_qinval
    - disable_intremap
    - clear_fault_bits
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 809
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 5
    functionsReached:
    - enable_qinval
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 812
    functionDepth: 8
    functionLinenumber: 812
    functionLinenumberEnd: 821
    functionName: for_each_drhd_unit
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 5
    functionsReached:
    - enable_intremap
    linkageType: ''
    returnType: void
    signature: void for_each_drhd_unit ( drhd )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:834,1
    - Dst: disable_intremap
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:835,1
    - Dst: for_each_drhd_unit
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:837,1
    - Dst: disable_qinval
      Src: /src/xen/xen/drivers/passthrough/vtd/intremap.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 839
    functionName: intel_iommu_disable_eim
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/intremap.c
    functionUses: 0
    functionsReached:
    - for_each_drhd_unit
    - disable_qinval
    - disable_intremap
    linkageType: ''
    returnType: void
    signature: void intel_iommu_disable_eim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/extern.h:82,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/vtd/extern.h:82,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/vtd/extern.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maddr
    argTypes:
    - paddr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: map_vtd_domain_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/extern.h
    functionUses: 25
    functionsReached:
    - _mfn
    - map_domain_page
    - paddr_to_pfn
    linkageType: ''
    returnType: void
    signature: void *map_vtd_domain_page(paddr_t maddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/vtd/extern.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: unmap_vtd_domain_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/vtd/extern.h
    functionUses: 24
    functionsReached:
    - unmap_domain_page
    linkageType: ''
    returnType: void
    signature: void unmap_vtd_domain_page(const void *va)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: acpi_dmar_init
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:70,1
    - Dst: acpi_ivrs_init
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 91
    functionName: acpi_iommu_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - acpi_dmar_init
    - acpi_ivrs_init
    linkageType: ''
    returnType: void
    signature: void acpi_iommu_init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: scan_pci_devices
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:101,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:109,1
    - Dst: alloc_ioapic_entries
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:118,1
    - Dst: save_IO_APIC_setup
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:121,1
    - Dst: free_ioapic_entries
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:124,1
    - Dst: mask_8259A
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:128,1
    - Dst: mask_IO_APIC_setup
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:129,1
    - Dst: setup
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:135,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:137,1
    - Dst: restore_IO_APIC_setup
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:141,1
    - Dst: unmask_8259A
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:142,1
    - Dst: free_ioapic_entries
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 93
    functionDepth: 5
    functionLinenumber: 93
    functionLinenumberEnd: 147
    functionName: iommu_hardware_setup
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - save_IO_APIC_setup
    - alloc_ioapic_entries
    - free_ioapic_entries
    - scan_pci_devices
    - mask_IO_APIC_setup
    - ASSERT
    - setup
    - mask_8259A
    - unmask_8259A
    - restore_IO_APIC_setup
    linkageType: ''
    returnType: int
    signature: int iommu_hardware_setup(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iommu_supports_x2apic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:153,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: iommu_enable_x2apic
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_call
    - iommu_supports_x2apic
    linkageType: ''
    returnType: int
    signature: int iommu_enable_x2apic(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - apic
    - pin
    - rte
    argTypes:
    - unsigned int
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: iommu_update_ire_from_apic
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_vcall
    linkageType: ''
    returnType: void
    signature: "void iommu_update_ire_from_apic(\n    unsigned int apic, unsigned
      int pin, uint64_t rte)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - apic
    - reg
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: iommu_read_apic_from_ire
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_call
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int
      reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_get_ops
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:180,1
    - Dst: iommu_call
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msi
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: iommu_setup_hpet_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_call
    - iommu_get_ops
    linkageType: ''
    returnType: int
    signature: int iommu_setup_hpet_msi(struct msi_desc *msi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:186,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:187,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: __hwdom_init::arch_iommu_check_autotranslated_hwdom
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - panic
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void __hwdom_init arch_iommu_check_autotranslated_hwdom(struct domain
      *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:195,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:197,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:199,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:200,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: arch_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - spin_lock_init
    - dom_iommu
    - INIT_PAGE_LIST_HEAD
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int arch_iommu_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:213,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:213,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:214,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: arch_iommu_domain_destroy
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - page_list_empty
    - ASSERT
    - dom_iommu
    linkageType: ''
    returnType: void
    signature: void arch_iommu_domain_destroy(struct domain *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN_4K
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:229,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:231,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:233,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:233,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:234,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:240,1
    - Dst: clear_identity_p2m_entry
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:259,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:264,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:265,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:277,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:290,1
    - Dst: set_identity_p2m_entry
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:294,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:301,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:302,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 5
    argNames:
    - d
    - p2ma
    - base
    - end
    - flag
    argTypes:
    - struct domain*
    - p2m_access_t
    - paddr_t
    - paddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 308
    functionName: iommu_identity_mapping
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 12
    functionsReached:
    - dom_iommu
    - xmalloc
    - set_identity_p2m_entry
    - xfree
    - PAGE_ALIGN_4K
    - ASSERT
    - list_del
    - clear_identity_p2m_entry
    - list_for_each_entry
    - list_add_tail
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int iommu_identity_mapping(struct domain *d, p2m_access_t p2ma,\n
      \                          paddr_t base, paddr_t end,\n                           unsigned
      int flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:312,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:315,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:317,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: iommu_identity_map_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - list_del
    - dom_iommu
    - list_for_each_entry_safe
    - xfree
    linkageType: ''
    returnType: void
    signature: void iommu_identity_map_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:334,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: map_subtract_iomemcap
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - rangeset_remove_range
    linkageType: ''
    returnType: int
    signature: "int map_subtract_iomemcap(unsigned long s,\n                                                       unsigned
      long e,\n                                                       void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:356,1
    - Dst: paging_mode_translate
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:359,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:363,1
    - Dst: map_mmio_regions
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:367,1
    - Dst: _gfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:367,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:367,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:370,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:382,1
    - Dst: iomem_access_permitted
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:388,1
    - Dst: iommu_map
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:390,1
    - Dst: _dfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:390,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:390,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:395,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:396,1
    - Dst: iommu_map
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:400,1
    - Dst: _dfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:400,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:400,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:404,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:407,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:409,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - s
    - e
    - data
    argTypes:
    - unsigned long
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 348
    functionDepth: 5
    functionLinenumber: 348
    functionLinenumberEnd: 415
    functionName: identity_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 0
    functionsReached:
    - _gfn
    - map_mmio_regions
    - _mfn
    - paging_mode_translate
    - iomem_access_permitted
    - ASSERT
    - process_pending_softirqs
    - printk
    - iommu_map
    - ASSERT_UNREACHABLE
    - _dfn
    linkageType: ''
    returnType: int
    signature: "int identity_map(unsigned long s, unsigned long e,\n                                              void
      *data)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:425,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:425,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:433,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:436,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:438,1
    - Dst: rangeset_new
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:447,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:449,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:454,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:454,1
    - Dst: GB
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:454,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:456,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:479,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:479,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:480,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:482,1
    - Dst: __hwdom_init::remove_xen_ranges
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:486,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:488,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:491,1
    - Dst: rangeset_remove_range
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:494,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:496,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:498,1
    - Dst: rangeset_subtract
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:507,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:509,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:513,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:515,1
    - Dst: rangeset_destroy
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:516,1
    - Dst: is_pv_domain
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:517,1
    - Dst: rangeset_report_ranges
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:520,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:524,1
    - Dst: iommu_iotlb_flush_all
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:528,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 530
    functionName: __hwdom_init::arch_iommu_hwdom_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 0
    functionsReached:
    - rangeset_destroy
    - panic
    - rangeset_new
    - GB
    - rangeset_remove_range
    - BUG_ON
    - rangeset_add_range
    - is_pv_domain
    - __hwdom_init::remove_xen_ranges
    - iommu_iotlb_flush_all
    - printk
    - PFN_DOWN
    - rangeset_report_ranges
    - rangeset_subtract
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: arch_pci_init_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_pci_init_pdev(struct pci_dev *pdev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:544,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:546,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:546,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:549,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - reserve
    argTypes:
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 554
    functionName: iommu_init_domid
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - __set_bit
    - xzalloc_array
    - BUILD_BUG_ON
    - ASSERT
    - BITS_TO_LONGS
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long *__init iommu_init_domid(domid_t reserve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:563,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:565,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:565,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:568,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - map
    argTypes:
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 577
    functionName: iommu_alloc_domid
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - __set_bit
    - find_next_zero_bit
    - find_first_zero_bit
    - ASSERT
    - pcidevs_locked
    linkageType: ''
    returnType: domid_t
    signature: domid_t iommu_alloc_domid(unsigned long *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:581,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:581,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:586,1
    - Dst: __test_and_clear_bit
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:588,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - domid
    - map
    argTypes:
    - domid_t
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 590
    functionName: iommu_free_domid
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - BUG
    - ASSERT
    - __test_and_clear_bit
    - pcidevs_locked
    linkageType: ''
    returnType: void
    signature: void iommu_free_domid(domid_t domid, unsigned long *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:594,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:598,1
    - Dst: spin_barrier
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:602,1
    - Dst: iommu_vcall
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:608,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:610,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:612,1
    - Dst: general_preempt_check
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 619
    functionName: iommu_free_pgtables
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - dom_iommu
    - iommu_vcall
    - page_list_remove_head
    - spin_barrier
    - free_domheap_page
    - general_preempt_check
    - is_iommu_enabled
    linkageType: ''
    returnType: int
    signature: int iommu_free_pgtables(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEMF_node
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:630,1
    - Dst: alloc_domheap_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:633,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:637,1
    - Dst: ffsl
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:642,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:644,1
    - Dst: ffsl
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:653,1
    - Dst: clear_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:660,1
    - Dst: iommu_sync_cache
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:662,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:664,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:666,1
    - Dst: page_list_add
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:667,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - hd
    - contig_mask
    argTypes:
    - struct domain_iommu*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 621
    functionDepth: 4
    functionLinenumber: 621
    functionLinenumberEnd: 671
    functionName: iommu_alloc_pgtable
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 3
    functionsReached:
    - unmap_domain_page
    - spin_unlock
    - ffsl
    - clear_page
    - alloc_domheap_page
    - page_list_add
    - MEMF_node
    - ASSERT
    - spin_lock
    - iommu_sync_cache
    - __map_domain_page
    linkageType: ''
    returnType: struct page_info
    signature: "struct page_info *iommu_alloc_pgtable(struct domain_iommu *hd,\n                                      uint64_t
      contig_mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:690,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:690,1
    - Dst: page_list_remove_head
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:692,1
    - Dst: free_domheap_page
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:694,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 705
    functionName: free_queued_pgtables
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 0
    functionsReached:
    - page_list_remove_head
    - ASSERT
    - process_pending_softirqs
    - this_cpu
    - free_domheap_page
    linkageType: ''
    returnType: void
    signature: void free_queued_pgtables(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:709,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:711,1
    - Dst: page_list_del
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:712,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:713,1
    - Dst: page_list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:715,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:715,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:717,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hd
    - pg
    argTypes:
    - struct domain_iommu*
    - struct page_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 718
    functionName: iommu_queue_free_pgtable
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 3
    functionsReached:
    - tasklet_schedule
    - page_list_add_tail
    - spin_unlock
    - smp_processor_id
    - spin_lock
    - per_cpu
    - page_list_del
    linkageType: ''
    returnType: void
    signature: void iommu_queue_free_pgtable(struct domain_iommu *hd, struct page_info
      *pg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:724,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:725,1
    - Dst: tasklet_kill
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:730,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:734,1
    - Dst: page_list_splice
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:736,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:736,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:737,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:738,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:738,1
    - Dst: INIT_PAGE_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:743,1
    - Dst: tasklet_init
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:746,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:747,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 720
    functionDepth: 4
    functionLinenumber: 720
    functionLinenumberEnd: 753
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 8
    functionsReached:
    - tasklet_schedule
    - tasklet_kill
    - page_list_splice
    - tasklet_init
    - per_cpu
    - INIT_PAGE_LIST_HEAD
    - this_cpu
    - page_list_empty
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_callback
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:763,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:764,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 769
    functionName: bsp_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 0
    functionsReached:
    - register_cpu_notifier
    - smp_processor_id
    - cpu_callback
    linkageType: ''
    returnType: int
    signature: int bsp_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:779,1
    - Dst: mem_sharing_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:779,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:780,1
    - Dst: mem_paging_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:780,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:781,1
    - Dst: p2m_pod_active
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:781,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:782,1
    - Dst: p2m_is_global_logdirty
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: arch_iommu_use_permitted
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - mem_paging_enabled
    - likely
    - p2m_is_global_logdirty
    - p2m_pod_active
    - mem_sharing_enabled
    linkageType: ''
    returnType: bool
    signature: bool arch_iommu_use_permitted(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_adjust_irq_affinities
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: adjust_irq_affinities
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 2
    functionsReached:
    - iommu_adjust_irq_affinities
    linkageType: ''
    returnType: int
    signature: int adjust_irq_affinities(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: e820_all_mapped
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:797,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:797,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:797,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:801,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:803,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:803,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:805,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:805,1
    - Dst: mfn_add
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:805,1
    - Dst: page_get_ram_type
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:807,1
    - Dst: e820_add_range
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:811,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:811,1
    - Dst: mfn_to_maddr
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:812,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:814,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:816,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:830,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/x86/iommu.c:832,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - prefix
    - start
    - end
    argTypes:
    - char*
    - mfn_t
    - mfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 793
    functionDepth: 5
    functionLinenumber: 793
    functionLinenumberEnd: 837
    functionName: iommu_unity_region_ok
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/iommu.c
    functionUses: 1
    functionsReached:
    - mfn_to_maddr
    - mfn_x
    - mfn_add
    - page_get_ram_type
    - e820_add_range
    - e820_all_mapped
    - printk
    linkageType: ''
    returnType: bool
    signature: bool iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pirq
    argTypes:
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: _pirq_dpci
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_dpci
    linkageType: ''
    returnType: struct hvm_pirq_dpci
    signature: struct hvm_pirq_dpci *_pirq_dpci(struct pirq *pirq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pirq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: pirq_dpci
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pirq_dpci(pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:77,1
    - Dst: get_knownalive_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:80,1
    - Dst: local_irq_save
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:82,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:83,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:83,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:84,1
    - Dst: raise_softirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pirq_dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: raise_softirq_for
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - get_knownalive_domain
    - raise_softirq
    - test_and_set_bit
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void raise_softirq_for(struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pirq_dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: pt_pirq_softirq_active
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pt_pirq_softirq_active(struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:120,1
    - Dst: rw_is_write_locked
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:120,1
    - Dst: cmpxchg
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:122,1
    - Dst: put_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pirq_dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 149
    functionName: pt_pirq_softirq_reset
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - put_domain
    - cmpxchg
    - rw_is_write_locked
    linkageType: ''
    returnType: void
    signature: void pt_pirq_softirq_reset(struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_hvm_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:153,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: domain_get_irq_dpci
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - hvm_domain_irq
    - is_hvm_domain
    linkageType: ''
    returnType: struct hvm_irq_dpci
    signature: struct hvm_irq_dpci *domain_get_irq_dpci(const struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dpci
    argTypes:
    - struct hvm_irq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: free_hvm_irq_dpci
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void free_hvm_irq_dpci(struct hvm_irq_dpci *dpci)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:186,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:187,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:193,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:193,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:197,1
    - Dst: find_next_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:208,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:209,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - d
    - dest_id
    - dest_mode
    - gvec
    argTypes:
    - struct domain*
    - uint32_t
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 218
    functionName: vector_hashing_dest
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - vlapic_match_dest
    - find_next_bit
    - xzalloc_array
    - BUG_ON
    - BITS_TO_LONGS
    - vcpu_vlapic
    - xfree
    linkageType: ''
    returnType: struct vcpu
    signature: "struct vcpu *vector_hashing_dest(const struct domain *d,\n                                        uint32_t
      dest_id,\n                                        bool dest_mode,\n                                        uint8_t
      gvec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:193,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:193,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: for_each_vcpu
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 50
    functionsReached:
    - vcpu_vlapic
    - __set_bit
    - vlapic_match_dest
    linkageType: ''
    returnType: void
    signature: void for_each_vcpu ( d, v )
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:232,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:234,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:235,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:245,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:248,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:252,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:254,1
    - Dst: pirq_get_info
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:257,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:260,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:263,1
    - Dst: pt_pirq_softirq_active
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:273,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:275,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:276,1
    - Dst: pirq_guest_bind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:310,1
    - Dst: msixtbl_pt_register
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:313,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:314,1
    - Dst: pirq_guest_unbind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:316,1
    - Dst: pt_pirq_softirq_reset
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:323,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:326,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:333,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:334,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:344,1
    - Dst: pirq_guest_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:353,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:360,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:363,1
    - Dst: hvm_girq_dest_2_vcpu_id
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:366,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:368,1
    - Dst: vector_hashing_dest
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:375,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:380,1
    - Dst: hvm_migrate_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:381,1
    - Dst: hvm_pi_update_irte
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:386,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:390,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:398,1
    - Dst: pt_irq_destroy_bind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:402,1
    - Dst: guest_mask_msi_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:406,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:407,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:430,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:431,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:435,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:436,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:437,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:444,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:446,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:447,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:452,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:456,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:456,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:460,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:462,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:489,1
    - Dst: vioapic_get_mask
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:493,1
    - Dst: vioapic_get_trigger_mode
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:494,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:498,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:500,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:509,1
    - Dst: pirq_guest_bind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:521,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:522,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:533,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:534,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:535,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:536,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:541,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:542,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:543,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:544,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:549,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:556,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:556,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:557,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:558,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:560,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:567,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 179
    argCount: 2
    argNames:
    - d
    - pt_irq_bind
    argTypes:
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 572
    functionName: pt_irq_create_bind
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 3
    functionsReached:
    - snprintf
    - cpu_relax
    - xmalloc
    - pt_irq_destroy_bind
    - spin_unlock_irqrestore
    - vioapic_get_mask
    - xfree
    - xzalloc
    - pirq_guest_bind
    - pirq_spin_lock_irq_desc
    - vioapic_get_trigger_mode
    - pirq_guest_eoi
    - ARRAY_SIZE
    - domain_get_irq_dpci
    - hvm_pci_intx_gsi
    - list_del
    - printk
    - is_hardware_domain
    - hvm_girq_dest_2_vcpu_id
    - MASK_EXTR
    - is_iommu_enabled
    - hvm_migrate_pirq
    - PCI_SLOT
    - PCI_FUNC
    - pirq_dpci
    - write_unlock
    - pirq_cleanup_check
    - msixtbl_pt_register
    - ASSERT
    - hvm_pi_update_irte
    - guest_mask_msi_irq
    - pt_pirq_softirq_reset
    - write_lock
    - pirq_guest_unbind
    - ASSERT_UNREACHABLE
    - vector_hashing_dest
    - pt_pirq_softirq_active
    - hvm_pci_intx_link
    - hvm_domain_irq
    - unlikely
    - INIT_LIST_HEAD
    - pirq_get_info
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: "int pt_irq_create_bind(\n    struct domain *d, const struct xen_domctl_bind_pt_irq
      *pt_irq_bind)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:592,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:594,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:596,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:596,1
    - Dst: domain_spin_lock_irq_desc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:602,1
    - Dst: guest_mask_msi_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:611,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:612,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:620,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:622,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:624,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:626,1
    - Dst: pirq_info
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:630,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:631,1
    - Dst: hvm_pci_intx_gsi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:638,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:639,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:643,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:650,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:651,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:659,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:668,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:674,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:675,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:678,1
    - Dst: hvm_pi_update_irte
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:684,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:687,1
    - Dst: pirq_guest_unbind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:689,1
    - Dst: msixtbl_pt_unregister
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:690,1
    - Dst: pt_pirq_softirq_reset
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:696,1
    - Dst: pirq_cleanup_check
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:699,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:702,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:710,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:710,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:711,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:712,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:714,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 2
    argNames:
    - d
    - pt_irq_bind
    argTypes:
    - struct domain*
    - struct xen_domctl_bind_pt_irq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 719
    functionName: pt_irq_destroy_bind
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 5
    functionsReached:
    - snprintf
    - spin_unlock_irqrestore
    - pirq_info
    - xfree
    - ARRAY_SIZE
    - domain_get_irq_dpci
    - hvm_pci_intx_gsi
    - list_del
    - list_for_each_entry_safe
    - printk
    - is_hardware_domain
    - PCI_FUNC
    - PCI_SLOT
    - pirq_dpci
    - write_unlock
    - pirq_cleanup_check
    - domain_spin_lock_irq_desc
    - hvm_pi_update_irte
    - guest_mask_msi_irq
    - msixtbl_pt_unregister
    - pt_pirq_softirq_reset
    - write_lock
    - pirq_guest_unbind
    - list_for_each_entry
    - list_empty
    - hvm_pci_intx_link
    linkageType: ''
    returnType: int
    signature: "int pt_irq_destroy_bind(\n    struct domain *d, const struct xen_domctl_bind_pt_irq
      *pt_irq_bind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - d
    - dpci
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 725
    functionName: pt_pirq_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: void
    signature: void pt_pirq_init(struct domain *d, struct hvm_pirq_dpci *dpci)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pt_pirq_softirq_active
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 735
    functionName: pt_pirq_cleanup_check
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - pt_pirq_softirq_active
    linkageType: ''
    returnType: bool
    signature: bool pt_pirq_cleanup_check(struct hvm_pirq_dpci *dpci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:746,1
    - Dst: rw_is_locked
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:746,1
    - Dst: radix_tree_gang_lookup
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:749,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:750,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:753,1
    - Dst: cb
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:758,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:763,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - d
    - arg
    argTypes:
    - struct domain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 766
    functionName: pt_pirq_iterate
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - cb
    - ARRAY_SIZE
    - pirq_dpci
    - radix_tree_gang_lookup
    - ASSERT
    - rw_is_locked
    linkageType: ''
    returnType: int
    signature: "int pt_pirq_iterate(struct domain *d,\n                    int (*cb)(struct
      domain *d,\n                              struct hvm_pirq_dpci *pirq_dpci, void
      *arg),\n                    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:770,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:771,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:773,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:773,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:775,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:775,1
    - Dst: raise_softirq_for
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:780,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - d
    - pirq
    argTypes:
    - struct domain*
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 782
    functionName: hvm_do_IRQ_dpci
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - pirq_dpci
    - raise_softirq_for
    - domain_get_irq_dpci
    - is_iommu_enabled
    - ASSERT
    - is_hardware_domain
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int hvm_do_IRQ_dpci(struct domain *d, struct pirq *pirq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dpci_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:792,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:794,1
    - Dst: local_irq_is_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:794,1
    - Dst: pirq_spin_lock_irq_desc
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:795,1
    - Dst: desc_guest_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pirq_dpci
    argTypes:
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 800
    functionName: __msi_pirq_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_spin_lock_irq_desc
    - dpci_pirq
    - BUG_ON
    - desc_guest_eoi
    - local_irq_is_enabled
    linkageType: ''
    returnType: void
    signature: void __msi_pirq_eoi(struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:810,1
    - Dst: vlapic_match_dest
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:814,1
    - Dst: vcpu_vlapic
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:814,1
    - Dst: __msi_pirq_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - d
    - pirq_dpci
    - arg
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 823
    functionName: _hvm_dpci_msi_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - vcpu_vlapic
    - __msi_pirq_eoi
    - vlapic_match_dest
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int _hvm_dpci_msi_eoi(\n    struct domain *d, struct hvm_pirq_dpci
      *pirq_dpci, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:827,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:828,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:828,1
    - Dst: read_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:831,1
    - Dst: pt_pirq_iterate
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:832,1
    - Dst: read_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - d
    - vector
    argTypes:
    - struct domain*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 825
    functionDepth: 4
    functionLinenumber: 825
    functionLinenumberEnd: 834
    functionName: hvm_dpci_msi_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - read_unlock
    - pt_pirq_iterate
    - hvm_domain_irq
    - read_lock
    - is_hardware_domain
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void hvm_dpci_msi_eoi(struct domain *d, int vector)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:838,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:838,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:838,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:840,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:844,1
    - Dst: test_and_clear_bool
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:845,1
    - Dst: dpci_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:847,1
    - Dst: hvm_domain_use_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:850,1
    - Dst: send_guest_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:852,1
    - Dst: vmsi_deliver_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:860,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:864,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:866,1
    - Dst: hvm_pci_intx_assert
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:867,1
    - Dst: hvm_gsi_assert
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:873,1
    - Dst: __msi_pirq_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:882,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:888,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - d
    - pirq_dpci
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 836
    functionDepth: 6
    functionLinenumber: 836
    functionLinenumberEnd: 889
    functionName: hvm_dirq_assist
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - vmsi_deliver_pirq
    - list_for_each_entry
    - hvm_pci_intx_assert
    - hvm_gsi_assert
    - write_unlock
    - hvm_domain_use_pirq
    - dpci_pirq
    - __msi_pirq_eoi
    - ASSERT
    - test_and_clear_bool
    - hvm_domain_irq
    - unlikely
    - write_lock
    - ASSERT_UNREACHABLE
    - is_hardware_domain
    - send_guest_pirq
    linkageType: ''
    returnType: void
    signature: void hvm_dirq_assist(struct domain *d, struct hvm_pirq_dpci *pirq_dpci)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:897,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:901,1
    - Dst: pirq_guest_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pirq
    argTypes:
    - struct pirq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 891
    functionDepth: 3
    functionLinenumber: 891
    functionLinenumberEnd: 913
    functionName: hvm_pirq_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - pirq_dpci
    - pirq_guest_eoi
    linkageType: ''
    returnType: void
    signature: void hvm_pirq_eoi(struct pirq *pirq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:918,1
    - Dst: hvm_domain_use_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:920,1
    - Dst: hvm_pci_intx_deassert
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:921,1
    - Dst: hvm_pirq_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - d
    - girq
    argTypes:
    - struct domain*
    - struct hvm_girq_dpci_mapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 915
    functionDepth: 5
    functionLinenumber: 915
    functionLinenumberEnd: 924
    functionName: __hvm_dpci_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_info
    - hvm_domain_use_pirq
    - hvm_pci_intx_deassert
    - hvm_pirq_eoi
    linkageType: ''
    returnType: void
    signature: "void __hvm_dpci_eoi(struct domain *d,\n                           const
      struct hvm_girq_dpci_mapping *girq)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_info
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:928,1
    - Dst: pirq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:931,1
    - Dst: hvm_gsi_deassert
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:934,1
    - Dst: hvm_pirq_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - d
    - gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 936
    functionName: hvm_gsi_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_info
    - hvm_pirq_eoi
    - hvm_gsi_deassert
    - pirq_dpci
    linkageType: ''
    returnType: void
    signature: void hvm_gsi_eoi(struct domain *d, unsigned int gsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:941,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:945,1
    - Dst: hvm_pci_intx_link
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:947,1
    - Dst: hvm_pci_intx_deassert
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:951,1
    - Dst: pirq_guest_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:953,1
    - Dst: dpci_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - pirq_dpci
    - arg
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 958
    functionName: _hvm_dpci_isairq_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - pirq_guest_eoi
    - dpci_pirq
    - hvm_pci_intx_link
    - hvm_pci_intx_deassert
    - hvm_domain_irq
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int _hvm_dpci_isairq_eoi(\n    struct domain *d, struct hvm_pirq_dpci
      *pirq_dpci, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:964,1
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:966,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:969,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:971,1
    - Dst: test_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:973,1
    - Dst: pt_pirq_iterate
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:976,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - d
    - isairq
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 960
    functionDepth: 4
    functionLinenumber: 960
    functionLinenumberEnd: 980
    functionName: hvm_dpci_isairq_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - write_unlock
    - domain_get_irq_dpci
    - pt_pirq_iterate
    - ASSERT
    - test_bit
    - write_lock
    - is_iommu_enabled
    linkageType: ''
    returnType: void
    signature: void hvm_dpci_isairq_eoi(struct domain *d, unsigned int isairq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:987,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:990,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:992,1
    - Dst: hvm_gsi_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:993,1
    - Dst: hvm_dpci_isairq_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:999,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1003,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1004,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1009,1
    - Dst: __hvm_dpci_eoi
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1010,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1013,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - d
    - guest_gsi
    argTypes:
    - struct domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 982
    functionDepth: 6
    functionLinenumber: 982
    functionLinenumberEnd: 1014
    functionName: hvm_dpci_eoi
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 4
    functionsReached:
    - list_for_each_entry
    - write_unlock
    - domain_get_irq_dpci
    - __hvm_dpci_eoi
    - is_iommu_enabled
    - hvm_gsi_eoi
    - write_lock
    - is_hardware_domain
    - hvm_dpci_isairq_eoi
    linkageType: ''
    returnType: void
    signature: void hvm_dpci_eoi(struct domain *d, unsigned int guest_gsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pirq_guest_unbind
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1025,1
    - Dst: dpci_pirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1025,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1027,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1029,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1030,1
    - Dst: pt_pirq_softirq_active
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - d
    - pirq_dpci
    - arg
    argTypes:
    - struct domain*
    - struct hvm_pirq_dpci*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1036
    functionName: pci_clean_dpci_irq
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - dpci_pirq
    - xfree
    - pt_pirq_softirq_active
    - list_del
    - list_for_each_entry_safe
    - pirq_guest_unbind
    linkageType: ''
    returnType: int
    signature: "int pci_clean_dpci_irq(\n    struct domain *d, struct hvm_pirq_dpci
      *pirq_dpci, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_iommu_enabled
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1042,1
    - Dst: is_hvm_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1045,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1048,1
    - Dst: domain_get_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1049,1
    - Dst: pt_pirq_iterate
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1052,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1056,1
    - Dst: hvm_domain_irq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1060,1
    - Dst: free_hvm_irq_dpci
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1061,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1038
    functionDepth: 4
    functionLinenumber: 1038
    functionLinenumberEnd: 1066
    functionName: arch_pci_clean_pirqs
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 1
    functionsReached:
    - write_unlock
    - domain_get_irq_dpci
    - is_iommu_enabled
    - pt_pirq_iterate
    - hvm_domain_irq
    - write_lock
    - free_hvm_irq_dpci
    - is_hvm_domain
    linkageType: ''
    returnType: int
    signature: int arch_pci_clean_pirqs(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1074,1
    - Dst: LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1075,1
    - Dst: local_irq_disable
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1077,1
    - Dst: list_splice_init
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1078,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1078,1
    - Dst: local_irq_enable
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1079,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1081,1
    - Dst: list_entry
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1086,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1087,1
    - Dst: smp_mb
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1090,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1091,1
    - Dst: local_irq_save
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1096,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1097,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1097,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1098,1
    - Dst: raise_softirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1100,1
    - Dst: test_and_clear_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1106,1
    - Dst: hvm_dirq_assist
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1108,1
    - Dst: put_domain
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1109,1
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1072
    functionDepth: 7
    functionLinenumber: 1072
    functionLinenumberEnd: 1113
    functionName: dpci_softirq
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - LIST_HEAD
    - local_irq_enable
    - test_and_set_bit
    - local_irq_disable
    - raise_softirq
    - test_and_clear_bit
    - smp_processor_id
    - put_domain
    - list_del
    - list_splice_init
    - clear_bit
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - list_empty
    - list_entry
    - per_cpu
    - hvm_dirq_assist
    - list_add_tail
    linkageType: ''
    returnType: void
    signature: void dpci_softirq(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1124,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1124,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1128,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1128,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1128,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1132,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1132,1
    - Dst: local_irq_save
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1135,1
    - Dst: list_splice_init
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1136,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1136,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1136,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1137,1
    - Dst: raise_softirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - nfb
    - action
    - hcpu
    argTypes:
    - struct notifier_block*
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1143
    functionName: cpu_callback
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 9
    functionsReached:
    - raise_softirq
    - ASSERT
    - per_cpu
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - INIT_LIST_HEAD
    - list_empty
    - list_splice_init
    linkageType: ''
    returnType: int
    signature: "int cpu_callback(\n    struct notifier_block *nfb, unsigned long action,
      void *hcpu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: for_each_online_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1153,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1154,1
    - Dst: per_cpu
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1154,1
    - Dst: open_softirq
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1156,1
    - Dst: register_cpu_notifier
      Src: /src/xen/xen/drivers/passthrough/x86/hvm.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1159
    functionName: setup_dpci_softirq
    functionSourceFile: /src/xen/xen/drivers/passthrough/x86/hvm.c
    functionUses: 0
    functionsReached:
    - for_each_online_cpu
    - register_cpu_notifier
    - open_softirq
    - per_cpu
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int setup_dpci_softirq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:32,1
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:38,1
    - Dst: printk_once
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:42,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:44,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:47,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:52,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - iommu
    - cmd
    argTypes:
    - struct amd_iommu*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: send_iommu_command
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - writel
    - cpu_relax
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - printk_once
    - readl
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void send_iommu_command(struct amd_iommu *iommu,\n                               const
      uint32_t cmd[4])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:61,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:62,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:65,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:67,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:75,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:77,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:79,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:80,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:81,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:83,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:86,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:92,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:96,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - iommu
    - timeout_base
    argTypes:
    - struct amd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 101
    functionName: flush_command_buffer
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - cpu_relax
    - MASK_INSR
    - virt_to_maddr
    - printk
    - this_cpu
    - MILLISECS
    - ACCESS_ONCE
    - NOW
    linkageType: ''
    returnType: void
    signature: "void flush_command_buffer(struct amd_iommu *iommu,\n                                 unsigned
      int timeout_base)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:111,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:132,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:135,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:140,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:143,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:146,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:151,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - iommu
    - io_addr
    - domain_id
    - order
    argTypes:
    - struct amd_iommu*
    - u64
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: invalidate_iommu_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - set_field_in_reg_u32
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void invalidate_iommu_pages(struct amd_iommu *iommu,\n                                   u64
      io_addr, u16 domain_id, u16 order)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:168,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:185,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:189,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:193,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:198,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:202,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:207,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:213,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:217,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:222,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 7
    argNames:
    - iommu
    - maxpend
    - pasid
    - queueid
    - io_addr
    - dev_id
    - order
    argTypes:
    - struct amd_iommu*
    - u16
    - u32
    - u16
    - u64
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 228
    functionName: invalidate_iotlb_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - set_field_in_reg_u32
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void invalidate_iotlb_pages(struct amd_iommu *iommu,\n                                   u16
      maxpend, u32 pasid, u16 queueid,\n                                   u64 io_addr,
      u16 dev_id, u16 order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:236,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:241,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - iommu
    - device_id
    argTypes:
    - struct amd_iommu*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: invalidate_dev_table_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: "void invalidate_dev_table_entry(struct amd_iommu *iommu,\n                                       u16
      device_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:254,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:258,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - iommu
    - device_id
    argTypes:
    - struct amd_iommu*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: invalidate_interrupt_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: void invalidate_interrupt_table(struct amd_iommu *iommu, u16 device_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:271,1
    - Dst: send_iommu_command
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: invalidate_iommu_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - send_iommu_command
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: void invalidate_iommu_all(struct amd_iommu *iommu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_ats_enabled
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:288,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:291,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:295,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:296,1
    - Dst: iommu_has_cap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:300,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:303,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:303,1
    - Dst: invalidate_iotlb_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:308,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - devfn
    - pdev
    - daddr
    - order
    argTypes:
    - u8
    - struct pci_dev*
    - daddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 310
    functionName: amd_iommu_flush_iotlb
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - flush_command_buffer
    - find_iommu_for_device
    - PCI_SBDF
    - get_dma_requestor_id
    - PCI_BDF
    - pci_ats_enabled
    - iommu_has_cap
    - invalidate_iotlb_pages
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev,\n
      \                          daddr_t daddr, unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_flush_iotlb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:322,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:325,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - d
    - daddr
    - order
    argTypes:
    - struct domain*
    - daddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 327
    functionName: amd_iommu_flush_all_iotlbs
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - PCI_SLOT
    - amd_iommu_flush_iotlb
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_flush_all_iotlbs(const struct domain *d, daddr_t daddr,\n
      \                                      unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_flush_iotlb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:322,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:325,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - PCI_SLOT
    - amd_iommu_flush_iotlb
    linkageType: ''
    returnType: void
    signature: void for_each_pdev( d, pdev )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_iommu_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:339,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:340,1
    - Dst: amd_iommu_flush_all_iotlbs
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:345,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:351,1
    - Dst: amd_iommu_flush_all_iotlbs
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - d
    - daddr
    - order
    argTypes:
    - struct domain*
    - daddr_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 354
    functionName: _amd_iommu_flush_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - amd_iommu_flush_all_iotlbs
    - flush_command_buffer
    - invalidate_iommu_pages
    - is_hardware_domain
    linkageType: ''
    returnType: void
    signature: "void _amd_iommu_flush_pages(struct domain *d,\n                                   daddr_t
      daddr, unsigned int order)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_iommu_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:339,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: for_each_amd_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - flush_command_buffer
    - invalidate_iommu_pages
    linkageType: ''
    returnType: void
    signature: void for_each_amd_iommu ( iommu )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _amd_iommu_flush_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 6
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: amd_iommu_flush_all_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - _amd_iommu_flush_pages
    linkageType: ''
    returnType: void
    signature: void amd_iommu_flush_all_pages(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _amd_iommu_flush_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:364,1
    - Dst: __dfn_to_daddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - dfn
    - order
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: amd_iommu_flush_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 2
    functionsReached:
    - __dfn_to_daddr
    - _amd_iommu_flush_pages
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_flush_pages(struct domain *d,\n                           unsigned
      long dfn, unsigned int order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_dev_table_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:370,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:371,1
    - Dst: invalidate_iommu_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:376,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - iommu
    - bdf
    - domid
    argTypes:
    - struct amd_iommu*
    - uint16_t
    - domid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: amd_iommu_flush_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - invalidate_dev_table_entry
    - flush_command_buffer
    - invalidate_iommu_pages
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_flush_device(struct amd_iommu *iommu, uint16_t bdf,\n
      \                           domid_t domid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_interrupt_table
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:383,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iommu
    - bdf
    argTypes:
    - struct amd_iommu*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: amd_iommu_flush_intremap
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - invalidate_interrupt_table
    - flush_command_buffer
    linkageType: ''
    returnType: void
    signature: void amd_iommu_flush_intremap(struct amd_iommu *iommu, uint16_t bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invalidate_iommu_all
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:389,1
    - Dst: flush_command_buffer
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: amd_iommu_flush_all_caches
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_cmd.c
    functionUses: 0
    functionsReached:
    - invalidate_iommu_all
    - flush_command_buffer
    linkageType: ''
    returnType: void
    signature: void amd_iommu_flush_all_caches(struct amd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:30,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sbdf
    - iommu
    argTypes:
    - pci_sbdf_t
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: get_iommu_msi_capabilities
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c
    functionUses: 0
    functionsReached:
    - pci_find_cap_offset
    - AMD_IOMMU_DEBUG
    linkageType: ''
    returnType: int
    signature: "int get_iommu_msi_capabilities(\n    pci_sbdf_t sbdf, struct amd_iommu
      *iommu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:48,1
    - Dst: get_field_from_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sbdf
    - cap_ptr
    - iommu
    argTypes:
    - pci_sbdf_t
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: get_iommu_capabilities
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c
    functionUses: 0
    functionsReached:
    - get_field_from_reg_u32
    - pci_conf_read32
    linkageType: ''
    returnType: int
    signature: "int get_iommu_capabilities(\n    pci_sbdf_t sbdf, u16 cap_ptr, struct
      amd_iommu *iommu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:61,1
    - Dst: iommu_has_cap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:65,1
    - Dst: readq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:69,1
    - Dst: list_first_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:76,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:80,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:89,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:90,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:91,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:92,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:93,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:94,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:95,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:96,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:97,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:98,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:102,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:103,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:104,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:107,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:108,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:109,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:110,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:111,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:112,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:113,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:114,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:115,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:116,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:117,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:118,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:119,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:120,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:121,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:122,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:123,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:124,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:125,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:126,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:127,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:128,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:129,1
    - Dst: FEAT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 133
    functionName: get_iommu_features
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c
    functionUses: 0
    functionsReached:
    - list_first_entry
    - FEAT
    - readq
    - ASSERT
    - printk
    - iommu_has_cap
    linkageType: ''
    returnType: void
    signature: void get_iommu_features(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fld
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: FEAT
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FEAT(fld, str)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:144,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:151,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:155,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:158,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:162,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:163,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:165,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:203,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:204,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:213,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:214,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:215,1
    - Dst: get_iommu_capabilities
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:217,1
    - Dst: get_iommu_msi_capabilities
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:221,1
    - Dst: iommu_init_domid
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:225,1
    - Dst: pci_ro_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:230,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:230,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:232,1
    - Dst: list_add_tail
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:235,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:241,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c:242,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 1
    argNames:
    - ivhd_block
    argTypes:
    - struct acpi_ivrs_hardware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 246
    functionName: amd_iommu_detect_one_acpi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_detect.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - PCI_SLOT
    - AMD_IOMMU_DEBUG
    - PCI_FUNC
    - get_iommu_msi_capabilities
    - PCI_BUS
    - pci_ro_device
    - PCI_SBDF
    - get_iommu_capabilities
    - PCI_DEVFN
    - iommu_init_domid
    - INIT_LIST_HEAD
    - printk
    - spin_lock_init
    - AMD_IOMMU_ERROR
    - xfree
    - list_empty
    - list_add_tail
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_detect_one_acpi(\n    const struct acpi_ivrs_hardware
      *ivhd_block)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: QUARANTINE_SKIP
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QUARANTINE_SKIP(d, p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:37,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:42,1
    - Dst: likely
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:42,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:44,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - sbdf
    argTypes:
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: find_iommu_for_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - PCI_FUNC
    - likely
    - printk
    - unlikely
    - get_ivrs_mappings
    linkageType: ''
    returnType: struct amd_iommu
    signature: struct amd_iommu *find_iommu_for_device(pci_sbdf_t sbdf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:76,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - seg
    - bdf
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: get_dma_requestor_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - get_ivrs_mappings
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int get_dma_requestor_id(uint16_t seg, uint16_t bdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:89,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:92,1
    - Dst: amd_iommu_alloc_root
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:93,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: __must_check::allocate_domain_resources
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - dom_iommu
    - amd_iommu_alloc_root
    - spin_unlock
    linkageType: ''
    returnType: int
    signature: int __must_check allocate_domain_resources(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - d
    - exclude
    - iommu
    argTypes:
    - struct domain*
    - struct pci_dev*
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 115
    functionName: any_pdev_behind_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - find_iommu_for_device
    linkageType: ''
    returnType: bool
    signature: "bool any_pdev_behind_iommu(const struct domain *d,\n                                  const
      struct pci_dev *exclude,\n                                  const struct amd_iommu
      *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: for_each_pdev
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - find_iommu_for_device
    linkageType: ''
    returnType: void
    signature: void for_each_pdev ( d, pdev )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_has_cap
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:123,1
    - Dst: pci_ats_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - pdev
    - iommu
    - ivrs_dev
    argTypes:
    - struct pci_dev*
    - struct amd_iommu*
    - struct ivrs_mappings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: use_ats
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - pci_ats_device
    - iommu_has_cap
    linkageType: ''
    returnType: bool
    signature: "bool use_ats(\n    const struct pci_dev *pdev,\n    const struct amd_iommu
      *iommu,\n    const struct ivrs_mappings *ivrs_dev)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:136,1
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:141,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:144,1
    - Dst: __must_check::allocate_domain_resources
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:146,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:150,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:151,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:152,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:157,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:157,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:160,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:173,1
    - Dst: amd_iommu_set_root_page_table
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:178,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:179,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:183,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:184,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:192,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:196,1
    - Dst: use_ats
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:198,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:201,1
    - Dst: amd_iommu_flush_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:204,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:206,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:206,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:216,1
    - Dst: amd_iommu_set_root_page_table
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:220,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:221,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:225,1
    - Dst: any_pdev_behind_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:242,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:244,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:245,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:253,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:254,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:255,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:256,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:256,1
    - Dst: use_ats
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:259,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:260,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:262,1
    - Dst: amd_iommu_flush_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:264,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:267,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:269,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:272,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:275,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:275,1
    - Dst: use_ats
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:277,1
    - Dst: pci_ats_enabled
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:277,1
    - Dst: enable_ats_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:280,1
    - Dst: amd_iommu_flush_iotlb
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:282,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 4
    argNames:
    - domain
    - iommu
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - struct amd_iommu*
    - uint8_t
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 286
    functionName: __must_check::amd_iommu_setup_domain_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - __must_check::allocate_domain_resources
    - PCI_BDF
    - spin_unlock_irqrestore
    - enable_ats_device
    - get_ivrs_mappings
    - amd_iommu_flush_iotlb
    - AMD_IOMMU_WARN
    - page_to_mfn
    - PCI_SBDF
    - BUG_ON
    - pci_ats_enabled
    - use_ats
    - is_hardware_domain
    - MASK_EXTR
    - dom_iommu
    - QUARANTINE_SKIP
    - mfn_x
    - smp_wmb
    - amd_iommu_flush_device
    - ASSERT
    - page_to_maddr
    - any_pdev_behind_iommu
    - AMD_IOMMU_DEBUG
    - spin_lock_irqsave
    - get_dma_requestor_id
    - amd_iommu_set_root_page_table
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int __must_check amd_iommu_setup_domain_device(\n    struct domain
      *domain, struct amd_iommu *iommu,\n    uint8_t devfn, struct pci_dev *pdev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_get_supported_ivhd_type
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:292,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:295,1
    - Dst: amd_iommu_detect_acpi
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:298,1
    - Dst: iommu_found
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: acpi_ivrs_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - iommu_found
    - BUG_ON
    - amd_iommu_detect_acpi
    - amd_iommu_get_supported_ivhd_type
    linkageType: ''
    returnType: int
    signature: int acpi_ivrs_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:311,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:313,1
    - Dst: amd_iommu_init_late
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:317,1
    - Dst: amd_iommu_init
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:318,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:320,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 330
    functionName: iov_detect
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - amd_iommu_init
    - printk
    - unlikely
    - amd_iommu_init_late
    linkageType: ''
    returnType: int
    signature: int iov_detect(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_init
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:339,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: iov_enable_xt
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - printk
    - amd_iommu_init
    linkageType: ''
    returnType: int
    signature: int iov_enable_xt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:353,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:355,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 5
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: amd_iommu_alloc_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - dom_iommu
    - iommu_alloc_pgtable
    - unlikely
    linkageType: ''
    returnType: int
    signature: int amd_iommu_alloc_root(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:370,1
    - Dst: amd_iommu_get_paging_mode
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:371,1
    - Dst: domain_max_paddr_bits
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:372,1
    - Dst: max
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 384
    functionName: amd_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - max
    - amd_iommu_get_paging_mode
    - dom_iommu
    - domain_max_paddr_bits
    linkageType: ''
    returnType: int
    signature: int amd_iommu_domain_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: allocate_domain_resources
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:392,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:393,1
    - Dst: for_each_amd_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:395,1
    - Dst: iomem_deny_access
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:396,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:396,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:397,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:399,1
    - Dst: arch_iommu_hwdom_init
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:402,1
    - Dst: setup_hwdom_pci_devices
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: amd_iommu_hwdom_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - allocate_domain_resources
    - BUG
    - for_each_amd_iommu
    - arch_iommu_hwdom_init
    - iomem_deny_access
    - PFN_DOWN
    - setup_hwdom_pci_devices
    linkageType: ''
    returnType: void
    signature: void amd_iommu_hwdom_init(struct domain *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:415,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:418,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:418,1
    - Dst: pci_ats_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:420,1
    - Dst: pci_ats_enabled
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:420,1
    - Dst: disable_ats_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:421,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:423,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:424,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:424,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:428,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:435,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:446,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:449,1
    - Dst: amd_iommu_flush_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:451,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:453,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:456,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - domain
    - iommu
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - struct amd_iommu*
    - uint8_t
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 460
    functionName: amd_iommu_disable_domain_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - AMD_IOMMU_DEBUG
    - pci_ats_device
    - QUARANTINE_SKIP
    - spin_lock_irqsave
    - get_dma_requestor_id
    - PCI_BDF
    - spin_unlock_irqrestore
    - disable_ats_device
    - pci_ats_enabled
    - ASSERT
    - BUG_ON
    - smp_wmb
    - amd_iommu_flush_device
    - pcidevs_locked
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_disable_domain_device(const struct domain *domain,\n
      \                                           struct amd_iommu *iommu,\n                                            uint8_t
      devfn, struct pci_dev *pdev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:469,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:472,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:473,1
    - Dst: QUARANTINE_SKIP
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:477,1
    - Dst: amd_iommu_setup_domain_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:479,1
    - Dst: amd_iommu_disable_domain_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:484,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:488,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:489,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:490,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:494,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:495,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:496,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:504,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:506,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:507,1
    - Dst: amd_iommu_reserve_domain_unity_unmap
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:509,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:511,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:516,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - source
    - target
    - devfn
    - pdev
    argTypes:
    - struct domain*
    - struct domain*
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 462
    functionDepth: 5
    functionLinenumber: 462
    functionLinenumberEnd: 520
    functionName: reassign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - AMD_IOMMU_WARN
    - amd_iommu_disable_domain_device
    - AMD_IOMMU_DEBUG
    - write_unlock
    - QUARANTINE_SKIP
    - find_iommu_for_device
    - PCI_SBDF
    - PCI_BDF
    - amd_iommu_reserve_domain_unity_unmap
    - get_dma_requestor_id
    - amd_iommu_setup_domain_device
    - list_del
    - is_hardware_domain
    - get_ivrs_mappings
    - write_lock
    - list_add
    linkageType: ''
    returnType: int
    signature: "int reassign_device(\n    struct domain *source, struct domain *target,
      u8 devfn,\n    struct pci_dev *pdev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:525,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:526,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:527,1
    - Dst: amd_iommu_reserve_domain_unity_map
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:528,1
    - Dst: reassign_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:532,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:534,1
    - Dst: amd_iommu_reserve_domain_unity_unmap
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:536,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:541,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:544,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:544,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - d
    - devfn
    - pdev
    - flag
    argTypes:
    - struct domain*
    - u8
    - struct pci_dev*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 522
    functionDepth: 6
    functionLinenumber: 522
    functionLinenumberEnd: 550
    functionName: amd_iommu_assign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - PCI_SLOT
    - PCI_FUNC
    - get_dma_requestor_id
    - PCI_BDF
    - amd_iommu_reserve_domain_unity_map
    - amd_iommu_reserve_domain_unity_unmap
    - printk
    - get_ivrs_mappings
    - domain_crash
    - reassign_device
    - is_hardware_domain
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_assign_device(\n    struct domain *d, u8 devfn, struct
      pci_dev *pdev, u32 flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:554,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:556,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 559
    functionName: amd_iommu_clear_root_pgtable
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - dom_iommu
    - spin_unlock
    linkageType: ''
    returnType: void
    signature: void amd_iommu_clear_root_pgtable(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_identity_map_teardown
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:563,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:564,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 565
    functionName: amd_iommu_domain_destroy
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - dom_iommu
    - iommu_identity_map_teardown
    linkageType: ''
    returnType: void
    signature: void amd_iommu_domain_destroy(struct domain *d)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: for_each_amd_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:578,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:580,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:582,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:583,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:587,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:589,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:593,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:594,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:598,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:599,1
    - Dst: amd_iommu_alloc_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:613,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:621,1
    - Dst: amd_iommu_set_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:623,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:627,1
    - Dst: amd_iommu_flush_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:630,1
    - Dst: amd_iommu_reserve_domain_unity_map
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:633,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:637,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:638,1
    - Dst: iommu_alloc_domid
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:642,1
    - Dst: amd_iommu_setup_domain_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:648,1
    - Dst: iommu_free_domid
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:651,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 2
    argNames:
    - devfn
    - pdev
    argTypes:
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 656
    functionName: amd_iommu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - AMD_IOMMU_DEBUG
    - for_each_amd_iommu
    - iommu_free_domid
    - amd_iommu_alloc_intremap_table
    - spin_lock_irqsave
    - find_iommu_for_device
    - PCI_SBDF
    - PCI_BDF
    - spin_unlock_irqrestore
    - amd_iommu_reserve_domain_unity_map
    - amd_iommu_flush_device
    - amd_iommu_setup_domain_device
    - amd_iommu_set_intremap_table
    - unlikely
    - get_ivrs_mappings
    - is_hardware_domain
    - iommu_alloc_domid
    linkageType: ''
    returnType: int
    signature: int amd_iommu_add_device(u8 devfn, struct pci_dev *pdev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:667,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:670,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:671,1
    - Dst: amd_iommu_disable_domain_device
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:675,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:677,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:678,1
    - Dst: amd_iommu_reserve_domain_unity_unmap
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:680,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:683,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:684,1
    - Dst: amd_iommu_quarantine_teardown
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:686,1
    - Dst: iommu_free_domid
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:688,1
    - Dst: amd_iommu_free_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - devfn
    - pdev
    argTypes:
    - u8
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 658
    functionDepth: 5
    functionLinenumber: 658
    functionLinenumberEnd: 697
    functionName: amd_iommu_remove_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - amd_iommu_disable_domain_device
    - iommu_free_domid
    - amd_iommu_free_intremap_table
    - find_iommu_for_device
    - PCI_SBDF
    - PCI_BDF
    - amd_iommu_reserve_domain_unity_unmap
    - get_ivrs_mappings
    - amd_iommu_quarantine_teardown
    linkageType: ''
    returnType: int
    signature: int amd_iommu_remove_device(u8 devfn, struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:701,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - seg
    - bus
    - devfn
    argTypes:
    - u16
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: amd_iommu_group_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - get_dma_requestor_id
    - PCI_BDF
    linkageType: ''
    returnType: int
    signature: int amd_iommu_group_id(u16 seg, u8 bus, u8 devfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:718,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:725,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:732,1
    - Dst: amd_offset_level_address
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:738,1
    - Dst: amd_dump_page_table_level
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:740,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:741,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:741,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:744,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:746,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:747,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:747,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - pg
    - level
    - gpa
    - indent
    argTypes:
    - struct page_info*
    - int
    - paddr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 752
    functionName: amd_dump_page_table_level
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 1
    functionsReached:
    - unmap_domain_page
    - amd_dump_page_table_level
    - mfn_to_page
    - _mfn
    - amd_offset_level_address
    - pfn_to_paddr
    - process_pending_softirqs
    - printk
    - PFN_DOWN
    - __map_domain_page
    linkageType: ''
    returnType: void
    signature: "void amd_dump_page_table_level(struct page_info *pg, int level,\n
      \                                     paddr_t gpa, int indent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:756,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:761,1
    - Dst: amd_dump_page_table_level
      Src: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 754
    functionDepth: 6
    functionLinenumber: 754
    functionLinenumberEnd: 764
    functionName: amd_dump_page_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/pci_amd_iommu.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - amd_dump_page_table_level
    - printk
    linkageType: ''
    returnType: void
    signature: void amd_dump_page_tables(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - irt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: intremap_page_order
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intremap_page_order(irt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: intremap_page_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irt
    - iommu
    argTypes:
    - void*
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: amd_iommu_intremap_table_order
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - intremap_page_order
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int amd_iommu_intremap_table_order(\n    const void *irt,
      const struct amd_iommu *iommu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_intremap_table_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irt
    - iommu
    argTypes:
    - void*
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: intremap_table_entries
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - amd_iommu_intremap_table_order
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int intremap_table_entries(\n    const void *irt, const struct
      amd_iommu *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - apic_id
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: ioapic_id_to_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ioapic_id_to_index(unsigned int apic_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: get_next_ioapic_sbdf_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_next_ioapic_sbdf_index(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seg
    - req_id
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: get_intremap_lock
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - get_ivrs_mappings
    linkageType: ''
    returnType: spinlock_t
    signature: spinlock_t * get_intremap_lock(int seg, int req_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:128,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seg
    - bdf
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: get_intremap_requestor_id
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - get_ivrs_mappings
    - ASSERT
    linkageType: ''
    returnType: int
    signature: int get_intremap_requestor_id(int seg, int bdf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:135,1
    - Dst: intremap_table_entries
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:138,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:139,1
    - Dst: find_next_bit
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:147,1
    - Dst: __set_bit
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:154,1
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - iommu
    - bdf
    - nr
    argTypes:
    - struct amd_iommu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 164
    functionName: alloc_intremap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - __set_bit
    - find_next_zero_bit
    - find_next_bit
    - find_first_zero_bit
    - intremap_table_entries
    - get_ivrs_mappings
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int alloc_intremap_entry(const struct amd_iommu *iommu,\n
      \                                        unsigned int bdf, unsigned int nr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:170,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:173,1
    - Dst: intremap_table_entries
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - iommu
    - bdf
    - index
    argTypes:
    - struct amd_iommu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: get_intremap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - get_ivrs_mappings
    - ASSERT
    - intremap_table_entries
    linkageType: ''
    returnType: union irte_ptr
    signature: "union irte_ptr get_intremap_entry(const struct amd_iommu *iommu,\n
      \                                        unsigned int bdf, unsigned int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:186,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:187,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:191,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:200,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:204,1
    - Dst: __clear_bit
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - iommu
    - bdf
    - index
    argTypes:
    - struct amd_iommu*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: free_intremap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - __clear_bit
    - smp_wmb
    - get_intremap_entry
    - get_ivrs_mappings
    - ACCESS_ONCE
    linkageType: ''
    returnType: void
    signature: "void free_intremap_entry(const struct amd_iommu *iommu,\n                                unsigned
      int bdf, unsigned int index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmpxchg16b
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:227,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:236,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:240,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - iommu
    - entry
    - vector
    - int_type
    - dest_mode
    - dest
    argTypes:
    - struct amd_iommu*
    - union irte_ptr
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 257
    functionName: update_intremap_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - printk
    - ACCESS_ONCE
    - ASSERT_UNREACHABLE
    - cmpxchg16b
    linkageType: ''
    returnType: void
    signature: "void update_intremap_entry(const struct amd_iommu *iommu,\n                                  union
      irte_ptr entry,\n                                  unsigned int vector, unsigned
      int int_type,\n                                  unsigned int dest_mode, unsigned
      int dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - rte
    - offset
    argTypes:
    - struct IO_APIC_route_entry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: set_rte_index
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_rte_index(struct IO_APIC_route_entry *rte, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - union irte128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: get_full_dest
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_full_dest(const union irte128 *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_intremap_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:284,1
    - Dst: get_intremap_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:285,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:292,1
    - Dst: alloc_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:297,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:300,1
    - Dst: get_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:308,1
    - Dst: update_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:310,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:312,1
    - Dst: amd_iommu_flush_intremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:315,1
    - Dst: set_rte_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - bdf
    - iommu
    - rte
    - index
    argTypes:
    - int
    - struct amd_iommu*
    - struct IO_APIC_route_entry*
    - u16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 270
    functionDepth: 4
    functionLinenumber: 270
    functionLinenumberEnd: 320
    functionName: update_intremap_entry_from_ioapic
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - amd_iommu_flush_intremap
    - get_intremap_requestor_id
    - get_intremap_lock
    - spin_lock_irqsave
    - alloc_intremap_entry
    - spin_unlock_irqrestore
    - get_intremap_entry
    - update_intremap_entry
    - set_rte_index
    linkageType: ''
    returnType: int
    signature: "int update_intremap_entry_from_ioapic(\n    int bdf,\n    struct amd_iommu
      *iommu,\n    struct IO_APIC_route_entry *rte,\n    u16 *index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:331,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:331,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:340,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:343,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:345,1
    - Dst: update_intremap_entry_from_ioapic
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:350,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:357,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:358,1
    - Dst: __ioapic_write_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - apic
    - pin
    - rte
    argTypes:
    - unsigned int
    - unsigned int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 363
    functionName: amd_iommu_ioapic_update_ire
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - ioapic_id_to_index
    - __ioapic_write_entry
    - find_iommu_for_device
    - printk
    - IO_APIC_ID
    - update_intremap_entry_from_ioapic
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_ioapic_update_ire(\n    unsigned int apic, unsigned
      int pin, uint64_t rte)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __io_apic_read
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:370,1
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:377,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:377,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:386,1
    - Dst: get_intremap_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:389,1
    - Dst: get_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:390,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:394,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:397,1
    - Dst: MASK_INSR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:399,1
    - Dst: get_full_dest
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - apic
    - reg
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 408
    functionName: amd_iommu_read_ioapic_from_ire
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - ioapic_id_to_index
    - MASK_INSR
    - get_intremap_requestor_id
    - get_full_dest
    - find_iommu_for_device
    - ASSERT
    - get_intremap_entry
    - IO_APIC_ID
    - __io_apic_read
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int amd_iommu_read_ioapic_from_ire(\n    unsigned int apic,
      unsigned int reg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:422,1
    - Dst: get_intremap_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:423,1
    - Dst: get_intremap_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:425,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:426,1
    - Dst: free_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:431,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:432,1
    - Dst: amd_iommu_flush_intremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:436,1
    - Dst: amd_iommu_flush_intremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:438,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:451,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:456,1
    - Dst: alloc_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:457,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:460,1
    - Dst: get_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:467,1
    - Dst: update_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:469,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:470,1
    - Dst: amd_iommu_flush_intremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:474,1
    - Dst: amd_iommu_flush_intremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:476,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:489,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:491,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:491,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:492,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 6
    argNames:
    - iommu
    - bdf
    - nr
    - remap_index
    - msg
    - data
    argTypes:
    - struct amd_iommu*
    - u16
    - unsigned int
    - int*
    - struct msi_msg*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 496
    functionName: update_intremap_entry_from_msi_msg
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - amd_iommu_flush_intremap
    - get_intremap_requestor_id
    - get_intremap_lock
    - spin_lock_irqsave
    - get_dma_requestor_id
    - alloc_intremap_entry
    - spin_unlock_irqrestore
    - BUG_ON
    - ASSERT
    - get_intremap_entry
    - update_intremap_entry
    - get_ivrs_mappings
    - free_intremap_entry
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int update_intremap_entry_from_msi_msg(\n    struct amd_iommu *iommu,
      u16 bdf, unsigned int nr,\n    int *remap_index, const struct msi_msg *msg,
      u32 *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: for_each_amd_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:502,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:506,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:510,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sbdf
    argTypes:
    - pci_sbdf_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 512
    functionName: _find_iommu_for_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - ERR_PTR
    - find_iommu_for_device
    - AMD_IOMMU_DEBUG
    - for_each_amd_iommu
    linkageType: ''
    returnType: struct amd_iommu
    signature: struct amd_iommu *_find_iommu_for_device(pci_sbdf_t sbdf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:526,1
    - Dst: IS_ERR_OR_NULL
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:527,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:528,1
    - Dst: update_intremap_entry_from_msi_msg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:535,1
    - Dst: update_intremap_entry_from_msi_msg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - msi_desc
    - msg
    argTypes:
    - struct msi_desc*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 564
    functionName: amd_iommu_msi_msg_update_ire
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - update_intremap_entry_from_msi_msg
    - _find_iommu_for_device
    - PTR_ERR
    - IS_ERR_OR_NULL
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_msi_msg_update_ire(\n    struct msi_desc *msi_desc,
      struct msi_msg *msg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:580,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:588,1
    - Dst: XFREE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:593,1
    - Dst: intremap_page_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:599,1
    - Dst: intremap_page_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:601,1
    - Dst: __free_amd_iommu_tables
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - iommu
    - ivrs_mapping
    - bdf
    argTypes:
    - struct amd_iommu*
    - struct ivrs_mappings*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 607
    functionName: amd_iommu_free_intremap_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 1
    functionsReached:
    - XFREE
    - __free_amd_iommu_tables
    - PCI_FUNC
    - intremap_page_order
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_free_intremap_table(\n    const struct amd_iommu *iommu,
      struct ivrs_mappings *ivrs_mapping,\n    uint16_t bdf)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:619,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:620,1
    - Dst: __alloc_amd_iommu_tables
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:622,1
    - Dst: intremap_page_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:625,1
    - Dst: intremap_table_entries
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:626,1
    - Dst: xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:627,1
    - Dst: BITS_TO_LONGS
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:627,1
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:629,1
    - Dst: __free_amd_iommu_tables
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - iommu
    - inuse_map
    - nr
    argTypes:
    - struct amd_iommu*
    - unsigned long**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 638
    functionName: amd_iommu_alloc_intremap_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 1
    functionsReached:
    - get_order_from_bytes
    - intremap_page_order
    - xzalloc_array
    - BITS_TO_LONGS
    - __alloc_amd_iommu_tables
    - intremap_table_entries
    - memset
    - __free_amd_iommu_tables
    linkageType: ''
    returnType: void
    signature: "void *amd_iommu_alloc_intremap_table(\n    const struct amd_iommu
      *iommu, unsigned long **inuse_map, unsigned int nr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:647,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:649,1
    - Dst: amd_iommu_prepare
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:660,1
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:665,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:665,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:670,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:672,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:673,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 679
    functionName: iov_supports_xt
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - ioapic_id_to_index
    - find_iommu_for_device
    - amd_iommu_prepare
    - unlikely
    - IO_APIC_ID
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: bool
    signature: bool iov_supports_xt(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:690,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:695,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:699,1
    - Dst: get_intremap_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:703,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:704,1
    - Dst: alloc_intremap_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:706,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - msi_desc
    argTypes:
    - struct msi_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 716
    functionName: amd_setup_hpet_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - get_intremap_lock
    - spin_lock_irqsave
    - alloc_intremap_entry
    - find_iommu_for_device
    - spin_unlock_irqrestore
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: int
    signature: int amd_setup_hpet_msi(struct msi_desc *msi_desc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: intremap_table_entries
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:727,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:738,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:739,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:744,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:748,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - iommu
    - tbl
    - ivrs_mapping
    argTypes:
    - struct amd_iommu*
    - union irte_cptr
    - struct ivrs_mappings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 750
    functionName: dump_intremap_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - printk
    - intremap_table_entries
    linkageType: ''
    returnType: void
    signature: "void dump_intremap_table(const struct amd_iommu *iommu,\n                                union
      irte_cptr tbl,\n                                const struct ivrs_mappings *ivrs_mapping)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:761,1
    - Dst: dump_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:762,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:763,1
    - Dst: process_pending_softirqs
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - iommu
    - ivrs_mapping
    - unused
    argTypes:
    - struct amd_iommu*
    - struct ivrs_mappings*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 768
    functionName: dump_intremap_mapping
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - dump_intremap_table
    - spin_lock_irqsave
    - process_pending_softirqs
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: int
    signature: "int dump_intremap_mapping(\n    const struct amd_iommu *iommu, struct
      ivrs_mappings *ivrs_mapping,\n    uint16_t unused)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:774,1
    - Dst: iterate_ivrs_entries
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:776,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:782,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:784,1
    - Dst: dump_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:785,1
    - Dst: list_first_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:785,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 790
    functionName: amd_iommu_dump_intremap_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_intr.c
    functionUses: 0
    functionsReached:
    - list_first_entry
    - dump_intremap_table
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - iterate_ivrs_entries
    - printk
    linkageType: ''
    returnType: void
    signature: void amd_iommu_dump_intremap_tables(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iommu
    - mask
    argTypes:
    - struct amd_iommu*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: iommu_has_ht_flag
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool iommu_has_ht_flag(struct amd_iommu *iommu, u8 mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:47,1
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: map_iommu_mmio_region
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - memset
    - ioremap
    linkageType: ''
    returnType: int
    signature: int map_iommu_mmio_region(struct amd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: unmap_iommu_mmio_region
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - iounmap
    linkageType: ''
    returnType: void
    signature: void unmap_iommu_mmio_region(struct amd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_has_cap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:69,1
    - Dst: iommu_has_ht_flag
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:70,1
    - Dst: iommu_has_ht_flag
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:72,1
    - Dst: iommu_has_ht_flag
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:73,1
    - Dst: iommu_has_ht_flag
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:74,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 80
    functionName: set_iommu_ht_flags
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writeq
    - iommu_has_ht_flag
    - iommu_has_cap
    linkageType: ''
    returnType: void
    signature: void set_iommu_ht_flags(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:87,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:89,1
    - Dst: iommu_set_addr_lo_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:94,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:95,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:98,1
    - Dst: iommu_set_addr_hi_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:101,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: register_iommu_dev_table_in_mmio_space
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writel
    - iommu_set_addr_lo_to_reg
    - iommu_set_addr_hi_to_reg
    - set_field_in_reg_u32
    - ASSERT
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: void register_iommu_dev_table_in_mmio_space(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:112,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:114,1
    - Dst: iommu_set_addr_lo_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:119,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:120,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:122,1
    - Dst: iommu_set_addr_hi_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:126,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:127,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 131
    functionName: register_iommu_cmd_buffer_in_mmio_space
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - writel
    - iommu_set_addr_lo_to_reg
    - iommu_set_addr_hi_to_reg
    - set_field_in_reg_u32
    - ASSERT
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: void register_iommu_cmd_buffer_in_mmio_space(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:140,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:142,1
    - Dst: iommu_set_addr_lo_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:147,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:148,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:150,1
    - Dst: iommu_set_addr_hi_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:154,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:155,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 159
    functionName: register_iommu_event_log_in_mmio_space
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - writel
    - iommu_set_addr_lo_to_reg
    - iommu_set_addr_hi_to_reg
    - set_field_in_reg_u32
    - ASSERT
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: void register_iommu_event_log_in_mmio_space(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:168,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:170,1
    - Dst: iommu_set_addr_lo_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:175,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:176,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:178,1
    - Dst: iommu_set_addr_hi_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:182,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:183,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 187
    functionName: register_iommu_ppr_log_in_mmio_space
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - writel
    - iommu_set_addr_lo_to_reg
    - iommu_set_addr_hi_to_reg
    - set_field_in_reg_u32
    - ASSERT
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: void register_iommu_ppr_log_in_mmio_space(struct amd_iommu *iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iommu
    - enable
    argTypes:
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: set_iommu_translation_control
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writeq
    linkageType: ''
    returnType: void
    signature: "void set_iommu_translation_control(struct amd_iommu *iommu,\n                                          bool
      enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:203,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - iommu
    - enable
    argTypes:
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: set_iommu_guest_translation_control
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_DEBUG
    - writeq
    linkageType: ''
    returnType: void
    signature: "void set_iommu_guest_translation_control(struct amd_iommu *iommu,\n
      \                                               bool enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:215,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:216,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iommu
    - enable
    argTypes:
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 222
    functionName: set_iommu_command_buffer_control
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writeq
    linkageType: ''
    returnType: void
    signature: "void set_iommu_command_buffer_control(struct amd_iommu *iommu,\n                                             bool
      enable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:232,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:235,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:237,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:240,1
    - Dst: iommu_set_addr_hi_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:246,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:247,1
    - Dst: iommu_set_addr_lo_to_reg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:250,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:252,1
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:256,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - iommu
    argTypes:
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 260
    functionName: register_iommu_exclusion_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - iommu_set_addr_hi_to_reg
    - set_field_in_reg_u32
    - writel
    - iommu_set_addr_lo_to_reg
    linkageType: ''
    returnType: void
    signature: void register_iommu_exclusion_range(struct amd_iommu *iommu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:268,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:269,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - iommu
    - enable
    argTypes:
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: set_iommu_event_log_control
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writeq
    linkageType: ''
    returnType: void
    signature: "void set_iommu_event_log_control(\n    struct amd_iommu *iommu, bool
      enable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:285,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:286,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:293,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - iommu
    - enable
    argTypes:
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: set_iommu_ppr_log_control
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_DEBUG
    - writeq
    linkageType: ''
    returnType: void
    signature: "void set_iommu_ppr_log_control(\n    struct amd_iommu *iommu, bool
      enable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:308,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:310,1
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:321,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:329,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:338,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:340,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:342,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:346,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:347,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:347,1
    - Dst: parse_func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:350,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:360,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - iommu
    - log
    - entry_size
    argTypes:
    - struct amd_iommu*
    - struct ring_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 367
    functionName: iommu_read_log
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - writel
    - spin_unlock
    - AMD_IOMMU_DEBUG
    - parse_func
    - BUG_ON
    - spin_lock
    - readl
    - unlikely
    - udelay
    - ACCESS_ONCE
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: "int iommu_read_log(struct amd_iommu *iommu,\n                          struct
      ring_buffer *log,\n                          unsigned int entry_size,\n                          void
      (*parse_func)(struct amd_iommu *iommu,\n                                             uint32_t
      *entry))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    functionName: ACCESS_ONCE
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ACCESS_ONCE(entry[1])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:378,1
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:385,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:392,1
    - Dst: ctrl_func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:397,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:400,1
    - Dst: ctrl_func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - iommu
    - log
    argTypes:
    - struct amd_iommu*
    - struct ring_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 408
    functionName: iommu_reset_log
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - writel
    - ctrl_func
    - BUG_ON
    - readl
    linkageType: ''
    returnType: void
    signature: "void iommu_reset_log(struct amd_iommu *iommu,\n                            struct
      ring_buffer *log,\n                            void (*ctrl_func)(struct amd_iommu
      *iommu,\n                                              bool enable))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __msi_set_enable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iommu
    - flag
    argTypes:
    - struct amd_iommu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: amd_iommu_msi_enable
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - __msi_set_enable
    linkageType: ''
    returnType: void
    signature: void amd_iommu_msi_enable(struct amd_iommu *iommu, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:420,1
    - Dst: amd_iommu_msi_enable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:421,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 424
    functionName: iommu_msi_unmask
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - amd_iommu_msi_enable
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void iommu_msi_unmask(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:431,1
    - Dst: amd_iommu_msi_enable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:432,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: iommu_msi_mask
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - amd_iommu_msi_enable
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void iommu_msi_mask(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_msi_unmask
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: iommu_msi_startup
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - iommu_msi_unmask
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int iommu_msi_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irq_complete_move
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:445,1
    - Dst: iommu_msi_mask
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:446,1
    - Dst: move_masked_irq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 6
    functionLinenumber: 443
    functionLinenumberEnd: 448
    functionName: iommu_msi_ack
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - iommu_msi_mask
    - irq_complete_move
    - move_masked_irq
    linkageType: ''
    returnType: void
    signature: void iommu_msi_ack(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_msi_unmask
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:452,1
    - Dst: end_nonmaskable_irq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - desc
    - vector
    argTypes:
    - struct irq_desc*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: iommu_msi_end
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - end_nonmaskable_irq
    - iommu_msi_unmask
    linkageType: ''
    returnType: void
    signature: void iommu_msi_end(struct irq_desc *desc, u8 vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_msi_unmask
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:470,1
    - Dst: unmask_msi_irq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: iommu_maskable_msi_startup
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - unmask_msi_irq
    - iommu_msi_unmask
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int iommu_maskable_msi_startup(struct irq_desc *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mask_msi_irq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:477,1
    - Dst: iommu_msi_mask
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - desc
    argTypes:
    - struct irq_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 475
    functionDepth: 4
    functionLinenumber: 475
    functionLinenumberEnd: 479
    functionName: iommu_maskable_msi_shutdown
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - iommu_msi_mask
    - mask_msi_irq
    linkageType: ''
    returnType: void
    signature: void iommu_maskable_msi_shutdown(struct irq_desc *desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_desc_affinity
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:503,1
    - Dst: msi_compose_msg
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:510,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:513,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:515,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:521,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:522,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:523,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_init.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - desc
    - mask
    argTypes:
    - struct irq_desc*
    - cpumask_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 525
    functionName: set_x2apic_affinity
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_init.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - writeq
    - spin_unlock_irqrestore
    - msi_compose_msg
    - set_desc_affinity
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: "void set_x2apic_affinity(\n    struct irq_desc *desc, const cpumask_t
      *mask)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:61,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:63,1
    - Dst: amd_iommu_alloc_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:82,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:86,1
    - Dst: amd_iommu_alloc_intremap_table
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:94,1
    - Dst: panic
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:98,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - bdf
    - alias_id
    - flags
    - ext_flags
    - alloc_irt
    - iommu
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    - unsigned int
    - bool
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 107
    functionName: add_ivrs_mapping_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - amd_iommu_alloc_intremap_table
    - panic
    - PCI_SBDF
    - ASSERT
    - get_ivrs_mappings
    linkageType: ''
    returnType: void
    signature: "void add_ivrs_mapping_entry(\n    uint16_t bdf, uint16_t alias_id,
      uint8_t flags, unsigned int ext_flags,\n    bool alloc_irt, struct amd_iommu
      *iommu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: for_each_amd_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:114,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - seg
    - bdf
    - cap_offset
    argTypes:
    - u16
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: find_iommu_from_bdf_cap
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - for_each_amd_iommu
    linkageType: ''
    returnType: struct amd_iommu
    signature: "struct amd_iommu * __init find_iommu_from_bdf_cap(\n    u16 seg, u16
      bdf, u16 cap_offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - iommu
    - base
    - limit
    - all
    argTypes:
    - struct amd_iommu*
    - paddr_t
    - paddr_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: reserve_iommu_exclusion_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int reserve_iommu_exclusion_range(\n    struct amd_iommu *iommu, paddr_t
      base, paddr_t limit, bool all)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:151,1
    - Dst: amd_iommu_get_paging_mode
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:153,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:153,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:177,1
    - Dst: xmalloc
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 7
    argNames:
    - seg
    - bdf
    - base
    - length
    - iw
    - ir
    - global
    argTypes:
    - uint16_t
    - uint16_t
    - unsigned long
    - unsigned long
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 201
    functionName: reserve_unity_map_for_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - xmalloc
    - PFN_UP
    - amd_iommu_get_paging_mode
    - get_ivrs_mappings
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: int
    signature: "int reserve_unity_map_for_device(\n    uint16_t seg, uint16_t bdf,
      unsigned long base,\n    unsigned long length, bool iw, bool ir, bool global)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve_iommu_exclusion_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:216,1
    - Dst: reserve_unity_map_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 5
    argNames:
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 236
    functionName: register_range_for_all_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - reserve_unity_map_for_device
    - reserve_iommu_exclusion_range
    linkageType: ''
    returnType: int
    signature: "int register_range_for_all_devices(\n    paddr_t base, paddr_t limit,
      bool iw, bool ir, bool exclusion)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reserve_iommu_exclusion_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: for_each_amd_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 4
    functionsReached:
    - reserve_iommu_exclusion_range
    linkageType: ''
    returnType: void
    signature: void for_each_amd_iommu( iommu )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:243,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:248,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:251,1
    - Dst: reserve_iommu_exclusion_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:259,1
    - Dst: reserve_unity_map_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:266,1
    - Dst: reserve_unity_map_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - bdf
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - unsigned int
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 278
    functionName: register_range_for_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - reserve_iommu_exclusion_range
    - find_iommu_for_device
    - reserve_unity_map_for_device
    - get_ivrs_mappings
    linkageType: ''
    returnType: int
    signature: "int register_range_for_device(\n    unsigned int bdf, paddr_t base,
      paddr_t limit,\n    bool iw, bool ir, bool exclusion)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reserve_iommu_exclusion_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:292,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:300,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:300,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:303,1
    - Dst: reserve_unity_map_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:304,1
    - Dst: reserve_unity_map_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 6
    argNames:
    - iommu
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - struct amd_iommu*
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 311
    functionName: register_range_for_iommu_devices
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - reserve_iommu_exclusion_range
    - PCI_SBDF
    - find_iommu_for_device
    - reserve_unity_map_for_device
    - get_ivrs_mappings
    linkageType: ''
    returnType: int
    signature: "int register_range_for_iommu_devices(\n    struct amd_iommu *iommu,
      paddr_t base, paddr_t limit,\n    bool iw, bool ir, bool exclusion)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:322,1
    - Dst: register_range_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ivmd_block
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - struct acpi_ivrs_memory*
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: parse_ivmd_device_select
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - register_range_for_device
    linkageType: ''
    returnType: int
    signature: "int parse_ivmd_device_select(\n    const struct acpi_ivrs_memory *ivmd_block,\n
      \   paddr_t base, paddr_t limit, bool iw, bool ir, bool exclusion)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:339,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:346,1
    - Dst: register_range_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 6
    argNames:
    - ivmd_block
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - struct acpi_ivrs_memory*
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 355
    functionName: parse_ivmd_device_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - register_range_for_device
    linkageType: ''
    returnType: int
    signature: "int parse_ivmd_device_range(\n    const struct acpi_ivrs_memory *ivmd_block,\n
      \   paddr_t base, paddr_t limit, bool iw, bool ir, bool exclusion)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_iommu_from_bdf_cap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:365,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:369,1
    - Dst: register_range_for_iommu_devices
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ivmd_block
    - base
    - limit
    - iw
    - ir
    - exclusion
    argTypes:
    - struct acpi_ivrs_memory*
    - paddr_t
    - paddr_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 376
    functionName: parse_ivmd_device_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - register_range_for_iommu_devices
    - AMD_IOMMU_ERROR
    - find_iommu_from_bdf_cap
    linkageType: ''
    returnType: int
    signature: "int parse_ivmd_device_iommu(\n    const struct acpi_ivrs_memory *ivmd_block,\n
      \   paddr_t base, paddr_t limit, bool iw, bool ir, bool exclusion)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:386,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:395,1
    - Dst: min
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:398,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:398,1
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:399,1
    - Dst: amd_iommu_get_paging_mode
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:400,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:400,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:404,1
    - Dst: iommu_unity_region_ok
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:409,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:409,1
    - Dst: maddr_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:410,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:422,1
    - Dst: register_range_for_all_devices
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:429,1
    - Dst: parse_ivmd_device_select
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:433,1
    - Dst: parse_ivmd_device_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:437,1
    - Dst: parse_ivmd_device_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:441,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:445,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - ivmd_block
    argTypes:
    - struct acpi_ivrs_memory*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 378
    functionDepth: 6
    functionLinenumber: 378
    functionLinenumberEnd: 449
    functionName: parse_ivmd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - iommu_unity_region_ok
    - AMD_IOMMU_DEBUG
    - PFN_UP
    - parse_ivmd_device_select
    - amd_iommu_get_paging_mode
    - parse_ivmd_device_iommu
    - min
    - maddr_to_mfn
    - parse_ivmd_device_range
    - AMD_IOMMU_ERROR
    - register_range_for_all_devices
    - MASK_EXTR
    linkageType: ''
    returnType: int
    signature: int parse_ivmd_block(const struct acpi_ivrs_memory *ivmd_block)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pad_length
    - header_length
    - block_length
    argTypes:
    - u16
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 461
    functionName: parse_ivhd_device_padding
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_padding(\n    u16 pad_length, u16 header_length,
      u16 block_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:471,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - select
    - iommu
    argTypes:
    - struct acpi_ivrs_device4*
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 479
    functionName: parse_ivhd_device_select
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_select(\n    const struct acpi_ivrs_device4
      *select, struct amd_iommu *iommu)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:490,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:496,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:504,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:511,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:515,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - range
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivhd_device_range*
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 481
    functionDepth: 5
    functionLinenumber: 481
    functionLinenumberEnd: 522
    functionName: parse_ivhd_device_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - AMD_IOMMU_DEBUG
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_range(\n    const struct acpi_ivhd_device_range
      *range,\n    u16 header_length, u16 block_length, struct amd_iommu *iommu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:533,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:540,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:547,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:551,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - alias
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivrs_device8a*
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 557
    functionName: parse_ivhd_device_alias
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - AMD_IOMMU_DEBUG
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_alias(\n    const struct acpi_ivrs_device8a
      *alias,\n    u16 header_length, u16 block_length, struct amd_iommu *iommu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:569,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:575,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:583,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:590,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:597,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:601,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - range
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivhd_device_alias_range*
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 559
    functionDepth: 5
    functionLinenumber: 559
    functionLinenumberEnd: 609
    functionName: parse_ivhd_device_alias_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - AMD_IOMMU_DEBUG
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_alias_range(\n    const struct acpi_ivhd_device_alias_range
      *range,\n    u16 header_length, u16 block_length, struct amd_iommu *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:620,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:627,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ext
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivrs_device8b*
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 635
    functionName: parse_ivhd_device_extended
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_extended(\n    const struct acpi_ivrs_device8b
      *ext,\n    u16 header_length, u16 block_length, struct amd_iommu *iommu)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:646,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:652,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:660,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:667,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:671,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - range
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivhd_device_extended_range*
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 637
    functionDepth: 5
    functionLinenumber: 637
    functionLinenumberEnd: 679
    functionName: parse_ivhd_device_extended_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_ERROR
    - AMD_IOMMU_DEBUG
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_extended_range(\n    const struct acpi_ivhd_device_extended_range
      *range,\n    u16 header_length, u16 block_length, struct amd_iommu *iommu)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:691,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:695,1
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:699,1
    - Dst: get_next_ioapic_sbdf_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:702,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:705,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 715
    functionName: parse_ivrs_ioapic
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - ioapic_id_to_index
    - PCI_SBDF
    - get_next_ioapic_sbdf_index
    - printk
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_ivrs_ioapic(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:727,1
    - Dst: typeof
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:728,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:731,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 740
    functionName: parse_ivrs_hpet
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - PCI_SBDF
    - typeof
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_ivrs_hpet(const char *str)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:754,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:758,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:761,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:765,1
    - Dst: add_ivrs_mapping_entry
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:767,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:788,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:797,1
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:800,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:802,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:807,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:811,1
    - Dst: get_next_ioapic_sbdf_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:819,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:822,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:830,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:835,1
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:838,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:846,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:855,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:858,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:870,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:875,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 83
    argCount: 5
    argNames:
    - special
    - seg
    - header_length
    - block_length
    - iommu
    argTypes:
    - struct acpi_ivrs_device8c*
    - u16
    - u16
    - u16
    - struct amd_iommu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 743
    functionDepth: 5
    functionLinenumber: 743
    functionLinenumberEnd: 881
    functionName: parse_ivhd_device_special
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - ioapic_id_to_index
    - xmalloc_array
    - AMD_IOMMU_DEBUG
    - PCI_SBDF
    - get_next_ioapic_sbdf_index
    - memset
    - printk
    - IO_APIC_ID
    - AMD_IOMMU_ERROR
    - ASSERT_UNREACHABLE
    - add_ivrs_mapping_entry
    linkageType: ''
    returnType: u16
    signature: "u16 parse_ivhd_device_special(\n    const struct acpi_ivrs_device8c
      *special, u16 seg,\n    u16 header_length, u16 block_length, struct amd_iommu
      *iommu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ivhd_block
    argTypes:
    - struct acpi_ivrs_hardware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 894
    functionName: get_ivhd_header_size
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_ivhd_header_size(const struct acpi_ivrs_hardware *ivhd_block)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_ivhd_header_size
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:900,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:905,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:909,1
    - Dst: find_iommu_from_bdf_cap
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:914,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:919,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:932,1
    - Dst: parse_ivhd_device_padding
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:939,1
    - Dst: parse_ivhd_device_padding
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:944,1
    - Dst: parse_ivhd_device_select
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:949,1
    - Dst: parse_ivhd_device_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:952,1
    - Dst: parse_ivhd_device_alias
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:957,1
    - Dst: parse_ivhd_device_alias_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:962,1
    - Dst: parse_ivhd_device_extended
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:967,1
    - Dst: parse_ivhd_device_extended_range
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:972,1
    - Dst: parse_ivhd_device_special
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:977,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:982,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 1
    argNames:
    - ivhd_block
    argTypes:
    - struct acpi_ivrs_hardware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 994
    functionName: parse_ivhd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - parse_ivhd_device_select
    - AMD_IOMMU_WARN
    - AMD_IOMMU_DEBUG
    - parse_ivhd_device_extended_range
    - parse_ivhd_device_alias_range
    - parse_ivhd_device_extended
    - get_ivhd_header_size
    - find_iommu_from_bdf_cap
    - parse_ivhd_device_special
    - AMD_IOMMU_ERROR
    - parse_ivhd_device_range
    - parse_ivhd_device_padding
    - parse_ivhd_device_alias
    linkageType: ''
    returnType: int
    signature: int parse_ivhd_block(const struct acpi_ivrs_hardware *ivhd_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1000,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1001,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1003,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1004,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1006,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1007,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1008,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1010,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1012,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1013,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1015,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1017,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1018,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1020,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1022,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1024,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1025,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1030
    functionName: dump_acpi_table_header
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_DEBUG
    - printk
    linkageType: ''
    returnType: void
    signature: void dump_acpi_table_header(struct acpi_table_header *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: to_ivhd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_ivhd_block(hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hdr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1039
    functionName: to_ivmd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: to_ivmd_block(hdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1045
    functionName: is_ivhd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ivhd_block(u8 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1053
    functionName: is_ivmd_block
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_ivmd_block(u8 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1068,1
    - Dst: pfn_to_paddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1069,1
    - Dst: parse_ivmd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - start
    - nr
    - id
    - ctxt
    argTypes:
    - unsigned long
    - unsigned long
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1055
    functionDepth: 7
    functionLinenumber: 1055
    functionLinenumberEnd: 1072
    functionName: add_one_extra_ivmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - parse_ivmd_block
    - pfn_to_paddr
    linkageType: ''
    returnType: int
    signature: "int add_one_extra_ivmd(unsigned long start,\n                                              unsigned
      long nr,\n                                              uint32_t id, void *ctxt)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1082,1
    - Dst: dump_acpi_table_header
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1085,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1093,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1099,1
    - Dst: parse_ivhd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1106,1
    - Dst: to_ivhd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1106,1
    - Dst: is_ivmd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1107,1
    - Dst: parse_ivmd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1108,1
    - Dst: to_ivmd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1108,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1114,1
    - Dst: parse_ivmd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1116,1
    - Dst: iommu_get_extra_reserved_device_memory
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1118,1
    - Dst: ioapic_id_to_index
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1128,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1128,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1131,1
    - Dst: IO_APIC_ID
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1132,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1138,1
    - Dst: xmalloc_array
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1144,1
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1147,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1151,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1160,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1074
    functionDepth: 7
    functionLinenumber: 1074
    functionLinenumberEnd: 1165
    functionName: parse_ivrs_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - ioapic_id_to_index
    - xmalloc_array
    - AMD_IOMMU_DEBUG
    - IO_APIC_ID
    - PCI_SBDF
    - parse_ivhd_block
    - BUG_ON
    - dump_acpi_table_header
    - parse_ivmd_block
    - memset
    - to_ivmd_block
    - is_ivmd_block
    - iommu_get_extra_reserved_device_memory
    - printk
    - AMD_IOMMU_ERROR
    - to_ivhd_block
    linkageType: ''
    returnType: int
    signature: int parse_ivrs_table(struct acpi_table_header *table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: amd_iommu_detect_one_acpi
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1178,1
    - Dst: to_ivhd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1167
    functionDepth: 8
    functionLinenumber: 1167
    functionLinenumberEnd: 1183
    functionName: detect_iommu_acpi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - amd_iommu_detect_one_acpi
    - to_ivhd_block
    linkageType: ''
    returnType: int
    signature: int detect_iommu_acpi(struct acpi_table_header *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1189
    functionName: UPDATE_LAST_BDF
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_LAST_BDF(x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_ivhd_header_size
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1195,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1200,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1219,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1223,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1227,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1231,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1235,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1239,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1243,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 1
    argNames:
    - ivhd_block
    argTypes:
    - struct acpi_ivrs_hardware*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1259
    functionName: get_last_bdf_ivhd
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - get_ivhd_header_size
    - UPDATE_LAST_BDF
    - AMD_IOMMU_ERROR
    - AMD_IOMMU_WARN
    linkageType: ''
    returnType: int
    signature: "int get_last_bdf_ivhd(\n    const struct acpi_ivrs_hardware *ivhd_block)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_last_bdf_ivhd
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1275,1
    - Dst: to_ivhd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1275,1
    - Dst: UPDATE_LAST_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1285
    functionName: get_last_bdf_acpi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - UPDATE_LAST_BDF
    - get_last_bdf_ivhd
    - to_ivhd_block
    linkageType: ''
    returnType: int
    signature: "int get_last_bdf_acpi(\n    struct acpi_table_header *table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1290
    functionName: amd_iommu_detect_acpi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 1
    functionsReached:
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int amd_iommu_detect_acpi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1294,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1297
    functionName: amd_iommu_get_ivrs_dev_entries
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - PCI_FUNC
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int amd_iommu_get_ivrs_dev_entries(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1299
    functionDepth: 2
    functionLinenumber: 1299
    functionLinenumberEnd: 1302
    functionName: amd_iommu_update_ivrs_mapping_acpi
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int amd_iommu_update_ivrs_mapping_acpi(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: acpi_tb_checksum
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1312,1
    - Dst: ACPI_CAST_PTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1312,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1315,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1319,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1328,1
    - Dst: is_ivhd_block
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1334,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1337,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1347,1
    - Dst: AMD_IOMMU_DEBUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - table
    argTypes:
    - struct acpi_table_header*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1354
    functionName: get_supported_ivhd_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 1
    functionsReached:
    - is_ivhd_block
    - AMD_IOMMU_DEBUG
    - container_of
    - acpi_tb_checksum
    - ACPI_CAST_PTR
    - printk
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: int
    signature: int get_supported_ivhd_type(struct acpi_table_header *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: acpi_table_parse
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1359
    functionName: amd_iommu_get_supported_ivhd_type
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 1
    functionsReached:
    - acpi_table_parse
    linkageType: ''
    returnType: int
    signature: int amd_iommu_get_supported_ivhd_type(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1373,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1376,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1382,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1404,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1407,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1416,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1421,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c:1425,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1435
    functionName: parse_ivmd_param
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_acpi.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - PCI_BDF
    - ARRAY_SIZE
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int parse_ivmd_param(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: PTE_PER_TABLE_ALIGN
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTE_PER_TABLE_ALIGN(entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: PTE_PER_TABLE_ALLOC
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu-defs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTE_PER_TABLE_ALLOC(entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - offset
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: amd_offset_level_address
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu-defs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: amd_offset_level_address(offset, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: iommu_found
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_found()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - amd_iommu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: for_each_amd_iommu
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_amd_iommu(amd_iommu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: AMD_IOMMU_ERROR
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_IOMMU_ERROR(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: AMD_IOMMU_WARN
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_IOMMU_WARN(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: AMD_IOMMU_VERBOSE
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_IOMMU_VERBOSE(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: AMD_IOMMU_DEBUG
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMD_IOMMU_DEBUG(fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - reg_value
    - mask
    - shift
    argTypes:
    - u32
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: get_field_from_reg_u32
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 get_field_from_reg_u32(u32 reg_value, u32 mask, u32 shift)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - field
    - reg_value
    - mask
    - shift
    - reg
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: set_field_in_reg_u32
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: "u32 set_field_in_reg_u32(u32 field, u32 reg_value,\n        u32 mask,
      u32 shift, u32 *reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_ALIGN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: region_to_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 0
    functionsReached:
    - PAGE_ALIGN
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long region_to_pages(unsigned long addr, unsigned long size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:324,1
    - Dst: PTE_PER_TABLE_ALIGN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - max_frames
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 334
    functionName: amd_iommu_get_paging_mode
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 3
    functionsReached:
    - BUG_ON
    - PTE_PER_TABLE_ALIGN
    linkageType: ''
    returnType: int
    signature: int amd_iommu_get_paging_mode(unsigned long max_frames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - order
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: __alloc_amd_iommu_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 1
    functionsReached:
    - alloc_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void *__alloc_amd_iommu_tables(unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - table
    - order
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 6
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: __free_amd_iommu_tables
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 2
    functionsReached:
    - free_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void __free_amd_iommu_tables(void *table, unsigned int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iommu
    - bit
    argTypes:
    - struct amd_iommu*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: iommu_has_cap
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool iommu_has_cap(const struct amd_iommu *iommu, unsigned int bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_field_from_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: iommu_get_devid_from_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 0
    functionsReached:
    - get_field_from_reg_u32
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t iommu_get_devid_from_cmd(uint32_t cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmd
    - id
    argTypes:
    - uint32_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: iommu_set_devid_to_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 0
    functionsReached:
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: void iommu_set_devid_to_cmd(uint32_t *cmd, uint16_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - addr
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: iommu_set_addr_lo_to_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 5
    functionsReached:
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: void iommu_set_addr_lo_to_reg(uint32_t *reg, uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_field_in_reg_u32
      Src: /src/xen/xen/drivers/passthrough/amd/iommu.h:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reg
    - addr
    argTypes:
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: iommu_set_addr_hi_to_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu.h
    functionUses: 5
    functionsReached:
    - set_field_in_reg_u32
    linkageType: ''
    returnType: void
    signature: void iommu_set_addr_hi_to_reg(uint32_t *reg, uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pfn
    - level
    argTypes:
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: pfn_to_pde_idx
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pfn_to_pde_idx(unsigned long pfn, unsigned int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:43,1
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:45,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:45,1
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:49,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:51,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - l1_mfn
    - dfn
    - level
    - free
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: clear_iommu_pte_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - pfn_to_pde_idx
    - unmap_domain_page
    - map_domain_page
    - pt_update_contig_markers
    - write_atomic
    - _mfn
    linkageType: ''
    returnType: union amd_iommu_pte
    signature: "union amd_iommu_pte clear_iommu_pte_present(unsigned long l1_mfn,\n
      \                                                  unsigned long dfn,\n                                                   unsigned
      int level,\n                                                   bool *free)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:77,1
    - Dst: raw::raw
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - pte
    - next_mfn
    - next_level
    - iw
    - ir
    argTypes:
    - union amd_iommu_pte*
    - unsigned long
    - unsigned int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 78
    functionName: set_iommu_pde_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - raw::raw
    - write_atomic
    linkageType: ''
    returnType: void
    signature: "void set_iommu_pde_present(union amd_iommu_pte *pte,\n                                  unsigned
      long next_mfn,\n                                  unsigned int next_level,\n
      \                                 bool iw, bool ir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:89,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:89,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:90,1
    - Dst: set_iommu_pde_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:97,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:98,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:99,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 7
    argNames:
    - pt_mfn
    - dfn
    - next_mfn
    - level
    - iw
    - ir
    - contig
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned int
    - bool
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 111
    functionName: set_iommu_pte_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - pfn_to_pde_idx
    - unmap_domain_page
    - pt_update_contig_markers
    - map_domain_page
    - _mfn
    - set_iommu_pde_present
    linkageType: ''
    returnType: union amd_iommu_pte
    signature: "union amd_iommu_pte set_iommu_pte_present(unsigned long pt_mfn,\n
      \                                                unsigned long dfn,\n                                                 unsigned
      long next_mfn,\n                                                 unsigned int
      level,\n                                                 bool iw, bool ir,\n
      \                                                bool *contig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:123,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:123,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:124,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:128,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:132,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:136,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:137,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:140,1
    - Dst: ffs
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:140,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:142,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - pt_mfn
    - dfn
    - next_mfn
    - nr_ptes
    - pde_level
    - iw
    - ir
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned int
    - unsigned int
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 155
    functionName: set_iommu_ptes_present
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - pfn_to_pde_idx
    - unmap_domain_page
    - map_domain_page
    - _mfn
    - ASSERT
    - ffs
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void set_iommu_ptes_present(unsigned long pt_mfn,\n                                   unsigned
      long dfn,\n                                   unsigned long next_mfn,\n                                   unsigned
      int nr_ptes,\n                                   unsigned int pde_level,\n                                   bool
      iw, bool ir)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:181,1
    - Dst: cmpxchg16b
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:187,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:195,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:210,1
    - Dst: paddr_to_pfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:213,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - dte
    - root_ptr
    - domain_id
    - paging_mode
    - flags
    argTypes:
    - struct amd_iommu_dte*
    - uint64_t
    - uint16_t
    - uint8_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 222
    functionName: amd_iommu_set_root_page_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 1
    functionsReached:
    - printk
    - smp_wmb
    - cmpxchg16b
    - paddr_to_pfn
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_set_root_page_table(struct amd_iommu_dte *dte,\n                                  uint64_t
      root_ptr, uint16_t domain_id,\n                                  uint8_t paging_mode,
      unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:230,1
    - Dst: amd_iommu_intremap_table_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:231,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - dte
    - ptr
    - iommu
    - valid
    argTypes:
    - struct amd_iommu_dte*
    - void*
    - struct amd_iommu*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 244
    functionName: amd_iommu_set_intremap_table
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 1
    functionsReached:
    - smp_wmb
    - virt_to_maddr
    - amd_iommu_intremap_table_order
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_set_intremap_table(\n    struct amd_iommu_dte *dte,
      const void *ptr,\n    const struct amd_iommu *iommu, bool valid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MASK_EXTR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dte
    - ivrs_dev
    argTypes:
    - struct amd_iommu_dte*
    - struct ivrs_mappings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 261
    functionName: iommu_dte_add_device_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - MASK_EXTR
    linkageType: ''
    returnType: void
    signature: "void iommu_dte_add_device_entry(struct amd_iommu_dte *dte,\n                                       const
      struct ivrs_mappings *ivrs_dev)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:275,1
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:282,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:293,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:293,1
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:299,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:299,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:300,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:314,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:317,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:318,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:322,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:322,1
    - Dst: set_iommu_ptes_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:324,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:326,1
    - Dst: set_iommu_pde_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:327,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:329,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:330,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:335,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:343,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:349,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:352,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:353,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:356,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:356,1
    - Dst: set_iommu_pde_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:357,1
    - Dst: pt_update_contig_markers
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:359,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:360,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:365,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 6
    argNames:
    - d
    - dfn
    - target
    - pt_mfn
    - flush_flags
    - map
    argTypes:
    - struct domain*
    - unsigned long
    - unsigned int
    - unsigned long*
    - unsigned int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 377
    functionName: iommu_pde_from_dfn
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - pfn_to_pde_idx
    - unmap_domain_page
    - page_to_mfn
    - dom_iommu
    - map_domain_page
    - pt_update_contig_markers
    - mfn_x
    - _mfn
    - iommu_alloc_pgtable
    - smp_wmb
    - set_iommu_pde_present
    - set_iommu_ptes_present
    - AMD_IOMMU_ERROR
    - ASSERT_UNREACHABLE
    linkageType: ''
    returnType: int
    signature: "int iommu_pde_from_dfn(struct domain *d, unsigned long dfn,\n                              unsigned
      int target, unsigned long *pt_mfn,\n                              unsigned int
      *flush_flags, bool map)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:383,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:389,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:390,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:390,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:393,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:396,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - hd
    - mfn
    - level
    argTypes:
    - struct domain_iommu*
    - mfn_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 379
    functionDepth: 5
    functionLinenumber: 379
    functionLinenumberEnd: 397
    functionName: queue_free_pt
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 4
    functionsReached:
    - queue_free_pt
    - unmap_domain_page
    - map_domain_page
    - mfn_to_page
    - _mfn
    - iommu_queue_free_pgtable
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void queue_free_pt(struct domain_iommu *hd, mfn_t mfn, unsigned int
      level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:403,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:404,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:410,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:410,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:413,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:423,1
    - Dst: amd_iommu_alloc_root
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:427,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:430,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:431,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:432,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:433,1
    - Dst: iommu_pde_from_dfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:437,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:437,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:440,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:441,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:442,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:443,1
    - Dst: set_iommu_pte_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:448,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:448,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:448,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:452,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:454,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:454,1
    - Dst: iommu_pde_from_dfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:457,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:457,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:459,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:460,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:462,1
    - Dst: set_iommu_pte_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:463,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:463,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:467,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:468,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:471,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:478,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:479,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:479,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - d
    - dfn
    - mfn
    - flags
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 399
    functionDepth: 6
    functionLinenumber: 399
    functionLinenumberEnd: 483
    functionName: amd_iommu_map_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - mfn_to_page
    - spin_lock
    - IOMMUF_order
    - set_iommu_pte_present
    - queue_free_pt
    - BUG
    - BUG_ON
    - dfn_x
    - domain_crash
    - AMD_IOMMU_ERROR
    - spin_unlock
    - dom_iommu
    - mfn_x
    - amd_iommu_alloc_root
    - _mfn
    - ASSERT
    - perfc_incr
    - iommu_pde_from_dfn
    - iommu_queue_free_pgtable
    - unlikely
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_map_page(\n    struct domain *d, dfn_t dfn, mfn_t mfn,
      unsigned int flags,\n    unsigned int *flush_flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:489,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:497,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:499,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:503,1
    - Dst: iommu_pde_from_dfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:507,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:507,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:509,1
    - Dst: AMD_IOMMU_ERROR
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:510,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:511,1
    - Dst: domain_crash
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:512,1
    - Dst: clear_iommu_pte_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:521,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:521,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:523,1
    - Dst: mfn_to_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:525,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:525,1
    - Dst: iommu_pde_from_dfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:527,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:527,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:529,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:530,1
    - Dst: clear_iommu_pte_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:532,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:532,1
    - Dst: iommu_queue_free_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:534,1
    - Dst: perfc_incr
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:535,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:539,1
    - Dst: queue_free_pt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:546,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:546,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - d
    - dfn
    - order
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 550
    functionName: amd_iommu_unmap_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - perfc_incr
    - iommu_pde_from_dfn
    - spin_unlock
    - dom_iommu
    - unlikely
    - BUG
    - queue_free_pt
    - mfn_to_page
    - _mfn
    - BUG_ON
    - ASSERT
    - spin_lock
    - dfn_x
    - iommu_queue_free_pgtable
    - clear_iommu_pte_present
    - domain_crash
    - AMD_IOMMU_ERROR
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_unmap_page(\n    struct domain *d, dfn_t dfn, unsigned
      int order, unsigned int *flush_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:561,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:561,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:565,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:567,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:568,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:568,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:568,1
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:572,1
    - Dst: pfn_to_pde_idx
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:573,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:573,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:576,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:578,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:587,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - iommu
    - dev_id
    - dfn
    argTypes:
    - struct amd_iommu*
    - unsigned int
    - dfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 594
    functionName: amd_iommu_print_entries
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - pfn_to_pde_idx
    - unmap_domain_page
    - map_domain_page
    - mfn_x
    - _mfn
    - PCI_SBDF
    - dfn_x
    - printk
    linkageType: ''
    returnType: void
    signature: "void amd_iommu_print_entries(const struct amd_iommu *iommu, unsigned
      int dev_id,\n                             dfn_t dfn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dfn
    - page_count
    - order
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 604
    functionName: flush_count
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long flush_count(unsigned long dfn, unsigned long page_count,\n
      \                                unsigned int order)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:610,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:614,1
    - Dst: dfn_eq
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:614,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:615,1
    - Dst: amd_iommu_flush_all_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:625,1
    - Dst: amd_iommu_flush_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:638,1
    - Dst: flush_count
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:639,1
    - Dst: amd_iommu_flush_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:640,1
    - Dst: flush_count
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:641,1
    - Dst: amd_iommu_flush_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:642,1
    - Dst: amd_iommu_flush_all_pages
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:644,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 606
    functionDepth: 7
    functionLinenumber: 606
    functionLinenumberEnd: 647
    functionName: amd_iommu_flush_iotlb_pages
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - flush_count
    - amd_iommu_flush_pages
    - ASSERT
    - amd_iommu_flush_all_pages
    - dfn_x
    - dfn_eq
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_flush_iotlb_pages(\n    struct domain *d, dfn_t dfn,
      unsigned long page_count,\n    unsigned int flush_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - d
    - map
    - flag
    argTypes:
    - struct domain*
    - struct ivrs_unity_map*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 672
    functionName: amd_iommu_reserve_domain_unity_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 2
    functionsReached:
    - iommu_identity_mapping
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_reserve_domain_unity_map(struct domain *d,\n                                       const
      struct ivrs_unity_map *map,\n                                       unsigned
      int flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_identity_mapping
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - d
    - map
    argTypes:
    - struct domain*
    - struct ivrs_unity_map*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 692
    functionName: amd_iommu_reserve_domain_unity_unmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 3
    functionsReached:
    - iommu_identity_mapping
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_reserve_domain_unity_unmap(struct domain *d,\n                                         const
      struct ivrs_unity_map *map)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:698,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:704,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:715,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:716,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:717,1
    - Dst: find_iommu_for_device
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:720,1
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:725,1
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:733,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:733,1
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:745,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:745,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:746,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:747,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:748,1
    - Dst: func
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:757,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:757,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:757,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:759,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 2
    argNames:
    - func
    - ctxt
    argTypes:
    - iommu_grdm_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 768
    functionName: amd_iommu_get_reserved_device_memory
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - pcidevs_lock
    - unlikely
    - PFN_UP
    - PCI_SBDF
    - find_iommu_for_device
    - pcidevs_unlock
    - pci_get_pdev
    - PFN_DOWN
    - get_ivrs_mappings
    - func
    linkageType: ''
    returnType: int
    signature: "int amd_iommu_get_reserved_device_memory(\n    iommu_grdm_t *func,
      void *ctxt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:773,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:790,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:799,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:800,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:801,1
    - Dst: set_iommu_pde_present
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:809,1
    - Dst: mfn_x
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:809,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:809,1
    - Dst: map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:814,1
    - Dst: _mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:814,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:815,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - this
    - level
    - pgs
    argTypes:
    - union amd_iommu_pte*
    - unsigned int
    - struct page_info*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 821
    functionName: fill_qpt
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 3
    functionsReached:
    - unmap_domain_page
    - dom_iommu
    - page_to_mfn
    - map_domain_page
    - mfn_x
    - _mfn
    - iommu_alloc_pgtable
    - fill_qpt
    - set_iommu_pde_present
    - __map_domain_page
    linkageType: ''
    returnType: int
    signature: "int fill_qpt(union amd_iommu_pte *this, unsigned int level,\n                    struct
      page_info *pgs[IOMMU_MAX_PT_LEVELS])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:825,1
    - Dst: get_dma_requestor_id
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:827,1
    - Dst: get_ivrs_mappings
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:828,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:831,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:831,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:832,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:833,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:833,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:838,1
    - Dst: clear_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:842,1
    - Dst: iommu_alloc_pgtable
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:846,1
    - Dst: amd_iommu_reserve_domain_unity_map
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:853,1
    - Dst: iommu_identity_map_teardown
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:857,1
    - Dst: AMD_IOMMU_WARN
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:861,1
    - Dst: __map_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:867,1
    - Dst: fill_qpt
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:868,1
    - Dst: unmap_domain_page
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:869,1
    - Dst: page_to_mfn
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:871,1
    - Dst: page_list_move
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:874,1
    - Dst: amd_iommu_quarantine_teardown
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:877,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - pdev
    - scratch_page
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 823
    functionDepth: 5
    functionLinenumber: 823
    functionLinenumberEnd: 880
    functionName: amd_iommu_quarantine_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 0
    functionsReached:
    - AMD_IOMMU_WARN
    - unmap_domain_page
    - dom_iommu
    - page_to_mfn
    - clear_domain_page
    - __map_domain_page
    - get_dma_requestor_id
    - iommu_alloc_pgtable
    - amd_iommu_reserve_domain_unity_map
    - iommu_identity_map_teardown
    - fill_qpt
    - ASSERT
    - page_list_move
    - page_list_empty
    - get_ivrs_mappings
    - amd_iommu_quarantine_teardown
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: int amd_iommu_quarantine_init(struct pci_dev *pdev, bool scratch_page)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:884,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:886,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:886,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:891,1
    - Dst: page_list_empty
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:891,1
    - Dst: page_list_move
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:892,1
    - Dst: iommu_free_pgtables
      Src: /src/xen/xen/drivers/passthrough/amd/iommu_map.c:893,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 882
    functionDepth: 4
    functionLinenumber: 882
    functionLinenumberEnd: 896
    functionName: amd_iommu_quarantine_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/amd/iommu_map.c
    functionUses: 2
    functionsReached:
    - dom_iommu
    - iommu_free_pgtables
    - ASSERT
    - page_list_move
    - page_list_empty
    - pcidevs_locked
    linkageType: ''
    returnType: void
    signature: void amd_iommu_quarantine_teardown(struct pci_dev *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: guest_physmap_add_entry
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:49,1
    - Dst: _gfn
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:49,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:49,1
    - Dst: IOMMUF_order
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - d
    - dfn
    - mfn
    - flags
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - mfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 51
    functionName: __must_check::arm_iommu_map_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c
    functionUses: 0
    functionsReached:
    - _gfn
    - IOMMUF_order
    - dfn_x
    - guest_physmap_add_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check arm_iommu_map_page(struct domain *d, dfn_t dfn, mfn_t
      mfn,\n                                    unsigned int flags,\n                                    unsigned
      int *flush_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: guest_physmap_remove_page
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:58,1
    - Dst: _gfn
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:58,1
    - Dst: dfn_x
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - dfn
    - order
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: __must_check::arm_iommu_unmap_page
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu_helpers.c
    functionUses: 0
    functionsReached:
    - guest_physmap_remove_page
    - _gfn
    - dfn_x
    linkageType: ''
    returnType: int
    signature: "int __must_check arm_iommu_unmap_page(struct domain *d, dfn_t dfn,\n
      \                                     unsigned int order,\n                                      unsigned
      int *flush_flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:34,1
    - Dst: xzalloc_flex_struct
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:49,1
    - Dst: dev_iommu_fwspec_set
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dev
    - iommu_dev
    argTypes:
    - struct device*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: iommu_fwspec_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c
    functionUses: 1
    functionsReached:
    - dev_iommu_fwspec_set
    - dev_iommu_fwspec_get
    - xzalloc_flex_struct
    linkageType: ''
    returnType: int
    signature: int iommu_fwspec_init(struct device *dev, struct device *iommu_dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:61,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:63,1
    - Dst: dev_iommu_fwspec_set
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: iommu_fwspec_free
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c
    functionUses: 3
    functionsReached:
    - dev_iommu_fwspec_set
    - dev_iommu_fwspec_get
    - xfree
    linkageType: ''
    returnType: void
    signature: void iommu_fwspec_free(struct device *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:70,1
    - Dst: xrealloc_flex_struct
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:76,1
    - Dst: dev_iommu_fwspec_set
      Src: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dev
    - ids
    - num_ids
    argTypes:
    - struct device*
    - uint32_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: iommu_fwspec_add_ids
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu_fwspec.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_set
    - dev_iommu_fwspec_get
    - xrealloc_flex_struct
    linkageType: ''
    returnType: int
    signature: "int iommu_fwspec_add_ids(struct device *dev, const uint32_t *ids,\n
      \                        unsigned int num_ids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: iommu_get_ops
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: struct iommu_ops
    signature: struct iommu_ops *iommu_get_ops(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:40,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ops
    argTypes:
    - struct iommu_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 49
    functionName: iommu_set_ops
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - printk
    linkageType: ''
    returnType: void
    signature: void iommu_set_ops(const struct iommu_ops *ops)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:59,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:69,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:69,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:75,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:89,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:99,1
    - Dst: list_for_each_entry_safe
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:103,1
    - Dst: device_init
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:105,1
    - Dst: list_del_init
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 119
    functionName: iommu_hardware_setup
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 1
    functionsReached:
    - list_del_init
    - device_init
    - ASSERT
    - list_for_each_entry_safe
    - list_add
    - list_empty
    linkageType: ''
    returnType: int
    signature: int iommu_hardware_setup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: device_init
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:59,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:69,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:69,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: dt_for_each_device_node
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 6
    functionsReached:
    - ASSERT
    - device_init
    - list_empty
    - list_add
    linkageType: ''
    returnType: void
    signature: void dt_for_each_device_node(dt_host, np)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: __hwdom_init::arch_iommu_check_autotranslated_hwdom
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void __hwdom_init arch_iommu_check_autotranslated_hwdom(struct domain
      *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_dt_domain_init
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: arch_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 1
    functionsReached:
    - iommu_dt_domain_init
    linkageType: ''
    returnType: int
    signature: int arch_iommu_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: arch_iommu_domain_destroy
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arch_iommu_domain_destroy(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:140,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: __hwdom_init::arch_iommu_hwdom_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: arch_iommu_use_permitted
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arch_iommu_use_permitted(const struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_add_dt_pci_sideband_ids
      Src: /src/xen/xen/drivers/passthrough/arm/iommu.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct pci_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: iommu_add_pci_sideband_ids
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/iommu.c
    functionUses: 0
    functionsReached:
    - iommu_add_dt_pci_sideband_ids
    linkageType: ''
    returnType: int
    signature: int iommu_add_pci_sideband_ids(struct pci_dev *pdev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - np
    - ','
    - pname
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: of_property_read_u32
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: of_property_read_u32(np, pname, out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:93,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - pdev
    - type
    - num
    argTypes:
    - struct platform_device*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 77
    functionDepth: 7
    functionLinenumber: 77
    functionLinenumberEnd: 110
    functionName: platform_get_resource
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - platform_get_irq
    linkageType: ''
    returnType: struct resource
    signature: "struct resource *platform_get_resource(struct platform_device *pdev,\n\t\t\t\t\t
      \     unsigned int type,\n\t\t\t\t\t      unsigned int num)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - irq
    - ','
    - func
    - ','
    - flags
    - ','
    - name
    - ','
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: request_irq
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: request_irq(irq, func, flags, name, dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dev
    - ','
    - lvl
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: dev_print
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_print(dev, lvl, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dev
    - ','
    - lvl
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: dev_print
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_print(dev, lvl, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: dev_dbg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_dbg(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: dev_notice
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_notice(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: dev_warn
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_warn(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: dev_err
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: dev_err_ratelimited
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err_ratelimited(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: dev_name
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_name(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: kmalloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmalloc(size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: kzalloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kzalloc(size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - size
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: devm_kzalloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: devm_kzalloc(dev, size, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - size
    - ','
    - n
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: kmalloc_array
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kmalloc_array(size, n, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dev
    - ','
    - n
    - ','
    - size
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: devm_kcalloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: devm_kcalloc(dev, n, size, flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:164,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:165,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:168,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:170,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dev
    - res
    argTypes:
    - struct device*
    - struct resource*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: devm_ioremap_resource
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - ioremap_nocache
    - ERR_PTR
    linkageType: ''
    returnType: void
    signature: "void *devm_ioremap_resource(struct device *dev,\n\t\t\t\t\t   struct
      resource *res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: report_iommu_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: report_iommu_fault(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: dev_archdata
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_archdata(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: dev_iommu_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_iommu_domain(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: dev_iommu_group
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_iommu_group(dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:247,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:250,1
    - Dst: atomic_set
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: iommu_group_alloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - atomic_set
    - xzalloc
    - ERR_PTR
    linkageType: ''
    returnType: struct iommu_group
    signature: struct iommu_group *iommu_group_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atomic_dec_and_test
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:259,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct iommu_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    functionName: iommu_group_put
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - atomic_dec_and_test
    - xfree
    linkageType: ''
    returnType: void
    signature: void iommu_group_put(struct iommu_group *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - group
    - cfg
    argTypes:
    - struct iommu_group*
    - struct arm_smmu_master_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: iommu_group_set_iommudata
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: "void iommu_group_set_iommudata(struct iommu_group *group,\n                                      struct
      arm_smmu_master_cfg *cfg,\n                                      void (*releasefn)(void
      *data))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_group
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:276,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - group
    - dev
    argTypes:
    - struct iommu_group*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: iommu_group_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - atomic_inc
    - dev_iommu_group
    linkageType: ''
    returnType: int
    signature: "int iommu_group_add_device(struct iommu_group *group,\n\t\t\t\t  struct
      device *dev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_group
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:285,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: iommu_group_get
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - atomic_inc
    - dev_iommu_group
    linkageType: ''
    returnType: struct iommu_group
    signature: struct iommu_group *iommu_group_get(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - group
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: iommu_group_get_iommudata
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: iommu_group_get_iommudata(group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: ARM_SMMU_GR0
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR0(smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: ARM_SMMU_GR1
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR1(smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: ARM_SMMU_GR0_NS
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR0_NS(smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: ARM_SMMU_GR0_SMR
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR0_SMR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: ARM_SMMU_GR0_S2CR
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR0_S2CR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: ARM_SMMU_GR1_CBAR
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR1_CBAR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: ARM_SMMU_GR1_CBA2R
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_GR1_CBA2R(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - smmu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    functionName: ARM_SMMU_CB_BASE
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_CB_BASE(smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - smmu
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: ARM_SMMU_CB
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_CB(smmu, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: MAIR_ATTR_SHIFT
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAIR_ATTR_SHIFT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cfg
    - ','
    - i
    - ','
    - idx
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: for_each_cfg_sme
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: for_each_cfg_sme(cfg, i, idx, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cfg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 677
    functionName: ARM_SMMU_CB_ASID
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_CB_ASID(cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cfg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: ARM_SMMU_CB_VMID
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARM_SMMU_CB_VMID(cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:708,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct arm_smmu_master_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 711
    functionName: arm_smmu_get_fwspec
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    - container_of
    linkageType: ''
    returnType: struct iommu_fwspec
    signature: 'struct iommu_fwspec *

      arm_smmu_get_fwspec(struct arm_smmu_master_cfg *cfg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: of_property_read_bool
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:718,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 725
    functionName: parse_driver_options
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_notice
    - of_property_read_bool
    linkageType: ''
    returnType: void
    signature: void parse_driver_options(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 730
    functionName: dev_get_dev_node
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct device_node
    signature: struct device_node *dev_get_dev_node(struct device *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - smmu
    - dev
    argTypes:
    - struct arm_smmu_device*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 751
    functionName: find_smmu_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct arm_smmu_master
    signature: "struct arm_smmu_master *find_smmu_master(struct arm_smmu_device *smmu,\n\t\t\t\t\t\tstruct
      device *dev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iommu_group_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:757,1
    - Dst: iommu_group_get_iommudata
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:760,1
    - Dst: iommu_group_put
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 765
    functionName: find_smmu_master_cfg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - iommu_group_get_iommudata
    - iommu_group_get
    - iommu_group_put
    linkageType: ''
    returnType: struct arm_smmu_master_cfg
    signature: 'struct arm_smmu_master_cfg *

      find_smmu_master_cfg(struct device *dev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smmu::smmu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:772,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:776,1
    - Dst: struct arm_smmu_master::struct arm_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:776,1
    - Dst: rb_link_node
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:787,1
    - Dst: rb_insert_color
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - smmu
    - master
    argTypes:
    - struct arm_smmu_device*
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 790
    functionName: insert_smmu_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - struct arm_smmu_master::struct arm_smmu_master
    - rb_link_node
    - container_of
    - smmu::smmu
    - rb_insert_color
    linkageType: ''
    returnType: int
    signature: "int insert_smmu_master(struct arm_smmu_device *smmu,\n\t\t\t      struct
      arm_smmu_master *master)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_UNREACHABLE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:796,1
    - Dst: rb_erase
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - smmu
    - master
    argTypes:
    - struct arm_smmu_device*
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 792
    functionDepth: 4
    functionLinenumber: 792
    functionLinenumberEnd: 803
    functionName: remove_smmu_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - ASSERT_UNREACHABLE
    - rb_erase
    linkageType: ''
    returnType: int
    signature: "int remove_smmu_master(struct arm_smmu_device *smmu,\n\t\t\t      struct
      arm_smmu_master *master)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dev_get_dev_node
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:811,1
    - Dst: find_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:813,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:815,1
    - Dst: devm_kzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:820,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:825,1
    - Dst: dt_device_set_protected
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:828,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:834,1
    - Dst: insert_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:841,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - smmu
    - dev
    - fwspec
    argTypes:
    - struct arm_smmu_device*
    - struct device*
    - struct iommu_fwspec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 842
    functionName: arm_smmu_dt_add_device_legacy
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - insert_smmu_master
    - dev_get_dev_node
    - dt_device_set_protected
    - dev_is_pci
    - find_smmu_master
    - devm_kzalloc
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_dt_add_device_legacy(struct arm_smmu_device *smmu,\n\t\t\t\t\t
      struct device *dev,\n\t\t\t\t\t struct iommu_fwspec *fwspec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dev_get_dev_node
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:848,1
    - Dst: find_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:851,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:853,1
    - Dst: remove_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:859,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:863,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - smmu
    - dev
    argTypes:
    - struct arm_smmu_device*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 844
    functionDepth: 5
    functionLinenumber: 844
    functionLinenumberEnd: 869
    functionName: arm_smmu_dt_remove_device_legacy
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - dev_get_dev_node
    - dev_is_pci
    - find_smmu_master
    - kfree
    - remove_smmu_master
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_dt_remove_device_legacy(struct arm_smmu_device *smmu,\n\t\t\t\t\t
      struct device *dev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iommu_fwspec_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:878,1
    - Dst: iommu_fwspec_add_ids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:882,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:888,1
    - Dst: arm_smmu_dt_add_device_legacy
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - smmu
    - dev
    - masterspec
    argTypes:
    - struct arm_smmu_device*
    - struct device*
    - struct of_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 892
    functionName: register_smmu_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_dt_add_device_legacy
    - dev_iommu_fwspec_get
    - iommu_fwspec_add_ids
    - iommu_fwspec_init
    linkageType: ''
    returnType: int
    signature: "int register_smmu_master(struct arm_smmu_device *smmu,\n\t\t\t\tstruct
      device *dev,\n\t\t\t\tstruct of_phandle_args *masterspec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:909,1
    - Dst: find_smmu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:913,1
    - Dst: arm_smmu_dt_remove_device_legacy
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - devfn
    - dev
    argTypes:
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 6
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: arm_smmu_dt_remove_device_generic
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - find_smmu
    - dev_iommu_fwspec_get
    - arm_smmu_dt_remove_device_legacy
    linkageType: ''
    returnType: int
    signature: int arm_smmu_dt_remove_device_generic(u8 devfn, struct device *dev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:927,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:929,1
    - Dst: iommu_add_pci_sideband_ids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:936,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:938,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:944,1
    - Dst: find_smmu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:948,1
    - Dst: arm_smmu_dt_add_device_legacy
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:952,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:957,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:959,1
    - Dst: arm_smmu_assign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - devfn
    - dev
    argTypes:
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 920
    functionDepth: 5
    functionLinenumber: 920
    functionLinenumberEnd: 971
    functionName: arm_smmu_dt_add_device_generic
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_dt_add_device_legacy
    - iommu_add_pci_sideband_ids
    - dev_is_pci
    - arm_smmu_assign_dev
    - find_smmu
    - dev_iommu_fwspec_get
    - dev_to_pci
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int arm_smmu_dt_add_device_generic(u8 devfn, struct device *dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: of_property_read_u32
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:983,1
    - Dst: iommu_fwspec_add_ids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dev
    - spec
    argTypes:
    - struct device*
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 973
    functionDepth: 2
    functionLinenumber: 973
    functionLinenumberEnd: 987
    functionName: arm_smmu_dt_xlate_generic
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - of_property_read_u32
    - iommu_fwspec_add_ids
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_dt_xlate_generic(struct device *dev,\n\t\t\t\t    const
      struct dt_phandle_args *spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:994,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:995,1
    - Dst: find_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:996,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1003
    functionName: find_smmu_for_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - find_smmu_master
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct arm_smmu_device
    signature: struct arm_smmu_device *find_smmu_for_device(struct device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_next_zero_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1010,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - map
    - start
    - end
    argTypes:
    - unsigned long*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1016
    functionName: __arm_smmu_alloc_bitmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - test_and_set_bit
    - find_next_zero_bit
    linkageType: ''
    returnType: int
    signature: int __arm_smmu_alloc_bitmap(unsigned long *map, int start, int end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - idx
    argTypes:
    - unsigned long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1021
    functionName: __arm_smmu_free_bitmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void __arm_smmu_free_bitmap(unsigned long *map, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1027,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1029,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1030,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1032,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1034,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1040
    functionName: arm_smmu_tlb_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - writel_relaxed
    - readl_relaxed
    - dev_err_ratelimited
    - udelay
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: void
    signature: void arm_smmu_tlb_sync(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1046,1
    - Dst: ARM_SMMU_CB_BASE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1050,1
    - Dst: ARM_SMMU_CB
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1050,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1051,1
    - Dst: ARM_SMMU_CB_ASID
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1051,1
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1054,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1055,1
    - Dst: ARM_SMMU_CB_VMID
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1055,1
    - Dst: arm_smmu_tlb_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - smmu_domain
    argTypes:
    - struct arm_smmu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1060
    functionName: arm_smmu_tlb_inv_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_tlb_sync
    - writel_relaxed
    - ARM_SMMU_CB_ASID
    - ARM_SMMU_CB
    - ARM_SMMU_CB_BASE
    - ARM_SMMU_CB_VMID
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: void
    signature: void arm_smmu_tlb_inv_context(struct arm_smmu_domain *smmu_domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_CB_BASE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1072,1
    - Dst: ARM_SMMU_CB
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1072,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1073,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1078,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1080,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1083,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1087,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1093
    functionName: arm_smmu_context_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - writel
    - readl_relaxed
    - dev_err_ratelimited
    - ARM_SMMU_CB
    - ARM_SMMU_CB_BASE
    linkageType: ''
    returnType: irqreturn_t
    signature: irqreturn_t arm_smmu_context_fault(int irq, void *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1099,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1101,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1102,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1103,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1104,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1109,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1111,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1117
    functionName: arm_smmu_global_fault
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    - writel
    - dev_err_ratelimited
    - ARM_SMMU_GR0_NS
    linkageType: ''
    returnType: irqreturn_t
    signature: irqreturn_t arm_smmu_global_fault(int irq, void *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_context_fault
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1123
    functionName: arm_smmu_context_fault_xen
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_context_fault
    linkageType: ''
    returnType: void
    signature: void arm_smmu_context_fault_xen(int irq, void *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_global_fault
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1127
    functionDepth: 2
    functionLinenumber: 1127
    functionLinenumberEnd: 1130
    functionName: arm_smmu_global_fault_xen
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_global_fault
    linkageType: ''
    returnType: void
    signature: void arm_smmu_global_fault_xen(int irq, void *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dsb
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1143,1
    - Dst: dma_map_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1152,1
    - Dst: virt_to_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - smmu
    - addr
    - size
    argTypes:
    - struct arm_smmu_device*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1155
    functionName: arm_smmu_flush_pgtable
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dma_map_page
    - dsb
    - virt_to_page
    linkageType: ''
    returnType: void
    signature: "void arm_smmu_flush_pgtable(struct arm_smmu_device *smmu, void *addr,\n\t\t\t\t
      \  size_t size)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR1
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1168,1
    - Dst: ARM_SMMU_CB_BASE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1170,1
    - Dst: ARM_SMMU_CB
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1170,1
    - Dst: ARM_SMMU_CB_VMID
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1185,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1187,1
    - Dst: ARM_SMMU_GR1_CBAR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1187,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1196,1
    - Dst: ARM_SMMU_GR1_CBA2R
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1197,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1245,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1250,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1251,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1253,1
    - Dst: ARM_SMMU_CB_ASID
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1259,1
    - Dst: writeq_relaxed_non_atomic
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1262,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1319,1
    - Dst: MAIR_ATTR_SHIFT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1323,1
    - Dst: MAIR_ATTR_SHIFT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1324,1
    - Dst: MAIR_ATTR_SHIFT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1325,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1326,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1340,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 114
    argCount: 1
    argNames:
    - smmu_domain
    argTypes:
    - struct arm_smmu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1341
    functionName: arm_smmu_init_context_bank
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - ARM_SMMU_GR1_CBA2R
    - dev_notice
    - ARM_SMMU_GR1
    - ARM_SMMU_GR1_CBAR
    - MAIR_ATTR_SHIFT
    - writel_relaxed
    - ASSERT
    - ARM_SMMU_CB_ASID
    - ARM_SMMU_CB
    - ARM_SMMU_CB_BASE
    - ARM_SMMU_CB_VMID
    - writeq_relaxed_non_atomic
    - page_to_maddr
    linkageType: ''
    returnType: void
    signature: void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1351,1
    - Dst: __arm_smmu_alloc_bitmap
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1397,1
    - Dst: IS_ERR_VALUE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1399,1
    - Dst: atomic_inc_return
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1404,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1410,1
    - Dst: arm_smmu_init_context_bank
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1411,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1412,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1415,1
    - Dst: IS_ERR_VALUE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1417,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1418,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1426,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - domain
    - smmu
    argTypes:
    - struct iommu_domain*
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1343
    functionDepth: 2
    functionLinenumber: 1343
    functionLinenumberEnd: 1428
    functionName: arm_smmu_init_domain_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - request_irq
    - spin_lock_irqsave
    - atomic_inc_return
    - arm_smmu_init_context_bank
    - spin_unlock_irqrestore
    - __arm_smmu_alloc_bitmap
    - ACCESS_ONCE
    - IS_ERR_VALUE
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_init_domain_context(struct iommu_domain *domain,\n\t\t\t\t\tstruct
      arm_smmu_device *smmu)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_CB_BASE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1442,1
    - Dst: ARM_SMMU_CB
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1442,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1443,1
    - Dst: arm_smmu_tlb_inv_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1444,1
    - Dst: free_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1448,1
    - Dst: __arm_smmu_free_bitmap
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1452
    functionName: arm_smmu_destroy_domain_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - __arm_smmu_free_bitmap
    - arm_smmu_tlb_inv_context
    - free_irq
    - writel_relaxed
    - ARM_SMMU_CB
    - ARM_SMMU_CB_BASE
    linkageType: ''
    returnType: void
    signature: void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1463,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1470
    functionName: arm_smmu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - kzalloc
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int arm_smmu_domain_init(struct iommu_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pmd_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1475,1
    - Dst: __free_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pmd
    argTypes:
    - pmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1478
    functionName: arm_smmu_free_ptes
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - pmd_pgtable
    - __free_page
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_ptes(pmd_t *pmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pmd_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1483,1
    - Dst: pmd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1487,1
    - Dst: arm_smmu_free_ptes
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1490,1
    - Dst: pmd_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1494,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pud
    argTypes:
    - pud_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1495
    functionName: arm_smmu_free_pmds
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_free_ptes
    - pmd_free
    - pmd_offset
    - pmd_none
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_pmds(pud_t *pud)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pud_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1500,1
    - Dst: pud_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1504,1
    - Dst: arm_smmu_free_pmds
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1507,1
    - Dst: pud_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pgd
    argTypes:
    - pgd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1512
    functionName: arm_smmu_free_puds
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_free_pmds
    - pud_free
    - pud_none
    - pud_offset
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_puds(pgd_t *pgd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1527,1
    - Dst: arm_smmu_free_puds
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1529,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - smmu_domain
    argTypes:
    - struct arm_smmu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1514
    functionDepth: 3
    functionLinenumber: 1514
    functionLinenumberEnd: 1534
    functionName: arm_smmu_free_pgtables
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_free_puds
    - kfree
    - pgd_none
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_pgtables(struct arm_smmu_domain *smmu_domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_destroy_domain_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1545,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1547
    functionName: arm_smmu_domain_destroy
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_destroy_domain_context
    - kfree
    linkageType: ''
    returnType: void
    signature: void arm_smmu_domain_destroy(struct iommu_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1557,1
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1557,1
    - Dst: ARM_SMMU_GR0_SMR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - smmu
    - idx
    argTypes:
    - struct arm_smmu_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1558
    functionName: arm_smmu_write_smr
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - ARM_SMMU_GR0_SMR
    - writel_relaxed
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: void
    signature: void arm_smmu_write_smr(struct arm_smmu_device *smmu, int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1567,1
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1567,1
    - Dst: ARM_SMMU_GR0_S2CR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - smmu
    - idx
    argTypes:
    - struct arm_smmu_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1568
    functionName: arm_smmu_write_s2cr
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    - ARM_SMMU_GR0_S2CR
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: void
    signature: void arm_smmu_write_s2cr(struct arm_smmu_device *smmu, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_write_s2cr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1572,1
    - Dst: arm_smmu_write_smr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - smmu
    - idx
    argTypes:
    - struct arm_smmu_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1575
    functionName: arm_smmu_write_sme
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_write_s2cr
    - arm_smmu_write_smr
    linkageType: ''
    returnType: void
    signature: void arm_smmu_write_sme(struct arm_smmu_device *smmu, int idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - smmu
    - id
    - mask
    argTypes:
    - struct arm_smmu_device*
    - u16
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1577
    functionDepth: 0
    functionLinenumber: 1577
    functionLinenumberEnd: 1617
    functionName: arm_smmu_find_sme
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arm_smmu_find_sme(struct arm_smmu_device *smmu, u16 id, u16 mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - smmu
    - idx
    argTypes:
    - struct arm_smmu_device*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1629
    functionName: arm_smmu_free_sme
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arm_smmu_free_sme(struct arm_smmu_device *smmu, int idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_smmu_master_cfg
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1633,1
    - Dst: arm_smmu_get_fwspec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1637,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1639,1
    - Dst: for_each_cfg_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1641,1
    - Dst: arm_smmu_find_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1649,1
    - Dst: for_each_cfg_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1664,1
    - Dst: arm_smmu_write_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1665,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1668,1
    - Dst: arm_smmu_free_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1673,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1676,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1678
    functionName: arm_smmu_master_alloc_smes
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - arm_smmu_find_sme
    - arm_smmu_write_sme
    - arm_smmu_free_sme
    - find_smmu_master_cfg
    - for_each_cfg_sme
    - arm_smmu_get_fwspec
    - spin_lock
    linkageType: ''
    returnType: int
    signature: int arm_smmu_master_alloc_smes(struct device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_get_fwspec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1688,1
    - Dst: for_each_cfg_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1690,1
    - Dst: arm_smmu_write_s2cr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - smmu_domain
    - cfg
    argTypes:
    - struct arm_smmu_domain*
    - struct arm_smmu_master_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1700
    functionName: arm_smmu_domain_add_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_write_s2cr
    - for_each_cfg_sme
    - arm_smmu_get_fwspec
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,\n\t\t\t\t
      \     struct arm_smmu_master_cfg *cfg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_get_fwspec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1709,1
    - Dst: for_each_cfg_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1711,1
    - Dst: arm_smmu_write_s2cr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - smmu_domain
    - cfg
    argTypes:
    - struct arm_smmu_domain*
    - struct arm_smmu_master_cfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1702
    functionDepth: 2
    functionLinenumber: 1702
    functionLinenumberEnd: 1715
    functionName: arm_smmu_domain_remove_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_write_s2cr
    - for_each_cfg_sme
    - arm_smmu_get_fwspec
    linkageType: ''
    returnType: void
    signature: "void arm_smmu_domain_remove_master(\n\t\t\t\tconst struct arm_smmu_domain
      *smmu_domain,\n\t\t\t\tstruct arm_smmu_master_cfg *cfg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_smmu_for_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1724,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1726,1
    - Dst: dev_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1730,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1731,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1739,1
    - Dst: arm_smmu_init_domain_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1742,1
    - Dst: IS_ERR_VALUE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1743,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1750,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1752,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1752,1
    - Dst: find_smmu_master_cfg
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1757,1
    - Dst: arm_smmu_domain_add_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - domain
    - dev
    argTypes:
    - struct iommu_domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1717
    functionDepth: 3
    functionLinenumber: 1717
    functionLinenumberEnd: 1762
    functionName: arm_smmu_attach_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - arm_smmu_domain_add_master
    - arm_smmu_init_domain_context
    - find_smmu_master_cfg
    - dev_iommu_domain
    - find_smmu_for_device
    - ACCESS_ONCE
    - IS_ERR_VALUE
    - dev_name
    linkageType: ''
    returnType: int
    signature: int arm_smmu_attach_dev(struct iommu_domain *domain, struct device
      *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_smmu_master_cfg
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1767,1
    - Dst: arm_smmu_domain_remove_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - dev
    argTypes:
    - struct iommu_domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1764
    functionDepth: 3
    functionLinenumber: 1764
    functionLinenumberEnd: 1772
    functionName: arm_smmu_detach_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_domain_remove_master
    - find_smmu_master_cfg
    linkageType: ''
    returnType: void
    signature: void arm_smmu_detach_dev(struct iommu_domain *domain, struct device
      *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - end
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1783
    functionName: arm_smmu_pte_is_contiguous_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool arm_smmu_pte_is_contiguous_range(unsigned long addr,\n\t\t\t\t\t
      \    unsigned long end)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pmd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1792,1
    - Dst: alloc_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1794,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1799,1
    - Dst: page_address
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1799,1
    - Dst: pmd_populate
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1800,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1801,1
    - Dst: pmd_page_vaddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1832,1
    - Dst: pte_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1832,1
    - Dst: arm_smmu_pte_is_contiguous_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1861,1
    - Dst: pte_val
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1864,1
    - Dst: pte_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1868,1
    - Dst: pmd_page_vaddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1871,1
    - Dst: pte_val
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1873,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1876,1
    - Dst: pfn_pte
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1882,1
    - Dst: __pgprot
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1882,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1886,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 7
    argNames:
    - smmu
    - pmd
    - addr
    - end
    - pfn
    - prot
    - stage
    argTypes:
    - struct arm_smmu_device*
    - pmd_t*
    - unsigned long
    - unsigned long
    - unsigned long
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1785
    functionDepth: 2
    functionLinenumber: 1785
    functionLinenumberEnd: 1888
    functionName: arm_smmu_alloc_init_pte
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - pmd_populate
    - pmd_page_vaddr
    - pte_index
    - pmd_none
    - arm_smmu_flush_pgtable
    - page_address
    - __pgprot
    - arm_smmu_pte_is_contiguous_range
    - alloc_page
    - pfn_pte
    - pte_val
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_alloc_init_pte(struct arm_smmu_device *smmu, pmd_t *pmd,\n\t\t\t\t
      \  unsigned long addr, unsigned long end,\n\t\t\t\t   unsigned long pfn, int
      prot, int stage)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __phys_to_pfn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1896,1
    - Dst: pud_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1899,1
    - Dst: get_zeroed_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1900,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1904,1
    - Dst: pud_populate
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1905,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1906,1
    - Dst: pmd_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1908,1
    - Dst: pmd_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1911,1
    - Dst: pmd_addr_end
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1914,1
    - Dst: arm_smmu_alloc_init_pte
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1915,1
    - Dst: __phys_to_pfn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - smmu
    - pud
    - addr
    - end
    - phys
    - prot
    - stage
    argTypes:
    - struct arm_smmu_device*
    - pud_t*
    - unsigned long
    - unsigned long
    - phys_addr_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1922
    functionName: arm_smmu_alloc_init_pmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - pmd_offset
    - arm_smmu_alloc_init_pte
    - arm_smmu_flush_pgtable
    - __phys_to_pfn
    - pud_populate
    - pmd_index
    - pud_none
    - get_zeroed_page
    - pmd_addr_end
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_alloc_init_pmd(struct arm_smmu_device *smmu, pud_t *pud,\n\t\t\t\t
      \  unsigned long addr, unsigned long end,\n\t\t\t\t   phys_addr_t phys, int
      prot, int stage)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1933,1
    - Dst: get_zeroed_page
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1934,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1938,1
    - Dst: pgd_populate
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1939,1
    - Dst: arm_smmu_flush_pgtable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1940,1
    - Dst: pud_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1942,1
    - Dst: pud_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1945,1
    - Dst: pud_addr_end
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1948,1
    - Dst: arm_smmu_alloc_init_pmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - smmu
    - pgd
    - addr
    - end
    - phys
    - prot
    - stage
    argTypes:
    - struct arm_smmu_device*
    - pgd_t*
    - unsigned long
    - unsigned long
    - phys_addr_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1924
    functionDepth: 4
    functionLinenumber: 1924
    functionLinenumberEnd: 1955
    functionName: arm_smmu_alloc_init_pud
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - pud_index
    - pud_offset
    - arm_smmu_flush_pgtable
    - arm_smmu_alloc_init_pmd
    - pud_addr_end
    - pgd_none
    - pgd_populate
    - get_zeroed_page
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_alloc_init_pud(struct arm_smmu_device *smmu, pgd_t *pgd,\n\t\t\t\t
      \  unsigned long addr, unsigned long end,\n\t\t\t\t   phys_addr_t phys, int
      prot, int stage)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1991,1
    - Dst: pgd_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1992,1
    - Dst: pgd_addr_end
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1995,1
    - Dst: arm_smmu_alloc_init_pud
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:1997,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2007,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - smmu_domain
    - iova
    - paddr
    - size
    - prot
    argTypes:
    - struct arm_smmu_domain*
    - unsigned long
    - phys_addr_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1957
    functionDepth: 5
    functionLinenumber: 1957
    functionLinenumberEnd: 2010
    functionName: arm_smmu_handle_mapping
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_alloc_init_pud
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - pgd_index
    - pgd_addr_end
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_handle_mapping(struct arm_smmu_domain *smmu_domain,\n\t\t\t\t
      \  unsigned long iova, phys_addr_t paddr,\n\t\t\t\t   size_t size, int prot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_handle_mapping
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - domain
    - iova
    - paddr
    - size
    - prot
    argTypes:
    - struct iommu_domain*
    - unsigned long
    - phys_addr_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2012
    functionDepth: 6
    functionLinenumber: 2012
    functionLinenumberEnd: 2021
    functionName: arm_smmu_map
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_handle_mapping
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,\n\t\t\tphys_addr_t
      paddr, size_t size, int prot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_handle_mapping
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2029,1
    - Dst: arm_smmu_tlb_inv_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - domain
    - iova
    - size
    argTypes:
    - struct iommu_domain*
    - unsigned long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2023
    functionDepth: 6
    functionLinenumber: 2023
    functionLinenumberEnd: 2032
    functionName: arm_smmu_unmap
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_handle_mapping
    - arm_smmu_tlb_inv_context
    linkageType: ''
    returnType: size_t
    signature: "size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,\n\t\t\t
      \    size_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgd_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2048,1
    - Dst: pgd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2049,1
    - Dst: pud_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2052,1
    - Dst: pud_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2053,1
    - Dst: pmd_offset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2056,1
    - Dst: pmd_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2057,1
    - Dst: pmd_page_vaddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2060,1
    - Dst: pte_index
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2060,1
    - Dst: pte_none
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2061,1
    - Dst: __pfn_to_phys
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2064,1
    - Dst: pte_pfn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2064,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - domain
    - iova
    argTypes:
    - struct iommu_domain*
    - dma_addr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2065
    functionName: arm_smmu_iova_to_phys
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - pmd_page_vaddr
    - pte_index
    - pmd_none
    - pte_none
    - pmd_offset
    - pud_offset
    - pgd_index
    - __pfn_to_phys
    - pte_pfn
    - pgd_none
    - pud_none
    linkageType: ''
    returnType: phys_addr_t
    signature: "phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,\n\t\t\t\t\t
      dma_addr_t iova)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cap
    argTypes:
    - enum iommu_cap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2085
    functionName: arm_smmu_capable
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arm_smmu_capable(enum iommu_cap cap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_smmu_for_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2096,1
    - Dst: find_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2100,1
    - Dst: iommu_group_alloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2108,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2109,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2110,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2111,1
    - Dst: iommu_group_set_iommudata
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2114,1
    - Dst: iommu_group_add_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2115,1
    - Dst: iommu_group_put
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2116,1
    - Dst: arm_smmu_master_alloc_smes
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2088
    functionDepth: 4
    functionLinenumber: 2088
    functionLinenumberEnd: 2119
    functionName: arm_smmu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - IS_ERR
    - iommu_group_put
    - arm_smmu_master_alloc_smes
    - PTR_ERR
    - iommu_group_set_iommudata
    - find_smmu_master
    - find_smmu_for_device
    - iommu_group_add_device
    - iommu_group_alloc
    linkageType: ''
    returnType: int
    signature: int arm_smmu_add_device(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_group_remove_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2122
    functionDepth: 0
    functionLinenumber: 2122
    functionLinenumberEnd: 2125
    functionName: arm_smmu_remove_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - iommu_group_remove_device
    linkageType: ''
    returnType: void
    signature: void arm_smmu_remove_device(struct device *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - domain
    - attr
    - data
    argTypes:
    - struct iommu_domain*
    - enum iommu_attr
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2127
    functionDepth: 0
    functionLinenumber: 2127
    functionLinenumberEnd: 2139
    functionName: arm_smmu_domain_get_attr
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_domain_get_attr(struct iommu_domain *domain,\n\t\t\t\t
      \   enum iommu_attr attr, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - domain
    - attr
    - data
    argTypes:
    - struct iommu_domain*
    - enum iommu_attr
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2159
    functionName: arm_smmu_domain_set_attr
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_domain_set_attr(struct iommu_domain *domain,\n\t\t\t\t
      \   enum iommu_attr attr, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2183,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2189,1
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2189,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2190,1
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2190,1
    - Dst: arm_smmu_write_sme
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2197,1
    - Dst: ARM_SMMU_CB_BASE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2201,1
    - Dst: ARM_SMMU_CB
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2201,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2202,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2203,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2207,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2208,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2209,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2211,1
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2211,1
    - Dst: arm_smmu_tlb_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2231,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2232,1
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2181
    functionDepth: 3
    functionLinenumber: 2181
    functionLinenumberEnd: 2233
    functionName: arm_smmu_device_reset
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - writel
    - arm_smmu_write_sme
    - arm_smmu_tlb_sync
    - writel_relaxed
    - readl_relaxed
    - ARM_SMMU_GR0_NS
    - ARM_SMMU_CB_BASE
    - ARM_SMMU_CB
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: void
    signature: void arm_smmu_device_reset(struct arm_smmu_device *smmu)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2252
    functionName: arm_smmu_id_size_to_bits
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arm_smmu_id_size_to_bits(int size)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ARM_SMMU_GR0
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2257,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2261,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2262,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2265,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2268,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2281,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2286,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2291,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2296,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2302,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2314,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2325,1
    - Dst: ARM_SMMU_GR0_SMR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2325,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2326,1
    - Dst: ARM_SMMU_GR0_SMR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2326,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2330,1
    - Dst: ARM_SMMU_GR0_SMR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2330,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2331,1
    - Dst: ARM_SMMU_GR0_SMR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2331,1
    - Dst: devm_kcalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2335,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2340,1
    - Dst: kmalloc_array
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2345,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2352,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2355,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2363,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2371,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2374,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2378,1
    - Dst: arm_smmu_id_size_to_bits
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2379,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2380,1
    - Dst: p2m_restrict_ipa_bits
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2383,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2388,1
    - Dst: min
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2390,1
    - Dst: arm_smmu_id_size_to_bits
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2395,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2396,1
    - Dst: min
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2403,1
    - Dst: arm_smmu_id_size_to_bits
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2403,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2412,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2419,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2423,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2254
    functionDepth: 1
    functionLinenumber: 2254
    functionLinenumberEnd: 2427
    functionName: arm_smmu_device_cfg_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_id_size_to_bits
    - dev_err
    - kmalloc_array
    - dev_notice
    - dev_warn
    - spin_lock_init
    - writel_relaxed
    - readl_relaxed
    - min
    - min_t
    - ARM_SMMU_GR0_SMR
    - p2m_restrict_ipa_bits
    - devm_kcalloc
    - ARM_SMMU_GR0
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: devm_kzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2453,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2455,1
    - Dst: of_match_node
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2460,1
    - Dst: platform_get_resource
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2463,1
    - Dst: devm_ioremap_resource
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2464,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2465,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2466,1
    - Dst: resource_size
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2469,1
    - Dst: of_property_read_u32
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2471,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2473,1
    - Dst: platform_get_resource
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2479,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2486,1
    - Dst: devm_kzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2492,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2495,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2501,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2504,1
    - Dst: arm_smmu_device_cfg_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2511,1
    - Dst: of_parse_phandle_with_args
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2517,1
    - Dst: register_smmu_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2520,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2522,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2529,1
    - Dst: parse_driver_options
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2531,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2535,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2543,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2549,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2555,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2556,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2557,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2558,1
    - Dst: arm_smmu_device_reset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2560,1
    - Dst: free_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2565,1
    - Dst: rb_first
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2568,1
    - Dst: rb_next
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2568,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2570,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2571,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2575,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2576,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2577,1
    - Dst: kfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2578,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 103
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct platform_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2443
    functionDepth: 8
    functionLinenumber: 2443
    functionLinenumberEnd: 2581
    functionName: arm_smmu_device_dt_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - rb_next
    - rb_first
    - container_of
    - register_smmu_master
    - platform_get_resource
    - parse_driver_options
    - arm_smmu_device_reset
    - kfree
    - of_match_node
    - dev_err
    - spin_unlock
    - platform_get_irq
    - arm_smmu_device_cfg_probe
    - devm_ioremap_resource
    - devm_kzalloc
    - request_irq
    - of_parse_phandle_with_args
    - iounmap
    - IS_ERR
    - dev_notice
    - free_irq
    - resource_size
    - PTR_ERR
    - of_property_read_u32
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_dt_probe(struct platform_device *pdev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2591,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2592,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2595,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2599,1
    - Dst: rb_first
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2604,1
    - Dst: rb_next
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2604,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2606,1
    - Dst: of_node_put
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2607,1
    - Dst: bitmap_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2610,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2611,1
    - Dst: free_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2614,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2617,1
    - Dst: ARM_SMMU_GR0_NS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct platform_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2619
    functionName: arm_smmu_device_remove
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dev_err
    - spin_unlock
    - writel
    - container_of
    - free_irq
    - spin_lock
    - list_del
    - ARM_SMMU_GR0_NS
    - of_node_put
    - rb_next
    - bitmap_empty
    - list_for_each_entry
    - rb_first
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_remove(struct platform_device *pdev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: of_find_matching_node
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2640,1
    - Dst: of_node_put
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2644,1
    - Dst: platform_driver_register
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2646,1
    - Dst: iommu_present
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2651,1
    - Dst: bus_set_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2652,1
    - Dst: iommu_present
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2655,1
    - Dst: bus_set_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2656,1
    - Dst: iommu_present
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2660,1
    - Dst: bus_set_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2630
    functionDepth: 0
    functionLinenumber: 2630
    functionLinenumberEnd: 2665
    functionName: arm_smmu_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - of_find_matching_node
    - platform_driver_register
    - bus_set_iommu
    - of_node_put
    - iommu_present
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: platform_driver_unregister
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2667
    functionDepth: 0
    functionLinenumber: 2667
    functionLinenumberEnd: 2670
    functionName: arm_smmu_exit
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - platform_driver_unregister
    linkageType: ''
    returnType: void
    signature: void arm_smmu_exit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2696,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2699,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2703,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2704,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2710,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2710,1
    - Dst: arm_smmu_tlb_inv_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2712,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2717
    functionName: __must_check::arm_smmu_iotlb_flush
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - dom_iommu
    - arm_smmu_tlb_inv_context
    - ASSERT
    - spin_lock
    - unlikely
    - ACCESS_ONCE
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: "int __must_check arm_smmu_iotlb_flush(struct domain *d, dfn_t dfn,\n\t\t\t\t\t
      \    unsigned long page_count,\n\t\t\t\t\t     unsigned int flush_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2726,1
    - Dst: find_smmu_for_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2728,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2719
    functionDepth: 2
    functionLinenumber: 2719
    functionLinenumberEnd: 2743
    functionName: arm_smmu_get_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - find_smmu_for_device
    - dom_iommu
    - list_for_each_entry
    linkageType: ''
    returnType: struct iommu_domain
    signature: "struct iommu_domain *arm_smmu_get_domain(struct domain *d,\n\t\t\t\t\t\tstruct
      device *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2747,1
    - Dst: arm_smmu_domain_destroy
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2748,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2745
    functionDepth: 3
    functionLinenumber: 2745
    functionLinenumberEnd: 2750
    functionName: arm_smmu_destroy_iommu_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_domain_destroy
    - list_del
    - xfree
    linkageType: ''
    returnType: void
    signature: void arm_smmu_destroy_iommu_domain(struct iommu_domain *domain)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2759,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2762,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2768,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2770,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2776,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2776,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2778,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2779,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2780,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2784,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2785,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2786,1
    - Dst: dev_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2791,1
    - Dst: arm_smmu_deassign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2796,1
    - Dst: dev_iommu_group
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2803,1
    - Dst: arm_smmu_add_device
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2804,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2809,1
    - Dst: arm_smmu_get_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2815,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2818,1
    - Dst: arm_smmu_domain_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2824,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2826,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2833,1
    - Dst: arm_smmu_attach_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2837,1
    - Dst: arm_smmu_destroy_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2840,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2842,1
    - Dst: dev_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2843,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2847,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 4
    argNames:
    - d
    - devfn
    - dev
    - flag
    argTypes:
    - struct domain*
    - u8
    - struct device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2752
    functionDepth: 2
    functionLinenumber: 2752
    functionLinenumberEnd: 2850
    functionName: arm_smmu_assign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 1
    functionsReached:
    - arm_smmu_deassign_dev
    - spin_lock
    - list_add
    - xfree
    - xzalloc
    - dev_is_pci
    - dev_iommu_domain
    - list_del
    - arm_smmu_destroy_iommu_domain
    - spin_unlock
    - dom_iommu
    - write_unlock
    - ASSERT
    - atomic_inc
    - arm_smmu_add_device
    - write_lock
    - dev_to_pci
    - arm_smmu_attach_dev
    - arm_smmu_domain_init
    - arm_smmu_get_domain
    - dev_iommu_group
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_assign_dev(struct domain *d, u8 devfn,\n\t\t\t       struct
      device *dev, u32 flag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2855,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2859,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2861,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2873,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2876,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2880,1
    - Dst: arm_smmu_detach_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2882,1
    - Dst: dev_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2883,1
    - Dst: atomic_dec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2884,1
    - Dst: arm_smmu_destroy_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2887,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2889,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - d
    - devfn
    - dev
    argTypes:
    - struct domain*
    - uint8_t
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2892
      start: 2852
    functionDepth: 1
    functionLinenumber: 2852
    functionLinenumberEnd: 2892
    functionName: arm_smmu_deassign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 1
    functionsReached:
    - dev_err
    - spin_unlock
    - dom_iommu
    - dev_is_pci
    - dev_iommu_domain
    - spin_lock
    - arm_smmu_detach_dev
    - arm_smmu_destroy_iommu_domain
    - dev_to_pci
    - atomic_dec
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn,\n\t\t\t\t
      struct device *dev)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2902,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2902,1
    - Dst: arm_smmu_deassign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2908,1
    - Dst: arm_smmu_assign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2914,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - s
    - t
    - devfn
    - dev
    argTypes:
    - struct domain*
    - struct domain*
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2894
    functionDepth: 0
    functionLinenumber: 2894
    functionLinenumberEnd: 2920
    functionName: arm_smmu_reassign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - arm_smmu_assign_dev
    - arm_smmu_deassign_dev
    - is_hardware_domain
    - dev_is_pci
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_reassign_dev(struct domain *s, struct domain *t,\n\t\t\t\t
      u8 devfn,  struct device *dev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2926,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2930,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2931,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2933,1
    - Dst: iommu_set_feature
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2940
      start: 2922
    functionDepth: 1
    functionLinenumber: 2922
    functionLinenumberEnd: 2940
    functionName: arm_smmu_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dom_iommu
    - iommu_set_feature
    - INIT_LIST_HEAD
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int arm_smmu_iommu_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2944,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2946,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2946,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2948
    functionName: arm_smmu_iommu_domain_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - dom_iommu
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void arm_smmu_iommu_domain_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2970,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2971,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2980
    functionName: find_smmu
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 2
    functionsReached:
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct arm_smmu_device
    signature: struct arm_smmu_device *find_smmu(const struct device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2992,1
    - Dst: arm_smmu_device_dt_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2994,1
    - Dst: iommu_set_ops
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:2998,1
    - Dst: find_smmu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:3001,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:3001,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu.c:3002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2982
    functionDepth: 2
    functionLinenumber: 2982
    functionLinenumberEnd: 3007
    functionName: arm_smmu_dt_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu.c
    functionUses: 0
    functionsReached:
    - dt_device_set_used_by
    - dt_to_dev
    - arm_smmu_device_dt_probe
    - BUG_ON
    - find_smmu
    - iommu_set_ops
    linkageType: ''
    returnType: __init
    signature: "__init arm_smmu_dt_init(struct dt_device_node *dev,\n\t\t\t\t   const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: dev_name
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_name(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dev
    - ','
    - lvl
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: dev_print
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_print(dev, lvl, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dev
    - ','
    - lvl
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: dev_print
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_print(dev, lvl, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: dev_info
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_info(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: dev_warn
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_warn(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: dev_err
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: dev_err_ratelimited
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err_ratelimited(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: IMUCTR
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUCTR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: IMUCTR0
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUCTR0(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: IMUCTR32
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUCTR32(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: IMUCTR_TTSEL_MMU
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUCTR_TTSEL_MMU(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: IMUASID
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUASID(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: IMUASID0
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUASID0(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: IMUASID32
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMUASID32(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 251
    functionName: to_ipmmu
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: struct ipmmu_vmsa_device
    signature: struct ipmmu_vmsa_device *to_ipmmu(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - mmu
    argTypes:
    - struct device*
    - struct ipmmu_vmsa_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: set_ipmmu
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: void
    signature: void set_ipmmu(struct device *dev, struct ipmmu_vmsa_device *mmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: to_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 11
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: struct ipmmu_vmsa_domain
    signature: struct ipmmu_vmsa_domain *to_domain(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - domain
    argTypes:
    - struct device*
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: set_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 1
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: void
    signature: void set_domain(struct device *dev, struct ipmmu_vmsa_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:280,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:282,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 294
    functionName: ipmmu_find_mmu_by_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct ipmmu_vmsa_device
    signature: struct ipmmu_vmsa_device *ipmmu_find_mmu_by_dev(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mmu
    argTypes:
    - struct ipmmu_vmsa_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: ipmmu_is_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ipmmu_is_root(struct ipmmu_vmsa_device *mmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:307,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:309,1
    - Dst: ipmmu_is_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:311,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 321
    functionName: ipmmu_find_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_is_root
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct ipmmu_vmsa_device
    signature: struct ipmmu_vmsa_device *ipmmu_find_root(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mmu
    - offset
    argTypes:
    - struct ipmmu_vmsa_device*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: ipmmu_read
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ipmmu_read(struct ipmmu_vmsa_device *mmu, uint32_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mmu
    - offset
    - data
    argTypes:
    - struct ipmmu_vmsa_device*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: ipmmu_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: "void ipmmu_write(struct ipmmu_vmsa_device *mmu, uint32_t offset,\n
      \                       uint32_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mmu
    - context_id
    - reg
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: ipmmu_ctx_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ipmmu_ctx_reg(struct ipmmu_vmsa_device *mmu,\n                                  unsigned
      int context_id, uint32_t reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:349,1
    - Dst: ipmmu_ctx_reg
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mmu
    - context_id
    - reg
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: ipmmu_ctx_read
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_reg
    - ipmmu_read
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t ipmmu_ctx_read(struct ipmmu_vmsa_device *mmu,\n                               unsigned
      int context_id, uint32_t reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:356,1
    - Dst: ipmmu_ctx_reg
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mmu
    - context_id
    - reg
    - data
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: ipmmu_ctx_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_reg
    - ipmmu_write
    linkageType: ''
    returnType: void
    signature: "void ipmmu_ctx_write(struct ipmmu_vmsa_device *mmu,\n                            unsigned
      int context_id, uint32_t reg,\n                            uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain
    - reg
    argTypes:
    - struct ipmmu_vmsa_domain*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: ipmmu_ctx_read_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_read
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t ipmmu_ctx_read_root(struct ipmmu_vmsa_domain *domain,\n                                    uint32_t
      reg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - domain
    - reg
    - data
    argTypes:
    - struct ipmmu_vmsa_domain*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: ipmmu_ctx_write_root
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_write
    linkageType: ''
    returnType: void
    signature: "void ipmmu_ctx_write_root(struct ipmmu_vmsa_domain *domain,\n                                 uint32_t
      reg, uint32_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:375,1
    - Dst: ipmmu_is_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:378,1
    - Dst: ipmmu_ctx_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - domain
    - reg
    - data
    argTypes:
    - struct ipmmu_vmsa_domain*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: ipmmu_ctx_write_cache
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_is_root
    - ASSERT
    - ipmmu_ctx_write
    linkageType: ''
    returnType: void
    signature: "void ipmmu_ctx_write_cache(struct ipmmu_vmsa_domain *domain,\n                                  uint32_t
      reg, uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:390,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:393,1
    - Dst: ipmmu_ctx_write_cache
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:394,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - domain
    - reg
    - data
    argTypes:
    - struct ipmmu_vmsa_domain*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: ipmmu_ctx_write_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_write_root
    - dom_iommu
    - list_for_each_entry
    - ipmmu_ctx_write_cache
    linkageType: ''
    returnType: void
    signature: "void ipmmu_ctx_write_all(struct ipmmu_vmsa_domain *domain,\n                                uint32_t
      reg, uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mmu
    - reg
    argTypes:
    - struct ipmmu_vmsa_device*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: ipmmu_utlb_reg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ipmmu_utlb_reg(struct ipmmu_vmsa_device *mmu, uint32_t reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:407,1
    - Dst: ipmmu_utlb_reg
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:407,1
    - Dst: IMUASID
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mmu
    - utlb
    - data
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: ipmmu_imuasid_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - IMUASID
    - ipmmu_write
    - ipmmu_utlb_reg
    linkageType: ''
    returnType: void
    signature: "void ipmmu_imuasid_write(struct ipmmu_vmsa_device *mmu,\n                                unsigned
      int utlb, uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:413,1
    - Dst: ipmmu_utlb_reg
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:413,1
    - Dst: IMUCTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mmu
    - utlb
    - data
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: ipmmu_imuctr_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - IMUCTR
    - ipmmu_write
    - ipmmu_utlb_reg
    linkageType: ''
    returnType: void
    signature: "void ipmmu_imuctr_write(struct ipmmu_vmsa_device *mmu,\n                               unsigned
      int utlb, uint32_t data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:419,1
    - Dst: ipmmu_utlb_reg
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:419,1
    - Dst: IMUCTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mmu
    - utlb
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: ipmmu_imuctr_read
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - IMUCTR
    - ipmmu_utlb_reg
    - ipmmu_read
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t ipmmu_imuctr_read(struct ipmmu_vmsa_device *mmu,\n                                  unsigned
      int utlb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:429,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:431,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:434,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 439
    functionName: ipmmu_tlb_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - udelay
    - dev_err_ratelimited
    - cpu_relax
    - ipmmu_ctx_read_root
    linkageType: ''
    returnType: void
    signature: void ipmmu_tlb_sync(struct ipmmu_vmsa_domain *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:445,1
    - Dst: ipmmu_ctx_write_all
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:447,1
    - Dst: dsb
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:450,1
    - Dst: ipmmu_tlb_sync
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 452
    functionName: ipmmu_tlb_invalidate
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dsb
    - ipmmu_ctx_read_root
    - ipmmu_tlb_sync
    - ipmmu_ctx_write_all
    linkageType: ''
    returnType: void
    signature: void ipmmu_tlb_invalidate(struct ipmmu_vmsa_domain *domain)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_imuctr_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:471,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:480,1
    - Dst: ipmmu_imuasid_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:494,1
    - Dst: ipmmu_imuctr_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:495,1
    - Dst: IMUCTR_TTSEL_MMU
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - domain
    - utlb
    argTypes:
    - struct ipmmu_vmsa_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 500
    functionName: ipmmu_utlb_enable
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_err
    - ipmmu_imuasid_write
    - IMUCTR_TTSEL_MMU
    - ipmmu_imuctr_write
    - ipmmu_imuctr_read
    linkageType: ''
    returnType: int
    signature: "int ipmmu_utlb_enable(struct ipmmu_vmsa_domain *domain,\n                             unsigned
      int utlb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:508,1
    - Dst: ipmmu_imuctr_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - utlb
    argTypes:
    - struct ipmmu_vmsa_domain*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: ipmmu_utlb_disable
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - ipmmu_imuctr_write
    linkageType: ''
    returnType: void
    signature: "void ipmmu_utlb_disable(struct ipmmu_vmsa_domain *domain,\n                               unsigned
      int utlb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:521,1
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:523,1
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:527,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - mmu
    - domain
    argTypes:
    - struct ipmmu_vmsa_device*
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 535
    functionName: ipmmu_domain_allocate_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - find_first_zero_bit
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - set_bit
    linkageType: ''
    returnType: int
    signature: "int ipmmu_domain_allocate_context(struct ipmmu_vmsa_device *mmu,\n
      \                                        struct ipmmu_vmsa_domain *domain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:542,1
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:544,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mmu
    - context_id
    argTypes:
    - struct ipmmu_vmsa_device*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: ipmmu_domain_free_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - clear_bit
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: "void ipmmu_domain_free_context(struct ipmmu_vmsa_device *mmu,\n                                      unsigned
      int context_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_domain_allocate_context
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:557,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:567,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:568,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:570,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:573,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:574,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:583,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:590,1
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:590,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 604
    functionName: ipmmu_domain_init_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_domain_allocate_context
    - dev_info
    - ASSERT
    - ipmmu_ctx_read_root
    - ipmmu_ctx_write_root
    - page_to_maddr
    linkageType: ''
    returnType: int
    signature: int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:615,1
    - Dst: ipmmu_tlb_sync
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:616,1
    - Dst: ipmmu_domain_free_context
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 619
    functionName: ipmmu_domain_destroy_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_write_root
    - ipmmu_domain_free_context
    - ipmmu_tlb_sync
    linkageType: ''
    returnType: void
    signature: void ipmmu_domain_destroy_context(struct ipmmu_vmsa_domain *domain)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:629,1
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:633,1
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:634,1
    - Dst: ipmmu_ctx_write_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:642,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:646,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:649,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 658
    functionName: ipmmu_domain_irq
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_write_root
    - dev_err_ratelimited
    - ipmmu_ctx_read_root
    linkageType: ''
    returnType: void
    signature: void ipmmu_domain_irq(struct ipmmu_vmsa_domain *domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:666,1
    - Dst: ipmmu_domain_irq
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:677,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 660
    functionDepth: 4
    functionLinenumber: 660
    functionLinenumberEnd: 681
    functionName: ipmmu_irq
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - ipmmu_domain_irq
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void ipmmu_irq(int irq, void *dev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:687,1
    - Dst: to_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:688,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:693,1
    - Dst: ipmmu_ctx_write_cache
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:708,1
    - Dst: ipmmu_ctx_read_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:709,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:711,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:719,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:720,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:720,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:724,1
    - Dst: ipmmu_utlb_enable
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:728,1
    - Dst: ipmmu_utlb_disable
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - domain
    - dev
    argTypes:
    - struct ipmmu_vmsa_domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 740
    functionName: ipmmu_attach_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_err
    - ipmmu_ctx_write_cache
    - dev_info
    - ipmmu_utlb_enable
    - ipmmu_ctx_read_root
    - ipmmu_utlb_disable
    - dev_iommu_fwspec_get
    - to_ipmmu
    - dev_name
    linkageType: ''
    returnType: int
    signature: "int ipmmu_attach_device(struct ipmmu_vmsa_domain *domain,\n                               struct
      device *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:745,1
    - Dst: ipmmu_utlb_disable
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - dev
    argTypes:
    - struct ipmmu_vmsa_domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: ipmmu_detach_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    - ipmmu_utlb_disable
    linkageType: ''
    returnType: void
    signature: "void ipmmu_detach_device(struct ipmmu_vmsa_domain *domain,\n                                struct
      device *dev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:755,1
    - Dst: ipmmu_find_mmu_by_dev
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:758,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:758,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:762,1
    - Dst: set_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dev
    - args
    argTypes:
    - struct device*
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 769
    functionName: ipmmu_init_platform_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - ipmmu_find_mmu_by_dev
    - dt_to_dev
    - dev_iommu_fwspec_get
    - set_ipmmu
    linkageType: ''
    returnType: int
    signature: "int ipmmu_init_platform_device(struct device *dev,\n                                      const
      struct dt_phandle_args *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_ctx_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:797,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mmu
    argTypes:
    - struct ipmmu_vmsa_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 800
    functionName: ipmmu_device_reset
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_ctx_write
    - dev_info
    linkageType: ''
    returnType: void
    signature: void ipmmu_device_reset(struct ipmmu_vmsa_device *mmu)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dt_find_compatible_node
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:820,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:823,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:827,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:829,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:833,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:836,1
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:840,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:862,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:866,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 812
    functionDepth: 7
    functionLinenumber: 812
    functionLinenumberEnd: 869
    functionName: ipmmu_stage2_supported
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dt_find_compatible_node
    - dt_device_get_paddr
    - iounmap
    - ioremap_nocache
    - printk
    - readl
    linkageType: ''
    returnType: __init
    signature: __init ipmmu_stage2_supported(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:914,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:917,1
    - Dst: dt_match_node
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:921,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:922,1
    - Dst: min
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:926,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:927,1
    - Dst: bitmap_zero
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:928,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:931,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:934,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:938,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:941,1
    - Dst: dt_find_property
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:951,1
    - Dst: ipmmu_find_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:954,1
    - Dst: ipmmu_is_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:964,1
    - Dst: ipmmu_stage2_supported
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:966,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:968,1
    - Dst: p2m_restrict_ipa_bits
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:974,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:976,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:979,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:984,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:984,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:987,1
    - Dst: ipmmu_device_reset
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:991,1
    - Dst: ipmmu_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:998,1
    - Dst: ipmmu_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:998,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1000,1
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1001,1
    - Dst: ipmmu_write
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1006,1
    - Dst: ipmmu_read
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1006,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1008,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1009,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1010,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1012,1
    - Dst: ipmmu_is_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1013,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1019,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1020,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct dt_device_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 906
    functionDepth: 8
    functionLinenumber: 906
    functionLinenumberEnd: 1023
    functionName: ipmmu_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_info
    - bitmap_zero
    - dt_match_node
    - ipmmu_is_root
    - spin_lock
    - xfree
    - xzalloc
    - ipmmu_read
    - ipmmu_find_root
    - printk
    - p2m_restrict_ipa_bits
    - dt_find_property
    - dev_err
    - spin_unlock
    - platform_get_irq
    - ASSERT
    - min
    - ioremap_nocache
    - request_irq
    - dev_name
    - ipmmu_stage2_supported
    - dt_device_get_paddr
    - set_bit
    - iounmap
    - ipmmu_write
    - ipmmu_device_reset
    - spin_lock_init
    - list_add
    linkageType: ''
    returnType: int
    signature: int ipmmu_probe(struct dt_device_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1030,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1032,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1039,1
    - Dst: ipmmu_tlb_invalidate
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1040,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1044
    functionName: __must_check::ipmmu_iotlb_flush
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - dom_iommu
    - ipmmu_tlb_invalidate
    - ASSERT
    - spin_lock
    linkageType: ''
    returnType: int
    signature: "int __must_check ipmmu_iotlb_flush(struct domain *d, dfn_t dfn,\n
      \                                         unsigned long page_count,\n                                          unsigned
      int flush_flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1049,1
    - Dst: to_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1050,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1067
    functionName: ipmmu_get_cache_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - to_ipmmu
    - list_for_each_entry
    linkageType: ''
    returnType: struct ipmmu_vmsa_domain
    signature: "struct ipmmu_vmsa_domain *ipmmu_get_cache_domain(struct domain *d,\n
      \                                                       struct device *dev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1071,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1074,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1089
    functionName: ipmmu_alloc_cache_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dom_iommu
    - ERR_PTR
    linkageType: ''
    returnType: struct ipmmu_vmsa_domain
    signature: struct ipmmu_vmsa_domain *ipmmu_alloc_cache_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1093,1
    - Dst: ipmmu_ctx_write_cache
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1098,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1100
    functionName: ipmmu_free_cache_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - list_del
    - ipmmu_ctx_write_cache
    - xfree
    linkageType: ''
    returnType: void
    signature: void ipmmu_free_cache_domain(struct ipmmu_vmsa_domain *domain)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_find_root
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1109,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1112,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1113,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1116,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1118,1
    - Dst: ipmmu_domain_init_context
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1124,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1127,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1128,1
    - Dst: ERR_PTR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1133
    functionName: ipmmu_alloc_root_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dev_err
    - ERR_PTR
    - ipmmu_domain_init_context
    - ipmmu_find_root
    - printk
    - xfree
    linkageType: ''
    returnType: struct ipmmu_vmsa_domain
    signature: struct ipmmu_vmsa_domain *ipmmu_alloc_root_domain(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ipmmu_domain_destroy_context
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1137,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct ipmmu_vmsa_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1135
    functionDepth: 5
    functionLinenumber: 1135
    functionLinenumberEnd: 1139
    functionName: ipmmu_free_root_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - xfree
    - ipmmu_domain_destroy_context
    linkageType: ''
    returnType: void
    signature: void ipmmu_free_root_domain(struct ipmmu_vmsa_domain *domain)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1146,1
    - Dst: to_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1153,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1157,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1159,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1166,1
    - Dst: list_move
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1167,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1168,1
    - Dst: ipmmu_deassign_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1180,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1187,1
    - Dst: ipmmu_alloc_root_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1197,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1198,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1200,1
    - Dst: to_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1207,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1209,1
    - Dst: ipmmu_get_cache_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1220,1
    - Dst: ipmmu_alloc_cache_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1224,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1225,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1227,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1232,1
    - Dst: ipmmu_attach_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1235,1
    - Dst: ipmmu_free_cache_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1243,1
    - Dst: set_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1248,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1252,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 4
    argNames:
    - d
    - devfn
    - dev
    - flag
    argTypes:
    - struct domain*
    - u8
    - struct device*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1255
    functionName: ipmmu_assign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - list_move
    - spin_lock
    - to_domain
    - ipmmu_alloc_cache_domain
    - ipmmu_alloc_root_domain
    - dev_is_pci
    - ipmmu_deassign_device
    - dev_err
    - spin_unlock
    - dom_iommu
    - write_unlock
    - set_domain
    - write_lock
    - to_ipmmu
    - dev_to_pci
    - ipmmu_attach_device
    - ipmmu_free_cache_domain
    - IS_ERR
    - ipmmu_get_cache_domain
    - PTR_ERR
    - list_add
    linkageType: ''
    returnType: int
    signature: "int ipmmu_assign_device(struct domain *d, u8 devfn, struct device
      *dev,\n                               uint32_t flag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1259,1
    - Dst: to_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1260,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1264,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1268,1
    - Dst: ipmmu_detach_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1270,1
    - Dst: set_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1271,1
    - Dst: ipmmu_free_cache_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1279,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1257
    functionDepth: 4
    functionLinenumber: 1257
    functionLinenumberEnd: 1284
    functionName: ipmmu_deassign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 1
    functionsReached:
    - dev_err
    - ipmmu_free_cache_domain
    - dom_iommu
    - spin_unlock
    - spin_lock
    - set_domain
    - ipmmu_detach_device
    - to_domain
    linkageType: ''
    returnType: int
    signature: int ipmmu_deassign_device(struct domain *d, struct device *dev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1292,1
    - Dst: ipmmu_deassign_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1298,1
    - Dst: ipmmu_assign_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - s
    - t
    - devfn
    - dev
    argTypes:
    - struct domain*
    - struct domain*
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1286
    functionDepth: 6
    functionLinenumber: 1286
    functionLinenumberEnd: 1311
    functionName: ipmmu_reassign_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_assign_device
    - is_hardware_domain
    - ipmmu_deassign_device
    linkageType: ''
    returnType: int
    signature: "int ipmmu_reassign_device(struct domain *s, struct domain *t,\n                                 u8
      devfn,  struct device *dev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iommu_fwspec_add_ids
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1327,1
    - Dst: to_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1332,1
    - Dst: ipmmu_init_platform_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - dev
    - spec
    argTypes:
    - struct device*
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1336
    functionName: ipmmu_dt_xlate
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - ipmmu_init_platform_device
    - iommu_fwspec_add_ids
    - to_ipmmu
    linkageType: ''
    returnType: int
    signature: "int ipmmu_dt_xlate(struct device *dev,\n                          const
      struct dt_phandle_args *spec)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1343,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1345,1
    - Dst: iommu_add_pci_sideband_ids
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1351,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1353,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1357,1
    - Dst: to_ipmmu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1360,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1363,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1365,1
    - Dst: dev_to_dt
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1365,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1367,1
    - Dst: dt_device_set_protected
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1372,1
    - Dst: dev_to_dt
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1372,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1375,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1377,1
    - Dst: pci_find_host_bridge
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1384,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1387,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1391,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1391,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1394,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1400,1
    - Dst: rcar4_pcie_osid_regs_init
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1404,1
    - Dst: rcar4_pcie_osid_reg_alloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1406,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1409,1
    - Dst: rcar4_pcie_osid_bdf_set
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1415,1
    - Dst: rcar4_pcie_bdf_msk_set
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1416,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1418,1
    - Dst: ipmmu_assign_device
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1420,1
    - Dst: rcar4_pcie_osid_bdf_clear
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1423,1
    - Dst: rcar4_pcie_osid_reg_free
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1424,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1430,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1431,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 2
    argNames:
    - devfn
    - dev
    argTypes:
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1338
    functionDepth: 6
    functionLinenumber: 1338
    functionLinenumberEnd: 1434
    functionName: ipmmu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_info
    - rcar4_pcie_osid_reg_alloc
    - dt_device_set_protected
    - dev_is_pci
    - ipmmu_assign_device
    - dev_to_dt
    - iommu_add_pci_sideband_ids
    - dev_iommu_fwspec_get
    - dev_err
    - rcar4_pcie_osid_regs_init
    - rcar4_pcie_osid_bdf_set
    - pci_find_host_bridge
    - dt_device_is_protected
    - rcar4_pcie_osid_reg_free
    - to_ipmmu
    - dev_to_pci
    - rcar4_pcie_bdf_msk_set
    - dev_name
    - rcar4_pcie_osid_bdf_clear
    - dt_to_dev
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int ipmmu_add_device(u8 devfn, struct device *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1440,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1444,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1445,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1436
    functionDepth: 1
    functionLinenumber: 1436
    functionLinenumberEnd: 1456
    functionName: ipmmu_iommu_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - spin_lock_init
    - dom_iommu
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: int
    signature: int ipmmu_iommu_domain_init(struct domain *d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1460,1
    - Dst: ipmmu_free_root_domain
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1470,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1477,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1477,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1478,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1458
    functionDepth: 6
    functionLinenumber: 1458
    functionLinenumberEnd: 1480
    functionName: ipmmu_iommu_domain_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dom_iommu
    - ipmmu_free_root_domain
    - ASSERT
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void ipmmu_iommu_domain_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1505,1
    - Dst: ipmmu_probe
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1507,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1510,1
    - Dst: iommu_set_ops
      Src: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1497
    functionDepth: 9
    functionLinenumber: 1497
    functionLinenumberEnd: 1517
    functionName: ipmmu_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/ipmmu-vmsa.c
    functionUses: 0
    functionsReached:
    - dev_err
    - ipmmu_probe
    - dt_device_set_used_by
    - iommu_set_ops
    linkageType: ''
    returnType: __init
    signature: __init ipmmu_init(struct dt_device_node *node, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: __iomb
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __iomb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dev
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: dev_name
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_name(dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: dev_dbg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_dbg(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: dev_notice
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_notice(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: dev_warn
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_warn(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: dev_err
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: dev_info
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_info(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dev
    - ','
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: dev_err_ratelimited
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dev_err_ratelimited(dev, fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - op
    - ','
    - addr
    - ','
    - val
    - ','
    - cond
    - ','
    - sleep_us
    - ','
    - timeout_us
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 151
    functionName: readx_poll_timeout
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readx_poll_timeout(op, addr, val, cond, sleep_us, timeout_us)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - addr
    - ','
    - val
    - ','
    - cond
    - ','
    - delay_us
    - ','
    - timeout_us
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: readl_relaxed_poll_timeout
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readl_relaxed_poll_timeout(addr, val, cond, delay_us, timeout_us)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:172,1
    - Dst: _xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:176,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:178,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - dev
    - size
    - dma_handle
    - gfp
    argTypes:
    - struct device*
    - size_t
    - paddr_t*
    - gfp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: dmam_alloc_coherent
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - _xzalloc
    - virt_to_maddr
    - printk
    linkageType: ''
    returnType: void
    signature: "void *dmam_alloc_coherent(struct device *dev, size_t size,\n\t\t\t\tpaddr_t
      *dma_handle, gfp_t gfp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: dev_iommu_priv_get
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: void
    signature: void *dev_iommu_priv_get(struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - priv
    argTypes:
    - struct device*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: dev_iommu_priv_set
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_iommu_fwspec_get
    linkageType: ''
    returnType: void
    signature: void dev_iommu_priv_set(struct device *dev, void *priv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: to_smmu_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct arm_smmu_domain
    signature: struct arm_smmu_domain *to_smmu_domain(struct iommu_domain *dom)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_bool
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:232,1
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: parse_driver_options
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_notice
    - dt_property_read_bool
    linkageType: ''
    returnType: void
    signature: void parse_driver_options(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:244,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:244,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:245,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_ll_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: queue_full
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - Q_IDX
    - Q_WRP
    linkageType: ''
    returnType: bool
    signature: bool queue_full(struct arm_smmu_ll_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:250,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:250,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:251,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_ll_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: queue_empty
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - Q_IDX
    - Q_WRP
    linkageType: ''
    returnType: bool
    signature: bool queue_empty(struct arm_smmu_ll_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 257
    functionName: queue_sync_cons_in
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - readl_relaxed
    linkageType: ''
    returnType: void
    signature: void queue_sync_cons_in(struct arm_smmu_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __iomb
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:265,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: queue_sync_cons_out
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    - __iomb
    linkageType: ''
    returnType: void
    signature: void queue_sync_cons_out(struct arm_smmu_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:271,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:271,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:272,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:272,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_ll_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: queue_inc_cons
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - Q_IDX
    - Q_WRP
    - Q_OVF
    linkageType: ''
    returnType: void
    signature: void queue_inc_cons(struct arm_smmu_ll_queue *q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:285,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:287,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 292
    functionName: queue_sync_prod_in
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - Q_OVF
    - readl
    linkageType: ''
    returnType: int
    signature: int queue_sync_prod_in(struct arm_smmu_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: queue_sync_prod_out
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: void queue_sync_prod_out(struct arm_smmu_queue *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:301,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:301,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:302,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:302,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - struct arm_smmu_ll_queue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: queue_inc_prod
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - Q_IDX
    - Q_WRP
    - Q_OVF
    linkageType: ''
    returnType: void
    signature: void queue_inc_prod(struct arm_smmu_ll_queue *q)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:315,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:315,1
    - Dst: queue_sync_cons_in
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:319,1
    - Dst: queue_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:320,1
    - Dst: queue_full
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:320,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:321,1
    - Dst: wfe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:325,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:327,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - q
    - sync
    - wfe
    argTypes:
    - struct arm_smmu_queue*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 337
    functionName: queue_poll_cons
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - queue_empty
    - queue_full
    - queue_sync_cons_in
    - MICROSECS
    - udelay
    - wfe
    - NOW
    linkageType: ''
    returnType: int
    signature: int queue_poll_cons(struct arm_smmu_queue *q, bool sync, bool wfe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - n_dwords
    argTypes:
    - __le64*
    - u64*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: queue_write
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - cpu_to_le64
    linkageType: ''
    returnType: void
    signature: void queue_write(__le64 *dst, u64 *src, size_t n_dwords)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Q_ENT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:349,1
    - Dst: queue_full
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:351,1
    - Dst: queue_write
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:354,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:356,1
    - Dst: queue_inc_prod
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:357,1
    - Dst: queue_sync_prod_out
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - q
    - ent
    argTypes:
    - struct arm_smmu_queue*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 360
    functionName: queue_insert_raw
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_sync_prod_out
    - queue_write
    - clean_dcache_va_range
    - queue_full
    - queue_inc_prod
    - Q_ENT
    linkageType: ''
    returnType: int
    signature: int queue_insert_raw(struct arm_smmu_queue *q, u64 *ent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le64_to_cpu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - n_dwords
    argTypes:
    - u64*
    - __le64*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: queue_read
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - le64_to_cpu
    linkageType: ''
    returnType: void
    signature: void queue_read(u64 *dst, __le64 *src, size_t n_dwords)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Q_ENT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:372,1
    - Dst: queue_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:374,1
    - Dst: invalidate_dcache_va_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:378,1
    - Dst: queue_read
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:380,1
    - Dst: queue_inc_cons
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:381,1
    - Dst: queue_sync_cons_out
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - q
    - ent
    argTypes:
    - struct arm_smmu_queue*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: queue_remove_raw
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_empty
    - queue_read
    - invalidate_dcache_va_range
    - queue_sync_cons_out
    - Q_ENT
    - queue_inc_cons
    linkageType: ''
    returnType: int
    signature: int queue_remove_raw(struct arm_smmu_queue *q, u64 *ent)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:389,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:390,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:397,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:400,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:401,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:405,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:408,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:409,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:413,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:416,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:417,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:418,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:419,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:420,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:424,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:425,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:426,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:427,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:436,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:440,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:442,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:443,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:444,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:450,1
    - Dst: cpu_to_le32
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 2
    argNames:
    - cmd
    - ent
    argTypes:
    - u64*
    - struct arm_smmu_cmdq_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 459
    functionName: arm_smmu_cmdq_build_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - memset
    - FIELD_PREP
    - cpu_to_le32
    linkageType: ''
    returnType: int
    signature: int arm_smmu_cmdq_build_cmd(u64 *cmd, struct arm_smmu_cmdq_ent *ent)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:473,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:474,1
    - Dst: Q_ENT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:475,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:480,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:481,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:485,1
    - Dst: invalidate_dcache_va_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:503,1
    - Dst: queue_read
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:509,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:510,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:511,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:512,1
    - Dst: arm_smmu_cmdq_build_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:515,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:516,1
    - Dst: queue_write
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:520,1
    - Dst: clean_dcache_va_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 524
    functionName: arm_smmu_cmdq_skip_err
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - queue_write
    - ARRAY_SIZE
    - clean_dcache_va_range
    - queue_read
    - FIELD_GET
    - arm_smmu_cmdq_build_cmd
    - invalidate_dcache_va_range
    - readl_relaxed
    - Q_ENT
    linkageType: ''
    returnType: void
    signature: void arm_smmu_cmdq_skip_err(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:531,1
    - Dst: queue_insert_raw
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:533,1
    - Dst: queue_poll_cons
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:534,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - smmu
    - cmd
    argTypes:
    - struct arm_smmu_device*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: arm_smmu_cmdq_insert_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_poll_cons
    - FIELD_GET
    - dev_err_ratelimited
    - queue_insert_raw
    linkageType: ''
    returnType: void
    signature: void arm_smmu_cmdq_insert_cmd(struct arm_smmu_device *smmu, u64 *cmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_cmdq_build_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:545,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:546,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:551,1
    - Dst: arm_smmu_cmdq_insert_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:552,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - smmu
    - ent
    argTypes:
    - struct arm_smmu_device*
    - struct arm_smmu_cmdq_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 539
    functionDepth: 4
    functionLinenumber: 539
    functionLinenumberEnd: 554
    functionName: arm_smmu_cmdq_issue_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_warn
    - spin_lock_irqsave
    - arm_smmu_cmdq_build_cmd
    - spin_unlock_irqrestore
    - arm_smmu_cmdq_insert_cmd
    linkageType: ''
    returnType: void
    signature: "void arm_smmu_cmdq_issue_cmd(struct arm_smmu_device *smmu,\n\t\t\t\t
      \   struct arm_smmu_cmdq_ent *ent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:566,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:566,1
    - Dst: smp_cond_load_acquire
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:567,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - smmu
    - sync_idx
    argTypes:
    - struct arm_smmu_device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: __arm_smmu_sync_poll_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - smp_cond_load_acquire
    - MICROSECS
    - NOW
    linkageType: ''
    returnType: int
    signature: int __arm_smmu_sync_poll_msi(struct arm_smmu_device *smmu, u32 sync_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_phys
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:581,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:585,1
    - Dst: arm_smmu_cmdq_build_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:592,1
    - Dst: arm_smmu_cmdq_insert_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:593,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:596,1
    - Dst: __arm_smmu_sync_poll_msi
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 599
    functionName: __arm_smmu_cmdq_issue_sync_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - spin_lock_irqsave
    - arm_smmu_cmdq_build_cmd
    - spin_unlock_irqrestore
    - arm_smmu_cmdq_insert_cmd
    - virt_to_phys
    - __arm_smmu_sync_poll_msi
    linkageType: ''
    returnType: int
    signature: int __arm_smmu_cmdq_issue_sync_msi(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: __arm_smmu_cmdq_issue_sync_msi
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __arm_smmu_cmdq_issue_sync_msi(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_cmdq_build_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:616,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:618,1
    - Dst: arm_smmu_cmdq_insert_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:619,1
    - Dst: queue_poll_cons
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:620,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 608
    functionDepth: 4
    functionLinenumber: 608
    functionLinenumberEnd: 624
    functionName: __arm_smmu_cmdq_issue_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_poll_cons
    - spin_lock_irqsave
    - arm_smmu_cmdq_build_cmd
    - spin_unlock_irqrestore
    - arm_smmu_cmdq_insert_cmd
    linkageType: ''
    returnType: int
    signature: int __arm_smmu_cmdq_issue_sync(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __arm_smmu_cmdq_issue_sync_msi
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:632,1
    - Dst: __arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:633,1
    - Dst: dev_err_ratelimited
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 626
    functionDepth: 5
    functionLinenumber: 626
    functionLinenumberEnd: 637
    functionName: arm_smmu_cmdq_issue_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_err_ratelimited
    - __arm_smmu_cmdq_issue_sync_msi
    - __arm_smmu_cmdq_issue_sync
    linkageType: ''
    returnType: int
    signature: int arm_smmu_cmdq_issue_sync(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:645,1
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:649,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - desc
    argTypes:
    - __le64*
    - struct arm_smmu_strtab_l1_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 650
    functionName: arm_smmu_write_strtab_l1_desc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - cpu_to_le64
    - FIELD_PREP
    - write_atomic
    linkageType: ''
    returnType: void
    signature: void arm_smmu_write_strtab_l1_desc(__le64 *dst, struct arm_smmu_strtab_l1_desc
      *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:662,1
    - Dst: arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - smmu
    - sid
    argTypes:
    - struct arm_smmu_device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 652
    functionDepth: 6
    functionLinenumber: 652
    functionLinenumberEnd: 664
    functionName: arm_smmu_sync_ste_for_sid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_cmdq_issue_sync
    - arm_smmu_cmdq_issue_cmd
    linkageType: ''
    returnType: void
    signature: void arm_smmu_sync_ste_for_sid(struct arm_smmu_device *smmu, u32 sid)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: le64_to_cpu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:685,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:706,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:713,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:716,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:726,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:728,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:730,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:731,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:731,1
    - Dst: arm_smmu_sync_ste_for_sid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:739,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:745,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:746,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:753,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:754,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:756,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:758,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:762,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:762,1
    - Dst: arm_smmu_sync_ste_for_sid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:765,1
    - Dst: write_atomic
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:766,1
    - Dst: cpu_to_le64
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:766,1
    - Dst: arm_smmu_sync_ste_for_sid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:767,1
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:771,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - master
    - sid
    - dst
    argTypes:
    - struct arm_smmu_master*
    - u32
    - __le64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 666
    functionDepth: 7
    functionLinenumber: 666
    functionLinenumberEnd: 772
    functionName: arm_smmu_write_strtab_ent
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - cpu_to_le64
    - BUG
    - FIELD_GET
    - write_atomic
    - BUG_ON
    - arm_smmu_sync_ste_for_sid
    - arm_smmu_cmdq_issue_cmd
    - FIELD_PREP
    - le64_to_cpu
    linkageType: ''
    returnType: void
    signature: "void arm_smmu_write_strtab_ent(struct arm_smmu_master *master, u32
      sid,\n\t\t\t\t      __le64 *dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_write_strtab_ent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strtab
    - nent
    argTypes:
    - __le64*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 8
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: arm_smmu_init_bypass_stes
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_write_strtab_ent
    linkageType: ''
    returnType: void
    signature: void arm_smmu_init_bypass_stes(__le64 *strtab, unsigned int nent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ilog2
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:794,1
    - Dst: dmam_alloc_coherent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:798,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:801,1
    - Dst: arm_smmu_init_bypass_stes
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:807,1
    - Dst: arm_smmu_write_strtab_l1_desc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - smmu
    - sid
    argTypes:
    - struct arm_smmu_device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 784
    functionDepth: 9
    functionLinenumber: 784
    functionLinenumberEnd: 810
    functionName: arm_smmu_init_l2_strtab
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - arm_smmu_write_strtab_l1_desc
    - dmam_alloc_coherent
    - ilog2
    - arm_smmu_init_bypass_stes
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_l2_strtab(struct arm_smmu_device *smmu, u32 sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove_raw
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:822,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:823,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:825,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:826,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:827,1
    - Dst: queue_sync_prod_in
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:836,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:837,1
    - Dst: queue_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:838,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:841,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:841,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - dev
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 843
    functionName: arm_smmu_evtq_tasklet
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_remove_raw
    - dev_err
    - Q_IDX
    - dev_info
    - ARRAY_SIZE
    - queue_empty
    - FIELD_GET
    - Q_WRP
    - queue_sync_prod_in
    - Q_OVF
    linkageType: ''
    returnType: void
    signature: void arm_smmu_evtq_tasklet(void *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:851,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:852,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:853,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:854,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:855,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:857,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:858,1
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - smmu
    - evt
    argTypes:
    - struct arm_smmu_device*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 845
    functionDepth: 5
    functionLinenumber: 845
    functionLinenumberEnd: 881
    functionName: arm_smmu_handle_ppr
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - FIELD_GET
    - arm_smmu_cmdq_issue_cmd
    - dev_info
    linkageType: ''
    returnType: void
    signature: void arm_smmu_handle_ppr(struct arm_smmu_device *smmu, u64 *evt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove_raw
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:891,1
    - Dst: arm_smmu_handle_ppr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:892,1
    - Dst: queue_sync_prod_in
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:894,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:895,1
    - Dst: queue_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:896,1
    - Dst: Q_OVF
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:899,1
    - Dst: Q_WRP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:899,1
    - Dst: Q_IDX
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:900,1
    - Dst: queue_sync_cons_out
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dev
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 883
    functionDepth: 6
    functionLinenumber: 883
    functionLinenumberEnd: 902
    functionName: arm_smmu_priq_tasklet
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - queue_remove_raw
    - dev_err
    - Q_IDX
    - queue_empty
    - arm_smmu_handle_ppr
    - queue_sync_cons_out
    - Q_WRP
    - queue_sync_prod_in
    - Q_OVF
    linkageType: ''
    returnType: void
    signature: void arm_smmu_priq_tasklet(void *dev)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:911,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:912,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:918,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:923,1
    - Dst: arm_smmu_device_disable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:924,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:928,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:931,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:934,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:937,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:940,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:943,1
    - Dst: arm_smmu_cmdq_skip_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:946,1
    - Dst: writel
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 949
    functionName: arm_smmu_gerror_handler
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_device_disable
    - dev_err
    - writel
    - dev_warn
    - readl_relaxed
    - arm_smmu_cmdq_skip_err
    linkageType: ''
    returnType: void
    signature: void arm_smmu_gerror_handler(int irq, void *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_gerror_handler
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:955,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 958
    functionName: arm_smmu_combined_irq_handler
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    - arm_smmu_gerror_handler
    linkageType: ''
    returnType: void
    signature: void arm_smmu_combined_irq_handler(int irq, void *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_evtq_tasklet
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:964,1
    - Dst: arm_smmu_priq_tasklet
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dev
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 960
    functionDepth: 7
    functionLinenumber: 960
    functionLinenumberEnd: 967
    functionName: arm_smmu_combined_irq_tasklet
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_priq_tasklet
    - arm_smmu_evtq_tasklet
    linkageType: ''
    returnType: void
    signature: void arm_smmu_combined_irq_tasklet(void *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 974
    functionName: arm_smmu_evtq_irq_tasklet
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    linkageType: ''
    returnType: void
    signature: void arm_smmu_evtq_irq_tasklet(int irq, void *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - irq
    - dev
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 4
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: arm_smmu_priq_irq_tasklet
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - tasklet_schedule
    linkageType: ''
    returnType: void
    signature: void arm_smmu_priq_irq_tasklet(int irq, void *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fls_long
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ssid
    - iova
    - size
    - cmd
    argTypes:
    - int
    - unsigned long
    - size_t
    - struct arm_smmu_cmdq_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 1035
    functionName: arm_smmu_atc_inv_to_cmd
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - fls_long
    linkageType: ''
    returnType: void
    signature: "void arm_smmu_atc_inv_to_cmd(int ssid, unsigned long iova, size_t
      size,\n\t\t\tstruct arm_smmu_cmdq_ent *cmd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1047,1
    - Dst: arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - master
    - cmd
    argTypes:
    - struct arm_smmu_master*
    - struct arm_smmu_cmdq_ent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1037
    functionDepth: 6
    functionLinenumber: 1037
    functionLinenumberEnd: 1051
    functionName: arm_smmu_atc_inv_master
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_cmdq_issue_sync
    - arm_smmu_cmdq_issue_cmd
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_atc_inv_master(struct arm_smmu_master *master,\n\t\t\t\t
      \  struct arm_smmu_cmdq_ent *cmd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smp_mb
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1077,1
    - Dst: atomic_read
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1078,1
    - Dst: arm_smmu_atc_inv_to_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1081,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1083,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1084,1
    - Dst: arm_smmu_atc_inv_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1085,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - smmu_domain
    - ssid
    - iova
    - size
    argTypes:
    - struct arm_smmu_domain*
    - int
    - unsigned long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1053
    functionDepth: 7
    functionLinenumber: 1053
    functionLinenumberEnd: 1089
    functionName: arm_smmu_atc_inv_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - smp_mb
    - arm_smmu_atc_inv_to_cmd
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - arm_smmu_atc_inv_master
    - list_for_each_entry
    - atomic_read
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain,\n\t\t\t\t
      \  int ssid, unsigned long iova, size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1108,1
    - Dst: arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1092
    functionDepth: 6
    functionLinenumber: 1092
    functionLinenumberEnd: 1110
    functionName: arm_smmu_tlb_inv_context
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 3
    functionsReached:
    - arm_smmu_cmdq_issue_sync
    - arm_smmu_cmdq_issue_cmd
    linkageType: ''
    returnType: void
    signature: void arm_smmu_tlb_inv_context(void *cookie)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1121,1
    - Dst: mutex_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1125,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1126,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1130
    functionName: arm_smmu_domain_alloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - mutex_init
    - spin_lock_init
    - INIT_LIST_HEAD
    linkageType: ''
    returnType: struct iommu_domain
    signature: struct iommu_domain *arm_smmu_domain_alloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_zero_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1137,1
    - Dst: test_and_set_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - map
    - span
    argTypes:
    - unsigned long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1143
    functionName: arm_smmu_bitmap_alloc
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - find_first_zero_bit
    - test_and_set_bit
    linkageType: ''
    returnType: int
    signature: int arm_smmu_bitmap_alloc(unsigned long *map, int span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - idx
    argTypes:
    - unsigned long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1148
    functionName: arm_smmu_bitmap_free
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - clear_bit
    linkageType: ''
    returnType: void
    signature: void arm_smmu_bitmap_free(unsigned long *map, int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1152,1
    - Dst: arm_smmu_bitmap_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1157,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1160
    functionName: arm_smmu_domain_free
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_bitmap_free
    - xfree
    - to_smmu_domain
    linkageType: ''
    returnType: void
    signature: void arm_smmu_domain_free(struct iommu_domain *domain)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: typeof
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1170,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1176,1
    - Dst: page_to_maddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1208,1
    - Dst: arm_smmu_bitmap_alloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1210,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1216,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1217,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1218,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1219,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1220,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1221,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1222,1
    - Dst: printk
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - smmu_domain
    - master
    argTypes:
    - struct arm_smmu_domain*
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1229
    functionName: arm_smmu_domain_finalise_s2
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_bitmap_alloc
    - typeof
    - BUILD_BUG_ON
    - printk
    - FIELD_PREP
    - page_to_maddr
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_domain_finalise_s2(struct arm_smmu_domain *smmu_domain,\n\t\t\t\t
      \      struct arm_smmu_master *master)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1235,1
    - Dst: arm_smmu_domain_finalise_s2
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - domain
    - master
    argTypes:
    - struct iommu_domain*
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: arm_smmu_domain_finalise
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_domain_finalise_s2
    - to_smmu_domain
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_domain_finalise(struct iommu_domain *domain,\n\t\t\t\t
      \   struct arm_smmu_master *master)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - smmu
    - sid
    argTypes:
    - struct arm_smmu_device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1267
    functionName: arm_smmu_get_step_for_sid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __le64
    signature: __le64 *arm_smmu_get_step_for_sid(struct arm_smmu_device *smmu, u32
      sid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_get_step_for_sid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1276,1
    - Dst: arm_smmu_write_strtab_ent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1269
    functionDepth: 8
    functionLinenumber: 1269
    functionLinenumberEnd: 1287
    functionName: arm_smmu_install_ste_for_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_write_strtab_ent
    - arm_smmu_get_step_for_sid
    linkageType: ''
    returnType: void
    signature: void arm_smmu_install_ste_for_dev(struct arm_smmu_master *master)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1294,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1302,1
    - Dst: pci_ats_supported
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1302,1
    - Dst: to_pci_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1303
    functionName: arm_smmu_ats_supported
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - to_pci_dev
    - dev_iommu_fwspec_get
    - pci_ats_supported
    - dev_is_pci
    linkageType: ''
    returnType: bool
    signature: bool arm_smmu_ats_supported(struct arm_smmu_master *master)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1317,1
    - Dst: to_pci_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1318,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1320,1
    - Dst: arm_smmu_atc_inv_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1321,1
    - Dst: pci_enable_ats
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1322,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1305
    functionDepth: 8
    functionLinenumber: 1305
    functionLinenumberEnd: 1324
    functionName: arm_smmu_enable_ats
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - to_pci_dev
    - dev_err
    - __ffs
    - arm_smmu_atc_inv_domain
    - atomic_inc
    - pci_enable_ats
    linkageType: ''
    returnType: void
    signature: void arm_smmu_enable_ats(struct arm_smmu_master *master)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_disable_ats
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1334,1
    - Dst: to_pci_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1334,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1339,1
    - Dst: arm_smmu_atc_inv_to_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1340,1
    - Dst: arm_smmu_atc_inv_master
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1341,1
    - Dst: atomic_dec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 7
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: arm_smmu_disable_ats
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - to_pci_dev
    - arm_smmu_atc_inv_to_cmd
    - wmb
    - pci_disable_ats
    - arm_smmu_atc_inv_master
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void arm_smmu_disable_ats(struct arm_smmu_master *master)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1352,1
    - Dst: to_pci_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1355,1
    - Dst: pci_pasid_features
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1357,1
    - Dst: pci_max_pasids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1361,1
    - Dst: pci_enable_pasid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1365,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1372
    functionName: arm_smmu_enable_pasid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - to_pci_dev
    - dev_err
    - pci_max_pasids
    - pci_pasid_features
    - dev_is_pci
    - pci_enable_pasid
    linkageType: ''
    returnType: int
    signature: int arm_smmu_enable_pasid(struct arm_smmu_master *master)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1379,1
    - Dst: to_pci_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1382,1
    - Dst: pci_disable_pasid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1374
    functionDepth: 0
    functionLinenumber: 1374
    functionLinenumberEnd: 1388
    functionName: __maybe_unused::arm_smmu_disable_pasid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - to_pci_dev
    - pci_disable_pasid
    - dev_is_pci
    linkageType: ''
    returnType: void
    signature: 'void __maybe_unused

      arm_smmu_disable_pasid(struct arm_smmu_master *master)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1393
    functionName: arm_smmu_ats_supported
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arm_smmu_ats_supported(struct arm_smmu_master *master)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1395
    functionName: arm_smmu_enable_ats
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arm_smmu_enable_ats(struct arm_smmu_master *master)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1397
    functionName: arm_smmu_disable_ats
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arm_smmu_disable_ats(struct arm_smmu_master *master)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1402
    functionName: arm_smmu_enable_pasid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int arm_smmu_enable_pasid(struct arm_smmu_master *master)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1405
    functionName: __maybe_unused::arm_smmu_disable_pasid
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void __maybe_unused

      arm_smmu_disable_pasid(struct arm_smmu_master *master)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_disable_ats
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1416,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1418,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1419,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1420,1
    - Dst: arm_smmu_install_ste_for_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - master
    argTypes:
    - struct arm_smmu_master*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1408
    functionDepth: 9
    functionLinenumber: 1408
    functionLinenumberEnd: 1425
    functionName: arm_smmu_detach_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - arm_smmu_disable_ats
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - list_del
    - arm_smmu_install_ste_for_dev
    linkageType: ''
    returnType: void
    signature: void arm_smmu_detach_dev(struct arm_smmu_master *master)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1431,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1433,1
    - Dst: dev_iommu_priv_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1439,1
    - Dst: arm_smmu_detach_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1442,1
    - Dst: mutex_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1444,1
    - Dst: arm_smmu_domain_finalise
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1448,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1454,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1456,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1457,1
    - Dst: arm_smmu_ats_supported
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1465,1
    - Dst: arm_smmu_install_ste_for_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1467,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1469,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1470,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1471,1
    - Dst: arm_smmu_enable_ats
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1473,1
    - Dst: mutex_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - domain
    - dev
    argTypes:
    - struct iommu_domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1427
    functionDepth: 9
    functionLinenumber: 1427
    functionLinenumberEnd: 1478
    functionName: arm_smmu_attach_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_err
    - arm_smmu_ats_supported
    - arm_smmu_enable_ats
    - dev_iommu_priv_get
    - mutex_lock
    - spin_lock_irqsave
    - mutex_unlock
    - spin_unlock_irqrestore
    - arm_smmu_detach_dev
    - list_add
    - arm_smmu_domain_finalise
    - dev_iommu_fwspec_get
    - dev_name
    - to_smmu_domain
    - arm_smmu_install_ste_for_dev
    linkageType: ''
    returnType: int
    signature: int arm_smmu_attach_dev(struct iommu_domain *domain, struct device
      *dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - smmu
    - sid
    argTypes:
    - struct arm_smmu_device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1488
    functionName: arm_smmu_sid_in_range
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool arm_smmu_sid_in_range(struct arm_smmu_device *smmu, u32 sid)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1504,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1506,1
    - Dst: iommu_add_pci_sideband_ids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1513,1
    - Dst: iommu_fwspec_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1515,1
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1521,1
    - Dst: arm_smmu_get_by_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1525,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1529,1
    - Dst: dev_iommu_priv_set
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1537,1
    - Dst: arm_smmu_sid_in_range
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1543,1
    - Dst: arm_smmu_init_l2_strtab
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1550,1
    - Dst: arm_smmu_enable_pasid
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1564,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1566,1
    - Dst: dt_device_is_protected
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1568,1
    - Dst: dev_to_dt
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1568,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1569,1
    - Dst: dt_device_set_protected
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1574,1
    - Dst: dev_to_dt
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1574,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1577,1
    - Dst: dev_name
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1578,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1581,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1583,1
    - Dst: arm_smmu_assign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1591,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1601,1
    - Dst: dev_iommu_priv_set
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1602,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 2
    argNames:
    - devfn
    - dev
    argTypes:
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1496
    functionDepth: 10
    functionLinenumber: 1496
    functionLinenumberEnd: 1604
    functionName: arm_smmu_add_device
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_info
    - arm_smmu_init_l2_strtab
    - xfree
    - xzalloc
    - dt_device_set_protected
    - dev_is_pci
    - arm_smmu_assign_dev
    - dev_to_dt
    - iommu_add_pci_sideband_ids
    - dev_iommu_fwspec_get
    - arm_smmu_sid_in_range
    - dev_err
    - dev_iommu_priv_set
    - dt_device_is_protected
    - arm_smmu_enable_pasid
    - dev_name
    - dev_to_pci
    - arm_smmu_get_by_dev
    - iommu_fwspec_free
    linkageType: ''
    returnType: int
    signature: int arm_smmu_add_device(u8 devfn, struct device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iommu_fwspec_add_ids
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - args
    argTypes:
    - struct device*
    - struct dt_phandle_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1610
    functionName: arm_smmu_dt_xlate
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - iommu_fwspec_add_ids
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_dt_xlate(struct device *dev,\n\t\t\t\tconst struct dt_phandle_args
      *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dmam_alloc_coherent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1624,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1633,1
    - Dst: WARN_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1639,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1640,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 7
    argNames:
    - smmu
    - q
    - page
    - prod_off
    - cons_off
    - dwords
    - name
    argTypes:
    - struct arm_smmu_device*
    - struct arm_smmu_queue*
    - void*
    - unsigned long
    - unsigned long
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1657
    functionName: arm_smmu_init_one_queue
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - dev_info
    - dmam_alloc_coherent
    - FIELD_PREP
    - WARN_ON
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,\n\t\t\t\t
      \  struct arm_smmu_queue *q,\n\t\t\t\t   void __iomem *page,\n\t\t\t\t   unsigned
      long prod_off,\n\t\t\t\t   unsigned long cons_off,\n\t\t\t\t   size_t dwords,
      const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1664,1
    - Dst: arm_smmu_init_one_queue
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1665,1
    - Dst: arm_smmu_init_one_queue
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1672,1
    - Dst: arm_smmu_init_one_queue
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1659
    functionDepth: 3
    functionLinenumber: 1659
    functionLinenumberEnd: 1685
    functionName: arm_smmu_init_queues
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - spin_lock_init
    - arm_smmu_init_one_queue
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_queues(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _xzalloc_array
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1693,1
    - Dst: arm_smmu_write_strtab_l1_desc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1687
    functionDepth: 2
    functionLinenumber: 1687
    functionLinenumberEnd: 1704
    functionName: arm_smmu_init_l1_strtab
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - _xzalloc_array
    - arm_smmu_write_strtab_l1_desc
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_l1_strtab(struct arm_smmu_device *smmu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ilog2
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1714,1
    - Dst: min
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1715,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1720,1
    - Dst: dmam_alloc_coherent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1725,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1728,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1736,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1737,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1738,1
    - Dst: arm_smmu_init_l1_strtab
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1706
    functionDepth: 3
    functionLinenumber: 1706
    functionLinenumberEnd: 1742
    functionName: arm_smmu_init_strtab_2lvl
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - dev_warn
    - dmam_alloc_coherent
    - arm_smmu_init_l1_strtab
    - min
    - FIELD_PREP
    - ilog2
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_strtab_2lvl(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dmam_alloc_coherent
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1752,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1755,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1764,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1765,1
    - Dst: arm_smmu_init_bypass_stes
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1744
    functionDepth: 9
    functionLinenumber: 1744
    functionLinenumberEnd: 1770
    functionName: arm_smmu_init_strtab_linear
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - arm_smmu_init_bypass_stes
    - FIELD_PREP
    - dmam_alloc_coherent
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_strtab_linear(struct arm_smmu_device *smmu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_init_strtab_2lvl
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1778,1
    - Dst: arm_smmu_init_strtab_linear
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1780,1
    - Dst: set_bit
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1772
    functionDepth: 10
    functionLinenumber: 1772
    functionLinenumberEnd: 1793
    functionName: arm_smmu_init_strtab
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_init_strtab_2lvl
    - arm_smmu_init_strtab_linear
    - set_bit
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_strtab(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_init_queues
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1799,1
    - Dst: arm_smmu_init_strtab
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1795
    functionDepth: 11
    functionLinenumber: 1795
    functionLinenumberEnd: 1804
    functionName: arm_smmu_init_structures
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_init_strtab
    - arm_smmu_init_queues
    linkageType: ''
    returnType: int
    signature: int arm_smmu_init_structures(struct arm_smmu_device *smmu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1811,1
    - Dst: readl_relaxed_poll_timeout
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - smmu
    - val
    - reg_off
    - ack_off
    argTypes:
    - struct arm_smmu_device*
    - u32
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1806
    functionDepth: 1
    functionLinenumber: 1806
    functionLinenumberEnd: 1814
    functionName: arm_smmu_write_reg_sync
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - writel_relaxed
    - readl_relaxed_poll_timeout
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_write_reg_sync(struct arm_smmu_device *smmu, u32 val,\n\t\t\t\t
      \  unsigned int reg_off, unsigned int ack_off)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed_poll_timeout
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1823,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1830,1
    - Dst: readl_relaxed_poll_timeout
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1831,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - smmu
    - set
    - clr
    argTypes:
    - struct arm_smmu_device*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1817
    functionDepth: 1
    functionLinenumber: 1817
    functionLinenumberEnd: 1837
    functionName: arm_smmu_update_gbpa
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - writel_relaxed
    - readl_relaxed_poll_timeout
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_update_gbpa(struct arm_smmu_device *smmu,\n                                       u32
      set, u32 clr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: platform_msi_domain_free_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1844
    functionName: arm_smmu_free_msis
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - platform_msi_domain_free_irqs
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_msis(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msi_desc_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1849,1
    - Dst: dev_get_drvdata
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1850,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1856,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1857,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - desc
    - msg
    argTypes:
    - struct msi_desc*
    - struct msi_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1846
    functionDepth: 1
    functionLinenumber: 1846
    functionLinenumberEnd: 1859
    functionName: arm_smmu_write_msi_msg
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_get_drvdata
    - writel_relaxed
    - writeq_relaxed
    - msi_desc_to_dev
    linkageType: ''
    returnType: void
    signature: void arm_smmu_write_msi_msg(struct msi_desc *desc, struct msi_msg *msg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1868,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1869,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1872,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1880,1
    - Dst: platform_msi_domain_alloc_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1885,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1887,1
    - Dst: devm_add_action
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1908,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1909
    functionName: arm_smmu_setup_msis
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_warn
    - dev_info
    - writeq_relaxed
    - platform_msi_domain_alloc_irqs
    - devm_add_action
    linkageType: ''
    returnType: void
    signature: void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1905
    functionName: for_each_msi_entry
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void for_each_msi_entry(desc, dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1911
    functionName: arm_smmu_setup_msis
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1920,1
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1924,1
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1928,1
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1936
    functionName: arm_smmu_free_irqs
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - release_irq
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_irqs(struct arm_smmu_device *smmu)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_setup_msis
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1942,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1947,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1950,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1954,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1959,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1962,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1966,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1972,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1975,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1980,1
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1989,1
    - Dst: release_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:1993,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1938
    functionDepth: 2
    functionLinenumber: 1938
    functionLinenumberEnd: 1996
    functionName: arm_smmu_setup_unique_irqs
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_setup_msis
    - request_irq
    - dev_warn
    - release_irq
    linkageType: ''
    returnType: int
    signature: int arm_smmu_setup_unique_irqs(struct arm_smmu_device *smmu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2004,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2007,1
    - Dst: request_irq
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2017,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2020,1
    - Dst: arm_smmu_setup_unique_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2024,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2026,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2035,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2038,1
    - Dst: arm_smmu_free_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2045,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 1998
    functionDepth: 3
    functionLinenumber: 1998
    functionLinenumberEnd: 2047
    functionName: arm_smmu_setup_irqs
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - arm_smmu_write_reg_sync
    - dev_warn
    - arm_smmu_free_irqs
    - arm_smmu_setup_unique_irqs
    - request_irq
    linkageType: ''
    returnType: int
    signature: int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2053,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2049
    functionDepth: 2
    functionLinenumber: 2049
    functionLinenumberEnd: 2058
    functionName: arm_smmu_device_disable
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_err
    - arm_smmu_write_reg_sync
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_disable(struct arm_smmu_device *smmu)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2067,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2069,1
    - Dst: WARN_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2070,1
    - Dst: arm_smmu_update_gbpa
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2071,1
    - Dst: arm_smmu_device_disable
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2074,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2079,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2080,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2081,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2082,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2083,1
    - Dst: FIELD_PREP
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2084,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2085,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2089,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2092,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2094,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2098,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2099,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2100,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2103,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2106,1
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2112,1
    - Dst: arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2113,1
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2118,1
    - Dst: arm_smmu_cmdq_issue_cmd
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2122,1
    - Dst: arm_smmu_cmdq_issue_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2123,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2126,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2127,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2128,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2131,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2134,1
    - Dst: writeq_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2140,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2142,1
    - Dst: writel_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2144,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2148,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2151,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2158,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2161,1
    - Dst: arm_smmu_setup_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2166,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2168,1
    - Dst: tasklet_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2173,1
    - Dst: tasklet_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2174,1
    - Dst: tasklet_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2175,1
    - Dst: arm_smmu_update_gbpa
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2182,1
    - Dst: arm_smmu_write_reg_sync
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2186,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2189,1
    - Dst: arm_smmu_free_irqs
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2196,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 90
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2060
    functionDepth: 6
    functionLinenumber: 2060
    functionLinenumberEnd: 2198
    functionName: arm_smmu_device_reset
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - arm_smmu_device_disable
    - dev_err
    - arm_smmu_cmdq_issue_sync
    - arm_smmu_write_reg_sync
    - dev_warn
    - arm_smmu_setup_irqs
    - arm_smmu_free_irqs
    - writel_relaxed
    - readl_relaxed
    - tasklet_init
    - arm_smmu_cmdq_issue_cmd
    - arm_smmu_update_gbpa
    - writeq_relaxed
    - FIELD_PREP
    - WARN_ON
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_reset(struct arm_smmu_device *smmu)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2206,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2209,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2220,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2234,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2239,1
    - Dst: IS_ENABLED
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2242,1
    - Dst: dev_warn
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2261,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2264,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2277,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2282,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2289,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2297,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2299,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2304,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2305,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2308,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2312,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2313,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2314,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2315,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2318,1
    - Dst: readl_relaxed
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2328,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2331,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2342,1
    - Dst: FIELD_GET
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2346,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2367,1
    - Dst: min_t
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2375,1
    - Dst: max
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2376,1
    - Dst: p2m_restrict_ipa_bits
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2379,1
    - Dst: dev_info
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2381,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 114
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2384
    functionName: arm_smmu_device_hw_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_err
    - max
    - dev_warn
    - dev_info
    - FIELD_GET
    - IS_ENABLED
    - readl_relaxed
    - min_t
    - p2m_restrict_ipa_bits
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_notice
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - model
    - smmu
    argTypes:
    - u32
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2399
    functionName: acpi_smmu_get_options
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_notice
    linkageType: ''
    returnType: void
    signature: void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dev_get_platdata
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2408,1
    - Dst: acpi_smmu_get_options
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pdev
    - smmu
    argTypes:
    - struct platform_device*
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2401
    functionDepth: 1
    functionLinenumber: 2401
    functionLinenumberEnd: 2419
    functionName: arm_smmu_device_acpi_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dev_get_platdata
    - acpi_smmu_get_options
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_device_acpi_probe(struct platform_device *pdev,\n\t\t\t\t
      \     struct arm_smmu_device *smmu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pdev
    - smmu
    argTypes:
    - struct platform_device*
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2421
    functionDepth: 0
    functionLinenumber: 2421
    functionLinenumberEnd: 2425
    functionName: arm_smmu_device_acpi_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_device_acpi_probe(struct platform_device *pdev,\n\t\t\t\t\t
      \    struct arm_smmu_device *smmu)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2435,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2436,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2438,1
    - Dst: parse_driver_options
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2442,1
    - Dst: dt_get_property
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pdev
    - smmu
    argTypes:
    - struct platform_device*
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2428
    functionDepth: 4
    functionLinenumber: 2428
    functionLinenumberEnd: 2448
    functionName: arm_smmu_device_dt_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dev_err
    - dt_get_property
    - dt_property_read_u32
    - parse_driver_options
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_device_dt_probe(struct platform_device *pdev,\n\t\t\t\t
      \   struct arm_smmu_device *smmu)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2456
    functionName: arm_smmu_resource_size
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long arm_smmu_resource_size(struct arm_smmu_device *smmu)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2462,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2465,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2468,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2471,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - smmu
    argTypes:
    - struct arm_smmu_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2475
    functionName: arm_smmu_free_structures
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - xfree
    linkageType: ''
    returnType: void
    signature: void arm_smmu_free_structures(struct arm_smmu_device *smmu)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: dev_to_dt
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2482,1
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2484,1
    - Dst: arm_smmu_device_dt_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2490,1
    - Dst: arm_smmu_device_acpi_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2494,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2500,1
    - Dst: arm_smmu_resource_size
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2504,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2505,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2514,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2515,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2516,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2521,1
    - Dst: IS_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2523,1
    - Dst: PTR_ERR
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2524,1
    - Dst: platform_get_irq_byname
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2533,1
    - Dst: platform_get_irq_byname
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2537,1
    - Dst: platform_get_irq_byname
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2541,1
    - Dst: platform_get_irq_byname
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2545,1
    - Dst: arm_smmu_device_hw_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2550,1
    - Dst: arm_smmu_init_structures
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2557,1
    - Dst: arm_smmu_device_reset
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2562,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2570,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2572,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2573,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2574,1
    - Dst: arm_smmu_free_structures
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2580,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2582,1
    - Dst: iounmap
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2584,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2587,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 1
    argNames:
    - pdev
    argTypes:
    - struct platform_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2477
    functionDepth: 12
    functionLinenumber: 2477
    functionLinenumberEnd: 2590
    functionName: arm_smmu_device_probe
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - spin_lock
    - arm_smmu_device_hw_probe
    - xfree
    - xzalloc
    - arm_smmu_free_structures
    - dev_to_dt
    - arm_smmu_device_reset
    - dev_err
    - spin_unlock
    - arm_smmu_init_structures
    - arm_smmu_resource_size
    - ioremap_nocache
    - dt_device_get_paddr
    - arm_smmu_device_acpi_probe
    - platform_get_irq_byname
    - IS_ERR
    - iounmap
    - PTR_ERR
    - arm_smmu_device_dt_probe
    - INIT_LIST_HEAD
    - list_add
    linkageType: ''
    returnType: int
    signature: int arm_smmu_device_probe(struct platform_device *pdev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2609,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2612,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2614,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2620,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2620,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2620,1
    - Dst: arm_smmu_tlb_inv_context
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2623,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2623,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2607
    functionDepth: 1
    functionLinenumber: 2607
    functionLinenumberEnd: 2629
    functionName: __must_check::arm_smmu_iotlb_flush_all
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - dom_iommu
    - arm_smmu_tlb_inv_context
    - spin_lock
    - unlikely
    - ACCESS_ONCE
    - list_for_each_entry
    - to_smmu_domain
    linkageType: ''
    returnType: int
    signature: int __must_check arm_smmu_iotlb_flush_all(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __must_check::arm_smmu_iotlb_flush_all
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - d
    - dfn
    - page_count
    - flush_flags
    argTypes:
    - struct domain*
    - dfn_t
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2631
    functionDepth: 2
    functionLinenumber: 2631
    functionLinenumberEnd: 2635
    functionName: __must_check::arm_smmu_iotlb_flush
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - __must_check::arm_smmu_iotlb_flush_all
    linkageType: ''
    returnType: int
    signature: "int __must_check arm_smmu_iotlb_flush(struct domain *d, dfn_t dfn,\n\t\t\t\tunsigned
      long page_count, unsigned int flush_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2641,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2643,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2645,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2637
    functionDepth: 0
    functionLinenumber: 2637
    functionLinenumberEnd: 2653
    functionName: arm_smmu_get_by_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - spin_lock
    - list_for_each_entry
    - spin_unlock
    linkageType: ''
    returnType: struct arm_smmu_device
    signature: struct arm_smmu_device *arm_smmu_get_by_dev(const struct device *dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dev_iommu_fwspec_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2660,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2661,1
    - Dst: arm_smmu_get_by_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2662,1
    - Dst: list_for_each_entry
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2671,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - d
    - dev
    argTypes:
    - struct domain*
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2677
      start: 2655
    functionDepth: 1
    functionLinenumber: 2655
    functionLinenumberEnd: 2677
    functionName: arm_smmu_get_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 1
    functionsReached:
    - dom_iommu
    - arm_smmu_get_by_dev
    - dev_iommu_fwspec_get
    - list_for_each_entry
    - to_smmu_domain
    linkageType: ''
    returnType: struct iommu_domain
    signature: "struct iommu_domain *arm_smmu_get_domain(struct domain *d,\n\t\t\t\tstruct
      device *dev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2681,1
    - Dst: arm_smmu_domain_free
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_domain
    argTypes:
    - struct iommu_domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2679
    functionDepth: 2
    functionLinenumber: 2679
    functionLinenumberEnd: 2683
    functionName: arm_smmu_destroy_iommu_domain
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 2
    functionsReached:
    - arm_smmu_domain_free
    - list_del
    linkageType: ''
    returnType: void
    signature: void arm_smmu_destroy_iommu_domain(struct iommu_domain *io_domain)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2691,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2694,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2696,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2702,1
    - Dst: pcidevs_locked
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2702,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2704,1
    - Dst: list_del
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2705,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2706,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2710,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2711,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2712,1
    - Dst: dev_iommu_priv_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2717,1
    - Dst: arm_smmu_deassign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2722,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2729,1
    - Dst: arm_smmu_get_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2735,1
    - Dst: arm_smmu_domain_alloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2737,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2742,1
    - Dst: list_add
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2746,1
    - Dst: arm_smmu_attach_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2749,1
    - Dst: arm_smmu_destroy_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2752,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2754,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2758,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - d
    - devfn
    - dev
    - flag
    argTypes:
    - struct domain*
    - u8
    - struct device*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2685
    functionDepth: 2
    functionLinenumber: 2685
    functionLinenumberEnd: 2760
    functionName: arm_smmu_assign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 3
    functionsReached:
    - arm_smmu_deassign_dev
    - arm_smmu_domain_alloc
    - spin_lock
    - list_add
    - dev_is_pci
    - list_del
    - arm_smmu_destroy_iommu_domain
    - to_smmu_domain
    - spin_unlock
    - dom_iommu
    - write_unlock
    - ASSERT
    - atomic_inc
    - write_lock
    - dev_to_pci
    - arm_smmu_attach_dev
    - dev_iommu_priv_get
    - arm_smmu_get_domain
    - pcidevs_locked
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_assign_dev(struct domain *d, u8 devfn,\n\t\tstruct device
      *dev, u32 flag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: arm_smmu_get_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2764,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2765,1
    - Dst: to_smmu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2766,1
    - Dst: dev_iommu_priv_get
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2767,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2770,1
    - Dst: dev_to_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2772,1
    - Dst: dev_err
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2785,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2789,1
    - Dst: arm_smmu_detach_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2791,1
    - Dst: atomic_dec
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2792,1
    - Dst: arm_smmu_destroy_iommu_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2795,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - d
    - devfn
    - dev
    argTypes:
    - struct domain*
    - uint8_t
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2762
    functionDepth: 2
    functionLinenumber: 2762
    functionLinenumberEnd: 2800
    functionName: arm_smmu_deassign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 3
    functionsReached:
    - dev_err
    - spin_unlock
    - dom_iommu
    - dev_iommu_priv_get
    - dev_is_pci
    - spin_lock
    - arm_smmu_detach_dev
    - arm_smmu_destroy_iommu_domain
    - dev_to_pci
    - arm_smmu_get_domain
    - to_smmu_domain
    - atomic_dec
    linkageType: ''
    returnType: int
    signature: int arm_smmu_deassign_dev(struct domain *d, uint8_t devfn, struct device
      *dev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2810,1
    - Dst: dev_is_pci
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2810,1
    - Dst: arm_smmu_deassign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2816,1
    - Dst: arm_smmu_assign_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 4
    argNames:
    - s
    - t
    - devfn
    - dev
    argTypes:
    - struct domain*
    - struct domain*
    - u8
    - struct device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2802
    functionDepth: 0
    functionLinenumber: 2802
    functionLinenumberEnd: 2828
    functionName: arm_smmu_reassign_dev
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - arm_smmu_assign_dev
    - arm_smmu_deassign_dev
    - is_hardware_domain
    - dev_is_pci
    linkageType: ''
    returnType: int
    signature: "int arm_smmu_reassign_dev(struct domain *s, struct domain *t,\n\t\t\t\tu8
      devfn,  struct device *dev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xzalloc
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2834,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2838,1
    - Dst: INIT_LIST_HEAD
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2839,1
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2841,1
    - Dst: iommu_set_feature
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2830
    functionDepth: 1
    functionLinenumber: 2830
    functionLinenumberEnd: 2848
    functionName: arm_smmu_iommu_xen_domain_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - xzalloc
    - dom_iommu
    - iommu_set_feature
    - INIT_LIST_HEAD
    - spin_lock_init
    linkageType: ''
    returnType: int
    signature: int arm_smmu_iommu_xen_domain_init(struct domain *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dom_iommu
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2852,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2854,1
    - Dst: list_empty
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2854,1
    - Dst: xfree
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2856
    functionName: arm_smmu_iommu_xen_domain_teardown
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - dom_iommu
    - xfree
    - list_empty
    linkageType: ''
    returnType: void
    signature: void arm_smmu_iommu_xen_domain_teardown(struct domain *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2882,1
    - Dst: arm_smmu_device_probe
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2884,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2884,1
    - Dst: iommu_set_ops
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2888,1
    - Dst: arm_smmu_get_by_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2891,1
    - Dst: dt_to_dev
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2891,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c:2894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2899
      start: 2872
    functionDepth: 13
    functionLinenumber: 2872
    functionLinenumberEnd: 2899
    functionName: arm_smmu_dt_init
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.c
    functionUses: 0
    functionsReached:
    - dt_device_set_used_by
    - arm_smmu_get_by_dev
    - arm_smmu_device_probe
    - dt_to_dev
    - BUG_ON
    - iommu_set_ops
    linkageType: ''
    returnType: __init
    signature: "__init arm_smmu_dt_init(struct dt_device_node *dev,\n\t\t\t\tconst
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - llq
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: Q_IDX
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_IDX(llq, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - llq
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: Q_WRP
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_WRP(llq, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: Q_OVF
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_OVF(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - q
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: Q_ENT
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Q_ENT(q, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _mask
    - ','
    - _val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: FIELD_PREP
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_PREP(_mask, _val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _mask
    - ','
    - _reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: FIELD_GET
    functionSourceFile: /src/xen/xen/drivers/passthrough/arm/smmu-v3.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIELD_GET(_mask, _reg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inb
      Src: /src/xen/xen/drivers/char/ns16550.c:128,1
    - Dst: readb
      Src: /src/xen/xen/drivers/char/ns16550.c:135,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ns16550.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - uart
    - reg
    argTypes:
    - struct ns16550*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 141
    functionName: ns_read_reg
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - inb
    - readb
    - readl
    linkageType: ''
    returnType: u8
    signature: u8 ns_read_reg(const struct ns16550 *uart, unsigned int reg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/drivers/char/ns16550.c:149,1
    - Dst: writeb
      Src: /src/xen/xen/drivers/char/ns16550.c:156,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ns16550.c:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - uart
    - reg
    - c
    argTypes:
    - struct ns16550*
    - unsigned int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: ns_write_reg
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - writeb
    - writel
    - outb
    linkageType: ''
    returnType: void
    signature: void ns_write_reg(const struct ns16550 *uart, unsigned int reg, u8
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: ns16550_ioport_invalid
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    linkageType: ''
    returnType: int
    signature: int ns16550_ioport_invalid(struct ns16550 *uart)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:175,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: handle_dw_usr_busy_quirk
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    linkageType: ''
    returnType: void
    signature: void handle_dw_usr_busy_quirk(struct ns16550 *uart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:196,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:198,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/ns16550.c:201,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/ns16550.c:203,1
    - Dst: handle_dw_usr_busy_quirk
      Src: /src/xen/xen/drivers/char/ns16550.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - irq
    - dev_id
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 215
    functionName: ns16550_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - serial_rx_interrupt
    - handle_dw_usr_busy_quirk
    - serial_tx_interrupt
    linkageType: ''
    returnType: void
    signature: void ns16550_interrupt(int irq, void *dev_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/char/ns16550.c:222,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/drivers/char/ns16550.c:230,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:232,1
    - Dst: ns16550_ioport_invalid
      Src: /src/xen/xen/drivers/char/ns16550.c:234,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/ns16550.c:237,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:240,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/ns16550.c:241,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/drivers/char/ns16550.c:244,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:245,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ns16550.c:245,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/char/ns16550.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 246
    functionName: __ns16550_poll
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - serial_tx_interrupt
    - set_timer
    - ns16550_ioport_invalid
    - this_cpu
    - MILLISECS
    - serial_rx_interrupt
    - NOW
    - set_irq_regs
    linkageType: ''
    returnType: void
    signature: void __ns16550_poll(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/char/ns16550.c:250,1
    - Dst: run_in_exception_handler
      Src: /src/xen/xen/drivers/char/ns16550.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: ns16550_poll
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - run_in_exception_handler
    - this_cpu
    linkageType: ''
    returnType: void
    signature: void ns16550_poll(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_ioport_invalid
      Src: /src/xen/xen/drivers/char/ns16550.c:258,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 263
    functionName: ns16550_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns16550_ioport_invalid
    linkageType: ''
    returnType: int
    signature: int ns16550_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: ns16550_putc
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_write_reg
    linkageType: ''
    returnType: void
    signature: void ns16550_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_ioport_invalid
      Src: /src/xen/xen/drivers/char/ns16550.c:275,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:276,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: ns16550_getc
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns16550_ioport_invalid
    linkageType: ''
    returnType: int
    signature: int ns16550_getc(struct serial_port *port, char *pc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ns16550.c:288,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:288,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ns16550.c:298,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:298,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:304,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:304,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ns16550.c:308,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 312
    functionName: pci_serial_early_init
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - pci_conf_write16
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: void pci_serial_early_init(struct ns16550 *uart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_serial_early_init
      Src: /src/xen/xen/drivers/char/ns16550.c:321,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:326,1
    - Dst: handle_dw_usr_busy_quirk
      Src: /src/xen/xen/drivers/char/ns16550.c:329,1
    - Dst: enable_exar_enhanced_bits
      Src: /src/xen/xen/drivers/char/ns16550.c:333,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:337,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:342,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:343,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:348,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:349,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:353,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:357,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:360,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 365
    functionName: ns16550_setup_preirq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns_write_reg
    - enable_exar_enhanced_bits
    - handle_dw_usr_busy_quirk
    - printk
    - pci_serial_early_init
    linkageType: ''
    returnType: void
    signature: void ns16550_setup_preirq(struct ns16550 *uart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/drivers/char/ns16550.c:379,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/drivers/char/ns16550.c:380,1
    - Dst: ioremap
      Src: /src/xen/xen/drivers/char/ns16550.c:383,1
    - Dst: ns16550_setup_preirq
      Src: /src/xen/xen/drivers/char/ns16550.c:387,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:391,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 394
    functionName: ns16550_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ioremap
    - ns16550_setup_preirq
    - set_fixmap_nocache
    - fix_to_virt
    linkageType: ''
    returnType: void
    signature: void ns16550_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: ns16550_init_irq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - create_irq
    linkageType: ''
    returnType: void
    signature: void ns16550_init_irq(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:411,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:415,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:419,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ns16550.c:419,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/char/ns16550.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 420
    functionName: ns16550_setup_postirq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - set_timer
    - ns_write_reg
    - MILLISECS
    - NOW
    linkageType: ''
    returnType: void
    signature: void ns16550_setup_postirq(struct ns16550 *uart)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: serial_async_transmit
      Src: /src/xen/xen/drivers/char/ns16550.c:430,1
    - Dst: init_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:432,1
    - Dst: init_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:434,1
    - Dst: max_t
      Src: /src/xen/xen/drivers/char/ns16550.c:439,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/drivers/char/ns16550.c:446,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/char/ns16550.c:446,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/char/ns16550.c:447,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:448,1
    - Dst: pci_ro_device
      Src: /src/xen/xen/drivers/char/ns16550.c:450,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/char/ns16550.c:451,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:452,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:459,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/char/ns16550.c:472,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/char/ns16550.c:474,1
    - Dst: pci_enable_msi
      Src: /src/xen/xen/drivers/char/ns16550.c:475,1
    - Dst: irq_to_desc
      Src: /src/xen/xen/drivers/char/ns16550.c:479,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/ns16550.c:482,1
    - Dst: setup_msi_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:483,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/ns16550.c:484,1
    - Dst: pci_disable_msi
      Src: /src/xen/xen/drivers/char/ns16550.c:486,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/char/ns16550.c:489,1
    - Dst: msi_free_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:495,1
    - Dst: destroy_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:497,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:502,1
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:514,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:515,1
    - Dst: ns16550_setup_postirq
      Src: /src/xen/xen/drivers/char/ns16550.c:518,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 422
    functionDepth: 7
    functionLinenumber: 422
    functionLinenumberEnd: 519
    functionName: ns16550_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - PFN_UP
    - pci_ro_device
    - PCI_DEVFN
    - spin_unlock_irqrestore
    - PFN_DOWN
    - msi_free_irq
    - setup_irq
    - irq_to_desc
    - PCI_SBDF
    - printk
    - ns16550_setup_postirq
    - pcidevs_lock
    - destroy_irq
    - rangeset_add_range
    - setup_msi_irq
    - pci_enable_msi
    - pci_disable_msi
    - max_t
    - init_timer
    - spin_lock_irqsave
    - pcidevs_unlock
    - pci_get_pdev
    - serial_async_transmit
    linkageType: ''
    returnType: void
    signature: void ns16550_init_postirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stop_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:527,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ns16550.c:531,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 6
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: ns16550_suspend
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - stop_timer
    - PCI_SBDF
    linkageType: ''
    returnType: void
    signature: void ns16550_suspend(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:543,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:543,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:549,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:549,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ns16550.c:553,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:553,1
    - Dst: ns16550_setup_preirq
      Src: /src/xen/xen/drivers/char/ns16550.c:559,1
    - Dst: ns16550_setup_postirq
      Src: /src/xen/xen/drivers/char/ns16550.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 536
    functionDepth: 7
    functionLinenumber: 536
    functionLinenumberEnd: 561
    functionName: _ns16550_resume
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns16550_setup_preirq
    - PCI_SBDF
    - pci_conf_write32
    - pci_conf_write16
    - ns16550_setup_postirq
    linkageType: ''
    returnType: void
    signature: void _ns16550_resume(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_ioport_invalid
      Src: /src/xen/xen/drivers/char/ns16550.c:569,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:570,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ns16550.c:570,1
    - Dst: _ns16550_resume
      Src: /src/xen/xen/drivers/char/ns16550.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 8
    functionLinenumber: 564
    functionLinenumberEnd: 573
    functionName: ns16550_delayed_resume
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - _ns16550_resume
    - set_timer
    - ns16550_ioport_invalid
    - NOW
    linkageType: ''
    returnType: void
    signature: void ns16550_delayed_resume(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_ioport_invalid
      Src: /src/xen/xen/drivers/char/ns16550.c:592,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ns16550.c:595,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ns16550.c:595,1
    - Dst: _ns16550_resume
      Src: /src/xen/xen/drivers/char/ns16550.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 575
    functionDepth: 8
    functionLinenumber: 575
    functionLinenumberEnd: 599
    functionName: ns16550_resume
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 2
    functionsReached:
    - _ns16550_resume
    - set_timer
    - ns16550_ioport_invalid
    - NOW
    linkageType: ''
    returnType: void
    signature: void ns16550_resume(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ioports_deny_access
      Src: /src/xen/xen/drivers/char/ns16550.c:611,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/char/ns16550.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 615
    functionName: ns16550_endboot
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - BUG
    - ioports_deny_access
    linkageType: ''
    returnType: void
    signature: void ns16550_endboot(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    functionName: ns16550_irq
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ns16550_irq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:626,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 631
    functionName: ns16550_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns_write_reg
    linkageType: ''
    returnType: void
    signature: void ns16550_start_tx(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:636,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 641
    functionName: ns16550_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns_write_reg
    linkageType: ''
    returnType: void
    signature: void ns16550_stop_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 649
    functionName: ns16550_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *ns16550_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: ns16550_init_common
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ns16550_init_common(struct ns16550 *uart)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 701
    functionName: parse_parity_char
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_parity_char(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_serial_early_init
      Src: /src/xen/xen/drivers/char/ns16550.c:718,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:724,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:725,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:731,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:732,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:733,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:734,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:742,1
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 745
    functionName: check_existence
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ns_read_reg
    - ns_write_reg
    - pci_serial_early_init
    linkageType: ''
    returnType: int
    signature: int check_existence(struct ns16550 *uart)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ns16550.c:1216,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1216,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ns16550.c:1220,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1220,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/ns16550.c:1236,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ns16550.c:1238,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1238,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ns16550.c:1240,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1240,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ns16550.c:1264,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1264,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1270,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1270,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ns16550.c:1272,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1272,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1274,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1274,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ns16550.c:1280,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1280,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1282,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1282,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ns16550.c:1284,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1284,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1286,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1286,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1300,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1300,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ns16550.c:1302,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1302,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ns16550.c:1304,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1304,1
    - Dst: max
      Src: /src/xen/xen/drivers/char/ns16550.c:1344,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/char/ns16550.c:1346,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1346,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/char/ns16550.c:1348,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1348,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:1360,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ns16550.c:1362,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 3
    argNames:
    - uart
    - skip_amt
    - idx
    argTypes:
    - struct ns16550*
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1376
    functionName: pci_uart_config
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - max
    - ARRAY_SIZE
    - PCI_SBDF
    - pci_conf_read32
    - printk
    - pci_conf_read8
    - pci_conf_write32
    linkageType: ''
    returnType: int
    signature: int pci_uart_config(struct ns16550 *uart, bool skip_amt, unsigned int
      idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ns_read_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:1392,1
    - Dst: ns_write_reg
      Src: /src/xen/xen/drivers/char/ns16550.c:1394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1397
    functionName: enable_exar_enhanced_bits
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 1
    functionsReached:
    - ns_read_reg
    - ns_write_reg
    linkageType: ''
    returnType: void
    signature: void enable_exar_enhanced_bits(const struct ns16550 *uart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/xen/xen/drivers/char/ns16550.c:1468,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/ns16550.c:1473,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - token
    - value
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1483
    functionName: serial_param_type::get_token
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ARRAY_SIZE
    - strsep
    linkageType: ''
    returnType: enum __init
    signature: enum __init serial_param_type get_token(char *token, char **value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1490
    functionName: PARSE_ERR
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_ERR(_f, _a...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - _f
    - ','
    - _a
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1491
    functionDepth: 0
    functionLinenumber: 1491
    functionLinenumberEnd: 1496
    functionName: PARSE_ERR_RET
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_ERR_RET(_f, _a...)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/ns16550.c:1505,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1526,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1531,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1537,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1542,1
    - Dst: parse_parity_char
      Src: /src/xen/xen/drivers/char/ns16550.c:1544,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1546,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1552,1
    - Dst: pci_uart_config
      Src: /src/xen/xen/drivers/char/ns16550.c:1554,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1558,1
    - Dst: pci_uart_config
      Src: /src/xen/xen/drivers/char/ns16550.c:1560,1
    - Dst: simple_strtoull
      Src: /src/xen/xen/drivers/char/ns16550.c:1567,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1574,1
    - Dst: simple_strtol
      Src: /src/xen/xen/drivers/char/ns16550.c:1582,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/ns16550.c:1588,1
    - Dst: PARSE_ERR_RET
      Src: /src/xen/xen/drivers/char/ns16550.c:1591,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/ns16550.c:1597,1
    - Dst: PARSE_ERR_RET
      Src: /src/xen/xen/drivers/char/ns16550.c:1599,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 2
    argNames:
    - uart
    - str
    argTypes:
    - struct ns16550*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1498
    functionDepth: 4
    functionLinenumber: 1498
    functionLinenumberEnd: 1605
    functionName: parse_positional
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - parse_parity_char
    - strchr
    - strncmp
    - simple_strtoull
    - pci_uart_config
    - simple_strtol
    - PARSE_ERR_RET
    - simple_strtoul
    linkageType: ''
    returnType: bool
    signature: bool parse_positional(struct ns16550 *uart, char **str)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strsep
      Src: /src/xen/xen/drivers/char/ns16550.c:1619,1
    - Dst: get_token
      Src: /src/xen/xen/drivers/char/ns16550.c:1621,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1624,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1628,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:1634,1
    - Dst: simple_strtoull
      Src: /src/xen/xen/drivers/char/ns16550.c:1638,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1642,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1646,1
    - Dst: parse_parity_char
      Src: /src/xen/xen/drivers/char/ns16550.c:1650,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1654,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1658,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ns16550.c:1662,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1667,1
    - Dst: pci_uart_config
      Src: /src/xen/xen/drivers/char/ns16550.c:1669,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ns16550.c:1672,1
    - Dst: pci_uart_config
      Src: /src/xen/xen/drivers/char/ns16550.c:1674,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/ns16550.c:1680,1
    - Dst: PARSE_ERR_RET
      Src: /src/xen/xen/drivers/char/ns16550.c:1682,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/ns16550.c:1687,1
    - Dst: PARSE_ERR_RET
      Src: /src/xen/xen/drivers/char/ns16550.c:1689,1
    - Dst: PARSE_ERR_RET
      Src: /src/xen/xen/drivers/char/ns16550.c:1695,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 2
    argNames:
    - str
    - uart
    argTypes:
    - char*
    - struct ns16550*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1607
    functionDepth: 4
    functionLinenumber: 1607
    functionLinenumberEnd: 1700
    functionName: parse_namevalue_pairs
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - parse_parity_char
    - get_token
    - simple_strtoul
    - strncmp
    - simple_strtoull
    - printk
    - pci_uart_config
    - PARSE_ERR_RET
    - strsep
    linkageType: ''
    returnType: bool
    signature: bool parse_namevalue_pairs(char *str, struct ns16550 *uart)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/char/ns16550.c:1717,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/ns16550.c:1717,1
    - Dst: parse_positional
      Src: /src/xen/xen/drivers/char/ns16550.c:1721,1
    - Dst: parse_namevalue_pairs
      Src: /src/xen/xen/drivers/char/ns16550.c:1724,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1731,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1733,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1735,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1737,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1739,1
    - Dst: check_existence
      Src: /src/xen/xen/drivers/char/ns16550.c:1740,1
    - Dst: PARSE_ERR
      Src: /src/xen/xen/drivers/char/ns16550.c:1741,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/ns16550.c:1744,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - uart
    - conf
    argTypes:
    - struct ns16550*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1702
    functionDepth: 5
    functionLinenumber: 1702
    functionLinenumberEnd: 1745
    functionName: ns16550_parse_port_config
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - parse_namevalue_pairs
    - ARRAY_SIZE
    - parse_positional
    - check_existence
    - strlcpy
    - PARSE_ERR
    - serial_register_uart
    linkageType: ''
    returnType: void
    signature: "void ns16550_parse_port_config(\n    struct ns16550 *uart, const char
      *conf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_init_common
      Src: /src/xen/xen/drivers/char/ns16550.c:1756,1
    - Dst: console_has
      Src: /src/xen/xen/drivers/char/ns16550.c:1759,1
    - Dst: parse_parity_char
      Src: /src/xen/xen/drivers/char/ns16550.c:1762,1
    - Dst: ns16550_parse_port_config
      Src: /src/xen/xen/drivers/char/ns16550.c:1770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - index
    - defaults
    argTypes:
    - int
    - struct ns16550_defaults*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1747
    functionDepth: 6
    functionLinenumber: 1747
    functionLinenumberEnd: 1771
    functionName: ns16550_init
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 1
    functionsReached:
    - parse_parity_char
    - ns16550_init_common
    - console_has
    - ns16550_parse_port_config
    linkageType: ''
    returnType: void
    signature: void ns16550_init(int index, struct ns16550_defaults *defaults)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ns16550_init_common
      Src: /src/xen/xen/drivers/char/ns16550.c:1785,1
    - Dst: dt_device_get_address
      Src: /src/xen/xen/drivers/char/ns16550.c:1792,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/drivers/char/ns16550.c:1796,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/drivers/char/ns16550.c:1802,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/drivers/char/ns16550.c:1811,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/ns16550.c:1817,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/drivers/char/ns16550.c:1822,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/ns16550.c:1833,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/ns16550.c:1835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1776
    functionDepth: 6
    functionLinenumber: 1776
    functionLinenumberEnd: 1838
    functionName: ns16550_uart_dt_init
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - dt_device_get_address
    - dt_device_set_used_by
    - dt_property_read_u32
    - platform_get_irq
    - ns16550_init_common
    - dt_device_is_compatible
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: "int ns16550_uart_dt_init(struct dt_device_node *dev,\n                                       const
      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/char/ns16550.c:1870,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/char/ns16550.c:1871,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:1873,1
    - Dst: container_of
      Src: /src/xen/xen/drivers/char/ns16550.c:1877,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ns16550.c:1879,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:1881,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ns16550.c:1889,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ns16550.c:1891,1
    - Dst: ns16550_init_common
      Src: /src/xen/xen/drivers/char/ns16550.c:1895,1
    - Dst: DIV_ROUND_UP
      Src: /src/xen/xen/drivers/char/ns16550.c:1907,1
    - Dst: irq_set_type
      Src: /src/xen/xen/drivers/char/ns16550.c:1912,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/ns16550.c:1922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1859
    functionDepth: 6
    functionLinenumber: 1859
    functionLinenumberEnd: 1925
    functionName: ns16550_acpi_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/ns16550.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - container_of
    - ns16550_init_common
    - acpi_get_table
    - DIV_ROUND_UP
    - printk
    - unlikely
    - irq_set_type
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: int ns16550_acpi_uart_init(const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: XHC_EXT_PORT_MAJOR
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XHC_EXT_PORT_MAJOR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: dbc_debug
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dbc_debug(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: dbc_alert
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dbc_alert(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: dbc_error
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dbc_error(...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:278,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - phys
    - size
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: dbc_sys_map_xhc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - set_fixmap_nocache
    - fix_to_virt
    linkageType: ''
    returnType: void
    signature: void *dbc_sys_map_xhc(uint64_t phys, size_t size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:307,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:308,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:312,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:326,1
    - Dst: dbc_error
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:333,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:338,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:339,1
    - Dst: dbc_error
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:349,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:353,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:354,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:356,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:357,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:358,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:359,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:361,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:362,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:364,1
    - Dst: dbc_sys_map_xhc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:367,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:374,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 377
    functionName: dbc_init_xhc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - dbc_error
    - PCI_SBDF
    - pci_conf_read32
    - dbc_sys_map_xhc
    - pci_conf_read8
    - pci_conf_write16
    - pci_conf_write32
    linkageType: ''
    returnType: bool
    signature: bool dbc_init_xhc(struct dbc *dbc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:401,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 416
    functionName: xhci_find_dbc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: struct dbc_reg
    signature: struct dbc_reg *xhci_find_dbc(struct dbc *dbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: xhci_trb_cyc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xhci_trb_cyc(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: xhci_trb_type
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xhci_trb_type(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - trb
    - c
    argTypes:
    - struct xhci_trb*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: xhci_trb_set_cyc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_set_cyc(struct xhci_trb *trb, uint32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - trb
    - t
    argTypes:
    - struct xhci_trb*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: xhci_trb_set_type
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_set_type(struct xhci_trb *trb, uint32_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - trb
    - addr
    argTypes:
    - struct xhci_trb*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: xhci_trb_norm_set_buf
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_norm_set_buf(struct xhci_trb *trb, uint64_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - trb
    - len
    argTypes:
    - struct xhci_trb*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: xhci_trb_norm_set_len
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_norm_set_len(struct xhci_trb *trb, uint32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: xhci_trb_norm_set_ioc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_norm_set_ioc(struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 466
    functionName: xhci_trb_norm_buf
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xhci_trb_norm_buf(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: xhci_trb_norm_len
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xhci_trb_norm_len(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 480
    functionName: xhci_trb_tfre_ptr
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xhci_trb_tfre_ptr(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: xhci_trb_tfre_cc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xhci_trb_tfre_cc(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: xhci_trb_tfre_len
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t xhci_trb_tfre_len(const struct xhci_trb *trb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - trb
    - rsp
    argTypes:
    - struct xhci_trb*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: xhci_trb_link_set_rsp
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_link_set_rsp(struct xhci_trb *trb, uint64_t rsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - trb
    argTypes:
    - struct xhci_trb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    functionName: xhci_trb_link_set_tc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xhci_trb_link_set_tc(struct xhci_trb *trb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:508,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:514,1
    - Dst: xhci_trb_set_type
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:523,1
    - Dst: xhci_trb_link_set_tc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:524,1
    - Dst: xhci_trb_link_set_rsp
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:525,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - dbc
    - ring
    - producer
    - doorbell
    argTypes:
    - struct dbc*
    - struct xhci_trb_ring*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 527
    functionName: xhci_trb_ring_init
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - xhci_trb_link_set_tc
    - xhci_trb_link_set_rsp
    - virt_to_maddr
    - xhci_trb_set_type
    - memset
    linkageType: ''
    returnType: void
    signature: "void xhci_trb_ring_init(const struct dbc *dbc,\n                              struct
      xhci_trb_ring *ring, int producer,\n                              int doorbell)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct xhci_trb_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: xhci_trb_ring_full
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool xhci_trb_ring_full(const struct xhci_trb_ring *ring)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct xhci_trb_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: xhci_trb_ring_size
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xhci_trb_ring_size(const struct xhci_trb_ring *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: dbc_work_ring_full
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dbc_work_ring_full(const struct dbc_work_ring *ring)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: dbc_work_ring_size
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dbc_work_ring_size(const struct dbc_work_ring *ring)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: dbc_work_ring_space_to_end
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dbc_work_ring_space_to_end(const struct dbc_work_ring
      *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:566,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dbc
    - doorbell
    argTypes:
    - struct dbc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: dbc_ring_doorbell
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - writel
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_ring_doorbell(struct dbc *dbc, int doorbell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xhci_trb_set_cyc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:586,1
    - Dst: xhci_trb_set_type
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:596,1
    - Dst: xhci_trb_set_cyc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:597,1
    - Dst: xhci_trb_norm_set_buf
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:599,1
    - Dst: xhci_trb_norm_set_len
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:600,1
    - Dst: xhci_trb_norm_set_ioc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:601,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - dbc
    - ring
    - dma
    - len
    argTypes:
    - struct dbc*
    - struct xhci_trb_ring*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 605
    functionName: dbc_push_trb
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - xhci_trb_norm_set_buf
    - xhci_trb_set_cyc
    - xhci_trb_norm_set_len
    - cache_flush
    - xhci_trb_norm_set_ioc
    - xhci_trb_set_type
    linkageType: ''
    returnType: void
    signature: "void dbc_push_trb(struct dbc *dbc, struct xhci_trb_ring *ring,\n                         uint64_t
      dma, uint64_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbc_work_ring_full
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:613,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:622,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:625,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - dbc
    - ring
    - buf
    - len
    argTypes:
    - struct dbc*
    - struct dbc_work_ring*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 630
    functionName: dbc_push_work
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - cache_flush
    - dbc_work_ring_full
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int dbc_push_work(struct dbc *dbc, struct dbc_work_ring *ring,\n
      \                            const char *buf, unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xhci_trb_type
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:639,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:643,1
    - Dst: xhci_trb_norm_buf
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:643,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:644,1
    - Dst: xhci_trb_norm_len
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:644,1
    - Dst: xhci_trb_norm_len
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:645,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:648,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dbc
    - trb
    - not_transferred
    argTypes:
    - struct dbc*
    - struct xhci_trb*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 655
    functionName: dbc_rx_trb
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - xhci_trb_norm_len
    - ASSERT
    - cache_flush
    - xhci_trb_type
    - xhci_trb_norm_buf
    linkageType: ''
    returnType: void
    signature: "void dbc_rx_trb(struct dbc *dbc, struct xhci_trb *trb,\n                       uint64_t
      not_transferred)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:664,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:669,1
    - Dst: rmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:671,1
    - Dst: xhci_trb_cyc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:673,1
    - Dst: xhci_trb_type
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:675,1
    - Dst: xhci_trb_tfre_ptr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:678,1
    - Dst: xhci_trb_tfre_cc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:691,1
    - Dst: xhci_trb_tfre_cc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:692,1
    - Dst: dbc_rx_trb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:693,1
    - Dst: xhci_trb_tfre_len
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:693,1
    - Dst: dbc_alert
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:697,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:701,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:703,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:715,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:716,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 657
    functionDepth: 3
    functionLinenumber: 657
    functionLinenumberEnd: 717
    functionName: dbc_pop_events
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - writel
    - rmb
    - wmb
    - xhci_trb_tfre_len
    - readq
    - xhci_trb_cyc
    - BUILD_BUG_ON
    - xhci_trb_tfre_cc
    - writeq
    - xhci_trb_tfre_ptr
    - xhci_trb_type
    - dbc_rx_trb
    - dbc_alert
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_pop_events(struct dbc *dbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ep
    - mbs
    - type
    - ring_dma
    argTypes:
    - uint32_t*
    - uint64_t
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 741
    functionName: dbc_init_ep
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void dbc_init_ep(uint32_t *ep, uint64_t mbs, uint32_t type,\n                        uint64_t
      ring_dma)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:748,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - string
    - ascii_str
    - str_ptr
    - str_size_ptr
    argTypes:
    - struct xhci_string_descriptor*
    - char*
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 757
    functionName: dbc_init_string_single
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - virt_to_maddr
    - strlen
    linkageType: ''
    returnType: void
    signature: "void dbc_init_string_single(struct xhci_string_descriptor *string,\n
      \                                  const char *ascii_str,\n                                   uint64_t
      *str_ptr,\n                                   uint8_t *str_size_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:762,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:763,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:764,1
    - Dst: BUILD_BUG_ON
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:765,1
    - Dst: dbc_init_string_single
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:767,1
    - Dst: dbc_init_string_single
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:770,1
    - Dst: dbc_init_string_single
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:773,1
    - Dst: dbc_init_string_single
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dbc
    - info
    argTypes:
    - struct dbc*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 779
    functionName: dbc_init_strings
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_init_string_single
    - BUILD_BUG_ON
    linkageType: ''
    returnType: void
    signature: void dbc_init_strings(struct dbc *dbc, uint32_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:789,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:796,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dbc
    - id
    - count
    argTypes:
    - struct dbc*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 800
    functionName: dbc_do_reset_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - writel
    - readl
    linkageType: ''
    returnType: void
    signature: "void dbc_do_reset_debug_port(struct dbc *dbc,\n                                    unsigned
      int id, unsigned int count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:819,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:828,1
    - Dst: XHC_EXT_PORT_MAJOR
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:835,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:839,1
    - Dst: dbc_do_reset_debug_port
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 846
    functionName: dbc_reset_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_do_reset_debug_port
    - XHC_EXT_PORT_MAJOR
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_reset_debug_port(struct dbc *dbc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:852,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:853,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:853,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:854,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:856,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:857,1
    - Dst: dbc_reset_debug_port
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:861,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:863,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:864,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:864,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:865,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:867,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 848
    functionDepth: 2
    functionLinenumber: 848
    functionLinenumberEnd: 869
    functionName: dbc_enable_dbc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - writel
    - cpu_relax
    - wmb
    - dbc_reset_debug_port
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_enable_dbc(struct dbc *dbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:875,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:875,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:876,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:877,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:877,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:879,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 881
    functionName: dbc_disable_dbc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - writel
    - wmb
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_disable_dbc(struct dbc *dbc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xhci_find_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:888,1
    - Dst: dbc_disable_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:894,1
    - Dst: xhci_trb_ring_init
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:896,1
    - Dst: xhci_trb_ring_init
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:897,1
    - Dst: xhci_trb_ring_init
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:898,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:900,1
    - Dst: memset
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:904,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:908,1
    - Dst: memset
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:910,1
    - Dst: dbc_init_strings
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:911,1
    - Dst: dbc_init_ep
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:912,1
    - Dst: dbc_init_ep
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:914,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:917,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:918,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:918,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:919,1
    - Dst: writeq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:920,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:920,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:921,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:922,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:924,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:925,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:926,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:927,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:928,1
    - Dst: cache_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:929,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:931,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 935
    functionName: dbc_init_dbc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - writel
    - dbc_init_ep
    - xhci_find_dbc
    - writeq
    - virt_to_maddr
    - memset
    - xhci_trb_ring_init
    - cache_flush
    - readl
    - dbc_disable_dbc
    - pci_conf_write16
    - dbc_init_strings
    linkageType: ''
    returnType: int
    signature: int dbc_init_dbc(struct dbc *dbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dbc
    - wrk
    argTypes:
    - struct dbc*
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 943
    functionName: dbc_init_work_ring
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - virt_to_maddr
    linkageType: ''
    returnType: void
    signature: "void dbc_init_work_ring(struct dbc *dbc,\n                               struct
      dbc_work_ring *wrk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbc_init_xhc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:959,1
    - Dst: dbc_init_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:962,1
    - Dst: dbc_init_work_ring
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:965,1
    - Dst: dbc_init_work_ring
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:966,1
    - Dst: dbc_enable_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 971
    functionName: dbc_open
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_enable_dbc
    - dbc_init_work_ring
    - dbc_init_dbc
    - dbc_init_xhc
    linkageType: ''
    returnType: bool
    signature: bool dbc_open(struct dbc *dbc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:993,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:997,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1005,1
    - Dst: dbc_init_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1007,1
    - Dst: dbc_init_work_ring
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1010,1
    - Dst: dbc_enable_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1011,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1019,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1023,1
    - Dst: dbc_pop_events
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1028,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1030,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1038,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1039,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1039,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1040,1
    - Dst: dbc_ring_doorbell
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1041,1
    - Dst: dbc_ring_doorbell
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1042,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 1046
    functionName: dbc_ensure_running
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - writel
    - wmb
    - dbc_pop_events
    - dbc_enable_dbc
    - dbc_init_work_ring
    - dbc_init_dbc
    - readl
    - dbc_ring_doorbell
    - pci_conf_write16
    linkageType: ''
    returnType: bool
    signature: bool dbc_ensure_running(struct dbc *dbc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xhci_trb_ring_full
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1060,1
    - Dst: dbc_push_trb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1067,1
    - Dst: dbc_push_trb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1072,1
    - Dst: xhci_trb_ring_full
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1075,1
    - Dst: dbc_push_trb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1077,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1082,1
    - Dst: dbc_ring_doorbell
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1083,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - dbc
    - trb
    - wrk
    argTypes:
    - struct dbc*
    - struct xhci_trb_ring*
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1057
    functionDepth: 3
    functionLinenumber: 1057
    functionLinenumberEnd: 1084
    functionName: dbc_flush
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_ring_doorbell
    - wmb
    - xhci_trb_ring_full
    - dbc_push_trb
    linkageType: ''
    returnType: void
    signature: "void dbc_flush(struct dbc *dbc, struct xhci_trb_ring *trb,\n                      struct
      dbc_work_ring *wrk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1097,1
    - Dst: xhci_trb_ring_size
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1100,1
    - Dst: dbc_work_ring_full
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1103,1
    - Dst: dbc_push_trb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1106,1
    - Dst: dbc_work_ring_space_to_end
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1107,1
    - Dst: wmb
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1109,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - dbc
    - trb
    - wrk
    argTypes:
    - struct dbc*
    - struct xhci_trb_ring*
    - struct dbc_work_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1111
    functionName: dbc_enqueue_in
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - writel
    - wmb
    - xhci_trb_ring_size
    - dbc_work_ring_full
    - dbc_push_trb
    - dbc_work_ring_space_to_end
    - readl
    linkageType: ''
    returnType: void
    signature: "void dbc_enqueue_in(struct dbc *dbc, struct xhci_trb_ring *trb,\n
      \                          struct dbc_work_ring *wrk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbc_push_work
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1124,1
    - Dst: dbc_ensure_running
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1127,1
    - Dst: dbc_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dbc
    - c
    argTypes:
    - struct dbc*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1122
    functionDepth: 5
    functionLinenumber: 1122
    functionLinenumberEnd: 1134
    functionName: dbc_putc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_push_work
    - dbc_ensure_running
    - dbc_flush
    linkageType: ''
    returnType: int64_t
    signature: int64_t dbc_putc(struct dbc *dbc, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbc_work_ring_size
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dbc
    - c
    argTypes:
    - struct dbc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1147
    functionName: dbc_getc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_work_ring_size
    linkageType: ''
    returnType: int
    signature: int dbc_getc(struct dbc *dbc, char *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_trylock_irqsave
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1164,1
    - Dst: dbc_ensure_running
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1166,1
    - Dst: dbc_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1168,1
    - Dst: dbc_enqueue_in
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1169,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1171,1
    - Dst: dbc_work_ring_size
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1174,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1175,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1177,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1179,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1179,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1157
    functionDepth: 6
    functionLinenumber: 1157
    functionLinenumberEnd: 1180
    functionName: dbc_uart_poll
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - spin_trylock_irqsave
    - dbc_ensure_running
    - dbc_flush
    - spin_unlock_irqrestore
    - serial_tx_interrupt
    - set_timer
    - MICROSECS
    - serial_rx_interrupt
    - dbc_work_ring_size
    - dbc_enqueue_in
    - NOW
    linkageType: ''
    returnType: void
    signature: void dbc_uart_poll(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1186
    functionName: dbc_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbc_uart_init_preirq(struct serial_port *port)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: serial_async_transmit
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1192,1
    - Dst: init_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1193,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1194,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1194,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1194,1
    - Dst: pci_ro_device
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1199,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1200,1
    - Dst: pci_hide_device
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1205,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1206,1
    - Dst: subpage_mmio_ro_add
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1215,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1220,1
    - Dst: pci_ro_device
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1224,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1225,1
    - Dst: rangeset_add_range
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1228,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1229,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1231,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1234,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1188
    functionDepth: 7
    functionLinenumber: 1188
    functionLinenumberEnd: 1238
    functionName: dbc_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - pci_hide_device
    - subpage_mmio_ro_add
    - PFN_UP
    - pci_ro_device
    - set_timer
    - rangeset_add_range
    - serial_async_transmit
    - printk
    - PFN_DOWN
    - MILLISECS
    - init_timer
    - NOW
    linkageType: ''
    returnType: void
    signature: void dbc_uart_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_work_ring_size
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1246
    functionName: dbc_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_work_ring_size
    linkageType: ''
    returnType: int
    signature: int dbc_uart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_putc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1248
    functionDepth: 6
    functionLinenumber: 1248
    functionLinenumberEnd: 1252
    functionName: dbc_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_putc
    linkageType: ''
    returnType: void
    signature: void dbc_uart_putc(struct serial_port *port, char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_getc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1258
    functionName: dbc_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_getc
    linkageType: ''
    returnType: int
    signature: int dbc_uart_getc(struct serial_port *port, char *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbc_ensure_running
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1266,1
    - Dst: dbc_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1267,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1269,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1269,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1260
    functionDepth: 6
    functionLinenumber: 1260
    functionLinenumberEnd: 1272
    functionName: dbc_uart_flush
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_ensure_running
    - dbc_flush
    - set_timer
    - MICROSECS
    - NOW
    linkageType: ''
    returnType: void
    signature: void dbc_uart_flush(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_pop_events
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1281,1
    - Dst: stop_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1282,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1276
    functionDepth: 6
    functionLinenumber: 1276
    functionLinenumberEnd: 1285
    functionName: dbc_uart_suspend
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - stop_timer
    - dbc_pop_events
    linkageType: ''
    returnType: void
    signature: void dbc_uart_suspend(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1292,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1293,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1294,1
    - Dst: dbc_init_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1296,1
    - Dst: dbc_error
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1298,1
    - Dst: dbc_enable_dbc
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1302,1
    - Dst: dbc_flush
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1304,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1305,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1305,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1287
    functionDepth: 6
    functionLinenumber: 1287
    functionLinenumberEnd: 1306
    functionName: dbc_uart_resume
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_error
    - dbc_enable_dbc
    - dbc_flush
    - set_timer
    - dbc_init_dbc
    - MICROSECS
    - pci_conf_write16
    - NOW
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: void dbc_uart_resume(struct serial_port *port)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1348,1
    - Dst: memset
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1351,1
    - Dst: isdigit
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1354,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1356,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1358,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1362,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1365,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1371,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1379,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1381,1
    - Dst: parse_boolean
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1383,1
    - Dst: cmdline_strcmp
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1385,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1402,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 1
    argNames:
    - opt_dbgp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1409
    functionName: xhci_parse_dbgp
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - parse_pci
    - cmdline_strcmp
    - parse_boolean
    - PCI_SBDF
    - strchr
    - strncmp
    - isdigit
    - printk
    - memset
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int xhci_parse_dbgp(const char *opt_dbgp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbc_open
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1429,1
    - Dst: iommu_add_extra_reserved_device_memory
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1431,1
    - Dst: PFN_DOWN
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1432,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1432,1
    - Dst: PFN_UP
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1433,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1412
    functionDepth: 5
    functionLinenumber: 1412
    functionLinenumberEnd: 1438
    functionName: xhci_dbc_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 1
    functionsReached:
    - PFN_UP
    - virt_to_maddr
    - PFN_DOWN
    - dbc_open
    - iommu_add_extra_reserved_device_memory
    - serial_register_uart
    linkageType: ''
    returnType: void
    signature: void xhci_dbc_uart_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1445,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1446,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1447,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1447,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1447,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1448,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1449,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1449,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1450,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1451,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1451,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1452,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1453,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1453,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1454,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1455,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1455,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1456,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1457,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1457,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1458,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1459,1
    - Dst: dbc_debug
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1460,1
    - Dst: readq
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1461,1
    - Dst: virt_to_maddr
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - dbc
    argTypes:
    - struct dbc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1441
    functionDepth: 1
    functionLinenumber: 1441
    functionLinenumberEnd: 1462
    functionName: dbc_dump
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - virt_to_maddr
    - dbc_debug
    - readq
    - readl
    linkageType: ''
    returnType: void
    signature: void dbc_dump(struct dbc *dbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbc_dump
      Src: /src/xen/xen/drivers/char/xhci-dbc.c:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1464
    functionDepth: 2
    functionLinenumber: 1464
    functionLinenumberEnd: 1470
    functionName: dbc_uart_dump
    functionSourceFile: /src/xen/xen/drivers/char/xhci-dbc.c
    functionUses: 0
    functionsReached:
    - dbc_dump
    linkageType: ''
    returnType: void
    signature: void dbc_uart_dump(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: scif_readb
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scif_readb(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: scif_writeb
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scif_writeb(uart, off, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: scif_readw
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scif_readw(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: scif_writew
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: scif_writew(uart, off, val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:112,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:113,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/scif-uart.c:122,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/scif-uart.c:126,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:130,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:131,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:132,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:134,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: scif_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - serial_rx_interrupt
    - serial_tx_interrupt
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:150,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:153,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct scif_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 157
    functionName: scif_uart_disable
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_disable(struct scif_uart *uart)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_uart_disable
      Src: /src/xen/xen/drivers/char/scif-uart.c:164,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:167,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:168,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:169,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:170,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:173,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:176,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: scif_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_uart_disable
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_init_preirq(struct serial_port *port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/scif-uart.c:190,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/scif-uart.c:191,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:195,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:196,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:197,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:198,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:201,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 203
    functionName: scif_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - dprintk
    - scif_writew
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_init_postirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:212,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:216,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/scif-uart.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: scif_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - scif_readw
    linkageType: ''
    returnType: int
    signature: int scif_uart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_writeb
      Src: /src/xen/xen/drivers/char/scif-uart.c:227,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:229,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: scif_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_readw
    - scif_writeb
    linkageType: ''
    returnType: void
    signature: void scif_uart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:240,1
    - Dst: scif_readb
      Src: /src/xen/xen/drivers/char/scif-uart.c:243,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:246,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: scif_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_readb
    - scif_readw
    linkageType: ''
    returnType: int
    signature: int scif_uart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: scif_uart_irq
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int scif_uart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: scif_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *scif_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:271,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: scif_uart_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_start_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:278,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: scif_uart_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_writew
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_stop_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_uart_stop_tx
      Src: /src/xen/xen/drivers/char/scif-uart.c:287,1
    - Dst: scif_uart_disable
      Src: /src/xen/xen/drivers/char/scif-uart.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: scif_uart_suspend
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_uart_stop_tx
    - scif_uart_disable
    linkageType: ''
    returnType: void
    signature: void scif_uart_suspend(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scif_uart_init_preirq
      Src: /src/xen/xen/drivers/char/scif-uart.c:297,1
    - Dst: scif_readw
      Src: /src/xen/xen/drivers/char/scif-uart.c:300,1
    - Dst: scif_writew
      Src: /src/xen/xen/drivers/char/scif-uart.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: scif_uart_resume
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - scif_uart_init_preirq
    - scif_writew
    - scif_readw
    linkageType: ''
    returnType: void
    signature: void scif_uart_resume(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/scif-uart.c:339,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/scif-uart.c:340,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/scif-uart.c:344,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/scif-uart.c:347,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/scif-uart.c:352,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/scif-uart.c:355,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/scif-uart.c:360,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/scif-uart.c:363,1
    - Dst: dt_match_node
      Src: /src/xen/xen/drivers/char/scif-uart.c:367,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/scif-uart.c:368,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/scif-uart.c:378,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/scif-uart.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 383
    functionName: scif_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/scif-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - dt_match_node
    - ioremap_nocache
    - ASSERT
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: "int scif_uart_init(struct dt_device_node *dev,\n                                 const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct xencons_interface*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: consoled_set_ring_addr
    functionSourceFile: /src/xen/xen/drivers/char/consoled.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void consoled_set_ring_addr(struct xencons_interface *ring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: consoled_get_ring_addr
    functionSourceFile: /src/xen/xen/drivers/char/consoled.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct xencons_interface
    signature: struct xencons_interface *consoled_get_ring_addr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/char/consoled.c:54,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/consoled.c:57,1
    - Dst: smp_rmb
      Src: /src/xen/xen/drivers/char/consoled.c:63,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/consoled.c:65,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/xen/drivers/char/consoled.c:73,1
    - Dst: pv_console_puts
      Src: /src/xen/xen/drivers/char/consoled.c:79,1
    - Dst: pv_console_puts
      Src: /src/xen/xen/drivers/char/consoled.c:85,1
    - Dst: barrier
      Src: /src/xen/xen/drivers/char/consoled.c:88,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/consoled.c:89,1
    - Dst: pv_shim_inject_evtchn
      Src: /src/xen/xen/drivers/char/consoled.c:90,1
    - Dst: pv_console_evtchn
      Src: /src/xen/xen/drivers/char/consoled.c:90,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/char/consoled.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 96
    functionName: consoled_guest_rx
    functionSourceFile: /src/xen/xen/drivers/char/consoled.c
    functionUses: 1
    functionsReached:
    - pv_console_evtchn
    - pv_console_puts
    - spin_unlock
    - smp_rmb
    - ASSERT
    - spin_lock
    - barrier
    - pv_shim_inject_evtchn
    - MASK_XENCONS_IDX
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int consoled_guest_rx(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/consoled.c:106,1
    - Dst: smp_rmb
      Src: /src/xen/xen/drivers/char/consoled.c:113,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/consoled.c:115,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/xen/drivers/char/consoled.c:121,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/char/consoled.c:124,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/consoled.c:125,1
    - Dst: pv_shim_inject_evtchn
      Src: /src/xen/xen/drivers/char/consoled.c:129,1
    - Dst: pv_console_evtchn
      Src: /src/xen/xen/drivers/char/consoled.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 132
    functionName: consoled_guest_tx
    functionSourceFile: /src/xen/xen/drivers/char/consoled.c
    functionUses: 0
    functionsReached:
    - pv_console_evtchn
    - smp_rmb
    - smp_wmb
    - ASSERT
    - pv_shim_inject_evtchn
    - MASK_XENCONS_IDX
    - ACCESS_ONCE
    linkageType: ''
    returnType: int
    signature: int consoled_guest_tx(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: consoled_is_enabled
    functionSourceFile: /src/xen/xen/drivers/char/consoled.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool consoled_is_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: omap_read
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: omap_read(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: omap_write
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: omap_write(uart, off, val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:73,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:75,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/omap-uart.c:77,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/omap-uart.c:79,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:82,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: omap_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    - serial_rx_interrupt
    - omap_read
    - serial_tx_interrupt
    linkageType: ''
    returnType: void
    signature: void omap_uart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:101,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:105,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:106,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:110,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:116,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:121,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:125,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:126,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:130,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct omap_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 137
    functionName: baud_protocol_setup
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    - omap_read
    linkageType: ''
    returnType: void
    signature: void baud_protocol_setup(struct omap_uart *uart)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:146,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:147,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:151,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:152,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:157,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:161,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:162,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:166,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:172,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:176,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:180,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:185,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:189,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct omap_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 196
    functionName: fifo_setup
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    - omap_read
    linkageType: ''
    returnType: void
    signature: void fifo_setup(struct omap_uart *uart)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:205,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:206,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:207,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:213,1
    - Dst: baud_protocol_setup
      Src: /src/xen/xen/drivers/char/omap-uart.c:216,1
    - Dst: fifo_setup
      Src: /src/xen/xen/drivers/char/omap-uart.c:219,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:222,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:224,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: omap_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    - fifo_setup
    - baud_protocol_setup
    linkageType: ''
    returnType: void
    signature: void omap_uart_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/omap-uart.c:238,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/omap-uart.c:240,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: omap_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - omap_write
    - dprintk
    linkageType: ''
    returnType: void
    signature: void omap_uart_init_postirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:255,1
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:256,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:259,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:263,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/omap-uart.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 267
    functionName: omap_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    - ASSERT
    - omap_read
    linkageType: ''
    returnType: int
    signature: int omap_uart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: omap_write
      Src: /src/xen/xen/drivers/char/omap-uart.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: omap_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_write
    linkageType: ''
    returnType: void
    signature: void omap_uart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:280,1
    - Dst: omap_read
      Src: /src/xen/xen/drivers/char/omap-uart.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: omap_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - omap_read
    linkageType: ''
    returnType: int
    signature: int omap_uart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: omap_uart_irq
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int omap_uart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: omap_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *omap_vuart_info(struct serial_port *port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/omap-uart.c:320,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/omap-uart.c:321,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/drivers/char/omap-uart.c:325,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/omap-uart.c:328,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/omap-uart.c:339,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/omap-uart.c:342,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/omap-uart.c:347,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/omap-uart.c:350,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/omap-uart.c:355,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/omap-uart.c:358,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/omap-uart.c:370,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/omap-uart.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 311
    functionDepth: 7
    functionLinenumber: 311
    functionLinenumberEnd: 375
    functionName: omap_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/omap-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - dt_property_read_u32
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: "int omap_uart_init(struct dt_device_node *dev,\n                                 const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: HC_LENGTH
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HC_LENGTH(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: HC_VERSION
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HC_VERSION(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: HCS_DEBUG_PORT
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_DEBUG_PORT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: HCS_INDICATOR
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_INDICATOR(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: HCS_N_CC
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_N_CC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: HCS_N_PCC
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_N_PCC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: HCS_PORTROUTED
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_PORTROUTED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: HCS_PPC
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_PPC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: HCS_N_PORTS
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCS_N_PORTS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: HCC_32FRAME_PERIODIC_LIST
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_32FRAME_PERIODIC_LIST(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: HCC_PER_PORT_CHANGE_EVENT
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_PER_PORT_CHANGE_EVENT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: HCC_LPM
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_LPM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: HCC_HW_PREFETCH
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_HW_PREFETCH(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: HCC_EXT_CAPS
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_EXT_CAPS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: HCC_ISOC_CACHE
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_ISOC_CACHE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: HCC_ISOC_THRES
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_ISOC_THRES(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: HCC_CANPARK
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_CANPARK(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: HCC_PGM_FRAMELISTLEN
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_PGM_FRAMELISTLEN(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: HCC_64BIT_ADDR
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCC_64BIT_ADDR(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: CMD_PARK_CNT
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMD_PARK_CNT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: PORT_TEST
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_TEST(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: PORT_USB11
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_USB11(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: DBGP_ERRCODE
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGP_ERRCODE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: DBGP_PID_GET
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGP_PID_GET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: DBGP_PID_SET
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGP_PID_SET(data, tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dev
    - ','
    - ep
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: DBGP_EPADDR
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBGP_EPADDR(dev, ep)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: usb_ctrlrequest
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed usb_ctrlrequest
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: usb_debug_descriptor
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct __packed
    signature: struct __packed usb_debug_descriptor
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:354,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:355,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:355,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:356,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:356,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:357,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:358,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:359,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:359,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:360,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dbgp
    - str
    argTypes:
    - struct ehci_dbgp*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 363
    functionName: ehci_dbgp_status
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_printk
    - readl
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_status(struct ehci_dbgp *dbgp, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: dbgp_printk
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - format
    linkageType: ''
    returnType: void
    signature: void dbgp_printk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - len
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: dbgp_len_update
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 dbgp_len_update(u32 x, u32 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - tok
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: dbgp_pid_write_update
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 dbgp_pid_write_update(u32 x, u32 tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - tok
    argTypes:
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: dbgp_pid_read_update
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 dbgp_pid_read_update(u32 x, u32 tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:399,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - ehci_debug
    - buf
    - size
    argTypes:
    - struct ehci_dbg_port*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: dbgp_set_data
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: "void dbgp_set_data(struct ehci_dbg_port __iomem *ehci_debug,\n                                 const
      void *buf, unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:407,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 3
    argNames:
    - ehci_debug
    - buf
    - size
    argTypes:
    - struct ehci_dbg_port*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: dbgp_get_data
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: void
    signature: "void dbgp_get_data(struct ehci_dbg_port __iomem *ehci_debug,\n                                 void
      *buf, int size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:420,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:422,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:429,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:432,1
    - Dst: ehci_dbgp_external_startup
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:438,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - dbgp
    - ctrl
    - state
    argTypes:
    - struct ehci_dbgp*
    - u32
    - enum dbgp_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 446
    functionName: dbgp_issue_command
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - writel
    - ehci_dbgp_external_startup
    - readl
    linkageType: ''
    returnType: void
    signature: "void dbgp_issue_command(struct ehci_dbgp *dbgp, u32 ctrl,\n                               enum
      dbgp_state state)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:457,1
    - Dst: DBGP_ERRCODE
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:473,1
    - Dst: DBGP_PID_GET
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:479,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:479,1
    - Dst: dbgp_get_data
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:486,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:493,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:500,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:502,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:502,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - dbgp
    - interval
    - ppid
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 511
    functionName: dbgp_check_for_completion
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - unlikely
    - writel
    - DBGP_PID_GET
    - dbgp_get_data
    - readl
    - DBGP_ERRCODE
    linkageType: ''
    returnType: int
    signature: "int dbgp_check_for_completion(struct ehci_dbgp *dbgp,\n                                     unsigned
      int interval, u8 *ppid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbgp_check_for_completion
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:519,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - dbgp
    - ppid
    argTypes:
    - struct ehci_dbgp*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 529
    functionName: dbgp_wait_until_complete
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_check_for_completion
    - udelay
    linkageType: ''
    returnType: int
    signature: int dbgp_wait_until_complete(struct ehci_dbgp *dbgp, u8 *ppid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: outb
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ms
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: dbgp_mdelay
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - outb
    linkageType: ''
    returnType: void
    signature: void dbgp_mdelay(unsigned int ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbgp_mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: dbgp_breathe
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_mdelay
    linkageType: ''
    returnType: void
    signature: void dbgp_breathe(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:555,1
    - Dst: dbgp_wait_until_complete
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:559,1
    - Dst: dbgp_breathe
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:581,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 3
    argNames:
    - dbgp
    - ctrl
    - loop
    argTypes:
    - struct ehci_dbgp*
    - u32
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 590
    functionName: dbgp_wait_until_done
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_breathe
    - writel
    - dbgp_wait_until_complete
    linkageType: ''
    returnType: int
    signature: "int dbgp_wait_until_done(struct ehci_dbgp *dbgp, u32 ctrl,\n                                unsigned
      int loop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBGP_EPADDR
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:601,1
    - Dst: dbgp_pid_write_update
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:602,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:602,1
    - Dst: dbgp_len_update
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:603,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:603,1
    - Dst: dbgp_set_data
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:607,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:608,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:609,1
    - Dst: dbgp_issue_command
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - dbgp
    - devnum
    - endpoint
    - bytes
    - size
    - pctrl
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    - unsigned int
    - void*
    - unsigned int
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 613
    functionName: dbgp_bulk_write
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    - dbgp_issue_command
    - dbgp_set_data
    - dbgp_len_update
    - readl
    - DBGP_EPADDR
    - dbgp_pid_write_update
    linkageType: ''
    returnType: int
    signature: "int dbgp_bulk_write(struct ehci_dbgp *dbgp,\n                           unsigned
      int devnum, unsigned int endpoint,\n                           const void *bytes,
      unsigned int size, u32 *pctrl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBGP_EPADDR
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:624,1
    - Dst: dbgp_pid_read_update
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:625,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:625,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:626,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:628,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:629,1
    - Dst: likely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:630,1
    - Dst: dbgp_issue_command
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:631,1
    - Dst: dbgp_issue_command
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - dbgp
    - devnum
    - endpoint
    - size
    - pctrl
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    - unsigned int
    - unsigned int
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: dbgp_bulk_read
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    - dbgp_issue_command
    - dbgp_pid_read_update
    - likely
    - readl
    - DBGP_EPADDR
    linkageType: ''
    returnType: int
    signature: "int dbgp_bulk_read(struct ehci_dbgp *dbgp,\n                          unsigned
      int devnum, unsigned int endpoint,\n                          unsigned int size,
      u32 *pctrl)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:653,1
    - Dst: cpu_to_le16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:654,1
    - Dst: cpu_to_le16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:655,1
    - Dst: DBGP_PID_SET
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:657,1
    - Dst: DBGP_EPADDR
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:658,1
    - Dst: dbgp_len_update
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:659,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:659,1
    - Dst: dbgp_set_data
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:662,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:663,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:664,1
    - Dst: dbgp_issue_command
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:665,1
    - Dst: dbgp_wait_until_done
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:666,1
    - Dst: dbgp_bulk_read
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:671,1
    - Dst: dbgp_wait_until_done
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:673,1
    - Dst: dbgp_get_data
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:678,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 8
    argNames:
    - dbgp
    - devnum
    - requesttype
    - request
    - value
    - index
    - data
    - size
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    - int
    - int
    - int
    - int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 682
    functionName: dbgp_control_msg
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    - dbgp_issue_command
    - dbgp_bulk_read
    - cpu_to_le16
    - dbgp_set_data
    - dbgp_len_update
    - dbgp_get_data
    - readl
    - DBGP_PID_SET
    - DBGP_EPADDR
    - dbgp_wait_until_done
    linkageType: ''
    returnType: int
    signature: "int dbgp_control_msg(struct ehci_dbgp *dbgp, unsigned int devnum,\n
      \                           int requesttype, int request, int value,\n                            int
      index, void *data, unsigned int size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:686,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:686,1
    - Dst: pci_find_cap_offset
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:692,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bus
    - slot
    - func
    argTypes:
    - u8
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 694
    functionName: __find_dbgp
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - pci_find_cap_offset
    - PCI_SBDF
    - pci_conf_read32
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int __find_dbgp(u8 bus, u8 slot, u8 func)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:709,1
    - Dst: __find_dbgp
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:716,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:719,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:719,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - dbgp
    - ehci_num
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 734
    functionName: find_dbgp
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - pci_conf_read8
    - PCI_SBDF
    - __find_dbgp
    - pci_device_detect
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int find_dbgp(struct ehci_dbgp *dbgp,\n                                     unsigned
      int ehci_num)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:742,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:745,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:746,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:748,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:750,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:753,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:756,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:761,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:764,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:769,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 775
    functionName: ehci_dbgp_startup
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    - ehci_dbgp_status
    - readl
    - dbgp_printk
    - udelay
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_startup(struct ehci_dbgp *dbgp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:783,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:785,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:787,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:792,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 798
    functionName: ehci_dbgp_controller_reset
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - ehci_dbgp_status
    - dbgp_printk
    - writel
    - readl
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_controller_reset(struct ehci_dbgp *dbgp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:804,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:806,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:809,1
    - Dst: dbgp_mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:815,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:816,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:826,1
    - Dst: udelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:829,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:830,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - dbgp
    - port
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 847
    functionName: ehci_reset_port
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - writel
    - dbgp_mdelay
    - ehci_dbgp_status
    - readl
    - udelay
    linkageType: ''
    returnType: int
    signature: int ehci_reset_port(struct ehci_dbgp *dbgp, unsigned int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:856,1
    - Dst: dbgp_mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:859,1
    - Dst: ehci_reset_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dbgp
    - port
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 863
    functionName: ehci_wait_for_port
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_mdelay
    - ehci_reset_port
    - readl
    linkageType: ''
    returnType: int
    signature: int ehci_wait_for_port(struct ehci_dbgp *dbgp, unsigned int port)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ehci_dbgp_startup
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:881,1
    - Dst: ehci_wait_for_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:886,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:889,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:897,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:899,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:900,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:902,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:903,1
    - Dst: mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:904,1
    - Dst: ehci_dbgp_controller_reset
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:905,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:910,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:913,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:916,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:918,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:919,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:922,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:923,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:926,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:929,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:931,1
    - Dst: dbgp_mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:933,1
    - Dst: dbgp_control_msg
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:939,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:948,1
    - Dst: dbgp_control_msg
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:957,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:962,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:967,1
    - Dst: dbgp_control_msg
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:971,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:977,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:980,1
    - Dst: dbgp_bulk_write
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:983,1
    - Dst: dbgp_wait_until_done
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:986,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:989,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:992,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 92
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 869
    functionDepth: 5
    functionLinenumber: 869
    functionLinenumberEnd: 1000
    functionName: ehci_dbgp_external_startup
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - writel
    - ehci_wait_for_port
    - ehci_dbgp_startup
    - mdelay
    - ehci_dbgp_status
    - dbgp_mdelay
    - dbgp_control_msg
    - dbgp_bulk_write
    - ehci_dbgp_controller_reset
    - readl
    - dbgp_printk
    - dbgp_wait_until_done
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_external_startup(struct ehci_dbgp *dbgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - dbgp
    - port
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1007
    functionName: default_set_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void default_set_debug_port(\n    struct ehci_dbgp *dbgp, unsigned
      int port)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1014,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1014,1
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1019,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1019,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dbgp
    - port
    argTypes:
    - struct ehci_dbgp*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1022
    functionName: nvidia_set_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - pci_conf_read32
    - dbgp_printk
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: "void nvidia_set_debug_port(\n    struct ehci_dbgp *dbgp, unsigned
      int port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1026,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1026,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1032
    functionName: detect_set_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - PCI_SBDF
    - dbgp_printk
    linkageType: ''
    returnType: void
    signature: void detect_set_debug_port(struct ehci_dbgp *dbgp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HCC_EXT_CAPS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1043,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1049,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1049,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1051,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1055,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1056,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1056,1
    - Dst: mdelay
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1064,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1066,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1066,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1074,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1075,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1075,1
    - Dst: pci_conf_write8
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1080,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1080,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - dbgp
    - hcc_params
    argTypes:
    - struct ehci_dbgp*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1082
    functionName: ehci_dbgp_bios_handoff
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - mdelay
    - pci_conf_write8
    - PCI_SBDF
    - pci_conf_read32
    - dbgp_printk
    - HCC_EXT_CAPS
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_bios_handoff(struct ehci_dbgp *dbgp, u32 hcc_params)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ehci_dbgp_bios_handoff
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1091,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1091,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1098,1
    - Dst: HCS_DEBUG_PORT
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1099,1
    - Dst: HCS_N_PORTS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1101,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1103,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1104,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1105,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1112,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1113,1
    - Dst: set_debug_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1120,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1128,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1129,1
    - Dst: ehci_dbgp_controller_reset
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1130,1
    - Dst: ehci_dbgp_external_startup
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1133,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1140,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1142,1
    - Dst: set_debug_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1153,1
    - Dst: set_debug_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1158,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1084
    functionDepth: 6
    functionLinenumber: 1084
    functionLinenumberEnd: 1163
    functionName: ehci_dbgp_setup
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - ehci_dbgp_bios_handoff
    - writel
    - ehci_dbgp_status
    - HCS_N_PORTS
    - ehci_dbgp_external_startup
    - ehci_dbgp_controller_reset
    - HCS_DEBUG_PORT
    - set_debug_port
    - readl
    - dbgp_printk
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_setup(struct ehci_dbgp *dbgp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbgp_bulk_write
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1167,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1171
    functionName: _ehci_dbgp_flush
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - BUG
    - dbgp_bulk_write
    linkageType: ''
    returnType: void
    signature: void _ehci_dbgp_flush(struct ehci_dbgp *dbgp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dbgp_check_for_completion
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1182,1
    - Dst: dbgp_wait_until_complete
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1184,1
    - Dst: _ehci_dbgp_flush
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1188,1
    - Dst: dbgp_wait_until_complete
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1192,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1197,1
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1197,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1173
    functionDepth: 6
    functionLinenumber: 1173
    functionLinenumberEnd: 1200
    functionName: ehci_dbgp_flush
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - dbgp_check_for_completion
    - dbgp_wait_until_complete
    - set_timer
    - MICROSECS
    - _ehci_dbgp_flush
    - NOW
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_flush(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1206,1
    - Dst: ehci_dbgp_flush
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1202
    functionDepth: 7
    functionLinenumber: 1202
    functionLinenumberEnd: 1213
    functionName: ehci_dbgp_putc
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - ehci_dbgp_flush
    - unlikely
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_putc(struct serial_port *port, char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1219,1
    - Dst: unlikely
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1219,1
    - Dst: ehci_dbgp_flush
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1223,1
    - Dst: dbgp_check_for_completion
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1215
    functionDepth: 7
    functionLinenumber: 1215
    functionLinenumberEnd: 1232
    functionName: ehci_dbgp_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_check_for_completion
    - ehci_dbgp_flush
    - unlikely
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_tx_ready(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1246
    functionName: ehci_dbgp_getc
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_getc(struct serial_port *port, char *pc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MICROSECS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1256,1
    - Dst: spin_trylock_irqsave
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1263,1
    - Dst: dbgp_check_for_completion
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1266,1
    - Dst: _ehci_dbgp_flush
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1268,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1271,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1275,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1278,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1281,1
    - Dst: set_irq_regs
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1283,1
    - Dst: spin_trylock_irqsave
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1285,1
    - Dst: dbgp_bulk_read
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1290,1
    - Dst: BUG
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1292,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1293,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1295,1
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1298,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1298,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 1
    argNames:
    - regs
    argTypes:
    - struct cpu_user_regs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1251
    functionDepth: 6
    functionLinenumber: 1251
    functionLinenumberEnd: 1299
    functionName: _ehci_dbgp_poll
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_check_for_completion
    - BUG
    - spin_trylock_irqsave
    - dbgp_bulk_read
    - serial_tx_interrupt
    - spin_unlock_irqrestore
    - set_timer
    - MICROSECS
    - NOW
    - MILLISECS
    - serial_rx_interrupt
    - _ehci_dbgp_flush
    - set_irq_regs
    linkageType: ''
    returnType: void
    signature: void _ehci_dbgp_poll(const struct cpu_user_regs *regs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_in_exception_handler
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: ehci_dbgp_poll
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - run_in_exception_handler
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_poll(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ehci_dbgp_setup
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1309,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1307
    functionDepth: 7
    functionLinenumber: 1307
    functionLinenumberEnd: 1315
    functionName: ehci_dbgp_setup_preirq
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - dbgp_printk
    - ehci_dbgp_setup
    linkageType: ''
    returnType: bool
    signature: bool ehci_dbgp_setup_preirq(struct ehci_dbgp *dbgp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1323,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1323,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1328,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1328,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1334,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1334,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1336,1
    - Dst: set_fixmap_nocache
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1343,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1344,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1346,1
    - Dst: HC_LENGTH
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1350,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1350,1
    - Dst: detect_set_debug_port
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1353,1
    - Dst: ehci_dbgp_setup_preirq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1355,1
    - Dst: ehci_dbgp_status
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1317
    functionDepth: 8
    functionLinenumber: 1317
    functionLinenumberEnd: 1359
    functionName: ehci_dbgp_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - ehci_dbgp_setup_preirq
    - ehci_dbgp_status
    - set_fixmap_nocache
    - PCI_SBDF
    - fix_to_virt
    - detect_set_debug_port
    - pci_conf_read32
    - readl
    - dbgp_printk
    - HC_LENGTH
    - pci_conf_read8
    - pci_conf_write16
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_init_preirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1363,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1363,1
    - Dst: MILLISECS
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1361
    functionDepth: 6
    functionLinenumber: 1361
    functionLinenumberEnd: 1364
    functionName: ehci_dbgp_setup_postirq
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - set_timer
    - MILLISECS
    - NOW
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_setup_postirq(struct ehci_dbgp *dbgp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: serial_async_transmit
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1373,1
    - Dst: init_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1375,1
    - Dst: ehci_dbgp_setup_postirq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1377,1
    - Dst: pci_hide_device
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1379,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1366
    functionDepth: 7
    functionLinenumber: 1366
    functionLinenumberEnd: 1380
    functionName: ehci_dbgp_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - pci_hide_device
    - ehci_dbgp_setup_postirq
    - PCI_DEVFN
    - serial_async_transmit
    - init_timer
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_init_postirq(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1400,1
    - Dst: kill_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1404,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1407,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - dbgp
    argTypes:
    - struct ehci_dbgp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1382
    functionDepth: 6
    functionLinenumber: 1382
    functionLinenumberEnd: 1415
    functionName: ehci_dbgp_check_release
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - kill_timer
    - writel
    - printk
    - readl
    linkageType: ''
    returnType: int
    signature: int ehci_dbgp_check_release(struct ehci_dbgp *dbgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ehci_dbgp_check_release
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1417
    functionDepth: 7
    functionLinenumber: 1417
    functionLinenumberEnd: 1420
    functionName: ehci_dbgp_endboot
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - ehci_dbgp_check_release
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_endboot(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stop_timer
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1431,1
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1434,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1424
    functionDepth: 6
    functionLinenumber: 1424
    functionLinenumberEnd: 1439
    functionName: ehci_dbgp_suspend
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - pci_conf_read16
    - stop_timer
    - PCI_SBDF
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_suspend(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_write32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1448,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1448,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1450,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1450,1
    - Dst: ehci_dbgp_setup_preirq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1453,1
    - Dst: ehci_dbgp_setup_postirq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1441
    functionDepth: 8
    functionLinenumber: 1441
    functionLinenumberEnd: 1455
    functionName: ehci_dbgp_resume
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - PCI_SBDF
    - ehci_dbgp_setup_postirq
    - ehci_dbgp_setup_preirq
    - pci_conf_write16
    - pci_conf_write32
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_resume(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1479,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - opt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1485
    functionName: parse_ehci_dbgp
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 0
    functionsReached:
    - strlcpy
    - strncmp
    linkageType: ''
    returnType: int
    signature: int parse_ehci_dbgp(const char *opt)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1497,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1502,1
    - Dst: find_dbgp
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1504,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1508,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1511,1
    - Dst: parse_pci
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1515,1
    - Dst: pci_device_detect
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1523,1
    - Dst: __find_dbgp
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1526,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1530,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1536,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1536,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1541,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1544,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1548,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1548,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1550,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1553,1
    - Dst: dbgp_printk
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1559,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1563,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1488
    functionDepth: 3
    functionLinenumber: 1488
    functionLinenumberEnd: 1564
    functionName: ehci_dbgp_init
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - parse_pci
    - pci_device_detect
    - find_dbgp
    - __find_dbgp
    - PCI_SBDF
    - serial_register_uart
    - isdigit
    - strncmp
    - pci_conf_read32
    - dbgp_printk
    - simple_strtoul
    linkageType: ''
    returnType: void
    signature: void ehci_dbgp_init(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1577,1
    - Dst: spin_lock_irq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1586,1
    - Dst: dbgp_wait_until_complete
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1588,1
    - Dst: spin_unlock_irq
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1589,1
    - Dst: ehci_dbgp_check_release
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1591,1
    - Dst: ehci_dbgp_external_startup
      Src: /src/xen/xen/drivers/char/ehci-dbgp.c:1594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct physdev_dbgp_op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1566
    functionDepth: 7
    functionLinenumber: 1566
    functionLinenumberEnd: 1598
    functionName: dbgp_op
    functionSourceFile: /src/xen/xen/drivers/char/ehci-dbgp.c
    functionUses: 1
    functionsReached:
    - ehci_dbgp_check_release
    - ehci_dbgp_external_startup
    - PCI_DEVFN
    - dbgp_wait_until_complete
    - spin_unlock_irq
    - spin_lock_irq
    linkageType: ''
    returnType: int
    signature: int dbgp_op(const struct physdev_dbgp_op *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/pl011.c:66,1
    - Dst: writew
      Src: /src/xen/xen/drivers/char/pl011.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - uart
    - offset
    - val
    argTypes:
    - struct pl011*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: pl011_write
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - writew
    - writel
    linkageType: ''
    returnType: void
    signature: void pl011_write(struct pl011 *uart, unsigned int offset, unsigned
      int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/pl011.c:74,1
    - Dst: readw
      Src: /src/xen/xen/drivers/char/pl011.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - uart
    - offset
    argTypes:
    - struct pl011*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: pl011_read
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - readw
    - readl
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pl011_read(struct pl011 *uart, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:82,1
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct pl011*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pl011_intr_status
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pl011_intr_status(struct pl011 *uart)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pl011_intr_status
      Src: /src/xen/xen/drivers/char/pl011.c:89,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:95,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/pl011.c:98,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/pl011.c:106,1
    - Dst: pl011_intr_status
      Src: /src/xen/xen/drivers/char/pl011.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 111
    functionName: pl011_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_intr_status
    - serial_rx_interrupt
    - pl011_write
    - serial_tx_interrupt
    linkageType: ''
    returnType: void
    signature: void pl011_interrupt(int irq, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:119,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:124,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:127,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:133,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:136,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:137,1
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:142,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: pl011_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    - pl011_write
    linkageType: ''
    returnType: void
    signature: void pl011_init_preirq(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/pl011.c:158,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:159,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:163,1
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: pl011_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - pl011_write
    - printk
    linkageType: ''
    returnType: void
    signature: void pl011_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: pl011_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    linkageType: ''
    returnType: int
    signature: int pl011_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: pl011_putc
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_write
    linkageType: ''
    returnType: void
    signature: void pl011_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:187,1
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: pl011_getc
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    linkageType: ''
    returnType: int
    signature: int pl011_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: pl011_irq
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pl011_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: pl011_vuart
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *pl011_vuart(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:212,1
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: pl011_tx_stop
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    - pl011_write
    linkageType: ''
    returnType: void
    signature: void pl011_tx_stop(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pl011_write
      Src: /src/xen/xen/drivers/char/pl011.c:219,1
    - Dst: pl011_read
      Src: /src/xen/xen/drivers/char/pl011.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: pl011_tx_start
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - pl011_read
    - pl011_write
    linkageType: ''
    returnType: void
    signature: void pl011_tx_start(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/pl011.c:249,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:252,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/pl011.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - irq
    - addr
    - size
    - sbsa
    - mmio32
    argTypes:
    - int
    - paddr_t
    - paddr_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 266
    functionName: pl011_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - serial_register_uart
    - ioremap_nocache
    - printk
    linkageType: ''
    returnType: int
    signature: int pl011_uart_init(int irq, paddr_t addr, paddr_t size, bool sbsa,
      bool mmio32)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/pl011.c:278,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:280,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/pl011.c:283,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:286,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/pl011.c:291,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:294,1
    - Dst: dt_property_read_u32
      Src: /src/xen/xen/drivers/char/pl011.c:299,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:305,1
    - Dst: dt_device_is_compatible
      Src: /src/xen/xen/drivers/char/pl011.c:310,1
    - Dst: pl011_uart_init
      Src: /src/xen/xen/drivers/char/pl011.c:312,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:315,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/pl011.c:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 269
    functionDepth: 7
    functionLinenumber: 269
    functionLinenumberEnd: 322
    functionName: pl011_dt_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - dt_property_read_u32
    - platform_get_irq
    - pl011_uart_init
    - printk
    - dt_device_is_compatible
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int pl011_dt_uart_init(struct dt_device_node *dev,\n                                     const
      void *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/char/pl011.c:347,1
    - Dst: ACPI_FAILURE
      Src: /src/xen/xen/drivers/char/pl011.c:350,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:352,1
    - Dst: irq_set_type
      Src: /src/xen/xen/drivers/char/pl011.c:360,1
    - Dst: pl011_uart_init
      Src: /src/xen/xen/drivers/char/pl011.c:363,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/pl011.c:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: pl011_acpi_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/pl011.c
    functionUses: 0
    functionsReached:
    - ACPI_FAILURE
    - acpi_get_table
    - pl011_uart_init
    - printk
    - irq_set_type
    linkageType: ''
    returnType: int
    signature: int pl011_acpi_uart_init(const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: mvebu3700_read
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mvebu3700_read(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: mvebu3700_write
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mvebu3700_write(uart, off, val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:74,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:78,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: mvebu3700_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    - serial_rx_interrupt
    - serial_tx_interrupt
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:89,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:91,1
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:94,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:96,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:99,1
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:102,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: mvebu3700_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    - mvebu3700_write
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:116,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:118,1
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:123,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: mvebu3700_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - mvebu3700_write
    - mvebu3700_read
    - printk
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: mvebu3700_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_write
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:139,1
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 145
    functionName: mvebu3700_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    linkageType: ''
    returnType: int
    signature: int mvebu3700_uart_getc(struct serial_port *port, char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: mvebu3700_irq
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mvebu3700_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: mvebu3700_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *mvebu3700_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:166,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: mvebu3700_uart_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    - mvebu3700_write
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_stop_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:176,1
    - Dst: mvebu3700_write
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: mvebu3700_uart_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    - mvebu3700_write
    linkageType: ''
    returnType: void
    signature: void mvebu3700_uart_start_tx(struct serial_port *port)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mvebu3700_read
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: mvebu3700_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - mvebu3700_read
    linkageType: ''
    returnType: int
    signature: int mvebu3700_uart_tx_ready(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:222,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:223,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:227,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:230,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:234,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:237,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:243,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:246,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:257,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/mvebu-uart.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 262
    functionName: mvebu_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/mvebu-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: int mvebu_uart_init(struct dt_device_node *dev, const void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:48,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:52,1
    - Dst: xen_hypercall_hvm_get_param
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:56,1
    - Dst: set_fixmap
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:60,1
    - Dst: fix_to_virt
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:61,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:64,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 72
    functionName: pv_console_init
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 1
    functionsReached:
    - set_fixmap
    - fix_to_virt
    - xen_hypercall_hvm_get_param
    - printk
    linkageType: ''
    returnType: void
    signature: void pv_console_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fn
    argTypes:
    - serial_rx_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: pv_console_set_rx_handler
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pv_console_set_rx_handler(serial_rx_fn fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_evtchn_unmask
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: pv_console_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_evtchn_unmask
    linkageType: ''
    returnType: void
    signature: void pv_console_init_postirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_evtchn_send
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: notify_daemon
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 0
    functionsReached:
    - xen_hypercall_evtchn_send
    linkageType: ''
    returnType: void
    signature: void notify_daemon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: pv_console_evtchn
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: evtchn_port_t
    signature: evtchn_port_t pv_console_evtchn(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:106,1
    - Dst: smp_rmb
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:113,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:115,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:119,1
    - Dst: cons_rx_handler
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:121,1
    - Dst: barrier
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:126,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:127,1
    - Dst: notify_daemon
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 131
    functionName: pv_console_rx
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 1
    functionsReached:
    - notify_daemon
    - smp_rmb
    - ASSERT
    - barrier
    - cons_rx_handler
    - MASK_XENCONS_IDX
    - ACCESS_ONCE
    linkageType: ''
    returnType: size_t
    signature: size_t pv_console_rx(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:141,1
    - Dst: smp_rmb
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:148,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:150,1
    - Dst: xen_hypercall_sched_op
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:156,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:164,1
    - Dst: MASK_XENCONS_IDX
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:169,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:181,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:182,1
    - Dst: notify_daemon
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:183,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 187
    functionName: pv_ring_puts
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 0
    functionsReached:
    - notify_daemon
    - smp_rmb
    - smp_wmb
    - ASSERT
    - MASK_XENCONS_IDX
    - ACCESS_ONCE
    - xen_hypercall_sched_op
    linkageType: ''
    returnType: size_t
    signature: size_t pv_ring_puts(const char *buf, size_t nr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:196,1
    - Dst: pv_ring_puts
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:197,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/xen_pv_console.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: pv_console_puts
    functionSourceFile: /src/xen/xen/drivers/char/xen_pv_console.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - pv_ring_puts
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void pv_console_puts(const char *buf, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: custom_runtime_set_var_sz
      Src: /src/xen/xen/drivers/char/console.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: con_timestamp_mode_upd
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - custom_runtime_set_var_sz
    linkageType: ''
    returnType: void
    signature: void con_timestamp_mode_upd(struct param_hypfs *par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lower
    - upper
    - val
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: xenlog_update_val
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void xenlog_update_val(int lower, int upper, char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenlog_update_val
      Src: /src/xen/xen/drivers/char/console.c:194,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/drivers/char/console.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: xenlog_init
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - xenlog_update_val
    - custom_runtime_set_var
    linkageType: ''
    returnType: void
    signature: void xenlog_init(struct param_hypfs *par)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xenlog_update_val
      Src: /src/xen/xen/drivers/char/console.c:200,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/drivers/char/console.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - par
    argTypes:
    - struct param_hypfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: xenlog_guest_init
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - xenlog_update_val
    - custom_runtime_set_var
    linkageType: ''
    returnType: void
    signature: void xenlog_guest_init(struct param_hypfs *par)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - lower
    - upper
    - val
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: xenlog_update_val
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xenlog_update_val(int lower, int upper, char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - ps
    - ','
    - lvlstr
    - ','
    - lvlnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: ___parse_loglvl
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ___parse_loglvl(s, ps, lvlstr, lvlnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:234,1
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:235,1
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:236,1
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:237,1
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:238,1
    - Dst: ___parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - s
    - ps
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: __parse_loglvl
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - ___parse_loglvl
    linkageType: ''
    returnType: int
    signature: int __parse_loglvl(const char *s, const char **ps)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:245,1
    - Dst: __parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:247,1
    - Dst: xenlog_update_val
      Src: /src/xen/xen/drivers/char/console.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - s
    - lower
    - upper
    - val
    argTypes:
    - char*
    - int*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 254
    functionName: _parse_loglvl
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - xenlog_update_val
    - __parse_loglvl
    linkageType: ''
    returnType: int
    signature: int _parse_loglvl(const char *s, int *lower, int *upper, char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:260,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/drivers/char/console.c:262,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/drivers/char/console.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: parse_loglvl
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 3
    functionsReached:
    - _parse_loglvl
    - param_2_parfs
    - custom_runtime_set_var
    linkageType: ''
    returnType: int
    signature: int parse_loglvl(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _parse_loglvl
      Src: /src/xen/xen/drivers/char/console.c:271,1
    - Dst: custom_runtime_set_var
      Src: /src/xen/xen/drivers/char/console.c:273,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/drivers/char/console.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: parse_guest_loglvl
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - _parse_loglvl
    - param_2_parfs
    - custom_runtime_set_var
    linkageType: ''
    returnType: int
    signature: int parse_guest_loglvl(const char *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - lvl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: loglvl_str
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *loglvl_str(int lvl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - key
    - unused
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 312
    functionName: do_toggle_guest
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - printk
    linkageType: ''
    returnType: void
    signature: void do_toggle_guest(unsigned char key, bool unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:318,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:319,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: do_adj_thresh
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - loglvl_str
    - printk
    linkageType: ''
    returnType: void
    signature: void do_adj_thresh(unsigned char key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_adj_thresh
      Src: /src/xen/xen/drivers/char/console.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - unused
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: do_inc_thresh
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - do_adj_thresh
    linkageType: ''
    returnType: void
    signature: void do_inc_thresh(unsigned char key, bool unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_adj_thresh
      Src: /src/xen/xen/drivers/char/console.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - unused
    argTypes:
    - unsigned char
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: do_dec_thresh
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - do_adj_thresh
    linkageType: ''
    returnType: void
    signature: void do_dec_thresh(unsigned char key, bool unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: CONRING_IDX_MASK
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONRING_IDX_MASK(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_global_virq
      Src: /src/xen/xen/drivers/char/console.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: conring_notify
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - send_global_virq
    linkageType: ''
    returnType: void
    signature: void conring_notify(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/console.c:365,1
    - Dst: rspin_is_locked
      Src: /src/xen/xen/drivers/char/console.c:365,1
    - Dst: CONRING_IDX_MASK
      Src: /src/xen/xen/drivers/char/console.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 372
    functionName: conring_puts
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - CONRING_IDX_MASK
    - ASSERT
    - rspin_is_locked
    linkageType: ''
    returnType: void
    signature: void conring_puts(const char *str, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: guest_handle_cast
      Src: /src/xen/xen/drivers/char/console.c:380,1
    - Dst: read_atomic
      Src: /src/xen/xen/drivers/char/console.c:384,1
    - Dst: read_atomic
      Src: /src/xen/xen/drivers/char/console.c:385,1
    - Dst: CONRING_IDX_MASK
      Src: /src/xen/xen/drivers/char/console.c:393,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/drivers/char/console.c:399,1
    - Dst: nrspin_lock_irq
      Src: /src/xen/xen/drivers/char/console.c:407,1
    - Dst: nrspin_unlock_irq
      Src: /src/xen/xen/drivers/char/console.c:409,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct xen_sysctl_readconsole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 416
    functionName: read_console_ring
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - CONRING_IDX_MASK
    - copy_to_guest_offset
    - read_atomic
    - guest_handle_cast
    - nrspin_lock_irq
    - nrspin_unlock_irq
    linkageType: ''
    returnType: long
    signature: long read_console_ring(struct xen_sysctl_readconsole *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/char/console.c:428,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/drivers/char/console.c:429,1
    - Dst: CONRING_IDX_MASK
      Src: /src/xen/xen/drivers/char/console.c:437,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/char/console.c:441,1
    - Dst: console_send
      Src: /src/xen/xen/drivers/char/console.c:446,1
    - Dst: free_xenheap_pages
      Src: /src/xen/xen/drivers/char/console.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 451
    functionName: conring_flush
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - get_order_from_bytes
    - CONRING_IDX_MASK
    - console_send
    - alloc_xenheap_pages
    - free_xenheap_pages
    - memcpy
    linkageType: ''
    returnType: int
    signature: int conring_flush(unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:457,1
    - Dst: conring_flush
      Src: /src/xen/xen/drivers/char/console.c:458,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 7
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: conring_dump_keyhandler
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - conring_flush
    - printk
    linkageType: ''
    returnType: void
    signature: void conring_dump_keyhandler(unsigned char key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/char/console.c:472,1
    - Dst: max
      Src: /src/xen/xen/drivers/char/console.c:472,1
    - Dst: MEMF_bits
      Src: /src/xen/xen/drivers/char/console.c:473,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/drivers/char/console.c:474,1
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/char/console.c:476,1
    - Dst: nrspin_lock_irqsave
      Src: /src/xen/xen/drivers/char/console.c:481,1
    - Dst: smp_wmb
      Src: /src/xen/xen/drivers/char/console.c:485,1
    - Dst: nrspin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/console.c:487,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 463
    functionDepth: 6
    functionLinenumber: 463
    functionLinenumberEnd: 490
    functionName: console_init_ring
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - get_order_from_bytes
    - max
    - smp_wmb
    - BUG_ON
    - nrspin_unlock_irqrestore
    - alloc_xenheap_pages
    - printk
    - nrspin_lock_irqsave
    - MEMF_bits
    linkageType: ''
    returnType: void
    signature: void console_init_ring(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    functionName: SERIAL_RX_MASK
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SERIAL_RX_MASK(_i)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 516
    functionName: console_steal
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int console_steal(int handle, void (*fn)(const char *str, size_t nr))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: console_giveback
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void console_giveback(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: serial_steal_fn
      Src: /src/xen/xen/drivers/char/console.c:527,1
    - Dst: serial_puts
      Src: /src/xen/xen/drivers/char/console.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: console_serial_puts
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - serial_steal_fn
    - serial_puts
    linkageType: ''
    returnType: void
    signature: void console_serial_puts(const char *s, size_t nr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/drivers/char/console.c:553,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/char/console.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 563
    functionName: console_get_domain
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - rcu_unlock_domain
    - rcu_lock_domain_by_id
    linkageType: ''
    returnType: struct domain
    signature: struct domain *console_get_domain(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/char/console.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct domain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: console_put_domain
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - rcu_unlock_domain
    linkageType: ''
    returnType: void
    signature: void console_put_domain(struct domain *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:587,1
    - Dst: consoled_is_enabled
      Src: /src/xen/xen/drivers/char/console.c:591,1
    - Dst: get_initial_domain_id
      Src: /src/xen/xen/drivers/char/console.c:592,1
    - Dst: rcu_lock_domain_by_id
      Src: /src/xen/xen/drivers/char/console.c:595,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/char/console.c:600,1
    - Dst: rcu_unlock_domain
      Src: /src/xen/xen/drivers/char/console.c:604,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:607,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:613,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:615,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 616
    functionName: console_switch_input
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - get_initial_domain_id
    - rcu_lock_domain_by_id
    - printk
    - rcu_unlock_domain
    - consoled_is_enabled
    linkageType: ''
    returnType: void
    signature: void console_switch_input(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: handle_keypress
      Src: /src/xen/xen/drivers/char/console.c:624,1
    - Dst: console_get_domain
      Src: /src/xen/xen/drivers/char/console.c:626,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/char/console.c:630,1
    - Dst: SERIAL_RX_MASK
      Src: /src/xen/xen/drivers/char/console.c:637,1
    - Dst: send_global_virq
      Src: /src/xen/xen/drivers/char/console.c:643,1
    - Dst: vpl011_rx_char_xen
      Src: /src/xen/xen/drivers/char/console.c:648,1
    - Dst: consoled_is_enabled
      Src: /src/xen/xen/drivers/char/console.c:651,1
    - Dst: consoled_guest_tx
      Src: /src/xen/xen/drivers/char/console.c:653,1
    - Dst: guest_printk
      Src: /src/xen/xen/drivers/char/console.c:656,1
    - Dst: console_put_domain
      Src: /src/xen/xen/drivers/char/console.c:660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 661
    functionName: __serial_rx
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - console_put_domain
    - SERIAL_RX_MASK
    - guest_printk
    - send_global_virq
    - console_get_domain
    - consoled_is_enabled
    - handle_keypress
    - vpl011_rx_char_xen
    - is_hardware_domain
    - consoled_guest_tx
    linkageType: ''
    returnType: void
    signature: void __serial_rx(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: console_switch_input
      Src: /src/xen/xen/drivers/char/console.c:672,1
    - Dst: __serial_rx
      Src: /src/xen/xen/drivers/char/console.c:679,1
    - Dst: __serial_rx
      Src: /src/xen/xen/drivers/char/console.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 663
    functionDepth: 6
    functionLinenumber: 663
    functionLinenumberEnd: 683
    functionName: serial_rx
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - __serial_rx
    - console_switch_input
    linkageType: ''
    returnType: void
    signature: void serial_rx(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: xen_console_write_debug_port
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xen_console_write_debug_port(const char *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xen_hypercall_console_write
      Src: /src/xen/xen/drivers/char/console.c:701,1
    - Dst: xen_console_write_debug_port
      Src: /src/xen/xen/drivers/char/console.c:703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 706
    functionName: console_debug_puts
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - xen_console_write_debug_port
    - xen_hypercall_console_write
    linkageType: ''
    returnType: void
    signature: void console_debug_puts(const char *str, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: console_serial_puts
      Src: /src/xen/xen/drivers/char/console.c:721,1
    - Dst: pv_console_puts
      Src: /src/xen/xen/drivers/char/console.c:724,1
    - Dst: video_puts
      Src: /src/xen/xen/drivers/char/console.c:727,1
    - Dst: console_debug_puts
      Src: /src/xen/xen/drivers/char/console.c:730,1
    - Dst: conring_puts
      Src: /src/xen/xen/drivers/char/console.c:734,1
    - Dst: tasklet_schedule
      Src: /src/xen/xen/drivers/char/console.c:737,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - str
    - len
    - flags
    argTypes:
    - char*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 718
    functionDepth: 4
    functionLinenumber: 718
    functionLinenumberEnd: 739
    functionName: console_send
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - tasklet_schedule
    - pv_console_puts
    - video_puts
    - conring_puts
    - console_serial_puts
    - console_debug_puts
    linkageType: ''
    returnType: void
    signature: void console_send(const char *str, size_t len, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/console.c:745,1
    - Dst: rspin_is_locked
      Src: /src/xen/xen/drivers/char/console.c:745,1
    - Dst: console_send
      Src: /src/xen/xen/drivers/char/console.c:750,1
    - Dst: strlen
      Src: /src/xen/xen/drivers/char/console.c:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 741
    functionDepth: 5
    functionLinenumber: 741
    functionLinenumberEnd: 751
    functionName: __putstr
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - rspin_is_locked
    - strlen
    - console_send
    linkageType: ''
    returnType: void
    signature: void __putstr(const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hypercall_preempt_check
      Src: /src/xen/xen/drivers/char/console.c:764,1
    - Dst: hypercall_create_continuation
      Src: /src/xen/xen/drivers/char/console.c:765,1
    - Dst: min
      Src: /src/xen/xen/drivers/char/console.c:769,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/char/console.c:770,1
    - Dst: is_hardware_domain
      Src: /src/xen/xen/drivers/char/console.c:773,1
    - Dst: nrspin_lock_irq
      Src: /src/xen/xen/drivers/char/console.c:776,1
    - Dst: console_send
      Src: /src/xen/xen/drivers/char/console.c:777,1
    - Dst: nrspin_unlock_irq
      Src: /src/xen/xen/drivers/char/console.c:778,1
    - Dst: is_console_printable
      Src: /src/xen/xen/drivers/char/console.c:791,1
    - Dst: spin_lock
      Src: /src/xen/xen/drivers/char/console.c:796,1
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/console.c:799,1
    - Dst: memcpy
      Src: /src/xen/xen/drivers/char/console.c:802,1
    - Dst: guest_printk
      Src: /src/xen/xen/drivers/char/console.c:808,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/char/console.c:811,1
    - Dst: guest_handle_add_offset
      Src: /src/xen/xen/drivers/char/console.c:814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - count
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 753
    functionDepth: 5
    functionLinenumber: 753
    functionLinenumberEnd: 819
    functionName: guest_console_write
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - spin_unlock
    - is_console_printable
    - copy_from_guest
    - ARRAY_SIZE
    - guest_handle_add_offset
    - guest_printk
    - console_send
    - hypercall_create_continuation
    - min
    - spin_lock
    - hypercall_preempt_check
    - memcpy
    - nrspin_lock_irq
    - is_hardware_domain
    - nrspin_unlock_irq
    linkageType: ''
    returnType: long
    signature: "long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer,\n                                unsigned
      int count)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: xsm_console_io
      Src: /src/xen/xen/drivers/char/console.c:827,1
    - Dst: guest_console_write
      Src: /src/xen/xen/drivers/char/console.c:834,1
    - Dst: SERIAL_RX_MASK
      Src: /src/xen/xen/drivers/char/console.c:849,1
    - Dst: copy_to_guest_offset
      Src: /src/xen/xen/drivers/char/console.c:855,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 2
    argNames:
    - cmd
    - count
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 821
    functionDepth: 6
    functionLinenumber: 821
    functionLinenumberEnd: 870
    functionName: do_console_io
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - copy_to_guest_offset
    - xsm_console_io
    - guest_console_write
    - SERIAL_RX_MASK
    linkageType: ''
    returnType: long
    signature: "long do_console_io(\n    unsigned int cmd, unsigned int count, XEN_GUEST_HANDLE_PARAM(char)
      buffer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/console.c:882,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/console.c:883,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/console.c:890,1
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/console.c:891,1
    - Dst: atomic_read
      Src: /src/xen/xen/drivers/char/console.c:907,1
    - Dst: printk_ratelimit
      Src: /src/xen/xen/drivers/char/console.c:909,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 910
    functionName: printk_prefix_check
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - printk_ratelimit
    - ACCESS_ONCE
    - atomic_read
    linkageType: ''
    returnType: int
    signature: int printk_prefix_check(char *p, char **pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_bool
      Src: /src/xen/xen/drivers/char/console.c:914,1
    - Dst: con_timestamp_mode_upd
      Src: /src/xen/xen/drivers/char/console.c:918,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/drivers/char/console.c:918,1
    - Dst: con_timestamp_mode_upd
      Src: /src/xen/xen/drivers/char/console.c:922,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/drivers/char/console.c:922,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/console.c:926,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/console.c:928,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/console.c:930,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/console.c:932,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/console.c:934,1
    - Dst: con_timestamp_mode_upd
      Src: /src/xen/xen/drivers/char/console.c:939,1
    - Dst: param_2_parfs
      Src: /src/xen/xen/drivers/char/console.c:939,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 942
    functionName: parse_console_timestamps
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - con_timestamp_mode_upd
    - param_2_parfs
    - strcmp
    - parse_bool
    linkageType: ''
    returnType: int
    signature: int parse_console_timestamps(const char *s)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ACCESS_ONCE
      Src: /src/xen/xen/drivers/char/console.c:946,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:951,1
    - Dst: wallclock_time
      Src: /src/xen/xen/drivers/char/console.c:957,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:963,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:970,1
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/console.c:978,1
    - Dst: do_div
      Src: /src/xen/xen/drivers/char/console.c:979,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:983,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:989,1
    - Dst: get_cycles
      Src: /src/xen/xen/drivers/char/console.c:989,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:997,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 944
    functionDepth: 6
    functionLinenumber: 944
    functionLinenumberEnd: 998
    functionName: printk_start_of_line
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - snprintf
    - wallclock_time
    - get_cycles
    - do_div
    - ACCESS_ONCE
    - __putstr
    - NOW
    linkageType: ''
    returnType: void
    signature: void printk_start_of_line(const char *prefix)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/xen/xen/drivers/char/console.c:1001,1
    - Dst: local_irq_save
      Src: /src/xen/xen/drivers/char/console.c:1013,1
    - Dst: rspin_lock
      Src: /src/xen/xen/drivers/char/console.c:1014,1
    - Dst: this_cpu
      Src: /src/xen/xen/drivers/char/console.c:1015,1
    - Dst: vsnprintf
      Src: /src/xen/xen/drivers/char/console.c:1017,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/console.c:1021,1
    - Dst: printk_prefix_check
      Src: /src/xen/xen/drivers/char/console.c:1025,1
    - Dst: printk_start_of_line
      Src: /src/xen/xen/drivers/char/console.c:1029,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1030,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1031,1
    - Dst: printk_prefix_check
      Src: /src/xen/xen/drivers/char/console.c:1040,1
    - Dst: printk_start_of_line
      Src: /src/xen/xen/drivers/char/console.c:1044,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1045,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/drivers/char/console.c:1050,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/char/console.c:1051,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - fmt
    - args
    - prefix
    argTypes:
    - char*
    - va_list
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1000
    functionDepth: 7
    functionLinenumber: 1000
    functionLinenumberEnd: 1052
    functionName: vprintk_common
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - rspin_lock
    - rspin_unlock
    - strchr
    - vsnprintf
    - printk_start_of_line
    - printk_prefix_check
    - this_cpu
    - local_irq_restore
    - local_irq_save
    - format
    - __putstr
    linkageType: ''
    returnType: void
    signature: void vprintk_common(const char *fmt, va_list args, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vprintk_common
      Src: /src/xen/xen/drivers/char/console.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fmt
    - args
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1054
    functionDepth: 8
    functionLinenumber: 1054
    functionLinenumberEnd: 1057
    functionName: vprintk
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - vprintk_common
    linkageType: ''
    returnType: void
    signature: void vprintk(const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/xen/drivers/char/console.c:1063,1
    - Dst: vprintk
      Src: /src/xen/xen/drivers/char/console.c:1064,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/char/console.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1059
    functionDepth: 9
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    functionName: printk
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1683
    functionsReached:
    - va_start
    - va_end
    - vprintk
    linkageType: ''
    returnType: void
    signature: void printk(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:1073,1
    - Dst: va_start
      Src: /src/xen/xen/drivers/char/console.c:1075,1
    - Dst: vprintk_common
      Src: /src/xen/xen/drivers/char/console.c:1076,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/char/console.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - d
    - fmt
    argTypes:
    - struct domain*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 8
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: guest_printk
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 4
    functionsReached:
    - snprintf
    - va_start
    - va_end
    - vprintk_common
    linkageType: ''
    returnType: void
    signature: void guest_printk(const struct domain *d, const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: serial_init_preirq
      Src: /src/xen/xen/drivers/char/console.c:1086,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/console.c:1089,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/console.c:1093,1
    - Dst: video_init
      Src: /src/xen/xen/drivers/char/console.c:1094,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/console.c:1095,1
    - Dst: pv_console_init
      Src: /src/xen/xen/drivers/char/console.c:1096,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/console.c:1098,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/console.c:1101,1
    - Dst: serial_parse_handle
      Src: /src/xen/xen/drivers/char/console.c:1103,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/console.c:1110,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1080
    functionDepth: 10
    functionLinenumber: 1080
    functionLinenumberEnd: 1117
    functionName: console_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 3
    functionsReached:
    - serial_init_preirq
    - serial_parse_handle
    - video_init
    - strchr
    - strncmp
    - printk
    - pv_console_init
    linkageType: ''
    returnType: void
    signature: void console_init_preirq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serial_init_irq
      Src: /src/xen/xen/drivers/char/console.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1159
    functionName: console_init_irq
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - serial_init_irq
    linkageType: ''
    returnType: void
    signature: void console_init_irq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: serial_init_postirq
      Src: /src/xen/xen/drivers/char/console.c:1163,1
    - Dst: pv_console_init_postirq
      Src: /src/xen/xen/drivers/char/console.c:1164,1
    - Dst: num_present_cpus
      Src: /src/xen/xen/drivers/char/console.c:1170,1
    - Dst: console_init_ring
      Src: /src/xen/xen/drivers/char/console.c:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 7
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: console_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 4
    functionsReached:
    - console_init_ring
    - pv_console_init_postirq
    - serial_init_postirq
    - num_present_cpus
    linkageType: ''
    returnType: void
    signature: void console_init_postirq(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1177,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:1177,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1179,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:1179,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1180,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:1180,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1182,1
    - Dst: loglvl_str
      Src: /src/xen/xen/drivers/char/console.c:1182,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1183,1
    - Dst: warning_print
      Src: /src/xen/xen/drivers/char/console.c:1185,1
    - Dst: video_endboot
      Src: /src/xen/xen/drivers/char/console.c:1187,1
    - Dst: register_keyhandler
      Src: /src/xen/xen/drivers/char/console.c:1197,1
    - Dst: register_irq_keyhandler
      Src: /src/xen/xen/drivers/char/console.c:1199,1
    - Dst: register_irq_keyhandler
      Src: /src/xen/xen/drivers/char/console.c:1201,1
    - Dst: register_irq_keyhandler
      Src: /src/xen/xen/drivers/char/console.c:1203,1
    - Dst: console_switch_input
      Src: /src/xen/xen/drivers/char/console.c:1207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1175
    functionDepth: 10
    functionLinenumber: 1175
    functionLinenumberEnd: 1208
    functionName: console_endboot
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - warning_print
    - video_endboot
    - register_irq_keyhandler
    - console_switch_input
    - register_keyhandler
    - printk
    - loglvl_str
    linkageType: ''
    returnType: void
    signature: void console_endboot(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/console.c:1214,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/console.c:1218,1
    - Dst: strlen
      Src: /src/xen/xen/drivers/char/console.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - device
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1223
    functionName: console_has
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - strchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int console_has(const char *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serial_start_log_everything
      Src: /src/xen/xen/drivers/char/console.c:1227,1
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/char/console.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1229
    functionName: console_start_log_everything
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - atomic_inc
    - serial_start_log_everything
    linkageType: ''
    returnType: void
    signature: void console_start_log_everything(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serial_end_log_everything
      Src: /src/xen/xen/drivers/char/console.c:1233,1
    - Dst: atomic_dec
      Src: /src/xen/xen/drivers/char/console.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1235
    functionName: console_end_log_everything
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - serial_end_log_everything
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void console_end_log_everything(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_lock_irqsave
      Src: /src/xen/xen/drivers/char/console.c:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1237
    functionDepth: 2
    functionLinenumber: 1237
    functionLinenumberEnd: 1240
    functionName: console_lock_recursive_irqsave
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - rspin_lock_irqsave
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long console_lock_recursive_irqsave(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rspin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/console.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1245
    functionName: console_unlock_recursive_irqrestore
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 2
    functionsReached:
    - rspin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void console_unlock_recursive_irqrestore(unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watchdog_disable
      Src: /src/xen/xen/drivers/char/console.c:1249,1
    - Dst: spin_debug_disable
      Src: /src/xen/xen/drivers/char/console.c:1250,1
    - Dst: rspin_lock_init
      Src: /src/xen/xen/drivers/char/console.c:1251,1
    - Dst: serial_force_unlock
      Src: /src/xen/xen/drivers/char/console.c:1252,1
    - Dst: console_start_sync
      Src: /src/xen/xen/drivers/char/console.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1255
    functionName: console_force_unlock
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 8
    functionsReached:
    - console_start_sync
    - spin_debug_disable
    - watchdog_disable
    - rspin_lock_init
    - serial_force_unlock
    linkageType: ''
    returnType: void
    signature: void console_force_unlock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_inc
      Src: /src/xen/xen/drivers/char/console.c:1259,1
    - Dst: serial_start_sync
      Src: /src/xen/xen/drivers/char/console.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1261
    functionName: console_start_sync
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 11
    functionsReached:
    - atomic_inc
    - serial_start_sync
    linkageType: ''
    returnType: void
    signature: void console_start_sync(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serial_end_sync
      Src: /src/xen/xen/drivers/char/console.c:1265,1
    - Dst: atomic_dec
      Src: /src/xen/xen/drivers/char/console.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1267
    functionName: console_end_sync
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 4
    functionsReached:
    - serial_end_sync
    - atomic_dec
    linkageType: ''
    returnType: void
    signature: void console_end_sync(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NOW
      Src: /src/xen/xen/drivers/char/console.c:1282,1
    - Dst: do_div
      Src: /src/xen/xen/drivers/char/console.c:1285,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/console.c:1288,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/char/console.c:1299,1
    - Dst: snprintf
      Src: /src/xen/xen/drivers/char/console.c:1304,1
    - Dst: rspin_lock
      Src: /src/xen/xen/drivers/char/console.c:1306,1
    - Dst: printk_start_of_line
      Src: /src/xen/xen/drivers/char/console.c:1307,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1308,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1309,1
    - Dst: __putstr
      Src: /src/xen/xen/drivers/char/console.c:1310,1
    - Dst: rspin_unlock
      Src: /src/xen/xen/drivers/char/console.c:1311,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/char/console.c:1313,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/console.c:1317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ratelimit_ms
    - ratelimit_burst
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1275
    functionDepth: 7
    functionLinenumber: 1275
    functionLinenumberEnd: 1319
    functionName: __printk_ratelimit
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached:
    - snprintf
    - spin_unlock
    - rspin_lock
    - spin_lock_irqsave
    - rspin_unlock
    - spin_unlock_irqrestore
    - printk_start_of_line
    - local_irq_restore
    - do_div
    - __putstr
    - NOW
    linkageType: ''
    returnType: int
    signature: int __printk_ratelimit(unsigned int ratelimit_ms, unsigned int ratelimit_burst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __printk_ratelimit
      Src: /src/xen/xen/drivers/char/console.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1327
    functionDepth: 8
    functionLinenumber: 1327
    functionLinenumberEnd: 1330
    functionName: printk_ratelimit
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 15
    functionsReached:
    - __printk_ratelimit
    linkageType: ''
    returnType: int
    signature: int printk_ratelimit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spin_debug_disable
      Src: /src/xen/xen/drivers/char/console.c:1344,1
    - Dst: spinlock_profile_printall
      Src: /src/xen/xen/drivers/char/console.c:1345,1
    - Dst: debugtrace_dump
      Src: /src/xen/xen/drivers/char/console.c:1346,1
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/console.c:1349,1
    - Dst: console_start_sync
      Src: /src/xen/xen/drivers/char/console.c:1351,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1352,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1353,1
    - Dst: smp_processor_id
      Src: /src/xen/xen/drivers/char/console.c:1353,1
    - Dst: va_start
      Src: /src/xen/xen/drivers/char/console.c:1355,1
    - Dst: vprintk
      Src: /src/xen/xen/drivers/char/console.c:1356,1
    - Dst: va_end
      Src: /src/xen/xen/drivers/char/console.c:1357,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1359,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1361,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1364,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/console.c:1366,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/console.c:1369,1
    - Dst: kexec_crash
      Src: /src/xen/xen/drivers/char/console.c:1371,1
    - Dst: machine_halt
      Src: /src/xen/xen/drivers/char/console.c:1374,1
    - Dst: machine_restart
      Src: /src/xen/xen/drivers/char/console.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1338
    functionDepth: 10
    functionLinenumber: 1338
    functionLinenumberEnd: 1377
    functionName: panic
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 243
    functionsReached:
    - va_start
    - console_start_sync
    - debugtrace_dump
    - kexec_crash
    - smp_processor_id
    - spin_lock_irqsave
    - spin_debug_disable
    - spin_unlock_irqrestore
    - machine_halt
    - printk
    - machine_restart
    - spinlock_profile_printall
    - va_end
    - vprintk
    linkageType: ''
    returnType: void
    signature: void panic(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - str
    - nr
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1387
    functionDepth: 0
    functionLinenumber: 1387
    functionLinenumberEnd: 1387
    functionName: suspend_steal_fn
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void suspend_steal_fn(const char *str, size_t nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_steal
      Src: /src/xen/xen/drivers/char/console.c:1392,1
    - Dst: serial_suspend
      Src: /src/xen/xen/drivers/char/console.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1395
    functionName: console_suspend
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - console_steal
    - serial_suspend
    linkageType: ''
    returnType: int
    signature: int console_suspend(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serial_resume
      Src: /src/xen/xen/drivers/char/console.c:1399,1
    - Dst: console_giveback
      Src: /src/xen/xen/drivers/char/console.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1402
    functionName: console_resume
    functionSourceFile: /src/xen/xen/drivers/char/console.c
    functionUses: 1
    functionsReached:
    - console_giveback
    - serial_resume
    linkageType: ''
    returnType: int
    signature: int console_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: AML_UART_XMIT_IRQ
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AML_UART_XMIT_IRQ(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: AML_UART_RECV_IRQ
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AML_UART_RECV_IRQ(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: setbits
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setbits(addr, set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - addr
    - ','
    - clear
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: clrbits
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: clrbits(addr, clear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/meson-uart.c:68,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/meson-uart.c:71,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/meson-uart.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: meson_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - serial_rx_interrupt
    - serial_tx_interrupt
    - readl
    linkageType: ''
    returnType: void
    signature: void meson_uart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:82,1
    - Dst: clrbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:85,1
    - Dst: clrbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: meson_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - clrbits
    - setbits
    linkageType: ''
    returnType: void
    signature: void meson_uart_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/meson-uart.c:101,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/meson-uart.c:103,1
    - Dst: writel
      Src: /src/xen/xen/drivers/char/meson-uart.c:111,1
    - Dst: AML_UART_RECV_IRQ
      Src: /src/xen/xen/drivers/char/meson-uart.c:111,1
    - Dst: AML_UART_XMIT_IRQ
      Src: /src/xen/xen/drivers/char/meson-uart.c:111,1
    - Dst: setbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 10
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: meson_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - writel
    - AML_UART_XMIT_IRQ
    - AML_UART_RECV_IRQ
    - printk
    - setup_irq
    - setbits
    linkageType: ''
    returnType: void
    signature: void meson_uart_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/meson-uart.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: meson_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: void meson_uart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/meson-uart.c:130,1
    - Dst: readl
      Src: /src/xen/xen/drivers/char/meson-uart.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: meson_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: int
    signature: int meson_uart_getc(struct serial_port *port, char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: meson_irq
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int meson_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: meson_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *meson_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clrbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: meson_uart_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - clrbits
    linkageType: ''
    returnType: void
    signature: void meson_uart_stop_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setbits
      Src: /src/xen/xen/drivers/char/meson-uart.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: meson_uart_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - setbits
    linkageType: ''
    returnType: void
    signature: void meson_uart_start_tx(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/meson-uart.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: meson_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: int
    signature: int meson_uart_tx_ready(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/meson-uart.c:200,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/meson-uart.c:201,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/meson-uart.c:205,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/meson-uart.c:208,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/meson-uart.c:212,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/meson-uart.c:215,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/meson-uart.c:221,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/meson-uart.c:224,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/meson-uart.c:235,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/meson-uart.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 193
    functionDepth: 10
    functionLinenumber: 193
    functionLinenumberEnd: 240
    functionName: meson_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/meson-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: int meson_uart_init(struct dt_device_node *dev, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: cuart_read
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cuart_read(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: cuart_write
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cuart_write(uart, off,val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cuart_read
      Src: /src/xen/xen/drivers/char/cadence-uart.c:50,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/cadence-uart.c:54,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: cuart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_write
    - serial_rx_interrupt
    - cuart_read
    linkageType: ''
    returnType: void
    signature: void cuart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:64,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: cuart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_write
    linkageType: ''
    returnType: void
    signature: void cuart_init_preirq(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/cadence-uart.c:80,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/cadence-uart.c:81,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:85,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:86,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:89,1
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 70
    functionDepth: 10
    functionLinenumber: 70
    functionLinenumberEnd: 91
    functionName: cuart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_write
    - setup_irq
    - printk
    linkageType: ''
    returnType: void
    signature: void cuart_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cuart_read
      Src: /src/xen/xen/drivers/char/cadence-uart.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: cuart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_read
    linkageType: ''
    returnType: int
    signature: int cuart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cuart_write
      Src: /src/xen/xen/drivers/char/cadence-uart.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: cuart_putc
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_write
    linkageType: ''
    returnType: void
    signature: void cuart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cuart_read
      Src: /src/xen/xen/drivers/char/cadence-uart.c:112,1
    - Dst: cuart_read
      Src: /src/xen/xen/drivers/char/cadence-uart.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: cuart_getc
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - cuart_read
    linkageType: ''
    returnType: int
    signature: int cuart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: cuart_irq
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cuart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: cuart_vuart
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *cuart_vuart(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/cadence-uart.c:150,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/cadence-uart.c:151,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/cadence-uart.c:155,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/cadence-uart.c:158,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/cadence-uart.c:163,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/cadence-uart.c:166,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/cadence-uart.c:171,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/cadence-uart.c:174,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/cadence-uart.c:185,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/cadence-uart.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 143
    functionDepth: 10
    functionLinenumber: 143
    functionLinenumberEnd: 190
    functionName: cuart_init
    functionSourceFile: /src/xen/xen/drivers/char/cadence-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: int cuart_init(struct dt_device_node *dev, const void *data)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: console_has
      Src: /src/xen/xen/drivers/char/uart-init.c:41,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/uart-init.c:44,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/drivers/char/uart-init.c:46,1
    - Dst: dt_property_read_string
      Src: /src/xen/xen/drivers/char/uart-init.c:52,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:55,1
    - Dst: strlcpy
      Src: /src/xen/xen/drivers/char/uart-init.c:56,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:58,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:61,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/uart-init.c:65,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:67,1
    - Dst: strchr
      Src: /src/xen/xen/drivers/char/uart-init.c:71,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:80,1
    - Dst: dt_find_node_by_path
      Src: /src/xen/xen/drivers/char/uart-init.c:82,1
    - Dst: dt_find_node_by_alias
      Src: /src/xen/xen/drivers/char/uart-init.c:84,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:88,1
    - Dst: device_init
      Src: /src/xen/xen/drivers/char/uart-init.c:92,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 33
    functionDepth: 10
    functionLinenumber: 33
    functionLinenumberEnd: 96
    functionName: dt_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/uart-init.c
    functionUses: 0
    functionsReached:
    - dt_find_node_by_alias
    - console_has
    - device_init
    - dt_find_node_by_path
    - strchr
    - dt_property_read_string
    - strlcpy
    - printk
    - strcmp
    linkageType: ''
    returnType: void
    signature: void dt_uart_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: acpi_get_table
      Src: /src/xen/xen/drivers/char/uart-init.c:104,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:108,1
    - Dst: acpi_device_init
      Src: /src/xen/xen/drivers/char/uart-init.c:112,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/uart-init.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 99
    functionDepth: 10
    functionLinenumber: 99
    functionLinenumberEnd: 117
    functionName: acpi_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/uart-init.c
    functionUses: 0
    functionsReached:
    - acpi_get_table
    - acpi_device_init
    - printk
    linkageType: ''
    returnType: void
    signature: void acpi_uart_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: acpi_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/uart-init.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void acpi_uart_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dt_uart_init
      Src: /src/xen/xen/drivers/char/uart-init.c:125,1
    - Dst: acpi_uart_init
      Src: /src/xen/xen/drivers/char/uart-init.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 11
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: uart_init
    functionSourceFile: /src/xen/xen/drivers/char/uart-init.c
    functionUses: 9
    functionsReached:
    - acpi_uart_init
    - dt_uart_init
    linkageType: ''
    returnType: void
    signature: void uart_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uart
    - 'off'
    argTypes:
    - struct linflex_uart*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: linflex_uart_readl
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - readl
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t linflex_uart_readl(const struct linflex_uart *uart,\n                                   uint32_t
      off)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - uart
    - 'off'
    - val
    argTypes:
    - struct linflex_uart*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: linflex_uart_writel
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - writel
    linkageType: ''
    returnType: void
    signature: "void linflex_uart_writel(const struct linflex_uart *uart, uint32_t
      off,\n                                uint32_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeb
      Src: /src/xen/xen/drivers/char/linflex-uart.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - uart
    - 'off'
    - val
    argTypes:
    - struct linflex_uart*
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: linflex_uart_writeb
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - writeb
    linkageType: ''
    returnType: void
    signature: "void linflex_uart_writeb(const struct linflex_uart *uart, uint32_t
      off,\n                                uint8_t val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uartcr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: linflex_uart_get_osr
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t linflex_uart_get_osr(uint32_t uartcr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct linflex_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: linflex_uart_tx_fifo_mode
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_readl
    linkageType: ''
    returnType: bool
    signature: bool linflex_uart_tx_fifo_mode(const struct linflex_uart *uart)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct linflex_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: linflex_uart_rx_fifo_mode
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_readl
    linkageType: ''
    returnType: bool
    signature: bool linflex_uart_rx_fifo_mode(const struct linflex_uart *uart)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:72,1
    - Dst: linflex_uart_get_osr
      Src: /src/xen/xen/drivers/char/linflex-uart.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uart
    argTypes:
    - struct linflex_uart*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: linflex_uart_ldiv_multiplier
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_readl
    - linflex_uart_get_osr
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t linflex_uart_ldiv_multiplier(const struct linflex_uart *uart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_tx_fifo_mode
      Src: /src/xen/xen/drivers/char/linflex-uart.c:83,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:84,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:85,1
    - Dst: linflex_uart_rx_fifo_mode
      Src: /src/xen/xen/drivers/char/linflex-uart.c:87,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:88,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: linflex_uart_flush
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_tx_fifo_mode
    - linflex_uart_rx_fifo_mode
    - linflex_uart_readl
    - cpu_relax
    linkageType: ''
    returnType: void
    signature: void linflex_uart_flush(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:98,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:100,1
    - Dst: linflex_uart_flush
      Src: /src/xen/xen/drivers/char/linflex-uart.c:106,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:110,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:113,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:114,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:118,1
    - Dst: linflex_uart_ldiv_multiplier
      Src: /src/xen/xen/drivers/char/linflex-uart.c:125,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:130,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:131,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:134,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:137,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:140,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:144,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:146,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:149,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 152
    functionName: linflex_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - linflex_uart_flush
    - linflex_uart_writel
    - linflex_uart_readl
    - linflex_uart_ldiv_multiplier
    linkageType: ''
    returnType: void
    signature: void linflex_uart_init_preirq(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:160,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/linflex-uart.c:163,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/linflex-uart.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 167
    functionName: linflex_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - serial_rx_interrupt
    - linflex_uart_readl
    - serial_tx_interrupt
    linkageType: ''
    returnType: void
    signature: void linflex_uart_interrupt(int irq, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/linflex-uart.c:178,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:180,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:185,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:187,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 189
    functionName: linflex_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - linflex_uart_readl
    - printk
    - linflex_uart_writel
    linkageType: ''
    returnType: void
    signature: void linflex_uart_init_postirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_tx_fifo_mode
      Src: /src/xen/xen/drivers/char/linflex-uart.c:195,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 203
    functionName: linflex_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_tx_fifo_mode
    - linflex_uart_readl
    linkageType: ''
    returnType: int
    signature: int linflex_uart_tx_ready(struct serial_port *port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_putc
      Src: /src/xen/xen/drivers/char/linflex-uart.c:211,1
    - Dst: linflex_uart_writeb
      Src: /src/xen/xen/drivers/char/linflex-uart.c:213,1
    - Dst: linflex_uart_tx_fifo_mode
      Src: /src/xen/xen/drivers/char/linflex-uart.c:216,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:218,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:219,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:221,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 224
    functionName: linflex_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 1
    functionsReached:
    - cpu_relax
    - linflex_uart_putc
    - linflex_uart_tx_fifo_mode
    - linflex_uart_writel
    - linflex_uart_readl
    - linflex_uart_writeb
    linkageType: ''
    returnType: void
    signature: void linflex_uart_putc(struct serial_port *port, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_rx_fifo_mode
      Src: /src/xen/xen/drivers/char/linflex-uart.c:231,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:234,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:235,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:237,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/linflex-uart.c:238,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:240,1
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:244,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: linflex_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_rx_fifo_mode
    - linflex_uart_readl
    - cpu_relax
    - linflex_uart_writel
    linkageType: ''
    returnType: int
    signature: int linflex_uart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: linflex_uart_irq
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int linflex_uart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: linflex_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *linflex_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:270,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: linflex_uart_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_readl
    - linflex_uart_writel
    linkageType: ''
    returnType: void
    signature: void linflex_uart_start_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: linflex_uart_readl
      Src: /src/xen/xen/drivers/char/linflex-uart.c:279,1
    - Dst: linflex_uart_writel
      Src: /src/xen/xen/drivers/char/linflex-uart.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: linflex_uart_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - linflex_uart_readl
    - linflex_uart_writel
    linkageType: ''
    returnType: void
    signature: void linflex_uart_stop_tx(struct serial_port *port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/linflex-uart.c:305,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/char/linflex-uart.c:307,1
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/linflex-uart.c:308,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:309,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:316,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/linflex-uart.c:322,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:325,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/linflex-uart.c:329,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:332,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/linflex-uart.c:337,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/linflex-uart.c:340,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/linflex-uart.c:354,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/linflex-uart.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 297
    functionDepth: 10
    functionLinenumber: 297
    functionLinenumberEnd: 359
    functionName: linflex_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/linflex-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - serial_register_uart
    - strcmp
    - simple_strtoul
    linkageType: ''
    returnType: int
    signature: int linflex_uart_init(struct dt_device_node *dev, const void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: exynos4210_read
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exynos4210_read(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: exynos4210_write
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: exynos4210_write(uart, off, val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:54,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:66,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:69,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:71,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:73,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:75,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:77,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:84,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:86,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:92,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:94,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 99
    functionName: exynos4210_uart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - serial_tx_interrupt
    - exynos4210_write
    - exynos4210_read
    - serial_rx_interrupt
    - dprintk
    linkageType: ''
    returnType: void
    signature: void exynos4210_uart_interrupt(int irq, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:107,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:110,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:121,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:122,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:141,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:149,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:156,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:159,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:160,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:163,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:166,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:179,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 190
    functionName: exynos4210_uart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - exynos4210_write
    - exynos4210_read
    linkageType: ''
    returnType: void
    signature: void exynos4210_uart_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:201,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:202,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:206,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:209,1
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:212,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 213
    functionName: exynos4210_uart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - dprintk
    - exynos4210_write
    - exynos4210_read
    linkageType: ''
    returnType: void
    signature: void exynos4210_uart_init_postirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:220,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:224,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: exynos4210_uart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - ASSERT
    - exynos4210_read
    linkageType: ''
    returnType: int
    signature: int exynos4210_uart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exynos4210_write
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: exynos4210_uart_putc
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - exynos4210_write
    linkageType: ''
    returnType: void
    signature: void exynos4210_uart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:247,1
    - Dst: exynos4210_read
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: exynos4210_uart_getc
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - exynos4210_read
    linkageType: ''
    returnType: int
    signature: int exynos4210_uart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: exynos4210_uart_irq
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int exynos4210_uart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: exynos4210_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *exynos4210_vuart_info(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:295,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:296,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:306,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:309,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:314,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:317,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:322,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:325,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:336,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/exynos4210-uart.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 341
    functionName: exynos4210_uart_init
    functionSourceFile: /src/xen/xen/drivers/char/exynos4210-uart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: "int exynos4210_uart_init(struct dt_device_node *dev,\n                                       const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: imx_lpuart_read
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imx_lpuart_read(uart, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - uart
    - ','
    - 'off'
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: imx_lpuart_write
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: imx_lpuart_write(uart, off, val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:45,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:46,1
    - Dst: serial_rx_interrupt
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:49,1
    - Dst: serial_tx_interrupt
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:52,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - irq
    - data
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: imx_lpuart_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - serial_rx_interrupt
    - serial_tx_interrupt
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_interrupt(int irq, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:62,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:64,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:66,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:67,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:70,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:75,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:76,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 78
    functionName: imx_lpuart_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_init_preirq(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_irq
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:89,1
    - Dst: dprintk
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:91,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:97,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: imx_lpuart_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - setup_irq
    - dprintk
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_init_postirq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: imx_lpuart_tx_ready
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - imx_lpuart_read
    linkageType: ''
    returnType: int
    signature: int imx_lpuart_tx_ready(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:114,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:115,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: imx_lpuart_putc
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_putc(struct serial_port *port, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:125,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:128,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:131,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - port
    - pc
    argTypes:
    - struct serial_port*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: imx_lpuart_getc
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: int
    signature: int imx_lpuart_getc(struct serial_port *port, char *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: imx_lpuart_irq
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int imx_lpuart_irq(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: imx_lpuart_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *imx_lpuart_vuart_info(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:157,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:158,1
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:160,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: imx_lpuart_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_start_tx(struct serial_port *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: imx_lpuart_read
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:169,1
    - Dst: imx_lpuart_write
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: imx_lpuart_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - imx_lpuart_read
    - imx_lpuart_write
    linkageType: ''
    returnType: void
    signature: void imx_lpuart_stop_tx(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:194,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:195,1
    - Dst: dt_device_get_paddr
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:199,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:202,1
    - Dst: platform_get_irq
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:207,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:210,1
    - Dst: ioremap_nocache
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:215,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:218,1
    - Dst: serial_register_uart
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:230,1
    - Dst: dt_device_set_used_by
      Src: /src/xen/xen/drivers/char/imx-lpuart.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - dev
    - data
    argTypes:
    - struct dt_device_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 186
    functionDepth: 10
    functionLinenumber: 186
    functionLinenumberEnd: 235
    functionName: imx_lpuart_init
    functionSourceFile: /src/xen/xen/drivers/char/imx-lpuart.c
    functionUses: 0
    functionsReached:
    - dt_device_get_paddr
    - dt_device_set_used_by
    - platform_get_irq
    - ioremap_nocache
    - printk
    - strcmp
    - serial_register_uart
    linkageType: ''
    returnType: int
    signature: "int imx_lpuart_init(struct dt_device_node *dev,\n                                  const
      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: mask_serial_rxbuf_idx
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mask_serial_rxbuf_idx(_i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: mask_serial_txbuf_idx
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mask_serial_txbuf_idx(_i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct serial_port*::driver::start_tx
      Src: /src/xen/xen/drivers/char/serial.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: serial_start_tx
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached:
    - struct serial_port*::driver::start_tx
    linkageType: ''
    returnType: void
    signature: void serial_start_tx(struct serial_port *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct serial_port*::driver::stop_tx
      Src: /src/xen/xen/drivers/char/serial.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: serial_stop_tx
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached:
    - struct serial_port*::driver::stop_tx
    linkageType: ''
    returnType: void
    signature: void serial_stop_tx(struct serial_port *port)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:54,1
    - Dst: struct serial_port*::driver::getc
      Src: /src/xen/xen/drivers/char/serial.c:56,1
    - Dst: mask_serial_rxbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:65,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:68,1
    - Dst: fn
      Src: /src/xen/xen/drivers/char/serial.c:71,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: serial_rx_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 13
    functionsReached:
    - struct serial_port*::driver::getc
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    - fn
    - mask_serial_rxbuf_idx
    linkageType: ''
    returnType: void
    signature: void serial_rx_interrupt(struct serial_port *port)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: local_irq_save
      Src: /src/xen/xen/drivers/char/serial.c:79,1
    - Dst: spin_trylock
      Src: /src/xen/xen/drivers/char/serial.c:86,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:88,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/serial.c:90,1
    - Dst: serial_stop_tx
      Src: /src/xen/xen/drivers/char/serial.c:96,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/char/serial.c:97,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:102,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:103,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:105,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:109,1
    - Dst: mask_serial_txbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:110,1
    - Dst: struct serial_port*::driver::flush
      Src: /src/xen/xen/drivers/char/serial.c:113,1
    - Dst: spin_unlock
      Src: /src/xen/xen/drivers/char/serial.c:115,1
    - Dst: local_irq_restore
      Src: /src/xen/xen/drivers/char/serial.c:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 119
    functionName: serial_tx_interrupt
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 12
    functionsReached:
    - spin_unlock
    - cpu_relax
    - struct serial_port*::driver::tx_ready
    - serial_start_tx
    - struct serial_port*::driver::flush
    - mask_serial_txbuf_idx
    - serial_stop_tx
    - spin_trylock
    - local_irq_restore
    - local_irq_save
    - struct serial_port*::driver::putc
    linkageType: ''
    returnType: void
    signature: void serial_tx_interrupt(struct serial_port *port)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:142,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/serial.c:143,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:147,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:149,1
    - Dst: mask_serial_txbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:151,1
    - Dst: mask_serial_txbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:152,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:164,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:167,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:169,1
    - Dst: mask_serial_txbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:174,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:182,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/serial.c:183,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:187,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:188,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:194,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:195,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - port
    - c
    argTypes:
    - struct serial_port*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 197
    functionName: __serial_putc
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached:
    - cpu_relax
    - struct serial_port*::driver::tx_ready
    - serial_start_tx
    - mask_serial_txbuf_idx
    - struct serial_port*::driver::putc
    linkageType: ''
    returnType: void
    signature: void __serial_putc(struct serial_port *port, char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:211,1
    - Dst: __serial_putc
      Src: /src/xen/xen/drivers/char/serial.c:218,1
    - Dst: __serial_putc
      Src: /src/xen/xen/drivers/char/serial.c:225,1
    - Dst: struct serial_port*::driver::flush
      Src: /src/xen/xen/drivers/char/serial.c:229,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - handle
    - s
    - nr
    argTypes:
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 232
    functionName: serial_puts
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 4
    functionsReached:
    - __serial_putc
    - spin_lock_irqsave
    - struct serial_port*::driver::flush
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void serial_puts(int handle, const char *s, size_t nr)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/serial.c:238,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/serial.c:244,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/serial.c:250,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/serial.c:256,1
    - Dst: strncmp
      Src: /src/xen/xen/drivers/char/serial.c:262,1
    - Dst: driver::init_postirq
      Src: /src/xen/xen/drivers/char/serial.c:291,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 1
    argNames:
    - conf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 299
    functionName: serial_parse_handle
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - strncmp
    - driver::init_postirq
    linkageType: ''
    returnType: int
    signature: int serial_parse_handle(const char *conf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:311,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:335,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:339,1
    - Dst: printk
      Src: /src/xen/xen/drivers/char/serial.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - handle
    - fn
    argTypes:
    - int
    - serial_rx_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 301
    functionDepth: 10
    functionLinenumber: 301
    functionLinenumberEnd: 342
    functionName: serial_set_rx_handler
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 0
    functionsReached:
    - printk
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void serial_set_rx_handler(int handle, serial_rx_fn fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/char/serial.c:353,1
    - Dst: spin_lock_init
      Src: /src/xen/xen/drivers/char/serial.c:354,1
    - Dst: serial_start_sync
      Src: /src/xen/xen/drivers/char/serial.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: serial_force_unlock
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - spin_lock_init
    - serial_start_sync
    linkageType: ''
    returnType: void
    signature: void serial_force_unlock(int handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:369,1
    - Dst: struct serial_port*::driver::tx_ready
      Src: /src/xen/xen/drivers/char/serial.c:377,1
    - Dst: cpu_relax
      Src: /src/xen/xen/drivers/char/serial.c:378,1
    - Dst: serial_start_tx
      Src: /src/xen/xen/drivers/char/serial.c:383,1
    - Dst: struct serial_port*::driver::putc
      Src: /src/xen/xen/drivers/char/serial.c:384,1
    - Dst: mask_serial_txbuf_idx
      Src: /src/xen/xen/drivers/char/serial.c:385,1
    - Dst: struct serial_port*::driver::flush
      Src: /src/xen/xen/drivers/char/serial.c:388,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 392
    functionName: serial_start_sync
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 2
    functionsReached:
    - cpu_relax
    - struct serial_port*::driver::tx_ready
    - serial_start_tx
    - struct serial_port*::driver::flush
    - spin_lock_irqsave
    - mask_serial_txbuf_idx
    - spin_unlock_irqrestore
    - struct serial_port*::driver::putc
    linkageType: ''
    returnType: void
    signature: void serial_start_sync(int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:404,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 409
    functionName: serial_end_sync
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void serial_end_sync(int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:421,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: serial_start_log_everything
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void serial_start_log_everything(int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spin_lock_irqsave
      Src: /src/xen/xen/drivers/char/serial.c:437,1
    - Dst: spin_unlock_irqrestore
      Src: /src/xen/xen/drivers/char/serial.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 440
    functionName: serial_end_log_everything
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - spin_lock_irqsave
    - spin_unlock_irqrestore
    linkageType: ''
    returnType: void
    signature: void serial_end_log_everything(int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:445,1
    - Dst: driver::init_preirq
      Src: /src/xen/xen/drivers/char/serial.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: serial_init_preirq
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - driver::init_preirq
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void serial_init_preirq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:454,1
    - Dst: driver::init_irq
      Src: /src/xen/xen/drivers/char/serial.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 457
    functionName: serial_init_irq
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - driver::init_irq
    linkageType: ''
    returnType: void
    signature: void serial_init_irq(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:462,1
    - Dst: driver::init_postirq
      Src: /src/xen/xen/drivers/char/serial.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 470
    functionName: serial_init_postirq
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - driver::init_postirq
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void serial_init_postirq(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:475,1
    - Dst: driver::endboot
      Src: /src/xen/xen/drivers/char/serial.c:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: serial_endboot
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 2
    functionsReached:
    - driver::endboot
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void serial_endboot(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:482,1
    - Dst: driver::irq
      Src: /src/xen/xen/drivers/char/serial.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: serial_irq
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 3
    functionsReached:
    - driver::irq
    - ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int serial_irq(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:491,1
    - Dst: driver::vuart_info
      Src: /src/xen/xen/drivers/char/serial.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 496
    functionName: serial_vuart_info
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 2
    functionsReached:
    - driver::vuart_info
    - ARRAY_SIZE
    linkageType: ''
    returnType: struct vuart_info
    signature: struct vuart_info *serial_vuart_info(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:503,1
    - Dst: driver::suspend
      Src: /src/xen/xen/drivers/char/serial.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 506
    functionName: serial_suspend
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - driver::suspend
    linkageType: ''
    returnType: void
    signature: void serial_suspend(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/xen/drivers/char/serial.c:511,1
    - Dst: driver::resume
      Src: /src/xen/xen/drivers/char/serial.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 5
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: serial_resume
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 1
    functionsReached:
    - driver::resume
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void serial_resume(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - idx
    - driver
    - uart
    argTypes:
    - int
    - struct uart_driver*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: serial_register_uart
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void serial_register_uart(int idx, struct uart_driver *driver,\n                                 void
      *uart)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/xen/xen/drivers/char/serial.c:528,1
    - Dst: alloc_xenheap_pages
      Src: /src/xen/xen/drivers/char/serial.c:535,1
    - Dst: get_order_from_bytes
      Src: /src/xen/xen/drivers/char/serial.c:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - struct serial_port*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 6
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: serial_async_transmit
    functionSourceFile: /src/xen/xen/drivers/char/serial.c
    functionUses: 3
    functionsReached:
    - BUG_ON
    - get_order_from_bytes
    - alloc_xenheap_pages
    linkageType: ''
    returnType: void
    signature: void serial_async_transmit(struct serial_port *port)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/pci/pci.c:18,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/pci/pci.c:24,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/pci/pci.c:29,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - sbdf
    - cap
    argTypes:
    - pci_sbdf_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 40
    functionName: pci_find_cap_offset
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 12
    functionsReached:
    - pci_conf_read16
    - pci_conf_read8
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pci_find_cap_offset(pci_sbdf_t sbdf, unsigned int cap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/pci/pci.c:50,1
    - Dst: pci_conf_read8
      Src: /src/xen/xen/drivers/pci/pci.c:54,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/pci/pci.c:61,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - sbdf
    - pos
    - caps
    - n
    - ttl
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int[]
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 73
    functionName: pci_find_next_cap_ttl
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 1
    functionsReached:
    - ASSERT
    - pci_conf_read8
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pci_find_next_cap_ttl(pci_sbdf_t sbdf, unsigned int pos,\n
      \                                  const unsigned int caps[], unsigned int n,\n
      \                                  unsigned int *ttl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_next_cap_ttl
      Src: /src/xen/xen/drivers/pci/pci.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sbdf
    - pos
    - cap
    argTypes:
    - pci_sbdf_t
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: pci_find_next_cap
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 0
    functionsReached:
    - pci_find_next_cap_ttl
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pci_find_next_cap(pci_sbdf_t sbdf, unsigned int pos,\n
      \                              unsigned int cap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pci_find_next_ext_capability
      Src: /src/xen/xen/drivers/pci/pci.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pdev
    - cap
    argTypes:
    - struct pci_dev*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: pci_find_ext_capability
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 12
    functionsReached:
    - pci_find_next_ext_capability
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pci_find_ext_capability(const struct pci_dev *pdev,\n
      \                                    unsigned int cap)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/xen/xen/drivers/pci/pci.c:114,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/pci/pci.c:118,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/pci/pci.c:122,1
    - Dst: ASSERT
      Src: /src/xen/xen/drivers/pci/pci.c:130,1
    - Dst: PCI_EXT_CAP_ID
      Src: /src/xen/xen/drivers/pci/pci.c:130,1
    - Dst: PCI_EXT_CAP_ID
      Src: /src/xen/xen/drivers/pci/pci.c:133,1
    - Dst: PCI_EXT_CAP_NEXT
      Src: /src/xen/xen/drivers/pci/pci.c:135,1
    - Dst: pci_conf_read32
      Src: /src/xen/xen/drivers/pci/pci.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - pdev
    - start
    - cap
    argTypes:
    - struct pci_dev*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 141
    functionName: pci_find_next_ext_capability
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 2
    functionsReached:
    - PCI_EXT_CAP_NEXT
    - max
    - PCI_EXT_CAP_ID
    - ASSERT
    - pci_conf_read32
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pci_find_next_ext_capability(const struct pci_dev *pdev,\n
      \                                         unsigned int start,\n                                          unsigned
      int cap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pci_conf_read16
      Src: /src/xen/xen/drivers/pci/pci.c:145,1
    - Dst: pci_conf_write16
      Src: /src/xen/xen/drivers/pci/pci.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pdev
    - enable
    argTypes:
    - struct pci_dev*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: pci_intx
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 5
    functionsReached:
    - pci_conf_read16
    - pci_conf_write16
    linkageType: ''
    returnType: void
    signature: void pci_intx(const struct pci_dev *pdev, bool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_pci_seg
      Src: /src/xen/xen/drivers/pci/pci.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - seg_p
    - bus_p
    - dev_p
    - func_p
    argTypes:
    - char*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: parse_pci
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 8
    functionsReached:
    - parse_pci_seg
    linkageType: ''
    returnType: char
    signature: "char *__init parse_pci(const char *s, unsigned int *seg_p,\n                             unsigned
      int *bus_p, unsigned int *dev_p,\n                             unsigned int
      *func_p)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/pci/pci.c:167,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/pci/pci.c:171,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/pci/pci.c:174,1
    - Dst: simple_strtoul
      Src: /src/xen/xen/drivers/pci/pci.c:186,1
    - Dst: PCI_BUS
      Src: /src/xen/xen/drivers/pci/pci.c:191,1
    - Dst: PCI_BDF
      Src: /src/xen/xen/drivers/pci/pci.c:191,1
    - Dst: PCI_SLOT
      Src: /src/xen/xen/drivers/pci/pci.c:192,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/pci/pci.c:192,1
    - Dst: PCI_FUNC
      Src: /src/xen/xen/drivers/pci/pci.c:193,1
    - Dst: PCI_DEVFN
      Src: /src/xen/xen/drivers/pci/pci.c:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 6
    argNames:
    - s
    - seg_p
    - bus_p
    - dev_p
    - func_p
    - def_seg
    argTypes:
    - char*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: parse_pci_seg
    functionSourceFile: /src/xen/xen/drivers/pci/pci.c
    functionUses: 2
    functionsReached:
    - PCI_SLOT
    - PCI_FUNC
    - PCI_BUS
    - PCI_DEVFN
    - PCI_BDF
    - simple_strtoul
    linkageType: ''
    returnType: char
    signature: "char *__init parse_pci_seg(const char *s, unsigned int *seg_p,\n                                 unsigned
      int *bus_p, unsigned int *dev_p,\n                                 unsigned
      int *func_p, bool *def_seg)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: is_pci_passthrough_enabled
      Src: /src/xen/xen/drivers/pci/physdev.c:22,1
    - Dst: arch_pci_device_physdevop
      Src: /src/xen/xen/drivers/pci/physdev.c:22,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/pci/physdev.c:26,1
    - Dst: copy_from_guest_offset
      Src: /src/xen/xen/drivers/pci/physdev.c:46,1
    - Dst: pxm_to_node
      Src: /src/xen/xen/drivers/pci/physdev.c:49,1
    - Dst: pci_add_device
      Src: /src/xen/xen/drivers/pci/physdev.c:53,1
    - Dst: is_pci_passthrough_enabled
      Src: /src/xen/xen/drivers/pci/physdev.c:60,1
    - Dst: arch_pci_device_physdevop
      Src: /src/xen/xen/drivers/pci/physdev.c:60,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/pci/physdev.c:64,1
    - Dst: pci_remove_device
      Src: /src/xen/xen/drivers/pci/physdev.c:67,1
    - Dst: is_pci_passthrough_enabled
      Src: /src/xen/xen/drivers/pci/physdev.c:77,1
    - Dst: arch_pci_device_physdevop
      Src: /src/xen/xen/drivers/pci/physdev.c:77,1
    - Dst: copy_from_guest
      Src: /src/xen/xen/drivers/pci/physdev.c:81,1
    - Dst: PCI_SBDF
      Src: /src/xen/xen/drivers/pci/physdev.c:88,1
    - Dst: xsm_resource_setup_pci
      Src: /src/xen/xen/drivers/pci/physdev.c:92,1
    - Dst: pcidevs_lock
      Src: /src/xen/xen/drivers/pci/physdev.c:96,1
    - Dst: pci_get_pdev
      Src: /src/xen/xen/drivers/pci/physdev.c:97,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/pci/physdev.c:100,1
    - Dst: write_lock
      Src: /src/xen/xen/drivers/pci/physdev.c:105,1
    - Dst: pcidevs_unlock
      Src: /src/xen/xen/drivers/pci/physdev.c:106,1
    - Dst: vpci_reset_device
      Src: /src/xen/xen/drivers/pci/physdev.c:113,1
    - Dst: write_unlock
      Src: /src/xen/xen/drivers/pci/physdev.c:120,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 73
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 131
    functionName: pci_physdev_op
    functionSourceFile: /src/xen/xen/drivers/pci/physdev.c
    functionUses: 2
    functionsReached:
    - vpci_reset_device
    - pcidevs_lock
    - copy_from_guest
    - write_unlock
    - PCI_SBDF
    - pci_remove_device
    - is_pci_passthrough_enabled
    - pcidevs_unlock
    - pxm_to_node
    - pci_get_pdev
    - copy_from_guest_offset
    - xsm_resource_setup_pci
    - pci_add_device
    - write_lock
    - arch_pci_device_physdevop
    linkageType: ''
    returnType: ret_t
    signature: ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: grub_halt
    functionSourceFile: /src/xen/stubdom/grub/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: grub_halt(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/xen/stubdom/grub/mini-os.c:49,1
    - Dst: atoi
      Src: /src/xen/stubdom/grub/mini-os.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - _vbd1
    - _vbd2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: vbdcmp
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int vbdcmp(const void *_vbd1, const void *_vbd2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xenbus_ls
      Src: /src/xen/stubdom/grub/mini-os.c:61,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/mini-os.c:63,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:64,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/mini-os.c:70,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/mini-os.c:71,1
    - Dst: qsort
      Src: /src/xen/stubdom/grub/mini-os.c:73,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/mini-os.c:76,1
    - Dst: asprintf
      Src: /src/xen/stubdom/grub/mini-os.c:77,1
    - Dst: init_blkfront
      Src: /src/xen/stubdom/grub/mini-os.c:78,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:79,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 82
    functionName: init_disk
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - xenbus_ls
    - asprintf
    - free
    - qsort
    - malloc
    - printk
    - init_blkfront
    linkageType: ''
    returnType: void
    signature: void init_disk (void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - drive
    - geometry
    argTypes:
    - int
    - struct geometry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 107
    functionName: get_diskinfo
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_diskinfo (int drive, struct geometry *geometry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blkfront_io
      Src: /src/xen/stubdom/grub/mini-os.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - read
    - drive
    - geometry
    - sector
    - nsec
    - segment
    argTypes:
    - int
    - int
    - struct geometry*
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: biosdisk
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - blkfront_io
    linkageType: ''
    returnType: int
    signature: "int biosdisk (int read, int drive, struct geometry *geometry,\n          unsigned
      int sector, int nsec, int segment)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: grub_open
      Src: /src/xen/stubdom/grub/mini-os.c:150,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/mini-os.c:153,1
    - Dst: grub_read
      Src: /src/xen/stubdom/grub/mini-os.c:157,1
    - Dst: grub_close
      Src: /src/xen/stubdom/grub/mini-os.c:161,1
    - Dst: realloc
      Src: /src/xen/stubdom/grub/mini-os.c:168,1
    - Dst: grub_close
      Src: /src/xen/stubdom/grub/mini-os.c:170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - name
    - ptr
    - size
    argTypes:
    - char*
    - void**
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 174
    functionName: load_file
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - grub_open
    - grub_close
    - malloc
    - realloc
    - grub_read
    linkageType: ''
    returnType: int
    signature: int load_file(char *name, void **ptr, long *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: skip_to
      Src: /src/xen/stubdom/grub/mini-os.c:186,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:188,1
    - Dst: load_file
      Src: /src/xen/stubdom/grub/mini-os.c:190,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:193,1
    - Dst: strdup
      Src: /src/xen/stubdom/grub/mini-os.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - kernel
    - arg
    - suggested_type
    - load_flags
    argTypes:
    - char*
    - char*
    - kernel_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 196
    functionName: load_image
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 4
    functionsReached:
    - free
    - load_file
    - strdup
    - skip_to
    linkageType: ''
    returnType: kernel_t
    signature: "kernel_t load_image (char *kernel, char *arg, kernel_t suggested_type,\n
      \           unsigned long load_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:202,1
    - Dst: load_file
      Src: /src/xen/stubdom/grub/mini-os.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - initrd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: load_initrd
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - free
    - load_file
    linkageType: ''
    returnType: int
    signature: int load_initrd (char *initrd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: load_file
      Src: /src/xen/stubdom/grub/mini-os.c:216,1
    - Dst: strlen
      Src: /src/xen/stubdom/grub/mini-os.c:218,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:227,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:229,1
    - Dst: realloc
      Src: /src/xen/stubdom/grub/mini-os.c:237,1
    - Dst: memcpy
      Src: /src/xen/stubdom/grub/mini-os.c:252,1
    - Dst: strcpy
      Src: /src/xen/stubdom/grub/mini-os.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 268
    functionName: load_module
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - free
    - strcpy
    - strlen
    - load_file
    - memcpy
    - realloc
    linkageType: ''
    returnType: int
    signature: int load_module (char *module, char *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kexec
      Src: /src/xen/stubdom/grub/mini-os.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: pv_boot
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - kexec
    linkageType: ''
    returnType: void
    signature: void pv_boot (void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: grub_memset
      Src: /src/xen/stubdom/grub/mini-os.c:300,1
    - Dst: init_netfront
      Src: /src/xen/stubdom/grub/mini-os.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nic
    argTypes:
    - struct nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: minios_probe
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - init_netfront
    - grub_memset
    linkageType: ''
    returnType: int
    signature: int minios_probe (struct nic *nic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nic
    argTypes:
    - struct nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: minios_reset
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void minios_reset(struct nic *nic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nic
    argTypes:
    - struct nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: minios_disable
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void minios_disable(struct nic *nic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: netfront_receive
      Src: /src/xen/stubdom/grub/mini-os.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nic
    argTypes:
    - struct nic*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: minios_poll
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - netfront_receive
    linkageType: ''
    returnType: int
    signature: int minios_poll(struct nic *nic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/xen/stubdom/grub/mini-os.c:336,1
    - Dst: memcpy
      Src: /src/xen/stubdom/grub/mini-os.c:338,1
    - Dst: memcpy
      Src: /src/xen/stubdom/grub/mini-os.c:339,1
    - Dst: htons
      Src: /src/xen/stubdom/grub/mini-os.c:340,1
    - Dst: memcpy
      Src: /src/xen/stubdom/grub/mini-os.c:341,1
    - Dst: netfront_xmit
      Src: /src/xen/stubdom/grub/mini-os.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - nic
    - d
    - t
    - s
    - p
    argTypes:
    - struct nic*
    - char*
    - unsigned int
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: minios_transmit
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - netfront_xmit
    - alloca
    - memcpy
    - htons
    linkageType: ''
    returnType: void
    signature: "void minios_transmit (struct nic *nic, const char *d, unsigned int
      t,\n                             unsigned int s, const char *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minios_probe
      Src: /src/xen/stubdom/grub/mini-os.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: eth_probe
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - minios_probe
    linkageType: ''
    returnType: int
    signature: int eth_probe (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minios_poll
      Src: /src/xen/stubdom/grub/mini-os.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: eth_poll
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - minios_poll
    linkageType: ''
    returnType: int
    signature: int eth_poll (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minios_disable
      Src: /src/xen/stubdom/grub/mini-os.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: eth_disable
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - minios_disable
    linkageType: ''
    returnType: void
    signature: void eth_disable (void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: minios_transmit
      Src: /src/xen/stubdom/grub/mini-os.c:383,1
    - Dst: twiddle
      Src: /src/xen/stubdom/grub/mini-os.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - d
    - t
    - s
    - p
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: eth_transmit
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - twiddle
    - minios_transmit
    linkageType: ''
    returnType: void
    signature: "void eth_transmit (const char *d, unsigned int t,\n              unsigned
      int s, const void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: console_print
      Src: /src/xen/stubdom/grub/mini-os.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: serial_hw_put
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - console_print
    linkageType: ''
    returnType: void
    signature: void serial_hw_put (int _c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xencons_ring_avail
      Src: /src/xen/stubdom/grub/mini-os.c:403,1
    - Dst: read
      Src: /src/xen/stubdom/grub/mini-os.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 411
    functionName: serial_hw_fetch
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - xencons_ring_avail
    - read
    linkageType: ''
    returnType: int
    signature: int serial_hw_fetch (void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kbdfront_receive
      Src: /src/xen/stubdom/grub/mini-os.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: console_checkkey
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - kbdfront_receive
    linkageType: ''
    returnType: int
    signature: int console_checkkey (void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: kbdfront_receive
      Src: /src/xen/stubdom/grub/mini-os.c:614,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 655
    functionName: console_getkey
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - kbdfront_receive
    linkageType: ''
    returnType: int
    signature: int console_getkey (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_kbdfront
      Src: /src/xen/stubdom/grub/mini-os.c:660,1
    - Dst: up
      Src: /src/xen/stubdom/grub/mini-os.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: kbd_thread
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - init_kbdfront
    - up
    linkageType: ''
    returnType: void
    signature: void kbd_thread(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_thread
      Src: /src/xen/stubdom/grub/mini-os.c:672,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/mini-os.c:674,1
    - Dst: memset
      Src: /src/xen/stubdom/grub/mini-os.c:676,1
    - Dst: virtual_to_mfn
      Src: /src/xen/stubdom/grub/mini-os.c:677,1
    - Dst: init_fbfront
      Src: /src/xen/stubdom/grub/mini-os.c:679,1
    - Dst: free
      Src: /src/xen/stubdom/grub/mini-os.c:680,1
    - Dst: down
      Src: /src/xen/stubdom/grub/mini-os.c:685,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - fb
    - width
    - height
    - depth
    argTypes:
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 690
    functionName: fb_open
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - create_thread
    - down
    - free
    - malloc
    - virtual_to_mfn
    - memset
    - init_fbfront
    linkageType: ''
    returnType: struct fbfront_dev
    signature: struct fbfront_dev *fb_open(void *fb, int width, int height, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shutdown_kbdfront
      Src: /src/xen/stubdom/grub/mini-os.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - foo
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 696
    functionName: kbd_close
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - shutdown_kbdfront
    linkageType: ''
    returnType: void
    signature: void kbd_close(void *foo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_thread
      Src: /src/xen/stubdom/grub/mini-os.c:700,1
    - Dst: shutdown_fbfront
      Src: /src/xen/stubdom/grub/mini-os.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: fb_close
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - create_thread
    - shutdown_fbfront
    linkageType: ''
    returnType: void
    signature: void fb_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/stubdom/grub/mini-os.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: getrtsecs
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int getrtsecs (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/stubdom/grub/mini-os.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: currticks
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: int
    signature: int currticks (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HYPERVISOR_sched_op
      Src: /src/xen/stubdom/grub/mini-os.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 730
    functionName: grub_reboot
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 0
    functionsReached:
    - HYPERVISOR_sched_op
    linkageType: ''
    returnType: void
    signature: void grub_reboot (void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/xen/stubdom/grub/mini-os.c:736,1
    - Dst: memcmp
      Src: /src/xen/stubdom/grub/mini-os.c:740,1
    - Dst: strncpy
      Src: /src/xen/stubdom/grub/mini-os.c:747,1
    - Dst: strncmp
      Src: /src/xen/stubdom/grub/mini-os.c:749,1
    - Dst: init_disk
      Src: /src/xen/stubdom/grub/mini-os.c:765,1
    - Dst: sleep
      Src: /src/xen/stubdom/grub/mini-os.c:768,1
    - Dst: cmain
      Src: /src/xen/stubdom/grub/mini-os.c:769,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/mini-os.c:770,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 736
    functionDepth: 11
    functionLinenumber: 736
    functionLinenumberEnd: 771
    functionName: main
    functionSourceFile: /src/xen/stubdom/grub/mini-os.c
    functionUses: 718
    functionsReached:
    - cmain
    - sleep
    - memcmp
    - init_disk
    - strncpy
    - strncmp
    - printk
    - aligned
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: swap32
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: swap16
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: htons
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htons(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: ntohs
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: htonl
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: ntohl
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: htons
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htons(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: ntohs
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohs(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: htonl
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htonl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: ntohl
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ntohl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: P
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 252
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: P
    functionSourceFile: /src/xen/stubdom/grub/osdep.h
    functionUses: 252
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: DEBUG
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: DEBUG
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG(fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dom
    - target_pfn
    - source_mfn
    argTypes:
    - struct xc_dom_image*
    - xen_pfn_t
    - xen_pfn_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: do_exchange
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 0
    functionsReached:
    - ASSERT
    linkageType: ''
    returnType: void
    signature: void do_exchange(struct xc_dom_image *dom, xen_pfn_t target_pfn, xen_pfn_t
      source_mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/stubdom/grub/kexec.c:110,1
    - Dst: realloc
      Src: /src/xen/stubdom/grub/kexec.c:111,1
    - Dst: realloc
      Src: /src/xen/stubdom/grub/kexec.c:112,1
    - Dst: alloc_page
      Src: /src/xen/stubdom/grub/kexec.c:119,1
    - Dst: memset
      Src: /src/xen/stubdom/grub/kexec.c:120,1
    - Dst: PHYS_PFN
      Src: /src/xen/stubdom/grub/kexec.c:121,1
    - Dst: to_phys
      Src: /src/xen/stubdom/grub/kexec.c:121,1
    - Dst: pfn_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - dom
    argTypes:
    - struct xc_dom_image*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 146
    functionName: kexec_allocate
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 0
    functionsReached:
    - to_phys
    - pfn_to_mfn
    - PHYS_PFN
    - memset
    - alloc_page
    - realloc
    linkageType: ''
    returnType: int
    signature: int kexec_allocate(struct xc_dom_image *dom)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_tpmfront
      Src: /src/xen/stubdom/grub/kexec.c:153,1
    - Dst: printf
      Src: /src/xen/stubdom/grub/kexec.c:167,1
    - Dst: do_exit
      Src: /src/xen/stubdom/grub/kexec.c:168,1
    - Dst: evtchn_get_peercontext
      Src: /src/xen/stubdom/grub/kexec.c:170,1
    - Dst: printf
      Src: /src/xen/stubdom/grub/kexec.c:172,1
    - Dst: do_exit
      Src: /src/xen/stubdom/grub/kexec.c:173,1
    - Dst: strcmp
      Src: /src/xen/stubdom/grub/kexec.c:176,1
    - Dst: strlen
      Src: /src/xen/stubdom/grub/kexec.c:178,1
    - Dst: strlen
      Src: /src/xen/stubdom/grub/kexec.c:179,1
    - Dst: strcmp
      Src: /src/xen/stubdom/grub/kexec.c:181,1
    - Dst: printf
      Src: /src/xen/stubdom/grub/kexec.c:185,1
    - Dst: do_exit
      Src: /src/xen/stubdom/grub/kexec.c:186,1
    - Dst: bswap_16
      Src: /src/xen/stubdom/grub/kexec.c:192,1
    - Dst: bswap_32
      Src: /src/xen/stubdom/grub/kexec.c:193,1
    - Dst: bswap_32
      Src: /src/xen/stubdom/grub/kexec.c:194,1
    - Dst: bswap_32
      Src: /src/xen/stubdom/grub/kexec.c:195,1
    - Dst: sha1
      Src: /src/xen/stubdom/grub/kexec.c:196,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/grub/kexec.c:198,1
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:199,1
    - Dst: bswap_32
      Src: /src/xen/stubdom/grub/kexec.c:201,1
    - Dst: sha1
      Src: /src/xen/stubdom/grub/kexec.c:202,1
    - Dst: strlen
      Src: /src/xen/stubdom/grub/kexec.c:202,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/grub/kexec.c:203,1
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:204,1
    - Dst: bswap_32
      Src: /src/xen/stubdom/grub/kexec.c:206,1
    - Dst: sha1
      Src: /src/xen/stubdom/grub/kexec.c:207,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/grub/kexec.c:208,1
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:209,1
    - Dst: shutdown_tpmfront
      Src: /src/xen/stubdom/grub/kexec.c:211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - dom
    - cmdline
    argTypes:
    - struct xc_dom_image*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 212
    functionName: tpm_hash2pcr
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 0
    functionsReached:
    - do_exit
    - bswap_32
    - init_tpmfront
    - sha1
    - ASSERT
    - strlen
    - printf
    - tpmfront_cmd
    - strcmp
    - evtchn_get_peercontext
    - bswap_16
    - shutdown_tpmfront
    linkageType: ''
    returnType: void
    signature: void tpm_hash2pcr(struct xc_dom_image *dom, char *cmdline)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: virt_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:223,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:229,1
    - Dst: xc_interface_open
      Src: /src/xen/stubdom/grub/kexec.c:230,1
    - Dst: xc_dom_allocate
      Src: /src/xen/stubdom/grub/kexec.c:232,1
    - Dst: xc_dom_kernel_max_size
      Src: /src/xen/stubdom/grub/kexec.c:236,1
    - Dst: xc_dom_module_max_size
      Src: /src/xen/stubdom/grub/kexec.c:237,1
    - Dst: xc_dom_module_mem
      Src: /src/xen/stubdom/grub/kexec.c:242,1
    - Dst: tpm_hash2pcr
      Src: /src/xen/stubdom/grub/kexec.c:248,1
    - Dst: xc_dom_boot_xen_init
      Src: /src/xen/stubdom/grub/kexec.c:250,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:251,1
    - Dst: xc_dom_parse_image
      Src: /src/xen/stubdom/grub/kexec.c:255,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:256,1
    - Dst: strcmp
      Src: /src/xen/stubdom/grub/kexec.c:262,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:263,1
    - Dst: strcmp
      Src: /src/xen/stubdom/grub/kexec.c:269,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:270,1
    - Dst: xc_dom_set_arch_hooks
      Src: /src/xen/stubdom/grub/kexec.c:277,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:278,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/kexec.c:288,1
    - Dst: pfn_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:292,1
    - Dst: xc_dom_build_image
      Src: /src/xen/stubdom/grub/kexec.c:294,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:295,1
    - Dst: xc_dom_virt_base
      Src: /src/xen/stubdom/grub/kexec.c:300,1
    - Dst: xc_dom_virt_hypercall
      Src: /src/xen/stubdom/grub/kexec.c:303,1
    - Dst: PHYS_PFN
      Src: /src/xen/stubdom/grub/kexec.c:304,1
    - Dst: xc_dom_virt_hypercall
      Src: /src/xen/stubdom/grub/kexec.c:304,1
    - Dst: memcpy
      Src: /src/xen/stubdom/grub/kexec.c:305,1
    - Dst: PHYS_PFN
      Src: /src/xen/stubdom/grub/kexec.c:309,1
    - Dst: xc_dom_compat_check
      Src: /src/xen/stubdom/grub/kexec.c:311,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:312,1
    - Dst: do_exchange
      Src: /src/xen/stubdom/grub/kexec.c:318,1
    - Dst: do_exchange
      Src: /src/xen/stubdom/grub/kexec.c:319,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:320,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:321,1
    - Dst: PFN_PHYS
      Src: /src/xen/stubdom/grub/kexec.c:322,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:323,1
    - Dst: do_exchange
      Src: /src/xen/stubdom/grub/kexec.c:324,1
    - Dst: PHYS_PFN
      Src: /src/xen/stubdom/grub/kexec.c:324,1
    - Dst: virt_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:325,1
    - Dst: struct xc_dom_image*::arch_hooks::setup_pgtables
      Src: /src/xen/stubdom/grub/kexec.c:328,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:329,1
    - Dst: struct xc_dom_image*::arch_hooks::start_info
      Src: /src/xen/stubdom/grub/kexec.c:336,1
    - Dst: xc_dom_log_memory_footprint
      Src: /src/xen/stubdom/grub/kexec.c:338,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/stubdom/grub/kexec.c:341,1
    - Dst: munmap
      Src: /src/xen/stubdom/grub/kexec.c:342,1
    - Dst: xc_dom_seg_to_ptr
      Src: /src/xen/stubdom/grub/kexec.c:343,1
    - Dst: munmap
      Src: /src/xen/stubdom/grub/kexec.c:344,1
    - Dst: munmap
      Src: /src/xen/stubdom/grub/kexec.c:348,1
    - Dst: pin_table
      Src: /src/xen/stubdom/grub/kexec.c:351,1
    - Dst: xc_dom_p2m
      Src: /src/xen/stubdom/grub/kexec.c:358,1
    - Dst: printk
      Src: /src/xen/stubdom/grub/kexec.c:360,1
    - Dst: xc_dom_p2m
      Src: /src/xen/stubdom/grub/kexec.c:360,1
    - Dst: need_pgt
      Src: /src/xen/stubdom/grub/kexec.c:368,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:369,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:370,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:371,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:372,1
    - Dst: PFN_PHYS
      Src: /src/xen/stubdom/grub/kexec.c:373,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:374,1
    - Dst: virt_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:375,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:376,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:377,1
    - Dst: PHYS_PFN
      Src: /src/xen/stubdom/grub/kexec.c:378,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:379,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:381,1
    - Dst: PFN_PHYS
      Src: /src/xen/stubdom/grub/kexec.c:382,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:383,1
    - Dst: xc_dom_virt_entry
      Src: /src/xen/stubdom/grub/kexec.c:384,1
    - Dst: DEBUG
      Src: /src/xen/stubdom/grub/kexec.c:385,1
    - Dst: pfn_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:389,1
    - Dst: malloc
      Src: /src/xen/stubdom/grub/kexec.c:392,1
    - Dst: pfn_to_mfn
      Src: /src/xen/stubdom/grub/kexec.c:394,1
    - Dst: PFN_PHYS
      Src: /src/xen/stubdom/grub/kexec.c:395,1
    - Dst: shutdown_blkfront
      Src: /src/xen/stubdom/grub/kexec.c:401,1
    - Dst: shutdown_netfront
      Src: /src/xen/stubdom/grub/kexec.c:403,1
    - Dst: shutdown_kbdfront
      Src: /src/xen/stubdom/grub/kexec.c:405,1
    - Dst: stop_kernel
      Src: /src/xen/stubdom/grub/kexec.c:406,1
    - Dst: HYPERVISOR_mmu_update
      Src: /src/xen/stubdom/grub/kexec.c:409,1
    - Dst: xprintk
      Src: /src/xen/stubdom/grub/kexec.c:410,1
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:411,1
    - Dst: xprintk
      Src: /src/xen/stubdom/grub/kexec.c:414,1
    - Dst: _boot
      Src: /src/xen/stubdom/grub/kexec.c:417,1
    - Dst: ASSERT
      Src: /src/xen/stubdom/grub/kexec.c:419,1
    - Dst: do_map_frames
      Src: /src/xen/stubdom/grub/kexec.c:423,1
    - Dst: xc_dom_release
      Src: /src/xen/stubdom/grub/kexec.c:425,1
    - Dst: free_page
      Src: /src/xen/stubdom/grub/kexec.c:427,1
    - Dst: free
      Src: /src/xen/stubdom/grub/kexec.c:428,1
    - Dst: free
      Src: /src/xen/stubdom/grub/kexec.c:429,1
    - Dst: xc_interface_close
      Src: /src/xen/stubdom/grub/kexec.c:433,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 153
    argCount: 6
    argNames:
    - kernel
    - kernel_size
    - module
    - module_size
    - cmdline
    - flags
    argTypes:
    - void*
    - long
    - void*
    - long
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 214
    functionDepth: 10
    functionLinenumber: 214
    functionLinenumberEnd: 434
    functionName: kexec
    functionSourceFile: /src/xen/stubdom/grub/kexec.c
    functionUses: 6
    functionsReached:
    - xprintk
    - xc_dom_module_max_size
    - _boot
    - virt_to_mfn
    - xc_dom_seg_to_ptr
    - shutdown_kbdfront
    - do_exchange
    - xc_dom_module_mem
    - xc_dom_boot_xen_init
    - munmap
    - xc_interface_open
    - xc_dom_virt_hypercall
    - stop_kernel
    - xc_dom_log_memory_footprint
    - strcmp
    - tpm_hash2pcr
    - xc_dom_virt_base
    - xc_dom_compat_check
    - shutdown_netfront
    - xc_dom_set_arch_hooks
    - free
    - xc_dom_release
    - malloc
    - xc_dom_p2m
    - free_page
    - DEBUG
    - printk
    - struct xc_dom_image*::arch_hooks::start_info
    - xc_dom_kernel_max_size
    - ASSERT
    - PHYS_PFN
    - xc_dom_parse_image
    - PFN_PHYS
    - xc_dom_allocate
    - shutdown_blkfront
    - xc_dom_virt_entry
    - xc_dom_build_image
    - pfn_to_mfn
    - do_map_frames
    - struct xc_dom_image*::arch_hooks::setup_pgtables
    - need_pgt
    - xc_interface_close
    - pin_table
    - HYPERVISOR_mmu_update
    - memcpy
    linkageType: ''
    returnType: void
    signature: void kexec(void *kernel, long kernel_size, void *module, long module_size,
      char *cmdline, unsigned long flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/xen/stubdom/c/main.c:5,1
    - Dst: printf
      Src: /src/xen/stubdom/c/main.c:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 8
    functionName: main
    functionSourceFile: /src/xen/stubdom/c/main.c
    functionUses: 718
    functionsReached:
    - sleep
    - printf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uuid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: UUID_BYTES
    functionSourceFile: /src/xen/stubdom/vtpmmgr/uuid.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UUID_BYTES(uuid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: BITMASK
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITMASK(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: GETBIT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETBIT(num,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SETBIT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(num,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - num
    - ','
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: CLEARBIT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEARBIT(num,idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - module
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: vtpmloginfo
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vtpmloginfo(module, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - module
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: vtpmloginfomore
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vtpmloginfomore(module, fmt, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - module
    - ','
    - fmt
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: vtpmlogerror
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vtpmlogerror(module, fmt, args...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_blkfront
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:26,1
    - Dst: blkfront_open
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: vtpm_storage_init
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - blkfront_open
    - init_blkfront
    linkageType: ''
    returnType: int
    signature: int vtpm_storage_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:37,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:39,1
    - Dst: lseek
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:40,1
    - Dst: read
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:41,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sector
    argTypes:
    - sector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: disk_read_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - read
    - abort
    - lseek
    - be32_native
    - vtpmloginfo
    linkageType: ''
    returnType: void
    signature: void * disk_read_sector(sector_t sector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: disk_write_buf
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * disk_write_buf(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:52,1
    - Dst: lseek
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:53,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:56,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:57,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:60,1
    - Dst: write
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:62,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sector
    - buf
    - siz
    argTypes:
    - sector_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: disk_write_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - abort
    - lseek
    - be32_native
    - write
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void disk_write_sector(sector_t sector, void* buf, size_t siz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blkfront_sync
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: disk_write_barrier
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - blkfront_sync
    linkageType: ''
    returnType: void
    signature: void disk_write_barrier(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: active_slot
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int active_slot(const struct mem_tpm_mgr *mgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:99,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:101,1
    - Dst: active_slot
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - loc
    - mgr
    argTypes:
    - sector_t
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 10
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: disk_set_used
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - be32_native
    - printk
    - active_slot
    linkageType: ''
    returnType: void
    signature: void disk_set_used(sector_t loc, const struct mem_tpm_mgr *mgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: active_slot
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: disk_flush_slot
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - active_slot
    linkageType: ''
    returnType: void
    signature: void disk_flush_slot(const struct mem_tpm_mgr *mgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: active_slot
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:120,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:121,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_io.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: disk_find_free
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.c
    functionUses: 0
    functionsReached:
    - native_be32
    - abort
    - active_slot
    linkageType: ''
    returnType: sector_t
    signature: sector_t disk_find_free(const struct mem_tpm_mgr *mgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ord
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: TPM_BEGIN_CMD
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_BEGIN_CMD(ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - item
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: PACK_IN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_IN(type, item...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - req_tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 121
    functionName: TPM_TAG_COMMON
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_TAG_COMMON(req_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - item
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: UNPACK_OUT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_OUT(type, item...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: TPM_XMIT_REQ
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_XMIT_REQ()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sec1
    - ','
    - auth1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: TPM_XMIT_AUTH1
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_XMIT_AUTH1(sec1, auth1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sec1
    - ','
    - auth1
    - ','
    - sec2
    - ','
    - auth2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: TPM_XMIT_AUTH2
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_XMIT_AUTH2(sec1, auth1, sec2, auth2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sec1
    - ','
    - auth1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: TPM_END_AUTH1
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_END_AUTH1(sec1, auth1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sec1
    - ','
    - auth1
    - ','
    - sec2
    - ','
    - auth2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: TPM_END_AUTH2
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_END_AUTH2(sec1, auth1, sec2, auth2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: TPM_END
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: TPM_AUTH_ERR_CHECK
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH_ERR_CHECK(auth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_SECRET
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:229,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:230,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - sharedSecret
    - nonce
    - inAuth0
    - outAuth0
    - inAuth1
    - outAuth1
    argTypes:
    - TPM_SECRET*
    - TPM_NONCE*
    - TPM_AUTHDATA*
    - TPM_ENCAUTH
    - TPM_AUTHDATA*
    - TPM_ENCAUTH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 245
    functionName: xorEncrypt
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - pack_TPM_NONCE
    - sha1
    - pack_TPM_SECRET
    linkageType: ''
    returnType: void
    signature: "void xorEncrypt(const TPM_SECRET* sharedSecret,\n\t\tTPM_NONCE* nonce,\n\t\tconst
      TPM_AUTHDATA* inAuth0,\n\t\tTPM_ENCAUTH outAuth0,\n\t\tconst TPM_AUTHDATA* inAuth1,\n\t\tTPM_ENCAUTH
      outAuth1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:252,1
    - Dst: pack_TPM_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:258,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:259,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:260,1
    - Dst: pack_BOOL
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:261,1
    - Dst: sha1_hmac
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - paramDigest
    - HMACkey
    - auth
    argTypes:
    - TPM_DIGEST*
    - TPM_SECRET*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: generateAuth
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - vtpmmgr_rand
    - pack_BOOL
    - sha1_hmac
    - pack_TPM_DIGEST
    - pack_TPM_NONCE
    linkageType: ''
    returnType: void
    signature: "void generateAuth(const TPM_DIGEST* paramDigest,\n\t\tconst TPM_SECRET*
      HMACkey,\n\t\tTPM_AUTH_SESSION *auth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:278,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:279,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:280,1
    - Dst: pack_BOOL
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:281,1
    - Dst: sha1_hmac
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:283,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:288,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - paramDigest
    - HMACkey
    - auth
    argTypes:
    - TPM_DIGEST*
    - TPM_SECRET*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 295
    functionName: verifyAuth
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - pack_BOOL
    - memcmp
    - sha1_hmac
    - vtpmlogerror
    - pack_TPM_DIGEST
    - pack_TPM_NONCE
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT verifyAuth(const TPM_DIGEST* paramDigest,\n\t\t/*[IN]*/
      const TPM_SECRET *HMACkey,\n\t\t/*[IN,OUT]*/ TPM_AUTH_SESSION *auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:305,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:307,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:309,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:312,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:313,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:314,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - auth
    argTypes:
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 320
    functionName: TPM_OIAP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - vtpmloginfo
    - UNPACK_OUT
    - memset
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OIAP(TPM_AUTH_SESSION*\tauth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:329,1
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:330,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:332,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:333,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:334,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:336,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:338,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:339,1
    - Dst: sha1_hmac_starts
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:343,1
    - Dst: sha1_hmac_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:344,1
    - Dst: sha1_hmac_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:345,1
    - Dst: sha1_hmac_finish
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:346,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:349,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:351,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 5
    argNames:
    - entityType
    - entityValue
    - usageAuth
    - sharedSecret
    - auth
    argTypes:
    - TPM_ENTITY_TYPE
    - UINT32
    - TPM_AUTHDATA*
    - TPM_SECRET*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 358
    functionName: TPM_OSAP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - vtpmmgr_rand
    - TPM_XMIT_REQ
    - sha1_hmac_finish
    - TPM_BEGIN_CMD
    - sha1_hmac_starts
    - PACK_IN
    - vtpmloginfo
    - UNPACK_OUT
    - memset
    - sha1_hmac_update
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OSAP(TPM_ENTITY_TYPE  entityType,  // in\n\t\tUINT32\t
      entityValue, // in\n\t\tconst TPM_AUTHDATA* usageAuth, //in\n\t\tTPM_SECRET
      *sharedSecret, //out\n\t\tTPM_AUTH_SESSION *auth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:371,1
    - Dst: tpmrsa_set_pubkey
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:374,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:380,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:383,1
    - Dst: tpmrsa_pub_encrypt_oaep
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:384,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:392,1
    - Dst: tpmrsa_pub_encrypt_oaep
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:393,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:400,1
    - Dst: TPM_XMIT_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:402,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:407,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:411,1
    - Dst: TPM_END_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:414,1
    - Dst: free_TPM_KEY
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:419,1
    - Dst: tpmrsa_free
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:422,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 6
    argNames:
    - pubEK
    - ownerAuth
    - srkAuth
    - inSrk
    - outSrk
    - auth
    argTypes:
    - TPM_PUBKEY*
    - TPM_AUTHDATA*
    - TPM_AUTHDATA*
    - TPM_KEY*
    - TPM_KEY*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 425
    functionName: TPM_TakeOwnership
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_AUTH_ERR_CHECK
    - tpmrsa_free
    - TPM_XMIT_AUTH1
    - TPM_BEGIN_CMD
    - free_TPM_KEY
    - tpmrsa_set_pubkey
    - PACK_IN
    - UNPACK_OUT
    - TPM_END_AUTH1
    - tpmrsa_pub_encrypt_oaep
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TakeOwnership(\n\t\tconst TPM_PUBKEY *pubEK, //in\n\t\tconst
      TPM_AUTHDATA* ownerAuth, //in\n\t\tconst TPM_AUTHDATA* srkAuth, //in\n\t\tconst
      TPM_KEY* inSrk, //in\n\t\tTPM_KEY* outSrk, //out, optional\n\t\tTPM_AUTH_SESSION*\tauth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:432,1
    - Dst: TPM_XMIT_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:435,1
    - Dst: TPM_END_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:437,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ownerAuth
    - auth
    argTypes:
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: TPM_DisablePubekRead
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_END_AUTH1
    - TPM_XMIT_AUTH1
    - TPM_BEGIN_CMD
    - TPM_AUTH_ERR_CHECK
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DisablePubekRead (\n\t\tconst TPM_AUTHDATA* ownerAuth,\n\t\tTPM_AUTH_SESSION*\tauth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:451,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:453,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:455,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:456,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_AUTHHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 462
    functionName: TPM_TerminateHandle
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - PACK_IN
    - vtpmloginfo
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_TerminateHandle(TPM_AUTHHANDLE  handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:468,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:470,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:471,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:473,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:475,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - pcrNum
    - inDigest
    - outDigest
    argTypes:
    - TPM_PCRINDEX
    - TPM_DIGEST*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 481
    functionName: TPM_Extend
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 1
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Extend( TPM_PCRINDEX  pcrNum,  // in\n\t\tTPM_DIGEST*
      inDigest, // in\n\t\tTPM_PCRVALUE*  outDigest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:485,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:486,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:487,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - sel
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: TPM_Reset
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - PACK_IN
    - TPM_END
    - TPM_BEGIN_CMD
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Reset(TPM_PCR_SELECTION *sel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:505,1
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:506,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:507,1
    - Dst: xorEncrypt
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:510,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:513,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:515,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:517,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:518,1
    - Dst: TPM_XMIT_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:520,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:522,1
    - Dst: TPM_END_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:524,1
    - Dst: free_TPM_STORED_DATA12
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:528,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 9
    argNames:
    - keyHandle
    - pcrInfoLongSize
    - pcrInfoLong
    - inDataSize
    - inData
    - sealedData
    - osapSharedSecret
    - sealedDataAuth
    - pubAuth
    argTypes:
    - TPM_KEY_HANDLE
    - UINT32
    - TPM_PCR_INFO_LONG*
    - UINT32
    - BYTE*
    - TPM_STORED_DATA12*
    - TPM_SECRET*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 531
    functionName: TPM_Seal
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - free_TPM_STORED_DATA12
    - xorEncrypt
    - TPM_AUTH_ERR_CHECK
    - TPM_XMIT_AUTH1
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - memset
    - TPM_END_AUTH1
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Seal(\n\t\tTPM_KEY_HANDLE  keyHandle,  // in\n\t\tUINT32\t
      pcrInfoLongSize, // in\n\t\tTPM_PCR_INFO_LONG*\t pcrInfoLong,  // in\n\t\tUINT32\t
      inDataSize,  // in\n\t\tconst BYTE*\t inData,\t// in\n\t\tTPM_STORED_DATA12*
      sealedData, //out\n\t\tconst TPM_SECRET* osapSharedSecret, //in\n\t\tconst TPM_AUTHDATA*
      sealedDataAuth, //in\n\t\tTPM_AUTH_SESSION*\tpubAuth  // in, out\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:544,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:546,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:549,1
    - Dst: TPM_XMIT_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:551,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:553,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:554,1
    - Dst: TPM_END_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:556,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:559,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 8
    argNames:
    - parentHandle
    - sealedData
    - outSize
    - out
    - key_usage_auth
    - data_usage_auth
    - keyAuth
    - dataAuth
    argTypes:
    - TPM_KEY_HANDLE
    - TPM_STORED_DATA12*
    - UINT32*
    - BYTE**
    - TPM_AUTHDATA*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 562
    functionName: TPM_Unseal
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_AUTH_ERR_CHECK
    - TPM_END_AUTH2
    - TPM_BEGIN_CMD
    - TPM_XMIT_AUTH2
    - PACK_IN
    - UNPACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Unseal(\n\t\tTPM_KEY_HANDLE parentHandle, // in\n\t\tconst
      TPM_STORED_DATA12* sealedData,\n\t\tUINT32*\toutSize,  // out\n\t\tBYTE**\t
      out, //out\n\t\tconst TPM_AUTHDATA* key_usage_auth, //in\n\t\tconst TPM_AUTHDATA*
      data_usage_auth, //in\n\t\tTPM_AUTH_SESSION*\tkeyAuth,  // in, out\n\t\tTPM_AUTH_SESSION*\tdataAuth
      \ // in, out\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:571,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:572,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:576,1
    - Dst: TPM_XMIT_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:578,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:580,1
    - Dst: TPM_END_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:582,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:584,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - parentHandle
    - key
    - keyHandle
    - usage_auth
    - auth
    argTypes:
    - TPM_KEY_HANDLE
    - TPM_KEY*
    - TPM_HANDLE*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 588
    functionName: TPM_LoadKey
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_AUTH_ERR_CHECK
    - TPM_XMIT_AUTH1
    - TPM_BEGIN_CMD
    - PACK_IN
    - vtpmloginfo
    - UNPACK_OUT
    - TPM_END_AUTH1
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadKey(\n\t\tTPM_KEY_HANDLE  parentHandle, //\n\t\tconst
      TPM_KEY* key, //in\n\t\tTPM_HANDLE*  keyHandle,\t // out\n\t\tconst TPM_AUTHDATA*
      usage_auth,\n\t\tTPM_AUTH_SESSION* auth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:595,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:597,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:598,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:600,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - rt
    argTypes:
    - TPM_HANDLE
    - TPM_RESOURCE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: TPM_FlushSpecific
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - PACK_IN
    - TPM_END
    - TPM_BEGIN_CMD
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FlushSpecific(TPM_HANDLE handle,\n\t\tTPM_RESOURCE_TYPE
      rt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:611,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:612,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:614,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:616,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:619,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - bytesRequested
    - randomBytes
    argTypes:
    - UINT32*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 624
    functionName: TPM_GetRandom
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetRandom( UINT32*\t bytesRequested, // in, out\n\t\tBYTE*\t
      randomBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:636,1
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:638,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:640,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:642,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:646,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:649,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:650,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:651,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:652,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:654,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:656,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:659,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:660,1
    - Dst: free_TPM_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - pubEK
    argTypes:
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 672
    functionName: TPM_ReadPubek
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - vtpmmgr_rand
    - memcmp
    - TPM_XMIT_REQ
    - vtpmlogerror
    - TPM_BEGIN_CMD
    - sha1_starts
    - sha1_update
    - PACK_IN
    - UNPACK_OUT
    - free_TPM_PUBKEY
    - sha1_finish
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ReadPubek(\n\t\tTPM_PUBKEY* pubEK //out\n\t\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:676,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:677,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:678,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:679,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - pcr
    - value
    argTypes:
    - UINT32
    - TPM_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 683
    functionName: TPM_PCR_Read
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCR_Read(UINT32 pcr, TPM_DIGEST *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:687,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:688,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 693
    functionName: TPM_SaveState
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_END
    - TPM_BEGIN_CMD
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SaveState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:702,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:704,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:705,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:706,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:708,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:710,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:711,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 5
    argNames:
    - capArea
    - subCapSize
    - subCap
    - respSize
    - resp
    argTypes:
    - TPM_CAPABILITY_AREA
    - UINT32
    - BYTE*
    - UINT32*
    - BYTE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 717
    functionName: TPM_GetCapability
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability(\n\t\tTPM_CAPABILITY_AREA capArea,\n\t\tUINT32
      subCapSize,\n\t\tconst BYTE* subCap,\n\t\tUINT32* respSize,\n\t\tBYTE** resp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:728,1
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:731,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:733,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:734,1
    - Dst: TPM_XMIT_REQ
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:736,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:739,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:742,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:743,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:744,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:745,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:747,1
    - Dst: TPM_END
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:749,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:751,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:752,1
    - Dst: free_TPM_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - keyInfo
    - pubEK
    argTypes:
    - TPM_KEY_PARMS*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 764
    functionName: TPM_CreateEndorsementKeyPair
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - vtpmmgr_rand
    - memcmp
    - TPM_XMIT_REQ
    - TPM_BEGIN_CMD
    - sha1_starts
    - sha1_update
    - PACK_IN
    - vtpmloginfo
    - UNPACK_OUT
    - free_TPM_PUBKEY
    - sha1_finish
    - TPM_END
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CreateEndorsementKeyPair(\n\t\tconst TPM_KEY_PARMS*
      keyInfo,\n\t\tTPM_PUBKEY* pubEK)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:778,1
    - Dst: xorEncrypt
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:781,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:784,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:785,1
    - Dst: TPM_XMIT_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:787,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:789,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:790,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:791,1
    - Dst: TPM_END_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:793,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:796,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 10
    argNames:
    - identityAuth
    - privCADigest
    - kinfo
    - srk_auth
    - own_auth
    - srkAuth
    - ownAuth
    - key
    - identityBindingSize
    - identityBinding
    argTypes:
    - TPM_AUTHDATA*
    - TPM_AUTHDATA*
    - TPM_KEY*
    - TPM_AUTHDATA*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    - TPM_AUTH_SESSION*
    - TPM_KEY*
    - UINT32*
    - BYTE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 799
    functionName: TPM_MakeIdentity
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - xorEncrypt
    - TPM_AUTH_ERR_CHECK
    - TPM_END_AUTH2
    - TPM_BEGIN_CMD
    - TPM_XMIT_AUTH2
    - PACK_IN
    - UNPACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MakeIdentity(\n\tconst TPM_AUTHDATA* identityAuth,
      // in\n\tconst TPM_AUTHDATA* privCADigest, // in\n\tconst TPM_KEY* kinfo, //
      in\n\tconst TPM_AUTHDATA* srk_auth, // in\n\tconst TPM_AUTHDATA* own_auth, //
      in\n\tTPM_AUTH_SESSION* srkAuth, // in,out\n\tTPM_AUTH_SESSION* ownAuth, //
      in,out\n\tTPM_KEY* key, // out\n\tUINT32* identityBindingSize, // out\n\tBYTE**
      identityBinding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:811,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:812,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:814,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:815,1
    - Dst: TPM_XMIT_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:817,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:819,1
    - Dst: TPM_END_AUTH2
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:821,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:824,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 8
    argNames:
    - aikHandle
    - blob
    - blobSize
    - aik_auth
    - owner_auth
    - aikAuth
    - ownAuth
    - symKey
    argTypes:
    - TPM_KEY_HANDLE
    - BYTE*
    - UINT32
    - TPM_AUTHDATA*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    - TPM_AUTH_SESSION*
    - TPM_SYMMETRIC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 827
    functionName: TPM_ActivateIdentity
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_AUTH_ERR_CHECK
    - TPM_END_AUTH2
    - TPM_BEGIN_CMD
    - TPM_XMIT_AUTH2
    - PACK_IN
    - UNPACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ActivateIdentity(\n\tTPM_KEY_HANDLE aikHandle, // in\n\tBYTE*
      blob, // in\n\tUINT32 blobSize, // in\n\tconst TPM_AUTHDATA* aik_auth, // in\n\tconst
      TPM_AUTHDATA* owner_auth, // in\n\tTPM_AUTH_SESSION* aikAuth, // in,out\n\tTPM_AUTH_SESSION*
      ownAuth, // in,out\n\tTPM_SYMMETRIC_KEY* symKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN_CMD
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:839,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:840,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:842,1
    - Dst: PACK_IN
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:843,1
    - Dst: TPM_XMIT_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:845,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:847,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:848,1
    - Dst: UNPACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:849,1
    - Dst: TPM_END_AUTH1
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:851,1
    - Dst: TPM_AUTH_ERR_CHECK
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 8
    argNames:
    - keyh
    - data
    - pcrSelect
    - auth
    - oiap
    - pcrs
    - sig
    - sigSize
    argTypes:
    - TPM_KEY_HANDLE
    - TPM_NONCE*
    - TPM_PCR_SELECTION*
    - TPM_AUTHDATA*
    - TPM_AUTH_SESSION*
    - TPM_PCR_COMPOSITE*
    - BYTE**
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 856
    functionName: TPM_Quote
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - TPM_AUTH_ERR_CHECK
    - TPM_XMIT_AUTH1
    - TPM_BEGIN_CMD
    - PACK_IN
    - UNPACK_OUT
    - TPM_END_AUTH1
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Quote(\n\tTPM_KEY_HANDLE keyh, // in\n\tconst TPM_NONCE*
      data, // in\n\tconst TPM_PCR_SELECTION *pcrSelect, // in\n\tconst TPM_AUTHDATA*
      auth, // in\n\tTPM_AUTH_SESSION* oiap, // in,out\n\tTPM_PCR_COMPOSITE *pcrs,
      // out\n\tBYTE** sig, // out\n\tUINT32* sigSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:866,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:868,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:870,1
    - Dst: write
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:875,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:877,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:877,1
    - Dst: ERRORDIE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:878,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:881,1
    - Dst: ERRORDIE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:882,1
    - Dst: read
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:886,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:888,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:888,1
    - Dst: ERRORDIE
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:889,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:892,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:894,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/tpm.c:896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - in
    - insize
    - out
    - outsize
    argTypes:
    - BYTE*
    - UINT32
    - BYTE*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 904
    functionName: TPM_TransmitData
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm.c
    functionUses: 0
    functionsReached:
    - read
    - vtpmloginfomore
    - vtpmlogerror
    - ERRORDIE
    - strerror
    - vtpmloginfo
    - write
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransmitData(\n\t\tBYTE* in,\n\t\tUINT32 insize,\n\t\tBYTE*
      out,\n\t\tUINT32* outsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: parse_cmdline_hw
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_cmdline_hw(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: hw_is_tpm2
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hw_is_tpm2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:74,1
    - Dst: shutdown_tpmback
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - reason
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 10
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: app_shutdown
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.c
    functionUses: 0
    functionsReached:
    - shutdown_tpmback
    - printk
    linkageType: ''
    returnType: void
    signature: void app_shutdown(unsigned int reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:86,1
    - Dst: tpmback_req_any
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:87,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:88,1
    - Dst: vtpmmgr_handle_cmd
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:95,1
    - Dst: tpmback_resp
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 100
    functionName: main_loop
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.c
    functionUses: 0
    functionsReached:
    - vtpmlogerror
    - tpmback_resp
    - vtpmloginfo
    - vtpmmgr_handle_cmd
    - tpmback_req_any
    linkageType: ''
    returnType: void
    signature: void main_loop(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:105,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:106,1
    - Dst: parse_cmdline_hw
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:109,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:112,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:113,1
    - Dst: vtpmmgr2_init
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:114,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:115,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:120,1
    - Dst: vtpmmgr_init
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:121,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:122,1
    - Dst: main_loop
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:128,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:130,1
    - Dst: vtpmmgr_shutdown
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.c:132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.c
    functionUses: 718
    functionsReached:
    - sleep
    - hw_is_tpm2
    - parse_cmdline_hw
    - vtpmlogerror
    - vtpmmgr_shutdown
    - vtpmmgr_init
    - vtpmloginfo
    - main_loop
    - vtpmmgr2_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disk_write_buf
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:24,1
    - Dst: disk_find_free
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:25,1
    - Dst: aes_encrypt_ctr
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:26,1
    - Dst: aes_cmac
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:27,1
    - Dst: disk_write_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - data
    - size
    - mgr
    argTypes:
    - sector_t*
    - void*
    - size_t
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: disk_write_crypt_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - aes_encrypt_ctr
    - aes_cmac
    - disk_find_free
    - disk_write_sector
    - disk_write_buf
    linkageType: ''
    returnType: void
    signature: void disk_write_crypt_sector(sector_t *dst, const void *data, size_t
      size, const struct mem_tpm_mgr *mgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:36,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - src
    - mgr
    argTypes:
    - struct mem_vtpm_page*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 11
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: disk_populate_used_vtpm
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - be32_native
    - disk_set_used
    linkageType: ''
    returnType: void
    signature: void disk_populate_used_vtpm(const struct mem_vtpm_page *src, const
      struct mem_tpm_mgr *mgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:48,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:49,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:53,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:54,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:55,1
    - Dst: aes_encrypt_ctr
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:57,1
    - Dst: sha256
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:59,1
    - Dst: disk_write_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - dst
    - auth_key
    - mgr
    argTypes:
    - struct mem_vtpm_page*
    - aes_context*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: disk_write_vtpm_page
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - aes_encrypt_ctr
    - be32_native
    - sha256
    - disk_write_crypt_sector
    - memset
    - memcpy
    - native_be32
    linkageType: ''
    returnType: void
    signature: "void disk_write_vtpm_page(struct mem_vtpm_page *dst, const aes_context
      *auth_key,\n\t\tconst struct mem_tpm_mgr *mgr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:76,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:77,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:78,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:79,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:80,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:84,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:89,1
    - Dst: TPM_pcr_digest
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:90,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:93,1
    - Dst: TPM2_disk_bind
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:94,1
    - Dst: TPM_disk_seal
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:96,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - src
    - parent
    argTypes:
    - struct mem_group*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 101
    functionName: generate_group_seals
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - hw_is_tpm2
    - abort
    - TPM2_disk_bind
    - TPM_disk_seal
    - memcpy
    - TPM_pcr_digest
    - native_be32
    linkageType: ''
    returnType: void
    signature: void generate_group_seals(struct mem_group *src, const struct mem_tpm_mgr
      *parent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:110,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:113,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:115,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:121,1
    - Dst: disk_populate_used_vtpm
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - src
    - mgr
    argTypes:
    - struct mem_group_hdr*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 12
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: disk_populate_used_group
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - disk_populate_used_vtpm
    - be32_native
    - abort
    - disk_set_used
    linkageType: ''
    returnType: void
    signature: void disk_populate_used_group(const struct mem_group_hdr *src, const
      struct mem_tpm_mgr *mgr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: disk_write_vtpm_page
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:144,1
    - Dst: disk_write_vtpm_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:157,1
    - Dst: sha256
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:160,1
    - Dst: disk_write_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:161,1
    - Dst: realloc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:171,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - hdr
    - base
    - nr_entries
    - hash
    - loc
    - hsize
    - group_key
    - mgr
    argTypes:
    - struct mem_group_hdr*
    - int
    - int
    - struct hash256*
    - sector_t*
    - int
    - aes_context*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 173
    functionName: disk_write_vtpm_itree
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 1
    functionsReached:
    - disk_write_vtpm_page
    - disk_write_vtpm_itree
    - disk_write_crypt_sector
    - sha256
    - realloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void disk_write_vtpm_itree(struct mem_group_hdr *hdr, int base, int
      nr_entries,\n\t\tstruct hash256 *hash, sector_t *loc, int hsize,\n\t\tconst
      aes_context *group_key, const struct mem_tpm_mgr *mgr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:186,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:191,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:193,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:194,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:195,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:197,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:199,1
    - Dst: disk_write_vtpm_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:204,1
    - Dst: generate_group_seals
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:207,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:208,1
    - Dst: aes_cmac
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:210,1
    - Dst: sha256
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:211,1
    - Dst: disk_write_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - src
    - mgr
    argTypes:
    - struct mem_group_hdr*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 213
    functionName: disk_write_group_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - generate_group_seals
    - abort
    - disk_write_vtpm_itree
    - be32_native
    - sha256
    - aes_cmac
    - disk_write_crypt_sector
    - memset
    - native_be32
    - memcpy
    - aes_setup
    linkageType: ''
    returnType: void
    signature: "void disk_write_group_sector(struct mem_group_hdr *src,\n\t\tconst
      struct mem_tpm_mgr *mgr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: disk_write_buf
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:222,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:228,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:229,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:230,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:231,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:232,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:233,1
    - Dst: aes_encrypt_one
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:239,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:241,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:244,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:245,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:249,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:255,1
    - Dst: TPM_pcr_digest
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:256,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:259,1
    - Dst: TPM2_disk_bind
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:260,1
    - Dst: TPM_disk_seal
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:262,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:265,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:266,1
    - Dst: disk_write_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:268,1
    - Dst: seal_loc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - mgr
    - group
    argTypes:
    - struct mem_tpm_mgr*
    - struct mem_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 270
    functionName: disk_write_seal_list
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - seal_loc
    - hw_is_tpm2
    - abort
    - TPM_pcr_digest
    - TPM2_disk_bind
    - TPM_disk_seal
    - memset
    - disk_write_sector
    - disk_write_buf
    - aes_encrypt_one
    - memcpy
    - native_be32
    linkageType: ''
    returnType: void
    signature: void disk_write_seal_list(struct mem_tpm_mgr *mgr, struct mem_group
      *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disk_populate_used_group
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 13
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: disk_populate_used_mgr
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - disk_populate_used_group
    linkageType: ''
    returnType: void
    signature: void disk_populate_used_mgr(const struct mem_tpm_mgr *mgr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: disk_write_group_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:296,1
    - Dst: disk_write_group_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:314,1
    - Dst: sha256
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:316,1
    - Dst: disk_write_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - mgr
    - base
    - nr_entries
    - hash
    - loc
    - hsize
    argTypes:
    - struct mem_tpm_mgr*
    - int
    - int
    - struct hash256*
    - sector_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 321
    functionName: disk_write_group_itree
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 1
    functionsReached:
    - disk_write_group_sector
    - disk_write_crypt_sector
    - sha256
    - disk_write_group_itree
    linkageType: ''
    returnType: void
    signature: "void disk_write_group_itree(struct mem_tpm_mgr *mgr, int base, int
      nr_entries,\n\t\tstruct hash256 *hash, sector_t *loc, int hsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:330,1
    - Dst: native_be64
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:331,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:334,1
    - Dst: disk_write_group_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:336,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:356,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:357,1
    - Dst: aes_cmac
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:358,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:361,1
    - Dst: disk_write_buf
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:363,1
    - Dst: aes_encrypt_ctr
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:364,1
    - Dst: aes_cmac
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:365,1
    - Dst: disk_write_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:366,1
    - Dst: root_loc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 326
    functionDepth: 7
    functionLinenumber: 326
    functionLinenumberEnd: 367
    functionName: disk_write_root_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - root_loc
    - aes_encrypt_ctr
    - native_be64
    - disk_write_group_itree
    - aes_cmac
    - disk_write_sector
    - memset
    - disk_write_buf
    - native_be32
    - aes_setup
    linkageType: ''
    returnType: void
    signature: void disk_write_root_sector(struct mem_tpm_mgr *mgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disk_flush_slot
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:374,1
    - Dst: disk_populate_used_mgr
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:375,1
    - Dst: disk_write_root_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:376,1
    - Dst: disk_write_seal_list
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:378,1
    - Dst: disk_write_barrier
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 372
    functionDepth: 14
    functionLinenumber: 372
    functionLinenumberEnd: 381
    functionName: disk_write_all
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - disk_write_root_sector
    - disk_populate_used_mgr
    - disk_write_seal_list
    - disk_write_barrier
    - disk_flush_slot
    linkageType: ''
    returnType: void
    signature: void disk_write_all(struct mem_tpm_mgr *mgr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:391,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:393,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:394,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:395,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:396,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:397,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:399,1
    - Dst: TPM_disk_nvalloc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:402,1
    - Dst: TPM_disk_alloc_counter
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:406,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:411,1
    - Dst: vtpm_new_group
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:412,1
    - Dst: TPM_disk_nvwrite
      Src: /src/xen/stubdom/vtpmmgr/disk_write.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 419
    functionName: vtpm_new_disk
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_write.c
    functionUses: 0
    functionsReached:
    - TPM_disk_alloc_counter
    - calloc
    - TPM_disk_nvwrite
    - TPM_disk_nvalloc
    - do_random
    - vtpm_new_group
    - aes_setup
    linkageType: ''
    returnType: int
    signature: int vtpm_new_disk(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: disk_read_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:23,1
    - Dst: aes_cmac_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:27,1
    - Dst: aes_decrypt_ctr
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - data
    - size
    - block
    - mgr
    argTypes:
    - void*
    - size_t
    - sector_t
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: disk_read_crypt_sector
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - disk_read_sector
    - aes_cmac_verify
    - aes_decrypt_ctr
    linkageType: ''
    returnType: int
    signature: int disk_read_crypt_sector(void *data, size_t size, sector_t block,
      const struct mem_tpm_mgr *mgr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:42,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:45,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:47,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - group
    argTypes:
    - struct mem_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: group_free
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void group_free(struct mem_group *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:58,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:59,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: mgr_free
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - free
    - group_free
    linkageType: ''
    returnType: void
    signature: void mgr_free(struct mem_tpm_mgr *mgr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:74,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:78,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:80,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:87,1
    - Dst: TPM_pcr_digest
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:89,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:90,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:94,1
    - Dst: TPM2_disk_unbind
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:95,1
    - Dst: TPM_disk_unseal
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:97,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:101,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:103,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:106,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:107,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:108,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - group
    - parent
    argTypes:
    - struct mem_group*
    - struct disk_group_sector*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 117
    functionName: find_group_key
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - TPM2_disk_unbind
    - hw_is_tpm2
    - calloc
    - memcmp
    - TPM_pcr_digest
    - vtpmlogerror
    - be32_native
    - TPM_disk_unseal
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int find_group_key(struct mem_group *dst,\n\t\tconst struct disk_group_sector
      *group,\n\t\tconst struct mem_tpm_mgr *parent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:126,1
    - Dst: TPM2_disk_unbind
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:127,1
    - Dst: TPM_disk_unseal
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:129,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:134,1
    - Dst: TPM_disk_nvread
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:137,1
    - Dst: aes_decrypt_one
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:145,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:147,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:150,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:152,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct mem_tpm_mgr*
    - struct disk_seal_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 157
    functionName: parse_root_key
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - TPM2_disk_unbind
    - aes_decrypt_one
    - hw_is_tpm2
    - memcmp
    - TPM_disk_nvread
    - TPM_disk_unseal
    - memcpy
    linkageType: ''
    returnType: int
    signature: int parse_root_key(struct mem_tpm_mgr *dst, struct disk_seal_entry
      *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:161,1
    - Dst: disk_read_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:162,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:167,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:170,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:173,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:177,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:178,1
    - Dst: TPM_pcr_digest
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:184,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:185,1
    - Dst: parse_root_key
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:188,1
    - Dst: disk_read_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:196,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:198,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 1
    argNames:
    - active_root
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 159
    functionDepth: 11
    functionLinenumber: 159
    functionLinenumberEnd: 200
    functionName: find_root_key
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - calloc
    - memcmp
    - parse_root_key
    - be32_native
    - disk_set_used
    - disk_read_sector
    - mgr_free
    - TPM_pcr_digest
    - native_be32
    linkageType: ''
    returnType: struct mem_tpm_mgr
    signature: struct mem_tpm_mgr *find_root_key(int active_root)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:211,1
    - Dst: disk_read_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:213,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:215,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:215,1
    - Dst: sha256_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:219,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:221,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:221,1
    - Dst: aes_decrypt_ctr
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:228,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:231,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:233,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:234,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - dst
    - base
    - mgr
    - group_key
    argTypes:
    - struct mem_vtpm_page*
    - int
    - struct mem_tpm_mgr*
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 205
    functionDepth: 11
    functionLinenumber: 205
    functionLinenumberEnd: 239
    functionName: load_verify_vtpm_page
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - aes_decrypt_ctr
    - calloc
    - disk_read_crypt_sector
    - be32_native
    - printk
    - disk_set_used
    - sha256_verify
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int load_verify_vtpm_page(struct mem_vtpm_page *dst, int base,\n\t\tconst
      struct mem_tpm_mgr *mgr, const aes_context *group_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_verify_vtpm_page
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 7
    argNames:
    - group
    - base
    - size
    - hash
    - loc
    - mgr
    - group_key
    argTypes:
    - struct mem_group*
    - int
    - int
    - struct hash256*
    - sector_t*
    - struct mem_tpm_mgr*
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 12
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: load_verify_vtpm_pages
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - load_verify_vtpm_page
    linkageType: ''
    returnType: int
    signature: "int load_verify_vtpm_pages(struct mem_group *group, int base, int
      size,\n\t\tconst struct hash256 *hash, const sector_t *loc,\n\t\tconst struct
      mem_tpm_mgr *mgr, const aes_context *group_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:284,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:285,1
    - Dst: load_verify_vtpm_pages
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:289,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:299,1
    - Dst: disk_read_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:302,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:304,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:304,1
    - Dst: sha256_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:308,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:310,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:310,1
    - Dst: load_verify_vtpm_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 8
    argNames:
    - hdr
    - base
    - nr_entries
    - hash
    - loc
    - hsize
    - mgr
    - group_key
    argTypes:
    - struct mem_group_hdr*
    - int
    - int
    - struct hash256*
    - sector_t*
    - int
    - struct mem_tpm_mgr*
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 271
    functionDepth: 13
    functionLinenumber: 271
    functionLinenumberEnd: 323
    functionName: load_verify_vtpm_itree
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 1
    functionsReached:
    - load_verify_vtpm_itree
    - disk_read_crypt_sector
    - be32_native
    - load_verify_vtpm_pages
    - printk
    - disk_set_used
    - sha256_verify
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int load_verify_vtpm_itree(struct mem_group_hdr *hdr, int base, int
      nr_entries,\n\t\tconst struct hash256 *hash, const sector_t *loc, int hsize,\n\t\tconst
      struct mem_tpm_mgr *mgr, const aes_context *group_key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:335,1
    - Dst: disk_read_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:337,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:339,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:339,1
    - Dst: sha256_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:343,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:345,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:345,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:349,1
    - Dst: find_group_key
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:351,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:355,1
    - Dst: aes_cmac_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:356,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:357,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:361,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:362,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:367,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:371,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:374,1
    - Dst: load_verify_vtpm_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:376,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:381,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:382,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - dst
    - mgr
    argTypes:
    - struct mem_group_hdr*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 327
    functionDepth: 14
    functionLinenumber: 327
    functionLinenumberEnd: 388
    functionName: load_verify_group
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - calloc
    - free
    - load_verify_vtpm_itree
    - disk_read_crypt_sector
    - aes_cmac_verify
    - be32_native
    - find_group_key
    - printk
    - disk_set_used
    - sha256_verify
    - memcpy
    - aes_setup
    linkageType: ''
    returnType: int
    signature: int load_verify_group(struct mem_group_hdr *dst, const struct mem_tpm_mgr
      *mgr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:394,1
    - Dst: disk_read_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:396,1
    - Dst: root_loc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:396,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:399,1
    - Dst: be64_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - root
    - dst
    argTypes:
    - struct disk_root_sector*
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 407
    functionName: load_root_pre
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - root_loc
    - be64_native
    - disk_read_crypt_sector
    - vtpmloginfo
    - aes_setup
    linkageType: ''
    returnType: int
    signature: int load_root_pre(struct disk_root_sector *root, struct mem_tpm_mgr
      *dst)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:421,1
    - Dst: load_verify_group
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:422,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:424,1
    - Dst: disk_set_used
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:443,1
    - Dst: disk_read_crypt_sector
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:445,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:447,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:447,1
    - Dst: sha256_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:451,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:453,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:453,1
    - Dst: load_verify_group_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:457,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - dst
    - base
    - nr_entries
    - hash
    - loc
    - hsize
    argTypes:
    - struct mem_tpm_mgr*
    - int
    - int
    - struct hash256*
    - sector_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 412
    functionDepth: 15
    functionLinenumber: 412
    functionLinenumberEnd: 465
    functionName: load_verify_group_itree
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 1
    functionsReached:
    - load_verify_group_itree
    - disk_read_crypt_sector
    - be32_native
    - printk
    - disk_set_used
    - sha256_verify
    - load_verify_group
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int load_verify_group_itree(struct mem_tpm_mgr *dst, int base, int
      nr_entries,\n\t\tconst struct hash256 *hash, const sector_t *loc, int hsize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:470,1
    - Dst: TPM_disk_check_counter
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:472,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:478,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:479,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:482,1
    - Dst: load_verify_group_itree
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:486,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:493,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:515,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:521,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:531,1
    - Dst: aes_cmac_verify
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:532,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - dst
    - root
    argTypes:
    - struct mem_tpm_mgr*
    - struct disk_root_sector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 467
    functionDepth: 16
    functionLinenumber: 467
    functionLinenumberEnd: 542
    functionName: load_root_post
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - load_verify_group_itree
    - calloc
    - TPM_disk_check_counter
    - aes_cmac_verify
    - vtpmlogerror
    - be32_native
    - printk
    - aes_setup
    linkageType: ''
    returnType: int
    signature: int load_root_post(struct mem_tpm_mgr *dst, const struct disk_root_sector
      *root)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_read_pcrs
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:548,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:550,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:551,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:553,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:554,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:556,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:559,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:562,1
    - Dst: find_root_key
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:566,1
    - Dst: find_root_key
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:567,1
    - Dst: load_root_pre
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:569,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:571,1
    - Dst: load_root_pre
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:575,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:577,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:581,1
    - Dst: load_root_post
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:587,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:589,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:592,1
    - Dst: load_root_post
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:598,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:600,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:602,1
    - Dst: load_root_post
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:608,1
    - Dst: mgr_free
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:610,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_read.c:616,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 544
    functionDepth: 17
    functionLinenumber: 544
    functionLinenumberEnd: 619
    functionName: vtpm_load_disk
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_read.c
    functionUses: 0
    functionsReached:
    - load_root_pre
    - load_root_post
    - find_root_key
    - printk
    - TPM_read_pcrs
    - mgr_free
    linkageType: ''
    returnType: int
    signature: int vtpm_load_disk(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:41,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:42,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:49,1
    - Dst: aes_setup
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:50,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:51,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:53,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:59,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:60,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:64,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:65,1
    - Dst: disk_write_all
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:69,1
    - Dst: TPM_disk_incr_counter
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:76,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:78,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:79,1
    - Dst: TPM_disk_nvwrite
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:86,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:88,1
    - Dst: TPM_disk_change_counter
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:92,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:94,1
    - Dst: TPM_disk_nvchange
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:98,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:100,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 2
    argNames:
    - mgr
    - depth
    argTypes:
    - struct mem_tpm_mgr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 23
    functionDepth: 15
    functionLinenumber: 23
    functionLinenumberEnd: 105
    functionName: vtpm_sync_disk
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - abort
    - TPM_disk_nvwrite
    - TPM_disk_change_counter
    - be32_native
    - TPM_disk_nvchange
    - disk_write_all
    - TPM_disk_incr_counter
    - do_random
    - native_be32
    - memcpy
    - aes_setup
    linkageType: ''
    returnType: int
    signature: int vtpm_sync_disk(struct mem_tpm_mgr *mgr, int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - mgr
    - group
    argTypes:
    - struct mem_tpm_mgr*
    - struct mem_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: find_mem_group_hdr
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mem_group_hdr
    signature: struct mem_group_hdr * find_mem_group_hdr(struct mem_tpm_mgr *mgr,
      struct mem_group *group)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_mem_group_hdr
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:120,1
    - Dst: be64_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:121,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:124,1
    - Dst: native_be64
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:127,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:131,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:132,1
    - Dst: vtpm_sync_disk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - group
    - depth
    argTypes:
    - struct mem_group*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 16
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: vtpm_sync_group
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - abort
    - be64_native
    - find_mem_group_hdr
    - native_be64
    - vtpm_sync_disk
    - do_random
    linkageType: ''
    returnType: int
    signature: int vtpm_sync_group(struct mem_group *group, int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - vtpm
    argTypes:
    - struct mem_group*
    - struct mem_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: find_mem_vtpm_page
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct mem_vtpm_page
    signature: struct mem_vtpm_page * find_mem_vtpm_page(struct mem_group *group,
      struct mem_vtpm *vtpm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_mem_vtpm_page
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:150,1
    - Dst: vtpm_sync_group
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - vtpm
    argTypes:
    - struct mem_group*
    - struct mem_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 17
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: vtpm_sync
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - find_mem_vtpm_page
    - vtpm_sync_group
    linkageType: ''
    returnType: int
    signature: int vtpm_sync(struct mem_group *group, struct mem_vtpm *vtpm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:163,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:168,1
    - Dst: realloc
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:170,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:172,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:175,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - group
    - vtpmp
    - uuid
    argTypes:
    - struct mem_group*
    - struct mem_vtpm**
    - uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 187
    functionName: create_vtpm
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - calloc
    - abort
    - memset
    - realloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int create_vtpm(struct mem_group *group, struct mem_vtpm **vtpmp, const
      uuid_t uuid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_mem_vtpm_page
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:191,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - group
    - vtpm
    argTypes:
    - struct mem_group*
    - struct mem_vtpm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 212
    functionName: delete_vtpm
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - free
    - find_mem_vtpm_page
    linkageType: ''
    returnType: int
    signature: int delete_vtpm(struct mem_group *group, struct mem_vtpm *vtpm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/vtpm_disk.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - groupp
    - vtpmp
    - uuid
    argTypes:
    - struct mem_group**
    - struct mem_vtpm**
    - uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 237
    functionName: find_vtpm
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_disk.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int find_vtpm(struct mem_group **groupp, struct mem_vtpm **vtpmp, const
      uuid_t uuid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:42,1
    - Dst: tpm2_pcr_read
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:43,1
    - Dst: TPM_PCR_Read
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: TPM_read_pcrs
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached:
    - hw_is_tpm2
    - TPM_PCR_Read
    - tpm2_pcr_read
    linkageType: ''
    returnType: void
    signature: void TPM_read_pcrs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: le32_native
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:60,1
    - Dst: alloca
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:66,1
    - Dst: native_be16
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:67,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:68,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:69,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:74,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - selection
    argTypes:
    - struct hash160*
    - le32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: TPM_pcr_digest
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 4
    functionsReached:
    - native_be16
    - sha1
    - le32_native
    - alloca
    - memcpy
    - native_be32
    linkageType: ''
    returnType: void
    signature: void TPM_pcr_digest(struct hash160 *buf, le32_t selection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:93,1
    - Dst: TPM_OSAP
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:95,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:98,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:102,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:104,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:105,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:108,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:116,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:117,1
    - Dst: TPM_Seal
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:122,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:125,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:128,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:131,1
    - Dst: pack_TPM_STORED_DATA12
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:136,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:137,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:139,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:142,1
    - Dst: free_TPM_STORED_DATA12
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - struct disk_seal_entry*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 83
    functionDepth: 10
    functionLinenumber: 83
    functionLinenumberEnd: 147
    functionName: TPM_disk_seal
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 2
    functionsReached:
    - TPM_TerminateHandle
    - pack_TPM_STORED_DATA12
    - free_TPM_STORED_DATA12
    - TPM_Seal
    - abort
    - TPM_OSAP
    - printk
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int TPM_disk_seal(struct disk_seal_entry *dst, const void* src, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:153,1
    - Dst: TPM2_Bind
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - struct disk_seal_entry*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: TPM2_disk_bind
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 2
    functionsReached:
    - TPM2_Bind
    - TPMTRYRETURN
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_disk_bind(struct disk_seal_entry *dst, void* src, unsigned
      int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:168,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:169,1
    - Dst: TPM2_UnBind
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dst
    - size
    - src
    argTypes:
    - void*
    - unsigned int*
    - struct disk_seal_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: TPM2_disk_unbind
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 2
    functionsReached:
    - TPM2_UnBind
    - memcpy
    - TPMTRYRETURN
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_disk_unbind(void *dst, unsigned int *size, const struct
      disk_seal_entry *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:188,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:190,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:191,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:193,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:206,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:207,1
    - Dst: pack_TPM_STORED_DATA12
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:214,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:215,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:217,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:220,1
    - Dst: TPM_Unseal
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:223,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:226,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:229,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:232,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:234,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:237,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:238,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - dst
    - size
    - src
    argTypes:
    - void*
    - size_t
    - struct disk_seal_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 179
    functionDepth: 10
    functionLinenumber: 179
    functionLinenumberEnd: 245
    functionName: TPM_disk_unseal
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 2
    functionsReached:
    - TPM_TerminateHandle
    - pack_TPM_STORED_DATA12
    - abort
    - TPM_Unseal
    - free
    - TPM_OIAP
    - printk
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: int TPM_disk_unseal(void *dst, size_t size, const struct disk_seal_entry
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nvram_slot
    - auth
    argTypes:
    - be32_t*
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 252
    functionName: TPM_disk_nvalloc
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_nvalloc(be32_t *nvram_slot, struct tpm_authdata auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_tpm.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - buf
    - bufsiz
    - nvram_slot
    - auth
    argTypes:
    - void*
    - size_t
    - be32_t
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: TPM_disk_nvread
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int TPM_disk_nvread(void *buf, size_t bufsiz, be32_t nvram_slot, struct
      tpm_authdata auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - bufsiz
    - nvram_slot
    - auth
    argTypes:
    - void*
    - size_t
    - be32_t
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: TPM_disk_nvwrite
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_nvwrite(void *buf, size_t bufsiz, be32_t nvram_slot, struct
      tpm_authdata auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nvram_slot
    - old
    - noo
    argTypes:
    - be32_t
    - struct tpm_authdata
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: TPM_disk_nvchange
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_nvchange(be32_t nvram_slot, struct tpm_authdata old, struct
      tpm_authdata noo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - slot
    - auth
    - value
    argTypes:
    - be32_t*
    - struct tpm_authdata
    - be32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: TPM_disk_alloc_counter
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_alloc_counter(be32_t *slot, struct tpm_authdata auth,
      be32_t *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - auth
    - value
    argTypes:
    - be32_t
    - struct tpm_authdata
    - be32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: TPM_disk_check_counter
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_check_counter(be32_t slot, struct tpm_authdata auth, be32_t
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - auth
    argTypes:
    - be32_t
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: TPM_disk_incr_counter
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_incr_counter(be32_t slot, struct tpm_authdata auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - old
    - noo
    argTypes:
    - be32_t
    - struct tpm_authdata
    - struct tpm_authdata
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: TPM_disk_change_counter
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_tpm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int TPM_disk_change_counter(be32_t slot, struct tpm_authdata old, struct
      tpm_authdata noo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tpmrsa_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:47,1
    - Dst: mpi_lset
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:50,1
    - Dst: mpi_read_binary
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:52,1
    - Dst: mpi_read_binary
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:54,1
    - Dst: mpi_msb
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - key
    - keylen
    - exponent
    - explen
    argTypes:
    - tpmrsa_context*
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 57
    functionName: tpmrsa_set_pubkey
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.c
    functionUses: 1
    functionsReached:
    - mpi_msb
    - tpmrsa_free
    - mpi_read_binary
    - mpi_lset
    linkageType: ''
    returnType: void
    signature: "void tpmrsa_set_pubkey(tpmrsa_context* ctx,\n      const unsigned
      char* key,\n      int keylen,\n      const unsigned char* exponent,\n      int
      explen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpi_init
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:67,1
    - Dst: MPI_CHK
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:69,1
    - Dst: mpi_read_binary
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:69,1
    - Dst: mpi_cmp_mpi
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:71,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:73,1
    - Dst: MPI_CHK
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:78,1
    - Dst: mpi_exp_mod
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:78,1
    - Dst: MPI_CHK
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:79,1
    - Dst: mpi_write_binary
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:79,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - input
    - output
    argTypes:
    - tpmrsa_context*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 89
    functionName: tpmrsa_public
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.c
    functionUses: 0
    functionsReached:
    - mpi_free
    - mpi_cmp_mpi
    - MPI_CHK
    - mpi_write_binary
    - mpi_read_binary
    - mpi_init
    - mpi_exp_mod
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT tpmrsa_public( tpmrsa_context *ctx,\n      const unsigned
      char *input,\n      unsigned char *output )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:97,1
    - Dst: tpmrsa_public
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:100,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:109,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ctx
    - input
    - sha1
    argTypes:
    - tpmrsa_context*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: tpmrsa_sigcheck
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.c
    functionUses: 0
    functionsReached:
    - tpmrsa_public
    - alloca
    - memcmp
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT tpmrsa_sigcheck(tpmrsa_context *ctx, const unsigned char
      *input, const unsigned char *sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:124,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:125,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:133,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - dst
    - dlen
    - src
    - slen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 146
    functionName: mgf_mask
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.c
    functionUses: 0
    functionsReached:
    - sha1_finish
    - sha1_update
    - sha1_starts
    linkageType: ''
    returnType: void
    signature: void mgf_mask( unsigned char *dst, int dlen, unsigned char *src, int
      slen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:174,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:177,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:184,1
    - Dst: f_rng
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:188,1
    - Dst: mgf_mask
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:192,1
    - Dst: mgf_mask
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:195,1
    - Dst: tpmrsa_public
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - ctx
    - p_rng
    - ilen
    - input
    - output
    argTypes:
    - tpmrsa_context*
    - void*
    - size_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 199
    functionName: tpmrsa_pub_encrypt_oaep
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.c
    functionUses: 1
    functionsReached:
    - f_rng
    - mgf_mask
    - sha1
    - tpmrsa_public
    - memset
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT tpmrsa_pub_encrypt_oaep( tpmrsa_context *ctx,\n      int
      (*f_rng)(void *, unsigned char *, size_t),\n      void *p_rng,\n      size_t
      ilen,\n      const unsigned char *input,\n      unsigned char *output )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctr_drbg_random
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:18,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: do_random
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 3
    functionsReached:
    - abort
    - ctr_drbg_random
    linkageType: ''
    returnType: void
    signature: void do_random(void *buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_setkey_enc
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - aes_context*
    - struct key128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: aes_setup
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 7
    functionsReached:
    - aes_setkey_enc
    linkageType: ''
    returnType: void
    signature: void aes_setup(aes_context *ctx, const struct key128 *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_crypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target
    - src
    - key_e
    argTypes:
    - void*
    - void*
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: aes_encrypt_ecb
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached:
    - aes_crypt_ecb
    linkageType: ''
    returnType: void
    signature: void aes_encrypt_ecb(void *target, const void *src, const aes_context
      *key_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_setkey_enc
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:35,1
    - Dst: aes_crypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - target
    - src
    - key
    argTypes:
    - void*
    - void*
    - struct key128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: aes_encrypt_one
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 1
    functionsReached:
    - aes_setkey_enc
    - aes_crypt_ecb
    linkageType: ''
    returnType: void
    signature: void aes_encrypt_one(void *target, const void *src, const struct key128
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_setkey_dec
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:42,1
    - Dst: aes_crypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - target
    - src
    - key
    argTypes:
    - void*
    - void*
    - struct key128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: aes_decrypt_one
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 1
    functionsReached:
    - aes_setkey_dec
    - aes_crypt_ecb
    linkageType: ''
    returnType: void
    signature: void aes_decrypt_one(void *target, const void *src, const struct key128
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:49,1
    - Dst: aes_encrypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - ctr
    - key_e
    argTypes:
    - uint64_t[]
    - uint64_t[]
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: aes_ctr_one
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached:
    - memset
    - aes_encrypt_ecb
    linkageType: ''
    returnType: void
    signature: void aes_ctr_one(uint64_t out[2], uint64_t ctr[2], const aes_context
      *key_e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:63,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:70,1
    - Dst: aes_ctr_one
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:73,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:86,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:87,1
    - Dst: aes_ctr_one
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:89,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:94,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:97,1
    - Dst: aes_ctr_one
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:102,1
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 5
    argNames:
    - target
    - target_size
    - srcv
    - pt_size
    - key_e
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 109
    functionName: aes_encrypt_ctr
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 3
    functionsReached:
    - abort
    - memset
    - do_random
    - aes_ctr_one
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aes_encrypt_ctr(void *target, size_t target_size, const void *srcv,
      size_t pt_size, const aes_context *key_e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:124,1
    - Dst: aes_ctr_one
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:128,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:139,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:140,1
    - Dst: aes_ctr_one
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:142,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - target
    - pt_size
    - srcv
    - src_size
    - key_e
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 148
    functionName: aes_decrypt_ctr
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 2
    functionsReached:
    - memset
    - memcpy
    - aes_ctr_one
    - abort
    linkageType: ''
    returnType: void
    signature: void aes_decrypt_ctr(void *target, size_t pt_size, const void *srcv,
      size_t src_size, const aes_context *key_e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct mac128*
    - struct mac128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: shl_128_mod_hex87
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void shl_128_mod_hex87(struct mac128 *dst, const struct mac128 *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - s1
    - s2
    argTypes:
    - struct mac128*
    - struct mac128*
    - struct mac128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: xor128
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor128(struct mac128 *dst, const struct mac128 *s1, const struct
      mac128 *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:173,1
    - Dst: aes_encrypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:174,1
    - Dst: shl_128_mod_hex87
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:175,1
    - Dst: shl_128_mod_hex87
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:176,1
    - Dst: xor128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:179,1
    - Dst: aes_encrypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:180,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:184,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:185,1
    - Dst: xor128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:186,1
    - Dst: xor128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:187,1
    - Dst: xor128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:189,1
    - Dst: xor128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:190,1
    - Dst: aes_encrypt_ecb
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - target
    - src
    - size
    - key
    argTypes:
    - struct mac128*
    - void*
    - size_t
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 193
    functionName: aes_cmac
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 3
    functionsReached:
    - memset
    - aes_encrypt_ecb
    - shl_128_mod_hex87
    - xor128
    - memcpy
    linkageType: ''
    returnType: void
    signature: void aes_cmac(struct mac128 *target, const void *src, size_t size,
      const aes_context *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: verify_128
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_128(const void *a, const void* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aes_cmac
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:207,1
    - Dst: verify_128
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - target
    - src
    - size
    - key
    argTypes:
    - struct mac128*
    - void*
    - size_t
    - aes_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: aes_cmac_verify
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 3
    functionsReached:
    - verify_128
    - aes_cmac
    linkageType: ''
    returnType: int
    signature: int aes_cmac_verify(const struct mac128 *target, const void *src, size_t
      size, const aes_context *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: verify_256
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int verify_256(const void *a, const void* b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha2
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target
    - src
    - size
    argTypes:
    - struct hash256*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: sha256
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 4
    functionsReached:
    - sha2
    linkageType: ''
    returnType: void
    signature: void sha256(struct hash256 *target, const void *src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha256
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:229,1
    - Dst: verify_256
      Src: /src/xen/stubdom/vtpmmgr/disk_crypto.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - targ
    - data
    - size
    argTypes:
    - struct hash256*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: sha256_verify
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_crypto.c
    functionUses: 4
    functionsReached:
    - verify_256
    - sha256
    linkageType: ''
    returnType: int
    signature: int sha256_verify(const struct hash256 *targ, const void *data, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_io.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: seal_loc
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.h
    functionUses: 1
    functionsReached:
    - native_be32
    linkageType: ''
    returnType: sector_t
    signature: sector_t seal_loc(struct mem_tpm_mgr *mgr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/disk_io.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mgr
    argTypes:
    - struct mem_tpm_mgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: root_loc
    functionSourceFile: /src/xen/stubdom/vtpmmgr/disk_io.h
    functionUses: 2
    functionsReached:
    - native_be32
    linkageType: ''
    returnType: sector_t
    signature: sector_t root_loc(struct mem_tpm_mgr *mgr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_OSAP
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:61,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:65,1
    - Dst: TPM_MakeIdentity
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:69,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:73,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:74,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:77,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:88,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:91,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:92,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:93,1
    - Dst: free_TPM_KEY
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:96,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - group
    - privCADigest
    argTypes:
    - struct mem_group*
    - struct tpm_authdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 26
    functionDepth: 10
    functionLinenumber: 26
    functionLinenumberEnd: 100
    functionName: do_provision_aik
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - TPM_TerminateHandle
    - TPM_OSAP
    - free
    - TPM_OIAP
    - free_TPM_KEY
    - printk
    - TPM_MakeIdentity
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int do_provision_aik(struct mem_group *group,\n\t\tconst struct tpm_authdata
      *privCADigest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_LoadKey
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - handle
    argTypes:
    - struct mem_group*
    - TPM_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 129
    functionName: do_load_aik
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - TPM_LoadKey
    linkageType: ''
    returnType: int
    signature: int do_load_aik(struct mem_group *group, TPM_HANDLE *handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:137,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:138,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:140,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:141,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:143,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:145,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:148,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:149,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:151,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:152,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:154,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:156,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:159,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:160,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:161,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:162,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:163,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:165,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:166,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:167,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:167,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:168,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:172,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:173,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:174,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - extra_info_flags
    - group
    - uuid
    - kern_hash
    - calc_hashes
    argTypes:
    - uint32_t
    - struct mem_group*
    - void*
    - uint8_t*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 131
    functionDepth: 10
    functionLinenumber: 131
    functionLinenumberEnd: 178
    functionName: do_vtpminfo_hash
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - be32_native
    - sha1_starts
    - sha1_update
    - printk
    - sha1_finish
    linkageType: ''
    returnType: void
    signature: "void do_vtpminfo_hash(uint32_t extra_info_flags,struct mem_group *group,\n\tconst
      void* uuid, const uint8_t* kern_hash,unsigned char** calc_hashes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Reset
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:195,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:199,1
    - Dst: TPM_Extend
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:200,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:204,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:205,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:206,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:208,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:209,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:210,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:210,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:211,1
    - Dst: TPM_Extend
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:212,1
    - Dst: TPM_Extend
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:217,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:222,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:223,1
    - Dst: TPM_Extend
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:224,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:229,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:230,1
    - Dst: TPM_Extend
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - group
    - uuid
    - kern_hash
    argTypes:
    - struct mem_group*
    - void*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 237
    functionName: do_pcr_setup
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - TPM_Reset
    - sha1
    - be32_native
    - sha1_starts
    - sha1_update
    - memset
    - TPM_Extend
    - sha1_finish
    - memcpy
    linkageType: ''
    returnType: int
    signature: int do_pcr_setup(struct mem_group *group, const void* uuid, const uint8_t*
      kern_hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:248,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:252,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:253,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:254,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:255,1
    - Dst: do_provision_aik
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:263,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - privCADigest
    argTypes:
    - struct tpm_authdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 239
    functionDepth: 11
    functionLinenumber: 239
    functionLinenumberEnd: 273
    functionName: vtpm_new_group
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 1
    functionsReached:
    - do_random
    - do_provision_aik
    - free
    - calloc
    linkageType: ''
    returnType: struct mem_group
    signature: struct mem_group *vtpm_new_group(const struct tpm_authdata *privCADigest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: do_pcr_setup
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:285,1
    - Dst: do_load_aik
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:289,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:293,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:295,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:299,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:301,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:302,1
    - Dst: TPM_ActivateIdentity
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:306,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:309,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:310,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:311,1
    - Dst: pack_TPM_SYMMETRIC_KEY
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:316,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - group
    - blob
    - blobSize
    - resp
    - rlen
    argTypes:
    - struct mem_group*
    - void*
    - int
    - void*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 321
    functionName: group_do_activate
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - TPM_TerminateHandle
    - do_pcr_setup
    - free
    - TPM_OIAP
    - TPM_ActivateIdentity
    - pack_TPM_SYMMETRIC_KEY
    - do_load_aik
    linkageType: ''
    returnType: int
    signature: "int group_do_activate(struct mem_group *group, void* blob, int blobSize,\n\tvoid*
      resp, unsigned int *rlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:339,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:346,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:347,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:348,1
    - Dst: do_vtpminfo_hash
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:352,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:355,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:357,1
    - Dst: do_load_aik
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:360,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:364,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:366,1
    - Dst: TPM_Quote
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:370,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:372,1
    - Dst: TPM_FlushSpecific
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:373,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:378,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:385,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:389,1
    - Dst: free_TPM_PCR_COMPOSITE
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:392,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/mgmt_authority.c:393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 9
    argNames:
    - group
    - uuid
    - kern_hash
    - data
    - sel
    - extra_info_flags
    - pcr_out
    - pcr_size
    - sig_out
    argTypes:
    - struct mem_group*
    - uuid_t
    - uint8_t*
    - struct tpm_authdata*
    - TPM_PCR_SELECTION*
    - uint32_t
    - void*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 323
    functionDepth: 11
    functionLinenumber: 323
    functionLinenumberEnd: 396
    functionName: vtpm_do_quote
    functionSourceFile: /src/xen/stubdom/vtpmmgr/mgmt_authority.c
    functionUses: 0
    functionsReached:
    - TPM_TerminateHandle
    - do_vtpminfo_hash
    - free
    - TPM_OIAP
    - sha1_starts
    - do_load_aik
    - sha1_update
    - free_TPM_PCR_COMPOSITE
    - printk
    - TPM_Quote
    - sha1_finish
    - TPM_FlushSpecific
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int vtpm_do_quote(struct mem_group *group, const uuid_t uuid,\n\tconst
      uint8_t* kern_hash, const struct tpm_authdata *data, TPM_PCR_SELECTION *sel,\n\tuint32_t
      extra_info_flags, void* pcr_out, uint32_t *pcr_size, void* sig_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - TPM_CAP_VERSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: free_TPM_CAP_VERSION_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_CAP_VERSION_INFO(TPM_CAP_VERSION_INFO* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_SYMMETRIC_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: free_TPM_SYMMETRIC_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_SYMMETRIC_KEY_PARMS(TPM_SYMMETRIC_KEY_PARMS* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: free_TPM_RSA_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_RSA_KEY_PARMS(TPM_RSA_KEY_PARMS* p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_RSA_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:539,1
    - Dst: free_TPM_SYMMETRIC_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 548
    functionName: free_TPM_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free_TPM_SYMMETRIC_KEY_PARMS
    - free_TPM_RSA_KEY_PARMS
    linkageType: ''
    returnType: void
    signature: void free_TPM_KEY_PARMS(TPM_KEY_PARMS* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_STORE_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: free_TPM_STORE_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_STORE_PUBKEY(TPM_STORE_PUBKEY* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:572,1
    - Dst: free_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: free_TPM_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 2
    functionsReached:
    - free_TPM_STORE_PUBKEY
    - free_TPM_KEY_PARMS
    linkageType: ''
    returnType: void
    signature: void free_TPM_PUBKEY(TPM_PUBKEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: free_TPM_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_PCR_SELECTION(TPM_PCR_SELECTION* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:606,1
    - Dst: free_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 608
    functionName: free_TPM_PCR_INFO_LONG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free_TPM_PCR_SELECTION
    linkageType: ''
    returnType: void
    signature: void free_TPM_PCR_INFO_LONG(TPM_PCR_INFO_LONG* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: free_TPM_PCR_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free_TPM_PCR_SELECTION
    linkageType: ''
    returnType: void
    signature: void free_TPM_PCR_INFO(TPM_PCR_INFO* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:633,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: free_TPM_PCR_COMPOSITE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 1
    functionsReached:
    - free_TPM_PCR_SELECTION
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_PCR_COMPOSITE(TPM_PCR_COMPOSITE* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:659,1
    - Dst: free_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:661,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 664
    functionName: free_TPM_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 2
    functionsReached:
    - free_TPM_STORE_PUBKEY
    - free_TPM_PCR_INFO
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_KEY(TPM_KEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - d
    argTypes:
    - TPM_BOUND_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: free_TPM_BOUND_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_TPM_BOUND_DATA(TPM_BOUND_DATA* d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:694,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - TPM_STORED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 698
    functionName: free_TPM_STORED_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached:
    - free
    - free_TPM_PCR_INFO
    linkageType: ''
    returnType: void
    signature: void free_TPM_STORED_DATA(TPM_STORED_DATA* d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_TPM_PCR_INFO_LONG
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:715,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/tcg.h:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - d
    argTypes:
    - TPM_STORED_DATA12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: free_TPM_STORED_DATA12
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 2
    functionsReached:
    - free
    - free_TPM_PCR_INFO_LONG
    linkageType: ''
    returnType: void
    signature: void free_TPM_STORED_DATA12(TPM_STORED_DATA12* d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 744
    functionName: ERRORDIE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRORDIE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 755
    functionName: TPMTRY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMTRY(s,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 763
    functionName: TPMTRYRETURN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tcg.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMTRYRETURN(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.h:67,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.h:67,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/tpmrsa.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - tpmrsa_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: tpmrsa_free
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpmrsa.h
    functionUses: 2
    functionsReached:
    - mpi_free
    linkageType: ''
    returnType: void
    signature: void tpmrsa_free( tpmrsa_context *ctx )
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - code
    argTypes:
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: tpm_get_error_name
    functionSourceFile: /src/xen/stubdom/vtpmmgr/log.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * tpm_get_error_name (TPM_RESULT code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uuid
    argTypes:
    - uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: gen_random_uuid
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - do_random
    linkageType: ''
    returnType: void
    signature: void gen_random_uuid(uuid_t uuid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tpmback_get_peercontext
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:73,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:77,1
    - Dst: strlen
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:77,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:84,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:85,1
    - Dst: strchr
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:90,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:97,1
    - Dst: strlen
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - domid
    - opq
    argTypes:
    - int
    - struct tpm_opaque*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 99
    functionName: find_vtpm_khash
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - memcmp
    - sha1
    - be32_native
    - strchr
    - strlen
    - tpmback_get_peercontext
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT find_vtpm_khash(int domid, struct tpm_opaque *opq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: find_vtpm
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:108,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:113,1
    - Dst: find_vtpm_khash
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:119,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:123,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:124,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - domid
    - opq
    argTypes:
    - int
    - struct tpm_opaque*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: find_vtpm_verified
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - memcmp
    - be32_native
    - printk
    - find_vtpm
    - find_vtpm_khash
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT find_vtpm_verified(int domid, struct tpm_opaque *opq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:142,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:147,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:152,1
    - Dst: find_vtpm_verified
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:153,1
    - Dst: create_vtpm
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:160,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:167,1
    - Dst: UUID_BYTES
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:168,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:174,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:175,1
    - Dst: vtpm_sync
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:177,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - opq
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 133
    functionDepth: 18
    functionLinenumber: 133
    functionLinenumberEnd: 184
    functionName: vtpmmgr_SaveHashKey
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - find_vtpm_verified
    - create_vtpm
    - vtpmlogerror
    - pack_TPM_RSP_HEADER
    - vtpmloginfo
    - printk
    - vtpm_sync
    - memset
    - memcpy
    - UUID_BYTES
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_SaveHashKey(struct tpm_opaque *opq, tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:192,1
    - Dst: find_vtpm_verified
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:195,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:199,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - opq
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 11
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: vtpmmgr_LoadHashKey
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vtpmloginfo
    - find_vtpm_verified
    - pack_TPM_RSP_HEADER
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_LoadHashKey(struct tpm_opaque *opq, tpmcmd_t* tpmcmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - item
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: UNPACK_IN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_IN(type, item...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - group
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: UNPACK_GROUP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_GROUP(group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: UNPACK_DONE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_DONE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - item
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: PACK_OUT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_OUT(type, item...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:272,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - opq
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: vtpmmgr_GetBootHash
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - PACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GetBootHash(struct tpm_opaque *opq, tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:288,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:289,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:290,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:291,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:298,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:300,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:301,1
    - Dst: vtpm_do_quote
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - opq
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 279
    functionDepth: 12
    functionLinenumber: 279
    functionLinenumberEnd: 309
    functionName: vtpmmgr_GetQuote
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - printk
    - vtpm_do_quote
    - UNPACK_IN
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GetQuote(struct tpm_opaque *opq, tpmcmd_t* tpmcmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:314,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: vtpmmgr_GroupList
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - PACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupList(tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:327,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:328,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:329,1
    - Dst: vtpm_new_group
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:331,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:337,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:339,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:340,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:341,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:343,1
    - Dst: native_be64
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:345,1
    - Dst: realloc
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:350,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:351,1
    - Dst: vtpm_sync_group
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 319
    functionDepth: 17
    functionLinenumber: 319
    functionLinenumberEnd: 357
    functionName: vtpmmgr_GroupNew
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - vtpm_sync_group
    - UNPACK_IN
    - UNPACK_DONE
    - native_be64
    - PACK_OUT
    - memset
    - vtpm_new_group
    - realloc
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupNew(tpmcmd_t* tpmcmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:365,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:366,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:387,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:390,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:391,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:392,1
    - Dst: memmove
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:397,1
    - Dst: vtpm_sync_disk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 359
    functionDepth: 16
    functionLinenumber: 359
    functionLinenumberEnd: 402
    functionName: vtpmmgr_GroupDel
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_IN
    - UNPACK_DONE
    - free
    - memmove
    - vtpm_sync_disk
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupDel(tpmcmd_t* tpmcmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:408,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:409,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:411,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:414,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:415,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:415,1
    - Dst: be32_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - group
    argTypes:
    - void*
    - struct mem_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 417
    functionName: pack_cfg_list
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - be32_native
    - memcpy
    linkageType: ''
    returnType: int
    signature: int pack_cfg_list(void* buf, struct mem_group *group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:424,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:425,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:429,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:430,1
    - Dst: pack_cfg_list
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: vtpmmgr_GroupShow
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - UNPACK_GROUP
    - pack_cfg_list
    - PACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupShow(tpmcmd_t* tpmcmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:443,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:444,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:445,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:446,1
    - Dst: group_do_activate
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 451
    functionName: vtpmmgr_GroupActivate
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - UNPACK_GROUP
    - group_do_activate
    - UNPACK_IN
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupActivate(tpmcmd_t* tpmcmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:490,1
    - Dst: mpi_read_binary
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:498,1
    - Dst: do_random
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:500,1
    - Dst: mpi_exp_mod
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:502,1
    - Dst: mpi_write_binary
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:503,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:504,1
    - Dst: mpi_read_binary
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:506,1
    - Dst: mpi_exp_mod
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:507,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:508,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:509,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:510,1
    - Dst: mpi_write_binary
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:512,1
    - Dst: mpi_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:513,1
    - Dst: sha2
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - dhkx1
    - dhkx2
    - out
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 515
    functionName: tm_dhkx_gen
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - mpi_free
    - ARRAY_SIZE
    - sha2
    - mpi_write_binary
    - mpi_read_binary
    - do_random
    - mpi_exp_mod
    linkageType: ''
    returnType: void
    signature: void tm_dhkx_gen(void* dhkx1, void* dhkx2, void* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - xv
    - yv
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: xor2_256b
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor2_256b(void *xv, const void* yv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:537,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:538,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:539,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:540,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:541,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:552,1
    - Dst: tpmrsa_set_pubkey
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:553,1
    - Dst: tpmrsa_sigcheck
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:554,1
    - Dst: tpmrsa_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:556,1
    - Dst: tm_dhkx_gen
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:565,1
    - Dst: xor2_256b
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:566,1
    - Dst: sha1_starts
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:568,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:569,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:570,1
    - Dst: sha1_update
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:571,1
    - Dst: sha1_finish
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:572,1
    - Dst: vtpm_do_quote
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 526
    functionDepth: 12
    functionLinenumber: 526
    functionLinenumberEnd: 578
    functionName: vtpmmgr_GroupRegister
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_IN
    - UNPACK_DONE
    - UNPACK_GROUP
    - xor2_256b
    - tpmrsa_free
    - sha1
    - vtpm_do_quote
    - tm_dhkx_gen
    - sha1_starts
    - sha1_update
    - tpmrsa_set_pubkey
    - tpmrsa_sigcheck
    - sha1_finish
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupRegister(tpmcmd_t* tpmcmd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:594,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:595,1
    - Dst: be64_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:600,1
    - Dst: be64_native
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:601,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:608,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:609,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:611,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:612,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:625,1
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:627,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:631,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:632,1
    - Dst: native_le32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:638,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:639,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:642,1
    - Dst: tpmrsa_set_pubkey
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:644,1
    - Dst: tpmrsa_sigcheck
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:645,1
    - Dst: tpmrsa_free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:646,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:648,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:654,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:656,1
    - Dst: native_be64
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:657,1
    - Dst: native_be32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:660,1
    - Dst: vtpm_sync_group
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:670,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:673,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:675,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 580
    functionDepth: 17
    functionLinenumber: 580
    functionLinenumberEnd: 677
    functionName: vtpmmgr_GroupUpdate
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - vtpm_sync_group
    - calloc
    - UNPACK_IN
    - UNPACK_DONE
    - UNPACK_GROUP
    - be64_native
    - tpmrsa_free
    - sha1
    - free
    - native_be64
    - pack_TPM_RSP_HEADER
    - tpmrsa_set_pubkey
    - native_le32
    - printk
    - tpmrsa_sigcheck
    - memcpy
    - native_be32
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_GroupUpdate(tpmcmd_t* tpmcmd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:686,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:687,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:689,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:701,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 710
    functionName: vtpmmgr_VtpmList
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_GROUP
    - memcpy
    - UNPACK_IN
    - PACK_OUT
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_VtpmList(tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_GROUP
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:720,1
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:724,1
    - Dst: gen_random_uuid
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:726,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:727,1
    - Dst: create_vtpm
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:729,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:734,1
    - Dst: vtpm_sync
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:735,1
    - Dst: PACK_OUT
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 712
    functionDepth: 18
    functionLinenumber: 712
    functionLinenumberEnd: 739
    functionName: vtpmmgr_VtpmNew
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - gen_random_uuid
    - UNPACK_IN
    - UNPACK_DONE
    - UNPACK_GROUP
    - create_vtpm
    - PACK_OUT
    - vtpm_sync
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_VtpmNew(tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_IN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:749,1
    - Dst: UNPACK_DONE
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:750,1
    - Dst: find_vtpm
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:751,1
    - Dst: delete_vtpm
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 765
    functionName: vtpmmgr_VtpmDel
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - UNPACK_DONE
    - find_vtpm
    - delete_vtpm
    - UNPACK_IN
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_VtpmDel(tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - opq
    argTypes:
    - struct tpm_opaque*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 774
    functionName: vtpmmgr_permcheck
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vtpmmgr_permcheck(struct tpm_opaque *opq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_RQU_GetRandom
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:783,1
    - Dst: sizeof_TPM_RQU_GetRandom
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:789,1
    - Dst: unpack_TPM_RQU_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:795,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:797,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:799,1
    - Dst: TPM_TransmitData
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:799,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:807,1
    - Dst: sizeof_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:815,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:816,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:818,1
    - Dst: TPM2_GetRandom
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:818,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:820,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:822,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - opaque
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 832
    functionName: vtpmmgr_handle_getrandom
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - hw_is_tpm2
    - TPMTRYRETURN
    - sizeof_UINT32
    - TPM2_GetRandom
    - pack_TPM_RSP_HEADER
    - TPM_TransmitData
    - unpack_UINT32
    - sizeof_TPM_RSP_HEADER
    - sizeof_TPM_RQU_GetRandom
    - unpack_TPM_RQU_HEADER
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT vtpmmgr_handle_getrandom(struct tpm_opaque *opaque,\n\t\t\t\t
      \   tpmcmd_t* tpmcmd)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_RQU_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:843,1
    - Dst: unpack_TPM_RQU_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:849,1
    - Dst: vtpmmgr_SaveHashKey
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:858,1
    - Dst: vtpmmgr_LoadHashKey
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:860,1
    - Dst: vtpmmgr_GetBootHash
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:862,1
    - Dst: vtpmmgr_GetQuote
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:864,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:866,1
    - Dst: vtpmmgr_permcheck
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:872,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:874,1
    - Dst: vtpmmgr_GroupList
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:879,1
    - Dst: vtpmmgr_GroupNew
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:881,1
    - Dst: vtpmmgr_GroupDel
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:883,1
    - Dst: vtpmmgr_GroupActivate
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:885,1
    - Dst: vtpmmgr_GroupRegister
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:887,1
    - Dst: vtpmmgr_GroupUpdate
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:889,1
    - Dst: vtpmmgr_GroupShow
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:891,1
    - Dst: vtpmmgr_VtpmList
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:893,1
    - Dst: vtpmmgr_VtpmNew
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:895,1
    - Dst: vtpmmgr_VtpmDel
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:897,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:899,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:909,1
    - Dst: vtpmmgr_handle_getrandom
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:910,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:912,1
    - Dst: vtpmmgr_permcheck
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:918,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:919,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:923,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:927,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:933,1
    - Dst: TPM_TransmitData
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:933,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:938,1
    - Dst: pack_TPM_RSP_HEADER
      Src: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c:944,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 95
    argCount: 2
    argNames:
    - opaque
    - tpmcmd
    argTypes:
    - struct tpm_opaque*
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 834
    functionDepth: 19
    functionLinenumber: 834
    functionLinenumberEnd: 947
    functionName: vtpmmgr_handle_cmd
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpm_cmd_handler.c
    functionUses: 1
    functionsReached:
    - vtpmmgr_GroupList
    - vtpmmgr_GroupUpdate
    - sizeof_TPM_RQU_HEADER
    - vtpmmgr_GetQuote
    - vtpmmgr_VtpmList
    - vtpmmgr_GroupDel
    - vtpmmgr_VtpmNew
    - vtpmmgr_VtpmDel
    - unpack_TPM_RQU_HEADER
    - vtpmmgr_GroupActivate
    - TPMTRYRETURN
    - vtpmmgr_GetBootHash
    - vtpmlogerror
    - vtpmmgr_GroupShow
    - pack_TPM_RSP_HEADER
    - vtpmmgr_GroupRegister
    - vtpmmgr_SaveHashKey
    - vtpmmgr_GroupNew
    - vtpmloginfo
    - vtpmmgr_permcheck
    - vtpmmgr_LoadHashKey
    - TPM_TransmitData
    - vtpmmgr_handle_getrandom
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT vtpmmgr_handle_cmd(\n\t\tstruct tpm_opaque *opaque,\n\t\ttpmcmd_t*
      tpmcmd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 425
    functionName: PCR_SELECT_NUM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCR_SELECT_NUM(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: PCR_SELECT_VALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCR_SELECT_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_GetRandom
      Src: /src/xen/stubdom/vtpmmgr/init.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dummy
    - data
    - len
    - olen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: tpm_entropy_source
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM_GetRandom
    linkageType: ''
    returnType: int
    signature: int tpm_entropy_source(void* dummy, unsigned char* data, size_t len,
      size_t* olen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:91,1
    - Dst: TPM_GetCapability
      Src: /src/xen/stubdom/vtpmmgr/init.c:91,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:98,1
    - Dst: unpack_TPM_CAP_VERSION_INFO
      Src: /src/xen/stubdom/vtpmmgr/init.c:103,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:105,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:106,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:108,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:109,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:110,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:113,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:114,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/init.c:116,1
    - Dst: vtpmloginfomore
      Src: /src/xen/stubdom/vtpmmgr/init.c:118,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/init.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 123
    functionName: check_tpm_version
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - vtpmloginfomore
    - TPMTRYRETURN
    - free
    - vtpmlogerror
    - unpack_TPM_CAP_VERSION_INFO
    - vtpmloginfo
    - TPM_GetCapability
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT check_tpm_version(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be32
      Src: /src/xen/stubdom/vtpmmgr/init.c:134,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:136,1
    - Dst: TPM_GetCapability
      Src: /src/xen/stubdom/vtpmmgr/init.c:136,1
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/init.c:144,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:148,1
    - Dst: unpack_TPM_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/init.c:151,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:152,1
    - Dst: TPM_FlushSpecific
      Src: /src/xen/stubdom/vtpmmgr/init.c:152,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/init.c:156,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/init.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 165
    functionName: flush_tpm
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - unpack_TPM_HANDLE
    - unpack_UINT16
    - cpu_to_be32
    - TPMTRYRETURN
    - free
    - vtpmloginfo
    - TPM_FlushSpecific
    - TPM_GetCapability
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT flush_tpm(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ReadPubek
      Src: /src/xen/stubdom/vtpmmgr/init.c:173,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:178,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:196,1
    - Dst: TPM_CreateEndorsementKeyPair
      Src: /src/xen/stubdom/vtpmmgr/init.c:196,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:227,1
    - Dst: TPM_TakeOwnership
      Src: /src/xen/stubdom/vtpmmgr/init.c:227,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:235,1
    - Dst: TPM_DisablePubekRead
      Src: /src/xen/stubdom/vtpmmgr/init.c:235,1
    - Dst: free_TPM_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/init.c:244,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 246
    functionName: try_take_ownership
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM_ReadPubek
    - TPM_DisablePubekRead
    - TPM_TakeOwnership
    - TPMTRYRETURN
    - TPM_CreateEndorsementKeyPair
    - vtpmloginfo
    - free_TPM_PUBKEY
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT try_take_ownership(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:251,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:255,1
    - Dst: strlen
      Src: /src/xen/stubdom/vtpmmgr/init.c:257,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:258,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpmmgr/init.c:262,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:263,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:270,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpmmgr/init.c:272,1
    - Dst: strlen
      Src: /src/xen/stubdom/vtpmmgr/init.c:272,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - authstr
    - target
    argTypes:
    - char*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 280
    functionName: parse_auth_string
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - sha1
    - vtpmlogerror
    - strncmp
    - strlen
    - sscanf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parse_auth_string(char* authstr, BYTE* target)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/init.c:288,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/init.c:289,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:292,1
    - Dst: parse_auth_string
      Src: /src/xen/stubdom/vtpmmgr/init.c:293,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:300,1
    - Dst: parse_auth_string
      Src: /src/xen/stubdom/vtpmmgr/init.c:301,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:305,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpmmgr/init.c:306,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:310,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:311,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:313,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:319,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpmmgr/init.c:320,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:324,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:325,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpmmgr/init.c:327,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpmmgr/init.c:331,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpmmgr/init.c:332,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:340,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:343,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:349,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 3
    argNames:
    - argc
    - argv
    - opts
    argTypes:
    - int
    - char**
    - struct Opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 351
    functionName: parse_cmdline_opts
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - vtpmlogerror
    - strncmp
    - parse_auth_string
    - sscanf
    - vtpmloginfo
    - strcmp
    - memcpy
    linkageType: ''
    returnType: int
    signature: int parse_cmdline_opts(int argc, char** argv, struct Opts* opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:361,1
    - Dst: try_take_ownership
      Src: /src/xen/stubdom/vtpmmgr/init.c:361,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:364,1
    - Dst: TPM_OSAP
      Src: /src/xen/stubdom/vtpmmgr/init.c:364,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:372,1
    - Dst: TPM_SaveState
      Src: /src/xen/stubdom/vtpmmgr/init.c:372,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:375,1
    - Dst: vtpm_new_disk
      Src: /src/xen/stubdom/vtpmmgr/init.c:375,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:380,1
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/init.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 388
    functionName: vtpmmgr_create
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM_TerminateHandle
    - TPMTRYRETURN
    - TPM_OSAP
    - vtpm_new_disk
    - TPM_SaveState
    - vtpmloginfo
    - try_take_ownership
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/xen/stubdom/vtpmmgr/init.c:394,1
    - Dst: tpmback_get_uuid
      Src: /src/xen/stubdom/vtpmmgr/init.c:395,1
    - Dst: tpmback_set_opaque
      Src: /src/xen/stubdom/vtpmmgr/init.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - domid
    - handle
    argTypes:
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: set_opaque
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 1
    functionsReached:
    - tpmback_set_opaque
    - tpmback_get_uuid
    - calloc
    linkageType: ''
    returnType: void
    signature: void set_opaque(domid_t domid, unsigned int handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tpmback_get_opaque
      Src: /src/xen/stubdom/vtpmmgr/init.c:403,1
    - Dst: free
      Src: /src/xen/stubdom/vtpmmgr/init.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - domid
    - handle
    argTypes:
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: free_opaque
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - tpmback_get_opaque
    - free
    linkageType: ''
    returnType: void
    signature: void free_opaque(domid_t domid, unsigned int handle)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_cmdline_opts
      Src: /src/xen/stubdom/vtpmmgr/init.c:421,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:422,1
    - Dst: vtpm_storage_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:428,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:429,1
    - Dst: init_tpmback
      Src: /src/xen/stubdom/vtpmmgr/init.c:435,1
    - Dst: init_tpm_tis
      Src: /src/xen/stubdom/vtpmmgr/init.c:442,1
    - Dst: TPM_TIS_LOCL_INT_TO_FLAG
      Src: /src/xen/stubdom/vtpmmgr/init.c:442,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:443,1
    - Dst: tpm_tis_open
      Src: /src/xen/stubdom/vtpmmgr/init.c:447,1
    - Dst: tpm_tis_request_locality
      Src: /src/xen/stubdom/vtpmmgr/init.c:448,1
    - Dst: init_tpmfront
      Src: /src/xen/stubdom/vtpmmgr/init.c:455,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:456,1
    - Dst: tpmfront_open
      Src: /src/xen/stubdom/vtpmmgr/init.c:460,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:466,1
    - Dst: check_tpm_version
      Src: /src/xen/stubdom/vtpmmgr/init.c:466,1
    - Dst: flush_tpm
      Src: /src/xen/stubdom/vtpmmgr/init.c:469,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:470,1
    - Dst: entropy_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:474,1
    - Dst: entropy_add_source
      Src: /src/xen/stubdom/vtpmmgr/init.c:475,1
    - Dst: entropy_gather
      Src: /src/xen/stubdom/vtpmmgr/init.c:476,1
    - Dst: ctr_drbg_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:477,1
    - Dst: ctr_drbg_set_prediction_resistance
      Src: /src/xen/stubdom/vtpmmgr/init.c:478,1
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/init.c:482,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:486,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/init.c:486,1
    - Dst: vtpm_load_disk
      Src: /src/xen/stubdom/vtpmmgr/init.c:490,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:493,1
    - Dst: TPM_OIAP
      Src: /src/xen/stubdom/vtpmmgr/init.c:493,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:495,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:496,1
    - Dst: vtpmmgr_create
      Src: /src/xen/stubdom/vtpmmgr/init.c:496,1
    - Dst: vtpmmgr_shutdown
      Src: /src/xen/stubdom/vtpmmgr/init.c:501,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 409
    functionDepth: 18
    functionLinenumber: 409
    functionLinenumberEnd: 504
    functionName: vtpmmgr_init
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 1
    functionsReached:
    - tpm_tis_request_locality
    - tpmfront_open
    - vtpmmgr_create
    - entropy_init
    - entropy_add_source
    - ctr_drbg_init
    - TPM_TIS_LOCL_INT_TO_FLAG
    - parse_cmdline_opts
    - vtpmmgr_rand
    - TPMTRYRETURN
    - vtpm_storage_init
    - flush_tpm
    - vtpm_load_disk
    - vtpmlogerror
    - vtpmmgr_shutdown
    - tpm_tis_open
    - init_tpmback
    - init_tpmfront
    - entropy_gather
    - vtpmloginfo
    - init_tpm_tis
    - check_tpm_version
    - TPM_OIAP
    - ctr_drbg_set_prediction_resistance
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_init(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/init.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - authValue
    - authLen
    - auth
    argTypes:
    - char*
    - UINT32
    - TPM_AuthArea*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 517
    functionName: tpm2_AuthArea_ctor
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void tpm2_AuthArea_ctor(const char *authValue, UINT32 authLen,\n                               TPM_AuthArea
      *auth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tpm2_AuthArea_ctor
      Src: /src/xen/stubdom/vtpmmgr/init.c:523,1
    - Dst: SRK_OBJ_ATTR
      Src: /src/xen/stubdom/vtpmmgr/init.c:541,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:562,1
    - Dst: TPM2_CreatePrimary
      Src: /src/xen/stubdom/vtpmmgr/init.c:562,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:564,1
    - Dst: tpm2_AuthArea_ctor
      Src: /src/xen/stubdom/vtpmmgr/init.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 574
    functionName: tpm2_take_ownership
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPMTRYRETURN
    - vtpmloginfo
    - TPM2_CreatePrimary
    - tpm2_AuthArea_ctor
    - SRK_OBJ_ATTR
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC tpm2_take_ownership(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:581,1
    - Dst: tpm2_take_ownership
      Src: /src/xen/stubdom/vtpmmgr/init.c:581,1
    - Dst: tpm2_AuthArea_ctor
      Src: /src/xen/stubdom/vtpmmgr/init.c:583,1
    - Dst: SK_OBJ_ATTR
      Src: /src/xen/stubdom/vtpmmgr/init.c:603,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:625,1
    - Dst: TPM2_Create
      Src: /src/xen/stubdom/vtpmmgr/init.c:625,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:626,1
    - Dst: TPM2_Load
      Src: /src/xen/stubdom/vtpmmgr/init.c:626,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:632,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:635,1
    - Dst: vtpm_new_disk
      Src: /src/xen/stubdom/vtpmmgr/init.c:635,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 643
    functionName: vtpmmgr2_create
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM2_Create
    - TPMTRYRETURN
    - SK_OBJ_ATTR
    - TPM2_Load
    - vtpm_new_disk
    - tpm2_take_ownership
    - vtpmloginfo
    - tpm2_AuthArea_ctor
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr2_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2_GetRandom
      Src: /src/xen/stubdom/vtpmmgr/init.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dummy
    - data
    - len
    - olen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 652
    functionName: tpm2_entropy_source
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM2_GetRandom
    linkageType: ''
    returnType: int
    signature: "int tpm2_entropy_source(void* dummy, unsigned char* data,\n                               size_t
      len, size_t* olen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2_FlushContext
      Src: /src/xen/stubdom/vtpmmgr/init.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: flush_tpm2
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 0
    functionsReached:
    - TPM2_FlushContext
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC flush_tpm2(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_cmdline_opts
      Src: /src/xen/stubdom/vtpmmgr/init.c:678,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:679,1
    - Dst: vtpm_storage_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:685,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:686,1
    - Dst: init_tpmback
      Src: /src/xen/stubdom/vtpmmgr/init.c:692,1
    - Dst: init_tpm2_tis
      Src: /src/xen/stubdom/vtpmmgr/init.c:699,1
    - Dst: TPM_TIS_LOCL_INT_TO_FLAG
      Src: /src/xen/stubdom/vtpmmgr/init.c:699,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:701,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/init.c:705,1
    - Dst: tpm_tis_open
      Src: /src/xen/stubdom/vtpmmgr/init.c:706,1
    - Dst: tpm_tis_request_locality
      Src: /src/xen/stubdom/vtpmmgr/init.c:707,1
    - Dst: init_tpmfront
      Src: /src/xen/stubdom/vtpmmgr/init.c:713,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:714,1
    - Dst: tpmfront_open
      Src: /src/xen/stubdom/vtpmmgr/init.c:718,1
    - Dst: printk
      Src: /src/xen/stubdom/vtpmmgr/init.c:722,1
    - Dst: flush_tpm2
      Src: /src/xen/stubdom/vtpmmgr/init.c:724,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:725,1
    - Dst: entropy_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:729,1
    - Dst: entropy_add_source
      Src: /src/xen/stubdom/vtpmmgr/init.c:730,1
    - Dst: entropy_gather
      Src: /src/xen/stubdom/vtpmmgr/init.c:731,1
    - Dst: ctr_drbg_init
      Src: /src/xen/stubdom/vtpmmgr/init.c:732,1
    - Dst: ctr_drbg_set_prediction_resistance
      Src: /src/xen/stubdom/vtpmmgr/init.c:733,1
    - Dst: vtpmmgr_rand
      Src: /src/xen/stubdom/vtpmmgr/init.c:737,1
    - Dst: vtpm_load_disk
      Src: /src/xen/stubdom/vtpmmgr/init.c:741,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:742,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:743,1
    - Dst: vtpmmgr2_create
      Src: /src/xen/stubdom/vtpmmgr/init.c:743,1
    - Dst: vtpmmgr_shutdown
      Src: /src/xen/stubdom/vtpmmgr/init.c:749,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 665
    functionDepth: 18
    functionLinenumber: 665
    functionLinenumberEnd: 752
    functionName: vtpmmgr2_init
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 1
    functionsReached:
    - tpm_tis_request_locality
    - tpmfront_open
    - entropy_init
    - entropy_add_source
    - ctr_drbg_init
    - TPM_TIS_LOCL_INT_TO_FLAG
    - parse_cmdline_opts
    - flush_tpm2
    - vtpmmgr_rand
    - TPMTRYRETURN
    - vtpm_storage_init
    - vtpm_load_disk
    - vtpmlogerror
    - vtpmmgr_shutdown
    - printk
    - tpm_tis_open
    - init_tpmback
    - init_tpm2_tis
    - init_tpmfront
    - entropy_gather
    - vtpmloginfo
    - vtpmmgr2_create
    - ctr_drbg_set_prediction_resistance
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr2_init(int argc, char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCR_SELECT_NUM
      Src: /src/xen/stubdom/vtpmmgr/init.c:769,1
    - Dst: PCR_SELECT_VALUE
      Src: /src/xen/stubdom/vtpmmgr/init.c:769,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/init.c:770,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/init.c:773,1
    - Dst: TPM2_PCR_Read
      Src: /src/xen/stubdom/vtpmmgr/init.c:773,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/init.c:779,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/init.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - index
    - buf
    argTypes:
    - int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 785
    functionName: tpm2_pcr_read
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 1
    functionsReached:
    - TPMTRYRETURN
    - unpack_TPM2B_DIGEST
    - PCR_SELECT_VALUE
    - PCR_SELECT_NUM
    - memcpy
    - TPM2_PCR_Read
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC tpm2_pcr_read(int index, uint8_t *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_TerminateHandle
      Src: /src/xen/stubdom/vtpmmgr/init.c:790,1
    - Dst: shutdown_tpmback
      Src: /src/xen/stubdom/vtpmmgr/init.c:793,1
    - Dst: hw_is_tpm2
      Src: /src/xen/stubdom/vtpmmgr/init.c:795,1
    - Dst: flush_tpm2
      Src: /src/xen/stubdom/vtpmmgr/init.c:797,1
    - Dst: vtpmlogerror
      Src: /src/xen/stubdom/vtpmmgr/init.c:798,1
    - Dst: close
      Src: /src/xen/stubdom/vtpmmgr/init.c:804,1
    - Dst: vtpmloginfo
      Src: /src/xen/stubdom/vtpmmgr/init.c:806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 807
    functionName: vtpmmgr_shutdown
    functionSourceFile: /src/xen/stubdom/vtpmmgr/init.c
    functionUses: 3
    functionsReached:
    - TPM_TerminateHandle
    - hw_is_tpm2
    - vtpmlogerror
    - close
    - vtpmloginfo
    - shutdown_tpmback
    - flush_tpm2
    linkageType: ''
    returnType: void
    signature: void vtpmmgr_shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be16_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - be16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: be16_native
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 0
    functionsReached:
    - be16_to_cpu
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t be16_native(be16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: le32_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - le32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: le32_native
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 1
    functionsReached:
    - le32_to_cpu
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t le32_native(le32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - be32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: be32_native
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 20
    functionsReached:
    - be32_to_cpu
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t be32_native(be32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - be64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: be64_native
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 3
    functionsReached:
    - be64_to_cpu
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t be64_native(be64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be16
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: native_be16
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 1
    functionsReached:
    - cpu_to_be16
    linkageType: ''
    returnType: be16_t
    signature: be16_t native_be16(uint16_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: native_le32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 1
    functionsReached:
    - cpu_to_le32
    linkageType: ''
    returnType: le32_t
    signature: le32_t native_le32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be32
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: native_be32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 12
    functionsReached:
    - cpu_to_be32
    linkageType: ''
    returnType: be32_t
    signature: be32_t native_be32(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be64
      Src: /src/xen/stubdom/vtpmmgr/endian_int.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: native_be64
    functionSourceFile: /src/xen/stubdom/vtpmmgr/endian_int.h
    functionUses: 4
    functionsReached:
    - cpu_to_be64
    linkageType: ''
    returnType: be64_t
    signature: be64_t native_be64(uint64_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - BYTE*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: pack_BYTE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_BYTE(BYTE* ptr, BYTE t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: unpack_BYTE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_BYTE(BYTE* ptr, BYTE* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - t
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: unpack3_BYTE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BYTE
    linkageType: ''
    returnType: int
    signature: int unpack3_BYTE(BYTE* ptr, UINT32* pos, UINT32 max, BYTE *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: pack_BOOL
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_BOOL(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: unpack_BOOL
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_BOOL(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - x
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: unpack3_BOOL
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_BOOL(p, x, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: sizeof_BOOL
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_BOOL(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - void*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: pack_UINT16
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - cpu_to_be16
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_UINT16(void* ptr, UINT16 t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be16_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - void*
    - UINT16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: unpack_UINT16
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - be16_to_cpu
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_UINT16(void* ptr, UINT16* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - t
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - UINT16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: unpack3_UINT16
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    linkageType: ''
    returnType: int
    signature: int unpack3_UINT16(BYTE* ptr, UINT32* pos, UINT32 max, UINT16 *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_be32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - void*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: pack_UINT32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached:
    - cpu_to_be32
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_UINT32(void* ptr, UINT32 t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be32_to_cpu
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - void*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: unpack_UINT32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - be32_to_cpu
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_UINT32(void* ptr, UINT32* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - t
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: unpack3_UINT32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT32
    linkageType: ''
    returnType: int
    signature: int unpack3_UINT32(BYTE* ptr, UINT32* pos, UINT32 max, UINT32 *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: sizeof_BYTE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_BYTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: sizeof_UINT16
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_UINT16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: sizeof_UINT32
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_UINT32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: pack_TPM_RESULT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_RESULT(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: pack_TPM_PCRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_PCRINDEX(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: pack_TPM_DIRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_DIRINDEX(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: pack_TPM_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: pack_TPM_AUTHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_AUTHHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: pack_TCPA_HASHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCPA_HASHHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: pack_TCPA_HMACHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCPA_HMACHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: pack_TCPA_ENCHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCPA_ENCHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: pack_TPM_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_KEY_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: pack_TCPA_ENTITYHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCPA_ENTITYHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: pack_TPM_RESOURCE_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_RESOURCE_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: pack_TPM_COMMAND_CODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_COMMAND_CODE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: pack_TPM_PROTOCOL_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_PROTOCOL_ID(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: pack_TPM_AUTH_DATA_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_AUTH_DATA_USAGE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: pack_TPM_ENTITY_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ENTITY_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: pack_TPM_ALGORITHM_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ALGORITHM_ID(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: pack_TPM_KEY_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_KEY_USAGE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: pack_TPM_STARTUP_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_STARTUP_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: pack_TPM_CAPABILITY_AREA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_CAPABILITY_AREA(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: pack_TPM_ENC_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ENC_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: pack_TPM_SIG_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_SIG_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: pack_TPM_MIGRATE_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_MIGRATE_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: pack_TPM_PHYSICAL_PRESENCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_PHYSICAL_PRESENCE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: pack_TPM_KEY_FLAGS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_KEY_FLAGS(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: pack_TPM_LOCALITY_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_LOCALITY_SELECTION(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: unpack_TPM_RESULT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_RESULT(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: unpack_TPM_PCRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_PCRINDEX(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: unpack_TPM_DIRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_DIRINDEX(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: unpack_TPM_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: unpack_TPM_AUTHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_AUTHHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: unpack_TCPA_HASHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCPA_HASHHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: unpack_TCPA_HMACHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCPA_HMACHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: unpack_TCPA_ENCHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCPA_ENCHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: unpack_TPM_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_KEY_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: unpack_TCPA_ENTITYHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCPA_ENTITYHANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: unpack_TPM_RESOURCE_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_RESOURCE_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: unpack_TPM_COMMAND_CODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_COMMAND_CODE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: unpack_TPM_PROTOCOL_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_PROTOCOL_ID(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: unpack_TPM_AUTH_DATA_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_AUTH_DATA_USAGE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: unpack_TPM_ENTITY_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ENTITY_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: unpack_TPM_ALGORITHM_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ALGORITHM_ID(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: unpack_TPM_KEY_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_KEY_USAGE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: unpack_TPM_STARTUP_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_STARTUP_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: unpack_TPM_CAPABILITY_AREA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_CAPABILITY_AREA(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: unpack_TPM_ENC_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ENC_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: unpack_TPM_SIG_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_SIG_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: unpack_TPM_MIGRATE_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_MIGRATE_SCHEME(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: unpack_TPM_PHYSICAL_PRESENCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_PHYSICAL_PRESENCE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: unpack_TPM_KEY_FLAGS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_KEY_FLAGS(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: unpack_TPM_LOCALITY_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_LOCALITY_SELECTION(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: unpack3_TPM_RESULT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_RESULT(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: unpack3_TPM_PCRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_PCRINDEX(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: unpack3_TPM_DIRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_DIRINDEX(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: unpack3_TPM_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_HANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: unpack3_TPM_AUTHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_AUTHHANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: unpack3_TCPA_HASHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TCPA_HASHHANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: unpack3_TCPA_HMACHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TCPA_HMACHANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: unpack3_TCPA_ENCHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TCPA_ENCHANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: unpack3_TPM_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_KEY_HANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: unpack3_TCPA_ENTITYHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TCPA_ENTITYHANDLE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: unpack3_TPM_RESOURCE_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_RESOURCE_TYPE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: unpack3_TPM_COMMAND_CODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_COMMAND_CODE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: unpack3_TPM_PROTOCOL_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_PROTOCOL_ID(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: unpack3_TPM_AUTH_DATA_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_AUTH_DATA_USAGE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: unpack3_TPM_ENTITY_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_ENTITY_TYPE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: unpack3_TPM_ALGORITHM_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_ALGORITHM_ID(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: unpack3_TPM_KEY_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_KEY_USAGE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: unpack3_TPM_STARTUP_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_STARTUP_TYPE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: unpack3_TPM_CAPABILITY_AREA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_CAPABILITY_AREA(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: unpack3_TPM_ENC_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_ENC_SCHEME(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: unpack3_TPM_SIG_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_SIG_SCHEME(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: unpack3_TPM_MIGRATE_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_MIGRATE_SCHEME(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: unpack3_TPM_PHYSICAL_PRESENCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_PHYSICAL_PRESENCE(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: unpack3_TPM_KEY_FLAGS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_KEY_FLAGS(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: unpack3_TPM_LOCALITY_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_LOCALITY_SELECTION(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: unpack3_TPM_DEEP_QUOTE_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_DEEP_QUOTE_INFO(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: sizeof_TPM_RESULT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_RESULT(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: sizeof_TPM_PCRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_PCRINDEX(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: sizeof_TPM_DIRINDEX
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_DIRINDEX(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: sizeof_TPM_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: sizeof_TPM_AUTHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_AUTHHANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: sizeof_TCPA_HASHHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCPA_HASHHANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: sizeof_TCPA_HMACHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCPA_HMACHANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: sizeof_TCPA_ENCHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCPA_ENCHANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: sizeof_TPM_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_KEY_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: sizeof_TCPA_ENTITYHANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCPA_ENTITYHANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: sizeof_TPM_RESOURCE_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_RESOURCE_TYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: sizeof_TPM_COMMAND_CODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_COMMAND_CODE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: sizeof_TPM_PROTOCOL_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_PROTOCOL_ID(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: sizeof_TPM_AUTH_DATA_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_AUTH_DATA_USAGE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: sizeof_TPM_ENTITY_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_ENTITY_TYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: sizeof_TPM_ALGORITHM_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_ALGORITHM_ID(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: sizeof_TPM_KEY_USAGE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_KEY_USAGE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: sizeof_TPM_STARTUP_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_STARTUP_TYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: sizeof_TPM_CAPABILITY_AREA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_CAPABILITY_AREA(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: sizeof_TPM_ENC_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_ENC_SCHEME(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: sizeof_TPM_SIG_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_SIG_SCHEME(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: sizeof_TPM_MIGRATE_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_MIGRATE_SCHEME(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: sizeof_TPM_PHYSICAL_PRESENCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_PHYSICAL_PRESENCE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: sizeof_TPM_KEY_FLAGS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_KEY_FLAGS(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: sizeof_TPM_LOCALITY_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_LOCALITY_SELECTION(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: pack_TPM_AUTH_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_AUTH_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: pack_TCS_CONTEXT_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCS_CONTEXT_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: pack_TCS_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TCS_KEY_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: unpack_TPM_AUTH_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_AUTH_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: unpack_TCS_CONTEXT_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCS_CONTEXT_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: unpack_TCS_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TCS_KEY_HANDLE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: sizeof_TPM_AUTH_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_AUTH_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: sizeof_TCS_CONTEXT_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCS_CONTEXT_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: sizeof_TCS_KEY_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TCS_KEY_HANDLE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - buf
    - size
    argTypes:
    - BYTE*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: pack_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_BUFFER(BYTE* ptr, const BYTE* buf, UINT32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - buf
    - size
    argTypes:
    - BYTE*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: unpack_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_BUFFER(BYTE* ptr, BYTE* buf, UINT32 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - buf
    - size
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: unpack3_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int unpack3_BUFFER(BYTE* ptr, UINT32* pos, UINT32 max, BYTE* buf, UINT32
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    functionName: sizeof_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_BUFFER(b, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - buf
    - size
    argTypes:
    - BYTE*
    - BYTE**
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: unpack_ALIAS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_ALIAS(BYTE* ptr, BYTE** buf, UINT32 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:280,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ptr
    - buf
    - size
    argTypes:
    - BYTE*
    - BYTE**
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: unpack_ALLOC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_ALLOC(BYTE* ptr, BYTE** buf, UINT32 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unpack_ALLOC
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:291,1
    - Dst: unpack_ALIAS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - buf
    - size
    - alloc
    argTypes:
    - BYTE*
    - BYTE**
    - UINT32
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: unpack_PTR
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_ALLOC
    - unpack_ALIAS
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_PTR(BYTE* ptr, BYTE** buf, UINT32 size, UnpackPtr alloc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unpack_ALLOC
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:302,1
    - Dst: unpack_ALIAS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 6
    argNames:
    - ptr
    - pos
    - max
    - buf
    - size
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - BYTE**
    - UINT32
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: unpack3_PTR
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_ALLOC
    - unpack_ALIAS
    linkageType: ''
    returnType: int
    signature: int unpack3_PTR(BYTE* ptr, UINT32* pos, UINT32 max, BYTE** buf, UINT32
      size, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - ptr
    - ','
    - pos
    - ','
    - max
    - ','
    - buf
    - ','
    - size
    - ','
    - alloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: unpack3_VPTR
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_VPTR(ptr, pos, max, buf, size, alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_AUTHDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: pack_TPM_AUTHDATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_AUTHDATA(BYTE* ptr, const TPM_AUTHDATA* d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_AUTHDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 319
    functionName: unpack_TPM_AUTHDATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_AUTHDATA(BYTE* ptr, TPM_AUTHDATA* d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - pos
    - len
    - d
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_AUTHDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: unpack3_TPM_AUTHDATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_BUFFER
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_AUTHDATA(BYTE* ptr, UINT32* pos, UINT32 len, TPM_AUTHDATA*
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: sizeof_TPM_AUTHDATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_AUTHDATA(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: pack_TPM_SECRET
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_SECRET(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 330
    functionName: pack_TPM_ENCAUTH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ENCAUTH(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: pack_TPM_PAYLOAD_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_PAYLOAD_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: pack_TPM_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_TAG(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: pack_TPM_STRUCTURE_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_STRUCTURE_TAG(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: unpack_TPM_SECRET
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_SECRET(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: unpack_TPM_ENCAUTH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ENCAUTH(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: unpack_TPM_PAYLOAD_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_PAYLOAD_TYPE(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: unpack_TPM_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_TAG(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: unpack_TPM_STRUCTURE_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_STRUCTURE_TAG(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: unpack3_TPM_STRUCTURE_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_STRUCTURE_TAG(p, l, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 342
    functionName: sizeof_TPM_SECRET
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_SECRET(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: sizeof_TPM_ENCAUTH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_ENCAUTH(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: sizeof_TPM_PAYLOAD_TYPE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_PAYLOAD_TYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: sizeof_TPM_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_TAG(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: sizeof_TPM_STRUCTURE_TAG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_STRUCTURE_TAG(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - BYTE*
    - TPM_VERSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: pack_TPM_VERSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_VERSION(BYTE* ptr, const TPM_VERSION* t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - t
    argTypes:
    - BYTE*
    - TPM_VERSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: unpack_TPM_VERSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_VERSION(BYTE* ptr, TPM_VERSION* t)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - t
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_VERSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: unpack3_TPM_VERSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_VERSION(BYTE* ptr, UINT32 *pos, UINT32 max, TPM_VERSION*
      t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: sizeof_TPM_VERSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_VERSION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:382,1
    - Dst: pack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:383,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:384,1
    - Dst: pack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:385,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:386,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:387,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - v
    argTypes:
    - BYTE*
    - TPM_CAP_VERSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: pack_TPM_CAP_VERSION_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - pack_TPM_VERSION
    - pack_BYTE
    - pack_UINT16
    - pack_TPM_STRUCTURE_TAG
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_CAP_VERSION_INFO(BYTE* ptr, const TPM_CAP_VERSION_INFO*
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:394,1
    - Dst: unpack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:395,1
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:396,1
    - Dst: unpack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:397,1
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:398,1
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:399,1
    - Dst: unpack_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - v
    - alloc
    argTypes:
    - BYTE*
    - TPM_CAP_VERSION_INFO*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: unpack_TPM_CAP_VERSION_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - unpack_UINT16
    - unpack_BYTE
    - unpack_TPM_STRUCTURE_TAG
    - unpack_PTR
    - unpack_BUFFER
    - unpack_TPM_VERSION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_CAP_VERSION_INFO(BYTE* ptr, TPM_CAP_VERSION_INFO*
      v, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 407
    functionName: pack_TPM_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached:
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_DIGEST(BYTE* ptr, const TPM_DIGEST* d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: unpack_TPM_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_DIGEST(BYTE* ptr, TPM_DIGEST* d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - d
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: unpack3_TPM_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_BUFFER
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_DIGEST(BYTE* ptr, UINT32* pos, UINT32 max, TPM_DIGEST*
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: sizeof_TPM_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_DIGEST(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: pack_TPM_PCRVALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_PCRVALUE(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 423
    functionName: unpack_TPM_PCRVALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_PCRVALUE(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - p
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: unpack3_TPM_PCRVALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_PCRVALUE(p...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: pack_TPM_COMPOSITE_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_COMPOSITE_HASH(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: unpack_TPM_COMPOSITE_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_COMPOSITE_HASH(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ptr
    - ','
    - p
    - ','
    - m
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: unpack3_TPM_COMPOSITE_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_COMPOSITE_HASH(ptr, p, m, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: sizeof_TPM_COMPOSITE_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_COMPOSITE_HASH(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: pack_TPM_DIRVALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_DIRVALUE(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: unpack_TPM_DIRVALUE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_DIRVALUE(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: pack_TPM_HMAC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_HMAC(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: unpack_TPM_HMAC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_HMAC(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: pack_TPM_CHOSENID_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_CHOSENID_HASH(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: unpack_TPM_CHOSENID_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_CHOSENID_HASH(ptr, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - n
    argTypes:
    - BYTE*
    - TPM_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: pack_TPM_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 3
    functionsReached:
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_NONCE(BYTE* ptr, const TPM_NONCE* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - n
    argTypes:
    - BYTE*
    - TPM_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 447
    functionName: unpack_TPM_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_NONCE(BYTE* ptr, TPM_NONCE* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 450
    functionName: sizeof_TPM_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_NONCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - pos
    - max
    - n
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: unpack3_TPM_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_BUFFER
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_NONCE(BYTE* ptr, UINT32* pos, UINT32 max, TPM_NONCE*
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:458,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:459,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:460,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_SYMMETRIC_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: pack_TPM_SYMMETRIC_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_SYMMETRIC_KEY_PARMS(BYTE* ptr, const TPM_SYMMETRIC_KEY_PARMS*
      k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:466,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:467,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:468,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_SYMMETRIC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: pack_TPM_SYMMETRIC_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - pack_UINT32
    - pack_UINT16
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_SYMMETRIC_KEY(BYTE* ptr, const TPM_SYMMETRIC_KEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:474,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:475,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:476,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_SYMMETRIC_KEY_PARMS*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 478
    functionName: unpack3_TPM_SYMMETRIC_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_UINT32
    - unpack3_PTR
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_SYMMETRIC_KEY_PARMS(BYTE* ptr, UINT32* pos, UINT32
      max, TPM_SYMMETRIC_KEY_PARMS* k, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_SYMMETRIC_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: sizeof_TPM_SYMMETRIC_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_SYMMETRIC_KEY_PARMS(const TPM_SYMMETRIC_KEY_PARMS* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:487,1
    - Dst: unpack3_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:488,1
    - Dst: unpack3_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:489,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_SYMMETRIC_KEY*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 491
    functionName: unpack3_TPM_SYMMETRIC_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_PTR
    - unpack3_UINT32
    - unpack3_UINT16
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_SYMMETRIC_KEY(BYTE* ptr, UINT32* pos, UINT32 max, TPM_SYMMETRIC_KEY*
      k, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:495,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:496,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:497,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 499
    functionName: pack_TPM_RSA_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_RSA_KEY_PARMS(BYTE* ptr, const TPM_RSA_KEY_PARMS* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:503,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:504,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:505,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_RSA_KEY_PARMS*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 501
    functionDepth: 3
    functionLinenumber: 501
    functionLinenumberEnd: 507
    functionName: unpack3_TPM_RSA_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_UINT32
    - unpack3_PTR
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_RSA_KEY_PARMS(BYTE* ptr, UINT32* pos, UINT32 max, TPM_RSA_KEY_PARMS*
      k, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 512
    functionName: sizeof_TPM_RSA_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_RSA_KEY_PARMS(const TPM_RSA_KEY_PARMS* k)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_ALGORITHM_ID
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:517,1
    - Dst: pack_TPM_ENC_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:518,1
    - Dst: pack_TPM_SIG_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:519,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:520,1
    - Dst: pack_TPM_RSA_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:525,1
    - Dst: pack_TPM_SYMMETRIC_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 515
    functionDepth: 3
    functionLinenumber: 515
    functionLinenumberEnd: 533
    functionName: pack_TPM_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPM_ENC_SCHEME
    - pack_TPM_SYMMETRIC_KEY_PARMS
    - pack_TPM_RSA_KEY_PARMS
    - pack_TPM_ALGORITHM_ID
    - pack_TPM_SIG_SCHEME
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_KEY_PARMS(BYTE* ptr, const TPM_KEY_PARMS* k)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_ALGORITHM_ID
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:537,1
    - Dst: unpack3_TPM_ENC_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:538,1
    - Dst: unpack3_TPM_SIG_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:539,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:540,1
    - Dst: unpack3_TPM_RSA_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:545,1
    - Dst: unpack3_TPM_SYMMETRIC_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 5
    argNames:
    - ptr
    - pos
    - len
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_KEY_PARMS*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 552
    functionName: unpack3_TPM_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_ALGORITHM_ID
    - unpack3_TPM_SIG_SCHEME
    - unpack3_TPM_SYMMETRIC_KEY_PARMS
    - unpack3_UINT32
    - unpack3_TPM_ENC_SCHEME
    - unpack3_TPM_RSA_KEY_PARMS
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_KEY_PARMS(BYTE* ptr, UINT32* pos, UINT32 len, TPM_KEY_PARMS*
      k, UnpackPtr alloc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_ALGORITHM_ID
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:557,1
    - Dst: sizeof_TPM_ENC_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:558,1
    - Dst: sizeof_TPM_SIG_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:559,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:560,1
    - Dst: sizeof_TPM_RSA_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:565,1
    - Dst: sizeof_TPM_SYMMETRIC_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 574
    functionName: sizeof_TPM_KEY_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_TPM_RSA_KEY_PARMS
    - sizeof_UINT32
    - sizeof_TPM_ENC_SCHEME
    - sizeof_TPM_SIG_SCHEME
    - sizeof_TPM_SYMMETRIC_KEY_PARMS
    - sizeof_TPM_ALGORITHM_ID
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_KEY_PARMS(const TPM_KEY_PARMS* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:578,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_STORE_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: pack_TPM_STORE_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_STORE_PUBKEY(BYTE* ptr, const TPM_STORE_PUBKEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:585,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_STORE_PUBKEY*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: unpack3_TPM_STORE_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_UINT32
    - unpack3_PTR
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_STORE_PUBKEY(BYTE* ptr, UINT32* pos, UINT32 max, TPM_STORE_PUBKEY*
      k, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_STORE_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: sizeof_TPM_STORE_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_STORE_PUBKEY(const TPM_STORE_PUBKEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:596,1
    - Dst: pack_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: pack_TPM_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_KEY_PARMS
    - pack_TPM_STORE_PUBKEY
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_PUBKEY(BYTE* ptr, const TPM_PUBKEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:602,1
    - Dst: unpack3_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - len
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_PUBKEY*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 5
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: unpack3_TPM_PUBKEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_STORE_PUBKEY
    - unpack3_TPM_KEY_PARMS
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_PUBKEY(BYTE* ptr, UINT32* pos, UINT32 len, TPM_PUBKEY*
      k, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:608,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: pack_TPM_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_PCR_SELECTION(BYTE* ptr, const TPM_PCR_SELECTION* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:615,1
    - Dst: unpack_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - p
    - alloc
    argTypes:
    - BYTE*
    - TPM_PCR_SELECTION*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: unpack_TPM_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    - unpack_PTR
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_PCR_SELECTION(BYTE* ptr, TPM_PCR_SELECTION* p, UnpackPtr
      alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:622,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - p
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_PCR_SELECTION*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: unpack3_TPM_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_PTR
    - unpack3_UINT16
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_PCR_SELECTION(BYTE* ptr, UINT32* pos, UINT32 max, TPM_PCR_SELECTION*
      p, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 629
    functionName: sizeof_TPM_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_PCR_SELECTION(const TPM_PCR_SELECTION* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:633,1
    - Dst: pack_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:634,1
    - Dst: pack_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: pack_TPM_PCR_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_COMPOSITE_HASH
    - pack_TPM_PCR_SELECTION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_PCR_INFO(BYTE* ptr, const TPM_PCR_INFO* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:641,1
    - Dst: unpack3_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:642,1
    - Dst: unpack3_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - p
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_PCR_INFO*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 4
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: unpack3_TPM_PCR_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_COMPOSITE_HASH
    - unpack3_TPM_PCR_SELECTION
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_PCR_INFO(BYTE* ptr, UINT32* pos, UINT32 max, TPM_PCR_INFO*
      p, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:649,1
    - Dst: sizeof_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:650,1
    - Dst: sizeof_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 653
    functionName: sizeof_TPM_PCR_INFO
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_TPM_PCR_SELECTION
    - sizeof_TPM_COMPOSITE_HASH
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_PCR_INFO(const TPM_PCR_INFO* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:657,1
    - Dst: pack_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:658,1
    - Dst: pack_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:659,1
    - Dst: pack_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:660,1
    - Dst: pack_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:661,1
    - Dst: pack_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:662,1
    - Dst: pack_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: pack_TPM_PCR_INFO_LONG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_STRUCTURE_TAG
    - pack_TPM_COMPOSITE_HASH
    - pack_TPM_PCR_SELECTION
    - pack_TPM_LOCALITY_SELECTION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_PCR_INFO_LONG(BYTE* ptr, const TPM_PCR_INFO_LONG* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:670,1
    - Dst: sizeof_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:671,1
    - Dst: sizeof_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:672,1
    - Dst: sizeof_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:673,1
    - Dst: sizeof_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:674,1
    - Dst: sizeof_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:675,1
    - Dst: sizeof_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 678
    functionName: sizeof_TPM_PCR_INFO_LONG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_TPM_PCR_SELECTION
    - sizeof_TPM_COMPOSITE_HASH
    - sizeof_TPM_LOCALITY_SELECTION
    - sizeof_TPM_STRUCTURE_TAG
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_PCR_INFO_LONG(const TPM_PCR_INFO_LONG* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:682,1
    - Dst: unpack3_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:683,1
    - Dst: unpack3_TPM_LOCALITY_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:685,1
    - Dst: unpack3_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:687,1
    - Dst: unpack3_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:689,1
    - Dst: unpack3_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:691,1
    - Dst: unpack3_TPM_COMPOSITE_HASH
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - p
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_PCR_INFO_LONG*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 680
    functionDepth: 4
    functionLinenumber: 680
    functionLinenumberEnd: 694
    functionName: unpack3_TPM_PCR_INFO_LONG
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_STRUCTURE_TAG
    - unpack3_TPM_COMPOSITE_HASH
    - unpack3_TPM_PCR_SELECTION
    - unpack3_TPM_LOCALITY_SELECTION
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_PCR_INFO_LONG(BYTE* ptr, UINT32* pos, UINT32 max, TPM_PCR_INFO_LONG*
      p, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:698,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:699,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPM_PCR_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 702
    functionName: pack_TPM_PCR_COMPOSITE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_BUFFER
    - pack_TPM_PCR_SELECTION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_PCR_COMPOSITE(BYTE* ptr, const TPM_PCR_COMPOSITE* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:706,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:707,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - p
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_PCR_COMPOSITE*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: unpack3_TPM_PCR_COMPOSITE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_PCR_SELECTION
    - unpack3_UINT32
    - unpack3_PTR
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_PCR_COMPOSITE(BYTE* ptr, UINT32* pos, UINT32 max, TPM_PCR_COMPOSITE*
      p, UnpackPtr alloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:713,1
    - Dst: pack_TPM_KEY_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:714,1
    - Dst: pack_TPM_KEY_FLAGS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:715,1
    - Dst: pack_TPM_AUTH_DATA_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:716,1
    - Dst: pack_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:717,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:718,1
    - Dst: pack_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:720,1
    - Dst: pack_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:722,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:723,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - ptr
    - k
    argTypes:
    - BYTE*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 725
    functionName: pack_TPM_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_KEY_USAGE
    - pack_UINT32
    - pack_TPM_PCR_INFO
    - pack_TPM_VERSION
    - pack_TPM_KEY_PARMS
    - pack_TPM_KEY_FLAGS
    - pack_TPM_AUTH_DATA_USAGE
    - pack_TPM_STORE_PUBKEY
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_KEY(BYTE* ptr, const TPM_KEY* k)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:729,1
    - Dst: unpack3_TPM_KEY_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:730,1
    - Dst: unpack3_TPM_KEY_FLAGS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:731,1
    - Dst: unpack3_TPM_AUTH_DATA_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:732,1
    - Dst: unpack3_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:733,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:734,1
    - Dst: unpack3_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:737,1
    - Dst: unpack3_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:740,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:741,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:742,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 9
    argCount: 5
    argNames:
    - ptr
    - pos
    - max
    - k
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_KEY*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 727
    functionDepth: 5
    functionLinenumber: 727
    functionLinenumberEnd: 743
    functionName: unpack3_TPM_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_PTR
    - unpack3_TPM_PCR_INFO
    - unpack3_TPM_STORE_PUBKEY
    - unpack3_TPM_KEY_USAGE
    - unpack3_TPM_KEY_FLAGS
    - unpack3_UINT32
    - unpack3_TPM_VERSION
    - unpack3_TPM_AUTH_DATA_USAGE
    - unpack3_TPM_KEY_PARMS
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_KEY(BYTE* ptr, UINT32* pos, UINT32 max, TPM_KEY* k,
      UnpackPtr alloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:748,1
    - Dst: sizeof_TPM_KEY_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:749,1
    - Dst: sizeof_TPM_KEY_FLAGS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:750,1
    - Dst: sizeof_TPM_AUTH_DATA_USAGE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:751,1
    - Dst: sizeof_TPM_KEY_PARMS
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:752,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:753,1
    - Dst: sizeof_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:755,1
    - Dst: sizeof_TPM_STORE_PUBKEY
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:757,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - k
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 761
    functionName: sizeof_TPM_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_TPM_KEY_FLAGS
    - sizeof_TPM_KEY_USAGE
    - sizeof_UINT32
    - sizeof_TPM_VERSION
    - sizeof_TPM_STORE_PUBKEY
    - sizeof_TPM_KEY_PARMS
    - sizeof_TPM_PCR_INFO
    - sizeof_TPM_AUTH_DATA_USAGE
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_KEY(const TPM_KEY* k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:765,1
    - Dst: pack_TPM_PAYLOAD_TYPE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:766,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - b
    - payloadSize
    argTypes:
    - BYTE*
    - TPM_BOUND_DATA*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 768
    functionName: pack_TPM_BOUND_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_PAYLOAD_TYPE
    - pack_TPM_VERSION
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_BOUND_DATA(BYTE* ptr, const TPM_BOUND_DATA* b, UINT32
      payloadSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:772,1
    - Dst: unpack_TPM_PAYLOAD_TYPE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:773,1
    - Dst: unpack_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - b
    - payloadSize
    - alloc
    argTypes:
    - BYTE*
    - TPM_BOUND_DATA*
    - UINT32
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: unpack_TPM_BOUND_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM_PAYLOAD_TYPE
    - unpack_PTR
    - unpack_TPM_VERSION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_BOUND_DATA(BYTE* ptr, TPM_BOUND_DATA* b, UINT32 payloadSize,
      UnpackPtr alloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:779,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:780,1
    - Dst: pack_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:782,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:784,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_STORED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 777
    functionDepth: 4
    functionLinenumber: 777
    functionLinenumberEnd: 787
    functionName: pack_TPM_STORED_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPM_PCR_INFO
    - pack_TPM_VERSION
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_STORED_DATA(BYTE* ptr, const TPM_STORED_DATA* d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:791,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:791,1
    - Dst: sizeof_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:793,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:795,1
    - Dst: sizeof_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - TPM_STORED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 789
    functionDepth: 2
    functionLinenumber: 789
    functionLinenumberEnd: 798
    functionName: sizeof_TPM_STORED_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_BUFFER
    - sizeof_TPM_PCR_INFO
    - sizeof_UINT32
    - sizeof_TPM_VERSION
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_STORED_DATA(const TPM_STORED_DATA* d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_VERSION
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:802,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:803,1
    - Dst: unpack3_TPM_PCR_INFO
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:807,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:810,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - ptr
    - pos
    - len
    - d
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_STORED_DATA*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 813
    functionName: unpack3_TPM_STORED_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_UINT32
    - unpack3_PTR
    - unpack3_TPM_PCR_INFO
    - unpack3_TPM_VERSION
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_STORED_DATA(BYTE* ptr, UINT32* pos, UINT32 len, TPM_STORED_DATA*
      d, UnpackPtr alloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:817,1
    - Dst: pack_TPM_ENTITY_TYPE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:818,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:819,1
    - Dst: pack_TPM_PCR_INFO_LONG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:821,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:823,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ptr
    - d
    argTypes:
    - BYTE*
    - TPM_STORED_DATA12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 815
    functionDepth: 4
    functionLinenumber: 815
    functionLinenumberEnd: 826
    functionName: pack_TPM_STORED_DATA12
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached:
    - pack_UINT32
    - pack_TPM_PCR_INFO_LONG
    - pack_TPM_STRUCTURE_TAG
    - pack_TPM_ENTITY_TYPE
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_STORED_DATA12(BYTE* ptr, const TPM_STORED_DATA12* d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:830,1
    - Dst: sizeof_TPM_ENTITY_TYPE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:831,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:832,1
    - Dst: sizeof_TPM_PCR_INFO_LONG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:834,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:836,1
    - Dst: sizeof_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - TPM_STORED_DATA12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 839
    functionName: sizeof_TPM_STORED_DATA12
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_UINT32
    - sizeof_TPM_ENTITY_TYPE
    - sizeof_TPM_PCR_INFO_LONG
    - sizeof_BUFFER
    - sizeof_TPM_STRUCTURE_TAG
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_STORED_DATA12(const TPM_STORED_DATA12* d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_STRUCTURE_TAG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:843,1
    - Dst: unpack3_TPM_ENTITY_TYPE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:844,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:845,1
    - Dst: unpack3_TPM_PCR_INFO_LONG
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:849,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:853,1
    - Dst: unpack3_PTR
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - ptr
    - pos
    - len
    - d
    - alloc
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_STORED_DATA12*
    - UnpackPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 841
    functionDepth: 5
    functionLinenumber: 841
    functionLinenumberEnd: 856
    functionName: unpack3_TPM_STORED_DATA12
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_TPM_STRUCTURE_TAG
    - unpack3_PTR
    - unpack3_TPM_PCR_INFO_LONG
    - unpack3_TPM_ENTITY_TYPE
    - unpack3_UINT32
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_STORED_DATA12(BYTE* ptr, UINT32* pos, UINT32 len, TPM_STORED_DATA12*
      d, UnpackPtr alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_AUTH_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:860,1
    - Dst: pack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:861,1
    - Dst: pack_BOOL
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:862,1
    - Dst: pack_TPM_AUTHDATA
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - auth
    argTypes:
    - BYTE*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: pack_TPM_AUTH_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - pack_BOOL
    - pack_TPM_NONCE
    - pack_TPM_AUTHDATA
    - pack_TPM_AUTH_HANDLE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_AUTH_SESSION(BYTE* ptr, const TPM_AUTH_SESSION* auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:869,1
    - Dst: unpack_BOOL
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:870,1
    - Dst: unpack_TPM_AUTHDATA
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - auth
    argTypes:
    - BYTE*
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 873
    functionName: unpack_TPM_AUTH_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BOOL
    - unpack_TPM_NONCE
    - unpack_TPM_AUTHDATA
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_AUTH_SESSION(BYTE* ptr, TPM_AUTH_SESSION* auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:877,1
    - Dst: unpack3_BOOL
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:878,1
    - Dst: unpack3_TPM_AUTHDATA
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - pos
    - len
    - auth
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 880
    functionName: unpack3_TPM_AUTH_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_BOOL
    - unpack3_TPM_NONCE
    - unpack3_TPM_AUTHDATA
    linkageType: ''
    returnType: int
    signature: int unpack3_TPM_AUTH_SESSION(BYTE* ptr, UINT32* pos, UINT32 len, TPM_AUTH_SESSION*
      auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_AUTH_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:886,1
    - Dst: sizeof_TPM_NONCE
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:887,1
    - Dst: sizeof_BOOL
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:888,1
    - Dst: sizeof_TPM_AUTHDATA
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - auth
    argTypes:
    - TPM_AUTH_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 891
    functionName: sizeof_TPM_AUTH_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - sizeof_TPM_AUTHDATA
    - sizeof_TPM_AUTH_HANDLE
    - sizeof_BOOL
    - sizeof_TPM_NONCE
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_AUTH_SESSION(const TPM_AUTH_SESSION* auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:896,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:897,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 900
    functionName: sizeof_TPM_RQU_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - sizeof_UINT32
    - sizeof_UINT16
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_RQU_HEADER(BYTE* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:907,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:908,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - tag
    - size
    - ord
    argTypes:
    - BYTE*
    - TPM_TAG
    - UINT32
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 910
    functionName: pack_TPM_RQU_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached:
    - pack_UINT16
    - pack_UINT32
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPM_RQU_HEADER(BYTE* ptr,\n\t\tTPM_TAG tag,\n\t\tUINT32
      size,\n\t\tTPM_COMMAND_CODE ord)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:917,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:918,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ptr
    - tag
    - size
    - ord
    argTypes:
    - BYTE*
    - TPM_TAG*
    - UINT32*
    - TPM_COMMAND_CODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: unpack_TPM_RQU_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 2
    functionsReached:
    - unpack_UINT16
    - unpack_UINT32
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * unpack_TPM_RQU_HEADER(BYTE* ptr,\n\t\tTPM_TAG* tag,\n\t\tUINT32*
      size,\n\t\tTPM_COMMAND_CODE* ord)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack3_UINT16
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:927,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:928,1
    - Dst: unpack3_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 6
    argNames:
    - ptr
    - pos
    - max
    - tag
    - size
    - ord
    argTypes:
    - BYTE*
    - UINT32*
    - UINT32
    - TPM_TAG*
    - UINT32*
    - TPM_COMMAND_CODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 930
    functionName: unpack3_TPM_RQU_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached:
    - unpack3_UINT32
    - unpack3_UINT16
    linkageType: ''
    returnType: int
    signature: "int unpack3_TPM_RQU_HEADER(BYTE* ptr, UINT32* pos, UINT32 max,\n\t\tTPM_TAG*
      tag, UINT32* size, TPM_COMMAND_CODE* ord)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_RQU_HEADER
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:934,1
    - Dst: sizeof_UINT32
      Src: /src/xen/stubdom/vtpmmgr/marshal.h:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 935
    functionName: sizeof_TPM_RQU_GetRandom
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached:
    - sizeof_TPM_RQU_HEADER
    - sizeof_UINT32
    linkageType: ''
    returnType: int
    signature: int sizeof_TPM_RQU_GetRandom(BYTE* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - t
    - ','
    - s
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 938
    functionName: pack_TPM_RSP_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_RSP_HEADER(p, t, s, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - p
    - ','
    - t
    - ','
    - s
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 939
    functionName: unpack_TPM_RSP_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_RSP_HEADER(p, t, s, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - p
    - ','
    - l
    - ','
    - m
    - ','
    - t
    - ','
    - s
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 940
    functionName: unpack3_TPM_RSP_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack3_TPM_RSP_HEADER(p, l, m, t, s, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 941
    functionName: sizeof_TPM_RSP_HEADER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/marshal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sizeof_TPM_RSP_HEADER(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: pack_TPM_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_BUFFER(ptr, buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - buf
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: unpack_TPM_BUFFER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_BUFFER(ptr, buf, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - array
    - size
    argTypes:
    - BYTE*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: pack_BYTE_ARRAY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_BYTE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_BYTE_ARRAY(BYTE* ptr, const BYTE* array, UINT32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - attr
    argTypes:
    - BYTE*
    - TPMA_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: pack_TPMA_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_BYTE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMA_SESSION(BYTE* ptr, const TPMA_SESSION *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - attr
    argTypes:
    - BYTE*
    - TPMA_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: unpack_TPMA_SESSION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BYTE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMA_SESSION(BYTE* ptr, TPMA_SESSION *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - hash
    argTypes:
    - BYTE*
    - TPMI_ALG_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: pack_TPMI_ALG_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMI_ALG_HASH(BYTE* ptr, const TPMI_ALG_HASH *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - hash
    argTypes:
    - BYTE*
    - TPMI_ALG_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: unpack_TPMI_ALG_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMI_ALG_HASH(BYTE *ptr, TPMI_ALG_HASH *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: pack_TPMA_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMA_OBJECT(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: unpack_TPMA_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMA_OBJECT(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: pack_TPM_RH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_RH(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: unpack_TPM_RH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_RH(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - locality
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: pack_TPMA_LOCALITY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMA_LOCALITY(ptr, locality)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - locality
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: unpack_TPMA_LOCALITY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMA_LOCALITY(ptr, locality)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: pack_TPM_ST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ST(ptr, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: unpack_TPM_ST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ST(ptr, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: pack_TPM_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: unpack_TPM_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: pack_TPMI_AES_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_AES_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: unpack_TPMI_AES_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_AES_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: pack_TPMI_RSA_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RSA_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: unpack_TPMI_RSA_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RSA_KEY_BITS(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: pack_TPM_ALG_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ALG_ID(ptr, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: unpack_TPM_ALG_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ALG_ID(ptr, id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: pack_TPM_ALG_SYM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM_ALG_SYM(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: unpack_TPM_ALG_SYM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM_ALG_SYM(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - asym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: pack_TPMI_ALG_ASYM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_ASYM(ptr, asym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - asym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: unpack_TPMI_ALG_ASYM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_ASYM(ptr, asym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: pack_TPMI_ALG_SYM_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_SYM_OBJECT(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: unpack_TPMI_ALG_SYM_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_SYM_OBJECT(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: pack_TPMI_ALG_SYM_MODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_SYM_MODE(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: unpack_TPMI_ALG_SYM_MODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_SYM_MODE(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: pack_TPMI_ALG_KDF
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_KDF(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: unpack_TPMI_ALG_KDF
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_KDF(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: pack_TPMI_ALG_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_PUBLIC(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: unpack_TPMI_ALG_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_PUBLIC(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: pack_TPM2_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPM2_HANDLE(ptr, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: unpack_TPM2_HANDLE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2_HANDLE(ptr, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: pack_TPMI_ALG_RSA_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_ALG_RSA_SCHEME(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: unpack_TPMI_ALG_RSA_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_ALG_RSA_SCHEME(ptr, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: pack_TPMI_DH_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_DH_OBJECT(ptr, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: unpack_TPMI_DH_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_DH_OBJECT(PTR, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: pack_TPMI_RH_HIERACHY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RH_HIERACHY(ptr, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: unpack_TPMI_RH_HIERACHY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RH_HIERACHY(ptr, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: pack_TPMI_RH_PLATFORM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RH_PLATFORM(ptr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: unpack_TPMI_RH_PLATFORM
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RH_PLATFORM(ptr, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: pack_TPMI_RH_OWNER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RH_OWNER(ptr, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: unpack_TPMI_RH_OWNER
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RH_OWNER(ptr, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: pack_TPMI_RH_ENDORSEMENT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RH_ENDORSEMENT(ptr, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: unpack_TPMI_RH_ENDORSEMENT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RH_ENDORSEMENT(ptr, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: pack_TPMI_RH_LOCKOUT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMI_RH_LOCKOUT(ptr, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: unpack_TPMI_RH_LOCKOUT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMI_RH_LOCKOUT(ptr, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:136,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - digest
    argTypes:
    - BYTE*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: pack_TPM2B_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 1
    functionsReached:
    - pack_UINT16
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_DIGEST(BYTE* ptr, const TPM2B_DIGEST *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:144,1
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - digest
    argTypes:
    - BYTE*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: unpack_TPM2B_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 1
    functionsReached:
    - unpack_UINT16
    - unpack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2B_DIGEST(BYTE* ptr, TPM2B_DIGEST *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_ST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:152,1
    - Dst: pack_TPMI_RH_HIERACHY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:153,1
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - ticket
    argTypes:
    - BYTE*
    - TPMT_TK_CREATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: pack_TPMT_TK_CREATION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    - pack_TPM_ST
    - pack_TPMI_RH_HIERACHY
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMT_TK_CREATION(BYTE* ptr,const TPMT_TK_CREATION *ticket
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM_ST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:161,1
    - Dst: unpack_TPMI_RH_HIERACHY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:162,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - ticket
    argTypes:
    - BYTE*
    - TPMT_TK_CREATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: unpack_TPMT_TK_CREATION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM_ST
    - unpack_TPMI_RH_HIERACHY
    - unpack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMT_TK_CREATION(BYTE* ptr, TPMT_TK_CREATION *ticket
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:170,1
    - Dst: pack_TPM_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - name
    argTypes:
    - BYTE*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: pack_TPM2B_NAME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_TPM_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_NAME(BYTE* ptr,const TPM2B_NAME *name )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:178,1
    - Dst: unpack_TPM_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - name
    argTypes:
    - BYTE*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: unpack_TPM2B_NAME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM_BUFFER
    - unpack_UINT16
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2B_NAME(BYTE* ptr, TPM2B_NAME *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - nonce
    argTypes:
    - BYTE*
    - TPM2B_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: pack_TPM2B_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_NONCE(BYTE* ptr, const TPM2B_NONCE *nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - nonce
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: unpack_TPM2B_NONCE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2B_NONCE(ptr, nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - auth
    argTypes:
    - BYTE*
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: pack_TPM2B_AUTH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_AUTH(BYTE* ptr, const TPM2B_AUTH *auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: unpack_TPM2B_AUTH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2B_AUTH(ptr, auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPM2B_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: pack_TPM2B_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_DATA(BYTE* ptr, const TPM2B_DATA *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: unpack_TPM2B_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2B_DATA(ptr, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPM2B_SENSITIVE_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: pack_TPM2B_SENSITIVE_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_SENSITIVE_DATA(BYTE* ptr, const TPM2B_SENSITIVE_DATA
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - data
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: unpack_TPM2B_SENSITIVE_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2B_SENSITIVE_DATA(ptr, data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - rsa
    argTypes:
    - BYTE*
    - TPM2B_PUBLIC_KEY_RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: pack_TPM2B_PUBLIC_KEY_RSA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_PUBLIC_KEY_RSA(BYTE* ptr, const TPM2B_PUBLIC_KEY_RSA
      *rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - rsa
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: unpack_TPM2B_PUBLIC_KEY_RSA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPM2B_PUBLIC_KEY_RSA(ptr, rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:226,1
    - Dst: pack_TPM_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - Private
    argTypes:
    - BYTE*
    - TPM2B_PRIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: pack_TPM2B_PRIVATE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_TPM_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_PRIVATE(BYTE* ptr, const TPM2B_PRIVATE *Private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:234,1
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - Private
    argTypes:
    - BYTE*
    - TPM2B_PRIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: unpack_TPM2B_PRIVATE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    - unpack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2B_PRIVATE(BYTE* ptr, TPM2B_PRIVATE *Private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:244,1
    - Dst: pack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:245,1
    - Dst: pack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - sel
    - count
    argTypes:
    - BYTE*
    - TPMS_PCR_SELECTION*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 249
    functionName: pack_TPMS_PCR_SELECTION_ARRAY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMI_ALG_HASH
    - pack_BYTE
    - pack_BUFFER
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_PCR_SELECTION_ARRAY(BYTE* ptr, const TPMS_PCR_SELECTION
      *sel, UINT32 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:256,1
    - Dst: unpack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:257,1
    - Dst: unpack_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - sel
    - count
    argTypes:
    - BYTE*
    - TPMS_PCR_SELECTION*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: unpack_TPMS_PCR_SELECTION_ARRAY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_BYTE
    - unpack_BUFFER
    - unpack_TPMI_ALG_HASH
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMS_PCR_SELECTION_ARRAY(BYTE* ptr, TPMS_PCR_SELECTION
      *sel, UINT32 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:266,1
    - Dst: pack_TPMS_PCR_SELECTION_ARRAY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - sel
    argTypes:
    - BYTE*
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: pack_TPML_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPMS_PCR_SELECTION_ARRAY
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPML_PCR_SELECTION(BYTE* ptr, const TPML_PCR_SELECTION
      *sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:274,1
    - Dst: unpack_TPMS_PCR_SELECTION_ARRAY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - sel
    argTypes:
    - BYTE*
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: unpack_TPML_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT32
    - unpack_TPMS_PCR_SELECTION_ARRAY
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPML_PCR_SELECTION(BYTE* ptr, TPML_PCR_SELECTION *sel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:283,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - digest
    argTypes:
    - BYTE*
    - TPML_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: unpack_TPML_DIGEST
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT32
    - unpack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPML_DIGEST(BYTE* ptr,TPML_DIGEST *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:294,1
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:295,1
    - Dst: pack_TPMA_LOCALITY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:296,1
    - Dst: pack_TPM_ALG_ID
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:297,1
    - Dst: pack_TPM2B_NAME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:298,1
    - Dst: pack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPMS_CREATION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 291
    functionDepth: 5
    functionLinenumber: 291
    functionLinenumberEnd: 301
    functionName: pack_TPMS_CREATION_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM_ALG_ID
    - pack_TPML_PCR_SELECTION
    - pack_TPM2B_DATA
    - pack_TPMA_LOCALITY
    - pack_TPM2B_DIGEST
    - pack_TPM2B_NAME
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_CREATION_DATA(BYTE* ptr,const TPMS_CREATION_DATA *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:306,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:307,1
    - Dst: unpack_TPMA_LOCALITY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:308,1
    - Dst: unpack_TPM_ALG_ID
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:309,1
    - Dst: unpack_TPM2B_NAME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:310,1
    - Dst: unpack_TPM2B_NAME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:311,1
    - Dst: unpack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPMS_CREATION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 4
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: unpack_TPMS_CREATION_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM2B_DATA
    - unpack_TPM2B_DIGEST
    - unpack_TPM_ALG_ID
    - unpack_TPM2B_NAME
    - unpack_TPMA_LOCALITY
    - unpack_TPML_PCR_SELECTION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMS_CREATION_DATA(BYTE* ptr, TPMS_CREATION_DATA *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:319,1
    - Dst: pack_TPMS_CREATION_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPM2B_CREATION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 6
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: pack_TPM2B_CREATION_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_TPMS_CREATION_DATA
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_CREATION_DATA(BYTE* ptr, const TPM2B_CREATION_DATA
      *data )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:327,1
    - Dst: unpack_TPMS_CREATION_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - data
    argTypes:
    - BYTE*
    - TPM2B_CREATION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 5
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: unpack_TPM2B_CREATION_DATA
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    - unpack_TPMS_CREATION_DATA
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2B_CREATION_DATA(BYTE* ptr, TPM2B_CREATION_DATA *
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_AUTH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:335,1
    - Dst: pack_TPM2B_SENSITIVE_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - create
    argTypes:
    - BYTE*
    - TPMS_SENSITIVE_CREATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: pack_TPMS_SENSITIVE_CREATE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_SENSITIVE_DATA
    - pack_TPM2B_AUTH
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_SENSITIVE_CREATE(BYTE* ptr, const TPMS_SENSITIVE_CREATE
      *create)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMS_SENSITIVE_CREATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:345,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - create
    argTypes:
    - BYTE*
    - TPM2B_SENSITIVE_CREATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: pack_TPM2B_SENSITIVE_CREATE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_TPMS_SENSITIVE_CREATE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_SENSITIVE_CREATE(BYTE* ptr, const TPM2B_SENSITIVE_CREATE
      *create)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:356,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:359,1
    - Dst: pack_TPMI_ALG_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - p
    - sel
    argTypes:
    - BYTE*
    - TPMU_SYM_MODE*
    - TPMI_ALG_SYM_OBJECT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: pack_TPMU_SYM_MODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMI_ALG_SYM_MODE
    - assert
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMU_SYM_MODE(BYTE* ptr, const TPMU_SYM_MODE *p,\n                                const
      TPMI_ALG_SYM_OBJECT *sel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_ALG_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:375,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:378,1
    - Dst: unpack_TPMI_ALG_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - p
    - sel
    argTypes:
    - BYTE*
    - TPMU_SYM_MODE*
    - TPMI_ALG_SYM_OBJECT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 387
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 387
    functionName: unpack_TPMU_SYM_MODE
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - unpack_TPMI_ALG_SYM_MODE
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * unpack_TPMU_SYM_MODE(BYTE* ptr, TPMU_SYM_MODE *p,\n                                  const
      TPMI_ALG_SYM_OBJECT *sel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_AES_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:395,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:398,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:401,1
    - Dst: pack_TPM_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - p
    - sel
    argTypes:
    - BYTE*
    - TPMU_SYM_KEY_BITS*
    - TPMI_ALG_SYM_OBJECT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: pack_TPMU_SYM_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMI_AES_KEY_BITS
    - assert
    - pack_TPM_KEY_BITS
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMU_SYM_KEY_BITS(BYTE* ptr, const TPMU_SYM_KEY_BITS *p,\n
      \                                   const TPMI_ALG_SYM_OBJECT *sel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_AES_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:417,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:420,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:423,1
    - Dst: unpack_TPM_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - p
    - sel
    argTypes:
    - BYTE*
    - TPMU_SYM_KEY_BITS*
    - TPMI_ALG_SYM_OBJECT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 431
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 431
    functionName: unpack_TPMU_SYM_KEY_BITS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - unpack_TPM_KEY_BITS
    - unpack_TPMI_AES_KEY_BITS
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * unpack_TPMU_SYM_KEY_BITS(BYTE* ptr, TPMU_SYM_KEY_BITS *p,\n
      \                                     const TPMI_ALG_SYM_OBJECT *sel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_SYM_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:436,1
    - Dst: pack_TPMU_SYM_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:437,1
    - Dst: pack_TPMU_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMT_SYM_DEF_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: pack_TPMT_SYM_DEF_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMI_ALG_SYM_OBJECT
    - pack_TPMU_SYM_KEY_BITS
    - pack_TPMU_SYM_MODE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMT_SYM_DEF_OBJECT(BYTE* ptr, const TPMT_SYM_DEF_OBJECT
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_ALG_SYM_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:445,1
    - Dst: unpack_TPMU_SYM_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:446,1
    - Dst: unpack_TPMU_SYM_MODE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMT_SYM_DEF_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 449
    functionName: unpack_TPMT_SYM_DEF_OBJECT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMU_SYM_KEY_BITS
    - unpack_TPMU_SYM_MODE
    - unpack_TPMI_ALG_SYM_OBJECT
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMT_SYM_DEF_OBJECT(BYTE *ptr, TPMT_SYM_DEF_OBJECT *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: pack_TPMS_SCHEME_OAEP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pack_TPMS_SCHEME_OAEP(p, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    functionName: unpack_TPMS_SCHEME_OAEP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unpack_TPMS_SCHEME_OAEP(p, t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:461,1
    - Dst: pack_TPMS_SCHEME_OAEP
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:466,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ptr
    - p
    - s
    argTypes:
    - BYTE*
    - TPMU_ASYM_SCHEME*
    - TPMI_ALG_RSA_SCHEME*
    assertStmts:
    - condition: (false || "TPM2_ALG_RSASSA")
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false || "DEFAULT")
      pos:
        line_end: 471
        line_start: 471
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 475
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 475
    functionName: pack_TPMU_ASYM_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - pack_TPMS_SCHEME_OAEP
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMU_ASYM_SCHEME(BYTE *ptr, const TPMU_ASYM_SCHEME *p,\n
      \                                  const TPMI_ALG_RSA_SCHEME *s)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:484,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:485,1
    - Dst: unpack_TPMS_SCHEME_OAEP
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:490,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:496,1
    - Dst: unpack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - p
    - s
    argTypes:
    - BYTE*
    - TPMU_ASYM_SCHEME*
    - TPMI_ALG_RSA_SCHEME*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 500
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 500
    functionName: unpack_TPMU_ASYM_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMS_SCHEME_OAEP
    - unpack_TPMI_ALG_HASH
    - assert
    - printf
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * unpack_TPMU_ASYM_SCHEME(BYTE *ptr, TPMU_ASYM_SCHEME *p,\n                                     const
      TPMI_ALG_RSA_SCHEME *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_RSA_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:505,1
    - Dst: pack_TPMU_ASYM_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMT_RSA_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: pack_TPMT_RSA_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMU_ASYM_SCHEME
    - pack_TPMI_ALG_RSA_SCHEME
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMT_RSA_SCHEME(BYTE* ptr, const TPMT_RSA_SCHEME *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_ALG_RSA_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:513,1
    - Dst: unpack_TPMU_ASYM_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMT_RSA_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: unpack_TPMT_RSA_SCHEME
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMU_ASYM_SCHEME
    - unpack_TPMI_ALG_RSA_SCHEME
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMT_RSA_SCHEME(BYTE* ptr, TPMT_RSA_SCHEME *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_RSA_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:521,1
    - Dst: pack_TPMU_ASYM_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMT_RSA_DECRYPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: pack_TPMT_RSA_DECRYPT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMU_ASYM_SCHEME
    - pack_TPMI_ALG_RSA_SCHEME
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMT_RSA_DECRYPT(BYTE* ptr, const TPMT_RSA_DECRYPT *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMT_SYM_DEF_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:529,1
    - Dst: pack_TPMT_RSA_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:530,1
    - Dst: pack_TPMI_RSA_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:531,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMS_RSA_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 534
    functionName: pack_TPMS_RSA_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPMI_RSA_KEY_BITS
    - pack_TPMT_RSA_SCHEME
    - pack_TPMT_SYM_DEF_OBJECT
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_RSA_PARMS(BYTE* ptr, const TPMS_RSA_PARMS *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMT_SYM_DEF_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:539,1
    - Dst: unpack_TPMT_RSA_SCHEME
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:540,1
    - Dst: unpack_TPMI_RSA_KEY_BITS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:541,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - p
    argTypes:
    - BYTE*
    - TPMS_RSA_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 544
    functionName: unpack_TPMS_RSA_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMT_SYM_DEF_OBJECT
    - unpack_TPMT_RSA_SCHEME
    - unpack_TPMI_RSA_KEY_BITS
    - unpack_UINT32
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMS_RSA_PARMS(BYTE *ptr, TPMS_RSA_PARMS *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:552,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:554,1
    - Dst: pack_TPMS_RSA_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:556,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:558,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - param
    - selector
    argTypes:
    - BYTE*
    - TPMU_PUBLIC_PARMS*
    - TPMI_ALG_PUBLIC*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 551
        line_start: 551
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 553
        line_start: 553
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 559
        line_start: 559
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 4
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: pack_TPMU_PUBLIC_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - pack_TPMS_RSA_PARMS
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMU_PUBLIC_PARMS(BYTE* ptr, const TPMU_PUBLIC_PARMS *param,\n
      \                                   const TPMI_ALG_PUBLIC *selector)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:570,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:572,1
    - Dst: unpack_TPMS_RSA_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:574,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:576,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - param
    - selector
    argTypes:
    - BYTE*
    - TPMU_PUBLIC_PARMS*
    - TPMI_ALG_PUBLIC*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    - condition: (false)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 580
      start: 564
    functionDepth: 5
    functionLinenumber: 564
    functionLinenumberEnd: 580
    functionName: unpack_TPMU_PUBLIC_PARMS
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - unpack_TPMS_RSA_PARMS
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * unpack_TPMU_PUBLIC_PARMS(BYTE* ptr, TPMU_PUBLIC_PARMS *param,\n
      \                                     const TPMI_ALG_PUBLIC *selector)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - point
    argTypes:
    - BYTE*
    - TPMS_ECC_POINT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: pack_TPMS_ECC_POINT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_ECC_POINT(BYTE* ptr, const TPMS_ECC_POINT *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - point
    argTypes:
    - BYTE*
    - TPMS_ECC_POINT*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 591
        line_start: 591
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: unpack_TPMS_ECC_POINT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMS_ECC_POINT(BYTE* ptr, TPMS_ECC_POINT *point)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:602,1
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:604,1
    - Dst: pack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:606,1
    - Dst: pack_TPMS_ECC_POINT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:608,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - id
    - selector
    argTypes:
    - BYTE*
    - TPMU_PUBLIC_ID*
    - TPMI_ALG_PUBLIC*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 612
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 612
    functionName: pack_TPMU_PUBLIC_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - assert
    - pack_TPM2B_DIGEST
    - pack_TPMS_ECC_POINT
    - pack_TPM2B_PUBLIC_KEY_RSA
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMU_PUBLIC_ID(BYTE* ptr, const TPMU_PUBLIC_ID *id,\n
      \                                const TPMI_ALG_PUBLIC *selector)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:619,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:621,1
    - Dst: unpack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:623,1
    - Dst: unpack_TPMS_ECC_POINT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:625,1
    - Dst: assert
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - id
    - selector
    argTypes:
    - BYTE*
    - TPMU_PUBLIC_ID*
    - TPMI_ALG_PUBLIC*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    constantsTouched: []
    func_position:
      end: 629
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 629
    functionName: unpack_TPMU_PUBLIC_ID
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMS_ECC_POINT
    - assert
    - unpack_TPM2B_PUBLIC_KEY_RSA
    - unpack_TPM2B_DIGEST
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMU_PUBLIC_ID(BYTE* ptr, TPMU_PUBLIC_ID *id, TPMI_ALG_PUBLIC
      *selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:634,1
    - Dst: pack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:635,1
    - Dst: pack_TPMA_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:636,1
    - Dst: pack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:637,1
    - Dst: pack_TPMU_PUBLIC_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:638,1
    - Dst: pack_TPMU_PUBLIC_ID
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - public
    argTypes:
    - BYTE*
    - TPMT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 631
    functionDepth: 5
    functionLinenumber: 631
    functionLinenumberEnd: 641
    functionName: pack_TPMT_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMU_PUBLIC_PARMS
    - pack_TPMI_ALG_PUBLIC
    - pack_TPMA_OBJECT
    - pack_TPMU_PUBLIC_ID
    - pack_TPM2B_DIGEST
    - pack_TPMI_ALG_HASH
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMT_PUBLIC(BYTE* ptr, const TPMT_PUBLIC *public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPMI_ALG_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:646,1
    - Dst: unpack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:647,1
    - Dst: unpack_TPMA_OBJECT
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:648,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:649,1
    - Dst: unpack_TPMU_PUBLIC_PARMS
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:650,1
    - Dst: unpack_TPMU_PUBLIC_ID
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - public
    argTypes:
    - BYTE*
    - TPMT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 643
    functionDepth: 6
    functionLinenumber: 643
    functionLinenumberEnd: 653
    functionName: unpack_TPMT_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPMI_ALG_PUBLIC
    - unpack_TPMU_PUBLIC_PARMS
    - unpack_TPMI_ALG_HASH
    - unpack_TPMA_OBJECT
    - unpack_TPM2B_DIGEST
    - unpack_TPMU_PUBLIC_ID
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPMT_PUBLIC(BYTE* ptr, TPMT_PUBLIC *public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMT_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:660,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - public
    argTypes:
    - BYTE*
    - TPM2B_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: pack_TPM2B_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT16
    - pack_TPMT_PUBLIC
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2B_PUBLIC(BYTE* ptr, const TPM2B_PUBLIC *public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:668,1
    - Dst: unpack_TPMT_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - public
    argTypes:
    - BYTE*
    - TPM2B_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 665
    functionDepth: 7
    functionLinenumber: 665
    functionLinenumberEnd: 671
    functionName: unpack_TPM2B_PUBLIC
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_UINT16
    - unpack_TPMT_PUBLIC
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2B_PUBLIC(BYTE* ptr, TPM2B_PUBLIC *public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMI_ALG_HASH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:676,1
    - Dst: pack_BYTE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:677,1
    - Dst: pack_BYTE_ARRAY
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - selection
    argTypes:
    - BYTE*
    - TPMS_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 680
    functionName: pack_TPMS_PCR_SELECTION
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMI_ALG_HASH
    - pack_BYTE
    - pack_BYTE_ARRAY
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPMS_PCR_SELECTION(BYTE* ptr, const TPMS_PCR_SELECTION
      *selection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPMS_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - selections
    - cnt
    argTypes:
    - BYTE*
    - TPMS_PCR_SELECTION*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 690
    functionName: pack_TPMS_PCR_SELECTION_Array
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPMS_PCR_SELECTION
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * pack_TPMS_PCR_SELECTION_Array(BYTE* ptr, const TPMS_PCR_SELECTION
      *selections,\n                                           const UINT32 cnt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM_RH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:697,1
    - Dst: pack_TPM2B_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:698,1
    - Dst: pack_TPMA_SESSION
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:699,1
    - Dst: pack_TPM2B_AUTH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:700,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - auth
    argTypes:
    - BYTE*
    - TPM_AuthArea*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: pack_TPM_AuthArea
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPMA_SESSION
    - pack_TPM_RH
    - pack_TPM2B_NONCE
    - pack_TPM2B_AUTH
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM_AuthArea(BYTE* ptr, const TPM_AuthArea *auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:708,1
    - Dst: unpack_TPM_RH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:709,1
    - Dst: unpack_TPM2B_NONCE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:710,1
    - Dst: unpack_TPMA_SESSION
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:711,1
    - Dst: unpack_TPM2B_AUTH
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - auth
    argTypes:
    - BYTE*
    - TPM_AuthArea*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 714
    functionName: unpack_TPM_AuthArea
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM2B_AUTH
    - unpack_TPM2B_NONCE
    - unpack_TPM_RH
    - unpack_UINT32
    - unpack_TPMA_SESSION
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM_AuthArea(BYTE* ptr, TPM_AuthArea *auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_TPM2B_PRIVATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:719,1
    - Dst: pack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - key
    argTypes:
    - BYTE*
    - TPM2_RSA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 7
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: pack_TPM2_RSA_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - pack_TPM2B_PUBLIC
    - pack_TPM2B_PRIVATE
    linkageType: ''
    returnType: BYTE
    signature: BYTE * pack_TPM2_RSA_KEY(BYTE* ptr, const TPM2_RSA_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_TPM2B_PRIVATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:727,1
    - Dst: unpack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - key
    argTypes:
    - BYTE*
    - TPM2_RSA_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 724
    functionDepth: 8
    functionLinenumber: 724
    functionLinenumberEnd: 730
    functionName: unpack_TPM2_RSA_KEY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2_marshal.h
    functionUses: 0
    functionsReached:
    - unpack_TPM2B_PRIVATE
    - unpack_TPM2B_PUBLIC
    linkageType: ''
    returnType: BYTE
    signature: BYTE * unpack_TPM2_RSA_KEY(BYTE* ptr, TPM2_RSA_KEY *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TAG
    - ','
    - ORD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: TPM_BEGIN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_BEGIN(TAG, ORD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: TPM_AUTH_BEGIN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HMACkey
    - ','
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: TPM_AUTH1_GEN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH1_GEN(HMACkey, auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HMACkey
    - ','
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: TPM_AUTH2_GEN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH2_GEN(HMACkey, auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: TPM_AUTH_VERIFY_BEGIN
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH_VERIFY_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HMACkey
    - ','
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: TPM_AUTH1_VERIFY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH1_VERIFY(HMACkey, auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HMACkey
    - ','
    - auth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: TPM_AUTH2_VERIFY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH2_VERIFY(HMACkey, auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: TPM_UNPACK_VERIFY
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_UNPACK_VERIFY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: TPM_AUTH_HASH
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH_HASH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: TPM_AUTH_SKIP
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_AUTH_SKIP()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:148,1
    - Dst: pack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:151,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:153,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:154,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:157,1
    - Dst: unpack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:158,1
    - Dst: unpack_TPML_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - pcrSelectionIn
    - pcrUpdateCounter
    - pcrSelectionOut
    - pcrValues
    argTypes:
    - TPML_PCR_SELECTION
    - UINT32*
    - TPML_PCR_SELECTION*
    - TPML_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: TPM2_PCR_Read
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - pack_TPML_PCR_SELECTION
    - TPM_BEGIN
    - TPM_UNPACK_VERIFY
    - unpack_TPML_DIGEST
    - TPM_TRANSMIT
    - unpack_UINT32
    - unpack_TPML_PCR_SELECTION
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Read(TPML_PCR_SELECTION pcrSelectionIn,\n                     UINT32
      *pcrUpdateCounter,\n                     TPML_PCR_SELECTION *pcrSelectionOut,\n
      \                    TPML_DIGEST *pcrValues)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:173,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:176,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:178,1
    - Dst: pack_TPM2B_PRIVATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:179,1
    - Dst: pack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:180,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:182,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:183,1
    - Dst: unpack_TPM_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:186,1
    - Dst: unpack_TPM_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:189,1
    - Dst: unpack_TPM2B_NAME
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - parentHandle
    - inPrivate
    - inPublic
    - objectHandle
    - name
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2B_PRIVATE*
    - TPM2B_PUBLIC*
    - TPM2_HANDLE*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 167
    functionDepth: 7
    functionLinenumber: 167
    functionLinenumberEnd: 199
    functionName: TPM2_Load
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - pack_UINT32
    - unpack_TPM_HANDLE
    - pack_TPM_AuthArea
    - TPM_BEGIN
    - pack_TPM2B_PRIVATE
    - TPM_UNPACK_VERIFY
    - TPM_TRANSMIT
    - unpack_TPM2B_NAME
    - pack_TPM2B_PUBLIC
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Load(TPMI_DH_OBJECT parentHandle,\n                 TPM2B_PRIVATE
      *inPrivate, /* in */\n                 TPM2B_PUBLIC *inPublic, /* in */\n                 TPM2_HANDLE
      *objectHandle, /* out */\n                 TPM2B_NAME *name /* out */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:206,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:209,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:212,1
    - Dst: pack_TPM2B_SENSITIVE_CREATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:215,1
    - Dst: pack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:218,1
    - Dst: pack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:221,1
    - Dst: pack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:224,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:227,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:230,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:232,1
    - Dst: unpack_TPM2B_PRIVATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:234,1
    - Dst: unpack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:235,1
    - Dst: unpack_TPM2B_CREATION_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:236,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:237,1
    - Dst: unpack_TPMT_TK_CREATION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - parentHandle
    - in
    - out
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2_Create_Params_in*
    - TPM2_Create_Params_out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 201
    functionDepth: 8
    functionLinenumber: 201
    functionLinenumberEnd: 247
    functionName: TPM2_Create
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - pack_UINT32
    - unpack_TPM2B_PRIVATE
    - pack_TPM_AuthArea
    - pack_TPML_PCR_SELECTION
    - pack_TPM2B_SENSITIVE_CREATE
    - unpack_TPM2B_DIGEST
    - unpack_TPMT_TK_CREATION
    - TPM_BEGIN
    - pack_TPM2B_DATA
    - TPM_UNPACK_VERIFY
    - TPM_TRANSMIT
    - unpack_UINT32
    - pack_TPM2B_PUBLIC
    - unpack_TPM2B_CREATION_DATA
    - unpack_TPM2B_PUBLIC
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Create(TPMI_DH_OBJECT parentHandle,\n                   TPM2_Create_Params_in
      *in,\n                   TPM2_Create_Params_out *out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:255,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:258,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:261,1
    - Dst: pack_TPM2B_SENSITIVE_CREATE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:264,1
    - Dst: pack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:267,1
    - Dst: pack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:270,1
    - Dst: pack_TPML_PCR_SELECTION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:273,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:276,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:279,1
    - Dst: unpack_TPM_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:282,1
    - Dst: unpack_TPM_HANDLE
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:285,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:287,1
    - Dst: unpack_TPM2B_PUBLIC
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:290,1
    - Dst: unpack_TPM2B_CREATION_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:291,1
    - Dst: unpack_TPM2B_DIGEST
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:292,1
    - Dst: unpack_TPMT_TK_CREATION
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 4
    argNames:
    - primaryHandle
    - in
    - objHandle
    - out
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM2_Create_Params_in*
    - TPM2_HANDLE*
    - TPM2_Create_Params_out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 249
    functionDepth: 8
    functionLinenumber: 249
    functionLinenumberEnd: 303
    functionName: TPM2_CreatePrimary
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - pack_UINT32
    - unpack_TPM_HANDLE
    - pack_TPM_AuthArea
    - pack_TPML_PCR_SELECTION
    - pack_TPM2B_SENSITIVE_CREATE
    - unpack_TPM2B_DIGEST
    - unpack_TPMT_TK_CREATION
    - TPM_BEGIN
    - pack_TPM2B_DATA
    - TPM_UNPACK_VERIFY
    - TPM_TRANSMIT
    - unpack_UINT32
    - pack_TPM2B_PUBLIC
    - unpack_TPM2B_CREATION_DATA
    - unpack_TPM2B_PUBLIC
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_CreatePrimary(TPMI_RH_HIERARCHY primaryHandle,\n                          TPM2_Create_Params_in
      *in,\n                          TPM2_HANDLE *objHandle,\n                          TPM2_Create_Params_out
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:307,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:308,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:309,1
    - Dst: pack_TPM2B_AUTH
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:310,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:311,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - authHandle
    - newAuth
    argTypes:
    - TPM2I_RH_HIERARCHY_AUTH
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: TPM2_HierachyChangeAuth
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPM_AuthArea
    - TPM_BEGIN
    - TPM_UNPACK_VERIFY
    - TPM_TRANSMIT
    - pack_TPM2B_AUTH
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_HierachyChangeAuth(TPM2I_RH_HIERARCHY_AUTH authHandle,
      TPM2B_AUTH *newAuth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:324,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:326,1
    - Dst: pack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:327,1
    - Dst: pack_TPMT_RSA_DECRYPT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:328,1
    - Dst: pack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:329,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:331,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:332,1
    - Dst: unpack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - keyHandle
    - message
    - inScheme
    - label
    - outData
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2B_PUBLIC_KEY_RSA*
    - TPMT_RSA_DECRYPT*
    - TPM2B_DATA*
    - TPM2B_PUBLIC_KEY_RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 338
    functionName: TPM2_RSA_ENCRYPT
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - TPM_BEGIN
    - pack_TPM2B_DATA
    - TPM_UNPACK_VERIFY
    - pack_TPM2B_PUBLIC_KEY_RSA
    - pack_TPMT_RSA_DECRYPT
    - TPM_TRANSMIT
    - unpack_TPM2B_PUBLIC_KEY_RSA
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_RSA_ENCRYPT(TPMI_DH_OBJECT keyHandle,\n                        TPM2B_PUBLIC_KEY_RSA
      *message,\n                        TPMT_RSA_DECRYPT *inScheme,\n                        TPM2B_DATA
      *label,\n                        TPM2B_PUBLIC_KEY_RSA *outData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:352,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:355,1
    - Dst: TPM2_RSA_ENCRYPT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:355,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - keyHandle
    - buf
    - len
    - out
    argTypes:
    - TPMI_DH_OBJECT
    - void*
    - UINT32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 340
    functionDepth: 5
    functionLinenumber: 340
    functionLinenumberEnd: 360
    functionName: TPM2_Bind
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - TPM2_RSA_ENCRYPT
    - memcpy
    - TPMTRYRETURN
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Bind(TPMI_DH_OBJECT keyHandle,\n                 void
      *buf,\n                 UINT32 len,\n                 void *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:370,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:371,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:372,1
    - Dst: pack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:373,1
    - Dst: pack_TPMT_RSA_DECRYPT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:374,1
    - Dst: pack_TPM2B_DATA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:375,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:377,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:378,1
    - Dst: unpack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:380,1
    - Dst: unpack_TPM2B_PUBLIC_KEY_RSA
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - keyHandle
    - cipherText
    - inScheme
    - label
    - message
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2B_PUBLIC_KEY_RSA*
    - TPMT_RSA_DECRYPT*
    - TPM2B_DATA*
    - TPM2B_PUBLIC_KEY_RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 387
    functionName: TPM2_RSA_Decrypt
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPM_AuthArea
    - TPM_BEGIN
    - pack_TPM2B_DATA
    - TPM_UNPACK_VERIFY
    - pack_TPM2B_PUBLIC_KEY_RSA
    - pack_TPMT_RSA_DECRYPT
    - TPM_TRANSMIT
    - unpack_UINT32
    - unpack_TPM2B_PUBLIC_KEY_RSA
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_RSA_Decrypt(TPMI_DH_OBJECT keyHandle,\n                        TPM2B_PUBLIC_KEY_RSA
      *cipherText,\n                        TPMT_RSA_DECRYPT *inScheme,\n                        TPM2B_DATA
      *label,\n                        TPM2B_PUBLIC_KEY_RSA *message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:401,1
    - Dst: TPMTRYRETURN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:405,1
    - Dst: TPM2_RSA_Decrypt
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:405,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - keyHandle
    - ilen
    - in
    - olen
    - out
    argTypes:
    - TPMI_DH_OBJECT
    - UINT32
    - void*
    - UINT32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 389
    functionDepth: 6
    functionLinenumber: 389
    functionLinenumberEnd: 412
    functionName: TPM2_UnBind
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - TPMTRYRETURN
    - TPM2_RSA_Decrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_UnBind(TPMI_DH_OBJECT keyHandle,\n                   UINT32
      ilen,\n                   void *in,\n                   UINT32 *olen,\n                   void
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:416,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:418,1
    - Dst: pack_TPM_AuthArea
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:419,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:421,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: TPM2_CLEAR
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 0
    functionsReached:
    - pack_UINT32
    - pack_TPM_AuthArea
    - TPM_BEGIN
    - TPM_UNPACK_VERIFY
    - TPM_TRANSMIT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_CLEAR(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:431,1
    - Dst: pack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:438,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:440,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:441,1
    - Dst: unpack_UINT16
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:443,1
    - Dst: unpack_TPM_BUFFER
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - bytesRequested
    - randomBytes
    argTypes:
    - UINT32*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 449
    functionName: TPM2_GetRandom
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 2
    functionsReached:
    - unpack_UINT16
    - unpack_TPM_BUFFER
    - TPM_BEGIN
    - TPM_UNPACK_VERIFY
    - pack_UINT16
    - TPM_TRANSMIT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_GetRandom(UINT32 * bytesRequested, BYTE * randomBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BEGIN
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:453,1
    - Dst: pack_UINT32
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:455,1
    - Dst: TPM_TRANSMIT
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:457,1
    - Dst: TPM_UNPACK_VERIFY
      Src: /src/xen/stubdom/vtpmmgr/tpm2.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - flushHandle
    argTypes:
    - TPMI_DH_CONTEXT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: TPM2_FlushContext
    functionSourceFile: /src/xen/stubdom/vtpmmgr/tpm2.c
    functionUses: 1
    functionsReached:
    - pack_UINT32
    - TPM_BEGIN
    - TPM_TRANSMIT
    - TPM_UNPACK_VERIFY
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_FlushContext(TPMI_DH_CONTEXT flushHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctr_drbg_random
      Src: /src/xen/stubdom/vtpmmgr/vtpmmgr.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bytes
    - num_bytes
    argTypes:
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: vtpmmgr_rand
    functionSourceFile: /src/xen/stubdom/vtpmmgr/vtpmmgr.h
    functionUses: 6
    functionsReached:
    - ctr_drbg_random
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpmmgr_rand(unsigned char* bytes, size_t num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: TRYFAILGOTO
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYFAILGOTO(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: TRYFAILGOTOMSG
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYFAILGOTOMSG(C, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ret
    - ','
    - fname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: CHECKSTATUSGOTO
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKSTATUSGOTO(ret, fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tpm_marshal_UINT16
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:53,1
    - Dst: tpm_marshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:54,1
    - Dst: tpm_marshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - bptr
    - len
    - tag
    - size
    - ord
    argTypes:
    - uint8_t**
    - UINT32*
    - TPM_TAG
    - UINT32
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: pack_header
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - tpm_marshal_UINT32
    - tpm_marshal_UINT16
    linkageType: ''
    returnType: int
    signature: int pack_header(uint8_t** bptr, UINT32* len, TPM_TAG tag, UINT32 size,
      TPM_COMMAND_CODE ord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tpm_unmarshal_UINT16
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:61,1
    - Dst: tpm_unmarshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:62,1
    - Dst: tpm_unmarshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 5
    argNames:
    - bptr
    - len
    - tag
    - size
    - ord
    argTypes:
    - uint8_t**
    - UINT32*
    - TPM_TAG*
    - UINT32*
    - TPM_COMMAND_CODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: unpack_header
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - tpm_unmarshal_UINT32
    - tpm_unmarshal_UINT16
    linkageType: ''
    returnType: int
    signature: int unpack_header(uint8_t** bptr, UINT32* len, TPM_TAG* tag, UINT32*
      size, TPM_COMMAND_CODE* ord)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tpm_unmarshal_UINT16
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:73,1
    - Dst: tpm_malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:90,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:92,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - tpmcmd
    - errorcode
    argTypes:
    - tpmcmd_t*
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 93
    functionName: create_error_response
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - pack_header
    - tpm_unmarshal_UINT16
    - tpm_malloc
    linkageType: ''
    returnType: int
    signature: int create_error_response(tpmcmd_t* tpmcmd, TPM_RESULT errorcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:108,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:109,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:109,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:110,1
    - Dst: tpm_marshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:110,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:113,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:113,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:117,1
    - Dst: unpack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:117,1
    - Dst: CHECKSTATUSGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:120,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:123,1
    - Dst: tpm_unmarshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:123,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:127,1
    - Dst: tpm_unmarshal_BYTE_ARRAY
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:127,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - tpmfront_dev
    - bytes
    - numbytes
    argTypes:
    - struct tpmfront_dev*
    - BYTE*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 135
    functionName: VTPM_GetRandom
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - tpm_unmarshal_UINT32
    - TRYFAILGOTO
    - unpack_header
    - free
    - CHECKSTATUSGOTO
    - tpm_marshal_UINT32
    - pack_header
    - malloc
    - TRYFAILGOTOMSG
    - tpmfront_cmd
    - tpm_unmarshal_BYTE_ARRAY
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT VTPM_GetRandom(struct tpmfront_dev* tpmfront_dev, BYTE*
      bytes, UINT32 *numbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:151,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:152,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:152,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:155,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:156,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:156,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:161,1
    - Dst: unpack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:161,1
    - Dst: CHECKSTATUSGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:164,1
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:170,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:171,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:175,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - tpmfront_dev
    - data
    - data_length
    argTypes:
    - struct tpmfront_dev*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 179
    functionName: VTPM_LoadHashKey
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - TRYFAILGOTO
    - unpack_header
    - free
    - CHECKSTATUSGOTO
    - pack_header
    - malloc
    - error
    - TRYFAILGOTOMSG
    - tpmfront_cmd
    - info
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT VTPM_LoadHashKey(struct tpmfront_dev* tpmfront_dev, uint8_t**
      data, size_t* data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:195,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:196,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:196,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:197,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:201,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:202,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:202,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:207,1
    - Dst: unpack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:207,1
    - Dst: CHECKSTATUSGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:210,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:214,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - tpmfront_dev
    - data
    - data_length
    argTypes:
    - struct tpmfront_dev*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 218
    functionName: VTPM_SaveHashKey
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - TRYFAILGOTO
    - unpack_header
    - free
    - CHECKSTATUSGOTO
    - pack_header
    - malloc
    - error
    - TRYFAILGOTOMSG
    - tpmfront_cmd
    - info
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT VTPM_SaveHashKey(struct tpmfront_dev* tpmfront_dev, uint8_t*
      data, size_t data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sizeof_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:235,1
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:236,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:237,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:237,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:238,1
    - Dst: tpm_marshal_TPM_NONCE
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:238,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:239,1
    - Dst: tpm_marshal_TPM_PCR_SELECTION
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:239,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:240,1
    - Dst: tpm_marshal_TPM_DEEP_QUOTE_INFO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:240,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:243,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:244,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:244,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:249,1
    - Dst: unpack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:249,1
    - Dst: CHECKSTATUSGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:252,1
    - Dst: tpm_malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:255,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:256,1
    - Dst: tpm_unmarshal_BYTE_ARRAY
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:256,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:260,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - data
    - sel
    - extraInfoFlags
    - quote_blob_size
    - quote_blob
    argTypes:
    - TPM_NONCE*
    - TPM_PCR_SELECTION*
    - UINT32
    - UINT32*
    - BYTE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 264
    functionName: VTPM_GetParentQuote
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - tpm_malloc
    - TRYFAILGOTO
    - tpm_marshal_TPM_PCR_SELECTION
    - unpack_header
    - free
    - tpm_marshal_TPM_DEEP_QUOTE_INFO
    - pack_header
    - malloc
    - CHECKSTATUSGOTO
    - error
    - sizeof_TPM_PCR_SELECTION
    - tpm_marshal_TPM_NONCE
    - tpm_unmarshal_BYTE_ARRAY
    - TRYFAILGOTOMSG
    - tpmfront_cmd
    - info
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT VTPM_GetParentQuote(TPM_NONCE *data, TPM_PCR_SELECTION
      *sel,\n                               UINT32 extraInfoFlags, UINT32 *quote_blob_size,
      BYTE **quote_blob)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:280,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:281,1
    - Dst: pack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:281,1
    - Dst: TRYFAILGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:282,1
    - Dst: tpm_marshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:282,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:285,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:285,1
    - Dst: TRYFAILGOTOMSG
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:288,1
    - Dst: unpack_header
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:288,1
    - Dst: CHECKSTATUSGOTO
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:291,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:294,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpm_cmd.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - tpmfront_dev
    - pcrIndex
    - outDigest
    argTypes:
    - struct tpmfront_dev*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 302
    functionName: VTPM_PCRRead
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_cmd.c
    functionUses: 0
    functionsReached:
    - TRYFAILGOTO
    - unpack_header
    - free
    - CHECKSTATUSGOTO
    - tpm_marshal_UINT32
    - pack_header
    - malloc
    - TRYFAILGOTOMSG
    - tpmfront_cmd
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT VTPM_PCRRead(struct tpmfront_dev* tpmfront_dev, UINT32 pcrIndex,
      BYTE* outDigest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpm_pcrs.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pcrIndex
    - val
    argTypes:
    - unsigned int
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: write_pcr_direct
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_pcrs.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int write_pcr_direct(unsigned int pcrIndex, uint8_t* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VTPM_PCRRead
      Src: /src/xen/stubdom/vtpm/vtpm_pcrs.c:34,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm_pcrs.c:35,1
    - Dst: write_pcr_direct
      Src: /src/xen/stubdom/vtpm/vtpm_pcrs.c:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tpmfront_dev
    - pcrs
    argTypes:
    - struct tpmfront_dev*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: vtpm_initialize_hw_pcrs
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm_pcrs.c
    functionUses: 0
    functionsReached:
    - write_pcr_direct
    - error
    - VTPM_PCRRead
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT vtpm_initialize_hw_pcrs(struct tpmfront_dev* tpmfront_dev,
      unsigned long pcrs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:35,1
    - Dst: init_blkfront
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:37,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:38,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:42,1
    - Dst: blkfront_open
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:45,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:46,1
    - Dst: shutdown_blkfront
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:54,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - tpmfront_dev
    argTypes:
    - struct tpmfront_dev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: init_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - shutdown_blkfront
    - error
    - blkfront_open
    - init_blkfront
    - info
    linkageType: ''
    returnType: int
    signature: int init_vtpmblk(struct tpmfront_dev* tpmfront_dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: shutdown_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void shutdown_vtpmblk(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: debug
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:70,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:73,1
    - Dst: cpu_to_be32
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:77,1
    - Dst: lseek
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:79,1
    - Dst: write
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:80,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:81,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:81,1
    - Dst: write
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:84,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:85,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:85,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - data
    - data_length
    - slot
    argTypes:
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 92
    functionName: write_vtpmblk_raw
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - debug
    - cpu_to_be32
    - error
    - lseek
    - strerror
    - info
    - write
    linkageType: ''
    returnType: int
    signature: int write_vtpmblk_raw(uint8_t *data, size_t data_length, int slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:99,1
    - Dst: read
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:100,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:101,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:101,1
    - Dst: cpu_to_be32
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:104,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:106,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:110,1
    - Dst: tpm_malloc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:114,1
    - Dst: read
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:115,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:116,1
    - Dst: strerror
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:116,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - data
    - data_length
    - slot
    argTypes:
    - uint8_t**
    - size_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 122
    functionName: read_vtpmblk_raw
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - read
    - tpm_malloc
    - cpu_to_be32
    - error
    - lseek
    - strerror
    - info
    linkageType: ''
    returnType: int
    signature: int read_vtpmblk_raw(uint8_t **data, size_t *data_length, int slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tpm_get_extern_random_bytes
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:145,1
    - Dst: tpm_get_extern_random_bytes
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:150,1
    - Dst: tpm_marshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:152,1
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:157,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:162,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:165,1
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:170,1
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:177,1
    - Dst: aes_setkey_enc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:181,1
    - Dst: aes_crypt_cbc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:184,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 5
    argNames:
    - clear
    - clear_len
    - cipher
    - cipher_len
    - symkey
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t**
    - size_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 191
    functionName: encrypt_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - free
    - tpm_marshal_UINT32
    - malloc
    - tpm_get_extern_random_bytes
    - memset
    - aes_setkey_enc
    - aes_crypt_cbc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int encrypt_vtpmblk(uint8_t* clear, size_t clear_len, uint8_t** cipher,
      size_t* cipher_len, uint8_t* symkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:204,1
    - Dst: malloc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:209,1
    - Dst: tpm_unmarshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:217,1
    - Dst: aes_setkey_dec
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:221,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:225,1
    - Dst: aes_crypt_cbc
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - cipher
    - cipher_len
    - clear
    - clear_len
    - symkey
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t**
    - size_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 235
    functionName: decrypt_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - tpm_unmarshal_UINT32
    - aes_setkey_dec
    - error
    - malloc
    - aes_crypt_cbc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int decrypt_vtpmblk(uint8_t* cipher, size_t cipher_len, uint8_t** clear,
      size_t* clear_len, uint8_t* symkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: encrypt_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:253,1
    - Dst: write_vtpmblk_raw
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:257,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:261,1
    - Dst: VTPM_SaveHashKey
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:264,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:270,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - tpmfront_dev
    - data
    - data_length
    argTypes:
    - struct tpmfront_dev*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 272
    functionName: write_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - encrypt_vtpmblk
    - free
    - write_vtpmblk_raw
    - sha1
    - VTPM_SaveHashKey
    linkageType: ''
    returnType: int
    signature: int write_vtpmblk(struct tpmfront_dev* tpmfront_dev, uint8_t* data,
      size_t data_length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VTPM_LoadHashKey
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:285,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:289,1
    - Dst: debug
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:296,1
    - Dst: read_vtpmblk_raw
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:297,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:302,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:303,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:306,1
    - Dst: debug
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:310,1
    - Dst: read_vtpmblk_raw
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:311,1
    - Dst: sha1
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:316,1
    - Dst: memcmp
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:317,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:322,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:323,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:325,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:327,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:328,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:330,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:332,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:333,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:335,1
    - Dst: printf
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:337,1
    - Dst: decrypt_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:344,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:351,1
    - Dst: free
      Src: /src/xen/stubdom/vtpm/vtpmblk.c:352,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 3
    argNames:
    - tpmfront_dev
    - data
    - data_length
    argTypes:
    - struct tpmfront_dev*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 354
    functionName: read_vtpmblk
    functionSourceFile: /src/xen/stubdom/vtpm/vtpmblk.c
    functionUses: 0
    functionsReached:
    - debug
    - decrypt_vtpmblk
    - memcmp
    - free
    - VTPM_LoadHashKey
    - error
    - sha1
    - printf
    - read_vtpmblk_raw
    linkageType: ''
    returnType: int
    signature: int read_vtpmblk(struct tpmfront_dev* tpmfront_dev, uint8_t** data,
      size_t *data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ctr_drbg_random
      Src: /src/xen/stubdom/vtpm/vtpm.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: vtpm_get_extern_random_bytes
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - ctr_drbg_random
    linkageType: ''
    returnType: void
    signature: void vtpm_get_extern_random_bytes(void *buf, size_t nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpm.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - data_length
    argTypes:
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: vtpm_read_from_file
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - read_vtpmblk
    linkageType: ''
    returnType: int
    signature: int vtpm_read_from_file(uint8_t **data, size_t *data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpm.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - data_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: vtpm_write_to_file
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - write_vtpmblk
    linkageType: ''
    returnType: int
    signature: int vtpm_write_to_file(uint8_t *data, size_t data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: vtpm_extern_init_fake
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vtpm_extern_init_fake(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: vtpm_extern_release_fake
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vtpm_extern_release_fake(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/xen/stubdom/vtpm/vtpm.c:84,1
    - Dst: vprintf
      Src: /src/xen/stubdom/vtpm/vtpm.c:85,1
    - Dst: va_end
      Src: /src/xen/stubdom/vtpm/vtpm.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - priority
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: vtpm_log
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - va_start
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void vtpm_log(int priority, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/xen/stubdom/vtpm/vtpm.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: vtpm_get_ticks
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t vtpm_get_ticks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTPM_GetRandom
      Src: /src/xen/stubdom/vtpm/vtpm.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dummy
    - data
    - len
    - olen
    argTypes:
    - void*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: tpm_entropy_source
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - VTPM_GetRandom
    linkageType: ''
    returnType: int
    signature: int tpm_entropy_source(void* dummy, unsigned char* data, size_t len,
      size_t* olen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: entropy_init
      Src: /src/xen/stubdom/vtpm/vtpm.c:112,1
    - Dst: entropy_add_source
      Src: /src/xen/stubdom/vtpm/vtpm.c:113,1
    - Dst: entropy_gather
      Src: /src/xen/stubdom/vtpm/vtpm.c:114,1
    - Dst: ctr_drbg_init
      Src: /src/xen/stubdom/vtpm/vtpm.c:115,1
    - Dst: ctr_drbg_set_prediction_resistance
      Src: /src/xen/stubdom/vtpm/vtpm.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: init_random
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - entropy_init
    - entropy_add_source
    - ctr_drbg_init
    - entropy_gather
    - ctr_drbg_set_prediction_resistance
    linkageType: ''
    returnType: int
    signature: int init_random(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tpm_unmarshal_UINT16
      Src: /src/xen/stubdom/vtpm/vtpm.c:132,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:135,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm.c:136,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:138,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:143,1
    - Dst: tpm_marshal_UINT16
      Src: /src/xen/stubdom/vtpm/vtpm.c:145,1
    - Dst: tpmfront_cmd
      Src: /src/xen/stubdom/vtpm/vtpm.c:146,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 153
    functionName: check_passthru
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - tpmfront_cmd
    - tpm_unmarshal_UINT16
    - info
    - tpm_marshal_UINT16
    linkageType: ''
    returnType: int
    signature: int check_passthru(tpmcmd_t* tpmcmd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tpm_unmarshal_UINT32
      Src: /src/xen/stubdom/vtpm/vtpm.c:166,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - tpmcmd
    argTypes:
    - tpmcmd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: check_ordinal
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - tpm_unmarshal_UINT32
    - error
    linkageType: ''
    returnType: int
    signature: int check_ordinal(tpmcmd_t* tpmcmd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tpmback_get_peercontext
      Src: /src/xen/stubdom/vtpm/vtpm.c:189,1
    - Dst: BUG
      Src: /src/xen/stubdom/vtpm/vtpm.c:190,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:192,1
    - Dst: strstr
      Src: /src/xen/stubdom/vtpm/vtpm.c:195,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:196,1
    - Dst: tpmback_set_opaque
      Src: /src/xen/stubdom/vtpm/vtpm.c:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - domid
    - handle
    argTypes:
    - domid_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: generate_locality_mask
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - BUG
    - tpmback_set_opaque
    - strstr
    - strcmp
    - tpmback_get_peercontext
    linkageType: ''
    returnType: void
    signature: void *generate_locality_mask(domid_t domid, unsigned int handle)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:210,1
    - Dst: tpm_emulator_init
      Src: /src/xen/stubdom/vtpm/vtpm.c:219,1
    - Dst: vtpm_initialize_hw_pcrs
      Src: /src/xen/stubdom/vtpm/vtpm.c:222,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:223,1
    - Dst: tpmback_req_any
      Src: /src/xen/stubdom/vtpm/vtpm.c:227,1
    - Dst: generate_locality_mask
      Src: /src/xen/stubdom/vtpm/vtpm.c:238,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:240,1
    - Dst: create_error_response
      Src: /src/xen/stubdom/vtpm/vtpm.c:241,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:244,1
    - Dst: create_error_response
      Src: /src/xen/stubdom/vtpm/vtpm.c:245,1
    - Dst: check_passthru
      Src: /src/xen/stubdom/vtpm/vtpm.c:248,1
    - Dst: check_ordinal
      Src: /src/xen/stubdom/vtpm/vtpm.c:251,1
    - Dst: create_error_response
      Src: /src/xen/stubdom/vtpm/vtpm.c:252,1
    - Dst: tpm_handle_command
      Src: /src/xen/stubdom/vtpm/vtpm.c:256,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:257,1
    - Dst: create_error_response
      Src: /src/xen/stubdom/vtpm/vtpm.c:258,1
    - Dst: tpmback_resp
      Src: /src/xen/stubdom/vtpm/vtpm.c:264,1
    - Dst: tpmback_req_any
      Src: /src/xen/stubdom/vtpm/vtpm.c:267,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:272,1
    - Dst: tpm_emulator_shutdown
      Src: /src/xen/stubdom/vtpm/vtpm.c:274,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 275
    functionName: main_loop
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 1
    functionsReached:
    - check_passthru
    - create_error_response
    - tpm_emulator_init
    - error
    - tpm_handle_command
    - tpmback_resp
    - generate_locality_mask
    - vtpm_initialize_hw_pcrs
    - tpm_emulator_shutdown
    - tpmback_req_any
    - info
    - check_ordinal
    linkageType: ''
    returnType: void
    signature: void main_loop(void)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpm/vtpm.c:283,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:284,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:288,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:292,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:297,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:300,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:303,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:306,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:307,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:309,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:313,1
    - Dst: strtok
      Src: /src/xen/stubdom/vtpm/vtpm.c:316,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:318,1
    - Dst: strcmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:321,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpm/vtpm.c:324,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:327,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpm/vtpm.c:331,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:334,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:338,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:350,1
    - Dst: strtok
      Src: /src/xen/stubdom/vtpm/vtpm.c:353,1
    - Dst: strncmp
      Src: /src/xen/stubdom/vtpm/vtpm.c:356,1
    - Dst: strchr
      Src: /src/xen/stubdom/vtpm/vtpm.c:358,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:361,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:365,1
    - Dst: memset
      Src: /src/xen/stubdom/vtpm/vtpm.c:369,1
    - Dst: strtok
      Src: /src/xen/stubdom/vtpm/vtpm.c:372,1
    - Dst: sscanf
      Src: /src/xen/stubdom/vtpm/vtpm.c:375,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:380,1
    - Dst: strtok
      Src: /src/xen/stubdom/vtpm/vtpm.c:383,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:387,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:395,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:398,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:401,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:404,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:414,1
    - Dst: sprintf
      Src: /src/xen/stubdom/vtpm/vtpm.c:417,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:423,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:425,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:429,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:436,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:439,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 138
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 442
    functionName: parse_cmd_line
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached:
    - error
    - sprintf
    - strchr
    - strncmp
    - sscanf
    - memset
    - strcmp
    - info
    - strtok
    linkageType: ''
    returnType: int
    signature: int parse_cmd_line(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: cleanup_opt_args
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cleanup_opt_args(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sleep
      Src: /src/xen/stubdom/vtpm/vtpm.c:450,1
    - Dst: info
      Src: /src/xen/stubdom/vtpm/vtpm.c:463,1
    - Dst: parse_cmd_line
      Src: /src/xen/stubdom/vtpm/vtpm.c:464,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:465,1
    - Dst: init_tpmback
      Src: /src/xen/stubdom/vtpm/vtpm.c:470,1
    - Dst: init_tpmfront
      Src: /src/xen/stubdom/vtpm/vtpm.c:471,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:472,1
    - Dst: init_random
      Src: /src/xen/stubdom/vtpm/vtpm.c:477,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:478,1
    - Dst: init_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpm.c:483,1
    - Dst: error
      Src: /src/xen/stubdom/vtpm/vtpm.c:484,1
    - Dst: main_loop
      Src: /src/xen/stubdom/vtpm/vtpm.c:489,1
    - Dst: shutdown_vtpmblk
      Src: /src/xen/stubdom/vtpm/vtpm.c:492,1
    - Dst: shutdown_tpmfront
      Src: /src/xen/stubdom/vtpm/vtpm.c:497,1
    - Dst: shutdown_tpmback
      Src: /src/xen/stubdom/vtpm/vtpm.c:499,1
    - Dst: cleanup_opt_args
      Src: /src/xen/stubdom/vtpm/vtpm.c:501,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 504
    functionName: main
    functionSourceFile: /src/xen/stubdom/vtpm/vtpm.c
    functionUses: 718
    functionsReached:
    - shutdown_vtpmblk
    - sleep
    - init_tpmback
    - error
    - init_tpmfront
    - parse_cmd_line
    - init_vtpmblk
    - main_loop
    - init_random
    - cleanup_opt_args
    - shutdown_tpmback
    - info
    - shutdown_tpmfront
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_negative_sink__
      Src: /src/xen/misc/coverity/model.c:61,1
    - Dst: __coverity_negative_sink__
      Src: /src/xen/misc/coverity/model.c:62,1
    - Dst: __coverity_alloc__
      Src: /src/xen/misc/coverity/model.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: _xmalloc
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 11
    functionsReached:
    - __coverity_negative_sink__
    - __coverity_alloc__
    linkageType: ''
    returnType: void
    signature: void *_xmalloc(unsigned long size, unsigned long align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_free__
      Src: /src/xen/misc/coverity/model.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: xfree
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 305
    functionsReached:
    - __coverity_free__
    linkageType: ''
    returnType: void
    signature: void xfree(void *va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_alloc__
      Src: /src/xen/misc/coverity/model.c:88,1
    - Dst: __coverity_panic__
      Src: /src/xen/misc/coverity/model.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mfn
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 99
    functionName: map_domain_page
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 209
    functionsReached:
    - __coverity_panic__
    - __coverity_alloc__
    linkageType: ''
    returnType: void
    signature: void *map_domain_page(unsigned long mfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_free__
      Src: /src/xen/misc/coverity/model.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - va
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: unmap_domain_page
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 192
    functionsReached:
    - __coverity_free__
    linkageType: ''
    returnType: void
    signature: void unmap_domain_page(const void *va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_panic__
      Src: /src/xen/misc/coverity/model.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: errx
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 10
    functionsReached:
    - __coverity_panic__
    linkageType: ''
    returnType: void
    signature: void errx(int, const char*, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_recursive_lock_acquire__
      Src: /src/xen/misc/coverity/model.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: libxl__ctx_lock
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 2
    functionsReached:
    - __coverity_recursive_lock_acquire__
    linkageType: ''
    returnType: void
    signature: void libxl__ctx_lock(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_recursive_lock_release__
      Src: /src/xen/misc/coverity/model.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - libxl_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: libxl__ctx_unlock
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 2
    functionsReached:
    - __coverity_recursive_lock_release__
    linkageType: ''
    returnType: void
    signature: void libxl__ctx_unlock(libxl_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_panic__
      Src: /src/xen/misc/coverity/model.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: __builtin_unreachable
    functionSourceFile: /src/xen/misc/coverity/model.c
    functionUses: 0
    functionsReached:
    - __coverity_panic__
    linkageType: ''
    returnType: void
    signature: void __builtin_unreachable(void)
Fuzzer filename: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- xen/virtual_region.h
- asm/guest/pvh-boot.h
- libxl_uuid.h
- qpushbutton.h
- glib.h
- libintl.h
- xen/lib.h
- mgmt_authority.h
- xen/notifier.h
- xen/arch-x86/cpuid.h
- asm/vpci.h
- mini-os/byteorder.h
- xen/kimage.h
- compat/pmu.h
- xg_sr_common_x86_pv.h
- netinet/tcp.h
- grant_table.h
- vmce.h
- compat/version.h
- asm/numa.h
- xen/arch-x86/hvm/start_info.h
- polarssl/bignum.h
- expr.h
- xen.h
- xen/consoled.h
- tcg.h
- xen/shutdown.h
- asm/idt.h
- asm/atomic.h
- xen/compiler.h
- list.h
- sidtab.h
- asm/firmware/sci.h
- nestedhvm.h
- xen/static-evtchn.h
- ../../../common/decompress.h
- QCheckBox
- option_rom.h
- inflate.c
- zfs-include/dmu_objset.h
- ../../xen/common/decompress.h
- Python.h
- xenstat_priv.h
- libxl_arm.h
- xen/multiboot.h
- asm/xstate.h
- asm/imsic.h
- xen/hvm/params.h
- objsec.h
- vtpmmgr.h
- grp.h
- asm/debugreg.h
- rijndael.h
- sys/endian.h
- fsimage_priv.h
- asm/string.h
- compat/memory.h
- QMenu
- QSplitter
- compat/xlat.h
- xen/macros.h
- xg_save_restore.h
- xen/bitops.h
- qregexp.h
- asm/psr.h
- asm/compat.h
- caml/alloc.h
- xen/sys/gntalloc.h
- disk_io.h
- zfs-include/vdev_impl.h
- blkfront.h
- avx512bw-vpclmulqdq.h
- xen/sort.h
- asm/traps.h
- tpmfront.h
- xen/libfdt/libfdt-xen.h
- mini-os/mm.h
- xen/pci_ids.h
- xen/acpi.h
- sys/un.h
- _libxl_types_private.h
- smbios_types.h
- sse.h
- regex.h
- public/trace.h
- asm/types.h
- caml/mlvalues.h
- xen/earlycpio.h
- asm/early_printk.h
- asm/mem_paging.h
- qconf.moc
- zfs-include/sa_impl.h
- libxlu_cfg_y.h
- asm/uaccess.h
- asm/acpi.h
- lkc.h
- asm/gic.h
- disk_crypto.h
- xg_core_x86.h
- asm/setup.h
- asm/stubs.h
- public/arch-x86/cpuid.h
- compat/grant_table.h
- runtime.h
- netlink/socket.h
- sse4-sha.h
- asm/hvm/vpic.h
- xenevtchn.h
- aclinux.h
- ../x86_64/mmconfig.h
- _libxl_types_internal_json.h
- public/kexec.h
- polarssl/ctr_drbg.h
- zstd/decompress.c
- asm/nops.h
- avx512vbmi2-vpclmulqdq.h
- xen/arch-x86/guest-acpi.h
- hashtable.h
- event_channel.h
- asm/config.h
- libxl_utils.h
- includes.h
- xg_dom_decompress_unsafe.h
- efi/eficapsule.h
- config.h
- xen-tools/arm-arch-capabilities.h
- xen/delay.h
- mls_types.h
- tpm2_types.h
- xen/pci.h
- asm/new_vgic.h
- asm/arm32/macros.h
- xen/arch-x86/cpufeatureset.h
- xen/pci_regs.h
- gtk/gtk.h
- pir_types.h
- xen/cpumask.h
- public/callback.h
- libxlu_cfg_l.h
- asm/hvm/domain.h
- asm/spinlock.h
- xen/numa.h
- xen/irq_cpustat.h
- lu.h
- assert.h
- mini-os/xmalloc.h
- mctelem.h
- xen/unaligned.h
- xen/arch-x86/xen-mca.h
- xenguest.h
- vnuma.h
- asm/arm64/sve.h
- asm/arm64/insn.h
- xen/multicall.h
- zstd.h
- bzlib.h
- hypercall.h
- asm/event.h
- stdarg.h
- asm/desc.h
- asm/msi.h
- avx512bw-vaes.h
- asm/asm_defns.h
- xen/softirq.h
- xen/cpuidle.h
- images.h
- asm/cpuerrata.h
- compat/vcpu.h
- xenstore_state.h
- transaction.h
- QHeaderView
- asm/kernel.h
- hvm/save.h
- kdd.h
- xen/libelf.h
- io/ring.h
- xen/sys/privcmd.h
- asm/cpregs.h
- domctl.h
- ebitmap.h
- asm/arm64/bitops.h
- asm/io.h
- vbe.c
- asm/mmu/mm.h
- ../trace.h
- efi-boot.h
- xen/stdarg.h
- polarssl/aes.h
- asm/paging.h
- asm/guest/hypervisor.h
- console.h
- efi/eficon.h
- acgcc.h
- xen/gunzip.h
- simd-fma.c
- ../../xen/common/unxz.c
- xen/sysctl.h
- xen/console.h
- asm/hvm/svm.h
- libacpi.h
- xen/page-size.h
- fcntl.h
- asm/guest/hyperv.h
- asm/ldt.h
- public/hvm/hvm_info_table.h
- compat/xen.h
- asm/bug.h
- asm-generic/div64.h
- tpm2.h
- lz4/decompress.c
- xen/libfdt/libfdt.h
- arch-arm.h
- asm/alternative.h
- dirent.h
- ubsan.h
- xen/err.h
- video.h
- xen/hvm/ioreq.h
- public/arch-arm.h
- xen/sections.h
- acpi/actbl1.h
- asm/iommu_fwspec.h
- asm/asm-offsets.h
- xen/muldiv64.h
- asm/boot-helpers.h
- efi/efiprot.h
- acoutput.h
- compat/xsm/flask_op.h
- err.h
- asm/tee/optee_smc.h
- context.h
- ncurses.h
- fbfront.h
- acpixf.h
- asm/pv/mm.h
- sse4.h
- cpu/mcheck/mce.h
- asm/div64.h
- error_private.h
- yajl/yajl_gen.h
- decompress.h
- mini-os/tpmfront.h
- libxl.h
- xen/device_tree_defs.h
- _libxl_save_msgs_helper.h
- public/device_tree_defs.h
- compat/hvm/hvm_op.h
- avx512f-sha.h
- fma4.h
- utmp.h
- asm/arm64/vfp.h
- asm/vpl011.h
- asm/arm32/mm.h
- qdesktopwidget.h
- asm/spec_ctrl_asm.h
- asm/perfc_defn.h
- xen/features.h
- sys/ioctl.h
- asm/e820.h
- zfs-include/dnode.h
- xen/monitor.h
- vmcb.h
- mini-os/wait.h
- kernel.h
- xen/hypercall.h
- asm/cpu-user-regs.h
- xen/xxhash.h
- asm/guest-msr.h
- _libxl_types_internal.h
- asm/amd.h
- vtpm_manager.h
- xen/livepatch.h
- rombios.h
- json-c/json_visit.h
- file_ops.h
- asm/arm64/mpu.h
- xz/dec_bcj.c
- acpi/actbl3.h
- osdep.h
- asm/arm32/insn.h
- stdint.h
- panel.h
- avx512f-sg.h
- acexcep.h
- xen/elfstructs.h
- qsettings.h
- xen/io/console.h
- vuart.h
- extern.h
- guest_walk.c
- lzma2.h
- xz/dec_stream.c
- xen/config.h
- xen/kconfig.h
- _libxl_save_msgs_callout.h
- xen/bootfdt.h
- asm/mpu/cpregs.h
- xen/byteorder.h
- mini-os/gntmap.h
- xenctrl_abi_check.h
- config-seabios.h
- asm/shared.h
- acfreebsd.h
- xen/iommu.h
- asm/arm64/processor.h
- ../../xen/include/xen/decompress.h
- init-dom-json.h
- zfs-include/zio.h
- asm/short-desc.h
- tpm/tpm_data.h
- libxl_internal.h
- asm/multicall.h
- xen/io/displif.h
- avx512bw-opmask.h
- pci_regs.h
- xen/dm.h
- public/vcpu.h
- asm/x86_emulate.h
- xen/sys/gntdev.h
- xen/param.h
- asm/cpufeatureset.h
- asm/fence.h
- ../../xen/include/xen/unaligned.h
- ../../x86_emulate/x86_emulate.h
- mini-os/lib.h
- asm/arm64/system.h
- xg_dom_decompress.h
- gdk/gdkkeysyms.h
- vchan.h
- xen/dom0less-build.h
- xen/io/xenbus.h
- asm/arm64/mm.h
- asm/alternative-call.h
- asm/hvm/support.h
- asm/platforms/omap5.h
- xen/sizes.h
- ac_ia64_tools.h
- asm/guest/hyperv-tlfs.h
- xc_msr_x86.h
- xen/kernel.h
- public/hvm/hvm_vcpu.h
- mini-os.h
- xen/cper.h
- asm/vm_event.h
- xen/rangeset.h
- limits.h
- openssl/aes.h
- asm/guest_access.h
- poll.h
- libxl_test_timedereg.h
- stdio.h
- compat/hvm/dm_op.h
- xc_private.h
- asm/arm64/flushtlb.h
- acnetbsd.h
- asm/hvm/vmx/vvmx.h
- xen/perfc.h
- rangeset.h
- asm/hvm/hvm.h
- cpu.h
- harness.h
- asm/mwait.h
- QList
- asm/edd.h
- xen/bsearch.h
- asm/asm-macros.h
- polarssl/sha2.h
- public/version.h
- netfront.h
- nconf.h
- xen/iocap.h
- sse2.h
- asm/hpet.h
- xen/xenio3.h
- xen/paging.h
- expect_config.h
- compat/hvm/hvm_vcpu.h
- asm/platforms/exynos5.h
- tcgbios.h
- AvailabilityMacros.h
- xen/self-tests.h
- acconfig.h
- actbl.h
- tpm2_marshal.h
- qmessagebox.h
- public/features.h
- sys/stropts.h
- avx512fp16.h
- setjmp.h
- sys/wait.h
- linux/types.h
- sys/types.h
- libxl_sr_stream_format.h
- xen/fdt-kernel.h
- xenpaging.h
- xen/dt-overlay.h
- xen/const.h
- symtab.h
- zfs-include/dmu.h
- xen/io/sndif.h
- xen/stringify.h
- nic.h
- asm/mpspec_def.h
- ffa_private.h
- libxlu_disk_i.h
- asm/io-ports.h
- xen/msi.h
- avx-pclmul.h
- public/domctl.h
- asm/nospec.h
- xenstat.h
- tpm/tpm_marshalling.h
- xen/early_printk.h
- sys/bswap.h
- asm/insn-defs.h
- conditional.h
- stddef.h
- xen/elfcore.h
- public/hypfs.h
- ctype.h
- asm/system.h
- asm/page-bits.h
- xen/linux-compat.h
- ring.h
- types.h
- asm/hvm/vlapic.h
- xen/lz4.h
- asm/io_apic.h
- asm/smp.h
- asm/cmpxchg.h
- xen/sys/evtchn.h
- avx-aes.h
- qapplication.h
- aplic-priv.h
- xen/list.h
- asm/vpsci.h
- QLineEdit
- lzo/lzo1x.h
- fuzz-emul.h
- libfdt.h
- multi.h
- asm/device.h
- hvm_op.h
- asm/machine_kexec.h
- ../../xen/include/xen/lz4.h
- asm/time.h
- asm/pv/trace.h
- xen/ctype.h
- xen/grant_table.h
- _libxl_types.h
- pv.h
- arch-riscv.h
- etherboot.h
- asm/cpufeatures.h
- sys/socket.h
- ../../xen/lib/xxhash64.c
- mmconfig.h
- libxl_libfdt_compat.h
- pcpu.h
- sys/resource.h
- xen/xsm/flask_op.h
- xen/efi.h
- xen/tasklet.h
- asm/arm32/bitops.h
- asm/tboot.h
- caml/unixsupport.h
- asm/current.h
- xen/rcupdate.h
- acpi/acpiosxf.h
- xen/sys/xenbus_dev.h
- asm/hvm/guest_access.h
- compat/physdev.h
- xen/livepatch_elf.h
- asm/arm32/nospec.h
- ../../../common/xz/crc32.c
- x86_emulate/x86_emulate.h
- asm/match-cpu.h
- xen/lib/x86/cpuid-autogen.h
- asm/percpu.h
- multi.c
- achware.h
- xen/sha1.h
- zfs-include/zil.h
- xen/stop_machine.h
- ../arch/arm/pci/pci-host-rcar4.h
- xen/llc-coloring.h
- asm/iocap.h
- asm/hvm/svm-types.h
- compat/trace.h
- filesys.h
- lxdialog/dialog.h
- ufs.h
- xen/io/protocols.h
- 3dnow.h
- platform.h
- asm/pt-contig-markers.h
- ssdt_s4.h
- xenfsimage_plugin.h
- asm/cpuid.h
- zstd/huf_decompress.c
- asm/sbi.h
- xen/mm-frame.h
- asm/hvm/io.h
- util.h
- zfs-include/zap_impl.h
- asm/guest/hyperv-hcall.h
- asm/bootinfo.h
- xen/libelf/libelf.h
- asm/efi.h
- asm/memory.h
- asm/pv/traps.h
- asm/irq.h
- asm/vsbi.h
- physdev.h
- CONFIG_ACPI_CUSTOM_DSDT_FILE
- elfstructs.h
- xen/keyhandler.h
- rombios_compat.h
- asm/mpu/layout.h
- ../multicall.c
- asm/hvm/vioapic.h
- asm/guest_pt.h
- xg_sr_common_x86.h
- avtab.h
- public/elfnote.h
- xen/libelf/elfstructs.h
- asm/apicdef.h
- asm/asm-defns.h
- smmu-v3.h
- xen/version.h
- compat/hypfs.h
- ../../xen/common/unlzo.c
- ats.h
- asm/mmio.h
- asm/iommu.h
- netlink/route/link.h
- asm/mmu/layout.h
- emulate.h
- pv/mm.h
- asm/arm32/system.h
- xen/xenio.h
- yajl/yajl_version.h
- xen/hypfs.h
- libxlu_disk_l.h
- xen-barrier.h
- xentoolcore_internal.h
- public/hvm/hvm_op.h
- tpmrsa.h
- intrin.h
- json-c/json.h
- ../boot/video.h
- xg_core.h
- xen/memory.h
- asm/pmap.h
- asm/smccc.h
- core.h
- ../event_channel.h
- qsplitter.h
- xen-9pfsd.h
- arch-x86/xen.h
- asm/mmu/setup.h
- public/xen.h
- acutils.h
- security.h
- avc_ss.h
- asm/hsr.h
- asm/hvm/nestedhvm.h
- avx.h
- xen/warning.h
- menu.h
- sys/time.h
- netlink/route/qdisc/plug.h
- tpmback.h
- libxl_arch.h
- xen/atomic.h
- xen/livepatch_payload.h
- acpiosxf.h
- xen/timer.h
- QDialog
- asm/gic_v3_defs.h
- compat/callback.h
- mini-os/os.h
- xen/compat.h
- xentoolcore.h
- public/io/console.h
- public/nmi.h
- xen/mm.h
- asm/gic_v3_its.h
- qmenubar.h
- arch-x86/pmu.h
- acpi/actbl2.h
- xen/asm/x86-vendors.h
- ../../xen/common/lzo.c
- mini-os/9pfront.h
- xen/io/kbdif.h
- asm/hvm/vmx/vmcs.h
- asm/cpufeature.h
- xen/8250-uart.h
- acpi/acconfig.h
- xen/static-shmem.h
- sys/mman.h
- simd.h
- asm/elf.h
- xenfsimage.h
- x86_64/mmconfig.h
- clext.c
- xz/private.h
- asm/intc.h
- argp.h
- xen-tools/bitops.h
- asm/tee/ffa.h
- sys/ucontext.h
- acpi/cpufreq/cpufreq.h
- asm/p2m.h
- acpi/actypes.h
- asm/hap.h
- asm/hvm/vpt.h
- asm/hvm/vcpu.h
- xenfsimage_grub.h
- xen/coverage.h
- xendevicemodel.h
- QPushButton
- asm/microcode.h
- xen/mem_access.h
- asm/prot-key.h
- xen/init.h
- vtpmblk.h
- xen/types.h
- ../../xen/common/unzstd.c
- xen/decompress.h
- asm/arm32/flushtlb.h
- disk_format.h
- mcheck/x86_mca.h
- QFileDialog
- asm/linflex-uart.h
- asm/mpu/mm.h
- public/sysctl.h
- asm/dom0_build.h
- fse.h
- xen_list.h
- netinet/in.h
- public/sched.h
- polarssl/sha1.h
- av_permissions.h
- crypto/vmac.h
- mini-os/xenbus.h
- arpa/inet.h
- xen-sd-notify.h
- dlfcn.h
- ../xg/xg_public.h
- caml/memory.h
- asm/mpspec.h
- asm/intel-family.h
- xen/domain.h
- xen/xmalloc.h
- ../arch-arm/hvm/save.h
- sys/utsname.h
- glob.h
- asm/cache.h
- xl.h
- asm/fixmap.h
- asm/procinfo.h
- libfdt_internal.h
- asm/gen-idt.h
- mini-os/types.h
- asm/opal-api.h
- xfs.h
- fma.h
- core.c
- mread.h
- asm/x86-defns.h
- sys/statvfs.h
- asm/genapic.h
- public/hvm/params.h
- public/hvm/dm_op.h
- asm/arm32/atomic.h
- stdlib.h
- asm/altp2m.h
- time.h
- semaphore.h
- compat/arch-x86/xen.h
- asm/arm64/cmpxchg.h
- asm/monitor.h
- caml/custom.h
- lzma.h
- test_common.h
- acpi/actbl.h
- zstd/entropy_common.c
- xen/radix-tree.h
- linux/ioctl.h
- compat/grant_table.c
- asm/boot.h
- ../mm-locks.h
- xsm/xsm.h
- private.h
- xenbaked.h
- vtd.h
- zfs-include/spa.h
- mce.h
- xen/elfnote.h
- asm/tee/optee_msg.h
- asm/arm64/sysregs.h
- xenctrl_compat.h
- efi/efidef.h
- asm/vreg.h
- features.h
- asm/apic.h
- libxl_event.h
- signal.h
- acpi/actables.h
- netlink/attr.h
- talloc.h
- xg_public.h
- zfs-include/dsl_dataset.h
- xen/serial.h
- compat/mm.c
- asm/arm32/page.h
- kstat.h
- ssdt_laptop_slate.h
- vgafonts.h
- QSettings
- ssdt_s3.h
- xen/byteswap.h
- public/arch-arm/smccc.h
- fsi_zfs.h
- asm/hvm/save.h
- asm/cpu-policy.h
- asm/guest_walk.h
- machine/endian.h
- xen/inttypes.h
- asm/arm32/cmpxchg.h
- asm/hardirq.h
- xen/smp.h
- asm/arm32/sysregs.h
- ../../xen/common/lz4/decompress.c
- acpi/cpufreq/processor_perf.h
- caml/signals.h
- tpm/tpm_emulator_extern.h
- ../config.h
- math.h
- asm/platforms/xilinx-zynqmp-eemi.h
- _libxl_types_json.h
- fsys_zfs.h
- netlink/route/route.h
- xen/io/xs_wire.h
- termios.h
- iommu.h
- compat/platform.h
- public/pmu.h
- asm/softirq.h
- QTextBrowser
- zfs-include/zio_checksum.h
- public/arch-x86/cpufeatureset.h
- generated/compiler-def.h
- libfdt_env.h
- gzip.h
- xen/prefetch.h
- xg_sr_stream_format.h
- xl_parse.h
- asm/shadow.h
- asm/x86-vendors.h
- asm-generic/monitor.h
- iommu-defs.h
- xen/ioreq.h
- asm/page.h
- unistd.h
- asm/vgic.h
- acpi/pdc_intel.h
- asm/tsc.h
- xen/lzo.h
- asm/macros.h
- sys/uio.h
- libxenvchan.h
- compat/nmi.h
- terminfo.h
- asm/arm64/efibind.h
- asm/guest_atomics.h
- flask_op.c
- caml/callback.h
- defs.h
- pdx.h
- asm/mtrr.h
- common_types.h
- xg_core_arm.h
- tpm.h
- p2m.h
- asm/livepatch.h
- asm/arm32/processor.h
- avx512dq.h
- xen/io/libxenvchan.h
- asm/guest/xen-hcall.h
- caml/fail.h
- xen/bitmap.h
- ssse3-pclmul.h
- efi/efierr.h
- zfs-include/dsl_dir.h
- decode.h
- asm/bzimage.h
- xen/stack-protector.h
- xen/arch-arm.h
- asm/hvm/grant_table.h
- asm/imx-lpuart.h
- asm/platform.h
- xen-caml-compat.h
- asm/mpu.h
- xen/bootinfo.h
- compat/sched.h
- acpi/apei.h
- zstd_internal.h
- asm/mce.h
- xen/percpu.h
- public/bootfdt.h
- policydb.h
- asm/pci.h
- xen/vcpu.h
- xen/typesafe.h
- vtpm.h
- xen/domain_page.h
- efi.h
- xen/video.h
- xen/scrub.h
- disk_tpm.h
- asm/processor.h
- asm/arm64/traps.h
- netlink/cache.h
- xen/pmstat.h
- services.h
- ../ats.h
- acefi.h
- zfs-include/zfs_znode.h
- netlink/netlink.h
- asm/tee/optee_rpc_cmd.h
- public/argo.h
- vpci.h
- xen/elf.h
- asm/trampoline.h
- asm/arm64/nospec.h
- mmap_stubs.h
- ../../xen/common/unlzma.c
- arch-ppc.h
- public/hvm/save.h
- xen/list_sort.h
- asm/sysregs.h
- xen/kexec.h
- xen/xen.h
- avx2.h
- asm/msr.h
- asm/spec_ctrl.h
- asm/domain_build.h
- roms.inc
- compat/kexec.h
- LIBACPI_STDUTILS
- asm/exynos4210-uart.h
- xen/errno.h
- initial_sid_to_string.h
- domain.h
- bitstream.h
- public/io/xs_wire.h
- mini-os/events.h
- tpm/tpm_structures.h
- asm/fsgsbase.h
- uuid.h
- xen/hvm/hvm_xs_strings.h
- public/physdev.h
- vgic.h
- xen/lib/x86/cpu-policy.h
- avx512bw-gf.h
- libxl_osdeps.h
- vtpm_cmd.h
- asm/arm64/hsr.h
- emul.h
- ssse3-aes.h
- fdt.h
- xen/irq.h
- ../../../include/xen/elfstructs.h
- ../../boot/video.h
- asm/arm32/io.h
- asm/x86_64/elf.h
- runtime.c
- public/arch-x86/xen-mca.h
- asm/arm64/io.h
- asm/mm-types.h
- qtoolbar.h
- malloc.h
- sys/file.h
- control.h
- xen/pdx.h
- xen/mm-types.h
- asm/arm64/macros.h
- avx512vbmi.h
- boot/video.h
- asm/x86_64/page.h
- xen/multiboot2.h
- term.h
- vbetables.h
- avx512bw.h
- x86-emulate.h
- zlib.h
- asm/arm64/atomic.h
- compat/argo.h
- libxl_json.h
- tpm_drivers.h
- acmodesto.h
- asm/mem_sharing.h
- qlabel.h
- pci-designware.h
- asm/scif-uart.h
- xen/platform.h
- asm/invpcid.h
- cpu/mtrr/mtrr.h
- asm/insn.h
- zfs-include/zfs_acl.h
- asm/i387.h
- ../../xen/common/pdx.c
- dialog.h
- gnttab.h
- asm/lpae.h
- libxl_colo.h
- xen/trace.h
- zstd/zstd_common.c
- xen/device_tree.h
- asm/vfp.h
- xenctrl.h
- ssdt_tpm2.h
- xen/hvm/dm_op.h
- public/memory.h
- watch.h
- public/io/ring.h
- public/errno.h
- qevent.h
- xz/dec_lzma2.c
- asm/mpu/p2m.h
- asm/guest.h
- xen/fdt-domain-build.h
- xen/io.h
- xen/physdev.h
- apei-internal.h
- xentoollog.h
- ../rombios/32bit/32bitbios_flat.h
- asm/irq-vectors.h
- acnetware.h
- acpi/platform/aclinux.h
- constraint.h
- qlineedit.h
- sys/sysmacros.h
- xen-tools/common-macros.h
- asm/irq-dt.h
- public/grant_table.h
- mini-os/tpm_tis.h
- asm/shstk.h
- xen/vga.h
- xen/string.h
- barrier.h
- compat/event_channel.h
- xen/vm_event.h
- asm/mem_access.h
- libgen.h
- asm/alternative-asm.h
- asm/arm64/brk.h
- xen/argo.h
- xen/hvm/hvm_op.h
- ../xen.h
- efi/efidevp.h
- asm/arm32/vfp.h
- xen/nospec.h
- asm/hvm/vm_event.h
- asm/nmi.h
- huf.h
- avx512f.h
- zfs-include/zfs.h
- xen/foreign/x86_64.h
- qglobal.h
- vtpm_pcrs.h
- xen/random.h
- xen/rbtree.h
- policy.h
- compat/arch-x86/xen-mca.h
- asm/hvm/monitor.h
- acglobal.h
- asm/mm.h
- compat.c
- xen/dmi.h
- asm/hvm/vmx/vmx.h
- xen/event.h
- mini-os/sched.h
- lfb.h
- asm/regs.h
- polarssl/entropy.h
- ssdt_tpm.h
- asm/arm64/cpufeature.h
- xen/pmap.h
- valgrind/memcheck.h
- acwin64.h
- hypervisor.h
- pwd.h
- public/platform.h
- mls.h
- x86_mca.h
- asm/csr.h
- asm/mmu/p2m.h
- xen-xsm/flask/flask.h
- xen/guest_access.h
- asm/cadence-uart.h
- 32bitprotos.h
- xen/hvm/hvm_info_table.h
- xenstore_lib.h
- font.h
- asm/riscv_encoding.h
- emmintrin.h
- zfs-include/zap_leaf.h
- sys/byteorder.h
- asm/efibind.h
- mm.h
- ../physdev.c
- coverage.h
- actypes.h
- xen/pfn.h
- sysexits.h
- log.h
- asm/mc146818rtc.h
- qlayout.h
- lkc_proto.h
- sse2-gf.h
- avx512dq-opmask.h
- xen-tools/xenstore-common.h
- public/xsm/flask_op.h
- uuid/uuid.h
- vbe.h
- ../../xen/common/unlz4.c
- form.h
- asm/arm32/bug.h
- yajl/yajl_parse.h
- io.h
- INCLUDE_CURSES_H
- libxlu_internal.h
- alloca.h
- zstd/fse_decompress.c
- os.h
- xen/xvmalloc.h
- asm/hvm/cacheattr.h
- acpi/acpi.h
- xen/preempt.h
- asm/bootfdt.h
- xen/alternative-call.h
- asm/x86_64/system.h
- asm/asm.h
- asm/psci.h
- analyze.h
- blowfish.h
- avx2-vpclmulqdq.h
- mini-os/tpmback.h
- libxl_test_fdevent.h
- gcov.h
- avc.h
- xen/sched.h
- xen/pv_console.h
- gx.h
- acnames.h
- _libxl_types_internal_private.h
- xg_private.h
- xen/vpci.h
- dmar.h
- asm/arm32/mpu.h
- xen/domctl.h
- xen/time.h
- xen/io/9pfs.h
- xen/wait.h
- svm.h
- xenstore.h
- ../rombios/config.h
- asm/hvm/ioreq.h
- xenhypfs.h
- asm/random.h
- asm/aplic.h
- asm/vpmu.h
- fat.h
- asm/x86_64/efibind.h
- flask.h
- flexarray.h
- public/event_channel.h
- xen/hvm/save.h
- xen/spinlock.h
- xen/cache.h
- asm/vtimer.h
- sys/stat.h
- xen/compile.h
- pthread.h
- mcaction.h
- asm/ioreq.h
- mini-os/console.h
- xl_utils.h
- zfs-include/uberblock_impl.h
- xen/watchdog.h
- netdb.h
- xen/linkage.h
- acpi/acmacros.h
- asm/pl011-uart.h
- xen/foreign/x86_32.h
- sys/user.h
- xen/vmap.h
- vgabios.h
- xen/resource.h
- ../platform_hypercall.c
- xop.h
- QMainWindow
- xen/asm/msr-index.h
- asm/vmid.h
- asm/platforms/vexpress.h
- linux/kdev_t.h
- mb_info.h
- iso9660.h
- aclocal.h
- vtpm_disk.h
- platform/acenv.h
- acpi2_0.h
- INCLUDE_ENDIAN_H
- avx2-sg.h
- ../xen-compat.h
- asm-generic/paging.h
- xen/event_channel.h
- avx512f-opmask.h
- hashtab.h
- xencall.h
- stdbool.h
- x86_emulate/x86_emulate.c
- xen/hvm/e820.h
- QTreeWidget
- asm/muldiv64.h
- asm/hvm/asid.h
- asm/pv/domain.h
- asm/hvm/irq.h
- xen/cpu.h
- libxlutil.h
- yajl/yajl_tree.h
- copy-guest.c
- errno.h
- xenforeignmemory.h
- xen/libfdt/fdt.h
- ../../xen/common/bunzip2.c
- libelf-private.h
- ../grant_table.h
- avx2-vaes.h
- xen/stdbool.h
- public/xenoprof.h
- stream.h
- public/hvm/e820.h
- ssdt_pm.h
- xen/hvm/hvm_vcpu.h
- xsm/dummy.h
- byteswap.h
- apic_regs.h
- mini-os/endian.h
- marshal.h
- QAction
- generated/autoconf.h
- xen/libfdt/libfdt_env.h
- xen/sha2.h
- ../../xen.h
- public/vm_event.h
- asm/gdbsx.h
- strings.h
- glade/glade.h
- ../compat.c
- asm/hvm/emulate.h
- xen/asm/x86-defns.h
- asm/msr-index.h
- asm/pv/shim.h
- avx2-gf.h
- xz/crc32.c
- asm/endbr.h
- string.h
- asm/grant_table.h
- netlink/route/qdisc.h
- asm/pv/grant_table.h
- acdos16.h
- efi/pe.h
- mini-os/kexec.h
- asm/hypercall.h
- stropts.h
- xen/arch-x86/xen.h
- memory.h
- ../../xen/include/xen/byteorder.h
- xen/shared.h
- xen/p2m-common.h
- endian_int.h
- efi/efiapi.h
- asm/platforms/midway.h
- mtrr.h
- asm/tee/tee.h
- xen/static-memory.h
- pty.h
- asm/guest/xen.h
- asm/flushtlb.h
- public/arch-x86/hvm/start_info.h
- crypto/rijndael.h
- efi/efipciio.h
- xen/rwlock.h
- acmacros.h
- xen/nodemask.h
- asm/arm64/page.h
- xen/hypercall-defs.h
- libutil.h
- libxlu_cfg_i.h
- vgic-mmio.h
- avx-sha.h
- utils.h
- acwin.h
- xenmanage.h
- qtextbrowser.h
- INCLUDE_EXTFS_H
- xg_sr_common.h
- shared.h
- asm/pdx.h
- ../arch-x86/hvm/save.h
- asm/bitops.h
- mm-locks.h
- xengnttab.h
- public/hvm/ioreq.h
- asm/vgic-emul.h
- mce_amd.h
- ../../xen/include/xen/xxhash.h
- sys/select.h
- e820.h
- xen/stdint.h
- mem.h
- asm/cpuidle.h
- xen/io/usbif.h
- acsolaris.h
- asm/hvm/viridian.h
- syslog.h
- xen/symbols.h
- asm/x86_64/uaccess.h
- xen/page-defs.h
- qconf.h
- xen-compat.h
- xen/bug.h
- vgatables.h
- getopt.h
- asm/arm32/traps.h
- asm/domain.h
- inttypes.h
- processor_perf.h
- asm/arm64/bug.h
report: name
sources:
- function_names:
  - Some_val
  - caml_alloc_some
  source_file: /src/xen/tools/ocaml/libs/xen-caml-compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Val_none
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/ocaml/libs/xen-caml-compat.h
      type_or_value: Val_int(0)
    - item_type: preproc_def
      name: Tag_some
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/ocaml/libs/xen-caml-compat.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - stub_header_size
  - stub_header_of_string
  - stub_string_of_header
  source_file: /src/xen/tools/ocaml/libs/xb/xenbus_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_C_STRUCT
  - Bytes_val
  - ml_interface_read
  - ml_interface_write
  - ml_interface_set_server_features
  - ml_interface_get_server_features
  - ml_interface_close
  source_file: /src/xen/tools/ocaml/libs/xb/xs_ring_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xsd_glue_xch_of_val
  - xsd_glue_xenctrl_finalize
  - xsd_glue_failwith
  - xsd_glue_failwith
  - stub_xsd_glue_xc_interface_open
  - xsd_glue_alloc_domaininfo
  - stub_xsd_glue_xc_domain_getinfo
  - stub_xsd_glue_xc_domain_getinfolist
  source_file: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/ocaml/libs/xsd_glue/domain_getinfo_plugin_v1/domain_getinfo_stubs_v1.c
      type_or_value: (error && error->code != XC_ERROR_NONE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - xch_of_val
  - stub_xenctrl_finalize
  - string_of_option_array
  - failwith_xc
  - stub_xc_interface_open
  - domain_handle_of_uuid_string
  - c_bitmap_to_ocaml_list
  - ocaml_list_to_c_bitmap
  - stub_xc_domain_create
  - stub_xc_domain_max_vcpus
  - stub_xc_domain_sethandle
  - dom_op
  - stub_xc_domain_pause
  - stub_xc_domain_unpause
  - stub_xc_domain_destroy
  - stub_xc_domain_resume_fast
  - stub_xc_domain_shutdown
  - alloc_domaininfo
  - stub_xc_domain_getinfolist
  - stub_xc_domain_getinfo
  - stub_xc_vcpu_getinfo
  - stub_xc_vcpu_context_get
  - get_cpumap_len
  - stub_xc_vcpu_setaffinity
  - stub_xc_vcpu_getaffinity
  - stub_xc_sched_id
  - stub_xc_evtchn_alloc_unbound
  - stub_xc_evtchn_reset
  - stub_xc_evtchn_status
  - stub_xc_readconsolering
  - stub_xc_send_debug_keys
  - physinfo_arch_caps
  - stub_xc_physinfo
  - stub_xc_pcpu_info
  - stub_xc_domain_setmaxmem
  - stub_xc_domain_set_memmap_limit
  - stub_xc_domain_memory_increase_reservation
  - stub_xc_version_version
  - stub_xc_version_compile_info
  - stub_xc_version_changeset
  - stub_xc_version_capabilities
  - stub_pages_to_kib
  - stub_map_foreign_range
  - stub_sched_credit_domain_get
  - stub_sched_credit_domain_set
  - stub_shadow_allocation_get
  - stub_shadow_allocation_set
  - stub_xc_domain_ioport_permission
  - stub_xc_domain_iomem_permission
  - stub_xc_domain_irq_permission
  - stub_xc_hvm_param_get
  - stub_xc_hvm_param_set
  - encode_sbdf
  - stub_xc_domain_test_assign_device
  - stub_xc_domain_assign_device
  - stub_xc_domain_deassign_device
  - stub_xc_get_cpu_featureset
  - stub_xc_watchdog
  source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: '600'
    - item_type: preproc_def
      name: X
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: '"%02"SCNx8'
    - item_type: preproc_def
      name: UUID_FMT
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: (X X X X "-" X X "-" X X "-" X X "-" X X X X X X)
    - item_type: preproc_def
      name: VAL_SSIDREF
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 0)
    - item_type: preproc_def
      name: VAL_HANDLE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 1)
    - item_type: preproc_def
      name: VAL_FLAGS
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 2)
    - item_type: preproc_def
      name: VAL_IOMMU_OPTS
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 3)
    - item_type: preproc_def
      name: VAL_MAX_VCPUS
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 4)
    - item_type: preproc_def
      name: VAL_MAX_EVTCHN_PORT
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 5)
    - item_type: preproc_def
      name: VAL_MAX_GRANT_FRAMES
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 6)
    - item_type: preproc_def
      name: VAL_MAX_MAPTRACK_FRAMES
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 7)
    - item_type: preproc_def
      name: VAL_MAX_GRANT_VERSION
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 8)
    - item_type: preproc_def
      name: VAL_ALTP2M_OPTS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 9)
    - item_type: preproc_def
      name: VAL_ALTP2M_COUNT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 10)
    - item_type: preproc_def
      name: VAL_VMTRACE_BUF_KB
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 11)
    - item_type: preproc_def
      name: VAL_CPUPOOL_ID
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 12)
    - item_type: preproc_def
      name: VAL_ARCH
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(config, 13)
    - item_type: preproc_def
      name: VAL_EMUL_FLAGS
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(arch_domconfig, 0)
    - item_type: preproc_def
      name: VAL_MISC_FLAGS
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/tools/ocaml/libs/xc/xenctrl_stubs.c
      type_or_value: Field(arch_domconfig, 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - xce_of_val
  - stub_evtchn_finalize
  - stub_eventchn_init
  - stub_eventchn_fdopen
  - stub_eventchn_fd
  - stub_eventchn_notify
  - stub_eventchn_bind_interdomain
  - stub_eventchn_bind_virq
  - stub_eventchn_unbind
  - stub_eventchn_pending
  - stub_eventchn_unmask
  source_file: /src/xen/tools/ocaml/libs/eventchn/xeneventchn_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Data_abstract_val
  source_file: /src/xen/tools/ocaml/libs/mmap/mmap_stubs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*addr'
        type: void
      - name: len
        type: int
      item_type: struct
      name: mmap_interface
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/xen/tools/ocaml/libs/mmap/mmap_stubs.h
    typedefs: []
    union: []
- function_names:
  - Intf_val
  - mmap_interface_init
  - stub_mmap_init
  - stub_mmap_final
  - stub_mmap_read
  - stub_mmap_write
  - stub_mmap_getpagesize
  source_file: /src/xen/tools/ocaml/libs/mmap/xenmmap_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stub_select_on_poll
  - stub_set_fd_limit
  source_file: /src/xen/tools/ocaml/xenstored/select_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ocaml_sd_notify_ready
  - ocaml_sd_notify_ready
  source_file: /src/xen/tools/ocaml/xenstored/systemd_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stub_syslog
  source_file: /src/xen/tools/ocaml/xenstored/syslog_stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/xen/tools/flask/utils/setenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/xen/tools/flask/utils/getenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - all_bools
  - main
  source_file: /src/xen/tools/flask/utils/get-bool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - str2bool
  - main
  source_file: /src/xen/tools/flask/utils/set-bool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/xen/tools/flask/utils/loadpolicy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/xen/tools/flask/utils/label-pci.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IORESOURCE_TYPE_BITS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00001f00  '
    - item_type: preproc_def
      name: IORESOURCE_IO
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: IORESOURCE_MEM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: IORESOURCE_IRQ
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: IORESOURCE_DMA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: IORESOURCE_BUS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/flask/utils/label-pci.c
      type_or_value: '0x00001000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bitmaskof
  - fail
  - test_tsx_msr_consistency
  - test_tsx_msrs
  - probe_rtm_behaviour
  - sigill_handler
  - test_rtm_behaviour
  - dump_tsx_details
  - test_guest_policies
  - test_def_max_policies
  - test_guest
  - test_guests
  - test_tsx
  - main
  source_file: /src/xen/tools/tests/tsx/test-tsx.c
  types:
    enum:
    - enumerators:
      - name: RTM_UD
      - name: RTM_ABORT
      - name: RTM_OK
      item_type: enum
      name: rtm_behaviour
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
    preproc_defs:
    - item_type: preproc_def
      name: MSR_ARCH_CAPABILITIES
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '0x0000010a'
    - item_type: preproc_def
      name: ARCH_CAPS_TSX_CTRL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: (1 <<  7)
    - item_type: preproc_def
      name: MSR_TSX_FORCE_ABORT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '0x0000010f'
    - item_type: preproc_def
      name: MSR_TSX_CTRL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '0x00000122'
    - item_type: preproc_def
      name: MSR_MCU_OPT_CTRL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '0x00000123'
    - item_type: preproc_def
      name: guest_policy
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[0]
    - item_type: preproc_def
      name: host
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[XEN_SYSCTL_cpu_policy_host]
    - item_type: preproc_def
      name: pv_max
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[XEN_SYSCTL_cpu_policy_pv_max]
    - item_type: preproc_def
      name: hvm_max
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[XEN_SYSCTL_cpu_policy_hvm_max]
    - item_type: preproc_def
      name: pv_default
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[XEN_SYSCTL_cpu_policy_pv_default]
    - item_type: preproc_def
      name: hvm_default
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: policies[XEN_SYSCTL_cpu_policy_hvm_default]
    - item_type: preproc_def
      name: XBEGIN_STARTED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: XBEGIN_UD
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/tests/tsx/test-tsx.c
      type_or_value: '-2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUG_ON
  - ASSERT
  - spin_lock_init
  - spin_lock
  - spin_unlock
  - rwlock_init
  - read_lock
  - read_unlock
  - write_lock
  - write_unlock
  - xmalloc
  source_file: /src/xen/tools/tests/rangeset/harness.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __must_check
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type_or_value: __attribute__((__warn_unused_result__))
    - item_type: preproc_def
      name: xfree
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type_or_value: free
    - item_type: preproc_def
      name: safe_strcpy
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type_or_value: strcpy
    - item_type: preproc_def
      name: printk
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type_or_value: printf
    structs:
    - fields:
      - name: domain_id
        type: unsigned int
      - name: rangesets
        type: struct list_head
      - name: rangesets_lock
        type: spinlock_t
      item_type: struct
      name: domain
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/xen/tools/tests/rangeset/harness.h
    typedefs:
    - item_type: typedef
      name: rwlock_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type: bool
    - item_type: typedef
      name: spinlock_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/tests/rangeset/harness.h
      type: bool
    union: []
- function_names:
  - DECLARE_ACTIONS
  - DECLARE_RESULTS
  - print_range
  - count_ranges
  - check_ranges
  - print_both
  - main
  source_file: /src/xen/tools/tests/rangeset/test-rangeset.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start
        type: unsigned long
      item_type: struct
      name: range
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/xen/tools/tests/rangeset/test-rangeset.c
    - fields:
      - name: action
        type: "enum {\n        ADD,\n        REMOVE,\n    }"
      - name: r
        type: struct range
      item_type: struct
      name: action
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/xen/tools/tests/rangeset/test-rangeset.c
    - fields:
      - name: nr_actions
        type: unsigned int
      - name: '*actions'
        type: struct action
      - name: '*result'
        type: struct range
      item_type: struct
      name: test
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/xen/tools/tests/rangeset/test-rangeset.c
    typedefs: []
    union: []
- function_names:
  - prefetch
  - ASSERT
  - spin_lock_init
  - spin_lock
  - spin_unlock
  - read_lock
  - read_unlock
  - write_lock
  - write_unlock
  - is_hardware_domain
  - has_vpci
  - xzalloc
  - xmalloc
  - xfree
  - pci_get_pdev
  - pci_get_ro_map
  - test_bit
  - pci_conf_read8
  - pci_conf_read16
  - pci_conf_read32
  - BUG
  - ASSERT_UNREACHABLE
  source_file: /src/xen/tools/tests/vpci/emul.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __must_check
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/tests/vpci/emul.h
      type_or_value: __attribute__((__warn_unused_result__))
    - item_type: preproc_def
      name: PCI_CFG_SPACE_EXP_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/tests/vpci/emul.h
      type_or_value: '4096'
    structs:
    - fields:
      - name: pci_lock
        type: rwlock_t
      item_type: struct
      name: domain
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/xen/tools/tests/vpci/emul.h
    - fields:
      - name: '*vpci'
        type: struct vpci
      item_type: struct
      name: pci_dev
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/xen/tools/tests/vpci/emul.h
    - fields:
      - name: '*domain'
        type: struct domain
      item_type: struct
      name: vcpu
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/xen/tools/tests/vpci/emul.h
    typedefs:
    - item_type: typedef
      name: rwlock_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/tests/vpci/emul.h
      type: bool
    - item_type: typedef
      name: spinlock_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/tools/tests/vpci/emul.h
      type: bool
    union:
    - fields:
      - name: sbdf
        type: uint32_t
      item_type: union
      name: pci_sbdf_t
      pos:
        line_end: 84
        line_start: 66
        source_file: /src/xen/tools/tests/vpci/emul.h
- function_names:
  - vpci_read8
  - vpci_write8
  - vpci_read16
  - vpci_write16
  - vpci_read32
  - vpci_write32
  - vpci_read32_mask
  - vpci_write32_mask
  - VPCI_READ
  - VPCI_READ_CHECK
  - VPCI_WRITE
  - VPCI_WRITE_CHECK
  - VPCI_ADD_REG
  - VPCI_ADD_REG_MASK
  - VPCI_ADD_INVALID_REG
  - VPCI_ADD_INVALID_REG_MASK
  - VPCI_REMOVE_REG
  - VPCI_REMOVE_INVALID_REG
  - multiread4_check
  - multiwrite4_check
  - main
  source_file: /src/xen/tools/tests/vpci/main.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: uint32_t
      - name: rw1c_mask
        type: uint32_t
      item_type: struct
      name: mask_data
      pos:
        line_end: 75
        line_start: 72
        source_file: /src/xen/tools/tests/vpci/main.c
    typedefs: []
    union: []
- function_names:
  - PFN_DOWN
  - PFN_UP
  - pfn_to_paddr
  - paddr_to_pfn
  - ASSERT_UNREACHABLE
  - find_next
  - find_next_zero_bit
  - find_next_bit
  - flsl
  - ffsl
  - SWAP
  - sort
  source_file: /src/xen/tools/tests/pdx/harness.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: printk
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: printf
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: (unsigned int)(sizeof(unsigned long) * 8)
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: (1L << PAGE_SHIFT)
    - item_type: preproc_def
      name: MAX_ORDER
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: '18 '
    - item_type: preproc_def
      name: MAX_RANGES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_PFN_RANGES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: MAX_RANGES
    - item_type: preproc_def
      name: CONFIG_PDX_OFFSET_TBL_ORDER
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ASSERT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/tests/pdx/harness.h
      type_or_value: assert
    structs: []
    typedefs:
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/xen/tools/tests/pdx/harness.h
      type: uint64_t
    union: []
- function_names:
  - print_ranges
  - main
  source_file: /src/xen/tools/tests/pdx/test-pdx.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: start
        type: unsigned long
      item_type: struct
      name: range
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/xen/tools/tests/pdx/test-pdx.c
    - fields:
      - name: ranges[MAX_RANGES]
        type: struct range
      - name: compress
        type: bool
      item_type: struct
      name: "tests[] = {\n#ifdef __LP64__\n        /*\n         * Only for targets
        where unsigned long is 64bits, otherwise compiler\n         * will complain
        about truncation from 'long long' -> 'long' conversion.\n         *\n         *
        Real memory map from a 4s Intel GNR.  Not compressible using PDX\n         *
        mask compression.\n         */\n        {\n            .ranges = {\n                {
        .start =           0,   .end =     0x80000UL },\n                { .start
        =   0x0100000UL, .end =   0x8080000UL },\n                { .start =  0x63e80000UL,
        .end =  0x6be80000UL },\n                { .start =  0xc7e80000UL, .end =
        \ 0xcfe80000UL },\n                { .start = 0x12be80000UL, .end = 0x133e80000UL
        },\n            },\n#ifdef CONFIG_PDX_OFFSET_COMPRESSION\n            .compress
        = true,\n#else\n            .compress = false,\n#endif\n        },\n        /*
        Simple hole. */\n        {\n            .ranges = {\n                { .start
        =                                                 0,\n                  .end
        \  =                            (1UL << MAX_ORDER) * 1 },\n                {
        .start = (1UL << (MAX_ORDER * 2)) |                      0,\n                  .end
        \  = (1UL << (MAX_ORDER * 2)) | (1UL << MAX_ORDER) * 1 },\n            },\n
        \           .compress = true,\n        },\n        /* Simple hole, unsorted
        ranges. */\n        {\n            .ranges = {\n                { .start =
        (1UL << (MAX_ORDER * 2)) |                      0,\n                  .end
        \  = (1UL << (MAX_ORDER * 2)) | (1UL << MAX_ORDER) * 1 },\n                {
        .start =                                                 0,\n                  .end
        \  =                            (1UL << MAX_ORDER) * 1 },\n            },\n
        \           .compress = true,\n        },\n        /* PDX compression, 2 ranges
        covered by the lower mask. */\n        {\n            .ranges = {\n                {
        .start =                    0,\n                  .end   = (1 << MAX_ORDER)
        * 1 },\n                { .start = (1 << MAX_ORDER) * 2,\n                  .end
        \  = (1 << MAX_ORDER) * 3 },\n                { .start = (1 << MAX_ORDER)
        * 20,\n                  .end   = (1 << MAX_ORDER) * 22 },\n            },\n
        \           .compress = true,\n        },\n        /* Single range not starting
        at 0. */\n        {\n            .ranges = {\n                { .start = (1
        << MAX_ORDER) * 10,\n                  .end   = (1 << MAX_ORDER) * 11 },\n
        \           },\n            .compress = true,\n        },\n        /* Resulting
        PDX region size leads to no compression. */\n        {\n            .ranges
        = {\n                { .start =                    0,\n                  .end
        \  = (1 << MAX_ORDER) * 1 },\n                { .start = (1 << MAX_ORDER)
        * 2,\n                  .end   = (1 << MAX_ORDER) * 3 },\n                {
        .start = (1 << MAX_ORDER) * 4,\n                  .end   = (1 << MAX_ORDER)
        * 7 },\n                { .start = (1 << MAX_ORDER) * 8,\n                  .end
        \  = (1 << MAX_ORDER) * 12 },\n            },\n            .compress = false,\n
        \       },\n        /* AMD Versal Gen 2 ARM board. */\n        {\n            .ranges
        = {\n                { .start =          0,   .end =    0x80000UL },\n                {
        .start =   0x800000UL, .end =   0x880000UL },\n                { .start =
        0x50000000UL, .end = 0x50080000UL },\n                { .start = 0x60000000UL,
        .end = 0x60080000UL },\n                { .start = 0x70000000UL, .end = 0x70080000UL
        },\n            },\n            .compress = true,\n        },\n        /*
        Unsorted ranges, lower one not starting at 0. */\n        {\n        .ranges
        = {\n                { .start = (1UL << (35 - PAGE_SHIFT)) + (1 << MAX_ORDER)
        * 2,\n                  .end =   (1UL << (35 - PAGE_SHIFT)) + (1 << MAX_ORDER)
        * 3 },\n                { .start = (1 << MAX_ORDER) * 2,\n                  .end
        =   (1 << MAX_ORDER) * 3 },\n            },\n            .compress = true,\n
        \       },\n        /* Two ranges with the same high bit set. */\n        {\n
        \       .ranges = {\n                { .start = (1UL << (51 - PAGE_SHIFT))
        + (1 << MAX_ORDER) * 0,\n                  .end =   (1UL << (51 - PAGE_SHIFT))
        + (1 << MAX_ORDER) * 1 },\n                { .start = (1UL << (51 - PAGE_SHIFT))
        + (1 << MAX_ORDER) * 3,\n                  .end =   (1UL << (51 - PAGE_SHIFT))
        + (1 << MAX_ORDER) * 4 },\n            },\n            .compress = true,\n
        \       },\n#endif\n        /* AMD Naples Epyc 7281 2 sockets, 8 NUMA nodes.
        */\n        {\n            .ranges = {\n                { .start =         0,
        \  .end =      0xa0UL },\n                { .start =     0x100UL, .end =   0xb0000UL
        },\n                { .start =  0x100000UL, .end =  0x430000UL },\n                {
        .start =  0x430000UL, .end =  0x830000UL },\n                { .start =  0x830000UL,
        .end =  0xc30000UL },\n                { .start =  0xc30000UL, .end = 0x1030000UL
        },\n                { .start = 0x1030000UL, .end = 0x1430000UL },\n                {
        .start = 0x1430000UL, .end = 0x1830000UL },\n                { .start = 0x1830000UL,
        .end = 0x1c30000UL },\n                { .start = 0x1c30000UL, .end = 0x2030000UL
        },\n            },\n            .compress = false,\n        },\n        /*
        2-node 2GB per-node QEMU layout. */\n        {\n            .ranges = {\n
        \               { .start =        0,   .end =  0x80000UL },\n                {
        .start = 0x100000UL, .end = 0x180000UL },\n            },\n            .compress
        = true,\n        },\n        /* Not compressible, smaller than MAX_ORDER.
        */\n        {\n            .ranges = {\n                { .start =     0,
        \  .end =     1   },\n                { .start = 0x100UL, .end = 0x101UL },\n
        \           },\n            .compress = false,\n        },\n        /* Compressible,
        requires adjusting size to (1 << MAX_ORDER). */\n        {\n            .ranges
        = {\n                { .start =        0,   .end =        1   },\n                {
        .start = 0x100000UL, .end = 0x100001UL },\n            },\n            .compress
        = true,\n        },\n        /* 2s Intel CLX with contiguous ranges, no compression.
        */\n        {\n            .ranges = {\n                { .start =        0
        \ , .end =  0x180000UL },\n                { .start = 0x180000UL, .end = 0x3040000UL
        },\n            },\n            .compress = false,\n        },\n    }"
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/xen/tools/tests/pdx/test-pdx.c
    typedefs: []
    union: []
- function_names:
  - call_test
  - usage
  - ret0
  - verify_node
  - test_read_init
  - test_read
  - test_write_init
  - test_write
  - test_write_deinit
  - test_dir_init
  - test_dir
  - test_dir_deinit
  - test_rm_init
  - test_rm
  - test_ta1
  - test_ta2_init
  - test_ta2
  - test_ta2_deinit
  - test_ta3_init
  - test_ta3
  - test_ta3_deinit
  - TEST
  - cleanup
  - main
  source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_PATH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: '"xenstore-test"'
    - item_type: preproc_def
      name: WRITE_BUFFERS_N
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: '10'
    - item_type: preproc_def
      name: WRITE_BUFFERS_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: '4000'
    - item_type: preproc_def
      name: MAX_TA_LOOPS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: '100'
    - item_type: preproc_def
      name: test_read_deinit
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: ret0
    - item_type: preproc_def
      name: test_rm_deinit
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: ret0
    - item_type: preproc_def
      name: test_ta1_init
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: ret0
    - item_type: preproc_def
      name: test_ta1_deinit
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
      type_or_value: ret0
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*func_init)(uintptr_t par)
        type: int
      - name: (*func)(uintptr_t par)
        type: int
      - name: (*func_deinit)(uintptr_t par)
        type: int
      - name: par
        type: uintptr_t
      - name: '*descr'
        type: char
      item_type: struct
      name: test
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/xen/tools/tests/xenstore/test-xenstore.c
    typedefs: []
    union: []
- function_names:
  - gcc11_wrap
  - cpu_has_amd_erratum
  - read_bndcfgu
  - get_fpu_save_area
  - emul_save_fpu_state
  - emul_restore_fpu_state
  - emul_test_init
  - emul_test_cpuid
  - emul_test_read_cr
  - emul_test_read_xcr
  - emul_test_get_fpu
  - emul_test_put_fpu
  - rdpkru
  - wrpkru
  source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: cpu_has_mpx
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: __OS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
      type_or_value: '"l"  '
    - item_type: preproc_def
      name: __OP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
      type_or_value: '"e"  '
    - item_type: preproc_def
      name: __OS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
      type_or_value: '"q"  '
    - item_type: preproc_def
      name: __OP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
      type_or_value: '"r"  '
    structs: []
    typedefs: []
    union:
    - fields:
      - name: x[464]
        type: char
      item_type: union
      name: '*fxs = (void *)fpu_save_area'
      pos:
        line_end: 73
        line_start: 65
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.c
- function_names:
  - INSNX
  - INSN
  - INSN_PFP
  - INSN_PFP_NB
  - INSN_SFP
  - INSN_FP
  - record_access
  - read
  - write
  - test_one
  - test_pair
  - test_group
  - evex_disp8_test
  - RUN
  source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
  types:
    enum:
    - enumerators:
      - name: SPC_invalid
      - name: SPC_0f3a
      - name: SPC_0f38
      - name: SPC_0f
      - name: SPC_unused4
      - name: SPC_map5
      - name: SPC_map6
      - name: SPC_unused7
      item_type: enum
      name: spc
      pos:
        line_end: 25
        line_start: 16
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    - enumerators:
      - name: PFX_
      - name: PFX_f3
      - name: PFX_66
      - name: PFX_f2
      item_type: enum
      name: pfx
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    - enumerators:
      - name: VL_128
      - name: VL_512
      - name: VL_256
      item_type: enum
      name: vl
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    - enumerators:
      - name: SC_vl
      - name: SC_el
      item_type: enum
      name: scale
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    - enumerators:
      - name: VSZ_vl
      - name: VSZ_vl_8
      - name: VSZ_vl_2
      - name: VSZ_vl_4
      - name: VSZ_el
      - name: VSZ_el_2
      - name: VSZ_el_4
      - name: VSZ_el_8
      item_type: enum
      name: vsz
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    - enumerators:
      - name: ESZ_d
      - name: ESZ_q
      - name: ESZ_sd
      - name: ESZ_dq
      - name: ESZ_d_nb
      - name: ESZ_q_nb
      - name: ESZ_d_WIG
      - name: ESZ_b
      - name: ESZ_w
      - name: ESZ_bw
      - name: ESZ_fp16
      item_type: enum
      name: esz
      pos:
        line_end: 83
        line_start: 68
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    preproc_defs:
    - item_type: preproc_def
      name: ESZ_dq64
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
      type_or_value: ESZ_dq
    - item_type: preproc_def
      name: ESZ_dq64
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
      type_or_value: ESZ_d_WIG
    structs:
    - fields:
      - name: '*mnemonic'
        type: char
      - name: opc
        type: unsigned int
      - name: spc
        type: unsigned int
      - name: pfx
        type: unsigned int
      - name: vsz
        type: unsigned int
      - name: esz
        type: unsigned int
      - name: scale
        type: unsigned int
      - name: ext
        type: unsigned int
      item_type: struct
      name: test
      pos:
        line_end: 14
        line_start: 5
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
    typedefs: []
    union:
    - fields:
      - name: raw[3]
        type: uint8_t
      item_type: union
      name: evex
      pos:
        line_end: 805
        line_start: 786
        source_file: /src/xen/tools/tests/x86_emulator/evex-disp8.c
- function_names:
  - ENTRY
  - ENTRY
  - DECL_PAIR
  - DECL_QUARTET
  - DECL_OCTET
  - B
  - B_
  - B
  - B
  - BR
  - BR2
  - REN
  - OVR
  - OVR_SFP
  - OVR_BW
  - OVR_DQ
  - OVR_VFP
  - OVR_FMA
  - OVR_FP
  - OVR_INT
  - touch
  - undef
  source_file: /src/xen/tools/tests/x86_emulator/simd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELEM_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: INT_SIZE
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: QI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: HI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: SI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: DI
    - item_type: preproc_def
      name: ELEM_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: UINT_SIZE
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: QI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: HI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: SI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: DI
    - item_type: preproc_def
      name: ELEM_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: FLOAT_SIZE
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: SF
    - item_type: preproc_def
      name: ELEM_SFX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '"s"'
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: DF
    - item_type: preproc_def
      name: ELEM_SFX
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: HF
    - item_type: preproc_def
      name: ELEM_SFX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '"h"'
    - item_type: preproc_def
      name: VEC_SIZE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: ELEM_SIZE
    - item_type: preproc_def
      name: ELEM_COUNT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: (VEC_SIZE / ELEM_SIZE)
    - item_type: preproc_def
      name: HALF_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: (VEC_SIZE / 2)
    - item_type: preproc_def
      name: HALF_SIZE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '16'
    - item_type: preproc_def
      name: QUARTER_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: (VEC_SIZE / 4)
    - item_type: preproc_def
      name: QUARTER_SIZE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EIGHTH_SIZE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: (VEC_SIZE / 8)
    - item_type: preproc_def
      name: EIGHTH_SIZE
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: '16'
    - item_type: preproc_def
      name: B_
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: B
    - item_type: preproc_def
      name: BR
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: B
    - item_type: preproc_def
      name: BR_
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: B_
    - item_type: preproc_def
      name: BR2
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: BR
    - item_type: preproc_def
      name: BR_
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: BR
    - item_type: preproc_def
      name: __builtin_ia32_broadcastf32x4_512_mask
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_broadcastf32x4_512
    - item_type: preproc_def
      name: __builtin_ia32_broadcasti32x4_512_mask
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_broadcasti32x4_512
    - item_type: preproc_def
      name: __builtin_ia32_exp2pd512_mask
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_exp2pd_mask
    - item_type: preproc_def
      name: __builtin_ia32_exp2ps512_mask
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_exp2ps_mask
    - item_type: preproc_def
      name: __builtin_ia32_insertf32x4_512_mask
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_insertf32x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_insertf32x8_512_mask
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_insertf32x8_mask
    - item_type: preproc_def
      name: __builtin_ia32_insertf64x4_512_mask
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_insertf64x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_inserti32x4_512_mask
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_inserti32x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_inserti32x8_512_mask
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_inserti32x8_mask
    - item_type: preproc_def
      name: __builtin_ia32_inserti64x4_512_mask
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_inserti64x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_rcp28pd512_mask
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rcp28pd_mask
    - item_type: preproc_def
      name: __builtin_ia32_rcp28ps512_mask
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rcp28ps_mask
    - item_type: preproc_def
      name: __builtin_ia32_rndscalepd_512_mask
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rndscalepd_mask
    - item_type: preproc_def
      name: __builtin_ia32_rndscaleps_512_mask
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rndscaleps_mask
    - item_type: preproc_def
      name: __builtin_ia32_rsqrt28pd512_mask
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rsqrt28pd_mask
    - item_type: preproc_def
      name: __builtin_ia32_rsqrt28ps512_mask
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_rsqrt28ps_mask
    - item_type: preproc_def
      name: __builtin_ia32_shuf_f32x4_512_mask
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_shuf_f32x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_shuf_f64x2_512_mask
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_shuf_f64x2_mask
    - item_type: preproc_def
      name: __builtin_ia32_shuf_i32x4_512_mask
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_shuf_i32x4_mask
    - item_type: preproc_def
      name: __builtin_ia32_shuf_i64x2_512_mask
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type_or_value: __builtin_ia32_shuf_i64x2_mask
    structs: []
    typedefs:
    - item_type: typedef
      name: int
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: unsigned
    - item_type: typedef
      name: __attribute__((vector_size(VEC_SIZE)))
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: char
    - item_type: typedef
      name: __attribute__((vector_size(VEC_SIZE)))
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: short
    - item_type: typedef
      name: __attribute__((vector_size(VEC_SIZE)))
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: int
    - item_type: typedef
      name: __attribute__((vector_size(VEC_SIZE)))
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: float
    - item_type: typedef
      name: long
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: long
    - item_type: typedef
      name: __attribute__((vector_size(VEC_SIZE)))
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: double
    - item_type: typedef
      name: vint_t
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: vqi_t
    - item_type: typedef
      name: vint_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: vhi_t
    - item_type: typedef
      name: vint_t
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: vsi_t
    - item_type: typedef
      name: vint_t
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: vdi_t
    - item_type: typedef
      name: ((vec_t){}[0])
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: typeof
    - item_type: typedef
      name: __attribute__((vector_size(HALF_SIZE)))
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: char
    - item_type: typedef
      name: __attribute__((vector_size(HALF_SIZE)))
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: short
    - item_type: typedef
      name: __attribute__((vector_size(HALF_SIZE)))
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: int
    - item_type: typedef
      name: long
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: long
    - item_type: typedef
      name: __attribute__((vector_size(HALF_SIZE)))
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: _Float16
    - item_type: typedef
      name: __attribute__((vector_size(HALF_SIZE)))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: float
    - item_type: typedef
      name: ((vec_t){}[0])
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: typeof
    - item_type: typedef
      name: __attribute__((vector_size(QUARTER_SIZE)))
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: char
    - item_type: typedef
      name: __attribute__((vector_size(QUARTER_SIZE)))
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: short
    - item_type: typedef
      name: __attribute__((vector_size(QUARTER_SIZE)))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: int
    - item_type: typedef
      name: long
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: long
    - item_type: typedef
      name: __attribute__((vector_size(QUARTER_SIZE)))
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: _Float16
    - item_type: typedef
      name: ((vec_t){}[0])
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: typeof
    - item_type: typedef
      name: __attribute__((vector_size(EIGHTH_SIZE)))
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: char
    - item_type: typedef
      name: __attribute__((vector_size(EIGHTH_SIZE)))
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: short
    - item_type: typedef
      name: __attribute__((vector_size(EIGHTH_SIZE)))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: int
    - item_type: typedef
      name: long
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/xen/tools/tests/x86_emulator/simd.h
      type: long
    union: []
- function_names:
  - to_mask
  - eq
  - widen
  - to_mask
  - eq
  - BG_
  - BS_
  - eq
  - BG_
  - BS_
  - BG
  - BS
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - gather
  - scatter
  - to_bool
  - to_bool
  - gather
  - gather
  - gather
  - gather
  - gather
  - gather
  - gather
  - gather
  - gather
  - gather
  - eq
  - GLUE_
  - GLUE
  - PUT2
  - PUT4
  - PUT8
  - PUT16
  - PUT32
  - PUT64
  - ((vec_t)
  - sg_test
  source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELEM_SIZE
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: INT_SIZE
    - item_type: preproc_def
      name: ELEM_SIZE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: FLOAT_SIZE
    - item_type: preproc_def
      name: VEC_SIZE
      pos:
        line_end: 8
        line_start: 6
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: "(IDX_SIZE <= ELEM_SIZE ? VEC_MAX \\\n                                        :
        VEC_MAX * ELEM_SIZE / IDX_SIZE)"
    - item_type: preproc_def
      name: VEC_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: SI
    - item_type: preproc_def
      name: MODE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: DI
    - item_type: preproc_def
      name: IVEC_SIZE
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: "(ELEM_SIZE <= IDX_SIZE ? VEC_MAX \\\n                                         :
        VEC_MAX * IDX_SIZE / ELEM_SIZE)"
    - item_type: preproc_def
      name: IVEC_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ITEM_COUNT
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: "(VEC_SIZE / ELEM_SIZE < IVEC_SIZE / IDX_SIZE ? \\\n                    VEC_SIZE
        / ELEM_SIZE : IVEC_SIZE / IDX_SIZE)"
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    - item_type: preproc_def
      name: si
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: 3si
    - item_type: preproc_def
      name: di
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: 3di
    - item_type: preproc_def
      name: v8df
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v2df
    - item_type: preproc_def
      name: v8di
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v2di
    - item_type: preproc_def
      name: v16sf
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v4sf
    - item_type: preproc_def
      name: v16si
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v4si
    - item_type: preproc_def
      name: v8df
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v4df
    - item_type: preproc_def
      name: v8di
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v4di
    - item_type: preproc_def
      name: v16sf
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v8sf
    - item_type: preproc_def
      name: v16si
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: v8si
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv4si
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv4sf
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv2df
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv8si
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv8sf
    - item_type: preproc_def
      name: gather
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type_or_value: __builtin_ia32_gathersiv4df
    structs: []
    typedefs:
    - item_type: typedef
      name: int
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type: signed
    - item_type: typedef
      name: long
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/tests/x86_emulator/simd-sg.c
      type: long
    union: []
- function_names:
  - ASSERT_UNREACHABLE
  - DEFINE_PER_CPU
  - this_cpu
  - likely
  - unlikely
  - ASM_FLAG_OUT
  - ASM_FLAG_OUT
  - is_canonical_address
  - place_ret
  - WRAP
  - xgetbv
  - xcr0_mask
  - cache_line_size
  source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASSERT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: assert
    - item_type: preproc_def
      name: __maybe_unused
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: __attribute__((__unused__))
    - item_type: preproc_def
      name: fallthrough
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: __attribute__((__fallthrough__))
    - item_type: preproc_def
      name: fallthrough
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: 'do {} while (0)  '
    - item_type: preproc_def
      name: hweight32
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: __builtin_popcount
    - item_type: preproc_def
      name: hweight64
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: __builtin_popcountll
    - item_type: preproc_def
      name: MMAP_SZ
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: cpu_has_xsave
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.basic.raw[1].c & (1u << 27))
    - item_type: preproc_def
      name: cpu_has_fpu
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.fpu
    - item_type: preproc_def
      name: cpu_has_mmx
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.mmx
    - item_type: preproc_def
      name: cpu_has_fxsr
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.fxsr
    - item_type: preproc_def
      name: cpu_has_sse
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.sse
    - item_type: preproc_def
      name: cpu_has_sse2
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.sse2
    - item_type: preproc_def
      name: cpu_has_sse3
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.sse3
    - item_type: preproc_def
      name: cpu_has_pclmulqdq
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.pclmulqdq
    - item_type: preproc_def
      name: cpu_has_ssse3
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.ssse3
    - item_type: preproc_def
      name: cpu_has_fma
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.basic.fma && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_sse4_1
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.sse4_1
    - item_type: preproc_def
      name: cpu_has_sse4_2
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.sse4_2
    - item_type: preproc_def
      name: cpu_has_popcnt
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.popcnt
    - item_type: preproc_def
      name: cpu_has_aesni
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.basic.aesni
    - item_type: preproc_def
      name: cpu_has_avx
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.basic.avx  && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_f16c
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.basic.f16c && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_avx2
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.avx2 && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_bmi1
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.bmi1
    - item_type: preproc_def
      name: cpu_has_bmi2
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.bmi2
    - item_type: preproc_def
      name: cpu_has_avx512f
      pos:
        line_end: 172
        line_start: 170
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512f && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512dq
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512dq && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512_ifma
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_ifma && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512cd
      pos:
        line_end: 178
        line_start: 176
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512cd && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_sha
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.sha
    - item_type: preproc_def
      name: cpu_has_avx512bw
      pos:
        line_end: 181
        line_start: 179
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512bw && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512vl
      pos:
        line_end: 183
        line_start: 181
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512vl && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512_vbmi
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_vbmi && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512_vbmi2
      pos:
        line_end: 187
        line_start: 185
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_vbmi2 && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_gfni
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.gfni
    - item_type: preproc_def
      name: cpu_has_vaes
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.vaes && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_vpclmulqdq
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.vpclmulqdq && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_avx512_vnni
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_vnni && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512_bitalg
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_bitalg && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_avx512_vpopcntdq
      pos:
        line_end: 196
        line_start: 194
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_vpopcntdq && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_movdiri
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.movdiri
    - item_type: preproc_def
      name: cpu_has_movdir64b
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.movdir64b
    - item_type: preproc_def
      name: cpu_has_avx512_vp2intersect
      pos:
        line_end: 200
        line_start: 198
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_vp2intersect && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_serialize
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.serialize
    - item_type: preproc_def
      name: cpu_has_avx512_fp16
      pos:
        line_end: 203
        line_start: 201
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_fp16 && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_sha512
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.sha512 && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_sm3
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.sm3 && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_sm4
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.sm4 && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_avx_vnni
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.avx_vnni && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_avx512_bf16
      pos:
        line_end: 209
        line_start: 207
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx512_bf16 && \\\n                                     xcr0_mask(0xe6))"
    - item_type: preproc_def
      name: cpu_has_cmpccxadd
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.feat.cmpccxadd
    - item_type: preproc_def
      name: cpu_has_avx_ifma
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.feat.avx_ifma && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_avx_vnni_int8
      pos:
        line_end: 213
        line_start: 211
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx_vnni_int8 && \\\n                                     xcr0_mask(6))"
    - item_type: preproc_def
      name: cpu_has_avx_ne_convert
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx_ne_convert && \\\n                                     xcr0_mask(6))"
    - item_type: preproc_def
      name: cpu_has_avx_vnni_int16
      pos:
        line_end: 217
        line_start: 215
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: "(cpu_policy.feat.avx_vnni_int16 && \\\n                                     xcr0_mask(6))"
    - item_type: preproc_def
      name: cpu_has_xgetbv1
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_has_xsave && cpu_policy.xstate.xgetbv1)
    - item_type: preproc_def
      name: cpu_has_3dnow_ext
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.extd._3dnowext
    - item_type: preproc_def
      name: cpu_has_sse4a
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.extd.sse4a
    - item_type: preproc_def
      name: cpu_has_xop
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.extd.xop  && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_fma4
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: (cpu_policy.extd.fma4 && xcr0_mask(6))
    - item_type: preproc_def
      name: cpu_has_tbm
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/tools/tests/x86_emulator/x86-emulate.h
      type_or_value: cpu_policy.extd.tbm
    structs: []
    typedefs: []
    union: []
- function_names:
  - eq
  - lane_shr_unit
  - to_bool
  - to_bool
  - eq
  - lane_shr_unit
  - CLMUL
  - clmul
  - clmul
  - clmul
  - clmul_ll
  - clmul_hl
  - clmul_lh
  - clmul_hh
  - lane_shr_i
  - lane_shr_v
  - lane_shr_v
  - clmul_test
  source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UINT_SIZE
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    - item_type: preproc_def
      name: vpshrd
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: __builtin_ia32_vpshrd_v2di
    - item_type: preproc_def
      name: vpshrd
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: __builtin_ia32_vpshrd_v4di
    - item_type: preproc_def
      name: vpshrd
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: __builtin_ia32_vpshrd_v8di
    - item_type: preproc_def
      name: lane_shr_i
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/tests/x86_emulator/simd-clmul.c
      type_or_value: lane_shr_v
    structs: []
    typedefs: []
    union: []
- function_names:
  - AES
  - imc
  - AES
  - imc
  - AES
  - imc
  - eq
  - aes
  - to_bool
  - aes
  - to_bool
  - aes
  - eq
  - aes_test
  source_file: /src/xen/tools/tests/x86_emulator/simd-aes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UINT_SIZE
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/tools/tests/x86_emulator/simd-aes.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/tests/x86_emulator/simd-aes.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    structs: []
    typedefs: []
    union: []
- function_names:
  - eq
  - eq
  - eq
  - eq
  - eq
  - eq
  - eq
  - eq
  - eq
  - eq
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - _to_bool
  - to_bool
  - eq
  - to_int
  - to_wint
  - to_u_int
  - to_u_int
  - to_u_int
  - to_uint
  - to_uwint
  - to_int
  - to_int
  - to_uint
  - to_w_int
  - to_wint
  - to_uwint
  - to_int
  - to_uint
  - to_wint
  - to_uwint
  - to_int
  - to_uint
  - low_half
  - high_half
  - insert_half
  - _half
  - low_half
  - high_half
  - insert_half
  - _half
  - low_half
  - high_half
  - insert_half
  - to_w_int
  - to_wint
  - to_uwint
  - to_int
  - to_int
  - to_int
  - to_int
  - scalar_1op
  - scalar_2op
  - low_half
  - high_half
  - movlhps
  - insert_pair
  - recip
  - rsqrt
  - getexp
  - getmant
  - recip
  - rsqrt
  - recip
  - rsqrt
  - scale
  - sqrt
  - trunc
  - getexp
  - getmant
  - recip
  - rsqrt
  - recip
  - rsqrt
  - scale
  - sqrt
  - trunc
  - getexp
  - getmant
  - recip
  - rsqrt
  - scale
  - sqrt
  - trunc
  - _half
  - low_half
  - high_half
  - low_quarter
  - broadcast
  - broadcast_pair
  - broadcast_octet
  - insert_octet
  - frac
  - getexp
  - getmant
  - max
  - min
  - max
  - min
  - mix
  - scale
  - recip
  - rsqrt
  - recip
  - rsqrt
  - shrink1
  - sqrt
  - trunc
  - widen1
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - broadcast_quartet
  - insert_pair
  - insert_quartet
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - broadcast
  - broadcast
  - broadcast_pair
  - insert_pair
  - broadcast_quartet
  - insert_quartet
  - frac
  - getexp
  - getmant
  - max
  - min
  - max
  - min
  - mix
  - scale
  - recip
  - rsqrt
  - recip
  - rsqrt
  - sqrt
  - trunc
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - frac
  - getexp
  - getmant
  - max
  - min
  - scale
  - recip
  - rsqrt
  - shrink1
  - shrink2
  - sqrt
  - trunc
  - widen1
  - widen2
  - broadcast
  - broadcast
  - max
  - min
  - recip
  - rsqrt
  - sqrt
  - swap
  - swap2
  - swap2
  - broadcast
  - broadcast
  - interleave_hi
  - interleave_lo
  - max
  - min
  - recip
  - rsqrt
  - sqrt
  - swap
  - swap2
  - recip
  - rsqrt
  - sqrt
  - broadcast
  - broadcast
  - max
  - min
  - recip
  - rsqrt
  - sqrt
  - swap
  - swap2
  - interleave_hi
  - interleave_lo
  - max
  - min
  - recip
  - rsqrt
  - sqrt
  - swap
  - swap2
  - recip
  - rsqrt
  - sqrt
  - low_half
  - low_quarter
  - broadcast
  - broadcast2
  - broadcast_pair
  - broadcast_octet
  - insert_octet
  - interleave_hi
  - interleave_lo
  - swap
  - broadcast_quartet
  - insert_pair
  - insert_quartet
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - mix
  - rotr
  - shrink1
  - broadcast
  - broadcast2
  - broadcast_pair
  - insert_pair
  - broadcast_quartet
  - insert_quartet
  - interleave_hi
  - interleave_lo
  - swap
  - interleave_hi
  - interleave_lo
  - swap
  - swap2
  - mix
  - rotr
  - swap3
  - swap3
  - abs
  - max
  - min
  - mul_full
  - widen1
  - max
  - min
  - mul_full
  - widen1
  - abs
  - max
  - min
  - max
  - min
  - broadcast
  - broadcast2
  - interleave_hi
  - interleave_lo
  - rotr
  - swap
  - interleave_hi
  - interleave_lo
  - mix
  - shrink1
  - shrink2
  - shrink3
  - swap2
  - broadcast
  - broadcast2
  - interleave_hi
  - interleave_lo
  - rotr
  - swap
  - interleave_hi
  - interleave_lo
  - mix
  - shrink1
  - shrink2
  - swap2
  - abs
  - max
  - min
  - widen1
  - widen2
  - widen3
  - max
  - min
  - widen1
  - widen2
  - widen3
  - abs
  - max
  - min
  - mul_hi
  - widen1
  - widen2
  - max
  - min
  - mul_hi
  - widen1
  - widen2
  - interleave_hi
  - interleave_lo
  - interleave_hi
  - interleave_lo
  - swap
  - interleave_hi
  - interleave_lo
  - swap
  - interleave_hi
  - interleave_lo
  - swap
  - max
  - min
  - max
  - min
  - mul_hi
  - mul_hi
  - mul_full
  - select
  - swap_lanes
  - broadcast
  - copysignz
  - rotr
  - broadcast
  - copysignz
  - hadd
  - hsub
  - mix
  - rotr
  - broadcast
  - copysignz
  - hadd
  - hsub
  - mix
  - rotr
  - select
  - swap
  - mix
  - rotr
  - select
  - swap
  - swap2
  - abs
  - max
  - min
  - widen1
  - widen2
  - widen3
  - max
  - min
  - widen1
  - widen2
  - widen3
  - abs
  - max
  - min
  - mul_hi
  - widen1
  - widen2
  - max
  - min
  - mul_hi
  - widen1
  - widen2
  - abs
  - max
  - min
  - widen1
  - max
  - min
  - mul_full
  - widen1
  - broadcast
  - broadcast
  - addsub
  - dup_hi
  - dup_lo
  - hadd
  - hsub
  - addsub
  - dup_lo
  - hadd
  - hsub
  - addsub
  - dup_hi
  - dup_lo
  - hadd
  - hsub
  - hadd
  - hsub
  - addsub
  - dup_lo
  - hadd
  - hsub
  - hadd
  - hsub
  - dup_hi
  - dup_lo
  - dup_lo
  - dup_hi
  - dup_lo
  - abs
  - abs
  - abs
  - copysignz
  - swap
  - rotr
  - copysignz
  - hadd
  - hsub
  - rotr
  - copysignz
  - hadd
  - hsub
  - rotr
  - rotr
  - max
  - min
  - widen1
  - widen2
  - widen3
  - widen1
  - widen2
  - max
  - min
  - mul_full
  - widen1
  - widen1
  - widen2
  - widen3
  - max
  - min
  - widen1
  - widen2
  - max
  - min
  - widen1
  - select
  - dot_product
  - select
  - trunc
  - dot_product
  - select
  - trunc
  - mix
  - mix
  - mix
  - mix
  - mix
  - dot_product
  - mix
  - select
  - select2
  - trunc
  - mix
  - select
  - select2
  - trunc
  - max
  - min
  - trunc
  - trunc
  - select
  - swap2
  - swap2
  - frac
  - frac
  - hadd
  - hsub
  - hadd
  - hadd
  - hsub
  - hadd
  - select
  - frac
  - frac
  - frac
  - frac
  - low_half
  - low_quarter
  - low_eighth
  - simd_test
  source_file: /src/xen/tools/tests/x86_emulator/simd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    - item_type: preproc_def
      name: max
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: __builtin_ia32_pfmax
    - item_type: preproc_def
      name: min
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: __builtin_ia32_pfmin
    - item_type: preproc_def
      name: vec_t
      pos:
        line_end: 1153
        line_start: 1144
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: "t_; \\\n    asm ( \"vpermil2ps $0, %3, %2, %1, %0\" : \\\n          \"=x\"
        (t_) : \\\n          \"x\" ((vec_t){}), \"m\" (x), \"x\" (__builtin_ia32_cvtps2dq(inv)
        + 3) ); \\\n    t_; \\\n})"
    - item_type: preproc_def
      name: vdi_t
      pos:
        line_end: 1168
        line_start: 1156
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: "s_ = __builtin_ia32_pmovsxdq128( \\\n                   __builtin_ia32_cvtpd2dq(inv)
        + 1) << 1; \\\n    vec_t t_; \\\n    asm ( \"vpermil2pd $0, %3, %2, %1, %0\"
        : \\\n          \"=x\" (t_) : \"x\" ((vec_t){}), \"x\" (x), \"m\" (s_) );
        \\\n    t_; \\\n})"
    - item_type: preproc_def
      name: broadcast_half
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_pair
    - item_type: preproc_def
      name: broadcast_quarter
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_pair
    - item_type: preproc_def
      name: broadcast_eighth
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_pair
    - item_type: preproc_def
      name: insert_half
      pos:
        line_end: 1275
        line_start: 1274
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_pair
    - item_type: preproc_def
      name: insert_quarter
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_pair
    - item_type: preproc_def
      name: insert_eighth
      pos:
        line_end: 1279
        line_start: 1278
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_pair
    - item_type: preproc_def
      name: broadcast_half
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_quartet
    - item_type: preproc_def
      name: broadcast_quarter
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_quartet
    - item_type: preproc_def
      name: insert_half
      pos:
        line_end: 1293
        line_start: 1292
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_quartet
    - item_type: preproc_def
      name: insert_quarter
      pos:
        line_end: 1295
        line_start: 1294
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_quartet
    - item_type: preproc_def
      name: broadcast_half
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: broadcast_octet
    - item_type: preproc_def
      name: insert_half
      pos:
        line_end: 1304
        line_start: 1303
        source_file: /src/xen/tools/tests/x86_emulator/simd.c
      type_or_value: insert_octet
    structs: []
    typedefs: []
    union: []
- function_names:
  - F
  - Blowfish_Encrypt
  - Blowfish_Decrypt
  - Blowfish_Init
  - blowfish_test
  source_file: /src/xen/tools/tests/x86_emulator/blowfish.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/tests/x86_emulator/blowfish.c
      type_or_value: '16'
    structs:
    - fields:
      - name: P[16 + 2]
        type: uint32_t
      - name: S[4][256]
        type: uint32_t
      item_type: struct
      name: BLOWFISH_CTX
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/xen/tools/tests/x86_emulator/blowfish.c
    typedefs: []
    union: []
- function_names:
  - GF
  - GF
  - GF
  - eq
  - mul
  - transform
  - bcstq
  - to_bool
  - bcstq
  - to_bool
  - eq
  - mul
  - transform
  - gf_test
  source_file: /src/xen/tools/tests/x86_emulator/simd-gf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UINT_SIZE
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/tools/tests/x86_emulator/simd-gf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/tests/x86_emulator/simd-gf.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    structs: []
    typedefs: []
    union: []
- function_names:
  - VSIB
  - print_insn
  - do_test
  - predicates_test
  source_file: /src/xen/tools/tests/x86_emulator/predicates.c
  types:
    enum:
    - enumerators:
      - name: mem_none
      - name: mem_write
      - name: mem_read
      item_type: enum
      name: mem_access
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - enumerators:
      - name: pfx_no
      - name: pfx_f2
      - name: pfx_66
      - name: pfx_f3
      item_type: enum
      name: pfx
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    preproc_defs:
    - item_type: preproc_def
      name: F
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: T
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: N
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: mem_none
    - item_type: preproc_def
      name: R
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: mem_read
    - item_type: preproc_def
      name: W
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: mem_write
    - item_type: preproc_def
      name: opc
      pos:
        line_end: 34
        line_start: 25
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: ') | 7 }, more }  '
    - item_type: preproc_def
      name: opc
      pos:
        line_end: 51
        line_start: 34
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: ') | 0xf }, more }  '
    - item_type: preproc_def
      name: WIG
      pos:
        line_end: 1048
        line_start: 1047
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '0'
    - item_type: preproc_def
      name: W0
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '1'
    - item_type: preproc_def
      name: W1
      pos:
        line_end: 1050
        line_start: 1049
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '2'
    - item_type: preproc_def
      name: Wn
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: (W0 | W1)
    - item_type: preproc_def
      name: LIG
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '0'
    - item_type: preproc_def
      name: L0
      pos:
        line_end: 1054
        line_start: 1053
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '1'
    - item_type: preproc_def
      name: L1
      pos:
        line_end: 1055
        line_start: 1054
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '2'
    - item_type: preproc_def
      name: Ln
      pos:
        line_end: 1056
        line_start: 1055
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: (L0 | L1)
    - item_type: preproc_def
      name: L2
      pos:
        line_end: 1628
        line_start: 1627
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: '4'
    - item_type: preproc_def
      name: Ln
      pos:
        line_end: 1629
        line_start: 1628
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
      type_or_value: (L0 | L1 | L2)
    structs:
    - fields:
      - name: opc[8]
        type: uint8_t
      - name: len[2]
        type: uint8_t
      - name: modrm
        type: bool
      - name: mem
        type: uint8_t
      - name: pfx
        type: uint8_t
      item_type: struct
      name: "legacy[] = {\n    { { 0x00 }, { 2, 2 }, T, W }, /* add */\n    { { 0x01
        }, { 2, 2 }, T, W }, /* add */\n    { { 0x02 }, { 2, 2 }, T, R }, /* add */\n
        \   { { 0x03 }, { 2, 2 }, T, R }, /* add */\n    { { 0x04 }, { 2, 2 }, F,
        N }, /* add */\n    { { 0x05 }, { 5, 5 }, F, N }, /* add */\n    { { 0x06
        }, { 1, 0 }, F, W }, /* push %es */\n    { { 0x07 }, { 1, 0 }, F, R }, /*
        pop %es */\n    { { 0x08 }, { 2, 2 }, T, W }, /* or */\n    { { 0x09 }, {
        2, 2 }, T, W }, /* or */\n    { { 0x0a }, { 2, 2 }, T, R }, /* or */\n    {
        { 0x0b }, { 2, 2 }, T, R }, /* or */\n    { { 0x0c }, { 2, 2 }, F, N }, /*
        or */\n    { { 0x0d }, { 5, 5 }, F, N }, /* or */\n    { { 0x0e }, { 1, 0
        }, F, W }, /* push %cs */\n    { { 0x10 }, { 2, 2 }, T, W }, /* adc */\n    {
        { 0x11 }, { 2, 2 }, T, W }, /* adc */\n    { { 0x12 }, { 2, 2 }, T, R }, /*
        adc */\n    { { 0x13 }, { 2, 2 }, T, R }, /* adc */\n    { { 0x14 }, { 2,
        2 }, F, N }, /* adc */\n    { { 0x15 }, { 5, 5 }, F, N }, /* adc */\n    {
        { 0x16 }, { 1, 0 }, F, W }, /* push %ss */\n    { { 0x17 }, { 1, 0 }, F, R
        }, /* pop %ss */\n    { { 0x18 }, { 2, 2 }, T, W }, /* adc */\n    { { 0x19
        }, { 2, 2 }, T, W }, /* adc */\n    { { 0x1a }, { 2, 2 }, T, R }, /* adc */\n
        \   { { 0x1b }, { 2, 2 }, T, R }, /* adc */\n    { { 0x1c }, { 2, 2 }, F,
        N }, /* adc */\n    { { 0x1d }, { 5, 5 }, F, N }, /* adc */\n    { { 0x1e
        }, { 1, 0 }, F, W }, /* push %ds */\n    { { 0x1f }, { 1, 0 }, F, R }, /*
        pop %ds */\n    { { 0x20 }, { 2, 2 }, T, W }, /* and */\n    { { 0x21 }, {
        2, 2 }, T, W }, /* and */\n    { { 0x22 }, { 2, 2 }, T, R }, /* and */\n    {
        { 0x23 }, { 2, 2 }, T, R }, /* and */\n    { { 0x24 }, { 2, 2 }, F, N }, /*
        and */\n    { { 0x25 }, { 5, 5 }, F, N }, /* and */\n    { { 0x27 }, { 1,
        0 }, F, N }, /* daa */\n    { { 0x28 }, { 2, 2 }, T, W }, /* sub */\n    {
        { 0x29 }, { 2, 2 }, T, W }, /* sub */\n    { { 0x2a }, { 2, 2 }, T, R }, /*
        sub */\n    { { 0x2b }, { 2, 2 }, T, R }, /* sub */\n    { { 0x2c }, { 2,
        2 }, F, N }, /* sub */\n    { { 0x2d }, { 5, 5 }, F, N }, /* sub */\n    {
        { 0x2f }, { 1, 0 }, F, N }, /* das */\n    { { 0x30 }, { 2, 2 }, T, W }, /*
        xor */\n    { { 0x31 }, { 2, 2 }, T, W }, /* xor */\n    { { 0x32 }, { 2,
        2 }, T, R }, /* xor */\n    { { 0x33 }, { 2, 2 }, T, R }, /* xor */\n    {
        { 0x34 }, { 2, 2 }, F, N }, /* xor */\n    { { 0x35 }, { 5, 5 }, F, N }, /*
        xor */\n    { { 0x37 }, { 1, 0 }, F, N }, /* aaa */\n    { { 0x38 }, { 2,
        2 }, T, R }, /* cmp */\n    { { 0x39 }, { 2, 2 }, T, R }, /* cmp */\n    {
        { 0x3a }, { 2, 2 }, T, R }, /* cmp */\n    { { 0x3b }, { 2, 2 }, T, R }, /*
        cmp */\n    { { 0x3c }, { 2, 2 }, F, N }, /* cmp */\n    { { 0x3d }, { 5,
        5 }, F, N }, /* cmp */\n    { { 0x3f }, { 1, 0 }, F, N }, /* aas */\n    REG(0x40,
        \  { 1, 0 }, F, N ), /* inc */\n    REG(0x48,   { 1, 0 }, F, N ), /* dec */\n
        \   REG(0x50,   { 1, 0 }, F, W ), /* push */\n    REG(0x58,   { 1, 0 }, F,
        R ), /* pop */\n    { { 0x60 }, { 1, 0 }, F, W }, /* pusha */\n    { { 0x61
        }, { 1, 0 }, F, R }, /* popa */\n    { { 0x62 }, { 2, 0 }, F, R }, /* bound
        */\n    { { 0x63 }, { 2, 0 }, F, W }, /* arpl */\n    { { 0x63 }, { 0, 2 },
        F, R }, /* movsxd */\n    { { 0x68 }, { 5, 5 }, F, W }, /* push */\n    {
        { 0x69 }, { 6, 6 }, T, R }, /* imul */\n    { { 0x6a }, { 2, 2 }, F, W },
        /* push */\n    { { 0x6b }, { 3, 3 }, T, R }, /* imul */\n    { { 0x6c },
        { 1, 1 }, F, W }, /* ins */\n    { { 0x6d }, { 1, 1 }, F, W }, /* ins */\n
        \   { { 0x6e }, { 1, 1 }, F, R }, /* outs */\n    { { 0x6f }, { 1, 1 }, F,
        R }, /* outs */\n    CND(0x70,   { 2, 2 }, F, N ), /* j<cc> */\n    { { 0x80,
        0x00 }, { 3, 3 }, T, W }, /* add */\n    { { 0x80, 0x08 }, { 3, 3 }, T, W
        }, /* or */\n    { { 0x80, 0x10 }, { 3, 3 }, T, W }, /* adc */\n    { { 0x80,
        0x18 }, { 3, 3 }, T, W }, /* sbb */\n    { { 0x80, 0x20 }, { 3, 3 }, T, W
        }, /* and */\n    { { 0x80, 0x28 }, { 3, 3 }, T, W }, /* sub */\n    { { 0x80,
        0x30 }, { 3, 3 }, T, W }, /* xor */\n    { { 0x80, 0x38 }, { 3, 3 }, T, R
        }, /* cmp */\n    { { 0x81, 0x00 }, { 6, 6 }, T, W }, /* add */\n    { { 0x81,
        0x08 }, { 6, 6 }, T, W }, /* or */\n    { { 0x81, 0x10 }, { 6, 6 }, T, W },
        /* adc */\n    { { 0x81, 0x18 }, { 6, 6 }, T, W }, /* sbb */\n    { { 0x81,
        0x20 }, { 6, 6 }, T, W }, /* and */\n    { { 0x81, 0x28 }, { 6, 6 }, T, W
        }, /* sub */\n    { { 0x81, 0x30 }, { 6, 6 }, T, W }, /* add */\n    { { 0x81,
        0x38 }, { 6, 6 }, T, R }, /* cmp */\n    { { 0x82, 0x00 }, { 3, 0 }, T, W
        }, /* xor */\n    { { 0x82, 0x08 }, { 3, 0 }, T, W }, /* or */\n    { { 0x82,
        0x10 }, { 3, 0 }, T, W }, /* adc */\n    { { 0x82, 0x18 }, { 3, 0 }, T, W
        }, /* sbb */\n    { { 0x82, 0x20 }, { 3, 0 }, T, W }, /* and */\n    { { 0x82,
        0x28 }, { 3, 0 }, T, W }, /* sub */\n    { { 0x82, 0x30 }, { 3, 0 }, T, W
        }, /* xor */\n    { { 0x82, 0x38 }, { 3, 0 }, T, R }, /* cmp */\n    { { 0x83,
        0x00 }, { 3, 3 }, T, W }, /* add */\n    { { 0x83, 0x08 }, { 3, 3 }, T, W
        }, /* or */\n    { { 0x83, 0x10 }, { 3, 3 }, T, W }, /* adc */\n    { { 0x83,
        0x18 }, { 3, 3 }, T, W }, /* sbb */\n    { { 0x83, 0x20 }, { 3, 3 }, T, W
        }, /* and */\n    { { 0x83, 0x28 }, { 3, 3 }, T, W }, /* sub */\n    { { 0x83,
        0x30 }, { 3, 3 }, T, W }, /* xor */\n    { { 0x83, 0x38 }, { 3, 3 }, T, R
        }, /* cmp */\n    { { 0x84 }, { 2, 2 }, T, R }, /* test */\n    { { 0x85 },
        { 2, 2 }, T, R }, /* test */\n    { { 0x86 }, { 2, 2 }, T, W }, /* xchg */\n
        \   { { 0x87 }, { 2, 2 }, T, W }, /* xchg */\n    { { 0x88 }, { 2, 2 }, T,
        W }, /* mov */\n    { { 0x89 }, { 2, 2 }, T, W }, /* mov */\n    { { 0x8a
        }, { 2, 2 }, T, R }, /* mov */\n    { { 0x8b }, { 2, 2 }, T, R }, /* mov */\n
        \   { { 0x8c }, { 2, 2 }, T, W }, /* mov */\n    { { 0x8d }, { 2, 2 }, F,
        N }, /* lea */\n    { { 0x8e }, { 2, 2 }, T, R }, /* mov */\n    { { 0x8f,
        0x00 }, { 2, 2 }, F, W }, /* pop */\n    { { 0x8f, 0xc0 }, { 2, 2 }, F, R
        }, /* pop */\n    REG(0x90,   { 1, 0 }, F, N ), /* xchg */\n    { { 0x98 },
        { 1, 1 }, F, N }, /* cbw */\n    { { 0x99 }, { 1, 1 }, F, N }, /* cwd */\n
        \   { { 0x9a }, { 7, 0 }, F, W }, /* lcall */\n    { { 0x9b }, { 1, 1 }, F,
        N }, /* wait */\n    { { 0x9c }, { 1, 1 }, F, W }, /* pushf */\n    { { 0x9d
        }, { 1, 1 }, F, R }, /* popf */\n    { { 0x9e }, { 1, 1 }, F, N }, /* sahf
        */\n    { { 0x9f }, { 1, 1 }, F, N }, /* lahf */\n    { { 0xa0 }, { 5, 9 },
        F, R }, /* mov */\n    { { 0xa1 }, { 5, 9 }, F, R }, /* mov */\n    { { 0xa2
        }, { 5, 9 }, F, W }, /* mov */\n    { { 0xa3 }, { 5, 9 }, F, W }, /* mov */\n
        \   { { 0xa4 }, { 1, 1 }, F, W }, /* movs */\n    { { 0xa5 }, { 1, 1 }, F,
        W }, /* movs */\n    { { 0xa6 }, { 1, 1 }, F, R }, /* cmps */\n    { { 0xa7
        }, { 1, 1 }, F, R }, /* cmps */\n    { { 0xa8 }, { 2, 2 }, F, N }, /* test
        */\n    { { 0xa9 }, { 5, 5 }, F, N }, /* test */\n    { { 0xaa }, { 1, 1 },
        F, W }, /* stos */\n    { { 0xab }, { 1, 1 }, F, W }, /* stos */\n    { {
        0xac }, { 1, 1 }, F, R }, /* lods */\n    { { 0xad }, { 1, 1 }, F, R }, /*
        lods */\n    { { 0xae }, { 1, 1 }, F, R }, /* scas */\n    { { 0xaf }, { 1,
        1 }, F, R }, /* scas */\n    REG(0xb0,   { 2, 2 }, F, N ), /* mov */\n    REG(0xb8,
        \  { 5, 5 }, F, N ), /* mov */\n    { { 0xc0, 0x00 }, { 3, 3 }, T, W }, /*
        rol */\n    { { 0xc0, 0x08 }, { 3, 3 }, T, W }, /* ror */\n    { { 0xc0, 0x10
        }, { 3, 3 }, T, W }, /* rcl */\n    { { 0xc0, 0x18 }, { 3, 3 }, T, W }, /*
        rcr */\n    { { 0xc0, 0x20 }, { 3, 3 }, T, W }, /* shl */\n    { { 0xc0, 0x28
        }, { 3, 3 }, T, W }, /* shr */\n    { { 0xc0, 0x30 }, { 3, 3 }, T, W }, /*
        sal */\n    { { 0xc0, 0x38 }, { 3, 3 }, T, W }, /* sar */\n    { { 0xc1, 0x00
        }, { 3, 3 }, T, W }, /* rol */\n    { { 0xc1, 0x08 }, { 3, 3 }, T, W }, /*
        ror */\n    { { 0xc1, 0x10 }, { 3, 3 }, T, W }, /* rcl */\n    { { 0xc1, 0x18
        }, { 3, 3 }, T, W }, /* rcr */\n    { { 0xc1, 0x20 }, { 3, 3 }, T, W }, /*
        shl */\n    { { 0xc1, 0x28 }, { 3, 3 }, T, W }, /* shr */\n    { { 0xc1, 0x30
        }, { 3, 3 }, T, W }, /* sal */\n    { { 0xc1, 0x38 }, { 3, 3 }, T, W }, /*
        sar */\n    { { 0xc2 }, { 3, 3 }, F, R }, /* ret */\n    { { 0xc3 }, { 1,
        1 }, F, R }, /* ret */\n    { { 0xc4 }, { 2, 0 }, F, R }, /* les */\n    {
        { 0xc5 }, { 2, 0 }, F, R }, /* lds */\n    { { 0xc6, 0x00 }, { 3, 3 }, T,
        W }, /* mov */\n    { { 0xc6, 0xf8 }, { 3, 3 }, F, N }, /* xabort */\n    {
        { 0xc7, 0x00 }, { 6, 6 }, T, W }, /* mov */\n    { { 0xc7, 0xf8 }, { 6, 6
        }, F, N }, /* xbegin */\n    { { 0xc8 }, { 4, 4 }, F, W }, /* enter */\n    {
        { 0xc9 }, { 1, 1 }, F, R }, /* leave */\n    { { 0xca }, { 3, 3 }, F, R },
        /* lret */\n    { { 0xcb }, { 1, 1 }, F, R }, /* lret */\n    { { 0xcc },
        { 1, 1 }, F, N }, /* int3 */\n    { { 0xcd }, { 2, 2 }, F, N }, /* int */\n
        \   { { 0xce }, { 1, 0 }, F, N }, /* into */\n    { { 0xcf }, { 1, 1 }, F,
        N }, /* iret */\n    { { 0xd0, 0x00 }, { 2, 2 }, T, W }, /* rol */\n    {
        { 0xd0, 0x08 }, { 2, 2 }, T, W }, /* ror */\n    { { 0xd0, 0x10 }, { 2, 2
        }, T, W }, /* rcl */\n    { { 0xd0, 0x18 }, { 2, 2 }, T, W }, /* rcr */\n
        \   { { 0xd0, 0x20 }, { 2, 2 }, T, W }, /* shl */\n    { { 0xd0, 0x28 }, {
        2, 2 }, T, W }, /* shr */\n    { { 0xd0, 0x30 }, { 2, 2 }, T, W }, /* sal
        */\n    { { 0xd0, 0x38 }, { 2, 2 }, T, W }, /* sar */\n    { { 0xd1, 0x00
        }, { 2, 2 }, T, W }, /* rol */\n    { { 0xd1, 0x08 }, { 2, 2 }, T, W }, /*
        ror */\n    { { 0xd1, 0x10 }, { 2, 2 }, T, W }, /* rcl */\n    { { 0xd1, 0x18
        }, { 2, 2 }, T, W }, /* rcr */\n    { { 0xd1, 0x20 }, { 2, 2 }, T, W }, /*
        shl */\n    { { 0xd1, 0x28 }, { 2, 2 }, T, W }, /* shr */\n    { { 0xd1, 0x30
        }, { 2, 2 }, T, W }, /* sal */\n    { { 0xd1, 0x38 }, { 2, 2 }, T, W }, /*
        sar */\n    { { 0xd2, 0x00 }, { 2, 2 }, T, W }, /* rol */\n    { { 0xd2, 0x08
        }, { 2, 2 }, T, W }, /* ror */\n    { { 0xd2, 0x10 }, { 2, 2 }, T, W }, /*
        rcl */\n    { { 0xd2, 0x18 }, { 2, 2 }, T, W }, /* rcr */\n    { { 0xd2, 0x20
        }, { 2, 2 }, T, W }, /* shl */\n    { { 0xd2, 0x28 }, { 2, 2 }, T, W }, /*
        shr */\n    { { 0xd2, 0x30 }, { 2, 2 }, T, W }, /* sal */\n    { { 0xd2, 0x38
        }, { 2, 2 }, T, W }, /* sar */\n    { { 0xd3, 0x00 }, { 2, 2 }, T, W }, /*
        rol */\n    { { 0xd3, 0x08 }, { 2, 2 }, T, W }, /* ror */\n    { { 0xd3, 0x10
        }, { 2, 2 }, T, W }, /* rcl */\n    { { 0xd3, 0x18 }, { 2, 2 }, T, W }, /*
        rcr */\n    { { 0xd3, 0x20 }, { 2, 2 }, T, W }, /* shl */\n    { { 0xd3, 0x28
        }, { 2, 2 }, T, W }, /* shr */\n    { { 0xd3, 0x30 }, { 2, 2 }, T, W }, /*
        sal */\n    { { 0xd3, 0x38 }, { 2, 2 }, T, W }, /* sar */\n    { { 0xd4 },
        { 2, 0 }, F, N }, /* aam */\n    { { 0xd5 }, { 2, 0 }, F, N }, /* aad */\n
        \   { { 0xd6 }, { 1, 0 }, F, N }, /* salc */\n    { { 0xd7 }, { 1, 1 }, F,
        R }, /* xlat */\n    { { 0xe0 }, { 2, 2 }, F, N }, /* loopne */\n    { { 0xe1
        }, { 2, 2 }, F, N }, /* loope */\n    { { 0xe2 }, { 2, 2 }, F, N }, /* loop
        */\n    { { 0xe3 }, { 2, 2 }, F, N }, /* j?cxz */\n    { { 0xe4 }, { 2, 2
        }, F, N }, /* in */\n    { { 0xe5 }, { 2, 2 }, F, N }, /* in */\n    { { 0xe6
        }, { 2, 2 }, F, N }, /* out */\n    { { 0xe7 }, { 2, 2 }, F, N }, /* out */\n
        \   { { 0xe8 }, { 5, 5 }, F, W }, /* call */\n    { { 0xe9 }, { 5, 5 }, F,
        N }, /* jmp */\n    { { 0xea }, { 7, 0 }, F, N }, /* ljmp */\n    { { 0xeb
        }, { 2, 2 }, F, N }, /* jmp */\n    { { 0xec }, { 1, 1 }, F, N }, /* in */\n
        \   { { 0xed }, { 1, 1 }, F, N }, /* in */\n    { { 0xee }, { 1, 1 }, F, N
        }, /* out */\n    { { 0xef }, { 1, 1 }, F, N }, /* out */\n    { { 0xf1 },
        { 1, 1 }, F, N }, /* icebp */\n    { { 0xf4 }, { 1, 1 }, F, N }, /* hlt */\n
        \   { { 0xf5 }, { 1, 1 }, F, N }, /* cmc */\n    { { 0xf6, 0x00 }, { 3, 3
        }, T, R }, /* test */\n    { { 0xf6, 0x08 }, { 3, 3 }, T, R }, /* test */\n
        \   { { 0xf6, 0x10 }, { 2, 2 }, T, W }, /* not */\n    { { 0xf6, 0x18 }, {
        2, 2 }, T, W }, /* neg */\n    { { 0xf6, 0x20 }, { 2, 2 }, T, R }, /* mul
        */\n    { { 0xf6, 0x28 }, { 2, 2 }, T, R }, /* imul */\n    { { 0xf6, 0x30
        }, { 2, 2 }, T, R }, /* div */\n    { { 0xf6, 0x38 }, { 2, 2 }, T, R }, /*
        idiv */\n    { { 0xf7, 0x00 }, { 6, 6 }, T, R }, /* test */\n    { { 0xf7,
        0x08 }, { 6, 6 }, T, R }, /* test */\n    { { 0xf7, 0x10 }, { 2, 2 }, T, W
        }, /* not */\n    { { 0xf7, 0x18 }, { 2, 2 }, T, W }, /* neg */\n    { { 0xf7,
        0x20 }, { 2, 2 }, T, R }, /* mul */\n    { { 0xf7, 0x28 }, { 2, 2 }, T, R
        }, /* imul */\n    { { 0xf7, 0x30 }, { 2, 2 }, T, R }, /* div */\n    { {
        0xf7, 0x38 }, { 2, 2 }, T, R }, /* idiv */\n    { { 0xf8 }, { 1, 1 }, F, N
        }, /* clc */\n    { { 0xf9 }, { 1, 1 }, F, N }, /* stc */\n    { { 0xfa },
        { 1, 1 }, F, N }, /* cli */\n    { { 0xfb }, { 1, 1 }, F, N }, /* sti */\n
        \   { { 0xfc }, { 1, 1 }, F, N }, /* cld */\n    { { 0xfd }, { 1, 1 }, F,
        N }, /* std */\n    { { 0xfe, 0x00 }, { 2, 2 }, T, W }, /* inc */\n    { {
        0xfe, 0x08 }, { 2, 2 }, T, W }, /* dec */\n    { { 0xff, 0x00 }, { 2, 2 },
        T, W }, /* inc */\n    { { 0xff, 0x08 }, { 2, 2 }, T, W }, /* dec */\n    {
        { 0xff, 0x10 }, { 2, 2 }, F, W }, /* call */\n    { { 0xff, 0x18 }, { 2, 2
        }, F, W }, /* lcall */\n    { { 0xff, 0x20 }, { 2, 2 }, T, R }, /* jmp */\n
        \   { { 0xff, 0x28 }, { 2, 2 }, F, R }, /* ljmp */\n    { { 0xff, 0x30 },
        { 2, 2 }, F, W }, /* push */\n    { { 0xff, 0xd0 }, { 2, 2 }, F, W }, /* call
        */\n    { { 0xff, 0xf0 }, { 2, 2 }, F, W }, /* push */\n}"
      pos:
        line_end: 51
        line_start: 19
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: opc
        type: uint8_t
      - name: mem
        type: uint8_t
      - name: pfx
        type: uint8_t
      item_type: struct
      name: "legacy_0f3a[] = {\n    { 0x08, R, pfx_66 }, /* roundps */\n    { 0x09,
        R, pfx_66 }, /* roundpd */\n    { 0x0a, R, pfx_66 }, /* roundss */\n    {
        0x0b, R, pfx_66 }, /* roundsd */\n    { 0x0c, R, pfx_66 }, /* blendps */\n
        \   { 0x0d, R, pfx_66 }, /* blendpd */\n    { 0x0e, R, pfx_66 }, /* pblendw
        */\n    { 0x0f, R, pfx_no }, /* palignr */\n    { 0x0f, R, pfx_66 }, /* palignr
        */\n    { 0x14, W, pfx_66 }, /* pextrb */\n    { 0x15, W, pfx_66 }, /* pextrw
        */\n    { 0x16, W, pfx_66 }, /* pextrd */\n    { 0x17, W, pfx_66 }, /* extractps
        */\n    { 0x20, R, pfx_66 }, /* pinsrb */\n    { 0x21, R, pfx_66 }, /* insertps
        */\n    { 0x22, R, pfx_66 }, /* pinsrd */\n    { 0x40, R, pfx_66 }, /* dpps
        */\n    { 0x41, R, pfx_66 }, /* dppd */\n    { 0x42, R, pfx_66 }, /* mpsadbw
        */\n    { 0x44, R, pfx_66 }, /* pclmulqdq */\n    { 0x60, R, pfx_66 }, /*
        pcmpestrm */\n    { 0x61, R, pfx_66 }, /* pcmpestri */\n    { 0x62, R, pfx_66
        }, /* pcmpistrm */\n    { 0x63, R, pfx_66 }, /* pcmpistri */\n    { 0xcc,
        R, pfx_no }, /* sha1rnds4 */\n    { 0xce, R, pfx_66 }, /* gf2p8affineqb */\n
        \   { 0xcf, R, pfx_66 }, /* gf2p8affineinvqb */\n    { 0xdf, R, pfx_66 },
        /* aeskeygenassist */\n}"
      pos:
        line_end: 874
        line_start: 870
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: opc[2]
        type: uint8_t
      - name: modrm
        type: bool
      - name: mem
        type: uint8_t
      item_type: struct
      name: "fpu[] = {\n    { { 0xd8, 0x00 }, T, R }, /* fadd */\n    { { 0xd8, 0x08
        }, T, R }, /* fmul */\n    { { 0xd8, 0x10 }, T, R }, /* fcom */\n    { { 0xd8,
        0x18 }, T, R }, /* fcomp */\n    { { 0xd8, 0x20 }, T, R }, /* fsub */\n    {
        { 0xd8, 0x28 }, T, R }, /* fsubr */\n    { { 0xd8, 0x30 }, T, R }, /* fdiv
        */\n    { { 0xd8, 0x38 }, T, R }, /* fdivr */\n    { { 0xd9, 0x00 }, T, R
        }, /* fld */\n    { { 0xd9, 0x10 }, F, W }, /* fst */\n    { { 0xd9, 0x18
        }, T, W }, /* fstp */\n    { { 0xd9, 0x20 }, F, R }, /* fldenv */\n    { {
        0xd9, 0x28 }, F, R }, /* fldcw */\n    { { 0xd9, 0x30 }, F, W }, /* fnstenv
        */\n    { { 0xd9, 0x38 }, F, W }, /* fnstcw */\n    { { 0xd9, 0xc8 }, F, N
        }, /* fxch */\n    { { 0xd9, 0xd0 }, F, N }, /* fnop */\n    { { 0xd9, 0xe0
        }, F, N }, /* fchs */\n    { { 0xd9, 0xe1 }, F, N }, /* fabs */\n    { { 0xd9,
        0xe4 }, F, N }, /* ftst */\n    { { 0xd9, 0xe5 }, F, N }, /* fxam */\n    {
        { 0xd9, 0xe6 }, F, N }, /* ftstp */\n    { { 0xd9, 0xe8 }, F, N }, /* fld1
        */\n    { { 0xd9, 0xe9 }, F, N }, /* fldl2t */\n    { { 0xd9, 0xea }, F, N
        }, /* fldl2e */\n    { { 0xd9, 0xeb }, F, N }, /* fldpi */\n    { { 0xd9,
        0xec }, F, N }, /* fldlg2 */\n    { { 0xd9, 0xed }, F, N }, /* fldln2 */\n
        \   { { 0xd9, 0xee }, F, N }, /* fldz */\n    { { 0xd9, 0xf0 }, F, N }, /*
        f2xm1 */\n    { { 0xd9, 0xf1 }, F, N }, /* fyl2x */\n    { { 0xd9, 0xf2 },
        F, N }, /* fptan */\n    { { 0xd9, 0xf3 }, F, N }, /* fpatan */\n    { { 0xd9,
        0xf4 }, F, N }, /* fxtract */\n    { { 0xd9, 0xf5 }, F, N }, /* fprem1 */\n
        \   { { 0xd9, 0xf6 }, F, N }, /* fdecstp */\n    { { 0xd9, 0xf7 }, F, N },
        /* fincstp */\n    { { 0xd9, 0xf8 }, F, N }, /* fprem */\n    { { 0xd9, 0xf9
        }, F, N }, /* fyl2xp1 */\n    { { 0xd9, 0xfa }, F, N }, /* fsqrt */\n    {
        { 0xd9, 0xfb }, F, N }, /* fsincos */\n    { { 0xd9, 0xfc }, F, N }, /* frndint
        */\n    { { 0xd9, 0xfd }, F, N }, /* fscale */\n    { { 0xd9, 0xfe }, F, N
        }, /* fsin */\n    { { 0xd9, 0xff }, F, N }, /* fcos */\n    { { 0xda, 0x00
        }, F, R }, /* fiadd */\n    { { 0xda, 0x08 }, F, R }, /* fimul */\n    { {
        0xda, 0x10 }, F, R }, /* ficom */\n    { { 0xda, 0x18 }, F, R }, /* ficomp
        */\n    { { 0xda, 0x20 }, F, R }, /* fisub */\n    { { 0xda, 0x28 }, F, R
        }, /* fisubr */\n    { { 0xda, 0x30 }, F, R }, /* fidiv */\n    { { 0xda,
        0x38 }, F, R }, /* fidivr */\n    { { 0xda, 0xc0 }, F, N }, /* fcmovb */\n
        \   { { 0xda, 0xc8 }, F, N }, /* fcmove */\n    { { 0xda, 0xd0 }, F, N },
        /* fcmovbe */\n    { { 0xda, 0xd8 }, F, N }, /* fcmovu */\n    { { 0xda, 0xe9
        }, F, N }, /* fucompp */\n    { { 0xdb, 0x00 }, F, R }, /* fild */\n    {
        { 0xdb, 0x08 }, F, W }, /* fisttp */\n    { { 0xdb, 0x10 }, F, W }, /* fist
        */\n    { { 0xdb, 0x18 }, F, W }, /* fistp */\n    { { 0xdb, 0x28 }, F, R
        }, /* fld */\n    { { 0xdb, 0x38 }, F, W }, /* fstp */\n    { { 0xdb, 0xc0
        }, F, N }, /* fcmovnb */\n    { { 0xdb, 0xc8 }, F, N }, /* fcmovne */\n    {
        { 0xdb, 0xd0 }, F, N }, /* fcmovnbe */\n    { { 0xdb, 0xd8 }, F, N }, /* fcmovnu
        */\n    { { 0xdb, 0xe0 }, F, N }, /* fneni */\n    { { 0xdb, 0xe1 }, F, N
        }, /* fndisi */\n    { { 0xdb, 0xe2 }, F, N }, /* fnclex */\n    { { 0xdb,
        0xe3 }, F, N }, /* fninit */\n    { { 0xdb, 0xe4 }, F, N }, /* fsetpm */\n
        \   { { 0xdb, 0xe5 }, F, N }, /* frstpm */\n    { { 0xdb, 0xe8 }, F, N },
        /* fucomi */\n    { { 0xdb, 0xf0 }, F, N }, /* fcomi */\n    { { 0xdc, 0x00
        }, T, R }, /* fadd */\n    { { 0xdc, 0x08 }, T, R }, /* fmul */\n    { { 0xdc,
        0x10 }, T, R }, /* fcom */\n    { { 0xdc, 0x18 }, T, R }, /* fcomp */\n    {
        { 0xdc, 0x20 }, T, R }, /* fsub */\n    { { 0xdc, 0x28 }, T, R }, /* fsubr
        */\n    { { 0xdc, 0x30 }, T, R }, /* fdiv */\n    { { 0xdc, 0x38 }, T, R },
        /* fdivr */\n    { { 0xdd, 0x00 }, F, R }, /* fld */\n    { { 0xdd, 0x08 },
        F, W }, /* fisttp */\n    { { 0xdd, 0x10 }, T, W }, /* fst */\n    { { 0xdd,
        0x18 }, T, W }, /* fstp */\n    { { 0xdd, 0x20 }, F, R }, /* frstor */\n    {
        { 0xdd, 0x30 }, F, W }, /* fnsave */\n    { { 0xdd, 0x38 }, F, W }, /* fnstsw
        */\n    { { 0xdd, 0xc0 }, F, N }, /* ffree */\n    { { 0xdd, 0xc8 }, F, N
        }, /* fxch */\n    { { 0xdd, 0xe0 }, F, N }, /* fucom */\n    { { 0xdd, 0xe8
        }, F, N }, /* fucomp */\n    { { 0xde, 0x00 }, F, R }, /* fiadd */\n    {
        { 0xde, 0x08 }, F, R }, /* fimul */\n    { { 0xde, 0x10 }, F, R }, /* ficom
        */\n    { { 0xde, 0x18 }, F, R }, /* ficomp */\n    { { 0xde, 0x20 }, F, R
        }, /* fisub */\n    { { 0xde, 0x28 }, F, R }, /* fisubr */\n    { { 0xde,
        0x30 }, F, R }, /* fidiv */\n    { { 0xde, 0x38 }, F, R }, /* fidivr */\n
        \   { { 0xde, 0xc0 }, F, N }, /* faddp */\n    { { 0xde, 0xc8 }, F, N }, /*
        fmulp */\n    { { 0xde, 0xd0 }, F, N }, /* fcomp */\n    { { 0xde, 0xd9 },
        F, N }, /* fcompp */\n    { { 0xde, 0xe0 }, F, N }, /* fsubrp */\n    { {
        0xde, 0xe8 }, F, N }, /* fsubp */\n    { { 0xde, 0xf0 }, F, N }, /* fdivrp
        */\n    { { 0xde, 0xf8 }, F, N }, /* fdivp */\n    { { 0xdf, 0x00 }, F, R
        }, /* fild */\n    { { 0xdf, 0x08 }, F, W }, /* fisttp */\n    { { 0xdf, 0x10
        }, F, W }, /* fist */\n    { { 0xdf, 0x18 }, F, W }, /* fistp */\n    { {
        0xdf, 0x20 }, F, R }, /* fbld */\n    { { 0xdf, 0x28 }, F, R }, /* fild */\n
        \   { { 0xdf, 0x30 }, F, W }, /* fbstp */\n    { { 0xdf, 0x38 }, F, W }, /*
        fistp */\n    { { 0xdf, 0xc0 }, F, N }, /* ffreep */\n    { { 0xdf, 0xc8 },
        F, N }, /* fxch */\n    { { 0xdf, 0xd0 }, F, N }, /* fstp */\n    { { 0xdf,
        0xd8 }, F, N }, /* fstp */\n    { { 0xdf, 0xe0 }, F, N }, /* fnstsw */\n    {
        { 0xdf, 0xe8 }, F, N }, /* fucomip */\n    { { 0xdf, 0xf0 }, F, N }, /* fcomip
        */\n}"
      pos:
        line_end: 909
        line_start: 905
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: opc[3]
        type: uint8_t
      - name: len
        type: uint8_t
      - name: modrm
        type: bool
      - name: mem
        type: uint8_t
      - name: pfx
        type: uint8_t
      - name: w
        type: uint8_t
      - name: l
        type: uint8_t
      item_type: struct
      name: vex
      pos:
        line_end: 1056
        line_start: 1040
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: '*tbl'
        type: struct vex
      - name: num
        type: unsigned int
      item_type: struct
      name: "vex[] = {\n    { vex_0f,   ARRAY_SIZE(vex_0f) },\n    { vex_0f38, ARRAY_SIZE(vex_0f38)
        },\n    { vex_0f3a, ARRAY_SIZE(vex_0f3a) },\n}"
      pos:
        line_end: 1520
        line_start: 1517
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: opc[2]
        type: uint8_t
      - name: w
        type: uint8_t
      - name: l
        type: uint8_t
      item_type: struct
      name: xop
      pos:
        line_end: 1530
        line_start: 1526
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: '*tbl'
        type: struct xop
      - name: num
        type: unsigned int
      - name: imm
        type: unsigned int
      item_type: struct
      name: "xop[] = {\n    { xop_08, ARRAY_SIZE(xop_08), 1 },\n    { xop_09, ARRAY_SIZE(xop_09),
        0 },\n    { xop_0a, ARRAY_SIZE(xop_0a), 4 },\n}"
      pos:
        line_end: 1610
        line_start: 1606
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: opc[3]
        type: uint8_t
      - name: len
        type: uint8_t
      - name: modrm
        type: bool
      - name: mem
        type: uint8_t
      - name: pfx
        type: uint8_t
      - name: w
        type: uint8_t
      - name: l
        type: uint8_t
      - name: mask
        type: bool
      item_type: struct
      name: evex
      pos:
        line_end: 1629
        line_start: 1618
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    - fields:
      - name: '*tbl'
        type: struct evex
      - name: num
        type: unsigned int
      item_type: struct
      name: "evex[] = {\n    { evex_0f,   ARRAY_SIZE(evex_0f) },\n    { evex_0f38,
        ARRAY_SIZE(evex_0f38) },\n    { evex_0f3a, ARRAY_SIZE(evex_0f3a) },\n    {
        NULL,      0 },\n    { evex_map5, ARRAY_SIZE(evex_map5) },\n    { evex_map6,
        ARRAY_SIZE(evex_map6) },\n}"
      pos:
        line_end: 2181
        line_start: 2178
        source_file: /src/xen/tools/tests/x86_emulator/predicates.c
    typedefs: []
    union: []
- function_names:
  - SHA
  - eq
  - blend
  - rot_c
  - rot_v
  - shift_s
  - to_bool
  - eq
  - blend
  - rot_c
  - rotl
  - rotr
  - rot_v
  - shift_s
  - vshift
  - alignr
  - hadd
  - rol_c
  - rol_s
  - rol_v
  - ror_c
  - ror_s
  - ror_v
  - shl_c
  - shl_s
  - shr_c
  - shr_s
  - shuf
  - swap
  - vshl
  - vshr
  - sha256_sigma0
  - sha256_sigma1
  - sha256_Sigma0
  - sha256_Sigma1
  - sha_test
  source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INT_SIZE
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ALL_TRUE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
      type_or_value: (~0ULL >> (64 - ELEM_COUNT))
    - item_type: preproc_def
      name: vec_t
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
      type_or_value: "r_; \\\n    asm ( \"vpro\" #f \"vd %2%{1to%c3%}, %1, %0\" \\\n
        \         : \"=v\" (r_) \\\n          : \"v\" (x), \"m\" (n), \"i\" (ELEM_COUNT)
        ); \\\n    r_; \\\n})"
    - item_type: preproc_def
      name: vec_t
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
      type_or_value: "r_; \\\n    asm ( \"vps\" #d \"ldq %2, %1, %0\" \\\n          :
        \"=v\" (r_) : \"m\" (x), \"i\" ((n) * ELEM_SIZE) ); \\\n    r_; \\\n})"
    - item_type: preproc_def
      name: vec_t
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/xen/tools/tests/x86_emulator/simd-sha.c
      type_or_value: "r_, t_, n_ = (vec_t){ 32 } - (n); \\\n    asm ( \"ps\" #f \"ld
        %2, %0; ps\" #r \"ld %3, %1; por %1, %0\" \\\n          : \"=&x\" (r_), \"=&x\"
        (t_) \\\n          : \"m\" (n), \"m\" (n_), \"0\" (x), \"1\" (x) ); \\\n    r_;
        \\\n})"
    structs: []
    typedefs: []
    union: []
- function_names:
  - blowfish_set_regs
  - blowfish_check_regs
  - simd_check__3dnow
  - simd_check_sse
  - simd_check_sse2
  - simd_check_sse4
  - simd_check_avx
  - simd_check_fma4
  - simd_check_fma
  - simd_check_avx2
  - simd_check_xop
  - simd_check_ssse3_aes
  - simd_check_avx_aes
  - simd_check_ssse3_pclmul
  - simd_check_avx_pclmul
  - simd_check_avx512f
  - simd_check_avx512f_vl
  - simd_check_avx512dq
  - simd_check_avx512dq_vl
  - simd_check_avx512bw
  - simd_check_avx512bw_vl
  - simd_check_avx512vbmi
  - simd_check_avx512vbmi_vl
  - simd_check_sse4_sha
  - simd_check_avx_sha
  - simd_check_avx512f_sha_vl
  - simd_check_avx2_vaes
  - simd_check_avx512bw_vaes
  - simd_check_avx512bw_vaes_vl
  - simd_check_avx2_vpclmulqdq
  - simd_check_avx512bw_vpclmulqdq
  - simd_check_avx512bw_vpclmulqdq_vl
  - simd_check_avx512vbmi2_vpclmulqdq
  - simd_check_avx512vbmi2_vpclmulqdq_vl
  - simd_check_sse2_gf
  - simd_check_avx2_gf
  - simd_check_avx512bw_gf
  - simd_check_avx512bw_gf_vl
  - simd_check_avx512fp16
  - simd_check_avx512fp16_vl
  - simd_set_regs
  - simd_check_regs
  - AVX512VL_
  - SIMD
  - AVX512VL
  - SIMD
  - AVX512VL
  - read
  - fetch
  - write
  - rmw
  - cmpxchg
  - blk
  - read_segment
  - read_msr
  - read_cr_invpcid
  - tlb_op_invpcid
  - zap_fpsel
  - zap_xfpsel
  - decl_insn
  - put_insn
  - set_insn
  - valid_eip
  - check_eip
  source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: verbose
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 'false '
    - item_type: preproc_def
      name: simd_check_avx2_sg
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx2
    - item_type: preproc_def
      name: simd_check_avx512f_opmask
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx512f
    - item_type: preproc_def
      name: simd_check_avx512f_sg
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx512f
    - item_type: preproc_def
      name: simd_check_avx512vl_sg
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx512f_vl
    - item_type: preproc_def
      name: simd_check_avx512dq_opmask
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx512dq
    - item_type: preproc_def
      name: simd_check_avx512bw_opmask
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: simd_check_avx512bw
    - item_type: preproc_def
      name: TSC_AUX_VALUE
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: '0xCACACACA'
    - item_type: preproc_def
      name: INVPCID_ADDR
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: '0x12345678'
    - item_type: preproc_def
      name: INVPCID_PCID
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: '0x123'
    - item_type: preproc_def
      name: EFLAGS_ALWAYS_SET
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: (X86_EFLAGS_IF | X86_EFLAGS_MBS)
    - item_type: preproc_def
      name: EFLAGS_MASK
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: (X86_EFLAGS_ARITH_MASK | EFLAGS_ALWAYS_SET)
    - item_type: preproc_def
      name: MMAP_ADDR
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: STKVAL_DISP
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: '64'
    - item_type: preproc_def
      name: LAR_VALID
      pos:
        line_end: 1779
        line_start: 1778
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0xffff1a3eU
    - item_type: preproc_def
      name: LSL_VALID
      pos:
        line_end: 1780
        line_start: 1779
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0xffff0a0eU
    - item_type: preproc_def
      name: LAR_VALID
      pos:
        line_end: 1782
        line_start: 1781
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0xffff1a04U
    - item_type: preproc_def
      name: LSL_VALID
      pos:
        line_end: 1783
        line_start: 1782
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0xffff0a04U
    - item_type: preproc_def
      name: VERR_VALID
      pos:
        line_end: 1785
        line_start: 1784
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0xccff0000U
    - item_type: preproc_def
      name: VERW_VALID
      pos:
        line_end: 1786
        line_start: 1785
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
      type_or_value: 0x00cc0000U
    structs:
    - fields:
      - name: '*descr'
        type: char
      - name: opcode[8]
        type: uint8_t
      - name: opc_len[2]
        type: uint8_t
      - name: stkoff[2]
        type: int8_t
      - name: disp[2]
        type: int32_t
      item_type: struct
      name: "vendor_tests[] = {\n    {\n        .descr = \"retw\",\n        .opcode
        = { 0x66, 0xc3 },\n        .opc_len = { 2, 2 },\n        .stkoff = { 2, 8
        },\n        .disp = { STKVAL_DISP - MMAP_ADDR, STKVAL_DISP },\n    }, {\n
        \       .descr = \"retw $16\",\n        .opcode = { 0x66, 0xc2, 0x10, 0x00
        },\n        .opc_len = { 4, 4 },\n        .stkoff = { 2 + 16, 8 + 16 },\n
        \       .disp = { STKVAL_DISP - MMAP_ADDR, STKVAL_DISP },\n    }, {\n        .descr
        = \"jmpw .+16\",\n        .opcode = { 0x66, 0xeb, 0x10 },\n        .opc_len
        = { 3, 3 },\n        .disp = { 3 + 16 - MMAP_ADDR, 3 + 16 },\n    }, {\n        .descr
        = \"jmpw .+128\",\n        .opcode = { 0x66, 0xe9, 0x80, 0x00, 0x00, 0x00
        },\n        .opc_len = { 4, 6 },\n        .disp = { 4 + 128 - MMAP_ADDR, 6
        + 128 },\n    }, {\n        .descr = \"callw .+16\",\n        .opcode = {
        0x66, 0xe8, 0x10, 0x00, 0x00, 0x00 },\n        .opc_len = { 4, 6 },\n        .stkoff
        = { -2, -8 },\n        .disp = { 4 + 16 - MMAP_ADDR, 6 + 16 },\n    }, {\n
        \       .descr = \"jzw .+16\",\n        .opcode = { 0x66, 0x74, 0x10 },\n
        \       .opc_len = { 3, 3 },\n        .disp = { 3, 3 },\n    }, {\n        .descr
        = \"jzw .+128\",\n        .opcode = { 0x66, 0x0f, 0x84, 0x80, 0x00, 0x00,
        0x00 },\n        .opc_len = { 5, 7 },\n        .disp = { 5, 7 },\n    }, {\n
        \       .descr = \"jnzw .+16\",\n        .opcode = { 0x66, 0x75, 0x10 },\n
        \       .opc_len = { 3, 3 },\n        .disp = { 3 + 16 - MMAP_ADDR, 3 + 16
        },\n    }, {\n        .descr = \"jnzw .+128\",\n        .opcode = { 0x66,
        0x0f, 0x85, 0x80, 0x00, 0x00, 0x00 },\n        .opc_len = { 5, 7 },\n        .disp
        = { 5 + 128 - MMAP_ADDR, 7 + 128 },\n    }, {\n        .descr = \"loopqw .+16
        (RCX>1)\",\n        .opcode = { 0x66, 0xe0, 0x10 },\n        .opc_len = {
        3, 3 },\n        .disp = { 3 + 16 - MMAP_ADDR, 3 + 16 },\n    }, {\n        .descr
        = \"looplw .+16 (ECX=1)\",\n        .opcode = { 0x66, 0x67, 0xe0, 0x10 },\n
        \       .opc_len = { 4, 4 },\n        .disp = { 4, 4 },\n    }, {\n        .descr
        = \"jrcxzw .+16 (RCX>0)\",\n        .opcode = { 0x66, 0xe3, 0x10 },\n        .opc_len
        = { 3, 3 },\n        .disp = { 3, 3 },\n    }, {\n        .descr = \"jecxzw
        .+16 (ECX=0)\",\n        .opcode = { 0x66, 0x67, 0xe3, 0x10 },\n        .opc_len
        = { 4, 4 },\n        .disp = { 4 + 16 - MMAP_ADDR, 4 + 16 },\n    }, {\n        .descr
        = \"jmpw *(%rsp)\",\n        .opcode = { 0x66, 0xff, 0x24, 0x24 },\n        .opc_len
        = { 4, 4 },\n        .disp = { STKVAL_DISP - MMAP_ADDR, STKVAL_DISP },\n    },
        {\n        .descr = \"callw *(%rsp)\",\n        .opcode = { 0x66, 0xff, 0x14,
        0x24 },\n        .opc_len = { 4, 4 },\n        .stkoff = { -2, -8 },\n        .disp
        = { STKVAL_DISP - MMAP_ADDR, STKVAL_DISP },\n    },\n}"
      pos:
        line_end: 816
        line_start: 809
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: d[4]
        type: double
      item_type: struct
      name: src = { { -1, 0, 1, 2 } }
      pos:
        line_end: 4763
        line_start: 4761
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: d[16]
        type: unsigned int
      item_type: struct
      name: dsrc = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } }
      pos:
        line_end: 4880
        line_start: 4878
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: q[8]
        type: unsigned long long
      item_type: struct
      name: qsrc = { { 0, 1, 2, 3, 4, 5, 6, 7 } }
      pos:
        line_end: 4883
        line_start: 4881
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: b[64]
        type: unsigned char
      item_type: struct
      name: "bsrc = { { 0,  1,  2,  3,  4,  5,  6,  7,\n                     8,  9,
        10, 11, 12, 13, 14, 15,\n                    16, 17, 18, 19, 20, 21, 22, 23,\n
        \                   24, 25, 26, 27, 28, 29, 30, 31,\n                    32,
        33, 34, 35, 36, 37, 38, 39,\n                    40, 41, 42, 43, 44, 45, 46,
        47,\n                    48, 49, 50, 51, 52, 53, 54, 55,\n                    56,
        57, 58, 59, 60, 61, 62, 63 } }"
      pos:
        line_end: 4982
        line_start: 4980
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: w[32]
        type: unsigned short
      item_type: struct
      name: "wsrc = { { 0,  1,  2,  3,  4,  5,  6,  7,\n                     8,  9,
        10, 11, 12, 13, 14, 15,\n                    16, 17, 18, 19, 20, 21, 22, 23,\n
        \                   24, 25, 26, 27, 28, 29, 30, 31 } }"
      pos:
        line_end: 4992
        line_start: 4990
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    - fields:
      - name: f[16]
        type: float
      item_type: struct
      name: "in1 = {{\n            1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
        15, 16\n        }}"
      pos:
        line_end: 5094
        line_start: 5092
        source_file: /src/xen/tools/tests/x86_emulator/test_x86_emulator.c
    typedefs: []
    union: []
- function_names:
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - to_bool
  - eq
  - fmaddsub
  - fmaddsub
  - fmaddsub
  - addsub
  - fmaddsub
  - addsub
  - fmaddsub
  - addsub
  - fmaddsub
  - addsub
  - fmaddsub
  - addsub
  - addsub
  - conj
  - _cmul_vv
  - _cmul_vs
  - cmadd_vv
  - cmadd_vs
  - conj
  - cmadd_vv
  - cmadd_vs
  - cmul_vv
  - cmulc_vv
  - cmul_vs
  - cmulc_vs
  - fma_test
  - ceq
  source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: (1.if16)
    - item_type: preproc_def
      name: CELEM_COUNT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: (ELEM_COUNT / 2)
    - item_type: preproc_def
      name: CELEM_COUNT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: '1'
    - item_type: preproc_def
      name: asm
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: "( \"vf\"#c\"mulcsh %2, %1, %0\" : \"=&x\" (r_) : \"x\" (a),
        \"m\" (b) ); \\\n    r_; \\\n})"
    - item_type: preproc_def
      name: asm
      pos:
        line_end: 125
        line_start: 118
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: "( \"vf\"#c\"mulcsh %2, %1, %0\" : \"=&x\" (r_) : \"x\" (a),
        \"m\" (b_) ); \\\n    r_; \\\n})"
    - item_type: preproc_def
      name: one
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: one_
    - item_type: preproc_def
      name: cvec_t
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: vec_t
    - item_type: preproc_def
      name: ceq
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type_or_value: eq
    structs: []
    typedefs:
    - item_type: typedef
      name: __attribute__((vector_size(4))
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/xen/tools/tests/x86_emulator/simd-fma.c
      type: _Float16
    union: []
- function_names:
  - WRAP
  - __wrap_fwrite
  - __wrap_memcmp
  - __wrap_memcpy
  - __wrap_memset
  - __wrap_printf
  - __wrap_putchar
  - __wrap_puts
  - __wrap_snprintf
  - __wrap_vsnprintf
  - __wrap_strstr
  source_file: /src/xen/tools/tests/x86_emulator/wrappers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - MB_PAGES
  - run_tests
  - main
  source_file: /src/xen/tools/tests/mem-claim/test-mem-claim.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - test_gnttab
  - test_domain_configurations
  - main
  source_file: /src/xen/tools/tests/resource/test-resource.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: create
        type: struct xen_domctl_createdomain
      item_type: struct
      name: test
      pos:
        line_end: 142
        line_start: 139
        source_file: /src/xen/tools/tests/resource/test-resource.c
    typedefs: []
    union: []
- function_names:
  - __test_and_set_bit
  - __test_and_clear_bit
  - __set_bit
  - BUG_ON
  - ASSERT
  - DEFINE_SPINLOCK
  - spin_lock
  - spin_unlock
  source_file: /src/xen/tools/tests/domid/harness.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: printk
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/tests/domid/harness.h
      type_or_value: printf
    - item_type: preproc_def
      name: DOMID_FIRST_RESERVED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/tests/domid/harness.h
      type_or_value: (100)
    - item_type: preproc_def
      name: DOMID_INVALID
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/tests/domid/harness.h
      type_or_value: (101)
    structs: []
    typedefs:
    - item_type: typedef
      name: spinlock_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/xen/tools/tests/domid/harness.h
      type: bool
    - item_type: typedef
      name: domid_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/xen/tools/tests/domid/harness.h
      type: uint16_t
    union: []
- function_names:
  - verify
  - main
  source_file: /src/xen/tools/tests/domid/test-domid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - run_tests
  - main
  source_file: /src/xen/tools/tests/paging-mempool/test-paging-mempool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fail
  - memdup
  - test_vendor_identification
  - leaves_are_sorted
  - msrs_are_sorted
  - test_cpuid_current
  - test_cpuid_serialise_success
  - test_msr_serialise_success
  - test_cpuid_deserialise_failure
  - test_msr_deserialise_failure
  - test_cpuid_out_of_range_clearing
  - test_is_compatible_success
  - test_is_compatible_failure
  - main
  source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vendor
        type: unsigned int
      item_type: struct
      name: test
      pos:
        line_end: 42
        line_start: 34
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: p
        type: struct cpu_policy
      - name: '*name'
        type: char
      - name: nr_leaves
        type: unsigned int
      item_type: struct
      name: test
      pos:
        line_end: 123
        line_start: 119
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: p
        type: struct cpu_policy
      - name: '*name'
        type: char
      - name: nr_msrs
        type: unsigned int
      item_type: struct
      name: test
      pos:
        line_end: 247
        line_start: 243
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: '*name'
        type: char
      - name: leaf
        type: xen_cpuid_leaf_t
      item_type: struct
      name: test
      pos:
        line_end: 299
        line_start: 296
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: '*name'
        type: char
      - name: msr
        type: xen_msr_entry_t
      - name: rc
        type: int
      item_type: struct
      name: test
      pos:
        line_end: 377
        line_start: 373
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: '*name'
        type: char
      - name: nr_markers
        type: unsigned int
      - name: p
        type: struct cpu_policy
      item_type: struct
      name: test
      pos:
        line_end: 428
        line_start: 424
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: '*name'
        type: char
      - name: host
        type: struct cpu_policy
      item_type: struct
      name: test
      pos:
        line_end: 572
        line_start: 569
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    - fields:
      - name: '*name'
        type: char
      - name: host
        type: struct cpu_policy
      - name: e
        type: struct cpu_policy_errors
      item_type: struct
      name: test
      pos:
        line_end: 613
        line_start: 609
        source_file: /src/xen/tools/tests/cpu-policy/test-cpu-policy.c
    typedefs: []
    union: []
- function_names:
  - INOPB
  - itoo
  - itog
  - itod
  - UFS_NINDIR
  - blkoff
  - lblkno
  - fsbtodb
  - blkstofrags
  - cgbase
  - cgimin
  - cgstart
  source_file: /src/xen/tools/libfsimage/ufs/ufs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UFS_SBLOCK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: UFS_SBSIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: UFS_MAGIC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '0x011954'
    - item_type: preproc_def
      name: ROOTINO
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: "2\t"
    - item_type: preproc_def
      name: UFS_NDADDR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: "12\t"
    - item_type: preproc_def
      name: UFS_NIADDR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: "3\t"
    - item_type: preproc_def
      name: MAXMNTLEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MAXCSBUFS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAXNAMELEN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: IFMT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '0xf000'
    - item_type: preproc_def
      name: IFREG
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: IFDIR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type_or_value: '0x4000'
    structs:
    - fields:
      - name: val[2]
        type: int
      item_type: struct
      name: grub_quad_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    - fields:
      - name: tv_sec
        type: grub_time32_t
      - name: tv_usec
        type: grub_int32_t
      item_type: struct
      name: timeval32
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    - fields:
      - name: cs_ndir
        type: grub_int32_t
      - name: cs_nbfree
        type: grub_int32_t
      - name: cs_nifree
        type: grub_int32_t
      - name: cs_nffree
        type: grub_int32_t
      item_type: struct
      name: csum
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    - fields:
      - name: fs_link
        type: grub_uint32_t
      - name: fs_rolled
        type: grub_uint32_t
      - name: fs_sblkno
        type: grub_daddr32_t
      - name: fs_cblkno
        type: grub_daddr32_t
      - name: fs_iblkno
        type: grub_daddr32_t
      - name: fs_dblkno
        type: grub_daddr32_t
      - name: fs_cgoffset
        type: grub_int32_t
      - name: fs_cgmask
        type: grub_int32_t
      - name: fs_time
        type: grub_time32_t
      - name: fs_size
        type: grub_int32_t
      - name: fs_dsize
        type: grub_int32_t
      - name: fs_ncg
        type: grub_int32_t
      - name: fs_bsize
        type: grub_int32_t
      - name: fs_fsize
        type: grub_int32_t
      - name: fs_frag
        type: grub_int32_t
      - name: fs_minfree
        type: grub_int32_t
      - name: fs_rotdelay
        type: grub_int32_t
      - name: fs_rps
        type: grub_int32_t
      - name: fs_bmask
        type: grub_int32_t
      - name: fs_fmask
        type: grub_int32_t
      - name: fs_bshift
        type: grub_int32_t
      - name: fs_fshift
        type: grub_int32_t
      - name: fs_maxcontig
        type: grub_int32_t
      - name: fs_maxbpg
        type: grub_int32_t
      - name: fs_fragshift
        type: grub_int32_t
      - name: fs_fsbtodb
        type: grub_int32_t
      - name: fs_sbsize
        type: grub_int32_t
      - name: fs_csmask
        type: grub_int32_t
      - name: fs_csshift
        type: grub_int32_t
      - name: fs_nindir
        type: grub_int32_t
      - name: fs_inopb
        type: grub_int32_t
      - name: fs_nspf
        type: grub_int32_t
      - name: fs_optim
        type: grub_int32_t
      - name: fs_state
        type: grub_int32_t
      - name: fs_si
        type: grub_int32_t
      - name: fs_trackskew
        type: grub_int32_t
      - name: fs_id[2]
        type: grub_int32_t
      - name: fs_csaddr
        type: grub_daddr32_t
      - name: fs_cssize
        type: grub_int32_t
      - name: fs_cgsize
        type: grub_int32_t
      - name: fs_ntrak
        type: grub_int32_t
      - name: fs_nsect
        type: grub_int32_t
      - name: fs_spc
        type: grub_int32_t
      - name: fs_ncyl
        type: grub_int32_t
      - name: fs_cpg
        type: grub_int32_t
      - name: fs_ipg
        type: grub_int32_t
      - name: fs_fpg
        type: grub_int32_t
      - name: fs_cstotal
        type: struct csum
      - name: fs_fmod
        type: char
      - name: fs_clean
        type: char
      - name: fs_ronly
        type: char
      - name: fs_flags
        type: char
      - name: fs_fsmnt[MAXMNTLEN]
        type: char
      - name: fs_cgrotor
        type: grub_int32_t
      - name: fs_u
        type: "union {\t/* fs_cs (csum) info */\n\t\tgrub_uint32_t\tfs_csp_pad[MAXCSBUFS];\n\t\tstruct
          csum\t*fs_csp;\n\t}"
      - name: fs_cpc
        type: grub_int32_t
      - name: fs_opostbl[16][8]
        type: short
      - name: fs_sparecon[51]
        type: grub_int32_t
      - name: fs_version
        type: grub_int32_t
      - name: fs_logbno
        type: grub_int32_t
      - name: fs_reclaim
        type: grub_int32_t
      - name: fs_sparecon2
        type: grub_int32_t
      - name: fs_npsect
        type: grub_int32_t
      - name: fs_qbmask
        type: grub_quad_t
      - name: fs_qfmask
        type: grub_quad_t
      - name: fs_postblformat
        type: grub_int32_t
      - name: fs_nrpos
        type: grub_int32_t
      - name: fs_postbloff
        type: grub_int32_t
      - name: fs_rotbloff
        type: grub_int32_t
      - name: fs_magic
        type: grub_int32_t
      - name: fs_space[1]
        type: grub_uchar_t
      item_type: struct
      name: fs
      pos:
        line_end: 174
        line_start: 60
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    - fields:
      - name: ic_smode
        type: grub_o_mode_t
      - name: ic_nlink
        type: short
      - name: ic_suid
        type: grub_o_uid_t
      - name: ic_sgid
        type: grub_o_gid_t
      - name: ic_sizelo
        type: grub_uint32_t
      - name: ic_sizehi
        type: grub_uint32_t
      - name: ic_atime
        type: struct timeval32
      - name: ic_mtime
        type: struct timeval32
      - name: ic_ctime
        type: struct timeval32
      - name: ic_db[UFS_NDADDR]
        type: grub_daddr32_t
      - name: ic_ib[UFS_NIADDR]
        type: grub_daddr32_t
      - name: ic_flags
        type: grub_int32_t
      - name: ic_blocks
        type: grub_int32_t
      - name: ic_gen
        type: grub_int32_t
      - name: ic_shadow
        type: grub_int32_t
      - name: ic_uid
        type: grub_uid_t
      - name: ic_gid
        type: grub_gid_t
      - name: ic_oeftflag
        type: grub_uint32_t
      item_type: struct
      name: icommon
      pos:
        line_end: 196
        line_start: 176
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    - fields:
      - name: d_ino
        type: grub_ino_t
      - name: d_reclen
        type: grub_ushort_t
      - name: d_namelen
        type: grub_ushort_t
      - name: d_name[MAXNAMELEN + 1]
        type: char
      item_type: struct
      name: direct
      pos:
        line_end: 203
        line_start: 198
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
    typedefs:
    - item_type: typedef
      name: grub_uchar_t
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: unsigned char
    - item_type: typedef
      name: grub_ushort_t
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: unsigned short
    - item_type: typedef
      name: grub_o_mode_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: unsigned short
    - item_type: typedef
      name: grub_o_uid_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: unsigned short
    - item_type: typedef
      name: grub_o_gid_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: unsigned short
    - item_type: typedef
      name: grub_ino_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: uint32_t
    - item_type: typedef
      name: grub_int32_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: int32_t
    - item_type: typedef
      name: grub_uid_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: int32_t
    - item_type: typedef
      name: grub_gid_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: int32_t
    - item_type: typedef
      name: grub_uint32_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: uint32_t
    - item_type: typedef
      name: grub_daddr32_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: uint32_t
    - item_type: typedef
      name: grub_time32_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/libfsimage/ufs/ufs.h
      type: uint32_t
    union: []
- function_names:
  - ufs_mount
  - ufs_dir
  - ufs_read
  - ufs_embed
  - openi
  - sbmap
  - dlook
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUPERBLOCK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: ((struct fs *)(FSYS_BUF + 0x2000))
    - item_type: preproc_def
      name: INODE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: ((struct icommon *)(FSYS_BUF + 0x1000))
    - item_type: preproc_def
      name: DIRENT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: (FSYS_BUF + 0x4000)
    - item_type: preproc_def
      name: MAXBSIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: ((FSYS_BUFLEN - 0x4000) / 2)
    - item_type: preproc_def
      name: INDIRBLK1
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: '((grub_daddr32_t *)(FSYS_BUF + 0x4000)) '
    - item_type: preproc_def
      name: INDIRBLK0
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: '((grub_daddr32_t *)(FSYS_BUF+ 0x4000 + MAXBSIZE))  '
    - item_type: preproc_def
      name: indirblk0
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: (*fsig_int1(ffi))
    - item_type: preproc_def
      name: indirblk1
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libfsimage/ufs/fsys_ufs.c
      type_or_value: (*fsig_int2(ffi))
    structs: []
    typedefs: []
    union: []
- function_names:
  - lzjb_decompress
  source_file: /src/xen/tools/libfsimage/zfs/zfs_lzjb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MATCH_BITS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libfsimage/zfs/zfs_lzjb.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MATCH_MIN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs_lzjb.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OFFSET_MASK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs_lzjb.c
      type_or_value: ((1 << (16 - MATCH_BITS)) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - fletcher_2_native
  - fletcher_2_byteswap
  - fletcher_4_native
  - fletcher_4_byteswap
  source_file: /src/xen/tools/libfsimage/zfs/zfs_fletcher.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FSI_MOS_ALIGN
  - FSI_MOS
  - fsi_zfs_mount
  - fsi_zfs_open
  - fsi_zfs_read
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXNAMELEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: ZFS_SCRATCH_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: FSI_MOS_SHIFT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FSI_MOS_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.c
      type_or_value: ((1 << FSI_MOS_SHIFT) - 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - zfs_bcmp
  - zfs_log2
  - zio_checksum_off
  - zio_checksum_verify
  - vdev_label_start
  - vdev_uberblock_compare
  - uberblock_verify
  - find_bestub
  - zio_read_gang
  - zio_read_data
  - zio_read
  - dmu_read
  - mzap_lookup
  - zap_hash
  - zap_leaf_array_equal
  - zap_leaf_lookup
  - fzap_lookup
  - zap_lookup
  - dnode_get
  - is_top_dataset_file
  - dnode_get_path
  - get_default_bootfsobj
  - get_objset_mdn
  - nvlist_unpack
  - nvlist_array
  - nvlist_lookup_value
  - vdev_validate
  - vdev_get_bootpath
  - check_pool_label
  - zfs_mount
  - zfs_open
  - zfs_read
  - zfs_embed
  source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/shared.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/filesys.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RAW_ADDR
  - RAW_SEG
  - MIN
  - devread
  source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOOTSIGN_DIR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '"/boot/grub/bootsign"'
    - item_type: preproc_def
      name: BOOTSIGN_BACKUP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '"/etc/bootsign"'
    - item_type: preproc_def
      name: ZFS_SCRATCH_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAXNAMELEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAXUINT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: ((void *) 0)
    - item_type: preproc_def
      name: grub_printf
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: printf
    - item_type: preproc_def
      name: grub_strcmp
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: strcmp
    - item_type: preproc_def
      name: grub_strncmp
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: strncmp
    - item_type: preproc_def
      name: grub_strstr
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: strstr
    - item_type: preproc_def
      name: grub_strlen
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: strlen
    - item_type: preproc_def
      name: grub_memmove
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type_or_value: memmove
    structs: []
    typedefs:
    - item_type: typedef
      name: uchar_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type: unsigned char
    - item_type: typedef
      name: '*fsi_file_handle_t'
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/xen/tools/libfsimage/zfs/fsi_zfs.h
      type: fsi_file
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MB_ARD_MEMORY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MB_DI_CHS_MODE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MB_DI_LBA_MODE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MB_INFO_MEMORY
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: MB_INFO_BOOTDEV
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: MB_INFO_CMDLINE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: MB_INFO_MODS
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: MB_INFO_AOUT_SYMS
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: MB_INFO_ELF_SHDR
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: MB_INFO_MEM_MAP
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: MB_INFO_DRIVE_INFO
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: MB_INFO_CONFIG_TABLE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: MB_INFO_BOOT_LOADER_NAME
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: MB_INFO_APM_TABLE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: MB_INFO_VIDEO_INFO
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: MULTIBOOT_VALID
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
      type_or_value: '0x2BADB002'
    structs:
    - fields:
      - name: mod_start
        type: unsigned long
      - name: mod_end
        type: unsigned long
      - name: cmdline
        type: unsigned long
      - name: pad
        type: unsigned long
      item_type: struct
      name: mod_list
      pos:
        line_end: 33
        line_start: 22
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
    - fields:
      - name: size
        type: unsigned long
      - name: BaseAddr
        type: unsigned long long
      - name: Length
        type: unsigned long long
      - name: Type
        type: unsigned long
      item_type: struct
      name: AddrRangeDesc
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
    - fields:
      - name: size
        type: unsigned long
      - name: drive_number
        type: unsigned char
      - name: drive_mode
        type: unsigned char
      - name: drive_cylinders
        type: unsigned short
      - name: drive_heads
        type: unsigned char
      - name: drive_sectors
        type: unsigned char
      - name: drive_ports[0]
        type: unsigned short
      item_type: struct
      name: drive_info
      pos:
        line_end: 76
        line_start: 58
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
    - fields:
      - name: version
        type: unsigned short
      - name: cseg
        type: unsigned short
      - name: offset
        type: unsigned long
      - name: cseg_16
        type: unsigned short
      - name: dseg_16
        type: unsigned short
      - name: cseg_len
        type: unsigned short
      - name: cseg_16_len
        type: unsigned short
      - name: dseg_16_len
        type: unsigned short
      item_type: struct
      name: apm_info
      pos:
        line_end: 94
        line_start: 84
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
    - fields:
      - name: flags
        type: unsigned long
      - name: mem_lower
        type: unsigned long
      - name: mem_upper
        type: unsigned long
      - name: boot_device
        type: unsigned long
      - name: cmdline
        type: unsigned long
      - name: mods_count
        type: unsigned long
      - name: mods_addr
        type: unsigned long
      - name: syms
        type: "union\n  {\n    struct\n    {\n      /* (a.out) Kernel symbol table
          info */\n      unsigned long tabsize;\n      unsigned long strsize;\n      unsigned
          long addr;\n      unsigned long pad;\n    }\n    a;\n    \n    struct\n
          \   {\n      /* (ELF) Kernel section header table */\n      unsigned long
          num;\n      unsigned long size;\n      unsigned long addr;\n      unsigned
          long shndx;\n    }\n    e;\n  }"
      - name: mmap_length
        type: unsigned long
      - name: mmap_addr
        type: unsigned long
      - name: drives_length
        type: unsigned long
      - name: drives_addr
        type: unsigned long
      - name: config_table
        type: unsigned long
      - name: boot_loader_name
        type: unsigned long
      - name: apm_table
        type: unsigned long
      - name: vbe_control_info
        type: unsigned long
      - name: vbe_mode_info
        type: unsigned long
      - name: vbe_mode
        type: unsigned short
      - name: vbe_interface_seg
        type: unsigned short
      - name: vbe_interface_off
        type: unsigned short
      - name: vbe_interface_len
        type: unsigned short
      item_type: struct
      name: multiboot_info
      pos:
        line_end: 171
        line_start: 104
        source_file: /src/xen/tools/libfsimage/zfs/mb_info.h
    typedefs: []
    union: []
- function_names:
  - Ch
  - Maj
  - Rot32
  - SIGMA0
  - SIGMA1
  - sigma0
  - sigma1
  - SHA256Transform
  - zio_checksum_SHA256
  source_file: /src/xen/tools/libfsimage/zfs/zfs_sha256.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VERIFY_DN_TYPE
  - VERIFY_OS_TYPE
  - BSWAP_8
  - BSWAP_16
  - BSWAP_32
  - BSWAP_64
  - P2ROUNDUP
  - VDEV_UBERBLOCK_OFFSET
  - P2PHASE
  - DVA_OFFSET_TO_PHYS_SECTOR
  - P2ALIGN
  - ZAP_HASH_IDX
  - ZAP_LEAF_HASH_SHIFT
  - ZAP_LEAF_HASH_NUMENTRIES
  - LEAF_HASH
  - ZAP_LEAF_NUMCHUNKS
  - ZAP_LEAF_CHUNK
  - ZAP_LEAF_ENTRY
  source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MOS
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: "((dnode_phys_t *)\\\n\t(RAW_ADDR((mbi.mem_upper << 10) + 0x100000)
        - ZFS_SCRATCH_SIZE))"
    - item_type: preproc_def
      name: DNODE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '(MOS+1) '
    - item_type: preproc_def
      name: ZFS_SCRATCH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: ((char *)(DNODE+1))
    - item_type: preproc_def
      name: ZPOOL_PROP_BOOTFS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '"bootfs"'
    - item_type: preproc_def
      name: UBERBLOCK_SIZE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: (1ULL << UBERBLOCK_SHIFT)
    - item_type: preproc_def
      name: VDEV_UBERBLOCK_SHIFT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: UBERBLOCK_SHIFT
    - item_type: preproc_def
      name: NV_ENCODE_NATIVE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NV_ENCODE_XDR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HOST_ENDIAN
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: DATA_TYPE_UINT64
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DATA_TYPE_STRING
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: DATA_TYPE_NVLIST
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '19'
    - item_type: preproc_def
      name: DATA_TYPE_NVLIST_ARRAY
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: NBBY
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ZFS_CRC64_POLY
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: '0xC96C5795D7870F42ULL '
    - item_type: preproc_def
      name: CHAIN_END
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: "0xffff\t"
    - item_type: preproc_def
      name: ZAP_LEAF_ARRAY_BYTES
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type_or_value: (ZAP_LEAF_CHUNKSIZE - 3)
    structs:
    - fields:
      - name: ubp_uberblock
        type: uberblock_t
      - name: "ubp_pad[UBERBLOCK_SIZE - sizeof (uberblock_t) -\n\t\t\t\tsizeof (zio_eck_t)]"
        type: char
      - name: ubp_zec
        type: zio_eck_t
      item_type: struct
      name: uberblock_phys
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    - fields:
      - name: '*name'
        type: char
      - name: '*decomp_func'
        type: zfs_decomp_func_t
      item_type: struct
      name: decomp_entry
      pos:
        line_end: 155
        line_start: 152
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
    typedefs:
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned long long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned char
    - item_type: typedef
      name: uchar_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned char
    - item_type: typedef
      name: size_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned long
    - item_type: typedef
      name: size_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: unsigned int
    - item_type: typedef
      name: uberblock_t
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: uberblock
    - item_type: typedef
      name: "zfs_decomp_func_t(void *s_start, void *d_start, size_t s_len,\n\t\t\tsize_t
        d_len)"
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/tools/libfsimage/zfs/fsys_zfs.h
      type: int
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu_objset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: os_meta_dnode
        type: dnode_phys_t
      - name: os_zil_header
        type: zil_header_t
      - name: os_type
        type: uint64_t
      - name: os_flags
        type: uint64_t
      - name: "os_pad[2048 - sizeof (dnode_phys_t)*3 -\n\t    sizeof (zil_header_t)
          - sizeof (uint64_t)*2]"
        type: char
      - name: os_userused_dnode
        type: dnode_phys_t
      - name: os_groupused_dnode
        type: dnode_phys_t
      item_type: struct
      name: objset_phys
      pos:
        line_end: 34
        line_start: 25
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu_objset.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
  types:
    enum:
    - enumerators:
      - name: DMU_OT_USERGROUP_USED
      - name: DMU_OT_SPA_HISTORY_OFFSETS
      - name: DMU_OT_USERREFS
      - name: DMU_OT_MASTER_NODE
      - name: DMU_OT_DSL_PERMS
      - name: DMU_OT_DDT_STATS
      - name: DMU_OT_NONE
      - name: DMU_OT_OBJECT_ARRAY
      - name: DMU_OT_PACKED_NVLIST_SIZE
      - name: DMU_OT_BPLIST_HDR
      - name: DMU_OT_SPACE_MAP
      - name: DMU_OT_DSL_DS_SNAP_MAP
      - name: DMU_OT_OLDACL
      - name: DMU_OT_DNODE
      - name: DMU_OT_DSL_DATASET
      - name: DMU_OT_DSL_DIR
      - name: DMU_OT_SYSACL
      - name: DMU_OT_SA_MASTER_NODE
      - name: DMU_OT_PLAIN_OTHER
      - name: DMU_OT_FUID_SIZE
      - name: DMU_OT_SA_ATTR_LAYOUTS
      - name: DMU_OT_ZAP_OTHER
      - name: DMU_OT_SCRUB_QUEUE
      - name: DMU_OT_SPA_HISTORY
      - name: DMU_OT_USERGROUP_QUOTA
      - name: DMU_OT_DIRECTORY_CONTENTS
      - name: DMU_OT_POOL_PROPS
      - name: DMU_OT_DDT_ZAP
      - name: DMU_OT_UNLINKED_SET
      - name: DMU_OT_ACL
      - name: DMU_OT_SA
      - name: DMU_OT_PACKED_NVLIST
      - name: DMU_OT_OBJECT_DIRECTORY
      - name: DMU_OT_BPLIST
      - name: DMU_OT_SPACE_MAP_HEADER
      - name: DMU_OT_INTENT_LOG
      - name: DMU_OT_DSL_DIR_CHILD_MAP
      - name: DMU_OT_DSL_PROPS
      - name: DMU_OT_OBJSET
      - name: DMU_OT_ZNODE
      - name: DMU_OT_PLAIN_FILE_CONTENTS
      - name: DMU_OT_ZVOL_PROP
      - name: DMU_OT_FUID
      - name: DMU_OT_SA_ATTR_REGISTRATION
      - name: DMU_OT_UINT64_OTHER
      - name: DMU_OT_NEXT_CLONES
      - name: DMU_OT_ZVOL
      - name: DMU_OT_NUMTYPES
      - name: DMU_OT_ERROR_LOG
      item_type: enum
      name: dmu_object_type
      pos:
        line_end: 91
        line_start: 32
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
    - enumerators:
      - name: DMU_OST_NONE
      - name: DMU_OST_ZVOL
      - name: DMU_OST_ZFS
      - name: DMU_OST_META
      - name: DMU_OST_OTHER
      - name: DMU_OST_ANY
      - name: DMU_OST_NUMTYPES
      item_type: enum
      name: dmu_objset_type
      pos:
        line_end: 101
        line_start: 93
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
    preproc_defs:
    - item_type: preproc_def
      name: DMU_POOL_DIRECTORY_OBJECT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DMU_POOL_CONFIG
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"config"'
    - item_type: preproc_def
      name: DMU_POOL_ROOT_DATASET
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"root_dataset"'
    - item_type: preproc_def
      name: DMU_POOL_SYNC_BPLIST
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"sync_bplist"'
    - item_type: preproc_def
      name: DMU_POOL_ERRLOG_SCRUB
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"errlog_scrub"'
    - item_type: preproc_def
      name: DMU_POOL_ERRLOG_LAST
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"errlog_last"'
    - item_type: preproc_def
      name: DMU_POOL_SPARES
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"spares"'
    - item_type: preproc_def
      name: DMU_POOL_DEFLATE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"deflate"'
    - item_type: preproc_def
      name: DMU_POOL_HISTORY
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"history"'
    - item_type: preproc_def
      name: DMU_POOL_PROPS
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"pool_props"'
    - item_type: preproc_def
      name: DMU_POOL_L2CACHE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dmu.h
      type_or_value: '"l2cache"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZIO_GET_IOSIZE
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
  types:
    enum:
    - enumerators:
      - name: ZIO_CHECKSUM_INHERIT
        value: '0'
      - name: ZIO_CHECKSUM_GANG_HEADER
      - name: ZIO_CHECKSUM_LABEL
      - name: ZIO_CHECKSUM_OFF
      - name: ZIO_CHECKSUM_ON
      - name: ZIO_CHECKSUM_ZILOG
      - name: ZIO_CHECKSUM_FLETCHER_2
      - name: ZIO_CHECKSUM_FLETCHER_4
      - name: ZIO_CHECKSUM_SHA256
      - name: ZIO_CHECKSUM_ZILOG2
      - name: ZIO_CHECKSUM_FUNCTIONS
      item_type: enum
      name: zio_checksum
      pos:
        line_end: 66
        line_start: 54
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
    - enumerators:
      - name: ZIO_COMPRESS_INHERIT
        value: '0'
      - name: ZIO_COMPRESS_OFF
      - name: ZIO_COMPRESS_EMPTY
      - name: ZIO_COMPRESS_LZJB
      - name: ZIO_COMPRESS_ON
      - name: ZIO_COMPRESS_FUNCTIONS
      item_type: enum
      name: zio_compress
      pos:
        line_end: 75
        line_start: 68
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
    preproc_defs:
    - item_type: preproc_def
      name: ZEC_MAGIC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
      type_or_value: "0x210da7ab10c7a11ULL\t"
    - item_type: preproc_def
      name: SPA_GANGBLOCKSIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
      type_or_value: SPA_MINBLOCKSIZE
    - item_type: preproc_def
      name: SPA_GBH_NBLKPTRS
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
      type_or_value: "((SPA_GANGBLOCKSIZE - \\\n\tsizeof (zio_eck_t)) / sizeof (blkptr_t))"
    - item_type: preproc_def
      name: SPA_GBH_FILLER
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
      type_or_value: "((SPA_GANGBLOCKSIZE - \\\n\tsizeof (zio_eck_t) - \\\n\t(SPA_GBH_NBLKPTRS
        * sizeof (blkptr_t))) /\\"
    structs:
    - fields:
      - name: zec_magic
        type: uint64_t
      - name: zec_cksum
        type: zio_cksum_t
      item_type: struct
      name: zio_eck
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
    - fields:
      - name: zg_blkptr[SPA_GBH_NBLKPTRS]
        type: blkptr_t
      - name: zg_filler[SPA_GBH_FILLER]
        type: uint64_t
      - name: zg_tail
        type: zio_eck_t
      item_type: struct
      name: zio_gbh
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VDEV_PAD_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (8 << 10)
    - item_type: preproc_def
      name: VDEV_SKIP_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: VDEV_PAD_SIZE * 2
    - item_type: preproc_def
      name: VDEV_PHYS_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (112 << 10)
    - item_type: preproc_def
      name: VDEV_UBERBLOCK_RING
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (128 << 10)
    - item_type: preproc_def
      name: VDEV_BOOT_OFFSET
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (2 * sizeof (vdev_label_t))
    - item_type: preproc_def
      name: VDEV_BOOT_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: "(7ULL << 19)\t\t\t"
    - item_type: preproc_def
      name: VDEV_LABEL_START_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE)
    - item_type: preproc_def
      name: VDEV_LABEL_END_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: (2 * sizeof (vdev_label_t))
    - item_type: preproc_def
      name: VDEV_LABELS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
      type_or_value: '4'
    structs:
    - fields:
      - name: vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_eck_t)]
        type: char
      - name: vp_zbt
        type: zio_eck_t
      item_type: struct
      name: vdev_phys
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
    - fields:
      - name: vl_pad1[VDEV_PAD_SIZE]
        type: char
      - name: vl_pad2[VDEV_PAD_SIZE]
        type: char
      - name: vl_vdev_phys
        type: vdev_phys_t
      - name: vl_uberblock[VDEV_UBERBLOCK_RING]
        type: char
      item_type: struct
      name: vdev_label
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/vdev_impl.h
    typedefs: []
    union: []
- function_names:
  - SA_HDR_SIZE
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/sa_impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SA_SIZE_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/sa_impl.h
      type_or_value: '0x8'
    structs:
    - fields:
      - name: sa_magic
        type: uint32_t
      - name: sa_layout_info
        type: uint16_t
      - name: sa_lengths[1]
        type: uint16_t
      item_type: struct
      name: sa_hdr_phys
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/sa_impl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZIL_REPLAY_NEEDED
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zil.h
      type_or_value: "0x1\t"
    structs:
    - fields:
      - name: zh_claim_txg
        type: uint64_t
      - name: zh_replay_seq
        type: uint64_t
      - name: zh_log
        type: blkptr_t
      - name: zh_claim_seq
        type: uint64_t
      - name: zh_flags
        type: uint64_t
      - name: zh_pad[4]
        type: uint64_t
      item_type: struct
      name: zil_header
      pos:
        line_end: 48
        line_start: 41
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zil.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
  types:
    enum:
    - enumerators:
      - name: ZAP_CHUNK_FREE
        value: '253'
      - name: ZAP_CHUNK_TYPE_MAX
        value: '250'
      - name: ZAP_CHUNK_ENTRY
        value: '252'
      - name: ZAP_CHUNK_ARRAY
        value: '251'
      item_type: enum
      name: zap_chunk_type
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    preproc_defs:
    - item_type: preproc_def
      name: ZAP_LEAF_MAGIC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
      type_or_value: '0x2AB1EAF'
    - item_type: preproc_def
      name: ZAP_LEAF_CHUNKSIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ZAP_LEAF_ARRAY_BYTES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
      type_or_value: (ZAP_LEAF_CHUNKSIZE - 3)
    structs:
    - fields:
      - name: l_hdr
        type: "struct zap_leaf_header {\n\t\tuint64_t lh_block_type;\t\t/* ZBT_LEAF
          */\n\t\tuint64_t lh_pad1;\n\t\tuint64_t lh_prefix;\t\t/* hash prefix of
          this leaf */\n\t\tuint32_t lh_magic;\t\t/* ZAP_LEAF_MAGIC */\n\t\tuint16_t
          lh_nfree;\t\t/* number free chunks */\n\t\tuint16_t lh_nentries;\t\t/* number
          of entries */\n\t\tuint16_t lh_prefix_len;\t\t/* num bits used to id this
          */\n\n/* above is accessable to zap, below is zap_leaf private */\n\n\t\tuint16_t
          lh_freelist;\t\t/* chunk head of free list */\n\t\tuint8_t lh_pad2[12];\n\t}"
      - name: l_hash[1]
        type: uint16_t
      item_type: struct
      name: zap_leaf_phys
      pos:
        line_end: 74
        line_start: 49
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    - fields:
      - name: lh_block_type
        type: uint64_t
      - name: lh_pad1
        type: uint64_t
      - name: lh_prefix
        type: uint64_t
      - name: lh_magic
        type: uint32_t
      - name: lh_nfree
        type: uint16_t
      - name: lh_nentries
        type: uint16_t
      - name: lh_prefix_len
        type: uint16_t
      - name: lh_freelist
        type: uint16_t
      - name: lh_pad2[12]
        type: uint8_t
      item_type: struct
      name: zap_leaf_header
      pos:
        line_end: 63
        line_start: 50
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    - fields:
      - name: le_type
        type: uint8_t
      - name: le_int_size
        type: uint8_t
      - name: le_next
        type: uint16_t
      - name: le_name_chunk
        type: uint16_t
      - name: le_name_length
        type: uint16_t
      - name: le_value_chunk
        type: uint16_t
      - name: le_value_length
        type: uint16_t
      - name: le_cd
        type: uint32_t
      - name: le_hash
        type: uint64_t
      item_type: struct
      name: zap_leaf_entry
      pos:
        line_end: 87
        line_start: 77
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    - fields:
      - name: la_type
        type: uint8_t
      - name: la_array[ZAP_LEAF_ARRAY_BYTES]
        type: uint8_t
      - name: la_next
        type: uint16_t
      item_type: struct
      name: zap_leaf_array
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    - fields:
      - name: lf_type
        type: uint8_t
      - name: lf_pad[ZAP_LEAF_ARRAY_BYTES]
        type: uint8_t
      - name: lf_next
        type: uint16_t
      item_type: struct
      name: zap_leaf_free
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
    typedefs: []
    union:
    - fields:
      - name: l_entry
        type: "struct zap_leaf_entry {\n\t\tuint8_t le_type; \t\t/* always ZAP_CHUNK_ENTRY
          */\n\t\tuint8_t le_int_size;\t\t/* size of ints */\n\t\tuint16_t le_next;\t\t/*
          next entry in hash chain */\n\t\tuint16_t le_name_chunk;\t\t/* first chunk
          of the name */\n\t\tuint16_t le_name_length;\t/* bytes in name, incl null
          */\n\t\tuint16_t le_value_chunk;\t/* first chunk of the value */\n\t\tuint16_t
          le_value_length;\t/* value length in ints */\n\t\tuint32_t le_cd;\t\t\t/*
          collision differentiator */\n\t\tuint64_t le_hash;\t\t/* hash value of the
          name */\n\t}"
      - name: l_array
        type: "struct zap_leaf_array {\n\t\tuint8_t la_type;\t\t/* always ZAP_CHUNK_ARRAY
          */\n\t\tuint8_t la_array[ZAP_LEAF_ARRAY_BYTES];\n\t\tuint16_t la_next;\t\t/*
          next blk or CHAIN_END */\n\t}"
      - name: l_free
        type: "struct zap_leaf_free {\n\t\tuint8_t lf_type;\t\t/* always ZAP_CHUNK_FREE
          */\n\t\tuint8_t lf_pad[ZAP_LEAF_ARRAY_BYTES];\n\t\tuint16_t lf_next;\t/*
          next in free list, or CHAIN_END */\n\t}"
      item_type: union
      name: zap_leaf_chunk
      pos:
        line_end: 98
        line_start: 76
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_leaf.h
- function_names:
  - ZAP_EMBEDDED_PTRTBL_SHIFT
  - ZAP_EMBEDDED_PTRTBL_ENT
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZAP_MAGIC
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: 0x2F52AB2ABULL
    - item_type: preproc_def
      name: MZAP_ENT_LEN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MZAP_NAME_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: (MZAP_ENT_LEN - 8 - 4 - 2)
    - item_type: preproc_def
      name: MZAP_MAX_BLKSHIFT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: SPA_MAXBLOCKSHIFT
    - item_type: preproc_def
      name: MZAP_MAX_BLKSZ
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: (1 << MZAP_MAX_BLKSHIFT)
    - item_type: preproc_def
      name: ZBT_LEAF
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: ((1ULL << 63) + 0)
    - item_type: preproc_def
      name: ZBT_HEADER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: ((1ULL << 63) + 1)
    - item_type: preproc_def
      name: ZBT_MICRO
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
      type_or_value: ((1ULL << 63) + 3)
    structs:
    - fields:
      - name: mze_value
        type: uint64_t
      - name: mze_cd
        type: uint32_t
      - name: mze_pad
        type: uint16_t
      - name: mze_name[MZAP_NAME_LEN]
        type: char
      item_type: struct
      name: mzap_ent_phys
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    - fields:
      - name: mz_block_type
        type: uint64_t
      - name: mz_salt
        type: uint64_t
      - name: mz_pad[6]
        type: uint64_t
      - name: mz_chunk[1]
        type: mzap_ent_phys_t
      item_type: struct
      name: mzap_phys
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    - fields:
      - name: zap_block_type
        type: uint64_t
      - name: zap_magic
        type: uint64_t
      - name: zap_ptrtbl
        type: "struct zap_table_phys {\n\t\tuint64_t zt_blk;\t/* starting block number
          */\n\t\tuint64_t zt_numblks;\t/* number of blocks */\n\t\tuint64_t zt_shift;\t/*
          bits to index it */\n\t\tuint64_t zt_nextblk;\t/* next (larger) copy start
          block */\n\t\tuint64_t zt_blks_copied; /* number source blocks copied */\n\t}"
      - name: zap_freeblk
        type: uint64_t
      - name: zap_num_leafs
        type: uint64_t
      - name: zap_num_entries
        type: uint64_t
      - name: zap_salt
        type: uint64_t
      - name: zap_normflags
        type: uint64_t
      - name: zap_flags
        type: uint64_t
      item_type: struct
      name: zap_phys
      pos:
        line_end: 107
        line_start: 83
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    - fields:
      - name: zt_blk
        type: uint64_t
      - name: zt_numblks
        type: uint64_t
      - name: zt_shift
        type: uint64_t
      - name: zt_nextblk
        type: uint64_t
      - name: zt_blks_copied
        type: uint64_t
      item_type: struct
      name: zap_table_phys
      pos:
        line_end: 93
        line_start: 87
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zap_impl.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
  types:
    enum:
    - enumerators:
      - name: POOL_STATE_ACTIVE
        value: '0'
      - name: POOL_STATE_DESTROYED
      - name: POOL_STATE_EXPORTED
      - name: POOL_STATE_SPARE
      - name: POOL_STATE_L2CACHE
      - name: POOL_STATE_UNINITIALIZED
      - name: POOL_STATE_UNAVAIL
      - name: POOL_STATE_POTENTIALLY_ACTIVE
      item_type: enum
      name: pool_state
      pos:
        line_end: 104
        line_start: 95
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
    preproc_defs:
    - item_type: preproc_def
      name: SPA_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: 24ULL
    - item_type: preproc_def
      name: ZPOOL_CONFIG_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"version"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_POOL_NAME
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"name"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_POOL_STATE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"state"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_POOL_TXG
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"txg"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_POOL_GUID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"pool_guid"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_CREATE_TXG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"create_txg"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_TOP_GUID
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"top_guid"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_VDEV_TREE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"vdev_tree"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_TYPE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"type"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_CHILDREN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"children"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_ID
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"id"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_GUID
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"guid"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_PATH
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"path"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DEVID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"devid"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_METASLAB_ARRAY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"metaslab_array"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_METASLAB_SHIFT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"metaslab_shift"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_ASHIFT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"ashift"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_ASIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"asize"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DTL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"DTL"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_STATS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"stats"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_WHOLE_DISK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"whole_disk"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_ERRCOUNT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"error_count"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_NOT_PRESENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"not_present"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_SPARES
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"spares"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_IS_SPARE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"is_spare"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_NPARITY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"nparity"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_PHYS_PATH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"phys_path"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_L2CACHE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"l2cache"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_HOLE_ARRAY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"hole_array"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_VDEV_CHILDREN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"vdev_children"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_IS_HOLE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"is_hole"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DDT_HISTOGRAM
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"ddt_histogram"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DDT_OBJ_STATS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"ddt_object_stats"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DDT_STATS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"ddt_stats"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_OFFLINE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"offline"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_FAULTED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"faulted"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_DEGRADED
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"degraded"'
    - item_type: preproc_def
      name: ZPOOL_CONFIG_REMOVED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"removed"'
    - item_type: preproc_def
      name: VDEV_TYPE_ROOT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"root"'
    - item_type: preproc_def
      name: VDEV_TYPE_MIRROR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"mirror"'
    - item_type: preproc_def
      name: VDEV_TYPE_REPLACING
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"replacing"'
    - item_type: preproc_def
      name: VDEV_TYPE_RAIDZ
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"raidz"'
    - item_type: preproc_def
      name: VDEV_TYPE_DISK
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"disk"'
    - item_type: preproc_def
      name: VDEV_TYPE_FILE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"file"'
    - item_type: preproc_def
      name: VDEV_TYPE_MISSING
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"missing"'
    - item_type: preproc_def
      name: VDEV_TYPE_HOLE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"hole"'
    - item_type: preproc_def
      name: VDEV_TYPE_SPARE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"spare"'
    - item_type: preproc_def
      name: VDEV_TYPE_L2CACHE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs.h
      type_or_value: '"l2cache"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/uberblock_impl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UBERBLOCK_MAGIC
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/uberblock_impl.h
      type_or_value: "0x00bab10c\t\t"
    - item_type: preproc_def
      name: UBERBLOCK_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/uberblock_impl.h
      type_or_value: "10\t\t\t"
    structs:
    - fields:
      - name: ub_magic
        type: uint64_t
      - name: ub_version
        type: uint64_t
      - name: ub_txg
        type: uint64_t
      - name: ub_guid_sum
        type: uint64_t
      - name: ub_timestamp
        type: uint64_t
      - name: ub_rootbp
        type: blkptr_t
      item_type: struct
      name: uberblock
      pos:
        line_end: 47
        line_start: 40
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/uberblock_impl.h
    typedefs: []
    union: []
- function_names:
  - ZFS_DIRENT_OBJ
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MASTER_NODE_OBJ
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZFS_ROOT_OBJ
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
      type_or_value: '"ROOT"'
    - item_type: preproc_def
      name: ZPL_VERSION_STR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
      type_or_value: '"VERSION"'
    - item_type: preproc_def
      name: ZFS_SA_ATTRS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
      type_or_value: '"SA_ATTRS"'
    - item_type: preproc_def
      name: ZPL_VERSION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
      type_or_value: 5ULL
    structs:
    - fields:
      - name: zp_atime[2]
        type: uint64_t
      - name: zp_mtime[2]
        type: uint64_t
      - name: zp_ctime[2]
        type: uint64_t
      - name: zp_crtime[2]
        type: uint64_t
      - name: zp_gen
        type: uint64_t
      - name: zp_mode
        type: uint64_t
      - name: zp_size
        type: uint64_t
      - name: zp_parent
        type: uint64_t
      - name: zp_links
        type: uint64_t
      - name: zp_xattr
        type: uint64_t
      - name: zp_rdev
        type: uint64_t
      - name: zp_flags
        type: uint64_t
      - name: zp_uid
        type: uint64_t
      - name: zp_gid
        type: uint64_t
      - name: zp_pad[4]
        type: uint64_t
      - name: zp_acl
        type: zfs_znode_acl_t
      item_type: struct
      name: znode_phys
      pos:
        line_end: 65
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_znode.h
    typedefs: []
    union: []
- function_names:
  - BF32_DECODE
  - BF64_DECODE
  - BF32_ENCODE
  - BF64_ENCODE
  - BF32_GET
  - BF64_GET
  - BF32_SET
  - BF64_SET
  - BF32_GET_SB
  - BF64_GET_SB
  - BF32_SET_SB
  - BF64_SET_SB
  - DVA_GET_ASIZE
  - DVA_SET_ASIZE
  - DVA_GET_GRID
  - DVA_SET_GRID
  - DVA_GET_VDEV
  - DVA_SET_VDEV
  - DVA_GET_OFFSET
  - DVA_SET_OFFSET
  - DVA_GET_GANG
  - DVA_SET_GANG
  - BP_GET_LSIZE
  - BP_SET_LSIZE
  - BP_GET_PSIZE
  - BP_SET_PSIZE
  - BP_GET_COMPRESS
  - BP_SET_COMPRESS
  - BP_GET_CHECKSUM
  - BP_SET_CHECKSUM
  - BP_GET_TYPE
  - BP_SET_TYPE
  - BP_GET_LEVEL
  - BP_SET_LEVEL
  - BP_GET_PROP_BIT_61
  - BP_SET_PROP_BIT_61
  - BP_GET_DEDUP
  - BP_SET_DEDUP
  - BP_GET_BYTEORDER
  - BP_SET_BYTEORDER
  - BP_PHYSICAL_BIRTH
  - BP_SET_BIRTH
  - BP_GET_ASIZE
  - BP_GET_UCSIZE
  - BP_GET_NDVAS
  - BP_COUNT_GANG
  - DVA_EQUAL
  - BP_EQUAL
  - ZIO_CHECKSUM_EQUAL
  - DVA_IS_VALID
  - ZIO_SET_CHECKSUM
  - BP_IDENTITY
  - BP_IS_GANG
  - BP_IS_HOLE
  - BP_IS_RAIDZ
  - BP_ZERO
  - BP_SHOULD_BYTESWAP
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPA_MINBLOCKSHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SPA_MAXBLOCKSHIFT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SPA_MINBLOCKSIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (1ULL << SPA_MINBLOCKSHIFT)
    - item_type: preproc_def
      name: SPA_MAXBLOCKSIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (1ULL << SPA_MAXBLOCKSHIFT)
    - item_type: preproc_def
      name: SPA_BLOCKSIZES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (SPA_MAXBLOCKSHIFT - SPA_MINBLOCKSHIFT + 1)
    - item_type: preproc_def
      name: SPA_CONFIG_BLOCKSIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: SPA_LSIZEBITS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: "16\t"
    - item_type: preproc_def
      name: SPA_PSIZEBITS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: "16\t"
    - item_type: preproc_def
      name: SPA_ASIZEBITS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: "24\t"
    - item_type: preproc_def
      name: SPA_BLKPTRSHIFT
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: "7\t\t"
    - item_type: preproc_def
      name: SPA_DVAS_PER_BP
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: "3\t\t"
    - item_type: preproc_def
      name: ZFS_HOST_BYTEORDER
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (0ULL)
    - item_type: preproc_def
      name: ZFS_HOST_BYTEORDER
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: (-1ULL)
    - item_type: preproc_def
      name: BP_SPRINTF_LEN
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
      type_or_value: '320'
    structs:
    - fields:
      - name: dva_word[2]
        type: uint64_t
      item_type: struct
      name: dva
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    - fields:
      - name: zc_word[4]
        type: uint64_t
      item_type: struct
      name: zio_cksum
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    - fields:
      - name: blk_dva[SPA_DVAS_PER_BP]
        type: dva_t
      - name: blk_prop
        type: uint64_t
      - name: blk_pad[2]
        type: uint64_t
      - name: blk_phys_birth
        type: uint64_t
      - name: blk_birth
        type: uint64_t
      - name: blk_fill
        type: uint64_t
      - name: blk_cksum
        type: zio_cksum_t
      item_type: struct
      name: blkptr
      pos:
        line_end: 165
        line_start: 157
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/spa.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dsl_dataset.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ds_dir_obj
        type: uint64_t
      - name: ds_prev_snap_obj
        type: uint64_t
      - name: ds_prev_snap_txg
        type: uint64_t
      - name: ds_next_snap_obj
        type: uint64_t
      - name: ds_snapnames_zapobj
        type: uint64_t
      - name: ds_num_children
        type: uint64_t
      - name: ds_creation_time
        type: uint64_t
      - name: ds_creation_txg
        type: uint64_t
      - name: ds_deadlist_obj
        type: uint64_t
      - name: ds_used_bytes
        type: uint64_t
      - name: ds_compressed_bytes
        type: uint64_t
      - name: ds_uncompressed_bytes
        type: uint64_t
      - name: ds_unique_bytes
        type: uint64_t
      - name: ds_fsid_guid
        type: uint64_t
      - name: ds_guid
        type: uint64_t
      - name: ds_flags
        type: uint64_t
      - name: ds_bp
        type: blkptr_t
      - name: ds_pad[8]
        type: uint64_t
      item_type: struct
      name: dsl_dataset_phys
      pos:
        line_end: 51
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dsl_dataset.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dsl_dir.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dd_creation_time
        type: uint64_t
      - name: dd_head_dataset_obj
        type: uint64_t
      - name: dd_parent_obj
        type: uint64_t
      - name: dd_clone_parent_obj
        type: uint64_t
      - name: dd_child_dir_zapobj
        type: uint64_t
      - name: dd_used_bytes
        type: uint64_t
      - name: dd_compressed_bytes
        type: uint64_t
      - name: dd_uncompressed_bytes
        type: uint64_t
      - name: dd_quota
        type: uint64_t
      - name: dd_reserved
        type: uint64_t
      - name: dd_props_zapobj
        type: uint64_t
      - name: dd_deleg_zapobj
        type: uint64_t
      - name: dd_pad[20]
        type: uint64_t
      item_type: struct
      name: dsl_dir_phys
      pos:
        line_end: 47
        line_start: 27
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dsl_dir.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio_checksum.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ci_func[2]'
        type: zio_checksum_t
      - name: ci_correctable
        type: int
      - name: ci_eck
        type: int
      - name: '*ci_name'
        type: char
      item_type: struct
      name: zio_checksum_info
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio_checksum.h
    typedefs:
    - item_type: typedef
      name: zio_checksum_t(const void *data, uint64_t size, zio_cksum_t *zcp)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zio_checksum.h
      type: void
    union: []
- function_names:
  - DN_BONUS
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DNODE_SHIFT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "9\t"
    - item_type: preproc_def
      name: DN_MIN_INDBLKSHIFT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "10\t"
    - item_type: preproc_def
      name: DN_MAX_INDBLKSHIFT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "14\t"
    - item_type: preproc_def
      name: DNODE_BLOCK_SHIFT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "14\t"
    - item_type: preproc_def
      name: DNODE_CORE_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "64\t"
    - item_type: preproc_def
      name: DN_MAX_OBJECT_SHIFT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "48\t"
    - item_type: preproc_def
      name: DN_MAX_OFFSET_SHIFT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: "64\t"
    - item_type: preproc_def
      name: DNODE_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (1 << DNODE_SHIFT)
    - item_type: preproc_def
      name: DN_MAX_NBLKPTR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: ((DNODE_SIZE - DNODE_CORE_SIZE) >> SPA_BLKPTRSHIFT)
    - item_type: preproc_def
      name: DN_MAX_BONUSLEN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (DNODE_SIZE - DNODE_CORE_SIZE - (1 << SPA_BLKPTRSHIFT))
    - item_type: preproc_def
      name: DN_MAX_OBJECT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (1ULL << DN_MAX_OBJECT_SHIFT)
    - item_type: preproc_def
      name: DNODES_PER_BLOCK_SHIFT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (DNODE_BLOCK_SHIFT - DNODE_SHIFT)
    - item_type: preproc_def
      name: DNODES_PER_BLOCK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (1ULL << DNODES_PER_BLOCK_SHIFT)
    - item_type: preproc_def
      name: DNODES_PER_LEVEL_SHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT)
    - item_type: preproc_def
      name: DNODE_FLAG_SPILL_BLKPTR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
      type_or_value: (1<<2)
    structs:
    - fields:
      - name: dn_type
        type: uint8_t
      - name: dn_indblkshift
        type: uint8_t
      - name: dn_nlevels
        type: uint8_t
      - name: dn_nblkptr
        type: uint8_t
      - name: dn_bonustype
        type: uint8_t
      - name: dn_checksum
        type: uint8_t
      - name: dn_compress
        type: uint8_t
      - name: dn_flags
        type: uint8_t
      - name: dn_datablkszsec
        type: uint16_t
      - name: dn_bonuslen
        type: uint16_t
      - name: dn_pad2[4]
        type: uint8_t
      - name: dn_maxblkid
        type: uint64_t
      - name: dn_used
        type: uint64_t
      - name: dn_pad3[4]
        type: uint64_t
      - name: dn_blkptr[1]
        type: blkptr_t
      - name: dn_bonus[DN_MAX_BONUSLEN - sizeof (blkptr_t)]
        type: uint8_t
      - name: dn_spill
        type: blkptr_t
      item_type: struct
      name: dnode_phys
      pos:
        line_end: 75
        line_start: 53
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/dnode.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACE_SLOT_CNT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ZFS_ACE_SPACE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
      type_or_value: (sizeof (zfs_oldace_t) * ACE_SLOT_CNT)
    structs:
    - fields:
      - name: z_fuid
        type: uint32_t
      - name: z_access_mask
        type: uint32_t
      - name: z_flags
        type: uint16_t
      - name: z_type
        type: uint16_t
      item_type: struct
      name: zfs_oldace
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
    - fields:
      - name: z_acl_extern_obj
        type: uint64_t
      - name: z_acl_count
        type: uint32_t
      - name: z_acl_version
        type: uint16_t
      - name: z_acl_pad
        type: uint16_t
      - name: z_ace_data[ACE_SLOT_CNT]
        type: zfs_oldace_t
      item_type: struct
      name: zfs_znode_acl_v0
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
    - fields:
      - name: z_acl_extern_obj
        type: uint64_t
      - name: z_acl_size
        type: uint32_t
      - name: z_acl_version
        type: uint16_t
      - name: z_acl_count
        type: uint16_t
      - name: z_ace_data[ZFS_ACE_SPACE]
        type: uint8_t
      item_type: struct
      name: zfs_znode_acl
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
    typedefs:
    - item_type: typedef
      name: uid_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libfsimage/zfs/zfs-include/zfs_acl.h
      type: unsigned int
    union: []
- function_names:
  - fsip_fs_set_data
  - fsip_file_alloc
  - fsip_file_free
  - fsip_fs
  - fsip_fs_offset
  - fsip_fs_data
  - fsip_file_data
  - init_plugin
  - fsi_init
  - find_plugin
  source_file: /src/xen/tools/libfsimage/common/fsimage_plugin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsi_open_fsimage
  - fsi_close_fsimage
  - fsi_file_exists
  - fsi_open_file
  - fsi_close_file
  - fsi_read_file
  - fsi_pread_file
  - fsi_bootstring_alloc
  - fsi_bootstring_free
  - fsi_fs_bootstring
  source_file: /src/xen/tools/libfsimage/common/fsimage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsig_file_alloc
  - fsig_fs_buf
  - fsig_file_buf
  - fsig_filepos
  - fsig_filemax
  - fsig_int1
  - fsig_int2
  - fsig_errnum
  - fsig_disk_read_junk
  - fsig_log2
  - fsig_log2
  - fsig_devread
  - fsig_substring
  - fsig_mount
  - fsig_umount
  - fsig_open
  - fsig_pread
  - fsig_read
  - fsig_close
  - fsig_init
  source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
      type_or_value: '500'
    - item_type: preproc_def
      name: BSF
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
      type_or_value: '"bsfq"'
    - item_type: preproc_def
      name: BSF
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
      type_or_value: '"bsfl"'
    structs:
    - fields:
      - name: fd_buf[FSYS_BUFLEN]
        type: char
      item_type: struct
      name: fsig_data
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
    - fields:
      - name: ffd_buf[FSYS_BUFLEN]
        type: char
      - name: ffd_curpos
        type: uint64_t
      - name: ffd_filepos
        type: uint64_t
      - name: ffd_filemax
        type: uint64_t
      - name: ffd_int1
        type: int
      - name: ffd_int2
        type: int
      - name: ffd_errnum
        type: int
      item_type: struct
      name: fsig_file_data
      pos:
        line_end: 47
        line_start: 39
        source_file: /src/xen/tools/libfsimage/common/fsimage_grub.c
    typedefs: []
    union: []
- function_names:
  - ''
  source_file: /src/xen/tools/libfsimage/common/fsimage_priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fp_name'
        type: char
      - name: '*fp_dlh'
        type: void
      - name: '*fp_ops'
        type: fsi_plugin_ops_t
      - name: '*fp_next'
        type: struct fsi_plugin
      - name: '*fp_data'
        type: void
      item_type: struct
      name: fsi_plugin
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/xen/tools/libfsimage/common/fsimage_priv.h
    - fields:
      - name: f_fd
        type: int
      - name: f_off
        type: uint64_t
      - name: '*f_data'
        type: void
      - name: '*f_plugin'
        type: fsi_plugin_t
      - name: '*f_bootstring'
        type: char
      item_type: struct
      name: fsi
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/xen/tools/libfsimage/common/fsimage_priv.h
    - fields:
      - name: '*ff_fsi'
        type: fsi_t
      - name: '*ff_data'
        type: void
      item_type: struct
      name: fsi_file
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/xen/tools/libfsimage/common/fsimage_priv.h
    typedefs: []
    union: []
- function_names:
  - ''
  source_file: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FSIMAGE_PLUGIN_VERSION
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
      type_or_value: '1'
    structs:
    - fields:
      - name: fpo_version
        type: int
      - name: (*fpo_mount)(fsi_t *, const char *, const char *)
        type: int
      - name: (*fpo_umount)(fsi_t *)
        type: int
      - name: '*(*fpo_open)(fsi_t *, const char *)'
        type: fsi_file_t
      - name: (*fpo_read)(fsi_file_t *, void *, size_t)
        type: ssize_t
      - name: (*fpo_pread)(fsi_file_t *, void *, size_t, uint64_t)
        type: ssize_t
      - name: (*fpo_close)(fsi_file_t *)
        type: int
      item_type: struct
      name: fsi_plugin_ops
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
    typedefs:
    - item_type: typedef
      name: fsi_plugin_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
      type: fsi_plugin
    - item_type: typedef
      name: "*\n    (*fsi_plugin_init_t)(int, fsi_plugin_t *, const char **)"
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_plugin.h
      type: fsi_plugin_ops_t
    union: []
- function_names:
  - ''
  source_file: /src/xen/tools/libfsimage/common/xenfsimage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: fsi_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/common/xenfsimage.h
      type: fsi
    - item_type: typedef
      name: fsi_file_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/libfsimage/common/xenfsimage.h
      type: fsi_file
    union: []
- function_names:
  - ''
  source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FSYS_BUFLEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: SECTOR_BITS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SECTOR_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FSYS_BUF
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (fsig_file_buf(ffi))
    - item_type: preproc_def
      name: filepos
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (*fsig_filepos(ffi))
    - item_type: preproc_def
      name: filemax
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (*fsig_filemax(ffi))
    - item_type: preproc_def
      name: devread
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: fsig_devread
    - item_type: preproc_def
      name: substring
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: fsig_substring
    - item_type: preproc_def
      name: errnum
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (*fsig_errnum(ffi))
    - item_type: preproc_def
      name: disk_read_func
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (*fsig_disk_read_junk())
    - item_type: preproc_def
      name: disk_read_hook
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: (*fsig_disk_read_junk())
    - item_type: preproc_def
      name: print_possibilities
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '0'
    - item_type: preproc_def
      name: grub_memset
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: memset
    - item_type: preproc_def
      name: grub_memmove
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: memmove
    - item_type: preproc_def
      name: grub_log2
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: fsig_log2
    - item_type: preproc_def
      name: ERR_FSYS_CORRUPT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_OUTSIDE_PART
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_SYMLINK_LOOP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_FILELENGTH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_BAD_FILETYPE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_FILE_NOT_FOUND
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_BAD_ARGUMENT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_FILESYSTEM_NOT_FOUND
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_NO_BOOTPATH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_DEV_VALUES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_WONT_FIT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_READ
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERR_NEWER_VERSION
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
      type_or_value: '1'
    structs:
    - fields:
      - name: fpo_version
        type: int
      - name: (*fpo_mount)(fsi_file_t *, const char *)
        type: int
      - name: (*fpo_dir)(fsi_file_t *, char *)
        type: int
      - name: (*fpo_read)(fsi_file_t *, char *, int)
        type: int
      item_type: struct
      name: fsig_plugin_ops
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/xen/tools/libfsimage/common/xenfsimage_grub.h
    typedefs: []
    union: []
- function_names:
  - RRMAGIC
  - CHECK2
  source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ISO_SECTOR_BITS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: (11)
    - item_type: preproc_def
      name: ISO_SECTOR_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: (1<<ISO_SECTOR_BITS)
    - item_type: preproc_def
      name: ISO_REGULAR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: ISO_DIRECTORY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "2\t"
    - item_type: preproc_def
      name: ISO_OTHER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0\t"
    - item_type: preproc_def
      name: RR_FLAG_PX
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: RR_FLAG_PN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: RR_FLAG_SL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: RR_FLAG_NM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: RR_FLAG_CL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: RR_FLAG_PL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x20\t"
    - item_type: preproc_def
      name: RR_FLAG_RE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x40\t"
    - item_type: preproc_def
      name: RR_FLAG_TF
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: "0x80\t"
    - item_type: preproc_def
      name: POSIX_S_IFMT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '0xF000'
    - item_type: preproc_def
      name: POSIX_S_IFREG
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: POSIX_S_IFDIR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: ISO_VD_PRIMARY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ISO_VD_END
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '255'
    - item_type: preproc_def
      name: ISO_STANDARD_ID
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type_or_value: '"CD001"'
    structs:
    - fields:
      - name: l
        type: u_int16_t
      item_type: struct
      name: __iso_16bit
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: l
        type: u_int32_t
      item_type: struct
      name: __iso_32bit
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: length
        type: iso_8bit_t
      - name: ext_attr_length
        type: iso_8bit_t
      - name: extent
        type: iso_32bit_t
      - name: size
        type: iso_32bit_t
      - name: date
        type: iso_date_t
      - name: flags
        type: iso_8bit_t
      - name: file_unit_size
        type: iso_8bit_t
      - name: interleave
        type: iso_8bit_t
      - name: volume_seq_number
        type: iso_16bit_t
      - name: name_len
        type: iso_8bit_t
      - name: name[1]
        type: u_int8_t
      item_type: struct
      name: iso_directory_record
      pos:
        line_end: 107
        line_start: 95
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: type
        type: iso_8bit_t
      - name: id[5]
        type: u_int8_t
      - name: version
        type: iso_8bit_t
      - name: _unused1[1]
        type: u_int8_t
      - name: system_id[32]
        type: u_int8_t
      - name: volume_id[32]
        type: u_int8_t
      - name: _unused2[8]
        type: u_int8_t
      - name: volume_space_size
        type: iso_32bit_t
      - name: _unused3[32]
        type: u_int8_t
      - name: volume_set_size
        type: iso_16bit_t
      - name: volume_seq_number
        type: iso_16bit_t
      - name: logical_block_size
        type: iso_16bit_t
      - name: path_table_size
        type: iso_32bit_t
      - name: type_l_path_table[4]
        type: u_int8_t
      - name: opt_type_l_path_table[4]
        type: u_int8_t
      - name: type_m_path_table[4]
        type: u_int8_t
      - name: opt_type_m_path_table[4]
        type: u_int8_t
      - name: root_directory_record
        type: struct iso_directory_record
      - name: volume_set_id[128]
        type: u_int8_t
      - name: publisher_id[128]
        type: u_int8_t
      - name: preparer_id[128]
        type: u_int8_t
      - name: application_id[128]
        type: u_int8_t
      - name: copyright_file_id[37]
        type: u_int8_t
      - name: abstract_file_id[37]
        type: u_int8_t
      - name: bibliographic_file_id[37]
        type: u_int8_t
      - name: creation_date[17]
        type: u_int8_t
      - name: modification_date[17]
        type: u_int8_t
      - name: expiration_date[17]
        type: u_int8_t
      - name: effective_date[17]
        type: u_int8_t
      - name: file_structure_version
        type: iso_8bit_t
      - name: _unused4[1]
        type: u_int8_t
      - name: application_data[512]
        type: u_int8_t
      - name: _unused5[653]
        type: u_int8_t
      item_type: struct
      name: iso_primary_descriptor
      pos:
        line_end: 143
        line_start: 109
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: signature
        type: u_int16_t
      - name: len
        type: u_int8_t
      - name: version
        type: u_int8_t
      - name: u
        type: "union {\n    struct SP {\n      u_int16_t\tmagic;\n      u_int8_t\tskip;\n
          \   } sp;\n    struct CE {\n      iso_32bit_t\textent;\n      iso_32bit_t\toffset;\n
          \     iso_32bit_t\tsize;\n    } ce;\n    struct ER {\n      u_int8_t\tlen_id;\n
          \     u_int8_t\tlen_des;\n      u_int8_t\tlen_src;\n      u_int8_t\text_ver;\n
          \     u_int8_t\tdata[0];\n    } er;\n    struct RR {\n      iso_8bit_t\tflags;\n
          \   } rr;\n    struct PX {\n      iso_32bit_t\tmode;\n      iso_32bit_t\tnlink;\n
          \     iso_32bit_t\tuid;\n      iso_32bit_t\tgid;\n    } px;\n    struct
          PN {\n      iso_32bit_t\tdev_high;\n      iso_32bit_t\tdev_low;\n    } pn;\n
          \   struct SL {\n      iso_8bit_t flags;\n      struct SL_component {\n\tiso_8bit_t\tflags;\n\tu_int8_t\t\tlen;\n\tu_int8_t\t\ttext[0];\n
          \     } link;\n    } sl;\n    struct NM {\n      iso_8bit_t\tflags;\n      u_int8_t\tname[0];\n
          \   } nm;\n    struct CL {\n      iso_32bit_t\tlocation;\n    } cl;\n    struct
          PL {\n      iso_32bit_t\tlocation;\n    } pl;\n    struct TF {\n      iso_8bit_t\tflags;\n
          \     iso_date_t\ttimes[0];\n    } tf;\n  }"
      item_type: struct
      name: rock_ridge
      pos:
        line_end: 202
        line_start: 145
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: magic
        type: u_int16_t
      - name: skip
        type: u_int8_t
      item_type: struct
      name: SP
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: extent
        type: iso_32bit_t
      - name: offset
        type: iso_32bit_t
      - name: size
        type: iso_32bit_t
      item_type: struct
      name: CE
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: len_id
        type: u_int8_t
      - name: len_des
        type: u_int8_t
      - name: len_src
        type: u_int8_t
      - name: ext_ver
        type: u_int8_t
      - name: data[0]
        type: u_int8_t
      item_type: struct
      name: ER
      pos:
        line_end: 165
        line_start: 159
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: flags
        type: iso_8bit_t
      item_type: struct
      name: RR
      pos:
        line_end: 168
        line_start: 166
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: mode
        type: iso_32bit_t
      - name: nlink
        type: iso_32bit_t
      - name: uid
        type: iso_32bit_t
      - name: gid
        type: iso_32bit_t
      item_type: struct
      name: PX
      pos:
        line_end: 174
        line_start: 169
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: dev_high
        type: iso_32bit_t
      - name: dev_low
        type: iso_32bit_t
      item_type: struct
      name: PN
      pos:
        line_end: 178
        line_start: 175
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: flags
        type: iso_8bit_t
      - name: link
        type: "struct SL_component {\n\tiso_8bit_t\tflags;\n\tu_int8_t\t\tlen;\n\tu_int8_t\t\ttext[0];\n
          \     }"
      item_type: struct
      name: SL
      pos:
        line_end: 186
        line_start: 179
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: flags
        type: iso_8bit_t
      - name: len
        type: u_int8_t
      - name: text[0]
        type: u_int8_t
      item_type: struct
      name: SL_component
      pos:
        line_end: 185
        line_start: 181
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: flags
        type: iso_8bit_t
      - name: name[0]
        type: u_int8_t
      item_type: struct
      name: NM
      pos:
        line_end: 190
        line_start: 187
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: location
        type: iso_32bit_t
      item_type: struct
      name: CL
      pos:
        line_end: 193
        line_start: 191
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: location
        type: iso_32bit_t
      item_type: struct
      name: PL
      pos:
        line_end: 196
        line_start: 194
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: flags
        type: iso_8bit_t
      - name: times[0]
        type: iso_date_t
      item_type: struct
      name: TF
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    typedefs:
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: int
    - item_type: typedef
      name: u_int8_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned int
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: int
    - item_type: typedef
      name: u_int16_t
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: int
    - item_type: typedef
      name: u_int32_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned int
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: char
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: short
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: int
    - item_type: typedef
      name: u_int8_t
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned char
    - item_type: typedef
      name: u_int16_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned short
    - item_type: typedef
      name: u_int32_t
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: unsigned int
    - item_type: typedef
      name: iso_16bit_t
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: __iso_16bit
    - item_type: typedef
      name: iso_32bit_t
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: __iso_32bit
    - item_type: typedef
      name: iso_date_t[7]
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
      type: u_int8_t
    union:
    - fields:
      - name: l
        type: u_int8_t
      item_type: union
      name: iso_8bit_t
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
    - fields:
      - name: '*rr'
        type: struct rock_ridge
      - name: '*ptr'
        type: char
      - name: i
        type: int
      item_type: union
      name: RR_ptr
      pos:
        line_end: 208
        line_start: 204
        source_file: /src/xen/tools/libfsimage/iso9660/iso9660.h
- function_names:
  - iso9660_devread
  - iso9660_mount
  - iso9660_dir
  - iso9660_read
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXINT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: ISO_SUPER
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((struct iso_sb_info *)(FSYS_BUF))
    - item_type: preproc_def
      name: INODE
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((struct iso_inode_info *)(FSYS_BUF+sizeof(struct iso_sb_info)))
    - item_type: preproc_def
      name: PRIMDESC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((struct iso_primary_descriptor *)(FSYS_BUF + 2048))
    - item_type: preproc_def
      name: DIRREC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((struct iso_directory_record *)(FSYS_BUF + 4096))
    - item_type: preproc_def
      name: RRCONT_BUF
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((unsigned char *)(FSYS_BUF + 6144))
    - item_type: preproc_def
      name: NAME_BUF
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: ((unsigned char *)(FSYS_BUF + 8192))
    - item_type: preproc_def
      name: log2
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
      type_or_value: grub_log2
    structs:
    - fields:
      - name: vol_sector
        type: unsigned long
      item_type: struct
      name: iso_sb_info
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    - fields:
      - name: file_start
        type: unsigned long
      item_type: struct
      name: iso_inode_info
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/xen/tools/libfsimage/iso9660/fsys_iso9660.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libfsimage/xfs/xfs.h
  types:
    enum:
    - enumerators:
      - name: XFS_DINODE_FMT_DEV
      - name: XFS_DINODE_FMT_EXTENTS
      - name: XFS_DINODE_FMT_LOCAL
      - name: XFS_DINODE_FMT_BTREE
      - name: XFS_DINODE_FMT_UUID
      item_type: enum
      name: xfs_dinode_fmt
      pos:
        line_end: 546
        line_start: 538
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    preproc_defs:
    - item_type: preproc_def
      name: XFS_SB_MAGIC
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0x58465342\t"
    - item_type: preproc_def
      name: XFS_SB_VERSION_4
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "4\t\t"
    - item_type: preproc_def
      name: XFS_SB_VERSION_NUMBITS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '0x000f'
    - item_type: preproc_def
      name: XFS_SB_DIRBLK_NUMBITS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '27'
    - item_type: preproc_def
      name: XFS_SB_BLOCKLOG_MIN
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: XFS_SB_BLOCKLOG_MAX
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: XFS_SB_INODELOG_MIN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XFS_SB_INODELOG_MAX
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '11'
    - item_type: preproc_def
      name: XFS_SB_AGBLKLOG_MAX
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BMBT_USE_64
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XFS_DIR2_LEAF1_MAGIC
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0xd2f1\t"
    - item_type: preproc_def
      name: XFS_DIR2_LEAFN_MAGIC
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0xd2ff\t"
    - item_type: preproc_def
      name: XFS_DIR2_DATA_FREE_TAG
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: XFS_DIR2_DATA_FD_COUNT
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XFS_DIR2_BLOCK_MAGIC
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0x58443242\t"
    - item_type: preproc_def
      name: XFS_DINODE_VERSION_1
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XFS_DINODE_VERSION_2
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XFS_DINODE_MAGIC
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0x494e\t"
    - item_type: preproc_def
      name: IFMT
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0170000\t\t"
    - item_type: preproc_def
      name: IFDIR
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0040000\t\t"
    - item_type: preproc_def
      name: IFREG
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0100000\t\t"
    - item_type: preproc_def
      name: IFLNK
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type_or_value: "0120000\t\t"
    structs:
    - fields:
      - name: sb_magicnum
        type: xfs_uint32_t
      - name: sb_blocksize
        type: xfs_uint32_t
      - name: sb_dblocks
        type: xfs_drfsbno_t
      - name: sb_rblocks
        type: xfs_drfsbno_t
      - name: sb_rextents
        type: xfs_drtbno_t
      - name: sb_uuid
        type: uuid_t
      - name: sb_logstart
        type: xfs_dfsbno_t
      - name: sb_rootino
        type: xfs_ino_t
      - name: sb_rbmino
        type: xfs_ino_t
      - name: sb_rsumino
        type: xfs_ino_t
      - name: sb_rextsize
        type: xfs_agblock_t
      - name: sb_agblocks
        type: xfs_agblock_t
      - name: sb_agcount
        type: xfs_agnumber_t
      - name: sb_rbmblocks
        type: xfs_extlen_t
      - name: sb_logblocks
        type: xfs_extlen_t
      - name: sb_versionnum
        type: xfs_uint16_t
      - name: sb_sectsize
        type: xfs_uint16_t
      - name: sb_inodesize
        type: xfs_uint16_t
      - name: sb_inopblock
        type: xfs_uint16_t
      - name: sb_fname[12]
        type: char
      - name: sb_blocklog
        type: xfs_uint8_t
      - name: sb_sectlog
        type: xfs_uint8_t
      - name: sb_inodelog
        type: xfs_uint8_t
      - name: sb_inopblog
        type: xfs_uint8_t
      - name: sb_agblklog
        type: xfs_uint8_t
      - name: sb_rextslog
        type: xfs_uint8_t
      - name: sb_inprogress
        type: xfs_uint8_t
      - name: sb_imax_pct
        type: xfs_uint8_t
      - name: sb_icount
        type: xfs_uint64_t
      - name: sb_ifree
        type: xfs_uint64_t
      - name: sb_fdblocks
        type: xfs_uint64_t
      - name: sb_frextents
        type: xfs_uint64_t
      - name: sb_uquotino
        type: xfs_ino_t
      - name: sb_gquotino
        type: xfs_ino_t
      - name: sb_qflags
        type: xfs_uint16_t
      - name: sb_flags
        type: xfs_uint8_t
      - name: sb_shared_vn
        type: xfs_uint8_t
      - name: sb_inoalignmt
        type: xfs_extlen_t
      - name: sb_unit
        type: xfs_uint32_t
      - name: sb_width
        type: xfs_uint32_t
      - name: sb_dirblklog
        type: xfs_uint8_t
      - name: sb_dummy[7]
        type: xfs_uint8_t
      item_type: struct
      name: xfs_sb
      pos:
        line_end: 134
        line_start: 81
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: bb_magic
        type: xfs_uint32_t
      - name: bb_level
        type: xfs_uint16_t
      - name: bb_numrecs
        type: xfs_uint16_t
      - name: bb_leftsib
        type: xfs_dfsbno_t
      - name: bb_rightsib
        type: xfs_dfsbno_t
      item_type: struct
      name: xfs_btree_lblock
      pos:
        line_end: 161
        line_start: 154
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: bb_magic
        type: xfs_uint32_t
      - name: bb_level
        type: xfs_uint16_t
      - name: bb_numrecs
        type: xfs_uint16_t
      item_type: struct
      name: xfs_btree_hdr
      pos:
        line_end: 171
        line_start: 166
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: bb_h
        type: xfs_btree_hdr_t
      - name: bb_u
        type: "union\t\t{\n\t\tstruct\t{\n\t\t\txfs_agblock_t\tbb_leftsib;\n\t\t\txfs_agblock_t\tbb_rightsib;\n\t\t}\ts;\t\t/*
          short form pointers */\n\t\tstruct\t{\n\t\t\txfs_dfsbno_t\tbb_leftsib;\n\t\t\txfs_dfsbno_t\tbb_rightsib;\n\t\t}\tl;\t\t/*
          long form pointers */\n\t}"
      item_type: struct
      name: xfs_btree_block
      pos:
        line_end: 186
        line_start: 173
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: bb_level
        type: xfs_uint16_t
      - name: bb_numrecs
        type: xfs_uint16_t
      item_type: struct
      name: xfs_bmdr_block
      pos:
        line_end: 197
        line_start: 193
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: l0
        type: xfs_uint32_t
      item_type: struct
      name: xfs_bmbt_rec_32
      pos:
        line_end: 218
        line_start: 215
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: l0
        type: xfs_uint64_t
      item_type: struct
      name: xfs_bmbt_rec_64
      pos:
        line_end: 222
        line_start: 219
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: br_startoff
        type: xfs_dfiloff_t
      item_type: struct
      name: xfs_bmbt_key
      pos:
        line_end: 238
        line_start: 235
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: forw
        type: xfs_dablk_t
      - name: back
        type: xfs_dablk_t
      - name: magic
        type: xfs_uint16_t
      - name: pad
        type: xfs_uint16_t
      item_type: struct
      name: xfs_da_blkinfo
      pos:
        line_end: 290
        line_start: 285
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: hdr
        type: "struct xfs_da_node_hdr {\t/* constant-structure header block */\n\t\txfs_da_blkinfo_t
          info;\t/* block type, links, etc. */\n\t\txfs_uint16_t count;\t/* count
          of active entries */\n\t\txfs_uint16_t level;\t/* level above leaves (leaf
          == 0) */\n\t}"
      - name: btree[1]
        type: "struct xfs_da_node_entry {\n\t\txfs_dahash_t hashval;\t/* hash value
          for this descendant */\n\t\txfs_dablk_t before;\t/* Btree block before this
          key */\n\t}"
      item_type: struct
      name: xfs_da_intnode
      pos:
        line_end: 312
        line_start: 302
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: info
        type: xfs_da_blkinfo_t
      - name: count
        type: xfs_uint16_t
      - name: level
        type: xfs_uint16_t
      item_type: struct
      name: xfs_da_node_hdr
      pos:
        line_end: 307
        line_start: 303
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: hashval
        type: xfs_dahash_t
      - name: before
        type: xfs_dablk_t
      item_type: struct
      name: xfs_da_node_entry
      pos:
        line_end: 311
        line_start: 308
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: offset
        type: xfs_dir2_data_off_t
      - name: length
        type: xfs_dir2_data_off_t
      item_type: struct
      name: xfs_dir2_data_free
      pos:
        line_end: 337
        line_start: 334
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: magic
        type: xfs_uint32_t
      - name: bestfree[XFS_DIR2_DATA_FD_COUNT]
        type: xfs_dir2_data_free_t
      item_type: struct
      name: xfs_dir2_data_hdr
      pos:
        line_end: 348
        line_start: 344
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: inumber
        type: xfs_ino_t
      - name: namelen
        type: xfs_uint8_t
      - name: name[1]
        type: xfs_uint8_t
      - name: tag
        type: xfs_dir2_data_off_t
      item_type: struct
      name: xfs_dir2_data_entry
      pos:
        line_end: 360
        line_start: 354
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: freetag
        type: xfs_uint16_t
      - name: length
        type: xfs_dir2_data_off_t
      - name: tag
        type: xfs_dir2_data_off_t
      item_type: struct
      name: xfs_dir2_data_unused
      pos:
        line_end: 371
        line_start: 366
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: info
        type: xfs_da_blkinfo_t
      - name: count
        type: xfs_uint16_t
      - name: stale
        type: xfs_uint16_t
      item_type: struct
      name: xfs_dir2_leaf_hdr
      pos:
        line_end: 391
        line_start: 387
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: count
        type: xfs_uint32_t
      - name: stale
        type: xfs_uint32_t
      item_type: struct
      name: xfs_dir2_block_tail
      pos:
        line_end: 413
        line_start: 410
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: i[8]
        type: xfs_uint8_t
      item_type: struct
      name: xfs_dir2_ino8_t
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: i[4]
        type: xfs_uint8_t
      item_type: struct
      name: xfs_dir2_ino4_t
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: i[2]
        type: xfs_uint8_t
      item_type: struct
      name: xfs_dir2_sf_off_t
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: count
        type: xfs_uint8_t
      - name: i8count
        type: xfs_uint8_t
      - name: parent
        type: xfs_dir2_inou_t
      item_type: struct
      name: xfs_dir2_sf_hdr
      pos:
        line_end: 460
        line_start: 456
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: namelen
        type: xfs_uint8_t
      - name: offset
        type: xfs_dir2_sf_off_t
      - name: name[1]
        type: xfs_uint8_t
      - name: inumber
        type: xfs_dir2_inou_t
      item_type: struct
      name: xfs_dir2_sf_entry
      pos:
        line_end: 467
        line_start: 462
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: hdr
        type: xfs_dir2_sf_hdr_t
      - name: list[1]
        type: xfs_dir2_sf_entry_t
      item_type: struct
      name: xfs_dir2_sf
      pos:
        line_end: 472
        line_start: 469
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: t_sec
        type: xfs_int32_t
      - name: t_nsec
        type: xfs_int32_t
      item_type: struct
      name: xfs_timestamp
      pos:
        line_end: 489
        line_start: 486
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: di_magic
        type: xfs_uint16_t
      - name: di_mode
        type: xfs_uint16_t
      - name: di_version
        type: xfs_int8_t
      - name: di_format
        type: xfs_int8_t
      - name: di_onlink
        type: xfs_uint16_t
      - name: di_uid
        type: xfs_uint32_t
      - name: di_gid
        type: xfs_uint32_t
      - name: di_nlink
        type: xfs_uint32_t
      - name: di_projid
        type: xfs_uint16_t
      - name: di_pad[10]
        type: xfs_uint8_t
      - name: di_atime
        type: xfs_timestamp_t
      - name: di_mtime
        type: xfs_timestamp_t
      - name: di_ctime
        type: xfs_timestamp_t
      - name: di_size
        type: xfs_fsize_t
      - name: di_nblocks
        type: xfs_drfsbno_t
      - name: di_extsize
        type: xfs_extlen_t
      - name: di_nextents
        type: xfs_extnum_t
      - name: di_anextents
        type: xfs_aextnum_t
      - name: di_forkoff
        type: xfs_uint8_t
      - name: di_aformat
        type: xfs_int8_t
      - name: di_dmevmask
        type: xfs_uint32_t
      - name: di_dmstate
        type: xfs_uint16_t
      - name: di_flags
        type: xfs_uint16_t
      - name: di_gen
        type: xfs_uint32_t
      item_type: struct
      name: xfs_dinode_core
      pos:
        line_end: 521
        line_start: 495
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: di_core
        type: xfs_dinode_core_t
      - name: di_next_unlinked
        type: xfs_agino_t
      - name: di_u
        type: "union {\n\t\txfs_bmdr_block_t di_bmbt;\t/* btree root block */\n\t\txfs_bmbt_rec_32_t
          di_bmx[1];\t/* extent list */\n\t\txfs_dir2_sf_t\tdi_dir2sf;\t/* shortform
          directory v2 */\n\t\tchar\t\tdi_c[1];\t/* local contents */\n\t}"
      item_type: struct
      name: xfs_dinode
      pos:
        line_end: 533
        line_start: 523
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    typedefs:
    - item_type: typedef
      name: xfs_int8_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: signed char
    - item_type: typedef
      name: xfs_uint8_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: unsigned char
    - item_type: typedef
      name: xfs_int16_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: short
    - item_type: typedef
      name: xfs_uint16_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: unsigned short
    - item_type: typedef
      name: xfs_int32_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: int
    - item_type: typedef
      name: xfs_uint32_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: unsigned int
    - item_type: typedef
      name: xfs_int64_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: long long
    - item_type: typedef
      name: xfs_uint64_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: unsigned long long
    - item_type: typedef
      name: xfs_ino_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_agino_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_daddr_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_int64_t
    - item_type: typedef
      name: xfs_off_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_int64_t
    - item_type: typedef
      name: uuid_t[16]
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint8_t
    - item_type: typedef
      name: xfs_agblock_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_extlen_t
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_agnumber_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_extnum_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_int32_t
    - item_type: typedef
      name: xfs_aextnum_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_int16_t
    - item_type: typedef
      name: xfs_fsize_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_int64_t
    - item_type: typedef
      name: xfs_dablk_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_dahash_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_dfsbno_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_drfsbno_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_drtbno_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_dfiloff_t
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_fsblock_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_fileoff_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_filblks_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_bmbt_rec_base_t
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint64_t
    - item_type: typedef
      name: xfs_bmbt_rec_t
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_bmbt_rec_64_t
    - item_type: typedef
      name: xfs_bmbt_rec_base_t
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint32_t
    - item_type: typedef
      name: xfs_bmbt_rec_t
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_bmbt_rec_32_t
    - item_type: typedef
      name: xfs_bmbt_ptr_t
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_dfsbno_t
    - item_type: typedef
      name: xfs_bmbt_block_t
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_btree_lblock
    - item_type: typedef
      name: xfs_dir2_data_off_t
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_uint16_t
    - item_type: typedef
      name: xfs_dir2_off_t
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
      type: xfs_off_t
    union:
    - fields:
      - name: entry
        type: xfs_dir2_data_entry_t
      - name: unused
        type: xfs_dir2_data_unused_t
      item_type: union
      name: xfs_dir2_data_union_t
      pos:
        line_end: 376
        line_start: 373
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
    - fields:
      - name: i8
        type: xfs_dir2_ino8_t
      - name: i4
        type: xfs_dir2_ino4_t
      item_type: union
      name: xfs_dir2_inou_t
      pos:
        line_end: 440
        line_start: 437
        source_file: /src/xen/tools/libfsimage/xfs/xfs.h
- function_names:
  - mask32lo
  - XFS_INO_MASK
  - agino2agbno
  - ino2agno
  - ino2agino
  - ino2offset
  - le16
  - le32
  - le64
  - xt_start
  - xt_offset
  - xt_len
  - isinxt
  - agb2daddr
  - fsb2daddr
  - btroot_maxrecs
  - di_read
  - init_extents
  - next_extent
  - xfs_dabread
  - sf_ino
  - sf_parent_ino
  - roundup8
  - next_dentry
  - first_dentry
  - xfs_sb_is_invalid
  - xfs_mount
  - xfs_read
  - xfs_dir
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LINK_COUNT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: '8'
    - item_type: preproc_def
      name: dirbuf
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((char *)FSYS_BUF)
    - item_type: preproc_def
      name: filebuf
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((char *)FSYS_BUF + 4096)
    - item_type: preproc_def
      name: inode
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_dinode_t *)((char *)FSYS_BUF + 8192))
    - item_type: preproc_def
      name: icore
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: (inode->di_core)
    - item_type: preproc_def
      name: XFS_INO_OFFSET_BITS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: xfs.inopblog
    - item_type: preproc_def
      name: XFS_INO_AGINO_BITS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: (xfs.agblklog + xfs.inopblog)
    - item_type: preproc_def
      name: h
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_dir2_leaf_hdr_t *)dirbuf)
    - item_type: preproc_def
      name: dau
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_dir2_data_union_t *)dirbuf)
    - item_type: preproc_def
      name: tail
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_dir2_block_tail_t *)dirbuf)
    - item_type: preproc_def
      name: h
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_dir2_leaf_hdr_t *)dirbuf)
    - item_type: preproc_def
      name: n
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
      type_or_value: ((xfs_da_intnode_t *)dirbuf)
    structs:
    - fields:
      - name: offset
        type: xfs_fileoff_t
      - name: start
        type: xfs_fsblock_t
      - name: len
        type: xfs_filblks_t
      item_type: struct
      name: xad
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    - fields:
      - name: bsize
        type: int
      - name: dirbsize
        type: int
      - name: isize
        type: int
      - name: agblocks
        type: unsigned int
      - name: bdlog
        type: int
      - name: blklog
        type: int
      - name: inopblog
        type: int
      - name: agblklog
        type: int
      - name: nextents
        type: unsigned int
      - name: next
        type: xfs_daddr_t
      - name: daddr
        type: xfs_daddr_t
      - name: forw
        type: xfs_dablk_t
      - name: dablk
        type: xfs_dablk_t
      - name: '*xt'
        type: xfs_bmbt_rec_32_t
      - name: ptr0
        type: xfs_bmbt_ptr_t
      - name: btnode_ptr0_off
        type: int
      - name: i8param
        type: int
      - name: dirpos
        type: int
      - name: dirmax
        type: int
      - name: blkoff
        type: int
      - name: fpos
        type: int
      - name: rootino
        type: xfs_ino_t
      item_type: struct
      name: xfs_info
      pos:
        line_end: 56
        line_start: 33
        source_file: /src/xen/tools/libfsimage/xfs/fsys_xfs.c
    typedefs: []
    union: []
- function_names:
  - fat_mount
  - fat_read
  - fat_dir
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FAT_SUPER
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
      type_or_value: "( (struct fat_superblock *) \\\n \t\t    ( FSYS_BUF + 32256)
        )"
    - item_type: preproc_def
      name: FAT_BUF
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
      type_or_value: "( FSYS_BUF + 30208 )\t"
    - item_type: preproc_def
      name: NAME_BUF
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
      type_or_value: "( FSYS_BUF + 29184 )\t"
    - item_type: preproc_def
      name: FAT_CACHE_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: log2
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
      type_or_value: grub_log2
    structs:
    - fields:
      - name: fat_offset
        type: int
      - name: fat_length
        type: int
      - name: fat_size
        type: int
      - name: root_offset
        type: int
      - name: root_max
        type: int
      - name: data_offset
        type: int
      - name: num_sectors
        type: int
      - name: num_clust
        type: int
      - name: clust_eof_marker
        type: int
      - name: sects_per_clust
        type: int
      - name: sectsize_bits
        type: int
      - name: clustsize_bits
        type: int
      - name: root_cluster
        type: int
      - name: cached_fat
        type: int
      - name: file_cluster
        type: int
      - name: current_cluster_num
        type: int
      - name: current_cluster
        type: int
      item_type: struct
      name: fat_superblock
      pos:
        line_end: 43
        line_start: 22
        source_file: /src/xen/tools/libfsimage/fat/fsys_fat.c
    typedefs: []
    union: []
- function_names:
  - FAT_CVT_U16
  - FAT_DIRENTRY_ATTRIB
  - FAT_DIRENTRY_VALID
  - FAT_DIRENTRY_FIRST_CLUSTER
  - FAT_DIRENTRY_FILELENGTH
  - FAT_LONGDIR_ID
  - FAT_LONGDIR_ALIASCHECKSUM
  source_file: /src/xen/tools/libfsimage/fat/fat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FAT_MAX_12BIT_CLUST
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: "4087\t"
    - item_type: preproc_def
      name: FAT_ATTRIB_OK_MASK
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: '0x37'
    - item_type: preproc_def
      name: FAT_ATTRIB_NOT_OK_MASK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: '0xC8'
    - item_type: preproc_def
      name: FAT_ATTRIB_DIR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: FAT_ATTRIB_LONGNAME
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: FAT_DIRENTRY_LENGTH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type_or_value: '32'
    structs:
    - fields:
      - name: ignored[3]
        type: __s8
      - name: system_id[8]
        type: __s8
      - name: bytes_per_sect[2]
        type: __u8
      - name: sects_per_clust
        type: __u8
      - name: reserved_sects[2]
        type: __u8
      - name: num_fats
        type: __u8
      - name: dir_entries[2]
        type: __u8
      - name: short_sectors[2]
        type: __u8
      - name: media
        type: __u8
      - name: fat_length
        type: __u16
      - name: secs_track
        type: __u16
      - name: heads
        type: __u16
      - name: hidden
        type: __u32
      - name: long_sectors
        type: __u32
      - name: fat32_length
        type: __u32
      - name: flags
        type: __u16
      - name: version[2]
        type: __u8
      - name: root_cluster
        type: __u32
      - name: info_sector
        type: __u16
      - name: backup_boot
        type: __u16
      - name: reserved2[6]
        type: __u16
      item_type: struct
      name: fat_bpb
      pos:
        line_end: 59
        line_start: 34
        source_file: /src/xen/tools/libfsimage/fat/fat.h
    typedefs:
    - item_type: typedef
      name: char
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: __signed__
    - item_type: typedef
      name: __u8
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: unsigned char
    - item_type: typedef
      name: __s16
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: __signed__ short
    - item_type: typedef
      name: __u16
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: unsigned short
    - item_type: typedef
      name: __s32
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: __signed__
    - item_type: typedef
      name: __u32
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libfsimage/fat/fat.h
      type: unsigned int
    union: []
- function_names:
  - ext2lib_mount
  - ext2lib_umount
  - ext2lib_open
  - ext2lib_read
  - ext2lib_pread
  - ext2lib_close
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/ext2fs-lib/ext2fs-lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EXT2_DIR_REC_LEN
  - log2
  - EXT2_ADDR_PER_BLOCK
  - EXT2_ADDR_PER_BLOCK_BITS
  - EXT2_INODE_SIZE
  - EXT2_INODES_PER_BLOCK
  - EXT2_BLOCK_SIZE_BITS
  - EXT2_BLOCK_SIZE
  - EXT2_DESC_PER_BLOCK
  - S_ISLNK
  - S_ISREG
  - S_ISDIR
  - ext2fs_mount
  - ext2_rdfsb
  - ext4_recurse_extent_index
  - ext2fs_block_map
  - ext2fs_read
  - ext2_is_fast_symlink
  - ext2fs_dir
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: mapblock1
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (*fsig_int1(ffi))
    - item_type: preproc_def
      name: mapblock2
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (*fsig_int2(ffi))
    - item_type: preproc_def
      name: DEV_BSIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '512'
    - item_type: preproc_def
      name: BLOCK_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "1024\t\t"
    - item_type: preproc_def
      name: WHICH_SUPER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SBLOCK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "(WHICH_SUPER * BLOCK_SIZE / DEV_BSIZE)\t"
    - item_type: preproc_def
      name: EXT2_NDIR_BLOCKS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '12'
    - item_type: preproc_def
      name: EXT2_IND_BLOCK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: EXT2_NDIR_BLOCKS
    - item_type: preproc_def
      name: EXT2_DIND_BLOCK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (EXT2_IND_BLOCK + 1)
    - item_type: preproc_def
      name: EXT2_TIND_BLOCK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (EXT2_DIND_BLOCK + 1)
    - item_type: preproc_def
      name: EXT2_N_BLOCKS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (EXT2_TIND_BLOCK + 1)
    - item_type: preproc_def
      name: EXT4_EXTENTS_FL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '0x00080000 '
    - item_type: preproc_def
      name: NAME_MAX
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "255\t"
    - item_type: preproc_def
      name: EXT2_NAME_LEN
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '255'
    - item_type: preproc_def
      name: EXT2_DIR_PAD
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '4'
    - item_type: preproc_def
      name: EXT2_DIR_ROUND
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: (EXT2_DIR_PAD - 1)
    - item_type: preproc_def
      name: EXT4_EXT_MAGIC
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '0xf30a'
    - item_type: preproc_def
      name: EXT2_SUPER_MAGIC
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "0xEF53\t"
    - item_type: preproc_def
      name: EXT2_ROOT_INO
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "2\t"
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "1024\t"
    - item_type: preproc_def
      name: MAX_LINK_COUNT
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "5\t"
    - item_type: preproc_def
      name: SUPERBLOCK
      pos:
        line_end: 289
        line_start: 287
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: ((struct ext2_super_block *)(FSYS_BUF))
    - item_type: preproc_def
      name: GROUP_DESC
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: "((struct ext2_group_desc *) \\\n     ((char *)SUPERBLOCK + sizeof(struct
        ext2_super_block)))"
    - item_type: preproc_def
      name: INODE
      pos:
        line_end: 294
        line_start: 292
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: ((struct ext2_inode *)((caddr_t)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
    - item_type: preproc_def
      name: DATABLOCK1
      pos:
        line_end: 296
        line_start: 294
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: ((char *)((caddr_t)INODE + sizeof(struct ext2_inode)))
    - item_type: preproc_def
      name: DATABLOCK2
      pos:
        line_end: 298
        line_start: 296
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: ((char *)((caddr_t)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK)))
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '00170000'
    - item_type: preproc_def
      name: S_IFLNK
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '0120000'
    - item_type: preproc_def
      name: S_IFREG
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '0100000'
    - item_type: preproc_def
      name: S_IFDIR
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type_or_value: '0040000'
    structs:
    - fields:
      - name: s_inodes_count
        type: __u32
      - name: s_blocks_count
        type: __u32
      - name: s_r_blocks_count
        type: __u32
      - name: s_free_blocks_count
        type: __u32
      - name: s_free_inodes_count
        type: __u32
      - name: s_first_data_block
        type: __u32
      - name: s_log_block_size
        type: __u32
      - name: s_log_frag_size
        type: __s32
      - name: s_blocks_per_group
        type: __u32
      - name: s_frags_per_group
        type: __u32
      - name: s_inodes_per_group
        type: __u32
      - name: s_mtime
        type: __u32
      - name: s_wtime
        type: __u32
      - name: s_mnt_count
        type: __u16
      - name: s_max_mnt_count
        type: __s16
      - name: s_magic
        type: __u16
      - name: s_state
        type: __u16
      - name: s_errors
        type: __u16
      - name: s_pad
        type: __u16
      - name: s_lastcheck
        type: __u32
      - name: s_checkinterval
        type: __u32
      - name: s_creator_os
        type: __u32
      - name: s_rev_level
        type: __u32
      - name: s_def_resuid
        type: __u16
      - name: s_def_resgid
        type: __u16
      - name: s_first_ino
        type: __u32
      - name: s_inode_size
        type: __u16
      - name: s_block_group_nr
        type: __u16
      - name: s_feature_compat
        type: __u32
      - name: s_feature_incompat
        type: __u32
      - name: s_feature_ro_compat
        type: __u32
      - name: s_uuid[16]
        type: __u8
      - name: s_volume_name[16]
        type: char
      - name: s_last_mounted[64]
        type: char
      - name: s_algorithm_usage_bitmap
        type: __u32
      - name: s_prealloc_blocks
        type: __u8
      - name: s_prealloc_dir_blocks
        type: __u8
      - name: s_reserved_gdt_blocks
        type: __u16
      - name: s_journal_uuid[16]
        type: __u8
      - name: s_journal_inum
        type: __u32
      - name: s_journal_dev
        type: __u32
      - name: s_last_orphan
        type: __u32
      - name: s_hash_seed[4]
        type: __u32
      - name: s_def_hash_version
        type: __u8
      - name: s_jnl_backup_type
        type: __u8
      - name: s_reserved_word_pad
        type: __u16
      - name: s_default_mount_opts
        type: __u32
      - name: s_first_meta_bg
        type: __u32
      - name: s_mkfs_time
        type: __u32
      - name: s_jnl_blocks[17]
        type: __u32
      - name: s_reserved[172]
        type: __u32
      item_type: struct
      name: ext2_super_block
      pos:
        line_end: 127
        line_start: 54
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: bg_block_bitmap
        type: __u32
      - name: bg_inode_bitmap
        type: __u32
      - name: bg_inode_table
        type: __u32
      - name: bg_free_blocks_count
        type: __u16
      - name: bg_free_inodes_count
        type: __u16
      - name: bg_used_dirs_count
        type: __u16
      - name: bg_pad
        type: __u16
      - name: bg_reserved[3]
        type: __u32
      item_type: struct
      name: ext2_group_desc
      pos:
        line_end: 139
        line_start: 129
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: i_mode
        type: __u16
      - name: i_uid
        type: __u16
      - name: i_size
        type: __u32
      - name: i_atime
        type: __u32
      - name: i_ctime
        type: __u32
      - name: i_mtime
        type: __u32
      - name: i_dtime
        type: __u32
      - name: i_gid
        type: __u16
      - name: i_links_count
        type: __u16
      - name: i_blocks
        type: __u32
      - name: i_flags
        type: __u32
      - name: osd1
        type: "union\n      {\n\tstruct\n\t  {\n\t    __u32 l_i_reserved1;\n\t  }\n\tlinux1;\n\tstruct\n\t
          \ {\n\t    __u32 h_i_translator;\n\t  }\n\thurd1;\n\tstruct\n\t  {\n\t    __u32
          m_i_reserved1;\n\t  }\n\tmasix1;\n      }"
      - name: i_block[EXT2_N_BLOCKS]
        type: __u32
      - name: i_version
        type: __u32
      - name: i_file_acl
        type: __u32
      - name: i_dir_acl
        type: __u32
      - name: i_faddr
        type: __u32
      - name: osd2
        type: "union\n      {\n\tstruct\n\t  {\n\t    __u8 l_i_frag;\t/* Fragment
          number */\n\t    __u8 l_i_fsize;\t/* Fragment size */\n\t    __u16 i_pad1;\n\t
          \   __u32 l_i_reserved2[2];\n\t  }\n\tlinux2;\n\tstruct\n\t  {\n\t    __u8
          h_i_frag;\t/* Fragment number */\n\t    __u8 h_i_fsize;\t/* Fragment size
          */\n\t    __u16 h_i_mode_high;\n\t    __u16 h_i_uid_high;\n\t    __u16 h_i_gid_high;\n\t
          \   __u32 h_i_author;\n\t  }\n\thurd2;\n\tstruct\n\t  {\n\t    __u8 m_i_frag;\t/*
          Fragment number */\n\t    __u8 m_i_fsize;\t/* Fragment size */\n\t    __u16
          m_pad1;\n\t    __u32 m_i_reserved2[2];\n\t  }\n\tmasix2;\n      }"
      item_type: struct
      name: ext2_inode
      pos:
        line_end: 208
        line_start: 141
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: inode
        type: __u32
      - name: rec_len
        type: __u16
      - name: name_len
        type: __u8
      - name: file_type
        type: __u8
      - name: name[EXT2_NAME_LEN]
        type: char
      item_type: struct
      name: ext2_dir_entry
      pos:
        line_end: 225
        line_start: 218
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: ee_block
        type: __u32
      - name: ee_len
        type: __u16
      - name: ee_start_hi
        type: __u16
      - name: ee_start
        type: __u32
      item_type: struct
      name: ext4_extent
      pos:
        line_end: 248
        line_start: 243
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: ei_block
        type: __u32
      - name: ei_leaf
        type: __u32
      - name: ei_leaf_hi
        type: __u16
      - name: ei_unused
        type: __u16
      item_type: struct
      name: ext4_extent_idx
      pos:
        line_end: 260
        line_start: 254
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    - fields:
      - name: eh_magic
        type: __u16
      - name: eh_entries
        type: __u16
      - name: eh_max
        type: __u16
      - name: eh_depth
        type: __u16
      - name: eh_generation
        type: __u32
      item_type: struct
      name: ext4_extent_header
      pos:
        line_end: 271
        line_start: 265
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
    typedefs:
    - item_type: typedef
      name: char
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: __signed__
    - item_type: typedef
      name: __u8
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: unsigned char
    - item_type: typedef
      name: __s16
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: __signed__ short
    - item_type: typedef
      name: __u16
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: unsigned short
    - item_type: typedef
      name: __s32
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: __signed__
    - item_type: typedef
      name: __u32
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: unsigned int
    - item_type: typedef
      name: linux_off_t
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/xen/tools/libfsimage/ext2fs/fsys_ext2fs.c
      type: long
    union: []
- function_names:
  - __cpu_to_le64
  - __le64_to_cpu
  - __cpu_to_le32
  - __le32_to_cpu
  - __cpu_to_le16
  - __le16_to_cpu
  - IH_KEY_OFFSET
  - IH_KEY_ISTYPE
  - S_ISREG
  - S_ISDIR
  - S_ISLNK
  - CACHE
  - BLOCKHEAD
  - KEY
  - DC
  - is_power_of_two
  - journal_read
  - block_read
  - journal_init
  - reiserfs_mount
  - read_tree_node
  - next_key
  - search_stat
  - reiserfs_read
  - reiserfs_dir
  - reiserfs_embed
  - fsi_init_plugin
  source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REISERFS_MAX_SUPPORTED_VERSION
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: REISERFS_SUPER_MAGIC_STRING
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '"ReIsErFs"'
    - item_type: preproc_def
      name: REISER2FS_SUPER_MAGIC_STRING
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '"ReIsEr2Fs"'
    - item_type: preproc_def
      name: REISER3FS_SUPER_MAGIC_STRING
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '"ReIsEr3Fs"'
    - item_type: preproc_def
      name: MAX_HEIGHT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '7'
    - item_type: preproc_def
      name: JOURNAL_TRANS_HALF
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1018'
    - item_type: preproc_def
      name: JOURNAL_DESC_MAGIC
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '"ReIsErLB" '
    - item_type: preproc_def
      name: KEY_SIZE
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (sizeof (struct key))
    - item_type: preproc_def
      name: BLKH_SIZE
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (sizeof (struct block_head))
    - item_type: preproc_def
      name: DISK_LEAF_NODE_LEVEL
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: IH_SIZE
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (sizeof (struct item_head))
    - item_type: preproc_def
      name: ITEM_VERSION_1
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ITEM_VERSION_2
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DC_SIZE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (sizeof (struct disk_child))
    - item_type: preproc_def
      name: DEH_SIZE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (sizeof (struct reiserfs_de_head))
    - item_type: preproc_def
      name: DEH_Statdata
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: "(1 << 0)\t\t\t"
    - item_type: preproc_def
      name: DEH_Visible
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: SD_OFFSET
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SD_UNIQUENESS
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DOT_OFFSET
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DOT_DOT_OFFSET
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DIRENTRY_UNIQUENESS
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '500'
    - item_type: preproc_def
      name: V1_TYPE_STAT_DATA
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: V1_TYPE_DIRECT
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: V1_TYPE_INDIRECT
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0xfffffffe'
    - item_type: preproc_def
      name: V1_TYPE_DIRECTORY_MAX
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0xfffffffd'
    - item_type: preproc_def
      name: V2_TYPE_STAT_DATA
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: V2_TYPE_INDIRECT
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: V2_TYPE_DIRECT
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: V2_TYPE_DIRENTRY
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '3 '
    - item_type: preproc_def
      name: REISERFS_ROOT_OBJECTID
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: REISERFS_ROOT_PARENT_OBJECTID
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: REISERFS_DISK_OFFSET_IN_BYTES
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (64 * 1024)
    - item_type: preproc_def
      name: REISERFS_OLD_DISK_OFFSET_IN_BYTES
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: (8 * 1024)
    - item_type: preproc_def
      name: REISERFS_OLD_BLOCKSIZE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: "1024\t"
    - item_type: preproc_def
      name: MAX_LINK_COUNT
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: "5\t"
    - item_type: preproc_def
      name: FSYSREISER_CACHE_SIZE
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: 24*1024
    - item_type: preproc_def
      name: FSYSREISER_MIN_BLOCKSIZE
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: SECTOR_SIZE
    - item_type: preproc_def
      name: FSYSREISER_MAX_BLOCKSIZE
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: FSYSREISER_CACHE_SIZE / 3
    - item_type: preproc_def
      name: ROOT
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: ((char *) FSYS_BUF)
    - item_type: preproc_def
      name: LEAF
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: CACHE (DISK_LEAF_NODE_LEVEL)
    - item_type: preproc_def
      name: ITEMHEAD
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: ((struct item_head  *) ((char *) LEAF + BLKH_SIZE))
    - item_type: preproc_def
      name: INFO
      pos:
        line_end: 355
        line_start: 353
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: ((struct fsys_reiser_info *) ((char *) FSYS_BUF + FSYSREISER_CACHE_SIZE))
    - item_type: preproc_def
      name: JOURNAL_START
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: ((__u32 *) (INFO + 1))
    - item_type: preproc_def
      name: JOURNAL_END
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
    - item_type: preproc_def
      name: log2
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type_or_value: grub_log2
    structs:
    - fields:
      - name: s_block_count
        type: __u32
      - name: s_free_blocks
        type: __u32
      - name: s_root_block
        type: __u32
      - name: s_journal_block
        type: __u32
      - name: s_journal_dev
        type: __u32
      - name: s_journal_size
        type: __u32
      - name: s_journal_trans_max
        type: __u32
      - name: s_journal_magic
        type: __u32
      - name: s_journal_max_batch
        type: __u32
      - name: s_journal_max_commit_age
        type: __u32
      - name: s_journal_max_trans_age
        type: __u32
      - name: s_blocksize
        type: __u16
      - name: s_oid_maxsize
        type: __u16
      - name: s_oid_cursize
        type: __u16
      - name: s_state
        type: __u16
      - name: s_magic[16]
        type: char
      - name: s_tree_height
        type: __u16
      - name: s_bmap_nr
        type: __u16
      - name: s_version
        type: __u16
      - name: s_unused[128]
        type: char
      item_type: struct
      name: reiserfs_super_block
      pos:
        line_end: 71
        line_start: 49
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: j_trans_id
        type: __u32
      - name: j_len
        type: __u32
      - name: j_mount_id
        type: __u32
      - name: j_realblock[JOURNAL_TRANS_HALF]
        type: __u32
      - name: j_magic[12]
        type: char
      item_type: struct
      name: reiserfs_journal_desc
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: j_trans_id
        type: __u32
      - name: j_len
        type: __u32
      - name: j_realblock[JOURNAL_TRANS_HALF]
        type: __u32
      - name: j_digest[16]
        type: char
      item_type: struct
      name: reiserfs_journal_commit
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: j_last_flush_trans_id
        type: __u32
      - name: j_first_unflushed_offset
        type: __u32
      - name: j_mount_id
        type: __u32
      item_type: struct
      name: reiserfs_journal_header
      pos:
        line_end: 113
        line_start: 106
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: k_offset
        type: __u32
      - name: k_uniqueness
        type: __u32
      item_type: struct
      name: offset_v1
      pos:
        line_end: 137
        line_start: 122
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: k_offset
        type: __u64
      - name: k_type
        type: __u64
      item_type: struct
      name: offset_v2
      pos:
        line_end: 154
        line_start: 139
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: k_dir_id
        type: __u32
      - name: k_objectid
        type: __u32
      - name: u
        type: "union\n  {\n    struct offset_v1 v1;\n    struct offset_v2 v2;\n  }"
      item_type: struct
      name: key
      pos:
        line_end: 170
        line_start: 157
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: blk_level
        type: __u16
      - name: blk_nr_item
        type: __u16
      - name: blk_free_space
        type: __u16
      - name: blk_right_delim_key
        type: struct key
      item_type: struct
      name: block_head
      pos:
        line_end: 183
        line_start: 176
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: ih_key
        type: struct key
      - name: u
        type: "union\n  {\n    __u16 ih_free_space; /* The free space in the last
          unformatted node of an indirect item if this\n\t\t\t    is an indirect item.
          \ This equals 0xFFFF iff this is a direct item or\n\t\t\t    stat data item.
          Note that the key, not this field, is used to determine\n\t\t\t    the item
          type, and thus which field this union contains. */\n    __u16 ih_entry_count;
          /* Iff this is a directory item, this field equals the number of directory\n\t\t\t
          \    entries in the directory item. */\n  }"
      - name: ih_item_len
        type: __u16
      - name: ih_item_location
        type: __u16
      - name: ih_version
        type: __u16
      item_type: struct
      name: item_head
      pos:
        line_end: 207
        line_start: 187
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: dc_block_number
        type: __u32
      - name: dc_size
        type: __u16
      item_type: struct
      name: disk_child
      pos:
        line_end: 225
        line_start: 221
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: sd_mode
        type: __u16
      - name: sd_notused1[3]
        type: __u16
      - name: sd_size
        type: __u32
      - name: sd_size_hi
        type: __u32
      item_type: struct
      name: stat_data
      pos:
        line_end: 240
        line_start: 234
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: deh_offset
        type: __u32
      - name: deh_dir_id
        type: __u32
      - name: deh_objectid
        type: __u32
      - name: deh_location
        type: __u16
      - name: deh_state
        type: __u16
      item_type: struct
      name: reiserfs_de_head
      pos:
        line_end: 253
        line_start: 242
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: k_dir_id
        type: __u32
      - name: k_objectid
        type: __u32
      item_type: struct
      name: fsys_reiser_fileinfo
      pos:
        line_end: 301
        line_start: 297
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    - fields:
      - name: '*current_ih'
        type: struct item_head
      - name: '*current_item'
        type: char
      - name: fileinfo
        type: struct fsys_reiser_fileinfo
      - name: journal_block
        type: __u32
      - name: journal_block_count
        type: __u32
      - name: journal_first_desc
        type: __u32
      - name: version
        type: __u16
      - name: tree_depth
        type: __u16
      - name: blocksize_shift
        type: __u8
      - name: fullblocksize_shift
        type: __u8
      - name: blocksize
        type: __u16
      - name: cached_slots
        type: __u16
      - name: journal_transactions
        type: __u16
      - name: blocks[MAX_HEIGHT]
        type: unsigned int
      - name: next_key_nr[MAX_HEIGHT]
        type: unsigned int
      item_type: struct
      name: fsys_reiser_info
      pos:
        line_end: 337
        line_start: 304
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
    typedefs:
    - item_type: typedef
      name: char
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: __signed__
    - item_type: typedef
      name: __u8
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: unsigned char
    - item_type: typedef
      name: __s16
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: __signed__ short
    - item_type: typedef
      name: __u16
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: unsigned short
    - item_type: typedef
      name: __s32
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: __signed__
    - item_type: typedef
      name: __u32
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: unsigned int
    - item_type: typedef
      name: __u64
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: unsigned long long
    - item_type: typedef
      name: linux_off_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libfsimage/reiserfs/fsys_reiserfs.c
      type: long
    union: []
- function_names:
  - all_restrict_cb
  - xencall_open
  - xencall_close
  - xencall_fd
  - xencall0
  - xencall1
  - xencall2
  - xencall2L
  - xencall3
  - xencall4
  - xencall5
  source_file: /src/xen/tools/libs/call/core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PERROR
  source_file: /src/xen/tools/libs/call/private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/libs/call/private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/libs/call/private.h
      type_or_value: (1UL << PAGE_SHIFT)
    - item_type: preproc_def
      name: PAGE_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/libs/call/private.h
      type_or_value: (~(PAGE_SIZE-1))
    - item_type: preproc_def
      name: BUFFER_CACHE_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/call/private.h
      type_or_value: '4'
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: flags
        type: unsigned
      - name: fd
        type: int
      - name: buf_fd
        type: int
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      - name: buffer_cache_nr
        type: int
      - name: '*buffer_cache[BUFFER_CACHE_SIZE]'
        type: void
      - name: buffer_total_allocations
        type: int
      - name: buffer_total_releases
        type: int
      - name: buffer_current_allocations
        type: int
      - name: buffer_maximum_allocations
        type: int
      - name: buffer_cache_hits
        type: int
      - name: buffer_cache_misses
        type: int
      - name: buffer_cache_toobig
        type: int
      item_type: struct
      name: xencall_handle
      pos:
        line_end: 52
        line_start: 21
        source_file: /src/xen/tools/libs/call/private.h
    typedefs: []
    union: []
- function_names:
  - DBGPRINTF
  - cache_lock
  - cache_unlock
  - cache_alloc
  - cache_free
  - buffer_release_cache
  - xencall_alloc_buffer_pages
  - xencall_free_buffer_pages
  - xencall_alloc_buffer
  - xencall_free_buffer
  source_file: /src/xen/tools/libs/call/buffer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nr_pages
        type: int
      - name: pad[3]
        type: int
      item_type: struct
      name: allocation_header
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/xen/tools/libs/call/buffer.c
    typedefs: []
    union: []
- function_names:
  - osdep_xencall_open
  - osdep_xencall_close
  - osdep_alloc_pages
  - osdep_free_pages
  - osdep_hypercall
  - xencall_buffers_never_fault
  source_file: /src/xen/tools/libs/call/netbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xencall_open
  - osdep_xencall_close
  - osdep_hypercall
  - alloc_pages_bufdev
  - alloc_pages_nobufdev
  - osdep_alloc_pages
  - osdep_free_pages
  - xencall_buffers_never_fault
  source_file: /src/xen/tools/libs/call/linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/call/linux.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xencall_open
  - osdep_xencall_close
  - osdep_alloc_hypercall_buffer
  - osdep_free_hypercall_buffer
  - osdep_hypercall
  - xencall_buffers_never_fault
  source_file: /src/xen/tools/libs/call/solaris.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xencall_open
  - osdep_xencall_close
  - osdep_hypercall
  - osdep_alloc_pages
  - osdep_free_pages
  - xencall_buffers_never_fault
  source_file: /src/xen/tools/libs/call/minios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xencall_open
  - osdep_xencall_close
  - osdep_hypercall
  - osdep_alloc_pages
  - osdep_free_pages
  - xencall_buffers_never_fault
  source_file: /src/xen/tools/libs/call/freebsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIVCMD_DEV
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/call/freebsd.c
      type_or_value: '"/dev/xen/privcmd"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_priv_data
  - xenstat_collect_networks
  - xenstat_uninit_networks
  - xenstat_collect_vbds
  - xenstat_uninit_vbds
  source_file: /src/xen/tools/libs/stat/xenstat_netbsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSFS_VBD_PATH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/stat/xenstat_netbsd.c
      type_or_value: '"/sys/devices/xen-backend/"'
    structs:
    - fields:
      - name: '*procnetdev'
        type: FILE
      - name: '*sysfsvbd'
        type: DIR
      item_type: struct
      name: priv_data
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/xen/tools/libs/stat/xenstat_netbsd.c
    typedefs: []
    union: []
- function_names:
  - get_priv_data
  - kstat_get
  - gc_devs
  - xenstat_uninit_devs
  - update_dev_stats
  - init_dev
  - update_nic
  - collect_dom_networks
  - xenstat_collect_networks
  - xenstat_uninit_networks
  - update_xdb
  - collect_dom_vbds
  - xenstat_collect_vbds
  - xenstat_uninit_vbds
  source_file: /src/xen/tools/libs/stat/xenstat_solaris.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEVICE_NIC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/stat/xenstat_solaris.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEVICE_XDB
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/stat/xenstat_solaris.c
      type_or_value: '2'
    structs:
    - fields:
      - name: domid
        type: int
      - name: used
        type: int
      - name: type
        type: int
      - name: name[256]
        type: char
      - name: instance
        type: int
      - name: stats[2][8]
        type: uint64_t
      - name: '*next'
        type: struct stdevice
      item_type: struct
      name: stdevice
      pos:
        line_end: 38
        line_start: 30
        source_file: /src/xen/tools/libs/stat/xenstat_solaris.c
    - fields:
      - name: '*kc'
        type: kstat_ctl_t
      - name: '*devs'
        type: stdevice_t
      item_type: struct
      name: priv_data
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/xen/tools/libs/stat/xenstat_solaris.c
    typedefs: []
    union: []
- function_names:
  - xenstat_collect_networks
  - xenstat_uninit_networks
  - xenstat_collect_vbds
  - xenstat_uninit_vbds
  source_file: /src/xen/tools/libs/stat/xenstat_freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xenstat_init
  - xenstat_uninit
  - xenstat_get_node
  - xenstat_free_node
  - xenstat_node_domain
  - xenstat_node_domain_by_index
  - xenstat_node_xen_version
  - xenstat_node_tot_mem
  - xenstat_node_free_mem
  - xenstat_node_freeable_mb
  - xenstat_node_num_domains
  - xenstat_node_num_cpus
  - xenstat_node_cpu_hz
  - xenstat_domain_id
  - xenstat_domain_name
  - xenstat_domain_cpu_ns
  - xenstat_domain_num_vcpus
  - xenstat_domain_vcpu
  - xenstat_domain_cur_mem
  - xenstat_domain_max_mem
  - xenstat_domain_ssid
  - xenstat_domain_dying
  - xenstat_domain_crashed
  - xenstat_domain_shutdown
  - xenstat_domain_paused
  - xenstat_domain_blocked
  - xenstat_domain_running
  - xenstat_domain_num_networks
  - xenstat_domain_network
  - xenstat_domain_num_vbds
  - xenstat_domain_vbd
  - xenstat_collect_vcpus
  - xenstat_free_vcpus
  - xenstat_uninit_vcpus
  - xenstat_vcpu_online
  - xenstat_vcpu_ns
  - xenstat_free_networks
  - xenstat_network_id
  - xenstat_network_rbytes
  - xenstat_network_rpackets
  - xenstat_network_rerrs
  - xenstat_network_rdrop
  - xenstat_network_tbytes
  - xenstat_network_tpackets
  - xenstat_network_terrs
  - xenstat_network_tdrop
  - xenstat_collect_xen_version
  - xenstat_free_xen_version
  - xenstat_uninit_xen_version
  - xenstat_save_vbd
  - xenstat_free_vbds
  - xenstat_vbd_type
  - xenstat_vbd_dev
  - xenstat_vbd_oo_reqs
  - xenstat_vbd_rd_reqs
  - xenstat_vbd_wr_reqs
  - xenstat_vbd_rd_sects
  - xenstat_vbd_wr_sects
  - xenstat_vbd_error
  - xenstat_get_domain_name
  - xenstat_prune_domain
  source_file: /src/xen/tools/libs/stat/xenstat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_COLLECTORS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libs/stat/xenstat.c
      type_or_value: (sizeof(collectors)/sizeof(xenstat_collector))
    - item_type: preproc_def
      name: DOMAIN_CHUNK_SIZE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/libs/stat/xenstat.c
      type_or_value: '256'
    structs:
    - fields:
      - name: flag
        type: unsigned int
      - name: collect
        type: xenstat_collect_func
      - name: free
        type: xenstat_free_func
      - name: uninit
        type: xenstat_uninit_func
      item_type: struct
      name: xenstat_collector
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/xen/tools/libs/stat/xenstat.c
    typedefs:
    - item_type: typedef
      name: (*xenstat_collect_func)(xenstat_node * node)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/tools/libs/stat/xenstat.c
      type: int
    - item_type: typedef
      name: (*xenstat_free_func)(xenstat_node * node)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/xen/tools/libs/stat/xenstat.c
      type: void
    - item_type: typedef
      name: (*xenstat_uninit_func)(xenstat_handle * handle)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/tools/libs/stat/xenstat.c
      type: void
    union: []
- function_names:
  - get_priv_data
  - getBridge
  - parseNetDevLine
  - get_iface_domid_network
  - xenstat_collect_networks
  - xenstat_uninit_networks
  - read_attributes_vbd3
  - read_attributes_vbd
  - xenstat_collect_vbds
  - xenstat_uninit_vbds
  source_file: /src/xen/tools/libs/stat/xenstat_linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSFS_VBD_PATH
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/stat/xenstat_linux.c
      type_or_value: '"/sys/bus/xen-backend/devices"'
    - item_type: preproc_def
      name: XENSTAT_VBD_TYPE_VBD3
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/stat/xenstat_linux.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*procnetdev'
        type: FILE
      - name: '*sysfsvbd'
        type: DIR
      item_type: struct
      name: priv_data
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/xen/tools/libs/stat/xenstat_linux.c
    typedefs: []
    union: []
- function_names:
  - qmp_get_block_image
  - lookup_xenstore_devid
  - qmp_parse_stats
  - qmp_write
  - qmp_read
  - qmp_query
  - qmp_connect
  - read_attributes_qdisk_dom
  - read_attributes_qdisk
  - read_attributes_qdisk
  source_file: /src/xen/tools/libs/stat/xenstat_qmp.c
  types:
    enum:
    - enumerators:
      - name: QMP_STATS_RETURN
        value: '0'
      - name: QMP_RD_BYTES
        value: '3'
      - name: QMP_WR_BYTES
        value: '4'
      - name: QMP_STATS
        value: '2'
      - name: QMP_STATS_DEVICE
        value: '1'
      - name: QMP_RD_OPERATIONS
        value: '5'
      - name: QMP_WR_OPERATIONS
        value: '6'
      item_type: enum
      name: query_blockstats
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/xen/tools/libs/stat/xenstat_qmp.c
    - enumerators:
      - name: QMP_BLOCK_RETURN
        value: '0'
      - name: QMP_BLOCK_DEVICE
        value: '1'
      - name: QMP_INSERTED
        value: '2'
      - name: QMP_FILE
        value: '3'
      item_type: enum
      name: query_block
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/xen/tools/libs/stat/xenstat_qmp.c
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_YAJL_V2
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/stat/xenstat_qmp.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/stat/xenstat_priv.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHORT_ASC_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
      type_or_value: '5                 '
    - item_type: preproc_def
      name: VERSION_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
      type_or_value: (2 * SHORT_ASC_LEN + 1 + sizeof(xen_extraversion_t) + 1)
    structs:
    - fields:
      - name: '*xc_handle'
        type: xc_interface
      - name: '*xshandle'
        type: struct xs_handle
      - name: page_size
        type: int
      - name: '*priv'
        type: void
      - name: xen_version[VERSION_SIZE]
        type: char
      item_type: struct
      name: xenstat_handle
      pos:
        line_end: 40
        line_start: 34
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: '*handle'
        type: xenstat_handle
      - name: flags
        type: unsigned int
      - name: cpu_hz
        type: unsigned long long
      - name: num_cpus
        type: unsigned int
      - name: tot_mem
        type: unsigned long long
      - name: free_mem
        type: unsigned long long
      - name: num_domains
        type: unsigned int
      - name: '*domains'
        type: xenstat_domain
      - name: freeable_mb
        type: long
      item_type: struct
      name: xenstat_node
      pos:
        line_end: 52
        line_start: 42
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: id
        type: unsigned int
      - name: '*name'
        type: char
      - name: state
        type: unsigned int
      - name: cpu_ns
        type: unsigned long long
      - name: num_vcpus
        type: unsigned int
      - name: '*vcpus'
        type: xenstat_vcpu
      - name: cur_mem
        type: unsigned long long
      - name: max_mem
        type: unsigned long long
      - name: ssid
        type: unsigned int
      - name: num_networks
        type: unsigned int
      - name: '*networks'
        type: xenstat_network
      - name: num_vbds
        type: unsigned int
      - name: '*vbds'
        type: xenstat_vbd
      item_type: struct
      name: xenstat_domain
      pos:
        line_end: 68
        line_start: 54
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: online
        type: unsigned int
      - name: ns
        type: unsigned long long
      item_type: struct
      name: xenstat_vcpu
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: id
        type: unsigned int
      - name: rbytes
        type: unsigned long long
      - name: rpackets
        type: unsigned long long
      - name: rerrs
        type: unsigned long long
      - name: rdrop
        type: unsigned long long
      - name: tbytes
        type: unsigned long long
      - name: tpackets
        type: unsigned long long
      - name: terrs
        type: unsigned long long
      - name: tdrop
        type: unsigned long long
      item_type: struct
      name: xenstat_network
      pos:
        line_end: 87
        line_start: 75
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: back_type
        type: unsigned int
      - name: dev
        type: unsigned int
      - name: error
        type: unsigned int
      - name: oo_reqs
        type: unsigned long long
      - name: rd_reqs
        type: unsigned long long
      - name: wr_reqs
        type: unsigned long long
      - name: rd_sects
        type: unsigned long long
      - name: wr_sects
        type: unsigned long long
      item_type: struct
      name: xenstat_vbd
      pos:
        line_end: 98
        line_start: 89
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    - fields:
      - name: version
        type: uint32_t
      - name: __pad
        type: uint32_t
      - name: oo_reqs
        type: uint64_t
      - name: read_reqs_submitted
        type: uint64_t
      - name: read_reqs_completed
        type: uint64_t
      - name: read_sectors
        type: uint64_t
      - name: read_total_ticks
        type: uint64_t
      - name: write_reqs_submitted
        type: uint64_t
      - name: write_reqs_completed
        type: uint64_t
      - name: write_sectors
        type: uint64_t
      - name: write_total_ticks
        type: uint64_t
      - name: io_errors
        type: uint64_t
      - name: flags
        type: uint64_t
      item_type: struct
      name: vbd3_stats
      pos:
        line_end: 115
        line_start: 101
        source_file: /src/xen/tools/libs/stat/xenstat_priv.h
    typedefs: []
    union: []
- function_names:
  - xengnttab_open
  - xengnttab_close
  - xengnttab_set_max_grants
  - xengnttab_map_grant_ref
  - xengnttab_map_grant_refs
  - xengnttab_map_domain_grant_refs
  - xengnttab_map_grant_ref_notify
  - xengnttab_unmap
  - xengnttab_grant_copy
  - xengnttab_dmabuf_exp_from_refs
  - xengnttab_dmabuf_exp_wait_released
  - xengnttab_dmabuf_imp_to_refs
  - xengnttab_dmabuf_imp_release
  source_file: /src/xen/tools/libs/gnttab/gnttab_unimp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GTERROR
  - GSERROR
  source_file: /src/xen/tools/libs/gnttab/private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENGNTTAB_GRANT_MAP_SINGLE_DOMAIN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/gnttab/private.h
      type_or_value: '0x1'
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: fd
        type: int
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      item_type: struct
      name: xengntdev_handle
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/xen/tools/libs/gnttab/private.h
    typedefs: []
    union: []
- function_names:
  - osdep_gnttab_open
  - osdep_gnttab_close
  - osdep_gnttab_set_max_grants
  - osdep_gnttab_grant_map
  - osdep_gnttab_unmap
  - osdep_gnttab_grant_copy
  - osdep_gntshr_open
  - osdep_gntshr_close
  - osdep_gntshr_share_pages
  - osdep_gntshr_unshare
  - osdep_gnttab_dmabuf_exp_from_refs
  - osdep_gnttab_dmabuf_exp_wait_released
  - osdep_gnttab_dmabuf_imp_to_refs
  - osdep_gnttab_dmabuf_imp_release
  source_file: /src/xen/tools/libs/gnttab/netbsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEVXEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/gnttab/netbsd.c
      type_or_value: '"/kern/xen/privcmd"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xengntshr_open
  - xengntshr_close
  - xengntshr_share_pages
  - xengntshr_share_page_notify
  - xengntshr_unshare
  source_file: /src/xen/tools/libs/gnttab/gntshr_unimp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_gnttab_open
  - osdep_gnttab_close
  - osdep_gnttab_set_max_grants
  - osdep_gnttab_grant_map
  - osdep_gnttab_unmap
  - osdep_gnttab_grant_copy
  - osdep_gnttab_dmabuf_exp_from_refs
  - osdep_gnttab_dmabuf_exp_wait_released
  - osdep_gnttab_dmabuf_imp_to_refs
  - osdep_gnttab_dmabuf_imp_release
  - osdep_gntshr_open
  - osdep_gntshr_close
  - osdep_gntshr_share_pages
  - osdep_gntshr_unshare
  source_file: /src/xen/tools/libs/gnttab/linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEVXEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libs/gnttab/linux.c
      type_or_value: '"/dev/xen/"'
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libs/gnttab/linux.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gnttab_close_fd
  - gnttab_initialize
  - osdep_gnttab_open
  - osdep_gnttab_close
  - osdep_gnttab_grant_map
  - osdep_gnttab_unmap
  - osdep_gnttab_set_max_grants
  - osdep_gnttab_grant_copy
  - osdep_gnttab_dmabuf_exp_from_refs
  - osdep_gnttab_dmabuf_exp_wait_released
  - osdep_gnttab_dmabuf_imp_to_refs
  - osdep_gnttab_dmabuf_imp_release
  source_file: /src/xen/tools/libs/gnttab/minios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xengntshr_open
  - xengntshr_close
  - xengntshr_fd
  - xengntshr_share_pages
  - xengntshr_share_page_notify
  - xengntshr_unshare
  source_file: /src/xen/tools/libs/gnttab/gntshr_core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_restrict_cb
  - xengnttab_open
  - xengnttab_close
  - xengnttab_fd
  - xengnttab_set_max_grants
  - xengnttab_map_grant_ref
  - xengnttab_map_grant_refs
  - xengnttab_map_domain_grant_refs
  - xengnttab_map_grant_ref_notify
  - xengnttab_unmap
  - xengnttab_grant_copy
  - xengnttab_dmabuf_exp_from_refs
  - xengnttab_dmabuf_exp_wait_released
  - xengnttab_dmabuf_imp_to_refs
  - xengnttab_dmabuf_imp_release
  source_file: /src/xen/tools/libs/gnttab/gnttab_core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_gnttab_open
  - osdep_gnttab_close
  - osdep_gnttab_set_max_grants
  - osdep_gnttab_grant_map
  - osdep_gnttab_unmap
  - osdep_gnttab_grant_copy
  - osdep_gntshr_open
  - osdep_gntshr_close
  - osdep_gntshr_share_pages
  - osdep_gntshr_unshare
  - osdep_gnttab_dmabuf_exp_from_refs
  - osdep_gnttab_dmabuf_exp_wait_released
  - osdep_gnttab_dmabuf_imp_to_refs
  - osdep_gnttab_dmabuf_imp_release
  source_file: /src/xen/tools/libs/gnttab/freebsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEVXEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/gnttab/freebsd.c
      type_or_value: '"/dev/xen/gntdev"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xenmanage_open
  - xenmanage_close
  - xenmanage_do_domctl_get_domain_state
  - xenmanage_get_domain_info
  - xenmanage_poll_changed_domain
  source_file: /src/xen/tools/libs/manage/core.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: flags
        type: unsigned int
      - name: '*xcall'
        type: xencall_handle
      item_type: struct
      name: xenmanage_handle
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/xen/tools/libs/manage/core.c
    typedefs: []
    union: []
- function_names:
  - osdep_xendevicemodel_open
  - osdep_xendevicemodel_close
  - osdep_xendevicemodel_op
  - osdep_xendevicemodel_restrict
  source_file: /src/xen/tools/libs/devicemodel/common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libs/devicemodel/common.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_restrict_cb
  - xendevicemodel_open
  - xendevicemodel_close
  - xendevicemodel_xcall
  - xendevicemodel_op
  - xendevicemodel_create_ioreq_server
  - xendevicemodel_get_ioreq_server_info
  - xendevicemodel_map_io_range_to_ioreq_server
  - xendevicemodel_unmap_io_range_from_ioreq_server
  - xendevicemodel_map_mem_type_to_ioreq_server
  - xendevicemodel_map_pcidev_to_ioreq_server
  - xendevicemodel_unmap_pcidev_from_ioreq_server
  - xendevicemodel_destroy_ioreq_server
  - xendevicemodel_set_ioreq_server_state
  - xendevicemodel_set_pci_intx_level
  - xendevicemodel_set_isa_irq_level
  - xendevicemodel_set_irq_level
  - xendevicemodel_set_pci_link_route
  - xendevicemodel_inject_msi
  - xendevicemodel_track_dirty_vram
  - xendevicemodel_modified_memory_bulk
  - xendevicemodel_modified_memory
  - xendevicemodel_set_mem_type
  - xendevicemodel_inject_event
  - xendevicemodel_shutdown
  - xendevicemodel_relocate_memory
  - xendevicemodel_pin_memory_cacheattr
  - xendevicemodel_nr_vcpus
  - xendevicemodel_restrict
  source_file: /src/xen/tools/libs/devicemodel/core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PERROR
  source_file: /src/xen/tools/libs/devicemodel/private.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: flags
        type: unsigned int
      - name: '*xcall'
        type: xencall_handle
      - name: fd
        type: int
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      item_type: struct
      name: xendevicemodel_handle
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/xen/tools/libs/devicemodel/private.h
    - fields:
      - name: '*ptr'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: xendevicemodel_buf
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/xen/tools/libs/devicemodel/private.h
    typedefs: []
    union: []
- function_names:
  - osdep_xendevicemodel_open
  - osdep_xendevicemodel_close
  - osdep_xendevicemodel_op
  - osdep_xendevicemodel_restrict
  source_file: /src/xen/tools/libs/devicemodel/compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_restrict_cb
  - xenevtchn_alloc_handle
  - xenevtchn_open
  - xenevtchn_fdopen
  - xenevtchn_close
  - xenevtchn_fd
  - xenevtchn_restrict
  source_file: /src/xen/tools/libs/evtchn/core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/evtchn/private.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: fd
        type: int
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      item_type: struct
      name: xenevtchn_handle
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/xen/tools/libs/evtchn/private.h
    typedefs: []
    union: []
- function_names:
  - osdep_evtchn_open
  - osdep_evtchn_close
  - osdep_evtchn_restrict
  - xenevtchn_notify
  - xenevtchn_bind_unbound_port
  - xenevtchn_bind_interdomain
  - xenevtchn_unbind
  - xenevtchn_bind_virq
  - xenevtchn_pending
  - xenevtchn_unmask
  source_file: /src/xen/tools/libs/evtchn/netbsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVTCHN_DEV_NAME
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/evtchn/netbsd.c
      type_or_value: '"/dev/xenevt"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_evtchn_open
  - osdep_evtchn_close
  - osdep_evtchn_restrict
  - xenevtchn_notify
  - xenevtchn_bind_unbound_port
  - xenevtchn_bind_interdomain
  - xenevtchn_bind_virq
  - xenevtchn_unbind
  - xenevtchn_pending
  - xenevtchn_unmask
  source_file: /src/xen/tools/libs/evtchn/linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/evtchn/linux.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_evtchn_open
  - osdep_evtchn_close
  - osdep_evtchn_restrict
  - xenevtchn_notify
  - xenevtchn_bind_unbound_port
  - xenevtchn_bind_interdomain
  - xenevtchn_bind_virq
  - xenevtchn_unbind
  - xenevtchn_pending
  - xenevtchn_unmask
  source_file: /src/xen/tools/libs/evtchn/solaris.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - port_alloc
  - port_dealloc
  - evtchn_close_fd
  - evtchn_initialize
  - osdep_evtchn_open
  - osdep_evtchn_close
  - osdep_evtchn_restrict
  - xenevtchn_notify
  - evtchn_handler
  - xenevtchn_bind_unbound_port
  - xenevtchn_bind_interdomain
  - xenevtchn_bind
  - xenevtchn_unbind
  - xenevtchn_bind_virq
  - xenevtchn_pending
  - xenevtchn_unmask
  source_file: /src/xen/tools/libs/evtchn/minios.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct port_list
      item_type: struct
      name: ports
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/xen/tools/libs/evtchn/minios.c
    - fields:
      - name: port
        type: evtchn_port_t
      - name: pending
        type: bool
      - name: bound
        type: bool
      item_type: struct
      name: port_info
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/xen/tools/libs/evtchn/minios.c
    typedefs: []
    union: []
- function_names:
  - osdep_evtchn_open
  - osdep_evtchn_close
  - osdep_evtchn_restrict
  - xenevtchn_notify
  - xenevtchn_bind_unbound_port
  - xenevtchn_bind_interdomain
  - xenevtchn_bind_virq
  - xenevtchn_unbind
  - xenevtchn_pending
  - xenevtchn_unmask
  source_file: /src/xen/tools/libs/evtchn/freebsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVTCHN_DEV
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/evtchn/freebsd.c
      type_or_value: '"/dev/xen/evtchn"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_domain_setmaxmem
  - libxl__fill_dom0_memory_info
  - libxl_set_memory_target
  - libxl__get_memory_target
  - libxl__memkb_64to32
  - libxl_get_memory_target
  - libxl_get_memory_target_0x040700
  - libxl__domain_need_memory_calculate
  - libxl_domain_need_memory
  - libxl_domain_need_memory_0x041200
  - libxl_domain_need_memory_0x040700
  - libxl_get_free_memory
  - libxl_get_free_memory_0x040700
  - libxl_wait_for_free_memory
  - libxl_wait_for_memory_target
  source_file: /src/xen/tools/libs/light/libxl_mem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__vnuma_configured
  - compare_vmemrange
  - check_vnuma_affinity
  - libxl__vnuma_config_check
  - libxl__vnuma_build_vmemrange_pv_generic
  - libxl__vnuma_build_vmemrange_pv
  - libxl__vnuma_build_vmemrange_hvm
  source_file: /src/xen/tools/libs/light/libxl_vnuma.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__cpuid_policy_is_empty
  - libxl_cpuid_dispose
  - libxl_cpuid_parse_config
  - libxl_cpuid_parse_config_xend
  - libxl__cpuid_legacy
  - libxl_cpuid_policy_list_gen_json
  - libxl__cpuid_policy_list_parse_json
  - libxl_cpuid_policy_list_copy
  source_file: /src/xen/tools/libs/light/libxl_nocpuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tfe_init
  - tfe_cleanup
  - tfe_fd_cb
  - tfe_abrt_cb
  - fdevent_complete
  - libxl_test_fdevent
  source_file: /src/xen/tools/libs/light/libxl_test_fdevent.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: fd
        type: libxl__ev_fd
      - name: abrt
        type: libxl__ao_abortable
      item_type: struct
      name: libxl__test_fdevent
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/xen/tools/libs/light/libxl_test_fdevent.c
    typedefs: []
    union: []
- function_names:
  - libxl__console_tty_path
  - libxl_console_exec
  - libxl_console_get_tty
  - libxl__primary_console_find
  - libxl_primary_console_exec
  - libxl_primary_console_get_tty
  - libxl_vncviewer_exec
  - libxl__device_console_add
  - libxl_console_add_xenstore
  - libxl__device_vuart_add
  - libxl__init_console_from_channel
  - libxl__device_channel_from_xenstore
  - libxl__append_channel_list
  - libxl_device_channel_list
  - libxl_device_channel_getinfo
  - libxl__device_vfb_setdefault
  - libxl_device_vfb_add
  - libxl__set_xenstore_vfb
  - libxl_xen_console_read_start
  - libxl_xen_console_read_line
  - libxl_xen_console_read_finish
  source_file: /src/xen/tools/libs/light/libxl_console.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl__add_vfbs
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/xen/tools/libs/light/libxl_console.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_vfb_list
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/xen/tools/libs/light/libxl_console.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_vfb_compare
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/xen/tools/libs/light/libxl_console.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - colo_enable_logdirty
  - colo_disable_logdirty
  - colo_resume_vm
  - init_device_subkind
  - cleanup_device_subkind
  - init_dsps
  - libxl__colo_restore_setup
  - libxl__colo_domain_create_cb
  - libxl__colo_restore_teardown
  - colo_restore_teardown_devices_done
  - do_failover
  - do_failover_done
  - colo_disable_logdirty_done
  - libxl__colo_restore_teardown_done
  - libxl__colo_restore_domain_checkpoint_callback
  - libxl__colo_restore_domain_resume_callback
  - colo_send_svm_ready
  - colo_send_svm_ready_done
  - colo_restore_preresume_cb
  - colo_restore_resume_vm
  - colo_resume_vm_done
  - colo_write_svm_resumed
  - colo_enable_logdirty_done
  - colo_reenable_logdirty
  - colo_reenable_logdirty_done
  - colo_setup_checkpoint_devices
  - colo_restore_setup_cds_done
  - colo_unpause_svm
  - libxl__colo_restore_domain_wait_checkpoint_callback
  - colo_restore_commit_cb
  - colo_stream_read_done
  - libxl__colo_restore_domain_suspend_callback
  - colo_suspend_vm_done
  - colo_restore_postsuspend_cb
  - colo_common_write_stream_done
  - colo_common_read_stream_done
  source_file: /src/xen/tools/libs/light/libxl_colo_restore.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dsps
        type: libxl__domain_suspend_state
      - name: lds
        type: libxl__logdirty_switch
      - name: '*crs'
        type: libxl__colo_restore_state
      - name: sws
        type: libxl__stream_write_state
      - name: status
        type: int
      - name: preresume
        type: bool
      - name: teardown_devices
        type: int
      - name: saved_rc
        type: int
      - name: '*state_file'
        type: char
      - name: "(*callback)(libxl__egc *,\n                     libxl__colo_restore_checkpoint_state
          *,\n                     int)"
        type: void
      item_type: struct
      name: libxl__colo_restore_checkpoint_state
      pos:
        line_end: 37
        line_start: 22
        source_file: /src/xen/tools/libs/light/libxl_colo_restore.c
    typedefs:
    - item_type: typedef
      name: libxl__colo_restore_checkpoint_state
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_colo_restore.c
      type: libxl__colo_restore_checkpoint_state
    union: []
- function_names:
  - vasprintf
  - asprintf
  source_file: /src/xen/tools/libs/light/osdeps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - flexarray_make
  - flexarray_free
  - flexarray_grow
  - flexarray_set
  - flexarray_append
  - flexarray_append_pair
  - flexarray_vappend
  - flexarray_get
  - flexarray_contents
  source_file: /src/xen/tools/libs/light/flexarray.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_virtio_setdefault
  - libxl__device_from_virtio
  - libxl__set_xenstore_virtio
  - libxl__virtio_from_xenstore
  source_file: /src/xen/tools/libs/light/libxl_virtio.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl__add_virtios
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/tools/libs/light/libxl_virtio.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_virtio_compare
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/tools/libs/light/libxl_virtio.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__try_phy_backend
  - libxl__devid_to_localdev
  - libxl__hotplug_env_nic
  - libxl__hotplug_nic
  - libxl__hotplug_disk
  - libxl__get_hotplug_script_info
  - libxl__pci_numdevs
  - libxl__pci_topology_init
  - libxl__local_dm_preexec_restrict
  source_file: /src/xen/tools/libs/light/libxl_freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: major
        type: int
      - name: shift
        type: int
      - name: base
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: vdev_info
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/xen/tools/libs/light/libxl_freebsd.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/libs/light/test_timedereg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALIGN
  - virt_to_phys
  - mem_alloc
  - acpi_mem_free
  - acpi_lapic_id
  - init_acpi_config
  - libxl__dom_load_acpi
  source_file: /src/xen/tools/libs/light/libxl_x86_acpi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ACPI_PAGES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_x86_acpi.c
      type_or_value: '16'
    - item_type: preproc_def
      name: RSDP_LEN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_x86_acpi.c
      type_or_value: '64'
    structs:
    - fields:
      - name: c
        type: struct acpi_ctxt
      - name: page_size
        type: unsigned int
      - name: page_shift
        type: unsigned int
      - name: guest_start
        type: unsigned long
      - name: guest_curr
        type: unsigned long
      - name: guest_end
        type: unsigned long
      - name: '*buf'
        type: void
      item_type: struct
      name: libxl_acpi_ctxt
      pos:
        line_end: 37
        line_start: 26
        source_file: /src/xen/tools/libs/light/libxl_x86_acpi.c
    typedefs: []
    union: []
- function_names:
  - libxl__device_pvcallsif_setdefault
  source_file: /src/xen/tools/libs/light/libxl_pvcalls.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl__add_pvcallsifs
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libs/light/libxl_pvcalls.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_pvcallsif_list
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/light/libxl_pvcalls.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_pvcallsif_compare
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libs/light/libxl_pvcalls.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_vkb_setdefault
  - libxl__device_vkb_dm_needed
  - libxl__set_xenstore_vkb
  - libxl__vkb_from_xenstore
  - libxl__device_from_vkb
  - libxl_device_vkb_add
  - libxl_devid_to_device_vkb
  - libxl_device_vkb_getinfo
  source_file: /src/xen/tools/libs/light/libxl_vkb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl__add_vkbs
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/xen/tools/libs/light/libxl_vkb.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_vkb_compare
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/tools/libs/light/libxl_vkb.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_overlay_fdt
  - libxl_dt_overlay
  - libxl_dt_overlay_domain
  source_file: /src/xen/tools/libs/light/libxl_dt_overlay.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__xs_kvs_of_flexarray
  - libxl__xs_writev_perms
  - libxl__xs_writev
  - libxl__xs_writev_atonce
  - libxl__xs_vprintf
  - libxl__xs_printf
  - libxl__xs_read
  - libxl__xs_get_dompath
  - libxl__xs_directory
  - libxl__xs_mknod
  - libxl__xs_libxl_path
  - libxl__xs_read_mandatory
  - libxl__xs_read_checked
  - libxl__xs_write_checked
  - libxl__xs_rm_checked
  - libxl__xs_transaction_start
  - libxl__xs_transaction_commit
  - libxl__xs_transaction_abort
  - libxl__xs_path_cleanup
  source_file: /src/xen/tools/libs/light/libxl_xshelp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_mac_to_device_nic
  - libxl__device_nic_setdefault
  - libxl__update_config_nic
  - libxl__set_xenstore_nic
  - MAYBE_ADD_COLO_ARGS
  - libxl__device_nic_add
  - libxl__nic_from_xenstore
  - CHECK_COLO_ARGS
  - libxl_device_nic_list
  - libxl_device_nic_list_free
  - libxl_device_nic_getinfo
  - libxl__device_nic_devname
  - libxl_device_nic_compare
  - libxl_device_nic_update_config
  - libxl__device_nic_set_devids
  source_file: /src/xen/tools/libs/light/libxl_nic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBXL_DEVICE_NIC_MTU_DEFAULT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/light/libxl_nic.c
      type_or_value: '1500'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__psr_log_err_msg
  - libxl__psr_cmt_log_err_msg
  - libxl__psr_alloc_log_err_msg
  - libxl__pick_socket_cpu
  - libxl_psr_cmt_attach
  - libxl_psr_cmt_detach
  - libxl_psr_cmt_domain_attached
  - libxl_psr_cmt_enabled
  - libxl_psr_cmt_get_total_rmid
  - libxl_psr_cmt_get_l3_cache_size
  - libxl_psr_cmt_type_supported
  - libxl_psr_cmt_get_sample
  - libxl_psr_cmt_get_cache_occupancy
  - libxl__psr_type_to_libxc_psr_type
  - libxl_psr_cat_set_cbm
  - libxl_psr_cat_get_cbm
  - libxl__feat_type_to_libxc_feat_type
  - libxl__hw_info_to_libxl_cat_info
  - libxl_psr_cat_get_info
  - libxl_psr_cat_get_l3_info
  - libxl_psr_cat_info_list_free
  - libxl_psr_set_val
  - libxl_psr_get_val
  - libxl__xc_hw_info_to_libxl_hw_info
  - libxl_psr_get_hw_info
  - libxl_for_each_set_bit
  - libxl_psr_hw_info_list_free
  source_file: /src/xen/tools/libs/light/libxl_psr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IA32_QM_CTR_ERROR_MASK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libs/light/libxl_psr.c
      type_or_value: (0x3ul << 62)
    structs: []
    typedefs: []
    union: []
- function_names:
  - disk_eject_xswatch_callback
  - libxl_evenable_disk_eject
  - libxl__evdisable_disk_eject
  - libxl_evdisable_disk_eject
  - libxl__device_disk_setdefault
  - libxl__device_from_disk
  - device_disk_add
  - libxl__device_disk_add
  - libxl__disk_from_xenstore
  - XS_READ_COLO
  - libxl__device_disk_get_path
  - libxl_vdev_to_device_disk
  - libxl_device_disk_getinfo
  - query_fdsets_find_fdset
  - libxl_cdrom_insert
  - cdrom_insert_lock_acquired
  - cdrom_insert_qmp_connected
  - cdrom_insert_stubdom_query_fdset_rm
  - cdrom_insert_stubdom_parse_fdset_rm
  - cdrom_insert_stubdom_ejected
  - cdrom_insert_stubdom_disk_remove_cb
  - cdrom_insert_stubdom_disk_add_cb
  - cdrom_insert_stubdom_query_fdset
  - cdrom_insert_stubdom_parse_fdset
  - cdrom_insert_ejected
  - cdrom_insert_addfd_cb
  - cdrom_insert_inserted
  - cdrom_insert_timout
  - cdrom_insert_done
  - libxl__alloc_vdev
  - libxl__device_disk_find_local_path
  - libxl__device_disk_local_initiate_attach
  - local_device_attach_cb
  - libxl__device_disk_local_initiate_detach
  - local_device_detach_cb
  - libxl_device_disk_compare
  - libxl_device_disk_merge
  - libxl_device_disk_dm_needed
  source_file: /src/xen/tools/libs/light/libxl_disk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BACKEND_STRING_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/libs/light/libxl_disk.c
      type_or_value: '5'
    - item_type: preproc_def
      name: libxl__device_disk_update_devid
      pos:
        line_end: 1950
        line_start: 1949
        source_file: /src/xen/tools/libs/light/libxl_disk.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: aodev
        type: libxl__ao_device
      - name: domid
        type: libxl_domid
      - name: disk_domid
        type: libxl_domid
      - name: '*disk'
        type: libxl_device_disk
      - name: disk_saved
        type: libxl_device_disk
      - name: qmp_lock
        type: libxl__ev_slowlock
      - name: dm_ver
        type: int
      - name: time
        type: libxl__ev_time
      - name: retry_timer
        type: libxl__ev_time
      - name: qmp
        type: libxl__ev_qmp
      - name: stubdom_fdset
        type: int
      item_type: struct
      name: libxl__cdrom_insert_state
      pos:
        line_end: 915
        line_start: 902
        source_file: /src/xen/tools/libs/light/libxl_disk.c
    typedefs: []
    union: []
- function_names:
  - cpupool_info
  - libxl_cpupool_info
  - libxl_list_cpupool
  - libxl_get_freecpus
  - libxl_cpupool_create
  - libxl_cpupool_destroy
  - libxl_cpupool_rename
  - libxl_cpupool_cpuadd
  - libxl_cpupool_cpuadd_cpumap
  - libxl_cpupool_cpuadd_node
  - libxl_cpupool_cpuremove
  - libxl_cpupool_cpuremove_cpumap
  - libxl_cpupool_cpuremove_node
  - libxl_cpupool_movedomain
  source_file: /src/xen/tools/libs/light/libxl_cpupool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__private_bindir_path
  - libxl__xenfirmwaredir_path
  - libxl__xen_script_dir_path
  - libxl__run_dir_path
  - libxl__seabios_path
  - libxl__ovmf_path
  - libxl__ipxe_path
  source_file: /src/xen/tools/libs/light/libxl_paths.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usbback_is_loaded
  - libxl__device_usbctrl_setdefault
  - libxl__device_from_usbctrl
  - vusb_be_from_xs_libxl_type
  - libxl__device_usbctrl_add_xenstore
  - vusb_be_from_xs_libxl
  - libxl__device_usbctrl_del_xenstore
  - pvusb_get_device_type
  - libxl__device_usbctrl_add_hvm
  - libxl__device_usbctrl_del_hvm
  - libxl__device_usbdev_add_hvm
  - libxl__device_usbdev_del_hvm
  - libxl__device_usbctrl_add
  - device_usbctrl_add_timeout
  - device_usbctrl_add_qmp_cb
  - device_usbctrl_add_done
  - libxl__initiate_device_usbctrl_remove
  - device_usbctrl_usbdevs_removed
  - device_usbctrl_remove_timeout
  - device_usbctrl_remove_qmp_cb
  - device_usbctrl_remove_done
  - libxl__usbctrl_from_xenstore
  - READ_SUBPATH
  - READ_SUBPATH_INT
  - libxl_device_usbctrl_getinfo
  - READ_SUBPATH
  - READ_SUBPATH_INT
  - usbdev_busaddr_to_busid
  - usbdev_busaddr_from_busid
  - get_assigned_devices
  - is_usbdev_in_array
  - is_usbdev_assignable
  - libxl__device_usbdev_list_for_usbctrl
  - libxl_device_usbdev_list
  - vusb_get_port_path
  - libxl__device_usbdev_set_default_usbctrl
  - libxl__device_usbdev_setdefault
  - libxl__device_usbdev_add_xenstore
  - libxl__device_usbdev_remove_xenstore
  - usbdev_busid_from_ctrlport
  - usbintf_get_drvpath
  - unbind_usbintf
  - bind_usbintf
  - usbintf_is_assigned
  - usbdev_get_all_interfaces
  - usb_interface_xenstore_encode
  - usbback_dev_unassign
  - usbdev_rebind
  - usbback_dev_assign
  - libxl__device_usbdev_add
  - device_usbdev_add_timeout
  - device_usbdev_add_qmp_cb
  - device_usbdev_add_done
  - libxl__device_usbdev_remove
  - device_usbdev_remove_timeout
  - device_usbdev_remove_qmp_cb
  - device_usbdev_remove_done
  - libxl_device_usbdev_remove
  - libxl_ctrlport_to_device_usbdev
  - libxl_device_usbctrl_compare
  - libxl_device_usbctrl_dm_needed
  - libxl_device_usbdev_compare
  - libxl_device_usbdev_list_free
  source_file: /src/xen/tools/libs/light/libxl_usb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USBBACK_INFO_PATH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_usb.c
      type_or_value: '"/libxl/usbback"'
    - item_type: preproc_def
      name: USBHUB_CLASS_CODE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_usb.c
      type_or_value: '9'
    - item_type: preproc_def
      name: libxl__device_usbctrl_update_devid
      pos:
        line_end: 2138
        line_start: 2137
        source_file: /src/xen/tools/libs/light/libxl_usb.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl__device_from_usbdev
      pos:
        line_end: 2147
        line_start: 2146
        source_file: /src/xen/tools/libs/light/libxl_usb.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl__device_usbdev_update_devid
      pos:
        line_end: 2148
        line_start: 2147
        source_file: /src/xen/tools/libs/light/libxl_usb.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: multidev
        type: libxl__multidev
      - name: '*aodev'
        type: libxl__ao_device
      item_type: struct
      name: usbctrl_remove_state
      pos:
        line_end: 573
        line_start: 570
        source_file: /src/xen/tools/libs/light/libxl_usb.c
    typedefs: []
    union: []
- function_names:
  - libxl__try_phy_backend
  - libxl__devid_to_localdev
  - libxl__hotplug
  - libxl__get_hotplug_script_info
  - libxl__pci_numdevs
  - libxl__pci_topology_init
  - libxl__local_dm_preexec_restrict
  - libxl__setresuid
  source_file: /src/xen/tools/libs/light/libxl_netbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fdt_first_subnode
  - fdt_next_subnode
  source_file: /src/xen/tools/libs/light/libxl_libfdt_compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_read
  - free_record
  - libxl__stream_read_init
  - libxl__stream_read_start
  - libxl__stream_read_start_checkpoint
  - libxl__stream_read_abort
  - stream_header_done
  - stream_continue
  - setup_read_record
  - record_header_done
  - record_body_done
  - process_record
  - write_emulator_blob
  - write_emulator_done
  - stream_complete
  - checkpoint_done
  - stream_done
  - libxl__xc_domain_restore_done
  - conversion_done
  - check_all_finished
  - libxl__stream_read_checkpoint_state
  - checkpoint_state_done
  source_file: /src/xen/tools/libs/light/libxl_stream_read.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__compute_mpdir
  source_file: /src/xen/tools/libs/light/libxl_arm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - htobe16
  - htole16
  - be16toh
  - le16toh
  - htobe32
  - htole32
  - be32toh
  - le32toh
  - htobe64
  - htole64
  - be64toh
  - le64toh
  - htobe16
  - htole16
  - be16toh
  - le16toh
  - htobe32
  - htole32
  - be32toh
  - le32toh
  - htobe64
  - htole64
  - be64toh
  - le64toh
  source_file: /src/xen/tools/libs/light/libxl_osdeps.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYSFS_USB_DEV
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/usb/devices"'
    - item_type: preproc_def
      name: SYSFS_USBBACK_DRIVER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/kern/xen/usb"'
    - item_type: preproc_def
      name: SYSFS_PCI_DEV
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/pci/devices"'
    - item_type: preproc_def
      name: SYSFS_PCIBACK_DRIVER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/kern/xen/pci"'
    - item_type: preproc_def
      name: NETBACK_NIC_NAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"xvif%ui%d"'
    - item_type: preproc_def
      name: SYSFS_USB_DEV
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/usb/devices"'
    - item_type: preproc_def
      name: SYSFS_USBBACK_DRIVER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/usb/drivers/usbback"'
    - item_type: preproc_def
      name: SYSFS_PCI_DEV
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/pci/devices"'
    - item_type: preproc_def
      name: SYSFS_PCIBACK_DRIVER
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/sys/bus/pci/drivers/pciback"'
    - item_type: preproc_def
      name: NETBACK_NIC_NAME
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"vif%u.%d"'
    - item_type: preproc_def
      name: SYSFS_USB_DEV
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: SYSFS_USBBACK_DRIVER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: SYSFS_PCI_DEV
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: SYSFS_PCIBACK_DRIVER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"/dev/null"'
    - item_type: preproc_def
      name: NETBACK_NIC_NAME
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: '"xnb%u.%d"'
    - item_type: preproc_def
      name: ENODATA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libs/light/libxl_osdeps.h
      type_or_value: ENOENT
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/libxl_test_fdevent.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_device_subkind
  - cleanup_device_subkind
  - libxl__colo_save_setup
  - colo_save_setup_done
  - colo_save_setup_failed
  - libxl__colo_save_teardown
  - colo_teardown_done
  - libxl__colo_save_domain_suspend_callback
  - colo_suspend_primary_vm_done
  - colo_postsuspend_cb
  - colo_read_svm_suspended_done
  - libxl__colo_save_domain_checkpoint_callback
  - libxl__colo_save_domain_resume_callback
  - colo_read_svm_ready_done
  - colo_preresume_cb
  - colo_read_svm_resumed_done
  - colo_proxy_wait_for_checkpoint
  - colo_proxy_async_wait_for_checkpoint
  - colo_proxy_async_call_done
  - libxl__colo_save_domain_wait_checkpoint_callback
  - colo_device_commit_cb
  - colo_start_new_checkpoint
  - colo_common_write_stream_done
  - colo_common_read_stream_done
  source_file: /src/xen/tools/libs/light/libxl_colo_save.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_frontend_path
  - libxl__domain_device_frontend_path
  - libxl__device_backend_path
  - libxl__domain_device_backend_path
  - libxl__device_libxl_path
  - libxl__domain_device_libxl_path
  - libxl__device_exists
  - libxl__parse_backend_path
  - libxl__nic_type
  - libxl__device_generic_add
  - disk_try_backend
  - libxl__backendpath_parse_domid
  - libxl__device_disk_set_backend
  - libxl__device_disk_string_of_format
  - libxl__device_disk_string_of_backend
  - libxl__device_disk_string_of_specification
  - libxl__device_disk_string_of_transport
  - libxl__qemu_disk_format_string
  - libxl__device_physdisk_major_minor
  - device_virtdisk_matches
  - libxl__device_disk_dev_number
  - encode_disk_name
  - libxl__devid_to_vdev
  - VDEV_IS_EXTENDED
  - BLKIF_MINOR_EXT
  - libxl__prepare_ao_device
  - libxl__multidev_begin
  - libxl__multidev_prepare_with_aodev
  - libxl__multidev_prepare
  - libxl__multidev_one_callback
  - libxl__multidev_prepared
  - libxl__device_destroy
  - libxl__devices_destroy
  - libxl__wait_device_connection
  - libxl__initiate_device_generic_remove
  - device_qemu_timeout
  - device_backend_callback
  - device_backend_cleanup
  - device_hotplug
  - device_hotplug_child_death_cb
  - device_destroy_be_watch_cb
  - device_hotplug_done
  - device_hotplug_clean
  - devices_remove_callback
  - libxl__wait_for_backend
  - device_addrm_aocomplete
  - libxl__device_nextid
  - device_complete
  - qemu_xenpv_spawn_outcome
  - search_for_guest
  - search_for_device
  - LIBXL_DEVICE_CMP
  - check_and_maybe_remove_guest
  - add_device
  - remove_device
  - backend_watch_callback
  - libxl_device_events_handler
  - device_add_domain_config
  - libxl__device_add_async
  - libxl__device_add
  - libxl__device_list
  - libxl__device_list_free
  source_file: /src/xen/tools/libs/light/libxl_device.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/xen/tools/libs/light/libxl_device.c
      type_or_value: '32'
    - item_type: preproc_def
      name: EXT_SHIFT
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/xen/tools/libs/light/libxl_device.c
      type_or_value: '28'
    - item_type: preproc_def
      name: EXTENDED
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/xen/tools/libs/light/libxl_device.c
      type_or_value: (1<<EXT_SHIFT)
    structs:
    - fields:
      - name: '*gc'
        type: libxl__gc
      - name: '*disk'
        type: libxl_device_disk
      - name: stab
        type: struct stat
      item_type: struct
      name: disk_try_backend_args
      pos:
        line_end: 303
        line_start: 299
        source_file: /src/xen/tools/libs/light/libxl_device.c
    - fields:
      - name: '*dev'
        type: libxl__device
      item_type: struct
      name: libxl__ddomain_device
      pos:
        line_end: 1546
        line_start: 1543
        source_file: /src/xen/tools/libs/light/libxl_device.c
    - fields:
      - name: domid
        type: uint32_t
      - name: pvqemu_refcnt
        type: int
      - name: (, struct libxl__ddomain_device)
        type: XEN_SLIST_HEAD
      item_type: struct
      name: libxl__ddomain_guest
      pos:
        line_end: 1556
        line_start: 1551
        source_file: /src/xen/tools/libs/light/libxl_device.c
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: watch
        type: libxl__ev_xswatch
      - name: (, struct libxl__ddomain_guest)
        type: XEN_SLIST_HEAD
      item_type: struct
      name: libxl__ddomain
      pos:
        line_end: 1566
        line_start: 1562
        source_file: /src/xen/tools/libs/light/libxl_device.c
    typedefs: []
    union: []
- function_names:
  - ASSERT
  - test_bit
  source_file: /src/xen/tools/libs/light/libxl_x86_acpi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_vtpm_setdefault
  - libxl__update_config_vtpm
  - libxl__set_xenstore_vtpm
  - libxl__device_vtpm_add
  - libxl__vtpm_from_xenstore
  - libxl_device_vtpm_getinfo
  - libxl_devid_to_device_vtpm
  - libxl_device_vtpm_compare
  - libxl_uuid_to_device_vtpm
  - libxl_device_vtpm_update_config
  source_file: /src/xen/tools/libs/light/libxl_vtpm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LIBXL__DBG_LOG
  - LIBXL__DBG_LOG
  - DBG
  - pollers_note_osevent_added
  - baton_wake
  - libxl__egc_ao_cleanup_1_baton
  - OSEVENT_HOOK_INTERN
  - OSEVENT_HOOK
  - osevent_ev_from_hook_nexus
  - osevent_release_nexus
  - osevent_hook_pre_alloc
  - osevent_hook_failed_alloc
  - osevent_hook_pre_release
  - osevent_hook_failed_release
  - osevent_hook_pre_noop
  - osevent_hook_failed_noop
  - libxl__ev_fd_register
  - libxl__ev_fd_modify
  - libxl__ev_fd_deregister
  - libxl__fd_poll_recheck
  - libxl__gettimeofday
  - time_rel_to_abs
  - time_register_finite
  - time_deregister
  - time_done_debug
  - time_aborted
  - time_register_abortable
  - libxl__ev_time_register_abs
  - libxl__ev_time_register_rel
  - libxl__ev_time_deregister
  - time_occurs
  - libxl__watch_slot_contents
  - libxl__set_watch_slot_contents
  - watchfd_callback
  - watch_token
  - watches_check_fd_deregister
  - libxl__ev_xswatch_register
  - libxl__ev_xswatch_deregister
  - evtchn_revents_check
  - evtchn_fd_callback
  - libxl__ctx_evtchn_init
  - evtchn_check_fd_deregister
  - libxl__ev_evtchn_wait
  - libxl__ev_evtchn_cancel
  - devstate_callback
  - libxl__ev_devstate_wait
  - libxl__ev_immediate_register
  - libxl__domaindeathcheck_init
  - libxl__domaindeathcheck_stop
  - domaindeathcheck_callback
  - domaindeathcheck_abort
  - libxl__domaindeathcheck_start
  - beforepoll_internal
  - REQUIRE_FDS
  - REQUIRE_FD
  - libxl_osevent_beforepoll
  - afterpoll_check_fd
  - fd_occurs
  - afterpoll_internal
  - libxl_osevent_afterpoll
  - libxl_osevent_register_hooks
  - libxl_osevent_occurred_fd
  - libxl_osevent_occurred_timeout
  - libxl__event_disaster
  - egc_run_callbacks
  - libxl__egc_cleanup_2_ul_cb_gc
  - libxl_event_register_callbacks
  - libxl__event_occurred
  - libxl_event_free
  - libxl__event_new
  - event_check_internal
  - libxl_event_check
  - libxl__pipe_close
  - libxl__pipe_nonblock
  - libxl__self_pipe_wakeup
  - libxl__self_pipe_eatall
  - libxl__poller_init
  - libxl__poller_dispose
  - libxl__poller_get
  - libxl__poller_put
  - libxl__poller_wakeup
  - eventloop_iteration
  - libxl_event_wait
  - ao__manip_enter
  - ao__manip_leave
  - ao__check_destroy
  - libxl__ao__destroy
  - libxl__ao_create_fail
  - libxl__ao_inprogress_gc
  - libxl__ao_complete
  - ao_work_outstanding
  - libxl__ao_complete_check_progress_reports
  - libxl__ao_create
  - libxl__ao_inprogress
  - ao__abort
  - libxl_ao_abort
  - libxl__ao_aborting
  - libxl__ao_abortable_register
  - libxl__ao_abortable_deregister
  - dummy_asyncprogress_callback_ignore
  - libxl__ao_progress_gethow
  - libxl__ao_progress_report
  - ao_nested_root
  - libxl__nested_ao_create
  - libxl__nested_ao_free
  source_file: /src/xen/tools/libs/light/libxl_event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: evkind
      pos:
        line_end: 245
        line_start: 243
        source_file: /src/xen/tools/libs/light/libxl_event.c
      type_or_value: ', hookop, nexusop, __VA_ARGS__)'
    structs:
    - fields:
      - name: '*ev'
        type: void
      - name: '*for_app_reg'
        type: void
      - name: (libxl__osevent_hook_nexus)
        type: XEN_SLIST_ENTRY
      item_type: struct
      name: libxl__osevent_hook_nexus
      pos:
        line_end: 282
        line_start: 278
        source_file: /src/xen/tools/libs/light/libxl_event.c
    typedefs: []
    union: []
- function_names:
  - checkpoint_device_init
  - libxl__checkpoint_devices_setup
  - checkpoint_devices_setup
  - device_setup_iterate
  - all_devices_setup_cb
  - libxl__checkpoint_devices_teardown
  - devices_teardown_cb
  - define_checkpoint_api
  - devices_checkpoint_cb
  source_file: /src/xen/tools/libs/light/libxl_checkpoint_device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pci_encode_bdf
  - pci_struct_fill
  - libxl_create_pci_backend_device
  - libxl__device_from_pci
  - libxl__create_pci_backend
  - libxl__device_pci_add_xenstore
  - libxl__device_pci_remove_xenstore
  - is_pci_in_array
  - sysfs_write_bdf
  - pci_info_xs_path
  - pci_info_xs_write
  - pci_info_xs_read
  - pci_info_xs_remove
  - libxl_device_pci_assignable_list
  - libxl_device_pci_assignable_list_free
  - sysfs_dev_unbind
  - sysfs_dev_get_vendor
  - sysfs_dev_get_device
  - sysfs_dev_get_class
  - libxl__is_igd_vga_passthru
  - pciback_dev_has_slot
  - pciback_dev_is_assigned
  - pciback_dev_assign
  - pciback_dev_unassign
  - libxl__device_pci_assignable_add
  - name2bdf
  - libxl__device_pci_assignable_remove
  - libxl_device_pci_assignable_add
  - libxl_device_pci_assignable_remove
  - pci_multifunction_check
  - do_pci_add
  - pci_add_qmp_device_add
  - pci_add_qmp_device_add_cb
  - pci_add_qmp_device_add_retry
  - pci_add_qmp_query_pci_cb
  - pci_add_timeout
  - pci_supp_legacy_irq
  - pci_add_dm_done
  - libxl__device_pci_reset
  - libxl__device_pci_setdefault
  - libxl_device_pci_add
  - libxl_pci_assignable
  - libxl__device_pci_add
  - device_pci_add_stubdom_wait
  - device_pci_add_stubdom_ready
  - device_pci_add_stubdom_done
  - device_pci_add_done
  - libxl__add_pcis
  - add_pcis_done
  - do_pci_remove
  - pci_remove_qmp_device_del
  - pci_remove_qmp_device_del_cb
  - pci_remove_qmp_retry_timer_cb
  - pci_remove_qmp_query_cb
  - pci_remove_timeout
  - pci_remove_detached
  - pci_remove_stubdom_done
  - pci_remove_done
  - libxl__device_pci_remove_common
  - device_pci_remove_common_next
  - libxl_device_pci_remove
  - libxl_device_pci_destroy
  - libxl__device_pci_from_xs_be
  - libxl__device_pci_get_num
  - libxl__device_pci_get_path
  - libxl__device_pci_destroy_all
  - libxl__grant_vga_iomem_permission
  - libxl_device_pci_compare
  source_file: /src/xen/tools/libs/light/libxl_pci.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCI_BDF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"%04x:%02x:%02x.%01x"'
    - item_type: preproc_def
      name: PCI_BDF_SHORT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"%02x:%02x.%01x"'
    - item_type: preproc_def
      name: PCI_BDF_VDEVFN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"%04x:%02x:%02x.%01x@%02x"'
    - item_type: preproc_def
      name: PCI_OPTIONS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"msitranslate=%d,power_mgmt=%d"'
    - item_type: preproc_def
      name: PCI_BDF_XSPATH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"%04x-%02x-%02x-%01x"'
    - item_type: preproc_def
      name: PCI_PT_QDEV_ID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"pci-pt-%02x_%02x.%01x"'
    - item_type: preproc_def
      name: PCI_IRQ_LINE_LIMIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: PCI_INFO_PATH
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: '"/libxl/pci"'
    - item_type: preproc_def
      name: libxl__device_pci_update_devid
      pos:
        line_end: 2439
        line_start: 2438
        source_file: /src/xen/tools/libs/light/libxl_pci.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: '*aodev'
        type: libxl__ao_device
      - name: domid
        type: libxl_domid
      - name: starting
        type: bool
      - name: (*callback)(libxl__egc *, struct pci_add_state *, int rc)
        type: void
      - name: pciback_ds
        type: libxl__ev_devstate
      - name: xswait
        type: libxl__xswait_state
      - name: qmp
        type: libxl__ev_qmp
      - name: timeout
        type: libxl__ev_time
      - name: timeout_retries
        type: libxl__ev_time
      - name: pci
        type: libxl_device_pci
      - name: pci_domid
        type: libxl_domid
      - name: retries
        type: int
      item_type: struct
      name: pci_add_state
      pos:
        line_end: 1043
        line_start: 1025
        source_file: /src/xen/tools/libs/light/libxl_pci.c
    - fields:
      - name: multidev
        type: libxl__multidev
      - name: '*outer_aodev'
        type: libxl__ao_device
      - name: '*d_config'
        type: libxl_domain_config
      - name: domid
        type: libxl_domid
      item_type: struct
      name: add_pcis_state
      pos:
        line_end: 1731
        line_start: 1726
        source_file: /src/xen/tools/libs/light/libxl_pci.c
    - fields:
      - name: '*aodev'
        type: libxl__ao_device
      - name: domid
        type: libxl_domid
      - name: pci
        type: libxl_device_pci
      - name: force
        type: bool
      - name: hvm
        type: bool
      - name: orig_vdev
        type: unsigned int
      - name: pfunc_mask
        type: unsigned int
      - name: next_func
        type: int
      - name: stubdom_aodev
        type: libxl__ao_device
      - name: xswait
        type: libxl__xswait_state
      - name: qmp
        type: libxl__ev_qmp
      - name: timeout
        type: libxl__ev_time
      - name: retry_timer
        type: libxl__ev_time
      item_type: struct
      name: pci_remove_state
      pos:
        line_end: 1787
        line_start: 1773
        source_file: /src/xen/tools/libs/light/libxl_pci.c
    typedefs: []
    union: []
- function_names:
  - ASYNC_CALL
  source_file: /src/xen/tools/libs/light/libxl_colo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLO_PROXY_CHECKPOINT_TIMEOUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_colo.h
      type_or_value: '5000000'
    structs:
    - fields:
      - name: devid
        type: int
      - name: '*vif'
        type: char
      item_type: struct
      name: libxl__colo_device_nic
      pos:
        line_end: 54
        line_start: 51
        source_file: /src/xen/tools/libs/light/libxl_colo.h
    - fields:
      - name: setuped
        type: bool
      item_type: struct
      name: libxl__colo_qdisk
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/tools/libs/light/libxl_colo.h
    - fields:
      - name: '*ao'
        type: struct libxl__ao
      - name: sock_fd
        type: int
      - name: index
        type: int
      - name: is_userspace_proxy
        type: bool
      - name: '*checkpoint_host'
        type: char
      - name: '*checkpoint_port'
        type: char
      item_type: struct
      name: libxl__colo_proxy_state
      pos:
        line_end: 73
        line_start: 60
        source_file: /src/xen/tools/libs/light/libxl_colo.h
    - fields:
      - name: send_fd
        type: int
      - name: recv_fd
        type: int
      - name: '*colo_proxy_script'
        type: char
      - name: srs
        type: libxl__stream_read_state
      - name: (*callback)(libxl__egc *, libxl__colo_save_state *, int)
        type: void
      - name: svm_running
        type: bool
      - name: paused
        type: bool
      - name: qdisk_used
        type: bool
      - name: qdisk_setuped
        type: bool
      - name: cps
        type: libxl__colo_proxy_state
      - name: child
        type: libxl__ev_child
      item_type: struct
      name: libxl__colo_save_state
      pos:
        line_end: 93
        line_start: 75
        source_file: /src/xen/tools/libs/light/libxl_colo.h
    - fields:
      - name: '*ao'
        type: struct libxl__ao
      - name: domid
        type: uint32_t
      - name: send_back_fd
        type: int
      - name: recv_fd
        type: int
      - name: hvm
        type: int
      - name: '*callback'
        type: libxl__colo_callback
      - name: '*colo_proxy_script'
        type: char
      - name: '*saved_cb'
        type: libxl__domain_create_cb
      - name: '*crcs'
        type: void
      - name: qdisk_used
        type: bool
      - name: qdisk_setuped
        type: bool
      - name: '*host'
        type: char
      - name: '*port'
        type: char
      - name: cps
        type: libxl__colo_proxy_state
      item_type: struct
      name: libxl__colo_restore_state
      pos:
        line_end: 121
        line_start: 99
        source_file: /src/xen/tools/libs/light/libxl_colo.h
    typedefs:
    - item_type: typedef
      name: "libxl__colo_callback(struct libxl__egc *egc,\n                                  libxl__colo_restore_state
        *crs, int rc)"
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/libs/light/libxl_colo.h
      type: void
    union: []
- function_names:
  - libxl__try_phy_backend
  - libxl__devid_to_localdev
  - get_hotplug_env
  - libxl__hotplug_nic
  - libxl__hotplug_disk
  - libxl__get_hotplug_script_info
  - libxl__pci_numdevs
  - libxl__pci_topology_init
  - libxl__local_dm_preexec_restrict
  source_file: /src/xen/tools/libs/light/libxl_linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLONE_NEWIPC
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_linux.c
      type_or_value: '0x08000000'
    structs:
    - fields:
      - name: resource
        type: int
      - name: limit
        type: rlim_t
      item_type: struct
      name: "rlimits[] = {\n#define RLIMIT_ENTRY(r, l) \\\n    { .resource = r, .limit
        = l }\n    /* Big enough for log files, not big enough for a DoS */\n    RLIMIT_ENTRY(RLIMIT_FSIZE,
        \   256*1024),\n\n    /* Shouldn't need any of these */\n    RLIMIT_ENTRY(RLIMIT_CORE,
        \    0),\n    RLIMIT_ENTRY(RLIMIT_MSGQUEUE, 0),\n    RLIMIT_ENTRY(RLIMIT_LOCKS,
        \   0),\n    RLIMIT_ENTRY(RLIMIT_MEMLOCK,  0),\n\n    /* End-of-list marker
        */\n    RLIMIT_ENTRY(RLIMIT_NLIMITS,  0),\n#undef RLIMIT_ENTRY\n}"
      pos:
        line_end: 317
        line_start: 314
        source_file: /src/xen/tools/libs/light/libxl_linux.c
    typedefs: []
    union: []
- function_names:
  - libxl__cpuid_policy_is_empty
  - libxl_cpuid_dispose
  - cpuid_find_match
  - cpuid_add
  - msr_find_match
  - msr_add
  - search_feature
  - libxl_cpuid_parse_config
  - libxl_cpuid_parse_config_xend
  - libxl__cpuid_legacy
  - libxl_cpuid_policy_list_gen_jso
  - libxl_cpuid_policy_list_gen_json
  - libxl__cpuid_policy_list_parse_json
  - libxl_cpuid_policy_list_length
  - libxl_cpuid_policy_list_copy
  source_file: /src/xen/tools/libs/light/libxl_cpuid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPUID_REG_INV
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CPUID_REG_EAX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CPUID_REG_EBX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CPUID_REG_ECX
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CPUID_REG_EDX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NA
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
      type_or_value: XEN_CPUID_INPUT_UNUSED
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: leaf
        type: uint32_t
      - name: subleaf
        type: uint32_t
      - name: reg
        type: int
      - name: bit
        type: int
      - name: length
        type: int
      item_type: struct
      name: cpuid_flags
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
    - fields:
      - name: '*name'
        type: char
      - name: bit
        type: unsigned int
      item_type: struct
      name: feature_name
      pos:
        line_end: 216
        line_start: 213
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
    - fields:
      - name: type
        type: enum { FEAT_CPUID, FEAT_MSR }
      - name: u
        type: "union {\n            struct {\n                uint32_t leaf, subleaf;\n
          \               unsigned int reg;\n            } cpuid;\n            struct
          {\n                uint32_t index;\n                unsigned int reg;\n
          \           } msr;\n        }"
      item_type: struct
      name: "feature_to_policy[] = {\n#define CPUID_ENTRY(l, s, r) \\\n    { .type
        = FEAT_CPUID, \\\n      .u = { .cpuid.leaf = l, .cpuid.subleaf = s, .cpuid.reg
        = r } \\\n    }\n#define MSR_ENTRY(i, r) \\\n    { .type = FEAT_MSR, \\\n
        \     .u = { .msr.index = i, .msr.reg = r } \\\n    }\n        CPUID_ENTRY(0x00000001,
        NA, CPUID_REG_EDX),\n        CPUID_ENTRY(0x00000001, NA, CPUID_REG_ECX),\n
        \       CPUID_ENTRY(0x80000001, NA, CPUID_REG_EDX),\n        CPUID_ENTRY(0x80000001,
        NA, CPUID_REG_ECX),\n        CPUID_ENTRY(0x0000000D,  1, CPUID_REG_EAX),\n
        \       CPUID_ENTRY(0x00000007,  0, CPUID_REG_EBX),\n        CPUID_ENTRY(0x00000007,
        \ 0, CPUID_REG_ECX),\n        CPUID_ENTRY(0x80000007, NA, CPUID_REG_EDX),\n
        \       CPUID_ENTRY(0x80000008, NA, CPUID_REG_EBX),\n        CPUID_ENTRY(0x00000007,
        \ 0, CPUID_REG_EDX),\n        CPUID_ENTRY(0x00000007,  1, CPUID_REG_EAX),\n
        \       CPUID_ENTRY(0x80000021, NA, CPUID_REG_EAX),\n        CPUID_ENTRY(0x00000007,
        \ 1, CPUID_REG_EBX),\n        CPUID_ENTRY(0x00000007,  2, CPUID_REG_EDX),\n
        \       CPUID_ENTRY(0x00000007,  1, CPUID_REG_ECX),\n        CPUID_ENTRY(0x00000007,
        \ 1, CPUID_REG_EDX),\n        MSR_ENTRY(0x10a, CPUID_REG_EAX),\n        MSR_ENTRY(0x10a,
        CPUID_REG_EDX),\n        CPUID_ENTRY(0x80000021, NA, CPUID_REG_ECX),\n#undef
        MSR_ENTRY\n#undef CPUID_ENTRY\n    }"
      pos:
        line_end: 317
        line_start: 305
        source_file: /src/xen/tools/libs/light/libxl_cpuid.c
    typedefs: []
    union: []
- function_names:
  - init_subkind_qdisk
  - cleanup_subkind_qdisk
  - colo_qdisk_setup
  - colo_qdisk_teardown
  - colo_qdisk_save_preresume
  - colo_qdisk_save_setup
  - colo_qdisk_save_teardown
  - colo_qdisk_restore_setup
  - colo_qdisk_restore_teardown
  source_file: /src/xen/tools/libs/light/libxl_colo_qdisk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_open_fds
  - libxl__exec
  - libxl_report_child_exitstatus
  - libxl__spawn_record_pid
  - libxl__spawn_init
  - libxl__spawn_spawn
  - spawn_cleanup
  - spawn_detach
  - libxl__spawn_initiate_detach
  - libxl__spawn_initiate_failure
  - spawn_fail
  - spawn_watch_event
  - spawn_middle_death
  source_file: /src/xen/tools/libs/light/libxl_exec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__netbuffer_enabled
  - init_subkind_nic
  - cleanup_subkind_nic
  - get_vifname
  - free_qdisc
  - init_qdisc
  - setup_async_exec
  - nic_setup
  - netbuf_setup_script_cb
  - nic_teardown
  - netbuf_teardown_script_cb
  - remus_netbuf_op
  - nic_postsuspend
  - nic_commit
  source_file: /src/xen/tools/libs/light/libxl_netbuffer.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: devid
        type: int
      - name: '*vif'
        type: char
      - name: '*ifb'
        type: char
      - name: '*qdisc'
        type: struct rtnl_qdisc
      item_type: struct
      name: libxl__remus_device_nic
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/xen/tools/libs/light/libxl_netbuffer.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/libs/light/test_fdderegrace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_basename
  - libxl_get_required_shadow_memory
  - libxl_domid_to_name
  - libxl__domid_to_name
  - libxl_name_to_domid
  - libxl_domain_qualifier_to_domid
  - qualifier_to_id
  - libxl_cpupool_qualifier_to_cpupoolid
  - libxl_cpupoolid_to_name
  - libxl_cpupoolid_is_valid
  - libxl__cpupoolid_to_name
  - libxl_name_to_cpupoolid
  - libxl_get_stubdom_id
  - libxl_is_stubdom
  - logrename
  - libxl_create_logfile
  - libxl_string_to_backend
  - libxl_read_file_contents
  - libxl__read_sysfs_file_contents
  - READ_WRITE_EXACTLY
  - libxl__remove_directory
  - libxl_pipe
  - libxl_bitmap_alloc
  - libxl_bitmap_init
  - libxl_bitmap_dispose
  - libxl_bitmap_copy
  - libxl__bitmap_copy_best_effort
  - libxl_bitmap_copy_alloc
  - libxl_bitmap_is_full
  - libxl_bitmap_is_empty
  - libxl_bitmap_test
  - libxl_bitmap_set
  - libxl_bitmap_reset
  - libxl_bitmap_or
  - libxl_bitmap_and
  - libxl_bitmap_count_set
  - libxl_bitmap_to_hex_string
  - libxl_cpu_bitmap_alloc
  - libxl_node_bitmap_alloc
  - libxl__count_physical_sockets
  - libxl_socket_bitmap_alloc
  - libxl_get_online_socketmap
  - libxl_nodemap_to_cpumap
  - libxl_node_to_cpumap
  - libxl_cpumap_to_nodemap
  - libxl_get_max_cpus
  - libxl_get_online_cpus
  - libxl_get_max_nodes
  - libxl__enum_from_string
  - libxl_cputopology_list_free
  - libxl_pcitopology_list_free
  - libxl_numainfo_list_free
  - libxl_vcpuinfo_list_free
  - libxl__sendmsg_fds
  - libxl__recvmsg_fds
  - libxl_dominfo_list_free
  - libxl_vminfo_list_free
  - libxl_cpupoolinfo_list_free
  - libxl_domid_valid_guest
  - libxl_string_copy
  - libxl__random_bytes
  - libxl__prepare_sockaddr_un
  source_file: /src/xen/tools/libs/light/libxl_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEBUG_GEN_ALLOC
  - DEBUG_GEN_ALLOC
  - DEBUG_GEN_FREE
  - DEBUG_GEN
  - DEBUG_GEN_VALUE
  - DEBUG_GEN_STRING
  - DEBUG_GEN_NUMBER
  - DEBUG_GEN_REPORT
  - DEBUG_GEN_ALLOC
  - DEBUG_GEN_FREE
  - DEBUG_GEN
  - DEBUG_GEN_VALUE
  - DEBUG_GEN_STRING
  - DEBUG_GEN_NUMBER
  - DEBUG_GEN_REPORT
  - libxl__yajl_gen_asciiz
  - libxl__enum_gen_jso
  - libxl__yajl_gen_enum
  - libxl_defbool_gen_jso
  - libxl_defbool_gen_json
  - libxl__defbool_parse_json
  - libxl__boolean_gen_jso
  - libxl__bool_parse_json
  - libxl_uuid_gen_jso
  - libxl_uuid_gen_json
  - libxl__uuid_parse_json
  - libxl_bitmap_gen_jso
  - libxl_bitmap_gen_json
  - libxl__bitmap_parse_json
  - libxl_key_value_list_gen_jso
  - libxl_key_value_list_gen_json
  - libxl__key_value_list_parse_json
  - libxl_string_list_gen_jso
  - libxl_string_list_gen_json
  - libxl__string_list_parse_json
  - libxl_mac_gen_jso
  - libxl_mac_gen_json
  - libxl__mac_parse_json
  - libxl_hwcap_gen_jso
  - libxl_hwcap_gen_json
  - libxl__hwcap_parse_json
  - libxl_ms_vm_genid_gen_jso
  - libxl_ms_vm_genid_gen_json
  - libxl__ms_vm_genid_parse_json
  - libxl__string_gen_jso
  - libxl__string_gen_json
  - libxl__string_parse_json
  - libxl__json_object_alloc
  - libxl__json_object_append_to
  - libxl__json_object_free
  - libxl__json_array_get
  - libxl__json_map_node_get
  - libxl__json_map_get
  - libxl__json_object_to_json_object
  - libxl__json_object_to_yajl_gen
  - CONVERT_YAJL_GEN_TO_STATUS
  - json_callback_null
  - json_callback_boolean
  - is_decimal
  - json_callback_number
  - json_callback_string
  - json_callback_map_key
  - json_callback_start_map
  - json_callback_end_map
  - json_callback_start_array
  - json_callback_end_array
  - yajl_ctx_free
  - jso_visiter
  - libxl__json_parse
  - yajl_gen_status_to_string
  - libxl__object_to_json
  - libxl__object_to_json
  - libxl__json_object_to_json
  - libxl__uint64_gen_jso
  - libxl__uint64_gen_json
  - libxl__object_from_json
  - libxl__int_gen_jso
  - libxl__int_parse_json
  - PARSE_UINT
  - libxl__uint64_parse_json
  source_file: /src/xen/tools/libs/light/libxl_json.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*gc'
        type: libxl__gc
      - name: '*head'
        type: libxl__json_object
      - name: '*current'
        type: libxl__json_object
      item_type: struct
      name: libxl__yajl_ctx
      pos:
        line_end: 59
        line_start: 49
        source_file: /src/xen/tools/libs/light/libxl_json.c
    typedefs: []
    union: []
- function_names:
  - init_subkind_colo_nic
  - cleanup_subkind_colo_nic
  - get_vifname
  - setup_async_exec
  - colo_nic_setup
  - colo_save_setup_script_cb
  - colo_nic_teardown
  - colo_save_teardown_script_cb
  - colo_nic_save_setup
  - colo_nic_save_teardown
  - colo_nic_restore_setup
  - colo_nic_restore_teardown
  source_file: /src/xen/tools/libs/light/libxl_colo_nic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/flexarray.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: int
      - name: autogrow
        type: int
      - name: count
        type: unsigned int
      - name: '**data'
        type: void
      - name: '*gc'
        type: struct libxl__gc
      item_type: struct
      name: flexarray
      pos:
        line_end: 26
        line_start: 20
        source_file: /src/xen/tools/libs/light/flexarray.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/test_common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/libxl_test_timedereg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__arch_domain_prepare_config
  - libxl__arch_domain_save_config
  - e820_names
  - e820_sanitize
  - e820_host_sanitize
  - libxl__e820_alloc
  - timer_mode
  - hvm_set_viridian_features
  - hvm_set_conf_params
  - libxl__arch_domain_create
  - libxl__arch_extra_memory
  - libxl__arch_domain_init_hw_description
  - libxl__arch_build_dom_finish
  - libxl__arch_vnuma_build_vmemrange
  - libxl__arch_domain_map_irq
  - domain_construct_memmap
  - libxl__arch_domain_finalise_hw_description
  - libxl__arch_domain_create_info_setdefault
  - libxl__arch_domain_build_info_setdefault
  - libxl__arch_passthrough_mode_setdefault
  - libxl__arch_update_domain_config
  - libxl__arch_local_domain_has_pirq_notion
  - libxl__arch_hvm_map_gsi
  - libxl__arch_hvm_unmap_gsi
  source_file: /src/xen/tools/libs/light/libxl_x86.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_LOW_MEM_START_DEFAULT
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/xen/tools/libs/light/libxl_x86.c
      type_or_value: '0x100000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_generic_write
  - setup_write
  - setup_emulator_write
  - write_done
  - libxl__stream_write_init
  - libxl__stream_write_start
  - libxl__stream_write_start_checkpoint
  - libxl__stream_write_abort
  - stream_header_done
  - libxc_header_done
  - libxl__xc_domain_save_done
  - write_emulator_xenstore_record
  - emulator_xenstore_record_done
  - write_emulator_context_record
  - emulator_context_read_done
  - emulator_context_record_done
  - write_end_record
  - write_checkpoint_end_record
  - checkpoint_end_record_done
  - stream_success
  - stream_complete
  - stream_done
  - checkpoint_done
  - check_all_finished
  - libxl__stream_write_checkpoint_state
  - write_checkpoint_state_done
  - checkpoint_state_done
  source_file: /src/xen/tools/libs/light/libxl_stream_write.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__domain_create_info_setdefault
  - libxl__rdm_setdefault
  - libxl__domain_build_info_setdefault
  - init_console_info
  - libxl__domain_build
  - libxl__domain_make
  - store_libxl_entry
  - libxl__domain_build_state_init
  - libxl__domain_build_state_dispose
  - ok_to_default_memkb_in_create
  - libxl__get_required_paging_memory
  - libxl__get_required_iommu_memory
  - libxl__domain_config_setdefault
  - initiate_domain_create
  - domcreate_bootloader_console_available
  - domcreate_console_available
  - domcreate_bootloader_done
  - libxl__colo_restore_setup_done
  - libxl__srm_callout_callback_static_data_done
  - libxl__srm_callout_callback_restore_results
  - domcreate_stream_done
  - domcreate_rebuild_done
  - domcreate_launch_dm
  - libxl__add_dtdevs
  - domcreate_devmodel_started
  - domcreate_attach_devices
  - console_xswait_callback
  - domcreate_complete
  - domcreate_destruction_cb
  - do_domain_create
  - domain_soft_reset_cb
  - do_domain_soft_reset
  - soft_reset_dm_suspended
  - domain_create_cb
  - set_disk_colo_restore
  - unset_disk_colo_restore
  - libxl_domain_create_new
  - libxl_domain_create_restore
  - libxl_domain_soft_reset
  source_file: /src/xen/tools/libs/light/libxl_create.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl_device_dtdev_list
      pos:
        line_end: 1882
        line_start: 1881
        source_file: /src/xen/tools/libs/light/libxl_create.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_dtdev_compare
      pos:
        line_end: 1883
        line_start: 1882
        source_file: /src/xen/tools/libs/light/libxl_create.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl__device_from_dtdev
      pos:
        line_end: 1884
        line_start: 1883
        source_file: /src/xen/tools/libs/light/libxl_create.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl__device_dtdev_setdefault
      pos:
        line_end: 1885
        line_start: 1884
        source_file: /src/xen/tools/libs/light/libxl_create.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl__device_dtdev_update_devid
      pos:
        line_end: 1886
        line_start: 1885
        source_file: /src/xen/tools/libs/light/libxl_create.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: dcs
        type: libxl__domain_create_state
      - name: '*domid_out'
        type: uint32_t
      item_type: struct
      name: libxl__app_domain_create_state
      pos:
        line_end: 2077
        line_start: 2074
        source_file: /src/xen/tools/libs/light/libxl_create.c
    - fields:
      - name: cdcs
        type: libxl__app_domain_create_state
      - name: dds
        type: libxl__domain_destroy_state
      - name: dss
        type: libxl__domain_save_state
      - name: '*toolstack_buf'
        type: char
      - name: toolstack_len
        type: uint32_t
      item_type: struct
      name: libxl__domain_soft_reset_state
      pos:
        line_end: 2085
        line_start: 2079
        source_file: /src/xen/tools/libs/light/libxl_create.c
    typedefs: []
    union: []
- function_names:
  - atfork_lock
  - atfork_unlock
  - libxl__atfork_init
  - libxl__carefd_begin
  - libxl__carefd_unlock
  - libxl__carefd_record
  - libxl__carefd_opened
  - libxl_postfork_child_noexec
  - libxl__carefd_close
  - libxl__carefd_fd
  - checked_waitpid
  - sigchld_handler
  - sigchld_sethandler_raw
  - sigchld_handler_when_deferred
  - defer_sigchld
  - release_sigchld
  - sigchld_removehandler_core
  - sigchld_installhandler_core
  - sigchld_user_remove
  - libxl__sigchld_notneeded
  - libxl__sigchld_needed
  - chldmode_ours
  - perhaps_sigchld_notneeded
  - perhaps_sigchld_needed
  - childproc_reaped_ours
  - childproc_reaped
  - libxl_childproc_reaped
  - childproc_checkall
  - libxl_childproc_sigchld_occurred
  - sigchld_selfpipe_handler
  - libxl__ev_child_fork
  - libxl_childproc_setmode
  - libxl__ev_child_xenstore_reopen
  - libxl__ev_child_kill_deregister
  - deregistered_child_callback
  source_file: /src/xen/tools/libs/light/libxl_fork.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (libxl__carefd)
        type: XEN_LIST_ENTRY
      - name: fd
        type: int
      item_type: struct
      name: libxl__carefd
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: ch
        type: libxl__ev_child
      item_type: struct
      name: ev_child_killed
      pos:
        line_end: 684
        line_start: 681
        source_file: /src/xen/tools/libs/light/libxl_fork.c
    typedefs: []
    union: []
- function_names:
  - libxl__conversion_helper_init
  - libxl__convert_legacy_stream
  - libxl__conversion_helper_abort
  source_file: /src/xen/tools/libs/light/libxl_no_convert_callout.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_uuid_is_nil
  - libxl_uuid_generate
  - libxl_uuid_from_string
  - libxl_uuid_copy
  - libxl_uuid_clear
  - libxl_uuid_compare
  - libxl_uuid_bytearray_const
  - libxl_uuid_bytearray
  - libxl_uuid_is_nil
  - libxl_uuid_generate
  - libxl_uuid_from_string
  - libxl_uuid_copy
  - libxl_uuid_clear
  - libxl_uuid_compare
  - libxl_uuid_bytearray_const
  - libxl_uuid_bytearray
  source_file: /src/xen/tools/libs/light/libxl_uuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tellparent_vmessage
  - tellparent_progress
  - tellparent_destroy
  - fail
  - read_exactly
  - xmalloc
  - save_signal_handler
  - setup_signals
  - helper_allocbuf
  - transmit
  - helper_transmitmsg
  - helper_getreply
  - startup
  - complete
  - main
  source_file: /src/xen/tools/libs/light/libxl_save_helper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEXTARG
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/tools/libs/light/libxl_save_helper.c
      type_or_value: (++argv, assert(*argv), *argv)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESTORE_STREAM_IDENT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x4c6962786c466d74UL
    - item_type: preproc_def
      name: RESTORE_STREAM_VERSION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: RESTORE_OPT_BIG_ENDIAN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: RESTORE_OPT_LEGACY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: REC_ALIGN_ORDER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 3U
    - item_type: preproc_def
      name: REC_TYPE_END
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000000U
    - item_type: preproc_def
      name: REC_TYPE_LIBXC_CONTEXT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: REC_TYPE_EMULATOR_XENSTORE_DATA
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: REC_TYPE_EMULATOR_CONTEXT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000003U
    - item_type: preproc_def
      name: REC_TYPE_CHECKPOINT_END
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000004U
    - item_type: preproc_def
      name: REC_TYPE_CHECKPOINT_STATE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000005U
    - item_type: preproc_def
      name: EMULATOR_UNKNOWN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000000U
    - item_type: preproc_def
      name: EMULATOR_QEMU_TRADITIONAL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: '0x00000001U '
    - item_type: preproc_def
      name: EMULATOR_QEMU_UPSTREAM
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: CHECKPOINT_NEW
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000000U
    - item_type: preproc_def
      name: CHECKPOINT_SVM_SUSPENDED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: CHECKPOINT_SVM_READY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: CHECKPOINT_SVM_RESUMED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
      type_or_value: 0x00000003U
    structs:
    - fields:
      - name: ident
        type: uint64_t
      - name: version
        type: uint32_t
      - name: options
        type: uint32_t
      item_type: struct
      name: libxl__sr_hdr
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
    - fields:
      - name: type
        type: uint32_t
      - name: length
        type: uint32_t
      item_type: struct
      name: libxl__sr_rec_hdr
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
    - fields:
      - name: id
        type: uint32_t
      - name: index
        type: uint32_t
      item_type: struct
      name: libxl__sr_emulator_hdr
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
    - fields:
      - name: id
        type: uint32_t
      item_type: struct
      name: libxl_sr_checkpoint_state
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/xen/tools/libs/light/libxl_sr_stream_format.h
    typedefs: []
    union: []
- function_names:
  - colo_proxy_send
  - colo_userspace_proxy_send
  - colo_userspace_proxy_recv
  - colo_proxy_recv
  - colo_proxy_setup
  - colo_proxy_teardown
  - colo_proxy_preresume
  - colo_proxy_postresume
  - colo_proxy_checkpoint
  source_file: /src/xen/tools/libs/light/libxl_colo_proxy.c
  types:
    enum:
    - enumerators:
      - name: COLO_QUERY_CHECKPOINT
        value: (NLMSG_MIN_TYPE + 1)
      - name: COLO_CHECKPOINT
      - name: COLO_FAILOVER
      - name: COLO_PROXY_INIT
      - name: COLO_PROXY_RESET
      item_type: enum
      name: colo_netlink_op
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/xen/tools/libs/light/libxl_colo_proxy.c
    preproc_defs:
    - item_type: preproc_def
      name: NETLINK_COLO
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/light/libxl_colo_proxy.c
      type_or_value: '28'
    - item_type: preproc_def
      name: COLO_DEFAULT_WAIT_TIME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/light/libxl_colo_proxy.c
      type_or_value: '500000'
    structs:
    - fields:
      - name: is_checkpoint
        type: bool
      item_type: struct
      name: colo_msg
      pos:
        line_end: 366
        line_start: 364
        source_file: /src/xen/tools/libs/light/libxl_colo_proxy.c
    typedefs: []
    union: []
- function_names:
  - libxl__domain_type
  - libxl__domain_cpupool
  - libxl__domain_scheduler
  - numa_cmpf
  - numa_place_domain
  - libxl__build_pre
  - set_vnuma_affinity
  - libxl__build_post
  - set_vnuma_info
  - libxl__build_dom
  - libxl__build_pv
  - hvm_build_set_params
  - hvm_build_set_xs_values
  - libxl__load_hvm_firmware_module
  - libxl__domain_firmware
  - libxl__build_hvm
  - libxl__uuid2string
  - libxl__userdata_path
  - userdata_delete
  - libxl__userdata_destroyall
  - libxl__userdata_store
  - libxl_userdata_store
  - libxl__userdata_retrieve
  - libxl_userdata_retrieve
  - libxl_userdata_unlink
  - libxl__domain_set_paging_mempool_size
  source_file: /src/xen/tools/libs/light/libxl_dom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/light/libxl_arch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LAPIC_BASE_ADDRESS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/light/libxl_arch.h
      type_or_value: '0xfee00000'
    - item_type: preproc_def
      name: ACPI_INFO_PHYSICAL_ADDRESS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/tools/libs/light/libxl_arch.h
      type_or_value: '0xfc000000'
    - item_type: preproc_def
      name: EXTRA_DEFAULT_PAGING_MEM_MB
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/libs/light/libxl_arch.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXTRA_DEFAULT_PAGING_MEM_MB
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/libs/light/libxl_arch.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__alloc_failed
  - libxl__ptr_add
  - libxl__free_all
  - libxl__malloc
  - libxl__zalloc
  - libxl__calloc
  - libxl__realloc
  - libxl__vsprintf
  - libxl__sprintf
  - libxl__strdup
  - libxl__strndup
  - libxl__dirname
  - libxl__logv
  - libxl__log
  - libxl__abs_path
  - libxl__file_reference_map
  - libxl__file_reference_unmap
  - libxl__parse_mac
  - libxl__compare_macs
  - libxl__mac_is_default
  - libxl__init_recursive_mutex
  - libxl__device_model_version_running
  - libxl__lock_file
  - libxl__unlock_file
  - libxl__lock_domain_userdata
  - libxl__lock_domid_history
  - libxl__get_domain_configuration
  - libxl__set_domain_configuration
  - libxl__update_domain_configuration
  - ev_slowlock_init_internal
  - libxl__ev_devlock_init
  - libxl__ev_qmplock_init
  - libxl__ev_slowlock_lock
  - ev_lock_prepare_fork
  - ev_lock_child_callback
  - libxl__ev_slowlock_unlock
  - libxl__ev_slowlock_dispose
  source_file: /src/xen/tools/libs/light/libxl_internal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: M
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/light/libxl_internal.c
      type_or_value: '"libxl: FATAL ERROR: memory allocation failure"'
    - item_type: preproc_def
      name: M_SIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_internal.c
      type_or_value: M " (%s, %lu x %lu)\n"
    - item_type: preproc_def
      name: M_NSIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_internal.c
      type_or_value: M " (%s)\n"
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_ctx_alloc
  - free_disable_deaths
  - discard_events
  - libxl_ctx_free
  - libxl_string_list_dispose
  - libxl_string_list_copy
  - libxl_string_list_length
  - libxl_key_value_list_length
  - libxl_key_value_list_dispose
  - libxl_key_value_list_copy
  - libxl_defbool_set
  - libxl_defbool_unset
  - libxl_defbool_is_default
  - libxl_defbool_setdefault
  - libxl_defbool_val
  - libxl_defbool_to_string
  - libxl_get_physinfo
  - libxl_get_cpu_topology
  - V
  - libxl_get_pci_topology
  - libxl_get_numainfo
  - V
  - libxl_get_version_info
  - libxl_send_sysrq
  - libxl_send_debug_keys
  - libxl_set_parameters
  - fd_set_flags
  - libxl_fd_set_cloexec
  - libxl_fd_set_nonblock
  - libxl__fd_flags_modify_save
  - libxl__fd_flags_restore
  - libxl_hwcap_copy
  - libxl_mac_copy
  source_file: /src/xen/tools/libs/light/libxl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: xen_cc
        type: xen_compile_info_t
      - name: p_parms
        type: xen_platform_parameters_t
      - name: build_id
        type: xen_build_id_t
      item_type: union
      name: u
      pos:
        line_end: 555
        line_start: 551
        source_file: /src/xen/tools/libs/light/libxl.c
- function_names:
  - libxl_tmem_list
  - libxl_tmem_freeze
  - libxl_tmem_thaw
  - libxl_tmem_set
  - libxl_tmem_shared_auth
  - libxl_tmem_freeable
  source_file: /src/xen/tools/libs/light/libxl_tmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fdt_property_u32
  source_file: /src/xen/tools/libs/light/libxl_libfdt_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - comb_init
  - comb_next
  - comb_get_nodemap
  - nodemap_to_nr_cpus
  - nodemap_to_free_memkb
  - nodemap_to_nr_vcpus
  - nr_vcpus_on_nodes
  - count_cpus_per_node
  - libxl__get_numa_candidate
  source_file: /src/xen/tools/libs/light/libxl_numa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '* comb_iter_t'
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/xen/tools/libs/light/libxl_numa.c
      type: int
    union: []
- function_names:
  - libxl__xc_domain_restore
  - libxl__xc_domain_save
  - libxl__xc_domain_saverestore_async_callback_done
  - libxl__save_helper_init
  - dup_cloexec
  - run_helper
  - helper_failed
  - helper_stop
  - libxl__save_helper_abort
  - helper_stdout_readable
  - helper_exited
  - helper_done
  - libxl__srm_callout_get_callbacks_save
  - libxl__srm_callout_get_callbacks_restore
  - libxl__srm_callout_sendreply
  - libxl__srm_callout_callback_log
  - libxl__srm_callout_callback_progress
  - libxl__srm_callout_callback_complete
  source_file: /src/xen/tools/libs/light/libxl_save_callout.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HELPER_NR_ARGS
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/tools/libs/light/libxl_save_callout.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__setresuid
  source_file: /src/xen/tools/libs/light/libxl_setresuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__xswait_init
  - libxl__xswait_stop
  - libxl__xswait_inuse
  - libxl__xswait_start
  - xswait_xswatch_callback
  - xswait_timeout_callback
  - xswait_report_error
  - libxl__datacopier_init
  - libxl__datacopier_kill
  - datacopier_callback
  - datacopier_check_state
  - libxl__datacopier_prefixdata
  - datacopier_pollhup_handled
  - datacopier_abort
  - datacopier_readable
  - datacopier_writable
  - libxl__datacopier_start
  - openpty_cleanup
  - openpty_exited
  - libxl__openptys
  - async_exec_timeout
  - async_exec_done
  - libxl__async_exec_init
  - libxl__async_exec_start
  - libxl__async_exec_inuse
  - libxl__kill
  - libxl__kill_xs_path
  source_file: /src/xen/tools/libs/light/libxl_aoutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bootloader_arg
  - bootloader_uid
  - make_bootloader_args
  - ARG
  - setup_xenconsoled_pty
  - bootloader_result_command
  - parse_bootloader_result
  - COMMAND
  - libxl__bootloader_init
  - bootloader_cleanup
  - bootloader_setpaths
  - bootloader_callback
  - bootloader_local_detached_cb
  - bootloader_stop
  - libxl__bootloader_run
  - bootloader_disk_attached_cb
  - bootloader_gotptys
  - bootloader_copyfail
  - bootloader_keystrokes_copyfail
  - bootloader_display_copyfail
  - bootloader_timeout
  - bootloader_domaindeath
  - bootloader_finished
  source_file: /src/xen/tools/libs/light/libxl_bootloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOOTLOADER_BUF_OUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: BOOTLOADER_BUF_IN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/light/libxl_bootloader.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_vdispl_setdefault
  - libxl__vdispl_from_xenstore
  - libxl__update_config_vdispl
  - libxl_device_vdispl_compare
  - libxl__device_vdispl_add
  - libxl__set_xenstore_vdispl
  - libxl__device_vdispl_getconnectors
  - libxl_device_vdispl_getinfo
  source_file: /src/xen/tools/libs/light/libxl_vdispl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__conversion_helper_init
  - libxl__convert_legacy_stream
  - libxl__conversion_helper_abort
  - helper_stop
  - helper_exited
  - helper_done
  source_file: /src/xen/tools/libs/light/libxl_convert_callout.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_p9_setdefault
  - libxl__set_xenstore_p9
  - libxl__device_from_p9
  - libxl__device_p9_dm_needed
  - xen9pfsd_spawn
  - xen9pfsd_confirm
  - xen9pfsd_failed
  - xen9pfsd_detached
  - xen9pfsd_spawn_outcome
  - libxl__device_p9_add
  - libxl_device_9pfs_add
  source_file: /src/xen/tools/libs/light/libxl_9pfs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: libxl_device_p9_list
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/tools/libs/light/libxl_9pfs.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: libxl_device_p9_compare
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/tools/libs/light/libxl_9pfs.c
      type_or_value: 'NULL'
    structs:
    - fields:
      - name: spawn
        type: libxl__spawn_state
      - name: '*aodev'
        type: libxl__ao_device
      - name: p9
        type: libxl_device_p9
      - name: domid
        type: uint32_t
      item_type: struct
      name: libxl__aop9_state
      pos:
        line_end: 96
        line_start: 91
        source_file: /src/xen/tools/libs/light/libxl_9pfs.c
    typedefs:
    - item_type: typedef
      name: libxl__aop9_state
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/xen/tools/libs/light/libxl_9pfs.c
      type: libxl__aop9_state
    union: []
- function_names:
  - libxl__netbuffer_enabled
  - init_subkind_nic
  - cleanup_subkind_nic
  - nic_setup
  source_file: /src/xen/tools/libs/light/libxl_nonetbuffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEBUG_REPORT_RECEIVED
  - DEBUG_REPORT_RECEIVED
  - LOG_QMP
  - qmp_capabilities_callback
  - enable_qmp_capabilities
  - qmp_response_type
  - qmp_get_callback_from_id
  - qmp_handle_error_response
  - qmp_handle_response
  - libxl__qmp_ev_qemu_compare_version
  - CHECK_VERSION
  - qmp_init_handler
  - qmp_open
  - qmp_close
  - qmp_next
  - qmp_prepare_cmd
  - qmp_send_prepare
  - qmp_send
  - qmp_synchronous_send
  - qmp_free_handler
  - qmp_parameters_common_add
  - libxl__qmp_param_add_string
  - libxl__qmp_param_add_bool
  - libxl__qmp_param_add_integer
  - libxl__qmp_initialize
  - libxl__qmp_close
  - libxl__qmp_cleanup
  - qmp_run_command
  - libxl__qmp_restore
  - libxl__qmp_resume
  - libxl__qmp_nbd_server_start
  - libxl__qmp_nbd_server_add
  - libxl__qmp_start_replication
  - libxl__qmp_query_xen_replication_status
  - libxl__qmp_colo_do_checkpoint
  - libxl__qmp_stop_replication
  - libxl__qmp_nbd_server_stop
  - libxl__qmp_x_blockdev_change
  - hmp_callback
  - libxl__qmp_hmp
  - libxl_qemu_monitor_command
  - qemu_monitor_command_done
  - libxl__qmp_suspend_save
  - dm_stopped
  - dm_state_fd_ready
  - dm_state_save_to_fdset
  - dm_state_saved
  - qmp_ev_ensure_reading_writing
  - qmp_ev_set_state
  - qmp_ev_tx_buf_clear
  - qmp_error_class_to_libxl_error_code
  - qmp_ev_connect
  - qmp_ev_lock_aquired
  - lock_error_callback
  - qmp_ev_fd_callback
  - qmp_ev_callback_writable
  - qmp_ev_callback_readable
  - qmp_ev_get_next_msg
  - qmp_ev_handle_message
  - GRAB_VERSION
  - qmp_ev_parse_error_messages
  - libxl__ev_qmp_init
  - libxl__ev_qmp_send
  - libxl__ev_qmp_dispose
  source_file: /src/xen/tools/libs/light/libxl_qmp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QMP_RECEIVE_BUFFER_SIZE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: QMP_MAX_SIZE_RX_BUF
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
      type_or_value: MB(1)
    structs:
    - fields:
      - name: rc
        type: int
      item_type: struct
      name: qmp_request_context
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - fields:
      - name: id
        type: int
      - name: callback
        type: qmp_callback_t
      - name: '*opaque'
        type: void
      - name: '*context'
        type: qmp_request_context
      item_type: struct
      name: callback_id_pair
      pos:
        line_end: 114
        line_start: 108
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - fields:
      - name: qmp_fd
        type: int
      - name: connected
        type: bool
      - name: timeout
        type: time_t
      - name: wait_for_id
        type: int
      - name: buffer[QMP_RECEIVE_BUFFER_SIZE + 1]
        type: char
      - name: '*ctx'
        type: libxl_ctx
      - name: domid
        type: uint32_t
      - name: last_id_used
        type: int
      - name: version
        type: "struct {\n        int major;\n        int minor;\n        int micro;\n
          \   }"
      item_type: struct
      name: libxl__qmp_handler
      pos:
        line_end: 135
        line_start: 116
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    - fields:
      - name: qmp
        type: libxl__ev_qmp
      - name: '**output'
        type: char
      item_type: struct
      name: qemu_monitor_command_state
      pos:
        line_end: 952
        line_start: 949
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
    typedefs:
    - item_type: typedef
      name: "(*qmp_callback_t)(libxl__qmp_handler *qmp,\n                              const
        libxl__json_object *tree,\n                              void *opaque)"
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/xen/tools/libs/light/libxl_qmp.c
      type: int
    union: []
- function_names:
  - libxl__domain_suspend_init
  - libxl__domain_suspend_dispose
  - libxl__domain_suspend_device_model
  - libxl__domain_suspend
  - domain_suspend_pvcontrol_acked
  - domain_suspend_callback_common
  - domain_suspend_common_wait_guest_evtchn
  - domain_suspend_common_pvcontrol_suspending
  - domain_suspend_common_wait_guest
  - suspend_common_wait_guest_watch
  - suspend_common_wait_guest_check
  - suspend_common_wait_guest_timeout
  - domain_suspend_common_guest_suspended
  - domain_suspend_common_done
  - libxl__domain_suspend_callback
  - domain_suspend_callback_common_done
  - libxl__domain_resume_device_model_deprecated
  - libxl__domain_resume_deprecated
  - dm_resume_init
  - dm_resume_dispose
  - libxl__dm_resume
  - dm_resume_qmp_done
  - dm_resume_timeout
  - dm_resume_done
  - libxl__domain_resume
  - domain_resume_done
  source_file: /src/xen/tools/libs/light/libxl_dom_suspend.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_subkind_drbd_disk
  - cleanup_subkind_drbd_disk
  - drbd_setup
  - match_async_exec
  - match_async_exec_cb
  - drbd_teardown
  - drbd_postsuspend
  - drbd_preresume
  - drbd_preresume_async
  - checkpoint_async_call_done
  source_file: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ctl_fd
        type: int
      - name: ackwait
        type: int
      item_type: struct
      name: libxl__remus_drbd_disk
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_remus_disk_drbd.c
    typedefs: []
    union: []
- function_names:
  - test_common_setup
  - test_common_get_now
  - test_common_beforepoll
  - test_common_dopoll
  - test_common_afterpoll
  source_file: /src/xen/tools/libs/light/test_common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__estimate_madt_size
  - libxl__get_acpi_size
  - libxl__allocate_acpi_tables
  - calculate_checksum
  - make_acpi_rsdp
  - make_acpi_header
  - make_acpi_xsdt
  - make_acpi_gtdt
  - make_acpi_madt_gicc
  - make_acpi_madt_gicd
  - make_acpi_madt_gicr
  - make_acpi_madt
  - make_acpi_fadt
  - make_acpi_dsdt
  - libxl__prepare_acpi
  source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: '64'
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ACPI_MACHINE_WIDTH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: BITS_PER_LONG
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_INT64
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: int64_t
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_UINT64
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: uint64_t
    - item_type: preproc_def
      name: ACPI_OEM_ID
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: '"Xen\0\0"'
    - item_type: preproc_def
      name: ACPI_OEM_TABLE_ID
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: '"ARM\0\0\0\0"'
    - item_type: preproc_def
      name: ACPI_ASL_COMPILER_ID
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type_or_value: '"XL\0"'
    structs:
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: size_t
      item_type: struct
      name: acpitable
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type: uint8_t
    - item_type: typedef
      name: u16
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type: uint16_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type: uint32_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type: uint64_t
    - item_type: typedef
      name: s64
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/libs/light/libxl_arm_acpi.c
      type: int64_t
    union: []
- function_names:
  - libxl__logdirty_init
  - libxl__domain_common_switch_qemu_logdirty
  - domain_suspend_switch_qemu_xen_logdirty
  - switch_qemu_xen_logdirty_done
  - switch_logdirty_timeout
  - switch_logdirty_done
  - libxl__domain_suspend_common_switch_qemu_logdirty
  - domain_suspend_switch_qemu_logdirty_done
  - append_string
  - libxl__save_emulator_xenstore_data
  - libxl__domain_save
  - stream_done
  - domain_save_done
  - next_string
  - libxl__restore_emulator_xenstore_data
  source_file: /src/xen/tools/libs/light/libxl_dom_save.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_tapif_script
  - libxl__device_model_savefile
  - qemu_xen_path
  - libxl__create_qemu_logfile
  - DEFINE_USERLOOKUP_HELPER
  - libxl__domain_get_device_model_uid
  - libxl__get_reaper_uid
  - libxl__domain_device_model
  - libxl__xc_device_get_rdm
  - overlaps_rdm
  - add_rdm_entry
  - libxl__domain_device_construct_rdm
  - libxl__dm_vnc
  - dm_sdl
  - dm_keymap
  - dm_spice_options
  - libxl__detect_gfx_passthru_kind
  - qemu_disk_scsi_drive_string
  - qemu_disk_ide_drive_string
  - libxl__pre_open_qmp_socket
  - libxl__build_device_model_args_new
  - APPEND_COLO_SOCK_SERVER
  - APPEND_COLO_SOCK_CLIENT
  - libxl__build_device_model_args
  - libxl__dm_vifs_from_hvm_guest_config
  - libxl__vfb_and_vkb_from_hvm_guest_config
  - libxl__write_stub_dmargs
  - libxl__store_libxl_entry
  - dmss_init
  - dmss_dispose
  - libxl__stub_dm_name
  - libxl__spawn_stub_dm
  - spawn_stub_launch_dm
  - spawn_qmp_proxy
  - qmp_proxy_confirm
  - qmp_proxy_startup_failed
  - qmp_proxy_detached
  - qmp_proxy_spawn_outcome
  - spawn_stubdom_pvqemu_cb
  - stubdom_pvqemu_cb
  - stubdom_pvqemu_unpaused
  - stubdom_xswait_cb
  - libxl__spawn_local_dm
  - device_model_probe_startup_failed
  - device_model_probe_confirm
  - device_model_probe_detached
  - device_model_probe_cmdline
  - device_model_probe_quit
  - device_model_probe_spawn_outcome
  - device_model_launch
  - libxl__query_qemu_backend
  - device_model_confirm
  - device_model_startup_failed
  - device_model_detached
  - device_model_qmp_cb
  - device_model_spawn_outcome
  - device_model_postconfig_chardev
  - device_model_postconfig_vnc
  - device_model_postconfig_vnc_passwd
  - devise_model_postconfig_timeout
  - device_model_postconfig_done
  - libxl__spawn_qemu_xenpv_backend
  - kill_device_model
  - libxl__destroy_qemu_xenpv_backend
  - libxl__destroy_device_model
  - get_reaper_lock_and_uid
  - kill_device_model_uid_child
  - kill_device_model_uid_cb
  - libxl__need_xenpv_qemu
  - libxl__dm_active
  - libxl__dm_check_start
  source_file: /src/xen/tools/libs/light/libxl_dm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__device_vsnd_setdefault
  - libxl__device_from_vsnd
  - libxl__sample_rates_from_string
  - libxl__sample_formats_from_string
  - libxl__params_from_xenstore
  - libxl__stream_from_xenstore
  - libxl__pcm_from_xenstore
  - libxl__vsnd_from_xenstore
  - libxl__update_config_vsnd
  - libxl_device_vsnd_compare
  - libxl__device_vsnd_add
  - libxl__rates_to_str_vsnd
  - libxl__formats_to_str_vsnd
  - libxl__set_params_vsnd
  - libxl__set_streams_vsnd
  - libxl__set_pcms_vsnd
  - libxl__set_xenstore_vsnd
  - libxl__device_stream_getinfo
  - libxl__device_pcm_getinfo
  - libxl_device_vsnd_getinfo
  - libxl_devid_to_device_vsnd
  source_file: /src/xen/tools/libs/light/libxl_vsnd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PAGE_TO_MEMKB
  - libxl__domain_rename
  - libxl_domain_rename
  - libxl_domain_resume
  - domain_resume_done
  - libxl_domain_preserve
  - libxl__xcinfo2xlinfo
  - libxl_list_domain
  - libxl_domain_info
  - libxl_list_vm
  - libxl_domain_remus_start
  - remus_failover_cb
  - domain_suspend_cb
  - libxl_domain_suspend
  - domain_suspend_empty_cb
  - libxl_domain_suspend_only
  - libxl_domain_pause
  - libxl_domain_core_dump
  - libxl__domain_unpause_deprecated
  - libxl__domain_unpause
  - domain_unpause_done
  - libxl_domain_unpause
  - domain_unpause_ao_done
  - libxl__domain_pvcontrol_available
  - libxl__domain_pvcontrol_xspath
  - libxl__domain_pvcontrol_read
  - libxl__domain_pvcontrol
  - pvcontrol_acked
  - libxl_domain_shutdown
  - libxl_domain_reboot
  - pvcontrol_cb
  - domain_death_occurred
  - domain_death_xswatch_callback
  - libxl_evenable_domain_death
  - libxl__evdisable_domain_death
  - libxl_evdisable_domain_death
  - libxl_domain_destroy
  - domain_destroy_cb
  - libxl__domain_destroy
  - stubdom_destroy_callback
  - domain_destroy_callback
  - destroy_finish_check
  - libxl__destroy_domid
  - destroy_domid_pci_done
  - dm_destroy_cb
  - libxl__get_domid_reuse_timeout
  - libxl__domid_history_path
  - libxl_clear_domid_history
  - libxl__domid_history_dispose
  - libxl__open_domid_history
  - libxl__close_domid_history
  - libxl__read_recent
  - libxl__mark_domid_recent
  - libxl__is_domid_recent
  - devices_destroy_cb
  - domain_destroy_domid_cb
  - libxl__get_domid
  - libxl__resolve_domid
  - libxl_list_vcpu
  - libxl__set_vcpuonline_xenstore
  - qmp_parse_query_cpus_fast
  - qmp_parse_query_cpus
  - libxl_set_vcpuonline
  - set_vcpuonline_qmp_cpus_fast_queried
  - set_vcpuonline_qmp_cpus_queried
  - set_vcpuonline_qmp_query_cpus_parse
  - libxl_for_each_set_bit
  - set_vcpuonline_qmp_query_hotpluggable_cpus
  - set_vcpuonline_qmp_device_add_cpu
  - set_vcpuonline_qmp_add_cpu
  - set_vcpuonline_timeout
  - set_vcpuonline_done
  - domain_s3_resume
  - domain_s3_resume_done
  - libxl_send_trigger
  - libxl_vm_get_start_time
  - libxl__update_avail_vcpus_xenstore
  - libxl_retrieve_domain_configuration
  - retrieve_domain_configuration_lock_acquired
  - retrieve_domain_configuration_cpu_fast_queried
  - retrieve_domain_configuration_cpu_queried
  - retrieve_domain_configuration_timeout
  - retrieve_domain_configuration_end
  source_file: /src/xen/tools/libs/light/libxl_domain.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: timeout
        type: long
      - name: '*path'
        type: char
      - name: '*f'
        type: FILE
      - name: ts
        type: struct timespec
      item_type: struct
      name: libxl__domid_history
      pos:
        line_end: 1325
        line_start: 1320
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    - fields:
      - name: qmp
        type: libxl__ev_qmp
      - name: timeout
        type: libxl__ev_time
      - name: '*cpumap'
        type: libxl_bitmap
      - name: info
        type: libxl_dominfo
      - name: final_map
        type: libxl_bitmap
      - name: index
        type: int
      - name: '*cpu_driver'
        type: char
      item_type: struct
      name: set_vcpuonline_state
      pos:
        line_end: 1815
        line_start: 1807
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    - fields:
      - name: qmp
        type: libxl__ev_qmp
      - name: timeout
        type: libxl__ev_time
      - name: '*d_config'
        type: libxl_domain_config
      - name: devlock
        type: libxl__ev_slowlock
      - name: qemuu_cpus
        type: libxl_bitmap
      item_type: struct
      name: retrieve_domain_configuration_state
      pos:
        line_end: 2266
        line_start: 2260
        source_file: /src/xen/tools/libs/light/libxl_domain.c
    typedefs: []
    union: []
- function_names:
  - DIV_ROUNDUP
  - LIBXL__LOG
  - LIBXL__LOG_ERRNO
  - LIBXL__LOG_ERRNOVAL
  - LIBXL__LOGD
  - LIBXL__LOGD_ERRNO
  - LIBXL__LOGD_ERRNOVAL
  - ACCUMULATE_RC
  - pfn_to_paddr
  - libxl__ao_abortable_init
  - libxl__ao_abortable_isregistered
  - QMP_PARAMETERS_SPRINTF
  - QEMU_BACKEND
  - PCI_DEVFN
  - PCI_SLOT
  - PCI_FUNC
  - PRINTF_ATTRIBUTE
  - LIBXL_INIT_GC
  - libxl__gc_owner
  - libxl__gc_is_real
  - NN
  - libxl__ev_fd_init
  - libxl__ev_fd_isregistered
  - libxl__ev_time_init
  - libxl__ev_time_isregistered
  - libxl__ev_xswatch_init
  - libxl__ev_xswatch_isregistered
  - libxl__ev_evtchn_init
  - libxl__ev_evtchn_iswaiting
  - libxl__ev_child_init
  - libxl__ev_child_inuse
  - NEW_EVENT
  - LIBXL__EVENT_DISASTER
  - libxl__ev_devstate_init
  - libxl__ev_devstate_cancel
  - libxl__spawn_inuse
  - libxl__json_object_is_null
  - libxl__json_object_is_bool
  - libxl__json_object_is_string
  - libxl__json_object_is_integer
  - libxl__json_object_is_double
  - libxl__json_object_is_number
  - libxl__json_object_is_map
  - libxl__json_object_is_array
  - libxl__json_object_get_bool
  - libxl__json_object_get_string
  - libxl__json_object_get_number
  - libxl__json_object_get_map
  - libxl__json_object_get_array
  - libxl__json_object_get_integer
  - JSON
  - libxl__stubdomain_is_linux_running
  - libxl__stubdomain_is_linux
  - DEVICE_MODEL_XS_PATH
  - LIBXL_INIT_EGC
  - EGC_INIT
  - AO_CREATE
  - AO_CREATE_FAIL
  - STATE_AO_GC
  - libxl__device_disk_local_init
  - libxl__conversion_helper_inuse
  - libxl__stream_read_inuse
  - libxl__stream_write_inuse
  - LIBXL_DEFINE_DEVICE_ADD
  - LIBXL_DEFINE_DEVICES_ADD
  - LIBXL_DEFINE_DEVICE_REMOVE_EXT
  - LIBXL_DEFINE_UPDATE_DEVID
  - LIBXL_DEFINE_DEVICE_FROM_TYPE
  - LIBXL_DEFINE_DEVID_TO_DEVICE
  - LIBXL_DEFINE_DEVICE_REMOVE
  - LIBXL_DEFINE_DEVICE_REMOVE_CUSTOM
  - LIBXL_DEFINE_DEVICE_SAFE_REMOVE
  - LIBXL_DEFINE_DEVICE_LIST
  - DEFINE_DEVICE_TYPE_STRUCT
  - libxl__device_type_get_ptr
  - libxl__device_type_get_elem
  - libxl__device_type_get_num
  - libxl__save_helper_inuse
  - GC_INIT
  - ARRAY_SIZE_OK
  - GCNEW
  - GCNEW_ARRAY
  - GCREALLOC_ARRAY
  - GCSPRINTF
  - LOG
  - LOGE
  - LOGEV
  - LOGD
  - LOGED
  - LOGEVD
  - libxl__ctx_lock
  - libxl__ctx_unlock
  - libxl__numa_candidate_init
  - libxl__numa_candidate_alloc
  - libxl__numa_candidate_dispose
  - libxl__numa_candidate_get_nodemap
  - libxl__numa_candidate_put_nodemap
  - libxl__defbool_is_default
  - LIBXL_TAILQ_INSERT_SORTED
  - CTYPE
  - libxl__hwcap_is_default
  - libxl__string_list_is_empty
  - libxl__key_value_list_is_empty
  - libxl__get_targetmem_fudge
  - COMPARE_DEVID
  - COMPARE_DISK
  - COMPARE_PCI
  - COMPARE_USB
  - COMPARE_USBCTRL
  - libxl__acpi_defbool_val
  - libxl__timer_mode_is_default
  - libxl__string_is_default
  - libxl__qemu_qmp_path
  source_file: /src/xen/tools/libs/light/libxl_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBXL_EXTERNAL_CALLERS_ONLY
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: __attribute__((warning("may not be called from within libxl")))
    - item_type: preproc_def
      name: _hidden
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: __attribute__((visibility("hidden")))
    - item_type: preproc_def
      name: _protected
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: __attribute__((visibility("protected")))
    - item_type: preproc_def
      name: LIBXL_INIT_TIMEOUT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '10'
    - item_type: preproc_def
      name: LIBXL_DESTROY_TIMEOUT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '10'
    - item_type: preproc_def
      name: LIBXL_HOTPLUG_TIMEOUT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '40'
    - item_type: preproc_def
      name: LIBXL_DEVICE_MODEL_START_TIMEOUT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '60'
    - item_type: preproc_def
      name: LIBXL_DEVICE_MODEL_SAVE_FILE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: 'XEN_LIB_DIR "/qemu-save" '
    - item_type: preproc_def
      name: LIBXL_DEVICE_MODEL_RESTORE_FILE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: 'XEN_LIB_DIR "/qemu-resume" '
    - item_type: preproc_def
      name: LIBXL_QMP_CMD_TIMEOUT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '10'
    - item_type: preproc_def
      name: LIBXL_STUBDOM_START_TIMEOUT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '30'
    - item_type: preproc_def
      name: LIBXL_QEMU_BODGE_TIMEOUT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LIBXL_BOOTLOADER_TIMEOUT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '120'
    - item_type: preproc_def
      name: LIBXL_XENCONSOLE_LIMIT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '1048576'
    - item_type: preproc_def
      name: LIBXL_XENCONSOLE_PROTOCOL
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"vt100"'
    - item_type: preproc_def
      name: LIBXL_MAXMEM_CONSTANT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: LIBXL_PV_EXTRA_MEMORY
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: LIBXL_HVM_EXTRA_MEMORY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: LIBXL_MIN_DOM0_MEM
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (128*1024)
    - item_type: preproc_def
      name: LIBXL_INVALID_GFN
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (~(uint64_t)0)
    - item_type: preproc_def
      name: LIBXL_VGA_HOLE_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: LIBXL_ALTP2M_COUNT_DEFAULT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_TOOLSTACK_DOMID
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: QEMU_SIGNATURE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"DeviceModelRecord0002"'
    - item_type: preproc_def
      name: STUBDOM_CONSOLE_LOGGING
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STUBDOM_CONSOLE_SAVE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STUBDOM_CONSOLE_RESTORE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STUBDOM_CONSOLE_SERIAL
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STUBDOM_SPECIAL_CONSOLES
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LIBXL_LINUX_STUBDOM_MEM
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '128'
    - item_type: preproc_def
      name: LIBXL_STUBDOM_EMPTY_CDROM
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: 'XEN_RUN_DIR "/empty-cdrom" '
    - item_type: preproc_def
      name: TAP_DEVICE_SUFFIX
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"-emu"'
    - item_type: preproc_def
      name: DOMID_XS_PATH
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"domid"'
    - item_type: preproc_def
      name: PVSHIM_BASENAME
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"xen-shim"'
    - item_type: preproc_def
      name: PVSHIM_CMDLINE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"pv-shim console=xen,pv"'
    - item_type: preproc_def
      name: VIRTIO_DEVICE_TYPE_GENERIC
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"virtio,device"'
    - item_type: preproc_def
      name: VIRTIO_DEVICE_TYPE_I2C
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"virtio,device22"'
    - item_type: preproc_def
      name: VIRTIO_DEVICE_TYPE_GPIO
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"virtio,device29"'
    - item_type: preproc_def
      name: XC_PCI_BDF
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"0x%x, 0x%x, 0x%x, 0x%x"'
    - item_type: preproc_def
      name: AUTO_PHP_SLOT
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: PROC_PCI_NUM_RESOURCES
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PCI_BAR_IO
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: LIBXL__AO_MAGIC
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: 0xA0FACE00ul
    - item_type: preproc_def
      name: LIBXL__AO_MAGIC_DESTROYED
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: 0xA0DEAD00ul
    - item_type: preproc_def
      name: NN1
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: __attribute__((nonnull(1)))
    - item_type: preproc_def
      name: LIBXL__LOG_DEBUG
      pos:
        line_end: 1984
        line_start: 1983
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: XTL_DEBUG
    - item_type: preproc_def
      name: LIBXL__LOG_VERBOSE
      pos:
        line_end: 1985
        line_start: 1984
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: XTL_VERBOSE
    - item_type: preproc_def
      name: LIBXL__LOG_INFO
      pos:
        line_end: 1986
        line_start: 1985
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: XTL_INFO
    - item_type: preproc_def
      name: LIBXL__LOG_WARNING
      pos:
        line_end: 1987
        line_start: 1986
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: XTL_WARN
    - item_type: preproc_def
      name: LIBXL__LOG_ERROR
      pos:
        line_end: 1988
        line_start: 1987
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: XTL_ERROR
    - item_type: preproc_def
      name: EGC_GC
      pos:
        line_end: 2330
        line_start: 2328
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: libxl__gc *const gc __attribute__((unused)) = &egc->gc
    - item_type: preproc_def
      name: CTX_UNLOCK_EGC_FREE
      pos:
        line_end: 2360
        line_start: 2355
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: "do{                        \\\n        libxl__egc_ao_cleanup_1_baton(&egc->gc);
        \       \\\n        CTX_UNLOCK;                                     \\\n        libxl__egc_cleanup_2_ul_cb_gc(egc);
        \            \\\n    }while(0)"
    - item_type: preproc_def
      name: AO_INPROGRESS
      pos:
        line_end: 2464
        line_start: 2462
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: "({                                        \\\n        libxl_ctx
        *ao__ctx = libxl__gc_owner(&ao->gc);          \\\n        "
    - item_type: preproc_def
      name: AO_GC
      pos:
        line_end: 2493
        line_start: 2491
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: libxl__gc *const gc __attribute__((unused)) = &ao->gc
    - item_type: preproc_def
      name: FILLZERO
      pos:
        line_end: 4276
        line_start: 4275
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: LIBXL_FILLZERO
    - item_type: preproc_def
      name: GC_FREE
      pos:
        line_end: 4286
        line_start: 4285
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: libxl__free_all(gc)
    - item_type: preproc_def
      name: CTX
      pos:
        line_end: 4287
        line_start: 4286
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: libxl__gc_owner(gc)
    - item_type: preproc_def
      name: NOGC
      pos:
        line_end: 4288
        line_start: 4287
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '(&CTX->nogc_gc) '
    - item_type: preproc_def
      name: CTX_LOCK
      pos:
        line_end: 4388
        line_start: 4387
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (libxl__ctx_lock(CTX))
    - item_type: preproc_def
      name: CTX_UNLOCK
      pos:
        line_end: 4389
        line_start: 4388
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (libxl__ctx_unlock(CTX))
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_DEFAULT
      pos:
        line_end: 4540
        line_start: 4539
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (0)
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_FALSE
      pos:
        line_end: 4541
        line_start: 4540
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_TRUE
      pos:
        line_end: 4542
        line_start: 4541
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: (1)
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_STR_DEFAULT
      pos:
        line_end: 4543
        line_start: 4542
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"<default>"'
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_STR_FALSE
      pos:
        line_end: 4544
        line_start: 4543
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"False"'
    - item_type: preproc_def
      name: LIBXL__DEFBOOL_STR_TRUE
      pos:
        line_end: 4545
        line_start: 4544
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"True"'
    - item_type: preproc_def
      name: LIBXL_QEMU_USER_PREFIX
      pos:
        line_end: 4749
        line_start: 4748
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '"xen-qemuuser"'
    - item_type: preproc_def
      name: LIBXL_QEMU_USER_SHARED
      pos:
        line_end: 4750
        line_start: 4749
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: LIBXL_QEMU_USER_PREFIX"-shared"
    - item_type: preproc_def
      name: LIBXL_QEMU_USER_RANGE_BASE
      pos:
        line_end: 4751
        line_start: 4750
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: LIBXL_QEMU_USER_PREFIX"-range-base"
    - item_type: preproc_def
      name: LIBXL_QEMU_USER_REAPER
      pos:
        line_end: 4752
        line_start: 4751
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: LIBXL_QEMU_USER_PREFIX"-reaper"
    - item_type: preproc_def
      name: LIBXL_DOMID_REUSE_TIMEOUT
      pos:
        line_end: 4818
        line_start: 4817
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type_or_value: '60'
    structs:
    - fields:
      - name: fd
        type: int
      - name: events
        type: short
      - name: '*func'
        type: libxl__ev_fd_callback
      - name: (libxl__ev_fd)
        type: XEN_LIST_ENTRY
      - name: '*nexus'
        type: libxl__osevent_hook_nexus
      item_type: struct
      name: libxl__ev_fd
      pos:
        line_end: 248
        line_start: 239
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*callback'
        type: libxl__ao_abortable_callback
      - name: registered
        type: bool
      - name: (libxl__ao_abortable)
        type: XEN_LIST_ENTRY
      item_type: struct
      name: libxl__ao_abortable
      pos:
        line_end: 274
        line_start: 255
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*func'
        type: libxl__ev_time_callback
      - name: infinite
        type: int
      - name: (libxl__ev_time)
        type: XEN_TAILQ_ENTRY
      - name: abs
        type: struct timeval
      - name: '*nexus'
        type: libxl__osevent_hook_nexus
      - name: abrt
        type: libxl__ao_abortable
      item_type: struct
      name: libxl__ev_time
      pos:
        line_end: 301
        line_start: 291
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*path'
        type: char
      - name: '*callback'
        type: libxl__ev_xswatch_callback
      - name: slotnum
        type: int
      - name: counterval
        type: uint32_t
      item_type: struct
      name: libxl__ev_xswatch
      pos:
        line_end: 314
        line_start: 306
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*callback'
        type: libxl__ev_evtchn_callback
      - name: port
        type: int
      - name: waiting
        type: bool
      - name: (libxl__ev_evtchn)
        type: XEN_LIST_ENTRY
      item_type: struct
      name: libxl__ev_evtchn
      pos:
        line_end: 325
        line_start: 318
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields: []
      item_type: struct
      name: libxl__ev_watch_slot
      pos:
        line_end: 343
        line_start: 341
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: pid
        type: pid_t
      - name: '*callback'
        type: libxl__ev_child_callback
      item_type: struct
      name: libxl__ev_child
      pos:
        line_end: 359
        line_start: 352
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: (*callback)(libxl__egc *, libxl__ev_immediate *)
        type: void
      - name: (libxl__ev_immediate)
        type: XEN_STAILQ_ENTRY
      item_type: struct
      name: libxl__ev_immediate
      pos:
        line_end: 372
        line_start: 367
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: libxl_domid
      - name: (*callback)(libxl__egc *, libxl__ev_slowlock *, int rc)
        type: void
      - name: child
        type: libxl__ev_child
      - name: '*userdata_userid'
        type: char
      - name: '*path'
        type: char
      - name: fd
        type: int
      - name: held
        type: bool
      item_type: struct
      name: libxl__ev_slowlock
      pos:
        line_end: 424
        line_start: 413
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: libxl_domid
      - name: '*callback'
        type: libxl__ev_qmp_callback
      - name: payload_fd
        type: int
      - name: qemu_version
        type: "struct {\n        int major;\n        int minor;\n        int micro;\n
          \   }"
      - name: '*cfd'
        type: libxl__carefd
      - name: efd
        type: libxl__ev_fd
      - name: state
        type: libxl__qmp_state
      - name: lock
        type: libxl__ev_slowlock
      - name: ei
        type: libxl__ev_immediate
      - name: rc
        type: int
      - name: id
        type: int
      - name: next_id
        type: int
      - name: '*rx_buf'
        type: char
      - name: rx_buf_size
        type: size_t
      - name: rx_buf_used
        type: size_t
      - name: '*tx_buf'
        type: char
      - name: tx_buf_len
        type: size_t
      - name: tx_buf_off
        type: size_t
      - name: '*msg'
        type: char
      - name: msg_id
        type: int
      item_type: struct
      name: libxl__ev_qmp
      pos:
        line_end: 554
        line_start: 515
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: domid
        type: uint32_t
      - name: shutdown_reported
        type: unsigned
      - name: (libxl_evgen_domain_death)
        type: XEN_TAILQ_ENTRY
      - name: user
        type: libxl_ev_user
      item_type: struct
      name: libxl__evgen_domain_death
      pos:
        line_end: 586
        line_start: 580
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: watch
        type: libxl__ev_xswatch
      - name: domid
        type: uint32_t
      - name: (libxl_evgen_disk_eject)
        type: XEN_LIST_ENTRY
      - name: user
        type: libxl_ev_user
      - name: '*vdev'
        type: char
      item_type: struct
      name: libxl__evgen_disk_eject
      pos:
        line_end: 596
        line_start: 590
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: (libxl__poller)
        type: XEN_LIST_ENTRY
      - name: '*fd_polls'
        type: struct pollfd
      - name: fd_polls_allocd
        type: int
      - name: fd_rindices_allocd
        type: int
      - name: (*fd_rindices)[3]
        type: int
      - name: wakeup_pipe[2]
        type: int
      - name: pipe_nonempty
        type: bool
      - name: (libxl__poller)
        type: XEN_LIST_ENTRY
      - name: fds_deregistered
        type: bool
      - name: osevents_added
        type: bool
      item_type: struct
      name: libxl__poller
      pos:
        line_end: 657
        line_start: 601
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: alloc_maxsize
        type: int
      - name: '**alloc_ptrs'
        type: void
      - name: '*owner'
        type: libxl_ctx
      item_type: struct
      name: libxl__gc
      pos:
        line_end: 664
        line_start: 659
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: backend_devid
        type: uint32_t
      - name: backend_domid
        type: uint32_t
      - name: devid
        type: uint32_t
      - name: domid
        type: uint32_t
      - name: backend_kind
        type: libxl__device_kind
      - name: kind
        type: libxl__device_kind
      item_type: struct
      name: libxl__device
      pos:
        line_end: 749
        line_start: 742
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: (libxl__aop_occurred)
        type: XEN_TAILQ_ENTRY
      - name: '*ao'
        type: libxl__ao
      - name: '*ev'
        type: libxl_event
      - name: '*how'
        type: libxl_asyncprogress_how
      item_type: struct
      name: libxl__aop_occurred
      pos:
        line_end: 792
        line_start: 780
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '* path'
        type: char
      - name: mapped
        type: int
      - name: '* data'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: libxl__file_reference
      pos:
        line_end: 1355
        line_start: 1346
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: store_port
        type: uint32_t
      - name: store_domid
        type: uint32_t
      - name: store_mfn
        type: unsigned long
      - name: console_port
        type: uint32_t
      - name: console_domid
        type: uint32_t
      - name: console_mfn
        type: unsigned long
      - name: '*console_tty'
        type: char
      - name: '*saved_state'
        type: char
      - name: dm_monitor_fd
        type: int
      - name: pv_kernel
        type: libxl__file_reference
      - name: pv_ramdisk
        type: libxl__file_reference
      - name: '*shim_path'
        type: char
      - name: '*shim_cmdline'
        type: char
      - name: '*pv_cmdline'
        type: char
      - name: '*dm_runas'
        type: char
      - name: '*vmemranges'
        type: xen_vmemrange_t
      - name: num_vmemranges
        type: uint32_t
      - name: vuart_gfn
        type: xen_pfn_t
      - name: vuart_port
        type: evtchn_port_t
      - name: clock_frequency
        type: uint32_t
      - name: restore
        type: bool
      - name: soft_reset
        type: bool
      item_type: struct
      name: libxl__domain_build_state
      pos:
        line_end: 1408
        line_start: 1368
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: libxl_domid
      - name: (*callback)(libxl__egc *, libxl__dm_resume_state *, int rc)
        type: void
      - name: "(*dm_resumed_callback)(libxl__egc *,\n                                libxl__dm_resume_state
          *, int rc)"
        type: void
      - name: suspend_cancel
        type: bool
      - name: qmp
        type: libxl__ev_qmp
      - name: time
        type: libxl__ev_time
      - name: watch
        type: libxl__ev_xswatch
      item_type: struct
      name: libxl__dm_resume_state
      pos:
        line_end: 1475
        line_start: 1459
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*what'
        type: char
      - name: '*path'
        type: char
      - name: timeout_ms
        type: int
      - name: '*callback'
        type: libxl__xswait_callback
      - name: time_ev
        type: libxl__ev_time
      - name: watch_ev
        type: libxl__ev_xswatch
      item_type: struct
      name: libxl__xswait_state
      pos:
        line_end: 1629
        line_start: 1619
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: wanted
        type: int
      - name: '*callback'
        type: libxl__ev_devstate_callback
      - name: w
        type: libxl__xswait_state
      item_type: struct
      name: libxl__ev_devstate
      pos:
        line_end: 1657
        line_start: 1650
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*what'
        type: char
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl___domaindeathcheck_callback
      - name: abrt
        type: libxl__ao_abortable
      - name: watch
        type: libxl__ev_xswatch
      item_type: struct
      name: libxl__domaindeathcheck
      pos:
        line_end: 1694
        line_start: 1686
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*what'
        type: char
      - name: '*xspath'
        type: char
      - name: '*pidpath'
        type: char
      - name: timeout_ms
        type: int
      - name: '*midproc_cb'
        type: libxl__spawn_midproc_cb
      - name: '*failure_cb'
        type: libxl__spawn_failure_cb
      - name: '*confirm_cb'
        type: libxl__spawn_confirm_cb
      - name: '*detached_cb'
        type: libxl__spawn_detached_cb
      - name: detaching
        type: int
      - name: rc
        type: int
      - name: mid
        type: libxl__ev_child
      - name: xswait
        type: libxl__xswait_state
      item_type: struct
      name: libxl__spawn_state
      pos:
        line_end: 1901
        line_start: 1884
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*buffer'
        type: char
      - name: size
        type: unsigned int
      - name: clear
        type: unsigned int
      - name: incremental
        type: unsigned int
      - name: index
        type: unsigned int
      item_type: struct
      name: libxl__xen_console_reader
      pos:
        line_end: 2018
        line_start: 2012
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: type
        type: libxl__json_node_type
      - name: u
        type: "union {\n        bool b;\n        long long i;\n        double d;\n
          \       char *string;\n        /* List of libxl__json_object */\n        flexarray_t
          *array;\n        /* List of libxl__json_map_node */\n        flexarray_t
          *map;\n    }"
      - name: '*parent'
        type: struct libxl__json_object
      item_type: struct
      name: libxl__json_object
      pos:
        line_end: 2130
        line_start: 2117
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*map_key'
        type: char
      - name: '*obj'
        type: libxl__json_object
      item_type: struct
      name: libxl__json_map_node
      pos:
        line_end: 2143
        line_start: 2140
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*what'
        type: char
      - name: timeout_ms
        type: int
      - name: '*callback'
        type: libxl__async_exec_callback
      - name: stdfds[3]
        type: int
      - name: '**args'
        type: char
      - name: '**env'
        type: char
      - name: time
        type: libxl__ev_time
      - name: child
        type: libxl__ev_child
      - name: rc
        type: int
      item_type: struct
      name: libxl__async_exec_state
      pos:
        line_end: 2652
        line_start: 2637
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: flag
        type: "enum {\n        LIBXL__FORCE_AUTO, /* Re-execute with FORCE_ON if op
          times out */\n        LIBXL__FORCE_ON,\n        LIBXL__FORCE_OFF,\n    }"
      item_type: struct
      name: libxl__force
      pos:
        line_end: 2696
        line_start: 2690
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: action
        type: libxl__device_action
      - name: '*dev'
        type: libxl__device
      - name: force
        type: libxl__force
      - name: '*callback'
        type: libxl__device_callback
      - name: rc
        type: int
      - name: active
        type: int
      - name: '*multidev'
        type: libxl__multidev
      - name: backend_ds
        type: libxl__ev_devstate
      - name: timeout
        type: libxl__ev_time
      - name: xswait
        type: libxl__xswait_state
      - name: num_exec
        type: int
      - name: aes
        type: libxl__async_exec_state
      - name: update_json
        type: bool
      - name: child
        type: libxl__ev_child
      - name: qmp
        type: libxl__ev_qmp
      - name: '*device_config'
        type: void
      - name: '*device_type'
        type: libxl__device_type
      item_type: struct
      name: libxl__ao_device
      pos:
        line_end: 2730
        line_start: 2698
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*callback'
        type: libxl__devices_callback
      - name: '*ao'
        type: libxl__ao
      - name: '**array'
        type: libxl__ao_device
      - name: used
        type: int
      - name: '*preparation'
        type: libxl__ao_device
      item_type: struct
      name: libxl__multidev
      pos:
        line_end: 2793
        line_start: 2785
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*in_disk'
        type: libxl_device_disk
      - name: disk
        type: libxl_device_disk
      - name: '*blkdev_start'
        type: char
      - name: '*callback'
        type: libxl__disk_local_state_callback
      - name: '*diskpath'
        type: char
      - name: aodev
        type: libxl__ao_device
      - name: rc
        type: int
      item_type: struct
      name: libxl__disk_local_state
      pos:
        line_end: 3031
        line_start: 3019
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: (libxl__datacopier_buf)
        type: XEN_TAILQ_ENTRY
      - name: used
        type: int
      - name: buf[1000]
        type: char
      item_type: struct
      name: libxl__datacopier_buf
      pos:
        line_end: 3100
        line_start: 3095
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: readfd
        type: int
      - name: maxsz
        type: ssize_t
      - name: bytes_to_read
        type: ssize_t
      - name: '*copywhat'
        type: char
      - name: '*log'
        type: FILE
      - name: '*callback'
        type: libxl__datacopier_callback
      - name: '*callback_pollhup'
        type: libxl__datacopier_callback
      - name: '*readbuf'
        type: void
      - name: abrt
        type: libxl__ao_abortable
      - name: toread
        type: libxl__ev_fd
      - name: used
        type: ssize_t
      item_type: struct
      name: libxl__datacopier_state
      pos:
        line_end: 3120
        line_start: 3102
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: a
        type: libxl__srm_save_autogen_callbacks
      item_type: struct
      name: libxl__srm_save_callbacks
      pos:
        line_end: 3137
        line_start: 3135
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: a
        type: libxl__srm_restore_autogen_callbacks
      item_type: struct
      name: libxl__srm_restore_callbacks
      pos:
        line_end: 3141
        line_start: 3139
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: callbacks
        type: "union {\n        libxl__srm_save_callbacks save;\n        libxl__srm_restore_callbacks
          restore;\n    }"
      - name: (*recv_callback)(const unsigned char *msg, uint32_t len, void *user)
        type: int
      - name: "(*completion_callback)(libxl__egc *egc, void *caller_state,\n                                int
          rc, int retval, int errnoval)"
        type: void
      - name: '*caller_state'
        type: void
      - name: need_results
        type: int
      - name: rc
        type: int
      - name: completed
        type: int
      - name: retval
        type: int
      - name: abrt
        type: libxl__ao_abortable
      - name: '*pipes[2]'
        type: libxl__carefd
      - name: readable
        type: libxl__ev_fd
      - name: child
        type: libxl__ev_child
      - name: '*stdin_what'
        type: char
      - name: '*egc'
        type: libxl__egc
      item_type: struct
      name: libxl__save_helper_state
      pos:
        line_end: 3173
        line_start: 3145
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: kind
        type: libxl__device_kind
      - name: (*postsuspend)(libxl__egc *egc, libxl__checkpoint_device *dev)
        type: void
      - name: (*preresume)(libxl__egc *egc, libxl__checkpoint_device *dev)
        type: void
      - name: (*commit)(libxl__egc *egc, libxl__checkpoint_device *dev)
        type: void
      - name: (*setup)(libxl__egc *egc, libxl__checkpoint_device *dev)
        type: void
      - name: (*teardown)(libxl__egc *egc, libxl__checkpoint_device *dev)
        type: void
      item_type: struct
      name: libxl__checkpoint_device_instance_ops
      pos:
        line_end: 3253
        line_start: 3223
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl__checkpoint_callback
      - name: '*concrete_data'
        type: void
      - name: device_kind_flags
        type: int
      - name: '**ops'
        type: libxl__checkpoint_device_instance_ops
      - name: num_devices
        type: int
      - name: '**devs'
        type: libxl__checkpoint_device
      - name: '*nics'
        type: libxl_device_nic
      - name: num_nics
        type: int
      - name: '*disks'
        type: libxl_device_disk
      - name: num_disks
        type: int
      - name: multidev
        type: libxl__multidev
      item_type: struct
      name: libxl__checkpoint_devices_state
      pos:
        line_end: 3299
        line_start: 3269
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: matched
        type: bool
      - name: '*backend_dev'
        type: void
      - name: kind
        type: libxl__device_kind
      - name: '*cds'
        type: libxl__checkpoint_devices_state
      - name: aodev
        type: libxl__ao_device
      - name: ops_index
        type: int
      - name: '*ops'
        type: libxl__checkpoint_device_instance_ops
      - name: '*concrete_data'
        type: void
      item_type: struct
      name: libxl__checkpoint_device
      pos:
        line_end: 3333
        line_start: 3305
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: checkpoint_timeout
        type: libxl__ev_time
      - name: interval
        type: int
      - name: '*netbufscript'
        type: char
      - name: '*nlsock'
        type: struct nl_sock
      - name: '*qdisc_cache'
        type: struct nl_cache
      - name: '*drbd_probe_script'
        type: char
      item_type: struct
      name: libxl__remus_state
      pos:
        line_end: 3362
        line_start: 3349
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: legacy_fd
        type: int
      - name: hvm
        type: bool
      - name: '*v2_carefd'
        type: libxl__carefd
      - name: "(*completion_callback)(\n        libxl__egc *egc, libxl__conversion_helper_state
          *chs, int rc)"
        type: void
      - name: rc
        type: int
      - name: abrt
        type: libxl__ao_abortable
      - name: child
        type: libxl__ev_child
      item_type: struct
      name: libxl__conversion_helper_state
      pos:
        line_end: 3382
        line_start: 3368
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: hdr
        type: libxl__sr_rec_hdr
      - name: '*body'
        type: void
      item_type: struct
      name: libxl__sr_record_buf
      pos:
        line_end: 3402
        line_start: 3397
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*dcs'
        type: libxl__domain_create_state
      - name: fd
        type: int
      - name: legacy
        type: bool
      - name: back_channel
        type: bool
      - name: "(*completion_callback)(libxl__egc *egc,\n                                libxl__stream_read_state
          *srs,\n                                int rc)"
        type: void
      - name: "(*checkpoint_callback)(libxl__egc *egc,\n                                libxl__stream_read_state
          *srs,\n                                int rc)"
        type: void
      - name: rc
        type: int
      - name: running
        type: bool
      - name: in_checkpoint
        type: bool
      - name: sync_teardown
        type: bool
      - name: in_checkpoint_state
        type: bool
      - name: shs
        type: libxl__save_helper_state
      - name: chs
        type: libxl__conversion_helper_state
      - name: dc
        type: libxl__datacopier_state
      - name: hdr
        type: libxl__sr_hdr
      - name: (, libxl__sr_record_buf)
        type: XEN_STAILQ_HEAD
      - name: phase
        type: "enum {\n        SRS_PHASE_NORMAL,\n        SRS_PHASE_BUFFERING,\n        SRS_PHASE_UNBUFFERING,\n
          \   }"
      - name: recursion_guard
        type: bool
      - name: '*incoming_record'
        type: libxl__sr_record_buf
      - name: emu_dc
        type: libxl__datacopier_state
      - name: '*emu_carefd'
        type: libxl__carefd
      item_type: struct
      name: libxl__stream_read_state
      pos:
        line_end: 3443
        line_start: 3404
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*dss'
        type: libxl__domain_save_state
      - name: fd
        type: int
      - name: back_channel
        type: bool
      - name: "(*completion_callback)(libxl__egc *egc,\n                                libxl__stream_write_state
          *sws,\n                                int rc)"
        type: void
      - name: "(*checkpoint_callback)(libxl__egc *egc,\n                                libxl__stream_write_state
          *sws,\n                                int rc)"
        type: void
      - name: rc
        type: int
      - name: running
        type: bool
      - name: in_checkpoint
        type: bool
      - name: sync_teardown
        type: bool
      - name: in_checkpoint_state
        type: bool
      - name: shs
        type: libxl__save_helper_state
      - name: dc
        type: libxl__datacopier_state
      - name: record_done_callback
        type: sws_record_done_cb
      - name: device_model_version
        type: libxl_device_model_version
      - name: emu_dc
        type: libxl__datacopier_state
      - name: '*emu_carefd'
        type: libxl__carefd
      - name: emu_rec_hdr
        type: libxl__sr_rec_hdr
      - name: emu_sub_hdr
        type: libxl__sr_emulator_hdr
      - name: '*emu_body'
        type: void
      item_type: struct
      name: libxl__stream_write_state
      pos:
        line_end: 3516
        line_start: 3483
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: "(*callback)(libxl__egc *egc, struct libxl__logdirty_switch *lds,\n
          \                    int rc)"
        type: void
      - name: '*cmd'
        type: char
      - name: '*cmd_path'
        type: char
      - name: '*ret_path'
        type: char
      - name: watch
        type: libxl__ev_xswatch
      - name: timeout
        type: libxl__ev_time
      - name: qmp
        type: libxl__ev_qmp
      item_type: struct
      name: libxl__logdirty_switch
      pos:
        line_end: 3549
        line_start: 3537
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: live
        type: bool
      - name: type
        type: libxl_domain_type
      - name: guest_evtchn
        type: libxl__ev_evtchn
      - name: guest_evtchn_lockfd
        type: int
      - name: guest_responded
        type: int
      - name: pvcontrol
        type: libxl__xswait_state
      - name: guest_watch
        type: libxl__ev_xswatch
      - name: guest_timeout
        type: libxl__ev_time
      - name: qmp
        type: libxl__ev_qmp
      - name: '*dm_savefile'
        type: char
      - name: "(*callback_device_model_done)(libxl__egc*,\n                              struct
          libxl__domain_suspend_state*, int rc)"
        type: void
      - name: "(*callback_common_done)(libxl__egc*,\n                                 struct
          libxl__domain_suspend_state*, int ok)"
        type: void
      item_type: struct
      name: libxl__domain_suspend_state
      pos:
        line_end: 3576
        line_start: 3553
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*callback'
        type: libxl__domain_save_cb
      - name: domid
        type: uint32_t
      - name: fd
        type: int
      - name: fdfl
        type: int
      - name: recv_fd
        type: int
      - name: type
        type: libxl_domain_type
      - name: live
        type: int
      - name: debug
        type: int
      - name: checkpointed_stream
        type: int
      - name: '*remus'
        type: libxl_domain_remus_info
      - name: rc
        type: int
      - name: xcflags
        type: int
      - name: dsps
        type: libxl__domain_suspend_state
      - name: cds
        type: libxl__checkpoint_devices_state
      - name: sws
        type: libxl__stream_write_state
      - name: logdirty
        type: libxl__logdirty_switch
      item_type: struct
      name: libxl__domain_save_state
      pos:
        line_end: 3615
        line_start: 3588
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*callback'
        type: libxl__openpty_callback
      - name: count
        type: int
      - name: '*results'
        type: libxl__openpty_result
      - name: rc
        type: int
      - name: child
        type: libxl__ev_child
      item_type: struct
      name: libxl__openpty_state
      pos:
        line_end: 3643
        line_start: 3633
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*master'
        type: libxl__carefd
      item_type: struct
      name: libxl__openpty_result
      pos:
        line_end: 3647
        line_start: 3645
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*callback'
        type: libxl__run_bootloader_callback
      - name: '*console_available'
        type: libxl__bootloader_console_callback
      - name: '*info'
        type: libxl_domain_build_info
      - name: '*disk'
        type: libxl_device_disk
      - name: dls
        type: libxl__disk_local_state
      - name: domid
        type: uint32_t
      - name: '*kernel'
        type: libxl__file_reference
      - name: '*cmdline'
        type: char
      - name: '*outputpath'
        type: char
      - name: openpty
        type: libxl__openpty_state
      - name: ptys[2]
        type: libxl__openpty_result
      - name: child
        type: libxl__ev_child
      - name: time
        type: libxl__ev_time
      - name: deathcheck
        type: libxl__domaindeathcheck
      - name: nargs
        type: int
      - name: '**args'
        type: char
      - name: keystrokes
        type: libxl__datacopier_state
      - name: rc
        type: int
      item_type: struct
      name: libxl__bootloader_state
      pos:
        line_end: 3698
        line_start: 3662
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: type
        type: libxl__device_kind
      - name: skip_attach
        type: int
      - name: ptr_offset
        type: int
      - name: num_offset
        type: int
      - name: dev_elem_size
        type: int
      - name: add
        type: device_add_fn_t
      - name: set_default
        type: device_set_default_fn_t
      - name: to_device
        type: device_to_device_fn_t
      - name: init
        type: device_init_fn_t
      - name: copy
        type: device_copy_fn_t
      - name: dispose
        type: device_dispose_fn_t
      - name: compare
        type: device_compare_fn_t
      - name: merge
        type: device_merge_fn_t
      - name: dm_needed
        type: device_dm_needed_fn_t
      - name: update_config
        type: device_update_config_fn_t
      - name: update_devid
        type: device_update_devid_fn_t
      - name: get_num
        type: device_get_num_fn_t
      - name: get_path
        type: device_get_path_fn_t
      - name: from_xenstore
        type: device_from_xenstore_fn_t
      - name: set_xenstore_config
        type: device_set_xenstore_config_fn_t
      item_type: struct
      name: libxl__device_type
      pos:
        line_end: 3909
        line_start: 3888
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl__devices_remove_callback
      - name: force
        type: libxl__force
      - name: multidev
        type: libxl__multidev
      - name: num_devices
        type: int
      item_type: struct
      name: libxl__devices_remove_state
      pos:
        line_end: 4011
        line_start: 4002
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl__devicemodel_destroy_cb
      - name: destroyer
        type: libxl__ev_child
      - name: rc
        type: int
      item_type: struct
      name: libxl__destroy_devicemodel_state
      pos:
        line_end: 4021
        line_start: 4013
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl__domid_destroy_cb
      - name: drs
        type: libxl__devices_remove_state
      - name: ddms
        type: libxl__destroy_devicemodel_state
      - name: destroyer
        type: libxl__ev_child
      - name: soft_reset
        type: bool
      - name: multidev
        type: libxl__multidev
      item_type: struct
      name: libxl__destroy_domid_state
      pos:
        line_end: 4034
        line_start: 4023
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: domid
        type: uint32_t
      - name: '*callback'
        type: libxl__domain_destroy_cb
      - name: rc
        type: int
      - name: stubdomid
        type: uint32_t
      - name: stubdom
        type: libxl__destroy_domid_state
      - name: stubdom_finished
        type: int
      - name: domain
        type: libxl__destroy_domid_state
      - name: domain_finished
        type: int
      - name: soft_reset
        type: bool
      item_type: struct
      name: libxl__domain_destroy_state
      pos:
        line_end: 4049
        line_start: 4036
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: have_runwith_chroot
        type: bool
      - name: have_runwith_user
        type: bool
      item_type: struct
      name: libxl__qemu_available_opts
      pos:
        line_end: 4096
        line_start: 4093
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: spawn
        type: libxl__spawn_state
      - name: qmp
        type: libxl__ev_qmp
      - name: timeout
        type: libxl__ev_time
      - name: dmrs
        type: libxl__dm_resume_state
      - name: qemu_opts
        type: libxl__qemu_available_opts
      - name: '*dm'
        type: char
      - name: guest_domid
        type: uint32_t
      - name: '*guest_config'
        type: libxl_domain_config
      - name: '*build_state'
        type: libxl__domain_build_state
      - name: '*callback'
        type: libxl__dm_spawn_cb
      item_type: struct
      name: libxl__dm_spawn_state
      pos:
        line_end: 4116
        line_start: 4103
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: dm
        type: libxl__dm_spawn_state
      - name: '*callback'
        type: libxl__dm_spawn_cb
      - name: dm_config
        type: libxl_domain_config
      - name: dm_state
        type: libxl__domain_build_state
      - name: pvqemu
        type: libxl__dm_spawn_state
      - name: dis
        type: libxl__destroy_domid_state
      - name: multidev
        type: libxl__multidev
      - name: xswait
        type: libxl__xswait_state
      - name: qmp_proxy_spawn
        type: libxl__spawn_state
      item_type: struct
      name: libxl__stub_dm_spawn_state
      pos:
        line_end: 4141
        line_start: 4127
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*ao'
        type: libxl__ao
      - name: '*guest_config'
        type: libxl_domain_config
      - name: guest_config_saved
        type: libxl_domain_config
      - name: restore_fd
        type: int
      - name: restore_fdfl
        type: int
      - name: send_back_fd
        type: int
      - name: restore_params
        type: libxl_domain_restore_params
      - name: domid
        type: uint32_t
      - name: soft_reset
        type: bool
      - name: '*callback'
        type: libxl__domain_create_cb
      - name: aop_console_how
        type: libxl_asyncprogress_how
      - name: guest_domid
        type: int
      - name: device_type_idx
        type: int
      - name: '*colo_proxy_script'
        type: char
      - name: build_state
        type: libxl__domain_build_state
      - name: crs
        type: libxl__colo_restore_state
      - name: cds
        type: libxl__checkpoint_devices_state
      - name: bl
        type: libxl__bootloader_state
      - name: sdss
        type: libxl__stub_dm_spawn_state
      - name: srs
        type: libxl__stream_read_state
      - name: dds
        type: libxl__domain_destroy_state
      - name: multidev
        type: libxl__multidev
      - name: console_xswait
        type: libxl__xswait_state
      item_type: struct
      name: libxl__domain_create_state
      pos:
        line_end: 4185
        line_start: 4156
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: nr_cpus
        type: int
      - name: nr_vcpus
        type: int
      - name: free_memkb
        type: uint64_t
      - name: nodemap
        type: libxl_bitmap
      item_type: struct
      name: libxl__numa_candidate
      pos:
        line_end: 4433
        line_start: 4428
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*carefd'
        type: libxl__carefd
      - name: '*path'
        type: char
      item_type: struct
      name: libxl__flock
      pos:
        line_end: 4661
        line_start: 4658
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    - fields:
      - name: '*cpuid'
        type: struct xc_xend_cpuid
      - name: '*msr'
        type: struct xc_msr
      item_type: struct
      name: libxl__cpu_policy
      pos:
        line_end: 4831
        line_start: 4828
        source_file: /src/xen/tools/libs/light/libxl_internal.h
    typedefs:
    - item_type: typedef
      name: libxl__gc
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__gc
    - item_type: typedef
      name: libxl__egc
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__egc
    - item_type: typedef
      name: libxl__ao
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ao
    - item_type: typedef
      name: libxl__aop_occurred
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__aop_occurred
    - item_type: typedef
      name: libxl__osevent_hook_nexus
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__osevent_hook_nexus
    - item_type: typedef
      name: libxl__osevent_hook_nexi
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__osevent_hook_nexi
    - item_type: typedef
      name: libxl__device_type
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__device_type
    - item_type: typedef
      name: libxl__json_object
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__json_object
    - item_type: typedef
      name: libxl__carefd
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__carefd
    - item_type: typedef
      name: libxl__ev_slowlock
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_slowlock
    - item_type: typedef
      name: libxl__dm_resume_state
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__dm_resume_state
    - item_type: typedef
      name: libxl__ao_device
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ao_device
    - item_type: typedef
      name: libxl__multidev
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__multidev
    - item_type: typedef
      name: libxl__ev_immediate
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_immediate
    - item_type: typedef
      name: libxl__domain_create_state
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__domain_create_state
    - item_type: typedef
      name: "libxl__domain_create_cb(struct libxl__egc *egc,\n                                     libxl__domain_create_state
        *dcs,\n                                     int rc, uint32_t domid)"
      pos:
        line_end: 202
        line_start: 200
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__colo_device_nic
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__colo_device_nic
    - item_type: typedef
      name: libxl__colo_qdisk
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__colo_qdisk
    - item_type: typedef
      name: libxl__colo_proxy_state
      pos:
        line_end: 206
        line_start: 206
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__colo_proxy_state
    - item_type: typedef
      name: libxl__colo_save_state
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__colo_save_state
    - item_type: typedef
      name: libxl__colo_restore_state
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__colo_restore_state
    - item_type: typedef
      name: libxl__ev_fd
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_fd
    - item_type: typedef
      name: "libxl__ev_fd_callback(libxl__egc *egc, libxl__ev_fd *ev,\n                                   int
        fd, short events, short revents)"
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ao_abortable
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ao_abortable
    - item_type: typedef
      name: "libxl__ao_abortable_callback(libxl__egc *egc,\n                  libxl__ao_abortable
        *ao_abortable, int rc /* ABORTED */)"
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_time
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_time
    - item_type: typedef
      name: "libxl__ev_time_callback(libxl__egc *egc, libxl__ev_time *ev,\n                                     const
        struct timeval *requested_abs,\n                                     int rc)"
      pos:
        line_end: 290
        line_start: 288
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_xswatch
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_xswatch
    - item_type: typedef
      name: "libxl__ev_xswatch_callback(libxl__egc *egc, libxl__ev_xswatch*,\n                            const
        char *watch_path, const char *event_path)"
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_evtchn
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_evtchn
    - item_type: typedef
      name: libxl__ev_evtchn_callback(libxl__egc *egc, libxl__ev_evtchn*)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_child
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_child
    - item_type: typedef
      name: "libxl__ev_child_callback(libxl__egc *egc, libxl__ev_child*,\n                                      pid_t
        pid, int status)"
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_qmp
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_qmp
    - item_type: typedef
      name: "libxl__ev_qmp_callback(libxl__egc *egc, libxl__ev_qmp *ev,\n                                    const
        libxl__json_object *response,\n                                    int rc)"
      pos:
        line_end: 485
        line_start: 483
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__poller
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__poller
    - item_type: typedef
      name: libxl__xswait_state
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__xswait_state
    - item_type: typedef
      name: "libxl__xswait_callback(libxl__egc *egc,\n      libxl__xswait_state *xswa,
        int rc, const char *data)"
      pos:
        line_end: 1617
        line_start: 1616
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__ev_devstate
      pos:
        line_end: 1643
        line_start: 1643
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__ev_devstate
    - item_type: typedef
      name: "libxl__ev_devstate_callback(libxl__egc *egc, libxl__ev_devstate*,\n                                         int
        rc)"
      pos:
        line_end: 1645
        line_start: 1644
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__domaindeathcheck
      pos:
        line_end: 1681
        line_start: 1681
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__domaindeathcheck
    - item_type: typedef
      name: "libxl___domaindeathcheck_callback(libxl__egc *egc,\n        libxl__domaindeathcheck*,\n
        \       int rc /* DESTROYED or ABORTED */)"
      pos:
        line_end: 1684
        line_start: 1682
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__spawn_starting
      pos:
        line_end: 1746
        line_start: 1746
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__obsolete_spawn_starting
    - item_type: typedef
      name: libxl__spawn_state
      pos:
        line_end: 1750
        line_start: 1750
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__spawn_state
    - item_type: typedef
      name: libxl__spawn_midproc_cb(libxl__gc*, libxl__spawn_state*, pid_t inner)
      pos:
        line_end: 1849
        line_start: 1848
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: "libxl__spawn_failure_cb(libxl__egc*, libxl__spawn_state*,\n                                     int
        rc)"
      pos:
        line_end: 1857
        line_start: 1856
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__spawn_confirm_cb(libxl__egc*, libxl__spawn_state*,\n                                     const
        char *xsdata)"
      pos:
        line_end: 1876
        line_start: 1875
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__spawn_detached_cb(libxl__egc*, libxl__spawn_state*)
      pos:
        line_end: 1882
        line_start: 1882
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*libxl__gen_json_callback)(json_object **jso_r, void *)
      pos:
        line_end: 1996
        line_start: 1996
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*libxl__gen_json_callback)(yajl_gen hand, void *)
      pos:
        line_end: 1998
        line_start: 1998
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: yajl_gen_status
    - item_type: typedef
      name: libxl__qmp_handler
      pos:
        line_end: 2032
        line_start: 2032
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__qmp_handler
    - item_type: typedef
      name: "(*libxl__json_parse_callback)(libxl__gc *gc,\n                                          libxl__json_object
        *o,\n                                          void *p)"
      pos:
        line_end: 2134
        line_start: 2132
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: libxl__async_exec_state
      pos:
        line_end: 2623
        line_start: 2623
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__async_exec_state
    - item_type: typedef
      name: "libxl__async_exec_callback(libxl__egc *egc,\n                        libxl__async_exec_state
        *aes, int rc, int status)"
      pos:
        line_end: 2626
        line_start: 2625
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__device_callback(libxl__egc*, libxl__ao_device*)
      pos:
        line_end: 2665
        line_start: 2665
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__devices_callback(libxl__egc*, libxl__multidev*, int rc)
      pos:
        line_end: 2784
        line_start: 2784
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__disk_local_state
      pos:
        line_end: 3011
        line_start: 3011
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__disk_local_state
    - item_type: typedef
      name: "libxl__disk_local_state_callback(libxl__egc*,\n                                              libxl__disk_local_state*,\n
        \                                             int rc)"
      pos:
        line_end: 3014
        line_start: 3012
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__datacopier_state
      pos:
        line_end: 3076
        line_start: 3076
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__datacopier_state
    - item_type: typedef
      name: libxl__datacopier_buf
      pos:
        line_end: 3077
        line_start: 3077
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__datacopier_buf
    - item_type: typedef
      name: "libxl__datacopier_callback(libxl__egc *egc,\n     libxl__datacopier_state
        *dc, int rc, int onwrite, int errnoval)"
      pos:
        line_end: 3093
        line_start: 3092
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__checkpoint_device
      pos:
        line_end: 3211
        line_start: 3211
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__checkpoint_device
    - item_type: typedef
      name: libxl__checkpoint_devices_state
      pos:
        line_end: 3212
        line_start: 3212
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__checkpoint_devices_state
    - item_type: typedef
      name: libxl__checkpoint_device_instance_ops
      pos:
        line_end: 3213
        line_start: 3213
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__checkpoint_device_instance_ops
    - item_type: typedef
      name: "libxl__checkpoint_callback(libxl__egc *,\n                                        libxl__checkpoint_devices_state
        *,\n                                        int rc)"
      pos:
        line_end: 3262
        line_start: 3260
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__remus_state
      pos:
        line_end: 3348
        line_start: 3348
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__remus_state
    - item_type: typedef
      name: libxl__conversion_helper_state
      pos:
        line_end: 3366
        line_start: 3366
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__conversion_helper_state
    - item_type: typedef
      name: libxl__stream_read_state
      pos:
        line_end: 3395
        line_start: 3395
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__stream_read_state
    - item_type: typedef
      name: libxl__domain_suspend_state
      pos:
        line_end: 3471
        line_start: 3471
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__domain_suspend_state
    - item_type: typedef
      name: libxl__domain_save_state
      pos:
        line_end: 3472
        line_start: 3472
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__domain_save_state
    - item_type: typedef
      name: "libxl__domain_save_cb(libxl__egc*,\n                                   libxl__domain_save_state*,
        int rc)"
      pos:
        line_end: 3475
        line_start: 3474
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__save_device_model_cb(libxl__egc*,\n                                         libxl__domain_save_state*,
        int rc)"
      pos:
        line_end: 3477
        line_start: 3476
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__stream_write_state
      pos:
        line_end: 3480
        line_start: 3480
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__stream_write_state
    - item_type: typedef
      name: "(*sws_record_done_cb)(libxl__egc *egc,\n                                   libxl__stream_write_state
        *sws)"
      pos:
        line_end: 3482
        line_start: 3481
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__openpty_state
      pos:
        line_end: 3629
        line_start: 3629
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__openpty_state
    - item_type: typedef
      name: libxl__openpty_result
      pos:
        line_end: 3630
        line_start: 3630
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__openpty_result
    - item_type: typedef
      name: libxl__openpty_callback(libxl__egc *egc, libxl__openpty_state *op)
      pos:
        line_end: 3631
        line_start: 3631
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__bootloader_state
      pos:
        line_end: 3656
        line_start: 3656
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__bootloader_state
    - item_type: typedef
      name: "libxl__run_bootloader_callback(libxl__egc*,\n                                libxl__bootloader_state*,
        int rc)"
      pos:
        line_end: 3658
        line_start: 3657
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__bootloader_console_callback(libxl__egc*,\n                                libxl__bootloader_state*)"
      pos:
        line_end: 3660
        line_start: 3659
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "(*device_add_fn_t)(libxl__egc *, libxl__ao *, uint32_t,\n                                libxl_domain_config
        *, libxl__multidev *)"
      pos:
        line_end: 3868
        line_start: 3867
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_set_default_fn_t)(libxl__gc *, uint32_t, void *, bool)
      pos:
        line_end: 3869
        line_start: 3869
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: "(*device_to_device_fn_t)(libxl__gc *, uint32_t, void *,\n                                     libxl__device
        *)"
      pos:
        line_end: 3871
        line_start: 3870
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*device_init_fn_t)(void *)
      pos:
        line_end: 3872
        line_start: 3872
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_copy_fn_t)(libxl_ctx *, void *dst, const void *src)
      pos:
        line_end: 3873
        line_start: 3873
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_dispose_fn_t)(void *)
      pos:
        line_end: 3874
        line_start: 3874
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_compare_fn_t)(const void *, const void *)
      pos:
        line_end: 3875
        line_start: 3875
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*device_merge_fn_t)(libxl_ctx *, void *, void *)
      pos:
        line_end: 3876
        line_start: 3876
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_dm_needed_fn_t)(void *, unsigned)
      pos:
        line_end: 3877
        line_start: 3877
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*device_update_config_fn_t)(libxl__gc *, void *, void *)
      pos:
        line_end: 3878
        line_start: 3878
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: (*device_update_devid_fn_t)(libxl__gc *, uint32_t, void *)
      pos:
        line_end: 3879
        line_start: 3879
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*device_get_num_fn_t)(libxl__gc *, const char *, unsigned int *)
      pos:
        line_end: 3880
        line_start: 3880
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: (*device_get_path_fn_t)(libxl__gc *, uint32_t, char **)
      pos:
        line_end: 3881
        line_start: 3881
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: "(*device_from_xenstore_fn_t)(libxl__gc *, const char *,\n                                         libxl_devid,
        void *)"
      pos:
        line_end: 3883
        line_start: 3882
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: "(*device_set_xenstore_config_fn_t)(libxl__gc *, uint32_t, void *,\n                                               flexarray_t
        *, flexarray_t *,\n                                               flexarray_t
        *)"
      pos:
        line_end: 3886
        line_start: 3884
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    - item_type: typedef
      name: libxl__domain_destroy_state
      pos:
        line_end: 3981
        line_start: 3981
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__domain_destroy_state
    - item_type: typedef
      name: libxl__destroy_domid_state
      pos:
        line_end: 3982
        line_start: 3982
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__destroy_domid_state
    - item_type: typedef
      name: libxl__destroy_devicemodel_state
      pos:
        line_end: 3983
        line_start: 3983
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__destroy_devicemodel_state
    - item_type: typedef
      name: libxl__devices_remove_state
      pos:
        line_end: 3984
        line_start: 3984
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__devices_remove_state
    - item_type: typedef
      name: "libxl__domain_destroy_cb(libxl__egc *egc,\n                                      libxl__domain_destroy_state
        *dds,\n                                      int rc)"
      pos:
        line_end: 3988
        line_start: 3986
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__domid_destroy_cb(libxl__egc *egc,\n                                     libxl__destroy_domid_state
        *dis,\n                                     int rc)"
      pos:
        line_end: 3992
        line_start: 3990
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__devicemodel_destroy_cb(libxl__egc *egc,\n                                     libxl__destroy_devicemodel_state
        *ddms,\n                                     int rc)"
      pos:
        line_end: 3996
        line_start: 3994
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "libxl__devices_remove_callback(libxl__egc *egc,\n                                            libxl__devices_remove_state
        *drs,\n                                            int rc)"
      pos:
        line_end: 4000
        line_start: 3998
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: libxl__dm_spawn_state
      pos:
        line_end: 4091
        line_start: 4091
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__dm_spawn_state
    - item_type: typedef
      name: libxl__qemu_available_opts
      pos:
        line_end: 4092
        line_start: 4092
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: libxl__qemu_available_opts
    - item_type: typedef
      name: "libxl__dm_spawn_cb(libxl__egc *egc, libxl__dm_spawn_state*,\n                                int
        rc /* if !0, error was logged */)"
      pos:
        line_end: 4099
        line_start: 4098
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: void
    - item_type: typedef
      name: "(*libxl__numa_candidate_cmpf)(const libxl__numa_candidate *c1,\n                                          const
        libxl__numa_candidate *c2)"
      pos:
        line_end: 4437
        line_start: 4436
        source_file: /src/xen/tools/libs/light/libxl_internal.h
      type: int
    union: []
- function_names:
  - libxl__prepare_acpi
  - libxl__get_acpi_size
  source_file: /src/xen/tools/libs/light/libxl_arm_no_acpi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_device_subkind
  - cleanup_device_subkind
  - libxl__remus_setup
  - remus_setup_done
  - remus_setup_failed
  - libxl__remus_teardown
  - remus_teardown_done
  - libxl__remus_domain_suspend_callback
  - remus_domain_suspend_callback_common_done
  - remus_devices_postsuspend_cb
  - libxl__remus_domain_resume_callback
  - remus_devices_preresume_cb
  - libxl__remus_domain_save_checkpoint_callback
  - remus_checkpoint_stream_written
  - remus_devices_commit_cb
  - remus_next_checkpoint
  - libxl__remus_domain_restore_checkpoint_callback
  - remus_checkpoint_stream_done
  - libxl__remus_restore_setup
  source_file: /src/xen/tools/libs/light/libxl_remus.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__set_vcpuaffinity
  - libxl_set_vcpuaffinity
  - libxl_set_vcpuaffinity_force
  - libxl_set_vcpuaffinity_all
  - libxl_domain_set_nodeaffinity
  - libxl_domain_get_nodeaffinity
  - libxl_get_scheduler
  - sched_arinc653_domain_set
  - sched_null_domain_set
  - sched_null_domain_get
  - sched_credit_domain_get
  - sched_credit_domain_set
  - sched_ratelimit_check
  - libxl_sched_credit_params_get
  - libxl_sched_credit_params_set
  - libxl_sched_credit2_params_get
  - libxl_sched_credit2_params_set
  - sched_credit2_domain_get
  - sched_credit2_domain_set
  - sched_rtds_validate_params
  - sched_rtds_vcpu_get
  - sched_rtds_vcpu_get_all
  - sched_rtds_vcpu_set
  - sched_rtds_vcpu_set_all
  - sched_rtds_domain_get
  - sched_rtds_domain_set
  - libxl_domain_sched_params_set
  - libxl_vcpu_sched_params_set
  - libxl_vcpu_sched_params_set_all
  - libxl_domain_sched_params_get
  - libxl_vcpu_sched_params_get
  - libxl_vcpu_sched_params_get_all
  source_file: /src/xen/tools/libs/light/libxl_sched.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_flask_context_to_sid
  - libxl_flask_sid_to_context
  - libxl_flask_getenforce
  - libxl_flask_setenforce
  - libxl_flask_loadpolicy
  source_file: /src/xen/tools/libs/light/libxl_flask.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - regs
  - libxl_test_timedereg
  - occurs
  source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NTIMES
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/light/libxl_test_timedereg.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl__colo_restore_setup
  - libxl__colo_restore_teardown
  - libxl__colo_save_setup
  - libxl__colo_save_teardown
  source_file: /src/xen/tools/libs/light/libxl_no_colo.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxl_ms_vm_genid_generate
  - libxl_ms_vm_genid_is_zero
  - libxl_ms_vm_genid_copy
  - libxl__ms_vm_genid_set
  source_file: /src/xen/tools/libs/light/libxl_genid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_virtio_mmio_base
  - alloc_virtio_mmio_irq
  - alloc_virtio_mmio_params
  - gicv_to_string
  - libxl__arch_domain_prepare_config
  - libxl__arch_domain_save_config
  - libxl__arch_domain_create
  - libxl__arch_extra_memory
  - set_cell
  - set_interrupt
  - set_range
  - fdt_property_compat
  - fdt_property_interrupts
  - fdt_property_regs
  - fdt_property_reg_placeholder
  - fdt_property_values
  - fdt_property_vpci_ranges
  - make_root_properties
  - make_chosen_node
  - make_cpus_node
  - make_psci_node
  - make_optee_node
  - make_memory_nodes
  - make_gicv2_node
  - make_gicv3_node
  - make_timer_node
  - make_hypervisor_node
  - make_vpl011_uart_node
  - make_vpci_node
  - make_xen_iommu_node
  - make_virtio_mmio_node_common
  - make_virtio_mmio_node
  - make_virtio_mmio_node_i2c
  - make_virtio_mmio_node_gpio
  - make_virtio_mmio_node_device
  - get_arch_info
  - debug_dump_fdt
  - check_partial_fdt
  - copy_properties
  - copy_node
  - copy_node_by_path
  - copy_partial_fdt
  - check_partial_fdt
  - copy_partial_fdt
  - libxl__prepare_dtb
  - FDT
  - libxl__arch_domain_init_hw_description
  - finalise_one_node
  - ALIGN_UP_TO_2MB
  - compare_iomem
  - finalize_hypervisor_node
  - libxl__arch_domain_finalise_hw_description
  - libxl__arch_build_dom_finish
  - libxl__arch_vnuma_build_vmemrange
  - libxl__arch_domain_map_irq
  - libxl__arch_domain_create_info_setdefault
  - libxl__arch_domain_build_info_setdefault
  - libxl__arch_passthrough_mode_setdefault
  - libxl__arch_update_domain_config
  - libxl__arch_hvm_map_gsi
  - libxl__arch_hvm_unmap_gsi
  - libxl__arch_local_domain_has_pirq_notion
  source_file: /src/xen/tools/libs/light/libxl_arm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VIRTIO_MMIO_DEV_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: xen_mk_ullong(0x200)
    - item_type: preproc_def
      name: PROP_INITRD_START
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: '"linux,initrd-start"'
    - item_type: preproc_def
      name: PROP_INITRD_END
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: '"linux,initrd-end"'
    - item_type: preproc_def
      name: MAX_NR_EXT_REGIONS
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: '256'
    - item_type: preproc_def
      name: FDT_MAX_SIZE
      pos:
        line_end: 1278
        line_start: 1277
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: EXT_REGION_MIN_SIZE
      pos:
        line_end: 1534
        line_start: 1533
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type_or_value: 'xen_mk_ullong(0x0004000000) '
    structs:
    - fields:
      - name: '*guest_type'
        type: char
      - name: '*timer_compat'
        type: char
      - name: '*cpu_compat'
        type: char
      item_type: struct
      name: arch_info
      pos:
        line_end: 306
        line_start: 302
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    - fields:
      - name: start
        type: uint64_t
      - name: end
        type: uint64_t
      item_type: struct
      name: unallocated
      pos:
        line_end: 1585
        line_start: 1582
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    - fields:
      - name: start
        type: uint64_t
      - name: end
        type: uint64_t
      item_type: struct
      name: iomem
      pos:
        line_end: 1606
        line_start: 1603
        source_file: /src/xen/tools/libs/light/libxl_arm.c
    typedefs:
    - item_type: typedef
      name: be32
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type: uint32_t
    - item_type: typedef
      name: gic_interrupt[3]
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/xen/tools/libs/light/libxl_arm.c
      type: be32
    union: []
- function_names:
  - mutex_lock
  - mutex_unlock
  - condvar_signal
  - condvar_wait
  - cleanup_push
  - cleanup_pop
  - read_thread_exists
  - cleanup_push_heap
  - cleanup_pop_heap
  - mutex_lock
  - mutex_unlock
  - condvar_signal
  - condvar_wait
  - cleanup_push
  - cleanup_pop
  - read_thread_exists
  - cleanup_push_heap
  - cleanup_pop_heap
  - setnonblock
  - set_cloexec
  - pipe_cloexec
  - xs_fileno
  - get_socket
  - get_dev
  - all_restrict_cb
  - get_handle
  - xs_daemon_open
  - xs_daemon_open_readonly
  - xs_domain_open
  - xs_domain_dev
  - xs_open
  - close_free_msgs
  - close_fds_free
  - xs_daemon_destroy_postfork
  - xs_daemon_close
  - xs_close
  - read_all
  - xs_write_all
  - get_error
  - read_reply
  - update_iov
  - sendmsg_exact
  - writev_exact
  - write_request
  - xs_talkv
  - free_no_errno
  - xs_single
  - xs_bool
  - xs_directory_common
  - xs_directory_part
  - xs_directory
  - xs_read
  - xs_write
  - xs_mkdir
  - xs_rm
  - xs_get_permissions
  - xs_set_permissions
  - xs_restrict
  - xs_watch
  - xs_maybe_clear_watch_pipe
  - read_watch_internal
  - xs_check_watch
  - xs_read_watch
  - xs_unwatch
  - xs_transaction_start
  - xs_transaction_end
  - xs_introduce_domain
  - xs_set_target
  - single_with_domid
  - xs_release_domain
  - xs_resume_domain
  - xs_get_domain_path
  - xs_path_is_subpath
  - xs_is_domain_introduced
  - xs_suspend_evtchn_port
  - xs_uint
  - xs_get_features_supported
  - xs_get_features_domain
  - xs_set_features_domain
  - xs_control_command
  - xs_debug_command
  - read_message
  - xs_daemon_socket
  - xs_daemon_socket_ro
  - xs_daemon_rundir
  - xs_strings_to_perms
  - read_thread
  source_file: /src/xen/tools/libs/store/xs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/store/xs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SOCK_CLOEXEC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/store/xs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEFAULT_THREAD_STACKSIZE
      pos:
        line_end: 998
        line_start: 997
        source_file: /src/xen/tools/libs/store/xs.c
      type_or_value: (16 * 1024)
    - item_type: preproc_def
      name: PTHREAD_STACK_MIN
      pos:
        line_end: 1001
        line_start: 1000
        source_file: /src/xen/tools/libs/store/xs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: READ_THREAD_STACKSIZE
      pos:
        line_end: 1006
        line_start: 1003
        source_file: /src/xen/tools/libs/store/xs.c
      type_or_value: "((DEFAULT_THREAD_STACKSIZE < PTHREAD_STACK_MIN) ? \t\\\n\t PTHREAD_STACK_MIN
        : DEFAULT_THREAD_STACKSIZE)"
    structs:
    - fields:
      - name: hdr
        type: struct xsd_sockmsg
      - name: '*body'
        type: char
      item_type: struct
      name: xs_stored_msg
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/xen/tools/libs/store/xs.c
    - fields:
      - name: fd
        type: int
      - name: is_socket
        type: bool
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      - name: (, struct xs_stored_msg)
        type: XEN_TAILQ_HEAD
      - name: watch_pipe[2]
        type: int
      - name: unwatch_filter
        type: bool
      - name: (, struct xs_stored_msg)
        type: XEN_TAILQ_HEAD
      item_type: struct
      name: xs_handle
      pos:
        line_end: 123
        line_start: 64
        source_file: /src/xen/tools/libs/store/xs.c
    typedefs: []
    union: []
- function_names:
  - progress_erase
  - stdiostream_vmessage
  - stdiostream_message
  - stdiostream_progress
  - stdiostream_destroy
  - xtl_stdiostream_set_minlevel
  - xtl_stdiostream_adjust_flags
  - xtl_createlogger_stdiostream
  source_file: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vtable
        type: xentoollog_logger
      - name: '*f'
        type: FILE
      - name: min_level
        type: xentoollog_level
      - name: flags
        type: unsigned
      - name: progress_erase_len
        type: int
      - name: progress_use_cr
        type: bool
      item_type: struct
      name: xentoollog_logger_stdiostream
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/xen/tools/libs/toollog/xtl_logger_stdio.c
    typedefs: []
    union: []
- function_names:
  - xtl_level_to_string
  - xtl_logv
  - xtl_log
  - xtl_progress
  - xtl_logger_destroy
  source_file: /src/xen/tools/libs/toollog/xtl_core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_linux_build
  source_file: /src/xen/tools/libs/guest/xg_dom_compat_linux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_mark_page_online
  - xc_mark_page_offline
  - xc_query_page_offline_status
  - xc_is_page_granted_v1
  - xc_is_page_granted_v2
  - backup_ptes
  - __clear_pte
  - __update_pte
  - change_pte
  - update_pte
  - clear_pte
  - is_page_exchangable
  - xc_map_m2p
  - xc_exchange_page
  source_file: /src/xen/tools/libs/guest/xg_offline_page.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BACKUP_COUNT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libs/guest/xg_offline_page.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: table_mfn
        type: xen_pfn_t
      - name: offset
        type: int
      item_type: struct
      name: pte_backup_entry
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/xen/tools/libs/guest/xg_offline_page.c
    - fields:
      - name: '*entries'
        type: struct pte_backup_entry
      - name: max
        type: int
      - name: cur
        type: int
      item_type: struct
      name: pte_backup
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/xen/tools/libs/guest/xg_offline_page.c
    typedefs:
    - item_type: typedef
      name: "(*pte_func)(xc_interface *xch,\n                       uint64_t pte,
        uint64_t *new_pte,\n                       unsigned long table_mfn, int table_offset,\n
        \                      struct pte_backup *backup,\n                       unsigned
        long no_use)"
      pos:
        line_end: 209
        line_start: 205
        source_file: /src/xen/tools/libs/guest/xg_offline_page.c
      type: int
    union: []
- function_names:
  - log_callback
  - xc_elf_set_logfile
  - xc_dom_guest_type
  - check_elf_kernel
  - xc_dom_probe_elf_kernel
  - xc_dom_parse_elf_kernel
  - xc_dom_load_elf_kernel
  - register_loader
  source_file: /src/xen/tools/libs/guest/xg_dom_elfloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_VER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/guest/xg_dom_elfloader.c
      type_or_value: '"xen-3.0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR
  - get_suspend_file
  - lock_suspend_event
  - unlock_suspend_event
  - xc_await_suspend
  - xc_suspend_evtchn_release
  - xc_suspend_evtchn_init_sane
  - xc_suspend_evtchn_init_exclusive
  source_file: /src/xen/tools/libs/guest/xg_suspend.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUSPEND_LOCK_FILE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/guest/xg_suspend.c
      type_or_value: XEN_RUN_DIR "/suspend-evtchn-%d.lock"
    - item_type: preproc_def
      name: SUSPEND_FILE_BUFLEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/guest/xg_suspend.c
      type_or_value: (sizeof(SUSPEND_LOCK_FILE) + 10)
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_core_arch_context_init
  - xc_core_arch_context_free
  - xc_core_arch_context_get
  - xc_core_arch_context_dump
  - xc_core_arch_context_get_shdr
  source_file: /src/xen/tools/libs/guest/xg_core_arm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELF_ARCH_DATA
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libs/guest/xg_core_arm.h
      type_or_value: ELFDATA2LSB
    - item_type: preproc_def
      name: ELF_ARCH_MACHINE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/guest/xg_core_arm.h
      type_or_value: EM_ARM
    structs:
    - fields: []
      item_type: struct
      name: xc_core_arch_context
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/xen/tools/libs/guest/xg_core_arm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IHDR_MARKER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0xffffffffffffffffULL
    - item_type: preproc_def
      name: IHDR_ID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x58454E46U
    - item_type: preproc_def
      name: _IHDR_OPT_ENDIAN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IHDR_OPT_LITTLE_ENDIAN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: (0 << _IHDR_OPT_ENDIAN)
    - item_type: preproc_def
      name: IHDR_OPT_BIG_ENDIAN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: (1 << _IHDR_OPT_ENDIAN)
    - item_type: preproc_def
      name: DHDR_TYPE_X86_PV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: DHDR_TYPE_X86_HVM
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: REC_ALIGN_ORDER
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: (3U)
    - item_type: preproc_def
      name: REC_LENGTH_MAX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: (128U << 20)
    - item_type: preproc_def
      name: REC_TYPE_END
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000000U
    - item_type: preproc_def
      name: REC_TYPE_PAGE_DATA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_INFO
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_P2M_FRAMES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000003U
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_VCPU_BASIC
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000004U
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_VCPU_EXTENDED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000005U
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_VCPU_XSAVE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000006U
    - item_type: preproc_def
      name: REC_TYPE_SHARED_INFO
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000007U
    - item_type: preproc_def
      name: REC_TYPE_X86_TSC_INFO
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000008U
    - item_type: preproc_def
      name: REC_TYPE_HVM_CONTEXT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000009U
    - item_type: preproc_def
      name: REC_TYPE_HVM_PARAMS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000aU
    - item_type: preproc_def
      name: REC_TYPE_TOOLSTACK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000bU
    - item_type: preproc_def
      name: REC_TYPE_X86_PV_VCPU_MSRS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000cU
    - item_type: preproc_def
      name: REC_TYPE_VERIFY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000dU
    - item_type: preproc_def
      name: REC_TYPE_CHECKPOINT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000eU
    - item_type: preproc_def
      name: REC_TYPE_CHECKPOINT_DIRTY_PFN_LIST
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x0000000fU
    - item_type: preproc_def
      name: REC_TYPE_STATIC_DATA_END
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000010U
    - item_type: preproc_def
      name: REC_TYPE_X86_CPUID_POLICY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000011U
    - item_type: preproc_def
      name: REC_TYPE_X86_MSR_POLICY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x00000012U
    - item_type: preproc_def
      name: REC_TYPE_OPTIONAL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: PAGE_DATA_PFN_MASK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0x000fffffffffffffULL
    - item_type: preproc_def
      name: PAGE_DATA_TYPE_MASK
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
      type_or_value: 0xf000000000000000ULL
    structs:
    - fields:
      - name: marker
        type: uint64_t
      - name: id
        type: uint32_t
      - name: version
        type: uint32_t
      - name: options
        type: uint16_t
      - name: _res1
        type: uint16_t
      - name: _res2
        type: uint32_t
      item_type: struct
      name: xc_sr_ihdr
      pos:
        line_end: 21
        line_start: 13
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: type
        type: uint32_t
      - name: page_shift
        type: uint16_t
      - name: _res1
        type: uint16_t
      - name: xen_major
        type: uint32_t
      - name: xen_minor
        type: uint32_t
      item_type: struct
      name: xc_sr_dhdr
      pos:
        line_end: 40
        line_start: 33
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: type
        type: uint32_t
      - name: length
        type: uint32_t
      item_type: struct
      name: xc_sr_rhdr
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: count
        type: uint32_t
      - name: _res1
        type: uint32_t
      - name: pfn[0]
        type: uint64_t
      item_type: struct
      name: xc_sr_rec_page_data_header
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: guest_width
        type: uint8_t
      - name: pt_levels
        type: uint8_t
      - name: _res[6]
        type: uint8_t
      item_type: struct
      name: xc_sr_rec_x86_pv_info
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: start_pfn
        type: uint32_t
      - name: end_pfn
        type: uint32_t
      - name: p2m_pfns[0]
        type: uint64_t
      item_type: struct
      name: xc_sr_rec_x86_pv_p2m_frames
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: vcpu_id
        type: uint32_t
      - name: _res1
        type: uint32_t
      - name: context[0]
        type: uint8_t
      item_type: struct
      name: xc_sr_rec_x86_pv_vcpu_hdr
      pos:
        line_end: 114
        line_start: 109
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: mode
        type: uint32_t
      - name: khz
        type: uint32_t
      - name: nsec
        type: uint64_t
      - name: incarnation
        type: uint32_t
      - name: _res1
        type: uint32_t
      item_type: struct
      name: xc_sr_rec_x86_tsc_info
      pos:
        line_end: 124
        line_start: 117
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: index
        type: uint64_t
      - name: value
        type: uint64_t
      item_type: struct
      name: xc_sr_rec_hvm_params_entry
      pos:
        line_end: 131
        line_start: 127
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    - fields:
      - name: count
        type: uint32_t
      - name: _res1
        type: uint32_t
      - name: param[0]
        type: struct xc_sr_rec_hvm_params_entry
      item_type: struct
      name: xc_sr_rec_hvm_params
      pos:
        line_end: 138
        line_start: 133
        source_file: /src/xen/tools/libs/guest/xg_sr_stream_format.h
    typedefs: []
    union: []
- function_names:
  - PFN_TO_KB
  - MEMCPY_FIELD
  - MEMSET_ARRAY_FIELD
  source_file: /src/xen/tools/libs/guest/xg_save_restore.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BATCH_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/guest/xg_save_restore.h
      type_or_value: '1024   '
    - item_type: preproc_def
      name: MAX_PIN_BATCH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/guest/xg_save_restore.h
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_domain_get_native_protocol
  - alloc_magic_pages
  - start_info_arm
  - shared_info_arm
  - vcpu_arm32
  - vcpu_arm64
  - set_mode
  - populate_one_size
  - populate_guest_memory
  - meminit
  - xc_dom_translated
  - bootearly
  - bootlate
  - register_arch_hooks
  source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_MAGIC_PAGES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '4'
    - item_type: preproc_def
      name: CONSOLE_PFN_OFFSET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XENSTORE_PFN_OFFSET
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MEMACCESS_PFN_OFFSET
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '2'
    - item_type: preproc_def
      name: VUART_PFN_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LPAE_SHIFT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: '9'
    - item_type: preproc_def
      name: PFN_4K_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: (0)
    - item_type: preproc_def
      name: PFN_2M_SHIFT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: (PFN_4K_SHIFT+LPAE_SHIFT)
    - item_type: preproc_def
      name: PFN_1G_SHIFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: (PFN_2M_SHIFT+LPAE_SHIFT)
    - item_type: preproc_def
      name: PFN_512G_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
      type_or_value: (PFN_1G_SHIFT+LPAE_SHIFT)
    structs:
    - fields:
      - name: '*guest'
        type: char
      - name: size
        type: uint32_t
      item_type: struct
      name: "types[] = {\n        { \"xen-3.0-aarch64\", 64 },\n        { \"xen-3.0-armv7l\",
        \ 32 },\n    }"
      pos:
        line_end: 202
        line_start: 199
        source_file: /src/xen/tools/libs/guest/xg_dom_arm.c
    typedefs: []
    union: []
- function_names:
  - modify_returncode
  - modify_returncode
  - xc_domain_resume_cooperative
  - xc_domain_resume_hvm
  - xc_domain_resume_any
  - xc_domain_resume
  source_file: /src/xen/tools/libs/guest/xg_resume.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_headers
  - write_end_record
  - write_static_data_end_record
  - write_checkpoint_record
  - write_batch
  - flush_batch
  - add_to_batch
  - suspend_domain
  - send_dirty_pages
  - send_all_pages
  - enable_logdirty
  - update_progress_string
  - simple_precopy_policy
  - send_memory_live
  - colo_merge_secondary_dirty_bitmap
  - suspend_and_send_dirty
  - verify_frames
  - send_domain_memory_live
  - send_domain_memory_checkpointed
  - send_domain_memory_nonlive
  - setup
  - cleanup
  - save
  - xc_domain_save
  source_file: /src/xen/tools/libs/guest/xg_sr_save.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPP_MAX_ITERATIONS
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SPP_TARGET_DIRTY_COUNT
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/xen/tools/libs/guest/xg_sr_save.c
      type_or_value: '50'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_dom_probe_zimage32_kernel
  - xc_dom_parse_zimage32_kernel
  - xc_dom_probe_zimage64_kernel
  - xc_dom_parse_zimage64_kernel
  - xc_dom_load_zimage_kernel
  - register_loader
  source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DTB_MAGIC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0xd00dfeed'
    - item_type: preproc_def
      name: ZIMAGE32_MAGIC_OFFSET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x24'
    - item_type: preproc_def
      name: ZIMAGE32_START_OFFSET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x28'
    - item_type: preproc_def
      name: ZIMAGE32_END_OFFSET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x2c'
    - item_type: preproc_def
      name: ZIMAGE32_MAGIC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x016f2818'
    - item_type: preproc_def
      name: ZIMAGE64_MAGIC_V0
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x14000008'
    - item_type: preproc_def
      name: ZIMAGE64_MAGIC_V1
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
      type_or_value: '0x644d5241 '
    structs:
    - fields:
      - name: magic
        type: uint32_t
      - name: total_size
        type: uint32_t
      item_type: struct
      name: minimal_dtb_header
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    - fields:
      - name: magic0
        type: uint32_t
      - name: res0
        type: uint32_t
      - name: text_offset
        type: uint64_t
      - name: res1
        type: uint64_t
      - name: res2
        type: uint64_t
      - name: res3
        type: uint64_t
      - name: res4
        type: uint64_t
      - name: res5
        type: uint64_t
      - name: magic1
        type: uint32_t
      - name: res6
        type: uint32_t
      item_type: struct
      name: zimage64_hdr
      pos:
        line_end: 143
        line_start: 131
        source_file: /src/xen/tools/libs/guest/xg_dom_armzimageloader.c
    typedefs: []
    union: []
- function_names:
  - xc_try_bzip2_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_bzip2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XEN_DUMPCORE_FORMAT_VERSION
  - XEN_DUMPCORE_FORMAT_MAJOR
  - XEN_DUMPCORE_FORMAT_MINOR
  source_file: /src/xen/tools/libs/guest/xg_core.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_NOTE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".note.Xen"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_PRSTATUS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".xen_prstatus"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_SHARED_INFO
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".xen_shared_info"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_P2M
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".xen_p2m"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_PFN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".xen_pfn"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_SEC_PAGES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '".xen_pages"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_ELFNOTE_NAME
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '"Xen"'
    - item_type: preproc_def
      name: XEN_DUMPCORE_FORMAT_MAJOR_CURRENT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: ((uint64_t)0)
    - item_type: preproc_def
      name: XEN_DUMPCORE_FORMAT_MINOR_CURRENT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: ((uint64_t)1)
    - item_type: preproc_def
      name: XEN_DUMPCORE_FORMAT_VERSION_CURRENT
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: "XEN_DUMPCORE_FORMAT_VERSION(XEN_DUMPCORE_FORMAT_MAJOR_CURRENT,
        \ \\\n                                XEN_DUMPCORE_FORMAT_MINOR_CURRENT)"
    - item_type: preproc_def
      name: XC_CORE_INVALID_PFN
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: (~(uint64_t)0)
    - item_type: preproc_def
      name: XC_CORE_INVALID_GMFN
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: (~(uint64_t)0)
    - item_type: preproc_def
      name: ELF_CORE_EFLAGS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type_or_value: '0'
    structs:
    - fields:
      - name: namesz
        type: uint32_t
      - name: descsz
        type: uint32_t
      - name: type
        type: uint32_t
      - name: name[4]
        type: char
      item_type: struct
      name: elfnote
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields: []
      item_type: struct
      name: xen_dumpcore_elfnote_none_desc
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: xch_magic
        type: uint64_t
      - name: xch_nr_vcpus
        type: uint64_t
      - name: xch_nr_pages
        type: uint64_t
      - name: xch_page_size
        type: uint64_t
      item_type: struct
      name: xen_dumpcore_elfnote_header_desc
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: major_version
        type: uint64_t
      - name: minor_version
        type: uint64_t
      - name: extra_version
        type: xen_extraversion_t
      - name: compile_info
        type: xen_compile_info_t
      - name: capabilities
        type: xen_capabilities_info_t
      - name: changeset
        type: xen_changeset_info_t
      - name: platform_parameters
        type: xen_platform_parameters_t
      - name: pagesize
        type: uint64_t
      item_type: struct
      name: xen_dumpcore_elfnote_xen_version_desc
      pos:
        line_end: 68
        line_start: 59
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: version
        type: uint64_t
      item_type: struct
      name: xen_dumpcore_elfnote_format_version_desc
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: elfnote
        type: struct elfnote
      - name: none
        type: struct xen_dumpcore_elfnote_none_desc
      item_type: struct
      name: xen_dumpcore_elfnote_none
      pos:
        line_end: 89
        line_start: 86
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: elfnote
        type: struct elfnote
      - name: header
        type: struct xen_dumpcore_elfnote_header_desc
      item_type: struct
      name: xen_dumpcore_elfnote_header
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: elfnote
        type: struct elfnote
      - name: xen_version
        type: struct xen_dumpcore_elfnote_xen_version_desc
      item_type: struct
      name: xen_dumpcore_elfnote_xen_version
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: elfnote
        type: struct elfnote
      - name: format_version
        type: struct xen_dumpcore_elfnote_format_version_desc
      item_type: struct
      name: xen_dumpcore_elfnote_format_version
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: pfn
        type: uint64_t
      - name: gmfn
        type: uint64_t
      item_type: struct
      name: xen_dumpcore_p2m
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/xen/tools/libs/guest/xg_core.h
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: uint64_t
      item_type: struct
      name: xc_core_memory_map
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/xen/tools/libs/guest/xg_core.h
    typedefs:
    - item_type: typedef
      name: xc_core_memory_map_t
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/xen/tools/libs/guest/xg_core.h
      type: xc_core_memory_map
    union: []
- function_names:
  - setup_hypercall_page
  - xc_dom_compat_check
  - xc_dom_boot_xen_init
  - xc_dom_boot_mem_init
  - xc_dom_boot_domU_map
  - xc_dom_boot_image
  - xc_dom_gnttab_setup
  - xc_dom_set_gnttab_entry
  - compat_gnttab_seed
  - compat_gnttab_hvm_seed
  - xc_dom_gnttab_seed
  - xc_dom_gnttab_init
  - dom_console_init
  - xc_dom_console_init
  - xc_dom_console_set_disconnected
  source_file: /src/xen/tools/libs/guest/xg_dom_boot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_try_lzma_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzma.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_core_arch_context_init
  - xc_core_arch_context_free
  - xc_core_arch_context_get
  - xc_core_arch_context_dump
  - xc_core_arch_context_get_shdr
  source_file: /src/xen/tools/libs/guest/xg_core_x86.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELF_ARCH_DATA
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/guest/xg_core_x86.h
      type_or_value: ELFDATA2LSB
    - item_type: preproc_def
      name: ELF_ARCH_MACHINE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/guest/xg_core_x86.h
      type_or_value: '(dinfo->guest_width == 8 ? EM_X86_64 : EM_386)'
    structs:
    - fields: []
      item_type: struct
      name: xc_core_arch_context
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/xen/tools/libs/guest/xg_core_x86.h
    typedefs: []
    union: []
- function_names:
  - xc_core_arch_gpfn_may_present
  - xc_core_arch_memory_map_get
  - is_canonical_address
  - xc_core_arch_map_p2m_list_rw
  - xc_core_arch_map_p2m_tree_rw
  - xc_core_arch_map_p2m_rw
  - xc_core_arch_map_p2m
  - xc_core_arch_map_p2m_writable
  - xc_core_arch_get_scratch_gpfn
  source_file: /src/xen/tools/libs/guest/xg_core_x86.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FPP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: (PAGE_SIZE/(dinfo->guest_width))
    - item_type: preproc_def
      name: P2M_FLL_ENTRIES
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: (((dinfo->p2m_size)+(FPP*FPP)-1)/(FPP*FPP))
    - item_type: preproc_def
      name: P2M_FL_ENTRIES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: (((dinfo->p2m_size)+FPP-1)/FPP)
    - item_type: preproc_def
      name: P2M_GUEST_FL_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: ((P2M_FL_ENTRIES) * (dinfo->guest_width))
    - item_type: preproc_def
      name: P2M_TOOLS_FL_SIZE
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: "((P2M_FL_ENTRIES) * \\\n                           max_t(size_t,
        sizeof(xen_pfn_t), dinfo->guest_width))"
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START_X86_64
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: 0xFFFF800000000000ULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_END_X86_64
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: 0xFFFF87FFFFFFFFFFULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START_X86_32
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: 0x00000000F5800000ULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_END_X86_32
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/libs/guest/xg_core_x86.c
      type_or_value: 0x00000000FFFFFFFFULL
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/guest/xg_sr_common_x86.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_dom_loginit
  - xc_dom_printf
  - xc_dom_panic_func
  - print_mem
  - xc_dom_log_memory_footprint
  - xc_dom_malloc
  - xc_dom_malloc_page_aligned
  - xc_dom_register_external
  - xc_dom_malloc_filemap
  - xc_dom_free_all
  - xc_dom_strdup
  - xc_dom_kernel_check_size
  - xc_dom_check_gzip
  - xc_dom_do_gunzip
  - xc_dom_try_gunzip
  - xc_dom_pfn_to_ptr
  - xc_dom_pfn_to_ptr_retcount
  - xc_dom_chk_alloc_pages
  - xc_dom_alloc_pad
  - xc_dom_alloc_segment
  - xc_dom_alloc_page
  - xc_dom_unmap_one
  - xc_dom_unmap_all
  - xc_dom_register_loader
  - xc_dom_find_loader
  - xc_dom_register_arch_hooks
  - xc_dom_set_arch_hooks
  - xc_dom_release
  - xc_dom_allocate
  - xc_dom_kernel_max_size
  - xc_dom_module_max_size
  - xc_dom_devicetree_max_size
  - xc_dom_kernel_file
  - xc_dom_module_file
  - xc_dom_devicetree_file
  - xc_dom_kernel_mem
  - xc_dom_module_mem
  - xc_dom_devicetree_mem
  - xc_dom_parse_image
  - xc_dom_rambase_init
  - xc_dom_mem_init
  - xc_dom_build_module
  - populate_acpi_pages
  - xc_dom_load_acpi
  - xc_dom_build_image
  - xc_dom_vaddr_to_ptr
  - xc_dom_virt_base
  - xc_dom_virt_entry
  - xc_dom_virt_hypercall
  - xc_dom_guest_os
  - xc_dom_feature_get
  source_file: /src/xen/tools/libs/guest/xg_dom_core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pte_to_frame
  - merge_pte
  source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START_X86_64
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
      type_or_value: 0xFFFF800000000000ULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_END_X86_64
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
      type_or_value: 0xFFFF87FFFFFFFFFFULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START_X86_32
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
      type_or_value: 0x00000000F5800000ULL
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_END_X86_32
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
      type_or_value: 0x00000000FFFFFFFFULL
    - item_type: preproc_def
      name: PTE_FRAME_MASK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.h
      type_or_value: 0x000ffffffffff000ULL
    structs: []
    typedefs: []
    union: []
- function_names:
  - round_pgup
  - round_pgdown
  - find_table
  - xc_dom_probe_bin_kernel
  - xc_dom_parse_bin_kernel
  - xc_dom_load_bin_kernel
  - register_loader
  source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_MULTIBOOT_MAGIC3
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '0x336ec578'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_ALIGN4K
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_NEEDMEMINFO
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_NEEDVIDINFO
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_ADDRSVALID
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_PAE_SHIFT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: '14'
    - item_type: preproc_def
      name: XEN_MULTIBOOT_FLAG_PAE_MASK
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: (3 << XEN_MULTIBOOT_FLAG_PAE_SHIFT)
    - item_type: preproc_def
      name: FLAGS_MASK
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: "((~ 0) & (~ XEN_MULTIBOOT_FLAG_ALIGN4K) & \\\n    (~ XEN_MULTIBOOT_FLAG_PAE_MASK))"
    - item_type: preproc_def
      name: FLAGS_REQUIRED
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
      type_or_value: XEN_MULTIBOOT_FLAG_ADDRSVALID
    structs:
    - fields:
      - name: magic
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: checksum
        type: uint32_t
      - name: header_addr
        type: uint32_t
      - name: load_addr
        type: uint32_t
      - name: load_end_addr
        type: uint32_t
      - name: bss_end_addr
        type: uint32_t
      - name: entry_addr
        type: uint32_t
      item_type: struct
      name: xen_bin_image_table
      pos:
        line_end: 99
        line_start: 89
        source_file: /src/xen/tools/libs/guest/xg_dom_binloader.c
    typedefs: []
    union: []
- function_names:
  - handle_hvm_context
  - handle_hvm_params
  - x86_hvm_pfn_is_valid
  - x86_hvm_pfn_to_gfn
  - x86_hvm_set_gfn
  - x86_hvm_set_page_type
  - x86_hvm_localise_page
  - x86_hvm_setup
  - x86_hvm_process_record
  - x86_hvm_stream_complete
  - x86_hvm_cleanup
  source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_hvm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_blob
  - write_record
  - is_known_page_type
  - page_type_to_populate
  - page_type_has_stream_data
  source_file: /src/xen/tools/libs/guest/xg_sr_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RECORD_NOT_PROCESSED
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BROKEN_CHANNEL
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_BUF_RECORDS
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: (*pfn_to_gfn)(const struct xc_sr_context *ctx, xen_pfn_t pfn)
        type: xen_pfn_t
      - name: "(*normalise_page)(struct xc_sr_context *ctx, xen_pfn_t type,\n                          void
          **page)"
        type: int
      - name: (*setup)(struct xc_sr_context *ctx)
        type: int
      - name: (*static_data)(struct xc_sr_context *ctx)
        type: int
      - name: (*start_of_stream)(struct xc_sr_context *ctx)
        type: int
      - name: (*start_of_checkpoint)(struct xc_sr_context *ctx)
        type: int
      - name: (*end_of_checkpoint)(struct xc_sr_context *ctx)
        type: int
      - name: (*check_vm_state)(struct xc_sr_context *ctx)
        type: int
      - name: (*cleanup)(struct xc_sr_context *ctx)
        type: int
      item_type: struct
      name: xc_sr_save_ops
      pos:
        line_end: 101
        line_start: 24
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    - fields:
      - name: (*pfn_to_gfn)(const struct xc_sr_context *ctx, xen_pfn_t pfn)
        type: xen_pfn_t
      - name: (*pfn_is_valid)(const struct xc_sr_context *ctx, xen_pfn_t pfn)
        type: bool
      - name: (*set_gfn)(struct xc_sr_context *ctx, xen_pfn_t pfn, xen_pfn_t gfn)
        type: void
      - name: "(*set_page_type)(struct xc_sr_context *ctx, xen_pfn_t pfn,\n                          xen_pfn_t
          type)"
        type: void
      - name: (*localise_page)(struct xc_sr_context *ctx, uint32_t type, void *page)
        type: int
      - name: (*setup)(struct xc_sr_context *ctx)
        type: int
      - name: (*process_record)(struct xc_sr_context *ctx, struct xc_sr_record *rec)
        type: int
      - name: "(*static_data_complete)(struct xc_sr_context *ctx,\n                                unsigned
          int *missing)"
        type: int
      - name: (*stream_complete)(struct xc_sr_context *ctx)
        type: int
      - name: (*cleanup)(struct xc_sr_context *ctx)
        type: int
      item_type: struct
      name: xc_sr_restore_ops
      pos:
        line_end: 177
        line_start: 110
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    - fields:
      - name: '*ptr'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: xc_sr_blob
      pos:
        line_end: 184
        line_start: 180
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    - fields:
      - name: '*xch'
        type: xc_interface
      - name: domid
        type: uint32_t
      - name: fd
        type: int
      - name: stream_type
        type: xc_stream_type_t
      - name: dominfo
        type: xc_domaininfo_t
      item_type: struct
      name: xc_sr_context
      pos:
        line_end: 391
        line_start: 211
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    - fields:
      - name: basic
        type: struct xc_sr_blob
      item_type: struct
      name: xc_sr_x86_pv_restore_vcpu
      pos:
        line_end: 364
        line_start: 361
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    - fields:
      - name: type
        type: uint32_t
      - name: length
        type: uint32_t
      - name: '*data'
        type: void
      item_type: struct
      name: xc_sr_record
      pos:
        line_end: 404
        line_start: 399
        source_file: /src/xen/tools/libs/guest/xg_sr_common.h
    typedefs: []
    union: []
- function_names:
  - xc_read_image
  - xc_inflate_buffer
  - pin_table
  - csum_page
  source_file: /src/xen/tools/libs/guest/xg_private.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHUNK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libs/guest/xg_private.c
      type_or_value: 1*1024*1024
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_FIELD
  - SET_FIELD
  - get_unaligned_le32
  - NRPAGES
  - xc_pfn_to_mfn
  - M2P_SIZE
  - M2P_CHUNKS
  source_file: /src/xen/tools/libs/guest/xg_private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '64'
    - item_type: preproc_def
      name: __init
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: __attribute__ ((constructor))
    - item_type: preproc_def
      name: _PAGE_PRESENT
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x001'
    - item_type: preproc_def
      name: _PAGE_RW
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x002'
    - item_type: preproc_def
      name: _PAGE_USER
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x004'
    - item_type: preproc_def
      name: _PAGE_PWT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x008'
    - item_type: preproc_def
      name: _PAGE_PCD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x010'
    - item_type: preproc_def
      name: _PAGE_ACCESSED
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x020'
    - item_type: preproc_def
      name: _PAGE_DIRTY
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x040'
    - item_type: preproc_def
      name: _PAGE_PAT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x080'
    - item_type: preproc_def
      name: _PAGE_PSE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x080'
    - item_type: preproc_def
      name: _PAGE_GLOBAL
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: VIRT_BITS_I386
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '32'
    - item_type: preproc_def
      name: VIRT_BITS_X86_64
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '48'
    - item_type: preproc_def
      name: PGTBL_LEVELS_I386
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PGTBL_LEVELS_X86_64
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PGTBL_LEVEL_SHIFT_X86
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '9'
    - item_type: preproc_def
      name: L1_PAGETABLE_SHIFT_PAE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: L2_PAGETABLE_SHIFT_PAE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '21'
    - item_type: preproc_def
      name: L3_PAGETABLE_SHIFT_PAE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '30'
    - item_type: preproc_def
      name: L1_PAGETABLE_ENTRIES_PAE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: L2_PAGETABLE_ENTRIES_PAE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: L3_PAGETABLE_ENTRIES_PAE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '4'
    - item_type: preproc_def
      name: L1_PAGETABLE_SHIFT_X86_64
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: L2_PAGETABLE_SHIFT_X86_64
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '21'
    - item_type: preproc_def
      name: L3_PAGETABLE_SHIFT_X86_64
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '30'
    - item_type: preproc_def
      name: L4_PAGETABLE_SHIFT_X86_64
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '39'
    - item_type: preproc_def
      name: L1_PAGETABLE_ENTRIES_X86_64
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: L2_PAGETABLE_ENTRIES_X86_64
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: L3_PAGETABLE_ENTRIES_X86_64
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: L4_PAGETABLE_ENTRIES_X86_64
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '512'
    - item_type: preproc_def
      name: PAGE_SHIFT_ARM
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE_ARM
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: (1UL << PAGE_SHIFT_ARM)
    - item_type: preproc_def
      name: PAGE_MASK_ARM
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: (~(PAGE_SIZE_ARM-1))
    - item_type: preproc_def
      name: PAGE_SHIFT_X86
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE_X86
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: (1UL << PAGE_SHIFT_X86)
    - item_type: preproc_def
      name: PAGE_MASK_X86
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: (~(PAGE_SIZE_X86-1))
    - item_type: preproc_def
      name: MADDR_BITS_X86
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: '((dinfo->guest_width == 8) ? 52 : 44)'
    - item_type: preproc_def
      name: MFN_MASK_X86
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: ((1ULL << (MADDR_BITS_X86 - PAGE_SHIFT_X86)) - 1)
    - item_type: preproc_def
      name: M2P_SHIFT
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: L2_PAGETABLE_SHIFT_PAE
    - item_type: preproc_def
      name: M2P_CHUNK_SIZE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type_or_value: (1 << M2P_SHIFT)
    structs:
    - fields:
      - name: guest_width
        type: unsigned int
      - name: p2m_frames
        type: unsigned int
      - name: p2m_size
        type: unsigned long
      item_type: struct
      name: domain_info_context
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/xen/tools/libs/guest/xg_private.h
    - fields:
      - name: '*name'
        type: char
      - name: (*probe) (struct xc_dom_image * dom)
        type: elf_negerrnoval
      - name: (*parser) (struct xc_dom_image * dom)
        type: elf_negerrnoval
      - name: (*loader) (struct xc_dom_image * dom)
        type: elf_errorstatus
      - name: '*next'
        type: struct xc_dom_loader
      item_type: struct
      name: xc_dom_loader
      pos:
        line_end: 69
        line_start: 61
        source_file: /src/xen/tools/libs/guest/xg_private.h
    - fields:
      - name: policy
        type: struct cpu_policy
      - name: leaves[CPUID_MAX_SERIALISED_LEAVES]
        type: xen_cpuid_leaf_t
      - name: msrs[MSR_MAX_SERIALISED_ENTRIES]
        type: xen_msr_entry_t
      item_type: struct
      name: xc_cpu_policy
      pos:
        line_end: 179
        line_start: 175
        source_file: /src/xen/tools/libs/guest/xg_private.h
    typedefs:
    - item_type: typedef
      name: x86_pgentry_t
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/xen/tools/libs/guest/xg_private.h
      type: uint64_t
    union: []
- function_names:
  - bitmaskof
  - featureword_of
  - xc_get_cpu_levelling_caps
  - xc_get_cpu_featureset
  - xc_get_cpu_featureset_size
  - xc_get_static_cpu_featuremask
  - xc_cpu_policy_get_size
  - get_system_cpu_policy
  - get_domain_cpu_policy
  - xc_set_domain_cpu_policy
  - compare_leaves
  - find_leaf
  - xc_cpuid_xend_policy
  - compare_msr
  - find_msr
  - xc_msr_policy
  - xc_cpuid_apply_policy
  - xc_cpu_policy_init
  - xc_cpu_policy_destroy
  - deserialize_policy
  - xc_cpu_policy_get_system
  - xc_cpu_policy_get_domain
  - xc_cpu_policy_set_domain
  - xc_cpu_policy_serialise
  - xc_cpu_policy_update_cpuid
  - xc_cpu_policy_update_msrs
  - xc_cpu_policy_is_compatible
  source_file: /src/xen/tools/libs/guest/xg_cpuid_x86.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_headers
  - pfn_is_populated
  - pfn_set_populated
  - populate_small_superpage
  - populate_pfns
  - process_page_data
  - handle_page_data
  - send_checkpoint_dirty_pfn_list
  - handle_checkpoint
  - HANDLE_CALLBACK_RETURN_VALUE
  - buffer_record
  - handle_static_data_end
  - process_record
  - setup
  - cleanup
  - restore
  - xc_domain_restore
  source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMALL_SUPERPAGE_ORDER
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/tools/libs/guest/xg_sr_restore.c
      type_or_value: '9'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_to_le32
  - le32_to_cpu
  - xc_try_xz_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
      type: uint8_t
    - item_type: typedef
      name: u16
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
      type: uint16_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
      type: uint32_t
    - item_type: typedef
      name: __le32
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_xz.c
      type: uint32_t
    union: []
- function_names:
  - likely
  - unlikely
  - le16_to_cpu
  - xc_try_lz4_decode
  - xc_try_lz4_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCHIVE_MAGICNUMBER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
      type_or_value: '0x184C2102'
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
      type: uint8_t
    - item_type: typedef
      name: u16
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
      type: uint16_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
      type: uint32_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_lz4.c
      type: uint64_t
    union: []
- function_names:
  - unsafe_error
  - unsafe_flush
  - xc_dom_decompress_unsafe
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_hvm_context
  - write_hvm_params
  - x86_hvm_pfn_to_gfn
  - x86_hvm_normalise_page
  - x86_hvm_setup
  - x86_hvm_static_data
  - x86_hvm_start_of_stream
  - x86_hvm_start_of_checkpoint
  - x86_hvm_check_vm_state
  - x86_hvm_end_of_checkpoint
  - x86_hvm_cleanup
  source_file: /src/xen/tools/libs/guest/xg_sr_save_x86_hvm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dhdr_type_to_str
  - rec_type_to_str
  - write_split_record
  - read_record
  - build_assertions
  source_file: /src/xen/tools/libs/guest/xg_sr_common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_core_strtab_init
  - xc_core_strtab_free
  - xc_core_strtab_get
  - xc_core_shdr_init
  - xc_core_shdr_free
  - xc_core_shdr_get
  - xc_core_shdr_set
  - xc_core_ehdr_init
  - elfnote_fill_xen_version
  - elfnote_fill_format_version
  - elfnote_init
  - elfnote_dump_none
  - elfnote_dump_core_header
  - elfnote_dump_xen_version
  - elfnote_dump_format_version
  - xc_domain_dumpcore_via_callback
  - local_file_dump
  - xc_domain_dumpcore
  source_file: /src/xen/tools/libs/guest/xg_core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DUMP_INCREMENT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/libs/guest/xg_core.c
      type_or_value: (4 * 1024)
    - item_type: preproc_def
      name: SHDR_INIT
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/tools/libs/guest/xg_core.c
      type_or_value: ((uint16_t)16)
    - item_type: preproc_def
      name: SHDR_INC
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/libs/guest/xg_core.c
      type_or_value: ((uint16_t)4)
    structs:
    - fields:
      - name: '*strings'
        type: char
      - name: length
        type: uint16_t
      - name: max
        type: uint16_t
      item_type: struct
      name: xc_core_strtab
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/xen/tools/libs/guest/xg_core.c
    - fields:
      - name: num
        type: uint16_t
      - name: num_max
        type: uint16_t
      - name: '*shdrs'
        type: Elf64_Shdr
      item_type: struct
      name: xc_core_section_headers
      pos:
        line_end: 159
        line_start: 154
        source_file: /src/xen/tools/libs/guest/xg_core.c
    - fields:
      - name: fd
        type: int
      item_type: struct
      name: dump_args
      pos:
        line_end: 964
        line_start: 962
        source_file: /src/xen/tools/libs/guest/xg_core.c
    typedefs: []
    union: []
- function_names:
  - is_canonical_address
  - map_shinfo
  - copy_mfns_from_guest
  - map_p2m_leaves
  - map_p2m_tree
  - get_p2m_generation
  - x86_pv_check_vm_state_p2m_list
  - map_p2m_list
  - map_p2m
  - write_one_vcpu_basic
  - write_one_vcpu_extended
  - write_one_vcpu_xsave
  - write_one_vcpu_msrs
  - write_all_vcpu_information
  - write_x86_pv_info
  - write_x86_pv_p2m_frames
  - write_shared_info
  - normalise_pagetable
  - x86_pv_pfn_to_gfn
  - x86_pv_normalise_page
  - x86_pv_setup
  - x86_pv_static_data
  - x86_pv_start_of_stream
  - x86_pv_start_of_checkpoint
  - x86_pv_end_of_checkpoint
  - x86_pv_check_vm_state
  - x86_pv_cleanup
  source_file: /src/xen/tools/libs/guest/xg_sr_save_x86_pv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_try_bzip2_decode
  - xc_try_bzip2_decode
  - _xc_try_lzma_decode
  - xc_try_xz_decode
  - xc_try_lzma_decode
  - xc_try_xz_decode
  - xc_try_lzma_decode
  - lzo_read_16
  - lzo_read_32
  - xc_try_lzo1x_decode
  - xc_try_lzo1x_decode
  - xc_try_zstd_decode
  - xc_try_zstd_decode
  - VERSION
  - check_magic
  - xc_dom_probe_bzimage_kernel
  - xc_dom_parse_bzimage_kernel
  - xc_dom_load_bzimage_kernel
  - register_loader
  source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LZMA_BLOCK_SIZE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
      type_or_value: (256*1024*1024)
    - item_type: preproc_def
      name: LZOP_HEADER_HAS_FILTER
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: LZOP_MAX_BLOCK_SIZE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
      type_or_value: (64*1024*1024)
    - item_type: preproc_def
      name: HDR_MAGIC
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
      type_or_value: '"HdrS"'
    - item_type: preproc_def
      name: HDR_MAGIC_SZ
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
      type_or_value: '4'
    structs:
    - fields:
      - name: _pad0[0x1f1]
        type: uint8_t
      - name: setup_sects
        type: uint8_t
      - name: root_flags
        type: uint16_t
      - name: syssize
        type: uint32_t
      - name: ram_size
        type: uint16_t
      - name: vid_mode
        type: uint16_t
      - name: root_dev
        type: uint16_t
      - name: boot_flag
        type: uint16_t
      - name: jump
        type: uint16_t
      - name: header
        type: uint32_t
      - name: version
        type: uint16_t
      - name: realmode_swtch
        type: uint32_t
      - name: start_sys
        type: uint16_t
      - name: kernel_version
        type: uint16_t
      - name: type_of_loader
        type: uint8_t
      - name: loadflags
        type: uint8_t
      - name: setup_move_size
        type: uint16_t
      - name: code32_start
        type: uint32_t
      - name: ramdisk_image
        type: uint32_t
      - name: ramdisk_size
        type: uint32_t
      - name: bootsect_kludge
        type: uint32_t
      - name: heap_end_ptr
        type: uint16_t
      - name: _pad1
        type: uint16_t
      - name: cmd_line_ptr
        type: uint32_t
      - name: initrd_addr_max
        type: uint32_t
      - name: kernel_alignment
        type: uint32_t
      - name: relocatable_kernel
        type: uint8_t
      - name: _pad2[3]
        type: uint8_t
      - name: cmdline_size
        type: uint32_t
      - name: hardware_subarch
        type: uint32_t
      - name: hardware_subarch_data
        type: uint64_t
      - name: payload_offset
        type: uint32_t
      - name: payload_length
        type: uint32_t
      item_type: struct
      name: setup_header
      pos:
        line_end: 664
        line_start: 627
        source_file: /src/xen/tools/libs/guest/xg_dom_bzimageloader.c
    typedefs: []
    union: []
- function_names:
  - likely
  - unlikely
  - be16_to_cpu
  - be32_to_cpu
  - xc_try_lzo1x_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
      type: uint8_t
    - item_type: typedef
      name: u32
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
      type: uint32_t
    - item_type: typedef
      name: u16
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
      type: uint16_t
    - item_type: typedef
      name: u64
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_lzo1x.c
      type: uint64_t
    union: []
- function_names:
  - check_elf_kernel
  - xc_dom_probe_hvm_kernel
  - xc_dom_parse_hvm_kernel
  - module_init_one
  - modules_init
  - xc_dom_load_hvm_kernel
  - register_loader
  source_file: /src/xen/tools/libs/guest/xg_dom_hvmloader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_domain_save
  - xc_domain_restore
  source_file: /src/xen/tools/libs/guest/xg_nomigrate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_try_zstd_decode
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __packed
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type_or_value: __attribute__((__packed__))
    structs: []
    typedefs:
    - item_type: typedef
      name: u8
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint8_t
    - item_type: typedef
      name: __u16
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint16_t
    - item_type: typedef
      name: __u32
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint32_t
    - item_type: typedef
      name: __u64
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint64_t
    - item_type: typedef
      name: __le16
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint16_t
    - item_type: typedef
      name: __le32
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint32_t
    - item_type: typedef
      name: __le64
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint64_t
    - item_type: typedef
      name: __be16
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint16_t
    - item_type: typedef
      name: __be32
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint32_t
    - item_type: typedef
      name: __be64
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe_zstd.c
      type: uint64_t
    union: []
- function_names:
  - special_pfn
  - ioreq_server_pfn
  - bits_to_mask
  - round_down
  - round_up
  - round_pg_up
  - xc_domain_get_native_protocol
  - count_pgtables
  - alloc_pgtables_pv
  - alloc_pgtables_x86_32_pae
  - pfn_to_paddr
  - pgentry_to_pfn
  - move_l3_below_4G
  - get_pg_table
  - get_pg_prot
  - setup_pgtables_pv
  - setup_pgtables_x86_32_pae
  - alloc_pgtables_x86_64
  - setup_pgtables_x86_64
  - alloc_p2m_list
  - alloc_p2m_list_x86_32
  - alloc_p2m_list_x86_64
  - alloc_magic_pages_pv
  - build_hvm_info
  - alloc_magic_pages_hvm
  - start_info_x86_32
  - start_info_x86_64
  - shared_info_x86_32
  - shared_info_x86_64
  - vcpu_x86_32
  - vcpu_x86_64
  - hvm_get_save_record
  - vcpu_hvm
  - x86_compat
  - meminit_pv
  - check_mmio_hole
  - meminit_hvm
  - bootearly
  - bootlate_pv
  - add_module_to_list
  - bootlate_hvm
  - xc_dom_translated
  - register_arch_hooks
  source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUPERPAGE_BATCH_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '512'
    - item_type: preproc_def
      name: SUPERPAGE_2MB_SHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '9'
    - item_type: preproc_def
      name: SUPERPAGE_2MB_NR_PFNS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: (1UL << SUPERPAGE_2MB_SHIFT)
    - item_type: preproc_def
      name: SUPERPAGE_1GB_SHIFT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '18'
    - item_type: preproc_def
      name: SUPERPAGE_1GB_NR_PFNS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: (1UL << SUPERPAGE_1GB_SHIFT)
    - item_type: preproc_def
      name: X86_CR0_PE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: X86_CR0_ET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: X86_DR6_DEFAULT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: 0xffff0ff0u
    - item_type: preproc_def
      name: X86_DR7_DEFAULT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: 0x00000400u
    - item_type: preproc_def
      name: MTRR_TYPE_WRBACK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MTRR_DEF_TYPE_ENABLE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: (1u << 11)
    - item_type: preproc_def
      name: SPECIALPAGE_PAGING
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SPECIALPAGE_ACCESS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SPECIALPAGE_SHARING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SPECIALPAGE_BUFIOREQ
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SPECIALPAGE_XENSTORE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SPECIALPAGE_IOREQ
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '5'
    - item_type: preproc_def
      name: SPECIALPAGE_IDENT_PT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '6'
    - item_type: preproc_def
      name: SPECIALPAGE_CONSOLE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '7'
    - item_type: preproc_def
      name: NR_IOREQ_SERVER_PAGES
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '8'
    - item_type: preproc_def
      name: HVMLOADER_MODULE_MAX_COUNT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HVMLOADER_MODULE_CMDLINE_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: MAX_GUEST_CMDLINE
    - item_type: preproc_def
      name: MAPPING_MAX
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
      type_or_value: '2'
    structs:
    - fields:
      - name: levels
        type: unsigned
      - name: vaddr_mask
        type: xen_vaddr_t
      - name: lvl_prot[4]
        type: x86_pgentry_t
      item_type: struct
      name: xc_dom_params
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: from
        type: xen_vaddr_t
      - name: to
        type: xen_vaddr_t
      - name: pfn
        type: xen_pfn_t
      - name: pgtables
        type: unsigned int
      item_type: struct
      name: xc_dom_x86_mapping_lvl
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: area
        type: struct xc_dom_x86_mapping_lvl
      - name: lvls[4]
        type: struct xc_dom_x86_mapping_lvl
      item_type: struct
      name: xc_dom_x86_mapping
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: n_mappings
        type: unsigned
      - name: maps[MAPPING_MAX]
        type: struct xc_dom_x86_mapping
      - name: '*params'
        type: struct xc_dom_params
      - name: '*p2m_guest'
        type: void
      item_type: struct
      name: xc_dom_image_x86
      pos:
        line_end: 108
        line_start: 100
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: header_d
        type: struct hvm_save_descriptor
      - name: (HEADER)
        type: HVM_SAVE_TYPE
      - name: cpu_d
        type: struct hvm_save_descriptor
      - name: cpu
        type: HVM_SAVE_TYPE
      - name: end_d
        type: struct hvm_save_descriptor
      - name: (END)
        type: HVM_SAVE_TYPE
      item_type: struct
      name: bsp_ctx
      pos:
        line_end: 998
        line_start: 991
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: header_d
        type: struct hvm_save_descriptor
      - name: (HEADER)
        type: HVM_SAVE_TYPE
      - name: mtrr_d
        type: struct hvm_save_descriptor
      - name: mtrr
        type: HVM_SAVE_TYPE
      - name: end_d
        type: struct hvm_save_descriptor
      - name: (END)
        type: HVM_SAVE_TYPE
      item_type: struct
      name: "mtrr = {\n            .header_d = bsp_ctx.header_d,\n            .header
        = bsp_ctx.header,\n            .mtrr_d.typecode = HVM_SAVE_CODE(MTRR),\n            .mtrr_d.length
        = HVM_SAVE_LENGTH(MTRR),\n            .end_d = bsp_ctx.end_d,\n            .end
        = bsp_ctx.end,\n        }"
      pos:
        line_end: 1095
        line_start: 1088
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: '*guest'
        type: char
      - name: size
        type: uint32_t
      item_type: struct
      name: "types[] = {\n        { \"xen-3.0-x86_32p\", 32 },\n        { \"xen-3.0-x86_64\",
        \ 64 },\n    }"
      pos:
        line_end: 1156
        line_start: 1153
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    - fields:
      - name: '*guest'
        type: char
      - name: pgd_type
        type: unsigned long
      item_type: struct
      name: "types[] = {\n        { \"xen-3.0-x86_32\",  MMUEXT_PIN_L2_TABLE},\n        {
        \"xen-3.0-x86_32p\", MMUEXT_PIN_L3_TABLE},\n        { \"xen-3.0-x86_64\",
        \ MMUEXT_PIN_L4_TABLE},\n    }"
      pos:
        line_end: 1672
        line_start: 1669
        source_file: /src/xen/tools/libs/guest/xg_dom_x86.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "decompress_fn(unsigned char *inbuf, unsigned int len,\n                          int
        (*fill)(void*, unsigned int),\n                          int (*flush)(void*,
        unsigned int),\n                          unsigned char *outbuf, unsigned
        int *posp,\n                          void (*error)(const char *x))"
      pos:
        line_end: 7
        line_start: 3
        source_file: /src/xen/tools/libs/guest/xg_dom_decompress_unsafe.h
      type: int
    union: []
- function_names:
  - xc_unmap_domain_meminfo
  - xc_map_domain_meminfo
  source_file: /src/xen/tools/libs/guest/xg_domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_core_arch_gpfn_may_present
  - xc_core_arch_memory_map_get
  - xc_core_arch_map_p2m_rw
  - xc_core_arch_map_p2m
  - xc_core_arch_map_p2m_writable
  - xc_core_arch_get_scratch_gpfn
  source_file: /src/xen/tools/libs/guest/xg_core_arm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_x86_tsc_info
  - handle_x86_tsc_info
  - write_x86_cpu_policy_records
  - handle_x86_cpuid_policy
  - handle_x86_msr_policy
  - x86_static_data_complete
  source_file: /src/xen/tools/libs/guest/xg_sr_common_x86.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pfn_to_mfn
  - expand_p2m
  - pin_pagetables
  - process_start_info
  - process_vcpu_basic
  - process_vcpu_extended
  - process_vcpu_xsave
  - process_vcpu_msrs
  - update_vcpu_context
  - update_guest_p2m
  - valid_x86_pv_info_combination
  - handle_x86_pv_info
  - handle_x86_pv_p2m_frames
  - handle_x86_pv_vcpu_blob
  - handle_shared_info
  - x86_pv_pfn_is_valid
  - x86_pv_set_page_type
  - x86_pv_set_gfn
  - x86_pv_localise_page
  - x86_pv_setup
  - x86_pv_process_record
  - x86_pv_stream_complete
  - x86_pv_cleanup
  source_file: /src/xen/tools/libs/guest/xg_sr_restore_x86_pv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/guest/xg_dom_decompress.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mfn_to_pfn
  - mfn_in_pseudophysmap
  - dump_bad_pseudophysmap_entry
  - cr3_to_mfn
  - mfn_to_cr3
  - x86_pv_domain_info
  - x86_pv_map_m2p
  source_file: /src/xen/tools/libs/guest/xg_sr_common_x86_pv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_map_foreign_pages
  - xc_map_foreign_range
  - xc_map_foreign_ranges
  - xc_map_foreign_bulk
  source_file: /src/xen/tools/libs/ctrl/xc_foreign_memory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_dt_overlay
  - xc_dt_overlay_domain
  source_file: /src/xen/tools/libs/ctrl/xc_dt_overlay.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_sched_credit_domain_set
  - xc_sched_credit_domain_get
  - xc_sched_credit_params_set
  - xc_sched_credit_params_get
  source_file: /src/xen/tools/libs/ctrl/xc_csched.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_resource_op_one
  - xc_resource_op_multi
  - xc_resource_op
  source_file: /src/xen/tools/libs/ctrl/xc_resource.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_flask_op
  - xc_flask_load
  - xc_flask_context_to_sid
  - xc_flask_sid_to_context
  - xc_flask_getenforce
  - xc_flask_setenforce
  - xc_flask_getbool_byid
  - xc_flask_getbool_byname
  - xc_flask_setbool
  - xc_flask_add
  - xc_flask_add_pirq
  - xc_flask_add_ioport
  - xc_flask_add_iomem
  - xc_flask_add_device
  - xc_flask_del
  - xc_flask_del_pirq
  - xc_flask_del_ioport
  - xc_flask_del_iomem
  - xc_flask_del_device
  - xc_flask_access
  - xc_flask_avc_hashstats
  - xc_flask_avc_cachestats
  - xc_flask_policyvers
  - xc_flask_getavc_threshold
  - xc_flask_setavc_threshold
  - xc_flask_relabel_domain
  source_file: /src/xen/tools/libs/ctrl/xc_flask.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OCON_ISID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '0    '
    - item_type: preproc_def
      name: OCON_PIRQ
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '1    '
    - item_type: preproc_def
      name: OCON_IOPORT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '2    '
    - item_type: preproc_def
      name: OCON_IOMEM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '3    '
    - item_type: preproc_def
      name: OCON_DEVICE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '4    '
    - item_type: preproc_def
      name: INITCONTEXTLEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libs/ctrl/xc_flask.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_hvm_create_ioreq_server
  - xc_hvm_get_ioreq_server_info
  - xc_hvm_map_io_range_to_ioreq_server
  - xc_hvm_unmap_io_range_from_ioreq_server
  - xc_hvm_map_pcidev_to_ioreq_server
  - xc_hvm_unmap_pcidev_from_ioreq_server
  - xc_hvm_destroy_ioreq_server
  - xc_hvm_set_ioreq_server_state
  - xc_hvm_set_pci_intx_level
  - xc_hvm_set_isa_irq_level
  - xc_hvm_set_pci_link_route
  - xc_hvm_inject_msi
  - xc_hvm_track_dirty_vram
  - xc_hvm_modified_memory
  - xc_hvm_set_mem_type
  - xc_hvm_inject_trap
  - xc_domain_pin_memory_cacheattr
  source_file: /src/xen/tools/libs/ctrl/xc_devicemodel_compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - discard_file_cache
  - xc_memalign
  - xc_pcidev_get_gsi
  source_file: /src/xen/tools/libs/ctrl/xc_freebsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_memshr_control
  - xc_memshr_ring_enable
  - xc_memshr_ring_disable
  - xc_memshr_memop
  - xc_memshr_nominate_gfn
  - xc_memshr_nominate_gref
  - xc_memshr_share_gfns
  - xc_memshr_share_grefs
  - xc_memshr_add_to_physmap
  - xc_memshr_range_share
  - xc_memshr_domain_resume
  - xc_memshr_debug_gfn
  - xc_memshr_debug_gref
  - xc_memshr_fork
  - xc_memshr_fork_reset
  - xc_memshr_audit
  - xc_sharing_freed_pages
  - xc_sharing_used_frames
  source_file: /src/xen/tools/libs/ctrl/xc_memshr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_cpu_online
  - xc_cpu_offline
  - xc_smt_enable
  - xc_smt_disable
  source_file: /src/xen/tools/libs/ctrl/xc_cpu_hotplug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_gnttab_open
  - xc_gnttab_close
  - xc_gnttab_map_grant_ref
  - xc_gnttab_map_grant_refs
  - xc_gnttab_map_domain_grant_refs
  - xc_gnttab_map_grant_ref_notify
  - xc_gnttab_munmap
  - xc_gnttab_set_max_grants
  - xc_gntshr_open
  - xc_gntshr_close
  - xc_gntshr_share_pages
  - xc_gntshr_share_page_notify
  - xc_gntshr_munmap
  source_file: /src/xen/tools/libs/ctrl/xc_gnttab_compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_vm_event_control
  - xc_vm_event_enable
  - xc_vm_event_get_version
  source_file: /src/xen/tools/libs/ctrl/xc_vm_event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - discard_file_cache
  - xc_memalign
  - xc_pcidev_get_gsi
  source_file: /src/xen/tools/libs/ctrl/xc_minios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_sysctl_save
  - xc_cpupool_create
  - xc_cpupool_destroy
  - xc_cpupool_getinfo
  - xc_cpupool_infofree
  - xc_cpupool_addcpu
  - xc_cpupool_removecpu
  - xc_cpupool_movedomain
  - xc_cpupool_freeinfo
  source_file: /src/xen/tools/libs/ctrl/xc_cpupool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_RMCPU_BUSY_RETRIES
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/tools/libs/ctrl/xc_cpupool.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_mem_paging_memop
  - xc_mem_paging_enable
  - xc_mem_paging_disable
  - xc_mem_paging_resume
  - xc_mem_paging_nominate
  - xc_mem_paging_evict
  - xc_mem_paging_prep
  - xc_mem_paging_load
  source_file: /src/xen/tools/libs/ctrl/xc_mem_paging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_physdev_pci_access_modify
  - xc_physdev_map_pirq
  - xc_physdev_map_pirq_msi
  - xc_physdev_map_pirq_gsi
  - xc_physdev_unmap_pirq
  source_file: /src/xen/tools/libs/ctrl/xc_physdev.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_gnttab_op
  - xc_gnttab_query_size
  - xc_gnttab_get_version
  - _gnttab_map_table
  - xc_gnttab_map_table_v1
  - xc_gnttab_map_table_v2
  source_file: /src/xen/tools/libs/ctrl/xc_gnttab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_domain_create
  - xc_domain_cacheflush
  - xc_domain_pause
  - xc_domain_unpause
  - xc_domain_destroy
  - xc_domain_shutdown
  - xc_domain_node_setaffinity
  - xc_domain_node_getaffinity
  - xc_vcpu_setaffinity
  - xc_vcpu_getaffinity
  - xc_domain_get_guest_width
  - xc_dom_vuart_init
  - xc_domain_getinfo_single
  - xc_domain_getinfolist
  - xc_set_broken_page_p2m
  - xc_domain_hvm_getcontext
  - xc_domain_hvm_getcontext_partial
  - xc_domain_hvm_setcontext
  - xc_vcpu_getcontext
  - xc_vcpu_get_extstate
  - xc_watchdog
  - xc_shadow_control
  - xc_logdirty_control
  - xc_get_paging_mempool_size
  - xc_set_paging_mempool_size
  - xc_domain_setmaxmem
  - xc_domain_set_memory_map
  - xc_get_machine_memory_map
  - xc_domain_set_memmap_limit
  - xc_domain_set_memmap_limit
  - xc_reserved_device_memory_map
  - xc_domain_set_time_offset
  - xc_domain_set_tsc_info
  - xc_domain_get_tsc_info
  - xc_domain_maximum_gpfn
  - xc_domain_nr_gpfns
  - xc_domain_increase_reservation
  - xc_domain_increase_reservation_exact
  - xc_domain_decrease_reservation
  - xc_domain_decrease_reservation_exact
  - xc_domain_add_to_physmap
  - xc_domain_add_to_physmap_batch
  - xc_domain_remove_from_physmap
  - xc_domain_claim_pages
  - xc_domain_populate_physmap
  - xc_domain_populate_physmap_exact
  - xc_domain_memory_exchange_pages
  - xc_domain_pod_target
  - xc_domain_set_pod_target
  - xc_domain_get_pod_target
  - xc_domain_set_pod_target
  - xc_domain_get_pod_target
  - xc_domain_max_vcpus
  - xc_domain_sethandle
  - xc_vcpu_getinfo
  - xc_domain_ioport_permission
  - xc_availheap
  - xc_vcpu_setcontext
  - xc_domain_irq_permission
  - xc_domain_gsi_permission
  - xc_domain_iomem_permission
  - xc_domain_send_trigger
  - xc_hvm_param_set
  - xc_hvm_param_get
  - xc_set_hvm_param
  - xc_get_hvm_param
  - xc_domain_setdebugging
  - xc_assign_device
  - xc_get_device_group
  - xc_test_assign_device
  - xc_deassign_device
  - xc_assign_dt_device
  - xc_test_assign_dt_device
  - xc_deassign_dt_device
  - xc_domain_update_msi_irq
  - xc_domain_unbind_msi_irq
  - xc_domain_bind_pt_irq_int
  - xc_domain_bind_pt_irq
  - xc_domain_unbind_pt_irq_int
  - xc_domain_unbind_pt_irq
  - xc_domain_bind_pt_pci_irq
  - xc_domain_bind_pt_isa_irq
  - xc_domain_bind_pt_spi_irq
  - xc_domain_unbind_pt_spi_irq
  - xc_domain_memory_mapping
  - xc_domain_ioport_mapping
  - xc_domain_set_target
  - xc_domain_subscribe_for_suspend
  - xc_domain_debug_control
  - xc_domain_p2m_audit
  - xc_domain_set_access_required
  - xc_domain_set_virq_handler
  - xc_domain_setvnuma
  - xc_domain_getvnuma
  - xc_domain_soft_reset
  - xc_domain_set_llc_colors
  source_file: /src/xen/tools/libs/ctrl/xc_domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_kexec_exec
  - xc_kexec_get_range
  - xc_kexec_load
  - xc_kexec_unload
  - xc_kexec_status
  source_file: /src/xen/tools/libs/ctrl/xc_kexec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_sched_credit2_domain_set
  - xc_sched_credit2_domain_get
  - xc_sched_credit2_params_set
  - xc_sched_credit2_params_get
  source_file: /src/xen/tools/libs/ctrl/xc_csched2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IPRINTF
  - DPRINTF
  - DBGPRINTF
  - ERROR
  - PERROR
  - DECLARE_NAMED_HYPERCALL_BOUNCE
  - DECLARE_HYPERCALL_BOUNCE
  - DECLARE_HYPERCALL_BOUNCE_IN
  - HYPERCALL_BOUNCE_SET_SIZE
  - HYPERCALL_BOUNCE_SET_DIR
  - xc_hypercall_bounce_pre
  - xc_hypercall_bounce_post
  - do_physdev_op
  - do_domctl_maybe_retry_efault
  - do_domctl
  - do_domctl_retry_efault
  - do_sysctl
  - do_platform_op
  - do_multicall_op
  - DOMPRINTF
  - DOMPRINTF_CALLED
  - xc_core_arch_auto_translated_physmap
  - xc_core_arch_auto_translated_physmap
  source_file: /src/xen/tools/libs/ctrl/xc_private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: XC_PAGE_SHIFT
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: XC_PAGE_SIZE
    - item_type: preproc_def
      name: PAGE_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: XC_PAGE_MASK
    - item_type: preproc_def
      name: INVALID_PFN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: ((xen_pfn_t)-1)
    - item_type: preproc_def
      name: MAX_PAGECACHE_USAGE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: (4*1024)
    - item_type: preproc_def
      name: MAX_MMU_UPDATES
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*iov_base'
        type: void
      - name: iov_len
        type: size_t
      item_type: struct
      name: iovec
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
    - fields:
      - name: flags
        type: int
      - name: '*error_handler'
        type: xentoollog_logger
      - name: '*dombuild_logger'
        type: xentoollog_logger
      - name: last_error
        type: struct xc_error
      - name: '*dombuild_logger_file'
        type: FILE
      - name: '*currently_progress_reporting'
        type: char
      - name: '*xcall'
        type: xencall_handle
      - name: '*fmem'
        type: xenforeignmemory_handle
      - name: '*dmod'
        type: xendevicemodel_handle
      item_type: struct
      name: xc_interface_core
      pos:
        line_end: 96
        line_start: 80
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
    - fields:
      - name: updates[MAX_MMU_UPDATES]
        type: mmu_update_t
      - name: idx
        type: int
      - name: subject
        type: unsigned int
      item_type: struct
      name: xc_mmu
      pos:
        line_end: 375
        line_start: 371
        source_file: /src/xen/tools/libs/ctrl/xc_private.h
    typedefs: []
    union: []
- function_names:
  - xc_pm_get_max_px
  - xc_pm_get_pxstat
  - xc_pm_reset_pxstat
  - xc_pm_get_max_cx
  - xc_pm_get_cxstat
  - xc_pm_reset_cxstat
  - xc_get_cpufreq_para
  - CHK_FIELD
  - xc_set_cpufreq_gov
  - xc_set_cpufreq_para
  - xc_set_cpufreq_cppc
  - xc_get_cppc_para
  - xc_get_cpufreq_avgfreq
  - xc_set_sched_opt_smt
  - get_max_cstate
  - xc_get_cpuidle_max_cstate
  - xc_get_cpuidle_max_csubstate
  - set_max_cstate
  - xc_set_cpuidle_max_cstate
  - xc_set_cpuidle_max_csubstate
  - xc_enable_turbo
  - xc_disable_turbo
  source_file: /src/xen/tools/libs/ctrl/xc_pm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_get_max_cpus
  - xc_get_online_cpus
  - xc_get_max_nodes
  - xc_get_cpumap_size
  - xc_get_nodemap_size
  - xc_cpumap_alloc
  - BITS_PER_CPUMAP
  - CPUMAP_ENTRY
  - CPUMAP_SHIFT
  - xc_cpumap_clearcpu
  - xc_cpumap_setcpu
  - xc_cpumap_testcpu
  - xc_nodemap_alloc
  - xc_readconsolering
  - xc_send_debug_keys
  - xc_physinfo
  - xc_microcode_update
  - xc_get_cpu_version
  - xc_get_ucode_revision
  - xc_cputopoinfo
  - xc_numainfo
  - xc_pcitopoinfo
  - xc_sched_id
  - xc_mca_op
  - xc_mca_op_inject_v2
  - xc_perfc_reset
  - xc_perfc_query_number
  - xc_perfc_query
  - xc_lockprof_reset
  - xc_lockprof_query_number
  - xc_lockprof_query
  - xc_getcpuinfo
  - xc_livepatch_upload
  - xc_livepatch_get
  - xc_livepatch_list_get_sizes
  - xc_livepatch_list
  - _xc_livepatch_action
  - xc_livepatch_apply
  - xc_livepatch_revert
  - xc_livepatch_unload
  - xc_livepatch_replace
  source_file: /src/xen/tools/libs/ctrl/xc_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_xen_version
  - xc_version
  - do_xen_version_raw
  - varbuf_op
  - varbuf_simple_string
  - xc_xenver_extraversion
  - xc_xenver_capabilities
  - xc_xenver_changeset
  - xc_xenver_commandline
  - str2hex
  - xc_xenver_buildid
  source_file: /src/xen/tools/libs/ctrl/xc_version.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_sched_rtds_domain_set
  - xc_sched_rtds_domain_get
  - xc_sched_rtds_vcpu_set
  - xc_sched_rtds_vcpu_get
  source_file: /src/xen/tools/libs/ctrl/xc_rt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_sched_arinc653_schedule_set
  - xc_sched_arinc653_schedule_get
  source_file: /src/xen/tools/libs/ctrl/xc_arinc653.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/ctrl/xc_msr_x86.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_IA32_TSC
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/ctrl/xc_msr_x86.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: MSR_IA32_CMT_EVTSEL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/ctrl/xc_msr_x86.h
      type_or_value: '0x00000c8d'
    - item_type: preproc_def
      name: MSR_IA32_CMT_CTR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/ctrl/xc_msr_x86.h
      type_or_value: '0x00000c8e'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_set_mem_access
  - xc_set_mem_access_multi
  - xc_get_mem_access
  source_file: /src/xen/tools/libs/ctrl/xc_mem_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_altp2m_get_domain_state
  - xc_altp2m_set_domain_state
  - xc_altp2m_set_vcpu_enable_notify
  - xc_altp2m_set_vcpu_disable_notify
  - xc_altp2m_create_view
  - xc_altp2m_destroy_view
  - xc_altp2m_switch_to_view
  - xc_altp2m_get_suppress_ve
  - xc_altp2m_set_suppress_ve
  - xc_altp2m_set_supress_ve_multi
  - xc_altp2m_set_mem_access
  - xc_altp2m_change_gfn
  - xc_altp2m_set_mem_access_multi
  - xc_altp2m_get_mem_access
  - xc_altp2m_get_vcpu_p2m_idx
  - xc_altp2m_set_visibility
  source_file: /src/xen/tools/libs/ctrl/xc_altp2m.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_evtchn_op
  - xc_evtchn_alloc_unbound
  - xc_evtchn_reset
  - xc_evtchn_status
  source_file: /src/xen/tools/libs/ctrl/xc_evtchn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - discard_file_cache
  - xc_memalign
  - xc_pcidev_get_gsi
  source_file: /src/xen/tools/libs/ctrl/xc_linux.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_psr_cmt_attach
  - xc_psr_cmt_detach
  - xc_psr_cmt_get_domain_rmid
  - xc_psr_cmt_get_total_rmid
  - xc_psr_cmt_get_l3_upscaling_factor
  - xc_psr_cmt_get_l3_event_mask
  - xc_psr_cmt_get_l3_cache_size
  - xc_psr_cmt_get_data
  - xc_psr_cmt_enabled
  - xc_psr_set_domain_data
  - xc_psr_get_domain_data
  - xc_psr_get_hw_info
  source_file: /src/xen/tools/libs/ctrl/xc_psr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IA32_CMT_CTR_ERROR_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/ctrl/xc_psr.c
      type_or_value: (0x3ull << 62)
    - item_type: preproc_def
      name: EVTID_L3_OCCUPANCY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/ctrl/xc_psr.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: EVTID_TOTAL_MEM_COUNT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libs/ctrl/xc_psr.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: EVTID_LOCAL_MEM_COUNT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/ctrl/xc_psr.c
      type_or_value: '0x3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - discard_file_cache
  - xc_memalign
  - xc_pcidev_get_gsi
  source_file: /src/xen/tools/libs/ctrl/xc_solaris.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_evtchn_open
  - xc_evtchn_close
  - xc_evtchn_fd
  - xc_evtchn_notify
  - xc_evtchn_bind_unbound_port
  - xc_evtchn_bind_interdomain
  - xc_evtchn_bind_virq
  - xc_evtchn_unbind
  - xc_evtchn_pending
  - xc_evtchn_unmask
  source_file: /src/xen/tools/libs/ctrl/xc_evtchn_compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc__hypercall_buffer_alloc_pages
  - xc__hypercall_buffer_free_pages
  - xc__hypercall_buffer_alloc
  - xc__hypercall_buffer_free
  - xc__hypercall_bounce_pre
  - xc__hypercall_bounce_post
  - xc_hypercall_buffer_array_create
  - xc__hypercall_buffer_array_alloc
  - xc__hypercall_buffer_array_get
  - xc_hypercall_buffer_array_destroy
  source_file: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: max_bufs
        type: unsigned
      - name: '*bufs'
        type: xc_hypercall_buffer_t
      item_type: struct
      name: xc_hypercall_buffer_array
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/xen/tools/libs/ctrl/xc_hcall_buf.c
    typedefs: []
    union: []
- function_names:
  - tbuf_enable
  - xc_tbuf_set_size
  - xc_tbuf_get_size
  - xc_tbuf_enable
  - xc_tbuf_disable
  - xc_tbuf_set_cpu_mask
  - xc_tbuf_set_evt_mask
  source_file: /src/xen/tools/libs/ctrl/xc_tbuf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - discard_file_cache
  - xc_memalign
  - xc_pcidev_get_gsi
  source_file: /src/xen/tools/libs/ctrl/xc_netbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_monitor_enable
  - xc_monitor_disable
  - xc_monitor_resume
  - xc_monitor_get_capabilities
  - xc_monitor_write_ctrlreg
  - xc_monitor_mov_to_msr
  - xc_monitor_software_breakpoint
  - xc_monitor_singlestep
  - xc_monitor_descriptor_access
  - xc_monitor_guest_request
  - xc_monitor_inguest_pagefault
  - xc_monitor_emulate_each_rep
  - xc_monitor_debug_exceptions
  - xc_monitor_cpuid
  - xc_monitor_privileged_call
  - xc_monitor_emul_unimplemented
  - xc_monitor_vmexit
  - xc_monitor_io
  source_file: /src/xen/tools/libs/ctrl/xc_monitor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_interface_open
  - xc_interface_close
  - xc_interface_xcall_handle
  - xc_interface_fmem_handle
  - xc_interface_dmod_handle
  - xc_get_last_error
  - xc_clear_last_error
  - xc_error_code_to_desc
  - xc_reportv
  - xc_report
  - xc_report_error
  - xc_set_progress_prefix
  - xc_report_progress_single
  - xc_report_progress_step
  - xc_get_pfn_type_batch
  - xc_mmuext_op
  - flush_mmu_updates
  - xc_alloc_mmu_updates
  - xc_add_mmu_update
  - xc_flush_mmu_updates
  - xc_memory_op
  - xc_maximum_ram_page
  - xc_domain_get_cpu_usage
  - xc_machphys_mfn_list
  - xc_get_tot_pages
  - xc_copy_to_domain_page
  - xc_clear_domain_pages
  - xc_domctl
  - xc_sysctl
  - xc_make_page_below_4G
  - _xc_clean_errbuf
  - _xc_init_errbuf
  - xc_strerror
  - bitmap_64_to_byte
  - bitmap_byte_to_64
  - read_exact
  - write_exact
  - writev_exact
  - writev_exact
  - xc_ffs8
  - xc_ffs16
  - xc_ffs32
  - xc_ffs64
  source_file: /src/xen/tools/libs/ctrl/xc_private.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XS_BUFSIZE
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/xen/tools/libs/ctrl/xc_private.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_vmtrace_enable
  - xc_vmtrace_disable
  - xc_vmtrace_reset_and_enable
  - xc_vmtrace_output_position
  - xc_vmtrace_get_option
  - xc_vmtrace_set_option
  source_file: /src/xen/tools/libs/ctrl/xc_vmtrace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xc_translate_foreign_address
  source_file: /src/xen/tools/libs/ctrl/xc_pagetab.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CR0_PG
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libs/ctrl/xc_pagetab.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: CR4_PAE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/ctrl/xc_pagetab.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PTE_PSE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libs/ctrl/xc_pagetab.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: EFER_LMA
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/ctrl/xc_pagetab.c
      type_or_value: '0x400'
    structs: []
    typedefs: []
    union: []
- function_names:
  - lock
  - unlock
  - xentoolcore__register_active_handle
  - xentoolcore__deregister_active_handle
  - xentoolcore_restrict_all
  - xentoolcore__restrict_by_dup2_null
  source_file: /src/xen/tools/libs/toolcore/handlereg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rd_prod
  - _rd_cons
  - rd_cons
  - _wr_prod
  - wr_prod
  - wr_cons
  - rd_ring
  - wr_ring
  - wr_ring_size
  - rd_ring_size
  - request_notify
  - send_notify
  - raw_get_data_ready
  - fast_get_data_ready
  - libxenvchan_data_ready
  - raw_get_buffer_space
  - fast_get_buffer_space
  - libxenvchan_buffer_space
  - libxenvchan_wait
  - do_send
  - libxenvchan_send
  - libxenvchan_write
  - do_recv
  - libxenvchan_recv
  - libxenvchan_read
  - libxenvchan_is_open
  - libxenvchan_fd_for_select
  - libxenvchan_close
  source_file: /src/xen/tools/libs/vchan/io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/libs/vchan/io.c
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libs/vchan/io.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/vchan/vchan.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_gnt_srv
  - init_gnt_cli
  - init_evt_srv
  - init_xs_srv
  - close_xs_srv
  - min_order
  - libxenvchan_server_init
  - init_evt_cli
  - libxenvchan_client_init
  source_file: /src/xen/tools/libs/vchan/init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: SMALL_RING_SHIFT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '10'
    - item_type: preproc_def
      name: LARGE_RING_SHIFT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '11'
    - item_type: preproc_def
      name: MAX_SMALL_RING
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: (1 << SMALL_RING_SHIFT)
    - item_type: preproc_def
      name: SMALL_RING_OFFSET
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_LARGE_RING
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: (1 << LARGE_RING_SHIFT)
    - item_type: preproc_def
      name: LARGE_RING_OFFSET
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_RING_SHIFT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_RING_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/libs/vchan/init.c
      type_or_value: (1 << MAX_RING_SHIFT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - xenhypfs_open
  - xenhypfs_close
  - xenhypfs_get_pathbuf
  - xenhypfs_inflate
  - xenhypfs_set_attrs
  - xenhypfs_read_raw
  - xenhypfs_read
  - xenhypfs_readdir
  - xenhypfs_write
  source_file: /src/xen/tools/libs/hypfs/core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __XEN_TOOLS__
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/libs/hypfs/core.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/libs/hypfs/core.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: flags
        type: unsigned int
      - name: '*xcall'
        type: xencall_handle
      item_type: struct
      name: xenhypfs_handle
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/xen/tools/libs/hypfs/core.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: avalues
        type: int
      - name: nvalues
        type: int
      - name: '**values'
        type: XLU_ConfigValue
      item_type: struct
      name: XLU_ConfigList
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    - fields:
      - name: first_line
        type: int
      - name: first_column
        type: int
      - name: last_line
        type: int
      - name: last_column
        type: int
      item_type: struct
      name: YYLTYPE
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    - fields:
      - name: type
        type: enum XLU_ConfigValueType
      - name: u
        type: "union {\n        char *string;\n        XLU_ConfigList list;\n    }"
      - name: loc
        type: YYLTYPE
      item_type: struct
      name: XLU_ConfigValue
      pos:
        line_end: 51
        line_start: 44
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    - fields:
      - name: '*next'
        type: struct XLU_ConfigSetting
      - name: '*name'
        type: char
      - name: '*value'
        type: XLU_ConfigValue
      - name: op
        type: enum XLU_Operation
      - name: lineno
        type: int
      item_type: struct
      name: XLU_ConfigSetting
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    - fields:
      - name: '*settings'
        type: XLU_ConfigSetting
      - name: '*report'
        type: FILE
      - name: '*config_source'
        type: char
      item_type: struct
      name: XLU_Config
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    - fields:
      - name: '*cfg'
        type: XLU_Config
      - name: err
        type: int
      - name: '*scanner'
        type: void
      item_type: struct
      name: CfgParseContext
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/xen/tools/libs/util/libxlu_internal.h
    typedefs: []
    union: []
- function_names:
  - xlu_cfg_init
  - ctx_prep
  - ctx_dispose
  - parse
  - xlu_cfg_readfile
  - xlu_cfg_readdata
  - xlu__cfg_value_free
  - xlu__cfg_set_free
  - xlu_cfg_destroy
  - find
  - find_atom
  - xlu_cfg_value_type
  - xlu_cfg_value_get_string
  - xlu_cfg_value_get_list
  - xlu_cfg_get_listitem2
  - xlu_cfg_get_string
  - xlu_cfg_replace_string
  - xlu_cfg_get_bounded_long
  - xlu_cfg_get_long
  - xlu_cfg_get_defbool
  - xlu_cfg_get_list
  - xlu_cfg_get_list_as_string_list
  - xlu_cfg_get_listitem
  - xlu__cfg_string_mk
  - xlu__cfg_list_mk
  - xlu__cfg_list_append
  - xlu__cfg_concat_vals
  - xlu__cfg_set_store
  - xlu__cfgl_strdup
  - xlu__cfgl_dequote
  - NUMERIC_CHAR
  - xlu__cfgl_lexicalerror
  - xlu__cfg_yyerror
  source_file: /src/xen/tools/libs/util/libxlu_cfg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
  types:
    enum:
    - enumerators:
      - name: IDENT
        value: '258'
      - name: OP_ADD
        value: '262'
      - name: NEWLINE
        value: '261'
      - name: NUMBER
        value: '260'
      - name: STRING
        value: '259'
      item_type: enum
      name: yytokentype
      pos:
        line_end: 56
        line_start: 49
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
    preproc_defs:
    - item_type: preproc_def
      name: YYDEBUG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type_or_value: '0'
    - item_type: preproc_def
      name: YYSTYPE_IS_TRIVIAL
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YYSTYPE_IS_DECLARED
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YYLTYPE_IS_DECLARED
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YYLTYPE_IS_TRIVIAL
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type_or_value: '1'
    structs:
    - fields:
      - name: first_line
        type: int
      - name: first_column
        type: int
      - name: last_line
        type: int
      - name: last_column
        type: int
      item_type: struct
      name: YYLTYPE
      pos:
        line_end: 86
        line_start: 80
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
    typedefs:
    - item_type: typedef
      name: YYSTYPE
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type: YYSTYPE
    - item_type: typedef
      name: YYLTYPE
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
      type: YYLTYPE
    union:
    - fields:
      - name: '*string'
        type: char
      - name: '*value'
        type: XLU_ConfigValue
      item_type: union
      name: YYSTYPE
      pos:
        line_end: 70
        line_start: 62
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.h
- function_names:
  - XLU__PCI_ERR
  - parse_bdf
  - parse_vslot
  - parse_key_val
  - parse_rdm_policy
  - xlu_pci_parse_bdf
  - xlu_pci_parse_spec_string
  - xlu_rdm_parse
  source_file: /src/xen/tools/libs/util/libxlu_pci.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATE_TYPE
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/tools/libs/util/libxlu_pci.c
      type_or_value: '0'
    - item_type: preproc_def
      name: STATE_RDM_STRATEGY
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/libs/util/libxlu_pci.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATE_RESERVE_POLICY
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/tools/libs/util/libxlu_pci.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATE_TERMINAL
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/libs/util/libxlu_pci.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - YY_SC_TO_UI
  - YY_STATE_EOF
  - YY_LESS_LINENO
  - YY_LINENO_REWIND_TO
  - yyless
  - unput
  - yy_set_interactive
  - yy_set_bol
  - YY_AT_BOL
  - yymore
  - GOT
  - YY_INPUT
  - yyterminate
  - YY_FATAL_ERROR
  - yy_get_next_buffer
  - yy_get_previous_state
  - yy_try_NUL_trans
  - input
  - yyrestart
  - yy_switch_to_buffer
  - yy_load_buffer_state
  - yy_create_buffer
  - yy_delete_buffer
  - yy_init_buffer
  - yy_flush_buffer
  - yypush_buffer_state
  - yypop_buffer_state
  - yyensure_buffer_stack
  - yy_scan_buffer
  - yy_scan_string
  - yy_scan_bytes
  - yy_fatal_error
  - yyless
  - yyget_lineno
  - yyget_column
  - yyget_in
  - yyget_out
  - yyget_leng
  - yyget_text
  - yyset_extra
  - yyset_lineno
  - yyset_column
  - yyset_in
  - yyset_out
  - yyget_debug
  - yyset_debug
  - yyget_lval
  - yyset_lval
  - yyget_lloc
  - yyset_lloc
  - yylex_init
  - yylex_init_extra
  - yy_init_globals
  - yylex_destroy
  - yy_flex_strncpy
  - yy_flex_strlen
  - yyalloc
  - yyrealloc
  - yyfree
  source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YY_INT_ALIGNED
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: short int
    - item_type: preproc_def
      name: YY_FLEX_MAJOR_VERSION
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_FLEX_MINOR_VERSION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '6'
    - item_type: preproc_def
      name: YY_FLEX_SUBMINOR_VERSION
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '4'
    - item_type: preproc_def
      name: yy_create_buffer
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_create_buffer
    - item_type: preproc_def
      name: yy_delete_buffer
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_delete_buffer
    - item_type: preproc_def
      name: yy_scan_buffer
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_scan_buffer
    - item_type: preproc_def
      name: yy_scan_string
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_scan_string
    - item_type: preproc_def
      name: yy_scan_bytes
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_scan_bytes
    - item_type: preproc_def
      name: yy_init_buffer
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_init_buffer
    - item_type: preproc_def
      name: yy_flush_buffer
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_flush_buffer
    - item_type: preproc_def
      name: yy_load_buffer_state
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_load_buffer_state
    - item_type: preproc_def
      name: yy_switch_to_buffer
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yy_switch_to_buffer
    - item_type: preproc_def
      name: yypush_buffer_state
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yypush_buffer_state
    - item_type: preproc_def
      name: yypop_buffer_state
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yypop_buffer_state
    - item_type: preproc_def
      name: yyensure_buffer_stack
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyensure_buffer_stack
    - item_type: preproc_def
      name: yylex
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yylex
    - item_type: preproc_def
      name: yyrestart
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyrestart
    - item_type: preproc_def
      name: yylex_init
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yylex_init
    - item_type: preproc_def
      name: yylex_init_extra
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yylex_init_extra
    - item_type: preproc_def
      name: yylex_destroy
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yylex_destroy
    - item_type: preproc_def
      name: yyget_debug
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_debug
    - item_type: preproc_def
      name: yyset_debug
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_debug
    - item_type: preproc_def
      name: yyget_extra
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_extra
    - item_type: preproc_def
      name: yyset_extra
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_extra
    - item_type: preproc_def
      name: yyget_in
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_in
    - item_type: preproc_def
      name: yyset_in
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_in
    - item_type: preproc_def
      name: yyget_out
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_out
    - item_type: preproc_def
      name: yyset_out
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_out
    - item_type: preproc_def
      name: yyget_leng
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_leng
    - item_type: preproc_def
      name: yyget_text
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_text
    - item_type: preproc_def
      name: yyget_lineno
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_lineno
    - item_type: preproc_def
      name: yyset_lineno
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_lineno
    - item_type: preproc_def
      name: yyget_column
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_column
    - item_type: preproc_def
      name: yyset_column
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_column
    - item_type: preproc_def
      name: yywrap
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yywrap
    - item_type: preproc_def
      name: yyget_lval
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_lval
    - item_type: preproc_def
      name: yyset_lval
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_lval
    - item_type: preproc_def
      name: yyget_lloc
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyget_lloc
    - item_type: preproc_def
      name: yyset_lloc
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyset_lloc
    - item_type: preproc_def
      name: yyalloc
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyalloc
    - item_type: preproc_def
      name: yyrealloc
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyrealloc
    - item_type: preproc_def
      name: yyfree
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: xlu__cfg_yyfree
    - item_type: preproc_def
      name: __STDC_LIMIT_MACROS
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (-128)
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (-32767-1)
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (-2147483647-1)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (127)
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (32767)
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (2147483647)
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (255U)
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (65535U)
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (4294967295U)
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (~(size_t)0)
    - item_type: preproc_def
      name: yyconst
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: const
    - item_type: preproc_def
      name: yynoreturn
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: YY_NULL
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: yyin
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yyin_r
    - item_type: preproc_def
      name: yyout
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yyout_r
    - item_type: preproc_def
      name: yyextra
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yyextra_r
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yyleng_r
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yytext_r
    - item_type: preproc_def
      name: yylineno
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
    - item_type: preproc_def
      name: yycolumn
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
    - item_type: preproc_def
      name: yy_flex_debug
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yy_flex_debug_r
    - item_type: preproc_def
      name: BEGIN
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yy_start = 1 + 2 *
    - item_type: preproc_def
      name: YY_START
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: ((yyg->yy_start - 1) / 2)
    - item_type: preproc_def
      name: YYSTATE
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: YY_START
    - item_type: preproc_def
      name: YY_NEW_FILE
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyrestart( yyin , yyscanner )
    - item_type: preproc_def
      name: YY_END_OF_BUFFER_CHAR
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '32768'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_STATE_BUF_SIZE
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
    - item_type: preproc_def
      name: EOB_ACT_CONTINUE_SCAN
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EOB_ACT_END_OF_FILE
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EOB_ACT_LAST_MATCH
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_BUFFER_NEW
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_BUFFER_NORMAL
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_BUFFER_EOF_PENDING
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_CURRENT_BUFFER
      pos:
        line_end: 523
        line_start: 520
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: "( yyg->yy_buffer_stack \\\n                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
        \\\n                          : NULL)"
    - item_type: preproc_def
      name: YY_CURRENT_BUFFER_LVALUE
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
    - item_type: preproc_def
      name: YY_FLUSH_BUFFER
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
    - item_type: preproc_def
      name: yy_new_buffer
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yy_create_buffer
    - item_type: preproc_def
      name: yytext_ptr
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yytext_r
    - item_type: preproc_def
      name: YY_DO_BEFORE_ACTION
      pos:
        line_end: 593
        line_start: 586
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: "yyg->yytext_ptr = yy_bp; \\\n\tyyg->yytext_ptr -= yyg->yy_more_len;
        \\\n\tyyleng = (int) (yy_cp - yyg->yytext_ptr); \\\n\tyyg->yy_hold_char =
        *yy_cp; \\\n\t*yy_cp = '\\0'; \\\n\tyyg->yy_c_buf_p = yy_cp;"
    - item_type: preproc_def
      name: YY_NUM_RULES
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '17'
    - item_type: preproc_def
      name: YY_END_OF_BUFFER
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '18'
    - item_type: preproc_def
      name: REJECT
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: reject_used_but_not_detected
    - item_type: preproc_def
      name: YY_MORE_ADJ
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yy_more_len
    - item_type: preproc_def
      name: ctx
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: ((CfgParseContext*)yyextra)
    - item_type: preproc_def
      name: INITIAL
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: lexerr
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_EXTRA_TYPE
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: void *
    - item_type: preproc_def
      name: yylval
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yylval_r
    - item_type: preproc_def
      name: yylloc
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: yyg->yylloc_r
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 886
        line_start: 885
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 888
        line_start: 887
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: ECHO
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while
        (0)
    - item_type: preproc_def
      name: YY_START_STACK_INCR
      pos:
        line_end: 946
        line_start: 945
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '25'
    - item_type: preproc_def
      name: YY_DECL_IS_OURS
      pos:
        line_end: 960
        line_start: 959
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_DECL
      pos:
        line_end: 966
        line_start: 964
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: "int yylex \\\n               (YYSTYPE * yylval_param, YYLTYPE
        * yylloc_param , yyscan_t yyscanner)"
    - item_type: preproc_def
      name: YY_BREAK
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: break;
    - item_type: preproc_def
      name: YY_RULE_SETUP
      pos:
        line_end: 982
        line_start: 980
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: YY_USER_ACTION
    - item_type: preproc_def
      name: YY_EXIT_FAILURE
      pos:
        line_end: 1996
        line_start: 1995
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YYTABLES_NAME
      pos:
        line_end: 2373
        line_start: 2372
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type_or_value: '"yytables"'
    structs:
    - fields:
      - name: '*yy_input_file'
        type: FILE
      - name: '*yy_ch_buf'
        type: char
      - name: '*yy_buf_pos'
        type: char
      - name: yy_buf_size
        type: int
      - name: yy_n_chars
        type: int
      - name: yy_is_our_buffer
        type: int
      - name: yy_is_interactive
        type: int
      - name: yy_at_bol
        type: int
      - name: yy_bs_lineno
        type: int
      - name: yy_bs_column
        type: int
      - name: yy_fill_buffer
        type: int
      - name: yy_buffer_status
        type: int
      item_type: struct
      name: yy_buffer_state
      pos:
        line_end: 511
        line_start: 451
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
    - fields:
      - name: yy_verify
        type: flex_int32_t
      - name: yy_nxt
        type: flex_int32_t
      item_type: struct
      name: yy_trans_info
      pos:
        line_end: 601
        line_start: 597
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
    - fields:
      - name: yyextra_r
        type: YY_EXTRA_TYPE
      - name: '*yyin_r'
        type: FILE
      - name: yy_buffer_stack_top
        type: size_t
      - name: yy_buffer_stack_max
        type: size_t
      - name: '* yy_buffer_stack'
        type: YY_BUFFER_STATE
      - name: yy_hold_char
        type: char
      - name: yy_n_chars
        type: int
      - name: yyleng_r
        type: int
      - name: '*yy_c_buf_p'
        type: char
      - name: yy_init
        type: int
      - name: yy_start
        type: int
      - name: yy_did_buffer_switch_on_eof
        type: int
      - name: yy_start_stack_ptr
        type: int
      - name: yy_start_stack_depth
        type: int
      - name: '*yy_start_stack'
        type: int
      - name: yy_last_accepting_state
        type: yy_state_type
      - name: '* yy_last_accepting_cpos'
        type: char
      - name: yylineno_r
        type: int
      - name: yy_flex_debug_r
        type: int
      - name: '*yytext_r'
        type: char
      - name: yy_more_flag
        type: int
      - name: yy_more_len
        type: int
      - name: '* yylval_r'
        type: YYSTYPE
      - name: '* yylloc_r'
        type: YYLTYPE
      item_type: struct
      name: yyguts_t
      pos:
        line_end: 793
        line_start: 758
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
    typedefs:
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: int8_t
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: uint8_t
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: int16_t
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: uint16_t
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: int32_t
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: uint32_t
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: signed char
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: short int
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: int
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: unsigned char
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: unsigned short int
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: unsigned int
    - item_type: typedef
      name: '* yyscan_t'
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: void
    - item_type: typedef
      name: '*YY_BUFFER_STATE'
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: yy_buffer_state
    - item_type: typedef
      name: yy_size_t
      pos:
        line_end: 405
        line_start: 405
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: size_t
    - item_type: typedef
      name: YY_CHAR
      pos:
        line_end: 572
        line_start: 572
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: flex_uint8_t
    - item_type: typedef
      name: yy_state_type
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.c
      type: int
    union: []
- function_names:
  - YY_SC_TO_UI
  - YY_STATE_EOF
  - yyless
  - unput
  - yy_set_interactive
  - yy_set_bol
  - YY_AT_BOL
  - yymore
  - DSET
  - STRIP
  - SAVESTRING
  - savestring
  - setaccess
  - setformat
  - setbackendtype
  - setspecification
  - setcoloport
  - vdev_and_devtype
  - YY_INPUT
  - yyterminate
  - YY_FATAL_ERROR
  - yy_get_next_buffer
  - yy_get_previous_state
  - yy_try_NUL_trans
  - input
  - yyrestart
  - yy_switch_to_buffer
  - yy_load_buffer_state
  - yy_create_buffer
  - yy_delete_buffer
  - yy_init_buffer
  - yy_flush_buffer
  - yypush_buffer_state
  - yypop_buffer_state
  - yyensure_buffer_stack
  - yy_scan_buffer
  - yy_scan_string
  - yy_scan_bytes
  - yy_fatal_error
  - yyless
  - yyget_lineno
  - yyget_column
  - yyget_in
  - yyget_out
  - yyget_leng
  - yyget_text
  - yyset_extra
  - yyset_lineno
  - yyset_column
  - yyset_in
  - yyset_out
  - yyget_debug
  - yyset_debug
  - yylex_init
  - yylex_init_extra
  - yy_init_globals
  - yylex_destroy
  - yy_flex_strncpy
  - yy_flex_strlen
  - yyalloc
  - yyrealloc
  - yyfree
  source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: YY_INT_ALIGNED
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: short int
    - item_type: preproc_def
      name: YY_FLEX_MAJOR_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_FLEX_MINOR_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '6'
    - item_type: preproc_def
      name: YY_FLEX_SUBMINOR_VERSION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '4'
    - item_type: preproc_def
      name: yy_create_buffer
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_create_buffer
    - item_type: preproc_def
      name: yy_delete_buffer
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_delete_buffer
    - item_type: preproc_def
      name: yy_scan_buffer
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_scan_buffer
    - item_type: preproc_def
      name: yy_scan_string
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_scan_string
    - item_type: preproc_def
      name: yy_scan_bytes
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_scan_bytes
    - item_type: preproc_def
      name: yy_init_buffer
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_init_buffer
    - item_type: preproc_def
      name: yy_flush_buffer
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_flush_buffer
    - item_type: preproc_def
      name: yy_load_buffer_state
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_load_buffer_state
    - item_type: preproc_def
      name: yy_switch_to_buffer
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yy_switch_to_buffer
    - item_type: preproc_def
      name: yypush_buffer_state
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yypush_buffer_state
    - item_type: preproc_def
      name: yypop_buffer_state
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yypop_buffer_state
    - item_type: preproc_def
      name: yyensure_buffer_stack
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyensure_buffer_stack
    - item_type: preproc_def
      name: yylex
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yylex
    - item_type: preproc_def
      name: yyrestart
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyrestart
    - item_type: preproc_def
      name: yylex_init
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yylex_init
    - item_type: preproc_def
      name: yylex_init_extra
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yylex_init_extra
    - item_type: preproc_def
      name: yylex_destroy
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yylex_destroy
    - item_type: preproc_def
      name: yyget_debug
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_debug
    - item_type: preproc_def
      name: yyset_debug
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_debug
    - item_type: preproc_def
      name: yyget_extra
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_extra
    - item_type: preproc_def
      name: yyset_extra
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_extra
    - item_type: preproc_def
      name: yyget_in
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_in
    - item_type: preproc_def
      name: yyset_in
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_in
    - item_type: preproc_def
      name: yyget_out
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_out
    - item_type: preproc_def
      name: yyset_out
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_out
    - item_type: preproc_def
      name: yyget_leng
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_leng
    - item_type: preproc_def
      name: yyget_text
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_text
    - item_type: preproc_def
      name: yyget_lineno
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_lineno
    - item_type: preproc_def
      name: yyset_lineno
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_lineno
    - item_type: preproc_def
      name: yyget_column
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyget_column
    - item_type: preproc_def
      name: yyset_column
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyset_column
    - item_type: preproc_def
      name: yywrap
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yywrap
    - item_type: preproc_def
      name: yyalloc
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyalloc
    - item_type: preproc_def
      name: yyrealloc
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyrealloc
    - item_type: preproc_def
      name: yyfree
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: xlu__disk_yyfree
    - item_type: preproc_def
      name: __STDC_LIMIT_MACROS
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (-128)
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (-32767-1)
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (-2147483647-1)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (127)
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (32767)
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (2147483647)
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (255U)
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (65535U)
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (4294967295U)
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (~(size_t)0)
    - item_type: preproc_def
      name: yyconst
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: const
    - item_type: preproc_def
      name: yynoreturn
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: YY_NULL
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: yyin
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yyin_r
    - item_type: preproc_def
      name: yyout
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yyout_r
    - item_type: preproc_def
      name: yyextra
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yyextra_r
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yyleng_r
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yytext_r
    - item_type: preproc_def
      name: yylineno
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
    - item_type: preproc_def
      name: yycolumn
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
    - item_type: preproc_def
      name: yy_flex_debug
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yy_flex_debug_r
    - item_type: preproc_def
      name: BEGIN
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yy_start = 1 + 2 *
    - item_type: preproc_def
      name: YY_START
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: ((yyg->yy_start - 1) / 2)
    - item_type: preproc_def
      name: YYSTATE
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: YY_START
    - item_type: preproc_def
      name: YY_NEW_FILE
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyrestart( yyin , yyscanner )
    - item_type: preproc_def
      name: YY_END_OF_BUFFER_CHAR
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '32768'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_STATE_BUF_SIZE
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
    - item_type: preproc_def
      name: EOB_ACT_CONTINUE_SCAN
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EOB_ACT_END_OF_FILE
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EOB_ACT_LAST_MATCH
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_BUFFER_NEW
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_BUFFER_NORMAL
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_BUFFER_EOF_PENDING
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_CURRENT_BUFFER
      pos:
        line_end: 484
        line_start: 481
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: "( yyg->yy_buffer_stack \\\n                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
        \\\n                          : NULL)"
    - item_type: preproc_def
      name: YY_CURRENT_BUFFER_LVALUE
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
    - item_type: preproc_def
      name: YY_FLUSH_BUFFER
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
    - item_type: preproc_def
      name: yy_new_buffer
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yy_create_buffer
    - item_type: preproc_def
      name: yytext_ptr
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yytext_r
    - item_type: preproc_def
      name: YY_DO_BEFORE_ACTION
      pos:
        line_end: 554
        line_start: 547
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: "yyg->yytext_ptr = yy_bp; \\\n\tyyg->yytext_ptr -= yyg->yy_more_len;
        \\\n\tyyleng = (int) (yy_cp - yyg->yytext_ptr); \\\n\tyyg->yy_hold_char =
        *yy_cp; \\\n\t*yy_cp = '\\0'; \\\n\tyyg->yy_c_buf_p = yy_cp;"
    - item_type: preproc_def
      name: YY_NUM_RULES
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '41'
    - item_type: preproc_def
      name: YY_END_OF_BUFFER
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '42'
    - item_type: preproc_def
      name: YY_TRAILING_MASK
      pos:
        line_end: 1077
        line_start: 1076
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: YY_TRAILING_HEAD_MASK
      pos:
        line_end: 1078
        line_start: 1077
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: REJECT
      pos:
        line_end: 1080
        line_start: 1078
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '{ \

        *yy_cp = yyg->yy_hold_char; '
    - item_type: preproc_def
      name: YY_MORE_ADJ
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: yyg->yy_more_len
    - item_type: preproc_def
      name: FROMEQUALS
      pos:
        line_end: 1162
        line_start: 1161
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: (strchr(yytext,'=')+1)
    - item_type: preproc_def
      name: DPC
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: 'dpc '
    - item_type: preproc_def
      name: DPC
      pos:
        line_end: 1258
        line_start: 1257
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: ((DiskParseContext*)yyextra)
    - item_type: preproc_def
      name: INITIAL
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LEXERR
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_EXTRA_TYPE
      pos:
        line_end: 1276
        line_start: 1275
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: void *
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 1400
        line_start: 1399
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 1402
        line_start: 1401
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: ECHO
      pos:
        line_end: 1411
        line_start: 1410
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while
        (0)
    - item_type: preproc_def
      name: YY_START_STACK_INCR
      pos:
        line_end: 1460
        line_start: 1459
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '25'
    - item_type: preproc_def
      name: YY_DECL_IS_OURS
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_DECL
      pos:
        line_end: 1478
        line_start: 1477
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: int yylex (yyscan_t yyscanner)
    - item_type: preproc_def
      name: YY_BREAK
      pos:
        line_end: 1490
        line_start: 1489
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: break;
    - item_type: preproc_def
      name: YY_RULE_SETUP
      pos:
        line_end: 1494
        line_start: 1492
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: YY_USER_ACTION
    - item_type: preproc_def
      name: YY_EXIT_FAILURE
      pos:
        line_end: 2665
        line_start: 2664
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YYTABLES_NAME
      pos:
        line_end: 3026
        line_start: 3025
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type_or_value: '"yytables"'
    structs:
    - fields:
      - name: '*yy_input_file'
        type: FILE
      - name: '*yy_ch_buf'
        type: char
      - name: '*yy_buf_pos'
        type: char
      - name: yy_buf_size
        type: int
      - name: yy_n_chars
        type: int
      - name: yy_is_our_buffer
        type: int
      - name: yy_is_interactive
        type: int
      - name: yy_at_bol
        type: int
      - name: yy_bs_lineno
        type: int
      - name: yy_bs_column
        type: int
      - name: yy_fill_buffer
        type: int
      - name: yy_buffer_status
        type: int
      item_type: struct
      name: yy_buffer_state
      pos:
        line_end: 472
        line_start: 412
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
    - fields:
      - name: yy_verify
        type: flex_int32_t
      - name: yy_nxt
        type: flex_int32_t
      item_type: struct
      name: yy_trans_info
      pos:
        line_end: 562
        line_start: 558
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
    - fields:
      - name: yyextra_r
        type: YY_EXTRA_TYPE
      - name: '*yyin_r'
        type: FILE
      - name: yy_buffer_stack_top
        type: size_t
      - name: yy_buffer_stack_max
        type: size_t
      - name: '* yy_buffer_stack'
        type: YY_BUFFER_STATE
      - name: yy_hold_char
        type: char
      - name: yy_n_chars
        type: int
      - name: yyleng_r
        type: int
      - name: '*yy_c_buf_p'
        type: char
      - name: yy_init
        type: int
      - name: yy_start
        type: int
      - name: yy_did_buffer_switch_on_eof
        type: int
      - name: yy_start_stack_ptr
        type: int
      - name: yy_start_stack_depth
        type: int
      - name: '*yy_start_stack'
        type: int
      - name: yy_last_accepting_state
        type: yy_state_type
      - name: '* yy_last_accepting_cpos'
        type: char
      - name: yylineno_r
        type: int
      - name: yy_flex_debug_r
        type: int
      - name: '*yy_state_buf'
        type: yy_state_type
      - name: '*yy_state_ptr'
        type: yy_state_type
      - name: '*yy_full_match'
        type: char
      - name: yy_lp
        type: int
      - name: yy_looking_for_trail_begin
        type: int
      - name: yy_full_lp
        type: int
      - name: '*yy_full_state'
        type: int
      - name: '*yytext_r'
        type: char
      - name: yy_more_flag
        type: int
      - name: yy_more_len
        type: int
      item_type: struct
      name: yyguts_t
      pos:
        line_end: 1321
        line_start: 1279
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
    typedefs:
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: int8_t
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: uint8_t
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: int16_t
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: uint16_t
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: int32_t
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: uint32_t
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: signed char
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: short int
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: int
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: unsigned char
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: unsigned short int
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: unsigned int
    - item_type: typedef
      name: '* yyscan_t'
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: void
    - item_type: typedef
      name: '*YY_BUFFER_STATE'
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: yy_buffer_state
    - item_type: typedef
      name: yy_size_t
      pos:
        line_end: 385
        line_start: 385
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: size_t
    - item_type: typedef
      name: YY_CHAR
      pos:
        line_end: 533
        line_start: 533
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: flex_uint8_t
    - item_type: typedef
      name: yy_state_type
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.c
      type: int
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xlu__cfg_yyHEADER_H
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: xlu__cfg_yyIN_HEADER
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_INT_ALIGNED
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: short int
    - item_type: preproc_def
      name: YY_FLEX_MAJOR_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_FLEX_MINOR_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '6'
    - item_type: preproc_def
      name: YY_FLEX_SUBMINOR_VERSION
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '4'
    - item_type: preproc_def
      name: yy_create_buffer
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_create_buffer
    - item_type: preproc_def
      name: yy_delete_buffer
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_delete_buffer
    - item_type: preproc_def
      name: yy_scan_buffer
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_scan_buffer
    - item_type: preproc_def
      name: yy_scan_string
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_scan_string
    - item_type: preproc_def
      name: yy_scan_bytes
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_scan_bytes
    - item_type: preproc_def
      name: yy_init_buffer
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_init_buffer
    - item_type: preproc_def
      name: yy_flush_buffer
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_flush_buffer
    - item_type: preproc_def
      name: yy_load_buffer_state
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_load_buffer_state
    - item_type: preproc_def
      name: yy_switch_to_buffer
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yy_switch_to_buffer
    - item_type: preproc_def
      name: yypush_buffer_state
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yypush_buffer_state
    - item_type: preproc_def
      name: yypop_buffer_state
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yypop_buffer_state
    - item_type: preproc_def
      name: yyensure_buffer_stack
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyensure_buffer_stack
    - item_type: preproc_def
      name: yylex
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yylex
    - item_type: preproc_def
      name: yyrestart
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyrestart
    - item_type: preproc_def
      name: yylex_init
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yylex_init
    - item_type: preproc_def
      name: yylex_init_extra
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yylex_init_extra
    - item_type: preproc_def
      name: yylex_destroy
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yylex_destroy
    - item_type: preproc_def
      name: yyget_debug
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_debug
    - item_type: preproc_def
      name: yyset_debug
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_debug
    - item_type: preproc_def
      name: yyget_extra
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_extra
    - item_type: preproc_def
      name: yyset_extra
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_extra
    - item_type: preproc_def
      name: yyget_in
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_in
    - item_type: preproc_def
      name: yyset_in
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_in
    - item_type: preproc_def
      name: yyget_out
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_out
    - item_type: preproc_def
      name: yyset_out
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_out
    - item_type: preproc_def
      name: yyget_leng
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_leng
    - item_type: preproc_def
      name: yyget_text
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_text
    - item_type: preproc_def
      name: yyget_lineno
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_lineno
    - item_type: preproc_def
      name: yyset_lineno
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_lineno
    - item_type: preproc_def
      name: yyget_column
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_column
    - item_type: preproc_def
      name: yyset_column
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_column
    - item_type: preproc_def
      name: yywrap
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yywrap
    - item_type: preproc_def
      name: yyget_lval
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_lval
    - item_type: preproc_def
      name: yyset_lval
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_lval
    - item_type: preproc_def
      name: yyget_lloc
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyget_lloc
    - item_type: preproc_def
      name: yyset_lloc
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyset_lloc
    - item_type: preproc_def
      name: yyalloc
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyalloc
    - item_type: preproc_def
      name: yyrealloc
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyrealloc
    - item_type: preproc_def
      name: yyfree
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: xlu__cfg_yyfree
    - item_type: preproc_def
      name: __STDC_LIMIT_MACROS
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (-128)
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (-32767-1)
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (-2147483647-1)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (127)
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (32767)
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (2147483647)
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (255U)
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (65535U)
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (4294967295U)
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (~(size_t)0)
    - item_type: preproc_def
      name: yyconst
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: const
    - item_type: preproc_def
      name: yynoreturn
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: yyin
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yyin_r
    - item_type: preproc_def
      name: yyout
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yyout_r
    - item_type: preproc_def
      name: yyextra
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yyextra_r
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yyleng_r
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yytext_r
    - item_type: preproc_def
      name: yylineno
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
    - item_type: preproc_def
      name: yycolumn
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
    - item_type: preproc_def
      name: yy_flex_debug
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yyg->yy_flex_debug_r
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: yytext_ptr
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: yytext_r
    - item_type: preproc_def
      name: INITIAL
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '0'
    - item_type: preproc_def
      name: lexerr
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_EXTRA_TYPE
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: void *
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: YY_START_STACK_INCR
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '25'
    - item_type: preproc_def
      name: YY_DECL_IS_OURS
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_DECL
      pos:
        line_end: 568
        line_start: 566
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type_or_value: "int yylex \\\n               (YYSTYPE * yylval_param, YYLTYPE
        * yylloc_param , yyscan_t yyscanner)"
    structs:
    - fields:
      - name: '*yy_input_file'
        type: FILE
      - name: '*yy_ch_buf'
        type: char
      - name: '*yy_buf_pos'
        type: char
      - name: yy_buf_size
        type: int
      - name: yy_n_chars
        type: int
      - name: yy_is_our_buffer
        type: int
      - name: yy_is_interactive
        type: int
      - name: yy_at_bol
        type: int
      - name: yy_bs_lineno
        type: int
      - name: yy_bs_column
        type: int
      - name: yy_fill_buffer
        type: int
      - name: yy_buffer_status
        type: int
      item_type: struct
      name: yy_buffer_state
      pos:
        line_end: 431
        line_start: 385
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
    typedefs:
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: int8_t
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: uint8_t
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: int16_t
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: uint16_t
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: int32_t
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: uint32_t
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: signed char
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: short int
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: int
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: unsigned char
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: unsigned short int
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: unsigned int
    - item_type: typedef
      name: '* yyscan_t'
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: void
    - item_type: typedef
      name: '*YY_BUFFER_STATE'
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: yy_buffer_state
    - item_type: typedef
      name: yy_size_t
      pos:
        line_end: 380
        line_start: 380
        source_file: /src/xen/tools/libs/util/libxlu_cfg_l.h
      type: size_t
    union: []
- function_names:
  - xlu__disk_err
  - dpc_prep
  - dpc_dispose
  - xlu_disk_parse
  source_file: /src/xen/tools/libs/util/libxlu_disk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xlu__disk_yyHEADER_H
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: xlu__disk_yyIN_HEADER
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_INT_ALIGNED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: short int
    - item_type: preproc_def
      name: YY_FLEX_MAJOR_VERSION
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '2'
    - item_type: preproc_def
      name: YY_FLEX_MINOR_VERSION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '6'
    - item_type: preproc_def
      name: YY_FLEX_SUBMINOR_VERSION
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '4'
    - item_type: preproc_def
      name: yy_create_buffer
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_create_buffer
    - item_type: preproc_def
      name: yy_delete_buffer
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_delete_buffer
    - item_type: preproc_def
      name: yy_scan_buffer
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_scan_buffer
    - item_type: preproc_def
      name: yy_scan_string
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_scan_string
    - item_type: preproc_def
      name: yy_scan_bytes
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_scan_bytes
    - item_type: preproc_def
      name: yy_init_buffer
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_init_buffer
    - item_type: preproc_def
      name: yy_flush_buffer
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_flush_buffer
    - item_type: preproc_def
      name: yy_load_buffer_state
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_load_buffer_state
    - item_type: preproc_def
      name: yy_switch_to_buffer
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yy_switch_to_buffer
    - item_type: preproc_def
      name: yypush_buffer_state
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yypush_buffer_state
    - item_type: preproc_def
      name: yypop_buffer_state
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yypop_buffer_state
    - item_type: preproc_def
      name: yyensure_buffer_stack
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyensure_buffer_stack
    - item_type: preproc_def
      name: yylex
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yylex
    - item_type: preproc_def
      name: yyrestart
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyrestart
    - item_type: preproc_def
      name: yylex_init
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yylex_init
    - item_type: preproc_def
      name: yylex_init_extra
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yylex_init_extra
    - item_type: preproc_def
      name: yylex_destroy
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yylex_destroy
    - item_type: preproc_def
      name: yyget_debug
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_debug
    - item_type: preproc_def
      name: yyset_debug
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_debug
    - item_type: preproc_def
      name: yyget_extra
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_extra
    - item_type: preproc_def
      name: yyset_extra
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_extra
    - item_type: preproc_def
      name: yyget_in
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_in
    - item_type: preproc_def
      name: yyset_in
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_in
    - item_type: preproc_def
      name: yyget_out
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_out
    - item_type: preproc_def
      name: yyset_out
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_out
    - item_type: preproc_def
      name: yyget_leng
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_leng
    - item_type: preproc_def
      name: yyget_text
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_text
    - item_type: preproc_def
      name: yyget_lineno
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_lineno
    - item_type: preproc_def
      name: yyset_lineno
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_lineno
    - item_type: preproc_def
      name: yyget_column
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyget_column
    - item_type: preproc_def
      name: yyset_column
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyset_column
    - item_type: preproc_def
      name: yywrap
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yywrap
    - item_type: preproc_def
      name: yyalloc
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyalloc
    - item_type: preproc_def
      name: yyrealloc
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyrealloc
    - item_type: preproc_def
      name: yyfree
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: xlu__disk_yyfree
    - item_type: preproc_def
      name: __STDC_LIMIT_MACROS
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (-128)
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (-32767-1)
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (-2147483647-1)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (127)
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (32767)
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (2147483647)
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (255U)
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (65535U)
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (4294967295U)
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (~(size_t)0)
    - item_type: preproc_def
      name: yyconst
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: const
    - item_type: preproc_def
      name: yynoreturn
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: yyin
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yyin_r
    - item_type: preproc_def
      name: yyout
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yyout_r
    - item_type: preproc_def
      name: yyextra
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yyextra_r
    - item_type: preproc_def
      name: yyleng
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yyleng_r
    - item_type: preproc_def
      name: yytext
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yytext_r
    - item_type: preproc_def
      name: yylineno
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
    - item_type: preproc_def
      name: yycolumn
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
    - item_type: preproc_def
      name: yy_flex_debug
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yyg->yy_flex_debug_r
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: YY_BUF_SIZE
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: yytext_ptr
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: yytext_r
    - item_type: preproc_def
      name: INITIAL
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LEXERR
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_EXTRA_TYPE
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: void *
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: YY_READ_BUF_SIZE
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: YY_START_STACK_INCR
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '25'
    - item_type: preproc_def
      name: YY_DECL_IS_OURS
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: '1'
    - item_type: preproc_def
      name: YY_DECL
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type_or_value: int yylex (yyscan_t yyscanner)
    structs:
    - fields:
      - name: '*yy_input_file'
        type: FILE
      - name: '*yy_ch_buf'
        type: char
      - name: '*yy_buf_pos'
        type: char
      - name: yy_buf_size
        type: int
      - name: yy_n_chars
        type: int
      - name: yy_is_our_buffer
        type: int
      - name: yy_is_interactive
        type: int
      - name: yy_at_bol
        type: int
      - name: yy_bs_lineno
        type: int
      - name: yy_bs_column
        type: int
      - name: yy_fill_buffer
        type: int
      - name: yy_buffer_status
        type: int
      item_type: struct
      name: yy_buffer_state
      pos:
        line_end: 411
        line_start: 365
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
    typedefs:
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: int8_t
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: uint8_t
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: int16_t
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: uint16_t
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: int32_t
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: uint32_t
    - item_type: typedef
      name: flex_int8_t
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: signed char
    - item_type: typedef
      name: flex_int16_t
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: short int
    - item_type: typedef
      name: flex_int32_t
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: int
    - item_type: typedef
      name: flex_uint8_t
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: unsigned char
    - item_type: typedef
      name: flex_uint16_t
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: unsigned short int
    - item_type: typedef
      name: flex_uint32_t
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: unsigned int
    - item_type: typedef
      name: '* yyscan_t'
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: void
    - item_type: typedef
      name: '*YY_BUFFER_STATE'
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: yy_buffer_state
    - item_type: typedef
      name: yy_size_t
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/xen/tools/libs/util/libxlu_disk_l.h
      type: size_t
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_cfg_i.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libs/util/libxlu_disk_i.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cfg'
        type: XLU_Config
      - name: err
        type: int
      - name: '*scanner'
        type: void
      - name: buf
        type: YY_BUFFER_STATE
      - name: '*disk'
        type: libxl_device_disk
      - name: access_set
        type: int
      - name: '*spec'
        type: char
      item_type: struct
      name: DiskParseContext
      pos:
        line_end: 14
        line_start: 6
        source_file: /src/xen/tools/libs/util/libxlu_disk_i.h
    typedefs: []
    union: []
- function_names:
  - YY_
  - YY_
  - YY_ATTRIBUTE
  - YYUSE
  - YY_INITIAL_VALUE
  - YYSTACK_BYTES
  - YYSTACK_RELOCATE
  - YYCOPY
  - YYCOPY
  - YYTRANSLATE
  - yypact_value_is_default
  - yytable_value_is_error
  - YYRECOVERING
  - YYBACKUP
  - YYLLOC_DEFAULT
  - YYRHSLOC
  - YYDPRINTF
  - yy_location_print_
  - YY_LOCATION_PRINT
  - YY_LOCATION_PRINT
  - YY_SYMBOL_PRINT
  - yy_symbol_value_print
  - yy_symbol_print
  - yy_stack_print
  - YY_STACK_PRINT
  - yy_reduce_print
  - YY_REDUCE_PRINT
  - yystrlen
  - yystpcpy
  - yytnamerr
  - yysyntax_error
  - YYCASE_
  - yydestruct
  - switch
  - yyparse
  - YYPOPSTACK
  source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
  types:
    enum:
    - enumerators:
      - name: IDENT
        value: '258'
      - name: NUMBER
        value: '260'
      - name: NEWLINE
        value: '261'
      - name: STRING
        value: '259'
      - name: OP_ADD
        value: '262'
      item_type: enum
      name: yytokentype
      pos:
        line_end: 123
        line_start: 116
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
    preproc_defs:
    - item_type: preproc_def
      name: YYBISON
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYBISON_VERSION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '"3.3.2"'
    - item_type: preproc_def
      name: YYSKELETON_NAME
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '"yacc.c"'
    - item_type: preproc_def
      name: YYPURE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYPUSH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYPULL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: yyparse
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: xlu__cfg_yyparse
    - item_type: preproc_def
      name: yylex
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: xlu__cfg_yylex
    - item_type: preproc_def
      name: yyerror
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: xlu__cfg_yyerror
    - item_type: preproc_def
      name: yydebug
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: xlu__cfg_yydebug
    - item_type: preproc_def
      name: yynerrs
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: xlu__cfg_yynerrs
    - item_type: preproc_def
      name: ctx_scanner
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: ctx->scanner
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: nullptr
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YY_NULLPTR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: ((void*)0)
    - item_type: preproc_def
      name: YYERROR_VERBOSE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYERROR_VERBOSE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYDEBUG
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYSTYPE_IS_TRIVIAL
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYSTYPE_IS_DECLARED
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYLTYPE_IS_DECLARED
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYLTYPE_IS_TRIVIAL
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: __SIZE_TYPE__
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: size_t
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: size_t
    - item_type: preproc_def
      name: YYSIZE_T
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: unsigned
    - item_type: preproc_def
      name: YYSIZE_MAXIMUM
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: ((YYSIZE_T) -1)
    - item_type: preproc_def
      name: YY_ATTRIBUTE_PURE
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: YY_ATTRIBUTE ((__pure__))
    - item_type: preproc_def
      name: YY_ATTRIBUTE_UNUSED
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: YY_ATTRIBUTE ((__unused__))
    - item_type: preproc_def
      name: YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
      pos:
        line_end: 252
        line_start: 248
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: "_Pragma (\"GCC diagnostic push\") \\\n    _Pragma (\"GCC diagnostic
        ignored \\\"-Wuninitialized\\\"\")\\\n    _Pragma (\"GCC diagnostic ignored
        \\\"-Wmaybe-uninitialized\\\"\")"
    - item_type: preproc_def
      name: YY_IGNORE_MAYBE_UNINITIALIZED_END
      pos:
        line_end: 254
        line_start: 252
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: _Pragma ("GCC diagnostic pop")
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: __builtin_alloca
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: __alloca
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: _alloca
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: alloca
    - item_type: preproc_def
      name: EXIT_SUCCESS
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYSTACK_ALLOC_MAXIMUM
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '4032 '
    - item_type: preproc_def
      name: YYSTACK_ALLOC
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: YYMALLOC
    - item_type: preproc_def
      name: YYSTACK_FREE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: YYFREE
    - item_type: preproc_def
      name: YYSTACK_ALLOC_MAXIMUM
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: YYSIZE_MAXIMUM
    - item_type: preproc_def
      name: EXIT_SUCCESS
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYMALLOC
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: malloc
    - item_type: preproc_def
      name: YYFREE
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: free
    - item_type: preproc_def
      name: YYSTACK_GAP_MAXIMUM
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: (sizeof (union yyalloc) - 1)
    - item_type: preproc_def
      name: YYCOPY_NEEDED
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYFINAL
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '3'
    - item_type: preproc_def
      name: YYLAST
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '27'
    - item_type: preproc_def
      name: YYNTOKENS
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '13'
    - item_type: preproc_def
      name: YYNNTS
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '11'
    - item_type: preproc_def
      name: YYNRULES
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '23'
    - item_type: preproc_def
      name: YYNSTATES
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '32'
    - item_type: preproc_def
      name: YYUNDEFTOK
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '2'
    - item_type: preproc_def
      name: YYMAXUTOK
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '262'
    - item_type: preproc_def
      name: YYPACT_NINF
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '-18'
    - item_type: preproc_def
      name: YYTABLE_NINF
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: yyerrok
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: (yyerrstatus = 0)
    - item_type: preproc_def
      name: yyclearin
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: (yychar = YYEMPTY)
    - item_type: preproc_def
      name: YYEMPTY
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: YYEOF
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '0'
    - item_type: preproc_def
      name: YYACCEPT
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: goto yyacceptlab
    - item_type: preproc_def
      name: YYABORT
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: goto yyabortlab
    - item_type: preproc_def
      name: YYERROR
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: goto yyerrorlab
    - item_type: preproc_def
      name: YYTERROR
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '1'
    - item_type: preproc_def
      name: YYERRCODE
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '256'
    - item_type: preproc_def
      name: YYFPRINTF
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: fprintf
    - item_type: preproc_def
      name: YYINITDEPTH
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '200'
    - item_type: preproc_def
      name: YYMAXDEPTH
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: yystrlen
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: strlen
    - item_type: preproc_def
      name: yystpcpy
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: stpcpy
    - item_type: preproc_def
      name: YYSYNTAX_ERROR
      pos:
        line_end: 1522
        line_start: 1520
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type_or_value: "yysyntax_error (&yymsg_alloc, &yymsg, \\\n                                        yyssp,
        yytoken)"
    structs:
    - fields:
      - name: first_line
        type: int
      - name: first_column
        type: int
      - name: last_line
        type: int
      - name: last_column
        type: int
      item_type: struct
      name: YYLTYPE
      pos:
        line_end: 153
        line_start: 147
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
    typedefs:
    - item_type: typedef
      name: YYSTYPE
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYSTYPE
    - item_type: typedef
      name: YYLTYPE
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYLTYPE
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYTYPE_UINT8
    - item_type: typedef
      name: yytype_uint8
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: unsigned char
    - item_type: typedef
      name: yytype_int8
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYTYPE_INT8
    - item_type: typedef
      name: yytype_int8
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: signed char
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYTYPE_UINT16
    - item_type: typedef
      name: yytype_uint16
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: unsigned short
    - item_type: typedef
      name: yytype_int16
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: YYTYPE_INT16
    - item_type: typedef
      name: yytype_int16
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
      type: short
    union:
    - fields:
      - name: '*string'
        type: char
      - name: '*value'
        type: XLU_ConfigValue
      item_type: union
      name: YYSTYPE
      pos:
        line_end: 137
        line_start: 129
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
    - fields:
      - name: yyss_alloc
        type: yytype_int16
      - name: yyvs_alloc
        type: YYSTYPE
      - name: yyls_alloc
        type: YYLTYPE
      item_type: union
      name: yyalloc
      pos:
        line_end: 345
        line_start: 340
        source_file: /src/xen/tools/libs/util/libxlu_cfg_y.c
- function_names:
  - xlu__vif_err
  - vif_parse_rate_bytes_per_sec
  - vif_parse_rate_interval_usecs
  - xlu_vif_parse_rate
  source_file: /src/xen/tools/libs/util/libxlu_vif.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_restrict_cb
  - xenforeignmemory_open
  - xenforeignmemory_close
  - xenforeignmemory_map2
  - xenforeignmemory_map
  - xenforeignmemory_unmap
  - xenforeignmemory_restrict
  - xenforeignmemory_map_resource
  - xenforeignmemory_unmap_resource
  - xenforeignmemory_resource_size
  source_file: /src/xen/tools/libs/foreignmemory/core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_restrict
  - osdep_xenforeignmemory_map_resource
  - osdep_xenforeignmemory_unmap_resource
  - PERROR
  source_file: /src/xen/tools/libs/foreignmemory/private.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*logger'
        type: xentoollog_logger
      - name: flags
        type: unsigned
      - name: fd
        type: int
      - name: tc_ah
        type: Xentoolcore__Active_Handle
      - name: unimpl_errno
        type: int
      item_type: struct
      name: xenforeignmemory_handle
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/xen/tools/libs/foreignmemory/private.h
    - fields:
      - name: domid
        type: domid_t
      - name: type
        type: unsigned int
      - name: id
        type: unsigned int
      - name: frame
        type: unsigned long
      - name: nr_frames
        type: unsigned long
      - name: '*addr'
        type: void
      - name: prot
        type: int
      - name: flags
        type: int
      item_type: struct
      name: xenforeignmemory_resource_handle
      pos:
        line_end: 47
        line_start: 38
        source_file: /src/xen/tools/libs/foreignmemory/private.h
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_open
  - osdep_xenforeignmemory_close
  - osdep_xenforeignmemory_map
  - osdep_xenforeignmemory_unmap
  - osdep_xenforeignmemory_restrict
  - osdep_xenforeignmemory_unmap_resource
  - osdep_xenforeignmemory_map_resource
  source_file: /src/xen/tools/libs/foreignmemory/netbsd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_map
  source_file: /src/xen/tools/libs/foreignmemory/compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_open
  - osdep_xenforeignmemory_close
  - map_foreign_batch_single
  - retry_paged
  - osdep_xenforeignmemory_map
  - osdep_xenforeignmemory_unmap
  - osdep_xenforeignmemory_restrict
  - osdep_xenforeignmemory_unmap_resource
  - osdep_xenforeignmemory_map_resource
  source_file: /src/xen/tools/libs/foreignmemory/linux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libs/foreignmemory/linux.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_open
  - osdep_xenforeignmemory_close
  - osdep_map_foreign_batch
  - osdep_xenforeignmemory_unmap
  source_file: /src/xen/tools/libs/foreignmemory/solaris.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_open
  - osdep_xenforeignmemory_close
  - osdep_xenforeignmemory_map
  - osdep_xenforeignmemory_unmap
  source_file: /src/xen/tools/libs/foreignmemory/minios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - osdep_xenforeignmemory_open
  - osdep_xenforeignmemory_close
  - osdep_xenforeignmemory_map
  - osdep_xenforeignmemory_unmap
  - osdep_xenforeignmemory_restrict
  - osdep_xenforeignmemory_unmap_resource
  - osdep_xenforeignmemory_map_resource
  source_file: /src/xen/tools/libs/foreignmemory/freebsd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIVCMD_DEV
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libs/foreignmemory/freebsd.c
      type_or_value: '"/dev/xen/privcmd"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_default_nic_values
  - main_networkattach
  - main_networklist
  - main_networkdetach
  source_file: /src/xen/tools/xl/xl_nic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - button_press
  - main_button_press
  - main_rename
  - main_trigger
  - main_sysrq
  - main_debug_keys
  - main_set_parameters
  - main_devd
  - main_qemu_monitor_command
  - core_dump_domain
  - main_dump_core
  - main_config_update
  source_file: /src/xen/tools/xl/xl_misc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cd_insert
  - main_cd_eject
  - main_cd_insert
  source_file: /src/xen/tools/xl/xl_cdrom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pcilist
  - main_pcilist
  - pcidetach
  - main_pcidetach
  - pciattach
  - main_pciattach
  - pciassignable_list
  - main_pciassignable_list
  - pciassignable_add
  - main_pciassignable_add
  - pciassignable_remove
  - main_pciassignable_remove
  source_file: /src/xen/tools/xl/xl_pci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_vdisplattach
  - main_vdispllist
  - main_vdispldetach
  source_file: /src/xen/tools/xl/xl_vdispl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_vtpmattach
  - main_vtpmlist
  - main_vtpmdetach
  source_file: /src/xen/tools/xl/xl_vtpm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_vkbattach
  - main_vkblist
  - main_vkbdetach
  source_file: /src/xen/tools/xl/xl_vkb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dolog
  - xvasprintf
  - xasprintf
  - xmalloc
  - xcalloc
  - xrealloc
  - xstrdup
  - flush_stream
  - find_domain
  - def_getopt
  - string_realloc_append
  - print_bitmap
  - do_daemonize
  source_file: /src/xen/tools/xl/xl_utils.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/xl/xl_utils.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_migration_child
  - migrate_read_fixedmessage
  - migration_child_report
  - migrate_do_preamble
  - migrate_domain
  - migrate_receive
  - main_migrate_receive
  - main_migrate
  - main_remus
  source_file: /src/xen/tools/xl/xl_migrate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - psr_cmt_hwinfo
  - psr_cmt_get_mem_bandwidth
  - psr_cmt_print_domain_info
  - psr_cmt_show
  - libxl_for_each_set_bit
  - main_psr_cmt_attach
  - main_psr_cmt_detach
  - main_psr_cmt_show
  - psr_l3_cat_hwinfo
  - psr_print_one_domain_val_type
  - psr_print_one_domain_val
  - psr_print_domain_val
  - psr_print_socket
  - psr_val_show
  - psr_l2_cat_hwinfo
  - main_psr_mba_show
  - main_psr_mba_set
  - psr_mba_hwinfo
  - main_psr_cat_cbm_set
  - main_psr_cat_show
  - main_psr_hwinfo
  source_file: /src/xen/tools/xl/xl_psr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MBM_SAMPLE_RETRY_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/xl/xl_psr.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_blockattach
  - main_blocklist
  - main_blockdetach
  source_file: /src/xen/tools/xl/xl_block.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_cpupoolcreate
  - libxl_for_each_set_bit
  - main_cpupoollist
  - main_cpupooldestroy
  - main_cpupoolrename
  - main_cpupoolcpuadd
  - main_cpupoolcpuremove
  - main_cpupoolmigrate
  - main_cpupoolnumasplit
  source_file: /src/xen/tools/xl/xl_cpupool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_EXTEND_INIT__CORE
  - ARRAY_EXTEND_INIT
  - get_action_on_shutdown_name
  - parse_action_on_shutdown
  - parse_disk_config_multistring
  - parse_disk_config
  - parse_vif_rate
  - parse_range
  - update_cpumap_range
  - libxl_for_each_set_bit
  - parse_cpurange
  - parse_top_level_vnc_options
  - parse_top_level_sdl_options
  - parse_cmdline
  - parse_vcpu_affinity
  - parse_ulong
  - replace_string
  - match_option_size
  - parse_nic_config
  - parse_vnuma_config
  - parse_usbctrl_config
  - parse_usbdev_config
  - parse_vdispl_config
  - parse_vsnd_params
  - parse_vsnd_pcm_stream
  - parse_vsnd_pcm_param
  - parse_vsnd_card_param
  - parse_vsnd_create_item
  - parse_vsnd_item
  - parse_vsnd_card_config
  - parse_vsnd_config
  - parse_vkb_config
  - parse_vkb_list
  - parse_virtio_config
  - parse_virtio_list
  - parse_arm_sci_config
  - parse_config_data
  - parse_extra_args
  - parse_mem_size_kb
  - split_string_into_string_list
  - trim
  - split_string_into_pair
  source_file: /src/xen/tools/xl/xl_parse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DSTATE_INITIAL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DSTATE_TAP
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DSTATE_PHYSPATH
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DSTATE_VIRTPATH
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DSTATE_VIRTTYPE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DSTATE_RW
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DSTATE_TERMINAL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/xl/xl_parse.c
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - auto_autoballoon
  - parse_global_config
  - postfork
  - xl_fork
  - xl_waitpid
  - xl_child_pid
  - xl_report_child_exitstatus
  - xl_reaped_callback
  - xl_ctx_alloc
  - xl_ctx_free
  - main
  - child_report
  - help
  source_file: /src/xen/tools/xl/xl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_PATTERN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/xl/xl.c
      type_or_value: '"-?[0-9]+[bBkKmMgGtT]?"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_vsndattach
  - print_params
  - main_vsndlist
  - main_vsnddetach
  source_file: /src/xen/tools/xl/xl_vsnd.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - printf_info_sexp
  source_file: /src/xen/tools/xl/xl_sxp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_getenforce
  - main_setenforce
  - main_loadpolicy
  source_file: /src/xen/tools/xl/xl_flask.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - save_domain_core_begin
  - save_domain_core_writeconfig
  - ADD_OPTDATA
  - save_domain
  - main_restore
  - main_save
  source_file: /src/xen/tools/xl/xl_saverestore.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u32
        type: uint32_t
      - name: b[4]
        type: char
      item_type: union
      name: u32buf
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/xen/tools/xl/xl_saverestore.c
- function_names:
  - suspend_domain
  - resume_domain
  - main_suspend
  - main_resume
  - pause_domain
  - unpause_domain
  - destroy_domain
  - main_pause
  - main_unpause
  - main_destroy
  - reboot_domain
  - shutdown_domain
  - wait_for_domain_deaths
  - main_shutdown_or_reboot
  - main_shutdown
  - main_reboot
  - evdisable_disk_ejects
  - domain_wait_event
  - freemem
  - reload_domain_config
  - handle_domain_death
  - preserve_domain
  - console_child_report
  - vncviewer
  - autoconnect_vncviewer
  - acquire_lock
  - release_lock
  - autoconnect_console
  - create_domain
  - WITH_OPTDATA
  - main_create
  - main_dt_overlay
  source_file: /src/xen/tools/xl/xl_vmcontrol.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTDATA_LEFT
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/xen/tools/xl/xl_vmcontrol.c
      type_or_value: (hdr.optional_data_len - (optdata_here - optdata_begin))
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u32
        type: uint32_t
      - name: b[4]
        type: char
      item_type: union
      name: u32buf
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/xen/tools/xl/xl_vmcontrol.c
- function_names:
  - main_console
  - main_vncviewer
  - main_channellist
  source_file: /src/xen/tools/xl/xl_console.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MATCH_OPTION
  source_file: /src/xen/tools/xl/xl_parse.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*char_predicate_t)(const int c)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/xen/tools/xl/xl_parse.h
      type: int
    union: []
- function_names:
  - print_vcpuinfo
  - print_domain_vcpuinfo
  - apply_global_affinity_masks
  - vcpulist
  - main_vcpulist
  - main_vcpupin
  - vcpuset
  - main_vcpuset
  source_file: /src/xen/tools/xl/xl_vcpu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmdtable_lookup
  source_file: /src/xen/tools/xl/xl_cmdtable.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - maybe_printf
  - printf_info_one_json
  - printf_info_one_json
  - printf_info
  - output_xeninfo
  - output_nodeinfo
  - output_physinfo
  - output_numainfo
  - output_topologyinfo
  - output_xenstore_info
  - print_info
  - list_vm
  - list_domains
  - list_domains_details
  - main_list
  - main_vm_list
  - main_info
  - main_domid
  - main_domname
  - uptime_to_string
  - main_claims
  - current_time_to_string
  - print_dom0_uptime
  - print_domU_uptime
  - print_uptime
  - main_uptime
  - main_dmesg
  - main_top
  source_file: /src/xen/tools/xl/xl_info.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main_usbctrl_attach
  - main_usbctrl_detach
  - main_usbdev_attach
  - main_usbdev_detach
  - main_usblist
  source_file: /src/xen/tools/xl/xl_usb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHK_ERRNOVAL
  - CHK_SYSCALL
  - MUST
  - STR_HAS_PREFIX
  - STR_SKIP_PREFIX
  - LOG
  - SWITCH_FOREACH_OPT
  source_file: /src/xen/tools/xl/xl_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMMON_LONG_OPTS
      pos:
        line_end: 119
        line_start: 117
        source_file: /src/xen/tools/xl/xl_utils.h
      type_or_value: "{\"help\", 0, 0, 'h'}, \\\n                         {0, 0, 0,
        0}"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xl/xl.h
  types:
    enum:
    - enumerators:
      - name: OUTPUT_FORMAT_JSON
      - name: OUTPUT_FORMAT_SXP
      item_type: enum
      name: output_format
      pos:
        line_end: 297
        line_start: 294
        source_file: /src/xen/tools/xl/xl.h
    preproc_defs:
    - item_type: preproc_def
      name: XL_MANDATORY_FLAG_JSON
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: '(1U << 0) '
    - item_type: preproc_def
      name: XL_MANDATORY_FLAG_STREAMv2
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: '(1U << 1) '
    - item_type: preproc_def
      name: XL_MANDATORY_FLAG_ALL
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: "(XL_MANDATORY_FLAG_JSON |        \\\n                                XL_MANDATORY_FLAG_STREAMv2)"
    - item_type: preproc_def
      name: SAVEFILE_BYTEORDER_VALUE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: ((uint32_t)0x01020304UL)
    - item_type: preproc_def
      name: minmsglevel_default
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: XTL_PROGRESS
    - item_type: preproc_def
      name: XL_GLOBAL_CONFIG
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: XEN_CONFIG_DIR "/xl.conf"
    - item_type: preproc_def
      name: XL_LOCK_FILE
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/tools/xl/xl.h
      type_or_value: XEN_LOCK_DIR "/xl"
    structs:
    - fields:
      - name: '*cmd_name'
        type: char
      - name: (*cmd_impl)(int argc, char **argv)
        type: int
      - name: can_dryrun
        type: int
      - name: modifies
        type: int
      - name: '*cmd_desc'
        type: char
      - name: '*cmd_usage'
        type: char
      - name: '*cmd_option'
        type: char
      item_type: struct
      name: cmd_spec
      pos:
        line_end: 29
        line_start: 21
        source_file: /src/xen/tools/xl/xl.h
    - fields:
      - name: debug
        type: int
      - name: daemonize
        type: int
      - name: monitor
        type: int
      - name: paused
        type: int
      - name: quiet
        type: int
      - name: vnc
        type: int
      - name: vncautopass
        type: int
      - name: console_autoconnect
        type: int
      - name: checkpointed_stream
        type: int
      - name: ignore_global_affinity_masks
        type: int
      - name: '*config_file'
        type: char
      - name: '*extra_config'
        type: char
      - name: '*restore_file'
        type: char
      - name: '*colo_proxy_script'
        type: char
      - name: userspace_colo_proxy
        type: bool
      - name: migrate_fd
        type: int
      - name: send_back_fd
        type: int
      - name: '**migration_domname_r'
        type: char
      item_type: struct
      name: domain_create
      pos:
        line_end: 50
        line_start: 31
        source_file: /src/xen/tools/xl/xl.h
    - fields:
      - name: magic[32]
        type: char
      - name: byteorder
        type: uint32_t
      - name: mandatory_flags
        type: uint32_t
      - name: optional_flags
        type: uint32_t
      - name: optional_data_len
        type: uint32_t
      item_type: struct
      name: save_file_header
      pos:
        line_end: 89
        line_start: 82
        source_file: /src/xen/tools/xl/xl.h
    - fields:
      - name: pid
        type: pid_t
      - name: reaped
        type: int
      - name: status
        type: int
      - name: '*description'
        type: char
      item_type: struct
      name: xlchild
      pos:
        line_end: 242
        line_start: 236
        source_file: /src/xen/tools/xl/xl.h
    typedefs: []
    union: []
- function_names:
  - sched_domain_get
  - sched_domain_set
  - sched_vcpu_get
  - sched_vcpu_get_all
  - sched_vcpu_set
  - sched_vcpu_set_all
  - sched_credit_params_set
  - sched_credit_params_get
  - sched_credit_domain_output
  - sched_credit_pool_output
  - sched_credit2_params_set
  - sched_credit2_params_get
  - sched_credit2_domain_output
  - sched_credit2_pool_output
  - sched_rtds_domain_output
  - sched_rtds_vcpu_output
  - sched_rtds_vcpu_output_all
  - sched_rtds_pool_output
  - sched_domain_output
  - sched_vcpu_output
  - main_sched_credit
  - main_sched_credit2
  - main_sched_rtds
  source_file: /src/xen/tools/xl/xl_sched.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_memory_max
  - main_memmax
  - set_memory_target
  - main_memset
  - sharing
  - main_sharing
  source_file: /src/xen/tools/xl/xl_mem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xs_set_error
  - xshandle
  - xspy_read
  - if
  - xspy_write
  - xspy_ls
  - if
  - xspy_mkdir
  - xspy_rm
  - xspy_get_permissions
  - if
  - xspy_set_permissions
  - MAX_STRLEN
  - xspy_watch
  - xspy_fileno
  - xspy_check_watch
  - xspy_read_watch
  - xspy_unwatch
  - xspy_transaction_start
  - xspy_transaction_end
  - if
  - xspy_introduce_domain
  - xspy_set_target
  - xspy_resume_domain
  - xspy_release_domain
  - xspy_close
  - xspy_get_domain_path
  - if
  - remove_watch
  - parse_transaction_path
  - match_watch_by_token
  - none
  - XSPY_METH
  - xshandle_new
  - xshandle_init
  - xshandle_dealloc
  source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: DL_EXPORT(void)
    - item_type: preproc_def
      name: PKG
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: '"xen.lowlevel.xs"'
    - item_type: preproc_def
      name: CLS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: '"xs"'
    - item_type: preproc_def
      name: PyLong_FromLong
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: PyInt_FromLong
    - item_type: preproc_def
      name: PyLong_Check
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: PyInt_Check
    - item_type: preproc_def
      name: PyLong_AsLong
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: PyInt_AsLong
    - item_type: preproc_def
      name: xspy_read_doc
      pos:
        line_end: 99
        line_start: 90
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                              \\\n\t\"Read data from
        a path.\\n\"                      \\\n\t\" transaction [string]: transaction
        handle\\n\"\t\\\n\t\" path [string]:        xenstore path\\n\"\t\\\n\t\"\\n\"
        \                                           \\\n\t\"Returns: [string] data
        read.\\n\"                \\\n\t\"         None if key doesn't exist.\\n\"
        \        \\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"               \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_write_doc
      pos:
        line_end: 135
        line_start: 126
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"Write data to a path.\\n\"\t\t\t\t\\\n\t\"
        transaction [string]: transaction handle\\n\"           \\\n\t\" path   [string]
        : xenstore path to write to\\n.\"\t\\\n\t\" data   [string] : data to write.\\n\"\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_ls_doc
      pos:
        line_end: 171
        line_start: 162
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"List a directory.\\n\"\t\t\t\t\t\\\n\t\"
        transaction [string]: transaction handle\\n\"           \\\n\t\" path [string]:
        \       path to list.\\n\"                \\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns:
        [string array] list of subdirectory names.\\n\"\t\\\n\t\"         None if
        key doesn't exist.\\n\"\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_mkdir_doc
      pos:
        line_end: 214
        line_start: 206
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"Make a directory.\\n\"\t\t\t\t\t\\\n\t\"
        transaction [string]: transaction handle.\\n\"\t\t\\\n\t\" path [string]       :
        path to directory to create.\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_rm_doc
      pos:
        line_end: 242
        line_start: 234
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                                \\\n\t\"Remove a path.\\n\"
        \                             \\\n\t\" transaction [string]: transaction handle\\n\"\t\\\n\t\"
        path [string] : path to remove\\n\"             \\\n\t\"\\n\"                                            \\\n\t\"Returns
        None on success.\\n\"                    \\\n\t\"Raises xen.lowlevel.xs.Error
        on error.\\n\"               \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_get_permissions_doc
      pos:
        line_end: 270
        line_start: 262
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                   \\\n\t\"Get the permissions for a
        path\\n\"              \\\n\t\" transaction [string]: transaction handle\\n\"\t\\\n\t\"
        path [string]:        xenstore path.\\n\"       \\\n\t\"\\n\"                                            \\\n\t\"Returns:
        permissions array.\\n\"                 \\\n\t\"Raises xen.lowlevel.xs.Error
        on error.\\n\"               \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_set_permissions_doc
      pos:
        line_end: 324
        line_start: 315
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                   \\\n\t\"Set the permissions for a
        path\\n\"              \\\n\t\" transaction [string]: transaction handle\\n\"\t\\\n\t\"
        path  [string]      : xenstore path.\\n\"\t\\\n\t\" perms               :
        permissions.\\n\"         \\\n\t\"\\n\"                                            \\\n\t\"Returns
        None on success.\\n\"                    \\\n\t\"Raises xen.lowlevel.xs.Error
        on error.\\n\"               \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_watch_doc
      pos:
        line_end: 414
        line_start: 406
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\t\\\n\t\"Watch a path, get notifications when
        it changes.\\n\"\t\t\\\n\t\" path     [string] : xenstore path.\\n\"\t\t\t\t\\\n\t\"
        token    [string] : returned in watch notification.\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_fileno_doc
      pos:
        line_end: 462
        line_start: 458
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                              \\\n\t\"Return the FD to
        poll for notifications when watches fire.\\n\"   \\\n\t\"Returns: [int] file
        descriptor.\\n\"                \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_check_watch_doc
      pos:
        line_end: 484
        line_start: 477
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\\\n\t\"Check for watch notifications without
        blocking.\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns: [tuple] (path,
        token).\\n\"\t\t\t\\\n\t\"         None if no watches have fired.\\n\"             \\\n\t\"Raises
        xen.lowlevel.xs.Error on error.\\n\"\t        \\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_read_watch_doc
      pos:
        line_end: 510
        line_start: 504
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\\\n\t\"Read a watch notification.\\n\"\t\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns:
        [tuple] (path, token).\\n\"\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_unwatch_doc
      pos:
        line_end: 549
        line_start: 541
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\\\n\t\"Stop watching a path.\\n\"\t\t\t\\\n\t\"
        path  [string] : xenstore path.\\n\"\t\t\\\n\t\" token [string] : token from
        the watch.\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\t\\\n\t\"Returns None on success.\\n\"\t\t\t\\\n\t\"Raises
        xen.lowlevel.xs.Error on error.\\n\"\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_transaction_start_doc
      pos:
        line_end: 579
        line_start: 573
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\\\n\t\"Start a transaction.\\n\"\t\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\\\n\t\"Returns
        transaction handle on success.\\n\"\t\t\\\n\t\"Raises xen.lowlevel.xs.Error
        on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_transaction_end_doc
      pos:
        line_end: 615
        line_start: 606
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"End the current transaction.\\n\"\t\t\t\t\\\n\t\"Attempts
        to commit the transaction unless abort is true.\\n\"\t\\\n\t\" transaction
        [string] : transaction handle.\\n\"\t\t\t\\\n\t\" abort [int]          : abort
        flag (default 0).\\n\"\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\t\\\n\t\"Returns True
        on success, False if you need to try again.\\n\"\t\\\n\t\"Raises xen.lowlevel.xs.Error
        on error.\\n\"\t\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_introduce_domain_doc
      pos:
        line_end: 665
        line_start: 656
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"Tell xenstore about a domain so it
        can talk to it.\\n\"\t\t\\\n\t\" dom  [int]   : domain id\\n\"\t\t\t\t\t\\\n\t\"
        page [long]  : address of domain's xenstore page\\n\"\t\t\\\n\t\" port [int]
        \  : port the domain is using for xenstore\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_set_target_doc
      pos:
        line_end: 696
        line_start: 687
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n        \"Tell xenstore that a domain is
        targetting another one so it\\n\" \\\n        \"should let it tinker with
        it.\\n\"\t                        \\\n\t\" dom    [int]   : domain id\\n\"\t\t\t\t\t\\\n\t\"
        target [int]   : domain id of the target\\n\"\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_resume_domain_doc
      pos:
        line_end: 725
        line_start: 717
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"                                \\\n\t\"Tell xenstore
        to clear its shutdown flag for a domain.\\n\" \\\n\t\"This ensures that a
        subsequent shutdown will fire the\\n\"  \\\n\t\"appropriate watches.\\n\"
        \                                  \\\n\t\" dom [int]: domain id\\n\"\t\t\t
        \          \\\n        \"\\n\"\t\t\t\t\t\t           \\\n        \"Returns
        None on success.\\n\"\t\t\t\t   \\\n        \"Raises xen.lowlevel.xs.Error
        on error.\\n\""
    - item_type: preproc_def
      name: xspy_release_domain_doc
      pos:
        line_end: 753
        line_start: 745
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\t\t\\\n\t\"Tell xenstore to release its channel
        to a domain.\\n\"\t\t\\\n\t\"Unless this is done the domain will not be released.\\n\"\t\\\n\t\"
        dom [int]: domain id\\n\"\t\t\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\t\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\t\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_close_doc
      pos:
        line_end: 780
        line_start: 774
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\\\n\t\"Close the connection to xenstore.\\n\"\t\\\n\t\"\\n\"\t\t\t\t\t\\\n\t\"Returns
        None on success.\\n\"\t\t\\\n\t\"Raises xen.lowlevel.xs.Error on error.\\n\"\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: xspy_get_domain_path_doc
      pos:
        line_end: 809
        line_start: 802
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: "\"\\n\"\t\t\t\\\n\t\"Return store path of domain, whether or
        not the domain exists.\\n\" \\\n\t\" domid [int]: domain id\\n\"\t\t\t\\\n\t\"\\n\"\t\t\t\t\t\t\\\n\t\"Returns:
        [string] domain store path.\\n\"\t\\\n\t\"Raises xen.lowlevel.xs.Error on
        error.\\n\"\t\t\\\n\t\"\\n\""
    - item_type: preproc_def
      name: INITERROR
      pos:
        line_end: 1043
        line_start: 1042
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: return NULL
    - item_type: preproc_def
      name: INITERROR
      pos:
        line_end: 1046
        line_start: 1045
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
      type_or_value: return
    structs:
    - fields:
      - name: '*xh'
        type: struct xs_handle
      - name: '*watches'
        type: PyObject
      item_type: struct
      name: XsHandle
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/xen/tools/python/xen/lowlevel/xs/xs.c
    typedefs: []
    union: []
- function_names:
  - pyxc_error_to_exception
  - pyxc_domain_dumpcore
  - pyxc_domain_create
  - pyxc_domain_max_vcpus
  - pyxc_domain_pause
  - pyxc_domain_unpause
  - pyxc_domain_destroy_hook
  - pyxc_domain_destroy
  - pyxc_domain_shutdown
  - pyxc_domain_resume
  - pyxc_vcpu_setaffinity
  - pyxc_domain_sethandle
  - pyxc_domain_getinfo
  - pyxc_vcpu_getinfo
  - pyxc_hvm_param_get
  - pyxc_hvm_param_set
  - token_value
  - next_bdf
  - pyxc_test_assign_device
  - pyxc_assign_device
  - pyxc_deassign_device
  - pyxc_get_device_group
  - pyxc_gnttab_hvm_seed
  - pyxc_evtchn_alloc_unbound
  - pyxc_evtchn_reset
  - pyxc_physdev_map_pirq
  - pyxc_physdev_pci_access_modify
  - pyxc_readconsolering
  - pages_to_kib
  - pyxc_pages_to_kib
  - pyxc_physinfo
  - pyxc_getcpuinfo
  - pyxc_topologyinfo
  - pyxc_numainfo
  - pyxc_xenbuildid
  - pyxc_xeninfo
  - pyxc_shadow_control
  - pyxc_shadow_mem_control
  - pyxc_sched_id_get
  - pyxc_sched_credit_domain_set
  - pyxc_sched_credit_domain_get
  - pyxc_sched_credit2_domain_set
  - pyxc_sched_credit2_domain_get
  - pyxc_domain_setmaxmem
  - pyxc_domain_set_target_mem
  - pyxc_domain_set_memmap_limit
  - pyxc_domain_ioport_permission
  - pyxc_domain_irq_permission
  - pyxc_domain_iomem_permission
  - pyxc_domain_set_time_offset
  - pyxc_domain_set_tsc_info
  - pyxc_domain_send_trigger
  - pyxc_send_debug_keys
  - dom_op
  - pyxc_dom_set_memshr
  - cpumap_to_cpulist
  - pyxc_cpupool_create
  - pyxc_cpupool_destroy
  - pyxc_cpupool_getinfo
  - pyxc_cpupool_addcpu
  - pyxc_cpupool_removecpu
  - pyxc_cpupool_movedomain
  - pyxc_cpupool_freeinfo
  - pyflask_context_to_sid
  - pyflask_sid_to_context
  - pyflask_load
  - pyflask_getenforce
  - pyflask_setenforce
  - pyflask_access
  - PyXc_new
  - PyXc_init
  - PyXc_dealloc
  source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: DL_EXPORT(void)
    - item_type: preproc_def
      name: PKG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: '"xen.lowlevel.xc"'
    - item_type: preproc_def
      name: CLS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: '"xc"'
    - item_type: preproc_def
      name: FLASK_CTX_LEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: PyLongOrInt_FromLong
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyLong_FromLong
    - item_type: preproc_def
      name: PyLongOrInt_Check
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyLong_Check
    - item_type: preproc_def
      name: PyLongOrInt_AsLong
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyLong_AsLong
    - item_type: preproc_def
      name: PyLongOrInt_FromLong
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyInt_FromLong
    - item_type: preproc_def
      name: PyLongOrInt_Check
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyInt_Check
    - item_type: preproc_def
      name: PyLongOrInt_AsLong
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: PyInt_AsLong
    - item_type: preproc_def
      name: INITERROR
      pos:
        line_end: 2524
        line_start: 2523
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: return NULL
    - item_type: preproc_def
      name: INITERROR
      pos:
        line_end: 2527
        line_start: 2526
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
      type_or_value: return
    structs:
    - fields:
      - name: '*xc_handle'
        type: xc_interface
      item_type: struct
      name: XcObject
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/xen/tools/python/xen/lowlevel/xc/xc.c
    typedefs: []
    union: []
- function_names:
  - LIST_HEAD_INIT
  - LIST_HEAD
  - INIT_LIST_HEAD
  - list_top
  - __list_add
  - list_add
  - list_add_tail
  - __list_del
  - list_del
  - list_del_init
  - list_move
  - list_move_tail
  - list_empty
  - __list_splice
  - list_splice
  - list_splice_init
  - list_entry
  - list_for_each
  - list_for_each_prev
  - list_for_each_safe
  - list_for_each_entry
  - list_for_each_entry_reverse
  - list_for_each_entry_continue
  - list_for_each_entry_safe
  source_file: /src/xen/tools/xenstored/list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_POISON1
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/xenstored/list.h
      type_or_value: ((void *) 0x00100100)
    - item_type: preproc_def
      name: LIST_POISON2
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/xenstored/list.h
      type_or_value: ((void *) 0x00200200)
    structs:
    - fields:
      - name: '*next'
        type: struct list_head
      item_type: struct
      name: list_head
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/xen/tools/xenstored/list.h
    typedefs: []
    union: []
- function_names:
  - is_child
  - get_watch_path
  - watch_permitted
  - fire_watches
  - destroy_watch
  - check_watch_path
  - add_watch
  - do_watch
  - do_unwatch
  - conn_delete_all_watches
  - dump_state_watches
  - read_state_watch
  source_file: /src/xen/tools/xenstored/watch.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: prefix_len
        type: unsigned int
      - name: '*token'
        type: char
      - name: '*node'
        type: char
      item_type: struct
      name: watch
      pos:
        line_end: 43
        line_start: 33
        source_file: /src/xen/tools/xenstored/watch.c
    typedefs: []
    union: []
- function_names:
  - lu_destroy
  - lu_begin
  - lu_get_connection
  - lu_write_response
  - lu_is_pending
  - lu_get_dump_state
  - lu_dump_close
  - lu_close_dump_state
  - lu_read_data
  - lu_read_state
  - lu_abort
  - lu_cmdline
  - lu_check_lu_allowed
  - lu_reject_reason
  - lu_dump_open
  - lu_dump_state
  - lu_activate_binary
  - do_lu_start
  - lu_start
  - do_control_lu
  source_file: /src/xen/tools/xenstored/lu.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: void
      - name: buf_size
        type: unsigned int
      - name: size
        type: size_t
      - name: offset
        type: size_t
      - name: '*filename'
        type: char
      - name: '*fp'
        type: FILE
      item_type: struct
      name: lu_dump_state
      pos:
        line_end: 34
        line_start: 27
        source_file: /src/xen/tools/xenstored/lu.c
    typedefs: []
    union: []
- function_names:
  - lu_exec
  - lu_binary
  - lu_arch
  source_file: /src/xen/tools/xenstored/lu_daemon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TALLOC_ABORT
  - discard_const_p
  - discard_const_p
  - TC_PTR_FROM_CHUNK
  - talloc_chunk_from_ptr
  - _TLIST_ADD
  - _TLIST_REMOVE
  - talloc_parent_chunk
  - talloc_parent
  - _talloc
  - talloc_set_destructor
  - talloc_increase_ref_count
  - talloc_reference_destructor
  - talloc_reference
  - talloc_unreference
  - talloc_unlink
  - talloc_set_name_v
  - talloc_set_name
  - talloc_set_name_const
  - talloc_named
  - talloc_named_const
  - talloc_get_name
  - talloc_check_name
  - talloc_init
  - talloc_free_children
  - talloc_free
  - _talloc_realloc
  - talloc_steal
  - talloc_total_size
  - talloc_total_blocks
  - talloc_reference_count
  - talloc_report_depth
  - talloc_report_full
  - talloc_report
  - talloc_report_null
  - talloc_report_null_full
  - talloc_enable_null_tracking
  - talloc_report_depth_str
  - talloc_describe_all
  - talloc_enable_leak_report
  - talloc_enable_leak_report_full
  - _talloc_zero
  - _talloc_memdup
  - talloc_strdup
  - talloc_append_string
  - talloc_strndup
  - VA_COPY
  - VA_COPY
  - VA_COPY
  - talloc_vasprintf
  - talloc_asprintf
  - talloc_vasprintf_append
  - talloc_asprintf_append
  - _talloc_array
  - _talloc_zero_array
  - _talloc_realloc_array
  - talloc_realloc_fn
  - talloc_autofree
  - talloc_autofree_context
  - talloc_get_size
  - talloc_find_parent_byname
  - talloc_show_parents
  source_file: /src/xen/tools/xenstored/talloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALWAYS_REALLOC
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_TALLOC_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: TALLOC_MAGIC
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: '0xe814ec70'
    - item_type: preproc_def
      name: TALLOC_FLAG_FREE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TALLOC_FLAG_LOOP
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TALLOC_MAGIC_REFERENCE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: ((const char *)1)
    - item_type: preproc_def
      name: TC_HDR_SIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/xenstored/talloc.c
      type_or_value: ((sizeof(struct talloc_chunk)+15)&~15)
    structs:
    - fields:
      - name: '*next'
        type: struct talloc_reference_handle
      - name: '*ptr'
        type: void
      item_type: struct
      name: talloc_reference_handle
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/xen/tools/xenstored/talloc.c
    - fields:
      - name: '*next'
        type: struct talloc_chunk
      - name: '*parent'
        type: struct talloc_chunk
      - name: '*refs'
        type: struct talloc_reference_handle
      - name: null_refs
        type: unsigned int
      - name: destructor
        type: talloc_destructor_t
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: flags
        type: unsigned
      item_type: struct
      name: talloc_chunk
      pos:
        line_end: 103
        line_start: 94
        source_file: /src/xen/tools/xenstored/talloc.c
    typedefs:
    - item_type: typedef
      name: (*talloc_destructor_t)(void *)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/xen/tools/xenstored/talloc.c
      type: int
    union: []
- function_names:
  - indexFor
  - loadlimit
  - create_hashtable
  - hash
  - hashtable_expand
  - hashtable_search_entry
  - hashtable_add
  - hashtable_search
  - hashtable_replace
  - hashtable_remove
  - hashtable_iterate
  - hashtable_destroy
  source_file: /src/xen/tools/xenstored/hashtable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIME_TABLE_LEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/xenstored/hashtable.c
      type_or_value: ARRAY_SIZE(primes)
    - item_type: preproc_def
      name: MAX_LOAD_PERCENT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/xenstored/hashtable.c
      type_or_value: '65'
    structs:
    - fields:
      - name: '*k'
        type: void
      - name: '*v'
        type: void
      - name: h
        type: unsigned int
      - name: '*next'
        type: struct entry
      item_type: struct
      name: entry
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/xen/tools/xenstored/hashtable.c
    - fields:
      - name: tablelength
        type: unsigned int
      - name: flags
        type: unsigned int
      - name: '**table'
        type: struct entry
      - name: entrycount
        type: unsigned int
      - name: loadlimit
        type: unsigned int
      - name: primeindex
        type: unsigned int
      - name: (*hashfn) (const void *k)
        type: unsigned int
      - name: (*eqfn) (const void *k1, const void *k2)
        type: int
      item_type: struct
      name: hashtable
      pos:
        line_end: 28
        line_start: 19
        source_file: /src/xen/tools/xenstored/hashtable.c
    typedefs: []
    union: []
- function_names:
  - streq
  - strstarts
  - strends
  - PRINTF_ATTRIBUTE
  - eprintf
  - ERR_PTR
  - PTR_ERR
  - IS_ERR
  source_file: /src/xen/tools/xenstored/utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __noreturn
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/xenstored/utils.h
      type_or_value: __attribute__((noreturn))
    structs: []
    typedefs: []
    union: []
- function_names:
  - lu_exec
  - lu_binary_alloc
  - lu_binary_save
  - lu_arch
  source_file: /src/xen/tools/xenstored/lu_minios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - htobe32
  - be32toh
  - htobe32
  - be32toh
  source_file: /src/xen/tools/xenstored/xenstore_state.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XS_STATE_IDENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '"xenstore"  '
    - item_type: preproc_def
      name: XS_STATE_VERSION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: XS_STATE_FLAGS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: XS_STATE_FLAGS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: XS_STATE_TYPE_END
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: XS_STATE_TYPE_GLOBAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: XS_STATE_TYPE_CONN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: XS_STATE_TYPE_WATCH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000003'
    - item_type: preproc_def
      name: XS_STATE_TYPE_TA
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: XS_STATE_TYPE_NODE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000005'
    - item_type: preproc_def
      name: XS_STATE_TYPE_GLB_QUOTA
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000006'
    - item_type: preproc_def
      name: XS_STATE_TYPE_DOMAIN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000007'
    - item_type: preproc_def
      name: XS_STATE_TYPE_WATCH_EXT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: XS_STATE_CONN_TYPE_RING
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XS_STATE_CONN_TYPE_SOCKET
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XS_STATE_CONN_FIELDS_UNIQ_ID
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: XS_STATE_NODE_PERM_NONE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '''n'''
    - item_type: preproc_def
      name: XS_STATE_NODE_PERM_READ
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '''r'''
    - item_type: preproc_def
      name: XS_STATE_NODE_PERM_WRITE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '''w'''
    - item_type: preproc_def
      name: XS_STATE_NODE_PERM_BOTH
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '''b'''
    - item_type: preproc_def
      name: XS_STATE_NODE_PERM_IGNORE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: XS_STATE_NODE_TA_DELETED
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: XS_STATE_NODE_TA_READ
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: XS_STATE_NODE_TA_WRITTEN
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/xenstored/xenstore_state.h
      type_or_value: '0x0002'
    structs:
    - fields:
      - name: ident[8]
        type: char
      - name: version
        type: uint32_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: xs_state_preamble
      pos:
        line_end: 47
        line_start: 36
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: type
        type: uint32_t
      - name: length
        type: uint32_t
      item_type: struct
      name: xs_state_record_header
      pos:
        line_end: 67
        line_start: 55
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: socket_fd
        type: int32_t
      - name: evtchn_fd
        type: int32_t
      item_type: struct
      name: xs_state_global
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: conn_id
        type: uint32_t
      - name: conn_type
        type: uint16_t
      - name: fields
        type: uint16_t
      - name: spec
        type: "union {\n        struct {\n            uint16_t domid;  /* Domain-Id.
          */\n            uint16_t tdomid; /* Id of target domain or DOMID_INVALID.
          */\n            uint32_t evtchn; /* Event channel port. */\n        } ring;\n
          \       int32_t socket_fd;   /* File descriptor for socket connections.
          */\n    }"
      - name: data_in_len
        type: uint16_t
      - name: data_resp_len
        type: uint16_t
      - name: data_out_len
        type: uint32_t
      - name: data[]
        type: uint8_t
      item_type: struct
      name: xs_state_connection
      pos:
        line_end: 95
        line_start: 76
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: conn_id
        type: uint32_t
      - name: path_length
        type: uint16_t
      - name: token_length
        type: uint16_t
      - name: data[]
        type: uint8_t
      item_type: struct
      name: xs_state_watch
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: conn_id
        type: uint32_t
      - name: path_length
        type: uint16_t
      - name: token_length
        type: uint16_t
      - name: depth
        type: uint16_t
      - name: data[]
        type: uint8_t
      item_type: struct
      name: xs_state_watch_ext
      pos:
        line_end: 112
        line_start: 105
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: conn_id
        type: uint32_t
      - name: ta_id
        type: uint32_t
      item_type: struct
      name: xs_state_transaction
      pos:
        line_end: 118
        line_start: 115
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: access
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: domid
        type: uint16_t
      item_type: struct
      name: xs_state_node_perm
      pos:
        line_end: 130
        line_start: 121
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: conn_id
        type: uint32_t
      - name: ta_id
        type: uint32_t
      - name: path_len
        type: uint16_t
      - name: data_len
        type: uint16_t
      - name: ta_access
        type: uint16_t
      - name: perm_n
        type: uint16_t
      - name: perms[]
        type: struct xs_state_node_perm
      item_type: struct
      name: xs_state_node
      pos:
        line_end: 144
        line_start: 131
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: n_dom_quota
        type: uint16_t
      - name: n_glob_quota
        type: uint16_t
      - name: quota_val[]
        type: uint32_t
      item_type: struct
      name: xs_state_glb_quota
      pos:
        line_end: 151
        line_start: 147
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    - fields:
      - name: domain_id
        type: uint16_t
      - name: n_quota
        type: uint16_t
      - name: features
        type: uint32_t
      - name: quota_val[]
        type: uint32_t
      item_type: struct
      name: xs_state_domain
      pos:
        line_end: 159
        line_start: 154
        source_file: /src/xen/tools/xenstored/xenstore_state.h
    typedefs: []
    union: []
- function_names:
  - ta_node_created
  - find_accessed_node
  - transaction_get_node_name
  - transaction_prepend
  - access_node
  - queue_watches
  - finalize_transaction
  - destroy_transaction
  - transaction_lookup
  - do_transaction_start
  - do_transaction_end
  - transaction_get_changed_domains
  - fail_transaction
  - conn_delete_all_transactions
  - check_transactions
  source_file: /src/xen/tools/xenstored/transaction.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: '*trans_name'
        type: char
      - name: '*node'
        type: char
      - name: generation
        type: uint64_t
      - name: perms
        type: struct node_perms
      - name: check_gen
        type: bool
      - name: modified
        type: bool
      - name: ta_node
        type: bool
      - name: fire_watch
        type: bool
      - name: watch_exact
        type: bool
      item_type: struct
      name: accessed_node
      pos:
        line_end: 137
        line_start: 110
        source_file: /src/xen/tools/xenstored/transaction.c
    - fields:
      - name: list
        type: struct list_head
      - name: '*conn'
        type: struct connection
      - name: id
        type: uint32_t
      - name: nodes
        type: unsigned int
      - name: generation
        type: uint64_t
      - name: accessed
        type: struct list_head
      - name: changed_domains
        type: struct list_head
      - name: node_created
        type: bool
      - name: fail
        type: bool
      item_type: struct
      name: transaction
      pos:
        line_end: 167
        line_start: 139
        source_file: /src/xen/tools/xenstored/transaction.c
    typedefs: []
    union: []
- function_names:
  - _STRING_LINE_
  - _STRING_LINE2_
  - talloc
  - talloc_size
  - talloc_new
  - talloc_zero
  - talloc_zero_size
  - talloc_zero_array
  - talloc_array
  - talloc_array_size
  - talloc_realloc
  - talloc_realloc_size
  - talloc_memdup
  - malloc_p
  - malloc_array_p
  - realloc_p
  - data_blob
  - data_blob_talloc
  - data_blob_dup_talloc
  - talloc_set_type
  - talloc_get_type
  - talloc_find_parent_bytype
  - talloc_zero_p
  - talloc_p
  - talloc_array_p
  - talloc_realloc_p
  - talloc_destroy
  source_file: /src/xen/tools/xenstored/talloc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __LINESTR__
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/xenstored/talloc.h
      type_or_value: _STRING_LINE2_(__LINE__)
    - item_type: preproc_def
      name: __location__
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/xenstored/talloc.h
      type_or_value: __FILE__ ":" __LINESTR__
    - item_type: preproc_def
      name: TALLOC_DEPRECATED
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/xenstored/talloc.h
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: TALLOC_CTX
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/xenstored/talloc.h
      type: void
    union: []
- function_names:
  - write_pidfile
  - daemonize
  - trigger_reopen_log
  - finish_daemonize
  - init_pipe
  - unmap_xenbus
  - get_xenbus_evtchn
  - get_domain_evtchn
  - xenbus_map
  - writefd
  - readfd
  - socket_can_process
  - socket_can_write
  - socket_can_read
  - accept_connection
  - destroy_fds
  - init_sockets
  - add_socket_connection
  - early_init
  - set_special_fds
  - handle_special_fds
  - late_init
  - get_socket_fd
  - set_socket_fd
  - evtchn_fdopen
  - evtchn_rebind
  - xenstore_rundir
  source_file: /src/xen/tools/xenstored/posix.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trace_wrl
  - wrl_xfer_credit
  - wrl_domain_new
  - wrl_domain_destroy
  - wrl_credit_update
  - wrl_check_timeout
  - WRL_LOG
  - wrl_apply_debit_actual
  - wrl_log_periodic
  - wrl_apply_debit_direct
  - wrl_apply_debit_trans_commit
  - check_indexes
  - get_output_chunk
  - get_input_chunk
  - writechn
  - readchn
  - domain_can_write
  - domain_can_read
  - map_interface
  - unmap_interface
  - domain_tree_remove_sub
  - domain_tree_remove
  - fire_special_watches
  - destroy_domain
  - do_check_domain
  - check_domain
  - check_domains
  - find_domain_struct
  - do_check_domains
  - handle_event
  - talloc_domain_path
  - domain_get_quota
  - domain_max_global_acc
  - alloc_domain
  - find_or_alloc_domain
  - find_or_alloc_existing_domain
  - new_domain
  - find_domain_by_domid
  - trace_acc
  - acc_fix_domains
  - list_for_each_entry
  - acc_find_changed_domain
  - list_for_each_entry
  - acc_get_changed_domain
  - acc_add_changed_dom
  - domain_conn_reset
  - ignore_connection
  - introduce_domain
  - do_introduce
  - find_connected_domain
  - do_set_target
  - onearg_domain
  - do_release
  - do_resume
  - do_get_domain_path
  - do_is_domain_introduced
  - do_reset_watches
  - do_get_feature
  - do_set_feature
  - close_xgt_handle
  - get_implicit_path
  - init_domain
  - init_domains
  - stubdom_init
  - domhash_fn
  - domeq_fn
  - domain_early_init
  - domain_init
  - domain_deinit
  - chk_domain_generation
  - domain_alloc_permrefs
  - domain_adjust_node_perms
  - domain_acc_valid_max
  - domain_acc_add_valid
  - domain_acc_add
  - acc_drop
  - acc_commit
  - domain_reset_global_acc_sub
  - domain_reset_global_acc
  - domain_max_chk
  - domain_nbentry_inc
  - domain_nbentry_dec
  - domain_nbentry_fix
  - domain_nbentry
  - domain_chk_quota
  - domain_memory_add
  - domain_watch_inc
  - domain_watch_dec
  - domain_watch
  - domain_outstanding_inc
  - domain_outstanding_dec
  - domain_transaction_inc
  - domain_transaction_dec
  - domain_transaction_get
  - dump_state_connections
  - read_state_connection
  - dump_state_domain
  - dump_state_domains
  - read_state_domain
  - domain_check_acc_init_sub
  - domain_check_acc_init
  - domain_check_acc_add
  - domain_check_acc_cb
  - domain_check_acc
  source_file: /src/xen/tools/xenstored/domain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENSTORE_FEATURES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: XENSTORE_SERVER_FEATURE_ERROR
    - item_type: preproc_def
      name: MEM_WARN_MINTIME_SEC
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '10'
    - item_type: preproc_def
      name: WRL_CREDIT_MAX
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: (1000*1000*1000)
    - item_type: preproc_def
      name: WRL_FACTOR
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '1000 '
    - item_type: preproc_def
      name: WRL_RATE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '200'
    - item_type: preproc_def
      name: WRL_DBURST
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '10'
    - item_type: preproc_def
      name: WRL_GBURST
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: WRL_NEWDOMS
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '5'
    - item_type: preproc_def
      name: WRL_LOGEVERY
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/xenstored/domain.c
      type_or_value: '120 '
    structs:
    - fields:
      - name: domid
        type: unsigned int
      - name: unique_id
        type: uint64_t
      - name: port
        type: evtchn_port_t
      - name: features
        type: unsigned int
      - name: '*path'
        type: char
      - name: '*interface'
        type: struct xenstore_domain_interface
      - name: '*conn'
        type: struct connection
      - name: generation
        type: uint64_t
      - name: shutdown
        type: bool
      - name: introduced
        type: bool
      - name: acc[ACC_N]
        type: "struct acc {\n\t\tunsigned int val;\n\t\tunsigned int max;\n\t}"
      - name: soft_quota_reported
        type: bool
      - name: hard_quota_reported
        type: bool
      - name: mem_last_msg
        type: time_t
      - name: wrl_credit
        type: wrl_creditt
      - name: wrl_timestamp
        type: uint64_t
      - name: wrl_delay_logged
        type: bool
      item_type: struct
      name: domain
      pos:
        line_end: 157
        line_start: 111
        source_file: /src/xen/tools/xenstored/domain.c
    - fields:
      - name: val
        type: unsigned int
      - name: max
        type: unsigned int
      item_type: struct
      name: acc
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/xen/tools/xenstored/domain.c
    - fields:
      - name: list
        type: struct list_head
      - name: domid
        type: unsigned int
      - name: acc[ACC_CHD_N]
        type: int
      item_type: struct
      name: changed_domain
      pos:
        line_end: 169
        line_start: 159
        source_file: /src/xen/tools/xenstored/domain.c
    - fields:
      - name: domid
        type: unsigned int
      - name: nodes
        type: int
      item_type: struct
      name: domain_acc
      pos:
        line_end: 2053
        line_start: 2050
        source_file: /src/xen/tools/xenstored/domain.c
    typedefs:
    - item_type: typedef
      name: wrl_creditt
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/xen/tools/xenstored/domain.c
      type: int32_t
    union: []
- function_names:
  - get_node_owner
  - node_to_node_perms
  - perm_for_conn_from_node
  - node_perms_to_node
  - log
  - trace_tdb
  - domid_is_unprivileged
  - domain_is_unprivileged
  source_file: /src/xen/tools/xenstored/core.h
  types:
    enum:
    - enumerators:
      - name: NODE_CREATE
      - name: NODE_MODIFY
      item_type: enum
      name: write_node_mode
      pos:
        line_end: 293
        line_start: 290
        source_file: /src/xen/tools/xenstored/core.h
    preproc_defs:
    - item_type: preproc_def
      name: XENSTORE_LIB_DIR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: XEN_LIB_DIR "/xenstore"
    - item_type: preproc_def
      name: O_CLOEXEC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEFAULT_BUFFER_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NO_GENERATION
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: ~((uint64_t)0)
    - item_type: preproc_def
      name: TRACE_OBJ
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: TRACE_IO
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: TRACE_WRL
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: TRACE_ACC
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: TRACE_TDB
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: WALK_TREE_SUCCESS_STOP
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '-100    '
    - item_type: preproc_def
      name: WALK_TREE_ERROR_STOP
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '-1      '
    - item_type: preproc_def
      name: WALK_TREE_OK
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: WALK_TREE_SKIP_CHILDREN
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: WALK_TREE_RM_CHILDENTRY
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/tools/xenstored/core.h
      type_or_value: '2       '
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: on_out_list
        type: bool
      - name: on_ref_list
        type: bool
      - name: inhdr
        type: bool
      - name: watch_event
        type: bool
      - name: used
        type: unsigned int
      - name: pend
        type: "union {\n\t\t/* ref is being used for requests. */\n\t\tstruct {\n\t\t\tunsigned
          int event_cnt; /* # of outstanding events. */\n\t\t\tunsigned int domid;
          \    /* domid of request. */\n\t\t} ref;\n\t\t/* req is being used for watch
          events. */\n\t\tstruct buffered_data *req;      /* request causing event.
          */\n\t}"
      - name: hdr
        type: "union {\n\t\tstruct xsd_sockmsg msg;\n\t\tchar raw[sizeof(struct xsd_sockmsg)];\n\t}"
      - name: timeout_msec
        type: uint64_t
      - name: '*buffer'
        type: char
      - name: default_buffer[DEFAULT_BUFFER_SIZE]
        type: char
      item_type: struct
      name: buffered_data
      pos:
        line_end: 94
        line_start: 58
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: list
        type: struct list_head
      - name: '*in'
        type: struct buffered_data
      - name: (*func)(struct delayed_request *req)
        type: bool
      - name: '*data'
        type: void
      item_type: struct
      name: delayed_request
      pos:
        line_end: 108
        line_start: 96
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: (*write)(struct connection *, const void *, unsigned int)
        type: int
      - name: (*read)(struct connection *, void *, unsigned int)
        type: int
      - name: (*can_write)(struct connection *)
        type: bool
      - name: (*can_read)(struct connection *)
        type: bool
      item_type: struct
      name: interface_funcs
      pos:
        line_end: 117
        line_start: 112
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: list
        type: struct list_head
      - name: fd
        type: int
      - name: pollfd_idx
        type: int
      - name: id
        type: unsigned int
      - name: is_ignored
        type: bool
      - name: is_stalled
        type: bool
      - name: '*in'
        type: struct buffered_data
      - name: out_list
        type: struct list_head
      - name: timeout_msec
        type: uint64_t
      - name: acc_list
        type: struct list_head
      - name: ref_list
        type: struct list_head
      - name: '*transaction'
        type: struct transaction
      - name: transaction_list
        type: struct list_head
      - name: next_transaction_id
        type: uint32_t
      - name: ta_start_time
        type: time_t
      - name: delayed
        type: struct list_head
      - name: '*domain'
        type: struct domain
      - name: '*target'
        type: struct connection
      - name: watches
        type: struct list_head
      - name: '*funcs'
        type: struct interface_funcs
      - name: conn_id
        type: unsigned int
      item_type: struct
      name: connection
      pos:
        line_end: 175
        line_start: 119
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: generation
        type: uint64_t
      - name: num_perms
        type: uint16_t
      - name: datalen
        type: uint16_t
      - name: childlen
        type: uint32_t
      item_type: struct
      name: node_hdr
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: num
        type: unsigned int
      - name: '*p'
        type: struct xs_permissions
      item_type: struct
      name: node_perms
      pos:
        line_end: 200
        line_start: 197
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: domid
        type: unsigned int
      - name: memory
        type: int
      item_type: struct
      name: node_account_data
      pos:
        line_end: 205
        line_start: 202
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: hdr
        type: struct node_hdr
      - name: '*name'
        type: char
      - name: '*db_name'
        type: char
      - name: '*parent'
        type: struct node
      - name: '*perms'
        type: struct xs_permissions
      - name: '*data'
        type: void
      - name: childoff
        type: unsigned int
      - name: '*children'
        type: char
      - name: acc
        type: struct node_account_data
      item_type: struct
      name: node
      pos:
        line_end: 231
        line_start: 207
        source_file: /src/xen/tools/xenstored/core.h
    - fields:
      - name: "(*enter)(const void *ctx, struct connection *conn,\n\t\t     struct
          node *node, void *arg)"
        type: int
      - name: "(*exit)(const void *ctx, struct connection *conn,\n\t\t    struct node
          *node, void *arg)"
        type: int
      - name: "(*enoent)(const void *ctx, struct connection *conn,\n\t\t      struct
          node *parent, char *name, void *arg)"
        type: int
      item_type: struct
      name: walk_funcs
      pos:
        line_end: 481
        line_start: 474
        source_file: /src/xen/tools/xenstored/core.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenstored/hashtable.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHTABLE_FREE_VALUE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/xenstored/hashtable.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: HASHTABLE_FREE_KEY
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/xenstored/hashtable.h
      type_or_value: (1U << 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_xprintf
  - barf
  - barf_perror
  - dump_state_align
  source_file: /src/xen/tools/xenstored/utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trace
  - trace_io
  - trace_create
  - trace_destroy
  - absolute_filename
  - close_log
  - reopen_log
  - get_now_msec
  - free_buffered_data
  - check_event_timeout
  - conn_free_buffered_data
  - write_messages
  - undelay_request
  - call_delayed
  - delay_request
  - destroy_conn
  - conn_can_read
  - conn_can_write
  - set_fd
  - initialize_fds
  - calc_node_acc_size
  - db_fetch
  - perms_from_node_hdr
  - get_acc_data
  - get_acc_domid
  - db_write
  - db_delete
  - read_node_alloc
  - read_node_helper
  - read_node
  - read_node_const
  - read_node_can_propagate_errno
  - write_node_raw
  - write_node
  - perm_for_conn
  - get_parent
  - ask_parents
  - errno_from_parents
  - get_node_chk_perm
  - new_buffer
  - get_string
  - get_strings
  - send_error
  - send_reply
  - send_event
  - send_ack
  - valid_chars
  - onearg
  - node_perms_to_strings
  - canonicalize
  - get_node
  - get_node_const
  - send_directory
  - send_directory_part
  - do_read
  - basename
  - add_child
  - construct_node
  - destroy_node_rm
  - destroy_node
  - create_node
  - do_write
  - do_mkdir
  - memdel
  - remove_child_entry
  - delete_child
  - delnode_sub
  - rm_node
  - do_rm
  - do_get_perms
  - do_set_perms
  - child_name
  - rm_from_parent
  - walk_call_func
  - walk_node_tree
  - sockmsg_string
  - process_message
  - process_delayed_message
  - consider_message
  - handle_input
  - handle_output
  - new_connection
  - get_connection_by_id
  - manual_node
  - hash_from_key_fn
  - keys_equal_fn
  - setup_structure
  - remember_string
  - check_store_step
  - check_store_enoent
  - clean_store_
  - clean_store
  - check_store_path
  - check_store
  - corrupt
  - usage
  - get_optval_uint
  - what_matches
  - set_timeout
  - set_quota
  - set_trace_switch
  - main
  - dump_state_global
  - dump_input_buffered_data
  - dump_state_buffered_data
  - dump_state_node_perms
  - dump_state_node_err
  - dump_state_node
  - dump_state_node_enter
  - dump_state_special_node
  - dump_state_nodes
  - read_state_global
  - add_buffered_data
  - read_state_buffered_data
  - read_state_node
  source_file: /src/xen/tools/xenstored/core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XS_FLAG_NOTID
      pos:
        line_end: 2000
        line_start: 1999
        source_file: /src/xen/tools/xenstored/core.c
      type_or_value: "(1U << 0)\t"
    - item_type: preproc_def
      name: XS_FLAG_PRIV
      pos:
        line_end: 2001
        line_start: 2000
        source_file: /src/xen/tools/xenstored/core.c
      type_or_value: "(1U << 1)\t"
    structs:
    - fields:
      - name: '*str'
        type: char
      - name: "(*func)(const void *ctx, struct connection *conn,\n\t\t    struct buffered_data
          *in)"
        type: int
      - name: flags
        type: unsigned int
      item_type: struct
      name: "wire_funcs[XS_TYPE_COUNT] = {\n\t[XS_CONTROL]           =\n\t    { \"CONTROL\",
        \      do_control,      XS_FLAG_PRIV },\n\t[XS_DIRECTORY]         = { \"DIRECTORY\",
        \        send_directory },\n\t[XS_READ]              = { \"READ\",              do_read
        },\n\t[XS_GET_PERMS]         = { \"GET_PERMS\",         do_get_perms },\n\t[XS_WATCH]
        \            =\n\t    { \"WATCH\",         do_watch,        XS_FLAG_NOTID
        },\n\t[XS_UNWATCH]           =\n\t    { \"UNWATCH\",       do_unwatch,      XS_FLAG_NOTID
        },\n\t[XS_TRANSACTION_START] = { \"TRANSACTION_START\", do_transaction_start
        },\n\t[XS_TRANSACTION_END]   = { \"TRANSACTION_END\",   do_transaction_end
        },\n\t[XS_INTRODUCE]         =\n\t    { \"INTRODUCE\",     do_introduce,    XS_FLAG_PRIV
        },\n\t[XS_RELEASE]           =\n\t    { \"RELEASE\",       do_release,      XS_FLAG_PRIV
        },\n\t[XS_GET_DOMAIN_PATH]   = { \"GET_DOMAIN_PATH\",   do_get_domain_path
        },\n\t[XS_WRITE]             = { \"WRITE\",             do_write },\n\t[XS_MKDIR]
        \            = { \"MKDIR\",             do_mkdir },\n\t[XS_RM]                =
        { \"RM\",                do_rm },\n\t[XS_SET_PERMS]         = { \"SET_PERMS\",
        \        do_set_perms },\n\t[XS_WATCH_EVENT]       = { \"WATCH_EVENT\",       NULL
        },\n\t[XS_ERROR]             = { \"ERROR\",             NULL },\n\t[XS_IS_DOMAIN_INTRODUCED]
        =\n\t    { \"IS_DOMAIN_INTRODUCED\", do_is_domain_introduced, XS_FLAG_PRIV
        },\n\t[XS_RESUME]            =\n\t    { \"RESUME\",        do_resume,       XS_FLAG_PRIV
        },\n\t[XS_SET_TARGET]        =\n\t    { \"SET_TARGET\",    do_set_target,
        \  XS_FLAG_PRIV },\n\t[XS_RESET_WATCHES]     = { \"RESET_WATCHES\",     do_reset_watches
        },\n\t[XS_DIRECTORY_PART]    = { \"DIRECTORY_PART\",    send_directory_part
        },\n\t[XS_GET_FEATURE]       =\n\t    { \"GET_FEATURE\",   do_get_feature,
        \ XS_FLAG_PRIV },\n\t[XS_SET_FEATURE]       =\n\t    { \"SET_FEATURE\",   do_set_feature,
        \ XS_FLAG_PRIV },\n}"
      pos:
        line_end: 2001
        line_start: 1994
        source_file: /src/xen/tools/xenstored/core.c
    - fields:
      - name: '*reachable'
        type: struct hashtable
      - name: '*domains'
        type: struct hashtable
      item_type: struct
      name: check_store_data
      pos:
        line_end: 2349
        line_start: 2346
        source_file: /src/xen/tools/xenstored/core.c
    - fields:
      - name: '*fp'
        type: FILE
      - name: '*err'
        type: char
      item_type: struct
      name: dump_node_data
      pos:
        line_end: 3007
        line_start: 3004
        source_file: /src/xen/tools/xenstored/core.c
    typedefs: []
    union: []
- function_names:
  - lu_get_connection
  - lu_write_response
  - lu_is_pending
  source_file: /src/xen/tools/xenstored/lu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*conn'
        type: struct connection
      - name: '*in'
        type: struct buffered_data
      - name: '*filename'
        type: char
      - name: '*cmdline'
        type: char
      - name: force
        type: bool
      - name: timeout
        type: unsigned int
      - name: version
        type: unsigned int
      - name: started_at
        type: time_t
      item_type: struct
      name: live_update
      pos:
        line_end: 29
        line_start: 7
        source_file: /src/xen/tools/xenstored/lu.h
    typedefs: []
    union: []
- function_names:
  - domain_memory_add_chk
  - domain_memory_add_nochk
  source_file: /src/xen/tools/xenstored/domain.h
  types:
    enum:
    - enumerators:
      - name: ACC_NODES
      - name: ACC_TR_N
        value: ACC_REQ_N
      - name: ACC_WATCH
        value: ACC_TR_N
      - name: ACC_REQ_N
      - name: ACC_CHD_N
        value: ACC_TR_N
      - name: ACC_OUTST
      - name: ACC_MEM
      - name: ACC_TRANS
      - name: ACC_TRANSNODES
      - name: ACC_NPERM
      - name: ACC_N
      - name: ACC_NODESZ
      - name: ACC_PATHLEN
      item_type: enum
      name: accitem
      pos:
        line_end: 40
        line_start: 26
        source_file: /src/xen/tools/xenstored/domain.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*descr'
        type: char
      - name: val
        type: unsigned int
      - name: max
        type: unsigned int
      item_type: struct
      name: quota
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/xen/tools/xenstored/domain.h
    typedefs: []
    union: []
- function_names:
  - do_control_check
  - do_control_log
  - quota_show_current
  - quota_set
  - quota_get
  - quota_max
  - do_control_quota
  - do_control_quota_s
  - do_control_logfile
  - do_control_memreport
  - do_control_print
  - do_control_help
  - do_control
  source_file: /src/xen/tools/xenstored/control.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cmd'
        type: char
      - name: (*func)(const void *, struct connection *, const char **, int)
        type: int
      - name: '*pars'
        type: char
      - name: max_pars
        type: unsigned int
      item_type: struct
      name: cmd_s
      pos:
        line_end: 46
        line_start: 34
        source_file: /src/xen/tools/xenstored/control.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenstored/control.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenstored/transaction.h
  types:
    enum:
    - enumerators:
      - name: NODE_ACCESS_READ
      - name: NODE_ACCESS_DELETE
      - name: NODE_ACCESS_WRITE
      item_type: enum
      name: node_access_type
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/xen/tools/xenstored/transaction.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenstored/watch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - finish_daemonize
  - add_socket_connection
  - get_domain_evtchn
  - xenbus_map
  - unmap_xenbus
  - early_init
  - late_init
  - set_special_fds
  - handle_special_fds
  - get_socket_fd
  - set_socket_fd
  - evtchn_fdopen
  - evtchn_rebind
  - mount_thread
  - mount_9pfs
  - xenstore_rundir
  source_file: /src/xen/tools/xenstored/minios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P9_STATE_PATH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/xenstored/minios.c
      type_or_value: '"device/9pfs/0/state"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenstored/osdep.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENSTORED_KVA_DEV
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/proc/xen/xsd_kva"'
    - item_type: preproc_def
      name: XENSTORED_PORT_DEV
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/proc/xen/xsd_port"'
    - item_type: preproc_def
      name: XENSTORED_KVA_DEV
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/dev/xsd_kva"'
    - item_type: preproc_def
      name: XENSTORED_PORT_DEV
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/kern/xen/xsd_port"'
    - item_type: preproc_def
      name: XENSTORED_KVA_DEV
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/dev/xen/xenstored"'
    - item_type: preproc_def
      name: XENSTORED_PORT_DEV
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/xenstored/osdep.h
      type_or_value: '"/dev/xen/xenstored"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/libxlutil.h
  types:
    enum:
    - enumerators:
      - name: XLU_STRING
      - name: XLU_LIST
      item_type: enum
      name: XLU_ConfigValueType
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/xen/tools/include/libxlutil.h
    - enumerators:
      - name: XLU_OP_ASSIGNMENT
        value: '0'
      - name: XLU_OP_ADDITION
      item_type: enum
      name: XLU_Operation
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/xen/tools/include/libxlutil.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: XLU_Config
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/xen/tools/include/libxlutil.h
      type: XLU_Config
    - item_type: typedef
      name: XLU_ConfigList
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/include/libxlutil.h
      type: XLU_ConfigList
    - item_type: typedef
      name: XLU_ConfigValue
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/include/libxlutil.h
      type: XLU_ConfigValue
    union: []
- function_names:
  - xen_sd_closep
  - xen_sd_notify
  - sd_notify
  source_file: /src/xen/tools/include/xen-sd-notify.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sun
        type: struct sockaddr_un
      item_type: union
      name: sockaddr_union
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/xen/tools/include/xen-sd-notify.h
- function_names:
  - libxl_bitmap_set_any
  - libxl_bitmap_set_none
  - libxl_bitmap_cpu_valid
  - libxl_for_each_bit
  - libxl_for_each_set_bit
  - libxl_bitmap_equal
  - libxl__sizekb_to_mb
  - LIBXL_FILLZERO
  source_file: /src/xen/tools/include/libxl_utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xendevicemodel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: xendevicemodel_handle
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/include/xendevicemodel.h
      type: xendevicemodel_handle
    union: []
- function_names:
  - XTL_NEW_LOGGER
  source_file: /src/xen/tools/include/xentoollog.h
  types:
    enum:
    - enumerators:
      - name: XTL_NONE
      - name: XTL_PROGRESS
      - name: XTL_DEBUG
      - name: XTL_DETAIL
      - name: XTL_VERBOSE
      - name: XTL_INFO
      - name: XTL_NOTICE
      - name: XTL_WARN
      - name: XTL_ERROR
      - name: XTL_CRITICAL
      - name: XTL_NUM_LEVELS
      item_type: enum
      name: xentoollog_level
      pos:
        line_end: 41
        line_start: 29
        source_file: /src/xen/tools/include/xentoollog.h
    preproc_defs:
    - item_type: preproc_def
      name: XTL_STDIOSTREAM_SHOW_PID
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/include/xentoollog.h
      type_or_value: 001u
    - item_type: preproc_def
      name: XTL_STDIOSTREAM_SHOW_DATE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/include/xentoollog.h
      type_or_value: 002u
    - item_type: preproc_def
      name: XTL_STDIOSTREAM_HIDE_PROGRESS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/include/xentoollog.h
      type_or_value: 004u
    - item_type: preproc_def
      name: XTL_STDIOSTREAM_PROGRESS_USE_CR
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/include/xentoollog.h
      type_or_value: '010u '
    - item_type: preproc_def
      name: XTL_STDIOSTREAM_PROGRESS_NO_CR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/include/xentoollog.h
      type_or_value: '020u '
    structs:
    - fields:
      - name: "(*vmessage)(struct xentoollog_logger *logger,\n                     xentoollog_level
          level,\n                     int errnoval /* or -1 */,\n                     const
          char *context /* eg \"xc\", \"xl\", may be 0 */,\n                     const
          char *format /* without level, context, \\n */,\n                     va_list
          al)\n         __attribute__((format(printf,5,0)))"
        type: void
      - name: "(*progress)(struct xentoollog_logger *logger,\n                     const
          char *context /* see above */,\n                     const char *doing_what
          /* no \\r,\\n */,\n                     int percent, unsigned long done,
          unsigned long total)"
        type: void
      - name: (*destroy)(struct xentoollog_logger *logger)
        type: void
      item_type: struct
      name: xentoollog_logger
      pos:
        line_end: 61
        line_start: 44
        source_file: /src/xen/tools/include/xentoollog.h
    typedefs:
    - item_type: typedef
      name: xentoollog_logger
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/xen/tools/include/xentoollog.h
      type: xentoollog_logger
    - item_type: typedef
      name: xentoollog_logger_stdiostream
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/tools/include/xentoollog.h
      type: xentoollog_logger_stdiostream
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenevtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENEVTCHN_NO_CLOEXEC
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/include/xenevtchn.h
      type_or_value: (1 << 0)
    structs: []
    typedefs:
    - item_type: typedef
      name: xenevtchn_port_or_error_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/include/xenevtchn.h
      type: int
    - item_type: typedef
      name: xenevtchn_handle
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/include/xenevtchn.h
      type: xenevtchn_handle
    union: []
- function_names:
  - XEN_SLIST_HEAD_INITIALIZER
  - XEN_SLIST_EMPTY
  - XEN_SLIST_FIRST
  - XEN_SLIST_FOREACH
  - XEN_SLIST_FOREACH_SAFE
  - XEN_SLIST_FOREACH_PREVPTR
  - XEN_SLIST_INIT
  - XEN_SLIST_INSERT_AFTER
  - XEN_SLIST_INSERT_HEAD
  - XEN_SLIST_NEXT
  - XEN_SLIST_REMOVE
  - XEN_SLIST_REMOVE_AFTER
  - XEN_SLIST_REMOVE_HEAD
  - XEN_SLIST_SWAP
  - XEN_STAILQ_HEAD
  - XEN_STAILQ_HEAD_INITIALIZER
  - XEN_STAILQ_CONCAT
  - XEN_STAILQ_EMPTY
  - XEN_STAILQ_FIRST
  - XEN_STAILQ_FOREACH
  - XEN_STAILQ_FOREACH_SAFE
  - XEN_STAILQ_INIT
  - XEN_STAILQ_INSERT_AFTER
  - XEN_STAILQ_INSERT_HEAD
  - XEN_STAILQ_INSERT_TAIL
  - XEN_STAILQ_LAST
  - XEN_STAILQ_NEXT
  - XEN_STAILQ_REMOVE
  - XEN_STAILQ_REMOVE_AFTER
  - XEN_STAILQ_REMOVE_HEAD
  - XEN_STAILQ_SWAP
  - XEN_LIST_HEAD_INITIALIZER
  - XEN_LIST_ENTRY
  - XEN_LIST_EMPTY
  - XEN_LIST_FIRST
  - XEN_LIST_FOREACH
  - XEN_LIST_FOREACH_SAFE
  - XEN_LIST_INIT
  - XEN_LIST_INSERT_AFTER
  - XEN_LIST_INSERT_BEFORE
  - XEN_LIST_INSERT_HEAD
  - XEN_LIST_NEXT
  - XEN_LIST_REMOVE
  - XEN_LIST_SWAP
  - XEN_TAILQ_HEAD
  - XEN_TAILQ_HEAD_INITIALIZER
  - XEN_TAILQ_ENTRY
  - XEN_TAILQ_CONCAT
  - XEN_TAILQ_EMPTY
  - XEN_TAILQ_FIRST
  - XEN_TAILQ_FOREACH
  - XEN_TAILQ_FOREACH_SAFE
  - XEN_TAILQ_FOREACH_REVERSE
  - XEN_TAILQ_FOREACH_REVERSE_SAFE
  - XEN_TAILQ_INIT
  - XEN_TAILQ_INSERT_AFTER
  - XEN_TAILQ_INSERT_BEFORE
  - XEN_TAILQ_INSERT_HEAD
  - XEN_TAILQ_INSERT_TAIL
  - XEN_TAILQ_LAST
  - XEN_TAILQ_NEXT
  - XEN_TAILQ_PREV
  - XEN_TAILQ_REMOVE
  - XEN_TAILQ_SWAP
  source_file: /src/xen/tools/include/xen_list.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XC__HYPERCALL_BUFFER_NAME
  - HYPERCALL_BUFFER
  - DECLARE_HYPERCALL_BUFFER
  - DECLARE_HYPERCALL_BUFFER_SHADOW
  - DECLARE_HYPERCALL_BUFFER_ARGUMENT
  - HYPERCALL_BUFFER_AS_ARG
  - set_xen_guest_handle_impl
  - set_xen_guest_handle
  - set_xen_guest_handle_offset
  - xc_hypercall_buffer_alloc
  - xc_hypercall_buffer_free
  - xc_hypercall_buffer_alloc_pages
  - xc_hypercall_buffer_free_pages
  - xc_hypercall_buffer_array_alloc
  - xc_hypercall_buffer_array_get
  - dominfo_shutdown_reason
  - dominfo_shutdown_with
  - xc_clear_domain_page
  source_file: /src/xen/tools/include/xenctrl.h
  types:
    enum:
    - enumerators:
      - name: XC_ERROR_NONE
        value: '0'
      - name: XC_INVALID_KERNEL
        value: '2'
      - name: XC_INVALID_PARAM
        value: '3'
      - name: XC_INTERNAL_ERROR
        value: '1'
      - name: XC_OUT_OF_MEMORY
        value: '4'
      item_type: enum
      name: xc_error_code
      pos:
        line_end: 99
        line_start: 92
        source_file: /src/xen/tools/include/xenctrl.h
    - enumerators:
      - name: XC_OPENFLAG_DUMMY
        value: 1<<0
      - name: XC_OPENFLAG_NON_REENTRANT
        value: 1<<1
      item_type: enum
      name: xc_open_flags
      pos:
        line_end: 144
        line_start: 141
        source_file: /src/xen/tools/include/xenctrl.h
    - enumerators:
      - name: XC_PSR_CMT_L3_OCCUPANCY
      - name: XC_PSR_CMT_TOTAL_MEM_COUNT
      - name: XC_PSR_CMT_LOCAL_MEM_COUNT
      item_type: enum
      name: xc_psr_cmt_type
      pos:
        line_end: 2493
        line_start: 2489
        source_file: /src/xen/tools/include/xenctrl.h
    - enumerators:
      - name: XC_PSR_CAT_L3_CBM
        value: '1'
      - name: XC_PSR_CAT_L3_CBM_DATA
        value: '3'
      - name: XC_PSR_CAT_L2_CBM
        value: '4'
      - name: XC_PSR_MBA_THRTL
        value: '5'
      - name: XC_PSR_CAT_L3_CBM_CODE
        value: '2'
      item_type: enum
      name: xc_psr_type
      pos:
        line_end: 2502
        line_start: 2496
        source_file: /src/xen/tools/include/xenctrl.h
    - enumerators:
      - name: XC_PSR_CAT_L3
      - name: XC_PSR_CAT_L2
      - name: XC_PSR_MBA
      item_type: enum
      name: xc_psr_feat_type
      pos:
        line_end: 2509
        line_start: 2505
        source_file: /src/xen/tools/include/xenctrl.h
    preproc_defs:
    - item_type: preproc_def
      name: __XEN_TOOLS__
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XC_PAGE_SHIFT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '12'
    - item_type: preproc_def
      name: XC_PAGE_SIZE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: (1UL << XC_PAGE_SHIFT)
    - item_type: preproc_def
      name: XC_PAGE_MASK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: (~(XC_PAGE_SIZE-1))
    - item_type: preproc_def
      name: INVALID_MFN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: XENCTRL_HAS_XC_INTERFACE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HYPERCALL_BUFFER_INIT_NO_BOUNCE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: .dir = 0, .sz = 0, .ubuf = (void *)-1
    - item_type: preproc_def
      name: XC_CORE_MAGIC
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '0xF00FEBED'
    - item_type: preproc_def
      name: XC_CORE_MAGIC_HVM
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '0xF00FEBEE'
    - item_type: preproc_def
      name: XC_CPUPOOL_POOLID_ANY
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: E820_RAM
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: E820_RESERVED
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: E820_ACPI
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '3'
    - item_type: preproc_def
      name: E820_NVS
      pos:
        line_end: 1215
        line_start: 1214
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '4'
    - item_type: preproc_def
      name: E820_UNUSABLE
      pos:
        line_end: 1216
        line_start: 1215
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '5'
    - item_type: preproc_def
      name: E820MAX
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: (128)
    - item_type: preproc_def
      name: XC_MAX_ERROR_MSG_LEN
      pos:
        line_end: 1646
        line_start: 1645
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: XC_MSR_INPUT_UNUSED
      pos:
        line_end: 1835
        line_start: 1834
        source_file: /src/xen/tools/include/xenctrl.h
      type_or_value: 0xffffffffu
    structs:
    - fields:
      - name: '*hbuf'
        type: void
      - name: '*param_shadow'
        type: struct xc_hypercall_buffer
      - name: dir
        type: int
      - name: '*ubuf'
        type: void
      - name: sz
        type: size_t
      item_type: struct
      name: xc_hypercall_buffer
      pos:
        line_end: 211
        line_start: 193
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: xch_magic
        type: unsigned int
      - name: xch_nr_vcpus
        type: unsigned int
      - name: xch_nr_pages
        type: unsigned int
      - name: xch_ctxt_offset
        type: unsigned int
      - name: xch_index_offset
        type: unsigned int
      - name: xch_pages_offset
        type: unsigned int
      item_type: struct
      name: xc_core_header
      pos:
        line_end: 411
        line_start: 404
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: xfeature_mask
        type: uint64_t
      - name: size
        type: uint64_t
      - name: '*buffer'
        type: void
      item_type: struct
      name: xc_vcpu_extstate
      pos:
        line_end: 466
        line_start: 462
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: cpupool_id
        type: uint32_t
      - name: sched_id
        type: uint32_t
      - name: n_dom
        type: uint32_t
      - name: cpumap
        type: xc_cpumap_t
      item_type: struct
      name: xc_cpupoolinfo
      pos:
        line_end: 993
        line_start: 988
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: uint64_t
      - name: type
        type: uint32_t
      item_type: struct
      name: e820entry
      pos:
        line_end: 1223
        line_start: 1219
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: code
        type: enum xc_error_code
      - name: message[XC_MAX_ERROR_MSG_LEN]
        type: char
      item_type: struct
      name: xc_error
      pos:
        line_end: 1649
        line_start: 1646
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: '*policy[4]'
        type: char
      item_type: struct
      name: xc_xend_cpuid
      pos:
        line_end: 1819
        line_start: 1811
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: index
        type: uint32_t
      - name: policy[65]
        type: char
      item_type: struct
      name: xc_msr
      pos:
        line_end: 1833
        line_start: 1830
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: freq
        type: uint64_t
      - name: residency
        type: uint64_t
      - name: count
        type: uint64_t
      item_type: struct
      name: xc_px_val
      pos:
        line_end: 1865
        line_start: 1861
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: total
        type: uint8_t
      - name: usable
        type: uint8_t
      - name: last
        type: uint8_t
      - name: cur
        type: uint8_t
      - name: '*trans_pt'
        type: uint64_t
      - name: '*pt'
        type: struct xc_px_val
      item_type: struct
      name: xc_px_stat
      pos:
        line_end: 1874
        line_start: 1867
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: nr
        type: uint32_t
      - name: last
        type: uint32_t
      - name: idle_time
        type: uint64_t
      - name: '*triggers'
        type: uint64_t
      - name: '*residencies'
        type: uint64_t
      - name: nr_pc
        type: uint32_t
      - name: nr_cc
        type: uint32_t
      - name: '*pc'
        type: uint64_t
      - name: '*cc'
        type: uint64_t
      item_type: struct
      name: xc_cx_stat
      pos:
        line_end: 1890
        line_start: 1880
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: cpu_num
        type: uint32_t
      - name: freq_num
        type: uint32_t
      - name: gov_num
        type: uint32_t
      - name: '*affected_cpus'
        type: uint32_t
      - name: '*scaling_available_frequencies'
        type: uint32_t
      - name: '*scaling_available_governors'
        type: char
      - name: scaling_driver[CPUFREQ_NAME_LEN]
        type: char
      - name: cpuinfo_cur_freq
        type: uint32_t
      - name: cpuinfo_max_freq
        type: uint32_t
      - name: cpuinfo_min_freq
        type: uint32_t
      - name: s
        type: "struct {\n        uint32_t scaling_cur_freq;\n\n        char scaling_governor[CPUFREQ_NAME_LEN];\n
          \       uint32_t scaling_max_freq;\n        uint32_t scaling_min_freq;\n\n
          \       /* for specific governor */\n        union {\n            xc_userspace_t
          userspace;\n            xc_ondemand_t ondemand;\n        } u;\n    }"
      - name: turbo_enabled
        type: int32_t
      item_type: struct
      name: xc_get_cpufreq_para
      pos:
        line_end: 1941
        line_start: 1910
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: result
        type: uint64_t
      - name: cpu
        type: uint32_t
      - name: nr_entries
        type: uint32_t
      - name: '*entries'
        type: xc_resource_entry_t
      item_type: struct
      name: xc_resource_op
      pos:
        line_end: 2483
        line_start: 2478
        source_file: /src/xen/tools/include/xenctrl.h
    typedefs:
    - item_type: typedef
      name: xc_interface
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_interface_core
    - item_type: typedef
      name: xc_error_code
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_error_code
    - item_type: typedef
      name: xc_hypercall_buffer_t
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_hypercall_buffer
    - item_type: typedef
      name: xc_hypercall_buffer_array_t
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_hypercall_buffer_array
    - item_type: typedef
      name: '*xc_cpumap_t'
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint8_t
    - item_type: typedef
      name: '*xc_nodemap_t'
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint8_t
    - item_type: typedef
      name: xc_domaininfo_t
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_domctl_getdomaininfo_t
    - item_type: typedef
      name: "(dumpcore_rtn_t)(xc_interface *xch,\n                             void
        *arg, char *buffer, unsigned int length)"
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/tools/include/xenctrl.h
      type: int
    - item_type: typedef
      name: xc_vcpuinfo_t
      pos:
        line_end: 828
        line_start: 828
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_domctl_getvcpuinfo
    - item_type: typedef
      name: xc_shadow_op_stats_t
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_domctl_shadow_op_stats
    - item_type: typedef
      name: xc_evtchn_port_or_error_t
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/xen/tools/include/xenctrl.h
      type: int
    - item_type: typedef
      name: xc_evtchn_status_t
      pos:
        line_end: 1112
        line_start: 1112
        source_file: /src/xen/tools/include/xenctrl.h
      type: evtchn_status
    - item_type: typedef
      name: xc_physinfo_t
      pos:
        line_end: 1131
        line_start: 1131
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_physinfo
    - item_type: typedef
      name: xc_cputopo_t
      pos:
        line_end: 1132
        line_start: 1132
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_cputopo
    - item_type: typedef
      name: xc_numainfo_t
      pos:
        line_end: 1133
        line_start: 1133
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_numainfo
    - item_type: typedef
      name: xc_meminfo_t
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_meminfo
    - item_type: typedef
      name: xc_pcitopoinfo_t
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_pcitopoinfo
    - item_type: typedef
      name: xc_cpu_to_node_t
      pos:
        line_end: 1137
        line_start: 1137
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint32_t
    - item_type: typedef
      name: xc_cpu_to_socket_t
      pos:
        line_end: 1138
        line_start: 1138
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint32_t
    - item_type: typedef
      name: xc_cpu_to_core_t
      pos:
        line_end: 1139
        line_start: 1139
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint32_t
    - item_type: typedef
      name: xc_node_to_memsize_t
      pos:
        line_end: 1140
        line_start: 1140
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint64_t
    - item_type: typedef
      name: xc_node_to_memfree_t
      pos:
        line_end: 1141
        line_start: 1141
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint64_t
    - item_type: typedef
      name: xc_node_to_node_dist_t
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/xen/tools/include/xenctrl.h
      type: uint32_t
    - item_type: typedef
      name: xc_cpuinfo_t
      pos:
        line_end: 1164
        line_start: 1164
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_cpuinfo
    - item_type: typedef
      name: xc_perfc_desc_t
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_perfc_desc_t
    - item_type: typedef
      name: xc_perfc_val_t
      pos:
        line_end: 1374
        line_start: 1374
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_perfc_val_t
    - item_type: typedef
      name: xc_lockprof_data_t
      pos:
        line_end: 1383
        line_start: 1383
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_sysctl_lockprof_data_t
    - item_type: typedef
      name: xc_cx_stat_t
      pos:
        line_end: 1891
        line_start: 1891
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_cx_stat
    - item_type: typedef
      name: xc_userspace_t
      pos:
        line_end: 1906
        line_start: 1906
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_userspace
    - item_type: typedef
      name: xc_ondemand_t
      pos:
        line_end: 1907
        line_start: 1907
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_ondemand
    - item_type: typedef
      name: xc_cppc_para_t
      pos:
        line_end: 1908
        line_start: 1908
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_get_cppc_para
    - item_type: typedef
      name: xc_set_cppc_para_t
      pos:
        line_end: 1943
        line_start: 1943
        source_file: /src/xen/tools/include/xenctrl.h
      type: xen_set_cppc_para
    - item_type: typedef
      name: xc_resource_entry_t
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/xen/tools/include/xenctrl.h
      type: xenpf_resource_entry_t
    - item_type: typedef
      name: xc_resource_op_t
      pos:
        line_end: 2485
        line_start: 2485
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_resource_op
    - item_type: typedef
      name: xc_psr_cmt_type
      pos:
        line_end: 2494
        line_start: 2494
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_psr_cmt_type
    - item_type: typedef
      name: xc_psr_type
      pos:
        line_end: 2503
        line_start: 2503
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_psr_type
    - item_type: typedef
      name: xc_psr_feat_type
      pos:
        line_end: 2510
        line_start: 2510
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_psr_feat_type
    - item_type: typedef
      name: xc_psr_hw_info
      pos:
        line_end: 2525
        line_start: 2525
        source_file: /src/xen/tools/include/xenctrl.h
      type: xc_psr_hw_info
    union:
    - fields:
      - name: c
        type: vcpu_guest_context_t
      item_type: union
      name: vcpu_guest_context_any_t
      pos:
        line_end: 442
        line_start: 435
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: s
        type: shared_info_t
      item_type: union
      name: shared_info_any_t
      pos:
        line_end: 451
        line_start: 444
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: x64
        type: start_info_x86_64_t
      - name: x32
        type: start_info_x86_32_t
      - name: s
        type: start_info_t
      item_type: union
      name: start_info_any_t
      pos:
        line_end: 459
        line_start: 454
        source_file: /src/xen/tools/include/xenctrl.h
    - fields:
      - name: cat
        type: "struct {\n        uint32_t cos_max;\n        uint32_t cbm_len;\n        bool
          \    cdp_enabled;\n    }"
      - name: mba
        type: "struct {\n        uint32_t cos_max;\n        uint32_t thrtl_max;\n
          \       bool     linear;\n    }"
      item_type: union
      name: xc_psr_hw_info
      pos:
        line_end: 2524
        line_start: 2512
        source_file: /src/xen/tools/include/xenctrl.h
- function_names: []
  source_file: /src/xen/tools/include/xengnttab.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GNTDEV_DMA_FLAG_WC
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/tools/include/xengnttab.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GNTDEV_DMA_FLAG_COHERENT
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/tools/include/xengnttab.h
      type_or_value: (1 << 1)
    structs:
    - fields:
      - name: source
        type: "union xengnttab_copy_ptr {\n        void *virt;\n        struct {\n
          \           uint32_t ref;\n            uint16_t offset;\n            uint16_t
          domid;\n        } foreign;\n    }"
      - name: len
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: status
        type: int16_t
      item_type: struct
      name: xengnttab_grant_copy_segment
      pos:
        line_end: 282
        line_start: 270
        source_file: /src/xen/tools/include/xengnttab.h
    typedefs:
    - item_type: typedef
      name: xengnttab_handle
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/xen/tools/include/xengnttab.h
      type: xengntdev_handle
    - item_type: typedef
      name: xengnttab_grant_copy_segment_t
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/xen/tools/include/xengnttab.h
      type: xengnttab_grant_copy_segment
    - item_type: typedef
      name: xengntshr_handle
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/xen/tools/include/xengnttab.h
      type: xengntdev_handle
    union:
    - fields:
      - name: '*virt'
        type: void
      - name: foreign
        type: "struct {\n            uint32_t ref;\n            uint16_t offset;\n
          \           uint16_t domid;\n        }"
      item_type: union
      name: xengnttab_copy_ptr
      pos:
        line_end: 278
        line_start: 271
        source_file: /src/xen/tools/include/xengnttab.h
- function_names:
  - libxl__yajl_alloc
  - libxl_yajl_gen_alloc
  - libxl__yajl_alloc
  - libxl_yajl_gen_alloc
  source_file: /src/xen/tools/include/libxl_json.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_YAJL_V2
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/include/libxl_json.h
      type_or_value: '1'
    - item_type: preproc_def
      name: yajl_complete_parse
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/include/libxl_json.h
      type_or_value: yajl_parse_complete
    structs: []
    typedefs:
    - item_type: typedef
      name: libxl_yajl_length
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/tools/include/libxl_json.h
      type: size_t
    - item_type: typedef
      name: libxl_yajl_length
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/xen/tools/include/libxl_json.h
      type: unsigned int
    - item_type: typedef
      name: libxl_yajl_length
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/xen/tools/include/libxl_json.h
      type: size_t
    union: []
- function_names:
  - LIBXL__UUID_BYTES
  - LIBXL_UUID_BYTES
  - libxl_uuid_copy_0x040400
  source_file: /src/xen/tools/include/libxl_uuid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBXL_UUID_FMT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/include/libxl_uuid.h
      type_or_value: '"%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx"'
    - item_type: preproc_def
      name: LIBXL_UUID_FMTLEN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/include/libxl_uuid.h
      type_or_value: '((2*16)+4) '
    - item_type: preproc_def
      name: libxl_uuid_copy
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/include/libxl_uuid.h
      type_or_value: libxl_uuid_copy_0x040400
    structs:
    - fields:
      - name: uuid[16]
        type: unsigned char
      item_type: struct
      name: libxl_uuid
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/xen/tools/include/libxl_uuid.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xentoolcore.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XC_DOM_PAGE_SHIFT
  - XC_DOM_PAGE_SIZE
  - xc_dom_panic
  - xc_dom_trace
  - xc_dom_seg_to_ptr_pages
  - xc_dom_seg_to_ptr
  - xc_dom_p2m
  source_file: /src/xen/tools/include/xenguest.h
  types:
    enum:
    - enumerators:
      - name: XC_FEATUREMASK_KNOWN
      - name: XC_FEATUREMASK_SPECIAL
      - name: XC_FEATUREMASK_PV_MAX
      - name: XC_FEATUREMASK_PV_DEF
      - name: XC_FEATUREMASK_HVM_SHADOW_MAX
      - name: XC_FEATUREMASK_HVM_SHADOW_DEF
      - name: XC_FEATUREMASK_HVM_HAP_MAX
      - name: XC_FEATUREMASK_HVM_HAP_DEF
      item_type: enum
      name: xc_static_cpu_featuremask
      pos:
        line_end: 847
        line_start: 838
        source_file: /src/xen/tools/include/xenguest.h
    preproc_defs:
    - item_type: preproc_def
      name: XC_NUMA_NO_NODE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: (~0U)
    - item_type: preproc_def
      name: XCFLAGS_LIVE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: XCFLAGS_DEBUG
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: X86_64_B_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: X86_32_B_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '32'
    - item_type: preproc_def
      name: X86_HVM_NR_SPECIAL_PAGES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '8'
    - item_type: preproc_def
      name: X86_HVM_END_SPECIAL_REGION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: 0xff000u
    - item_type: preproc_def
      name: XG_MAX_MODULES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PRIpfn
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: PRI_xen_pfn
    - item_type: preproc_def
      name: MAX_ACPI_MODULES
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XC_DOM_DECOMPRESS_MAX
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '(1024*1024*1024) '
    - item_type: preproc_def
      name: XGS_POLICY_ABORT
      pos:
        line_end: 473
        line_start: 471
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '(-1) '
    - item_type: preproc_def
      name: XGS_POLICY_CONTINUE_PRECOPY
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '0  '
    - item_type: preproc_def
      name: XGS_POLICY_STOP_AND_COPY
      pos:
        line_end: 476
        line_start: 474
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: XGR_SDD_MISSING_CPUID
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: XGR_SDD_MISSING_MSR
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: XGR_CHECKPOINT_ERROR
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: XGR_CHECKPOINT_SUCCESS
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: XGR_CHECKPOINT_FAILOVER
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/xen/tools/include/xenguest.h
      type_or_value: '2 '
    structs:
    - fields:
      - name: vstart
        type: xen_vaddr_t
      - name: vend
        type: xen_vaddr_t
      - name: pfn
        type: xen_pfn_t
      - name: pages
        type: xen_pfn_t
      item_type: struct
      name: xc_dom_seg
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: '*data'
        type: uint8_t
      - name: length
        type: uint32_t
      - name: guest_addr_out
        type: uint64_t
      item_type: struct
      name: xc_hvm_firmware_module
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: '*next'
        type: struct xc_dom_mem
      - name: '*ptr'
        type: void
      - name: type
        type: "enum {\n        XC_DOM_MEM_TYPE_MALLOC_INTERNAL,\n        XC_DOM_MEM_TYPE_MALLOC_EXTERNAL,\n
          \       XC_DOM_MEM_TYPE_MMAP,\n    }"
      - name: len
        type: size_t
      - name: memory[0]
        type: unsigned char
      item_type: struct
      name: xc_dom_mem
      pos:
        line_end: 66
        line_start: 56
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: '*next'
        type: struct xc_dom_phys
      - name: '*ptr'
        type: void
      - name: first
        type: xen_pfn_t
      - name: count
        type: xen_pfn_t
      item_type: struct
      name: xc_dom_phys
      pos:
        line_end: 73
        line_start: 68
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: '*blob'
        type: void
      - name: size
        type: size_t
      - name: '*cmdline'
        type: void
      - name: seg
        type: struct xc_dom_seg
      item_type: struct
      name: xc_dom_module
      pos:
        line_end: 88
        line_start: 75
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: '*kernel_blob'
        type: void
      - name: kernel_size
        type: size_t
      - name: num_modules
        type: unsigned int
      - name: modules[XG_MAX_MODULES]
        type: struct xc_dom_module
      - name: '*devicetree_blob'
        type: void
      - name: devicetree_size
        type: size_t
      - name: max_kernel_size
        type: size_t
      - name: max_module_size
        type: size_t
      - name: max_devicetree_size
        type: size_t
      - name: '*cmdline'
        type: char
      - name: cmdline_size
        type: size_t
      - name: f_requested[XENFEAT_NR_SUBMAPS]
        type: uint32_t
      - name: '*parms'
        type: struct elf_dom_parms
      - name: '*guest_type'
        type: char
      - name: kernel_seg
        type: struct xc_dom_seg
      - name: p2m_seg
        type: struct xc_dom_seg
      - name: pgtables_seg
        type: struct xc_dom_seg
      - name: devicetree_seg
        type: struct xc_dom_seg
      - name: start_info_seg
        type: struct xc_dom_seg
      - name: start_info_pfn
        type: xen_pfn_t
      - name: console_pfn
        type: xen_pfn_t
      - name: xenstore_pfn
        type: xen_pfn_t
      - name: shared_info_pfn
        type: xen_pfn_t
      - name: bootstack_pfn
        type: xen_pfn_t
      - name: pfn_alloc_end
        type: xen_pfn_t
      - name: virt_alloc_end
        type: xen_vaddr_t
      - name: bsd_symtab_start
        type: xen_vaddr_t
      - name: initrd_start
        type: uint64_t
      - name: initrd_len
        type: uint64_t
      - name: alloc_bootstack
        type: unsigned int
      - name: virt_pgtab_end
        type: xen_vaddr_t
      - name: f_active[XENFEAT_NR_SUBMAPS]
        type: uint32_t
      - name: '*pv_p2m'
        type: xen_pfn_t
      - name: p2m_size
        type: xen_pfn_t
      - name: rambase_pfn
        type: xen_pfn_t
      - name: total_pages
        type: xen_pfn_t
      - name: '*phys_pages'
        type: struct xc_dom_phys
      - name: '*memblocks'
        type: struct xc_dom_mem
      - name: alloc_malloc
        type: size_t
      - name: alloc_mem_map
        type: size_t
      - name: alloc_file_map
        type: size_t
      - name: alloc_domU_map
        type: size_t
      - name: flags
        type: unsigned long
      - name: console_evtchn
        type: unsigned int
      - name: xenstore_evtchn
        type: unsigned int
      - name: console_domid
        type: uint32_t
      - name: xenstore_domid
        type: uint32_t
      - name: shared_info_mfn
        type: xen_pfn_t
      - name: '*xch'
        type: xc_interface
      - name: guest_domid
        type: uint32_t
      - name: claim_enabled
        type: int
      - name: xen_version
        type: int
      - name: xen_caps
        type: xen_capabilities_info_t
      - name: '*kernel_loader'
        type: struct xc_dom_loader
      - name: '*private_loader'
        type: void
      - name: '*vmemranges'
        type: xen_vmemrange_t
      - name: nr_vmemranges
        type: unsigned int
      - name: '*vnode_to_pnode'
        type: unsigned int
      - name: nr_vnodes
        type: unsigned int
      - name: '*arch_private'
        type: void
      - name: '*arch_hooks'
        type: struct xc_dom_arch
      - name: (*allocate) (struct xc_dom_image * dom)
        type: int
      - name: container_type
        type: "enum {\n        XC_DOM_PV_CONTAINER,\n        XC_DOM_HVM_CONTAINER,\n
          \   }"
      - name: target_pages
        type: xen_pfn_t
      - name: mmio_start
        type: xen_paddr_t
      - name: mmio_size
        type: xen_paddr_t
      - name: lowmem_end
        type: xen_paddr_t
      - name: highmem_end
        type: xen_paddr_t
      - name: vga_hole_size
        type: xen_pfn_t
      - name: device_model
        type: bool
      - name: system_firmware_module
        type: struct xc_hvm_firmware_module
      - name: acpi_modules[MAX_ACPI_MODULES]
        type: struct xc_hvm_firmware_module
      - name: smbios_module
        type: struct xc_hvm_firmware_module
      - name: vuart_gfn
        type: xen_pfn_t
      - name: max_vcpus
        type: unsigned int
      - name: memflags
        type: unsigned int
      item_type: struct
      name: xc_dom_image
      pos:
        line_end: 247
        line_start: 90
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: (*alloc_magic_pages) (struct xc_dom_image * dom)
        type: int
      - name: (*alloc_pgtables) (struct xc_dom_image * dom)
        type: int
      - name: (*alloc_p2m_list) (struct xc_dom_image * dom)
        type: int
      - name: (*setup_pgtables) (struct xc_dom_image * dom)
        type: int
      - name: (*start_info) (struct xc_dom_image * dom)
        type: int
      - name: (*shared_info) (struct xc_dom_image * dom, void *shared_info)
        type: int
      - name: (*vcpu) (struct xc_dom_image * dom)
        type: int
      - name: (*bootearly) (struct xc_dom_image * dom)
        type: int
      - name: (*bootlate) (struct xc_dom_image * dom)
        type: int
      - name: (*meminit) (struct xc_dom_image * dom)
        type: int
      - name: '*guest_type'
        type: char
      - name: '*native_protocol'
        type: char
      - name: page_shift
        type: int
      - name: sizeof_pfn
        type: int
      - name: p2m_base_supported
        type: int
      - name: arch_private_size
        type: int
      - name: '*next'
        type: struct xc_dom_arch
      item_type: struct
      name: xc_dom_arch
      pos:
        line_end: 279
        line_start: 251
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: iteration
        type: unsigned int
      - name: total_written
        type: unsigned long
      - name: dirty_count
        type: long
      item_type: struct
      name: precopy_stats
      pos:
        line_end: 448
        line_start: 443
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: (*suspend)(void *data)
        type: int
      - name: precopy_policy
        type: precopy_policy_t
      - name: (*postcopy)(void *data)
        type: int
      - name: (*checkpoint)(void *data)
        type: int
      - name: (*wait_checkpoint)(void *data)
        type: int
      - name: (*switch_qemu_logdirty)(uint32_t domid, unsigned enable, void *data)
        type: int
      - name: '*data'
        type: void
      item_type: struct
      name: save_callbacks
      pos:
        line_end: 517
        line_start: 457
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: (*static_data_done)(unsigned int missing, void *data)
        type: int
      - name: (*suspend)(void *data)
        type: int
      - name: (*postcopy)(void *data)
        type: int
      - name: (*checkpoint)(void *data)
        type: int
      - name: (*wait_checkpoint)(void *data)
        type: int
      - name: "(*restore_results)(xen_pfn_t store_gfn, xen_pfn_t console_gfn,\n                            void
          *data)"
        type: void
      - name: '*data'
        type: void
      item_type: struct
      name: restore_callbacks
      pos:
        line_end: 594
        line_start: 544
        source_file: /src/xen/tools/include/xenguest.h
    - fields:
      - name: pt_levels
        type: unsigned int
      - name: guest_width
        type: unsigned int
      - name: '*pfn_type'
        type: xen_pfn_t
      - name: '*p2m_table'
        type: xen_pfn_t
      - name: p2m_size
        type: unsigned long
      - name: p2m_frames
        type: unsigned int
      item_type: struct
      name: xc_domain_meminfo
      pos:
        line_end: 775
        line_start: 768
        source_file: /src/xen/tools/include/xenguest.h
    typedefs:
    - item_type: typedef
      name: xen_vaddr_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/xen/tools/include/xenguest.h
      type: uint64_t
    - item_type: typedef
      name: xen_paddr_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/tools/include/xenguest.h
      type: uint64_t
    - item_type: typedef
      name: (*precopy_policy_t)(struct precopy_stats, void *)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/xen/tools/include/xenguest.h
      type: int
    - item_type: typedef
      name: xc_cpu_policy_t
      pos:
        line_end: 796
        line_start: 796
        source_file: /src/xen/tools/include/xenguest.h
      type: xc_cpu_policy
    union: []
- function_names:
  - xen_barrier
  - xen_mb
  - xen_rmb
  - xen_wmb
  - xen_mb
  - xen_rmb
  - xen_wmb
  - xen_mb
  - xen_rmb
  - xen_wmb
  - xen_mb
  - xen_rmb
  - xen_wmb
  source_file: /src/xen/tools/include/xen-barrier.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/libxl_event.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBXL_EVENTMASK_ALL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/include/libxl_event.h
      type_or_value: (~(unsigned long)0)
    structs:
    - fields:
      - name: event_occurs_mask
        type: uint64_t
      - name: "(*event_occurs)(void *user,\n#ifndef LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG\n
          \                        const\n#endif\n                         libxl_event
          *event)"
        type: void
      - name: "(*disaster)(void *user, libxl_event_type type,\n                     const
          char *msg, int errnoval)"
        type: void
      item_type: struct
      name: libxl_event_hooks
      pos:
        line_end: 73
        line_start: 64
        source_file: /src/xen/tools/include/libxl_event.h
    - fields:
      - name: "(*fd_register)(void *user, int fd, void **for_app_registration_out,\n
          \                    short events, void *for_libxl)"
        type: int
      - name: "(*fd_modify)(void *user, int fd, void **for_app_registration_update,\n
          \                  short events)"
        type: int
      - name: (*fd_deregister)(void *user, int fd, void *for_app_registration)
        type: void
      - name: "(*timeout_register)(void *user, void **for_app_registration_out,\n
          \                         struct timeval abs, void *for_libxl)"
        type: int
      - name: "(*timeout_modify)(void *user, void **for_app_registration_update,\n
          \                        struct timeval abs)"
        type: int
      - name: (*timeout_deregister)(void *user, void *for_app_registration)
        type: void
      item_type: struct
      name: libxl_osevent_hooks
      pos:
        line_end: 295
        line_start: 282
        source_file: /src/xen/tools/include/libxl_event.h
    - fields:
      - name: chldowner
        type: libxl_sigchld_owner
      - name: (*fork_replacement)(void *user)
        type: pid_t
      - name: (*reaped_callback)(pid_t, int status, void *user)
        type: int
      item_type: struct
      name: libxl_childproc_hooks
      pos:
        line_end: 543
        line_start: 506
        source_file: /src/xen/tools/include/libxl_event.h
    typedefs:
    - item_type: typedef
      name: libxl_event_predicate(const libxl_event*, void *user)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/tools/include/libxl_event.h
      type: int
    - item_type: typedef
      name: libxl_evgen_domain_death
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/xen/tools/include/libxl_event.h
      type: libxl__evgen_domain_death
    - item_type: typedef
      name: libxl_evgen_disk_eject
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/xen/tools/include/libxl_event.h
      type: libxl__evgen_disk_eject
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenmanage.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_STATE_EXIST
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_STATE_SHUTDOWN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_STATE_DYING
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_STATE_DEAD
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_CAP_CONTROL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_CAP_HARDWARE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: XENMANAGE_GETDOMSTATE_CAP_XENSTORE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/include/xenmanage.h
      type_or_value: '0x0004'
    structs: []
    typedefs:
    - item_type: typedef
      name: xenmanage_handle
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/tools/include/xenmanage.h
      type: xenmanage_handle
    union: []
- function_names:
  - LIBXL_MAC_BYTES
  - libxl_domain_create_restore_0x040200
  - libxl_domain_create_restore_0x040400
  - libxl_retrieve_domain_configuration_0x041200
  - libxl_domain_shutdown_0x041200
  - libxl_domain_reboot_0x041200
  - libxl_domain_pause_0x041200
  - libxl_domain_unpause_0x041200
  - libxl_console_exec_0x040700
  - libxl_primary_console_exec_0x040700
  - libxl_console_exec_0x041700
  - libxl_primary_console_exec_0x041700
  - libxl_cpuid_apply_policy
  - libxl_cpuid_set
  - libxl_set_vcpuaffinity
  - libxl_set_vcpuaffinity_all
  - libxl_set_vcpuonline_0x041200
  - libxl_send_trigger_0x041200
  - libxl_qemu_monitor_command_0x041200
  source_file: /src/xen/tools/include/libxl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_PV
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CONSOLE_NOTIFY_FD
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CONSOLE_ESCAPE_CHARACTER
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CONST_COPY_AND_LENGTH_FUNCTIONS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMAIN_NEED_MEMORY_CONST_B_INFO
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VNUMA
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_USERDATA_UNLINK
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CPUPOOL_QUALIFIER_TO_CPUPOOLID
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CPUPOOL_ADD_REM_CPUMAP
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BITMAP_AND_OR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_FIRMWARE_PASSTHROUGH
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMAIN_NODEAFFINITY
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PVUSB
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_VENDOR_DEVICE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_EVENT_CHANNELS
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_MS_VM_GENID
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_SMBIOS
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VCPUINFO_SOFT_AFFINITY
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SET_VCPUAFFINITY_FORCE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_DISK_DIRECT_IO_SAFE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_LIBXL_DEVICE_DISK_DISCARD_ENABLE
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_IOMEM_START_GFN
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SCHED_RTDS
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SCHED_NULL
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_VIRIDIAN_ENABLE_DISABLE
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_BUILDINFO_HVM_VIRIDIAN_ENABLE_DISABLE_WIDTH
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '64'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_MMIO_HOLE_MEMKB
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_ERROR_DOMAIN_NOTFOUND
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICETREE_PASSTHROUGH
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DT_OVERLAY
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_MODEL_USER
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VCPU_SCHED_PARAMS
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SCHED_RTDS_VCPU_PARAMS
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SCHED_RTDS_VCPU_EXTRA
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARM_GIC_VERSION
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARCH_ARM_TEE
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARCH_ARM_TEE_FFA
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARCH_ARM_SVE_VL
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARCH_NR_SPIS
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARCH_ARM_SCI
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SOFT_RESET
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_APIC_ASSIST
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILD_ID
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_QEMU_MONITOR_COMMAND
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SCHED_CREDIT2_PARAMS
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_CRASH_CTL
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_SYNIC
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_STIMER
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_HCALL_IPI
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_HVM_ACPI_LAPTOP_SLATE
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_P9S
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_ARM_VUART
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_MAX_GRANT_DEFAULT
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_MAX_GRANT_FRAMES_DEFAULT
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: LIBXL_MAX_MAPTRACK_FRAMES_DEFAULT
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1024 '
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_GRANT_DEFAULT
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_TIMER_MODE
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_APIC
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_NESTED_HVM
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_BOOTLOADER
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_BOOTLOADER_ARGS
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_EXTENDED_VKB
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_HAP_SHADOW
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_IOMMU_HAP_PT_SHARE
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_IOMMU_MEMKB
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CREATEINFO_PASSTHROUGH
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DISK_SAFE_REMOVE
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_EX_PROCESSOR_MASKS
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_NO_VP_LIMIT
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VIRIDIAN_CPU_HOTPLUG
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_PCI_LIST_FREE
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_PCI_ASSIGNABLE_LIST_FREE
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_PCI_NAME
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_VMTRACE
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VMTRACE_BUF_KB
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_X86_MSR_RELAXED
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_VPMU
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_VPMU
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_TRAP_UNMAPPED_ACCESSES
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_CAP_GNTTAB
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_ARCH_CAPABILITIES
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_MAX_GRANT_VERSION
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DISK_TRUSTED
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_NIC_TRUSTED
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_DISK_SPECIFICATION
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DISK_GRANT_USAGE
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CONSOLE_ADD_XENSTORE
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_P9_ADD
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BOOTLOADER_RESTRICT
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_HVM_PIRQ
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_XEN_9PFS
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DT_OVERLAY_DOMAIN
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_XENSTORE_FEATURE_MASK
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_RETRIEVE_DOMAIN_CONFIGURATION
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_VCPU_AFFINITY_ARRAYS
      pos:
        line_end: 914
        line_start: 913
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_VKB_DEVICE
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST
      pos:
        line_end: 939
        line_start: 938
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_USBVERSION
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_BACKEND_DOMNAME
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG
      pos:
        line_end: 974
        line_start: 973
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_NONCONST_LIBXL_BASENAME_RETURN_VALUE
      pos:
        line_end: 984
        line_start: 983
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_OUTSTANDING_PAGES
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PHYSINFO_MAX_POSSIBLE_MFN
      pos:
        line_end: 1003
        line_start: 1002
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMINFO_OUTSTANDING_MEMKB
      pos:
        line_end: 1012
        line_start: 1011
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMINFO_NEVER_STOP
      pos:
        line_end: 1021
        line_start: 1020
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMINFO_GPADDR_BITS
      pos:
        line_end: 1029
        line_start: 1028
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_QXL
      pos:
        line_end: 1039
        line_start: 1038
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SPICE_VDAGENT
      pos:
        line_end: 1050
        line_start: 1049
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SPICE_USBREDIREDIRECTION
      pos:
        line_end: 1061
        line_start: 1060
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SPICE_IMAGECOMPRESSION
      pos:
        line_end: 1072
        line_start: 1071
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SPICE_STREAMINGVIDEO
      pos:
        line_end: 1083
        line_start: 1082
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_HVM_HDTYPE
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMAIN_CREATE_RESTORE_SEND_BACK_FD
      pos:
        line_end: 1108
        line_start: 1107
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DRIVER_DOMAIN_CREATION
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SIGCHLD_OWNER_SELECTIVE_REAP
      pos:
        line_end: 1130
        line_start: 1129
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SIGCHLD_SHARING
      pos:
        line_end: 1139
        line_start: 1138
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_NO_SUSPEND_RESUME
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DOMAIN_SUSPEND_ONLY
      pos:
        line_end: 1161
        line_start: 1160
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_PCI_SEIZE
      pos:
        line_end: 1171
        line_start: 1170
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_KERNEL
      pos:
        line_end: 1186
        line_start: 1185
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_DEVICE_MODEL_STUBDOMAIN
      pos:
        line_end: 1198
        line_start: 1197
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_DEVICE_CHANNEL
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_AO_ABORT
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_UUID_COPY_CTX_PARAM
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SSID_LABEL
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CPUPOOL_NAME
      pos:
        line_end: 1247
        line_start: 1246
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_SERIAL_LIST
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_ALTP2M
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_ALTP2M_COUNT
      pos:
        line_end: 1276
        line_start: 1275
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_REMUS
      pos:
        line_end: 1282
        line_start: 1281
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_COLO_USERSPACE_PROXY
      pos:
        line_end: 1288
        line_start: 1287
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_MAC_FMT
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '"%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx"'
    - item_type: preproc_def
      name: LIBXL_MAC_FMTLEN
      pos:
        line_end: 1292
        line_start: 1291
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '((2*6)+5) '
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_CMT
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_MBM
      pos:
        line_end: 1309
        line_start: 1308
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_CAT
      pos:
        line_end: 1316
        line_start: 1315
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_CDP
      pos:
        line_end: 1323
        line_start: 1322
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_L2_CAT
      pos:
        line_end: 1330
        line_start: 1329
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PSR_GENERIC
      pos:
        line_end: 1341
        line_start: 1340
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_MCA_CAPS
      pos:
        line_end: 1348
        line_start: 1347
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PCITOPOLOGY
      pos:
        line_end: 1357
        line_start: 1356
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SOCKET_BITMAP
      pos:
        line_end: 1365
        line_start: 1364
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SRM_V2
      pos:
        line_end: 1375
        line_start: 1374
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SRM_V1
      pos:
        line_end: 1384
        line_start: 1383
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_CHECKPOINTED_STREAM
      pos:
        line_end: 1397
        line_start: 1396
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BUILDINFO_LLC_COLORS
      pos:
        line_end: 1410
        line_start: 1409
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ERROR_REMUS_DEVOPS_DOES_NOT_MATCH
      pos:
        line_end: 1419
        line_start: 1417
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: ERROR_CHECKPOINT_DEVOPS_DOES_NOT_MATCH
    - item_type: preproc_def
      name: ERROR_REMUS_DEVICE_NOT_SUPPORTED
      pos:
        line_end: 1421
        line_start: 1419
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: ERROR_CHECKPOINT_DEVICE_NOT_SUPPORTED
    - item_type: preproc_def
      name: LIBXL_HAVE_VGA_INTERFACE_TYPE_UNKNOWN
      pos:
        line_end: 1432
        line_start: 1431
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_BYTEARRAY_UUID
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_MEMKB_64BITS
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_QED
      pos:
        line_end: 1459
        line_start: 1458
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_SET_PARAMETERS
      pos:
        line_end: 1466
        line_start: 1465
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PV_SHIM
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_PVCALLS
      pos:
        line_end: 1481
        line_start: 1480
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_HAVE_FN_USING_QMP_ASYNC
      pos:
        line_end: 1498
        line_start: 1497
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_PCI_FUNC_ALL
      pos:
        line_end: 1573
        line_start: 1572
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~0U)
    - item_type: preproc_def
      name: LIBXL_NR_SPIS_DEFAULT
      pos:
        line_end: 1616
        line_start: 1615
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_TIMER_MODE_DEFAULT
      pos:
        line_end: 1617
        line_start: 1616
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_MEMKB_DEFAULT
      pos:
        line_end: 1618
        line_start: 1617
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: ~0ULL
    - item_type: preproc_def
      name: LIBXL_RDM_MEM_BOUNDARY_MEMKB_DEFAULT
      pos:
        line_end: 1624
        line_start: 1623
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (2048 * 1024)
    - item_type: preproc_def
      name: LIBXL_MS_VM_GENID_LEN
      pos:
        line_end: 1626
        line_start: 1625
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '16'
    - item_type: preproc_def
      name: LIBXL_VERSION
      pos:
        line_end: 1786
        line_start: 1785
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: INVALID_DOMID
      pos:
        line_end: 1796
        line_start: 1795
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: ~0
    - item_type: preproc_def
      name: RANDOM_DOMID
      pos:
        line_end: 1797
        line_start: 1796
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (INVALID_DOMID - 1)
    - item_type: preproc_def
      name: libxl_domain_create_restore
      pos:
        line_end: 1837
        line_start: 1836
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_create_restore_0x040200
    - item_type: preproc_def
      name: libxl_domain_create_restore
      pos:
        line_end: 1854
        line_start: 1853
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_create_restore_0x040400
    - item_type: preproc_def
      name: libxl_retrieve_domain_configuration
      pos:
        line_end: 1890
        line_start: 1888
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_retrieve_domain_configuration_0x041200
    - item_type: preproc_def
      name: LIBXL_SUSPEND_DEBUG
      pos:
        line_end: 1897
        line_start: 1896
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_SUSPEND_LIVE
      pos:
        line_end: 1898
        line_start: 1897
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: libxl_domain_shutdown
      pos:
        line_end: 1938
        line_start: 1937
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_shutdown_0x041200
    - item_type: preproc_def
      name: libxl_domain_reboot
      pos:
        line_end: 1944
        line_start: 1943
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_reboot_0x041200
    - item_type: preproc_def
      name: libxl_domain_pause
      pos:
        line_end: 1990
        line_start: 1989
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_pause_0x041200
    - item_type: preproc_def
      name: libxl_domain_unpause
      pos:
        line_end: 1991
        line_start: 1990
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_unpause_0x041200
    - item_type: preproc_def
      name: libxl_get_memory_target
      pos:
        line_end: 2051
        line_start: 2050
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_get_memory_target_0x040700
    - item_type: preproc_def
      name: libxl_domain_need_memory
      pos:
        line_end: 2052
        line_start: 2051
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_need_memory_0x040700
    - item_type: preproc_def
      name: libxl_get_free_memory
      pos:
        line_end: 2053
        line_start: 2052
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_get_free_memory_0x040700
    - item_type: preproc_def
      name: libxl_domain_need_memory
      pos:
        line_end: 2055
        line_start: 2054
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_domain_need_memory_0x041200
    - item_type: preproc_def
      name: libxl_console_exec
      pos:
        line_end: 2091
        line_start: 2090
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_console_exec_0x040700
    - item_type: preproc_def
      name: libxl_primary_console_exec
      pos:
        line_end: 2098
        line_start: 2097
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_primary_console_exec_0x040700
    - item_type: preproc_def
      name: libxl_console_exec
      pos:
        line_end: 2109
        line_start: 2108
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_console_exec_0x041700
    - item_type: preproc_def
      name: libxl_primary_console_exec
      pos:
        line_end: 2117
        line_start: 2116
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_primary_console_exec_0x041700
    - item_type: preproc_def
      name: LIBXL_CPUTOPOLOGY_INVALID_ENTRY
      pos:
        line_end: 2170
        line_start: 2169
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_PCITOPOLOGY_INVALID_ENTRY
      pos:
        line_end: 2174
        line_start: 2173
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_NUMAINFO_INVALID_ENTRY
      pos:
        line_end: 2178
        line_start: 2177
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: (~(uint32_t)0)
    - item_type: preproc_def
      name: LIBXL_DT_OVERLAY_ADD
      pos:
        line_end: 2604
        line_start: 2603
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBXL_DT_OVERLAY_REMOVE
      pos:
        line_end: 2605
        line_start: 2604
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LIBXL_DT_OVERLAY_DOMAIN_ATTACH
      pos:
        line_end: 2610
        line_start: 2609
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: libxl_set_vcpuonline
      pos:
        line_end: 2771
        line_start: 2770
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_set_vcpuonline_0x041200
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_WEIGHT_DEFAULT
      pos:
        line_end: 2791
        line_start: 2790
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_CAP_DEFAULT
      pos:
        line_end: 2792
        line_start: 2791
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_PERIOD_DEFAULT
      pos:
        line_end: 2793
        line_start: 2792
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_SLICE_DEFAULT
      pos:
        line_end: 2794
        line_start: 2793
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_LATENCY_DEFAULT
      pos:
        line_end: 2795
        line_start: 2794
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT
      pos:
        line_end: 2796
        line_start: 2795
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_DOMAIN_SCHED_PARAM_BUDGET_DEFAULT
      pos:
        line_end: 2797
        line_start: 2796
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: LIBXL_SCHED_PARAM_VCPU_INDEX_DEFAULT
      pos:
        line_end: 2800
        line_start: 2799
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: libxl_send_trigger
      pos:
        line_end: 2844
        line_start: 2843
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_send_trigger_0x041200
    - item_type: preproc_def
      name: LIBXL_CPUPOOL_POOLID_ANY
      pos:
        line_end: 2877
        line_start: 2876
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: libxl_qemu_monitor_command
      pos:
        line_end: 3011
        line_start: 3010
        source_file: /src/xen/tools/include/libxl.h
      type_or_value: libxl_qemu_monitor_command_0x041200
    structs:
    - fields:
      - name: size
        type: uint32_t
      - name: '*map'
        type: uint8_t
      item_type: struct
      name: libxl_bitmap
      pos:
        line_end: 1560
        line_start: 1557
        source_file: /src/xen/tools/include/libxl.h
    - fields:
      - name: '*s'
        type: char
      - name: v
        type: int
      item_type: struct
      name: libxl_enum_string_table
      pos:
        line_end: 1586
        line_start: 1583
        source_file: /src/xen/tools/include/libxl.h
    - fields:
      - name: val
        type: int
      item_type: struct
      name: libxl_defbool
      pos:
        line_end: 1602
        line_start: 1600
        source_file: /src/xen/tools/include/libxl.h
    - fields:
      - name: bytes[LIBXL_MS_VM_GENID_LEN]
        type: uint8_t
      item_type: struct
      name: libxl_ms_vm_genid
      pos:
        line_end: 1628
        line_start: 1626
        source_file: /src/xen/tools/include/libxl.h
    - fields:
      - name: (*callback)(libxl_ctx *ctx, int rc, void *for_callback)
        type: void
      - name: u
        type: "union {\n        libxl_ev_user for_event; /* used if callback==NULL
          */\n        void *for_callback; /* passed to callback */\n    }"
      item_type: struct
      name: libxl_asyncop_how
      pos:
        line_end: 1684
        line_start: 1678
        source_file: /src/xen/tools/include/libxl.h
    - fields:
      - name: (*callback)(libxl_ctx *ctx, libxl_event*, void *for_callback)
        type: void
      - name: for_event
        type: libxl_ev_user
      - name: '*for_callback'
        type: void
      item_type: struct
      name: libxl_asyncprogress_how
      pos:
        line_end: 1730
        line_start: 1726
        source_file: /src/xen/tools/include/libxl.h
    typedefs:
    - item_type: typedef
      name: libxl_ctx
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/xen/tools/include/libxl.h
      type: libxl__ctx
    - item_type: typedef
      name: libxl_mac[6]
      pos:
        line_end: 1289
        line_start: 1289
        source_file: /src/xen/tools/include/libxl.h
      type: uint8_t
    - item_type: typedef
      name: '**libxl_string_list'
      pos:
        line_end: 1539
        line_start: 1539
        source_file: /src/xen/tools/include/libxl.h
      type: char
    - item_type: typedef
      name: '**libxl_key_value_list'
      pos:
        line_end: 1545
        line_start: 1545
        source_file: /src/xen/tools/include/libxl.h
      type: char
    - item_type: typedef
      name: libxl_hwcap[8]
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/xen/tools/include/libxl.h
      type: uint32_t
    - item_type: typedef
      name: libxl_ev_user
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/xen/tools/include/libxl.h
      type: uint64_t
    - item_type: typedef
      name: '*libxl_cpuid_policy_list'
      pos:
        line_end: 1565
        line_start: 1565
        source_file: /src/xen/tools/include/libxl.h
      type: libxl__cpu_policy
    - item_type: typedef
      name: libxl_domid
      pos:
        line_end: 1574
        line_start: 1574
        source_file: /src/xen/tools/include/libxl.h
      type: uint32_t
    - item_type: typedef
      name: libxl_devid
      pos:
        line_end: 1575
        line_start: 1575
        source_file: /src/xen/tools/include/libxl.h
      type: int
    - item_type: typedef
      name: (struct libxl_event)
      pos:
        line_end: 1589
        line_start: 1589
        source_file: /src/xen/tools/include/libxl.h
      type: XEN_TAILQ_ENTRY
    - item_type: typedef
      name: libxl_xen_console_reader
      pos:
        line_end: 2849
        line_start: 2849
        source_file: /src/xen/tools/include/libxl.h
      type: libxl__xen_console_reader
    - item_type: typedef
      name: libxl_psr_type
      pos:
        line_end: 2959
        line_start: 2959
        source_file: /src/xen/tools/include/libxl.h
      type: libxl_psr_cbm_type
    union: []
- function_names: []
  source_file: /src/xen/tools/include/libxenvchan.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* shr'
        type: struct ring_shared
      - name: '* buffer'
        type: void
      - name: order
        type: int
      item_type: struct
      name: libxenvchan_ring
      pos:
        line_end: 64
        line_start: 53
        source_file: /src/xen/tools/include/libxenvchan.h
    - fields:
      - name: '*ring'
        type: struct vchan_interface
      - name: '*event'
        type: xenevtchn_handle
      - name: event_port
        type: uint32_t
      - name: is_server
        type: unsigned int
      - name: server_persist
        type: unsigned int
      - name: blocking
        type: unsigned int
      - name: read
        type: struct libxenvchan_ring
      - name: '*xs_path'
        type: char
      item_type: struct
      name: libxenvchan
      pos:
        line_end: 93
        line_start: 69
        source_file: /src/xen/tools/include/libxenvchan.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenhypfs.h
  types:
    enum:
    - enumerators:
      - name: xenhypfs_type_dir
      - name: xenhypfs_type_int
      - name: xenhypfs_type_uint
      - name: xenhypfs_type_string
      - name: xenhypfs_type_blob
      - name: xenhypfs_type_bool
      item_type: enum
      name: xenhypfs_type
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/xen/tools/include/xenhypfs.h
    - enumerators:
      - name: xenhypfs_enc_plain
      - name: xenhypfs_enc_gzip
      item_type: enum
      name: xenhypfs_encoding
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/xen/tools/include/xenhypfs.h
    preproc_defs:
    - item_type: preproc_def
      name: XENHYPFS_FLAG_WRITABLE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/include/xenhypfs.h
      type_or_value: '0x00000001'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: type
        type: unsigned short
      - name: encoding
        type: unsigned short
      - name: flags
        type: unsigned int
      item_type: struct
      name: xenhypfs_dirent
      pos:
        line_end: 49
        line_start: 42
        source_file: /src/xen/tools/include/xenhypfs.h
    typedefs:
    - item_type: typedef
      name: xenhypfs_handle
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/include/xenhypfs.h
      type: xenhypfs_handle
    union: []
- function_names:
  - CONTAINER_OF
  source_file: /src/xen/tools/include/xentoolcore_internal.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*restrict_callback'
        type: Xentoolcore__Restrict_Callback
      - name: (Xentoolcore__Active_Handle)
        type: XEN_LIST_ENTRY
      item_type: struct
      name: Xentoolcore__Active_Handle
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/xen/tools/include/xentoolcore_internal.h
    typedefs:
    - item_type: typedef
      name: Xentoolcore__Active_Handle
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/xen/tools/include/xentoolcore_internal.h
      type: Xentoolcore__Active_Handle
    - item_type: typedef
      name: "Xentoolcore__Restrict_Callback(Xentoolcore__Active_Handle*,\n                                           domid_t
        domid)"
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/include/xentoolcore_internal.h
      type: int
    union: []
- function_names:
  - MAX_STRLEN
  source_file: /src/xen/tools/include/xenstore_lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XS_PERM_NONE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: XS_PERM_READ
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: XS_PERM_WRITE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: XS_PERM_ENOENT_OK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: XS_PERM_OWNER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: XS_PERM_IGNORE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/include/xenstore_lib.h
      type_or_value: '0x10'
    structs:
    - fields:
      - name: id
        type: unsigned int
      - name: perms
        type: unsigned int
      item_type: struct
      name: xs_permissions
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/xen/tools/include/xenstore_lib.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenctrl_compat.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: xc_evtchn
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/xen/tools/include/xenctrl_compat.h
      type: xenevtchn_handle
    - item_type: typedef
      name: evtchn_port_or_error_t
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/xen/tools/include/xenctrl_compat.h
      type: xc_evtchn_port_or_error_t
    - item_type: typedef
      name: xc_gnttab
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/xen/tools/include/xenctrl_compat.h
      type: xengntdev_handle
    - item_type: typedef
      name: xc_gntshr
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/xen/tools/include/xenctrl_compat.h
      type: xengntdev_handle
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenforeignmemory.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: xenforeignmemory_handle
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/tools/include/xenforeignmemory.h
      type: xenforeignmemory_handle
    - item_type: typedef
      name: xenforeignmemory_resource_handle
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/xen/tools/include/xenforeignmemory.h
      type: xenforeignmemory_resource_handle
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenstat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENSTAT_VCPU
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/include/xenstat.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: XENSTAT_NETWORK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/include/xenstat.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: XENSTAT_XEN_VERSION
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/include/xenstat.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: XENSTAT_VBD
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/include/xenstat.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: XENSTAT_ALL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/include/xenstat.h
      type_or_value: (XENSTAT_VCPU|XENSTAT_NETWORK|XENSTAT_XEN_VERSION|XENSTAT_VBD)
    structs: []
    typedefs:
    - item_type: typedef
      name: xenstat_handle
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_handle
    - item_type: typedef
      name: xenstat_domain
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_domain
    - item_type: typedef
      name: xenstat_node
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_node
    - item_type: typedef
      name: xenstat_vcpu
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_vcpu
    - item_type: typedef
      name: xenstat_network
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_network
    - item_type: typedef
      name: xenstat_vbd
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/include/xenstat.h
      type: xenstat_vbd
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xencall.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENCALL_OPENFLAG_NON_REENTRANT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/include/xencall.h
      type_or_value: (1U<<0)
    structs: []
    typedefs:
    - item_type: typedef
      name: xencall_handle
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/include/xencall.h
      type: xencall_handle
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenstore.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XBT_NULL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/include/xenstore.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XS_OPEN_READONLY
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/include/xenstore.h
      type_or_value: (1UL<<0)
    - item_type: preproc_def
      name: XS_OPEN_SOCKETONLY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/include/xenstore.h
      type_or_value: (1UL<<1)
    - item_type: preproc_def
      name: XS_UNWATCH_FILTER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/include/xenstore.h
      type_or_value: (1UL<<2)
    structs: []
    typedefs:
    - item_type: typedef
      name: xs_transaction_t
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/xen/tools/include/xenstore.h
      type: uint32_t
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenstore-compat/xs_lib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xenstore-compat/xs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffsl
  - BIT_WORD
  - BITS_TO_LONGS
  - DECLARE_BITMAP
  - BITMAP_ENTRY
  - BITMAP_SHIFT
  - bitmap_size
  - bitmap_alloc
  - bitmap_set
  - bitmap_clear
  - test_bit
  - clear_bit
  - set_bit
  - test_and_clear_bit
  - test_and_set_bit
  - bitmap_or
  source_file: /src/xen/tools/include/xen-tools/bitops.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/include/xen-tools/bitops.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/include/xen-tools/bitops.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xenstore_daemon_rundir
  - xenstore_daemon_path
  - xenstore_strings_to_perms
  - xenstore_perm_to_string
  - xenstore_count_strings
  source_file: /src/xen/tools/include/xen-tools/xenstore-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUILD_BUG_ON
  - BUILD_BUG_ON
  - ARRAY_SIZE
  - MAX
  - MIN
  - min
  - max
  - min_t
  - max_t
  - ROUNDUP
  - MASK_EXTR
  - MASK_INSR
  - sizeof_field
  - endof_field
  - container_of
  - __STR
  - STR
  - __AC
  - _AC
  - MB
  - GB
  - get_unaligned_t
  - put_unaligned_t
  - get_unaligned
  - put_unaligned
  source_file: /src/xen/tools/include/xen-tools/common-macros.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __must_check
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/include/xen-tools/common-macros.h
      type_or_value: __attribute__((__warn_unused_result__))
    - item_type: preproc_def
      name: __packed
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/include/xen-tools/common-macros.h
      type_or_value: __attribute__((__packed__))
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_capabilities_arm_sve
  source_file: /src/xen/tools/include/xen-tools/arm-arch-capabilities.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_HYPERCALL
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type_or_value: _IOWR('E', 0, struct ioctl_privcmd_hypercall)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type_or_value: _IOWR('E', 1, struct ioctl_privcmd_mmapbatch)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP_RESOURCE
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type_or_value: _IOW('E', 2, struct ioctl_privcmd_mmapresource)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_DM_OP
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type_or_value: _IOW('E', 3, struct ioctl_privcmd_dmop)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_RESTRICT
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type_or_value: _IOW('E', 4, domid_t)
    structs:
    - fields:
      - name: op
        type: unsigned long
      - name: arg[5]
        type: unsigned long
      - name: retval
        type: long
      item_type: struct
      name: ioctl_privcmd_hypercall
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: addr
        type: unsigned long
      - name: '*arr'
        type: xen_pfn_t
      - name: '*err'
        type: int
      item_type: struct
      name: ioctl_privcmd_mmapbatch
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    - fields:
      - name: va
        type: unsigned long
      - name: mfn
        type: unsigned long
      - name: npages
        type: unsigned long
      item_type: struct
      name: privcmd_mmap_entry
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    - fields:
      - name: dom
        type: domid_t
      - name: type
        type: unsigned int
      - name: id
        type: unsigned int
      - name: idx
        type: unsigned int
      - name: num
        type: unsigned long
      - name: addr
        type: unsigned long
      item_type: struct
      name: ioctl_privcmd_mmapresource
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    - fields:
      - name: '*uptr'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: privcmd_dmop_buf
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    - fields:
      - name: dom
        type: domid_t
      - name: num
        type: unsigned int
      - name: '*ubufs'
        type: struct privcmd_dmop_buf
      item_type: struct
      name: ioctl_privcmd_dmop
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
    typedefs:
    - item_type: typedef
      name: privcmd_hypercall_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type: ioctl_privcmd_hypercall
    - item_type: typedef
      name: privcmd_mmapbatch_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type: ioctl_privcmd_mmapbatch
    - item_type: typedef
      name: privcmd_mmap_resource_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type: ioctl_privcmd_mmapresource
    - item_type: typedef
      name: privcmd_dm_op_buf_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type: privcmd_dmop_buf
    - item_type: typedef
      name: privcmd_dm_op_t
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/privcmd.h
      type: ioctl_privcmd_dmop
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_GNTDEV_SET_UNMAP_NOTIFY
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOW('E', 0, struct ioctl_gntdev_unmap_notify)
    - item_type: preproc_def
      name: UNMAP_NOTIFY_CLEAR_BYTE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: UNMAP_NOTIFY_SEND_EVENT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: IOCTL_GNTDEV_ALLOC_GREF
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOWR('E', 1, struct ioctl_gntdev_alloc_gref)
    - item_type: preproc_def
      name: GNTDEV_ALLOC_FLAG_WRITABLE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IOCTL_GNTDEV_DEALLOC_GREF
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOW('E', 2, struct ioctl_gntdev_dealloc_gref)
    - item_type: preproc_def
      name: IOCTL_GNTDEV_MAP_GRANT_REF
      pos:
        line_end: 162
        line_start: 160
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOWR('E', 3, struct ioctl_gntdev_map_grant_ref)
    - item_type: preproc_def
      name: IOCTL_GNTDEV_UNMAP_GRANT_REF
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOW('E', 4, struct ioctl_gntdev_unmap_grant_ref)
    - item_type: preproc_def
      name: IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR
      pos:
        line_end: 182
        line_start: 180
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
      type_or_value: _IOWR('E', 5, struct ioctl_gntdev_get_offset_for_vaddr)
    structs:
    - fields:
      - name: index
        type: uint64_t
      - name: action
        type: uint32_t
      - name: event_channel_port
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_unmap_notify
      pos:
        line_end: 123
        line_start: 118
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: domid
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: count
        type: uint32_t
      - name: index
        type: uint64_t
      - name: '*gref_ids'
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_alloc_gref
      pos:
        line_end: 141
        line_start: 132
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: index
        type: uint64_t
      - name: count
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_dealloc_gref
      pos:
        line_end: 151
        line_start: 147
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: domid
        type: uint32_t
      - name: ref
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_grant_ref
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: count
        type: uint32_t
      - name: pad0
        type: uint32_t
      - name: index
        type: uint64_t
      - name: '*refs'
        type: struct ioctl_gntdev_grant_ref
      item_type: struct
      name: ioctl_gntdev_map_grant_ref
      pos:
        line_end: 170
        line_start: 162
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: index
        type: uint64_t
      - name: count
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_unmap_grant_ref
      pos:
        line_end: 178
        line_start: 174
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    - fields:
      - name: vaddr
        type: uint64_t
      - name: offset
        type: uint64_t
      - name: count
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_get_offset_for_vaddr
      pos:
        line_end: 188
        line_start: 182
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/gntdev.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_VIRQ
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IOWR('E', 4, struct ioctl_evtchn_bind_virq)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_INTERDOMAIN
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IOWR('E', 5, struct ioctl_evtchn_bind_interdomain)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_UNBOUND_PORT
      pos:
        line_end: 59
        line_start: 57
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IOWR('E', 6, struct ioctl_evtchn_bind_unbound_port)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_UNBIND
      pos:
        line_end: 69
        line_start: 67
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IOW('E', 7, struct ioctl_evtchn_unbind)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_NOTIFY
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IOW('E', 8, struct ioctl_evtchn_notify)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_RESET
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
      type_or_value: _IO('E', 9)
    structs:
    - fields:
      - name: virq
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_virq
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_interdomain
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_unbound_port
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_unbind
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_notify
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/xen/tools/include/xen-sys/FreeBSD/evtchn.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_HYPERCALL
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOWR('P', 0, privcmd_hypercall_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN_OLD
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IO('P', 1)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOW('P', 2, privcmd_mmap_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOW('P', 3, privcmd_mmapbatch_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOR('P', 4, unsigned long)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOR('P', 5, int)
    - item_type: preproc_def
      name: EVTCHN_RESET
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IO('E', 1)
    - item_type: preproc_def
      name: EVTCHN_BIND
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOW('E', 2, unsigned long)
    - item_type: preproc_def
      name: EVTCHN_UNBIND
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
      type_or_value: _IOW('E', 3, unsigned long)
    structs:
    - fields:
      - name: op
        type: unsigned long
      - name: arg[5]
        type: unsigned long
      - name: retval
        type: long
      item_type: struct
      name: privcmd_hypercall
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
    - fields:
      - name: va
        type: unsigned long
      - name: mfn
        type: unsigned long
      - name: npages
        type: unsigned long
      item_type: struct
      name: privcmd_mmap_entry
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: '*entry'
        type: privcmd_mmap_entry_t
      item_type: struct
      name: privcmd_mmap
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: addr
        type: unsigned long
      - name: '*arr'
        type: unsigned long
      item_type: struct
      name: privcmd_mmapbatch
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
    - fields:
      - name: op
        type: unsigned long
      - name: '*buf'
        type: void
      - name: buf_size
        type: int
      item_type: struct
      name: privcmd_blkmsg
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/privcmd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_VIRQ
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IOWR('E', 4, struct ioctl_evtchn_bind_virq)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_INTERDOMAIN
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IOWR('E', 5, struct ioctl_evtchn_bind_interdomain)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_UNBOUND_PORT
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IOWR('E', 6, struct ioctl_evtchn_bind_unbound_port)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_UNBIND
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IOW('E', 7, struct ioctl_evtchn_unbind)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_NOTIFY
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IOW('E', 8, struct ioctl_evtchn_notify)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_RESET
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
      type_or_value: _IO('E', 9)
    structs:
    - fields:
      - name: virq
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_virq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_interdomain
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_unbound_port
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_unbind
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_notify
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/NetBSDRump/evtchn.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/MiniOS/privcmd.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: uint64_t
      - name: arg[5]
        type: uint64_t
      item_type: struct
      name: privcmd_hypercall
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/xen/tools/include/xen-sys/MiniOS/privcmd.h
    - fields:
      - name: mfn
        type: uint64_t
      item_type: struct
      name: privcmd_mmap_entry
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/xen/tools/include/xen-sys/MiniOS/privcmd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIVCMD_MMAPBATCH_MFN_ERROR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: 0xf0000000U
    - item_type: preproc_def
      name: PRIVCMD_MMAPBATCH_PAGED_ERROR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_HYPERCALL
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 0, sizeof(privcmd_hypercall_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP
      pos:
        line_end: 111
        line_start: 109
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 2, sizeof(privcmd_mmap_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH_V2
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 4, sizeof(privcmd_mmapbatch_v2_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_DM_OP
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 5, sizeof(privcmd_dm_op_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_RESTRICT
      pos:
        line_end: 119
        line_start: 117
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 6, sizeof(domid_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP_RESOURCE
      pos:
        line_end: 121
        line_start: 119
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 7, sizeof(privcmd_mmap_resource_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_PCIDEV_GET_GSI
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 10, sizeof(privcmd_pcidev_get_gsi_t))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_UNIMPLEMENTED
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
      type_or_value: _IOC(_IOC_NONE, 'P', 0xFF, 0)
    structs:
    - fields:
      - name: op
        type: __u64
      - name: arg[5]
        type: __u64
      item_type: struct
      name: privcmd_hypercall
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: va
        type: __u64
      - name: mfn
        type: __u64
      - name: npages
        type: __u64
      item_type: struct
      name: privcmd_mmap_entry
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: '*entry'
        type: privcmd_mmap_entry_t
      item_type: struct
      name: privcmd_mmap
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: addr
        type: __u64
      - name: '*arr'
        type: xen_pfn_t
      item_type: struct
      name: privcmd_mmapbatch
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: num
        type: unsigned int
      - name: dom
        type: domid_t
      - name: addr
        type: __u64
      - name: '*arr'
        type: xen_pfn_t
      - name: '*err'
        type: int
      item_type: struct
      name: privcmd_mmapbatch_v2
      pos:
        line_end: 75
        line_start: 69
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: '*uptr'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: privcmd_dm_op_buf
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: dom
        type: domid_t
      - name: num
        type: __u16
      - name: '*ubufs'
        type: privcmd_dm_op_buf_t
      item_type: struct
      name: privcmd_dm_op
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: dom
        type: domid_t
      - name: type
        type: __u32
      - name: id
        type: __u32
      - name: idx
        type: __u32
      - name: num
        type: __u64
      - name: addr
        type: __u64
      item_type: struct
      name: privcmd_mmap_resource
      pos:
        line_end: 95
        line_start: 88
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    - fields:
      - name: sbdf
        type: __u32
      - name: gsi
        type: __u32
      item_type: struct
      name: privcmd_pcidev_get_gsi
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/xen/tools/include/xen-sys/Linux/privcmd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/Linux/xenbus_dev.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_XENBUS_BACKEND_EVTCHN
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/xen/tools/include/xen-sys/Linux/xenbus_dev.h
      type_or_value: _IOC(_IOC_NONE, 'B', 0, 0)
    - item_type: preproc_def
      name: IOCTL_XENBUS_BACKEND_SETUP
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/xen/tools/include/xen-sys/Linux/xenbus_dev.h
      type_or_value: _IOC(_IOC_NONE, 'B', 1, 0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_GNTDEV_MAP_GRANT_REF
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
    - item_type: preproc_def
      name: IOCTL_GNTDEV_UNMAP_GRANT_REF
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
    - item_type: preproc_def
      name: IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR
      pos:
        line_end: 93
        line_start: 91
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
    - item_type: preproc_def
      name: IOCTL_GNTDEV_SET_MAX_GRANTS
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 3, sizeof(struct ioctl_gntdev_set_max_grants))
    - item_type: preproc_def
      name: IOCTL_GNTDEV_SET_UNMAP_NOTIFY
      pos:
        line_end: 131
        line_start: 129
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify))
    - item_type: preproc_def
      name: UNMAP_NOTIFY_CLEAR_BYTE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: UNMAP_NOTIFY_SEND_EVENT
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: IOCTL_GNTDEV_GRANT_COPY
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: _IOC(_IOC_NONE, 'G', 8, sizeof(struct ioctl_gntdev_grant_copy))
    - item_type: preproc_def
      name: GNTDEV_DMA_FLAG_WC
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GNTDEV_DMA_FLAG_COHERENT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS
      pos:
        line_end: 204
        line_start: 201
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: "_IOC(_IOC_NONE, 'G', 9, \\\n         sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs))"
    - item_type: preproc_def
      name: IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: "_IOC(_IOC_NONE, 'G', 10, \\\n         sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released))"
    - item_type: preproc_def
      name: IOCTL_GNTDEV_DMABUF_IMP_TO_REFS
      pos:
        line_end: 247
        line_start: 244
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: "_IOC(_IOC_NONE, 'G', 11, \\\n         sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs))"
    - item_type: preproc_def
      name: IOCTL_GNTDEV_DMABUF_IMP_RELEASE
      pos:
        line_end: 270
        line_start: 267
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
      type_or_value: "_IOC(_IOC_NONE, 'G', 12, \\\n         sizeof(struct ioctl_gntdev_dmabuf_imp_release))"
    structs:
    - fields:
      - name: domid
        type: uint32_t
      - name: ref
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_grant_ref
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: count
        type: uint32_t
      - name: pad
        type: uint32_t
      - name: index
        type: uint64_t
      - name: refs[1]
        type: struct ioctl_gntdev_grant_ref
      item_type: struct
      name: ioctl_gntdev_map_grant_ref
      pos:
        line_end: 61
        line_start: 50
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: index
        type: uint64_t
      - name: count
        type: uint32_t
      - name: pad
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_unmap_grant_ref
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: vaddr
        type: uint64_t
      - name: offset
        type: uint64_t
      - name: count
        type: uint32_t
      - name: pad
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_get_offset_for_vaddr
      pos:
        line_end: 103
        line_start: 93
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: count
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_set_max_grants
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: index
        type: uint64_t
      - name: action
        type: uint32_t
      - name: event_channel_port
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_unmap_notify
      pos:
        line_end: 143
        line_start: 131
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: source
        type: "union {\n        void *virt;\n        struct {\n            uint32_t
          ref;\n            uint16_t offset;\n            uint16_t domid;\n        }
          foreign;\n    }"
      - name: len
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: status
        type: int16_t
      item_type: struct
      name: ioctl_gntdev_grant_copy_segment
      pos:
        line_end: 162
        line_start: 150
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: count
        type: unsigned int
      - name: '*segments'
        type: struct ioctl_gntdev_grant_copy_segment
      item_type: struct
      name: ioctl_gntdev_grant_copy
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: flags
        type: uint32_t
      - name: count
        type: uint32_t
      - name: fd
        type: uint32_t
      - name: domid
        type: uint32_t
      - name: refs[1]
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_dmabuf_exp_from_refs
      pos:
        line_end: 218
        line_start: 204
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: fd
        type: uint32_t
      - name: wait_to_ms
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_dmabuf_exp_wait_released
      pos:
        line_end: 238
        line_start: 234
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: fd
        type: uint32_t
      - name: count
        type: uint32_t
      - name: domid
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: refs[1]
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_dmabuf_imp_to_refs
      pos:
        line_end: 260
        line_start: 247
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    - fields:
      - name: fd
        type: uint32_t
      - name: reserved
        type: uint32_t
      item_type: struct
      name: ioctl_gntdev_dmabuf_imp_release
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/xen/tools/include/xen-sys/Linux/gntdev.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_VIRQ
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_INTERDOMAIN
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_UNBOUND_PORT
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_UNBIND
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_NOTIFY
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_RESET
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 5, 0)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_RESTRICT_DOMID
      pos:
        line_end: 98
        line_start: 96
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 6, sizeof(struct ioctl_evtchn_restrict_domid))
    structs:
    - fields:
      - name: virq
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_virq
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_interdomain
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_unbound_port
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_unbind
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_notify
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    - fields:
      - name: domid
        type: domid_t
      item_type: struct
      name: ioctl_evtchn_restrict_domid
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/xen/tools/include/xen-sys/Linux/evtchn.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_GNTALLOC_ALLOC_GREF
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: _IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
    - item_type: preproc_def
      name: GNTALLOC_FLAG_WRITABLE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IOCTL_GNTALLOC_DEALLOC_GREF
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: _IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
    - item_type: preproc_def
      name: IOCTL_GNTALLOC_SET_UNMAP_NOTIFY
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: _IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntalloc_unmap_notify))
    - item_type: preproc_def
      name: UNMAP_NOTIFY_CLEAR_BYTE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: UNMAP_NOTIFY_SEND_EVENT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: domid
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: count
        type: uint32_t
      - name: index
        type: uint64_t
      - name: gref_ids[1]
        type: uint32_t
      item_type: struct
      name: ioctl_gntalloc_alloc_gref
      pos:
        line_end: 32
        line_start: 18
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
    - fields:
      - name: index
        type: uint64_t
      - name: count
        type: uint32_t
      item_type: struct
      name: ioctl_gntalloc_dealloc_gref
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
    - fields:
      - name: index
        type: uint64_t
      - name: action
        type: uint32_t
      - name: event_channel_port
        type: uint32_t
      item_type: struct
      name: ioctl_gntalloc_unmap_notify
      pos:
        line_end: 74
        line_start: 62
        source_file: /src/xen/tools/include/xen-sys/Linux/gntalloc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_HYPERCALL
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOWR('P', 0, privcmd_hypercall_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN_OLD
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IO('P', 1)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOW('P', 2, privcmd_mmap_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOW('P', 3, privcmd_mmapbatch_t)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOR('P', 4, unsigned long)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_INITDOMAIN_EVTCHN
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOR('P', 5, int)
    - item_type: preproc_def
      name: EVTCHN_RESET
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IO('E', 1)
    - item_type: preproc_def
      name: EVTCHN_BIND
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOW('E', 2, unsigned long)
    - item_type: preproc_def
      name: EVTCHN_UNBIND
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
      type_or_value: _IOW('E', 3, unsigned long)
    structs:
    - fields:
      - name: op
        type: unsigned long
      - name: arg[5]
        type: unsigned long
      - name: retval
        type: long
      item_type: struct
      name: privcmd_hypercall
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
    - fields:
      - name: va
        type: unsigned long
      - name: mfn
        type: unsigned long
      - name: npages
        type: unsigned long
      item_type: struct
      name: privcmd_mmap_entry
      pos:
        line_end: 45
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: '*entry'
        type: privcmd_mmap_entry_t
      item_type: struct
      name: privcmd_mmap
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: addr
        type: unsigned long
      - name: '*arr'
        type: unsigned long
      item_type: struct
      name: privcmd_mmapbatch
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
    - fields:
      - name: op
        type: unsigned long
      - name: '*buf'
        type: void
      - name: buf_size
        type: int
      item_type: struct
      name: privcmd_blkmsg
      pos:
        line_end: 65
        line_start: 60
        source_file: /src/xen/tools/include/xen-sys/NetBSD/privcmd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_VIRQ
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IOWR('E', 4, struct ioctl_evtchn_bind_virq)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_INTERDOMAIN
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IOWR('E', 5, struct ioctl_evtchn_bind_interdomain)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_UNBOUND_PORT
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IOWR('E', 6, struct ioctl_evtchn_bind_unbound_port)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_UNBIND
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IOW('E', 7, struct ioctl_evtchn_unbind)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_NOTIFY
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IOW('E', 8, struct ioctl_evtchn_notify)
    - item_type: preproc_def
      name: IOCTL_EVTCHN_RESET
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
      type_or_value: _IO('E', 9)
    structs:
    - fields:
      - name: virq
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_virq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_interdomain
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_unbound_port
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_unbind
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_notify
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/NetBSD/evtchn.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __PRIVCMD_IOC
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
      type_or_value: (('p'<<24)|('r'<<16)|('v'<<8))
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_HYPERCALL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
      type_or_value: (__PRIVCMD_IOC|0)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAP
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
      type_or_value: (__PRIVCMD_IOC|1)
    - item_type: preproc_def
      name: IOCTL_PRIVCMD_MMAPBATCH
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
      type_or_value: (__PRIVCMD_IOC|2)
    structs:
    - fields:
      - name: op
        type: unsigned long
      - name: arg[5]
        type: unsigned long
      item_type: struct
      name: __privcmd_hypercall
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
    - fields:
      - name: va
        type: unsigned long
      - name: mfn
        type: unsigned long
      - name: npages
        type: unsigned long
      item_type: struct
      name: __privcmd_mmap_entry
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: '*entry'
        type: privcmd_mmap_entry_t
      item_type: struct
      name: __privcmd_mmap
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
    - fields:
      - name: num
        type: int
      - name: dom
        type: domid_t
      - name: addr
        type: unsigned long
      - name: '*arr'
        type: unsigned long
      item_type: struct
      name: __privcmd_mmapbatch
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/xen/tools/include/xen-sys/SunOS/privcmd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/include/xen-sys/SunOS/xenbus.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_XENBUS_XENSTORE_EVTCHN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/include/xen-sys/SunOS/xenbus.h
      type_or_value: ('X' << 8)
    - item_type: preproc_def
      name: IOCTL_XENBUS_NOTIFY_UP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/include/xen-sys/SunOS/xenbus.h
      type_or_value: ('U' << 8)
    structs: []
    typedefs: []
    union: []
- function_names:
  - _IOC
  source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IOC_NONE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_VIRQ
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 0, sizeof(struct ioctl_evtchn_bind_virq))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_INTERDOMAIN
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 1, sizeof(struct ioctl_evtchn_bind_interdomain))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_BIND_UNBOUND_PORT
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 2, sizeof(struct ioctl_evtchn_bind_unbound_port))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_UNBIND
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 3, sizeof(struct ioctl_evtchn_unbind))
    - item_type: preproc_def
      name: IOCTL_EVTCHN_NOTIFY
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
      type_or_value: _IOC(_IOC_NONE, 'E', 4, sizeof(struct ioctl_evtchn_notify))
    structs:
    - fields:
      - name: virq
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_virq
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_interdomain
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    - fields:
      - name: remote_domain
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_bind_unbound_port
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_unbind
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    - fields:
      - name: port
        type: unsigned int
      item_type: struct
      name: ioctl_evtchn_notify
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/xen/tools/include/xen-sys/SunOS/evtchn.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOWHEAP_PHYSICAL_ADDRESS
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: LOWHEAP_SIZE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x00070000'
    - item_type: preproc_def
      name: OPTIONROM_PHYSICAL_ADDRESS
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000C8000'
    - item_type: preproc_def
      name: OPTIONROM_PHYSICAL_END
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000EA000'
    - item_type: preproc_def
      name: BIOS_INFO_PHYSICAL_ADDRESS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000EA000'
    - item_type: preproc_def
      name: ACPI_PHYSICAL_ADDRESS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000EA020'
    - item_type: preproc_def
      name: E820_PHYSICAL_ADDRESS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000EA100'
    - item_type: preproc_def
      name: SMBIOS_PHYSICAL_ADDRESS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000EB000'
    - item_type: preproc_def
      name: SMBIOS_PHYSICAL_END
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000F0000'
    - item_type: preproc_def
      name: ROMBIOS_PHYSICAL_ADDRESS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x000F0000'
    - item_type: preproc_def
      name: E820_NR_OFFSET
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: E820_OFFSET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: E820_NR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: ((uint16_t *)(E820_PHYSICAL_ADDRESS + E820_NR_OFFSET))
    - item_type: preproc_def
      name: E820
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: ((struct e820entry *)(E820_PHYSICAL_ADDRESS + E820_OFFSET))
    - item_type: preproc_def
      name: XEN_PF_IOBASE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PFFLAG_ROM_LOCK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: BIOSINFO_OFF_bios32_entry
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/rombios/config.h
      type_or_value: '0'
    structs:
    - fields:
      - name: bios32_entry
        type: uint32_t
      item_type: struct
      name: rombios_info
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/xen/tools/firmware/rombios/config.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/32bitprotos.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - printf
  - BX_DEBUG
  - BX_INFO
  - BX_PANIC
  source_file: /src/xen/tools/firmware/rombios/rombios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BX_ROMBIOS32
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_ROMBIOS32
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_ROMBIOS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PANIC_PORT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: PANIC_PORT2
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0x401'
    - item_type: preproc_def
      name: INFO_PORT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0x402'
    - item_type: preproc_def
      name: DEBUG_PORT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0x403'
    - item_type: preproc_def
      name: BIOS_PRINTF_HALT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BIOS_PRINTF_SCREEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '2'
    - item_type: preproc_def
      name: BIOS_PRINTF_INFO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '4'
    - item_type: preproc_def
      name: BIOS_PRINTF_DEBUG
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '8'
    - item_type: preproc_def
      name: BIOS_PRINTF_ALL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO)
    - item_type: preproc_def
      name: BIOS_PRINTF_DEBHALT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO | BIOS_PRINTF_HALT)
    - item_type: preproc_def
      name: ACPI_DATA_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: 0x00010000L
    - item_type: preproc_def
      name: PM_IO_BASE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0xb000'
    - item_type: preproc_def
      name: SMB_IO_BASE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '0xb100'
    - item_type: preproc_def
      name: BX_APPNAME
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '"HVMAssist"'
    - item_type: preproc_def
      name: BX_APPNAME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '"QEMU"'
    - item_type: preproc_def
      name: BX_APPNAME
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '"Plex86"'
    - item_type: preproc_def
      name: BX_APPNAME
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/firmware/rombios/rombios.h
      type_or_value: '"Bochs"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_ARG_BYTES
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '32'
    - item_type: preproc_def
      name: REAL_MODE_CODE_OFFSET
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '0xf0000'
    - item_type: preproc_def
      name: PM_32BIT_CS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: (gdt_entry_pm_32bit_cs - gdt_base)
    - item_type: preproc_def
      name: PM_16BIT_CS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: (gdt_entry_pm_16bit_cs - gdt_base)
    - item_type: preproc_def
      name: PM_32BIT_DS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: (gdt_entry_pm_32bit_ds - gdt_base)
    - item_type: preproc_def
      name: PM_16BIT_DS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: (gdt_entry_pm_16bit_ds - gdt_base)
    - item_type: preproc_def
      name: esp_off
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ss_off
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '4'
    - item_type: preproc_def
      name: es_off
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '6'
    - item_type: preproc_def
      name: ds_off
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '8'
    - item_type: preproc_def
      name: flags_off
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '10'
    - item_type: preproc_def
      name: retaddr_off
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '12'
    - item_type: preproc_def
      name: args_off
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/firmware/rombios/32bitgateway.c
      type_or_value: '14'
    structs: []
    typedefs: []
    union: []
- function_names:
  - X
  - SetCF
  - SetZF
  - ClearCF
  - ClearZF
  - GetCF
  - BX_DEBUG_ATA
  - BX_DEBUG_INT13_HD
  - BX_DEBUG_INT13_CD
  - BX_DEBUG_INT13_ET
  - BX_DEBUG_INT13_FL
  - BX_DEBUG_INT15
  - BX_DEBUG_INT16
  - BX_DEBUG_INT1A
  - BX_DEBUG_INT74
  - SET_AL
  - SET_BL
  - SET_CL
  - SET_DL
  - SET_AH
  - SET_BH
  - SET_CH
  - SET_DH
  - GET_AL
  - GET_BL
  - GET_CL
  - GET_DL
  - GET_AH
  - GET_BH
  - GET_CH
  - GET_DH
  - GET_ELDL
  - GET_ELDH
  - SET_CF
  - CLEAR_CF
  - GET_CF
  - SET_ZF
  - CLEAR_ZF
  - GET_ZF
  - init_rtc
  - rtc_updating
  - get_CS
  - get_SS
  - fixup_base_mem_in_k
  - enable_rom_write_access
  - disable_rom_write_access
  - check_for_keystroke
  - get_keystroke
  - keyboard_init
  - machine_reset
  - clobber_entry_point
  - s3_resume_panic
  - print_bios_banner
  - init_boot_vectors
  - interactive_bootkey
  - nmi_handler_msg
  - int18_panic_msg
  - log_bios_start
  - debugger_on
  - debugger_off
  - s3_resume
  - ata_init
  - ata_detect
  - ata_cmd_non_data
  - cdemu_init
  - cdemu_isactive
  - cdemu_emulated_drive
  - cdrom_boot
  - SET_DISK_RET_STATUS
  - floppy_reset_controller
  - do
  - do
  - do
  - do
  source_file: /src/xen/tools/firmware/rombios/rombios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uint8_t
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: unsigned char
    - item_type: preproc_def
      name: uint16_t
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: unsigned short
    - item_type: preproc_def
      name: uint32_t
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: DEBUG_ATA
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT13_HD
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT13_CD
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT13_ET
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT13_FL
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT15
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT16
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT1A
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_INT74
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_APM
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BX_CPU
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BX_USE_PS2_MOUSE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_CALL_INT15_4F
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_USE_EBDA
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_SUPPORT_FLOPPY
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_FLOPPY_ON_CNT
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '37   '
    - item_type: preproc_def
      name: BX_PCIBIOS
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_APM
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_USE_ATADRV
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_ELTORITO_BOOT
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BX_TCGBIOS
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: BX_PMM
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: BX_MAX_ATA_INTERFACES
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BX_MAX_ATA_DEVICES
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: (BX_MAX_ATA_INTERFACES*2)
    - item_type: preproc_def
      name: BX_VIRTUAL_PORTS
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: BX_DEBUG_SERIAL
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: SYS_MODEL_ID
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xFC'
    - item_type: preproc_def
      name: SYS_SUBMODEL_ID
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BIOS_REVISION
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BIOS_CONFIG_TABLE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xe6f5'
    - item_type: preproc_def
      name: BIOS_BUILD_DATE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '"06/23/99"'
    - item_type: preproc_def
      name: E820_SEG
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: (Bit16u)(E820_PHYSICAL_ADDRESS >> 4)
    - item_type: preproc_def
      name: EBDA_SEG
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x9FC0'
    - item_type: preproc_def
      name: EBDA_SIZE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 1              // In KiB
    - item_type: preproc_def
      name: BASE_MEM_IN_K
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: (640 - EBDA_SIZE)
    - item_type: preproc_def
      name: IPL_TABLE_OFFSET
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x0300  '
    - item_type: preproc_def
      name: IPL_TABLE_ENTRIES
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '8'
    - item_type: preproc_def
      name: IPL_COUNT_OFFSET
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x0380  '
    - item_type: preproc_def
      name: IPL_SEQUENCE_OFFSET
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x0382  '
    - item_type: preproc_def
      name: IPL_BOOTFIRST_OFFSET
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x0384  '
    - item_type: preproc_def
      name: IPL_SIZE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: IPL_TYPE_FLOPPY
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: IPL_TYPE_HARDDISK
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: IPL_TYPE_CDROM
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: IPL_TYPE_BEV
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PCI_FIXED_HOST_BRIDGE
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x12378086 ;; i440FX PCI bridge
    - item_type: preproc_def
      name: ASM_START
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '#asm'
    - item_type: preproc_def
      name: ASM_END
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '#endasm'
    - item_type: preproc_def
      name: BiosData
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: ((bios_data_t  *) 0)
    - item_type: preproc_def
      name: EBDA_CMOS_SHUTDOWN_STATUS_OFFSET
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EbdaData
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: ((ebda_data_t *) 0)
    - item_type: preproc_def
      name: Int13Ext
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: ((int13ext_t *) 0)
    - item_type: preproc_def
      name: Int13DPT
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: ((dpt_t *) 0)
    - item_type: preproc_def
      name: BIOS_COPYRIGHT_STRING
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '"(c) 2002 MandrakeSoft S.A. Written by Kevin Lawton & the Bochs
        team."'
    - item_type: preproc_def
      name: UNSUPPORTED_FUNCTION
      pos:
        line_end: 1045
        line_start: 1044
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: none
      pos:
        line_end: 1047
        line_start: 1046
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_SCAN_CODE
      pos:
        line_end: 1048
        line_start: 1047
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x58'
    - item_type: preproc_def
      name: BX_DEBUG_PORT
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03f8'
    - item_type: preproc_def
      name: UART_RBR
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UART_THR
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UART_IER
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: UART_IIR
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: UART_FCR
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: UART_LCR
      pos:
        line_end: 1444
        line_start: 1443
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: UART_MCR
      pos:
        line_end: 1445
        line_start: 1444
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: UART_DLL
      pos:
        line_end: 1446
        line_start: 1445
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UART_DLM
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: UART_LSR
      pos:
        line_end: 1450
        line_start: 1449
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: UART_MSR
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: UART_SCR
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: CMOS_SHUTDOWN_S3
      pos:
        line_end: 1959
        line_start: 1958
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xFE'
    - item_type: preproc_def
      name: ATA_CB_DATA
      pos:
        line_end: 2343
        line_start: 2342
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0   // data reg         in/out pio_base_addr1+0
    - item_type: preproc_def
      name: ATA_CB_ERR
      pos:
        line_end: 2344
        line_start: 2343
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 1   // error            in     pio_base_addr1+1
    - item_type: preproc_def
      name: ATA_CB_FR
      pos:
        line_end: 2345
        line_start: 2344
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 1   // feature reg         out pio_base_addr1+1
    - item_type: preproc_def
      name: ATA_CB_SC
      pos:
        line_end: 2346
        line_start: 2345
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 2   // sector count     in/out pio_base_addr1+2
    - item_type: preproc_def
      name: ATA_CB_SN
      pos:
        line_end: 2347
        line_start: 2346
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 3   // sector number    in/out pio_base_addr1+3
    - item_type: preproc_def
      name: ATA_CB_CL
      pos:
        line_end: 2348
        line_start: 2347
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 4   // cylinder low     in/out pio_base_addr1+4
    - item_type: preproc_def
      name: ATA_CB_CH
      pos:
        line_end: 2349
        line_start: 2348
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 5   // cylinder high    in/out pio_base_addr1+5
    - item_type: preproc_def
      name: ATA_CB_DH
      pos:
        line_end: 2350
        line_start: 2349
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 6   // device head      in/out pio_base_addr1+6
    - item_type: preproc_def
      name: ATA_CB_STAT
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 7   // primary status   in     pio_base_addr1+7
    - item_type: preproc_def
      name: ATA_CB_CMD
      pos:
        line_end: 2352
        line_start: 2351
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 7   // command             out pio_base_addr1+7
    - item_type: preproc_def
      name: ATA_CB_ASTAT
      pos:
        line_end: 2353
        line_start: 2352
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 6   // alternate status in     pio_base_addr2+6
    - item_type: preproc_def
      name: ATA_CB_DC
      pos:
        line_end: 2354
        line_start: 2353
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 6   // device control      out pio_base_addr2+6
    - item_type: preproc_def
      name: ATA_CB_DA
      pos:
        line_end: 2355
        line_start: 2354
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 7   // device address   in     pio_base_addr2+7
    - item_type: preproc_def
      name: ATA_CB_ER_ICRC
      pos:
        line_end: 2357
        line_start: 2356
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x80    // ATA Ultra DMA bad CRC
    - item_type: preproc_def
      name: ATA_CB_ER_BBK
      pos:
        line_end: 2358
        line_start: 2357
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x80    // ATA bad block
    - item_type: preproc_def
      name: ATA_CB_ER_UNC
      pos:
        line_end: 2359
        line_start: 2358
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x40    // ATA uncorrected error
    - item_type: preproc_def
      name: ATA_CB_ER_MC
      pos:
        line_end: 2360
        line_start: 2359
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x20    // ATA media change
    - item_type: preproc_def
      name: ATA_CB_ER_IDNF
      pos:
        line_end: 2361
        line_start: 2360
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x10    // ATA id not found
    - item_type: preproc_def
      name: ATA_CB_ER_MCR
      pos:
        line_end: 2362
        line_start: 2361
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x08    // ATA media change request
    - item_type: preproc_def
      name: ATA_CB_ER_ABRT
      pos:
        line_end: 2363
        line_start: 2362
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x04    // ATA command aborted
    - item_type: preproc_def
      name: ATA_CB_ER_NTK0
      pos:
        line_end: 2364
        line_start: 2363
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x02    // ATA track 0 not found
    - item_type: preproc_def
      name: ATA_CB_ER_NDAM
      pos:
        line_end: 2365
        line_start: 2364
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x01    // ATA address mark not found
    - item_type: preproc_def
      name: ATA_CB_ER_P_SNSKEY
      pos:
        line_end: 2367
        line_start: 2366
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0xf0   // ATAPI sense key (mask)
    - item_type: preproc_def
      name: ATA_CB_ER_P_MCR
      pos:
        line_end: 2368
        line_start: 2367
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x08   // ATAPI Media Change Request
    - item_type: preproc_def
      name: ATA_CB_ER_P_ABRT
      pos:
        line_end: 2369
        line_start: 2368
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x04   // ATAPI command abort
    - item_type: preproc_def
      name: ATA_CB_ER_P_EOM
      pos:
        line_end: 2370
        line_start: 2369
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x02   // ATAPI End of Media
    - item_type: preproc_def
      name: ATA_CB_ER_P_ILI
      pos:
        line_end: 2371
        line_start: 2370
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x01   // ATAPI Illegal Length Indication
    - item_type: preproc_def
      name: ATA_CB_SC_P_TAG
      pos:
        line_end: 2374
        line_start: 2373
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0xf8   // ATAPI tag (mask)
    - item_type: preproc_def
      name: ATA_CB_SC_P_REL
      pos:
        line_end: 2375
        line_start: 2374
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x04   // ATAPI release
    - item_type: preproc_def
      name: ATA_CB_SC_P_IO
      pos:
        line_end: 2376
        line_start: 2375
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x02   // ATAPI I/O
    - item_type: preproc_def
      name: ATA_CB_SC_P_CD
      pos:
        line_end: 2377
        line_start: 2376
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x01   // ATAPI C/D
    - item_type: preproc_def
      name: ATA_CB_DH_DEV0
      pos:
        line_end: 2380
        line_start: 2379
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0xa0    // select device 0
    - item_type: preproc_def
      name: ATA_CB_DH_DEV1
      pos:
        line_end: 2381
        line_start: 2380
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0xb0    // select device 1
    - item_type: preproc_def
      name: ATA_CB_DH_LBA
      pos:
        line_end: 2382
        line_start: 2381
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x40    // use LBA
    - item_type: preproc_def
      name: ATA_CB_STAT_BSY
      pos:
        line_end: 2385
        line_start: 2384
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x80  // busy
    - item_type: preproc_def
      name: ATA_CB_STAT_RDY
      pos:
        line_end: 2386
        line_start: 2385
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x40  // ready
    - item_type: preproc_def
      name: ATA_CB_STAT_DF
      pos:
        line_end: 2387
        line_start: 2386
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x20  // device fault
    - item_type: preproc_def
      name: ATA_CB_STAT_WFT
      pos:
        line_end: 2388
        line_start: 2387
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x20  // write fault (old name)
    - item_type: preproc_def
      name: ATA_CB_STAT_SKC
      pos:
        line_end: 2389
        line_start: 2388
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x10  // seek complete
    - item_type: preproc_def
      name: ATA_CB_STAT_SERV
      pos:
        line_end: 2390
        line_start: 2389
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x10  // service
    - item_type: preproc_def
      name: ATA_CB_STAT_DRQ
      pos:
        line_end: 2391
        line_start: 2390
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x08  // data request
    - item_type: preproc_def
      name: ATA_CB_STAT_CORR
      pos:
        line_end: 2392
        line_start: 2391
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x04  // corrected
    - item_type: preproc_def
      name: ATA_CB_STAT_IDX
      pos:
        line_end: 2393
        line_start: 2392
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x02  // index
    - item_type: preproc_def
      name: ATA_CB_STAT_ERR
      pos:
        line_end: 2394
        line_start: 2393
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x01  // error (ATA)
    - item_type: preproc_def
      name: ATA_CB_STAT_CHK
      pos:
        line_end: 2395
        line_start: 2394
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x01  // check (ATAPI)
    - item_type: preproc_def
      name: ATA_CB_DC_HD15
      pos:
        line_end: 2398
        line_start: 2397
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x08  // bit should always be set to one
    - item_type: preproc_def
      name: ATA_CB_DC_SRST
      pos:
        line_end: 2399
        line_start: 2398
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x04  // soft reset
    - item_type: preproc_def
      name: ATA_CB_DC_NIEN
      pos:
        line_end: 2400
        line_start: 2399
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 0x02  // disable interrupts
    - item_type: preproc_def
      name: ATA_CMD_CFA_ERASE_SECTORS
      pos:
        line_end: 2403
        line_start: 2402
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: ATA_CMD_CFA_REQUEST_EXT_ERR_CODE
      pos:
        line_end: 2404
        line_start: 2403
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ATA_CMD_CFA_TRANSLATE_SECTOR
      pos:
        line_end: 2405
        line_start: 2404
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x87'
    - item_type: preproc_def
      name: ATA_CMD_CFA_WRITE_MULTIPLE_WO_ERASE
      pos:
        line_end: 2406
        line_start: 2405
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xCD'
    - item_type: preproc_def
      name: ATA_CMD_CFA_WRITE_SECTORS_WO_ERASE
      pos:
        line_end: 2407
        line_start: 2406
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x38'
    - item_type: preproc_def
      name: ATA_CMD_CHECK_POWER_MODE1
      pos:
        line_end: 2408
        line_start: 2407
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE5'
    - item_type: preproc_def
      name: ATA_CMD_CHECK_POWER_MODE2
      pos:
        line_end: 2409
        line_start: 2408
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x98'
    - item_type: preproc_def
      name: ATA_CMD_DEVICE_RESET
      pos:
        line_end: 2410
        line_start: 2409
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ATA_CMD_EXECUTE_DEVICE_DIAGNOSTIC
      pos:
        line_end: 2411
        line_start: 2410
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: ATA_CMD_FLUSH_CACHE
      pos:
        line_end: 2412
        line_start: 2411
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE7'
    - item_type: preproc_def
      name: ATA_CMD_FORMAT_TRACK
      pos:
        line_end: 2413
        line_start: 2412
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x50'
    - item_type: preproc_def
      name: ATA_CMD_IDENTIFY_DEVICE
      pos:
        line_end: 2414
        line_start: 2413
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xEC'
    - item_type: preproc_def
      name: ATA_CMD_IDENTIFY_DEVICE_PACKET
      pos:
        line_end: 2415
        line_start: 2414
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xA1'
    - item_type: preproc_def
      name: ATA_CMD_IDENTIFY_PACKET_DEVICE
      pos:
        line_end: 2416
        line_start: 2415
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xA1'
    - item_type: preproc_def
      name: ATA_CMD_IDLE1
      pos:
        line_end: 2417
        line_start: 2416
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE3'
    - item_type: preproc_def
      name: ATA_CMD_IDLE2
      pos:
        line_end: 2418
        line_start: 2417
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x97'
    - item_type: preproc_def
      name: ATA_CMD_IDLE_IMMEDIATE1
      pos:
        line_end: 2419
        line_start: 2418
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE1'
    - item_type: preproc_def
      name: ATA_CMD_IDLE_IMMEDIATE2
      pos:
        line_end: 2420
        line_start: 2419
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x95'
    - item_type: preproc_def
      name: ATA_CMD_INITIALIZE_DRIVE_PARAMETERS
      pos:
        line_end: 2421
        line_start: 2420
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x91'
    - item_type: preproc_def
      name: ATA_CMD_INITIALIZE_DEVICE_PARAMETERS
      pos:
        line_end: 2422
        line_start: 2421
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x91'
    - item_type: preproc_def
      name: ATA_CMD_NOP
      pos:
        line_end: 2423
        line_start: 2422
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_CMD_PACKET
      pos:
        line_end: 2424
        line_start: 2423
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: ATA_CMD_READ_BUFFER
      pos:
        line_end: 2425
        line_start: 2424
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE4'
    - item_type: preproc_def
      name: ATA_CMD_READ_DMA
      pos:
        line_end: 2426
        line_start: 2425
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC8'
    - item_type: preproc_def
      name: ATA_CMD_READ_DMA_QUEUED
      pos:
        line_end: 2427
        line_start: 2426
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC7'
    - item_type: preproc_def
      name: ATA_CMD_READ_MULTIPLE
      pos:
        line_end: 2428
        line_start: 2427
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC4'
    - item_type: preproc_def
      name: ATA_CMD_READ_SECTORS
      pos:
        line_end: 2429
        line_start: 2428
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ATA_CMD_READ_VERIFY_SECTORS
      pos:
        line_end: 2430
        line_start: 2429
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: ATA_CMD_RECALIBRATE
      pos:
        line_end: 2431
        line_start: 2430
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: ATA_CMD_REQUEST_SENSE
      pos:
        line_end: 2432
        line_start: 2431
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ATA_CMD_SEEK
      pos:
        line_end: 2433
        line_start: 2432
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x70'
    - item_type: preproc_def
      name: ATA_CMD_SET_FEATURES
      pos:
        line_end: 2434
        line_start: 2433
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xEF'
    - item_type: preproc_def
      name: ATA_CMD_SET_MULTIPLE_MODE
      pos:
        line_end: 2435
        line_start: 2434
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC6'
    - item_type: preproc_def
      name: ATA_CMD_SLEEP1
      pos:
        line_end: 2436
        line_start: 2435
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE6'
    - item_type: preproc_def
      name: ATA_CMD_SLEEP2
      pos:
        line_end: 2437
        line_start: 2436
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x99'
    - item_type: preproc_def
      name: ATA_CMD_STANDBY1
      pos:
        line_end: 2438
        line_start: 2437
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE2'
    - item_type: preproc_def
      name: ATA_CMD_STANDBY2
      pos:
        line_end: 2439
        line_start: 2438
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x96'
    - item_type: preproc_def
      name: ATA_CMD_STANDBY_IMMEDIATE1
      pos:
        line_end: 2440
        line_start: 2439
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE0'
    - item_type: preproc_def
      name: ATA_CMD_STANDBY_IMMEDIATE2
      pos:
        line_end: 2441
        line_start: 2440
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x94'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_BUFFER
      pos:
        line_end: 2442
        line_start: 2441
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xE8'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_DMA
      pos:
        line_end: 2443
        line_start: 2442
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xCA'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_DMA_QUEUED
      pos:
        line_end: 2444
        line_start: 2443
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xCC'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_MULTIPLE
      pos:
        line_end: 2445
        line_start: 2444
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xC5'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_SECTORS
      pos:
        line_end: 2446
        line_start: 2445
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: ATA_CMD_WRITE_VERIFY
      pos:
        line_end: 2447
        line_start: 2446
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x3C'
    - item_type: preproc_def
      name: ATA_IFACE_NONE
      pos:
        line_end: 2449
        line_start: 2448
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_IFACE_ISA
      pos:
        line_end: 2450
        line_start: 2449
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_IFACE_PCI
      pos:
        line_end: 2451
        line_start: 2450
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATA_TYPE_NONE
      pos:
        line_end: 2453
        line_start: 2452
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_TYPE_UNKNOWN
      pos:
        line_end: 2454
        line_start: 2453
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATA_TYPE_ATA
      pos:
        line_end: 2455
        line_start: 2454
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ATA_TYPE_ATAPI
      pos:
        line_end: 2456
        line_start: 2455
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ATA_DEVICE_NONE
      pos:
        line_end: 2458
        line_start: 2457
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_DEVICE_HD
      pos:
        line_end: 2459
        line_start: 2458
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: ATA_DEVICE_CDROM
      pos:
        line_end: 2460
        line_start: 2459
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: ATA_MODE_NONE
      pos:
        line_end: 2462
        line_start: 2461
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_MODE_PIO16
      pos:
        line_end: 2463
        line_start: 2462
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_MODE_PIO32
      pos:
        line_end: 2464
        line_start: 2463
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATA_MODE_ISADMA
      pos:
        line_end: 2465
        line_start: 2464
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ATA_MODE_PCIDMA
      pos:
        line_end: 2466
        line_start: 2465
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ATA_MODE_USEIRQ
      pos:
        line_end: 2467
        line_start: 2466
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: ATA_TRANSLATION_NONE
      pos:
        line_end: 2469
        line_start: 2468
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ATA_TRANSLATION_LBA
      pos:
        line_end: 2470
        line_start: 2469
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ATA_TRANSLATION_LARGE
      pos:
        line_end: 2471
        line_start: 2470
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ATA_TRANSLATION_RECHS
      pos:
        line_end: 2472
        line_start: 2471
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ATA_DATA_NO
      pos:
        line_end: 2474
        line_start: 2473
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ATA_DATA_IN
      pos:
        line_end: 2475
        line_start: 2474
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ATA_DATA_OUT
      pos:
        line_end: 2476
        line_start: 2475
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TIMEOUT
      pos:
        line_end: 2524
        line_start: 2523
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BSY
      pos:
        line_end: 2525
        line_start: 2524
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NOT_BSY
      pos:
        line_end: 2526
        line_start: 2525
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NOT_BSY_DRQ
      pos:
        line_end: 2527
        line_start: 2526
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '3'
    - item_type: preproc_def
      name: NOT_BSY_NOT_DRQ
      pos:
        line_end: 2528
        line_start: 2527
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '4'
    - item_type: preproc_def
      name: NOT_BSY_RDY
      pos:
        line_end: 2529
        line_start: 2528
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: '5'
    - item_type: preproc_def
      name: IDE_TIMEOUT
      pos:
        line_end: 2531
        line_start: 2530
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type_or_value: 32000u //32 seconds max for IDE ops
    structs:
    - fields:
      - name: heads
        type: Bit16u
      - name: cylinders
        type: Bit16u
      - name: spt
        type: Bit16u
      item_type: struct
      name: chs_t
      pos:
        line_end: 648
        line_start: 644
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: iobase1
        type: Bit16u
      - name: iobase2
        type: Bit16u
      - name: prefix
        type: Bit8u
      - name: unused
        type: Bit8u
      - name: irq
        type: Bit8u
      - name: blkcount
        type: Bit8u
      - name: dma
        type: Bit8u
      - name: pio
        type: Bit8u
      - name: options
        type: Bit16u
      - name: reserved
        type: Bit16u
      - name: revision
        type: Bit8u
      - name: checksum
        type: Bit8u
      item_type: struct
      name: dpte_t
      pos:
        line_end: 664
        line_start: 651
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: iface
        type: Bit8u
      - name: iobase1
        type: Bit16u
      - name: iobase2
        type: Bit16u
      - name: irq
        type: Bit8u
      item_type: struct
      name: ata_channel_t
      pos:
        line_end: 671
        line_start: 666
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: type
        type: Bit8u
      - name: device
        type: Bit8u
      - name: removable
        type: Bit8u
      - name: lock
        type: Bit8u
      - name: mode
        type: Bit8u
      - name: blksize
        type: Bit16u
      - name: translation
        type: Bit8u
      - name: lchs
        type: chs_t
      - name: pchs
        type: chs_t
      - name: sectors_low
        type: Bit32u
      - name: sectors_high
        type: Bit32u
      item_type: struct
      name: ata_device_t
      pos:
        line_end: 687
        line_start: 673
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: channels[BX_MAX_ATA_INTERFACES]
        type: ata_channel_t
      - name: devices[BX_MAX_ATA_DEVICES]
        type: ata_device_t
      - name: hdcount
        type: Bit8u
      - name: cdcount
        type: Bit8u
      - name: dpte
        type: dpte_t
      - name: trsfsectors
        type: Bit16u
      - name: trsfbytes
        type: Bit32u
      item_type: struct
      name: ata_t
      pos:
        line_end: 709
        line_start: 689
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: active
        type: Bit8u
      - name: media
        type: Bit8u
      - name: emulated_drive
        type: Bit8u
      - name: controller_index
        type: Bit8u
      - name: device_spec
        type: Bit16u
      - name: ilba
        type: Bit32u
      - name: buffer_segment
        type: Bit16u
      - name: load_segment
        type: Bit16u
      - name: sector_count
        type: Bit16u
      - name: vdevice
        type: chs_t
      item_type: struct
      name: cdemu_t
      pos:
        line_end: 726
        line_start: 713
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: ebda_size
        type: unsigned char
      - name: cmos_shutdown_status
        type: unsigned char
      - name: filler1[0x3B]
        type: unsigned char
      - name: fdpt0[0x10]
        type: unsigned char
      - name: fdpt1[0x10]
        type: unsigned char
      - name: filler2[0xC4]
        type: unsigned char
      - name: ata
        type: ata_t
      item_type: struct
      name: ebda_data_t
      pos:
        line_end: 757
        line_start: 739
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: size
        type: Bit8u
      - name: reserved
        type: Bit8u
      - name: count
        type: Bit16u
      - name: offset
        type: Bit16u
      - name: segment
        type: Bit16u
      - name: lba1
        type: Bit32u
      - name: lba2
        type: Bit32u
      item_type: struct
      name: int13ext_t
      pos:
        line_end: 771
        line_start: 763
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: size
        type: Bit16u
      - name: infos
        type: Bit16u
      - name: cylinders
        type: Bit32u
      - name: heads
        type: Bit32u
      - name: spt
        type: Bit32u
      - name: sector_count1
        type: Bit32u
      - name: sector_count2
        type: Bit32u
      - name: blksize
        type: Bit16u
      - name: dpte_offset
        type: Bit16u
      - name: dpte_segment
        type: Bit16u
      - name: key
        type: Bit16u
      - name: dpi_length
        type: Bit8u
      - name: reserved1
        type: Bit8u
      - name: reserved2
        type: Bit16u
      - name: host_bus[4]
        type: Bit8u
      - name: iface_type[8]
        type: Bit8u
      - name: iface_path[8]
        type: Bit8u
      - name: device_path[8]
        type: Bit8u
      - name: reserved3
        type: Bit8u
      - name: checksum
        type: Bit8u
      item_type: struct
      name: dpt_t
      pos:
        line_end: 797
        line_start: 776
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: u
        type: "union {\n    struct {\n      Bit16u di, si, bp, sp;\n      Bit16u bx,
          dx, cx, ax;\n      } r16;\n    struct {\n      Bit16u filler[4];\n      Bit8u
          \ bl, bh, dl, dh, cl, ch, al, ah;\n      } r8;\n    }"
      item_type: struct
      name: pusha_regs_t
      pos:
        line_end: 814
        line_start: 803
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: u
        type: "union {\n  struct {\n    Bit32u edi, esi, ebp, esp;\n    Bit32u ebx,
          edx, ecx, eax;\n    } r32;\n  struct {\n    Bit16u di, filler1, si, filler2,
          bp, filler3, sp, filler4;\n    Bit16u bx, filler5, dx, filler6, cx, filler7,
          ax, filler8;\n    } r16;\n  struct {\n    Bit32u filler[4];\n    Bit8u  bl,
          bh;\n    Bit16u filler1;\n    Bit8u  dl, dh;\n    Bit16u filler2;\n    Bit8u
          \ cl, ch;\n    Bit16u filler3;\n    Bit8u  al, ah;\n    Bit16u filler4;\n
          \   } r8;\n  }"
      item_type: struct
      name: pushad_regs_t
      pos:
        line_end: 838
        line_start: 816
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: u
        type: "union {\n    struct {\n      Bit16u flags;\n      } r16;\n    struct
          {\n      Bit8u  flagsl;\n      Bit8u  flagsh;\n      } r8;\n    }"
      item_type: struct
      name: flags_t
      pos:
        line_end: 850
        line_start: 840
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: ip
        type: Bit16u
      - name: cs
        type: Bit16u
      - name: flags
        type: flags_t
      item_type: struct
      name: iret_addr_t
      pos:
        line_end: 862
        line_start: 858
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: type
        type: Bit16u
      - name: flags
        type: Bit16u
      - name: vector
        type: Bit32u
      - name: description
        type: Bit32u
      - name: reserved
        type: Bit32u
      item_type: struct
      name: ipl_entry_t
      pos:
        line_end: 870
        line_start: 864
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    - fields:
      - name: normal
        type: Bit16u
      - name: shift
        type: Bit16u
      - name: control
        type: Bit16u
      - name: alt
        type: Bit16u
      - name: lock_flags
        type: Bit8u
      item_type: struct
      name: "scan_to_scanascii[MAX_SCAN_CODE + 1] = {\n      {   none,   none,   none,
        \  none, none },\n      { 0x011b, 0x011b, 0x011b, 0x0100, none }, /* escape
        */\n      { 0x0231, 0x0221,   none, 0x7800, none }, /* 1! */\n      { 0x0332,
        0x0340, 0x0300, 0x7900, none }, /* 2@ */\n      { 0x0433, 0x0423,   none,
        0x7a00, none }, /* 3# */\n      { 0x0534, 0x0524,   none, 0x7b00, none },
        /* 4$ */\n      { 0x0635, 0x0625,   none, 0x7c00, none }, /* 5% */\n      {
        0x0736, 0x075e, 0x071e, 0x7d00, none }, /* 6^ */\n      { 0x0837, 0x0826,
        \  none, 0x7e00, none }, /* 7& */\n      { 0x0938, 0x092a,   none, 0x7f00,
        none }, /* 8* */\n      { 0x0a39, 0x0a28,   none, 0x8000, none }, /* 9( */\n
        \     { 0x0b30, 0x0b29,   none, 0x8100, none }, /* 0) */\n      { 0x0c2d,
        0x0c5f, 0x0c1f, 0x8200, none }, /* -_ */\n      { 0x0d3d, 0x0d2b,   none,
        0x8300, none }, /* =+ */\n      { 0x0e08, 0x0e08, 0x0e7f,   none, none },
        /* backspace */\n      { 0x0f09, 0x0f00,   none,   none, none }, /* tab */\n
        \     { 0x1071, 0x1051, 0x1011, 0x1000, 0x40 }, /* Q */\n      { 0x1177, 0x1157,
        0x1117, 0x1100, 0x40 }, /* W */\n      { 0x1265, 0x1245, 0x1205, 0x1200, 0x40
        }, /* E */\n      { 0x1372, 0x1352, 0x1312, 0x1300, 0x40 }, /* R */\n      {
        0x1474, 0x1454, 0x1414, 0x1400, 0x40 }, /* T */\n      { 0x1579, 0x1559, 0x1519,
        0x1500, 0x40 }, /* Y */\n      { 0x1675, 0x1655, 0x1615, 0x1600, 0x40 }, /*
        U */\n      { 0x1769, 0x1749, 0x1709, 0x1700, 0x40 }, /* I */\n      { 0x186f,
        0x184f, 0x180f, 0x1800, 0x40 }, /* O */\n      { 0x1970, 0x1950, 0x1910, 0x1900,
        0x40 }, /* P */\n      { 0x1a5b, 0x1a7b, 0x1a1b,   none, none }, /* [{ */\n
        \     { 0x1b5d, 0x1b7d, 0x1b1d,   none, none }, /* ]} */\n      { 0x1c0d,
        0x1c0d, 0x1c0a,   none, none }, /* Enter */\n      {   none,   none,   none,
        \  none, none }, /* L Ctrl */\n      { 0x1e61, 0x1e41, 0x1e01, 0x1e00, 0x40
        }, /* A */\n      { 0x1f73, 0x1f53, 0x1f13, 0x1f00, 0x40 }, /* S */\n      {
        0x2064, 0x2044, 0x2004, 0x2000, 0x40 }, /* D */\n      { 0x2166, 0x2146, 0x2106,
        0x2100, 0x40 }, /* F */\n      { 0x2267, 0x2247, 0x2207, 0x2200, 0x40 }, /*
        G */\n      { 0x2368, 0x2348, 0x2308, 0x2300, 0x40 }, /* H */\n      { 0x246a,
        0x244a, 0x240a, 0x2400, 0x40 }, /* J */\n      { 0x256b, 0x254b, 0x250b, 0x2500,
        0x40 }, /* K */\n      { 0x266c, 0x264c, 0x260c, 0x2600, 0x40 }, /* L */\n
        \     { 0x273b, 0x273a,   none,   none, none }, /* ;: */\n      { 0x2827,
        0x2822,   none,   none, none }, /* '\" */\n      { 0x2960, 0x297e,   none,
        \  none, none }, /* `~ */\n      {   none,   none,   none,   none, none },
        /* L shift */\n      { 0x2b5c, 0x2b7c, 0x2b1c,   none, none }, /* |\\ */\n
        \     { 0x2c7a, 0x2c5a, 0x2c1a, 0x2c00, 0x40 }, /* Z */\n      { 0x2d78, 0x2d58,
        0x2d18, 0x2d00, 0x40 }, /* X */\n      { 0x2e63, 0x2e43, 0x2e03, 0x2e00, 0x40
        }, /* C */\n      { 0x2f76, 0x2f56, 0x2f16, 0x2f00, 0x40 }, /* V */\n      {
        0x3062, 0x3042, 0x3002, 0x3000, 0x40 }, /* B */\n      { 0x316e, 0x314e, 0x310e,
        0x3100, 0x40 }, /* N */\n      { 0x326d, 0x324d, 0x320d, 0x3200, 0x40 }, /*
        M */\n      { 0x332c, 0x333c,   none,   none, none }, /* ,< */\n      { 0x342e,
        0x343e,   none,   none, none }, /* .> */\n      { 0x352f, 0x353f,   none,
        \  none, none }, /* /? */\n      {   none,   none,   none,   none, none },
        /* R Shift */\n      { 0x372a, 0x372a,   none,   none, none }, /* * */\n      {
        \  none,   none,   none,   none, none }, /* L Alt */\n      { 0x3920, 0x3920,
        0x3920, 0x3920, none }, /* space */\n      {   none,   none,   none,   none,
        none }, /* caps lock */\n      { 0x3b00, 0x5400, 0x5e00, 0x6800, none }, /*
        F1 */\n      { 0x3c00, 0x5500, 0x5f00, 0x6900, none }, /* F2 */\n      { 0x3d00,
        0x5600, 0x6000, 0x6a00, none }, /* F3 */\n      { 0x3e00, 0x5700, 0x6100,
        0x6b00, none }, /* F4 */\n      { 0x3f00, 0x5800, 0x6200, 0x6c00, none },
        /* F5 */\n      { 0x4000, 0x5900, 0x6300, 0x6d00, none }, /* F6 */\n      {
        0x4100, 0x5a00, 0x6400, 0x6e00, none }, /* F7 */\n      { 0x4200, 0x5b00,
        0x6500, 0x6f00, none }, /* F8 */\n      { 0x4300, 0x5c00, 0x6600, 0x7000,
        none }, /* F9 */\n      { 0x4400, 0x5d00, 0x6700, 0x7100, none }, /* F10 */\n
        \     {   none,   none,   none,   none, none }, /* Num Lock */\n      {   none,
        \  none,   none,   none, none }, /* Scroll Lock */\n      { 0x4700, 0x4737,
        0x7700,   none, 0x20 }, /* 7 Home */\n      { 0x4800, 0x4838,   none,   none,
        0x20 }, /* 8 UP */\n      { 0x4900, 0x4939, 0x8400,   none, 0x20 }, /* 9 PgUp
        */\n      { 0x4a2d, 0x4a2d,   none,   none, none }, /* - */\n      { 0x4b00,
        0x4b34, 0x7300,   none, 0x20 }, /* 4 Left */\n      { 0x4c00, 0x4c35,   none,
        \  none, 0x20 }, /* 5 */\n      { 0x4d00, 0x4d36, 0x7400,   none, 0x20 },
        /* 6 Right */\n      { 0x4e2b, 0x4e2b,   none,   none, none }, /* + */\n      {
        0x4f00, 0x4f31, 0x7500,   none, 0x20 }, /* 1 End */\n      { 0x5000, 0x5032,
        \  none,   none, 0x20 }, /* 2 Down */\n      { 0x5100, 0x5133, 0x7600,   none,
        0x20 }, /* 3 PgDn */\n      { 0x5200, 0x5230,   none,   none, 0x20 }, /* 0
        Ins */\n      { 0x5300, 0x532e,   none,   none, 0x20 }, /* Del */\n      {
        \  none,   none,   none,   none, none },\n      {   none,   none,   none,
        \  none, none },\n      { 0x565c, 0x567c,   none,   none, none }, /* \\| */\n
        \     { 0x8500, 0x8700, 0x8900, 0x8b00, none }, /* F11 */\n      { 0x8600,
        0x8800, 0x8a00, 0x8c00, none }, /* F12 */\n      }"
      pos:
        line_end: 1055
        line_start: 1049
        source_file: /src/xen/tools/firmware/rombios/rombios.c
    typedefs:
    - item_type: typedef
      name: Bit16u
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type: unsigned short
    - item_type: typedef
      name: bx_bool
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type: unsigned short
    - item_type: typedef
      name: Bit32u
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/xen/tools/firmware/rombios/rombios.c
      type: unsigned long
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/e820.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E820_RAM
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/firmware/rombios/e820.h
      type_or_value: '1'
    - item_type: preproc_def
      name: E820_RESERVED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/rombios/e820.h
      type_or_value: '2'
    - item_type: preproc_def
      name: E820_ACPI
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/rombios/e820.h
      type_or_value: '3'
    - item_type: preproc_def
      name: E820_NVS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/rombios/e820.h
      type_or_value: '4'
    structs:
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: uint64_t
      - name: type
        type: uint32_t
      item_type: struct
      name: e820entry
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/xen/tools/firmware/rombios/e820.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/tcgbios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TCG_MAGIC
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/rombios/tcgbios.c
      type_or_value: 0x41504354L
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - check
  - chksum_bios_get_offset
  - chksum_bios_calc_value
  - chksum_bios_get_value
  - chksum_bios_set_value
  - chksum__32__calc_value
  - chksum__32__get_offset
  - chksum__32__get_value
  - chksum__32__set_value
  - chksum__mp__calc_value
  - chksum__mp__get_offset
  - chksum__mp__get_value
  - chksum__mp__set_value
  - chksum_pcmp_calc_value
  - chksum_pcmp_get_offset
  - chksum_pcmp_get_value
  - chksum_pcmp_set_value
  - chksum__pir_calc_value
  - chksum__pir_get_offset
  - chksum__pir_get_value
  - chksum__pir_set_value
  source_file: /src/xen/tools/firmware/rombios/biossums.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LEN_BIOS_DATA
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_OFFSET
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: (LEN_BIOS_DATA - 1)
    - item_type: preproc_def
      name: BIOS_OFFSET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: _32__LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '9'
    - item_type: preproc_def
      name: _32__CHKSUM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '10'
    - item_type: preproc_def
      name: _32__MINHDR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '16'
    - item_type: preproc_def
      name: _MP__LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '8'
    - item_type: preproc_def
      name: _MP__CHKSUM
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '10'
    - item_type: preproc_def
      name: _MP__MINHDR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PCMP_BASELEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PCMP_CHKSUM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PCMP_EXT_LEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '40'
    - item_type: preproc_def
      name: PCMP_EXT_CHKSUM
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '42'
    - item_type: preproc_def
      name: PCMP_MINHDR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '42'
    - item_type: preproc_def
      name: _PIR_LEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '6'
    - item_type: preproc_def
      name: _PIR_CHKSUM
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '31'
    - item_type: preproc_def
      name: _PIR_MINHDR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: byte
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/tools/firmware/rombios/biossums.c
      type: unsigned char
    union: []
- function_names:
  - __stringify
  - stringify
  - ASSERT
  - PMM_DEBUG
  - ALIGN_UP
  - ALIGN_DOWN
  - memblk_is_inuse
  - memblk_is_avail
  - set_inuse
  - set_avail
  - memblk_size
  - memblk_buffer
  - memblk_bufsize
  - buffer_memblk
  - memblk_loop_mbondition
  - for_each_memblk
  - for_remain_memblk
  - split_memblk
  - collect_avail_memblks
  - pmm_init_heap
  - pmm_initalize
  - pmm_max_avail_length
  - for_each_memblk
  - first_fit
  - for_each_memblk
  - pmm_find_handle
  - pmmAllocate
  - pmmFind
  - pmmDeallocate
  - pmm
  source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG_PMM
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PMM_FUNCTION_ALLOCATE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PMM_FUNCTION_FIND
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '1         '
    - item_type: preproc_def
      name: PMM_FUNCTION_DEALLOC
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PARAGRAPH_LENGTH
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 16  // unit of length
    - item_type: preproc_def
      name: PMM_HANDLE_ANONYMOUS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: PMM_FLAGS_MEMORY_TYPE_MASK
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: PMM_FLAGS_MEMORY_INVALID
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PMM_FLAGS_MEMORY_CONVENTIONAL
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 1  // 0 to 1MB
    - item_type: preproc_def
      name: PMM_FLAGS_MEMORY_EXTENDED
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 2  // 1MB to 4GB
    - item_type: preproc_def
      name: PMM_FLAGS_MEMORY_ANY
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 3  // whichever is available
    - item_type: preproc_def
      name: PMM_FLAGS_ALIGINMENT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: PMM_ENOMEM
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: (0)     // Out of memory, duplicate handle
    - item_type: preproc_def
      name: PMM_EINVAL
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: (-1)    // Invalid argument
    - item_type: preproc_def
      name: HEAP_NOT_INITIALIZED
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: (memblk_t *)-1
    - item_type: preproc_def
      name: HEAP_ALIGNMENT
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MEMBLK_MAGIC_INUSE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 0x2A4D4D50  // 'PMM*'
    - item_type: preproc_def
      name: MEMBLK_MAGIC_AVAIL
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: 0x5F4D4D50  // 'PMM_'
    - item_type: preproc_def
      name: MEMBLK_HEADER_SIZE
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: ((int)(&((memblk_t *)0)->buffer))
    - item_type: preproc_def
      name: MIN_MEMBLK_SIZE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
      type_or_value: (MEMBLK_HEADER_SIZE + PARAGRAPH_LENGTH)
    structs:
    - fields:
      - name: function
        type: uint16_t
      - name: length
        type: uint32_t
      - name: handle
        type: uint32_t
      - name: flags
        type: uint16_t
      item_type: struct
      name: pmmAllocArgs
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    - fields:
      - name: function
        type: uint16_t
      - name: handle
        type: uint32_t
      item_type: struct
      name: pmmFindArgs
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    - fields:
      - name: function
        type: uint16_t
      - name: buffer
        type: uint32_t
      item_type: struct
      name: pmmDeallocateArgs
      pos:
        line_end: 103
        line_start: 100
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    - fields:
      - name: magic
        type: uint32_t
      - name: '*next'
        type: struct memblk
      - name: handle
        type: uint32_t
      - name: __fill
        type: uint32_t
      - name: buffer[0]
        type: uint8_t
      item_type: struct
      name: memblk
      pos:
        line_end: 133
        line_start: 127
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    - fields:
      - name: '*head'
        type: memblk_t
      - name: '*end'
        type: memblk_t
      item_type: struct
      name: heap
      pos:
        line_end: 138
        line_start: 135
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    - fields:
      - name: heap
        type: heap_t
      - name: ext_heap
        type: heap_t
      item_type: struct
      name: pmm_data = { {HEAP_NOT_INITIALIZED, NULL}, {NULL, NULL} }
      pos:
        line_end: 160
        line_start: 157
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
    typedefs: []
    union:
    - fields:
      - name: function
        type: uint16_t
      - name: alloc
        type: struct pmmAllocArgs
      - name: find
        type: struct pmmFindArgs
      - name: dealloc
        type: struct pmmDeallocateArgs
      item_type: union
      name: pmm_args
      pos:
        line_end: 491
        line_start: 486
        source_file: /src/xen/tools/firmware/rombios/32bit/pmm.c
- function_names:
  - mmio_readb
  - mmio_readw
  - mmio_readl
  source_file: /src/xen/tools/firmware/rombios/32bit/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - isdigit
  - outb
  - outw
  - outl
  - inb
  - inw
  - inl
  - itoa
  - strcmp
  - strncmp
  - memcpy
  - memmove
  - strcpy
  - strncpy
  - strlen
  - memset
  - memcmp
  - cpuid
  - byte_to_hex
  - uuid_to_string
  - printnum
  - _doprint
  - putchar
  - printf
  - mssleep
  - __find_rsdp
  - find_rsdp
  - get_s3_waking_vector
  source_file: /src/xen/tools/firmware/rombios/32bit/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ADDR_FROM_SEG_OFF
  - SetCF
  - SetZF
  - ClearCF
  - ClearZF
  - GetCF
  - SET_CF
  - CLEAR_CF
  - GET_CF
  - SET_ZF
  - CLEAR_ZF
  - read_dword
  - read_word
  - read_byte
  - write_dword
  - write_word
  - write_byte
  - X
  source_file: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: u
        type: "union {\n  struct {\n    Bit32u edi, esi, ebp, esp;\n    Bit32u ebx,
          edx, ecx, eax;\n    } r32;\n  struct {\n    Bit16u di, filler1, si, filler2,
          bp, filler3, sp, filler4;\n    Bit16u bx, filler5, dx, filler6, cx, filler7,
          ax, filler8;\n    } r16;\n  struct {\n    Bit32u filler[4];\n    Bit8u  bl,
          bh;\n    Bit16u filler1;\n    Bit8u  dl, dh;\n    Bit16u filler2;\n    Bit8u
          \ cl, ch;\n    Bit16u filler3;\n    Bit8u  al, ah;\n    Bit16u filler4;\n
          \   } r8;\n  }"
      item_type: struct
      name: pushad_regs_t
      pos:
        line_end: 52
        line_start: 30
        source_file: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
    typedefs:
    - item_type: typedef
      name: Bit8u
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
      type: uint8_t
    - item_type: typedef
      name: Bit16u
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
      type: uint16_t
    - item_type: typedef
      name: Bit32u
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/xen/tools/firmware/rombios/32bit/rombios_compat.h
      type: uint32_t
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/32bit/32bitbios.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tis_wait_sts
  - tis_activate
  - tis_ready
  - tis_senddata
  - tis_readresp
  - tis_waitdatavalid
  - tis_waitrespready
  - tis_probe
  source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STS_VALID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: STS_COMMAND_READY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: STS_TPM_GO
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: STS_DATA_AVAILABLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: STS_EXPECT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: STS_RESPONSE_RETRY
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: ACCESS_TPM_REG_VALID_STS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 7) '
    - item_type: preproc_def
      name: ACCESS_ACTIVE_LOCALITY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 5) '
    - item_type: preproc_def
      name: ACCESS_BEEN_SEIZED
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 4) '
    - item_type: preproc_def
      name: ACCESS_SEIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 3) '
    - item_type: preproc_def
      name: ACCESS_PENDING_REQUEST
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 2) '
    - item_type: preproc_def
      name: ACCESS_REQUEST_USE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 1) '
    - item_type: preproc_def
      name: ACCESS_TPM_ESTABLISHMENT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.c
      type_or_value: '(1 << 0) '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_NUM_DRIVERS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_INVALID_DRIVER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: baseaddr
        type: uint32_t
      - name: (*activate)(uint32_t baseaddr)
        type: uint32_t
      - name: (*ready)(uint32_t baseaddr)
        type: uint32_t
      - name: (*senddata)(uint32_t baseaddr, unsigned char *data, uint32_t len)
        type: uint32_t
      - name: (*readresp)(uint32_t baseaddr, unsigned char *buffer, uint32_t len)
        type: uint32_t
      - name: (*waitdatavalid)(uint32_t baseaddr)
        type: uint32_t
      - name: (*waitrespready)(uint32_t baseaddr, uint32_t timeout)
        type: uint32_t
      - name: (*probe)(uint32_t baseaddr)
        type: uint32_t
      item_type: struct
      name: tpm_driver
      pos:
        line_end: 11
        line_start: 2
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tpm_drivers.h
    typedefs: []
    union: []
- function_names:
  - bswap
  - MA_IsTPMPresent
  - MA_InitTPM
  - MA_Transmit
  - acpi_validate_entry
  - tcpa_acpi_init
  - tcpa_reset_acpi_log
  - tcpa_extend_acpi_log
  - tcpa_get_lasa_last_ptr
  - tcpa_add_measurement_to_log_simple
  - tcpa_add_measurement
  - tcpa_calling_int19h
  - tcpa_returned_int19h
  - tcpa_add_event_separators
  - tcpa_wake_event
  - tcpa_add_bootdevice
  - tcpa_start_option_rom_scan
  - tcpa_option_rom
  - tcpa_ipl
  - tcpa_measure_post
  - SendCommand32
  - tcpa_initialize_tpm
  - TCG_IsShutdownPreBootInterface
  - _TCG_TPM_Extend
  - HashLogExtendEvent32
  - PassThroughToTPM32
  - TCG_ShutdownPreBootInterface
  - HashLogEvent32
  - HashAll32
  - TSS32
  - CompactHashLogExtendEvent32
  - rol
  - sha1_block
  - sha1_do
  - sha1
  - TCGInterruptHandler
  source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: opblength
        type: uint16_t
      - name: reserved2
        type: uint16_t
      - name: tpmoperandin[18]
        type: uint8_t
      item_type: struct
      name: ptti_cust
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    - fields:
      - name: '*tcpa_ptr'
        type: struct acpi_20_tcpa_clisrv
      - name: '*lasa_last_ptr'
        type: unsigned char
      - name: entry_count
        type: uint16_t
      - name: flags
        type: uint16_t
      item_type: struct
      name: tcpa_acpi_t
      pos:
        line_end: 138
        line_start: 133
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    - fields:
      - name: h[5]
        type: uint32_t
      item_type: struct
      name: _sha1_ctx
      pos:
        line_end: 1281
        line_start: 1279
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TCPA_ACPI_CLASS_CLIENT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TCPA_ACPI_CLASS_SERVER
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TCG_PC_OK
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: TCG_PC_TPMERROR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TCG_PC_LOGOVERFLOW
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: TCG_PC_UNSUPPORTED
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: TPM_ALG_SHA
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: TCG_MAGIC
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: 0x41504354L
    - item_type: preproc_def
      name: TCG_VERSION_MAJOR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TCG_VERSION_MINOR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_OK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: TPM_RET_BASE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TCG_GENERAL_ERROR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x0)
    - item_type: preproc_def
      name: TCG_TPM_IS_LOCKED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x1)
    - item_type: preproc_def
      name: TCG_NO_RESPONSE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x2)
    - item_type: preproc_def
      name: TCG_INVALID_RESPONSE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x3)
    - item_type: preproc_def
      name: TCG_INVALID_ACCESS_REQUEST
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x4)
    - item_type: preproc_def
      name: TCG_FIRMWARE_ERROR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x5)
    - item_type: preproc_def
      name: TCG_INTEGRITY_CHECK_FAILED
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x6)
    - item_type: preproc_def
      name: TCG_INVALID_DEVICE_ID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x7)
    - item_type: preproc_def
      name: TCG_INVALID_VENDOR_ID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x8)
    - item_type: preproc_def
      name: TCG_UNABLE_TO_OPEN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x9)
    - item_type: preproc_def
      name: TCG_UNABLE_TO_CLOSE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xa)
    - item_type: preproc_def
      name: TCG_RESPONSE_TIMEOUT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xb)
    - item_type: preproc_def
      name: TCG_INVALID_COM_REQUEST
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xc)
    - item_type: preproc_def
      name: TCG_INVALID_ADR_REQUEST
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xd)
    - item_type: preproc_def
      name: TCG_WRITE_BYTE_ERROR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xe)
    - item_type: preproc_def
      name: TCG_READ_BYTE_ERROR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0xf)
    - item_type: preproc_def
      name: TCG_BLOCK_WRITE_TIMEOUT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x10)
    - item_type: preproc_def
      name: TCG_CHAR_WRITE_TIMEOUT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x11)
    - item_type: preproc_def
      name: TCG_CHAR_READ_TIMEOUT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x12)
    - item_type: preproc_def
      name: TCG_BLOCK_READ_TIMEOUT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x13)
    - item_type: preproc_def
      name: TCG_TRANSFER_ABORT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x14)
    - item_type: preproc_def
      name: TCG_INVALID_DRV_FUNCTION
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x15)
    - item_type: preproc_def
      name: TCG_OUTPUT_BUFFER_TOO_SHORT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x16)
    - item_type: preproc_def
      name: TCG_FATAL_COM_ERROR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x17)
    - item_type: preproc_def
      name: TCG_INVALID_INPUT_PARA
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x18)
    - item_type: preproc_def
      name: TCG_TCG_COMMAND_ERROR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x19)
    - item_type: preproc_def
      name: TCG_INTERFACE_SHUTDOWN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x20)
    - item_type: preproc_def
      name: TCG_PC_TPM_NOT_PRESENT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x22)
    - item_type: preproc_def
      name: TCG_PC_TPM_DEACTIVATED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (TPM_RET_BASE + 0x23)
    - item_type: preproc_def
      name: TPM_INVALID_ADR_REQUEST
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_INVALID_ADR_REQUEST
    - item_type: preproc_def
      name: TPM_IS_LOCKED
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_TPM_IS_LOCKED
    - item_type: preproc_def
      name: TPM_INVALID_DEVICE_ID
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_INVALID_DEVICE_ID
    - item_type: preproc_def
      name: TPM_INVALID_VENDOR_ID
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_INVALID_VENDOR_ID
    - item_type: preproc_def
      name: TPM_FIRMWARE_ERROR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_FIRMWARE_ERROR
    - item_type: preproc_def
      name: TPM_UNABLE_TO_OPEN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_UNABLE_TO_OPEN
    - item_type: preproc_def
      name: TPM_UNABLE_TO_CLOSE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_UNABLE_TO_CLOSE
    - item_type: preproc_def
      name: TPM_INVALID_RESPONSE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_INVALID_RESPONSE
    - item_type: preproc_def
      name: TPM_RESPONSE_TIMEOUT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_RESPONSE_TIMEOUT
    - item_type: preproc_def
      name: TPM_INVALID_ACCESS_REQUEST
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_INVALID_ACCESS_REQUEST
    - item_type: preproc_def
      name: TPM_TRANSFER_ABORT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_TRANSFER_ABORT
    - item_type: preproc_def
      name: TPM_GENERAL_ERROR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: TCG_GENERAL_ERROR
    - item_type: preproc_def
      name: TPM_ST_CLEAR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: TPM_ST_STATE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: TPM_ST_DEACTIVATED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: EV_POST_CODE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EV_SEPARATOR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EV_ACTION
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EV_EVENT_TAG
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EV_COMPACT_HASH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EV_IPL
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '13'
    - item_type: preproc_def
      name: EV_IPL_PARTITION_DATA
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '14'
    - item_type: preproc_def
      name: CODE_MAInitTPM
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CODE_MAHashAllExtendTPM
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CODE_MAPhysicalPresenceTPM
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: CODE_MAIsTPMPresent
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: CODE_MAHashAll
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x81'
    - item_type: preproc_def
      name: CODE_MATransmit
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x82'
    - item_type: preproc_def
      name: IDX_CMD_TPM_Startup_0x01
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IDX_CMD_TSC_PhysicalPresence_0x20
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IDX_CMD_TSC_PhysicalPresence_0x08
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IDX_CMD_TSC_PhysicalPresence_0x100
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '3'
    - item_type: preproc_def
      name: IDX_CMD_TSC_PhysicalPresence_0x10
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '4'
    - item_type: preproc_def
      name: IDX_CMD_TPM_PhysicalEnable
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '5'
    - item_type: preproc_def
      name: IDX_CMD_TPM_PhysicalSetDeactivated_0x00
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '6'
    - item_type: preproc_def
      name: IDX_CMD_TPM_SHA1Start
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TPM_ACCESS
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: TPM_INT_ENABLE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: TPM_INT_VECTOR
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0xc'
    - item_type: preproc_def
      name: TPM_INT_STATUS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TPM_INTF_CAPABILITY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: TPM_STS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x18'
    - item_type: preproc_def
      name: TPM_DATA_FIFO
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0x24'
    - item_type: preproc_def
      name: TPM_DID_VID
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0xf00'
    - item_type: preproc_def
      name: TPM_RID
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0xf04'
    - item_type: preproc_def
      name: TPM_TIS_BASE_ADDRESS
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: '0xfed40000'
    - item_type: preproc_def
      name: STATUS_FLAG_SHUTDOWN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
      type_or_value: (1 << 0)
    structs:
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: hashdataptr
        type: uint32_t
      - name: hashdatalen
        type: uint32_t
      - name: pcrindex
        type: uint32_t
      - name: logdataptr
        type: uint32_t
      - name: logdatalen
        type: uint32_t
      item_type: struct
      name: hleei_short
      pos:
        line_end: 131
        line_start: 122
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: hashdataptr
        type: uint32_t
      - name: hashdatalen
        type: uint32_t
      - name: pcrindex
        type: uint32_t
      - name: reserved2
        type: uint32_t
      - name: logdataptr
        type: uint32_t
      - name: logdatalen
        type: uint32_t
      item_type: struct
      name: hleei_long
      pos:
        line_end: 143
        line_start: 133
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: opblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: eventnumber
        type: uint32_t
      - name: hashvalue[20]
        type: uint8_t
      item_type: struct
      name: hleeo
      pos:
        line_end: 151
        line_start: 145
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: opblength
        type: uint16_t
      - name: reserved2
        type: uint16_t
      - name: tpmoperandin[0]
        type: uint8_t
      item_type: struct
      name: pttti
      pos:
        line_end: 162
        line_start: 155
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: opblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: tpmoperandout[0]
        type: uint8_t
      item_type: struct
      name: pttto
      pos:
        line_end: 169
        line_start: 164
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: hashdataptr
        type: uint32_t
      - name: hashdatalen
        type: uint32_t
      - name: pcrindex
        type: uint32_t
      - name: logeventtype
        type: uint32_t
      - name: logdataptr
        type: uint32_t
      - name: logdatalen
        type: uint32_t
      item_type: struct
      name: hlei
      pos:
        line_end: 182
        line_start: 172
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: opblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: eventnumber
        type: uint32_t
      item_type: struct
      name: hleo
      pos:
        line_end: 189
        line_start: 184
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: hashdataptr
        type: uint32_t
      - name: hashdatalen
        type: uint32_t
      - name: algorithmid
        type: uint32_t
      item_type: struct
      name: hai
      pos:
        line_end: 198
        line_start: 191
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: ipblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: opblength
        type: uint16_t
      - name: reserved2
        type: uint16_t
      - name: tssoperandin[0]
        type: uint8_t
      item_type: struct
      name: ti
      pos:
        line_end: 207
        line_start: 200
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: opblength
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: tssoperandout[0]
        type: uint8_t
      item_type: struct
      name: to
      pos:
        line_end: 214
        line_start: 209
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: pcrindex
        type: uint32_t
      - name: eventtype
        type: uint32_t
      - name: digest[20]
        type: uint8_t
      - name: eventdatasize
        type: uint32_t
      - name: event
        type: uint32_t
      item_type: struct
      name: pcpes
      pos:
        line_end: 224
        line_start: 217
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: laml
        type: uint32_t
      - name: lasa
        type: uint64_t
      item_type: struct
      name: acpi_20_tcpa_client
      pos:
        line_end: 229
        line_start: 226
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: reserved
        type: uint16_t
      - name: laml
        type: uint32_t
      - name: lasa
        type: uint64_t
      item_type: struct
      name: acpi_20_tcpa_server
      pos:
        line_end: 236
        line_start: 231
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: platform_class
        type: uint16_t
      - name: u
        type: "union {\n\t\tstruct acpi_20_tcpa_client client;\n\t\tstruct acpi_20_tcpa_server
          server;\n\t}"
      item_type: struct
      name: acpi_20_tcpa_clisrv
      pos:
        line_end: 245
        line_start: 238
        source_file: /src/xen/tools/firmware/rombios/32bit/tcgbios/tcgbios.h
    typedefs: []
    union: []
- function_names:
  - check_overlap_all
  - find_next_rmrr
  - pci_setup
  source_file: /src/xen/tools/firmware/hvmloader/pci.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCI_VENDOR_ID_XEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/pci.c
      type_or_value: '0x5853'
    - item_type: preproc_def
      name: BAR_RELOC_THRESH
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/pci.c
      type_or_value: GB(1)
    structs:
    - fields:
      - name: base
        type: uint64_t
      item_type: struct
      name: resource
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/xen/tools/firmware/hvmloader/pci.c
    - fields:
      - name: is_64bar
        type: uint32_t
      - name: devfn
        type: uint32_t
      - name: bar_reg
        type: uint32_t
      - name: bar_sz
        type: uint64_t
      item_type: struct
      name: bars
      pos:
        line_end: 107
        line_start: 102
        source_file: /src/xen/tools/firmware/hvmloader/pci.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/config.h
  types:
    enum:
    - enumerators:
      - name: VGA_none
      - name: VGA_std
      - name: VGA_pt
      - name: VGA_cirrus
      item_type: enum
      name: virtual_vga
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/tools/firmware/hvmloader/config.h
    preproc_defs:
    - item_type: preproc_def
      name: IGD_OPREGION_PAGES
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: (1ul << PAGE_SHIFT)
    - item_type: preproc_def
      name: IOAPIC_ID
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: LAPIC_BASE_ADDRESS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xfee00000'
    - item_type: preproc_def
      name: PCI_ISA_DEVFN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: PCI_ISA_IRQ_MASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x0c20U '
    - item_type: preproc_def
      name: ACPI_TIS_HDR_ADDRESS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: 0xFED40F00UL
    - item_type: preproc_def
      name: SCRATCH_PHYSICAL_ADDRESS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: HYPERCALL_PHYSICAL_ADDRESS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: VGABIOS_PHYSICAL_ADDRESS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x000C0000'
    - item_type: preproc_def
      name: HVMLOADER_PHYSICAL_ADDRESS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: RESERVED_MEMBASE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFC000000'
    - item_type: preproc_def
      name: ACPI_INFO_PHYSICAL_ADDRESS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFC000000'
    - item_type: preproc_def
      name: ACPI_MEMORY_DYNAMIC_START
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFC001000'
    - item_type: preproc_def
      name: RESERVED_MEMORY_DYNAMIC_START
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFC100000'
    - item_type: preproc_def
      name: RESERVED_MEMORY_DYNAMIC_END
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFE000000'
    - item_type: preproc_def
      name: GUEST_RESERVED_START
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFE700000'
    - item_type: preproc_def
      name: GUEST_RESERVED_END
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/firmware/hvmloader/config.h
      type_or_value: '0xFE800000'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*image'
        type: void
      - name: image_size
        type: unsigned int
      - name: bios_address
        type: unsigned int
      - name: (*load_roms)(void)
        type: void
      - name: "(*bios_load)(const struct bios_config *config, void *addr,\n                      uint32_t
          size, void *extra_addr)"
        type: void
      - name: (*bios_info_setup)(void)
        type: void
      - name: (*bios_info_finish)(void)
        type: void
      - name: (*e820_setup)(void)
        type: void
      - name: (*acpi_build_tables)(void)
        type: void
      - name: (*create_mp_tables)(void)
        type: void
      - name: (*create_smbios_tables)(void)
        type: void
      - name: (*create_pir_tables)(void)
        type: void
      item_type: struct
      name: bios_config
      pos:
        line_end: 37
        line_start: 12
        source_file: /src/xen/tools/firmware/hvmloader/config.h
    typedefs: []
    union: []
- function_names:
  - MSR_MTRRphysBase
  - MSR_MTRRphysMask
  - cpu_phys_addr
  - cacheattr_init
  - BCST
  source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_MTRRcap
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x00fe'
    - item_type: preproc_def
      name: MSR_MTRRfix64K_00000
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0250'
    - item_type: preproc_def
      name: MSR_MTRRfix16K_80000
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0258'
    - item_type: preproc_def
      name: MSR_MTRRfix16K_A0000
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0259'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_C0000
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0268'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_C8000
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0269'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_D0000
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026a'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_D8000
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026b'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_E0000
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026c'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_E8000
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026d'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_F0000
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026e'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_F8000
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x026f'
    - item_type: preproc_def
      name: MSR_PAT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x0277'
    - item_type: preproc_def
      name: MSR_MTRRdefType
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/cacheattr.c
      type_or_value: '0x02ff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_apic_id
  - cpu_setup
  - boot_cpu
  - smp_initialise
  source_file: /src/xen/tools/firmware/hvmloader/smp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - smbios_pt_init
  - get_smbios_pt_struct
  - smbios_pt_copy
  - get_cpu_manufacturer
  - write_smbios_tables
  - do_struct
  - get_memsize
  - hvm_write_smbios_tables
  - smbios_entry_point_init
  - smbios_type_0_init
  - smbios_type_1_init
  - smbios_type_2_init
  - smbios_type_3_init
  - smbios_type_4_init
  - smbios_type_7_init
  - smbios_type_8_init
  - smbios_type_9_init
  - smbios_type_11_init
  - smbios_type_16_init
  - smbios_type_17_init
  - smbios_type_19_init
  - smbios_type_20_init
  - smbios_type_22_init
  - smbios_type_26_init
  - smbios_type_27_init
  - smbios_type_28_init
  - smbios_type_32_init
  - smbios_type_39_init
  - smbios_type_vendor_oem_init
  - smbios_type_127_init
  source_file: /src/xen/tools/firmware/hvmloader/smbios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE0
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE1
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE2
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE3
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0300'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE4
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE7
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0700'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE8
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE9
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0900'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE11
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x0B00'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE16
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE17
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1100'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE19
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1300'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE20
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1400'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE22
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1600'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE26
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1A00'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE27
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1B00'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE28
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x1C00'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE32
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE39
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x2700'
    - item_type: preproc_def
      name: SMBIOS_HANDLE_TYPE127
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/firmware/hvmloader/smbios.c
      type_or_value: '0x7f00'
    structs: []
    typedefs: []
    union: []
- function_names:
  - relocate_32bitbios
  - rombios_highbios_setup
  source_file: /src/xen/tools/firmware/hvmloader/32bitbios_support.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - scan_option_rom
  - scan_etherboot_nic
  - pci_load_option_roms
  source_file: /src/xen/tools/firmware/hvmloader/optionroms.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_paging
  - start_paging
  - stop_paging
  - rep_insb_test
  - rep_insw_test
  - shadow_gs_test
  - perform_tests
  source_file: /src/xen/tools/firmware/hvmloader/tests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_FAIL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TEST_PASS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TEST_SKIP
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TEST_MEM_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: (4ul << 20)
    - item_type: preproc_def
      name: PD_START
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: test_mem_base
    - item_type: preproc_def
      name: PT_START
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
      type_or_value: (PD_START + 4096)
    structs:
    - fields:
      - name: addr
        type: unsigned long
      - name: expected
        type: uint32_t
      item_type: struct
      name: "check[] = {\n        { test_mem_base + 0x00100000, 0x987654ff },\n        {
        test_mem_base + 0x00100ffc, 0xff000000 },\n        { test_mem_base + 0x001ffffc,
        0xff000000 },\n        { test_mem_base + 0x00201000, 0x000000ff },\n        {
        0, 0 }\n    }"
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
    - fields:
      - name: addr
        type: unsigned long
      - name: expected
        type: uint32_t
      item_type: struct
      name: "check[] = {\n        { test_mem_base + 0x00100000, 0x98ffffff },\n        {
        test_mem_base + 0x00100ffc, 0xffffff00 },\n        { test_mem_base + 0x001ffffc,
        0xffffff00 },\n        { test_mem_base + 0x00201000, 0x00ffffff },\n        {
        0, 0 }\n    }"
      pos:
        line_end: 161
        line_start: 158
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
    - fields:
      - name: (* const test)(void)
        type: int
      - name: '*description'
        type: char
      item_type: struct
      name: "tests[] = {\n        { rep_insb_test, \"REP INSB across page boundaries\"
        },\n        { rep_insw_test, \"REP INSW across page boundaries\" },\n        {
        shadow_gs_test, \"GS base MSRs and SWAPGS\" },\n        { NULL, NULL }\n    }"
      pos:
        line_end: 278
        line_start: 275
        source_file: /src/xen/tools/firmware/hvmloader/tests.c
    typedefs: []
    union: []
- function_names:
  - round_option_rom
  source_file: /src/xen/tools/firmware/hvmloader/option_rom.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: signature[2]
        type: uint8_t
      - name: rom_size
        type: uint8_t
      - name: entry_point
        type: uint32_t
      - name: reserved[17]
        type: uint8_t
      - name: pci_header_offset
        type: uint16_t
      - name: expansion_header_offset
        type: uint16_t
      item_type: struct
      name: option_rom_header
      pos:
        line_end: 12
        line_start: 5
        source_file: /src/xen/tools/firmware/hvmloader/option_rom.h
    - fields:
      - name: signature[4]
        type: uint8_t
      - name: structure_revision
        type: uint8_t
      - name: structure_length
        type: uint8_t
      - name: next_header_offset
        type: uint16_t
      - name: reserved
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: device_id
        type: uint32_t
      - name: manufacturer_name_offset
        type: uint16_t
      - name: product_name_offset
        type: uint16_t
      - name: device_type_code[3]
        type: uint8_t
      - name: device_indicators
        type: uint8_t
      - name: boot_connection_vector
        type: uint16_t
      - name: disconnect_vector
        type: uint16_t
      - name: bootstap_entry_vector
        type: uint16_t
      - name: reserved2
        type: uint16_t
      - name: static_resource_information_vector
        type: uint16_t
      item_type: struct
      name: option_rom_pnp_header
      pos:
        line_end: 31
        line_start: 14
        source_file: /src/xen/tools/firmware/hvmloader/option_rom.h
    - fields:
      - name: signature[4]
        type: uint8_t
      - name: vendor_id
        type: uint16_t
      - name: device_id
        type: uint16_t
      - name: vital_product_data_offset
        type: uint16_t
      - name: structure_length
        type: uint16_t
      - name: structure_revision
        type: uint8_t
      - name: class_code[3]
        type: uint8_t
      - name: image_length
        type: uint16_t
      - name: image_revision
        type: uint16_t
      - name: code_type
        type: uint8_t
      - name: indicator
        type: uint8_t
      - name: reserved
        type: uint16_t
      item_type: struct
      name: option_rom_pci_header
      pos:
        line_end: 47
        line_start: 34
        source_file: /src/xen/tools/firmware/hvmloader/option_rom.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/config-seabios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIOS_INFO_PHYSICAL_ADDRESS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/firmware/hvmloader/config-seabios.h
      type_or_value: '0x00001000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hcall_addr
  - _hypercall0
  - _hypercall1
  - _hypercall2
  - _hypercall3
  - _hypercall4
  - _hypercall5
  - hypercall_sched_op
  - hypercall_memory_op
  - hypercall_multicall
  - hypercall_event_channel_op
  - hypercall_xen_version
  - hypercall_console_io
  - hypercall_vm_assist
  - hypercall_vcpu_op
  - hypercall_hvm_op
  source_file: /src/xen/tools/firmware/hvmloader/hypercall.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rombios_setup_e820
  - rombios_setup_bios_info
  - rombios_load_roms
  - rombios_load
  - get_mp_table_start
  - reset_bios_checksum
  - rombios_acpi_build_tables
  - rombios_create_mp_tables
  - rombios_create_smbios_tables
  source_file: /src/xen/tools/firmware/hvmloader/rombios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ROMBIOS_BEGIN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/rombios.c
      type_or_value: '0x000F0000'
    - item_type: preproc_def
      name: ROMBIOS_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/rombios.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: ROMBIOS_MAXOFFSET
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/rombios.c
      type_or_value: '0x0000FFFF'
    - item_type: preproc_def
      name: ROMBIOS_END
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/rombios.c
      type_or_value: (ROMBIOS_BEGIN + ROMBIOS_SIZE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - seabios_setup_bios_info
  - seabios_finish_bios_info
  - add_table
  - seabios_acpi_build_tables
  - seabios_create_mp_tables
  - seabios_create_smbios_tables
  - seabios_create_pir_tables
  - seabios_setup_e820
  - seabios_load
  source_file: /src/xen/tools/firmware/hvmloader/seabios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_TABLES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/firmware/hvmloader/seabios.c
      type_or_value: '4'
    structs:
    - fields:
      - name: signature[14]
        type: char
      - name: length
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: tables
        type: uint32_t
      - name: tables_nr
        type: uint32_t
      - name: e820
        type: uint32_t
      - name: e820_nr
        type: uint32_t
      item_type: struct
      name: seabios_info
      pos:
        line_end: 48
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/seabios.c
    typedefs: []
    union: []
- function_names:
  - XEN_ERRNO
  - ASSERT
  - BUG
  - BUG_ON
  - test_bit
  - test_and_clear_bit
  - wrmsr
  - rdmsr
  - outb
  - outw
  - outl
  - inb
  - inw
  - inl
  - ioapic_read
  - ioapic_write
  - lapic_read
  - lapic_write
  - pci_readb
  - pci_readw
  - pci_readl
  - pci_writeb
  - pci_writew
  - pci_writel
  - cpuid_count
  - cpuid
  - rdtsc
  - cpu_relax
  - barrier
  - rmb
  - wmb
  - mb
  - do_div
  - PRIllx_arg
  - virt_to_phys
  - perform_tests
  source_file: /src/xen/tools/firmware/hvmloader/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EINVAL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: EINVAL
    - item_type: preproc_def
      name: SEL_CODE16
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: SEL_DATA16
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: SEL_CODE32
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0x0018'
    - item_type: preproc_def
      name: SEL_DATA32
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: SEL_CODE64
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0x0028'
    - item_type: preproc_def
      name: IOAPIC_BASE_ADDRESS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0xfec00000'
    - item_type: preproc_def
      name: LAPIC_BASE_ADDRESS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '0xfee00000'
    - item_type: preproc_def
      name: hvm_info
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: (get_hvm_info_table())
    - item_type: preproc_def
      name: PRIllx
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/tools/firmware/hvmloader/util.h
      type_or_value: '"%x%08x"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_vnuma_info
  source_file: /src/xen/tools/firmware/hvmloader/vnuma.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_overlap
  - cmos_inb
  - cmos_outb
  - itoa
  - strcmp
  - strncmp
  - memcpy
  - memmove
  - strcpy
  - strncpy
  - strlen
  - __digit
  - strtoll
  - memset
  - memcmp
  - byte_to_hex
  - uuid_to_string
  - get_mem_mapping_layout
  - mem_hole_populate_ram
  - mem_hole_alloc
  - mem_alloc
  - scratch_alloc
  - PCI_CONF1_ADDRESS
  - pci_read
  - pci_write
  - printnum
  - _doprint
  - putchar
  - __put
  - printf
  - vprintf
  - __copy
  - snprintf
  - crash
  - __assert_failed
  - __bug
  - validate_hvm_info
  - get_hvm_info_table
  - get_shared_info
  - get_cpu_mhz
  - uart_exists
  - lpt_exists
  - hpet_exists
  - battery_port_exists
  - acpi_v2p
  - acpi_pages_allocated
  - acpi_mem_alloc
  - acpi_mem_free
  - acpi_lapic_id
  - hvmloader_acpi_build_tables
  source_file: /src/xen/tools/firmware/hvmloader/util.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: emitted
        type: size_t
      - name: remaining
        type: size_t
      item_type: struct
      name: __copy_context
      pos:
        line_end: 593
        line_start: 589
        source_file: /src/xen/tools/firmware/hvmloader/util.c
    typedefs: []
    union: []
- function_names:
  - fill_mp_config_table
  - fill_mp_proc_entry
  - fill_mp_bus_entry
  - fill_mp_ioapic_entry
  - fill_mpfps
  - create_mp_tables
  source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_NONPROC_ENTRIES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '18'
    - item_type: preproc_def
      name: ENTRY_TYPE_PROCESSOR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ENTRY_TYPE_BUS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ENTRY_TYPE_IOAPIC
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ENTRY_TYPE_IO_INTR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ENTRY_TYPE_LOCAL_INTR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '4'
    - item_type: preproc_def
      name: CPU_FLAG_ENABLED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CPU_FLAG_BSP
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: CPU_SIG_FAMILY
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: CPU_SIG_MODEL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CPU_SIG_STEPPING
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: CPU_SIGNATURE
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: "((CPU_SIG_FAMILY << 8)  \\\n                             | (CPU_SIG_MODEL
        << 4)  \\\n                             | (CPU_SIG_STEPPING))"
    - item_type: preproc_def
      name: CPU_FEATURE_FPU
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: CPU_FEATURE_MCE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: CPU_FEATURE_CX8
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: (1U << 8)
    - item_type: preproc_def
      name: CPU_FEATURE_APIC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: (1U << 9)
    - item_type: preproc_def
      name: CPU_FEATURES
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: (CPU_FEATURE_FPU | CPU_FEATURE_APIC)
    - item_type: preproc_def
      name: BUS_TYPE_LENGTH
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BUS_TYPE_STR_ISA
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '"ISA   "'
    - item_type: preproc_def
      name: BUS_ID_ISA
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INTR_TYPE_INT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INTR_TYPE_NMI
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INTR_TYPE_SMI
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '2'
    - item_type: preproc_def
      name: INTR_TYPE_EXTINT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '3'
    - item_type: preproc_def
      name: INTR_MAX_NR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
      type_or_value: '16'
    structs:
    - fields:
      - name: signature[4]
        type: uint8_t
      - name: mp_table
        type: uint32_t
      - name: length
        type: uint8_t
      - name: revision
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: feature[5]
        type: uint8_t
      item_type: struct
      name: mp_floating_pointer_struct
      pos:
        line_end: 82
        line_start: 75
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: signature[4]
        type: uint8_t
      - name: length
        type: uint16_t
      - name: revision
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: oem_id[8]
        type: uint8_t
      - name: vendor_id[12]
        type: uint8_t
      - name: oem_table
        type: uint32_t
      - name: oem_table_sz
        type: uint16_t
      - name: nr_entries
        type: uint16_t
      - name: lapic
        type: uint32_t
      - name: extended_length
        type: uint16_t
      - name: extended_checksum
        type: uint8_t
      - name: reserved
        type: uint8_t
      item_type: struct
      name: mp_config_table
      pos:
        line_end: 99
        line_start: 85
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: type
        type: uint8_t
      - name: lapic_id
        type: uint8_t
      - name: lapic_version
        type: uint8_t
      - name: cpu_flags
        type: uint8_t
      - name: cpu_signature
        type: uint32_t
      - name: feature_flags
        type: uint32_t
      - name: reserved[8]
        type: uint8_t
      item_type: struct
      name: mp_proc_entry
      pos:
        line_end: 110
        line_start: 102
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: type
        type: uint8_t
      - name: bus_id
        type: uint8_t
      - name: bus_type_str[6]
        type: uint8_t
      item_type: struct
      name: mp_bus_entry
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: type
        type: uint8_t
      - name: ioapic_id
        type: uint8_t
      - name: ioapic_version
        type: uint8_t
      - name: ioapic_flags
        type: uint8_t
      - name: ioapic_addr
        type: uint32_t
      item_type: struct
      name: mp_ioapic_entry
      pos:
        line_end: 126
        line_start: 120
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: type
        type: uint8_t
      - name: intr_type
        type: uint8_t
      - name: io_intr_flags
        type: uint16_t
      - name: src_bus_id
        type: uint8_t
      - name: src_bus_irq
        type: uint8_t
      - name: dst_ioapic_id
        type: uint8_t
      - name: dst_ioapic_intin
        type: uint8_t
      item_type: struct
      name: mp_io_intr_entry
      pos:
        line_end: 137
        line_start: 129
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    - fields:
      - name: type
        type: uint8_t
      - name: intr_type
        type: uint8_t
      - name: local_intr_flags
        type: uint16_t
      - name: src_bus_id
        type: uint8_t
      - name: src_bus_irq
        type: uint8_t
      - name: dst_lapic_id
        type: uint8_t
      - name: dst_lapic_lintin
        type: uint8_t
      item_type: struct
      name: mp_local_intr_entry
      pos:
        line_end: 148
        line_start: 140
        source_file: /src/xen/tools/firmware/hvmloader/mp_tables.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/ctype.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memory_map_setup
  - adjust_memory_map
  - dump_e820_table
  - build_e820_table
  source_file: /src/xen/tools/firmware/hvmloader/e820.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_pir_tables
  source_file: /src/xen/tools/firmware/hvmloader/pir.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/vnuma.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_param_get
  - hvm_param_set
  source_file: /src/xen/tools/firmware/hvmloader/hvm_param.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/e820.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E820_RAM
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
      type_or_value: '1'
    - item_type: preproc_def
      name: E820_RESERVED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
      type_or_value: '2'
    - item_type: preproc_def
      name: E820_ACPI
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
      type_or_value: '3'
    - item_type: preproc_def
      name: E820_NVS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
      type_or_value: '4'
    - item_type: preproc_def
      name: E820MAX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
      type_or_value: '128'
    structs:
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: uint64_t
      - name: type
        type: uint32_t
      item_type: struct
      name: e820entry
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
    - fields:
      - name: nr_map
        type: unsigned int
      - name: map[E820MAX]
        type: struct e820entry
      item_type: struct
      name: e820map
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/xen/tools/firmware/hvmloader/e820.h
    typedefs: []
    union: []
- function_names:
  - __ismask
  - isalnum
  - isalpha
  - iscntrl
  - isdigit
  - isgraph
  - islower
  - isprint
  - ispunct
  - isspace
  - isupper
  - isxdigit
  source_file: /src/xen/tools/firmware/hvmloader/ctype.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _U
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: _L
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: _D
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: _C
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: _P
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: _S
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x20    '
    - item_type: preproc_def
      name: _X
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: _SP
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/hvmloader/ctype.h
      type_or_value: '0x80    '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: anchor_string[4]
        type: char
      - name: checksum
        type: uint8_t
      - name: length
        type: uint8_t
      - name: smbios_major_version
        type: uint8_t
      - name: smbios_minor_version
        type: uint8_t
      - name: max_structure_size
        type: uint16_t
      - name: entry_point_revision
        type: uint8_t
      - name: formatted_area[5]
        type: uint8_t
      - name: intermediate_anchor_string[5]
        type: char
      - name: intermediate_checksum
        type: uint8_t
      - name: structure_table_length
        type: uint16_t
      - name: structure_table_address
        type: uint32_t
      - name: number_of_structures
        type: uint16_t
      - name: smbios_bcd_revision
        type: uint8_t
      item_type: struct
      name: smbios_entry_point
      pos:
        line_end: 47
        line_start: 32
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: handle
        type: uint16_t
      item_type: struct
      name: smbios_structure_header
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: vendor_str
        type: uint8_t
      - name: version_str
        type: uint8_t
      - name: starting_address_segment
        type: uint16_t
      - name: release_date_str
        type: uint8_t
      - name: rom_size
        type: uint8_t
      - name: characteristics[8]
        type: uint8_t
      - name: characteristics_extension_bytes[2]
        type: uint8_t
      - name: major_release
        type: uint8_t
      - name: minor_release
        type: uint8_t
      - name: embedded_controller_major
        type: uint8_t
      - name: embedded_controller_minor
        type: uint8_t
      item_type: struct
      name: smbios_type_0
      pos:
        line_end: 70
        line_start: 57
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: manufacturer_str
        type: uint8_t
      - name: product_name_str
        type: uint8_t
      - name: version_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: uuid[16]
        type: uint8_t
      - name: wake_up_type
        type: uint8_t
      - name: sku_str
        type: uint8_t
      - name: family_str
        type: uint8_t
      item_type: struct
      name: smbios_type_1
      pos:
        line_end: 83
        line_start: 73
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: manufacturer_str
        type: uint8_t
      - name: product_name_str
        type: uint8_t
      - name: version_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: asset_tag_str
        type: uint8_t
      - name: feature_flags
        type: uint8_t
      - name: location_in_chassis_str
        type: uint8_t
      - name: chassis_handle
        type: uint16_t
      - name: board_type
        type: uint8_t
      - name: contained_handle_count
        type: uint8_t
      - name: contained_handles[]
        type: uint16_t
      item_type: struct
      name: smbios_type_2
      pos:
        line_end: 99
        line_start: 86
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: type
        type: uint8_t
      - name: minimum
        type: uint8_t
      - name: maximum
        type: uint8_t
      item_type: struct
      name: smbios_contained_element
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: manufacturer_str
        type: uint8_t
      - name: type
        type: uint8_t
      - name: version_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: asset_tag_str
        type: uint8_t
      - name: boot_up_state
        type: uint8_t
      - name: power_supply_state
        type: uint8_t
      - name: thermal_state
        type: uint8_t
      - name: security_status
        type: uint8_t
      - name: oem_specific
        type: uint32_t
      - name: height
        type: uint8_t
      - name: number_of_power_cords
        type: uint8_t
      - name: contained_element_count
        type: uint8_t
      - name: contained_element_length
        type: uint8_t
      - name: contained_elements[]
        type: struct smbios_contained_element
      item_type: struct
      name: smbios_type_3
      pos:
        line_end: 126
        line_start: 109
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: socket_designation_str
        type: uint8_t
      - name: processor_type
        type: uint8_t
      - name: processor_family
        type: uint8_t
      - name: manufacturer_str
        type: uint8_t
      - name: cpuid[2]
        type: uint32_t
      - name: version_str
        type: uint8_t
      - name: voltage
        type: uint8_t
      - name: external_clock
        type: uint16_t
      - name: max_speed
        type: uint16_t
      - name: current_speed
        type: uint16_t
      - name: status
        type: uint8_t
      - name: upgrade
        type: uint8_t
      - name: l1_cache_handle
        type: uint16_t
      - name: l2_cache_handle
        type: uint16_t
      - name: l3_cache_handle
        type: uint16_t
      - name: serial_number_str
        type: uint8_t
      - name: asset_tag_str
        type: uint8_t
      - name: part_number_str
        type: uint8_t
      item_type: struct
      name: smbios_type_4
      pos:
        line_end: 149
        line_start: 129
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: socket_designation_str
        type: uint8_t
      - name: cache_configuration
        type: uint16_t
      - name: maximum_cache_size
        type: uint16_t
      - name: installed_size
        type: uint16_t
      - name: supported_SRAM_type
        type: uint16_t
      - name: current_SRAM_type
        type: uint16_t
      - name: cache_speed
        type: uint8_t
      - name: error_connection_type
        type: uint8_t
      - name: system_cache_type
        type: uint8_t
      - name: associativity
        type: uint8_t
      item_type: struct
      name: smbios_type_7
      pos:
        line_end: 164
        line_start: 152
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: internal_reference_designator_str
        type: uint8_t
      - name: internal_connector_type
        type: uint8_t
      - name: external_reference_designator_str
        type: uint8_t
      - name: external_connector_type
        type: uint8_t
      - name: port_type
        type: uint8_t
      item_type: struct
      name: smbios_type_8
      pos:
        line_end: 174
        line_start: 167
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: slot_designation_str
        type: uint8_t
      - name: slot_type
        type: uint8_t
      - name: slot_data_bus_width
        type: uint8_t
      - name: current_usage
        type: uint8_t
      - name: slot_length
        type: uint8_t
      - name: slot_id
        type: uint16_t
      - name: slot_characteristics_1
        type: uint8_t
      - name: slot_characteristics_2
        type: uint8_t
      item_type: struct
      name: smbios_type_9
      pos:
        line_end: 187
        line_start: 177
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: count
        type: uint8_t
      item_type: struct
      name: smbios_type_11
      pos:
        line_end: 193
        line_start: 190
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: location
        type: uint8_t
      - name: use
        type: uint8_t
      - name: error_correction
        type: uint8_t
      - name: maximum_capacity
        type: uint32_t
      - name: memory_error_information_handle
        type: uint16_t
      - name: number_of_memory_devices
        type: uint16_t
      item_type: struct
      name: smbios_type_16
      pos:
        line_end: 206
        line_start: 198
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: physical_memory_array_handle
        type: uint16_t
      - name: memory_error_information_handle
        type: uint16_t
      - name: total_width
        type: uint16_t
      - name: data_width
        type: uint16_t
      - name: size
        type: uint16_t
      - name: form_factor
        type: uint8_t
      - name: device_set
        type: uint8_t
      - name: device_locator_str
        type: uint8_t
      - name: bank_locator_str
        type: uint8_t
      - name: memory_type
        type: uint8_t
      - name: type_detail
        type: uint16_t
      - name: speed
        type: uint16_t
      - name: manufacturer_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: asset_tag_str
        type: uint8_t
      - name: part_number_str
        type: uint8_t
      item_type: struct
      name: smbios_type_17
      pos:
        line_end: 229
        line_start: 211
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: starting_address
        type: uint32_t
      - name: ending_address
        type: uint32_t
      - name: memory_array_handle
        type: uint16_t
      - name: partition_width
        type: uint8_t
      item_type: struct
      name: smbios_type_19
      pos:
        line_end: 238
        line_start: 232
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: starting_address
        type: uint32_t
      - name: ending_address
        type: uint32_t
      - name: memory_device_handle
        type: uint16_t
      - name: memory_array_mapped_address_handle
        type: uint16_t
      - name: partition_row_position
        type: uint8_t
      - name: interleave_position
        type: uint8_t
      - name: interleaved_data_depth
        type: uint8_t
      item_type: struct
      name: smbios_type_20
      pos:
        line_end: 250
        line_start: 241
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: location_str
        type: uint8_t
      - name: manufacturer_str
        type: uint8_t
      - name: manufacturer_date_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: device_name_str
        type: uint8_t
      - name: device_chemistry
        type: uint8_t
      - name: device_capacity
        type: uint16_t
      - name: device_voltage
        type: uint16_t
      - name: sbds_version_number
        type: uint8_t
      - name: max_error
        type: uint8_t
      - name: sbds_serial_number
        type: uint16_t
      - name: sbds_manufacturer_date
        type: uint16_t
      - name: sbds_device_chemistry
        type: uint8_t
      - name: design_capacity_multiplier
        type: uint8_t
      - name: oem_specific
        type: uint32_t
      item_type: struct
      name: smbios_type_22
      pos:
        line_end: 270
        line_start: 253
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: description_str
        type: uint8_t
      - name: location_and_status
        type: uint8_t
      - name: maximum_value
        type: uint16_t
      - name: minimum_value
        type: uint16_t
      - name: resolution
        type: uint16_t
      - name: tolerance
        type: uint16_t
      - name: accuracy
        type: uint16_t
      - name: oem_defined
        type: uint32_t
      - name: nominal_value
        type: uint16_t
      item_type: struct
      name: smbios_type_26
      pos:
        line_end: 284
        line_start: 273
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: temperature_probe_handle
        type: uint16_t
      - name: device_type_and_status
        type: uint8_t
      - name: cooling_unit_group
        type: uint8_t
      - name: oem_defined
        type: uint32_t
      - name: nominal_speed
        type: uint16_t
      - name: description_str
        type: uint8_t
      item_type: struct
      name: smbios_type_27
      pos:
        line_end: 295
        line_start: 287
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: description_str
        type: uint8_t
      - name: location_and_status
        type: uint8_t
      - name: maximum_value
        type: uint16_t
      - name: minimum_value
        type: uint16_t
      - name: resolution
        type: uint16_t
      - name: tolerance
        type: uint16_t
      - name: accuracy
        type: uint16_t
      - name: oem_defined
        type: uint32_t
      - name: nominal_value
        type: uint16_t
      item_type: struct
      name: smbios_type_28
      pos:
        line_end: 309
        line_start: 298
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: reserved[6]
        type: uint8_t
      - name: boot_status
        type: uint8_t
      item_type: struct
      name: smbios_type_32
      pos:
        line_end: 316
        line_start: 312
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      - name: power_unit_group
        type: uint8_t
      - name: location_str
        type: uint8_t
      - name: device_name_str
        type: uint8_t
      - name: manufacturer_str
        type: uint8_t
      - name: serial_number_str
        type: uint8_t
      - name: asset_tag_number_str
        type: uint8_t
      - name: model_part_number_str
        type: uint8_t
      - name: revision_level_str
        type: uint8_t
      - name: max_capacity
        type: uint16_t
      - name: characteristics
        type: uint16_t
      - name: input_voltage_probe_handle
        type: uint16_t
      - name: cooling_device_handle
        type: uint16_t
      - name: input_current_probe_handle
        type: uint16_t
      item_type: struct
      name: smbios_type_39
      pos:
        line_end: 334
        line_start: 319
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    - fields:
      - name: header
        type: struct smbios_structure_header
      item_type: struct
      name: smbios_type_127
      pos:
        line_end: 339
        line_start: 337
        source_file: /src/xen/tools/firmware/hvmloader/smbios_types.h
    typedefs: []
    union: []
- function_names:
  - ring_wait
  - xenbus_setup
  - xenbus_shutdown
  - ring_write
  - ring_read
  - xenbus_send
  - xenbus_recv
  - xenstore_read
  - xenstore_write
  source_file: /src/xen/tools/firmware/hvmloader/xenbus.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SEGMENTS
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/tools/firmware/hvmloader/xenbus.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: len
        type: uint32_t
      item_type: struct
      name: seg[MAX_SEGMENTS]
      pos:
        line_end: 182
        line_start: 179
        source_file: /src/xen/tools/firmware/hvmloader/xenbus.c
    typedefs: []
    union: []
- function_names:
  - GET_APIC_ID
  - SET_APIC_ID
  - GET_APIC_VERSION
  - GET_APIC_MAXLVT
  - APIC_INTEGRATED
  - APIC_XAPIC
  - GET_APIC_LOGICAL_ID
  - SET_APIC_LOGICAL_ID
  - GET_APIC_DEST_FIELD
  - SET_APIC_DEST_FIELD
  - GET_APIC_TIMER_BASE
  - SET_APIC_TIMER_BASE
  - GET_APIC_DELIVERY_MODE
  - SET_APIC_DELIVERY_MODE
  source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APIC_DEFAULT_PHYS_BASE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xfee00000'
    - item_type: preproc_def
      name: APIC_ID
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: APIC_ID_MASK
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (0xFFu<<24)
    - item_type: preproc_def
      name: APIC_LVR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: APIC_LVR_MASK
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xFF00FF'
    - item_type: preproc_def
      name: APIC_TASKPRI
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: APIC_TPRI_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_ARBPRI
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: APIC_ARBPRI_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_PROCPRI
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: APIC_EOI
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xB0'
    - item_type: preproc_def
      name: APIC_EIO_ACK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APIC_RRR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: APIC_LDR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xD0'
    - item_type: preproc_def
      name: APIC_LDR_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (0xFF<<24)
    - item_type: preproc_def
      name: APIC_ALL_CPUS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_DFR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xE0'
    - item_type: preproc_def
      name: APIC_DFR_CLUSTER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: 0x0FFFFFFFul
    - item_type: preproc_def
      name: APIC_DFR_FLAT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: 0xFFFFFFFFul
    - item_type: preproc_def
      name: APIC_SPIV
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: APIC_SPIV_FOCUS_DISABLED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: APIC_SPIV_APIC_ENABLED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: APIC_ISR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: APIC_TMR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x180'
    - item_type: preproc_def
      name: APIC_IRR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: APIC_ESR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x280'
    - item_type: preproc_def
      name: APIC_ESR_SEND_CS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00001'
    - item_type: preproc_def
      name: APIC_ESR_RECV_CS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00002'
    - item_type: preproc_def
      name: APIC_ESR_SEND_ACC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00004'
    - item_type: preproc_def
      name: APIC_ESR_RECV_ACC
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00008'
    - item_type: preproc_def
      name: APIC_ESR_SENDILL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00020'
    - item_type: preproc_def
      name: APIC_ESR_RECVILL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00040'
    - item_type: preproc_def
      name: APIC_ESR_ILLREGA
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00080'
    - item_type: preproc_def
      name: APIC_ICR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x300'
    - item_type: preproc_def
      name: APIC_DEST_SELF
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: APIC_DEST_ALLINC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: APIC_DEST_ALLBUT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xC0000'
    - item_type: preproc_def
      name: APIC_ICR_RR_MASK
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x30000'
    - item_type: preproc_def
      name: APIC_ICR_RR_INVALID
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_ICR_RR_INPROG
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: APIC_ICR_RR_VALID
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: APIC_INT_LEVELTRIG
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x08000'
    - item_type: preproc_def
      name: APIC_INT_ASSERT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x04000'
    - item_type: preproc_def
      name: APIC_ICR_BUSY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x01000'
    - item_type: preproc_def
      name: APIC_DEST_LOGICAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: APIC_DEST_PHYSICAL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_DM_FIXED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_DM_LOWEST
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00100'
    - item_type: preproc_def
      name: APIC_DM_SMI
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00200'
    - item_type: preproc_def
      name: APIC_DM_REMRD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00300'
    - item_type: preproc_def
      name: APIC_DM_NMI
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00400'
    - item_type: preproc_def
      name: APIC_DM_INIT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00500'
    - item_type: preproc_def
      name: APIC_DM_STARTUP
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00600'
    - item_type: preproc_def
      name: APIC_DM_EXTINT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x00700'
    - item_type: preproc_def
      name: APIC_VECTOR_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x000FF'
    - item_type: preproc_def
      name: APIC_ICR2
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x310'
    - item_type: preproc_def
      name: APIC_LVTT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x320'
    - item_type: preproc_def
      name: APIC_LVTTHMR
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x330'
    - item_type: preproc_def
      name: APIC_LVTPC
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x340'
    - item_type: preproc_def
      name: APIC_LVT0
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x350'
    - item_type: preproc_def
      name: APIC_LVT_TIMER_BASE_MASK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (0x3<<18)
    - item_type: preproc_def
      name: APIC_TIMER_BASE_CLKIN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APIC_TIMER_BASE_TMBASE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: APIC_TIMER_BASE_DIV
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: APIC_LVT_TIMER_PERIODIC
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<17)
    - item_type: preproc_def
      name: APIC_LVT_MASKED
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: APIC_LVT_LEVEL_TRIGGER
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<15)
    - item_type: preproc_def
      name: APIC_LVT_REMOTE_IRR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: APIC_INPUT_POLARITY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: APIC_SEND_PENDING
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: APIC_MODE_MASK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x700'
    - item_type: preproc_def
      name: APIC_MODE_FIXED
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APIC_MODE_NMI
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: APIC_MODE_EXTINT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: APIC_LVT1
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x360'
    - item_type: preproc_def
      name: APIC_LVTERR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x370'
    - item_type: preproc_def
      name: APIC_TMICT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x380'
    - item_type: preproc_def
      name: APIC_TMCCT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x390'
    - item_type: preproc_def
      name: APIC_TDCR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x3E0'
    - item_type: preproc_def
      name: APIC_TDR_DIV_TMBASE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: APIC_TDR_DIV_1
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xB'
    - item_type: preproc_def
      name: APIC_TDR_DIV_2
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APIC_TDR_DIV_4
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: APIC_TDR_DIV_8
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: APIC_TDR_DIV_16
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: APIC_TDR_DIV_32
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: APIC_TDR_DIV_64
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: APIC_TDR_DIV_128
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/firmware/hvmloader/apic_regs.h
      type_or_value: '0xA'
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_hypercalls
  - cmos_write_memory_size
  - init_vm86_tss
  - apic_setup
  - detect_bios
  - acpi_enable_sci
  - get_module_entry
  - main
  source_file: /src/xen/tools/firmware/hvmloader/hvmloader.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TSS_SIZE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/tools/firmware/hvmloader/hvmloader.c
      type_or_value: (3 * 128)
    - item_type: preproc_def
      name: PIIX4_SMI_CMD_IOPORT
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/tools/firmware/hvmloader/hvmloader.c
      type_or_value: '0xb2'
    - item_type: preproc_def
      name: PIIX4_ACPI_ENABLE
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/tools/firmware/hvmloader/hvmloader.c
      type_or_value: '0xf1'
    structs:
    - fields:
      - name: '*key'
        type: char
      - name: '*bios'
        type: struct bios_config
      item_type: struct
      name: bios_info
      pos:
        line_end: 232
        line_start: 229
        source_file: /src/xen/tools/firmware/hvmloader/hvmloader.c
    typedefs: []
    union: []
- function_names:
  - ovmf_setup_bios_info
  - ovmf_finish_bios_info
  - ovmf_load
  - ovmf_acpi_build_tables
  - ovmf_create_smbios_tables
  - ovmf_setup_e820
  source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OVMF_MAXOFFSET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: 0x000FFFFFULL
    - item_type: preproc_def
      name: OVMF_END
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: 0x100000000ULL
    - item_type: preproc_def
      name: LOWCHUNK_BEGIN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: '0x000F0000'
    - item_type: preproc_def
      name: LOWCHUNK_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: LOWCHUNK_MAXOFFSET
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: '0x0000FFFF'
    - item_type: preproc_def
      name: OVMF_INFO_PHYSICAL_ADDRESS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: OVMF_INFO_MAX_TABLES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
      type_or_value: '4'
    structs:
    - fields:
      - name: signature[14]
        type: char
      - name: length
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: tables
        type: uint64_t
      - name: tables_nr
        type: uint32_t
      - name: e820
        type: uint64_t
      - name: e820_nr
        type: uint32_t
      item_type: struct
      name: ovmf_info
      pos:
        line_end: 61
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/ovmf.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCI_VENDOR_ID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: PCI_DEVICE_ID
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: PCI_COMMAND
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: PCI_COMMAND_IO
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x1 '
    - item_type: preproc_def
      name: PCI_COMMAND_MEMORY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x2 '
    - item_type: preproc_def
      name: PCI_COMMAND_MASTER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x4 '
    - item_type: preproc_def
      name: PCI_COMMAND_SPECIAL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x8 '
    - item_type: preproc_def
      name: PCI_COMMAND_INVALIDATE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: PCI_COMMAND_VGA_PALETTE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: PCI_COMMAND_PARITY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: PCI_COMMAND_WAIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x80 '
    - item_type: preproc_def
      name: PCI_COMMAND_SERR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x100 '
    - item_type: preproc_def
      name: PCI_COMMAND_FAST_BACK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x200 '
    - item_type: preproc_def
      name: PCI_COMMAND_INTX_DISABLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x400 '
    - item_type: preproc_def
      name: PCI_STATUS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: PCI_STATUS_CAP_LIST
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: PCI_STATUS_66MHZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: PCI_STATUS_UDF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: PCI_STATUS_FAST_BACK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x80 '
    - item_type: preproc_def
      name: PCI_STATUS_PARITY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x100 '
    - item_type: preproc_def
      name: PCI_STATUS_DEVSEL_MASK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x600 '
    - item_type: preproc_def
      name: PCI_STATUS_DEVSEL_FAST
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: PCI_STATUS_DEVSEL_MEDIUM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: PCI_STATUS_DEVSEL_SLOW
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: PCI_STATUS_SIG_TARGET_ABORT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x800 '
    - item_type: preproc_def
      name: PCI_STATUS_REC_TARGET_ABORT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: PCI_STATUS_REC_MASTER_ABORT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x2000 '
    - item_type: preproc_def
      name: PCI_STATUS_SIG_SYSTEM_ERROR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x4000 '
    - item_type: preproc_def
      name: PCI_STATUS_DETECTED_PARITY
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x8000 '
    - item_type: preproc_def
      name: PCI_CLASS_REVISION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: PCI_REVISION_ID
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: PCI_CLASS_PROG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x09 '
    - item_type: preproc_def
      name: PCI_CLASS_DEVICE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0a '
    - item_type: preproc_def
      name: PCI_CACHE_LINE_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0c '
    - item_type: preproc_def
      name: PCI_LATENCY_TIMER
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0d '
    - item_type: preproc_def
      name: PCI_HEADER_TYPE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0e '
    - item_type: preproc_def
      name: PCI_HEADER_TYPE_NORMAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCI_HEADER_TYPE_BRIDGE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PCI_HEADER_TYPE_CARDBUS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PCI_BIST
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0f '
    - item_type: preproc_def
      name: PCI_BIST_CODE_MASK
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x0f '
    - item_type: preproc_def
      name: PCI_BIST_START
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: PCI_BIST_CAPABLE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x80 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_0
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x10 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_1
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x14 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_2
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x18 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_3
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x1c '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_4
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_5
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x24 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_SPACE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_SPACE_IO
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_SPACE_MEMORY
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_TYPE_MASK
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_TYPE_32
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_TYPE_1M
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_TYPE_64
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_PREFETCH
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x08 '
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_MEM_MASK
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: (~0x0fUL)
    - item_type: preproc_def
      name: PCI_BASE_ADDRESS_IO_MASK
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: (~0x03UL)
    - item_type: preproc_def
      name: PCI_CARDBUS_CIS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x28'
    - item_type: preproc_def
      name: PCI_SUBSYSTEM_VENDOR_ID
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x2c'
    - item_type: preproc_def
      name: PCI_SUBSYSTEM_ID
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x2e'
    - item_type: preproc_def
      name: PCI_ROM_ADDRESS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x30 '
    - item_type: preproc_def
      name: PCI_ROM_ADDRESS_ENABLE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PCI_ROM_ADDRESS_MASK
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: (~0x7ffUL)
    - item_type: preproc_def
      name: PCI_CAPABILITY_LIST
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x34 '
    - item_type: preproc_def
      name: PCI_INTERRUPT_LINE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x3c '
    - item_type: preproc_def
      name: PCI_INTERRUPT_PIN
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x3d '
    - item_type: preproc_def
      name: PCI_MIN_GNT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x3e '
    - item_type: preproc_def
      name: PCI_MAX_LAT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0x3f '
    - item_type: preproc_def
      name: PCI_INTEL_OPREGION
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/tools/firmware/hvmloader/pci_regs.h
      type_or_value: '0xfc '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/hvmloader/pir_types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_PIR_SLOTS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/hvmloader/pir_types.h
      type_or_value: '6'
    structs:
    - fields:
      - name: bus
        type: uint8_t
      - name: dev
        type: uint8_t
      - name: link_a
        type: uint8_t
      - name: bitmap_a
        type: uint16_t
      - name: link_b
        type: uint8_t
      - name: bitmap_b
        type: uint16_t
      - name: link_c
        type: uint8_t
      - name: bitmap_c
        type: uint16_t
      - name: link_d
        type: uint8_t
      - name: bitmap_d
        type: uint16_t
      - name: slot
        type: uint8_t
      - name: reserved
        type: uint8_t
      item_type: struct
      name: pir_slot
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/xen/tools/firmware/hvmloader/pir_types.h
    - fields:
      - name: signature[4]
        type: char
      - name: version
        type: uint16_t
      - name: length
        type: uint16_t
      - name: router_bus
        type: uint8_t
      - name: router_devfn
        type: uint8_t
      - name: pci_irqs
        type: uint16_t
      - name: router_vid
        type: uint16_t
      - name: router_did
        type: uint16_t
      - name: miniport_data
        type: uint32_t
      - name: reserved[11]
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: slots[0]
        type: struct pir_slot
      item_type: struct
      name: pir_table
      pos:
        line_end: 57
        line_start: 44
        source_file: /src/xen/tools/firmware/hvmloader/pir_types.h
    typedefs: []
    union: []
- function_names:
  - offsetof
  source_file: /src/xen/tools/firmware/include/stddef.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/include/stddef.h
      type_or_value: ((void*)0)
    structs: []
    typedefs:
    - item_type: typedef
      name: size_t
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/xen/tools/firmware/include/stddef.h
      type: __SIZE_TYPE__
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/include/stdint.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: (-0x7f-1)
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: (-0x7fff-1)
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: (-0x7fffffff-1)
    - item_type: preproc_def
      name: INT64_MIN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: (-0x7fffffffffffffffll-1)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: '0x7fff'
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: INT64_MAX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: 0x7fffffffffffffffll
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: 0xffffffffu
    - item_type: preproc_def
      name: UINT64_MAX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: 0xffffffffffffffffull
    - item_type: preproc_def
      name: UINTPTR_MAX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/firmware/include/stdint.h
      type_or_value: __UINTPTR_MAX__
    structs: []
    typedefs:
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __INT8_TYPE__
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __UINT8_TYPE__
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __INT16_TYPE__
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __UINT16_TYPE__
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __INT32_TYPE__
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __UINT32_TYPE__
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __INT64_TYPE__
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __UINT64_TYPE__
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/tools/firmware/include/stdint.h
      type: __UINTPTR_TYPE__
    union: []
- function_names:
  - va_copy
  - va_start
  - va_end
  source_file: /src/xen/tools/firmware/include/stdarg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: va_arg
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/include/stdarg.h
      type_or_value: __builtin_va_arg
    structs: []
    typedefs:
    - item_type: typedef
      name: va_list
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/xen/tools/firmware/include/stdarg.h
      type: __builtin_va_list
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/include/stdbool.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: bool
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/firmware/include/stdbool.h
      type_or_value: _Bool
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/firmware/include/stdbool.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/include/stdbool.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __bool_true_false_are_defined
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/tools/firmware/include/stdbool.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/vgabios/vgafonts.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/vgabios/vbe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VBE_OEM_SOFTWARE_REV
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/vgabios/vbe.c
      type_or_value: 0x0002;
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/firmware/vgabios/vbetables-gen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VBE_DISPI_TOTAL_VIDEO_MEMORY_MB
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/firmware/vgabios/vbetables-gen.c
      type_or_value: '16'
    structs:
    - fields:
      - name: width
        type: int
      - name: height
        type: int
      - name: depth
        type: int
      - name: mode
        type: int
      item_type: struct
      name: ModeInfo
      pos:
        line_end: 11
        line_start: 6
        source_file: /src/xen/tools/firmware/vgabios/vbetables-gen.c
    typedefs: []
    union: []
- function_names:
  - SET_AL
  - SET_BL
  - SET_CL
  - SET_DL
  - SET_AH
  - SET_BH
  - SET_CH
  - SET_DH
  - GET_AL
  - GET_BL
  - GET_CL
  - GET_DL
  - GET_AH
  - GET_BH
  - GET_CH
  - GET_DH
  - SET_CF
  - CLEAR_CF
  - GET_CF
  - SET_ZF
  - CLEAR_ZF
  - GET_ZF
  - SCREEN_SIZE
  - SCREEN_MEM_START
  - SCREEN_IO_START
  source_file: /src/xen/tools/firmware/vgabios/vgabios.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SCROLL_DOWN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SCROLL_UP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NO_ATTR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type_or_value: '2'
    - item_type: preproc_def
      name: WITH_ATTR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type_or_value: '3'
    structs: []
    typedefs:
    - item_type: typedef
      name: Bit8u
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type: unsigned char
    - item_type: typedef
      name: Bit16u
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type: unsigned short
    - item_type: typedef
      name: Bit32u
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type: unsigned long
    - item_type: typedef
      name: Boolean
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/xen/tools/firmware/vgabios/vgabios.h
      type: unsigned short
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/vgabios/clext.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PM_BIOSMEM_CURRENT_MODE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '0x449'
    - item_type: preproc_def
      name: PM_BIOSMEM_CRTC_ADDRESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '0x463'
    - item_type: preproc_def
      name: PM_BIOSMEM_VBE_MODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '0x4BA'
    - item_type: preproc_def
      name: PM_BIOSMEM_VBE_POWER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '0x4BC '
    - item_type: preproc_def
      name: CIRRUS_MODE_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '26'
    - item_type: preproc_def
      name: CIRRUS_PM16INFO_SIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/vgabios/clext.c
      type_or_value: '20'
    structs:
    - fields:
      - name: mode
        type: unsigned short
      - name: width
        type: unsigned short
      - name: height
        type: unsigned short
      - name: depth
        type: unsigned short
      - name: hidden_dac
        type: unsigned short
      - name: '*seq'
        type: unsigned short
      - name: '*graph'
        type: unsigned short
      - name: '*crtc'
        type: unsigned short
      - name: bitsperpixel
        type: unsigned char
      - name: vesacolortype
        type: unsigned char
      - name: vesaredmask
        type: unsigned char
      - name: vesaredpos
        type: unsigned char
      - name: vesagreenmask
        type: unsigned char
      - name: vesagreenpos
        type: unsigned char
      - name: vesabluemask
        type: unsigned char
      - name: vesabluepos
        type: unsigned char
      - name: vesareservedmask
        type: unsigned char
      - name: vesareservedpos
        type: unsigned char
      item_type: struct
      name: cirrus_mode_t
      pos:
        line_end: 53
        line_start: 29
        source_file: /src/xen/tools/firmware/vgabios/clext.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/vgabios/vbe.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_SUPPORTED
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x4F'
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_UNSUPPORTED
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_SUCCESSFULL
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_FAILED
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_NOT_SUPPORTED
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: VBE_RETURN_STATUS_INVALID
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: VBE_MODE_VESA_DEFINED
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: VBE_MODE_REFRESH_RATE_USE_CRTC
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: VBE_MODE_LINEAR_FRAME_BUFFER
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: VBE_MODE_PRESERVE_DISPLAY_MEMORY
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: VBE_VESA_MODE_640X400X8
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: VBE_VESA_MODE_640X480X8
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x101'
    - item_type: preproc_def
      name: VBE_VESA_MODE_800X600X4
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x102'
    - item_type: preproc_def
      name: VBE_VESA_MODE_800X600X8
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x103'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1024X768X4
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x104'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1024X768X8
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x105'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1280X1024X4
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x106'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1280X1024X8
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x107'
    - item_type: preproc_def
      name: VBE_VESA_MODE_320X200X1555
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x10D'
    - item_type: preproc_def
      name: VBE_VESA_MODE_320X200X565
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x10E'
    - item_type: preproc_def
      name: VBE_VESA_MODE_320X200X888
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x10F'
    - item_type: preproc_def
      name: VBE_VESA_MODE_640X480X1555
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x110'
    - item_type: preproc_def
      name: VBE_VESA_MODE_640X480X565
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x111'
    - item_type: preproc_def
      name: VBE_VESA_MODE_640X480X888
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x112'
    - item_type: preproc_def
      name: VBE_VESA_MODE_800X600X1555
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x113'
    - item_type: preproc_def
      name: VBE_VESA_MODE_800X600X565
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x114'
    - item_type: preproc_def
      name: VBE_VESA_MODE_800X600X888
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x115'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1024X768X1555
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x116'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1024X768X565
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x117'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1024X768X888
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x118'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1280X1024X1555
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x119'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1280X1024X565
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11A'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1280X1024X888
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11B'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1600X1200X8
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11C'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1600X1200X1555
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11D'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1600X1200X565
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11E'
    - item_type: preproc_def
      name: VBE_VESA_MODE_1600X1200X888
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x11F'
    - item_type: preproc_def
      name: VBE_OWN_MODE_320X200X8888
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x140'
    - item_type: preproc_def
      name: VBE_OWN_MODE_640X400X8888
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x141'
    - item_type: preproc_def
      name: VBE_OWN_MODE_640X480X8888
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x142'
    - item_type: preproc_def
      name: VBE_OWN_MODE_800X600X8888
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x143'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1024X768X8888
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x144'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1280X1024X8888
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x145'
    - item_type: preproc_def
      name: VBE_OWN_MODE_320X200X8
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x146'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1600X1200X8888
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x147'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1152X864X8
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x148'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1152X864X1555
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x149'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1152X864X565
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x14a'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1152X864X888
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x14b'
    - item_type: preproc_def
      name: VBE_OWN_MODE_1152X864X8888
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x14c'
    - item_type: preproc_def
      name: VBE_VESA_MODE_END_OF_LIST
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: VBE_CAPABILITY_8BIT_DAC
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: VBE_CAPABILITY_NOT_VGA_COMPATIBLE
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: VBE_CAPABILITY_RAMDAC_USE_BLANK_BIT
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: VBE_CAPABILITY_STEREOSCOPIC_SUPPORT
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: VBE_CAPABILITY_STEREO_VIA_VESA_EVC
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_SUPPORTED
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_EXTENDED_INFORMATION_AVAILABLE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_TTY_BIOS_SUPPORT
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_COLOR_MODE
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_GRAPHICS_MODE
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_NOT_VGA_COMPATIBLE
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_NO_VGA_COMPATIBLE_WINDOW
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_DOUBLE_SCAN_MODE
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_INTERLACE_MODE
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_HARDWARE_TRIPLE_BUFFER
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_HARDWARE_STEREOSCOPIC_DISPLAY
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: VBE_MODE_ATTRIBUTE_DUAL_DISPLAY_START_ADDRESS
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: VBE_MODE_ATTTRIBUTE_LFB_ONLY
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: ( VBE_MODE_ATTRIBUTE_NO_VGA_COMPATIBLE_WINDOW | VBE_MODE_ATTRIBUTE_LINEAR_FRAME_BUFFER_MODE
        )
    - item_type: preproc_def
      name: VBE_WINDOW_ATTRIBUTE_RELOCATABLE
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VBE_WINDOW_ATTRIBUTE_READABLE
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: VBE_WINDOW_ATTRIBUTE_WRITEABLE
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_TEXT_MODE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_CGA_GRAPHICS
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_HERCULES_GRAPHICS
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_PLANAR
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_PACKED_PIXEL
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_NON_CHAIN_4_256
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_DIRECT_COLOR
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: VBE_MEMORYMODEL_YUV
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: VBE_DIRECTCOLOR_COLOR_RAMP_PROGRAMMABLE
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VBE_DIRECTCOLOR_RESERVED_BITS_AVAILABLE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: VBE_DISPI_BANK_ADDRESS
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xA0000'
    - item_type: preproc_def
      name: VBE_DISPI_BANK_SIZE_KB
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '64'
    - item_type: preproc_def
      name: VBE_DISPI_MAX_XRES
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '2560'
    - item_type: preproc_def
      name: VBE_DISPI_MAX_YRES
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '1600'
    - item_type: preproc_def
      name: VBE_DISPI_IOPORT_INDEX
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01CE'
    - item_type: preproc_def
      name: VBE_DISPI_IOPORT_DATA
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01CF'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_ID
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_XRES
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_YRES
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_BPP
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_ENABLE
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_BANK
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_VIRT_WIDTH
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_VIRT_HEIGHT
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_X_OFFSET
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_Y_OFFSET
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_VIDEO_MEMORY_64K
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xa'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_LFB_ADDRESS_H
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xb'
    - item_type: preproc_def
      name: VBE_DISPI_INDEX_LFB_ADDRESS_L
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xc'
    - item_type: preproc_def
      name: VBE_DISPI_LFB_PHYSICAL_ADDRESS
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xE0000000'
    - item_type: preproc_def
      name: VBE_DISPI_ID0
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xB0C0'
    - item_type: preproc_def
      name: VBE_DISPI_ID1
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xB0C1'
    - item_type: preproc_def
      name: VBE_DISPI_ID2
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xB0C2'
    - item_type: preproc_def
      name: VBE_DISPI_ID3
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xB0C3'
    - item_type: preproc_def
      name: VBE_DISPI_ID4
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0xB0C4'
    - item_type: preproc_def
      name: VBE_DISPI_DISABLED
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: VBE_DISPI_ENABLED
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VBE_DISPI_GETCAPS
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: VBE_DISPI_8BIT_DAC
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: VBE_DISPI_LFB_ENABLED
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: VBE_DISPI_NOCLEARMEM
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
      type_or_value: '0x80'
    structs:
    - fields:
      - name: VbeSignature[4]
        type: Bit8u
      - name: VbeVersion
        type: Bit16u
      - name: OemStringPtr_Off
        type: Bit16u
      - name: OemStringPtr_Seg
        type: Bit16u
      - name: Capabilities[4]
        type: Bit8u
      - name: VideoModePtr_Off
        type: Bit16u
      - name: VideoModePtr_Seg
        type: Bit16u
      - name: TotalMemory
        type: Bit16u
      - name: OemSoftwareRev
        type: Bit16u
      - name: OemVendorNamePtr_Off
        type: Bit16u
      - name: OemVendorNamePtr_Seg
        type: Bit16u
      - name: OemProductNamePtr_Off
        type: Bit16u
      - name: OemProductNamePtr_Seg
        type: Bit16u
      - name: OemProductRevPtr_Off
        type: Bit16u
      - name: OemProductRevPtr_Seg
        type: Bit16u
      - name: Reserved[111]
        type: Bit16u
      - name: OemData[256]
        type: Bit8u
      item_type: struct
      name: VbeInfoBlock
      pos:
        line_end: 40
        line_start: 21
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
    - fields:
      - name: ModeAttributes
        type: Bit16u
      - name: WinAAttributes
        type: Bit8u
      - name: WinBAttributes
        type: Bit8u
      - name: WinGranularity
        type: Bit16u
      - name: WinSize
        type: Bit16u
      - name: WinASegment
        type: Bit16u
      - name: WinBSegment
        type: Bit16u
      - name: WinFuncPtr
        type: Bit32u
      - name: BytesPerScanLine
        type: Bit16u
      - name: XResolution
        type: Bit16u
      - name: YResolution
        type: Bit16u
      - name: XCharSize
        type: Bit8u
      - name: YCharSize
        type: Bit8u
      - name: NumberOfPlanes
        type: Bit8u
      - name: BitsPerPixel
        type: Bit8u
      - name: NumberOfBanks
        type: Bit8u
      - name: MemoryModel
        type: Bit8u
      - name: BankSize
        type: Bit8u
      - name: NumberOfImagePages
        type: Bit8u
      - name: Reserved_page
        type: Bit8u
      - name: RedMaskSize
        type: Bit8u
      - name: RedFieldPosition
        type: Bit8u
      - name: GreenMaskSize
        type: Bit8u
      - name: GreenFieldPosition
        type: Bit8u
      - name: BlueMaskSize
        type: Bit8u
      - name: BlueFieldPosition
        type: Bit8u
      - name: RsvdMaskSize
        type: Bit8u
      - name: RsvdFieldPosition
        type: Bit8u
      - name: DirectColorModeInfo
        type: Bit8u
      - name: PhysBasePtr
        type: Bit32u
      - name: OffScreenMemOffset
        type: Bit32u
      - name: OffScreenMemSize
        type: Bit16u
      - name: LinBytesPerScanLine
        type: Bit16u
      - name: BnkNumberOfPages
        type: Bit8u
      - name: LinNumberOfPages
        type: Bit8u
      - name: LinRedMaskSize
        type: Bit8u
      - name: LinRedFieldPosition
        type: Bit8u
      - name: LinGreenMaskSize
        type: Bit8u
      - name: LinGreenFieldPosition
        type: Bit8u
      - name: LinBlueMaskSize
        type: Bit8u
      - name: LinBlueFieldPosition
        type: Bit8u
      - name: LinRsvdMaskSize
        type: Bit8u
      - name: LinRsvdFieldPosition
        type: Bit8u
      - name: MaxPixelClock
        type: Bit32u
      item_type: struct
      name: ModeInfoBlockCompact
      pos:
        line_end: 97
        line_start: 45
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
    - fields:
      - name: ModeAttributes
        type: Bit16u
      - name: WinAAttributes
        type: Bit8u
      - name: WinBAttributes
        type: Bit8u
      - name: WinGranularity
        type: Bit16u
      - name: WinSize
        type: Bit16u
      - name: WinASegment
        type: Bit16u
      - name: WinBSegment
        type: Bit16u
      - name: WinFuncPtr
        type: Bit32u
      - name: BytesPerScanLine
        type: Bit16u
      - name: XResolution
        type: Bit16u
      - name: YResolution
        type: Bit16u
      - name: XCharSize
        type: Bit8u
      - name: YCharSize
        type: Bit8u
      - name: NumberOfPlanes
        type: Bit8u
      - name: BitsPerPixel
        type: Bit8u
      - name: NumberOfBanks
        type: Bit8u
      - name: MemoryModel
        type: Bit8u
      - name: BankSize
        type: Bit8u
      - name: NumberOfImagePages
        type: Bit8u
      - name: Reserved_page
        type: Bit8u
      - name: RedMaskSize
        type: Bit8u
      - name: RedFieldPosition
        type: Bit8u
      - name: GreenMaskSize
        type: Bit8u
      - name: GreenFieldPosition
        type: Bit8u
      - name: BlueMaskSize
        type: Bit8u
      - name: BlueFieldPosition
        type: Bit8u
      - name: RsvdMaskSize
        type: Bit8u
      - name: RsvdFieldPosition
        type: Bit8u
      - name: DirectColorModeInfo
        type: Bit8u
      - name: PhysBasePtr
        type: Bit32u
      - name: OffScreenMemOffset
        type: Bit32u
      - name: OffScreenMemSize
        type: Bit16u
      - name: LinBytesPerScanLine
        type: Bit16u
      - name: BnkNumberOfPages
        type: Bit8u
      - name: LinNumberOfPages
        type: Bit8u
      - name: LinRedMaskSize
        type: Bit8u
      - name: LinRedFieldPosition
        type: Bit8u
      - name: LinGreenMaskSize
        type: Bit8u
      - name: LinGreenFieldPosition
        type: Bit8u
      - name: LinBlueMaskSize
        type: Bit8u
      - name: LinBlueFieldPosition
        type: Bit8u
      - name: LinRsvdMaskSize
        type: Bit8u
      - name: LinRsvdFieldPosition
        type: Bit8u
      - name: MaxPixelClock
        type: Bit32u
      - name: Reserved[189]
        type: Bit8u
      item_type: struct
      name: ModeInfoBlock
      pos:
        line_end: 151
        line_start: 99
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
    - fields:
      - name: mode
        type: Bit16u
      - name: info
        type: ModeInfoBlockCompact
      item_type: struct
      name: ModeInfoListItem
      pos:
        line_end: 157
        line_start: 153
        source_file: /src/xen/tools/firmware/vgabios/vbe.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/firmware/vgabios/vgatables.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIOSMEM_SEG
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: BIOSMEM_INITIAL_MODE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: BIOSMEM_CURRENT_MODE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x49'
    - item_type: preproc_def
      name: BIOSMEM_NB_COLS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x4A'
    - item_type: preproc_def
      name: BIOSMEM_PAGE_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x4C'
    - item_type: preproc_def
      name: BIOSMEM_CURRENT_START
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x4E'
    - item_type: preproc_def
      name: BIOSMEM_CURSOR_POS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: BIOSMEM_CURSOR_TYPE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: BIOSMEM_CURRENT_PAGE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x62'
    - item_type: preproc_def
      name: BIOSMEM_CRTC_ADDRESS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x63'
    - item_type: preproc_def
      name: BIOSMEM_CURRENT_MSR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x65'
    - item_type: preproc_def
      name: BIOSMEM_CURRENT_PAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x66'
    - item_type: preproc_def
      name: BIOSMEM_NB_ROWS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x84'
    - item_type: preproc_def
      name: BIOSMEM_CHAR_HEIGHT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x85'
    - item_type: preproc_def
      name: BIOSMEM_VIDEO_CTL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x87'
    - item_type: preproc_def
      name: BIOSMEM_SWITCHES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x88'
    - item_type: preproc_def
      name: BIOSMEM_MODESET_CTL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x89'
    - item_type: preproc_def
      name: BIOSMEM_DCC_INDEX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x8A'
    - item_type: preproc_def
      name: BIOSMEM_VS_POINTER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xA8'
    - item_type: preproc_def
      name: BIOSMEM_VBE_FLAG
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xB9'
    - item_type: preproc_def
      name: BIOSMEM_VBE_MODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xBA'
    - item_type: preproc_def
      name: BIOSMEM_VBE_POWER
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xBC'
    - item_type: preproc_def
      name: VGAREG_ACTL_ADDRESS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c0'
    - item_type: preproc_def
      name: VGAREG_ACTL_WRITE_DATA
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c0'
    - item_type: preproc_def
      name: VGAREG_ACTL_READ_DATA
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c1'
    - item_type: preproc_def
      name: VGAREG_INPUT_STATUS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c2'
    - item_type: preproc_def
      name: VGAREG_WRITE_MISC_OUTPUT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c2'
    - item_type: preproc_def
      name: VGAREG_VIDEO_ENABLE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c3'
    - item_type: preproc_def
      name: VGAREG_SEQU_ADDRESS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c4'
    - item_type: preproc_def
      name: VGAREG_SEQU_DATA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c5'
    - item_type: preproc_def
      name: VGAREG_PEL_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c6'
    - item_type: preproc_def
      name: VGAREG_DAC_STATE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c7'
    - item_type: preproc_def
      name: VGAREG_DAC_READ_ADDRESS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c7'
    - item_type: preproc_def
      name: VGAREG_DAC_WRITE_ADDRESS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c8'
    - item_type: preproc_def
      name: VGAREG_DAC_DATA
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3c9'
    - item_type: preproc_def
      name: VGAREG_READ_FEATURE_CTL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3ca'
    - item_type: preproc_def
      name: VGAREG_READ_MISC_OUTPUT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3cc'
    - item_type: preproc_def
      name: VGAREG_GRDC_ADDRESS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3ce'
    - item_type: preproc_def
      name: VGAREG_GRDC_DATA
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3cf'
    - item_type: preproc_def
      name: VGAREG_MDA_CRTC_ADDRESS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3b4'
    - item_type: preproc_def
      name: VGAREG_MDA_CRTC_DATA
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3b5'
    - item_type: preproc_def
      name: VGAREG_VGA_CRTC_ADDRESS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3d4'
    - item_type: preproc_def
      name: VGAREG_VGA_CRTC_DATA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3d5'
    - item_type: preproc_def
      name: VGAREG_MDA_WRITE_FEATURE_CTL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3ba'
    - item_type: preproc_def
      name: VGAREG_VGA_WRITE_FEATURE_CTL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3da'
    - item_type: preproc_def
      name: VGAREG_ACTL_RESET
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3da'
    - item_type: preproc_def
      name: VGAREG_MDA_MODECTL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3b8'
    - item_type: preproc_def
      name: VGAREG_CGA_MODECTL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3d8'
    - item_type: preproc_def
      name: VGAREG_CGA_PALETTE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x3d9'
    - item_type: preproc_def
      name: VGAMEM_GRAPH
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xA000'
    - item_type: preproc_def
      name: VGAMEM_CTEXT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xB800'
    - item_type: preproc_def
      name: VGAMEM_MTEXT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0xB000'
    - item_type: preproc_def
      name: MODE_MAX
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TEXT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: GRAPH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CTEXT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: MTEXT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: CGA
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PLANAR1
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: PLANAR4
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: LINEAR8
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: LINEAR15
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: LINEAR16
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: LINEAR24
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: LINEAR32
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: DAC_MAX_MODEL
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
      type_or_value: '3'
    structs:
    - fields:
      - name: svgamode
        type: Bit8u
      - name: class
        type: Bit8u
      - name: memmodel
        type: Bit8u
      - name: pixbits
        type: Bit8u
      - name: sstart
        type: Bit16u
      - name: pelmask
        type: Bit8u
      - name: dacmodel
        type: Bit8u
      item_type: struct
      name: VGAMODES
      pos:
        line_end: 105
        line_start: 97
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
    - fields:
      - name: twidth
        type: Bit8u
      - name: theightm1
        type: Bit8u
      - name: cheight
        type: Bit8u
      - name: slength_l
        type: Bit8u
      - name: slength_h
        type: Bit8u
      - name: sequ_regs[4]
        type: Bit8u
      - name: miscreg
        type: Bit8u
      - name: crtc_regs[25]
        type: Bit8u
      - name: actl_regs[20]
        type: Bit8u
      - name: grdc_regs[9]
        type: Bit8u
      item_type: struct
      name: VideoParamTableEntry
      pos:
        line_end: 151
        line_start: 140
        source_file: /src/xen/tools/firmware/vgabios/vgatables.h
    typedefs: []
    union: []
- function_names:
  - display_splash_screen
  - display_info
  - display_string
  - switch
  - get_font_access
  - get_SS
  - unimplemented
  - unknown
  source_file: /src/xen/tools/firmware/vgabios/vgabios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASM_START
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/firmware/vgabios/vgabios.c
      type_or_value: '#asm'
    - item_type: preproc_def
      name: ASM_END
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/firmware/vgabios/vgabios.c
      type_or_value: '#endasm'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  - check
  - chksum_bios_get_offset
  - chksum_bios_calc_value
  - chksum_bios_get_value
  - chksum_bios_set_value
  - chksum_pmid_calc_value
  - chksum_pmid_get_offset
  - chksum_pmid_get_value
  - chksum_pmid_set_value
  - chksum_pcir_get_offset
  source_file: /src/xen/tools/firmware/vgabios/biossums.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_BIOS_DATA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/firmware/vgabios/biossums.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: PMID_LEN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/firmware/vgabios/biossums.c
      type_or_value: '20'
    - item_type: preproc_def
      name: PMID_CHKSUM
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/firmware/vgabios/biossums.c
      type_or_value: '19'
    - item_type: preproc_def
      name: PCIR_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/firmware/vgabios/biossums.c
      type_or_value: '24'
    structs: []
    typedefs:
    - item_type: typedef
      name: byte
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/xen/tools/firmware/vgabios/biossums.c
      type: unsigned char
    union: []
- function_names:
  - pv_hypercall_op
  - pv_hypercall_arg_present
  source_file: /src/xen/tools/xentrace/pv.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARG_MISSING
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/xentrace/pv.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ARG_32BIT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/xentrace/pv.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ARG_64BIT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/xentrace/pv.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MMU_UPDATE_PREEMPTED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/xentrace/pv.h
      type_or_value: (~(~0U>>1))
    structs: []
    typedefs: []
    union: []
- function_names:
  - kernel_addr
  - free_symbol
  - insert_symbol
  - lookup_symbol
  - print_symbol
  - read_symbol_table
  - print_flags
  - print_special
  - print_ctx_32
  - print_ctx_32on64
  - print_ctx_64
  - print_ctx
  - instr_pointer
  - stack_pointer
  - frame_pointer
  - print_ctx_32
  - print_ctx_64
  - print_ctx
  - map_page
  - read_stack_word
  - read_mem_word
  - print_stack_word
  - print_lines
  - print_mem
  - print_code
  - print_stack_addr
  - print_stack
  - dump_ctx
  - dump_all_vcpus
  - usage
  - main
  source_file: /src/xen/tools/xentrace/xenctx.c
  types:
    enum:
    - enumerators:
      - name: NOT_KERNEL_ADDR
      - name: KERNEL_TEXT_ADDR
      - name: KERNEL_DATA_ADDR
      item_type: enum
      name: type_of_addr_
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/xen/tools/xentrace/xenctx.c
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_NR_STACK_PAGES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_BYTES_PER_LINE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '32'
    - item_type: preproc_def
      name: DEFAULT_LINES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FMT_16B_WORD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%04llx"'
    - item_type: preproc_def
      name: FMT_32B_WORD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%08llx"'
    - item_type: preproc_def
      name: FMT_64B_WORD
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%016llx"'
    - item_type: preproc_def
      name: FMT_16B_WORD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%04llx"'
    - item_type: preproc_def
      name: FMT_32B_WORD
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%08llx"'
    - item_type: preproc_def
      name: FMT_64B_WORD
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%016llx"'
    - item_type: preproc_def
      name: FMT_16B_WORD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%04llx"'
    - item_type: preproc_def
      name: FMT_32B_WORD
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%08llx"'
    - item_type: preproc_def
      name: FMT_64B_WORD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '"%016llx"'
    - item_type: preproc_def
      name: MAX_BYTES_PER_LINE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '128'
    - item_type: preproc_def
      name: CR0_PE
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NONPROT_MODE_SEGMENT_SHIFT
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/tools/xentrace/xenctx.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*xc_handle'
        type: xc_interface
      - name: domid
        type: int
      - name: frame_ptrs
        type: int
      - name: stack_trace
        type: int
      - name: disp_all
        type: int
      - name: nr_stack_pages
        type: int
      - name: bytes_per_line
        type: int
      - name: lines
        type: int
      - name: decode_as_ascii
        type: int
      - name: tag_stack_dump
        type: int
      - name: tag_call_trace
        type: int
      - name: all_vcpus
        type: int
      - name: kernel_start_set
        type: int
      - name: dominfo
        type: xc_domaininfo_t
      item_type: struct
      name: xenctx
      pos:
        line_end: 95
        line_start: 74
        source_file: /src/xen/tools/xentrace/xenctx.c
    - fields:
      - name: address
        type: guest_word_t
      - name: '*name'
        type: char
      - name: '*next'
        type: struct symbol
      item_type: struct
      name: symbol
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/xen/tools/xentrace/xenctx.c
    typedefs:
    - item_type: typedef
      name: guest_word_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/xen/tools/xentrace/xenctx.c
      type: unsigned long long
    - item_type: typedef
      name: guest_word_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/xen/tools/xentrace/xenctx.c
      type: uint64_t
    - item_type: typedef
      name: guest_word_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/tools/xentrace/xenctx.c
      type: uint64_t
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/xentrace/setsize.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - QHZ_FROM_HZ
  - warn_once
  - parse_symbol_file
  - find_symbol
  - init_hvm_data
  - set_hvm_exit_reason_data
  - UPDATE_VOLUME
  - volume_clear
  - volume_summary
  - cpumask_init
  - cpumask_clear
  - cpumask_set
  - cpumask_isset
  - cpumask_union
  - cycles_to_time
  - abs_cycles_to_time
  - abs_cycles_to_global
  - scatterplot_vs_time
  - percentile
  - weighted_percentile
  - self_weighted_percentile
  - __cycles_percent
  - __summary_percent
  - summary_percent_global
  - update_cycles
  - clear_interval_cycles
  - print_cpu_affinity
  - print_cycle_percent_summary
  - print_cycle_summary
  - PRINT_SUMMARY
  - __interval_cycle_percent_output
  - interval_cycle_percent_output
  - interval_time_output
  - interval_table_output
  - interval_table_tail
  - interval_table_alloc
  - interval_list_add
  - interval_cr3_schedule_time_header
  - interval_cr3_value_check
  - cr3_time_compare
  - interval_cr3_schedule_ordered_output
  - interval_cr3_short_summary_header
  - interval_cr3_short_summary_output
  - interval_domain_value_check
  - interval_domain_short_summary_header
  - interval_domain_short_summary_output
  - interval_domain_guest_interrupt
  - interval_domain_guest_interrupt_tail
  - interval_domain_guest_interrupt_output
  - interval_domain_grant_maps_output
  - interval_callback
  - interval_header
  - interval_tail
  - update_eip
  - eip_compare
  - dump_eip
  - hvm_update_short_summary
  - hvm_short_summary
  - hvm_set_summary_handler
  - __hvm_set_summary_handler
  - hvm_set_postprocess
  - HIGH_BIT
  - is_valid_addr64
  - hvm_pf_xen_summary
  - pf_preprocess
  - _SUBFIELD
  - hvm_pf_xen_preprocess
  - is_kernel
  - hvm_pf_xen_postprocess
  - hvm_pf_xen_process
  - hvm_vlapic_vmentry_cleanup
  - hvm_vlapic_clear
  - find_vec
  - ipi_send
  - hvm_vlapic_icr_handler
  - hvm_vlapic_inject
  - hvm_vlapic_eoi_handler
  - hvm_vlapic_handler
  - enumerate_mmio
  - hvm_mmio_summary
  - hvm_mmio_assist_postprocess
  - hvm_mmio_assist_process
  - hvm_inj_virq_process
  - update_io_address
  - hvm_io_address_summary
  - hvm_io_write_postprocess
  - hvm_io_read_postprocess
  - hvm_io_assist_process
  - cr3_switch
  - cr3_prealloc_unpin
  - cr3_compare_start
  - cr3_dump_list
  - hvm_cr3_write_summary
  - hvm_cr_write_summary
  - hvm_cr_write_postprocess
  - case_cr
  - hvm_cr_write_process
  - hvm_msr_write_summary
  - hvm_msr_write_postprocess
  - hvm_msr_write_process
  - hvm_msr_read_summary
  - hvm_msr_read_postprocess
  - hvm_msr_read_process
  - hvm_vmcall_summary
  - hvm_vmcall_postprocess
  - hvm_vmcall_process
  - hvm_inj_exc_process
  - hvm_intr_summary
  - hvm_intr_process
  - hvm_intr_window_process
  - hvm_pf_inject_process
  - hvm_npf_process
  - hvm_rdtsc_process
  - hvm_generic_summary
  - hvm_generic_postprocess_init
  - hvm_generic_postprocess
  - hvm_generic_dump
  - hvm_handler_process
  - domain_runstate
  - runstate_update
  - hvm_vmexit_process
  - hvm_close_vmexit
  - hvm_vmentry_process
  - hvm_process
  - hvm_summary
  - FLAGSTRING
  - flag_string
  - shadow_emulate_postprocess
  - shadow_emulate_process
  - shadow_parse_other
  - shadow_unsync_postprocess
  - shadow_unsync_process
  - shadow_emulate_other_process
  - shadow_fixup_postprocess
  - shadow_fixup_process
  - shadow_mmio_postprocess
  - shadow_mmio_process
  - shadow_propagate_postprocess
  - shadow_propagate_process
  - shadow_fault_generic_dump
  - shadow_fault_generic_postprocess
  - shadow_fault_generic_process
  - shadow_resync_process
  - shadow_prealloc_unpin_process
  - shadow_wrmap_bf_process
  - shadow_process
  - pv_hypercall_process
  - pv_trap_process
  - pv_ptwr_emulation_process
  - pv_generic_process
  - pv_summary
  - cmd_to_str
  - CMD_TO_STR
  - pv_hypercall_gather_args
  - pv_hypercall_print_args
  - pv_hypercall_v2_process
  - pv_process
  - vcpu_create
  - domain_init
  - domain_create
  - domain_find
  - vcpu_find
  - pcpu_runstate_update
  - vcpu_prev_update
  - vcpu_next_update
  - vcpu_start
  - sched_runstate_process
  - dump_sched_switch
  - sched_switch_process
  - sched_default_vcpu_activate
  - sched_default_domain_init
  - runstate_clear
  - runstate_summary
  - sched_summary_vcpu
  - sched_summary_domain
  - dump_sched_vcpu_action
  - sched_process
  - mem_summary_domain
  - p2m_canonical_order
  - mem_pod_zero_reclaim_process
  - mem_pod_populate_process
  - mem_pod_superpage_splinter_process
  - mem_page_grant
  - mem_set_p2m_entry_process
  - mem_decrease_reservation_process
  - mem_process
  - pm_process
  - pdev_find
  - irq_process
  - hw_process
  - dom0_process
  - dump_generic
  - dump_raw
  - error
  - check_extra_words
  - process_generic
  - vcpu_set_data_type
  - lose_vcpu
  - process_lost_records
  - process_lost_records_end
  - base_process
  - activate_early_eof
  - scan_for_new_pcpu
  - deactivate_pcpu
  - process_record_tsc
  - create_dump_header
  - find_toplevel_event
  - process_cpu_change
  - toplevel_assert_check
  - process_record
  - get_rec_size
  - progress_child_exec
  - progress_init
  - progress_update
  - progress_finish
  - __read_record
  - __fill_in_record_info
  - read_record
  - pcpu_string_draw
  - pcpu_string
  - record_order_bubble
  - record_order_insert
  - record_order_remove
  - choose_next_record
  - process_records
  - vcpu_summary
  - domain_summary
  - summary
  - report_pcpu
  - init_pcpus
  - xstr
  - str
  - parse_cpu_hz
  - stringify_cpu_hz
  - parse_array
  - cmd_parser
  - main
  source_file: /src/xen/tools/xentrace/xenalyze.c
  types:
    enum:
    - enumerators:
      - name: ERR_NONE
        value: '0'
      - name: ERR_STRICT
      - name: ERR_WARN
      - name: ERR_RECORD
      - name: ERR_SANITY
      - name: ERR_FILE
      - name: ERR_LIMIT
      - name: ERR_MAX_TOLERABLE
        value: ERR_LIMIT
      - name: ERR_ASSERT
      - name: ERR_SYSTEM
      item_type: enum
      name: error_level
      pos:
        line_end: 145
        line_start: 133
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - enumerators:
      - name: VMEXIT_CR4_READ
        value: '4'
      - name: VMEXIT_CR6_READ
        value: '6'
      - name: VMEXIT_CR14_READ
        value: '14'
      - name: VMEXIT_DR0_WRITE
        value: '48'
      - name: VMEXIT_DR11_WRITE
        value: '59'
      - name: VMEXIT_LDTR_WRITE
        value: '108'
      - name: VMEXIT_MSR
        value: '124'
      - name: VMEXIT_MWAIT_CONDITIONAL
        value: '140'
      - name: VMEXIT_CR10_READ
        value: '10'
      - name: VMEXIT_CR3_WRITE
        value: '19'
      - name: VMEXIT_CR6_WRITE
        value: '22'
      - name: VMEXIT_DR4_WRITE
        value: '52'
      - name: VMEXIT_DR9_READ
        value: '41'
      - name: VMEXIT_EXCEPTION_UD
        value: '70'
      - name: VMEXIT_EXCEPTION_PF
        value: '78'
      - name: VMEXIT_CR0_SEL_WRITE
        value: '101'
      - name: VMEXIT_SWINT
        value: '117'
      - name: VMEXIT_CLGI
        value: '133'
      - name: VMEXIT_CR5_READ
        value: '5'
      - name: VMEXIT_CR0_WRITE
        value: '16'
      - name: VMEXIT_CR5_WRITE
        value: '21'
      - name: VMEXIT_DR2_READ
        value: '34'
      - name: VMEXIT_DR13_WRITE
        value: '61'
      - name: VMEXIT_RDTSC
        value: '110'
      - name: VMEXIT_FERR_FREEZE
        value: '126'
      - name: VMEXIT_RDTSCP
        value: '135'
      - name: VMEXIT_EXCEPTION_DB
        value: '65'
      - name: VMEXIT_EXCEPTION_09
        value: '73'
      - name: VMEXIT_DR6_WRITE
        value: '54'
      - name: VMEXIT_DR11_READ
        value: '43'
      - name: VMEXIT_CR8_READ
        value: '8'
      - name: VMEXIT_CR13_WRITE
        value: '29'
      - name: VMEXIT_DR0_READ
        value: '32'
      - name: VMEXIT_EXCEPTION_AC
        value: '81'
      - name: VMEXIT_GDTR_READ
        value: '103'
      - name: VMEXIT_PAUSE
        value: '119'
      - name: VMEXIT_CR9_WRITE
        value: '25'
      - name: VMEXIT_DR4_READ
        value: '36'
      - name: VMEXIT_DR15_WRITE
        value: '63'
      - name: VMEXIT_SMI
        value: '98'
      - name: VMEXIT_PUSHF
        value: '112'
      - name: VMEXIT_VMRUN
        value: '128'
      - name: VMEXIT_DR13_READ
        value: '45'
      - name: VMEXIT_EXCEPTION_SS
        value: '76'
      - name: VMEXIT_CR2_READ
        value: '2'
      - name: VMEXIT_CR8_WRITE
        value: '24'
      - name: VMEXIT_EXCEPTION_OF
        value: '68'
      - name: VMEXIT_DR8_WRITE
        value: '56'
      - name: VMEXIT_INTR
        value: '96'
      - name: VMEXIT_TR_READ
        value: '105'
      - name: VMEXIT_INVLPG
        value: '121'
      - name: VMEXIT_WBINVD
        value: '137'
      - name: VMEXIT_CR15_READ
        value: '15'
      - name: VMEXIT_DR1_WRITE
        value: '49'
      - name: VMEXIT_DR6_READ
        value: '38'
      - name: VMEXIT_VINTR
        value: '100'
      - name: VMEXIT_CPUID
        value: '114'
      - name: VMEXIT_VMLOAD
        value: '130'
      - name: VMEXIT_INVALID
        value: '-1'
      - name: VMEXIT_EXCEPTION_NM
        value: '71'
      - name: VMEXIT_DR10_WRITE
        value: '58'
      - name: VMEXIT_CR12_READ
        value: '12'
      - name: VMEXIT_CR12_WRITE
        value: '28'
      - name: VMEXIT_DR15_READ
        value: '47'
      - name: VMEXIT_EXCEPTION_15
        value: '79'
      - name: VMEXIT_GDTR_WRITE
        value: '107'
      - name: VMEXIT_IOIO
        value: '123'
      - name: VMEXIT_MWAIT
        value: '139'
      - name: VMEXIT_CR13_READ
        value: '13'
      - name: VMEXIT_DR8_READ
        value: '40'
      - name: VMEXIT_DR3_WRITE
        value: '51'
      - name: VMEXIT_IRET
        value: '116'
      - name: VMEXIT_STGI
        value: '132'
      - name: VMEXIT_DR12_WRITE
        value: '60'
      - name: VMEXIT_CR7_READ
        value: '7'
      - name: VMEXIT_CR2_WRITE
        value: '18'
      - name: VMEXIT_CR7_WRITE
        value: '23'
      - name: VMEXIT_CR10_WRITE
        value: '26'
      - name: VMEXIT_DR1_READ
        value: '33'
      - name: VMEXIT_EXCEPTION_NMI
        value: '66'
      - name: VMEXIT_EXCEPTION_TS
        value: '74'
      - name: VMEXIT_EXCEPTION_MC
        value: '82'
      - name: VMEXIT_TR_WRITE
        value: '109'
      - name: VMEXIT_TASK_SWITCH
        value: '125'
      - name: VMEXIT_DR10_READ
        value: '42'
      - name: VMEXIT_CR15_WRITE
        value: '31'
      - name: VMEXIT_CR1_READ
        value: '1'
      - name: VMEXIT_CR11_READ
        value: '11'
      - name: VMEXIT_CR1_WRITE
        value: '17'
      - name: VMEXIT_DR5_WRITE
        value: '53'
      - name: VMEXIT_IDTR_READ
        value: '102'
      - name: VMEXIT_INVD
        value: '118'
      - name: VMEXIT_SKINIT
        value: '134'
      - name: VMEXIT_EXCEPTION_BR
        value: '69'
      - name: VMEXIT_DR3_READ
        value: '35'
      - name: VMEXIT_DR14_WRITE
        value: '62'
      - name: VMEXIT_EXCEPTION_GP
        value: '77'
      - name: VMEXIT_NMI
        value: '97'
      - name: VMEXIT_RDPMC
        value: '111'
      - name: VMEXIT_SHUTDOWN
        value: '127'
      - name: VMEXIT_DR12_READ
        value: '44'
      - name: VMEXIT_DR7_WRITE
        value: '55'
      - name: VMEXIT_LDTR_READ
        value: '104'
      - name: VMEXIT_HLT
        value: '120'
      - name: VMEXIT_ICEBP
        value: '136'
      - name: VMEXIT_CR9_READ
        value: '9'
      - name: VMEXIT_EXCEPTION_DE
        value: '64'
      - name: VMEXIT_DR5_READ
        value: '37'
      - name: VMEXIT_EXCEPTION_DF
        value: '72'
      - name: VMEXIT_EXCEPTION_MF
        value: '80'
      - name: VMEXIT_INIT
        value: '99'
      - name: VMEXIT_POPF
        value: '113'
      - name: VMEXIT_VMMCALL
        value: '129'
      - name: VMEXIT_DR9_WRITE
        value: '57'
      - name: VMEXIT_DR14_READ
        value: '46'
      - name: VMEXIT_CR0_READ
        value: '0'
      - name: VMEXIT_CR3_READ
        value: '3'
      - name: VMEXIT_CR14_WRITE
        value: '30'
      - name: VMEXIT_IDTR_WRITE
        value: '106'
      - name: VMEXIT_INVLPGA
        value: '122'
      - name: VMEXIT_MONITOR
        value: '138'
      - name: VMEXIT_NPF
        value: '1024'
      - name: VMEXIT_EXCEPTION_NP
        value: '75'
      - name: VMEXIT_CR4_WRITE
        value: '20'
      - name: VMEXIT_CR11_WRITE
        value: '27'
      - name: VMEXIT_DR7_READ
        value: '39'
      - name: VMEXIT_DR2_WRITE
        value: '50'
      - name: VMEXIT_EXCEPTION_BP
        value: '67'
      - name: VMEXIT_EXCEPTION_XF
        value: '83'
      - name: VMEXIT_RSM
        value: '115'
      - name: VMEXIT_VMSAVE
        value: '131'
      item_type: enum
      name: VMEXIT_EXITCODE
      pos:
        line_end: 697
        line_start: 551
        source_file: /src/xen/tools/xentrace/xenalyze.c
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '600'
    - item_type: preproc_def
      name: DEFAULT_CPU_HZ
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: 2400000000LL
    - item_type: preproc_def
      name: ADDR_SPACE_BITS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '48'
    - item_type: preproc_def
      name: DEFAULT_SAMPLE_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: DEFAULT_SAMPLE_MAX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: 1024*1024*32
    - item_type: preproc_def
      name: DEFAULT_INTERVAL_LENGTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: SYMBOL_ENTRIES_PER_STRUCT
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: SYMBOL_NAME_SIZE
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '124'
    - item_type: preproc_def
      name: EXIT_REASON_EXCEPTION_NMI
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EXIT_REASON_EXTERNAL_INTERRUPT
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EXIT_REASON_TRIPLE_FAULT
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EXIT_REASON_INIT
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '3'
    - item_type: preproc_def
      name: EXIT_REASON_SIPI
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '4'
    - item_type: preproc_def
      name: EXIT_REASON_IO_SMI
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '5'
    - item_type: preproc_def
      name: EXIT_REASON_OTHER_SMI
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '6'
    - item_type: preproc_def
      name: EXIT_REASON_PENDING_VIRT_INTR
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '7'
    - item_type: preproc_def
      name: EXIT_REASON_PENDING_VIRT_NMI
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '8'
    - item_type: preproc_def
      name: EXIT_REASON_TASK_SWITCH
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '9'
    - item_type: preproc_def
      name: EXIT_REASON_CPUID
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '10'
    - item_type: preproc_def
      name: EXIT_REASON_GETSEC
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '11'
    - item_type: preproc_def
      name: EXIT_REASON_HLT
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '12'
    - item_type: preproc_def
      name: EXIT_REASON_INVD
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '13'
    - item_type: preproc_def
      name: EXIT_REASON_INVLPG
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '14'
    - item_type: preproc_def
      name: EXIT_REASON_RDPMC
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '15'
    - item_type: preproc_def
      name: EXIT_REASON_RDTSC
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '16'
    - item_type: preproc_def
      name: EXIT_REASON_RSM
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '17'
    - item_type: preproc_def
      name: EXIT_REASON_VMCALL
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '18'
    - item_type: preproc_def
      name: EXIT_REASON_VMCLEAR
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '19'
    - item_type: preproc_def
      name: EXIT_REASON_VMLAUNCH
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '20'
    - item_type: preproc_def
      name: EXIT_REASON_VMPTRLD
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '21'
    - item_type: preproc_def
      name: EXIT_REASON_VMPTRST
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '22'
    - item_type: preproc_def
      name: EXIT_REASON_VMREAD
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '23'
    - item_type: preproc_def
      name: EXIT_REASON_VMRESUME
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '24'
    - item_type: preproc_def
      name: EXIT_REASON_VMWRITE
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '25'
    - item_type: preproc_def
      name: EXIT_REASON_VMXOFF
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '26'
    - item_type: preproc_def
      name: EXIT_REASON_VMXON
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '27'
    - item_type: preproc_def
      name: EXIT_REASON_CR_ACCESS
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '28'
    - item_type: preproc_def
      name: EXIT_REASON_DR_ACCESS
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '29'
    - item_type: preproc_def
      name: EXIT_REASON_IO_INSTRUCTION
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '30'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_READ
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '31'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_WRITE
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '32'
    - item_type: preproc_def
      name: EXIT_REASON_INVALID_GUEST_STATE
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '33'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_LOADING
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '34'
    - item_type: preproc_def
      name: EXIT_REASON_MWAIT_INSTRUCTION
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '36'
    - item_type: preproc_def
      name: EXIT_REASON_MONITOR_TRAP_FLAG
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '37'
    - item_type: preproc_def
      name: EXIT_REASON_MONITOR_INSTRUCTION
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '39'
    - item_type: preproc_def
      name: EXIT_REASON_PAUSE_INSTRUCTION
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '40'
    - item_type: preproc_def
      name: EXIT_REASON_MCE_DURING_VMENTRY
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '41'
    - item_type: preproc_def
      name: EXIT_REASON_TPR_BELOW_THRESHOLD
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '43'
    - item_type: preproc_def
      name: EXIT_REASON_APIC_ACCESS
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '44'
    - item_type: preproc_def
      name: EXIT_REASON_ACCESS_GDTR_OR_IDTR
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '46'
    - item_type: preproc_def
      name: EXIT_REASON_ACCESS_LDTR_OR_TR
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '47'
    - item_type: preproc_def
      name: EXIT_REASON_EPT_VIOLATION
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '48'
    - item_type: preproc_def
      name: EXIT_REASON_EPT_MISCONFIG
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '49'
    - item_type: preproc_def
      name: EXIT_REASON_INVEPT
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '50'
    - item_type: preproc_def
      name: EXIT_REASON_RDTSCP
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '51'
    - item_type: preproc_def
      name: EXIT_REASON_VMX_PREEMPTION_TIMER_EXPIRED
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '52'
    - item_type: preproc_def
      name: EXIT_REASON_INVVPID
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '53'
    - item_type: preproc_def
      name: EXIT_REASON_WBINVD
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '54'
    - item_type: preproc_def
      name: EXIT_REASON_XSETBV
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '55'
    - item_type: preproc_def
      name: HVM_VMX_EXIT_REASON_MAX
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: (EXIT_REASON_XSETBV+1)
    - item_type: preproc_def
      name: HVM_SVM_EXIT_REASON_MAX
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1025'
    - item_type: preproc_def
      name: HVM_EXIT_REASON_MAX
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: HVM_VMX_EXIT_REASON_MAX
    - item_type: preproc_def
      name: HVM_EXIT_REASON_MAX
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: HVM_SVM_EXIT_REASON_MAX
    - item_type: preproc_def
      name: SPURIOUS_APIC_VECTOR
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ERROR_APIC_VECTOR
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xfe'
    - item_type: preproc_def
      name: INVALIDATE_TLB_VECTOR
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xfd'
    - item_type: preproc_def
      name: EVENT_CHECK_VECTOR
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xfc'
    - item_type: preproc_def
      name: CALL_FUNCTION_VECTOR
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xfb'
    - item_type: preproc_def
      name: THERMAL_APIC_VECTOR
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xfa'
    - item_type: preproc_def
      name: LOCAL_TIMER_VECTOR
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0xf9'
    - item_type: preproc_def
      name: EXTERNAL_INTERRUPT_MAX
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '256'
    - item_type: preproc_def
      name: HVM_TRAP_MAX
      pos:
        line_end: 888
        line_start: 887
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '20'
    - item_type: preproc_def
      name: SHADOW_WRMAP_BF
      pos:
        line_end: 1195
        line_start: 1194
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SHADOW_PREALLOC_UNPIN
      pos:
        line_end: 1196
        line_start: 1195
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '13'
    - item_type: preproc_def
      name: SHADOW_RESYNC_FULL
      pos:
        line_end: 1197
        line_start: 1196
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '14'
    - item_type: preproc_def
      name: SHADOW_RESYNC_ONLY
      pos:
        line_end: 1198
        line_start: 1197
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '15'
    - item_type: preproc_def
      name: CORR_VA_INVALID
      pos:
        line_end: 1216
        line_start: 1215
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: (0ULL-1)
    - item_type: preproc_def
      name: GUEST_INTERRUPT_MAX
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '350'
    - item_type: preproc_def
      name: FAKE_VECTOR
      pos:
        line_end: 1288
        line_start: 1287
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '349'
    - item_type: preproc_def
      name: CR_MAX
      pos:
        line_end: 1289
        line_start: 1288
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '9'
    - item_type: preproc_def
      name: RESYNCS_MAX
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '17'
    - item_type: preproc_def
      name: PF_XEN_FIXUP_UNSYNC_RESYNC_MAX
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PV_HYPERCALL_MAX
      pos:
        line_end: 1503
        line_start: 1502
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '56'
    - item_type: preproc_def
      name: PV_TRAP_MAX
      pos:
        line_end: 1504
        line_start: 1503
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_CPUS
      pos:
        line_end: 1611
        line_start: 1610
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '256'
    - item_type: preproc_def
      name: IDLE_DOMAIN
      pos:
        line_end: 1615
        line_start: 1614
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '32767'
    - item_type: preproc_def
      name: DEFAULT_DOMAIN
      pos:
        line_end: 1616
        line_start: 1615
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '32768'
    - item_type: preproc_def
      name: MAX_VLAPIC_LIST
      pos:
        line_end: 1618
        line_start: 1617
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '8'
    - item_type: preproc_def
      name: POD_ORDER_MAX
      pos:
        line_end: 1713
        line_start: 1712
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '4'
    - item_type: preproc_def
      name: INTERVAL_DOMAIN_GUEST_INTERRUPT_MAX
      pos:
        line_end: 1866
        line_start: 1865
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '10'
    - item_type: preproc_def
      name: INTERVAL_DESC_MAX
      pos:
        line_end: 2392
        line_start: 2391
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '31'
    - item_type: preproc_def
      name: SIGN_EXTENDED_BITS
      pos:
        line_end: 3026
        line_start: 3025
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: (~((1ULL<<48)-1))
    - item_type: preproc_def
      name: MMIO_VGA_START
      pos:
        line_end: 3580
        line_start: 3579
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: (0xa0000)
    - item_type: preproc_def
      name: MMIO_VGA_END
      pos:
        line_end: 3581
        line_start: 3580
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: (0xbffff)
    - item_type: preproc_def
      name: HVM_IO_ASSIST_WRITE
      pos:
        line_end: 3647
        line_start: 3646
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: SHADOW_OTHER_LOGS_GFN_NOT_GMFN
      pos:
        line_end: 5610
        line_start: 5609
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CSTATE_MAX
      pos:
        line_end: 8417
        line_start: 8416
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CSTATE_INVALID
      pos:
        line_end: 8418
        line_start: 8417
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: ((CSTATE_MAX)+1)
    - item_type: preproc_def
      name: MAX_VECTOR
      pos:
        line_end: 8467
        line_start: 8466
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_IRQ
      pos:
        line_end: 8476
        line_start: 8475
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '512'
    - item_type: preproc_def
      name: TRC_HW_SUB_PM
      pos:
        line_end: 8680
        line_start: 8679
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TRC_HW_SUB_IRQ
      pos:
        line_end: 8681
        line_start: 8680
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TRC_DOM0_SUB_DOMOPS
      pos:
        line_end: 8698
        line_start: 8697
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STDIN
      pos:
        line_end: 9590
        line_start: 9589
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GHZ
      pos:
        line_end: 10161
        line_start: 10160
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: 1000000000LL
    - item_type: preproc_def
      name: MHZ
      pos:
        line_end: 10162
        line_start: 10161
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: 1000000LL
    - item_type: preproc_def
      name: KHZ
      pos:
        line_end: 10163
        line_start: 10162
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type_or_value: 1000LL
    structs:
    - fields:
      - name: '*values'
        type: unsigned long long
      - name: count
        type: int
      item_type: struct
      name: array_struct
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: fd
        type: int
      - name: '*mh'
        type: struct mread_ctrl
      - name: '* symbols'
        type: struct symbol_struct
      - name: '* symbol_file'
        type: char
      - name: '* trace_file'
        type: char
      - name: output_defined
        type: int
      - name: file_size
        type: off_t
      - name: progress
        type: "struct {\n        off_t update_offset;\n        int pipe[2];\n        FILE*
          out;\n        int pid;\n    }"
      item_type: struct
      name: "G = {\n    .fd=-1,\n    .symbols = NULL,\n    .symbol_file = NULL,\n
        \   .trace_file = NULL,\n    .output_defined = 0,\n    .file_size = 0,\n    .progress
        = { .update_offset = 0 },\n}"
      pos:
        line_end: 81
        line_start: 67
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: scatterplot_interrupt_eip
        type: unsigned
      - name: cpu_qhz
        type: long long
      - name: scatterplot_interrupt_vector
        type: int
      - name: scatterplot_extint_cycles_vector
        type: int
      - name: scatterplot_io_port
        type: int
      - name: histogram_interrupt_vector
        type: int
      - name: histogram_interrupt_increment
        type: unsigned long long
      - name: interrupt_eip_enumeration_vector
        type: int
      - name: default_guest_paging_levels
        type: int
      - name: sample_size
        type: int
      - name: tolerance
        type: enum error_level
      - name: interval
        type: "struct {\n        tsc_t cycles;\n        /* Used if interval is specified
          in seconds to delay calculating\n         * time_interval until all arguments
          have been processed (specifically,\n         * cpu_hz). */\n        unsigned
          msec;\n        enum {\n            INTERVAL_CR3_SCHEDULE_TIME,\n            INTERVAL_CR3_SCHEDULE_ORDERED,\n
          \           INTERVAL_CR3_SHORT_SUMMARY,\n            INTERVAL_DOMAIN_TOTAL_TIME,\n
          \           INTERVAL_DOMAIN_SHORT_SUMMARY,\n            INTERVAL_DOMAIN_GUEST_INTERRUPT,\n
          \           INTERVAL_DOMAIN_GRANT_MAPS\n        } output;\n        enum
          {\n            INTERVAL_MODE_CUSTOM,\n            INTERVAL_MODE_ARRAY,\n
          \           INTERVAL_MODE_LIST\n        } mode;\n        enum {\n            INTERVAL_CHECK_NONE,\n
          \           INTERVAL_CHECK_CR3,\n            INTERVAL_CHECK_DOMAIN\n        }
          check;\n        /* Options for specific interval output types */\n        union
          {\n            struct array_struct array;\n        };\n        int count;\n
          \   }"
      item_type: struct
      name: "opt = {\n    .scatterplot_interrupt_eip=0,\n    .scatterplot_unpin_promote=0,\n
        \   .scatterplot_cr3_switch=0,\n    .scatterplot_wake_to_halt=0,\n    .scatterplot_vmexit_eip=0,\n
        \   .scatterplot_runstate=0,\n    .scatterplot_runstate_time=0,\n    .scatterplot_pcpu=0,\n
        \   .scatterplot_extint_cycles=0,\n    .scatterplot_rdtsc=0,\n    .scatterplot_irq=0,\n
        \   .histogram_interrupt_eip=0,\n    .dump_all = 0,\n    .dump_raw_process
        = 0,\n    .dump_raw_reads = 0,\n    .dump_no_processing = 0,\n    .dump_ipi_latency
        = 0,\n    .dump_trace_volume_on_lost_record = 0,\n    .dump_show_power_states
        = 0,\n    .with_cr3_enumeration = 0,\n    .with_pio_enumeration = 1,\n    .with_mmio_enumeration
        = 0,\n    .with_interrupt_eip_enumeration = 0,\n    .show_default_domain_summary
        = 0,\n    .mmio_enumeration_skip_vga = 1,\n    .progress = 0,\n    .svm_mode
        = 0,\n    .summary = 0,\n    .report_pcpu = 0,\n    .tsc_loop_fatal = 0,\n
        \   .cpu_hz = DEFAULT_CPU_HZ,\n    /* Pre-calculate a multiplier that makes
        the rest of the\n     * calculations easier */\n    .cpu_qhz = QHZ_FROM_HZ(DEFAULT_CPU_HZ),\n
        \   .default_guest_paging_levels = 2,\n    .sample_size = DEFAULT_SAMPLE_SIZE,\n
        \   .sample_max = DEFAULT_SAMPLE_MAX,\n    .tolerance = ERR_SANITY,\n    .interval
        = { .msec = DEFAULT_INTERVAL_LENGTH },\n}"
      pos:
        line_end: 225
        line_start: 149
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: first_tsc
        type: tsc_t
      item_type: struct
      name: cycle_framework
      pos:
        line_end: 272
        line_start: 270
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: count
        type: int
      - name: cycles
        type: long long
      - name: instructions
        type: long long
      item_type: struct
      name: interval_element
      pos:
        line_end: 278
        line_start: 274
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event_count
        type: int
      - name: cycles
        type: unsigned long long
      - name: '*sample'
        type: long long
      - name: interval
        type: struct interval_element
      item_type: struct
      name: cycle_summary
      pos:
        line_end: 285
        line_start: 280
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: count
        type: int
      - name: symbols[SYMBOL_ENTRIES_PER_STRUCT]
        type: "struct {\n        unsigned long long addr;\n        char name[SYMBOL_NAME_SIZE];\n
          \   }"
      - name: '*next'
        type: struct symbol_struct
      item_type: struct
      name: symbol_struct
      pos:
        line_end: 297
        line_start: 290
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: '*next'
        type: struct eip_list_struct
      - name: eip
        type: unsigned long long
      - name: summary
        type: struct cycle_summary
      - name: type
        type: int
      - name: '* extra'
        type: void
      item_type: struct
      name: eip_list_struct
      pos:
        line_end: 398
        line_start: 392
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: (*update)(struct eip_list_struct *, void *)
        type: void
      - name: (*new)(struct eip_list_struct *, void *)
        type: void
      - name: (*dump)(struct eip_list_struct *)
        type: void
      item_type: struct
      name: "eip_list_type[EIP_LIST_TYPE_MAX] = {\n    [EIP_LIST_TYPE_NONE] = {\n
        \       .update=NULL,\n        .new=NULL,\n        .dump=NULL },\n}"
      pos:
        line_end: 404
        line_start: 400
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpa
        type: unsigned long long
      - name: va
        type: unsigned long long
      - name: data
        type: unsigned
      - name: data_valid
        type: unsigned
      item_type: struct
      name: mmio_info
      pos:
        line_end: 1229
        line_start: 1224
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: va
        type: unsigned long long
      - name: error_code
        type: unsigned int
      - name: pf_case
        type: int
      - name: gpa
        type: unsigned long long
      - name: data
        type: unsigned int
      - name: gl1e
        type: unsigned long long
      - name: wval
        type: unsigned long long
      - name: corresponding_va
        type: unsigned long long
      - name: pt_index[5]
        type: unsigned int
      - name: pt_level
        type: int
      - name: gfn
        type: unsigned long long
      - name: corr_valid
        type: unsigned
      item_type: struct
      name: pf_xen_extra
      pos:
        line_end: 1282
        line_start: 1231
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: (*handler)(struct hvm_data *, void* data)
        type: void
      - name: '*data'
        type: void
      - name: '*next'
        type: struct hvm_summary_handler_node
      item_type: struct
      name: hvm_summary_handler_node
      pos:
        line_end: 1298
        line_start: 1294
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: init
        type: int
      - name: vmexit_valid
        type: int
      - name: summary_info
        type: int
      - name: '*v'
        type: struct vcpu_data
      - name: '** exit_reason_name'
        type: char
      - name: exit_reason_max
        type: int
      - name: '*exit_reason_summary_handler_list[HVM_EXIT_REASON_MAX]'
        type: struct hvm_summary_handler_node
      - name: summary
        type: "struct {\n        struct cycle_summary exit_reason[HVM_EXIT_REASON_MAX];\n
          \       int extint[EXTERNAL_INTERRUPT_MAX+1];\n        int *extint_histogram;\n
          \       struct cycle_summary trap[HVM_TRAP_MAX];\n        struct cycle_summary
          pf_xen[PF_XEN_MAX];\n        struct cycle_summary pf_xen_emul[PF_XEN_EMUL_MAX];\n
          \       struct cycle_summary pf_xen_emul_early_unshadow[5];\n        struct
          cycle_summary pf_xen_non_emul[PF_XEN_NON_EMUL_MAX];\n        struct cycle_summary
          pf_xen_fixup[PF_XEN_FIXUP_MAX];\n        struct cycle_summary pf_xen_fixup_unsync_resync[PF_XEN_FIXUP_UNSYNC_RESYNC_MAX+1];\n
          \       struct cycle_summary cr_write[CR_MAX];\n        struct cycle_summary
          cr3_write_resyncs[RESYNCS_MAX+1];\n        struct cycle_summary vmcall[HYPERCALL_MAX+1];\n
          \       struct cycle_summary generic[HVM_EVENT_HANDLER_MAX];\n        struct
          cycle_summary mmio[NONPF_MMIO_MAX];\n        struct hvm_gi_struct {\n            int
          count;\n            struct cycle_summary runtime[GUEST_INTERRUPT_CASE_MAX];\n
          \           /* OK, not summary info, but still... */\n            int is_wake;\n
          \           tsc_t start_tsc;\n        } guest_interrupt[GUEST_INTERRUPT_MAX
          + 1];\n        /* IPI Latency */\n        struct cycle_summary ipi_latency;\n
          \       int ipi_count[256];\n        struct {\n            struct io_address
          *mmio, *pio;\n        } io;\n    }"
      - name: inflight
        type: "struct {\n        union {\n            struct {\n                unsigned
          port:31,\n                    is_write:1;\n                unsigned int
          val;\n            } io;\n            struct pf_xen_extra pf_xen;\n            struct
          {\n                unsigned cr;\n                unsigned long long val;\n
          \               int repromote;\n            } cr_write;\n            struct
          {\n                unsigned addr;\n                unsigned long long val;\n
          \           } msr;\n            struct {\n                unsigned int event;\n
          \               uint32_t d[4];\n            } generic;\n            struct
          {\n                unsigned eax;\n            } vmcall;\n            struct
          {\n                unsigned vec;\n            } intr;\n        };\n        /*
          MMIO gets its separate area, since many exits may use it */\n        struct
          mmio_info mmio;\n    }"
      - name: resyncs
        type: int
      - name: (*post_process)(struct hvm_data *)
        type: void
      - name: exit_tsc
        type: tsc_t
      - name: rip
        type: unsigned long long
      - name: exit_reason
        type: unsigned
      - name: short_summary_done
        type: unsigned int
      - name: '*d'
        type: void
      - name: w2h
        type: "struct {\n        unsigned waking:1;\n        /* Wake vector: keep
          track of time from vmentry until:\n           next halt, or next interrupt
          */\n        int vector, interrupts, interrupts_wanting_tsc;\n    }"
      - name: last_rdtsc
        type: tsc_t
      item_type: struct
      name: hvm_data
      pos:
        line_end: 1396
        line_start: 1300
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: count
        type: int
      - name: runtime[GUEST_INTERRUPT_CASE_MAX]
        type: struct cycle_summary
      - name: is_wake
        type: int
      - name: start_tsc
        type: tsc_t
      item_type: struct
      name: hvm_gi_struct
      pos:
        line_end: 1335
        line_start: 1329
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: s[HVM_SHORT_SUMMARY_MAX]
        type: struct cycle_summary
      item_type: struct
      name: hvm_short_summary_struct
      pos:
        line_end: 1427
        line_start: 1425
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: summary_info
        type: unsigned
      - name: count[PV_MAX]
        type: int
      - name: hypercall_count[PV_HYPERCALL_MAX]
        type: int
      - name: trap_count[PV_TRAP_MAX]
        type: int
      item_type: struct
      name: pv_data
      pos:
        line_end: 1510
        line_start: 1505
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: '* next'
        type: struct cr3_value_struct
      - name: '* gnext'
        type: struct cr3_value_struct
      - name: gmfn
        type: unsigned long long
      - name: cr3_id
        type: int
      - name: first_time
        type: unsigned long long
      - name: total_time
        type: struct cycle_summary
      - name: switch_count
        type: int
      - name: hvm
        type: struct hvm_short_summary_struct
      - name: prealloc_unpin
        type: "struct {\n        int now;\n        int count;\n    }"
      - name: destroy
        type: "struct {\n        unsigned callback:1;\n        unsigned flush_count,
          switch_count;\n        unsigned fixup_user, emulate_corr_user;\n    }"
      item_type: struct
      name: cr3_value_struct
      pos:
        line_end: 1607
        line_start: 1586
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: outstanding
        type: "struct {\n        struct outstanding_ipi {\n            tsc_t first_tsc;\n
          \           int vec, count;\n            int injected, valid;\n        }
          list[MAX_VLAPIC_LIST];\n    }"
      item_type: struct
      name: vlapic_struct
      pos:
        line_end: 1626
        line_start: 1618
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: first_tsc
        type: tsc_t
      - name: vec
        type: int
      - name: injected
        type: int
      item_type: struct
      name: outstanding_ipi
      pos:
        line_end: 1624
        line_start: 1620
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vid
        type: int
      - name: '*d'
        type: struct domain_data
      - name: activated
        type: unsigned
      - name: guest_paging_levels
        type: int
      - name: runstate
        type: "struct {\n        int state;\n        int runnable_state; /* Only valid
          when state==RUNSTATE_RUNNABLE */\n        tsc_t tsc;\n        /* TSC skew
          detection/correction */\n        struct last_oldstate_struct {\n            int
          wrong, actual, pid;\n            tsc_t tsc;\n        } last_oldstate;\n
          \       /* Performance counters */\n        unsigned long long p1_start,
          p2_start;\n    }"
      - name: '*p'
        type: struct pcpu_info
      - name: pcpu_tsc
        type: tsc_t
      - name: cr3
        type: "struct {\n        long long val;\n        tsc_t start_time;\n        struct
          cr3_value_struct *data;\n    }"
      - name: vlapic
        type: struct vlapic_struct
      - name: f
        type: struct cycle_framework
      - name: runstates[RUNSTATE_MAX]
        type: struct cycle_summary
      - name: runnable_states[RUNNABLE_STATE_MAX]
        type: struct cycle_summary
      - name: cpu_affinity_all
        type: struct cycle_summary
      - name: data_type
        type: "enum {\n        VCPU_DATA_NONE=0,\n        VCPU_DATA_HVM,\n        VCPU_DATA_PV\n
          \   }"
      item_type: struct
      name: vcpu_data
      pos:
        line_end: 1676
        line_start: 1628
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: wrong
        type: int
      - name: tsc
        type: tsc_t
      item_type: struct
      name: last_oldstate_struct
      pos:
        line_end: 1644
        line_start: 1641
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: '*next'
        type: struct domain_data
      - name: did
        type: int
      - name: '*vcpu[MAX_CPUS]'
        type: struct vcpu_data
      - name: max_vid
        type: int
      - name: runstate
        type: int
      - name: runstate_tsc
        type: tsc_t
      - name: total_time
        type: struct cycle_summary
      - name: runstates[DOMAIN_RUNSTATE_MAX]
        type: struct cycle_summary
      - name: '*cr3_value_head'
        type: struct cr3_value_struct
      - name: '*emulate_eip_list'
        type: struct eip_list_struct
      - name: '*interrupt_eip_list'
        type: struct eip_list_struct
      - name: guest_interrupt[GUEST_INTERRUPT_MAX+1]
        type: int
      - name: hvm_short
        type: struct hvm_short_summary_struct
      - name: memops
        type: "struct {\n        int done[MEM_MAX];\n        int done_interval[MEM_MAX];\n\n
          \       int done_for[MEM_MAX];\n        int done_for_interval[MEM_MAX];\n
          \   }"
      - name: pod
        type: "struct {\n        int reclaim_order[POD_ORDER_MAX];\n        int reclaim_context[POD_RECLAIM_CONTEXT_MAX];\n
          \       int reclaim_context_order[POD_RECLAIM_CONTEXT_MAX][POD_ORDER_MAX];\n
          \       /* FIXME: Do a full cycle summary */\n        int populate_order[POD_ORDER_MAX];\n
          \   }"
      item_type: struct
      name: domain_data
      pos:
        line_end: 1746
        line_start: 1714
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: toplevel[TOPLEVEL_MAX]
        type: unsigned long long
      - name: sched_verbose
        type: unsigned long long
      - name: hvm[HVM_VOL_MAX]
        type: unsigned long long
      item_type: struct
      name: trace_volume
      pos:
        line_end: 1779
        line_start: 1775
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: active
        type: unsigned
      - name: pid
        type: int
      - name: first_tsc
        type: tsc_t
      - name: file_offset
        type: off_t
      - name: next_cpu_change_offset
        type: off_t
      - name: ri
        type: struct record_info
      - name: last_cpu_change_pid
        type: int
      - name: power_state
        type: int
      - name: tsc_skew
        type: "struct {\n        tsc_t offset;\n        cpu_mask_t downstream; /*
          To detect cycles in dependencies */\n    }"
      - name: '* current'
        type: struct vcpu_data
      - name: lost_record
        type: "struct {\n        unsigned active:1,\n            domain_valid:1,\n
          \           seen_valid_schedule:1; /* Seen an actual schedule since lost
          records */\n        unsigned did:16,vid:16;\n        tsc_t tsc;\n    }"
      - name: volume
        type: "struct {\n        tsc_t buffer_first_tsc,\n            buffer_dom0_runstate_tsc,\n
          \           buffer_dom0_runstate_cycles[RUNSTATE_MAX];\n        int buffer_dom0_runstate;\n
          \       unsigned buffer_size;\n        struct trace_volume total, last_buffer;\n
          \   }"
      - name: time
        type: "struct {\n        tsc_t tsc;\n        struct cycle_summary idle, running,
          lost;\n    }"
      item_type: struct
      name: pcpu_info
      pos:
        line_end: 1861
        line_start: 1817
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: max_active_pcpu
        type: int
      - name: last_epoch_offset
        type: off_t
      - name: early_eof
        type: int
      - name: lost_cpus
        type: int
      - name: now
        type: tsc_t
      - name: f
        type: struct cycle_framework
      - name: buffer_trace_virq_tsc
        type: tsc_t
      - name: pcpu[MAX_CPUS]
        type: struct pcpu_info
      - name: cr3
        type: "struct {\n        int id;\n        /* Invariant: head null => tail
          null; head !null => tail valid */\n        struct cr3_value_struct *head,
          **tail;\n    }"
      - name: interval
        type: "struct {\n        tsc_t start_tsc;\n        /* Information about specific
          interval output types */\n        union {\n            struct {\n                struct
          interval_element ** values;\n                int count;\n            } array;\n
          \           struct {\n                struct interval_list *head, **tail;\n
          \           } list;\n            struct cr3_value_struct *cr3;\n            struct
          {\n                struct domain_data *d;\n                int guest_vector[INTERVAL_DOMAIN_GUEST_INTERRUPT_MAX];\n
          \           } domain;\n        };\n    }"
      item_type: struct
      name: P = { 0 }
      pos:
        line_end: 1901
        line_start: 1867
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: '*elem'
        type: struct interval_element
      - name: '*next'
        type: struct interval_list
      - name: desc[INTERVAL_DESC_MAX+1]
        type: char
      item_type: struct
      name: interval_list
      pos:
        line_end: 2396
        line_start: 2392
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields: []
      item_type: struct
      name: hvm_pf_xen_record
      pos:
        line_end: 2933
        line_start: 2921
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vector
        type: int
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 3707
        line_start: 3705
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: '*next'
        type: struct io_address
      - name: pa
        type: unsigned int
      - name: va
        type: unsigned int
      - name: summary[2]
        type: struct cycle_summary
      item_type: struct
      name: io_address
      pos:
        line_end: 3775
        line_start: 3770
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: addr
        type: unsigned int
      - name: val
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4249
        line_start: 4246
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: addr
        type: unsigned int
      - name: val
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4287
        line_start: 4284
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: eax
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4339
        line_start: 4337
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vec
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4363
        line_start: 4361
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vector
        type: uint32_t
      - name: source
        type: uint32_t
      - name: intr
        type: int32_t
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4491
        line_start: 4487
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpa
        type: uint64_t
      - name: mfn
        type: uint64_t
      - name: qualification
        type: uint32_t
      - name: p2mt
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4561
        line_start: 4556
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: tsc
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4577
        line_start: 4575
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpu
        type: unsigned
      - name: d[4]
        type: unsigned
      item_type: struct
      name: '*cr = (typeof(cr))ri->d'
      pos:
        line_end: 4728
        line_start: 4725
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields: []
      item_type: struct
      name: '*r'
      pos:
        line_end: 5079
        line_start: 5068
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: unsigned long long
      item_type: struct
      name: shadow_emulate_other
      pos:
        line_end: 5607
        line_start: 5605
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 6159
        line_start: 6157
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 6173
        line_start: 6171
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: unsigned long long
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 6191
        line_start: 6189
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: pte
        type: unsigned long long
      item_type: struct
      name: e
      pos:
        line_end: 6399
        line_start: 6397
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpu
        type: unsigned
      - name: p1
        type: unsigned long long
      item_type: struct
      name: '* r = (typeof(r))ri->d'
      pos:
        line_end: 7032
        line_start: 7029
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: new_runstate
        type: int
      item_type: struct
      name: sevt
      pos:
        line_end: 7046
        line_start: 7044
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: prev_dom
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7374
        line_start: 7372
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: prev_dom
        type: unsigned int
      item_type: struct
      name: '* r = (typeof(r))ri->d'
      pos:
        line_end: 7387
        line_start: 7385
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7509
        line_start: 7507
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7541
        line_start: 7539
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7550
        line_start: 7548
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7576
        line_start: 7574
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7587
        line_start: 7585
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7600
        line_start: 7598
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      - name: slice
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7613
        line_start: 7610
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      - name: slice
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7632
        line_start: 7629
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7665
        line_start: 7663
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: peer_cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7679
        line_start: 7677
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7689
        line_start: 7687
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7699
        line_start: 7697
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7709
        line_start: 7707
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7719
        line_start: 7717
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7729
        line_start: 7727
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: runtime
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7742
        line_start: 7739
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: peer_cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7753
        line_start: 7751
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7768
        line_start: 7766
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: credit
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7779
        line_start: 7776
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: credit
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7793
        line_start: 7790
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7804
        line_start: 7802
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: credit_start
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7815
        line_start: 7812
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: rqi
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7836
        line_start: 7833
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuload
        type: uint64_t
      - name: vcpuid
        type: unsigned int
      - name: shift
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7848
        line_start: 7844
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: rq_avgload
        type: uint64_t
      - name: rq_load
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7864
        line_start: 7861
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: credit
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7882
        line_start: 7879
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: rqi
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7894
        line_start: 7892
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned
      - name: rqi
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7905
        line_start: 7902
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: lrqi
        type: unsigned
      - name: load_delta
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7916
        line_start: 7913
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: lb_avgload
        type: uint64_t
      - name: lrqi
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7928
        line_start: 7925
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: b_avgload
        type: uint64_t
      - name: vcpuid
        type: unsigned
      - name: rqi
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7942
        line_start: 7938
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned
      - name: tickled_cpu
        type: unsigned
      - name: credit
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7954
        line_start: 7950
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned
      - name: tasklet
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7969
        line_start: 7966
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: runtime
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7984
        line_start: 7981
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 7995
        line_start: 7993
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8006
        line_start: 8004
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: cur_dl
        type: uint64_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8017
        line_start: 8014
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: cur_bg
        type: uint64_t
      - name: delta
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8030
        line_start: 8026
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: unsigned int
      - name: cur_dl
        type: uint64_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8042
        line_start: 8039
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8057
        line_start: 8055
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: uint16_t
      - name: new_cpu
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8071
        line_start: 8068
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: uint16_t
      - name: cpu
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8082
        line_start: 8079
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: uint16_t
      - name: cpu
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8093
        line_start: 8090
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vcpuid
        type: uint16_t
      - name: cpu
        type: uint16_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8104
        line_start: 8101
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: tasklet
        type: uint16_t
      - name: vcpuid
        type: int16_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8116
        line_start: 8113
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8216
        line_start: 8213
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8266
        line_start: 8263
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8299
        line_start: 8296
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domain
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8315
        line_start: 8313
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: p2mt
        type: uint32_t
      - name: d
        type: uint16_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8331
        line_start: 8327
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8350
        line_start: 8347
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: dom
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8365
        line_start: 8363
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: bus
        type: uint8_t
      - name: devfn
        type: uint8_t
      - name: vector_used[MAX_VECTOR]
        type: int
      - name: '*next'
        type: struct pci_dev
      item_type: struct
      name: pci_dev
      pos:
        line_end: 8473
        line_start: 8468
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: type
        type: "enum {\n        IRQ_NONE,\n        IRQ_MSI,\n        IRQ_GSI\n    }"
      - name: '*dev'
        type: struct pci_dev
      item_type: struct
      name: irq_desc
      pos:
        line_end: 8483
        line_start: 8476
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: irq
        type: int
      - name: mask[4]
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8530
        line_start: 8527
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: irq
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8547
        line_start: 8545
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: irq
        type: int
      - name: mask[4]
        type: unsigned
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8575
        line_start: 8572
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: irq
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8611
        line_start: 8609
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: irq
        type: int
      - name: vec
        type: int
      - name: cpu
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8627
        line_start: 8623
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: vec
        type: int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8659
        line_start: 8657
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: domid
        type: unsigned int
      item_type: struct
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 8708
        line_start: 8706
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: lost_records
        type: int
      - name: did
        type: unsigned
      - name: first_tsc
        type: tsc_t
      item_type: struct
      name: lost_record_struct
      pos:
        line_end: 8861
        line_start: 8857
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: cpu
        type: int
      - name: window_size
        type: unsigned
      item_type: struct
      name: cpu_change_data
      pos:
        line_end: 9063
        line_start: 9060
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: p_current
        type: unsigned
      - name: vcpu_data_mode
        type: int
      item_type: struct
      name: tl_assert_mask
      pos:
        line_end: 9443
        line_start: 9439
        source_file: /src/xen/tools/xentrace/xenalyze.c
    typedefs:
    - item_type: typedef
      name: cpu_mask_t
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/xen/tools/xentrace/xenalyze.c
      type: uint32_t
    union:
    - fields:
      - name: val
        type: unsigned int
      item_type: union
      name: icr = { .val = m->data }
      pos:
        line_end: 3496
        line_start: 3483
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            unsigned int gpa;\n            unsigned int data;\n
          \       }"
      - name: x64
        type: "struct {\n            unsigned long long gpa;\n            unsigned
          int data;\n        }"
      item_type: union
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 3659
        line_start: 3650
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event
        type: unsigned
      item_type: union
      name: mevt = { .event = ri->event }
      pos:
        line_end: 3668
        line_start: 3661
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            unsigned int port;\n            unsigned int
          data;\n        }"
      item_type: union
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 3850
        line_start: 3845
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event
        type: unsigned
      item_type: union
      name: mevt = { .event = ri->event }
      pos:
        line_end: 3859
        line_start: 3852
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            unsigned cr;\n            unsigned int val;\n
          \       }"
      - name: x64
        type: "struct {\n            unsigned cr;\n            unsigned long long
          val;\n        } __attribute__((packed))"
      item_type: union
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4194
        line_start: 4185
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            unsigned ec;\n            unsigned int cr2;\n
          \       }"
      - name: x64
        type: "struct {\n            unsigned ec;\n            unsigned long long
          cr2;\n        } __attribute__((packed))"
      item_type: union
      name: '*r = (typeof(r))h->d'
      pos:
        line_end: 4529
        line_start: 4520
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event
        type: unsigned
      item_type: union
      name: shadow_event
      pos:
        line_end: 5415
        line_start: 5408
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl2
        type: "struct {\n            unsigned gl1e, write_val;\n            unsigned
          va;\n            unsigned flags:29, emulation_count:3;\n        }"
      - name: gpl3
        type: "struct {\n            unsigned long long gl1e, write_val;\n            unsigned
          va;\n            unsigned flags:29, emulation_count:3;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long gl1e, write_val;\n            unsigned
          long long va;\n            unsigned flags:29, emulation_count:3;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 5531
        line_start: 5513
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl3
        type: "struct {\n            unsigned long long gfn;\n            unsigned
          int va;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long gfn, va;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 5631
        line_start: 5614
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl2
        type: "struct {\n            unsigned int gl1e, va, flags;\n        }"
      - name: gpl3
        type: "struct {\n            unsigned long long gl1e;\n            unsigned
          int va, flags;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long gl1e, va;\n            unsigned
          int flags;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 5835
        line_start: 5821
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl2
        type: "struct {\n            unsigned int va;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long va;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 5942
        line_start: 5933
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl2
        type: "struct {\n            unsigned int gl1e, va, flags;\n        }"
      - name: gpl3
        type: "struct {\n            unsigned long long gl1e;\n            unsigned
          int va, flags;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long gl1e, va;\n            unsigned
          int flags;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 6023
        line_start: 6009
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event
        type: unsigned
      item_type: union
      name: pv_event
      pos:
        line_end: 6298
        line_start: 6288
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            uint32_t eip, eax;\n        }"
      - name: x64
        type: "struct {\n            uint64_t eip;\n            uint32_t eax;\n        }"
      item_type: union
      name: '* r = (typeof(r)) ri->d'
      pos:
        line_end: 6309
        line_start: 6301
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: x32
        type: "struct {\n            unsigned int eip;\n            unsigned trapnr:15,\n
          \               use_error_code:1,\n                error_code:16;\n        }"
      - name: x64
        type: "struct {\n            unsigned long long eip;\n            unsigned
          trapnr:15,\n                use_error_code:1,\n                error_code:16;\n
          \       }"
      item_type: union
      name: '* r = (typeof(r)) ri->d'
      pos:
        line_end: 6352
        line_start: 6339
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: gpl3
        type: "struct {\n            unsigned long long pte;\n            unsigned
          int addr, eip;\n        }"
      - name: gpl4
        type: "struct {\n            unsigned long long pte;\n            unsigned
          long long addr, eip;\n        }"
      item_type: union
      name: '*r = (typeof(r))ri->d'
      pos:
        line_end: 6396
        line_start: 6386
        source_file: /src/xen/tools/xentrace/xenalyze.c
    - fields:
      - name: event
        type: unsigned int
      item_type: union
      name: _sevt = { .event = ri->event }
      pos:
        line_end: 7043
        line_start: 7033
        source_file: /src/xen/tools/xentrace/xenalyze.c
- function_names: []
  source_file: /src/xen/tools/xentrace/mread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MREAD_MAPS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/tools/xentrace/mread.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MREAD_BUF_SHIFT
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/tools/xentrace/mread.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/xen/tools/xentrace/mread.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MREAD_BUF_SIZE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/tools/xentrace/mread.h
      type_or_value: (1ULL<<(PAGE_SHIFT+MREAD_BUF_SHIFT))
    - item_type: preproc_def
      name: MREAD_BUF_MASK
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/tools/xentrace/mread.h
      type_or_value: (~(MREAD_BUF_SIZE-1))
    structs:
    - fields:
      - name: fd
        type: int
      - name: file_size
        type: off_t
      - name: map[MREAD_MAPS]
        type: "struct mread_buffer {\n        char * buffer;\n        off_t start_offset;\n
          \       int accessed;\n    }"
      - name: clock
        type: int
      item_type: struct
      name: mread_ctrl
      pos:
        line_end: 14
        line_start: 5
        source_file: /src/xen/tools/xentrace/mread.h
    - fields:
      - name: '* buffer'
        type: char
      - name: start_offset
        type: off_t
      - name: accessed
        type: int
      item_type: struct
      name: mread_buffer
      pos:
        line_end: 12
        line_start: 8
        source_file: /src/xen/tools/xentrace/mread.h
    typedefs: []
    union: []
- function_names:
  - PERROR
  - close_handler
  - MEMBUF_POINTER
  - MEMBUF_CONS_INCREMENT
  - MEMBUF_PROD_SET
  - membuf_alloc
  - membuf_reserve_window
  - membuf_write
  - membuf_dump
  - write_buffer
  - disable_tbufs
  - get_tbufs
  - map_tbufs
  - print_cpu_mask
  - set_cpu_mask
  - set_evt_mask
  - get_num_cpus
  - event_init
  - wait_for_event_or_timeout
  - monitor_tbufs
  - xstr
  - str
  - usage
  - sargtol
  - argtol
  - parse_evtmask
  - is_terminator
  - parse_cpumask_range
  - parse_cpu_mask
  - parse_args
  - main
  source_file: /src/xen/tools/xentrace/xentrace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLL_SLEEP_MILLIS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_TBUF_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MEMBUF_INDEX_RESET_THRESHOLD
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: (1<<29)
    - item_type: preproc_def
      name: CPU_CHANGE_HEADER
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: "(TRC_TRACE_CPU_CHANGE                                           \\\n
        \    | (((sizeof(struct cpu_change_record)/sizeof(uint32_t)) - 1)   \\\n        <<
        TRACE_EXTRA_SHIFT) )"
    - item_type: preproc_def
      name: USAGE_STR
      pos:
        line_end: 852
        line_start: 811
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: "\"Usage: xentrace [OPTION...] [output file]\\n\" \\\n\"Tool
        to capture Xen trace buffer data\\n\" \\\n\"\\n\" \\\n\"  -c, --cpu-mask=c
        \       Set cpu-mask, using either hex, CPU ranges, or\\n\" \\\n\"                          for
        all CPUs\\n\" \\\n\"  -e, --evt-mask=e        Set evt-mask\\n\" \\\n\"  -s,
        --poll-sleep=p      Set sleep time, p, in milliseconds between\\n\" \\\n\"
        \                         polling the trace buffer for new data\\n\" \\\n\"
        \                         (default \" xstr(POLL_SLEEP_MILLIS) \").\\n\" \\\n\"
        \ -S, --trace-buf-size=N  Set trace buffer size in pages (default \" \\\n
        \                          xstr(DEFAULT_TBUF_SIZE) \").\\n\" \\\n\"                          N.B.
        that the trace buffer cannot be resized.\\n\" \\\n\"                          if
        it has already been set this boot cycle,\\n\" \\\n\"                          this
        argument will be ignored.\\n\" \\\n\"  -D  --discard-buffers   Discard all
        records currently in the trace\\n\" \\\n\"                          buffers
        before beginning.\\n\" \\\n\"  -x  --dont-disable-tracing\\n\" \\\n\"                          By
        default, xentrace will disable tracing when\\n\" \\\n\"                          it
        exits. Selecting this option will tell it to\\n\" \\\n\"                          keep
        tracing on.  Traces will be collected in\\n\" \\\n\"                          Xen's
        trace buffers until they become full.\\n\" \\\n\"  -X  --start-disabled    Setup
        trace buffers and listen, but don't enable\\n\" \\\n\"                          tracing.
        (Useful if tracing will be enabled by\\n\" \\\n\"                          else.)\\n\"
        \\\n\"  -T  --time-interval=s   Run xentrace for s seconds and quit.\\n\"
        \\\n\"  -?, --help              Show this message\\n\" \\\n\"  -V, --version
        \          Print program version\\n\" \\\n\"  -M, --memory-buffer=b   Copy
        trace records to a circular memory buffer.\\n\" \\\n\"                          Dump
        to file on exit.\\n\" \\\n\"  -r  --reserve-disk-space=n Before writing trace
        records to disk, check to see\\n\" \\\n\"                          that after
        the write there will be at least n space\\n\" \\\n\"                          left
        on the disk.\\n\" \\\n\"\\n\" \\\n\"This tool is used to capture trace buffer
        data from Xen. The\\n\" \\\n\"data is output in a binary format, in the following
        order:\\n\" \\\n\"\\n\" \\\n\"  CPU(uint) TSC(uint64_t) EVENT(uint32_t) D1
        D2 D3 D4 D5 (all uint32_t)\\n\" \\\n\"\\n\" \\\n\"The output should be parsed
        using the tool xenalyze,\\n\" \\\n\"which can produce human-readable output
        in ASCII format.\\n\" "
    - item_type: preproc_def
      name: MB
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: (1024*1024)
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: (1024)
    - item_type: preproc_def
      name: ZERO_DIGIT
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: '''0'''
    - item_type: preproc_def
      name: O_LARGEFILE
      pos:
        line_end: 1165
        line_start: 1164
        source_file: /src/xen/tools/xentrace/xentrace.c
      type_or_value: '0'
    structs:
    - fields:
      - name: '*outfile'
        type: char
      - name: poll_sleep
        type: unsigned long
      - name: evt_mask
        type: uint32_t
      - name: '*cpu_mask_str'
        type: char
      - name: tbuf_size
        type: unsigned long
      - name: disk_rsvd
        type: unsigned long
      - name: timeout
        type: unsigned long
      - name: memory_buffer
        type: unsigned long
      - name: discard
        type: uint8_t
      item_type: struct
      name: settings_st
      pos:
        line_end: 65
        line_start: 53
        source_file: /src/xen/tools/xentrace/xentrace.c
    - fields:
      - name: '*t_info'
        type: struct t_info
      - name: '**meta'
        type: struct t_buf
      - name: '**data'
        type: unsigned char
      item_type: struct
      name: t_struct
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/xen/tools/xentrace/xentrace.c
    - fields:
      - name: '* buf'
        type: char
      - name: prod
        type: unsigned long
      - name: pending_size
        type: unsigned long
      item_type: struct
      name: membuf = { 0 }
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/xen/tools/xentrace/xentrace.c
    - fields:
      - name: header
        type: uint32_t
      - name: data
        type: "struct {\n        int cpu;\n        unsigned window_size;\n    }"
      item_type: struct
      name: cpu_change_record
      pos:
        line_end: 124
        line_start: 118
        source_file: /src/xen/tools/xentrace/xentrace.c
    typedefs: []
    union: []
- function_names:
  - mread_init
  - mread64
  source_file: /src/xen/tools/xentrace/mread.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xentrace/analyze.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRC_GEN_MAIN
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRC_SCHED_MAIN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TRC_DOM0OP_MAIN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TRC_HVM_MAIN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TRC_MEM_MAIN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TRC_PV_MAIN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TRC_SHADOW_MAIN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TRC_HW_MAIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TRC_LOST_RECORDS_END
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: (TRC_GEN + 50)
    - item_type: preproc_def
      name: TRC_HVM_OP_DESTROY_PROC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: (TRC_HVM_HANDLER + 0x100)
    - item_type: preproc_def
      name: DUMP_HEADER_MAX
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/xentrace/analyze.h
      type_or_value: '256'
    structs:
    - fields: []
      item_type: struct
      name: trace_record
      pos:
        line_end: 63
        line_start: 45
        source_file: /src/xen/tools/xentrace/analyze.h
    - fields:
      - name: time
        type: unsigned long long
      - name: s
        type: unsigned int
      item_type: struct
      name: time_struct
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/xen/tools/xentrace/analyze.h
    - fields:
      - name: cpu
        type: int
      - name: tsc
        type: tsc_t
      - name: extra_words
        type: int
      - name: size
        type: int
      - name: '*d'
        type: uint32_t
      - name: dump_header[DUMP_HEADER_MAX]
        type: char
      - name: t
        type: struct time_struct
      - name: rec
        type: struct trace_record
      item_type: struct
      name: record_info
      pos:
        line_end: 91
        line_start: 73
        source_file: /src/xen/tools/xentrace/analyze.h
    typedefs:
    - item_type: typedef
      name: tsc_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/xen/tools/xentrace/analyze.h
      type: unsigned long long
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/xcutils/lsevtchn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VERSION
  - print_string_note
  - print_numeric_note
  - print_l1_mfn_valid_note
  - print_notes
  - main
  source_file: /src/xen/tools/xcutils/readnotes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HDR_MAGIC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/xcutils/readnotes.c
      type_or_value: '"HdrS"'
    - item_type: preproc_def
      name: HDR_MAGIC_SZ
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/xcutils/readnotes.c
      type_or_value: '4'
    structs:
    - fields:
      - name: _pad0[0x1f1]
        type: uint8_t
      - name: setup_sects
        type: uint8_t
      - name: root_flags
        type: uint16_t
      - name: syssize
        type: uint32_t
      - name: ram_size
        type: uint16_t
      - name: vid_mode
        type: uint16_t
      - name: root_dev
        type: uint16_t
      - name: boot_flag
        type: uint16_t
      - name: jump
        type: uint16_t
      - name: header
        type: uint32_t
      - name: version
        type: uint16_t
      - name: realmode_swtch
        type: uint32_t
      - name: start_sys
        type: uint16_t
      - name: kernel_version
        type: uint16_t
      - name: type_of_loader
        type: uint8_t
      - name: loadflags
        type: uint8_t
      - name: setup_move_size
        type: uint16_t
      - name: code32_start
        type: uint32_t
      - name: ramdisk_image
        type: uint32_t
      - name: ramdisk_size
        type: uint32_t
      - name: bootsect_kludge
        type: uint32_t
      - name: heap_end_ptr
        type: uint16_t
      - name: _pad1
        type: uint16_t
      - name: cmd_line_ptr
        type: uint32_t
      - name: initrd_addr_max
        type: uint32_t
      - name: kernel_alignment
        type: uint32_t
      - name: relocatable_kernel
        type: uint8_t
      - name: _pad2[3]
        type: uint8_t
      - name: cmdline_size
        type: uint32_t
      - name: hardware_subarch
        type: uint32_t
      - name: hardware_subarch_data
        type: uint64_t
      - name: payload_offset
        type: uint32_t
      - name: payload_length
        type: uint32_t
      item_type: struct
      name: setup_header
      pos:
        line_end: 61
        line_start: 24
        source_file: /src/xen/tools/xcutils/readnotes.c
    typedefs: []
    union: []
- function_names:
  - dolog
  source_file: /src/xen/tools/console/daemon/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - handle_hup
  - usage
  - version
  - increase_fd_limit
  - main
  source_file: /src/xen/tools/console/daemon/main.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MAX_STRLEN
  - console_enabled
  - console_iter_void_arg1
  - console_iter_void_arg2
  - console_iter_int_arg1
  - console_iter_int_arg3
  - do_replace_escape
  - write_all
  - write_with_timestamp
  - buffer_available
  - buffer_append
  - buffer_empty
  - buffer_advance
  - domain_is_valid
  - create_hv_log
  - create_console_log
  - console_close_tty
  - openpty
  - cfmakeraw
  - console_create_tty
  - xs_gather
  - console_unmap_interface
  - console_create_ring
  - watch_domain
  - console_init
  - console_free
  - create_domain
  - lookup_domain
  - remove_domain
  - console_cleanup
  - cleanup_domain
  - console_close_evtchn
  - shutdown_domain
  - enum_domains
  - ring_free_bytes
  - console_handle_broken_tty
  - handle_tty_read
  - handle_tty_write
  - console_evtchn_unmask
  - handle_ring_read
  - handle_console_ring
  - handle_xs
  - handle_hv_logs
  - console_open_log
  - handle_log_reload
  - set_fds
  - reset_fds
  - maybe_add_console_evtchn_fd
  - maybe_add_console_tty_fd
  - handle_console_tty
  - handle_io
  source_file: /src/xen/tools/console/daemon/io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RATE_LIMIT_ALLOWANCE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/console/daemon/io.c
      type_or_value: '30'
    - item_type: preproc_def
      name: RATE_LIMIT_PERIOD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/console/daemon/io.c
      type_or_value: '200'
    - item_type: preproc_def
      name: NUM_CONSOLE_TYPE
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/tools/console/daemon/io.c
      type_or_value: (sizeof(console_type)/sizeof(struct console_type))
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: consumed
        type: size_t
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      - name: max_capacity
        type: size_t
      item_type: struct
      name: buffer
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/xen/tools/console/daemon/io.c
    - fields:
      - name: '*ttyname'
        type: char
      - name: master_fd
        type: int
      - name: master_pollfd_idx
        type: int
      - name: slave_fd
        type: int
      - name: log_fd
        type: int
      - name: buffer
        type: struct buffer
      - name: '*xspath'
        type: char
      - name: '*log_suffix'
        type: char
      - name: ring_ref
        type: int
      - name: '*xce_handle'
        type: xenevtchn_handle
      - name: xce_pollfd_idx
        type: int
      - name: event_count
        type: int
      - name: next_period
        type: long long
      - name: local_port
        type: xenevtchn_port_or_error_t
      - name: remote_port
        type: xenevtchn_port_or_error_t
      - name: '*interface'
        type: struct xencons_interface
      - name: '*d'
        type: struct domain
      - name: optional
        type: bool
      - name: use_gnttab
        type: bool
      item_type: struct
      name: console
      pos:
        line_end: 110
        line_start: 90
        source_file: /src/xen/tools/console/daemon/io.c
    - fields:
      - name: '*xsname'
        type: char
      - name: '*ttyname'
        type: char
      - name: '*log_suffix'
        type: char
      - name: optional
        type: bool
      - name: use_gnttab
        type: bool
      item_type: struct
      name: console_type
      pos:
        line_end: 118
        line_start: 112
        source_file: /src/xen/tools/console/daemon/io.c
    - fields:
      - name: domid
        type: int
      - name: is_dead
        type: bool
      - name: last_seen
        type: unsigned
      - name: '*next'
        type: struct domain
      - name: console[NUM_CONSOLE_TYPE]
        type: struct console
      item_type: struct
      name: domain
      pos:
        line_end: 147
        line_start: 141
        source_file: /src/xen/tools/console/daemon/io.c
    typedefs:
    - item_type: typedef
      name: (*VOID_ITER_FUNC_ARG1)(struct console *)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/xen/tools/console/daemon/io.c
      type: void
    - item_type: typedef
      name: (*INT_ITER_FUNC_ARG1)(struct console *)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/xen/tools/console/daemon/io.c
      type: int
    - item_type: typedef
      name: (*VOID_ITER_FUNC_ARG2)(struct console *,  void *)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/xen/tools/console/daemon/io.c
      type: void
    - item_type: typedef
      name: "(*INT_ITER_FUNC_ARG3)(struct console *,\n\t\t\t\t  struct domain *dom,
        void **)"
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/tools/console/daemon/io.c
      type: int
    union: []
- function_names:
  - child_exit
  - daemonize
  - xen_setup
  source_file: /src/xen/tools/console/daemon/utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/console/daemon/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - version
  - exec
  - main
  source_file: /src/xen/tools/console/testsuite/procpipe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE_NAME
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"procpipe"'
    - item_type: preproc_def
      name: PACKAGE_VERSION
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"0.0.1"'
    - item_type: preproc_def
      name: GPL_SHORT
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"This is free software; see the source for copying conditions.  There
        is NO\n"\

        "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."'
    - item_type: preproc_def
      name: PACKAGE_BUGS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"aliguori@us.ibm.com"'
    - item_type: preproc_def
      name: PACKAGE_AUTHOR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"Anthony Liguori"'
    - item_type: preproc_def
      name: PACKAGE_OWNER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: '"IBM, Corp."'
    - item_type: preproc_def
      name: PACKAGE_LICENSE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/console/testsuite/procpipe.c
      type_or_value: GPL_SHORT
    structs: []
    typedefs: []
    union: []
- function_names:
  - MIN
  - generate_random_buffer
  - canonicalize
  - main
  source_file: /src/xen/tools/console/testsuite/console-dom0.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - canonicalize
  - main
  source_file: /src/xen/tools/console/testsuite/console-domU.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sighandler
  - write_sync
  - usage
  - cfmakeraw
  - get_pty_fd
  - init_term
  - restore_term
  - console_loop
  - restore_term_stdin
  - console_lock
  - console_unlock
  - main
  source_file: /src/xen/tools/console/client/main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_ESCAPE_CHARACTER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/console/client/main.c
      type_or_value: '0x1d'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_next_battery_file
  - set_attribute_battery_info
  - set_attribute_battery_status
  - parse_battery_info_or_status
  - get_next_battery_info_or_status
  - print_battery_info
  - write_ulong_lsb_first
  - write_battery_info_to_xenstore
  - write_one_time_battery_info
  - print_battery_status
  - write_battery_status_to_xenstore
  - wait_for_and_update_battery_status_request
  - daemonize
  - main
  source_file: /src/xen/tools/xenpmd/xenpmd.c
  types:
    enum:
    - enumerators:
      - name: BIF
      - name: BST
      item_type: enum
      name: BATTERY_INFO_TYPE
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    - enumerators:
      - name: 'NO'
      - name: 'YES'
      item_type: enum
      name: BATTERY_PRESENT
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    - enumerators:
      - name: NON_RECHARGEABLE
      - name: RECHARGEABLE
      item_type: enum
      name: BATTERY_TECHNOLOGY
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    preproc_defs:
    - item_type: preproc_def
      name: BATTERY_DIR_PATH
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/tmp/battery"'
    - item_type: preproc_def
      name: BATTERY_INFO_FILE_PATH
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/tmp/battery/%s/info" '
    - item_type: preproc_def
      name: BATTERY_STATE_FILE_PATH
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/tmp/battery/%s/state"'
    - item_type: preproc_def
      name: BATTERY_DIR_PATH
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/proc/acpi/battery"'
    - item_type: preproc_def
      name: BATTERY_INFO_FILE_PATH
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/proc/acpi/battery/%s/info"'
    - item_type: preproc_def
      name: BATTERY_STATE_FILE_PATH
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/tools/xenpmd/xenpmd.c
      type_or_value: '"/proc/acpi/battery/%s/state"'
    structs:
    - fields:
      - name: present
        type: enum BATTERY_PRESENT
      - name: design_capacity
        type: unsigned long
      - name: last_full_capacity
        type: unsigned long
      - name: battery_technology
        type: enum BATTERY_TECHNOLOGY
      - name: design_voltage
        type: unsigned long
      - name: design_capacity_warning
        type: unsigned long
      - name: design_capacity_low
        type: unsigned long
      - name: capacity_granularity_1
        type: unsigned long
      - name: capacity_granularity_2
        type: unsigned long
      - name: model_number[32]
        type: char
      - name: serial_number[32]
        type: char
      - name: battery_type[32]
        type: char
      - name: oem_info[32]
        type: char
      item_type: struct
      name: battery_info
      pos:
        line_end: 77
        line_start: 63
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    - fields:
      - name: present
        type: enum BATTERY_PRESENT
      - name: state
        type: unsigned long
      - name: present_rate
        type: unsigned long
      - name: remaining_capacity
        type: unsigned long
      - name: present_voltage
        type: unsigned long
      item_type: struct
      name: battery_status
      pos:
        line_end: 85
        line_start: 79
        source_file: /src/xen/tools/xenpmd/xenpmd.c
    typedefs: []
    union: []
- function_names:
  - add_to_buf
  - live_update_start
  - live_update_cmdline
  - send_kernel_blob
  - live_update_stubdom
  - live_update_daemon
  - live_update
  - main
  source_file: /src/xen/tools/xs-clients/xenstore_control.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOB_CHUNK_SZ
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/tools/xs-clients/xenstore_control.c
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - expanding_buffer_ensure
  - sanitise_value
  - ADD
  - ADDF
  - unsanitise_value
  - GETF
  - expand_buffer
  - output
  - output_raw
  - usage
  - do_rm
  - MIN
  - do_ls
  - do_chmod
  - do_watch
  - perform
  - lookup_mode
  - main
  source_file: /src/xen/tools/xs-clients/xenstore_client.c
  types:
    enum:
    - enumerators:
      - name: MODE_unknown
      - name: MODE_list
      - name: MODE_chmod
      - name: MODE_ls
      - name: MODE_exists
      - name: MODE_read
      - name: MODE_rm
      - name: MODE_write
      - name: MODE_watch
      item_type: enum
      name: mode
      pos:
        line_end: 41
        line_start: 31
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
    preproc_defs:
    - item_type: preproc_def
      name: PATH_SEP
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
      type_or_value: '''/'''
    - item_type: preproc_def
      name: MAX_PATH_LEN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
      type_or_value: '256'
    - item_type: preproc_def
      name: STRING_MAX
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
      type_or_value: XENSTORE_ABS_PATH_MAX+1024
    - item_type: preproc_def
      name: TAG
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
      type_or_value: '" = \"...\""'
    - item_type: preproc_def
      name: TAG_LEN
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
      type_or_value: strlen(TAG)
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: avail
        type: int
      item_type: struct
      name: expanding_buffer
      pos:
        line_end: 47
        line_start: 44
        source_file: /src/xen/tools/xs-clients/xenstore_client.c
    typedefs: []
    union: []
- function_names:
  - policy_init
  - policy_choose_victim
  - policy_notify_paged_out
  - policy_handle_paged_in
  - policy_notify_paged_in
  - policy_notify_paged_in_nomru
  - policy_notify_dropped
  source_file: /src/xen/tools/xenpaging/policy_default.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_MRU_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/xenpaging/policy_default.c
      type_or_value: (1024 * 16)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenpaging/policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unlink_pagefile
  - close_handler
  - xenpaging_mem_paging_flush_ioemu_cache
  - xenpaging_wait_for_event_or_timeout
  - xenpaging_get_tot_pages
  - init_page
  - usage
  - xenpaging_getopts
  - xenpaging_init
  - xenpaging_teardown
  - get_request
  - put_response
  - xenpaging_evict_page
  - xenpaging_resume_page
  - xenpaging_populate_page
  - resume_pages
  - evict_victim
  - evict_pages
  - main
  source_file: /src/xen/tools/xenpaging/xenpaging.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WATCH_TARGETPAGES
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/xenpaging/xenpaging.c
      type_or_value: '"memory/target-tot_pages"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - file_op
  - my_write
  - read_page
  - write_page
  source_file: /src/xen/tools/xenpaging/file_ops.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xenpaging/file_ops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - page_in
  - page_in_trigger
  - create_page_in_thread
  source_file: /src/xen/tools/xenpaging/pagein.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dom
        type: domid_t
      - name: '*pagein_queue'
        type: unsigned long
      - name: '*xch'
        type: xc_interface
      item_type: struct
      name: page_in_args
      pos:
        line_end: 8
        line_start: 4
        source_file: /src/xen/tools/xenpaging/pagein.c
    typedefs: []
    union: []
- function_names:
  - DPRINTF
  - ERROR
  - PERROR
  - BITMAP_ENTRY
  - BITMAP_SHIFT
  - bitmap_size
  - bitmap_alloc
  - bitmap_clear
  - test_bit
  - clear_bit
  - set_bit
  - test_and_clear_bit
  - test_and_set_bit
  source_file: /src/xen/tools/xenpaging/xenpaging.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENPAGING_PAGEIN_QUEUE_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/xenpaging/xenpaging.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/xenpaging/xenpaging.h
      type_or_value: (sizeof(unsigned long) * 8)
    - item_type: preproc_def
      name: ORDER_LONG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/tools/xenpaging/xenpaging.h
      type_or_value: '(sizeof(unsigned long) == 4 ? 5 : 6)'
    structs:
    - fields:
      - name: domain_id
        type: domid_t
      - name: '*xce_handle'
        type: xenevtchn_handle
      - name: port
        type: int
      - name: back_ring
        type: vm_event_back_ring_t
      - name: evtchn_port
        type: uint32_t
      - name: '*ring_page'
        type: void
      item_type: struct
      name: vm_event
      pos:
        line_end: 48
        line_start: 41
        source_file: /src/xen/tools/xenpaging/xenpaging.h
    - fields:
      - name: '*xc_handle'
        type: xc_interface
      - name: '*logger'
        type: xentoollog_logger
      - name: '*xs_handle'
        type: struct xs_handle
      - name: '*bitmap'
        type: unsigned long
      - name: '*slot_to_gfn'
        type: unsigned long
      - name: '*gfn_to_slot'
        type: int
      - name: '*paging_buffer'
        type: void
      - name: vm_event
        type: struct vm_event
      - name: fd
        type: int
      - name: max_pages
        type: int
      - name: num_paged_out
        type: int
      - name: target_tot_pages
        type: int
      - name: policy_mru_size
        type: int
      - name: use_poll_timeout
        type: int
      - name: debug
        type: int
      - name: stack_count
        type: int
      - name: '*free_slot_stack'
        type: int
      - name: pagein_queue[XENPAGING_PAGEIN_QUEUE_SIZE]
        type: unsigned long
      item_type: struct
      name: xenpaging
      pos:
        line_end: 74
        line_start: 50
        source_file: /src/xen/tools/xenpaging/xenpaging.h
    typedefs: []
    union: []
- function_names:
  - cov_sysctl
  - cov_read
  - cov_reset
  - usage
  - main
  source_file: /src/xen/tools/misc/xencov.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/misc/xen-hvmcrash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - xenhypfs_print_escaped
  - xenhypfs_cat
  - xenhypfs_wr
  - xenhypfs_type
  - xenhypfs_ls
  - xenhypfs_tree_sub
  - xenhypfs_tree
  - main
  source_file: /src/xen/tools/misc/xenhypfs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DPRINTF
  - ERROR
  - PERROR
  - close_handler
  - xc_wait_for_event_or_timeout
  - xenaccess_teardown
  - xenaccess_init
  - control_singlestep
  - get_request
  - get_x86_ctrl_reg_name
  - put_response
  - usage
  - main
  source_file: /src/xen/tools/misc/xen-access.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: START_PFN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/misc/xen-access.c
      type_or_value: (GUEST_RAM0_BASE >> 12)
    - item_type: preproc_def
      name: START_PFN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/misc/xen-access.c
      type_or_value: 0ULL
    - item_type: preproc_def
      name: X86_TRAP_DEBUG
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/misc/xen-access.c
      type_or_value: '1'
    - item_type: preproc_def
      name: X86_TRAP_INT3
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/tools/misc/xen-access.c
      type_or_value: '3'
    - item_type: preproc_def
      name: X86_CR4_PGE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/misc/xen-access.c
      type_or_value: '0x00000080 '
    structs:
    - fields:
      - name: domain_id
        type: domid_t
      - name: '*xce_handle'
        type: xenevtchn_handle
      - name: port
        type: int
      - name: back_ring
        type: vm_event_back_ring_t
      - name: evtchn_port
        type: uint32_t
      - name: '*ring_page'
        type: void
      item_type: struct
      name: vm_event
      pos:
        line_end: 72
        line_start: 65
        source_file: /src/xen/tools/misc/xen-access.c
    - fields:
      - name: '*xc_handle'
        type: xc_interface
      - name: max_gpfn
        type: xen_pfn_t
      - name: vm_event
        type: vm_event_t
      item_type: struct
      name: xenaccess
      pos:
        line_end: 80
        line_start: 74
        source_file: /src/xen/tools/misc/xen-access.c
    typedefs: []
    union: []
- function_names:
  - BITS_TO_LONGS
  - DECLARE_BITMAP
  - READ
  - dump_header
  - dump_fpu
  - dump_cpu
  - dump_pic
  - dump_ioapic
  - dump_lapic
  - dump_lapic_regs
  - dump_pci_irq
  - dump_isa_irq
  - dump_pci_link
  - dump_pit
  - dump_rtc
  - dump_hpet
  - dump_pmtimer
  - dump_mtrr
  - dump_viridian_domain
  - dump_viridian_vcpu
  - dump_vmce_vcpu
  - dump_tsc_adjust
  - main
  source_file: /src/xen/tools/misc/xen-hvmctx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BITS_PER_LONG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/misc/xen-hvmctx.c
      type_or_value: __WORDSIZE
    structs:
    - fields:
      - name: lo
        type: uint64_t
      - name: hi
        type: uint16_t
      - name: pad[3]
        type: uint16_t
      item_type: struct
      name: fpu_mm
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/xen/tools/misc/xen-hvmctx.c
    - fields:
      - name: lo
        type: uint64_t
      - name: hi
        type: uint64_t
      item_type: struct
      name: fpu_xmm
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/xen/tools/misc/xen-hvmctx.c
    - fields:
      - name: fcw
        type: uint16_t
      - name: fsw
        type: uint16_t
      - name: ftw
        type: uint8_t
      - name: res0
        type: uint8_t
      - name: fop
        type: uint16_t
      - name: fpuip
        type: uint64_t
      - name: fpudp
        type: uint64_t
      - name: mxcsr
        type: uint32_t
      - name: mxcsr_mask
        type: uint32_t
      - name: mm[8]
        type: struct fpu_mm
      - name: xmm[16]
        type: struct fpu_xmm
      - name: res1[12]
        type: uint64_t
      item_type: struct
      name: fpu_regs
      pos:
        line_end: 102
        line_start: 89
        source_file: /src/xen/tools/misc/xen-hvmctx.c
    typedefs: []
    union: []
- function_names:
  - M2P_SIZE
  - is_mapped
  - ERROR
  - help_func
  - dump_m2p_func
  - dump_p2m_func
  - dump_ptes_func
  - lookup_pte_func
  - memcmp_mfns_func
  - main
  source_file: /src/xen/tools/misc/xen-mfndump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __MADDR_BITS_X86
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/tools/misc/xen-mfndump.c
      type_or_value: '((minfo.guest_width == 8) ? 52 : 44)'
    - item_type: preproc_def
      name: __MFN_MASK_X86
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/tools/misc/xen-mfndump.c
      type_or_value: ((1ULL << (__MADDR_BITS_X86 - XC_PAGE_SHIFT)) - 1)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*func)(int argc, char *argv[])
        type: int
      item_type: struct
      name: "opts[] = {\n    { \"help\", help_func },\n    { \"dump-m2p\", dump_m2p_func
        },\n    { \"dump-p2m\", dump_p2m_func },\n    { \"dump-ptes\", dump_ptes_func
        },\n    { \"lookup-pte\", lookup_pte_func },\n    { \"memcmp-mfns\", memcmp_mfns_func},\n}"
      pos:
        line_end: 386
        line_start: 383
        source_file: /src/xen/tools/misc/xen-mfndump.c
    typedefs: []
    union: []
- function_names:
  - cpuid
  - check_for_xen
  - sigill_handler
  - usage
  - check_dir
  - read_file_content
  - check_sysfs
  - main
  source_file: /src/xen/tools/misc/xen-detect.c
  types:
    enum:
    - enumerators:
      - name: XEN_PV
        value: '1'
      - name: XEN_HVM
        value: '2'
      - name: XEN_NONE
        value: '3'
      item_type: enum
      name: guest_type
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/xen/tools/misc/xen-detect.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_help
  - help_func
  - gnttab_query_size_func
  - main
  source_file: /src/xen/tools/misc/xen-diag.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXIT_TIMEOUT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/tools/misc/xen-diag.c
      type_or_value: (EXIT_FAILURE + 1)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*function)(int argc, char *argv[])
        type: int
      item_type: struct
      name: "main_options[] = {\n    { \"help\", help_func },\n    { \"gnttab_query_size\",
        gnttab_query_size_func},\n}"
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/xen/tools/misc/xen-diag.c
    typedefs: []
    union: []
- function_names:
  - X
  - main
  source_file: /src/xen/tools/misc/xenperf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_curr_cpu
  - usage
  - main
  source_file: /src/xen/tools/misc/xen-ucode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_help
  - help_func
  - state2str
  - STATE
  - list_func
  - get_name
  - upload_func
  - get_flags
  - nanosleep_retry
  - action_func
  - load_func
  - main
  source_file: /src/xen/tools/misc/xen-livepatch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HYPERVISOR_TIMEOUT_NS
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/tools/misc/xen-livepatch.c
      type_or_value: '30000000'
    - item_type: preproc_def
      name: DELAY
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/tools/misc/xen-livepatch.c
      type_or_value: (2 * HYPERVISOR_TIMEOUT_NS)
    - item_type: preproc_def
      name: EXIT_TIMEOUT
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/xen/tools/misc/xen-livepatch.c
      type_or_value: (EXIT_FAILURE + 1)
    structs:
    - fields:
      - name: allow
        type: int
      - name: expected
        type: int
      - name: '*name'
        type: char
      - name: '*verb'
        type: char
      - name: (*function)(xc_interface *xch, char *name, uint32_t timeout, uint32_t
          flags)
        type: int
      item_type: struct
      name: "action_options[] = {\n    {   .allow = LIVEPATCH_STATE_CHECKED,\n        .expected
        = LIVEPATCH_STATE_APPLIED,\n        .name = \"apply\",\n        .verb = \"Applying\",\n
        \       .function = xc_livepatch_apply,\n    },\n    {   .allow = LIVEPATCH_STATE_APPLIED,\n
        \       .expected = LIVEPATCH_STATE_CHECKED,\n        .name = \"revert\",\n
        \       .verb = \"Reverting\",\n        .function = xc_livepatch_revert,\n
        \   },\n    {   .allow = LIVEPATCH_STATE_CHECKED,\n        .expected = -XEN_ENOENT,\n
        \       .name = \"unload\",\n        .verb = \"Unloading\",\n        .function
        = xc_livepatch_unload,\n    },\n    {   .allow = LIVEPATCH_STATE_CHECKED,\n
        \       .expected = LIVEPATCH_STATE_APPLIED,\n        .name = \"replace\",\n
        \       .verb = \"Replacing all live patches with\",\n        .function =
        xc_livepatch_replace,\n    },\n}"
      pos:
        line_end: 283
        line_start: 277
        source_file: /src/xen/tools/misc/xen-livepatch.c
    - fields:
      - name: '*name'
        type: char
      - name: flag
        type: uint32_t
      item_type: struct
      name: "flag_options[ACTION_NUM][8 * sizeof(uint32_t)] = {\n    { /* ACTION_APPLY
        */\n        {   .name = \"--nodeps\",\n            .flag = LIVEPATCH_ACTION_APPLY_NODEPS,\n
        \       },\n    },\n    { /* ACTION_REVERT */\n    },\n    { /* ACTION_UNLOAD
        */\n    },\n    { /* ACTION_REPLACE */\n    }\n}"
      pos:
        line_end: 318
        line_start: 315
        source_file: /src/xen/tools/misc/xen-livepatch.c
    - fields:
      - name: '*name'
        type: char
      - name: (*function)(int argc, char *argv[])
        type: int
      item_type: struct
      name: "main_options[] = {\n    { \"help\", help_func },\n    { \"list\", list_func
        },\n    { \"upload\", upload_func },\n    { \"load\", load_func },\n}"
      pos:
        line_end: 555
        line_start: 552
        source_file: /src/xen/tools/misc/xen-livepatch.c
    typedefs: []
    union: []
- function_names:
  - Lprintf
  - err
  - init_msr_inj
  - flush_msr_inj
  - mca_cpuinfo
  - inject_cmci
  - inject_mce
  - inject_lmce
  - bank_addr
  - add_msr_intpose
  - add_msr_bank_intpose
  - inject_mcg_status
  - inject_mci_status
  - inject_mci_misc
  - inject_mci_addr
  - inject
  - xs_get_dom_mem
  - help
  - main
  source_file: /src/xen/tools/misc/xen-mceinj.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCi_type_CTL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: MCi_type_STATUS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MCi_type_ADDR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MCi_type_MISC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: MCi_type_CTL2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: INVALID_MSR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: ~0UL
    - item_type: preproc_def
      name: MSR_IA32_MCG_CAP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000179'
    - item_type: preproc_def
      name: MSR_IA32_MCG_STATUS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x0000017a'
    - item_type: preproc_def
      name: MSR_IA32_MCG_CTL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x0000017b'
    - item_type: preproc_def
      name: MSR_IA32_MC0_CTL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: MSR_IA32_MC0_STATUS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000401'
    - item_type: preproc_def
      name: MSR_IA32_MC0_ADDR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000402'
    - item_type: preproc_def
      name: MSR_IA32_MC0_MISC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000403'
    - item_type: preproc_def
      name: MSR_IA32_MC0_CTL2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x00000280'
    - item_type: preproc_def
      name: MCG_STATUS_LMCE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: '0x8'
    - item_type: preproc_def
      name: MCE_TABLE_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: (sizeof(mce_table)/sizeof(mce_table[0]))
    - item_type: preproc_def
      name: LOGFILE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/misc/xen-mceinj.c
      type_or_value: stdout
    structs:
    - fields:
      - name: '*description'
        type: char
      - name: mcg_stat
        type: uint8_t
      - name: bank
        type: unsigned int
      - name: mci_stat
        type: uint64_t
      - name: mci_misc
        type: uint64_t
      - name: cmci
        type: bool
      item_type: struct
      name: mce_info
      pos:
        line_end: 67
        line_start: 60
        source_file: /src/xen/tools/misc/xen-mceinj.c
    typedefs: []
    union: []
- function_names:
  - dump_leaf
  - decode_featureset
  - dump_info
  - print_policy
  - main
  source_file: /src/xen/tools/misc/xen-cpuid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COL_ALIGN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/tools/misc/xen-cpuid.c
      type_or_value: '"24"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*abbr'
        type: char
      item_type: struct
      name: "leaf_info[] = {\n    { \"CPUID 0x00000001.edx\",        \"1d\" },\n    {
        \"CPUID 0x00000001.ecx\",        \"1c\" },\n    { \"CPUID 0x80000001.edx\",
        \      \"e1d\" },\n    { \"CPUID 0x80000001.ecx\",       \"e1c\" },\n    {
        \"CPUID 0x0000000d:1.eax\",     \"Da1\" },\n    { \"CPUID 0x00000007:0.ebx\",
        \    \"7b0\" },\n    { \"CPUID 0x00000007:0.ecx\",     \"7c0\" },\n    { \"CPUID
        0x80000007.edx\",       \"e7d\" },\n    { \"CPUID 0x80000008.ebx\",       \"e8b\"
        },\n    { \"CPUID 0x00000007:0.edx\",     \"7d0\" },\n    { \"CPUID 0x00000007:1.eax\",
        \    \"7a1\" },\n    { \"CPUID 0x80000021.eax\",      \"e21a\" },\n    { \"CPUID
        0x00000007:1.ebx\",     \"7b1\" },\n    { \"CPUID 0x00000007:2.edx\",     \"7d2\"
        },\n    { \"CPUID 0x00000007:1.ecx\",     \"7c1\" },\n    { \"CPUID 0x00000007:1.edx\",
        \    \"7d1\" },\n    { \"MSR_ARCH_CAPS.lo\",         \"m10Al\" },\n    { \"MSR_ARCH_CAPS.hi\",
        \        \"m10Ah\" },\n    { \"CPUID 0x80000021.ecx\",      \"e21c\" },\n}"
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/xen/tools/misc/xen-cpuid.c
    typedefs: []
    union: []
- function_names:
  - show_help
  - help_func
  - hp_mem_online_func
  - hp_mem_query_func
  - suspend_guest
  - hp_mem_offline_func
  - exec_cpu_hp_fn
  - hp_cpu_online_func
  - hp_cpu_offline_func
  - main_smt_enable
  - main_smt_disable
  - main
  source_file: /src/xen/tools/misc/xen-hptool.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*function)(int argc, char *argv[])
        type: int
      item_type: struct
      name: "main_options[] = {\n    { \"help\", help_func },\n    { \"cpu-online\",
        hp_cpu_online_func },\n    { \"cpu-offline\", hp_cpu_offline_func },\n    {
        \"mem-status\", hp_mem_query_func},\n    { \"mem-online\", hp_mem_online_func},\n
        \   { \"mem-offline\", hp_mem_offline_func},\n    { \"smt-enable\", main_smt_enable
        },\n    { \"smt-disable\", main_smt_disable },\n}"
      pos:
        line_end: 365
        line_start: 362
        source_file: /src/xen/tools/misc/xen-hptool.c
    typedefs: []
    union: []
- function_names:
  - cleanup
  - handle_low_mem
  - main
  source_file: /src/xen/tools/misc/xen-lowmemd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOM0_FLOOR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/misc/xen-lowmemd.c
      type_or_value: (1 << 30)
    - item_type: preproc_def
      name: DOM0_FLOOR_PG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/misc/xen-lowmemd.c
      type_or_value: ((DOM0_FLOOR) >> 12)
    - item_type: preproc_def
      name: THRESHOLD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/misc/xen-lowmemd.c
      type_or_value: (92 << 20)
    - item_type: preproc_def
      name: THRESHOLD_PG
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/misc/xen-lowmemd.c
      type_or_value: ((THRESHOLD) >> 12)
    - item_type: preproc_def
      name: BUFSZ
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/misc/xen-lowmemd.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - daemonize
  - catch_exit
  - catch_usr1
  - usage
  - parse_secs
  - main
  source_file: /src/xen/tools/misc/xenwatchdogd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WDOG_MIN_TIMEOUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/misc/xenwatchdogd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: WDOG_MIN_SLEEP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/misc/xenwatchdogd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WDOG_EXIT_TIMEOUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/misc/xenwatchdogd.c
      type_or_value: '300'
    structs: []
    typedefs: []
    union: []
- function_names:
  - show_help
  - help_func
  - parse_cpuid
  - parse_cpuid_and_int
  - print_cxstat
  - get_cxstat_by_cpuid
  - show_max_cstate
  - show_cxstat_by_cpuid
  - cxstat_func
  - print_pxstat
  - get_pxstat_by_cpuid
  - get_avgfreq_by_cpuid
  - show_pxstat_by_cpuid
  - pxstat_func
  - show_cpufreq_by_cpuid
  - cpufreq_func
  - signal_int_handler
  - start_gather_func
  - calculate_activity_window
  - print_cppc_para
  - print_cpufreq_para
  - show_cppc_para_by_cpuid
  - show_cpufreq_para_by_cpuid
  - cpufreq_para_func
  - scaling_max_freq_func
  - scaling_min_freq_func
  - scaling_speed_func
  - scaling_sampling_rate_func
  - scaling_up_threshold_func
  - scaling_governor_func
  - cpu_topology_func
  - set_sched_smt_func
  - set_vcpu_migration_delay_func
  - get_vcpu_migration_delay_func
  - set_max_cstate_func
  - enable_turbo_mode
  - disable_turbo_mode
  - parse_activity_window
  - parse_cppc_opts
  - cppc_set_func
  - main
  source_file: /src/xen/tools/misc/xenpm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NR_CPU
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/misc/xenpm.c
      type_or_value: '512'
    - item_type: preproc_def
      name: MAX_PKG_RESIDENCIES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/misc/xenpm.c
      type_or_value: '12'
    - item_type: preproc_def
      name: MAX_CORE_RESIDENCIES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/misc/xenpm.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*function)(int argc, char *argv[])
        type: void
      item_type: struct
      name: "main_options[] = {\n    { \"help\", help_func },\n    { \"get-cpuidle-states\",
        cxstat_func },\n    { \"get-cpufreq-states\", pxstat_func },\n    { \"get-cpufreq-average\",
        cpufreq_func },\n    { \"start\", start_gather_func },\n    { \"get-cpufreq-para\",
        cpufreq_para_func },\n    { \"set-cpufreq-cppc\", cppc_set_func },\n    {
        \"set-scaling-maxfreq\", scaling_max_freq_func },\n    { \"set-scaling-minfreq\",
        scaling_min_freq_func },\n    { \"set-scaling-governor\", scaling_governor_func
        },\n    { \"set-scaling-speed\", scaling_speed_func },\n    { \"set-sampling-rate\",
        scaling_sampling_rate_func },\n    { \"set-up-threshold\", scaling_up_threshold_func
        },\n    { \"get-cpu-topology\", cpu_topology_func},\n    { \"set-sched-smt\",
        set_sched_smt_func},\n    { \"get-vcpu-migration-delay\", get_vcpu_migration_delay_func},\n
        \   { \"set-vcpu-migration-delay\", set_vcpu_migration_delay_func},\n    {
        \"set-max-cstate\", set_max_cstate_func},\n    { \"enable-turbo-mode\", enable_turbo_mode
        },\n    { \"disable-turbo-mode\", disable_turbo_mode },\n}"
      pos:
        line_end: 1599
        line_start: 1596
        source_file: /src/xen/tools/misc/xenpm.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/misc/xenlockprof.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - R
  - main
  source_file: /src/xen/tools/misc/xen-memshare.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - close_handler
  - get_more_data
  - main
  source_file: /src/xen/tools/misc/xen-vmtrace.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_RTIT_CTL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/misc/xen-vmtrace.c
      type_or_value: '0x00000570'
    - item_type: preproc_def
      name: RTIT_CTL_OS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/misc/xen-vmtrace.c
      type_or_value: (1 <<  2)
    - item_type: preproc_def
      name: RTIT_CTL_USR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/misc/xen-vmtrace.c
      type_or_value: (1 <<  3)
    - item_type: preproc_def
      name: RTIT_CTL_BRANCH_EN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/misc/xen-vmtrace.c
      type_or_value: (1 << 13)
    structs: []
    typedefs: []
    union: []
- function_names:
  - handle_stop
  - check_host_path
  - construct_frontend_path
  - construct_backend_path
  - read_backend_node
  - uint_from_string
  - read_backend_node_uint
  - read_frontend_node_uint
  - write_backend_node
  - write_backend_node_uint
  - write_backend_state
  - find_device
  - free_device
  - new_device
  - disconnect_ring
  - disconnect_guest
  - close_device
  - connect_err
  - connect_device
  - remove_device
  - remove_all_devices
  - frontend_changed
  - check_device
  - scan_backend
  - handle_watch
  - close_all
  - do_err
  - handle_event
  - xen_connect
  - main
  source_file: /src/xen/tools/9pfsd/xen-9pfsd.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: path[100]
        type: char
      item_type: struct
      name: path
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_RINGS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_RING_ORDER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MAX_OPEN_FILES_DEFAULT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
      type_or_value: '5'
    structs:
    - fields:
      - name: size
        type: uint32_t
      - name: cmd
        type: uint8_t
      - name: tag
        type: uint16_t
      item_type: struct
      name: p9_header
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
    - fields:
      - name: fid
        type: unsigned int
      - name: ref
        type: unsigned int
      - name: fd
        type: int
      - name: mode
        type: uint8_t
      - name: opened
        type: bool
      - name: isdir
        type: bool
      - name: '*data'
        type: void
      - name: path[]
        type: char
      item_type: struct
      name: p9_fid
      pos:
        line_end: 33
        line_start: 23
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
    - fields:
      - name: '*device'
        type: device
      - name: thread
        type: pthread_t
      - name: thread_active
        type: bool
      - name: stop_thread
        type: bool
      - name: cond
        type: pthread_cond_t
      - name: mutex
        type: pthread_mutex_t
      - name: evtchn
        type: evtchn_port_t
      - name: '*intf'
        type: struct xen_9pfs_data_intf
      - name: ring_order
        type: unsigned int
      - name: ring_size
        type: RING_IDX
      - name: data
        type: struct xen_9pfs_data
      - name: prod_pvt_in
        type: RING_IDX
      - name: cons_pvt_out
        type: RING_IDX
      - name: max_size
        type: uint32_t
      - name: error
        type: bool
      - name: handle_response
        type: bool
      - name: '*buffer'
        type: void
      - name: '*str'
        type: char
      - name: str_size
        type: unsigned int
      - name: str_used
        type: unsigned int
      item_type: struct
      name: ring
      pos:
        line_end: 63
        line_start: 37
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
    - fields:
      - name: (device)
        type: XEN_TAILQ_ENTRY
      - name: last_seen
        type: unsigned int
      - name: domid
        type: unsigned int
      - name: devid
        type: unsigned int
      - name: '*host_path'
        type: char
      - name: max_space
        type: unsigned int
      - name: max_files
        type: unsigned int
      - name: max_open_files
        type: unsigned int
      - name: auto_delete
        type: bool
      - name: backend_state
        type: enum xenbus_state
      - name: frontend_state
        type: enum xenbus_state
      - name: num_rings
        type: unsigned int
      - name: '*ring[MAX_RINGS]'
        type: struct ring
      - name: root_fd
        type: int
      - name: fid_mutex
        type: pthread_mutex_t
      - name: '*root_fid'
        type: struct p9_fid
      - name: n_fids
        type: unsigned int
      item_type: struct
      name: device
      pos:
        line_end: 91
        line_start: 65
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
    typedefs:
    - item_type: typedef
      name: device
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/xen/tools/9pfsd/xen-9pfsd.h
      type: device
    union: []
- function_names:
  - ring_in_free
  - ring_out_data
  - get_request_bytes
  - put_response_bytes
  - io_work_pending
  - fmt_err
  - vfill_buffer_at
  - fill_buffer_at
  - fill_buffer
  - add_string
  - chk_data
  - fill_data_elem
  - fill_data
  - find_fid
  - get_fid_ref
  - alloc_fid_mem
  - alloc_fid
  - free_fid
  - free_fids
  - relpath_from_path
  - fill_qid
  - name_ok
  - p9_error
  - p9_version
  - p9_attach
  - p9_walk
  - open_flags_from_mode
  - get_iounit
  - p9_open
  - p9_create
  - p9_clunk
  - fill_p9_stat
  - p9_stat
  - p9_read
  - p9_write
  - io_thread
  source_file: /src/xen/tools/9pfsd/io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P9_CMD_VERSION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '100'
    - item_type: preproc_def
      name: P9_CMD_ATTACH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '104'
    - item_type: preproc_def
      name: P9_CMD_ERROR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '107'
    - item_type: preproc_def
      name: P9_CMD_WALK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '110'
    - item_type: preproc_def
      name: P9_CMD_OPEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '112'
    - item_type: preproc_def
      name: P9_CMD_CREATE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '114'
    - item_type: preproc_def
      name: P9_CMD_READ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '116'
    - item_type: preproc_def
      name: P9_CMD_WRITE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '118'
    - item_type: preproc_def
      name: P9_CMD_CLUNK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '120'
    - item_type: preproc_def
      name: P9_CMD_STAT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '124'
    - item_type: preproc_def
      name: P9_OREAD
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: P9_OWRITE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: P9_ORDWR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: P9_OMODEMASK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: P9_OTRUNC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x10   '
    - item_type: preproc_def
      name: P9_OREMOVE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x40   '
    - item_type: preproc_def
      name: P9_CREATE_PERM_DIR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: P9_CREATE_PERM_NOTSUPP
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x03b00000   '
    - item_type: preproc_def
      name: P9_CREATE_PERM_DIR_MASK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0777'
    - item_type: preproc_def
      name: P9_CREATE_PERM_FILE_MASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0666'
    - item_type: preproc_def
      name: P9_MIN_MSIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: P9_VERSION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '"9P2000.u"'
    - item_type: preproc_def
      name: P9_WALK_MAXELEM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '16'
    - item_type: preproc_def
      name: QID_TYPE_DIR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: MAX_ERRSTR_LEN
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/xen/tools/9pfsd/io.c
      type_or_value: '80'
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: version
        type: uint32_t
      - name: path
        type: uint64_t
      item_type: struct
      name: p9_qid
      pos:
        line_end: 66
        line_start: 61
        source_file: /src/xen/tools/9pfsd/io.c
    - fields:
      - name: size
        type: uint16_t
      - name: type
        type: uint16_t
      - name: dev
        type: uint32_t
      - name: qid
        type: struct p9_qid
      - name: mode
        type: uint32_t
      - name: atime
        type: uint32_t
      - name: mtime
        type: uint32_t
      - name: length
        type: uint64_t
      - name: '*name'
        type: char
      - name: '*uid'
        type: char
      - name: '*gid'
        type: char
      - name: '*muid'
        type: char
      - name: '*extension'
        type: char
      - name: n_uid
        type: uint32_t
      - name: n_gid
        type: uint32_t
      - name: n_muid
        type: uint32_t
      item_type: struct
      name: p9_stat
      pos:
        line_end: 85
        line_start: 68
        source_file: /src/xen/tools/9pfsd/io.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INPUT_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/fuzz/libelf/afl-libelf-fuzzer.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/xen/tools/fuzz/libelf/libelf-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INPUT_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/fuzz/x86_instruction_emulator/afl-harness.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - input_avail
  - input_read
  - maybe_fail
  - data_read
  - fuzz_read
  - fuzz_read_io
  - fuzz_insn_fetch
  - _fuzz_rep_read
  - _fuzz_rep_write
  - fuzz_rep_ins
  - fuzz_rep_movs
  - fuzz_rep_outs
  - fuzz_rep_stos
  - fuzz_write
  - fuzz_cmpxchg
  - fuzz_tlb_op
  - fuzz_cache_op
  - fuzz_write_io
  - fuzz_read_segment
  - fuzz_write_segment
  - fuzz_read_cr
  - fuzz_write_cr
  - fuzz_read_msr
  - fuzz_write_msr
  - SET
  - setup_fpu_exception_handler
  - dump_state
  - long_mode_active
  - in_longmode
  - set_sizes
  - CANONICALIZE
  - CANONICALIZE_MAYBE
  - MAYBE_DISABLE_HOOK
  - disable_hooks
  - sanitize_input
  - check_state
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  - fuzz_minimal_input_size
  source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_INDEX_MAX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SEG_NUM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
      type_or_value: x86_seg_none
    - item_type: preproc_def
      name: DATA_OFFSET
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
      type_or_value: offsetof(struct fuzz_corpus, data)
    - item_type: preproc_def
      name: FUZZ_CORPUS_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
      type_or_value: (sizeof(struct fuzz_corpus))
    - item_type: preproc_def
      name: fuzz_read_xcr
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
      type_or_value: emul_test_read_xcr
    structs:
    - fields:
      - name: cr[5]
        type: unsigned long
      - name: msr[MSR_INDEX_MAX]
        type: uint64_t
      - name: regs
        type: struct cpu_user_regs
      - name: segments[SEG_NUM]
        type: struct segment_register
      - name: options
        type: unsigned long
      - name: data[INPUT_SIZE]
        type: unsigned char
      item_type: struct
      name: fuzz_corpus
      pos:
        line_end: 39
        line_start: 31
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    - fields:
      - name: '*corpus'
        type: struct fuzz_corpus
      - name: data_num
        type: size_t
      - name: data_index
        type: size_t
      - name: ops
        type: struct x86_emulate_ops
      item_type: struct
      name: fuzz_state
      pos:
        line_end: 60
        line_start: 47
        source_file: /src/xen/tools/fuzz/x86_instruction_emulator/fuzz-emul.c
    typedefs: []
    union: []
- function_names:
  - check_policy
  - main
  source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPTY_LEAF
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/fuzz/cpu-policy/afl-policy-fuzzer.c
      type_or_value: ((struct cpuid_leaf){})
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - vchan_wr
  - stdout_wr
  - set_nonblocking
  - main
  source_file: /src/xen/tools/vchan/node-select.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/vchan/node-select.c
      type_or_value: '5000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - libxenvchan_write_all
  - write_all
  - usage
  - reader
  - writer
  - main
  source_file: /src/xen/tools/vchan/node.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/tools/vchan/node.c
      type_or_value: '5000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - vchan_wr
  - socket_wr
  - set_nonblocking
  - connect_socket
  - listen_socket
  - connect_vchan
  - discard_buffers
  - data_loop
  - main
  source_file: /src/xen/tools/vchan/vchan-socket-proxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/tools/vchan/vchan-socket-proxy.c
      type_or_value: '8192'
    structs:
    - fields:
      - name: '*ctrl'
        type: struct libxenvchan
      - name: output_fd
        type: int
      - name: input_fd
        type: int
      item_type: struct
      name: vchan_proxy_state
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/xen/tools/vchan/vchan-socket-proxy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/debugger/gdbsx/gx/gx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: domid_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx.h
      type: uint16_t
    - item_type: typedef
      name: uchar
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx.h
      type: unsigned char
    union: []
- function_names:
  - do_tcp
  - gx_remote_open
  - gx_remote_close
  - readchar
  - gx_getpkt
  - gx_reply_ok
  - gx_reply_error
  - gx_putpkt
  source_file: /src/xen/tools/debugger/gdbsx/gx/gx_comm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gx_write_guest_regs
  - gx_read_guest_regs
  - _do_qRcmd_req
  - process_q_request
  - process_H_request
  - process_m_request
  - process_M_request
  - process_v_cont_request
  - process_v_request
  - watchpoint_stop
  - copy_mini_context32
  - copy_mini_context64
  - copy_mini_context
  - prepare_stop_reply
  - process_reas_request
  - process_c_request
  - process_Z_request
  - process_z_request
  - process_remote_request
  - gdbsx_usage_exit
  - check_usage_n_stuff
  - initialize
  - main
  source_file: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
  types:
    enum:
    - enumerators:
      - name: TARGET_SIGNAL_INT
        value: '2'
      - name: TARGET_SIGNAL_TRAP
        value: '5'
      item_type: enum
      name: target_signal
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/xen/tools/debugger/gdbsx/gx/gx_main.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gxprt
  - gx_fromhex
  - gx_tohex
  - gx_convert_int_to_ascii
  - gx_convert_ascii_to_int
  - gx_decode_zZ_packet
  - gx_decode_m_packet
  - gx_decode_M_packet
  source_file: /src/xen/tools/debugger/gdbsx/gx/gx_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - prnt_32regs
  - prnt_64regs
  - prnt_call_trace32
  - prnt_call_trace64
  - prnt_vcpu_context
  - gx_local_cmd
  source_file: /src/xen/tools/debugger/gdbsx/gx/gx_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xgtrc
  - xgprt
  - xg_init
  - xg_deinit
  - xg_attach
  - xg_step
  - xg_resume
  - xg_regs_read
  - xg_regs_write
  - xg_read_mem
  - xg_write_mem
  - xg_wait_domain
  source_file: /src/xen/tools/debugger/gdbsx/gx/xg_dummy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XGERR
  - XGTRC
  - XGTRC1
  source_file: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: eax
        type: uint32_t
      - name: ecx
        type: uint32_t
      - name: edx
        type: uint32_t
      - name: ebx
        type: uint32_t
      - name: esp
        type: uint32_t
      - name: ebp
        type: uint32_t
      - name: esi
        type: uint32_t
      - name: edi
        type: uint32_t
      - name: eip
        type: uint32_t
      - name: eflags
        type: uint32_t
      - name: cs
        type: uint32_t
      - name: ss
        type: uint32_t
      - name: ds
        type: uint32_t
      - name: es
        type: uint32_t
      - name: fs
        type: uint32_t
      - name: gs
        type: uint32_t
      item_type: struct
      name: xg_gdb_regs32
      pos:
        line_end: 53
        line_start: 36
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
    - fields:
      - name: rax
        type: uint64_t
      - name: rbx
        type: uint64_t
      - name: rcx
        type: uint64_t
      - name: rdx
        type: uint64_t
      - name: rsi
        type: uint64_t
      - name: rdi
        type: uint64_t
      - name: rbp
        type: uint64_t
      - name: rsp
        type: uint64_t
      - name: r8
        type: uint64_t
      - name: r9
        type: uint64_t
      - name: r10
        type: uint64_t
      - name: r11
        type: uint64_t
      - name: r12
        type: uint64_t
      - name: r13
        type: uint64_t
      - name: r14
        type: uint64_t
      - name: r15
        type: uint64_t
      - name: rip
        type: uint64_t
      - name: eflags
        type: uint32_t
      - name: cs
        type: uint32_t
      - name: ss
        type: uint32_t
      - name: ds
        type: uint32_t
      - name: es
        type: uint32_t
      - name: fs
        type: uint32_t
      - name: gs
        type: uint32_t
      item_type: struct
      name: xg_gdb_regs64
      pos:
        line_end: 81
        line_start: 56
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
    typedefs:
    - item_type: typedef
      name: vcpuid_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
      type: uint32_t
    union:
    - fields:
      - name: gregs_32
        type: struct xg_gdb_regs32
      - name: gregs_64
        type: struct xg_gdb_regs64
      item_type: union
      name: xg_gdb_regs
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_public.h
- function_names:
  - XGMIN
  - xgtrc
  - xgprt
  - xg_init
  - _domctl_hcall
  - _check_hyp
  - _domain_ok
  - _unpause_domain
  - xg_attach
  - _domain_is_paused
  - xg_detach_deinit
  - _wait_domain_pause
  - _change_TF
  - _allbutone_vcpu
  - xg_step
  - _vcpu_in_bp
  - xg_resume_n_wait
  - _cp_32ctxt_to_32gdb
  - _cp_64ctxt_to_32gdb
  - _cp_64ctxt_to_64gdb
  - _cp_32gdb_to_32ctxt
  - _cp_32gdb_to_64ctxt
  - _cp_64gdb_to_64ctxt
  - _get_vcpu_ctxt
  - xg_regs_read
  - xg_regs_write
  - xg_read_mem
  - xg_write_mem
  source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X86_EFLAGS_TF
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
      type_or_value: '0x00000100               '
    structs: []
    typedefs: []
    union:
    - fields:
      - name: ctxt64
        type: vcpu_guest_context_x86_64_t
      - name: ctxt32
        type: vcpu_guest_context_x86_32_t
      - name: ctxt
        type: vcpu_guest_context_t
      item_type: union
      name: vcpu_guest_context_any
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    - fields:
      - name: llbuf8
        type: uint64_t
      - name: buf8[8]
        type: char
      item_type: union
      name: u = {0}
      pos:
        line_end: 774
        line_start: 774
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
    - fields:
      - name: llbuf8
        type: uint64_t
      - name: buf8[8]
        type: char
      item_type: union
      name: u = {0}
      pos:
        line_end: 805
        line_start: 805
        source_file: /src/xen/tools/debugger/gdbsx/xg/xg_main.c
- function_names:
  - kdd_get_ip
  - blocking_write
  - kdd_log_pkt
  - kdd_read_physical
  - kdd_write_physical
  - v2p
  - kdd_access_virtual
  - kdd_read_virtual
  - kdd_write_virtual
  - check_os
  - get_pe64_sections
  - get_os_info_64
  - find_os
  - kdd_tx
  - kdd_send_ack
  - kdd_send_cmd
  - kdd_send_string
  - kdd_break
  - kdd_handle_ack
  - kdd_handle_handshake
  - kdd_handle_setcpu
  - kdd_handle_soft_breakpoint
  - kdd_handle_hard_breakpoint
  - kdd_handle_read_regs
  - kdd_handle_write_regs
  - kdd_handle_read_ctrl
  - kdd_handle_read_msr
  - kdd_handle_write_msr
  - kdd_handle_memory_access
  - kdd_handle_pkt
  - kdd_init
  - kdd_select_callback
  - usage
  - main
  source_file: /src/xen/tools/debugger/kdd/kdd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_PTR64
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZE_PTR32
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DOS_HDR_PE_OFF
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0x3c'
    - item_type: preproc_def
      name: DOS_HDR_PE_SZ
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PE_NUM_SECTION_OFF
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0x6'
    - item_type: preproc_def
      name: PE_NUM_SECTION_SZ
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PE_OPT_HDR_SZ_OFF
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0x14'
    - item_type: preproc_def
      name: PE_OPT_HDR_SZ_SZ
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PE_HDR_SZ
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0x18'
    - item_type: preproc_def
      name: MZ_HEADER
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0x5a4d'
    - item_type: preproc_def
      name: NUM_SECT_LIMIT
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NT_MAJOR_VERSION
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/tools/debugger/kdd/kdd.c
      type_or_value: '0xf'
    structs:
    - fields:
      - name: build
        type: uint32_t
      - name: w64
        type: int
      - name: mp
        type: int
      - name: '*name'
        type: char
      - name: base
        type: uint64_t
      - name: range
        type: uint32_t
      - name: version
        type: uint32_t
      - name: modules
        type: uint32_t
      - name: prcbs
        type: uint32_t
      - name: kddl
        type: uint32_t
      item_type: struct
      name: kdd_os
      pos:
        line_end: 76
        line_start: 65
        source_file: /src/xen/tools/debugger/kdd/kdd.c
    - fields:
      - name: cur
        type: unsigned int
      - name: next_id
        type: uint32_t
      - name: running
        type: int
      - name: cpuid
        type: int
      - name: fd
        type: int
      - name: '*log'
        type: FILE
      - name: verbosity
        type: int
      - name: '*guest'
        type: kdd_guest
      - name: os
        type: kdd_os
      item_type: struct
      name: kdd_state
      pos:
        line_end: 97
        line_start: 79
        source_file: /src/xen/tools/debugger/kdd/kdd.c
    - fields:
      - name: MajorVersion
        type: uint16_t
      - name: MinorVersion
        type: uint16_t
      - name: ProtocolVersion
        type: uint8_t
      - name: KdSecondaryVersion
        type: uint8_t
      - name: Flags
        type: uint16_t
      - name: MachineType
        type: uint16_t
      - name: MaxPacketType
        type: uint8_t
      - name: MaxStateChagne
        type: uint8_t
      - name: MaxManipulate
        type: uint8_t
      - name: Simulation
        type: uint8_t
      - name: Unused[1]
        type: uint16_t
      - name: KernBase
        type: uint64_t
      - name: PsLoadedModuleList
        type: uint64_t
      - name: DebuggerDataList
        type: uint64_t
      item_type: struct
      name: DBGKD_GET_VERSION64
      pos:
        line_end: 124
        line_start: 104
        source_file: /src/xen/tools/debugger/kdd/kdd.c
    - fields:
      - name: Name[8]
        type: uint8_t
      - name: VirtualSize
        type: uint32_t
      - name: VirtualAddr
        type: uint32_t
      - name: SizeOfRawData
        type: uint32_t
      - name: PointerToRawData
        type: uint32_t
      - name: PointerToRelocations
        type: uint32_t
      - name: PointerToLinenumbers
        type: uint32_t
      - name: NumberOfRelocations
        type: uint16_t
      - name: NumberOfLinenumbers
        type: uint16_t
      - name: Characteristics
        type: uint32_t
      item_type: struct
      name: PE_SECTION_ENTRY
      pos:
        line_end: 142
        line_start: 131
        source_file: /src/xen/tools/debugger/kdd/kdd.c
    typedefs: []
    union: []
- function_names:
  - KDD_LOG_IF
  - KDD_LOG
  - KDD_DEBUG
  source_file: /src/xen/tools/debugger/kdd/kdd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: __attribute__((packed))
    - item_type: preproc_def
      name: KDD_PAGE_SHIFT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '12'
    - item_type: preproc_def
      name: KDD_PAGE_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: (1U << KDD_PAGE_SHIFT)
    - item_type: preproc_def
      name: KDD_DIR_PKT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x30303030   '
    - item_type: preproc_def
      name: KDD_DIR_ACK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x69696969   '
    - item_type: preproc_def
      name: KDD_PKT_CMD
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0002      '
    - item_type: preproc_def
      name: KDD_PKT_MSG
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0003      '
    - item_type: preproc_def
      name: KDD_PKT_STC
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0007      '
    - item_type: preproc_def
      name: KDD_PKT_REG
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x000b      '
    - item_type: preproc_def
      name: KDD_PKT_MAX
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x000b'
    - item_type: preproc_def
      name: KDD_ACK_OK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0004      '
    - item_type: preproc_def
      name: KDD_ACK_BAD
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0005      '
    - item_type: preproc_def
      name: KDD_ACK_RST
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0006      '
    - item_type: preproc_def
      name: KDD_STATUS_SUCCESS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: KDD_STATUS_FAILURE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0xc0000001'
    - item_type: preproc_def
      name: KDD_STATUS_PENDING
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00000103'
    - item_type: preproc_def
      name: KDD_CMD_READ_VA
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003130  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_VA
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003131  '
    - item_type: preproc_def
      name: KDD_CMD_READ_CTRL
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003137  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_CTRL
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003138  '
    - item_type: preproc_def
      name: KDD_CMD_READ_PA
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0000313D  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_PA
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0000313E  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_Z
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0000315A  '
    - item_type: preproc_def
      name: KDD_CMD_READ_REGS
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003132  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_REGS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003133  '
    - item_type: preproc_def
      name: KDD_CMD_READ_MSR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003152  '
    - item_type: preproc_def
      name: KDD_CMD_WRITE_MSR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003153  '
    - item_type: preproc_def
      name: KDD_CMD_SOFT_BP
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003135  '
    - item_type: preproc_def
      name: KDD_CMD_HARD_BP
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0000315C  '
    - item_type: preproc_def
      name: KDD_CMD_CONT1
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003136  '
    - item_type: preproc_def
      name: KDD_CMD_CONT2
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0000313c  '
    - item_type: preproc_def
      name: KDD_DBG_EXCEPTION_HANDLED
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00010001'
    - item_type: preproc_def
      name: KDD_DBG_CONTINUE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00010002'
    - item_type: preproc_def
      name: KDD_CMD_SHAKE
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003146 '
    - item_type: preproc_def
      name: KDD_MACH_x32
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x014c'
    - item_type: preproc_def
      name: KDD_MACH_x64
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x8664'
    - item_type: preproc_def
      name: KDD_FLAGS_MP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: KDD_FLAGS_64
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: KDD_CMD_SETCPU
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003150 '
    - item_type: preproc_def
      name: KDD_MSG_PRINT
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003230  '
    - item_type: preproc_def
      name: KDD_REG_CHANGE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003430  '
    - item_type: preproc_def
      name: KDD_STC_STOP
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003030  '
    - item_type: preproc_def
      name: KDD_STC_LOAD
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x00003031  '
    - item_type: preproc_def
      name: KDD_STC_STATUS_BREAKPOINT
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type_or_value: '0x80000003'
    structs:
    - fields:
      - name: dir
        type: uint32_t
      - name: type
        type: uint16_t
      - name: len
        type: uint16_t
      - name: id
        type: uint32_t
      - name: sum
        type: uint32_t
      item_type: struct
      name: kdd_hdr
      pos:
        line_end: 77
        line_start: 71
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: status
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: addr
        type: uint64_t
      - name: length_req
        type: uint32_t
      - name: length_rsp
        type: uint32_t
      item_type: struct
      name: kdd_cmd_mem
      pos:
        line_end: 130
        line_start: 123
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint16_t
      - name: cpu
        type: uint16_t
      - name: status
        type: uint32_t
      item_type: struct
      name: kdd_cmd_regs
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: status
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: msr
        type: uint32_t
      - name: val
        type: uint64_t
      item_type: struct
      name: kdd_cmd_msr
      pos:
        line_end: 153
        line_start: 147
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: status
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: bp
        type: uint32_t
      item_type: struct
      name: kdd_cmd_soft_bp
      pos:
        line_end: 164
        line_start: 159
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: status
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: address
        type: uint64_t
      - name: u3
        type: uint64_t
      - name: u4
        type: uint64_t
      - name: u5
        type: uint64_t
      - name: u6
        type: uint64_t
      item_type: struct
      name: kdd_cmd_hard_bp
      pos:
        line_end: 177
        line_start: 168
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: reason1
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: reason2
        type: uint64_t
      item_type: struct
      name: kdd_cmd_cont
      pos:
        line_end: 192
        line_start: 187
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint32_t
      - name: status
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: v_major
        type: uint16_t
      - name: v_minor
        type: uint16_t
      - name: proto
        type: uint16_t
      - name: flags
        type: uint16_t
      - name: machine
        type: uint16_t
      - name: pkts
        type: uint8_t
      - name: states
        type: uint8_t
      - name: manips
        type: uint8_t
      - name: u3[3]
        type: uint8_t
      - name: kern_addr
        type: int64_t
      - name: mods_addr
        type: int64_t
      - name: data_addr
        type: int64_t
      item_type: struct
      name: kdd_cmd_shake
      pos:
        line_end: 220
        line_start: 204
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint16_t
      - name: cpu
        type: uint16_t
      - name: status
        type: uint32_t
      item_type: struct
      name: kdd_cmd_setcpu
      pos:
        line_end: 230
        line_start: 226
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: subtype
        type: uint32_t
      - name: data[0]
        type: uint8_t
      item_type: struct
      name: kdd_cmd
      pos:
        line_end: 246
        line_start: 232
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: subtype
        type: uint32_t
      - name: u1
        type: uint32_t
      - name: length
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: string[0]
        type: uint8_t
      item_type: struct
      name: kdd_msg
      pos:
        line_end: 265
        line_start: 259
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: subtype
        type: uint32_t
      - name: u1[15]
        type: uint32_t
      - name: string[0]
        type: uint16_t
      item_type: struct
      name: kdd_reg
      pos:
        line_end: 275
        line_start: 271
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1
        type: uint16_t
      - name: cpu
        type: uint16_t
      - name: ncpus
        type: uint32_t
      - name: u2
        type: uint32_t
      - name: kthread
        type: int64_t
      - name: rip1
        type: int64_t
      - name: status
        type: uint64_t
      - name: u3
        type: uint64_t
      - name: rip2
        type: int64_t
      - name: nparams
        type: uint64_t
      - name: params[15]
        type: uint64_t
      - name: first_chance
        type: uint64_t
      - name: u4[2]
        type: uint32_t
      - name: ilen
        type: uint32_t
      - name: inst[36]
        type: uint8_t
      item_type: struct
      name: kdd_stc_stop
      pos:
        line_end: 301
        line_start: 285
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: u1[3]
        type: uint32_t
      - name: u2
        type: uint64_t
      - name: rip
        type: uint64_t
      - name: u3[26]
        type: uint64_t
      - name: path[0]
        type: uint8_t
      item_type: struct
      name: kdd_stc_load
      pos:
        line_end: 309
        line_start: 303
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: subtype
        type: uint32_t
      item_type: struct
      name: kdd_stc
      pos:
        line_end: 317
        line_start: 311
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: h
        type: kdd_hdr
      item_type: struct
      name: kdd_pkt
      pos:
        line_end: 333
        line_start: 324
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: cr0
        type: uint32_t
      - name: cr2
        type: uint32_t
      - name: cr3
        type: uint32_t
      - name: cr4
        type: uint32_t
      - name: dr0
        type: uint32_t
      - name: dr1
        type: uint32_t
      - name: dr2
        type: uint32_t
      - name: dr3
        type: uint32_t
      - name: dr6
        type: uint32_t
      - name: dr7
        type: uint32_t
      - name: gdt_pad
        type: uint16_t
      - name: gdt_limit
        type: uint16_t
      - name: gdt_base
        type: uint32_t
      - name: idt_pad
        type: uint16_t
      - name: idt_limit
        type: uint16_t
      - name: idt_base
        type: uint32_t
      - name: tss_sel
        type: uint16_t
      - name: ldt_sel
        type: uint16_t
      - name: u1[24]
        type: uint8_t
      item_type: struct
      name: kdd_ctrl_x86_32
      pos:
        line_end: 438
        line_start: 418
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: cr0
        type: uint64_t
      - name: cr2
        type: uint64_t
      - name: cr3
        type: uint64_t
      - name: cr4
        type: uint64_t
      - name: dr0
        type: uint64_t
      - name: dr1
        type: uint64_t
      - name: dr2
        type: uint64_t
      - name: dr3
        type: uint64_t
      - name: dr6
        type: uint64_t
      - name: dr7
        type: uint64_t
      - name: gdt_pad[6]
        type: uint8_t
      - name: gdt_limit
        type: uint16_t
      - name: gdt_base
        type: uint64_t
      - name: idt_pad[6]
        type: uint8_t
      - name: idt_limit
        type: uint16_t
      - name: idt_base
        type: uint64_t
      - name: tss_sel
        type: uint16_t
      - name: ldt_sel
        type: uint16_t
      - name: u1[44]
        type: uint8_t
      - name: cr8
        type: uint64_t
      - name: u2[40]
        type: uint8_t
      - name: efer
        type: uint64_t
      item_type: struct
      name: kdd_ctrl_x86_64
      pos:
        line_end: 463
        line_start: 440
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    typedefs:
    - item_type: typedef
      name: kdd_guest
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/xen/tools/debugger/kdd/kdd.h
      type: kdd_guest
    union:
    - fields:
      - name: pad[179]
        type: uint32_t
      item_type: union
      name: kdd_regs_x86_32
      pos:
        line_end: 365
        line_start: 341
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: pad[154]
        type: uint64_t
      item_type: union
      name: kdd_regs_x86_64
      pos:
        line_end: 410
        line_start: 367
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: r32
        type: kdd_regs_x86_32
      - name: r64
        type: kdd_regs_x86_64
      item_type: union
      name: kdd_regs
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/xen/tools/debugger/kdd/kdd.h
    - fields:
      - name: c32
        type: kdd_ctrl_x86_32
      - name: c64
        type: kdd_ctrl_x86_64
      item_type: union
      name: kdd_ctrl
      pos:
        line_end: 468
        line_start: 465
        source_file: /src/xen/tools/debugger/kdd/kdd.h
- function_names:
  - flush_maps
  - kdd_halt
  - kdd_poll_guest
  - hvm_writeback
  - kdd_run
  - kdd_count_cpus
  - get_cpu
  - get_lapic
  - kdd_get_regs_x86_32
  - kdd_set_regs_x86_32
  - kdd_get_regs_x86_64
  - kdd_set_regs_x86_64
  - kdd_get_regs
  - kdd_set_regs
  - kdd_get_ctrl_x86_32
  - kdd_get_ctrl_x86_64
  - kdd_get_ctrl
  - kdd_wrmsr
  - kdd_rdmsr
  - kdd_access_physical_page
  - kdd_access_physical
  - kdd_xc_log
  - kdd_guest_init
  - kdd_guest_identify
  - kdd_guest_teardown
  source_file: /src/xen/tools/debugger/kdd/kdd-xen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAPSIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/tools/debugger/kdd/kdd-xen.c
      type_or_value: '4093 '
    structs:
    - fields:
      - name: xc_log
        type: struct xentoollog_logger
      - name: '*xc_handle'
        type: xc_interface
      - name: domid
        type: uint32_t
      - name: id[80]
        type: char
      - name: '*log'
        type: FILE
      - name: verbosity
        type: int
      - name: '*hvm_buf'
        type: void
      - name: hvm_sz
        type: uint32_t
      - name: pfns[MAPSIZE]
        type: uint32_t
      - name: '* maps[MAPSIZE]'
        type: void
      item_type: struct
      name: kdd_guest
      pos:
        line_end: 61
        line_start: 50
        source_file: /src/xen/tools/debugger/kdd/kdd-xen.c
    typedefs: []
    union: []
- function_names:
  - fsimage_file_read
  - fsimage_file_getattr
  - fsimage_file_dealloc
  - fsimage_fs_open_file
  - fsimage_fs_file_exists
  - fsimage_fs_getattr
  - fsimage_fs_dealloc
  - fsimage_open
  - fsimage_getbootstring
  - fsimage_init
  source_file: /src/xen/tools/pygrub/src/fsimage/fsimage.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fs'
        type: PyObject_HEAD
      item_type: struct
      name: fsimage_fs
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    - fields:
      - name: '*fs'
        type: PyObject_HEAD
      - name: '*file'
        type: fsi_file_t
      item_type: struct
      name: fsimage_file
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/xen/tools/pygrub/src/fsimage/fsimage.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/xen/tools/xenmon/setmask.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENMON
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/xenmon/setmask.c
      type_or_value: (TRC_SCHED_DOM_ADD | TRC_SCHED_DOM_REM | TRC_SCHED_SWITCH_INFPREV
        | TRC_SCHED_SWITCH_INFNEXT | TRC_SCHED_BLOCK | TRC_SCHED_SLEEP | TRC_SCHED_WAKE
        | TRC_MEM_PAGE_GRANT_TRANSFER)
    structs:
    - fields:
      - name: counter
        type: int
      item_type: struct
      name: atomic_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/tools/xenmon/setmask.c
    typedefs: []
    union: []
- function_names:
  - PERROR
  - _atomic_read
  - init_current
  - is_current
  - current
  - set_current
  - close_handler
  - dump_record
  - millis_to_timespec
  - check_gotten_sum
  - dump_stats
  - log_event
  - eventchn_init
  - wait_for_event
  - get_tbufs
  - disable_tracing
  - map_tbufs
  - get_num_cpus
  - monitor_tbufs
  - xstr
  - str
  - usage
  - argtol
  - parse_args
  - alloc_qos_data
  - main
  - qos_init_domain
  - global_init_domain
  - indexof
  - domain_runnable
  - update_blocked_time
  - advance_next_datapoint
  - qos_update_thread
  - qos_update_all
  - qos_update_thread_stats
  - qos_switch_in
  - qos_switch_out
  - qos_state_sleeping
  - qos_kill_thread
  - qos_state_runnable
  - qos_count_packets
  - process_record
  source_file: /src/xen/tools/xenmon/xenbaked.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEW_DATA_THRESH
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: '1'
    - item_type: preproc_def
      name: POLL_SLEEP_MILLIS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: '100'
    - item_type: preproc_def
      name: MS_PER_SAMPLE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: '100'
    - item_type: preproc_def
      name: CPU_FREQ
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: 2660 MHZ
    - item_type: preproc_def
      name: USAGE_STR
      pos:
        line_end: 570
        line_start: 553
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: "\"Usage: xenbaked [OPTION...]\\n\" \\\n\"Tool to capture and
        partially process Xen trace buffer data\\n\" \\\n\"\\n\" \\\n\"  -m, --ms_per_sample=MS
        \    Specify the number of milliseconds per sample\\n\" \\\n\"                             (default
        \" xstr(MS_PER_SAMPLE) \").\\n\" \\\n\"  -s, --poll-sleep=p         Set sleep
        time, p, in milliseconds between\\n\" \\\n\"                             polling
        the trace buffer for new data\\n\" \\\n\"                             (default
        \" xstr(POLL_SLEEP_MILLIS) \").\\n\" \\\n\"  -t, --log-thresh=l         Set
        number, l, of new records required to\\n\" \\\n\"                             trigger
        a write to output (default \" \\\n                              xstr(NEW_DATA_THRESH)
        \").\\n\" \\\n\"  -?, --help                 Show this message\\n\" \\\n\"
        -V, --version              Print program version\\n\" \\\n\"\\n\" \\\n\"This
        tool is used to capture trace buffer data from Xen.  The data is\\n\" \\\n\"saved
        in a shared memory structure to be further processed by xenmon.\\n\""
    - item_type: preproc_def
      name: SHARED_MEM_FILE
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/xen/tools/xenmon/xenbaked.c
      type_or_value: '"/var/run/xenq-shm"'
    structs:
    - fields:
      - name: counter
        type: int
      item_type: struct
      name: atomic_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/xen/tools/xenmon/xenbaked.c
    - fields:
      - name: poll_sleep
        type: struct timespec
      - name: new_data_thresh
        type: unsigned long
      - name: ms_per_sample
        type: unsigned long
      - name: cpu_freq
        type: double
      item_type: struct
      name: settings_st
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/xen/tools/xenmon/xenbaked.c
    - fields:
      - name: '*t_info'
        type: struct t_info
      - name: '**meta'
        type: struct t_buf
      - name: '**data'
        type: unsigned char
      item_type: struct
      name: t_struct
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/xen/tools/xenmon/xenbaked.c
    - fields:
      - name: event_count
        type: int
      - name: event_id
        type: int
      - name: '*text'
        type: char
      item_type: struct
      name: stat_map_t
      pos:
        line_end: 185
        line_start: 180
        source_file: /src/xen/tools/xenmon/xenbaked.c
    typedefs: []
    union: []
- function_names:
  - QOS_ADD
  - QOS_INCR
  - QOS_DECR
  - ID
  source_file: /src/xen/tools/xenmon/xenbaked.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: million
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: 1000000LL
    - item_type: preproc_def
      name: billion
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: 1000000000LL
    - item_type: preproc_def
      name: MAX_NAME_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: '32'
    - item_type: preproc_def
      name: IDLE_DOMAIN_ID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: '32767'
    - item_type: preproc_def
      name: NDOMAINS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NSAMPLES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_TBUF_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/tools/xenmon/xenbaked.h
      type_or_value: '20'
    structs:
    - fields:
      - name: last_update_time
        type: uint64_t
      - name: start_time
        type: uint64_t
      - name: runnable_start_time
        type: uint64_t
      - name: blocked_start_time
        type: uint64_t
      - name: ns_since_boot
        type: uint64_t
      - name: ns_oncpu_since_boot
        type: uint64_t
      - name: runnable_at_last_update
        type: int
      - name: runnable
        type: int
      - name: in_use
        type: int
      - name: id
        type: domid_t
      - name: name[MAX_NAME_SIZE]
        type: char
      item_type: struct
      name: _domain_info
      pos:
        line_end: 65
        line_start: 49
        source_file: /src/xen/tools/xenmon/xenbaked.h
    - fields:
      - name: qdata[NSAMPLES]
        type: "struct \n  {\n// data point:\n//   stuff that is recorded once for
          each measurement interval\n    uint64_t ns_gotten[NDOMAINS];\t\t// ns used
          in the last sample period\n    uint64_t ns_allocated[NDOMAINS];\t\t// ns
          allocated by scheduler\n    uint64_t ns_waiting[NDOMAINS];\t\t// ns spent
          waiting to execute, ie, time from\n                                        //
          becoming runnable until actually running\n    uint64_t ns_blocked[NDOMAINS];\t\t//
          ns spent blocked\n    uint64_t switchin_count[NDOMAINS]; // number of executions
          of the domain\t\n    uint64_t io_count[NDOMAINS];\n    uint64_t ns_passed;
          \             // ns gone by on the wall clock, ie, the sample period\n    uint64_t
          timestamp;\n    uint64_t lost_records;\t\t// # of lost trace records this
          time period\n    uint64_t flip_free_periods;\t// # of executions of dom0
          in which no page flips happened\n  }"
      - name: domain_info[NDOMAINS]
        type: _domain_info
      - name: next_datapoint
        type: int
      - name: ncpu
        type: int
      - name: structlen
        type: int
      - name: measurement_frequency
        type: int
      item_type: struct
      name: _new_qos_data
      pos:
        line_end: 98
        line_start: 69
        source_file: /src/xen/tools/xenmon/xenbaked.h
    typedefs: []
    union: []
- function_names:
  - INT_FIELD_WIDTH
  - usage
  - version
  - cleanup
  - fail
  - current_row
  - lines
  - print
  - print_pcpu_stats_display
  - xentop_attron
  - xentop_attroff
  - attr_addstr
  - set_delay
  - set_prompt
  - handle_key
  - compare
  - compare_dbl
  - compare_domains
  - compare_name
  - print_name
  - compare_state
  - print_state
  - compare_cpu
  - print_cpu
  - get_cpu_pct
  - compare_cpu_pct
  - print_cpu_pct
  - compare_mem
  - print_mem
  - print_mem_pct
  - compare_maxmem
  - print_maxmem
  - print_max_pct
  - compare_vcpus
  - print_vcpus
  - compare_nets
  - print_nets
  - compare_net_tx
  - print_net_tx
  - compare_net_rx
  - print_net_rx
  - tot_net_bytes
  - compare_vbds
  - print_vbds
  - compare_vbd_oo
  - print_vbd_oo
  - compare_vbd_rd
  - print_vbd_rd
  - compare_vbd_wr
  - print_vbd_wr
  - compare_vbd_rsect
  - print_vbd_rsect
  - compare_vbd_wsect
  - print_vbd_wsect
  - tot_vbd_reqs
  - compare_ssid
  - print_ssid
  - reset_field_widths
  - adjust_field_widths
  - do_summary
  - do_header
  - do_bottom_line
  - do_domain
  - do_vcpu
  - do_network
  - do_vbd
  - top
  - signal_exit_handler
  - main
  source_file: /src/xen/tools/xentop/xentop.c
  types:
    enum:
    - enumerators:
      - name: FIELD_STATE
      - name: FIELD_MEM_PCT
      - name: FIELD_NET_RX
      - name: FIELD_VBD_WR
      - name: FIELD_DOMID
      - name: FIELD_CPU
      - name: FIELD_MAXMEM
      - name: FIELD_VCPUS
      - name: FIELD_VBD_RSECT
      - name: FIELD_VBDS
      - name: FIELD_SSID
      - name: FIELD_CPU_PCT
      - name: FIELD_MAX_PCT
      - name: FIELD_VBD_OO
      - name: FIELD_NETS
      - name: FIELD_VBD_WSECT
      - name: FIELD_NAME
      - name: FIELD_MEM
      - name: FIELD_NET_TX
      - name: FIELD_VBD_RD
      item_type: enum
      name: field_id
      pos:
        line_end: 165
        line_start: 144
        source_file: /src/xen/tools/xentop/xentop.c
    preproc_defs:
    - item_type: preproc_def
      name: XENTOP_VERSION
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '"1.0"'
    - item_type: preproc_def
      name: XENTOP_DISCLAIMER
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '"Copyright (C) 2005  International Business Machines  Corp\n"\

        "This is free software; see the source for copying conditions.There is NO\n"\

        "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"'
    - item_type: preproc_def
      name: XENTOP_BUGSTO
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '"Report bugs to <xen-devel@lists.xen.org>.\n"'
    - item_type: preproc_def
      name: KEY_ESCAPE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '''\x1B'''
    - item_type: preproc_def
      name: KEY_REPAINT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '''\x0C'''
    - item_type: preproc_def
      name: ERR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: curses_str_t
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: char *
    - item_type: preproc_def
      name: curses_str_t
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: const char *
    - item_type: preproc_def
      name: PROMPT_VAL_LEN
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '80'
    - item_type: preproc_def
      name: TIME_STR_LEN
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/xen/tools/xentop/xentop.c
      type_or_value: '9'
    structs:
    - fields:
      - name: num
        type: field_id
      - name: '*header'
        type: char
      - name: default_width
        type: unsigned int
      - name: (*compare)(xenstat_domain *domain1, xenstat_domain *domain2)
        type: int
      - name: (*print)(xenstat_domain *domain)
        type: void
      item_type: struct
      name: field
      pos:
        line_end: 173
        line_start: 167
        source_file: /src/xen/tools/xentop/xentop.c
    - fields:
      - name: (*get)(xenstat_domain *)
        type: unsigned int
      - name: ch
        type: char
      item_type: struct
      name: "state_funcs[] = {\n\t{ xenstat_domain_dying,    'd' },\n\t{ xenstat_domain_shutdown,
        's' },\n\t{ xenstat_domain_blocked,  'b' },\n\t{ xenstat_domain_crashed,  'c'
        },\n\t{ xenstat_domain_paused,   'p' },\n\t{ xenstat_domain_running,  'r'
        }\n}"
      pos:
        line_end: 495
        line_start: 492
        source_file: /src/xen/tools/xentop/xentop.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/xentop/pcpu.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - report_pcpu_error
  - update_pcpu_stats
  - get_pcpu_count
  - get_pcpu_usage
  - has_pcpu_data
  - free_pcpu_stats
  source_file: /src/xen/tools/xentop/pcpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PCPUS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/xentop/pcpu.c
      type_or_value: '128'
    structs:
    - fields:
      - name: usage_pct
        type: float
      item_type: struct
      name: pcpu_stat_t
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/xen/tools/xentop/pcpu.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libacpi/libacpi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPI_HAS_COM1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: ACPI_HAS_COM2
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: ACPI_HAS_LPT1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: ACPI_HAS_HPET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: ACPI_HAS_SSDT_PM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: ACPI_HAS_SSDT_S3
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<5)
    - item_type: preproc_def
      name: ACPI_HAS_SSDT_S4
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: ACPI_HAS_TPM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: ACPI_HAS_IOAPIC
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: ACPI_HAS_WAET
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: ACPI_HAS_PMTIMER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<10)
    - item_type: preproc_def
      name: ACPI_HAS_BUTTONS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: ACPI_HAS_VGA
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: ACPI_HAS_8042
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: ACPI_HAS_CMOS_RTC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: ACPI_HAS_SSDT_LAPTOP_SLATE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libacpi/libacpi.h
      type_or_value: (1<<15)
    structs:
    - fields:
      - name: nr_vmemranges
        type: uint32_t
      - name: nr_vnodes
        type: uint32_t
      - name: '*vcpu_to_vnode'
        type: unsigned int
      - name: '*vdistance'
        type: unsigned int
      - name: '*vmemrange'
        type: struct xen_vmemrange
      item_type: struct
      name: acpi_numa
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/xen/tools/libacpi/libacpi.h
    - fields:
      - name: mem_ops
        type: "struct acpi_mem_ops {\n        void *(*alloc)(struct acpi_ctxt *ctxt,
          uint32_t size, uint32_t align);\n        void (*free)(struct acpi_ctxt *ctxt,
          void *v, uint32_t size);\n        unsigned long (*v2p)(struct acpi_ctxt
          *ctxt, void *v);\n    }"
      item_type: struct
      name: acpi_ctxt
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/xen/tools/libacpi/libacpi.h
    - fields:
      - name: '*(*alloc)(struct acpi_ctxt *ctxt, uint32_t size, uint32_t align)'
        type: void
      - name: (*free)(struct acpi_ctxt *ctxt, void *v, uint32_t size)
        type: void
      - name: (*v2p)(struct acpi_ctxt *ctxt, void *v)
        type: unsigned long
      item_type: struct
      name: acpi_mem_ops
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/xen/tools/libacpi/libacpi.h
    - fields:
      - name: '*dsdt_anycpu'
        type: unsigned char
      - name: dsdt_anycpu_len
        type: unsigned int
      - name: '*dsdt_15cpu'
        type: unsigned char
      - name: dsdt_15cpu_len
        type: unsigned int
      - name: pci_start
        type: uint32_t
      - name: pci_hi_start
        type: uint64_t
      - name: table_flags
        type: uint32_t
      - name: acpi_revision
        type: uint8_t
      - name: tpm_version
        type: uint8_t
      - name: vm_gid[2]
        type: uint64_t
      - name: vm_gid_addr
        type: unsigned long
      - name: pt
        type: "struct {\n        uint32_t addr;\n        uint32_t length;\n    }"
      - name: numa
        type: struct acpi_numa
      - name: '*hvminfo'
        type: struct hvm_info_table
      - name: '*tis_hdr'
        type: uint16_t
      - name: '*crb_id'
        type: uint16_t
      - name: infop
        type: unsigned long
      - name: rsdp
        type: unsigned long
      - name: (*lapic_id)(unsigned cpu)
        type: uint32_t
      - name: lapic_base_address
        type: uint32_t
      - name: ioapic_base_address
        type: uint32_t
      - name: pci_isa_irq_mask
        type: uint16_t
      - name: ioapic_id
        type: uint8_t
      item_type: struct
      name: acpi_config
      pos:
        line_end: 91
        line_start: 47
        source_file: /src/xen/tools/libacpi/libacpi.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/libacpi/static_tables.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPI_PM1A_EVT_BLK_BIT_WIDTH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ACPI_PM1A_EVT_BLK_BIT_OFFSET
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ACPI_PM1A_CNT_BLK_BIT_WIDTH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: ACPI_PM1A_CNT_BLK_BIT_OFFSET
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ACPI_PM_TMR_BLK_BIT_WIDTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ACPI_PM_TMR_BLK_BIT_OFFSET
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ACPI_WAET_RTC_NO_ACK
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: ACPI_WAET_TIMER_ONE_READ
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: ACPI_WAET_FLAGS
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/xen/tools/libacpi/static_tables.c
      type_or_value: "(ACPI_WAET_RTC_NO_ACK | \\\n                         ACPI_WAET_TIMER_ONE_READ)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASCII32
  - ASCII64
  source_file: /src/xen/tools/libacpi/acpi2_0.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPI_OEM_ID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '"Xen"'
    - item_type: preproc_def
      name: ACPI_OEM_TABLE_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '"HVM"'
    - item_type: preproc_def
      name: ACPI_OEM_REVISION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ACPI_CREATOR_ID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: 'ASCII32(''H'',''V'',''M'',''L'') '
    - item_type: preproc_def
      name: ACPI_CREATOR_REVISION
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ACPI_SYSTEM_MEMORY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ACPI_SYSTEM_IO
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ACPI_PCI_CONFIGURATION_SPACE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ACPI_EMBEDDED_CONTROLLER
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ACPI_SMBUS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ACPI_FUNCTIONAL_FIXED_HARDWARE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x7F'
    - item_type: preproc_def
      name: ACPI_2_0_TCPA_LAML_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (64*1024)
    - item_type: preproc_def
      name: TPM2_ACPI_CLASS_CLIENT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TPM2_START_METHOD_CRB
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TPM_REGISTER_BASE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0xFED40000'
    - item_type: preproc_def
      name: TPM_CRB_CTRL_REQ
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (TPM_REGISTER_BASE  + 0x40)
    - item_type: preproc_def
      name: TPM_CRB_INTF_ID
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (TPM_REGISTER_BASE  + 0x30)
    - item_type: preproc_def
      name: TPM_LOG_AREA_ADDRESS
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0xFED50000'
    - item_type: preproc_def
      name: TPM_LOG_SIZE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (64 << 10)
    - item_type: preproc_def
      name: ACPI_FADT_LEGACY_DEVICES
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_FADT_8042
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ACPI_FADT_NO_VGA
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: ACPI_FADT_NO_CMOS_RTC
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: ACPI_WBINVD
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_WBINVD_FLUSH
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ACPI_PROC_C1
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: ACPI_P_LVL2_UP
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: ACPI_PWR_BUTTON
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: ACPI_SLP_BUTTON
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: ACPI_FIX_RTC
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: ACPI_RTC_S4
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: ACPI_TMR_VAL_EXT
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: ACPI_DCK_CAP
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: ACPI_RESET_REG_SUP
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: ACPI_SEALED_CASE
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: ACPI_HEADLESS
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: ACPI_CPU_SW_SLP
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 13)
    - item_type: preproc_def
      name: ACPI_USE_PLATFORM_CLOCK
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: ACPI_PM1C_SCI_EN
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_2_0_FACS_VERSION
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_HPET_ADDRESS
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: 0xFED00000UL
    - item_type: preproc_def
      name: ACPI_PCAT_COMPAT
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_PROCESSOR_LOCAL_APIC
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ACPI_IO_APIC
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_INTERRUPT_SOURCE_OVERRIDE
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ACPI_NON_MASKABLE_INTERRUPT_SOURCE
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ACPI_LOCAL_APIC_NMI
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: ACPI_LOCAL_APIC_ADDRESS_OVERRIDE
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: ACPI_IO_SAPIC
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: ACPI_PROCESSOR_LOCAL_SAPIC
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: ACPI_PLATFORM_INTERRUPT_SOURCES
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ACPI_LOCAL_APIC_ENABLED
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_SRAT_TABLE_REVISION
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ACPI_PROCESSOR_AFFINITY
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ACPI_MEMORY_AFFINITY
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ACPI_LOCAL_APIC_AFFIN_ENABLED
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_MEM_AFFIN_ENABLED
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ACPI_MEM_AFFIN_HOTPLUGGABLE
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ACPI_MEM_AFFIN_NONVOLATILE
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: ACPI_2_0_RSDP_SIGNATURE
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII64('R','S','D',' ','P','T','R',' ')
    - item_type: preproc_def
      name: ACPI_2_0_FACS_SIGNATURE
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('F','A','C','S')
    - item_type: preproc_def
      name: ACPI_FADT_SIGNATURE
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('F','A','C','P')
    - item_type: preproc_def
      name: ACPI_2_0_MADT_SIGNATURE
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('A','P','I','C')
    - item_type: preproc_def
      name: ACPI_2_0_RSDT_SIGNATURE
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('R','S','D','T')
    - item_type: preproc_def
      name: ACPI_2_0_XSDT_SIGNATURE
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('X','S','D','T')
    - item_type: preproc_def
      name: ACPI_2_0_TCPA_SIGNATURE
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('T','C','P','A')
    - item_type: preproc_def
      name: ACPI_2_0_TPM2_SIGNATURE
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('T','P','M','2')
    - item_type: preproc_def
      name: ACPI_2_0_HPET_SIGNATURE
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('H','P','E','T')
    - item_type: preproc_def
      name: ACPI_2_0_WAET_SIGNATURE
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('W','A','E','T')
    - item_type: preproc_def
      name: ACPI_2_0_SRAT_SIGNATURE
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('S','R','A','T')
    - item_type: preproc_def
      name: ACPI_2_0_SLIT_SIGNATURE
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: ASCII32('S','L','I','T')
    - item_type: preproc_def
      name: ACPI_2_0_RSDP_REVISION
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ACPI_2_0_MADT_REVISION
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ACPI_2_0_RSDT_REVISION
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_2_0_XSDT_REVISION
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_2_0_TCPA_REVISION
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ACPI_2_0_TPM2_REVISION
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: ACPI_2_0_HPET_REVISION
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_2_0_WAET_REVISION
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_1_0_FADT_REVISION
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_2_0_SRAT_REVISION
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ACPI_2_0_SLIT_REVISION
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/xen/tools/libacpi/acpi2_0.h
      type_or_value: '0x01'
    structs:
    - fields:
      - name: signature
        type: uint32_t
      - name: length
        type: uint32_t
      - name: revision
        type: uint8_t
      - name: checksum
        type: uint8_t
      - name: oem_id[6]
        type: char
      - name: oem_table_id[8]
        type: char
      - name: oem_revision
        type: uint32_t
      - name: creator_id
        type: uint32_t
      - name: creator_revision
        type: uint32_t
      item_type: struct
      name: acpi_header
      pos:
        line_end: 31
        line_start: 21
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: address_space_id
        type: uint8_t
      - name: register_bit_width
        type: uint8_t
      - name: register_bit_offset
        type: uint8_t
      - name: reserved
        type: uint8_t
      - name: address
        type: uint64_t
      item_type: struct
      name: acpi_20_generic_address
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: signature
        type: uint64_t
      - name: checksum
        type: uint8_t
      - name: oem_id[6]
        type: char
      - name: reserved
        type: uint8_t
      - name: rsdt_address
        type: uint32_t
      item_type: struct
      name: acpi_10_rsdp
      pos:
        line_end: 70
        line_start: 64
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: signature
        type: uint64_t
      - name: checksum
        type: uint8_t
      - name: oem_id[6]
        type: char
      - name: revision
        type: uint8_t
      - name: rsdt_address
        type: uint32_t
      - name: length
        type: uint32_t
      - name: xsdt_address
        type: uint64_t
      - name: extended_checksum
        type: uint8_t
      - name: reserved[3]
        type: uint8_t
      item_type: struct
      name: acpi_20_rsdp
      pos:
        line_end: 85
        line_start: 75
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: entry[1]
        type: uint32_t
      item_type: struct
      name: acpi_20_rsdt
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: entry[1]
        type: uint64_t
      item_type: struct
      name: acpi_20_xsdt
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: platform_class
        type: uint16_t
      - name: laml
        type: uint32_t
      - name: lasa
        type: uint64_t
      item_type: struct
      name: acpi_20_tcpa
      pos:
        line_end: 111
        line_start: 106
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: platform_class
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: control_area_address
        type: uint64_t
      - name: start_method
        type: uint32_t
      - name: start_method_params[12]
        type: uint8_t
      - name: log_area_minimum_length
        type: uint32_t
      - name: log_area_start_address
        type: uint64_t
      item_type: struct
      name: acpi_20_tpm2
      pos:
        line_end: 126
        line_start: 117
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: firmware_ctrl
        type: uint32_t
      - name: dsdt
        type: uint32_t
      - name: reserved0
        type: uint8_t
      - name: preferred_pm_profile
        type: uint8_t
      - name: sci_int
        type: uint16_t
      - name: smi_cmd
        type: uint32_t
      - name: acpi_enable
        type: uint8_t
      - name: acpi_disable
        type: uint8_t
      - name: s4bios_req
        type: uint8_t
      - name: pstate_cnt
        type: uint8_t
      - name: pm1a_evt_blk
        type: uint32_t
      - name: pm1b_evt_blk
        type: uint32_t
      - name: pm1a_cnt_blk
        type: uint32_t
      - name: pm1b_cnt_blk
        type: uint32_t
      - name: pm2_cnt_blk
        type: uint32_t
      - name: pm_tmr_blk
        type: uint32_t
      - name: gpe0_blk
        type: uint32_t
      - name: gpe1_blk
        type: uint32_t
      - name: pm1_evt_len
        type: uint8_t
      - name: pm1_cnt_len
        type: uint8_t
      - name: pm2_cnt_len
        type: uint8_t
      - name: pm_tmr_len
        type: uint8_t
      - name: gpe0_blk_len
        type: uint8_t
      - name: gpe1_blk_len
        type: uint8_t
      - name: gpe1_base
        type: uint8_t
      - name: cst_cnt
        type: uint8_t
      - name: p_lvl2_lat
        type: uint16_t
      - name: p_lvl3_lat
        type: uint16_t
      - name: flush_size
        type: uint16_t
      - name: flush_stride
        type: uint16_t
      - name: duty_offset
        type: uint8_t
      - name: duty_width
        type: uint8_t
      - name: day_alrm
        type: uint8_t
      - name: mon_alrm
        type: uint8_t
      - name: century
        type: uint8_t
      - name: iapc_boot_arch
        type: uint16_t
      - name: reserved1
        type: uint8_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: acpi_10_fadt
      pos:
        line_end: 187
        line_start: 147
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: firmware_ctrl
        type: uint32_t
      - name: dsdt
        type: uint32_t
      - name: reserved0
        type: uint8_t
      - name: preferred_pm_profile
        type: uint8_t
      - name: sci_int
        type: uint16_t
      - name: smi_cmd
        type: uint32_t
      - name: acpi_enable
        type: uint8_t
      - name: acpi_disable
        type: uint8_t
      - name: s4bios_req
        type: uint8_t
      - name: pstate_cnt
        type: uint8_t
      - name: pm1a_evt_blk
        type: uint32_t
      - name: pm1b_evt_blk
        type: uint32_t
      - name: pm1a_cnt_blk
        type: uint32_t
      - name: pm1b_cnt_blk
        type: uint32_t
      - name: pm2_cnt_blk
        type: uint32_t
      - name: pm_tmr_blk
        type: uint32_t
      - name: gpe0_blk
        type: uint32_t
      - name: gpe1_blk
        type: uint32_t
      - name: pm1_evt_len
        type: uint8_t
      - name: pm1_cnt_len
        type: uint8_t
      - name: pm2_cnt_len
        type: uint8_t
      - name: pm_tmr_len
        type: uint8_t
      - name: gpe0_blk_len
        type: uint8_t
      - name: gpe1_blk_len
        type: uint8_t
      - name: gpe1_base
        type: uint8_t
      - name: cst_cnt
        type: uint8_t
      - name: p_lvl2_lat
        type: uint16_t
      - name: p_lvl3_lat
        type: uint16_t
      - name: flush_size
        type: uint16_t
      - name: flush_stride
        type: uint16_t
      - name: duty_offset
        type: uint8_t
      - name: duty_width
        type: uint8_t
      - name: day_alrm
        type: uint8_t
      - name: mon_alrm
        type: uint8_t
      - name: century
        type: uint8_t
      - name: iapc_boot_arch
        type: uint16_t
      - name: reserved1
        type: uint8_t
      - name: flags
        type: uint32_t
      - name: reset_reg
        type: struct acpi_20_generic_address
      - name: reset_value
        type: uint8_t
      - name: reserved2[3]
        type: uint8_t
      - name: x_firmware_ctrl
        type: uint64_t
      - name: x_dsdt
        type: uint64_t
      - name: x_pm1a_evt_blk
        type: struct acpi_20_generic_address
      - name: x_pm1b_evt_blk
        type: struct acpi_20_generic_address
      - name: x_pm1a_cnt_blk
        type: struct acpi_20_generic_address
      - name: x_pm1b_cnt_blk
        type: struct acpi_20_generic_address
      - name: x_pm2_cnt_blk
        type: struct acpi_20_generic_address
      - name: x_pm_tmr_blk
        type: struct acpi_20_generic_address
      - name: x_gpe0_blk
        type: struct acpi_20_generic_address
      - name: x_gpe1_blk
        type: struct acpi_20_generic_address
      - name: sleep_control
        type: struct acpi_20_generic_address
      - name: sleep_status
        type: struct acpi_20_generic_address
      item_type: struct
      name: acpi_fadt
      pos:
        line_end: 248
        line_start: 192
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: signature
        type: uint32_t
      - name: length
        type: uint32_t
      - name: hardware_signature
        type: uint32_t
      - name: firmware_waking_vector
        type: uint32_t
      - name: global_lock
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: x_firmware_waking_vector
        type: uint64_t
      - name: version
        type: uint8_t
      - name: reserved[31]
        type: uint8_t
      item_type: struct
      name: acpi_20_facs
      pos:
        line_end: 293
        line_start: 283
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: lapic_addr
        type: uint32_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: acpi_20_madt
      pos:
        line_end: 304
        line_start: 300
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: timer_block_id
        type: uint32_t
      - name: addr
        type: struct acpi_20_generic_address
      - name: hpet_number
        type: uint8_t
      - name: min_tick
        type: uint16_t
      - name: page_protect
        type: uint8_t
      item_type: struct
      name: acpi_20_hpet
      pos:
        line_end: 317
        line_start: 310
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: flags
        type: uint32_t
      item_type: struct
      name: acpi_20_waet
      pos:
        line_end: 326
        line_start: 323
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: acpi_processor_id
        type: uint8_t
      - name: apic_id
        type: uint8_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: acpi_20_madt_lapic
      pos:
        line_end: 359
        line_start: 353
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: ioapic_id
        type: uint8_t
      - name: reserved
        type: uint8_t
      - name: ioapic_addr
        type: uint32_t
      - name: gsi_base
        type: uint32_t
      item_type: struct
      name: acpi_20_madt_ioapic
      pos:
        line_end: 376
        line_start: 369
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: bus
        type: uint8_t
      - name: source
        type: uint8_t
      - name: gsi
        type: uint32_t
      - name: flags
        type: uint16_t
      item_type: struct
      name: acpi_20_madt_intsrcovr
      pos:
        line_end: 385
        line_start: 378
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: table_revision
        type: uint32_t
      - name: reserved2[2]
        type: uint32_t
      item_type: struct
      name: acpi_20_srat
      pos:
        line_end: 394
        line_start: 390
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: domain
        type: uint8_t
      - name: apic_id
        type: uint8_t
      - name: flags
        type: uint32_t
      - name: sapic_id
        type: uint8_t
      - name: domain_hi[3]
        type: uint8_t
      - name: reserved
        type: uint32_t
      item_type: struct
      name: acpi_20_srat_processor
      pos:
        line_end: 412
        line_start: 403
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: type
        type: uint8_t
      - name: length
        type: uint8_t
      - name: domain
        type: uint32_t
      - name: reserved
        type: uint16_t
      - name: base_address
        type: uint64_t
      - name: mem_length
        type: uint64_t
      - name: reserved2
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: reserved3
        type: uint64_t
      item_type: struct
      name: acpi_20_srat_memory
      pos:
        line_end: 429
        line_start: 419
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    - fields:
      - name: header
        type: struct acpi_header
      - name: localities
        type: uint64_t
      - name: entry[0]
        type: uint8_t
      item_type: struct
      name: acpi_20_slit
      pos:
        line_end: 442
        line_start: 438
        source_file: /src/xen/tools/libacpi/acpi2_0.h
    typedefs: []
    union: []
- function_names:
  - indent
  - _stmt
  - stmt
  - push_block
  - pop_block
  - main
  source_file: /src/xen/tools/libacpi/mk_dsdt.c
  types:
    enum:
    - enumerators:
      - name: QEMU_NONE
      - name: QEMU_XEN
      - name: QEMU_INVALID
      item_type: enum
      name: dm_version
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/xen/tools/libacpi/mk_dsdt.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - align16
  - fixed_strcpy
  - set_checksum
  - construct_madt
  - construct_hpet
  - construct_waet
  - construct_srat
  - construct_slit
  - construct_passthrough_tables
  - construct_secondary_tables
  - new_vm_gid
  - acpi_build_tables
  source_file: /src/xen/tools/libacpi/build.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPI_MAX_SECONDARY_TABLES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/tools/libacpi/build.c
      type_or_value: '16'
    structs:
    - fields:
      - name: com1_present
        type: uint8_t
      - name: com2_present
        type: uint8_t
      - name: lpt1_present
        type: uint8_t
      - name: hpet_present
        type: uint8_t
      - name: nr_cpus
        type: uint16_t
      - name: pci_min
        type: uint32_t
      - name: madt_csum_addr
        type: uint32_t
      - name: madt_lapic0_addr
        type: uint32_t
      - name: vm_gid_addr
        type: uint32_t
      - name: pci_hi_min
        type: uint64_t
      item_type: struct
      name: acpi_info
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/xen/tools/libacpi/build.c
    typedefs: []
    union: []
- function_names:
  - mb_to_bytes
  - usage
  - build
  - check_domain
  - parse_maxmem
  - do_xs_write
  - do_xs_write_dom
  - main
  source_file: /src/xen/tools/helpers/init-xenstore-domain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LAPIC_BASE_ADDRESS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/tools/helpers/init-xenstore-domain.c
      type_or_value: 0xfee00000UL
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/tools/helpers/init-dom-json.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_xs_page
  - get_xs_page
  - do_xs_write_dom
  - do_xs_write_libxl
  - do_xs_write_vm
  - create_xenstore
  - init_domain
  - domain_exists
  - main
  source_file: /src/xen/tools/helpers/init-dom0less.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XENSTORE_PFN_OFFSET
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/tools/helpers/init-dom0less.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STR_MAX_LENGTH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/tools/helpers/init-dom0less.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_stub_json_config
  source_file: /src/xen/tools/helpers/init-dom-json.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - clear_domid_history
  - main
  source_file: /src/xen/tools/helpers/xen-init-dom0.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOMNAME_PATH
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/tools/helpers/xen-init-dom0.c
      type_or_value: '"/local/domain/0/name"'
    - item_type: preproc_def
      name: DOMID_PATH
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/tools/helpers/xen-init-dom0.c
      type_or_value: '"/local/domain/0/domid"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - EX_FIELD
  - ex_addr
  - ex_cont
  - cmp_ex
  - swap_ex
  - init_or_livepatch::sort_exception_table
  - sort_exception_tables
  - search_one_extable
  - search_exception_table
  - stub_selftest
  source_file: /src/xen/xen/arch/x86/extable.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: opc[7]
        type: uint8_t
      - name: rax
        type: uint64_t
      - name: res
        type: union stub_exception_token
      item_type: struct
      name: "__initconst = {\n#define endbr64 0xf3, 0x0f, 0x1e, 0xfa\n        { .opc
        = { endbr64, 0x0f, 0xb9, 0x90 }, /* ud1 */\n          .res.fields.trapnr =
        X86_EXC_UD },\n        { .opc = { endbr64, 0x90, 0x02, 0x00 }, /* nop; add
        (%rax),%al */\n          .rax = 0x0123456789abcdef,\n          .res.fields.trapnr
        = X86_EXC_GP },\n        { .opc = { endbr64, 0x02, 0x04, 0x04 }, /* add (%rsp,%rax),%al
        */\n          .rax = 0xfedcba9876543210UL,\n          .res.fields.trapnr =
        X86_EXC_SS },\n        { .opc = { endbr64, 0xcc, 0x90, 0x90 }, /* int3 */\n
        \         .res.fields.trapnr = X86_EXC_BP },\n#undef endbr64\n    }"
      pos:
        line_end: 157
        line_start: 153
        source_file: /src/xen/xen/arch/x86/extable.c
    typedefs: []
    union: []
- function_names:
  - domain_vpit
  - vcpu_vpit
  - vpit_domain
  - vpit_vcpu
  - get_guest_time
  - get_count
  - pit_get_count
  - pit_time_fired
  - pit_load_count
  - pit_get_out
  - pit_set_gate
  - pit_get_gate
  - pit_latch_count
  - pit_latch_status
  - pit_ioport_write
  - pit_ioport_read
  - pit_stop_channel0_irq
  - pit_save
  - pit_check
  - pit_load
  - handle_pit_io
  - speaker_ioport_write
  - speaker_ioport_read
  - handle_speaker_io
  - pv_pit_handler
  - pit_reset
  - pit_init
  - pit_deinit
  source_file: /src/xen/xen/arch/x86/emul-i8254.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RW_STATE_LSB
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/emul-i8254.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RW_STATE_MSB
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/emul-i8254.c
      type_or_value: '2'
    - item_type: preproc_def
      name: RW_STATE_WORD0
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/emul-i8254.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RW_STATE_WORD1
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/emul-i8254.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RW_STATE_NUM
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/emul-i8254.c
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pci_conf_read
  - pci_conf_write
  - pci_conf_write_intercept
  - pci_check_bar
  - pci_sanitize_bar_memory
  - pci_setup
  source_file: /src/xen/xen/arch/x86/pci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NEXT_ARG
  - hypercall_create_continuation
  - arch_hypercall_tasklet_result
  - hypercall_xlat_continuation
  - arch_do_multicall_call
  source_file: /src/xen/xen/arch/x86/hypercall.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_hpet_param
  - div_sc
  - ns2ticks
  - hpet_next_event
  - reprogram_hpet_evt_channel
  - evt_do_broadcast
  - handle_hpet_broadcast
  - hpet_interrupt_handler
  - hpet_enable_channel
  - hpet_msi_unmask
  - hpet_msi_mask
  - hpet_msi_write
  - __hpet_setup_msi_irq
  - hpet_setup_msi_irq
  - hpet_assign_irq
  - hpet_fsb_cap_lookup
  - hpet_get_channel
  - set_channel_irq_affinity
  - hpet_attach_channel
  - hpet_detach_channel
  - handle_rtc_once
  - hpet_broadcast_init
  - hpet_broadcast_late_init
  - hpet_broadcast_resume
  - hpet_disable_legacy_broadcast
  - hpet_broadcast_enter
  - hpet_broadcast_exit
  - hpet_broadcast_is_available
  - hpet_legacy_irq_tick
  - struct
  - hpet_enable_legacy_replacement_mode
  - hpet_disable_legacy_replacement_mode
  - hpet_setup
  - hpet_resume
  - hpet_disable
  source_file: /src/xen/xen/arch/x86/hpet.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_DELTA_NS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: MICROSECS(20)
    - item_type: preproc_def
      name: HPET_EVT_USED_BIT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HPET_EVT_USED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: (1 << HPET_EVT_USED_BIT)
    - item_type: preproc_def
      name: HPET_EVT_DISABLE_BIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HPET_EVT_DISABLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: (1 << HPET_EVT_DISABLE_BIT)
    - item_type: preproc_def
      name: HPET_EVT_LEGACY_BIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HPET_EVT_LEGACY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: (1 << HPET_EVT_LEGACY_BIT)
    - item_type: preproc_def
      name: hpet_msi_shutdown
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/x86/hpet.c
      type_or_value: hpet_msi_mask
    structs:
    - fields:
      - name: mult
        type: unsigned long
      - name: shift
        type: int
      - name: next_event
        type: s_time_t
      - name: cpumask
        type: cpumask_var_t
      - name: lock
        type: spinlock_t
      - name: event_handler
        type: bool
      - name: idx
        type: unsigned int
      - name: cpu
        type: unsigned int
      - name: msi
        type: struct msi_desc
      - name: flags
        type: unsigned int
      item_type: struct
      name: hpet_event_channel
      pos:
        line_end: 47
        line_start: 34
        source_file: /src/xen/xen/arch/x86/hpet.c
    typedefs: []
    union: []
- function_names:
  - prepare_ICR
  - prepare_ICR2
  - apic_wait_icr_idle
  - send_IPI_shortcut
  - send_IPI_mask
  - send_IPI_self
  - send_IPI_self_legacy
  - send_IPI_mask_flat
  - send_IPI_mask_phys
  - for_each_cpu
  - invalidate_interrupt
  - flush_area_mask
  - new_tlbflush_clock_period
  - smp_send_event_check_mask
  - smp_send_call_function_mask
  - __stop_this_cpu
  - stop_this_cpu
  - smp_send_stop
  - smp_send_nmi_allbutself
  - event_check_interrupt
  - call_function_interrupt
  - cpu_up_helper
  - cpu_down_helper
  source_file: /src/xen/xen/arch/x86/smp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_watchdog
  - parse_watchdog_timeout
  - P4_ESCR_EVENT_SELECT
  - P4_CCCR_THRESHOLD
  - P4_CCCR_ESCR_SELECT
  - wait_for_nmis
  - check_nmi_watchdog
  - nmi_timer_fn
  - disable_lapic_nmi_watchdog
  - enable_lapic_nmi_watchdog
  - reserve_lapic_nmi
  - release_lapic_nmi
  - clear_msr_range
  - write_watchdog_counter
  - setup_k7_watchdog
  - setup_p6_watchdog
  - setup_p4_watchdog
  - setup_apic_nmi_watchdog
  - cpu_nmi_callback
  - watchdog_disable
  - watchdog_enable
  - watchdog_enabled
  - watchdog_setup
  - nmi_watchdog_tick
  - this_cpu
  - self_nmi
  - do_nmi_trigger
  - do_nmi_stats
  - register_nmi_trigger
  source_file: /src/xen/xen/arch/x86/nmi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LAPIC_NMI_WATCHDOG
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: LAPIC_NMI_RESERVED
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: K7_EVNTSEL_ENABLE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 22)
    - item_type: preproc_def
      name: K7_EVNTSEL_INT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: K7_EVNTSEL_OS
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: K7_EVNTSEL_USR
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: '0x76'
    - item_type: preproc_def
      name: K7_NMI_EVENT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: K7_EVENT_CYCLES_PROCESSOR_IS_RUNNING
    - item_type: preproc_def
      name: K7_EVENT_WIDTH
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: '32'
    - item_type: preproc_def
      name: P6_EVNTSEL0_ENABLE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 22)
    - item_type: preproc_def
      name: P6_EVNTSEL_INT
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: P6_EVNTSEL_OS
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: P6_EVNTSEL_USR
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: P6_EVENT_CPU_CLOCKS_NOT_HALTED
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: '0x79'
    - item_type: preproc_def
      name: CORE_EVENT_CPU_CLOCKS_NOT_HALTED
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: '0x3c'
    - item_type: preproc_def
      name: P6_EVENT_WIDTH_MASK
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (((1 << 8) - 1) << 16)
    - item_type: preproc_def
      name: P6_EVENT_WIDTH_MIN
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: '32'
    - item_type: preproc_def
      name: P4_CCCR_OVF_PMI0
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<26)
    - item_type: preproc_def
      name: P4_CCCR_OVF_PMI1
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<27)
    - item_type: preproc_def
      name: P4_CCCR_OVF
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1u << 31)
    - item_type: preproc_def
      name: P4_CCCR_COMPLEMENT
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<19)
    - item_type: preproc_def
      name: P4_CCCR_COMPARE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: P4_CCCR_REQUIRED
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (3<<16)
    - item_type: preproc_def
      name: P4_CCCR_ENABLE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: P4_NMI_CRU_ESCR0
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: P4_ESCR_EVENT_SELECT(0x3F)
    - item_type: preproc_def
      name: P4_NMI_IQ_CCCR0
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/xen/xen/arch/x86/nmi.c
      type_or_value: "(P4_CCCR_OVF_PMI0|P4_CCCR_THRESHOLD(15)|P4_CCCR_COMPLEMENT|
        \\\n     P4_CCCR_COMPARE|P4_CCCR_REQUIRED|P4_CCCR_ESCR_SELECT(4)|P4_CCCR_ENABLE)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - dbg_hvm_va2mfn
  - dbg_pv_va2mfn
  - dbg_rw_guest_mem
  - gdbsx_guest_mem_io
  - domain_pause_for_debugger
  - gdbsx_domctl
  - for_each_vcpu
  source_file: /src/xen/xen/arch/x86/gdbsx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: dbgva_t
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/xen/arch/x86/gdbsx.c
      type: unsigned long
    - item_type: typedef
      name: dbgbyte_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/xen/xen/arch/x86/gdbsx.c
      type: unsigned char
    union: []
- function_names:
  - integer_param
  - lock_vector_lock
  - unlock_vector_lock
  - valid_irq_vector
  - release_old_vec
  - _trace_irq_mask
  - trace_irq_mask
  - _bind_irq_vector
  - bind_irq_vector
  - _clear_irq_vector
  - for_each_cpu
  - for_each_cpu
  - clear_irq_vector
  - create_irq
  - destroy_irq
  - irq_to_vector
  - arch_init_one_irq_desc
  - init_irq_data
  - irq_ack_none
  - irq_get_used_vector_mask
  - _assign_irq_vector
  - for_each_cpu
  - assign_irq_vector
  - setup_vector_irq
  - move_masked_irq
  - move_native_irq
  - irq_move_cleanup_interrupt
  - send_cleanup_vector
  - irq_complete_move
  - set_desc_affinity
  - irq_set_affinity
  - pirq_set_affinity
  - alloc_hipriority_vector
  - set_direct_apic_vector
  - alloc_direct_apic_vector
  - free_lopriority_vector
  - irq_ratelimit_timer_fn
  - irq_ratelimit_init
  - request_irq
  - release_irq
  - setup_irq
  - guest_action
  - pending_eoi_sp
  - cpu_has_pending_apic_eoi
  - end_nonmaskable_irq
  - set_pirq_eoi
  - clear_pirq_eoi
  - irq_guest_eoi_timer_fn
  - domain_spin_lock_irq_desc
  - pirq_spin_lock_irq_desc
  - prepare_domain_irq_pirq
  - set_domain_irq_pirq
  - clear_domain_irq_pirq
  - cleanup_domain_irq_pirq
  - init_domain_irq_mapping
  - cleanup_domain_irq_mapping
  - alloc_pirq_struct
  - pirq_cleanup_check
  - flush_ready_eoi
  - __set_eoi_ready
  - set_eoi_ready
  - pirq_guest_eoi
  - desc_guest_eoi
  - pirq_guest_unmask
  - irq_acktype
  - pirq_shared
  - pirq_guest_bind
  - __pirq_guest_unbind
  - pirq_guest_unbind
  - pirq_guest_force_unbind
  - do_IRQ_guest
  - do_IRQ
  - is_free_pirq
  - get_free_pirq
  - get_free_pirqs
  - map_domain_pirq
  - unmap_domain_pirq
  - free_domain_pirqs
  - dump_irqs
  - setup_dump_irqs
  - fixup_irqs
  - fixup_eoi
  - map_domain_emuirq_pirq
  - unmap_domain_pirq_emuirq
  - arch_evtchn_bind_pirq
  - allocate_pirq
  - allocate_and_map_gsi_pirq
  - allocate_and_map_msi_pirq
  source_file: /src/xen/xen/arch/x86/irq.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACKTYPE_NONE
      pos:
        line_end: 1140
        line_start: 1139
        source_file: /src/xen/xen/arch/x86/irq.c
      type_or_value: '0     '
    - item_type: preproc_def
      name: ACKTYPE_UNMASK
      pos:
        line_end: 1141
        line_start: 1140
        source_file: /src/xen/xen/arch/x86/irq.c
      type_or_value: '1     '
    - item_type: preproc_def
      name: ACKTYPE_EOI
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/xen/xen/arch/x86/irq.c
      type_or_value: '2     '
    - item_type: preproc_def
      name: MAX_MSI_IRQS
      pos:
        line_end: 2179
        line_start: 2178
        source_file: /src/xen/xen/arch/x86/irq.c
      type_or_value: '32 '
    structs:
    - fields:
      - name: irq
        type: uint16_t
      - name: mask[6]
        type: uint32_t
      item_type: struct
      name: "d = {\n       .irq = irq,\n       .vec = vector,\n    }"
      pos:
        line_end: 134
        line_start: 131
        source_file: /src/xen/xen/arch/x86/irq.c
    - fields:
      - name: nr_guests
        type: u8
      - name: in_flight
        type: u8
      - name: shareable
        type: u8
      - name: ack_type
        type: u8
      - name: cpu_eoi_map
        type: cpumask_var_t
      - name: eoi_timer
        type: struct timer
      - name: '*guest[]'
        type: struct domain
      item_type: struct
      name: irq_guest_action_t
      pos:
        line_end: 1145
        line_start: 1134
        source_file: /src/xen/xen/arch/x86/irq.c
    - fields:
      - name: ready
        type: u32
      - name: irq
        type: u32
      - name: vector
        type: u32
      item_type: struct
      name: pending_eoi
      pos:
        line_end: 1160
        line_start: 1156
        source_file: /src/xen/xen/arch/x86/irq.c
    typedefs: []
    union: []
- function_names:
  - parse_spec_ctrl
  - xpti_init_default
  - parse_xpti
  - parse_pv_l1tf
  - print_details
  - check_smt_enabled
  - retpoline_calculations
  - rsb_is_full_width
  - should_use_eager_fpu
  - srso_calculations
  - has_div_vuln
  - div_calculations
  - ibpb_calculations
  - l1tf_calculations
  - mds_calculations
  - rfds_calculations
  - tsa_calculations
  - cpu_has_gds
  - gds_calculations
  - cpu_has_bug_bhi
  - bhi_calculations
  - its_calculations
  - spec_ctrl_init_domain
  - init_speculation_mitigations
  - build_assertions
  source_file: /src/xen/xen/arch/x86/spec_ctrl.c
  types:
    enum:
    - enumerators:
      - name: BHB_DEFAULT
      - name: BHB_LONG
      - name: BHB_TSX
      - name: BHB_SHORT
      - name: BHB_NONE
      item_type: enum
      name: bhb_thunk
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/xen/xen/arch/x86/spec_ctrl.c
    - enumerators:
      - name: THUNK_DEFAULT
      - name: THUNK_LFENCE
      - name: THUNK_JMP
      - name: THUNK_RETPOLINE
      - name: THUNK_NONE
      item_type: enum
      name: ind_thunk
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/xen/xen/arch/x86/spec_ctrl.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_reboot_type
  - kb_wait
  - __machine_halt
  - machine_halt
  - default_reboot_type
  - override_reboot
  - reboot_init
  - __machine_restart
  - machine_restart
  source_file: /src/xen/xen/arch/x86/shutdown.c
  types:
    enum:
    - enumerators:
      - name: BOOT_INVALID
      - name: BOOT_CF9
        value: '''p'''
      - name: BOOT_TRIPLE
        value: '''t'''
      - name: BOOT_ACPI
        value: '''a'''
      - name: BOOT_KBD
        value: '''k'''
      - name: BOOT_CF9_PWR
        value: '''P'''
      - name: BOOT_EFI
        value: '''e'''
      - name: BOOT_XEN
        value: '''x'''
      item_type: enum
      name: reboot_type
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/xen/xen/arch/x86/shutdown.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_nr_cpu_ids
  - set_nr_sockets
  - mpf_checksum
  - MP_processor_info_x
  - MP_processor_info
  - MP_bus_info
  - MP_ioapic_info
  - MP_intsrc_info
  - MP_lintsrc_info
  - smp_read_mpc
  - ELCR_trigger
  - construct_default_ioirq_mptable
  - construct_default_ISA_mptable
  - efi_unmap_mpf
  - get_smp_config
  - smp_scan_config
  - efi_check_config
  - get_bios_ebda
  - find_smp_config
  - mp_register_lapic_address
  - mp_register_lapic
  - mp_unregister_lapic
  - mp_find_ioapic
  - mp_register_ioapic
  - highest_gsi
  - io_apic_gsi_base
  - mp_override_legacy_irq
  - mp_config_acpi_legacy_irqs
  - mp_register_gsi
  source_file: /src/xen/xen/arch/x86/mpparse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MP_ISA_BUS
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/xen/xen/arch/x86/mpparse.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MP_MAX_IOAPIC_PIN
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/xen/xen/arch/x86/mpparse.c
      type_or_value: '127'
    structs:
    - fields:
      - name: gsi_base
        type: int
      - name: gsi_end
        type: int
      - name: pin_programmed[BITS_TO_LONGS(MP_MAX_IOAPIC_PIN + 1)]
        type: unsigned long
      item_type: struct
      name: mp_ioapic_routing
      pos:
        line_end: 847
        line_start: 843
        source_file: /src/xen/xen/arch/x86/mpparse.c
    typedefs: []
    union: []
- function_names:
  - x86_merge_dr6
  - x86_adj_dr6_rsvd
  - x86_adj_dr7_rsvd
  - activate_debugregs
  source_file: /src/xen/xen/arch/x86/debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_idle
  - default_dead_idle
  - play_dead
  - idle_loop
  - startup_cpu_idle_loop
  - init_hypercall_page
  - dump_pageframe_info
  - update_guest_memory_policy
  - cpu_policy_updated
  - domain_cpu_policy_changed
  - for_each_vcpu
  - arch_domain_struct_memflags
  - arch_vcpu_regs_init
  - arch_vcpu_create
  - arch_vcpu_destroy
  - arch_sanitise_domain_config
  - emulation_flags_ok
  - arch_init_idle_domain
  - arch_domain_create
  - arch_domain_teardown
  - arch_domain_destroy
  - arch_domain_shutdown
  - arch_domain_pause
  - arch_domain_unpause
  - arch_domain_soft_reset
  - for_each_vcpu
  - arch_domain_creation_finished
  - arch_set_info_guest
  - c
  - c
  - arch_initialise_vcpu
  - arch_vcpu_reset
  - time_area_populate
  - do_vcpu_op
  - load_segments
  - TRY_LOAD_SEG
  - save_segments
  - paravirt_ctxt_switch_from
  - paravirt_ctxt_switch_to
  - _update_runstate_area
  - need_full_gdt
  - update_xen_slot_in_full_gdt
  - load_full_gdt
  - load_default_gdt
  - __context_switch
  - context_switch
  - continue_running
  - __sync_local_execstate
  - sync_local_execstate
  - sync_vcpu_execstate
  - relinquish_memory
  - domain_relinquish_resources
  - PROGRESS
  - PROGRESS
  - for_each_vcpu
  - arch_dump_domain_info
  - arch_dump_vcpu_info
  - vcpu_kick
  - vcpu_mark_events_pending
  - vcpu_kick_softirq
  - init_vcpu_kick_softirq
  - domain_max_paddr_bits
  source_file: /src/xen/xen/arch/x86/domain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xen_vcpu_guest_context
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/xen/xen/arch/x86/domain.c
      type_or_value: vcpu_guest_context
    - item_type: preproc_def
      name: fpu_ctxt
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/xen/xen/arch/x86/domain.c
      type_or_value: fpu_ctxt.x
    - item_type: preproc_def
      name: case
      pos:
        line_end: 2433
        line_start: 2431
        source_file: /src/xen/xen/arch/x86/domain.c
      type_or_value: 'PROG_ ## x'
    structs:
    - fields:
      - name: caps
        type: unsigned int
      - name: min
        type: uint32_t
      - name: opt
        type: uint32_t
      item_type: struct
      name: "configs[] = {\n#ifdef CONFIG_PV\n        /* PV dom0 and domU */\n        {\n
        \           .caps   = CAP_PV | CAP_HWDOM | CAP_DOMU,\n            .opt    =
        X86_EMU_PIT,\n        },\n#endif /* #ifdef CONFIG_PV */\n\n#ifdef CONFIG_HVM\n
        \       /* PVH dom0 */\n        {\n            .caps   = CAP_HVM | CAP_HWDOM,\n
        \           .min    = X86_EMU_LAPIC | X86_EMU_IOAPIC | X86_EMU_VPCI,\n        },\n\n
        \       /* PVH domU */\n        {\n            .caps   = CAP_HVM | CAP_DOMU,\n
        \           .min    = X86_EMU_LAPIC,\n        },\n\n        /* HVM domU */\n
        \       {\n            .caps   = CAP_HVM | CAP_DOMU,\n            .min    =
        X86_EMU_ALL & ~(X86_EMU_VPCI | X86_EMU_USE_PIRQ),\n            /* HVM PIRQ
        feature is user-selectable. */\n            .opt    = X86_EMU_USE_PIRQ,\n
        \       },\n#endif /* #ifdef CONFIG_HVM */\n    }"
      pos:
        line_end: 764
        line_start: 760
        source_file: /src/xen/xen/arch/x86/domain.c
    typedefs: []
    union: []
- function_names:
  - guest_from_compat_handle
  - cpu_frequency_change_helper
  - msr_read_allowed
  - msr_write_allowed
  - check_resource_access
  - resource_access
  - do_platform_op
  - C
  - for_each_cpu
  source_file: /src/xen/xen/arch/x86/platform_hypercall.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESOURCE_ACCESS_MAX_ENTRIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/platform_hypercall.c
      type_or_value: '3'
    - item_type: preproc_def
      name: copy_from_compat
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/platform_hypercall.c
      type_or_value: copy_from_guest
    - item_type: preproc_def
      name: copy_to_compat
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/platform_hypercall.c
      type_or_value: copy_to_guest
    structs:
    - fields:
      - name: nr_done
        type: unsigned int
      - name: nr_entries
        type: unsigned int
      - name: '*entries'
        type: xenpf_resource_entry_t
      item_type: struct
      name: resource_access
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/xen/xen/arch/x86/platform_hypercall.c
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/xen/arch/x86/platform_hypercall.c
      type: long
    union: []
- function_names:
  - ioapic_has_eoi_reg
  - share_vector_maps
  - add_pin_to_irq
  - remove_pin_from_irq
  - pin_list_next
  - replace_pin_at_irq
  - io_apic_get_used_vector_map
  - alloc_ioapic_entries
  - __ioapic_read_entry
  - ioapic_read_entry
  - __ioapic_write_entry
  - ioapic_write_entry
  - __io_apic_eoi
  - save_IO_APIC_setup
  - mask_IO_APIC_setup
  - restore_IO_APIC_setup
  - free_ioapic_entries
  - modify_IO_APIC_irq
  - __mask_IO_APIC_irq
  - __unmask_IO_APIC_irq
  - __edge_IO_APIC_irq
  - __level_IO_APIC_irq
  - mask_IO_APIC_irq
  - unmask_IO_APIC_irq
  - __eoi_IO_APIC_irq
  - eoi_IO_APIC_irq
  - clear_IO_APIC_pin
  - clear_IO_APIC
  - set_ioapic_affinity_irq
  - find_irq_entry
  - find_isa_irq_pin
  - find_isa_irq_apic
  - setup_ioapic_dest
  - EISA_ELCR
  - default_EISA_trigger
  - default_EISA_polarity
  - default_ISA_trigger
  - default_ISA_polarity
  - default_PCI_trigger
  - default_PCI_polarity
  - default_MCA_trigger
  - default_MCA_polarity
  - default_NEC98_trigger
  - default_NEC98_polarity
  - MPBIOS_polarity
  - MPBIOS_trigger
  - irq_polarity
  - irq_trigger
  - pin_2_irq
  - gsi_2_irq
  - IO_APIC_irq_trigger
  - SET_DEST
  - ioapic_register_intr
  - setup_IO_APIC_irqs
  - setup_ExtINT_IRQ0_pin
  - UNEXPECTED_IO_APIC
  - __print_IO_APIC
  - print_IO_APIC
  - _print_IO_APIC_keyhandler
  - enable_IO_APIC
  - disable_IO_APIC
  - timer_irq_works
  - startup_edge_ioapic_irq
  - ack_edge_ioapic_irq
  - startup_level_ioapic_irq
  - setup_ioapic_ack
  - io_apic_level_ack_pending
  - mask_and_ack_level_ioapic_irq
  - end_level_ioapic_irq_old
  - end_level_ioapic_irq_new
  - init_IO_APIC_traps
  - enable_lapic_irq
  - disable_lapic_irq
  - ack_lapic_irq
  - unlock_ExtINT_logic
  - check_timer
  - ioapic_pm_state_alloc
  - setup_IO_APIC
  - ioapic_suspend
  - ioapic_resume
  - io_apic_get_version
  - io_apic_get_redir_entries
  - io_apic_set_pci_routing
  - ioapic_physbase_to_id
  - apic_pin_2_gsi_irq
  - ioapic_guest_read
  - WARN_BOGUS_WRITE
  - ioapic_guest_write
  - delivery_mode_2_str
  - dump_ioapic_irq_info
  - bad_ioapic_register
  - ioapic_init_mappings
  - ioapic_init
  - __hwdom_init::arch_hwdom_irqs
  source_file: /src/xen/xen/arch/x86/io_apic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PLUS_SHARED_IRQS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: nr_irqs_gsi
    - item_type: preproc_def
      name: PIN_MAP_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: (MAX_PLUS_SHARED_IRQS + nr_irqs_gsi)
    - item_type: preproc_def
      name: IOAPIC_AUTO
      pos:
        line_end: 1036
        line_start: 1035
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: IOAPIC_EDGE
      pos:
        line_end: 1037
        line_start: 1036
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IOAPIC_LEVEL
      pos:
        line_end: 1038
        line_start: 1037
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PIC_IRQS
      pos:
        line_end: 1994
        line_start: 1993
        source_file: /src/xen/xen/arch/x86/io_apic.c
      type_or_value: (1 << PIC_CASCADE_IR)
    structs:
    - fields:
      - name: pin
        type: int
      item_type: struct
      name: ioapic_i8259 = { -1, -1 }
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/xen/xen/arch/x86/io_apic.c
    - fields:
      - name: apic
        type: int
      - name: next
        type: unsigned int
      item_type: struct
      name: irq_pin_list
      pos:
        line_end: 129
        line_start: 126
        source_file: /src/xen/xen/arch/x86/io_apic.c
    typedefs: []
    union: []
- function_names:
  - '*(memmove)(void *dest, const void *src, size_t n)'
  source_file: /src/xen/xen/arch/x86/string.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xsetbv
  - set_xcr0
  - get_xcr0
  - set_msr_xss
  - get_msr_xss
  - setup_xstate_features
  - setup_xstate_comp
  - expand_xsave_states
  - compress_xsave_states
  - xsave
  - xrstor
  - _xrstor
  - XRSTOR
  - xsave_enabled
  - xstate_alloc_save_area
  - xstate_free_save_area
  - valid_xcr0
  - xstate_uncompressed_size
  - for_each_set_bit
  - xstate_compressed_size
  - for_each_set_bit
  - check_new_xstate
  - xstate_check_sizes
  - xstate_init
  - this_cpu
  - validate_xstate
  - handle_xsetbv
  - read_bndcfgu
  - xstate_set_init
  source_file: /src/xen/xen/arch/x86/xstate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: m
      pos:
        line_end: 318
        line_start: 312
        source_file: /src/xen/xen/arch/x86/xstate.c
      type_or_value: "\" (*ptr) \\\n                           : \"a\" (lmask), \"d\"
        (hmask), \"D\" (ptr) ); \\\n        else \\\n            alternative_io(\".byte
        \" pfx \"0x0f,0xae,0x27\\n\", "
    structs:
    - fields:
      - name: states
        type: uint64_t
      - name: uncomp_size
        type: uint32_t
      - name: comp_size
        type: uint32_t
      item_type: struct
      name: xcheck_state
      pos:
        line_end: 671
        line_start: 667
        source_file: /src/xen/xen/arch/x86/xstate.c
    typedefs: []
    union: []
- function_names:
  - do_nmi_crash
  - nmi_shootdown_cpus
  - local_irq_count
  - machine_crash_shutdown
  source_file: /src/xen/xen/arch/x86/crash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_cpu_state
  - initialize_cpu_data
  - smp_store_cpu_info
  - synchronize_tsc_master
  - synchronize_tsc_slave
  - smp_callin
  - link_thread_siblings
  - set_cpu_sibling_map
  - start_secondary
  - wakeup_secondary_cpu
  - alloc_cpu_id
  - do_boot_cpu
  - bootsym
  - STUB_BUF_CPU_OFFS
  - alloc_stub_page
  - cpu_exit_clear
  - clone_mapping
  - setup_cpu_root_pgt
  - cleanup_cpu_root_pgt
  - cpu_smpboot_free
  - cpu_alloc_stack
  - cpu_smpboot_alloc
  - cpu_smpboot_callback
  - smp_prepare_cpus
  - smp_prepare_boot_cpu
  - remove_siblinginfo
  - for_each_cpu
  - __cpu_disable
  - __cpu_die
  - cpu_add
  - __cpu_up
  - smp_cpus_done
  - smp_intr_init
  source_file: /src/xen/xen/arch/x86/smpboot.c
  types:
    enum:
    - enumerators:
      - name: CPU_STATE_DYING
      - name: CPU_STATE_CALLOUT
      - name: CPU_STATE_CALLIN
      - name: CPU_STATE_DEAD
      - name: CPU_STATE_INIT
      - name: CPU_STATE_ONLINE
      item_type: enum
      name: cpu_state
      pos:
        line_end: 88
        line_start: 81
        source_file: /src/xen/xen/arch/x86/smpboot.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - udelay
  source_file: /src/xen/xen/arch/x86/delay.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __find_first_bit
  - __find_next_bit
  - __find_first_zero_bit
  - __find_next_zero_bit
  source_file: /src/xen/xen/arch/x86/bitops.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SEL2GDT
  source_file: /src/xen/xen/arch/x86/desc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - l3_disallow_mask
  - l1_disallow_mask
  - parse_mmio_relax
  - init_frametable_chunk
  - init_frametable
  - assign_io_page
  - arch_init_memory
  - page_is_ram_type
  - page_is_offlinable
  - page_get_ram_type
  - domain_get_maximum_gpfn
  - share_xen_page_with_guest
  - make_cr3
  - write_ptbase
  - update_cr3
  - set_tlbflush_timestamp
  - inc_linear_entries
  - dec_linear_entries
  - inc_linear_uses
  - dec_linear_uses
  - define_get_linear_pagetable
  - define_get_linear_pagetable
  - dec_linear_uses
  - dec_linear_entries
  - is_iomem_page
  - is_memory_hole
  - print_mmio_emul_range
  - get_page_from_l1e
  - get_page_and_type_from_mfn
  - get_page_from_l2e
  - get_page_from_l3e
  - get_page_from_l4e
  - put_page_from_l1e
  - put_pt_page
  - put_data_pages
  - put_page_from_l2e
  - put_page_from_l3e
  - put_page_from_l4e
  - promote_l1_table
  - pae_xen_mappings_check
  - promote_l2_table
  - promote_l3_table
  - init_xen_l4_slots
  - fill_ro_mpt
  - zap_ro_mpt
  - promote_l4_table
  - demote_l1_table
  - demote_l2_table
  - demote_l3_table
  - demote_l4_table
  - current_locked_page_set
  - current_locked_page_check
  - current_locked_page_ne_check
  - current_locked_page_check
  - current_locked_page_ne_check
  - page_lock_unsafe
  - page_unlock
  - l3t_lock
  - l3t_unlock
  - mod_l1_entry
  - mod_l2_entry
  - mod_l3_entry
  - mod_l4_entry
  - cleanup_page_mappings
  - put_page
  - page_get_owner_and_reference
  - get_page
  - get_page_light
  - validate_page
  - devalidate_page
  - _put_final_page_type
  - _put_page_type
  - _get_page_type
  - put_page_type
  - get_page_type
  - put_page_type_preemptible
  - get_page_type_preemptible
  - put_old_guest_table
  - vcpu_destroy_pagetables
  - new_guest_cr3
  - vcpumask_to_pcpumask
  - for_each_set_bit
  - do_mmuext_op
  - do_mmu_update
  - steal_page
  - __do_update_va_mapping
  - do_update_va_mapping
  - do_update_va_mapping_otherdomain
  - compat_update_va_mapping
  - compat_update_va_mapping_otherdomain
  - _handle_iomem_range
  - handle_iomem_range
  - arch_memory_op
  - subpage_ro_active
  - subpage_mmio_find_page
  - subpage_mmio_ro_add_page
  - subpage_mmio_ro_remove_page
  - subpage_mmio_ro_add
  - subpage_mmio_map_page
  - subpage_mmio_write_emulate
  - alloc_xen_pagetable
  - free_xen_pagetable
  - alloc_mapped_pagetable
  - virt_to_xen_l3e
  - virt_to_xen_l2e
  - virt_to_xen_l1e
  - l1f_to_lNf
  - lNf_to_l1f
  - flush_area
  - L3T_INIT
  - L3T_LOCK
  - L3T_UNLOCK
  - xen_map_to_mfn
  - CHECK_MAPPED
  - map_pages_to_xen
  - flush_flags
  - IS_LnE_ALIGNED
  - IS_L2E_ALIGNED
  - IS_L3E_ALIGNED
  - populate_pt_range
  - modify_xen_mappings
  - destroy_xen_mappings
  - init_or_livepatch::modify_xen_mappings_lite
  - __set_fixmap
  - __set_fixmap_x
  - arch_vmap_virt_end
  - ioremap
  - ioremap_wc
  - create_perdomain_mapping
  - destroy_perdomain_mapping
  - free_perdomain_mappings
  - write_sss_token
  - memguard_guard_stack
  - memguard_unguard_stack
  - get_platform_badpages
  - paging_invlpg
  - write_32bit_pse_identmap
  - get_upper_mfn_bound
  - build_assertions
  source_file: /src/xen/xen/arch/x86/mm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1_DISALLOW_MASK
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: ((base_disallow_mask | _PAGE_GNTTAB) & ~_PAGE_GLOBAL)
    - item_type: preproc_def
      name: L2_DISALLOW_MASK
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: base_disallow_mask
    - item_type: preproc_def
      name: L4_DISALLOW_MASK
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (base_disallow_mask)
    - item_type: preproc_def
      name: root_pgt_pv_xen_slots
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: ROOT_PAGETABLE_PV_XEN_SLOTS
    - item_type: preproc_def
      name: PTF_partial_set
      pos:
        line_end: 1048
        line_start: 1047
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PTF_preemptible
      pos:
        line_end: 1049
        line_start: 1048
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: PTF_defer
      pos:
        line_end: 1050
        line_start: 1049
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: PTF_retain_ref_on_restart
      pos:
        line_end: 1051
        line_start: 1050
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: FASTPATH_FLAG_WHITELIST
      pos:
        line_end: 2137
        line_start: 2134
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: "(_PAGE_NX_BIT | _PAGE_AVAIL_HIGH | _PAGE_AVAIL | _PAGE_GLOBAL
        | \\\n     _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_USER)"
    - item_type: preproc_def
      name: FASTPATH_PDE_FLAG_WHITELIST
      pos:
        line_end: 2146
        line_start: 2145
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (FASTPATH_FLAG_WHITELIST | _PAGE_RW)
    - item_type: preproc_def
      name: FASTPATH_PDE_FLAG_WHITELIST
      pos:
        line_end: 2148
        line_start: 2147
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: FASTPATH_FLAG_WHITELIST
    - item_type: preproc_def
      name: FLAGS_MASK
      pos:
        line_end: 5810
        line_start: 5809
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (_PAGE_NX|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW|_PAGE_PRESENT)
    - item_type: preproc_def
      name: FLAGS_MASK
      pos:
        line_end: 6099
        line_start: 6098
        source_file: /src/xen/xen/arch/x86/mm.c
      type_or_value: (_PAGE_NX|_PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_RW|_PAGE_PRESENT)
    structs:
    - fields:
      - name: '*d'
        type: struct domain
      - name: mfn
        type: unsigned long
      item_type: struct
      name: mmio_emul_range_ctxt
      pos:
        line_end: 802
        line_start: 799
        source_file: /src/xen/xen/arch/x86/mm.c
    - fields:
      - name: n
        type: unsigned int
      - name: s
        type: unsigned long
      - name: map
        type: struct xen_memory_map
      item_type: struct
      name: memory_map_context
      pos:
        line_end: 4647
        line_start: 4642
        source_file: /src/xen/xen/arch/x86/mm.c
    typedefs:
    - item_type: typedef
      name: e820entry_t
      pos:
        line_end: 4639
        line_start: 4639
        source_file: /src/xen/xen/arch/x86/mm.c
      type: e820entry
    union: []
- function_names:
  - tboot_copy_memory
  - tboot_probe
  - dma_pte_present
  - dma_pte_addr
  - agaw_to_level
  - update_iommu_mac
  - is_page_in_use
  - wipe_ctx
  - tboot_gen_domain_integrity
  - for_each_domain
  - tboot_gen_xenheap_integrity
  - tboot_gen_frametable_integrity
  - tboot_shutdown
  - tboot_in_measured_env
  - tboot_protect_mem_regions
  - tboot_parse_dmar_table
  - tboot_s3_resume
  - tboot_s3_error
  - tboot_wake_ap
  source_file: /src/xen/xen/arch/x86/tboot.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TXT_PUB_CONFIG_REGS_BASE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: 0xfed30000U
    - item_type: preproc_def
      name: TXT_PRIV_CONFIG_REGS_BASE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: 0xfed20000U
    - item_type: preproc_def
      name: NR_TXT_CONFIG_PAGES
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: "((TXT_PUB_CONFIG_REGS_BASE -                \\\n                                  TXT_PRIV_CONFIG_REGS_BASE)
        >> PAGE_SHIFT)"
    - item_type: preproc_def
      name: TXTCR_SINIT_BASE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: '0x0270'
    - item_type: preproc_def
      name: TXTCR_SINIT_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: '0x0278'
    - item_type: preproc_def
      name: TXTCR_HEAP_BASE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: '0x0300'
    - item_type: preproc_def
      name: TXTCR_HEAP_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: '0x0308'
    - item_type: preproc_def
      name: SHA1_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: '20'
    - item_type: preproc_def
      name: LEVEL_STRIDE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: (9)
    - item_type: preproc_def
      name: PTE_NUM
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/tboot.c
      type_or_value: (1<<LEVEL_STRIDE)
    structs:
    - fields:
      - name: version
        type: uint32_t
      - name: bios_acm_id
        type: sha1_hash_t
      - name: edx_senter_flags
        type: uint32_t
      - name: mseg_valid
        type: uint64_t
      - name: sinit_hash
        type: sha1_hash_t
      - name: mle_hash
        type: sha1_hash_t
      - name: stm_hash
        type: sha1_hash_t
      - name: lcp_policy_hash
        type: sha1_hash_t
      - name: lcp_policy_control
        type: uint32_t
      - name: rlp_wakeup_addr
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: num_mdrs
        type: uint32_t
      - name: mdrs_off
        type: uint32_t
      - name: num_vtd_dmars
        type: uint32_t
      - name: vtd_dmars_off
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 75
        line_start: 59
        source_file: /src/xen/xen/arch/x86/tboot.c
    - fields:
      - name: val
        type: u64
      item_type: struct
      name: dma_pte
      pos:
        line_end: 155
        line_start: 153
        source_file: /src/xen/xen/arch/x86/tboot.c
    typedefs:
    - item_type: typedef
      name: sha1_hash_t[SHA1_SIZE]
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/xen/arch/x86/tboot.c
      type: uint8_t
    union: []
- function_names:
  - update_domain_cpu_policy
  - vcpu_set_vmce
  - VMCE_SIZE
  - arch_get_domain_info
  - do_vmtrace_op
  - arch_do_domctl
  - PV_XSAVE_SIZE
  - domctl_psr_get_val
  - arch_get_info_guest
  - c
  - c
  source_file: /src/xen/xen/arch/x86/domctl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IOPORTS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/domctl.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: PV_XSAVE_HDR_SIZE
      pos:
        line_end: 881
        line_start: 880
        source_file: /src/xen/xen/arch/x86/domctl.c
      type_or_value: (2 * sizeof(uint64_t))
    - item_type: preproc_def
      name: xen_vcpu_guest_context
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/xen/xen/arch/x86/domctl.c
      type_or_value: vcpu_guest_context
    - item_type: preproc_def
      name: fpu_ctxt
      pos:
        line_end: 1384
        line_start: 1383
        source_file: /src/xen/xen/arch/x86/domctl.c
      type_or_value: fpu_ctxt.x
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_bootmem
  - dmi_eps
  - smbios_eps
  - smbios3_eps
  - dmi_printk
  - bt_ioremap
  - bt_iounmap
  - dmi_string
  - dmi_table
  - dmi_checksum
  - dmi_efi_get_table
  - dmi_get_table
  - _dmi_iterate
  - dmi_iterate
  - dmi_efi_iterate
  - dmi_save_ident
  - ich10_bios_quirk
  - dmi_disable_acpi
  - force_acpi_ht
  - dmi_decode
  - dmi_scan_machine
  - dmi_check_system
  - dmi_get_date
  - dmi_end_boot
  source_file: /src/xen/xen/arch/x86/dmi_scan.c
  types:
    enum:
    - enumerators:
      - name: DMI_ENTRY_BASEBOARD
      - name: DMI_ENTRY_PORT_CONNECTOR
      - name: DMI_ENTRY_PHYS_MEM_ARRAY
      - name: DMI_ENTRY_SYSCONF
      - name: DMI_ENTRY_MEM_DEV_MAPPED_ADDR
      - name: DMI_ENTRY_HW_SECURITY
      - name: DMI_ENTRY_TEMP_PROBE
      - name: DMI_ENTRY_SYSTEM_BOOT
      - name: DMI_ENTRY_MEM_CHANNEL
      - name: DMI_ENTRY_ONBOARD_DEV_EXT
      - name: DMI_ENTRY_INACTIVE
        value: '126'
      - name: DMI_ENTRY_SYSTEM
      - name: DMI_ENTRY_MEM_CONTROLLER
      - name: DMI_ENTRY_CACHE
      - name: DMI_ENTRY_SYSTEM_EVENT_LOG
      - name: DMI_ENTRY_OEMSTRINGS
      - name: DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR
      - name: DMI_ENTRY_SYSTEM_RESET
      - name: DMI_ENTRY_COOLING_DEV
      - name: DMI_ENTRY_BIS_ENTRY
      - name: DMI_ENTRY_MGMT_DEV_THRES
      - name: DMI_ENTRY_MGMT_CONTROLLER_HOST
      - name: DMI_ENTRY_PROCESSOR
      - name: DMI_ENTRY_MEM_MODULE
      - name: DMI_ENTRY_ONBOARD_DEVICE
      - name: DMI_ENTRY_GROUP_ASSOC
      - name: DMI_ENTRY_32_MEM_ERROR
      - name: DMI_ENTRY_PORTABLE_BATTERY
      - name: DMI_ENTRY_VOLTAGE_PROBE
      - name: DMI_ENTRY_OOB_REMOTE_ACCESS
      - name: DMI_ENTRY_MGMT_DEV_COMPONENT
      - name: DMI_ENTRY_SYS_POWER_SUPPLY
      - name: DMI_ENTRY_ADDITIONAL
      - name: DMI_ENTRY_BIOS
        value: '0'
      - name: DMI_ENTRY_CHASSIS
      - name: DMI_ENTRY_SYSTEM_SLOT
      - name: DMI_ENTRY_BIOS_LANG
      - name: DMI_ENTRY_MEM_DEVICE
      - name: DMI_ENTRY_BUILTIN_POINTING_DEV
      - name: DMI_ENTRY_SYSTEM_POWER_CONTROLS
      - name: DMI_ENTRY_ELECTRICAL_CURRENT_PROBE
      - name: DMI_ENTRY_MGMT_DEV
      - name: DMI_ENTRY_IPMI_DEV
      - name: DMI_ENTRY_END_OF_TABLE
        value: '127'
      item_type: enum
      name: dmi_entry_type
      pos:
        line_end: 100
        line_start: 55
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
    preproc_defs:
    - item_type: preproc_def
      name: memcpy_fromio
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
      type_or_value: memcpy
    - item_type: preproc_def
      name: dmi_blacklist
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
      type_or_value: dmi_system_id
    - item_type: preproc_def
      name: NO_MATCH
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
      type_or_value: '{ DMI_NONE, NULL}'
    - item_type: preproc_def
      name: MATCH
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
      type_or_value: DMI_MATCH
    structs:
    - fields:
      - name: type
        type: u8
      - name: length
        type: u8
      - name: handle
        type: u16
      item_type: struct
      name: dmi_header
      pos:
        line_end: 53
        line_start: 48
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
    typedefs: []
    union:
    - fields:
      - name: dmi
        type: struct dmi_eps
      - name: smbios3
        type: struct smbios3_eps
      item_type: union
      name: eps
      pos:
        line_end: 285
        line_start: 282
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
    - fields:
      - name: '*legacy'
        type: struct smbios_eps
      - name: '*v3'
        type: struct smbios3_eps
      item_type: union
      name: smbios_eps_u
      pos:
        line_end: 321
        line_start: 318
        source_file: /src/xen/xen/arch/x86/dmi_scan.c
- function_names:
  - msix_fixmap_alloc
  - msix_fixmap_free
  - msix_get_fixmap
  - msix_put_fixmap
  - memory_decoded
  - msix_memory_decoded
  - msi_compose_msg
  - write_msi_msg
  - set_msi_affinity
  - __msi_set_enable
  - msi_set_enable
  - msix_set_enable
  - msi_maskable_irq
  - msi_set_mask_bit
  - msi_get_mask_bit
  - mask_msi_irq
  - unmask_msi_irq
  - guest_mask_msi_irq
  - startup_msi_irq
  - shutdown_msi_irq
  - ack_nonmaskable_msi_irq
  - ack_maskable_msi_irq
  - alloc_msi_entry
  - setup_msi_irq
  - __setup_msi_irq
  - msi_free_irq
  - find_msi_entry
  - msi_capability_init
  - read_pci_mem_bar
  - msix_capability_init
  - __pci_enable_msi
  - __pci_disable_msi
  - __pci_enable_msix
  - _pci_cleanup_msix
  - __pci_disable_msix
  - pci_prepare_msix
  - pci_enable_msi
  - pci_disable_msi
  - msi_free_irqs
  - pci_cleanup_msi
  - disable_msi
  - pci_disable_msi_all
  - pci_reset_msix_state
  - pci_msi_conf_write_intercept
  - pci_restore_msi_state
  - early_msi_init
  - dump_msi
  - msi_setup_keyhandler
  source_file: /src/xen/xen/arch/x86/msi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vm_event_init_domain
  - for_each_vcpu
  - vm_event_cleanup_domain
  - for_each_vcpu
  - vm_event_toggle_singlestep
  - vm_event_register_write_resume
  - vm_event_set_registers
  - vm_event_monitor_next_interrupt
  - vm_event_sync_event
  - vm_event_pack_segment_register
  - vm_event_fill_regs
  - vm_event_emulate_check
  - vm_event_reset_vmtrace
  source_file: /src/xen/xen/arch/x86/vm_event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - e820_all_mapped
  - add_memory_region
  - print_e820_memory_map
  - sanitize_e820_map
  - copy_e820_map
  - find_max_pfn
  - clip_to_limit
  - mtrr_top_of_ram
  - reserve_dmi_region
  - machine_specific_memory_setup
  - e820_add_range
  - e820_change_range_type
  - reserve_e820_ram
  - init_e820
  source_file: /src/xen/xen/arch/x86/e820.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pbios'
        type: struct e820entry
      - name: addr
        type: unsigned long long
      item_type: struct
      name: change_member
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/xen/xen/arch/x86/e820.c
    typedefs: []
    union: []
- function_names:
  - bogus_8259A_irq
  - mask_and_ack_8259A_irq
  - startup_8259A_irq
  - end_8259A_irq
  - __byte
  - _disable_8259A_irq
  - disable_8259A_irq
  - enable_8259A_irq
  - i8259A_irq_pending
  - mask_8259A
  - unmask_8259A
  - i8259A_irq_real
  - _mask_and_ack_8259A_irq
  - restore_ELCR
  - save_ELCR
  - i8259A_resume
  - i8259A_suspend
  - init_8259A
  - make_8259A_irq
  - probe_8259A_alias
  - init_IRQ
  source_file: /src/xen/xen/arch/x86/i8259.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: aeoi_mode
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/i8259.c
      type_or_value: (i8259A_irq_type.ack == disable_8259A_irq)
    - item_type: preproc_def
      name: cached_21
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/i8259.c
      type_or_value: (__byte(0,cached_irq_mask))
    - item_type: preproc_def
      name: cached_A1
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/i8259.c
      type_or_value: (__byte(1,cached_irq_mask))
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_cet
  - parse_smep_param
  - parse_smap_param
  - parse_acpi_param
  - multiboot_fill_boot_info
  - initial_images_nrpages
  - release_boot_module
  - free_boot_modules
  - init_idle_domain
  - srat_detect_node
  - normalise_cpu_order
  - for_each_present_cpu
  - bootstrap_map_addr
  - bootstrap_map_bm
  - bootstrap_unmap
  - move_memory
  - move_xen
  - consider_modules
  - setup_max_pdx
  - parse_video_info
  - kexec_reserve_area
  - using_2M_mapping
  - init_done
  - xen_msr_s_cet_value
  - reinit_bsp_stack
  - loader_is_grub2
  - cmdline_cook
  - copy_bios_e820
  - domain_cmdline_size
  - create_dom0
  - __start_xen
  - for_each_present_cpu
  - init_xen_cap_info
  - __hwdom_init::remove_xen_ranges
  - io_bitmap_cb
  - __hwdom_init::setup_io_bitmap
  source_file: /src/xen/xen/arch/x86/setup.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: opt_xen_ibt
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: SMEP_HVM_ONLY
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: SMAP_HVM_ONLY
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: BOOTSTRAP_MAP_BASE
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: (16UL << 20)
    - item_type: preproc_def
      name: BOOTSTRAP_MAP_LIMIT
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: (1UL << L3_PAGETABLE_SHIFT)
    - item_type: preproc_def
      name: PREBUILT_MAP_LIMIT
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: (1 << L2_PAGETABLE_SHIFT)
    - item_type: preproc_def
      name: reloc_size
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/xen/xen/arch/x86/setup.c
      type_or_value: ((__pa(__2M_rwdata_end) + mask) & ~mask)
    structs: []
    typedefs: []
    union: []
- function_names:
  - recheck_cpu_features
  - cpuid_hypervisor_leaves
  - guest_cpuid
  source_file: /src/xen/xen/arch/x86/cpuid.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPTY_LEAF
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/cpuid.c
      type_or_value: ((struct cpuid_leaf){})
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_physdev_op_compat
  - do_sched_op_compat
  - do_event_channel_op_compat
  source_file: /src/xen/xen/arch/x86/compat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/xen/arch/x86/compat.c
      type: long
    union: []
- function_names:
  - fpu_xrstor
  - fpu_fxrstor
  - vcpu_xsave_mask
  - fpu_xsave
  - fpu_fxsave
  - vcpu_restore_fpu_nonlazy
  - vcpu_restore_fpu_lazy
  - _vcpu_save_fpu
  - vcpu_save_fpu
  - save_fpu_enable
  - vcpu_init_fpu
  - vcpu_reset_fpu
  - vcpu_setup_fpu
  - vcpu_destroy_fpu
  source_file: /src/xen/xen/arch/x86/i387.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_tsx
  - tsx_init
  source_file: /src/xen/xen/arch/x86/tsx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_init_ideal_nops
  - init_or_livepatch::add_nops
  - place_ret
  - init_or_livepatch::text_poke
  - seal_endbr64
  - init_or_livepatch::_apply_alternatives
  - init_or_livepatch::apply_alt_calls
  - apply_alternatives
  - livepatch_apply_alt_calls
  - nmi_apply_alternatives
  - _alternative_instructions
  - alternative_instructions
  - boot_apply_alt_calls
  source_file: /src/xen/xen/arch/x86/alternative.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PATCH_LEN
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/alternative.c
      type_or_value: (255-1)
    - item_type: preproc_def
      name: toolchain_nops_are_ideal
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/alternative.c
      type_or_value: 'false'
    - item_type: preproc_def
      name: ALT_INSNS
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/xen/arch/x86/alternative.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: ALT_CALLS
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/xen/arch/x86/alternative.c
      type_or_value: (1U << 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - l3_cache_get
  - smt_up_down_helper
  - for_each_present_cpu
  - arch_do_physinfo
  - arch_do_sysctl
  source_file: /src/xen/xen/arch/x86/sysctl.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ret
        type: int
      - name: size
        type: unsigned long
      item_type: struct
      name: l3_cache_info
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/xen/xen/arch/x86/sysctl.c
    typedefs: []
    union: []
- function_names:
  - mapcache_current_vcpu
  - mapcache_override_current
  - mapcache_l2_entry
  - MAPCACHE_L1ENT
  - map_domain_page
  - unmap_domain_page
  - mapcache_domain_init
  - mapcache_vcpu_init
  - map_domain_page_global
  - unmap_domain_page_global
  - domain_page_map_to_mfn
  source_file: /src/xen/xen/arch/x86/domain_page.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAPCACHE_L2_ENTRIES
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/domain_page.c
      type_or_value: (mapcache_l2_entry(MAPCACHE_ENTRIES - 1) + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_vcpu_msr_policy
  - guest_rdmsr_xen
  - guest_wrmsr_xen
  - guest_rdmsr
  - msr_spec_ctrl_valid_bits
  - guest_wrmsr
  source_file: /src/xen/xen/arch/x86/msr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_has_amd_erratum
  source_file: /src/xen/xen/arch/x86/x86_emulate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_regs_fred_info
  - print_xen_info
  - read_registers
  - get_hvm_registers
  - _show_registers
  - show_registers
  - vcpu_show_registers
  - show_page_walk
  - show_code
  - compat_show_guest_stack
  - show_guest_stack
  - show_hvm_stack
  - get_stack_trace_bottom
  - get_shstk_bottom
  - get_stack_dump_bottom
  - _show_trace
  - _show_trace
  - show_trace
  - show_stack
  - show_stack_overflow
  - show_execution_state
  - vcpu_show_execution_state
  - nmi_show_execution_state
  - show_execution_state_nmi
  - x86_et_name
  - x86_et_other_name
  - vector_name
  - handle_PF_IDT
  - do_early_page_fault
  - pci_serr_nmicont
  - nmi_hwdom_report
  - pci_serr_error
  - io_check_error
  - unknown_nmi_error
  - do_nmi
  - set_nmi_callback
  - unset_nmi_callback
  - nmi_check_continuation
  - trigger_nmi_continuation
  - do_device_not_available
  - handle_DB
  - handle_DB_IDT
  - do_entry_CP
  - asm_domain_crash_synchronous
  - check_ist_exit
  - entry_from_pv
  - entry_from_xen
  source_file: /src/xen/xen/arch/x86/traps.c
  types:
    enum:
    - enumerators:
      - name: CTXT_hypervisor
      - name: CTXT_pv_guest
      - name: CTXT_hvm_guest
      item_type: enum
      name: context
      pos:
        line_end: 117
        line_start: 113
        source_file: /src/xen/xen/arch/x86/traps.c
    preproc_defs: []
    structs:
    - fields:
      - name: cr0
        type: unsigned long
      - name: fsb
        type: unsigned long
      - name: ds
        type: uint16_t
      item_type: struct
      name: extra_state
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/xen/xen/arch/x86/traps.c
    typedefs: []
    union: []
- function_names:
  - node_found
  - pxm_to_node
  - setup_node
  - numa_fw_bad
  - slit_valid
  - acpi_numa_slit_init
  - acpi_numa_x2apic_affinity_init
  - acpi_numa_processor_affinity_init
  - acpi_numa_memory_affinity_init
  - acpi_numa_arch_fixup
  - srat_parse_region
  - srat_parse_regions
  - numa_node_to_arch_nid
  - __node_distance
  source_file: /src/xen/xen/arch/x86/srat.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pxm
        type: unsigned
      - name: node
        type: nodeid_t
      item_type: struct
      name: pxm2node
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/xen/xen/arch/x86/srat.c
    typedefs: []
    union: []
- function_names:
  - arch_monitor_init_domain
  - arch_monitor_cleanup_domain
  - monitor_bitmap_for_msr
  - monitor_enable_msr
  - monitor_disable_msr
  - monitored_msr
  - monitored_msr_onchangeonly
  - arch_monitor_domctl_event
  source_file: /src/xen/xen/arch/x86/monitor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - round_up
  - arch_numa_setup
  - arch_numa_disabled
  - arch_numa_unavailable
  - init_cpu_to_node
  - arch_get_dma_bitsize
  - arch_get_ram_range
  source_file: /src/xen/xen/arch/x86/numa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ack_bad_irq
  - get_maxlvt
  - clear_local_APIC
  - connect_bsp_APIC
  - disconnect_bsp_APIC
  - disable_local_APIC
  - verify_local_APIC
  - init_bsp_APIC
  - apic_pm_activate
  - __enable_x2apic
  - resume_x2apic
  - setup_local_APIC
  - lapic_suspend
  - lapic_resume
  - lapic_disable
  - apic_set_verbosity
  - detect_init_APIC
  - x2apic_ap_setup
  - x2apic_bsp_setup
  - init_apic_mappings
  - get_8254_timer_count
  - wait_8254_wraparound
  - __setup_APIC_LVTT
  - setup_APIC_timer
  - check_deadline_errata
  - apic_tmcct_read
  - calibrate_APIC_clock
  - setup_boot_APIC_clock
  - setup_secondary_APIC_clock
  - disable_APIC_timer
  - enable_APIC_timer
  - reprogram_timer
  - apic_timer_interrupt
  - smp_send_state_dump
  - spurious_interrupt
  - error_interrupt
  - pmu_interrupt
  - apic_intr_init
  - APIC_init_uniprocessor
  - apic_mode_to_str
  - record_boot_APIC_mode
  - current_local_apic_mode
  - check_for_unexpected_msi
  source_file: /src/xen/xen/arch/x86/apic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APIC_DIVISOR
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/xen/xen/arch/x86/apic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BUS_SCALE_SHIFT
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/xen/xen/arch/x86/apic.c
      type_or_value: '18'
    - item_type: preproc_def
      name: LOOPS_FRAC
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/xen/xen/arch/x86/apic.c
      type_or_value: '10U      '
    structs:
    - fields:
      - name: active
        type: int
      - name: apic_id
        type: unsigned int
      - name: apic_taskpri
        type: unsigned int
      - name: apic_ldr
        type: unsigned int
      - name: apic_dfr
        type: unsigned int
      - name: apic_spiv
        type: unsigned int
      - name: apic_lvtt
        type: unsigned int
      - name: apic_lvtpc
        type: unsigned int
      - name: apic_lvtcmci
        type: unsigned int
      - name: apic_lvt0
        type: unsigned int
      - name: apic_lvt1
        type: unsigned int
      - name: apic_lvterr
        type: unsigned int
      - name: apic_tdcr
        type: unsigned int
      - name: apic_thmr
        type: unsigned int
      item_type: struct
      name: apic_pm_state
      pos:
        line_end: 69
        line_start: 53
        source_file: /src/xen/xen/arch/x86/apic.c
    typedefs: []
    union: []
- function_names:
  - load_system_tables
  - write_stub_trampoline
  - legacy_syscall_init
  - init_ler
  - init_fred
  - init_fred_tss
  - bsp_early_traps_init
  - traps_init
  - bsp_traps_reinit
  - percpu_traps_init
  - percpu_early_traps_init
  - build_assertions
  source_file: /src/xen/xen/arch/x86/traps-setup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - memsize_gt_zero
  - get_memsize
  - parse_amt
  - parse_dom0_mem
  - parse_dom0_max_vcpus
  - parse_dom0_nodes
  - dom0_max_vcpus
  - alloc_dom0_vcpu0
  - parse_arch_dom0_param
  - dom0_paging_pages
  - default_nr_pages
  - dom0_compute_nr_pages
  - process_dom0_ioports_disable
  - dom0_setup_permissions
  - construct_dom0
  source_file: /src/xen/xen/arch/x86/dom0_build.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nr_pages
        type: long
      - name: percent
        type: unsigned int
      - name: minus
        type: bool
      item_type: struct
      name: memsize
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/xen/xen/arch/x86/dom0_build.c
    typedefs: []
    union: []
- function_names:
  - div_frac
  - mul_frac
  - scale_delta
  - scale_reciprocal
  - smp_send_timer_broadcast_ipi
  - timer_interrupt
  - CALIBRATE_VALUE
  - preinit_pit
  - set_time_scale
  - freq_string
  - read_pt_and_tsc
  - calibrate_tsc
  - read_pit_count
  - init_pit
  - resume_pit
  - probe_pit_alias
  - read_hpet_count
  - init_hpet
  - resume_hpet
  - read_pmtimer_count
  - init_pmtimer
  - init_pmtmr_scale
  - acpi_pm_tick_to_ns
  - init_tsc
  - xen_timer_cpu_frequency
  - init_xen_timer
  - read_cycle
  - read_xen_timer
  - resume_xen_timer
  - read_xen_wallclock
  - init_hyperv_timer
  - read_hyperv_timer
  - __read_platform_stime
  - read_counter
  - plt_overflow
  - read_platform_stime
  - platform_time_calibration
  - resume_platform_timer
  - reset_platform_timer
  - try_platform_timer
  - init_platform_timer
  - read_pt_and_tmcct
  - calibrate_apic_timer
  - stime2tsc
  - cstate_restore_tsc
  - mktime
  - __get_cmos_time
  - cmos_rtc_probe
  - cmos_rtc_read
  - probe_cmos_alias
  - is_cmos_port
  - rtc_guest_read
  - rtc_guest_write
  - wallclock_type_to_string
  - parse_wallclock
  - probe_wallclock
  - get_wallclock_time
  - get_s_time_fixed
  - get_s_time
  - tsc_ticks2ns
  - collect_time_info
  - __update_vcpu_system_time
  - write_time_guest_area
  - update_secondary_system_time
  - update_vcpu_system_time
  - force_update_vcpu_system_time
  - force_update_secondary_system_time
  - update_domain_rtc
  - domain_set_time_offset
  - cpu_frequency_change
  - local_time_calibration
  - check_tsc_warp
  - tsc_check_slave
  - tsc_check_reliability
  - time_calibration_rendezvous_tail
  - time_calibration_tsc_rendezvous
  - time_calibration_std_rendezvous
  - time_calibration_nop_rendezvous
  - time_calibration
  - time_latch_stamps
  - init_percpu_time
  - tsc_check_writability
  - reset_percpu_time
  - try_platform_timer_tail
  - verify_tsc_reliability
  - init_xen_time
  - early_time_init
  - _disable_pit_irq
  - disable_pit_irq
  - pit_broadcast_enter
  - pit_broadcast_exit
  - pit_broadcast_is_available
  - send_timer_event
  - time_suspend
  - time_resume
  - hwdom_pit_access
  - tsc_parse
  - gtime_to_gtsc
  - gtsc_to_gtime
  - clocksource_is_tsc
  - host_tsc_is_safe
  - tsc_get_info
  - tsc_set_info
  - dump_softtsc
  - for_each_domain
  - setup_dump_softtsc
  source_file: /src/xen/xen/arch/x86/time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPOCH
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: MILLISECS(1000)
    - item_type: preproc_def
      name: _TS_MUL_FRAC_IDENTITY
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: 0x80000000UL
    - item_type: preproc_def
      name: CLOCK_TICK_RATE
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: '1193182 '
    - item_type: preproc_def
      name: CALIBRATE_FRAC
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: '20      '
    - item_type: preproc_def
      name: LATCH
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: (((CLOCK_TICK_RATE)+(HZ/2))/HZ)
    - item_type: preproc_def
      name: CALIBRATE_LATCH
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: CALIBRATE_VALUE(CLOCK_TICK_RATE)
    - item_type: preproc_def
      name: ACPI_PM_FREQUENCY
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: '3579545'
    - item_type: preproc_def
      name: TSC_RELIABLE_SOCKET
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: READ_TSC_POISON
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/xen/xen/arch/x86/time.c
      type_or_value: ((uint64_t(*)(void))0x75C75C75C75C75C0ul)
    structs:
    - fields:
      - name: local_tsc
        type: u64
      - name: local_stime
        type: s_time_t
      - name: master_stime
        type: s_time_t
      item_type: struct
      name: cpu_time_stamp
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/xen/xen/arch/x86/time.c
    - fields:
      - name: stamp
        type: struct cpu_time_stamp
      - name: tsc_scale
        type: struct time_scale
      item_type: struct
      name: cpu_time
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/xen/xen/arch/x86/time.c
    - fields:
      - name: '*id'
        type: char
      - name: '*name'
        type: char
      - name: frequency
        type: uint64_t
      - name: (*read_counter)(void)
        type: uint64_t
      - name: (*init)(struct platform_timesource *)
        type: int64_t
      - name: (*resume)(struct platform_timesource *)
        type: void
      - name: counter_bits
        type: int
      item_type: struct
      name: platform_timesource
      pos:
        line_end: 76
        line_start: 67
        source_file: /src/xen/xen/arch/x86/time.c
    - fields:
      - name: year
        type: unsigned int
      item_type: struct
      name: rtc_time
      pos:
        line_end: 1248
        line_start: 1246
        source_file: /src/xen/xen/arch/x86/time.c
    - fields:
      - name: cpu_calibration_map
        type: cpumask_t
      - name: semaphore
        type: atomic_t
      - name: master_stime
        type: s_time_t
      - name: master_tsc_stamp
        type: uint64_t
      item_type: struct
      name: calibration_rendezvous
      pos:
        line_end: 2145
        line_start: 2140
        source_file: /src/xen/xen/arch/x86/time.c
    typedefs: []
    union: []
- function_names:
  - has_active_waitqueue
  - arch_livepatch_safety_check
  - for_each_domain
  - arch_livepatch_quiesce
  - arch_livepatch_revive
  - arch_livepatch_verify_func
  - arch_livepatch_apply
  - arch_livepatch_revert
  - arch_livepatch_post_action
  - mask_nmi_callback
  - arch_livepatch_mask
  - arch_livepatch_unmask
  - arch_livepatch_verify_elf
  - arch_livepatch_symbol_ok
  - arch_livepatch_symbol_deny
  - arch_livepatch_perform_rel
  - arch_livepatch_perform_rela
  - arch_livepatch_secure
  - arch_livepatch_init
  source_file: /src/xen/xen/arch/x86/livepatch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ioemul_handle_proliant_quirk
  - ioport_quirks_init
  source_file: /src/xen/xen/arch/x86/ioport_emulate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cat_default_val
  - get_cdp_data
  - get_cdp_code
  - psr_alloc_feat_enabled
  - free_socket_resources
  - psr_type_to_feat_type
  - cat_check_cbm
  - cat_init_feature
  - mba_init_feature
  - cat_get_feat_info
  - l3_cat_write_msr
  - l3_cdp_get_feat_info
  - l3_cdp_write_msr
  - l2_cat_write_msr
  - mba_get_feat_info
  - mba_write_msr
  - mba_sanitize_thrtl
  - parse_psr_bool
  - parse_psr_param
  - init_psr_cmt
  - psr_alloc_rmid
  - psr_free_rmid
  - get_max_cos_max
  - psr_assoc_init
  - psr_assoc_rmid
  - psr_assoc_cos
  - psr_ctxt_switch_to
  - get_socket_info
  - psr_get_info
  - psr_get_val
  - get_cos_num
  - gather_val_array
  - skip_prior_features
  - insert_val_into_array
  - compare_val
  - find_cos
  - fits_cos_max
  - pick_avail_cos
  - get_socket_cpu
  - do_write_psr_msrs
  - write_psr_msrs
  - psr_set_val
  - psr_free_cos
  - psr_alloc_cos
  - psr_domain_init
  - psr_domain_free
  - init_psr
  - psr_free
  - psr_cpu_prepare
  - psr_cpu_init
  - psr_cpu_fini
  - cpu_callback
  - psr_presmp_init
  source_file: /src/xen/xen/arch/x86/psr.c
  types:
    enum:
    - enumerators:
      - name: FEAT_TYPE_L3_CAT
      - name: FEAT_TYPE_L3_CDP
      - name: FEAT_TYPE_MBA
      - name: FEAT_TYPE_L2_CAT
      - name: FEAT_TYPE_NUM
      - name: FEAT_TYPE_UNKNOWN
      item_type: enum
      name: psr_feat_type
      pos:
        line_end: 78
        line_start: 71
        source_file: /src/xen/xen/arch/x86/psr.c
    preproc_defs:
    - item_type: preproc_def
      name: PSR_CMT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: PSR_CAT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: PSR_CDP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: PSR_MBA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: (1u << 3)
    - item_type: preproc_def
      name: CAT_CBM_LEN_MASK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: CAT_COS_MAX_MASK
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: MAX_COS_REG_CNT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '128'
    - item_type: preproc_def
      name: ASSOC_REG_SHIFT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_COS_NUM
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MBA_LINEAR_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: MBA_THRTL_MAX_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/psr.c
      type_or_value: '0xfff'
    structs:
    - fields:
      - name: cos_max
        type: unsigned int
      - name: cos_reg_val[MAX_COS_REG_CNT]
        type: uint32_t
      item_type: struct
      name: feat_node
      pos:
        line_end: 109
        line_start: 90
        source_file: /src/xen/xen/arch/x86/psr.c
    - fields:
      - name: cos_num
        type: unsigned int
      - name: type[MAX_COS_NUM]
        type: enum psr_type
      - name: alt_type
        type: enum psr_type
      - name: (*write_msr)(unsigned int cos, uint32_t val, enum psr_type type)
        type: void
      - name: (*sanitize)(const struct feat_node *feat, uint32_t *val)
        type: bool
      item_type: struct
      name: feat_props
      pos:
        line_end: 151
        line_start: 117
        source_file: /src/xen/xen/arch/x86/psr.c
    - fields:
      - name: feat_init
        type: bool
      - name: '*features[FEAT_TYPE_NUM]'
        type: struct feat_node
      - name: ref_lock
        type: spinlock_t
      - name: cos_ref[MAX_COS_REG_CNT]
        type: unsigned int
      item_type: struct
      name: psr_socket_info
      pos:
        line_end: 171
        line_start: 163
        source_file: /src/xen/xen/arch/x86/psr.c
    - fields:
      - name: val
        type: uint64_t
      - name: cos_mask
        type: uint64_t
      item_type: struct
      name: psr_assoc
      pos:
        line_end: 176
        line_start: 173
        source_file: /src/xen/xen/arch/x86/psr.c
    - fields:
      - name: cos
        type: unsigned int
      - name: array_len
        type: unsigned int
      - name: '*val'
        type: uint32_t
      item_type: struct
      name: cos_write_info
      pos:
        line_end: 1269
        line_start: 1264
        source_file: /src/xen/xen/arch/x86/psr.c
    typedefs: []
    union: []
- function_names:
  - parse_cpuid
  - _parse_xen_cpuid
  - parse_xen_cpuid
  - _parse_dom0_cpuid
  - parse_dom0_cpuid
  - zero_leaves
  - sanitise_featureset
  - recalculate_xstate
  - for_each_set_bit
  - recalculate_misc
  - calculate_raw_cpu_policy
  - calculate_host_policy
  - guest_common_max_leaves
  - guest_common_default_leaves
  - guest_common_max_feature_adjustments
  - guest_common_default_feature_adjustments
  - guest_common_feature_adjustments
  - calculate_pv_max_policy
  - calculate_pv_def_policy
  - calculate_hvm_max_policy
  - calculate_hvm_def_policy
  - init_guest_cpu_policies
  - init_domain_cpu_policy
  - recalculate_cpuid_policy
  - init_dom0_cpuid_policy
  - build_assertions
  source_file: /src/xen/xen/arch/x86/cpu-policy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPTY_LEAF
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/x86/cpu-policy.c
      type_or_value: ((struct cpuid_leaf){})
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: bit
        type: unsigned int
      item_type: struct
      name: feature_name
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/xen/xen/arch/x86/cpu-policy.c
    typedefs: []
    union: []
- function_names:
  - pre_flush
  - post_flush
  - do_tlb_flush
  - switch_cr3_cr4
  - flush_area_local
  - cache_flush
  - cache_writeback
  - guest_flush_tlb_flags
  - guest_flush_tlb_mask
  source_file: /src/xen/xen/arch/x86/flushtlb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X86_CR4_PCIDE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/flushtlb.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - machine_kexec_add_page
  - machine_kexec_load
  - machine_kexec_unload
  - machine_reboot_kexec
  - machine_kexec
  - machine_kexec_get
  - arch_crash_save_vmcoreinfo
  source_file: /src/xen/xen/arch/x86/machine_kexec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - physdev_hvm_map_pirq
  - physdev_map_pirq
  - physdev_unmap_pirq
  - physdev_check_pci_extcfg
  - do_physdev_op
  source_file: /src/xen/xen/arch/x86/physdev.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/xen/arch/x86/physdev.c
      type: long
    union: []
- function_names:
  - output_length
  - setup_header
  - VERSION
  - bzimage_check
  - bzimage_headroom
  - bzimage_parse
  source_file: /src/xen/xen/arch/x86/bzimage.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HDR_MAGIC
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/bzimage.c
      type_or_value: '"HdrS"'
    - item_type: preproc_def
      name: HDR_MAGIC_SZ
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/bzimage.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/boot/reloc-trampoline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vesa_ctrl_info
  - get_mb2_data
  - get_mb2_string
  - alloc_mem
  - zero_mem
  - copy_mem
  - copy_string
  - pvh_info_reloc
  - mbi_reloc
  - mbi2_reloc
  - reloc
  source_file: /src/xen/xen/arch/x86/boot/reloc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: attrib
        type: uint16_t
      - name: window[14]
        type: uint8_t
      - name: bytes_per_line
        type: uint16_t
      - name: width
        type: uint16_t
      - name: height
        type: uint16_t
      - name: cell_width
        type: uint8_t
      - name: cell_height
        type: uint8_t
      - name: nr_planes
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: memory[5]
        type: uint8_t
      - name: colors
        type: struct boot_video_colors
      - name: direct_color
        type: uint8_t
      - name: base
        type: uint32_t
      item_type: struct
      name: vesa_mode_info
      pos:
        line_end: 57
        line_start: 42
        source_file: /src/xen/xen/arch/x86/boot/reloc.c
    - fields:
      - name: ptr
        type: uint32_t
      item_type: struct
      name: memctx
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/xen/xen/arch/x86/boot/reloc.c
    typedefs: []
    union: []
- function_names:
  - swap16
  - swap32
  - swap64
  - endianadjust_ehdr32
  - endianadjust_ehdr64
  - endianadjust_phdr32
  - endianadjust_phdr64
  - endianadjust_shdr32
  - do_write
  - do_read
  - main
  source_file: /src/xen/xen/arch/x86/boot/mkelf32.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DYNAMICALLY_FILLED
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/boot/mkelf32.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RAW_OFFSET
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/boot/mkelf32.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tolower
  - strlen
  - strncmp
  - strchr
  - strspn
  - strcspn
  - __maybe_unused::strtoui
  - strmaxcmp
  - __maybe_unused::strsubcmp
  - find_opt
  - skip_realmode
  - edd_parse
  - edid_parse
  - rows2vmode
  - vga_parse
  - cmdline_parse_early
  source_file: /src/xen/xen/arch/x86/boot/cmdline.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: delim_chars
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/boot/cmdline.c
      type_or_value: (delim_chars_comma + 1)
    structs:
    - fields:
      - name: skip_realmode
        type: uint8_t
      - name: opt_edd
        type: uint8_t
      - name: opt_edid
        type: uint8_t
      - name: padding
        type: uint8_t
      item_type: struct
      name: __packed
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/xen/xen/arch/x86/boot/cmdline.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/boot/video.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VIDEO_FIRST_MENU
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: VIDEO_FIRST_VESA
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: VIDEO_FIRST_SPECIAL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f00'
    - item_type: preproc_def
      name: VIDEO_80x25
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f00'
    - item_type: preproc_def
      name: VIDEO_80x50
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f01'
    - item_type: preproc_def
      name: VIDEO_80x43
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f02'
    - item_type: preproc_def
      name: VIDEO_80x28
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f03'
    - item_type: preproc_def
      name: VIDEO_CURRENT_MODE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f04'
    - item_type: preproc_def
      name: VIDEO_80x30
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f05'
    - item_type: preproc_def
      name: VIDEO_80x34
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f06'
    - item_type: preproc_def
      name: VIDEO_80x60
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f07'
    - item_type: preproc_def
      name: VIDEO_LAST_SPECIAL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x0f08'
    - item_type: preproc_def
      name: ASK_VGA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0xfffd'
    - item_type: preproc_def
      name: VIDEO_VESA_BY_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: VIDEO_RECALC
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/boot/video.h
      type_or_value: '0x8000'
    structs:
    - fields:
      - name: orig_x
        type: uint8_t
      - name: orig_y
        type: uint8_t
      - name: orig_video_mode
        type: uint8_t
      - name: orig_video_cols
        type: uint8_t
      - name: orig_video_lines
        type: uint8_t
      - name: orig_video_isVGA
        type: uint8_t
      - name: orig_video_points
        type: uint16_t
      - name: capabilities
        type: uint32_t
      - name: lfb_linelength
        type: uint16_t
      - name: lfb_width
        type: uint16_t
      - name: lfb_height
        type: uint16_t
      - name: lfb_depth
        type: uint16_t
      - name: lfb_base
        type: uint32_t
      - name: lfb_size
        type: uint32_t
      - name: vesapm
        type: "struct {\n        uint16_t seg;            /* 0x24 */\n        uint16_t
          off;            /* 0x26 */\n    }"
      - name: vesa_attrib
        type: uint16_t
      item_type: struct
      name: boot_video_info
      pos:
        line_end: 68
        line_start: 31
        source_file: /src/xen/xen/arch/x86/boot/video.h
    - fields:
      - name: rgbr[8]
        type: uint8_t
      item_type: struct
      name: boot_video_colors
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/xen/xen/arch/x86/boot/video.h
    typedefs: []
    union: []
- function_names:
  - efi_multiboot2
  - efi_init_memory
  - efi_boot_mem_unused
  - efi_update_l4_pgtable
  source_file: /src/xen/xen/arch/x86/efi/stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - edd_put_string
  - edd_put_string
  - in_page_tables
  - efi_arch_relocate_image
  - relocate_trampoline
  - place_string
  - efi_arch_process_memory_map
  - efi_arch_allocate_mmap_buffer
  - efi_arch_pre_exit_boot
  - efi_arch_post_exit_boot
  - efi_arch_cfg_file_early
  - efi_arch_cfg_file_late
  - efi_arch_handle_cmdline
  - efi_arch_edd
  - efi_arch_console_init
  - efi_arch_video_init
  - copy_edid
  - efi_arch_edid
  - efi_arch_memory_setup
  - l2_4G_offset
  - efi_arch_handle_module
  - efi_arch_cpu
  - efi_arch_blexit
  - efi_arch_halt
  - efi_arch_load_addr_check
  - efi_arch_use_config_file
  - efi_arch_flush_dcache_area
  - get_option
  - efi_multiboot2
  - VALID_TERMINATOR
  source_file: /src/xen/xen/arch/x86/efi/efi-boot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PE_BASE_RELOC_ABS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/efi/efi-boot.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PE_BASE_RELOC_HIGHLOW
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/efi/efi-boot.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PE_BASE_RELOC_DIR64
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/efi/efi-boot.h
      type_or_value: '10'
    structs:
    - fields:
      - name: rva
        type: u32
      - name: size
        type: u32
      - name: entries[]
        type: u16
      item_type: struct
      name: pe_base_relocs
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/xen/xen/arch/x86/efi/efi-boot.h
    typedefs: []
    union: []
- function_names:
  - usage
  - load
  - map_section
  - unmap_section
  - diff_sections
  - main
  source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PE_PAGE_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: PE_BASE_RELOC_ABS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PE_BASE_RELOC_HIGHLOW
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PE_BASE_RELOC_DIR64
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: pe
        type: struct pe32_opt_hdr
      - name: pep
        type: struct pe32plus_opt_hdr
      item_type: union
      name: pe32_opt_hdr
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
    - fields:
      - name: u32
        type: uint32_t
      - name: u64
        type: uint64_t
      item_type: union
      name: val1
      pos:
        line_end: 193
        line_start: 190
        source_file: /src/xen/xen/arch/x86/efi/mkreloc.c
- function_names:
  - efi_update_l4_pgtable
  source_file: /src/xen/xen/arch/x86/efi/runtime.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - efi_multiboot2_prelude
  source_file: /src/xen/xen/arch/x86/efi/mbi2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test
  - __x86_return_thunk
  source_file: /src/xen/xen/arch/x86/efi/check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_acpi_sleep
  - device_power_down
  - device_power_up
  - acpi_sleep_prepare
  - acpi_sleep_post
  - enter_state
  - enter_state_helper
  - acpi_enter_sleep
  - acpi_get_wake_status
  - tboot_sleep
  - TB_COPY_GAS
  - acpi_enter_sleep_state
  source_file: /src/xen/xen/arch/x86/acpi/power.c
  types:
    enum:
    - enumerators:
      - name: SAVED_NONE
      - name: SAVED_I8259A
      - name: SAVED_TIME
      - name: SAVED_CONSOLE
      - name: SAVED_IOAPIC
      - name: SAVED_IOMMU
      - name: SAVED_LAPIC
      - name: SAVED_ALL
      item_type: enum
      name: dev_power_saved
      pos:
        line_end: 85
        line_start: 75
        source_file: /src/xen/xen/arch/x86/acpi/power.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - monitor
  - mwait
  - sti_mwait_cli
  - GET_HW_RES_IN_NS
  - GET_MC6_RES
  - GET_PC2_RES
  - GET_PC3_RES
  - GET_PC6_RES
  - GET_PC7_RES
  - GET_PC8_RES
  - GET_PC9_RES
  - GET_PC10_RES
  - GET_CC1_RES
  - GET_CC3_RES
  - GET_CC6_RES
  - GET_CC7_RES
  - lapic_timer_nop
  - lapic_timer_init
  - parse_cstate
  - do_get_hw_residencies
  - get_hw_residencies
  - print_hw_residencies
  - get_stime_tick
  - stime_ticks_elapsed
  - stime_tick_to_ns
  - get_acpi_pm_tick
  - acpi_pm_ticks_elapsed
  - print_acpi_power
  - dump_cx
  - for_each_present_cpu
  - cpu_idle_key_init
  - mwait_idle_with_hints
  - acpi_processor_ffh_cstate_enter
  - acpi_idle_do_entry
  - acpi_idle_bm_check
  - trace_exit_reason
  - errata_c6_workaround
  - update_last_cx_stat
  - update_idle_stats
  - acpi_processor_idle
  - acpi_dead_idle
  - cpuidle_init_cpu
  - acpi_processor_ffh_cstate_probe
  - acpi_processor_power_init_bm_check
  - check_cx
  - set_cx
  - get_cpu_id
  - print_cx_pminfo
  - set_cx_pminfo
  - amd_cpuidle_init
  - pmstat_get_cx_nr
  - pmstat_get_cx_stat
  - PUT_xC
  - PUT_PC
  - PUT_CC
  - pmstat_reset_cx_stat
  - cpuidle_disable_deep_cstate
  - cpuidle_using_deep_cstate
  - cpu_callback
  - cpuidle_presmp_init
  source_file: /src/xen/xen/arch/x86/acpi/cpu_idle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VENDOR_INTEL
      pos:
        line_end: 1067
        line_start: 1066
        source_file: /src/xen/xen/arch/x86/acpi/cpu_idle.c
      type_or_value: (1)
    - item_type: preproc_def
      name: NATIVE_CSTATE_BEYOND_HALT
      pos:
        line_end: 1068
        line_start: 1067
        source_file: /src/xen/xen/arch/x86/acpi/cpu_idle.c
      type_or_value: (2)
    structs:
    - fields:
      - name: mc0
        type: uint64_t
      - name: mc6
        type: uint64_t
      - name: pc2
        type: uint64_t
      - name: pc3
        type: uint64_t
      - name: pc4
        type: uint64_t
      - name: pc6
        type: uint64_t
      - name: pc7
        type: uint64_t
      - name: pc8
        type: uint64_t
      - name: pc9
        type: uint64_t
      - name: pc10
        type: uint64_t
      - name: cc1
        type: uint64_t
      - name: cc3
        type: uint64_t
      - name: cc6
        type: uint64_t
      - name: cc7
        type: uint64_t
      item_type: struct
      name: hw_residencies
      pos:
        line_end: 173
        line_start: 157
        source_file: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    - fields:
      - name: lock
        type: spinlock_t
      - name: count
        type: unsigned int
      item_type: struct
      name: c3_cpu_status = { .lock = SPIN_LOCK_UNLOCKED }
      pos:
        line_end: 557
        line_start: 554
        source_file: /src/xen/xen/arch/x86/acpi/cpu_idle.c
    typedefs: []
    union: []
- function_names:
  - __acpi_map_table
  - __acpi_unmap_table
  - acpi_get_processor_id
  - get_mwait_ecx
  - arch_acpi_set_pdc_bits
  source_file: /src/xen/xen/arch/x86/acpi/lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acpi_parse_madt
  - acpi_parse_x2apic
  - acpi_parse_lapic
  - acpi_parse_lapic_addr_ovr
  - acpi_parse_x2apic_nmi
  - acpi_parse_lapic_nmi
  - acpi_parse_ioapic
  - acpi_parse_int_src_ovr
  - acpi_parse_nmi_src
  - acpi_parse_hpet
  - acpi_invalidate_bgrt
  - acpi_fadt_copy_address
  - acpi_fadt_parse_sleep_info
  - acpi_parse_fadt
  - acpi_parse_madt_lapic_entries
  - acpi_parse_madt_ioapic_entries
  - acpi_process_madt
  - acpi_boot_table_init
  - acpi_boot_init
  source_file: /src/xen/xen/arch/x86/acpi/boot.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/acpi/boot.c
      type_or_value: '"ACPI: "'
    structs: []
    typedefs: []
    union: []
- function_names:
  - which_bucket
  - avg_intr_interval_us
  - get_sleep_length_us
  - menu_select
  - menu_reflect
  - menu_enable_device
  - menu_get_trace_data
  source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUCKETS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RESOLUTION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: DECAY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_INTERESTING
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '50000'
    - item_type: preproc_def
      name: LATENCY_MULTIPLIER
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '10'
    - item_type: preproc_def
      name: SAMPLING_PERIOD
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '5000000'
    - item_type: preproc_def
      name: IO_MULTIPLIER
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
      type_or_value: '8'
    structs:
    - fields:
      - name: time_stamp
        type: s_time_t
      - name: duration
        type: s_time_t
      - name: irq_count_stamp
        type: unsigned int
      - name: irq_sum
        type: unsigned int
      item_type: struct
      name: perf_factor
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    - fields:
      - name: last_state_idx
        type: int
      - name: expected_us
        type: unsigned int
      - name: predicted_us
        type: u64
      - name: latency_factor
        type: u64
      - name: measured_us
        type: unsigned int
      - name: exit_us
        type: unsigned int
      - name: bucket
        type: unsigned int
      - name: correction_factor[BUCKETS]
        type: u64
      - name: pf
        type: struct perf_factor
      item_type: struct
      name: menu_device
      pos:
        line_end: 112
        line_start: 101
        source_file: /src/xen/xen/arch/x86/acpi/cpuidle_menu.c
    typedefs: []
    union: []
- function_names:
  - amd_cppc_err
  - amd_cppc_warn
  - amd_cppc_verbose
  - amd_cppc_handle_option
  - amd_cppc_cmdline_parse
  - amd_cppc_khz_to_perf
  - amd_get_cpc_freq
  - amd_get_max_freq
  - amd_cppc_cpufreq_verify
  - amd_cppc_write_request_msrs
  - amd_cppc_write_request
  - amd_cppc_cpufreq_target
  - amd_cppc_init_msrs
  - amd_cppc_boost_init
  - amd_cppc_cpufreq_cpu_exit
  - amd_cppc_cpufreq_init_perf
  - amd_cppc_cpufreq_cpu_init
  - amd_cppc_epp_cpu_init
  - amd_cppc_prepare_policy
  - amd_cppc_epp_set_policy
  - amd_cppc_register_driver
  source_file: /src/xen/xen/arch/x86/acpi/cpufreq/amd-cppc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - transition_pstate
  - update_cpb
  - powernow_cpufreq_update
  - powernow_cpufreq_target
  - amd_fixup_frequency
  - get_cpu_data
  - powernow_cpufreq_verify
  - powernow_cpufreq_cpu_init
  - powernow_cpufreq_cpu_exit
  - powernow_register_driver
  source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HW_PSTATE_MASK
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: 0x00000007U
    - item_type: preproc_def
      name: HW_PSTATE_VALID_MASK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: HW_PSTATE_MAX_MASK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: 0x000000f0U
    - item_type: preproc_def
      name: HW_PSTATE_MAX_SHIFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MSR_PSTATE_DEF_BASE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '0xc0010064U '
    - item_type: preproc_def
      name: MSR_PSTATE_STATUS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '0xc0010063U '
    - item_type: preproc_def
      name: MSR_PSTATE_CTRL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '0xc0010062U '
    - item_type: preproc_def
      name: MSR_PSTATE_CUR_LIMIT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '0xc0010061U '
    - item_type: preproc_def
      name: MSR_HWCR_CPBDIS_MASK
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: 0x02000000ULL
    - item_type: preproc_def
      name: ARCH_CPU_FLAG_RESUME
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*perf'
        type: struct processor_performance
      - name: max_hw_pstate
        type: u32
      item_type: struct
      name: amd_cpu_data
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/powernow.c
    typedefs: []
    union: []
- function_names:
  - extract_io
  - extract_msr
  - extract_freq
  - do_drv_read
  - do_drv_write
  - drv_read
  - drv_write
  - get_cur_val
  - get_cur_freq_on_cpu
  - intel_feature_detect
  - feature_detect
  - check_freqs
  - acpi_cpufreq_target
  - acpi_cpufreq_verify
  - acpi_cpufreq_guess_freq
  - acpi_cpufreq_cpu_init
  - acpi_cpufreq_cpu_exit
  - acpi_cpufreq_register
  source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INTEL_MSR_RANGE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
      type_or_value: 0xffffULL
    structs:
    - fields:
      - name: reg
        type: u32
      item_type: struct
      name: msr_addr
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    - fields:
      - name: port
        type: u16
      - name: bit_width
        type: u8
      item_type: struct
      name: io_addr
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    - fields:
      - name: type
        type: unsigned int
      - name: '*mask'
        type: cpumask_t
      - name: addr
        type: drv_addr_union
      - name: val
        type: u32
      item_type: struct
      name: drv_cmd
      pos:
        line_end: 95
        line_start: 90
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
    typedefs: []
    union:
    - fields:
      - name: msr
        type: struct msr_addr
      - name: io
        type: struct io_addr
      item_type: union
      name: drv_addr_union
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/acpi.c
- function_names:
  - read_measured_perf_ctrs
  - get_measured_perf
  - cpufreq_driver_init
  - cpufreq_driver_late_init
  - cpufreq_cpu_init
  source_file: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: aperf
        type: "union {\n        struct {\n            uint32_t lo;\n            uint32_t
          hi;\n        } split;\n        uint64_t whole;\n    }"
      item_type: struct
      name: perf_pair
      pos:
        line_end: 45
        line_start: 37
        source_file: /src/xen/xen/arch/x86/acpi/cpufreq/cpufreq.c
    typedefs: []
    union: []
- function_names:
  - hwp_err
  - hwp_info
  - hwp_verbose
  - hwp_governor
  - hwp_handle_option
  - hwp_cmdline_parse
  - cpufreq_gov_hwp_init
  - hwp_active
  - hwp_available
  - hwp_cpufreq_verify
  - hwp_write_request
  - hwp_cpufreq_target
  - hdc_set_pkg_hdc_ctl
  - hdc_set_pm_ctl1
  - hwp_get_cpu_speeds
  - hwp_init_msrs
  - hwp_cpufreq_cpu_init
  - hwp_cpufreq_cpu_exit
  - hwp_set_misc_turbo
  - hwp_cpufreq_update
  - get_hwp_para
  - set_hwp_para
  - hwp_register_driver
  source_file: /src/xen/xen/arch/x86/acpi/cpufreq/hwp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_vrtc
  - vcpu_vrtc
  - vrtc_domain
  - vrtc_vcpu
  - get_year
  - mode_is
  - rtc_mode_is
  - rtc_update_irq
  - rtc_pf_callback
  - check_for_pf_ticks
  - rtc_timer_update
  - check_update_timer
  - rtc_update_timer
  - rtc_update_timer2
  - to_bcd
  - from_bcd
  - convert_hour
  - alarm_timer_update
  - rtc_alarm_cb
  - rtc_ioport_write
  - rtc_set_time
  - rtc_copy_date
  - update_in_progress
  - rtc_ioport_read
  - handle_rtc_io
  - rtc_migrate_timers
  - rtc_save
  - rtc_load
  - rtc_reset
  - hw_rtc_io
  - rtc_init
  - rtc_deinit
  - rtc_update_clock
  source_file: /src/xen/xen/arch/x86/hvm/rtc.c
  types:
    enum:
    - enumerators:
      - name: rtc_mode_no_ack
      - name: rtc_mode_strict
      item_type: enum
      name: rtc_mode
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
    preproc_defs:
    - item_type: preproc_def
      name: USEC_PER_SEC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: 1000000UL
    - item_type: preproc_def
      name: NS_PER_USEC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: 1000UL
    - item_type: preproc_def
      name: NS_PER_SEC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: 1000000000ULL
    - item_type: preproc_def
      name: SEC_PER_MIN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: '60'
    - item_type: preproc_def
      name: SEC_PER_HOUR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: '3600'
    - item_type: preproc_def
      name: MIN_PER_HOUR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: '60'
    - item_type: preproc_def
      name: HOUR_PER_DAY
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: '24'
    - item_type: preproc_def
      name: epoch_year
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/hvm/rtc.c
      type_or_value: '1900'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_memory_op
  - hvm_grant_table_op
  - hvm_physdev_op
  - hvm_hypercall
  - hvm_do_multicall_call
  source_file: /src/xen/xen/arch/x86/hvm/hypercall.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_vhpet
  - vcpu_vhpet
  - vhpet_domain
  - vhpet_vcpu
  - guest_time_hpet
  - HPET_TN
  - hpet_tick_to_ns
  - timer_config
  - timer_enabled
  - timer_is_periodic
  - timer_is_32bit
  - hpet_enabled
  - timer_level
  - timer_is_legacy
  - timer_int_route
  - timer_int_route_cap
  - timer_int_route_valid
  - hpet_read_maincounter
  - hpet_get_comparator
  - hpet_read64
  - hpet_check_access_length
  - hpet_read
  - hpet_stop_timer
  - hpet_timer_fired
  - hpet_set_timer
  - hpet_fixup_reg
  - timer_sanitize_int_route
  - hpet_write
  - set_stop_timer
  - set_start_timer
  - set_restart_timer
  - hpet_range
  - hpet_save
  - C
  - hpet_load
  - C
  - hpet_set
  - hpet_init
  - hpet_deinit
  - hpet_reset
  source_file: /src/xen/xen/arch/x86/hvm/hpet.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HPET_BASE_ADDRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: 0xfed00000ULL
    - item_type: preproc_def
      name: HPET_MMAP_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: S_TO_NS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: '1000000000ULL           '
    - item_type: preproc_def
      name: S_TO_FS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: '1000000000000000ULL     '
    - item_type: preproc_def
      name: STIME_PER_HPET_TICK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HPET_TN_INT_ROUTE_CAP_VAL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: MASK_INSR(0x00f00000, HPET_TN_INT_ROUTE_CAP)
    - item_type: preproc_def
      name: HPET_TINY_TIME_SPAN
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: ((h->stime_freq >> 10) / STIME_PER_HPET_TICK)
    - item_type: preproc_def
      name: HPET_TIMER_NUM
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/xen/xen/arch/x86/hvm/hpet.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_grant_p2m_mapping
  - replace_grant_p2m_mapping
  source_file: /src/xen/xen/arch/x86/hvm/grant_table.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - subpage_mmio_accept
  - subpage_mmio_read
  - subpage_mmio_write
  - register_subpage_ro_handler
  source_file: /src/xen/xen/arch/x86/hvm/mmio.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dmi_hvm_deny_port80
  - check_port80
  source_file: /src/xen/xen/arch/x86/hvm/quirks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vmsi_inj_irq
  - vmsi_deliver
  - vmsi_deliver_pirq
  - hvm_girq_dest_2_vcpu_id
  - for_each_vcpu
  - acc_bit
  - msixtbl_initialised
  - msixtbl_find_entry
  - msixtbl_addr_to_desc
  - get_adjacent_idx
  - adjacent_read
  - adjacent_write
  - msixtbl_read
  - msixtbl_write
  - _msixtbl_write
  - msixtbl_range
  - add_msixtbl_entry
  - free_msixtbl_entry
  - del_msixtbl_entry
  - msixtbl_pt_register
  - for_each_vcpu
  - msixtbl_pt_unregister
  - msixtbl_init
  - msixtbl_pt_cleanup
  - msix_write_completion
  - msi_gflags
  - vpci_mask_pirq
  - vpci_msi_arch_mask
  - vpci_msi_update
  - vpci_msi_arch_update
  - vpci_msi_enable
  - vpci_msi_arch_enable
  - vpci_msi_disable
  - vpci_msi_arch_disable
  - vpci_msi_arch_init
  - vpci_msi_arch_print
  - vpci_msix_arch_mask_entry
  - vpci_msix_arch_enable_entry
  - vpci_msix_arch_disable_entry
  - vpci_msix_arch_init_entry
  - vpci_msix_arch_print
  source_file: /src/xen/xen/arch/x86/hvm/vmsi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_MSIX_ACC_ENTRIES
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/hvm/vmsi.c
      type_or_value: '3'
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: refcnt
        type: atomic_t
      - name: '*pdev'
        type: struct pci_dev
      - name: gtable
        type: unsigned long
      - name: table_len
        type: unsigned int
      - name: gentries[MAX_MSIX_ACC_ENTRIES]
        type: "struct { \n        uint32_t msi_ad[3];\t/* Shadow of address low, high
          and data */\n    }"
      - name: rcu
        type: struct rcu_head
      item_type: struct
      name: msixtbl_entry
      pos:
        line_end: 168
        line_start: 150
        source_file: /src/xen/xen/arch/x86/hvm/vmsi.c
    typedefs: []
    union: []
- function_names:
  - hvm_domain_use_pirq
  - assert_gsi
  - hvm_ioapic_assert
  - hvm_ioapic_deassert
  - assert_irq
  - deassert_irq
  - __hvm_pci_intx_assert
  - hvm_pci_intx_assert
  - __hvm_pci_intx_deassert
  - hvm_pci_intx_deassert
  - hvm_gsi_assert
  - hvm_gsi_deassert
  - hvm_isa_irq_assert
  - hvm_isa_irq_deassert
  - hvm_set_callback_irq_level
  - hvm_maybe_deassert_evtchn_irq
  - hvm_assert_evtchn_irq
  - hvm_set_pci_link_route
  - hvm_inject_msi
  - hvm_set_callback_via
  - hvm_vcpu_has_pending_irq
  - hvm_vcpu_ack_pending_irq
  - hvm_local_events_need_delivery
  - irq_dump
  - dump_irq_info
  - dump_irq_info_key_init
  - irq_save_pci
  - irq_save_isa
  - irq_save_link
  - irq_load_pci
  - irq_load_isa
  - irq_check_link
  - irq_load_link
  source_file: /src/xen/xen/arch/x86/hvm/irq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vpic_domain
  - __vpic_lock
  - vpic_lock
  - vpic_unlock
  - vpic_is_locked
  - vpic_elcr_mask
  - vpic_get_priority
  - vpic_get_highest_priority_irq
  - vpic_update_int_output
  - __vpic_intack
  - vpic_intack
  - vpic_ioport_write
  - vpic_ioport_read
  - vpic_intercept_pic_io
  - vpic_intercept_elcr_io
  - vpic_save
  - vpic_check
  - vpic_load
  - vpic_reset
  - vpic_init
  - vpic_irq_positive_edge
  - vpic_irq_negative_edge
  - vpic_ack_pending_irq
  source_file: /src/xen/xen/arch/x86/hvm/vpic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VPIC_PRIO_NONE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/hvm/vpic.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_segment
  - arch_set_info_hvm_guest
  - SEG
  - SEG
  source_file: /src/xen/xen/arch/x86/hvm/domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_hvm_save
  - arch_hvm_check
  - arch_hvm_load
  - hvm_register_savevm
  - hvm_save_size
  - hvm_save_one
  - hvm_save
  - for_each_vcpu
  - hvm_load
  - _hvm_init_entry
  - _hvm_write_entry
  - _hvm_check_entry
  - _hvm_read_entry
  source_file: /src/xen/xen/arch/x86/hvm/save.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: save
        type: hvm_save_handler
      - name: check
        type: hvm_check_handler
      - name: load
        type: hvm_load_handler
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: kind
        type: int
      item_type: struct
      name: hvm_sr_handlers[HVM_SAVE_CODE_MAX + 1]
      pos:
        line_end: 81
        line_start: 74
        source_file: /src/xen/xen/arch/x86/hvm/save.c
    typedefs: []
    union: []
- function_names:
  - nestedhvm_vcpu_in_guestmode
  - nestedhvm_vcpu_reset
  - nestedhvm_vcpu_initialise
  - nestedhvm_vcpu_destroy
  - nestedhvm_flushtlb_ipi
  - nestedhvm_vmcx_flushtlb
  - nestedhvm_setup
  - nestedhvm_vcpu_iomap_get
  source_file: /src/xen/xen/arch/x86/hvm/nestedhvm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - send_timeoffset_req
  - hvm_emulate_one_insn
  - handle_mmio_with_translation
  - handle_pio
  - g2m_portio_accept
  - g2m_portio_read
  - g2m_portio_write
  - register_g2m_portio_handler
  - hvm_pci_decode_addr
  - vpci_portio_accept
  - vpci_portio_read
  - vpci_portio_write
  - register_vpci_portio_handler
  - vpci_mmcfg_find
  - __hwdom_init::vpci_mmcfg_deny_access
  - vpci_mmcfg_decode_addr
  - vpci_mmcfg_accept
  - vpci_mmcfg_read
  - vpci_mmcfg_write
  - register_vpci_mmcfg_handler
  - destroy_vpci_mmcfg
  source_file: /src/xen/xen/arch/x86/hvm/io.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: next
        type: struct list_head
      - name: addr
        type: paddr_t
      - name: size
        type: unsigned int
      - name: segment
        type: uint16_t
      - name: start_bus
        type: uint8_t
      item_type: struct
      name: hvm_mmcfg
      pos:
        line_end: 349
        line_start: 343
        source_file: /src/xen/xen/arch/x86/hvm/io.c
    typedefs: []
    union: []
- function_names:
  - hvm_vm_event_set_registers
  - hvm_vm_event_do_resume
  source_file: /src/xen/xen/arch/x86/hvm/vm_event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvmtrace_io_assist
  - null_read
  - null_write
  - set_context_data
  - ioreq_server_read
  - hvmemul_cancel
  - hwdom_fixup_p2m
  - hvmemul_do_io
  - hvmemul_do_io_buffer
  - hvmemul_acquire_page
  - hvmemul_release_page
  - hvmemul_do_io_addr
  - hvmemul_do_pio_buffer
  - hvmemul_do_pio_addr
  - hvmemul_do_mmio_buffer
  - hvmemul_do_mmio_addr
  - hvmemul_map_linear_addr
  - hvmemul_unmap_linear_addr
  - hvmemul_linear_to_phys
  - hvmemul_virtual_to_linear
  - hvmemul_phys_mmio_access
  - hvmemul_find_mmio_cache
  - latch_linear_to_phys
  - hvmemul_linear_mmio_access
  - hvmemul_linear_mmio_read
  - hvmemul_linear_mmio_write
  - known_gla
  - linear_read
  - linear_write
  - __hvmemul_read
  - hvmemul_read
  - hvmemul_insn_fetch
  - hvmemul_write
  - hvmemul_rmw
  - hvmemul_blk
  - hvmemul_write_discard
  - hvmemul_rep_ins_discard
  - hvmemul_rep_movs_discard
  - hvmemul_rep_stos_discard
  - hvmemul_rep_outs_discard
  - hvmemul_cmpxchg_discard
  - hvmemul_read_io_discard
  - hvmemul_write_io_discard
  - hvmemul_write_msr_discard
  - hvmemul_cache_op_discard
  - hvmemul_cmpxchg
  - hvmemul_validate
  - hvmemul_rep_ins
  - hvmemul_rep_outs_set_context
  - hvmemul_rep_outs
  - hvmemul_rep_movs
  - hvmemul_rep_stos
  - CASE
  - hvmemul_read_segment
  - hvmemul_write_segment
  - hvmemul_read_io
  - hvmemul_write_io
  - hvmemul_read_cr
  - hvmemul_write_cr
  - hvmemul_read_xcr
  - hvmemul_write_xcr
  - hvmemul_read_msr
  - hvmemul_write_msr
  - hvmemul_cache_op
  - hvmemul_get_fpu
  - hvmemul_put_fpu
  - hvmemul_tlb_op
  - hvmemul_vmfunc
  - _hvm_emulate_one
  - hvm_emulate_one
  - hvm_emulate_one_vm_event
  - hvm_emulate_init_once
  - hvm_emulate_init_per_insn
  - hvm_emulate_writeback
  - hvmemul_get_seg_reg
  - guest_x86_mode_to_str
  - hvm_dump_emulation_state
  - hvmemul_cache_init
  - hvmemul_cache_disable
  - hvmemul_cache_restore
  - hvmemul_read_cache
  - hvmemul_write_cache
  source_file: /src/xen/xen/arch/x86/hvm/emulate.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: gla
        type: unsigned long
      - name: skip
        type: unsigned int
      - name: size
        type: unsigned int
      - name: space
        type: unsigned int
      - name: dir
        type: unsigned int
      - name: __aligned(sizeof(long))
        type: uint8_t
      item_type: struct
      name: hvm_mmio_cache
      pos:
        line_end: 43
        line_start: 36
        source_file: /src/xen/xen/arch/x86/hvm/emulate.c
    - fields:
      - name: num_ents
        type: unsigned int
      - name: max_ents
        type: unsigned int
      - name: ents[]
        type: "struct {\n        paddr_t gpa:PADDR_BITS;\n        unsigned int :BITS_PER_LONG
          - PADDR_BITS - 8;\n        unsigned int size:8;\n        unsigned long data;\n
          \   }"
      item_type: struct
      name: hvmemul_cache
      pos:
        line_end: 56
        line_start: 45
        source_file: /src/xen/xen/arch/x86/hvm/emulate.c
    typedefs: []
    union: []
- function_names:
  - arch_ioreq_complete_mmio
  - arch_vcpu_ioreq_completion
  - hvm_alloc_legacy_ioreq_gfn
  - hvm_alloc_ioreq_gfn
  - hvm_free_legacy_ioreq_gfn
  - hvm_free_ioreq_gfn
  - hvm_unmap_ioreq_gfn
  - hvm_map_ioreq_gfn
  - hvm_remove_ioreq_gfn
  - hvm_add_ioreq_gfn
  - arch_ioreq_server_map_pages
  - arch_ioreq_server_unmap_pages
  - arch_ioreq_server_enable
  - arch_ioreq_server_disable
  - arch_ioreq_server_destroy
  - arch_ioreq_server_map_mem_type
  - arch_ioreq_server_map_mem_type_completed
  - arch_ioreq_server_destroy_all
  - arch_ioreq_server_get_type_addr
  - hvm_access_cf8
  - arch_ioreq_domain_init
  source_file: /src/xen/xen/arch/x86/hvm/ioreq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pat_cr_2_paf
  - hvm_mtrr_pat_init
  - pat_type_2_pte_flags
  - hvm_vcpu_cacheattr_init
  - hvm_vcpu_cacheattr_destroy
  - mtrr_get_type
  - page_pat_type
  - effective_mm_type
  - get_pat_flags
  - valid_mtrr_type
  - mtrr_def_type_msr_set
  - mtrr_fix_range_msr_set
  - mtrr_var_range_msr_set
  - mtrr_pat_not_equal
  - hvm_init_cacheattr_region_list
  - hvm_destroy_cacheattr_region_list
  - hvm_get_mem_pinned_cacheattr
  - free_pinned_cacheattr_entry
  - hvm_set_mem_pinned_cacheattr
  - hvm_save_mtrr_msr
  - hvm_load_mtrr_msr
  - memory_type_changed
  source_file: /src/xen/xen/arch/x86/hvm/mtrr.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: start
        type: uint64_t
      - name: type
        type: uint32_t
      - name: rcu
        type: struct rcu_head
      item_type: struct
      name: hvm_mem_pinned_cacheattr_range
      pos:
        line_end: 518
        line_start: 513
        source_file: /src/xen/xen/arch/x86/hvm/mtrr.c
    typedefs: []
    union: []
- function_names:
  - pmt_update_sci
  - hvm_acpi_power_button
  - hvm_acpi_sleep_button
  - pmt_update_time
  - pmt_timer_callback
  - handle_evt_io
  - handle_pmt_io
  - acpi_save
  - acpi_load
  - pmtimer_change_ioport
  - pmtimer_init
  - pmtimer_deinit
  - pmtimer_reset
  source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PM1a_STS_ADDR_V0
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM1A_EVT_BLK_ADDRESS_V0)
    - item_type: preproc_def
      name: PM1a_EN_ADDR_V0
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM1A_EVT_BLK_ADDRESS_V0 + 2)
    - item_type: preproc_def
      name: TMR_VAL_ADDR_V0
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM_TMR_BLK_ADDRESS_V0)
    - item_type: preproc_def
      name: PM1a_STS_ADDR_V1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM1A_EVT_BLK_ADDRESS_V1)
    - item_type: preproc_def
      name: PM1a_EN_ADDR_V1
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM1A_EVT_BLK_ADDRESS_V1 + 2)
    - item_type: preproc_def
      name: TMR_VAL_ADDR_V1
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (ACPI_PM_TMR_BLK_ADDRESS_V1)
    - item_type: preproc_def
      name: TMR_STS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GBL_STS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: PWRBTN_STS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SLPBTN_STS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: TMR_EN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GBL_EN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: PWRBTN_EN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: SLPBTN_EN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: SCI_MASK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: '(TMR_STS|PWRBTN_STS|SLPBTN_STS|GBL_STS) '
    - item_type: preproc_def
      name: SCI_IRQ
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: '9'
    - item_type: preproc_def
      name: TMR_VAL_MASK
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (0xffffffffU)
    - item_type: preproc_def
      name: TMR_VAL_MSB
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/hvm/pmtimer.c
      type_or_value: (0x80000000U)
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_callback
  - hap_supported
  - hvm_enable
  - hvm_event_needs_reinjection
  - hvm_combine_hw_exceptions
  - hvm_set_rdtsc_exiting
  - hvm_get_guest_pat
  - pat_valid
  - hvm_set_guest_pat
  - hvm_get_tsc_scaling_ratio
  - hvm_scale_tsc
  - hvm_set_guest_tsc_fixed
  - hvm_set_guest_tsc
  - hvm_set_guest_tsc_msr
  - hvm_set_guest_tsc_adjust
  - hvm_get_guest_tsc_fixed
  - hvm_set_info_guest
  - hvm_migrate_timers
  - hvm_migrate_pirq
  - migrate_pirq
  - hvm_migrate_pirqs
  - hvm_get_pending_event
  - hvm_do_resume
  - hvm_print_line
  - hvm_domain_initialise
  - hvm_domain_relinquish_resources
  - hvm_domain_destroy
  - hvm_save_tsc_adjust
  - hvm_load_tsc_adjust
  - hvm_save_cpu_ctxt
  - hvm_efer_valid
  - hvm_cr4_guest_valid_bits
  - hvm_load_cpu_ctxt
  - UNFOLD_ARBYTES
  - HVM_CPU_XSAVE_SIZE
  - hvm_save_cpu_xsave_states
  - hvm_load_cpu_xsave_states
  - HVM_CPU_MSR_SIZE
  - hvm_save_cpu_msrs
  - hvm_load_cpu_msrs
  - hvm_register_CPU_save_and_restore
  - hvm_assert_evtchn_irq_tasklet
  - hvm_vcpu_initialise
  - hvm_vcpu_destroy
  - hvm_vcpu_down
  - hvm_hlt
  - hvm_triple_fault
  - hvm_inject_event
  - hvm_hap_nested_page_fault
  - hvm_handle_xsetbv
  - hvm_set_efer
  - hvm_mov_to_cr
  - hvm_mov_from_cr
  - hvm_update_cr
  - hvm_set_cr0
  - hvm_set_cr3
  - hvm_set_cr4
  - hvm_vcpu_virtual_to_linear
  - _hvm_map_guest_frame
  - hvm_map_guest_frame_rw
  - hvm_map_guest_frame_ro
  - hvm_unmap_guest_frame
  - hvm_mapped_guest_frames_mark_dirty
  - hvm_map_entry
  - hvm_unmap_entry
  - task_switch_load_seg
  - hvm_prepare_vm86_tss
  - hvm_task_switch
  - hvm_translate_get_page
  - __hvm_copy
  - hvm_copy_to_guest_phys
  - hvm_copy_from_guest_phys
  - hvm_copy_to_guest_linear
  - hvm_copy_from_guest_linear
  - hvm_copy_from_vcpu_linear
  - copy_to_user_hvm
  - clear_user_hvm
  - copy_from_user_hvm
  - hvm_vmexit_cpuid
  - hvm_rdtsc_intercept
  - hvm_msr_read_intercept
  - hvm_msr_write_intercept
  - hvm_get_reg
  - hvm_set_reg
  - is_sysdesc_access
  - hvm_descriptor_access_intercept
  - is_cross_vendor
  - hvm_ud_intercept
  - hvm_interrupt_blocked
  - hvm_latch_shinfo_size
  - hvm_init_hypercall_page
  - hvm_vcpu_reset_state
  - hvm_s3_suspend
  - for_each_vcpu
  - hvm_s3_resume
  - hvmop_flush_tlb_all
  - hvmop_set_evtchn_upcall_vector
  - hvm_allow_set_param
  - hvm_set_param
  - hvmop_set_param
  - hvm_allow_get_param
  - hvm_get_param
  - hvmop_get_param
  - do_altp2m_op
  - for_each_vcpu
  - compat_altp2m_op
  - XLAT_hvm_altp2m_set_mem_access_multi_HNDL_pfn_list
  - XLAT_hvm_altp2m_set_mem_access_multi_HNDL_access_list
  - hvmop_get_mem_type
  - do_hvm_op
  - hvm_debug_op
  - hvm_toggle_singlestep
  - hvm_fast_singlestep
  - hvm_get_segment_register
  - hvm_set_segment_register
  - hvm_copy_context_and_params
  source_file: /src/xen/xen/arch/x86/hvm/hvm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HVM_IOBITMAP_SIZE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: (3 * PAGE_SIZE)
    - item_type: preproc_def
      name: HVM_CR0_GUEST_RESERVED_BITS
      pos:
        line_end: 989
        line_start: 983
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: "(~((unsigned long)                          \\\n       (X86_CR0_PE
        | X86_CR0_MP | X86_CR0_EM |  \\\n        X86_CR0_TS | X86_CR0_ET | X86_CR0_NE
        |  \\\n        X86_CR0_WP | X86_CR0_AM | X86_CR0_NW |  \\\n        X86_CR0_CD
        | X86_CR0_PG)))"
    - item_type: preproc_def
      name: xen_xsave_hdr
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: xsave_hdr
    - item_type: preproc_def
      name: compat_xsave_hdr
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: hvm_hw_cpu_xsave_hdr
    - item_type: preproc_def
      name: HVMCOPY_from_guest
      pos:
        line_end: 3326
        line_start: 3325
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: (0u<<0)
    - item_type: preproc_def
      name: HVMCOPY_to_guest
      pos:
        line_end: 3327
        line_start: 3326
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: HVMCOPY_phys
      pos:
        line_end: 3328
        line_start: 3327
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: (0u<<2)
    - item_type: preproc_def
      name: HVMCOPY_linear
      pos:
        line_end: 3329
        line_start: 3328
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: (1u<<2)
    - item_type: preproc_def
      name: CHECK_hvm_altp2m_op
      pos:
        line_end: 4960
        line_start: 4953
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: "CHECK_SIZE_(struct, hvm_altp2m_op); \\\n    CHECK_FIELD_(struct,
        hvm_altp2m_op, version); \\\n    CHECK_FIELD_(struct, hvm_altp2m_op, cmd);
        \\\n    CHECK_FIELD_(struct, hvm_altp2m_op, domain); \\\n    CHECK_FIELD_(struct,
        hvm_altp2m_op, pad1); \\\n    CHECK_FIELD_(struct, hvm_altp2m_op, pad2)"
    - item_type: preproc_def
      name: CHECK_hvm_altp2m_set_mem_access_multi
      pos:
        line_end: 4968
        line_start: 4963
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
      type_or_value: "CHECK_FIELD_(struct, hvm_altp2m_set_mem_access_multi, view);
        \\\n    CHECK_FIELD_(struct, hvm_altp2m_set_mem_access_multi, pad); \\\n    CHECK_FIELD_(struct,
        hvm_altp2m_set_mem_access_multi, nr); \\\n    CHECK_FIELD_(struct, hvm_altp2m_set_mem_access_multi,
        opaque)"
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: '*page'
        type: struct page_info
      item_type: struct
      name: hvm_write_map
      pos:
        line_end: 2703
        line_start: 2700
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
    - fields:
      - name: back_link
        type: uint16_t
      - name: esp0
        type: uint32_t
      - name: ss0
        type: uint16_t
      - name: esp1
        type: uint32_t
      - name: ss1
        type: uint16_t
      - name: esp2
        type: uint32_t
      - name: ss2
        type: uint16_t
      - name: cr3
        type: uint32_t
      - name: es
        type: uint16_t
      - name: trace
        type: uint16_t
      item_type: struct
      name: tss32
      pos:
        line_end: 2991
        line_start: 2980
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
    typedefs: []
    union:
    - fields:
      - name: (void)
        type: XEN_GUEST_HANDLE_PARAM
      - name: '*altp2m_op'
        type: struct xen_hvm_altp2m_op
      item_type: union
      name: nat
      pos:
        line_end: 4982
        line_start: 4978
        source_file: /src/xen/xen/arch/x86/hvm/hvm.c
- function_names:
  - _raw_copy_from_guest_buf_offset
  - COPY_FROM_GUEST_BUF_OFFSET
  - track_dirty_vram
  - set_pci_intx_level
  - set_isa_irq_level
  - modified_memory
  - allow_p2m_type_change
  - set_mem_type
  - inject_event
  - dm_op
  - compat_dm_op
  - XLAT_dm_op_buf_HNDL_h
  source_file: /src/xen/xen/arch/x86/hvm/dm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXTENTS_BUFFER
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/hvm/dm.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_npt_base
  - hvm_monitor_cr
  - hvm_monitor_emul_unimplemented
  - hvm_monitor_msr
  - hvm_monitor_descriptor_access
  - gfn_of_rip
  - hvm_monitor_debug
  - hvm_monitor_cpuid
  - hvm_monitor_interrupt
  - hvm_monitor_check_p2m
  - hvm_monitor_vmexit
  - hvm_monitor_io
  source_file: /src/xen/xen/arch/x86/hvm/monitor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vlapic_lvtt_period
  - vlapic_lvtt_oneshot
  - vlapic_lvtt_tdt
  - vlapic_find_highest_vector
  - vlapic_test_and_set_irr
  - vlapic_clear_irr
  - vlapic_find_highest_irr
  - vlapic_error
  - vlapic_test_irq
  - vlapic_set_irq
  - vlapic_find_highest_isr
  - vlapic_get_ppr
  - vlapic_set_ppr
  - vlapic_match_logical_addr
  - vlapic_match_dest
  - vlapic_init_sipi_one
  - vlapic_init_sipi_action
  - vlapic_accept_irq
  - vlapic_lowest_prio
  - vlapic_EOI_set
  - vlapic_handle_EOI
  - is_multicast_dest
  - vlapic_ipi
  - for_each_vcpu
  - vlapic_get_tmcct
  - vlapic_set_tdcr
  - vlapic_read_aligned
  - vlapic_mmio_read
  - guest_rdmsr_x2apic
  - vlapic_tdt_pt_cb
  - vlapic_update_timer
  - vlapic_reg_write
  - vlapic_mmio_write
  - vlapic_apicv_write
  - guest_wrmsr_x2apic
  - vlapic_range
  - x2apic_ldr_from_id
  - set_x2apic_id
  - guest_wrmsr_apic_base
  - vlapic_tdt_msr_get
  - vlapic_tdt_msr_set
  - __vlapic_accept_pic_intr
  - vlapic_accept_pic_intr
  - vlapic_adjust_i8259_target
  - vlapic_has_pending_irq
  - vlapic_ack_pending_irq
  - is_vlapic_lvtpc_enabled
  - vlapic_do_init
  - vlapic_reset
  - lapic_rearm
  - lapic_save_hidden
  - lapic_save_regs
  - lapic_load_fixup
  - lapic_check_common
  - lapic_check_hidden
  - lapic_load_hidden
  - lapic_check_regs
  - lapic_load_regs
  - vlapic_init
  - vlapic_destroy
  source_file: /src/xen/xen/arch/x86/hvm/vlapic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VLAPIC_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/hvm/vlapic.c
      type_or_value: '0x00050014'
    - item_type: preproc_def
      name: VLAPIC_LVT_NUM
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/hvm/vlapic.c
      type_or_value: '6'
    - item_type: preproc_def
      name: LVT_MASK
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/xen/xen/arch/x86/hvm/vlapic.c
      type_or_value: (APIC_LVT_MASKED | APIC_SEND_PENDING | APIC_VECTOR_MASK)
    - item_type: preproc_def
      name: LINT_MASK
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/xen/xen/arch/x86/hvm/vlapic.c
      type_or_value: "(LVT_MASK | APIC_DM_MASK | APIC_INPUT_POLARITY |\\\n    APIC_LVT_REMOTE_IRR
        | APIC_LVT_LEVEL_TRIGGER)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - stdvga_mem_read
  - stdvga_mem_write
  - stdvga_mem_accept
  - stdvga_init
  source_file: /src/xen/xen/arch/x86/hvm/stdvga.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VGA_MEM_BASE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/hvm/stdvga.c
      type_or_value: '0xa0000'
    - item_type: preproc_def
      name: VGA_MEM_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/hvm/stdvga.c
      type_or_value: '0x20000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_mmio_accept
  - hvm_mmio_read
  - hvm_mmio_write
  - hvm_portio_accept
  - hvm_portio_read
  - hvm_portio_write
  - hvm_process_io_intercept
  - hvm_find_io_handler
  - hvm_io_intercept
  - hvm_next_io_handler
  - register_mmio_handler
  - register_portio_handler
  - relocate_portio_handler
  - hvm_mmio_internal
  source_file: /src/xen/xen/arch/x86/hvm/intercept.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_order_stats
  - modify_identity_mmio
  - pvh_populate_memory_range
  - pvh_steal_ram
  - pvh_add_mem_range
  - pvh_setup_vmx_realmode_helpers
  - pvh_setup_e820
  - pvh_init_p2m
  - pvh_populate_p2m
  - find_memory
  - check_load_address
  - find_kernel_memory
  - check_and_adjust_load_address
  - pvh_load_kernel
  - pvh_setup_cpus
  - acpi_count_intr_ovr
  - acpi_set_intr_ovr
  - pvh_setup_acpi_madt
  - acpi_memory_banned
  - pvh_acpi_table_allowed
  - pvh_acpi_xsdt_table_allowed
  - pvh_setup_acpi_xsdt
  - pvh_setup_acpi
  - pvh_setup_mmcfg
  - dom0_construct_pvh
  source_file: /src/xen/xen/arch/x86/hvm/dom0_build.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HVM_VM86_TSS_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/hvm/dom0_build.c
      type_or_value: '265'
    - item_type: preproc_def
      name: MB1_PAGES
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/x86/hvm/dom0_build.c
      type_or_value: PFN_DOWN(MB(1))
    structs:
    - fields:
      - name: align
        type: unsigned long
      - name: order
        type: unsigned int
      item_type: struct
      name: "__initconst = {\n        /* NB: must be sorted by decreasing size. */\n
        \       { .align = PFN_DOWN(GB(1)), .order = PAGE_ORDER_1G },\n        { .align
        = PFN_DOWN(MB(2)), .order = PAGE_ORDER_2M },\n        { .align = PFN_DOWN(KB(4)),
        .order = PAGE_ORDER_4K },\n    }"
      pos:
        line_end: 96
        line_start: 93
        source_file: /src/xen/xen/arch/x86/hvm/dom0_build.c
    typedefs: []
    union: []
- function_names:
  - mode_is
  - hvm_init_guest_time
  - hvm_get_guest_time_fixed
  - hvm_set_guest_time
  - pt_irq_vector
  - pt_irq_masked
  - pt_vcpu_lock
  - pt_vcpu_unlock
  - pt_lock
  - pt_unlock
  - pt_process_missed_ticks
  - pt_freeze_time
  - pt_thaw_time
  - pt_save_timer
  - pt_restore_timer
  - list_for_each_entry
  - pt_timer_fn
  - pt_irq_fired
  - pt_update_irq
  - list_for_each_entry_safe
  - is_pt_irq
  - list_for_each_entry
  - pt_intr_post
  - pt_migrate
  - create_periodic_time
  - destroy_periodic_time
  - pt_adjust_vcpu
  - pt_adjust_global_vcpu_target
  - pt_resume
  - pt_may_unmask_irq
  source_file: /src/xen/xen/arch/x86/hvm/vpt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_asid_init
  - hvm_asid_flush_vcpu_asid
  - hvm_asid_flush_vcpu
  - hvm_asid_flush_core
  - hvm_asid_handle_vmenter
  source_file: /src/xen/xen/arch/x86/hvm/asid.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: core_asid_generation
        type: uint64_t
      - name: next_asid
        type: uint32_t
      - name: max_asid
        type: uint32_t
      - name: disabled
        type: bool
      item_type: struct
      name: hvm_asid_data
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/xen/xen/arch/x86/hvm/asid.c
    typedefs: []
    union: []
- function_names:
  - addr_vioapic
  - gsi_vioapic
  - vioapic_read_indirect
  - vioapic_read
  - vioapic_hwdom_map_gsi
  - vioapic_write_redirent
  - vioapic_write_indirect
  - vioapic_write
  - vioapic_range
  - ioapic_inj_irq
  - vioapic_deliver
  - vioapic_irq_positive_edge
  - vioapic_update_EOI
  - vioapic_get_mask
  - vioapic_get_vector
  - vioapic_get_trigger_mode
  - ioapic_save
  - ioapic_load
  - vioapic_reset
  - vioapic_free
  - vioapic_init
  - vioapic_deinit
  source_file: /src/xen/xen/arch/x86/hvm/vioapic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IRQ0_SPECIAL_ROUTING
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/hvm/vioapic.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_assertions
  - viridian_apic_assist_set
  - viridian_apic_assist_completed
  - viridian_apic_assist_clear
  - viridian_synic_wrmsr
  - viridian_synic_rdmsr
  - viridian_synic_vcpu_init
  - viridian_synic_domain_init
  - viridian_synic_vcpu_deinit
  - viridian_synic_domain_deinit
  - viridian_synic_poll
  - viridian_synic_deliver_timer_msg
  - viridian_synic_is_auto_eoi_sint
  - viridian_synic_save_vcpu_ctxt
  - viridian_synic_load_vcpu_ctxt
  - viridian_synic_save_domain_ctxt
  - viridian_synic_load_domain_ctxt
  source_file: /src/xen/xen/arch/x86/hvm/viridian/synic.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: TimerIndex
        type: uint32_t
      - name: Reserved
        type: uint32_t
      - name: ExpirationTime
        type: uint64_t
      - name: DeliveryTime
        type: uint64_t
      item_type: struct
      name: "payload = {\n        .TimerIndex = index,\n        .ExpirationTime =
        expiration,\n        .DeliveryTime = delivery,\n    }"
      pos:
        line_end: 334
        line_start: 329
        source_file: /src/xen/xen/arch/x86/hvm/viridian/synic.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/hvm/viridian/private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_reference_tsc
  - trc_val
  - time_ref_count_freeze
  - time_ref_count_thaw
  - time_ref_count
  - stop_stimer
  - stimer_expire
  - start_stimer
  - poll_stimer
  - viridian_time_poll_timers
  - time_vcpu_freeze
  - time_vcpu_thaw
  - viridian_time_domain_freeze
  - viridian_time_domain_thaw
  - viridian_time_wrmsr
  - viridian_time_rdmsr
  - viridian_time_vcpu_init
  - viridian_time_domain_init
  - viridian_time_vcpu_deinit
  - viridian_time_domain_deinit
  - viridian_time_save_vcpu_ctxt
  - viridian_time_load_vcpu_ctxt
  - viridian_time_save_domain_ctxt
  - viridian_time_load_domain_ctxt
  source_file: /src/xen/xen/arch/x86/hvm/viridian/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpuid_viridian_leaves
  - dump_guest_os_id
  - dump_hypercall
  - enable_hypercall_page
  - guest_wrmsr_viridian
  - guest_rdmsr_viridian
  - viridian_vcpu_init
  - viridian_domain_init
  - viridian_vcpu_deinit
  - viridian_domain_deinit
  - vpmask_empty
  - vpmask_set
  - vpmask_fill
  - vpmask_nr
  - HV_VPSET_SIZE
  - hv_vpset_nr_banks
  - hv_vpset_to_vpmask
  - hvcall_flush
  - hvcall_flush_ex
  - send_ipi
  - hvcall_ipi
  - hvcall_ipi_ex
  - viridian_hypercall
  - viridian_dump_guest_page
  - viridian_map_guest_page
  - viridian_unmap_guest_page
  - viridian_save_domain_ctxt
  - viridian_load_domain_ctxt
  - viridian_save_vcpu_ctxt
  - viridian_load_vcpu_ctxt
  - parse_viridian_version
  source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPUID3D_CPU_DYNAMIC_PARTITIONING
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CPUID3D_CRASH_MSRS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: CPUID3D_SINT_POLLING
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 17)
    - item_type: preproc_def
      name: CPUID4A_HCALL_REMOTE_TLB_FLUSH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CPUID4A_MSR_BASED_APIC
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CPUID4A_RELAX_TIMER_INT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: CPUID4A_SYNTHETIC_CLUSTER_IPI
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: CPUID4A_EX_PROCESSOR_MASKS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: CPUID6A_APIC_OVERLAY
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CPUID6A_MSR_BITMAPS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CPUID6A_NESTED_PAGING
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: HV_VPSET_BANK_SIZE
      pos:
        line_end: 586
        line_start: 584
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: sizeof_field(struct hv_vpset, bank_contents[0])
    - item_type: preproc_def
      name: HV_VPSET_MAX_BANKS
      pos:
        line_end: 593
        line_start: 591
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (sizeof_field(struct hv_vpset, valid_bank_mask) * 8)
    - item_type: preproc_def
      name: NR_VPS_PER_BANK
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
      type_or_value: (HV_VPSET_BANK_SIZE * 8)
    structs:
    - fields:
      - name: AccessVpRunTimeReg
        type: uint64_t
      - name: AccessPartitionReferenceCounter
        type: uint64_t
      - name: AccessSynicRegs
        type: uint64_t
      - name: AccessSyntheticTimerRegs
        type: uint64_t
      - name: AccessIntrCtrlRegs
        type: uint64_t
      - name: AccessHypercallMsrs
        type: uint64_t
      - name: AccessVpIndex
        type: uint64_t
      - name: AccessResetReg
        type: uint64_t
      - name: AccessStatsReg
        type: uint64_t
      - name: AccessPartitionReferenceTsc
        type: uint64_t
      - name: AccessGuestIdleReg
        type: uint64_t
      - name: AccessFrequencyRegs
        type: uint64_t
      - name: AccessDebugRegs
        type: uint64_t
      - name: Reserved1
        type: uint64_t
      - name: CreatePartitions
        type: uint64_t
      - name: AccessPartitionId
        type: uint64_t
      - name: AccessMemoryPool
        type: uint64_t
      - name: AdjustMessageBuffers
        type: uint64_t
      - name: PostMessages
        type: uint64_t
      - name: SignalEvents
        type: uint64_t
      - name: CreatePort
        type: uint64_t
      - name: ConnectPort
        type: uint64_t
      - name: AccessStats
        type: uint64_t
      - name: Reserved2
        type: uint64_t
      - name: Debugging
        type: uint64_t
      - name: CpuManagement
        type: uint64_t
      - name: Reserved3
        type: uint64_t
      - name: Reserved4
        type: uint64_t
      - name: Reserved5
        type: uint64_t
      - name: AccessVSM
        type: uint64_t
      - name: AccessVpRegisters
        type: uint64_t
      - name: Reserved6
        type: uint64_t
      - name: Reserved7
        type: uint64_t
      - name: EnableExtendedHypercalls
        type: uint64_t
      - name: StartVirtualProcessor
        type: uint64_t
      - name: Reserved8
        type: uint64_t
      item_type: struct
      name: HV_PARTITION_PRIVILEGE_MASK
      pos:
        line_end: 64
        line_start: 24
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields: []
      item_type: struct
      name: hypercall_vpmask
      pos:
        line_end: 543
        line_start: 541
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: vcpu_mask
        type: uint64_t
      item_type: struct
      name: input_params
      pos:
        line_end: 696
        line_start: 692
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: set
        type: struct hv_vpset
      item_type: struct
      name: input_params
      pos:
        line_end: 744
        line_start: 740
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: vector
        type: uint32_t
      - name: target_vtl
        type: uint8_t
      - name: reserved_zero[3]
        type: uint8_t
      - name: vcpu_mask
        type: uint64_t
      item_type: struct
      name: input_params
      pos:
        line_end: 832
        line_start: 827
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: vector
        type: uint32_t
      - name: target_vtl
        type: uint8_t
      - name: reserved_zero[3]
        type: uint8_t
      - name: set
        type: struct hv_vpset
      item_type: struct
      name: input_params
      pos:
        line_end: 870
        line_start: 865
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    typedefs: []
    union:
    - fields:
      - name: AsUINT64
        type: uint64_t
      - name: u
        type: "struct\n    {\n        uint64_t Reserved:63;\n        uint64_t CrashNotify:1;\n
          \   }"
      item_type: union
      name: _HV_CRASH_CTL_REG_CONTENTS
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: mask
        type: HV_PARTITION_PRIVILEGE_MASK
      item_type: union
      name: u
      pos:
        line_end: 163
        line_start: 160
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: set
        type: struct hv_vpset
      - name: pad[HV_VPSET_SIZE(HV_VPSET_MAX_BANKS)]
        type: uint8_t
      item_type: union
      name: hypercall_vpset
      pos:
        line_end: 597
        line_start: 594
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: hypercall_input
      pos:
        line_end: 674
        line_start: 663
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: hypercall_output
      pos:
        line_end: 684
        line_start: 676
        source_file: /src/xen/xen/arch/x86/hvm/viridian/viridian.c
- function_names:
  - vmx_enable_intr_window
  - nvmx_intr_blocked
  - nvmx_intr_intercept
  - vmx_sync_exit_bitmap
  - vmx_intr_assist
  source_file: /src/xen/xen/arch/x86/hvm/vmx/intr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_ept_param
  - update_ept_param
  - init_ept_param
  - parse_ept_param_runtime
  - for_each_domain
  - vmx_display_features
  - P
  - adjust_vmx_controls
  - adjust_vmx_controls2
  - cap_check
  - vmx_init_vmcs_config
  - vmx_alloc_vmcs
  - vmx_free_vmcs
  - __vmx_clear_vmcs
  - vmx_clear_vmcs
  - vmx_load_vmcs
  - vmx_vmcs_reload
  - vmx_cpu_up_prepare
  - vmx_cpu_dead
  - per_cpu
  - _vmx_cpu_up
  - vmx_cpu_up
  - vmx_cpu_down
  - this_cpu
  - vmx_vmcs_try_enter
  - vmx_vmcs_enter
  - vmx_vmcs_exit
  - vmx_set_host_env
  - vmx_clear_msr_intercept
  - vmx_set_msr_intercept
  - vmx_msr_is_intercepted
  - vmx_vmcs_switch
  - virtual_vmcs_enter
  - virtual_vmcs_exit
  - virtual_vmcs_vmread
  - virtual_vmcs_vmread_safe
  - virtual_vmcs_vmwrite
  - virtual_vmcs_vmwrite_safe
  - pi_desc_init
  - construct_vmcs
  - locate_msr_entry
  - vmx_find_msr
  - vmx_add_msr
  - vmx_del_msr
  - vmx_set_eoi_exit_bitmap
  - vmx_clear_eoi_exit_bitmap
  - vmx_vcpu_pml_enabled
  - vmx_vcpu_enable_pml
  - vmx_vcpu_disable_pml
  - vmx_domain_pml_enabled
  - vmx_domain_enable_pml
  - vmx_domain_disable_pml
  - vmx_domain_flush_pml_buffers
  - vmx_vcpu_update_eptp
  - vmx_domain_update_eptp
  - vmx_create_vmcs
  - vmx_destroy_vmcs
  - vmx_vmentry_failure
  - vmx_update_debug_state
  - vmx_do_resume
  - vmr
  - vmr16
  - vmr32
  - vmx_dump_sel
  - vmx_dump_sel2
  - vmcs_dump_vcpu
  - vmcs_dump
  - for_each_domain
  - for_each_vcpu
  - vmx_vmcs_init
  - build_assertions
  source_file: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*v'
        type: struct vcpu
      - name: count
        type: unsigned int
      item_type: struct
      name: foreign_vmcs
      pos:
        line_end: 840
        line_start: 837
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmcs.c
    typedefs: []
    union: []
- function_names:
  - nvmx_vcpu_in_vmx
  - nvmx_cpu_up_prepare
  - nvmx_cpu_dead
  - nvmx_vcpu_initialise
  - nvmx_vcpu_destroy
  - vcpu_relinquish_resources
  - nvmx_domain_relinquish_resources
  - for_each_vcpu
  - nvmx_vcpu_reset
  - nvmx_vcpu_eptp_base
  - nvmx_ept_enabled
  - vvmcs_offset
  - get_vvmcs_virtual
  - get_vvmcs_real
  - get_vvmcs_virtual_safe
  - get_vvmcs_real_safe
  - set_vvmcs_virtual
  - set_vvmcs_real
  - set_vvmcs_virtual_safe
  - set_vvmcs_real_safe
  - reg_read
  - reg_write
  - __n2_pin_exec_control
  - __n2_exec_control
  - __n2_secondary_exec_control
  - decode_vmx_inst
  - vmsucceed
  - vmfail_valid
  - vmfail_invalid
  - vmfail
  - nvmx_intercepts_exception
  - __shadow_control
  - set_shadow_control
  - _shadow_io_bitmap
  - update_msrbitmap
  - nvmx_update_exec_control
  - nvmx_update_secondary_exec_control
  - nvmx_update_pin_control
  - nvmx_update_exit_control
  - nvmx_update_entry_control
  - nvmx_update_exception_bitmap
  - nvmx_update_apic_access_address
  - nvmx_update_virtual_apic_address
  - nvmx_update_tpr_threshold
  - nvmx_update_pfec
  - __clear_current_vvmcs
  - unmap_msr_bitmap
  - __must_check::_map_msr_bitmap
  - unmap_io_bitmap
  - __must_check::_map_io_bitmap
  - __must_check::map_io_bitmap_all
  - nvmx_purge_vvmcs
  - nvmx_get_tsc_offset
  - vvmcs_to_shadow
  - vvmcs_to_shadow_bulk
  - shadow_to_vvmcs
  - shadow_to_vvmcs_bulk
  - load_shadow_control
  - load_shadow_guest_state
  - get_shadow_eptp
  - get_host_eptp
  - nvmx_vpid_enabled
  - nvmx_set_vmcs_pointer
  - nvmx_clear_vmcs_pointer
  - virtual_vmentry
  - sync_vvmcs_guest_state
  - sync_vvmcs_ro
  - load_vvmcs_host_state
  - sync_exception_state
  - nvmx_update_apicv
  - virtual_vmexit
  - nvmx_eptp_update
  - nvmx_switch_guest
  - nvmx_handle_vmxon
  - nvmx_handle_vmxoff
  - vvmcs_launched
  - list_for_each
  - set_vvmcs_launched
  - clear_vvmcs_launched
  - list_for_each
  - nvmx_vmresume
  - nvmx_handle_vmresume
  - nvmx_handle_vmlaunch
  - nvmx_handle_vmptrld
  - nvmx_handle_vmptrst
  - nvmx_handle_vmclear
  - nvmx_handle_vmread
  - nvmx_handle_vmwrite
  - nvmx_handle_invept
  - nvmx_handle_invvpid
  - nvmx_handle_vmx_insn
  - __emul_value
  - gen_vmx_msr
  - nvmx_msr_read_intercept
  - nvmx_hap_walk_L1_p2m
  - nvmx_idtv_handling
  - nvmx_n2_vmexit_handler
  - nvmx_set_cr_read_shadow
  - start_nested_vmx
  source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VMCS_BUF_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
      type_or_value: '100'
    - item_type: preproc_def
      name: VMX_INST_MEMREG_TYPE_MEMORY
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
      type_or_value: '0'
    - item_type: preproc_def
      name: VMX_INST_MEMREG_TYPE_REG
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
      type_or_value: '1'
    structs:
    - fields:
      - name: type
        type: int
      - name: reg2
        type: unsigned int
      item_type: struct
      name: vmx_inst_decoded
      pos:
        line_end: 233
        line_start: 220
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    - fields:
      - name: host_field
        type: u16
      - name: guest_field
        type: u16
      item_type: struct
      name: vmcs_host_to_guest
      pos:
        line_end: 959
        line_start: 956
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vvmx.c
    typedefs: []
    union: []
- function_names:
  - vmx_pi_per_cpu_init
  - vmx_vcpu_block
  - vmx_pi_switch_from
  - vmx_pi_switch_to
  - vmx_pi_unblock_vcpu
  - vmx_pi_do_resume
  - vmx_pi_desc_fixup
  - vmx_pi_hooks_assign
  - for_each_vcpu
  - vmx_pi_hooks_deassign
  - vmx_pi_update_irte
  - get_model_specific_lbr
  - vmx_domain_initialise
  - vmx_domain_relinquish_resources
  - domain_creation_finished
  - vmx_init_ipt
  - vmx_vcpu_initialise
  - vmx_vcpu_destroy
  - vmx_restore_host_msrs
  - vmx_save_guest_msrs
  - vmx_restore_guest_msrs
  - vmx_update_cpu_exec_control
  - vmx_update_secondary_exec_control
  - vmx_update_tertiary_exec_control
  - vmx_update_exception_bitmap
  - vmx_cpuid_policy_changed
  - vmx_guest_x86_mode
  - vmx_save_dr
  - __restore_debug_registers
  - vmx_restore_dr
  - vmx_vmcs_save
  - vmx_restore_cr0_cr3
  - vmx_vmcs_restore
  - vmx_save_cpu_state
  - vmx_load_cpu_state
  - vmx_save_vmcs_ctxt
  - vmx_load_vmcs_ctxt
  - vmx_fpu_enter
  - vmx_fpu_leave
  - vmx_ctxt_switch_from
  - vmx_ctxt_switch_to
  - vmx_get_cpl
  - _vmx_get_cpl
  - vmx_get_segment_register
  - vmx_set_segment_register
  - vmx_set_guest_pat
  - vmx_get_guest_pat
  - domain_exit_uc_mode
  - for_each_vcpu
  - set_uc_mode
  - shadow_handle_cd
  - vmx_handle_cd
  - vmx_set_tsc_offset
  - vmx_set_rdtsc_exiting
  - vmx_set_descriptor_access_exiting
  - vmx_init_hypercall_page
  - vmx_get_interrupt_shadow
  - vmx_set_interrupt_shadow
  - vmx_get_nonreg_state
  - vmx_set_nonreg_state
  - vmx_load_pdptrs
  - vmx_update_host_cr3
  - vmx_update_guest_cr
  - vmx_update_guest_efer
  - nvmx_enqueue_n2_exceptions
  - nvmx_vmexit_event
  - __vmx_inject_exception
  - vmx_inject_extint
  - vmx_inject_nmi
  - vmx_inject_event
  - vmx_event_pending
  - vmx_set_info_guest
  - vmx_update_eoi_exit_bitmap
  - set_svi
  - vmx_process_isr
  - __vmx_deliver_posted_interrupt
  - vmx_deliver_posted_intr
  - vmx_sync_pir_to_irr
  - vmx_test_pir
  - vmx_handle_eoi
  - vmx_enable_msr_interception
  - vmx_vcpu_update_eptp
  - vmx_vcpu_update_vmfunc_ve
  - vmx_vcpu_emulate_vmfunc
  - vmx_vcpu_emulate_ve
  - vmx_get_pending_event
  - vmtrace_get_option
  - vmtrace_set_option
  - vmtrace_control
  - vmtrace_output_position
  - vmtrace_reset
  - vmx_get_reg
  - vmx_set_reg
  - pi_wakeup_interrupt
  - pi_notification_interrupt
  - has_if_pschange_mc
  - start_vmx
  - vmx_fill_funcs
  - get_instruction_length
  - update_guest_eip
  - vmx_fpu_dirty_intercept
  - vmx_dr_access
  - vmx_invlpg_intercept
  - vmx_invlpg
  - vmx_vmfunc_intercept
  - vmx_cr_access
  - lbr_tsx_fixup_check
  - ler_to_fixup_check
  - is_last_branch_msr
  - vmx_msr_read_intercept
  - vmx_alloc_vlapic_mapping
  - vmx_free_vlapic_mapping
  - vmx_install_vlapic_mapping
  - vmx_vlapic_msr_changed
  - vmx_msr_write_intercept
  - vmx_do_extint
  - vmx_wbinvd_intercept
  - ept_handle_violation
  - vmx_failed_vmentry
  - vmx_enter_realmode
  - vmx_handle_eoi_write
  - vmx_propagate_intr
  - vmx_idtv_reinject
  - vmx_handle_xsaves
  - vmx_handle_xrstors
  - vmx_handle_descriptor_access
  - vmx_handle_apic_write
  - undo_nmis_unblocked_by_iret
  - vmx_vmexit_handler
  - lbr_tsx_fixup
  - sign_extend_msr
  - ler_to_fixup
  - lbr_fixup
  - vmx_vmenter_helper
  source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PI_CSW_FROM
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: PI_CSW_TO
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: rm_cs_attr
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: '0x9b'
    - item_type: preproc_def
      name: rm_ds_attr
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: '0x93'
    - item_type: preproc_def
      name: vm86_ds_attr
      pos:
        line_end: 1242
        line_start: 1241
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: '0xf3'
    - item_type: preproc_def
      name: vm86_tr_attr
      pos:
        line_end: 1243
        line_start: 1242
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: '0x8b'
    - item_type: preproc_def
      name: RTIT_CTL_MASK
      pos:
        line_end: 2647
        line_start: 2644
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: "(RTIT_CTL_TRACE_EN | RTIT_CTL_OS | RTIT_CTL_USR | RTIT_CTL_TSC_EN
        | \\\n     RTIT_CTL_DIS_RETC | RTIT_CTL_BRANCH_EN)"
    - item_type: preproc_def
      name: RTIT_STATUS_MASK
      pos:
        line_end: 2655
        line_start: 2652
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: "(RTIT_STATUS_FILTER_EN | RTIT_STATUS_CONTEXT_EN | RTIT_STATUS_TRIGGER_EN
        | \\\n     RTIT_STATUS_ERROR | RTIT_STATUS_STOPPED)"
    - item_type: preproc_def
      name: LBR_FROM_SIGNEXT_2MSB
      pos:
        line_end: 3405
        line_start: 3404
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: ((1ULL << 59) | (1ULL << 60))
    - item_type: preproc_def
      name: LBR_MSRS_INSERTED
      pos:
        line_end: 3407
        line_start: 3406
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (1u << 0)
    - item_type: preproc_def
      name: LBR_FIXUP_TSX
      pos:
        line_end: 3408
        line_start: 3407
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (1u << 1)
    - item_type: preproc_def
      name: LBR_FIXUP_LER_TO
      pos:
        line_end: 3409
        line_start: 3408
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: LBR_FIXUP_MASK
      pos:
        line_end: 3410
        line_start: 3409
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
      type_or_value: (LBR_FIXUP_TSX | LBR_FIXUP_LER_TO)
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: lock
        type: spinlock_t
      item_type: struct
      name: vmx_pi_blocking_vcpu
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    - fields:
      - name: base
        type: u32
      item_type: struct
      name: lbr_info
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    - fields:
      - name: gpa
        type: uint64_t
      - name: mfn
        type: uint64_t
      - name: qualification
        type: u32
      - name: p2mt
        type: u32
      item_type: struct
      name: _d
      pos:
        line_end: 3972
        line_start: 3967
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    typedefs: []
    union:
    - fields:
      - name: _ul[X86_IDT_VECTORS / BITS_PER_LONG]
        type: unsigned long
      - name: _32[X86_IDT_VECTORS / (sizeof(uint32_t) * 8)]
        type: uint32_t
      item_type: union
      name: vec
      pos:
        line_end: 2407
        line_start: 2404
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
    - fields:
      - name: raw
        type: unsigned long
      item_type: union
      name: io_qual
      pos:
        line_end: 4787
        line_start: 4776
        source_file: /src/xen/xen/arch/x86/hvm/vmx/vmx.c
- function_names:
  - realmode_deliver_exception
  - vmx_realmode_emulate_one
  - vmx_realmode
  source_file: /src/xen/xen/arch/x86/hvm/vmx/realmode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - svm_inject_nmi
  - svm_inject_extint
  - svm_enable_intr_window
  - svm_intr_assist
  source_file: /src/xen/xen/arch/x86/hvm/svm/intr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_vmcb
  - free_vmcb
  - construct_vmcb
  - svm_create_vmcb
  - svm_destroy_vmcb
  - svm_dump_sel
  - svm_vmcb_dump
  - svm_vmcb_isvalid
  - PRINTF
  - vmcb_dump
  - for_each_domain
  - for_each_vcpu
  - setup_vmcb_dump
  - build_assertions
  source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nestedsvm_vcpu_clgi
  - nestedsvm_vcpu_stgi
  - nestedsvm_vmcb_map
  - nsvm_vcpu_initialise
  - nsvm_vcpu_destroy
  - nsvm_vcpu_reset
  - nestedsvm_fpu_vmentry
  - nestedsvm_fpu_vmexit
  - nsvm_vcpu_hostsave
  - nsvm_vcpu_hostrestore
  - nsvm_vmrun_permissionmap
  - nestedsvm_vmcb_set_nestedp2m
  - nsvm_vmcb_prepare4vmrun
  - nsvm_vcpu_vmentry
  - nsvm_vcpu_vmrun
  - nsvm_vcpu_vmexit_inject
  - nsvm_vcpu_vmexit_event
  - nsvm_vcpu_hostcr3
  - nsvm_vmcb_guest_intercepts_msr
  - nsvm_vmcb_guest_intercepts_ioio
  - nsvm_vmcb_guest_intercepts_exitcode
  - nsvm_vmcb_guest_intercepts_event
  - nsvm_vmcb_prepare4vmexit
  - nsvm_vmcb_hap_enabled
  - nsvm_hap_walk_L1_p2m
  - nsvm_intr_blocked
  - nestedsvm_vmexit_defer
  - nestedsvm_check_intercepts
  - nestedsvm_vmexit_n2n1
  - nestedsvm_vcpu_vmexit
  - nsvm_vcpu_switch
  - nestedsvm_vcpu_interrupt
  - nestedsvm_gif_isset
  - svm_vmexit_do_stgi
  - svm_vmexit_do_clgi
  - svm_nested_features_on_efer_update
  - start_nested_svm
  source_file: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSVM_ERROR_VVMCB
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: NSVM_ERROR_VMENTRY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedsvm.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_nestedsvm
  - nsvm_efer_svm_enabled
  source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: hvm_intblk_svm_gif
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
      type_or_value: hvm_intblk_arch
    - item_type: preproc_def
      name: NSVM_INTR_NOTHANDLED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NSVM_INTR_NOTINTERCEPTED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NSVM_INTR_FORCEVMEXIT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NSVM_INTR_MASKED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/hvm/svm/nestedhvm.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - svm_nextrip_insn_length
  - svm_get_insn_len
  - svm_get_task_switch_insn_len
  source_file: /src/xen/xen/arch/x86/hvm/svm/emulate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - svm_vmload_pa
  - svm_vmsave_pa
  - svm_invlpga
  - INSTR_ENC
  source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
  types:
    enum:
    - enumerators:
      - name: vmcb_in_sync
      - name: vmcb_needs_vmload
      - name: vmcb_needs_vmsave
      item_type: enum
      name: vmcb_sync_state
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
    preproc_defs:
    - item_type: preproc_def
      name: INSTR_PAUSE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC_F3(0, 0x90), 0)
    - item_type: preproc_def
      name: INSTR_INT3
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(   0, 0xcc), 0)
    - item_type: preproc_def
      name: INSTR_ICEBP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(   0, 0xf1), 0)
    - item_type: preproc_def
      name: INSTR_HLT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(   0, 0xf4), 0)
    - item_type: preproc_def
      name: INSTR_XSETBV
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0321) '
    - item_type: preproc_def
      name: INSTR_VMRUN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0330) '
    - item_type: preproc_def
      name: INSTR_VMCALL
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0331) '
    - item_type: preproc_def
      name: INSTR_VMLOAD
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0332) '
    - item_type: preproc_def
      name: INSTR_VMSAVE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0333) '
    - item_type: preproc_def
      name: INSTR_STGI
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0334) '
    - item_type: preproc_def
      name: INSTR_CLGI
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0335) '
    - item_type: preproc_def
      name: INSTR_INVLPGA
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0337) '
    - item_type: preproc_def
      name: INSTR_RDTSCP
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 'INSTR_ENC(X86EMUL_OPC(0x0f, 0x01), 0371) '
    - item_type: preproc_def
      name: INSTR_INVD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0x08), 0)
    - item_type: preproc_def
      name: INSTR_WBINVD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0x09), 0)
    - item_type: preproc_def
      name: INSTR_WRMSR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0x30), 0)
    - item_type: preproc_def
      name: INSTR_RDTSC
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0x31), 0)
    - item_type: preproc_def
      name: INSTR_RDMSR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0x32), 0)
    - item_type: preproc_def
      name: INSTR_CPUID
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: INSTR_ENC(X86EMUL_OPC(0x0f, 0xa2), 0)
    - item_type: preproc_def
      name: DEFAULT_TSC_RATIO
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 0x0000000100000000ULL
    - item_type: preproc_def
      name: TSC_RATIO_RSVD_BITS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: 0xffffff0000000000ULL
    - item_type: preproc_def
      name: _NPT_PFEC_with_gla
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NPT_PFEC_with_gla
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: (1UL<<_NPT_PFEC_with_gla)
    - item_type: preproc_def
      name: _NPT_PFEC_in_gpt
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: '33'
    - item_type: preproc_def
      name: NPT_PFEC_in_gpt
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.h
      type_or_value: (1UL<<_NPT_PFEC_in_gpt)
    structs: []
    typedefs: []
    union: []
- function_names:
  - svm_crash_or_fault
  - __update_guest_eip
  - svm_cpu_down
  - svm_fpu_enter
  - svm_fpu_leave
  - svm_update_guest_cr
  - svm_update_guest_efer
  - svm_msrbit
  - svm_intercept_msr
  - svm_enable_msr_interception
  - svm_save_dr
  - __restore_debug_registers
  - svm_restore_dr
  - svm_vmcb_save
  - svm_vmcb_restore
  - svm_save_cpu_state
  - svm_load_cpu_state
  - svm_save_vmcb_ctxt
  - svm_load_vmcb_ctxt
  - svm_get_interrupt_shadow
  - svm_set_interrupt_shadow
  - svm_guest_x86_mode
  - svm_cpuid_policy_changed
  - svm_sync_vmcb
  - svm_get_cpl
  - svm_get_segment_register
  - svm_set_segment_register
  - svm_set_guest_pat
  - svm_get_guest_pat
  - svm_set_tsc_offset
  - svm_set_rdtsc_exiting
  - svm_set_descriptor_access_exiting
  - svm_get_insn_bytes
  - svm_init_hypercall_page
  - svm_tsc_ratio_save
  - svm_tsc_ratio_load
  - svm_ctxt_switch_from
  - svm_ctxt_switch_to
  - svm_do_resume
  - svm_vmenter_helper
  - svm_guest_osvw_init
  - svm_host_osvw_reset
  - svm_host_osvw_init
  - acpi_c1e_quirk
  - svm_domain_initialise
  - svm_vcpu_initialise
  - svm_vcpu_destroy
  - svm_emul_swint_injection
  - svm_inject_event
  - svm_event_pending
  - svm_cpu_dead
  - svm_cpu_up_prepare
  - svm_init_erratum_383
  - svm_load_segs_prefetch
  - svm_load_segs
  - _svm_cpu_up
  - svm_cpu_up
  - svm_do_nested_pgfault
  - svm_fpu_dirty_intercept
  - svm_vmexit_do_cr_access
  - svm_dr_access
  - svm_msr_read_intercept
  - svm_msr_write_intercept
  - svm_do_msr_access
  - svm_vmexit_do_hlt
  - svm_vmexit_do_rdtsc
  - svm_vmexit_do_pause
  - svm_vmexit_do_vmrun
  - nsvm_get_nvmcb_page
  - svm_vmexit_do_vmload
  - svm_vmexit_do_vmsave
  - svm_is_erratum_383
  - svm_vmexit_mce_intercept
  - svm_wbinvd_intercept
  - svm_vmexit_do_invalidate_cache
  - svm_invlpga_intercept
  - svm_invlpg_intercept
  - is_invlpg
  - svm_invlpg
  - svm_get_pending_event
  - svm_get_reg
  - svm_set_reg
  - start_svm
  - P
  - svm_fill_funcs
  - svm_vmexit_handler
  - E2D
  source_file: /src/xen/xen/arch/x86/hvm/svm/svm.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: a
        type: uint32_t
      item_type: struct
      name: idte = {}
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.c
    - fields:
      - name: gpa
        type: uint64_t
      - name: mfn
        type: uint64_t
      - name: qualification
        type: uint32_t
      - name: p2mt
        type: uint32_t
      item_type: struct
      name: _d
      pos:
        line_end: 1644
        line_start: 1639
        source_file: /src/xen/xen/arch/x86/hvm/svm/svm.c
    typedefs: []
    union: []
- function_names:
  - VMCB_ACCESSORS_
  - VMCB_ACCESSORS
  source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
  types:
    enum:
    - enumerators:
      - name: GENERAL1_INTERCEPT_INIT
        value: 1 << 3
      - name: GENERAL1_INTERCEPT_GDTR_READ
        value: 1 << 7
      - name: GENERAL1_INTERCEPT_GDTR_WRITE
        value: 1 << 11
      - name: GENERAL1_INTERCEPT_RDPMC
        value: 1 << 15
      - name: GENERAL1_INTERCEPT_SWINT
        value: 1 << 21
      - name: GENERAL1_INTERCEPT_INVLPG
        value: 1 << 25
      - name: GENERAL1_INTERCEPT_TASK_SWITCH
        value: 1 << 29
      - name: GENERAL1_INTERCEPT_VINTR
        value: 1 << 4
      - name: GENERAL1_INTERCEPT_LDTR_READ
        value: 1 << 8
      - name: GENERAL1_INTERCEPT_LDTR_WRITE
        value: 1 << 12
      - name: GENERAL1_INTERCEPT_CPUID
        value: 1 << 18
      - name: GENERAL1_INTERCEPT_PUSHF
        value: 1 << 16
      - name: GENERAL1_INTERCEPT_INVD
        value: 1 << 22
      - name: GENERAL1_INTERCEPT_INVLPGA
        value: 1 << 26
      - name: GENERAL1_INTERCEPT_FERR_FREEZE
        value: 1 << 30
      - name: GENERAL1_INTERCEPT_INTR
        value: 1 << 0
      - name: GENERAL1_INTERCEPT_NMI
        value: 1 << 1
      - name: GENERAL1_INTERCEPT_CR0_SEL_WRITE
        value: 1 << 5
      - name: GENERAL1_INTERCEPT_TR_READ
        value: 1 << 9
      - name: GENERAL1_INTERCEPT_POPF
        value: 1 << 17
      - name: GENERAL1_INTERCEPT_TR_WRITE
        value: 1 << 13
      - name: GENERAL1_INTERCEPT_RSM
        value: 1 << 19
      - name: GENERAL1_INTERCEPT_PAUSE
        value: 1 << 23
      - name: GENERAL1_INTERCEPT_IOIO_PROT
        value: 1 << 27
      - name: GENERAL1_INTERCEPT_SHUTDOWN_EVT
        value: 1u << 31
      - name: GENERAL1_INTERCEPT_SMI
        value: 1 << 2
      - name: GENERAL1_INTERCEPT_IDTR_READ
        value: 1 << 6
      - name: GENERAL1_INTERCEPT_RDTSC
        value: 1 << 14
      - name: GENERAL1_INTERCEPT_IDTR_WRITE
        value: 1 << 10
      - name: GENERAL1_INTERCEPT_IRET
        value: 1 << 20
      - name: GENERAL1_INTERCEPT_HLT
        value: 1 << 24
      - name: GENERAL1_INTERCEPT_MSR_PROT
        value: 1 << 28
      item_type: enum
      name: GenericIntercept1bits
      pos:
        line_end: 44
        line_start: 10
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - enumerators:
      - name: GENERAL2_INTERCEPT_VMRUN
        value: 1 << 0
      - name: GENERAL2_INTERCEPT_VMMCALL
        value: 1 << 1
      - name: GENERAL2_INTERCEPT_STGI
        value: 1 << 4
      - name: GENERAL2_INTERCEPT_VMSAVE
        value: 1 << 3
      - name: GENERAL2_INTERCEPT_VMLOAD
        value: 1 << 2
      - name: GENERAL2_INTERCEPT_CLGI
        value: 1 << 5
      - name: GENERAL2_INTERCEPT_SKINIT
        value: 1 << 6
      - name: GENERAL2_INTERCEPT_RDTSCP
        value: 1 << 7
      - name: GENERAL2_INTERCEPT_ICEBP
        value: 1 << 8
      - name: GENERAL2_INTERCEPT_WBINVD
        value: 1 << 9
      - name: GENERAL2_INTERCEPT_MWAIT
        value: 1 << 11
      - name: GENERAL2_INTERCEPT_XSETBV
        value: 1 << 13
      - name: GENERAL2_INTERCEPT_RDPRU
        value: 1 << 14
      - name: GENERAL2_INTERCEPT_MWAIT_CONDITIONAL
        value: 1 << 12
      - name: GENERAL2_INTERCEPT_MONITOR
        value: 1 << 10
      item_type: enum
      name: GenericIntercept2bits
      pos:
        line_end: 63
        line_start: 46
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - enumerators:
      - name: GENERAL3_INTERCEPT_BUS_LOCK
        value: 1 << 5
      item_type: enum
      name: GenericIntercept3bits
      pos:
        line_end: 68
        line_start: 65
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - enumerators:
      - name: CR_INTERCEPT_CR2_READ
        value: 1 << 2
      - name: CR_INTERCEPT_CR4_READ
        value: 1 << 4
      - name: CR_INTERCEPT_CR8_READ
        value: 1 << 8
      - name: CR_INTERCEPT_CR12_READ
        value: 1 << 12
      - name: CR_INTERCEPT_CR0_WRITE
        value: 1 << 16
      - name: CR_INTERCEPT_CR4_WRITE
        value: 1 << 20
      - name: CR_INTERCEPT_CR8_WRITE
        value: 1 << 24
      - name: CR_INTERCEPT_CR12_WRITE
        value: 1 << 28
      - name: CR_INTERCEPT_CR5_READ
        value: 1 << 5
      - name: CR_INTERCEPT_CR9_READ
        value: 1 << 9
      - name: CR_INTERCEPT_CR1_WRITE
        value: 1 << 17
      - name: CR_INTERCEPT_CR13_READ
        value: 1 << 13
      - name: CR_INTERCEPT_CR5_WRITE
        value: 1 << 21
      - name: CR_INTERCEPT_CR9_WRITE
        value: 1 << 25
      - name: CR_INTERCEPT_CR13_WRITE
        value: 1 << 29
      - name: CR_INTERCEPT_CR6_READ
        value: 1 << 6
      - name: CR_INTERCEPT_CR10_READ
        value: 1 << 10
      - name: CR_INTERCEPT_CR2_WRITE
        value: 1 << 18
      - name: CR_INTERCEPT_CR14_READ
        value: 1 << 14
      - name: CR_INTERCEPT_CR6_WRITE
        value: 1 << 22
      - name: CR_INTERCEPT_CR10_WRITE
        value: 1 << 26
      - name: CR_INTERCEPT_CR14_WRITE
        value: 1 << 30
      - name: CR_INTERCEPT_CR0_READ
        value: 1 << 0
      - name: CR_INTERCEPT_CR3_READ
        value: 1 << 3
      - name: CR_INTERCEPT_CR1_READ
        value: 1 << 1
      - name: CR_INTERCEPT_CR7_READ
        value: 1 << 7
      - name: CR_INTERCEPT_CR15_READ
        value: 1 << 15
      - name: CR_INTERCEPT_CR11_READ
        value: 1 << 11
      - name: CR_INTERCEPT_CR3_WRITE
        value: 1 << 19
      - name: CR_INTERCEPT_CR7_WRITE
        value: 1 << 23
      - name: CR_INTERCEPT_CR11_WRITE
        value: 1 << 27
      - name: CR_INTERCEPT_CR15_WRITE
        value: 1u << 31
      item_type: enum
      name: CRInterceptBits
      pos:
        line_end: 104
        line_start: 70
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - enumerators:
      - name: DR_INTERCEPT_DR0_READ
        value: 1 << 0
      - name: DR_INTERCEPT_DR1_READ
        value: 1 << 1
      - name: DR_INTERCEPT_DR7_READ
        value: 1 << 7
      - name: DR_INTERCEPT_DR15_READ
        value: 1 << 15
      - name: DR_INTERCEPT_DR11_READ
        value: 1 << 11
      - name: DR_INTERCEPT_DR3_WRITE
        value: 1 << 19
      - name: DR_INTERCEPT_DR7_WRITE
        value: 1 << 23
      - name: DR_INTERCEPT_DR11_WRITE
        value: 1 << 27
      - name: DR_INTERCEPT_DR15_WRITE
        value: 1u << 31
      - name: DR_INTERCEPT_DR4_READ
        value: 1 << 4
      - name: DR_INTERCEPT_DR2_READ
        value: 1 << 2
      - name: DR_INTERCEPT_DR8_READ
        value: 1 << 8
      - name: DR_INTERCEPT_DR12_READ
        value: 1 << 12
      - name: DR_INTERCEPT_DR0_WRITE
        value: 1 << 16
      - name: DR_INTERCEPT_DR4_WRITE
        value: 1 << 20
      - name: DR_INTERCEPT_DR8_WRITE
        value: 1 << 24
      - name: DR_INTERCEPT_DR12_WRITE
        value: 1 << 28
      - name: DR_INTERCEPT_DR3_READ
        value: 1 << 3
      - name: DR_INTERCEPT_DR5_READ
        value: 1 << 5
      - name: DR_INTERCEPT_DR9_READ
        value: 1 << 9
      - name: DR_INTERCEPT_DR13_READ
        value: 1 << 13
      - name: DR_INTERCEPT_DR1_WRITE
        value: 1 << 17
      - name: DR_INTERCEPT_DR5_WRITE
        value: 1 << 21
      - name: DR_INTERCEPT_DR9_WRITE
        value: 1 << 25
      - name: DR_INTERCEPT_DR13_WRITE
        value: 1 << 29
      - name: DR_INTERCEPT_DR6_READ
        value: 1 << 6
      - name: DR_INTERCEPT_DR10_READ
        value: 1 << 10
      - name: DR_INTERCEPT_DR14_READ
        value: 1 << 14
      - name: DR_INTERCEPT_DR2_WRITE
        value: 1 << 18
      - name: DR_INTERCEPT_DR6_WRITE
        value: 1 << 22
      - name: DR_INTERCEPT_DR10_WRITE
        value: 1 << 26
      - name: DR_INTERCEPT_DR14_WRITE
        value: 1 << 30
      item_type: enum
      name: DRInterceptBits
      pos:
        line_end: 140
        line_start: 106
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - enumerators:
      - name: VMEXIT_EXCEPTION_15
        value: '79'
      - name: VMEXIT_INIT
        value: '99'
      - name: VMEXIT_VMSAVE
        value: '131'
      - name: VMEXIT_CR12_WRITE
        value: '28'
      - name: VMEXIT_EXCEPTION_SS
        value: '76'
      - name: VMEXIT_EXCEPTION_OF
        value: '68'
      - name: VMEXIT_CR7_READ
        value: '7'
      - name: VMEXIT_DR12_READ
        value: '44'
      - name: VMEXIT_CR4_WRITE
        value: '20'
      - name: VMEXIT_DR12_WRITE
        value: '60'
      - name: VMEXIT_DR4_READ
        value: '36'
      - name: VMEXIT_DR4_WRITE
        value: '52'
      - name: VMEXIT_EXCEPTION_CP
        value: '85'
      - name: VMEXIT_NMI
        value: '97'
      - name: VMEXIT_IRET
        value: '116'
      - name: VMEXIT_IDTR_WRITE
        value: '106'
      - name: VMEXIT_MONITOR
        value: '138'
      - name: VMEXIT_TASK_SWITCH
        value: '125'
      - name: VMEXIT_EXCEPTION_PF
        value: '78'
      - name: VMEXIT_DR7_READ
        value: '39'
      - name: VMEXIT_DR7_WRITE
        value: '55'
      - name: VMEXIT_CR15_WRITE
        value: '31'
      - name: VMEXIT_EXCEPTION_NM
        value: '71'
      - name: VMEXIT_DR15_READ
        value: '47'
      - name: VMEXIT_CR2_READ
        value: '2'
      - name: VMEXIT_CR10_READ
        value: '10'
      - name: VMEXIT_CR15_READ
        value: '15'
      - name: VMEXIT_CR7_WRITE
        value: '23'
      - name: VMEXIT_DR15_WRITE
        value: '63'
      - name: VMEXIT_INTR
        value: '96'
      - name: VMEXIT_RSM
        value: '115'
      - name: VMEXIT_TR_READ
        value: '105'
      - name: VMEXIT_WBINVD
        value: '137'
      - name: VMEXIT_MSR
        value: '124'
      - name: VMEXIT_DR2_WRITE
        value: '50'
      - name: VMEXIT_CR10_WRITE
        value: '26'
      - name: VMEXIT_CR5_READ
        value: '5'
      - name: VMEXIT_CR13_READ
        value: '13'
      - name: VMEXIT_CR2_WRITE
        value: '18'
      - name: VMEXIT_EXCEPTION_NMI
        value: '66'
      - name: VMEXIT_DR10_READ
        value: '42'
      - name: VMEXIT_DR10_WRITE
        value: '58'
      - name: VMEXIT_DR2_READ
        value: '34'
      - name: VMEXIT_EXCEPTION_TS
        value: '74'
      - name: VMEXIT_INVALID
        value: '-1'
      - name: VMEXIT_ICEBP
        value: '136'
      - name: VMEXIT_CPUID
        value: '114'
      - name: VMEXIT_LDTR_READ
        value: '104'
      - name: VMEXIT_IOIO
        value: '123'
      - name: VMEXIT_DR13_WRITE
        value: '61'
      - name: VMEXIT_DR5_READ
        value: '37'
      - name: VMEXIT_DR5_WRITE
        value: '53'
      - name: VMEXIT_CR13_WRITE
        value: '29'
      - name: VMEXIT_EXCEPTION_BR
        value: '69'
      - name: VMEXIT_CR0_READ
        value: '0'
      - name: VMEXIT_CR8_READ
        value: '8'
      - name: VMEXIT_DR13_READ
        value: '45'
      - name: VMEXIT_CR5_WRITE
        value: '21'
      - name: VMEXIT_EXCEPTION_GP
        value: '77'
      - name: VMEXIT_VMLOAD
        value: '130'
      - name: VMEXIT_INVLPG
        value: '121'
      - name: VMEXIT_GDTR_READ
        value: '103'
      - name: VMEXIT_RDTSCP
        value: '135'
      - name: VMEXIT_NPF
        value: '1024'
      - name: VMEXIT_POPF
        value: '113'
      - name: VMEXIT_INVLPGA
        value: '122'
      - name: VMEXIT_DR0_WRITE
        value: '48'
      - name: VMEXIT_CR8_WRITE
        value: '24'
      - name: VMEXIT_CR3_READ
        value: '3'
      - name: VMEXIT_CR11_READ
        value: '11'
      - name: VMEXIT_CR0_WRITE
        value: '16'
      - name: VMEXIT_EXCEPTION_DE
        value: '64'
      - name: VMEXIT_DR8_READ
        value: '40'
      - name: VMEXIT_DR8_WRITE
        value: '56'
      - name: VMEXIT_DR0_READ
        value: '32'
      - name: VMEXIT_EXCEPTION_DF
        value: '72'
      - name: VMEXIT_VMMCALL
        value: '129'
      - name: VMEXIT_EXCEPTION_MC
        value: '82'
      - name: VMEXIT_PUSHF
        value: '112'
      - name: VMEXIT_IDTR_READ
        value: '102'
      - name: VMEXIT_SKINIT
        value: '134'
      - name: VMEXIT_BUS_LOCK
        value: '165'
      - name: VMEXIT_DR11_WRITE
        value: '59'
      - name: VMEXIT_DR3_READ
        value: '35'
      - name: VMEXIT_EXCEPTION_NP
        value: '75'
      - name: VMEXIT_DR3_WRITE
        value: '51'
      - name: VMEXIT_CR11_WRITE
        value: '27'
      - name: VMEXIT_EXCEPTION_BP
        value: '67'
      - name: VMEXIT_CR6_READ
        value: '6'
      - name: VMEXIT_CR3_WRITE
        value: '19'
      - name: VMEXIT_DR11_READ
        value: '43'
      - name: VMEXIT_EXCEPTION_XF
        value: '83'
      - name: VMEXIT_TR_WRITE
        value: '109'
      - name: VMEXIT_PAUSE
        value: '119'
      - name: VMEXIT_VMRUN
        value: '128'
      - name: VMEXIT_XSETBV
        value: '141'
      - name: VMEXIT_VINTR
        value: '100'
      - name: VMEXIT_EXCEPTION_AC
        value: '81'
      - name: VMEXIT_RDPMC
        value: '111'
      - name: VMEXIT_CR0_SEL_WRITE
        value: '101'
      - name: VMEXIT_CLGI
        value: '133'
      - name: VMEXIT_HLT
        value: '120'
      - name: VMEXIT_RDPRU
        value: '142'
      - name: VMEXIT_EXCEPTION_UD
        value: '70'
      - name: VMEXIT_DR14_READ
        value: '46'
      - name: VMEXIT_CR1_READ
        value: '1'
      - name: VMEXIT_CR9_READ
        value: '9'
      - name: VMEXIT_CR14_READ
        value: '14'
      - name: VMEXIT_CR6_WRITE
        value: '22'
      - name: VMEXIT_DR14_WRITE
        value: '62'
      - name: VMEXIT_DR6_READ
        value: '38'
      - name: VMEXIT_DR6_WRITE
        value: '54'
      - name: VMEXIT_CR14_WRITE
        value: '30'
      - name: VMEXIT_MWAIT_CONDITIONAL
        value: '140'
      - name: VMEXIT_INVD
        value: '118'
      - name: VMEXIT_LDTR_WRITE
        value: '108'
      - name: VMEXIT_SHUTDOWN
        value: '127'
      - name: VMEXIT_EXCEPTION_MF
        value: '80'
      - name: VMEXIT_STGI
        value: '132'
      - name: VMEXIT_RDTSC
        value: '110'
      - name: VMEXIT_DR9_READ
        value: '41'
      - name: VMEXIT_CR9_WRITE
        value: '25'
      - name: VMEXIT_DR1_READ
        value: '33'
      - name: VMEXIT_EXCEPTION_09
        value: '73'
      - name: VMEXIT_DR9_WRITE
        value: '57'
      - name: VMEXIT_DR1_WRITE
        value: '49'
      - name: VMEXIT_CR4_READ
        value: '4'
      - name: VMEXIT_CR12_READ
        value: '12'
      - name: VMEXIT_CR1_WRITE
        value: '17'
      - name: VMEXIT_EXCEPTION_DB
        value: '65'
      - name: VMEXIT_SMI
        value: '98'
      - name: VMEXIT_GDTR_WRITE
        value: '107'
      - name: VMEXIT_MWAIT
        value: '139'
      - name: VMEXIT_SWINT
        value: '117'
      - name: VMEXIT_FERR_FREEZE
        value: '126'
      item_type: enum
      name: VMEXIT_EXITCODE
      pos:
        line_end: 295
        line_start: 142
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    preproc_defs:
    - item_type: preproc_def
      name: IOPM_SIZE
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
      type_or_value: (12 * 1024)
    - item_type: preproc_def
      name: MSRPM_SIZE
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
      type_or_value: (8  * 1024)
    structs:
    - fields:
      - name: _cr_intercepts
        type: u32
      - name: _dr_intercepts
        type: u32
      - name: _exception_intercepts
        type: u32
      - name: _general1_intercepts
        type: u32
      - name: _general2_intercepts
        type: u32
      - name: _general3_intercepts
        type: u32
      - name: res01[9]
        type: u32
      - name: _pause_filter_thresh
        type: u16
      - name: _pause_filter_count
        type: u16
      - name: _iopm_base_pa
        type: u64
      - name: _msrpm_base_pa
        type: u64
      - name: _tsc_offset
        type: u64
      - name: _asid
        type: u32
      - name: tlb_control
        type: u8
      - name: res07[3]
        type: u8
      - name: _vintr
        type: vintr_t
      - name: int_stat
        type: intstat_t
      - name: exitcode
        type: u64
      - name: exit_int_info
        type: intinfo_t
      - name: res08[2]
        type: u64
      - name: event_inj
        type: intinfo_t
      - name: _h_cr3
        type: u64
      - name: virt_ext
        type: virt_ext_t
      - name: cleanbits
        type: vmcbcleanbits_t
      - name: res09
        type: u32
      - name: nextrip
        type: u64
      - name: guest_ins_len
        type: u8
      - name: guest_ins[15]
        type: u8
      - name: res10a[8]
        type: u64
      - name: bus_lock_count
        type: u16
      - name: res10b[3]
        type: u16
      - name: res10c[91]
        type: u64
      - name: gdtr
        type: struct segment_register
      - name: ldtr
        type: struct segment_register
      - name: idtr
        type: struct segment_register
      - name: tr
        type: struct segment_register
      - name: res10[5]
        type: u64
      - name: res11[3]
        type: u8
      - name: _cpl
        type: u8
      - name: res12
        type: u32
      - name: _efer
        type: u64
      - name: res13[14]
        type: u64
      - name: _cr4
        type: u64
      - name: _cr3
        type: u64
      - name: _cr0
        type: u64
      - name: _dr7
        type: u64
      - name: _dr6
        type: u64
      - name: rflags
        type: u64
      - name: rip
        type: u64
      - name: res14[11]
        type: u64
      - name: rsp
        type: u64
      - name: _msr_s_cet
        type: u64
      - name: _ssp
        type: u64
      - name: _msr_isst
        type: u64
      - name: rax
        type: u64
      - name: star
        type: u64
      - name: lstar
        type: u64
      - name: cstar
        type: u64
      - name: sfmask
        type: u64
      - name: kerngsbase
        type: u64
      - name: sysenter_cs
        type: u64
      - name: sysenter_esp
        type: u64
      - name: sysenter_eip
        type: u64
      - name: _cr2
        type: u64
      - name: res16[4]
        type: u64
      - name: _g_pat
        type: u64
      - name: _debugctlmsr
        type: u64
      - name: _lastbranchfromip
        type: u64
      - name: _lastbranchtoip
        type: u64
      - name: _lastintfromip
        type: u64
      - name: _lastinttoip
        type: u64
      - name: res17[9]
        type: u64
      - name: spec_ctrl
        type: u64
      - name: res18[291]
        type: u64
      item_type: struct
      name: vmcb_struct
      pos:
        line_end: 556
        line_start: 405
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    typedefs: []
    union:
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: intinfo_t
      pos:
        line_end: 320
        line_start: 308
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: intstat_t
      pos:
        line_end: 328
        line_start: 322
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - fields:
      - name: bytes
        type: u64
      - name: fields
        type: "struct\n    {\n        u64 tpr:          8;\n        u64 irq:          1;\n
          \       u64 vgif:         1;\n        u64 :             1;\n        u64
          vnmi_pending: 1;\n        u64 vnmi_blocking:1;\n        u64 :             3;\n
          \       u64 prio:         4;\n        u64 ign_tpr:      1;\n        u64
          rsvd1:        3;\n        u64 intr_masking: 1;\n        u64 vgif_enable:
          \ 1;\n        u64 vnmi_enable:  1;\n        u64 :             5;\n        u64
          vector:       8;\n        u64 rsvd3:       24;\n    }"
      item_type: union
      name: vintr_t
      pos:
        line_end: 352
        line_start: 330
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - fields:
      - name: bytes
        type: u64
      - name: fields
        type: "struct\n    {\n        u64 type: 1;\n        u64 rsv0: 1;\n        u64
          str:  1;\n        u64 rep:  1;\n        u64 sz8:  1;\n        u64 sz16:
          1;\n        u64 sz32: 1;\n        u64 rsv1: 9;\n        u64 port: 16;\n
          \   }"
      item_type: union
      name: ioio_info_t
      pos:
        line_end: 369
        line_start: 354
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - fields:
      - name: bytes
        type: u64
      - name: fields
        type: "struct\n    {\n        u64 lbr_enable:1;\n        u64 vloadsave_enable:1;\n
          \   }"
      item_type: union
      name: virt_ext_t
      pos:
        line_end: 379
        line_start: 371
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
    - fields:
      - name: raw
        type: uint32_t
      item_type: union
      name: vmcbcleanbits_t
      pos:
        line_end: 400
        line_start: 381
        source_file: /src/xen/xen/arch/x86/hvm/svm/vmcb.h
- function_names:
  - svm_asid_init
  - svm_asid_handle_vmrun
  source_file: /src/xen/xen/arch/x86/hvm/svm/asid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/bzimage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASSERT_INTERRUPT_STATUS
  - _ASM_EX
  - _ASM_EX
  - _ASM_EXTABLE
  - _ASM_EXTABLE
  - BUILD_BUG_ON
  - SUBSECTION_LBL
  - SUBSECTION_LBL
  - UNLIKELY_START
  - UNLIKELY_DISPATCH_LABEL
  - UNLIKELY_DONE
  - __UNLIKELY_END
  - UNLIKELY_END
  - GET_CPUINFO_FIELD
  - GET_CURRENT
  - CPUINFO_FEATURE_OFFSET
  - SUBSECTION_LBL
  - SUBSECTION_LBL
  - UNLIKELY_START
  - UNLIKELY_END
  - clac
  - stac
  - ASM_CONSTANT
  source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASM_CALL_CONSTRAINT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: ', "+r" (current_stack_pointer)'
    - item_type: preproc_def
      name: ASSERT_INTERRUPTS_ENABLED
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: ASSERT_INTERRUPT_STATUS(nz, "INTERRUPTS ENABLED")
    - item_type: preproc_def
      name: ASSERT_INTERRUPTS_DISABLED
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: ASSERT_INTERRUPT_STATUS(z, "INTERRUPTS DISABLED")
    - item_type: preproc_def
      name: call
      pos:
        line_end: 162
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: ASSERT_NOT_IN_ATOMIC
    - item_type: preproc_def
      name: UNLIKELY_START_SECTION
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '".pushsection .text.unlikely,\"ax\""'
    - item_type: preproc_def
      name: UNLIKELY_END_SECTION
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '".popsection"'
    - item_type: preproc_def
      name: UNLIKELY_START_SECTION
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '".subsection 1"'
    - item_type: preproc_def
      name: UNLIKELY_END_SECTION
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '".subsection 0"'
    - item_type: preproc_def
      name: CR4_PV32_RESTORE
      pos:
        line_end: 382
        line_start: 378
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: "ALTERNATIVE_2 \"\",                                  \\\n        \"call
        cr4_pv32_restore\", X86_FEATURE_XEN_SMEP, \\\n        \"call cr4_pv32_restore\",
        X86_FEATURE_XEN_SMAP"
    - item_type: preproc_def
      name: safe_swapgs
      pos:
        line_end: 393
        line_start: 391
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '"mfence; swapgs;"'
    - item_type: preproc_def
      name: p2align
      pos:
        line_end: 402
        line_start: 394
        source_file: /src/xen/xen/arch/x86/include/asm/asm_defns.h
      type_or_value: '2                            ; \

        3:  desc                '
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALT_CALL_PTR
  - ALT_CALL_LEN
  - ALT_CALL_ARG
  - ALT_CALL_ARG
  - ALT_CALL_NO_ARG
  - alternative_callN
  - alternative_vcall0
  - alternative_call0
  - alternative_vcall1
  - alternative_call1
  - alternative_vcall2
  - alternative_call2
  - alternative_vcall3
  - alternative_call3
  - alternative_vcall4
  - alternative_call4
  - alternative_vcall5
  - alternative_call5
  - alternative_vcall6
  - alternative_call6
  - alternative_vcall__
  - alternative_call__
  - alternative_vcall_
  - alternative_call_
  - alternative_vcall
  - alternative_call
  source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALT_CALL_arg1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"rdi"'
    - item_type: preproc_def
      name: ALT_CALL_arg2
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"rsi"'
    - item_type: preproc_def
      name: ALT_CALL_arg3
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"rdx"'
    - item_type: preproc_def
      name: ALT_CALL_arg4
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"rcx"'
    - item_type: preproc_def
      name: ALT_CALL_arg5
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"r8"'
    - item_type: preproc_def
      name: ALT_CALL_arg6
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: '"r9"'
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG6
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(6)
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG5
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(5); ALT_CALL_NO_ARG6
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG4
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(4); ALT_CALL_NO_ARG5
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG3
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(3); ALT_CALL_NO_ARG4
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG2
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(2); ALT_CALL_NO_ARG3
    - item_type: preproc_def
      name: ALT_CALL_NO_ARG1
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: ALT_CALL_NO_ARG(1); ALT_CALL_NO_ARG2
    - item_type: preproc_def
      name: ALT_CALL0_OUT
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"=r\" (a1_), \"=r\" (a2_), \"=r\" (a3_), \\\n                      \"=r\"
        (a4_), \"=r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL1_OUT
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"=r\" (a2_), \"=r\" (a3_), \\\n                      \"=r\"
        (a4_), \"=r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL2_OUT
      pos:
        line_end: 76
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"+r\" (a2_), \"=r\" (a3_), \\\n                      \"=r\"
        (a4_), \"=r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL3_OUT
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"+r\" (a2_), \"+r\" (a3_), \\\n                      \"=r\"
        (a4_), \"=r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL4_OUT
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"+r\" (a2_), \"+r\" (a3_), \\\n                      \"+r\"
        (a4_), \"=r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL5_OUT
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"+r\" (a2_), \"+r\" (a3_), \\\n                      \"+r\"
        (a4_), \"+r\" (a5_), \"=r\" (a6_)"
    - item_type: preproc_def
      name: ALT_CALL6_OUT
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
      type_or_value: "\"+r\" (a1_), \"+r\" (a2_), \"+r\" (a3_), \\\n                      \"+r\"
        (a4_), \"+r\" (a5_), \"+r\" (a6_)"
    structs:
    - fields:
      - name: offset
        type: int32_t
      item_type: struct
      name: alt_call
      pos:
        line_end: 10
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-call.h
    typedefs: []
    union: []
- function_names:
  - PML4_ADDR
  - PERDOMAIN_VIRT_SLOT
  - HYPERVISOR_COMPAT_VIRT_START
  - HYPERVISOR_COMPAT_VIRT_START
  - MACH2PHYS_COMPAT_NR_ENTRIES
  - COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT
  - COMPAT_L2_PAGETABLE_XEN_SLOTS
  - GDT_VIRT_START
  - LDT_VIRT_START
  - ARG_XLAT_START
  source_file: /src/xen/xen/arch/x86/include/asm/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_PAGING_LEVELS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '4'
    - item_type: preproc_def
      name: BITS_PER_XEN_ULONG
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: BITS_PER_LONG
    - item_type: preproc_def
      name: CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_NUMA_EMU
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_PAGEALLOC_MAX_ORDER
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (2 * PAGETABLE_ORDER)
    - item_type: preproc_def
      name: CONFIG_DOMU_MAX_ORDER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PAGETABLE_ORDER
    - item_type: preproc_def
      name: CONFIG_HWDOM_MAX_ORDER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '12'
    - item_type: preproc_def
      name: CONFIG_X86_L1_CACHE_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CONFIG_ACPI_CSTATE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_WATCHDOG
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_MULTIBOOT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HZ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '100'
    - item_type: preproc_def
      name: OPT_CONSOLE_STR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '"vga"'
    - item_type: preproc_def
      name: CODE_FILL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: NR_hypercalls
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: STACK_ORDER
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PAGE_SIZE << STACK_ORDER)
    - item_type: preproc_def
      name: IST_SHSTK_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: PRIMARY_STACK_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: PRIMARY_SHSTK_SLOT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ZERO_BLOCK_PTR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: ((void *)0xBAD0BAD0BAD0BAD0UL)
    - item_type: preproc_def
      name: LIST_POISON1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: ((void *)0x0100100100100100UL)
    - item_type: preproc_def
      name: LIST_POISON2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: ((void *)0x0200200200200200UL)
    - item_type: preproc_def
      name: PML4_ENTRY_BITS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '39'
    - item_type: preproc_def
      name: PML4_ENTRY_BYTES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (_AC(1,UL) << PML4_ENTRY_BITS)
    - item_type: preproc_def
      name: ROOT_PAGETABLE_FIRST_XEN_SLOT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '256'
    - item_type: preproc_def
      name: ROOT_PAGETABLE_LAST_XEN_SLOT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '271'
    - item_type: preproc_def
      name: ROOT_PAGETABLE_XEN_SLOTS
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (L4_PAGETABLE_ENTRIES - ROOT_PAGETABLE_FIRST_XEN_SLOT - 1)
    - item_type: preproc_def
      name: ROOT_PAGETABLE_PV_XEN_SLOTS
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (ROOT_PAGETABLE_LAST_XEN_SLOT - ROOT_PAGETABLE_FIRST_XEN_SLOT
        + 1)
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(256))
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_END
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (HYPERVISOR_VIRT_START + PML4_ENTRY_BYTES*16)
    - item_type: preproc_def
      name: RO_MPT_VIRT_START
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(256))
    - item_type: preproc_def
      name: MPT_VIRT_SIZE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ENTRY_BYTES / 2)
    - item_type: preproc_def
      name: RO_MPT_VIRT_END
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (RO_MPT_VIRT_START + MPT_VIRT_SIZE)
    - item_type: preproc_def
      name: PCI_MCFG_VIRT_START
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(257))
    - item_type: preproc_def
      name: PCI_MCFG_VIRT_END
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PCI_MCFG_VIRT_START + PML4_ENTRY_BYTES)
    - item_type: preproc_def
      name: LINEAR_PT_VIRT_START
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(258))
    - item_type: preproc_def
      name: LINEAR_PT_VIRT_END
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (LINEAR_PT_VIRT_START + PML4_ENTRY_BYTES)
    - item_type: preproc_def
      name: SH_LINEAR_PT_VIRT_START
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(259))
    - item_type: preproc_def
      name: SH_LINEAR_PT_VIRT_END
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (SH_LINEAR_PT_VIRT_START + PML4_ENTRY_BYTES)
    - item_type: preproc_def
      name: PERDOMAIN_VIRT_START
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(260))
    - item_type: preproc_def
      name: PERDOMAIN_SLOT_MBYTES
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ENTRY_BYTES >> (20 + PAGETABLE_ORDER))
    - item_type: preproc_def
      name: PERDOMAIN_SLOTS
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PERDOMAIN_ALT_VIRT_START
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PML4_ADDR(4)
    - item_type: preproc_def
      name: RDWR_MPT_VIRT_START
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(261))
    - item_type: preproc_def
      name: RDWR_MPT_VIRT_END
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (RDWR_MPT_VIRT_START + MPT_VIRT_SIZE)
    - item_type: preproc_def
      name: VMAP_VIRT_START
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: RDWR_MPT_VIRT_END
    - item_type: preproc_def
      name: VMAP_VIRT_END
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (VMAP_VIRT_START + GB(64))
    - item_type: preproc_def
      name: RDWR_COMPAT_MPT_VIRT_START
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: VMAP_VIRT_END
    - item_type: preproc_def
      name: RDWR_COMPAT_MPT_VIRT_END
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (RDWR_COMPAT_MPT_VIRT_START + GB(1))
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: RDWR_COMPAT_MPT_VIRT_END
    - item_type: preproc_def
      name: XEN_VIRT_END
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (XEN_VIRT_START + GB(1))
    - item_type: preproc_def
      name: FRAMETABLE_SIZE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: GB(128)
    - item_type: preproc_def
      name: FRAMETABLE_SIZE
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: GB(1536)
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_END
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: DIRECTMAP_VIRT_START
    - item_type: preproc_def
      name: FRAMETABLE_NR
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (FRAMETABLE_SIZE / sizeof(*frame_table))
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_START
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (FRAMETABLE_VIRT_END - FRAMETABLE_SIZE)
    - item_type: preproc_def
      name: DIRECTMAP_VIRT_START
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(262))
    - item_type: preproc_def
      name: DIRECTMAP_SIZE
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ENTRY_BYTES * (511 - 262))
    - item_type: preproc_def
      name: DIRECTMAP_VIRT_START
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ADDR(265))
    - item_type: preproc_def
      name: DIRECTMAP_SIZE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (PML4_ENTRY_BYTES * (511 - 265))
    - item_type: preproc_def
      name: DIRECTMAP_VIRT_END
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE)
    - item_type: preproc_def
      name: __HYPERVISOR_COMPAT_VIRT_START
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: 0xF5800000U
    - item_type: preproc_def
      name: MACH2PHYS_COMPAT_VIRT_START
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: HYPERVISOR_COMPAT_VIRT_START
    - item_type: preproc_def
      name: MACH2PHYS_COMPAT_VIRT_END
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: 0xFFE00000U
    - item_type: preproc_def
      name: COMPAT_L2_PAGETABLE_LAST_XEN_SLOT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: l2_table_offset(~0U)
    - item_type: preproc_def
      name: COMPAT_LEGACY_MAX_VCPUS
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: XEN_LEGACY_MAX_VCPUS
    - item_type: preproc_def
      name: COMPAT_HAVE_PV_GUEST_ENTRY
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: XEN_HAVE_PV_GUEST_ENTRY
    - item_type: preproc_def
      name: COMPAT_HAVE_PV_UPCALL_MASK
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: XEN_HAVE_PV_UPCALL_MASK
    - item_type: preproc_def
      name: __HYPERVISOR_CS
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '0xe008'
    - item_type: preproc_def
      name: __HYPERVISOR_DS64
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: __HYPERVISOR_DS32
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '0xe010'
    - item_type: preproc_def
      name: __HYPERVISOR_DS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: __HYPERVISOR_DS64
    - item_type: preproc_def
      name: SYMBOLS_ORIGIN
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: XEN_VIRT_START
    - item_type: preproc_def
      name: __OS
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '"q"  '
    - item_type: preproc_def
      name: __OP
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '"r"  '
    - item_type: preproc_def
      name: GDT_LDT_VCPU_SHIFT
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '5'
    - item_type: preproc_def
      name: GDT_LDT_VCPU_VA_SHIFT
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (GDT_LDT_VCPU_SHIFT + PAGE_SHIFT)
    - item_type: preproc_def
      name: GDT_LDT_MBYTES
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PERDOMAIN_SLOT_MBYTES
    - item_type: preproc_def
      name: MAX_VIRT_CPUS
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (GDT_LDT_MBYTES << (20-GDT_LDT_VCPU_VA_SHIFT))
    - item_type: preproc_def
      name: GDT_LDT_VIRT_START
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PERDOMAIN_VIRT_SLOT(0)
    - item_type: preproc_def
      name: GDT_LDT_VIRT_END
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (GDT_LDT_VIRT_START + (GDT_LDT_MBYTES << 20))
    - item_type: preproc_def
      name: MAPCACHE_VCPU_ENTRIES
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (CONFIG_PAGING_LEVELS * CONFIG_PAGING_LEVELS)
    - item_type: preproc_def
      name: MAPCACHE_ENTRIES
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (MAX_VIRT_CPUS * MAPCACHE_VCPU_ENTRIES)
    - item_type: preproc_def
      name: MAPCACHE_VIRT_START
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PERDOMAIN_VIRT_SLOT(1)
    - item_type: preproc_def
      name: MAPCACHE_VIRT_END
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: "(MAPCACHE_VIRT_START + \\\n                                  MAPCACHE_ENTRIES
        * PAGE_SIZE)"
    - item_type: preproc_def
      name: ARG_XLAT_VIRT_START
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: PERDOMAIN_VIRT_SLOT(2)
    - item_type: preproc_def
      name: ARG_XLAT_VA_SHIFT
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: (2 + PAGE_SHIFT)
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/x86/include/asm/config.h
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BCD_TO_BIN
  - BIN_TO_BCD
  - RTC_PORT
  - CMOS_READ
  - CMOS_WRITE
  source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTC_SECONDS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RTC_SECONDS_ALARM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RTC_MINUTES
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RTC_MINUTES_ALARM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: RTC_HOURS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RTC_HOURS_ALARM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: RTC_ALARM_DONT_CARE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: RTC_DAY_OF_WEEK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '6'
    - item_type: preproc_def
      name: RTC_DAY_OF_MONTH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '7'
    - item_type: preproc_def
      name: RTC_MONTH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: RTC_YEAR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '9'
    - item_type: preproc_def
      name: RTC_REG_A
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '10'
    - item_type: preproc_def
      name: RTC_REG_B
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '11'
    - item_type: preproc_def
      name: RTC_REG_C
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '12'
    - item_type: preproc_def
      name: RTC_REG_D
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '13'
    - item_type: preproc_def
      name: RTC_FREQ_SELECT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: RTC_REG_A
    - item_type: preproc_def
      name: RTC_UIP
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: RTC_DIV_CTL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: RTC_REF_CLCK_4MHZ
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: RTC_REF_CLCK_1MHZ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: RTC_REF_CLCK_32KHZ
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: RTC_DIV_RESET1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x60'
    - item_type: preproc_def
      name: RTC_DIV_RESET2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: RTC_RATE_SELECT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: RTC_CONTROL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: RTC_REG_B
    - item_type: preproc_def
      name: RTC_SET
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x80           '
    - item_type: preproc_def
      name: RTC_PIE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x40           '
    - item_type: preproc_def
      name: RTC_AIE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x20           '
    - item_type: preproc_def
      name: RTC_UIE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x10           '
    - item_type: preproc_def
      name: RTC_SQWE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x08          '
    - item_type: preproc_def
      name: RTC_DM_BINARY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x04     '
    - item_type: preproc_def
      name: RTC_24H
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x02           '
    - item_type: preproc_def
      name: RTC_DST_EN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x01        '
    - item_type: preproc_def
      name: RTC_INTR_FLAGS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: RTC_REG_C
    - item_type: preproc_def
      name: RTC_IRQF
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x80          '
    - item_type: preproc_def
      name: RTC_PF
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: RTC_AF
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: RTC_UF
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: RTC_VALID
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: RTC_REG_D
    - item_type: preproc_def
      name: RTC_VRT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '0x80           '
    - item_type: preproc_def
      name: RTC_ALWAYS_BCD
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: RTC_IRQ
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/mc146818rtc.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/perfc_defn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VMX_PERF_EXIT_REASON_SIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/perfc_defn.h
      type_or_value: '76'
    - item_type: preproc_def
      name: VMEXIT_NPF_PERFC
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/perfc_defn.h
      type_or_value: '166'
    - item_type: preproc_def
      name: SVM_PERF_EXIT_REASON_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/perfc_defn.h
      type_or_value: (VMEXIT_NPF_PERFC + 1)
    - item_type: preproc_def
      name: VMX_PERF_VECTOR_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/perfc_defn.h
      type_or_value: '0x20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vm_event_is_enabled
  source_file: /src/xen/xen/arch/x86/include/asm/vm_event.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: emulate_flags
        type: uint32_t
      - name: emul
        type: "union {\n        struct vm_event_emul_read_data read;\n        struct
          vm_event_emul_insn_data insn;\n    }"
      - name: write_data
        type: struct monitor_write_data
      - name: gprs
        type: struct vm_event_regs_x86
      - name: set_gprs
        type: bool
      - name: sync_event
        type: bool
      - name: send_event
        type: bool
      item_type: struct
      name: arch_vm_event
      pos:
        line_end: 30
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/vm_event.h
    typedefs: []
    union: []
- function_names:
  - GEN16
  source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DPL0
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DPL1
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DPL3
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
      type_or_value: '3'
    - item_type: preproc_def
      name: manual
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: autogen
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_read_atomic
  - build_write_atomic
  - build_add_sized
  - read_atomic
  - write_atomic
  - add_sized
  - atomic_read
  - _atomic_read
  - atomic_set
  - _atomic_set
  - atomic_cmpxchg
  - atomic_add
  - atomic_add_return
  - atomic_sub
  - atomic_sub_return
  - atomic_sub_and_test
  - atomic_inc
  - atomic_inc_return
  - atomic_inc_and_test
  - atomic_dec
  - atomic_dec_return
  - atomic_dec_and_test
  - atomic_add_negative
  - atomic_add_unless
  - atomic_and
  - atomic_xchg
  source_file: /src/xen/xen/arch/x86/include/asm/atomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_set_softirq
  source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NMI_SOFTIRQ
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: (NR_COMMON_SOFTIRQS + 0)
    - item_type: preproc_def
      name: TIME_CALIBRATE_SOFTIRQ
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: (NR_COMMON_SOFTIRQS + 1)
    - item_type: preproc_def
      name: VCPU_KICK_SOFTIRQ
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: (NR_COMMON_SOFTIRQS + 2)
    - item_type: preproc_def
      name: MACHINE_CHECK_SOFTIRQ
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: (NR_COMMON_SOFTIRQS + 3)
    - item_type: preproc_def
      name: HVM_DPCI_SOFTIRQ
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: (NR_COMMON_SOFTIRQS + 4)
    - item_type: preproc_def
      name: NR_ARCH_SOFTIRQS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: '5'
    - item_type: preproc_def
      name: arch_set_softirq
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/softirq.h
      type_or_value: arch_set_softirq
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_LDT
  source_file: /src/xen/xen/arch/x86/include/asm/ldt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ring_0
  - ring_1
  - ring_2
  - ring_3
  - guest_kernel_mode
  - permit_softint
  - null_trap_bounce
  - guest_mode
  - read_sreg
  source_file: /src/xen/xen/arch/x86/include/asm/regs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CTXT_SWITCH_STACK_BYTES
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/regs.h
      type_or_value: sizeof(struct cpu_user_regs)
    structs: []
    typedefs: []
    union: []
- function_names:
  - IO_APIC_BASE
  - IO_APIC_ID
  - ioapic_reg_remapped
  - __io_apic_read
  - io_apic_read
  - __io_apic_write
  - io_apic_write
  - io_apic_modify
  source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
  types:
    enum:
    - enumerators:
      - name: dest_Fixed
        value: '0'
      - name: dest_LowestPrio
        value: '1'
      - name: dest__reserved_1
        value: '3'
      - name: dest_SMI
        value: '2'
      - name: dest_NMI
        value: '4'
      - name: dest_INIT
        value: '5'
      - name: dest__reserved_2
        value: '6'
      - name: dest_ExtINT
        value: '7'
      item_type: enum
      name: ioapic_irq_destination_types
      pos:
        line_end: 90
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
    preproc_defs:
    - item_type: preproc_def
      name: IO_APIC_REDIR_VECTOR_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: '0x000FF'
    - item_type: preproc_def
      name: IO_APIC_REDIR_DELIV_MODE_MASK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: '0x00700'
    - item_type: preproc_def
      name: IO_APIC_REDIR_DEST_LOGICAL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: IO_APIC_REDIR_DEST_PHYSICAL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: IO_APIC_REDIR_SEND_PENDING
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: IO_APIC_REDIR_REMOTE_IRR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: IO_APIC_REDIR_LEVEL_TRIGGER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: IO_APIC_REDIR_MASKED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
      type_or_value: (1 << 16)
    structs:
    - fields: []
      item_type: struct
      name: IO_APIC_route_entry
      pos:
        line_end: 126
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
    typedefs: []
    union:
    - fields:
      - name: raw
        type: uint32_t
      - name: bits
        type: "struct {\n        unsigned int __reserved_2:14;\n        unsigned int
          LTS:1;\n        unsigned int delivery_type:1;\n        unsigned int __reserved_1:8;\n
          \       unsigned int ID:8;\n    }"
      item_type: union
      name: IO_APIC_reg_00
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
    - fields:
      - name: raw
        type: uint32_t
      - name: bits
        type: "struct {\n        unsigned int version:8;\n        unsigned int __reserved_2:7;\n
          \       unsigned int PRQ:1;\n        unsigned int entries:8;\n        unsigned
          int __reserved_1:8;\n    }"
      item_type: union
      name: IO_APIC_reg_01
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
    - fields:
      - name: raw
        type: uint32_t
      - name: bits
        type: "struct {\n        unsigned int __reserved_2:24;\n        unsigned int
          arbitration:4;\n        unsigned int __reserved_1:4;\n    }"
      item_type: union
      name: IO_APIC_reg_02
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
    - fields:
      - name: raw
        type: uint32_t
      - name: bits
        type: "struct {\n        unsigned int boot_DT:1;\n        unsigned int __reserved_1:31;\n
          \   }"
      item_type: union
      name: IO_APIC_reg_03
      pos:
        line_end: 73
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/io_apic.h
- function_names:
  - invpcid
  - invpcid_flush_one
  - invpcid_flush_single_context
  - invpcid_flush_all
  - invpcid_flush_all_nonglobals
  source_file: /src/xen/xen/arch/x86/include/asm/invpcid.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pcid
        type: uint64_t
      - name: reserved
        type: uint64_t
      - name: addr
        type: uint64_t
      item_type: struct
      name: desc = { .pcid = pcid, .addr = addr }
      pos:
        line_end: 14
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/invpcid.h
    typedefs: []
    union: []
- function_names:
  - CF8_BDF
  - CF8_ADDR_LO
  - CF8_ADDR_HI
  - CF8_ENABLED
  - IS_SNB_GFX
  - is_pci_passthrough_enabled
  - arch_pci_device_physdevop
  source_file: /src/xen/xen/arch/x86/include/asm/pci.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: used_vectors
        type: vmask_t
      - name: pseudo_domid
        type: domid_t
      - name: leaf_mfn
        type: mfn_t
      - name: pgtables_list
        type: struct page_list_head
      item_type: struct
      name: arch_pci_dev
      pos:
        line_end: 36
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/pci.h
    typedefs: []
    union: []
- function_names:
  - mwait_idle_init
  source_file: /src/xen/xen/arch/x86/include/asm/cpuidle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rdpkru
  - wrpkru
  - rdpkrs
  - rdpkrs_and_cache
  - wrpkrs
  - wrpkrs_and_cache
  source_file: /src/xen/xen/arch/x86/include/asm/prot-key.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PKEY_AD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/prot-key.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PKEY_WD
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/prot-key.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: PKEY_WIDTH
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/prot-key.h
      type_or_value: '2 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_set_bit
  - guest_clear_bit
  - guest_change_bit
  - guest_test_bit
  - guest_test_and_set_bit
  - guest_test_and_clear_bit
  - guest_test_and_change_bit
  - guest_cmpxchg
  source_file: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: guest_cmpxchg64
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/guest_atomics.h
      type_or_value: guest_cmpxchg
    structs: []
    typedefs: []
    union: []
- function_names:
  - _raw_read_unlock
  - arch_lock_acquire_barrier
  - arch_lock_release_barrier
  - arch_lock_relax
  - arch_lock_signal_wmb
  source_file: /src/xen/xen/arch/x86/include/asm/spinlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ACPI_DISABLE_IRQS
  - ACPI_ENABLE_IRQS
  - ACPI_FLUSH_CPU_CACHE
  - ACPI_ACQUIRE_GLOBAL_LOCK
  - ACPI_RELEASE_GLOBAL_LOCK
  - ACPI_DIV_64_BY_32
  - ACPI_SHIFT_RIGHT_64
  - disable_acpi
  - acpi_noirq_set
  - acpi_ivrs_init
  source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_INT64
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: long long
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_UINT64
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: ARCH_HAS_POWER_INIT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_MADT_ENTRIES
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: MAX(256, 2 * NR_CPUS)
    - item_type: preproc_def
      name: MAX_LOCAL_APIC
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: MAX(256, 4 * NR_CPUS)
    - item_type: preproc_def
      name: INVALID_ACPIID
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: (-1U)
    - item_type: preproc_def
      name: ACPI_MAP_MEM_ATTR
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
      type_or_value: PAGE_HYPERVISOR_UCMINUS
    structs:
    - fields:
      - name: pm1a_cnt_blk
        type: struct acpi_generic_address
      - name: pm1b_cnt_blk
        type: struct acpi_generic_address
      - name: pm1a_evt_blk
        type: struct acpi_generic_address
      - name: pm1b_evt_blk
        type: struct acpi_generic_address
      - name: sleep_control
        type: struct acpi_generic_address
      - name: sleep_status
        type: struct acpi_generic_address
      - name: sleep_state
        type: uint32_t
      - name: wakeup_vector
        type: uint64_t
      - name: vector_width
        type: uint32_t
      - name: sleep_extended
        type: bool
      item_type: struct
      name: acpi_sleep_info
      pos:
        line_end: 128
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/acpi.h
    typedefs: []
    union: []
- function_names:
  - XEN_CPUFEATURE
  - XEN_CPUFEATURE
  - XEN_CPUFEATURE
  source_file: /src/xen/xen/arch/x86/include/asm/cpufeatureset.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/x86_emulate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/percpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_PERCPU_AREA
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/percpu.h
      type_or_value: (0x8000000000000000UL - (unsigned long)__per_cpu_start)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/multicall.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/vpci.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pirq
        type: int
      - name: bound
        type: bool
      item_type: struct
      name: vpci_arch_msi
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/vpci.h
    - fields:
      - name: pirq
        type: int
      item_type: struct
      name: vpci_arch_msix_entry
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/vpci.h
    typedefs: []
    union: []
- function_names:
  - memory_type_changed
  source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTRR_NUM_TYPES
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: X86_MT_UCM
    - item_type: preproc_def
      name: MEMORY_NUM_TYPES
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: MTRR_NUM_TYPES
    - item_type: preproc_def
      name: NO_HARDCODE_MEM_TYPE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: MTRR_NUM_TYPES
    - item_type: preproc_def
      name: INVALID_MEM_TYPE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: X86_NUM_MT
    - item_type: preproc_def
      name: MTRR_PHYSMASK_VALID_BIT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '11'
    - item_type: preproc_def
      name: MTRR_PHYSMASK_VALID
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: (1 << MTRR_PHYSMASK_VALID_BIT)
    - item_type: preproc_def
      name: MTRR_PHYSMASK_SHIFT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MTRR_PHYSBASE_TYPE_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: MTRR_PHYSBASE_SHIFT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MTRR_VCNT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MTRR_VCNT_MAX
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: "((MSR_MTRRfix64K_00000 - \\\n                                   MSR_IA32_MTRR_PHYSBASE(0))
        / 2)"
    - item_type: preproc_def
      name: NUM_FIXED_RANGES
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '88'
    - item_type: preproc_def
      name: NUM_FIXED_MSR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type_or_value: '11'
    structs:
    - fields:
      - name: base
        type: uint64_t
      - name: mask
        type: uint64_t
      item_type: struct
      name: mtrr_var_range
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
    - fields:
      - name: '*var_ranges'
        type: struct mtrr_var_range
      - name: fixed_ranges[NUM_FIXED_RANGES]
        type: mtrr_type
      - name: enabled
        type: bool
      - name: fixed_enabled
        type: bool
      - name: have_fixed
        type: bool
      - name: def_type
        type: mtrr_type
      - name: mtrr_cap
        type: u64
      - name: overlapped
        type: bool
      item_type: struct
      name: mtrr_state
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
    typedefs:
    - item_type: typedef
      name: mtrr_type
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/mtrr.h
      type: u8
    union: []
- function_names:
  - IO_APIC_IRQ
  - MSI_IRQ
  - LEGACY_VECTOR
  - platform_legacy_irq
  - pirq_dpci
  - dpci_pirq
  - domain_pirq_to_irq
  - domain_irq_to_pirq
  - domain_pirq_to_emuirq
  - domain_emuirq_to_pirq
  - arch_move_irqs
  source_file: /src/xen/xen/arch/x86/include/asm/irq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: nr_static_irqs
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: nr_irqs_gsi
    - item_type: preproc_def
      name: IRQ_UNUSED
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (0)
    - item_type: preproc_def
      name: IRQ_USED
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (1)
    - item_type: preproc_def
      name: IRQ_RESERVED
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: IRQ_VECTOR_UNASSIGNED
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: OPT_IRQ_VECTOR_MAP_DEFAULT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: OPT_IRQ_VECTOR_MAP_NONE
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: OPT_IRQ_VECTOR_MAP_GLOBAL
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: OPT_IRQ_VECTOR_MAP_PERDEV
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: PIRQ_ALLOCATED
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: IRQ_UNBOUND
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: IRQ_PT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: IRQ_MSI_EMU
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type_or_value: (-3)
    structs:
    - fields: []
      item_type: struct
      name: vmask_t
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
    - fields:
      - name: vector
        type: int16_t
      - name: old_vector
        type: int16_t
      - name: cpu_mask
        type: cpumask_var_t
      - name: old_cpu_mask
        type: cpumask_var_t
      - name: pending_mask
        type: cpumask_var_t
      - name: '*used_vectors'
        type: vmask_t
      - name: move_cleanup_count
        type: unsigned
      - name: move_in_progress
        type: bool
      - name: used
        type: int8_t
      - name: creator_domid
        type: domid_t
      item_type: struct
      name: arch_irq_desc
      pos:
        line_end: 89
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
    - fields:
      - name: irq
        type: int
      item_type: struct
      name: arch_pirq
      pos:
        line_end: 155
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
    - fields:
      - name: emuirq
        type: int
      - name: dpci
        type: struct hvm_pirq_dpci
      item_type: struct
      name: hvm_pirq
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
    typedefs:
    - item_type: typedef
      name: vector_irq_t[X86_IDT_VECTORS]
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/irq.h
      type: int
    union: []
- function_names:
  - gen_endbr64
  - is_endbr64
  - place_endbr64
  - gen_endbr64_poison
  - is_endbr64_poison
  - place_endbr64_poison
  source_file: /src/xen/xen/arch/x86/include/asm/endbr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENDBR64_LEN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/endbr.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_pause_for_debugger
  - gdbsx_domctl
  source_file: /src/xen/xen/arch/x86/include/asm/gdbsx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/efibind.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - barrier_nospec_true
  - barrier_nospec_false
  - evaluate_nospec
  - block_speculation
  - array_index_mask_nospec
  - arch_block_lock_speculation
  - barrier_lock_true
  - barrier_lock_false
  - arch_lock_evaluate_nospec
  source_file: /src/xen/xen/arch/x86/include/asm/nospec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: array_index_mask_nospec
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/nospec.h
      type_or_value: array_index_mask_nospec
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/livepatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCH_PATCH_INSN_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/livepatch.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ARCH_LIVEPATCH_RANGE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/livepatch.h
      type_or_value: SZ_2G
    - item_type: preproc_def
      name: LIVEPATCH_FEATURE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/livepatch.h
      type_or_value: X86_FEATURE_ALWAYS
    structs: []
    typedefs: []
    union: []
- function_names:
  - spec_ctrl_new_guest_context
  - init_shadow_spec_ctrl_state
  - __spec_ctrl_enter_idle_verw
  - __spec_ctrl_enter_idle
  - spec_ctrl_enter_idle
  - spec_ctrl_exit_idle
  source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SCF_use_shadow
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: SCF_ist_sc_msr
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: SCF_ist_rsb
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: SCF_verw
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: SCF_ist_ibpb
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: SCF_entry_ibpb
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: SCF_entry_bhb
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: SCF_IST_MASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (SCF_ist_sc_msr | SCF_ist_ibpb)
    - item_type: preproc_def
      name: SCF_DOM_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl.h
      type_or_value: (SCF_verw | SCF_entry_ibpb | SCF_entry_bhb)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X86_EFLAGS_CF
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: X86_EFLAGS_MBS
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: X86_EFLAGS_PF
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: X86_EFLAGS_AF
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: X86_EFLAGS_ZF
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: X86_EFLAGS_SF
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: X86_EFLAGS_TF
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: X86_EFLAGS_IF
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: X86_EFLAGS_DF
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: X86_EFLAGS_OF
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: X86_EFLAGS_IOPL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00003000 '
    - item_type: preproc_def
      name: X86_EFLAGS_NT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: X86_EFLAGS_RF
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: X86_EFLAGS_VM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: X86_EFLAGS_AC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: X86_EFLAGS_VIF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00080000 '
    - item_type: preproc_def
      name: X86_EFLAGS_VIP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: X86_EFLAGS_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: X86_EFLAGS_ARITH_MASK
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: "(X86_EFLAGS_CF | X86_EFLAGS_PF | X86_EFLAGS_AF |   \\\n     X86_EFLAGS_ZF
        | X86_EFLAGS_SF | X86_EFLAGS_OF)"
    - item_type: preproc_def
      name: X86_CR0_PE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000001, UL) '
    - item_type: preproc_def
      name: X86_CR0_MP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000002, UL) '
    - item_type: preproc_def
      name: X86_CR0_EM
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000004, UL) '
    - item_type: preproc_def
      name: X86_CR0_TS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000008, UL) '
    - item_type: preproc_def
      name: X86_CR0_ET
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000010, UL) '
    - item_type: preproc_def
      name: X86_CR0_NE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000020, UL) '
    - item_type: preproc_def
      name: X86_CR0_WP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00010000, UL) '
    - item_type: preproc_def
      name: X86_CR0_AM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00040000, UL) '
    - item_type: preproc_def
      name: X86_CR0_NW
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x20000000, UL) '
    - item_type: preproc_def
      name: X86_CR0_CD
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x40000000, UL) '
    - item_type: preproc_def
      name: X86_CR0_PG
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x80000000, UL) '
    - item_type: preproc_def
      name: X86_CR3_NOFLUSH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 63)
    - item_type: preproc_def
      name: X86_CR3_ADDR_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (PAGE_MASK & PADDR_MASK)
    - item_type: preproc_def
      name: X86_CR3_PCID_MASK
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x0fff, ULL) '
    - item_type: preproc_def
      name: X86_CR4_VME
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: X86_CR4_PVI
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: X86_CR4_TSD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: X86_CR4_DE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: X86_CR4_PSE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: X86_CR4_PAE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: X86_CR4_MCE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: X86_CR4_PGE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: X86_CR4_PCE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: X86_CR4_OSFXSR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: X86_CR4_OSXMMEXCPT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: X86_CR4_UMIP
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: X86_CR4_LA57
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: X86_CR4_VMXE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: X86_CR4_SMXE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: X86_CR4_FSGSBASE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: X86_CR4_PCIDE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: X86_CR4_OSXSAVE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: X86_CR4_SMEP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00100000 '
    - item_type: preproc_def
      name: X86_CR4_SMAP
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00200000 '
    - item_type: preproc_def
      name: X86_CR4_PKE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00400000 '
    - item_type: preproc_def
      name: X86_CR4_CET
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00800000 '
    - item_type: preproc_def
      name: X86_CR4_PKS
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x01000000 '
    - item_type: preproc_def
      name: X86_CR4_FRED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, ULL) << 32) '
    - item_type: preproc_def
      name: X86_CR8_VALID_MASK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: X86_XCR0_X87
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: X86_XCR0_SSE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: X86_XCR0_YMM
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: X86_XCR0_BNDREGS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  3)
    - item_type: preproc_def
      name: X86_XCR0_BNDCSR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: X86_XCR0_OPMASK
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: X86_XCR0_ZMM
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  6)
    - item_type: preproc_def
      name: X86_XCR0_HI_ZMM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  7)
    - item_type: preproc_def
      name: X86_XSS_PROC_TRACE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  8)
    - item_type: preproc_def
      name: X86_XCR0_PKRU
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) <<  9)
    - item_type: preproc_def
      name: X86_XSS_PASID
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 10)
    - item_type: preproc_def
      name: X86_XSS_CET_U
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 11)
    - item_type: preproc_def
      name: X86_XSS_CET_S
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 12)
    - item_type: preproc_def
      name: X86_XSS_HDC
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 13)
    - item_type: preproc_def
      name: X86_XSS_UINTR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 14)
    - item_type: preproc_def
      name: X86_XSS_LBR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 15)
    - item_type: preproc_def
      name: X86_XSS_HWP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 16)
    - item_type: preproc_def
      name: X86_XCR0_TILE_CFG
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 17)
    - item_type: preproc_def
      name: X86_XCR0_TILE_DATA
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 18)
    - item_type: preproc_def
      name: X86_XCR0_LWP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (_AC(1, ULL) << 62)
    - item_type: preproc_def
      name: X86_XCR0_STATES
      pos:
        line_end: 111
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: "(X86_XCR0_X87 | X86_XCR0_SSE | X86_XCR0_YMM | X86_XCR0_BNDREGS
        |    \\\n     X86_XCR0_BNDCSR | X86_XCR0_OPMASK | X86_XCR0_ZMM |                 \\\n
        \    X86_XCR0_HI_ZMM | X86_XCR0_PKRU | X86_XCR0_TILE_CFG |              \\\n
        \    X86_XCR0_TILE_DATA |                                               \\\n
        \    X86_XCR0_LWP)"
    - item_type: preproc_def
      name: X86_XSS_STATES
      pos:
        line_end: 117
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: "(X86_XSS_PROC_TRACE | X86_XSS_PASID | X86_XSS_CET_U |               \\\n
        \    X86_XSS_CET_S | X86_XSS_HDC | X86_XSS_UINTR | X86_XSS_LBR |        \\\n
        \    X86_XSS_HWP |                                                      \\\n
        \    0)"
    - item_type: preproc_def
      name: X86_DR6_B0
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) <<  0)   '
    - item_type: preproc_def
      name: X86_DR6_B1
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) <<  1)   '
    - item_type: preproc_def
      name: X86_DR6_B2
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) <<  2)   '
    - item_type: preproc_def
      name: X86_DR6_B3
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) <<  3)   '
    - item_type: preproc_def
      name: X86_DR6_BLD
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 11)   '
    - item_type: preproc_def
      name: X86_DR6_BD
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 13)   '
    - item_type: preproc_def
      name: X86_DR6_BS
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 14)   '
    - item_type: preproc_def
      name: X86_DR6_BT
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 15)   '
    - item_type: preproc_def
      name: X86_DR6_RTM
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 16)   '
    - item_type: preproc_def
      name: X86_DR6_ZEROS
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00001000, UL)  '
    - item_type: preproc_def
      name: X86_DR6_DEFAULT
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0xffff0ff0, UL)  '
    - item_type: preproc_def
      name: X86_DR6_BP_MASK
      pos:
        line_end: 139
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: (X86_DR6_B0 | X86_DR6_B1 | X86_DR6_B2 | X86_DR6_B3)
    - item_type: preproc_def
      name: X86_DR6_KNOWN_MASK
      pos:
        line_end: 143
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: "(X86_DR6_BP_MASK | X86_DR6_BLD | X86_DR6_BD | X86_DR6_BS |          \\\n
        \    X86_DR6_BT | X86_DR6_RTM)"
    - item_type: preproc_def
      name: X86_DR7_RTM
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '(_AC(1, UL) << 11)   '
    - item_type: preproc_def
      name: X86_DR7_ZEROS
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x0000d000, UL)  '
    - item_type: preproc_def
      name: X86_DR7_DEFAULT
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '_AC(0x00000400, UL)  '
    - item_type: preproc_def
      name: X86_INVPCID_INDIV_ADDR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_INVPCID_SINGLE_CTXT
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '1'
    - item_type: preproc_def
      name: X86_INVPCID_ALL_INCL_GLOBAL
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '2'
    - item_type: preproc_def
      name: X86_INVPCID_ALL_NON_GLOBAL
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '3'
    - item_type: preproc_def
      name: X86_IDT_VECTORS
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '256'
    - item_type: preproc_def
      name: X86_EXC_DE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: X86_EXC_DB
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: X86_EXC_NMI
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: X86_EXC_BP
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: X86_EXC_OF
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: X86_EXC_BR
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: X86_EXC_UD
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: X86_EXC_NM
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: X86_EXC_DF
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: X86_EXC_CSO
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '9 '
    - item_type: preproc_def
      name: X86_EXC_TS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: X86_EXC_NP
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '11 '
    - item_type: preproc_def
      name: X86_EXC_SS
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: X86_EXC_GP
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '13 '
    - item_type: preproc_def
      name: X86_EXC_PF
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '14 '
    - item_type: preproc_def
      name: X86_EXC_SPV
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '15 '
    - item_type: preproc_def
      name: X86_EXC_MF
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: X86_EXC_AC
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '17 '
    - item_type: preproc_def
      name: X86_EXC_MC
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '18 '
    - item_type: preproc_def
      name: X86_EXC_XM
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '19 '
    - item_type: preproc_def
      name: X86_EXC_VE
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '20 '
    - item_type: preproc_def
      name: X86_EXC_CP
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '21 '
    - item_type: preproc_def
      name: X86_EXC_HV
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '28 '
    - item_type: preproc_def
      name: X86_EXC_VC
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '29 '
    - item_type: preproc_def
      name: X86_EXC_SX
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '30 '
    - item_type: preproc_def
      name: X86_EXC_NUM
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: X86_EXC_HAVE_EC
      pos:
        line_end: 197
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: "((1u << X86_EXC_DF) | (1u << X86_EXC_TS) | (1u << X86_EXC_NP)
        | \\\n     (1u << X86_EXC_SS) | (1u << X86_EXC_GP) | (1u << X86_EXC_PF) |
        \\\n     (1u << X86_EXC_AC) | (1u << X86_EXC_CP) |                      \\\n
        \    (1u << X86_EXC_VC) | (1u << X86_EXC_SX))"
    - item_type: preproc_def
      name: X86_MT_UC
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: X86_MT_WC
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: X86_MT_RSVD_2
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: X86_MT_RSVD_3
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: X86_MT_WT
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: X86_MT_WP
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x05 '
    - item_type: preproc_def
      name: X86_MT_WB
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: X86_MT_UCM
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x07 '
    - item_type: preproc_def
      name: X86_NUM_MT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: X86_ET_EXT_INTR
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: X86_ET_NMI
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: X86_ET_HW_EXC
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: X86_ET_SW_INT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: X86_ET_PRIV_SW_EXC
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: X86_ET_SW_EXC
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: X86_ET_OTHER
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/x86-defns.h
      type_or_value: '7 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/efi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/machine_kexec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEXEC_RELOC_FLAG_COMPAT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/x86/include/asm/machine_kexec.h
      type_or_value: '0x1 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_vpmu
  - vpmu_vcpu
  - vpmu_available
  - vpmu_reg_pointer
  - vpmu_set
  - vpmu_reset
  - vpmu_clear
  - vpmu_is_set
  - vpmu_are_all_set
  - vpmu_do_wrmsr
  - vpmu_do_rdmsr
  - vpmu_switch_from
  - vpmu_switch_to
  - vpmu_allocate_context
  source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_TYPE_COUNTER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSR_TYPE_CTRL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MSR_TYPE_GLOBAL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MSR_TYPE_ARCH_COUNTER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MSR_TYPE_ARCH_CTRL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VPMU_INITIALIZED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: VPMU_CONTEXT_ALLOCATED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: VPMU_CONTEXT_LOADED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: VPMU_RUNNING
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: VPMU_CONTEXT_SAVE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: VPMU_FROZEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: VPMU_CACHED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: VPMU_AVAILABLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: VPMU_CPU_HAS_DS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x1000 '
    - item_type: preproc_def
      name: VPMU_CPU_HAS_BTS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
      type_or_value: '0x2000 '
    structs:
    - fields:
      - name: (*initialise)(struct vcpu *v)
        type: int
      - name: (*do_wrmsr)(unsigned int msr, uint64_t msr_content)
        type: int
      - name: (*do_rdmsr)(unsigned int msr, uint64_t *msr_content)
        type: int
      - name: (*do_interrupt)(void)
        type: int
      - name: (*arch_vpmu_destroy)(struct vcpu *v)
        type: void
      - name: (*arch_vpmu_save)(struct vcpu *v, bool to_guest)
        type: int
      - name: (*arch_vpmu_load)(struct vcpu *v, bool from_guest)
        type: int
      - name: (*arch_vpmu_dump)(const struct vcpu *v)
        type: void
      item_type: struct
      name: arch_vpmu_ops
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
    - fields:
      - name: flags
        type: u32
      - name: last_pcpu
        type: u32
      - name: hw_lapic_lvtpc
        type: u32
      - name: '*context'
        type: void
      - name: '*priv_context'
        type: void
      - name: context_size
        type: size_t
      - name: priv_context_size
        type: size_t
      - name: '*xenpmu_data'
        type: struct xen_pmu_data
      - name: vpmu_lock
        type: spinlock_t
      item_type: struct
      name: vpmu_struct
      pos:
        line_end: 58
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/vpmu.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nmi_reason
  - GET_SET_SHARED
  - GET_SET_VCPU
  - nmi_reason
  - GET_SET_SHARED
  - GET_SET_VCPU
  source_file: /src/xen/xen/arch/x86/include/asm/shared.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/stubs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STUB_BUF_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/stubs.h
      type_or_value: '(L1_CACHE_SHIFT > 7 ? L1_CACHE_SHIFT : 7)'
    - item_type: preproc_def
      name: STUB_BUF_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/stubs.h
      type_or_value: (1 << STUB_BUF_SHIFT)
    - item_type: preproc_def
      name: STUBS_PER_PAGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/stubs.h
      type_or_value: (PAGE_SIZE / STUB_BUF_SIZE)
    structs:
    - fields:
      - name: mfn
        type: unsigned long
      item_type: struct
      name: stubs
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/stubs.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: highmem_start
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/setup.h
      type_or_value: '0'
    - item_type: preproc_def
      name: opt_dom0_shadow
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/setup.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: max_init_domid
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/setup.h
      type_or_value: (0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/bootfdt.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: relocated
        type: bool
      - name: released
        type: bool
      - name: headroom
        type: unsigned long
      - name: cmdline_pa
        type: paddr_t
      item_type: struct
      name: arch_boot_module
      pos:
        line_end: 38
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/bootfdt.h
    typedefs: []
    union: []
- function_names:
  - _ASM_MK_NOP
  - _ASM_MK_NOP
  source_file: /src/xen/xen/arch/x86/include/asm/nops.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: K8_NOP1
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: K8_NOP2
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,K8_NOP1
    - item_type: preproc_def
      name: K8_NOP3
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,K8_NOP2
    - item_type: preproc_def
      name: K8_NOP4
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,K8_NOP3
    - item_type: preproc_def
      name: K8_NOP5
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: K8_NOP3,K8_NOP2
    - item_type: preproc_def
      name: K8_NOP6
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: K8_NOP3,K8_NOP3
    - item_type: preproc_def
      name: K8_NOP7
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: K8_NOP4,K8_NOP3
    - item_type: preproc_def
      name: K8_NOP8
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: K8_NOP4,K8_NOP4
    - item_type: preproc_def
      name: K8_NOP9
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: K8_NOP3,K8_NOP3,K8_NOP3
    - item_type: preproc_def
      name: P6_NOP1
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: P6_NOP2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,0x90
    - item_type: preproc_def
      name: P6_NOP3
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x0f,0x1f,0x00
    - item_type: preproc_def
      name: P6_NOP4
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x0f,0x1f,0x40,0
    - item_type: preproc_def
      name: P6_NOP5
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x0f,0x1f,0x44,0x00,0
    - item_type: preproc_def
      name: P6_NOP6
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,0x0f,0x1f,0x44,0x00,0
    - item_type: preproc_def
      name: P6_NOP7
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x0f,0x1f,0x80,0,0,0,0
    - item_type: preproc_def
      name: P6_NOP8
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x0f,0x1f,0x84,0x00,0,0,0,0
    - item_type: preproc_def
      name: P6_NOP9
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: 0x66,0x0f,0x1f,0x84,0x00,0,0,0,0
    - item_type: preproc_def
      name: ASM_NOP1
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP1)
    - item_type: preproc_def
      name: ASM_NOP2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP2)
    - item_type: preproc_def
      name: ASM_NOP3
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP3)
    - item_type: preproc_def
      name: ASM_NOP4
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP4)
    - item_type: preproc_def
      name: ASM_NOP5
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP5)
    - item_type: preproc_def
      name: ASM_NOP6
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP6)
    - item_type: preproc_def
      name: ASM_NOP7
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP7)
    - item_type: preproc_def
      name: ASM_NOP8
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP8)
    - item_type: preproc_def
      name: ASM_NOP9
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: _ASM_MK_NOP(P6_NOP9)
    - item_type: preproc_def
      name: ASM_NOP_MAX
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/nops.h
      type_or_value: '9'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1_PAGETABLE_SHIFT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '12'
    - item_type: preproc_def
      name: L2_PAGETABLE_SHIFT
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '21'
    - item_type: preproc_def
      name: L3_PAGETABLE_SHIFT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '30'
    - item_type: preproc_def
      name: L4_PAGETABLE_SHIFT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '39'
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: L1_PAGETABLE_SHIFT
    - item_type: preproc_def
      name: SUPERPAGE_SHIFT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: L2_PAGETABLE_SHIFT
    - item_type: preproc_def
      name: ROOT_PAGETABLE_SHIFT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: L4_PAGETABLE_SHIFT
    - item_type: preproc_def
      name: PAGETABLE_ORDER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '9'
    - item_type: preproc_def
      name: L1_PAGETABLE_ENTRIES
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: (1 << PAGETABLE_ORDER)
    - item_type: preproc_def
      name: L2_PAGETABLE_ENTRIES
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: (1 << PAGETABLE_ORDER)
    - item_type: preproc_def
      name: L3_PAGETABLE_ENTRIES
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: (1 << PAGETABLE_ORDER)
    - item_type: preproc_def
      name: L4_PAGETABLE_ENTRIES
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: (1 << PAGETABLE_ORDER)
    - item_type: preproc_def
      name: ROOT_PAGETABLE_ENTRIES
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: L4_PAGETABLE_ENTRIES
    - item_type: preproc_def
      name: SUPERPAGE_ORDER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: PAGETABLE_ORDER
    - item_type: preproc_def
      name: SUPERPAGE_PAGES
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: (1 << SUPERPAGE_ORDER)
    - item_type: preproc_def
      name: PADDR_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '52'
    - item_type: preproc_def
      name: VADDR_BITS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/page-bits.h
      type_or_value: '48'
    structs: []
    typedefs: []
    union: []
- function_names:
  - next_boot_module_index
  - first_boot_module_index
  - for_each_boot_module_by_type
  source_file: /src/xen/xen/arch/x86/include/asm/bootinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_NR_BOOTMODS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/bootinfo.h
      type_or_value: '63'
    - item_type: preproc_def
      name: MAX_NR_BOOTDOMS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/bootinfo.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*loader'
        type: char
      - name: '*cmdline'
        type: char
      - name: '*kextra'
        type: char
      - name: memmap_addr
        type: paddr_t
      - name: memmap_length
        type: size_t
      - name: nr_modules
        type: unsigned int
      - name: mods[MAX_NR_BOOTMODS + 1]
        type: struct boot_module
      - name: domains[MAX_NR_BOOTDOMS]
        type: struct boot_domain
      item_type: struct
      name: boot_info
      pos:
        line_end: 36
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/bootinfo.h
    typedefs: []
    union: []
- function_names:
  - raw_copy_to_guest
  - raw_copy_from_guest
  - raw_clear_guest
  - __raw_copy_to_guest
  - __raw_copy_from_guest
  - guest_handle_okay
  - guest_handle_subrange_okay
  source_file: /src/xen/xen/arch/x86/include/asm/guest_access.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GUEST_KERNEL_RPL
  - __fixup_guest_selector
  - fixup_guest_stack_selector
  - fixup_guest_code_selector
  - guest_gate_selector_okay
  - _set_tssldt_desc
  - lgdt
  - lidt
  - lldt
  - ltr
  source_file: /src/xen/xen/arch/x86/include/asm/desc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_RESERVED_GDT_PAGES
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NR_RESERVED_GDT_BYTES
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (NR_RESERVED_GDT_PAGES * PAGE_SIZE)
    - item_type: preproc_def
      name: NR_RESERVED_GDT_ENTRIES
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (NR_RESERVED_GDT_BYTES / 8)
    - item_type: preproc_def
      name: LAST_RESERVED_GDT_PAGE
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (FIRST_RESERVED_GDT_PAGE + NR_RESERVED_GDT_PAGES - 1)
    - item_type: preproc_def
      name: LAST_RESERVED_GDT_BYTE
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (FIRST_RESERVED_GDT_BYTE + NR_RESERVED_GDT_BYTES - 1)
    - item_type: preproc_def
      name: LAST_RESERVED_GDT_ENTRY
      pos:
        line_end: 19
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (FIRST_RESERVED_GDT_ENTRY + NR_RESERVED_GDT_ENTRIES - 1)
    - item_type: preproc_def
      name: LDT_ENTRY_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FLAT_COMPAT_RING1_CS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe019  '
    - item_type: preproc_def
      name: FLAT_COMPAT_RING1_DS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe021  '
    - item_type: preproc_def
      name: FLAT_COMPAT_RING1_SS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe021  '
    - item_type: preproc_def
      name: FLAT_COMPAT_RING3_CS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe02b  '
    - item_type: preproc_def
      name: FLAT_COMPAT_RING3_DS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe033  '
    - item_type: preproc_def
      name: FLAT_COMPAT_RING3_SS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '0xe033  '
    - item_type: preproc_def
      name: FLAT_COMPAT_KERNEL_DS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING1_DS
    - item_type: preproc_def
      name: FLAT_COMPAT_KERNEL_CS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING1_CS
    - item_type: preproc_def
      name: FLAT_COMPAT_KERNEL_SS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING1_SS
    - item_type: preproc_def
      name: FLAT_COMPAT_USER_DS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING3_DS
    - item_type: preproc_def
      name: FLAT_COMPAT_USER_CS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING3_CS
    - item_type: preproc_def
      name: FLAT_COMPAT_USER_SS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: FLAT_COMPAT_RING3_SS
    - item_type: preproc_def
      name: TSS_ENTRY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (FIRST_RESERVED_GDT_ENTRY + 8)
    - item_type: preproc_def
      name: LDT_ENTRY
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (TSS_ENTRY + 2)
    - item_type: preproc_def
      name: PER_CPU_GDT_ENTRY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (LDT_ENTRY + 2)
    - item_type: preproc_def
      name: TSS_SELECTOR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (TSS_ENTRY << 3)
    - item_type: preproc_def
      name: LDT_SELECTOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (LDT_ENTRY << 3)
    - item_type: preproc_def
      name: PER_CPU_SELECTOR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (PER_CPU_GDT_ENTRY << 3)
    - item_type: preproc_def
      name: _SEGMENT_TYPE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: (15<< 8)
    - item_type: preproc_def
      name: _SEGMENT_WR
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<< 9) '
    - item_type: preproc_def
      name: _SEGMENT_EC
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<10) '
    - item_type: preproc_def
      name: _SEGMENT_CODE
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<11) '
    - item_type: preproc_def
      name: _SEGMENT_S
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<12) '
    - item_type: preproc_def
      name: _SEGMENT_DPL
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 3<<13) '
    - item_type: preproc_def
      name: _SEGMENT_P
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<15) '
    - item_type: preproc_def
      name: _SEGMENT_L
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<21) '
    - item_type: preproc_def
      name: _SEGMENT_DB
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<22) '
    - item_type: preproc_def
      name: _SEGMENT_G
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '( 1<<23) '
    - item_type: preproc_def
      name: SYS_DESC_tss16_avail
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SYS_DESC_ldt
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SYS_DESC_tss16_busy
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SYS_DESC_call_gate16
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SYS_DESC_task_gate
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SYS_DESC_irq_gate16
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SYS_DESC_trap_gate16
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SYS_DESC_tss_avail
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SYS_DESC_tss_busy
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SYS_DESC_call_gate
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SYS_DESC_irq_gate
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SYS_DESC_trap_gate
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
      type_or_value: '15'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: seg_desc_t
      pos:
        line_end: 115
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/desc.h
- function_names:
  - in_irq
  - irq_enter
  - irq_exit
  - nmi_count
  - in_nmi_handler
  - nmi_enter
  - nmi_exit
  - mce_count
  - in_mce_handler
  - mce_enter
  - mce_exit
  source_file: /src/xen/xen/arch/x86/include/asm/hardirq.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __local_irq_count
        type: unsigned int
      - name: nmi_count
        type: unsigned int
      - name: mce_count
        type: unsigned int
      item_type: struct
      name: __cacheline_aligned
      pos:
        line_end: 23
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/hardirq.h
    typedefs: []
    union: []
- function_names:
  - GET_xAPIC_ID
  - SET_xAPIC_ID
  - GET_APIC_VERSION
  - GET_APIC_MAXLVT
  - GET_xAPIC_LOGICAL_ID
  - SET_xAPIC_LOGICAL_ID
  - APIC_VECTOR_VALID
  - GET_xAPIC_DEST_FIELD
  - SET_xAPIC_DEST_FIELD
  - APIC_PRIO_CLASS
  source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APIC_DEFAULT_PHYS_BASE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: 0xfee00000U
    - item_type: preproc_def
      name: APIC_ID
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: APIC_ID_MASK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0xFFu<<24)
    - item_type: preproc_def
      name: APIC_LVR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: APIC_LVR_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xFF00FF'
    - item_type: preproc_def
      name: APIC_LVR_DIRECTED_EOI
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: APIC_TASKPRI
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: APIC_TPRI_MASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_ARBPRI
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x90'
    - item_type: preproc_def
      name: APIC_ARBPRI_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_PROCPRI
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: APIC_EOI
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xB0'
    - item_type: preproc_def
      name: APIC_EIO_ACK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: "0x0\t\t"
    - item_type: preproc_def
      name: APIC_RRR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xC0'
    - item_type: preproc_def
      name: APIC_LDR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xD0'
    - item_type: preproc_def
      name: APIC_LDR_MASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0xFFu<<24)
    - item_type: preproc_def
      name: APIC_ALL_CPUS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: APIC_DFR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xE0'
    - item_type: preproc_def
      name: APIC_DFR_CLUSTER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: 0x0FFFFFFFUL
    - item_type: preproc_def
      name: APIC_DFR_FLAT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: 0xFFFFFFFFUL
    - item_type: preproc_def
      name: APIC_SPIV
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: APIC_SPIV_FOCUS_DISABLED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<9)
    - item_type: preproc_def
      name: APIC_SPIV_APIC_ENABLED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: APIC_SPIV_DIRECTED_EOI
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: APIC_ISR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: APIC_ISR_NR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x8     '
    - item_type: preproc_def
      name: APIC_TMR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x180'
    - item_type: preproc_def
      name: APIC_IRR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: APIC_ESR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x280'
    - item_type: preproc_def
      name: APIC_ESR_SEND_CS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00001'
    - item_type: preproc_def
      name: APIC_ESR_RECV_CS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00002'
    - item_type: preproc_def
      name: APIC_ESR_SEND_ACC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00004'
    - item_type: preproc_def
      name: APIC_ESR_RECV_ACC
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00008'
    - item_type: preproc_def
      name: APIC_ESR_SENDILL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00020'
    - item_type: preproc_def
      name: APIC_ESR_RECVILL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00040'
    - item_type: preproc_def
      name: APIC_ESR_ILLREGA
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00080'
    - item_type: preproc_def
      name: APIC_ICR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x300'
    - item_type: preproc_def
      name: APIC_DEST_NOSHORT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_DEST_SELF
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: APIC_DEST_ALLINC
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: APIC_DEST_ALLBUT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xC0000'
    - item_type: preproc_def
      name: APIC_SHORT_MASK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xC0000'
    - item_type: preproc_def
      name: APIC_ICR_RR_MASK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x30000'
    - item_type: preproc_def
      name: APIC_ICR_RR_INVALID
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_ICR_RR_INPROG
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: APIC_ICR_RR_VALID
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: APIC_INT_LEVELTRIG
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x08000'
    - item_type: preproc_def
      name: APIC_INT_ASSERT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x04000'
    - item_type: preproc_def
      name: APIC_ICR_BUSY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x01000'
    - item_type: preproc_def
      name: APIC_DEST_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: APIC_DEST_LOGICAL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: APIC_DEST_PHYSICAL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_DM_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00700'
    - item_type: preproc_def
      name: APIC_DM_FIXED
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00000'
    - item_type: preproc_def
      name: APIC_DM_LOWEST
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00100'
    - item_type: preproc_def
      name: APIC_DM_SMI
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00200'
    - item_type: preproc_def
      name: APIC_DM_REMRD
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00300'
    - item_type: preproc_def
      name: APIC_DM_NMI
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00400'
    - item_type: preproc_def
      name: APIC_DM_INIT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00500'
    - item_type: preproc_def
      name: APIC_DM_STARTUP
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00600'
    - item_type: preproc_def
      name: APIC_DM_EXTINT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x00700'
    - item_type: preproc_def
      name: APIC_VECTOR_MASK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x000FF'
    - item_type: preproc_def
      name: APIC_ICR2
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x310'
    - item_type: preproc_def
      name: APIC_LVTT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x320'
    - item_type: preproc_def
      name: APIC_LVTTHMR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x330'
    - item_type: preproc_def
      name: APIC_LVTPC
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x340'
    - item_type: preproc_def
      name: APIC_LVT0
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x350'
    - item_type: preproc_def
      name: APIC_CMCI
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x2F0'
    - item_type: preproc_def
      name: APIC_TIMER_MODE_MASK
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0x3<<17)
    - item_type: preproc_def
      name: APIC_TIMER_MODE_ONESHOT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0x0<<17)
    - item_type: preproc_def
      name: APIC_TIMER_MODE_PERIODIC
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0x1<<17)
    - item_type: preproc_def
      name: APIC_TIMER_MODE_TSC_DEADLINE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (0x2<<17)
    - item_type: preproc_def
      name: APIC_LVT_MASKED
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<16)
    - item_type: preproc_def
      name: APIC_LVT_LEVEL_TRIGGER
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<15)
    - item_type: preproc_def
      name: APIC_LVT_REMOTE_IRR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: APIC_INPUT_POLARITY
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<13)
    - item_type: preproc_def
      name: APIC_SEND_PENDING
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: APIC_LVT1
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x360'
    - item_type: preproc_def
      name: APIC_LVTERR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x370'
    - item_type: preproc_def
      name: APIC_TMICT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x380'
    - item_type: preproc_def
      name: APIC_TMCCT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x390'
    - item_type: preproc_def
      name: APIC_TDCR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x3E0'
    - item_type: preproc_def
      name: APIC_TDR_DIV_MASK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xB'
    - item_type: preproc_def
      name: APIC_TDR_DIV_1
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xB'
    - item_type: preproc_def
      name: APIC_TDR_DIV_2
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APIC_TDR_DIV_4
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: APIC_TDR_DIV_8
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: APIC_TDR_DIV_16
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: APIC_TDR_DIV_32
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: APIC_TDR_DIV_64
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: APIC_TDR_DIV_128
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0xA'
    - item_type: preproc_def
      name: APIC_SELF_IPI
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '0x3F0'
    - item_type: preproc_def
      name: MAX_IO_APICS
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/apicdef.h
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_debugreg
  - read_debugreg
  - breakpoint_addr_ok
  - x86_bp_width
  source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DR_FIRSTADDR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DR_LASTADDR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DR_STATUS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DR_CONTROL
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DR_TRAP0
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x1)           '
    - item_type: preproc_def
      name: DR_TRAP1
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x2)           '
    - item_type: preproc_def
      name: DR_TRAP2
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x4)           '
    - item_type: preproc_def
      name: DR_TRAP3
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x8)           '
    - item_type: preproc_def
      name: DR_STEP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x4000)        '
    - item_type: preproc_def
      name: DR_SWITCH
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x8000)        '
    - item_type: preproc_def
      name: DR_NOT_RTM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x10000)       '
    - item_type: preproc_def
      name: DR_STATUS_RESERVED_ONE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '0xffff0ff0UL '
    - item_type: preproc_def
      name: DR_CONTROL_SHIFT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: DR_CONTROL_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: DR_RW_EXECUTE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x0) '
    - item_type: preproc_def
      name: DR_RW_WRITE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0x1)
    - item_type: preproc_def
      name: DR_IO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0x2)
    - item_type: preproc_def
      name: DR_RW_READ
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0x3)
    - item_type: preproc_def
      name: DR_LEN_1
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x0) '
    - item_type: preproc_def
      name: DR_LEN_2
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0x4)
    - item_type: preproc_def
      name: DR_LEN_4
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0xC)
    - item_type: preproc_def
      name: DR_LEN_8
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (0x8)
    - item_type: preproc_def
      name: DR_LOCAL_ENABLE_SHIFT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: DR_GLOBAL_ENABLE_SHIFT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: DR_ENABLE_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: DR_LOCAL_ENABLE_MASK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x55)  '
    - item_type: preproc_def
      name: DR_GLOBAL_ENABLE_MASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0xAA) '
    - item_type: preproc_def
      name: DR7_ACTIVE_MASK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: (DR_LOCAL_ENABLE_MASK|DR_GLOBAL_ENABLE_MASK)
    - item_type: preproc_def
      name: DR_LOCAL_EXACT_ENABLE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x00000100UL) '
    - item_type: preproc_def
      name: DR_GLOBAL_EXACT_ENABLE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x00000200UL) '
    - item_type: preproc_def
      name: DR_RTM_ENABLE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x00000800UL) '
    - item_type: preproc_def
      name: DR_GENERAL_DETECT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/debugreg.h
      type_or_value: '(0x00002000UL) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - UA_KEEP
  - get_guest
  - put_guest
  - __get_guest
  - __put_guest
  - put_unsafe
  - put_guest_nocheck
  - put_guest_check
  - get_unsafe
  - get_guest_nocheck
  - get_guest_check
  - __m
  - put_unsafe_asm
  - get_unsafe_asm
  - put_unsafe_size
  - put_guest_size
  - get_unsafe_size
  - get_guest_size
  - __copy_to_guest_pv
  - __copy_from_guest_pv
  - copy_to_unsafe
  - copy_from_unsafe
  source_file: /src/xen/xen/arch/x86/include/asm/uaccess.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: buf[100]
        type: unsigned long
      item_type: struct
      name: __large_struct
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/uaccess.h
    - fields:
      - name: addr
        type: int32_t
      item_type: struct
      name: exception_table_entry
      pos:
        line_end: 409
        line_start: 406
        source_file: /src/xen/xen/arch/x86/include/asm/uaccess.h
    typedefs: []
    union:
    - fields:
      - name: fields
        type: "struct {\n        uint16_t ec;\n        uint8_t trapnr;\n    }"
      - name: raw
        type: unsigned long
      item_type: union
      name: stub_exception_token
      pos:
        line_end: 419
        line_start: 413
        source_file: /src/xen/xen/arch/x86/include/asm/uaccess.h
- function_names:
  - clobber_regs64
  - clobber_regs32
  - clobber_regs
  source_file: /src/xen/xen/arch/x86/include/asm/hypercall.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __HYPERVISOR_paging_domctl_cont
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hypercall.h
      type_or_value: __HYPERVISOR_arch_1
    - item_type: preproc_def
      name: MMU_UPDATE_PREEMPTED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/hypercall.h
      type_or_value: (~(~0U>>1))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
  types:
    enum:
    - enumerators:
      - name: mp_INT
        value: '0'
      - name: mp_ExtINT
        value: '3'
      - name: mp_NMI
        value: '1'
      - name: mp_SMI
        value: '2'
      item_type: enum
      name: mp_irq_source_types
      pos:
        line_end: 127
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - enumerators:
      - name: MP_BUS_ISA
        value: '1'
      - name: MP_BUS_EISA
      - name: MP_BUS_PCI
      - name: MP_BUS_MCA
      - name: MP_BUS_NEC98
      item_type: enum
      name: mp_bustype
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    preproc_defs:
    - item_type: preproc_def
      name: SMP_MAGIC_IDENT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: (('_'<<24)|('P'<<16)|('M'<<8)|'_')
    - item_type: preproc_def
      name: MAX_MPC_ENTRY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_APICS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: MAX(256, 4 * NR_CPUS)
    - item_type: preproc_def
      name: MPC_SIGNATURE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"PCMP"'
    - item_type: preproc_def
      name: MP_PROCESSOR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MP_BUS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MP_IOAPIC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MP_INTSRC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MP_LINTSRC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MP_TRANSLATION
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '192  '
    - item_type: preproc_def
      name: CPU_ENABLED
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: "1\t"
    - item_type: preproc_def
      name: CPU_BOOTPROCESSOR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: "2\t"
    - item_type: preproc_def
      name: CPU_STEPPING_MASK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: CPU_MODEL_MASK
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: CPU_FAMILY_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0xF00'
    - item_type: preproc_def
      name: BUSTYPE_EISA
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"EISA"'
    - item_type: preproc_def
      name: BUSTYPE_ISA
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"ISA"'
    - item_type: preproc_def
      name: BUSTYPE_INTERN
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: "\"INTERN\"\t"
    - item_type: preproc_def
      name: BUSTYPE_MCA
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"MCA"'
    - item_type: preproc_def
      name: BUSTYPE_VL
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: "\"VL\"\t\t"
    - item_type: preproc_def
      name: BUSTYPE_PCI
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"PCI"'
    - item_type: preproc_def
      name: BUSTYPE_PCMCIA
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"PCMCIA"'
    - item_type: preproc_def
      name: BUSTYPE_CBUS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"CBUS"'
    - item_type: preproc_def
      name: BUSTYPE_CBUSII
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"CBUSII"'
    - item_type: preproc_def
      name: BUSTYPE_FUTURE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"FUTURE"'
    - item_type: preproc_def
      name: BUSTYPE_MBI
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"MBI"'
    - item_type: preproc_def
      name: BUSTYPE_MBII
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"MBII"'
    - item_type: preproc_def
      name: BUSTYPE_MPI
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"MPI"'
    - item_type: preproc_def
      name: BUSTYPE_MPSA
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"MPSA"'
    - item_type: preproc_def
      name: BUSTYPE_NUBUS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"NUBUS"'
    - item_type: preproc_def
      name: BUSTYPE_TC
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"TC"'
    - item_type: preproc_def
      name: BUSTYPE_VME
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"VME"'
    - item_type: preproc_def
      name: BUSTYPE_XPRESS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"XPRESS"'
    - item_type: preproc_def
      name: BUSTYPE_NEC98
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"NEC98"'
    - item_type: preproc_def
      name: MPC_APIC_USABLE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MP_IRQDIR_DEFAULT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MP_IRQDIR_HIGH
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MP_IRQDIR_LOW
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MP_APIC_ALL
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: MPC_OEM_SIGNATURE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
      type_or_value: '"_OEM"'
    structs:
    - fields:
      - name: mpf_signature[4]
        type: char
      - name: mpf_physptr
        type: unsigned int
      - name: mpf_length
        type: unsigned char
      - name: mpf_specification
        type: unsigned char
      - name: mpf_checksum
        type: unsigned char
      - name: mpf_feature1
        type: unsigned char
      - name: mpf_feature2
        type: unsigned char
      - name: mpf_feature3
        type: unsigned char
      - name: mpf_feature4
        type: unsigned char
      - name: mpf_feature5
        type: unsigned char
      item_type: struct
      name: intel_mp_floating
      pos:
        line_end: 30
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_signature[4]
        type: char
      - name: mpc_length
        type: unsigned short
      - name: mpc_spec
        type: char
      - name: mpc_checksum
        type: char
      - name: mpc_oem[8]
        type: char
      - name: mpc_productid[12]
        type: char
      - name: mpc_oemptr
        type: unsigned int
      - name: mpc_oemsize
        type: unsigned short
      - name: mpc_oemcount
        type: unsigned short
      - name: mpc_lapic
        type: unsigned int
      - name: reserved
        type: unsigned int
      item_type: struct
      name: mp_config_table
      pos:
        line_end: 46
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: mpc_apicid
        type: unsigned char
      - name: mpc_apicver
        type: unsigned char
      - name: mpc_cpuflag
        type: unsigned char
      - name: mpc_cpufeature
        type: unsigned int
      - name: mpc_featureflag
        type: unsigned int
      - name: mpc_reserved[2]
        type: unsigned int
      item_type: struct
      name: mpc_config_processor
      pos:
        line_end: 71
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: mpc_busid
        type: unsigned char
      - name: mpc_bustype[6]
        type: unsigned char
      item_type: struct
      name: mpc_config_bus
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: mpc_apicid
        type: unsigned char
      - name: mpc_apicver
        type: unsigned char
      - name: mpc_flags
        type: unsigned char
      - name: mpc_apicaddr
        type: unsigned int
      item_type: struct
      name: mpc_config_ioapic
      pos:
        line_end: 109
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: mpc_irqtype
        type: unsigned char
      - name: mpc_irqflag
        type: unsigned short
      - name: mpc_srcbus
        type: unsigned char
      - name: mpc_srcbusirq
        type: unsigned char
      - name: mpc_dstapic
        type: unsigned char
      - name: mpc_dstirq
        type: unsigned char
      item_type: struct
      name: mpc_config_intsrc
      pos:
        line_end: 120
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: mpc_irqtype
        type: unsigned char
      - name: mpc_irqflag
        type: unsigned short
      - name: mpc_srcbusid
        type: unsigned char
      - name: mpc_srcbusirq
        type: unsigned char
      - name: mpc_destapic
        type: unsigned char
      - name: mpc_destapiclint
        type: unsigned char
      item_type: struct
      name: mpc_config_lintsrc
      pos:
        line_end: 144
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: oem_signature[4]
        type: char
      - name: oem_length
        type: unsigned short
      - name: oem_rev
        type: char
      - name: oem_checksum
        type: char
      - name: mpc_oem[8]
        type: char
      item_type: struct
      name: mp_config_oemtable
      pos:
        line_end: 154
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    - fields:
      - name: mpc_type
        type: unsigned char
      - name: trans_len
        type: unsigned char
      - name: trans_type
        type: unsigned char
      - name: trans_quad
        type: unsigned char
      - name: trans_global
        type: unsigned char
      - name: trans_local
        type: unsigned char
      - name: trans_reserved
        type: unsigned short
      item_type: struct
      name: mpc_config_translation
      pos:
        line_end: 165
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec_def.h
    typedefs: []
    union: []
- function_names:
  - arch_want_default_dmazone
  source_file: /src/xen/xen/arch/x86/include/asm/numa.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _ASM_X8664_NUMA_H
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/xen/arch/x86/include/asm/numa.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZONE_ALIGN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/numa.h
      type_or_value: (1UL << (MAX_ORDER+PAGE_SHIFT))
    structs: []
    typedefs:
    - item_type: typedef
      name: nodeid_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/numa.h
      type: u8
    union: []
- function_names:
  - set_bit
  - set_bit
  - variable_set_bit
  - constant_set_bit
  - __set_bit
  - clear_bit
  - clear_bit
  - variable_clear_bit
  - constant_clear_bit
  - __clear_bit
  - variable_change_bit
  - constant_change_bit
  - __change_bit
  - change_bit
  - change_bit
  - test_and_set_bit
  - test_and_set_bit
  - arch__test_and_set_bit
  - test_and_clear_bit
  - test_and_clear_bit
  - arch__test_and_clear_bit
  - arch__test_and_change_bit
  - test_and_change_bit
  - test_and_change_bit
  - variable_test_bit
  - arch_test_bit
  - __scanbit
  - find_first_bit
  - find_next_bit
  - find_first_zero_bit
  - find_next_zero_bit
  - arch_ffs
  - arch_ffsl
  - arch_fls
  - arch_flsl
  - arch_hweightl
  source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: (*(volatile int *) addr)
    - item_type: preproc_def
      name: CONST_ADDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: (*(const volatile int *) addr)
    - item_type: preproc_def
      name: arch__test_and_set_bit
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch__test_and_set_bit
    - item_type: preproc_def
      name: arch__test_and_clear_bit
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch__test_and_clear_bit
    - item_type: preproc_def
      name: arch__test_and_change_bit
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch__test_and_change_bit
    - item_type: preproc_def
      name: arch_ffs
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch_ffs
    - item_type: preproc_def
      name: arch_ffsl
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch_ffsl
    - item_type: preproc_def
      name: arch_fls
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch_fls
    - item_type: preproc_def
      name: arch_flsl
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch_flsl
    - item_type: preproc_def
      name: arch_hweightl
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/xen/xen/arch/x86/include/asm/bitops.h
      type_or_value: arch_hweightl
    structs: []
    typedefs: []
    union: []
- function_names:
  - wbinvd
  - wbnoinvd
  - clflush
  - clflushopt
  - clwb
  - xchg
  - __xchg
  - __cmpxchg
  - cmpxchg_local_
  - __xadd
  - arch_fetch_and_add
  - mb
  - rmb
  - wmb
  - smp_mb
  - smp_rmb
  - smp_wmb
  - set_mb
  - set_wmb
  - smp_mb__before_atomic
  - smp_mb__after_atomic
  - local_irq_disable
  - local_irq_enable
  - safe_halt
  - halt
  - local_save_flags
  - local_irq_save
  - local_irq_restore
  - local_irq_is_enabled
  source_file: /src/xen/xen/arch/x86/include/asm/system.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BROKEN_ACPI_Sx
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/include/asm/system.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: BROKEN_INIT_AFTER_S1
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/system.h
      type_or_value: '0x0002'
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_get_random
  source_file: /src/xen/xen/arch/x86/include/asm/random.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_ist
  - enable_each_ist
  - disable_each_ist
  - _write_gate_lower
  - _set_gate_lower
  - _update_gate_addr_lower
  source_file: /src/xen/xen/arch/x86/include/asm/idt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IST_NONE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: IST_MCE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IST_NMI
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IST_DB
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '3'
    - item_type: preproc_def
      name: IST_DF
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '4'
    - item_type: preproc_def
      name: IST_MAX
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union:
    - fields: []
      item_type: union
      name: idt_entry_t
      pos:
        line_end: 29
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/idt.h
- function_names:
  - switch_compat
  source_file: /src/xen/xen/arch/x86/include/asm/compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPAT_BITS_PER_LONG
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/compat.h
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: compat_ptr_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/compat.h
      type: uint32_t
    - item_type: typedef
      name: full_ptr_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/compat.h
      type: unsigned long
    union: []
- function_names:
  - GEN
  source_file: /src/xen/xen/arch/x86/include/asm/gen-idt.lds.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/traps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rdtsc
  - rdtsc_ordered
  - __write_tsc
  - write_tsc
  source_file: /src/xen/xen/arch/x86/include/asm/tsc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PFN_ORDER
  - PG_shift
  - PG_mask
  - PGT_type_equal
  - page_state_is
  - is_xen_heap_page
  - is_xen_heap_mfn
  - is_xen_fixed_mfn
  - page_get_owner
  - page_set_owner
  - maddr_get_owner
  - virt_to_page
  - page_to_virt
  - page_lock
  - get_page_from_mfn
  - put_page_and_type
  - put_page_and_type_preemptible
  - get_page_and_type
  - ASSERT_PAGE_IS_TYPE
  - ASSERT_PAGE_IS_DOMAIN
  - VALID_M2P
  - SHARED_M2P
  - get_gpfn_from_mfn
  - compat_pfn_to_cr3
  - compat_cr3_to_pfn
  - audit_domain
  - _audit_domain
  - audit_domain
  - audit_domains
  - NIL
  - IS_NIL
  - domain_clamp_alloc_bitsize
  - arch_free_heap_page
  - arch_mfns_in_directmap
  source_file: /src/xen/xen/arch/x86/include/asm/mm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGT_none
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(0, 3)  '
    - item_type: preproc_def
      name: PGT_l1_page_table
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(1, 3)  '
    - item_type: preproc_def
      name: PGT_l2_page_table
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(2, 3)  '
    - item_type: preproc_def
      name: PGT_l3_page_table
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(3, 3)  '
    - item_type: preproc_def
      name: PGT_l4_page_table
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(4, 3)  '
    - item_type: preproc_def
      name: PGT_seg_desc_page
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(5, 3)  '
    - item_type: preproc_def
      name: PGT_shared_page
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(6, 3)  '
    - item_type: preproc_def
      name: PGT_writable_page
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(7, 3)  '
    - item_type: preproc_def
      name: PGT_type_mask
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: 'PG_mask(7, 3)  '
    - item_type: preproc_def
      name: _PGT_locked
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(4)
    - item_type: preproc_def
      name: PGT_locked
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 4)
    - item_type: preproc_def
      name: _PGT_pinned
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(5)
    - item_type: preproc_def
      name: PGT_pinned
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 5)
    - item_type: preproc_def
      name: _PGT_validated
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(6)
    - item_type: preproc_def
      name: PGT_validated
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 6)
    - item_type: preproc_def
      name: _PGT_pae_xen_l2
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGT_pae_xen_l2
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 7)
    - item_type: preproc_def
      name: PGT_pae_xen_l2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PGT_partial
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(8)
    - item_type: preproc_def
      name: PGT_partial
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 8)
    - item_type: preproc_def
      name: _PGT_non_coherent
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(9)
    - item_type: preproc_def
      name: PGT_non_coherent
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 9)
    - item_type: preproc_def
      name: PGT_count_width
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(9)
    - item_type: preproc_def
      name: PGT_count_mask
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ((1UL<<PGT_count_width)-1)
    - item_type: preproc_def
      name: _PGC_allocated
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(1)
    - item_type: preproc_def
      name: PGC_allocated
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 1)
    - item_type: preproc_def
      name: _PGC_xen_heap
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(2)
    - item_type: preproc_def
      name: PGC_xen_heap
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 2)
    - item_type: preproc_def
      name: _PGC_extra
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(3)
    - item_type: preproc_def
      name: PGC_extra
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 3)
    - item_type: preproc_def
      name: _PGC_broken
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(4)
    - item_type: preproc_def
      name: PGC_broken
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 4)
    - item_type: preproc_def
      name: PGC_state
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(3, 6)
    - item_type: preproc_def
      name: PGC_state_inuse
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(0, 6)
    - item_type: preproc_def
      name: PGC_state_offlining
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 6)
    - item_type: preproc_def
      name: PGC_state_offlined
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(2, 6)
    - item_type: preproc_def
      name: PGC_state_free
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(3, 6)
    - item_type: preproc_def
      name: _PGC_need_scrub
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGC_need_scrub
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 7)
    - item_type: preproc_def
      name: _PGC_shadowed_pt
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(8)
    - item_type: preproc_def
      name: PGC_shadowed_pt
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_mask(1, 8)
    - item_type: preproc_def
      name: PGC_shadowed_pt
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PGC_count_width
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(8)
    - item_type: preproc_def
      name: PGC_count_width
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGC_count_mask
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ((1UL<<PGC_count_width)-1)
    - item_type: preproc_def
      name: __pdx_t
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: unsigned int
    - item_type: preproc_def
      name: __pdx_t
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: PAGE_SH_REFCOUNT_WIDTH
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: (PGT_count_width - 7)
    - item_type: preproc_def
      name: INVALID_DIRTY_IDX
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ((1UL << (MAX_ORDER + 1)) - 1)
    - item_type: preproc_def
      name: BUDDY_NOT_SCRUBBING
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BUDDY_SCRUBBING
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUDDY_SCRUB_ABORT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PRtype_info
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '"016lx"'
    - item_type: preproc_def
      name: SHADOW_OOS_PAGES
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SHADOW_OOS_FIXUPS
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: frame_table
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ((struct page_info *)FRAMETABLE_VIRT_START)
    - item_type: preproc_def
      name: PDX_GROUP_SHIFT
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: L2_PAGETABLE_SHIFT
    - item_type: preproc_def
      name: RAM_TYPE_CONVENTIONAL
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: RAM_TYPE_RESERVED
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: RAM_TYPE_UNUSABLE
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: RAM_TYPE_ACPI
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: RAM_TYPE_UNKNOWN
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: machine_to_phys_mapping
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ((unsigned long *)RDWR_MPT_VIRT_START)
    - item_type: preproc_def
      name: INVALID_M2P_ENTRY
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: SHARED_M2P_ENTRY
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: (~0UL - 1UL)
    - item_type: preproc_def
      name: MMIO_RO_SUBPAGE_GRAN
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: AUDIT_SHADOW_ALREADY_LOCKED
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ( 1u << 0 )
    - item_type: preproc_def
      name: AUDIT_ERRORS_OK
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ( 1u << 1 )
    - item_type: preproc_def
      name: AUDIT_QUIET
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
      type_or_value: ( 1u << 2 )
    structs:
    - fields:
      - name: next
        type: __pdx_t
      item_type: struct
      name: page_list_entry
      pos:
        line_end: 117
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    - fields:
      - name: count_info
        type: unsigned long
      - name: u
        type: "union {\n\n        /* Page is in use: ((count_info & PGC_count_mask)
          != 0). */\n        struct {\n            /* Type reference count and various
          PGT_xxx flags and fields. */\n            unsigned long type_info;\n        }
          inuse;\n\n        /* Page is in use as a shadow: count_info == 0. */\n        struct
          {\n            unsigned long type:5;   /* What kind of shadow is this? */\n
          \           unsigned long pinned:1; /* Is the shadow pinned? */\n            unsigned
          long head:1;   /* Is this the first page of the shadow? */\n#define PAGE_SH_REFCOUNT_WIDTH
          (PGT_count_width - 7)\n            unsigned long count:PAGE_SH_REFCOUNT_WIDTH;
          /* Reference count */\n        } sh;\n\n        /* Page is on a free list:
          ((count_info & PGC_count_mask) == 0). */\n        union {\n            struct
          {\n                /*\n                 * Index of the first *possibly*
          unscrubbed page in the buddy.\n                 * One more bit than maximum
          possible order to accommodate\n                 * INVALID_DIRTY_IDX.\n                 */\n#define
          INVALID_DIRTY_IDX ((1UL << (MAX_ORDER + 1)) - 1)\n                unsigned
          int first_dirty;\n\n                /* Do TLBs need flushing for safety
          before next page use? */\n                bool need_tlbflush;\n\n#define
          BUDDY_NOT_SCRUBBING    0\n#define BUDDY_SCRUBBING        1\n#define BUDDY_SCRUB_ABORT
          \     2\n                uint8_t  scrub_state;\n            };\n\n            unsigned
          long val;\n        } free;\n\n    }"
      - name: v
        type: "union {\n\n        /* Page is in use, but not as a shadow. */\n        struct
          {\n            /* Owner of this page (zero if page is anonymous). */\n            __pdx_t
          _domain;\n        } inuse;\n\n        /* Page is in use as a shadow. */\n
          \       struct {\n            /* GMFN of guest page we're a shadow of. */\n
          \           __pdx_t back;\n        } sh;\n\n        /* Page is on a free
          list. */\n        struct {\n            /* Order-size of the free chunk
          this page is the head of. */\n            unsigned int order;\n        }
          free;\n\n    }"
      item_type: struct
      name: page_info
      pos:
        line_end: 307
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    - fields:
      - name: mfn
        type: unsigned long
      - name: order
        type: unsigned int
      item_type: struct
      name: platform_bad_page
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    - fields:
      - name: list
        type: struct list_head
      - name: mfn
        type: mfn_t
      - name: '*mapped'
        type: void
      item_type: struct
      name: subpage_ro_range
      pos:
        line_end: 556
        line_start: 551
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    - fields:
      - name: lock
        type: rspinlock_t
      - name: unlock_level
        type: int
      - name: locker
        type: int
      - name: '*locker_function'
        type: char
      item_type: struct
      name: mm_lock
      pos:
        line_end: 635
        line_start: 630
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    - fields:
      - name: lock
        type: percpu_rwlock_t
      - name: unlock_level
        type: int
      - name: recurse_count
        type: int
      - name: locker
        type: int
      - name: '*locker_function'
        type: char
      item_type: struct
      name: mm_rwlock
      pos:
        line_end: 643
        line_start: 637
        source_file: /src/xen/xen/arch/x86/include/asm/mm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X86_VENDOR_UNKNOWN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_VENDOR_INTEL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: X86_VENDOR_INTEL_EBX
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '_AC(0x756e6547, U) '
    - item_type: preproc_def
      name: X86_VENDOR_INTEL_ECX
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x6c65746e, U)
    - item_type: preproc_def
      name: X86_VENDOR_INTEL_EDX
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x49656e69, U)
    - item_type: preproc_def
      name: X86_VENDOR_AMD
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: X86_VENDOR_AMD_EBX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '_AC(0x68747541, U) '
    - item_type: preproc_def
      name: X86_VENDOR_AMD_ECX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x444d4163, U)
    - item_type: preproc_def
      name: X86_VENDOR_AMD_EDX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x69746e65, U)
    - item_type: preproc_def
      name: X86_VENDOR_CENTAUR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: X86_VENDOR_CENTAUR_EBX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '_AC(0x746e6543, U) '
    - item_type: preproc_def
      name: X86_VENDOR_CENTAUR_ECX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x736c7561, U)
    - item_type: preproc_def
      name: X86_VENDOR_CENTAUR_EDX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x48727561, U)
    - item_type: preproc_def
      name: X86_VENDOR_SHANGHAI
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: X86_VENDOR_SHANGHAI_EBX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '_AC(0x68532020, U) '
    - item_type: preproc_def
      name: X86_VENDOR_SHANGHAI_ECX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x20206961, U)
    - item_type: preproc_def
      name: X86_VENDOR_SHANGHAI_EDX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x68676e61, U)
    - item_type: preproc_def
      name: X86_VENDOR_HYGON
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: X86_VENDOR_HYGON_EBX
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: '_AC(0x6f677948, U) '
    - item_type: preproc_def
      name: X86_VENDOR_HYGON_ECX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x656e6975, U)
    - item_type: preproc_def
      name: X86_VENDOR_HYGON_EDX
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/x86-vendors.h
      type_or_value: _AC(0x6e65476e, U)
    structs: []
    typedefs: []
    union: []
- function_names:
  - APIC_INIT
  - init_apic_ldr
  source_file: /src/xen/xen/arch/x86/include/asm/genapic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _ASM_GENAPIC_H
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/xen/xen/arch/x86/include/asm/genapic.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TARGET_CPUS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/genapic.h
      type_or_value: ((const typeof(cpu_online_map) *)&cpu_online_map)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*probe)(void)
        type: int
      - name: (*init_apic_ldr)(void)
        type: void
      - name: (*send_IPI_mask)(const cpumask_t *mask, int vector)
        type: void
      - name: (*send_IPI_self)(uint8_t vector)
        type: void
      item_type: struct
      name: genapic
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/genapic.h
    typedefs: []
    union: []
- function_names:
  - ioports_access_permitted
  - has_arch_io_resources
  - cache_flush_permitted
  - ioports_permit_access
  - ioports_deny_access
  source_file: /src/xen/xen/arch/x86/include/asm/iocap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASSERT_FAILED
  source_file: /src/xen/xen/arch/x86/include/asm/bug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUG_INSTR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/bug.h
      type_or_value: '"ud2"'
    - item_type: preproc_def
      name: BUG_ASM_CONST
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/bug.h
      type_or_value: '"c"'
    - item_type: preproc_def
      name: WARN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/bug.h
      type_or_value: BUG_FRAME BUGFRAME_warn, __LINE__, __FILE__, 0, 0
    - item_type: preproc_def
      name: BUG
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/bug.h
      type_or_value: BUG_FRAME BUGFRAME_bug,  __LINE__, __FILE__, 0, 0
    structs: []
    typedefs: []
    union: []
- function_names:
  - tlbflush_current_time
  - page_set_tlbflush_timestamp
  - NEED_FLUSH
  - tlbflush_filter
  - read_cr3
  - invlpg
  - FLUSH_ORDER
  - flush_local
  - flush_mask
  - flush_area_all
  - flush_all
  - flush_tlb_local
  - flush_tlb_one_local
  - flush_tlb_mask
  - flush_tlb_one_mask
  - arch_flush_tlb_mask
  - flush_tlb_all
  - flush_tlb_one_all
  - flush_root_pgtbl_domain
  - flush_page_to_ram
  source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLUSH_ORDER_MASK
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: FLUSH_TLB
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: FLUSH_TLB_GLOBAL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: FLUSH_CACHE_EVICT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: FLUSH_VA_VALID
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: FLUSH_VCPU_STATE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: FLUSH_ROOT_PGTBL
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: FLUSH_HVM_ASID_CORE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: FLUSH_HVM_ASID_CORE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FLUSH_NO_ASSIST
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FLUSH_NO_ASSIST
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FLUSH_CACHE_WRITEBACK
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/flushtlb.h
      type_or_value: '0x10000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/i387.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FPU_WORD_SIZE_OFFSET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/i387.h
      type_or_value: '511'
    structs:
    - fields:
      - name: fcw
        type: uint16_t
      - name: fsw
        type: uint16_t
      - name: ftw
        type: uint16_t
      - name: fip
        type: uint32_t
      - name: fcs
        type: uint16_t
      - name: fop
        type: uint16_t
      - name: fdp
        type: uint32_t
      - name: fds
        type: uint16_t
      item_type: struct
      name: ix87_env
      pos:
        line_end: 27
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/i387.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/mce.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_MC_BANK_NUM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/mce.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MCi_STATUS_MSCOD_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/mce.h
      type_or_value: (~(0xffffULL << 16))
    structs:
    - fields:
      - name: mci_status
        type: uint64_t
      - name: mci_addr
        type: uint64_t
      - name: mci_misc
        type: uint64_t
      - name: mci_ctl2
        type: uint64_t
      item_type: struct
      name: vmce_bank
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/mce.h
    - fields:
      - name: mcg_cap
        type: uint64_t
      - name: mcg_status
        type: uint64_t
      - name: mcg_ext_ctl
        type: uint64_t
      - name: lock
        type: spinlock_t
      - name: bank[GUEST_MC_BANK_NUM]
        type: struct vmce_bank
      item_type: struct
      name: vmce
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/mce.h
    typedefs: []
    union: []
- function_names:
  - rdssp
  - wrss
  source_file: /src/xen/xen/arch/x86/include/asm/shstk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSP_NO_SHSTK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/shstk.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_gfn
  - SUPERPAGE_RSVD
  - fold_pse36
  - unfold_pse36
  - guest_l1e_get_gfn
  - guest_l2e_get_gfn
  - guest_l1e_get_flags
  - guest_l2e_get_flags
  - guest_l1e_get_pkey
  - guest_l2e_get_pkey
  - guest_l1e_from_gfn
  - guest_l2e_from_gfn
  - guest_l1_table_offset
  - guest_l2_table_offset
  - guest_l1e_get_gfn
  - guest_l2e_get_gfn
  - guest_l3e_get_gfn
  - guest_l4e_get_gfn
  - guest_l1e_get_flags
  - guest_l2e_get_flags
  - guest_l3e_get_flags
  - guest_l4e_get_flags
  - guest_l1e_get_pkey
  - guest_l2e_get_pkey
  - guest_l3e_get_pkey
  - guest_l1e_from_gfn
  - guest_l2e_from_gfn
  - guest_l3e_from_gfn
  - guest_l4e_from_gfn
  - guest_l1_table_offset
  - guest_l2_table_offset
  - guest_l3_table_offset
  - guest_l4_table_offset
  - guest_can_use_l2_superpages
  - guest_can_use_l3_superpages
  - guest_can_use_pse36
  - guest_nx_enabled
  - guest_wp_enabled
  - guest_smep_enabled
  - guest_smap_enabled
  - guest_pku_enabled
  - guest_pks_enabled
  - guest_rsvd_bits
  - guest_l1e_rsvd_bits
  - guest_l2e_rsvd_bits
  - guest_l3e_rsvd_bits
  - guest_l4e_rsvd_bits
  - guest_walk_to_gfn
  - guest_walk_to_gpa
  - guest_walk_to_page_order
  - GPT_RENAME2
  - GPT_RENAME
  - print_gw
  source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_ENTRIES
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_ENTRIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_SHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '12'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '22'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_RSVD
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_RSVD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PRI_gpte
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '"08x"'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_ENTRIES
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_ENTRIES
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_ENTRIES
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '4'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_SHIFT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '12'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_SHIFT
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '21'
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_SHIFT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '30'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_RSVD
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: 0x7ff0000000000000UL
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_RSVD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: 0x7ff0000000000000UL
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_RSVD
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: "(0xfff0000000000000UL | _PAGE_GLOBAL | _PAGE_PSE | _PAGE_DIRTY
        | \\\n     _PAGE_ACCESSED | _PAGE_USER | _PAGE_RW)"
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_ENTRIES
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_ENTRIES
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_ENTRIES
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L4_PAGETABLE_ENTRIES
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '512'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_SHIFT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '12'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_SHIFT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '21'
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_SHIFT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '30'
    - item_type: preproc_def
      name: GUEST_L4_PAGETABLE_SHIFT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '39'
    - item_type: preproc_def
      name: GUEST_L1_PAGETABLE_RSVD
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GUEST_L2_PAGETABLE_RSVD
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GUEST_L3_PAGETABLE_RSVD
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GUEST_L4_PAGETABLE_RSVD
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: _PAGE_PSE
    - item_type: preproc_def
      name: PRI_gpte
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: '"016"PRIx64'
    - item_type: preproc_def
      name: GUEST_L2_GFN_MASK
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: (GUEST_L1_PAGETABLE_ENTRIES - 1)
    - item_type: preproc_def
      name: GUEST_L3_GFN_MASK
      pos:
        line_end: 182
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: ((GUEST_L2_PAGETABLE_ENTRIES * GUEST_L1_PAGETABLE_ENTRIES) -
        1)
    - item_type: preproc_def
      name: guest_walk_tables
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type_or_value: GPT_RENAME(guest_walk_tables, GUEST_PAGING_LEVELS)
    structs:
    - fields:
      - name: l1
        type: guest_intpte_t
      item_type: struct
      name: guest_l1e_t
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    - fields:
      - name: l2
        type: guest_intpte_t
      item_type: struct
      name: guest_l2e_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    - fields:
      - name: va
        type: unsigned long
      - name: l2e
        type: guest_l2e_t
      - name: l2mfn
        type: mfn_t
      - name: l1mfn
        type: mfn_t
      - name: pfec
        type: uint32_t
      item_type: struct
      name: guest_pagetable_walk
      pos:
        line_end: 351
        line_start: 328
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
    typedefs:
    - item_type: typedef
      name: guest_intpte_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: uint32_t
    - item_type: typedef
      name: guest_l1e_t
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: l1_pgentry_t
    - item_type: typedef
      name: guest_l2e_t
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: l2_pgentry_t
    - item_type: typedef
      name: guest_l3e_t
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: l3_pgentry_t
    - item_type: typedef
      name: guest_l4e_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: l4_pgentry_t
    - item_type: typedef
      name: guest_intpte_t
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: intpte_t
    - item_type: typedef
      name: walk_t
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/xen/xen/arch/x86/include/asm/guest_pt.h
      type: guest_pagetable_walk
    union: []
- function_names:
  - cpufeat_word
  - cpufeat_bit
  - cpufeat_mask
  - VFM_MAKE
  - VFM_MODEL
  - VFM_FAMILY
  - VFM_VENDOR
  - CPU_DATA_INIT
  - cpu_has
  - boot_cpu_has
  source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
  types:
    enum:
    - enumerators:
      - name: CACHE_TYPE_NULL
        value: '0'
      - name: CACHE_TYPE_DATA
        value: '1'
      - name: CACHE_TYPE_INST
        value: '2'
      - name: CACHE_TYPE_UNIFIED
        value: '3'
      item_type: enum
      name: _cache_type
      pos:
        line_end: 319
        line_start: 314
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    preproc_defs:
    - item_type: preproc_def
      name: X86_FEATURE_ALWAYS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: X86_FEATURE_LM
    - item_type: preproc_def
      name: VFM_MODEL_MASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '0x000000ff'
    - item_type: preproc_def
      name: VFM_FAMILY_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '0x0000ff00'
    - item_type: preproc_def
      name: VFM_VENDOR_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '0x00ff0000'
    - item_type: preproc_def
      name: CPUID_PM_LEAF
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '6'
    - item_type: preproc_def
      name: cpu_has_fpu
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: cpu_has_de
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: cpu_has_pse
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: cpu_has_apic
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_APIC)
    - item_type: preproc_def
      name: cpu_has_sep
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SEP)
    - item_type: preproc_def
      name: cpu_has_mtrr
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MTRR)
    - item_type: preproc_def
      name: cpu_has_pge
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: cpu_has_pse36
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PSE36)
    - item_type: preproc_def
      name: cpu_has_clflush
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CLFLUSH)
    - item_type: preproc_def
      name: cpu_has_mmx
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: cpu_has_htt
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_HTT)
    - item_type: preproc_def
      name: cpu_has_sse3
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSE3)
    - item_type: preproc_def
      name: cpu_has_pclmulqdq
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PCLMULQDQ)
    - item_type: preproc_def
      name: cpu_has_monitor
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MONITOR)
    - item_type: preproc_def
      name: cpu_has_vmx
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_VMX)
    - item_type: preproc_def
      name: cpu_has_eist
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_EIST)
    - item_type: preproc_def
      name: cpu_has_ssse3
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSSE3)
    - item_type: preproc_def
      name: cpu_has_fma
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_FMA)
    - item_type: preproc_def
      name: cpu_has_cx16
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CX16)
    - item_type: preproc_def
      name: cpu_has_pdcm
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PDCM)
    - item_type: preproc_def
      name: cpu_has_pcid
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PCID)
    - item_type: preproc_def
      name: cpu_has_sse4_1
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSE4_1)
    - item_type: preproc_def
      name: cpu_has_sse4_2
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSE4_2)
    - item_type: preproc_def
      name: cpu_has_x2apic
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_X2APIC)
    - item_type: preproc_def
      name: cpu_has_popcnt
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_POPCNT)
    - item_type: preproc_def
      name: cpu_has_aesni
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AESNI)
    - item_type: preproc_def
      name: cpu_has_xsave
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XSAVE)
    - item_type: preproc_def
      name: cpu_has_avx
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX)
    - item_type: preproc_def
      name: cpu_has_f16c
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_F16C)
    - item_type: preproc_def
      name: cpu_has_rdrand
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RDRAND)
    - item_type: preproc_def
      name: cpu_has_hypervisor
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_HYPERVISOR)
    - item_type: preproc_def
      name: cpu_has_nx
      pos:
        line_end: 156
        line_start: 154
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: "(IS_ENABLED(CONFIG_REQUIRE_NX) || \\\n                                 boot_cpu_has(X86_FEATURE_NX))"
    - item_type: preproc_def
      name: cpu_has_page1gb
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PAGE1GB)
    - item_type: preproc_def
      name: cpu_has_rdtscp
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RDTSCP)
    - item_type: preproc_def
      name: cpu_has_3dnow_ext
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_3DNOWEXT)
    - item_type: preproc_def
      name: cpu_has_3dnow
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_3DNOW)
    - item_type: preproc_def
      name: cpu_has_cmp_legacy
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CMP_LEGACY)
    - item_type: preproc_def
      name: cpu_has_svm
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SVM)
    - item_type: preproc_def
      name: cpu_has_sse4a
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSE4A)
    - item_type: preproc_def
      name: cpu_has_xop
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XOP)
    - item_type: preproc_def
      name: cpu_has_skinit
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SKINIT)
    - item_type: preproc_def
      name: cpu_has_fma4
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_FMA4)
    - item_type: preproc_def
      name: cpu_has_tbm
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TBM)
    - item_type: preproc_def
      name: cpu_has_turbo_boost
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.turbo_boost
    - item_type: preproc_def
      name: cpu_has_arat
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.arat
    - item_type: preproc_def
      name: cpu_has_hwp
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp
    - item_type: preproc_def
      name: cpu_has_hwp_interrupt
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp_interrupt
    - item_type: preproc_def
      name: cpu_has_hwp_activity_window
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp_activity_window
    - item_type: preproc_def
      name: cpu_has_hwp_epp
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp_epp
    - item_type: preproc_def
      name: cpu_has_hwp_request_pkg
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp_request_pkg
    - item_type: preproc_def
      name: cpu_has_hdc
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hdc
    - item_type: preproc_def
      name: cpu_has_hwp_peci_override
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hwp_peci_override
    - item_type: preproc_def
      name: cpu_has_hw_feedback
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hw_feedback
    - item_type: preproc_def
      name: cpu_has_hw_feedback_cap
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: host_cpu_policy.basic.hw_feedback_cap
    - item_type: preproc_def
      name: cpu_has_xsaveopt
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XSAVEOPT)
    - item_type: preproc_def
      name: cpu_has_xsavec
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XSAVEC)
    - item_type: preproc_def
      name: cpu_has_xgetbv1
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XGETBV1)
    - item_type: preproc_def
      name: cpu_has_xsaves
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XSAVES)
    - item_type: preproc_def
      name: cpu_has_bmi1
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_BMI1)
    - item_type: preproc_def
      name: cpu_has_hle
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_HLE)
    - item_type: preproc_def
      name: cpu_has_avx2
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX2)
    - item_type: preproc_def
      name: cpu_has_smep
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SMEP)
    - item_type: preproc_def
      name: cpu_has_bmi2
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_BMI2)
    - item_type: preproc_def
      name: cpu_has_invpcid
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_INVPCID)
    - item_type: preproc_def
      name: cpu_has_rtm
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RTM)
    - item_type: preproc_def
      name: cpu_has_pqe
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PQE)
    - item_type: preproc_def
      name: cpu_has_fpu_sel
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: (!boot_cpu_has(X86_FEATURE_NO_FPU_SEL))
    - item_type: preproc_def
      name: cpu_has_mpx
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MPX)
    - item_type: preproc_def
      name: cpu_has_avx512f
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512F)
    - item_type: preproc_def
      name: cpu_has_avx512dq
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512DQ)
    - item_type: preproc_def
      name: cpu_has_rdseed
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RDSEED)
    - item_type: preproc_def
      name: cpu_has_smap
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SMAP)
    - item_type: preproc_def
      name: cpu_has_avx512_ifma
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_IFMA)
    - item_type: preproc_def
      name: cpu_has_clflushopt
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CLFLUSHOPT)
    - item_type: preproc_def
      name: cpu_has_clwb
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CLWB)
    - item_type: preproc_def
      name: cpu_has_avx512cd
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512CD)
    - item_type: preproc_def
      name: cpu_has_proc_trace
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PROC_TRACE)
    - item_type: preproc_def
      name: cpu_has_sha
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SHA)
    - item_type: preproc_def
      name: cpu_has_avx512bw
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512BW)
    - item_type: preproc_def
      name: cpu_has_avx512vl
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512VL)
    - item_type: preproc_def
      name: cpu_has_avx512_vbmi
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_VBMI)
    - item_type: preproc_def
      name: cpu_has_pku
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PKU)
    - item_type: preproc_def
      name: cpu_has_avx512_vbmi2
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_VBMI2)
    - item_type: preproc_def
      name: cpu_has_gfni
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_GFNI)
    - item_type: preproc_def
      name: cpu_has_vaes
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_VAES)
    - item_type: preproc_def
      name: cpu_has_vpclmulqdq
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_VPCLMULQDQ)
    - item_type: preproc_def
      name: cpu_has_avx512_vnni
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_VNNI)
    - item_type: preproc_def
      name: cpu_has_avx512_bitalg
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_BITALG)
    - item_type: preproc_def
      name: cpu_has_avx512_vpopcntdq
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_VPOPCNTDQ)
    - item_type: preproc_def
      name: cpu_has_rdpid
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RDPID)
    - item_type: preproc_def
      name: cpu_has_movdiri
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MOVDIRI)
    - item_type: preproc_def
      name: cpu_has_movdir64b
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MOVDIR64B)
    - item_type: preproc_def
      name: cpu_has_enqcmd
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_ENQCMD)
    - item_type: preproc_def
      name: cpu_has_pks
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PKS)
    - item_type: preproc_def
      name: cpu_has_hw_pstate
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_HW_PSTATE)
    - item_type: preproc_def
      name: cpu_has_itsc
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_ITSC)
    - item_type: preproc_def
      name: cpu_has_amd_ssbd
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AMD_SSBD)
    - item_type: preproc_def
      name: cpu_has_virt_ssbd
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_VIRT_SSBD)
    - item_type: preproc_def
      name: cpu_has_ssb_no
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SSB_NO)
    - item_type: preproc_def
      name: cpu_has_cppc
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CPPC)
    - item_type: preproc_def
      name: cpu_has_auto_ibrs
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AUTO_IBRS)
    - item_type: preproc_def
      name: cpu_has_avx512_vp2intersect
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_VP2INTERSECT)
    - item_type: preproc_def
      name: cpu_has_srbds_ctrl
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SRBDS_CTRL)
    - item_type: preproc_def
      name: cpu_has_md_clear
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MD_CLEAR)
    - item_type: preproc_def
      name: cpu_has_rtm_always_abort
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RTM_ALWAYS_ABORT)
    - item_type: preproc_def
      name: cpu_has_tsx_force_abort
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TSX_FORCE_ABORT)
    - item_type: preproc_def
      name: cpu_has_serialize
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SERIALIZE)
    - item_type: preproc_def
      name: cpu_has_hybrid
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_HYBRID)
    - item_type: preproc_def
      name: cpu_has_avx512_fp16
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_FP16)
    - item_type: preproc_def
      name: cpu_has_arch_caps
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_ARCH_CAPS)
    - item_type: preproc_def
      name: cpu_has_sha512
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SHA512)
    - item_type: preproc_def
      name: cpu_has_sm3
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SM3)
    - item_type: preproc_def
      name: cpu_has_sm4
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SM4)
    - item_type: preproc_def
      name: cpu_has_avx_vnni
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX_VNNI)
    - item_type: preproc_def
      name: cpu_has_avx512_bf16
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX512_BF16)
    - item_type: preproc_def
      name: cpu_has_cmpccxadd
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CMPCCXADD)
    - item_type: preproc_def
      name: cpu_has_fred
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_FRED)
    - item_type: preproc_def
      name: cpu_has_lkgs
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_LKGS)
    - item_type: preproc_def
      name: cpu_has_nmi_src
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_NMI_SRC)
    - item_type: preproc_def
      name: cpu_has_avx_ifma
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX_IFMA)
    - item_type: preproc_def
      name: cpu_has_lfence_dispatch
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_LFENCE_DISPATCH)
    - item_type: preproc_def
      name: cpu_has_verw_clear
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_VERW_CLEAR)
    - item_type: preproc_def
      name: cpu_has_nscb
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_NSCB)
    - item_type: preproc_def
      name: cpu_has_avx_vnni_int8
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX_VNNI_INT8)
    - item_type: preproc_def
      name: cpu_has_avx_ne_convert
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX_NE_CONVERT)
    - item_type: preproc_def
      name: cpu_has_avx_vnni_int16
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_AVX_VNNI_INT16)
    - item_type: preproc_def
      name: cpu_has_rdcl_no
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RDCL_NO)
    - item_type: preproc_def
      name: cpu_has_eibrs
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_EIBRS)
    - item_type: preproc_def
      name: cpu_has_rsba
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RSBA)
    - item_type: preproc_def
      name: cpu_has_skip_l1dfl
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_SKIP_L1DFL)
    - item_type: preproc_def
      name: cpu_has_mds_no
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MDS_NO)
    - item_type: preproc_def
      name: cpu_has_if_pschange_mc_no
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_IF_PSCHANGE_MC_NO)
    - item_type: preproc_def
      name: cpu_has_tsx_ctrl
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TSX_CTRL)
    - item_type: preproc_def
      name: cpu_has_taa_no
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TAA_NO)
    - item_type: preproc_def
      name: cpu_has_mcu_ctrl
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_MCU_CTRL)
    - item_type: preproc_def
      name: cpu_has_doitm
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_DOITM)
    - item_type: preproc_def
      name: cpu_has_fb_clear
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_FB_CLEAR)
    - item_type: preproc_def
      name: cpu_has_rrsba
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RRSBA)
    - item_type: preproc_def
      name: cpu_has_gds_ctrl
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_GDS_CTRL)
    - item_type: preproc_def
      name: cpu_has_gds_no
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_GDS_NO)
    - item_type: preproc_def
      name: cpu_has_rfds_no
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RFDS_NO)
    - item_type: preproc_def
      name: cpu_has_rfds_clear
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_RFDS_CLEAR)
    - item_type: preproc_def
      name: cpu_has_pb_opt_ctrl
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_PB_OPT_CTRL)
    - item_type: preproc_def
      name: cpu_has_its_no
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_ITS_NO)
    - item_type: preproc_def
      name: cpu_has_tsa_sq_no
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TSA_SQ_NO)
    - item_type: preproc_def
      name: cpu_has_tsa_l1_no
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_TSA_L1_NO)
    - item_type: preproc_def
      name: cpu_has_arch_perfmon
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_ARCH_PERFMON)
    - item_type: preproc_def
      name: cpu_has_cpuid_faulting
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_CPUID_FAULTING)
    - item_type: preproc_def
      name: cpu_has_xen_lbr
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_FEATURE_XEN_LBR)
    - item_type: preproc_def
      name: cpu_has_xen_shstk
      pos:
        line_end: 305
        line_start: 303
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: "(IS_ENABLED(CONFIG_XEN_SHSTK) && \\\n                                 boot_cpu_has(X86_FEATURE_XEN_SHSTK))"
    - item_type: preproc_def
      name: cpu_has_xen_ibt
      pos:
        line_end: 307
        line_start: 305
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: "(IS_ENABLED(CONFIG_XEN_IBT) && \\\n                                 boot_cpu_has(X86_FEATURE_XEN_IBT))"
    - item_type: preproc_def
      name: cpu_has_msr_tsc_aux
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: (cpu_has_rdtscp || cpu_has_rdpid)
    - item_type: preproc_def
      name: cpu_bug_fpu_ptrs
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_BUG_FPU_PTRS)
    - item_type: preproc_def
      name: cpu_bug_null_seg
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
      type_or_value: boot_cpu_has(X86_BUG_NULL_SEG)
    structs:
    - fields:
      - name: cpuid_level
        type: unsigned int
      - name: extended_cpuid_level
        type: unsigned int
      - name: x86_capability[NCAPINTS]
        type: unsigned int
      - name: x86_vendor_id[16]
        type: char
      - name: x86_model_id[64]
        type: char
      - name: x86_cache_size
        type: unsigned int
      - name: x86_cache_alignment
        type: unsigned int
      - name: x86_max_cores
        type: unsigned int
      - name: booted_cores
        type: unsigned int
      - name: x86_num_siblings
        type: unsigned int
      - name: apicid
        type: unsigned int
      - name: phys_proc_id
        type: unsigned int
      - name: cpu_core_id
        type: unsigned int
      - name: compute_unit_id
        type: unsigned int
      - name: x86_clflush_size
        type: unsigned short
      item_type: struct
      name: cpuinfo_x86
      pos:
        line_end: 84
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    - fields:
      - name: eax
        type: union _cpuid4_leaf_eax
      - name: ebx
        type: union _cpuid4_leaf_ebx
      - name: ecx
        type: union _cpuid4_leaf_ecx
      - name: size
        type: unsigned long
      item_type: struct
      name: cpuid4_info
      pos:
        line_end: 355
        line_start: 350
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    typedefs: []
    union:
    - fields:
      - name: split
        type: "struct {\n        enum _cache_type type:5;\n        unsigned int level:3;\n
          \       unsigned int is_self_initializing:1;\n        unsigned int is_fully_associative:1;\n
          \       unsigned int reserved:4;\n        unsigned int num_threads_sharing:12;\n
          \       unsigned int num_cores_on_die:6;\n    }"
      - name: full
        type: u32
      item_type: union
      name: _cpuid4_leaf_eax
      pos:
        line_end: 332
        line_start: 321
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    - fields:
      - name: split
        type: "struct {\n        unsigned int coherency_line_size:12;\n        unsigned
          int physical_line_partition:10;\n        unsigned int ways_of_associativity:10;\n
          \   }"
      - name: full
        type: u32
      item_type: union
      name: _cpuid4_leaf_ebx
      pos:
        line_end: 341
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
    - fields:
      - name: split
        type: "struct {\n        unsigned int number_of_sets:32;\n    }"
      - name: full
        type: u32
      item_type: union
      name: _cpuid4_leaf_ecx
      pos:
        line_end: 348
        line_start: 343
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeature.h
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/cache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1_CACHE_SHIFT
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/cache.h
      type_or_value: (CONFIG_X86_L1_CACHE_SHIFT)
    - item_type: preproc_def
      name: L1_CACHE_BYTES
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/cache.h
      type_or_value: (1 << L1_CACHE_SHIFT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALT_NOT
  - alt_instr
  - __ALT_PTR
  - ALT_ORIG_PTR
  - ALT_REPL_PTR
  - alt_repl_s
  - alt_repl_e
  - alt_repl_len
  - AS_TRUE
  - as_max
  - OLDINSTR
  - OLDINSTR_1
  - OLDINSTR_2
  - ALTINSTR_ENTRY
  - DISCARD_ENTRY
  - ALTINSTR_REPLACEMENT
  - ALTERNATIVE
  - ALTERNATIVE_2
  - alternative
  - alternative_2
  - alternative_input
  - alternative_io
  - alternative_io_2
  - ASM_OUTPUT2
  source_file: /src/xen/xen/arch/x86/include/asm/alternative.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALT_FLAG_NOT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/alternative.h
      type_or_value: (1 << 15)
    - item_type: preproc_def
      name: alt_orig_len
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/alternative.h
      type_or_value: '"(.LXEN%=_orig_e - .LXEN%=_orig_s)"'
    - item_type: preproc_def
      name: alt_pad_len
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/alternative.h
      type_or_value: '"(.LXEN%=_orig_p - .LXEN%=_orig_e)"'
    - item_type: preproc_def
      name: alt_total_len
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/alternative.h
      type_or_value: '"(.LXEN%=_orig_p - .LXEN%=_orig_s)"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_MARKER
  - SET_MARKER
  - IS_CONTIG
  - pt_update_contig_markers
  source_file: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
  types:
    enum:
    - enumerators:
      - name: PTE_kind_null
      - name: PTE_kind_table
      - name: PTE_kind_leaf
      item_type: enum
      name: PTE_kind
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
    preproc_defs:
    - item_type: preproc_def
      name: CONTIG_LEVEL_SHIFT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CONTIG_NR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/pt-contig-markers.h
      type_or_value: (1 << CONTIG_LEVEL_SHIFT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_physical_id
  - get_cpu_current
  source_file: /src/xen/xen/arch/x86/include/asm/smp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BAD_APICID
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/smp.h
      type_or_value: (-1U)
    - item_type: preproc_def
      name: INVALID_CUID
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/smp.h
      type_or_value: '(~0U)   '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/spec_ctrl_asm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tboot_probe
  - tboot_shutdown
  - tboot_in_measured_env
  - tboot_protect_mem_regions
  - tboot_parse_dmar_table
  - tboot_s3_resume
  - tboot_s3_error
  - tboot_wake_ap
  source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TB_KEY_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '64   '
    - item_type: preproc_def
      name: MAX_TB_MAC_REGIONS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '32'
    - item_type: preproc_def
      name: TB_SHUTDOWN_REBOOT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TB_SHUTDOWN_S5
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TB_SHUTDOWN_S4
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TB_SHUTDOWN_S3
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TB_SHUTDOWN_HALT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TB_FLAG_AP_WAKE_SUPPORT
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: TBOOT_SHARED_UUID
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
      type_or_value: "{ 0x663c8dff, 0xe8b3, 0x4b82, 0xaabf, \\\n                               {
        0x19, 0xea, 0x4d, 0x5, 0x7a, 0x8 } };"
    structs:
    - fields:
      - name: data1
        type: uint32_t
      - name: data2
        type: uint16_t
      - name: data3
        type: uint16_t
      - name: data4
        type: uint16_t
      - name: data5[6]
        type: uint8_t
      item_type: struct
      name: __packed
      pos:
        line_end: 47
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
    - fields:
      - name: start
        type: uint64_t
      - name: size
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 57
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
    - fields:
      - name: space_id
        type: uint8_t
      - name: bit_width
        type: uint8_t
      - name: bit_offset
        type: uint8_t
      - name: access_width
        type: uint8_t
      - name: address
        type: uint64_t
      item_type: struct
      name: __packed
      pos:
        line_end: 66
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
    - fields:
      - name: pm1a_cnt_blk
        type: tboot_acpi_generic_address_t
      - name: pm1b_cnt_blk
        type: tboot_acpi_generic_address_t
      - name: pm1a_evt_blk
        type: tboot_acpi_generic_address_t
      - name: pm1b_evt_blk
        type: tboot_acpi_generic_address_t
      - name: pm1a_cnt_val
        type: uint16_t
      - name: pm1b_cnt_val
        type: uint16_t
      - name: wakeup_vector
        type: uint64_t
      - name: vector_width
        type: uint32_t
      - name: kernel_s3_resume_vector
        type: uint64_t
      item_type: struct
      name: __packed
      pos:
        line_end: 78
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
    - fields:
      - name: uuid
        type: uuid_t
      - name: version
        type: uint32_t
      - name: log_addr
        type: uint32_t
      - name: shutdown_entry
        type: uint32_t
      - name: shutdown_type
        type: uint32_t
      - name: acpi_sinfo
        type: tboot_acpi_sleep_info_t
      - name: tboot_base
        type: uint32_t
      - name: tboot_size
        type: uint32_t
      - name: num_mac_regions
        type: uint8_t
      - name: mac_regions[MAX_TB_MAC_REGIONS]
        type: tboot_mac_region_t
      - name: s3_key[TB_KEY_SIZE]
        type: uint8_t
      - name: reserved_align[3]
        type: uint8_t
      - name: num_in_wfs
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: ap_wake_addr
        type: uint64_t
      - name: ap_wake_trigger
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 104
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/tboot.h
    typedefs: []
    union: []
- function_names:
  - p2m_mem_access_check
  source_file: /src/xen/xen/arch/x86/include/asm/mem_access.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - altp2m_is_eptp_valid
  - altp2m_active
  - altp2m_vcpu_idx
  - altp2m_is_eptp_valid
  - altp2m_active
  source_file: /src/xen/xen/arch/x86/include/asm/altp2m.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/dom0_build.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AMD_OSVW_ERRATUM
  - AMD_MODEL_RANGE
  - AMD_MODEL_RANGE_FAMILY
  - AMD_MODEL_RANGE_START
  - AMD_MODEL_RANGE_END
  - is_zen1_uarch
  - is_zen2_uarch
  - is_zen3_uarch
  - is_zen4_uarch
  source_file: /src/xen/xen/arch/x86/include/asm/amd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __VA_ARGS__
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/amd.h
      type_or_value: ', 0'
    - item_type: preproc_def
      name: AMD_ERRATUM_121
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/amd.h
      type_or_value: AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x0f, 0x0, 0x0, 0x3f, 0xf))
    - item_type: preproc_def
      name: AMD_ERRATUM_170
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/amd.h
      type_or_value: AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x0f, 0x0, 0x0, 0x67, 0xf))
    - item_type: preproc_def
      name: AMD_ERRATUM_383
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/amd.h
      type_or_value: "AMD_OSVW_ERRATUM(3, AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf),\t\\\n\t\t
        \       AMD_MODEL_RANGE(0x12, 0x0, 0x0, 0x1, 0x0))"
    - item_type: preproc_def
      name: AMD_ERRATUM_573
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/amd.h
      type_or_value: "AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x0f, 0x0, 0x0, 0xff, 0xf),\t\\\n
        \                      AMD_MODEL_RANGE(0x10, 0x0, 0x0, 0xff, 0xf),\t\\\n                       AMD_MODEL_RANGE(0x11,
        0x0, 0x0, 0xff, 0xf),\t\\\n                       AMD_MODEL_RANGE(0x12, 0x0,
        0x0, 0xff, 0xf))"
    structs: []
    typedefs: []
    union: []
- function_names:
  - e820entry
  source_file: /src/xen/xen/arch/x86/include/asm/e820.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E820_RAM
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '1'
    - item_type: preproc_def
      name: E820_RESERVED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '2'
    - item_type: preproc_def
      name: E820_ACPI
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '3'
    - item_type: preproc_def
      name: E820_NVS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '4'
    - item_type: preproc_def
      name: E820_UNUSABLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '5'
    - item_type: preproc_def
      name: E820MAX
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: nr_map
        type: unsigned int
      - name: map[E820MAX]
        type: struct e820entry
      item_type: struct
      name: e820map
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/e820.h
    typedefs: []
    union: []
- function_names:
  - p2m_to_mask
  - p2m_is_ram
  - p2m_is_hole
  - p2m_is_mmio
  - p2m_is_readonly
  - p2m_is_discard_write
  - p2m_is_changeable
  - p2m_is_pod
  - p2m_is_grant
  - p2m_is_valid
  - p2m_is_pageable
  - p2m_is_paging
  - p2m_is_paged
  - p2m_is_sharable
  - p2m_is_shared
  - p2m_is_special
  - p2m_is_broken
  - p2m_is_foreign
  - p2m_is_any_ram
  - p2m_allows_invalid_mfn
  - p2m_get_hostp2m
  - np2m_schedule
  - p2m_is_hostp2m
  - p2m_is_nestedp2m
  - p2m_is_altp2m
  - p2m_get_pagetable
  - _get_gfn_type_access
  - get_gfn_type_access
  - get_gfn_type
  - get_gfn
  - get_gfn_query
  - get_gfn_unshare
  - put_gfn
  - get_gfn_query_unlocked
  - get_page_from_gfn
  - mfn_to_gfn
  - _altp2m_get_effective_entry
  - altp2m_get_effective_entry
  - p2m_flush_hardware_cached_dirty
  - p2m_is_global_logdirty
  - p2m_pod_demand_populate
  - p2m_pod_empty_cache
  - p2m_pod_active
  - p2m_pod_offline_or_broken_hit
  - p2m_pod_offline_or_broken_replace
  - relinquish_p2m_mapping
  - p2m_pt_init
  - P2M_PRINTK
  - P2M_ERROR
  - P2M_DEBUG
  - P2M_DEBUG
  - p2m_flags_to_type
  - p2m_recalc_type_range
  - p2m_recalc_type
  - p2m_get_altp2m
  - p2m_set_altp2m
  - p2m_access_to_iommu_flags
  - p2m_get_iommu_flags
  - p2m_entry_modify
  source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P2M_AUDIT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '1'
    - item_type: preproc_def
      name: P2M_AUDIT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_DEBUGGING
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_ALLOC
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '(1u<<0)   '
    - item_type: preproc_def
      name: P2M_UNSHARE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '(1u<<1)   '
    - item_type: preproc_def
      name: P2M_RAM_TYPES
      pos:
        line_end: 88
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_rw)                \\\n                       |
        p2m_to_mask(p2m_ram_logdirty)        \\\n                       | p2m_to_mask(p2m_ram_ro)
        \             \\\n                       | p2m_to_mask(p2m_ram_paging_out)
        \     \\\n                       | p2m_to_mask(p2m_ram_paged)           \\\n
        \                      | p2m_to_mask(p2m_ram_paging_in)       \\\n                       |
        p2m_to_mask(p2m_ram_shared)          \\\n                       | p2m_to_mask(p2m_ioreq_server))"
    - item_type: preproc_def
      name: P2M_HOLE_TYPES
      pos:
        line_end: 95
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_mmio_dm)        \\\n                       |
        p2m_to_mask(p2m_invalid)       \\\n                       | p2m_to_mask(p2m_ram_paging_in)
        \\\n                       | p2m_to_mask(p2m_ram_paged))"
    - item_type: preproc_def
      name: P2M_GRANT_TYPES
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_grant_map_rw)  \\\n                         |
        p2m_to_mask(p2m_grant_map_ro) )"
    - item_type: preproc_def
      name: P2M_MMIO_TYPES
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_mmio_dm)        \\\n                        |
        p2m_to_mask(p2m_mmio_direct))"
    - item_type: preproc_def
      name: P2M_RO_TYPES
      pos:
        line_end: 110
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_logdirty)     \\\n                      |
        p2m_to_mask(p2m_ram_ro)         \\\n                      | p2m_to_mask(p2m_grant_map_ro)
        \  \\\n                      | p2m_to_mask(p2m_ram_shared))"
    - item_type: preproc_def
      name: P2M_DISCARD_WRITE_TYPES
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_ro)     \\\n                      | p2m_to_mask(p2m_grant_map_ro))"
    - item_type: preproc_def
      name: P2M_CHANGEABLE_TYPES
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_rw) \\\n                              |
        p2m_to_mask(p2m_ram_logdirty) \\\n                              | p2m_to_mask(p2m_ioreq_server)
        )"
    - item_type: preproc_def
      name: P2M_POD_TYPES
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (p2m_to_mask(p2m_populate_on_demand))
    - item_type: preproc_def
      name: P2M_PAGEABLE_TYPES
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_rw) \\\n                            | p2m_to_mask(p2m_ram_logdirty)
        )"
    - item_type: preproc_def
      name: P2M_PAGING_TYPES
      pos:
        line_end: 130
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_paging_out)        \\\n                          |
        p2m_to_mask(p2m_ram_paged)           \\\n                          | p2m_to_mask(p2m_ram_paging_in))"
    - item_type: preproc_def
      name: P2M_PAGED_TYPES
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (p2m_to_mask(p2m_ram_paged))
    - item_type: preproc_def
      name: P2M_PAGING_TYPES
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_PAGED_TYPES
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_SHARABLE_TYPES
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_rw) \\\n                            | p2m_to_mask(p2m_ram_logdirty)
        )"
    - item_type: preproc_def
      name: P2M_SHARED_TYPES
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (p2m_to_mask(p2m_ram_shared))
    - item_type: preproc_def
      name: P2M_SHARED_TYPES
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_SPECIAL_TYPES
      pos:
        line_end: 153
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(P2M_GRANT_TYPES | \\\n                           p2m_to_mask(p2m_map_foreign)
        | \\\n                           p2m_to_mask(p2m_mmio_direct))"
    - item_type: preproc_def
      name: P2M_INVALID_MFN_TYPES
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: "(P2M_POD_TYPES                  \\\n                               |
        p2m_to_mask(p2m_mmio_direct) \\\n                               | P2M_PAGING_TYPES)"
    - item_type: preproc_def
      name: P2M_BROKEN_TYPES
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (p2m_to_mask(p2m_ram_broken))
    - item_type: preproc_def
      name: NR_POD_MRP_ENTRIES
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '32'
    - item_type: preproc_def
      name: POD_LAST_SUPERPAGE
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (gfn_x(INVALID_GFN) & ~(gfn_x(INVALID_GFN) >> 1))
    - item_type: preproc_def
      name: P2M_BASE_EADDR
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: (~0ULL)
    - item_type: preproc_def
      name: NP2M_SCHEDLE_IN
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NP2M_SCHEDLE_OUT
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: '1'
    - item_type: preproc_def
      name: AP2MGET_prepopulate
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: 'true'
    - item_type: preproc_def
      name: AP2MGET_query
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type_or_value: 'false'
    structs:
    - fields:
      - name: dirty_cpumask
        type: cpumask_var_t
      - name: '*domain'
        type: struct domain
      - name: p2m_class
        type: p2m_class_t
      - name: default_access
        type: p2m_access_t
      item_type: struct
      name: p2m_domain
      pos:
        line_end: 393
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
    - fields:
      - name: list[NR_POD_MRP_ENTRIES]
        type: unsigned long
      - name: idx
        type: unsigned int
      item_type: struct
      name: pod_mrp_list
      pos:
        line_end: 338
        line_start: 330
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
    typedefs:
    - item_type: typedef
      name: p2m_query_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/p2m.h
      type: unsigned int
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/asm-defns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RET
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/asm-defns.h
      type_or_value: jmp __x86_return_thunk
    - item_type: preproc_def
      name: RET
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/asm-defns.h
      type_or_value: ret
    - item_type: preproc_def
      name: ENDBR64
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/asm-defns.h
      type_or_value: endbr64
    structs: []
    typedefs: []
    union: []
- function_names:
  - psr_cmt_enabled
  - psr_ctxt_switch_to
  - psr_domain_init
  - psr_domain_free
  source_file: /src/xen/xen/arch/x86/include/asm/psr.h
  types:
    enum:
    - enumerators:
      - name: PSR_TYPE_L3_CBM
      - name: PSR_TYPE_MBA_THRTL
      - name: PSR_TYPE_L3_CODE
      - name: PSR_TYPE_L3_DATA
      - name: PSR_TYPE_L2_CBM
      - name: PSR_TYPE_UNKNOWN
      item_type: enum
      name: psr_type
      pos:
        line_end: 65
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
    preproc_defs:
    - item_type: preproc_def
      name: PSR_CPUID_LEVEL_CAT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PSR_RESOURCE_TYPE_L3
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PSR_RESOURCE_TYPE_L2
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: PSR_RESOURCE_TYPE_MBA
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: PSR_CMT_L3_OCCUPANCY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PSR_CAT_CDP_CAPABILITY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: (1u << 2)
    - item_type: preproc_def
      name: PSR_L3_QOS_CDP_ENABLE_BIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: PSR_INFO_IDX_COS_MAX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PSR_INFO_IDX_CAT_CBM_LEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PSR_INFO_IDX_CAT_FLAGS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PSR_INFO_IDX_MBA_THRTL_MAX
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PSR_INFO_IDX_MBA_FLAGS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PSR_INFO_ARRAY_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
      type_or_value: '3'
    structs:
    - fields:
      - name: features
        type: unsigned int
      - name: upscaling_factor
        type: unsigned int
      - name: rmid_max
        type: unsigned int
      item_type: struct
      name: psr_cmt_l3
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
    - fields:
      - name: rmid_max
        type: unsigned int
      - name: features
        type: unsigned int
      - name: '*rmid_to_dom'
        type: domid_t
      - name: l3
        type: struct psr_cmt_l3
      item_type: struct
      name: psr_cmt
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/psr.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/mem_paging.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_to_core
  - cpu_to_socket
  - cpuid_count
  - cpuid
  - cpuid_eax
  - cpuid_ebx
  - cpuid_ecx
  - cpuid_edx
  - cpuid_count_ebx
  - cpuid_count_edx
  - read_cr0
  - write_cr0
  - read_cr2
  - write_cr3
  - cr3_pa
  - cr3_pcid
  - read_cr4
  - write_cr4
  - clts
  - stts
  - set_in_cr4
  - tss64
  - cpu_relax
  - dump_execution_state
  - enable_nmis
  - get_cpu_family
  - tsx_init
  source_file: /src/xen/xen/arch/x86/include/asm/processor.h
  types:
    enum:
    - enumerators:
      - name: AP_BOOT_NORMAL
      - name: AP_BOOT_SKINIT
      item_type: enum
      name: ap_boot_method
      pos:
        line_end: 435
        line_start: 432
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
    preproc_defs:
    - item_type: preproc_def
      name: TRAP_syscall
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '256'
    - item_type: preproc_def
      name: EXCRET_fault_fixed
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TBF_EXCEPTION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TBF_EXCEPTION_ERRCODE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TBF_INTERRUPT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '8'
    - item_type: preproc_def
      name: _TF_kernel_mode
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TF_kernel_mode
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (1<<_TF_kernel_mode)
    - item_type: preproc_def
      name: PFEC_page_present
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 0)
    - item_type: preproc_def
      name: PFEC_write_access
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 1)
    - item_type: preproc_def
      name: PFEC_user_mode
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 2)
    - item_type: preproc_def
      name: PFEC_reserved_bit
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 3)
    - item_type: preproc_def
      name: PFEC_insn_fetch
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 4)
    - item_type: preproc_def
      name: PFEC_prot_key
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 5)
    - item_type: preproc_def
      name: PFEC_shstk
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 6)
    - item_type: preproc_def
      name: PFEC_arch_mask
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '(_AC(0xffff,U)) '
    - item_type: preproc_def
      name: PFEC_page_paged
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (1U<<16)
    - item_type: preproc_def
      name: PFEC_page_shared
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (1U<<17)
    - item_type: preproc_def
      name: PFEC_implicit
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '(1U<<18) '
    - item_type: preproc_def
      name: PFEC_synth_mask
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '(~PFEC_arch_mask) '
    - item_type: preproc_def
      name: X86_XEC_EXT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 0)
    - item_type: preproc_def
      name: X86_XEC_IDT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 1)
    - item_type: preproc_def
      name: X86_XEC_TI
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (_AC(1,U) << 2)
    - item_type: preproc_def
      name: XEN_MINIMAL_CR4
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (X86_CR4_PGE | X86_CR4_PAE)
    - item_type: preproc_def
      name: XEN_CR4_PV32_BITS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: (X86_CR4_SMEP|X86_CR4_SMAP)
    - item_type: preproc_def
      name: XEN_MSR_STAR
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: "(((uint64_t)FLAT_RING3_CS32 << 48) |   \\\n                      ((uint64_t)__HYPERVISOR_CS
        << 32))"
    - item_type: preproc_def
      name: XEN_SYSCALL_MASK
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: "(X86_EFLAGS_AC|X86_EFLAGS_VM|X86_EFLAGS_RF|    \\\n                          X86_EFLAGS_NT|X86_EFLAGS_DF|X86_EFLAGS_IF|
        \   \\\n                          X86_EFLAGS_TF)"
    - item_type: preproc_def
      name: XEN_MSR_PAT
      pos:
        line_end: 76
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: "((_AC(X86_MT_WB,  ULL) << 0x00) | \\\n                     (_AC(X86_MT_WT,
        \ ULL) << 0x08) | \\\n                     (_AC(X86_MT_UCM, ULL) << 0x10)
        | \\\n                     (_AC(X86_MT_UC,  ULL) << 0x18) | \\\n                     (_AC(X86_MT_WC,
        \ ULL) << 0x20) | \\\n                     (_AC(X86_MT_WP,  ULL) << 0x28)
        | \\\n                     (_AC(X86_MT_UC,  ULL) << 0x30) | \\\n                     (_AC(X86_MT_UC,
        \ ULL) << 0x38))"
    - item_type: preproc_def
      name: current_cpu_data
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: cpu_data[smp_processor_id()]
    - item_type: preproc_def
      name: IOBMP_BYTES
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: IOBMP_INVALID_OFFSET
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: opt_tsx
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: '0     '
    - item_type: preproc_def
      name: rtm_disabled
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
      type_or_value: 'false '
    structs:
    - fields:
      - name: __aligned(PAGE_SIZE) ist_ssp[8]
        type: uint64_t
      - name: tss
        type: struct tss64
      item_type: struct
      name: tss_page
      pos:
        line_end: 326
        line_start: 323
        source_file: /src/xen/xen/arch/x86/include/asm/processor.h
    typedefs: []
    union: []
- function_names:
  - xgetbv
  - xsave_area_compressed
  - xstate_all
  - VCPU_MAP_XSAVE_AREA
  - VCPU_UNMAP_XSAVE_AREA
  source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FCW_DEFAULT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0x037f'
    - item_type: preproc_def
      name: FCW_RESET
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: FXSAVE_FTW_RESET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0xFF '
    - item_type: preproc_def
      name: MXCSR_DEFAULT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0x1f80'
    - item_type: preproc_def
      name: XSTATE_CPUID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0x0000000d'
    - item_type: preproc_def
      name: XCR_XFEATURE_ENABLED_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0x00000000  '
    - item_type: preproc_def
      name: XSAVE_HDR_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '64'
    - item_type: preproc_def
      name: XSAVE_SSE_OFFSET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '160'
    - item_type: preproc_def
      name: XSTATE_YMM_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '256'
    - item_type: preproc_def
      name: FXSAVE_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '512'
    - item_type: preproc_def
      name: XSAVE_HDR_OFFSET
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: FXSAVE_SIZE
    - item_type: preproc_def
      name: XSTATE_AREA_MIN_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (FXSAVE_SIZE + XSAVE_HDR_SIZE)
    - item_type: preproc_def
      name: XSTATE_FP_SSE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (X86_XCR0_X87 | X86_XCR0_SSE)
    - item_type: preproc_def
      name: XCNTXT_MASK
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: "(X86_XCR0_X87 | X86_XCR0_SSE | X86_XCR0_YMM | \\\n                        X86_XCR0_OPMASK
        | X86_XCR0_ZMM | X86_XCR0_HI_ZMM | \\\n                        XSTATE_NONLAZY)"
    - item_type: preproc_def
      name: XSTATE_ALL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (~(1ULL << 63))
    - item_type: preproc_def
      name: XSTATE_NONLAZY
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: "(X86_XCR0_BNDREGS | X86_XCR0_BNDCSR | X86_XCR0_PKRU | \\\n                        X86_XCR0_TILE_CFG
        | X86_XCR0_TILE_DATA)"
    - item_type: preproc_def
      name: XSTATE_LAZY
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (XSTATE_ALL & ~XSTATE_NONLAZY)
    - item_type: preproc_def
      name: XSTATE_XSAVES_ONLY
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XSTATE_COMPACTION_ENABLED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (1ULL << 63)
    - item_type: preproc_def
      name: XSTATE_XSS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: XSTATE_ALIGN64
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type_or_value: (1U << 1)
    structs:
    - fields:
      - name: fpu_sse
        type: "union __attribute__((aligned(16))) {     /* FPU/MMX, SSE */\n        char
          x[512];\n        struct {\n            uint16_t fcw;\n            uint16_t
          fsw;\n            uint8_t ftw;\n            uint8_t rsvd1;\n            uint16_t
          fop;\n            union {\n                uint64_t addr;\n                struct
          {\n                    uint32_t offs;\n                    uint16_t sel;\n
          \                   uint16_t rsvd;\n                };\n            } fip,
          fdp;\n            uint32_t mxcsr;\n            uint32_t mxcsr_mask;\n            /*
          data registers follow here */\n        };\n    }"
      - name: xsave_hdr
        type: "struct xsave_hdr {\n        u64 xstate_bv;\n        u64 xcomp_bv;\n
          \       u64 reserved[6];\n    }"
      - name: data[]
        type: char
      item_type: struct
      name: xsave_struct
      pos:
        line_end: 84
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
    - fields:
      - name: xstate_bv
        type: u64
      - name: xcomp_bv
        type: u64
      - name: reserved[6]
        type: u64
      item_type: struct
      name: xsave_hdr
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
    - fields:
      - name: bndcfgu
        type: uint64_t
      - name: bndstatus
        type: uint64_t
      item_type: struct
      name: xstate_bndcsr
      pos:
        line_end: 91
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
    typedefs:
    - item_type: typedef
      name: (((struct xsave_struct){}).fpu_sse)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/xstate.h
      type: typeof
    union: []
- function_names:
  - shadow_mode_enabled
  - shadow_mode_refcounts
  - shadow_mode_log_dirty
  - shadow_mode_translate
  - shadow_mode_external
  - shadow_vcpu_teardown
  - shadow_teardown
  - shadow_final_teardown
  - shadow_enable
  - shadow_track_dirty_vram
  - shadow_set_allocation
  - sh_remove_shadows
  - shadow_prepare_page_type_change
  - shadow_blow_tables_per_domain
  - shadow_put_top_level
  - shadow_domctl
  - is_l1tf_safe_maddr
  - pv_l1tf_check_pte
  - pv_l1tf_check_l1e
  - pv_l1tf_check_l2e
  - pv_l1tf_check_l3e
  - pv_l1tf_check_l4e
  - pv_l1tf_domain_init
  - pv_l1tf_domain_destroy
  - shadow_remove_all_shadows
  source_file: /src/xen/xen/arch/x86/include/asm/shadow.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IFM
  source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
  types:
    enum:
    - enumerators:
      - name: INTEL_CPU_TYPE_UNKNOWN
      - name: INTEL_CPU_TYPE_CORE
        value: '0x40'
      - name: INTEL_CPU_TYPE_ATOM
        value: '0x20'
      item_type: enum
      name: intel_cpu_type
      pos:
        line_end: 224
        line_start: 220
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
    - enumerators:
      - name: INTEL_ATOM_CMT_NATIVE_ID
        value: '0x2'
      - name: INTEL_ATOM_SKT_NATIVE_ID
        value: '0x3'
      item_type: enum
      name: intel_native_id
      pos:
        line_end: 229
        line_start: 226
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
    preproc_defs:
    - item_type: preproc_def
      name: INTEL_ANY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(X86_FAMILY_ANY, X86_MODEL_ANY)
    - item_type: preproc_def
      name: INTEL_FAM5_START
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(5, 0x00) '
    - item_type: preproc_def
      name: INTEL_PENTIUM_75
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(5, 0x02) '
    - item_type: preproc_def
      name: INTEL_PENTIUM_MMX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(5, 0x04) '
    - item_type: preproc_def
      name: INTEL_QUARK_X1000
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(5, 0x09) '
    - item_type: preproc_def
      name: INTEL_PENTIUM_PRO
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x01)
    - item_type: preproc_def
      name: INTEL_PENTIUM_II_KLAMATH
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x03)
    - item_type: preproc_def
      name: INTEL_PENTIUM_III_DESCHUTES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x05)
    - item_type: preproc_def
      name: INTEL_PENTIUM_III_TUALATIN
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x0B)
    - item_type: preproc_def
      name: INTEL_PENTIUM_M_DOTHAN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x0D)
    - item_type: preproc_def
      name: INTEL_CORE_YONAH
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x0E)
    - item_type: preproc_def
      name: INTEL_CORE2_MEROM
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x0F)
    - item_type: preproc_def
      name: INTEL_CORE2_MEROM_L
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x16)
    - item_type: preproc_def
      name: INTEL_CORE2_PENRYN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x17)
    - item_type: preproc_def
      name: INTEL_CORE2_DUNNINGTON
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x1D)
    - item_type: preproc_def
      name: INTEL_NEHALEM
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x1E)
    - item_type: preproc_def
      name: INTEL_NEHALEM_G
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x1F) '
    - item_type: preproc_def
      name: INTEL_NEHALEM_EP
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x1A)
    - item_type: preproc_def
      name: INTEL_NEHALEM_EX
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x2E)
    - item_type: preproc_def
      name: INTEL_WESTMERE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x25)
    - item_type: preproc_def
      name: INTEL_WESTMERE_EP
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x2C)
    - item_type: preproc_def
      name: INTEL_WESTMERE_EX
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x2F)
    - item_type: preproc_def
      name: INTEL_SANDYBRIDGE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x2A)
    - item_type: preproc_def
      name: INTEL_SANDYBRIDGE_X
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x2D)
    - item_type: preproc_def
      name: INTEL_IVYBRIDGE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x3A)
    - item_type: preproc_def
      name: INTEL_IVYBRIDGE_X
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x3E)
    - item_type: preproc_def
      name: INTEL_HASWELL
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x3C)
    - item_type: preproc_def
      name: INTEL_HASWELL_X
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x3F)
    - item_type: preproc_def
      name: INTEL_HASWELL_L
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x45)
    - item_type: preproc_def
      name: INTEL_HASWELL_G
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x46)
    - item_type: preproc_def
      name: INTEL_BROADWELL
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x3D)
    - item_type: preproc_def
      name: INTEL_BROADWELL_G
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x47)
    - item_type: preproc_def
      name: INTEL_BROADWELL_X
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x4F)
    - item_type: preproc_def
      name: INTEL_BROADWELL_D
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0x56)
    - item_type: preproc_def
      name: INTEL_SKYLAKE_L
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x4E) '
    - item_type: preproc_def
      name: INTEL_SKYLAKE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x5E) '
    - item_type: preproc_def
      name: INTEL_SKYLAKE_X
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x55) '
    - item_type: preproc_def
      name: INTEL_KABYLAKE_L
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x8E) '
    - item_type: preproc_def
      name: INTEL_KABYLAKE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x9E) '
    - item_type: preproc_def
      name: INTEL_COMETLAKE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xA5) '
    - item_type: preproc_def
      name: INTEL_COMETLAKE_L
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xA6) '
    - item_type: preproc_def
      name: INTEL_CANNONLAKE_L
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x66) '
    - item_type: preproc_def
      name: INTEL_ICELAKE_X
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x6A) '
    - item_type: preproc_def
      name: INTEL_ICELAKE_D
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x6C) '
    - item_type: preproc_def
      name: INTEL_ICELAKE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x7D) '
    - item_type: preproc_def
      name: INTEL_ICELAKE_L
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x7E) '
    - item_type: preproc_def
      name: INTEL_ICELAKE_NNPI
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x9D) '
    - item_type: preproc_def
      name: INTEL_ROCKETLAKE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xA7) '
    - item_type: preproc_def
      name: INTEL_TIGERLAKE_L
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x8C) '
    - item_type: preproc_def
      name: INTEL_TIGERLAKE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x8D) '
    - item_type: preproc_def
      name: INTEL_SAPPHIRERAPIDS_X
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x8F) '
    - item_type: preproc_def
      name: INTEL_EMERALDRAPIDS_X
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xCF) '
    - item_type: preproc_def
      name: INTEL_GRANITERAPIDS_X
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xAD) '
    - item_type: preproc_def
      name: INTEL_GRANITERAPIDS_D
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xAE)
    - item_type: preproc_def
      name: INTEL_DIAMONDRAPIDS_X
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(19, 0x01) '
    - item_type: preproc_def
      name: INTEL_BARTLETTLAKE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xD7) '
    - item_type: preproc_def
      name: INTEL_LAKEFIELD
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x8A) '
    - item_type: preproc_def
      name: INTEL_ALDERLAKE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x97) '
    - item_type: preproc_def
      name: INTEL_ALDERLAKE_L
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x9A) '
    - item_type: preproc_def
      name: INTEL_RAPTORLAKE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xB7) '
    - item_type: preproc_def
      name: INTEL_RAPTORLAKE_P
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xBA)
    - item_type: preproc_def
      name: INTEL_RAPTORLAKE_S
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xBF)
    - item_type: preproc_def
      name: INTEL_METEORLAKE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xAC) '
    - item_type: preproc_def
      name: INTEL_METEORLAKE_L
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xAA)
    - item_type: preproc_def
      name: INTEL_ARROWLAKE_H
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xC5) '
    - item_type: preproc_def
      name: INTEL_ARROWLAKE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xC6)
    - item_type: preproc_def
      name: INTEL_ARROWLAKE_U
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xB5)
    - item_type: preproc_def
      name: INTEL_LUNARLAKE_M
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xBD) '
    - item_type: preproc_def
      name: INTEL_PANTHERLAKE_L
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xCC) '
    - item_type: preproc_def
      name: INTEL_WILDCATLAKE_L
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xD5)
    - item_type: preproc_def
      name: INTEL_NOVALAKE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(18, 0x01) '
    - item_type: preproc_def
      name: INTEL_NOVALAKE_L
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(18, 0x03) '
    - item_type: preproc_def
      name: INTEL_ATOM_BONNELL
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x1C) '
    - item_type: preproc_def
      name: INTEL_ATOM_BONNELL_MID
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x26) '
    - item_type: preproc_def
      name: INTEL_ATOM_SALTWELL
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x36) '
    - item_type: preproc_def
      name: INTEL_ATOM_SALTWELL_MID
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x27) '
    - item_type: preproc_def
      name: INTEL_ATOM_SALTWELL_TABLET
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x35) '
    - item_type: preproc_def
      name: INTEL_ATOM_SILVERMONT
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x37) '
    - item_type: preproc_def
      name: INTEL_ATOM_SILVERMONT_D
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x4D) '
    - item_type: preproc_def
      name: INTEL_ATOM_SILVERMONT_MID
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x4A) '
    - item_type: preproc_def
      name: INTEL_ATOM_SILVERMONT_MID2
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x5A) '
    - item_type: preproc_def
      name: INTEL_ATOM_AIRMONT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x4C) '
    - item_type: preproc_def
      name: INTEL_ATOM_AIRMONT_NP
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x75) '
    - item_type: preproc_def
      name: INTEL_ATOM_GOLDMONT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x5C) '
    - item_type: preproc_def
      name: INTEL_ATOM_GOLDMONT_D
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x5F) '
    - item_type: preproc_def
      name: INTEL_ATOM_GOLDMONT_PLUS
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x7A) '
    - item_type: preproc_def
      name: INTEL_ATOM_TREMONT_D
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x86) '
    - item_type: preproc_def
      name: INTEL_ATOM_TREMONT
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x96) '
    - item_type: preproc_def
      name: INTEL_ATOM_TREMONT_L
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x9C) '
    - item_type: preproc_def
      name: INTEL_ATOM_GRACEMONT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xBE) '
    - item_type: preproc_def
      name: INTEL_ATOM_CRESTMONT_X
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xAF) '
    - item_type: preproc_def
      name: INTEL_ATOM_CRESTMONT
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xB6) '
    - item_type: preproc_def
      name: INTEL_ATOM_DARKMONT_X
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0xDD) '
    - item_type: preproc_def
      name: INTEL_XEON_PHI_KNL
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x57) '
    - item_type: preproc_def
      name: INTEL_XEON_PHI_KNM
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(6, 0x85) '
    - item_type: preproc_def
      name: INTEL_FAM6_LAST
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(6, 0xFF)
    - item_type: preproc_def
      name: INTEL_P4_WILLAMETTE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(15, 0x01) '
    - item_type: preproc_def
      name: INTEL_P4_PRESCOTT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(15, 0x03)
    - item_type: preproc_def
      name: INTEL_P4_PRESCOTT_2M
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: IFM(15, 0x04)
    - item_type: preproc_def
      name: INTEL_P4_CEDARMILL
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/include/asm/intel-family.h
      type_or_value: 'IFM(15, 0x06) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_vcpu_struct_memflags
  - has_32bit_shinfo
  - is_hvm_pv_evtchn_domain
  - MAPHASH_HASHFN
  - has_vlapic
  - has_vhpet
  - has_vpm
  - has_vrtc
  - has_vioapic
  - has_vpic
  - has_vvga
  - has_viommu
  - has_vpit
  - has_pirq
  - has_vpci
  - gdt_ldt_pt_idx
  - pv_gdt_ptes
  - pv_ldt_ptes
  - IOPL
  - async_exception_state
  - alloc_vcpu_guest_context
  - free_vcpu_guest_context
  - pv_inject_event
  - pv_inject_hw_exception
  - pv_inject_DB
  - pv_inject_page_fault
  - pv_inject_sw_interrupt
  - arch_vm_assist_valid_mask
  source_file: /src/xen/xen/arch/x86/include/asm/domain.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: arch_domain_struct_memflags
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: arch_domain_struct_memflags
    - item_type: preproc_def
      name: VCPU_TRAP_NONE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VCPU_TRAP_NMI
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VCPU_TRAP_MCE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '2'
    - item_type: preproc_def
      name: VCPU_TRAP_LAST
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: VCPU_TRAP_MCE
    - item_type: preproc_def
      name: nmi_state
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: async_exception_state(VCPU_TRAP_NMI)
    - item_type: preproc_def
      name: mce_state
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: async_exception_state(VCPU_TRAP_MCE)
    - item_type: preproc_def
      name: nmi_pending
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: nmi_state.pending
    - item_type: preproc_def
      name: mce_pending
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: mce_state.pending
    - item_type: preproc_def
      name: MAPHASH_ENTRIES
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAPHASHENT_NOTINUSE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: ((u32)~0U)
    - item_type: preproc_def
      name: MAX_EPTP
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: (PAGE_SIZE / sizeof(uint64_t))
    - item_type: preproc_def
      name: MAX_NR_ALTP2M
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: MAX_EPTP
    - item_type: preproc_def
      name: MAX_NESTEDP2M
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '10'
    - item_type: preproc_def
      name: INVALID_ALTP2M
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: X86_EMU_LAPIC
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_LAPIC
    - item_type: preproc_def
      name: X86_EMU_HPET
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_HPET
    - item_type: preproc_def
      name: X86_EMU_PM
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_PM
    - item_type: preproc_def
      name: X86_EMU_RTC
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_RTC
    - item_type: preproc_def
      name: X86_EMU_IOAPIC
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_IOAPIC
    - item_type: preproc_def
      name: X86_EMU_PIC
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_PIC
    - item_type: preproc_def
      name: X86_EMU_VGA
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_VGA
    - item_type: preproc_def
      name: X86_EMU_IOMMU
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_IOMMU
    - item_type: preproc_def
      name: X86_EMU_USE_PIRQ
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_USE_PIRQ
    - item_type: preproc_def
      name: X86_EMU_VPCI
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_VPCI
    - item_type: preproc_def
      name: X86_EMU_LAPIC
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_HPET
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_PM
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_RTC
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_IOAPIC
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_PIC
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_VGA
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_IOMMU
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_USE_PIRQ
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_VPCI
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_EMU_PIT
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: XEN_X86_EMU_PIT
    - item_type: preproc_def
      name: X86_EMU_ALL
      pos:
        line_end: 513
        line_start: 507
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: "(X86_EMU_LAPIC | X86_EMU_HPET |         \\\n                                 X86_EMU_PM
        | X86_EMU_RTC |             \\\n                                 X86_EMU_IOAPIC
        | X86_EMU_PIC |         \\\n                                 X86_EMU_VGA |
        X86_EMU_IOMMU |          \\\n                                 X86_EMU_PIT
        | X86_EMU_USE_PIRQ |       \\\n                                 X86_EMU_VPCI)"
    - item_type: preproc_def
      name: PV32_VM_ASSIST_MASK
      pos:
        line_end: 790
        line_start: 784
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: "((1UL << VMASST_TYPE_4gb_segments)        | \\\n                             (1UL
        << VMASST_TYPE_4gb_segments_notify) | \\\n                             (1UL
        << VMASST_TYPE_writable_pagetables) | \\\n                             (1UL
        << VMASST_TYPE_pae_extended_cr3)    | \\\n                             (1UL
        << VMASST_TYPE_architectural_iopl)  | \\\n                             (1UL
        << VMASST_TYPE_runstate_update_flag))"
    - item_type: preproc_def
      name: PV64_VM_ASSIST_MASK
      pos:
        line_end: 796
        line_start: 794
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: "(PV32_VM_ASSIST_MASK                      | \\\n                             (1UL
        << VMASST_TYPE_m2p_strict))"
    - item_type: preproc_def
      name: HVM_VM_ASSIST_MASK
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: (1UL << VMASST_TYPE_runstate_update_flag)
    - item_type: preproc_def
      name: arch_init_idle_domain
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
      type_or_value: arch_init_idle_domain
    structs:
    - fields:
      - name: error_code
        type: uint32_t
      - name: flags
        type: uint8_t
      - name: cs
        type: uint16_t
      - name: eip
        type: unsigned long
      item_type: struct
      name: trap_bounce
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: shadow_epoch
        type: unsigned int
      - name: hash[MAPHASH_ENTRIES]
        type: "struct vcpu_maphash_entry {\n        unsigned long mfn;\n        uint32_t
          \     idx;\n        uint32_t      refcnt;\n    }"
      item_type: struct
      name: mapcache_vcpu
      pos:
        line_end: 71
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: mfn
        type: unsigned long
      - name: idx
        type: uint32_t
      - name: refcnt
        type: uint32_t
      item_type: struct
      name: vcpu_maphash_entry
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: entries
        type: unsigned int
      - name: cursor
        type: unsigned int
      - name: lock
        type: spinlock_t
      - name: epoch
        type: unsigned int
      - name: tlbflush_timestamp
        type: u32
      - name: '*inuse'
        type: unsigned long
      - name: '*garbage'
        type: unsigned long
      item_type: struct
      name: mapcache_domain
      pos:
        line_end: 88
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields: []
      item_type: struct
      name: shadow_domain
      pos:
        line_end: 140
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields: []
      item_type: struct
      name: shadow_vcpu
      pos:
        line_end: 179
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: next
        type: int
      - name: smfn[SHADOW_OOS_FIXUPS]
        type: mfn_t
      - name: off[SHADOW_OOS_FIXUPS]
        type: unsigned long
      item_type: struct
      name: oos_fixup
      pos:
        line_end: 174
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields: []
      item_type: struct
      name: hap_domain
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: top
        type: mfn_t
      - name: allocs
        type: unsigned int
      - name: failed_allocs
        type: unsigned int
      - name: fault_count
        type: unsigned long
      - name: dirty_count
        type: unsigned long
      - name: '*ops'
        type: "struct log_dirty_ops {\n        int        (*enable  )(struct domain
          *d);\n        int        (*disable )(struct domain *d);\n        void       (*clean
          \  )(struct domain *d);\n    }"
      item_type: struct
      name: log_dirty_domain
      pos:
        line_end: 206
        line_start: 190
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: (*enable  )(struct domain *d)
        type: int
      - name: (*disable )(struct domain *d)
        type: int
      - name: (*clean   )(struct domain *d)
        type: void
      item_type: struct
      name: log_dirty_ops
      pos:
        line_end: 205
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: lock
        type: mm_lock_t
      - name: mode
        type: u32
      - name: p2m_alloc_failed
        type: bool
      - name: shadow
        type: struct shadow_domain
      - name: hap
        type: struct hap_domain
      - name: freelist
        type: struct page_list_head
      - name: total_pages
        type: unsigned int
      - name: free_pages
        type: unsigned int
      - name: p2m_pages
        type: unsigned int
      - name: log_dirty
        type: struct log_dirty_domain
      - name: preempt
        type: "struct {\n        const struct domain *dom;\n        unsigned int op;\n
          \       union {\n            struct {\n                unsigned long done:PADDR_BITS
          - PAGE_SHIFT;\n                unsigned long i4:PAGETABLE_ORDER;\n                unsigned
          long i3:PAGETABLE_ORDER;\n            } log_dirty;\n        };\n    }"
      - name: '* (*alloc_page)(struct domain *d)'
        type: struct page_info
      - name: (*free_page)(struct domain *d, struct page_info *pg)
        type: void
      - name: (*update_paging_modes)(struct vcpu *v)
        type: void
      item_type: struct
      name: paging_domain
      pos:
        line_end: 254
        line_start: 208
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: '*mode'
        type: struct paging_mode
      - name: '*nestedmode'
        type: struct paging_mode
      - name: '*vtlb'
        type: struct shadow_vtlb
      - name: vtlb_lock
        type: spinlock_t
      - name: shadow
        type: struct shadow_vcpu
      item_type: struct
      name: paging_vcpu
      pos:
        line_end: 273
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: shift
        type: int
      - name: mul_frac
        type: u32
      item_type: struct
      name: time_scale
      pos:
        line_end: 285
        line_start: 282
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: '**gdt_ldt_l1tab'
        type: l1_pgentry_t
      - name: nr_l4_pages
        type: atomic_t
      - name: is_32bit
        type: bool
      - name: xpti
        type: bool
      - name: pcid
        type: bool
      - name: check_l1tf
        type: bool
      - name: mapcache
        type: struct mapcache_domain
      - name: '*cpuidmasks'
        type: struct cpuidmasks
      item_type: struct
      name: pv_domain
      pos:
        line_end: 313
        line_start: 287
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: do_write
        type: "struct {\n        unsigned int msr : 1;\n        unsigned int cr0 :
          1;\n        unsigned int cr3 : 1;\n        unsigned int cr4 : 1;\n    }"
      - name: cr3_noflush
        type: bool
      - name: msr
        type: uint32_t
      - name: value
        type: uint64_t
      - name: cr0
        type: uint64_t
      - name: cr3
        type: uint64_t
      - name: cr4
        type: uint64_t
      item_type: struct
      name: monitor_write_data
      pos:
        line_end: 330
        line_start: 315
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: '*perdomain_l3_pg'
        type: struct page_info
      - name: '*ioport_caps'
        type: struct rangeset
      - name: pci_cf8
        type: uint32_t
      - name: cmos_idx
        type: uint8_t
      - name: scf
        type: uint8_t
      - name: paging
        type: struct paging_domain
      - name: '*p2m'
        type: struct p2m_domain
      - name: page_alloc_unlock_level
        type: int
      - name: rel_priv
        type: unsigned int
      - name: relmem_list
        type: struct page_list_head
      - name: '*ctxt_switch'
        type: "struct arch_csw {\n        void (*from)(struct vcpu *v);\n        void
          (*to)(struct vcpu *v);\n        void noreturn (*tail)(void);\n    }"
      - name: irq_pirq
        type: struct radix_tree_root
      - name: has_32bit_shinfo
        type: bool
      - name: auto_unmask
        type: bool
      - name: x87_fip_width
        type: uint8_t
      - name: vpit
        type: struct PITState
      - name: tsc_mode
        type: int
      - name: vtsc
        type: bool
      - name: vtsc_last
        type: s_time_t
      - name: vtsc_offset
        type: uint64_t
      - name: tsc_khz
        type: uint32_t
      - name: vtsc_to_ns
        type: struct time_scale
      - name: ns_to_vtsc
        type: struct time_scale
      - name: incarnation
        type: uint32_t
      - name: e820_lock
        type: spinlock_t
      - name: '*e820'
        type: struct e820entry
      - name: nr_e820
        type: unsigned int
      - name: psr_rmid
        type: unsigned int
      - name: '*psr_cos_ids'
        type: unsigned int
      - name: '*pirq_eoi_map'
        type: unsigned long
      - name: pirq_eoi_map_mfn
        type: unsigned long
      - name: monitor
        type: "struct {\n        unsigned int write_ctrlreg_enabled                                 :
          4;\n        unsigned int write_ctrlreg_sync                                    :
          4;\n        unsigned int write_ctrlreg_onchangeonly                            :
          4;\n        unsigned int singlestep_enabled                                    :
          1;\n        unsigned int software_breakpoint_enabled                           :
          1;\n        unsigned int debug_exception_enabled                               :
          1;\n        unsigned int debug_exception_sync                                  :
          1;\n        unsigned int cpuid_enabled                                         :
          1;\n        unsigned int descriptor_access_enabled                             :
          1;\n        unsigned int guest_request_userspace_enabled                       :
          1;\n        unsigned int emul_unimplemented_enabled                            :
          1;\n        unsigned int io_enabled                                            :
          1;\n        /*\n         * By default all events are sent.\n         * This
          is used to filter out pagefaults.\n         */\n        unsigned int inguest_pagefault_disabled
          \                           : 1;\n        unsigned int control_register_values
          \                              : 1;\n        unsigned int vmexit_enabled
          \                                       : 1;\n        unsigned int vmexit_sync
          \                                          : 1;\n        struct monitor_msr_bitmap
          *msr_bitmap;\n        uint64_t write_ctrlreg_mask[4];\n    }"
      - name: mem_access_emulate_each_rep
        type: bool
      - name: msr_relaxed
        type: bool
      - name: emulation_flags
        type: uint32_t
      item_type: struct
      name: arch_domain
      pos:
        line_end: 478
        line_start: 332
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: (*from)(struct vcpu *v)
        type: void
      - name: (*to)(struct vcpu *v)
        type: void
      - name: (*tail)(void)
        type: void
      item_type: struct
      name: arch_csw
      pos:
        line_end: 362
        line_start: 358
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: mapcache
        type: struct mapcache_vcpu
      - name: vgc_flags
        type: unsigned int
      - name: '*trap_ctxt'
        type: struct trap_info
      - name: gdt_frames[FIRST_RESERVED_GDT_PAGE]
        type: unsigned long
      - name: ldt_base
        type: unsigned long
      - name: gdt_ents
        type: unsigned int
      - name: kernel_ss
        type: unsigned long
      - name: ctrlreg[8]
        type: unsigned long
      - name: event_callback_eip
        type: unsigned long
      - name: failsafe_callback_eip
        type: unsigned long
      - name: syscall32_callback_eip
        type: unsigned long
      - name: sysenter_callback_eip
        type: unsigned long
      - name: syscall32_callback_cs
        type: unsigned short
      - name: sysenter_callback_cs
        type: unsigned short
      - name: syscall32_disables_events
        type: bool
      - name: sysenter_disables_events
        type: bool
      - name: ds
        type: uint16_t
      - name: fs_base
        type: unsigned long
      - name: gs_base_kernel
        type: unsigned long
      - name: gs_base_user
        type: unsigned long
      - name: trap_bounce
        type: struct trap_bounce
      - name: (uint8)
        type: XEN_GUEST_HANDLE
      - name: iobmp_nr
        type: unsigned int
      - name: iopl
        type: unsigned int
      - name: dr7_emul
        type: uint32_t
      - name: need_update_runstate_area
        type: bool
      - name: pending_system_time
        type: struct vcpu_time_info
      item_type: struct
      name: pv_vcpu
      pos:
        line_end: 609
        line_start: 533
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: user_regs
        type: struct cpu_user_regs
      - name: dr[4]
        type: unsigned long
      - name: dr6
        type: unsigned int
      - name: dr7
        type: unsigned int
      - name: flags
        type: unsigned long
      - name: vpmu
        type: struct vpmu_struct
      - name: async_exception_state[VCPU_TRAP_LAST]
        type: "struct {\n        bool    pending;\n        uint8_t old_mask;\n    }"
      - name: async_exception_mask
        type: uint8_t
      - name: guest_table_user
        type: pagetable_t
      - name: guest_table
        type: pagetable_t
      - name: '*old_guest_table'
        type: struct page_info
      - name: '*old_guest_ptpg'
        type: struct page_info
      - name: old_guest_table_partial
        type: bool
      - name: cr3
        type: unsigned long
      - name: '*xsave_area'
        type: struct xsave_struct
      - name: xcr0
        type: uint64_t
      - name: xcr0_accum
        type: uint64_t
      - name: nonlazy_xstate_used
        type: bool
      - name: fully_eager_fpu
        type: bool
      - name: vmce
        type: struct vmce
      - name: paging
        type: struct paging_vcpu
      - name: gdbsx_vcpu_event
        type: uint32_t
      - name: (vcpu_time_info_t)
        type: XEN_GUEST_HANDLE
      - name: time_guest_area
        type: struct guest_area
      - name: '*vm_event'
        type: struct arch_vm_event
      - name: '*msrs'
        type: struct vcpu_msrs
      - name: monitor
        type: "struct {\n        bool next_interrupt_enabled;\n    }"
      item_type: struct
      name: arch_vcpu
      pos:
        line_end: 693
        line_start: 611
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields:
      - name: nested_guest_mode
        type: bool
      item_type: struct
      name: guest_memory_policy
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    - fields: []
      item_type: struct
      name: arch_vcpu_io
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/xen/xen/arch/x86/include/asm/domain.h
    typedefs: []
    union: []
- function_names:
  - get_stack_page
  - get_cpu_info_from_stack
  - get_cpu_info
  - get_current
  - set_current
  - smp_processor_id
  - guest_cpu_user_regs
  - get_per_cpu_offset
  - get_stack_bottom
  - ssaj_has_attr_noreturn
  - ssaj_has_attr_noreturn
  - switch_stack_and_jump
  - reset_stack_and_jump
  - reset_stack_and_call_ind
  source_file: /src/xen/xen/arch/x86/include/asm/current.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: current
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: (get_current())
    - item_type: preproc_def
      name: CHECK_FOR_LIVEPATCH_WORK
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: '"call check_for_livepatch_work;"'
    - item_type: preproc_def
      name: CHECK_FOR_LIVEPATCH_WORK
      pos:
        line_end: 138
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: "\"mov $0x1234567890abcdef, %%rax\\n\\t\" \\\n    \"mov %%rax,
        %%rcx; mov %%rax, %%rdx\\n\\t\" \\\n    \"mov %%rax, %%rsi; mov %%rax, %%rdi\\n\\t\"
        \\\n    \"mov %%rax, %%r8; mov %%rax, %%r9\\n\\t\" \\\n    \"mov %%rax, %%r10;
        mov %%rax, %%r11\\n\\t\""
    - item_type: preproc_def
      name: CHECK_FOR_LIVEPATCH_WORK
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: '""'
    - item_type: preproc_def
      name: SHADOW_STACK_WORK
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: "\"mov $1, %[ssp];\"                                           \\\n
        \   \"rdsspd %[ssp];\"                                            \\\n    \"cmp
        $1, %[ssp];\"                                           \\\n    \"je .L_shstk_done.%=;\" "
    - item_type: preproc_def
      name: SHADOW_STACK_WORK
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
      type_or_value: '""'
    structs:
    - fields:
      - name: guest_cpu_user_regs
        type: struct cpu_user_regs
      - name: _fred
        type: struct fred_info
      - name: processor_id
        type: unsigned int
      - name: verw_sel
        type: unsigned int
      - name: '*current_vcpu'
        type: struct vcpu
      - name: per_cpu_offset
        type: unsigned long
      - name: cr4
        type: unsigned long
      - name: xen_cr3
        type: unsigned long
      - name: pv_cr3
        type: unsigned long
      - name: shadow_spec_ctrl
        type: unsigned int
      - name: xen_spec_ctrl
        type: unsigned int
      - name: last_spec_ctrl
        type: unsigned int
      - name: scf
        type: uint8_t
      - name: root_pgt_changed
        type: bool
      - name: use_pv_cr3
        type: bool
      item_type: struct
      name: cpu_info
      pos:
        line_end: 83
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/current.h
    typedefs: []
    union: []
- function_names:
  - bootsym_phys
  - bootsym
  source_file: /src/xen/xen/arch/x86/include/asm/trampoline.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRAMPOLINE_SIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/trampoline.h
      type_or_value: KB(64)
    - item_type: preproc_def
      name: TRAMPOLINE_HEAP_END
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/trampoline.h
      type_or_value: (TRAMPOLINE_SIZE - PAGE_SIZE)
    - item_type: preproc_def
      name: MBI_SPACE_MIN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/trampoline.h
      type_or_value: (2 * PAGE_SIZE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PDX_ASM_GOTO
  - pfn_to_pdx
  - pdx_to_pfn
  - maddr_to_directmapoff
  - directmapoff_to_maddr
  source_file: /src/xen/xen/arch/x86/include/asm/pdx.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LCAP_faulting
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: XEN_SYSCTL_CPU_LEVELCAP_faulting
    - item_type: preproc_def
      name: LCAP_1cd
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: "(XEN_SYSCTL_CPU_LEVELCAP_ecx |        \\\n                       XEN_SYSCTL_CPU_LEVELCAP_edx)"
    - item_type: preproc_def
      name: LCAP_e1cd
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: "(XEN_SYSCTL_CPU_LEVELCAP_extd_ecx |   \\\n                       XEN_SYSCTL_CPU_LEVELCAP_extd_edx)"
    - item_type: preproc_def
      name: LCAP_Da1
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: XEN_SYSCTL_CPU_LEVELCAP_xsave_eax
    - item_type: preproc_def
      name: LCAP_6c
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: XEN_SYSCTL_CPU_LEVELCAP_thermal_ecx
    - item_type: preproc_def
      name: LCAP_7ab0
      pos:
        line_end: 26
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
      type_or_value: "(XEN_SYSCTL_CPU_LEVELCAP_l7s0_eax |   \\\n                       XEN_SYSCTL_CPU_LEVELCAP_l7s0_ebx)"
    structs:
    - fields:
      - name: _1cd
        type: uint64_t
      - name: e1cd
        type: uint64_t
      - name: Da1
        type: uint64_t
      - name: _6c
        type: uint64_t
      - name: _7ab0
        type: uint64_t
      item_type: struct
      name: cpuidmasks
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/cpuid.h
    typedefs: []
    union: []
- function_names:
  - rdmsr
  - rdmsrl
  - wrmsr
  - wrmsrl
  - wrmsrns
  - rdmsr_safe
  - wrmsr_safe
  - read_efer
  - write_efer
  - wrmsr_tsc_aux
  source_file: /src/xen/xen/arch/x86/include/asm/msr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __rdfsbase
  - __rdgsbase
  - __rdgs_shadow
  - __wrfsbase
  - __wrgsbase
  - __wrgs_shadow
  - read_fs_base
  - read_gs_base
  - read_gs_shadow
  - write_fs_base
  - write_gs_base
  - write_gs_shadow
  source_file: /src/xen/xen/arch/x86/include/asm/fsgsbase.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/boot-helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RTIT_CTL_ADDR
  - MSR_RTIT_ADDR_A
  - MSR_RTIT_ADDR_B
  - MSR_IA32_MTRR_PHYSBASE
  - MSR_IA32_MTRR_PHYSMASK
  - MSR_IA32_MCx_CTL
  - MSR_IA32_MCx_STATUS
  - MSR_IA32_MCx_ADDR
  - MSR_IA32_MCx_MISC
  - MSR_IA32_MCx_CTL2
  - MSR_AMD64_MCx_MASK
  - MSR_IA32_PSR_L3_MASK
  - MSR_IA32_PSR_L3_MASK_CODE
  - MSR_IA32_PSR_L3_MASK_DATA
  - MSR_IA32_PSR_L2_MASK
  - MSR_IA32_PSR_MBA_MASK
  - MSR_P6_PERFCTR
  - MSR_P6_EVNTSEL
  source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_P5_MC_ADDR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSR_P5_MC_TYPE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: MSR_APIC_BASE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000001b'
    - item_type: preproc_def
      name: APIC_BASE_BSP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  8)
    - item_type: preproc_def
      name: APIC_BASE_EXTD
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 10)
    - item_type: preproc_def
      name: APIC_BASE_ENABLE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 11)
    - item_type: preproc_def
      name: APIC_BASE_ADDR_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0x000ffffffffff000, ULL)
    - item_type: preproc_def
      name: MSR_TEST_CTRL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000033'
    - item_type: preproc_def
      name: TEST_CTRL_SPLITLOCK_DETECT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 29)
    - item_type: preproc_def
      name: TEST_CTRL_SPLITLOCK_DISABLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 31)
    - item_type: preproc_def
      name: MSR_INTEL_CORE_THREAD_COUNT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000035'
    - item_type: preproc_def
      name: MSR_CTC_THREAD_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000ffff'
    - item_type: preproc_def
      name: MSR_CTC_CORE_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xffff0000, U)
    - item_type: preproc_def
      name: MSR_SPEC_CTRL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000048'
    - item_type: preproc_def
      name: SPEC_CTRL_IBRS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: SPEC_CTRL_STIBP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: SPEC_CTRL_SSBD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: SPEC_CTRL_IPRED_DIS_U
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  3)
    - item_type: preproc_def
      name: SPEC_CTRL_IPRED_DIS_S
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: SPEC_CTRL_RRSBA_DIS_U
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: SPEC_CTRL_RRSBA_DIS_S
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  6)
    - item_type: preproc_def
      name: SPEC_CTRL_PSFD
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  7)
    - item_type: preproc_def
      name: SPEC_CTRL_DDP_DIS_U
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  8)
    - item_type: preproc_def
      name: SPEC_CTRL_BHI_DIS_S
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 10)
    - item_type: preproc_def
      name: MSR_PRED_CMD
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000049'
    - item_type: preproc_def
      name: PRED_CMD_IBPB
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: PRED_CMD_SBPB
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  7)
    - item_type: preproc_def
      name: MSR_PPIN_CTL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000004e'
    - item_type: preproc_def
      name: PPIN_LOCKOUT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: PPIN_ENABLE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: MSR_PPIN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000004f'
    - item_type: preproc_def
      name: MSR_MISC_PACKAGE_CTRL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000bc'
    - item_type: preproc_def
      name: PGK_CTRL_ENERGY_FILTER_EN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MSR_PB_OPT_CTRL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000bf'
    - item_type: preproc_def
      name: PB_OPT_IBPB_ALT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MSR_CORE_CAPABILITIES
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000cf'
    - item_type: preproc_def
      name: CORE_CAPS_SPLITLOCK_DETECT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: MSR_PKG_CST_CONFIG_CONTROL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000e2'
    - item_type: preproc_def
      name: NHM_C3_AUTO_DEMOTE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 25)
    - item_type: preproc_def
      name: NHM_C1_AUTO_DEMOTE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 26)
    - item_type: preproc_def
      name: ATM_LNC_C6_AUTO_DEMOTE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 25)
    - item_type: preproc_def
      name: SNB_C3_AUTO_UNDEMOTE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 27)
    - item_type: preproc_def
      name: SNB_C1_AUTO_UNDEMOTE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 28)
    - item_type: preproc_def
      name: MSR_ARCH_CAPABILITIES
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000010a'
    - item_type: preproc_def
      name: ARCH_CAPS_RDCL_NO
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: ARCH_CAPS_EIBRS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: ARCH_CAPS_RSBA
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: ARCH_CAPS_SKIP_L1DFL
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  3)
    - item_type: preproc_def
      name: ARCH_CAPS_SSB_NO
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: ARCH_CAPS_MDS_NO
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: ARCH_CAPS_IF_PSCHANGE_MC_NO
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  6)
    - item_type: preproc_def
      name: ARCH_CAPS_TSX_CTRL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  7)
    - item_type: preproc_def
      name: ARCH_CAPS_TAA_NO
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  8)
    - item_type: preproc_def
      name: ARCH_CAPS_MISC_PACKAGE_CTRL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 10)
    - item_type: preproc_def
      name: ARCH_CAPS_ENERGY_FILTERING
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 11)
    - item_type: preproc_def
      name: ARCH_CAPS_DOITM
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 12)
    - item_type: preproc_def
      name: ARCH_CAPS_SBDR_SSDP_NO
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 13)
    - item_type: preproc_def
      name: ARCH_CAPS_FBSDP_NO
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 14)
    - item_type: preproc_def
      name: ARCH_CAPS_PSDP_NO
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 15)
    - item_type: preproc_def
      name: ARCH_CAPS_FB_CLEAR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 17)
    - item_type: preproc_def
      name: ARCH_CAPS_FB_CLEAR_CTRL
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 18)
    - item_type: preproc_def
      name: ARCH_CAPS_RRSBA
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 19)
    - item_type: preproc_def
      name: ARCH_CAPS_BHI_NO
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 20)
    - item_type: preproc_def
      name: ARCH_CAPS_PBRSB_NO
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 24)
    - item_type: preproc_def
      name: ARCH_CAPS_GDS_CTRL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 25)
    - item_type: preproc_def
      name: ARCH_CAPS_GDS_NO
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 26)
    - item_type: preproc_def
      name: ARCH_CAPS_RFDS_NO
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 27)
    - item_type: preproc_def
      name: ARCH_CAPS_RFDS_CLEAR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 28)
    - item_type: preproc_def
      name: MSR_FLUSH_CMD
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000010b'
    - item_type: preproc_def
      name: FLUSH_CMD_L1D
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MSR_TSX_FORCE_ABORT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000010f'
    - item_type: preproc_def
      name: TSX_FORCE_ABORT_RTM
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: TSX_CPUID_CLEAR
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: TSX_ENABLE_RTM
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: MSR_TSX_CTRL
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000122'
    - item_type: preproc_def
      name: TSX_CTRL_RTM_DISABLE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: TSX_CTRL_CPUID_CLEAR
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: MSR_MCU_OPT_CTRL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000123'
    - item_type: preproc_def
      name: MCU_OPT_CTRL_RNGDS_MITG_DIS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MCU_OPT_CTRL_RTM_ALLOW
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: MCU_OPT_CTRL_RTM_LOCKED
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: MCU_OPT_CTRL_FB_CLEAR_DIS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  3)
    - item_type: preproc_def
      name: MCU_OPT_CTRL_GDS_MIT_DIS
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: MCU_OPT_CTRL_GDS_MIT_LOCK
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: MSR_TEMPERATURE_TARGET
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001a2'
    - item_type: preproc_def
      name: MSR_PACKAGE_THERM_STATUS
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001b1'
    - item_type: preproc_def
      name: MSR_FRED_RSP_SL0
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001cc'
    - item_type: preproc_def
      name: MSR_FRED_RSP_SL1
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001cd'
    - item_type: preproc_def
      name: MSR_FRED_RSP_SL2
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001ce'
    - item_type: preproc_def
      name: MSR_FRED_RSP_SL3
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001cf'
    - item_type: preproc_def
      name: MSR_FRED_STK_LVLS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d0'
    - item_type: preproc_def
      name: MSR_FRED_SSP_SL0
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: MSR_PL0_SSP
    - item_type: preproc_def
      name: MSR_FRED_SSP_SL1
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d1'
    - item_type: preproc_def
      name: MSR_FRED_SSP_SL2
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d2'
    - item_type: preproc_def
      name: MSR_FRED_SSP_SL3
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d3'
    - item_type: preproc_def
      name: MSR_FRED_CONFIG
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d4'
    - item_type: preproc_def
      name: MSR_RTIT_OUTPUT_BASE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000560'
    - item_type: preproc_def
      name: MSR_RTIT_OUTPUT_MASK
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000561'
    - item_type: preproc_def
      name: MSR_RTIT_CTL
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000570'
    - item_type: preproc_def
      name: RTIT_CTL_TRACE_EN
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: RTIT_CTL_CYC_EN
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: RTIT_CTL_OS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: RTIT_CTL_USR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  3)
    - item_type: preproc_def
      name: RTIT_CTL_PWR_EVT_EN
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: RTIT_CTL_FUP_ON_PTW
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: RTIT_CTL_FABRIC_EN
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  6)
    - item_type: preproc_def
      name: RTIT_CTL_CR3_FILTER
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  7)
    - item_type: preproc_def
      name: RTIT_CTL_TOPA
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  8)
    - item_type: preproc_def
      name: RTIT_CTL_MTC_EN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  9)
    - item_type: preproc_def
      name: RTIT_CTL_TSC_EN
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 10)
    - item_type: preproc_def
      name: RTIT_CTL_DIS_RETC
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 11)
    - item_type: preproc_def
      name: RTIT_CTL_PTW_EN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 12)
    - item_type: preproc_def
      name: RTIT_CTL_BRANCH_EN
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 13)
    - item_type: preproc_def
      name: RTIT_CTL_MTC_FREQ
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(0xf, ULL) << 14)
    - item_type: preproc_def
      name: RTIT_CTL_CYC_THRESH
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(0xf, ULL) << 19)
    - item_type: preproc_def
      name: RTIT_CTL_PSB_FREQ
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(0xf, ULL) << 24)
    - item_type: preproc_def
      name: MSR_RTIT_STATUS
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000571'
    - item_type: preproc_def
      name: RTIT_STATUS_FILTER_EN
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: RTIT_STATUS_CONTEXT_EN
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: RTIT_STATUS_TRIGGER_EN
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: RTIT_STATUS_ERROR
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: RTIT_STATUS_STOPPED
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  5)
    - item_type: preproc_def
      name: RTIT_STATUS_BYTECNT
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(0x1ffff, ULL) << 32)
    - item_type: preproc_def
      name: MSR_RTIT_CR3_MATCH
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000572'
    - item_type: preproc_def
      name: MSR_U_CET
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a0'
    - item_type: preproc_def
      name: MSR_S_CET
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a2'
    - item_type: preproc_def
      name: CET_SHSTK_EN
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: CET_WRSS_EN
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: CET_ENDBR_EN
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: MSR_PL0_SSP
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a4'
    - item_type: preproc_def
      name: MSR_PL1_SSP
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a5'
    - item_type: preproc_def
      name: MSR_PL2_SSP
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a6'
    - item_type: preproc_def
      name: MSR_PL3_SSP
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a7'
    - item_type: preproc_def
      name: MSR_ISST
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006a8'
    - item_type: preproc_def
      name: MSR_PKRS
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006e1'
    - item_type: preproc_def
      name: MSR_PM_ENABLE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000770'
    - item_type: preproc_def
      name: PM_ENABLE_HWP_ENABLE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: BIT(0, ULL)
    - item_type: preproc_def
      name: MSR_HWP_CAPABILITIES
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000771'
    - item_type: preproc_def
      name: MSR_HWP_INTERRUPT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000773'
    - item_type: preproc_def
      name: MSR_HWP_REQUEST
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000774'
    - item_type: preproc_def
      name: MSR_HWP_STATUS
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000777'
    - item_type: preproc_def
      name: MSR_X2APIC_FIRST
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: MSR_X2APIC_LAST
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000008ff'
    - item_type: preproc_def
      name: MSR_X2APIC_TPR
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000808'
    - item_type: preproc_def
      name: MSR_X2APIC_PPR
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000080a'
    - item_type: preproc_def
      name: MSR_X2APIC_EOI
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000080b'
    - item_type: preproc_def
      name: MSR_X2APIC_TMICT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000838'
    - item_type: preproc_def
      name: MSR_X2APIC_TMCCT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000839'
    - item_type: preproc_def
      name: MSR_X2APIC_SELF
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000083f'
    - item_type: preproc_def
      name: MSR_PASID
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000d93'
    - item_type: preproc_def
      name: PASID_PASID_MASK
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000fffff'
    - item_type: preproc_def
      name: PASID_VALID
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 31)
    - item_type: preproc_def
      name: MSR_PKG_HDC_CTL
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000db0'
    - item_type: preproc_def
      name: PKG_HDC_CTL_HDC_PKG_ENABLE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: BIT(0, ULL)
    - item_type: preproc_def
      name: MSR_PM_CTL1
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000db1'
    - item_type: preproc_def
      name: PM_CTL1_HDC_ALLOW_BLOCK
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: BIT(0, ULL)
    - item_type: preproc_def
      name: MSR_MCU_CONTROL
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00001406'
    - item_type: preproc_def
      name: MCU_CONTROL_LOCK
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MCU_CONTROL_DIS_MCU_LOAD
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: MCU_CONTROL_EN_SMM_BYPASS
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  2)
    - item_type: preproc_def
      name: MSR_UARCH_MISC_CTRL
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00001b01'
    - item_type: preproc_def
      name: UARCH_CTRL_DOITM
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  0)
    - item_type: preproc_def
      name: MSR_EFER
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000080, U) '
    - item_type: preproc_def
      name: EFER_SCE
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) <<  0) '
    - item_type: preproc_def
      name: EFER_LME
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) <<  8) '
    - item_type: preproc_def
      name: EFER_LMA
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) << 10) '
    - item_type: preproc_def
      name: EFER_NXE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) << 11) '
    - item_type: preproc_def
      name: EFER_SVME
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) << 12) '
    - item_type: preproc_def
      name: EFER_FFXSE
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) << 14) '
    - item_type: preproc_def
      name: EFER_AIBRSE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(_AC(1, ULL) << 21) '
    - item_type: preproc_def
      name: EFER_KNOWN_MASK
      pos:
        line_end: 224
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: "(EFER_SCE | EFER_LME | EFER_LMA | EFER_NXE | EFER_SVME | EFER_FFXSE
        | \\\n     EFER_AIBRSE)"
    - item_type: preproc_def
      name: MSR_STAR
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000081, U) '
    - item_type: preproc_def
      name: MSR_LSTAR
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000082, U) '
    - item_type: preproc_def
      name: MSR_CSTAR
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000083, U) '
    - item_type: preproc_def
      name: MSR_SYSCALL_MASK
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000084, U) '
    - item_type: preproc_def
      name: MSR_FS_BASE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000100, U) '
    - item_type: preproc_def
      name: MSR_GS_BASE
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000101, U) '
    - item_type: preproc_def
      name: MSR_SHADOW_GS_BASE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000102, U) '
    - item_type: preproc_def
      name: MSR_TSC_AUX
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0000103, U) '
    - item_type: preproc_def
      name: MSR_K8_SYSCFG
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010010, U)
    - item_type: preproc_def
      name: SYSCFG_MTRR_FIX_DRAM_EN
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 18)
    - item_type: preproc_def
      name: SYSCFG_MTRR_FIX_DRAM_MOD_EN
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 19)
    - item_type: preproc_def
      name: SYSCFG_MTRR_VAR_DRAM_EN
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 20)
    - item_type: preproc_def
      name: SYSCFG_MTRR_TOM2_EN
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 21)
    - item_type: preproc_def
      name: SYSCFG_TOM2_FORCE_WB
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 22)
    - item_type: preproc_def
      name: MSR_K8_IORR_BASE0
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010016, U)
    - item_type: preproc_def
      name: MSR_K8_IORR_MASK0
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010017, U)
    - item_type: preproc_def
      name: MSR_K8_IORR_BASE1
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010018, U)
    - item_type: preproc_def
      name: MSR_K8_IORR_MASK1
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010019, U)
    - item_type: preproc_def
      name: MSR_K8_TSEG_BASE
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0010112, U) '
    - item_type: preproc_def
      name: MSR_K8_TSEG_MASK
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc0010113, U) '
    - item_type: preproc_def
      name: MSR_K8_VM_CR
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: _AC(0xc0010114, U)
    - item_type: preproc_def
      name: VM_CR_INIT_REDIRECTION
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  1)
    - item_type: preproc_def
      name: VM_CR_SVM_DISABLE
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: MSR_VIRT_SPEC_CTRL
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '_AC(0xc001011f, U) '
    - item_type: preproc_def
      name: MSR_AMD_CSTATE_CFG
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010296U
    - item_type: preproc_def
      name: MSR_AMD_CPPC_CAP1
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00102b0U
    - item_type: preproc_def
      name: MSR_AMD_CPPC_ENABLE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00102b1U
    - item_type: preproc_def
      name: AMD_CPPC_ENABLE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 0)
    - item_type: preproc_def
      name: MSR_AMD_CPPC_REQ
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00102b3U
    - item_type: preproc_def
      name: AMD_CPPC_EPP_MASK
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(0xff, ULL) << 24)
    - item_type: preproc_def
      name: MSR_IA32_PERFCTR0
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000c1'
    - item_type: preproc_def
      name: MSR_IA32_A_PERFCTR0
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000004c1'
    - item_type: preproc_def
      name: MSR_FSB_FREQ
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000cd'
    - item_type: preproc_def
      name: MSR_MTRRcap
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000fe'
    - item_type: preproc_def
      name: MTRRcap_VCNT
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000ff'
    - item_type: preproc_def
      name: MSR_IA32_BBL_CR_CTL
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000119'
    - item_type: preproc_def
      name: MSR_IA32_SYSENTER_CS
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000174'
    - item_type: preproc_def
      name: MSR_IA32_SYSENTER_ESP
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000175'
    - item_type: preproc_def
      name: MSR_IA32_SYSENTER_EIP
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000176'
    - item_type: preproc_def
      name: MSR_IA32_MCG_CAP
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000179'
    - item_type: preproc_def
      name: MSR_IA32_MCG_STATUS
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000017a'
    - item_type: preproc_def
      name: MSR_IA32_MCG_CTL
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000017b'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EXT_CTL
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000004d0'
    - item_type: preproc_def
      name: MSR_IA32_PEBS_ENABLE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003f1'
    - item_type: preproc_def
      name: MSR_IA32_DS_AREA
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000600'
    - item_type: preproc_def
      name: MSR_IA32_PERF_CAPABILITIES
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000345'
    - item_type: preproc_def
      name: MSR_IA32_PERF_CAP_LBR_FORMAT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: MSR_IA32_BNDCFGS
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000d90'
    - item_type: preproc_def
      name: IA32_BNDCFGS_ENABLE
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: IA32_BNDCFGS_PRESERVE
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: IA32_BNDCFGS_RESERVED
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000ffc'
    - item_type: preproc_def
      name: MSR_IA32_XSS
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000da0'
    - item_type: preproc_def
      name: MSR_MTRRfix64K_00000
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000250'
    - item_type: preproc_def
      name: MSR_MTRRfix16K_80000
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000258'
    - item_type: preproc_def
      name: MSR_MTRRfix16K_A0000
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000259'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_C0000
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000268'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_C8000
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000269'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_D0000
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026a'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_D8000
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026b'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_E0000
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026c'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_E8000
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026d'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_F0000
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026e'
    - item_type: preproc_def
      name: MSR_MTRRfix4K_F8000
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000026f'
    - item_type: preproc_def
      name: MSR_MTRRdefType
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000002ff'
    - item_type: preproc_def
      name: MTRRdefType_FE
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1u << 10)
    - item_type: preproc_def
      name: MTRRdefType_E
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1u << 11)
    - item_type: preproc_def
      name: MSR_IA32_DEBUGCTLMSR
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d9'
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_LBR
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_BTF
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_TR
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<6) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_BTS
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<7) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_BTINT
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<8) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_BTS_OFF_OS
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<9)  '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_BTS_OFF_USR
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<10) '
    - item_type: preproc_def
      name: IA32_DEBUGCTLMSR_RTM
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '(1<<15) '
    - item_type: preproc_def
      name: MSR_IA32_LASTBRANCHFROMIP
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001db'
    - item_type: preproc_def
      name: MSR_IA32_LASTBRANCHTOIP
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001dc'
    - item_type: preproc_def
      name: MSR_IA32_LASTINTFROMIP
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001dd'
    - item_type: preproc_def
      name: MSR_IA32_LASTINTTOIP
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001de'
    - item_type: preproc_def
      name: MSR_IA32_POWER_CTL
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001fc'
    - item_type: preproc_def
      name: MSR_IA32_CR_PAT
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000277'
    - item_type: preproc_def
      name: MSR_IA32_CR_PAT_RESET
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0x0007040600070406ULL
    - item_type: preproc_def
      name: MSR_IA32_MC0_CTL
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: MSR_IA32_MC0_STATUS
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000401'
    - item_type: preproc_def
      name: MSR_IA32_MC0_ADDR
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000402'
    - item_type: preproc_def
      name: MSR_IA32_MC0_MISC
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000403'
    - item_type: preproc_def
      name: MSR_IA32_MC0_CTL2
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000280'
    - item_type: preproc_def
      name: CMCI_EN
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1UL<<30)
    - item_type: preproc_def
      name: CMCI_THRESHOLD_MASK
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x7FFF'
    - item_type: preproc_def
      name: MSR_AMD64_MC0_MASK
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010044U
    - item_type: preproc_def
      name: MSR_IA32_VMX_BASIC
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x480'
    - item_type: preproc_def
      name: MSR_IA32_VMX_PINBASED_CTLS
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x481'
    - item_type: preproc_def
      name: MSR_IA32_VMX_PROCBASED_CTLS
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x482'
    - item_type: preproc_def
      name: MSR_IA32_VMX_EXIT_CTLS
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x483'
    - item_type: preproc_def
      name: MSR_IA32_VMX_ENTRY_CTLS
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x484'
    - item_type: preproc_def
      name: MSR_IA32_VMX_MISC
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x485'
    - item_type: preproc_def
      name: MSR_IA32_VMX_CR0_FIXED0
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x486'
    - item_type: preproc_def
      name: MSR_IA32_VMX_CR0_FIXED1
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x487'
    - item_type: preproc_def
      name: MSR_IA32_VMX_CR4_FIXED0
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x488'
    - item_type: preproc_def
      name: MSR_IA32_VMX_CR4_FIXED1
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x489'
    - item_type: preproc_def
      name: MSR_IA32_VMX_VMCS_ENUM
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48a'
    - item_type: preproc_def
      name: MSR_IA32_VMX_PROCBASED_CTLS2
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48b'
    - item_type: preproc_def
      name: MSR_IA32_VMX_EPT_VPID_CAP
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48c'
    - item_type: preproc_def
      name: MSR_IA32_VMX_TRUE_PINBASED_CTLS
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48d'
    - item_type: preproc_def
      name: MSR_IA32_VMX_TRUE_PROCBASED_CTLS
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48e'
    - item_type: preproc_def
      name: MSR_IA32_VMX_TRUE_EXIT_CTLS
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x48f'
    - item_type: preproc_def
      name: MSR_IA32_VMX_TRUE_ENTRY_CTLS
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x490'
    - item_type: preproc_def
      name: MSR_IA32_VMX_VMFUNC
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x491'
    - item_type: preproc_def
      name: MSR_IA32_VMX_PROCBASED_CTLS3
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x492'
    - item_type: preproc_def
      name: MSR_K7_EVNTSEL0
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010000U
    - item_type: preproc_def
      name: MSR_K7_PERFCTR0
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010004U
    - item_type: preproc_def
      name: MSR_K7_EVNTSEL1
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010001U
    - item_type: preproc_def
      name: MSR_K7_PERFCTR1
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010005U
    - item_type: preproc_def
      name: MSR_K7_EVNTSEL2
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010002U
    - item_type: preproc_def
      name: MSR_K7_PERFCTR2
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010006U
    - item_type: preproc_def
      name: MSR_K7_EVNTSEL3
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010003U
    - item_type: preproc_def
      name: MSR_K7_PERFCTR3
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010007U
    - item_type: preproc_def
      name: MSR_K8_TOP_MEM1
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001001aU
    - item_type: preproc_def
      name: MSR_K8_TOP_MEM2
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001001dU
    - item_type: preproc_def
      name: MSR_K8_HWCR
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010015U
    - item_type: preproc_def
      name: K8_HWCR_TSC_FREQ_SEL
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1ULL << 24)
    - item_type: preproc_def
      name: K8_HWCR_CPUID_USER_DIS
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1ULL << 35)
    - item_type: preproc_def
      name: MSR_K7_FID_VID_CTL
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010041U
    - item_type: preproc_def
      name: MSR_K7_FID_VID_STATUS
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010042U
    - item_type: preproc_def
      name: MSR_K8_PSTATE_LIMIT
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010061U
    - item_type: preproc_def
      name: MSR_K8_PSTATE_CTRL
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010062U
    - item_type: preproc_def
      name: MSR_K8_PSTATE_STATUS
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010063U
    - item_type: preproc_def
      name: MSR_K8_PSTATE0
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010064U
    - item_type: preproc_def
      name: MSR_K8_PSTATE1
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010065U
    - item_type: preproc_def
      name: MSR_K8_PSTATE2
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010066U
    - item_type: preproc_def
      name: MSR_K8_PSTATE3
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010067U
    - item_type: preproc_def
      name: MSR_K8_PSTATE4
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010068U
    - item_type: preproc_def
      name: MSR_K8_PSTATE5
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010069U
    - item_type: preproc_def
      name: MSR_K8_PSTATE6
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001006AU
    - item_type: preproc_def
      name: MSR_K8_PSTATE7
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001006BU
    - item_type: preproc_def
      name: MSR_K8_ENABLE_C1E
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010055U
    - item_type: preproc_def
      name: MSR_K8_VM_HSAVE_PA
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010117U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL0
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010200U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR0
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010201U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL1
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010202U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR1
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010203U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL2
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010204U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR2
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010205U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL3
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010206U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR3
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010207U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL4
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010208U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR4
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010209U
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_EVNTSEL5
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001020aU
    - item_type: preproc_def
      name: MSR_AMD_FAM15H_PERFCTR5
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001020bU
    - item_type: preproc_def
      name: MSR_AMD_L7S0_FEATURE_MASK
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011002U
    - item_type: preproc_def
      name: MSR_AMD_THRM_FEATURE_MASK
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011003U
    - item_type: preproc_def
      name: MSR_K8_FEATURE_MASK
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011004U
    - item_type: preproc_def
      name: MSR_K8_EXT_FEATURE_MASK
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011005U
    - item_type: preproc_def
      name: MSR_AMD64_NB_CFG
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001001fU
    - item_type: preproc_def
      name: AMD64_NB_CFG_CF8_EXT_ENABLE_BIT
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '46'
    - item_type: preproc_def
      name: MSR_AMD64_LS_CFG
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011020U
    - item_type: preproc_def
      name: MSR_AMD64_IC_CFG
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011021U
    - item_type: preproc_def
      name: MSR_AMD64_DC_CFG
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011022U
    - item_type: preproc_def
      name: MSR_AMD64_DE_CFG
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011029U
    - item_type: preproc_def
      name: AMD64_DE_CFG_LFENCE_SERIALISE
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 1)
    - item_type: preproc_def
      name: MSR_AMD64_EX_CFG
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001102cU
    - item_type: preproc_def
      name: MSR_AMD64_BP_CFG
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001102eU
    - item_type: preproc_def
      name: BP_CFG_SPEC_REDUCE
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) <<  4)
    - item_type: preproc_def
      name: MSR_AMD64_DE_CFG2
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00110e3U
    - item_type: preproc_def
      name: MSR_AMD64_DR0_ADDRESS_MASK
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011027U
    - item_type: preproc_def
      name: MSR_AMD64_DR1_ADDRESS_MASK
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011019U
    - item_type: preproc_def
      name: MSR_AMD64_DR2_ADDRESS_MASK
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001101aU
    - item_type: preproc_def
      name: MSR_AMD64_DR3_ADDRESS_MASK
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001101bU
    - item_type: preproc_def
      name: MSR_F10_MC4_MISC1
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0000408U
    - item_type: preproc_def
      name: MSR_F10_MC4_MISC2
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0000409U
    - item_type: preproc_def
      name: MSR_F10_MC4_MISC3
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc000040AU
    - item_type: preproc_def
      name: MSR_F10_BU_CFG
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0011023U
    - item_type: preproc_def
      name: MSR_F10_BU_CFG2
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc001102aU
    - item_type: preproc_def
      name: MSR_FAM10H_MMIO_CONF_BASE
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010058U
    - item_type: preproc_def
      name: FAM10H_MMIO_CONF_ENABLE
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: FAM10H_MMIO_CONF_BUSRANGE_MASK
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: FAM10H_MMIO_CONF_BUSRANGE_SHIFT
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FAM10H_MMIO_CONF_BASE_MASK
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xfffffffULL
    - item_type: preproc_def
      name: FAM10H_MMIO_CONF_BASE_SHIFT
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MSR_AMD_PATCHLEVEL
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000008b'
    - item_type: preproc_def
      name: MSR_AMD_PATCHLOADER
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010020U
    - item_type: preproc_def
      name: MSR_AMD64_TSC_RATIO
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0000104U
    - item_type: preproc_def
      name: MSR_AMD64_LWP_CFG
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0000105U
    - item_type: preproc_def
      name: MSR_AMD64_LWP_CBADDR
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0000106U
    - item_type: preproc_def
      name: MSR_AMD_OSVW_ID_LENGTH
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010140U
    - item_type: preproc_def
      name: MSR_AMD_OSVW_STATUS
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc0010141U
    - item_type: preproc_def
      name: MSR_AMD_PPIN_CTL
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00102f0U
    - item_type: preproc_def
      name: MSR_AMD_PPIN
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: 0xc00102f1U
    - item_type: preproc_def
      name: MSR_VIA_FCR
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00001107'
    - item_type: preproc_def
      name: MSR_VIA_RNG
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000110b'
    - item_type: preproc_def
      name: MSR_IA32_TSC
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: MSR_IA32_PLATFORM_ID
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000017'
    - item_type: preproc_def
      name: MSR_IA32_EBL_CR_POWERON
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000002a'
    - item_type: preproc_def
      name: MSR_IA32_EBC_FREQUENCY_ID
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000002c'
    - item_type: preproc_def
      name: MSR_IA32_FEATURE_CONTROL
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000003a'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_LOCK
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_ENABLE_VMXON_INSIDE_SMX
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_ENABLE_VMXON_OUTSIDE_SMX
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_SENTER_PARAM_CTL
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x7f00'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_ENABLE_SENTER
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_SGX_ENABLE
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: IA32_FEATURE_CONTROL_LMCE_ON
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: MSR_IA32_TSC_ADJUST
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000003b'
    - item_type: preproc_def
      name: MSR_IA32_UCODE_WRITE
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000079'
    - item_type: preproc_def
      name: MSR_IA32_UCODE_REV
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000008b'
    - item_type: preproc_def
      name: MSR_IA32_PERF_STATUS
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000198'
    - item_type: preproc_def
      name: MSR_IA32_PERF_CTL
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000199'
    - item_type: preproc_def
      name: MSR_IA32_MPERF
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000e7'
    - item_type: preproc_def
      name: MSR_IA32_APERF
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000e8'
    - item_type: preproc_def
      name: MSR_IA32_THERM_CONTROL
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000019a'
    - item_type: preproc_def
      name: MSR_IA32_THERM_INTERRUPT
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000019b'
    - item_type: preproc_def
      name: MSR_IA32_THERM_STATUS
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000019c'
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001a0'
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_FAST_STRING
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_PERF_AVAIL
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_BTS_UNAVAIL
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<11)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_MONITOR_ENABLE
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<18)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_LIMIT_CPUID
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<22)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_XTPR_DISABLE
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1<<23)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_XD_DISABLE
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 34)
    - item_type: preproc_def
      name: MSR_IA32_MISC_ENABLE_TURBO_DISENGAGE
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (_AC(1, ULL) << 38)
    - item_type: preproc_def
      name: MSR_IA32_TSC_DEADLINE
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006E0'
    - item_type: preproc_def
      name: MSR_IA32_ENERGY_PERF_BIAS
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001b0'
    - item_type: preproc_def
      name: MSR_IA32_CMT_EVTSEL
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000c8d'
    - item_type: preproc_def
      name: MSR_IA32_CMT_EVTSEL_UE_MASK
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000ffff'
    - item_type: preproc_def
      name: MSR_IA32_CMT_CTR
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000c8e'
    - item_type: preproc_def
      name: MSR_IA32_PSR_ASSOC
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000c8f'
    - item_type: preproc_def
      name: MSR_IA32_PSR_L3_QOS_CFG
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000c81'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EAX
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000180'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EBX
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000181'
    - item_type: preproc_def
      name: MSR_IA32_MCG_ECX
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000182'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EDX
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000183'
    - item_type: preproc_def
      name: MSR_IA32_MCG_ESI
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000184'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EDI
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000185'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EBP
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000186'
    - item_type: preproc_def
      name: MSR_IA32_MCG_ESP
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000187'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EFLAGS
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000188'
    - item_type: preproc_def
      name: MSR_IA32_MCG_EIP
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000189'
    - item_type: preproc_def
      name: MSR_IA32_MCG_MISC
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000018a'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R8
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000190'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R9
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000191'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R10
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000192'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R11
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000193'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R12
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000194'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R13
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000195'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R14
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000196'
    - item_type: preproc_def
      name: MSR_IA32_MCG_R15
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000197'
    - item_type: preproc_def
      name: MSR_P4_BPU_PERFCTR0
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000300'
    - item_type: preproc_def
      name: MSR_P4_BPU_PERFCTR1
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000301'
    - item_type: preproc_def
      name: MSR_P4_BPU_PERFCTR2
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000302'
    - item_type: preproc_def
      name: MSR_P4_BPU_PERFCTR3
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000303'
    - item_type: preproc_def
      name: MSR_P4_MS_PERFCTR0
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000304'
    - item_type: preproc_def
      name: MSR_P4_MS_PERFCTR1
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000305'
    - item_type: preproc_def
      name: MSR_P4_MS_PERFCTR2
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000306'
    - item_type: preproc_def
      name: MSR_P4_MS_PERFCTR3
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000307'
    - item_type: preproc_def
      name: MSR_P4_FLAME_PERFCTR0
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000308'
    - item_type: preproc_def
      name: MSR_P4_FLAME_PERFCTR1
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000309'
    - item_type: preproc_def
      name: MSR_P4_FLAME_PERFCTR2
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030a'
    - item_type: preproc_def
      name: MSR_P4_FLAME_PERFCTR3
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030b'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR0
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030c'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR1
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030d'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR2
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030e'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR3
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030f'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR4
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000310'
    - item_type: preproc_def
      name: MSR_P4_IQ_PERFCTR5
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000311'
    - item_type: preproc_def
      name: MSR_P4_BPU_CCCR0
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000360'
    - item_type: preproc_def
      name: MSR_P4_BPU_CCCR1
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000361'
    - item_type: preproc_def
      name: MSR_P4_BPU_CCCR2
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000362'
    - item_type: preproc_def
      name: MSR_P4_BPU_CCCR3
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000363'
    - item_type: preproc_def
      name: MSR_P4_MS_CCCR0
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000364'
    - item_type: preproc_def
      name: MSR_P4_MS_CCCR1
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000365'
    - item_type: preproc_def
      name: MSR_P4_MS_CCCR2
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000366'
    - item_type: preproc_def
      name: MSR_P4_MS_CCCR3
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000367'
    - item_type: preproc_def
      name: MSR_P4_FLAME_CCCR0
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000368'
    - item_type: preproc_def
      name: MSR_P4_FLAME_CCCR1
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000369'
    - item_type: preproc_def
      name: MSR_P4_FLAME_CCCR2
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036a'
    - item_type: preproc_def
      name: MSR_P4_FLAME_CCCR3
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036b'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR0
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036c'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR1
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036d'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR2
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036e'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR3
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000036f'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR4
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000370'
    - item_type: preproc_def
      name: MSR_P4_IQ_CCCR5
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000371'
    - item_type: preproc_def
      name: MSR_P4_ALF_ESCR0
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ca'
    - item_type: preproc_def
      name: MSR_P4_ALF_ESCR1
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003cb'
    - item_type: preproc_def
      name: MSR_P4_BPU_ESCR0
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b2'
    - item_type: preproc_def
      name: MSR_P4_BPU_ESCR1
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b3'
    - item_type: preproc_def
      name: MSR_P4_BSU_ESCR0
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a0'
    - item_type: preproc_def
      name: MSR_P4_BSU_ESCR1
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a1'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR0
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b8'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR1
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b9'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR2
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003cc'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR3
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003cd'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR4
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003e0'
    - item_type: preproc_def
      name: MSR_P4_CRU_ESCR5
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003e1'
    - item_type: preproc_def
      name: MSR_P4_DAC_ESCR0
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a8'
    - item_type: preproc_def
      name: MSR_P4_DAC_ESCR1
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a9'
    - item_type: preproc_def
      name: MSR_P4_FIRM_ESCR0
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a4'
    - item_type: preproc_def
      name: MSR_P4_FIRM_ESCR1
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a5'
    - item_type: preproc_def
      name: MSR_P4_FLAME_ESCR0
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a6'
    - item_type: preproc_def
      name: MSR_P4_FLAME_ESCR1
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a7'
    - item_type: preproc_def
      name: MSR_P4_FSB_ESCR0
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a2'
    - item_type: preproc_def
      name: MSR_P4_FSB_ESCR1
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003a3'
    - item_type: preproc_def
      name: MSR_P4_IQ_ESCR0
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ba'
    - item_type: preproc_def
      name: MSR_P4_IQ_ESCR1
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003bb'
    - item_type: preproc_def
      name: MSR_P4_IS_ESCR0
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b4'
    - item_type: preproc_def
      name: MSR_P4_IS_ESCR1
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b5'
    - item_type: preproc_def
      name: MSR_P4_ITLB_ESCR0
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b6'
    - item_type: preproc_def
      name: MSR_P4_ITLB_ESCR1
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b7'
    - item_type: preproc_def
      name: MSR_P4_IX_ESCR0
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c8'
    - item_type: preproc_def
      name: MSR_P4_IX_ESCR1
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c9'
    - item_type: preproc_def
      name: MSR_P4_MOB_ESCR0
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003aa'
    - item_type: preproc_def
      name: MSR_P4_MOB_ESCR1
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ab'
    - item_type: preproc_def
      name: MSR_P4_MS_ESCR0
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c0'
    - item_type: preproc_def
      name: MSR_P4_MS_ESCR1
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c1'
    - item_type: preproc_def
      name: MSR_P4_PMH_ESCR0
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ac'
    - item_type: preproc_def
      name: MSR_P4_PMH_ESCR1
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ad'
    - item_type: preproc_def
      name: MSR_P4_RAT_ESCR0
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003bc'
    - item_type: preproc_def
      name: MSR_P4_RAT_ESCR1
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003bd'
    - item_type: preproc_def
      name: MSR_P4_SAAT_ESCR0
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003ae'
    - item_type: preproc_def
      name: MSR_P4_SAAT_ESCR1
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003af'
    - item_type: preproc_def
      name: MSR_P4_SSU_ESCR0
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003be'
    - item_type: preproc_def
      name: MSR_P4_SSU_ESCR1
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003bf '
    - item_type: preproc_def
      name: MSR_P4_TBPU_ESCR0
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c2'
    - item_type: preproc_def
      name: MSR_P4_TBPU_ESCR1
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c3'
    - item_type: preproc_def
      name: MSR_P4_TC_ESCR0
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c4'
    - item_type: preproc_def
      name: MSR_P4_TC_ESCR1
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003c5'
    - item_type: preproc_def
      name: MSR_P4_U2L_ESCR0
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b0'
    - item_type: preproc_def
      name: MSR_P4_U2L_ESCR1
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000003b1'
    - item_type: preproc_def
      name: MSR_P4_LER_FROM_LIP
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d7'
    - item_type: preproc_def
      name: MSR_P4_LER_TO_LIP
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001d8'
    - item_type: preproc_def
      name: MSR_P4_LASTBRANCH_TOS
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001da'
    - item_type: preproc_def
      name: MSR_P4_LASTBRANCH_0
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001db'
    - item_type: preproc_def
      name: NUM_MSR_P4_LASTBRANCH
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MSR_P4_LASTBRANCH_0_FROM_LIP
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000680'
    - item_type: preproc_def
      name: MSR_P4_LASTBRANCH_0_TO_LIP
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006c0'
    - item_type: preproc_def
      name: NUM_MSR_P4_LASTBRANCH_FROM_TO
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MSR_C2_LASTBRANCH_TOS
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001c9'
    - item_type: preproc_def
      name: MSR_C2_LASTBRANCH_0_FROM_IP
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: MSR_C2_LASTBRANCH_0_TO_IP
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000060'
    - item_type: preproc_def
      name: NUM_MSR_C2_LASTBRANCH_FROM_TO
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NUM_MSR_ATOM_LASTBRANCH_FROM_TO
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MSR_NHL_LBR_SELECT
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001c8'
    - item_type: preproc_def
      name: MSR_NHL_LASTBRANCH_TOS
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001c9'
    - item_type: preproc_def
      name: MSR_SKL_LASTBRANCH_0_FROM_IP
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000680'
    - item_type: preproc_def
      name: MSR_SKL_LASTBRANCH_0_TO_IP
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006c0'
    - item_type: preproc_def
      name: MSR_SKL_LASTBRANCH_0_INFO
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000dc0'
    - item_type: preproc_def
      name: NUM_MSR_SKL_LASTBRANCH
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MSR_SM_LBR_SELECT
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001c8'
    - item_type: preproc_def
      name: MSR_SM_LASTBRANCH_TOS
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000001c9'
    - item_type: preproc_def
      name: MSR_GM_LASTBRANCH_0_FROM_IP
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000680'
    - item_type: preproc_def
      name: MSR_GM_LASTBRANCH_0_TO_IP
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000006c0'
    - item_type: preproc_def
      name: NUM_MSR_GM_LASTBRANCH_FROM_TO
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MSR_CORE_PERF_FIXED_CTR0
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000309'
    - item_type: preproc_def
      name: MSR_CORE_PERF_FIXED_CTR1
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030a'
    - item_type: preproc_def
      name: MSR_CORE_PERF_FIXED_CTR2
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000030b'
    - item_type: preproc_def
      name: MSR_CORE_PERF_FIXED_CTR_CTRL
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000038d'
    - item_type: preproc_def
      name: MSR_CORE_PERF_GLOBAL_STATUS
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000038e'
    - item_type: preproc_def
      name: MSR_CORE_PERF_GLOBAL_CTRL
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000038f'
    - item_type: preproc_def
      name: MSR_CORE_PERF_GLOBAL_OVF_CTRL
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000390'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V1_CPUID1
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000478'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V2_CPUID1
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000130'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V2_CPUID80000001
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000131'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V3_CPUID1
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000132'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V3_CPUID80000001
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000133'
    - item_type: preproc_def
      name: MSR_INTEL_MASK_V3_CPUIDD_01
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000134'
    - item_type: preproc_def
      name: MSR_INTEL_PLATFORM_INFO
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x000000ce'
    - item_type: preproc_def
      name: _MSR_PLATFORM_INFO_CPUID_FAULTING
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '31'
    - item_type: preproc_def
      name: MSR_PLATFORM_INFO_CPUID_FAULTING
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1ULL << _MSR_PLATFORM_INFO_CPUID_FAULTING)
    - item_type: preproc_def
      name: MSR_INTEL_MISC_FEATURES_ENABLES
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000140'
    - item_type: preproc_def
      name: _MSR_MISC_FEATURES_CPUID_FAULTING
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSR_MISC_FEATURES_CPUID_FAULTING
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: (1ULL << _MSR_MISC_FEATURES_CPUID_FAULTING)
    - item_type: preproc_def
      name: MSR_CC6_DEMOTION_POLICY_CONFIG
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000668'
    - item_type: preproc_def
      name: MSR_MC6_DEMOTION_POLICY_CONFIG
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000669'
    - item_type: preproc_def
      name: MSR_PKGC3_IRTL
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000060a'
    - item_type: preproc_def
      name: MSR_PKGC6_IRTL
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000060b'
    - item_type: preproc_def
      name: MSR_PKGC7_IRTL
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x0000060c'
    - item_type: preproc_def
      name: MSR_PKGC8_IRTL
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000633'
    - item_type: preproc_def
      name: MSR_PKGC9_IRTL
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000634'
    - item_type: preproc_def
      name: MSR_PKGC10_IRTL
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/xen/xen/arch/x86/include/asm/msr-index.h
      type_or_value: '0x00000635'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/guest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/elf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cr0
        type: unsigned long
      item_type: struct
      name: crash_xen_core_t
      pos:
        line_end: 5
        line_start: 3
        source_file: /src/xen/xen/arch/x86/include/asm/elf.h
    typedefs: []
    union: []
- function_names:
  - __dfn_to_daddr
  - __daddr_to_dfn
  - dfn_to_daddr
  - daddr_to_dfn
  - iommu_call
  - iommu_vcall
  - iommu_get_ops
  - iommu_adjust_irq_affinities
  - iommu_supports_x2apic
  - iommu_disable_x2apic
  - iommu_sync_cache
  source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_DOMAIN_ADDRESS_WIDTH
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
      type_or_value: '48'
    - item_type: preproc_def
      name: IOMMU_PAGE_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
      type_or_value: '12'
    - item_type: preproc_def
      name: IOMMU_PAGE_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
      type_or_value: (1 << IOMMU_PAGE_SHIFT)
    - item_type: preproc_def
      name: IOMMU_PAGE_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
      type_or_value: (~(IOMMU_PAGE_SIZE - 1))
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: gport
        type: unsigned int
      - name: mport
        type: unsigned int
      - name: np
        type: unsigned int
      item_type: struct
      name: g2m_ioport
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
    - fields:
      - name: mapping_lock
        type: spinlock_t
      - name: pgtables
        type: "struct {\n        struct page_list_head list;\n        spinlock_t lock;\n
          \   }"
      - name: identity_maps
        type: struct list_head
      item_type: struct
      name: arch_iommu
      pos:
        line_end: 56
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
    - fields:
      - name: '*ops'
        type: struct iommu_ops
      - name: (*setup)(void)
        type: int
      - name: (*supports_x2apic)(void)
        type: bool
      item_type: struct
      name: iommu_init_ops
      pos:
        line_end: 81
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
    typedefs:
    - item_type: typedef
      name: daddr_t
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/iommu.h
      type: uint64_t
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPURIOUS_APIC_VECTOR
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ERROR_APIC_VECTOR
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xfe'
    - item_type: preproc_def
      name: INVALIDATE_TLB_VECTOR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xfd'
    - item_type: preproc_def
      name: EVENT_CHECK_VECTOR
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xfc'
    - item_type: preproc_def
      name: CALL_FUNCTION_VECTOR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xfb'
    - item_type: preproc_def
      name: LOCAL_TIMER_VECTOR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xfa'
    - item_type: preproc_def
      name: PMU_APIC_VECTOR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xf9'
    - item_type: preproc_def
      name: FIRST_HIPRIORITY_VECTOR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xf1'
    - item_type: preproc_def
      name: LAST_HIPRIORITY_VECTOR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xf8'
    - item_type: preproc_def
      name: IRQ0_VECTOR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: FIRST_LEGACY_VECTOR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: FIRST_DYNAMIC_VECTOR
    - item_type: preproc_def
      name: LAST_LEGACY_VECTOR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: (FIRST_LEGACY_VECTOR + 0xf)
    - item_type: preproc_def
      name: HPET_BROADCAST_VECTOR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: (LAST_LEGACY_VECTOR + 1)
    - item_type: preproc_def
      name: HYPERCALL_VECTOR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0x82'
    - item_type: preproc_def
      name: LEGACY_SYSCALL_VECTOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: FIRST_DYNAMIC_VECTOR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: LAST_DYNAMIC_VECTOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: '0xef'
    - item_type: preproc_def
      name: NR_DYNAMIC_VECTORS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: (LAST_DYNAMIC_VECTOR - FIRST_DYNAMIC_VECTOR + 1)
    - item_type: preproc_def
      name: IRQ_MOVE_CLEANUP_VECTOR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: (FIRST_LEGACY_VECTOR + 2)
    - item_type: preproc_def
      name: FIRST_IRQ_VECTOR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: FIRST_DYNAMIC_VECTOR
    - item_type: preproc_def
      name: LAST_IRQ_VECTOR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/irq-vectors.h
      type_or_value: LAST_HIPRIORITY_VECTOR
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/nmi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: nmi_callback_t(const struct cpu_user_regs *regs, int cpu)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/nmi.h
      type: int
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/microcode.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sig
        type: unsigned int
      - name: pf
        type: unsigned int
      - name: rev
        type: unsigned int
      item_type: struct
      name: cpu_signature
      pos:
        line_end: 19
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/microcode.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/ioreq.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/x86/include/asm/types.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/types.h
      type_or_value: '"016lx"'
    structs: []
    typedefs:
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/xen/xen/arch/x86/include/asm/types.h
      type: unsigned long
    union: []
- function_names:
  - create_grant_host_mapping
  - replace_grant_host_mapping
  - gnttab_get_frame_gfn
  - gnttab_shared_mfn
  - gnttab_shared_gfn
  - gnttab_status_mfn
  - gnttab_status_gfn
  - gnttab_mark_dirty
  - gnttab_clear_flags
  - gnttab_host_mapping_get_page_type
  - gnttab_release_host_mappings
  - gnttab_need_iommu_mapping
  source_file: /src/xen/xen/arch/x86/include/asm/grant_table.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_NR_GRANT_FRAMES
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/grant_table.h
      type_or_value: 1U
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_muldiv64
  source_file: /src/xen/xen/arch/x86/include/asm/muldiv64.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: arch_muldiv64
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/muldiv64.h
      type_or_value: arch_muldiv64
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/guest-msr.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: spec_ctrl
        type: "struct {\n        uint32_t raw;\n    }"
      - name: misc_features_enables
        type: "union {\n        uint32_t raw;\n        struct {\n            bool
          cpuid_faulting:1;\n        };\n    }"
      - name: pkrs
        type: uint32_t
      - name: xss
        type: "struct {\n        uint64_t raw;\n    }"
      - name: tsc_aux
        type: uint32_t
      - name: virt_spec_ctrl
        type: "struct {\n        uint32_t raw;\n    }"
      - name: dr_mask[4]
        type: uint32_t
      item_type: struct
      name: vcpu_msrs
      pos:
        line_end: 135
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/guest-msr.h
    typedefs: []
    union: []
- function_names:
  - monitor_ctrlreg_bitmask
  - arch_monitor_allow_userspace
  - arch_monitor_domctl_op
  - arch_monitor_get_capabilities
  - arch_monitor_init_domain
  - arch_monitor_cleanup_domain
  - monitored_msr
  source_file: /src/xen/xen/arch/x86/include/asm/monitor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: monitor_msr_bitmap
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/monitor.h
    typedefs: []
    union: []
- function_names:
  - mwait_pc10_supported
  source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MWAIT_SUBSTATE_MASK
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: MWAIT_CSTATE_MASK
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: 0xfU
    - item_type: preproc_def
      name: MWAIT_SUBSTATE_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CPUID_MWAIT_LEAF
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CPUID5_ECX_EXTENSIONS_SUPPORTED
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CPUID5_ECX_INTERRUPT_BREAK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MWAIT_ECX_INTERRUPT_BREAK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/mwait.h
      type_or_value: '0x1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Dprintk
  - SET_APIC_LOGICAL_ID
  - apic_printk
  - apic_mem_write
  - apic_mem_read
  - apic_wrmsr
  - apic_rdmsr
  - apic_write
  - apic_read
  - apic_icr_read
  - apic_icr_write
  - apic_isr_read
  - apic_tmr_read
  - apic_irr_read
  - get_apic_id
  - ack_APIC_irq
  source_file: /src/xen/xen/arch/x86/include/asm/apic.h
  types:
    enum:
    - enumerators:
      - name: APIC_MODE_INVALID
      - name: APIC_MODE_DISABLED
      - name: APIC_MODE_X2APIC
      - name: APIC_MODE_XAPIC
      item_type: enum
      name: apic_mode
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
    preproc_defs:
    - item_type: preproc_def
      name: APIC_QUIET
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
      type_or_value: '0'
    - item_type: preproc_def
      name: APIC_VERBOSE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
      type_or_value: '1'
    - item_type: preproc_def
      name: APIC_DEBUG
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NMI_NONE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NMI_LOCAL_APIC
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/x86/include/asm/apic.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - X86_MATCH_CPU
  - X86_MATCH_VFM
  - X86_MATCH_VFMS
  source_file: /src/xen/xen/arch/x86/include/asm/match-cpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X86_STEPPING_ANY
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/match-cpu.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: X86_FEATURE_ANY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/match-cpu.h
      type_or_value: X86_FEATURE_LM
    structs:
    - fields:
      - name: vendor
        type: uint8_t
      - name: family
        type: uint8_t
      - name: model
        type: uint16_t
      - name: steppings
        type: uint16_t
      - name: feature
        type: uint16_t
      - name: '*driver_data'
        type: void
      item_type: struct
      name: x86_cpu_id
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/match-cpu.h
    typedefs: []
    union: []
- function_names:
  - set_fixmap
  - set_fixmap_nocache
  - clear_fixmap
  - __fix_to_virt
  - __virt_to_fix
  - fix_to_virt
  - virt_to_fix
  - set_fixmap_x
  - clear_fixmap_x
  - __fix_x_to_virt
  - fix_x_to_virt
  source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
  types:
    enum:
    - enumerators:
      - name: FIX_RESERVED
      - name: FIX_COM_END
      - name: FIX_XHCI_END
        value: FIX_XHCI_BEGIN + MAX_XHCI_PAGES - 1
      - name: FIX_PV_CONSOLE
      - name: FIX_IO_APIC_BASE_0
      - name: FIX_HPET_BASE
      - name: FIX_TBOOT_MAP_ADDRESS
      - name: FIX_EHCI_DBGP
      - name: FIX_TBOOT_SHARED_BASE
      - name: FIX_APEI_RANGE_BASE
      - name: FIX_IO_APIC_BASE_END
        value: FIX_IO_APIC_BASE_0 + MAX_IO_APICS-1
      - name: FIX_XHCI_BEGIN
      - name: FIX_COM_BEGIN
      - name: FIX_XEN_SHARED_INFO
      - name: FIX_APIC_BASE
      - name: FIX_ACPI_BEGIN
      - name: FIX_MSIX_IO_RESERV_BASE
      - name: FIX_APEI_RANGE_END
        value: FIX_APEI_RANGE_BASE + FIX_APEI_RANGE_MAX -1
      - name: __end_of_fixed_addresses
      - name: FIX_MSIX_IO_RESERV_END
        value: FIX_MSIX_IO_RESERV_BASE + FIX_MSIX_MAX_PAGES -1
      - name: FIX_ACPI_END
        value: FIX_ACPI_BEGIN + NUM_FIXMAP_ACPI_PAGES - 1
      - name: FIX_EFI_MPF
      item_type: enum
      name: fixed_addresses
      pos:
        line_end: 70
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
    - enumerators:
      - name: FIX_X_RESERVED
      - name: __end_of_fixed_addresses_x
      - name: FIX_X_HYPERV_HCALL
      item_type: enum
      name: fixed_addresses_x
      pos:
        line_end: 104
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
    preproc_defs:
    - item_type: preproc_def
      name: FIXADDR_TOP
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (VMAP_VIRT_END - PAGE_SIZE)
    - item_type: preproc_def
      name: FIXADDR_X_TOP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (XEN_VIRT_END - PAGE_SIZE)
    - item_type: preproc_def
      name: MAX_XHCI_PAGES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: '256'
    - item_type: preproc_def
      name: FIXADDR_SIZE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (__end_of_fixed_addresses << PAGE_SHIFT)
    - item_type: preproc_def
      name: FIXADDR_START
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (FIXADDR_TOP - FIXADDR_SIZE)
    - item_type: preproc_def
      name: FIXADDR_X_SIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (__end_of_fixed_addresses_x << PAGE_SHIFT)
    - item_type: preproc_def
      name: FIXADDR_X_START
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/fixmap.h
      type_or_value: (FIXADDR_X_TOP - FIXADDR_X_SIZE)
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_event_delivery_is_enabled
  - local_events_need_delivery
  - local_event_delivery_disable
  - local_event_delivery_enable
  - vcpu_info
  - arch_get_virq_type
  - arch_evtchn_is_special
  source_file: /src/xen/xen/arch/x86/include/asm/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MSI_DATA_VECTOR
  - MSI_ADDR_DEST_ID
  - msi_control_reg
  - msi_lower_address_reg
  - msi_upper_address_reg
  - msi_data_reg
  - msi_mask_bits_reg
  - msi_pending_bits_reg
  - multi_msi_capable
  - multi_msi_enable
  - is_64bit_address
  - is_mask_bit_support
  - msix_control_reg
  - msix_table_offset_reg
  - msix_pba_offset_reg
  - msix_table_size
  - MSIX_CHECK_WARN
  source_file: /src/xen/xen/arch/x86/include/asm/msi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSI_DATA_VECTOR_SHIFT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSI_DATA_VECTOR_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0x000000ff'
    - item_type: preproc_def
      name: MSI_DATA_DELIVERY_MODE_SHIFT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MSI_DATA_DELIVERY_FIXED
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (0 << MSI_DATA_DELIVERY_MODE_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_DELIVERY_LOWPRI
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_DATA_DELIVERY_MODE_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_DELIVERY_MODE_MASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0x00000700'
    - item_type: preproc_def
      name: MSI_DATA_LEVEL_SHIFT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '14'
    - item_type: preproc_def
      name: MSI_DATA_LEVEL_DEASSERT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (0 << MSI_DATA_LEVEL_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_LEVEL_ASSERT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_DATA_LEVEL_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_TRIGGER_SHIFT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '15'
    - item_type: preproc_def
      name: MSI_DATA_TRIGGER_EDGE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (0 << MSI_DATA_TRIGGER_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_TRIGGER_LEVEL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_DATA_TRIGGER_SHIFT)
    - item_type: preproc_def
      name: MSI_DATA_TRIGGER_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: MSI_ADDR_BASE_HI
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSI_ADDR_BASE_LO
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: 0xfee00000U
    - item_type: preproc_def
      name: MSI_ADDR_BASE_MASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (~0xfffff)
    - item_type: preproc_def
      name: MSI_ADDR_HEADER
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: MSI_ADDR_BASE_LO
    - item_type: preproc_def
      name: MSI_ADDR_DESTMODE_SHIFT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MSI_ADDR_DESTMODE_PHYS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (0 << MSI_ADDR_DESTMODE_SHIFT)
    - item_type: preproc_def
      name: MSI_ADDR_DESTMODE_LOGIC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_ADDR_DESTMODE_SHIFT)
    - item_type: preproc_def
      name: MSI_ADDR_DESTMODE_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: MSI_ADDR_REDIRECTION_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MSI_ADDR_REDIRECTION_CPU
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (0 << MSI_ADDR_REDIRECTION_SHIFT)
    - item_type: preproc_def
      name: MSI_ADDR_REDIRECTION_LOWPRI
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_ADDR_REDIRECTION_SHIFT)
    - item_type: preproc_def
      name: MSI_ADDR_REDIRECTION_MASK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (1 << MSI_ADDR_REDIRECTION_SHIFT)
    - item_type: preproc_def
      name: MSI_ADDR_DEST_ID_SHIFT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MSI_ADDR_DEST_ID_MASK
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0x00ff000'
    - item_type: preproc_def
      name: FIX_MSIX_MAX_PAGES
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '512'
    - item_type: preproc_def
      name: MSI_TYPE_UNKNOWN
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSI_TYPE_HPET
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MSI_TYPE_IOMMU
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NR_HP_RESERVED_VECTORS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_MSIX_TABLE_ENTRIES
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: (PCI_MSIX_FLAGS_QSIZE + 1)
    - item_type: preproc_def
      name: MAX_MSIX_TABLE_PAGES
      pos:
        line_end: 202
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: "PFN_UP(MAX_MSIX_TABLE_ENTRIES * \\\n                                       PCI_MSIX_ENTRY_SIZE
        + \\\n                                       (~PCI_MSIX_BIRMASK & (PAGE_SIZE
        - 1)))"
    - item_type: preproc_def
      name: ADJ_IDX_FIRST
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ADJ_IDX_LAST
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
      type_or_value: '1'
    structs:
    - fields:
      - name: sbdf
        type: pci_sbdf_t
      - name: irq
        type: int
      - name: entry_nr
        type: int
      - name: table_base
        type: uint64_t
      item_type: struct
      name: msi_info
      pos:
        line_end: 64
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: data
        type: uint32_t
      - name: dest32
        type: uint32_t
      item_type: struct
      name: msi_msg
      pos:
        line_end: 76
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: msi_attrib
        type: "struct msi_attrib {\n        uint8_t type;        /* {0: unused, 5h:MSI,
          11h:MSI-X} */\n        uint8_t pos;         /* Location of the MSI capability
          */\n        bool maskbit      : 1; /* mask/pending bit supported ?   */\n
          \       bool is_64        : 1; /* Address size: 0=32bit 1=64bit  */\n        bool
          host_masked  : 1;\n        bool guest_masked : 1;\n        uint16_t entry_nr;
          \  /* specific enabled entry */\n    }"
      - name: irte_initialized
        type: bool
      - name: gvec
        type: uint8_t
      - name: '*pi_desc'
        type: struct pi_desc
      - name: list
        type: struct list_head
      - name: '*dev'
        type: struct pci_dev
      - name: irq
        type: int
      - name: remap_index
        type: int
      - name: msg
        type: struct msi_msg
      item_type: struct
      name: msi_desc
      pos:
        line_end: 126
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: type
        type: uint8_t
      - name: pos
        type: uint8_t
      - name: maskbit
        type: bool
      - name: is_64
        type: bool
      - name: host_masked
        type: bool
      - name: guest_masked
        type: bool
      - name: entry_nr
        type: uint16_t
      item_type: struct
      name: msi_attrib
      pos:
        line_end: 105
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: vector
        type: uint32_t
      - name: delivery_mode
        type: uint32_t
      - name: level
        type: bool
      - name: trigger
        type: bool
      item_type: struct
      name: msg_data
      pos:
        line_end: 181
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: lo_address
        type: "union {\n        struct {\n            uint32_t              :  2;\n
          \           bool dest_mode        :  1; /* 0:phys | 1:logic */\n            bool
          redirection_hint :  1; /* 0: dedicated CPU\n                                           1:
          lowest priority */\n            uint32_t              :  4;\n            uint32_t
          dest_id      : 24; /* Destination ID */\n        } u;\n        uint32_t
          value;\n    }"
      - name: hi_address
        type: uint32_t
      item_type: struct
      name: msg_address
      pos:
        line_end: 196
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    - fields:
      - name: nr_entries
        type: unsigned int
      - name: table
        type: "struct {\n        unsigned long first, last;\n    }"
      - name: table_refcnt[MAX_MSIX_TABLE_PAGES]
        type: int
      - name: table_idx[MAX_MSIX_TABLE_PAGES]
        type: int
      - name: adj_access_idx[2]
        type: unsigned int
      - name: table_lock
        type: spinlock_t
      - name: host_maskall
        type: bool
      - name: warned_domid
        type: domid_t
      - name: warned_kind
        type: "union {\n        uint8_t all;\n        struct {\n            bool maskall
          \                  : 1;\n            bool adjacent_not_initialized  : 1;\n
          \           bool adjacent_pba              : 1;\n        };\n    }"
      item_type: struct
      name: arch_msix
      pos:
        line_end: 234
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/msi.h
    typedefs: []
    union: []
- function_names:
  - HPET_Tn_CFG
  - HPET_Tn_CMP
  - HPET_Tn_ROUTE
  - hpet_read32
  - hpet_write32
  source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HPET_MMAP_SIZE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: HPET_ID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: HPET_PERIOD
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x004'
    - item_type: preproc_def
      name: HPET_CFG
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x010'
    - item_type: preproc_def
      name: HPET_STATUS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x020'
    - item_type: preproc_def
      name: HPET_COUNTER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x0f0'
    - item_type: preproc_def
      name: HPET_ID_VENDOR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0xffff0000'
    - item_type: preproc_def
      name: HPET_ID_LEGSUP
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: HPET_ID_64BIT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: HPET_ID_NUMBER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x00001f00'
    - item_type: preproc_def
      name: HPET_ID_REV
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x000000ff'
    - item_type: preproc_def
      name: HPET_ID_NUMBER_SHIFT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HPET_ID_VENDOR_SHIFT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '16'
    - item_type: preproc_def
      name: HPET_CFG_ENABLE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x001'
    - item_type: preproc_def
      name: HPET_CFG_LEGACY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x002'
    - item_type: preproc_def
      name: HPET_LEGACY_8254
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HPET_LEGACY_RTC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HPET_TN_LEVEL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x002'
    - item_type: preproc_def
      name: HPET_TN_ENABLE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x004'
    - item_type: preproc_def
      name: HPET_TN_PERIODIC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x008'
    - item_type: preproc_def
      name: HPET_TN_PERIODIC_CAP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x010'
    - item_type: preproc_def
      name: HPET_TN_64BIT_CAP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x020'
    - item_type: preproc_def
      name: HPET_TN_SETVAL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x040'
    - item_type: preproc_def
      name: HPET_TN_32BIT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: HPET_TN_ROUTE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x3e00'
    - item_type: preproc_def
      name: HPET_TN_FSB
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: HPET_TN_FSB_CAP
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: HPET_TN_RESERVED
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: 0xffff0081U
    - item_type: preproc_def
      name: HPET_TN_INT_ROUTE_CAP
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hpet.h
      type_or_value: (0xffffffffULL << 32)
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_cycles
  - PIT_TCW_CH
  - PIT_LTCH_CH
  source_file: /src/xen/xen/arch/x86/include/asm/time.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIT_RW_MSB
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: PIT_RW_LSB
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: PIT_RW_LSB_MSB
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (PIT_RW_LSB | PIT_RW_MSB)
    - item_type: preproc_def
      name: PIT_MODE_EOC
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (0 << 1)
    - item_type: preproc_def
      name: PIT_MODE_ONESHOT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: PIT_MODE_RATE_GEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (2 << 1)
    - item_type: preproc_def
      name: PIT_MODE_SQUARE_WAVE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (3 << 1)
    - item_type: preproc_def
      name: PIT_MODE_SW_STROBE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (4 << 1)
    - item_type: preproc_def
      name: PIT_MODE_HW_STROBE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (5 << 1)
    - item_type: preproc_def
      name: PIT_BINARY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (0 << 0)
    - item_type: preproc_def
      name: PIT_BCD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PIT_RDB
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: PIT_TCW_CH(3)
    - item_type: preproc_def
      name: PIT_RDB_NO_COUNT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: PIT_RDB_NO_STATUS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: PIT_RDB_CH2
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: PIT_RDB_CH1
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: PIT_RDB_CH0
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: PIT_RDB_RSVD
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PIT_STATUS_OUT_PIN
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: PIT_STATUS_NULL_COUNT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type_or_value: (1 << 6)
    structs: []
    typedefs:
    - item_type: typedef
      name: cycles_t
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/time.h
      type: u64
    union: []
- function_names:
  - physid_set
  - physid_clear
  - physid_isset
  - physid_test_and_set
  - first_physid
  - next_physid
  - last_physid
  - physids_and
  - physids_or
  - physids_clear
  - physids_complement
  - physids_empty
  - physids_equal
  - physids_weight
  source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IRQ_SOURCES
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_MP_BUSSES
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type_or_value: '260'
    - item_type: preproc_def
      name: PHYSID_ARRAY_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type_or_value: BITS_TO_LONGS(MAX_APICS)
    - item_type: preproc_def
      name: PHYSID_MASK_ALL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type_or_value: '{ {[0 ... PHYSID_ARRAY_SIZE-1] = ~0UL} }'
    - item_type: preproc_def
      name: PHYSID_MASK_NONE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type_or_value: '{ {[0 ... PHYSID_ARRAY_SIZE-1] = 0UL} }'
    structs:
    - fields:
      - name: mask[PHYSID_ARRAY_SIZE]
        type: unsigned long
      item_type: struct
      name: physid_mask
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
    typedefs:
    - item_type: typedef
      name: physid_mask_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/mpspec.h
      type: physid_mask
    union: []
- function_names:
  - as_true
  - decl_orig
  - decl_repl
  - repl_len
  - clone_repl
  - as_max
  source_file: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: orig_len
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
      type_or_value: (.L\@_orig_e       -     .L\@_orig_s)
    - item_type: preproc_def
      name: pad_len
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
      type_or_value: (.L\@_orig_p       -     .L\@_orig_e)
    - item_type: preproc_def
      name: total_len
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/alternative-asm.h
      type_or_value: (.L\@_orig_p       -     .L\@_orig_s)
    structs: []
    typedefs: []
    union: []
- function_names:
  - mem_sharing_enabled
  - mem_sharing_unshare_page
  - mem_sharing_is_fork
  - mem_sharing_enabled
  - mem_sharing_get_nr_saved_mfns
  - mem_sharing_get_nr_shared_mfns
  - mem_sharing_unshare_page
  - mem_sharing_notify_enomem
  - mem_sharing_is_fork
  - mem_sharing_fork_page
  - mem_sharing_fork_reset
  source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEM_SHARING_AUDIT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MEM_SHARING_AUDIT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
      type_or_value: '0'
    structs:
    - fields:
      - name: '*bucket'
        type: struct list_head
      - name: '*flag'
        type: void
      item_type: struct
      name: rmap_hashtab
      pos:
        line_end: 36
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    - fields:
      - name: '*pg'
        type: struct page_info
      - name: handle
        type: shr_handle_t
      item_type: struct
      name: page_sharing_info
      pos:
        line_end: 51
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
    typedefs:
    - item_type: typedef
      name: shr_handle_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/mem_sharing.h
      type: uint64_t
    union: []
- function_names:
  - readb
  - readw
  - readl
  - readq
  - writeb
  - writew
  - writel
  - writeq
  - __OUT1
  - __OUT2
  - __OUT
  - __IN1
  - __IN2
  - __IN
  source_file: /src/xen/xen/arch/x86/include/asm/io.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RETURN_TYPE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/io.h
      type_or_value: unsigned char
    - item_type: preproc_def
      name: RETURN_TYPE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/io.h
      type_or_value: unsigned short
    - item_type: preproc_def
      name: RETURN_TYPE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/io.h
      type_or_value: unsigned int
    structs: []
    typedefs: []
    union: []
- function_names:
  - HAP_PRINTK
  source_file: /src/xen/xen/arch/x86/include/asm/hap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dev_is_pci
  - pci_to_dev
  source_file: /src/xen/xen/arch/x86/include/asm/device.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: device_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/device.h
      type: pci_dev
    union: []
- function_names:
  - X86_SYNTH
  - X86_BUG
  source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FSCAPINTS
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: FEATURESET_NR_ENTRIES
    - item_type: preproc_def
      name: X86_NR_SYNTH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: DIV_ROUND_UP(X86_FEATURE_nr - FSCAPINTS * 32, 32)
    - item_type: preproc_def
      name: X86_BUG_FPU_PTRS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 0) '
    - item_type: preproc_def
      name: X86_BUG_NULL_SEG
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 1) '
    - item_type: preproc_def
      name: X86_BUG_CLFLUSH_MFENCE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 2) '
    - item_type: preproc_def
      name: X86_BUG_IBPB_NO_RET
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 3) '
    - item_type: preproc_def
      name: X86_BUG_CLFLUSH_MONITOR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 4) '
    - item_type: preproc_def
      name: X86_BUG_MONITOR
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG( 5) '
    - item_type: preproc_def
      name: X86_SPEC_NO_LFENCE_ENTRY_PV
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(16) '
    - item_type: preproc_def
      name: X86_SPEC_NO_LFENCE_ENTRY_INTR
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(17) '
    - item_type: preproc_def
      name: X86_SPEC_NO_LFENCE_ENTRY_VMX
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(18) '
    - item_type: preproc_def
      name: X86_SPEC_BHB_TSX
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(19) '
    - item_type: preproc_def
      name: X86_SPEC_BHB_LOOPS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(20) '
    - item_type: preproc_def
      name: X86_SPEC_BHB_LOOPS_LONG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(21) '
    - item_type: preproc_def
      name: X86_BUG_nr
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: 'X86_BUG(22) '
    - item_type: preproc_def
      name: X86_NR_BUG
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: "DIV_ROUND_UP(X86_BUG_nr - (FSCAPINTS + X86_NR_SYNTH) * 32, \\\n
        \                               32)"
    - item_type: preproc_def
      name: NCAPINTS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/cpufeatures.h
      type_or_value: '(FSCAPINTS + X86_NR_SYNTH + X86_NR_BUG) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - paging_mode_enabled
  - paging_mode_shadow
  - paging_mode_sh_forced
  - paging_mode_hap
  - paging_mode_refcounts
  - paging_mode_log_dirty
  - paging_mode_translate
  - paging_mode_external
  - paging_logdirty_levels
  - L1_LOGDIRTY_IDX
  - L2_LOGDIRTY_IDX
  - L3_LOGDIRTY_IDX
  - L4_LOGDIRTY_IDX
  - paging_log_dirty_init
  - paging_mark_dirty
  - paging_mark_pfn_dirty
  - paging_mfn_is_dirty
  - paging_get_hostmode
  - paging_get_nestedmode
  - paging_fault
  - paging_ga_to_gfn_cr3
  - paging_flush_tlb
  - paging_update_cr3
  - paging_update_paging_modes
  - safe_write_pte
  - gfn_valid
  source_file: /src/xen/xen/arch/x86/include/asm/paging.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PG_SH_shift
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PG_HAP_shift
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '21'
    - item_type: preproc_def
      name: PG_SHF_shift
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '22'
    - item_type: preproc_def
      name: PG_SH_enable
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (1U << PG_SH_shift)
    - item_type: preproc_def
      name: PG_SH_forced
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (1U << PG_SHF_shift)
    - item_type: preproc_def
      name: PG_SH_enable
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_SH_forced
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_HAP_enable
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (1U << PG_HAP_shift)
    - item_type: preproc_def
      name: PG_HAP_enable
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_mode_shift
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: PG_refcounts
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (XEN_DOMCTL_SHADOW_ENABLE_REFCOUNT << PG_mode_shift)
    - item_type: preproc_def
      name: PG_translate
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (XEN_DOMCTL_SHADOW_ENABLE_TRANSLATE << PG_mode_shift)
    - item_type: preproc_def
      name: PG_external
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (XEN_DOMCTL_SHADOW_ENABLE_EXTERNAL << PG_mode_shift)
    - item_type: preproc_def
      name: PG_refcounts
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_translate
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_external
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_log_dirty
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (XEN_DOMCTL_SHADOW_ENABLE_LOG_DIRTY << PG_mode_shift)
    - item_type: preproc_def
      name: PG_log_dirty
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PG_MASK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (PG_refcounts | PG_log_dirty | PG_translate | PG_external)
    - item_type: preproc_def
      name: PAGING_DEBUG_LOGDIRTY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LOGDIRTY_NODE_ENTRIES
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
      type_or_value: (1 << PAGETABLE_ORDER)
    structs:
    - fields:
      - name: shadow_levels
        type: unsigned int
      item_type: struct
      name: shadow_paging_mode
      pos:
        line_end: 100
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
    - fields:
      - name: "(*page_fault            )(struct vcpu *v, unsigned long va,\n                                            struct
          cpu_user_regs *regs)"
        type: int
      - name: "(*invlpg                )(struct vcpu *v,\n                                            unsigned
          long linear)"
        type: bool
      - name: (*update_cr3            )(struct vcpu *v, bool noflush)
        type: pagetable_t
      - name: guest_levels
        type: unsigned int
      - name: shadow
        type: struct shadow_paging_mode
      item_type: struct
      name: paging_mode
      pos:
        line_end: 128
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/paging.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/cpu-policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - edd_info
  - edd_device_params
  - mbr_signature
  source_file: /src/xen/xen/arch/x86/include/asm/edd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EDD_INFO_MAX
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EDD_MBR_SIG_MAX
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EDDEXTSIZE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
      type_or_value: '8'
    - item_type: preproc_def
      name: EDDPARMSIZE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
      type_or_value: '74'
    structs:
    - fields:
      - name: base_address
        type: u16
      - name: reserved1
        type: u16
      - name: reserved2
        type: u32
      item_type: struct
      name: __packed
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: bus
        type: u8
      - name: slot
        type: u8
      - name: function
        type: u8
      - name: channel
        type: u8
      - name: reserved
        type: u32
      item_type: struct
      name: __packed
      pos:
        line_end: 64
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: device
        type: u8
      - name: reserved1
        type: u8
      - name: reserved2
        type: u16
      - name: reserved3
        type: u32
      - name: reserved4
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 86
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: device
        type: u8
      - name: lun
        type: u8
      - name: reserved1
        type: u8
      - name: reserved2
        type: u8
      - name: reserved3
        type: u32
      - name: reserved4
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 94
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: id
        type: u16
      - name: lun
        type: u64
      - name: reserved1
        type: u16
      - name: reserved2
        type: u32
      item_type: struct
      name: __packed
      pos:
        line_end: 100
        line_start: 95
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: serial_number
        type: u64
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: eui
        type: u64
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 108
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: wwid
        type: u64
      - name: lun
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 112
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: identity_tag
        type: u64
      - name: reserved
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 116
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: array_number
        type: u32
      - name: reserved1
        type: u32
      - name: reserved2
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 121
        line_start: 117
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: device
        type: u8
      - name: reserved1
        type: u8
      - name: reserved2
        type: u16
      - name: reserved3
        type: u32
      - name: reserved4
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 128
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: reserved1
        type: u64
      - name: reserved2
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    typedefs: []
    union:
    - fields:
      - name: isa
        type: "struct __packed {\n                u16 base_address;\n                u16
          reserved1;\n                u32 reserved2;\n            }"
      - name: pci
        type: "struct __packed {\n                u8 bus;\n                u8 slot;\n
          \               u8 function;\n                u8 channel;\n                u32
          reserved;\n            }"
      - name: ibnd
        type: "struct __packed {\n                u64 reserved;\n            }"
      - name: xprs
        type: "struct __packed {\n                u64 reserved;\n            }"
      - name: htpt
        type: "struct __packed {\n                u64 reserved;\n            }"
      - name: unknown
        type: "struct __packed {\n                u64 reserved;\n            }"
      item_type: union
      name: interface_path
      pos:
        line_end: 78
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
    - fields:
      - name: ata
        type: "struct __packed {\n                u8 device;\n                u8 reserved1;\n
          \               u16 reserved2;\n                u32 reserved3;\n                u64
          reserved4;\n            }"
      - name: atapi
        type: "struct __packed {\n                u8 device;\n                u8 lun;\n
          \               u8 reserved1;\n                u8 reserved2;\n                u32
          reserved3;\n                u64 reserved4;\n            }"
      - name: scsi
        type: "struct __packed {\n                u16 id;\n                u64 lun;\n
          \               u16 reserved1;\n                u32 reserved2;\n            }"
      - name: usb
        type: "struct __packed {\n                u64 serial_number;\n                u64
          reserved;\n            }"
      - name: i1394
        type: "struct __packed {\n                u64 eui;\n                u64 reserved;\n
          \           }"
      - name: fibre
        type: "struct __packed {\n                u64 wwid;\n                u64 lun;\n
          \           }"
      - name: i2o
        type: "struct __packed {\n                u64 identity_tag;\n                u64
          reserved;\n            }"
      - name: raid
        type: "struct __packed {\n                u32 array_number;\n                u32
          reserved1;\n                u64 reserved2;\n            }"
      - name: sata
        type: "struct __packed {\n                u8 device;\n                u8 reserved1;\n
          \               u16 reserved2;\n                u32 reserved3;\n                u64
          reserved4;\n            }"
      - name: unknown
        type: "struct __packed {\n                u64 reserved1;\n                u64
          reserved2;\n            }"
      item_type: union
      name: device_path
      pos:
        line_end: 133
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/edd.h
- function_names:
  - l1e_read
  - l2e_read
  - l3e_read
  - l4e_read
  - l1e_write
  - l2e_write
  - l3e_write
  - l4e_write
  - l1e_get_intpte
  - l2e_get_intpte
  - l3e_get_intpte
  - l4e_get_intpte
  - l1e_get_pfn
  - l2e_get_pfn
  - l3e_get_pfn
  - l4e_get_pfn
  - l1e_get_mfn
  - l2e_get_mfn
  - l3e_get_mfn
  - l4e_get_mfn
  - l1e_get_paddr
  - l2e_get_paddr
  - l3e_get_paddr
  - l4e_get_paddr
  - l1e_get_page
  - l2e_get_page
  - l3e_get_page
  - l4e_get_page
  - l1e_get_flags
  - l2e_get_flags
  - l3e_get_flags
  - l4e_get_flags
  - l1e_get_pkey
  - l2e_get_pkey
  - l3e_get_pkey
  - l1e_empty
  - l2e_empty
  - l3e_empty
  - l4e_empty
  - l1e_from_pfn
  - l2e_from_pfn
  - l3e_from_pfn
  - l4e_from_pfn
  - l1e_from_mfn
  - l2e_from_mfn
  - l3e_from_mfn
  - l4e_from_mfn
  - l1e_from_paddr
  - l2e_from_paddr
  - l3e_from_paddr
  - l4e_from_paddr
  - l1e_from_intpte
  - l2e_from_intpte
  - l3e_from_intpte
  - l4e_from_intpte
  - l1e_from_page
  - l2e_from_page
  - l3e_from_page
  - l4e_from_page
  - l1e_add_flags
  - l2e_add_flags
  - l3e_add_flags
  - l4e_add_flags
  - l1e_remove_flags
  - l2e_remove_flags
  - l3e_remove_flags
  - l4e_remove_flags
  - l1e_flip_flags
  - l1e_has_changed
  - l2e_has_changed
  - l3e_has_changed
  - l4e_has_changed
  - map_l1t_from_l2e
  - map_l2t_from_l3e
  - map_l3t_from_l4e
  - l1e_from_l2e
  - l2e_from_l3e
  - l3e_from_l4e
  - l1_table_offset
  - l2_table_offset
  - l3_table_offset
  - l4_table_offset
  - pgentry_ptr_to_slot
  - pagetable_get_paddr
  - pagetable_get_page
  - pagetable_get_pfn
  - pagetable_get_mfn
  - pagetable_is_null
  - pagetable_from_pfn
  - pagetable_from_mfn
  - pagetable_from_page
  - pagetable_from_paddr
  - pagetable_null
  - clear_page
  - copy_page
  - __pa
  - __va
  - __virt_to_mfn
  - __mfn_to_virt
  - mfn_to_page
  - page_to_mfn
  - maddr_to_page
  - page_to_maddr
  - __pfn_to_paddr
  - __paddr_to_pfn
  - gfn_to_gaddr
  - gaddr_to_gfn
  - mfn_to_maddr
  - maddr_to_mfn
  - mfn_valid
  - virt_to_mfn
  - mfn_to_virt
  - pfn_to_paddr
  - paddr_to_pfn
  - vmap_to_mfn
  - vmap_to_page
  - pte_flags_to_cacheattr
  - cacheattr_to_pte_flags
  - perms_strictly_increased
  - invalidate_icache
  source_file: /src/xen/xen/arch/x86/include/asm/page.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_ORDER_4K
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGE_ORDER_2M
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PAGE_ORDER_1G
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '18'
    - item_type: preproc_def
      name: __linear_l1_table
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
    - item_type: preproc_def
      name: __linear_l2_table
      pos:
        line_end: 278
        line_start: 276
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: ((l2_pgentry_t *)(__linear_l1_table + l1_linear_offset(LINEAR_PT_VIRT_START)))
    - item_type: preproc_def
      name: __linear_l3_table
      pos:
        line_end: 280
        line_start: 278
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: ((l3_pgentry_t *)(__linear_l2_table + l2_linear_offset(LINEAR_PT_VIRT_START)))
    - item_type: preproc_def
      name: __linear_l4_table
      pos:
        line_end: 282
        line_start: 280
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: ((l4_pgentry_t *)(__linear_l3_table + l3_linear_offset(LINEAR_PT_VIRT_START)))
    - item_type: preproc_def
      name: _PAGE_NONE
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x000,U)
    - item_type: preproc_def
      name: _PAGE_PRESENT
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x001,U)
    - item_type: preproc_def
      name: _PAGE_RW
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x002,U)
    - item_type: preproc_def
      name: _PAGE_USER
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x004,U)
    - item_type: preproc_def
      name: _PAGE_PWT
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x008,U)
    - item_type: preproc_def
      name: _PAGE_PCD
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x010,U)
    - item_type: preproc_def
      name: _PAGE_ACCESSED
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x020,U)
    - item_type: preproc_def
      name: _PAGE_DIRTY
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x040,U)
    - item_type: preproc_def
      name: _PAGE_PAT
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x080,U)
    - item_type: preproc_def
      name: _PAGE_PSE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x080,U)
    - item_type: preproc_def
      name: _PAGE_GLOBAL
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x100,U)
    - item_type: preproc_def
      name: _PAGE_AVAIL0
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x200,U)
    - item_type: preproc_def
      name: _PAGE_AVAIL1
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x400,U)
    - item_type: preproc_def
      name: _PAGE_AVAIL2
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x800,U)
    - item_type: preproc_def
      name: _PAGE_AVAIL
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0xE00,U)
    - item_type: preproc_def
      name: _PAGE_PSE_PAT
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: _AC(0x1000,U)
    - item_type: preproc_def
      name: _PAGE_AVAIL_HIGH
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_AC(0x7ff, U) << 12)
    - item_type: preproc_def
      name: _PAGE_NX
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '(cpu_has_nx ? _PAGE_NX_BIT : 0)'
    - item_type: preproc_def
      name: PAGE_CACHE_ATTRS
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_PAGE_PAT | _PAGE_PCD | _PAGE_PWT)
    - item_type: preproc_def
      name: _PAGE_WB
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (                                0)
    - item_type: preproc_def
      name: _PAGE_WT
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (                        _PAGE_PWT)
    - item_type: preproc_def
      name: _PAGE_UCM
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (            _PAGE_PCD            )
    - item_type: preproc_def
      name: _PAGE_UC
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (            _PAGE_PCD | _PAGE_PWT)
    - item_type: preproc_def
      name: _PAGE_WC
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_PAGE_PAT                        )
    - item_type: preproc_def
      name: _PAGE_WP
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_PAGE_PAT |             _PAGE_PWT)
    - item_type: preproc_def
      name: _PAGE_GNTTAB
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_RO
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_NX)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_RW
      pos:
        line_end: 345
        line_start: 343
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: "(__PAGE_HYPERVISOR_RO | \\\n                                   _PAGE_DIRTY
        | _PAGE_RW)"
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_RX
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (_PAGE_PRESENT | _PAGE_ACCESSED)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR
      pos:
        line_end: 348
        line_start: 346
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: "(__PAGE_HYPERVISOR_RX | \\\n                                   _PAGE_DIRTY
        | _PAGE_RW)"
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_WT
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (__PAGE_HYPERVISOR | _PAGE_WT)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_UCMINUS
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (__PAGE_HYPERVISOR | _PAGE_UCM)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_UC
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (__PAGE_HYPERVISOR | _PAGE_UC)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_WC
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (__PAGE_HYPERVISOR | _PAGE_WC)
    - item_type: preproc_def
      name: __PAGE_HYPERVISOR_SHSTK
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: (__PAGE_HYPERVISOR_RO | _PAGE_DIRTY)
    - item_type: preproc_def
      name: MAP_SMALL_PAGES
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
      type_or_value: '_PAGE_AVAIL0 '
    structs:
    - fields:
      - name: pfn
        type: u64
      item_type: struct
      name: pagetable_t
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/xen/xen/arch/x86/include/asm/page.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIT_MODE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x43'
    - item_type: preproc_def
      name: PIT_CH0
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: PIT_CH2
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x42'
    - item_type: preproc_def
      name: PIC_MASTER_CMD
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PIC_MASTER_IMR
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: PIC_MASTER_ISR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: PIC_MASTER_CMD
    - item_type: preproc_def
      name: PIC_MASTER_POLL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: PIC_MASTER_ISR
    - item_type: preproc_def
      name: PIC_MASTER_OCW3
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: PIC_MASTER_ISR
    - item_type: preproc_def
      name: PIC_SLAVE_CMD
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0xa0'
    - item_type: preproc_def
      name: PIC_SLAVE_IMR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0xa1'
    - item_type: preproc_def
      name: PIC_CASCADE_IR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MASTER_ICW4_DEFAULT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: SLAVE_ICW4_DEFAULT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PIC_ICW4_AEOI
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/io-ports.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - msr_fold
  - msr_split
  source_file: /src/xen/xen/arch/x86/include/asm/cpu-user-regs.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: error_code
        type: uint32_t
      - name: entry_vector
        type: uint32_t
      item_type: struct
      name: cpu_user_regs
      pos:
        line_end: 101
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/cpu-user-regs.h
    - fields:
      - name: edata
        type: uint64_t
      - name: _rsvd
        type: uint64_t
      item_type: struct
      name: fred_info
      pos:
        line_end: 118
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/cpu-user-regs.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vm_event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_vioapic
  - vioapic_domain
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VIOAPIC_VERSION_ID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x11 '
    - item_type: preproc_def
      name: VIOAPIC_EDGE_TRIG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VIOAPIC_LEVEL_TRIG
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VIOAPIC_DEFAULT_BASE_ADDRESS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: 0xfec00000U
    - item_type: preproc_def
      name: VIOAPIC_MEM_LENGTH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: VIOAPIC_REG_SELECT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: VIOAPIC_REG_WINDOW
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: VIOAPIC_REG_EOI
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: VIOAPIC_REG_APIC_ID
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: VIOAPIC_REG_VERSION
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: VIOAPIC_REG_ARB_ID
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: VIOAPIC_REG_RTE0
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
      type_or_value: '0x10'
    structs:
    - fields:
      - name: '*domain'
        type: struct domain
      - name: nr_pins
        type: uint32_t
      - name: base_gsi
        type: unsigned int
      item_type: struct
      name: hvm_vioapic
      pos:
        line_end: 56
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vioapic.h
    typedefs: []
    union: []
- function_names:
  - handle_mmio
  - hvmemul_cache_destroy
  - hvmemul_cache_disabled
  - hvmemul_read_cache
  - hvmemul_write_cache
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
  types:
    enum:
    - enumerators:
      - name: EMUL_KIND_NORMAL
      - name: EMUL_KIND_NOWRITE
      - name: EMUL_KIND_SET_CONTEXT_INSN
      - name: EMUL_KIND_SET_CONTEXT_DATA
      item_type: enum
      name: emul_kind
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    preproc_defs: []
    structs:
    - fields:
      - name: ctxt
        type: struct x86_emulate_ctxt
      - name: '*validate'
        type: hvm_emulate_validate_t
      - name: insn_buf[16]
        type: uint8_t
      - name: insn_buf_eip
        type: unsigned long
      - name: insn_buf_bytes
        type: unsigned int
      - name: seg_reg[10]
        type: struct segment_register
      - name: seg_reg_accessed
        type: unsigned int
      - name: seg_reg_dirty
        type: unsigned int
      - name: mfn[2]
        type: mfn_t
      - name: intr_shadow
        type: uint32_t
      - name: is_mem_access
        type: bool
      - name: set_context
        type: bool
      item_type: struct
      name: hvm_emulate_ctxt
      pos:
        line_end: 54
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
    typedefs:
    - item_type: typedef
      name: "hvm_emulate_validate_t(const struct x86_emulate_state *state,\n                                    const
        struct x86_emulate_ctxt *ctxt)"
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/emulate.h
      type: bool
    union: []
- function_names:
  - hvm_pci_intx_gsi
  - hvm_pci_intx_link
  - hvm_domain_irq
  - hvm_isa_irq_to_gsi
  - pt_pirq_softirq_active
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_MACH_PCI_SHIFT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_MACH_MSI_SHIFT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_MAPPED_SHIFT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_GUEST_PCI_SHIFT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '4'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_GUEST_MSI_SHIFT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '5'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_IDENTITY_GSI_SHIFT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '6'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_NO_EOI_SHIFT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '7'
    - item_type: preproc_def
      name: _HVM_IRQ_DPCI_TRANSLATE_SHIFT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '15'
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_MACH_PCI
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_MACH_PCI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_MACH_MSI
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_MACH_MSI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_MAPPED
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_MAPPED_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_GUEST_PCI
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_GUEST_PCI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_GUEST_MSI
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_GUEST_MSI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_IDENTITY_GSI
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_IDENTITY_GSI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_NO_EOI
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_NO_EOI_SHIFT)
    - item_type: preproc_def
      name: HVM_IRQ_DPCI_TRANSLATE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: (1u << _HVM_IRQ_DPCI_TRANSLATE_SHIFT)
    - item_type: preproc_def
      name: NR_ISA_IRQS
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NR_LINK
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NR_HVM_DOMU_IRQS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
      type_or_value: ARRAY_SIZE(((struct hvm_hw_vioapic *)NULL)->redirtbl)
    structs:
    - fields:
      - name: pci_intx
        type: struct hvm_hw_pci_irqs
      - name: isa_irq
        type: struct hvm_hw_isa_irqs
      - name: pci_link
        type: struct hvm_hw_pci_link
      - name: callback_via_asserted
        type: uint32_t
      - name: callback_via
        type: "union {\n        uint32_t gsi;\n        struct { uint8_t dev, intx;
          } pci;\n        uint32_t vector;\n    }"
      - name: pci_link_assert_count[4]
        type: u8
      - name: round_robin_prev_vcpu
        type: u8
      - name: '*dpci'
        type: struct hvm_irq_dpci
      - name: nr_gsis
        type: unsigned int
      - name: gsi_assert_count[]
        type: u8
      item_type: struct
      name: hvm_irq
      pos:
        line_end: 82
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    - fields:
      - name: list
        type: struct list_head
      - name: bus
        type: uint8_t
      - name: device
        type: uint8_t
      - name: intx
        type: uint8_t
      item_type: struct
      name: dev_intx_gsi_link
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    - fields:
      - name: gvec
        type: uint32_t
      - name: gflags
        type: uint32_t
      - name: dest_vcpu_id
        type: int
      - name: posted
        type: bool
      item_type: struct
      name: hvm_gmsi_info
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    - fields:
      - name: list
        type: struct list_head
      - name: bus
        type: uint8_t
      - name: device
        type: uint8_t
      - name: intx
        type: uint8_t
      - name: machine_gsi
        type: uint8_t
      item_type: struct
      name: hvm_girq_dpci_mapping
      pos:
        line_end: 134
        line_start: 128
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    - fields:
      - name: girq[NR_HVM_DOMU_IRQS]
        type: struct list_head
      - name: link_cnt[NR_LINK]
        type: uint8_t
      item_type: struct
      name: hvm_irq_dpci
      pos:
        line_end: 148
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    - fields:
      - name: flags
        type: uint32_t
      - name: state
        type: unsigned int
      - name: masked
        type: bool
      - name: pending
        type: uint16_t
      - name: digl_list
        type: struct list_head
      - name: '*dom'
        type: struct domain
      - name: gmsi
        type: struct hvm_gmsi_info
      - name: softirq_list
        type: struct list_head
      item_type: struct
      name: hvm_pirq_dpci
      pos:
        line_end: 160
        line_start: 151
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/irq.h
    typedefs: []
    union: []
- function_names:
  - vcpu_nestedhvm
  - vcpu_altp2m
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: generation
        type: uint64_t
      - name: asid
        type: uint32_t
      item_type: struct
      name: hvm_vcpu_asid
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    - fields:
      - name: mmio_access
        type: struct npfec
      - name: mmio_gla
        type: unsigned long
      - name: mmio_gpfn
        type: unsigned long
      - name: '*mmio_cache[3]'
        type: struct hvm_mmio_cache
      - name: mmio_cache_count
        type: unsigned int
      - name: mmio_insn_bytes
        type: unsigned int
      - name: mmio_insn[16]
        type: unsigned char
      - name: '*cache'
        type: struct hvmemul_cache
      - name: mmio_retry
        type: bool
      - name: msix_unmask_address
        type: unsigned long
      - name: msix_snoop_address
        type: unsigned long
      - name: msix_snoop_gpa
        type: unsigned long
      - name: '*g2m_ioport'
        type: struct g2m_ioport
      item_type: struct
      name: hvm_vcpu_io
      pos:
        line_end: 57
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    - fields:
      - name: nv_guestmode
        type: bool
      - name: '*nv_vvmcx'
        type: void
      - name: '*nv_n1vmcx'
        type: void
      - name: '*nv_n2vmcx'
        type: void
      - name: nv_vvmcxaddr
        type: uint64_t
      - name: nv_n1vmcx_pa
        type: paddr_t
      - name: nv_n2vmcx_pa
        type: paddr_t
      - name: u
        type: "union {\n        struct nestedsvm nsvm;\n        struct nestedvmx nvmx;\n
          \   }"
      - name: nv_flushp2m
        type: bool
      - name: '*nv_p2m'
        type: struct p2m_domain
      - name: stale_np2m
        type: bool
      - name: np2m_generation
        type: uint64_t
      - name: nv_n2asid
        type: struct hvm_vcpu_asid
      - name: nv_vmentry_pending
        type: bool
      - name: nv_vmexit_pending
        type: bool
      - name: nv_vmswitch_in_progress
        type: bool
      - name: nv_ioport80
        type: bool
      - name: nv_ioportED
        type: bool
      - name: guest_cr[5]
        type: unsigned long
      item_type: struct
      name: nestedvcpu
      pos:
        line_end: 94
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    - fields:
      - name: '*veinfo_pg'
        type: struct page_info
      - name: p2midx
        type: uint16_t
      item_type: struct
      name: altp2mvcpu
      pos:
        line_end: 106
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    - fields:
      - name: guest_cr[5]
        type: unsigned long
      - name: guest_efer
        type: unsigned long
      - name: hw_cr[5]
        type: unsigned long
      - name: vlapic
        type: struct vlapic
      - name: cache_tsc_offset
        type: int64_t
      - name: guest_time
        type: uint64_t
      - name: tm_lock
        type: spinlock_t
      - name: tm_list
        type: struct list_head
      - name: flag_dr_dirty
        type: bool
      - name: debug_state_latch
        type: bool
      - name: single_step
        type: bool
      - name: monitor_table
        type: pagetable_t
      - name: n1asid
        type: struct hvm_vcpu_asid
      - name: msr_tsc_adjust
        type: u64
      - name: assert_evtchn_irq_tasklet
        type: struct tasklet
      - name: nvcpu
        type: struct nestedvcpu
      - name: mtrr
        type: struct mtrr_state
      - name: pat_cr
        type: u64
      - name: stime_offset
        type: int64_t
      - name: evtchn_upcall_vector
        type: u8
      - name: hvm_io
        type: struct hvm_vcpu_io
      - name: inject_event
        type: struct x86_event
      item_type: struct
      name: hvm_vcpu
      pos:
        line_end: 177
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vcpu.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/guest_access.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nestedhvm_enabled
  - nestedhvm_vcpu_enter_guestmode
  - nestedhvm_vcpu_exit_guestmode
  - nestedhvm_paging_mode_hap
  - nestedhvm_vmswitch_in_progress
  - nestedhvm_is_n2
  - nestedhvm_set_cr
  - vvmcx_valid
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
  types:
    enum:
    - enumerators:
      - name: NESTEDHVM_VMEXIT_ERROR
        value: '0'
      - name: NESTEDHVM_VMEXIT_CONTINUE
        value: '3'
      - name: NESTEDHVM_VMEXIT_INJECT
        value: '4'
      - name: NESTEDHVM_VMEXIT_FATALERROR
        value: '1'
      - name: NESTEDHVM_VMEXIT_HOST
        value: '2'
      - name: NESTEDHVM_VMEXIT_DONE
        value: '5'
      item_type: enum
      name: nestedhvm_vmexits
      pos:
        line_end: 22
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
    preproc_defs:
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_DONE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_INJECT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_L1_ERROR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_L0_ERROR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_MMIO
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_RETRY
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NESTEDHVM_PAGEFAULT_DIRECT_MMIO
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/nestedhvm.h
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_save_entry
  - hvm_get_entry
  - _hvm_load_entry
  - hvm_load_entry
  - hvm_load_entry_zeroextend
  - hvm_load_instance
  - HVM_REGISTER_SAVE_RESTORE
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HVMSR_PER_DOM
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HVMSR_PER_VCPU
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
      type_or_value: '1'
    structs:
    - fields:
      - name: cur
        type: uint32_t
      - name: size
        type: uint32_t
      - name: '*data'
        type: uint8_t
      item_type: struct
      name: hvm_domain_context
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
    typedefs:
    - item_type: typedef
      name: "(*hvm_save_handler) (struct vcpu *v,\n                                 hvm_domain_context_t
        *h)"
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
      type: int
    - item_type: typedef
      name: "(*hvm_check_handler)(const struct domain *d,\n                                 hvm_domain_context_t
        *h)"
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
      type: int
    - item_type: typedef
      name: "(*hvm_load_handler) (struct domain *d,\n                                 hvm_domain_context_t
        *h)"
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/save.h
      type: int
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm-types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: osvw
        type: "union {\n        uint64_t raw[2];\n        struct {\n            uint64_t
          length;\n            uint64_t status;\n        };\n    }"
      item_type: struct
      name: svm_domain
      pos:
        line_end: 17
        line_start: 9
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm-types.h
    - fields:
      - name: '*vmcb'
        type: struct vmcb_struct
      - name: '*msrpm'
        type: unsigned long
      - name: vmcb_pa
        type: uint64_t
      - name: launch_core
        type: int
      - name: vmcb_sync_state
        type: uint8_t
      - name: cached_insn_len
        type: uint8_t
      - name: guest_sysenter_cs
        type: uint64_t
      - name: guest_sysenter_esp
        type: uint64_t
      - name: guest_sysenter_eip
        type: uint64_t
      item_type: struct
      name: svm_vcpu
      pos:
        line_end: 39
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm-types.h
    - fields:
      - name: ns_msr_hsavepa
        type: uint64_t
      - name: ns_ovvmcb_pa
        type: uint64_t
      - name: ns_cr_intercepts
        type: uint32_t
      - name: ns_dr_intercepts
        type: uint32_t
      - name: ns_exception_intercepts
        type: uint32_t
      - name: ns_general1_intercepts
        type: uint32_t
      - name: ns_general2_intercepts
        type: uint32_t
      - name: '*ns_cached_msrpm'
        type: unsigned long
      - name: '*ns_merged_msrpm'
        type: unsigned long
      - name: ns_iomap_pa
        type: paddr_t
      - name: '*ns_iomap'
        type: unsigned long
      - name: ns_cr0
        type: uint64_t
      - name: ns_vmcb_guestcr3
        type: uint64_t
      - name: ns_asid
        type: uint32_t
      - name: ns_gif
        type: bool
      - name: ns_hap_enabled
        type: bool
      - name: ns_vmexit
        type: "struct {\n        uint64_t exitcode;  /* native exitcode to inject
          into l1 guest */\n        uint64_t exitinfo1; /* additional information
          to the exitcode */\n        uint64_t exitinfo2; /* additional information
          to the exitcode */\n    }"
      - name: ns_hostflags
        type: "union {\n        uint32_t bytes;\n        struct {\n            uint32_t
          rflagsif:1;\n            uint32_t vintrmask:1;\n            uint32_t reserved:30;\n
          \       } fields;\n    }"
      item_type: struct
      name: nestedsvm
      pos:
        line_end: 102
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm-types.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/cacheattr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/asid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HVM_DBG_LOG
  - HVM_DBG_LOG
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
  types:
    enum:
    - enumerators:
      - name: HVMTRANS_okay
      - name: HVMTRANS_gfn_paged_out
      - name: HVMTRANS_unhandleable
      - name: HVMTRANS_bad_linear_to_gfn
      - name: HVMTRANS_bad_gfn_to_mfn
      - name: HVMTRANS_gfn_shared
      - name: HVMTRANS_need_retry
      item_type: enum
      name: hvm_translation_result
      pos:
        line_end: 53
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
    preproc_defs:
    - item_type: preproc_def
      name: DBG_LEVEL_0
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: DBG_LEVEL_1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: DBG_LEVEL_2
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: DBG_LEVEL_3
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: DBG_LEVEL_IO
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: DBG_LEVEL_VMMU
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: DBG_LEVEL_VLAPIC
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: DBG_LEVEL_VLAPIC_TIMER
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: DBG_LEVEL_VLAPIC_INTERRUPT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: DBG_LEVEL_IOAPIC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: DBG_LEVEL_HCALL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: DBG_LEVEL_MSR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: HVM_HCALL_completed
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: HVM_HCALL_preempted
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: VM86_TSS_UPDATED
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
      type_or_value: (1ULL << 63)
    structs:
    - fields:
      - name: linear
        type: unsigned long
      - name: ec
        type: int
      item_type: struct
      name: pagefault_info
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/support.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/domain.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: hvm_hw_acpi
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/domain.h
      type_or_value: hvm_hw_pmtimer
    structs:
    - fields:
      - name: enabled
        type: bool
      - name: next_shared_gfn_to_relinquish
        type: unsigned long
      item_type: struct
      name: mem_sharing_domain
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/domain.h
    - fields:
      - name: flags
        type: unsigned int
      - name: (*vcpu_block)(struct vcpu *v)
        type: void
      item_type: struct
      name: hvm_pi_ops
      pos:
        line_end: 50
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/domain.h
    - fields:
      - name: ioreq_gfn
        type: "struct {\n        unsigned long base;\n        unsigned long mask;
          /* indexed by GFN minus base */\n        unsigned long legacy_mask; /* indexed
          by HVM param number */\n    }"
      - name: pci_cf8
        type: uint32_t
      - name: '*pl_time'
        type: struct pl_time
      - name: '*io_handler'
        type: struct hvm_io_handler
      - name: io_handler_count
        type: unsigned int
      - name: irq_lock
        type: spinlock_t
      - name: '*irq'
        type: struct hvm_irq
      - name: vpic[2]
        type: struct hvm_hw_vpic
      - name: '**vioapic'
        type: struct hvm_vioapic
      - name: nr_vioapics
        type: unsigned int
      - name: acpi
        type: struct hvm_hw_acpi
      - name: '*i8259_target'
        type: struct vcpu
      - name: emuirq_pirq
        type: struct radix_tree_root
      - name: '*params'
        type: uint64_t
      - name: pinned_cacheattr_ranges
        type: struct list_head
      - name: dirty_vram
        type: "union {\n        struct sh_dirty_vram *sh;\n        struct hap_dirty_vram
          *hap;\n    }"
      - name: is_s3_suspended
        type: bool
      - name: bug_x2apic_ldr_vcpu_id
        type: bool
      - name: msixtbl_list
        type: struct list_head
      - name: sync_tsc
        type: uint64_t
      - name: tsc_scaling_ratio
        type: uint64_t
      - name: '*io_bitmap'
        type: unsigned long
      - name: g2m_ioport_list
        type: struct list_head
      - name: mmcfg_regions
        type: struct list_head
      - name: mmcfg_lock
        type: rwlock_t
      - name: msix_tables
        type: struct list_head
      - name: write_map
        type: "struct {\n        spinlock_t lock;\n        struct list_head list;\n
          \   }"
      - name: pi_ops
        type: struct hvm_pi_ops
      item_type: struct
      name: hvm_domain
      pos:
        line_end: 150
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/domain.h
    typedefs: []
    union: []
- function_names:
  - viridian_vcpu_init
  - viridian_domain_init
  - viridian_vcpu_deinit
  - viridian_domain_deinit
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _TRC_accessed
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRC_accessed
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
      type_or_value: (1 << _TRC_accessed)
    - item_type: preproc_def
      name: _TRC_running
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TRC_running
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
      type_or_value: (1 << _TRC_running)
    structs:
    - fields:
      - name: msr
        type: union hv_vp_assist_page_msr
      - name: '*ptr'
        type: void
      item_type: struct
      name: viridian_page
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    - fields:
      - name: '*v'
        type: struct vcpu
      - name: timer
        type: struct timer
      - name: config
        type: union hv_stimer_config
      - name: count
        type: uint64_t
      - name: expiration
        type: uint64_t
      - name: started
        type: bool
      item_type: struct
      name: viridian_stimer
      pos:
        line_end: 26
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    - fields:
      - name: vp_assist
        type: struct viridian_page
      - name: apic_assist_pending
        type: bool
      - name: polled
        type: bool
      - name: scontrol
        type: uint64_t
      - name: siefp
        type: uint64_t
      - name: simp
        type: struct viridian_page
      - name: sint[16]
        type: union hv_synic_sint
      - name: vector_to_sintx[256]
        type: uint8_t
      - name: stimer[4]
        type: struct viridian_stimer
      - name: stimer_enabled
        type: unsigned int
      - name: stimer_pending
        type: unsigned int
      - name: crash_param[5]
        type: uint64_t
      item_type: struct
      name: viridian_vcpu
      pos:
        line_end: 42
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    - fields:
      - name: flags
        type: unsigned long
      - name: val
        type: uint64_t
      - name: 'off'
        type: int64_t
      item_type: struct
      name: viridian_time_ref_count
      pos:
        line_end: 55
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    - fields:
      - name: guest_os_id
        type: union hv_guest_os_id
      - name: hypercall_gpa
        type: union hv_vp_assist_page_msr
      - name: time_ref_count
        type: struct viridian_time_ref_count
      - name: reference_tsc
        type: struct viridian_page
      - name: lock
        type: spinlock_t
      item_type: struct
      name: viridian_domain
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/viridian.h
    typedefs: []
    union: []
- function_names:
  - cpu_has_svm_feature
  - svm_disable_intercept_for_msr
  - svm_enable_intercept_for_msr
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SVM_FEATURE_NPT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: SVM_FEATURE_LBRV
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: SVM_FEATURE_SVML
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: SVM_FEATURE_NRIPS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: SVM_FEATURE_TSCRATEMSR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: SVM_FEATURE_VMCBCLEAN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: SVM_FEATURE_FLUSHBYASID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: SVM_FEATURE_DECODEASSISTS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: SVM_FEATURE_PAUSEFILTER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: SVM_FEATURE_PAUSETHRESH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: SVM_FEATURE_VLOADSAVE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '15 '
    - item_type: preproc_def
      name: SVM_FEATURE_VGIF
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: SVM_FEATURE_SSS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '19 '
    - item_type: preproc_def
      name: SVM_FEATURE_SPEC_CTRL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '20 '
    - item_type: preproc_def
      name: SVM_FEATURE_VNMI
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '25 '
    - item_type: preproc_def
      name: SVM_FEATURE_BUS_LOCK
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '29 '
    - item_type: preproc_def
      name: cpu_has_svm_npt
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_NPT)
    - item_type: preproc_def
      name: cpu_has_svm_lbrv
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_LBRV)
    - item_type: preproc_def
      name: cpu_has_svm_svml
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_SVML)
    - item_type: preproc_def
      name: cpu_has_svm_nrips
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_NRIPS)
    - item_type: preproc_def
      name: cpu_has_svm_cleanbits
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_VMCBCLEAN)
    - item_type: preproc_def
      name: cpu_has_svm_flushbyasid
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_FLUSHBYASID)
    - item_type: preproc_def
      name: cpu_has_svm_decode
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_DECODEASSISTS)
    - item_type: preproc_def
      name: cpu_has_svm_vgif
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_VGIF)
    - item_type: preproc_def
      name: cpu_has_pause_filter
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_PAUSEFILTER)
    - item_type: preproc_def
      name: cpu_has_pause_thresh
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_PAUSETHRESH)
    - item_type: preproc_def
      name: cpu_has_tsc_ratio
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_TSCRATEMSR)
    - item_type: preproc_def
      name: cpu_has_svm_vloadsave
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_VLOADSAVE)
    - item_type: preproc_def
      name: cpu_has_svm_sss
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_SSS)
    - item_type: preproc_def
      name: cpu_has_svm_spec_ctrl
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_SPEC_CTRL)
    - item_type: preproc_def
      name: cpu_has_svm_vnmi
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_VNMI)
    - item_type: preproc_def
      name: cpu_has_svm_bus_lock
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: cpu_has_svm_feature(SVM_FEATURE_BUS_LOCK)
    - item_type: preproc_def
      name: MSR_INTERCEPT_NONE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MSR_INTERCEPT_READ
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MSR_INTERCEPT_WRITE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MSR_INTERCEPT_RW
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/svm.h
      type_or_value: (MSR_INTERCEPT_WRITE | MSR_INTERCEPT_READ)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/ioreq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOREQ_STATUS_HANDLED
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/ioreq.h
      type_or_value: X86EMUL_OKAY
    - item_type: preproc_def
      name: IOREQ_STATUS_UNHANDLED
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/ioreq.h
      type_or_value: X86EMUL_UNHANDLEABLE
    - item_type: preproc_def
      name: IOREQ_STATUS_RETRY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/ioreq.h
      type_or_value: X86EMUL_RETRY
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_grant_p2m_mapping
  - replace_grant_p2m_mapping
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/grant_table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_monitor_crX
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/monitor.h
  types:
    enum:
    - enumerators:
      - name: HVM_MONITOR_SOFTWARE_BREAKPOINT
      - name: HVM_MONITOR_DEBUG_EXCEPTION
      - name: HVM_MONITOR_SINGLESTEP_BREAKPOINT
      item_type: enum
      name: hvm_monitor_debug_type
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/monitor.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_vlapic
  - vlapic_vcpu
  - const_vlapic_vcpu
  - vlapic_domain
  - _VLAPIC_ID
  - VLAPIC_ID
  - vlapic_sw_disabled
  - vlapic_hw_disabled
  - vlapic_disabled
  - vlapic_enabled
  - vlapic_base_address
  - vlapic_x2apic_mode
  - vlapic_xapic_mode
  - VEC_POS
  - REG_POS
  - vlapic_test_vector
  - vlapic_test_and_set_vector
  - vlapic_test_and_clear_vector
  - vlapic_set_vector
  - vlapic_clear_vector
  - vlapic_get_reg
  - vlapic_set_reg
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VLAPIC_HW_DISABLED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: VLAPIC_SW_DISABLED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: APIC_BUS_CYCLE_NS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
      type_or_value: '10'
    structs:
    - fields:
      - name: hw
        type: struct hvm_hw_lapic
      - name: '*regs'
        type: struct hvm_hw_lapic_regs
      - name: loaded
        type: "struct {\n        bool                 hw, regs;\n        uint32_t
          \            id, ldr;\n    }"
      - name: pt
        type: struct periodic_time
      - name: timer_last_update
        type: s_time_t
      - name: '*regs_page'
        type: struct page_info
      - name: init_sipi
        type: "struct {\n        uint32_t             icr, dest;\n        struct tasklet
          \      tasklet;\n    }"
      item_type: struct
      name: vlapic
      pos:
        line_end: 79
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vlapic.h
    typedefs: []
    union: []
- function_names:
  - hvm_intack
  - hvm_intack_pic
  - hvm_intack_lapic
  - hvm_intack_vector
  - hvm_virtual_to_linear_addr
  - using_vmx
  - using_svm
  - hvm_is_in_uc_mode
  - hvm_get_guest_tsc
  - hvm_tsc_scaling_ratio
  - hvm_get_guest_time
  - hvm_paging_enabled
  - hvm_wp_enabled
  - hvm_pcid_enabled
  - hvm_pae_enabled
  - hvm_smep_enabled
  - hvm_smap_enabled
  - hvm_nx_enabled
  - hvm_pku_enabled
  - hvm_pks_enabled
  - hvm_long_mode_active
  - hvm_has_set_descriptor_access_exiting
  - hvm_enable_msr_interception
  - hvm_domain_creation_finished
  - hvm_guest_x86_mode
  - hvm_update_host_cr3
  - hvm_update_guest_cr
  - hvm_update_guest_cr3
  - hvm_update_guest_efer
  - hvm_cpuid_policy_changed
  - hvm_set_tsc_offset
  - hvm_flush_guest_tlbs
  - hvm_get_cpl
  - has_hvm_params
  - viridian_feature_mask
  - is_viridian_domain
  - is_viridian_vcpu
  - has_viridian_time_ref_count
  - has_viridian_apic_assist
  - has_viridian_synic
  - hvm_inject_exception
  - hvm_inject_hw_exception
  - hvm_inject_page_fault
  - hvm_event_pending
  - hvm_invlpg
  - hvm_cpu_up
  - hvm_cpu_down
  - hvm_get_insn_bytes
  - hvm_sanitize_regs_fields
  - nhvm_vcpu_vmexit_event
  - nhvm_vcpu_p2m_base
  - nhvm_vmcx_guest_intercepts_event
  - nhvm_vmcx_hap_enabled
  - nhvm_interrupt_blocked
  - nhvm_hap_walk_L1_p2m
  - hvm_is_singlestep_supported
  - hvm_hap_supported
  - hvm_altp2m_supported
  - hvm_nested_virt_supported
  - altp2m_vcpu_update_p2m
  - altp2m_vcpu_update_vmfunc_ve
  - altp2m_vcpu_emulate_ve
  - hvm_vmtrace_control
  - hvm_vmtrace_output_position
  - hvm_vmtrace_set_option
  - hvm_vmtrace_get_option
  - hvm_vmtrace_reset
  - arch_vcpu_block
  - hvm_get_nonreg_state
  - hvm_set_nonreg_state
  - hvm_pi_update_irte
  - hvm_update_vlapic_mode
  - hvm_sync_pir_to_irr
  - hvm_is_singlestep_supported
  - hvm_hap_supported
  - hvm_altp2m_supported
  - hvm_nested_virt_supported
  - nhvm_vmcx_hap_enabled
  - hvm_cpu_up
  - hvm_cpu_down
  - hvm_flush_guest_tlbs
  - hvm_invlpg
  - hvm_domain_creation_finished
  - hvm_update_host_cr3
  - hvm_update_guest_cr3
  - hvm_get_cpl
  - hvm_event_pending
  - hvm_inject_hw_exception
  - hvm_has_set_descriptor_access_exiting
  - hvm_get_reg
  - hvm_set_reg
  - is_viridian_domain
  - is_viridian_vcpu
  - has_viridian_time_ref_count
  - hvm_long_mode_active
  - hvm_get_guest_time
  - hvm_paging_enabled
  - hvm_wp_enabled
  - hvm_pcid_enabled
  - hvm_pae_enabled
  - hvm_smep_enabled
  - hvm_smap_enabled
  - hvm_nx_enabled
  - hvm_pku_enabled
  - hvm_pks_enabled
  - arch_vcpu_block
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
  types:
    enum:
    - enumerators:
      - name: hvm_intsrc_none
      - name: hvm_intsrc_pic
      - name: hvm_intsrc_lapic
      - name: hvm_intsrc_nmi
      - name: hvm_intsrc_mce
      - name: hvm_intsrc_vector
      item_type: enum
      name: hvm_intsrc
      pos:
        line_end: 51
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    - enumerators:
      - name: hvm_intblk_none
      - name: hvm_intblk_shadow
      - name: hvm_intblk_rflags_ie
      - name: hvm_intblk_tpr
      - name: hvm_intblk_nmi_iret
      - name: hvm_intblk_arch
      item_type: enum
      name: hvm_intblk
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    - enumerators:
      - name: TSW_jmp
      - name: TSW_call_or_int
      - name: TSW_iret
      item_type: enum
      name: hvm_task_switch_reason
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    - enumerators:
      - name: hvm_access_insn_fetch
      - name: hvm_access_write
      - name: hvm_access_none
      - name: hvm_access_read
      item_type: enum
      name: hvm_access_type
      pos:
        line_end: 339
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    preproc_defs:
    - item_type: preproc_def
      name: opt_hvm_fep
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_MODE_REAL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86_MODE_VM86
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: X86_MODE_16BIT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: X86_MODE_32BIT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '4'
    - item_type: preproc_def
      name: X86_MODE_64BIT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: hvm_intack_none
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: hvm_intack(none, 0)
    - item_type: preproc_def
      name: hvm_intack_nmi
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: hvm_intack(nmi, 2)
    - item_type: preproc_def
      name: hvm_intack_mce
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: hvm_intack(mce, 18)
    - item_type: preproc_def
      name: HVM_INTR_SHADOW_STI
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HVM_INTR_SHADOW_MOV_SS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: HVM_INTR_SHADOW_SMI
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: HVM_INTR_SHADOW_NMI
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: HVM_EVENT_VECTOR_UNSET
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: HVM_EVENT_VECTOR_UPDATING
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: HVM_UPDATE_GUEST_CR3_NOFLUSH
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: hvm_tsc_scaling_supported
      pos:
        line_end: 407
        line_start: 405
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: (!!hvm_funcs.tsc_scaling.ratio_frac_bits)
    - item_type: preproc_def
      name: hvm_default_tsc_scaling_ratio
      pos:
        line_end: 410
        line_start: 408
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: (1ULL << hvm_funcs.tsc_scaling.ratio_frac_bits)
    - item_type: preproc_def
      name: hap_has_1gb
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: hvm_funcs.caps.hap_superpage_1gb
    - item_type: preproc_def
      name: hap_has_2mb
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: hvm_funcs.caps.hap_superpage_2mb
    - item_type: preproc_def
      name: HVM_CR4_HOST_MASK
      pos:
        line_end: 590
        line_start: 588
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: "(mmu_cr4_features & \\\n    (X86_CR4_VMXE | X86_CR4_PAE | X86_CR4_MCE))"
    - item_type: preproc_def
      name: HVM_TRAP_MASK
      pos:
        line_end: 595
        line_start: 592
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: "((1U << X86_EXC_DB)           | \\\n                       (1U
        << X86_EXC_AC) | \\\n                       (1U << X86_EXC_MC))"
    - item_type: preproc_def
      name: hvm_enabled
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: hvm_tsc_scaling_supported
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: hap_has_1gb
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: hap_has_2mb
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
      type_or_value: 'false'
    structs:
    - fields:
      - name: source
        type: uint8_t
      - name: vector
        type: uint8_t
      item_type: struct
      name: hvm_intack
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    - fields: []
      item_type: struct
      name: hvm_vcpu_nonreg_state
      pos:
        line_end: 93
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    - fields:
      - name: '*name'
        type: char
      - name: caps
        type: "struct {\n        /* Indicate HAP capabilities. */\n        bool hap:1,\n
          \            hap_superpage_1gb:1,\n             hap_superpage_2mb:1,\n\n
          \            /* Altp2m capabilities */\n             altp2m:1,\n             singlestep:1,\n
          \           \n             /* Hardware virtual interrupt delivery enable?
          */\n             virtual_intr_delivery:1,\n\n             /* Nested virt
          capabilities */\n             nested_virt:1;\n    }"
      - name: (*domain_initialise)(struct domain *d)
        type: int
      - name: (*domain_creation_finished)(struct domain *d)
        type: void
      - name: (*domain_relinquish_resources)(struct domain *d)
        type: void
      - name: (*domain_destroy)(struct domain *d)
        type: void
      - name: (*vcpu_initialise)(struct vcpu *v)
        type: int
      - name: (*vcpu_destroy)(struct vcpu *v)
        type: void
      - name: (*save_cpu_ctxt)(struct vcpu *v, struct hvm_hw_cpu *ctxt)
        type: void
      - name: (*load_cpu_ctxt)(struct vcpu *v, struct hvm_hw_cpu *ctxt)
        type: int
      - name: (*get_interrupt_shadow)(struct vcpu *v)
        type: unsigned int
      - name: (*set_interrupt_shadow)(struct vcpu *v, unsigned int intr_shadow)
        type: void
      - name: "(*get_nonreg_state)(struct vcpu *v,\n                             struct
          hvm_vcpu_nonreg_state *nrs)"
        type: void
      - name: "(*set_nonreg_state)(struct vcpu *v,\n                             struct
          hvm_vcpu_nonreg_state *nrs)"
        type: void
      - name: (*guest_x86_mode)(struct vcpu *v)
        type: int
      - name: (*get_cpl)(struct vcpu *v)
        type: unsigned int
      - name: "(*get_segment_register)(struct vcpu *v, enum x86_segment seg,\n                                 struct
          segment_register *reg)"
        type: void
      - name: "(*set_segment_register)(struct vcpu *v, enum x86_segment seg,\n                                 struct
          segment_register *reg)"
        type: void
      - name: (*update_host_cr3)(struct vcpu *v)
        type: void
      - name: "(*update_guest_cr)(struct vcpu *v, unsigned int cr,\n                            unsigned
          int flags)"
        type: void
      - name: (*update_guest_efer)(struct vcpu *v)
        type: void
      - name: (*cpuid_policy_changed)(struct vcpu *v)
        type: void
      - name: (*fpu_leave)(struct vcpu *v)
        type: void
      - name: (*get_guest_pat)(struct vcpu *v, uint64_t *gpat)
        type: int
      - name: (*set_guest_pat)(struct vcpu *v, uint64_t gpat)
        type: int
      - name: (*set_tsc_offset)(struct vcpu *v, uint64_t offset)
        type: void
      - name: (*inject_event)(const struct x86_event *event)
        type: void
      - name: (*init_hypercall_page)(void *ptr)
        type: void
      - name: (*event_pending)(const struct vcpu *v)
        type: bool
      - name: (*get_pending_event)(struct vcpu *v, struct x86_event *info)
        type: bool
      - name: (*invlpg)(struct vcpu *v, unsigned long linear)
        type: void
      - name: (*cpu_up_prepare)(unsigned int cpu)
        type: int
      - name: (*cpu_dead)(unsigned int cpu)
        type: void
      - name: (*cpu_up)(void)
        type: int
      - name: (*cpu_down)(void)
        type: void
      - name: (*get_insn_bytes)(struct vcpu *v, uint8_t *buf)
        type: unsigned int
      - name: (*wbinvd_intercept)(void)
        type: void
      - name: (*fpu_dirty_intercept)(void)
        type: void
      - name: (*msr_read_intercept)(unsigned int msr, uint64_t *msr_content)
        type: int
      - name: (*msr_write_intercept)(unsigned int msr, uint64_t msr_content)
        type: int
      - name: (*handle_cd)(struct vcpu *v, unsigned long value)
        type: void
      - name: (*set_info_guest)(struct vcpu *v)
        type: void
      - name: (*set_rdtsc_exiting)(struct vcpu *v, bool enable)
        type: void
      - name: (*nhvm_vcpu_initialise)(struct vcpu *v)
        type: int
      - name: (*nhvm_vcpu_destroy)(struct vcpu *v)
        type: void
      - name: (*nhvm_vcpu_reset)(struct vcpu *v)
        type: int
      - name: (*nhvm_vcpu_vmexit_event)(struct vcpu *v, const struct x86_event *event)
        type: int
      - name: (*nhvm_vcpu_p2m_base)(struct vcpu *v)
        type: uint64_t
      - name: "(*nhvm_vmcx_guest_intercepts_event)(\n        struct vcpu *v, unsigned
          int vector, int errcode)"
        type: bool
      - name: (*nhvm_vmcx_hap_enabled)(struct vcpu *v)
        type: bool
      - name: (*nhvm_intr_blocked)(struct vcpu *v)
        type: enum hvm_intblk
      - name: (*nhvm_domain_relinquish_resources)(struct domain *d)
        type: void
      - name: (*update_eoi_exit_bitmap)(struct vcpu *v, uint8_t vector, bool set)
        type: void
      - name: (*process_isr)(int isr, struct vcpu *v)
        type: void
      - name: (*deliver_posted_intr)(struct vcpu *v, u8 vector)
        type: void
      - name: (*sync_pir_to_irr)(struct vcpu *v)
        type: void
      - name: (*test_pir)(const struct vcpu *v, uint8_t vector)
        type: bool
      - name: (*handle_eoi)(uint8_t vector, int isr)
        type: void
      - name: "(*pi_update_irte)(const struct vcpu *v, const struct pirq *pirq,\n
          \                         uint8_t gvec)"
        type: int
      - name: (*update_vlapic_mode)(struct vcpu *v)
        type: void
      - name: "(*nhvm_hap_walk_L1_p2m)(struct vcpu *v, paddr_t L2_gpa,\n                                paddr_t
          *L1_gpa, unsigned int *page_order,\n                                uint8_t
          *p2m_acc, struct npfec npfec)"
        type: int
      - name: (*get_reg)(struct vcpu *v, unsigned int reg)
        type: uint64_t
      - name: (*set_reg)(struct vcpu *v, unsigned int reg, uint64_t val)
        type: void
      - name: tsc_scaling
        type: "struct {\n        /* number of bits of the fractional part of TSC scaling
          ratio */\n        uint8_t  ratio_frac_bits;\n        /* maximum-allowed
          TSC scaling ratio */\n        uint64_t max_ratio;\n    }"
      item_type: struct
      name: hvm_function_table
      pos:
        line_end: 260
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/hvm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pt_global_vcpu_target
  - pt_active
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTSRC_isa
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PTSRC_lapic
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: PTSRC_ioapic
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: PIT_FREQ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '1193182'
    - item_type: preproc_def
      name: PIT_BASE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: FREQUENCE_PMTIMER
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type_or_value: '3579545  '
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: on_list
        type: bool
      - name: one_shot
        type: bool
      - name: do_not_freeze
        type: bool
      - name: irq_issued
        type: bool
      - name: warned_timeout_too_short
        type: bool
      - name: level
        type: bool
      - name: source
        type: u8
      - name: irq
        type: u8
      - name: '*vcpu'
        type: struct vcpu
      - name: pending_intr_nr
        type: u32
      - name: period
        type: u64
      - name: scheduled
        type: s_time_t
      - name: last_plt_gtime
        type: u64
      - name: timer
        type: struct timer
      - name: '*cb'
        type: time_cb
      - name: '*priv'
        type: void
      item_type: struct
      name: periodic_time
      pos:
        line_end: 40
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: hw
        type: struct hvm_hw_pit
      - name: count_load_time[3]
        type: int64_t
      - name: count_stop_time[3]
        type: int64_t
      - name: stopped_time[3]
        type: uint64_t
      - name: pt0
        type: struct periodic_time
      - name: lock
        type: spinlock_t
      item_type: struct
      name: PITState
      pos:
        line_end: 60
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: capability
        type: uint64_t
      - name: config
        type: uint64_t
      - name: isr
        type: uint64_t
      - name: mc64
        type: uint64_t
      - name: timers[HPET_TIMER_NUM]
        type: "struct {                    /* timers */\n        uint64_t config;
          \       /* configuration/cap */\n        uint64_t cmp;           /* comparator
          */\n        uint64_t fsb;           /* FSB route, not supported now */\n
          \   }"
      - name: period[HPET_TIMER_NUM]
        type: uint64_t
      - name: comparator64[HPET_TIMER_NUM]
        type: uint64_t
      item_type: struct
      name: hpet_registers
      pos:
        line_end: 77
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: hpet
        type: struct hpet_registers
      - name: stime_freq
        type: uint64_t
      - name: hpet_to_ns_scale
        type: uint64_t
      - name: hpet_to_ns_limit
        type: uint64_t
      - name: mc_offset
        type: uint64_t
      - name: pt[HPET_TIMER_NUM]
        type: struct periodic_time
      - name: lock
        type: rwlock_t
      item_type: struct
      name: HPETState
      pos:
        line_end: 87
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: hw
        type: struct hvm_hw_rtc
      - name: current_tm
        type: struct tm
      - name: update_timer
        type: struct timer
      - name: update_timer2
        type: struct timer
      - name: next_update_time
        type: uint64_t
      - name: alarm_timer
        type: struct timer
      - name: pt
        type: struct periodic_time
      - name: start_time
        type: s_time_t
      - name: check_ticks_since
        type: s_time_t
      - name: period
        type: int
      - name: pt_dead_ticks
        type: uint8_t
      - name: use_timer
        type: uint32_t
      - name: lock
        type: spinlock_t
      item_type: struct
      name: RTCState
      pos:
        line_end: 108
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: '*vcpu'
        type: struct vcpu
      - name: last_gtime
        type: uint64_t
      - name: not_accounted
        type: uint32_t
      - name: scale
        type: uint64_t
      - name: timer
        type: struct timer
      - name: lock
        type: spinlock_t
      item_type: struct
      name: PMTState
      pos:
        line_end: 118
        line_start: 111
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    - fields:
      - name: vrtc
        type: struct RTCState
      - name: vhpet
        type: struct HPETState
      - name: vpmt
        type: struct PMTState
      - name: pt_migrate
        type: rwlock_t
      - name: stime_offset
        type: int64_t
      - name: last_guest_time
        type: uint64_t
      - name: pl_time_lock
        type: spinlock_t
      - name: '*domain'
        type: struct domain
      item_type: struct
      name: pl_time
      pos:
        line_end: 143
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
    typedefs:
    - item_type: typedef
      name: time_cb(struct vcpu *v, void *opaque)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vpt.h
      type: void
    union: []
- function_names:
  - msixtbl_init
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_IO_HANDLERS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type_or_value: '32'
    structs:
    - fields:
      - name: check
        type: hvm_mmio_check_t
      - name: read
        type: hvm_mmio_read_t
      - name: write
        type: hvm_mmio_write_t
      item_type: struct
      name: hvm_mmio_ops
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
    - fields:
      - name: '*ops'
        type: struct hvm_io_ops
      - name: type
        type: uint8_t
      item_type: struct
      name: hvm_io_handler
      pos:
        line_end: 46
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
    - fields:
      - name: accept
        type: hvm_io_accept_t
      - name: read
        type: hvm_io_read_t
      - name: write
        type: hvm_io_write_t
      item_type: struct
      name: hvm_io_ops
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
    typedefs:
    - item_type: typedef
      name: "(*hvm_mmio_read_t)(struct vcpu *v,\n                               unsigned
        long addr,\n                               unsigned int length,\n                               unsigned
        long *val)"
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: "(*hvm_mmio_write_t)(struct vcpu *v,\n                                unsigned
        long addr,\n                                unsigned int length,\n                                unsigned
        long val)"
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: (*hvm_mmio_check_t)(struct vcpu *v, unsigned long addr)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: "(*portio_action_t)(\n    int dir, unsigned int port, unsigned int bytes,
        uint32_t *val)"
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: "(*hvm_io_read_t)(const struct hvm_io_handler *handler,\n                             uint64_t
        addr,\n                             uint32_t size,\n                             uint64_t
        *data)"
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: "(*hvm_io_write_t)(const struct hvm_io_handler *handler,\n                              uint64_t
        addr,\n                              uint32_t size,\n                              uint64_t
        data)"
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: int
    - item_type: typedef
      name: "(*hvm_io_accept_t)(const struct hvm_io_handler *handler,\n                                const
        ioreq_t *p)"
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/io.h
      type: bool
    union: []
- function_names:
  - vmx_unrestricted_guest
  - VMCS_HIGH
  - vmx_add_guest_msr
  - vmx_add_host_load_msr
  - vmx_read_guest_msr
  - vmx_read_guest_loadonly_msr
  - vmx_write_guest_msr
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
  types:
    enum:
    - enumerators:
      - name: HOST_CS_SELECTOR
        value: '0x00000c02'
      - name: VM_ENTRY_MSR_LOAD_ADDR
        value: '0x0000200a'
      - name: SPEC_CTRL_SHADOW
        value: '0x0000204c'
      - name: EPTP_LIST_ADDR
        value: '0x00002024'
      - name: CPU_BASED_VM_EXEC_CONTROL
        value: '0x00004002'
      - name: HOST_EFER
        value: '0x00002c02'
      - name: VM_INSTRUCTION_ERROR
        value: '0x00004400'
      - name: VM_ENTRY_INTR_INFO
        value: '0x00004016'
      - name: GUEST_GS_LIMIT
        value: '0x0000480a'
      - name: GUEST_DS_AR_BYTES
        value: '0x0000481a'
      - name: GUEST_ES_BASE
        value: '0x00006806'
      - name: HOST_TR_BASE
        value: '0x00006c0a'
      - name: EPTP_INDEX
        value: '0x00000004'
      - name: GUEST_SMBASE
        value: '0x00004828'
      - name: GUEST_CS_BASE
        value: '0x00006808'
      - name: HOST_CR0
        value: '0x00006c00'
      - name: HOST_IDTR_BASE
        value: '0x00006c0e'
      - name: GUEST_ES_LIMIT
        value: '0x00004800'
      - name: EPT_POINTER
        value: '0x0000201a'
      - name: HOST_PAT
        value: '0x00002c00'
      - name: GUEST_PDPTE0
        value: '0x0000280a'
      - name: NOTIFY_WINDOW
        value: '0x00004024'
      - name: VM_ENTRY_MSR_LOAD_COUNT
        value: '0x00004014'
      - name: GUEST_SS_SELECTOR
        value: '0x00000804'
      - name: GUEST_TR_SELECTOR
        value: '0x0000080e'
      - name: HOST_SS_SELECTOR
        value: '0x00000c04'
      - name: HOST_ES_SELECTOR
        value: '0x00000c00'
      - name: HOST_GS_SELECTOR
        value: '0x00000c0a'
      - name: POSTED_INTR_NOTIFICATION_VECTOR
        value: '0x00000002'
      - name: GUEST_INTERRUPTIBILITY_INFO
        value: '0x00004824'
      - name: GUEST_SYSENTER_ESP
        value: '0x00006824'
      - name: GUEST_CS_AR_BYTES
        value: '0x00004816'
      - name: GUEST_DR7
        value: '0x0000681a'
      - name: TSC_OFFSET
        value: '0x00002010'
      - name: PIN_BASED_VM_EXEC_CONTROL
        value: '0x00004000'
      - name: VM_EXIT_INTR_INFO
        value: '0x00004404'
      - name: VM_ENTRY_INSTRUCTION_LEN
        value: '0x0000401a'
      - name: VMCS_LINK_POINTER
        value: '0x00002800'
      - name: VMWRITE_BITMAP
        value: '0x00002028'
      - name: PAGE_FAULT_ERROR_CODE_MASK
        value: '0x00004006'
      - name: GUEST_TR_AR_BYTES
        value: '0x00004822'
      - name: CR3_TARGET_VALUE0
        value: '0x00006008'
      - name: GUEST_PENDING_DBG_EXCEPTIONS
        value: '0x00006822'
      - name: GUEST_DS_SELECTOR
        value: '0x00000806'
      - name: GUEST_INTR_STATUS
        value: '0x00000810'
      - name: GUEST_SS_LIMIT
        value: '0x00004804'
      - name: CR0_GUEST_HOST_MASK
        value: '0x00006000'
      - name: EXIT_QUALIFICATION
        value: '0x00006400'
      - name: GUEST_GS_BASE
        value: '0x00006810'
      - name: HOST_GS_BASE
        value: '0x00006c08'
      - name: VM_EXIT_REASON
        value: '0x00004402'
      - name: GUEST_PHYSICAL_ADDRESS
        value: '0x00002400'
      - name: PML_ADDRESS
        value: '0x0000200e'
      - name: VMREAD_BITMAP
        value: '0x00002026'
      - name: EOI_EXIT_BITMAP0
        value: '0x0000201c'
      - name: GUEST_TR_LIMIT
        value: '0x0000480e'
      - name: GUEST_GS_AR_BYTES
        value: '0x0000481e'
      - name: CR0_READ_SHADOW
        value: '0x00006004'
      - name: GUEST_RIP
        value: '0x0000681e'
      - name: HOST_RIP
        value: '0x00006c16'
      - name: SPEC_CTRL_MASK
        value: '0x0000204a'
      - name: VIRTUAL_PROCESSOR_ID
        value: '0x00000000'
      - name: GUEST_PREEMPTION_TIMER
        value: '0x0000482e'
      - name: GUEST_DS_BASE
        value: '0x0000680c'
      - name: HOST_CR4
        value: '0x00006c04'
      - name: HOST_SYSENTER_EIP
        value: '0x00006c12'
      - name: GUEST_SYSENTER_EIP
        value: '0x00006826'
      - name: IO_BITMAP_B
        value: '0x00002002'
      - name: APIC_ACCESS_ADDR
        value: '0x00002014'
      - name: SECONDARY_VM_EXEC_CONTROL
        value: '0x0000401e'
      - name: VM_EXIT_MSR_STORE_COUNT
        value: '0x0000400e'
      - name: GUEST_PAT
        value: '0x00002804'
      - name: XSS_EXIT_BITMAP
        value: '0x0000202c'
      - name: CR3_TARGET_COUNT
        value: '0x0000400a'
      - name: IDT_VECTORING_INFO
        value: '0x00004408'
      - name: GUEST_SYSENTER_CS
        value: '0x0000482a'
      - name: GUEST_SS_BASE
        value: '0x0000680a'
      - name: GUEST_GS_SELECTOR
        value: '0x0000080a'
      - name: HOST_DS_SELECTOR
        value: '0x00000c06'
      - name: GUEST_FS_LIMIT
        value: '0x00004808'
      - name: GUEST_SS_AR_BYTES
        value: '0x00004818'
      - name: GUEST_CR3
        value: '0x00006802'
      - name: GUEST_CR4
        value: '0x00006804'
      - name: GUEST_IDTR_BASE
        value: '0x00006818'
      - name: HOST_SYSENTER_ESP
        value: '0x00006c10'
      - name: GUEST_IA32_DEBUGCTL
        value: '0x00002802'
      - name: VIRT_EXCEPTION_INFO
        value: '0x0000202a'
      - name: PAGE_FAULT_ERROR_CODE_MATCH
        value: '0x00004008'
      - name: GUEST_ES_SELECTOR
        value: '0x00000800'
      - name: VIRTUAL_APIC_PAGE_ADDR
        value: '0x00002012'
      - name: VM_EXIT_INTR_ERROR_CODE
        value: '0x00004406'
      - name: TPR_THRESHOLD
        value: '0x0000401c'
      - name: VM_EXIT_CONTROLS
        value: '0x0000400c'
      - name: GUEST_IDTR_LIMIT
        value: '0x00004812'
      - name: GUEST_ACTIVITY_STATE
        value: '0x00004826'
      - name: GUEST_GDTR_BASE
        value: '0x00006816'
      - name: HOST_FS_BASE
        value: '0x00006c06'
      - name: GUEST_CS_SELECTOR
        value: '0x00000802'
      - name: GUEST_FS_SELECTOR
        value: '0x00000808'
      - name: GUEST_LDTR_SELECTOR
        value: '0x0000080c'
      - name: HOST_PERF_GLOBAL_CTRL
        value: '0x00002c04'
      - name: EXCEPTION_BITMAP
        value: '0x00004004'
      - name: VM_ENTRY_CONTROLS
        value: '0x00004012'
      - name: GUEST_DS_LIMIT
        value: '0x00004806'
      - name: GUEST_ES_AR_BYTES
        value: '0x00004814'
      - name: GUEST_CR0
        value: '0x00006800'
      - name: GUEST_TR_BASE
        value: '0x00006814'
      - name: GUEST_LINEAR_ADDRESS
        value: '0x0000640a'
      - name: GUEST_PML_INDEX
        value: '0x00000812'
      - name: HOST_FS_SELECTOR
        value: '0x00000c08'
      - name: IO_BITMAP_A
        value: '0x00002000'
      - name: VM_EXIT_MSR_STORE_ADDR
        value: '0x00002006'
      - name: VM_FUNCTION_CONTROL
        value: '0x00002018'
      - name: GUEST_PERF_GLOBAL_CTRL
        value: '0x00002808'
      - name: TERTIARY_VM_EXEC_CONTROL
        value: '0x00002034'
      - name: GUEST_BNDCFGS
        value: '0x00002812'
      - name: PLE_WINDOW
        value: '0x00004022'
      - name: VM_EXIT_INSTRUCTION_LEN
        value: '0x0000440c'
      - name: VM_EXIT_MSR_LOAD_ADDR
        value: '0x00002008'
      - name: VMX_INSTRUCTION_INFO
        value: '0x0000440e'
      - name: GUEST_LDTR_BASE
        value: '0x00006812'
      - name: VM_ENTRY_EXCEPTION_ERROR_CODE
        value: '0x00004018'
      - name: GUEST_GDTR_LIMIT
        value: '0x00004810'
      - name: GUEST_LDTR_AR_BYTES
        value: '0x00004820'
      - name: CR4_READ_SHADOW
        value: '0x00006006'
      - name: GUEST_RFLAGS
        value: '0x00006820'
      - name: HOST_CR3
        value: '0x00006c02'
      - name: PI_DESC_ADDR
        value: '0x00002016'
      - name: HOST_TR_SELECTOR
        value: '0x00000c0c'
      - name: MSR_BITMAP
        value: '0x00002004'
      - name: PLE_GAP
        value: '0x00004020'
      - name: VM_EXIT_MSR_LOAD_COUNT
        value: '0x00004010'
      - name: GUEST_EFER
        value: '0x00002806'
      - name: TSC_MULTIPLIER
        value: '0x00002032'
      - name: IDT_VECTORING_ERROR_CODE
        value: '0x0000440a'
      - name: HOST_SYSENTER_CS
        value: '0x00004c00'
      - name: GUEST_FS_BASE
        value: '0x0000680e'
      - name: HOST_GDTR_BASE
        value: '0x00006c0c'
      - name: GUEST_LDTR_LIMIT
        value: '0x0000480c'
      - name: GUEST_FS_AR_BYTES
        value: '0x0000481c'
      - name: CR4_GUEST_HOST_MASK
        value: '0x00006002'
      - name: GUEST_CS_LIMIT
        value: '0x00004802'
      - name: GUEST_RSP
        value: '0x0000681c'
      - name: HOST_RSP
        value: '0x00006c14'
      item_type: enum
      name: vmcs_field
      pos:
        line_end: 611
        line_start: 452
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - enumerators:
      - name: VMX_INSN_SUCCEED
        value: '0'
      - name: VMX_INSN_VMRESUME_NONLAUNCHED_VMCS
        value: '5'
      - name: VMX_INSN_VMLAUNCH_NONCLEAR_VMCS
        value: '4'
      - name: VMX_INSN_VMCLEAR_WITH_VMXON_PTR
        value: '3'
      - name: VMX_INSN_VMCLEAR_INVALID_PHYADDR
        value: '2'
      - name: VMX_INSN_INVALID_CONTROL_STATE
        value: '7'
      - name: VMX_INSN_INVALID_HOST_STATE
        value: '8'
      - name: VMX_INSN_VMPTRLD_INVALID_PHYADDR
        value: '9'
      - name: VMX_INSN_VMPTRLD_WITH_VMXON_PTR
        value: '10'
      - name: VMX_INSN_VMPTRLD_INCORRECT_VMCS_ID
        value: '11'
      - name: VMX_INSN_UNSUPPORTED_VMCS_COMPONENT
        value: '12'
      - name: VMX_INSN_INVEPT_INVVPID_INVALID_OP
        value: '28'
      - name: VMX_INSN_VMENTRY_BLOCKED_BY_MOV_SS
        value: '26'
      - name: VMX_INSN_FAIL_INVALID
        value: ~0
      - name: VMX_INSN_VMXON_IN_VMX_ROOT
        value: '15'
      item_type: enum
      name: vmx_insn_errno
      pos:
        line_end: 633
        line_start: 616
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - enumerators:
      - name: VMX_MSR_HOST
      - name: VMX_MSR_GUEST
      - name: VMX_MSR_GUEST_LOADONLY
      item_type: enum
      name: vmx_msr_list_type
      pos:
        line_end: 640
        line_start: 636
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - enumerators:
      - name: VMX_MSR_R
        value: '1'
      - name: VMX_MSR_W
        value: '2'
      - name: VMX_MSR_RW
        value: VMX_MSR_R | VMX_MSR_W
      item_type: enum
      name: vmx_msr_intercept_type
      pos:
        line_end: 726
        line_start: 722
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    preproc_defs:
    - item_type: preproc_def
      name: EPT_DEFAULT_MT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: X86_MT_WB
    - item_type: preproc_def
      name: _VMX_DOMAIN_PML_ENABLED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VMX_DOMAIN_PML_ENABLED
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ul << _VMX_DOMAIN_PML_ENABLED)
    - item_type: preproc_def
      name: NR_PML_ENTRIES
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '512'
    - item_type: preproc_def
      name: CACHE_MODE_NORMAL
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CACHE_MODE_NO_FILL
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CPU_BASED_VIRTUAL_INTR_PENDING
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000004U
    - item_type: preproc_def
      name: CPU_BASED_USE_TSC_OFFSETING
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000008U
    - item_type: preproc_def
      name: CPU_BASED_HLT_EXITING
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000080U
    - item_type: preproc_def
      name: CPU_BASED_INVLPG_EXITING
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000200U
    - item_type: preproc_def
      name: CPU_BASED_MWAIT_EXITING
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000400U
    - item_type: preproc_def
      name: CPU_BASED_RDPMC_EXITING
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000800U
    - item_type: preproc_def
      name: CPU_BASED_RDTSC_EXITING
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00001000U
    - item_type: preproc_def
      name: CPU_BASED_CR3_LOAD_EXITING
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00008000U
    - item_type: preproc_def
      name: CPU_BASED_CR3_STORE_EXITING
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00010000U
    - item_type: preproc_def
      name: CPU_BASED_ACTIVATE_TERTIARY_CONTROLS
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00020000U
    - item_type: preproc_def
      name: CPU_BASED_CR8_LOAD_EXITING
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00080000U
    - item_type: preproc_def
      name: CPU_BASED_CR8_STORE_EXITING
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00100000U
    - item_type: preproc_def
      name: CPU_BASED_TPR_SHADOW
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00200000U
    - item_type: preproc_def
      name: CPU_BASED_VIRTUAL_NMI_PENDING
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00400000U
    - item_type: preproc_def
      name: CPU_BASED_MOV_DR_EXITING
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00800000U
    - item_type: preproc_def
      name: CPU_BASED_UNCOND_IO_EXITING
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x01000000U
    - item_type: preproc_def
      name: CPU_BASED_ACTIVATE_IO_BITMAP
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x02000000U
    - item_type: preproc_def
      name: CPU_BASED_MONITOR_TRAP_FLAG
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x08000000U
    - item_type: preproc_def
      name: CPU_BASED_ACTIVATE_MSR_BITMAP
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x10000000U
    - item_type: preproc_def
      name: CPU_BASED_MONITOR_EXITING
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x20000000U
    - item_type: preproc_def
      name: CPU_BASED_PAUSE_EXITING
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x40000000U
    - item_type: preproc_def
      name: CPU_BASED_ACTIVATE_SECONDARY_CONTROLS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: PIN_BASED_EXT_INTR_MASK
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: PIN_BASED_NMI_EXITING
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: PIN_BASED_VIRTUAL_NMIS
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: PIN_BASED_PREEMPT_TIMER
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: PIN_BASED_POSTED_INTERRUPT
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: VM_EXIT_SAVE_DEBUG_CNTRLS
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: VM_EXIT_IA32E_MODE
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: VM_EXIT_LOAD_PERF_GLOBAL_CTRL
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: VM_EXIT_ACK_INTR_ON_EXIT
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: VM_EXIT_SAVE_GUEST_PAT
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: VM_EXIT_LOAD_HOST_PAT
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: VM_EXIT_SAVE_GUEST_EFER
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: VM_EXIT_LOAD_HOST_EFER
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: VM_EXIT_SAVE_PREEMPT_TIMER
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00400000'
    - item_type: preproc_def
      name: VM_EXIT_CLEAR_BNDCFGS
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00800000'
    - item_type: preproc_def
      name: VM_ENTRY_IA32E_MODE
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: VM_ENTRY_SMM
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: VM_ENTRY_DEACT_DUAL_MONITOR
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: VM_ENTRY_LOAD_PERF_GLOBAL_CTRL
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: VM_ENTRY_LOAD_GUEST_PAT
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: VM_ENTRY_LOAD_GUEST_EFER
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: VM_ENTRY_LOAD_BNDCFGS
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_EPT
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITING
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000004U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_RDTSCP
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000008U
    - item_type: preproc_def
      name: SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000010U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_VPID
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000020U
    - item_type: preproc_def
      name: SECONDARY_EXEC_WBINVD_EXITING
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000040U
    - item_type: preproc_def
      name: SECONDARY_EXEC_UNRESTRICTED_GUEST
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000080U
    - item_type: preproc_def
      name: SECONDARY_EXEC_APIC_REGISTER_VIRT
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000100U
    - item_type: preproc_def
      name: SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000200U
    - item_type: preproc_def
      name: SECONDARY_EXEC_PAUSE_LOOP_EXITING
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00000400U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_INVPCID
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00001000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_VM_FUNCTIONS
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00002000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_VMCS_SHADOWING
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00004000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_PML
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00020000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00040000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_XSAVES
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x00100000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_TSC_SCALING
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x02000000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_BUS_LOCK_DETECTION
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x40000000U
    - item_type: preproc_def
      name: SECONDARY_EXEC_NOTIFY_VM_EXITING
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: TERTIARY_EXEC_LOADIWKEY_EXITING
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: TERTIARY_EXEC_ENABLE_HLAT
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: TERTIARY_EXEC_EPT_PAGING_WRITE
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: TERTIARY_EXEC_GUEST_PAGING_VERIFY
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: TERTIARY_EXEC_IPI_VIRT
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: TERTIARY_EXEC_VIRT_SPEC_CTRL
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: BIT(7, UL)
    - item_type: preproc_def
      name: cpu_has_vmx_virt_spec_ctrl
      pos:
        line_end: 283
        line_start: 281
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (vmx_caps.tertiary_exec_control & TERTIARY_EXEC_VIRT_SPEC_CTRL)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_paging_write
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (vmx_caps.tertiary_exec_control & TERTIARY_EXEC_EPT_PAGING_WRITE)
    - item_type: preproc_def
      name: VMX_EPT_EXEC_ONLY_SUPPORTED
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: VMX_EPT_WALK_LENGTH_4_SUPPORTED
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: VMX_EPT_MEMORY_TYPE_UC
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: VMX_EPT_MEMORY_TYPE_WB
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: VMX_EPT_SUPERPAGE_2MB
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: VMX_EPT_SUPERPAGE_1GB
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: VMX_EPT_INVEPT_INSTRUCTION
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: VMX_EPT_AD_BIT
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: VMX_EPT_INVEPT_SINGLE_CONTEXT
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x02000000'
    - item_type: preproc_def
      name: VMX_EPT_INVEPT_ALL_CONTEXT
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x04000000'
    - item_type: preproc_def
      name: VMX_VPID_INVVPID_INSTRUCTION
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: VMX_VPID_INVVPID_INDIVIDUAL_ADDR
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000100'
    - item_type: preproc_def
      name: VMX_VPID_INVVPID_SINGLE_CONTEXT
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000200'
    - item_type: preproc_def
      name: VMX_VPID_INVVPID_ALL_CONTEXT
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000400'
    - item_type: preproc_def
      name: VMX_VPID_INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: VMX_MISC_ACTIVITY_MASK
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x000001c0'
    - item_type: preproc_def
      name: VMX_MISC_PROC_TRACE
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: VMX_MISC_CR3_TARGET
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x01ff0000'
    - item_type: preproc_def
      name: VMX_MISC_VMWRITE_ALL
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: VMX_TSC_MULTIPLIER_MAX
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0xffffffffffffffffULL
    - item_type: preproc_def
      name: cpu_has_wbinvd_exiting
      pos:
        line_end: 328
        line_start: 325
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_WBINVD_EXITING))"
    - item_type: preproc_def
      name: cpu_has_vmx_virtualize_apic_accesses
      pos:
        line_end: 331
        line_start: 328
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES))"
    - item_type: preproc_def
      name: cpu_has_vmx_tpr_shadow
      pos:
        line_end: 334
        line_start: 331
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.cpu_based_exec_control
        & CPU_BASED_TPR_SHADOW))"
    - item_type: preproc_def
      name: cpu_has_vmx_vnmi
      pos:
        line_end: 337
        line_start: 334
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.pin_based_exec_control
        & PIN_BASED_VIRTUAL_NMIS))"
    - item_type: preproc_def
      name: cpu_has_vmx_msr_bitmap
      pos:
        line_end: 340
        line_start: 337
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.cpu_based_exec_control
        & CPU_BASED_ACTIVATE_MSR_BITMAP))"
    - item_type: preproc_def
      name: cpu_has_vmx_secondary_exec_control
      pos:
        line_end: 343
        line_start: 340
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.cpu_based_exec_control
        & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS))"
    - item_type: preproc_def
      name: cpu_has_vmx_tertiary_exec_control
      pos:
        line_end: 346
        line_start: 343
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.cpu_based_exec_control
        & CPU_BASED_ACTIVATE_TERTIARY_CONTROLS))"
    - item_type: preproc_def
      name: cpu_has_vmx_ept
      pos:
        line_end: 349
        line_start: 346
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_EPT))"
    - item_type: preproc_def
      name: cpu_has_vmx_dt_exiting
      pos:
        line_end: 352
        line_start: 349
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITING))"
    - item_type: preproc_def
      name: cpu_has_vmx_rdtscp
      pos:
        line_end: 355
        line_start: 352
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_RDTSCP))"
    - item_type: preproc_def
      name: cpu_has_vmx_vpid
      pos:
        line_end: 358
        line_start: 355
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_VPID))"
    - item_type: preproc_def
      name: cpu_has_monitor_trap_flag
      pos:
        line_end: 361
        line_start: 358
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.cpu_based_exec_control
        & CPU_BASED_MONITOR_TRAP_FLAG))"
    - item_type: preproc_def
      name: cpu_has_vmx_pat
      pos:
        line_end: 364
        line_start: 361
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.vmentry_control
        & VM_ENTRY_LOAD_GUEST_PAT))"
    - item_type: preproc_def
      name: cpu_has_vmx_efer
      pos:
        line_end: 367
        line_start: 364
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.vmentry_control
        & VM_ENTRY_LOAD_GUEST_EFER))"
    - item_type: preproc_def
      name: cpu_has_vmx_unrestricted_guest
      pos:
        line_end: 370
        line_start: 367
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_UNRESTRICTED_GUEST))"
    - item_type: preproc_def
      name: cpu_has_vmx_ple
      pos:
        line_end: 376
        line_start: 373
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_PAUSE_LOOP_EXITING))"
    - item_type: preproc_def
      name: cpu_has_vmx_invpcid
      pos:
        line_end: 379
        line_start: 376
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_INVPCID))"
    - item_type: preproc_def
      name: cpu_has_vmx_apic_reg_virt
      pos:
        line_end: 382
        line_start: 379
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_APIC_REGISTER_VIRT))"
    - item_type: preproc_def
      name: cpu_has_vmx_virtual_intr_delivery
      pos:
        line_end: 385
        line_start: 382
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY))"
    - item_type: preproc_def
      name: cpu_has_vmx_virtualize_x2apic_mode
      pos:
        line_end: 388
        line_start: 385
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE))"
    - item_type: preproc_def
      name: cpu_has_vmx_posted_intr_processing
      pos:
        line_end: 391
        line_start: 388
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.pin_based_exec_control
        & PIN_BASED_POSTED_INTERRUPT))"
    - item_type: preproc_def
      name: cpu_has_vmx_vmcs_shadowing
      pos:
        line_end: 394
        line_start: 391
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_VMCS_SHADOWING))"
    - item_type: preproc_def
      name: cpu_has_vmx_vmfunc
      pos:
        line_end: 397
        line_start: 394
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_VM_FUNCTIONS))"
    - item_type: preproc_def
      name: cpu_has_vmx_virt_exceptions
      pos:
        line_end: 400
        line_start: 397
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_VIRT_EXCEPTIONS))"
    - item_type: preproc_def
      name: cpu_has_vmx_pml
      pos:
        line_end: 403
        line_start: 400
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_ENABLE_PML))"
    - item_type: preproc_def
      name: cpu_has_vmx_mpx
      pos:
        line_end: 407
        line_start: 403
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.vmexit_control
        & VM_EXIT_CLEAR_BNDCFGS) && \\\n     (vmx_caps.vmentry_control & VM_ENTRY_LOAD_BNDCFGS))"
    - item_type: preproc_def
      name: cpu_has_vmx_xsaves
      pos:
        line_end: 410
        line_start: 407
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_XSAVES))"
    - item_type: preproc_def
      name: cpu_has_vmx_tsc_scaling
      pos:
        line_end: 413
        line_start: 410
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_TSC_SCALING))"
    - item_type: preproc_def
      name: cpu_has_vmx_bus_lock_detection
      pos:
        line_end: 416
        line_start: 413
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_BUS_LOCK_DETECTION))"
    - item_type: preproc_def
      name: cpu_has_vmx_notify_vm_exiting
      pos:
        line_end: 419
        line_start: 416
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: "(IS_ENABLED(CONFIG_INTEL_VMX) && \\\n     (vmx_caps.secondary_exec_control
        & SECONDARY_EXEC_NOTIFY_VM_EXITING))"
    - item_type: preproc_def
      name: VMCS_RID_TYPE_MASK
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: 0x80000000U
    - item_type: preproc_def
      name: VMX_INTR_SHADOW_STI
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: VMX_INTR_SHADOW_MOV_SS
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: VMX_INTR_SHADOW_SMI
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: VMX_INTR_SHADOW_NMI
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: VMX_BASIC_REVISION_MASK
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: VMX_BASIC_VMCS_SIZE_MASK
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (0x1fffULL << 32)
    - item_type: preproc_def
      name: VMX_BASIC_32BIT_ADDRESSES
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ULL << 48)
    - item_type: preproc_def
      name: VMX_BASIC_DUAL_MONITOR
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ULL << 49)
    - item_type: preproc_def
      name: VMX_BASIC_MEMORY_TYPE_MASK
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (0xfULL << 50)
    - item_type: preproc_def
      name: VMX_BASIC_INS_OUT_INFO
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ULL << 54)
    - item_type: preproc_def
      name: VMX_BASIC_DEFAULT1_ZERO
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ULL << 55)
    - item_type: preproc_def
      name: cpu_has_vmx_ins_outs_instr_info
      pos:
        line_end: 442
        line_start: 440
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (!!(vmx_caps.basic_msr & VMX_BASIC_INS_OUT_INFO))
    - item_type: preproc_def
      name: VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '0x0FF'
    - item_type: preproc_def
      name: VMX_GUEST_INTR_STATUS_SVI_OFFSET
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: VMX_VMFUNC_EPTP_SWITCHING
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: VMCS_VPID_WIDTH
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
      type_or_value: '16'
    structs:
    - fields:
      - name: revision_id
        type: uint32_t
      - name: data [0]
        type: unsigned char
      item_type: struct
      name: vmcs_struct
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: index
        type: u32
      - name: mbz
        type: u32
      - name: data
        type: u64
      item_type: struct
      name: vmx_msr_entry
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: invalidate
        type: cpumask_var_t
      item_type: struct
      name: ept_data
      pos:
        line_end: 44
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: apic_access_mfn
        type: mfn_t
      - name: status
        type: unsigned int
      - name: exec_sp
        type: bool
      - name: in_uc_mode
        type: bool
      - name: uc_lock
        type: spinlock_t
      item_type: struct
      name: vmx_domain
      pos:
        line_end: 66
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: read_low  [0x2000 / BITS_PER_LONG]
        type: unsigned long
      - name: read_high [0x2000 / BITS_PER_LONG]
        type: unsigned long
      - name: write_low [0x2000 / BITS_PER_LONG]
        type: unsigned long
      - name: write_high[0x2000 / BITS_PER_LONG]
        type: unsigned long
      item_type: struct
      name: vmx_msr_bitmap
      pos:
        line_end: 78
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: rsvd[6]
        type: u32
      item_type: struct
      name: pi_desc
      pos:
        line_end: 94
        line_start: 80
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: list
        type: struct list_head
      - name: '*lock'
        type: spinlock_t
      item_type: struct
      name: pi_blocking_vcpu
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: vmcs_pa
        type: paddr_t
      - name: vmcs_shadow_maddr
        type: paddr_t
      - name: vmcs_lock
        type: spinlock_t
      - name: active_list
        type: struct list_head
      - name: active_cpu
        type: int
      - name: launched
        type: int
      - name: exec_control
        type: u32
      - name: secondary_exec_control
        type: u32
      - name: tertiary_exec_control
        type: uint64_t
      - name: exception_bitmap
        type: u32
      - name: shadow_gs
        type: uint64_t
      - name: star
        type: uint64_t
      - name: lstar
        type: uint64_t
      - name: cstar
        type: uint64_t
      - name: sfmask
        type: uint64_t
      - name: '*msr_bitmap'
        type: struct vmx_msr_bitmap
      - name: '*msr_area'
        type: struct vmx_msr_entry
      - name: '*host_msr_area'
        type: struct vmx_msr_entry
      - name: msr_load_count
        type: unsigned int
      - name: msr_save_count
        type: unsigned int
      - name: host_msr_count
        type: unsigned int
      - name: eoi_exitmap_changed
        type: unsigned long
      - name: pi_desc
        type: struct pi_desc
      - name: host_cr0
        type: unsigned long
      - name: ept_spurious_misconfig
        type: bool
      - name: vmx_realmode
        type: uint8_t
      - name: vmx_emulate
        type: uint8_t
      - name: lbr_flags
        type: uint8_t
      - name: cache_mode
        type: uint8_t
      - name: vm86_segment_mask
        type: uint16_t
      - name: vm86_saved_seg[x86_seg_tr + 1]
        type: struct segment_register
      - name: vm86_saved_eflags
        type: uint32_t
      - name: hostenv_migrated
        type: int
      - name: '*vmread_bitmap'
        type: struct page_info
      - name: '*vmwrite_bitmap'
        type: struct page_info
      - name: '*pml_pg'
        type: struct page_info
      - name: cr4_host_mask
        type: unsigned long
      - name: pi_blocking
        type: struct pi_blocking_vcpu
      item_type: struct
      name: vmx_vcpu
      pos:
        line_end: 196
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    - fields:
      - name: basic_msr
        type: uint64_t
      - name: pin_based_exec_control
        type: uint32_t
      - name: cpu_based_exec_control
        type: uint32_t
      - name: secondary_exec_control
        type: uint32_t
      - name: tertiary_exec_control
        type: uint64_t
      - name: vmexit_control
        type: uint32_t
      - name: vmentry_control
        type: uint32_t
      - name: ept
        type: uint32_t
      - name: vpid
        type: uint32_t
      - name: vmfunc
        type: uint64_t
      item_type: struct
      name: vmx_caps
      pos:
        line_end: 322
        line_start: 311
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmcs.h
    typedefs: []
    union: []
- function_names:
  - pi_test_and_set_pir
  - pi_test_pir
  - pi_test_and_set_on
  - pi_set_on
  - pi_test_and_clear_on
  - pi_test_on
  - pi_get_pir
  - pi_test_sn
  - pi_set_sn
  - pi_clear_sn
  - ept_has_2mb
  - ept_has_1gb
  - __vmptrld
  - __vmpclear
  - vmread
  - __vmread
  - __vmwrite
  - vmread_safe
  - vmwrite_safe
  - __invept
  - __invvpid
  - ept_sync_all
  - vpid_sync_vcpu_gva
  - vpid_sync_all
  - vmx_pi_hooks_assign
  - vmx_pi_hooks_deassign
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPT_TABLE_ORDER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '9'
    - item_type: preproc_def
      name: EPTE_SUPER_PAGE_MASK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: EPTE_MFN_MASK
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: 0xffffffffff000ULL
    - item_type: preproc_def
      name: EPTE_AVAIL1_MASK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0xF00'
    - item_type: preproc_def
      name: EPTE_EMT_MASK
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x38'
    - item_type: preproc_def
      name: EPTE_IGMT_MASK
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: EPTE_AVAIL1_SHIFT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '8'
    - item_type: preproc_def
      name: EPTE_EMT_SHIFT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EPTE_IGMT_SHIFT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EPTE_RWX_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: EPTE_FLAG_MASK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: PI_xAPIC_NDST_MASK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0xFF00'
    - item_type: preproc_def
      name: POSTED_INTR_ON
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: POSTED_INTR_SN
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VMX_EXIT_REASONS_FAILED_VMENTRY
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (1u << 31)
    - item_type: preproc_def
      name: VMX_EXIT_REASONS_BUS_LOCK
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (1u << 26)
    - item_type: preproc_def
      name: EXIT_REASON_EXCEPTION_NMI
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EXIT_REASON_EXTERNAL_INTERRUPT
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EXIT_REASON_TRIPLE_FAULT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EXIT_REASON_INIT
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '3'
    - item_type: preproc_def
      name: EXIT_REASON_SIPI
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EXIT_REASON_IO_SMI
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '5'
    - item_type: preproc_def
      name: EXIT_REASON_OTHER_SMI
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '6'
    - item_type: preproc_def
      name: EXIT_REASON_PENDING_VIRT_INTR
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '7'
    - item_type: preproc_def
      name: EXIT_REASON_PENDING_VIRT_NMI
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '8'
    - item_type: preproc_def
      name: EXIT_REASON_TASK_SWITCH
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '9'
    - item_type: preproc_def
      name: EXIT_REASON_CPUID
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '10'
    - item_type: preproc_def
      name: EXIT_REASON_GETSEC
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '11'
    - item_type: preproc_def
      name: EXIT_REASON_HLT
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EXIT_REASON_INVD
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '13'
    - item_type: preproc_def
      name: EXIT_REASON_INVLPG
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '14'
    - item_type: preproc_def
      name: EXIT_REASON_RDPMC
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '15'
    - item_type: preproc_def
      name: EXIT_REASON_RDTSC
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EXIT_REASON_RSM
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '17'
    - item_type: preproc_def
      name: EXIT_REASON_VMCALL
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '18'
    - item_type: preproc_def
      name: EXIT_REASON_VMCLEAR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '19'
    - item_type: preproc_def
      name: EXIT_REASON_VMLAUNCH
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '20'
    - item_type: preproc_def
      name: EXIT_REASON_VMPTRLD
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '21'
    - item_type: preproc_def
      name: EXIT_REASON_VMPTRST
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '22'
    - item_type: preproc_def
      name: EXIT_REASON_VMREAD
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '23'
    - item_type: preproc_def
      name: EXIT_REASON_VMRESUME
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '24'
    - item_type: preproc_def
      name: EXIT_REASON_VMWRITE
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '25'
    - item_type: preproc_def
      name: EXIT_REASON_VMXOFF
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '26'
    - item_type: preproc_def
      name: EXIT_REASON_VMXON
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '27'
    - item_type: preproc_def
      name: EXIT_REASON_CR_ACCESS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '28'
    - item_type: preproc_def
      name: EXIT_REASON_DR_ACCESS
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '29'
    - item_type: preproc_def
      name: EXIT_REASON_IO_INSTRUCTION
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '30'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_READ
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '31'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_WRITE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '32'
    - item_type: preproc_def
      name: EXIT_REASON_INVALID_GUEST_STATE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '33'
    - item_type: preproc_def
      name: EXIT_REASON_MSR_LOADING
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '34'
    - item_type: preproc_def
      name: EXIT_REASON_MWAIT_INSTRUCTION
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '36'
    - item_type: preproc_def
      name: EXIT_REASON_MONITOR_TRAP_FLAG
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '37'
    - item_type: preproc_def
      name: EXIT_REASON_MONITOR_INSTRUCTION
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '39'
    - item_type: preproc_def
      name: EXIT_REASON_PAUSE_INSTRUCTION
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '40'
    - item_type: preproc_def
      name: EXIT_REASON_MCE_DURING_VMENTRY
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '41'
    - item_type: preproc_def
      name: EXIT_REASON_TPR_BELOW_THRESHOLD
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '43'
    - item_type: preproc_def
      name: EXIT_REASON_APIC_ACCESS
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '44'
    - item_type: preproc_def
      name: EXIT_REASON_EOI_INDUCED
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '45'
    - item_type: preproc_def
      name: EXIT_REASON_ACCESS_GDTR_OR_IDTR
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '46'
    - item_type: preproc_def
      name: EXIT_REASON_ACCESS_LDTR_OR_TR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '47'
    - item_type: preproc_def
      name: EXIT_REASON_EPT_VIOLATION
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '48'
    - item_type: preproc_def
      name: EXIT_REASON_EPT_MISCONFIG
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '49'
    - item_type: preproc_def
      name: EXIT_REASON_INVEPT
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '50'
    - item_type: preproc_def
      name: EXIT_REASON_RDTSCP
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '51'
    - item_type: preproc_def
      name: EXIT_REASON_VMX_PREEMPTION_TIMER_EXPIRED
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '52'
    - item_type: preproc_def
      name: EXIT_REASON_INVVPID
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '53'
    - item_type: preproc_def
      name: EXIT_REASON_WBINVD
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '54'
    - item_type: preproc_def
      name: EXIT_REASON_XSETBV
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '55'
    - item_type: preproc_def
      name: EXIT_REASON_APIC_WRITE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '56'
    - item_type: preproc_def
      name: EXIT_REASON_INVPCID
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '58'
    - item_type: preproc_def
      name: EXIT_REASON_VMFUNC
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '59'
    - item_type: preproc_def
      name: EXIT_REASON_PML_FULL
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '62'
    - item_type: preproc_def
      name: EXIT_REASON_XSAVES
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '63'
    - item_type: preproc_def
      name: EXIT_REASON_XRSTORS
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '64'
    - item_type: preproc_def
      name: EXIT_REASON_BUS_LOCK
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '74'
    - item_type: preproc_def
      name: EXIT_REASON_NOTIFY
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '75'
    - item_type: preproc_def
      name: INTR_INFO_VECTOR_MASK
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x000000ffU     '
    - item_type: preproc_def
      name: INTR_INFO_INTR_TYPE_MASK
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x00000700U     '
    - item_type: preproc_def
      name: INTR_INFO_DELIVER_CODE_MASK
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x00000800U     '
    - item_type: preproc_def
      name: INTR_INFO_NMI_UNBLOCKED_BY_IRET
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x00001000U     '
    - item_type: preproc_def
      name: INTR_INFO_VALID_MASK
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x80000000U     '
    - item_type: preproc_def
      name: INTR_INFO_RESVD_BITS_MASK
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: 0x7ffff000U
    - item_type: preproc_def
      name: NOTIFY_VM_CONTEXT_INVALID
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: 1u
    - item_type: preproc_def
      name: X86_SEG_AR_SEG_TYPE
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0xf        '
    - item_type: preproc_def
      name: X86_SEG_AR_DESC_TYPE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 4)  '
    - item_type: preproc_def
      name: X86_SEG_AR_DPL
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0x60       '
    - item_type: preproc_def
      name: X86_SEG_AR_SEG_PRESENT
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 7)  '
    - item_type: preproc_def
      name: X86_SEG_AR_AVL
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 12) '
    - item_type: preproc_def
      name: X86_SEG_AR_CS_LM_ACTIVE
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 13) '
    - item_type: preproc_def
      name: X86_SEG_AR_DEF_OP_SIZE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 14) '
    - item_type: preproc_def
      name: X86_SEG_AR_GRANULARITY
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 15) '
    - item_type: preproc_def
      name: X86_SEG_AR_SEG_UNUSABLE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '(1u << 16) '
    - item_type: preproc_def
      name: cpu_has_vmx_ept_exec_only_supported
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_EXEC_ONLY_SUPPORTED)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_wl4_supported
      pos:
        line_end: 266
        line_start: 264
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_WALK_LENGTH_4_SUPPORTED)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_mt_uc
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_MEMORY_TYPE_UC)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_mt_wb
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_MEMORY_TYPE_WB)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_2mb
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_SUPERPAGE_2MB)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_1gb
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_SUPERPAGE_1GB)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_ad
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_AD_BIT)
    - item_type: preproc_def
      name: cpu_has_vmx_ept_invept_single_context
      pos:
        line_end: 273
        line_start: 271
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.ept & VMX_EPT_INVEPT_SINGLE_CONTEXT)
    - item_type: preproc_def
      name: EPT_2MB_SHIFT
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EPT_1GB_SHIFT
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '17'
    - item_type: preproc_def
      name: INVEPT_SINGLE_CONTEXT
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: INVEPT_ALL_CONTEXT
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '2'
    - item_type: preproc_def
      name: cpu_has_vmx_vpid_invvpid_individual_addr
      pos:
        line_end: 284
        line_start: 282
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.vpid & VMX_VPID_INVVPID_INDIVIDUAL_ADDR)
    - item_type: preproc_def
      name: cpu_has_vmx_vpid_invvpid_single_context
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.vpid & VMX_VPID_INVVPID_SINGLE_CONTEXT)
    - item_type: preproc_def
      name: cpu_has_vmx_vpid_invvpid_single_context_retaining_global
      pos:
        line_end: 288
        line_start: 286
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: (vmx_caps.vpid & VMX_VPID_INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL)
    - item_type: preproc_def
      name: INVVPID_INDIVIDUAL_ADDR
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: INVVPID_SINGLE_CONTEXT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: INVVPID_ALL_CONTEXT
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '2'
    - item_type: preproc_def
      name: INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '3'
    - item_type: preproc_def
      name: APIC_INVALID_DEST
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: 0xffffffffU
    - item_type: preproc_def
      name: EPT_L4_PAGETABLE_SHIFT
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '39'
    - item_type: preproc_def
      name: EPT_PAGETABLE_ENTRIES
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
      type_or_value: '512'
    structs:
    - fields:
      - name: lxe[5]
        type: ept_entry_t
      item_type: struct
      name: ept_walk_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: eptp
        type: uint64_t
      item_type: struct
      name: operand = { eptp }
      pos:
        line_end: 402
        line_start: 400
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: vpid
        type: u64
      - name: rsvd
        type: u64
      - name: gva
        type: u64
      item_type: struct
      name: __packed
      pos:
        line_end: 430
        line_start: 426
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: exit_reason
        type: u32
      - name: semaphore
        type: u32
      - name: exit_qualification
        type: u64
      - name: gla
        type: u64
      - name: gpa
        type: u64
      - name: eptp_index
        type: u16
      item_type: struct
      name: ve_info_t
      pos:
        line_end: 538
        line_start: 531
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    typedefs: []
    union:
    - fields:
      - name: epte
        type: u64
      item_type: union
      name: ept_entry_t
      pos:
        line_end: 41
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: raw
        type: unsigned long
      item_type: union
      name: cr_access_qual
      pos:
        line_end: 244
        line_start: 232
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: raw
        type: unsigned long
      item_type: union
      name: ept_qual
      pos:
        line_end: 525
        line_start: 516
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: raw
        type: unsigned long
      item_type: union
      name: idt_or_gdt_instr_info
      pos:
        line_end: 559
        line_start: 541
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
    - fields:
      - name: raw
        type: unsigned long
      item_type: union
      name: ldt_or_tr_instr_info
      pos:
        line_end: 580
        line_start: 562
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vmx.h
- function_names:
  - vcpu_2_nvmx
  - get_vvmcs
  - set_vvmcs
  - get_vvmcs_safe
  - set_vvmcs_safe
  source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
  types:
    enum:
    - enumerators:
      - name: VVMCS_WIDTH_16
        value: '0'
      - name: VVMCS_WIDTH_NATURAL
      - name: VVMCS_WIDTH_32
      - name: VVMCS_WIDTH_64
      item_type: enum
      name: vvmcs_encoding_width
      pos:
        line_end: 137
        line_start: 132
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    - enumerators:
      - name: VVMCS_TYPE_CONTROL
        value: '0'
      - name: VVMCS_TYPE_RO
      - name: VVMCS_TYPE_GSTATE
      - name: VVMCS_TYPE_HSTATE
      item_type: enum
      name: vvmcs_encoding_type
      pos:
        line_end: 144
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    preproc_defs:
    - item_type: preproc_def
      name: VMX_PINBASED_CTLS_DEFAULT1
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '0x16'
    - item_type: preproc_def
      name: VMX_PROCBASED_CTLS_DEFAULT1
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '0x401e172'
    - item_type: preproc_def
      name: VMX_EXIT_CTLS_DEFAULT1
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '0x36dff'
    - item_type: preproc_def
      name: VMX_ENTRY_CTLS_DEFAULT1
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '0x11ff'
    - item_type: preproc_def
      name: EPT_TRANSLATE_SUCCEED
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: EPT_TRANSLATE_VIOLATION
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EPT_TRANSLATE_MISCONFIG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '2'
    - item_type: preproc_def
      name: EPT_TRANSLATE_RETRY
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
      type_or_value: '3'
    structs:
    - fields:
      - name: vvmcs_mfn
        type: unsigned long
      - name: node
        type: struct list_head
      item_type: struct
      name: vvmcs_list
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    - fields:
      - name: vmxon_region_pa
        type: paddr_t
      - name: '*iobitmap[2]'
        type: void
      - name: '*msrbitmap'
        type: struct vmx_msr_bitmap
      - name: '*msr_merged'
        type: struct vmx_msr_bitmap
      - name: intr
        type: "struct {\n        unsigned long intr_info;\n        u32           error_code;\n
          \       u8            source;\n    }"
      - name: ept
        type: "struct {\n        bool     enabled;\n        uint32_t exit_reason;\n
          \       uint32_t exit_qual;\n    }"
      - name: guest_vpid
        type: uint32_t
      - name: launched_list
        type: struct list_head
      item_type: struct
      name: nestedvmx
      pos:
        line_end: 43
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    - fields:
      - name: revision
        type: u32
      - name: abort
        type: u32
      item_type: struct
      name: vvmcs_header
      pos:
        line_end: 118
        line_start: 115
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    typedefs: []
    union:
    - fields:
      - name: fields
        type: "struct {\n        unsigned int scaling           :2; /* bit 0-1 */\n
          \       unsigned int __rsvd0           :1; /* bit 2 */\n        unsigned
          int reg1              :4; /* bit 3-6 */\n        unsigned int addr_size
          \        :3; /* bit 7-9 */\n        unsigned int memreg            :1; /*
          bit 10 */\n        unsigned int __rsvd1           :4; /* bit 11-14 */\n
          \       unsigned int segment           :3; /* bit 15-17 */\n        unsigned
          int index_reg         :4; /* bit 18-21 */\n        unsigned int index_reg_invalid
          :1; /* bit 22 */\n        unsigned int base_reg          :4; /* bit 23-26
          */\n        unsigned int base_reg_invalid  :1; /* bit 27 */\n        unsigned
          int reg2              :4; /* bit 28-31 */\n    }"
      - name: word
        type: u32
      item_type: union
      name: vmx_inst_info
      pos:
        line_end: 73
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
    - fields:
      - name: word
        type: u32
      item_type: union
      name: vmcs_encoding
      pos:
        line_end: 130
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/hvm/vmx/vvmx.h
- function_names:
  - _hypercall64_1
  - _hypercall64_2
  - _hypercall64_3
  - _hypercall64_4
  - xen_hypercall_sched_op
  - xen_hypercall_memory_op
  - xen_hypercall_vcpu_op
  - xen_hypercall_event_channel_op
  - xen_hypercall_grant_table_op
  - xen_hypercall_hvm_op
  - xen_hypercall_console_write
  - xen_hypercall_shutdown
  - xen_hypercall_evtchn_send
  - xen_hypercall_evtchn_unmask
  - xen_hypercall_hvm_get_param
  - xen_hypercall_set_evtchn_upcall_vector
  - xen_hypercall_console_write
  - xen_hypercall_shutdown
  source_file: /src/xen/xen/arch/x86/include/asm/guest/xen-hcall.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hv_scale_tsc
  - hyperv_probe
  source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HV_HCALL_MFN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv.h
      type_or_value: (((1ULL << paddr_bits) - 1) >> HV_HYP_PAGE_SHIFT)
    structs:
    - fields:
      - name: features
        type: uint32_t
      - name: misc_features
        type: uint32_t
      - name: hints
        type: uint32_t
      - name: nested_features
        type: uint32_t
      - name: max_vp_index
        type: uint32_t
      - name: max_lp_index
        type: uint32_t
      item_type: struct
      name: ms_hyperv_info
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv.h
    typedefs: []
    union: []
- function_names:
  - xg_probe
  source_file: /src/xen/xen/arch/x86/include/asm/guest/xen.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_shared_info
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/include/asm/guest/xen.h
      type_or_value: ((struct shared_info *)fix_to_virt(FIX_XEN_SHARED_INFO))
    - item_type: preproc_def
      name: xen_guest
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/guest/xen.h
      type_or_value: '0'
    - item_type: preproc_def
      name: pv_console
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/guest/xen.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pvh_init
  - pvh_print_info
  source_file: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: pvh_boot
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/guest/pvh-boot.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
  types:
    enum:
    - enumerators:
      - name: HV_GENERIC_SET_SPARSE_4K
      - name: HV_GENERIC_SET_ALL
      item_type: enum
      name: HV_GENERIC_SET_FORMAT
      pos:
        line_end: 416
        line_start: 413
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - enumerators:
      - name: HVMSG_NONE
        value: 0x00000000U
      - name: HVMSG_UNMAPPED_GPA
        value: 0x80000000U
      - name: HVMSG_GPA_INTERCEPT
        value: 0x80000001U
      - name: HVMSG_TIMER_EXPIRED
        value: 0x80000010U
      - name: HVMSG_INVALID_VP_REGISTER_VALUE
        value: 0x80000020U
      - name: HVMSG_UNRECOVERABLE_EXCEPTION
        value: 0x80000021U
      - name: HVMSG_UNSUPPORTED_FEATURE
        value: 0x80000022U
      - name: HVMSG_EVENTLOG_BUFFERCOMPLETE
        value: 0x80000040U
      - name: HVMSG_X64_IOPORT_INTERCEPT
        value: 0x80010000U
      - name: HVMSG_X64_MSR_INTERCEPT
        value: 0x80010001U
      - name: HVMSG_X64_CPUID_INTERCEPT
        value: 0x80010002U
      - name: HVMSG_X64_EXCEPTION_INTERCEPT
        value: 0x80010003U
      - name: HVMSG_X64_LEGACY_FP_ERROR
        value: 0x80010005U
      - name: HVMSG_X64_APIC_EOI
        value: 0x80010004U
      item_type: enum
      name: hv_message_type
      pos:
        line_end: 497
        line_start: 472
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    preproc_defs:
    - item_type: preproc_def
      name: HV_HYP_PAGE_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: HV_HYP_PAGE_SIZE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(HV_HYP_PAGE_SHIFT, UL)
    - item_type: preproc_def
      name: HV_HYP_PAGE_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (~(HV_HYP_PAGE_SIZE - 1))
    - item_type: preproc_def
      name: HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: HYPERV_CPUID_INTERFACE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000001'
    - item_type: preproc_def
      name: HYPERV_CPUID_VERSION
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000002'
    - item_type: preproc_def
      name: HYPERV_CPUID_FEATURES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000003'
    - item_type: preproc_def
      name: HYPERV_CPUID_ENLIGHTMENT_INFO
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000004'
    - item_type: preproc_def
      name: HYPERV_CPUID_IMPLEMENT_LIMITS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000005'
    - item_type: preproc_def
      name: HYPERV_CPUID_NESTED_FEATURES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000000A'
    - item_type: preproc_def
      name: HYPERV_HYPERVISOR_PRESENT_BIT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: HYPERV_CPUID_MIN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000005'
    - item_type: preproc_def
      name: HYPERV_CPUID_MAX
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000ffff'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_RUNTIME_AVAILABLE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_MSR_TIME_REF_COUNT_AVAILABLE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_SYNIC_AVAILABLE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_MSR_SYNTIMER_AVAILABLE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_APIC_ACCESS_AVAILABLE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_HYPERCALL_AVAILABLE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_VP_INDEX_AVAILABLE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(6, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_RESET_AVAILABLE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(7, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_STAT_PAGES_AVAILABLE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(8, UL)
    - item_type: preproc_def
      name: HV_MSR_REFERENCE_TSC_AVAILABLE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(9, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_GUEST_IDLE_AVAILABLE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(10, UL)
    - item_type: preproc_def
      name: HV_X64_ACCESS_FREQUENCY_MSRS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(11, UL)
    - item_type: preproc_def
      name: HV_X64_ACCESS_REENLIGHTENMENT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(13, UL)
    - item_type: preproc_def
      name: HV_X64_CREATE_PARTITIONS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_X64_ACCESS_PARTITION_ID
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_X64_ACCESS_MEMORY_POOL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_X64_ADJUST_MESSAGE_BUFFERS
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_X64_POST_MESSAGES
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: HV_X64_SIGNAL_EVENTS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: HV_X64_CREATE_PORT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(6, UL)
    - item_type: preproc_def
      name: HV_X64_CONNECT_PORT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(7, UL)
    - item_type: preproc_def
      name: HV_X64_ACCESS_STATS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(8, UL)
    - item_type: preproc_def
      name: HV_X64_DEBUGGING
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(11, UL)
    - item_type: preproc_def
      name: HV_X64_CPU_POWER_MANAGEMENT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(12, UL)
    - item_type: preproc_def
      name: HV_X64_MWAIT_AVAILABLE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_X64_GUEST_DEBUGGING_AVAILABLE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_X64_PERF_MONITOR_AVAILABLE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_X64_HYPERCALL_PARAMS_XMM_AVAILABLE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: HV_X64_GUEST_IDLE_STATE_AVAILABLE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: HV_FEATURE_FREQUENCY_MSRS_AVAILABLE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(8, UL)
    - item_type: preproc_def
      name: HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(10, UL)
    - item_type: preproc_def
      name: HV_STIMER_DIRECT_MODE_AVAILABLE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: HV_X64_AS_SWITCH_RECOMMENDED
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_X64_LOCAL_TLB_FLUSH_RECOMMENDED
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_X64_APIC_ACCESS_RECOMMENDED
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_X64_SYSTEM_RESET_RECOMMENDED
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: HV_X64_RELAXED_TIMING_RECOMMENDED
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: HV_DEPRECATING_AEOI_RECOMMENDED
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(9, UL)
    - item_type: preproc_def
      name: HV_X64_CLUSTER_IPI_RECOMMENDED
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(10, UL)
    - item_type: preproc_def
      name: HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(11, UL)
    - item_type: preproc_def
      name: HV_X64_ENLIGHTENED_VMCS_RECOMMENDED
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(14, UL)
    - item_type: preproc_def
      name: HV_X64_NO_NONARCH_CORESHARING
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(18, UL)
    - item_type: preproc_def
      name: HV_X64_NESTED_DIRECT_FLUSH
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(17, UL)
    - item_type: preproc_def
      name: HV_X64_NESTED_GUEST_MAPPING_FLUSH
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(18, UL)
    - item_type: preproc_def
      name: HV_X64_NESTED_MSR_BITMAP
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: HV_X64_MSR_GUEST_OS_ID
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: HV_X64_MSR_HYPERCALL
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000001'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_INDEX
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000002'
    - item_type: preproc_def
      name: HV_X64_MSR_RESET
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000003'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_RUNTIME
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000010'
    - item_type: preproc_def
      name: HV_X64_MSR_TIME_REF_COUNT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000020'
    - item_type: preproc_def
      name: HV_X64_MSR_REFERENCE_TSC
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000021'
    - item_type: preproc_def
      name: HV_X64_MSR_TSC_FREQUENCY
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000022'
    - item_type: preproc_def
      name: HV_X64_MSR_APIC_FREQUENCY
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000023'
    - item_type: preproc_def
      name: HV_X64_MSR_EOI
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000070'
    - item_type: preproc_def
      name: HV_X64_MSR_ICR
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000071'
    - item_type: preproc_def
      name: HV_X64_MSR_TPR
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000072'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_ASSIST_PAGE
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000073'
    - item_type: preproc_def
      name: HV_X64_MSR_SCONTROL
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000080'
    - item_type: preproc_def
      name: HV_X64_MSR_SVERSION
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000081'
    - item_type: preproc_def
      name: HV_X64_MSR_SIEFP
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000082'
    - item_type: preproc_def
      name: HV_X64_MSR_SIMP
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000083'
    - item_type: preproc_def
      name: HV_X64_MSR_EOM
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000084'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT0
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000090'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT1
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000091'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT2
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000092'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT3
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000093'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT4
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000094'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT5
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000095'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT6
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000096'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT7
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000097'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT8
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000098'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT9
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000099'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT10
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009A'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT11
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009B'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT12
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009C'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT13
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009D'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT14
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009E'
    - item_type: preproc_def
      name: HV_X64_MSR_SINT15
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x4000009F'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER0_CONFIG
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B0'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER0_COUNT
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B1'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER1_CONFIG
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B2'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER1_COUNT
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B3'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER2_CONFIG
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B4'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER2_COUNT
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B5'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER3_CONFIG
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B6'
    - item_type: preproc_def
      name: HV_X64_MSR_STIMER3_COUNT
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000B7'
    - item_type: preproc_def
      name: HV_X64_MSR_GUEST_IDLE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x400000F0'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_P0
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000100'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_P1
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000101'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_P2
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000102'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_P3
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000103'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_P4
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000104'
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_CTL
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000105'
    - item_type: preproc_def
      name: HV_X64_MSR_REENLIGHTENMENT_CONTROL
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000106'
    - item_type: preproc_def
      name: HV_X64_MSR_TSC_EMULATION_CONTROL
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000107'
    - item_type: preproc_def
      name: HV_X64_MSR_TSC_EMULATION_STATUS
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x40000108'
    - item_type: preproc_def
      name: HV_LINUX_VENDOR_ID
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x8100'
    - item_type: preproc_def
      name: HV_XEN_VENDOR_ID
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x8300'
    - item_type: preproc_def
      name: HV_X64_MSR_HYPERCALL_ENABLE
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_MASK
      pos:
        line_end: 366
        line_start: 364
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (~((1ull << HV_X64_MSR_HYPERCALL_PAGE_ADDRESS_SHIFT) - 1))
    - item_type: preproc_def
      name: HV_CRASH_CTL_CRASH_NOTIFY_MSG
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT_ULL(62)
    - item_type: preproc_def
      name: HV_CRASH_CTL_CRASH_NOTIFY
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT_ULL(63)
    - item_type: preproc_def
      name: HV_X64_MSR_CRASH_PARAMS
      pos:
        line_end: 374
        line_start: 372
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1 + (HV_X64_MSR_CRASH_P4 - HV_X64_MSR_CRASH_P0))
    - item_type: preproc_def
      name: HV_IPI_LOW_VECTOR
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: HV_IPI_HIGH_VECTOR
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: HVCALL_NOTIFY_LONG_SPIN_WAIT
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: HVCALL_SEND_IPI
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x000b'
    - item_type: preproc_def
      name: HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE_EX
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0013'
    - item_type: preproc_def
      name: HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0014'
    - item_type: preproc_def
      name: HVCALL_SEND_IPI_EX
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x0015'
    - item_type: preproc_def
      name: HVCALL_POST_MESSAGE
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x005c'
    - item_type: preproc_def
      name: HVCALL_SIGNAL_EVENT
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x005d'
    - item_type: preproc_def
      name: HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_SPACE
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x00af'
    - item_type: preproc_def
      name: HVCALL_FLUSH_GUEST_PHYSICAL_ADDRESS_LIST
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x00b0'
    - item_type: preproc_def
      name: HVCALL_EXT_CALL_QUERY_CAPABILITIES
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x8001'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_ASSIST_PAGE_ENABLE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_MASK
      pos:
        line_end: 396
        line_start: 394
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (~((1ull << HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT) - 1))
    - item_type: preproc_def
      name: HV_X64_ENLIGHTENED_VMCS_VERSION
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: HV_X64_MSR_TSC_REFERENCE_ENABLE
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HV_X64_MSR_TSC_REFERENCE_ADDRESS_SHIFT
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: HV_PROCESSOR_POWER_STATE_C0
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HV_PROCESSOR_POWER_STATE_C1
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HV_PROCESSOR_POWER_STATE_C2
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HV_PROCESSOR_POWER_STATE_C3
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: HV_FLUSH_ALL_PROCESSORS
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_FLUSH_ALL_VIRTUAL_ADDRESS_SPACES
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_FLUSH_NON_GLOBAL_MAPPINGS_ONLY
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_FLUSH_USE_EXTENDED_RANGE_FORMAT
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_HYPERCALL_RESULT_MASK
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0xffff '
    - item_type: preproc_def
      name: HV_HYPERCALL_FAST_BIT
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(16, UL)
    - item_type: preproc_def
      name: HV_HYPERCALL_VARHEAD_OFFSET
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '17'
    - item_type: preproc_def
      name: HV_HYPERCALL_REP_COMP_OFFSET
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: HV_HYPERCALL_REP_COMP_MASK
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '(0xfffULL << HV_HYPERCALL_REP_COMP_OFFSET) '
    - item_type: preproc_def
      name: HV_HYPERCALL_REP_START_OFFSET
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: HV_HYPERCALL_REP_START_MASK
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '(0xfffULL << HV_HYPERCALL_REP_START_OFFSET) '
    - item_type: preproc_def
      name: HV_STATUS_SUCCESS
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_HYPERCALL_CODE
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_HYPERCALL_INPUT
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_ALIGNMENT
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_PARAMETER
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HV_STATUS_INSUFFICIENT_MEMORY
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '11'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_PORT_ID
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '17'
    - item_type: preproc_def
      name: HV_STATUS_INVALID_CONNECTION_ID
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '18'
    - item_type: preproc_def
      name: HV_STATUS_INSUFFICIENT_BUFFERS
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '19'
    - item_type: preproc_def
      name: HV_CLOCK_HZ
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (NSEC_PER_SEC/100)
    - item_type: preproc_def
      name: HV_SYNIC_SINT_COUNT
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (16)
    - item_type: preproc_def
      name: HV_SYNIC_VERSION_1
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (0x1)
    - item_type: preproc_def
      name: HV_SYNIC_FIRST_VALID_VECTOR
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (16)
    - item_type: preproc_def
      name: HV_SYNIC_CONTROL_ENABLE
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: HV_SYNIC_SIMP_ENABLE
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: HV_SYNIC_SIEFP_ENABLE
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1ULL << 0)
    - item_type: preproc_def
      name: HV_SYNIC_SINT_MASKED
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1ULL << 16)
    - item_type: preproc_def
      name: HV_SYNIC_SINT_AUTO_EOI
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (1ULL << 17)
    - item_type: preproc_def
      name: HV_SYNIC_SINT_VECTOR_MASK
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (0xFF)
    - item_type: preproc_def
      name: HV_SYNIC_STIMER_COUNT
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (4)
    - item_type: preproc_def
      name: HV_MESSAGE_SIZE
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (256)
    - item_type: preproc_def
      name: HV_MESSAGE_PAYLOAD_BYTE_COUNT
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (240)
    - item_type: preproc_def
      name: HV_MESSAGE_PAYLOAD_QWORD_COUNT
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (30)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_NONE
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_IO_BITMAP
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_MSR_BITMAP
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP2
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_GRP1
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_PROC
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EVENT
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_ENTRY
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(6, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_EXCPN
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(7, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CRDR
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(8, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_CONTROL_XLAT
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(9, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_BASIC
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(10, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP1
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(11, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_GUEST_GRP2
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(12, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_POINTER
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(13, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_HOST_GRP1
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(14, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_ENLIGHTENMENTSCONTROL
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: BIT(15, UL)
    - item_type: preproc_def
      name: HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: HV_EVENT_FLAGS_COUNT
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (256 * 8)
    - item_type: preproc_def
      name: HV_EVENT_FLAGS_LONG_COUNT
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (256 / sizeof(unsigned long))
    - item_type: preproc_def
      name: HV_MAX_FLUSH_PAGES
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: (2048)
    - item_type: preproc_def
      name: HV_MAX_FLUSH_REP_COUNT
      pos:
        line_end: 907
        line_start: 905
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
      type_or_value: "((HV_HYP_PAGE_SIZE - 2 * sizeof(uint64_t)) / \\\n\t\t\t\tsizeof(union
        hv_gpa_page_range))"
    structs:
    - fields:
      - name: tsc_sequence
        type: uint32_t
      - name: reserved1
        type: uint32_t
      - name: tsc_scale
        type: uint64_t
      - name: tsc_offset
        type: int64_t
      - name: reserved2[509]
        type: uint64_t
      item_type: struct
      name: ms_hyperv_tsc_page
      pos:
        line_end: 302
        line_start: 296
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: vector
        type: uint64_t
      - name: reserved1
        type: uint64_t
      - name: enabled
        type: uint64_t
      - name: reserved2
        type: uint64_t
      - name: target_vp
        type: uint64_t
      item_type: struct
      name: hv_reenlightenment_control
      pos:
        line_end: 350
        line_start: 344
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: enabled
        type: uint64_t
      - name: reserved
        type: uint64_t
      item_type: struct
      name: hv_tsc_emulation_control
      pos:
        line_end: 355
        line_start: 352
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: inprogress
        type: uint64_t
      - name: reserved
        type: uint64_t
      item_type: struct
      name: hv_tsc_emulation_status
      pos:
        line_end: 360
        line_start: 357
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: tsc_sequence
        type: uint32_t
      - name: res1
        type: uint32_t
      - name: tsc_scale
        type: uint64_t
      - name: tsc_offset
        type: int64_t
      item_type: struct
      name: _HV_REFERENCE_TSC_PAGE
      pos:
        line_end: 448
        line_start: 443
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: message_type
        type: uint32_t
      - name: payload_size
        type: uint8_t
      - name: message_flags
        type: union hv_message_flags
      - name: reserved[2]
        type: uint8_t
      item_type: struct
      name: hv_message_header
      pos:
        line_end: 527
        line_start: 518
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: header
        type: struct hv_message_header
      - name: u
        type: "union {\n\t\tuint64_t payload[HV_MESSAGE_PAYLOAD_QWORD_COUNT];\n\t}"
      item_type: struct
      name: hv_message
      pos:
        line_end: 535
        line_start: 530
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: sint_message[HV_SYNIC_SINT_COUNT]
        type: struct hv_message
      item_type: struct
      name: hv_message_page
      pos:
        line_end: 540
        line_start: 538
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: timer_index
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: expiration_time
        type: uint64_t
      - name: delivery_time
        type: uint64_t
      item_type: struct
      name: hv_timer_message_payload
      pos:
        line_end: 548
        line_start: 543
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: features
        type: "struct {\n\t\tuint32_t directhypercall:1;\n\t\tuint32_t reserved:31;\n\t}"
      - name: hypercallControls
        type: "struct {\n\t\tuint32_t reserved;\n\t}"
      item_type: struct
      name: hv_nested_enlightenments_control
      pos:
        line_end: 558
        line_start: 550
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: apic_assist
        type: uint32_t
      - name: reserved1
        type: uint32_t
      - name: vtl_control[3]
        type: uint64_t
      - name: nested_control
        type: struct hv_nested_enlightenments_control
      - name: enlighten_vmentry
        type: uint8_t
      - name: reserved2[7]
        type: uint8_t
      - name: current_nested_vmcs
        type: uint64_t
      item_type: struct
      name: hv_vp_assist_page
      pos:
        line_end: 580
        line_start: 572
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: revision_id
        type: uint32_t
      - name: abort
        type: uint32_t
      - name: host_es_selector
        type: uint16_t
      - name: host_cs_selector
        type: uint16_t
      - name: host_ss_selector
        type: uint16_t
      - name: host_ds_selector
        type: uint16_t
      - name: host_fs_selector
        type: uint16_t
      - name: host_gs_selector
        type: uint16_t
      - name: host_tr_selector
        type: uint16_t
      - name: padding16_1
        type: uint16_t
      - name: host_ia32_pat
        type: uint64_t
      - name: host_ia32_efer
        type: uint64_t
      - name: host_cr0
        type: uint64_t
      - name: host_cr3
        type: uint64_t
      - name: host_cr4
        type: uint64_t
      - name: host_ia32_sysenter_esp
        type: uint64_t
      - name: host_ia32_sysenter_eip
        type: uint64_t
      - name: host_rip
        type: uint64_t
      - name: host_ia32_sysenter_cs
        type: uint32_t
      - name: pin_based_vm_exec_control
        type: uint32_t
      - name: vm_exit_controls
        type: uint32_t
      - name: secondary_vm_exec_control
        type: uint32_t
      - name: io_bitmap_a
        type: uint64_t
      - name: io_bitmap_b
        type: uint64_t
      - name: msr_bitmap
        type: uint64_t
      - name: guest_es_selector
        type: uint16_t
      - name: guest_cs_selector
        type: uint16_t
      - name: guest_ss_selector
        type: uint16_t
      - name: guest_ds_selector
        type: uint16_t
      - name: guest_fs_selector
        type: uint16_t
      - name: guest_gs_selector
        type: uint16_t
      - name: guest_ldtr_selector
        type: uint16_t
      - name: guest_tr_selector
        type: uint16_t
      - name: guest_es_limit
        type: uint32_t
      - name: guest_cs_limit
        type: uint32_t
      - name: guest_ss_limit
        type: uint32_t
      - name: guest_ds_limit
        type: uint32_t
      - name: guest_fs_limit
        type: uint32_t
      - name: guest_gs_limit
        type: uint32_t
      - name: guest_ldtr_limit
        type: uint32_t
      - name: guest_tr_limit
        type: uint32_t
      - name: guest_gdtr_limit
        type: uint32_t
      - name: guest_idtr_limit
        type: uint32_t
      - name: guest_es_ar_bytes
        type: uint32_t
      - name: guest_cs_ar_bytes
        type: uint32_t
      - name: guest_ss_ar_bytes
        type: uint32_t
      - name: guest_ds_ar_bytes
        type: uint32_t
      - name: guest_fs_ar_bytes
        type: uint32_t
      - name: guest_gs_ar_bytes
        type: uint32_t
      - name: guest_ldtr_ar_bytes
        type: uint32_t
      - name: guest_tr_ar_bytes
        type: uint32_t
      - name: guest_es_base
        type: uint64_t
      - name: guest_cs_base
        type: uint64_t
      - name: guest_ss_base
        type: uint64_t
      - name: guest_ds_base
        type: uint64_t
      - name: guest_fs_base
        type: uint64_t
      - name: guest_gs_base
        type: uint64_t
      - name: guest_ldtr_base
        type: uint64_t
      - name: guest_tr_base
        type: uint64_t
      - name: guest_gdtr_base
        type: uint64_t
      - name: guest_idtr_base
        type: uint64_t
      - name: padding64_1[3]
        type: uint64_t
      - name: vm_exit_msr_store_addr
        type: uint64_t
      - name: vm_exit_msr_load_addr
        type: uint64_t
      - name: vm_entry_msr_load_addr
        type: uint64_t
      - name: cr3_target_value0
        type: uint64_t
      - name: cr3_target_value1
        type: uint64_t
      - name: cr3_target_value2
        type: uint64_t
      - name: cr3_target_value3
        type: uint64_t
      - name: page_fault_error_code_mask
        type: uint32_t
      - name: page_fault_error_code_match
        type: uint32_t
      - name: cr3_target_count
        type: uint32_t
      - name: vm_exit_msr_store_count
        type: uint32_t
      - name: vm_exit_msr_load_count
        type: uint32_t
      - name: vm_entry_msr_load_count
        type: uint32_t
      - name: tsc_offset
        type: uint64_t
      - name: virtual_apic_page_addr
        type: uint64_t
      - name: vmcs_link_pointer
        type: uint64_t
      - name: guest_ia32_debugctl
        type: uint64_t
      - name: guest_ia32_pat
        type: uint64_t
      - name: guest_ia32_efer
        type: uint64_t
      - name: guest_pdptr0
        type: uint64_t
      - name: guest_pdptr1
        type: uint64_t
      - name: guest_pdptr2
        type: uint64_t
      - name: guest_pdptr3
        type: uint64_t
      - name: guest_pending_dbg_exceptions
        type: uint64_t
      - name: guest_sysenter_esp
        type: uint64_t
      - name: guest_sysenter_eip
        type: uint64_t
      - name: guest_activity_state
        type: uint32_t
      - name: guest_sysenter_cs
        type: uint32_t
      - name: cr0_guest_host_mask
        type: uint64_t
      - name: cr4_guest_host_mask
        type: uint64_t
      - name: cr0_read_shadow
        type: uint64_t
      - name: cr4_read_shadow
        type: uint64_t
      - name: guest_cr0
        type: uint64_t
      - name: guest_cr3
        type: uint64_t
      - name: guest_cr4
        type: uint64_t
      - name: guest_dr7
        type: uint64_t
      - name: host_fs_base
        type: uint64_t
      - name: host_gs_base
        type: uint64_t
      - name: host_tr_base
        type: uint64_t
      - name: host_gdtr_base
        type: uint64_t
      - name: host_idtr_base
        type: uint64_t
      - name: host_rsp
        type: uint64_t
      - name: ept_pointer
        type: uint64_t
      - name: virtual_processor_id
        type: uint16_t
      - name: padding16_2[3]
        type: uint16_t
      - name: padding64_2[5]
        type: uint64_t
      - name: guest_physical_address
        type: uint64_t
      - name: vm_instruction_error
        type: uint32_t
      - name: vm_exit_reason
        type: uint32_t
      - name: vm_exit_intr_info
        type: uint32_t
      - name: vm_exit_intr_error_code
        type: uint32_t
      - name: idt_vectoring_info_field
        type: uint32_t
      - name: idt_vectoring_error_code
        type: uint32_t
      - name: vm_exit_instruction_len
        type: uint32_t
      - name: vmx_instruction_info
        type: uint32_t
      - name: exit_qualification
        type: uint64_t
      - name: exit_io_instruction_ecx
        type: uint64_t
      - name: exit_io_instruction_esi
        type: uint64_t
      - name: exit_io_instruction_edi
        type: uint64_t
      - name: exit_io_instruction_eip
        type: uint64_t
      - name: guest_linear_address
        type: uint64_t
      - name: guest_rsp
        type: uint64_t
      - name: guest_rflags
        type: uint64_t
      - name: guest_interruptibility_info
        type: uint32_t
      - name: cpu_based_vm_exec_control
        type: uint32_t
      - name: exception_bitmap
        type: uint32_t
      - name: vm_entry_controls
        type: uint32_t
      - name: vm_entry_intr_info_field
        type: uint32_t
      - name: vm_entry_exception_error_code
        type: uint32_t
      - name: vm_entry_instruction_len
        type: uint32_t
      - name: tpr_threshold
        type: uint32_t
      - name: guest_rip
        type: uint64_t
      - name: hv_clean_fields
        type: uint32_t
      - name: hv_padding_32
        type: uint32_t
      - name: hv_synthetic_controls
        type: uint32_t
      - name: hv_enlightenments_control
        type: "struct {\n\t\tuint32_t nested_flush_hypercall:1;\n\t\tuint32_t msr_bitmap:1;\n\t\tuint32_t
          reserved:30;\n\t}"
      - name: hv_vp_id
        type: uint32_t
      - name: hv_vm_id
        type: uint64_t
      - name: partition_assist_page
        type: uint64_t
      - name: padding64_4[4]
        type: uint64_t
      - name: guest_bndcfgs
        type: uint64_t
      - name: padding64_5[7]
        type: uint64_t
      - name: xss_exit_bitmap
        type: uint64_t
      - name: padding64_6[7]
        type: uint64_t
      item_type: struct
      name: hv_enlightened_vmcs
      pos:
        line_end: 766
        line_start: 582
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: format
        type: uint64_t
      - name: valid_bank_mask
        type: uint64_t
      - name: bank_contents[]
        type: uint64_t
      item_type: struct
      name: hv_vpset
      pos:
        line_end: 862
        line_start: 858
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: vector
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: cpu_mask
        type: uint64_t
      item_type: struct
      name: hv_send_ipi
      pos:
        line_end: 869
        line_start: 865
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: vector
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: vp_set
        type: struct hv_vpset
      item_type: struct
      name: hv_send_ipi_ex
      pos:
        line_end: 876
        line_start: 872
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      item_type: struct
      name: hv_guest_mapping_flush
      pos:
        line_end: 882
        line_start: 879
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: gpa_list[HV_MAX_FLUSH_REP_COUNT]
        type: union hv_gpa_page_range
      item_type: struct
      name: hv_guest_mapping_flush_list
      pos:
        line_end: 912
        line_start: 908
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: processor_mask
        type: uint64_t
      - name: gva_list[]
        type: uint64_t
      item_type: struct
      name: hv_tlb_flush
      pos:
        line_end: 920
        line_start: 915
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: address_space
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: hv_vp_set
        type: struct hv_vpset
      item_type: struct
      name: hv_tlb_flush_ex
      pos:
        line_end: 928
        line_start: 923
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: tlb_lock_count
        type: uint32_t
      item_type: struct
      name: hv_partition_assist_pg
      pos:
        line_end: 932
        line_start: 930
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    typedefs: []
    union:
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_x64_msr_hypercall_contents
      pos:
        line_end: 291
        line_start: 284
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: hv_guest_os_id
      pos:
        line_end: 342
        line_start: 330
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: asu8
        type: uint8_t
      item_type: union
      name: hv_message_flags
      pos:
        line_end: 506
        line_start: 500
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: asu32
        type: uint32_t
      - name: u
        type: "struct {\n\t\tuint32_t id:24;\n\t\tuint32_t reserved:8;\n\t}"
      item_type: union
      name: hv_port_id
      pos:
        line_end: 515
        line_start: 509
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: raw
        type: uint64_t
      item_type: union
      name: hv_vp_assist_page_msr
      pos:
        line_end: 569
        line_start: 560
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_stimer_config
      pos:
        line_end: 808
        line_start: 795
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: flags[HV_EVENT_FLAGS_LONG_COUNT]
        type: unsigned long
      item_type: union
      name: hv_synic_event_flags
      pos:
        line_end: 814
        line_start: 812
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_synic_scontrol
      pos:
        line_end: 823
        line_start: 817
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_synic_sint
      pos:
        line_end: 836
        line_start: 826
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_synic_simp
      pos:
        line_end: 846
        line_start: 839
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: as_uint64
        type: uint64_t
      item_type: union
      name: hv_synic_siefp
      pos:
        line_end: 856
        line_start: 849
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
    - fields:
      - name: address_space
        type: uint64_t
      - name: page
        type: "struct {\n\t\tuint64_t additional_pages:11;\n\t\tuint64_t largepage:1;\n\t\tuint64_t
          basepfn:52;\n\t}"
      item_type: union
      name: hv_gpa_page_range
      pos:
        line_end: 898
        line_start: 891
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-tlfs.h
- function_names:
  - hypervisor_probe
  - hypervisor_setup
  - hypervisor_ap_setup
  - hypervisor_resume
  - hypervisor_e820_fixup
  - hypervisor_flush_tlb
  source_file: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: (*setup)(void)
        type: void
      - name: (*ap_setup)(void)
        type: int
      - name: (*resume)(void)
        type: void
      - name: (*e820_fixup)(void)
        type: void
      - name: (*flush_tlb)(const cpumask_t *mask, const void *va, unsigned int flags)
        type: int
      item_type: struct
      name: hypervisor_ops
      pos:
        line_end: 27
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/guest/hypervisor.h
    typedefs: []
    union: []
- function_names:
  - hv_do_hypercall
  - hv_do_fast_hypercall
  - hv_do_rep_hypercall
  source_file: /src/xen/xen/arch/x86/include/asm/guest/hyperv-hcall.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pv_shim_setup_dom
  - pv_shim_shutdown
  - pv_shim_inject_evtchn
  - pv_shim_cpu_up
  - pv_shim_cpu_down
  - pv_shim_online_memory
  - pv_shim_offline_memory
  - pv_shim_get_initial_domain_id
  - pv_shim_mem
  - pv_shim_fixup_e820
  - pv_shim_reserved_pages
  source_file: /src/xen/xen/arch/x86/include/asm/pv/shim.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: pv_shim
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/pv/shim.h
      type_or_value: '1'
    - item_type: preproc_def
      name: pv_shim
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/pv/shim.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pv_trap_callback_registered
  - pv_raise_nmi
  - pv_emulate_privileged_op
  - pv_emulate_sw_interrupt
  - pv_emulate_gate_op
  - pv_emulate_invalid_op
  - pv_trap_callback_registered
  source_file: /src/xen/xen/arch/x86/include/asm/pv/traps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pv_ro_page_fault
  - pv_set_gdt
  - pv_destroy_gdt
  - pv_map_ldt_shadow_page
  - pv_destroy_ldt
  source_file: /src/xen/xen/arch/x86/include/asm/pv/mm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_pcid_bits
  source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: opt_pv32
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: PCID_PV_PRIV
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: '0x0000    '
    - item_type: preproc_def
      name: PCID_PV_USER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PCID_PV_XPTI
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: '0x0002    '
    - item_type: preproc_def
      name: PV_CR4_GUEST_MASK
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: (X86_CR4_TSD | X86_CR4_DE | X86_CR4_FSGSBASE | X86_CR4_OSXSAVE)
    - item_type: preproc_def
      name: PV_CR4_GUEST_VISIBLE_MASK
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/pv/domain.h
      type_or_value: (X86_CR4_PAE | X86_CR4_MCE | X86_CR4_OSFXSR | X86_CR4_OSXMMEXCPT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - create_grant_pv_mapping
  - replace_grant_pv_mapping
  source_file: /src/xen/xen/arch/x86/include/asm/pv/grant_table.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trace_pv_trap
  - trace_pv_page_fault
  - trace_trap_one_addr
  - trace_trap_two_addr
  - trace_ptwr_emulation
  source_file: /src/xen/xen/arch/x86/include/asm/pv/trace.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - POST_CODE
  - EFIERR
  - EFIERR_OEM
  - BREAKPOINT
  - BREAKPOINT
  - ALIGN_VARIABLE
  - EFI_SIGNATURE_16
  - EFI_SIGNATURE_32
  - EFI_SIGNATURE_64
  - RUNTIME_CODE
  - BEGIN_RUNTIME_DATA
  - END_RUNTIME_DATA
  - EFI_DRIVER_ENTRY_POINT
  - LOAD_INTERNAL_DRIVER
  - EFI_DRIVER_ENTRY_POINT
  - LOAD_INTERNAL_DRIVER
  - INTERFACE_DECL
  - INTERFACE_DECL
  source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __WCHAR_TYPE__
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: short
    - item_type: preproc_def
      name: VOID
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: void
    - item_type: preproc_def
      name: EFI_ERROR_MASK
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: '0x8000000000000000'
    - item_type: preproc_def
      name: BAD_POINTER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: '0xFBFBFBFBFBFBFBFB'
    - item_type: preproc_def
      name: MAX_ADDRESS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: '0xFFFFFFFFFFFFFFFF'
    - item_type: preproc_def
      name: MIN_ALIGNMENT_SIZE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: '4'
    - item_type: preproc_def
      name: EXPORTAPI
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: __declspec( dllexport )
    - item_type: preproc_def
      name: EFIAPI
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: __cdecl  // Force C calling convention for Microsoft C compiler
    - item_type: preproc_def
      name: EFIAPI
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: __attribute__((__ms_abi__))  // Force Microsoft ABI
    - item_type: preproc_def
      name: VOLATILE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type_or_value: volatile
    structs: []
    typedefs:
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned __int64
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: __int64
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned __int32
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: __int32
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: char
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned long long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: long long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: char
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: char
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned long long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: long long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: char
    - item_type: typedef
      name: UINT64
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: uint64_t
    - item_type: typedef
      name: INT64
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int64_t
    - item_type: typedef
      name: UINT32
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: uint32_t
    - item_type: typedef
      name: INT32
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int32_t
    - item_type: typedef
      name: UINT16
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: uint16_t
    - item_type: typedef
      name: INT16
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int16_t
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: uint8_t
    - item_type: typedef
      name: INT8
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int8_t
    - item_type: typedef
      name: WCHAR
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: __WCHAR_TYPE__
    - item_type: typedef
      name: INTN
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: int64_t
    - item_type: typedef
      name: UINTN
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/efibind.h
      type: uint64_t
    union: []
- function_names:
  - is_compat_arg_xlat_range
  - xlat_page_left_size
  - xlat_malloc_init
  - xlat_malloc_array
  - __addr_ok
  - access_ok
  - array_access_ok
  - __compat_addr_ok
  - __compat_access_ok
  - compat_access_ok
  - compat_array_access_ok
  source_file: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPAT_ARG_XLAT_VIRT_BASE
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
      type_or_value: "((void *)ARG_XLAT_START(current) - \\\n                                   PERDOMAIN_VIRT_START
        + \\\n                                   PERDOMAIN_ALT_VIRT_START)"
    - item_type: preproc_def
      name: COMPAT_ARG_XLAT_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
      type_or_value: (2*PAGE_SIZE)
    - item_type: preproc_def
      name: xlat_page_start
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
      type_or_value: ((unsigned long)COMPAT_ARG_XLAT_VIRT_BASE)
    - item_type: preproc_def
      name: xlat_page_size
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/uaccess.h
      type_or_value: COMPAT_ARG_XLAT_SIZE
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmpxchg
  - __uint128_t::__cmpxchg16b
  - __uint128_t::cmpxchg16b_local_
  - cmpxchg16b
  source_file: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: raw
        type: __uint128_t
      item_type: union
      name: new = { .raw = *newp }
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
    - fields:
      - name: raw
        type: __uint128_t
      item_type: union
      name: new = { .raw = *newp }
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/system.h
- function_names:
  - elf_core_save_regs
  source_file: /src/xen/xen/arch/x86/include/asm/x86_64/elf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: r15
        type: unsigned long
      - name: r14
        type: unsigned long
      - name: r13
        type: unsigned long
      - name: r12
        type: unsigned long
      - name: rbp
        type: unsigned long
      - name: rbx
        type: unsigned long
      - name: r11
        type: unsigned long
      - name: r10
        type: unsigned long
      - name: r9
        type: unsigned long
      - name: r8
        type: unsigned long
      - name: rax
        type: unsigned long
      - name: rcx
        type: unsigned long
      - name: rdx
        type: unsigned long
      - name: rsi
        type: unsigned long
      - name: rdi
        type: unsigned long
      - name: orig_rax
        type: unsigned long
      - name: rip
        type: unsigned long
      - name: cs
        type: unsigned long
      - name: rflags
        type: unsigned long
      - name: rsp
        type: unsigned long
      - name: ss
        type: unsigned long
      - name: thread_fs
        type: unsigned long
      - name: thread_gs
        type: unsigned long
      - name: ds
        type: unsigned long
      - name: es
        type: unsigned long
      - name: fs
        type: unsigned long
      - name: gs
        type: unsigned long
      item_type: struct
      name: ELF_Gregset
      pos:
        line_end: 34
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/elf.h
    typedefs: []
    union: []
- function_names:
  - is_canonical_address
  - canonicalise_addr
  - virt_to_pdx
  - pdx_to_virt
  - virt_to_maddr
  - virt_to_maddr
  - maddr_to_virt
  - l1_linear_offset
  - l2_linear_offset
  - l3_linear_offset
  - l4_linear_offset
  - is_guest_l2_slot
  - is_guest_l4_slot
  - get_pte_flags
  - put_pte_flags
  - get_pte_pkey
  source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __XEN_VIRT_START
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: XEN_VIRT_START
    - item_type: preproc_def
      name: VADDR_TOP_BIT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (1UL << (VADDR_BITS - 1))
    - item_type: preproc_def
      name: CANONICAL_MASK
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (~0UL & ~VADDR_MASK)
    - item_type: preproc_def
      name: PRIpte
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: '"016lx"'
    - item_type: preproc_def
      name: root_table_offset
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4_table_offset
    - item_type: preproc_def
      name: root_get_pfn
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4e_get_pfn
    - item_type: preproc_def
      name: root_get_flags
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4e_get_flags
    - item_type: preproc_def
      name: root_get_intpte
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4e_get_intpte
    - item_type: preproc_def
      name: root_empty
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4e_empty
    - item_type: preproc_def
      name: root_from_paddr
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: l4e_from_paddr
    - item_type: preproc_def
      name: PGT_root_page_table
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: PGT_l4_page_table
    - item_type: preproc_def
      name: _PAGE_PKEY_BITS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: "(0x780000)\t "
    - item_type: preproc_def
      name: _PAGE_NX_BIT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (1U<<23)
    - item_type: preproc_def
      name: _PAGE_GNTTAB
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (1U<<22)
    - item_type: preproc_def
      name: _PAGE_GUEST_KERNEL
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (1U<<12)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RO
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (__PAGE_HYPERVISOR_RO      | _PAGE_GLOBAL)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RW
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (__PAGE_HYPERVISOR_RW      | _PAGE_GLOBAL)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RX
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (__PAGE_HYPERVISOR_RX      | _PAGE_GLOBAL)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RWX
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (__PAGE_HYPERVISOR         | _PAGE_GLOBAL)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_SHSTK
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: (__PAGE_HYPERVISOR_SHSTK   | _PAGE_GLOBAL)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: PAGE_HYPERVISOR_RW
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_UCMINUS
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: "(__PAGE_HYPERVISOR_UCMINUS | \\\n                                 _PAGE_GLOBAL
        | _PAGE_NX)"
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_UC
      pos:
        line_end: 150
        line_start: 148
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: "(__PAGE_HYPERVISOR_UC | \\\n                                 _PAGE_GLOBAL
        | _PAGE_NX)"
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_WC
      pos:
        line_end: 152
        line_start: 150
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: "(__PAGE_HYPERVISOR_WC | \\\n                                 _PAGE_GLOBAL
        | _PAGE_NX)"
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_WT
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type_or_value: "(__PAGE_HYPERVISOR_WT | \\\n                                 _PAGE_GLOBAL
        | _PAGE_NX)"
    structs:
    - fields:
      - name: l1
        type: intpte_t
      item_type: struct
      name: l1_pgentry_t
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    - fields:
      - name: l2
        type: intpte_t
      item_type: struct
      name: l2_pgentry_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    - fields:
      - name: l3
        type: intpte_t
      item_type: struct
      name: l3_pgentry_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    - fields:
      - name: l4
        type: intpte_t
      item_type: struct
      name: l4_pgentry_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
    typedefs:
    - item_type: typedef
      name: intpte_t
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type: u64
    - item_type: typedef
      name: root_pgentry_t
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/xen/xen/arch/x86/include/asm/x86_64/page.h
      type: l4_pgentry_t
    union: []
- function_names:
  - hypervisor_probe
  - hypervisor_setup
  - hypervisor_ap_setup
  - hypervisor_resume
  - hypervisor_e820_fixup
  - hypervisor_flush_tlb
  source_file: /src/xen/xen/arch/x86/guest/hypervisor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fill_gva_list
  - flush_tlb_ex
  - hyperv_flush_tlb
  - for_each_cpu
  source_file: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HV_TLB_FLUSH_UNIT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
      type_or_value: (4096 * PAGE_SIZE)
    - item_type: preproc_def
      name: MAX_GVAS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/guest/hyperv/tlb.c
      type_or_value: ((PAGE_SIZE - sizeof(struct hv_tlb_flush)) / sizeof(uint64_t))
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpumask_to_vpset
  - for_each_cpu
  source_file: /src/xen/xen/arch/x86/guest/hyperv/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generate_guest_id
  - hyperv_probe
  - setup_hypercall_page
  - setup_hypercall_pcpu_arg
  - setup_vp_assist
  - setup
  - ap_setup
  - e820_fixup
  - flush_tlb
  source_file: /src/xen/xen/arch/x86/guest/hyperv/hyperv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hv_vp_index
  source_file: /src/xen/xen/arch/x86/guest/hyperv/private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - early_hypercall_setup
  - find_xen_leaves
  - map_shared_info
  - map_vcpuinfo
  - set_vcpu_id
  - init_memmap
  - xen_evtchn_upcall
  - init_evtchn
  - setup
  - ap_setup
  - xg_alloc_unused_page
  - xg_free_unused_page
  - ap_resume
  - resume
  - e820_fixup
  - flush_tlb
  - xg_probe
  source_file: /src/xen/xen/arch/x86/guest/xen/xen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - convert_pvh_info
  - get_memory_map
  - pvh_init
  - pvh_print_info
  source_file: /src/xen/xen/arch/x86/guest/xen/pvh-boot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - parse_shim_mem
  - pv_shim_mem
  - mark_pfn_as_ram
  - pv_shim_fixup_e820
  - MARK_PARAM_RAM
  - pv_shim_reserved_pages
  - replace_va_mapping
  - evtchn_reserve
  - evtchn_handled
  - evtchn_assign_vcpu
  - pv_shim_setup_dom
  - SET_AND_MAP_PARAM
  - write_start_info
  - pv_shim_shutdown
  - for_each_vcpu
  - pv_shim_event_channel_op
  - EVTCHN_FORWARD
  - pv_shim_inject_evtchn
  - pv_shim_grant_table_op
  - do_grant_table_op
  - compat_grant_table_op
  - pv_shim_cpu_up
  - pv_shim_cpu_down
  - batch_memory_op
  - page_list_for_each
  - pv_shim_online_memory
  - pv_shim_offline_memory
  - pv_shim_get_initial_domain_id
  source_file: /src/xen/xen/arch/x86/pv/shim.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1_PROT
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/xen/xen/arch/x86/pv/shim.c
      type_or_value: "(_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER| \\\n                 _PAGE_GUEST_KERNEL)"
    - item_type: preproc_def
      name: COMPAT_L1_PROT
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/pv/shim.c
      type_or_value: (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED)
    - item_type: preproc_def
      name: compat_gnttab_setup_table
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/xen/xen/arch/x86/pv/shim.c
      type_or_value: gnttab_setup_table
    - item_type: preproc_def
      name: compat_handle_okay
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/xen/xen/arch/x86/pv/shim.c
      type_or_value: guest_handle_okay
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_set_debugreg
  - do_get_debugreg
  - do_fpu_taskswitch
  - set_debugreg
  - do_stack_switch
  - do_set_segment_base
  source_file: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: val
        type: unsigned long
      - name: ret
        type: long
      item_type: union
      name: u
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/xen/xen/arch/x86/pv/misc-hypercalls.c
- function_names:
  - gdt_ldt_desc_ptr
  source_file: /src/xen/xen/arch/x86/pv/emulate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - always_inline::_pv_hypercall
  - pv_do_multicall_call
  - pv_ring3_init_hypercall_page
  - pv_ring1_init_hypercall_page
  - do_entry_int82
  - pv_hypercall
  source_file: /src/xen/xen/arch/x86/pv/hypercall.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grant_to_pte_flags
  - create_grant_pv_mapping
  - steal_linear_address
  - replace_grant_pv_mapping
  source_file: /src/xen/xen/arch/x86/pv/grant_table.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_gate_descriptor
  - check_stack_limit
  - read_mem
  - fetch
  - pv_emulate_gate_op
  - push
  source_file: /src/xen/xen/arch/x86/pv/emul-gate-op.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ctxt
        type: struct x86_emulate_ctxt
      - name: cs
        type: "struct {\n        unsigned long base, limit;\n    }"
      - name: insn_fetch
        type: bool
      item_type: struct
      name: gate_op_ctxt
      pos:
        line_end: 86
        line_start: 80
        source_file: /src/xen/xen/arch/x86/pv/emul-gate-op.c
    typedefs: []
    union: []
- function_names:
  - pv_destroy_ldt
  - pv_destroy_gdt
  - pv_set_gdt
  - do_set_gdt
  - compat_set_gdt
  - compat_update_descriptor
  - check_descriptor
  - validate_segdesc_page
  - do_update_descriptor
  source_file: /src/xen/xen/arch/x86/pv/descriptor-tables.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_guest_nmi_callback
  - unregister_guest_nmi_callback
  - register_guest_callback
  - unregister_guest_callback
  - do_callback_op
  - do_set_callbacks
  - compat_register_guest_callback
  - compat_unregister_guest_callback
  - compat_callback_op
  - compat_set_callbacks
  - do_set_trap_table
  - compat_set_trap_table
  - do_nmi_op
  - compat_nmi_op
  source_file: /src/xen/xen/arch/x86/pv/callback.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_pv
  - opt_pcid_init
  - parse_pcid
  - setup_compat_l4
  - release_compat_l4
  - pv_fixup_guest_cr4
  - pge_init
  - pv_make_cr4
  - switch_compat
  - for_each_vcpu
  - for_each_vcpu
  - pv_create_gdt_ldt_l1tab
  - pv_destroy_gdt_ldt_l1tab
  - pv_vcpu_destroy
  - pv_vcpu_initialise
  - pv_domain_destroy
  - pv_domain_initialise
  - xpti_pcid_enabled
  - _toggle_guest_pt
  - toggle_guest_mode
  - toggle_guest_pt
  source_file: /src/xen/xen/arch/x86/pv/domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_get_eff_kern_l1e
  - paging_write_guest_entry
  - paging_cmpxchg_guest_entry
  - update_intpte
  - UPDATE_ENTRY
  - l1_pgentry_t::adjust_guest_l1e
  - l2_pgentry_t::adjust_guest_l2e
  - l3_pgentry_t::adjust_guest_l3e
  - l3_pgentry_t::unadjust_guest_l3e
  - l4_pgentry_t::adjust_guest_l4e
  source_file: /src/xen/xen/arch/x86/pv/mm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - io_emul_stub_setup
  - APPEND_BUFF
  - APPEND_CALL
  - iopl_ok
  - guest_io_okay
  - admin_io_okay
  - pci_cfg_ok
  - guest_io_read
  - check_guest_io_breakpoint
  - read_io
  - _guest_io_write
  - guest_io_write
  - write_io
  - read_segment
  - pv_emul_virt_to_linear
  - rep_ins
  - rep_outs
  - read_cr
  - write_cr
  - guest_misc_enable
  - guest_efer
  - soft_rdtsc
  - read_msr
  - write_msr
  - cache_op
  - validate
  - insn_fetch
  - pv_emulate_privileged_op
  - pv_emulate_sw_interrupt
  source_file: /src/xen/xen/arch/x86/pv/emul-priv-op.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ctxt
        type: struct x86_emulate_ctxt
      - name: cs
        type: "struct {\n        unsigned long base, limit;\n    }"
      - name: '*io_emul_stub'
        type: char
      - name: bpmatch
        type: unsigned int
      item_type: struct
      name: priv_op_ctxt
      pos:
        line_end: 41
        line_start: 34
        source_file: /src/xen/xen/arch/x86/pv/emul-priv-op.c
    typedefs:
    - item_type: typedef
      name: io_emul_stub_t(struct cpu_user_regs *regs)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/xen/arch/x86/pv/emul-priv-op.c
      type: void
    union: []
- function_names:
  - map_guest_l1e
  - pv_map_ldt_shadow_page
  - init_xen_pae_l2_slots
  source_file: /src/xen/xen/arch/x86/pv/mm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pv_emul_read_descriptor
  - pv_emul_instruction_done
  - pv_get_reg
  - pv_set_reg
  source_file: /src/xen/xen/arch/x86/pv/emulate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pv_emul_is_mem_write
  - ptwr_emulated_read
  - ptwr_emulated_insn_fetch
  - ptwr_emulated_update
  - ptwr_emulated_write
  - ptwr_emulated_cmpxchg
  - ptwr_do_page_fault
  - mmcfg_intercept_write
  - mmio_ro_emulated_write
  - mmio_ro_do_page_fault
  - pv_ro_page_fault
  source_file: /src/xen/xen/arch/x86/pv/ro-page-fault.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cr2
        type: unsigned long
      - name: pte
        type: l1_pgentry_t
      item_type: struct
      name: ptwr_emulate_ctxt
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    - fields:
      - name: cr2
        type: unsigned long
      - name: seg
        type: unsigned int
      - name: mfn
        type: mfn_t
      item_type: struct
      name: mmio_ro_emulate_ctxt
      pos:
        line_end: 307
        line_start: 301
        source_file: /src/xen/xen/arch/x86/pv/ro-page-fault.c
    typedefs: []
    union: []
- function_names:
  - pv_inject_event
  - set_guest_machinecheck_trapbounce
  - set_guest_nmi_trapbounce
  - nmi_softirq
  - pv_trap_init
  - pv_raise_nmi
  source_file: /src/xen/xen/arch/x86/pv/traps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - emulate_forced_invalid_op
  - pv_emulate_invalid_op
  source_file: /src/xen/xen/arch/x86/pv/emul-inv-op.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dom0_update_physmap
  - mark_pv_pt_pages_rdonly
  - iommu_memory_setup
  - setup_pv_physmap
  - alloc_chunk
  - dom0_construct
  - NR
  - dom0_construct_pv
  source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BASE_PROT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
    - item_type: preproc_def
      name: L1_PROT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (BASE_PROT|_PAGE_GUEST_KERNEL)
    - item_type: preproc_def
      name: COMPAT_L1_PROT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED)
    - item_type: preproc_def
      name: L2_PROT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (BASE_PROT|_PAGE_DIRTY)
    - item_type: preproc_def
      name: L3_PROT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (BASE_PROT|_PAGE_DIRTY)
    - item_type: preproc_def
      name: L4_PROT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (BASE_PROT|_PAGE_DIRTY)
    - item_type: preproc_def
      name: REVERSE_START
      pos:
        line_end: 913
        line_start: 912
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: ((v_end - v_start) >> PAGE_SHIFT)
    - item_type: preproc_def
      name: pfn
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/xen/xen/arch/x86/pv/dom0_build.c
      type_or_value: (nr_pages - 1 - (pfn - (alloc_epfn - alloc_spfn)))
    structs: []
    typedefs: []
    union: []
- function_names:
  - __trace_pv_trap
  - __trace_pv_page_fault
  - __trace_trap_one_addr
  - __trace_trap_two_addr
  - __trace_ptwr_emulation
  source_file: /src/xen/xen/arch/x86/pv/trace.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: eip
        type: uint32_t
      - name: trapnr
        type: uint16_t
      - name: use_error_code
        type: bool
      - name: error_code
        type: uint16_t
      item_type: struct
      name: "d = {\n            .eip            = eip,\n            .trapnr         =
        trapnr,\n            .use_error_code = use_error_code,\n            .error_code
        \    = error_code,\n        }"
      pos:
        line_end: 14
        line_start: 9
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: rip
        type: uint64_t
      - name: trapnr
        type: uint16_t
      - name: use_error_code
        type: bool
      - name: error_code
        type: uint16_t
      item_type: struct
      name: __packed
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: eip
        type: uint32_t
      item_type: struct
      name: "d = {\n            .eip        = eip,\n            .addr       = addr,\n
        \           .error_code = error_code,\n        }"
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: rip
        type: uint64_t
      - name: error_code
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: va1
        type: uint32_t
      item_type: struct
      name: "d = {\n            .va1 = va1,\n            .va2 = va2,\n        }"
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: va1
        type: uint64_t
      item_type: struct
      name: "d = {\n            .va1 = va1,\n            .va2 = va2,\n        }"
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: pte
        type: uint64_t
      - name: addr
        type: uint32_t
      item_type: struct
      name: "d = {\n            .pte  = l1e_get_intpte(npte),\n            .addr =
        addr,\n            .eip  = eip,\n        }"
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    - fields:
      - name: pte
        type: uint64_t
      - name: addr
        type: uint64_t
      item_type: struct
      name: "d = {\n            .pte  = l1e_get_intpte(npte),\n            .addr =
        addr,\n            .rip  = eip,\n        }"
      pos:
        line_end: 133
        line_start: 130
        source_file: /src/xen/xen/arch/x86/pv/trace.c
    typedefs: []
    union: []
- function_names:
  - async_exception_cleanup
  - do_iret
  - compat_iret
  source_file: /src/xen/xen/arch/x86/pv/iret.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - force_bigsmp
  - probe_bigsmp
  source_file: /src/xen/xen/arch/x86/genapic/bigsmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/genapic/default.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_apic_ldr_flat
  - init_apic_ldr_phys
  - cpu_mask_to_apicid
  source_file: /src/xen/xen/arch/x86/genapic/delivery.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generic_bigsmp_probe
  - genapic_apic_force
  - generic_apic_probe
  source_file: /src/xen/xen/arch/x86/genapic/probe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x2apic_cluster
  - init_apic_ldr_x2apic_cluster
  - for_each_online_cpu
  - send_IPI_self_x2apic
  - send_IPI_mask_x2apic_phys
  - for_each_cpu
  - send_IPI_mask_x2apic_cluster
  - for_each_cpu
  - update_clusterinfo
  - parse_x2apic_mode
  - apic_x2apic_probe
  - check_x2apic_preenabled
  source_file: /src/xen/xen/arch/x86/genapic/x2apic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_x86_user_segment
  - is_x86_system_segment
  - x86emul_invpcid_aux
  - x86emul_invpcid_pcid
  - x86emul_invpcid_type
  - X86EMUL_OPC
  - X86EMUL_OPC_66
  - X86EMUL_OPC_F3
  - X86EMUL_OPC_F2
  - X86EMUL_OPC_VEX
  - X86EMUL_OPC_VEX_66
  - X86EMUL_OPC_VEX_F3
  - X86EMUL_OPC_VEX_F2
  - X86EMUL_OPC_EVEX
  - X86EMUL_OPC_EVEX_66
  - X86EMUL_OPC_EVEX_F3
  - X86EMUL_OPC_EVEX_F2
  - X86EMUL_OPC_XOP
  - X86EMUL_OPC_XOP_66
  - X86EMUL_OPC_XOP_F3
  - X86EMUL_OPC_XOP_F2
  - array_access_nospec
  - decode_gpr
  - x86_emulate_free_state
  - x86_emul_hw_exception
  - x86_emul_pagefault
  - x86_emul_reset_event
  source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
  types:
    enum:
    - enumerators:
      - name: x86_seg_es
      - name: x86_seg_fs
      - name: x86_seg_ds
      - name: x86_seg_ss
      - name: x86_seg_cs
      - name: x86_seg_gs
      - name: x86_seg_tr
      - name: x86_seg_ldtr
      - name: x86_seg_gdtr
      - name: x86_seg_idtr
      - name: x86_seg_sys
      - name: x86_seg_none
      item_type: enum
      name: x86_segment
      pos:
        line_end: 48
        line_start: 32
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - enumerators:
      - name: X86EMUL_FPU_fpu
      - name: X86EMUL_FPU_mmx
      - name: X86EMUL_FPU_wait
      - name: X86EMUL_FPU_ymm
      - name: X86EMUL_FPU_xmm
      - name: X86EMUL_FPU_opmask
      - name: X86EMUL_FPU_zmm
      - name: X86EMUL_FPU_none
      item_type: enum
      name: x86_emulate_fpu_type
      pos:
        line_end: 155
        line_start: 145
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - enumerators:
      - name: x86emul_clflush
      - name: x86emul_clflushopt
      - name: x86emul_invd
      - name: x86emul_clwb
      - name: x86emul_wbinvd
      - name: x86emul_wbnoinvd
      item_type: enum
      name: x86emul_cache_op
      pos:
        line_end: 164
        line_start: 157
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - enumerators:
      - name: x86emul_invlpg
      - name: x86emul_invpcid
      - name: x86emul_invlpga
      item_type: enum
      name: x86emul_tlb_op
      pos:
        line_end: 170
        line_start: 166
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INST_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '15'
    - item_type: preproc_def
      name: X86_NR_GPRS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '8'
    - item_type: preproc_def
      name: X86_NR_GPRS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '16'
    - item_type: preproc_def
      name: X86_EVENT_NO_EC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '(-1)        '
    - item_type: preproc_def
      name: X86EMUL_OKAY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0'
    - item_type: preproc_def
      name: X86EMUL_UNHANDLEABLE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '1'
    - item_type: preproc_def
      name: X86EMUL_EXCEPTION
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '2'
    - item_type: preproc_def
      name: X86EMUL_RETRY
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '3'
    - item_type: preproc_def
      name: X86EMUL_DONE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '4'
    - item_type: preproc_def
      name: X86EMUL_UNIMPLEMENTED
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '5'
    - item_type: preproc_def
      name: X86EMUL_UNRECOGNIZED
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: X86EMUL_UNIMPLEMENTED
    - item_type: preproc_def
      name: X86EMUL_CMPXCHG_FAILED
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '7'
    - item_type: preproc_def
      name: X86EMUL_OPC_EXT_MASK
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: 0xffff0000U
    - item_type: preproc_def
      name: X86EMUL_OPC_MASK
      pos:
        line_end: 624
        line_start: 622
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: "(0x000000ff | X86EMUL_OPC_PFX_MASK | \\\n                                     X86EMUL_OPC_ENCODING_MASK)"
    - item_type: preproc_def
      name: X86EMUL_OPC_PFX_MASK
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0x00000300'
    - item_type: preproc_def
      name: X86EMUL_OPC_ENCODING_MASK
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0x00003000'
    - item_type: preproc_def
      name: X86EMUL_OPC_LEGACY_
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: X86EMUL_OPC_VEX_
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0x00001000'
    - item_type: preproc_def
      name: X86EMUL_OPC_EVEX_
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: x86_emulate
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
      type_or_value: x86_emulate_wrapper
    structs:
    - fields:
      - name: vector
        type: int16_t
      - name: type
        type: uint8_t
      - name: insn_len
        type: uint8_t
      - name: error_code
        type: int32_t
      item_type: struct
      name: x86_event
      pos:
        line_end: 72
        line_start: 63
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - fields:
      - name: sel
        type: uint16_t
      - name: limit
        type: uint32_t
      - name: base
        type: uint64_t
      item_type: struct
      name: segment_register
      pos:
        line_end: 96
        line_start: 78
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - fields:
      - name: ip
        type: unsigned long
      - name: cs
        type: uint16_t
      - name: op
        type: unsigned int
      - name: dval
        type: unsigned int
      item_type: struct
      name: x86_emul_fpu_aux
      pos:
        line_end: 103
        line_start: 98
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - fields:
      - name: "(*read)(\n        enum x86_segment seg,\n        unsigned long offset,\n
          \       void *p_data,\n        unsigned int bytes,\n        struct x86_emulate_ctxt
          *ctxt)"
        type: int
      - name: "(*insn_fetch)(\n        unsigned long offset,\n        void *p_data,\n
          \       unsigned int bytes,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write)(\n        enum x86_segment seg,\n        unsigned long offset,\n
          \       void *p_data,\n        unsigned int bytes,\n        struct x86_emulate_ctxt
          *ctxt)"
        type: int
      - name: "(*rmw)(\n        enum x86_segment seg,\n        unsigned long offset,\n
          \       unsigned int bytes,\n        uint32_t *eflags,\n        struct x86_emulate_state
          *state,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*cmpxchg)(\n        enum x86_segment seg,\n        unsigned long offset,\n
          \       void *p_old,\n        void *p_new,\n        unsigned int bytes,\n
          \       bool lock,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*blk)(\n        enum x86_segment seg,\n        unsigned long offset,\n
          \       void *p_data,\n        unsigned int bytes,\n        uint32_t *eflags,\n
          \       struct x86_emulate_state *state,\n        struct x86_emulate_ctxt
          *ctxt)"
        type: int
      - name: "(*validate)(\n        const struct x86_emulate_state *state,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*rep_ins)(\n        uint16_t src_port,\n        enum x86_segment dst_seg,\n
          \       unsigned long dst_offset,\n        unsigned int bytes_per_rep,\n
          \       unsigned long *reps,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*rep_outs)(\n        enum x86_segment src_seg,\n        unsigned long
          src_offset,\n        uint16_t dst_port,\n        unsigned int bytes_per_rep,\n
          \       unsigned long *reps,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*rep_movs)(\n        enum x86_segment src_seg,\n        unsigned long
          src_offset,\n        enum x86_segment dst_seg,\n        unsigned long dst_offset,\n
          \       unsigned int bytes_per_rep,\n        unsigned long *reps,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*rep_stos)(\n        void *p_data,\n        enum x86_segment seg,\n
          \       unsigned long offset,\n        unsigned int bytes_per_rep,\n        unsigned
          long *reps,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_segment)(\n        enum x86_segment seg,\n        struct segment_register
          *reg,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_segment)(\n        enum x86_segment seg,\n        const struct
          segment_register *reg,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_io)(\n        unsigned int port,\n        unsigned int bytes,\n
          \       unsigned long *val,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_io)(\n        unsigned int port,\n        unsigned int bytes,\n
          \       unsigned long val,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_cr)(\n        unsigned int reg,\n        unsigned long *val,\n
          \       struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_cr)(\n        unsigned int reg,\n        unsigned long val,\n
          \       struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_dr)(\n        unsigned int reg,\n        unsigned long *val,\n
          \       struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_dr)(\n        unsigned int reg,\n        unsigned long val,\n
          \       struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_xcr)(\n        unsigned int reg,\n        uint64_t *val,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_xcr)(\n        unsigned int reg,\n        uint64_t val,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*read_msr)(\n        unsigned int reg,\n        uint64_t *val,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*write_msr)(\n        unsigned int reg,\n        uint64_t val,\n        struct
          x86_emulate_ctxt *ctxt,\n        bool explicit)"
        type: int
      - name: "(*cache_op)(\n        enum x86emul_cache_op op,\n        enum x86_segment
          seg,\n        unsigned long offset,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*tlb_op)(\n        enum x86emul_tlb_op op,\n        unsigned long
          addr,\n        unsigned long aux,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*cpuid)(\n        uint32_t leaf,\n        uint32_t subleaf,\n        struct
          cpuid_leaf *res,\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*get_fpu)(\n        enum x86_emulate_fpu_type type,\n        struct
          x86_emulate_ctxt *ctxt)"
        type: int
      - name: "(*put_fpu)(\n        struct x86_emulate_ctxt *ctxt,\n        enum x86_emulate_fpu_type
          backout,\n        const struct x86_emul_fpu_aux *aux)"
        type: void
      - name: "(*vmfunc)(\n        struct x86_emulate_ctxt *ctxt)"
        type: int
      item_type: struct
      name: x86_emulate_ops
      pos:
        line_end: 538
        line_start: 203
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - fields:
      - name: force_writeback
        type: bool
      - name: '*data'
        type: void
      - name: '*regs'
        type: struct cpu_user_regs
      - name: addr_size
        type: unsigned int
      - name: sp_size
        type: unsigned int
      - name: lma
        type: bool
      - name: opcode
        type: unsigned int
      - name: retire
        type: "union {\n        uint8_t raw;\n        struct {\n            bool hlt:1;
          \         /* Instruction HLTed. */\n            bool mov_ss:1;       /*
          Instruction sets MOV-SS irq shadow. */\n            bool sti:1;          /*
          Instruction sets STI irq shadow. */\n            bool unblock_nmi:1;  /*
          Instruction clears NMI blocking. */\n            bool singlestep:1;   /*
          Singlestepping was active. */\n        };\n    }"
      - name: event_pending
        type: bool
      - name: event
        type: struct x86_event
      item_type: struct
      name: x86_emulate_ctxt
      pos:
        line_end: 597
        line_start: 542
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    - fields: []
      item_type: struct
      name: x86_emulate_stub
      pos:
        line_end: 671
        line_start: 660
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.h
    typedefs: []
    union: []
- function_names:
  - x86_emul_blk
  source_file: /src/xen/xen/arch/x86/x86_emulate/blk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FXSAVE_AREA
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/x86_emulate/blk.c
      type_or_value: ((void *)&current->arch.xsave_area->fpu_sse)
    - item_type: preproc_def
      name: FXSAVE_AREA
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/x86_emulate/blk.c
      type_or_value: get_fpu_save_area()
    structs:
    - fields:
      - name: env
        type: struct x87_env32
      - name: freg[8]
        type: "struct {\n               uint8_t bytes[10];\n            }"
      item_type: struct
      name: fpstate
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/xen/xen/arch/x86/x86_emulate/blk.c
    typedefs: []
    union: []
- function_names:
  - x86_emulate_free_state
  - x86_insn_opsize
  - x86_insn_modrm
  - x86_insn_operand_ea
  - x86_insn_is_portio
  - x86_insn_is_cr_access
  - x86_insn_immediate
  - x86emul_read_xcr
  - x86emul_write_xcr
  - x86emul_read_dr
  - x86emul_write_dr
  - x86emul_cpuid
  source_file: /src/xen/xen/arch/x86/x86_emulate/util-xen.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ERR_PTR
  - evex_encoded
  - x86_decode_insn
  - decode_disp8scale
  - insn_fetch_bytes
  - insn_fetch_type
  - decode_onebyte
  - decode_twobyte
  - decode_0f38
  - decode_0f3a
  - x86emul_decode
  source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ad_bytes
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
      type_or_value: '(s->ad_bytes) '
    structs:
    - fields:
      - name: desc
        type: opcode_desc_t
      - name: size
        type: simd_opsize_t
      - name: d8s
        type: disp8scale_t
      item_type: struct
      name: twobyte_table
      pos:
        line_end: 193
        line_start: 189
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
    - fields:
      - name: simd_size
        type: uint8_t
      - name: to_mem
        type: uint8_t
      - name: two_op
        type: uint8_t
      - name: vsib
        type: uint8_t
      - name: d8s
        type: disp8scale_t
      item_type: struct
      name: ext0f38_table
      pos:
        line_end: 323
        line_start: 317
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
    - fields:
      - name: simd_size
        type: uint8_t
      - name: to_mem
        type: uint8_t
      - name: two_op
        type: uint8_t
      - name: four_op
        type: uint8_t
      - name: d8s
        type: disp8scale_t
      item_type: struct
      name: ext0f3a_table
      pos:
        line_end: 457
        line_start: 451
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
    - fields:
      - name: simd_size
        type: uint8_t
      - name: two_op
        type: uint8_t
      - name: four_op
        type: uint8_t
      item_type: struct
      name: ext8f08_table
      pos:
        line_end: 536
        line_start: 532
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
    - fields:
      - name: simd_size
        type: uint8_t
      - name: two_op
        type: uint8_t
      item_type: struct
      name: ext8f09_table
      pos:
        line_end: 553
        line_start: 550
        source_file: /src/xen/xen/arch/x86/x86_emulate/decode.c
    typedefs: []
    union: []
- function_names:
  - x86_insn_length
  - x86_insn_is_mem_access
  - x86_insn_is_mem_write
  source_file: /src/xen/xen/arch/x86/x86_emulate/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x86emul_0fc7
  source_file: /src/xen/xen/arch/x86/x86_emulate/0fc7.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: u32[2]
        type: uint32_t
      - name: u64[2]
        type: uint64_t
      item_type: union
      name: '*old'
      pos:
        line_end: 107
        line_start: 104
        source_file: /src/xen/xen/arch/x86/x86_emulate/0fc7.c
- function_names:
  - mode_64bit
  - r
  - mode_64bit
  - r
  - check_state
  - truncate_word
  - truncate_ea
  - fail_if
  - EXPECT
  - mkec
  - generate_exception_if
  - generate_exception
  - in_realmode
  - in_protmode
  - mode_ring0
  - _amd_like
  - amd_like
  - vcpu_has_fpu
  - vcpu_has_sep
  - vcpu_has_cx8
  - vcpu_has_cmov
  - vcpu_has_clflush
  - vcpu_has_mmx
  - vcpu_has_fxsr
  - vcpu_has_sse
  - vcpu_has_sse2
  - vcpu_has_sse3
  - vcpu_has_pclmulqdq
  - vcpu_has_ssse3
  - vcpu_has_fma
  - vcpu_has_cx16
  - vcpu_has_sse4_1
  - vcpu_has_sse4_2
  - vcpu_has_movbe
  - vcpu_has_popcnt
  - vcpu_has_aesni
  - vcpu_has_avx
  - vcpu_has_f16c
  - vcpu_has_rdrand
  - vcpu_has_mmxext
  - vcpu_has_3dnow_ext
  - vcpu_has_3dnow
  - vcpu_has_lahf_lm
  - vcpu_has_cr8_legacy
  - vcpu_has_lzcnt
  - vcpu_has_sse4a
  - vcpu_has_misalignsse
  - vcpu_has_xop
  - vcpu_has_fma4
  - vcpu_has_tbm
  - vcpu_has_clzero
  - vcpu_has_wbnoinvd
  - vcpu_has_nscb
  - vcpu_has_bmi1
  - vcpu_has_hle
  - vcpu_has_avx2
  - vcpu_has_bmi2
  - vcpu_has_invpcid
  - vcpu_has_rtm
  - vcpu_has_mpx
  - vcpu_has_avx512f
  - vcpu_has_avx512dq
  - vcpu_has_rdseed
  - vcpu_has_adx
  - vcpu_has_smap
  - vcpu_has_avx512_ifma
  - vcpu_has_clflushopt
  - vcpu_has_clwb
  - vcpu_has_avx512cd
  - vcpu_has_sha
  - vcpu_has_avx512bw
  - vcpu_has_avx512vl
  - vcpu_has_avx512_vbmi
  - vcpu_has_avx512_vbmi2
  - vcpu_has_gfni
  - vcpu_has_vaes
  - vcpu_has_vpclmulqdq
  - vcpu_has_avx512_vnni
  - vcpu_has_avx512_bitalg
  - vcpu_has_avx512_vpopcntdq
  - vcpu_has_rdpid
  - vcpu_has_movdiri
  - vcpu_has_movdir64b
  - vcpu_has_enqcmd
  - vcpu_has_avx512_vp2intersect
  - vcpu_has_serialize
  - vcpu_has_tsxldtrk
  - vcpu_has_avx512_fp16
  - vcpu_has_sha512
  - vcpu_has_sm3
  - vcpu_has_sm4
  - vcpu_has_avx_vnni
  - vcpu_has_avx512_bf16
  - vcpu_has_cmpccxadd
  - vcpu_has_wrmsrns
  - vcpu_has_avx_ifma
  - vcpu_has_avx_vnni_int8
  - vcpu_has_avx_ne_convert
  - vcpu_has_avx_vnni_int16
  - vcpu_must_have
  - host_and_vcpu_must_have
  - host_and_vcpu_must_have
  - _PRE_EFLAGS
  - _POST_EFLAGS
  - get_stub
  - put_stub
  - invoke_stub
  - get_stub
  - put_stub
  - invoke_stub
  - get_fpu
  - init_context
  - is_aligned
  - umip_active
  - read_ulong
  source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
  types:
    enum:
    - enumerators:
      - name: d8s_bw
        value: '5'
      - name: d8s_vl_by_2
      - name: d8s_vl
      - name: d8s_dq
      - name: d8s_dq64
      - name: d8s_vl_by_4
      - name: d8s_vl_by_8
      item_type: enum
      name: disp8scale
      pos:
        line_end: 94
        line_start: 80
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - enumerators:
      - name: simd_none
      - name: simd_packed_int
      - name: simd_any_fp
      - name: simd_single_fp
      - name: simd_packed_fp
      - name: simd_scalar_opc
      - name: simd_scalar_vexw
      - name: simd_128
      - name: simd_256
      - name: simd_other
      item_type: enum
      name: simd_opsize
      pos:
        line_end: 194
        line_start: 132
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - enumerators:
      - name: vex_0f
        value: vex_none + 1
      - name: evex_map5
        value: '5'
      - name: evex_map6
      - name: vex_0f3a
      - name: vex_0f38
      item_type: enum
      name: vex_opcx
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - enumerators:
      - name: vex_66
        value: vex_none + 1
      - name: vex_f3
      - name: vex_f2
      item_type: enum
      name: vex_pfx
      pos:
        line_end: 211
        line_start: 207
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    preproc_defs:
    - item_type: preproc_def
      name: PTR_POISON
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: 'NULL '
    - item_type: preproc_def
      name: PTR_POISON
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '((void *)0x8086000000008086UL) '
    - item_type: preproc_def
      name: ByteOp
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: DstNone
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(0<<1) '
    - item_type: preproc_def
      name: DstImplicit
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(0<<1) '
    - item_type: preproc_def
      name: DstBitBase
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: DstReg
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(2<<1) '
    - item_type: preproc_def
      name: DstEax
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: 'DstReg '
    - item_type: preproc_def
      name: DstMem
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(3<<1) '
    - item_type: preproc_def
      name: DstMask
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (3<<1)
    - item_type: preproc_def
      name: SrcNone
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(0<<3) '
    - item_type: preproc_def
      name: SrcImplicit
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(0<<3) '
    - item_type: preproc_def
      name: SrcReg
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(1<<3) '
    - item_type: preproc_def
      name: SrcEax
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: 'SrcReg '
    - item_type: preproc_def
      name: SrcMem
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(2<<3) '
    - item_type: preproc_def
      name: SrcMem16
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(3<<3) '
    - item_type: preproc_def
      name: SrcImm
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(4<<3) '
    - item_type: preproc_def
      name: SrcImmByte
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(5<<3) '
    - item_type: preproc_def
      name: SrcImm16
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '(6<<3) '
    - item_type: preproc_def
      name: SrcMask
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (7<<3)
    - item_type: preproc_def
      name: ModRM
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: vSIB
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (1<<6)
    - item_type: preproc_def
      name: Mov
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (1<<7)
    - item_type: preproc_def
      name: TwoOp
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: Mov
    - item_type: preproc_def
      name: ImplicitOps
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (DstImplicit|SrcImplicit)
    - item_type: preproc_def
      name: REX_PREFIX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: REX_B
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: REX_X
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: REX_R
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: REX_W
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: REX_PREFIX
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REX_B
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REX_X
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REX_R
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: REX_W
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: vex_none
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VEX_PREFIX_DOUBLE_MASK
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: VEX_PREFIX_SCALAR_MASK
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: imm1
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: ea.val
    - item_type: preproc_def
      name: imm2
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: ea.orig_val
    - item_type: preproc_def
      name: X86EMUL_rdtsc
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: X86EMUL_stub_failure
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: EFLAGS_MASK
      pos:
        line_end: 443
        line_start: 441
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: "(X86_EFLAGS_OF | X86_EFLAGS_SF | X86_EFLAGS_ZF | \\\n                     X86_EFLAGS_AF
        | X86_EFLAGS_PF | X86_EFLAGS_CF)"
    - item_type: preproc_def
      name: EFLAGS_MODIFIABLE
      pos:
        line_end: 451
        line_start: 448
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: "(X86_EFLAGS_ID | X86_EFLAGS_AC | X86_EFLAGS_RF | \\\n                           X86_EFLAGS_NT
        | X86_EFLAGS_IOPL | X86_EFLAGS_DF | \\\n                           X86_EFLAGS_IF
        | X86_EFLAGS_TF | EFLAGS_MASK)"
    - item_type: preproc_def
      name: _LO32
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '"k"          '
    - item_type: preproc_def
      name: _STK
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '"%%rsp"      '
    - item_type: preproc_def
      name: _LO32
      pos:
        line_end: 651
        line_start: 650
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '""           '
    - item_type: preproc_def
      name: _STK
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type_or_value: '"%%esp"      '
    structs:
    - fields:
      - name: type
        type: enum { OP_REG, OP_MEM, OP_IMM, OP_NONE }
      - name: bytes
        type: unsigned int
      - name: val
        type: unsigned long
      - name: orig_val
        type: unsigned long
      - name: '*reg'
        type: unsigned long
      - name: mem
        type: "struct {\n        enum x86_segment seg;\n        unsigned long    off;\n
          \   }"
      item_type: struct
      name: operand
      pos:
        line_end: 116
        line_start: 98
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: op_bytes
        type: unsigned int
      - name: ext
        type: "enum {\n        ext_none = vex_none,\n        ext_0f   = vex_0f,\n
          \       ext_0f38 = vex_0f38,\n        ext_0f3a = vex_0f3a,\n        ext_map5
          = evex_map5,\n        ext_map6 = evex_map6,\n        /*\n         * For
          XOP use values such that the respective instruction field\n         * can
          be used without adjustment.\n         */\n        ext_8f08 = 8,\n        ext_8f09,\n
          \       ext_8f0a,\n    }"
      - name: rmw
        type: "enum {\n        rmw_NONE,\n        rmw_adc,\n        rmw_add,\n        rmw_and,\n
          \       rmw_btc,\n        rmw_btr,\n        rmw_bts,\n        rmw_cmpccxadd,\n
          \       rmw_dec,\n        rmw_inc,\n        rmw_neg,\n        rmw_not,\n
          \       rmw_or,\n        rmw_rcl,\n        rmw_rcr,\n        rmw_rol,\n
          \       rmw_ror,\n        rmw_sar,\n        rmw_sbb,\n        rmw_shl,\n
          \       rmw_shld,\n        rmw_shr,\n        rmw_shrd,\n        rmw_sub,\n
          \       rmw_xadd,\n        rmw_xchg,\n        rmw_xor,\n    }"
      - name: blk
        type: "enum {\n        blk_NONE,\n        blk_enqcmd,\n#ifndef X86EMUL_NO_FPU\n
          \       blk_fld, /* FLDENV, FRSTOR */\n        blk_fst, /* FNSTENV, FNSAVE
          */\n#endif\n#if !defined(X86EMUL_NO_FPU) || !defined(X86EMUL_NO_MMX) ||
          \\\n    !defined(X86EMUL_NO_SIMD)\n        blk_fxrstor,\n        blk_fxsave,\n#endif\n
          \       blk_movdir,\n    }"
      - name: modrm
        type: uint8_t
      - name: sib_index
        type: uint8_t
      - name: rex_prefix
        type: uint8_t
      - name: lock_prefix
        type: bool
      - name: not_64bit
        type: bool
      - name: fpu_ctrl
        type: bool
      - name: fp16
        type: bool
      - name: desc
        type: opcode_desc_t
      - name: vex
        type: union vex
      - name: evex
        type: union evex
      - name: simd_size
        type: enum simd_opsize
      - name: ea
        type: struct operand
      - name: ip
        type: unsigned long
      - name: '*stub_exn'
        type: struct stub_exn
      item_type: struct
      name: x86_emulate_state
      pos:
        line_end: 345
        line_start: 251
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: fcw
        type: uint16_t
      - name: fsw
        type: uint16_t
      - name: ftw
        type: uint8_t
      - name: fop
        type: uint16_t
      - name: fip
        type: "union {\n        struct {\n            uint32_t offs;\n            uint16_t
          sel, :16;\n        };\n        uint64_t addr;\n    }"
      - name: mxcsr
        type: uint32_t
      - name: mxcsr_mask
        type: uint32_t
      - name: fpreg[8]
        type: "struct {\n        uint8_t data[10];\n        uint16_t :16, :16, :16;\n
          \   }"
      - name: xmm[16][2]
        type: uint64_t
      - name: rsvd[6]
        type: uint64_t
      - name: avl[6]
        type: uint64_t
      item_type: struct
      name: x86_fxsr
      pos:
        line_end: 383
        line_start: 362
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: fcw
        type: uint16_t
      - name: fsw
        type: uint16_t
      - name: ftw
        type: uint16_t
      - name: mode
        type: "union {\n        struct {\n            uint16_t fip_lo;\n            uint16_t
          fop:11, :1, fip_hi:4;\n            uint16_t fdp_lo;\n            uint16_t
          :12, fdp_hi:4;\n        } real;\n        struct {\n            uint16_t
          fip;\n            uint16_t fcs;\n            uint16_t fdp;\n            uint16_t
          fds;\n        } prot;\n    }"
      item_type: struct
      name: x87_env16
      pos:
        line_end: 404
        line_start: 386
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: fcw
        type: uint32_t
      - name: fsw
        type: uint32_t
      - name: ftw
        type: uint32_t
      - name: mode
        type: "union {\n        struct {\n            /* some CPUs/FPUs also store
          the full FIP here */\n            uint32_t fip_lo:16, :16;\n            uint32_t
          fop:11, :1, fip_hi:16, :4;\n            /* some CPUs/FPUs also store the
          full FDP here */\n            uint32_t fdp_lo:16, :16;\n            uint32_t
          :12, fdp_hi:16, :4;\n        } real;\n        struct {\n            uint32_t
          fip;\n            uint32_t fcs:16, fop:11, :5;\n            uint32_t fdp;\n
          \           uint32_t fds:16, :16;\n        } prot;\n    }"
      item_type: struct
      name: x87_env32
      pos:
        line_end: 426
        line_start: 406
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: info
        type: union stub_exception_token
      - name: line
        type: unsigned int
      item_type: struct
      name: stub_exn
      pos:
        line_end: 713
        line_start: 710
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields: []
      item_type: struct
      name: stub_exn
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    typedefs:
    - item_type: typedef
      name: opcode_desc_t
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type: uint8_t
    - item_type: typedef
      name: disp8scale_t
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type: uint8_t
    - item_type: typedef
      name: simd_opsize_t
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
      type: uint8_t
    union:
    - fields:
      - name: raw[2]
        type: uint8_t
      item_type: union
      name: vex
      pos:
        line_end: 228
        line_start: 216
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: raw[3]
        type: uint8_t
      item_type: union
      name: evex
      pos:
        line_end: 249
        line_start: 230
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
    - fields:
      - name: mmx
        type: uint64_t
      - name: xmm[2]
        type: uint64_t
      - name: ymm[4]
        type: uint64_t
      - name: zmm[8]
        type: uint64_t
      - name: data32[16]
        type: uint32_t
      item_type: union
      name: mmval_t
      pos:
        line_end: 360
        line_start: 354
        source_file: /src/xen/xen/arch/x86/x86_emulate/private.h
- function_names:
  - x86emul_0f01
  - _GRP7
  - GRP7_MEM
  - GRP7_ALL
  source_file: /src/xen/xen/arch/x86/x86_emulate/0f01.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ad_bytes
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/x86_emulate/0f01.c
      type_or_value: '(s->ad_bytes) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_prefixes
  - copy_VEX
  - copy_REX_VEX
  - init_evex
  - copy_EVEX
  - rep_prefix
  - repe_prefix
  - repne_prefix
  - DECLARE_ALIGNED
  - __emulate_2op_nobyte
  - __emulate_2op
  - _emulate_2op_SrcB
  - emulate_2op_SrcB
  - _emulate_2op_SrcV
  - emulate_2op_SrcV
  - _emulate_2op_SrcV_nobyte
  - emulate_2op_SrcV_nobyte
  - emulate_2op_SrcV_srcmem
  - _emulate_1op
  - emulate_1op
  - __emulate_2op_8byte
  - __emulate_1op_8byte
  - emulate_stub
  - even_parity
  - _register_address_increment
  - register_address_adjust
  - sp_pre_dec
  - sp_post_inc
  - jmp_rel
  - validate_far_branch
  - commit_far_branch
  - x86emul_get_fpu
  - put_fpu
  - get_loop_count
  - put_loop_count
  - get_rep_prefix
  - __put_rep_prefix
  - put_rep_prefix
  - truncate_ea_and_reps
  - mul_dbl
  - imul_dbl
  - div_dbl
  - idiv_dbl
  - test_cc
  - x86emul_get_cpl
  - _mode_iopl
  - mode_iopl
  - mode_vif
  - ioport_access_check
  - realmode_load_seg
  - protmode_load_seg
  - load_seg
  - _decode_gpr
  - decode_vex_gpr
  - avx512_vlen_check
  - is_branch_step
  - adjust_bnd
  - x86emul_unhandleable_rw
  - evex_encoded
  - x86_emulate
  - GRP2
  - CASE_SIMD_PACKED_INT
  - CASE_SIMD_PACKED_INT
  - CASE_SIMD_PACKED_INT
  - CASE_SIMD_PACKED_INT
  - CASE_SIMD_PACKED_INT_VEX
  - CASE_SIMD_ALL_FP
  - CASE_SIMD_PACKED_FP
  - CASE_SIMD_SCALAR_FP
  - CASE_SIMD_SINGLE_FP
  - CASE_SIMD_ALL_FP_VEX
  - CASE_SIMD_PACKED_FP_VEX
  - CASE_SIMD_SCALAR_FP_VEX
  - CASE_SIMD_SINGLE_FP_VEX
  - CASE_SIMD_PACKED_INT_VEX
  - CASE_SIMD_ALL_FP
  - CASE_SIMD_PACKED_FP
  - CASE_SIMD_SCALAR_FP
  - CASE_SIMD_SINGLE_FP
  - CASE_SIMD_ALL_FP_VEX
  - CASE_SIMD_PACKED_FP_VEX
  - CASE_SIMD_SCALAR_FP_VEX
  - CASE_SIMD_SINGLE_FP_VEX
  - COND_LOCK
  - UNOP
  - BINOP
  - SHIFT
  - XADD
  - build_assertions
  - x86_emulate_wrapper
  source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PFX2
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: REX_PREFIX
    - item_type: preproc_def
      name: PFX2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '0x3e'
    - item_type: preproc_def
      name: PFX_BYTES
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '3'
    - item_type: preproc_def
      name: EVEX_PFX_BYTES
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MXCSR_MM
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (1U << 17)
    - item_type: preproc_def
      name: ECODE_EXT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ECODE_IDT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ECODE_TI
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: op_bytes
      pos:
        line_end: 1238
        line_start: 1237
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->op_bytes)
    - item_type: preproc_def
      name: ad_bytes
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->ad_bytes)
    - item_type: preproc_def
      name: ext
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->ext)
    - item_type: preproc_def
      name: modrm
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->modrm)
    - item_type: preproc_def
      name: modrm_mod
      pos:
        line_end: 1242
        line_start: 1241
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->modrm_mod)
    - item_type: preproc_def
      name: modrm_reg
      pos:
        line_end: 1243
        line_start: 1242
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->modrm_reg)
    - item_type: preproc_def
      name: modrm_rm
      pos:
        line_end: 1244
        line_start: 1243
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->modrm_rm)
    - item_type: preproc_def
      name: rex_prefix
      pos:
        line_end: 1245
        line_start: 1244
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->rex_prefix)
    - item_type: preproc_def
      name: lock_prefix
      pos:
        line_end: 1246
        line_start: 1245
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->lock_prefix)
    - item_type: preproc_def
      name: vex
      pos:
        line_end: 1247
        line_start: 1246
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->vex)
    - item_type: preproc_def
      name: evex
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->evex)
    - item_type: preproc_def
      name: ea
      pos:
        line_end: 1250
        line_start: 1249
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (state->ea)
    - item_type: preproc_def
      name: state
      pos:
        line_end: 1312
        line_start: 1311
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: (&state)
    - item_type: preproc_def
      name: stub_exn
      pos:
        line_end: 8381
        line_start: 8380
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '(*s->stub_exn) '
    - item_type: preproc_def
      name: JCXZ
      pos:
        line_end: 8392
        line_start: 8391
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '"jrcxz"'
    - item_type: preproc_def
      name: JCXZ
      pos:
        line_end: 8394
        line_start: 8393
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
      type_or_value: '"jecxz"'
    structs:
    - fields:
      - name: a
        type: uint32_t
      item_type: struct
      name: desc
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    typedefs: []
    union:
    - fields:
      - name: dw[8]
        type: int32_t
      - name: qw[4]
        type: int64_t
      item_type: union
      name: index
      pos:
        line_end: 6315
        line_start: 6312
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    - fields:
      - name: dw[16]
        type: int32_t
      - name: qw[8]
        type: int64_t
      item_type: union
      name: index
      pos:
        line_end: 6434
        line_start: 6431
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
    - fields:
      - name: dw[16]
        type: int32_t
      - name: qw[8]
        type: int64_t
      item_type: union
      name: index
      pos:
        line_end: 6595
        line_start: 6592
        source_file: /src/xen/xen/arch/x86/x86_emulate/x86_emulate.c
- function_names: []
  source_file: /src/xen/xen/arch/x86/x86_emulate/0fae.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: fpu_type
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/x86_emulate/0fae.c
      type_or_value: '(*fpu_type) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_has_amd_erratum
  - cpu_has_amd_erratum
  - fpu_check_write
  - emulate_fpu_insn_memdst
  - emulate_fpu_insn_memsrc
  - emulate_fpu_insn_stub_eflags
  source_file: /src/xen/xen/arch/x86/x86_emulate/fpu.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FSW_ES
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/x86_emulate/fpu.c
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: stub_exn
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/x86/x86_emulate/fpu.c
      type_or_value: '(*s->stub_exn) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_to_guest_ll
  - copy_from_guest_ll
  - copy_to_guest_pv
  - clear_guest_pv
  - copy_from_guest_pv
  source_file: /src/xen/xen/arch/x86/lib/copy-guest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUARD
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/lib/copy-guest.c
      type_or_value: UA_KEEP
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_arch_generic_hweightl
  source_file: /src/xen/xen/arch/x86/lib/generic-hweightl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/lib/copy-unsafe.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUARD
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/lib/copy-unsafe.c
      type_or_value: UA_DROP
    - item_type: preproc_def
      name: copy_to_guest_ll
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/lib/copy-unsafe.c
      type_or_value: copy_to_unsafe_ll
    - item_type: preproc_def
      name: copy_from_guest_ll
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/lib/copy-unsafe.c
      type_or_value: copy_from_unsafe_ll
    structs: []
    typedefs: []
    union: []
- function_names:
  - array_access_nospec
  - copy_from_buffer_offset
  - x86_cpuid_copy_from_buffer
  - x86_msr_copy_from_buffer
  - ASSIGN
  source_file: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: copy_from_buffer_offset
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/lib/cpu-policy/copy-from-buffer.c
      type_or_value: copy_from_guest_offset
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_bit
  source_file: /src/xen/xen/arch/x86/lib/cpu-policy/private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - zero_leaves
  - x86_cpuid_lookup_vendor
  - x86_cpuid_vendor_to_str
  - x86_cpu_policy_to_featureset
  - x86_cpu_featureset_to_policy
  - x86_cpu_policy_recalc_synth
  - x86_cpu_policy_fill_native
  source_file: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: l
        type: struct cpuid_leaf
      - name: c
        type: struct cpuid_cache_leaf
      item_type: union
      name: u
      pos:
        line_end: 141
        line_start: 138
        source_file: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
    - fields:
      - name: l
        type: struct cpuid_leaf
      - name: t
        type: struct cpuid_topo_leaf
      item_type: union
      name: u
      pos:
        line_end: 176
        line_start: 173
        source_file: /src/xen/xen/arch/x86/lib/cpu-policy/cpuid.c
- function_names:
  - x86_cpu_policies_are_compatible
  - FAIL_CPUID
  - FAIL_MSR
  source_file: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NA
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/lib/cpu-policy/policy.c
      type_or_value: XEN_CPUID_NO_SUBLEAF
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_to_buffer_offset
  - copy_leaf_to_buffer
  - x86_cpuid_copy_to_buffer
  - COPY_LEAF
  - copy_msr_to_buffer
  - x86_msr_copy_to_buffer
  - COPY_MSR
  source_file: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: copy_to_buffer_offset
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/lib/cpu-policy/copy-to-buffer.c
      type_or_value: copy_to_guest_offset
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_vmx_vcpu
  - handle_pmc_quirk
  - core2_get_arch_pmc_count
  - core2_get_fixed_pmc_count
  - core2_get_bitwidth_fix_count
  - is_core2_vpmu_msr
  - core2_vpmu_set_msr_bitmap
  - core2_vpmu_unset_msr_bitmap
  - __core2_vpmu_save
  - core2_vpmu_save
  - __core2_vpmu_load
  - core2_vpmu_verify
  - core2_vpmu_load
  - core2_vpmu_alloc_resource
  - core2_vpmu_msr_common_check
  - core2_vpmu_do_wrmsr
  - core2_vpmu_do_rdmsr
  - core2_vpmu_dump
  - core2_vpmu_do_interrupt
  - core2_vpmu_destroy
  - core2_vpmu_initialise
  - core2_vpmu_init
  source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PMU_VERSION_SHIFT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: PMU_VERSION_BITS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: PMU_VERSION_MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (((1 << PMU_VERSION_BITS) - 1) << PMU_VERSION_SHIFT)
    - item_type: preproc_def
      name: PMU_GENERAL_NR_SHIFT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: PMU_GENERAL_NR_BITS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: PMU_GENERAL_NR_MASK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (((1 << PMU_GENERAL_NR_BITS) - 1) << PMU_GENERAL_NR_SHIFT)
    - item_type: preproc_def
      name: PMU_GENERAL_WIDTH_SHIFT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '16  '
    - item_type: preproc_def
      name: PMU_GENERAL_WIDTH_BITS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: PMU_GENERAL_WIDTH_MASK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (((1 << PMU_GENERAL_WIDTH_BITS) - 1) << PMU_GENERAL_WIDTH_SHIFT)
    - item_type: preproc_def
      name: PMU_FIXED_NR_SHIFT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: PMU_FIXED_NR_BITS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: PMU_FIXED_NR_MASK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (((1 << PMU_FIXED_NR_BITS) -1) << PMU_FIXED_NR_SHIFT)
    - item_type: preproc_def
      name: PMU_FIXED_WIDTH_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: PMU_FIXED_WIDTH_BITS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '8  '
    - item_type: preproc_def
      name: PMU_FIXED_WIDTH_MASK
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (((1 << PMU_FIXED_WIDTH_BITS) -1) << PMU_FIXED_WIDTH_SHIFT)
    - item_type: preproc_def
      name: MSR_PMC_ALIAS_MASK
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (~(MSR_IA32_PERFCTR0 ^ MSR_IA32_A_PERFCTR0))
    - item_type: preproc_def
      name: FIXED_CTR_CTRL_BITS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FIXED_CTR_CTRL_MASK
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: ((1 << FIXED_CTR_CTRL_BITS) - 1)
    - item_type: preproc_def
      name: FIXED_CTR_CTRL_ANYTHREAD_MASK
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ARCH_CNTR_ENABLED
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (1ULL << 22)
    - item_type: preproc_def
      name: ARCH_CNTR_PIN_CONTROL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (1ULL << 19)
    - item_type: preproc_def
      name: ARCH_CTRL_MASK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_intel.c
      type_or_value: (~((1ull << 32) - 1) | (1ull << 21) | ARCH_CNTR_PIN_CONTROL)
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_clear_cpu_cap
  - setup_force_cpu_cap
  - is_forced_cpu_cap
  - default_init
  - probe_cpuid_faulting
  - set_cpuid_faulting
  - ctxt_switch_levelling
  - setup_doitm
  - get_model_name
  - display_cacheinfo
  - _phys_pkg_id
  - phys_pkg_id
  - early_cpu_init
  - reset_cpuinfo
  - generic_identify
  - identify_cpu
  - LEAFB_SUBTYPE
  - BITS_SHIFT_NEXT_LEVEL
  - LEVEL_MAX_SIBLINGS
  - detect_extended_topology
  - detect_ht
  - apicid_to_socket
  - print_cpu_info
  - skinit_enable_intr
  - cpu_init
  - cpu_uninit
  - x86_match_cpu
  source_file: /src/xen/xen/arch/x86/cpu/common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMT_LEVEL
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/xen/xen/arch/x86/cpu/common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: INVALID_TYPE
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/xen/xen/arch/x86/cpu/common.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SMT_TYPE
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/xen/xen/arch/x86/cpu/common.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CORE_TYPE
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/xen/xen/arch/x86/cpu/common.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_guest_mode
  - is_pmu_enabled
  - set_guest_mode
  - is_overflowed
  - is_svm_vcpu
  - msr_bitmap_on
  - msr_bitmap_off
  - is_msr_bitmap_on
  - get_pmu_reg_type
  - get_fam15h_addr
  - amd_vpmu_init_regs
  - amd_vpmu_set_msr_bitmap
  - amd_vpmu_unset_msr_bitmap
  - amd_vpmu_do_interrupt
  - context_load
  - amd_vpmu_load
  - context_save
  - amd_vpmu_save
  - context_update
  - amd_vpmu_do_wrmsr
  - amd_vpmu_do_rdmsr
  - amd_vpmu_destroy
  - amd_vpmu_dump
  - amd_vpmu_initialise
  - amd_allocate_context
  - common_init
  - amd_vpmu_init
  - hygon_vpmu_init
  source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_F10H_EVNTSEL_GO_SHIFT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: '40'
    - item_type: preproc_def
      name: MSR_F10H_EVNTSEL_EN_SHIFT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: '22'
    - item_type: preproc_def
      name: MSR_F10H_COUNTER_LENGTH
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: '48'
    - item_type: preproc_def
      name: F10H_NUM_COUNTERS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: F15H_NUM_COUNTERS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MAX_NUM_COUNTERS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: F15H_NUM_COUNTERS
    - item_type: preproc_def
      name: CTRL_RSVD_MASK
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/xen/xen/arch/x86/cpu/vpmu_amd.c
      type_or_value: "((-1ULL & (~((1ULL << 42) - 1))) | \\\n                        (0xfULL
        << 36) | (1ULL << 21) | (1ULL << 19))"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/cpu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*c_early_init)(struct cpuinfo_x86 *c)
        type: void
      - name: (*c_init)(struct cpuinfo_x86 * c)
        type: void
      item_type: struct
      name: cpu_dev
      pos:
        line_end: 8
        line_start: 5
        source_file: /src/xen/xen/arch/x86/cpu/cpu.h
    typedefs: []
    union: []
- function_names:
  - pr_debug
  - flg2MWAIT
  - MWAIT2flg
  - MWAIT_HINT2CSTATE
  - MWAIT_HINT2SUBSTATE
  - mwait_idle
  - auto_demotion_disable
  - byt_auto_demotion_disable
  - c1e_promotion_enable
  - c1e_promotion_disable
  - ICPU
  - ivt_idle_state_table_update
  - irtl_2_usec
  - bxt_idle_state_table_update
  - sklh_idle_state_table_update
  - skx_idle_state_table_update
  - adl_idle_state_table_update
  - spr_idle_state_table_update
  - mwait_idle_state_table_update
  - mwait_idle_probe
  - mwait_idle_cpu_init
  - mwait_idle_init
  - mwait_pc10_supported
  source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
  types:
    enum:
    - enumerators:
      - name: C1E_PROMOTION_PRESERVE
      - name: C1E_PROMOTION_DISABLE
      - name: C1E_PROMOTION_ENABLE
      item_type: enum
      name: c1e_promotion
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    preproc_defs:
    - item_type: preproc_def
      name: MWAIT_IDLE_VERSION
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '"0.4.1"'
    - item_type: preproc_def
      name: PREFIX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '"mwait-idle: "'
    - item_type: preproc_def
      name: LAPIC_TIMER_ALWAYS_RELIABLE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: CPUIDLE_FLAG_DISABLED
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CPUIDLE_FLAG_IRQ_ENABLE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: CPUIDLE_FLAG_TLB_FLUSHED
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: CPUIDLE_FLAG_IBRS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
      type_or_value: '0x20000'
    structs:
    - fields:
      - name: '*state_table'
        type: struct cpuidle_state
      - name: auto_demotion_disable_flags
        type: unsigned long
      - name: byt_auto_demotion_disable_flag
        type: bool
      - name: c1e_promotion
        type: enum c1e_promotion
      item_type: struct
      name: idle_cpu
      pos:
        line_end: 108
        line_start: 98
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    - fields:
      - name: name[16]
        type: char
      - name: flags
        type: unsigned int
      - name: exit_latency
        type: unsigned int
      - name: target_residency
        type: unsigned int
      item_type: struct
      name: cpuidle_state
      pos:
        line_end: 117
        line_start: 112
        source_file: /src/xen/xen/arch/x86/cpu/mwait-idle.c
    typedefs: []
    union: []
- function_names:
  - hygon_get_topology
  - init_hygon
  source_file: /src/xen/xen/arch/x86/cpu/hygon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APICID_SOCKET_ID_BIT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/cpu/hygon.c
      type_or_value: '6'
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_shanghai
  source_file: /src/xen/xen/arch/x86/cpu/shanghai.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_vpmu_params
  - vpmu_lvtpc_update
  - vpmu_do_msr
  - choose_hwdom_vcpu
  - vpmu_do_interrupt
  - vpmu_allocate_context
  - vpmu_save_force
  - vpmu_save
  - vpmu_load
  - vpmu_arch_initialise
  - get_vpmu
  - put_vpmu
  - vpmu_initialise
  - vpmu_clear_last
  - vpmu_arch_destroy
  - vpmu_cleanup
  - vpmu_destroy
  - pvpmu_init
  - pvpmu_finish
  - vpmu_dump
  - do_xenpmu_op
  - cpu_callback
  - vpmu_init
  source_file: /src/xen/xen/arch/x86/cpu/vpmu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpuid4_cache_lookup
  - find_num_cache_leaves
  - init_intel_cacheinfo
  source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LVL_1_INST
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
      type_or_value: '1'
    - item_type: preproc_def
      name: LVL_1_DATA
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LVL_2
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LVL_3
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
      type_or_value: '4'
    - item_type: preproc_def
      name: LVL_TRACE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
      type_or_value: '5'
    structs:
    - fields:
      - name: descriptor
        type: unsigned char
      - name: cache_type
        type: char
      - name: size
        type: short
      item_type: struct
      name: _cache_table
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/xen/xen/arch/x86/cpu/intel_cacheinfo.c
    typedefs: []
    union: []
- function_names:
  - init_c3
  - init_centaur
  source_file: /src/xen/xen/arch/x86/cpu/centaur.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACE_PRESENT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: ACE_ENABLED
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: ACE_FCR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: "(1 << 28)\t"
    - item_type: preproc_def
      name: RNG_PRESENT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: RNG_ENABLED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: RNG_ENABLE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/cpu/centaur.c
      type_or_value: "(1 << 6)\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - rdmsr_amd_safe
  - wrmsr_amd_safe
  - wrmsr_amd
  - _probe_mask_msr
  - probe_masking_msrs
  - amd_ctxt_switch_masking
  - LAZY
  - amd_init_levelling
  - amd_set_cpuid_user_dis
  - cpu_has_amd_erratum
  - disable_c1_ramping
  - disable_c1e
  - amd_check_disable_c1e
  - check_syscfg_dram_mod_en
  - amd_get_topology
  - amd_parse_freq
  - amd_process_freq
  - PCI_ECS_ADDRESS
  - early_init_amd
  - amd_log_freq
  - set_legacy_ssbd
  - amd_init_ssbd
  - amd_setup_legacy_ssbd
  - core_set_legacy_ssbd
  - amd_set_legacy_ssbd
  - amd_init_spectral_chicken
  - detect_zen2_null_seg_behaviour
  - fam17_disable_c6
  - zenbleed_use_chickenbit
  - amd_init_de_cfg
  - amd_init_lfence_dispatch
  - amd_check_bp_cfg
  - init_amd
  - amd_check_erratum_1474
  source_file: /src/xen/xen/arch/x86/cpu/amd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AMD_FAM17H_MAX_SOCKETS
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/xen/xen/arch/x86/cpu/amd.c
      type_or_value: '2'
    structs:
    - fields:
      - name: lock
        type: spinlock_t
      - name: count
        type: unsigned int
      item_type: struct
      name: ssbd_ls_cfg
      pos:
        line_end: 710
        line_start: 707
        source_file: /src/xen/xen/arch/x86/cpu/amd.c
    typedefs: []
    union: []
- function_names:
  - update_mcu_opt_ctrl
  - set_in_mcu_opt_ctrl
  - update_pb_opt_ctrl
  - set_in_pb_opt_ctrl
  - check_memory_type_self_snoop_errata
  - _probe_mask_msr
  - probe_masking_msrs
  - intel_ctxt_switch_masking
  - LAZY
  - intel_init_levelling
  - intel_unlock_cpuid_leaves
  - early_init_intel
  - probe_c3_errata
  - probe_mwait_errata
  - Intel_errata_workarounds
  - num_cpu_cores
  - intel_log_freq
  - init_intel_perf
  - init_intel
  - intel_init_arat
  source_file: /src/xen/xen/arch/x86/cpu/intel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mcabanks_clear
  - mcabanks_set
  - mcabanks_test
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
  types:
    enum:
    - enumerators:
      - name: MCER_NOERROR
      - name: MCER_RESET
      - name: MCER_CONTINUE
      - name: MCER_RECOVERED
      item_type: enum
      name: mce_result
      pos:
        line_end: 135
        line_start: 128
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    preproc_defs:
    - item_type: preproc_def
      name: MCG_CAP_COUNT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x00000000000000ffULL
    - item_type: preproc_def
      name: MCG_CTL_P
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: (1ULL<<8)
    - item_type: preproc_def
      name: MCG_EXT_P
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '(1ULL<<9)  '
    - item_type: preproc_def
      name: MCG_CMCI_P
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '(1ULL<<10) '
    - item_type: preproc_def
      name: MCG_TES_P
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '(1ULL<<11) '
    - item_type: preproc_def
      name: MCG_EXT_CNT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '16         '
    - item_type: preproc_def
      name: MCG_SER_P
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '(1ULL<<24) '
    - item_type: preproc_def
      name: MCG_LMCE_P
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '(1ULL<<27) '
    - item_type: preproc_def
      name: MCG_STATUS_RIPV
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0000000000000001ULL
    - item_type: preproc_def
      name: MCG_STATUS_EIPV
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0000000000000002ULL
    - item_type: preproc_def
      name: MCG_STATUS_MCIP
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0000000000000004ULL
    - item_type: preproc_def
      name: MCG_STATUS_LMCE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '0x0000000000000008ULL  '
    - item_type: preproc_def
      name: MCG_EXT_CTL_LMCE_EN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: (1ULL<<0)
    - item_type: preproc_def
      name: MCi_STATUS_MCA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x000000000000ffffULL
    - item_type: preproc_def
      name: MCi_STATUS_MSEC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x00000000ffff0000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTHER
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x01ffffff00000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_AR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '0x0080000000000000ULL  '
    - item_type: preproc_def
      name: MCi_STATUS_S
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: '0x0100000000000000ULL  '
    - item_type: preproc_def
      name: MCi_STATUS_PCC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0200000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_ADDRV
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0400000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_MISCV
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0800000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_EN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x1000000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_UC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x2000000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OVER
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x4000000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_VAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x8000000000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTHER_RESERVED1
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x00001fff00000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTEHR_UC_ECC
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0000200000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTHER_C_ECC
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0000400000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTHER_ECC_SYNDROME
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x007f800000000000ULL
    - item_type: preproc_def
      name: MCi_STATUS_OTHER_RESERVED2
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: 0x0180000000000000ULL
    - item_type: preproc_def
      name: K8_HWCR_MCi_STATUS_WREN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: (1ULL << 18)
    - item_type: preproc_def
      name: MCi_MISC_ADDRMOD_MASK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: (0x7UL << 6)
    - item_type: preproc_def
      name: MCi_MISC_PHYSMOD
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
      type_or_value: (0x2UL << 6)
    structs:
    - fields:
      - name: num
        type: int
      - name: '*bank_map'
        type: unsigned long
      item_type: struct
      name: mca_banks
      pos:
        line_end: 92
        line_start: 88
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    - fields:
      - name: bank
        type: int
      - name: '*mig'
        type: struct mcinfo_global
      - name: '*mib'
        type: struct mcinfo_bank
      - name: '*mi'
        type: struct mc_info
      - name: '*regs'
        type: struct cpu_user_regs
      item_type: struct
      name: mca_binfo
      pos:
        line_end: 126
        line_start: 120
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    - fields:
      - name: (*owned_error)(uint64_t status)
        type: bool
      - name: "(*recovery_handler)(struct mca_binfo *binfo,\n                    enum
          mce_result *result, const struct cpu_user_regs *regs)"
        type: void
      item_type: struct
      name: mca_error_handler
      pos:
        line_end: 147
        line_start: 137
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/x86_mca.h
    typedefs: []
    union: []
- function_names:
  - mci_action_add_pageoffline
  - mc_memerr_dhandler
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MCTE_CLASS
  - MCTE_SET_CLASS
  - MCTE_STATE
  - MCTE_TRANSITION_STATE
  - COOKIE2MCTE
  - MCTE2COOKIE
  - mctelem_xchg_head
  - mctelem_defer
  - mctelem_process_deferred
  - mctelem_has_deferred
  - mctelem_has_deferred_lmce
  - mctelem_free
  - mctelem_hold
  - mctelem_processing_hold
  - mctelem_processing_release
  - mctelem_init
  - mctelem_reserve
  - mctelem_dataptr
  - mctelem_dismiss
  - mctelem_commit
  - mctelem_append_processing
  - mctelem_consume_oldest_begin
  - mctelem_consume_oldest_end
  - mctelem_ack
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCTE_F_CLASS_URGENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: '0x0001U '
    - item_type: preproc_def
      name: MCTE_F_CLASS_NONURGENT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: '0x0002U '
    - item_type: preproc_def
      name: MCTE_F_STATE_FREE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: "0x0010U\t"
    - item_type: preproc_def
      name: MCTE_F_STATE_UNCOMMITTED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: "0x0020U\t"
    - item_type: preproc_def
      name: MCTE_F_STATE_COMMITTED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: "0x0040U\t"
    - item_type: preproc_def
      name: MCTE_F_STATE_PROCESSING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: "0x0080U\t"
    - item_type: preproc_def
      name: MCTE_F_MASK_CLASS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: (MCTE_F_CLASS_URGENT | MCTE_F_CLASS_NONURGENT)
    - item_type: preproc_def
      name: MCTE_F_MASK_STATE
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: "(MCTE_F_STATE_FREE | \\\n\t\t\t\tMCTE_F_STATE_UNCOMMITTED |
        \\\n\t\t\t\tMCTE_F_STATE_COMMITTED | \\\n\t\t\t\tMCTE_F_STATE_PROCESSING)"
    - item_type: preproc_def
      name: MC_URGENT_NENT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: '10'
    - item_type: preproc_def
      name: MC_NONURGENT_NENT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: '20'
    - item_type: preproc_def
      name: MC_NENT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
      type_or_value: (MC_URGENT_NENT + MC_NONURGENT_NENT)
    structs:
    - fields:
      - name: '*mcte_next'
        type: struct mctelem_ent
      - name: '*mcte_prev'
        type: struct mctelem_ent
      - name: mcte_flags
        type: uint32_t
      - name: mcte_refcnt
        type: uint32_t
      - name: '*mcte_data'
        type: void
      item_type: struct
      name: mctelem_ent
      pos:
        line_end: 36
        line_start: 30
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    - fields:
      - name: '*mctc_committed[MC_NCLASSES]'
        type: struct mctelem_ent
      - name: '*mctc_processing_head[MC_NCLASSES]'
        type: struct mctelem_ent
      - name: '*mctc_processing_tail[MC_NCLASSES]'
        type: struct mctelem_ent
      - name: '*mctc_elems'
        type: struct mctelem_ent
      item_type: struct
      name: mc_telem_ctl
      pos:
        line_end: 103
        line_start: 70
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    - fields:
      - name: '*pending'
        type: struct mctelem_ent
      item_type: struct
      name: mc_telem_cpu_ctl
      pos:
        line_end: 125
        line_start: 105
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.c
    typedefs: []
    union: []
- function_names:
  - vmce_init_vcpu
  - vmce_restore_vcpu
  - bank_mce_rdmsr
  - vmce_rdmsr
  - bank_mce_wrmsr
  - vmce_wrmsr
  - vmce_save_vcpu_ctxt
  - vmce_load_vcpu_ctxt
  - inject_vmce
  - for_each_vcpu
  - vcpu_fill_mc_msrs
  - fill_vmsr_data
  - unmmap_broken_page
  - vmce_enable_mca_cap
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INTEL_GUEST_MCG_CAP
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
      type_or_value: "(MCG_SER_P |\t\\\n                             MCG_TES_P |\t\\\n
        \                            MCG_CMCI_P |\t\\\n                             GUEST_MC_BANK_NUM)"
    - item_type: preproc_def
      name: AMD_GUEST_MCG_CAP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
      type_or_value: GUEST_MC_BANK_NUM
    - item_type: preproc_def
      name: P2M_UNMAP_TYPES
      pos:
        line_end: 506
        line_start: 502
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.c
      type_or_value: "(p2m_to_mask(p2m_ram_rw) \\\n                                |
        p2m_to_mask(p2m_ram_logdirty) \\\n                                | p2m_to_mask(p2m_ram_ro)
        \      \\\n                                | p2m_to_mask(p2m_mmio_direct))"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MC_ADDR_PHYSICAL
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MC_ADDR_VIRTUAL
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mcaction.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mce_panic_check
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_MCE_BARRIER
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/barrier.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: atomic_t
      - name: ingen
        type: atomic_t
      - name: outgen
        type: atomic_t
      item_type: struct
      name: mce_softirq_barrier
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/barrier.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - init_nonfatal_mce_checker
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/non-fatal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mce_printk
  - mca_rdmsr
  - mca_wrmsr
  - mce_vendor_bank_msr
  - mce_bank_msr
  - vmce_has_lmce
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
  types:
    enum:
    - enumerators:
      - name: mcheck_unset
        value: '-1'
      - name: mcheck_amd_famXX
      - name: mcheck_intel
      - name: mcheck_none
      - name: mcheck_amd_k8
      - name: mcheck_hygon
      item_type: enum
      name: mcheck_type
      pos:
        line_end: 40
        line_start: 33
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    - enumerators:
      - name: MCA_POLLER
      - name: MCA_CMCI_HANDLER
      - name: MCA_MCE_SCAN
      - name: MCA_RESET
      item_type: enum
      name: mca_source
      pos:
        line_end: 107
        line_start: 102
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    preproc_defs:
    - item_type: preproc_def
      name: MCE_QUIET
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MCE_VERBOSE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MCE_CRITICAL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
      type_or_value: '2'
    structs:
    - fields:
      - name: errcnt
        type: uint32_t
      - name: ripv
        type: int
      - name: eipv
        type: int
      - name: uc
        type: bool
      - name: pcc
        type: bool
      - name: lmce
        type: bool
      - name: recoverable
        type: bool
      item_type: struct
      name: mca_summary
      pos:
        line_end: 117
        line_start: 109
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    - fields:
      - name: (*handler)(const struct cpu_user_regs *regs)
        type: void
      - name: (*check_addr)(uint64_t status, uint64_t misc, int addr_type)
        type: bool
      - name: (*recoverable_scan)(uint64_t status)
        type: bool
      - name: (*need_clearbank_scan)(enum mca_source who, u64 status)
        type: bool
      - name: "*(*info_collect)\n        (struct mc_info *mi, uint16_t bank, uint64_t
          status)"
        type: struct mcinfo_extended
      item_type: struct
      name: mce_callbacks
      pos:
        line_end: 211
        line_start: 178
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    - fields:
      - name: status
        type: uint64_t
      - name: misc
        type: uint64_t
      - name: addr
        type: uint64_t
      - name: mcgstatus
        type: uint64_t
      - name: ip
        type: uint64_t
      - name: tsc
        type: uint64_t
      - name: time
        type: uint64_t
      - name: cpuvendor
        type: uint8_t
      - name: inject_flags
        type: uint8_t
      - name: pad
        type: uint16_t
      - name: cpuid
        type: uint32_t
      - name: cs
        type: uint8_t
      - name: bank
        type: uint8_t
      - name: cpu
        type: uint8_t
      - name: finished
        type: uint8_t
      - name: extcpu
        type: uint32_t
      - name: socketid
        type: uint32_t
      - name: apicid
        type: uint32_t
      - name: mcgcap
        type: uint64_t
      item_type: struct
      name: mce
      pos:
        line_end: 243
        line_start: 223
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.h
    typedefs: []
    union: []
- function_names:
  - SEG_PL
  - x86_mcerr
  - x86_mcerr
  - mce_set_verbosity
  - unexpected_machine_check
  - do_machine_check
  - mcabanks_alloc
  - mcabanks_free
  - mcabank_clear
  - mca_init_bank
  - mca_init_global
  - mcheck_mca_logout
  - mce_spin_lock
  - mce_spin_unlock
  - mce_urgent_action
  - mcheck_cmn_handler
  - mcheck_mca_clearbanks
  - mce_available
  - mce_firstbank
  - show_mca_info
  - set_poll_bankmask
  - mca_cap_init
  - cpu_bank_free
  - cpu_bank_alloc
  - cpu_callback
  - mcheck_init
  - mcinfo_clear
  - x86_mcinfo_nentries
  - x86_mcinfo_reserve
  - xen2linux_vendor
  - x86_mcinfo_apei_save
  - x86_mcinfo_dump
  - do_mc_get_cpu_info
  - x86_mc_get_cpu_info
  - intpose_init
  - intpose_lookup
  - intpose_add
  - intpose_inval
  - IS_MCA_BANKREG
  - __maybe_unused::x86_mc_msrinject_verify
  - __maybe_unused::x86_mc_hwcr_wren
  - __maybe_unused::x86_mc_hwcr_wren_restore
  - x86_mc_msrinject
  - x86_mc_mceinject
  - ID2COOKIE
  - COOKIE2ID
  - compat_handle_is_null
  - copy_to_compat
  - do_mca
  - x86_mcinfo_dump_panic
  - mc_panic_dump
  - mc_panic
  - mce_action
  - mce_delayed_action
  - mce_softirq
  - mce_handler_init
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _MC_MSRINJ_F_REQ_HWCR_WREN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: INTPOSE_NENT
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: '50'
    - item_type: preproc_def
      name: xen_mcinfo_msr
      pos:
        line_end: 1286
        line_start: 1285
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_msr
    - item_type: preproc_def
      name: CHECK_mcinfo_msr
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: struct mcinfo_msr
    - item_type: preproc_def
      name: xen_mcinfo_common
      pos:
        line_end: 1292
        line_start: 1291
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_common
    - item_type: preproc_def
      name: CHECK_mcinfo_common
      pos:
        line_end: 1296
        line_start: 1295
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: struct mcinfo_common
    - item_type: preproc_def
      name: CHECK_mc_fetch
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: struct mc_fetch
    - item_type: preproc_def
      name: CHECK_mc_physcpuinfo
      pos:
        line_end: 1303
        line_start: 1302
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: struct mc_physcpuinfo
    - item_type: preproc_def
      name: xen_ctl_bitmap
      pos:
        line_end: 1305
        line_start: 1304
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: xenctl_bitmap
    - item_type: preproc_def
      name: xen_mc_info
      pos:
        line_end: 1312
        line_start: 1311
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mc_info
    - item_type: preproc_def
      name: xen_mcinfo_global
      pos:
        line_end: 1316
        line_start: 1315
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_global
    - item_type: preproc_def
      name: xen_mcinfo_bank
      pos:
        line_end: 1320
        line_start: 1319
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_bank
    - item_type: preproc_def
      name: xen_mcinfo_extended
      pos:
        line_end: 1324
        line_start: 1323
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_extended
    - item_type: preproc_def
      name: xen_mcinfo_recovery
      pos:
        line_end: 1328
        line_start: 1327
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: mcinfo_recovery
    - item_type: preproc_def
      name: xen_cpu_offline_action
      pos:
        line_end: 1329
        line_start: 1328
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: cpu_offline_action
    - item_type: preproc_def
      name: xen_page_offline_action
      pos:
        line_end: 1330
        line_start: 1329
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
      type_or_value: page_offline_action
    structs:
    - fields:
      - name: cpu_nr
        type: unsigned int
      - name: msr
        type: uint64_t
      - name: val
        type: uint64_t
      item_type: struct
      name: intpose_ent
      pos:
        line_end: 1058
        line_start: 1054
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    typedefs: []
    union:
    - fields:
      - name: '*nat'
        type: struct xen_mc_fetch
      item_type: union
      name: mc_fetch
      pos:
        line_end: 1351
        line_start: 1346
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
    - fields:
      - name: '*nat'
        type: struct xen_mc_physcpuinfo
      item_type: union
      name: mc_physcpuinfo
      pos:
        line_end: 1357
        line_start: 1352
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce.c
- function_names:
  - cper_mce_record
  - apei_write_mce
  - apei_read_mce
  - apei_check_mce
  - apei_clear_mce
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPER_CREATOR_MCE
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
      type_or_value: "UUID_LE(0x75a574e3U, 0x5052, 0x4b29, 0x8a, 0x8e, 0xbe, 0x2c,\t\\\n\t\t0x64,
        0x90, 0xb8, 0x9d)"
    - item_type: preproc_def
      name: CPER_SECTION_TYPE_MCE
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce-apei.c
      type_or_value: "UUID_LE(0xfe08ffbeU, 0x95e4, 0x4be7, 0xbc, 0x73, 0x40, 0x96,\t\\\n\t\t0x04,
        0x4a, 0x38, 0xfc)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - mce_amd_checkregs
  - mce_amd_work_fn
  - amd_nonfatal_mcheck_init
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCE_PERIOD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
      type_or_value: MILLISECS(10000)
    - item_type: preproc_def
      name: MCE_MIN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
      type_or_value: MILLISECS(2000)
    - item_type: preproc_def
      name: MCE_MAX
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/amd_nonfatal.c
      type_or_value: MILLISECS(30000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - intel_thermal_interrupt
  - intel_thermal_supported
  - mcheck_intel_therm_init
  - intel_init_thermal
  - intel_get_extended_msr
  - intel_get_extended_msrs
  - intel_check_mce_type
  - intel_memerr_dhandler
  - intel_srar_check
  - intel_checkaddr
  - intel_srar_dhandler
  - intel_srao_check
  - intel_srao_dhandler
  - intel_default_check
  - intel_default_mce_dhandler
  - intel_default_mce_uhandler
  - intel_need_clearbank_scan
  - intel_recoverable_scan
  - do_cmci_discover
  - cmci_discover
  - mce_set_owner
  - __cpu_mcheck_distribute_cmci
  - cpu_mcheck_distribute_cmci
  - clear_cmci
  - cpu_mcheck_disable
  - cmci_interrupt
  - intel_init_cmci
  - mce_is_broadcast
  - intel_enable_lmce
  - intel_init_mca
  - CAP
  - intel_mce_post_reset
  - intel_init_mce
  - intel_init_ppin
  - cpu_mcabank_free
  - cpu_mcabank_alloc
  - cpu_callback
  - intel_mcheck_init
  - vmce_intel_wrmsr
  - vmce_intel_rdmsr
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
  types:
    enum:
    - enumerators:
      - name: intel_mce_invalid
      - name: intel_mce_ucr_srao
      - name: intel_mce_corrected
      - name: intel_mce_ucr_ucna
      - name: intel_mce_fatal
      - name: intel_mce_ucr_srar
      item_type: enum
      name: intel_mce_type
      pos:
        line_end: 232
        line_start: 224
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
    preproc_defs:
    - item_type: preproc_def
      name: INTEL_MCCOD_MASK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: INTEL_SRAO_MEM_SCRUB
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: 0xC0 ... 0xCF
    - item_type: preproc_def
      name: INTEL_SRAO_L3_EWB
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: '0x17A'
    - item_type: preproc_def
      name: INTEL_SRAR_DATA_LOAD
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: '0x134'
    - item_type: preproc_def
      name: INTEL_SRAR_INSTR_FETCH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: '0x150'
    - item_type: preproc_def
      name: MCE_RING
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_intel.c
      type_or_value: '0x1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.h
  types:
    enum:
    - enumerators:
      - name: MC_URGENT
      - name: MC_NCLASSES
      - name: MC_NONURGENT
      item_type: enum
      name: mctelem_class
      pos:
        line_end: 60
        line_start: 56
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*mctelem_cookie_t'
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mctelem.h
      type: mctelem_ent
    union: []
- function_names:
  - mce_checkregs
  - mce_work_fn
  - intel_nonfatal_mcheck_init
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCE_PERIOD
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
      type_or_value: MILLISECS(8000)
    - item_type: preproc_def
      name: MCE_PERIOD_MIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
      type_or_value: MILLISECS(2000)
    - item_type: preproc_def
      name: MCE_PERIOD_MAX
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/intel-nonfatal.c
      type_or_value: MILLISECS(16000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - mce_barrier_init
  - mce_barrier_dec
  - mce_barrier_enter
  - mce_barrier_exit
  - mce_barrier
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/barrier.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mc_ec2type
  - mc_amd_recoverable_scan
  - mc_amd_addrcheck
  - mcequirk_lookup_amd_quirkdata
  - mcequirk_amd_apply
  - amd_f10_handler
  - amd_need_clearbank_scan
  - vmce_amd_wrmsr
  - vmce_amd_rdmsr
  - amd_mcheck_init
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
  types:
    enum:
    - enumerators:
      - name: MCEQUIRK_NONE
      - name: MCEQUIRK_F10_GART
      - name: MCEQUIRK_K8_GART
      item_type: enum
      name: mcequirk_amd_flags
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    - enumerators:
      - name: MC_EC_TLB_TYPE
        value: '0x0010'
      - name: MC_EC_MEM_TYPE
        value: '0x0100'
      - name: MC_EC_BUS_TYPE
        value: '0x0800'
      item_type: enum
      name: mc_ec_type
      pos:
        line_end: 87
        line_start: 83
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    preproc_defs:
    - item_type: preproc_def
      name: ANY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
      type_or_value: (~0U)
    structs:
    - fields:
      - name: cpu_family
        type: unsigned int
      - name: cpu_model
        type: unsigned int
      - name: cpu_stepping
        type: unsigned int
      - name: quirk
        type: enum mcequirk_amd_flags
      item_type: struct
      name: mce_quirkdata
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/mce_amd.c
    typedefs: []
    union: []
- function_names:
  - dom0_vmce_enabled
  source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VMCE_INJECT_BROADCAST
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/cpu/mcheck/vmce.h
      type_or_value: (-1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/mtrr/mtrr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MTRR_CHANGE_MASK_FIXED
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/mtrr.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: MTRR_CHANGE_MASK_VARIABLE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/mtrr.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: MTRR_CHANGE_MASK_DEFTYPE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/mtrr.h
      type_or_value: '0x04'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_mtrr_var_range
  - get_fixed_ranges
  - is_var_mtrr_overlapped
  - mtrr_save_fixed_ranges
  - get_mtrr_state
  - mtrr_attrib_to_str
  - print_fixed_last
  - update_fixed_last
  - print_fixed
  - print_mtrr_state
  - mtrr_state_warn
  - mtrr_wrmsr
  - set_fixed_range
  - mtrr_get_free_region
  - mtrr_get
  - set_fixed_ranges
  - set_mtrr_var_ranges
  - set_mtrr_state
  - prepare_set
  - post_set
  - mtrr_set_all
  - mtrr_set
  - mtrr_validate_add_page
  - mtrr_have_wrcomb
  source_file: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base_msr
        type: uint32_t
      - name: ranges
        type: unsigned int
      item_type: struct
      name: fixed_range_block
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/generic.c
    typedefs: []
    union: []
- function_names:
  - DEFINE_MUTEX
  - mutex_lock
  - mutex_unlock
  - dump_stack
  - get_cpu
  - put_cpu
  - mtrr_attrib_to_str
  - set_num_var_ranges
  - init_table
  - ipi_handler
  - types_compatible
  - set_mtrr
  - mtrr_add_page
  - mtrr_check
  - mtrr_add
  - mtrr_del_page
  - mtrr_del
  - mtrr_bp_init
  - mtrr_ap_init
  - mtrr_save_state
  - mtrr_aps_sync_begin
  - mtrr_aps_sync_end
  - mtrr_bp_restore
  - mtrr_init_finialize
  source_file: /src/xen/xen/arch/x86/cpu/mtrr/main.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: count
        type: atomic_t
      - name: gate
        type: atomic_t
      - name: smp_base
        type: unsigned long
      - name: smp_size
        type: unsigned long
      - name: smp_reg
        type: unsigned int
      - name: smp_type
        type: mtrr_type
      item_type: struct
      name: set_mtrr_data
      pos:
        line_end: 109
        line_start: 102
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    - fields:
      - name: ltype
        type: mtrr_type
      - name: lbase
        type: unsigned long
      - name: lsize
        type: unsigned long
      item_type: struct
      name: mtrr_value
      pos:
        line_end: 546
        line_start: 542
        source_file: /src/xen/xen/arch/x86/cpu/mtrr/main.c
    typedefs: []
    union: []
- function_names:
  - microcode_set_module
  - parse_ucode
  - ucode_parse_dup
  - ucode_parse
  - ucode_load
  - is_cpu_primary
  - wait_for_condition
  - wait_cpu_callin
  - wait_cpu_callout
  - wait_for_state
  - set_state
  - secondary_nmi_work
  - primary_thread_work
  - microcode_nmi_callback
  - secondary_thread_fn
  - primary_thread_fn
  - control_thread_fn
  - do_microcode_update
  - __maybe_unused::ucode_update_hcall_cont
  - ucode_update_hcall
  - microcode_update_one
  - microcode_init_cache
  - early_microcode_load
  - early_microcode_init
  source_file: /src/xen/xen/arch/x86/cpu/microcode/core.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MICROCODE_CALLIN_TIMEOUT_US
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/cpu/microcode/core.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: MICROCODE_UPDATE_TIMEOUT_US
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/cpu/microcode/core.c
      type_or_value: '1000000'
    structs:
    - fields:
      - name: flags
        type: unsigned int
      - name: '*patch'
        type: struct microcode_patch
      item_type: struct
      name: patch_with_flags
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/xen/xen/arch/x86/cpu/microcode/core.c
    - fields:
      - name: flags
        type: unsigned int
      - name: len
        type: unsigned int
      - name: buffer[]
        type: char
      item_type: struct
      name: ucode_buf
      pos:
        line_end: 486
        line_start: 482
        source_file: /src/xen/xen/arch/x86/cpu/microcode/core.c
    typedefs: []
    union: []
- function_names:
  - MICROCODE_OP
  - ucode_probe_amd
  - amd_check_entrysign
  - ucode_probe_intel
  source_file: /src/xen/xen/arch/x86/cpu/microcode/private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OLD_UCODE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/cpu/microcode/private.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: SAME_UCODE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/cpu/microcode/private.h
      type_or_value: (0)
    - item_type: preproc_def
      name: NEW_UCODE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/cpu/microcode/private.h
      type_or_value: (1)
    structs:
    - fields:
      - name: "*(*parse)(\n        const void *buf, size_t size, bool make_copy)"
        type: struct microcode_patch
      - name: (*collect_cpu_info)(void)
        type: void
      - name: (*load)(const struct microcode_patch *patch, unsigned int flags)
        type: int
      - name: "(*compare)(const struct microcode_patch *old,\n                   const
          struct microcode_patch *new)"
        type: int
      - name: '*cpio_path'
        type: char
      item_type: struct
      name: microcode_ops
      pos:
        line_end: 69
        line_start: 13
        source_file: /src/xen/xen/arch/x86/cpu/microcode/private.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/cpu/microcode/amd-patch-digests.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pr_debug
  - cmp_patch_id
  - check_digest
  - collect_cpu_info
  - verify_patch_size
  - check_final_patch_levels
  - compare_revisions
  - microcode_fits_cpu
  - amd_compare
  - check_min_rev
  - amd_ucode_load
  - scan_equiv_cpu_table
  - amd_ucode_parse
  - ucode_probe_amd
  - test_digests_sorted
  - amd_check_entrysign
  source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UCODE_MAGIC
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '0x00414d44'
    - item_type: preproc_def
      name: UCODE_EQUIV_TYPE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: UCODE_UCODE_TYPE
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: F1XH_MPB_MAX_SIZE
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: F14H_MPB_MAX_SIZE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '1824'
    - item_type: preproc_def
      name: F15H_MPB_MAX_SIZE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: F16H_MPB_MAX_SIZE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '3458'
    - item_type: preproc_def
      name: F17H_MPB_MAX_SIZE
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '3200'
    - item_type: preproc_def
      name: F19H_MPB_MAX_SIZE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '5568'
    - item_type: preproc_def
      name: F1AH_MPB_MAX_SIZE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
      type_or_value: '15296'
    structs:
    - fields:
      - name: installed_cpu
        type: uint32_t
      - name: fixed_errata_mask
        type: uint32_t
      - name: fixed_errata_compare
        type: uint32_t
      - name: equiv_cpu
        type: uint16_t
      - name: reserved
        type: uint16_t
      item_type: struct
      name: equiv_cpu_entry
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    - fields:
      - name: year
        type: uint16_t
      - name: day
        type: uint8_t
      - name: month
        type: uint8_t
      - name: patch_id
        type: uint32_t
      - name: mc_patch_data_id[2]
        type: uint8_t
      - name: mc_patch_data_len
        type: uint8_t
      - name: init_flag
        type: uint8_t
      - name: nb_dev_id
        type: uint32_t
      - name: sb_dev_id
        type: uint32_t
      - name: processor_rev_id
        type: uint16_t
      - name: nb_rev_id
        type: uint8_t
      - name: sb_rev_id
        type: uint8_t
      - name: bios_api_rev
        type: uint8_t
      - name: reserved1[3]
        type: uint8_t
      item_type: struct
      name: microcode_patch
      pos:
        line_end: 55
        line_start: 36
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    - fields:
      - name: type
        type: uint32_t
      - name: len
        type: uint32_t
      - name: eq[]
        type: struct equiv_cpu_entry
      item_type: struct
      name: container_equiv_table
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    - fields:
      - name: type
        type: uint32_t
      - name: len
        type: uint32_t
      - name: patch[]
        type: struct microcode_patch
      item_type: struct
      name: container_microcode
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    - fields:
      - name: sig
        type: uint32_t
      - name: id
        type: uint16_t
      item_type: struct
      name: __read_mostly
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    - fields:
      - name: patch_id
        type: uint32_t
      - name: digest[SHA2_256_DIGEST_SIZE]
        type: uint8_t
      item_type: struct
      name: patch_digest
      pos:
        line_end: 100
        line_start: 97
        source_file: /src/xen/xen/arch/x86/cpu/microcode/amd.c
    typedefs: []
    union: []
- function_names:
  - pr_debug
  - get_datasize
  - get_totalsize
  - get_ext_sigtable
  - signature_matches
  - collect_cpu_info
  - microcode_sanity_check
  - compare_revisions
  - microcode_fits_cpu
  - intel_compare
  - intel_ucode_load
  - intel_ucode_parse
  - can_load_microcode
  - ucode_probe_intel
  source_file: /src/xen/xen/arch/x86/cpu/microcode/intel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PPRO_UCODE_DATASIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/x86/cpu/microcode/intel.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: MC_HEADER_SIZE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/cpu/microcode/intel.c
      type_or_value: offsetof(struct microcode_patch, data)
    structs:
    - fields:
      - name: hdrver
        type: uint32_t
      - name: rev
        type: int32_t
      - name: year
        type: uint16_t
      - name: day
        type: uint8_t
      - name: month
        type: uint8_t
      - name: sig
        type: uint32_t
      - name: cksum
        type: uint32_t
      - name: ldrver
        type: uint32_t
      - name: pf
        type: uint32_t
      - name: datasize
        type: uint32_t
      - name: totalsize
        type: uint32_t
      - name: reserved[3]
        type: uint32_t
      - name: data[]
        type: uint8_t
      item_type: struct
      name: microcode_patch
      pos:
        line_end: 61
        line_start: 37
        source_file: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    - fields:
      - name: count
        type: uint32_t
      - name: cksum
        type: uint32_t
      - name: rsvd[3]
        type: uint32_t
      - name: sigs[]
        type: "struct {\n        uint32_t sig;\n        uint32_t pf;\n        uint32_t
          cksum;\n    }"
      item_type: struct
      name: extended_sigtable
      pos:
        line_end: 71
        line_start: 62
        source_file: /src/xen/xen/arch/x86/cpu/microcode/intel.c
    typedefs: []
    union: []
- function_names:
  - superpage_aligned
  - lock_page_alloc
  - unlock_page_alloc
  - p2m_pod_cache_add
  - p2m_pod_cache_get
  - p2m_pod_set_cache_target
  - p2m_pod_set_mem_target
  - p2m_pod_get_mem_target
  - p2m_pod_empty_cache
  - p2m_pod_offline_or_broken_hit
  - p2m_pod_offline_or_broken_replace
  - pod_unlock_and_flush
  - decrease_reservation
  - p2m_pod_decrease_reservation
  - p2m_pod_dump_data
  - p2m_pod_zero_check_superpage
  - p2m_pod_zero_check
  - p2m_pod_emergency_sweep
  - pod_eager_reclaim
  - pod_eager_record
  - p2m_pod_demand_populate
  - mark_populate_on_demand
  - guest_physmap_mark_populate_on_demand
  - p2m_pod_init
  - p2m_pod_active
  source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POD_SWEEP_LIMIT
      pos:
        line_end: 892
        line_start: 891
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: POD_SWEEP_STRIDE
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
      type_or_value: '16'
    structs:
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: t
      pos:
        line_end: 852
        line_start: 849
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: t
      pos:
        line_end: 1027
        line_start: 1024
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: t
      pos:
        line_end: 1256
        line_start: 1253
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
    - fields:
      - name: gfn
        type: uint64_t
      - name: d
        type: uint32_t
      item_type: struct
      name: t
      pos:
        line_end: 1302
        line_start: 1299
        source_file: /src/xen/xen/arch/x86/mm/p2m-pod.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/guest_walk_4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/guest_walk_4.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_nestedp2m_init
  - p2m_init_nestedp2m
  - p2m_teardown_nestedp2m
  source_file: /src/xen/xen/arch/x86/mm/nested.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mm_lock_init
  - mm_locked_by_me
  - _get_lock_level
  - _lock_level
  - _check_lock_level
  - _set_lock_level
  - _mm_lock
  - _mm_enforce_order_lock_pre
  - _mm_enforce_order_lock_post
  - mm_rwlock_init
  - mm_write_locked_by_me
  - _mm_write_lock
  - mm_write_unlock
  - _mm_read_lock
  - mm_read_unlock
  - declare_mm_lock
  - declare_mm_rwlock
  - mm_lock
  - mm_lock_recursive
  - mm_write_lock
  - mm_read_lock
  - declare_mm_order_constraint
  - mm_unlock
  - mm_enforce_order_unlock
  - nestedp2m_lock
  - nestedp2m_unlock
  - page_sharing_mm_pre_lock
  - page_sharing_mm_post_lock
  - page_sharing_mm_unlock
  - altp2m_list_lock
  - altp2m_list_unlock
  - p2m_lock
  - p2m_unlock
  - gfn_lock
  - gfn_unlock
  - p2m_read_lock
  - p2m_read_unlock
  - p2m_locked_by_me
  - gfn_locked_by_me
  - gfn_lock_if
  - pod_lock
  - pod_unlock
  - pod_locked_by_me
  - page_alloc_mm_pre_lock
  - page_alloc_mm_post_lock
  - page_alloc_mm_unlock
  - paging_lock
  - paging_lock_recursive
  - paging_unlock
  - paging_locked_by_me
  source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MM_LOCK_ORDER_MAX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_nestedp2m
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_p2m
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_per_page_sharing
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_altp2mlist
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_altp2m
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '40'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_pod
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '48'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_page_alloc
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '56'
    - item_type: preproc_def
      name: MM_LOCK_ORDER_paging
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/x86/mm/mm-locks.h
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - RMAP_USES_HASHTAB
  - _free_pg_shared_info
  - audit_add_list
  - page_sharing_dispose
  - audit_add_list
  - page_sharing_dispose
  - _page_lock
  - _page_unlock
  - mem_sharing_page_lock
  - mem_sharing_page_unlock
  - get_next_handle
  - rmap_init
  - HASH
  - rmap_list_to_hash_table
  - rmap_hash_table_to_list
  - list_for_each_safe
  - rmap_count
  - rmap_del
  - rmap_add
  - rmap_retrieve
  - list_for_each
  - rmap_seed_iterator
  - rmap_iterate
  - mem_sharing_gfn_alloc
  - mem_sharing_gfn_destroy
  - get_two_gfns
  - assign_pointers
  - put_two_gfns
  - mem_sharing_lookup
  - audit
  - mem_sharing_notify_enomem
  - mem_sharing_get_nr_saved_mfns
  - mem_sharing_get_nr_shared_mfns
  - page_make_sharable
  - page_make_private
  - __grab_shared_page
  - debug_mfn
  - debug_gfn
  - debug_gref
  - nominate_page
  - share_pages
  - add_to_physmap
  - __mem_sharing_unshare_page
  - relinquish_shared_pages
  - range_share
  - mem_sharing_control
  - mem_sharing_fork_page
  - bring_up_vcpus
  - copy_vcpu_nonreg_state
  - copy_guest_area
  - copy_vpmu
  - copy_vcpu_settings
  - fork_hap_allocation
  - copy_tsc
  - copy_special_pages
  - copy_settings
  - fork
  - mem_sharing_fork_reset
  - mem_sharing_memop
  - mem_sharing_domctl
  - arch_dump_shared_mem_info
  source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RMAP_HASHTAB_ORDER
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RMAP_HASHTAB_SIZE
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
      type_or_value: ((PAGE_SIZE << RMAP_HASHTAB_ORDER) / sizeof(struct list_head))
    - item_type: preproc_def
      name: RMAP_HEAVY_SHARED_PAGE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
      type_or_value: RMAP_HASHTAB_SIZE
    - item_type: preproc_def
      name: RMAP_LIGHT_SHARED_PAGE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
      type_or_value: (RMAP_HEAVY_SHARED_PAGE >> 2)
    structs:
    - fields:
      - name: mm_unlock_level
        type: int
      - name: recurse_count
        type: unsigned short
      item_type: struct
      name: pg_lock_data
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
    - fields:
      - name: gfn
        type: unsigned long
      - name: domain
        type: domid_t
      - name: list
        type: struct list_head
      item_type: struct
      name: gfn_info
      pos:
        line_end: 201
        line_start: 196
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
    - fields:
      - name: '*curr'
        type: struct list_head
      - name: '*next'
        type: struct list_head
      - name: bucket
        type: unsigned int
      item_type: struct
      name: rmap_iterator
      pos:
        line_end: 343
        line_start: 339
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
    - fields:
      - name: '*first_domain'
        type: struct domain
      - name: first_gfn
        type: gfn_t
      item_type: struct
      name: two_gfns
      pos:
        line_end: 420
        line_start: 417
        source_file: /src/xen/xen/arch/x86/mm/mem_sharing.c
    typedefs: []
    union: []
- function_names:
  - p2m_initialise
  - p2m_init_one
  - p2m_free_one
  - p2m_init_hostp2m
  - p2m_teardown_hostp2m
  - p2m_init
  - p2m_teardown
  - p2m_final_teardown
  - arch_acquire_resource_check
  source_file: /src/xen/xen/arch/x86/mm/p2m-basic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - p2m_init_logdirty
  - p2m_free_logdirty
  - p2m_is_logdirty_range
  - change_entry_type_global
  - p2m_change_entry_type_global
  - _memory_type_changed
  - p2m_memory_type_changed
  - p2m_set_ioreq_server
  - p2m_get_ioreq_server
  - p2m_enable_hardware_log_dirty
  - p2m_disable_hardware_log_dirty
  - p2m_flush_hardware_cached_dirty
  - p2m_tlb_flush_sync
  - p2m_unlock_and_tlb_flush
  - p2m_get_gfn_type_access
  - p2m_put_gfn
  - get_page_from_mfn_and_type
  - p2m_get_page_from_gfn
  - p2m_set_entry
  - p2m_alloc_ptp
  - p2m_free_ptp
  - p2m_alloc_table
  - p2m_remove_entry
  - p2m_remove_page
  - p2m_add_page
  - p2m_change_type_one
  - change_type_range
  - p2m_change_type_range
  - finish_type_change
  - p2m_finish_type_change
  - set_typed_p2m_entry
  - set_foreign_p2m_entry
  - set_mmio_p2m_entry
  - clear_mmio_p2m_entry
  - p2m_add_identity_entry
  - p2m_remove_identity_entry
  - set_shared_p2m_entry
  - p2m_getlru_nestedp2m
  - p2m_flush_table_locked
  - p2m_flush_table
  - p2m_flush
  - p2m_flush_nestedp2m
  - np2m_flush_base
  - assign_np2m
  - nvcpu_flush
  - p2m_get_nestedp2m_locked
  - p2m_get_nestedp2m
  - p2m_get_p2m
  - np2m_schedule
  - paging_gva_to_gfn
  - mmio_order
  - map_mmio_regions
  - unmap_mmio_regions
  - audit_p2m
  - p2m_add_foreign
  - xenmem_add_to_physmap_one
  - relinquish_p2m_mapping
  - p2m_log_dirty_range
  - xenmem_access_to_p2m_access
  source_file: /src/xen/xen/arch/x86/mm/p2m.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_MMIO_MAX_ITER
      pos:
        line_end: 1704
        line_start: 1703
        source_file: /src/xen/xen/arch/x86/mm/p2m.c
      type_or_value: '64 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - altp2m_vcpu_initialise
  - altp2m_vcpu_destroy
  - altp2m_vcpu_enable_ve
  - altp2m_vcpu_disable_ve
  - p2m_init_altp2m
  - p2m_teardown_altp2m
  - altp2m_get_effective_entry
  - p2m_altp2m_check
  - p2m_switch_vcpu_altp2m_by_id
  - p2m_altp2m_get_or_propagate
  - p2m_reset_altp2m
  - p2m_flush_altp2m
  - p2m_activate_altp2m
  - p2m_init_altp2m_by_id
  - p2m_init_next_altp2m
  - p2m_destroy_altp2m_by_id
  - p2m_switch_domain_altp2m_by_id
  - p2m_change_altp2m_gfn
  - p2m_altp2m_propagate_change
  - p2m_set_suppress_ve
  - p2m_set_suppress_ve_multi
  - p2m_get_suppress_ve
  - p2m_set_altp2m_view_visibility
  source_file: /src/xen/xen/arch/x86/mm/altp2m.c
  types:
    enum:
    - enumerators:
      - name: ALTP2M_RESET
      - name: ALTP2M_DEACTIVATE
      item_type: enum
      name: altp2m_reset_type
      pos:
        line_end: 318
        line_start: 315
        source_file: /src/xen/xen/arch/x86/mm/altp2m.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - atomic_read_ept_entry
  - is_epte_present
  - is_epte_superpage
  - is_epte_valid
  - atomic_write_ept_entry
  - ept_p2m_type_to_flags
  - ept_set_middle_entry
  - ept_free_entry
  - ept_split_super_page
  - ept_next_level
  - ept_invalidate_emt_subtree
  - ept_invalidate_emt_range
  - epte_get_entry_emt
  - resolve_misconfig
  - ept_handle_misconfig
  - ept_set_entry
  - ept_get_entry
  - ept_walk_table
  - ept_change_entry_type_global
  - ept_change_entry_type_range
  - ept_memory_type_changed
  - ept_sync_domain_prepare
  - ept_sync_domain_mask
  - ept_sync_domain
  - ept_tlb_flush
  - ept_set_ad_sync
  - ept_enable_pml
  - ept_disable_pml
  - ept_enable_hardware_log_dirty
  - ept_disable_hardware_log_dirty
  - ept_flush_pml_buffers
  - ept_vcpu_flush_pml_buffer
  - ept_p2m_init
  - ept_p2m_uninit
  - memory_type_to_str
  - ept_dump_p2m_table
  - for_each_domain
  - setup_ept_dump
  - p2m_init_altp2m_ept
  - p2m_find_altp2m_by_eptp
  source_file: /src/xen/xen/arch/x86/mm/p2m-ept.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_TABLE_MAP_FAILED
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/x86/mm/p2m-ept.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GUEST_TABLE_NORMAL_PAGE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/x86/mm/p2m-ept.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GUEST_TABLE_SUPER_PAGE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/x86/mm/p2m-ept.c
      type_or_value: '2'
    - item_type: preproc_def
      name: GUEST_TABLE_POD_PAGE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/x86/mm/p2m-ept.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_ad_bits
  - guest_walk_tables
  - map_domain_gfn
  source_file: /src/xen/xen/arch/x86/mm/guest_walk.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AR_ACCUM_AND
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/x86/mm/guest_walk.c
      type_or_value: (_PAGE_USER | _PAGE_RW)
    - item_type: preproc_def
      name: AR_ACCUM_OR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/x86/mm/guest_walk.c
      type_or_value: (_PAGE_NX_BIT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_init_logdirty
  - p2m_free_logdirty
  source_file: /src/xen/xen/arch/x86/mm/p2m.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_l1e_from_pfn
  - p2m_l2e_from_pfn
  - p2m_l3e_from_pfn
  - set_recalc
  - clear_recalc
  - _needs_recalc
  - needs_recalc
  - valid_recalc
  - p2m_type_to_flags
  - write_p2m_entry
  - p2m_find_entry
  - p2m_free_entry
  - p2m_next_level
  - p2m_pt_set_recalc_range
  - do_recalc
  - p2m_pt_handle_deferred_changes
  - p2m_flags_to_access
  - check_entry
  - p2m_pt_get_entry
  - p2m_pt_change_entry_type_global
  - p2m_pt_change_entry_type_range
  - p2m_pt_audit_p2m
  - p2m_pt_init
  source_file: /src/xen/xen/arch/x86/mm/p2m-pt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P2M_BASE_FLAGS
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/xen/xen/arch/x86/mm/p2m-pt.c
      type_or_value: (_PAGE_PRESENT | _PAGE_USER | _PAGE_DIRTY | _PAGE_ACCESSED)
    - item_type: preproc_def
      name: RECALC_FLAGS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/mm/p2m-pt.c
      type_or_value: (_PAGE_USER|_PAGE_ACCESSED)
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_physmap_add_page
  - guest_physmap_remove_page
  - set_identity_p2m_entry
  - clear_identity_p2m_entry
  source_file: /src/xen/xen/arch/x86/mm/physmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _p2m_get_mem_access
  - p2m_mem_access_emulate_check
  - p2m_mem_access_check
  - p2m_set_altp2m_mem_access
  - set_mem_access
  - p2m_set_mem_access
  - p2m_set_mem_access_multi
  - p2m_get_mem_access
  - arch_p2m_set_access_required
  - p2m_mem_access_sanity_check
  source_file: /src/xen/xen/arch/x86/mm/mem_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/guest_walk_2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/guest_walk_2.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_mem_paging_drop_page
  - p2m_mem_paging_populate
  - p2m_mem_paging_resume
  - nominate
  - evict
  - prepare
  - mem_paging_memop
  source_file: /src/xen/xen/arch/x86/mm/mem_paging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PAGING_PRINTK
  - PAGING_ERROR
  - PAGING_DEBUG
  - paging_new_log_dirty_page
  - paging_new_log_dirty_leaf
  - paging_new_log_dirty_node
  - paging_map_log_dirty_bitmap
  - paging_free_log_dirty_page
  - paging_free_log_dirty_bitmap
  - paging_log_dirty_enable
  - paging_log_dirty_disable
  - set_pfn_logdirty
  - paging_mark_pfn_dirty
  - paging_mark_pfn_clean
  - paging_mark_dirty
  - paging_mfn_is_dirty
  - paging_log_dirty_op
  - paging_log_dirty_init
  - paging_domain_init
  - paging_vcpu_init
  - paging_domctl
  - do_paging_domctl_cont
  - paging_vcpu_teardown
  - paging_teardown
  - paging_final_teardown
  - paging_enable
  - pagetable_dying
  - paging_dump_domain_info
  - paging_dump_vcpu_info
  - paging_update_nestedmode
  - paging_set_allocation
  - arch_get_paging_mempool_size
  - arch_set_paging_mempool_size
  source_file: /src/xen/xen/arch/x86/mm/paging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/guest_walk_3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/guest_walk_3.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_4.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - hap_track_dirty_vram
  - hap_enable_log_dirty
  - hap_disable_log_dirty
  - hap_clean_dirty_bitmap
  - hap_alloc
  - hap_free
  - hap_alloc_p2m_page
  - hap_free_p2m_page
  - hap_get_allocation
  - hap_set_allocation
  - hap_make_monitor_table
  - hap_destroy_monitor_table
  - hap_domain_init
  - hap_enable
  - hap_final_teardown
  - hap_vcpu_teardown
  - hap_teardown
  - hap_domctl
  - hap_vcpu_init
  - hap_page_fault
  - hap_invlpg
  - hap_update_cr3
  - flush_vcpu
  - flush_tlb
  - for_each_vcpu
  - hap_paging_get_mode
  - hap_update_paging_modes
  - hap_write_p2m_entry_post
  - hap_p2m_init
  - hap_gva_to_gfn_real_mode
  - hap_p2m_ga_to_gfn_real_mode
  source_file: /src/xen/xen/arch/x86/mm/hap/hap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: begin_pfn
        type: unsigned long
      - name: end_pfn
        type: unsigned long
      item_type: struct
      name: hap_dirty_vram
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/xen/arch/x86/mm/hap/hap.c
    typedefs: []
    union: []
- function_names:
  - _hap_gva_to_gfn
  - hap_gva_to_gfn
  - _hap_p2m_ga_to_gfn
  - hap_p2m_ga_to_gfn
  - hap_gva_to_gfn
  - hap_p2m_ga_to_gfn
  source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/hap/private.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nestedp2m_write_p2m_entry_post
  - nestedhap_fix_p2m
  - nestedhap_walk_L0_p2m
  - nestedhvm_hap_nested_page_fault
  source_file: /src/xen/xen/arch/x86/mm/hap/nested_hap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_2.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/hap/guest_walk_3.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - nept_rsv_bits_check
  - nept_emt_bits_check
  - nept_permission_check
  - nept_non_present_check
  - nept_get_ept_vpid_cap
  - nept_rwx_bits_check
  - nept_misconfiguration_check
  - ept_lvl_table_offset
  - nept_walk_tables
  - nept_translate_l2ga
  source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EPT_MUST_RSV_BITS
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: "(((1ull << PADDR_BITS) - 1) & \\\n                           ~((1ull
        << paddr_bits) - 1))"
    - item_type: preproc_def
      name: NEPT_CAP_BITS
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: "(VMX_EPT_INVEPT_ALL_CONTEXT | VMX_EPT_INVEPT_SINGLE_CONTEXT
        | \\\n         VMX_EPT_INVEPT_INSTRUCTION | VMX_EPT_SUPERPAGE_1GB |         \\\n
        \        VMX_EPT_SUPERPAGE_2MB | VMX_EPT_MEMORY_TYPE_WB |             \\\n
        \        VMX_EPT_MEMORY_TYPE_UC | VMX_EPT_WALK_LENGTH_4_SUPPORTED |   \\\n
        \        VMX_EPT_EXEC_ONLY_SUPPORTED)"
    - item_type: preproc_def
      name: NVPID_CAP_BITS
      pos:
        line_end: 39
        line_start: 35
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: "(VMX_VPID_INVVPID_INSTRUCTION | VMX_VPID_INVVPID_INDIVIDUAL_ADDR
        | \\\n         VMX_VPID_INVVPID_SINGLE_CONTEXT | VMX_VPID_INVVPID_ALL_CONTEXT
        |  \\\n         VMX_VPID_INVVPID_SINGLE_CONTEXT_RETAINING_GLOBAL)"
    - item_type: preproc_def
      name: NEPT_1G_ENTRY_FLAG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: (1 << 11)
    - item_type: preproc_def
      name: NEPT_2M_ENTRY_FLAG
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: NEPT_4K_ENTRY_FLAG
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/mm/hap/nested_ept.c
      type_or_value: (1 << 9)
    structs: []
    typedefs: []
    union: []
- function_names:
  - sh_oos_audit
  - for_each_vcpu
  - oos_audit_hash_is_present
  - for_each_vcpu
  - _sh_resync_l1
  - sh_remove_write_access_from_sl1p
  - oos_fixup_flush_gmfn
  - oos_fixup_add
  - for_each_vcpu
  - oos_remove_write_access
  - trace_resync
  - _sh_resync
  - oos_hash_add
  - oos_hash_remove
  - for_each_vcpu
  - oos_snapshot_lookup
  - for_each_vcpu
  - sh_resync
  - for_each_vcpu
  - sh_skip_sync
  - sh_resync_all
  - sh_unsync
  source_file: /src/xen/xen/arch/x86/mm/shadow/oos.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shadow_write_guest_entry
  - shadow_cmpxchg_guest_entry
  source_file: /src/xen/xen/arch/x86/mm/shadow/pv.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shadow_domain_init
  - shadow_vcpu_init
  - shadow_audit_key
  - shadow_audit_key_init
  - shadow_promote
  - shadow_demote
  - sh_validate_guest_entry
  - shadow_min_acceptable_pages
  - shadow_unhook_mappings
  - trace_shadow_prealloc_unpin
  - __must_check::_shadow_prealloc
  - foreach_pinned_shadow
  - shadow_prealloc
  - shadow_blow_tables
  - foreach_pinned_shadow
  - shadow_blow_tables_per_domain
  - shadow_blow_all_tables
  - shadow_blow_tables_keyhandler_init
  - next_shadow
  - set_next_shadow
  - shadow_alloc
  - shadow_free
  - for_each_vcpu
  - shadow_alloc_p2m_page
  - shadow_free_p2m_page
  - sh_min_allocation
  - shadow_set_allocation
  - shadow_get_allocation
  - sh_hash
  - sh_hash_audit_bucket
  - sh_hash_audit
  - shadow_hash_alloc
  - shadow_hash_teardown
  - shadow_hash_lookup
  - shadow_hash_insert
  - shadow_hash_delete
  - HASH_CALLBACKS_CHECK
  - hash_foreach
  - sh_destroy_shadow
  - trace_shadow_wrmap_bf
  - sh_remove_write_access
  - GUESS
  - sh_remove_all_mappings
  - sh_remove_shadow_via_pointer
  - sh_remove_shadows
  - DO_UNSHADOW
  - shadow_prepare_page_type_change
  - sh_detach_old_tables
  - sh_update_paging_modes
  - for_each_vcpu
  - shadow_update_paging_modes
  - sh_set_toplevel_shadow
  - shadow_put_top_level
  - sh_new_mode
  - shadow_enable
  - shadow_vcpu_teardown
  - shadow_teardown
  - for_each_vcpu
  - shadow_one_bit_enable
  - shadow_one_bit_disable
  - for_each_vcpu
  - shadow_test_enable
  - shadow_test_disable
  - sh_enable_log_dirty
  - sh_disable_log_dirty
  - sh_clean_dirty_bitmap
  - shadow_domctl
  - shadow_audit_tables
  - pv_l1tf_tasklet
  source_file: /src/xen/xen/arch/x86/mm/shadow/common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHADOW_HASH_BUCKETS
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/xen/xen/arch/x86/mm/shadow/common.c
      type_or_value: '251'
    structs: []
    typedefs:
    - item_type: typedef
      name: key_t
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/xen/xen/arch/x86/mm/shadow/common.c
      type: u32
    - item_type: typedef
      name: (*hash_callback_t)(struct domain *d, mfn_t smfn, mfn_t other_mfn)
      pos:
        line_end: 1112
        line_start: 1112
        source_file: /src/xen/xen/arch/x86/mm/shadow/common.c
      type: int
    union: []
- function_names:
  - _toggle_log_dirty
  - _clean_dirty_bitmap
  - _update_paging_modes
  - shadow_domain_init
  - _page_fault
  - _invlpg
  - _gva_to_gfn
  - _update_cr3
  - shadow_vcpu_init
  source_file: /src/xen/xen/arch/x86/mm/shadow/none.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/shadow/guest_4.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/shadow/guest_4.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/shadow/guest_2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/shadow/guest_2.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHADOW_PRINTK
  - SHADOW_DEBUG
  - TRACE_SHADOW_PATH_FLAG
  - SHADOW_INTERNAL_NAME_
  - SHADOW_INTERNAL_NAME
  - SHADOW_SH_NAME
  - sh_type_is_pinnable
  - sh_type_has_up_pointer
  - sh_terminate_list
  - sh_page_has_multiple_shadows
  - page_is_out_of_sync
  - mfn_is_out_of_sync
  - page_oos_may_write
  - mfn_oos_may_write
  - shadow_size
  - sh_remove_write_access
  - shadow_resync_all
  - shadow_resync_current_vcpu
  - shadow_sync_other_vcpus
  - backpointer
  - __backpointer
  - sh_mfn_is_a_page_table
  - sh_get_ref
  - sh_put_ref
  - prev_pinned_shadow
  - foreach_pinned_shadow
  - sh_pin
  - sh_unpin
  - get_shadow_status
  - set_shadow_status
  - delete_shadow_status
  - sh_reset_early_unshadow
  - vtlb_flush
  - vtlb_hash
  - vtlb_insert
  - vtlb_lookup
  - sh_check_page_has_no_refs
  source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHADOW_AUDIT_HASH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: SHADOW_AUDIT_HASH_FULL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: SHADOW_AUDIT_ENTRIES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: SHADOW_AUDIT_ENTRIES_FULL
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: SHADOW_AUDIT_ENTRIES_MFNS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x10  '
    - item_type: preproc_def
      name: SHADOW_AUDIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHADOW_AUDIT_ENABLE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHADOW_AUDIT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x15  '
    - item_type: preproc_def
      name: SHADOW_AUDIT_ENABLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: shadow_audit_enable
    - item_type: preproc_def
      name: SHOPT_WRITABLE_HEURISTIC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: SHOPT_EARLY_UNSHADOW
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: SHOPT_FAST_FAULT_PATH
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: SHOPT_PREFETCH
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: SHOPT_LINUX_L3_TOPLEVEL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x10  '
    - item_type: preproc_def
      name: SHOPT_SKIP_VERIFY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x20  '
    - item_type: preproc_def
      name: SHOPT_VIRTUAL_TLB
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x40  '
    - item_type: preproc_def
      name: SHOPT_FAST_EMULATION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x80  '
    - item_type: preproc_def
      name: SHOPT_OUT_OF_SYNC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x100  '
    - item_type: preproc_def
      name: SHADOW_OPTIMIZATIONS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x1ff'
    - item_type: preproc_def
      name: SHADOW_OPTIMIZATIONS
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: "(0x1ff & ~(SHOPT_OUT_OF_SYNC | \\\n                                            SHOPT_FAST_EMULATION))"
    - item_type: preproc_def
      name: SHADOW_DEBUG_PROPAGATE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_MAKE_SHADOW
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_DESTROY_SHADOW
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_A_AND_D
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_EMULATE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_P2M
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SHADOW_DEBUG_LOGDIRTY
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRACE_CLEAR_PATH_FLAGS
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: this_cpu(trace_shadow_path_flags) = 0
    - item_type: preproc_def
      name: GUEST_LEVELS
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GUEST_LEVELS
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '3'
    - item_type: preproc_def
      name: GUEST_LEVELS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SH_type_none
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(0U) '
    - item_type: preproc_def
      name: SH_type_min_shadow
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1U)
    - item_type: preproc_def
      name: SH_type_l1_32_shadow
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(1U) '
    - item_type: preproc_def
      name: SH_type_fl1_32_shadow
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(2U) '
    - item_type: preproc_def
      name: SH_type_l2_32_shadow
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(3U) '
    - item_type: preproc_def
      name: SH_type_l1_pae_shadow
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(4U) '
    - item_type: preproc_def
      name: SH_type_fl1_pae_shadow
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(5U) '
    - item_type: preproc_def
      name: SH_type_l2_pae_shadow
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(6U) '
    - item_type: preproc_def
      name: SH_type_l1_64_shadow
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(7U) '
    - item_type: preproc_def
      name: SH_type_fl1_64_shadow
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(8U) '
    - item_type: preproc_def
      name: SH_type_l2_64_shadow
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(9U) '
    - item_type: preproc_def
      name: SH_type_l2h_64_shadow
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(10U) '
    - item_type: preproc_def
      name: SH_type_l3_64_shadow
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(11U) '
    - item_type: preproc_def
      name: SH_type_l4_64_shadow
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(12U) '
    - item_type: preproc_def
      name: SH_type_max_shadow
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (12U)
    - item_type: preproc_def
      name: SH_type_p2m_table
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(13U) '
    - item_type: preproc_def
      name: SH_type_monitor_table
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(14U) '
    - item_type: preproc_def
      name: SH_type_oos_snapshot
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '(15U) '
    - item_type: preproc_def
      name: SH_type_unused
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (16U)
    - item_type: preproc_def
      name: SH_type_l1_32_shadow
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_fl1_32_shadow
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_l2_32_shadow
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_l1_pae_shadow
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_fl1_pae_shadow
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_l2_pae_shadow
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: SH_type_unused
    - item_type: preproc_def
      name: SH_type_l1_64_shadow
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '1U '
    - item_type: preproc_def
      name: SH_type_fl1_64_shadow
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '2U '
    - item_type: preproc_def
      name: SH_type_l2_64_shadow
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '3U '
    - item_type: preproc_def
      name: SH_type_l2h_64_shadow
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '4U '
    - item_type: preproc_def
      name: SH_type_l3_64_shadow
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '5U '
    - item_type: preproc_def
      name: SH_type_l4_64_shadow
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '6U '
    - item_type: preproc_def
      name: SH_type_max_shadow
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: 6U
    - item_type: preproc_def
      name: SH_type_p2m_table
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '7U '
    - item_type: preproc_def
      name: SH_type_unused
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: 8U
    - item_type: preproc_def
      name: SHF_page_type_mask
      pos:
        line_end: 252
        line_start: 249
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: "(((1u << (SH_type_max_shadow + 1u)) - 1u) - \\\n     ((1u <<
        SH_type_min_shadow) - 1u))"
    - item_type: preproc_def
      name: SHF_L1_32
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l1_32_shadow)
    - item_type: preproc_def
      name: SHF_FL1_32
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_fl1_32_shadow)
    - item_type: preproc_def
      name: SHF_L2_32
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l2_32_shadow)
    - item_type: preproc_def
      name: SHF_L1_PAE
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l1_pae_shadow)
    - item_type: preproc_def
      name: SHF_FL1_PAE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_fl1_pae_shadow)
    - item_type: preproc_def
      name: SHF_L2_PAE
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l2_pae_shadow)
    - item_type: preproc_def
      name: SHF_L1_32
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_FL1_32
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_L2_32
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_L1_PAE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_FL1_PAE
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_L2_PAE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_L1_64
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l1_64_shadow)
    - item_type: preproc_def
      name: SHF_FL1_64
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_fl1_64_shadow)
    - item_type: preproc_def
      name: SHF_L2_64
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l2_64_shadow)
    - item_type: preproc_def
      name: SHF_L2H_64
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l2h_64_shadow)
    - item_type: preproc_def
      name: SHF_L2H_64
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SHF_L3_64
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l3_64_shadow)
    - item_type: preproc_def
      name: SHF_L4_64
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << SH_type_l4_64_shadow)
    - item_type: preproc_def
      name: SHF_32
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (SHF_L1_32|SHF_FL1_32|SHF_L2_32)
    - item_type: preproc_def
      name: SHF_PAE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (SHF_L1_PAE|SHF_FL1_PAE|SHF_L2_PAE)
    - item_type: preproc_def
      name: SHF_64
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (SHF_L1_64|SHF_FL1_64|SHF_L2_64|SHF_L2H_64|SHF_L3_64|SHF_L4_64)
    - item_type: preproc_def
      name: SHF_L1_ANY
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (SHF_L1_32|SHF_L1_PAE|SHF_L1_64)
    - item_type: preproc_def
      name: SHF_FL1_ANY
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (SHF_FL1_32|SHF_FL1_PAE|SHF_FL1_64)
    - item_type: preproc_def
      name: SHF_out_of_sync
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << (SH_type_max_shadow + 1))
    - item_type: preproc_def
      name: SHF_oos_may_write
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: (1u << (SH_type_max_shadow + 2))
    - item_type: preproc_def
      name: SHADOW_SET_CHANGED
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SHADOW_SET_FLUSH
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SHADOW_SET_ERROR
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: VTLB_ENTRIES
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
      type_or_value: '13'
    structs:
    - fields:
      - name: begin_pfn
        type: unsigned long
      - name: end_pfn
        type: unsigned long
      - name: '*sl1ma'
        type: paddr_t
      - name: '*dirty_bitmap'
        type: uint8_t
      - name: last_dirty
        type: s_time_t
      item_type: struct
      name: sh_dirty_vram
      pos:
        line_end: 425
        line_start: 419
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
    - fields:
      - name: ctxt
        type: struct x86_emulate_ctxt
      - name: insn_buf[31]
        type: uint8_t
      - name: insn_buf_bytes
        type: uint8_t
      - name: insn_buf_eip
        type: unsigned long
      - name: pte_size
        type: unsigned int
      - name: valid_seg_regs
        type: unsigned int
      - name: seg_reg[6]
        type: struct segment_register
      - name: mfn[2]
        type: mfn_t
      item_type: struct
      name: sh_emulate_ctxt
      pos:
        line_end: 822
        line_start: 800
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
    - fields:
      - name: page_number
        type: unsigned long
      - name: frame_number
        type: unsigned long
      - name: pfec
        type: uint32_t
      item_type: struct
      name: shadow_vtlb
      pos:
        line_end: 860
        line_start: 854
        source_file: /src/xen/xen/arch/x86/mm/shadow/private.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/shadow/multi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - for_each_shadow_table
  - for_each_shadow_table
  - sh_flush_local
  - ASSERT_VALID_L2
  - ASSERT_VALID_L2
  - get_fl1_shadow_status
  - set_fl1_shadow_status
  - delete_fl1_shadow_status
  - sh_walk_guest_tables
  - shadow_check_gwalk
  - shadow_check_gl1e
  - gw_remove_write_accesses
  - sh_audit_gw
  - sh_next_page
  - shadow_set_l2e
  - guest_index
  - shadow_l1_index
  - shadow_l2_index
  - shadow_l3_index
  - shadow_l4_index
  - _sh_propagate
  - l4e_propagate_from_guest
  - l3e_propagate_from_guest
  - l2e_propagate_from_guest
  - l1e_propagate_from_guest
  - increment_ptr_to_guest_entry
  - _FOREACH_PRESENT_L1E
  - FOREACH_PRESENT_L1E
  - FOREACH_PRESENT_L1E
  - FOREACH_PRESENT_L2E
  - FOREACH_PRESENT_L2E
  - FOREACH_PRESENT_L2E
  - FOREACH_PRESENT_L3E
  - FOREACH_PRESENT_L4E
  - sh_make_shadow
  - make_fl1_shadow
  - shadow_get_and_create_l4e
  - shadow_get_and_create_l3e
  - shadow_get_and_create_l2e
  - shadow_get_and_create_l1e
  - sh_destroy_l4_shadow
  - sh_destroy_l3_shadow
  - sh_destroy_l2_shadow
  - sh_destroy_l1_shadow
  - sh_unhook_l2_mappings
  - sh_unhook_l4_mappings
  - validate_gl4e
  - validate_gl3e
  - validate_gl2e
  - validate_gl1e
  - sh_resync_l1
  - sh_safe_not_to_sync
  - sh_map_and_validate
  - sh_map_and_validate_gl4e
  - sh_map_and_validate_gl3e
  - sh_map_and_validate_gl2e
  - sh_map_and_validate_gl2he
  - sh_map_and_validate_gl1e
  - sh_prefetch
  - sh_trace
  - sh_trace_va
  - sh_trace_gl1e_va
  - __maybe_unused::sh_trace_gfn_va
  - trace_emulate_write_val
  - sh_trace_emulate
  - sh_page_fault
  - for_each_vcpu
  - for_each_shadow_table
  - sh_invlpg
  - sh_gva_to_gfn
  - sh_update_linear_entries
  - sh_update_cr3
  - for_each_shadow_table
  - sh_rm_write_access_from_sl1p
  - sh_guess_wrmap
  - store_last_writeable_pte_smfn
  - sh_rm_write_access_from_l1
  - sh_rm_mappings_from_l1
  - sh_clear_shadow_entry
  - sh_remove_l1_shadow
  - sh_remove_l2_shadow
  - sh_remove_l3_shadow
  - sh_pagetable_dying
  - for_each_shadow_table
  - sh_pagetable_dying
  - AUDIT_FAIL
  - AUDIT_FAIL_MIN
  - sh_audit_flags
  - audit_magic
  - sh_audit_l1_table
  - sh_audit_fl1_table
  - sh_audit_l2_table
  - type_from_gl3e
  - sh_audit_l3_table
  - sh_audit_l4_table
  source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FETCH_TYPE_PREFETCH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FETCH_TYPE_DEMAND
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FETCH_TYPE_WRITE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '4'
    - item_type: preproc_def
      name: GW_RMWR_FLUSHTLB
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GW_RMWR_REWALK
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '2'
    - item_type: preproc_def
      name: sh_next_page
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: PREFETCH_DISTANCE
      pos:
        line_end: 1872
        line_start: 1871
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: '32'
    - item_type: preproc_def
      name: GUEST_PTE_SIZE
      pos:
        line_end: 1983
        line_start: 1982
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type_or_value: sizeof(guest_l1e_t)
    structs:
    - fields:
      - name: gl1e
        type: guest_l1e_t
      - name: va
        type: guest_va_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 2010
        line_start: 2002
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
    - fields:
      - name: va
        type: guest_va_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 2038
        line_start: 2026
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
    - fields:
      - name: gl1e
        type: guest_l1e_t
      - name: va
        type: guest_va_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: __packed
      pos:
        line_end: 2095
        line_start: 2084
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
    typedefs:
    - item_type: typedef
      name: guest_va_t
      pos:
        line_end: 1974
        line_start: 1974
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type: u64
    - item_type: typedef
      name: guest_va_t
      pos:
        line_end: 1976
        line_start: 1976
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type: u32
    - item_type: typedef
      name: guest_va_t
      pos:
        line_end: 1978
        line_start: 1978
        source_file: /src/xen/xen/arch/x86/mm/shadow/multi.c
      type: u32
    union: []
- function_names:
  - hvm_get_seg_reg
  - hvm_translate_virtual_addr
  - hvm_read
  - hvm_emulate_read
  - hvm_emulate_insn_fetch
  - hvm_emulate_write
  - hvm_emulate_cmpxchg
  - hvm_emulate_read_segment
  - shadow_init_emulation
  - shadow_continue_emulation
  - emulate_gva_to_mfn
  - sh_emulate_map_dest
  - check_for_early_unshadow
  - validate_guest_pt_write
  - sh_emulate_unmap_dest
  - flush_vcpu
  - shadow_flush_tlb
  - for_each_vcpu
  - sh_make_monitor_table
  - sh_destroy_monitor_table
  - sh_remove_all_shadows_and_parents
  - sh_unshadow_for_p2m_change
  - sh_write_p2m_entry_post
  - shadow_p2m_init
  - shadow_track_dirty_vram
  - shadow_vram_get_mfn
  - shadow_vram_put_mfn
  source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAPPING_UNHANDLEABLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: ERR_PTR(~(long)X86EMUL_UNHANDLEABLE)
    - item_type: preproc_def
      name: MAPPING_EXCEPTION
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: ERR_PTR(~(long)X86EMUL_EXCEPTION)
    - item_type: preproc_def
      name: MAPPING_SILENT_FAIL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: ERR_PTR(~(long)X86EMUL_OKAY)
    - item_type: preproc_def
      name: BAD_GVA_TO_GFN
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: BAD_GFN_TO_MFN
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: (~1UL)
    - item_type: preproc_def
      name: READONLY_GFN
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: (~2UL)
    - item_type: preproc_def
      name: sh_write_p2m_entry_post
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/xen/xen/arch/x86/mm/shadow/hvm.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/mm/shadow/guest_3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/xen/xen/arch/x86/mm/shadow/guest_3.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - shadow_l1e_get_paddr
  - shadow_l2e_get_paddr
  - shadow_l3e_get_paddr
  - shadow_l4e_get_paddr
  - shadow_l1e_get_mfn
  - shadow_l2e_get_mfn
  - shadow_l3e_get_mfn
  - shadow_l4e_get_mfn
  - shadow_l1e_get_flags
  - shadow_l2e_get_flags
  - shadow_l3e_get_flags
  - shadow_l4e_get_flags
  - shadow_l1e_remove_flags
  - shadow_l1e_flip_flags
  - shadow_l1e_empty
  - shadow_l2e_empty
  - shadow_l3e_empty
  - shadow_l4e_empty
  - shadow_l1e_from_mfn
  - shadow_l2e_from_mfn
  - shadow_l3e_from_mfn
  - shadow_l4e_from_mfn
  - shadow_l1_table_offset
  - shadow_l2_table_offset
  - shadow_l3_table_offset
  - shadow_l4_table_offset
  - shadow_l1_linear_offset
  - shadow_l2_linear_offset
  - shadow_l3_linear_offset
  - shadow_l4_linear_offset
  - sh_linear_l1_table
  - sh_linear_l2_table
  - sh_linear_l3_table
  - sh_linear_l4_table
  - get_gfn_query
  - INTERNAL_NAME
  - MFN_FITS_IN_HVM_CR3
  - shadow_put_page_from_l1e
  - sh_have_pte_rsvd_bits
  - sh_l1e_is_magic
  - sh_l1e_gnp_raw
  - sh_l1e_gnp
  - sh_l1e_is_gnp
  - sh_l1e_mmio
  - sh_l1e_is_mmio
  - sh_l1e_mmio_get_gfn
  - sh_l1e_mmio_get_flags
  - sh_l1e_gnp
  - sh_l1e_mmio
  - sh_l1e_is_magic
  source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHADOW_PAGING_LEVELS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: GUEST_PAGING_LEVELS
    - item_type: preproc_def
      name: SHADOW_PAGING_LEVELS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SHADOW_L1_PAGETABLE_ENTRIES
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L2_PAGETABLE_ENTRIES
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L3_PAGETABLE_ENTRIES
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SHADOW_L1_PAGETABLE_SHIFT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SHADOW_L2_PAGETABLE_SHIFT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SHADOW_L3_PAGETABLE_SHIFT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '30'
    - item_type: preproc_def
      name: SHADOW_L1_PAGETABLE_ENTRIES
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L2_PAGETABLE_ENTRIES
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L3_PAGETABLE_ENTRIES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L4_PAGETABLE_ENTRIES
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '512'
    - item_type: preproc_def
      name: SHADOW_L1_PAGETABLE_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SHADOW_L2_PAGETABLE_SHIFT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SHADOW_L3_PAGETABLE_SHIFT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '30'
    - item_type: preproc_def
      name: SHADOW_L4_PAGETABLE_SHIFT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '39'
    - item_type: preproc_def
      name: __sh_linear_l1_table
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: ((shadow_l1e_t *)(SH_LINEAR_PT_VIRT_START))
    - item_type: preproc_def
      name: __sh_linear_l2_table
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: "((shadow_l2e_t *)                               \\\n    (__sh_linear_l1_table
        + shadow_l1_linear_offset(SH_LINEAR_PT_VIRT_START)))"
    - item_type: preproc_def
      name: __sh_linear_l3_table
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: "((shadow_l3e_t *)                               \\\n    (__sh_linear_l2_table
        + shadow_l2_linear_offset(SH_LINEAR_PT_VIRT_START)))"
    - item_type: preproc_def
      name: __sh_linear_l4_table
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: "((shadow_l4e_t *)                               \\\n    (__sh_linear_l3_table
        + shadow_l3_linear_offset(SH_LINEAR_PT_VIRT_START)))"
    - item_type: preproc_def
      name: SH_type_l1_shadow
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l1_32_shadow
    - item_type: preproc_def
      name: SH_type_l2_shadow
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l2_32_shadow
    - item_type: preproc_def
      name: SH_type_fl1_shadow
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_fl1_32_shadow
    - item_type: preproc_def
      name: SH_type_l1_shadow
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l1_pae_shadow
    - item_type: preproc_def
      name: SH_type_fl1_shadow
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_fl1_pae_shadow
    - item_type: preproc_def
      name: SH_type_l2_shadow
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l2_pae_shadow
    - item_type: preproc_def
      name: SH_type_l1_shadow
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l1_64_shadow
    - item_type: preproc_def
      name: SH_type_fl1_shadow
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_fl1_64_shadow
    - item_type: preproc_def
      name: SH_type_l2_shadow
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l2_64_shadow
    - item_type: preproc_def
      name: SH_type_l2h_shadow
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l2h_64_shadow
    - item_type: preproc_def
      name: SH_type_l3_shadow
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l3_64_shadow
    - item_type: preproc_def
      name: SH_type_l4_shadow
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_type_l4_64_shadow
    - item_type: preproc_def
      name: sh_page_fault
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_page_fault)
    - item_type: preproc_def
      name: sh_invlpg
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_invlpg)
    - item_type: preproc_def
      name: sh_gva_to_gfn
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_gva_to_gfn)
    - item_type: preproc_def
      name: sh_update_cr3
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_update_cr3)
    - item_type: preproc_def
      name: sh_rm_write_access_from_l1
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_rm_write_access_from_l1)
    - item_type: preproc_def
      name: sh_rm_mappings_from_l1
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_rm_mappings_from_l1)
    - item_type: preproc_def
      name: sh_remove_l1_shadow
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_remove_l1_shadow)
    - item_type: preproc_def
      name: sh_remove_l2_shadow
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_remove_l2_shadow)
    - item_type: preproc_def
      name: sh_remove_l3_shadow
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_remove_l3_shadow)
    - item_type: preproc_def
      name: sh_map_and_validate_gl4e
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_map_and_validate_gl4e)
    - item_type: preproc_def
      name: sh_map_and_validate_gl3e
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_map_and_validate_gl3e)
    - item_type: preproc_def
      name: sh_map_and_validate_gl2e
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_map_and_validate_gl2e)
    - item_type: preproc_def
      name: sh_map_and_validate_gl2he
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_map_and_validate_gl2he)
    - item_type: preproc_def
      name: sh_map_and_validate_gl1e
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_map_and_validate_gl1e)
    - item_type: preproc_def
      name: sh_destroy_l4_shadow
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_destroy_l4_shadow)
    - item_type: preproc_def
      name: sh_destroy_l3_shadow
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_destroy_l3_shadow)
    - item_type: preproc_def
      name: sh_destroy_l2_shadow
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_destroy_l2_shadow)
    - item_type: preproc_def
      name: sh_destroy_l1_shadow
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_destroy_l1_shadow)
    - item_type: preproc_def
      name: sh_unhook_l2_mappings
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_unhook_l2_mappings)
    - item_type: preproc_def
      name: sh_unhook_l4_mappings
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_unhook_l4_mappings)
    - item_type: preproc_def
      name: sh_paging_mode
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_paging_mode)
    - item_type: preproc_def
      name: sh_audit_l1_table
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_audit_l1_table)
    - item_type: preproc_def
      name: sh_audit_fl1_table
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_audit_fl1_table)
    - item_type: preproc_def
      name: sh_audit_l2_table
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_audit_l2_table)
    - item_type: preproc_def
      name: sh_audit_l3_table
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_audit_l3_table)
    - item_type: preproc_def
      name: sh_audit_l4_table
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_audit_l4_table)
    - item_type: preproc_def
      name: sh_guess_wrmap
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_guess_wrmap)
    - item_type: preproc_def
      name: sh_clear_shadow_entry
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_clear_shadow_entry)
    - item_type: preproc_def
      name: sh_resync_l1
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_resync_l1)
    - item_type: preproc_def
      name: sh_safe_not_to_sync
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_safe_not_to_sync)
    - item_type: preproc_def
      name: sh_rm_write_access_from_sl1p
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: INTERNAL_NAME(sh_rm_write_access_from_sl1p)
    - item_type: preproc_def
      name: SH_PRI_pte
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: PRIpte
    - item_type: preproc_def
      name: SH_PRI_gpte
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: PRI_gpte
    - item_type: preproc_def
      name: SH_PRI_gfn
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: PRI_gfn
    - item_type: preproc_def
      name: SH_L1E_MAGIC_MASK
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: (0xfffff00000000000UL | _PAGE_PRESENT)
    - item_type: preproc_def
      name: SH_L1E_MAGIC_MASK
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: (0xfffffff000000000UL | _PAGE_PRESENT)
    - item_type: preproc_def
      name: SH_L1E_MMIO_MAGIC
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: SH_L1E_MAGIC_MASK
    - item_type: preproc_def
      name: SH_L1E_MMIO_MAGIC_BIT
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SH_L1E_MMIO_MAGIC_MASK
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: (SH_L1E_MMIO_MAGIC | SH_L1E_MMIO_MAGIC_BIT)
    - item_type: preproc_def
      name: SH_L1E_MMIO_GFN_MASK
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type_or_value: ~(SH_L1E_MMIO_MAGIC_MASK | _PAGE_RW | _PAGE_USER)
    structs: []
    typedefs:
    - item_type: typedef
      name: shadow_l1e_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type: l1_pgentry_t
    - item_type: typedef
      name: shadow_l2e_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type: l2_pgentry_t
    - item_type: typedef
      name: shadow_l3e_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type: l3_pgentry_t
    - item_type: typedef
      name: shadow_l4e_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/xen/xen/arch/x86/mm/shadow/types.h
      type: l4_pgentry_t
    union: []
- function_names:
  - shadow_write_entries
  - shadow_get_page_from_l1e
  - shadow_set_l4e
  - shadow_set_l3e
  - shadow_set_l2e
  - shadow_set_l1e
  source_file: /src/xen/xen/arch/x86/mm/shadow/set.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GUEST_PAGING_LEVELS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/mm/shadow/set.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAGE_FLIPPABLE
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/xen/xen/arch/x86/mm/shadow/set.c
      type_or_value: (_PAGE_RW | _PAGE_PWT | _PAGE_PCD | _PAGE_PAT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PCI_CONF_ADDRESS
  - pci_conf_read8
  - pci_conf_read16
  - pci_conf_read32
  - pci_conf_write8
  - pci_conf_write16
  - pci_conf_write32
  source_file: /src/xen/xen/arch/x86/x86_64/pci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_virt
  - pci_dev_base
  - pci_mmcfg_read
  - pci_mmcfg_write
  - mcfg_ioremap
  - pci_mmcfg_arch_enable
  - pci_mmcfg_arch_disable
  - pci_mmcfg_decode
  - pci_ro_mmcfg_decode
  - pci_mmcfg_arch_init
  source_file: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cfg'
        type: struct acpi_mcfg_allocation
      - name: '*virt'
        type: char
      item_type: struct
      name: mmcfg_virt
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig_64.c
    typedefs: []
    union: []
- function_names:
  - parse_mmcfg
  - pci_mmcfg_e7520
  - pci_mmcfg_intel_945
  - pci_mmcfg_amd_fam10h
  - pci_mmcfg_nvidia_mcp55
  - pci_mmcfg_check_hostbridge
  - is_mmconf_reserved
  - pci_mmcfg_reject_broken
  - acpi_mmcfg_init
  - pci_mmcfg_reserved
  source_file: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: bus
        type: u32
      - name: devfn
        type: u32
      - name: vendor
        type: u32
      - name: device
        type: u32
      - name: '*(*probe)(void)'
        type: char
      item_type: struct
      name: pci_mmcfg_hostbridge_probe
      pos:
        line_end: 286
        line_start: 280
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig-shared.c
    typedefs: []
    union: []
- function_names:
  - runstate_area_populate
  - compat_vcpu_op
  source_file: /src/xen/xen/arch/x86/x86_64/domain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xen_vcpu_get_physid
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/x86_64/domain.c
      type_or_value: vcpu_get_physid
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_platform_op
  - efi_runtime_call
  - _XEN_GUEST_HANDLE
  - _XEN_GUEST_HANDLE_PARAM
  source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: xen_platform_op
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_platform_op
    - item_type: preproc_def
      name: xen_platform_op_t
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_platform_op_t
    - item_type: preproc_def
      name: efi_get_info
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: efi_compat_get_info
    - item_type: preproc_def
      name: xen_processor_cppc
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_processor_cppc
    - item_type: preproc_def
      name: set_cppc_pminfo
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_set_cppc_pminfo
    - item_type: preproc_def
      name: xen_processor_performance
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_processor_performance
    - item_type: preproc_def
      name: set_px_pminfo
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_set_px_pminfo
    - item_type: preproc_def
      name: xen_processor_power
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_processor_power
    - item_type: preproc_def
      name: set_cx_pminfo
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: compat_set_cx_pminfo
    - item_type: preproc_def
      name: xen_pf_pcpuinfo
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: xenpf_pcpuinfo
    - item_type: preproc_def
      name: xen_pf_pcpu_version
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: xenpf_pcpu_version
    - item_type: preproc_def
      name: xen_pf_ucode_revision
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: xenpf_ucode_revision
    - item_type: preproc_def
      name: xen_pf_enter_acpi_sleep
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: xenpf_enter_acpi_sleep
    - item_type: preproc_def
      name: xen_pf_resource_entry
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type_or_value: xenpf_resource_entry
    structs: []
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/xen/xen/arch/x86/x86_64/platform_hypercall.c
      type: int
    union: []
- function_names:
  - mmio_config_readb
  - mmio_config_readw
  - mmio_config_readl
  - mmio_config_writeb
  - mmio_config_writew
  - mmio_config_writel
  source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCI_DEVICE_ID_INTEL_E7520_MCH
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x3590'
    - item_type: preproc_def
      name: PCI_DEVICE_ID_INTEL_82945G_HB
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x2770'
    - item_type: preproc_def
      name: PCI_PROBE_BIOS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PCI_PROBE_CONF1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: PCI_PROBE_CONF2
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: PCI_PROBE_MMCONF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: PCI_PROBE_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x000f'
    - item_type: preproc_def
      name: PCI_PROBE_NOEARLY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: PCI_CHECK_ENABLE_AMD_MMCONF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/x86/x86_64/mmconfig.h
      type_or_value: '0x20000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_page_walk
  - hotadd_mem_valid
  - alloc_hotadd_mfn
  - m2p_mapped
  - share_hotadd_m2p_table
  - destroy_compat_m2p_mapping
  - destroy_m2p_mapping
  - setup_compat_m2p_table
  - MFN
  - setup_m2p_table
  - MFN
  - paging_init
  - MFN
  - MFN
  - zap_low_mappings
  - setup_compat_arg_xlat
  - free_compat_arg_xlat
  - cleanup_frame_table
  - setup_frametable_chunk
  - extend_frame_table
  - subarch_init_memory
  - subarch_memory_op
  - pagefault_by_memadd
  - handle_memadd_fault
  - transfer_pages_to_heap
  - mem_hotadd_check
  - memory_add
  - set_gpfn_from_mfn
  source_file: /src/xen/xen/arch/x86/x86_64/mm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: compat_machine_to_phys_mapping
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: ((unsigned int *)RDWR_COMPAT_MPT_VIRT_START)
    - item_type: preproc_def
      name: M2P_NO_MAPPED
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: '0'
    - item_type: preproc_def
      name: M2P_2M_MAPPED
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: '1'
    - item_type: preproc_def
      name: M2P_1G_MAPPED
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CNT
      pos:
        line_end: 357
        line_start: 355
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: "(ISOLATE_LSB(sizeof(*frame_table)) / \\\n             sizeof(*compat_machine_to_phys_mapping))"
    - item_type: preproc_def
      name: CNT
      pos:
        line_end: 416
        line_start: 414
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: "(ISOLATE_LSB(sizeof(*frame_table)) / \\\n             sizeof(*machine_to_phys_mapping))"
    - item_type: preproc_def
      name: CNT
      pos:
        line_end: 545
        line_start: 543
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: "(ISOLATE_LSB(sizeof(*frame_table)) / \\\n             sizeof(*machine_to_phys_mapping))"
    - item_type: preproc_def
      name: CNT
      pos:
        line_end: 672
        line_start: 670
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
      type_or_value: "(ISOLATE_LSB(sizeof(*frame_table)) / \\\n             sizeof(*compat_machine_to_phys_mapping))"
    structs:
    - fields:
      - name: spfn
        type: unsigned long
      - name: epfn
        type: unsigned long
      - name: cur
        type: unsigned long
      item_type: struct
      name: mem_hotadd_info
      pos:
        line_end: 121
        line_start: 116
        source_file: /src/xen/xen/arch/x86/x86_64/mm.c
    typedefs: []
    union: []
- function_names:
  - xlat_malloc
  - copy_from_compat_state
  - XLAT_processor_cx_HNDL_dp
  - compat_set_cx_pminfo
  - XLAT_processor_power_HNDL_states
  source_file: /src/xen/xen/arch/x86/x86_64/cpu_idle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BLANK
  - OFFSET
  - __dummy__
  - OFFSET_EF
  source_file: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: i
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/xen/xen/arch/x86/x86_64/asm-offsets.c
      type_or_value: '" (_val) )'
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_physdev_op_compat
  - _XEN_GUEST_HANDLE
  - _XEN_GUEST_HANDLE_PARAM
  source_file: /src/xen/xen/arch/x86/x86_64/compat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: physdev_op
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/x86/x86_64/compat.c
      type_or_value: compat_physdev_op
    - item_type: preproc_def
      name: physdev_op_t
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/x86/x86_64/compat.c
      type_or_value: physdev_op_compat_t
    - item_type: preproc_def
      name: do_physdev_op
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/x86/x86_64/compat.c
      type_or_value: compat_physdev_op
    structs: []
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/xen/xen/arch/x86/x86_64/compat.c
      type: int
    union: []
- function_names:
  - BASE_VALID
  - get_fam10h_pci_mmconf_base
  - fam10h_check_enable_mmcfg
  - check_enable_amd_mmconf_dmi
  source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
      type_or_value: (1ULL << FAM10H_MMIO_CONF_BASE_SHIFT)
    - item_type: preproc_def
      name: MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
      type_or_value: (~(UNIT - 1))
    - item_type: preproc_def
      name: SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
      type_or_value: (UNIT << 8)
    - item_type: preproc_def
      name: FAM10H_PCI_MMCONF_BASE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
      type_or_value: (0xfcULL<<32)
    structs:
    - fields:
      - name: bus
        type: u32
      - name: slot
        type: u32
      - name: vendor
        type: u32
      - name: device
        type: u32
      item_type: struct
      name: pci_hostbridge_probe
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    - fields:
      - name: start
        type: u64
      item_type: struct
      name: range
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/xen/xen/arch/x86/x86_64/mmconf-fam10h.c
    typedefs: []
    union: []
- function_names:
  - compat_set_px_pminfo
  - XLAT_processor_performance_HNDL_states
  - compat_set_cppc_pminfo
  source_file: /src/xen/xen/arch/x86/x86_64/cpufreq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acpi_mcfg_check_entry
  - acpi_parse_mcfg
  source_file: /src/xen/xen/arch/x86/x86_64/acpi_mmcfg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - machine_kexec_get_xen
  source_file: /src/xen/xen/arch/x86/x86_64/machine_kexec.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: do_physdev_op
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: compat_physdev_op
    - item_type: preproc_def
      name: physdev_apic
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: compat_physdev_apic
    - item_type: preproc_def
      name: physdev_apic_t
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_apic_compat_t
    - item_type: preproc_def
      name: xen_physdev_eoi
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_eoi
    - item_type: preproc_def
      name: physdev_pirq_eoi_gmfn
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: compat_physdev_pirq_eoi_gmfn
    - item_type: preproc_def
      name: physdev_pirq_eoi_gmfn_t
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_pirq_eoi_gmfn_compat_t
    - item_type: preproc_def
      name: physdev_set_iobitmap
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: compat_physdev_set_iobitmap
    - item_type: preproc_def
      name: physdev_set_iobitmap_t
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_set_iobitmap_compat_t
    - item_type: preproc_def
      name: xen_physdev_set_iopl
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_set_iopl
    - item_type: preproc_def
      name: xen_physdev_irq
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_irq
    - item_type: preproc_def
      name: xen_physdev_irq_status_query
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_irq_status_query
    - item_type: preproc_def
      name: physdev_map_pirq_t
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_map_pirq_compat_t
    - item_type: preproc_def
      name: xen_physdev_unmap_pirq
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_unmap_pirq
    - item_type: preproc_def
      name: xen_physdev_manage_pci
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_manage_pci
    - item_type: preproc_def
      name: xen_physdev_manage_pci_ext
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_manage_pci_ext
    - item_type: preproc_def
      name: xen_physdev_restore_msi
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_restore_msi
    - item_type: preproc_def
      name: xen_physdev_setup_gsi
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_setup_gsi
    - item_type: preproc_def
      name: xen_physdev_get_free_pirq
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_get_free_pirq
    - item_type: preproc_def
      name: xen_physdev_pci_mmcfg_reserved
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_pci_mmcfg_reserved
    - item_type: preproc_def
      name: xen_physdev_pci_device_add
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_pci_device_add
    - item_type: preproc_def
      name: xen_physdev_pci_device
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: physdev_pci_device
    - item_type: preproc_def
      name: guest_handle_okay
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type_or_value: compat_handle_okay
    structs: []
    typedefs:
    - item_type: typedef
      name: ret_t
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/xen/xen/arch/x86/x86_64/physdev.c
      type: int
    union: []
- function_names:
  - compat_arch_memory_op
  - XLAT_memory_map_HNDL_buffer
  - XLAT_memory_map_HNDL_buffer
  - XLAT_memory_map_HNDL_buffer
  - compat_mmuext_op
  - XLAT_mmuext_op_HNDL_arg2_vcpumask
  source_file: /src/xen/xen/arch/x86/x86_64/compat/mm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - register_intc_ops
  - intc_preinit
  - intc_init
  - intc_set_irq_type
  - intc_set_irq_priority
  - intc_handle_external_irqs
  - intc_route_irq_to_xen
  source_file: /src/xen/xen/arch/riscv/intc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - smp_send_event_check_mask
  source_file: /src/xen/xen/arch/riscv/smp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - irq_validate_new_type
  - irq_set_type
  - platform_get_irq
  - _setup_irq
  - setup_irq
  - arch_init_one_irq_desc
  - init_irq_data
  - init_IRQ
  - do_IRQ
  source_file: /src/xen/xen/arch/riscv/irq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IMSIC_HART_SIZE
  - imsic_csr_write
  - imsic_csr_set
  - imsic_csr_clear
  - imsic_ids_local_delivery
  - imsic_local_eix_update
  - imsic_irq_enable
  - imsic_irq_disable
  - imsic_get_config
  - imsic_get_parent_hartid
  - imsic_parse_node
  - imsic_init
  source_file: /src/xen/xen/arch/riscv/imsic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMSIC_DISABLE_EIDELIVERY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/riscv/imsic.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IMSIC_ENABLE_EIDELIVERY
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/riscv/imsic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IMSIC_DISABLE_EITHRESHOLD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/riscv/imsic.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IMSIC_ENABLE_EITHRESHOLD
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/riscv/imsic.c
      type_or_value: '0'
    structs:
    - fields:
      - name: base_addr
        type: paddr_t
      - name: size
        type: unsigned long
      item_type: struct
      name: imsic_mmios
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/xen/xen/arch/riscv/imsic.c
    typedefs: []
    union: []
- function_names:
  - machine_halt
  - machine_restart
  source_file: /src/xen/xen/arch/riscv/shutdown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - continue_new_vcpu
  - arch_vcpu_create
  - arch_vcpu_destroy
  - build_assertions
  source_file: /src/xen/xen/arch/riscv/domain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sbi_ecall
  - sbi_err_map_xen_errno
  - sbi_console_putchar
  - sbi_shutdown
  - sbi_major_version
  - sbi_minor_version
  - sbi_ext_base_func
  - sbi_rfence_v02_real
  - sbi_rfence_v02
  - for_each_cpu
  - sbi_remote_sfence_vma
  - sbi_remote_hfence_gvma
  - sbi_remote_hfence_gvma_vmid
  - sbi_get_spec_version
  - sbi_get_firmware_id
  - sbi_get_firmware_version
  - sbi_probe_extension
  - sbi_spec_is_0_1
  - sbi_has_rfence
  - sbi_init
  source_file: /src/xen/xen/arch/riscv/sbi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_free_metadata_page
  - get_max_supported_mode
  - calc_offset
  - P2M_BUILD_LEVEL_OFFSETS
  - p2m_get_root_pointer
  - gstage_mode_detect
  - guest_mm_init
  - p2m_tlb_flush
  - p2m_tlb_flush_sync
  - p2m_write_unlock
  - clear_and_clean_page
  - construct_hgatp
  - p2m_alloc_root_table
  - p2m_init
  - p2m_set_allocation
  - p2m_alloc_page
  - p2m_set_type
  - p2m_get_type
  - p2m_write_pte
  - p2m_clean_pte
  - p2m_set_permission
  - p2m_pte_from_mfn
  - page_to_p2m_table
  - p2m_free_table
  - p2m_create_table
  - p2m_next_level
  - p2m_put_foreign_page
  - p2m_put_4k_page
  - p2m_put_2m_superpage
  - p2m_put_page
  - p2m_free_page
  - p2m_free_subtree
  - p2m_split_superpage
  - p2m_set_entry
  - p2m_mapping_order
  - p2m_set_range
  - map_regions_p2mt
  - check_outside_boundary
  - p2m_get_entry
  - p2m_get_page_from_gfn
  - p2m_ctxt_switch_from
  - p2m_ctxt_switch_to
  - p2m_handle_vmenter
  source_file: /src/xen/xen/arch/riscv/p2m.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P2M_MAX_SUPPORTED_LEVEL_MAPPING
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: _AC(2, U)
    - item_type: preproc_def
      name: P2M_MAX_ROOT_LEVEL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: '5'
    - item_type: preproc_def
      name: P2M_TABLE_MAP_NONE
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: '0'
    - item_type: preproc_def
      name: P2M_TABLE_MAP_NOMEM
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: '1'
    - item_type: preproc_def
      name: P2M_TABLE_SUPER_PAGE
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: '2'
    - item_type: preproc_def
      name: P2M_TABLE_NORMAL
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/xen/xen/arch/riscv/p2m.c
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: p2m_type_t
      item_type: struct
      name: md_t
      pos:
        line_end: 34
        line_start: 28
        source_file: /src/xen/xen/arch/riscv/p2m.c
    - fields:
      - name: '*p2m'
        type: struct p2m_domain
      - name: '*pt_page'
        type: struct page_info
      - name: index
        type: unsigned int
      - name: level
        type: unsigned int
      item_type: struct
      name: p2m_pte_ctx
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/xen/xen/arch/riscv/p2m.c
    typedefs: []
    union: []
- function_names:
  - RISCV_ISA_EXT_DATA
  - dt_get_cpuid_from_node
  - is_lowercase_extension_name
  - match_isa_ext
  - riscv_isa_parse_string
  - riscv_fill_hwcap_from_isa_string
  - dt_for_each_child_node
  - has_isa_extensions_property
  - dt_for_each_child_node
  - riscv_isa_extension_available
  - riscv_fill_hwcap
  source_file: /src/xen/xen/arch/riscv/cpufeature.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: unsigned int
      - name: '*name'
        type: char
      item_type: struct
      name: riscv_isa_ext_data
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/cpufeature.c
    typedefs: []
    union: []
- function_names:
  - smp_prepare_boot_cpu
  - dt_get_hartid
  - dt_processor_hartid
  source_file: /src/xen/xen/arch/riscv/smpboot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_TO_LINK
  - build_assertions
  - HANDLE_PGTBL
  - setup_initial_mapping
  - check_pgtbl_mode_support
  - setup_fixmap_mappings
  - setup_initial_pagetables
  - remove_identity_mapping
  - calc_phys_offset
  - arch_dump_shared_mem_info
  - xenmem_add_to_physmap_one
  - share_xen_page_with_guest
  - early_fdt_map
  - setup_frametable_mappings
  - setup_directmap_mappings
  - setup_mm
  - arch_vmap_virt_end
  - ioremap_attr
  - ioremap_cache
  - ioremap_wc
  - ioremap
  - flush_page_to_ram
  - page_is_offlinable
  - put_page
  - page_get_owner_and_reference
  - get_page
  source_file: /src/xen/xen/arch/riscv/mm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGTBL_INITIAL_COUNT
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/xen/xen/arch/riscv/mm.c
      type_or_value: "((CONFIG_PAGING_LEVELS - 2) * 2 + \\\n                             (XEN_VIRT_SIZE
        >> XEN_PT_LEVEL_SHIFT(1)) + 1)"
    structs:
    - fields:
      - name: num_levels
        type: unsigned int
      - name: pgtbl_count
        type: unsigned int
      - name: '*next_pgtbl'
        type: pte_t
      - name: '*pgtbl_base'
        type: pte_t
      item_type: struct
      name: mmu_desc
      pos:
        line_end: 28
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/mm.c
    typedefs: []
    union: []
- function_names:
  - reprogram_timer
  - send_timer_event
  - domain_set_time_offset
  - arch_do_domctl
  - arch_get_domain_info
  - arch_get_info_guest
  - arch_monitor_domctl_event
  - smp_send_call_function_mask
  - irq_ack_none
  - smp_send_state_dump
  - context_switch
  - continue_running
  - sync_local_execstate
  - sync_vcpu_execstate
  - startup_cpu_idle_loop
  - dump_pageframe_info
  - arch_sanitise_domain_config
  - arch_domain_create
  - arch_domain_teardown
  - arch_domain_destroy
  - arch_domain_shutdown
  - arch_domain_pause
  - arch_domain_unpause
  - arch_domain_creation_finished
  - arch_set_info_guest
  - arch_initialise_vcpu
  - arch_vcpu_reset
  - domain_relinquish_resources
  - arch_dump_domain_info
  - arch_dump_vcpu_info
  - vcpu_mark_events_pending
  - vcpu_update_evtchn_irq
  - vcpu_block_unless_event_pending
  - vcpu_kick
  - hypercall_create_continuation
  - parse_arch_dom0_param
  - raw_copy_to_guest
  - raw_copy_from_guest
  - arch_do_sysctl
  - arch_do_physinfo
  - unmap_mmio_regions
  - map_mmio_regions
  - set_foreign_p2m_entry
  - guest_physmap_remove_page
  - udelay
  - raw_clear_guest
  - __cpu_up
  - __cpu_disable
  - __cpu_die
  - get_upper_mfn_bound
  source_file: /src/xen/xen/arch/riscv/stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vm_event_fill_regs
  - vm_event_set_registers
  - vm_event_monitor_next_interrupt
  source_file: /src/xen/xen/arch/riscv/vm_event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - copy_from_paddr
  - relocate_fdt
  - start_xen
  source_file: /src/xen/xen/arch/riscv/setup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - trap_init
  - decode_trap_cause
  - decode_reserved_interrupt_cause
  - decode_interrupt_cause
  - decode_cause
  - dump_general_regs
  - X
  - dump_csrs
  - X
  - do_unexpected_trap
  - check_for_pcpu_work
  - do_trap
  - vcpu_show_execution_state
  - show_execution_state
  - arch_hypercall_tasklet_result
  - arch_do_multicall_call
  source_file: /src/xen/xen/arch/riscv/traps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - early_puts
  - early_printk
  source_file: /src/xen/xen/arch/riscv/early_printk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - aplic_init_hw_interrupts
  - aplic_init
  - aplic_irq_enable
  - aplic_irq_disable
  - aplic_irq_startup
  - aplic_get_cpu_from_mask
  - aplic_set_irq_affinity
  - aplic_handle_interrupt
  - aplic_set_irq_type
  - aplic_irq_xlate
  - aplic_preinit
  source_file: /src/xen/xen/arch/riscv/aplic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APLIC_DEFAULT_PRIORITY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/aplic.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_s_time
  - preinit_dt_xen_time
  - preinit_xen_time
  source_file: /src/xen/xen/arch/riscv/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _paging_ret_to_domheap
  - _paging_add_to_freelist
  - paging_freelist_adjust
  - paging_refill_from_domheap
  - paging_ret_to_domheap
  - paging_free_page
  - paging_alloc_page
  - paging_domain_init
  source_file: /src/xen/xen/arch/riscv/paging.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_root_page
  - pt_check_entry
  - map_table
  - unmap_table
  - create_table
  - pt_next_level
  - _pt_walk
  - pt_walk
  - pt_update_entry
  - pt_mapping_level
  - pt_update
  - map_pages_to_xen
  - destroy_xen_mappings
  - populate_pt_range
  - set_fixmap
  - clear_fixmap
  source_file: /src/xen/xen/arch/riscv/pt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_TABLE_MAP_NONE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/riscv/pt.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XEN_TABLE_MAP_NOMEM
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/riscv/pt.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XEN_TABLE_SUPER_PAGE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/riscv/pt.c
      type_or_value: '2'
    - item_type: preproc_def
      name: XEN_TABLE_NORMAL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/riscv/pt.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/aplic-priv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: paddr_start
        type: paddr_t
      - name: size
        type: size_t
      - name: '*regs'
        type: struct aplic_regs
      - name: lock
        type: spinlock_t
      - name: '*imsic_cfg'
        type: struct imsic_config
      item_type: struct
      name: aplic_priv
      pos:
        line_end: 34
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/aplic-priv.h
    typedefs: []
    union: []
- function_names:
  - vmidlen_detect
  - vmid_init
  - vmid_flush_vcpu
  - vmid_flush_hart
  - vmid_handle_vmenter
  source_file: /src/xen/xen/arch/riscv/vmid.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: generation
        type: uint64_t
      - name: next_vmid
        type: uint16_t
      - name: max_vmid
        type: uint16_t
      - name: used
        type: bool
      item_type: struct
      name: vmid_data
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/xen/xen/arch/riscv/vmid.c
    typedefs: []
    union: []
- function_names:
  - BLANK
  - OFFSET
  - asm_offsets
  source_file: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: i
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/xen/xen/arch/riscv/riscv64/asm-offsets.c
      type_or_value: '" (_val) )'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vsbi_base_ecall_handler
  source_file: /src/xen/xen/arch/riscv/vsbi/base-extension.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_SBI_VER_MAJOR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/riscv/vsbi/base-extension.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XEN_SBI_VER_MINOR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/riscv/vsbi/base-extension.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_vsbi_ext_ranges
  - vsbi_find_extension
  - vsbi_handle_ecall
  source_file: /src/xen/xen/arch/riscv/vsbi/core.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vsbi_print_char
  - vsbi_legacy_ecall_handler
  source_file: /src/xen/xen/arch/riscv/vsbi/legacy-extension.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/vmid.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLOTN
  source_file: /src/xen/xen/arch/riscv/include/asm/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONFIG_PAGING_LEVELS
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: RV_STAGE1_MODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: SATP_MODE_SV39
    - item_type: preproc_def
      name: CONFIG_PAGING_LEVELS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RV_STAGE1_MODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: SATP_MODE_SV32
    - item_type: preproc_def
      name: HYP_PT_ROOT_LEVEL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (CONFIG_PAGING_LEVELS - 1)
    - item_type: preproc_def
      name: VPN_BITS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (9)
    - item_type: preproc_def
      name: SLOTN_ENTRY_BITS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (HYP_PT_ROOT_LEVEL * VPN_BITS + PAGE_SHIFT)
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '0xFFFFFFFFC0000000'
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '0xFFFFFF8000000000'
    - item_type: preproc_def
      name: GAP_SIZE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: MB(2)
    - item_type: preproc_def
      name: XEN_VIRT_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: MB(16)
    - item_type: preproc_def
      name: BOOT_FDT_VIRT_START
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (XEN_VIRT_START + XEN_VIRT_SIZE + GAP_SIZE)
    - item_type: preproc_def
      name: BOOT_FDT_VIRT_SIZE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: MB(4)
    - item_type: preproc_def
      name: FIXMAP_BASE
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE + GAP_SIZE)
    - item_type: preproc_def
      name: DIRECTMAP_SLOT_END
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '509'
    - item_type: preproc_def
      name: DIRECTMAP_SLOT_START
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '200'
    - item_type: preproc_def
      name: DIRECTMAP_VIRT_START
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: SLOTN(DIRECTMAP_SLOT_START)
    - item_type: preproc_def
      name: DIRECTMAP_SIZE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (SLOTN(DIRECTMAP_SLOT_END + 1) - SLOTN(DIRECTMAP_SLOT_START))
    - item_type: preproc_def
      name: DIRECTMAP_VIRT_END
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (DIRECTMAP_VIRT_START + DIRECTMAP_SIZE - 1)
    - item_type: preproc_def
      name: FRAMETABLE_SCALE_FACTOR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (PAGE_SIZE/sizeof(struct page_info))
    - item_type: preproc_def
      name: FRAMETABLE_SIZE_IN_SLOTS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (((DIRECTMAP_SIZE / SLOTN(1)) / FRAMETABLE_SCALE_FACTOR) + 1)
    - item_type: preproc_def
      name: FRAMETABLE_SLOT_START
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (DIRECTMAP_SLOT_START - FRAMETABLE_SIZE_IN_SLOTS - 1)
    - item_type: preproc_def
      name: FRAMETABLE_SIZE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (FRAMETABLE_SIZE_IN_SLOTS * SLOTN(1))
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_START
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: SLOTN(FRAMETABLE_SLOT_START)
    - item_type: preproc_def
      name: FRAMETABLE_NR
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (FRAMETABLE_SIZE / sizeof(*frame_table))
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_END
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (FRAMETABLE_VIRT_START + FRAMETABLE_SIZE - 1)
    - item_type: preproc_def
      name: VMAP_SLOT_START
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (FRAMETABLE_SLOT_START - 1 - 1)
    - item_type: preproc_def
      name: VMAP_VIRT_START
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: SLOTN(VMAP_SLOT_START)
    - item_type: preproc_def
      name: VMAP_VIRT_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: GB(1)
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: XEN_VIRT_START
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_VIRT_CPUS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: 128u
    - item_type: preproc_def
      name: BITS_PER_XEN_ULONG
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CONFIG_RISCV_L1_CACHE_SHIFT
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '6'
    - item_type: preproc_def
      name: CONFIG_PAGEALLOC_MAX_ORDER
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '18'
    - item_type: preproc_def
      name: CONFIG_DOMU_MAX_ORDER
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CONFIG_HWDOM_MAX_ORDER
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPT_CONSOLE_STR
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '"dtuart"'
    - item_type: preproc_def
      name: INVALID_VCPU_ID
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: MAX_VIRT_CPUS
    - item_type: preproc_def
      name: SMP_CACHE_BYTES
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: (PAGE_SIZE << 3)
    - item_type: preproc_def
      name: IDENT_AREA_SIZE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/riscv/include/asm/config.h
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_atomic_size
  - read_atomic
  - _write_atomic
  - write_atomic
  - _add_sized
  - add_sized
  - __atomic_acquire_fence
  - __atomic_release_fence
  - ATOMIC_OP
  - ATOMIC_OPS
  - ATOMIC_OP_RETURN
  - ATOMIC_OPS
  - ATOMIC_OPS
  source_file: /src/xen/xen/arch/riscv/include/asm/atomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VSBI_EXT
  source_file: /src/xen/xen/arch/riscv/include/asm/vsbi.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: eid_start
        type: unsigned long
      - name: eid_end
        type: unsigned long
      - name: "(*handler)(unsigned long eid, unsigned long fid,\n                   struct
          cpu_user_regs *regs)"
        type: int
      item_type: struct
      name: vsbi_ext
      pos:
        line_end: 13
        line_start: 7
        source_file: /src/xen/xen/arch/riscv/include/asm/vsbi.h
    typedefs: []
    union: []
- function_names:
  - hyp_mode
  - guest_mode
  source_file: /src/xen/xen/arch/riscv/include/asm/regs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _amoswap_generic
  - emulate_xchg_1_2
  - __xchg
  - xchg
  - _generic_cmpxchg
  - emulate_cmpxchg_1_2
  - __cmpxchg
  - cmpxchg
  source_file: /src/xen/xen/arch/riscv/include/asm/cmpxchg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_testop
  - guest_bitop
  - guest_test_bit
  source_file: /src/xen/xen/arch/riscv/include/asm/guest_atomics.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMSIC_MMIO_PAGE_SHIFT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '12'
    - item_type: preproc_def
      name: IMSIC_MMIO_PAGE_SZ
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: (1UL << IMSIC_MMIO_PAGE_SHIFT)
    - item_type: preproc_def
      name: IMSIC_MIN_ID
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '63'
    - item_type: preproc_def
      name: IMSIC_MAX_ID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '2047'
    - item_type: preproc_def
      name: IMSIC_EIDELIVERY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: IMSIC_EITHRESHOLD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '0x72'
    - item_type: preproc_def
      name: IMSIC_EIP0
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: IMSIC_EIPx_BITS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '32'
    - item_type: preproc_def
      name: IMSIC_EIE0
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
      type_or_value: '0xC0'
    structs:
    - fields:
      - name: base_addr
        type: paddr_t
      - name: offset
        type: unsigned long
      item_type: struct
      name: imsic_msi
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
    - fields:
      - name: base_addr
        type: paddr_t
      - name: guest_index_bits
        type: unsigned int
      - name: hart_index_bits
        type: unsigned int
      - name: group_index_bits
        type: unsigned int
      - name: group_index_shift
        type: unsigned int
      - name: phandle
        type: unsigned int
      - name: nr_parent_irqs
        type: unsigned int
      - name: nr_ids
        type: unsigned int
      - name: '*msi'
        type: struct imsic_msi
      - name: lock
        type: spinlock_t
      item_type: struct
      name: imsic_config
      pos:
        line_end: 61
        line_start: 37
        source_file: /src/xen/xen/arch/riscv/include/asm/imsic.h
    typedefs: []
    union: []
- function_names:
  - arch_lock_acquire_barrier
  - arch_lock_release_barrier
  - arch_lock_relax
  - arch_lock_signal
  - arch_lock_signal_wmb
  source_file: /src/xen/xen/arch/riscv/include/asm/spinlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/acpi.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_hwdom_irqs
  - domain_pirq_to_irq
  - arch_evtchn_bind_pirq
  - arch_move_irqs
  source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_IRQS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: IRQ_NO_PRIORITY
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
      type_or_value: '0'
    - item_type: preproc_def
      name: nr_irqs
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
      type_or_value: 0U
    - item_type: preproc_def
      name: nr_static_irqs
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
      type_or_value: '0'
    structs:
    - fields: []
      item_type: struct
      name: arch_pirq
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
    - fields:
      - name: type
        type: unsigned int
      item_type: struct
      name: arch_irq_desc
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/xen/xen/arch/riscv/include/asm/irq.h
    typedefs: []
    union: []
- function_names:
  - evaluate_nospec
  - block_speculation
  source_file: /src/xen/xen/arch/riscv/include/asm/nospec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: max_init_domid
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/riscv/include/asm/setup.h
      type_or_value: (0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: PADDR_BITS
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: '56 '
    - item_type: preproc_def
      name: PAGETABLE_ORDER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: (9)
    - item_type: preproc_def
      name: PAGETABLE_ORDER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: (10)
    - item_type: preproc_def
      name: PAGETABLE_ENTRIES
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: (1 << PAGETABLE_ORDER)
    - item_type: preproc_def
      name: PTE_PPN_SHIFT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/riscv/include/asm/page-bits.h
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_handle_okay
  - guest_handle_subrange_okay
  source_file: /src/xen/xen/arch/riscv/include/asm/guest_access.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __raw_copy_to_guest
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/riscv/include/asm/guest_access.h
      type_or_value: raw_copy_to_guest
    - item_type: preproc_def
      name: __raw_copy_from_guest
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/riscv/include/asm/guest_access.h
      type_or_value: raw_copy_from_guest
    - item_type: preproc_def
      name: __raw_clear_guest
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/riscv/include/asm/guest_access.h
      type_or_value: raw_clear_guest
    structs: []
    typedefs: []
    union: []
- function_names:
  - __AMO
  - __AMO
  - __set_bit
  - __clear_bit
  - test_and_op_bit_ord
  - op_bit_ord
  - test_and_op_bit
  - op_bit
  - NOP
  - NOT
  - test_and_set_bit
  - test_and_clear_bit
  - test_and_change_bit
  - set_bit
  - clear_bit
  - arch_ffs
  - arch_ffsl
  - arch_fls
  - arch_flsl
  - arch_hweightl
  source_file: /src/xen/xen/arch/riscv/include/asm/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RISCV_FENCE
  - mb
  - rmb
  - wmb
  - smp_mb
  - smp_rmb
  - smp_wmb
  - smp_mb__before_atomic
  - smp_mb__after_atomic
  - local_save_flags
  - local_irq_enable
  - local_irq_disable
  - local_irq_save
  - local_irq_restore
  - local_irq_is_enabled
  - arch_fetch_and_add
  source_file: /src/xen/xen/arch/riscv/include/asm/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/traps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pfn_to_paddr
  - paddr_to_pfn
  - paddr_to_pte
  - pte_to_paddr
  - gfn_to_gaddr
  - gaddr_to_gfn
  - mfn_to_maddr
  - maddr_to_mfn
  - vmap_to_page
  - maddr_to_virt
  - mfn_from_pte
  - vmap_to_mfn
  - virt_to_maddr
  - virt_to_maddr
  - __virt_to_mfn
  - __mfn_to_virt
  - virt_to_mfn
  - mfn_to_virt
  - mfn_to_page
  - page_to_mfn
  - maddr_to_page
  - page_to_maddr
  - page_to_virt
  - virt_to_page
  - get_page_type
  - put_page_type
  - put_page_and_type
  - SHARED_M2P
  - set_gpfn_from_mfn
  - mfn_to_gfn
  - domain_get_maximum_gpfn
  - arch_memory_op
  - arch_mfns_in_directmap
  - PG_shift
  - PG_mask
  - page_state_is
  - is_xen_heap_page
  - is_xen_heap_mfn
  - is_xen_fixed_mfn
  - page_get_owner
  - page_set_owner
  - mfn_valid
  - PFN_ORDER
  - arch_get_dma_bitsize
  source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_DIRTY_IDX
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: ((1UL << (MAX_ORDER + 1)) - 1)
    - item_type: preproc_def
      name: BUDDY_NOT_SCRUBBING
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BUDDY_SCRUBBING
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUDDY_SCRUB_ABORT
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: frame_table
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: ((struct page_info *)FRAMETABLE_VIRT_START)
    - item_type: preproc_def
      name: INVALID_M2P_ENTRY
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: SHARED_M2P_ENTRY
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: (~0UL - 1UL)
    - item_type: preproc_def
      name: PDX_GROUP_SHIFT
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: (PAGE_SHIFT + VPN_BITS)
    - item_type: preproc_def
      name: PGT_none
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: 'PG_mask(0, 1)  '
    - item_type: preproc_def
      name: PGT_writable_page
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_type_mask
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_count_width
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(2)
    - item_type: preproc_def
      name: PGT_count_mask
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: ((1UL << PGT_count_width) - 1)
    - item_type: preproc_def
      name: _PGC_allocated
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(1)
    - item_type: preproc_def
      name: PGC_allocated
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 1)
    - item_type: preproc_def
      name: _PGC_xen_heap
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(2)
    - item_type: preproc_def
      name: PGC_xen_heap
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 2)
    - item_type: preproc_def
      name: _PGC_static
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(3)
    - item_type: preproc_def
      name: PGC_static
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 3)
    - item_type: preproc_def
      name: PGC_static
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PGC_need_scrub
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(4)
    - item_type: preproc_def
      name: PGC_need_scrub
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 4)
    - item_type: preproc_def
      name: _PGC_broken
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGC_broken
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 7)
    - item_type: preproc_def
      name: PGC_state
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: PGC_state_inuse
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(0, 9)
    - item_type: preproc_def
      name: PGC_state_offlining
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 9)
    - item_type: preproc_def
      name: PGC_state_offlined
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(2, 9)
    - item_type: preproc_def
      name: PGC_state_free
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: PGC_count_width
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(9)
    - item_type: preproc_def
      name: PGC_count_mask
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: ((1UL << PGC_count_width) - 1)
    - item_type: preproc_def
      name: _PGC_extra
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_shift(10)
    - item_type: preproc_def
      name: PGC_extra
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
      type_or_value: PG_mask(1, 10)
    structs:
    - fields:
      - name: list
        type: struct page_list_entry
      - name: count_info
        type: unsigned long
      - name: u
        type: "union {\n        /* Page is in use: ((count_info & PGC_count_mask)
          != 0). */\n        struct {\n            /* Type reference count and various
          PGT_xxx flags and fields. */\n            unsigned long type_info;\n        }
          inuse;\n\n        /* Page is used as an intermediate P2M page table: count_info
          == 0 */\n        struct {\n            /*\n            * Tracks the number
          of used entries in the metadata page table.\n            *\n            *
          If used_entries == 0, then `page_info.v.md.pg` can be freed and\n            *
          returned to the P2M pool.\n            */\n            unsigned long used_entries;\n
          \       } md;\n\n\n        /* Page is on a free list: ((count_info & PGC_count_mask)
          == 0). */\n        union {\n            struct {\n                /*\n                 *
          Index of the first *possibly* unscrubbed page in the buddy.\n                 *
          One more bit than maximum possible order to accommodate\n                 *
          INVALID_DIRTY_IDX.\n                 */\n#define INVALID_DIRTY_IDX ((1UL
          << (MAX_ORDER + 1)) - 1)\n                unsigned long first_dirty:MAX_ORDER
          + 1;\n\n                /* Do TLBs need flushing for safety before next
          page use? */\n                bool need_tlbflush:1;\n\n#define BUDDY_NOT_SCRUBBING
          \   0\n#define BUDDY_SCRUBBING        1\n#define BUDDY_SCRUB_ABORT      2\n
          \               unsigned long scrub_state:2;\n            };\n\n            unsigned
          long val;\n        } free;\n    }"
      - name: v
        type: "union {\n        /* Page is in use */\n        struct {\n            /*
          Owner of this page (NULL if page is anonymous). */\n            struct domain
          *domain;\n        } inuse;\n\n        /* Page is on a free list. */\n        struct
          {\n            /* Order-size of the free chunk this page is the head of.
          */\n            unsigned int order;\n        } free;\n\n        /* Page
          is used as an intermediate P2M page table */\n        struct {\n            /*\n
          \            * Pointer to a page which store metadata for an intermediate
          page\n             * table.\n             */\n            struct page_info
          *pg;\n        } md;\n    }"
      item_type: struct
      name: page_info
      pos:
        line_end: 181
        line_start: 99
        source_file: /src/xen/xen/arch/riscv/include/asm/mm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: APLIC_DOMAINCFG_IE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: BIT(8, U)
    - item_type: preproc_def
      name: APLIC_DOMAINCFG_DM
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: BIT(2, U)
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_INACTIVE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_DETACH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_EDGE_RISE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_EDGE_FALL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_LEVEL_HIGH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: APLIC_SOURCECFG_SM_LEVEL_LOW
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: APLIC_TARGET_HART_IDX_SHIFT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
      type_or_value: '18'
    structs:
    - fields:
      - name: domaincfg
        type: uint32_t
      - name: sourcecfg[1023]
        type: uint32_t
      - name: _reserved1[3008]
        type: uint8_t
      - name: mmsiaddrcfg
        type: uint32_t
      - name: mmsiaddrcfgh
        type: uint32_t
      - name: smsiaddrcfg
        type: uint32_t
      - name: smsiaddrcfgh
        type: uint32_t
      - name: _reserved2[48]
        type: uint8_t
      - name: setip[32]
        type: uint32_t
      - name: _reserved3[92]
        type: uint8_t
      - name: setipnum
        type: uint32_t
      - name: _reserved4[32]
        type: uint8_t
      - name: in_clrip[32]
        type: uint32_t
      - name: _reserved5[92]
        type: uint8_t
      - name: clripnum
        type: uint32_t
      - name: _reserved6[32]
        type: uint8_t
      - name: setie[32]
        type: uint32_t
      - name: _reserved7[92]
        type: uint8_t
      - name: setienum
        type: uint32_t
      - name: _reserved8[32]
        type: uint8_t
      - name: clrie[32]
        type: uint32_t
      - name: _reserved9[92]
        type: uint8_t
      - name: clrienum
        type: uint32_t
      - name: _reserved10[32]
        type: uint8_t
      - name: setipnum_le
        type: uint32_t
      - name: setipnum_be
        type: uint32_t
      - name: _reserved11[4088]
        type: uint8_t
      - name: genmsi
        type: uint32_t
      - name: target[1023]
        type: uint32_t
      item_type: struct
      name: aplic_regs
      pos:
        line_end: 70
        line_start: 29
        source_file: /src/xen/xen/arch/riscv/include/asm/aplic.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/mm-types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pte_attr_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/xen/arch/riscv/include/asm/mm-types.h
      type: unsigned long
    union: []
- function_names:
  - GET_INSN_LENGTH
  source_file: /src/xen/xen/arch/riscv/include/asm/bug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUG_INSTR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/riscv/include/asm/bug.h
      type_or_value: '"unimp"'
    - item_type: preproc_def
      name: INSN_LENGTH_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/bug.h
      type_or_value: _UL(0x3)
    - item_type: preproc_def
      name: INSN_LENGTH_32
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/riscv/include/asm/bug.h
      type_or_value: _UL(0x3)
    - item_type: preproc_def
      name: COMPRESSED_INSN_MASK
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/bug.h
      type_or_value: _UL(0xffff)
    structs: []
    typedefs: []
    union: []
- function_names:
  - local_hfence_gvma_all
  - flush_tlb_guest_local
  - flush_tlb_one_local
  - flush_tlb_range_va
  - tlbflush_filter
  - tlbflush_current_time
  - page_set_tlbflush_timestamp
  - arch_flush_tlb_mask
  source_file: /src/xen/xen/arch/riscv/include/asm/flushtlb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/cpufeature.h
  types:
    enum:
    - enumerators:
      - name: RISCV_ISA_EXT_f
      - name: RISCV_ISA_EXT_m
      - name: RISCV_ISA_EXT_zicsr
      - name: RISCV_ISA_EXT_zba
      - name: RISCV_ISA_EXT_smstateen
      - name: RISCV_ISA_EXT_a
      - name: RISCV_ISA_EXT_q
      - name: RISCV_ISA_EXT_zifencei
      - name: RISCV_ISA_EXT_zbb
      - name: RISCV_ISA_EXT_ssaia
      - name: RISCV_ISA_EXT_MAX
      - name: RISCV_ISA_EXT_h
      - name: RISCV_ISA_EXT_c
      - name: RISCV_ISA_EXT_v
      - name: RISCV_ISA_EXT_zihintpause
      - name: RISCV_ISA_EXT_zbs
      - name: RISCV_ISA_EXT_svade
      - name: RISCV_ISA_EXT_d
      - name: RISCV_ISA_EXT_i
      - name: RISCV_ISA_EXT_zicntr
        value: RISCV_ISA_EXT_BASE
      - name: RISCV_ISA_EXT_zihpm
      - name: RISCV_ISA_EXT_smaia
      - name: RISCV_ISA_EXT_svpbmt
      item_type: enum
      name: riscv_isa_ext_id
      pos:
        line_end: 43
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/cpufeature.h
    preproc_defs:
    - item_type: preproc_def
      name: RISCV_ISA_EXT_BASE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/cpufeature.h
      type_or_value: '26'
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_pmap_map
  - arch_pmap_unmap
  source_file: /src/xen/xen/arch/riscv/include/asm/pmap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/cache.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpuid_to_hartid
  - hartid_to_cpuid
  - set_cpuid_to_hartid
  source_file: /src/xen/xen/arch/riscv/include/asm/smp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HFENCE_VVMA
  source_file: /src/xen/xen/arch/riscv/include/asm/insn-defs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - P2M_ROOT_LEVEL
  - P2M_LEVEL_ORDER
  - P2M_ROOT_EXTRA_BITS
  - P2M_PAGETABLE_ENTRIES
  - P2M_TABLE_OFFSET
  - P2M_GFN_LEVEL_SHIFT
  - P2M_LEVEL_MASK
  - p2m_get_hostp2m
  - arch_dt_passthrough_p2m_type
  - p2m_to_mask
  - p2m_is_ram
  - p2m_is_any_ram
  - p2m_is_foreign
  - get_page_and_type
  - get_page_from_gfn
  - memory_type_changed
  - guest_physmap_mark_populate_on_demand
  - __must_check::guest_physmap_add_page
  - gfn_to_mfn
  - arch_acquire_resource_check
  - p2m_write_lock
  - p2m_is_write_locked
  - p2m_read_lock
  - p2m_read_unlock
  - p2m_is_locked
  source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P2M_ROOT_ORDER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: (ilog2(GSTAGE_ROOT_PAGE_TABLE_SIZE) - PAGE_SHIFT)
    - item_type: preproc_def
      name: P2M_ROOT_PAGES
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: BIT(P2M_ROOT_ORDER, U)
    - item_type: preproc_def
      name: paddr_bits
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: PADDR_BITS
    - item_type: preproc_def
      name: P2M_TYPE_PTE_BITS_MASK
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: PTE_RSW
    - item_type: preproc_def
      name: P2M_RAM_TYPES
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: (p2m_to_mask(p2m_ram_rw))
    - item_type: preproc_def
      name: P2M_FOREIGN_TYPES
      pos:
        line_end: 145
        line_start: 143
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_map_foreign_rw) | \\\n                           p2m_to_mask(p2m_map_foreign_ro))"
    - item_type: preproc_def
      name: P2M_ALLOC
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: '(1u<<0)   '
    - item_type: preproc_def
      name: P2M_UNSHARE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type_or_value: '(1u<<1)   '
    structs:
    - fields:
      - name: mode
        type: unsigned char
      - name: paging_levels
        type: unsigned int
      - name: name[8]
        type: char
      item_type: struct
      name: gstage_mode_desc
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
    - fields:
      - name: lock
        type: rwlock_t
      - name: pages
        type: struct page_list_head
      - name: '*root'
        type: struct page_info
      - name: mode
        type: struct gstage_mode_desc
      - name: '*domain'
        type: struct domain
      - name: need_flush
        type: bool
      - name: clean_dcache
        type: bool
      - name: max_mapped_gfn
        type: gfn_t
      - name: lowest_mapped_gfn
        type: gfn_t
      item_type: struct
      name: p2m_domain
      pos:
        line_end: 101
        line_start: 58
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
    typedefs:
    - item_type: typedef
      name: p2m_query_t
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/xen/xen/arch/riscv/include/asm/p2m.h
      type: unsigned int
    union: []
- function_names:
  - cpu_to_core
  - cpu_to_socket
  - cpu_relax
  - wfi
  - die
  - sfence_vma
  - dump_execution_state
  source_file: /src/xen/xen/arch/riscv/include/asm/processor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: zero
        type: unsigned long
      - name: ra
        type: unsigned long
      - name: sp
        type: unsigned long
      - name: gp
        type: unsigned long
      - name: tp
        type: unsigned long
      - name: t0
        type: unsigned long
      - name: t1
        type: unsigned long
      - name: t2
        type: unsigned long
      - name: s0
        type: unsigned long
      - name: s1
        type: unsigned long
      - name: a0
        type: unsigned long
      - name: a1
        type: unsigned long
      - name: a2
        type: unsigned long
      - name: a3
        type: unsigned long
      - name: a4
        type: unsigned long
      - name: a5
        type: unsigned long
      - name: a6
        type: unsigned long
      - name: a7
        type: unsigned long
      - name: s2
        type: unsigned long
      - name: s3
        type: unsigned long
      - name: s4
        type: unsigned long
      - name: s5
        type: unsigned long
      - name: s6
        type: unsigned long
      - name: s7
        type: unsigned long
      - name: s8
        type: unsigned long
      - name: s9
        type: unsigned long
      - name: s10
        type: unsigned long
      - name: s11
        type: unsigned long
      - name: t3
        type: unsigned long
      - name: t4
        type: unsigned long
      - name: t5
        type: unsigned long
      - name: t6
        type: unsigned long
      - name: sepc
        type: unsigned long
      - name: sstatus
        type: unsigned long
      - name: hstatus
        type: unsigned long
      - name: pregs
        type: unsigned long
      item_type: struct
      name: cpu_user_regs
      pos:
        line_end: 54
        line_start: 15
        source_file: /src/xen/xen/arch/riscv/include/asm/processor.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/intc.h
  types:
    enum:
    - enumerators:
      - name: INTC_APLIC
      item_type: enum
      name: intc_version
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/xen/xen/arch/riscv/include/asm/intc.h
    preproc_defs: []
    structs:
    - fields:
      - name: hw_version
        type: enum intc_version
      - name: '*node'
        type: struct dt_device_node
      - name: num_irqs
        type: unsigned int
      item_type: struct
      name: intc_info
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/intc.h
    - fields:
      - name: '*info'
        type: struct intc_info
      - name: (*init)(void)
        type: int
      - name: '*host_irq_type'
        type: struct hw_interrupt_type
      - name: (*set_irq_type)(struct irq_desc *desc, unsigned int type)
        type: void
      - name: (*set_irq_priority)(struct irq_desc *desc, unsigned int priority)
        type: void
      - name: (*handle_interrupt)(struct cpu_user_regs *regs)
        type: void
      item_type: struct
      name: intc_hw_operations
      pos:
        line_end: 43
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/intc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/fence.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RISCV_ACQUIRE_BARRIER
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/riscv/include/asm/fence.h
      type_or_value: '"\tfence r , rw\n"'
    - item_type: preproc_def
      name: RISCV_RELEASE_BARRIER
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/riscv/include/asm/fence.h
      type_or_value: '"\tfence rw, w\n"'
    - item_type: preproc_def
      name: RISCV_FULL_BARRIER
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/riscv/include/asm/fence.h
      type_or_value: '"\tfence rw, rw\n"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - alloc_vcpu_guest_context
  - free_vcpu_guest_context
  - update_guest_memory_policy
  - arch_vcpu_block
  source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: generation
        type: uint64_t
      - name: vmid
        type: uint16_t
      item_type: struct
      name: vcpu_vmid
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields:
      - name: params[HVM_NR_PARAMS]
        type: uint64_t
      item_type: struct
      name: hvm_domain
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields: []
      item_type: struct
      name: arch_vcpu_io
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields:
      - name: vmid
        type: struct vcpu_vmid
      - name: xen_saved_context
        type: "struct\n    {\n        register_t s0;\n        register_t s1;\n        register_t
          s2;\n        register_t s3;\n        register_t s4;\n        register_t
          s5;\n        register_t s6;\n        register_t s7;\n        register_t
          s8;\n        register_t s9;\n        register_t s10;\n        register_t
          s11;\n        register_t sp;\n        register_t ra;\n    }"
      - name: '*cpu_info'
        type: struct cpu_info
      - name: vsatp
        type: register_t
      item_type: struct
      name: arch_vcpu
      pos:
        line_end: 52
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields:
      - name: lock
        type: spinlock_t
      - name: freelist
        type: struct page_list_head
      - name: total_pages
        type: unsigned long
      item_type: struct
      name: paging_domain
      pos:
        line_end: 60
        line_start: 54
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields:
      - name: hvm
        type: struct hvm_domain
      - name: p2m
        type: struct p2m_domain
      - name: paging
        type: struct paging_domain
      item_type: struct
      name: arch_domain
      pos:
        line_end: 69
        line_start: 62
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    - fields: []
      item_type: struct
      name: guest_memory_policy
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/xen/xen/arch/riscv/include/asm/domain.h
    typedefs: []
    union: []
- function_names:
  - set_processor_id
  - smp_processor_id
  - set_current
  - get_cpu_current
  - guest_cpu_user_regs
  - switch_stack_and_jump
  - get_per_cpu_offset
  source_file: /src/xen/xen/arch/riscv/include/asm/current.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: current
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/riscv/include/asm/current.h
      type_or_value: this_cpu(curr_vcpu)
    structs:
    - fields:
      - name: processor_id
        type: unsigned int
      - name: hart_id
        type: unsigned long
      item_type: struct
      name: pcpu_info
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/xen/xen/arch/riscv/include/asm/current.h
    - fields:
      - name: guest_cpu_user_regs
        type: struct cpu_user_regs
      item_type: struct
      name: cpu_info
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/current.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SBI_XEN_IMPID
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SBI_EXT_0_1_SET_TIMER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: SBI_EXT_0_1_CONSOLE_PUTCHAR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SBI_EXT_0_1_CONSOLE_GETCHAR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SBI_EXT_0_1_CLEAR_IPI
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: SBI_EXT_0_1_SEND_IPI
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: SBI_EXT_0_1_REMOTE_FENCE_I
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: SBI_EXT_0_1_REMOTE_SFENCE_VMA
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: SBI_EXT_0_1_REMOTE_SFENCE_VMA_ASID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: SBI_EXT_0_1_SHUTDOWN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: SBI_EXT_BASE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x52464E43'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_SPEC_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_IMP_ID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_IMP_VERSION
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SBI_EXT_BASE_PROBE_EXT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_MVENDORID
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_MARCHID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: SBI_EXT_BASE_GET_MIMPID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_FENCE_I
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_SFENCE_VMA
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: SBI_SPEC_VERSION_MAJOR_MASK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x7f000000'
    - item_type: preproc_def
      name: SBI_SPEC_VERSION_MINOR_MASK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x00ffffff'
    - item_type: preproc_def
      name: SBI_SUCCESS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SBI_ERR_FAILURE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: SBI_ERR_NOT_SUPPORTED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: SBI_ERR_INVALID_PARAM
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: SBI_ERR_DENIED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: SBI_ERR_INVALID_ADDRESS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: SBI_SPEC_VERSION_DEFAULT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
      type_or_value: '0x1'
    structs:
    - fields:
      - name: error
        type: long
      - name: value
        type: long
      item_type: struct
      name: sbiret
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/xen/xen/arch/riscv/include/asm/sbi.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIvaddr
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: (~0ULL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: '"016llx"'
    - item_type: preproc_def
      name: PRIregister
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: '"x"'
    - item_type: preproc_def
      name: PRIvaddr
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: '"016lx"'
    - item_type: preproc_def
      name: PRIregister
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type_or_value: '"lx"'
    structs: []
    typedefs:
    - item_type: typedef
      name: vaddr_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u32
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u64
    - item_type: typedef
      name: register_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u32
    - item_type: typedef
      name: vaddr_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u64
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u64
    - item_type: typedef
      name: register_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/types.h
      type: u64
    union: []
- function_names:
  - arch_monitor_get_capabilities
  source_file: /src/xen/xen/arch/riscv/include/asm/monitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FIXMAP_ADDR
  - fix_to_virt
  - virt_to_fix
  source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIX_PMAP_BEGIN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: '(0) '
    - item_type: preproc_def
      name: FIX_PMAP_END
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: '(FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) '
    - item_type: preproc_def
      name: FIX_MISC
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: '(FIX_PMAP_END + 1)  '
    - item_type: preproc_def
      name: FIX_LAST
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: FIX_MISC
    - item_type: preproc_def
      name: FIXADDR_START
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: FIXMAP_ADDR(0)
    - item_type: preproc_def
      name: FIXADDR_TOP
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/fixmap.h
      type_or_value: FIXMAP_ADDR(FIX_LAST + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_event_delivery_is_enabled
  - local_events_need_delivery
  - local_event_delivery_enable
  - arch_get_virq_type
  source_file: /src/xen/xen/arch/riscv/include/asm/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - force_update_vcpu_system_time
  - get_cycles
  source_file: /src/xen/xen/arch/riscv/include/asm/time.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cycles_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/time.h
      type: unsigned long
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/early_printk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __raw_writeb
  - __raw_writew
  - __raw_writel
  - __raw_writeq
  - __raw_readb
  - __raw_readw
  - __raw_readl
  - __raw_readq
  - readb_cpu
  - readw_cpu
  - readl_cpu
  - readq_cpu
  - writeb_cpu
  - writew_cpu
  - writel_cpu
  - writeq_cpu
  - __io_br
  - __io_ar
  - __io_bw
  - __io_aw
  - readb
  - readw
  - readl
  - readq
  - writeb
  - writew
  - writel
  - writeq
  source_file: /src/xen/xen/arch/riscv/include/asm/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _UL
  - _ULL
  - INSN_IS_16BIT
  - INSN_IS_32BIT
  - INSN_LEN
  - RV_X
  - RVC_LW_IMM
  - RVC_LD_IMM
  - RVC_LWSP_IMM
  - RVC_LDSP_IMM
  - RVC_SWSP_IMM
  - RVC_SDSP_IMM
  - RVC_RS1S
  - RVC_RS2S
  - RVC_RS2
  - SHIFT_RIGHT
  - REG_OFFSET
  - REG_PTR
  - GET_RM
  - GET_RS1
  - GET_RS2
  - GET_RS1S
  - GET_RS2S
  - GET_RS2C
  - GET_SP
  - SET_RD
  - IMM_I
  - IMM_S
  source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSTATUS_SIE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000002)
    - item_type: preproc_def
      name: MSTATUS_MIE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000008)
    - item_type: preproc_def
      name: MSTATUS_SPIE_SHIFT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MSTATUS_SPIE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << MSTATUS_SPIE_SHIFT)
    - item_type: preproc_def
      name: MSTATUS_UBE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000040)
    - item_type: preproc_def
      name: MSTATUS_MPIE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000080)
    - item_type: preproc_def
      name: MSTATUS_SPP_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MSTATUS_SPP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << MSTATUS_SPP_SHIFT)
    - item_type: preproc_def
      name: MSTATUS_MPP_SHIFT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '11'
    - item_type: preproc_def
      name: MSTATUS_MPP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(3) << MSTATUS_MPP_SHIFT)
    - item_type: preproc_def
      name: MSTATUS_FS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00006000)
    - item_type: preproc_def
      name: MSTATUS_XS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00018000)
    - item_type: preproc_def
      name: MSTATUS_VS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000600)
    - item_type: preproc_def
      name: MSTATUS_MPRV
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00020000)
    - item_type: preproc_def
      name: MSTATUS_SUM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00040000)
    - item_type: preproc_def
      name: MSTATUS_MXR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00080000)
    - item_type: preproc_def
      name: MSTATUS_TVM
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00100000)
    - item_type: preproc_def
      name: MSTATUS_TW
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00200000)
    - item_type: preproc_def
      name: MSTATUS_TSR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00400000)
    - item_type: preproc_def
      name: MSTATUS32_SD
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x80000000)
    - item_type: preproc_def
      name: MSTATUS_UXL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000000300000000)
    - item_type: preproc_def
      name: MSTATUS_SXL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000000C00000000)
    - item_type: preproc_def
      name: MSTATUS_SBE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000001000000000)
    - item_type: preproc_def
      name: MSTATUS_MBE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000002000000000)
    - item_type: preproc_def
      name: MSTATUS_GVA
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000004000000000)
    - item_type: preproc_def
      name: MSTATUS_GVA_SHIFT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '38'
    - item_type: preproc_def
      name: MSTATUS_MPV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0000008000000000)
    - item_type: preproc_def
      name: MSTATUSH_SBE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000010)
    - item_type: preproc_def
      name: MSTATUSH_MBE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000020)
    - item_type: preproc_def
      name: MSTATUSH_GVA
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000040)
    - item_type: preproc_def
      name: MSTATUSH_GVA_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MSTATUSH_MPV
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000080)
    - item_type: preproc_def
      name: MSTATUS32_SD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x80000000)
    - item_type: preproc_def
      name: MSTATUS64_SD
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x8000000000000000)
    - item_type: preproc_def
      name: SSTATUS_SIE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SIE
    - item_type: preproc_def
      name: SSTATUS_SPIE_SHIFT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SPIE_SHIFT
    - item_type: preproc_def
      name: SSTATUS_SPIE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SPIE
    - item_type: preproc_def
      name: SSTATUS_SPP_SHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SPP_SHIFT
    - item_type: preproc_def
      name: SSTATUS_SPP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SPP
    - item_type: preproc_def
      name: SSTATUS_FS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_FS
    - item_type: preproc_def
      name: SSTATUS_XS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_XS
    - item_type: preproc_def
      name: SSTATUS_VS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_VS
    - item_type: preproc_def
      name: SSTATUS_SUM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_SUM
    - item_type: preproc_def
      name: SSTATUS_MXR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_MXR
    - item_type: preproc_def
      name: SSTATUS32_SD
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS32_SD
    - item_type: preproc_def
      name: SSTATUS64_UXL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS_UXL
    - item_type: preproc_def
      name: SSTATUS64_SD
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS64_SD
    - item_type: preproc_def
      name: HSTATUS_VSXL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x300000000)
    - item_type: preproc_def
      name: HSTATUS_VSXL_SHIFT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '32'
    - item_type: preproc_def
      name: HSTATUS_VTSR
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00400000)
    - item_type: preproc_def
      name: HSTATUS_VTW
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00200000)
    - item_type: preproc_def
      name: HSTATUS_VTVM
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00100000)
    - item_type: preproc_def
      name: HSTATUS_VGEIN
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x0003f000)
    - item_type: preproc_def
      name: HSTATUS_VGEIN_SHIFT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '12'
    - item_type: preproc_def
      name: HSTATUS_HU
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000200)
    - item_type: preproc_def
      name: HSTATUS_SPVP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000100)
    - item_type: preproc_def
      name: HSTATUS_SPV
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000080)
    - item_type: preproc_def
      name: HSTATUS_GVA
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000040)
    - item_type: preproc_def
      name: HSTATUS_VSBE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x00000020)
    - item_type: preproc_def
      name: IRQ_S_SOFT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '1'
    - item_type: preproc_def
      name: IRQ_VS_SOFT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '2'
    - item_type: preproc_def
      name: IRQ_M_SOFT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '3'
    - item_type: preproc_def
      name: IRQ_S_TIMER
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '5'
    - item_type: preproc_def
      name: IRQ_VS_TIMER
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '6'
    - item_type: preproc_def
      name: IRQ_M_TIMER
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '7'
    - item_type: preproc_def
      name: IRQ_S_EXT
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '9'
    - item_type: preproc_def
      name: IRQ_VS_EXT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '10'
    - item_type: preproc_def
      name: IRQ_M_EXT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '11'
    - item_type: preproc_def
      name: IRQ_S_GEXT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '12'
    - item_type: preproc_def
      name: IRQ_PMU_OVF
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '13'
    - item_type: preproc_def
      name: MIP_SSIP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_S_SOFT)
    - item_type: preproc_def
      name: MIP_VSSIP
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_VS_SOFT)
    - item_type: preproc_def
      name: MIP_MSIP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_M_SOFT)
    - item_type: preproc_def
      name: MIP_STIP
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_S_TIMER)
    - item_type: preproc_def
      name: MIP_VSTIP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_VS_TIMER)
    - item_type: preproc_def
      name: MIP_MTIP
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_M_TIMER)
    - item_type: preproc_def
      name: MIP_SEIP
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_S_EXT)
    - item_type: preproc_def
      name: MIP_VSEIP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_VS_EXT)
    - item_type: preproc_def
      name: MIP_MEIP
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_M_EXT)
    - item_type: preproc_def
      name: MIP_SGEIP
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_S_GEXT)
    - item_type: preproc_def
      name: MIP_LCOFIP
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << IRQ_PMU_OVF)
    - item_type: preproc_def
      name: SIP_SSIP
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MIP_SSIP
    - item_type: preproc_def
      name: SIP_STIP
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MIP_STIP
    - item_type: preproc_def
      name: PRV_U
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0)
    - item_type: preproc_def
      name: PRV_S
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(1)
    - item_type: preproc_def
      name: PRV_M
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(3)
    - item_type: preproc_def
      name: SATP32_MODE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x80000000)
    - item_type: preproc_def
      name: SATP32_MODE_SHIFT
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '31'
    - item_type: preproc_def
      name: SATP32_ASID
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x7FC00000)
    - item_type: preproc_def
      name: SATP32_PPN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x003FFFFF)
    - item_type: preproc_def
      name: SATP64_MODE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0xF000000000000000)
    - item_type: preproc_def
      name: SATP64_MODE_SHIFT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '60'
    - item_type: preproc_def
      name: SATP64_ASID
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x0FFFF00000000000)
    - item_type: preproc_def
      name: SATP64_PPN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x00000FFFFFFFFFFF)
    - item_type: preproc_def
      name: SATP_MODE_OFF
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0)
    - item_type: preproc_def
      name: SATP_MODE_SV32
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(1)
    - item_type: preproc_def
      name: SATP_MODE_SV39
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(8)
    - item_type: preproc_def
      name: SATP_MODE_SV48
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(9)
    - item_type: preproc_def
      name: SATP_MODE_SV57
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(10)
    - item_type: preproc_def
      name: SATP_MODE_SV64
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(11)
    - item_type: preproc_def
      name: HGATP_MODE_OFF
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0)
    - item_type: preproc_def
      name: HGATP_MODE_SV32X4
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(1)
    - item_type: preproc_def
      name: HGATP_MODE_SV39X4
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(8)
    - item_type: preproc_def
      name: HGATP_MODE_SV48X4
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(9)
    - item_type: preproc_def
      name: HGATP_MODE_SV57X4
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(10)
    - item_type: preproc_def
      name: HGATP32_MODE_MASK
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x80000000)
    - item_type: preproc_def
      name: HGATP32_VMID_MASK
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x1FC00000)
    - item_type: preproc_def
      name: HGATP32_PPN_MASK
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x003FFFFF)
    - item_type: preproc_def
      name: HGATP64_MODE_MASK
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0xF000000000000000)
    - item_type: preproc_def
      name: HGATP64_VMID_MASK
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x03FFF00000000000)
    - item_type: preproc_def
      name: HGATP64_PPN_MASK
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0x00000FFFFFFFFFFF)
    - item_type: preproc_def
      name: PMP_R
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x01)
    - item_type: preproc_def
      name: PMP_W
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x02)
    - item_type: preproc_def
      name: PMP_X
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x04)
    - item_type: preproc_def
      name: PMP_A
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x18)
    - item_type: preproc_def
      name: PMP_A_TOR
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x08)
    - item_type: preproc_def
      name: PMP_A_NA4
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x10)
    - item_type: preproc_def
      name: PMP_A_NAPOT
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x18)
    - item_type: preproc_def
      name: PMP_L
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x80)
    - item_type: preproc_def
      name: PMP_SHIFT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PMP_COUNT
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PMP_ADDR_MASK
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: ((_ULL(0x1) << 54) - 1)
    - item_type: preproc_def
      name: PMP_ADDR_MASK
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0xFFFFFFFF)
    - item_type: preproc_def
      name: MSTATUS_SD
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS64_SD
    - item_type: preproc_def
      name: SSTATUS_SD
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SSTATUS64_SD
    - item_type: preproc_def
      name: SATP_MODE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP64_MODE
    - item_type: preproc_def
      name: SATP_MODE_SHIFT
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP64_MODE_SHIFT
    - item_type: preproc_def
      name: SATP_PPN_MASK
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP64_PPN
    - item_type: preproc_def
      name: HGATP_PPN_MASK
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP64_PPN_MASK
    - item_type: preproc_def
      name: HGATP_VMID_MASK
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP64_VMID_MASK
    - item_type: preproc_def
      name: HGATP_MODE_MASK
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP64_MODE_MASK
    - item_type: preproc_def
      name: MSTATUS_SD
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: MSTATUS32_SD
    - item_type: preproc_def
      name: SSTATUS_SD
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SSTATUS32_SD
    - item_type: preproc_def
      name: SATP_MODE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP32_MODE
    - item_type: preproc_def
      name: SATP_MODE_SHIFT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP32_MODE_SHIFT
    - item_type: preproc_def
      name: SATP_PPN_MASK
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: SATP32_PPN
    - item_type: preproc_def
      name: HGATP_PPN_MASK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP32_PPN_MASK
    - item_type: preproc_def
      name: HGATP_VMID_MASK
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP32_VMID_MASK
    - item_type: preproc_def
      name: HGATP_MODE_MASK
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: HGATP32_MODE_MASK
    - item_type: preproc_def
      name: GSTAGE_ROOT_PAGE_TABLE_SIZE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: KB(16)
    - item_type: preproc_def
      name: TOPI_IID_SHIFT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TOPI_IID_MASK
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xfff'
    - item_type: preproc_def
      name: TOPI_IPRIO_MASK
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: MHPMEVENT_OF
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 63)
    - item_type: preproc_def
      name: MHPMEVENT_MINH
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 62)
    - item_type: preproc_def
      name: MHPMEVENT_SINH
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 61)
    - item_type: preproc_def
      name: MHPMEVENT_UINH
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 60)
    - item_type: preproc_def
      name: MHPMEVENT_VSINH
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 59)
    - item_type: preproc_def
      name: MHPMEVENT_VUINH
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 58)
    - item_type: preproc_def
      name: MHPMEVENTH_OF
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 31)
    - item_type: preproc_def
      name: MHPMEVENTH_MINH
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 30)
    - item_type: preproc_def
      name: MHPMEVENTH_SINH
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 29)
    - item_type: preproc_def
      name: MHPMEVENTH_UINH
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 28)
    - item_type: preproc_def
      name: MHPMEVENTH_VSINH
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 27)
    - item_type: preproc_def
      name: MHPMEVENTH_VUINH
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 26)
    - item_type: preproc_def
      name: MHPMEVENT_OF
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_OF << 32)
    - item_type: preproc_def
      name: MHPMEVENT_MINH
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_MINH << 32)
    - item_type: preproc_def
      name: MHPMEVENT_SINH
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_SINH << 32)
    - item_type: preproc_def
      name: MHPMEVENT_UINH
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_UINH << 32)
    - item_type: preproc_def
      name: MHPMEVENT_VSINH
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_VSINH << 32)
    - item_type: preproc_def
      name: MHPMEVENT_VUINH
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (MHPMEVENTH_VUINH << 32)
    - item_type: preproc_def
      name: MHPMEVENT_SSCOF_MASK
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _ULL(0xFFFF000000000000)
    - item_type: preproc_def
      name: ENVCFG_STCE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 63)
    - item_type: preproc_def
      name: ENVCFG_PBMTE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << 62)
    - item_type: preproc_def
      name: ENVCFGH_STCE
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 31)
    - item_type: preproc_def
      name: ENVCFGH_PBMTE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 30)
    - item_type: preproc_def
      name: ENVCFG_CBZE
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 7)
    - item_type: preproc_def
      name: ENVCFG_CBCFE
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << 6)
    - item_type: preproc_def
      name: ENVCFG_CBIE_SHIFT
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ENVCFG_CBIE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(0x3) << ENVCFG_CBIE_SHIFT)
    - item_type: preproc_def
      name: ENVCFG_CBIE_ILL
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x0)
    - item_type: preproc_def
      name: ENVCFG_CBIE_FLUSH
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x1)
    - item_type: preproc_def
      name: ENVCFG_CBIE_INV
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x3)
    - item_type: preproc_def
      name: ENVCFG_FIOM
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: _UL(0x1)
    - item_type: preproc_def
      name: CSR_USTATUS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: CSR_UIE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x004'
    - item_type: preproc_def
      name: CSR_UTVEC
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x005'
    - item_type: preproc_def
      name: CSR_USCRATCH
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x040'
    - item_type: preproc_def
      name: CSR_UEPC
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x041'
    - item_type: preproc_def
      name: CSR_UCAUSE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x042'
    - item_type: preproc_def
      name: CSR_UTVAL
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x043'
    - item_type: preproc_def
      name: CSR_UIP
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x044'
    - item_type: preproc_def
      name: CSR_FFLAGS
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x001'
    - item_type: preproc_def
      name: CSR_FRM
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x002'
    - item_type: preproc_def
      name: CSR_FCSR
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x003'
    - item_type: preproc_def
      name: CSR_CYCLE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc00'
    - item_type: preproc_def
      name: CSR_TIME
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc01'
    - item_type: preproc_def
      name: CSR_INSTRET
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc02'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER3
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc03'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER4
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc04'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER5
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc05'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER6
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc06'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER7
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc07'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER8
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc08'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER9
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc09'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER10
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0a'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER11
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0b'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER12
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0c'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER13
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0d'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER14
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0e'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER15
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc0f'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER16
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc10'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER17
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc11'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER18
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc12'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER19
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc13'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER20
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc14'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER21
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc15'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER22
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc16'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER23
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc17'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER24
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc18'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER25
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc19'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER26
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1a'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER27
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1b'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER28
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1c'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER29
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1d'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER30
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1e'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER31
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc1f'
    - item_type: preproc_def
      name: CSR_CYCLEH
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc80'
    - item_type: preproc_def
      name: CSR_TIMEH
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc81'
    - item_type: preproc_def
      name: CSR_INSTRETH
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc82'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER3H
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc83'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER4H
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc84'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER5H
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc85'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER6H
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc86'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER7H
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc87'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER8H
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc88'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER9H
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc89'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER10H
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8a'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER11H
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8b'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER12H
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8c'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER13H
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8d'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER14H
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8e'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER15H
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc8f'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER16H
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc90'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER17H
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc91'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER18H
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc92'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER19H
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc93'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER20H
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc94'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER21H
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc95'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER22H
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc96'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER23H
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc97'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER24H
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc98'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER25H
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc99'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER26H
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9a'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER27H
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9b'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER28H
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9c'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER29H
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9d'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER30H
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9e'
    - item_type: preproc_def
      name: CSR_HPMCOUNTER31H
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc9f'
    - item_type: preproc_def
      name: CSR_SSTATUS
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: CSR_SIE
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x104'
    - item_type: preproc_def
      name: CSR_STVEC
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x105'
    - item_type: preproc_def
      name: CSR_SCOUNTEREN
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x106'
    - item_type: preproc_def
      name: CSR_SENVCFG
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10a'
    - item_type: preproc_def
      name: CSR_SSCRATCH
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x140'
    - item_type: preproc_def
      name: CSR_SEPC
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x141'
    - item_type: preproc_def
      name: CSR_SCAUSE
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x142'
    - item_type: preproc_def
      name: CSR_STVAL
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x143'
    - item_type: preproc_def
      name: CSR_SIP
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x144'
    - item_type: preproc_def
      name: CSR_STIMECMP
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x14D'
    - item_type: preproc_def
      name: CSR_STIMECMPH
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x15D'
    - item_type: preproc_def
      name: CSR_SATP
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x180'
    - item_type: preproc_def
      name: CSR_SISELECT
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x150'
    - item_type: preproc_def
      name: CSR_SIREG
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x151'
    - item_type: preproc_def
      name: CSR_STOPEI
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x15c'
    - item_type: preproc_def
      name: CSR_STOPI
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xdb0'
    - item_type: preproc_def
      name: CSR_SIEH
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x114'
    - item_type: preproc_def
      name: CSR_SIPH
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x154'
    - item_type: preproc_def
      name: CSR_SSTATEEN0
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10C'
    - item_type: preproc_def
      name: CSR_SSTATEEN1
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10D'
    - item_type: preproc_def
      name: CSR_SSTATEEN2
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10E'
    - item_type: preproc_def
      name: CSR_SSTATEEN3
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10F'
    - item_type: preproc_def
      name: CSR_HSTATUS
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x600'
    - item_type: preproc_def
      name: CSR_HEDELEG
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x602'
    - item_type: preproc_def
      name: CSR_HIDELEG
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x603'
    - item_type: preproc_def
      name: CSR_HIE
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x604'
    - item_type: preproc_def
      name: CSR_HCOUNTEREN
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x606'
    - item_type: preproc_def
      name: CSR_HGEIE
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x607'
    - item_type: preproc_def
      name: CSR_HENVCFG
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x60a'
    - item_type: preproc_def
      name: CSR_HENVCFGH
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x61a'
    - item_type: preproc_def
      name: CSR_HTVAL
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x643'
    - item_type: preproc_def
      name: CSR_HIP
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x644'
    - item_type: preproc_def
      name: CSR_HVIP
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x645'
    - item_type: preproc_def
      name: CSR_HTINST
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x64a'
    - item_type: preproc_def
      name: CSR_HGEIP
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe12'
    - item_type: preproc_def
      name: CSR_HGATP
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x680'
    - item_type: preproc_def
      name: CSR_HTIMEDELTA
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x605'
    - item_type: preproc_def
      name: CSR_HTIMEDELTAH
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x615'
    - item_type: preproc_def
      name: CSR_VSSTATUS
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: CSR_VSIE
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x204'
    - item_type: preproc_def
      name: CSR_VSTVEC
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x205'
    - item_type: preproc_def
      name: CSR_VSSCRATCH
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x240'
    - item_type: preproc_def
      name: CSR_VSEPC
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x241'
    - item_type: preproc_def
      name: CSR_VSCAUSE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x242'
    - item_type: preproc_def
      name: CSR_VSTVAL
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x243'
    - item_type: preproc_def
      name: CSR_VSIP
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x244'
    - item_type: preproc_def
      name: CSR_VSATP
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x280'
    - item_type: preproc_def
      name: CSR_HVIEN
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x608'
    - item_type: preproc_def
      name: CSR_HVICTL
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x609'
    - item_type: preproc_def
      name: CSR_HVIPRIO1
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x646'
    - item_type: preproc_def
      name: CSR_HVIPRIO2
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x647'
    - item_type: preproc_def
      name: CSR_VSISELECT
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x250'
    - item_type: preproc_def
      name: CSR_VSIREG
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x251'
    - item_type: preproc_def
      name: CSR_VSTOPEI
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x25c'
    - item_type: preproc_def
      name: CSR_VSTOPI
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xeb0'
    - item_type: preproc_def
      name: CSR_HIDELEGH
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x613'
    - item_type: preproc_def
      name: CSR_HVIENH
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x618'
    - item_type: preproc_def
      name: CSR_HVIPH
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x655'
    - item_type: preproc_def
      name: CSR_HVIPRIO1H
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x656'
    - item_type: preproc_def
      name: CSR_HVIPRIO2H
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x657'
    - item_type: preproc_def
      name: CSR_VSIEH
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x214'
    - item_type: preproc_def
      name: CSR_VSIPH
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x254'
    - item_type: preproc_def
      name: CSR_HSTATEEN0
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x60C'
    - item_type: preproc_def
      name: CSR_HSTATEEN0H
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x61C'
    - item_type: preproc_def
      name: CSR_HSTATEEN1
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x60D'
    - item_type: preproc_def
      name: CSR_HSTATEEN1H
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x61D'
    - item_type: preproc_def
      name: CSR_HSTATEEN2
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x60E'
    - item_type: preproc_def
      name: CSR_HSTATEEN2H
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x61E'
    - item_type: preproc_def
      name: CSR_HSTATEEN3
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x60F'
    - item_type: preproc_def
      name: CSR_HSTATEEN3H
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x61F'
    - item_type: preproc_def
      name: CSR_MVENDORID
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xf11'
    - item_type: preproc_def
      name: CSR_MARCHID
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xf12'
    - item_type: preproc_def
      name: CSR_MIMPID
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xf13'
    - item_type: preproc_def
      name: CSR_MHARTID
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xf14'
    - item_type: preproc_def
      name: CSR_MSTATUS
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x300'
    - item_type: preproc_def
      name: CSR_MISA
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x301'
    - item_type: preproc_def
      name: CSR_MEDELEG
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x302'
    - item_type: preproc_def
      name: CSR_MIDELEG
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x303'
    - item_type: preproc_def
      name: CSR_MIE
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x304'
    - item_type: preproc_def
      name: CSR_MTVEC
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x305'
    - item_type: preproc_def
      name: CSR_MCOUNTEREN
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x306'
    - item_type: preproc_def
      name: CSR_MSTATUSH
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x310'
    - item_type: preproc_def
      name: CSR_MENVCFG
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x30a'
    - item_type: preproc_def
      name: CSR_MENVCFGH
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x31a'
    - item_type: preproc_def
      name: CSR_MSCRATCH
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x340'
    - item_type: preproc_def
      name: CSR_MEPC
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x341'
    - item_type: preproc_def
      name: CSR_MCAUSE
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x342'
    - item_type: preproc_def
      name: CSR_MTVAL
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x343'
    - item_type: preproc_def
      name: CSR_MIP
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x344'
    - item_type: preproc_def
      name: CSR_MTINST
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x34a'
    - item_type: preproc_def
      name: CSR_MTVAL2
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x34b'
    - item_type: preproc_def
      name: CSR_PMPCFG0
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a0'
    - item_type: preproc_def
      name: CSR_PMPCFG1
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a1'
    - item_type: preproc_def
      name: CSR_PMPCFG2
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a2'
    - item_type: preproc_def
      name: CSR_PMPCFG3
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a3'
    - item_type: preproc_def
      name: CSR_PMPCFG4
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a4'
    - item_type: preproc_def
      name: CSR_PMPCFG5
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a5'
    - item_type: preproc_def
      name: CSR_PMPCFG6
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a6'
    - item_type: preproc_def
      name: CSR_PMPCFG7
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a7'
    - item_type: preproc_def
      name: CSR_PMPCFG8
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a8'
    - item_type: preproc_def
      name: CSR_PMPCFG9
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3a9'
    - item_type: preproc_def
      name: CSR_PMPCFG10
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3aa'
    - item_type: preproc_def
      name: CSR_PMPCFG11
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ab'
    - item_type: preproc_def
      name: CSR_PMPCFG12
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ac'
    - item_type: preproc_def
      name: CSR_PMPCFG13
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ad'
    - item_type: preproc_def
      name: CSR_PMPCFG14
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ae'
    - item_type: preproc_def
      name: CSR_PMPCFG15
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3af'
    - item_type: preproc_def
      name: CSR_PMPADDR0
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b0'
    - item_type: preproc_def
      name: CSR_PMPADDR1
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b1'
    - item_type: preproc_def
      name: CSR_PMPADDR2
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b2'
    - item_type: preproc_def
      name: CSR_PMPADDR3
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b3'
    - item_type: preproc_def
      name: CSR_PMPADDR4
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b4'
    - item_type: preproc_def
      name: CSR_PMPADDR5
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b5'
    - item_type: preproc_def
      name: CSR_PMPADDR6
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b6'
    - item_type: preproc_def
      name: CSR_PMPADDR7
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b7'
    - item_type: preproc_def
      name: CSR_PMPADDR8
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b8'
    - item_type: preproc_def
      name: CSR_PMPADDR9
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3b9'
    - item_type: preproc_def
      name: CSR_PMPADDR10
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ba'
    - item_type: preproc_def
      name: CSR_PMPADDR11
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3bb'
    - item_type: preproc_def
      name: CSR_PMPADDR12
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3bc'
    - item_type: preproc_def
      name: CSR_PMPADDR13
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3bd'
    - item_type: preproc_def
      name: CSR_PMPADDR14
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3be'
    - item_type: preproc_def
      name: CSR_PMPADDR15
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3bf'
    - item_type: preproc_def
      name: CSR_PMPADDR16
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c0'
    - item_type: preproc_def
      name: CSR_PMPADDR17
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c1'
    - item_type: preproc_def
      name: CSR_PMPADDR18
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c2'
    - item_type: preproc_def
      name: CSR_PMPADDR19
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c3'
    - item_type: preproc_def
      name: CSR_PMPADDR20
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c4'
    - item_type: preproc_def
      name: CSR_PMPADDR21
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c5'
    - item_type: preproc_def
      name: CSR_PMPADDR22
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c6'
    - item_type: preproc_def
      name: CSR_PMPADDR23
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c7'
    - item_type: preproc_def
      name: CSR_PMPADDR24
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c8'
    - item_type: preproc_def
      name: CSR_PMPADDR25
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3c9'
    - item_type: preproc_def
      name: CSR_PMPADDR26
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ca'
    - item_type: preproc_def
      name: CSR_PMPADDR27
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3cb'
    - item_type: preproc_def
      name: CSR_PMPADDR28
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3cc'
    - item_type: preproc_def
      name: CSR_PMPADDR29
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3cd'
    - item_type: preproc_def
      name: CSR_PMPADDR30
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ce'
    - item_type: preproc_def
      name: CSR_PMPADDR31
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3cf'
    - item_type: preproc_def
      name: CSR_PMPADDR32
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d0'
    - item_type: preproc_def
      name: CSR_PMPADDR33
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d1'
    - item_type: preproc_def
      name: CSR_PMPADDR34
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d2'
    - item_type: preproc_def
      name: CSR_PMPADDR35
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d3'
    - item_type: preproc_def
      name: CSR_PMPADDR36
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d4'
    - item_type: preproc_def
      name: CSR_PMPADDR37
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d5'
    - item_type: preproc_def
      name: CSR_PMPADDR38
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d6'
    - item_type: preproc_def
      name: CSR_PMPADDR39
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d7'
    - item_type: preproc_def
      name: CSR_PMPADDR40
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d8'
    - item_type: preproc_def
      name: CSR_PMPADDR41
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3d9'
    - item_type: preproc_def
      name: CSR_PMPADDR42
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3da'
    - item_type: preproc_def
      name: CSR_PMPADDR43
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3db'
    - item_type: preproc_def
      name: CSR_PMPADDR44
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3dc'
    - item_type: preproc_def
      name: CSR_PMPADDR45
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3dd'
    - item_type: preproc_def
      name: CSR_PMPADDR46
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3de'
    - item_type: preproc_def
      name: CSR_PMPADDR47
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3df'
    - item_type: preproc_def
      name: CSR_PMPADDR48
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e0'
    - item_type: preproc_def
      name: CSR_PMPADDR49
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e1'
    - item_type: preproc_def
      name: CSR_PMPADDR50
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e2'
    - item_type: preproc_def
      name: CSR_PMPADDR51
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e3'
    - item_type: preproc_def
      name: CSR_PMPADDR52
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e4'
    - item_type: preproc_def
      name: CSR_PMPADDR53
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e5'
    - item_type: preproc_def
      name: CSR_PMPADDR54
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e6'
    - item_type: preproc_def
      name: CSR_PMPADDR55
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e7'
    - item_type: preproc_def
      name: CSR_PMPADDR56
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e8'
    - item_type: preproc_def
      name: CSR_PMPADDR57
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3e9'
    - item_type: preproc_def
      name: CSR_PMPADDR58
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ea'
    - item_type: preproc_def
      name: CSR_PMPADDR59
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3eb'
    - item_type: preproc_def
      name: CSR_PMPADDR60
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ec'
    - item_type: preproc_def
      name: CSR_PMPADDR61
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ed'
    - item_type: preproc_def
      name: CSR_PMPADDR62
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ee'
    - item_type: preproc_def
      name: CSR_PMPADDR63
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3ef'
    - item_type: preproc_def
      name: CSR_MCYCLE
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb00'
    - item_type: preproc_def
      name: CSR_MINSTRET
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb02'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER3
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb03'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER4
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb04'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER5
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb05'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER6
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb06'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER7
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb07'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER8
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb08'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER9
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb09'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER10
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0a'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER11
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0b'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER12
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0c'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER13
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0d'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER14
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0e'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER15
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb0f'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER16
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb10'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER17
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb11'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER18
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb12'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER19
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb13'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER20
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb14'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER21
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb15'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER22
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb16'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER23
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb17'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER24
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb18'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER25
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb19'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER26
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1a'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER27
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1b'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER28
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1c'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER29
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1d'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER30
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1e'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER31
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb1f'
    - item_type: preproc_def
      name: CSR_MCYCLEH
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb80'
    - item_type: preproc_def
      name: CSR_MINSTRETH
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb82'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER3H
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb83'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER4H
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb84'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER5H
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb85'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER6H
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb86'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER7H
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb87'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER8H
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb88'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER9H
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb89'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER10H
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8a'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER11H
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8b'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER12H
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8c'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER13H
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8d'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER14H
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8e'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER15H
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb8f'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER16H
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb90'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER17H
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb91'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER18H
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb92'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER19H
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb93'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER20H
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb94'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER21H
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb95'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER22H
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb96'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER23H
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb97'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER24H
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb98'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER25H
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb99'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER26H
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9a'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER27H
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9b'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER28H
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9c'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER29H
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9d'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER30H
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9e'
    - item_type: preproc_def
      name: CSR_MHPMCOUNTER31H
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb9f'
    - item_type: preproc_def
      name: CSR_MCOUNTINHIBIT
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x320'
    - item_type: preproc_def
      name: CSR_MHPMEVENT3
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x323'
    - item_type: preproc_def
      name: CSR_MHPMEVENT4
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x324'
    - item_type: preproc_def
      name: CSR_MHPMEVENT5
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x325'
    - item_type: preproc_def
      name: CSR_MHPMEVENT6
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x326'
    - item_type: preproc_def
      name: CSR_MHPMEVENT7
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x327'
    - item_type: preproc_def
      name: CSR_MHPMEVENT8
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x328'
    - item_type: preproc_def
      name: CSR_MHPMEVENT9
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x329'
    - item_type: preproc_def
      name: CSR_MHPMEVENT10
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32a'
    - item_type: preproc_def
      name: CSR_MHPMEVENT11
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32b'
    - item_type: preproc_def
      name: CSR_MHPMEVENT12
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32c'
    - item_type: preproc_def
      name: CSR_MHPMEVENT13
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32d'
    - item_type: preproc_def
      name: CSR_MHPMEVENT14
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32e'
    - item_type: preproc_def
      name: CSR_MHPMEVENT15
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x32f'
    - item_type: preproc_def
      name: CSR_MHPMEVENT16
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x330'
    - item_type: preproc_def
      name: CSR_MHPMEVENT17
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x331'
    - item_type: preproc_def
      name: CSR_MHPMEVENT18
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x332'
    - item_type: preproc_def
      name: CSR_MHPMEVENT19
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x333'
    - item_type: preproc_def
      name: CSR_MHPMEVENT20
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x334'
    - item_type: preproc_def
      name: CSR_MHPMEVENT21
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x335'
    - item_type: preproc_def
      name: CSR_MHPMEVENT22
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x336'
    - item_type: preproc_def
      name: CSR_MHPMEVENT23
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x337'
    - item_type: preproc_def
      name: CSR_MHPMEVENT24
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x338'
    - item_type: preproc_def
      name: CSR_MHPMEVENT25
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x339'
    - item_type: preproc_def
      name: CSR_MHPMEVENT26
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33a'
    - item_type: preproc_def
      name: CSR_MHPMEVENT27
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33b'
    - item_type: preproc_def
      name: CSR_MHPMEVENT28
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33c'
    - item_type: preproc_def
      name: CSR_MHPMEVENT29
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33d'
    - item_type: preproc_def
      name: CSR_MHPMEVENT30
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33e'
    - item_type: preproc_def
      name: CSR_MHPMEVENT31
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x33f'
    - item_type: preproc_def
      name: CSR_MHPMEVENT3H
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x723'
    - item_type: preproc_def
      name: CSR_MHPMEVENT4H
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x724'
    - item_type: preproc_def
      name: CSR_MHPMEVENT5H
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x725'
    - item_type: preproc_def
      name: CSR_MHPMEVENT6H
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x726'
    - item_type: preproc_def
      name: CSR_MHPMEVENT7H
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x727'
    - item_type: preproc_def
      name: CSR_MHPMEVENT8H
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x728'
    - item_type: preproc_def
      name: CSR_MHPMEVENT9H
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x729'
    - item_type: preproc_def
      name: CSR_MHPMEVENT10H
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72a'
    - item_type: preproc_def
      name: CSR_MHPMEVENT11H
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72b'
    - item_type: preproc_def
      name: CSR_MHPMEVENT12H
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72c'
    - item_type: preproc_def
      name: CSR_MHPMEVENT13H
      pos:
        line_end: 651
        line_start: 650
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72d'
    - item_type: preproc_def
      name: CSR_MHPMEVENT14H
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72e'
    - item_type: preproc_def
      name: CSR_MHPMEVENT15H
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x72f'
    - item_type: preproc_def
      name: CSR_MHPMEVENT16H
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x730'
    - item_type: preproc_def
      name: CSR_MHPMEVENT17H
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x731'
    - item_type: preproc_def
      name: CSR_MHPMEVENT18H
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x732'
    - item_type: preproc_def
      name: CSR_MHPMEVENT19H
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x733'
    - item_type: preproc_def
      name: CSR_MHPMEVENT20H
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x734'
    - item_type: preproc_def
      name: CSR_MHPMEVENT21H
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x735'
    - item_type: preproc_def
      name: CSR_MHPMEVENT22H
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x736'
    - item_type: preproc_def
      name: CSR_MHPMEVENT23H
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x737'
    - item_type: preproc_def
      name: CSR_MHPMEVENT24H
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x738'
    - item_type: preproc_def
      name: CSR_MHPMEVENT25H
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x739'
    - item_type: preproc_def
      name: CSR_MHPMEVENT26H
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73a'
    - item_type: preproc_def
      name: CSR_MHPMEVENT27H
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73b'
    - item_type: preproc_def
      name: CSR_MHPMEVENT28H
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73c'
    - item_type: preproc_def
      name: CSR_MHPMEVENT29H
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73d'
    - item_type: preproc_def
      name: CSR_MHPMEVENT30H
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73e'
    - item_type: preproc_def
      name: CSR_MHPMEVENT31H
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x73f'
    - item_type: preproc_def
      name: CSR_SCOUNTOVF
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xda0'
    - item_type: preproc_def
      name: CSR_TSELECT
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7a0'
    - item_type: preproc_def
      name: CSR_TDATA1
      pos:
        line_end: 676
        line_start: 675
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7a1'
    - item_type: preproc_def
      name: CSR_TDATA2
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7a2'
    - item_type: preproc_def
      name: CSR_TDATA3
      pos:
        line_end: 678
        line_start: 677
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7a3'
    - item_type: preproc_def
      name: CSR_DCSR
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7b0'
    - item_type: preproc_def
      name: CSR_DPC
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7b1'
    - item_type: preproc_def
      name: CSR_DSCRATCH0
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7b2'
    - item_type: preproc_def
      name: CSR_DSCRATCH1
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7b3'
    - item_type: preproc_def
      name: CSR_MISELECT
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x350'
    - item_type: preproc_def
      name: CSR_MIREG
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x351'
    - item_type: preproc_def
      name: CSR_MTOPEI
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x35c'
    - item_type: preproc_def
      name: CSR_MTOPI
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xfb0'
    - item_type: preproc_def
      name: CSR_MVIEN
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x308'
    - item_type: preproc_def
      name: CSR_MVIP
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x309'
    - item_type: preproc_def
      name: CSR_MSTATEEN0
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x30C'
    - item_type: preproc_def
      name: CSR_MSTATEEN0H
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x31C'
    - item_type: preproc_def
      name: CSR_MSTATEEN1
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x30D'
    - item_type: preproc_def
      name: CSR_MSTATEEN1H
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x31D'
    - item_type: preproc_def
      name: CSR_MSTATEEN2
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x30E'
    - item_type: preproc_def
      name: CSR_MSTATEEN2H
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x31E'
    - item_type: preproc_def
      name: CSR_MSTATEEN3
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x30F'
    - item_type: preproc_def
      name: CSR_MSTATEEN3H
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x31F'
    - item_type: preproc_def
      name: CSR_MIDELEGH
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x313'
    - item_type: preproc_def
      name: CSR_MIEH
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x314'
    - item_type: preproc_def
      name: CSR_MVIENH
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x318'
    - item_type: preproc_def
      name: CSR_MVIPH
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x319'
    - item_type: preproc_def
      name: CSR_MIPH
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x354'
    - item_type: preproc_def
      name: CAUSE_IRQ_FLAG
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_UL(1) << (__riscv_xlen - 1))
    - item_type: preproc_def
      name: CAUSE_MISALIGNED_FETCH
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: CAUSE_FETCH_ACCESS
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CAUSE_ILLEGAL_INSTRUCTION
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: CAUSE_BREAKPOINT
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: CAUSE_MISALIGNED_LOAD
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: CAUSE_LOAD_ACCESS
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: CAUSE_MISALIGNED_STORE
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: CAUSE_STORE_ACCESS
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: CAUSE_USER_ECALL
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: CAUSE_SUPERVISOR_ECALL
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: CAUSE_VIRTUAL_SUPERVISOR_ECALL
      pos:
        line_end: 731
        line_start: 730
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xa'
    - item_type: preproc_def
      name: CAUSE_MACHINE_ECALL
      pos:
        line_end: 732
        line_start: 731
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xb'
    - item_type: preproc_def
      name: CAUSE_FETCH_PAGE_FAULT
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc'
    - item_type: preproc_def
      name: CAUSE_LOAD_PAGE_FAULT
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xd'
    - item_type: preproc_def
      name: CAUSE_STORE_PAGE_FAULT
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: CAUSE_FETCH_GUEST_PAGE_FAULT
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: CAUSE_LOAD_GUEST_PAGE_FAULT
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x15'
    - item_type: preproc_def
      name: CAUSE_VIRTUAL_INST_FAULT
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x16'
    - item_type: preproc_def
      name: CAUSE_STORE_GUEST_PAGE_FAULT
      pos:
        line_end: 739
        line_start: 738
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x17'
    - item_type: preproc_def
      name: SMSTATEEN_MAX_COUNT
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SMSTATEEN0_CS_SHIFT
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SMSTATEEN0_CS
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_CS_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN0_FCSR_SHIFT
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SMSTATEEN0_FCSR
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_FCSR_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN0_IMSIC_SHIFT
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '58'
    - item_type: preproc_def
      name: SMSTATEEN0_IMSIC
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_IMSIC_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN0_AIA_SHIFT
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '59'
    - item_type: preproc_def
      name: SMSTATEEN0_AIA
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_AIA_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN0_SVSLCT_SHIFT
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '60'
    - item_type: preproc_def
      name: SMSTATEEN0_SVSLCT
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_SVSLCT_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN0_HSENVCFG_SHIFT
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '62'
    - item_type: preproc_def
      name: SMSTATEEN0_HSENVCFG
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN0_HSENVCFG_SHIFT)
    - item_type: preproc_def
      name: SMSTATEEN_STATEN_SHIFT
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '63'
    - item_type: preproc_def
      name: SMSTATEEN_STATEN
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (_ULL(1) << SMSTATEEN_STATEN_SHIFT)
    - item_type: preproc_def
      name: INSN_MATCH_LB
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: INSN_MASK_LB
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LH
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x1003'
    - item_type: preproc_def
      name: INSN_MASK_LH
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LW
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2003'
    - item_type: preproc_def
      name: INSN_MASK_LW
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LD
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3003'
    - item_type: preproc_def
      name: INSN_MASK_LD
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LBU
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4003'
    - item_type: preproc_def
      name: INSN_MASK_LBU
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LHU
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x5003'
    - item_type: preproc_def
      name: INSN_MASK_LHU
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_LWU
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6003'
    - item_type: preproc_def
      name: INSN_MASK_LWU
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_SB
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x23'
    - item_type: preproc_def
      name: INSN_MASK_SB
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_SH
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x1023'
    - item_type: preproc_def
      name: INSN_MASK_SH
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_SW
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2023'
    - item_type: preproc_def
      name: INSN_MASK_SW
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_SD
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3023'
    - item_type: preproc_def
      name: INSN_MASK_SD
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FLW
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2007'
    - item_type: preproc_def
      name: INSN_MASK_FLW
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FLD
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3007'
    - item_type: preproc_def
      name: INSN_MASK_FLD
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FLQ
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4007'
    - item_type: preproc_def
      name: INSN_MASK_FLQ
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FSW
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2027'
    - item_type: preproc_def
      name: INSN_MASK_FSW
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FSD
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3027'
    - item_type: preproc_def
      name: INSN_MASK_FSD
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_FSQ
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4027'
    - item_type: preproc_def
      name: INSN_MASK_FSQ
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x707f'
    - item_type: preproc_def
      name: INSN_MATCH_C_LD
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6000'
    - item_type: preproc_def
      name: INSN_MASK_C_LD
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_SD
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe000'
    - item_type: preproc_def
      name: INSN_MASK_C_SD
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_LW
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: INSN_MASK_C_LW
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_SW
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc000'
    - item_type: preproc_def
      name: INSN_MASK_C_SW
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_LDSP
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6002'
    - item_type: preproc_def
      name: INSN_MASK_C_LDSP
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_SDSP
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe002'
    - item_type: preproc_def
      name: INSN_MASK_C_SDSP
      pos:
        line_end: 807
        line_start: 806
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_LWSP
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x4002'
    - item_type: preproc_def
      name: INSN_MASK_C_LWSP
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_SWSP
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xc002'
    - item_type: preproc_def
      name: INSN_MASK_C_SWSP
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FLD
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: INSN_MASK_C_FLD
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FLW
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6000'
    - item_type: preproc_def
      name: INSN_MASK_C_FLW
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FSD
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xa000'
    - item_type: preproc_def
      name: INSN_MASK_C_FSD
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FSW
      pos:
        line_end: 819
        line_start: 818
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe000'
    - item_type: preproc_def
      name: INSN_MASK_C_FSW
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FLDSP
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x2002'
    - item_type: preproc_def
      name: INSN_MASK_C_FLDSP
      pos:
        line_end: 822
        line_start: 821
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FSDSP
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xa002'
    - item_type: preproc_def
      name: INSN_MASK_C_FSDSP
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FLWSP
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x6002'
    - item_type: preproc_def
      name: INSN_MASK_C_FLWSP
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MATCH_C_FSWSP
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe002'
    - item_type: preproc_def
      name: INSN_MASK_C_FSWSP
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xe003'
    - item_type: preproc_def
      name: INSN_MASK_WFI
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xffffff00'
    - item_type: preproc_def
      name: INSN_MATCH_WFI
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x10500000'
    - item_type: preproc_def
      name: INSN_MASK_FENCE_TSO
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: INSN_MATCH_FENCE_TSO
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x8330000f'
    - item_type: preproc_def
      name: INSN_PSEUDO_VS_LOAD
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x00003000'
    - item_type: preproc_def
      name: INSN_PSEUDO_VS_STORE
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x00003020'
    - item_type: preproc_def
      name: INSN_PSEUDO_VS_LOAD
      pos:
        line_end: 847
        line_start: 846
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: INSN_PSEUDO_VS_STORE
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x00002020'
    - item_type: preproc_def
      name: INSN_16BIT_MASK
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: INSN_32BIT_MASK
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x1c'
    - item_type: preproc_def
      name: LOG_REGBYTES
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LOG_REGBYTES
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REGBYTES
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: (1 << LOG_REGBYTES)
    - item_type: preproc_def
      name: SH_RD
      pos:
        line_end: 874
        line_start: 873
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SH_RS1
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SH_RS2
      pos:
        line_end: 876
        line_start: 875
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SH_RS2C
      pos:
        line_end: 877
        line_start: 876
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '2'
    - item_type: preproc_def
      name: REG_MASK
      pos:
        line_end: 903
        line_start: 901
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: ((1 << (5 + LOG_REGBYTES)) - (1 << LOG_REGBYTES))
    - item_type: preproc_def
      name: MASK_FUNCT3
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/xen/xen/arch/riscv/include/asm/riscv_encoding.h
      type_or_value: '0x7000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/riscv/include/asm/paging.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XEN_PT_LEVEL_ORDER
  - XEN_PT_LEVEL_SHIFT
  - XEN_PT_LEVEL_SIZE
  - XEN_PT_LEVEL_MAP_MASK
  - XEN_PT_LEVEL_MASK
  - pt_linear_offset
  - pt_index
  - TABLE_OFFSET
  - l0_table_offset
  - l1_table_offset
  - l2_table_offset
  - DECLARE_OFFSETS
  - pte_set_mfn
  - pte_get_mfn
  - pte_is_valid
  - pte_is_table
  - pte_is_mapping
  - pte_is_superpage
  - clean_and_invalidate_dcache_va_range
  - clean_dcache_va_range
  - invalidate_icache
  - clear_page
  - copy_page
  - scrub_page_hot
  - write_pte
  - read_pte
  - pte_from_mfn
  source_file: /src/xen/xen/arch/riscv/include/asm/page.h
  types:
    enum:
    - enumerators:
      - name: pbmt_pma
      - name: pbmt_nc
      - name: pbmt_count
      - name: pbmt_io
      - name: pbmt_rsvd
      item_type: enum
      name: pbmt_type
      pos:
        line_end: 81
        line_start: 75
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
    preproc_defs:
    - item_type: preproc_def
      name: VPN_MASK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PAGETABLE_ENTRIES - 1UL)
    - item_type: preproc_def
      name: PTE_VALID
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: PTE_READABLE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: PTE_WRITABLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: PTE_EXECUTABLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: PTE_USER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: PTE_GLOBAL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(5, UL)
    - item_type: preproc_def
      name: PTE_ACCESSED
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(6, UL)
    - item_type: preproc_def
      name: PTE_DIRTY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(7, UL)
    - item_type: preproc_def
      name: PTE_RSW
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (BIT(8, UL) | BIT(9, UL))
    - item_type: preproc_def
      name: PTE_PBMT_NOCACHE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(61, UL)
    - item_type: preproc_def
      name: PTE_PBMT_IO
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(62, UL)
    - item_type: preproc_def
      name: PTE_LEAF_DEFAULT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
    - item_type: preproc_def
      name: PTE_TABLE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_VALID)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RO
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_VALID | PTE_READABLE)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RW
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_VALID | PTE_READABLE | PTE_WRITABLE)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_VALID | PTE_READABLE | PTE_EXECUTABLE)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: PAGE_HYPERVISOR_RW
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_NOCACHE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PAGE_HYPERVISOR_RW | PTE_PBMT_IO)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_WC
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PAGE_HYPERVISOR_RW | PTE_PBMT_NOCACHE)
    - item_type: preproc_def
      name: PTE_SMALL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(10, UL)
    - item_type: preproc_def
      name: PTE_POPULATE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: BIT(11, UL)
    - item_type: preproc_def
      name: PTE_ACCESS_MASK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_READABLE | PTE_WRITABLE | PTE_EXECUTABLE)
    - item_type: preproc_def
      name: PTE_PBMT_MASK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: (PTE_PBMT_NOCACHE | PTE_PBMT_IO)
    - item_type: preproc_def
      name: PAGETABLE_ORDER_MASK
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: ((_AC(1, U) << PAGETABLE_ORDER) - 1)
    - item_type: preproc_def
      name: PTE_PPN_MASK
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: _UL(0x3FFFFFFFFFFC00)
    - item_type: preproc_def
      name: PTE_PPN_MASK
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: _U(0xFFFFFC00)
    - item_type: preproc_def
      name: clear_page_hot
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: clear_page_cold
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: scrub_page_cold
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
      type_or_value: scrub_page_hot
    structs:
    - fields: []
      item_type: struct
      name: pte_t
      pos:
        line_end: 120
        line_start: 114
        source_file: /src/xen/xen/arch/riscv/include/asm/page.h
    typedefs: []
    union: []
- function_names:
  - csr_read
  - csr_swap
  - csr_read_set
  - csr_read_clear
  source_file: /src/xen/xen/arch/riscv/include/asm/csr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: rK
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/csr.h
      type_or_value: "\" (__v)                         \\\n                           :
        \"memory\" );                        \\\n})"
    - item_type: preproc_def
      name: rK
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/xen/xen/arch/riscv/include/asm/csr.h
      type_or_value: "\" (__v)                         \\\n                           :
        \"memory\" );                        \\\n})"
    - item_type: preproc_def
      name: rK
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/xen/xen/arch/riscv/include/asm/csr.h
      type_or_value: "\" (__v)                         \\\n                           :
        \"memory\" );                        \\\n})"
    structs: []
    typedefs: []
    union: []
- function_names:
  - __ASM_STR
  - __ASM_STR
  - __REG_SEL
  - __REG_SEL
  source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REG_L
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: __REG_SEL(ld, lw)
    - item_type: preproc_def
      name: REG_S
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: __REG_SEL(sd, sw)
    - item_type: preproc_def
      name: RISCV_PTR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: .dword
    - item_type: preproc_def
      name: RISCV_PTR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: '".dword"'
    - item_type: preproc_def
      name: RISCV_PTR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: .word
    - item_type: preproc_def
      name: RISCV_PTR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: '".word"'
    - item_type: preproc_def
      name: RISCV_INT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: __ASM_STR(.word)
    - item_type: preproc_def
      name: RISCV_SHORT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/riscv/include/asm/asm.h
      type_or_value: __ASM_STR(.half)
    structs: []
    typedefs: []
    union: []
- function_names:
  - machine_halt
  - machine_restart
  source_file: /src/xen/xen/arch/ppc/shutdown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tlbiel_radix_set_isa300
  - tlbiel_all_isa300
  - radix__tlbiel_all
  - tlbie_all
  source_file: /src/xen/xen/arch/ppc/tlb-radix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POWER9_TLB_SETS_RADIX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/tlb-radix.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: RIC_FLUSH_TLB
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/tlb-radix.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RIC_FLUSH_PWC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/tlb-radix.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RIC_FLUSH_ALL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/tlb-radix.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_s_time
  - reprogram_timer
  - send_timer_event
  - show_execution_state
  - arch_hypercall_tasklet_result
  - vcpu_show_execution_state
  - vm_event_fill_regs
  - vm_event_set_registers
  - vm_event_monitor_next_interrupt
  - arch_get_domain_info
  - arch_flush_tlb_mask
  - smp_send_event_check_mask
  - smp_send_call_function_mask
  - irq_ack_none
  - arch_init_one_irq_desc
  - smp_send_state_dump
  - context_switch
  - continue_running
  - sync_local_execstate
  - sync_vcpu_execstate
  - startup_cpu_idle_loop
  - dump_pageframe_info
  - arch_vcpu_create
  - arch_vcpu_destroy
  - arch_sanitise_domain_config
  - arch_domain_create
  - arch_domain_teardown
  - arch_domain_destroy
  - arch_domain_shutdown
  - arch_domain_pause
  - arch_domain_unpause
  - arch_domain_creation_finished
  - arch_set_info_guest
  - arch_initialise_vcpu
  - arch_vcpu_reset
  - domain_relinquish_resources
  - arch_dump_domain_info
  - arch_dump_vcpu_info
  - vcpu_mark_events_pending
  - vcpu_update_evtchn_irq
  - vcpu_block_unless_event_pending
  - vcpu_kick
  - hypercall_create_continuation
  - parse_arch_dom0_param
  - udelay
  - share_xen_page_with_guest
  source_file: /src/xen/xen/arch/ppc/stubs.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_exceptions
  - start_xen
  source_file: /src/xen/xen/arch/ppc/setup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - radix_dprintk
  - lvl1_pd_pool_alloc
  - lvl2_pd_pool_alloc
  - lvl3_pd_pool_alloc
  - lvl4_pt_pool_alloc
  - setup_initial_mapping
  - setup_partition_table
  - setup_process_table
  - setup_initial_pagetables
  - put_page
  - arch_dump_shared_mem_info
  - xenmem_add_to_physmap_one
  - destroy_xen_mappings
  - map_pages_to_xen
  - populate_pt_range
  source_file: /src/xen/xen/arch/ppc/mm-radix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_LVL1_PD_COUNT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INITIAL_LVL2_LVL3_PD_COUNT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: '2'
    - item_type: preproc_def
      name: INITIAL_LVL4_PT_COUNT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: '256'
    - item_type: preproc_def
      name: PATB_SIZE_LOG2
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: '16 '
    - item_type: preproc_def
      name: PATB_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: (1UL << PATB_SIZE_LOG2)
    - item_type: preproc_def
      name: PRTB_SIZE_LOG2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: '12'
    - item_type: preproc_def
      name: PRTB_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/ppc/mm-radix.c
      type_or_value: (1UL << PRTB_SIZE_LOG2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - early_printk_init
  - early_puts
  - early_printk
  source_file: /src/xen/xen/arch/ppc/early_printk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - opal_putchar
  - boot_opal_init
  source_file: /src/xen/xen/arch/ppc/opal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_VIRT_CPUS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: 1024u
    - item_type: preproc_def
      name: BITS_PER_XEN_ULONG
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CONFIG_PPC_L1_CACHE_SHIFT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '7'
    - item_type: preproc_def
      name: CONFIG_PAGEALLOC_MAX_ORDER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '18'
    - item_type: preproc_def
      name: CONFIG_DOMU_MAX_ORDER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CONFIG_HWDOM_MAX_ORDER
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPT_CONSOLE_STR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '"dtuart"'
    - item_type: preproc_def
      name: INVALID_VCPU_ID
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: MAX_VIRT_CPUS
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: _AC(0xc000000000000000, UL)
    - item_type: preproc_def
      name: EXCEPTION_VECTORS_START
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: _AC(0xc000000000000100, UL)
    - item_type: preproc_def
      name: VMAP_VIRT_START
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: (XEN_VIRT_START + GB(1))
    - item_type: preproc_def
      name: VMAP_VIRT_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: GB(1)
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_START
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: (XEN_VIRT_START + GB(32))
    - item_type: preproc_def
      name: FRAMETABLE_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: GB(32)
    - item_type: preproc_def
      name: FRAMETABLE_NR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: (FRAMETABLE_SIZE / sizeof(*frame_table))
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: XEN_VIRT_START
    - item_type: preproc_def
      name: SMP_CACHE_BYTES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: STACK_ORDER
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: (PAGE_SIZE << STACK_ORDER)
    - item_type: preproc_def
      name: STACK_VOLATILE_AREA
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '288'
    - item_type: preproc_def
      name: STACK_FRAME_OVERHEAD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '32'
    - item_type: preproc_def
      name: STACK_ALIGN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/ppc/include/asm/config.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - atomic_read
  - _atomic_read
  - atomic_set
  - _atomic_set
  - build_atomic_read
  - build_atomic_write
  - build_add_sized
  - add_sized
  - atomic_add
  - atomic_add_return
  - atomic_sub
  - atomic_sub_return
  - atomic_inc
  - atomic_inc_return
  - atomic_dec
  - atomic_dec_return
  - atomic_dec_if_positive
  - atomic_compareandswap
  - arch_cmpxchg
  - atomic_cmpxchg
  - ATOMIC_OP
  - atomic_sub_and_test
  - atomic_inc_and_test
  - atomic_dec_and_test
  - atomic_add_negative
  - __atomic_add_unless
  - atomic_add_unless
  source_file: /src/xen/xen/arch/ppc/include/asm/atomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: (*(p))
        type: typeof
      - name: c[sizeof(*(p))]
        type: char
      item_type: union
      name: x_
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/xen/xen/arch/ppc/include/asm/atomic.h
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPRN_VRSAVE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SPRN_DSISR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SPRN_DAR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '19'
    - item_type: preproc_def
      name: SPRN_DEC
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SPRN_SRR0
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '26'
    - item_type: preproc_def
      name: SPRN_SRR1
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '27'
    - item_type: preproc_def
      name: SPRN_TBRL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '268'
    - item_type: preproc_def
      name: SPRN_TBRU
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '269'
    - item_type: preproc_def
      name: SPRN_SPRG0
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '272'
    - item_type: preproc_def
      name: SPRN_SPRG1
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '273'
    - item_type: preproc_def
      name: SPRN_SPRG2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '274'
    - item_type: preproc_def
      name: SPRN_SPRG3
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '275'
    - item_type: preproc_def
      name: SPRN_TBWL
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '284'
    - item_type: preproc_def
      name: SPRN_TBWU
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '285'
    - item_type: preproc_def
      name: SPRN_HSPRG0
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '304'
    - item_type: preproc_def
      name: SPRN_HSPRG1
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '305'
    - item_type: preproc_def
      name: SPRN_HDEC
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '310'
    - item_type: preproc_def
      name: SPRN_HIOR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '311'
    - item_type: preproc_def
      name: SPRN_RMOR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '312'
    - item_type: preproc_def
      name: SPRN_HRMOR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '313'
    - item_type: preproc_def
      name: SPRN_HSRR0
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '314'
    - item_type: preproc_def
      name: SPRN_HSRR1
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '315'
    - item_type: preproc_def
      name: SPRN_LPIDR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '319'
    - item_type: preproc_def
      name: SPRN_PTCR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "0x1D0\t"
    - item_type: preproc_def
      name: SPRN_PID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "0x030\t"
    - item_type: preproc_def
      name: SPRN_MMCRA
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '786'
    - item_type: preproc_def
      name: MMCRA_SAMPHV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x10000000, UL) '
    - item_type: preproc_def
      name: MMCRA_SAMPPR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x08000000, UL) '
    - item_type: preproc_def
      name: MMCRA_SAMPLE_ENABLE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x00000001, UL) '
    - item_type: preproc_def
      name: NUM_PMCS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SPRN_PMC1
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '787'
    - item_type: preproc_def
      name: SPRN_PMC2
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '788'
    - item_type: preproc_def
      name: SPRN_PMC3
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '789'
    - item_type: preproc_def
      name: SPRN_PMC4
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '790'
    - item_type: preproc_def
      name: SPRN_PMC5
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '791'
    - item_type: preproc_def
      name: SPRN_PMC6
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '792'
    - item_type: preproc_def
      name: SPRN_PMC7
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '793'
    - item_type: preproc_def
      name: SPRN_PMC8
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '794'
    - item_type: preproc_def
      name: SPRN_MMCR0
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '795'
    - item_type: preproc_def
      name: MMCR0_FC
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x80000000, UL) '
    - item_type: preproc_def
      name: MMCR0_FCS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x40000000, UL) '
    - item_type: preproc_def
      name: MMCR0_FCP
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x20000000, UL) '
    - item_type: preproc_def
      name: MMCR0_FCM1
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x10000000, UL) '
    - item_type: preproc_def
      name: MMCR0_FCM0
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x08000000, UL) '
    - item_type: preproc_def
      name: MMCR0_PMAE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x04000000, UL) '
    - item_type: preproc_def
      name: MMCR0_PMAO
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x00000080, UL) '
    - item_type: preproc_def
      name: MMCR0_FCH
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x00000001, UL) '
    - item_type: preproc_def
      name: SPRN_SIAR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '796'
    - item_type: preproc_def
      name: SPRN_SDAR
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '797'
    - item_type: preproc_def
      name: SPRN_MMCR1
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '798'
    - item_type: preproc_def
      name: SPRN_HID0
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1008'
    - item_type: preproc_def
      name: SPRN_HID1
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1009'
    - item_type: preproc_def
      name: SPRN_HID4
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1012'
    - item_type: preproc_def
      name: SPRN_DABR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1013'
    - item_type: preproc_def
      name: SPRN_HID5
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1014'
    - item_type: preproc_def
      name: SPRN_DABRX
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1015'
    - item_type: preproc_def
      name: SPRN_HID6
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1017'
    - item_type: preproc_def
      name: SPRN_HID7
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1018'
    - item_type: preproc_def
      name: SPRN_HID8
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1019'
    - item_type: preproc_def
      name: SPRN_PIR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '1023'
    - item_type: preproc_def
      name: SPRN_LPCR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "0x13E\t"
    - item_type: preproc_def
      name: LPCR_VPM0
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x8000000000000000, UL)
    - item_type: preproc_def
      name: LPCR_VPM1
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x4000000000000000, UL)
    - item_type: preproc_def
      name: LPCR_ISL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x2000000000000000, UL)
    - item_type: preproc_def
      name: LPCR_VC_SH
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '61'
    - item_type: preproc_def
      name: LPCR_DPFD_SH
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '52'
    - item_type: preproc_def
      name: LPCR_DPFD
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: (_AC(7, UL) << LPCR_DPFD_SH)
    - item_type: preproc_def
      name: LPCR_VRMASD_SH
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '47'
    - item_type: preproc_def
      name: LPCR_VRMASD
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: (_AC(0x1f, UL) << LPCR_VRMASD_SH)
    - item_type: preproc_def
      name: LPCR_VRMA_L
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x0008000000000000, UL)
    - item_type: preproc_def
      name: LPCR_VRMA_LP0
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x0001000000000000, UL)
    - item_type: preproc_def
      name: LPCR_VRMA_LP1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x0000800000000000, UL)
    - item_type: preproc_def
      name: LPCR_RMLS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "0x1C000000\t"
    - item_type: preproc_def
      name: LPCR_RMLS_SH
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '26'
    - item_type: preproc_def
      name: LPCR_HAIL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000004000000, UL)   '
    - item_type: preproc_def
      name: LPCR_ILE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000002000000, UL)   '
    - item_type: preproc_def
      name: LPCR_AIL
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000001800000, UL)\t"
    - item_type: preproc_def
      name: LPCR_AIL_0
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000000000, UL)\t"
    - item_type: preproc_def
      name: LPCR_AIL_3
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000001800000, UL)   '
    - item_type: preproc_def
      name: LPCR_ONL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000040000, UL)\t"
    - item_type: preproc_def
      name: LPCR_LD
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000020000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x000000000001f000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECEDP
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000010000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECEDH
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000008000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECE0
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000004000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECE1
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000002000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECE2
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000001000, UL)\t"
    - item_type: preproc_def
      name: LPCR_PECE_HVEE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000400000000000, UL)\t"
    - item_type: preproc_def
      name: LPCR_MER
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000000800, UL)\t"
    - item_type: preproc_def
      name: LPCR_MER_SH
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '11'
    - item_type: preproc_def
      name: LPCR_GTSE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000000400, UL)  \t"
    - item_type: preproc_def
      name: LPCR_TC
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: "_AC(0x0000000000000200, UL)\t"
    - item_type: preproc_def
      name: LPCR_HEIC
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000010, UL)   '
    - item_type: preproc_def
      name: LPCR_LPES
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '0x0000000c'
    - item_type: preproc_def
      name: LPCR_LPES0
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000008, UL)      '
    - item_type: preproc_def
      name: LPCR_LPES1
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000004, UL)      '
    - item_type: preproc_def
      name: LPCR_LPES_SH
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LPCR_RMI
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000002, UL)      '
    - item_type: preproc_def
      name: LPCR_HVICE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000002, UL)      '
    - item_type: preproc_def
      name: LPCR_HDICE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000000001, UL)      '
    - item_type: preproc_def
      name: LPCR_UPRT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: '_AC(0x0000000000400000, UL)      '
    - item_type: preproc_def
      name: LPCR_HR
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/ppc/include/asm/regs.h
      type_or_value: _AC(0x0000000000100000, UL)
    structs: []
    typedefs: []
    union: []
- function_names:
  - unimplemented_guest_bit_op
  - guest_test_bit
  - guest_clear_bit
  - guest_set_bit
  - guest_test_and_set_bit
  - guest_test_and_clear_bit
  - guest_test_and_change_bit
  source_file: /src/xen/xen/arch/ppc/include/asm/guest_atomics.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_lock_acquire_barrier
  - arch_lock_release_barrier
  - arch_lock_relax
  - arch_lock_signal_wmb
  source_file: /src/xen/xen/arch/ppc/include/asm/spinlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_hwdom_irqs
  - domain_pirq_to_irq
  - arch_move_irqs
  - platform_get_irq
  source_file: /src/xen/xen/arch/ppc/include/asm/irq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: nr_irqs
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/ppc/include/asm/irq.h
      type_or_value: 0U
    - item_type: preproc_def
      name: nr_static_irqs
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/ppc/include/asm/irq.h
      type_or_value: '0'
    structs:
    - fields: []
      item_type: struct
      name: arch_pirq
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/irq.h
    - fields:
      - name: type
        type: unsigned int
      item_type: struct
      name: arch_irq_desc
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/irq.h
    typedefs: []
    union: []
- function_names:
  - evaluate_nospec
  - block_speculation
  source_file: /src/xen/xen/arch/ppc/include/asm/nospec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: max_init_domid
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/ppc/include/asm/setup.h
      type_or_value: (0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/page-bits.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/ppc/include/asm/page-bits.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: PADDR_BITS
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/ppc/include/asm/page-bits.h
      type_or_value: '53'
    - item_type: preproc_def
      name: VADDR_BITS
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/ppc/include/asm/page-bits.h
      type_or_value: '52'
    structs: []
    typedefs: []
    union: []
- function_names:
  - raw_copy_to_guest
  - raw_copy_to_guest_flush_dcache
  - raw_copy_from_guest
  - raw_clear_guest
  - copy_to_guest_phys_flush_dcache
  - access_guest_memory_by_gpa
  - guest_handle_okay
  - guest_handle_subrange_okay
  source_file: /src/xen/xen/arch/ppc/include/asm/guest_access.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __raw_copy_to_guest
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/ppc/include/asm/guest_access.h
      type_or_value: raw_copy_to_guest
    - item_type: preproc_def
      name: __raw_copy_from_guest
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/ppc/include/asm/guest_access.h
      type_or_value: raw_copy_from_guest
    - item_type: preproc_def
      name: __raw_clear_guest
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/ppc/include/asm/guest_access.h
      type_or_value: raw_clear_guest
    structs: []
    typedefs: []
    union: []
- function_names:
  - __set_bit
  - __clear_bit
  - PPC_BITLSHIFT
  - PPC_BIT
  - PPC_BITMASK
  - DEFINE_BITOP
  - DEFINE_CLROP
  - set_bit
  - clear_bit
  - test_and_clear_bits
  - test_and_clear_bit
  - test_and_set_bits
  - test_and_set_bit
  - arch_ffs
  - arch_ffsl
  - arch_fls
  - arch_flsl
  - arch_hweightl
  source_file: /src/xen/xen/arch/ppc/include/asm/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xchg
  - build_xchg
  - __xchg
  - __cmpxchg_u32
  - __cmpxchg_u64
  - __cmpxchg
  - cmpxchg_user
  - cmpxchg
  - mb
  - rmb
  - wmb
  - read_barrier_depends
  - set_mb
  - set_wmb
  - smp_mb__before_atomic
  - smp_mb__after_atomic
  - smp_mb
  - smp_rmb
  - smp_wmb
  - smp_read_barrier_depends
  - local_save_flags
  - local_irq_restore
  - local_irq_disable
  - local_irq_enable
  - __do_save_and_cli
  - local_irq_save
  - local_irq_is_enabled
  - arch_fetch_and_add
  source_file: /src/xen/xen/arch/ppc/include/asm/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pfn_to_paddr
  - paddr_to_pfn
  - gfn_to_gaddr
  - gaddr_to_gfn
  - mfn_to_maddr
  - maddr_to_mfn
  - vmap_to_mfn
  - vmap_to_page
  - virt_to_maddr
  - maddr_to_virt
  - __pa
  - __va
  - __virt_to_mfn
  - __mfn_to_virt
  - virt_to_page
  - virt_to_mfn
  - mfn_to_virt
  - PG_shift
  - PG_mask
  - page_state_is
  - is_xen_heap_page
  - is_xen_heap_mfn
  - is_xen_fixed_mfn
  - page_get_owner
  - page_set_owner
  - mfn_valid
  - PFN_ORDER
  - mfn_to_page
  - page_to_mfn
  - page_to_virt
  - get_page_type
  - put_page_type
  - get_page_nr
  - put_page_nr
  - put_page_and_type
  - SHARED_M2P
  - set_gpfn_from_mfn
  - mfn_to_gfn
  - domain_get_maximum_gpfn
  - arch_memory_op
  - arch_get_dma_bitsize
  - arch_mfns_in_directmap
  source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGT_none
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: 'PG_mask(0, 1)  '
    - item_type: preproc_def
      name: PGT_writable_page
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_type_mask
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_count_mask
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(3, 3)
    - item_type: preproc_def
      name: _PGC_allocated
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(1)
    - item_type: preproc_def
      name: PGC_allocated
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 1)
    - item_type: preproc_def
      name: _PGC_xen_heap
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(2)
    - item_type: preproc_def
      name: PGC_xen_heap
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 2)
    - item_type: preproc_def
      name: _PGC_need_scrub
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(3)
    - item_type: preproc_def
      name: PGC_need_scrub
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 3)
    - item_type: preproc_def
      name: _PGC_broken
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGC_broken
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 7)
    - item_type: preproc_def
      name: PGC_state
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: PGC_state_inuse
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(0, 9)
    - item_type: preproc_def
      name: PGC_state_offlining
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 9)
    - item_type: preproc_def
      name: PGC_state_offlined
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(2, 9)
    - item_type: preproc_def
      name: PGC_state_free
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: _PGC_extra
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(10)
    - item_type: preproc_def
      name: PGC_extra
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_mask(1, 10)
    - item_type: preproc_def
      name: PGC_count_width
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: PG_shift(10)
    - item_type: preproc_def
      name: PGC_count_mask
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: ((1UL<<PGC_count_width)-1)
    - item_type: preproc_def
      name: INVALID_DIRTY_IDX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: ((1UL << (MAX_ORDER + 1)) - 1)
    - item_type: preproc_def
      name: BUDDY_NOT_SCRUBBING
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BUDDY_SCRUBBING
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUDDY_SCRUB_ABORT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FRAMETABLE_VIRT_START
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: (XEN_VIRT_START + GB(32))
    - item_type: preproc_def
      name: frame_table
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: ((struct page_info *)FRAMETABLE_VIRT_START)
    - item_type: preproc_def
      name: INVALID_M2P_ENTRY
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: SHARED_M2P_ENTRY
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: (~0UL - 1UL)
    - item_type: preproc_def
      name: PDX_GROUP_SHIFT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
      type_or_value: XEN_PT_SHIFT_LVL_3
    structs:
    - fields:
      - name: list
        type: struct page_list_entry
      - name: count_info
        type: unsigned long
      - name: u
        type: "union {\n        /* Page is in use: ((count_info & PGC_count_mask)
          != 0). */\n        struct {\n            /* Type reference count and various
          PGT_xxx flags and fields. */\n            unsigned long type_info;\n        }
          inuse;\n        /* Page is on a free list: ((count_info & PGC_count_mask)
          == 0). */\n        union {\n            struct {\n                /*\n                 *
          Index of the first *possibly* unscrubbed page in the buddy.\n                 *
          One more bit than maximum possible order to accommodate\n                 *
          INVALID_DIRTY_IDX.\n                 */\n#define INVALID_DIRTY_IDX ((1UL
          << (MAX_ORDER + 1)) - 1)\n                unsigned long first_dirty:MAX_ORDER
          + 1;\n\n                /* Do TLBs need flushing for safety before next
          page use? */\n                bool need_tlbflush:1;\n\n#define BUDDY_NOT_SCRUBBING
          \   0\n#define BUDDY_SCRUBBING        1\n#define BUDDY_SCRUB_ABORT      2\n
          \               unsigned long scrub_state:2;\n            };\n\n            unsigned
          long val;\n        } free;\n\n    }"
      - name: v
        type: "union {\n        /* Page is in use, but not as a shadow. */\n        struct
          {\n            /* Owner of this page (NULL if page is anonymous). */\n            struct
          domain *domain;\n        } inuse;\n\n        /* Page is on a free list.
          */\n        struct {\n            /* Order-size of the free chunk this page
          is the head of. */\n            unsigned int order;\n        } free;\n\n
          \   }"
      - name: pad
        type: uint64_t
      item_type: struct
      name: page_info
      pos:
        line_end: 159
        line_start: 96
        source_file: /src/xen/xen/arch/ppc/include/asm/mm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
  types:
    enum:
    - enumerators:
      - name: OPAL_EEH_STOPPED_NOT_FROZEN
        value: '0'
      - name: OPAL_EEH_STOPPED_DMA_FREEZE
        value: '2'
      - name: OPAL_EEH_STOPPED_MMIO_FREEZE
        value: '1'
      - name: OPAL_EEH_STOPPED_MMIO_DMA_FREEZE
        value: '3'
      - name: OPAL_EEH_STOPPED_RESET
        value: '4'
      - name: OPAL_EEH_STOPPED_TEMP_UNAVAIL
        value: '5'
      - name: OPAL_EEH_STOPPED_PERM_UNAVAIL
        value: '6'
      item_type: enum
      name: OpalFreezeState
      pos:
        line_end: 261
        line_start: 253
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_EEH_ACTION_CLEAR_FREEZE_MMIO
        value: '1'
      - name: OPAL_EEH_ACTION_SET_FREEZE_MMIO
        value: '1'
      - name: OPAL_EEH_ACTION_SET_FREEZE_DMA
        value: '2'
      - name: OPAL_EEH_ACTION_CLEAR_FREEZE_ALL
        value: '3'
      - name: OPAL_EEH_ACTION_CLEAR_FREEZE_DMA
        value: '2'
      - name: OPAL_EEH_ACTION_SET_FREEZE_ALL
        value: '3'
      item_type: enum
      name: OpalEehFreezeActionToken
      pos:
        line_end: 271
        line_start: 263
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_EEH_NO_ERROR
        value: '0'
      - name: OPAL_EEH_PHB_ERROR
        value: '2'
      - name: OPAL_EEH_PE_ERROR
        value: '3'
      - name: OPAL_EEH_PE_MMIO_ERROR
        value: '4'
      - name: OPAL_EEH_IOC_ERROR
        value: '1'
      - name: OPAL_EEH_PE_DMA_ERROR
        value: '5'
      item_type: enum
      name: OpalPciStatusToken
      pos:
        line_end: 280
        line_start: 273
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_EEH_SEV_NO_ERROR
        value: '0'
      - name: OPAL_EEH_SEV_IOC_DEAD
        value: '1'
      - name: OPAL_EEH_SEV_PHB_DEAD
        value: '2'
      - name: OPAL_EEH_SEV_PHB_FENCED
        value: '3'
      - name: OPAL_EEH_SEV_PE_ER
        value: '4'
      - name: OPAL_EEH_SEV_INF
        value: '5'
      item_type: enum
      name: OpalPciErrorSeverity
      pos:
        line_end: 289
        line_start: 282
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_ERR_INJECT_TYPE_IOA_BUS_ERR
        value: '0'
      - name: OPAL_ERR_INJECT_TYPE_IOA_BUS_ERR64
        value: '1'
      item_type: enum
      name: OpalErrinjectType
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_MEM_ADDR
        value: '0'
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_IO_DATA
        value: '3'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_MEM_DATA
        value: '7'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_CFG_DATA
        value: '11'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_TARGET
        value: '15'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_TARGET
        value: '19'
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_CFG_ADDR
        value: '4'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_IO_ADDR
        value: '8'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_ADDR
        value: '12'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_ADDR
        value: '16'
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_MEM_DATA
        value: '1'
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_CFG_DATA
        value: '5'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_IO_DATA
        value: '9'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_DATA
        value: '13'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_DATA
        value: '17'
      - name: OPAL_ERR_INJECT_FUNC_IOA_LD_IO_ADDR
        value: '2'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_MEM_ADDR
        value: '6'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_MASTER
        value: '18'
      - name: OPAL_ERR_INJECT_FUNC_IOA_ST_CFG_ADDR
        value: '10'
      - name: OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_MASTER
        value: '14'
      item_type: enum
      name: OpalErrinjectFunc
      pos:
        line_end: 318
        line_start: 296
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_M32_WINDOW_TYPE
        value: '1'
      - name: OPAL_IO_WINDOW_TYPE
        value: '3'
      - name: OPAL_M64_WINDOW_TYPE
        value: '2'
      item_type: enum
      name: OpalMmioWindowType
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MACHINE_CHECK_HANDLER
        value: '1'
      - name: OPAL_HYPERVISOR_MAINTENANCE_HANDLER
        value: '2'
      - name: OPAL_SOFTPATCH_HANDLER
        value: '3'
      item_type: enum
      name: OpalExceptionHandler
      pos:
        line_end: 330
        line_start: 326
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_EVENT_OPAL_INTERNAL
        value: '0x1'
      - name: OPAL_EVENT_RTC
        value: '0x4'
      - name: OPAL_EVENT_NVRAM
        value: '0x2'
      - name: OPAL_EVENT_CONSOLE_INPUT
        value: '0x10'
      - name: OPAL_EVENT_CONSOLE_OUTPUT
        value: '0x8'
      - name: OPAL_EVENT_ERROR_LOG_AVAIL
        value: '0x20'
      - name: OPAL_EVENT_ERROR_LOG
        value: '0x40'
      - name: OPAL_EVENT_EPOW
        value: '0x80'
      - name: OPAL_EVENT_LED_STATUS
        value: '0x100'
      - name: OPAL_EVENT_PCI_ERROR
        value: '0x200'
      - name: OPAL_EVENT_DUMP_AVAIL
        value: '0x400'
      - name: OPAL_EVENT_MSG_PENDING
        value: '0x800'
      item_type: enum
      name: OpalPendingState
      pos:
        line_end: 345
        line_start: 332
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_THREAD_INACTIVE
        value: '0x0'
      - name: OPAL_THREAD_STARTED
        value: '0x1'
      - name: OPAL_THREAD_UNAVAILABLE
        value: '0x2'
      item_type: enum
      name: OpalThreadStatus
      pos:
        line_end: 351
        line_start: 347
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalPciBusAny
        value: '0'
      - name: OpalPciBus5Bits
        value: '4'
      - name: OpalPciBus4Bits
        value: '3'
      - name: OpalPciBus3Bits
        value: '2'
      - name: OpalPciBus6Bits
        value: '5'
      - name: OpalPciBus7Bits
        value: '6'
      - name: OpalPciBusAll
        value: '7'
      item_type: enum
      name: OpalPciBusCompare
      pos:
        line_end: 361
        line_start: 353
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_IGNORE_RID_DEVICE_NUMBER
        value: '0'
      - name: OPAL_COMPARE_RID_DEVICE_NUMBER
        value: '1'
      item_type: enum
      name: OpalDeviceCompare
      pos:
        line_end: 366
        line_start: 363
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_IGNORE_RID_FUNCTION_NUMBER
        value: '0'
      - name: OPAL_COMPARE_RID_FUNCTION_NUMBER
        value: '1'
      item_type: enum
      name: OpalFuncCompare
      pos:
        line_end: 371
        line_start: 368
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_UNMAP_PE
        value: '0'
      - name: OPAL_MAP_PE
        value: '1'
      item_type: enum
      name: OpalPeAction
      pos:
        line_end: 376
        line_start: 373
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_REMOVE_PE_FROM_DOMAIN
        value: '0'
      - name: OPAL_ADD_PE_TO_DOMAIN
        value: '1'
      item_type: enum
      name: OpalPeltvAction
      pos:
        line_end: 381
        line_start: 378
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_DISABLE_MVE
        value: '0'
      - name: OPAL_ENABLE_MVE
        value: '1'
      item_type: enum
      name: OpalMveEnableAction
      pos:
        line_end: 386
        line_start: 383
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_DISABLE_M64
        value: '0'
      - name: OPAL_ENABLE_M64_SPLIT
        value: '1'
      - name: OPAL_ENABLE_M64_NON_SPLIT
        value: '2'
      item_type: enum
      name: OpalM64Action
      pos:
        line_end: 392
        line_start: 388
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_RESET_PHB_COMPLETE
        value: '1'
      - name: OPAL_RESET_PCI_LINK
        value: '2'
      - name: OPAL_RESET_PHB_ERROR
        value: '3'
      - name: OPAL_RESET_PCI_HOT
        value: '4'
      - name: OPAL_RESET_PCI_FUNDAMENTAL
        value: '5'
      - name: OPAL_RESET_PCI_IODA_TABLE
        value: '6'
      item_type: enum
      name: OpalPciResetScope
      pos:
        line_end: 401
        line_start: 394
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_REINIT_PCI_DEV
        value: '1000'
      item_type: enum
      name: OpalPciReinitScope
      pos:
        line_end: 410
        line_start: 403
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_DEASSERT_RESET
        value: '0'
      - name: OPAL_ASSERT_RESET
        value: '1'
      item_type: enum
      name: OpalPciResetState
      pos:
        line_end: 415
        line_start: 412
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_PCI_SLOT_EMPTY
        value: '0'
      - name: OPAL_PCI_SLOT_PRESENT
        value: '1'
      item_type: enum
      name: OpalPciSlotPresence
      pos:
        line_end: 420
        line_start: 417
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_PCI_SLOT_POWER_OFF
        value: '0'
      - name: OPAL_PCI_SLOT_ONLINE
        value: '3'
      - name: OPAL_PCI_SLOT_POWER_ON
        value: '1'
      - name: OPAL_PCI_SLOT_OFFLINE
        value: '2'
      item_type: enum
      name: OpalPciSlotPower
      pos:
        line_end: 427
        line_start: 422
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SLOT_LED_TYPE_ID
        value: '0'
      - name: OPAL_SLOT_LED_TYPE_ATTN
        value: '2'
      - name: OPAL_SLOT_LED_TYPE_FAULT
        value: '1'
      - name: OPAL_SLOT_LED_TYPE_MAX
        value: '3'
      item_type: enum
      name: OpalSlotLedType
      pos:
        line_end: 434
        line_start: 429
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SLOT_LED_STATE_OFF
        value: '0'
      - name: OPAL_SLOT_LED_STATE_ON
        value: '1'
      item_type: enum
      name: OpalSlotLedState
      pos:
        line_end: 439
        line_start: 436
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_LPC_MEM
        value: '0'
      - name: OPAL_LPC_IO
        value: '1'
      - name: OPAL_LPC_FW
        value: '2'
      item_type: enum
      name: OpalLPCAddressType
      pos:
        line_end: 450
        line_start: 446
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MSG_ASYNC_COMP
        value: '0'
      - name: OPAL_MSG_EPOW
        value: '2'
      - name: OPAL_MSG_MEM_ERR
        value: '1'
      - name: OPAL_MSG_SHUTDOWN
        value: '3'
      - name: OPAL_MSG_HMI_EVT
        value: '4'
      - name: OPAL_MSG_DPO
        value: '5'
      - name: OPAL_MSG_PRD
        value: '6'
      - name: OPAL_MSG_OCC
        value: '7'
      - name: OPAL_MSG_PRD2
        value: '8'
      - name: OPAL_MSG_TYPE_MAX
      item_type: enum
      name: opal_msg_type
      pos:
        line_end: 465
        line_start: 452
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SYSPARAM_READ
        value: '0x1'
      - name: OPAL_SYSPARAM_WRITE
        value: '0x2'
      - name: OPAL_SYSPARAM_RW
        value: (OPAL_SYSPARAM_READ | OPAL_SYSPARAM_WRITE)
      item_type: enum
      name: OpalSysparamPerm
      pos:
        line_end: 478
        line_start: 474
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalMemErr_V1
        value: '1'
      item_type: enum
      name: OpalMemErr_Version
      pos:
        line_end: 494
        line_start: 492
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MEM_ERR_TYPE_RESILIENCE
        value: '0'
      - name: OPAL_MEM_ERR_TYPE_DYN_DALLOC
      item_type: enum
      name: OpalMemErrType
      pos:
        line_end: 499
        line_start: 496
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MEM_RESILIENCE_CE
        value: '0'
      - name: OPAL_MEM_RESILIENCE_UE_SCRUB
      - name: OPAL_MEM_RESILIENCE_UE
      item_type: enum
      name: OpalMemErr_ResilErrType
      pos:
        line_end: 506
        line_start: 502
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MEM_DYNAMIC_DEALLOC
        value: '0'
      item_type: enum
      name: OpalMemErr_DynErrType
      pos:
        line_end: 511
        line_start: 509
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalHMIEvt_V1
        value: '1'
      - name: OpalHMIEvt_V2
        value: '2'
      item_type: enum
      name: OpalHMI_Version
      pos:
        line_end: 541
        line_start: 538
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalHMI_SEV_NO_ERROR
        value: '0'
      - name: OpalHMI_SEV_WARNING
        value: '1'
      - name: OpalHMI_SEV_ERROR_SYNC
        value: '2'
      - name: OpalHMI_SEV_FATAL
        value: '3'
      item_type: enum
      name: OpalHMI_Severity
      pos:
        line_end: 548
        line_start: 543
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalHMI_DISPOSITION_RECOVERED
        value: '0'
      - name: OpalHMI_DISPOSITION_NOT_RECOVERED
        value: '1'
      item_type: enum
      name: OpalHMI_Disposition
      pos:
        line_end: 553
        line_start: 550
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OpalHMI_ERROR_MALFUNC_ALERT
        value: '0'
      - name: OpalHMI_ERROR_TFAC
      - name: OpalHMI_ERROR_PROC_RECOV_DONE
      - name: OpalHMI_ERROR_PROC_RECOV_DONE_AGAIN
      - name: OpalHMI_ERROR_PROC_RECOV_MASKED
      - name: OpalHMI_ERROR_TFMR_PARITY
      - name: OpalHMI_ERROR_HA_OVERFLOW_WARN
      - name: OpalHMI_ERROR_XSCOM_FAIL
      - name: OpalHMI_ERROR_XSCOM_DONE
      - name: OpalHMI_ERROR_SCOM_FIR
      - name: OpalHMI_ERROR_CAPP_RECOVERY
      - name: OpalHMI_ERROR_DEBUG_TRIG_FIR
      - name: OpalHMI_ERROR_HYP_RESOURCE
      item_type: enum
      name: OpalHMI_ErrType
      pos:
        line_end: 569
        line_start: 555
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: CHECKSTOP_TYPE_UNKNOWN
        value: '0'
      - name: CHECKSTOP_TYPE_CORE
        value: '1'
      - name: CHECKSTOP_TYPE_NX
        value: '2'
      - name: CHECKSTOP_TYPE_NPU
        value: '3'
      item_type: enum
      name: OpalHMI_XstopType
      pos:
        line_end: 576
        line_start: 571
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: CORE_CHECKSTOP_IFU_REGFILE
        value: '0x00000001'
      - name: CORE_CHECKSTOP_IFU_LOGIC
        value: '0x00000002'
      - name: CORE_CHECKSTOP_PC_DURING_RECOV
        value: '0x00000004'
      - name: CORE_CHECKSTOP_ISU_REGFILE
        value: '0x00000008'
      - name: CORE_CHECKSTOP_ISU_LOGIC
        value: '0x00000010'
      - name: CORE_CHECKSTOP_FXU_LOGIC
        value: '0x00000020'
      - name: CORE_CHECKSTOP_VSU_LOGIC
        value: '0x00000040'
      - name: CORE_CHECKSTOP_PC_RECOV_IN_MAINT_MODE
        value: '0x00000080'
      - name: CORE_CHECKSTOP_LSU_REGFILE
        value: '0x00000100'
      - name: CORE_CHECKSTOP_PC_FWD_PROGRESS
        value: '0x00000200'
      - name: CORE_CHECKSTOP_PC_LOGIC
        value: '0x00000800'
      - name: CORE_CHECKSTOP_PC_DEBUG_TRIG_ERR_INJ
        value: '0x00008000'
      - name: CORE_CHECKSTOP_PC_HYP_RESOURCE
        value: '0x00001000'
      - name: CORE_CHECKSTOP_PC_SPRD_HYP_ERR_INJ
        value: '0x00010000'
      - name: CORE_CHECKSTOP_PC_HANG_RECOV_FAILED
        value: '0x00002000'
      - name: CORE_CHECKSTOP_LSU_LOGIC
        value: '0x00000400'
      - name: CORE_CHECKSTOP_PC_AMBI_HANG_DETECTED
        value: '0x00004000'
      item_type: enum
      name: OpalHMI_CoreXstopReason
      pos:
        line_end: 596
        line_start: 578
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: NX_CHECKSTOP_SHM_INVAL_STATE_ERR
        value: '0x00000001'
      - name: NX_CHECKSTOP_DMA_INVAL_STATE_ERR_1
        value: '0x00000002'
      - name: NX_CHECKSTOP_DMA_INVAL_STATE_ERR_2
        value: '0x00000004'
      - name: NX_CHECKSTOP_DMA_CH0_INVAL_STATE_ERR
        value: '0x00000008'
      - name: NX_CHECKSTOP_DMA_CH1_INVAL_STATE_ERR
        value: '0x00000010'
      - name: NX_CHECKSTOP_DMA_CH2_INVAL_STATE_ERR
        value: '0x00000020'
      - name: NX_CHECKSTOP_DMA_CH3_INVAL_STATE_ERR
        value: '0x00000040'
      - name: NX_CHECKSTOP_DMA_CH4_INVAL_STATE_ERR
        value: '0x00000080'
      - name: NX_CHECKSTOP_DMA_CH5_INVAL_STATE_ERR
        value: '0x00000100'
      - name: NX_CHECKSTOP_DMA_CH6_INVAL_STATE_ERR
        value: '0x00000200'
      - name: NX_CHECKSTOP_DMA_CRB_UE
        value: '0x00000800'
      - name: NX_CHECKSTOP_DMA_CRB_SUE
        value: '0x00001000'
      - name: NX_CHECKSTOP_PBI_ISN_UE
        value: '0x00002000'
      - name: NX_CHECKSTOP_DMA_CH7_INVAL_STATE_ERR
        value: '0x00000400'
      item_type: enum
      name: OpalHMI_NestAccelXstopReason
      pos:
        line_end: 613
        line_start: 598
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_PRD_MSG_TYPE_INIT
        value: '0'
      - name: OPAL_PRD_MSG_TYPE_FINI
      - name: OPAL_PRD_MSG_TYPE_OCC_ERROR
      - name: OPAL_PRD_MSG_TYPE_ATTN
      - name: OPAL_PRD_MSG_TYPE_ATTN_ACK
      - name: OPAL_PRD_MSG_TYPE_OCC_RESET
      item_type: enum
      name: opal_prd_msg_type
      pos:
        line_end: 946
        line_start: 939
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SYSEPOW_POWER
        value: '0'
      - name: OPAL_SYSEPOW_TEMP
        value: '1'
      - name: OPAL_SYSEPOW_MAX
        value: '3'
      - name: OPAL_SYSEPOW_COOLING
        value: '2'
      item_type: enum
      name: OpalSysEpow
      pos:
        line_end: 1043
        line_start: 1038
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SYSPOWER_UPS
        value: '0x0001'
      - name: OPAL_SYSPOWER_CHNG
        value: '0x0002'
      - name: OPAL_SYSPOWER_INCL
        value: '0x0008'
      - name: OPAL_SYSPOWER_FAIL
        value: '0x0004'
      item_type: enum
      name: OpalSysPower
      pos:
        line_end: 1051
        line_start: 1046
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SYSTEMP_AMB
        value: '0x0001'
      - name: OPAL_SYSTEMP_INT
        value: '0x0002'
      - name: OPAL_SYSTEMP_HMD
        value: '0x0004'
      item_type: enum
      name: OpalSysTemp
      pos:
        line_end: 1058
        line_start: 1054
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_SYSCOOL_INSF
        value: '0x0001'
      item_type: enum
      name: OpalSysCooling
      pos:
        line_end: 1063
        line_start: 1061
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MPIPL_ADD_RANGE
        value: '0'
      - name: OPAL_MPIPL_FREE_PRESERVED_MEMORY
        value: '3'
      - name: OPAL_MPIPL_REMOVE_RANGE
        value: '1'
      - name: OPAL_MPIPL_REMOVE_ALL
        value: '2'
      item_type: enum
      name: opal_mpipl_ops
      pos:
        line_end: 1155
        line_start: 1150
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - enumerators:
      - name: OPAL_MPIPL_TAG_CPU
        value: '0'
      - name: OPAL_MPIPL_TAG_OPAL
        value: '1'
      - name: OPAL_MPIPL_TAG_BOOT_MEM
        value: '3'
      - name: OPAL_MPIPL_TAG_KERNEL
        value: '2'
      item_type: enum
      name: opal_mpipl_tags
      pos:
        line_end: 1165
        line_start: 1160
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    preproc_defs:
    - item_type: preproc_def
      name: OPAL_SUCCESS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPAL_PARAMETER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: OPAL_BUSY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: OPAL_PARTIAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: OPAL_CONSTRAINED
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-4'
    - item_type: preproc_def
      name: OPAL_CLOSED
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-5'
    - item_type: preproc_def
      name: OPAL_HARDWARE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-6'
    - item_type: preproc_def
      name: OPAL_UNSUPPORTED
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-7'
    - item_type: preproc_def
      name: OPAL_PERMISSION
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-8'
    - item_type: preproc_def
      name: OPAL_NO_MEM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-9'
    - item_type: preproc_def
      name: OPAL_RESOURCE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-10'
    - item_type: preproc_def
      name: OPAL_INTERNAL_ERROR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-11'
    - item_type: preproc_def
      name: OPAL_BUSY_EVENT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-12'
    - item_type: preproc_def
      name: OPAL_HARDWARE_FROZEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-13'
    - item_type: preproc_def
      name: OPAL_WRONG_STATE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-14'
    - item_type: preproc_def
      name: OPAL_ASYNC_COMPLETION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-15'
    - item_type: preproc_def
      name: OPAL_EMPTY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-16'
    - item_type: preproc_def
      name: OPAL_I2C_TIMEOUT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-17'
    - item_type: preproc_def
      name: OPAL_I2C_INVALID_CMD
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-18'
    - item_type: preproc_def
      name: OPAL_I2C_LBUS_PARITY
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-19'
    - item_type: preproc_def
      name: OPAL_I2C_BKEND_OVERRUN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-20'
    - item_type: preproc_def
      name: OPAL_I2C_BKEND_ACCESS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-21'
    - item_type: preproc_def
      name: OPAL_I2C_ARBT_LOST
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-22'
    - item_type: preproc_def
      name: OPAL_I2C_NACK_RCVD
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-23'
    - item_type: preproc_def
      name: OPAL_I2C_STOP_ERR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-24'
    - item_type: preproc_def
      name: OPAL_XIVE_PROVISIONING
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-31'
    - item_type: preproc_def
      name: OPAL_XIVE_FREE_ACTIVE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-32'
    - item_type: preproc_def
      name: OPAL_TIMEOUT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-33'
    - item_type: preproc_def
      name: OPAL_INVALID_CALL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: OPAL_TEST
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPAL_CONSOLE_WRITE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPAL_CONSOLE_READ
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPAL_RTC_READ
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPAL_RTC_WRITE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPAL_CEC_POWER_DOWN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPAL_CEC_REBOOT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '6'
    - item_type: preproc_def
      name: OPAL_READ_NVRAM
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OPAL_WRITE_NVRAM
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OPAL_HANDLE_INTERRUPT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '9'
    - item_type: preproc_def
      name: OPAL_POLL_EVENTS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPAL_PCI_SET_HUB_TCE_MEMORY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '11'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PHB_TCE_MEMORY
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '12'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_READ_BYTE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '13'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_READ_HALF_WORD
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '14'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_READ_WORD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '15'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_WRITE_BYTE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '16'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_WRITE_HALF_WORD
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '17'
    - item_type: preproc_def
      name: OPAL_PCI_CONFIG_WRITE_WORD
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '18'
    - item_type: preproc_def
      name: OPAL_SET_XIVE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '19'
    - item_type: preproc_def
      name: OPAL_GET_XIVE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '20'
    - item_type: preproc_def
      name: OPAL_GET_COMPLETION_TOKEN_STATUS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '21 '
    - item_type: preproc_def
      name: OPAL_REGISTER_OPAL_EXCEPTION_HANDLER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '22'
    - item_type: preproc_def
      name: OPAL_PCI_EEH_FREEZE_STATUS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '23'
    - item_type: preproc_def
      name: OPAL_PCI_SHPC
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '24'
    - item_type: preproc_def
      name: OPAL_CONSOLE_WRITE_BUFFER_SPACE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '25'
    - item_type: preproc_def
      name: OPAL_PCI_EEH_FREEZE_CLEAR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '26'
    - item_type: preproc_def
      name: OPAL_PCI_PHB_MMIO_ENABLE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '27'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PHB_MEM_WINDOW
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '28'
    - item_type: preproc_def
      name: OPAL_PCI_MAP_PE_MMIO_WINDOW
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '29'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PHB_TABLE_MEMORY
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '30'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '31'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PELTV
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '32'
    - item_type: preproc_def
      name: OPAL_PCI_SET_MVE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '33'
    - item_type: preproc_def
      name: OPAL_PCI_SET_MVE_ENABLE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '34'
    - item_type: preproc_def
      name: OPAL_PCI_GET_XIVE_REISSUE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '35'
    - item_type: preproc_def
      name: OPAL_PCI_SET_XIVE_REISSUE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '36'
    - item_type: preproc_def
      name: OPAL_PCI_SET_XIVE_PE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '37'
    - item_type: preproc_def
      name: OPAL_GET_XIVE_SOURCE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '38'
    - item_type: preproc_def
      name: OPAL_GET_MSI_32
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '39'
    - item_type: preproc_def
      name: OPAL_GET_MSI_64
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '40'
    - item_type: preproc_def
      name: OPAL_START_CPU
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '41'
    - item_type: preproc_def
      name: OPAL_QUERY_CPU_STATUS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '42'
    - item_type: preproc_def
      name: OPAL_WRITE_OPPANEL
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '43 '
    - item_type: preproc_def
      name: OPAL_PCI_MAP_PE_DMA_WINDOW
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '44'
    - item_type: preproc_def
      name: OPAL_PCI_MAP_PE_DMA_WINDOW_REAL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '45'
    - item_type: preproc_def
      name: OPAL_PCI_RESET
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '49'
    - item_type: preproc_def
      name: OPAL_PCI_GET_HUB_DIAG_DATA
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '50'
    - item_type: preproc_def
      name: OPAL_PCI_GET_PHB_DIAG_DATA
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '51'
    - item_type: preproc_def
      name: OPAL_PCI_FENCE_PHB
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '52'
    - item_type: preproc_def
      name: OPAL_PCI_REINIT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '53'
    - item_type: preproc_def
      name: OPAL_PCI_MASK_PE_ERROR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '54'
    - item_type: preproc_def
      name: OPAL_SET_SLOT_LED_STATUS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '55'
    - item_type: preproc_def
      name: OPAL_GET_EPOW_STATUS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '56'
    - item_type: preproc_def
      name: OPAL_SET_SYSTEM_ATTENTION_LED
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '57'
    - item_type: preproc_def
      name: OPAL_RESERVED1
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '58'
    - item_type: preproc_def
      name: OPAL_RESERVED2
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '59'
    - item_type: preproc_def
      name: OPAL_PCI_NEXT_ERROR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '60'
    - item_type: preproc_def
      name: OPAL_PCI_EEH_FREEZE_STATUS2
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '61'
    - item_type: preproc_def
      name: OPAL_PCI_POLL
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '62'
    - item_type: preproc_def
      name: OPAL_PCI_MSI_EOI
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '63'
    - item_type: preproc_def
      name: OPAL_PCI_GET_PHB_DIAG_DATA2
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '64'
    - item_type: preproc_def
      name: OPAL_XSCOM_READ
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '65'
    - item_type: preproc_def
      name: OPAL_XSCOM_WRITE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '66'
    - item_type: preproc_def
      name: OPAL_LPC_READ
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '67'
    - item_type: preproc_def
      name: OPAL_LPC_WRITE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '68'
    - item_type: preproc_def
      name: OPAL_RETURN_CPU
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '69'
    - item_type: preproc_def
      name: OPAL_REINIT_CPUS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '70'
    - item_type: preproc_def
      name: OPAL_ELOG_READ
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '71'
    - item_type: preproc_def
      name: OPAL_ELOG_WRITE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '72'
    - item_type: preproc_def
      name: OPAL_ELOG_ACK
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '73'
    - item_type: preproc_def
      name: OPAL_ELOG_RESEND
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '74'
    - item_type: preproc_def
      name: OPAL_ELOG_SIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '75'
    - item_type: preproc_def
      name: OPAL_FLASH_VALIDATE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '76'
    - item_type: preproc_def
      name: OPAL_FLASH_MANAGE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '77'
    - item_type: preproc_def
      name: OPAL_FLASH_UPDATE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '78'
    - item_type: preproc_def
      name: OPAL_RESYNC_TIMEBASE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '79'
    - item_type: preproc_def
      name: OPAL_CHECK_TOKEN
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '80'
    - item_type: preproc_def
      name: OPAL_DUMP_INIT
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '81'
    - item_type: preproc_def
      name: OPAL_DUMP_INFO
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '82'
    - item_type: preproc_def
      name: OPAL_DUMP_READ
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '83'
    - item_type: preproc_def
      name: OPAL_DUMP_ACK
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '84'
    - item_type: preproc_def
      name: OPAL_GET_MSG
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '85'
    - item_type: preproc_def
      name: OPAL_CHECK_ASYNC_COMPLETION
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '86'
    - item_type: preproc_def
      name: OPAL_SYNC_HOST_REBOOT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '87'
    - item_type: preproc_def
      name: OPAL_SENSOR_READ
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '88'
    - item_type: preproc_def
      name: OPAL_GET_PARAM
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '89'
    - item_type: preproc_def
      name: OPAL_SET_PARAM
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '90'
    - item_type: preproc_def
      name: OPAL_DUMP_RESEND
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '91'
    - item_type: preproc_def
      name: OPAL_ELOG_SEND
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: "92\t"
    - item_type: preproc_def
      name: OPAL_PCI_SET_PHB_CAPI_MODE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '93'
    - item_type: preproc_def
      name: OPAL_DUMP_INFO2
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '94'
    - item_type: preproc_def
      name: OPAL_WRITE_OPPANEL_ASYNC
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '95'
    - item_type: preproc_def
      name: OPAL_PCI_ERR_INJECT
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '96'
    - item_type: preproc_def
      name: OPAL_PCI_EEH_FREEZE_SET
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '97'
    - item_type: preproc_def
      name: OPAL_HANDLE_HMI
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '98'
    - item_type: preproc_def
      name: OPAL_CONFIG_CPU_IDLE_STATE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '99'
    - item_type: preproc_def
      name: OPAL_SLW_SET_REG
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '100'
    - item_type: preproc_def
      name: OPAL_REGISTER_DUMP_REGION
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '101'
    - item_type: preproc_def
      name: OPAL_UNREGISTER_DUMP_REGION
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '102'
    - item_type: preproc_def
      name: OPAL_WRITE_TPO
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '103'
    - item_type: preproc_def
      name: OPAL_READ_TPO
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '104'
    - item_type: preproc_def
      name: OPAL_GET_DPO_STATUS
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '105'
    - item_type: preproc_def
      name: OPAL_OLD_I2C_REQUEST
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: "106\t"
    - item_type: preproc_def
      name: OPAL_IPMI_SEND
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '107'
    - item_type: preproc_def
      name: OPAL_IPMI_RECV
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '108'
    - item_type: preproc_def
      name: OPAL_I2C_REQUEST
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '109'
    - item_type: preproc_def
      name: OPAL_FLASH_READ
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '110'
    - item_type: preproc_def
      name: OPAL_FLASH_WRITE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '111'
    - item_type: preproc_def
      name: OPAL_FLASH_ERASE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '112'
    - item_type: preproc_def
      name: OPAL_PRD_MSG
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '113'
    - item_type: preproc_def
      name: OPAL_LEDS_GET_INDICATOR
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '114'
    - item_type: preproc_def
      name: OPAL_LEDS_SET_INDICATOR
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '115'
    - item_type: preproc_def
      name: OPAL_CEC_REBOOT2
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '116'
    - item_type: preproc_def
      name: OPAL_CONSOLE_FLUSH
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '117'
    - item_type: preproc_def
      name: OPAL_GET_DEVICE_TREE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '118'
    - item_type: preproc_def
      name: OPAL_PCI_GET_PRESENCE_STATE
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '119'
    - item_type: preproc_def
      name: OPAL_PCI_GET_POWER_STATE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '120'
    - item_type: preproc_def
      name: OPAL_PCI_SET_POWER_STATE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '121'
    - item_type: preproc_def
      name: OPAL_INT_GET_XIRR
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '122'
    - item_type: preproc_def
      name: OPAL_INT_SET_CPPR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '123'
    - item_type: preproc_def
      name: OPAL_INT_EOI
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '124'
    - item_type: preproc_def
      name: OPAL_INT_SET_MFRR
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '125'
    - item_type: preproc_def
      name: OPAL_PCI_TCE_KILL
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '126'
    - item_type: preproc_def
      name: OPAL_NMMU_SET_PTCR
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '127'
    - item_type: preproc_def
      name: OPAL_XIVE_RESET
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '128'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_IRQ_INFO
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '129'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_IRQ_CONFIG
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '130'
    - item_type: preproc_def
      name: OPAL_XIVE_SET_IRQ_CONFIG
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '131'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_QUEUE_INFO
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '132'
    - item_type: preproc_def
      name: OPAL_XIVE_SET_QUEUE_INFO
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '133'
    - item_type: preproc_def
      name: OPAL_XIVE_DONATE_PAGE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '134'
    - item_type: preproc_def
      name: OPAL_XIVE_ALLOCATE_VP_BLOCK
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '135'
    - item_type: preproc_def
      name: OPAL_XIVE_FREE_VP_BLOCK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '136'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_VP_INFO
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '137'
    - item_type: preproc_def
      name: OPAL_XIVE_SET_VP_INFO
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '138'
    - item_type: preproc_def
      name: OPAL_XIVE_ALLOCATE_IRQ
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '139'
    - item_type: preproc_def
      name: OPAL_XIVE_FREE_IRQ
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '140'
    - item_type: preproc_def
      name: OPAL_XIVE_SYNC
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '141'
    - item_type: preproc_def
      name: OPAL_XIVE_DUMP
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '142'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_QUEUE_STATE
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '143'
    - item_type: preproc_def
      name: OPAL_XIVE_SET_QUEUE_STATE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '144'
    - item_type: preproc_def
      name: OPAL_SIGNAL_SYSTEM_RESET
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '145'
    - item_type: preproc_def
      name: OPAL_NPU_INIT_CONTEXT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '146'
    - item_type: preproc_def
      name: OPAL_NPU_DESTROY_CONTEXT
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '147'
    - item_type: preproc_def
      name: OPAL_NPU_MAP_LPAR
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '148'
    - item_type: preproc_def
      name: OPAL_IMC_COUNTERS_INIT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '149'
    - item_type: preproc_def
      name: OPAL_IMC_COUNTERS_START
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '150'
    - item_type: preproc_def
      name: OPAL_IMC_COUNTERS_STOP
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '151'
    - item_type: preproc_def
      name: OPAL_GET_POWERCAP
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '152'
    - item_type: preproc_def
      name: OPAL_SET_POWERCAP
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '153'
    - item_type: preproc_def
      name: OPAL_GET_POWER_SHIFT_RATIO
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '154'
    - item_type: preproc_def
      name: OPAL_SET_POWER_SHIFT_RATIO
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '155'
    - item_type: preproc_def
      name: OPAL_SENSOR_GROUP_CLEAR
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '156'
    - item_type: preproc_def
      name: OPAL_PCI_SET_P2P
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '157'
    - item_type: preproc_def
      name: OPAL_QUIESCE
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '158'
    - item_type: preproc_def
      name: OPAL_NPU_SPA_SETUP
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '159'
    - item_type: preproc_def
      name: OPAL_NPU_SPA_CLEAR_CACHE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '160'
    - item_type: preproc_def
      name: OPAL_NPU_TL_SET
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '161'
    - item_type: preproc_def
      name: OPAL_SENSOR_READ_U64
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '162'
    - item_type: preproc_def
      name: OPAL_SENSOR_GROUP_ENABLE
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '163'
    - item_type: preproc_def
      name: OPAL_PCI_GET_PBCQ_TUNNEL_BAR
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '164'
    - item_type: preproc_def
      name: OPAL_PCI_SET_PBCQ_TUNNEL_BAR
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '165'
    - item_type: preproc_def
      name: OPAL_HANDLE_HMI2
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '166'
    - item_type: preproc_def
      name: OPAL_NX_COPROC_INIT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '167'
    - item_type: preproc_def
      name: OPAL_XIVE_GET_VP_STATE
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '170'
    - item_type: preproc_def
      name: OPAL_MPIPL_UPDATE
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '173'
    - item_type: preproc_def
      name: OPAL_MPIPL_REGISTER_TAG
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '174'
    - item_type: preproc_def
      name: OPAL_MPIPL_QUERY_TAG
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '175'
    - item_type: preproc_def
      name: OPAL_SECVAR_GET
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '176'
    - item_type: preproc_def
      name: OPAL_SECVAR_GET_NEXT
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '177'
    - item_type: preproc_def
      name: OPAL_SECVAR_ENQUEUE_UPDATE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '178'
    - item_type: preproc_def
      name: OPAL_LAST
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '178'
    - item_type: preproc_def
      name: QUIESCE_HOLD
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: QUIESCE_REJECT
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: QUIESCE_LOCK_BREAK
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: QUIESCE_RESUME
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: QUIESCE_RESUME_FAST_REBOOT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: OPAL_PM_TIMEBASE_STOP
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: OPAL_PM_LOSE_HYP_CONTEXT
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00002000'
    - item_type: preproc_def
      name: OPAL_PM_LOSE_FULL_CONTEXT
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00004000'
    - item_type: preproc_def
      name: OPAL_PM_NAP_ENABLED
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: OPAL_PM_SLEEP_ENABLED
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: OPAL_PM_WINKLE_ENABLED
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: OPAL_PM_SLEEP_ENABLED_ER1
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00080000 '
    - item_type: preproc_def
      name: OPAL_PM_STOP_INST_FAST
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: OPAL_PM_STOP_INST_DEEP
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: OPAL_CONFIG_IDLE_FASTSLEEP
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPAL_CONFIG_IDLE_UNDO
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPAL_CONFIG_IDLE_APPLY
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OCC_RESET
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OCC_LOAD
      pos:
        line_end: 958
        line_start: 957
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OCC_THROTTLE
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OCC_MAX_THROTTLE_STATUS
      pos:
        line_end: 960
        line_start: 959
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPAL_DUMP_REGION_HOST_START
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: OPAL_DUMP_REGION_LOG_BUF
      pos:
        line_end: 995
        line_start: 994
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: OPAL_DUMP_REGION_HOST_END
      pos:
        line_end: 996
        line_start: 995
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0xFF'
    - item_type: preproc_def
      name: OPAL_I2C_RAW_READ
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPAL_I2C_RAW_WRITE
      pos:
        line_end: 1012
        line_start: 1011
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPAL_I2C_SM_READ
      pos:
        line_end: 1013
        line_start: 1012
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPAL_I2C_SM_WRITE
      pos:
        line_end: 1014
        line_start: 1013
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPAL_I2C_ADDR_10
      pos:
        line_end: 1016
        line_start: 1015
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: OPAL_PCI_P2P_ENABLE
      pos:
        line_end: 1146
        line_start: 1145
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPAL_PCI_P2P_LOAD
      pos:
        line_end: 1147
        line_start: 1146
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: OPAL_PCI_P2P_STORE
      pos:
        line_end: 1148
        line_start: 1147
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: OPAL_MPIPL_VERSION
      pos:
        line_end: 1176
        line_start: 1175
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
      type_or_value: '0x01'
    structs:
    - fields:
      - name: msg_type
        type: __be32
      - name: reserved
        type: __be32
      - name: params[8]
        type: __be64
      item_type: struct
      name: opal_msg
      pos:
        line_end: 471
        line_start: 467
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: version
        type: uint8_t
      - name: netfn
        type: uint8_t
      - name: cmd
        type: uint8_t
      - name: data[]
        type: uint8_t
      item_type: struct
      name: opal_ipmi_msg
      pos:
        line_end: 489
        line_start: 484
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: version
        type: enum OpalMemErr_Version
      - name: type
        type: enum OpalMemErrType
      - name: flags
        type: __be16
      - name: reserved_1[4]
        type: uint8_t
      - name: u
        type: "union {\n\t\t/* Memory Resilience corrected/uncorrected error info
          */\n\t\tstruct {\n\t\t\tenum OpalMemErr_ResilErrType\tresil_err_type:8;\n\t\t\tuint8_t\t\t\t\treserved_1[7];\n\t\t\t__be64\t\t\t\tphysical_address_start;\n\t\t\t__be64\t\t\t\tphysical_address_end;\n\t\t}
          resilience;\n\t\t/* Dynamic memory deallocation error info */\n\t\tstruct
          {\n\t\t\tenum OpalMemErr_DynErrType\tdyn_err_type:8;\n\t\t\tuint8_t\t\t\t\treserved_1[7];\n\t\t\t__be64\t\t\t\tphysical_address_start;\n\t\t\t__be64\t\t\t\tphysical_address_end;\n\t\t}
          dyn_dealloc;\n\t}"
      item_type: struct
      name: OpalMemoryErrorData
      pos:
        line_end: 535
        line_start: 513
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: version
        type: uint8_t
      - name: severity
        type: uint8_t
      - name: type
        type: uint8_t
      - name: disposition
        type: uint8_t
      - name: reserved_1[4]
        type: uint8_t
      - name: hmer
        type: __be64
      - name: tfmr
        type: __be64
      - name: u
        type: "union {\n\t\t/*\n\t\t * checkstop info (Core/NX).\n\t\t * Valid for
          OpalHMI_ERROR_MALFUNC_ALERT.\n\t\t */\n\t\tstruct {\n\t\t\tuint8_t\txstop_type;\t/*
          enum OpalHMI_XstopType */\n\t\t\tuint8_t reserved_1[3];\n\t\t\t__be32  xstop_reason;\n\t\t\tunion
          {\n\t\t\t\t__be32 pir;\t/* for CHECKSTOP_TYPE_CORE */\n\t\t\t\t__be32 chip_id;\t/*
          for CHECKSTOP_TYPE_NX */\n\t\t\t} u;\n\t\t} xstop_error;\n\t}"
      item_type: struct
      name: OpalHMIEvent
      pos:
        line_end: 642
        line_start: 615
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: type
        type: __be16
      - name: gemXfir
        type: __be64
      - name: gemRfir
        type: __be64
      - name: gemRirqfir
        type: __be64
      - name: gemMask
        type: __be64
      - name: gemRwof
        type: __be64
      - name: lemFir
        type: __be64
      - name: lemErrMask
        type: __be64
      - name: lemAction0
        type: __be64
      - name: lemAction1
        type: __be64
      - name: lemWof
        type: __be64
      item_type: struct
      name: OpalIoP7IOCErrorData
      pos:
        line_end: 700
        line_start: 663
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: rgcStatus
        type: __be64
      - name: rgcLdcp
        type: __be64
      item_type: struct
      name: OpalIoP7IOCRgcErrorData
      pos:
        line_end: 684
        line_start: 681
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: biLdcp0
        type: __be64
      - name: biLdcp1
        type: __be64
      - name: biLdcp2
        type: __be64
      - name: biFenceStatus
        type: __be64
      - name: biDownbound
        type: uint8_t
      item_type: struct
      name: OpalIoP7IOCBiErrorData
      pos:
        line_end: 692
        line_start: 685
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: ciPortStatus
        type: __be64
      - name: ciPortLdcp
        type: __be64
      - name: ciPort
        type: uint8_t
      item_type: struct
      name: OpalIoP7IOCCiErrorData
      pos:
        line_end: 698
        line_start: 693
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: version
        type: __be32
      - name: ioType
        type: __be32
      - name: len
        type: __be32
      item_type: struct
      name: OpalIoPhbErrorCommon
      pos:
        line_end: 726
        line_start: 722
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: common
        type: struct OpalIoPhbErrorCommon
      - name: brdgCtl
        type: __be32
      - name: portStatusReg
        type: __be32
      - name: rootCmplxStatus
        type: __be32
      - name: busAgentStatus
        type: __be32
      - name: deviceStatus
        type: __be32
      - name: slotStatus
        type: __be32
      - name: linkStatus
        type: __be32
      - name: devCmdStatus
        type: __be32
      - name: devSecStatus
        type: __be32
      - name: rootErrorStatus
        type: __be32
      - name: uncorrErrorStatus
        type: __be32
      - name: corrErrorStatus
        type: __be32
      - name: tlpHdr1
        type: __be32
      - name: tlpHdr2
        type: __be32
      - name: tlpHdr3
        type: __be32
      - name: tlpHdr4
        type: __be32
      - name: sourceId
        type: __be32
      - name: rsv3
        type: __be32
      - name: errorClass
        type: __be64
      - name: correlator
        type: __be64
      - name: p7iocPlssr
        type: __be64
      - name: p7iocCsr
        type: __be64
      - name: lemFir
        type: __be64
      - name: lemErrorMask
        type: __be64
      - name: lemWOF
        type: __be64
      - name: phbErrorStatus
        type: __be64
      - name: phbFirstErrorStatus
        type: __be64
      - name: phbErrorLog0
        type: __be64
      - name: phbErrorLog1
        type: __be64
      - name: mmioErrorStatus
        type: __be64
      - name: mmioFirstErrorStatus
        type: __be64
      - name: mmioErrorLog0
        type: __be64
      - name: mmioErrorLog1
        type: __be64
      - name: dma0ErrorStatus
        type: __be64
      - name: dma0FirstErrorStatus
        type: __be64
      - name: dma0ErrorLog0
        type: __be64
      - name: dma0ErrorLog1
        type: __be64
      - name: dma1ErrorStatus
        type: __be64
      - name: dma1FirstErrorStatus
        type: __be64
      - name: dma1ErrorLog0
        type: __be64
      - name: dma1ErrorLog1
        type: __be64
      - name: pestA[OPAL_P7IOC_NUM_PEST_REGS]
        type: __be64
      - name: pestB[OPAL_P7IOC_NUM_PEST_REGS]
        type: __be64
      item_type: struct
      name: OpalIoP7IOCPhbErrorData
      pos:
        line_end: 785
        line_start: 728
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: common
        type: struct OpalIoPhbErrorCommon
      - name: brdgCtl
        type: __be32
      - name: portStatusReg
        type: __be32
      - name: rootCmplxStatus
        type: __be32
      - name: busAgentStatus
        type: __be32
      - name: deviceStatus
        type: __be32
      - name: slotStatus
        type: __be32
      - name: linkStatus
        type: __be32
      - name: devCmdStatus
        type: __be32
      - name: devSecStatus
        type: __be32
      - name: rootErrorStatus
        type: __be32
      - name: uncorrErrorStatus
        type: __be32
      - name: corrErrorStatus
        type: __be32
      - name: tlpHdr1
        type: __be32
      - name: tlpHdr2
        type: __be32
      - name: tlpHdr3
        type: __be32
      - name: tlpHdr4
        type: __be32
      - name: sourceId
        type: __be32
      - name: rsv3
        type: __be32
      - name: errorClass
        type: __be64
      - name: correlator
        type: __be64
      - name: nFir
        type: __be64
      - name: nFirMask
        type: __be64
      - name: nFirWOF
        type: __be64
      - name: phbPlssr
        type: __be64
      - name: phbCsr
        type: __be64
      - name: lemFir
        type: __be64
      - name: lemErrorMask
        type: __be64
      - name: lemWOF
        type: __be64
      - name: phbErrorStatus
        type: __be64
      - name: phbFirstErrorStatus
        type: __be64
      - name: phbErrorLog0
        type: __be64
      - name: phbErrorLog1
        type: __be64
      - name: mmioErrorStatus
        type: __be64
      - name: mmioFirstErrorStatus
        type: __be64
      - name: mmioErrorLog0
        type: __be64
      - name: mmioErrorLog1
        type: __be64
      - name: dma0ErrorStatus
        type: __be64
      - name: dma0FirstErrorStatus
        type: __be64
      - name: dma0ErrorLog0
        type: __be64
      - name: dma0ErrorLog1
        type: __be64
      - name: dma1ErrorStatus
        type: __be64
      - name: dma1FirstErrorStatus
        type: __be64
      - name: dma1ErrorLog0
        type: __be64
      - name: dma1ErrorLog1
        type: __be64
      - name: pestA[OPAL_PHB3_NUM_PEST_REGS]
        type: __be64
      - name: pestB[OPAL_PHB3_NUM_PEST_REGS]
        type: __be64
      item_type: struct
      name: OpalIoPhb3ErrorData
      pos:
        line_end: 847
        line_start: 787
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: common
        type: struct OpalIoPhbErrorCommon
      - name: brdgCtl
        type: __be32
      - name: deviceStatus
        type: __be32
      - name: slotStatus
        type: __be32
      - name: linkStatus
        type: __be32
      - name: devCmdStatus
        type: __be32
      - name: devSecStatus
        type: __be32
      - name: rootErrorStatus
        type: __be32
      - name: uncorrErrorStatus
        type: __be32
      - name: corrErrorStatus
        type: __be32
      - name: tlpHdr1
        type: __be32
      - name: tlpHdr2
        type: __be32
      - name: tlpHdr3
        type: __be32
      - name: tlpHdr4
        type: __be32
      - name: sourceId
        type: __be32
      - name: nFir
        type: __be64
      - name: nFirMask
        type: __be64
      - name: nFirWOF
        type: __be64
      - name: phbPlssr
        type: __be64
      - name: phbCsr
        type: __be64
      - name: lemFir
        type: __be64
      - name: lemErrorMask
        type: __be64
      - name: lemWOF
        type: __be64
      - name: phbErrorStatus
        type: __be64
      - name: phbFirstErrorStatus
        type: __be64
      - name: phbErrorLog0
        type: __be64
      - name: phbErrorLog1
        type: __be64
      - name: phbTxeErrorStatus
        type: __be64
      - name: phbTxeFirstErrorStatus
        type: __be64
      - name: phbTxeErrorLog0
        type: __be64
      - name: phbTxeErrorLog1
        type: __be64
      - name: phbRxeArbErrorStatus
        type: __be64
      - name: phbRxeArbFirstErrorStatus
        type: __be64
      - name: phbRxeArbErrorLog0
        type: __be64
      - name: phbRxeArbErrorLog1
        type: __be64
      - name: phbRxeMrgErrorStatus
        type: __be64
      - name: phbRxeMrgFirstErrorStatus
        type: __be64
      - name: phbRxeMrgErrorLog0
        type: __be64
      - name: phbRxeMrgErrorLog1
        type: __be64
      - name: phbRxeTceErrorStatus
        type: __be64
      - name: phbRxeTceFirstErrorStatus
        type: __be64
      - name: phbRxeTceErrorLog0
        type: __be64
      - name: phbRxeTceErrorLog1
        type: __be64
      - name: phbPblErrorStatus
        type: __be64
      - name: phbPblFirstErrorStatus
        type: __be64
      - name: phbPblErrorLog0
        type: __be64
      - name: phbPblErrorLog1
        type: __be64
      - name: phbPcieDlpErrorLog1
        type: __be64
      - name: phbPcieDlpErrorLog2
        type: __be64
      - name: phbPcieDlpErrorStatus
        type: __be64
      - name: phbRegbErrorStatus
        type: __be64
      - name: phbRegbFirstErrorStatus
        type: __be64
      - name: phbRegbErrorLog0
        type: __be64
      - name: phbRegbErrorLog1
        type: __be64
      - name: pestA[OPAL_PHB4_NUM_PEST_REGS]
        type: __be64
      - name: pestB[OPAL_PHB4_NUM_PEST_REGS]
        type: __be64
      item_type: struct
      name: OpalIoPhb4ErrorData
      pos:
        line_end: 916
        line_start: 849
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: line
        type: __be64
      - name: line_len
        type: __be64
      item_type: struct
      name: oppanel_line
      pos:
        line_end: 937
        line_start: 934
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: type
        type: uint8_t
      - name: pad[1]
        type: uint8_t
      - name: size
        type: __be16
      item_type: struct
      name: opal_prd_msg_header
      pos:
        line_end: 952
        line_start: 948
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: type
        type: __be64
      - name: chip
        type: __be64
      - name: throttle_status
        type: __be64
      item_type: struct
      name: opal_occ_msg
      pos:
        line_end: 965
        line_start: 961
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: data
        type: __be64
      - name: length
        type: __be64
      item_type: struct
      name: opal_sg_entry
      pos:
        line_end: 977
        line_start: 974
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: length
        type: __be64
      - name: next
        type: __be64
      - name: entry[]
        type: struct opal_sg_entry
      item_type: struct
      name: opal_sg_list
      pos:
        line_end: 988
        line_start: 984
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: type
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: subaddr_sz
        type: uint8_t
      - name: reserved
        type: uint8_t
      - name: addr
        type: __be16
      - name: reserved2
        type: __be16
      - name: subaddr
        type: __be32
      - name: size
        type: __be32
      - name: buffer_ra
        type: __be64
      item_type: struct
      name: opal_i2c_request
      pos:
        line_end: 1023
        line_start: 1008
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: src
        type: __be64
      - name: dest
        type: __be64
      - name: size
        type: __be64
      item_type: struct
      name: opal_mpipl_region
      pos:
        line_end: 1172
        line_start: 1168
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    - fields:
      - name: version
        type: uint8_t
      - name: reserved[7]
        type: uint8_t
      - name: crashing_pir
        type: __be32
      - name: cpu_data_version
        type: __be32
      - name: cpu_data_size
        type: __be32
      - name: region_cnt
        type: __be32
      - name: region[]
        type: "struct\topal_mpipl_region"
      item_type: struct
      name: opal_mpipl_fadump
      pos:
        line_end: 1185
        line_start: 1177
        source_file: /src/xen/xen/arch/ppc/include/asm/opal-api.h
    typedefs: []
    union: []
- function_names:
  - BUG
  - BUG_FRAME
  source_file: /src/xen/xen/arch/ppc/include/asm/bug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUG_OPCODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/ppc/include/asm/bug.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: BUG_INSTR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/ppc/include/asm/bug.h
      type_or_value: '".long " __stringify(BUG_OPCODE)'
    - item_type: preproc_def
      name: BUG_FN_REG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/ppc/include/asm/bug.h
      type_or_value: r0
    structs: []
    typedefs: []
    union: []
- function_names:
  - tlbflush_filter
  - tlbflush_current_time
  - page_set_tlbflush_timestamp
  source_file: /src/xen/xen/arch/ppc/include/asm/flushtlb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/cache.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/smp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/memory.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PPC_ATOMIC_ENTRY_BARRIER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/ppc/include/asm/memory.h
      type_or_value: '"sync\n"'
    - item_type: preproc_def
      name: PPC_ATOMIC_EXIT_BARRIER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/ppc/include/asm/memory.h
      type_or_value: '"sync\n"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_page_and_type
  - get_page_from_gfn
  - memory_type_changed
  - guest_physmap_mark_populate_on_demand
  - guest_physmap_add_entry
  - __must_check::guest_physmap_add_page
  - gfn_to_mfn
  - arch_acquire_resource_check
  source_file: /src/xen/xen/arch/ppc/include/asm/p2m.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: paddr_bits
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/ppc/include/asm/p2m.h
      type_or_value: PADDR_BITS
    - item_type: preproc_def
      name: P2M_ALLOC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/p2m.h
      type_or_value: '(1u<<0)   '
    - item_type: preproc_def
      name: P2M_UNSHARE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/p2m.h
      type_or_value: '(1u<<1)   '
    structs: []
    typedefs:
    - item_type: typedef
      name: p2m_query_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/xen/xen/arch/ppc/include/asm/p2m.h
      type: unsigned int
    union: []
- function_names:
  - LOAD_IMM64
  - LOAD_IMM32
  - LOAD_REG_ADDR
  - _GLOBAL_TOC
  - REST_GPRS
  - SAVE_GPR
  - REST_GPR
  - SAVE_NVGPRS
  - REST_NVGPRS
  source_file: /src/xen/xen/arch/ppc/include/asm/asm-defns.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/boot.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: base
        type: uint64_t
      - name: entry
        type: uint64_t
      item_type: struct
      name: opal
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/xen/xen/arch/ppc/include/asm/boot.h
    typedefs: []
    union: []
- function_names:
  - PVR_VER
  - PVR_REV
  - __is_processor
  - PVR_FAM
  - PVR_MEM
  - PVR_CORE
  - PVR_CFG
  - PVR_MAJ
  - PVR_MIN
  - HMT_very_low
  - cpu_to_core
  - cpu_to_socket
  - sync
  - isync
  - mfmsr
  - mtmsrd
  - mtspr
  - mfspr
  - die
  - cpu_relax
  - dump_execution_state
  source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOBMP_BYTES
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: IOBMP_INVALID_OFFSET
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: PVR_403GA
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00200000'
    - item_type: preproc_def
      name: PVR_403GB
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00200100'
    - item_type: preproc_def
      name: PVR_403GC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00200200'
    - item_type: preproc_def
      name: PVR_403GCX
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00201400'
    - item_type: preproc_def
      name: PVR_405GP
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x40110000'
    - item_type: preproc_def
      name: PVR_STB03XXX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x40310000'
    - item_type: preproc_def
      name: PVR_NP405H
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x41410000'
    - item_type: preproc_def
      name: PVR_NP405L
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x41610000'
    - item_type: preproc_def
      name: PVR_601
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: PVR_602
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00050000'
    - item_type: preproc_def
      name: PVR_603
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00030000'
    - item_type: preproc_def
      name: PVR_603e
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00060000'
    - item_type: preproc_def
      name: PVR_603ev
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00070000'
    - item_type: preproc_def
      name: PVR_603r
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00071000'
    - item_type: preproc_def
      name: PVR_604
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: PVR_604e
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00090000'
    - item_type: preproc_def
      name: PVR_604r
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x000A0000'
    - item_type: preproc_def
      name: PVR_620
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00140000'
    - item_type: preproc_def
      name: PVR_740
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00080000'
    - item_type: preproc_def
      name: PVR_750
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_740
    - item_type: preproc_def
      name: PVR_740P
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x10080000'
    - item_type: preproc_def
      name: PVR_750P
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_740P
    - item_type: preproc_def
      name: PVR_7400
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x000C0000'
    - item_type: preproc_def
      name: PVR_7410
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x800C0000'
    - item_type: preproc_def
      name: PVR_7450
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: PVR_8540
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x80200000'
    - item_type: preproc_def
      name: PVR_8560
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x80200000'
    - item_type: preproc_def
      name: PVR_821
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00500000'
    - item_type: preproc_def
      name: PVR_823
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_821
    - item_type: preproc_def
      name: PVR_850
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_821
    - item_type: preproc_def
      name: PVR_860
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_821
    - item_type: preproc_def
      name: PVR_8240
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x00810100'
    - item_type: preproc_def
      name: PVR_8245
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x80811014'
    - item_type: preproc_def
      name: PVR_8260
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: PVR_8240
    - item_type: preproc_def
      name: PVR_NORTHSTAR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0033'
    - item_type: preproc_def
      name: PVR_PULSAR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0034'
    - item_type: preproc_def
      name: PVR_POWER4
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0035'
    - item_type: preproc_def
      name: PVR_ICESTAR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0036'
    - item_type: preproc_def
      name: PVR_SSTAR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0037'
    - item_type: preproc_def
      name: PVR_POWER4p
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0038'
    - item_type: preproc_def
      name: PVR_970
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0039'
    - item_type: preproc_def
      name: PVR_POWER5
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x003A'
    - item_type: preproc_def
      name: PVR_POWER5p
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x003B'
    - item_type: preproc_def
      name: PVR_970FX
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x003C'
    - item_type: preproc_def
      name: PVR_POWER6
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x003E'
    - item_type: preproc_def
      name: PVR_POWER7
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x003F'
    - item_type: preproc_def
      name: PVR_630
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: PVR_630p
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0041'
    - item_type: preproc_def
      name: PVR_970MP
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0044'
    - item_type: preproc_def
      name: PVR_970GX
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0045'
    - item_type: preproc_def
      name: PVR_POWER7p
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x004A'
    - item_type: preproc_def
      name: PVR_POWER8E
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x004B'
    - item_type: preproc_def
      name: PVR_POWER8NVL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x004C'
    - item_type: preproc_def
      name: PVR_POWER8
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x004D'
    - item_type: preproc_def
      name: PVR_POWER9
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x004E'
    - item_type: preproc_def
      name: PVR_POWER10
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: PVR_BE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0070'
    - item_type: preproc_def
      name: PVR_PA6T
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0090'
    - item_type: preproc_def
      name: EXC_SYSTEM_RESET
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: EXC_MACHINE_CHECK
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: EXC_DATA_STORAGE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0300 '
    - item_type: preproc_def
      name: EXC_DATA_SEGMENT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0380 '
    - item_type: preproc_def
      name: EXC_INSN_STORAGE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: EXC_INSN_SEGMENT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0480 '
    - item_type: preproc_def
      name: EXC_EXTERNAL
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0500 '
    - item_type: preproc_def
      name: EXC_ALIGNMENT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0600 '
    - item_type: preproc_def
      name: EXC_PROGRAM
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0700 '
    - item_type: preproc_def
      name: EXC_FPU_UNAVAIL
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0800 '
    - item_type: preproc_def
      name: EXC_DECREMENTER
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0900 '
    - item_type: preproc_def
      name: EXC_H_DECREMENTER
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0980 '
    - item_type: preproc_def
      name: EXC_PRIV_DOORBELL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0A00 '
    - item_type: preproc_def
      name: EXC_SYSTEM_CALL
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0C00 '
    - item_type: preproc_def
      name: EXC_TRACE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0D00 '
    - item_type: preproc_def
      name: EXC_H_DATA_STORAGE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0E00 '
    - item_type: preproc_def
      name: EXC_H_INSN_STORAGE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0E20 '
    - item_type: preproc_def
      name: EXC_H_EMUL_ASST
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0E40 '
    - item_type: preproc_def
      name: EXC_H_MAINTENANCE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0E60 '
    - item_type: preproc_def
      name: EXC_H_DOORBELL
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0E80 '
    - item_type: preproc_def
      name: EXC_H_VIRT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0EA0 '
    - item_type: preproc_def
      name: EXC_PERF_MON
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0F00 '
    - item_type: preproc_def
      name: EXC_VECTOR_UNAVAIL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0F20 '
    - item_type: preproc_def
      name: EXC_VSX_UNAVAIL
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0F40 '
    - item_type: preproc_def
      name: EXC_FACIL_UNAVAIL
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0F60 '
    - item_type: preproc_def
      name: EXC_H_FACIL_UNAVAIL
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: '0x0F80 '
    - item_type: preproc_def
      name: AIL_VECTOR_BASE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
      type_or_value: _AC(0xc000000000004000, UL)
    structs:
    - fields:
      - name: gprs[32]
        type: uint64_t
      - name: lr
        type: uint64_t
      - name: ctr
        type: uint64_t
      - name: srr0
        type: uint64_t
      - name: srr1
        type: uint64_t
      - name: pc
        type: uint64_t
      - name: msr
        type: uint64_t
      - name: fpscr
        type: uint64_t
      - name: xer
        type: uint64_t
      - name: hid4
        type: uint64_t
      - name: dar
        type: uint64_t
      - name: dsisr
        type: uint32_t
      - name: cr
        type: uint32_t
      - name: __pad
        type: uint32_t
      - name: entry_vector
        type: uint32_t
      item_type: struct
      name: cpu_user_regs
      pos:
        line_end: 168
        line_start: 151
        source_file: /src/xen/xen/arch/ppc/include/asm/processor.h
    typedefs: []
    union: []
- function_names:
  - guest_mode
  - alloc_vcpu_guest_context
  - free_vcpu_guest_context
  - update_guest_memory_policy
  - arch_vcpu_block
  source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: params[HVM_NR_PARAMS]
        type: uint64_t
      item_type: struct
      name: hvm_domain
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
    - fields: []
      item_type: struct
      name: arch_vcpu_io
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
    - fields: []
      item_type: struct
      name: arch_vcpu
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
    - fields:
      - name: hvm
        type: struct hvm_domain
      item_type: struct
      name: arch_domain
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
    - fields: []
      item_type: struct
      name: guest_memory_policy
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/xen/xen/arch/ppc/include/asm/domain.h
    typedefs: []
    union: []
- function_names:
  - set_current
  - get_cpu_current
  - get_cpu_info
  - guest_cpu_user_regs
  - smp_processor_id
  - get_per_cpu_offset
  source_file: /src/xen/xen/arch/ppc/include/asm/current.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: current
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/current.h
      type_or_value: (this_cpu(curr_vcpu))
    structs:
    - fields:
      - name: guest_cpu_user_regs
        type: struct cpu_user_regs
      - name: elr
        type: unsigned long
      - name: flags
        type: unsigned int
      item_type: struct
      name: cpu_info
      pos:
        line_end: 24
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/include/asm/current.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSR_SF
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x8000000000000000, ULL)
    - item_type: preproc_def
      name: MSR_TA
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x4000000000000000, ULL)
    - item_type: preproc_def
      name: MSR_ISF
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x2000000000000000, ULL)
    - item_type: preproc_def
      name: MSR_HV
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x1000000000000000, ULL)
    - item_type: preproc_def
      name: MSR_VMX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000002000000, ULL)
    - item_type: preproc_def
      name: MSR_MER
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000200000, ULL)
    - item_type: preproc_def
      name: MSR_POW
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000040000, ULL)
    - item_type: preproc_def
      name: MSR_ILE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000010000, ULL)
    - item_type: preproc_def
      name: MSR_EE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000008000, ULL)
    - item_type: preproc_def
      name: MSR_PR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000004000, ULL)
    - item_type: preproc_def
      name: MSR_FP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000002000, ULL)
    - item_type: preproc_def
      name: MSR_ME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000001000, ULL)
    - item_type: preproc_def
      name: MSR_FE0
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000800, ULL)
    - item_type: preproc_def
      name: MSR_SE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000400, ULL)
    - item_type: preproc_def
      name: MSR_BE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000200, ULL)
    - item_type: preproc_def
      name: MSR_FE1
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000100, ULL)
    - item_type: preproc_def
      name: MSR_IP
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000040, ULL)
    - item_type: preproc_def
      name: MSR_IR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000020, ULL)
    - item_type: preproc_def
      name: MSR_DR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000010, ULL)
    - item_type: preproc_def
      name: MSR_PMM
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000004, ULL)
    - item_type: preproc_def
      name: MSR_RI
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000002, ULL)
    - item_type: preproc_def
      name: MSR_LE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000000000001, ULL)
    - item_type: preproc_def
      name: MSR_SIM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000020000000, ULL)
    - item_type: preproc_def
      name: MSR_SYSTEMSIM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: _AC(0x0000000010000000, ULL)
    - item_type: preproc_def
      name: MSR_TRAP_FE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: '_AC(0x0000000000100000, ULL) '
    - item_type: preproc_def
      name: MSR_TRAP_IOP
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: '_AC(0x0000000000080000, ULL) '
    - item_type: preproc_def
      name: MSR_TRAP_PRIV
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: '_AC(0x0000000000040000, ULL) '
    - item_type: preproc_def
      name: MSR_TRAP
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: '_AC(0x0000000000020000, ULL) '
    - item_type: preproc_def
      name: MSR_TRAP_NEXT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: '_AC(0x0000000000010000, ULL) '
    - item_type: preproc_def
      name: MSR_TRAP_BITS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/ppc/include/asm/msr.h
      type_or_value: (MSR_TRAP_FE|MSR_TRAP_IOP|MSR_TRAP_PRIV|MSR_TRAP)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/iommu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: arch_iommu
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/ppc/include/asm/iommu.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/ppc/include/asm/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/ppc/include/asm/types.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/ppc/include/asm/types.h
      type_or_value: '"016lx"'
    structs: []
    typedefs:
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/xen/arch/ppc/include/asm/types.h
      type: unsigned long
    - item_type: typedef
      name: vaddr_t
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/xen/arch/ppc/include/asm/types.h
      type: unsigned long
    union: []
- function_names:
  - arch_monitor_get_capabilities
  source_file: /src/xen/xen/arch/ppc/include/asm/monitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_mark_events_pending
  - vcpu_update_evtchn_irq
  - vcpu_block_unless_event_pending
  - vcpu_event_delivery_is_enabled
  - arch_get_virq_type
  - local_events_need_delivery
  - local_event_delivery_enable
  source_file: /src/xen/xen/arch/ppc/include/asm/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - force_update_vcpu_system_time
  - get_cycles
  source_file: /src/xen/xen/arch/ppc/include/asm/time.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cycles_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/xen/xen/arch/ppc/include/asm/time.h
      type: unsigned long
    union: []
- function_names:
  - early_printk_init
  - early_printk
  source_file: /src/xen/xen/arch/ppc/include/asm/early_printk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - readb
  - readw
  - readl
  - writeb
  - writew
  - writel
  source_file: /src/xen/xen/arch/ppc/include/asm/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XEN_PT_ENTRIES_LOG2_LVL
  - XEN_PT_SHIFT_LVL
  - XEN_PT_ENTRIES_LVL
  - XEN_PT_SIZE_LVL
  - XEN_PT_MASK_LVL
  - XEN_PT_INDEX_LVL
  - pt_index
  - pt_entry
  - paddr_to_pte
  - paddr_to_pde
  - pte_to_paddr
  - pde_to_paddr
  - pte_is_valid
  - pde_is_valid
  - invalidate_icache
  - clear_page
  - copy_page
  - scrub_page_hot
  - flush_page_to_ram
  source_file: /src/xen/xen/arch/ppc/include/asm/page.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PDE_VALID
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(0)
    - item_type: preproc_def
      name: PDE_NLB_MASK
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 0x1ffffffffffffe0UL
    - item_type: preproc_def
      name: PDE_NLS_MASK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: PTE_VALID
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(0)
    - item_type: preproc_def
      name: PTE_LEAF
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(1)
    - item_type: preproc_def
      name: PTE_REFERENCE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(55)
    - item_type: preproc_def
      name: PTE_CHANGE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(56)
    - item_type: preproc_def
      name: PTE_ATT_SAO
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 'PPC_BIT(59) '
    - item_type: preproc_def
      name: PTE_ATT_NON_IDEMPOTENT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(58)
    - item_type: preproc_def
      name: PTE_ATT_TOLERANT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (PPC_BIT(58) | PPC_BIT(59))
    - item_type: preproc_def
      name: PTE_EAA_PRIVILEGED
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(60)
    - item_type: preproc_def
      name: PTE_EAA_READ
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(61)
    - item_type: preproc_def
      name: PTE_EAA_WRITE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(62)
    - item_type: preproc_def
      name: PTE_EAA_EXECUTE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PPC_BIT(63)
    - item_type: preproc_def
      name: PTE_RPN_MASK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 0x1fffffffffff000UL
    - item_type: preproc_def
      name: PTE_ATT_MASK
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 0x30UL
    - item_type: preproc_def
      name: PTE_EAA_MASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 0xfUL
    - item_type: preproc_def
      name: PTE_XEN_BASE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (PTE_VALID | PTE_EAA_PRIVILEGED | PTE_REFERENCE)
    - item_type: preproc_def
      name: PTE_XEN_RW
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (PTE_XEN_BASE | PTE_EAA_READ | PTE_EAA_WRITE | PTE_CHANGE)
    - item_type: preproc_def
      name: PTE_XEN_RO
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (PTE_XEN_BASE | PTE_EAA_READ)
    - item_type: preproc_def
      name: PTE_XEN_RX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (PTE_XEN_BASE | PTE_EAA_READ | PTE_EAA_EXECUTE)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XEN_PT_ENTRIES_LOG2_LVL_1
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '13 '
    - item_type: preproc_def
      name: XEN_PT_ENTRIES_LOG2_LVL_2
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '9  '
    - item_type: preproc_def
      name: XEN_PT_ENTRIES_LOG2_LVL_3
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '9  '
    - item_type: preproc_def
      name: XEN_PT_ENTRIES_LOG2_LVL_4
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: '5  '
    - item_type: preproc_def
      name: XEN_PT_SHIFT_LVL_1
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (XEN_PT_SHIFT_LVL_2 + XEN_PT_ENTRIES_LOG2_LVL_2)
    - item_type: preproc_def
      name: XEN_PT_SHIFT_LVL_2
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (XEN_PT_SHIFT_LVL_3 + XEN_PT_ENTRIES_LOG2_LVL_3)
    - item_type: preproc_def
      name: XEN_PT_SHIFT_LVL_3
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: (XEN_PT_SHIFT_LVL_4 + XEN_PT_ENTRIES_LOG2_LVL_4)
    - item_type: preproc_def
      name: XEN_PT_SHIFT_LVL_4
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: PAGE_SHIFT
    - item_type: preproc_def
      name: PATB0_HR
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 'PPC_BIT(0) '
    - item_type: preproc_def
      name: PATB1_GR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: 'PPC_BIT(0) '
    - item_type: preproc_def
      name: RTS_FIELD
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: ((0x2UL << 61) | (0x5UL << 5))
    - item_type: preproc_def
      name: clear_page_hot
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: clear_page_cold
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: scrub_page_cold
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
      type_or_value: scrub_page_hot
    structs:
    - fields:
      - name: pde
        type: __be64
      item_type: struct
      name: pde_t
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: pte
        type: __be64
      item_type: struct
      name: pte_t
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: entries[XEN_PT_ENTRIES_LVL(1)]
        type: pde_t
      item_type: struct
      name: lvl1_pd
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: entries[XEN_PT_ENTRIES_LVL(2)]
        type: pde_t
      item_type: struct
      name: lvl2_pd
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: entries[XEN_PT_ENTRIES_LVL(3)]
        type: pde_t
      item_type: struct
      name: lvl3_pd
      pos:
        line_end: 114
        line_start: 111
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: entries[XEN_PT_ENTRIES_LVL(4)]
        type: pte_t
      item_type: struct
      name: lvl4_pt
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: patb0
        type: __be64
      - name: patb1
        type: __be64
      item_type: struct
      name: patb_entry
      pos:
        line_end: 162
        line_start: 159
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    - fields:
      - name: prtb0
        type: __be64
      - name: reserved
        type: __be64
      item_type: struct
      name: prtb_entry
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/xen/xen/arch/ppc/include/asm/page.h
    typedefs: []
    union: []
- function_names:
  - exception_name_from_vec
  - exception_handler
  source_file: /src/xen/xen/arch/ppc/ppc64/exceptions.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BLANK
  - OFFSET
  - __L2
  - __L4
  - __L8
  - __L16
  - LOG_2
  - __dummy__
  source_file: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: i
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/xen/xen/arch/ppc/ppc64/asm-offsets.c
      type_or_value: '" (_val) )'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PSCI_0_2_FN_NATIVE
  - PSCI_0_2_FN_NATIVE
  - PSCI_RET
  - call_psci_cpu_on
  - call_psci_cpu_off
  - call_psci_system_off
  - call_psci_system_reset
  - psci_features
  - psci_is_smc_method
  - psci_init_smccc
  - psci_init_0_1
  - psci_init_0_2
  - psci_init
  source_file: /src/xen/xen/arch/arm/psci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ACCESS_ALLOWED
  - phys_timer_expired
  - virt_timer_expired
  - domain_vtimer_init
  - vcpu_vtimer_init
  - vcpu_timer_destroy
  - virt_timer_save
  - virt_timer_restore
  - vtimer_cntp_ctl
  - vtimer_cntp_tval
  - vtimer_cntp_cval
  - vtimer_emulate_cp32
  - vtimer_emulate_cp64
  - vtimer_emulate_sysreg
  - vtimer_emulate
  - vtimer_update_irq
  - vtimer_update_irqs
  source_file: /src/xen/xen/arch/arm/vtimer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_assertions
  - arch_flush_tlb_mask
  - smp_send_event_check_mask
  - smp_send_call_function_mask
  source_file: /src/xen/xen/arch/arm/smp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - V2M_MSI_TYPER_BASE_SPI
  - V2M_MSI_TYPER_NUM_SPI
  - writeb_gicd
  - writel_gicd
  - readl_gicd
  - writel_gicc
  - readl_gicc
  - writel_gich
  - readl_gich
  - gicv2_cpu_mask
  - gicv2_save_state
  - gicv2_restore_state
  - gicv2_dump_state
  - gicv2_eoi_irq
  - gicv2_dir_irq
  - gicv2_read_irq
  - gicv2_poke_irq
  - gicv2_peek_irq
  - gicv2_set_active_state
  - gicv2_set_pending_state
  - gicv2_set_irq_type
  - gicv2_set_irq_priority
  - gicv2_dist_init
  - gicv2_cpu_init
  - gicv2_cpu_disable
  - gicv2_hyp_init
  - gicv2_hyp_disable
  - gicv2_secondary_cpu_init
  - gicv2_send_SGI
  - gicv2_disable_interface
  - gicv2_update_lr
  - gicv2_clear_lr
  - gicv2_read_lr
  - gicv2_write_lr
  - gicv2_hcr_status
  - gicv2_read_vmcr_priority
  - gicv2_read_apr
  - gicv2_read_pending_state
  - gicv2_irq_enable
  - gicv2_irq_disable
  - gicv2_irq_startup
  - gicv2_irq_shutdown
  - gicv2_irq_ack
  - gicv2_host_irq_end
  - gicv2_guest_irq_end
  - gicv2_irq_set_affinity
  - gicv2_map_hwdom_extra_mappings
  - gicv2m_make_dt_node
  - gicv2_make_hwdom_dt_node
  - gicv2_is_aliased
  - gicv2_add_v2m_frame_to_list
  - gicv2_extension_dt_init
  - dt_for_each_child_node
  - gicv2_dt_init
  - gicv2_iomem_deny_access
  - gicv2_get_hwdom_extra_madt_size
  - gicv2_make_hwdom_madt
  - gic_acpi_parse_madt_cpu
  - gic_acpi_parse_madt_distributor
  - gicv2_acpi_init
  - gicv2_acpi_init
  - gicv2_init
  - gicv2_do_LPI
  - gicv2_dt_preinit
  - gicv2_acpi_preinit
  source_file: /src/xen/xen/arch/arm/gic-v2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GICH_V2_LR_VIRTUAL_MASK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3ff'
    - item_type: preproc_def
      name: GICH_V2_LR_VIRTUAL_SHIFT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GICH_V2_LR_PHYSICAL_MASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3ff'
    - item_type: preproc_def
      name: GICH_V2_LR_PHYSICAL_SHIFT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '10'
    - item_type: preproc_def
      name: GICH_V2_LR_STATE_MASK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3'
    - item_type: preproc_def
      name: GICH_V2_LR_STATE_SHIFT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '28'
    - item_type: preproc_def
      name: GICH_V2_LR_PENDING
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: (1U << 28)
    - item_type: preproc_def
      name: GICH_V2_LR_ACTIVE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: (1U << 29)
    - item_type: preproc_def
      name: GICH_V2_LR_PRIORITY_SHIFT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '23'
    - item_type: preproc_def
      name: GICH_V2_LR_PRIORITY_MASK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: GICH_V2_LR_HW_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '31'
    - item_type: preproc_def
      name: GICH_V2_LR_HW_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GICH_V2_LR_GRP_SHIFT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '30'
    - item_type: preproc_def
      name: GICH_V2_LR_GRP_MASK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GICH_V2_LR_MAINTENANCE_IRQ
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: (1U << 19)
    - item_type: preproc_def
      name: GICH_V2_LR_GRP1
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: (1U << 30)
    - item_type: preproc_def
      name: GICH_V2_LR_HW
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: (1U << GICH_V2_LR_HW_SHIFT)
    - item_type: preproc_def
      name: GICH_V2_LR_CPUID_SHIFT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '10'
    - item_type: preproc_def
      name: GICH_V2_LR_CPUID_MASK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x7'
    - item_type: preproc_def
      name: GICH_V2_VTR_NRLRGS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: GICH_V2_VMCR_PRIORITY_MASK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x1f'
    - item_type: preproc_def
      name: GICH_V2_VMCR_PRIORITY_SHIFT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '27'
    - item_type: preproc_def
      name: V2M_MSI_TYPER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x008'
    - item_type: preproc_def
      name: V2M_MSI_TYPER_BASE_SHIFT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '16'
    - item_type: preproc_def
      name: V2M_MSI_TYPER_BASE_MASK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3FF'
    - item_type: preproc_def
      name: V2M_MSI_TYPER_NUM_MASK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x3FF'
    - item_type: preproc_def
      name: V2M_MSI_SETSPI_NS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0x040'
    - item_type: preproc_def
      name: V2M_MIN_SPI
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '32'
    - item_type: preproc_def
      name: V2M_MAX_SPI
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '1019'
    - item_type: preproc_def
      name: V2M_MSI_IIDR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '0xFCC'
    - item_type: preproc_def
      name: NR_GIC_CPU_IF
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/gic-v2.c
      type_or_value: '8'
    structs:
    - fields:
      - name: entry
        type: struct list_head
      - name: '*dt_node'
        type: struct dt_device_node
      - name: addr
        type: paddr_t
      - name: size
        type: paddr_t
      - name: spi_start
        type: u32
      - name: nr_spis
        type: u32
      item_type: struct
      name: v2m_data
      pos:
        line_end: 91
        line_start: 83
        source_file: /src/xen/xen/arch/arm/gic-v2.c
    - fields:
      - name: '* map_dbase'
        type: void
      - name: '* map_cbase'
        type: void
      - name: '* map_hbase'
        type: void
      - name: lock
        type: spinlock_t
      item_type: struct
      name: gicv2
      pos:
        line_end: 102
        line_start: 97
        source_file: /src/xen/xen/arch/arm/gic-v2.c
    typedefs: []
    union: []
- function_names:
  - gic_get_host_lpi
  - gicv3_set_redist_address
  - gicv3_get_redist_address
  - vgic_vcpu_inject_lpi
  - gicv3_do_LPI
  - gicv3_lpi_update_host_entry
  - gicv3_lpi_allocate_pendtable
  - gicv3_lpi_set_pendtable
  - gicv3_lpi_set_proptable
  - gicv3_lpi_init_rdist
  - cpu_callback
  - gicv3_lpi_init_host_lpis
  - find_unused_host_lpi
  - gicv3_allocate_host_lpi_block
  - gicv3_free_host_lpi_block
  source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LPI_PROPTABLE_NEEDS_FLUSHING
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: MAX_NR_HOST_LPIS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
      type_or_value: (lpi_data.max_host_lpi_ids - LPI_OFFSET)
    - item_type: preproc_def
      name: HOST_LPIS_PER_PAGE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
      type_or_value: (PAGE_SIZE / sizeof(union host_lpi))
    structs:
    - fields:
      - name: '*lpi_property'
        type: uint8_t
      - name: '**host_lpis'
        type: union host_lpi
      - name: max_host_lpi_ids
        type: unsigned long int
      - name: host_lpis_lock
        type: spinlock_t
      - name: next_free_lpi
        type: uint32_t
      - name: flags
        type: unsigned int
      item_type: struct
      name: lpi_data
      pos:
        line_end: 70
        line_start: 48
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
    - fields:
      - name: redist_addr
        type: paddr_t
      - name: redist_id
        type: unsigned int
      - name: '*pending_table'
        type: void
      item_type: struct
      name: lpi_redist_data
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
    typedefs: []
    union:
    - fields:
      - name: data
        type: uint64_t
      item_type: union
      name: host_lpi
      pos:
        line_end: 43
        line_start: 36
        source_file: /src/xen/xen/arch/arm/gic-v3-lpi.c
- function_names: []
  source_file: /src/xen/xen/arch/arm/decode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POST_INDEX_FIXED_MASK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/decode.h
      type_or_value: '0x3B200C00'
    - item_type: preproc_def
      name: POST_INDEX_FIXED_VALUE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/decode.h
      type_or_value: '0x38000400'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: value
        type: uint32_t
      - name: ldr_str
        type: "struct {\n        unsigned int rt:5;     /* Rt register */\n        unsigned
          int rn:5;     /* Rn register */\n        unsigned int fixed1:2; /* value
          == 01b */\n        signed int imm9:9;     /* imm9 */\n        unsigned int
          fixed2:1; /* value == 0b */\n        unsigned int opc:2;    /* opc */\n
          \       unsigned int fixed3:2; /* value == 00b */\n        unsigned int
          v:1;      /* vector */\n        unsigned int fixed4:3; /* value == 111b
          */\n        unsigned int size:2;   /* size */\n    }"
      item_type: union
      name: instr
      pos:
        line_end: 49
        line_start: 35
        source_file: /src/xen/xen/arch/arm/decode.h
- function_names:
  - domain_vpci_init
  - domain_vpci_get_num_mmio_handlers
  source_file: /src/xen/xen/arch/arm/vpci.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_has_vuart
  - domain_vuart_init
  - domain_vuart_free
  - vuart_print_char
  - vuart_mmio_read
  - vuart_mmio_write
  source_file: /src/xen/xen/arch/arm/vuart.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GVA_INFO
  - GPA_INFO
  - translate_get_page
  - copy_guest
  - raw_copy_to_guest
  - raw_copy_to_guest_flush_dcache
  - raw_clear_guest
  - raw_copy_from_guest
  - copy_to_guest_phys_flush_dcache
  - access_guest_memory_by_gpa
  source_file: /src/xen/xen/arch/arm/guestcopy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COPY_flush_dcache
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/guestcopy.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: COPY_from_guest
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/guestcopy.c
      type_or_value: (0U << 1)
    - item_type: preproc_def
      name: COPY_to_guest
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/guestcopy.c
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: COPY_ipa
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/guestcopy.c
      type_or_value: (0U << 2)
    - item_type: preproc_def
      name: COPY_linear
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/guestcopy.c
      type_or_value: (1U << 2)
    structs: []
    typedefs: []
    union:
    - fields:
      - name: gva
        type: "struct\n    {\n        struct vcpu *v;\n    }"
      - name: gpa
        type: "struct\n    {\n        struct domain *d;\n    }"
      item_type: union
      name: copy_info_t
      pos:
        line_end: 26
        line_start: 15
        source_file: /src/xen/xen/arch/arm/guestcopy.c
- function_names:
  - lr_all_full
  - gic_set_lr
  - gic_add_to_lr_pending
  - gic_remove_from_lr_pending
  - gic_raise_inflight_irq
  - gic_find_unused_lr
  - gic_raise_guest_irq
  - gic_update_one_lr
  - vgic_sync_from_lrs
  - gic_restore_pending_irqs
  - list_for_each_entry_reverse
  - gic_clear_pending_irqs
  - vgic_vcpu_pending_irq
  - vgic_sync_to_lrs
  - gic_dump_vgic_info
  - vgic_get_hw_irq_desc
  - vgic_connect_hw_irq
  source_file: /src/xen/xen/arch/arm/gic-vgic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_assertions
  - register_gic_ops
  - clear_cpu_lr_mask
  - gic_hw_version
  - gic_number_lines
  - gic_save_state
  - gic_restore_state
  - gic_set_irq_type
  - gic_set_irq_priority
  - gic_route_irq_to_xen
  - gic_route_irq_to_guest
  - gic_remove_irq_from_guest
  - gic_irq_xlate
  - gic_map_hwdom_extra_mappings
  - gic_acpi_preinit
  - gic_acpi_preinit
  - gic_preinit
  - gic_init
  - send_SGI_mask
  - send_SGI_one
  - send_SGI_self
  - send_SGI_allbutself
  - smp_send_state_dump
  - gic_init_secondary_cpu
  - gic_disable_cpu
  - do_static_sgi
  - gic_interrupt
  - maintenance_interrupt
  - gic_dump_info
  - init_maintenance_interrupt
  - gic_make_hwdom_dt_node
  - gic_make_hwdom_madt
  - gic_get_hwdom_madt_size
  - gic_iomem_deny_access
  - cpu_gic_callback
  - cpu_gic_notifier_init
  source_file: /src/xen/xen/arch/arm/gic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - irq_ack_none
  - irq_end_none
  - espi_to_desc
  - init_espi_data
  - init_espi_data
  - __irq_to_desc
  - arch_init_one_irq_desc
  - init_irq_data
  - init_local_irq_data
  - cpu_callback
  - init_IRQ
  - irq_get_guest_info
  - irq_get_domain
  - irq_set_affinity
  - request_irq
  - do_IRQ
  - release_irq
  - __setup_irq
  - setup_irq
  - is_assignable_irq
  - irq_type_set_by_domain
  - route_irq_to_guest
  - release_guest_irq
  - irq_validate_new_type
  - irq_set_spi_type
  - irq_local_set_type
  - irq_set_type
  - platform_get_irq
  - platform_get_irq_byname
  source_file: /src/xen/xen/arch/arm/irq.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*d'
        type: struct domain
      - name: virq
        type: unsigned int
      item_type: struct
      name: irq_guest
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/xen/xen/arch/arm/irq.c
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - copy_hyp_vect_bpi
  - __maybe_unused::install_bp_hardening_vec
  - enable_smccc_arch_workaround_1
  - enable_spectre_bhb_workaround
  - __maybe_unused::install_bp_hardening_vecs
  - enable_bp_inv_hardening
  - enable_ic_inv_hardening
  - parse_spec_ctrl
  - arm_enable_wa2_handling
  - has_ssbd_mitigation
  - MIDR_RANGE
  - MIDR_ALL_VERSIONS
  - __maybe_unused::is_affected_midr_range
  - check_local_cpu_errata
  - enable_errata_workarounds
  - cpu_errata_callback
  - cpu_errata_notifier_init
  source_file: /src/xen/xen/arch/arm/cpuerrata.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VECTOR_TABLE_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/cpuerrata.c
      type_or_value: SZ_2K
    - item_type: preproc_def
      name: NR_BPI_HYP_VECS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/cpuerrata.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - platform_is_compatible
  - platform_init
  - platform_init_time
  - platform_specific_mapping
  - platform_cpu_up
  - platform_smp_init
  - platform_reset
  - platform_poweroff
  - platform_smc
  - platform_has_quirk
  - platform_device_is_blacklisted
  - arch_get_dma_bitsize
  source_file: /src/xen/xen/arch/arm/platform.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - halt_this_cpu
  - machine_halt
  - machine_restart
  source_file: /src/xen/xen/arch/arm/shutdown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_dabt
  - decode_thumb2
  - decode_arm64
  - decode_thumb
  - decode_instruction
  source_file: /src/xen/xen/arch/arm/decode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_idle
  - idle_loop
  - ctxt_switch_from
  - ctxt_switch_to
  - schedule_tail
  - continue_new_vcpu
  - context_switch
  - continue_running
  - sync_local_execstate
  - sync_vcpu_execstate
  - NEXT_ARG
  - hypercall_create_continuation
  - startup_cpu_idle_loop
  - dump_pageframe_info
  - arch_vcpu_create
  - arch_vcpu_destroy
  - vcpu_switch_to_aarch64_mode
  - arch_sanitise_domain_config
  - arch_domain_create
  - arch_domain_teardown
  - PROGRESS
  - arch_domain_destroy
  - arch_domain_shutdown
  - arch_domain_pause
  - arch_domain_unpause
  - arch_domain_creation_finished
  - is_guest_pv32_psr
  - is_guest_pv64_psr
  - arch_set_info_guest
  - arch_initialise_vcpu
  - arch_vcpu_reset
  - relinquish_memory
  - page_list_for_each_safe
  - PROGRESS
  - do_vcpu_op
  - arch_dump_vcpu_info
  - vcpu_mark_events_pending
  - vcpu_update_evtchn_irq
  - vcpu_block_unless_event_pending
  - vcpu_kick
  source_file: /src/xen/xen/arch/arm/domain.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: case
      pos:
        line_end: 980
        line_start: 976
        source_file: /src/xen/xen/arch/arm/domain.c
      type_or_value: 'PROG_ ## x'
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_platform_op
  source_file: /src/xen/xen/arch/arm/platform_hypercall.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - parse_dom0_mem
  - parse_arch_dom0_param
  - virt_to_mfn
  - D11PRINT
  - D11PRINT
  - dom0_max_vcpus
  - insert_11_bank
  - allocate_memory_11
  - handle_linux_pci_domain
  - write_properties
  - dt_for_each_property_node
  - set_interrupt
  - fdt_property_interrupts
  - add_ext_regions
  - handle_pci_range
  - find_memory_holes
  - dt_for_each_device_node
  - find_domU_holes
  - count
  - count_ranges
  - rangeset_to_membank
  - find_host_extended_regions
  - make_hypervisor_node
  - make_psci_node
  - make_cpus_node
  - dt_for_each_child_node
  - make_gic_node
  - make_timer_node
  - handle_node
  - prepare_dtb_hwdom
  - evtchn_allocate
  - find_gnttab_region
  - construct_domain
  - construct_dom0
  - construct_hwdom
  - create_dom0
  source_file: /src/xen/xen/arch/arm/domain_build.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DOM0_FDT_EXTRA_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/domain_build.c
      type_or_value: (128 + sizeof(struct fdt_reserve_entry))
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_write_unlock
  - memory_type_changed
  - p2m_lookup
  - p2m_get_page_from_gfn
  - guest_physmap_mark_populate_on_demand
  - p2m_pod_decrease_reservation
  - p2m_insert_mapping
  - p2m_remove_mapping
  - map_regions_p2mt
  - unmap_regions_p2mt
  - map_mmio_regions
  - unmap_mmio_regions
  - map_dev_mmio_page
  - guest_physmap_add_entry
  - guest_physmap_remove_page
  - set_foreign_p2m_entry
  - p2m_vmid_allocator_init
  - p2m_alloc_vmid
  - p2m_free_vmid
  - p2m_cache_flush_range
  - p2m_set_way_flush
  - p2m_toggle_cache
  - gfn_to_mfn
  - get_page_from_gva
  - p2m_restrict_ipa_bits
  source_file: /src/xen/xen/arch/arm/p2m.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vpl011_reg32_check_access
  - vpl011_update_interrupt_status
  - vpl011_write_data_xen
  - vpl011_read_data_xen
  - vpl011_read_data
  - vpl011_update_tx_fifo_status
  - vpl011_write_data
  - vpl011_mmio_read
  - vpl011_mmio_write
  - vpl011_data_avail
  - vpl011_rx_char_xen
  - vpl011_notification
  - domain_vpl011_init
  - domain_vpl011_deinit
  source_file: /src/xen/xen/arch/arm/vpl011.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_WANT_FLEX_CONSOLE_RING
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/vpl011.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SBSA_UART_FIFO_LEVEL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/vpl011.c
      type_or_value: (SBSA_UART_FIFO_SIZE / 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - has_sb_instruction
  - update_cpu_capabilities
  - enable_cpu_capabilities
  - check_local_cpu_features
  - enable_cpu_features
  - enable_nonboot_cpu_caps
  - identify_cpu
  - create_domain_cpuinfo
  source_file: /src/xen/xen/arch/arm/cpufeature.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_llc_way_size
  - get_xen_paddr
  - xen_colored_map_size
  - arch_llc_coloring_init
  source_file: /src/xen/xen/arch/arm/llc-coloring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - setup_cpu_sibling_map
  - remove_cpu_sibling_map
  - smp_prepare_boot_cpu
  - dt_smp_init_cpus
  - dt_for_each_child_node
  - smp_init_cpus
  - smp_get_max_cpus
  - smp_prepare_cpus
  - start_secondary
  - __cpu_disable
  - stop_cpu
  - set_smp_up_cpu
  - cpu_up_send_sgi
  - __cpu_up
  - __cpu_die
  - cpu_smpboot_callback
  - cpu_smpboot_notifier_init
  source_file: /src/xen/xen/arch/arm/smpboot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unmapped_read
  - unmapped_write
  - handle_read
  - handle_write
  - cmp_mmio_handler
  - swap_mmio_handler
  - find_mmio_handler
  - try_decode_instruction
  - try_handle_mmio
  - register_mmio_handler
  - domain_io_init
  - domain_io_free
  source_file: /src/xen/xen/arch/arm/io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - setup_mm
  - flags_has_rwx
  - flush_page_to_ram
  - steal_page
  - page_is_offlinable
  - domain_get_maximum_gpfn
  - share_xen_page_with_guest
  - xenmem_add_to_physmap_one
  - arch_memory_op
  - page_get_owner_and_nr_reference
  - page_get_owner_and_reference
  - put_page_nr
  - put_page
  - get_page_nr
  - get_page
  - get_page_type
  - put_page_type
  - create_grant_host_mapping
  - replace_grant_host_mapping
  - is_iomem_page
  - clear_and_clean_page
  - get_upper_mfn_bound
  - ioremap
  source_file: /src/xen/xen/arch/arm/mm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_get_domain_info
  - handle_vuart_init
  - arch_do_domctl
  - arch_get_info_guest
  source_file: /src/xen/xen/arch/arm/domctl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - calibrate_safe_atomic
  - cpu_guest_safe_atomic_callback
  - guest_safe_atomic_init
  source_file: /src/xen/xen/arch/arm/guest_atomics.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vm_event_fill_regs
  - vm_event_set_registers
  - vm_event_monitor_next_interrupt
  source_file: /src/xen/xen/arch/arm/vm_event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - handle_ioserv
  - try_fwd_ioserv
  - arch_ioreq_complete_mmio
  - arch_ioreq_server_map_pages
  - arch_ioreq_server_unmap_pages
  - arch_ioreq_server_enable
  - arch_ioreq_server_disable
  - arch_ioreq_server_destroy
  - arch_ioreq_server_map_mem_type
  - arch_ioreq_server_map_mem_type_completed
  - arch_ioreq_server_destroy_all
  - arch_ioreq_server_get_type_addr
  - arch_ioreq_domain_init
  source_file: /src/xen/xen/arch/arm/ioreq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gicv3_its_enable_quirk_gen4
  - gicv3_its_find_quirk
  - gicv3_its_enable_quirks
  - gicv3_its_validate_quirks
  - gicv3_its_get_cacheability
  - gicv3_its_get_shareability
  - gicv3_its_get_memflags
  - gicv3_its_host_has_its
  - its_send_command
  - gicv3_its_wait_commands
  - encode_rdbase
  - its_send_cmd_sync
  - its_send_cmd_mapti
  - its_send_cmd_mapc
  - its_send_cmd_mapd
  - its_send_cmd_inv
  - gicv3_its_setup_collection
  - check_baser_phys_addr
  - encode_baser_phys_addr
  - its_map_cbaser
  - BASER_PAGE_BITS
  - its_map_baser
  - gicv3_disable_its
  - gicv3_its_init_single_its
  - remove_mapped_guest_device
  - gicv3_its_find_by_doorbell
  - compare_its_guest_devices
  - gicv3_its_map_host_events
  - gicv3_its_map_guest_device
  - get_its_device
  - get_event_pending_irq
  - gicv3_its_get_event_pending_irq
  - gicv3_remove_guest_event
  - gicv3_assign_guest_event
  - gicv3_its_deny_access
  - gicv3_its_make_hwdom_dt_nodes
  - add_to_host_its_list
  - gicv3_its_dt_init
  - dt_for_each_child_node
  - gicv3_its_acpi_probe
  - gicv3_its_acpi_init
  - gicv3_its_make_hwdom_madt
  - gicv3_its_acpi_init
  - gicv3_its_init
  source_file: /src/xen/xen/arch/arm/gic-v3-its.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ITS_CMD_QUEUE_SZ
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
      type_or_value: SZ_1M
    - item_type: preproc_def
      name: BUFPTR_MASK
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
      type_or_value: GENMASK(19, 5)
    - item_type: preproc_def
      name: BASER_ATTR_MASK
      pos:
        line_end: 365
        line_start: 361
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
      type_or_value: "((0x3UL << GITS_BASER_SHAREABILITY_SHIFT)               | \\\n
        \        (0x7UL << GITS_BASER_OUTER_CACHEABILITY_SHIFT)         | \\\n         (0x7UL
        << GITS_BASER_INNER_CACHEABILITY_SHIFT))"
    - item_type: preproc_def
      name: BASER_RO_MASK
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
      type_or_value: (GENMASK(58, 56) | GENMASK(52, 48))
    structs:
    - fields:
      - name: rbnode
        type: struct rb_node
      - name: '*hw_its'
        type: struct host_its
      - name: '*itt_addr'
        type: void
      - name: itt_order
        type: unsigned int
      - name: guest_doorbell
        type: paddr_t
      - name: host_devid
        type: uint32_t
      - name: guest_devid
        type: uint32_t
      - name: eventids
        type: uint32_t
      - name: '*host_lpi_blocks'
        type: uint32_t
      - name: '*pend_irqs'
        type: struct pending_irq
      item_type: struct
      name: its_device
      pos:
        line_end: 51
        line_start: 40
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
    - fields:
      - name: '*desc'
        type: char
      - name: (*init)(struct host_its *hw_its)
        type: bool
      - name: iidr
        type: uint32_t
      - name: mask
        type: uint32_t
      item_type: struct
      name: its_quirk
      pos:
        line_end: 62
        line_start: 57
        source_file: /src/xen/xen/arch/arm/gic-v3-its.c
    typedefs: []
    union: []
- function_names:
  - init_done
  - init_idle_domain
  - processor_id
  - discard_initial_modules
  - relocate_fdt
  - init_pdx
  - start_xen
  - for_each_present_cpu
  - init_xen_cap_info
  source_file: /src/xen/xen/arch/arm/setup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_walk_sd
  - get_ipa_output_size
  - get_ttbr_and_gran_64bit
  - get_top_bit
  - check_base_size
  - guest_walk_ld
  - guest_walk_tables
  source_file: /src/xen/xen/arch/arm/guest_walk.c
  types:
    enum:
    - enumerators:
      - name: GRANULE_SIZE_INDEX_4K
      - name: GRANULE_SIZE_INDEX_64K
      - name: GRANULE_SIZE_INDEX_16K
      item_type: enum
      name: granule_size_index
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/xen/xen/arch/arm/guest_walk.c
    - enumerators:
      - name: TTBR0_ACTIVE
      - name: TTBR1_ACTIVE
      item_type: enum
      name: active_ttbr
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/xen/xen/arch/arm/guest_walk.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WRITE_SYSREG_SZ
  - WRITE_SYSREG_SZ
  - TVM_REG
  - TVM_REG32
  - TVM_REG64
  - TVM_REG32_COMBINED
  - TVM_REG32_COMBINED
  - GENERATE_CASE
  - GENERATE_TID3_INFO
  - HSR_CPREG32_TID3_CASES
  - do_cp15_32
  - do_cp15_64
  - do_cp14_32
  - do_cp14_64
  - do_cp14_dbg
  - do_cp10
  - do_cp
  source_file: /src/xen/xen/arch/arm/vcpreg.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: type32_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/xen/arch/arm/vcpreg.c
      type: register_t
    - item_type: typedef
      name: type64_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/xen/arch/arm/vcpreg.c
      type: uint64_t
    union: []
- function_names:
  - DEV_TABLE_ITT_ADDR
  - DEV_TABLE_ITT_SIZE
  - DEV_TABLE_ENTRY
  - get_baser_phys_addr
  - its_set_collection
  - get_vcpu_from_collection
  - its_set_itt_address
  - its_get_itt
  - its_get_itte_address
  - read_itte
  - write_itte
  - its_cmd_mask_field
  - its_cmd_get_command
  - its_cmd_get_deviceid
  - its_cmd_get_size
  - its_cmd_get_id
  - its_cmd_get_physical_id
  - its_cmd_get_collection
  - its_cmd_get_target_addr
  - its_cmd_get_validbit
  - its_cmd_get_ittaddr
  - its_handle_int
  - its_handle_mapc
  - its_handle_clear
  - update_lpi_property
  - update_lpi_vgic_status
  - its_handle_inv
  - its_handle_invall
  - its_discard_event
  - its_unmap_device
  - its_handle_mapd
  - its_handle_mapti
  - its_handle_movi
  - its_handle_discard
  - ITS_CMD_BUFFER_SIZE
  - ITS_CMD_OFFSET
  - dump_its_command
  - vgic_its_handle_cmds
  - vgic_v3_its_mmio_read
  - its_baser_table_size
  - its_baser_nr_entries
  - vgic_v3_verify_its_status
  - sanitize_its_base_reg
  - vgic_v3_its_mmio_write
  - vgic_v3_its_init_virtual
  - vgic_v3_its_count
  - vgic_v3_its_init_domain
  - vgic_v3_its_free_domain
  source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNMAPPED_COLLECTION
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
      type_or_value: ((coll_table_entry_t)~0)
    - item_type: preproc_def
      name: GITS_BASER_RO_MASK
      pos:
        line_end: 94
        line_start: 92
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
      type_or_value: "(GITS_BASER_TYPE_MASK | \\\n                                  (0x1fL
        << GITS_BASER_ENTRY_SIZE_SHIFT))"
    - item_type: preproc_def
      name: GITS_IIDR_VALUE
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
      type_or_value: '0x5800034c'
    structs:
    - fields:
      - name: '*d'
        type: struct domain
      - name: vits_list
        type: struct list_head
      - name: doorbell_address
        type: paddr_t
      - name: devid_bits
        type: unsigned int
      - name: evid_bits
        type: unsigned int
      - name: vcmd_lock
        type: spinlock_t
      - name: cwriter
        type: uint64_t
      - name: creadr
        type: uint64_t
      - name: its_lock
        type: spinlock_t
      - name: cbaser
        type: uint64_t
      - name: baser_dev
        type: uint64_t
      - name: max_collections
        type: unsigned int
      - name: max_devices
        type: unsigned int
      - name: enabled
        type: bool
      item_type: struct
      name: virt_its
      pos:
        line_end: 60
        line_start: 43
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
    - fields:
      - name: vlpi
        type: uint32_t
      - name: collection
        type: uint16_t
      - name: pad
        type: uint16_t
      item_type: struct
      name: vits_itte
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
    typedefs:
    - item_type: typedef
      name: coll_table_entry_t
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
      type: uint16_t
    - item_type: typedef
      name: dev_table_entry_t
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/xen/arch/arm/vgic-v3-its.c
      type: uint64_t
    union: []
- function_names:
  - vpci_sbdf_from_gpa
  - vpci_mmio_read
  - vpci_mmio_read_root
  - vpci_mmio_read_child
  - vpci_mmio_write
  - vpci_mmio_write_root
  - vpci_mmio_write_child
  - vpci_setup_mmio_handler_cb
  - domain_vpci_init
  - vpci_get_num_handlers_cb
  - domain_vpci_get_num_mmio_handlers
  source_file: /src/xen/xen/arch/arm/vpci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - do_common_cpu_on
  - do_psci_cpu_on
  - do_psci_cpu_off
  - do_psci_0_2_version
  - do_psci_0_2_cpu_suspend
  - do_psci_0_2_cpu_off
  - do_psci_0_2_cpu_on
  - do_psci_0_2_affinity_info
  - do_psci_0_2_migrate_info_type
  - do_psci_0_2_system_off
  - do_psci_0_2_system_reset
  - do_psci_1_0_features
  - PSCI_SET_RESULT
  - PSCI_ARG
  - PSCI_ARG32
  - PSCI_ARG32
  - do_vpsci_0_1_call
  - do_vpsci_0_2_call
  source_file: /src/xen/xen/arch/arm/vpsci.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - branch_insn_requires_update
  - get_alt_insn
  - patch_alternative
  - __apply_alternatives
  - __apply_alternatives_multi_stop
  - xen_remap_colored
  - apply_alternatives_all
  - apply_alternatives
  source_file: /src/xen/xen/arch/arm/alternative.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*begin'
        type: struct alt_instr
      - name: '*end'
        type: struct alt_instr
      item_type: struct
      name: alt_region
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/xen/xen/arch/arm/alternative.c
    typedefs: []
    union: []
- function_names:
  - arch_do_physinfo
  - arch_do_sysctl
  source_file: /src/xen/xen/arch/arm/sysctl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_v3_setup_hw
  - vgic_v3_irouter_to_vcpu
  - vgic_fetch_irouter
  - vgic_store_irouter
  - __vgic_v3_rdistr_rd_mmio_read
  - sanitize_pendbaser
  - vgic_vcpu_enable_lpis
  - __vgic_v3_rdistr_rd_mmio_write
  - vgic_common_rank_offset
  - vgic_get_reg_offset
  - __vgic_v3_distr_common_mmio_read
  - __vgic_v3_distr_common_mmio_write
  - vgic_v3_rdistr_sgi_mmio_read
  - vgic_v3_rdistr_sgi_mmio_write
  - get_vcpu_from_rdist
  - vgic_v3_rdistr_mmio_read
  - vgic_v3_rdistr_mmio_write
  - vgic_v3_distr_mmio_read
  - vgic_v3_distr_mmio_write
  - vgic_v3_to_sgi
  - vgic_v3_emulate_sgi1r
  - vgic_v3_emulate_sysreg
  - vgic_v3_emulate_cp64
  - vgic_v3_emulate_reg
  - vgic_v3_vcpu_init
  - vgic_v3_max_rdist_count
  - vgic_v3_domain_init
  - vgic_v3_domain_free
  - vgic_v3_lpi_to_pending
  - vgic_v3_lpi_get_priority
  - vgic_v3_init
  source_file: /src/xen/xen/arch/arm/vgic-v3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GICV3_GICD_PIDR2
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/vgic-v3.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: GICV3_GICR_PIDR2
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/vgic-v3.c
      type_or_value: GICV3_GICD_PIDR2
    - item_type: preproc_def
      name: VGICD_CTLR_DEFAULT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/vgic-v3.c
      type_or_value: (GICD_CTLR_ARE_NS)
    - item_type: preproc_def
      name: NR_BYTES_PER_IROUTER
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/vgic-v3.c
      type_or_value: 8U
    structs:
    - fields:
      - name: enabled
        type: bool
      - name: dbase
        type: paddr_t
      - name: nr_rdist_regions
        type: unsigned int
      - name: '*regions'
        type: struct rdist_region
      - name: intid_bits
        type: unsigned int
      item_type: struct
      name: vgic_v3_hw
      pos:
        line_end: 52
        line_start: 44
        source_file: /src/xen/xen/arch/arm/vgic-v3.c
    typedefs: []
    union: []
- function_names:
  - place_modules
  - kernel_zimage_place
  - kernel_zimage_load
  - kernel_uimage_probe
  - kernel_zimage64_probe
  - kernel_zimage32_probe
  - kernel_zimage_probe
  source_file: /src/xen/xen/arch/arm/kernel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UIMAGE_MAGIC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x27051956'
    - item_type: preproc_def
      name: UIMAGE_NMLEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ZIMAGE32_MAGIC_OFFSET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x24'
    - item_type: preproc_def
      name: ZIMAGE32_START_OFFSET
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x28'
    - item_type: preproc_def
      name: ZIMAGE32_END_OFFSET
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x2c'
    - item_type: preproc_def
      name: ZIMAGE32_HEADER_LEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x30'
    - item_type: preproc_def
      name: ZIMAGE32_MAGIC
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x016f2818'
    - item_type: preproc_def
      name: ZIMAGE64_MAGIC_V0
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x14000008'
    - item_type: preproc_def
      name: ZIMAGE64_MAGIC_V1
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '0x644d5241 '
    - item_type: preproc_def
      name: IH_ARCH_ARM
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '2       '
    - item_type: preproc_def
      name: IH_ARCH_ARM64
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '22      '
    - item_type: preproc_def
      name: IH_COMP_GZIP
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/arm/kernel.c
      type_or_value: '1'
    structs:
    - fields:
      - name: magic
        type: uint32_t
      - name: total_size
        type: uint32_t
      item_type: struct
      name: minimal_dtb_header
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/xen/xen/arch/arm/kernel.c
    - fields:
      - name: magic
        type: __be32
      - name: hcrc
        type: __be32
      - name: time
        type: __be32
      - name: size
        type: __be32
      - name: load
        type: __be32
      - name: ep
        type: __be32
      - name: dcrc
        type: __be32
      - name: os
        type: uint8_t
      - name: arch
        type: uint8_t
      - name: type
        type: uint8_t
      - name: comp
        type: uint8_t
      - name: name[UIMAGE_NMLEN]
        type: uint8_t
      item_type: struct
      name: uimage
      pos:
        line_end: 190
        line_start: 177
        source_file: /src/xen/xen/arch/arm/kernel.c
    - fields:
      - name: magic0
        type: uint32_t
      - name: res0
        type: uint32_t
      - name: text_offset
        type: uint64_t
      - name: res1
        type: uint64_t
      - name: res2
        type: uint64_t
      - name: res3
        type: uint64_t
      - name: res4
        type: uint64_t
      - name: res5
        type: uint64_t
      - name: magic1
        type: uint32_t
      - name: res6
        type: uint32_t
      item_type: struct
      name: zimage
      pos:
        line_end: 317
        line_start: 305
        source_file: /src/xen/xen/arch/arm/kernel.c
    typedefs: []
    union: []
- function_names:
  - map_irq_to_domain
  - map_range_to_domain
  - map_device_irqs_to_domain
  - map_dt_irq_to_domain
  - map_device_children
  - handle_device
  source_file: /src/xen/xen/arch/arm/device.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hvm_allow_set_param
  - hvm_allow_get_param
  - do_hvm_op
  source_file: /src/xen/xen/arch/arm/hvm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __p2m_get_mem_access
  - p2m_mem_access_check_and_get_page
  - p2m_mem_access_check
  - p2m_set_mem_access
  - p2m_set_mem_access_multi
  - p2m_get_mem_access
  - arch_p2m_set_access_required
  source_file: /src/xen/xen/arch/arm/mem_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dm_op
  source_file: /src/xen/xen/arch/arm/dm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gicv3_save_lrs
  - gicv3_restore_lrs
  - gicv3_ich_read_lr
  - gicv3_ich_write_lr
  - gicv3_enable_sre
  - gicv3_do_wait_for_rwp
  - gicv3_dist_wait_for_rwp
  - gicv3_redist_wait_for_rwp
  - gicv3_wait_for_rwp
  - gicv3_get_cpu_from_mask
  - restore_aprn_regs
  - save_aprn_regs
  - gicv3_save_state
  - gicv3_restore_state
  - gicv3_dump_state
  - get_addr_by_offset
  - gicv3_poke_irq
  - gicv3_peek_irq
  - gicv3_unmask_irq
  - gicv3_mask_irq
  - gicv3_eoi_irq
  - gicv3_dir_irq
  - gicv3_read_irq
  - gicv3_set_active_state
  - gicv3_set_pending_state
  - gicv3_set_irq_type
  - gicv3_set_irq_priority
  - gic_number_espis
  - gicv3_dist_espi_common_init
  - gicv3_dist_espi_init_aff
  - gicv3_dist_espi_common_init
  - gicv3_dist_espi_init_aff
  - gicv3_dist_init
  - gicv3_enable_redist
  - gicv3_enable_lpis
  - gicv3_cpu_init
  - gicv3_cpu_disable
  - gicv3_hyp_init
  - gicv3_secondary_cpu_init
  - gicv3_hyp_disable
  - gicv3_compute_target_list
  - gicv3_send_sgi_list
  - for_each_cpu
  - gicv3_send_sgi
  - gicv3_disable_interface
  - gicv3_update_lr
  - gicv3_clear_lr
  - gicv3_read_lr
  - gicv3_write_lr
  - gicv3_hcr_status
  - gicv3_read_vmcr_priority
  - gicv3_read_apr
  - gicv3_read_pending_state
  - gicv3_irq_enable
  - gicv3_irq_disable
  - gicv3_irq_startup
  - gicv3_irq_shutdown
  - gicv3_irq_ack
  - gicv3_host_irq_end
  - gicv3_guest_irq_end
  - gicv3_irq_set_affinity
  - gicv3_make_hwdom_dt_node
  - gicv3_init_v2
  - gicv3_init_v2
  - gicv3_ioremap_distributor
  - gicv3_dt_init
  - gicv3_iomem_deny_access
  - gic_acpi_add_rdist_region
  - gic_dist_supports_dvis
  - gicv3_make_hwdom_madt
  - gicv3_get_hwdom_extra_madt_size
  - gic_acpi_parse_madt_cpu
  - gic_acpi_parse_madt_distributor
  - gic_acpi_parse_cpu_redistributor
  - gic_acpi_get_madt_cpu_num
  - gic_acpi_parse_madt_redistributor
  - gic_acpi_get_madt_redistributor_num
  - gicv3_acpi_init
  - gicv3_acpi_init
  - gic_dist_supports_lpis
  - gicv3_init
  - gicv3_dt_preinit
  - gicv3_acpi_preinit
  source_file: /src/xen/xen/arch/arm/gic-v3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GICD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/gic-v3.c
      type_or_value: (gicv3.map_dbase)
    - item_type: preproc_def
      name: GICD_RDIST_BASE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/gic-v3.c
      type_or_value: (this_cpu(rbase))
    - item_type: preproc_def
      name: GICD_RDIST_SGI_BASE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/gic-v3.c
      type_or_value: (GICD_RDIST_BASE + SZ_64K)
    structs:
    - fields:
      - name: '*map_dbase'
        type: void
      - name: '*rdist_regions'
        type: struct rdist_region
      - name: rdist_stride
        type: uint32_t
      - name: rdist_count
        type: unsigned int
      - name: nr_priorities
        type: unsigned int
      - name: lock
        type: spinlock_t
      item_type: struct
      name: gicv3
      pos:
        line_end: 43
        line_start: 36
        source_file: /src/xen/xen/arch/arm/gic-v3.c
    typedefs: []
    union: []
- function_names:
  - fill_uid
  - fill_revision
  - fill_function_call_count
  - handle_arch
  - handle_hypervisor
  - handle_existing_apis
  - is_psci_fid
  - handle_sssc
  - handle_sip
  - vsmccc_handle_call
  - do_trap_smc
  - do_trap_hvc_smccc
  source_file: /src/xen/xen/arch/arm/vsmc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_SMCCC_FUNCTION_COUNT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/vsmc.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SSSC_SMCCC_FUNCTION_COUNT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/vsmc.c
      type_or_value: (3 + VPSCI_NR_FUNCS + FFA_NR_FUNCS)
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_assertions
  - parse_vwfi
  - get_default_hcr_flags
  - get_default_cptr_flags
  - parse_serrors_behavior
  - update_serrors_cpu_caps
  - init_traps
  - __div0
  - print_xen_info
  - is_zero_register
  - is_zero_register
  - select_user_reg
  - REGOFFS
  - get_user_reg
  - set_user_reg
  - decode_fsc
  - fsc_level_str
  - panic_PAR
  - cpsr_switch_mode
  - exception_handler32
  - inject_undef32_exception
  - inject_abt32_exception
  - inject_dabt32_exception
  - inject_pabt32_exception
  - exception_handler64
  - inject_undef64_exception
  - inject_abt64_exception
  - inject_dabt64_exception
  - inject_iabt64_exception
  - inject_undef_exception
  - inject_iabt_exception
  - inject_dabt_exception
  - inject_vabt_exception
  - __do_trap_serror
  - mode_string
  - show_registers_32
  - show_registers_64
  - _show_registers
  - show_registers
  - vcpu_show_registers
  - show_guest_stack
  - STACK_BEFORE_EXCEPTION
  - STACK_FRAME_BASE
  - STACK_FRAME_BASE
  - show_trace
  - show_stack
  - show_execution_state
  - vcpu_show_execution_state
  - do_unexpected_trap
  - do_bug_frame
  - do_trap_brk
  - dep_sched_op_compat
  - dep_event_channel_op_compat
  - dep_physdev_op_compat
  - do_debug_trap
  - HYPERCALL_RESULT_REG
  - HYPERCALL_ARG1
  - HYPERCALL_ARG2
  - HYPERCALL_ARG3
  - HYPERCALL_ARG4
  - HYPERCALL_ARG5
  - HYPERCALL_RESULT_REG
  - HYPERCALL_ARG1
  - HYPERCALL_ARG2
  - HYPERCALL_ARG3
  - HYPERCALL_ARG4
  - HYPERCALL_ARG5
  - do_trap_hypercall
  - arch_hypercall_tasklet_result
  - check_multicall_32bit_clean
  - arch_do_multicall_call
  - check_conditional_instr
  - advance_pc
  - handle_raz_wi
  - handle_wo_wi
  - handle_ro_read_val
  - handle_ro_raz
  - get_hfar
  - get_faulting_ipa
  - hpfar_is_valid
  - try_map_mmio
  - check_p2m
  - do_trap_stage2_abort_guest
  - needs_ssbd_flip
  - enter_hypervisor_from_guest_preirq
  - enter_hypervisor_from_guest
  - do_trap_guest_sync
  - do_trap_hyp_sync
  - do_trap_hyp_serror
  - do_trap_guest_serror
  - do_trap_irq
  - do_trap_fiq
  - check_for_pcpu_work
  - check_for_vcpu_work
  - leave_hypervisor_to_guest
  source_file: /src/xen/xen/arch/arm/traps.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stack_words_per_line
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/traps.c
      type_or_value: '8'
    - item_type: preproc_def
      name: stack_words_per_line
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/traps.c
      type_or_value: '4'
    structs:
    - fields:
      - name: sctlr_el1
        type: register_t
      - name: tcr_el1
        type: register_t
      - name: ttbr0_el1
        type: uint64_t
      item_type: struct
      name: reg_ctxt
      pos:
        line_end: 721
        line_start: 703
        source_file: /src/xen/xen/arch/arm/traps.c
    typedefs: []
    union: []
- function_names:
  - processor_setup
  - processor_vcpu_initialise
  source_file: /src/xen/xen/arch/arm/processor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_monitor_domctl_event
  - monitor_smc
  source_file: /src/xen/xen/arch/arm/monitor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - early_puts
  source_file: /src/xen/xen/arch/arm/early_printk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - domain_vuart_init
  source_file: /src/xen/xen/arch/arm/vuart.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - idx_to_virq
  - vgic_is_valid_line
  - is_valid_espi_rank
  - vgic_get_espi_rank
  - is_valid_espi_rank
  - vgic_get_espi_rank
  - vgic_get_rank
  - vgic_rank_offset
  - vgic_rank_irq
  - vgic_init_pending_irq
  - vgic_rank_init
  - domain_vgic_register
  - vgic_ext_rank_offset
  - vgic_num_spi_lines
  - init_vgic_espi
  - init_vgic_espi
  - vgic_num_spi_lines
  - vgic_ext_rank_offset
  - vgic_num_alloc_irqs
  - domain_vgic_init
  - register_vgic_ops
  - domain_vgic_free
  - vcpu_vgic_init
  - vcpu_vgic_free
  - vgic_get_target_vcpu
  - vgic_get_virq_priority
  - vgic_migrate_irq
  - arch_move_irqs
  - vgic_disable_irqs
  - VGIC_ICFG_MASK
  - vgic_get_virq_type
  - vgic_enable_irqs
  - vgic_set_irqs_pending
  - for_each_set_bit
  - vgic_to_sgi
  - irq_to_pending
  - spi_to_pending
  - vgic_clear_pending_irqs
  - vgic_remove_irq_from_queues
  - vgic_inject_irq
  - vgic_evtchn_irq_pending
  - vgic_emulate
  - vgic_reserve_virq
  - vgic_allocate_virq
  - vgic_free_virq
  - vgic_max_vcpus
  - vgic_check_inflight_irqs_pending
  - for_each_set_bit
  source_file: /src/xen/xen/arch/arm/vgic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timer_get_irq
  - acpi_get_timer_irq_type
  - arch_timer_acpi_init
  - preinit_acpi_xen_time
  - preinit_acpi_xen_time
  - validate_timer_frequency
  - preinit_dt_xen_time
  - preinit_xen_time
  - init_dt_xen_time
  - init_xen_time
  - get_s_time
  - reprogram_timer
  - htimer_interrupt
  - vtimer_interrupt
  - check_timer_irq_cfg
  - init_timer_interrupt
  - deinit_timer_interrupt
  - udelay
  - send_timer_event
  - update_vcpu_system_time
  - force_update_vcpu_system_time
  - domain_set_time_offset
  - cpu_time_callback
  - cpu_time_notifier_init
  source_file: /src/xen/xen/arch/arm/time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_gicv2_domU_node
  - make_gicv3_domU_node
  - make_intc_domU_node
  - make_vpl011_uart_node
  - make_arch_nodes
  - set_domain_type
  - set_domain_type
  - init_vuart
  - arch_handle_passthrough_prop
  - domu_dt_sci_parse
  - arch_parse_dom0less_node
  - init_intc_phandle
  source_file: /src/xen/xen/arch/arm/dom0less-build.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - arch_livepatch_safety_check
  - arch_livepatch_quiesce
  - arch_livepatch_revive
  - arch_livepatch_verify_func
  - arch_livepatch_revert
  - arch_livepatch_post_action
  - arch_livepatch_mask
  - arch_livepatch_unmask
  - arch_livepatch_symbol_ok
  - arch_livepatch_secure
  - arch_livepatch_init
  source_file: /src/xen/xen/arch/arm/livepatch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_v2_setup_hw
  - vgic_fetch_itargetsr
  - vgic_store_itargetsr
  - vgic_v2_distr_mmio_read
  - vgic_v2_to_sgi
  - vgic_v2_distr_mmio_write
  - vgic_v2_vcpu_init
  - vgic_v2_domain_init
  - vgic_v2_domain_free
  - vgic_v2_lpi_to_pending
  - vgic_v2_lpi_get_priority
  - vgic_v2_init
  source_file: /src/xen/xen/arch/arm/vgic-v2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_TARGETS_PER_ITARGETSR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/vgic-v2.c
      type_or_value: 4U
    - item_type: preproc_def
      name: NR_BITS_PER_TARGET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/vgic-v2.c
      type_or_value: (32U / NR_TARGETS_PER_ITARGETSR)
    structs:
    - fields:
      - name: enabled
        type: bool
      - name: dbase
        type: paddr_t
      - name: cbase
        type: paddr_t
      - name: csize
        type: paddr_t
      - name: vbase
        type: paddr_t
      - name: aliased_offset
        type: uint32_t
      item_type: struct
      name: vgic_v2_hw
      pos:
        line_end: 38
        line_start: 26
        source_file: /src/xen/xen/arch/arm/vgic-v2.c
    typedefs: []
    union: []
- function_names:
  - do_arm_physdev_op
  source_file: /src/xen/xen/arch/arm/physdev.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - map_domain_page_global
  - map_domain_page
  - unmap_domain_page
  - domain_page_map_to_mfn
  - unmap_domain_page_global
  source_file: /src/xen/xen/arch/arm/mpu/domain-page.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_set_entry
  - p2m_get_entry
  - p2m_dump_info
  - p2m_init
  - p2m_save_state
  - p2m_restore_state
  - p2m_final_teardown
  - p2m_resolve_translation_fault
  - p2m_flush_vm
  - relinquish_p2m_mapping
  - p2m_domain_creation_finished
  - p2m_teardown
  - p2m_teardown_allocation
  source_file: /src/xen/xen/arch/arm/mpu/p2m.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_assertions
  - pr_of_addr
  - mpumap_contains_region
  - is_mm_attr_match
  - setup_frametable_mappings
  - xen_mpumap_alloc_entry
  - disable_mpu_region_from_index
  - xen_mpumap_free_entry
  - xen_mpumap_update_entry
  - xen_mpumap_update
  - destroy_xen_mappings
  - destroy_xen_mapping_containing
  - map_pages_to_xen
  - setup_mm_helper
  - modify_xen_mappings
  - dump_hyp_walk
  - free_init_memory
  - ioremap_attr
  source_file: /src/xen/xen/arch/arm/mpu/mm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPU_ATTR_XN_RO_MISMATCH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/mpu/mm.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: MPU_ATTR_AI_MISMATCH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/mpu/mm.c
      type_or_value: '-2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vmap_contig
  - vunmap
  source_file: /src/xen/xen/arch/arm/mpu/vmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_pagetables
  - early_fdt_map
  - copy_from_paddr
  - modify_after_init_mappings
  - remove_early_mappings
  source_file: /src/xen/xen/arch/arm/mpu/setup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GENERATE_WRITE_PR_REG_CASE
  - GENERATE_WRITE_PR_REG_OTHERS
  - GENERATE_READ_PR_REG_CASE
  - GENERATE_READ_PR_REG_OTHERS
  - prepare_selector
  - read_protection_region
  - write_protection_region
  source_file: /src/xen/xen/arch/arm/mpu/arm32/mm.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRBAR_EL2_
  - PRLAR_EL2_
  - GENERATE_WRITE_PR_REG_CASE
  - GENERATE_READ_PR_REG_CASE
  - prepare_selector
  - read_protection_region
  - write_protection_region
  source_file: /src/xen/xen/arch/arm/mpu/arm64/mm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRBAR0_EL2
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/mpu/arm64/mm.c
      type_or_value: PRBAR_EL2
    - item_type: preproc_def
      name: PRLAR0_EL2
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/mpu/arm64/mm.c
      type_or_value: PRLAR_EL2
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffa_rxtx_map
  - ffa_rxtx_unmap
  - ffa_handle_rxtx_map
  - rxtx_unmap
  - ffa_handle_rxtx_unmap
  - ffa_rx_acquire
  - ffa_rx_release
  - ffa_tx_acquire
  - ffa_tx_release
  - ffa_rxtx_domain_init
  - ffa_rxtx_domain_destroy
  - ffa_rxtx_spmc_rx_acquire
  - ffa_rxtx_spmc_rx_release
  - ffa_rxtx_spmc_tx_acquire
  - ffa_rxtx_spmc_tx_release
  - ffa_rxtx_spmc_destroy
  - ffa_rxtx_spmc_init
  source_file: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sender_id
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: rx_range_count
        type: uint32_t
      - name: tx_range_count
        type: uint32_t
      item_type: struct
      name: ffa_endpoint_rxtx_descriptor_1_0
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    - fields:
      - name: sender_id
        type: uint16_t
      - name: reserved
        type: uint16_t
      - name: rx_region_offs
        type: uint32_t
      - name: tx_region_offs
        type: uint32_t
      item_type: struct
      name: ffa_endpoint_rxtx_descriptor_1_1
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/xen/xen/arch/arm/tee/ffa_rxtx.c
    typedefs: []
    union: []
- function_names:
  - ffa_spmc_share
  - ffa_spmc_reclaim
  - get_shm_pages
  - put_shm_pages
  - inc_ctx_shm_count
  - dec_ctx_shm_count
  - alloc_ffa_shm_mem
  - free_ffa_shm_mem
  - init_range
  - share_shm
  - read_mem_transaction
  - ffa_handle_mem_share
  - find_shm_mem
  - ffa_handle_mem_reclaim
  - ffa_shm_domain_destroy
  source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: endpoint_id
        type: uint16_t
      - name: perm
        type: uint8_t
      - name: flags
        type: uint8_t
      item_type: struct
      name: ffa_mem_access_perm
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: access_perm
        type: struct ffa_mem_access_perm
      - name: region_offs
        type: uint32_t
      - name: reserved
        type: uint64_t
      item_type: struct
      name: ffa_mem_access
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: access_perm
        type: struct ffa_mem_access_perm
      - name: region_offs
        type: uint32_t
      - name: impdef[16]
        type: uint8_t
      - name: reserved[8]
        type: uint8_t
      item_type: struct
      name: ffa_mem_access_1_2
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: sender_id
        type: uint16_t
      - name: mem_reg_attr
        type: uint8_t
      - name: reserved0
        type: uint8_t
      - name: flags
        type: uint32_t
      - name: handle
        type: uint64_t
      - name: tag
        type: uint64_t
      - name: reserved1
        type: uint32_t
      - name: mem_access_count
        type: uint32_t
      - name: mem_access_array[]
        type: struct ffa_mem_access
      item_type: struct
      name: ffa_mem_transaction_1_0
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: sender_id
        type: uint16_t
      - name: mem_reg_attr
        type: uint16_t
      - name: flags
        type: uint32_t
      - name: handle
        type: uint64_t
      - name: tag
        type: uint64_t
      - name: mem_access_size
        type: uint32_t
      - name: mem_access_count
        type: uint32_t
      - name: mem_access_offs
        type: uint32_t
      - name: reserved[12]
        type: uint8_t
      item_type: struct
      name: ffa_mem_transaction_1_1
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: sender_id
        type: uint16_t
      - name: mem_reg_attr
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: mem_access_size
        type: uint8_t
      - name: mem_access_count
        type: uint8_t
      - name: mem_access_offs
        type: uint16_t
      - name: handle
        type: uint64_t
      - name: tag
        type: uint64_t
      item_type: struct
      name: ffa_mem_transaction_int
      pos:
        line_end: 80
        line_start: 71
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    - fields:
      - name: list
        type: struct list_head
      - name: sender_id
        type: uint16_t
      - name: ep_id
        type: uint16_t
      - name: handle
        type: uint64_t
      - name: impdef[2]
        type: uint64_t
      - name: page_count
        type: unsigned int
      - name: '*pages[]'
        type: struct page_info
      item_type: struct
      name: ffa_shm_mem
      pos:
        line_end: 91
        line_start: 82
        source_file: /src/xen/xen/arch/arm/tee/ffa_shm.c
    typedefs: []
    union: []
- function_names:
  - FW_ABI
  - ffa_get_version
  - ffa_abi_supported
  - ffa_negotiate_version
  - handle_features
  - ffa_handle_call
  - ffa_endpoint_domain_lookup
  - ffa_domain_init
  - ffa_domain_teardown_continue
  - ffa_teardown_timer_callback
  - ffa_domain_teardown
  - ffa_free_domain_ctx
  - ffa_relinquish_resources
  - ffa_init_secondary
  - ffa_probe_fw
  - ffa_probe_vm_to_vm
  - ffa_probe
  source_file: /src/xen/xen/arch/arm/tee/ffa.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: uint32_t
      - name: '*name'
        type: char
      item_type: struct
      name: ffa_fw_abi
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/xen/xen/arch/arm/tee/ffa.c
    typedefs: []
    union: []
- function_names:
  - MAKE_FFA_VERSION
  - FFA_VERSION_MAJOR
  - FFA_VERSION_MINOR
  - FFA_ID_IS_SECURE
  - FFA_ABI_ID
  - FFA_ABI_CONV
  - FFA_ABI_BITNUM
  - ffa_raise_rx_buffer_full
  - get_ffa_vm_count
  - inc_ffa_vm_count
  - dec_ffa_vm_count
  - get_ffa_vm_count
  - inc_ffa_vm_count
  - dec_ffa_vm_count
  - ffa_get_vm_id
  - ffa_rcu_lock_domain_by_vm_id
  - ffa_set_regs
  - ffa_set_regs_error
  - ffa_set_regs_success
  - ffa_get_ret_code
  - ffa_simple_call
  - ffa_fw_supports_fid
  - ffa_uuid_is_nil
  - ffa_uuid_equal
  - ffa_uuid_set
  - ffa_safe_addr_add
  source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FFA_RET_OK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFA_RET_NOT_SUPPORTED
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: FFA_RET_INVALID_PARAMETERS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: FFA_RET_NO_MEMORY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: FFA_RET_BUSY
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-4'
    - item_type: preproc_def
      name: FFA_RET_INTERRUPTED
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-5'
    - item_type: preproc_def
      name: FFA_RET_DENIED
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-6'
    - item_type: preproc_def
      name: FFA_RET_RETRY
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-7'
    - item_type: preproc_def
      name: FFA_RET_ABORTED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-8'
    - item_type: preproc_def
      name: FFA_RET_NO_DATA
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '-9'
    - item_type: preproc_def
      name: FFA_VERSION_MAJOR_SHIFT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 16U
    - item_type: preproc_def
      name: FFA_VERSION_MAJOR_MASK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: GENMASK(14, 0)
    - item_type: preproc_def
      name: FFA_VERSION_MINOR_SHIFT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0U
    - item_type: preproc_def
      name: FFA_VERSION_MINOR_MASK
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: GENMASK(15, 0)
    - item_type: preproc_def
      name: FFA_VERSION_1_0
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: MAKE_FFA_VERSION(1, 0)
    - item_type: preproc_def
      name: FFA_VERSION_1_1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: MAKE_FFA_VERSION(1, 1)
    - item_type: preproc_def
      name: FFA_VERSION_1_2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: MAKE_FFA_VERSION(1, 2)
    - item_type: preproc_def
      name: FFA_MIN_SPMC_VERSION
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: FFA_VERSION_1_1
    - item_type: preproc_def
      name: FFA_MY_VERSION_MAJOR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 1U
    - item_type: preproc_def
      name: FFA_MY_VERSION_MINOR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 2U
    - item_type: preproc_def
      name: FFA_MY_VERSION
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: "MAKE_FFA_VERSION(FFA_MY_VERSION_MAJOR, \\\n                                                 FFA_MY_VERSION_MINOR)"
    - item_type: preproc_def
      name: FFA_PAGE_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: SZ_4K
    - item_type: preproc_def
      name: FFA_RXTX_PAGE_COUNT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFA_MAX_RXTX_PAGE_COUNT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFA_MAX_SHM_PAGE_COUNT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (2 * SZ_512K / FFA_PAGE_SIZE)
    - item_type: preproc_def
      name: FFA_MAX_SHM_COUNT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '32'
    - item_type: preproc_def
      name: FFA_CTX_TEARDOWN_DELAY
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: SECONDS(1)
    - item_type: preproc_def
      name: FFA_MAX_NUM_SP
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '64'
    - item_type: preproc_def
      name: FFA_HANDLE_HYP_FLAG
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(63, ULL)
    - item_type: preproc_def
      name: FFA_HANDLE_INVALID
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xffffffffffffffffULL
    - item_type: preproc_def
      name: FFA_MEM_ATTR_NS
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(6, U)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_TYPE_DEV
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_TYPE_MEM
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (2U << 4)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_NC
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_WB
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (3U << 2)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_NON_SHARE
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (0U)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_OUT_SHARE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (2U)
    - item_type: preproc_def
      name: FFA_MEM_ATTR_INN_SHARE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (3U)
    - item_type: preproc_def
      name: FFA_NORMAL_MEM_REG_ATTR
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: "(FFA_MEM_ATTR_TYPE_MEM | \\\n                                         FFA_MEM_ATTR_WB
        | \\\n                                         FFA_MEM_ATTR_INN_SHARE)"
    - item_type: preproc_def
      name: FFA_MEM_ACC_RW
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x2U
    - item_type: preproc_def
      name: FFA_MEMORY_REGION_FLAG_CLEAR
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_MEMORY_REGION_FLAG_TIME_SLICE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: FFA_MEMORY_REGION_FLAG_CLEAR_RELINQUISH
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(2, U)
    - item_type: preproc_def
      name: FFA_MEMORY_REGION_TRANSACTION_TYPE_SHARE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: FFA_MSG_FLAG_FRAMEWORK
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(31, U)
    - item_type: preproc_def
      name: FFA_MSG_TYPE_MASK
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xFFU;
    - item_type: preproc_def
      name: FFA_MSG_PSCI
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x0U
    - item_type: preproc_def
      name: FFA_MSG_SEND_VM_CREATED
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x4U
    - item_type: preproc_def
      name: FFA_MSG_RESP_VM_CREATED
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x5U
    - item_type: preproc_def
      name: FFA_MSG_SEND_VM_DESTROYED
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x6U
    - item_type: preproc_def
      name: FFA_MSG_RESP_VM_DESTROYED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x7U
    - item_type: preproc_def
      name: FFA_PART_PROP_DIRECT_REQ_RECV
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_DIRECT_REQ_SEND
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_INDIRECT_MSGS
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(2, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_RECV_NOTIF
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(3, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_IS_TYPE_MASK
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (3U << 4)
    - item_type: preproc_def
      name: FFA_PART_PROP_IS_PE_ID
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (0U << 4)
    - item_type: preproc_def
      name: FFA_PART_PROP_IS_SEPID_INDEP
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: FFA_PART_PROP_IS_SEPID_DEP
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (2U << 4)
    - item_type: preproc_def
      name: FFA_PART_PROP_IS_AUX_ID
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: (3U << 4)
    - item_type: preproc_def
      name: FFA_PART_PROP_NOTIF_CREATED
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(6, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_NOTIF_DESTROYED
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(7, U)
    - item_type: preproc_def
      name: FFA_PART_PROP_AARCH64_STATE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(8, U)
    - item_type: preproc_def
      name: FFA_PARTITION_INFO_GET_COUNT_FLAG
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_PART_VM_PROP
      pos:
        line_end: 225
        line_start: 221
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: "(FFA_PART_PROP_DIRECT_REQ_SEND | \\\n                             FFA_PART_PROP_INDIRECT_MSGS
        | \\\n                             FFA_PART_PROP_RECV_NOTIF | \\\n                             FFA_PART_PROP_IS_PE_ID)"
    - item_type: preproc_def
      name: FFA_NOTIF_FLAG_BITMAP_SP
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_NOTIF_FLAG_BITMAP_VM
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: FFA_NOTIF_FLAG_BITMAP_SPM
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(2, U)
    - item_type: preproc_def
      name: FFA_NOTIF_FLAG_BITMAP_HYP
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(3, U)
    - item_type: preproc_def
      name: FFA_NOTIF_INFO_GET_MORE_FLAG
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_NOTIF_INFO_GET_ID_LIST_SHIFT
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FFA_NOTIF_INFO_GET_ID_COUNT_SHIFT
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '7'
    - item_type: preproc_def
      name: FFA_NOTIF_INFO_GET_ID_COUNT_MASK
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: '0x1F'
    - item_type: preproc_def
      name: FFA_NOTIF_RX_BUFFER_FULL
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: FFA_FEATURE_NOTIF_PEND_INTR
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x1U
    - item_type: preproc_def
      name: FFA_FEATURE_SCHEDULE_RECV_INTR
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x2U
    - item_type: preproc_def
      name: FFA_ERROR
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000060U
    - item_type: preproc_def
      name: FFA_SUCCESS_32
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000061U
    - item_type: preproc_def
      name: FFA_SUCCESS_64
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000061U
    - item_type: preproc_def
      name: FFA_INTERRUPT
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000062U
    - item_type: preproc_def
      name: FFA_VERSION
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000063U
    - item_type: preproc_def
      name: FFA_FEATURES
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000064U
    - item_type: preproc_def
      name: FFA_RX_RELEASE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000065U
    - item_type: preproc_def
      name: FFA_RXTX_MAP_32
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000066U
    - item_type: preproc_def
      name: FFA_RXTX_MAP_64
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000066U
    - item_type: preproc_def
      name: FFA_RXTX_UNMAP
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000067U
    - item_type: preproc_def
      name: FFA_PARTITION_INFO_GET
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000068U
    - item_type: preproc_def
      name: FFA_ID_GET
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000069U
    - item_type: preproc_def
      name: FFA_MSG_POLL
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006AU
    - item_type: preproc_def
      name: FFA_MSG_WAIT
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006BU
    - item_type: preproc_def
      name: FFA_MSG_YIELD
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006CU
    - item_type: preproc_def
      name: FFA_RUN
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006DU
    - item_type: preproc_def
      name: FFA_MSG_SEND
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006EU
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_REQ_32
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400006FU
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_REQ_64
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC400006FU
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_RESP_32
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000070U
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_RESP_64
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000070U
    - item_type: preproc_def
      name: FFA_MEM_DONATE_32
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000071U
    - item_type: preproc_def
      name: FFA_MEM_DONATE_64
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000071U
    - item_type: preproc_def
      name: FFA_MEM_LEND_32
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000072U
    - item_type: preproc_def
      name: FFA_MEM_LEND_64
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000072U
    - item_type: preproc_def
      name: FFA_MEM_SHARE_32
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000073U
    - item_type: preproc_def
      name: FFA_MEM_SHARE_64
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000073U
    - item_type: preproc_def
      name: FFA_MEM_RETRIEVE_REQ_32
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000074U
    - item_type: preproc_def
      name: FFA_MEM_RETRIEVE_REQ_64
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000074U
    - item_type: preproc_def
      name: FFA_MEM_RETRIEVE_RESP
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000075U
    - item_type: preproc_def
      name: FFA_MEM_RELINQUISH
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000076U
    - item_type: preproc_def
      name: FFA_MEM_RECLAIM
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000077U
    - item_type: preproc_def
      name: FFA_MEM_FRAG_RX
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400007AU
    - item_type: preproc_def
      name: FFA_MEM_FRAG_TX
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400007BU
    - item_type: preproc_def
      name: FFA_NOTIFICATION_BITMAP_CREATE
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400007DU
    - item_type: preproc_def
      name: FFA_NOTIFICATION_BITMAP_DESTROY
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400007EU
    - item_type: preproc_def
      name: FFA_NOTIFICATION_BIND
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400007FU
    - item_type: preproc_def
      name: FFA_NOTIFICATION_UNBIND
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000080U
    - item_type: preproc_def
      name: FFA_NOTIFICATION_SET
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000081U
    - item_type: preproc_def
      name: FFA_NOTIFICATION_GET
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000082U
    - item_type: preproc_def
      name: FFA_NOTIFICATION_INFO_GET_32
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000083U
    - item_type: preproc_def
      name: FFA_NOTIFICATION_INFO_GET_64
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC4000083U
    - item_type: preproc_def
      name: FFA_RX_ACQUIRE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000084U
    - item_type: preproc_def
      name: FFA_SPM_ID_GET
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000085U
    - item_type: preproc_def
      name: FFA_MSG_SEND2
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x84000086U
    - item_type: preproc_def
      name: FFA_CONSOLE_LOG_32
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400008AU
    - item_type: preproc_def
      name: FFA_CONSOLE_LOG_64
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC400008AU
    - item_type: preproc_def
      name: FFA_PARTITION_INFO_GET_REGS
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0x8400008BU
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_REQ2
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC400008DU
    - item_type: preproc_def
      name: FFA_MSG_SEND_DIRECT_RESP2
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: 0xC400008EU
    - item_type: preproc_def
      name: FFA_ABI_BITMAP_SIZE
      pos:
        line_end: 306
        line_start: 304
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
      type_or_value: "(2 * (FFA_FNUM_MAX_VALUE - FFA_FNUM_MIN_VALUE \\\n                               +
        1))"
    structs:
    - fields:
      - name: address
        type: uint64_t
      - name: page_count
        type: uint32_t
      - name: reserved
        type: uint32_t
      item_type: struct
      name: ffa_address_range
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
    - fields:
      - name: total_page_count
        type: uint32_t
      - name: address_range_count
        type: uint32_t
      - name: reserved
        type: uint64_t
      - name: address_range_array[]
        type: struct ffa_address_range
      item_type: struct
      name: ffa_mem_region
      pos:
        line_end: 322
        line_start: 317
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
    - fields:
      - name: val[2]
        type: uint64_t
      item_type: struct
      name: ffa_uuid
      pos:
        line_end: 326
        line_start: 324
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
    - fields:
      - name: secure_pending
        type: bool
      - name: vm_pending
        type: bool
      - name: buff_full_pending
        type: bool
      item_type: struct
      name: ffa_ctx_notif
      pos:
        line_end: 345
        line_start: 328
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
    - fields:
      - name: ctx_list
        type: struct list_head
      - name: ffa_id
        type: uint16_t
      - name: num_vcpus
        type: uint16_t
      - name: is_64bit
        type: bool
      - name: notif
        type: struct ffa_ctx_notif
      - name: lock
        type: spinlock_t
      - name: page_count
        type: unsigned int
      - name: shm_count
        type: unsigned int
      - name: shm_list
        type: struct list_head
      - name: guest_vers_lock
        type: spinlock_t
      - name: guest_vers
        type: uint32_t
      - name: guest_vers_tmp
        type: uint32_t
      - name: rx_lock
        type: spinlock_t
      - name: rx_is_free
        type: bool
      - name: '*rx'
        type: void
      - name: '*rx_pg'
        type: struct page_info
      - name: tx_lock
        type: spinlock_t
      - name: '*tx'
        type: void
      - name: '*tx_pg'
        type: struct page_info
      - name: '*teardown_d'
        type: struct domain
      - name: teardown_list
        type: struct list_head
      - name: teardown_expire
        type: s_time_t
      - name: '*vm_destroy_bitmap'
        type: unsigned long
      item_type: struct
      name: ffa_ctx
      pos:
        line_end: 435
        line_start: 347
        source_file: /src/xen/xen/arch/arm/tee/ffa_private.h
    typedefs: []
    union: []
- function_names:
  - OPTEE_CLIENT_ID
  - optee_probe
  - optee_domain_init
  - optee_domain_teardown
  - get_domain_ram_page
  - allocate_std_call
  - free_std_call
  - map_xen_arg
  - unmap_xen_arg
  - get_std_call
  - put_std_call
  - allocate_and_pin_shm_rpc
  - free_shm_rpc
  - find_shm_rpc
  - allocate_optee_shm_buf
  - free_pg_list
  - free_optee_shm_buf
  - free_optee_shm_buf_pg_list
  - optee_relinquish_resources
  - get_pages_list_size
  - translate_noncontig
  - translate_params
  - copy_std_request
  - copy_std_request_back
  - free_shm_buffers
  - handle_rpc_return
  - do_call_with_arg
  - handle_std_call
  - issue_rpc_cmd_free
  - handle_xen_rpc_return
  - handle_rpc_cmd_alloc
  - handle_rpc_cmd
  - handle_rpc_func_alloc
  - handle_rpc
  - handle_exchange_capabilities
  - optee_handle_call
  source_file: /src/xen/xen/arch/arm/tee/optee.c
  types:
    enum:
    - enumerators:
      - name: OPTEE_CALL_NORMAL
      - name: OPTEE_CALL_XEN_RPC
      item_type: enum
      name: optee_call_state
      pos:
        line_end: 104
        line_start: 101
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    preproc_defs:
    - item_type: preproc_def
      name: OPTEE_MEDIATOR_SMC_COUNT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: '11'
    - item_type: preproc_def
      name: TEEC_ORIGIN_COMMS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: TEEC_ERROR_GENERIC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: 0xFFFF0000U
    - item_type: preproc_def
      name: TEEC_ERROR_BAD_PARAMETERS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: 0xFFFF0006U
    - item_type: preproc_def
      name: TEEC_ERROR_OUT_OF_MEMORY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: 0xFFFF000CU
    - item_type: preproc_def
      name: MAX_TOTAL_SMH_BUF_PG
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_SHM_BUFFER_PG
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: '129'
    - item_type: preproc_def
      name: MAX_SHM_BUFFER_COUNT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: '16'
    - item_type: preproc_def
      name: OPTEE_KNOWN_NSEC_CAPS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: OPTEE_SMC_NSEC_CAP_UNIPROCESSOR
    - item_type: preproc_def
      name: OPTEE_KNOWN_SEC_CAPS
      pos:
        line_end: 100
        line_start: 96
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: "(OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM | \\\n                              OPTEE_SMC_SEC_CAP_UNREGISTERED_SHM
        | \\\n                              OPTEE_SMC_SEC_CAP_DYNAMIC_SHM | \\\n                              OPTEE_SMC_SEC_CAP_MEMREF_NULL)"
    - item_type: preproc_def
      name: PAGELIST_ENTRIES_PER_PAGE
      pos:
        line_end: 698
        line_start: 696
        source_file: /src/xen/xen/arch/arm/tee/optee.c
      type_or_value: ((OPTEE_MSG_NONCONTIG_PAGE_SIZE / sizeof(u64)) - 1)
    structs:
    - fields:
      - name: list
        type: struct list_head
      - name: '*xen_arg_pg'
        type: struct page_info
      - name: '*xen_arg'
        type: struct optee_msg_arg
      - name: guest_arg_ipa
        type: paddr_t
      - name: optee_thread_id
        type: int
      - name: rpc_op
        type: int
      - name: rpc_buffer_type
        type: unsigned int
      - name: state
        type: enum optee_call_state
      - name: rpc_data_cookie
        type: uint64_t
      - name: in_flight
        type: bool
      - name: rpc_params[2]
        type: register_t
      item_type: struct
      name: optee_std_call
      pos:
        line_end: 128
        line_start: 112
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    - fields:
      - name: list
        type: struct list_head
      - name: '*guest_page'
        type: struct page_info
      - name: '*xen_arg_pg'
        type: struct page_info
      - name: '*xen_arg'
        type: struct optee_msg_arg
      - name: gfn
        type: gfn_t
      - name: cookie
        type: uint64_t
      item_type: struct
      name: shm_rpc
      pos:
        line_end: 138
        line_start: 131
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    - fields:
      - name: list
        type: struct list_head
      - name: cookie
        type: uint64_t
      - name: page_cnt
        type: unsigned int
      - name: '*pg_list'
        type: struct page_info
      - name: pg_list_order
        type: unsigned int
      - name: '*pages[]'
        type: struct page_info
      item_type: struct
      name: optee_shm_buf
      pos:
        line_end: 156
        line_start: 141
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    - fields:
      - name: call_list
        type: struct list_head
      - name: shm_rpc_list
        type: struct list_head
      - name: optee_shm_buf_list
        type: struct list_head
      - name: call_count
        type: atomic_t
      - name: optee_shm_buf_pages
        type: atomic_t
      - name: optee_shm_buf_count
        type: atomic_t
      - name: lock
        type: spinlock_t
      item_type: struct
      name: optee_domain
      pos:
        line_end: 167
        line_start: 159
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    - fields:
      - name: pages_list[PAGELIST_ENTRIES_PER_PAGE]
        type: uint64_t
      - name: next_page_data
        type: uint64_t
      item_type: struct
      name: '*guest_data'
      pos:
        line_end: 728
        line_start: 725
        source_file: /src/xen/xen/arch/arm/tee/optee.c
    typedefs: []
    union: []
- function_names:
  - tee_handle_call
  - tee_domain_init
  - tee_domain_teardown
  - tee_relinquish_resources
  - tee_get_type
  - tee_init
  - init_tee_secondary
  - tee_free_domain_ctx
  source_file: /src/xen/xen/arch/arm/tee/tee.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffa_partition_info_get
  - ffa_copy_info
  - ffa_get_sp_count
  - ffa_get_sp_partinfo
  - ffa_get_vm_partinfo
  - ffa_handle_partition_info_get
  - ffa_direct_req_send_vm
  - uninit_subscribers
  - init_subscribers
  - ffa_partinfo_init
  - is_in_subscr_list
  - vm_destroy_bitmap_init
  - ffa_partinfo_domain_init
  - ffa_partinfo_domain_destroy
  source_file: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: id
        type: uint16_t
      - name: execution_context
        type: uint16_t
      - name: partition_properties
        type: uint32_t
      item_type: struct
      name: ffa_partition_info_1_0
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    - fields:
      - name: id
        type: uint16_t
      - name: execution_context
        type: uint16_t
      - name: partition_properties
        type: uint32_t
      - name: uuid[16]
        type: uint8_t
      item_type: struct
      name: ffa_partition_info_1_1
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/xen/xen/arch/arm/tee/ffa_partinfo.c
    typedefs: []
    union: []
- function_names:
  - ffa_finish_direct_req_run
  - ffa_handle_msg_send_direct_req
  - ffa_msg_send2_vm
  - ffa_handle_msg_send2
  - ffa_handle_run
  source_file: /src/xen/xen/arch/arm/tee/ffa_msg.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flags
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: msg_offset
        type: uint32_t
      - name: send_recv_id
        type: uint32_t
      - name: msg_size
        type: uint32_t
      item_type: struct
      name: ffa_part_msg_rxtx_1_1
      pos:
        line_end: 22
        line_start: 16
        source_file: /src/xen/xen/arch/arm/tee/ffa_msg.c
    - fields:
      - name: flags
        type: uint32_t
      - name: reserved
        type: uint32_t
      - name: msg_offset
        type: uint32_t
      - name: send_recv_id
        type: uint32_t
      - name: msg_size
        type: uint32_t
      - name: reserved2
        type: uint32_t
      - name: uuid[2]
        type: uint64_t
      item_type: struct
      name: ffa_part_msg_rxtx_1_2
      pos:
        line_end: 32
        line_start: 24
        source_file: /src/xen/xen/arch/arm/tee/ffa_msg.c
    typedefs: []
    union: []
- function_names:
  - ffa_handle_notification_bind
  - ffa_handle_notification_unbind
  - ffa_handle_notification_info_get
  - ffa_handle_notification_get
  - ffa_handle_notification_set
  - ffa_raise_rx_buffer_full
  - get_id_from_resp
  - notif_vm_pend_intr
  - for_each_vcpu
  - notif_sri_action
  - notif_irq_handler
  - ffa_notification_bitmap_create
  - ffa_notification_bitmap_destroy
  - ffa_notif_init_interrupt
  - ffa_notif_init
  - ffa_notif_domain_init
  - ffa_notif_domain_destroy
  source_file: /src/xen/xen/arch/arm/tee/ffa_notif.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setup_chosen_node
  - fdt_set_reg
  - lookup_fdt_config_table
  - meminfo_add_bank
  - efi_process_memory_map_bootinfo
  - fdt_add_uefi_nodes
  - fdt_increase_size
  - efi_arch_relocate_image
  - efi_arch_process_memory_map
  - efi_arch_pre_exit_boot
  - efi_arch_post_exit_boot
  - efi_arch_cfg_file_early
  - efi_arch_cfg_file_late
  - efi_arch_allocate_mmap_buffer
  - efi_arch_edd
  - efi_arch_edid
  - efi_arch_memory_setup
  - efi_arch_handle_cmdline
  - efi_arch_handle_module
  - get_module_file_index
  - allocate_module_file
  - handle_module_node
  - handle_dom0less_domain_node
  - efi_check_dt_boot
  - efi_arch_cpu
  - efi_arch_blexit
  - efi_arch_halt
  - efi_arch_load_addr_check
  - efi_arch_use_config_file
  - efi_arch_console_init
  - efi_arch_video_init
  - efi_arch_flush_dcache_area
  source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_UEFI_MODULES
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (MAX_MODULES - 2)
    - item_type: preproc_def
      name: ERROR_BINARY_FILE_NOT_FOUND
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ERROR_ALLOC_MODULE_NO_SPACE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ERROR_ALLOC_MODULE_NAME
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: ERROR_MISSING_DT_PROPERTY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: ERROR_RENAME_MODULE_NAME
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-4)
    - item_type: preproc_def
      name: ERROR_SET_REG_PROPERTY
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-5)
    - item_type: preproc_def
      name: ERROR_CHECK_MODULE_COMPAT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-6)
    - item_type: preproc_def
      name: ERROR_DOM0_ALREADY_FOUND
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-7)
    - item_type: preproc_def
      name: ERROR_DOM0_RAMDISK_FOUND
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-8)
    - item_type: preproc_def
      name: ERROR_XSM_ALREADY_FOUND
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-9)
    - item_type: preproc_def
      name: ERROR_DT_MODULE_DOMU
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ERROR_DT_CHOSEN_NODE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: ERROR_DT_MODULE_DOM0
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: (-3)
    - item_type: preproc_def
      name: DEVICE_TREE_GUID
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
      type_or_value: '{0xb1b621d5U, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c,
        0x69, 0xaa, 0xe0}}'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: name_len
        type: unsigned int
      - name: addr
        type: EFI_PHYSICAL_ADDRESS
      - name: size
        type: UINTN
      item_type: struct
      name: module_info
      pos:
        line_end: 20
        line_start: 15
        source_file: /src/xen/xen/arch/arm/efi/efi-boot.h
    typedefs: []
    union: []
- function_names:
  - estimate_efi_size
  - acpi_create_efi_system_table
  - fill_efi_memory_descriptor
  - acpi_create_efi_mmap_table
  - acpi_make_efi_nodes
  source_file: /src/xen/xen/arch/arm/efi/efi-dom0.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XZ_EXTERN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/efi/efi-dom0.c
      type_or_value: static
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/efi/runtime.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_mmio_read_v2_misc
  - vgic_mmio_write_v2_misc
  - vgic_mmio_write_sgir
  - for_each_set_bit
  - vgic_mmio_read_target
  - vgic_mmio_write_target
  - vgic_mmio_read_sgipend
  - vgic_mmio_write_sgipendc
  - vgic_mmio_write_sgipends
  - vgic_v2_init_dist_iodev
  source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio-v2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_vcpu_early_init
  - domain_vgic_register
  - domain_vgic_init
  - vcpu_vgic_init
  - domain_vgic_free
  - vcpu_vgic_free
  source_file: /src/xen/xen/arch/arm/vgic/vgic-init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VGIC_ADDR_IRQ_MASK
  - VGIC_ADDR_TO_INTID
  - REGISTER_DESC_WITH_BITS_PER_IRQ
  - REGISTER_DESC_WITH_LENGTH
  source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VGIC_ACCESS_8bit
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VGIC_ACCESS_32bit
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
      type_or_value: '2'
    - item_type: preproc_def
      name: VGIC_ACCESS_64bit
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
      type_or_value: '4'
    structs:
    - fields:
      - name: reg_offset
        type: unsigned int
      - name: len
        type: unsigned int
      - name: bits_per_irq
        type: unsigned int
      - name: access_flags
        type: unsigned int
      - name: "(*read)(struct vcpu *vcpu, paddr_t addr,\n                          unsigned
          int len)"
        type: unsigned long
      - name: "(*write)(struct vcpu *vcpu, paddr_t addr,\n                  unsigned
          int len, unsigned long val)"
        type: void
      item_type: struct
      name: vgic_register_region
      pos:
        line_end: 27
        line_start: 18
        source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.h
    typedefs: []
    union: []
- function_names:
  - IS_VGIC_ADDR_UNDEF
  - vgic_irq_is_sgi
  - irq_is_pending
  - vgic_irq_is_mapped_level
  - vgic_get_irq_kref
  source_file: /src/xen/xen/arch/arm/vgic/vgic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRODUCT_ID_KVM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/vgic/vgic.h
      type_or_value: '0x4b        '
    - item_type: preproc_def
      name: VARIANT_ID_XEN
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/vgic/vgic.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: IMPLEMENTER_ARM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/vgic/vgic.h
      type_or_value: '0x43b'
    - item_type: preproc_def
      name: VGIC_ADDR_UNDEF
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/vgic/vgic.h
      type_or_value: INVALID_PADDR
    - item_type: preproc_def
      name: VGIC_PRI_BITS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/vgic/vgic.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_mmio_read_raz
  - vgic_mmio_read_rao
  - vgic_mmio_write_wi
  - vgic_mmio_read_enable
  - vgic_mmio_write_senable
  - for_each_set_bit
  - vgic_mmio_write_cenable
  - for_each_set_bit
  - vgic_mmio_read_pending
  - vgic_mmio_write_spending
  - for_each_set_bit
  - vgic_mmio_write_cpending
  - for_each_set_bit
  - vgic_mmio_read_active
  - vgic_mmio_write_cactive
  - for_each_set_bit
  - vgic_mmio_write_sactive
  - for_each_set_bit
  - vgic_mmio_read_priority
  - vgic_mmio_write_priority
  - vgic_mmio_read_config
  - vgic_mmio_write_config
  - match_region
  - vgic_find_mmio_region
  - check_region
  - vgic_get_mmio_region
  - dispatch_mmio_read
  - dispatch_mmio_write
  - vgic_register_dist_iodev
  source_file: /src/xen/xen/arch/arm/vgic/vgic-mmio.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_get_lpi
  - vgic_get_irq
  - vgic_put_irq
  - vgic_target_oracle
  - vgic_irq_cmp
  - vgic_sort_ap_list
  - vgic_validate_injection
  - vgic_queue_irq_unlock
  - vgic_inject_irq
  - vgic_prune_ap_list
  - vgic_fold_lr_state
  - vgic_populate_lr
  - vgic_set_underflow
  - compute_ap_list_depth
  - vgic_flush_lr_state
  - vgic_sync_from_lrs
  - vgic_sync_to_lrs
  - vgic_vcpu_pending_irq
  - vgic_kick_vcpus
  - for_each_vcpu
  - vgic_evtchn_irq_pending
  - vgic_reserve_virq
  - vgic_is_valid_line
  - vgic_allocate_virq
  - vgic_free_virq
  - gic_dump_vgic_info
  - vgic_clear_pending_irqs
  - arch_move_irqs
  - vgic_get_hw_irq_desc
  - vgic_emulate
  - vgic_connect_hw_irq
  - translate_irq_type
  - vgic_sync_hardware_irq
  - vgic_max_vcpus
  - vgic_v3_setup_hw
  source_file: /src/xen/xen/arch/arm/vgic/vgic.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vgic_v2_setup_hw
  - vgic_v2_fold_lr_state
  - vgic_v2_populate_lr
  - vgic_v2_enable
  - vgic_v2_map_resources
  source_file: /src/xen/xen/arch/arm/vgic/vgic-v2.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: enabled
        type: bool
      - name: dbase
        type: paddr_t
      - name: cbase
        type: paddr_t
      - name: csize
        type: paddr_t
      - name: vbase
        type: paddr_t
      - name: aliased_offset
        type: uint32_t
      item_type: struct
      name: gic_v2_hw_data
      pos:
        line_end: 34
        line_start: 25
        source_file: /src/xen/xen/arch/arm/vgic/vgic-v2.c
    typedefs: []
    union: []
- function_names:
  - virt_to_mfn
  - acpi_iomem_deny_access
  - acpi_route_spis
  - acpi_make_hypervisor_node
  - create_acpi_dtb
  - acpi_map_other_tables
  - acpi_create_rsdp
  - acpi_xsdt_modify_entry
  - acpi_create_xsdt
  - acpi_create_stao
  - acpi_create_madt
  - acpi_create_fadt
  - estimate_acpi_efi_size
  - prepare_acpi
  source_file: /src/xen/xen/arch/arm/acpi/domain_build.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACPI_DOM0_FDT_MIN_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/acpi/domain_build.c
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __acpi_map_table
  - __acpi_unmap_table
  - acpi_psci_present
  - acpi_psci_hvc_present
  - acpi_get_table_offset
  source_file: /src/xen/xen/arch/arm/acpi/lib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - acpi_map_gic_cpu_interface
  - acpi_parse_gic_cpu_interface
  - acpi_smp_init_cpus
  - acpi_parse_fadt
  - parse_acpi_param
  - dt_scan_depth1_nodes
  - acpi_boot_table_init
  source_file: /src/xen/xen/arch/arm/acpi/boot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASM_REG
  - ASM_REG
  - RODATA_SECT
  source_file: /src/xen/xen/arch/arm/include/asm/asm_defns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __OP32
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/asm_defns.h
      type_or_value: '"w"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GLOBAL
  - watchdog_disable
  - watchdog_enable
  source_file: /src/xen/xen/arch/arm/include/asm/config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: ELFSIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '32'
    - item_type: preproc_def
      name: BITS_PER_XEN_ULONG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CONFIG_PAGING_LEVELS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_ARM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_ARM_L1_CACHE_SHIFT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: CONFIG_SMP
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_IRQ_HAS_MULTIPLE_ACTION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_PAGEALLOC_MAX_ORDER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '18'
    - item_type: preproc_def
      name: CONFIG_DOMU_MAX_ORDER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '9'
    - item_type: preproc_def
      name: CONFIG_HWDOM_MAX_ORDER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPT_CONSOLE_STR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '"dtuart"'
    - item_type: preproc_def
      name: MAX_VIRT_CPUS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: 128u
    - item_type: preproc_def
      name: MAX_VIRT_CPUS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: 8u
    - item_type: preproc_def
      name: INVALID_VCPU_ID
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: MAX_VIRT_CPUS
    - item_type: preproc_def
      name: __LINUX_ARM_ARCH__
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NR_hypercalls
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '64'
    - item_type: preproc_def
      name: STACK_ORDER
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/config.h
      type_or_value: (PAGE_SIZE << STACK_ORDER)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/perfc_defn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - build_atomic_read
  - build_atomic_write
  - build_add_sized
  - BYTE
  - WORD
  - DWORD
  - BYTE
  - WORD
  - DWORD
  - atomic_read
  - _atomic_read
  - atomic_set
  - _atomic_set
  - atomic_sub_and_test
  - atomic_inc
  - atomic_inc_return
  - atomic_inc_and_test
  - atomic_dec
  - atomic_dec_return
  - atomic_dec_and_test
  - atomic_add_negative
  - atomic_add_unless
  - atomic_xchg
  source_file: /src/xen/xen/arch/arm/include/asm/atomic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAIR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/atomic.h
      type_or_value: '"d"'
    - item_type: preproc_def
      name: PAIR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/atomic.h
      type_or_value: '""'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: (*(p))
        type: typeof
      - name: c[0]
        type: char
      item_type: union
      name: x_
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/atomic.h
- function_names:
  - psr_mode
  - regs_mode_is_32bit
  - usr_mode
  - fiq_mode
  - irq_mode
  - svc_mode
  - mon_mode
  - abt_mode
  - und_mode
  - sys_mode
  - hyp_mode
  - regs_mode_is_user
  - hyp_mode
  - regs_mode_is_user
  - guest_mode
  - regpair_to_uint64
  - uint64_to_regpair
  source_file: /src/xen/xen/arch/arm/include/asm/regs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PSR_MODE_MASK
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/arm/include/asm/regs.h
      type_or_value: '0x1f'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/vfp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pci_to_dev
  - is_pci_passthrough_enabled
  - pci_sanitize_bar_memory
  - arch_pci_init_pdev
  - pci_get_host_bridge_segment
  - pci_get_new_domain_nr
  source_file: /src/xen/xen/arch/arm/include/asm/pci.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: dev
        type: struct device
      item_type: struct
      name: arch_pci_dev
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/pci.h
    - fields:
      - name: phys_addr
        type: paddr_t
      - name: size
        type: paddr_t
      - name: busn_start
        type: uint8_t
      - name: busn_end
        type: uint8_t
      - name: '*win'
        type: void
      item_type: struct
      name: pci_config_window
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/pci.h
    - fields:
      - name: '*dt_node'
        type: struct dt_device_node
      - name: node
        type: struct list_head
      - name: segment
        type: uint16_t
      - name: '* cfg'
        type: struct pci_config_window
      - name: '*ops'
        type: struct pci_ops
      - name: '*child_cfg'
        type: struct pci_config_window
      - name: '*child_ops'
        type: struct pci_ops
      - name: '*priv'
        type: void
      item_type: struct
      name: pci_host_bridge
      pos:
        line_end: 67
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/pci.h
    - fields:
      - name: "*(*map_bus)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,\n                             uint32_t
          offset)"
        type: void
      - name: "(*read)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,\n                uint32_t
          reg, uint32_t len, uint32_t *value)"
        type: int
      - name: "(*write)(struct pci_host_bridge *bridge, pci_sbdf_t sbdf,\n                 uint32_t
          reg, uint32_t len, uint32_t value)"
        type: int
      - name: "(*need_p2m_hwdom_mapping)(struct domain *d,\n                                   struct
          pci_host_bridge *bridge,\n                                   uint64_t addr)"
        type: bool
      - name: "(*init_bus_range)(struct dt_device_node *dev,\n                           struct
          pci_host_bridge *bridge,\n                           struct pci_config_window
          *cfg)"
        type: void
      item_type: struct
      name: pci_ops
      pos:
        line_end: 82
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/pci.h
    - fields:
      - name: bus_shift
        type: unsigned int
      - name: pci_ops
        type: struct pci_ops
      - name: (*cfg_reg_index)(struct dt_device_node *dev)
        type: int
      - name: (*init)(struct pci_config_window *cfg)
        type: int
      item_type: struct
      name: pci_ecam_ops
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/pci.h
    typedefs: []
    union: []
- function_names:
  - guest_bitop
  - guest_testop
  - guest_test_bit
  - guest_clear_mask16
  - __guest_cmpxchg
  - guest_cmpxchg
  - guest_cmpxchg64
  source_file: /src/xen/xen/arch/arm/include/asm/guest_atomics.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_lock_acquire_barrier
  - arch_lock_release_barrier
  - arch_lock_relax
  - arch_lock_signal
  - arch_lock_signal_wmb
  source_file: /src/xen/xen/arch/arm/include/asm/spinlock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BAD_MADT_GICC_ENTRY
  - disable_acpi
  - enable_acpi
  source_file: /src/xen/xen/arch/arm/include/asm/acpi.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_INT64
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/acpi.h
      type_or_value: long long
    - item_type: preproc_def
      name: COMPILER_DEPENDENT_UINT64
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/acpi.h
      type_or_value: unsigned long long
    - item_type: preproc_def
      name: ACPI_MAP_MEM_ATTR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/acpi.h
      type_or_value: PAGE_HYPERVISOR
    - item_type: preproc_def
      name: ACPI_MADT_GICC_LENGTH
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/acpi.h
      type_or_value: '(acpi_gbl_FADT.header.revision < 6 ? 76 : 80)'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sgi_target_init
  - DOMAIN_NR_RANKS
  - DOMAIN_NR_EXT_RANKS
  - EXT_RANK_NUM2IDX
  - EXT_RANK_IDX2NUM
  - vgic_lock
  - vgic_unlock
  - vgic_lock_rank
  - vgic_unlock_rank
  - REG_RANK_NR
  - vgic_cpu_base
  - vgic_dist_base
  - REG_RANK_INDEX
  - vgic_num_irqs
  - vgic_def_nr_spis
  - vgic_is_spi
  - vgic_allocate_ppi
  - vgic_allocate_spi
  source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_QUEUED
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '0'
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_ACTIVE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_VISIBLE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_ENABLED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '3'
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_MIGRATING
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '4'
    - item_type: preproc_def
      name: GIC_IRQ_GUEST_PRISTINE_LPI
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '5'
    - item_type: preproc_def
      name: GIC_INVALID_LR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: (uint8_t)~0
    - item_type: preproc_def
      name: NR_INTERRUPT_PER_RANK
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '32'
    - item_type: preproc_def
      name: INTERRUPT_RANK_MASK
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: (NR_INTERRUPT_PER_RANK - 1)
    - item_type: preproc_def
      name: VGIC_V3_RDIST_LAST
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: '(1 << 0)        '
    - item_type: preproc_def
      name: VGIC_V3_LPIS_ENABLED
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: EXT_RANK_MIN
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: (ESPI_BASE_INTID / 32)
    - item_type: preproc_def
      name: EXT_RANK_MAX
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: ((ESPI_MAX_INTID + 31) / 32)
    - item_type: preproc_def
      name: VGIC_MAX_IRQS
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: 992U
    - item_type: preproc_def
      name: VGIC_DEF_NR_SPIS
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
      type_or_value: (min(gic_number_lines(), VGIC_MAX_IRQS) - 32)
    structs:
    - fields:
      - name: status
        type: unsigned long
      - name: '*desc'
        type: struct irq_desc
      - name: irq
        type: unsigned int
      - name: lr
        type: uint8_t
      - name: priority
        type: uint8_t
      - name: lpi_priority
        type: uint8_t
      - name: lpi_vcpu_id
        type: uint8_t
      - name: inflight
        type: struct list_head
      - name: lr_queue
        type: struct list_head
      item_type: struct
      name: pending_irq
      pos:
        line_end: 96
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: lock
        type: spinlock_t
      - name: index
        type: uint8_t
      - name: ienable
        type: uint32_t
      - name: icfg[2]
        type: uint32_t
      - name: vcpu[32]
        type: uint8_t
      item_type: struct
      name: vgic_irq_rank
      pos:
        line_end: 127
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: version
        type: enum gic_version
      - name: '*handler'
        type: struct vgic_ops
      - name: lock
        type: spinlock_t
      - name: ctlr
        type: uint32_t
      - name: nr_spis
        type: int
      - name: '*allocated_irqs'
        type: unsigned long
      - name: '*shared_irqs'
        type: struct vgic_irq_rank
      - name: '*pending_irqs'
        type: struct pending_irq
      - name: dbase
        type: paddr_t
      - name: cbase
        type: paddr_t
      - name: csize
        type: paddr_t
      - name: vbase
        type: paddr_t
      item_type: struct
      name: vgic_dist
      pos:
        line_end: 196
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: base
        type: paddr_t
      - name: size
        type: paddr_t
      - name: first_cpu
        type: unsigned int
      item_type: struct
      name: vgic_rdist_region
      pos:
        line_end: 179
        line_start: 175
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: pending_irqs[32]
        type: struct pending_irq
      - name: '*private_irqs'
        type: struct vgic_irq_rank
      - name: inflight_irqs
        type: struct list_head
      - name: lr_pending
        type: struct list_head
      - name: lock
        type: spinlock_t
      - name: rdist_base
        type: paddr_t
      - name: rdist_pendbase
        type: uint64_t
      - name: flags
        type: uint8_t
      item_type: struct
      name: vgic_cpu
      pos:
        line_end: 229
        line_start: 198
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: aff1
        type: uint8_t
      - name: list
        type: uint16_t
      item_type: struct
      name: sgi_target
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    - fields:
      - name: (*vcpu_init)(struct vcpu *v)
        type: int
      - name: (*domain_init)(struct domain *d)
        type: int
      - name: (*domain_free)(struct domain *d)
        type: void
      - name: (*emulate_reg)(struct cpu_user_regs *regs, union hsr hsr)
        type: bool
      - name: '*(*lpi_to_pending)(struct domain *d, unsigned int vlpi)'
        type: struct pending_irq
      - name: (*lpi_get_priority)(struct domain *d, uint32_t vlpi)
        type: int
      item_type: struct
      name: vgic_ops
      pos:
        line_end: 254
        line_start: 242
        source_file: /src/xen/xen/arch/arm/include/asm/vgic.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/vpci.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: vpci_arch_msi
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/vpci.h
    - fields: []
      item_type: struct
      name: vpci_arch_msix_entry
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/vpci.h
    typedefs: []
    union: []
- function_names:
  - irq_to_desc
  - is_lpi
  - is_espi
  - espi_intid_to_idx
  - espi_idx_to_intid
  - domain_pirq_to_irq
  - arch_evtchn_bind_pirq
  source_file: /src/xen/xen/arch/arm/include/asm/irq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NR_VECTORS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '256 '
    - item_type: preproc_def
      name: NR_LOCAL_IRQS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NR_IRQS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: SPI_MAX_INTID
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '1019'
    - item_type: preproc_def
      name: LPI_OFFSET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: ESPI_BASE_INTID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: ESPI_MAX_INTID
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '5119'
    - item_type: preproc_def
      name: NR_ESPI_IRQS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: INVALID_LPI
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '0'
    - item_type: preproc_def
      name: INVALID_IRQ
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: '1023'
    - item_type: preproc_def
      name: nr_static_irqs
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: (ESPI_MAX_INTID + 1)
    - item_type: preproc_def
      name: nr_static_irqs
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: NR_IRQS
    - item_type: preproc_def
      name: irq_end_none
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
      type_or_value: irq_end_none
    structs:
    - fields: []
      item_type: struct
      name: vmask_t
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
    - fields: []
      item_type: struct
      name: arch_pirq
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
    - fields:
      - name: type
        type: unsigned int
      item_type: struct
      name: arch_irq_desc
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/irq.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/efibind.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - VREG32
  - VREG64
  - VRANGE32
  - VRANGE64
  - vgic_reg64_check_access
  source_file: /src/xen/xen/arch/arm/include/asm/vgic-emul.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - evaluate_nospec
  - block_speculation
  source_file: /src/xen/xen/arch/arm/include/asm/nospec.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/livepatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCH_LIVEPATCH_RANGE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/livepatch.h
      type_or_value: SZ_32M
    - item_type: preproc_def
      name: ARCH_LIVEPATCH_RANGE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/livepatch.h
      type_or_value: SZ_128M
    structs: []
    typedefs: []
    union: []
- function_names:
  - GICD_TYPER_ESPI_RANGE
  - GICD_TYPER_ESPIS_NUM
  - GICD_TYPE_ID_BITS
  - ICH_SGI_AFFINITY_LEVEL
  source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GICD_STATUSR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x010)
    - item_type: preproc_def
      name: GICD_SETSPI_NSR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x040)
    - item_type: preproc_def
      name: GICD_CLRSPI_NSR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x048)
    - item_type: preproc_def
      name: GICD_SETSPI_SR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x050)
    - item_type: preproc_def
      name: GICD_CLRSPI_SR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x058)
    - item_type: preproc_def
      name: GICD_IGRPMODR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xD00)
    - item_type: preproc_def
      name: GICD_IGRPMODRN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xD7C)
    - item_type: preproc_def
      name: GICD_IROUTER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x6000)
    - item_type: preproc_def
      name: GICD_IROUTER32
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x6100)
    - item_type: preproc_def
      name: GICD_IROUTER1019
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x7FD8)
    - item_type: preproc_def
      name: GICD_PIDR2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xFFE8)
    - item_type: preproc_def
      name: GICD_IGROUPRnE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1000)
    - item_type: preproc_def
      name: GICD_IGROUPRnEN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x107C)
    - item_type: preproc_def
      name: GICD_ISENABLERnE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1200)
    - item_type: preproc_def
      name: GICD_ISENABLERnEN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x127C)
    - item_type: preproc_def
      name: GICD_ICENABLERnE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1400)
    - item_type: preproc_def
      name: GICD_ICENABLERnEN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x147C)
    - item_type: preproc_def
      name: GICD_ISPENDRnE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1600)
    - item_type: preproc_def
      name: GICD_ISPENDRnEN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x167C)
    - item_type: preproc_def
      name: GICD_ICPENDRnE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1800)
    - item_type: preproc_def
      name: GICD_ICPENDRnEN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x187C)
    - item_type: preproc_def
      name: GICD_ISACTIVERnE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1A00)
    - item_type: preproc_def
      name: GICD_ISACTIVERnEN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1A7C)
    - item_type: preproc_def
      name: GICD_ICACTIVERnE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1C00)
    - item_type: preproc_def
      name: GICD_ICACTIVERnEN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1C7C)
    - item_type: preproc_def
      name: GICD_IPRIORITYRnE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x2000)
    - item_type: preproc_def
      name: GICD_IPRIORITYRnEN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x23FC)
    - item_type: preproc_def
      name: GICD_ICFGRnE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x3000)
    - item_type: preproc_def
      name: GICD_ICFGRnEN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x30FC)
    - item_type: preproc_def
      name: GICD_IGRPMODRnE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x3400)
    - item_type: preproc_def
      name: GICD_IGRPMODRnEN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x347C)
    - item_type: preproc_def
      name: GICD_NSACRnE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x3600)
    - item_type: preproc_def
      name: GICD_NSACRnEN
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x36FC)
    - item_type: preproc_def
      name: GICD_IROUTERnE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x8000)
    - item_type: preproc_def
      name: GICD_IROUTERnEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x9FFC)
    - item_type: preproc_def
      name: GICD_TYPER_ESPI_SHIFT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GICD_TYPER_ESPI_RANGE_SHIFT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '27'
    - item_type: preproc_def
      name: GICD_TYPER_ESPI_RANGE_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x1F)
    - item_type: preproc_def
      name: GICD_TYPER_ESPI
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << GICD_TYPER_ESPI_SHIFT)
    - item_type: preproc_def
      name: GIC_PIDR2_ARCH_MASK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xf0)
    - item_type: preproc_def
      name: GIC_PIDR2_ARCH_GICv3
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x30)
    - item_type: preproc_def
      name: GIC_PIDR2_ARCH_GICv4
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x40)
    - item_type: preproc_def
      name: GICC_SRE_EL2_SRE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 0)
    - item_type: preproc_def
      name: GICC_SRE_EL2_DFB
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 1)
    - item_type: preproc_def
      name: GICC_SRE_EL2_DIB
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 2)
    - item_type: preproc_def
      name: GICC_SRE_EL2_ENEL1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 3)
    - item_type: preproc_def
      name: GICC_IAR_INTID_MASK
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xFFFFFF)
    - item_type: preproc_def
      name: GICD_TYPE_ID_BITS_SHIFT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '19'
    - item_type: preproc_def
      name: GICD_TYPE_LPIS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 17)
    - item_type: preproc_def
      name: GICD_CTLR_RWP
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 31)
    - item_type: preproc_def
      name: GICD_CTLR_ARE_NS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: GICD_CTLR_ENABLE_G1A
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: GICD_CTLR_ENABLE_G1
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: GICD_IROUTER_SPI_MODE_ANY
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1UL << 31)
    - item_type: preproc_def
      name: GICC_CTLR_EL1_EOImode_drop
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: GICR_WAKER_ProcessorSleep
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: GICR_WAKER_ChildrenAsleep
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: GICR_SYNCR_NOT_BUSY
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GICV3_GICD_IIDR_VAL
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x34c'
    - item_type: preproc_def
      name: GICV3_GICR_IIDR_VAL
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: GICV3_GICD_IIDR_VAL
    - item_type: preproc_def
      name: GICV3_GICR_SIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (2 * SZ_64K)
    - item_type: preproc_def
      name: GICR_CTLR
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0000)
    - item_type: preproc_def
      name: GICR_IIDR
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0004)
    - item_type: preproc_def
      name: GICR_TYPER
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0008)
    - item_type: preproc_def
      name: GICR_STATUSR
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0010)
    - item_type: preproc_def
      name: GICR_WAKER
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0014)
    - item_type: preproc_def
      name: GICR_SETLPIR
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0040)
    - item_type: preproc_def
      name: GICR_CLRLPIR
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0048)
    - item_type: preproc_def
      name: GICR_PROPBASER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0070)
    - item_type: preproc_def
      name: GICR_PENDBASER
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0078)
    - item_type: preproc_def
      name: GICR_INVLPIR
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x00A0)
    - item_type: preproc_def
      name: GICR_INVALLR
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x00B0)
    - item_type: preproc_def
      name: GICR_SYNCR
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x00C0)
    - item_type: preproc_def
      name: GICR_PIDR2
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: GICD_PIDR2
    - item_type: preproc_def
      name: GICR_IGROUPR0
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0080)
    - item_type: preproc_def
      name: GICR_ISENABLER0
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0100)
    - item_type: preproc_def
      name: GICR_ICENABLER0
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0180)
    - item_type: preproc_def
      name: GICR_ISPENDR0
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0200)
    - item_type: preproc_def
      name: GICR_ICPENDR0
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0280)
    - item_type: preproc_def
      name: GICR_ISACTIVER0
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0300)
    - item_type: preproc_def
      name: GICR_ICACTIVER0
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0380)
    - item_type: preproc_def
      name: GICR_IPRIORITYR0
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0400)
    - item_type: preproc_def
      name: GICR_IPRIORITYR7
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x041C)
    - item_type: preproc_def
      name: GICR_ICFGR0
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0C00)
    - item_type: preproc_def
      name: GICR_ICFGR1
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0C04)
    - item_type: preproc_def
      name: GICR_IGRPMODR0
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0D00)
    - item_type: preproc_def
      name: GICR_NSACR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0x0E00)
    - item_type: preproc_def
      name: GICR_CTLR_ENABLE_LPIS
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: GICR_TYPER_PLPIS
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: GICR_TYPER_VLPIS
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: GICR_TYPER_LAST
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1U << 4)
    - item_type: preproc_def
      name: GICR_TYPER_PROC_NUM_SHIFT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GICR_TYPER_PROC_NUM_MASK
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (0xffff << GICR_TYPER_PROC_NUM_SHIFT)
    - item_type: preproc_def
      name: GIC_BASER_CACHE_nCnB
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 0ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_SameAsInner
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 0ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_nC
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 1ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_RaWt
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 2ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_RaWb
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 3ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_WaWt
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 4ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_WaWb
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 5ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_RaWaWt
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 6ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_RaWaWb
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 7ULL
    - item_type: preproc_def
      name: GIC_BASER_CACHE_MASK
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 7ULL
    - item_type: preproc_def
      name: GIC_BASER_NonShareable
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 0ULL
    - item_type: preproc_def
      name: GIC_BASER_InnerShareable
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 1ULL
    - item_type: preproc_def
      name: GIC_BASER_OuterShareable
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 2ULL
    - item_type: preproc_def
      name: GICR_PROPBASER_OUTER_CACHEABILITY_SHIFT
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: GICR_PROPBASER_OUTER_CACHEABILITY_MASK
      pos:
        line_end: 175
        line_start: 173
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (7ULL << GICR_PROPBASER_OUTER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PROPBASER_SHAREABILITY_SHIFT
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '10'
    - item_type: preproc_def
      name: GICR_PROPBASER_SHAREABILITY_MASK
      pos:
        line_end: 178
        line_start: 176
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (3ULL << GICR_PROPBASER_SHAREABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PROPBASER_INNER_CACHEABILITY_SHIFT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '7'
    - item_type: preproc_def
      name: GICR_PROPBASER_INNER_CACHEABILITY_MASK
      pos:
        line_end: 181
        line_start: 179
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (7ULL << GICR_PROPBASER_INNER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PROPBASER_RES0_MASK
      pos:
        line_end: 183
        line_start: 181
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (GENMASK_ULL(63, 59) | GENMASK_ULL(55, 52) | GENMASK_ULL(6, 5))
    - item_type: preproc_def
      name: GICR_PENDBASER_SHAREABILITY_SHIFT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '10'
    - item_type: preproc_def
      name: GICR_PENDBASER_INNER_CACHEABILITY_SHIFT
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '7'
    - item_type: preproc_def
      name: GICR_PENDBASER_OUTER_CACHEABILITY_SHIFT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: GICR_PENDBASER_SHAREABILITY_MASK
      pos:
        line_end: 189
        line_start: 187
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (3UL << GICR_PENDBASER_SHAREABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PENDBASER_INNER_CACHEABILITY_MASK
      pos:
        line_end: 191
        line_start: 189
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (7UL << GICR_PENDBASER_INNER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PENDBASER_OUTER_CACHEABILITY_MASK
      pos:
        line_end: 193
        line_start: 191
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (7ULL << GICR_PENDBASER_OUTER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GICR_PENDBASER_PTZ
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: BIT(62, ULL)
    - item_type: preproc_def
      name: GICR_PENDBASER_RES0_MASK
      pos:
        line_end: 197
        line_start: 194
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: "(BIT(63, ULL) | GENMASK_ULL(61, 59) | GENMASK_ULL(55, 52) |
        \ \\\n         GENMASK_ULL(15, 12) | GENMASK_ULL(6, 0))"
    - item_type: preproc_def
      name: DEFAULT_PMR_VALUE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: LPI_PROP_PRIO_MASK
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xfc'
    - item_type: preproc_def
      name: LPI_PROP_RES1
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: LPI_PROP_ENABLED
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ICH_VMCR_EOI
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: ICH_VMCR_VENG1
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: ICH_VMCR_PRIORITY_MASK
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ICH_VMCR_PRIORITY_SHIFT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ICH_LR_VIRTUAL_MASK
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: ICH_LR_VIRTUAL_SHIFT
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ICH_LR_CPUID_MASK
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ICH_LR_CPUID_SHIFT
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '10'
    - item_type: preproc_def
      name: ICH_LR_PHYSICAL_MASK
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x1fff'
    - item_type: preproc_def
      name: ICH_LR_PHYSICAL_SHIFT
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ICH_LR_STATE_MASK
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ICH_LR_STATE_SHIFT
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '62'
    - item_type: preproc_def
      name: ICH_LR_STATE_PENDING
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1ULL << 62)
    - item_type: preproc_def
      name: ICH_LR_STATE_ACTIVE
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1ULL << 63)
    - item_type: preproc_def
      name: ICH_LR_PRIORITY_MASK
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ICH_LR_PRIORITY_SHIFT
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ICH_LR_HW_MASK
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ICH_LR_HW_SHIFT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '61'
    - item_type: preproc_def
      name: ICH_LR_GRP_MASK
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ICH_LR_GRP_SHIFT
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ICH_LR_MAINTENANCE_IRQ
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1ULL << 41)
    - item_type: preproc_def
      name: ICH_LR_GRP1
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1ULL << 60)
    - item_type: preproc_def
      name: ICH_LR_HW
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: (1ULL << 61)
    - item_type: preproc_def
      name: ICH_VTR_NRLRGS
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ICH_VTR_PRIBITS_MASK
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ICH_VTR_PRIBITS_SHIFT
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '29'
    - item_type: preproc_def
      name: ICH_SGI_IRQMODE_SHIFT
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ICH_SGI_IRQMODE_MASK
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ICH_SGI_TARGET_OTHERS
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: 1ULL
    - item_type: preproc_def
      name: ICH_SGI_TARGET_LIST
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ICH_SGI_IRQ_SHIFT
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ICH_SGI_IRQ_MASK
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ICH_SGI_TARGETLIST_MASK
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: ICH_SGI_AFFx_MASK
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
      type_or_value: '0xff'
    structs:
    - fields:
      - name: base
        type: paddr_t
      - name: size
        type: paddr_t
      - name: '*map_base'
        type: void
      - name: single_rdist
        type: bool
      item_type: struct
      name: rdist_region
      pos:
        line_end: 248
        line_start: 243
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_defs.h
    typedefs: []
    union: []
- function_names:
  - VPL011_LOCK
  - VPL011_UNLOCK
  - domain_vpl011_init
  - domain_vpl011_deinit
  source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SBSA_UART_FIFO_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SBSA_UART_OUT_BUF_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
      type_or_value: '128'
    structs:
    - fields:
      - name: in[SBSA_UART_FIFO_SIZE]
        type: char
      - name: out[SBSA_UART_OUT_BUF_SIZE]
        type: char
      - name: in_cons
        type: XENCONS_RING_IDX
      - name: out_prod
        type: XENCONS_RING_IDX
      item_type: struct
      name: vpl011_xen_backend
      pos:
        line_end: 38
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
    - fields:
      - name: backend_in_domain
        type: bool
      - name: backend
        type: "union {\n        struct {\n            void *ring_buf;\n            struct
          page_info *ring_page;\n        } dom;\n        struct vpl011_xen_backend
          *xen;\n    }"
      - name: uartfr
        type: uint32_t
      - name: uartcr
        type: uint32_t
      - name: uartimsc
        type: uint32_t
      - name: uarticr
        type: uint32_t
      - name: uartris
        type: uint32_t
      - name: shadow_uartmis
        type: uint32_t
      - name: base_addr
        type: paddr_t
      - name: virq
        type: unsigned int
      - name: lock
        type: spinlock_t
      - name: evtchn
        type: evtchn_port_t
      item_type: struct
      name: vpl011
      pos:
        line_end: 59
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
    - fields:
      - name: console_domid
        type: domid_t
      - name: gfn
        type: gfn_t
      - name: evtchn
        type: evtchn_port_t
      item_type: struct
      name: vpl011_init_info
      pos:
        line_end: 65
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/vpl011.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/string.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/setup.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FDT_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/setup.h
      type_or_value: SZ_2M
    structs:
    - fields:
      - name: '*d'
        type: struct domain
      - name: p2mt
        type: p2m_type_t
      - name: skip_mapping
        type: bool
      - name: '*iomem_ranges'
        type: struct rangeset
      - name: '*irq_ranges'
        type: struct rangeset
      item_type: struct
      name: map_range_data
      pos:
        line_end: 25
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/setup.h
    - fields:
      - name: '*stack'
        type: unsigned char
      - name: cpuid
        type: unsigned int
      item_type: struct
      name: init_info
      pos:
        line_end: 75
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/setup.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/page-bits.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_SHIFT
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/arm/include/asm/page-bits.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PADDR_BITS
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/page-bits.h
      type_or_value: CONFIG_PADDR_BITS
    structs: []
    typedefs: []
    union: []
- function_names:
  - guest_handle_okay
  - guest_handle_subrange_okay
  source_file: /src/xen/xen/arch/arm/include/asm/guest_access.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __raw_copy_to_guest
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/guest_access.h
      type_or_value: raw_copy_to_guest
    - item_type: preproc_def
      name: __raw_copy_from_guest
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/guest_access.h
      type_or_value: raw_copy_from_guest
    - item_type: preproc_def
      name: __raw_clear_guest
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/guest_access.h
      type_or_value: raw_clear_guest
    structs: []
    typedefs: []
    union: []
- function_names:
  - P2M_CLEAR_PERM
  - lpae_is_valid
  - lpae_is_table
  - lpae_is_mapping
  - lpae_is_superpage
  - lpae_get_mfn
  - lpae_set_mfn
  - DECLARE_OFFSETS
  - LPAE_SHIFT_GS
  - LPAE_ENTRIES_GS
  - LPAE_ENTRY_MASK_GS
  - LEVEL_ORDER_GS
  - LEVEL_SHIFT_GS
  - LEVEL_SIZE_GS
  - LPAE_TABLE_INDEX_GS
  - XEN_PT_LEVEL_SHIFT
  - XEN_PT_LEVEL_ORDER
  - XEN_PT_LEVEL_SIZE
  - XEN_PT_LEVEL_MASK
  - zeroeth_linear_offset
  - first_linear_offset
  - second_linear_offset
  - third_linear_offset
  - TABLE_OFFSET
  - first_table_offset
  - second_table_offset
  - third_table_offset
  - zeroeth_table_offset
  - zeroeth_table_offset
  - DEFINE_BOOT_PAGE_TABLES
  - DEFINE_BOOT_PAGE_TABLE
  - DEFINE_PAGE_TABLES
  - DEFINE_PAGE_TABLE
  source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: P2M_PERM_MASK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: (0x00400000000000C0ULL)
    - item_type: preproc_def
      name: XEN_PT_LPAE_SHIFT
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: LPAE_SHIFT_GS(PAGE_SHIFT)
    - item_type: preproc_def
      name: XEN_PT_LPAE_ENTRIES
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: LPAE_ENTRIES_GS(PAGE_SHIFT)
    - item_type: preproc_def
      name: XEN_PT_LPAE_ENTRY_MASK
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: LPAE_ENTRY_MASK_GS(PAGE_SHIFT)
    - item_type: preproc_def
      name: THIRD_SHIFT
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SHIFT(3)
    - item_type: preproc_def
      name: THIRD_ORDER
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_ORDER(3)
    - item_type: preproc_def
      name: THIRD_SIZE
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SIZE(3)
    - item_type: preproc_def
      name: THIRD_MASK
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_MASK(3)
    - item_type: preproc_def
      name: SECOND_SHIFT
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SHIFT(2)
    - item_type: preproc_def
      name: SECOND_ORDER
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_ORDER(2)
    - item_type: preproc_def
      name: SECOND_SIZE
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SIZE(2)
    - item_type: preproc_def
      name: SECOND_MASK
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_MASK(2)
    - item_type: preproc_def
      name: FIRST_SHIFT
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SHIFT(1)
    - item_type: preproc_def
      name: FIRST_ORDER
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_ORDER(1)
    - item_type: preproc_def
      name: FIRST_SIZE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SIZE(1)
    - item_type: preproc_def
      name: FIRST_MASK
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_MASK(1)
    - item_type: preproc_def
      name: ZEROETH_SHIFT
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SHIFT(0)
    - item_type: preproc_def
      name: ZEROETH_ORDER
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_ORDER(0)
    - item_type: preproc_def
      name: ZEROETH_SIZE
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_SIZE(0)
    - item_type: preproc_def
      name: ZEROETH_MASK
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
      type_or_value: XEN_PT_LEVEL_MASK(0)
    structs:
    - fields:
      - name: valid
        type: unsigned long
      - name: table
        type: unsigned long
      - name: ai
        type: unsigned long
      - name: ns
        type: unsigned long
      - name: up
        type: unsigned long
      - name: ro
        type: unsigned long
      - name: sh
        type: unsigned long
      - name: af
        type: unsigned long
      - name: ng
        type: unsigned long
      - name: base
        type: unsigned long long
      - name: sbz
        type: unsigned long
      - name: contig
        type: unsigned long
      - name: pxn
        type: unsigned long
      - name: xn
        type: unsigned long
      - name: avail
        type: unsigned long
      - name: pxnt
        type: unsigned long
      - name: xnt
        type: unsigned long
      - name: apt
        type: unsigned long
      - name: nst
        type: unsigned long
      item_type: struct
      name: __packed
      pos:
        line_end: 65
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
    - fields:
      - name: valid
        type: unsigned long
      - name: table
        type: unsigned long
      - name: mattr
        type: unsigned long
      - name: read
        type: unsigned long
      - name: write
        type: unsigned long
      - name: sh
        type: unsigned long
      - name: af
        type: unsigned long
      - name: sbz4
        type: unsigned long
      - name: base
        type: unsigned long long
      - name: sbz3
        type: unsigned long
      - name: contig
        type: unsigned long
      - name: sbz2
        type: unsigned long
      - name: xn
        type: unsigned long
      - name: type
        type: unsigned long
      - name: sbz1
        type: unsigned long
      item_type: struct
      name: __packed
      pos:
        line_end: 101
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
    - fields:
      - name: valid
        type: unsigned long
      - name: table
        type: unsigned long
      - name: pad2
        type: unsigned long
      - name: base
        type: unsigned long long
      - name: pad1
        type: unsigned long
      item_type: struct
      name: __packed
      pos:
        line_end: 122
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
    typedefs: []
    union:
    - fields:
      - name: bits
        type: uint64_t
      - name: pt
        type: lpae_pt_t
      - name: p2m
        type: lpae_p2m_t
      - name: walk
        type: lpae_walk_t
      item_type: union
      name: lpae_t
      pos:
        line_end: 129
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/lpae.h
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
  types:
    enum:
    - enumerators:
      - name: DABT_BYTE
        value: '0'
      - name: DABT_HALF_WORD
        value: '1'
      - name: DABT_DOUBLE_WORD
        value: '3'
      - name: DABT_WORD
        value: '2'
      item_type: enum
      name: dabt_size
      pos:
        line_end: 15
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    preproc_defs:
    - item_type: preproc_def
      name: HSR_CP32_OP2_MASK
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x000e0000)
    - item_type: preproc_def
      name: HSR_CP32_OP2_SHIFT
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (17)
    - item_type: preproc_def
      name: HSR_CP32_OP1_MASK
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x0001c000)
    - item_type: preproc_def
      name: HSR_CP32_OP1_SHIFT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (14)
    - item_type: preproc_def
      name: HSR_CP32_CRN_MASK
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x00003c00)
    - item_type: preproc_def
      name: HSR_CP32_CRN_SHIFT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (10)
    - item_type: preproc_def
      name: HSR_CP32_CRM_MASK
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x0000001e)
    - item_type: preproc_def
      name: HSR_CP32_CRM_SHIFT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (1)
    - item_type: preproc_def
      name: HSR_CP32_REGS_MASK
      pos:
        line_end: 181
        line_start: 179
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: "(HSR_CP32_OP1_MASK|HSR_CP32_OP2_MASK|\\\n                            HSR_CP32_CRN_MASK|HSR_CP32_CRM_MASK)"
    - item_type: preproc_def
      name: HSR_CP64_OP1_MASK
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x000f0000)
    - item_type: preproc_def
      name: HSR_CP64_OP1_SHIFT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (16)
    - item_type: preproc_def
      name: HSR_CP64_CRM_MASK
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x0000001e)
    - item_type: preproc_def
      name: HSR_CP64_CRM_SHIFT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (1)
    - item_type: preproc_def
      name: HSR_CP64_REGS_MASK
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (HSR_CP64_OP1_MASK|HSR_CP64_CRM_MASK)
    - item_type: preproc_def
      name: HSR_SYSREG_OP0_MASK
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x00300000)
    - item_type: preproc_def
      name: HSR_SYSREG_OP0_SHIFT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (20)
    - item_type: preproc_def
      name: HSR_SYSREG_OP1_MASK
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x0001c000)
    - item_type: preproc_def
      name: HSR_SYSREG_OP1_SHIFT
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (14)
    - item_type: preproc_def
      name: HSR_SYSREG_CRN_MASK
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x00003c00)
    - item_type: preproc_def
      name: HSR_SYSREG_CRN_SHIFT
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (10)
    - item_type: preproc_def
      name: HSR_SYSREG_CRM_MASK
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x0000001e)
    - item_type: preproc_def
      name: HSR_SYSREG_CRM_SHIFT
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (1)
    - item_type: preproc_def
      name: HSR_SYSREG_OP2_MASK
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0x000e0000)
    - item_type: preproc_def
      name: HSR_SYSREG_OP2_SHIFT
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (17)
    - item_type: preproc_def
      name: HSR_SYSREG_REGS_MASK
      pos:
        line_end: 203
        line_start: 200
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: "(HSR_SYSREG_OP0_MASK|HSR_SYSREG_OP1_MASK|\\\n                              HSR_SYSREG_CRN_MASK|HSR_SYSREG_CRM_MASK|\\\n
        \                             HSR_SYSREG_OP2_MASK)"
    - item_type: preproc_def
      name: HSR_XXC_IMM_MASK
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
      type_or_value: (0xffff)
    structs:
    - fields:
      - name: iss
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_cond
      pos:
        line_end: 32
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: ti
        type: unsigned long
      - name: sbzp
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_wfi_wfe
      pos:
        line_end: 41
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: read
        type: unsigned long
      - name: crm
        type: unsigned long
      - name: reg
        type: unsigned long
      - name: crn
        type: unsigned long
      - name: op1
        type: unsigned long
      - name: op2
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_cp32
      pos:
        line_end: 55
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: read
        type: unsigned long
      - name: crm
        type: unsigned long
      - name: reg1
        type: unsigned long
      - name: reg2
        type: unsigned long
      - name: sbzp2
        type: unsigned long
      - name: op1
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_cp64
      pos:
        line_end: 68
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: coproc
        type: unsigned long
      - name: sbz0p
        type: unsigned long
      - name: tas
        type: unsigned long
      - name: res0
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_cp
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: res0
        type: unsigned long
      - name: ccknownpass
        type: unsigned long
      - name: cc
        type: unsigned long
      - name: ccvalid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_smc32
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: read
        type: unsigned long
      - name: crm
        type: unsigned long
      - name: reg
        type: unsigned long
      - name: crn
        type: unsigned long
      - name: op1
        type: unsigned long
      - name: op2
        type: unsigned long
      - name: op0
        type: unsigned long
      - name: res0
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_sysreg
      pos:
        line_end: 110
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: ifsc
        type: unsigned long
      - name: res0
        type: unsigned long
      - name: s1ptw
        type: unsigned long
      - name: res1
        type: unsigned long
      - name: eat
        type: unsigned long
      - name: fnv
        type: unsigned long
      - name: res2
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_iabt
      pos:
        line_end: 123
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: dfsc
        type: unsigned long
      - name: write
        type: unsigned long
      - name: s1ptw
        type: unsigned long
      - name: cache
        type: unsigned long
      - name: eat
        type: unsigned long
      - name: fnv
        type: unsigned long
      - name: reg
        type: unsigned long
      - name: sign
        type: unsigned long
      - name: size
        type: unsigned long
      - name: valid
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_dabt
      pos:
        line_end: 145
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: fsc
        type: unsigned long
      - name: pad1
        type: unsigned long
      - name: s1ptw
        type: unsigned long
      - name: pad2
        type: unsigned long
      - name: eat
        type: unsigned long
      - name: fnv
        type: unsigned long
      - name: pad3
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_xabt
      pos:
        line_end: 158
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    - fields:
      - name: comment
        type: unsigned long
      - name: res0
        type: unsigned long
      - name: len
        type: unsigned long
      - name: ec
        type: unsigned long
      item_type: struct
      name: hsr_brk
      pos:
        line_end: 166
        line_start: 161
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
    typedefs: []
    union:
    - fields:
      - name: bits
        type: register_t
      - name: cond
        type: "struct hsr_cond {\n        unsigned long iss:20;  /* Instruction Specific
          Syndrome */\n        unsigned long cc:4;    /* Condition Code */\n        unsigned
          long ccvalid:1;/* CC Valid */\n        unsigned long len:1;   /* Instruction
          length */\n        unsigned long ec:6;    /* Exception Class */\n    }"
      - name: wfi_wfe
        type: "struct hsr_wfi_wfe {\n        unsigned long ti:1;    /* Trapped instruction
          */\n        unsigned long sbzp:19;\n        unsigned long cc:4;    /* Condition
          Code */\n        unsigned long ccvalid:1;/* CC Valid */\n        unsigned
          long len:1;   /* Instruction length */\n        unsigned long ec:6;    /*
          Exception Class */\n    }"
      - name: cp32
        type: "struct hsr_cp32 {\n        unsigned long read:1;  /* Direction */\n
          \       unsigned long crm:4;   /* CRm */\n        unsigned long reg:5;   /*
          Rt */\n        unsigned long crn:4;   /* CRn */\n        unsigned long op1:3;
          \  /* Op1 */\n        unsigned long op2:3;   /* Op2 */\n        unsigned
          long cc:4;    /* Condition Code */\n        unsigned long ccvalid:1;/* CC
          Valid */\n        unsigned long len:1;   /* Instruction length */\n        unsigned
          long ec:6;    /* Exception Class */\n    }"
      - name: cp64
        type: "struct hsr_cp64 {\n        unsigned long read:1;   /* Direction */\n
          \       unsigned long crm:4;    /* CRm */\n        unsigned long reg1:5;
          \  /* Rt1 */\n        unsigned long reg2:5;   /* Rt2 */\n        unsigned
          long sbzp2:1;\n        unsigned long op1:4;    /* Op1 */\n        unsigned
          long cc:4;     /* Condition Code */\n        unsigned long ccvalid:1;/*
          CC Valid */\n        unsigned long len:1;    /* Instruction length */\n
          \       unsigned long ec:6;     /* Exception Class */\n    }"
      - name: cp
        type: "struct hsr_cp {\n        unsigned long coproc:4; /* Number of coproc
          accessed */\n        unsigned long sbz0p:1;\n        unsigned long tas:1;
          \   /* Trapped Advanced SIMD */\n        unsigned long res0:14;\n        unsigned
          long cc:4;     /* Condition Code */\n        unsigned long ccvalid:1;/*
          CC Valid */\n        unsigned long len:1;    /* Instruction length */\n
          \       unsigned long ec:6;     /* Exception Class */\n    }"
      - name: smc32
        type: "struct hsr_smc32 {\n        unsigned long res0:19;  /* Reserved */\n
          \       unsigned long ccknownpass:1; /* Instruction passed conditional check
          */\n        unsigned long cc:4;    /* Condition Code */\n        unsigned
          long ccvalid:1;/* CC Valid */\n        unsigned long len:1;   /* Instruction
          length */\n        unsigned long ec:6;    /* Exception Class */\n    }"
      - name: iabt
        type: "struct hsr_iabt {\n        unsigned long ifsc:6;  /* Instruction fault
          status code */\n        unsigned long res0:1;  /* RES0 */\n        unsigned
          long s1ptw:1; /* Stage 2 fault during stage 1 translation */\n        unsigned
          long res1:1;  /* RES0 */\n        unsigned long eat:1;   /* External abort
          type */\n        unsigned long fnv:1;   /* FAR not Valid */\n        unsigned
          long res2:14;\n        unsigned long len:1;   /* Instruction length */\n
          \       unsigned long ec:6;    /* Exception Class */\n    }"
      - name: dabt
        type: "struct hsr_dabt {\n        unsigned long dfsc:6;  /* Data Fault Status
          Code */\n        unsigned long write:1; /* Write / not Read */\n        unsigned
          long s1ptw:1; /* Stage 2 fault during stage 1 translation */\n        unsigned
          long cache:1; /* Cache Maintenance */\n        unsigned long eat:1;   /*
          External Abort Type */\n        unsigned long fnv:1;   /* FAR not Valid
          */\n#ifdef CONFIG_ARM_32\n        unsigned long sbzp0:5;\n#else\n        unsigned
          long sbzp0:3;\n        unsigned long ar:1;    /* Acquire Release */\n        unsigned
          long sf:1;    /* Sixty Four bit register */\n#endif\n        unsigned long
          reg:5;   /* Register */\n        unsigned long sign:1;  /* Sign extend */\n
          \       unsigned long size:2;  /* Access Size */\n        unsigned long
          valid:1; /* Syndrome Valid */\n        unsigned long len:1;   /* Instruction
          length */\n        unsigned long ec:6;    /* Exception Class */\n    }"
      - name: xabt
        type: "struct hsr_xabt {\n        unsigned long fsc:6;    /* Fault status
          code */\n        unsigned long pad1:1;   /* Not common */\n        unsigned
          long s1ptw:1;  /* Stage 2 fault during stage 1 translation */\n        unsigned
          long pad2:1;   /* Not common */\n        unsigned long eat:1;    /* External
          abort type */\n        unsigned long fnv:1;    /* FAR not Valid */\n        unsigned
          long pad3:14;  /* Not common */\n        unsigned long len:1;    /* Instruction
          length */\n        unsigned long ec:6;     /* Exception Class */\n    }"
      item_type: union
      name: hsr
      pos:
        line_end: 168
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/hsr.h
- function_names:
  - irq_is_ppi
  - irq_is_spi
  - VGIC_V3_LR_INDEX
  - vgic_cpu_base
  - vgic_dist_base
  source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
  types:
    enum:
    - enumerators:
      - name: VGIC_V2
      - name: VGIC_V3
      item_type: enum
      name: vgic_type
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    - enumerators:
      - name: IODEV_DIST
      - name: IODEV_REDIST
      item_type: enum
      name: iodev_type
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    preproc_defs:
    - item_type: preproc_def
      name: VGIC_V3_MAX_CPUS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '255'
    - item_type: preproc_def
      name: VGIC_V2_MAX_CPUS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '8'
    - item_type: preproc_def
      name: VGIC_NR_SGIS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VGIC_NR_PPIS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VGIC_NR_PRIVATE_IRQS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: (VGIC_NR_SGIS + VGIC_NR_PPIS)
    - item_type: preproc_def
      name: VGIC_MAX_PRIVATE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: (VGIC_NR_PRIVATE_IRQS - 1)
    - item_type: preproc_def
      name: VGIC_MAX_SPI
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '1019'
    - item_type: preproc_def
      name: VGIC_MAX_RESERVED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '1023'
    - item_type: preproc_def
      name: VGIC_MIN_LPI
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: VGIC_V2_MAX_LRS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: VGIC_V3_MAX_LRS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VGIC_CONFIG_EDGE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: 'false'
    - item_type: preproc_def
      name: VGIC_CONFIG_LEVEL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
      type_or_value: 'true'
    structs:
    - fields:
      - name: ap_list
        type: struct list_head
      - name: '*vcpu'
        type: struct vcpu
      - name: '*target_vcpu'
        type: struct vcpu
      - name: irq_lock
        type: spinlock_t
      - name: intid
        type: uint32_t
      - name: refcount
        type: atomic_t
      - name: hwintid
        type: uint32_t
      - name: priority
        type: uint8_t
      - name: line_level
        type: bool
      - name: pending_latch
        type: bool
      - name: active
        type: bool
      - name: enabled
        type: bool
      - name: hw
        type: bool
      - name: config
        type: bool
      - name: lpi_list
        type: struct list_head
      item_type: struct
      name: vgic_irq
      pos:
        line_end: 89
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    - fields:
      - name: base_fn
        type: gfn_t
      - name: '*redist_vcpu'
        type: struct vcpu
      - name: '*regions'
        type: struct vgic_register_region
      - name: iodev_type
        type: enum iodev_type
      - name: nr_regions
        type: unsigned int
      item_type: struct
      name: vgic_io_device
      pos:
        line_end: 102
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    - fields:
      - name: ready
        type: bool
      - name: initialized
        type: bool
      - name: version
        type: uint32_t
      - name: msis_require_devid
        type: bool
      - name: nr_spis
        type: unsigned int
      - name: dbase
        type: paddr_t
      - name: csize
        type: paddr_t
      - name: vbase
        type: paddr_t
      - name: enabled
        type: bool
      - name: '*spis'
        type: struct vgic_irq
      - name: '*allocated_irqs'
        type: unsigned long
      - name: dist_iodev
        type: struct vgic_io_device
      - name: has_its
        type: bool
      - name: propbaser
        type: uint64_t
      - name: lpi_list_lock
        type: spinlock_t
      - name: lpi_list_head
        type: struct list_head
      - name: lpi_list_count
        type: unsigned int
      item_type: struct
      name: vgic_dist
      pos:
        line_end: 154
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    - fields:
      - name: '*private_irqs'
        type: struct vgic_irq
      - name: ap_list_head
        type: struct list_head
      - name: ap_list_lock
        type: spinlock_t
      - name: used_lrs
        type: unsigned int
      - name: rd_iodev
        type: struct vgic_io_device
      - name: sgi_iodev
        type: struct vgic_io_device
      - name: pendbaser
        type: uint64_t
      - name: lpis_enabled
        type: bool
      - name: num_pri_bits
        type: uint32_t
      - name: num_id_bits
        type: uint32_t
      item_type: struct
      name: vgic_cpu
      pos:
        line_end: 188
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/new_vgic.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/hypercall.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/macros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __set_bit
  - __clear_bit
  - arch_ffs
  - arch_ffsl
  - arch_fls
  - arch_flsl
  source_file: /src/xen/xen/arch/arm/include/asm/bitops.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ADDR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/bitops.h
      type_or_value: (*(volatile int *) addr)
    - item_type: preproc_def
      name: CONST_ADDR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/bitops.h
      type_or_value: (*(const volatile int *) addr)
    structs: []
    typedefs: []
    union: []
- function_names:
  - sev
  - wfe
  - wfi
  - isb
  - dsb
  - dmb
  - mb
  - rmb
  - rmb
  - wmb
  - smp_mb
  - smp_rmb
  - smp_rmb
  - smp_wmb
  - smp_mb__before_atomic
  - smp_mb__after_atomic
  - __asmeq
  - local_abort_is_enabled
  - arch_fetch_and_add
  source_file: /src/xen/xen/arch/arm/include/asm/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - vreg_emulate_cp32
  - vreg_emulate_cp64
  - vreg_emulate_sysreg
  - VREG_REG_MASK
  - VREG_REG_HELPERS
  source_file: /src/xen/xen/arch/arm/include/asm/vreg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*vreg_reg64_fn_t)(struct cpu_user_regs *regs, uint64_t *r,\n                                   bool
        read)"
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/vreg.h
      type: bool
    - item_type: typedef
      name: "(*vreg_reg_fn_t)(struct cpu_user_regs *regs, register_t *r,\n                                   bool
        read)"
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/vreg.h
      type: bool
    union: []
- function_names:
  - guest_bug_on_failed
  - GUEST_BUG_ON
  - VABORT_GEN_BY_GUEST
  - sign_extend
  source_file: /src/xen/xen/arch/arm/include/asm/traps.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: partial_emulation
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/traps.h
      type_or_value: 'false'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/kernel.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: vpl011
        type: bool
      item_type: struct
      name: arch_kernel_info
      pos:
        line_end: 18
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/kernel.h
    typedefs: []
    union: []
- function_names:
  - PFN_ORDER
  - PG_shift
  - PG_mask
  - page_state_is
  - is_xen_heap_page
  - is_xen_heap_mfn
  - is_xen_fixed_mfn
  - page_get_owner
  - page_set_owner
  - maddr_get_owner
  - ioremap_nocache
  - ioremap_cache
  - ioremap_wc
  - mfn_valid
  - mfn_to_page
  - page_to_mfn
  - maddr_to_page
  - page_to_maddr
  - pfn_to_paddr
  - paddr_to_pfn
  - gfn_to_gaddr
  - gaddr_to_gfn
  - mfn_to_maddr
  - maddr_to_mfn
  - vmap_to_mfn
  - vmap_to_page
  - paddr_to_pfn_aligned
  - gvirt_to_maddr
  - __pa
  - __va
  - __virt_to_mfn
  - __mfn_to_virt
  - virt_to_mfn
  - mfn_to_virt
  - page_to_virt
  - SHARED_M2P
  - set_gpfn_from_mfn
  - mfn_to_gfn
  - put_page_and_type
  - page_get_xenheap_gfn
  - page_set_xenheap_gfn
  source_file: /src/xen/xen/arch/arm/include/asm/mm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_PADDR_ALIGN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: PAGE_INFO_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '56'
    - item_type: preproc_def
      name: PAGE_INFO_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '32'
    - item_type: preproc_def
      name: INVALID_DIRTY_IDX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: ((1UL << (MAX_ORDER + 1)) - 1)
    - item_type: preproc_def
      name: BUDDY_NOT_SCRUBBING
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: BUDDY_SCRUBBING
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BUDDY_SCRUB_ABORT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PGT_none
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: 'PG_mask(0, 1)  '
    - item_type: preproc_def
      name: PGT_writable_page
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_type_mask
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: 'PG_mask(1, 1)  '
    - item_type: preproc_def
      name: PGT_count_mask
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(3, 3)
    - item_type: preproc_def
      name: PGT_gfn_width
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(3)
    - item_type: preproc_def
      name: PGT_gfn_mask
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: ((1UL<<PGT_gfn_width)-1)
    - item_type: preproc_def
      name: PGT_INVALID_XENHEAP_GFN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: _gfn(PGT_gfn_mask)
    - item_type: preproc_def
      name: PGT_TYPE_INFO_INITIALIZER
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: gfn_x(PGT_INVALID_XENHEAP_GFN)
    - item_type: preproc_def
      name: _PGC_allocated
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(1)
    - item_type: preproc_def
      name: PGC_allocated
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 1)
    - item_type: preproc_def
      name: _PGC_xen_heap
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(2)
    - item_type: preproc_def
      name: PGC_xen_heap
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 2)
    - item_type: preproc_def
      name: _PGC_static
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(3)
    - item_type: preproc_def
      name: PGC_static
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 3)
    - item_type: preproc_def
      name: PGC_static
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PGC_colored
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(4)
    - item_type: preproc_def
      name: PGC_colored
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 4)
    - item_type: preproc_def
      name: _PGC_need_scrub
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(5)
    - item_type: preproc_def
      name: PGC_need_scrub
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 5)
    - item_type: preproc_def
      name: _PGC_broken
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(7)
    - item_type: preproc_def
      name: PGC_broken
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 7)
    - item_type: preproc_def
      name: PGC_state
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: PGC_state_inuse
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(0, 9)
    - item_type: preproc_def
      name: PGC_state_offlining
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 9)
    - item_type: preproc_def
      name: PGC_state_offlined
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(2, 9)
    - item_type: preproc_def
      name: PGC_state_free
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(3, 9)
    - item_type: preproc_def
      name: _PGC_extra
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(10)
    - item_type: preproc_def
      name: PGC_extra
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_mask(1, 10)
    - item_type: preproc_def
      name: PGC_count_width
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: PG_shift(10)
    - item_type: preproc_def
      name: PGC_count_mask
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: ((1UL<<PGC_count_width)-1)
    - item_type: preproc_def
      name: PDX_GROUP_SHIFT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: SECOND_SHIFT
    - item_type: preproc_def
      name: INVALID_M2P_ENTRY
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: SHARED_M2P_ENTRY
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
      type_or_value: (~0UL - 1UL)
    structs:
    - fields:
      - name: list
        type: struct page_list_entry
      - name: count_info
        type: unsigned long
      - name: u
        type: "union {\n        /* Page is in use: ((count_info & PGC_count_mask)
          != 0). */\n        struct {\n            /* Type reference count and various
          PGT_xxx flags and fields. */\n            unsigned long type_info;\n        }
          inuse;\n        /* Page is on a free list: ((count_info & PGC_count_mask)
          == 0). */\n        union {\n            struct {\n                /*\n                 *
          Index of the first *possibly* unscrubbed page in the buddy.\n                 *
          One more bit than maximum possible order to accommodate\n                 *
          INVALID_DIRTY_IDX.\n                 */\n#define INVALID_DIRTY_IDX ((1UL
          << (MAX_ORDER + 1)) - 1)\n                unsigned long first_dirty:MAX_ORDER
          + 1;\n\n                /* Do TLBs need flushing for safety before next
          page use? */\n                bool need_tlbflush:1;\n\n#define BUDDY_NOT_SCRUBBING
          \   0\n#define BUDDY_SCRUBBING        1\n#define BUDDY_SCRUB_ABORT      2\n
          \               unsigned long scrub_state:2;\n            };\n\n            unsigned
          long val;\n            } free;\n\n    }"
      - name: v
        type: "union {\n        /* Page is in use, but not as a shadow. */\n        struct
          {\n            /* Owner of this page (zero if page is anonymous). */\n            struct
          domain *domain;\n        } inuse;\n\n        /* Page is on a free list.
          */\n        struct {\n            /* Order-size of the free chunk this page
          is the head of. */\n            unsigned int order;\n        } free;\n\n
          \   }"
      - name: pad
        type: u64
      item_type: struct
      name: page_info
      pos:
        line_end: 102
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/mm.h
    typedefs: []
    union: []
- function_names:
  - bug_loc
  - bug_file
  - bug_line
  - bug_msg
  - BUG_FRAME
  - run_in_exception_handler
  - WARN
  - BUG
  - assert_failed
  source_file: /src/xen/xen/arch/arm/include/asm/bug.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: loc_disp
        type: signed int
      - name: file_disp
        type: signed int
      - name: msg_disp
        type: signed int
      - name: line
        type: uint16_t
      - name: pad0
        type: uint32_t
      item_type: struct
      name: bug_frame
      pos:
        line_end: 21
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/bug.h
    typedefs: []
    union: []
- function_names:
  - tlbflush_filter
  - tlbflush_current_time
  - page_set_tlbflush_timestamp
  - flush_xen_tlb_range_va_local
  - flush_xen_tlb_range_va
  source_file: /src/xen/xen/arch/arm/include/asm/flushtlb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_feature64
  - boot_cpu_feature64
  - boot_dbg_feature64
  - cpu_feature64_has_el0_32
  - cpu_feature32
  - boot_cpu_feature32
  - boot_dbg_feature32
  - cpus_have_cap
  - cpus_have_const_cap
  - cpus_set_cap
  - update_system_features
  source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: cpu_has_el0_32
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el0) == 2)
    - item_type: preproc_def
      name: cpu_has_el0_64
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el0) >= 1)
    - item_type: preproc_def
      name: cpu_has_el1_32
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el1) == 2)
    - item_type: preproc_def
      name: cpu_has_el1_64
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el1) >= 1)
    - item_type: preproc_def
      name: cpu_has_el2_32
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el2) == 2)
    - item_type: preproc_def
      name: cpu_has_el2_64
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el2) >= 1)
    - item_type: preproc_def
      name: cpu_has_el3_32
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el3) == 2)
    - item_type: preproc_def
      name: cpu_has_el3_64
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(el3) >= 1)
    - item_type: preproc_def
      name: cpu_has_fp
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(fp) < 8)
    - item_type: preproc_def
      name: cpu_has_simd
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(simd) < 8)
    - item_type: preproc_def
      name: cpu_has_gicv3
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(gic) >= 1)
    - item_type: preproc_def
      name: cpu_has_arm
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(arm) == 1)
    - item_type: preproc_def
      name: cpu_has_thumb
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(thumb) >= 1)
    - item_type: preproc_def
      name: cpu_has_thumb2
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(thumb) >= 3)
    - item_type: preproc_def
      name: cpu_has_jazelle
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(jazelle) > 0)
    - item_type: preproc_def
      name: cpu_has_thumbee
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(thumbee) == 1)
    - item_type: preproc_def
      name: cpu_has_aarch32
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (cpu_has_arm || cpu_has_thumb)
    - item_type: preproc_def
      name: cpu_has_sve
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature64(sve) == 1)
    - item_type: preproc_def
      name: cpu_has_sve
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '0'
    - item_type: preproc_def
      name: cpu_has_gicv3
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(gic) >= 1)
    - item_type: preproc_def
      name: cpu_has_gentimer
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(gentimer) == 1)
    - item_type: preproc_def
      name: cpu_has_pmu
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: "((boot_dbg_feature32(perfmon) >= 1) && \\\n                           (boot_dbg_feature32(perfmon)
        < 15))"
    - item_type: preproc_def
      name: cpu_has_gentimer
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (1)
    - item_type: preproc_def
      name: cpu_has_pmu
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: "((boot_dbg_feature64(pmu_ver) >= 1) && \\\n                           (boot_dbg_feature64(pmu_ver)
        < 15))"
    - item_type: preproc_def
      name: cpu_has_security
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: (boot_cpu_feature32(security) > 0)
    - item_type: preproc_def
      name: ARM64_WORKAROUND_CLEAN_CACHE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ARM64_WORKAROUND_DEVICE_LOAD_ACQUIRE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ARM32_WORKAROUND_766422
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ARM64_WORKAROUND_834220
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LIVEPATCH_FEATURE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ARM_HARDEN_BRANCH_PREDICTOR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ARM_SSBD
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '7'
    - item_type: preproc_def
      name: ARM_SMCCC_1_1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ARM64_WORKAROUND_AT_SPECULATE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '9'
    - item_type: preproc_def
      name: ARM_WORKAROUND_858921
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '10'
    - item_type: preproc_def
      name: ARM64_WORKAROUND_REPEAT_TLBI
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '11'
    - item_type: preproc_def
      name: ARM_WORKAROUND_BHB_LOOP_8
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ARM_WORKAROUND_BHB_LOOP_24
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '13'
    - item_type: preproc_def
      name: ARM_WORKAROUND_BHB_LOOP_32
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '14'
    - item_type: preproc_def
      name: ARM_WORKAROUND_BHB_SMCC_3
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '15'
    - item_type: preproc_def
      name: ARM_HAS_SB
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ARM64_WORKAROUND_1508412
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '17'
    - item_type: preproc_def
      name: ARM_NCAPS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: '18'
    - item_type: preproc_def
      name: current_cpu_data
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
      type_or_value: cpu_data[smp_processor_id()]
    structs:
    - fields:
      - name: '*desc'
        type: char
      - name: capability
        type: u16
      - name: (*matches)(const struct arm_cpu_capabilities *entry)
        type: bool
      - name: (*enable)(void *data)
        type: int
      item_type: struct
      name: arm_cpu_capabilities
      pos:
        line_end: 132
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    - fields:
      - name: midr
        type: "union {\n        register_t bits;\n        struct {\n            unsigned
          long revision:4;\n            unsigned long part_number:12;\n            unsigned
          long architecture:4;\n            unsigned long variant:4;\n            unsigned
          long implementer:8;\n#ifdef CONFIG_ARM_64\n            unsigned long _res0:32;\n#endif\n
          \       };\n    }"
      - name: mpidr
        type: "union {\n        register_t bits;\n        struct {\n            unsigned
          long aff0:8;\n            unsigned long aff1:8;\n            unsigned long
          aff2:8;\n            unsigned long mt:1; /* Multi-thread, iff MP == 1 */\n
          \           unsigned long __res0:5;\n            unsigned long up:1; /*
          UP system, iff MP == 1 */\n            unsigned long mp:1; /* MP extensions
          */\n\n#ifdef CONFIG_ARM_64\n            unsigned long aff3:8;\n            unsigned
          long __res1:24;\n#endif\n        };\n    }"
      - name: pfr32
        type: "union {\n        register_t bits[3];\n        struct {\n            /*
          PFR0 */\n            unsigned long arm:4;\n            unsigned long thumb:4;\n
          \           unsigned long jazelle:4;\n            unsigned long thumbee:4;\n
          \           unsigned long csv2:4;\n            unsigned long amu:4;\n            unsigned
          long dit:4;\n            unsigned long ras:4;\n#ifdef CONFIG_ARM_64\n            unsigned
          long __res0:32;\n#endif\n\n            /* PFR1 */\n            unsigned
          long progmodel:4;\n            unsigned long security:4;\n            unsigned
          long mprofile:4;\n            unsigned long virt:4;\n            unsigned
          long gentimer:4;\n            unsigned long sec_frac:4;\n            unsigned
          long virt_frac:4;\n            unsigned long gic:4;\n#ifdef CONFIG_ARM_64\n
          \           unsigned long __res1:32;\n#endif\n\n            /* PFR2 */\n
          \           unsigned long csv3:4;\n            unsigned long ssbs:4;\n            unsigned
          long ras_frac:4;\n            unsigned long __res2:20;\n#ifdef CONFIG_ARM_64\n
          \           unsigned long __res3:32;\n#endif\n        };\n    }"
      - name: dbg32
        type: "union {\n        register_t bits[2];\n        struct {\n            /*
          DFR0 */\n            unsigned long copdbg:4;\n            unsigned long
          copsdbg:4;\n            unsigned long mmapdbg:4;\n            unsigned long
          coptrc:4;\n            unsigned long mmaptrc:4;\n            unsigned long
          mprofdbg:4;\n            unsigned long perfmon:4;\n            unsigned
          long tracefilt:4;\n#ifdef CONFIG_ARM_64\n            unsigned long __res0:32;\n#endif\n\n
          \           /* DFR1 */\n            unsigned long mtpmu:4;\n            unsigned
          long __res1:28;\n#ifdef CONFIG_ARM_64\n            unsigned long __res2:32;\n#endif\n
          \       };\n    }"
      - name: aux32
        type: "struct {\n        register_t bits[1];\n    }"
      - name: mm32
        type: "struct {\n        register_t bits[6];\n    }"
      - name: isa32
        type: "struct {\n        register_t bits[7];\n    }"
      - name: mvfr
        type: "struct {\n        register_t bits[3];\n    }"
      item_type: struct
      name: cpuinfo_arm
      pos:
        line_end: 443
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/cpufeature.h
    typedefs: []
    union: []
- function_names:
  - read_sysreg_par
  source_file: /src/xen/xen/arch/arm/include/asm/sysregs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_pmap_map
  - arch_pmap_unmap
  source_file: /src/xen/xen/arch/arm/include/asm/pmap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/cache.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1_CACHE_SHIFT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/cache.h
      type_or_value: (CONFIG_ARM_L1_CACHE_SHIFT)
    - item_type: preproc_def
      name: L1_CACHE_BYTES
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/cache.h
      type_or_value: (1 << L1_CACHE_SHIFT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - __ALT_PTR
  - ALT_ORIG_PTR
  - ALT_REPL_PTR
  - ALTINSTR_ENTRY
  - __ALTERNATIVE_CFG
  - _ALTERNATIVE_CFG
  - ALTERNATIVE_CB
  source_file: /src/xen/xen/arch/arm/include/asm/alternative.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARM_CB_PATCH
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/alternative.h
      type_or_value: ARM_NCAPS
    structs:
    - fields:
      - name: orig_offset
        type: int32_t
      - name: repl_offset
        type: int32_t
      - name: cpufeature
        type: uint16_t
      - name: orig_len
        type: uint8_t
      - name: repl_len
        type: uint8_t
      item_type: struct
      name: alt_instr
      pos:
        line_end: 19
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/alternative.h
    typedefs:
    - item_type: typedef
      name: "(*alternative_cb_t)(const struct alt_instr *alt,\n\t\t\t\t const uint32_t
        *origptr, uint32_t *updptr,\n\t\t\t\t int nr_inst)"
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/alternative.h
      type: void
    union: []
- function_names:
  - _HSR_CPREG32
  - _HSR_CPREG64
  - HSR_CPREG32
  - HSR_CPREG64
  - __AP0Rx
  - __AP1Rx
  - __LR0
  - __LR8
  - __LRC0
  - __LRC8
  source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __HSR_CPREG_c0
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __HSR_CPREG_c1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __HSR_CPREG_c2
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: __HSR_CPREG_c3
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: __HSR_CPREG_c4
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __HSR_CPREG_c5
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __HSR_CPREG_c6
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __HSR_CPREG_c7
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '7'
    - item_type: preproc_def
      name: __HSR_CPREG_c8
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: __HSR_CPREG_c9
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: __HSR_CPREG_c10
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '10'
    - item_type: preproc_def
      name: __HSR_CPREG_c11
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '11'
    - item_type: preproc_def
      name: __HSR_CPREG_c12
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: __HSR_CPREG_c13
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '13'
    - item_type: preproc_def
      name: __HSR_CPREG_c14
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '14'
    - item_type: preproc_def
      name: __HSR_CPREG_c15
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '15'
    - item_type: preproc_def
      name: __HSR_CPREG_0
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __HSR_CPREG_1
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __HSR_CPREG_2
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: __HSR_CPREG_3
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '3'
    - item_type: preproc_def
      name: __HSR_CPREG_4
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __HSR_CPREG_5
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __HSR_CPREG_6
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __HSR_CPREG_7
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: '7'
    - item_type: preproc_def
      name: FPSID
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c0,c0,0   '
    - item_type: preproc_def
      name: FPSCR
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c1,c0,0   '
    - item_type: preproc_def
      name: MVFR0
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c7,c0,0   '
    - item_type: preproc_def
      name: MVFR1
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c6,c0,0   '
    - item_type: preproc_def
      name: MVFR2
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c5,c0,0   '
    - item_type: preproc_def
      name: FPEXC
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c8,c0,0   '
    - item_type: preproc_def
      name: FPINST
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c9,c0,0   '
    - item_type: preproc_def
      name: FPINST2
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p10,7,c10,c0,0  '
    - item_type: preproc_def
      name: DBGDIDR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c0,0   '
    - item_type: preproc_def
      name: DBGDSCRINT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c1,0   '
    - item_type: preproc_def
      name: DBGDSCREXT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c2,2   '
    - item_type: preproc_def
      name: DBGDTRRXINT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c5,0   '
    - item_type: preproc_def
      name: DBGDTRTXINT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c5,0   '
    - item_type: preproc_def
      name: DBGVCR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c7,0   '
    - item_type: preproc_def
      name: DBGBVR0
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c0,4   '
    - item_type: preproc_def
      name: DBGBCR0
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c0,5   '
    - item_type: preproc_def
      name: DBGWVR0
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c0,6   '
    - item_type: preproc_def
      name: DBGWCR0
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c0,7   '
    - item_type: preproc_def
      name: DBGBVR1
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c1,4   '
    - item_type: preproc_def
      name: DBGBCR1
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c0,c1,5   '
    - item_type: preproc_def
      name: DBGOSLAR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1,c0,4   '
    - item_type: preproc_def
      name: DBGOSLSR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1,c1,4   '
    - item_type: preproc_def
      name: DBGOSDLR
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1,c3,4   '
    - item_type: preproc_def
      name: DBGPRCR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1,c4,4   '
    - item_type: preproc_def
      name: TEECR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,6,c0,c0,0   '
    - item_type: preproc_def
      name: DBGDRAR64
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1        '
    - item_type: preproc_def
      name: DBGDRAR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c1,c0,0   '
    - item_type: preproc_def
      name: TEEHBR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,6,c1,c0,0   '
    - item_type: preproc_def
      name: JOSCR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,7,c1,c0,0   '
    - item_type: preproc_def
      name: DBGDSAR64
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c2        '
    - item_type: preproc_def
      name: DBGDSAR
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,0,c2,c0,0   '
    - item_type: preproc_def
      name: JMCR
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p14,7,c2,c0,0   '
    - item_type: preproc_def
      name: MIDR
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c0,0   '
    - item_type: preproc_def
      name: CTR
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c0,1   '
    - item_type: preproc_def
      name: MPIDR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c0,5   '
    - item_type: preproc_def
      name: ID_PFR0
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,0   '
    - item_type: preproc_def
      name: ID_PFR1
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,1   '
    - item_type: preproc_def
      name: ID_PFR2
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c3,4   '
    - item_type: preproc_def
      name: ID_DFR0
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,2   '
    - item_type: preproc_def
      name: ID_DFR1
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c3,5   '
    - item_type: preproc_def
      name: ID_AFR0
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,3   '
    - item_type: preproc_def
      name: ID_MMFR0
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,4   '
    - item_type: preproc_def
      name: ID_MMFR1
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,5   '
    - item_type: preproc_def
      name: ID_MMFR2
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,6   '
    - item_type: preproc_def
      name: ID_MMFR3
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c1,7   '
    - item_type: preproc_def
      name: ID_MMFR4
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,6   '
    - item_type: preproc_def
      name: ID_MMFR5
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c3,6   '
    - item_type: preproc_def
      name: ID_ISAR0
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,0   '
    - item_type: preproc_def
      name: ID_ISAR1
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,1   '
    - item_type: preproc_def
      name: ID_ISAR2
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,2   '
    - item_type: preproc_def
      name: ID_ISAR3
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,3   '
    - item_type: preproc_def
      name: ID_ISAR4
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,4   '
    - item_type: preproc_def
      name: ID_ISAR5
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,5   '
    - item_type: preproc_def
      name: ID_ISAR6
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c0,c2,7   '
    - item_type: preproc_def
      name: CCSIDR
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,1,c0,c0,0   '
    - item_type: preproc_def
      name: CLIDR
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,1,c0,c0,1   '
    - item_type: preproc_def
      name: CSSELR
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,2,c0,c0,0   '
    - item_type: preproc_def
      name: VPIDR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c0,c0,0   '
    - item_type: preproc_def
      name: VMPIDR
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c0,c0,5   '
    - item_type: preproc_def
      name: SCTLR
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c1,c0,0   '
    - item_type: preproc_def
      name: ACTLR
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c1,c0,1   '
    - item_type: preproc_def
      name: CPACR
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c1,c0,2   '
    - item_type: preproc_def
      name: SCR
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c1,c1,0   '
    - item_type: preproc_def
      name: NSACR
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c1,c1,2   '
    - item_type: preproc_def
      name: HSCTLR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c1,c0,0   '
    - item_type: preproc_def
      name: HCR
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c1,c1,0   '
    - item_type: preproc_def
      name: HDCR
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c1,c1,1   '
    - item_type: preproc_def
      name: HCPTR
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c1,c1,2   '
    - item_type: preproc_def
      name: HSTR
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c1,c1,3   '
    - item_type: preproc_def
      name: TTBCR
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c2,c0,2   '
    - item_type: preproc_def
      name: TTBCR2
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c2,c0,3   '
    - item_type: preproc_def
      name: TTBR0
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c2        '
    - item_type: preproc_def
      name: TTBR1
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,1,c2        '
    - item_type: preproc_def
      name: HTTBR
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c2        '
    - item_type: preproc_def
      name: TTBR0_32
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c2,c0,0   '
    - item_type: preproc_def
      name: TTBR1_32
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c2,c0,1   '
    - item_type: preproc_def
      name: HTCR
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c2,c0,2   '
    - item_type: preproc_def
      name: VTCR
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c2,c1,2   '
    - item_type: preproc_def
      name: VTTBR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,6,c2        '
    - item_type: preproc_def
      name: DACR
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c3,c0,0   '
    - item_type: preproc_def
      name: ICC_PMR
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c4,c6,0   '
    - item_type: preproc_def
      name: DFSR
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c5,c0,0   '
    - item_type: preproc_def
      name: IFSR
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c5,c0,1   '
    - item_type: preproc_def
      name: ADFSR
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c5,c1,0   '
    - item_type: preproc_def
      name: AIFSR
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c5,c1,1   '
    - item_type: preproc_def
      name: HSR
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c5,c2,0   '
    - item_type: preproc_def
      name: DFAR
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c6,c0,0   '
    - item_type: preproc_def
      name: IFAR
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c6,c0,2   '
    - item_type: preproc_def
      name: HDFAR
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c6,c0,0   '
    - item_type: preproc_def
      name: HIFAR
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c6,c0,2   '
    - item_type: preproc_def
      name: HPFAR
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c6,c0,4   '
    - item_type: preproc_def
      name: PAR
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7        '
    - item_type: preproc_def
      name: ICIALLUIS
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c1,0   '
    - item_type: preproc_def
      name: BPIALLIS
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c1,6   '
    - item_type: preproc_def
      name: ICIALLU
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c5,0   '
    - item_type: preproc_def
      name: ICIMVAU
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c5,1   '
    - item_type: preproc_def
      name: BPIALL
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c5,6   '
    - item_type: preproc_def
      name: BPIMVA
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c5,7   '
    - item_type: preproc_def
      name: DCIMVAC
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c6,1   '
    - item_type: preproc_def
      name: DCISW
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c6,2   '
    - item_type: preproc_def
      name: ATS1CPR
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,0   '
    - item_type: preproc_def
      name: ATS1CPW
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,1   '
    - item_type: preproc_def
      name: ATS1CUR
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,2   '
    - item_type: preproc_def
      name: ATS1CUW
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,3   '
    - item_type: preproc_def
      name: ATS12NSOPR
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,4   '
    - item_type: preproc_def
      name: ATS12NSOPW
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,5   '
    - item_type: preproc_def
      name: ATS12NSOUR
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,6   '
    - item_type: preproc_def
      name: ATS12NSOUW
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c8,7   '
    - item_type: preproc_def
      name: DCCMVAC
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c10,1  '
    - item_type: preproc_def
      name: DCCSW
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c10,2  '
    - item_type: preproc_def
      name: DCCMVAU
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c11,1  '
    - item_type: preproc_def
      name: DCCIMVAC
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c14,1  '
    - item_type: preproc_def
      name: DCCISW
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c7,c14,2  '
    - item_type: preproc_def
      name: ATS1HR
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c7,c8,0   '
    - item_type: preproc_def
      name: ATS1HW
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c7,c8,1   '
    - item_type: preproc_def
      name: TLBIALLIS
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c3,0   '
    - item_type: preproc_def
      name: TLBIMVAIS
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c3,1   '
    - item_type: preproc_def
      name: TLBIASIDIS
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c3,2   '
    - item_type: preproc_def
      name: TLBIMVAAIS
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c3,3   '
    - item_type: preproc_def
      name: ITLBIALL
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c5,0   '
    - item_type: preproc_def
      name: ITLBIMVA
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c5,1   '
    - item_type: preproc_def
      name: ITLBIASID
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c5,2   '
    - item_type: preproc_def
      name: DTLBIALL
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c6,0   '
    - item_type: preproc_def
      name: DTLBIMVA
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c6,1   '
    - item_type: preproc_def
      name: DTLBIASID
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c6,2   '
    - item_type: preproc_def
      name: TLBIALL
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c7,0   '
    - item_type: preproc_def
      name: TLBIMVA
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c7,1   '
    - item_type: preproc_def
      name: TLBIASID
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c7,2   '
    - item_type: preproc_def
      name: TLBIMVAA
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c8,c7,3   '
    - item_type: preproc_def
      name: TLBIALLHIS
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c3,0   '
    - item_type: preproc_def
      name: TLBIMVAHIS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c3,1   '
    - item_type: preproc_def
      name: TLBIALLNSNHIS
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c3,4   '
    - item_type: preproc_def
      name: TLBIALLH
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c7,0   '
    - item_type: preproc_def
      name: TLBIMVAH
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c7,1   '
    - item_type: preproc_def
      name: TLBIALLNSNH
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c8,c7,4   '
    - item_type: preproc_def
      name: PMCR
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,0  '
    - item_type: preproc_def
      name: PMCNTENSET
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,1  '
    - item_type: preproc_def
      name: PMCNTENCLR
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,2  '
    - item_type: preproc_def
      name: PMOVSR
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,3  '
    - item_type: preproc_def
      name: PMSWINC
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,4  '
    - item_type: preproc_def
      name: PMSELR
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,5  '
    - item_type: preproc_def
      name: PMCEID0
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,6  '
    - item_type: preproc_def
      name: PMCEID1
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c12,7  '
    - item_type: preproc_def
      name: PMCCNTR
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c13,0  '
    - item_type: preproc_def
      name: PMXEVTYPER
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c13,1  '
    - item_type: preproc_def
      name: PMXEVCNTR
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c13,2  '
    - item_type: preproc_def
      name: PMUSERENR
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c14,0  '
    - item_type: preproc_def
      name: PMINTENSET
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c14,1  '
    - item_type: preproc_def
      name: PMINTENCLR
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c14,2  '
    - item_type: preproc_def
      name: PMOVSSET
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c9,c14,3  '
    - item_type: preproc_def
      name: MAIR0
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c10,c2,0  '
    - item_type: preproc_def
      name: MAIR1
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c10,c2,1  '
    - item_type: preproc_def
      name: HMAIR0
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c10,c2,0  '
    - item_type: preproc_def
      name: HMAIR1
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c10,c2,1  '
    - item_type: preproc_def
      name: AMAIR0
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c10,c3,0  '
    - item_type: preproc_def
      name: AMAIR1
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c10,c3,1  '
    - item_type: preproc_def
      name: ICC_SGI1R
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12       '
    - item_type: preproc_def
      name: ICC_ASGI1R
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,1,c12       '
    - item_type: preproc_def
      name: ICC_SGI0R
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,2,c12       '
    - item_type: preproc_def
      name: VBAR
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c0,0  '
    - item_type: preproc_def
      name: ICC_DIR
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c11,1 '
    - item_type: preproc_def
      name: HVBAR
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c0,0  '
    - item_type: preproc_def
      name: ICH_AP0R0
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP0Rx(0)
    - item_type: preproc_def
      name: ICH_AP0R1
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP0Rx(1)
    - item_type: preproc_def
      name: ICH_AP0R2
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP0Rx(2)
    - item_type: preproc_def
      name: ICH_AP0R3
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP0Rx(3)
    - item_type: preproc_def
      name: ICH_AP1R0
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP1Rx(0)
    - item_type: preproc_def
      name: ICH_AP1R1
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP1Rx(1)
    - item_type: preproc_def
      name: ICH_AP1R2
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP1Rx(2)
    - item_type: preproc_def
      name: ICH_AP1R3
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __AP1Rx(3)
    - item_type: preproc_def
      name: ICC_IAR1
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,0  '
    - item_type: preproc_def
      name: ICC_EOIR1
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,1  '
    - item_type: preproc_def
      name: ICC_BPR1
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,3  '
    - item_type: preproc_def
      name: ICC_CTLR
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,4  '
    - item_type: preproc_def
      name: ICC_SRE
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,5  '
    - item_type: preproc_def
      name: ICC_IGRPEN1
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c12,c12,7  '
    - item_type: preproc_def
      name: ICC_HSRE
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c9,5   '
    - item_type: preproc_def
      name: ICH_HCR
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,0  '
    - item_type: preproc_def
      name: ICH_VTR
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,1  '
    - item_type: preproc_def
      name: ICH_MISR
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,2  '
    - item_type: preproc_def
      name: ICH_EISR
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,3  '
    - item_type: preproc_def
      name: ICH_ELRSR
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,5  '
    - item_type: preproc_def
      name: ICH_VMCR
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c12,c11,7  '
    - item_type: preproc_def
      name: ICH_LR0
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(0)
    - item_type: preproc_def
      name: ICH_LR1
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(1)
    - item_type: preproc_def
      name: ICH_LR2
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(2)
    - item_type: preproc_def
      name: ICH_LR3
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(3)
    - item_type: preproc_def
      name: ICH_LR4
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(4)
    - item_type: preproc_def
      name: ICH_LR5
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(5)
    - item_type: preproc_def
      name: ICH_LR6
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(6)
    - item_type: preproc_def
      name: ICH_LR7
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR0(7)
    - item_type: preproc_def
      name: ICH_LR8
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(0)
    - item_type: preproc_def
      name: ICH_LR9
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(1)
    - item_type: preproc_def
      name: ICH_LR10
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(2)
    - item_type: preproc_def
      name: ICH_LR11
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(3)
    - item_type: preproc_def
      name: ICH_LR12
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(4)
    - item_type: preproc_def
      name: ICH_LR13
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(5)
    - item_type: preproc_def
      name: ICH_LR14
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(6)
    - item_type: preproc_def
      name: ICH_LR15
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LR8(7)
    - item_type: preproc_def
      name: ICH_LRC0
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(0)
    - item_type: preproc_def
      name: ICH_LRC1
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(1)
    - item_type: preproc_def
      name: ICH_LRC2
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(2)
    - item_type: preproc_def
      name: ICH_LRC3
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(3)
    - item_type: preproc_def
      name: ICH_LRC4
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(4)
    - item_type: preproc_def
      name: ICH_LRC5
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(5)
    - item_type: preproc_def
      name: ICH_LRC6
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(6)
    - item_type: preproc_def
      name: ICH_LRC7
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC0(7)
    - item_type: preproc_def
      name: ICH_LRC8
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(0)
    - item_type: preproc_def
      name: ICH_LRC9
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(1)
    - item_type: preproc_def
      name: ICH_LRC10
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(2)
    - item_type: preproc_def
      name: ICH_LRC11
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(3)
    - item_type: preproc_def
      name: ICH_LRC12
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(4)
    - item_type: preproc_def
      name: ICH_LRC13
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(5)
    - item_type: preproc_def
      name: ICH_LRC14
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(6)
    - item_type: preproc_def
      name: ICH_LRC15
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: __LRC8(7)
    - item_type: preproc_def
      name: FCSEIDR
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c13,c0,0  '
    - item_type: preproc_def
      name: CONTEXTIDR
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c13,c0,1  '
    - item_type: preproc_def
      name: TPIDRURW
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c13,c0,2  '
    - item_type: preproc_def
      name: TPIDRURO
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c13,c0,3  '
    - item_type: preproc_def
      name: TPIDRPRW
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c13,c0,4  '
    - item_type: preproc_def
      name: HTPIDR
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c13,c0,2  '
    - item_type: preproc_def
      name: CNTPCT
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14       '
    - item_type: preproc_def
      name: CNTFRQ
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c0,0  '
    - item_type: preproc_def
      name: CNTKCTL
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c1,0  '
    - item_type: preproc_def
      name: CNTP_TVAL
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c2,0  '
    - item_type: preproc_def
      name: CNTP_CTL
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c2,1  '
    - item_type: preproc_def
      name: CNTVCT
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,1,c14       '
    - item_type: preproc_def
      name: CNTP_CVAL
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,2,c14       '
    - item_type: preproc_def
      name: CNTV_CVAL
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,3,c14       '
    - item_type: preproc_def
      name: CNTVOFF
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c14       '
    - item_type: preproc_def
      name: CNTHCTL
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c14,c1,0  '
    - item_type: preproc_def
      name: CNTHP_TVAL
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c14,c2,0  '
    - item_type: preproc_def
      name: CNTHP_CTL
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,4,c14,c2,1  '
    - item_type: preproc_def
      name: CNTV_TVAL
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c3,0  '
    - item_type: preproc_def
      name: CNTV_CTL
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,0,c14,c3,1  '
    - item_type: preproc_def
      name: CNTHP_CVAL
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: 'p15,6,c14       '
    - item_type: preproc_def
      name: ACTLR_EL1
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ACTLR
    - item_type: preproc_def
      name: AFSR0_EL1
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ADFSR
    - item_type: preproc_def
      name: AFSR1_EL1
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: AIFSR
    - item_type: preproc_def
      name: CCSIDR_EL1
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CCSIDR
    - item_type: preproc_def
      name: CLIDR_EL1
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CLIDR
    - item_type: preproc_def
      name: CNTFRQ_EL0
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTFRQ
    - item_type: preproc_def
      name: CNTHCTL_EL2
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTHCTL
    - item_type: preproc_def
      name: CNTHP_CTL_EL2
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTHP_CTL
    - item_type: preproc_def
      name: CNTHP_CVAL_EL2
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTHP_CVAL
    - item_type: preproc_def
      name: CNTKCTL_EL1
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTKCTL
    - item_type: preproc_def
      name: CNTPCT_EL0
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTPCT
    - item_type: preproc_def
      name: CNTP_CTL_EL0
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTP_CTL
    - item_type: preproc_def
      name: CNTP_CVAL_EL0
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTP_CVAL
    - item_type: preproc_def
      name: CNTVCT_EL0
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTVCT
    - item_type: preproc_def
      name: CNTVOFF_EL2
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTVOFF
    - item_type: preproc_def
      name: CNTV_CTL_EL0
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTV_CTL
    - item_type: preproc_def
      name: CNTV_CVAL_EL0
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CNTV_CVAL
    - item_type: preproc_def
      name: CONTEXTIDR_EL1
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CONTEXTIDR
    - item_type: preproc_def
      name: CPACR_EL1
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CPACR
    - item_type: preproc_def
      name: CPTR_EL2
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HCPTR
    - item_type: preproc_def
      name: CSSELR_EL1
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CSSELR
    - item_type: preproc_def
      name: CTR_EL0
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: CTR
    - item_type: preproc_def
      name: DACR32_EL2
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: DACR
    - item_type: preproc_def
      name: ESR_EL1
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: DFSR
    - item_type: preproc_def
      name: ESR_EL2
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HSR
    - item_type: preproc_def
      name: HCR_EL2
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HCR
    - item_type: preproc_def
      name: HPFAR_EL2
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HPFAR
    - item_type: preproc_def
      name: HSTR_EL2
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HSTR
    - item_type: preproc_def
      name: ICC_BPR1_EL1
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_BPR1
    - item_type: preproc_def
      name: ICC_CTLR_EL1
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_CTLR
    - item_type: preproc_def
      name: ICC_DIR_EL1
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_DIR
    - item_type: preproc_def
      name: ICC_EOIR1_EL1
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_EOIR1
    - item_type: preproc_def
      name: ICC_IGRPEN1_EL1
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_IGRPEN1
    - item_type: preproc_def
      name: ICC_PMR_EL1
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_PMR
    - item_type: preproc_def
      name: ICC_SGI1R_EL1
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_SGI1R
    - item_type: preproc_def
      name: ICC_SRE_EL1
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_SRE
    - item_type: preproc_def
      name: ICC_SRE_EL2
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_HSRE
    - item_type: preproc_def
      name: ICH_AP0R0_EL2
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP0R0
    - item_type: preproc_def
      name: ICH_AP0R1_EL2
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP0R1
    - item_type: preproc_def
      name: ICH_AP0R2_EL2
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP0R2
    - item_type: preproc_def
      name: ICH_AP0R3_EL2
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP0R3
    - item_type: preproc_def
      name: ICH_AP1R0_EL2
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP1R0
    - item_type: preproc_def
      name: ICH_AP1R1_EL2
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP1R1
    - item_type: preproc_def
      name: ICH_AP1R2_EL2
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP1R2
    - item_type: preproc_def
      name: ICH_AP1R3_EL2
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_AP1R3
    - item_type: preproc_def
      name: ICH_EISR_EL2
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_EISR
    - item_type: preproc_def
      name: ICH_ELRSR_EL2
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_ELRSR
    - item_type: preproc_def
      name: ICH_HCR_EL2
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_HCR
    - item_type: preproc_def
      name: ICC_IAR1_EL1
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICC_IAR1
    - item_type: preproc_def
      name: ICH_LR0_EL2
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR0
    - item_type: preproc_def
      name: ICH_LR1_EL2
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR1
    - item_type: preproc_def
      name: ICH_LR2_EL2
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR2
    - item_type: preproc_def
      name: ICH_LR3_EL2
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR3
    - item_type: preproc_def
      name: ICH_LR4_EL2
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR4
    - item_type: preproc_def
      name: ICH_LR5_EL2
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR5
    - item_type: preproc_def
      name: ICH_LR6_EL2
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR6
    - item_type: preproc_def
      name: ICH_LR7_EL2
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR7
    - item_type: preproc_def
      name: ICH_LR8_EL2
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR8
    - item_type: preproc_def
      name: ICH_LR9_EL2
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR9
    - item_type: preproc_def
      name: ICH_LR10_EL2
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR10
    - item_type: preproc_def
      name: ICH_LR11_EL2
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR11
    - item_type: preproc_def
      name: ICH_LR12_EL2
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR12
    - item_type: preproc_def
      name: ICH_LR13_EL2
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR13
    - item_type: preproc_def
      name: ICH_LR14_EL2
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR14
    - item_type: preproc_def
      name: ICH_LR15_EL2
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LR15
    - item_type: preproc_def
      name: ICH_LRC0_EL2
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC0
    - item_type: preproc_def
      name: ICH_LRC1_EL2
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC1
    - item_type: preproc_def
      name: ICH_LRC2_EL2
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC2
    - item_type: preproc_def
      name: ICH_LRC3_EL2
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC3
    - item_type: preproc_def
      name: ICH_LRC4_EL2
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC4
    - item_type: preproc_def
      name: ICH_LRC5_EL2
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC5
    - item_type: preproc_def
      name: ICH_LRC6_EL2
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC6
    - item_type: preproc_def
      name: ICH_LRC7_EL2
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC7
    - item_type: preproc_def
      name: ICH_LRC8_EL2
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC8
    - item_type: preproc_def
      name: ICH_LRC9_EL2
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC9
    - item_type: preproc_def
      name: ICH_LRC10_EL2
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC10
    - item_type: preproc_def
      name: ICH_LRC11_EL2
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC11
    - item_type: preproc_def
      name: ICH_LRC12_EL2
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC12
    - item_type: preproc_def
      name: ICH_LRC13_EL2
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC13
    - item_type: preproc_def
      name: ICH_LRC14_EL2
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC14
    - item_type: preproc_def
      name: ICH_LRC15_EL2
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_LRC15
    - item_type: preproc_def
      name: ICH_MISR_EL2
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_MISR
    - item_type: preproc_def
      name: ICH_VMCR_EL2
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_VMCR
    - item_type: preproc_def
      name: ICH_VTR_EL2
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ICH_VTR
    - item_type: preproc_def
      name: ID_AFR0_EL1
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_AFR0
    - item_type: preproc_def
      name: ID_DFR0_EL1
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_DFR0
    - item_type: preproc_def
      name: ID_DFR1_EL1
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_DFR1
    - item_type: preproc_def
      name: ID_ISAR0_EL1
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR0
    - item_type: preproc_def
      name: ID_ISAR1_EL1
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR1
    - item_type: preproc_def
      name: ID_ISAR2_EL1
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR2
    - item_type: preproc_def
      name: ID_ISAR3_EL1
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR3
    - item_type: preproc_def
      name: ID_ISAR4_EL1
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR4
    - item_type: preproc_def
      name: ID_ISAR5_EL1
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR5
    - item_type: preproc_def
      name: ID_ISAR6_EL1
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_ISAR6
    - item_type: preproc_def
      name: ID_MMFR0_EL1
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR0
    - item_type: preproc_def
      name: ID_MMFR1_EL1
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR1
    - item_type: preproc_def
      name: ID_MMFR2_EL1
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR2
    - item_type: preproc_def
      name: ID_MMFR3_EL1
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR3
    - item_type: preproc_def
      name: ID_MMFR4_EL1
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR4
    - item_type: preproc_def
      name: ID_MMFR5_EL1
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_MMFR5
    - item_type: preproc_def
      name: ID_PFR0_EL1
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_PFR0
    - item_type: preproc_def
      name: ID_PFR1_EL1
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_PFR1
    - item_type: preproc_def
      name: ID_PFR2_EL1
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: ID_PFR2
    - item_type: preproc_def
      name: IFSR32_EL2
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: IFSR
    - item_type: preproc_def
      name: MDCR_EL2
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HDCR
    - item_type: preproc_def
      name: MIDR_EL1
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: MIDR
    - item_type: preproc_def
      name: MPIDR_EL1
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: MPIDR
    - item_type: preproc_def
      name: PAR_EL1
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: PAR
    - item_type: preproc_def
      name: SCTLR_EL1
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: SCTLR
    - item_type: preproc_def
      name: SCTLR_EL2
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HSCTLR
    - item_type: preproc_def
      name: TCR_EL1
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TTBCR
    - item_type: preproc_def
      name: TEECR32_EL1
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TEECR
    - item_type: preproc_def
      name: TEEHBR32_EL1
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TEEHBR
    - item_type: preproc_def
      name: TPIDRRO_EL0
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TPIDRURO
    - item_type: preproc_def
      name: TPIDR_EL0
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TPIDRURW
    - item_type: preproc_def
      name: TPIDR_EL1
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TPIDRPRW
    - item_type: preproc_def
      name: TPIDR_EL2
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HTPIDR
    - item_type: preproc_def
      name: TTBR0_EL1
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TTBR0
    - item_type: preproc_def
      name: TTBR0_EL2
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HTTBR
    - item_type: preproc_def
      name: TTBR1_EL1
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: TTBR1
    - item_type: preproc_def
      name: VBAR_EL1
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: VBAR
    - item_type: preproc_def
      name: VBAR_EL2
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: HVBAR
    - item_type: preproc_def
      name: VMPIDR_EL2
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: VMPIDR
    - item_type: preproc_def
      name: VPIDR_EL2
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: VPIDR
    - item_type: preproc_def
      name: VTCR_EL2
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: VTCR
    - item_type: preproc_def
      name: VTTBR_EL2
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: VTTBR
    - item_type: preproc_def
      name: MVFR0_EL1
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: MVFR0
    - item_type: preproc_def
      name: MVFR1_EL1
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: MVFR1
    - item_type: preproc_def
      name: MVFR2_EL1
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/xen/xen/arch/arm/include/asm/cpregs.h
      type_or_value: MVFR2
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_physical_id
  source_file: /src/xen/xen/arch/arm/include/asm/smp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __do_div_asm
  - do_div
  source_file: /src/xen/xen/arch/arm/include/asm/div64.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __xh
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/div64.h
      type_or_value: '"r0"'
    - item_type: preproc_def
      name: __xl
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/div64.h
      type_or_value: '"r1"'
    - item_type: preproc_def
      name: __xl
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/div64.h
      type_or_value: '"r0"'
    - item_type: preproc_def
      name: __xh
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/div64.h
      type_or_value: '"r1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_mem_access_emulate_check
  - p2m_mem_access_sanity_check
  - p2m_mem_access_check
  - p2m_mem_access_check_and_get_page
  source_file: /src/xen/xen/arch/arm/include/asm/mem_access.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIFO_MAX_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ULCON
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x00)
    - item_type: preproc_def
      name: UCON
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x04)
    - item_type: preproc_def
      name: UFCON
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x08)
    - item_type: preproc_def
      name: UMCON
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x0c)
    - item_type: preproc_def
      name: UTRSTAT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x10)
    - item_type: preproc_def
      name: UERSTAT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x14)
    - item_type: preproc_def
      name: UFSTAT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x18)
    - item_type: preproc_def
      name: UMSTAT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x1c)
    - item_type: preproc_def
      name: UTXH
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x20)
    - item_type: preproc_def
      name: URXH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x24)
    - item_type: preproc_def
      name: UBRDIV
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x28)
    - item_type: preproc_def
      name: UFRACVAL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x2c)
    - item_type: preproc_def
      name: UINTP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x30)
    - item_type: preproc_def
      name: UINTS
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x34)
    - item_type: preproc_def
      name: UINTM
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x38)
    - item_type: preproc_def
      name: UCON_RX_IRQ
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: UCON_TX_IRQ
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: UCON_RX_TIMEOUT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: UCON_RX_IRQ_LEVEL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0 << 8)
    - item_type: preproc_def
      name: UCON_TX_IRQ_LEVEL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0 << 9)
    - item_type: preproc_def
      name: ULCON_STOPB_SHIFT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ULCON_PARITY_SHIFT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: '3'
    - item_type: preproc_def
      name: UFCON_FIFO_TX_RESET
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: UFCON_FIFO_RX_RESET
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: UFCON_FIFO_RESET
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (UFCON_FIFO_TX_RESET | UFCON_FIFO_RX_RESET)
    - item_type: preproc_def
      name: UFCON_FIFO_EN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: UFCON_FIFO_TX_TRIGGER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0x6 << 8)
    - item_type: preproc_def
      name: UMCON_INT_EN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: UERSTAT_OVERRUN
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: UERSTAT_PARITY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: UERSTAT_FRAME
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: UERSTAT_BREAK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: UFSTAT_TX_FULL
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: UFSTAT_TX_COUNT_SHIFT
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (16)
    - item_type: preproc_def
      name: UFSTAT_TX_COUNT_MASK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0xff << UFSTAT_TX_COUNT_SHIFT)
    - item_type: preproc_def
      name: UFSTAT_RX_FULL
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: UFSTAT_RX_COUNT_SHIFT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0)
    - item_type: preproc_def
      name: UFSTAT_RX_COUNT_MASK
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0xff << UFSTAT_RX_COUNT_SHIFT)
    - item_type: preproc_def
      name: UTRSTAT_TXFE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: UTRSTAT_TXE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: URXH_DATA_MASK
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (0xff)
    - item_type: preproc_def
      name: UINTM_MODEM
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: UINTM_TXD
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: UINTM_ERROR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: UINTM_RXD
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: UINTM_ALLI
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/exynos4210-uart.h
      type_or_value: (UINTM_MODEM | UINTM_TXD | UINTM_ERROR | UINTM_RXD)
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_dt_passthrough_p2m_type
  - p2m_to_mask
  - p2m_is_ram
  - p2m_is_foreign
  - p2m_is_any_ram
  - arch_acquire_resource_check
  - p2m_write_lock
  - p2m_read_lock
  - p2m_read_unlock
  - p2m_is_locked
  - p2m_is_write_locked
  - __must_check::guest_physmap_add_page
  - guest_physmap_add_pages
  - get_page_from_gfn
  - get_page_and_type
  - p2m_get_hostp2m
  - p2m_vm_event_sanity_check
  - gfn_next_boundary
  - vcpu_has_cache_enabled
  source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: paddr_bits
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: PADDR_BITS
    - item_type: preproc_def
      name: MAX_VMID_8_BIT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: (1UL << 8)
    - item_type: preproc_def
      name: MAX_VMID_16_BIT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: (1UL << 16)
    - item_type: preproc_def
      name: INVALID_VMID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: MAX_VMID
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: max_vmid
    - item_type: preproc_def
      name: MAX_VMID
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: MAX_VMID_8_BIT
    - item_type: preproc_def
      name: P2M_RAM_TYPES
      pos:
        line_end: 150
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_ram_rw) |        \\\n                       p2m_to_mask(p2m_ram_ro))"
    - item_type: preproc_def
      name: P2M_GRANT_TYPES
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_grant_map_rw) |  \\\n                         p2m_to_mask(p2m_grant_map_ro))"
    - item_type: preproc_def
      name: P2M_FOREIGN_TYPES
      pos:
        line_end: 158
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: "(p2m_to_mask(p2m_map_foreign_rw) | \\\n                           p2m_to_mask(p2m_map_foreign_ro))"
    - item_type: preproc_def
      name: P2M_ALLOC
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: '(1u<<0)   '
    - item_type: preproc_def
      name: P2M_UNSHARE
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type_or_value: '(1u<<1)   '
    structs:
    - fields:
      - name: lock
        type: rwlock_t
      - name: pages
        type: struct page_list_head
      - name: '*root'
        type: struct page_info
      - name: vmid
        type: uint16_t
      - name: vttbr
        type: uint64_t
      - name: max_mapped_gfn
        type: gfn_t
      - name: lowest_mapped_gfn
        type: gfn_t
      - name: clean_pte
        type: bool
      - name: need_flush
        type: bool
      - name: stats
        type: "struct {\n        /* Number of mappings at each p2m tree level */\n
          \       unsigned long mappings[4];\n        /* Number of times we have shattered
          a mapping\n         * at each p2m tree level. */\n        unsigned long
          shattered[4];\n    }"
      - name: access_required
        type: bool
      - name: mem_access_enabled
        type: bool
      - name: default_access
        type: p2m_access_t
      - name: mem_access_settings
        type: struct radix_tree_root
      - name: '*domain'
        type: struct domain
      - name: last_vcpu_ran[NR_CPUS]
        type: uint8_t
      item_type: struct
      name: p2m_domain
      pos:
        line_end: 113
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
    typedefs:
    - item_type: typedef
      name: p2m_query_t
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/xen/xen/arch/arm/include/asm/p2m.h
      type: unsigned int
    union: []
- function_names:
  - CLIDR_CTYPEn_SHIFT
  - MIDR_RESIVION
  - MIDR_PARTNUM
  - MIDR_ARCHITECTURE
  - MIDR_VARIANT
  - MIDR_IMPLEMENTOR
  - MIDR_CPU_MODEL
  - MIDR_IS_CPU_MODEL_RANGE
  - MPIDR_LEVEL_SHIFT
  - MPIDR_AFFINITY_LEVEL
  - AFFINITY_MASK
  - TCR_T0SZ
  - TCR_PS
  - VTCR_T0SZ
  - VTCR_SL0
  - VTCR_PS
  - HCPTR_CP
  - HSTR_T
  - cpu_logical_map
  - dump_execution_state
  - cpu_relax
  - cpu_to_core
  - cpu_to_socket
  - SYNCHRONIZE_SERROR
  - vcpu_hcr_clear_flags
  - vcpu_hcr_set_flags
  source_file: /src/xen/xen/arch/arm/include/asm/processor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CTR_L1IP_MASK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: CTR_L1IP_SHIFT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '14'
    - item_type: preproc_def
      name: CTR_DMINLINE_SHIFT
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CTR_IMINLINE_SHIFT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CTR_IMINLINE_MASK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: CTR_ERG_SHIFT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '20'
    - item_type: preproc_def
      name: CTR_CWG_SHIFT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '24'
    - item_type: preproc_def
      name: CTR_CWG_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '15'
    - item_type: preproc_def
      name: CTR_IDC_SHIFT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '28'
    - item_type: preproc_def
      name: CTR_DIC_SHIFT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '29'
    - item_type: preproc_def
      name: CCSIDR_LINESIZE_MASK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x7, UL)
    - item_type: preproc_def
      name: CCSIDR_NUMSETS_SHIFT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '13'
    - item_type: preproc_def
      name: CCSIDR_NUMSETS_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x3fff, UL)
    - item_type: preproc_def
      name: CCSIDR_NUMSETS_SHIFT_FEAT_CCIDX
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CCSIDR_NUMSETS_MASK_FEAT_CCIDX
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0xffffff, UL)
    - item_type: preproc_def
      name: CSSELR_LEVEL_SHIFT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CLIDR_CTYPEn_MASK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x7, UL)
    - item_type: preproc_def
      name: CLIDR_CTYPEn_LEVELS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '7'
    - item_type: preproc_def
      name: ICACHE_POLICY_VPIPT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ICACHE_POLICY_AIVIVT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ICACHE_POLICY_VIPT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ICACHE_POLICY_PIPT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MIDR_REVISION_MASK
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: MIDR_PARTNUM_SHIFT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MIDR_PARTNUM_MASK
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0xfff << MIDR_PARTNUM_SHIFT)
    - item_type: preproc_def
      name: MIDR_ARCHITECTURE_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MIDR_ARCHITECTURE_MASK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0xf << MIDR_ARCHITECTURE_SHIFT)
    - item_type: preproc_def
      name: MIDR_VARIANT_SHIFT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MIDR_VARIANT_MASK
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0xf << MIDR_VARIANT_SHIFT)
    - item_type: preproc_def
      name: MIDR_IMPLEMENTOR_SHIFT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MIDR_IMPLEMENTOR_MASK
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0xffU << MIDR_IMPLEMENTOR_SHIFT)
    - item_type: preproc_def
      name: MIDR_CPU_MODEL_MASK
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (MIDR_IMPLEMENTOR_MASK | MIDR_PARTNUM_MASK | MIDR_ARCHITECTURE_MASK)
    - item_type: preproc_def
      name: ARM_CPU_IMP_ARM
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x41'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A12
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xC0D'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A17
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xC0E'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A15
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xC0F'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A53
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD03'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A35
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD04'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A55
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD05'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A57
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD07'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A72
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD08'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A73
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD09'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A75
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD0A'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A76
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD0B'
    - item_type: preproc_def
      name: ARM_CPU_PART_NEOVERSE_N1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD0C'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A77
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD0D'
    - item_type: preproc_def
      name: ARM_CPU_PART_NEOVERSE_V1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD40'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A78
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD41'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_X1
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD44'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A710
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD47'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_X2
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD48'
    - item_type: preproc_def
      name: ARM_CPU_PART_NEOVERSE_N2
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD49'
    - item_type: preproc_def
      name: ARM_CPU_PART_CORTEX_A78C
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0xD4B'
    - item_type: preproc_def
      name: MIDR_CORTEX_A12
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A12)
    - item_type: preproc_def
      name: MIDR_CORTEX_A17
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A17)
    - item_type: preproc_def
      name: MIDR_CORTEX_A15
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A15)
    - item_type: preproc_def
      name: MIDR_CORTEX_A53
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
    - item_type: preproc_def
      name: MIDR_CORTEX_A35
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A35)
    - item_type: preproc_def
      name: MIDR_CORTEX_A55
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A55)
    - item_type: preproc_def
      name: MIDR_CORTEX_A57
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)
    - item_type: preproc_def
      name: MIDR_CORTEX_A72
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
    - item_type: preproc_def
      name: MIDR_CORTEX_A73
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A73)
    - item_type: preproc_def
      name: MIDR_CORTEX_A75
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A75)
    - item_type: preproc_def
      name: MIDR_CORTEX_A76
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A76)
    - item_type: preproc_def
      name: MIDR_NEOVERSE_N1
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N1)
    - item_type: preproc_def
      name: MIDR_CORTEX_A77
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A77)
    - item_type: preproc_def
      name: MIDR_NEOVERSE_V1
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V1)
    - item_type: preproc_def
      name: MIDR_CORTEX_A78
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)
    - item_type: preproc_def
      name: MIDR_CORTEX_X1
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)
    - item_type: preproc_def
      name: MIDR_CORTEX_A710
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710)
    - item_type: preproc_def
      name: MIDR_CORTEX_X2
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)
    - item_type: preproc_def
      name: MIDR_NEOVERSE_N2
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)
    - item_type: preproc_def
      name: MIDR_CORTEX_A78C
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78C)
    - item_type: preproc_def
      name: _MPIDR_UP
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (30)
    - item_type: preproc_def
      name: MPIDR_UP
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL) << _MPIDR_UP)
    - item_type: preproc_def
      name: _MPIDR_SMP
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (31)
    - item_type: preproc_def
      name: MPIDR_SMP
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL) << _MPIDR_SMP)
    - item_type: preproc_def
      name: MPIDR_AFF0_SHIFT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0)
    - item_type: preproc_def
      name: MPIDR_AFF0_MASK
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0xff,UL) << MPIDR_AFF0_SHIFT)
    - item_type: preproc_def
      name: MPIDR_HWID_MASK
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0xff00ffffff,UL)
    - item_type: preproc_def
      name: MPIDR_HWID_MASK
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0xffffff,U)
    - item_type: preproc_def
      name: MPIDR_INVALID
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (~MPIDR_HWID_MASK)
    - item_type: preproc_def
      name: MPIDR_LEVEL_BITS
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (8)
    - item_type: preproc_def
      name: MPIDR_LEVEL_BITS_SHIFT
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MPIDR_LEVEL_MASK
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: ((1 << MPIDR_LEVEL_BITS) - 1)
    - item_type: preproc_def
      name: TTBCR_EAE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x80000000,U)
    - item_type: preproc_def
      name: TTBCR_N_MASK
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x07,U)
    - item_type: preproc_def
      name: TTBCR_N_16KB
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x00,U)
    - item_type: preproc_def
      name: TTBCR_N_8KB
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x01,U)
    - item_type: preproc_def
      name: TTBCR_N_4KB
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x02,U)
    - item_type: preproc_def
      name: TTBCR_N_2KB
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x03,U)
    - item_type: preproc_def
      name: TTBCR_N_1KB
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: _AC(0x04,U)
    - item_type: preproc_def
      name: TTBCR_PD0
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,U)<<4)
    - item_type: preproc_def
      name: TTBCR_PD1
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,U)<<5)
    - item_type: preproc_def
      name: SCTLR_A32_EL1_V
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(13, UL)
    - item_type: preproc_def
      name: SCTLR_A32_ELx_TE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(30, UL)
    - item_type: preproc_def
      name: SCTLR_A32_ELx_FI
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(21, UL)
    - item_type: preproc_def
      name: SCTLR_A64_ELx_SA
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(3, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_EE
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(25, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_WXN
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_I
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(12, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_C
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(2, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_A
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(1, UL)
    - item_type: preproc_def
      name: SCTLR_Axx_ELx_M
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: HSCTLR_RES1
      pos:
        line_end: 195
        line_start: 191
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(BIT( 3, UL) | BIT( 4, UL) | BIT( 5, UL) |\\\n                         BIT(
        6, UL) | BIT(11, UL) | BIT(16, UL) |\\\n                         BIT(18, UL)
        | BIT(22, UL) | BIT(23, UL) |\\\n                         BIT(28, UL) | BIT(29,
        UL))"
    - item_type: preproc_def
      name: HSCTLR_RES0
      pos:
        line_end: 200
        line_start: 196
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(BIT(7, UL)  | BIT(8, UL)  | BIT(9, UL)  | BIT(10, UL) |\\\n
        \                        BIT(13, UL) | BIT(14, UL) | BIT(15, UL) | BIT(17,
        UL) |\\\n                         BIT(20, UL) | BIT(24, UL) | BIT(26, UL)
        | BIT(27, UL) |\\\n                         BIT(31, UL))"
    - item_type: preproc_def
      name: HSCTLR_SET
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (HSCTLR_RES1    | SCTLR_Axx_ELx_A   | SCTLR_Axx_ELx_I)
    - item_type: preproc_def
      name: HSCTLR_CLEAR
      pos:
        line_end: 209
        line_start: 205
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(HSCTLR_RES0        | SCTLR_Axx_ELx_M   |\\\n                         SCTLR_Axx_ELx_C
        \   | SCTLR_Axx_ELx_WXN |\\\n                         SCTLR_A32_ELx_FI   |
        SCTLR_Axx_ELx_EE  |\\\n                         SCTLR_A32_ELx_TE)"
    - item_type: preproc_def
      name: SCTLR_EL2_RES1
      pos:
        line_end: 219
        line_start: 216
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(BIT( 4, UL) | BIT( 5, UL) | BIT(11, UL) |\\\n                         BIT(16,
        UL) | BIT(18, UL) | BIT(22, UL) |\\\n                         BIT(23, UL)
        | BIT(28, UL) | BIT(29, UL))"
    - item_type: preproc_def
      name: SCTLR_EL2_RES0
      pos:
        line_end: 226
        line_start: 220
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(BIT( 6, UL) | BIT( 7, UL) | BIT( 8, UL) |\\\n                         BIT(
        9, UL) | BIT(10, UL) | BIT(13, UL) |\\\n                         BIT(14, UL)
        | BIT(15, UL) | BIT(17, UL) |\\\n                         BIT(20, UL) | BIT(21,
        UL) | BIT(24, UL) |\\\n                         BIT(26, UL) | BIT(27, UL)
        | BIT(30, UL) |\\\n                         BIT(31, UL) | (0xffffffffULL <<
        32))"
    - item_type: preproc_def
      name: SCTLR_EL2_SET
      pos:
        line_end: 230
        line_start: 228
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(SCTLR_EL2_RES1     | SCTLR_A64_ELx_SA  |\\\n                         SCTLR_Axx_ELx_I)"
    - item_type: preproc_def
      name: SCTLR_EL2_CLEAR
      pos:
        line_end: 235
        line_start: 232
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: "(SCTLR_EL2_RES0     | SCTLR_Axx_ELx_M   |\\\n                         SCTLR_Axx_ELx_A
        \   | SCTLR_Axx_ELx_C   |\\\n                         SCTLR_Axx_ELx_WXN  |
        SCTLR_Axx_ELx_EE)"
    - item_type: preproc_def
      name: HCR_RW
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<31) '
    - item_type: preproc_def
      name: HCR_TGE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<27) '
    - item_type: preproc_def
      name: HCR_TVM
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<26) '
    - item_type: preproc_def
      name: HCR_TTLB
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<25) '
    - item_type: preproc_def
      name: HCR_TPU
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<24) '
    - item_type: preproc_def
      name: HCR_TPC
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<23) '
    - item_type: preproc_def
      name: HCR_TSW
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<22) '
    - item_type: preproc_def
      name: HCR_TAC
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<21) '
    - item_type: preproc_def
      name: HCR_TIDCP
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<20) '
    - item_type: preproc_def
      name: HCR_TSC
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<19) '
    - item_type: preproc_def
      name: HCR_TID3
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<18) '
    - item_type: preproc_def
      name: HCR_TID2
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<17) '
    - item_type: preproc_def
      name: HCR_TID1
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<16) '
    - item_type: preproc_def
      name: HCR_TID0
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<15) '
    - item_type: preproc_def
      name: HCR_TWE
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<14) '
    - item_type: preproc_def
      name: HCR_TWI
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<13) '
    - item_type: preproc_def
      name: HCR_DC
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<12) '
    - item_type: preproc_def
      name: HCR_BSU_MASK
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(3,UL)<<10) '
    - item_type: preproc_def
      name: HCR_BSU_NONE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0,UL)<<10)
    - item_type: preproc_def
      name: HCR_BSU_INNER
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL)<<10)
    - item_type: preproc_def
      name: HCR_BSU_OUTER
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(2,UL)<<10)
    - item_type: preproc_def
      name: HCR_BSU_FULL
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(3,UL)<<10)
    - item_type: preproc_def
      name: HCR_FB
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<9) '
    - item_type: preproc_def
      name: HCR_VA
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<8) '
    - item_type: preproc_def
      name: HCR_VI
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<7) '
    - item_type: preproc_def
      name: HCR_VF
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<6) '
    - item_type: preproc_def
      name: HCR_AMO
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<5) '
    - item_type: preproc_def
      name: HCR_IMO
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<4) '
    - item_type: preproc_def
      name: HCR_FMO
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<3) '
    - item_type: preproc_def
      name: HCR_PTW
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<2) '
    - item_type: preproc_def
      name: HCR_SWIO
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<1) '
    - item_type: preproc_def
      name: HCR_VM
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,UL)<<0) '
    - item_type: preproc_def
      name: TCR_T0SZ_SHIFT
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0)
    - item_type: preproc_def
      name: TCR_T1SZ_SHIFT
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (16)
    - item_type: preproc_def
      name: TCR_SZ_MASK
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3f,UL))
    - item_type: preproc_def
      name: TCR_EPD0
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<7)
    - item_type: preproc_def
      name: TCR_EPD1
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<23)
    - item_type: preproc_def
      name: TCR_IRGN0_NC
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<8)
    - item_type: preproc_def
      name: TCR_IRGN0_WBWA
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<8)
    - item_type: preproc_def
      name: TCR_IRGN0_WT
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<8)
    - item_type: preproc_def
      name: TCR_IRGN0_WB
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<8)
    - item_type: preproc_def
      name: TCR_ORGN0_NC
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<10)
    - item_type: preproc_def
      name: TCR_ORGN0_WBWA
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<10)
    - item_type: preproc_def
      name: TCR_ORGN0_WT
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<10)
    - item_type: preproc_def
      name: TCR_ORGN0_WB
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<10)
    - item_type: preproc_def
      name: TCR_SH0_NS
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<12)
    - item_type: preproc_def
      name: TCR_SH0_OS
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<12)
    - item_type: preproc_def
      name: TCR_SH0_IS
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<12)
    - item_type: preproc_def
      name: TCR_TG0_SHIFT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (14)
    - item_type: preproc_def
      name: TCR_TG0_MASK
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<TCR_TG0_SHIFT)
    - item_type: preproc_def
      name: TCR_TG0_4K
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<TCR_TG0_SHIFT)
    - item_type: preproc_def
      name: TCR_TG0_64K
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<TCR_TG0_SHIFT)
    - item_type: preproc_def
      name: TCR_TG0_16K
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<TCR_TG0_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_TG1_SHIFT
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (30)
    - item_type: preproc_def
      name: TCR_EL1_TG1_MASK
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<TCR_EL1_TG1_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_TG1_16K
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<TCR_EL1_TG1_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_TG1_4K
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<TCR_EL1_TG1_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_TG1_64K
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<TCR_EL1_TG1_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_SHIFT
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (32)
    - item_type: preproc_def
      name: TCR_EL1_IPS_MASK
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x7,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_32_BIT
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_36_BIT
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_40_BIT
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_42_BIT
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_44_BIT
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x4,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_48_BIT
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x5,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_52_BIT
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x6,ULL)<<TCR_EL1_IPS_SHIFT)
    - item_type: preproc_def
      name: TCR_EL1_IPS_32_BIT_VAL
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (32)
    - item_type: preproc_def
      name: TCR_EL1_IPS_36_BIT_VAL
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (36)
    - item_type: preproc_def
      name: TCR_EL1_IPS_40_BIT_VAL
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (40)
    - item_type: preproc_def
      name: TCR_EL1_IPS_42_BIT_VAL
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (42)
    - item_type: preproc_def
      name: TCR_EL1_IPS_44_BIT_VAL
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (44)
    - item_type: preproc_def
      name: TCR_EL1_IPS_48_BIT_VAL
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (48)
    - item_type: preproc_def
      name: TCR_EL1_IPS_52_BIT_VAL
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (52)
    - item_type: preproc_def
      name: TCR_EL1_IPS_MIN_VAL
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (25)
    - item_type: preproc_def
      name: TCR_EL1_TBI0
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,ULL)<<37)
    - item_type: preproc_def
      name: TCR_EL1_TBI1
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,ULL)<<38)
    - item_type: preproc_def
      name: TCR_TBI
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<20)
    - item_type: preproc_def
      name: TCR_RES1
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL)<<31|_AC(1,UL)<<23)
    - item_type: preproc_def
      name: TCR_RES1
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL)<<31)
    - item_type: preproc_def
      name: VTCR_IRGN0_NC
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<8)
    - item_type: preproc_def
      name: VTCR_IRGN0_WBWA
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<8)
    - item_type: preproc_def
      name: VTCR_IRGN0_WT
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<8)
    - item_type: preproc_def
      name: VTCR_IRGN0_WB
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<8)
    - item_type: preproc_def
      name: VTCR_ORGN0_NC
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<10)
    - item_type: preproc_def
      name: VTCR_ORGN0_WBWA
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<10)
    - item_type: preproc_def
      name: VTCR_ORGN0_WT
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<10)
    - item_type: preproc_def
      name: VTCR_ORGN0_WB
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<10)
    - item_type: preproc_def
      name: VTCR_SH0_NS
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<12)
    - item_type: preproc_def
      name: VTCR_SH0_OS
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<12)
    - item_type: preproc_def
      name: VTCR_SH0_IS
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,UL)<<12)
    - item_type: preproc_def
      name: VTCR_TG0_4K
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x0,UL)<<14)
    - item_type: preproc_def
      name: VTCR_TG0_64K
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<14)
    - item_type: preproc_def
      name: VTCR_TG0_16K
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x2,UL)<<14)
    - item_type: preproc_def
      name: VTCR_VS
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x1,UL)<<19)
    - item_type: preproc_def
      name: VTCR_RES1
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL)<<31)
    - item_type: preproc_def
      name: HCPTR_TAM
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: ((_AC(1,U)<<30))
    - item_type: preproc_def
      name: HCPTR_TTA
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '((_AC(1,U)<<20))        '
    - item_type: preproc_def
      name: HCPTR_CP_MASK
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: ((_AC(1,U)<<14)-1)
    - item_type: preproc_def
      name: HSTR_TTEE
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<16)          '
    - item_type: preproc_def
      name: HDCR_TDRA
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<11)          '
    - item_type: preproc_def
      name: HDCR_TDOSA
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<10)          '
    - item_type: preproc_def
      name: HDCR_TDA
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<9)           '
    - item_type: preproc_def
      name: HDCR_TDE
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<8)           '
    - item_type: preproc_def
      name: HDCR_TPM
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<6)           '
    - item_type: preproc_def
      name: HDCR_TPMCR
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<5)           '
    - item_type: preproc_def
      name: HSR_EC_SHIFT
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '26'
    - item_type: preproc_def
      name: HSR_EC_UNKNOWN
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: HSR_EC_WFI_WFE
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: HSR_EC_CP15_32
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: HSR_EC_CP15_64
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: HSR_EC_CP14_32
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x05        '
    - item_type: preproc_def
      name: HSR_EC_CP14_DBG
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x06        '
    - item_type: preproc_def
      name: HSR_EC_CP
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x07        '
    - item_type: preproc_def
      name: HSR_EC_CP10
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: HSR_EC_JAZELLE
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: HSR_EC_BXJ
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: HSR_EC_CP14_64
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: HSR_EC_SVC32
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: HSR_EC_HVC32
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: HSR_EC_SMC32
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: HSR_EC_SVC64
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x15'
    - item_type: preproc_def
      name: HSR_EC_HVC64
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x16'
    - item_type: preproc_def
      name: HSR_EC_SMC64
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x17'
    - item_type: preproc_def
      name: HSR_EC_SYSREG
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x18'
    - item_type: preproc_def
      name: HSR_EC_SVE
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x19'
    - item_type: preproc_def
      name: HSR_EC_INSTR_ABORT_LOWER_EL
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: HSR_EC_INSTR_ABORT_CURR_EL
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: HSR_EC_DATA_ABORT_LOWER_EL
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x24'
    - item_type: preproc_def
      name: HSR_EC_DATA_ABORT_CURR_EL
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x25'
    - item_type: preproc_def
      name: HSR_EC_BRK
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x3c'
    - item_type: preproc_def
      name: FSR_LPAE
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,UL)<<9)
    - item_type: preproc_def
      name: FSRS_FS_DEBUG
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0,UL)<<10|_AC(0x2,UL)<<0)
    - item_type: preproc_def
      name: FSRL_STATUS_DEBUG
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x22,UL)<<0)
    - item_type: preproc_def
      name: MM64_VMID_8_BITS_SUPPORT
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: MM64_VMID_16_BITS_SUPPORT
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PAR_F
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(1,U)<<0)
    - item_type: preproc_def
      name: PAR_FSC_SHIFT
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (1)
    - item_type: preproc_def
      name: PAR_FSC_MASK
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3f,U)<<PAR_FSC_SHIFT)
    - item_type: preproc_def
      name: PAR_STAGE21
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<8)     '
    - item_type: preproc_def
      name: PAR_STAGE2
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<9)     '
    - item_type: preproc_def
      name: PAR_MAIR_SHIFT
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '56                       '
    - item_type: preproc_def
      name: PAR_MAIR_MASK
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0xffLL<<PAR_MAIR_SHIFT)
    - item_type: preproc_def
      name: PAR_NS
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(_AC(1,U)<<9)                   '
    - item_type: preproc_def
      name: PAR_SH_SHIFT
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '7                        '
    - item_type: preproc_def
      name: PAR_SH_MASK
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(3,U)<<PAR_SH_SHIFT)
    - item_type: preproc_def
      name: FSC_TYPE_MASK
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x3,U)<<4)
    - item_type: preproc_def
      name: FSC_TYPE_FAULT
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x00,U)<<4)
    - item_type: preproc_def
      name: FSC_TYPE_ABT
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x01,U)<<4)
    - item_type: preproc_def
      name: FSC_TYPE_OTH
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x02,U)<<4)
    - item_type: preproc_def
      name: FSC_TYPE_IMPL
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x03,U)<<4)
    - item_type: preproc_def
      name: FSC_FLT_TRANS
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0x04)
    - item_type: preproc_def
      name: FSC_FLT_ACCESS
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0x08)
    - item_type: preproc_def
      name: FSC_FLT_PERM
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (0x0c)
    - item_type: preproc_def
      name: FSC_SEA
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x10) '
    - item_type: preproc_def
      name: FSC_SPE
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x18) '
    - item_type: preproc_def
      name: FSC_APE
      pos:
        line_end: 512
        line_start: 511
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x11) '
    - item_type: preproc_def
      name: FSC_SEATT
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x14) '
    - item_type: preproc_def
      name: FSC_SPETT
      pos:
        line_end: 514
        line_start: 513
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x1c) '
    - item_type: preproc_def
      name: FSC_AF
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x21) '
    - item_type: preproc_def
      name: FSC_DE
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x22) '
    - item_type: preproc_def
      name: FSC_LKD
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x34) '
    - item_type: preproc_def
      name: FSC_CPR
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(0x3a) '
    - item_type: preproc_def
      name: FSC_LL_MASK
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: (_AC(0x03,U)<<0)
    - item_type: preproc_def
      name: HPFAR_MASK
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: GENMASK(39, 4)
    - item_type: preproc_def
      name: HPFAR_MASK
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: GENMASK(31, 4)
    - item_type: preproc_def
      name: CNTHCTL_EL2_EL1PCTEN
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<0) '
    - item_type: preproc_def
      name: CNTHCTL_EL2_EL1PCEN
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<1) '
    - item_type: preproc_def
      name: CNTKCTL_EL1_EL0PCTEN
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<0) '
    - item_type: preproc_def
      name: CNTKCTL_EL1_EL0VCTEN
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<1) '
    - item_type: preproc_def
      name: CNTKCTL_EL1_EL0VTEN
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<8) '
    - item_type: preproc_def
      name: CNTKCTL_EL1_EL0PTEN
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1u<<9) '
    - item_type: preproc_def
      name: CNTx_CTL_ENABLE
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1UL<<0)  '
    - item_type: preproc_def
      name: CNTx_CTL_MASK
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1UL<<1)  '
    - item_type: preproc_def
      name: CNTx_CTL_PENDING
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '(1UL<<2)  '
    - item_type: preproc_def
      name: CNTFRQ_MASK
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: GENMASK(31, 0)
    - item_type: preproc_def
      name: VECTOR32_RST
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VECTOR32_UND
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VECTOR32_SVC
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '8'
    - item_type: preproc_def
      name: VECTOR32_PABT
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '12'
    - item_type: preproc_def
      name: VECTOR32_DABT
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '16'
    - item_type: preproc_def
      name: VECTOR64_CURRENT_SP0_BASE
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: VECTOR64_CURRENT_SPx_BASE
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: VECTOR64_LOWER64_BASE
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: VECTOR64_LOWER32_BASE
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x600'
    - item_type: preproc_def
      name: VECTOR64_SYNC_OFFSET
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: VECTOR64_IRQ_OFFSET
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x080'
    - item_type: preproc_def
      name: VECTOR64_FIQ_OFFSET
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: VECTOR64_ERROR_OFFSET
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/xen/xen/arch/arm/include/asm/processor.h
      type_or_value: '0x180'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINCR1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x0)
    - item_type: preproc_def
      name: LINIER
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x4)
    - item_type: preproc_def
      name: LINSR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x8)
    - item_type: preproc_def
      name: UARTCR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x10)
    - item_type: preproc_def
      name: UARTSR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x14)
    - item_type: preproc_def
      name: LINFBRR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x24)
    - item_type: preproc_def
      name: LINIBRR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x28)
    - item_type: preproc_def
      name: BDRL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x38)
    - item_type: preproc_def
      name: BDRM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x3C)
    - item_type: preproc_def
      name: UARTPTO
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (0x50)
    - item_type: preproc_def
      name: LINCR1_INIT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: LINCR1_MME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(4, U)
    - item_type: preproc_def
      name: LINCR1_BF
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(7, U)
    - item_type: preproc_def
      name: LINSR_LINS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: GENMASK(15, 12)
    - item_type: preproc_def
      name: LINSR_LINS_INIT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(12, U)
    - item_type: preproc_def
      name: LINIER_DRIE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(2, U)
    - item_type: preproc_def
      name: LINIER_DTIE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: UARTCR_UART
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(0, U)
    - item_type: preproc_def
      name: UARTCR_WL0
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: UARTCR_PC0
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(3, U)
    - item_type: preproc_def
      name: UARTCR_TXEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(4, U)
    - item_type: preproc_def
      name: UARTCR_RXEN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(5, U)
    - item_type: preproc_def
      name: UARTCR_PC1
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(6, U)
    - item_type: preproc_def
      name: UARTCR_TFBM
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(8, U)
    - item_type: preproc_def
      name: UARTCR_RFBM
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(9, U)
    - item_type: preproc_def
      name: UARTCR_RDFLRFC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: GENMASK(12, 10)
    - item_type: preproc_def
      name: UARTCR_TDFLTFC
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: GENMASK(15, 13)
    - item_type: preproc_def
      name: UARTCR_ROSE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(23, U)
    - item_type: preproc_def
      name: UARTCR_OSR_SHIFT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: (24)
    - item_type: preproc_def
      name: UARTCR_OSR
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: GENMASK(27, UARTCR_OSR_SHIFT)
    - item_type: preproc_def
      name: UARTSR_DTFTFF
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(1, U)
    - item_type: preproc_def
      name: UARTSR_DRFRFE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/linflex-uart.h
      type_or_value: BIT(2, U)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: L1DESC_INVALID
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (0)
    - item_type: preproc_def
      name: L1DESC_PAGE_TABLE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (1)
    - item_type: preproc_def
      name: L1DESC_SECTION
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (2)
    - item_type: preproc_def
      name: L1DESC_SECTION_PXN
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (3)
    - item_type: preproc_def
      name: L1DESC_SECTION_SHIFT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (20)
    - item_type: preproc_def
      name: L1DESC_SUPERSECTION_SHIFT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (24)
    - item_type: preproc_def
      name: L1DESC_SUPERSECTION_EXT_BASE1_SHIFT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (32)
    - item_type: preproc_def
      name: L1DESC_SUPERSECTION_EXT_BASE2_SHIFT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (36)
    - item_type: preproc_def
      name: L2DESC_INVALID
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (0)
    - item_type: preproc_def
      name: L2DESC_SMALL_PAGE_SHIFT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (12)
    - item_type: preproc_def
      name: L2DESC_LARGE_PAGE_SHIFT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
      type_or_value: (16)
    structs:
    - fields:
      - name: pxn
        type: bool
      - name: sec
        type: bool
      - name: b
        type: bool
      - name: c
        type: bool
      - name: xn
        type: bool
      - name: dom
        type: unsigned int
      - name: impl
        type: bool
      - name: ap
        type: unsigned int
      - name: tex
        type: unsigned int
      - name: ro
        type: bool
      - name: s
        type: bool
      - name: ng
        type: bool
      - name: supersec
        type: bool
      - name: ns
        type: bool
      - name: base
        type: unsigned int
      item_type: struct
      name: __packed
      pos:
        line_end: 45
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
    - fields:
      - name: pxn
        type: bool
      - name: sec
        type: bool
      - name: b
        type: bool
      - name: c
        type: bool
      - name: xn
        type: bool
      - name: extbase2
        type: unsigned int
      - name: impl
        type: bool
      - name: ap
        type: unsigned int
      - name: tex
        type: unsigned int
      - name: ro
        type: bool
      - name: s
        type: bool
      - name: ng
        type: bool
      - name: supersec
        type: bool
      - name: ns
        type: bool
      - name: extbase1
        type: unsigned int
      - name: base
        type: unsigned int
      item_type: struct
      name: __packed
      pos:
        line_end: 68
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
    - fields:
      - name: xn
        type: bool
      - name: page
        type: bool
      - name: b
        type: bool
      - name: c
        type: bool
      - name: ap
        type: unsigned int
      - name: tex
        type: unsigned int
      - name: ro
        type: bool
      - name: s
        type: bool
      - name: ng
        type: bool
      - name: base
        type: unsigned int
      item_type: struct
      name: __packed
      pos:
        line_end: 85
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
    - fields:
      - name: lpage
        type: bool
      - name: page
        type: bool
      - name: b
        type: bool
      - name: c
        type: bool
      - name: ap
        type: unsigned int
      - name: sbz
        type: unsigned int
      - name: ro
        type: bool
      - name: s
        type: bool
      - name: ng
        type: bool
      - name: tex
        type: unsigned int
      - name: xn
        type: bool
      - name: base
        type: unsigned int
      item_type: struct
      name: __packed
      pos:
        line_end: 104
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
    - fields:
      - name: dt
        type: unsigned int
      - name: pad1
        type: unsigned int
      - name: base
        type: unsigned int
      item_type: struct
      name: __packed
      pos:
        line_end: 114
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
    typedefs: []
    union:
    - fields:
      - name: bits
        type: uint32_t
      - name: walk
        type: short_desc_walk_t
      - name: sec
        type: short_desc_l1_sec_t
      - name: supersec
        type: short_desc_l1_supersec_t
      - name: pg
        type: short_desc_l2_page_t
      - name: lpg
        type: short_desc_l2_lpage_t
      item_type: union
      name: short_desc_t
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/short-desc.h
- function_names:
  - is_32bit_domain
  - is_64bit_domain
  - is_32bit_domain
  - is_64bit_domain
  - domain_use_host_layout
  - vaffinity_to_vcpuid
  - vcpuid_to_vaffinity
  - alloc_vcpu_guest_context
  - free_vcpu_guest_context
  - arch_vcpu_block
  - arch_vm_assist_valid_mask
  - has_vpci
  - update_guest_memory_policy
  source_file: /src/xen/xen/arch/arm/include/asm/domain.h
  types:
    enum:
    - enumerators:
      - name: DOMAIN_32BIT
      - name: DOMAIN_64BIT
      item_type: enum
      name: domain_type
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    preproc_defs:
    - item_type: preproc_def
      name: VUART_BUF_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
      type_or_value: '128'
    structs:
    - fields:
      - name: params[HVM_NR_PARAMS]
        type: uint64_t
      item_type: struct
      name: hvm_domain
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: '*v'
        type: struct vcpu
      - name: irq
        type: int
      - name: timer
        type: struct timer
      - name: ctl
        type: register_t
      - name: cval
        type: uint64_t
      item_type: struct
      name: vtimer
      pos:
        line_end: 51
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: lock
        type: spinlock_t
      - name: p2m_freelist
        type: struct page_list_head
      - name: p2m_total_pages
        type: unsigned long
      item_type: struct
      name: paging_domain
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: p2m
        type: struct p2m_domain
      - name: hvm
        type: struct hvm_domain
      - name: vmmio
        type: struct vmmio
      - name: rel_priv
        type: unsigned int
      - name: virt_timer_base
        type: "struct {\n        uint64_t offset;\n        s_time_t nanoseconds;\n
          \   }"
      - name: vgic
        type: struct vgic_dist
      - name: evtchn_irq
        type: unsigned int
      - name: monitor
        type: "struct {\n        uint8_t privileged_call_enabled : 1;\n    }"
      item_type: struct
      name: arch_domain
      pos:
        line_end: 128
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: '*buf'
        type: char
      - name: idx
        type: int
      - name: '*info'
        type: struct vuart_info
      - name: lock
        type: spinlock_t
      item_type: struct
      name: vuart
      pos:
        line_end: 100
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: saved_context
        type: "struct {\n#ifdef CONFIG_ARM_32\n        register_t r4;\n        register_t
          r5;\n        register_t r6;\n        register_t r7;\n        register_t
          r8;\n        register_t r9;\n        register_t sl;\n#else\n        register_t
          x19;\n        register_t x20;\n        register_t x21;\n        register_t
          x22;\n        register_t x23;\n        register_t x24;\n        register_t
          x25;\n        register_t x26;\n        register_t x27;\n        register_t
          x28;\n#endif\n        register_t fp;\n        register_t sp;\n        register_t
          pc;\n    }"
      - name: '*stack'
        type: void
      - name: '*cpu_info'
        type: struct cpu_info
      - name: ifsr
        type: uint32_t
      - name: afsr0
        type: uint32_t
      - name: vbar
        type: register_t
      - name: ttbcr
        type: register_t
      - name: ttbr0
        type: uint64_t
      - name: dacr
        type: uint32_t
      - name: par
        type: uint64_t
      - name: sctlr
        type: register_t
      - name: actlr
        type: register_t
      - name: cpacr
        type: uint32_t
      - name: contextidr
        type: uint32_t
      - name: tpidr_el0
        type: register_t
      - name: tpidr_el1
        type: register_t
      - name: tpidrro_el0
        type: register_t
      - name: cptr_el2
        type: register_t
      - name: hcr_el2
        type: register_t
      - name: mdcr_el2
        type: register_t
      - name: vfp
        type: struct vfp_state
      - name: csselr
        type: uint32_t
      - name: vmpidr
        type: register_t
      - name: gic
        type: union gic_state_data
      - name: lr_mask
        type: uint64_t
      - name: vgic
        type: struct vgic_cpu
      - name: cntkctl
        type: register_t
      - name: phys_timer
        type: struct vtimer
      - name: virt_timer
        type: struct vtimer
      - name: vtimer_initialized
        type: bool
      - name: need_flush_to_ram
        type: bool
      item_type: struct
      name: arch_vcpu
      pos:
        line_end: 249
        line_start: 130
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields:
      - name: dabt_instr
        type: struct instr_details
      item_type: struct
      name: arch_vcpu_io
      pos:
        line_end: 311
        line_start: 309
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    - fields: []
      item_type: struct
      name: guest_memory_policy
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/xen/xen/arch/arm/include/asm/domain.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/insn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARCH_PATCH_INSN_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/insn.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_current
  - get_cpu_current
  - get_cpu_info
  - guest_cpu_user_regs
  - switch_stack_and_jump
  - reset_stack_and_jump
  - smp_processor_id
  - set_processor_id
  - get_per_cpu_offset
  source_file: /src/xen/xen/arch/arm/include/asm/current.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPUINFO_WORKAROUND_2_FLAG_SHIFT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/current.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CPUINFO_WORKAROUND_2_FLAG
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/current.h
      type_or_value: (_AC(1, U) << CPUINFO_WORKAROUND_2_FLAG_SHIFT)
    - item_type: preproc_def
      name: current
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/current.h
      type_or_value: (this_cpu(curr_vcpu))
    structs:
    - fields:
      - name: guest_cpu_user_regs
        type: struct cpu_user_regs
      - name: elr
        type: unsigned long
      - name: flags
        type: uint32_t
      item_type: struct
      name: cpu_info
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/current.h
    typedefs: []
    union: []
- function_names:
  - PLATFORM_START
  source_file: /src/xen/xen/arch/arm/include/asm/platform.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLATFORM_QUIRK_GIC_64K_STRIDE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/platform.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: PLATFORM_END
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/platform.h
      type_or_value: '};'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*const *compatible'
        type: char
      - name: (*init)(void)
        type: int
      - name: (*init_time)(void)
        type: int
      - name: (*specific_mapping)(struct domain *d)
        type: int
      - name: (*reset)(void)
        type: void
      - name: (*poweroff)(void)
        type: void
      - name: (*smc)(struct cpu_user_regs *regs)
        type: bool
      - name: (*quirks)(void)
        type: uint32_t
      - name: '*blacklist_dev'
        type: struct dt_device_match
      - name: dma_bitsize
        type: unsigned int
      item_type: struct
      name: platform_desc
      pos:
        line_end: 42
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/platform.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SCIF_SCSMR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x00)    '
    - item_type: preproc_def
      name: SCIF_SCBRR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x04)    '
    - item_type: preproc_def
      name: SCIF_SCSCR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x08)    '
    - item_type: preproc_def
      name: SCIF_SCFTDR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x0C)    '
    - item_type: preproc_def
      name: SCIF_SCFSR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x10)    '
    - item_type: preproc_def
      name: SCIF_SCFRDR
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x14)    '
    - item_type: preproc_def
      name: SCIF_SCFCR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x18)    '
    - item_type: preproc_def
      name: SCIF_SCFDR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x1C)    '
    - item_type: preproc_def
      name: SCIF_SCSPTR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x20)    '
    - item_type: preproc_def
      name: SCIF_SCLSR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x24)    '
    - item_type: preproc_def
      name: SCIF_DL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x30)    '
    - item_type: preproc_def
      name: SCIF_CKS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x34)    '
    - item_type: preproc_def
      name: SCSCR_TIE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 7)    '
    - item_type: preproc_def
      name: SCSCR_RIE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 6)    '
    - item_type: preproc_def
      name: SCSCR_TE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 5)    '
    - item_type: preproc_def
      name: SCSCR_RE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 4)    '
    - item_type: preproc_def
      name: SCSCR_REIE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 3)    '
    - item_type: preproc_def
      name: SCSCR_TOIE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 2)    '
    - item_type: preproc_def
      name: SCSCR_CKE1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 1)    '
    - item_type: preproc_def
      name: SCSCR_CKE0
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)    '
    - item_type: preproc_def
      name: SCFSR_ER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 7)    '
    - item_type: preproc_def
      name: SCFSR_TEND
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 6)    '
    - item_type: preproc_def
      name: SCFSR_TDFE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 5)    '
    - item_type: preproc_def
      name: SCFSR_BRK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 4)    '
    - item_type: preproc_def
      name: SCFSR_FER
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 3)    '
    - item_type: preproc_def
      name: SCFSR_PER
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 2)    '
    - item_type: preproc_def
      name: SCFSR_RDF
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 1)    '
    - item_type: preproc_def
      name: SCFSR_DR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)    '
    - item_type: preproc_def
      name: SCLSR_TO
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 2)    '
    - item_type: preproc_def
      name: SCLSR_ORER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)    '
    - item_type: preproc_def
      name: SCFCR_RTRG1
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 7)    '
    - item_type: preproc_def
      name: SCFCR_RTRG0
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 6)    '
    - item_type: preproc_def
      name: SCFCR_TTRG1
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 5)    '
    - item_type: preproc_def
      name: SCFCR_TTRG0
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 4)    '
    - item_type: preproc_def
      name: SCFCR_MCE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 3)    '
    - item_type: preproc_def
      name: SCFCR_TFRST
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 2)    '
    - item_type: preproc_def
      name: SCFCR_RFRST
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 1)    '
    - item_type: preproc_def
      name: SCFCR_LOOP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)    '
    - item_type: preproc_def
      name: SCFCR_RTRG00
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (0)
    - item_type: preproc_def
      name: SCFCR_RTRG01
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_RTRG0)
    - item_type: preproc_def
      name: SCFCR_RTRG10
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_RTRG1)
    - item_type: preproc_def
      name: SCFCR_RTRG11
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_RTRG1 | SCFCR_RTRG0)
    - item_type: preproc_def
      name: SCFCR_TTRG00
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (0)
    - item_type: preproc_def
      name: SCFCR_TTRG01
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_TTRG0)
    - item_type: preproc_def
      name: SCFCR_TTRG10
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_TTRG1)
    - item_type: preproc_def
      name: SCFCR_TTRG11
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: (SCFCR_TTRG1 | SCFCR_TTRG0)
    - item_type: preproc_def
      name: SCIFA_SCASMR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x00)    '
    - item_type: preproc_def
      name: SCIFA_SCABRR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x04)    '
    - item_type: preproc_def
      name: SCIFA_SCASCR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x08)    '
    - item_type: preproc_def
      name: SCIFA_SCATDSR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x0C)    '
    - item_type: preproc_def
      name: SCIFA_SCAFER
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x10)    '
    - item_type: preproc_def
      name: SCIFA_SCASSR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x14)    '
    - item_type: preproc_def
      name: SCIFA_SCAFCR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x18)    '
    - item_type: preproc_def
      name: SCIFA_SCAFDR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x1C)    '
    - item_type: preproc_def
      name: SCIFA_SCAFTDR
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x20)    '
    - item_type: preproc_def
      name: SCIFA_SCAFRDR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x24)    '
    - item_type: preproc_def
      name: SCIFA_SCAPCR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x30)    '
    - item_type: preproc_def
      name: SCIFA_SCAPDR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(0x34)    '
    - item_type: preproc_def
      name: SCASCR_ERIE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 10)    '
    - item_type: preproc_def
      name: SCASCR_BRIE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 9)     '
    - item_type: preproc_def
      name: SCASCR_DRIE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 8)     '
    - item_type: preproc_def
      name: SCASCR_TIE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 7)     '
    - item_type: preproc_def
      name: SCASCR_RIE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 6)     '
    - item_type: preproc_def
      name: SCASCR_TE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 5)     '
    - item_type: preproc_def
      name: SCASCR_RE
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 4)     '
    - item_type: preproc_def
      name: SCASCR_CKE0
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)     '
    - item_type: preproc_def
      name: SCASSR_ORER
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 9)    '
    - item_type: preproc_def
      name: SCASSR_TSF
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 8)    '
    - item_type: preproc_def
      name: SCASSR_ER
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 7)    '
    - item_type: preproc_def
      name: SCASSR_TEND
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 6)    '
    - item_type: preproc_def
      name: SCASSR_TDFE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 5)    '
    - item_type: preproc_def
      name: SCASSR_BRK
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 4)    '
    - item_type: preproc_def
      name: SCASSR_FER
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 3)    '
    - item_type: preproc_def
      name: SCASSR_PER
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 2)    '
    - item_type: preproc_def
      name: SCASSR_RDF
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 1)    '
    - item_type: preproc_def
      name: SCASSR_DR
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/scif-uart.h
      type_or_value: '(1 << 0)    '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
  types:
    enum:
    - enumerators:
      - name: INSTR_ERROR
      - name: INSTR_CACHE
      - name: INSTR_LDR_STR_POSTINDEXING
      - name: INSTR_VALID
      item_type: enum
      name: instr_decode_state
      pos:
        line_end: 38
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    - enumerators:
      - name: IO_ABORT
      - name: IO_RETRY
      - name: IO_UNHANDLED
      - name: IO_HANDLED
      item_type: enum
      name: io_state
      pos:
        line_end: 57
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IO_HANDLER
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
      type_or_value: '16'
    structs:
    - fields:
      - name: dabt
        type: struct hsr_dabt
      - name: dabt_instr
        type: "struct instr_details {\n        unsigned long rn:5;\n        signed
          int imm9:9;\n        enum instr_decode_state state;\n    }"
      - name: gpa
        type: paddr_t
      item_type: struct
      name: mmio_info_t
      pos:
        line_end: 49
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    - fields:
      - name: rn
        type: unsigned long
      - name: imm9
        type: signed int
      - name: state
        type: enum instr_decode_state
      item_type: struct
      name: instr_details
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    - fields:
      - name: read
        type: mmio_read_t
      - name: write
        type: mmio_write_t
      item_type: struct
      name: mmio_handler_ops
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    - fields:
      - name: addr
        type: paddr_t
      - name: size
        type: paddr_t
      - name: '*ops'
        type: struct mmio_handler_ops
      - name: '*priv'
        type: void
      item_type: struct
      name: mmio_handler
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    - fields:
      - name: num_entries
        type: unsigned int
      - name: max_num_entries
        type: unsigned int
      - name: lock
        type: rwlock_t
      - name: '*handlers'
        type: struct mmio_handler
      item_type: struct
      name: vmmio
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
    typedefs:
    - item_type: typedef
      name: "(*mmio_read_t)(struct vcpu *v, mmio_info_t *info,\n                           register_t
        *r, void *priv)"
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
      type: int
    - item_type: typedef
      name: "(*mmio_write_t)(struct vcpu *v, mmio_info_t *info,\n                            register_t
        r, void *priv)"
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/mmio.h
      type: int
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/domain_build.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: gic_interrupt_t[3]
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/domain_build.h
      type: __be32
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/vtimer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_WORKAROUND_HELPER
  - get_ssbd_state
  - cpu_require_ssbd_mitigation
  - cpu_require_ssbd_mitigation
  - get_ssbd_state
  source_file: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
  types:
    enum:
    - enumerators:
      - name: ARM_SSBD_UNKNOWN
      - name: ARM_SSBD_FORCE_DISABLE
      - name: ARM_SSBD_RUNTIME
      - name: ARM_SSBD_MITIGATED
      - name: ARM_SSBD_FORCE_ENABLE
      item_type: enum
      name: ssbd_state
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/cpuerrata.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/elf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: r0
        type: unsigned long
      - name: r1
        type: unsigned long
      - name: r2
        type: unsigned long
      - name: r3
        type: unsigned long
      - name: r4
        type: unsigned long
      - name: r5
        type: unsigned long
      - name: r6
        type: unsigned long
      - name: r7
        type: unsigned long
      - name: r8
        type: unsigned long
      - name: r9
        type: unsigned long
      - name: r10
        type: unsigned long
      - name: r11
        type: unsigned long
      - name: r12
        type: unsigned long
      - name: sp
        type: unsigned long
      - name: lr
        type: unsigned long
      - name: pc
        type: unsigned long
      item_type: struct
      name: ELF_Gregset
      pos:
        line_end: 20
        line_start: 3
        source_file: /src/xen/xen/arch/arm/include/asm/elf.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/iommu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*priv'
        type: void
      item_type: struct
      name: arch_iommu
      pos:
        line_end: 20
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/iommu.h
    typedefs: []
    union: []
- function_names:
  - handle_ioserv
  - try_fwd_ioserv
  - handle_pio
  - msix_write_completion
  source_file: /src/xen/xen/arch/arm/include/asm/ioreq.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOREQ_STATUS_HANDLED
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/ioreq.h
      type_or_value: IO_HANDLED
    - item_type: preproc_def
      name: IOREQ_STATUS_UNHANDLED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/ioreq.h
      type_or_value: IO_UNHANDLED
    - item_type: preproc_def
      name: IOREQ_STATUS_RETRY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/ioreq.h
      type_or_value: IO_RETRY
    structs: []
    typedefs: []
    union: []
- function_names:
  - PSCI_0_2_FN32
  - PSCI_0_2_FN64
  - PSCI_VERSION_MAJOR
  - PSCI_VERSION_MINOR
  - PSCI_VERSION
  source_file: /src/xen/xen/arch/arm/include/asm/psci.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PSCI_SUCCESS
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PSCI_NOT_SUPPORTED
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: PSCI_INVALID_PARAMETERS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: PSCI_DENIED
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: PSCI_ALREADY_ON
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-4'
    - item_type: preproc_def
      name: PSCI_ON_PENDING
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-5'
    - item_type: preproc_def
      name: PSCI_INTERNAL_FAILURE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-6'
    - item_type: preproc_def
      name: PSCI_NOT_PRESENT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-7'
    - item_type: preproc_def
      name: PSCI_DISABLED
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-8'
    - item_type: preproc_def
      name: PSCI_INVALID_ADDRESS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '-9'
    - item_type: preproc_def
      name: PSCI_FNUM_MIN_VALUE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: _AC(0,U)
    - item_type: preproc_def
      name: PSCI_FNUM_MAX_VALUE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: _AC(0x1f,U)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_PSCI_VERSION
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(0)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_CPU_SUSPEND
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(1)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_CPU_OFF
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(2)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_CPU_ON
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(3)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_AFFINITY_INFO
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(4)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_MIGRATE_INFO_TYPE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(6)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_SYSTEM_OFF
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(8)
    - item_type: preproc_def
      name: PSCI_0_2_FN32_SYSTEM_RESET
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(9)
    - item_type: preproc_def
      name: PSCI_1_0_FN32_PSCI_FEATURES
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN32(10)
    - item_type: preproc_def
      name: PSCI_0_2_FN64_CPU_SUSPEND
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN64(1)
    - item_type: preproc_def
      name: PSCI_0_2_FN64_CPU_ON
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN64(3)
    - item_type: preproc_def
      name: PSCI_0_2_FN64_AFFINITY_INFO
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: PSCI_0_2_FN64(4)
    - item_type: preproc_def
      name: PSCI_0_2_AFFINITY_LEVEL_ON
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PSCI_0_2_AFFINITY_LEVEL_OFF
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PSCI_0_2_AFFINITY_LEVEL_ON_PENDING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PSCI_0_2_TOS_UP_MIGRATE_CAPABLE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PSCI_0_2_TOS_UP_NOT_MIGRATE_CAPABLE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PSCI_0_2_TOS_MP_OR_NOT_PRESENT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PSCI_0_2_POWER_STATE_ID_MASK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: PSCI_0_2_POWER_STATE_ID_SHIFT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PSCI_0_2_POWER_STATE_TYPE_SHIFT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PSCI_0_2_POWER_STATE_TYPE_MASK
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: (0x1 << PSCI_0_2_POWER_STATE_TYPE_SHIFT)
    - item_type: preproc_def
      name: PSCI_VERSION_MAJOR_SHIFT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PSCI_VERSION_MINOR_MASK
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: ((1U << PSCI_VERSION_MAJOR_SHIFT) - 1)
    - item_type: preproc_def
      name: PSCI_VERSION_MAJOR_MASK
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/psci.h
      type_or_value: ~PSCI_VERSION_MINOR_MASK
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIvaddr
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: PRIx32
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: '"08lx"'
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: (~0ULL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: '"016llx"'
    - item_type: preproc_def
      name: PRIregister
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: '"08x"'
    - item_type: preproc_def
      name: PRIvaddr
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: PRIx64
    - item_type: preproc_def
      name: INVALID_PADDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: PRIpaddr
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: '"016lx"'
    - item_type: preproc_def
      name: PRIregister
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type_or_value: '"016lx"'
    structs: []
    typedefs:
    - item_type: typedef
      name: vaddr_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u32
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: unsigned long
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u64
    - item_type: typedef
      name: register_t
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u32
    - item_type: typedef
      name: vaddr_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u64
    - item_type: typedef
      name: paddr_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u64
    - item_type: typedef
      name: register_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/types.h
      type: u64
    union: []
- function_names:
  - gnttab_clear_flags
  - gnttab_mark_dirty
  - gnttab_host_mapping_get_page_type
  - gnttab_release_host_mappings
  - gnttab_dom0_frames
  - gnttab_set_frame_gfn
  - gnttab_get_frame_gfn
  - gnttab_shared_page
  - gnttab_status_page
  - gnttab_shared_gfn
  - gnttab_status_gfn
  - gnttab_need_iommu_mapping
  source_file: /src/xen/xen/arch/arm/include/asm/grant_table.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INITIAL_NR_GRANT_FRAMES
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/grant_table.h
      type_or_value: 1U
    - item_type: preproc_def
      name: GNTTAB_MAX_VERSION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/grant_table.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/guest_walk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: R_UART_CR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UART_CR_RX_RST
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: UART_CR_TX_RST
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: UART_CR_RX_ENABLE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: UART_CR_RX_DISABLE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: UART_CR_TX_ENABLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: UART_CR_TX_DISABLE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: R_UART_MR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: UART_MR_NO_PARITY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: R_UART_IER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: R_UART_IDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: R_UART_IMR
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: R_UART_CISR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: R_UART_RTRIG
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: R_UART_SR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x2C'
    - item_type: preproc_def
      name: UART_SR_INTR_RTRIG
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: UART_SR_INTR_REMPTY
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: UART_SR_INTR_TEMPTY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: UART_SR_INTR_TFUL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: R_UART_TX
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: R_UART_RX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/cadence-uart.h
      type_or_value: '0x30'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SMCCC_VERSION_MAJOR
  - SMCCC_VERSION_MINOR
  - SMCCC_VERSION
  - smccc_is_fast_call
  - smccc_is_conv_64
  - smccc_get_fn
  - smccc_get_owner
  - ___count_args
  - __count_args
  - __declare_arg_0
  - __declare_arg_1
  - __declare_arg_2
  - __declare_arg_3
  - __declare_arg_4
  - __declare_arg_5
  - __declare_arg_6
  - __declare_arg_7
  - ___declare_args
  - __declare_args
  - ___constraints
  - __constraints
  - arm_smccc_1_1_smc
  - arm_smccc_1_0_smc
  - arm_smccc_smc
  - __arm_smccc_1_0_smc_7
  - __arm_smccc_1_0_smc_6
  - __arm_smccc_1_0_smc_5
  - __arm_smccc_1_0_smc_4
  - __arm_smccc_1_0_smc_3
  - __arm_smccc_1_0_smc_2
  - __arm_smccc_1_0_smc_1
  - __arm_smccc_1_0_smc_0
  - ___arm_smccc_1_0_smc_count
  - __arm_smccc_1_0_smc_count
  - arm_smccc_1_0_smc
  - arm_smccc_smc
  - ARM_SMCCC_CALL_VAL
  - ARM_SMCCC_CALL_COUNT_FID
  - ARM_SMCCC_CALL_UID_FID
  - ARM_SMCCC_REVISION_FID
  source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMCCC_VERSION_MAJOR_SHIFT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SMCCC_VERSION_MINOR_MASK
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: ((1U << SMCCC_VERSION_MAJOR_SHIFT) - 1)
    - item_type: preproc_def
      name: SMCCC_VERSION_MAJOR_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: ~SMCCC_VERSION_MINOR_MASK
    - item_type: preproc_def
      name: ARM_SMCCC_VERSION_1_0
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: SMCCC_VERSION(1, 0)
    - item_type: preproc_def
      name: ARM_SMCCC_VERSION_1_1
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: SMCCC_VERSION(1, 1)
    - item_type: preproc_def
      name: ARM_SMCCC_VERSION_1_2
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: SMCCC_VERSION(1, 2)
    - item_type: preproc_def
      name: ARM_SMCCC_STD_CALL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(0,U)
    - item_type: preproc_def
      name: ARM_SMCCC_FAST_CALL
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(1,U)
    - item_type: preproc_def
      name: ARM_SMCCC_TYPE_SHIFT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '31'
    - item_type: preproc_def
      name: ARM_SMCCC_CONV_32
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(0,U)
    - item_type: preproc_def
      name: ARM_SMCCC_CONV_64
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(1,U)
    - item_type: preproc_def
      name: ARM_SMCCC_CONV_SHIFT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '30'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_MASK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(0x3F,U)
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_SHIFT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ARM_SMCCC_FUNC_MASK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: _AC(0xFFFF,U)
    - item_type: preproc_def
      name: __constraint_read_0
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '"r" (arg0)'
    - item_type: preproc_def
      name: __constraint_read_1
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_0, "r" (arg1)
    - item_type: preproc_def
      name: __constraint_read_2
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_1, "r" (arg2)
    - item_type: preproc_def
      name: __constraint_read_3
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_2, "r" (arg3)
    - item_type: preproc_def
      name: __constraint_read_4
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_3, "r" (arg4)
    - item_type: preproc_def
      name: __constraint_read_5
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_4, "r" (arg5)
    - item_type: preproc_def
      name: __constraint_read_6
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_5, "r" (arg6)
    - item_type: preproc_def
      name: __constraint_read_7
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: __constraint_read_6, "r" (arg7)
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_ARCH
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_CPU
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_SIP
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_OEM
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_STANDARD
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_HYPERVISOR
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_TRUSTED_APP
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_TRUSTED_APP_END
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '49'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_TRUSTED_OS
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '50'
    - item_type: preproc_def
      name: ARM_SMCCC_OWNER_TRUSTED_OS_END
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '63'
    - item_type: preproc_def
      name: ARM_SMCCC_VERSION_FID
      pos:
        line_end: 327
        line_start: 321
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \\\n                       ARM_SMCCC_CONV_32,
        \          \\\n                       ARM_SMCCC_OWNER_ARCH,        \\\n                       0x0)
        \                        \\\n"
    - item_type: preproc_def
      name: ARM_SMCCC_ARCH_FEATURES_FID
      pos:
        line_end: 332
        line_start: 327
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \\\n                       ARM_SMCCC_CONV_32,
        \          \\\n                       ARM_SMCCC_OWNER_ARCH,        \\\n                       0x1)"
    - item_type: preproc_def
      name: ARM_SMCCC_ARCH_WORKAROUND_1_FID
      pos:
        line_end: 338
        line_start: 333
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \\\n                       ARM_SMCCC_CONV_32,
        \          \\\n                       ARM_SMCCC_OWNER_ARCH,        \\\n                       0x8000)"
    - item_type: preproc_def
      name: ARM_SMCCC_ARCH_WORKAROUND_2_FID
      pos:
        line_end: 344
        line_start: 339
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \\\n                       ARM_SMCCC_CONV_32,
        \          \\\n                       ARM_SMCCC_OWNER_ARCH,        \\\n                       0x7FFF)"
    - item_type: preproc_def
      name: ARM_SMCCC_ARCH_WORKAROUND_3_FID
      pos:
        line_end: 350
        line_start: 345
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,         \\\n                       ARM_SMCCC_CONV_32,
        \          \\\n                       ARM_SMCCC_OWNER_ARCH,        \\\n                       0x3FFF)"
    - item_type: preproc_def
      name: ARM_SMCCC_NOT_REQUIRED
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: ARM_SMCCC_ERR_UNKNOWN_FUNCTION
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ARM_SMCCC_NOT_SUPPORTED
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: ARM_SMCCC_SUCCESS
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: (0)
    - item_type: preproc_def
      name: ARM_SMCCC_RESERVED_RANGE_START
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ARM_SMCCC_RESERVED_RANGE_END
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
      type_or_value: '0x0100FFFF'
    structs:
    - fields:
      - name: a0
        type: unsigned long
      - name: a1
        type: unsigned long
      - name: a2
        type: unsigned long
      - name: a3
        type: unsigned long
      item_type: struct
      name: arm_smccc_res
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
    - fields:
      - name: a0
        type: unsigned long
      - name: a1
        type: unsigned long
      - name: a2
        type: unsigned long
      - name: a3
        type: unsigned long
      - name: a4
        type: unsigned long
      - name: a5
        type: unsigned long
      - name: a6
        type: unsigned long
      - name: a7
        type: unsigned long
      - name: a8
        type: unsigned long
      - name: a9
        type: unsigned long
      - name: a10
        type: unsigned long
      - name: a11
        type: unsigned long
      - name: a12
        type: unsigned long
      - name: a13
        type: unsigned long
      - name: a14
        type: unsigned long
      - name: a15
        type: unsigned long
      - name: a16
        type: unsigned long
      - name: a17
        type: unsigned long
      item_type: struct
      name: arm_smccc_1_2_regs
      pos:
        line_end: 261
        line_start: 242
        source_file: /src/xen/xen/arch/arm/include/asm/smccc.h
    typedefs: []
    union: []
- function_names:
  - arch_monitor_get_capabilities
  source_file: /src/xen/xen/arch/arm/include/asm/monitor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GITS_TYPER_DEVICE_ID_BITS
  - GITS_TYPER_EVENT_ID_BITS
  - GITS_TYPER_ITT_SIZE
  - GITS_BASER_ENTRY_SIZE
  - gicv3_its_make_hwdom_madt
  - gicv3_its_deny_access
  - gicv3_its_host_has_its
  - vgic_v3_its_count
  - gicv3_do_LPI
  - gicv3_lpi_init_rdist
  - gicv3_lpi_init_host_lpis
  - gicv3_its_init
  - gicv3_set_redist_address
  - vgic_v3_its_init_domain
  - vgic_v3_its_free_domain
  - gicv3_its_make_hwdom_dt_nodes
  source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GITS_CTLR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x000'
    - item_type: preproc_def
      name: GITS_IIDR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x004'
    - item_type: preproc_def
      name: GITS_TYPER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x008'
    - item_type: preproc_def
      name: GITS_CBASER
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x080'
    - item_type: preproc_def
      name: GITS_CWRITER
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x088'
    - item_type: preproc_def
      name: GITS_CREADR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x090'
    - item_type: preproc_def
      name: GITS_BASER_NR_REGS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GITS_BASER0
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: GITS_BASER1
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x108'
    - item_type: preproc_def
      name: GITS_BASER2
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x110'
    - item_type: preproc_def
      name: GITS_BASER3
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x118'
    - item_type: preproc_def
      name: GITS_BASER4
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x120'
    - item_type: preproc_def
      name: GITS_BASER5
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x128'
    - item_type: preproc_def
      name: GITS_BASER6
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x130'
    - item_type: preproc_def
      name: GITS_BASER7
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x138'
    - item_type: preproc_def
      name: GITS_PIDR2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: GICR_PIDR2
    - item_type: preproc_def
      name: GITS_VALID_BIT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: BIT(63, UL)
    - item_type: preproc_def
      name: GITS_CTLR_QUIESCENT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: BIT(31, UL)
    - item_type: preproc_def
      name: GITS_CTLR_ENABLE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: BIT(0, UL)
    - item_type: preproc_def
      name: GITS_TYPER_PTA
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: GITS_TYPER_DEVIDS_SHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '13'
    - item_type: preproc_def
      name: GITS_TYPER_DEVIDS_MASK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0x1fUL << GITS_TYPER_DEVIDS_SHIFT)
    - item_type: preproc_def
      name: GITS_TYPER_IDBITS_SHIFT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GITS_TYPER_IDBITS_MASK
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0x1fUL << GITS_TYPER_IDBITS_SHIFT)
    - item_type: preproc_def
      name: GITS_TYPER_ITT_SIZE_SHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '4'
    - item_type: preproc_def
      name: GITS_TYPER_ITT_SIZE_MASK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0xfUL << GITS_TYPER_ITT_SIZE_SHIFT)
    - item_type: preproc_def
      name: GITS_TYPER_PHYSICAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: GITS_BASER_INDIRECT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: BIT(62, UL)
    - item_type: preproc_def
      name: GITS_BASER_INNER_CACHEABILITY_SHIFT
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '59'
    - item_type: preproc_def
      name: GITS_BASER_TYPE_SHIFT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '56'
    - item_type: preproc_def
      name: GITS_BASER_TYPE_MASK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (7ULL << GITS_BASER_TYPE_SHIFT)
    - item_type: preproc_def
      name: GITS_BASER_OUTER_CACHEABILITY_SHIFT
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '53'
    - item_type: preproc_def
      name: GITS_BASER_TYPE_NONE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 0UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_DEVICE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 1UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_VCPU
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 2UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_CPU
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 3UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_COLLECTION
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 4UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_RESERVED5
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 5UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_RESERVED6
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 6UL
    - item_type: preproc_def
      name: GITS_BASER_TYPE_RESERVED7
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 7UL
    - item_type: preproc_def
      name: GITS_BASER_ENTRY_SIZE_SHIFT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '48'
    - item_type: preproc_def
      name: GITS_BASER_SHAREABILITY_SHIFT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '10'
    - item_type: preproc_def
      name: GITS_BASER_PAGE_SIZE_SHIFT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '8'
    - item_type: preproc_def
      name: GITS_BASER_SIZE_MASK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: GITS_BASER_SHAREABILITY_MASK
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0x3ULL << GITS_BASER_SHAREABILITY_SHIFT)
    - item_type: preproc_def
      name: GITS_BASER_OUTER_CACHEABILITY_MASK
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0x7ULL << GITS_BASER_OUTER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GITS_BASER_INNER_CACHEABILITY_MASK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (0x7ULL << GITS_BASER_INNER_CACHEABILITY_SHIFT)
    - item_type: preproc_def
      name: GITS_CBASER_SIZE_MASK
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ITS_CMD_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '32'
    - item_type: preproc_def
      name: GITS_CMD_MOVI
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: GITS_CMD_INT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: GITS_CMD_CLEAR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: GITS_CMD_SYNC
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: GITS_CMD_MAPD
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: GITS_CMD_MAPC
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: GITS_CMD_MAPTI
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: GITS_CMD_MAPI
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: GITS_CMD_INV
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: GITS_CMD_INVALL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: GITS_CMD_MOVALL
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: GITS_CMD_DISCARD
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: ITS_DOORBELL_OFFSET
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: '0x10040'
    - item_type: preproc_def
      name: GICV3_ITS_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: SZ_128K
    - item_type: preproc_def
      name: HOST_ITS_FLUSH_CMD_QUEUE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: HOST_ITS_USES_PTA
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: HOST_ITS_WORKAROUND_NC_NS
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: HOST_ITS_WORKAROUND_32BIT_ADDR
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: LPI_BLOCK
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
      type_or_value: 32U
    structs:
    - fields:
      - name: entry
        type: struct list_head
      - name: '*dt_node'
        type: struct dt_device_node
      - name: addr
        type: paddr_t
      - name: size
        type: paddr_t
      - name: '*its_base'
        type: void
      - name: devid_bits
        type: unsigned int
      - name: evid_bits
        type: unsigned int
      - name: itte_size
        type: unsigned int
      - name: cmd_lock
        type: spinlock_t
      - name: '*cmd_buf'
        type: void
      - name: flags
        type: unsigned int
      item_type: struct
      name: host_its
      pos:
        line_end: 131
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/gic_v3_its.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PL011_STRH
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: str
    - item_type: preproc_def
      name: PL011_STRB
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: str
    - item_type: preproc_def
      name: PL011_LDRH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: ldr
    - item_type: preproc_def
      name: PL011_STRH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: strh
    - item_type: preproc_def
      name: PL011_STRB
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: strb
    - item_type: preproc_def
      name: PL011_LDRH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: ldrh
    - item_type: preproc_def
      name: DR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x00)
    - item_type: preproc_def
      name: RSR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x04)
    - item_type: preproc_def
      name: FR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x18)
    - item_type: preproc_def
      name: ILPR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x20)
    - item_type: preproc_def
      name: IBRD
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x24)
    - item_type: preproc_def
      name: FBRD
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x28)
    - item_type: preproc_def
      name: LCR_H
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x2c)
    - item_type: preproc_def
      name: CR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x30)
    - item_type: preproc_def
      name: IFLS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x34)
    - item_type: preproc_def
      name: IMSC
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x38)
    - item_type: preproc_def
      name: RIS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x3c)
    - item_type: preproc_def
      name: MIS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x40)
    - item_type: preproc_def
      name: ICR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x44)
    - item_type: preproc_def
      name: DMACR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: (0x48)
    - item_type: preproc_def
      name: CTSEN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<15) '
    - item_type: preproc_def
      name: RTSEN
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<14) '
    - item_type: preproc_def
      name: RTS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<11) '
    - item_type: preproc_def
      name: DTR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<10) '
    - item_type: preproc_def
      name: RXE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<9) '
    - item_type: preproc_def
      name: TXE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<8) '
    - item_type: preproc_def
      name: UARTEN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: TXFE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<7) '
    - item_type: preproc_def
      name: RXFE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<4) '
    - item_type: preproc_def
      name: TXFF
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<5) '
    - item_type: preproc_def
      name: RXFF
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<6) '
    - item_type: preproc_def
      name: BUSY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<3) '
    - item_type: preproc_def
      name: SPS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<7) '
    - item_type: preproc_def
      name: WLEN_8
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(_AC(0x3, U) << 5) '
    - item_type: preproc_def
      name: FEN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<4) '
    - item_type: preproc_def
      name: STP2
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<3) '
    - item_type: preproc_def
      name: EPS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: PEN
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: BRK
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: OEI
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<10) '
    - item_type: preproc_def
      name: BEI
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<9)  '
    - item_type: preproc_def
      name: PEI
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<8)  '
    - item_type: preproc_def
      name: FEI
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<7)  '
    - item_type: preproc_def
      name: RTI
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<6)  '
    - item_type: preproc_def
      name: TXI
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<5)  '
    - item_type: preproc_def
      name: RXI
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<4)  '
    - item_type: preproc_def
      name: DSRMI
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<3)  '
    - item_type: preproc_def
      name: DCDMI
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<2)  '
    - item_type: preproc_def
      name: CTSMI
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<1)  '
    - item_type: preproc_def
      name: RIMI
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: '(1<<0)  '
    - item_type: preproc_def
      name: ALLI
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/pl011-uart.h
      type_or_value: OEI|BEI|PEI|FEI|RTI|TXI|RXI|DSRMI|DCDMI|CTSMI|RIMI
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/vpsci.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VPSCI_NR_FUNCS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/vpsci.h
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fix_to_virt
  - virt_to_fix
  source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FIX_CONSOLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '0  '
    - item_type: preproc_def
      name: FIX_MISC
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: FIX_ACPI_BEGIN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '2  '
    - item_type: preproc_def
      name: FIX_ACPI_END
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '(FIX_ACPI_BEGIN + NUM_FIXMAP_ACPI_PAGES - 1)  '
    - item_type: preproc_def
      name: FIX_PMAP_BEGIN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '(FIX_ACPI_END + 1) '
    - item_type: preproc_def
      name: FIX_PMAP_END
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: '(FIX_PMAP_BEGIN + NUM_FIX_PMAP - 1) '
    - item_type: preproc_def
      name: FIX_LAST
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: FIX_PMAP_END
    - item_type: preproc_def
      name: FIXADDR_START
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: FIXMAP_ADDR(0)
    - item_type: preproc_def
      name: FIXADDR_TOP
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/fixmap.h
      type_or_value: FIXMAP_ADDR(FIX_LAST + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - vcpu_event_delivery_is_enabled
  - local_events_need_delivery_nomask
  - local_events_need_delivery
  - local_event_delivery_enable
  - arch_get_virq_type
  source_file: /src/xen/xen/arch/arm/include/asm/event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dev_iommu_fwspec_get
  - dev_iommu_fwspec_set
  source_file: /src/xen/xen/arch/arm/include/asm/iommu_fwspec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*iommu_dev'
        type: struct device
      - name: '*iommu_priv'
        type: void
      - name: num_ids
        type: unsigned int
      - name: ids[]
        type: uint32_t
      item_type: struct
      name: iommu_fwspec
      pos:
        line_end: 39
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/iommu_fwspec.h
    typedefs: []
    union: []
- function_names:
  - read_cntpct_enforce_ordering
  - read_cntpct_enforce_ordering
  - read_cntpct_stable
  - get_cycles
  source_file: /src/xen/xen/arch/arm/include/asm/time.h
  types:
    enum:
    - enumerators:
      - name: TIMER_PHYS_SECURE_PPI
        value: '0'
      - name: TIMER_HYP_PPI
        value: '3'
      - name: TIMER_HYP_VIRT_PPI
        value: '4'
      - name: TIMER_PHYS_NONSECURE_PPI
        value: '1'
      - name: TIMER_VIRT_PPI
        value: '2'
      - name: MAX_TIMER_PPI
        value: '5'
      item_type: enum
      name: timer_ppi
      pos:
        line_end: 86
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/time.h
    preproc_defs:
    - item_type: preproc_def
      name: DT_MATCH_TIMER
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/time.h
      type_or_value: "DT_MATCH_COMPATIBLE(\"arm,armv7-timer\"), \\\n    DT_MATCH_COMPATIBLE(\"arm,armv8-timer\")"
    structs: []
    typedefs:
    - item_type: typedef
      name: cycles_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/time.h
      type: uint64_t
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/procinfo.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*vcpu_initialise)(struct vcpu *v)
        type: void
      item_type: struct
      name: processor
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/procinfo.h
    - fields:
      - name: cpu_val
        type: unsigned int
      - name: cpu_mask
        type: unsigned int
      - name: (*cpu_init)(void)
        type: void
      - name: '*processor'
        type: struct processor
      item_type: struct
      name: proc_info_list
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/procinfo.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/early_printk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EARLY_UART_VIRTUAL_ADDRESS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/early_printk.h
      type_or_value: CONFIG_EARLY_UART_BASE_ADDRESS
    - item_type: preproc_def
      name: EARLY_UART_VIRTUAL_ADDRESS
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/early_printk.h
      type_or_value: (FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS &
        ~PAGE_MASK))
    - item_type: preproc_def
      name: TEMPORARY_EARLY_UART_VIRTUAL_ADDRESS
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/early_printk.h
      type_or_value: (TEMPORARY_FIXMAP_ADDR(FIX_CONSOLE) + (CONFIG_EARLY_UART_BASE_ADDRESS
        & ~PAGE_MASK))
    structs: []
    typedefs: []
    union: []
- function_names:
  - pr_set_base
  - pr_set_limit
  - pr_get_base
  - pr_get_limit
  - region_is_valid
  source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPU_REGION_SHIFT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MPU_REGION_ALIGN
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: (_AC(1, UL) << MPU_REGION_SHIFT)
    - item_type: preproc_def
      name: MPU_REGION_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: (~(MPU_REGION_ALIGN - 1))
    - item_type: preproc_def
      name: NUM_MPU_REGIONS_SHIFT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NUM_MPU_REGIONS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: (_AC(1, UL) << NUM_MPU_REGIONS_SHIFT)
    - item_type: preproc_def
      name: NUM_MPU_REGIONS_MASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: (NUM_MPU_REGIONS - 1)
    - item_type: preproc_def
      name: MAX_MPU_REGION_NR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: NUM_MPU_REGIONS_MASK
    - item_type: preproc_def
      name: PRENR_MASK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/mpu.h
      type_or_value: GENMASK(31, 0)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UARTBAUD
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x10)
    - item_type: preproc_def
      name: UARTSTAT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x14)
    - item_type: preproc_def
      name: UARTCTRL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x18)
    - item_type: preproc_def
      name: UARTDATA
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x1C)
    - item_type: preproc_def
      name: UARTMATCH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x20)
    - item_type: preproc_def
      name: UARTMODIR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x24)
    - item_type: preproc_def
      name: UARTFIFO
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x28)
    - item_type: preproc_def
      name: UARTWATER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x2c)
    - item_type: preproc_def
      name: UARTSTAT_TDRE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(23, UL)
    - item_type: preproc_def
      name: UARTSTAT_TC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(22, UL)
    - item_type: preproc_def
      name: UARTSTAT_RDRF
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(21, UL)
    - item_type: preproc_def
      name: UARTSTAT_OR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: UARTBAUD_OSR_SHIFT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (24)
    - item_type: preproc_def
      name: UARTBAUD_OSR_MASK
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x1f)
    - item_type: preproc_def
      name: UARTBAUD_SBR_MASK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x1fff)
    - item_type: preproc_def
      name: UARTBAUD_BOTHEDGE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x00020000)
    - item_type: preproc_def
      name: UARTBAUD_TDMAE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x00800000)
    - item_type: preproc_def
      name: UARTBAUD_RDMAE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: (0x00200000)
    - item_type: preproc_def
      name: UARTCTRL_TIE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(23, UL)
    - item_type: preproc_def
      name: UARTCTRL_TCIE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(22, UL)
    - item_type: preproc_def
      name: UARTCTRL_RIE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(21, UL)
    - item_type: preproc_def
      name: UARTCTRL_ILIE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(20, UL)
    - item_type: preproc_def
      name: UARTCTRL_TE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(19, UL)
    - item_type: preproc_def
      name: UARTCTRL_RE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(18, UL)
    - item_type: preproc_def
      name: UARTCTRL_M
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: BIT(4, UL)
    - item_type: preproc_def
      name: UARTWATER_RXCNT_OFF
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/imx-lpuart.h
      type_or_value: '24'
    structs: []
    typedefs: []
    union: []
- function_names:
  - GIC_PRI_TO_GUEST
  - gic_is_valid_espi
  - gic_is_valid_espi
  - gic_is_valid_line
  - gic_is_spi
  - gic_get_nr_lrs
  - gic_set_active_state
  - gic_set_pending_state
  - gic_read_pending_state
  source_file: /src/xen/xen/arch/arm/include/asm/gic.h
  types:
    enum:
    - enumerators:
      - name: GIC_INVALID
        value: '0'
      - name: GIC_V3
      - name: GIC_V2
      item_type: enum
      name: gic_version
      pos:
        line_end: 237
        line_start: 233
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - enumerators:
      - name: GIC_SGI_EVENT_CHECK
      - name: GIC_SGI_STATIC_MAX
      - name: GIC_SGI_CALL_FUNCTION
      - name: GIC_SGI_DUMP_STATE
      item_type: enum
      name: gic_sgi
      pos:
        line_end: 288
        line_start: 283
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - enumerators:
      - name: SGI_TARGET_LIST
      - name: SGI_TARGET_OTHERS
      - name: SGI_TARGET_SELF
      item_type: enum
      name: gic_sgi_mode
      pos:
        line_end: 295
        line_start: 291
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    preproc_defs:
    - item_type: preproc_def
      name: NR_GIC_LOCAL_IRQS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: NR_LOCAL_IRQS
    - item_type: preproc_def
      name: NR_GIC_SGI
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '16'
    - item_type: preproc_def
      name: GICD_CTLR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x000)
    - item_type: preproc_def
      name: GICD_TYPER
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x004)
    - item_type: preproc_def
      name: GICD_IIDR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x008)
    - item_type: preproc_def
      name: GICD_IGROUPR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x080)
    - item_type: preproc_def
      name: GICD_IGROUPRN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0FC)
    - item_type: preproc_def
      name: GICD_ISENABLER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x100)
    - item_type: preproc_def
      name: GICD_ISENABLERN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x17C)
    - item_type: preproc_def
      name: GICD_ICENABLER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x180)
    - item_type: preproc_def
      name: GICD_ICENABLERN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x1fC)
    - item_type: preproc_def
      name: GICD_ISPENDR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x200)
    - item_type: preproc_def
      name: GICD_ISPENDRN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x27C)
    - item_type: preproc_def
      name: GICD_ICPENDR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x280)
    - item_type: preproc_def
      name: GICD_ICPENDRN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x2FC)
    - item_type: preproc_def
      name: GICD_ISACTIVER
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x300)
    - item_type: preproc_def
      name: GICD_ISACTIVERN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x37C)
    - item_type: preproc_def
      name: GICD_ICACTIVER
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x380)
    - item_type: preproc_def
      name: GICD_ICACTIVERN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x3FC)
    - item_type: preproc_def
      name: GICD_IPRIORITYR
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x400)
    - item_type: preproc_def
      name: GICD_IPRIORITYRN
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x7F8)
    - item_type: preproc_def
      name: GICD_ITARGETSR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x800)
    - item_type: preproc_def
      name: GICD_ITARGETSR7
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x81C)
    - item_type: preproc_def
      name: GICD_ITARGETSR8
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x820)
    - item_type: preproc_def
      name: GICD_ITARGETSRN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xBF8)
    - item_type: preproc_def
      name: GICD_ICFGR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xC00)
    - item_type: preproc_def
      name: GICD_ICFGR1
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xC04)
    - item_type: preproc_def
      name: GICD_ICFGR2
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xC08)
    - item_type: preproc_def
      name: GICD_ICFGRN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xCFC)
    - item_type: preproc_def
      name: GICD_NSACR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xE00)
    - item_type: preproc_def
      name: GICD_NSACRN
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xEFC)
    - item_type: preproc_def
      name: GICD_SGIR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF00)
    - item_type: preproc_def
      name: GICD_CPENDSGIR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF10)
    - item_type: preproc_def
      name: GICD_CPENDSGIRN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF1C)
    - item_type: preproc_def
      name: GICD_SPENDSGIR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF20)
    - item_type: preproc_def
      name: GICD_SPENDSGIRN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF2C)
    - item_type: preproc_def
      name: GICD_ICPIDR2
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xFE8)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_LIST_SHIFT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (24)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_LIST_MASK
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x3UL << GICD_SGI_TARGET_LIST_SHIFT)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_LIST
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0UL<<GICD_SGI_TARGET_LIST_SHIFT)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_LIST_VAL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_OTHERS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1UL<<GICD_SGI_TARGET_LIST_SHIFT)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_OTHERS_VAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_SELF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (2UL<<GICD_SGI_TARGET_LIST_SHIFT)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_SELF_VAL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (2)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_SHIFT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (16)
    - item_type: preproc_def
      name: GICD_SGI_TARGET_MASK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xFFUL<<GICD_SGI_TARGET_SHIFT)
    - item_type: preproc_def
      name: GICD_SGI_GROUP1
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1UL<<15)
    - item_type: preproc_def
      name: GICD_SGI_INTID_MASK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xFUL)
    - item_type: preproc_def
      name: GICC_CTLR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0000)
    - item_type: preproc_def
      name: GICC_PMR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0004)
    - item_type: preproc_def
      name: GICC_BPR
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0008)
    - item_type: preproc_def
      name: GICC_IAR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x000C)
    - item_type: preproc_def
      name: GICC_EOIR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0010)
    - item_type: preproc_def
      name: GICC_RPR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0014)
    - item_type: preproc_def
      name: GICC_HPPIR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x0018)
    - item_type: preproc_def
      name: GICC_APR
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x00D0)
    - item_type: preproc_def
      name: GICC_NSAPR
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x00E0)
    - item_type: preproc_def
      name: GICC_IIDR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x00FC)
    - item_type: preproc_def
      name: GICC_DIR
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x1000)
    - item_type: preproc_def
      name: GICH_HCR
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x00)
    - item_type: preproc_def
      name: GICH_VTR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x04)
    - item_type: preproc_def
      name: GICH_VMCR
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x08)
    - item_type: preproc_def
      name: GICH_MISR
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x10)
    - item_type: preproc_def
      name: GICH_EISR0
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x20)
    - item_type: preproc_def
      name: GICH_EISR1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x24)
    - item_type: preproc_def
      name: GICH_ELSR0
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x30)
    - item_type: preproc_def
      name: GICH_ELSR1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x34)
    - item_type: preproc_def
      name: GICH_APR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0xF0)
    - item_type: preproc_def
      name: GICH_LR
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x100)
    - item_type: preproc_def
      name: GICD_CTL_ENABLE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GICD_TYPE_LINES
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x01f'
    - item_type: preproc_def
      name: GICD_TYPE_CPUS_SHIFT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '5'
    - item_type: preproc_def
      name: GICD_TYPE_CPUS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x0e0'
    - item_type: preproc_def
      name: GICD_TYPE_SEC
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: GICD_TYPER_DVIS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1U << 18)
    - item_type: preproc_def
      name: GICC_CTL_ENABLE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: GICC_CTL_EOI
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (0x1 << 9)
    - item_type: preproc_def
      name: GICC_IA_IRQ
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x03ff'
    - item_type: preproc_def
      name: GICC_IA_CPU_MASK
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x1c00'
    - item_type: preproc_def
      name: GICC_IA_CPU_SHIFT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '10'
    - item_type: preproc_def
      name: GICH_HCR_EN
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GICH_HCR_UIE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: GICH_HCR_LRENPIE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: GICH_HCR_NPIE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: GICH_HCR_VGRP0EIE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: GICH_HCR_VGRP0DIE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: GICH_HCR_VGRP1EIE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: GICH_HCR_VGRP1DIE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: GICH_MISR_EOI
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: GICH_MISR_U
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: GICH_MISR_LRENP
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: GICH_MISR_NP
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: GICH_MISR_VGRP0E
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: GICH_MISR_VGRP0D
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: GICH_MISR_VGRP1E
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: GICH_MISR_VGRP1D
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: GIC_PRI_LOWEST
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: 0xf0U
    - item_type: preproc_def
      name: GIC_PRI_IRQ
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: 0xa0U
    - item_type: preproc_def
      name: GIC_PRI_IPI
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x90U '
    - item_type: preproc_def
      name: GIC_PRI_HIGHEST
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '0x80U '
    - item_type: preproc_def
      name: GIC_PRI_IRQ_ALL
      pos:
        line_end: 151
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: "((GIC_PRI_IRQ << 24) | (GIC_PRI_IRQ << 16) |\\\n                            (GIC_PRI_IRQ
        << 8) | GIC_PRI_IRQ)"
    - item_type: preproc_def
      name: GIC_PRI_IPI_ALL
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: "((GIC_PRI_IPI << 24) | (GIC_PRI_IPI << 16) |\\\n                            (GIC_PRI_IPI
        << 8) | GIC_PRI_IPI)"
    - item_type: preproc_def
      name: GICH_LR_PENDING
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GICH_LR_ACTIVE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DT_COMPAT_GIC_CORTEX_A15
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: '"arm,cortex-a15-gic"'
    - item_type: preproc_def
      name: DT_MATCH_GIC_V2
      pos:
        line_end: 170
        line_start: 166
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: "DT_MATCH_COMPATIBLE(DT_COMPAT_GIC_CORTEX_A15),                  \\\n
        \   DT_MATCH_COMPATIBLE(\"arm,cortex-a7-gic\"),                       \\\n
        \   DT_MATCH_COMPATIBLE(\"arm,gic-400\")"
    - item_type: preproc_def
      name: DT_MATCH_GIC_V3
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
      type_or_value: DT_MATCH_COMPATIBLE("arm,gic-v3")
    structs:
    - fields:
      - name: vmcr
        type: register_t
      - name: apr0[4]
        type: register_t
      - name: apr1[4]
        type: register_t
      - name: lr[16]
        type: uint64_t
      item_type: struct
      name: gic_v3
      pos:
        line_end: 182
        line_start: 177
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - fields:
      - name: hcr
        type: uint32_t
      - name: vmcr
        type: uint32_t
      - name: apr
        type: uint32_t
      - name: lr[64]
        type: uint32_t
      item_type: struct
      name: gic_v2
      pos:
        line_end: 194
        line_start: 189
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - fields:
      - name: virq
        type: uint32_t
      - name: priority
        type: uint8_t
      - name: active
        type: bool
      - name: pending
        type: bool
      - name: hw_status
        type: bool
      item_type: struct
      name: gic_lr
      pos:
        line_end: 231
        line_start: 210
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - fields:
      - name: hw_version
        type: enum gic_version
      - name: nr_lines
        type: unsigned int
      - name: nr_lrs
        type: uint8_t
      - name: maintenance_irq
        type: unsigned int
      - name: '*node'
        type: struct dt_device_node
      item_type: struct
      name: gic_info
      pos:
        line_end: 352
        line_start: 337
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    - fields:
      - name: '*info'
        type: struct gic_info
      - name: (*init)(void)
        type: int
      - name: (*save_state)(struct vcpu *v)
        type: void
      - name: (*restore_state)(const struct vcpu *v)
        type: void
      - name: (*dump_state)(const struct vcpu *v)
        type: void
      - name: '*gic_host_irq_type'
        type: hw_irq_controller
      - name: '*gic_guest_irq_type'
        type: hw_irq_controller
      - name: (*eoi_irq)(struct irq_desc *irqd)
        type: void
      - name: (*deactivate_irq)(struct irq_desc *irqd)
        type: void
      - name: (*read_irq)(void)
        type: unsigned int
      - name: (*set_active_state)(struct irq_desc *irqd, bool state)
        type: void
      - name: (*set_pending_state)(struct irq_desc *irqd, bool state)
        type: void
      - name: (*set_irq_type)(struct irq_desc *desc, unsigned int type)
        type: void
      - name: (*set_irq_priority)(struct irq_desc *desc, unsigned int priority)
        type: void
      - name: "(*send_SGI)(enum gic_sgi sgi, enum gic_sgi_mode irqmode,\n                     const
          cpumask_t *online_mask)"
        type: void
      - name: (*disable_interface)(void)
        type: void
      - name: "(*update_lr)(int lr, unsigned int virq, uint8_t priority,\n                      unsigned
          int hw_irq, unsigned int state)"
        type: void
      - name: (*update_hcr_status)(uint32_t flag, bool set)
        type: void
      - name: (*clear_lr)(int lr)
        type: void
      - name: (*read_lr)(int lr, struct gic_lr *lr_reg)
        type: void
      - name: (*write_lr)(int lr, const struct gic_lr *lr_reg)
        type: void
      - name: (*read_vmcr_priority)(void)
        type: unsigned int
      - name: (*read_apr)(int apr_reg)
        type: unsigned int
      - name: (*read_pending_state)(struct irq_desc *irqd)
        type: bool
      - name: (*secondary_init)(void)
        type: int
      - name: "(*make_hwdom_dt_node)(const struct domain *d,\n                              const
          struct dt_device_node *gic, void *fdt)"
        type: int
      - name: (*map_hwdom_extra_mappings)(struct domain *d)
        type: int
      - name: (*iomem_deny_access)(struct domain *d)
        type: int
      - name: (*do_LPI)(unsigned int lpi)
        type: void
      item_type: struct
      name: gic_hw_operations
      pos:
        line_end: 425
        line_start: 354
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
    typedefs: []
    union:
    - fields:
      - name: v2
        type: struct gic_v2
      item_type: union
      name: gic_state_data
      pos:
        line_end: 204
        line_start: 199
        source_file: /src/xen/xen/arch/arm/include/asm/gic.h
- function_names:
  - _MAIR0
  - _MAIR1
  - PAGE_AI_MASK
  - PAGE_XN_MASK
  - PAGE_RO_MASK
  - copy_page
  - scrub_page_hot
  - read_dcache_line_bytes
  - invalidate_dcache_va_range
  - clean_dcache_va_range
  - clean_and_invalidate_dcache_va_range
  - clean_dcache
  - clean_and_invalidate_dcache
  - va_to_par
  - gva_to_ipa
  source_file: /src/xen/xen/arch/arm/include/asm/page.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LPAE_SH_NON_SHAREABLE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: LPAE_SH_UNPREDICTALE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: LPAE_SH_OUTER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: LPAE_SH_INNER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: MT_DEVICE_nGnRnE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: MT_NORMAL_NC
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MT_NORMAL_WT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: MT_NORMAL_WB
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: MT_DEVICE_nGnRE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: MT_NORMAL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: MAIR0VAL
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: "(_MAIR0(0x00, MT_DEVICE_nGnRnE)| \\\n                  _MAIR0(0x44,
        MT_NORMAL_NC)    | \\\n                  _MAIR0(0xaa, MT_NORMAL_WT)    | \\\n
        \                 _MAIR0(0xee, MT_NORMAL_WB))"
    - item_type: preproc_def
      name: MAIR1VAL
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: "(_MAIR1(0x04, MT_DEVICE_nGnRE) | \\\n                  _MAIR1(0xff,
        MT_NORMAL))"
    - item_type: preproc_def
      name: MAIRVAL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (MAIR1VAL << 32 | MAIR0VAL)
    - item_type: preproc_def
      name: _PAGE_XN_BIT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '3'
    - item_type: preproc_def
      name: _PAGE_RO_BIT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '4'
    - item_type: preproc_def
      name: _PAGE_XN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << _PAGE_XN_BIT)
    - item_type: preproc_def
      name: _PAGE_RO
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << _PAGE_RO_BIT)
    - item_type: preproc_def
      name: _PAGE_PRESENT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << 5)
    - item_type: preproc_def
      name: _PAGE_POPULATE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << 6)
    - item_type: preproc_def
      name: _PAGE_BLOCK_BIT
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '7'
    - item_type: preproc_def
      name: _PAGE_BLOCK
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << _PAGE_BLOCK_BIT)
    - item_type: preproc_def
      name: _PAGE_CONTIG_BIT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '8'
    - item_type: preproc_def
      name: _PAGE_CONTIG
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1U << _PAGE_CONTIG_BIT)
    - item_type: preproc_def
      name: _PAGE_DEVICE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_XN|_PAGE_PRESENT)
    - item_type: preproc_def
      name: _PAGE_NORMAL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (MT_NORMAL|_PAGE_PRESENT)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RO
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_NORMAL|_PAGE_RO|_PAGE_XN)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RX
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_NORMAL|_PAGE_RO)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_RW
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_NORMAL|_PAGE_XN)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: PAGE_HYPERVISOR_RW
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_NOCACHE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_DEVICE|MT_DEVICE_nGnRE)
    - item_type: preproc_def
      name: PAGE_HYPERVISOR_WC
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (_PAGE_DEVICE|MT_NORMAL_NC)
    - item_type: preproc_def
      name: MATTR_DEV
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MATTR_MEM_NC
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: MATTR_MEM
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: GV2M_READ
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (0u<<0)
    - item_type: preproc_def
      name: GV2M_WRITE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1u<<0)
    - item_type: preproc_def
      name: GV2M_EXEC
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: (1u<<1)
    - item_type: preproc_def
      name: MIN_CACHELINE_BYTES
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '16'
    - item_type: preproc_def
      name: clear_page_hot
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: clear_page_cold
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: clear_page
    - item_type: preproc_def
      name: scrub_page_cold
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: scrub_page_hot
    - item_type: preproc_def
      name: PAR_FAULT
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/xen/xen/arch/arm/include/asm/page.h
      type_or_value: '0x1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FRAMETABLE_SIZE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
      type_or_value: GB(16)
    - item_type: preproc_def
      name: FRAMETABLE_NR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
      type_or_value: (FRAMETABLE_SIZE / sizeof(*frame_table))
    - item_type: preproc_def
      name: XEN_START_ADDRESS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
      type_or_value: CONFIG_XEN_START_ADDRESS
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
      type_or_value: _AT(paddr_t, XEN_START_ADDRESS)
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/layout.h
      type_or_value: XEN_VIRT_START
    structs: []
    typedefs: []
    union: []
- function_names:
  - virt_to_maddr
  - maddr_to_virt
  - virt_to_page
  - context_sync_mpu
  source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPUMAP_REGION_OVERLAP
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: MPUMAP_REGION_NOTFOUND
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MPUMAP_REGION_FOUND
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MPUMAP_REGION_INCLUSIVE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
      type_or_value: '2'
    - item_type: preproc_def
      name: INVALID_REGION_IDX
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/mm.h
      type_or_value: 0xFFU
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HMPUIR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c0,c0,4
    - item_type: preproc_def
      name: HPRENR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c1,1
    - item_type: preproc_def
      name: HPRSELR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c2,1
    - item_type: preproc_def
      name: HPRBAR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c3,0
    - item_type: preproc_def
      name: HPRLAR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c3,1
    - item_type: preproc_def
      name: HPRBAR0
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c8,0
    - item_type: preproc_def
      name: HPRLAR0
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c8,1
    - item_type: preproc_def
      name: HPRBAR1
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c8,4
    - item_type: preproc_def
      name: HPRLAR1
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c8,5
    - item_type: preproc_def
      name: HPRBAR2
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c9,0
    - item_type: preproc_def
      name: HPRLAR2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c9,1
    - item_type: preproc_def
      name: HPRBAR3
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c9,4
    - item_type: preproc_def
      name: HPRLAR3
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c9,5
    - item_type: preproc_def
      name: HPRBAR4
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c10,0
    - item_type: preproc_def
      name: HPRLAR4
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c10,1
    - item_type: preproc_def
      name: HPRBAR5
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c10,4
    - item_type: preproc_def
      name: HPRLAR5
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c10,5
    - item_type: preproc_def
      name: HPRBAR6
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c11,0
    - item_type: preproc_def
      name: HPRLAR6
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c11,1
    - item_type: preproc_def
      name: HPRBAR7
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c11,4
    - item_type: preproc_def
      name: HPRLAR7
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c11,5
    - item_type: preproc_def
      name: HPRBAR8
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c12,0
    - item_type: preproc_def
      name: HPRLAR8
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c12,1
    - item_type: preproc_def
      name: HPRBAR9
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c12,4
    - item_type: preproc_def
      name: HPRLAR9
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c12,5
    - item_type: preproc_def
      name: HPRBAR10
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c13,0
    - item_type: preproc_def
      name: HPRLAR10
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c13,1
    - item_type: preproc_def
      name: HPRBAR11
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c13,4
    - item_type: preproc_def
      name: HPRLAR11
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c13,5
    - item_type: preproc_def
      name: HPRBAR12
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c14,0
    - item_type: preproc_def
      name: HPRLAR12
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c14,1
    - item_type: preproc_def
      name: HPRBAR13
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c14,4
    - item_type: preproc_def
      name: HPRLAR13
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c14,5
    - item_type: preproc_def
      name: HPRBAR14
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c15,0
    - item_type: preproc_def
      name: HPRLAR14
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c15,1
    - item_type: preproc_def
      name: HPRBAR15
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c15,4
    - item_type: preproc_def
      name: HPRLAR15
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,4,c6,c15,5
    - item_type: preproc_def
      name: HPRBAR16
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c8,0
    - item_type: preproc_def
      name: HPRLAR16
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c8,1
    - item_type: preproc_def
      name: HPRBAR17
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c8,4
    - item_type: preproc_def
      name: HPRLAR17
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c8,5
    - item_type: preproc_def
      name: HPRBAR18
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c9,0
    - item_type: preproc_def
      name: HPRLAR18
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c9,1
    - item_type: preproc_def
      name: HPRBAR19
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c9,4
    - item_type: preproc_def
      name: HPRLAR19
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c9,5
    - item_type: preproc_def
      name: HPRBAR20
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c10,0
    - item_type: preproc_def
      name: HPRLAR20
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c10,1
    - item_type: preproc_def
      name: HPRBAR21
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c10,4
    - item_type: preproc_def
      name: HPRLAR21
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c10,5
    - item_type: preproc_def
      name: HPRBAR22
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c11,0
    - item_type: preproc_def
      name: HPRLAR22
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c11,1
    - item_type: preproc_def
      name: HPRBAR23
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c11,4
    - item_type: preproc_def
      name: HPRLAR23
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c11,5
    - item_type: preproc_def
      name: HPRBAR24
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c12,0
    - item_type: preproc_def
      name: HPRLAR24
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c12,1
    - item_type: preproc_def
      name: HPRBAR25
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c12,4
    - item_type: preproc_def
      name: HPRLAR25
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c12,5
    - item_type: preproc_def
      name: HPRBAR26
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c13,0
    - item_type: preproc_def
      name: HPRLAR26
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c13,1
    - item_type: preproc_def
      name: HPRBAR27
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c13,4
    - item_type: preproc_def
      name: HPRLAR27
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c13,5
    - item_type: preproc_def
      name: HPRBAR28
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c14,0
    - item_type: preproc_def
      name: HPRLAR28
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c14,1
    - item_type: preproc_def
      name: HPRBAR29
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c14,4
    - item_type: preproc_def
      name: HPRLAR29
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c14,5
    - item_type: preproc_def
      name: HPRBAR30
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c15,0
    - item_type: preproc_def
      name: HPRLAR30
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c15,1
    - item_type: preproc_def
      name: HPRBAR31
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c15,4
    - item_type: preproc_def
      name: HPRLAR31
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: p15,5,c6,c15,5
    - item_type: preproc_def
      name: MPUIR_EL2
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: HMPUIR
    - item_type: preproc_def
      name: PRBAR_EL2
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: HPRBAR
    - item_type: preproc_def
      name: PRENR_EL2
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: HPRENR
    - item_type: preproc_def
      name: PRLAR_EL2
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: HPRLAR
    - item_type: preproc_def
      name: PRSELR_EL2
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/mpu/cpregs.h
      type_or_value: HPRSELR
    structs: []
    typedefs: []
    union: []
- function_names:
  - p2m_clear_root_pages
  - p2m_tlb_flush_sync
  source_file: /src/xen/xen/arch/arm/include/asm/mpu/p2m.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - REGISTER_TEE_MEDIATOR
  - tee_handle_call
  - tee_domain_init
  - tee_relinquish_resources
  - tee_domain_teardown
  - tee_get_type
  - init_tee_secondary
  - tee_free_domain_ctx
  source_file: /src/xen/xen/arch/arm/include/asm/tee/tee.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*probe)(void)
        type: bool
      - name: (*init_secondary)(void)
        type: void
      - name: (*domain_init)(struct domain *d)
        type: int
      - name: (*domain_teardown)(struct domain *d)
        type: int
      - name: (*free_domain_ctx)(struct domain *d)
        type: void
      - name: (*relinquish_resources)(struct domain *d)
        type: int
      - name: (*handle_call)(struct cpu_user_regs *regs)
        type: bool
      item_type: struct
      name: tee_mediator_ops
      pos:
        line_end: 51
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    - fields:
      - name: '*name'
        type: char
      - name: '*cmdline_name'
        type: char
      - name: '*ops'
        type: struct tee_mediator_ops
      - name: tee_type
        type: uint16_t
      item_type: struct
      name: tee_mediator_desc
      pos:
        line_end: 68
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/tee/tee.h
    typedefs: []
    union: []
- function_names:
  - OPTEE_SMC_STD_CALL_VAL
  - OPTEE_SMC_FAST_CALL_VAL
  - OPTEE_SMC_RETURN_GET_RPC_FUNC
  - OPTEE_SMC_RPC_VAL
  - OPTEE_SMC_RETURN_IS_RPC
  source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_CALLS_COUNT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0xFF00'
    - item_type: preproc_def
      name: OPTEE_SMC_CALLS_COUNT
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, ARM_SMCCC_CONV_32, \\\n\t\t\t
        \  ARM_SMCCC_OWNER_TRUSTED_OS_END, \\\n\t\t\t   OPTEE_SMC_FUNCID_CALLS_COUNT)"
    - item_type: preproc_def
      name: OPTEE_SMC_SHM_CACHED
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_CALLS_UID
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_MSG_FUNCID_CALLS_UID
    - item_type: preproc_def
      name: OPTEE_SMC_CALLS_UID
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, ARM_SMCCC_CONV_32, \\\n\t\t\t
        \  ARM_SMCCC_OWNER_TRUSTED_OS_END, \\\n\t\t\t   OPTEE_SMC_FUNCID_CALLS_UID)"
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_CALLS_REVISION
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_MSG_FUNCID_CALLS_REVISION
    - item_type: preproc_def
      name: OPTEE_SMC_CALLS_REVISION
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: "ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, ARM_SMCCC_CONV_32, \\\n\t\t\t
        \  ARM_SMCCC_OWNER_TRUSTED_OS_END, \\\n\t\t\t   OPTEE_SMC_FUNCID_CALLS_REVISION)"
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_GET_OS_UUID
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_MSG_FUNCID_GET_OS_UUID
    - item_type: preproc_def
      name: OPTEE_SMC_CALL_GET_OS_UUID
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_GET_OS_UUID)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_GET_OS_REVISION
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_MSG_FUNCID_GET_OS_REVISION
    - item_type: preproc_def
      name: OPTEE_SMC_CALL_GET_OS_REVISION
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_GET_OS_REVISION)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_CALL_WITH_ARG
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_MSG_FUNCID_CALL_WITH_ARG
    - item_type: preproc_def
      name: OPTEE_SMC_CALL_WITH_ARG
      pos:
        line_end: 144
        line_start: 142
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_STD_CALL_VAL(OPTEE_SMC_FUNCID_CALL_WITH_ARG)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_GET_SHM_CONFIG
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OPTEE_SMC_GET_SHM_CONFIG
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_GET_SHM_CONFIG)
    - item_type: preproc_def
      name: OPTEE_SMC_L2CC_MUTEX_GET_ADDR
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_SMC_L2CC_MUTEX_SET_ADDR
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_SMC_L2CC_MUTEX_ENABLE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_SMC_L2CC_MUTEX_DISABLE
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_L2CC_MUTEX
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OPTEE_SMC_L2CC_MUTEX
      pos:
        line_end: 213
        line_start: 211
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_L2CC_MUTEX)
    - item_type: preproc_def
      name: OPTEE_SMC_NSEC_CAP_UNIPROCESSOR
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: OPTEE_SMC_SEC_CAP_HAVE_RESERVED_SHM
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: OPTEE_SMC_SEC_CAP_UNREGISTERED_SHM
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: OPTEE_SMC_SEC_CAP_DYNAMIC_SHM
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: OPTEE_SMC_SEC_CAP_MEMREF_NULL
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '9'
    - item_type: preproc_def
      name: OPTEE_SMC_EXCHANGE_CAPABILITIES
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_EXCHANGE_CAPABILITIES)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_DISABLE_SHM_CACHE
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPTEE_SMC_DISABLE_SHM_CACHE
      pos:
        line_end: 284
        line_start: 282
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_DISABLE_SHM_CACHE)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_ENABLE_SHM_CACHE
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '11'
    - item_type: preproc_def
      name: OPTEE_SMC_ENABLE_SHM_CACHE
      pos:
        line_end: 309
        line_start: 307
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_ENABLE_SHM_CACHE)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_BOOT_SECONDARY
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '12'
    - item_type: preproc_def
      name: OPTEE_SMC_BOOT_SECONDARY
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_BOOT_SECONDARY)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_VM_CREATED
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '13'
    - item_type: preproc_def
      name: OPTEE_SMC_VM_CREATED
      pos:
        line_end: 371
        line_start: 369
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_VM_CREATED)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_VM_DESTROYED
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '14'
    - item_type: preproc_def
      name: OPTEE_SMC_VM_DESTROYED
      pos:
        line_end: 394
        line_start: 392
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_VM_DESTROYED)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_GET_THREAD_COUNT
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '15'
    - item_type: preproc_def
      name: OPTEE_SMC_GET_THREAD_COUNT
      pos:
        line_end: 419
        line_start: 417
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_FAST_CALL_VAL(OPTEE_SMC_FUNCID_GET_THREAD_COUNT)
    - item_type: preproc_def
      name: OPTEE_SMC_FUNCID_RETURN_FROM_RPC
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_SMC_CALL_RETURN_FROM_RPC
      pos:
        line_end: 444
        line_start: 442
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_STD_CALL_VAL(OPTEE_SMC_FUNCID_RETURN_FROM_RPC)
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_PREFIX_MASK
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: 0xFFFF0000U
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_PREFIX
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: 0xFFFF0000U
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_FUNC_MASK
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: 0x0000FFFFU
    - item_type: preproc_def
      name: OPTEE_SMC_RPC_FUNC_ALLOC
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_ALLOC
      pos:
        line_end: 484
        line_start: 482
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_RPC_VAL(OPTEE_SMC_RPC_FUNC_ALLOC)
    - item_type: preproc_def
      name: OPTEE_SMC_RPC_FUNC_FREE
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_FREE
      pos:
        line_end: 504
        line_start: 502
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_RPC_VAL(OPTEE_SMC_RPC_FUNC_FREE)
    - item_type: preproc_def
      name: OPTEE_SMC_RPC_FUNC_FOREIGN_INTR
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_FOREIGN_INTR
      pos:
        line_end: 519
        line_start: 517
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_RPC_VAL(OPTEE_SMC_RPC_FUNC_FOREIGN_INTR)
    - item_type: preproc_def
      name: OPTEE_SMC_RPC_FUNC_CMD
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_RPC_CMD
      pos:
        line_end: 548
        line_start: 546
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: OPTEE_SMC_RPC_VAL(OPTEE_SMC_RPC_FUNC_CMD)
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_UNKNOWN_FUNCTION
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: 0xFFFFFFFFU
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_OK
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_ETHREAD_LIMIT
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_EBUSY
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_ERESUME
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_EBADADDR
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_EBADCMD
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_ENOMEM
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: OPTEE_SMC_RETURN_ENOTAVAIL
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_smc.h
      type_or_value: '0x7'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_LOAD_TA
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_RPMB
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_FS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_GET_TIME
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_WAIT_QUEUE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTEE_RPC_WAIT_QUEUE_SLEEP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_WAIT_QUEUE_WAKEUP
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_SUSPEND
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_SHM_ALLOC
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '6'
    - item_type: preproc_def
      name: OPTEE_RPC_SHM_TYPE_APPL
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_SHM_TYPE_KERNEL
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_RPC_SHM_TYPE_GLOBAL
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_SHM_FREE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_SQL_FS_RESERVED
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_GPROF
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '9'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_SOCKET
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPTEE_RPC_CMD_BENCH_REG
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '20'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_OPEN
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_CREATE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_CLOSE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_READ
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_WRITE
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_TRUNCATE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_REMOVE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '6'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_RENAME
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '7'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_OPENDIR
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_CLOSEDIR
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '9'
    - item_type: preproc_def
      name: OPTEE_RPC_FS_READDIR
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '10'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_TIMEOUT_NONBLOCKING
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_TIMEOUT_BLOCKING
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_OPEN
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_CLOSE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_CLOSE_ALL
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_SEND
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_RECV
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTEE_RPC_SOCKET_IOCTL
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_rpc_cmd.h
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_ffa_fid
  source_file: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FFA_FNUM_MIN_VALUE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
      type_or_value: _AC(0x60,U)
    - item_type: preproc_def
      name: FFA_FNUM_MAX_VALUE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
      type_or_value: _AC(0x8E,U)
    - item_type: preproc_def
      name: FFA_NR_FUNCS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FFA_NR_FUNCS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/tee/ffa.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OPTEE_MSG_GET_ARG_SIZE
  source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_NONE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_VALUE_INPUT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_VALUE_OUTPUT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_VALUE_INOUT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_RMEM_INPUT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_RMEM_OUTPUT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_RMEM_INOUT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_TMEM_INPUT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x9'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_TMEM_OUTPUT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0xa'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_TMEM_INOUT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0xb'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_TYPE_MASK
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: GENMASK(7, 0)
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_META
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: BIT(8, UL)
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_NONCONTIG
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: BIT(9, UL)
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_CACHE_SHIFT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '16'
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_CACHE_MASK
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: GENMASK(2, 0)
    - item_type: preproc_def
      name: OPTEE_MSG_ATTR_CACHE_PREDEFINED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_PUBLIC
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_USER
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_GROUP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_APPLICATION
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_APPLICATION_USER
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000005'
    - item_type: preproc_def
      name: OPTEE_MSG_LOGIN_APPLICATION_GROUP
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x00000006'
    - item_type: preproc_def
      name: OPTEE_MSG_NONCONTIG_PAGE_SIZE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: OPTEE_MSG_MAX_NUM_PARAMS
      pos:
        line_end: 210
        line_start: 207
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: "((OPTEE_MSG_NONCONTIG_PAGE_SIZE - sizeof(struct optee_msg_arg))
        / \\\n\t sizeof(struct optee_msg_param))"
    - item_type: preproc_def
      name: OPTEE_MSG_UID_0
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0x384fb3e0U
    - item_type: preproc_def
      name: OPTEE_MSG_UID_1
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xe7f811e3U
    - item_type: preproc_def
      name: OPTEE_MSG_UID_2
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xaf630002U
    - item_type: preproc_def
      name: OPTEE_MSG_UID_3
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xa5d5c51bU
    - item_type: preproc_def
      name: OPTEE_MSG_FUNCID_CALLS_UID
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0xFF01'
    - item_type: preproc_def
      name: OPTEE_MSG_REVISION_MAJOR
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_MSG_REVISION_MINOR
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_MSG_FUNCID_CALLS_REVISION
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0xFF03'
    - item_type: preproc_def
      name: OPTEE_MSG_OS_OPTEE_UUID_0
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0x486178e0U
    - item_type: preproc_def
      name: OPTEE_MSG_OS_OPTEE_UUID_1
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xe7f811e3U
    - item_type: preproc_def
      name: OPTEE_MSG_OS_OPTEE_UUID_2
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xbc5e0002U
    - item_type: preproc_def
      name: OPTEE_MSG_OS_OPTEE_UUID_3
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: 0xa5d5c51bU
    - item_type: preproc_def
      name: OPTEE_MSG_FUNCID_GET_OS_UUID
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: OPTEE_MSG_FUNCID_GET_OS_REVISION
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_OPEN_SESSION
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_INVOKE_COMMAND
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_CLOSE_SESSION
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_CANCEL
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_REGISTER_SHM
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTEE_MSG_CMD_UNREGISTER_SHM
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '5'
    - item_type: preproc_def
      name: OPTEE_MSG_FUNCID_CALL_WITH_ARG
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
      type_or_value: '0x0004'
    structs:
    - fields:
      - name: buf_ptr
        type: uint64_t
      - name: size
        type: uint64_t
      - name: shm_ref
        type: uint64_t
      item_type: struct
      name: optee_msg_param_tmem
      pos:
        line_end: 112
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    - fields:
      - name: offs
        type: uint64_t
      - name: size
        type: uint64_t
      - name: shm_ref
        type: uint64_t
      item_type: struct
      name: optee_msg_param_rmem
      pos:
        line_end: 124
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    - fields:
      - name: a
        type: uint64_t
      - name: b
        type: uint64_t
      - name: c
        type: uint64_t
      item_type: struct
      name: optee_msg_param_value
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    - fields:
      - name: attr
        type: uint64_t
      - name: u
        type: "union {\n\t\tstruct optee_msg_param_tmem tmem;\n\t\tstruct optee_msg_param_rmem
          rmem;\n\t\tstruct optee_msg_param_value value;\n\t}"
      item_type: struct
      name: optee_msg_param
      pos:
        line_end: 157
        line_start: 150
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    - fields:
      - name: cmd
        type: uint32_t
      - name: func
        type: uint32_t
      - name: session
        type: uint32_t
      - name: cancel_id
        type: uint32_t
      - name: pad
        type: uint32_t
      - name: ret
        type: uint32_t
      - name: ret_origin
        type: uint32_t
      - name: num_params
        type: uint32_t
      - name: params[]
        type: struct optee_msg_param
      item_type: struct
      name: optee_msg_arg
      pos:
        line_end: 189
        line_start: 177
        source_file: /src/xen/xen/arch/arm/include/asm/tee/optee_msg.h
    typedefs: []
    union: []
- function_names:
  - sci_domain_is_enabled
  - sci_domain_is_enabled
  - sci_domain_init
  - sci_domain_sanitise_config
  - sci_domain_destroy
  - sci_relinquish_resources
  - sci_handle_call
  - sci_dt_handle_node
  - sci_dt_finalize
  - sci_assign_dt_device
  source_file: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*domain_init)(struct domain *d,\n                       struct xen_domctl_createdomain
          *config)"
        type: int
      - name: (*domain_sanitise_config)(struct xen_domctl_createdomain *config)
        type: int
      - name: (*domain_destroy)(struct domain *d)
        type: void
      - name: (*relinquish_resources)(struct domain *d)
        type: int
      - name: (*handle_call)(struct cpu_user_regs *regs)
        type: bool
      - name: (*dom0_dt_handle_node)(struct domain *d, struct dt_device_node *node)
        type: bool
      - name: (*dom0_dt_finalize)(struct domain *d, void *fdt)
        type: int
      - name: (*assign_dt_device)(struct domain *d, struct dt_phandle_args *ac_spec)
        type: int
      item_type: struct
      name: sci_mediator_ops
      pos:
        line_end: 74
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/firmware/sci.h
    typedefs: []
    union: []
- function_names:
  - atomic_add
  - atomic_add_return
  - atomic_sub
  - atomic_sub_return
  - atomic_and
  - atomic_cmpxchg
  - __atomic_add_unless
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/atomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FPEXC_EX
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (1U << 31)
    - item_type: preproc_def
      name: FPEXC_EN
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (1U << 30)
    - item_type: preproc_def
      name: FPEXC_FP2V
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (1U << 28)
    - item_type: preproc_def
      name: MVFR0_A_SIMD_MASK
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xfU << 0)
    - item_type: preproc_def
      name: FPSID_IMPLEMENTER_BIT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (24)
    - item_type: preproc_def
      name: FPSID_IMPLEMENTER_MASK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xffU << FPSID_IMPLEMENTER_BIT)
    - item_type: preproc_def
      name: FPSID_ARCH_BIT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (16)
    - item_type: preproc_def
      name: FPSID_ARCH_MASK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xfU << FPSID_ARCH_BIT)
    - item_type: preproc_def
      name: FPSID_PART_BIT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (8)
    - item_type: preproc_def
      name: FPSID_PART_MASK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xffU << FPSID_PART_BIT)
    - item_type: preproc_def
      name: FPSID_VARIANT_BIT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (4)
    - item_type: preproc_def
      name: FPSID_VARIANT_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xfU << FPSID_VARIANT_BIT)
    - item_type: preproc_def
      name: FPSID_REV_BIT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0)
    - item_type: preproc_def
      name: FPSID_REV_MASK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
      type_or_value: (0xfU << FPSID_REV_BIT)
    structs:
    - fields:
      - name: fpregs1[16]
        type: uint64_t
      - name: fpregs2[16]
        type: uint64_t
      - name: fpexc
        type: uint32_t
      - name: fpscr
        type: uint32_t
      - name: fpinst
        type: uint32_t
      - name: fpinst2
        type: uint32_t
      item_type: struct
      name: vfp_state
      pos:
        line_end: 30
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/vfp.h
    typedefs: []
    union: []
- function_names:
  - __xchg
  - xchg
  - __CMPXCHG_CASE
  - __cmpxchg_case_8
  - __int_cmpxchg
  - __cmpxchg
  - __cmpxchg_timeout
  - __cmpxchg64_timeout
  - cmpxchg
  - cmpxchg64
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/cmpxchg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - array_index_mask_nospec
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/nospec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CSDB
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/nospec.h
      type_or_value: '".inst  0xe320f014"'
    - item_type: preproc_def
      name: array_index_mask_nospec
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/nospec.h
      type_or_value: array_index_mask_nospec
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRINT
  - PRINT_ID
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/macros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_first_zero_bit
  - find_next_zero_bit
  - find_first_bit
  - find_next_bit
  - find_first_zero_bit
  - find_next_zero_bit
  - find_first_bit
  - find_next_bit
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - local_irq_disable
  - local_irq_enable
  - local_save_flags
  - local_irq_save
  - local_irq_restore
  - local_irq_is_enabled
  - local_fiq_enable
  - local_fiq_disable
  - local_abort_enable
  - local_abort_disable
  - local_fiq_is_enabled
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/traps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_mfns_in_directmap
  - arch_setup_page_tables
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/mm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/bug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUG_OPCODE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/bug.h
      type_or_value: '0xe7f000f0'
    - item_type: preproc_def
      name: BUG_INSTR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/bug.h
      type_or_value: '".word " __stringify(BUG_OPCODE)'
    - item_type: preproc_def
      name: BUG_FN_REG
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/bug.h
      type_or_value: r0
    structs: []
    typedefs: []
    union: []
- function_names:
  - TLB_HELPER
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/flushtlb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __CP32
  - __CP64
  - CP32
  - CP64
  - LOAD_CP32
  - STORE_CP32
  - LOAD_CP64
  - STORE_CP64
  - CMD_CP32
  - WRITE_SYSREG_ASM
  - READ_CP32
  - WRITE_CP32
  - READ_CP64
  - WRITE_CP64
  - READ_SYSREG32
  - WRITE_SYSREG32
  - READ_SYSREG64
  - WRITE_SYSREG64
  - READ_SYSREG
  - WRITE_SYSREG
  - ICH_LR_REG
  - ICH_LRC_REG
  - READ_SYSREG_LR
  - WRITE_SYSREG_LR
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REGION_TEXT_PRBAR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
      type_or_value: '0x18    '
    - item_type: preproc_def
      name: REGION_RO_PRBAR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
      type_or_value: '0x1D    '
    - item_type: preproc_def
      name: REGION_DATA_PRBAR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
      type_or_value: '0x19    '
    - item_type: preproc_def
      name: REGION_DEVICE_PRBAR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/sysregs.h
      type_or_value: '0x11    '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/processor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACTLR_CAXX_SMP
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/processor.h
      type_or_value: (1<<6)
    structs:
    - fields:
      - name: r0
        type: uint32_t
      - name: r1
        type: uint32_t
      - name: r2
        type: uint32_t
      - name: r3
        type: uint32_t
      - name: r4
        type: uint32_t
      - name: r5
        type: uint32_t
      - name: r6
        type: uint32_t
      - name: r7
        type: uint32_t
      - name: r8
        type: uint32_t
      - name: r9
        type: uint32_t
      - name: r10
        type: uint32_t
      - name: r12
        type: uint32_t
      - name: sp
        type: uint32_t
      - name: cpsr
        type: uint32_t
      - name: hsr
        type: uint32_t
      - name: sp_usr
        type: uint32_t
      - name: sp_irq
        type: uint32_t
      - name: sp_svc
        type: uint32_t
      - name: sp_abt
        type: uint32_t
      - name: sp_und
        type: uint32_t
      - name: r8_fiq
        type: uint32_t
      - name: sp_fiq
        type: uint32_t
      - name: spsr_svc
        type: uint32_t
      - name: pad1
        type: uint32_t
      item_type: struct
      name: cpu_user_regs
      pos:
        line_end: 56
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/processor.h
    typedefs: []
    union: []
- function_names:
  - insn_is_branch_imm
  - insn_get_branch_offset
  - insn_set_branch_offset
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/insn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/mpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPU_REGION_RES0
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/mpu.h
      type_or_value: '0x0'
    structs:
    - fields:
      - name: prbar
        type: prbar_t
      - name: prlar
        type: prlar_t
      - name: refcount
        type: uint8_t
      - name: pad[7]
        type: uint8_t
      item_type: struct
      name: pr_t
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/mpu.h
    typedefs: []
    union:
    - fields:
      - name: reg
        type: "struct {\n        unsigned int xn:1;       /* Execute-Never */\n        unsigned
          int ap_0:1;     /* Access Permission AP[0] */\n        unsigned int ro:1;
          \      /* Access Permission AP[1] */\n        unsigned int sh:2;       /*
          Shareability */\n        unsigned int res0:1;\n        unsigned int base:26;
          \   /* Base Address */\n    }"
      - name: bits
        type: uint32_t
      item_type: union
      name: prbar_t
      pos:
        line_end: 24
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/mpu.h
    - fields:
      - name: reg
        type: "struct {\n        unsigned int en:1;     /* Region enable */\n        unsigned
          int ai:3;     /* Memory Attribute Index */\n        unsigned int res0:2;\n
          \       unsigned int limit:26; /* Limit Address */\n    }"
      - name: bits
        type: uint32_t
      item_type: union
      name: prlar_t
      pos:
        line_end: 35
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/arm32/mpu.h
- function_names:
  - __raw_writeb
  - __raw_writew
  - __raw_writel
  - __raw_readb
  - __raw_readw
  - __raw_readl
  - __iormb
  - __iowmb
  - readb_relaxed
  - readw_relaxed
  - readl_relaxed
  - readq_relaxed_non_atomic
  - writeb_relaxed
  - writew_relaxed
  - writel_relaxed
  - writeq_relaxed_non_atomic
  - readb
  - readw
  - readl
  - writeb
  - writew
  - writel
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __invalidate_dcache_one
  - __clean_dcache_one
  - __clean_and_invalidate_dcache_one
  - invalidate_icache
  - invalidate_icache_local
  - __va_to_par
  - gva_to_ma_par
  - gva_to_ipa_par
  - clear_page
  source_file: /src/xen/xen/arch/arm/include/asm/arm32/page.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - atomic_add
  - atomic_add_return
  - atomic_sub
  - atomic_sub_return
  - atomic_and
  - atomic_cmpxchg
  - __atomic_add_unless
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/atomic.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/vfp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __vfp_aligned
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/vfp.h
      type_or_value: __attribute__((aligned(16)))
    structs:
    - fields:
      - name: __vfp_aligned
        type: uint64_t
      - name: fpcr
        type: register_t
      - name: fpexc32_el2
        type: register_t
      - name: fpsr
        type: register_t
      item_type: struct
      name: vfp_state
      pos:
        line_end: 28
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/vfp.h
    typedefs: []
    union: []
- function_names:
  - __xchg
  - xchg
  - __CMPXCHG_CASE
  - __int_cmpxchg
  - __cmpxchg
  - __cmpxchg_timeout
  - cmpxchg
  - cmpxchg64
  - __cmpxchg64_timeout
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/cmpxchg.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EFIERR
  - EFIERR_OEM
  - BREAKPOINT
  - ALIGN_VARIABLE
  - EFI_SIGNATURE_16
  - EFI_SIGNATURE_32
  - EFI_SIGNATURE_64
  - RUNTIME_CODE
  - BEGIN_RUNTIME_DATA
  - END_RUNTIME_DATA
  - EFI_DRIVER_ENTRY_POINT
  - LOAD_INTERNAL_DRIVER
  - INTERFACE_DECL
  - INTERFACE_DECL
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EFI_ERROR_MASK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: 0x8000000000000000ULL
    - item_type: preproc_def
      name: BAD_POINTER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: 0xFBFBFBFBFBFBFBFBULL
    - item_type: preproc_def
      name: MAX_ADDRESS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: 0xFFFFFFFFFFFFFFFFULL
    - item_type: preproc_def
      name: EFI_STUB_ERROR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: MAX_ADDRESS
    - item_type: preproc_def
      name: __WCHAR_TYPE__
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: short
    - item_type: preproc_def
      name: VOID
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: void
    - item_type: preproc_def
      name: MIN_ALIGNMENT_SIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: '4'
    - item_type: preproc_def
      name: VOLATILE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type_or_value: volatile
    structs: []
    typedefs:
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned long long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: long long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: char
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: char
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned long long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: long long
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned int
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned short
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: short
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: unsigned char
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: char
    - item_type: typedef
      name: UINT64
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: uint64_t
    - item_type: typedef
      name: INT64
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int64_t
    - item_type: typedef
      name: UINT32
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: uint32_t
    - item_type: typedef
      name: INT32
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int32_t
    - item_type: typedef
      name: UINT16
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: uint16_t
    - item_type: typedef
      name: INT16
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int16_t
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: uint8_t
    - item_type: typedef
      name: INT8
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int8_t
    - item_type: typedef
      name: WCHAR
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: __WCHAR_TYPE__
    - item_type: typedef
      name: INTN
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: int64_t
    - item_type: typedef
      name: UINTN
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/efibind.h
      type: uint64_t
    union: []
- function_names:
  - csdb
  - array_index_mask_nospec
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/nospec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: array_index_mask_nospec
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/nospec.h
      type_or_value: array_index_mask_nospec
    structs: []
    typedefs: []
    union: []
- function_names:
  - sve_decode_vl
  - sve_encode_vl
  - is_sve_domain
  - is_sve_domain
  - get_sys_vl_len
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SVE_VL_MAX_BITS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
      type_or_value: 2048U
    - item_type: preproc_def
      name: SVE_VL_MULTIPLE_VAL
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
      type_or_value: 128U
    - item_type: preproc_def
      name: opt_dom0_sve
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sve.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - HSR_SYSREG
  - HSR_SYSREG_DBGBVRn_EL1
  - HSR_SYSREG_DBGBCRn_EL1
  - HSR_SYSREG_DBGWVRn_EL1
  - HSR_SYSREG_DBGWCRn_EL1
  - HSR_SYSREG_DBG_CASES
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __HSR_SYSREG_c0
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __HSR_SYSREG_c1
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __HSR_SYSREG_c2
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '2'
    - item_type: preproc_def
      name: __HSR_SYSREG_c3
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '3'
    - item_type: preproc_def
      name: __HSR_SYSREG_c4
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __HSR_SYSREG_c5
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __HSR_SYSREG_c6
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __HSR_SYSREG_c7
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '7'
    - item_type: preproc_def
      name: __HSR_SYSREG_c8
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '8'
    - item_type: preproc_def
      name: __HSR_SYSREG_c9
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '9'
    - item_type: preproc_def
      name: __HSR_SYSREG_c10
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '10'
    - item_type: preproc_def
      name: __HSR_SYSREG_c11
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '11'
    - item_type: preproc_def
      name: __HSR_SYSREG_c12
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '12'
    - item_type: preproc_def
      name: __HSR_SYSREG_c13
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '13'
    - item_type: preproc_def
      name: __HSR_SYSREG_c14
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '14'
    - item_type: preproc_def
      name: __HSR_SYSREG_c15
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '15'
    - item_type: preproc_def
      name: __HSR_SYSREG_0
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __HSR_SYSREG_1
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __HSR_SYSREG_2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '2'
    - item_type: preproc_def
      name: __HSR_SYSREG_3
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '3'
    - item_type: preproc_def
      name: __HSR_SYSREG_4
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '4'
    - item_type: preproc_def
      name: __HSR_SYSREG_5
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '5'
    - item_type: preproc_def
      name: __HSR_SYSREG_6
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '6'
    - item_type: preproc_def
      name: __HSR_SYSREG_7
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: '7'
    - item_type: preproc_def
      name: HSR_SYSREG_DCISW
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(1,0,c7,c6,2)
    - item_type: preproc_def
      name: HSR_SYSREG_DCCSW
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(1,0,c7,c10,2)
    - item_type: preproc_def
      name: HSR_SYSREG_DCCISW
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(1,0,c7,c14,2)
    - item_type: preproc_def
      name: HSR_SYSREG_MDSCR_EL1
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c0,c2,2)
    - item_type: preproc_def
      name: HSR_SYSREG_MDRAR_EL1
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c1,c0,0)
    - item_type: preproc_def
      name: HSR_SYSREG_OSLAR_EL1
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c1,c0,4)
    - item_type: preproc_def
      name: HSR_SYSREG_OSLSR_EL1
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c1,c1,4)
    - item_type: preproc_def
      name: HSR_SYSREG_OSDLR_EL1
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c1,c3,4)
    - item_type: preproc_def
      name: HSR_SYSREG_DBGPRCR_EL1
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,0,c1,c4,4)
    - item_type: preproc_def
      name: HSR_SYSREG_MDCCSR_EL0
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,3,c0,c1,0)
    - item_type: preproc_def
      name: HSR_SYSREG_DBGDTR_EL0
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,3,c0,c4,0)
    - item_type: preproc_def
      name: HSR_SYSREG_DBGDTRTX_EL0
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,3,c0,c5,0)
    - item_type: preproc_def
      name: HSR_SYSREG_DBGDTRRX_EL0
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(2,3,c0,c5,0)
    - item_type: preproc_def
      name: HSR_SYSREG_SCTLR_EL1
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c1, c0,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ACTLR_EL1
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c1, c0,1)
    - item_type: preproc_def
      name: HSR_SYSREG_TTBR0_EL1
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c2, c0,0)
    - item_type: preproc_def
      name: HSR_SYSREG_TTBR1_EL1
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c2, c0,1)
    - item_type: preproc_def
      name: HSR_SYSREG_TCR_EL1
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c2, c0,2)
    - item_type: preproc_def
      name: HSR_SYSREG_AFSR0_EL1
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c5, c1,0)
    - item_type: preproc_def
      name: HSR_SYSREG_AFSR1_EL1
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c5, c1,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ESR_EL1
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c5, c2,0)
    - item_type: preproc_def
      name: HSR_SYSREG_FAR_EL1
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c6, c0,0)
    - item_type: preproc_def
      name: HSR_SYSREG_PMINTENSET_EL1
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c9,c14,1)
    - item_type: preproc_def
      name: HSR_SYSREG_PMINTENCLR_EL1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c9,c14,2)
    - item_type: preproc_def
      name: HSR_SYSREG_MAIR_EL1
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c10,c2,0)
    - item_type: preproc_def
      name: HSR_SYSREG_AMAIR_EL1
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c10,c3,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ICC_SGI1R_EL1
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c12,c11,5)
    - item_type: preproc_def
      name: HSR_SYSREG_ICC_ASGI1R_EL1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,1,c12,c11,6)
    - item_type: preproc_def
      name: HSR_SYSREG_ICC_SGI0R_EL1
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,2,c12,c11,7)
    - item_type: preproc_def
      name: HSR_SYSREG_ICC_SRE_EL1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c12,c12,5)
    - item_type: preproc_def
      name: HSR_SYSREG_CONTEXTIDR_EL1
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c13,c0,1)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCR_EL0
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,0)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCNTENSET_EL0
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,1)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCNTENCLR_EL0
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,2)
    - item_type: preproc_def
      name: HSR_SYSREG_PMOVSCLR_EL0
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,3)
    - item_type: preproc_def
      name: HSR_SYSREG_PMSWINC_EL0
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,4)
    - item_type: preproc_def
      name: HSR_SYSREG_PMSELR_EL0
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,5)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCEID0_EL0
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,6)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCEID1_EL0
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c12,7)
    - item_type: preproc_def
      name: HSR_SYSREG_PMCCNTR_EL0
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c13,0)
    - item_type: preproc_def
      name: HSR_SYSREG_PMXEVTYPER_EL0
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c13,1)
    - item_type: preproc_def
      name: HSR_SYSREG_PMXEVCNTR_EL0
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c13,2)
    - item_type: preproc_def
      name: HSR_SYSREG_PMUSERENR_EL0
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c14,0)
    - item_type: preproc_def
      name: HSR_SYSREG_PMOVSSET_EL0
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c9,c14,3)
    - item_type: preproc_def
      name: HSR_SYSREG_CNTPCT_EL0
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c14,c0,0)
    - item_type: preproc_def
      name: HSR_SYSREG_CNTP_TVAL_EL0
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c14,c2,0)
    - item_type: preproc_def
      name: HSR_SYSREG_CNTP_CTL_EL0
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c14,c2,1)
    - item_type: preproc_def
      name: HSR_SYSREG_CNTP_CVAL_EL0
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,3,c14,c2,2)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_PFR0_EL1
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_PFR1_EL1
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_PFR2_EL1
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,4)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_DFR0_EL1
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,2)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_DFR1_EL1
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,5)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AFR0_EL1
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,3)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR0_EL1
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,4)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR1_EL1
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,5)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR2_EL1
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,6)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR3_EL1
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c1,7)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR4_EL1
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,6)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_MMFR5_EL1
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,6)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR0_EL1
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR1_EL1
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR2_EL1
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,2)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR3_EL1
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,3)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR4_EL1
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,4)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR5_EL1
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,5)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_ISAR6_EL1
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c2,7)
    - item_type: preproc_def
      name: HSR_SYSREG_MVFR0_EL1
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,0)
    - item_type: preproc_def
      name: HSR_SYSREG_MVFR1_EL1
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,1)
    - item_type: preproc_def
      name: HSR_SYSREG_MVFR2_EL1
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c3,2)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64PFR0_EL1
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c4,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64PFR1_EL1
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c4,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64DFR0_EL1
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c5,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64DFR1_EL1
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c5,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64ISAR0_EL1
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c6,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64ISAR1_EL1
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c6,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64MMFR0_EL1
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c7,0)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64MMFR1_EL1
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c7,1)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64MMFR2_EL1
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c7,2)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64AFR0_EL1
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c5,4)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64AFR1_EL1
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c5,5)
    - item_type: preproc_def
      name: HSR_SYSREG_ID_AA64ZFR0_EL1
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/hsr.h
      type_or_value: HSR_SYSREG(3,0,c0,c4,4)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PRINT
  - PRINT_ID
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/macros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_first_bit
  - find_first_zero_bit
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - local_fiq_disable
  - local_fiq_enable
  - local_irq_disable
  - local_irq_enable
  - local_abort_disable
  - local_abort_enable
  - local_save_flags
  - local_irq_save
  - local_irq_restore
  - local_irq_is_enabled
  - local_fiq_is_enabled
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/system.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/traps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - arch_mfns_in_directmap
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/mm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/bug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUG_INSTR
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/bug.h
      type_or_value: '"brk " __stringify(BRK_BUG_FRAME_IMM)'
    - item_type: preproc_def
      name: BUG_FN_REG
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/bug.h
      type_or_value: x0
    structs: []
    typedefs: []
    union: []
- function_names:
  - TLB_HELPER
  - TLB_HELPER_VA
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/flushtlb.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FTR_VISIBLE_IF_IS_ENABLED
  - cpuid_feature_extract_signed_field_width
  - cpuid_feature_extract_signed_field
  - cpuid_feature_extract_unsigned_field_width
  - cpuid_feature_extract_unsigned_field
  - arm64_ftr_mask
  - cpuid_feature_extract_field_width
  - cpuid_feature_extract_field
  - arm64_ftr_value
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
  types:
    enum:
    - enumerators:
      - name: FTR_EXACT
      - name: FTR_LOWER_SAFE
      - name: FTR_HIGHER_OR_ZERO_SAFE
      - name: FTR_HIGHER_SAFE
      item_type: enum
      name: ftr_type
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    preproc_defs:
    - item_type: preproc_def
      name: FTR_STRICT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "true\t"
    - item_type: preproc_def
      name: FTR_NONSTRICT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "false\t"
    - item_type: preproc_def
      name: FTR_SIGNED
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "true\t"
    - item_type: preproc_def
      name: FTR_UNSIGNED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "false\t"
    - item_type: preproc_def
      name: FTR_VISIBLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "true\t"
    - item_type: preproc_def
      name: FTR_HIDDEN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
      type_or_value: "false\t"
    structs:
    - fields:
      - name: sign
        type: bool
      - name: visible
        type: bool
      - name: strict
        type: bool
      - name: type
        type: enum ftr_type
      - name: shift
        type: u8
      - name: width
        type: u8
      - name: safe_val
        type: s64
      item_type: struct
      name: arm64_ftr_bits
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/cpufeature.h
    typedefs: []
    union: []
- function_names:
  - __LR0_EL2
  - __LR8_EL2
  - __AP0Rx_EL2
  - __AP1Rx_EL2
  - WRITE_SYSREG_ASM
  - WRITE_SYSREG64
  - READ_SYSREG64
  - READ_SYSREG
  - WRITE_SYSREG
  - ICH_LR_REG
  - WRITE_SYSREG_LR
  - READ_SYSREG_LR
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ICC_PMR_EL1
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C4_C6_0
    - item_type: preproc_def
      name: ICC_DIR_EL1
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C11_1
    - item_type: preproc_def
      name: ICC_SGI1R_EL1
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C11_5
    - item_type: preproc_def
      name: ICC_EOIR1_EL1
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_1
    - item_type: preproc_def
      name: ICC_IAR1_EL1
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_0
    - item_type: preproc_def
      name: ICC_BPR1_EL1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_3
    - item_type: preproc_def
      name: ICC_CTLR_EL1
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_4
    - item_type: preproc_def
      name: ICC_SRE_EL1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_5
    - item_type: preproc_def
      name: ICC_IGRPEN1_EL1
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C12_C12_7
    - item_type: preproc_def
      name: ICH_VSEIR_EL2
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C9_4
    - item_type: preproc_def
      name: ICC_SRE_EL2
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C9_5
    - item_type: preproc_def
      name: ICH_HCR_EL2
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_0
    - item_type: preproc_def
      name: ICH_VTR_EL2
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_1
    - item_type: preproc_def
      name: ICH_MISR_EL2
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_2
    - item_type: preproc_def
      name: ICH_EISR_EL2
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_3
    - item_type: preproc_def
      name: ICH_ELSR_EL2
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_5
    - item_type: preproc_def
      name: ICH_VMCR_EL2
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C12_C11_7
    - item_type: preproc_def
      name: ZCR_EL2
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_4_C1_C2_0
    - item_type: preproc_def
      name: ICH_LR0_EL2
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(0)
    - item_type: preproc_def
      name: ICH_LR1_EL2
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(1)
    - item_type: preproc_def
      name: ICH_LR2_EL2
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(2)
    - item_type: preproc_def
      name: ICH_LR3_EL2
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(3)
    - item_type: preproc_def
      name: ICH_LR4_EL2
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(4)
    - item_type: preproc_def
      name: ICH_LR5_EL2
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(5)
    - item_type: preproc_def
      name: ICH_LR6_EL2
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(6)
    - item_type: preproc_def
      name: ICH_LR7_EL2
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR0_EL2(7)
    - item_type: preproc_def
      name: ICH_LR8_EL2
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(0)
    - item_type: preproc_def
      name: ICH_LR9_EL2
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(1)
    - item_type: preproc_def
      name: ICH_LR10_EL2
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(2)
    - item_type: preproc_def
      name: ICH_LR11_EL2
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(3)
    - item_type: preproc_def
      name: ICH_LR12_EL2
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(4)
    - item_type: preproc_def
      name: ICH_LR13_EL2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(5)
    - item_type: preproc_def
      name: ICH_LR14_EL2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(6)
    - item_type: preproc_def
      name: ICH_LR15_EL2
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __LR8_EL2(7)
    - item_type: preproc_def
      name: ICH_AP0R0_EL2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP0Rx_EL2(0)
    - item_type: preproc_def
      name: ICH_AP0R1_EL2
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP0Rx_EL2(1)
    - item_type: preproc_def
      name: ICH_AP0R2_EL2
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP0Rx_EL2(2)
    - item_type: preproc_def
      name: ICH_AP0R3_EL2
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP0Rx_EL2(3)
    - item_type: preproc_def
      name: ICH_AP1R0_EL2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP1Rx_EL2(0)
    - item_type: preproc_def
      name: ICH_AP1R1_EL2
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP1Rx_EL2(1)
    - item_type: preproc_def
      name: ICH_AP1R2_EL2
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP1Rx_EL2(2)
    - item_type: preproc_def
      name: ICH_AP1R3_EL2
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: __AP1Rx_EL2(3)
    - item_type: preproc_def
      name: ID_AA64MMFR2_EL1
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C7_2
    - item_type: preproc_def
      name: ID_PFR2_EL1
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C3_4
    - item_type: preproc_def
      name: ID_MMFR4_EL1
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C2_6
    - item_type: preproc_def
      name: ID_MMFR5_EL1
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C3_6
    - item_type: preproc_def
      name: ID_ISAR6_EL1
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C2_7
    - item_type: preproc_def
      name: ID_AA64ZFR0_EL1
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C4_4
    - item_type: preproc_def
      name: ID_DFR1_EL1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C3_5
    - item_type: preproc_def
      name: ID_AA64ISAR2_EL1
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C0_C6_2
    - item_type: preproc_def
      name: ZCR_EL1
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: S3_0_C1_C2_0
    - item_type: preproc_def
      name: ID_AA64ISAR0_RNDR_SHIFT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ID_AA64ISAR0_TLB_SHIFT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: ID_AA64ISAR0_TS_SHIFT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '52'
    - item_type: preproc_def
      name: ID_AA64ISAR0_FHM_SHIFT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ID_AA64ISAR0_DP_SHIFT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64ISAR0_SM4_SHIFT
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64ISAR0_SM3_SHIFT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64ISAR0_SHA3_SHIFT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64ISAR0_RDM_SHIFT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64ISAR0_ATOMICS_SHIFT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64ISAR0_CRC32_SHIFT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64ISAR0_SHA2_SHIFT
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64ISAR0_SHA1_SHIFT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64ISAR0_AES_SHIFT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64ISAR0_TLB_RANGE_NI
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR0_TLB_RANGE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ISAR1_I8MM_SHIFT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '52'
    - item_type: preproc_def
      name: ID_AA64ISAR1_DGH_SHIFT
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ID_AA64ISAR1_BF16_SHIFT
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64ISAR1_SPECRES_SHIFT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64ISAR1_SB_SHIFT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64ISAR1_FRINTTS_SHIFT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPI_SHIFT
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPA_SHIFT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_AA64ISAR1_LRCPC_SHIFT
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64ISAR1_FCMA_SHIFT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64ISAR1_JSCVT_SHIFT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_SHIFT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_SHIFT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64ISAR1_DPB_SHIFT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_NI
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_ARCHITECTED
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_ARCH_EPAC
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_ARCH_EPAC2
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_ARCH_EPAC2_FPAC
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_AA64ISAR1_APA_ARCH_EPAC2_FPAC_CMB
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_NI
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_IMP_DEF
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_IMP_DEF_EPAC
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_IMP_DEF_EPAC2
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_IMP_DEF_EPAC2_FPAC
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_AA64ISAR1_API_IMP_DEF_EPAC2_FPAC_CMB
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPA_NI
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPA_ARCHITECTED
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPI_NI
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR1_GPI_IMP_DEF
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR2_CLEARBHB_SHIFT
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_SHIFT
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64ISAR2_GPA3_SHIFT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64ISAR2_RPRES_SHIFT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64ISAR2_WFXT_SHIFT
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64ISAR2_RPRES_8BIT
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR2_RPRES_12BIT
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR2_WFXT_NI
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR2_WFXT_SUPPORTED
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_NI
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_ARCHITECTED
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_ARCH_EPAC
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_ARCH_EPAC2
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_ARCH_EPAC2_FPAC
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_AA64ISAR2_APA3_ARCH_EPAC2_FPAC_CMB
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_AA64ISAR2_GPA3_NI
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64ISAR2_GPA3_ARCHITECTED
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR0_CSV3_SHIFT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ID_AA64PFR0_CSV2_SHIFT
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: ID_AA64PFR0_DIT_SHIFT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ID_AA64PFR0_AMU_SHIFT
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64PFR0_MPAM_SHIFT
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64PFR0_SEL2_SHIFT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64PFR0_SVE_SHIFT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64PFR0_RAS_SHIFT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64PFR0_GIC_SHIFT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_AA64PFR0_ASIMD_SHIFT
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64PFR0_FP_SHIFT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64PFR0_EL3_SHIFT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64PFR0_EL2_SHIFT
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64PFR0_EL1_SHIFT
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64PFR0_EL0_SHIFT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64PFR0_AMU
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR0_SVE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR0_RAS_V1
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR0_RAS_V1P1
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64PFR0_FP_NI
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64PFR0_FP_SUPPORTED
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64PFR0_ASIMD_NI
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64PFR0_ASIMD_SUPPORTED
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64PFR0_ELx_64BIT_ONLY
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR0_ELx_32BIT_64BIT
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64PFR1_MPAMFRAC_SHIFT
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64PFR1_RASFRAC_SHIFT
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64PFR1_MTE_SHIFT
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64PFR1_SSBS_SHIFT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64PFR1_BT_SHIFT
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64PFR1_SSBS_PSTATE_NI
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64PFR1_SSBS_PSTATE_ONLY
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ID_AA64PFR1_SSBS_PSTATE_INSNS
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ID_AA64PFR1_BT_BTI
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR1_MTE_NI
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64PFR1_MTE_EL0
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64PFR1_MTE
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64PFR1_MTE_ASYMM
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_AA64ZFR0_F64MM_SHIFT
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: ID_AA64ZFR0_F32MM_SHIFT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '52'
    - item_type: preproc_def
      name: ID_AA64ZFR0_I8MM_SHIFT
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SM4_SHIFT
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SHA3_SHIFT
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64ZFR0_BF16_SHIFT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64ZFR0_BITPERM_SHIFT
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64ZFR0_AES_SHIFT
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SVEVER_SHIFT
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64ZFR0_F64MM
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_F32MM
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_I8MM
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_BF16
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SM4
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SHA3
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_BITPERM
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_AES
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64ZFR0_AES_PMULL
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64ZFR0_SVEVER_SVE2
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64MMFR0_ECV_SHIFT
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ID_AA64MMFR0_FGT_SHIFT
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: ID_AA64MMFR0_EXS_SHIFT
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN4_2_SHIFT
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN64_2_SHIFT
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN16_2_SHIFT
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN4_SHIFT
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN64_SHIFT
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN16_SHIFT
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64MMFR0_BIGENDEL0_SHIFT
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64MMFR0_SNSMEM_SHIFT
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64MMFR0_BIGENDEL_SHIFT
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64MMFR0_ASID_SHIFT
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_SHIFT
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_ASID_8
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_ASID_16
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN4_NI
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN4_SUPPORTED_MIN
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN4_SUPPORTED_MAX
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN64_NI
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN64_SUPPORTED_MIN
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN64_SUPPORTED_MAX
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN16_NI
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN16_SUPPORTED_MIN
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN16_SUPPORTED_MAX
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_32
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_36
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_40
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_42
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_44
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_48
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_AA64MMFR0_PARANGE_52
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: ARM64_MIN_PARANGE_BITS
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN_2_SUPPORTED_DEFAULT
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN_2_SUPPORTED_NONE
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN_2_SUPPORTED_MIN
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_AA64MMFR0_TGRAN_2_SUPPORTED_MAX
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ID_AA64MMFR1_ECBHB_SHIFT
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ID_AA64MMFR1_AFP_SHIFT
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64MMFR1_ETS_SHIFT
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64MMFR1_TWED_SHIFT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64MMFR1_XNX_SHIFT
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64MMFR1_SPECSEI_SHIFT
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_AA64MMFR1_PAN_SHIFT
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64MMFR1_LOR_SHIFT
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64MMFR1_HPD_SHIFT
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64MMFR1_VHE_SHIFT
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64MMFR1_VMIDBITS_SHIFT
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64MMFR1_HADBS_SHIFT
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64MMFR1_VMIDBITS_8
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64MMFR1_VMIDBITS_16
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ID_AA64MMFR2_E0PD_SHIFT
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '60'
    - item_type: preproc_def
      name: ID_AA64MMFR2_EVT_SHIFT
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '56'
    - item_type: preproc_def
      name: ID_AA64MMFR2_BBM_SHIFT
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '52'
    - item_type: preproc_def
      name: ID_AA64MMFR2_TTL_SHIFT
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ID_AA64MMFR2_FWB_SHIFT
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64MMFR2_IDS_SHIFT
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64MMFR2_AT_SHIFT
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64MMFR2_ST_SHIFT
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64MMFR2_NV_SHIFT
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_AA64MMFR2_CCIDX_SHIFT
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64MMFR2_LVA_SHIFT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_AA64MMFR2_IESB_SHIFT
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64MMFR2_LSM_SHIFT
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64MMFR2_UAO_SHIFT
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64MMFR2_CNP_SHIFT
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64DFR0_MTPMU_SHIFT
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '48'
    - item_type: preproc_def
      name: ID_AA64DFR0_TRBE_SHIFT
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '44'
    - item_type: preproc_def
      name: ID_AA64DFR0_TRACE_FILT_SHIFT
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '40'
    - item_type: preproc_def
      name: ID_AA64DFR0_DOUBLELOCK_SHIFT
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '36'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMSVER_SHIFT
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '32'
    - item_type: preproc_def
      name: ID_AA64DFR0_CTX_CMPS_SHIFT
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_AA64DFR0_WRPS_SHIFT
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_AA64DFR0_BRPS_SHIFT
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_SHIFT
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_AA64DFR0_TRACEVER_SHIFT
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_AA64DFR0_DEBUGVER_SHIFT
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_8_0
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_8_1
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_8_4
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_8_5
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_8_7
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x7'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMUVER_IMP_DEF
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0xf'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMSVER_8_2
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: ID_AA64DFR0_PMSVER_8_3
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_SHIFT
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_8_0
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_8_1
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_8_4
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x5'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_8_5
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x6'
    - item_type: preproc_def
      name: ID_ISAR4_SWP_FRAC_SHIFT
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_ISAR4_PSR_M_SHIFT
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_ISAR4_SYNCH_PRIM_FRAC_SHIFT
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_ISAR4_BARRIER_SHIFT
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_ISAR4_SMC_SHIFT
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_ISAR4_WRITEBACK_SHIFT
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_ISAR4_WITHSHIFTS_SHIFT
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_ISAR4_UNPRIV_SHIFT
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_DFR1_MTPMU_SHIFT
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_ISAR0_DIVIDE_SHIFT
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_ISAR0_DEBUG_SHIFT
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_ISAR0_COPROC_SHIFT
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_ISAR0_CMPBRANCH_SHIFT
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_ISAR0_BITFIELD_SHIFT
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_ISAR0_BITCOUNT_SHIFT
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_ISAR0_SWAP_SHIFT
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_ISAR5_RDM_SHIFT
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_ISAR5_CRC32_SHIFT
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_ISAR5_SHA2_SHIFT
      pos:
        line_end: 372
        line_start: 371
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_ISAR5_SHA1_SHIFT
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_ISAR5_AES_SHIFT
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_ISAR5_SEVL_SHIFT
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_ISAR6_I8MM_SHIFT
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_ISAR6_BF16_SHIFT
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_ISAR6_SPECRES_SHIFT
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_ISAR6_SB_SHIFT
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_ISAR6_FHM_SHIFT
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_ISAR6_DP_SHIFT
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_ISAR6_JSCVT_SHIFT
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_MMFR0_INNERSHR_SHIFT
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_MMFR0_FCSE_SHIFT
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_MMFR0_AUXREG_SHIFT
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_MMFR0_TCM_SHIFT
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_MMFR0_SHARELVL_SHIFT
      pos:
        line_end: 389
        line_start: 388
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_MMFR0_OUTERSHR_SHIFT
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_MMFR0_PMSA_SHIFT
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_MMFR0_VMSA_SHIFT
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_MMFR4_EVT_SHIFT
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_MMFR4_CCIDX_SHIFT
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_MMFR4_LSM_SHIFT
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_MMFR4_HPDS_SHIFT
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_MMFR4_CNP_SHIFT
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_MMFR4_XNX_SHIFT
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_MMFR4_AC2_SHIFT
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_MMFR4_SPECSEI_SHIFT
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_MMFR5_ETS_SHIFT
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_PFR0_DIT_SHIFT
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_PFR0_CSV2_SHIFT
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_PFR0_STATE3_SHIFT
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_PFR0_STATE2_SHIFT
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_PFR0_STATE1_SHIFT
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_PFR0_STATE0_SHIFT
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_DFR0_PERFMON_SHIFT
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_DFR0_MPROFDBG_SHIFT
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_DFR0_MMAPTRC_SHIFT
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_DFR0_COPTRC_SHIFT
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_DFR0_MMAPDBG_SHIFT
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_DFR0_COPSDBG_SHIFT
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_DFR0_COPDBG_SHIFT
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_PFR2_SSBS_SHIFT
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_PFR2_CSV3_SHIFT
      pos:
        line_end: 421
        line_start: 420
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MVFR0_FPROUND_SHIFT
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: MVFR0_FPSHVEC_SHIFT
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MVFR0_FPSQRT_SHIFT
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MVFR0_FPDIVIDE_SHIFT
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MVFR0_FPTRAP_SHIFT
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MVFR0_FPDP_SHIFT
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MVFR0_FPSP_SHIFT
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MVFR0_SIMD_SHIFT
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MVFR1_SIMDFMAC_SHIFT
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: MVFR1_FPHP_SHIFT
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MVFR1_SIMDHP_SHIFT
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MVFR1_SIMDSP_SHIFT
      pos:
        line_end: 435
        line_start: 434
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MVFR1_SIMDINT_SHIFT
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MVFR1_SIMDLS_SHIFT
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MVFR1_FPDNAN_SHIFT
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MVFR1_FPFTZ_SHIFT
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ID_PFR1_GIC_SHIFT
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '28'
    - item_type: preproc_def
      name: ID_PFR1_VIRT_FRAC_SHIFT
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '24'
    - item_type: preproc_def
      name: ID_PFR1_SEC_FRAC_SHIFT
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '20'
    - item_type: preproc_def
      name: ID_PFR1_GENTIMER_SHIFT
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: ID_PFR1_VIRTUALIZATION_SHIFT
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '12'
    - item_type: preproc_def
      name: ID_PFR1_MPROGMOD_SHIFT
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ID_PFR1_SECURITY_SHIFT
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ID_PFR1_PROGMOD_SHIFT
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MVFR2_FPMISC_SHIFT
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MVFR2_SIMDMISC_SHIFT
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DCZID_DZP_SHIFT
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DCZID_BS_SHIFT
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ZCR_ELx_LEN_SHIFT
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ZCR_ELx_LEN_SIZE
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '9'
    - item_type: preproc_def
      name: ZCR_ELx_LEN_MASK
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x1ff'
    - item_type: preproc_def
      name: CNTHP_CTL_EL2
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: CNTHPS_CTL_EL2
    - item_type: preproc_def
      name: CNTHP_CVAL_EL2
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: CNTHPS_CVAL_EL2
    - item_type: preproc_def
      name: REGION_TEXT_PRBAR
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x38    '
    - item_type: preproc_def
      name: REGION_RO_PRBAR
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x3A    '
    - item_type: preproc_def
      name: REGION_DATA_PRBAR
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x32    '
    - item_type: preproc_def
      name: REGION_DEVICE_PRBAR
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/sysregs.h
      type_or_value: '0x22    '
    structs: []
    typedefs: []
    union: []
- function_names:
  - __DECL_REG
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/processor.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sp
        type: register_t
      - name: cpsr
        type: uint64_t
      - name: hsr
        type: uint64_t
      - name: pad0
        type: uint64_t
      - name: spsr_fiq
        type: uint32_t
      - name: sp_el0
        type: uint64_t
      - name: sp_el1
        type: uint64_t
      item_type: struct
      name: cpu_user_regs
      pos:
        line_end: 84
        line_start: 13
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/processor.h
    typedefs: []
    union: []
- function_names:
  - __AARCH64_INSN_FUNCS
  - insn_is_branch_imm
  - insn_get_branch_offset
  - insn_set_branch_offset
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
  types:
    enum:
    - enumerators:
      - name: AARCH64_INSN_HINT_NOP
        value: 0x0 << 5
      - name: AARCH64_INSN_HINT_WFE
        value: 0x2 << 5
      - name: AARCH64_INSN_HINT_YIELD
        value: 0x1 << 5
      - name: AARCH64_INSN_HINT_WFI
        value: 0x3 << 5
      - name: AARCH64_INSN_HINT_SEV
        value: 0x4 << 5
      - name: AARCH64_INSN_HINT_SEVL
        value: 0x5 << 5
      item_type: enum
      name: aarch64_insn_hint_op
      pos:
        line_end: 31
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    - enumerators:
      - name: AARCH64_INSN_IMM_ADR
      - name: AARCH64_INSN_IMM_26
      - name: AARCH64_INSN_IMM_19
      - name: AARCH64_INSN_IMM_16
      - name: AARCH64_INSN_IMM_14
      - name: AARCH64_INSN_IMM_12
      - name: AARCH64_INSN_IMM_9
      - name: AARCH64_INSN_IMM_7
      - name: AARCH64_INSN_IMM_6
      - name: AARCH64_INSN_IMM_S
      - name: AARCH64_INSN_IMM_MAX
      - name: AARCH64_INSN_IMM_R
      item_type: enum
      name: aarch64_insn_imm_type
      pos:
        line_end: 46
        line_start: 33
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    - enumerators:
      - name: AARCH64_INSN_BRANCH_NOLINK
      - name: AARCH64_INSN_BRANCH_LINK
      - name: AARCH64_INSN_BRANCH_RETURN
      - name: AARCH64_INSN_BRANCH_COMP_ZERO
      - name: AARCH64_INSN_BRANCH_COMP_NONZERO
      item_type: enum
      name: aarch64_insn_branch_type
      pos:
        line_end: 54
        line_start: 48
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/insn.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/brk.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BRK_BUG_FRAME_IMM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/brk.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BRK_FAULT_IMM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/brk.h
      type_or_value: '2'
    - item_type: preproc_def
      name: AARCH64_BREAK_MON
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/brk.h
      type_or_value: 0xd4200000U
    - item_type: preproc_def
      name: AARCH64_BREAK_FAULT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/brk.h
      type_or_value: (AARCH64_BREAK_MON | (BRK_FAULT_IMM << 5))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPU_REGION_RES0
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
      type_or_value: (0xFFFFULL << 48)
    structs:
    - fields:
      - name: xn_0
        type: unsigned long
      - name: xn
        type: unsigned long
      - name: ap_0
        type: unsigned long
      - name: ro
        type: unsigned long
      - name: sh
        type: unsigned long
      - name: base
        type: unsigned long
      - name: res0
        type: unsigned long
      item_type: struct
      name: __packed
      pos:
        line_end: 19
        line_start: 11
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
    - fields:
      - name: en
        type: unsigned long
      - name: ai
        type: unsigned long
      - name: ns
        type: unsigned long
      - name: res0
        type: unsigned long
      - name: limit
        type: unsigned long
      - name: res1
        type: unsigned long
      item_type: struct
      name: __packed
      pos:
        line_end: 32
        line_start: 25
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
    - fields:
      - name: prbar
        type: prbar_t
      - name: prlar
        type: prlar_t
      - name: refcount
        type: uint8_t
      - name: pad[15]
        type: uint8_t
      item_type: struct
      name: pr_t
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
    typedefs: []
    union:
    - fields:
      - name: reg
        type: "struct __packed {\n        unsigned long xn_0:1;     /* Execute-Never
          XN[0] */\n        unsigned long xn:1;       /* Execute-Never XN[1] */\n
          \       unsigned long ap_0:1;     /* Access Permission AP[0] */\n        unsigned
          long ro:1;       /* Access Permission AP[1] */\n        unsigned long sh:2;
          \      /* Shareability */\n        unsigned long base:42;    /* Base Address
          */\n        unsigned long res0:16;    /* RES0 */\n    }"
      - name: bits
        type: uint64_t
      item_type: union
      name: prbar_t
      pos:
        line_end: 21
        line_start: 10
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
    - fields:
      - name: reg
        type: "struct __packed {\n        unsigned long en:1;     /* Region enable
          */\n        unsigned long ai:3;     /* Memory Attribute Index */\n        unsigned
          long ns:1;     /* Not-Secure */\n        unsigned long res0:1;   /* RES0
          */\n        unsigned long limit:42; /* Limit Address */\n        unsigned
          long res1:16;  /* RES0 */\n    }"
      - name: bits
        type: uint64_t
      item_type: union
      name: prlar_t
      pos:
        line_end: 34
        line_start: 24
        source_file: /src/xen/xen/arch/arm/include/asm/arm64/mpu.h
- function_names:
  - __raw_writeb
  - __raw_writew
  - __raw_writel
  - __raw_writeq
  - __raw_readb
  - __raw_readw
  - __raw_readl
  - __raw_readq
  - __iormb
  - __iowmb
  - mmiowb
  - readb_relaxed
  - readw_relaxed
  - readl_relaxed
  - readq_relaxed
  - readq_relaxed_non_atomic
  - writeb_relaxed
  - writew_relaxed
  - writel_relaxed
  - writeq_relaxed
  - writeq_relaxed_non_atomic
  - readb
  - readw
  - readl
  - readq
  - writeb
  - writew
  - writel
  - writeq
  - emulate_read
  - emulate_write
  - inb
  - inw
  - inl
  - outb
  - outw
  - outl
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/io.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __invalidate_dcache_one
  - __clean_dcache_one
  - __clean_and_invalidate_dcache_one
  - invalidate_icache
  - invalidate_icache_local
  - __va_to_par
  - gva_to_ma_par
  - gva_to_ipa_par
  source_file: /src/xen/xen/arch/arm/include/asm/arm64/page.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SLOT0
  - XEN_NR_ENTRIES
  - FIXMAP_ADDR
  - TEMPORARY_AREA_ADDR
  - TEMPORARY_FIXMAP_ADDR
  source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: _AT(vaddr_t, MB(2))
    - item_type: preproc_def
      name: IDENTITY_MAPPING_AREA_NR_L0
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: '20'
    - item_type: preproc_def
      name: XEN_VM_MAPPING
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: SLOT0(IDENTITY_MAPPING_AREA_NR_L0)
    - item_type: preproc_def
      name: SLOT0_ENTRY_BITS
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: '39'
    - item_type: preproc_def
      name: SLOT0_ENTRY_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: SLOT0(1)
    - item_type: preproc_def
      name: XEN_VIRT_START
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: (XEN_VM_MAPPING + _AT(vaddr_t, MB(2)))
    - item_type: preproc_def
      name: XEN_VIRT_SIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: _AT(vaddr_t, MB(8))
    - item_type: preproc_def
      name: FIXMAP_VIRT_START
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: (XEN_VIRT_START + XEN_VIRT_SIZE)
    - item_type: preproc_def
      name: FIXMAP_VIRT_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: _AT(vaddr_t, MB(2))
    - item_type: preproc_def
      name: BOOT_FDT_VIRT_START
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: (FIXMAP_VIRT_START + FIXMAP_VIRT_SIZE)
    - item_type: preproc_def
      name: BOOT_FDT_VIRT_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: _AT(vaddr_t, MB(4))
    - item_type: preproc_def
      name: BOOT_RELOC_VIRT_START
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
    - item_type: preproc_def
      name: LIVEPATCH_VMAP_START
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: (BOOT_FDT_VIRT_START + BOOT_FDT_VIRT_SIZE)
    - item_type: preproc_def
      name: LIVEPATCH_VMAP_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/xen/xen/arch/arm/include/asm/mmu/layout.h
      type_or_value: _AT(vaddr_t, MB(2))
    - item_type: preproc_def
      name: HYPERVISOR_VIRT_START
      pos:
        line_end: 85
        line_s